欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

非易失性存儲(chǔ)器中的數(shù)據(jù)高速緩存的制作方法

文檔序號:6350688閱讀:212來源:國知局
專利名稱:非易失性存儲(chǔ)器中的數(shù)據(jù)高速緩存的制作方法
技術(shù)領(lǐng)域
本公開描述了與數(shù)據(jù)高速緩存有關(guān)的系統(tǒng)和技術(shù)。
背景技術(shù)
主機(jī)系統(tǒng)可以與存儲(chǔ)系統(tǒng)進(jìn)行通信以便讀寫數(shù)據(jù)。主機(jī)系統(tǒng)可以包括計(jì)算機(jī)系統(tǒng),諸如個(gè)人計(jì)算機(jī)、消費(fèi)電子設(shè)備或者服務(wù)器系統(tǒng)。存儲(chǔ)系統(tǒng)可以包括一個(gè)或多個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備,諸如與主機(jī)系統(tǒng)通信的硬盤驅(qū)動(dòng)器(HDD)或固態(tài)驅(qū)動(dòng)器(SSD)。在一些實(shí)現(xiàn)中,主機(jī)系統(tǒng)包括存儲(chǔ)系統(tǒng),而在其他實(shí)現(xiàn)中,存儲(chǔ)系統(tǒng)在主機(jī)系統(tǒng)之外。存儲(chǔ)系統(tǒng)可以執(zhí)行數(shù)據(jù)高速緩存以便減少平均訪問延遲時(shí)間。

發(fā)明內(nèi)容
本公開包括與數(shù)據(jù)高速緩存有關(guān)的系統(tǒng)和技術(shù)。根據(jù)所描述的系統(tǒng)和技術(shù)的一個(gè)方面,一種系統(tǒng)包括主機(jī)系統(tǒng)、數(shù)據(jù)存儲(chǔ)設(shè)備、配置用以對關(guān)于數(shù)據(jù)存儲(chǔ)設(shè)備的數(shù)據(jù)進(jìn)行高速緩存的非易失性存儲(chǔ)器結(jié)構(gòu)、以及配置用以對諸如數(shù)據(jù)存儲(chǔ)設(shè)備之類的設(shè)備進(jìn)行操作的控制器??刂破骺梢詮闹鳈C(jī)系統(tǒng)接收邏輯地址,在非易失性存儲(chǔ)器結(jié)構(gòu)中分配物理頁面,存儲(chǔ)從邏輯地址到物理頁面的物理地址的映射,接收與邏輯地址關(guān)聯(lián)的數(shù)據(jù),以及基于物理地址而將關(guān)聯(lián)于邏輯地址的數(shù)據(jù)寫入非易失性存儲(chǔ)器結(jié)構(gòu)以便對關(guān)聯(lián)于邏輯地址的數(shù)據(jù)進(jìn)行高速緩存。映射可以指示關(guān)聯(lián)于邏輯地址的數(shù)據(jù)的被高速緩存狀態(tài)。在一些實(shí)現(xiàn)中,控制器被配置用以接收與來自主機(jī)系統(tǒng)或數(shù)據(jù)存儲(chǔ)設(shè)備中之一的邏輯地址關(guān)聯(lián)的數(shù)據(jù)。在一些實(shí)現(xiàn)中,控制器被配置用以基于與被寫入到不同物理頁面的邏輯地址關(guān)聯(lián)的數(shù)據(jù)而使映射無效??刂破骺梢詧?zhí)行對關(guān)聯(lián)于被無效映射的物理頁面的擦除,從而使得物理頁面可用于重新分配。在一些實(shí)現(xiàn)中,控制器被配置用以基于由無效命令序列所指示的邏輯地址而使已分配的物理頁面無效。在一些實(shí)現(xiàn)中,邏輯地址包括數(shù)據(jù)存儲(chǔ)設(shè)備的標(biāo)識(shí)符和邏輯頁面編號。系統(tǒng)可以包括兩個(gè)或更多個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備。非易失性存儲(chǔ)器結(jié)構(gòu)可被配置用以對關(guān)于兩個(gè)或更多個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備的數(shù)據(jù)進(jìn)行高速緩存。映射可以包括數(shù)據(jù)存儲(chǔ)設(shè)備標(biāo)識(shí)符,其標(biāo)識(shí)兩個(gè)或更多個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備中的至少一個(gè)。在一些實(shí)現(xiàn)中,控制器包括存儲(chǔ)控制器和高速緩存控制器,并且高速緩存控制器通信地與非易失性存儲(chǔ)器結(jié)構(gòu)耦合。非易失性存儲(chǔ)器結(jié)構(gòu)可以包括一個(gè)或多個(gè)快閃存儲(chǔ)器結(jié)構(gòu)。數(shù)據(jù)存儲(chǔ)設(shè)備可以包括一個(gè)或更多個(gè)硬盤驅(qū)動(dòng)器。系統(tǒng)可以包括包含有非易失性存儲(chǔ)器結(jié)構(gòu)的高速緩存設(shè)備。在一些實(shí)現(xiàn)中,控制器被配置用以基于邏輯地址來選擇高速緩存設(shè)備。根據(jù)所描述的系統(tǒng)和技術(shù)的另一方面,一種方法包括從主機(jī)系統(tǒng)接收包括邏輯地址的信息。該方法包括接收與來自主機(jī)系統(tǒng)或數(shù)據(jù)存儲(chǔ)設(shè)備中之一的邏輯地址關(guān)聯(lián)的數(shù)據(jù)。該方法包括在非易失性存儲(chǔ)器結(jié)構(gòu)中分配物理頁面。在一些實(shí)現(xiàn)中,非易失性存儲(chǔ)器結(jié)構(gòu)被配置用以對關(guān)于至少一個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備的數(shù)據(jù)進(jìn)行高速緩存。該方法包括存儲(chǔ)從邏輯地址到物理頁面的物理地址的映射。該方法包括基于物理地址而將關(guān)聯(lián)于邏輯地址的數(shù)據(jù)寫入非易失性存儲(chǔ)器結(jié)構(gòu)以便高速緩存關(guān)聯(lián)于邏輯地址的數(shù)據(jù)。映射可以指示關(guān)聯(lián)于邏輯地址的數(shù)據(jù)的被高速緩存狀態(tài)。在一些實(shí)現(xiàn)中,一種方法包括基于與被寫入到不同物理頁面的邏輯地址關(guān)聯(lián)的數(shù)據(jù)而使映射無效,以及執(zhí)行對與被無效映射關(guān)聯(lián)的物理頁面的擦除以便使物理頁面可用于重新分配。接收與邏輯地址關(guān)聯(lián)的數(shù)據(jù)可以包括基于邏輯地址,從數(shù)據(jù)存儲(chǔ)設(shè)備讀取數(shù)據(jù)。 在一些實(shí)現(xiàn)中,一種方法包括基于由無效命令序列所指示的邏輯地址而使已分配的物理頁面無效。所描述的系統(tǒng)和技術(shù)可實(shí)現(xiàn)于電子電路、計(jì)算機(jī)硬件、固件、軟件或者其組合之中,諸如本說明書所公開的結(jié)構(gòu)裝置及其結(jié)構(gòu)等效件中。這可以包括至少一個(gè)實(shí)施程序的計(jì)算機(jī)可讀介質(zhì),該程序可操作用以致使一個(gè)或多個(gè)數(shù)據(jù)處理裝置執(zhí)行所描述的操作。因此,程序?qū)崿F(xiàn)可以通過所公開的方法、系統(tǒng)或裝置來實(shí)現(xiàn),并且裝置實(shí)現(xiàn)可以通過所公開的系統(tǒng)、計(jì)算機(jī)可讀介質(zhì)或方法來實(shí)現(xiàn)。類似地,方法實(shí)現(xiàn)可以通過所公開的系統(tǒng)、計(jì)算機(jī)可讀介質(zhì)或裝置來實(shí)現(xiàn),并且系統(tǒng)實(shí)現(xiàn)可以通過所公開的方法、計(jì)算機(jī)可讀介質(zhì)或裝置來實(shí)現(xiàn)。裝置可以包括非易失性存儲(chǔ)器結(jié)構(gòu)、用以接收包含有邏輯地址的命令序列的電路、用以接收與邏輯地址關(guān)聯(lián)的數(shù)據(jù)的電路、用以在非易失性存儲(chǔ)器結(jié)構(gòu)中分配物理頁面的電路、用以存儲(chǔ)從邏輯地址到關(guān)聯(lián)于物理頁面的物理地址的映射的電路、以及用以基于物理地址而將關(guān)聯(lián)于邏輯地址的數(shù)據(jù)寫入非易失性存儲(chǔ)器結(jié)構(gòu)以便對關(guān)聯(lián)于邏輯地址的數(shù)據(jù)進(jìn)行高速緩存的電路。映射可以指示關(guān)聯(lián)于邏輯地址的數(shù)據(jù)的被高速緩存狀態(tài)。邏輯地址可以包括標(biāo)識(shí)數(shù)據(jù)存儲(chǔ)設(shè)備的信息和邏輯頁面編號。在一些實(shí)現(xiàn)中,裝置可以包括用以接收包含有邏輯地址的讀取命令序列的電路、 用以標(biāo)識(shí)與讀取命令序列的邏輯地址關(guān)聯(lián)的物理地址的電路、以及用以基于所標(biāo)識(shí)的物理地址而從非易失性存儲(chǔ)器結(jié)構(gòu)讀取數(shù)據(jù)以便提供與讀取命令序列的邏輯地址關(guān)聯(lián)的經(jīng)高速緩存數(shù)據(jù)的電路。裝置可以包括用以基于由無效命令序列所指示的邏輯地址而使已分配的物理頁面無效的電路。所描述的系統(tǒng)和技術(shù)可以產(chǎn)生延遲減少的存儲(chǔ)系統(tǒng)。例如,使用將邏輯地址與非易失性存儲(chǔ)器上的頁面的物理地址相聯(lián)系的映射可以減少從高速緩存數(shù)據(jù)存儲(chǔ)讀取數(shù)據(jù)所需的查找的數(shù)目。此外,可以采用單個(gè)查找表而非保持多個(gè)單獨(dú)的查找表,以便更加高效地使用高速緩存數(shù)據(jù)存儲(chǔ)中的存儲(chǔ)器。在存儲(chǔ)系統(tǒng)中進(jìn)行數(shù)據(jù)高速緩存的這種方式可以使得延遲減少。一個(gè)或更多個(gè)實(shí)現(xiàn)的細(xì)節(jié)在附圖及以下描述中闡明。其他特征、目的和優(yōu)勢可從描述和附圖以及從權(quán)利要求中顯現(xiàn)。


