两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

儲存單元及存儲系統(tǒng)的制作方法

文檔序號:6333354閱讀:564來源:國知局
專利名稱:儲存單元及存儲系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種具有非易失性存儲裝置和隨機(jī)存取存儲器的儲存單元(storage unit)以及一種存儲系統(tǒng)(memory system)。
背景技術(shù)
在現(xiàn)有技術(shù)中,儲存器(storage)和存儲器(memory)之間存在非常大的速度差。 隨著存儲器的速度變得越來越高,該差值越來越大,給整個(gè)系統(tǒng)的性能改善帶來了問題。因此,為了減小該速度差,存儲器被用作磁盤高速緩存(diskcache)。可將最近訪問過的扇區(qū)數(shù)據(jù)留在存儲器中,在作出下一個(gè)訪問請求時(shí),如果信息 存在于高速緩存中,則可從存儲器中讀入該信息而無需訪問儲存器。這在多次讀出同一扇區(qū)數(shù)據(jù)以及寫入多個(gè)零碎數(shù)據(jù)(smalldata)時(shí)表現(xiàn)出很好 的效果。實(shí)際上,以HDD和SDD為代表的儲存單元包含隨機(jī)存取存儲裝置(RAMD),并將其用作第一磁盤高速緩存。此外,在現(xiàn)有技術(shù)的系統(tǒng)中,將主存儲器(main memory)的一部分用作第二磁盤高 速緩存。第二磁盤高速緩存與第一磁盤高速緩存不同,其是由CPU直接管理的磁盤高速緩 存。應(yīng)當(dāng)注意的是,存在于第二磁盤高速緩存中的數(shù)據(jù)是經(jīng)由第一高速緩存從儲存單 元讀入的數(shù)據(jù)。在JP-A-1994-161897和JP-A-2008-026970中公開了有效使用高速緩存存儲器 (cache memory)的技術(shù)。JP-A-1994-161897中公開的磁盤高速緩存單元在主存儲裝置(主存儲器)上具有 針對控制數(shù)據(jù)的軟高速緩存區(qū)。此外,磁盤控制器具有數(shù)據(jù)確定裝置(data determining means),并通過如下方 式來改善高速緩存的利用率,即,在高速緩存存儲器上不保留已被確定為控制數(shù)據(jù)的數(shù)據(jù)。這項(xiàng)技術(shù)可防止第一磁盤高速緩存和第二磁盤高速緩存中的數(shù)據(jù)重復(fù)。JP-A-2008-026970中公開的儲存單元具有來自主機(jī)的用來為高速緩存的定位 (fixation)指定文件區(qū)域的區(qū)域通知命令(regionnotification command),并且在讀取命 令的執(zhí)行過程中傳輸該區(qū)域通知命令。然后,儲存單元將區(qū)域通知命令被再次傳輸之前所 傳送的數(shù)據(jù)定位到高速緩存存儲器上。這項(xiàng)技術(shù)能夠容易地進(jìn)行文件的特定區(qū)域在高速緩存存儲器中的定位。

發(fā)明內(nèi)容
然而,RAMD上的數(shù)據(jù)是基于產(chǎn)生的訪問請求而在儲存器內(nèi)管理的,來自主機(jī)的直 接操作就不可能了。此外,存在于第二磁盤高速緩存中的數(shù)據(jù)是經(jīng)由第一高速緩存從儲存單元讀入的 數(shù)據(jù)。即,經(jīng)常出現(xiàn)兩個(gè)磁盤高速緩存中存在相同數(shù)據(jù)的情形。這樣,獨(dú)立地控制兩個(gè)磁盤高速緩存。因此,加載在第二磁盤高速緩存上的數(shù)據(jù)也同時(shí)存在于第一磁盤高速緩存中,降 低了存儲器的使用效率,因此,還降低了性能改善效果。另一方面,第二磁盤高速緩存耗用了主存儲器,從而工作存儲器變小。在工作存儲器不足的情況下,系統(tǒng)的操作系統(tǒng)(OS)通過交換操作(swapping operation)產(chǎn)生儲存器訪問,這使得系統(tǒng)操作性能降低。此外,在從儲存器啟動的系統(tǒng)中,在CPU模塊的初始化之后即開始對儲存器的訪 問,許多數(shù)據(jù)訪問都集中在儲存器上。此外,存在如下缺點(diǎn),即,對于僅在啟動(start-up) 時(shí)要訪問的數(shù)據(jù),無法獲得磁盤高速緩存的效果。在JP-A-1994-161897中公開的技術(shù)中,指定了不保留的數(shù)據(jù),可能無法在高速緩 存存儲器中提前預(yù)讀數(shù)據(jù)或無法通過在啟動時(shí)的預(yù)讀來實(shí)現(xiàn)加速。在這項(xiàng)技術(shù)中,控制器沒有可訪問高速緩存存儲器的存儲接口(memory interface)。因此,在訪問數(shù)據(jù)、代碼之前的數(shù)據(jù)傳送是必不可少的并且成為系統(tǒng)開銷 (overhead) 0在JP-A-2008-026970中公開的技術(shù)中,在總線主控傳送的情況下,CPU無法把握 數(shù)據(jù)傳送的進(jìn)度,并且難以發(fā)送區(qū)域通知命令。此外,在這項(xiàng)技術(shù)中,發(fā)送用于在數(shù)據(jù)傳送期間將要定位的數(shù)據(jù)指定到高速緩存 存儲器的區(qū)域通知命令。因此,在由于先前處理處于執(zhí)行中而不可能開始數(shù)據(jù)傳送的情況 下,不可能在高速緩存上準(zhǔn)備下一個(gè)數(shù)據(jù)或通過預(yù)讀實(shí)現(xiàn)加速。此外,控制器沒有可訪問高速緩存存儲器的存儲接口。因此,在訪問數(shù)據(jù)、代碼之 前數(shù)據(jù)傳送是必不可少的并且成為系統(tǒng)開銷。因此,期望提供一種儲存單元以及一種存儲系統(tǒng),能夠在不必將數(shù)據(jù)、代碼傳送到 主存儲器上的情況下縮短系統(tǒng)的啟動時(shí)間以及啟動代碼的時(shí)間,并且實(shí)現(xiàn)整個(gè)系統(tǒng)處理的 高速化。根據(jù)本發(fā)明的一個(gè)實(shí)施方式的儲存單元包括使用以字為單位的地址進(jìn)行訪問的 隨機(jī)存取存儲裝置;使用以扇區(qū)為單位的地址進(jìn)行訪問的儲存裝置;以及根據(jù)經(jīng)由總線指 定的地址,控制對隨機(jī)存取存儲裝置以及儲存裝置的訪問的儲存控制器;其中,儲存控制器 包括對存儲在所述儲存裝置上的利用經(jīng)由所述總線提供的所述扇區(qū)地址指定的數(shù)據(jù)進(jìn)行 訪問的第一接口功能;利用經(jīng)由總線指定的字地址,對隨機(jī)存取存儲裝置上的數(shù)據(jù)進(jìn)行直 接訪問的第二接口功能;響應(yīng)于第一接口功能的訪問,使用隨機(jī)存取存儲裝置作為第一磁 盤高速緩存,并且確定要保存在隨機(jī)存取存儲裝置中數(shù)據(jù)的功能;通過反復(fù)進(jìn)行寄存器訪 問來傳送利用扇區(qū)地址指定的數(shù)據(jù)的功能,以及經(jīng)由總線通過總線主控功能來傳送利用扇 區(qū)地址指定的數(shù)據(jù)作為連續(xù)字大小的數(shù)據(jù)的功能。
根據(jù)本發(fā)明的另一實(shí)施方式的存儲系統(tǒng)包括主機(jī)、主存模塊、由主機(jī)訪問的儲存 單元以及連接主機(jī)、主存模塊以及儲存單元的系統(tǒng)總線,其中儲存單元包括使用以字為單 位的地址進(jìn)行訪問的隨機(jī)存取存儲裝置;使用以扇區(qū)為單位的地址進(jìn)行訪問的儲存裝置; 以及根據(jù)經(jīng)由系統(tǒng)總線指定的地址,控制對隨機(jī)存取存儲裝置以及儲存裝置的訪問的儲存 控制器;其中,儲存控制器包括根據(jù)經(jīng)由系統(tǒng)總線來自主機(jī)的指令對存儲在所述存儲裝 置上的利用所述扇區(qū)地址指定的數(shù)據(jù)進(jìn)行訪問的第一接口功能;通過所述主機(jī),利用經(jīng)由 系統(tǒng)總線指定的字地址直接訪問隨機(jī)存取存儲裝置上的數(shù)據(jù)的第二接口功能;響應(yīng)于第一 接口功能的訪問,使用隨機(jī)存取存儲裝置作為第一磁盤高速緩存,并且確定要保存在隨機(jī) 存取存儲裝置中數(shù)據(jù)的功能;通過反復(fù)進(jìn)行寄存器訪問來傳送利用扇區(qū)地址指定的數(shù)據(jù)的 功能;以及經(jīng)由系統(tǒng)總線通過總線主控功能在主存儲模塊和其自身之間來傳送利用扇區(qū)地 址指定的數(shù)據(jù)作為連續(xù)字大小的數(shù)據(jù)的功能。根據(jù)本發(fā)明的實(shí)施方式,不需要被傳送到主存儲器上的數(shù)據(jù)、代碼,能夠縮短系統(tǒng) 的啟動時(shí)間和啟動代碼的時(shí)間,并且能夠?qū)崿F(xiàn)整個(gè)系統(tǒng)處理的加速。


