3.在主機(jī)I/O控制器中實(shí)現(xiàn)磁盤緩存
歷史上,關(guān)于實(shí)現(xiàn)緩存的研究和開(kāi)發(fā)有很多,但大多數(shù)是在主機(jī)I/O控制器上進(jìn)行的,它可能比其他各種類型實(shí)現(xiàn)的總和還要多。這個(gè)結(jié)果來(lái)源于系統(tǒng)和子系統(tǒng)的主要生產(chǎn)公司,如DEC、IBM、惠普和STK等,這么多年來(lái),這些公司開(kāi)發(fā)出大量的主機(jī)控制器,它們既與主機(jī)操作系統(tǒng)實(shí)現(xiàn)密不可分,也與子系統(tǒng)的實(shí)現(xiàn)密不可分。
主機(jī)I/O控制器中緩存算法的實(shí)現(xiàn)方案有兩種:一種是在運(yùn)行于主機(jī)中的驅(qū)動(dòng)程序中,另一種是用位于主機(jī)I/O控制器上的緩存控制器。但為了確保最優(yōu)的性能和減輕CPU的負(fù)荷,大部分主機(jī)I/O控制器的緩存實(shí)現(xiàn)使用后一種方法。
當(dāng)分析主機(jī)I/O緩存控制器的配置時(shí),需要注意的是緩存實(shí)現(xiàn)是位于主機(jī)系統(tǒng)的I/O總線(即PCI),而不是存儲(chǔ)I/O總線(即SCSI)。即I/O路徑變得更短,因此,與子系統(tǒng)中的緩存相比,主機(jī)控制器中的緩存的訪問(wèn)速度更快。例如,對(duì)于帶有PCII/O總線的主機(jī)系統(tǒng),它具有的最大傳輸速度為132MB/s。相反,寬UltraSCSI總線的最大速度是40MB/s。然而,如果將它同100MB/s傳輸速度的光纖路徑相比,其優(yōu)勢(shì)卻并不明顯。
雖然總線的速度對(duì)緩存很重要,但人們通常更關(guān)注各種總線的相對(duì)速度和最優(yōu)的緩存位置。切記,算法與應(yīng)用的匹配遠(yuǎn)比最大的傳輸速度重要。
主機(jī)控制器上的緩存容量受限于它們所攜帶的內(nèi)存量,但這對(duì)于正在使用緩存的應(yīng)用可能影響并不大。由于在系統(tǒng)中加入充分的內(nèi)存可能很困難,所以難于為緩存配置希望的內(nèi)存量。例如,對(duì)于一個(gè)裝有128MBRAM的PC系統(tǒng),為了支持一個(gè)200GB的磁盤子系統(tǒng),再增加256MB的RAM可能并不容易。
此外,相關(guān)主機(jī)控制器中的緩存問(wèn)題是所需要的緩存總量。假如在同一存儲(chǔ)總線或路徑上有兩個(gè)子系統(tǒng),那么,控制器中的單個(gè)緩存池可以支持這兩個(gè)子系統(tǒng)。假如這個(gè)配置使用雙主機(jī)控制器,則需要配置另外的緩存內(nèi)存。