圖1示出了存儲(chǔ)架構(gòu)的示例。
圖2示出了高速緩存控制器架構(gòu)的示例。圖3示出了非易失性存儲(chǔ)器的塊與頁面布局的示例。圖4示出了基于高速緩存的存儲(chǔ)過程的示例。圖5示出了映射表布局的示例。圖6示出了高速緩存感知閃存轉(zhuǎn)譯層過程的示例。圖7A和圖7B示出了不同高速緩存過程的示例。圖8示出了具有多個(gè)快閃存儲(chǔ)器結(jié)構(gòu)的存儲(chǔ)系統(tǒng)的示例。圖9示出了存儲(chǔ)過程的示例。各附圖中的相似參考符號指示相似元件。
具體實(shí)施例方式圖1示出了存儲(chǔ)架構(gòu)的示例。主機(jī)105可以經(jīng)由控制器100訪問一個(gè)或多個(gè)存儲(chǔ)設(shè)備110??刂破?00可以包括存儲(chǔ)控制器120、高速緩存控制器125以及一個(gè)或多個(gè)存儲(chǔ)器,諸如高速緩存存儲(chǔ)器130。在一些實(shí)現(xiàn)中,存儲(chǔ)設(shè)備110包括一個(gè)或多個(gè)存儲(chǔ)元件,其可由控制器100分別尋址。主機(jī)105可向存儲(chǔ)控制器120發(fā)送命令序列,諸如寫入命令序列或讀取命令序列。 命令序列可以包含邏輯地址。在一些實(shí)現(xiàn)中,邏輯地址包括存儲(chǔ)設(shè)備目標(biāo)標(biāo)識(shí)符,該標(biāo)識(shí)符與存儲(chǔ)設(shè)備110關(guān)聯(lián)。在一些實(shí)現(xiàn)中,命令序列可以包括命令標(biāo)識(shí)符、邏輯地址和長度。 在一些實(shí)現(xiàn)中,主機(jī)105經(jīng)由接口與存儲(chǔ)控制器120通信,這些接口諸如有外設(shè)部件互連 (PCI)、串行高級技術(shù)附件(SATA)、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)、串列SCSI (SAS)、以太網(wǎng)或者通用串行總線(USB)。存儲(chǔ)控制器120可以與高速緩存控制器125進(jìn)行通信,以便高速緩存接收自存儲(chǔ)設(shè)備110的數(shù)據(jù)、高速緩存接收自主機(jī)105的數(shù)據(jù),或者高速緩存來自這二者的數(shù)據(jù)。高速緩存控制器125可以與高速緩存存儲(chǔ)器130通信,該高速緩存存儲(chǔ)器130可以包括諸如快閃存儲(chǔ)器之類的非易失性存儲(chǔ)器。在一些實(shí)現(xiàn)中,高速緩存控制器125包括快閃存儲(chǔ)器控制器,用以控制高速緩存存儲(chǔ)器130中的快閃存儲(chǔ)器。例如,存儲(chǔ)控制器120可以從存儲(chǔ)設(shè)備110讀取數(shù)據(jù),以及將所讀取數(shù)據(jù)的至少一部分存儲(chǔ)在受控于高速緩存控制器125的高速緩存存儲(chǔ)器130中。在另一示例中,存儲(chǔ)控制器120可以從主機(jī)105接收數(shù)據(jù),用以寫入存儲(chǔ)設(shè)備110。存儲(chǔ)控制器120可以將接收自主機(jī)105的寫入數(shù)據(jù)存儲(chǔ)在受控于高速緩存控制器125的高速緩存存儲(chǔ)器130中。在一些實(shí)現(xiàn)中,存儲(chǔ)控制器120在高速緩存存儲(chǔ)器 130上存儲(chǔ)主機(jī)寫入數(shù)據(jù),并且不需要即時(shí)將主機(jī)寫入數(shù)據(jù)存儲(chǔ)在存儲(chǔ)設(shè)備110上。在一些實(shí)現(xiàn)中,存儲(chǔ)控制器120在高速緩存存儲(chǔ)器130上并且在存儲(chǔ)設(shè)備110上存儲(chǔ)主機(jī)寫入數(shù)據(jù)。主機(jī)105可以包括一個(gè)或多個(gè)處理器、存儲(chǔ)器以及輸入/輸出(I/O)連接。在一些實(shí)現(xiàn)中,主機(jī)105包括存儲(chǔ)控制器120。例如,片上系統(tǒng)(SOC)可以包括通用處理器以及一個(gè)或多個(gè)控制器(例如,存儲(chǔ)控制器、高速緩存控制器或者其組合)用以訪問外部設(shè)備, 諸如硬盤驅(qū)動(dòng)器(HDD)或固態(tài)驅(qū)動(dòng)器(SSD)。SSD可以包括諸如非易失性存儲(chǔ)器集成電路之類的一個(gè)或多個(gè)非易失性存儲(chǔ)器結(jié)構(gòu),例如閃存芯片。高速緩存控制器125可以包括一個(gè)或多個(gè)處理器以及一個(gè)或多個(gè)非易失性存儲(chǔ)器。在一些實(shí)現(xiàn)中,存儲(chǔ)控制器120包括一個(gè)或多個(gè)高速緩存控制器125。在一些實(shí)現(xiàn)中,存儲(chǔ)控制器120與高速緩存控制器125以及一個(gè)或多個(gè)存儲(chǔ)設(shè)備110相集成。圖2示出了高速緩存控制器架構(gòu)的示例。高速緩存控制器205可以為存儲(chǔ)控制器高速緩存數(shù)據(jù)。對數(shù)據(jù)進(jìn)行高速緩存可以提高性能,例如更快的讀取時(shí)間和更快的寫入時(shí)間。高速緩存控制器205可以與諸如閃存芯片210之類的一個(gè)或多個(gè)非易失性存儲(chǔ)器芯片進(jìn)行通信,以存儲(chǔ)或檢索高速緩存數(shù)據(jù)。高速緩存控制器205可以與控制器存儲(chǔ)器215進(jìn)行通信,該控制器存儲(chǔ)器215在閃存芯片210中存儲(chǔ)諸如針對經(jīng)高速緩存數(shù)據(jù)的地址映射之類的高速緩存元數(shù)據(jù)。在一些實(shí)現(xiàn)中,控制器存儲(chǔ)器215集成到閃存芯片210的存儲(chǔ)器區(qū)中,例如,閃存芯片中存儲(chǔ)器的一部分被配置成用于高速緩存控制器205的存儲(chǔ)器。高速緩存控制器205可以在控制器存儲(chǔ)器215上存儲(chǔ)諸如高速緩存元數(shù)據(jù)之類的信息。例如,高速緩存控制器205可以在映射表220中存儲(chǔ)一個(gè)或多個(gè)映射,以便協(xié)助高速緩存操作。存儲(chǔ)在映射表220上的映射標(biāo)識(shí)邏輯地址(LA)與對應(yīng)于存儲(chǔ)在閃存芯片210 中的至少一個(gè)上的物理頁面的物理地址(PA)之間的關(guān)系。邏輯地址可以包括邏輯頁面編號(LPN),該LPN關(guān)聯(lián)于存儲(chǔ)設(shè)備上的數(shù)據(jù)位置。在一些實(shí)現(xiàn)中,LPN可以稱為邏輯塊地址 (LBA)。在一些實(shí)現(xiàn)中,LPN可以包括偏移和長度。物理地址可以包括塊標(biāo)識(shí)符和頁面標(biāo)識(shí)符。在一些實(shí)現(xiàn)中,映射表220可以包括邏輯地址,該邏輯地址包括LPN和關(guān)聯(lián)于數(shù)據(jù)存儲(chǔ)設(shè)備的存儲(chǔ)設(shè)備目標(biāo)標(biāo)識(shí)符。存儲(chǔ)設(shè)備目標(biāo)標(biāo)識(shí)符可以區(qū)分相同的LPN。例如,兩個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備可以使用相同的LPN來存儲(chǔ)不同的數(shù)據(jù)??刂破骺梢允褂么鎯?chǔ)設(shè)備目標(biāo)標(biāo)識(shí)符來從對應(yīng)的存儲(chǔ)設(shè)備檢索與LPN關(guān)聯(lián)的數(shù)據(jù)。高速緩存控制器205可以接收來自存儲(chǔ)控制器的命令序列以便從高速緩存檢索數(shù)據(jù)。命令序列可以標(biāo)識(shí)邏輯地址。如果高速緩存控制器205獲得高速緩存命中,例如,在映射表220中找到了命令序列的邏輯地址,則高速緩存控制器205使用對應(yīng)的物理地址來從對應(yīng)于物理地址的閃存芯片210檢索數(shù)據(jù)。高速緩存控制器205可將檢索到的數(shù)據(jù)發(fā)送到存儲(chǔ)控制器。如果高速緩存控制器205獲得高速緩存未命中,例如,在映射表220中未找到命令的邏輯地址,則高速緩存控制器205可將未命中報(bào)告給存儲(chǔ)控制器。在一些實(shí)現(xiàn)中,高速緩存控制器205可將未命中報(bào)告給諸如固件之類的程序。然而,高速緩存控制器205可以在閃存芯片210中分配物理頁面以便在映射表220中存儲(chǔ)映射,該映射標(biāo)識(shí)出命令的邏輯地址與所分配的物理頁面的物理地址之間的關(guān)系。在存儲(chǔ)控制器服務(wù)于高速緩存未命中之后,例如,在從存儲(chǔ)設(shè)備檢索對應(yīng)于邏輯地址的數(shù)據(jù)之后,高速緩存控制器205可以接收數(shù)據(jù)以及將該數(shù)據(jù)存儲(chǔ)在閃存芯片210中的一個(gè)或多個(gè)之中用于將來的讀取訪問。在另一示例中,高速緩存控制器205接收向高速緩存寫入數(shù)據(jù)的命令。該命令標(biāo)識(shí)邏輯地址。如果高速緩存控制器205獲得高速緩存命中,則高速緩存控制器205使用對應(yīng)的物理地址來向?qū)?yīng)于物理地址的閃存芯片210寫入數(shù)據(jù)。在一些實(shí)現(xiàn)中,向相同的物理頁面進(jìn)行的未來寫入需要新的位置。因此,高速緩存控制器205可以分配新的物理頁面并且更新映射表220,以便反映針對邏輯地址的新物理頁面指派。在一些實(shí)現(xiàn)中,高速緩存控制器205可將舊的物理頁面標(biāo)記為無效。圖3示出了非易失性存儲(chǔ)器的塊與頁面布局的示例。非易失性存儲(chǔ)器布局300包括一個(gè)或多個(gè)塊305。塊305包括一個(gè)或多個(gè)頁面310。例如,塊的大小可以是256KB而頁面的大小可以是4KB,并且相應(yīng)地,塊可以包括64個(gè)頁面。在另一示例中,塊的大小可以是 512KB而頁面的大小可以是4KB,因此,塊可以包括1 個(gè)頁面。存儲(chǔ)控制器可以接收信息,諸如來自主機(jī)系統(tǒng)的命令序列。命令序列可以包括邏輯地址。對于寫入命令而言,命令序列可以包括數(shù)據(jù)。在一些實(shí)現(xiàn)中,邏輯地址包括數(shù)據(jù)存儲(chǔ)設(shè)備的標(biāo)識(shí)符和邏輯頁面編號。存儲(chǔ)控制器可以運(yùn)行基于高速緩存的存儲(chǔ)過程。在一些實(shí)現(xiàn)中,存儲(chǔ)控制器操作高速緩存控制器運(yùn)行基于高速緩存的存儲(chǔ)過程的至少一部分。例如,存儲(chǔ)控制器可以基于接收自主機(jī)系統(tǒng)的命令序列,向高速緩存控制器發(fā)送命令序列。圖4示出了基于高速緩存的存儲(chǔ)過程的示例。在一些實(shí)現(xiàn)中,基于高速緩存的存儲(chǔ)過程包括針對存儲(chǔ)控制器的操作和針對與存儲(chǔ)控制器通信的高速緩存控制器的操作。在一些實(shí)現(xiàn)中,過程運(yùn)行于諸如存儲(chǔ)控制器或者集成的存儲(chǔ)與高速緩存控制器之類的控制器上。在405處,基于高速緩存的存儲(chǔ)過程可以從主機(jī)系統(tǒng)接收包括邏輯地址的命令序列。在一些情況下,命令序列指示出要為主機(jī)系統(tǒng)檢索數(shù)據(jù)。在一些情況下,命令序列指示出寫入操作并且包括主機(jī)寫入數(shù)據(jù)。在410處,基于高速緩存的存儲(chǔ)過程可以訪問映射表,以便確定是否存在與邏輯地址關(guān)聯(lián)的映射。例如,過程可以基于邏輯地址執(zhí)行查表。在一些實(shí)現(xiàn)中,過程使用哈希表來確定是否存在與邏輯地址關(guān)聯(lián)的映射。在一些實(shí)現(xiàn)中,高速緩存控制器在控制器存儲(chǔ)器中存儲(chǔ)表格,并且使用該表格來執(zhí)行基于邏輯地址的查找。在415處,如果不存在映射,則過程在420處可以在非易失性存儲(chǔ)器結(jié)構(gòu)中分配物理頁面。在425處,過程可以生成映射以便將邏輯地址與物理頁面的物理地址聯(lián)系起來。在一些實(shí)現(xiàn)中,物理頁面的物理地址是物理頁面的起始地址。在430處,過程可將映射存儲(chǔ)在映射表中。映射可以指示出與邏輯地址關(guān)聯(lián)的數(shù)據(jù)的被高速緩存狀態(tài)。例如,有效映射表?xiàng)l目的存在可以指示被高速緩存數(shù)據(jù)的存在。在435處,過程可以基于物理地址將數(shù)據(jù)寫入到非易失性存儲(chǔ)器結(jié)構(gòu),以便高速緩存與邏輯地址關(guān)聯(lián)的信息。例如,過程可以接收包括主機(jī)寫入數(shù)據(jù)的命令序列。過程可以在非易失性存儲(chǔ)器結(jié)構(gòu)中高速緩存主機(jī)寫入數(shù)據(jù)。在415處,如果映射確實(shí)存在,則過程在440處可以使用現(xiàn)有映射來處理伴隨非易失性存儲(chǔ)器結(jié)構(gòu)的數(shù)據(jù)操作。數(shù)據(jù)操作的各種示例包括寫入操作和讀取操作。在一些實(shí)現(xiàn)中,過程使用現(xiàn)有映射來從非易失性存儲(chǔ)器結(jié)構(gòu)讀取數(shù)據(jù)。在一些實(shí)現(xiàn)中,過程使用現(xiàn)有映射來向非易失性存儲(chǔ)器結(jié)構(gòu)寫入數(shù)據(jù)。在一些實(shí)現(xiàn)中,使用現(xiàn)有映射寫入數(shù)據(jù)可以包括使現(xiàn)有映射無效,以及創(chuàng)建新的映射用以向非易失性存儲(chǔ)器結(jié)構(gòu)中不同的物理位置寫入數(shù)據(jù)。圖5示出了映射表布局的示例。映射表500布局被布置用于存儲(chǔ)一個(gè)或多個(gè)條目 505。映射表500被劃分為邏輯地址510和相應(yīng)的物理地址515。例如,條目505包括邏輯地址510和物理地址515。在一些實(shí)現(xiàn)中,邏輯地址包括標(biāo)識(shí)符,諸如對目標(biāo)設(shè)備做出標(biāo)識(shí)的目標(biāo)設(shè)備標(biāo)識(shí)符(例如,TGT1、TGT2)。例如,邏輯地址可以包括目標(biāo)設(shè)備標(biāo)識(shí)符和LPN。 關(guān)于讀取命令序列,控制器可以使用LPN從與包括在序列中的目標(biāo)設(shè)備標(biāo)識(shí)符對應(yīng)的設(shè)備讀取頁面。控制器可以高速緩存頁面。對頁面進(jìn)行高速緩存包括在映射表500中創(chuàng)建映射, 該映射包括目標(biāo)設(shè)備標(biāo)識(shí)符和LPN。在一些實(shí)現(xiàn)中,條目505包括活動(dòng)旗標(biāo),用以指示條目 505是否在使用中。條目505可以包括有效旗標(biāo),用以指示與物理地址515關(guān)聯(lián)的物理頁面是否有效。例如,條目505被標(biāo)記為使用中而有效旗標(biāo)被標(biāo)記為無效。被標(biāo)記為使用中的條目505和被標(biāo)記為有效的有效旗標(biāo)可以指示高速緩存狀態(tài)為真。存儲(chǔ)系統(tǒng)可以包括一個(gè)或多個(gè)非易失性存儲(chǔ)器,其被配置用于高速緩存流向存儲(chǔ)設(shè)備或來自存儲(chǔ)設(shè)備的信息。諸如快閃存儲(chǔ)器之類的非易失性存儲(chǔ)器可以電擦除或者重新編程。在一些實(shí)現(xiàn)中,快閃存儲(chǔ)器可以包括NAND邏輯。在一些實(shí)現(xiàn)中,快閃存儲(chǔ)器基于擦除塊和頁面來進(jìn)行操作。例如,訪問的單元為頁面,而擦除操作的單元為擦除塊。塊和頁面的大小可隨不同的閃存設(shè)備而變。例如,關(guān)于包括在大塊快閃SSD中的閃存設(shè)備而言,擦除塊尺寸的大小在256KB到512KB之間,而頁面的大小為4KB。然而,其他大小也是有可能的。在一些實(shí)現(xiàn)中,已包含數(shù)據(jù)的閃存塊不能夠被重寫,除非該塊被明確地擦除。擦除操作可能是耗時(shí)的,例如,可能耗費(fèi)若干毫秒。在一些實(shí)現(xiàn)中,對于大塊NAND設(shè)備,擦除塊內(nèi)的頁面不能夠被隨機(jī)寫入。例如,擦除塊包括從1到100編號的100個(gè)頁面。在一些實(shí)現(xiàn)中,如果擦除塊內(nèi)的頁面20被寫入,則無法向頁面1-頁面20寫入,除非整個(gè)塊都被擦除。 然而,頁面20之后的頁面是可寫的。在一些快閃存儲(chǔ)器設(shè)計(jì)中,塊在其由于快閃存儲(chǔ)器的一種或多種物理特性而變得不可使用之前,只能擦除有限的次數(shù)。快閃存儲(chǔ)器設(shè)備可以使用損耗均衡算法將負(fù)荷分散在多個(gè)閃存芯片上??扉W存儲(chǔ)器設(shè)備可以使用損耗均衡算法來確保輪換使用快閃存儲(chǔ)器內(nèi)的擦除塊,從而使得沒有單個(gè)閃存擦除塊擔(dān)負(fù)過多的寫入循環(huán)。應(yīng)用可以向相同的邏輯頁面寫入數(shù)據(jù)并于隨后重新寫入數(shù)據(jù)。邏輯頁面可以映射到存儲(chǔ)在快閃存儲(chǔ)器中的物理頁面。向相同的位置重新寫入頁面可能要求閃存設(shè)備將整個(gè)擦除塊讀入存儲(chǔ)器,擦除整個(gè)塊,向需要更新的頁面之前的頁面重新寫入來自存儲(chǔ)器的數(shù)據(jù),更新相關(guān)頁面,以及將塊中的剩余頁面重新寫入到閃存。用于向相同位置重新寫入頁面的操作在時(shí)間上可能是昂貴的。此外,如果閃存設(shè)備在重寫過程完成前斷電,則有永久性數(shù)據(jù)丟失的可能性。然而,在恰當(dāng)位置上重寫可能無法確保閃存塊的均勻損耗。閃存設(shè)備可以向不同的位置重新寫入頁面,以便增加操作延遲以及提供更加分散的快閃存儲(chǔ)器損耗均衡。例如,閃存設(shè)備可將頁面標(biāo)記為無效,并將經(jīng)更新的頁面寫入到不同的位置。在一些實(shí)現(xiàn)中,閃存設(shè)備可在快閃存儲(chǔ)器結(jié)構(gòu)所提供的物理空間上加之以對邏輯頁面的抽象層的使用。該層被稱為閃存轉(zhuǎn)譯層(FTL)。在一些實(shí)現(xiàn)中,發(fā)送到閃存設(shè)備的命令可以使用邏輯地址來指代數(shù)據(jù)。在一些實(shí)現(xiàn)中,命令包括LPN。FTL可以使用FTL內(nèi)的邏輯將物理頁面編號分配給邏輯頁面編號。對于重新寫入,可將FTL配置用于將頁面重新寫入到不同的位置。因此,閃存可以具有與相同邏輯頁面關(guān)聯(lián)的多個(gè)物理頁面,其中僅一個(gè)物理頁面被視為有效,而其他物理頁面則被視為無效。閃存設(shè)備可以使用FTL元數(shù)據(jù)來跟蹤有哪些物理位置包含有效數(shù)據(jù)。FTL元數(shù)據(jù)可以包括存儲(chǔ)有LPN的映射表和相應(yīng)物理頁面位置的表格。在一些實(shí)現(xiàn)中,LPN是經(jīng)由諸如SAS、SATA或PCI之類接口導(dǎo)出的邏輯頁面地址。映射表可以保存具有針對對應(yīng)LPN的有效內(nèi)容的最新物理位置。FTL元數(shù)據(jù)可以包括描述有哪些物理頁面具有有效數(shù)據(jù)的表格。閃存設(shè)備可以執(zhí)行垃圾收集以便收回被無效的頁面,從而使其可針對將來的寫入操作而重獲使用。在一些實(shí)現(xiàn)中,F(xiàn)TL邏輯需要空閑塊來處理對邏輯頁面的更新。在一些實(shí)現(xiàn)中,閃存控制器內(nèi)的處理器在后臺(tái)運(yùn)行垃圾收集過程。垃圾收集過程可以搜索擦除塊以及在使頁面可寫之前運(yùn)行碎片整理操作。在一些實(shí)現(xiàn)中,過程基于塊內(nèi)所包含的被無效頁面的數(shù)目來搜索塊。碎片整理過程可以從存儲(chǔ)器中的各個(gè)塊收集有效頁面,將它們重新寫入新的擦除塊中,更新元數(shù)據(jù)映射,以及擦除舊的塊。被擦除的塊現(xiàn)在可用于新的寫入。 在不存在任何空閑物理頁面滿足寫入操作的情況下,閃存設(shè)備可以執(zhí)行按需垃圾收集。然而,為了減少按需垃圾收集的可能性,閃存控制器可以聲明少于物理上可用的存儲(chǔ)空間量。存儲(chǔ)系統(tǒng)可以包括配置成高速緩存設(shè)備的閃存設(shè)備。閃存設(shè)備可以包括閃存感知 FTL0高速緩存設(shè)備可以為具有與閃存設(shè)備所提供的實(shí)際物理空間相獨(dú)立的邏輯頁面范圍的多個(gè)目標(biāo)設(shè)備提供高速緩存,而不是諸如在閃存設(shè)備被用作目標(biāo)設(shè)備時(shí)支持LPN與物理存儲(chǔ)空間之間的直接映射。在一些實(shí)現(xiàn)中,高速緩存設(shè)備可以提供諸如GET和SET命令之類的命令來操縱設(shè)備。除邏輯頁面地址和傳送長度域以外,此類命令可以接受目標(biāo)設(shè)備標(biāo)識(shí)符,例如TGT-ID。 在一些實(shí)現(xiàn)中,邏輯地址包括TGT-ID和邏輯頁面編號。TGT-ID可以標(biāo)識(shí)與經(jīng)由命令發(fā)送或接收的數(shù)據(jù)關(guān)聯(lián)的目標(biāo)設(shè)備。SET操作可以包括針對指定的TGT-ID,對由偏移和長度所標(biāo)識(shí)的、供應(yīng)的數(shù)據(jù)進(jìn)行高速緩存。對供應(yīng)的數(shù)據(jù)進(jìn)行高速緩存可以包括將供應(yīng)的數(shù)據(jù)存儲(chǔ)在快閃存儲(chǔ)器結(jié)構(gòu)上。GET操作可以包括針對指定的TGT-ID,提取由GET調(diào)用中指定的偏移和長度所標(biāo)識(shí)的數(shù)據(jù)。高速緩存感知FTL映射表可以包括諸如〈TGT-ID,LPN>之類的應(yīng)用指定邏輯地址到快閃存儲(chǔ)器結(jié)構(gòu)內(nèi)的物理位置描述的映射。物理位置描述可以標(biāo)識(shí)閃存塊和閃存塊內(nèi)的頁面。在一些情況下,映射表中的條目可能包括不具有對應(yīng)的有效物理頁面的邏輯地址 (例如,物理位置描述標(biāo)記為“無效”)。此類條目可從映射表中消除。高速緩存快閃設(shè)備可以提供用以使高速緩存映射無效(INVALIDATE)的接口。 INVALIDATE命令可在應(yīng)用不再需要存儲(chǔ)在高速緩存中的頁面時(shí)使用。高速緩存感知FLT可以跟蹤物理頁面狀態(tài),例如,有效或者無效。高速緩存感知FTL可以繼續(xù)進(jìn)行垃圾收集,以維持一批經(jīng)擦除的塊。響應(yīng)于GET調(diào)用,高速緩存感知FTL可以直接在FTL的內(nèi)部映射中查找應(yīng)用供應(yīng)的邏輯地址,以便檢查數(shù)據(jù)是否存在于閃存內(nèi)。如果不存在,則FTL可以發(fā)送出錯(cuò)誤消息。響應(yīng)于SET調(diào)用,高速緩存感知FTL可以檢查是否有可用于容納由SET調(diào)用所指示的傳入寫入請求的空閑頁面。如果不存在空閑頁面,則FTL可以將數(shù)據(jù)的內(nèi)容傳送到可用頁面以及在FTL的映射表中創(chuàng)建新的條目來指示這個(gè)新塊的映射。FTL可以使舊的映射無效——如果存在這樣的映射。如果頁面不可用,則FTL可以等待垃圾收集過程收回頁面。 在一些實(shí)現(xiàn)中,如果頁面不可用,則FTL可以返回錯(cuò)誤消息。響應(yīng)于INVALIDATE調(diào)用,高速緩存感知FTL可以在FTL的映射表中查找對應(yīng)的邏輯地址,將這些映射從映射表中移除,并且可以將對應(yīng)的物理頁面標(biāo)記為無效。在 INVALIDATE調(diào)用期間,垃圾收集過程可以收回被標(biāo)記為無效的頁面。高速緩存快閃設(shè)備可以支持若干目標(biāo)設(shè)備。盡管高速緩存快閃設(shè)備理論上可以為無限數(shù)量的物理空間提供高速緩存,但閃存所提供的高速緩存空間與充當(dāng)高速緩存的閃存所針對的物理空間的比率的概念有助于理解設(shè)備的性能。在一些情況下,較小的比率可能造成高速緩存中的工作集較小,因此導(dǎo)致高速緩存效率較低。
圖6示出了高速緩存感知閃存轉(zhuǎn)譯層過程的示例。閃存設(shè)備可以運(yùn)行高速緩存感知閃存轉(zhuǎn)譯層過程來處理傳入請求,諸如SET調(diào)用。存儲(chǔ)控制器可以向高速緩存設(shè)備發(fā)送 SET調(diào)用,以便在高速緩存設(shè)備上高速緩存應(yīng)用數(shù)據(jù)。在605處,過程可以經(jīng)由SET調(diào)用而接收包括邏輯地址和應(yīng)用數(shù)據(jù)的信息。在610處,過程確定是否存在與邏輯地址對應(yīng)的映射。如果該映射存在,則過程在615處將映射所標(biāo)識(shí)的物理頁面標(biāo)記為無效。在620處,過程刪除映射。在一些實(shí)現(xiàn)中,過程將包含映射的條目標(biāo)記為無效。在625處,過程確定是否存在空閑物理頁面。如果不存在空閑物理頁面,則過程在 630處運(yùn)行垃圾收集過程以釋放一個(gè)或多個(gè)物理頁面。如果存在空閑物理頁面,則在635 處,過程在635處分配物理頁面。在640處,過程創(chuàng)建新的映射,以便指示邏輯地址與所分配物理頁面之間的關(guān)系。在645處,過程將經(jīng)由SET調(diào)用接收到的應(yīng)用數(shù)據(jù)傳送到快閃存儲(chǔ)器結(jié)構(gòu)上的經(jīng)分配物理頁面。圖7A和圖7B示出了不同的高速緩存過程的示例。圖7A所描繪的高速緩存過程 705包括兩個(gè)查找,而圖7B所描繪的高速緩存過程710包括一個(gè)查找。使用較少查找的高速緩存過程可以提供比使用較多查找的高速緩存過程更好的性能。更好的性能的示例包括減少的延遲、減少的復(fù)雜性,或者全部二者。圖7A所描繪的高速緩存過程705包括接收命令,該命令包括邏輯地址,例如 〈TGT-ID,LPN>。過程705包括在邏輯地址上執(zhí)行第一查找,以便獲取諸如快閃存儲(chǔ)器之類的高速緩存存儲(chǔ)器中頁面的LPN。過程705包括在LPN上執(zhí)行第二查找,以便獲取物理頁面的物理地址。過程705包括執(zhí)行從物理頁面的讀取或者向物理頁面的寫入。圖7B所描繪的高速緩存過程710包括接收命令,該命令包括邏輯地址。過程710 包括在邏輯地址上執(zhí)行查找,以便獲取諸如快閃存儲(chǔ)器之類的高速緩存存儲(chǔ)器中頁面的物理地址。過程710包括執(zhí)行從物理頁面的讀取或者向物理頁面的寫入。過程710可以訪問高速緩存感知FTL元數(shù)據(jù),該高速緩存感知FTL元數(shù)據(jù)包括將例如〈TGT-ID,LPN>之類邏輯地址與物理頁面的物理地址相關(guān)聯(lián)的映射表。高速緩存感知FTL可以對應(yīng)于諸如INVALIDATE命令之類的命令。對此類命令作出響應(yīng)可以包括從FTL的映射表移除一個(gè)或多個(gè)關(guān)聯(lián)的映射(例如,{〈TGT-ID,LPNX = > 物理頁面})。映射表可以具有作為先前頁面無效的結(jié)果而與相同的邏輯地址關(guān)聯(lián)的多個(gè)映射。移除此類映射可以增加快閃存儲(chǔ)器空間利用率,并且可以降低垃圾收集器的處理負(fù)荷。在一些實(shí)現(xiàn)中,高速緩存控制器使用快閃存儲(chǔ)器作為回寫高速緩存。高速緩存控制器可以在快閃存儲(chǔ)器中預(yù)留一些空間作為緩沖空間。這個(gè)緩沖空間可以用來匹配較高的傳入I/O速率與較低的高速緩存替換速率。在一些實(shí)現(xiàn)中,F(xiàn)TL可以為垃圾收集過程在快閃存儲(chǔ)器中預(yù)留空間,以便允許該過程在出現(xiàn)此類場景時(shí)趕上傳入I/O數(shù)據(jù)流。與非高速緩存感知的FTL相比,高速緩存感知FTL可預(yù)留更少的空間。這是因?yàn)殡S著高速緩存邏輯開始使高速緩存塊無效,對應(yīng)的物理頁面也開始變得無效,而其因此成為用于擦除的候選者。垃圾收集器可以直接使用這些無效頁面來產(chǎn)生用于分配的頁面。然而,在一些實(shí)現(xiàn)中,無需高速緩存感知FTL來預(yù)留空間。在一些實(shí)現(xiàn)中,存儲(chǔ)控制器可以使用兩個(gè)或更多個(gè)高速緩存設(shè)備來高速緩存來自存儲(chǔ)設(shè)備的數(shù)據(jù)。存儲(chǔ)控制器可將數(shù)據(jù)分散在多個(gè)高速緩存設(shè)備之間。在一些實(shí)現(xiàn)中,存儲(chǔ)控制器可以使用哈希函數(shù),其將元組〈TGT-ID,偏移,長度〉映射到高速緩存設(shè)備。由哈希函數(shù)的輸出所標(biāo)識(shí)的高速緩存設(shè)備可以用于針對該元組的操作(例如,GET、SET、 INVALIDATE)。圖8示出了具有多個(gè)快閃存儲(chǔ)器結(jié)構(gòu)的存儲(chǔ)系統(tǒng)的示例。存儲(chǔ)系統(tǒng)可以包括數(shù)據(jù)存儲(chǔ)設(shè)備810a、810b,諸如HDD、SSD或者其組合??刂破?15可以對數(shù)據(jù)存儲(chǔ)設(shè)備810a、 810b寫入和讀取數(shù)據(jù)??刂破?15可以與一個(gè)或多個(gè)高速緩存設(shè)備820通信。高速緩存設(shè)備820包括諸如一個(gè)或多個(gè)快閃存儲(chǔ)器結(jié)構(gòu)之類的用以高速緩存數(shù)據(jù)的存儲(chǔ)器,例如,一個(gè)或多個(gè)閃存芯片845。高速緩存設(shè)備820可以包括接口邏輯825、處理器830、隨機(jī)訪問存儲(chǔ)器(RAM)8;35和緩沖管理器840。圖9示出了存儲(chǔ)過程的示例。在905處,存儲(chǔ)控制器可以接收命令序列,該命令序列包括邏輯地址(例如,〈TGT-ID,LPN 。在910處,存儲(chǔ)控制器可以基于邏輯地址來選擇高速緩存設(shè)備。選擇高速緩存設(shè)備可以包括對邏輯地址應(yīng)用哈希函數(shù),以產(chǎn)生高速緩存設(shè)備的標(biāo)識(shí)符。在915處,存儲(chǔ)控制器可以向所選擇的高速緩存設(shè)備發(fā)送邏輯地址和關(guān)聯(lián)信息以便處理命令序列。在920處,如果存在高速緩存讀取未命中,則在925處,存儲(chǔ)控制器可以從TGT-ID所標(biāo)識(shí)的數(shù)據(jù)存儲(chǔ)設(shè)備讀取與LPN關(guān)聯(lián)的數(shù)據(jù)。在930處,存儲(chǔ)控制器可以操作高速緩存設(shè)備將讀取的數(shù)據(jù)寫入到快閃存儲(chǔ)器結(jié)構(gòu)。在935處,存儲(chǔ)控制器可以發(fā)送對命令序列的響應(yīng)。對于高速緩存讀取未命中,響應(yīng)可以包括檢索自存儲(chǔ)設(shè)備的數(shù)據(jù)。在920處,如果不存在高速緩存讀取未命中,則存儲(chǔ)控制器可以在935處發(fā)送對命令序列的響應(yīng)。對于寫入命令序列,響應(yīng)可以包括狀態(tài),例如,寫入成功。以上已詳細(xì)描述了一些實(shí)施方式,并且各種修改均有可能。所公開的主題,包括本說明書中所描述的功能操作,可以實(shí)現(xiàn)在電子電路、計(jì)算機(jī)硬件、固件、軟件或者其組合之中——諸如本說明書中所公開的結(jié)構(gòu)裝置及其結(jié)構(gòu)等效件,潛在地包括可操作用以致使一個(gè)或多個(gè)數(shù)據(jù)處理裝置執(zhí)行所描述的操作的程序(諸如編碼在計(jì)算機(jī)可讀介質(zhì)中的程序, 其可以是存儲(chǔ)器設(shè)備、存儲(chǔ)設(shè)備、機(jī)器可讀介質(zhì)基片或者其他物理性機(jī)器可讀介質(zhì),或者其中的一個(gè)或多個(gè)的組合)。術(shù)語“數(shù)據(jù)處理裝置”涵蓋用于處理數(shù)據(jù)的所有裝置、設(shè)備和機(jī)器,舉例而言,包括可編程處理器、計(jì)算機(jī)或者多個(gè)處理器或計(jì)算機(jī)。除硬件以外,裝置可以包括為所討論的計(jì)算機(jī)程序創(chuàng)造執(zhí)行環(huán)境的代碼,例如,構(gòu)成處理器固件、協(xié)議棧、數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)或者其中一個(gè)或多個(gè)的組合的代碼。程序(亦稱為計(jì)算機(jī)程序、軟件、軟件應(yīng)用、腳本或者代碼)可以用包括編譯性或解譯性語言或者聲明性或過程性語言在內(nèi)的任何形式編程語言編寫,并且其可以以任何形式部署,包括作為獨(dú)立程序或者作為適合于在計(jì)算環(huán)境中使用的模塊、組件、子例程或者其他單元。程序并不一定對應(yīng)于文件系統(tǒng)中的文件。程序可以存儲(chǔ)在保存有其他程序或數(shù)據(jù)的文件的一部分中(例如,存儲(chǔ)在標(biāo)記語言文檔中的一個(gè)或多個(gè)腳本)、在專用于所討論程序的單個(gè)文件中、或者在多個(gè)協(xié)調(diào)文件中(例如,存儲(chǔ)一個(gè)或多個(gè)模塊、子程序或代碼部分的文件)。程序可以部署成執(zhí)行于一個(gè)計(jì)算機(jī)上,或者執(zhí)行于位于一個(gè)地點(diǎn)或者分散在多個(gè)地點(diǎn)之間并由通信網(wǎng)絡(luò)互連的多個(gè)計(jì)算機(jī)上。雖然本說明書包含許多細(xì)節(jié),但其不應(yīng)被理解為對所要求保護(hù)范圍的限制,而是應(yīng)當(dāng)理解為對可能特定于具體實(shí)施方式
的特征的描述。本說明書中在獨(dú)立的實(shí)施方式背景下描述的某些特征亦可在單個(gè)實(shí)施方式中組合實(shí)現(xiàn)。反之,在單個(gè)實(shí)施方式背景下描述的各種特征亦可分別在多個(gè)實(shí)施方式中實(shí)現(xiàn)或者以任何適當(dāng)?shù)淖咏M合實(shí)現(xiàn)。另外,盡管特征可能在上文中被描述為作用于某些組合之中并且甚至最初照此要求保護(hù),但來自所要求保護(hù)組合的一個(gè)或多個(gè)特征在一些情況下可從組合中剔除,并且所要求保護(hù)的組合可能針對子組合或者子組合的變體。類似地,雖然在附圖中以特定順序描繪操作,但不應(yīng)將此理解為需要以所示特定順序或先后順序執(zhí)行此類操作或者執(zhí)行所有示例說明的操作才能夠?qū)崿F(xiàn)期望的結(jié)果。在某些情況下,多任務(wù)和并行處理可能是有利的。另外,不應(yīng)將上述實(shí)施方式中各種系統(tǒng)組件的分離理解為在所有實(shí)施方式中均要求此類分離。其他實(shí)施方式亦落入隨附權(quán)利要求的范圍內(nèi)。
權(quán)利要求
1.一種系統(tǒng),包括 主機(jī)系統(tǒng); 數(shù)據(jù)存儲(chǔ)設(shè)備;非易失性存儲(chǔ)器結(jié)構(gòu),其被配置用于高速緩存關(guān)于所述數(shù)據(jù)存儲(chǔ)設(shè)備的數(shù)據(jù);以及控制器,其被配置用于(i)操作所述數(shù)據(jù)存儲(chǔ)設(shè)備,(ii)接收來自所述主機(jī)系統(tǒng)的邏輯地址,(ii)在所述非易失性存儲(chǔ)器結(jié)構(gòu)中分配物理頁面,(iv)存儲(chǔ)從所述邏輯地址到所述物理頁面的物理地址的映射,(ν)接收與所述邏輯地址關(guān)聯(lián)的數(shù)據(jù),以及(vi)基于所述物理地址,將關(guān)聯(lián)于所述邏輯地址的所述數(shù)據(jù)寫入到所述非易失性存儲(chǔ)器結(jié)構(gòu),以便高速緩存關(guān)聯(lián)于所述邏輯地址的所述數(shù)據(jù),其中所述映射指示關(guān)聯(lián)于所述邏輯地址的所述數(shù)據(jù)的被高速緩存狀態(tài)。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述控制器被配置用于接收與來自所述主機(jī)系統(tǒng)或所述數(shù)據(jù)存儲(chǔ)設(shè)備中之一的所述邏輯地址關(guān)聯(lián)的所述數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述控制器被配置用于(i)基于與被寫入到不同物理頁面的所述邏輯地址關(guān)聯(lián)的所述數(shù)據(jù)而使所述映射無效,以及(ii)執(zhí)行對與所述被無效的映射關(guān)聯(lián)的物理頁面的擦除,以使所述物理頁面可用于重新分配。
4.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述控制器被配置用于基于由無效命令序列所指示的邏輯地址,使已分配的物理頁面無效。
5.根據(jù)權(quán)利要求1所述的系統(tǒng),包括兩個(gè)或更多個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備,其包括所述數(shù)據(jù)存儲(chǔ)設(shè)備在內(nèi),其中所述非易失性存儲(chǔ)器結(jié)構(gòu)被配置用于高速緩存關(guān)于所述兩個(gè)或更多個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備的數(shù)據(jù),并且其中所述映射包括數(shù)據(jù)存儲(chǔ)設(shè)備標(biāo)識(shí)符,該數(shù)據(jù)存儲(chǔ)設(shè)備標(biāo)識(shí)符標(biāo)識(shí)所述兩個(gè)或更多個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備中的至少一個(gè)。
6.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述控制器包括存儲(chǔ)控制器和高速緩存控制器, 其中所述高速緩存控制器通信地與所述非易失性存儲(chǔ)器結(jié)構(gòu)相耦合。
7.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述非易失性存儲(chǔ)器結(jié)構(gòu)包括快閃存儲(chǔ)器結(jié)構(gòu), 并且其中所述數(shù)據(jù)存儲(chǔ)設(shè)備包括硬盤驅(qū)動(dòng)器。
8.根據(jù)權(quán)利要求1所述的系統(tǒng),包括第一高速緩存設(shè)備,其包括所述非易失性存儲(chǔ)器結(jié)構(gòu);以及第二高速緩存設(shè)備,其中所述控制器被配置用于基于所述邏輯地址選擇高速緩存設(shè)備。
9.一種裝置,包括非易失性存儲(chǔ)器結(jié)構(gòu);用于接收包括邏輯地址的命令序列的電路,其中所述邏輯地址包括(i)標(biāo)識(shí)數(shù)據(jù)存儲(chǔ)設(shè)備的信息以及(ii)邏輯頁面編號;用于接收與所述邏輯地址關(guān)聯(lián)的數(shù)據(jù)的電路; 用于在所述非易失性存儲(chǔ)器結(jié)構(gòu)中分配物理頁面的電路; 用于存儲(chǔ)從所述邏輯地址到關(guān)聯(lián)于所述物理頁面的物理地址的映射的電路;以及用于基于所述物理地址將關(guān)聯(lián)于所述邏輯地址的所述數(shù)據(jù)寫入到所述非易失性存儲(chǔ)器結(jié)構(gòu)以便高速緩存關(guān)聯(lián)于所述邏輯地址的所述數(shù)據(jù)的電路,其中所述映射指示關(guān)聯(lián)于所述邏輯地址的所述數(shù)據(jù)的被高速緩存狀態(tài)。
10.根據(jù)權(quán)利要求9所述的裝置,包括用于接收包括邏輯地址的讀取命令序列的電路;用于標(biāo)識(shí)與所述讀取命令序列的所述邏輯地址關(guān)聯(lián)的物理地址的電路;以及用于基于所述標(biāo)識(shí)的物理地址從所述非易失性存儲(chǔ)器結(jié)構(gòu)讀取數(shù)據(jù)以便提供與所述讀取命令序列的所述邏輯地址關(guān)聯(lián)的經(jīng)高速緩存數(shù)據(jù)的電路。
11.根據(jù)權(quán)利要求9所述的裝置,包括用于基于由無效命令序列所指示的邏輯地址而使已分配的物理頁面無效的電路。
12.根據(jù)權(quán)利要求9所述的裝置,其中所述非易失性存儲(chǔ)器結(jié)構(gòu)包括快閃存儲(chǔ)器結(jié)構(gòu)。
13.一種方法,包括從主機(jī)系統(tǒng)接收包括邏輯地址的信息;接收與來自所述主機(jī)系統(tǒng)或數(shù)據(jù)存儲(chǔ)設(shè)備中之一的所述邏輯地址關(guān)聯(lián)的數(shù)據(jù); 在非易失性存儲(chǔ)器結(jié)構(gòu)中分配物理頁面,其中所述非易失性存儲(chǔ)器結(jié)構(gòu)被配置用于高速緩存關(guān)于至少一個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備的數(shù)據(jù);存儲(chǔ)從所述邏輯地址到所述物理頁面的物理地址的映射;以及基于所述物理地址,將關(guān)聯(lián)于所述邏輯地址的所述數(shù)據(jù)寫入到所述非易失性存儲(chǔ)器結(jié)構(gòu),以便高速緩存關(guān)聯(lián)于所述邏輯地址的所述數(shù)據(jù),其中所述映射指示關(guān)聯(lián)于所述邏輯地址的所述數(shù)據(jù)的被高速緩存狀態(tài)。
14.根據(jù)權(quán)利要求13所述的方法,包括基于與被寫入到不同的物理頁面的所述邏輯地址關(guān)聯(lián)的所述數(shù)據(jù)而使所述映射無效;以及執(zhí)行對與所述被無效的映射關(guān)聯(lián)的物理頁面的擦除,以使所述物理頁面可用于重新分配。
15.根據(jù)權(quán)利要求13所述的方法,其中接收與所述邏輯地址關(guān)聯(lián)的數(shù)據(jù)包括基于所述邏輯地址從所述數(shù)據(jù)存儲(chǔ)設(shè)備讀取數(shù)據(jù)。
16.根據(jù)權(quán)利要求13所述的方法,包括基于由無效命令序列所指示的邏輯地址,使已分配的物理頁面無效。
17.根據(jù)權(quán)利要求13所述的方法,其中所述非易失性存儲(chǔ)器結(jié)構(gòu)被配置用于高速緩存關(guān)于兩個(gè)或更多個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備的數(shù)據(jù),并且其中所述邏輯地址包括目標(biāo)設(shè)備標(biāo)識(shí)符,該目標(biāo)設(shè)備標(biāo)識(shí)符標(biāo)識(shí)所述兩個(gè)或更多個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備中的至少一個(gè)。
18.根據(jù)權(quán)利要求13所述的方法,包括基于所述邏輯地址從兩個(gè)或更多個(gè)高速緩存設(shè)備中選擇高速緩存設(shè)備,其中向所述非易失性存儲(chǔ)器結(jié)構(gòu)寫入數(shù)據(jù)包括與所選擇的高速緩存設(shè)備進(jìn)行通信。
19.根據(jù)權(quán)利要求13所述的方法,其中選擇所述高速緩存設(shè)備包括向所述邏輯地址應(yīng)用哈希函數(shù)以產(chǎn)生高速緩存設(shè)備的標(biāo)識(shí)符。
20.根據(jù)權(quán)利要求13所述的方法,其中向所述非易失性存儲(chǔ)器結(jié)構(gòu)寫入數(shù)據(jù)包括向快閃存儲(chǔ)器結(jié)構(gòu)進(jìn)行寫入。
全文摘要
方法、系統(tǒng)和裝置,包括編碼在計(jì)算機(jī)存儲(chǔ)介質(zhì)上的計(jì)算機(jī)程序,可以執(zhí)行數(shù)據(jù)高速緩存。在一些實(shí)現(xiàn)中,方法和系統(tǒng)包括接收包含邏輯地址的信息、在非易失性存儲(chǔ)器結(jié)構(gòu)中分配物理頁面、將邏輯地址映射到物理頁面的物理地址、以及基于物理地址而向非易失性存儲(chǔ)器結(jié)構(gòu)寫入數(shù)據(jù)以便高速緩存關(guān)聯(lián)于邏輯地址的信息。邏輯地址可以包括數(shù)據(jù)存儲(chǔ)設(shè)備的標(biāo)識(shí)符和邏輯頁面編號。
文檔編號G06F12/08GK102576333SQ201080044714
公開日2012年7月11日 申請日期2010年10月5日 優(yōu)先權(quán)日2009年10月5日
發(fā)明者A·普魯希, R·K·喬里, S·S·迪什卡爾, S·卡瑪卡 申請人:馬維爾國際貿(mào)易有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
中超| 长汀县| 莱西市| 横山县| 永平县| 中卫市| 佛山市| 长白| 公安县| 台北市| 顺义区| 太湖县| 崇明县| 宁波市| 于都县| 临潭县| 克拉玛依市| 静海县| 昂仁县| 栾川县| 乐东| 光山县| 峨边| 米泉市| 兴化市| 金华市| 扎鲁特旗| 焦作市| 潮安县| 墨脱县| 衡阳市| 长沙市| 内黄县| 杭州市| 顺平县| 龙川县| 礼泉县| 高尔夫| 星子县| 广安市| 贺州市|