圖1示出了根據(jù)本發(fā)明的第一實(shí)施方式的包括儲存單元的存儲系統(tǒng)的配置實(shí)例。圖2是作為比較實(shí)例的存儲系統(tǒng)的框圖。圖3示出了比較實(shí)例中的STGC的基本內(nèi)部配置。圖4示出了根據(jù)本發(fā)明的實(shí)施方式的STGC的基本內(nèi)部配置。圖5示出了本實(shí)施方式中可從CPU直接訪問磁盤高速緩存的STGC的第一配置實(shí) 例。圖6示出了本實(shí)施方式中可從CPU直接訪問磁盤高速緩存的STGC的第二配置實(shí) 例。圖7示出了從本實(shí)施方式以及比較實(shí)例的系統(tǒng)總線看到的存儲分配圖(memory map) ο圖8示出了控制根據(jù)本實(shí)施方式的STGC的控制寄存器CTRL_REG的配置實(shí)例。圖9示出了控制寄存器中的錯(cuò)誤寄存器(error register)的細(xì)節(jié)。圖10示出了控制寄存器中的狀態(tài)寄存器的細(xì)節(jié)。圖11示出了控制STGC的總線主控寄存器(bus master register) BM_REG的配置 實(shí)例。圖12示出了總線主控寄存器中的總線主控命令寄存器的細(xì)節(jié)。圖13示出了總線主控寄存器中的總線主控狀態(tài)寄存器的細(xì)節(jié)。圖14示出了 PRD表的細(xì)節(jié)。圖15示出了在從系統(tǒng)總線控制本實(shí)施方式的STGC(儲存控制器)的情況下當(dāng)執(zhí) 行作為序列實(shí)例的讀取(讀取(0001000h,04h))命令時(shí)的流程圖。圖16示出了當(dāng)響應(yīng)于圖15中的流程圖而執(zhí)行讀取命令時(shí)各寄存器中設(shè)定的值的 實(shí)例。圖17示出了在從系統(tǒng)總線控制本實(shí)施方式的STGC(儲存控制器)的情況下當(dāng)執(zhí) 行作為序列的寫入(寫入(00002000h,04h))命令時(shí)的流程圖。
圖18示出了當(dāng)響應(yīng)于圖17中的流程圖而執(zhí)行寫入命令時(shí)各寄存器中設(shè)定的值的 實(shí)例。圖19示出了在從系統(tǒng)總線控制本實(shí)施方式的STGC(儲存控制器)的情況下當(dāng)執(zhí) 行作為序列的實(shí)例的設(shè)定高速緩存命令(設(shè)定高速緩存(00004000h,10h))時(shí)的流程圖。圖20示出了當(dāng)響應(yīng)于圖19中的流程圖而執(zhí)行設(shè)定高速緩存命令(set cache command)時(shí)各寄存器中設(shè)定的值的實(shí)例。圖21示出了在從系統(tǒng)總線控制本實(shí)施方式的STGC(儲存控制器)的情況下當(dāng)執(zhí) 行作為序列實(shí)例的釋放高速緩存(釋放高速緩存(00004000h,10h))命令時(shí)的流程圖。圖22示出了當(dāng)響應(yīng)于圖21中的流程圖而執(zhí)行釋放高速緩存命令時(shí)各寄存器中設(shè) 定的值的實(shí)例。圖23是用于說明實(shí)現(xiàn)如圖15 圖22中的功能所需要的磁盤高速緩存區(qū)的管理 信息的實(shí)例的示圖。圖M示出了描述讀取命令的STGC內(nèi)部操作的流程圖。圖25示出了描述寫入命令的STGC內(nèi)部操作的流程圖。圖沈示出了描述高速緩存退出處理(cache out processing)的STGC內(nèi)部操作 的流程圖。圖27示出了描述設(shè)定高速緩存命令(set cache command)的STGC內(nèi)部操作的流 程圖。圖28示出了描述釋放高速緩存命令(release cache command)的STGC內(nèi)部操作 的流程圖。圖四是通過比較從將保存在儲存器上的代碼讀入到存儲器上直到從CPU執(zhí)行的 時(shí)間來描述和示出本發(fā)明的實(shí)施方式的效果的示圖。圖30示出了描述當(dāng)釋放儲存模塊的復(fù)位以進(jìn)行啟動時(shí)在STGC中執(zhí)行的操作的流 程圖。圖31示出了自動加載本實(shí)施方式的高速緩存管理信息的初始值的功能的效果 (啟動時(shí)間的比較)。圖32示出了根據(jù)本發(fā)明的第二實(shí)施方式的包括儲存單元的存儲系統(tǒng)的配置實(shí) 例。
具體實(shí)施例方式在下文中,將參照

