TWI908891B - 固態硬碟、用於執行一記憶體之操作之方法、記憶體設備、運算系統及機器可讀取儲存器 - Google Patents
固態硬碟、用於執行一記憶體之操作之方法、記憶體設備、運算系統及機器可讀取儲存器Info
- Publication number
- TWI908891B TWI908891B TW110135380A TW110135380A TWI908891B TW I908891 B TWI908891 B TW I908891B TW 110135380 A TW110135380 A TW 110135380A TW 110135380 A TW110135380 A TW 110135380A TW I908891 B TWI908891 B TW I908891B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- block
- address
- logical
- physical
- Prior art date
Links
Abstract
本發明提供一種具有儲存在持續性記憶體中之邏輯至實體(L2P)間接表的固態硬碟。該L2P間接表有複數個條目,每一個條目儲存分配給一邏輯區塊位址之在該區塊可定址記憶體中的一實體區塊位址。該固態硬碟包括有被通訊地耦接到該持續性記憶體及該區塊可定址記憶體的固態硬碟控制器電路。該固態硬碟控制器電路包括有用以儲存一邏輯至實體位址間接表快取的一依電性記憶體及電路,該電路監視該邏輯至實體位址間接表快取並把在該邏輯至實體位址間接表快取中之髒的邏輯至實體條目寫入到在該持續性記憶體中的該邏輯至實體位址間接表。
Description
發明領域 本發明係有關於儲存裝置,並具體地係有關於儲存在硬碟中的持續性記憶體中之邏輯至實體(L2P)位址間接表。
發明背景 一電腦系統通常包括一依電性系統記憶體,例如,一動態隨機存取記憶體(DRAM)以及一儲存裝置。該儲存裝置可以是包括區塊可定址非依電性記憶體的一固態硬碟(SSD)。
一邏輯區塊係用於讀取及寫入命令以存取在該固態硬碟中該區塊可定址非依電性記憶體之最小的可定址資料單元。該邏輯區塊的該位址通常被稱為一邏輯區塊位址(LBA)。
一邏輯至實體(L2P)位址間接表儲存對應於每一個LBA之在該固態硬碟中的區塊可定址非依電性記憶體中之一實體區塊位址。該L2P位址表的該大小取決於該固態硬碟的使用者容量。通常,在該固態硬碟中每十億位元組(GB)的使用者容量該L2P位址表的大小約為一百萬個位元組(MB)。
發明概要 依據本發明之一實施例,係特地提出一種固態硬碟,其包含:用以儲存資料的一區塊可定址非依電性記憶體;用以儲存一邏輯至實體位址間接表的一持續性記憶體,該邏輯至實體位址間接表具有複數個條目,每一個條目儲存分配給一邏輯區塊位址之在該區塊可定址非依電性記憶體中的一實體區塊位址;以及被通訊地耦接至該持續性記憶體及該區塊可定址非依電性記憶體的固態硬碟控制器電路,該固態硬碟控制器電路包含有:用以儲存一邏輯至實體位址間接表快取的一依電性記憶體;以及通訊地耦接至該依電性記憶體的一輔助電路,該輔助電路用以監視該邏輯至實體位址間接表快取且將在該邏輯至實體位址間接表快取中之髒的邏輯至實體條目寫入到在該持續性記憶體中的該邏輯至實體位址間接表。
較佳實施例之詳細說明 一L2P位址表(也稱為一L2P間接表或L2P表)被儲存在一位元組可定址的依電性記憶體(例如,動態隨機存取記憶體(DRAM)或同步動態隨機存取記憶體(SDRAM))中。該L2P表被儲存在位元組可定址的依電性記憶體中來加速從該L2P間接表中讀取實體區塊位址以存取在該固態硬碟中的區塊可定址非依電性記憶體(例如,NAND快閃記憶體)中的該實體區塊。用於儲存該L2P間接表的該位元組可定址依電性記憶體可被包括在該固態硬碟中或被包括在被通訊耦接到該固態硬碟的一主機中。
該L2P間接表可被儲存在一主機記憶體緩衝器中,例如儲存在系統 DRAM的一部分中。在每一次寫入(更新)在該主機記憶體緩衝器中的該L2P間接表時,在該固態硬碟中的該區塊可定址非依電性記憶體中所儲存的該L2P間接表在同時被寫入(完全寫入模式)。寫入該L2P表的該效能係基於最長的寫入時間,即,寫入到該區塊可定址非依電性記憶體或該主機記憶體緩衝器的該時間。
該L2P間接表可被儲存在該固態硬碟中的一位元組可定址依電性記憶體中。然而,該L2P間接表的該大小係取決於該固態硬碟的該使用者容量(例如,每十億個位元組(GB)的使用者容量大約要一百萬個位元組(MB))。在該固態硬碟中該非依電性記憶體(也被稱為使用者容量)的增加需要相應地增加該位元組可定址的依電性記憶體以儲存該L2P間接表。
在一個實施例中,藉由把該L2P間接表儲存在該固態硬碟中的一持續性記憶體中來提高寫入到該L2P間接表的效能。
參考以下所討論的細節以及該等附圖,本發明的各種實施例及方面將被描述。下面的描述及附圖係對本發明的說明,不應被解讀為對本發明的限制。許多具體的細節被描述以提供對本發明各種實施例之一種透徹的理解。然而,在某些情況下,為了提供對本發明實施例的一精簡討論,眾所周知的或傳統的細節並未被描述。
在本說明書中提及「一個實施例」或「一實施例」係指結合該實施例所描述之一特定的特徵、結構、或特性可被包括在本發明的至少一個實施例中。在本說明書中之各個地方所出現的該短語「在一個實施例中」不一定都指同一個實施例。
圖1係一固態硬碟100之一實施例的一方塊圖。該固態硬碟100包括固態硬碟控制器電路104、一持續性記憶體106以及一區塊可定址非依電性記憶體108。
該固態硬碟控制器電路104包括主機介面電路102、持續性記憶體控制器電路110、非依電性區塊可定址記憶體控制器電路112、一處理器122、韌體140、硬體輔助電路116以及一靜態隨機存取記憶體130。該固態硬碟控制器電路104可被包括在一現場可規劃閘陣列(FPGA)或一專用積體電路(ASIC)中。
一主機系統可以通過一高速串列電腦擴展匯流排120,例如,一快速週邊組件互連(PCIe)匯流排與該固態硬碟100進行通訊。該主機介面電路102管理在該高速週邊組件互連(PCIe)匯流排上的通訊。在一實施例中,該主機系統在使用一快速非依電性記憶體(NVMe)標準協定的該快速週邊組件互連(PCIe)匯流排上進行通訊。該快速非依電性記憶體(NVMe)標準協定定義了一暫存器層級的介面,用於主機軟體通過該快速週邊組件互連(PCIe)匯流排與該固態硬碟 (SSD)100進行通訊。該等快速NVM標準可從www.nvmexpress.org上取得。該等PCIe標準可在pcisig.com上取得。
該快速NVM介面允許主機軟體基於一成對的提交及完成佇列機制通過該高速串列電腦擴展匯流排120與該固態硬碟100進行通訊。提交佇列(SQ)144及完成佇列(CQ)142被配置在記憶體中。一提交佇列144係具有一固定槽大小的一循環緩衝器,該主機軟體使用該緩衝器來提交由該固態硬碟控制器電路104來執行的命令。一完成佇列142係具有一固定槽大小的一循環緩衝器,其被使用來發布已完成命令的狀態。
一NVMe命令集被使用於該等成對的提交及完成佇列。主機軟體把來自該NVMe命令集的命令插入到一提交佇列144中以供該固態硬碟控制器電路104來執行。該固態硬碟控制器電路104把完成插入到該相關聯的完成佇列142中。
該靜態隨機存取記憶體130的一部分被分配為一L2P間接表快取132以儲存被儲存在該持續性記憶體106中一持續性記憶體(PM)L2P間接表118的一部分。該靜態隨機存取記憶體130的另一部分被分配為一緩衝器134以儲存通過該高速串列電腦擴展匯流排120所傳輸的資料。在一實施例中,該靜態隨機存取記憶體130為一或多個百萬位元組(MB)。
該靜態隨機存取記憶體130的另一部分被分配為一實體至邏輯(P2L)間接表136。該L2P間接表快取132及該實體至邏輯(P2L)間接表136兩者都儲存對應於邏輯區塊位址在該固態硬碟中區塊可定址非依電性記憶體中的實體區塊位址。在該P2L間接表136中的該等條目係靜態的(在它們被寫入之後不被更新)。在該L2P間接表快取132中的該等條目係被動態更新的。
該靜態隨機存取記憶體130係一依電性記憶體。依電性記憶體係其狀態(並因此被儲存在其中的資料)在該裝置被斷電時係不確定的記憶體。SRAM係一種依電性記憶體,它使用鎖存電路來儲存每一個位元。SRAM通常被使用作為一快取記憶體,因為與動態隨機存取記憶體(DRAM)相比,被儲存在SRAM中的資料不需要被定期地再新。
持續性記憶體106及區塊可定址非依電性記憶體108係非依電性記憶體。一非依電性記憶體(NVM)裝置係一種即使在該裝置被斷電的情況下其狀態也係確定的記憶體。在一個實施例中,該區塊定址非依電性記憶體108係一NAND快閃記憶體,或更具體地,係多臨界層級NAND快閃記憶體(例如,單層級胞元(「SLC」)、多層級胞元(「MLC」)、三層級胞元(「TLC」)、四層級胞元(「QLC」)、五層級胞元 (「PLC」) 或其他一些NAND快閃記憶體)。
該區塊可定址非依電性記憶體108包括至少一個非依電性記憶體晶粒,例如一NAND快閃晶粒。通常,資料在橫過該SSD中許多的NAND快閃晶粒上被寫入(條帶化)以最佳化該寫入頻寬。在該非依電性記憶體晶粒上的該非依電性記憶體包括複數個區塊,每一個區塊包括有複數個分頁。在該複數個分頁中的每一個分頁儲存資料及相關聯的元資料。在一實施例中,該非依電性記憶體晶粒具有2048個區塊,每一個區塊有64個分頁,以及每一分頁可以儲存2048個位元組的資料及64個位元組的元資料。
持續性記憶體106係一位元組可定址的就地寫入非依電性記憶體。位元組可定址就地寫入非依電性記憶體裝置的實例包括一種三維交叉點記憶體裝置、單層或多層相變記憶體(PCM)或具有一開關的相變記憶體(PCMS)、INTEL OPTANE、使用硫屬化合物相變材料(例如硫屬玻璃)的非依電性記憶體裝置、包括有金屬氧化物基、氧空位基及導電橋隨機存取記憶體(CB-RAM)的電阻式記憶體、奈米線記憶體、鐵電隨機存取記憶體(FeRAM、FRAM)、結合憶阻器技術的磁阻隨機存取記憶體(MRAM)、自旋轉移力矩(STT)-MRAM、基於自旋電子磁性接面記憶體的裝置、基於磁性穿隧接面(MTJ)的裝置、一基於DW(域壁)及SOT(自旋軌道轉移)的裝置、一基於閘流電晶體的記憶體裝置、或上述任何一項的組合、或其他記憶體。
該硬體輔助電路116(也被稱為電路116)管理在該持續性記憶體106與該區塊可定址非依電性記憶體108 之間的資料傳輸。該持續性記憶體106的一部分被分配來儲存該PM L2P間接表118。該區塊可定址非依電性記憶體108的一部分被使用來儲存一主L2P間接表148。該PM L2P間接表118的該大小基於1:1000的比率取決於該區塊可定址非依電性記憶體108的該容量,例如,每十億個位元組(GB)的區塊可定址非依電性記憶體108,在持續性記憶體106中的該PM L2P間接表118的大小為一百萬個位元組(MB)。該PM L2P間接表118係該主L2P間接表148的一份拷貝。該PM L2P間接表118及主L2P間接表148兩者都被儲存在非依電性記憶體中並且在該固態硬碟100的操作期間被週期性地同步。
持續性記憶體106的該剩餘部分可被使用來儲存該PM L2P間接表118、使用者資料、持續性記憶體元資料以及主機元資料。持續性記憶體/主機元資料。在一實施例中,該持續性記憶體的大約5%被使用來儲存該PM L2P間接表118、大約5%被使用來儲存持續性記憶體/主機元資料以及大約90%被使用來儲存使用者資料。
在一個實施例中,被儲存在持續性記憶體106中的該使用者資料可以包括經常被存取的使用者資料、作業系統檔案以及可執行程式。該經常被存取的使用者資料可被稱為一「熱」使用者資料。非經常被存取的資料,也被稱為「冷」使用者資料,可被儲存在該區塊可定址非依電性記憶體108中。該持續性記憶體106可被稱為「儲存加速器記憶體」,因為持續性記憶體106的讀取等待時間小於該區塊可定址非依電性記憶體108 的該讀取等待時間。
在其他的實施例中,該持續性記憶體106可以是SLC NAND並且該區塊可定址非依電性記憶體可以是每一個胞元多於一個位元的NAND(例如,MLC、TLC、QLC、PLC NAND)。SLC NAND的讀取等待時間比每一個胞元超過一個位元的NAND要快。
在該固態硬碟控制器電路104中的該非依電性區塊可定址記憶體控制器電路112對命令進行排隊及處理(例如,用於被儲存在該區塊可定址非依電性記憶體108中使用者資料的讀取、寫入(「規劃」)、抹除命令)。
該固態硬碟100不包括一動態隨機存取記憶體(DRAM)並且可以被稱為無DRAM的固態硬碟。
圖2係在圖1中所示之該PM L2P間接表118的一實例,該PM L2P間接表118可被儲存在圖1所示之該持續性記憶體106中。在該固態硬碟中PM L2P間接表118中的每一個L2P條目(「列」)204儲存在該固態硬碟100中該區塊可定址非依電性記憶體108中的一實體位置(「PLOC」)。該實體位置對應於該邏輯區塊位址(LBA)(從索引0到MAXLBA的表索引)。該L2P條目204還包括元資料(「META」)。
在該固態硬碟100中該區塊可定址非依電性記憶體108包括一或多個NAND快閃晶粒的一實施例中,一PLOC係在該等一或多個NAND快閃晶粒中的實體位置,其中資料針對一特定LBA被儲存。例如,在L2P條目204中,對應於LBA 0的實體位置A(「PLOC-A」)可以是NAND快閃晶粒0、區塊1、分頁1、偏移量0。
元資料係提供有關於其他資料之資訊的資料。例如,該元資料的一個位元可以是一「鎖定位元」,以防止對該L2P間接表200之L2P條目204中的該PLOC進行讀/寫存取。該元資料的另一個位元可以是「髒位元」,其狀態指出該L2P條目204的使用者資料是否已被沖刷到在該固態硬碟100中該區塊可定址非依電性記憶體108。當該L2P條目204被寫入時,用於L2P條目204的該髒位元會被設置為「髒的(dirty)」。
在一實施例中,存在有多級的L2P間接表,即該L2P間接表快取132、該PM L2P間接表118以及主L2P間接表148。由處理器122所執行的韌體140在該靜態隨機存取記憶體130中的該L2P間接表快取132中執行對該L2P條目的一初始搜索,以及在持續性記憶體106中該PM L2P間接表118中執行下一次搜索。如果該L2P位置不在該靜態隨機存取記憶體130中的該L2P間接表快取132中也不在持續性記憶體106中的該PM L2P間接表118中,那麼該L2P條目係在該區塊可定址非依電性記憶體108中的該主L2P間接表148中。
圖3係回應於接收自在該主機系統上執行之一作業系統的一寫入命令,在該固態硬碟100中所執行操作的一流程圖。
如先前所述,該提交佇列係具有一固定槽大小的一循環緩衝器。在該主機系統中所執行之一作業系統可以插入命令在該提交佇列中以供該固態硬碟控制器電路104來執行。在該處理器122中的該韌體140按順序從該提交佇列中提取命令並且可以以任何順序來執行該等命令。
在方塊300,如果在該提交佇列上有一寫入命令要被處理,則處理繼續方塊302。
在方塊302,在該處理器122中的該韌體140執行從該主機介面電路102中的該提交佇列144處所提取的一寫入命令。經由該主機介面電路102從該主機所接收到將被寫入到該固態硬碟100的資料被寫入到該緩衝器134並且一P2L條目被插入到P2L間接表136中。
在方塊304,被儲存在緩衝器134中的資料被移動到該區塊可定址非依電性記憶體108並且在該P2L間接表136表中的該P2L條目被插入到該L2P間接表快取132中。
在方塊 306,在該L2P間接表快取132中的該等條目被移動到在持續性記憶體106 中的該PM L2P間接表118。在該L2P間接表快取132中所累積條目的數量係取決於到持續性記憶體106的最小傳輸大小。處理繼續到方塊300以處理來自該提交佇列的另一個寫入請求。
圖4係回應於接收自在該主機系統上執行之一作業系統的一讀取命令,在該固態硬碟100中所執行操作的一流程圖。在一實施例中,該讀取命令係一NVMe讀取命令。該NVMe讀取命令可以被發送到該持續性記憶體106及該區塊可定址非依電性記憶體108兩者。一NVMe讀取命令可以導致對儲存在該持續性記憶體106中元資料的讀取。
在該主機系統上執行的該作業系統可插入一讀取命令在該提交佇列中以供在該處理器122中的該韌體140來執行。該固態硬碟控制器電路104從該提交佇列中提取該讀取命令。該讀取命令包括要從在該固態硬碟100中的該區塊可定址非依電性記憶體108或該持續性記憶體106來讀取之該資料的一邏輯區塊位址。
在方塊400,如果在該提交佇列上有一讀取命令要被處理,則該固態硬碟控制器電路104從該提交佇列中提取出該讀取命令,而處理繼續到方塊402。
在方塊402,在該固態硬碟100中的該固態硬碟控制器電路104在該固態硬碟100中的該靜態隨機存取記憶體130中的該P2L間接表136中搜索與該邏輯區塊位址相對應的一P2L條目。如果存在有與該將被讀取資料之該邏輯區塊位址相對應的一P2L條目,則處理繼續到方塊404。如果沒有,則處理繼續到方塊406。
在方塊404,從在該P2L間接表136中的該L2P條目中讀取與該邏輯區塊位址相對應之該實體區塊的該實體位址。在對應於該邏輯區塊位址之在該P2L間接表136中該P2L條目中的該實體區塊處從該區塊可定址非依電性記憶體108中讀取資料。處理繼續到方塊400,以從該提交佇列中提取另一個讀取命令。
在方塊406,在該固態硬碟100中的該固態硬碟控制器電路104於該固態硬碟100中該靜態隨機存取記憶體130中的該L2P間接表快取132中搜索與該邏輯區塊位址相對應的一L2P條目。如果存在有對應於該將被讀取資料之該邏輯區塊位址的一L2P條目,則處理繼續到方塊408。如果沒有,則處理繼續到方塊410。
在方塊408,從該靜態隨機存取記憶體130中該L2P間接表快取132中的該L2P條目中讀取與該邏輯區塊位址相對應之該實體區塊的該實體位址。在與該邏輯區塊位址相對應之在該L2P間接表快取132中該L2P條目中的該實體區塊處從該區塊可定址非依電性記憶體108中讀取資料。處理繼續到方塊400,以從該提交佇列中提取另一個讀取命令。
在方塊410,在該固態硬碟100中的該固態硬碟控制器電路104在該固態硬碟100中該持續性記憶體106中的該PM L2P間接表118中搜索與該邏輯區塊位址相對應的一L2P條目。如果存在有與該將被讀取資料之該邏輯區塊位址相對應的一L2P條目,則處理繼續到方塊412。如果沒有,則處理繼續到方塊400。
在方塊412處,從該PM L2P間接表118中的該L2P條目中讀取與該邏輯區塊位址相對應之該實體區塊的該實體位址。從在該區塊可定址非依電性記憶體108中的該實體區塊中讀取資料。處理繼續使用方塊400來從該提交佇列中提取另一個讀取命令。
該固態硬碟控制器電路104可以從該區塊可定址非依電性記憶體108中的一資料區塊處讀取及寫入一資料分頁,但只能在一區塊層級做抹除。在該資料被抹除之前,該固態硬碟控制器電路104不能覆寫在該區塊可定址非依電性記憶體中的該資料。為了確保讀取/寫入效能不受抹除操作的影響,也被稱為「垃圾收集」的抹除操作被聚合在一起。一作業系統識別出不再被需要並且可以藉由向該固態硬碟100發出一TRIM命令來抹除的檔案及資料。
圖5係回應於接收自在該主機系統上執行之一作業系統的一TRIM命令,在該固態硬碟100中所執行操作的一流程圖。一TRIM命令的一實例係該NVMe解除分配命令。該TRIM命令標識出在該區塊可定址非依電性記憶體108中可以被抹除的區塊。
在方塊500,如果在該提交佇列上有要被處理的一TRIM命令,則該固態硬碟控制器電路104從該提交佇列中提取出該TRIM命令,處理繼續到方塊502。
在方塊502,在該固態硬碟100中該靜態隨機存取記憶體130中的該P2L間接表136中搜索與將被抹除之該邏輯區塊位址或一邏輯區塊位址範圍相對應的一或多個P2L條目。如果存在有對應於該邏輯區塊位址的一P2L條目,則處理繼續到方塊504。如果沒有,則處理繼續到方塊406。
在方塊504,清除在P2L間接表中與該邏輯區塊位址相對應的該條目。處理繼續到方塊500。
在方塊506,在該固態硬碟100中的該固態硬碟控制器電路104在該固態硬碟100中該靜態隨機存取記憶體130中的該L2P間接表快取132中搜索與該邏輯區塊位址相對應的一L2P條目。如果存在有與該將被讀取資料之該邏輯區塊位址相對應的一L2P條目,則處理繼續到方塊508。如果沒有,則處理繼續到方塊510。
在方塊508,在該靜態隨機存取記憶體130中該L2P間接表快取132中的該L2P條目被清除。處理繼續到方塊500。
在方塊510,在該固態硬碟100中的該固態硬碟控制器電路104在該固態硬碟100中該持續性記憶體106中的該PM L2P間接表118中搜索與該邏輯區塊位址相對應的一L2P條目。如果存在有與該將被讀取資料之該邏輯區塊位址相對應的一L2P條目,則處理繼續到方塊512。如果沒有,則處理繼續到方塊500。
在方塊512,在該持續性記憶體106中該PM L2P間接表118中的該L2P條目被清除。例如,可以藉由把所有的位元寫入邏輯1或邏輯0來清除在該條目中的所有位元。處理繼續到方塊500。
把該L2P間接表儲存在該持續性記憶體中對在該持續性記憶體106中該PM L2P間接表118的更新降低了該頻率並增加了該粒度。此外,使用一硬體輔助電路116來更新在該區塊可定址非依電性記憶體108中的該主L2P間接表148提供了更多的頻寬來儲存更新主L2P間接表148以及把資料儲存在該區塊可定址非依電性記憶體108中。
圖6係一電腦系統600之一實施例的一方塊圖,該電腦系統包括在一固態硬碟100中的一持續性記憶體106以儲存一L2P間接表118。電腦系統600可以對應於包括有,但不侷限於,一伺服器、一工作站電腦、一桌上型電腦、一膝上型電腦、及/或一平板電腦的一運算裝置。
該電腦系統600包括一系統單晶片(SOC或SoC)604,其把處理器、圖形、記憶體、及輸入/輸出(I/O)控制邏輯組合成一個SoC封裝之中。該SoC 604包括至少一個中央處理單元(CPU)模組608、一依電性記憶體控制器614、以及一圖形處理器單元(GPU)610。在其他的實施例中,該依電性記憶體控制器614可以在該SoC 604之外。該CPU模組608包括至少一個處理器核心602,以及一個2級(L2)快取606。
儘管未被示出,該(等)處理器核602中的每一個可在內部包括一或多個指令/資料快取、執行單元、預先提取緩衝器、指令佇列、分支位址計算單元、指令解碼器、浮點單元、引退單元、等等。根據一個實施例,該CPU模組608可以對應於一單核心或一多核心通用處理器,諸如由英特爾公司所提供的處理器。
該圖形處理器單元(GPU)610可以包括一或多個GPU核心及一GPU快取,其可以儲存與該GPU核心的圖形相關的資料。該GPU核心內部可以包括一或多個執行單元以及一或多個指令及資料快取。此外,該圖形處理器單元(GPU)610可以包含未在圖6中示出之其他的圖形邏輯單元,諸如一或多個頂點處理單元、網格化單元、媒體處理單元、及編碼解碼器。
在該I/O子系統612內,存在有一或多個I/O適配器616以把在該(等)處理器核心602內所使用之一主機通訊協定轉換為與特定I/O裝置兼容的協定。適配器可被使用來轉換的一些協定包括週邊組件互連(PCI);快速週邊組件互連(PCIe);通用串列匯流排(USB);串列先進技術附接(SATA)以及國際電機及電子工程師協會(IEEE)1594「火線」。
該(等)I/O適配器616可以與外部I/O裝置624進行通訊,該等外部I/O裝置624可以包括,例如,包括有顯示器及/或一觸控螢幕顯示器640、印表機、小鍵盤、鍵盤、通訊邏輯、有線及/或無線的使用者介面裝置;包括有固態硬碟(「HDD」)、固態硬碟(「SSD」)、可移除式動儲存媒體、數位視訊光碟(DVD)、光盤(CD)、獨立磁碟冗餘陣列(RAID)、磁帶或其他儲存裝置的儲存裝置。該等儲存裝置可以透過使用各種協定之一或多種的一或多條匯流排以通訊地方式及/或實體地方式被耦接在一起,這些協定包括有,但不侷限於SAS(串列連接SCSI(小型電腦系統介面))、PCIe(快速週邊組件互連)、在PCIe(快速週邊組件互連)上的NVMe(快速NVM)、以及SATA(串列ATA(先進技術附接))。
此外,可以有一或多個無線協定I/O適配器。無線協定的實例,尤其,被使用在個人區域網路中,諸如IEEE 802.15及藍牙4.0;無線區域網路,諸如基於IEEE 802.11的無線協定;以及蜂巢式協定。
該(等)I/O適配器616還可以與一固態硬碟(「SSD」)100進行通訊,該固態硬碟包括固態硬碟控制器電路104及持續性記憶體106以儲存結合圖1所討論的該PM L2P間接表118。
該(等)I/O適配器616可以包括一PCIe(快速週邊組件互連)適配器,其使用該在PCIe(快速週邊組件互連)上的NVMe(快速NVM)協定通過該高速串列電腦擴展匯流排120被通訊地耦接到在該固態硬碟100中的該主機介面電路102。快速非依電性記憶體(NVMe)標準定義了一暫存器層級介面用於主機軟體通過快速週邊組件互連(PCIe),一種高速串列電腦擴展匯流排,來與一非依電性記憶體子系統(例如,一固態硬碟(SSD))進行通訊。該等快速NVM標準可從www.nvmexpress.org取得。該等PCIe標準可在 www.pcisig.com上取得。
依電性記憶體係在該裝置被斷電時其狀態(以及其中所儲存的資料)為不確定的記憶體。動態依電性記憶體需要再新儲存在該裝置中的資料以保持狀態。動態依電性記憶體的一個實例包括DRAM(動態隨機存取記憶體),或一些變型諸如同步DRAM(SDRAM)。此處所描述之一記憶體子系統可以與多種記憶體技術兼容,諸如DDR3(雙資料速率版本3,JEDEC(聯合電子裝置工程協會)於2007年6月27日最初發布)。DDR4(DDR版本4,JEDEC於2012年9月發布初始規範)、DDR4E(DDR版本4)、LPDDR3(低功耗DDR版本3,JESD209-3B,JEDEC於2013年8月)、LPDDR4(LPDDR版本4,JESD209-4,最初由JEDEC於2014年8月發布),WIO2(寬輸入/輸出版本2,JESD229-2最初由JEDEC於2014年8月發布)、HBM(高頻寬記憶體,JESD325,最初由JEDEC於2013年10月發布)、DDR5(DDR版本5,目前由JEDEC討論中)、LPDDR5(目前由JEDEC討論中)、HBM2(HBM版本2,目前由JEDEC討論中)、或其他的或記憶體技術的組合、以及基於衍生物或這些規範之擴展的技術。該等JEDEC標準可從www.jedec.org取得。
一作業系統642係管理電腦硬體及軟體的軟體,包括記憶體分配及對I/O裝置的存取。作業系統的實例包括Microsoft® Windows®、Linux®、iOS®以及Android®。
本文所說明的流程圖提供了各種處理動作的順序實例。該等流程圖可以指出要由一軟體或韌體程序來執行的操作以及實體作業。在一個實施例中,一流程圖可以說明有限狀態機(FSM)的該狀態,其可以在硬體及/或軟體中被實現。儘管係以一特定的序列或順序來被展示,但除非另有說明,否則可以修改該等動作的順序。因此,該等說明的實施例應該被理解為實例,並且可以以不同的順序來執行該處理,以及可以平行地執行一些動作。此外,在各種實施例中可以省略一或多個動作;因此,在每一個實施例中並非需要所有的動作。其他處理流程也是有可能的。
就本文所描述的各種操作或功能而言,它們可以被描述或被定義為軟體代碼、指令、組配、及/或資料。該內容可以是直接可執行的(「物件」或「可執行的」形式)、源代碼、或差異代碼(「增補」或「補丁」代碼)。在此所描述之該等實施例的該軟體內容可經由在其上具有儲存內容的一製品來提供,或者經由操作一通訊介面以經由該通訊介面發送資料的方法來提供。一機器可讀取儲存媒體可致使一機器來執行所描述的功能或操作,並且包括可由一機器(例如,運算裝置、電子系統、等等)存取之一形式來儲存資訊的任何機制,諸如可記錄/非可記錄媒體(例如,唯讀記憶體(ROM)、隨機存取記憶體(RAM)、磁碟儲存媒體、光儲存媒體、快閃記憶體裝置、等等)。一通訊介面包括與一固線式、無線、光學、等等媒體中的任一種介面以與另一裝置進行通訊的任何機制,諸如一記憶體匯流排介面、一處理器匯流排介面、一網際網路連接、一磁碟控制器、等等。可以藉由提供組配參數及/或發送信號來組配該通訊介面以準備通訊介面來提供描述該軟體內容的一資料信號。該通訊介面可經由發送到該通訊介面之一或多個命令或信號來被存取。
本文所描述的各種組件可以是用於執行所描述的操作或功能的一種構件。本文所描述的每一個組件包括軟體、硬體、或這些的一種組合。該等組件可被實現為軟體模組、硬體模組、專用硬體(例如,專用硬體、專用積體電路(ASIC)、數位信號處理器(DSP)、等等)、嵌入式控制器、固線式電路、等等。
除了本文所描述的內容之外,在不脫離本發明範圍的情況下,可以對本發明的所揭露的實施例及實現方式進行各種修改。
因此,本文的說明及實例應該被解讀為說明性的,而不是限制性的。本發明的範圍應僅藉由參考所附的請求項來被衡量。
100:固態硬碟 102:主機介面電路 104:固態硬碟控制器電路 106:持續性記憶體 108:區塊可定址非依電性記憶體 110:持續性記憶體控制器電路 112:非依電性區塊可定址記憶體控制器電路 116:硬體輔助電路 118:PM L2P間接表 120:高速串列電腦擴展匯流排 122:處理器 130:靜態隨機存取記憶體 132:L2P間接表快取 134:緩衝器 136:P2L 140:韌體 142:CQ 144:SQ 148:主L2P間接表 200:L2P間接表 204:L2P條目 300〜306、400〜412、500〜512:方塊 600:電腦系統 602:處理器核心 604:系統單晶片(SoC) 606:2級(L2)快取 608:CPU模組 610:GPU模組 612:I/O子系統 614:記憶體控制器 616:I/O適配器 122:非依電性記憶體 624:I/O裝置 626:依電性記憶體 640:顯示器及/或一觸控螢幕顯示器 642:作業系統
隨著以下詳細描述的進行並參考該等附圖,本要求保護技術主題之實施例的特徵將變得顯而易見,其中相同的數字表示相同的部件,並且其中: 圖1係一固態硬碟之一實施例的一方塊圖; 圖2係在圖1中所示之該固態固態硬碟L2P間接表的一實例; 圖3係回應於接收自在該主機系統上執行之一作業系統的一寫入命令,在該固態硬碟中所執行操作的一流程圖; 圖4係回應於接收自在該主機系統上執行之一作業系統的一讀取命令,在該固態硬碟中所執行操作的一流程圖; 圖5係回應於接收自在該主機系統上執行之一作業系統的一TRIM命令,在該固態硬碟中所執行操作的一流程圖;以及 圖6係一電腦系統之一實施例的一方塊圖,該電腦系統包括在一固態硬碟中的一持續性記憶體以儲存一L2P間接表。
儘管將參考所要求保護之技術主題的說明性實施例進行以下詳細的描述,但是其許多的替代、修改、及變化對於本領域的習知技藝者來說將會是顯而易見的。因此,該要求保護的技術主題旨在被廣泛地看待,並且被限定為如所附請求項中所闡述的。
100:固態硬碟 102:主機介面電路 104:固態硬碟控制器電路 106:持續性記憶體 108:區塊可定址非依電性記憶體 110:持續性記憶體控制器電路 112:非依電性區塊可定址記憶體控制器電路 116:硬體輔助電路 118:PM L2P間接表 120:高速串列電腦擴展匯流排 122:處理器 130:靜態隨機存取記憶體 132:L2P間接表快取 134:緩衝器 136:P2L 140:韌體 142:CQ 144:SQ 148:主L2P間接表
Claims (22)
- 一種固態硬碟,其包含: 一區塊可定址非依電性記憶體,其用以儲存資料; 一持續性記憶體,其用以儲存一邏輯至實體位址間接表,該邏輯至實體位址間接表具有複數個條目,各條目用以儲存分配給一邏輯區塊位址之在該區塊可定址非依電性記憶體中的一實體區塊位址;以及 固態硬碟控制器電路,其通訊地耦接至該持續性記憶體及該區塊可定址非依電性記憶體,該固態硬碟控制器電路包含: 一依電性記憶體,其用以儲存一邏輯至實體位址間接表快取;及 一輔助電路,其通訊地耦接至該依電性記憶體,該輔助電路用以監視該邏輯至實體位址間接表快取且用以將在該邏輯至實體位址間接表快取中之髒的邏輯至實體條目寫入至在該持續性記憶體中的該邏輯至實體位址間接表,其中該區塊可定址非依電性記憶體為具有每一胞元超過一個位元的NAND記憶體,並且其中該持續性記憶體為具有每一胞元一個位元的NAND記憶體。
- 如請求項1之固態硬碟,其中該依電性記憶體用以包括一緩衝器以暫時地儲存要被由該輔助電路寫入至該區塊可定址非依電性記憶體的資料。
- 如請求項1之固態硬碟,其中回應於用以將資料寫入至在該區塊可定址非依電性記憶體中之一邏輯位址的一命令,資料被寫入至在該區塊可定址非依電性記憶體中的一實體位址,且在該邏輯至實體位址間接表快取中與該實體位址及該邏輯位址相關聯的一條目被設置為髒的。
- 如請求項1之固態硬碟,其中回應於用以從在該區塊可定址非依電性記憶體中的一邏輯區塊位址讀取資料的一命令,該邏輯至實體位址間接表快取針對用於在該區塊可定址非依電性記憶體中與該邏輯區塊位址相關聯之一實體區塊位址的一條目來被搜索。
- 如請求項1之固態硬碟,其中回應於用以從在該區塊可定址非依電性記憶體中的一邏輯區塊位址讀取資料的一命令,在該持續性記憶體中的該邏輯至實體位址間接表針對用於在該區塊可定址非依電性記憶體中與該邏輯區塊位址相關聯之一實體區塊位址的一條目來被搜索。
- 如請求項1之固態硬碟,其中回應於用以從在該區塊可定址非依電性記憶體中的一邏輯區塊位址抹除資料的一命令,在該持續性記憶體中的該邏輯至實體位址間接表針對用於在該區塊可定址非依電性記憶體中與該邏輯區塊位址相關聯之一實體區塊位址的一條目來被搜索。
- 如請求項1之固態硬碟,其中該區塊可定址非依電性記憶體係NAND且該持續性記憶體係三維交叉點。
- 一種用於執行一記憶體之操作之方法,其包含有: 將資料儲存在一區塊可定址非依電性記憶體中; 將一邏輯至實體位址間接表儲存在一持續性記憶體中,該邏輯至實體位址間接表具有複數個條目,各條目用以儲存分配給一邏輯區塊位址之在該區塊可定址非依電性記憶體中的一實體區塊位址;以及 在一依電性記憶體中,將一邏輯至實體位址間接表快取儲存在一依電性記憶體中;以及 監視該邏輯至實體位址間接表快取且將在該邏輯至實體位址間接表快取中之髒的邏輯至實體條目寫入至在該持續性記憶體中的該邏輯至實體位址間接表,其中該區塊可定址非依電性記憶體為具有每一胞元超過一個位元的NAND記憶體,並且其中該持續性記憶體為具有每一胞元一個位元的NAND記憶體。
- 如請求項8之方法,其中該依電性記憶體用以包括一緩衝器以暫時地儲存要被寫入至該區塊可定址非依電性記憶體的資料。
- 如請求項8之方法,其進一步包含有: 回應於用以將資料寫入至在該區塊可定址非依電性記憶體中之一邏輯位址的一命令,將資料寫入至在該區塊可定址非依電性記憶體中的一實體位址;以及 將在該邏輯至實體位址間接表快取中與該實體位址及該邏輯位址相關聯的一條目設置為髒的。
- 如請求項8之方法,其進一步包含有: 回應於用以從在該區塊可定址非依電性記憶體中的一邏輯區塊位址讀取資料的一命令,在該邏輯至實體位址間接表快取中搜索用於在該區塊可定址非依電性記憶體中與該邏輯區塊位址相關聯之一實體區塊位址的一條目。
- 如請求項8之方法,其進一步包含有: 回應於用以從在該區塊可定址非依電性記憶體中的一邏輯區塊位址讀取資料的一命令,在該持續性記憶體中的該邏輯至實體位址間接表中搜索用於在該區塊可定址非依電性記憶體中與該邏輯區塊位址相關聯之一實體區塊位址的一條目。
- 如請求項8之方法,其進一步包含有: 回應於用以從在該區塊可定址非依電性記憶體中的一邏輯區塊位址抹除資料的一命令,在該持續性記憶體中的該邏輯至實體位址間接表中搜索用於在該區塊可定址非依電性記憶體中與該邏輯區塊位址相關聯之一實體區塊位址的一條目。
- 如請求項8之方法,其中該區塊可定址非依電性記憶體係NAND且該持續性記憶體係三維交叉點記憶體。
- 一種記憶體設備,其包含用於進行如請求項8至14中任一項之方法的構件。
- 一種運算系統,其包含有: 一處理器; 一固態硬碟,其通訊地耦接至該處理器,該固態硬碟包含: 一區塊可定址非依電性記憶體,其用以儲存資料; 一持續性記憶體,其用以儲存一邏輯至實體位址間接表,該邏輯至實體位址間接表具有複數個條目,各個條目用以儲存分配給一邏輯區塊位址之在該區塊可定址非依電性記憶體中的一實體區塊位址;以及 固態硬碟控制器電路,其通訊地耦接至該持續性記憶體及該區塊可定址非依電性記憶體,該固態硬碟控制器電路包含: 一依電性記憶體,其用以儲存一邏輯至實體位址間接表快取;及 一輔助電路,其通訊地耦接至該依電性記憶體,該輔助電路用以監視該邏輯至實體位址間接表快取且用以將在該邏輯至實體位址間接表快取中之髒的邏輯至實體條目寫入至在該持續性記憶體中的該邏輯至實體位址間接表,其中該區塊可定址非依電性記憶體為具有每一胞元超過一個位元的NAND記憶體,並且其中該持續性記憶體為具有每一胞元一個位元的NAND記憶體。
- 如請求項16之運算系統,其中該依電性記憶體用以包括一緩衝器以暫時地儲存要被由該輔助電路寫入至該區塊可定址非依電性記憶體的資料。
- 如請求項16之運算系統,其中回應於用以將資料寫入至在該區塊可定址非依電性記憶體中之一邏輯位址的一命令,資料被寫入至在該區塊可定址非依電性記憶體中的一實體位址,且在該邏輯至實體位址間接表快取中與該實體位址及該邏輯位址相關聯的一條目被設置為髒的。
- 如請求項16之運算系統,其中回應於用以從在該區塊可定址非依電性記憶體中的一邏輯區塊位址讀取資料的一命令,該邏輯至實體位址間接表快取針對用於在該區塊可定址非依電性記憶體中與該邏輯區塊位址相關聯之一實體區塊位址的一條目來被搜索。
- 如請求項16之運算系統,其中回應於用以從在該區塊可定址非依電性記憶體中的一邏輯區塊位址讀取資料的一命令,在該持續性記憶體中的該邏輯至實體位址間接表針對用於在該區塊可定址非依電性記憶體中與該邏輯區塊位址相關聯之一實體區塊位址的一條目來被搜索。
- 如請求項16之運算系統,其中回應於用以從在該區塊可定址非依電性記憶體中的一邏輯區塊位址抹除資料的一命令,在該持續性記憶體中的該邏輯至實體位址間接表針對用於在該區塊可定址非依電性記憶體中與該邏輯區塊位址相關聯之一實體區塊位址的一條目來被搜索。
- 一種機器可讀取儲存器,其包括機器可讀取指令,當該等機器可讀取指令被執行時,實現如請求項8至14中任一項之方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US17/122,152 | 2020-12-15 | ||
| US17/122,152 US12019558B2 (en) | 2020-12-15 | 2020-12-15 | Logical to physical address indirection table in a persistent memory in a solid state drive |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202226253A TW202226253A (zh) | 2022-07-01 |
| TWI908891B true TWI908891B (zh) | 2025-12-21 |
Family
ID=
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20200272577A1 (en) | 2019-02-26 | 2020-08-27 | Marvell Asia Pte, Ltd. | Cache Management of Logical-Physical Translation Metadata |
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20200272577A1 (en) | 2019-02-26 | 2020-08-27 | Marvell Asia Pte, Ltd. | Cache Management of Logical-Physical Translation Metadata |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20190042460A1 (en) | Method and apparatus to accelerate shutdown and startup of a solid-state drive | |
| EP3696680B1 (en) | Method and apparatus to efficiently track locations of dirty cache lines in a cache in a two level main memory | |
| US12019558B2 (en) | Logical to physical address indirection table in a persistent memory in a solid state drive | |
| US11237732B2 (en) | Method and apparatus to improve write bandwidth of a block-based multi-level cell nonvolatile memory | |
| NL2030989B1 (en) | Two-level main memory hierarchy management | |
| US12014081B2 (en) | Host managed buffer to store a logical-to physical address table for a solid state drive | |
| US20190042413A1 (en) | Method and apparatus to provide predictable read latency for a storage device | |
| US10599579B2 (en) | Dynamic cache partitioning in a persistent memory module | |
| US12417146B2 (en) | Method and apparatus to improve performance of a redundant array of independent disks that includes zoned namespaces drives | |
| US20220083280A1 (en) | Method and apparatus to reduce latency for random read workloads in a solid state drive | |
| US10747439B2 (en) | Method and apparatus for power-fail safe compression and dynamic capacity for a storage device | |
| EP4320508A1 (en) | Method and apparatus to reduce nand die collisions in a solid state drive | |
| CN113360088B (zh) | 基于硬件的相干性检查技术 | |
| US10872041B2 (en) | Method and apparatus for journal aware cache management | |
| US11138102B2 (en) | Read quality of service for non-volatile memory | |
| TWI908891B (zh) | 固態硬碟、用於執行一記憶體之操作之方法、記憶體設備、運算系統及機器可讀取儲存器 | |
| CN120660064A (zh) | 用于减少nand快闪装置中存储页相关信息的内存容量的方法和设备 | |
| TWI903022B (zh) | 二階主要記憶體階層式管理技術 | |
| CN118538267A (zh) | 混合动态字线起始电压 |