專利名稱:與大容量存儲(chǔ)裝置集成的非易失性高速緩沖存儲(chǔ)器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實(shí)施例涉及數(shù)據(jù)存儲(chǔ)器。更具體地說(shuō),本發(fā)明的實(shí)施例涉及具有非易失性高速緩沖存儲(chǔ)器(以下簡(jiǎn)稱高速緩存器)的大容量存儲(chǔ)裝置。
背景技術(shù):
計(jì)算機(jī)既可在易失性存儲(chǔ)器也可在非易失性大容量存儲(chǔ)裝置中存儲(chǔ)數(shù)據(jù)。易失性存儲(chǔ)器的例示包括但不限于,動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、Rambus動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(RDRAM)等。非易失性大容量存儲(chǔ)裝置的例示包括但不限于,硬盤驅(qū)動(dòng)器、3.5英寸磁盤、5.25英寸軟盤、ZIP@盤(例如,由Roy,Utah的Iomega公司制造)、Jaz@盤(例如,由Iomega公司制造)、LS-120 Superdisk(超級(jí)盤)(例如,由Oakdale,Minnesota的Imation公司制造)、可重寫的數(shù)字通用盤(DVD-RAM)、讀/寫光盤(CD-RW)、大容量磁存儲(chǔ)裝置、大容量光存儲(chǔ)裝置、大容量磁光存儲(chǔ)裝置、全息存儲(chǔ)裝置等。存儲(chǔ)在計(jì)算機(jī)非易失性存儲(chǔ)器中的數(shù)據(jù)的例示包括計(jì)算機(jī)指令(例如,操作系統(tǒng)、一個(gè)或多個(gè)應(yīng)用程序等)以及由計(jì)算機(jī)指令訪問(wèn)的數(shù)據(jù)。
當(dāng)易失性存儲(chǔ)器掉電時(shí),存儲(chǔ)在易失性存儲(chǔ)器中的數(shù)據(jù)通常會(huì)丟失。當(dāng)非易失性大容量存儲(chǔ)裝置掉電時(shí)(例如,由于停電等原因,計(jì)算機(jī)電源被斷開時(shí)),諸如硬盤驅(qū)動(dòng)器等非易失性大容量存儲(chǔ)裝置通常不會(huì)丟失存儲(chǔ)在其中的數(shù)據(jù)。然而,與易失性存儲(chǔ)器相比,通常非易失性存儲(chǔ)器恢復(fù)和存儲(chǔ)數(shù)據(jù)的存取時(shí)間明顯長(zhǎng)。非易失性存儲(chǔ)器每存儲(chǔ)單位(例如每兆字節(jié)、每千兆字節(jié)等)通常也比諸如DRAM、SRAM、RDRAM等一些易失性存儲(chǔ)器便宜。
除了易失性存儲(chǔ)器和非易失性存儲(chǔ)器,計(jì)算機(jī)通常包括能夠根據(jù)指令和數(shù)據(jù)執(zhí)行操作的處理器。因?yàn)楦斓囊资源鎯?chǔ)器的存儲(chǔ)器存取時(shí)間通常遠(yuǎn)遠(yuǎn)小于非易失性大容量存儲(chǔ)裝置,所以將被處理器操作的指令和數(shù)據(jù)可以從較慢的非易失性大容量存儲(chǔ)裝置(例如硬盤驅(qū)動(dòng)器等)拷貝到更快的易失性存儲(chǔ)器(例如,DRAM主存儲(chǔ)器、SRAM高速緩存器等)。當(dāng)減少存儲(chǔ)器存取時(shí)間時(shí),可提高處理器性能與計(jì)算機(jī)性能。
因?yàn)榉且资源笕萘看鎯?chǔ)裝置(例如磁盤驅(qū)動(dòng)器)的存儲(chǔ)器存取時(shí)間通常比易失性存儲(chǔ)器(例如,DRAM主存儲(chǔ)器、SRAM高速緩存器等)的存儲(chǔ)器存取時(shí)間長(zhǎng),所以非易失性大容量存儲(chǔ)裝置經(jīng)常是性能瓶頸。已知的磁盤驅(qū)動(dòng)器包括易失性高速緩存器(例如,DRAM高速緩存器、SRAM高速緩存器),但是這些易失性高速緩存器通常是磁盤驅(qū)動(dòng)器的微控制器的主存儲(chǔ)器地址空間的一部分,因此它是按字節(jié)尋址的。鑒于上述內(nèi)容,可以認(rèn)識(shí)到,存在可提高計(jì)算機(jī)系統(tǒng)性能的方法和裝置的基本需求。
圖2顯示根據(jù)本發(fā)明實(shí)施例的非易失性高速緩存器的組織圖示。
圖3顯示根據(jù)本發(fā)明實(shí)施例的方法。
圖4顯示根據(jù)本發(fā)明實(shí)施例的方法。
詳細(xì)描述根據(jù)本發(fā)明的實(shí)施例,非易失性大容量存儲(chǔ)裝置包括非易失性高速緩存器。非易失性高速緩存器能夠存儲(chǔ)被寫入非易失性大容量存儲(chǔ)裝置的大容量主存儲(chǔ)媒體或能夠從其中讀取的信息。在數(shù)據(jù)讀取方面,與從非易失性大容量存儲(chǔ)裝置的大容量主存儲(chǔ)媒體讀取數(shù)據(jù)的存取時(shí)間相比,非易失性高速緩存器的存取時(shí)間較少。在從非易失性高速緩存器而不是從非易失性大容量存儲(chǔ)裝置的大容量主存儲(chǔ)媒體中讀取存儲(chǔ)在非易失性大容量存儲(chǔ)裝置中的數(shù)據(jù)時(shí),結(jié)合了本發(fā)明實(shí)施例的計(jì)算機(jī)系統(tǒng)能夠提高系統(tǒng)性能。
圖1顯示根據(jù)本發(fā)明實(shí)施例的計(jì)算機(jī)系統(tǒng)(“計(jì)算機(jī)”)的圖示。計(jì)算機(jī)110可包括處理器120,該處理器耦合到存儲(chǔ)器130,術(shù)語(yǔ)“耦合”包括直接連接、間接連接、直接通信、間接通信等。處理器120可以是例如加利福尼亞州Santa Clara的Intel公司制造的Pentium@III處理器、專用集成電路(ASIC)、微控制器等。存儲(chǔ)器130包括諸如DRAM、RDRAM、SRAM、只讀存儲(chǔ)器(ROM)、快速存儲(chǔ)器等存儲(chǔ)數(shù)字信息的裝置。在另一實(shí)施例中,系統(tǒng)總線能夠在處理器120和系統(tǒng)部件之間提供通信路徑。系統(tǒng)總線可以是外圍部件互連(PCI)總線,擴(kuò)展工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)總線(EISA)等。
在一個(gè)實(shí)施例中,芯片集可耦合到處理器120和其它諸如存儲(chǔ)器130、大容量存儲(chǔ)裝置140、連在擴(kuò)展總線上的外圍部件等的系統(tǒng)部件并管理它們之間的相互作用。術(shù)語(yǔ)芯片集包括由一個(gè)或多個(gè)集成電路芯片組成的組,充當(dāng)集線器(或核心)在處理器和其它系統(tǒng)部件之間傳送數(shù)據(jù)。芯片集的例示包括Intel公司制造的820和810E芯片集。芯片集可以是單個(gè)集成電路芯片或者可以包括兩個(gè)或更多集成電路芯片。芯片集可包括存儲(chǔ)器控制集線器。在包括PCI總線的實(shí)施例中,存儲(chǔ)器控制集線器能夠執(zhí)行被稱為“北橋功能”的功能。芯片集可包括輸入/輸出控制器集線器。在包括PCI總線的實(shí)施例中,輸入/輸出控制器集線器能夠執(zhí)行被稱為“南橋功能”的功能。
處理器120還經(jīng)通信路徑135與大容量存儲(chǔ)裝置140耦合。在一個(gè)實(shí)施例中,通信路徑135可以是集成設(shè)備電路(IDE)總線、增強(qiáng)型IDE(EIDE)總線、AT嵌入式接口(ATA)總線等。在另一實(shí)施例中,通信路徑135可以是諸如小型計(jì)算機(jī)系統(tǒng)接口(SCSI)、IEEE1394總線、通用串行總線(USB)等的擴(kuò)展總線。
大容量存儲(chǔ)裝置140的例示包括硬盤驅(qū)動(dòng)器、ZIP@驅(qū)動(dòng)器、Jaz@驅(qū)動(dòng)器、CD-RW驅(qū)動(dòng)器、DVD-RAM驅(qū)動(dòng)器、LS-120 Superdisk驅(qū)動(dòng)器、磁存儲(chǔ)裝置、光存儲(chǔ)裝置、磁光存儲(chǔ)裝置、全息存儲(chǔ)裝置等。硬盤驅(qū)動(dòng)器的例示是加利福尼亞Scotts Valley的Seagate技術(shù)公司制造的Cheetah 18XL硬盤驅(qū)動(dòng)器。
大容量存儲(chǔ)裝置140可包括大容量存儲(chǔ)裝置控制器141、大容量主存儲(chǔ)媒體148以及非易失性高速緩存器149。大容量存儲(chǔ)裝置控制器141可包括微控制器142、存儲(chǔ)器143、接口邏輯部件144、大容量主存儲(chǔ)媒體ECC(錯(cuò)誤控制和檢驗(yàn))邏輯部件145以及非易失性高速緩存器ECC邏輯部件146。在本發(fā)明的另一實(shí)施例中,大容量存儲(chǔ)裝置控制器141可包括實(shí)現(xiàn)操作大容量存儲(chǔ)裝置140功能的一個(gè)或多個(gè)ASIC(例如,第一ASIC結(jié)合處理器、存儲(chǔ)器和接口邏輯部件,第二ASIC實(shí)現(xiàn)ECC邏輯部件等)微控制器142可執(zhí)行存儲(chǔ)在存儲(chǔ)器143中的指令以控制大容量存儲(chǔ)裝置140的操作(例如,存儲(chǔ)器143可包括只讀存儲(chǔ)器,該存儲(chǔ)器存儲(chǔ)程序指令以在加電后初始化并操作大容量存儲(chǔ)裝置140,存儲(chǔ)器143能夠存儲(chǔ)指令以執(zhí)行從大容量存儲(chǔ)裝置140的數(shù)據(jù)讀取,存儲(chǔ)器143能夠存儲(chǔ)指令以控制大容量存儲(chǔ)裝置140的格式化和/或向大容量存儲(chǔ)裝置140寫數(shù)據(jù)等)。存儲(chǔ)器143還可包括緩沖器(例如易失存儲(chǔ)緩沖器等),該緩沖器能夠暫時(shí)保留向大容量存儲(chǔ)裝置140寫入或從中讀取的數(shù)據(jù)。
微控制器142和接口邏輯部件144能夠處理來(lái)自處理器120的請(qǐng)求以從大容量存儲(chǔ)裝置140讀取或向其寫入數(shù)據(jù)。在一個(gè)實(shí)施例中,大容量存儲(chǔ)裝置140是硬盤驅(qū)動(dòng)器而接口邏輯部件144可以是IDE接口邏輯部件、EIDE接口邏輯部件、ATA接口邏輯部件、SCIC接口邏輯部件、光纖通道接口邏輯部件、InfiniBand接口邏輯部件等。在另一實(shí)施例中,大容量存儲(chǔ)裝置140是CD-RW驅(qū)動(dòng)器或DVD-RAM驅(qū)動(dòng)器而接口邏輯部件144是ATA分組接口(ATAPI)邏輯部件。術(shù)語(yǔ)“邏輯部件”包含硬件、固件、軟件、它們的組合等。
在一個(gè)實(shí)施例中,大容量存儲(chǔ)裝置140是硬盤驅(qū)動(dòng)器,而大容量主存儲(chǔ)媒體148包括一張或多張盤片。每張盤片可具有一個(gè)或多個(gè)可記錄盤面,而每個(gè)可記錄盤面可由一個(gè)特殊的讀/寫頭進(jìn)行讀/寫。每個(gè)盤面可被劃分為多個(gè)紋跡;而每個(gè)紋跡可以被劃分為多個(gè)物理扇區(qū)。當(dāng)硬盤驅(qū)動(dòng)器有多個(gè)可記錄盤面時(shí),所有可記錄盤面上位于相同半徑處的所有紋跡的集合稱為柱面。硬盤驅(qū)動(dòng)器每個(gè)物理扇區(qū)的位置可以由指定柱面、磁頭(盤面)和物理扇區(qū)的物理地址指定。
在另一實(shí)施例中,當(dāng)處理器從硬盤驅(qū)動(dòng)器請(qǐng)求數(shù)據(jù)時(shí),該請(qǐng)求不指定數(shù)據(jù)的物理地址而指定數(shù)據(jù)的邏輯地址。硬盤數(shù)據(jù)的邏輯地址可包括邏輯扇區(qū)地址、邏輯塊地址等。當(dāng)硬盤驅(qū)動(dòng)器被格式化時(shí),硬盤驅(qū)動(dòng)器的硬盤驅(qū)動(dòng)器控制器能夠?qū)⑺形锢砩葏^(qū)組編為邏輯扇區(qū)(例如,給每個(gè)物理扇區(qū)分配一個(gè)邏輯扇區(qū)地址等),并且映射算法能夠?qū)⒚總€(gè)邏輯扇區(qū)地址映射為一個(gè)特定的物理地址。當(dāng)向硬盤驅(qū)動(dòng)器發(fā)出的讀/寫請(qǐng)求指定邏輯扇區(qū)地址時(shí),該硬盤驅(qū)動(dòng)器可被認(rèn)為是面向扇區(qū)的(即可扇區(qū)尋址的)。硬盤驅(qū)動(dòng)器控制器還可將物理扇區(qū)集合映射為特定的邏輯塊地址。當(dāng)向硬盤驅(qū)動(dòng)器發(fā)出的讀/寫請(qǐng)求指定一個(gè)邏輯塊地址時(shí),該硬盤驅(qū)動(dòng)器可被認(rèn)為是面向塊的(即可塊尋址的)。
非易失性高速緩存器149可高速緩存通常存儲(chǔ)在大容量主存儲(chǔ)媒體148中的數(shù)據(jù)。非易失性高速緩存器149可高速緩存從大容量主存儲(chǔ)媒體148中讀取和向其寫入的數(shù)據(jù)。與大容量主存儲(chǔ)媒體148的存取時(shí)間相比,非易失性高速緩存器149能夠具有更快的存取時(shí)間。因此,與從大容量主存儲(chǔ)媒體148讀/寫數(shù)據(jù)相比,從大容量存儲(chǔ)裝置140讀取數(shù)據(jù)和寫入數(shù)據(jù)能夠更快地完成。在一個(gè)實(shí)施例中,與數(shù)據(jù)讀/寫相比,到非易失性高速緩存器149的數(shù)據(jù)讀/寫需要更少的電量??梢詫?shí)現(xiàn)寫回算法(即,從非易失性高速緩存器149向大容量主存儲(chǔ)媒體148寫回)以提高高速緩存性能。在另一實(shí)施例中,實(shí)現(xiàn)直寫式高速緩存。
非易失性高速緩存器149能夠存儲(chǔ)經(jīng)常使用的大容量存儲(chǔ)裝置數(shù)據(jù)的復(fù)制本并為那些經(jīng)常使用的數(shù)據(jù)提供減少的存取時(shí)間。在一個(gè)實(shí)施例中,當(dāng)數(shù)據(jù)從大容量主存儲(chǔ)媒體148中被讀取并在通信路徑135上發(fā)送時(shí),數(shù)據(jù)副本可存儲(chǔ)在非易失性高速緩存器149中。當(dāng)數(shù)據(jù)在通信路徑135上被發(fā)送到大容量存儲(chǔ)裝置140以被存儲(chǔ)時(shí),可以根據(jù)寫回算法、直寫協(xié)議等將數(shù)據(jù)寫入非易失性高速緩存器149并寫入大容量主存儲(chǔ)媒體148。由于非易失性高速緩存器149是非易失性存儲(chǔ)器,當(dāng)斷開電源(例如,大容量存儲(chǔ)裝置140的電源、計(jì)算機(jī)110的電源等)時(shí),保存在非易失性高速緩存器中的數(shù)據(jù)一般不會(huì)丟失。非易失性高速緩存器149可以是任何類型的存儲(chǔ)器,當(dāng)取消或斷開非易失性高速緩存器149的外部電源時(shí),該存儲(chǔ)器可被讀取/寫入并保留它的數(shù)據(jù)。
非易失性高速緩存器149可以是例如快速存儲(chǔ)器、電池后備DRAM、電池后備SRAM、原子力探針存儲(chǔ)器、磁RAM、鐵電RAM、全息存儲(chǔ)器、存儲(chǔ)器陣列等。在一個(gè)實(shí)施例中,從非易失性高速緩存器149中的讀取可以是破壞性讀取。非易失性高速緩存器149可以是面向塊的高速緩存器,其中數(shù)據(jù)在邏輯塊中被訪問(wèn)(例如寫、讀等)。例如,當(dāng)大容量存儲(chǔ)裝置140接收數(shù)據(jù)請(qǐng)求時(shí)(例如,從大容量存儲(chǔ)裝置140向通信路徑135上讀取數(shù)據(jù)的數(shù)據(jù)請(qǐng)求、從通信路徑135向大容量存儲(chǔ)裝置140寫入數(shù)據(jù)的數(shù)據(jù)請(qǐng)求等),數(shù)據(jù)請(qǐng)求可以包含為邏輯塊地址、邏輯扇區(qū)地址等的地址。在本發(fā)明的一個(gè)實(shí)施例中,每個(gè)存儲(chǔ)在非易失性高速緩存器149中的數(shù)據(jù)入口都對(duì)應(yīng)于存儲(chǔ)在大容量主存儲(chǔ)媒體148的邏輯地址中的數(shù)據(jù)。
在一個(gè)實(shí)施例中,其中大容量存儲(chǔ)裝置140是硬盤驅(qū)動(dòng)器,因?yàn)閺姆且资愿咚倬彺嫫?49讀/寫數(shù)據(jù)不需要預(yù)熱時(shí)間,該預(yù)熱時(shí)間是伴隨從硬盤驅(qū)動(dòng)器盤片寫/讀數(shù)據(jù)發(fā)生的(例如,旋轉(zhuǎn)盤片直至工作速度,放置讀/寫磁頭等),所以非易失性高速緩存器149能夠提高系統(tǒng)性能。例如,相對(duì)硬盤驅(qū)動(dòng)器盤片,當(dāng)從非易失性高速緩存器149讀取啟動(dòng)信息(例如,操作系統(tǒng)數(shù)據(jù)、裝置驅(qū)動(dòng)器、應(yīng)用數(shù)據(jù)等)時(shí),可減少計(jì)算機(jī)110啟動(dòng)系統(tǒng)所需的時(shí)間。還可減少計(jì)算機(jī)110的用戶所經(jīng)歷的擊鍵/點(diǎn)擊鼠標(biāo)的等待時(shí)間。
在一個(gè)實(shí)施例中,高速緩存器管理指令能夠管理從非易失性高速緩存器149讀取/寫入的數(shù)據(jù)。高速緩存器管理指令可存儲(chǔ)在存儲(chǔ)器143中,可以是大容量存儲(chǔ)裝置驅(qū)動(dòng)器的一部分等。高速緩存器管理指令能夠決定什么數(shù)據(jù)可被高速緩存,什么數(shù)據(jù)可被逐出高速緩存器,什么數(shù)據(jù)可被寫回到大容量主存儲(chǔ)媒體,何時(shí)發(fā)生數(shù)據(jù)寫回等。高速緩存器管理指令還可確定什么數(shù)據(jù)可被預(yù)取到非易失性高速緩存器149中??墒褂靡阎母咚倬彺嫫鞴芾硭惴ㄗ鞒龈咚倬彺嫫鞴芾頉Q定,例如某些數(shù)據(jù)是否應(yīng)該被高速緩存到非易失性高速緩存器149中。例如,當(dāng)高速緩存器管理算法確定從大容量裝置140讀取的數(shù)據(jù)在近期再被讀到的可能性小(例如,數(shù)據(jù)是MP3音頻文件的一部分、WAV文件的一部分、AVI文件的一部分、流數(shù)據(jù)文件的一部分等),那么該數(shù)據(jù)不需要被高速緩存。另外,當(dāng)從非易失性高速緩存器149向大容量主存儲(chǔ)媒體148寫數(shù)據(jù)有利時(shí),高速緩存器管理指令能夠利用諸如最近最少使用(LRU)算法、隨機(jī)替代算法等確定寫回什么數(shù)據(jù)。
在一個(gè)實(shí)施例中,大容量存儲(chǔ)裝置140的大容量存儲(chǔ)裝置驅(qū)動(dòng)器可以是典型的大容量存儲(chǔ)裝置驅(qū)動(dòng)器(例如,WIN98環(huán)境中的ATAPI.SYS等),并且高速緩存器管理指令可被存儲(chǔ)在存儲(chǔ)器143中。在這樣一個(gè)實(shí)施例中,非易失性高速緩存器的存在對(duì)于操作系統(tǒng)可以是透明的。在另一實(shí)施例中,高速緩存器管理指令可以是大容量存儲(chǔ)裝置控制器141的高速緩存器管理邏輯部件的一部分。
從大容量主存儲(chǔ)媒體148讀取的數(shù)據(jù)可由大容量主存儲(chǔ)媒體ECC邏輯部件145處理,而從非易失性高速緩存器149讀取的數(shù)據(jù)可由非易失性高速緩存器ECC邏輯部件146處理。每個(gè)大容量主存儲(chǔ)媒體ECC邏輯部件145和非易失性高速緩存器ECC邏輯部件146能夠在比特或多比特級(jí)檢測(cè)錯(cuò)誤并在數(shù)據(jù)被發(fā)送到通信路徑135時(shí)糾正這些錯(cuò)誤。
圖2顯示根據(jù)本發(fā)明的一個(gè)實(shí)施例,非易失性高速緩存器的組織圖示。非易失性高速緩存器200(例如,圖1的非易失性高速緩存器149)可存儲(chǔ)多個(gè)高速緩存入口205。每個(gè)高速緩存入口205可包括表入口域210和數(shù)據(jù)入口220。數(shù)據(jù)入口220可包括有效域222、修改域224、地址域226、數(shù)據(jù)域228和ECC域229。
高速緩存入口205的表入口域210可對(duì)應(yīng)于高速緩存入口205的每個(gè)數(shù)據(jù)入口220的標(biāo)記/索引信息。多個(gè)表入口域210可包含高速緩存目錄表215,并且可訪問(wèn)高速緩存目錄以確定大容量存儲(chǔ)裝置(例如,硬盤驅(qū)動(dòng)器的磁盤扇區(qū)、硬盤驅(qū)動(dòng)器的邏輯塊等)中特定的一組數(shù)據(jù)是否出現(xiàn)在非易失性高速緩存器中。在一個(gè)實(shí)施例中,高速緩存入口205的表入口域210可存儲(chǔ)高速緩存入口205的數(shù)據(jù)入口220的地址(例如,邏輯扇區(qū)地址、邏輯塊地址等)。為了確定大容量存儲(chǔ)裝置中特定的一組數(shù)據(jù)是否出現(xiàn)在非易失性高速緩存器中,例如可用已知的搜索算法搜索高速緩存目錄表215。或者,可用散列算法將高速緩存目錄排序。在大容量存儲(chǔ)裝置是硬盤驅(qū)動(dòng)器的實(shí)施例中,非易失性高速緩存器中所請(qǐng)求磁盤扇區(qū)的存在可以通過(guò)將所請(qǐng)求磁盤的扇區(qū)地址和存儲(chǔ)在高速緩存目錄表215中的扇區(qū)地址進(jìn)行比較來(lái)確定。在一個(gè)實(shí)施例中,非易失性高速緩存器可以是全相關(guān)高速緩存器。在另一實(shí)施例中,非易失性高速緩存器可以是一組相關(guān)高速緩存器。
在一個(gè)實(shí)施例中,存儲(chǔ)在大容量存儲(chǔ)裝置的非易失性高速緩存器中的各個(gè)高速緩存入口205對(duì)應(yīng)于大容量存儲(chǔ)裝置的邏輯塊。在另一實(shí)施例中,存儲(chǔ)在大容量存儲(chǔ)裝置的非易失性高速緩存器中的各個(gè)高速緩存入口205對(duì)應(yīng)于大容量存儲(chǔ)裝置的扇區(qū)(例如,物理扇區(qū)、邏輯扇區(qū))。
在一個(gè)實(shí)施例中,非易失性高速緩存器中有2000000個(gè)高速緩存入口205,在高速緩存目錄表215中有2000000個(gè)表入口。在這個(gè)實(shí)施例中,高速緩存目錄表215的每個(gè)表入口長(zhǎng)度可以是四字節(jié)長(zhǎng),并且高速緩存目錄表215可使用非易失性存儲(chǔ)器的八兆字節(jié)。通過(guò)包括每個(gè)高速緩存入口中的一塊多磁盤扇區(qū),可減少高速緩存目錄表215的大小(進(jìn)而提高平均高速緩存存取速度)。
在一個(gè)實(shí)施例中,高速緩存入口205的數(shù)據(jù)入口220可具有有效域222、修改域224、地址域226、數(shù)據(jù)域228以及ECC域229。當(dāng)高速緩存入口205包含有效數(shù)據(jù)時(shí),有效域222可被設(shè)置為“有效”(例如,邏輯1和邏輯0中的一個(gè)等),而當(dāng)高速緩存入口205不包含有效數(shù)據(jù)時(shí),有效域222可被設(shè)置為“無(wú)效”(例如,邏輯1或邏輯0中的另一個(gè)等)。例如,當(dāng)從非易失性高速緩存器中逐出數(shù)據(jù)以允許其它數(shù)據(jù)被高速緩存到非易失性高速緩存器中時(shí),被逐出數(shù)據(jù)入口的有效域可從“有效”改為“無(wú)效”以表示這些高速緩存入口不再存儲(chǔ)高速緩存的數(shù)據(jù)。如果高速緩存入口205中的數(shù)據(jù)與存儲(chǔ)在大容量存儲(chǔ)裝置的大容量主存儲(chǔ)媒體上對(duì)應(yīng)位置的數(shù)據(jù)不同,則修改域224可被設(shè)置為“已修改”。例如,并參考圖1和2,當(dāng)對(duì)應(yīng)于大容量存儲(chǔ)裝置140的邏輯地址的數(shù)據(jù)被寫回到大容量存儲(chǔ)裝置140并存儲(chǔ)在非易失性高速緩存器149中,并且那個(gè)數(shù)據(jù)在從大容量主存儲(chǔ)媒體140中讀取后被修改了,那么非易失性高速緩存入口205的修改域224可被設(shè)為“已修改”以表示對(duì)應(yīng)于存儲(chǔ)在非易失性高速緩存器149中的那個(gè)邏輯地址的數(shù)據(jù)副本不同于對(duì)應(yīng)于存儲(chǔ)在大容量主存儲(chǔ)媒體148上的那個(gè)邏輯地址的數(shù)據(jù)。修改域224可被稱為“頁(yè)面重寫標(biāo)志位”并且當(dāng)數(shù)據(jù)被成功寫回大容量主存儲(chǔ)媒體148并保留在非易失性高速緩存器149時(shí)可被清除。
地址域226可包含存儲(chǔ)在高速緩存入口205中的數(shù)據(jù)的地址(例如,邏輯地址、物理地址)。在大容量存儲(chǔ)裝置是硬盤驅(qū)動(dòng)器的實(shí)施例中,地址域226可存儲(chǔ)扇區(qū)地址而且可被稱為“扇區(qū)標(biāo)識(shí)符”。在這樣一個(gè)實(shí)施例中,其中數(shù)據(jù)的邏輯塊被高速緩存在非易失性高速緩存器中(例如,對(duì)應(yīng)于多個(gè)扇區(qū)的各個(gè)邏輯塊),地址域226可包含邏輯塊的啟始扇區(qū)地址,其中每個(gè)邏輯塊具有已知的固定長(zhǎng)度。
數(shù)據(jù)域228可存儲(chǔ)高速緩存入口205的數(shù)據(jù)。在大容量存儲(chǔ)裝置是硬盤驅(qū)動(dòng)器的實(shí)施例中,數(shù)據(jù)域228可包含數(shù)據(jù)磁盤扇區(qū)(例如,512字節(jié))、數(shù)據(jù)邏輯塊等。ECC域229可為高速緩存入口205的數(shù)據(jù)存儲(chǔ)糾錯(cuò)碼。在一個(gè)實(shí)施例中,數(shù)據(jù)的每個(gè)邏輯塊與一個(gè)糾錯(cuò)碼關(guān)聯(lián)。
圖3顯示根據(jù)本發(fā)明實(shí)施例的方法。在本發(fā)明的一個(gè)實(shí)施例中,大容量存儲(chǔ)裝置接收數(shù)據(jù)請(qǐng)求(例如,來(lái)自處理器120的請(qǐng)求、來(lái)自計(jì)算機(jī)110的操作系統(tǒng)的請(qǐng)求、來(lái)自在計(jì)算機(jī)110上執(zhí)行的應(yīng)用的請(qǐng)求等)(框310)。確定所請(qǐng)求數(shù)據(jù)是否存儲(chǔ)在大容量存儲(chǔ)裝置的非易失性高速緩存器中(框320)。在一個(gè)實(shí)施例中,數(shù)據(jù)請(qǐng)求包括地址,而該地址用于產(chǎn)生高速緩存命中或高速緩存未命中表示。在另一實(shí)施例中,高速緩存目錄包括高速緩存在非易失性高速緩存器中的數(shù)據(jù)的地址,并且能夠根據(jù)高速緩存目錄和所請(qǐng)求數(shù)據(jù)的地址產(chǎn)生所請(qǐng)求數(shù)據(jù)被高速緩存在非易失性高速緩存器中的表示。當(dāng)所請(qǐng)求數(shù)據(jù)被存儲(chǔ)在非易失性高速緩存器中時(shí),從非易失性高速緩存器中讀取數(shù)據(jù)(框330),可對(duì)所讀取數(shù)據(jù)執(zhí)行錯(cuò)誤檢查和糾正(框335),并且可從大容量存儲(chǔ)裝置發(fā)送該數(shù)據(jù)(框340)。當(dāng)所請(qǐng)求數(shù)據(jù)未被存儲(chǔ)在非易失性高速緩存器中時(shí),可從大容量存儲(chǔ)裝置的大容量主存儲(chǔ)媒體中讀取該數(shù)據(jù)(框360),可對(duì)所讀取數(shù)據(jù)執(zhí)行錯(cuò)誤檢查和糾正(框365),可從大容量存儲(chǔ)裝置發(fā)送數(shù)據(jù)(框370),并且可將該數(shù)據(jù)寫入非易失性高速緩存器(框375)。
圖4顯示根據(jù)本發(fā)明實(shí)施例的方法。接收在非易失性大容量存儲(chǔ)裝置中存儲(chǔ)數(shù)據(jù)的請(qǐng)求(框410)。例如,正在文字處理程序中編輯文件的用戶可命令文字處理程序保存文件。作為另一例示,文字處理程序可包括定時(shí)保存文件的自動(dòng)保存功能。作為另一例示,操作系統(tǒng)可命令存儲(chǔ)在主存儲(chǔ)器(例如DRAM)中的數(shù)據(jù)存儲(chǔ)到硬盤驅(qū)動(dòng)器或其它非易失性存儲(chǔ)器中(例如,以便為其它數(shù)據(jù)釋放主存儲(chǔ)器空間等)??勺鞒鰶Q定是否將數(shù)據(jù)存儲(chǔ)到非易失性高速緩存器中(框420)。當(dāng)作出決定將數(shù)據(jù)存儲(chǔ)到非易失性高速緩存器中,則該數(shù)據(jù)可被存儲(chǔ)到非易失性高速緩存器中(框430)。在一個(gè)實(shí)施例中,在非易失性高速緩存器中存儲(chǔ)數(shù)據(jù)包括更新非易失性高速緩存器的高速緩存目錄表(框440),當(dāng)作出決定不將數(shù)據(jù)存儲(chǔ)在非易失性高速緩存器中時(shí),則該數(shù)據(jù)可被存儲(chǔ)到非易失性大容量存儲(chǔ)裝置的大容量主存儲(chǔ)媒體中(框450)。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,適合被處理器執(zhí)行以執(zhí)行一個(gè)方法的指令被存儲(chǔ)在計(jì)算機(jī)可讀媒體上。計(jì)算機(jī)可讀媒體可以是存儲(chǔ)數(shù)字信息的裝置。例如,計(jì)算機(jī)可讀媒體包括在本領(lǐng)域已知的存儲(chǔ)軟件和/或固件(例如微碼)的ROM。計(jì)算機(jī)可讀媒體可由適合執(zhí)行適合被執(zhí)行的指令的處理器訪問(wèn)。術(shù)語(yǔ)“適合被執(zhí)行”表示包含在其當(dāng)前形式下(例如機(jī)器代碼)準(zhǔn)備好由處理器執(zhí)行,或需要進(jìn)一步操作(例如,編輯、解密或提供存取碼等)以使其準(zhǔn)備好由處理器執(zhí)行的任何指令。
根據(jù)本發(fā)明實(shí)施例的方法和裝置能夠有利地高速緩存從非易失性高速緩存器的大容量存儲(chǔ)裝置中讀取或向其寫入的數(shù)據(jù)。即使當(dāng)非易失性高速緩存器和大容量存儲(chǔ)裝置的外部電源被斷開時(shí),非易失性高速緩存器也可保留其數(shù)據(jù)。本發(fā)明的實(shí)施例能夠減少?gòu)拇笕萘看鎯?chǔ)裝置讀取或向其寫入數(shù)據(jù)的存取時(shí)間并因此提高具有大容量存儲(chǔ)裝置的系統(tǒng)的系統(tǒng)性能。
已經(jīng)描述了在大容量存儲(chǔ)裝置的非易失性高速緩存器中存儲(chǔ)數(shù)據(jù)的方法和裝置的實(shí)施例。為了解釋,以上描述中列舉了大量特定細(xì)節(jié)以提供對(duì)本發(fā)明的透徹理解。然而本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,沒(méi)有這些特定細(xì)節(jié),本發(fā)明也可以被付諸實(shí)行。在其它例示中,以方框圖形式顯示了結(jié)構(gòu)和裝置。而且,本領(lǐng)域的技術(shù)人員能夠容易認(rèn)識(shí)到,介紹和執(zhí)行方法的特定順序是說(shuō)明性的,并且可以預(yù)期,該順序可被改變并仍處于本發(fā)明的精神和范圍中。
在以上詳細(xì)的描述中,參考特定例示性實(shí)施例描述了根據(jù)本發(fā)明實(shí)施例的裝置和方法。因此,此說(shuō)明書和附圖將被視為說(shuō)明性的而非限制性的。
權(quán)利要求
1.一種數(shù)據(jù)存儲(chǔ)裝置,所述裝置包括非易失性大容量存儲(chǔ)裝置,所述非易失性大容量存儲(chǔ)裝置包括非易失性高速緩存器。
2.如權(quán)利要求1所述的裝置,其特征在于所述非易失性大容量存儲(chǔ)裝置是面向塊的而且所述非易失性高速緩存器是面向塊的。
3.如權(quán)利要求1所述的裝置,其特征在于所述非易失性大容量存儲(chǔ)裝置是面向扇區(qū)的而且所述非易失性高速緩存器是面向扇區(qū)的。
4.如權(quán)利要求1所述的裝置,其特征在于所述非易失性大容量存儲(chǔ)裝置是硬盤驅(qū)動(dòng)器。
5.如權(quán)利要求1所述的裝置,其特征在于所述非易失性大容量存儲(chǔ)裝置包括具有第一非易失性存儲(chǔ)媒體的大容量主存儲(chǔ)媒體,所述非易失性高速緩存器包括第二非易失性存儲(chǔ)媒體,所述第一非易失性存儲(chǔ)媒體是與所述第二非易失性存儲(chǔ)媒體不同類型的非易失性存儲(chǔ)媒體。
6.如權(quán)利要求5所述的裝置,其特征在于所述大容量主存儲(chǔ)媒體包括具有可記錄表面以存儲(chǔ)數(shù)據(jù)的盤片。
7.如權(quán)利要求5所述的裝置,其特征在于還包含第一糾錯(cuò)邏輯部件,以處理從所述大容量主存儲(chǔ)媒體讀取的數(shù)據(jù);以及第二糾錯(cuò)邏輯部件,以處理從所述非易失性高速緩存器讀取的數(shù)據(jù)。
8.如權(quán)利要求1所述的裝置,其特征在于所述非易失性高速緩存器包括非易失性存儲(chǔ)陣列。
9.一種計(jì)算機(jī)系統(tǒng),它包含處理器;與所述處理器耦合的存儲(chǔ)器;以及與所述處理器耦合的非易失性大容量存儲(chǔ)裝置,所述非易失性大容量存儲(chǔ)裝置具有大容量主存儲(chǔ)媒體,以及與所述大容量主存儲(chǔ)媒體耦合的非易失性高速緩存器。
10.如權(quán)利要求9所述的計(jì)算機(jī)系統(tǒng),其特征在于所述大容量主存儲(chǔ)媒體包括第一非易失性存儲(chǔ)媒體,所述非易失性高速緩存器包括第二非易失性存儲(chǔ)媒體,所述第一非易失性存儲(chǔ)媒體是與所述第二非易失性存儲(chǔ)媒體不同類型的非易失性存儲(chǔ)媒體。
11.如權(quán)利要求9所述的計(jì)算機(jī)系統(tǒng),其特征在于所述非易失性大容量存儲(chǔ)裝置是面向塊的而且所述非易失性高速緩存器是面向塊的。
12.如權(quán)利要求9所述的計(jì)算機(jī)系統(tǒng),其特征在于所述非易失性大容量存儲(chǔ)裝置是面向扇區(qū)的而且所述非易失性高速緩存器是面向扇區(qū)的。
13.如權(quán)利要求9所述的計(jì)算機(jī)系統(tǒng),其特征在于所述第一非易失性存儲(chǔ)媒體是從由可記錄磁媒體、可記錄光媒體以及可記錄磁光媒體組成的組中選出的可記錄媒體。
14.如權(quán)利要求9所述的計(jì)算機(jī)系統(tǒng),其特征在于所述第二非易失性存儲(chǔ)媒體是從由電池供電的動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器、電池供電的靜態(tài)隨機(jī)存取存儲(chǔ)器、快速存儲(chǔ)器、原子探針存儲(chǔ)存儲(chǔ)器、鐵電存儲(chǔ)器以及全息存儲(chǔ)器組成的組中選出的存儲(chǔ)媒體。
15.一種處理數(shù)據(jù)請(qǐng)求的方法,所述方法包括接收對(duì)存儲(chǔ)在非易失性大容量存儲(chǔ)裝置中的第一組數(shù)據(jù)的請(qǐng)求;確定所述第一組數(shù)據(jù)存儲(chǔ)在所述非易失性大容量存儲(chǔ)裝置的非易失性高速緩存器中;從所述非易失性高速緩存器讀取所述第一組數(shù)據(jù);以及發(fā)送所述第一組數(shù)據(jù)。
16.如權(quán)利要求15所述的方法,其特征在于從所述非易失性高速緩存器讀取所述第一組數(shù)據(jù)包括對(duì)所述第一組數(shù)據(jù)的子集執(zhí)行糾錯(cuò);以及發(fā)送從所述非易失性高速緩存器讀取所述數(shù)據(jù)包括發(fā)送所述第一組數(shù)據(jù)的所述已糾錯(cuò)子集。
17.如權(quán)利要求16所述的方法,其特征在于還包括接收對(duì)存儲(chǔ)在所述非易失性大容量存儲(chǔ)裝置中的第二組數(shù)據(jù)的請(qǐng)求;確定所述第二組數(shù)據(jù)未存儲(chǔ)在所述非易失性大容量存儲(chǔ)裝置的非易失性高速緩存器中;從所述非易失性大容量存儲(chǔ)裝置的大容量主存儲(chǔ)媒體讀取所述第二組數(shù)據(jù);將所述第二組數(shù)據(jù)寫入所述非易失性高速緩存器;以及發(fā)送所述第二組數(shù)據(jù)。
18.如權(quán)利要求15所述的方法,其特征在于對(duì)第一組數(shù)據(jù)的所述請(qǐng)求是面向塊的請(qǐng)求。
19.如權(quán)利要求15所述的方法,其特征在于對(duì)第一組數(shù)據(jù)的所述請(qǐng)求是面向扇區(qū)的請(qǐng)求。
全文摘要
與包括非易失性高速緩存器的非易失性大容量存儲(chǔ)裝置相關(guān)的裝置和方法。
文檔編號(hào)G06F12/08GK1465009SQ01814277
公開日2003年12月31日 申請(qǐng)日期2001年6月1日 優(yōu)先權(quán)日2000年6月23日
發(fā)明者R·庫(kù)爾森 申請(qǐng)人:英特爾公司