本發(fā)明的實(shí)施方式。將以如下順序進(jìn)行說明1.第一實(shí)施方式2.第二實(shí)施方式<1.第一實(shí)施方式>圖1示出了根據(jù)本發(fā)明的第一實(shí)施方式的包括儲存單元的存儲系統(tǒng)的配置實(shí)例。根據(jù)第一實(shí)施方式的存儲系統(tǒng)10具有儲存模塊20、作為主機(jī)的CPU模塊 (CPU) 30、主存儲模塊(MMM) 40、系統(tǒng)總線50以及10模塊60、70。通過系統(tǒng)總線50連接儲存模塊20、CPU 30、MMM 40以及10模塊60、70。8
根據(jù)第一實(shí)施方式的儲存模塊(STGM) 20包括儲存控制器(STGC) 21、隨機(jī)存取存 儲裝置(RAMD) 22以及儲存裝置(STCD) 23。使用以字為單位的地址訪問RAMD 22,而使用以扇區(qū)為單位的地址訪問STCD 23。STGC 21具有可從CPU 30訪問的連接至總線的兩個(gè)接口功能。STGC 21具有作為第一接口功能的儲存接口(STGC-IF) M和作為第二接口功能的 存儲接口(MEM-IF) 25。此外,STGM 20通過儲存接口(STGC-IF) 24和存儲接口(MEM-IF) 25連接至系統(tǒng)總 線50。STGC-IF 24提供了一個(gè)用來根據(jù)來自CPU 30的指令訪問儲存在STCD 23上的用 扇區(qū)地址指定的數(shù)據(jù)的接口。這里,用扇區(qū)地址指定的數(shù)據(jù)通過反復(fù)進(jìn)行STGC 21的寄存器訪問來傳送,另外, 通過總線主控功能在MMM 40和其自身之間作為連續(xù)的字大小(word-sized)的數(shù)據(jù)高速度 地被傳送。響應(yīng)于來自STGC-IF 24的訪問,STGC 21使用RAMD 22作為第一磁盤高速緩存, 并且STGC 21確定要保存在RAMD 22上的數(shù)據(jù)。MEM-IF 25提供一個(gè)由CPU 30利用字地址直接訪問RAMD 22上的數(shù)據(jù)的接口。本實(shí)施方式的STGC 21具有指定保留在RAMD 22上的數(shù)據(jù)的高速緩存指定功能以 及釋放由CPU 30指定為第二磁盤高速緩存的高速緩存釋放功能。經(jīng)由作為第一接口的STGC-IP 24向STGC 21指示高速緩存指定功能。該指示包含關(guān)于STCD 23的地址和數(shù)據(jù)大小的信息。STGC 21執(zhí)行以下處理從RAMD 22上未使用的區(qū)域中確保具有指定數(shù)據(jù)大小的 區(qū)域,并將具有從STCD 23指定的地址的數(shù)據(jù)寫入已預(yù)先確保的區(qū)域。經(jīng)由作為第一接口的STGC-IF 24向STGC 21指示高速緩存釋放功能。該指示包含關(guān)于STCD 23的地址的信息,并且STGC 21對于RAMD 22上的指定數(shù) 據(jù)區(qū)域,根據(jù)STGC 21的判斷確定在釋放指令之后是否將數(shù)據(jù)保留在RAMD 22上。在本實(shí)施方式中,保留為第二磁盤高速緩存的數(shù)據(jù)還用作第一磁盤高速緩存。STGC 21具有如下功能,即,如果指定為第二磁盤高速緩存的數(shù)據(jù)已存在于作為第 一磁盤高速緩存的RAMD 22上,則切換到第二磁盤高速緩存的數(shù)據(jù)。通過STGC 21的判斷,STGC 21執(zhí)行將作為第一磁盤高速緩存而保留在RAMD 22上 的數(shù)據(jù)寫回STGC 23中的處理。STGC 21繼續(xù)保留作為第二磁盤高速緩存而保留在RAMD 22上的數(shù)據(jù),直到接收 到來自CPU 30的釋放指令。STGC 21具有切換器(ARBT)(將在后面進(jìn)行描述),用于在以下兩種信號之間進(jìn)行 切換用于STGC 21向RAMD 22傳輸作為第一磁盤高速緩存的訪問的信號和用于從CPU總 線直接傳輸作為第二磁盤高速緩存的訪問的信號。STGC 21具有將高速緩存管理信息保留在非易失性存儲器中的功能以及在STGM 20啟動時(shí)再生保留在非易失性存儲器中的指令的功能。應(yīng)當(dāng)注意的是,非易失性存儲器可以是STCD 23的一部分。在本實(shí)施方式中,作為結(jié)合STGD 23和RAMD 22而作為儲存模塊的器件,可以使用非易失性隨機(jī)存取存儲器(NVRAM)。在這種情況下,通過提供從MEM-IF 25經(jīng)由ARBT直接訪問NVRAM的路徑,可不必 在STGC 21內(nèi)傳送數(shù)據(jù),從而可進(jìn)一步實(shí)現(xiàn)加速。以下,將通過把注意力集中在STGM 20的配置和功能上,同時(shí)根據(jù)需要將其與一 般系統(tǒng)進(jìn)行比較來具體說明根據(jù)本實(shí)施方式的存儲系統(tǒng)10。應(yīng)當(dāng)注意的是,為便于理解,將本實(shí)施方式的組成部件的相同標(biāo)號分配給比較實(shí) 例的那些組成部件以用于以下的說明。在存儲系統(tǒng)10中,STGC 21通過由CPU 30經(jīng)由STGC-IF M訪問寄存器(未示出) 而被作為儲存裝置控制,并且利用STGC 21具有的總線主控功能執(zhí)行數(shù)據(jù)傳送。STCD 23用作非易失性數(shù)據(jù)存儲區(qū),而RAMD 22用作STCD23和STGC 21之間數(shù)據(jù) 輸入和輸出的高速緩存區(qū)。MEM-IF 25提供從CPU 30訪問作為存儲器的RAMD 22的功能。在本實(shí)施方式中,保留在高速緩存區(qū)中的數(shù)據(jù)被直接訪問而無須被傳送至主存儲ο圖2是作為比較實(shí)例的存儲系統(tǒng)的框圖。在存儲系統(tǒng)IOA中,STGM 20A經(jīng)由STGC-IF 24A連接至系統(tǒng)總線50A而不具有 MEM-IF的功能。在比較實(shí)例的存儲系統(tǒng)IOA中,除了系統(tǒng)在儲存模塊(STGM)20A內(nèi)具有的第一磁 盤高速緩存221A,還在主存儲模塊(MMM) 40A上確保并使用了第二磁盤高速緩存區(qū)41。第一磁盤高速緩存區(qū)221A是基于對STGM 20A的訪問信息和STCD 23A的訪問性 能由STGC 2IA控制的高速緩存區(qū)。另一方面,第二磁盤高速緩存區(qū)41是由CPU 30根據(jù)OS和應(yīng)用程序的請求來管理 的高速緩存區(qū)。本實(shí)施方式的STGM 20的特征在于,將所包含的磁盤高速緩存區(qū)用于第一磁盤高 速緩存221和第二磁盤高速緩存222這兩者。磁盤高速緩存區(qū)的管理由STGC 21來執(zhí)行,并且由于當(dāng)請求第二磁盤高速緩存 222的分配時(shí)地址信息被輸出到CPU 30,所以哪個(gè)扇區(qū)存在于哪個(gè)磁盤高速緩存中可由 CPU 30確定。不再需要的磁盤高速緩存可以釋放。圖3示出了比較實(shí)例中的STGC的基本內(nèi)部配置。STGC 21A具有控制與系統(tǒng)總線50A的接口的儲存接口控制部211A、控制STCD 23A 的儲存裝置控制部212A以及控制RAMD22A的RAM裝置控制部213A。此外,三個(gè)控制部211A、212A、213A由一條內(nèi)部總線連接。[STGC的基本內(nèi)部配置]圖4示出了根據(jù)本發(fā)明的實(shí)施方式的STGC的基本內(nèi)部配置。STGC 21具有控制STGC-IF M和系統(tǒng)總線50之間的接口的儲存接口控制部211、 控制STCD 23的儲存裝置控制部212以及控制RAMD的RAM裝置控制部213。此外,STGC 21具有控制MEM-IF 25和系統(tǒng)總線50之間的接口的存儲接口控制部 214。
在本實(shí)施方式的STGC 21中,RAM裝置控制部213除了連接至與比較實(shí)例的STGC 21A的內(nèi)部總線相同的內(nèi)部總線之外,還連接至存儲接口控制部214。[從CPU訪問RAMD的配置實(shí)例]圖5示出了本實(shí)施方式中可從CPU直接訪問從而到達(dá)磁盤高速緩存的STGC的第一配置實(shí)例。圖6示出了本實(shí)施方式中可從CPU直接訪問從而到達(dá)磁盤高速緩存的STGC的第二配置實(shí)例。圖5的第一配置實(shí)例是將具有兩個(gè)隨機(jī)存取端口 PT-A、PT-B的存儲器裝配作為 RAMD 22B的情況。相應(yīng)地,STGC 21B具有兩個(gè)RAM裝置控制部213_1、213_2。RAM裝置控制部213-1連接在RAMD 22B的隨機(jī)存取端口 PT-A與儲存接口控制部 211之間。RAM裝置控制部213-2連接在RAMD 22B的隨機(jī)存取端口 PT-B與存儲接口控制部 214之間。圖6的第二配置實(shí)例的情況是具有判優(yōu)器(arbiter) 215 (包括在RAM裝置控制部 213上游的兩個(gè)端口)以及通過CPU 30經(jīng)由MEM-IF 25訪問和在STGC 21C內(nèi)訪問的判優(yōu) 機(jī)理的實(shí)例。判優(yōu)器215具有連接至儲存接口控制部211以及儲存裝置控制部212的端口 PT-A,以及連接至存儲接口控制部214的端口 PT-B。當(dāng)兩個(gè)訪問互相沖突時(shí),判優(yōu)器215將優(yōu)先權(quán)給予端口 PT-B側(cè)經(jīng)由MEM-IF 25的 訪問,并防止CPU 30的處理延遲。圖7示出了從本實(shí)施方式以及比較實(shí)例的系統(tǒng)總線看到的存儲分配圖。每條總線均具有作為控制STGC的寄存器的控制寄存器CTRL_REG和總線主控寄存 器BM_REG。本實(shí)施方式的存儲分配圖具有可從MEM-IF 25訪問的地址空間。使用該空間作為 第二磁盤高速緩存區(qū),可以不需要到作為主存儲器的MMM 40的數(shù)據(jù)傳送時(shí)間,并且可以不 必消耗主存儲器。[控制寄存器的配置實(shí)例]圖8示出了控制根據(jù)本實(shí)施方式的STGC的控制寄存器CTRL_REG的配置實(shí)例。在該配置實(shí)例中,將每8位(bit)分配給一個(gè)寄存器,并且部分地,待訪問的寄存 器在讀取和寫入時(shí)進(jìn)行切換。數(shù)據(jù)寄存器DR是用于傳送來自和送往CPU的數(shù)據(jù)的寄存器,并且在從CPU 30向 STGC 21傳送數(shù)據(jù)時(shí)進(jìn)行寫入,而在從STGC21向CPU 30傳送數(shù)據(jù)時(shí)進(jìn)行讀取。錯(cuò)誤寄存器(error register) ER是當(dāng)狀態(tài)寄存器SR(其將在后面進(jìn)行描述)給 出錯(cuò)誤發(fā)生的通知時(shí)示出其原因的只讀寄存器。扇區(qū)數(shù)目寄存器SNR是設(shè)定待傳送的扇區(qū)數(shù)目的寄存器。在該實(shí)例中,由于寄存 器具有8位,所以最多可指定255個(gè)扇區(qū)。扇區(qū)地址寄存器SAR是設(shè)定待訪問的引導(dǎo)扇區(qū)(head sector)地址的寄存器。在 該實(shí)例中,最多可指定32位地址。11
狀態(tài)寄存器SR是示出STGC 21的操作狀態(tài)的只讀寄存器。圖9示出控制寄存器中錯(cuò)誤寄存器的細(xì)節(jié)。ABRT表示“異常中止”,并且當(dāng)傳送中途中斷時(shí)變成“ 1 ”。圖10示出了控制寄存器中的狀態(tài)寄存器的細(xì)節(jié)。BSY表示“占線”,并且BSY = 1指示STGC 21處于命令執(zhí)行中。DRDY表示“數(shù)據(jù)就緒”,并且DRDY = 1指示數(shù)據(jù)已設(shè)定在數(shù)據(jù)寄存器DR中并且可 讀。DRQ表示“數(shù)據(jù)請求”,并且DRQ = 1指示數(shù)據(jù)寄存器DR為空并且可寫入。ERR表示“錯(cuò)誤”,并且ERR = 1指示已發(fā)生錯(cuò)誤并且可從錯(cuò)誤寄存器ER的值確認(rèn) 其要因(factor) 0存在很多具有當(dāng)狀態(tài)寄存器SR的值改變時(shí)、向CPU 30發(fā)出中斷信號以通知狀態(tài) 改變的機(jī)制的系統(tǒng),然而,這里將說明為了確認(rèn)而輪詢(poll)狀態(tài)寄存器SR的實(shí)例。命令寄存器CR是向STGC 21設(shè)定只寫命令的寄存器。這里,8位的值可用作操作碼0C,并且最多可以定義256種命令。圖11示出了控制STGC的總線主控寄存器BM_REG的配置實(shí)例??偩€主控命令寄存器BMCR是用于控制作為總線主控的STGC21對系統(tǒng)總線50的 訪問的寄存器??偩€主控狀態(tài)寄存器BMSR是用于示出作為總線主控進(jìn)行操作的STGC 21的狀態(tài) 的寄存器??偩€主控PRD表地址寄存器BMPRDTAR是用于設(shè)定在主存儲器上準(zhǔn)備的PRD (物理 區(qū)描述符)表PRDT的地址的寄存器。STGC 21從PRD表PRDT依次讀入PRD,并且基于PRD表PRDT中寫入的地址信息來 執(zhí)行數(shù)據(jù)傳送。圖12示出了總線主控寄存器中的總線主控命令寄存器的細(xì)節(jié)。讀取或?qū)懭隦oW設(shè)定數(shù)據(jù)傳送的方向,并且指示讀取(從STGC向主存儲器傳送數(shù) 據(jù))=0,寫入(從主存儲器向STGC傳送數(shù)據(jù))=1。開始或停止SoS設(shè)定總線主控操作的開始或停止,并且開始=1,停止=0。圖13示出了總線主控寄存器中的總線主控狀態(tài)寄存器的細(xì)節(jié)。錯(cuò)誤ERR指示數(shù)據(jù)傳送尚未完成。總線主控有效(Bus master active) BMA指示總線主控處于操作中。存在許多具有當(dāng)狀態(tài)寄存器SR的值改變時(shí)、向CPU 30發(fā)出中斷信號以通知狀態(tài) 改變的機(jī)制的系統(tǒng),然而,這里將說明為了確認(rèn)而輪詢狀態(tài)寄存器SR的實(shí)例。圖14示出PRD表的細(xì)節(jié)。PRD表PRDT由多個(gè)PRD表?xiàng)l目PRDTE形成,并且只有最終條目是EOT = 1。PRD表?xiàng)l目PRDTE的內(nèi)容包括指示主存儲器上的數(shù)據(jù)區(qū)的地址的主機(jī)存儲區(qū)物理 基址 HMRPBA。此外,PRD表?xiàng)l目PRDTE的內(nèi)容由指示最終條目的EOT (表的末尾)和用字節(jié)來指 示數(shù)據(jù)區(qū)的大小的字節(jié)計(jì)數(shù)BC形成。應(yīng)當(dāng)注意的是,這些控制寄存器CTRL_REG、總線主控寄存器BM_REG的配置是一般的,并未顯示出本發(fā)明的實(shí)施方式的特征,并且作為具體描述本發(fā)明的實(shí)施實(shí)例的手段。圖15示出了在從系統(tǒng)總線控制本實(shí)施方式的STGC(儲存控制器)的情況下當(dāng)執(zhí) 行作為序列的實(shí)例的讀取命令時(shí)的流程圖。此外,圖16示出了當(dāng)響應(yīng)于圖15中的流程圖而執(zhí)行讀取命令時(shí)各寄存器中設(shè)定 的值的實(shí)例。在步驟STl 1,CPU 30在MMM 40上確保用于保留從STGM (儲存模塊)20讀入的數(shù) 據(jù)的緩沖區(qū)。通常的CPU系統(tǒng)使用虛擬存儲器,并且緩沖區(qū)沒有必要是一個(gè)連續(xù)的地址空間。在步驟ST12,在MMM 40上從所確保的緩沖區(qū)生成PRD表PRDT。在步驟ST13,在STGC 21的總線主控寄存器BM_REG中,對數(shù)據(jù)傳送方向和開始位 SoS以及MMM 40的地址(其中保存了 PRD表PRDT)進(jìn)行設(shè)定。在步驟STHJiSTGC 21的控制寄存器CTRL REG中的要讀取的扇區(qū)數(shù)目、引導(dǎo)扇 區(qū)地址、讀取命令代碼(0x20)進(jìn)行設(shè)定。STGC 21開始執(zhí)行命令,并且當(dāng)數(shù)據(jù)就緒時(shí)開始作為總線主控進(jìn)行傳送。在傳送開始之后,CPU 30通過輪詢總線主控寄存器BM_REG的總線主控狀態(tài)寄存 器BMSR來確認(rèn)STGC 21的總線主控操作。在步驟ST15,CPU 30通過總線主控有效BMA = 0來確認(rèn)數(shù)據(jù)傳送的完成。在步驟ST16,CPU 30通過錯(cuò)誤位ERR = 0來確認(rèn)數(shù)據(jù)傳送的正常終止。如果錯(cuò)誤位ERR = 1,則在步驟ST19,在總線主控寄存器BM_REG的總線主控命令 寄存器BMCR中設(shè)定停止位SoS = 1。在總線主控傳送完成之后,CPU 30通過輪詢控制寄存器CTRL_REG的狀態(tài)寄存器 SR來確認(rèn)STGC 21的操作。在步驟ST17,CPU 30通過占線位(busy bit)BSY = 0來確認(rèn)命令的結(jié)束。在步驟ST18,CPU 30通過錯(cuò)誤位ERR = 0來確認(rèn)命令執(zhí)行結(jié)果是正常的。如果錯(cuò)誤位ERR是“ 1,,,則在步驟ST1A,確認(rèn)控制寄存器CTRL_REG的錯(cuò)誤寄存器 ER的值并且確認(rèn)錯(cuò)誤(異常中止)的狀態(tài)。將所訪問的扇區(qū)數(shù)據(jù)保留為磁盤高速緩存區(qū)中的第一磁盤高速緩存。圖17示出了在從系統(tǒng)總線控制本實(shí)施方式的STGC(儲存控制器)的情況下當(dāng)執(zhí) 行作為序列的實(shí)例的寫入命令時(shí)的流程圖。此外,圖18示出了當(dāng)響應(yīng)于圖17中的流程圖而執(zhí)行寫入命令時(shí)各寄存器中設(shè)定 的值的實(shí)例。在步驟ST21,CPU 30在MMM 40上確保用于保留要寫入STGM(儲存模塊)20中的 數(shù)據(jù)的緩沖區(qū),并且準(zhǔn)備寫入數(shù)據(jù)。一般的CPU系統(tǒng)使用虛擬存儲器,并且緩沖區(qū)沒有必要是一個(gè)連續(xù)的地址空間。在步驟ST22,在MMM 40上從確保的緩沖區(qū)生成PRD表PRDT。在步驟ST23,在總線主控寄存器BM_REG中,對數(shù)據(jù)傳送方向和開始位SoS以及 MMM 40的地址(其中保存了 PRD表PRDT)進(jìn)行設(shè)定。在步驟STM,對引導(dǎo)扇區(qū)地址、寫入命令代碼(0x30)、STGC21的控制寄存器CTRL_ REG中的要寫入的扇區(qū)數(shù)目進(jìn)行設(shè)定。
STGC 21開始執(zhí)行命令,并且當(dāng)準(zhǔn)備好接收數(shù)據(jù)時(shí),開始作為總線主控進(jìn)行傳送。在傳送開始之后,CPU 30通過輪詢總線主控寄存器BM_REG的總線主控狀態(tài)寄存 器BMSR來確認(rèn)STGC 21的總線主控操作。在步驟ST25,CPU 30通過總線主控有效BMA = 0來確認(rèn)數(shù)據(jù)傳送的完成。在步驟ST26,CPU 30通過錯(cuò)誤位ERR = 0來確認(rèn)數(shù)據(jù)傳送的正常終止。如果錯(cuò)誤位ERR = 1,則在步驟SD9,在總線主控寄存器BM REG的總線主控命令 寄存器BMCR中設(shè)定停止位SoS = 1。在總線主控傳送完成之后,CPU 30通過輪詢控制寄存器CTRL REG的狀態(tài)寄存器 SR來確認(rèn)STGC 21的操作。在步驟ST27,CPU 30通過占線位BSY = 0來確認(rèn)命令的結(jié)束。在步驟ST28,CPU 30通過錯(cuò)誤位ERR = 0來確認(rèn)命令執(zhí)行結(jié)果是正常的。如果錯(cuò)誤位是“ 1,,,則在步驟ST2A,確認(rèn)控制寄存器CTRL_REG的錯(cuò)誤寄存器ER的 值并且確認(rèn)錯(cuò)誤(異常中止)的狀態(tài)。
將所訪問的扇區(qū)數(shù)據(jù)保留為磁盤高速緩存區(qū)中的第一磁盤高速緩存。圖19示出了在從系統(tǒng)總線控制本實(shí)施方式的STGC(儲存控制器)的情況下當(dāng)執(zhí) 行作為序列的實(shí)例的設(shè)定高速緩存命令時(shí)的流程圖。此外,圖20示出了當(dāng)響應(yīng)于圖19中的流程圖而執(zhí)行設(shè)定高速緩存命令時(shí)各寄存 器中設(shè)定的值的實(shí)例。在步驟ST31,CPU 30在STGC 21的控制寄存器CTRL_REG中設(shè)定(作為第二磁 盤高速緩存的)要讀入的數(shù)據(jù)的扇區(qū)數(shù)目、引導(dǎo)扇區(qū)地址以及扇區(qū)高速緩存的命令代碼 (OxCO)。STGC 21開始執(zhí)行命令,在RAMD 22上搜索磁盤高速緩存區(qū)的空閑空間,并且從 STCD 23讀入指定數(shù)據(jù)。在開始執(zhí)行命令之后,CPU 30通過輪詢來確認(rèn)控制寄存器CTRL_REG的狀態(tài)寄存 器SR。在步驟ST32,如果CPU 30檢測到數(shù)據(jù)就緒位(DRDY位)DRDY = 1,則在步驟ST33, CPU 30讀出控制寄存器CTRL_REG的數(shù)據(jù)寄存器DR。作為設(shè)定高速緩存命令的執(zhí)行結(jié)果,STGC 21輸出其中已分配了指定的數(shù)據(jù)的磁 盤高速緩存區(qū)的地址。在步驟ST34,CPU 30通過占線位BSY = 0來確認(rèn)命令的結(jié)束。在步驟ST35,CPU 30通過錯(cuò)誤位ERR = 0來確認(rèn)命令執(zhí)行結(jié)果是正常的。
如果錯(cuò)誤位ERR是“ 1,,,則在步驟ST36,確認(rèn)控制寄存器CTRL_REG的錯(cuò)誤寄存器 ER的值并且確認(rèn)錯(cuò)誤的狀態(tài)(異常中止,在這里高速緩存分配失敗)。圖21示出了在從系統(tǒng)總線控制本實(shí)施方式的STGC(儲存控制器)的情況下當(dāng)執(zhí) 行作為序列的實(shí)例的釋放高速緩存命令時(shí)的流程圖。此外,圖22示出了當(dāng)響應(yīng)于圖21中的流程圖而執(zhí)行釋放高速緩存命令時(shí)各寄存 器中設(shè)定的值的實(shí)例。在步驟ST41,CPU 30在STGC 21的控制寄存器CTRL_REG中設(shè)定不必要作為第二 磁盤高速緩存的數(shù)據(jù)的扇區(qū)數(shù)目、引導(dǎo)扇區(qū)地址以及釋放高速緩存的命令代碼(OxCl)。
STGC 21開始執(zhí)行命令,在指定的RAMD 22上搜索磁盤高速緩存區(qū),并且執(zhí)行高速 緩存退出(cache out)處理。利用第一磁盤高速緩存的數(shù)據(jù),當(dāng)磁盤高速緩存區(qū)的空閑空間用完時(shí),可以執(zhí)行 高速緩存退出。在開始執(zhí)行命令之后,CPU 30通過輪詢來確認(rèn)控制寄存器CTRL_REG的狀態(tài)寄存 器SR。在步驟SI~42,CPU 30通過占線位BSY = 0來確認(rèn)命令的結(jié)束。在步驟ST43,CPU 30通過錯(cuò)誤位ERR = 0來確認(rèn)命令的執(zhí)行結(jié)果是正常的。如果錯(cuò)誤位ERR是“ 1,,,則在步驟ST44,確認(rèn)控制寄存器CTRL_REG的錯(cuò)誤寄存器 ER的值并且確認(rèn)錯(cuò)誤的狀態(tài)(異常中止,這在里高速緩存分配失敗)。接下來,將說明實(shí)現(xiàn)如圖15 圖22中的功能所需要的磁盤高速緩存區(qū)的管理信 息的實(shí)例。圖23是用于說明實(shí)現(xiàn)如圖15 圖22中的功能所需要的磁盤高速緩存區(qū)的管理 信息的實(shí)例的示圖。在該實(shí)例中,STGC 21使用RAMD 22作為高速緩存管理信息CMI的工作存儲器。 RAMD 22上的存儲區(qū)由將數(shù)據(jù)保留為磁盤高速緩存區(qū)DCR的區(qū)域以及高速緩存管理信息區(qū) CMIR形成。STGC 21利用磁盤高速緩存管理信息CMI來管理磁盤高速緩存區(qū)DCR。將磁盤高 速緩存區(qū)DCR作為使用512字節(jié)為一個(gè)單位的磁盤高速緩存條目DCE來管理。高速緩存管理信息CMI包括多個(gè)高速緩存管理信息條目CMIE,并且高速管理信息 條目CMIE由STCD 23上的扇區(qū)地址以及管理信息MI形成。管理信息MI包括指示是第一磁盤高速緩存或是第二磁盤高速緩存的高速緩存類 型CT以及指示使用與否的使用/未用UUS。管理信息MI包括指示是否已通過寫入將數(shù)據(jù)改變的修改標(biāo)志(dirty flag) DRTF 以及作為用于選擇高速緩存退出的數(shù)據(jù)的信息的LRU info。此外,STGC 21的存儲接口控制部214使得能夠(enable)從系統(tǒng)總線50對磁盤 高速緩存區(qū)DCR進(jìn)行訪問,但是禁止從系統(tǒng)總線50對高速緩存管理信息區(qū)CiOR的訪問。圖M 圖28示出了描述當(dāng)執(zhí)行四種命令時(shí)STGC內(nèi)部操作的流程圖。圖M示出了描述讀取命令的STGC內(nèi)部操作的流程圖。通過在控制寄存器CTRL_REG的命令寄存器CR中寫入命令的操作碼來開始命令處理操作。在步驟ST51,STGC 21使用總線主控功能以從MMM 40上的PRD表PRDT讀入第一 PRD表?xiàng)l目PRDTE。在步驟ST52,STGC 21從扇區(qū)地址搜索磁盤高速緩存管理信息CMI,并搜索寫在控 制寄存器CTRL_REG中的扇區(qū)數(shù)目。在步驟ST53,作為搜索結(jié)果,如果磁盤高速緩存上存在合適的數(shù)據(jù)(高速緩存命 中),則在步驟STM,利用總線主控功能將數(shù)據(jù)傳送至MMM 40上的數(shù)據(jù)緩沖區(qū)。在步驟ST55,確認(rèn)用于頭PRD表?xiàng)l目PRDTE的數(shù)據(jù)完成與否,并且在步驟ST56,通 過關(guān)于傳送信息結(jié)束與否的確定處理,返回到步驟ST51,讀入下一個(gè)PRD表?xiàng)l目PRDTE。
在步驟ST53,如果已確定高速緩存未命中(cache miss),則在步驟ST57,搜索用 于最新讀入的數(shù)據(jù)的磁盤高速緩存區(qū)DCR。如果未找到新的磁盤高速緩存區(qū),則在步驟ST5B,執(zhí)行高速緩存退出處理并確保 空閑磁盤區(qū)域。在步驟ST58,如果確定存在空閑磁盤區(qū)域,則在步驟ST59,利用總線主控功能將 讀出的數(shù)據(jù)從STCD傳送至MMM 40上的數(shù)據(jù)緩沖區(qū),并且同時(shí)傳送至RAMD 22上的最新確 保的高速緩存區(qū)。在步驟ST5A,通過關(guān)于在步驟ST55處的傳送結(jié)束與否以及在步驟ST56處的傳送 信息結(jié)束與否的判決處理,在高速緩存管理信息CMI中執(zhí)行注冊,返回到步驟ST51,讀入下 一個(gè)PRD表?xiàng)l目PRDTE。重復(fù)上述處理直到命令結(jié)束。圖25示出了描述寫入命令的STGC內(nèi)部操作的流程圖。通過在控制寄存器CTRL_REG的命令寄存器CR中寫入命令的操作碼OC來開始命 令處理操作。在步驟ST61,STGC 21使用總線主控功能以從MMM 40上的PRD表PRDT讀入第一 個(gè)PRD表?xiàng)l目PRDTE。在步驟ST62,STGC 21從扇區(qū)地址搜索磁盤高速緩存管理信息并且搜索寫在控制 寄存器CTRL_REG中的扇區(qū)數(shù)目。在步驟ST63,如果發(fā)生高速緩存未命中,則在步驟ST68,搜索用于最新讀入的數(shù) 據(jù)的磁盤高速緩存區(qū)DCR。如果未找到新的磁盤高速緩存區(qū),則在步驟ST6C,執(zhí)行高速緩存 退出處理并確??臻e磁盤區(qū)域。在步驟ST63,如果已確定高速緩存命中,則在步驟ST64,STGC21利用總線主控功 能將MMM 40上的數(shù)據(jù)傳送至RAMD 22上確保的高速緩存區(qū)。在步驟ST65,設(shè)定高速緩存管理信息的修改標(biāo)志(修改標(biāo)志位)DRTF = 1。然后,在步驟ST66,確認(rèn)頭PRD表?xiàng)l目PRDTE的數(shù)據(jù)完成與否,并且在步驟ST67, 通過關(guān)于傳送信息結(jié)束與否的確定處理,返回到步驟ST61,讀入下一個(gè)PRD表?xiàng)l目PRDTE。上述操作與一般比較實(shí)例的基本操作相同。在本發(fā)明的實(shí)施方式中,在由STGC 21控制的RAMD 22上,在磁盤高速緩存區(qū)DCR 的數(shù)據(jù)中存在第一磁盤高速緩存和第二磁盤高速緩存的兩種高速緩存類型CT。
另一方面,在比較實(shí)例中,僅存在對應(yīng)于第一磁盤高速緩存的數(shù)據(jù)。圖沈示出了描述高速緩存退出處理的STGC內(nèi)部操作的流程圖。在步驟ST71,STGC 21為了從磁盤高速緩存區(qū)進(jìn)行高速緩存退出而檢查作為候選 項(xiàng)的扇區(qū)。為了確定候選項(xiàng),高速緩存管理信息CMI的管理信息MI中的LRU info被讀取并 被使用。此外,第二磁盤高速緩存并不用作高速緩存退出的候選項(xiàng)。在步驟ST72,如果作為候選項(xiàng)的扇區(qū)的管理信息MI是修改標(biāo)志位DRTF = 1,則在 步驟ST73,執(zhí)行將RAMD 22上當(dāng)前存在的扇區(qū)數(shù)據(jù)寫回到STCD 23中的處理。在步驟ST74,將高速緩存管理信息清除為未使用。16
關(guān)于具有修改標(biāo)志位DB = 0的數(shù)據(jù),不執(zhí)行寫回操作,并且在步驟ST74清除高速緩存管理信息。在步驟ST75,以需要的扇區(qū)數(shù)目重復(fù)上面的處理直到確定最終扇區(qū)。圖27示出了描述設(shè)定高速緩存命令的STGC內(nèi)部操作的流程圖。在步驟ST81,STGC 21從扇區(qū)地址搜索高速緩存管理信息并且搜索寫在控制寄存 器CTRL_REG中的扇區(qū)數(shù)目。在步驟ST82,如果找到了合適的磁盤高速緩存數(shù)據(jù),在步驟ST83,如果數(shù)據(jù)是第 一磁盤高速緩存,則在步驟ST84,高速緩存管理信息被改變并且被設(shè)定成第二磁盤高速緩 存。在步驟ST82,如果不存在合適的磁盤高速緩存數(shù)據(jù),則在步驟ST87,從RAMD 22 上的磁盤高速緩存區(qū)DCR中搜索空閑空間。在步驟ST88,如果未找到空閑空間,則在步驟 ST8B,執(zhí)行高速緩存退出處理并且準(zhǔn)備空閑空間。在步驟ST88,如果已確定存在空閑空間,則在步驟ST89,將合適的扇區(qū)數(shù)據(jù)從 STCD 23傳送至RAMD 22上確保的磁盤高速緩存空閑區(qū)。然后,在步驟ST8A,在高速緩存管理信息CMI中執(zhí)行作為第二磁盤高速緩存的注 ππ冊。在步驟ST85,分配給指定的扇區(qū)數(shù)據(jù)的RAMD 22上的第二磁盤高速緩存的地址被 設(shè)定在控制寄存器CTRL_REG的數(shù)據(jù)寄存器DR中。當(dāng)數(shù)據(jù)被設(shè)定在數(shù)據(jù)寄存器DR中時(shí),在 控制寄存器CTRL_REG的狀態(tài)寄存器中,DRDY = 1,并且發(fā)出已將新數(shù)據(jù)設(shè)定在數(shù)據(jù)寄存器 DR中的通知。當(dāng)數(shù)據(jù)寄存器DR的數(shù)據(jù)被讀出時(shí),DRDY = 0,并且可以在數(shù)據(jù)寄存器DR中 設(shè)定下一數(shù)據(jù)。在步驟ST86,以控制寄存器CTRL_REG中的扇區(qū)數(shù)目SN中設(shè)定的扇區(qū)數(shù)目來重復(fù) 上面的處理,直到確定為最終的扇區(qū)。圖觀示出了描述釋放高速緩存命令的STGC內(nèi)部操作的流程圖。在步驟ST91,STGC 21從扇區(qū)地址搜索高速緩存管理信息CMI并且搜索寫在控制 寄存器CTRL_REG中的扇區(qū)數(shù)目。在步驟ST92,如果找到了合適的磁盤高速緩存數(shù)據(jù),并且進(jìn)一步地,在步驟ST93, 確認(rèn)數(shù)據(jù)是否是第二磁盤高速緩存。這里,如果得到肯定的判斷(是),則在步驟ST94,將 設(shè)定變成第一磁盤高速緩存。在步驟ST95,以CTRL_REG中的扇區(qū)數(shù)目SN中設(shè)定的扇區(qū)數(shù)目來重復(fù)上面的處理, 直到確定為最終扇區(qū)。當(dāng)接下來需要磁盤高速緩存區(qū)的空閑空間時(shí),改變?yōu)榈谝淮疟P高速緩存的數(shù)據(jù)成 為用于高速緩存退出的扇區(qū)的候選項(xiàng)。圖四是通過比較從將保存在儲存器上的代碼讀入到存儲器上直到從CPU執(zhí)行的 時(shí)間來描述和示出本發(fā)明的實(shí)施方式的效果的示圖。在任意實(shí)例中,依次加載并且執(zhí)行三種代碼。情況CSl是在存儲器上讀入代碼并以與現(xiàn)有技術(shù)中相同的方式執(zhí)行它們的操作 (儲存和下載)。代碼⑶1至⑶3通過讀取命令被依次加載在MMM 40上并且被執(zhí)行,總處理時(shí)間是{T (讀取代碼1) +T (執(zhí)行代碼1) +T (讀取代碼幻+T (執(zhí)行代碼幻+T (讀取代碼幻+T (執(zhí)行 代碼3)}。這里,T(X)是直到處理完成所花費(fèi)的時(shí)間。由于所有的代碼⑶1、⑶2、⑶3保存在不同的扇區(qū)中,所以無法得到第一磁盤高速 緩存的效果。情況2是通過設(shè)定高速緩存命令來縮短代碼⑶2、代碼⑶3的加載時(shí)間的操作。第一代碼CDl是讀取命令,并且在代碼CDl的執(zhí)行期間代碼CD2執(zhí)行設(shè)定高速緩 存命令,并且在代碼CD2的執(zhí)行期間代碼CD3執(zhí)行設(shè)定高速緩存命令。因此,總處理時(shí)間是{T(讀取代碼1)+T(執(zhí)行代碼1)+T (從磁盤高速緩存讀取代 碼2) +T (執(zhí)行代碼2、+T (從磁盤高速緩存讀取代碼幻+T (執(zhí)行代碼3)}。通過第一磁盤高速緩存的效果縮短了代碼⑶2、代碼⑶3的加載時(shí)間。情況CS3是將第二磁盤高速緩存作為執(zhí)行代碼⑶1、⑶2、⑶3的存儲器時(shí)使用該第 二磁盤高速緩存的操作(就地執(zhí)行,Execute In Place)。通過設(shè)定高速緩存命令將所有的代碼CDl至CD3加載在作為第二磁盤高速緩存的 RAMD 22上,并且CPU 30從STGC 21的MEM-IF 25直接訪問以執(zhí)行這些代碼。RAMD 22的讀出性能和從STGC 21訪問的主存儲器的性能是等同的,從STGC到 MMM并不花費(fèi)傳送時(shí)間。因此,總處理時(shí)間是{T(設(shè)定高速緩存代碼1)+T(執(zhí)行代碼1)+Τ(執(zhí)行代碼 2)+T (執(zhí)行代碼3)}。在STGC 21內(nèi)部的存儲控制部中,通過執(zhí)行設(shè)定高速緩存命令來判優(yōu)代碼的執(zhí)行 和對RAMD 22的訪問。此外,將優(yōu)先權(quán)給予從MEM-IF 25的訪問,因此設(shè)定高速緩存的處理 時(shí)間在某種程度上較長,然而,如果上述的總處理時(shí)間不超過執(zhí)行時(shí)間則花費(fèi)總處理時(shí)間。由于實(shí)際的CPU模塊內(nèi)部具有指令高速緩存和數(shù)據(jù)高速緩存,所以由于判優(yōu)而導(dǎo) 致的設(shè)定高速緩存處理時(shí)間的延長的影響很難大的超過執(zhí)行時(shí)間。圖30示出了描述當(dāng)釋放儲存模塊的復(fù)位以進(jìn)行啟動時(shí)在STGC中執(zhí)行的操作的流 程圖。同時(shí),并列地,還釋放了 STGD 23以及RAMD 22的復(fù)位。在步驟STlOl,STGC 21在RAMD 22上的高速緩存管理區(qū)CiOR中加載高速緩存管 理信息的初始值。將該初始值保存在STCD 23上或保存在STGC 21內(nèi)的非易失性存儲區(qū)上。此外,STGC 21還提供用于在其保存區(qū)中設(shè)定初始值的手段。由該初始值設(shè)定的磁盤高速緩存可包括第一磁盤高速緩存和第二磁盤高速緩存 中的任意一個(gè)或兩個(gè)。在步驟ST102,STGC 21根據(jù)初始值從STGD 23向RAMD 22傳送扇區(qū)數(shù)據(jù)。重復(fù)該處理直到加載了注冊為初始值的所有第二磁盤高速緩存。圖31示出了自動加載本實(shí)施方式的高速緩存管理信息的初始值的功能的效果。假定的系統(tǒng)執(zhí)行來自圖2和圖3中所示的引導(dǎo)(boot)ROM 80的初始啟動代碼,并 且執(zhí)行CPU外圍設(shè)備的初始化,尤其是控制MMM 40的存儲控制器的初始化。然后,從STGC 21加載作為OS和應(yīng)用程序的啟動代碼的代碼⑶1、⑶2、⑶3。
情況CSl 1是通過弓I導(dǎo)BOM 80的CPU模塊30的初始化處理結(jié)束之后開始從STGM 20讀入啟動代碼的操作??偺幚頃r(shí)間是{T(執(zhí)行引導(dǎo)ROM)+T(讀取代碼1)+T(讀取代碼幻+T(執(zhí)行代碼 2) +T (讀取代碼幻+T (執(zhí)行代碼3)}。同時(shí),并列地,RAMD 22的復(fù)位也被釋放,并且CPU模塊30開始其自身的初始化處 理并且通常在CPU模塊30的初始化處理中執(zhí)行MMM 40的初始化。因此,在所有的初始化處理結(jié)束之前不可能使用利用STGC 21的總線主控功能的 外部數(shù)據(jù)傳送。情況CSll描述了這種比較實(shí)例,并且從引導(dǎo)ROM 80上執(zhí)行CPU模塊30的啟動代 碼,在執(zhí)行結(jié)束后,代碼⑶1、⑶2、⑶3被依次加載在MMM 40上并被執(zhí)行(儲存和下載)。自始至終,在電源開啟后,第一次訪問代碼⑶11 至⑶13,并且未獲得磁盤高速 緩存的效果。情況CS12利用設(shè)定高速緩存命令在CPU模塊30的啟動處理結(jié)束之前加載作為 (作為第二磁盤高速緩存的)STGC 21的啟動處理的⑶11 ⑶13。CPU模塊30在啟動處理結(jié)束之后使用用于為STCD 23加載代碼的讀取命令,并且 因此,RAMD 22上的高速緩存數(shù)據(jù)通過作為第一磁盤高速緩存的操作而變得更快。情況CS13直接執(zhí)行代碼⑶11 至⑶13,而沒有將它們作為STGC 21的啟動處理 傳送至MMM 40。因此,情況CS13是在不需要從STGM 20向MMM 40的數(shù)據(jù)傳送時(shí)間的情況 下縮短啟動時(shí)間的實(shí)例(第二磁盤高速緩存的效果,就地執(zhí)行)。在啟動處理結(jié)束之后,可以利用釋放高速緩存命令釋放所有這些第二磁盤高速緩 存數(shù)據(jù)。<2.第二實(shí)施方式〉圖32示出了根據(jù)本發(fā)明的第二實(shí)施方式的包括儲存單元的存儲系統(tǒng)的配置實(shí) 例。根據(jù)第二實(shí)施方式的存儲系統(tǒng)IOD與根據(jù)第一實(shí)施方式的上述存儲系統(tǒng)10的不 同在于以下幾點(diǎn)。S卩,在第二實(shí)施方式中,在儲存模塊20D中,作為非易失性存儲裝置并且可用作隨 機(jī)存取存儲器的非易失性隨機(jī)存取存儲器(NVRAM)沈被用作STGD。STCD作為RAM是可訪問的,并且通常,系統(tǒng)總線上的地址空間小于總儲存空間。因此,存儲接口控制部214可具有執(zhí)行轉(zhuǎn)換為NVRAM地址的功能(當(dāng)執(zhí)行設(shè)定高 速緩存命令時(shí),確定用于從系統(tǒng)總線50訪問數(shù)據(jù)的MEM-IF 25上的地址)。此外,將高速緩存管理信息保存在NVRAM 26上的預(yù)定區(qū)域中,并且存在用于工作 的以及用于保存啟動用的高速緩存管理信息的兩個(gè)高速緩存管理信息區(qū)。如上面所說明的,根據(jù)本實(shí)施方式,可獲得下列有益效果。根據(jù)本發(fā)明的儲存模塊內(nèi)部使用隨機(jī)存取存儲器裝置作為第一和第二磁盤高速 緩存,因此,能夠改善作為系統(tǒng)的性能。在本實(shí)施方式中,在儲存模塊上實(shí)現(xiàn)第二磁盤高速緩存的功能,因此,能夠避免由 于用第一磁盤高速緩存保留重復(fù)數(shù)據(jù)造成的磁盤高速緩存的使用效率降低,并且能夠改善 磁盤高速緩存對容量的效果。
此外,根據(jù)本實(shí)施方式,與使用主存儲器作為第二磁盤高速緩存的系統(tǒng)相比,能夠 實(shí)現(xiàn)由于主存儲器和儲存模塊之間不發(fā)生數(shù)據(jù)傳送而使得性能改善。同時(shí),還能改善了主存儲器的使用效率并且能夠防止由于發(fā)生交換而引起的系統(tǒng) 性能降低。而且,一般的第一磁盤高速緩存沒有從CPU指定保留在高速緩存上的數(shù)據(jù)的功 能。另一方面,在本實(shí)施方式中,指定為第二磁盤高速緩存的數(shù)據(jù)也可用作第一磁盤 高速緩存的數(shù)據(jù)。據(jù)此,結(jié)果,可以將從CPU指定的數(shù)據(jù)保留為第一磁盤高速緩存,能夠降低對儲存 裝置的訪問次數(shù)并且能夠?qū)崿F(xiàn)性能的改善。此外,本實(shí)施方式具有如下功能,即,在非易失性存儲器或儲存裝置的一部分區(qū)域 中保留存儲控制器所具有的為啟動而設(shè)置的高速緩存功能的指令。而且,本實(shí)施方式具有 如下功能,即,在儲存模塊啟動時(shí)再生保留在該磁盤高速緩存上的該區(qū)域中的指令的功能。 在本實(shí)施方式中,通過這些功能能夠?qū)崿F(xiàn)系統(tǒng)啟動時(shí)間的改善。在通常的存儲系統(tǒng)中,在CPU模塊的啟動處理完成之后在儲存器上開始對需要的 數(shù)據(jù)的訪問,并且能夠進(jìn)行對主存儲器和儲存模塊的訪問。因此,存在較大的時(shí)滯(time lag),直到從儲存器在存儲器上展開需要的數(shù)據(jù)。另一方面,在本實(shí)施方式中,儲存模塊自身能夠在磁盤高速緩存上展開數(shù)據(jù)作為 初始狀態(tài)。因此,根據(jù)本實(shí)施方式,在CPU模塊的啟動完成之后,可以立即最大限度地發(fā)揮第 一和第二磁盤高速緩存的效果,并且能夠縮短系統(tǒng)的啟動時(shí)間。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解的是,根據(jù)設(shè)計(jì)要求和其他因素可以進(jìn)行各種修改、 組合、子組合以及變化,只要它們在所附權(quán)利要求及其等同替換的范圍內(nèi)。
權(quán)利要求
1.一種儲存單元,包括隨機(jī)存取存儲裝置,該隨機(jī)存取存儲裝置使用以字為單位的地址訪問;儲存裝置,該儲存裝置使用以扇區(qū)為單位的地址訪問;以及儲存控制器,根據(jù)經(jīng)由總線指定的地址,控制對所述隨機(jī)存取存儲裝置以及所述儲存 裝置的訪問,其中,所述儲存控制器包括第一接口功能,對存儲在所述儲存裝置上的利用經(jīng)由所述總線提供的所述扇區(qū)地址指 定的數(shù)據(jù)進(jìn)行訪問,第二接口功能,利用經(jīng)由所述總線指定的字地址直接訪問所述隨機(jī)存取存儲裝置上的 數(shù)據(jù),一種功能,響應(yīng)于所述第一接口功能的訪問,使用所述隨機(jī)存取存儲裝置作為第一磁 盤高速緩存,并且確定要保存在所述隨機(jī)存取存儲裝置中的數(shù)據(jù),一種功能,通過反復(fù)進(jìn)行寄存器訪問來傳送利用所述扇區(qū)地址指定的所述數(shù)據(jù),以及一種功能,經(jīng)由所述總線通過總線主控功能來傳送作為連續(xù)字大小的數(shù)據(jù)的利用所述 扇區(qū)地址指定的數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的儲存單元,其中,所述儲存控制器包括高速緩存指定功能,經(jīng)由所述總線指定保留在所述隨機(jī)存取存儲裝置上的數(shù)據(jù)作為第 二磁盤高速緩存,以及高速緩存釋放功能,釋放高速緩存指定。
3.根據(jù)權(quán)利要求2所述的儲存單元,其中,經(jīng)由所述第一接口功能向所述儲存控制器 指示所述高速緩存指定功能,所述指示包括關(guān)于所述儲存裝置的地址以及數(shù)據(jù)大小的信息,以及所述儲存控制器從所述隨機(jī)存取存儲裝置上的未使用的區(qū)域中以指定的數(shù)據(jù)大小確 保一個(gè)區(qū)域,并且用從所述儲存裝置指定的地址在預(yù)先確保的所述區(qū)域中執(zhí)行所述數(shù)據(jù)的 寫入處理。
4.根據(jù)權(quán)利要求2或3所述的儲存單元,其中,經(jīng)由所述第一接口功能向所述儲存控制 器指示所述高速緩存釋放功能,所述指示包括關(guān)于所述儲存裝置的地址的信息,以及在釋放指令之后,所述儲存控制器確定,對于所述隨機(jī)存取存儲裝置上的指定的數(shù)據(jù) 的區(qū)域,是否將所述數(shù)據(jù)保留在所述隨機(jī)存取存儲裝置上。
5.根據(jù)權(quán)利要求2至4中任意一項(xiàng)所述的儲存單元,其中,作為所述第二磁盤緩存而保 留的所述數(shù)據(jù)還可用作所述第一磁盤高速緩存,以及所述儲存控制器具有如下功能,如果指定為所述第二磁盤高速緩存的數(shù)據(jù)已作為所述 第一磁盤緩存而存在于所述隨機(jī)存取存儲裝置上,則將所述數(shù)據(jù)切換成所述第二高速緩存 數(shù)據(jù)的數(shù)據(jù)。
6.根據(jù)權(quán)利要求2至5中任意一項(xiàng)所述的儲存單元,其中,所述儲存控制器根據(jù)其自身 的判斷,在所述儲存裝置中對作為所述第一磁盤高速緩存而保留在所述隨機(jī)存取存儲裝置 上的所述數(shù)據(jù)執(zhí)行寫回處理,并且繼續(xù)保留作為所述第二磁盤高速緩存而保留在所述隨機(jī) 存取存儲裝置上的所述數(shù)據(jù),直到所述儲存控制器接收到所述釋放指令。
7.根據(jù)權(quán)利要求2至6中任意一項(xiàng)所述的儲存單元,其中,所述儲存控制器具有判優(yōu) 器,所述判優(yōu)器用于判優(yōu)并切換用來將作為所述第一磁盤高速緩存的訪問傳輸?shù)剿鲭S機(jī) 存取存儲裝置的信號和用來直接傳輸來自所述總線的作為所述第二磁盤高速緩存的訪問 的信號。
8.根據(jù)權(quán)利要求1至7中任意一項(xiàng)所述的儲存單元,其中,所述儲存控制器具有 在非易失性存儲器中保留高速緩存管理信息的功能;以及在啟動時(shí)再生保留在所述非易失性存儲器中的指令的功能。
9.根據(jù)權(quán)利要求1至8中任意一項(xiàng)所述的儲存單元,其中,所述隨機(jī)存取存儲裝置和所 述儲存裝置由具有隨機(jī)存取存儲裝置功能的非易失性隨機(jī)存取存儲器和所述儲存裝置的 組合形成。
10.根據(jù)權(quán)利要求9所述的儲存單元,其中,所述儲存控制器具有經(jīng)由所述第二接口功 能直接訪問所述非易失性隨機(jī)儲存器的路徑。
11.一種存儲系統(tǒng),包括 主機(jī);主存儲模塊;儲存單元,通過所述主機(jī)訪問;以及系統(tǒng)總線,連接所述主機(jī)、所述主存儲模塊以及所述儲存單元, 其中,所述儲存單元包括隨機(jī)存取存儲裝置,該隨機(jī)存取存儲裝置使用以字為單位的地址訪問; 儲存裝置,該儲存裝置使用以扇區(qū)為單位的地址訪問;以及儲存控制器,根據(jù)經(jīng)由所述系統(tǒng)總線指定的地址,控制對所述隨機(jī)存取存儲裝置以及 所述儲存裝置的訪問,以及其中,所述儲存控制器包括第一接口功能,根據(jù)經(jīng)由所述系統(tǒng)總線來自所述主機(jī)的指令,對存儲在所述存儲裝置 上的利用所述扇區(qū)地址指定的數(shù)據(jù)進(jìn)行訪問,第二接口功能,通過所述主機(jī),利用經(jīng)由所述系統(tǒng)總線指定的字地址直接訪問所述隨 機(jī)存取存儲裝置上的數(shù)據(jù),一種功能,響應(yīng)于所述第一接口功能的訪問,使用所述隨機(jī)存取存儲裝置作為第一磁 盤高速緩存,并且確定要保存在所述隨機(jī)存取存儲裝置中的數(shù)據(jù),一種功能,通過反復(fù)進(jìn)行寄存器訪問來傳送利用所述扇區(qū)地址指定的所述數(shù)據(jù),以及 一種功能,經(jīng)由所述系統(tǒng)總線通過總線主控功能在所述主存儲模塊和其自身之間來傳 送作為連續(xù)字大小的數(shù)據(jù)的利用所述扇區(qū)地址指定的所述數(shù)據(jù)。
12.根據(jù)權(quán)利要求11所述的存儲系統(tǒng),其中,所述儲存控制器包括高速緩存指定功能,通過所述主機(jī),經(jīng)由所述總線指定保留在所述隨機(jī)存取存儲裝置 上的數(shù)據(jù)作為第二磁盤高速緩存,以及高速緩存釋放功能,釋放高速緩存指定。
13.根據(jù)權(quán)利要求12所述的存儲系統(tǒng),其中,經(jīng)由所述第一接口功能向所述儲存控制 器指示所述高速緩存指定功能,所述指示包括關(guān)于所述儲存裝置的地址以及數(shù)據(jù)大小的信息,以及所述儲存控制器從所述隨機(jī)存取存儲裝置上的未使用的區(qū)域中以指定的數(shù)據(jù)大小確 保一個(gè)區(qū)域,并且用從所述儲存裝置指定的地址在預(yù)先確保的所述區(qū)域中執(zhí)行所述數(shù)據(jù)的寫入處理。
14.根據(jù)權(quán)利要求12或13所述的存儲系統(tǒng),其中,經(jīng)由所述第一接口功能向所述儲存 控制器指示所述高速緩存釋放功能,所述指示包括關(guān)于所述儲存裝置的地址的信息,以及在釋放指令之后,所述儲存控制器確定,對于所述隨機(jī)存取存儲裝置上的指定的數(shù)據(jù) 區(qū)域,是否將所述數(shù)據(jù)保留在所述隨機(jī)存取存儲裝置上。
15.根據(jù)權(quán)利要求12至14中任意一項(xiàng)所述的存儲系統(tǒng),其中,作為所述第二磁盤緩存 而保留的所述數(shù)據(jù)還可用做所述第一磁盤緩存,以及所述儲存控制器具有如下功能,如果指定為所述第二磁盤高速緩存的數(shù)據(jù)已作為所述 第一磁盤緩存而存在于在所述隨機(jī)存取存儲裝置上,則將所述數(shù)據(jù)切換成所述第二高速緩 存數(shù)據(jù)的數(shù)據(jù)。
16.根據(jù)權(quán)利要求12至15中任意一項(xiàng)所述的存儲系統(tǒng),其中,所述儲存控制器根據(jù)其 自身的判斷,在所述儲存裝置中對作為所述第一磁盤高速緩存而保留在所述隨機(jī)存取存儲 裝置上的所述數(shù)據(jù)執(zhí)行寫回處理,并且繼續(xù)保留作為所述第二磁盤高速緩存而保留在所述 隨機(jī)存取存儲裝置上的所述數(shù)據(jù),直到所述儲存控制器接收到所述釋放指令。
17.根據(jù)權(quán)利要求12至16中任意一項(xiàng)所述的存儲系統(tǒng),其中,所述儲存控制器具有判 優(yōu)器,所述判優(yōu)器用于判優(yōu)并切換用來將作為所述第一磁盤高速緩存的訪問傳輸?shù)剿鲭S 機(jī)存取存儲裝置的信號和用來直接傳輸來自所述總線的作為所述第二磁盤高速緩存的訪 問的信號。
18.根據(jù)權(quán)利要求11至17中任意一項(xiàng)所述的存儲系統(tǒng),其中,所述儲存控制器具有在非易失性存儲器中保留高速緩存管理信息的功能;以及在啟動時(shí)再生保留在所述非易失性存儲器中的指令的功能。
19.根據(jù)權(quán)利要求11至18中任意一項(xiàng)所述的存儲系統(tǒng),其中,所述隨機(jī)存取存儲裝置 和所述儲存裝置由具有隨機(jī)存取存儲裝置功能的非易失性隨機(jī)存取存儲器和所述儲存裝 置的組合形成。
20.根據(jù)權(quán)利要求19所述的存儲系統(tǒng),其中,所述儲存控制器具有經(jīng)由所述第二接口 功能直接訪問非所述易失性隨機(jī)存儲器的路徑。
全文摘要
本發(fā)明公開了儲存單元及存儲系統(tǒng)。儲存單元包括隨機(jī)存取存儲裝置和儲存裝置,分別使用以字和扇區(qū)為單位的地址被訪問;儲存控制器,根據(jù)經(jīng)由總線指定的地址,控制對隨機(jī)存取存儲裝置以及儲存裝置的訪問。儲存控制器包括第一和第二接口功能,分別對利用經(jīng)由總線提供的扇區(qū)地址以及字地址指定的存儲在儲存裝置和隨機(jī)存取存儲器上的數(shù)據(jù)進(jìn)行訪問;響應(yīng)于第一接口功能的訪問,使用隨機(jī)存取存儲裝置作為第一磁盤高速緩存,并且確定要保存在隨機(jī)存取存儲裝置中數(shù)據(jù)的功能;以及通過反復(fù)進(jìn)行寄存器訪問并經(jīng)由總線通過總線主控功能,傳送利用扇區(qū)地址指定的數(shù)據(jù)作為連續(xù)的字大小的數(shù)據(jù)的功能。
文檔編號G06F12/08GK102043730SQ20101050133
公開日2011年5月4日 申請日期2010年10月8日 優(yōu)先權(quán)日2009年10月14日
發(fā)明者中西健一, 筒井敬一, 越山潤一 申請人:索尼公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
措勤县| 昌都县| 龙口市| 上饶市| 鄂托克旗| 稻城县| 苗栗县| 泗阳县| 武强县| 安平县| 婺源县| 华宁县| 阿城市| 扎赉特旗| 镇江市| 成安县| 商水县| 绥宁县| 阜康市| 镇安县| 宣威市| 淮安市| 黄陵县| 藁城市| 邹平县| 大新县| 忻州市| 翁源县| 崇礼县| 潍坊市| 义乌市| 万宁市| 郴州市| 团风县| 仁布县| 诏安县| 阜平县| 阳高县| 东城区| 弥渡县| 江安县|