TW201729107A - 用於反及閘型快閃記憶體之邏輯至實體位址表之壓縮快取 - Google Patents

用於反及閘型快閃記憶體之邏輯至實體位址表之壓縮快取 Download PDF

Info

Publication number
TW201729107A
TW201729107A TW105142143A TW105142143A TW201729107A TW 201729107 A TW201729107 A TW 201729107A TW 105142143 A TW105142143 A TW 105142143A TW 105142143 A TW105142143 A TW 105142143A TW 201729107 A TW201729107 A TW 201729107A
Authority
TW
Taiwan
Prior art keywords
logical
address
physical
physical address
memory device
Prior art date
Application number
TW105142143A
Other languages
English (en)
Inventor
戴特 泰密歐 鄒
申賢錫
Original Assignee
高通公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 高通公司 filed Critical 高通公司
Publication of TW201729107A publication Critical patent/TW201729107A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/70Details relating to dynamic memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本發明揭示用於提供用於一受管理反及閘快閃儲存器件之邏輯至實體位址轉譯之系統及方法。一個實施例為包含電耦接至一揮發性記憶體器件之一系統單晶片(SoC)之一系統。一直接記憶體存取(DMA)控制器經電耦接至該SoC。該DMA控制器接收待轉譯至與一受管理反及閘快閃儲存器件相關聯之一實體位址之一邏輯位址。一快取控制器經組態以自該揮發性記憶體器件提取一邏輯至實體(L2P)位址表之一部分,該邏輯至實體位址表包含用於該邏輯位址之一壓縮版本之一L2P映射。一壓縮區塊經組態以解壓縮該壓縮版本之該L2P映射以判定對應於該邏輯位址之該實體位址。

Description

用於反及閘型快閃記憶體之邏輯至實體位址表之壓縮快取
對快閃儲存效能之要求變得愈來愈高。諸如智慧型電話、平板電腦及遊戲器件之緊密消費型電子器件需要成本效益及低功率的儲存解決方案。反及閘快閃儲存器件包括受管理的和直接的兩種。受管理反及閘快閃儲存器件包括提供快閃轉譯層(FTL)之獨立儲存控制器晶片,從而使得應用程式處理器系統單晶片(SoC)不需要處理此問題。直接反及閘快閃儲存不具有單獨的儲存控制器晶片,且因此SoC執行FTL功能。受管理反及(反及閘)快閃儲存器件之實例包括嵌入多媒體卡(eMMC)、通用快閃儲存器(UFS)、外部串列進階技術附件(eSATA)、球狀柵格陣列(BGA) SATA、通用串列匯流排(USB)驅動器、安全數位(SD)卡、非揮發性記憶體高速(NVMe)卡及緊密快閃卡。直接(非受管理)反及閘快閃儲存器之實例包括雙態觸發反及閘及開放式反及閘快閃介面(ONFI)反及閘。反及閘器件對於行動應用為普遍的,此係因為其為低成本且低功率。 現有反及閘快閃儲存器件依賴於含於反及閘快閃記憶體內之較大快閃轉譯層(FTL)邏輯至實體(L2P)位址轉譯表,且僅快取晶片上靜態隨機存取記憶體(SRAM)中之較小部分之L2P表。在受管理及直接反及閘快閃儲存器中,自應用程式處理器之讀取及寫入存取由使用來自FTL L2P表之資訊經轉譯至實體反及閘位址之邏輯位址組成。當自反及閘記憶體讀取FTL表項時,此產生較長延遲(約幾十微秒),降低此等類型之儲存器之總體效能。因此,反及閘記憶體器件中之低成本及低功率消耗量之損失降低記憶體存取時間效能。
本發明揭示用於提供用於受管理反及閘快閃儲存器件之邏輯至實體位址轉譯之系統及方法。一個實施例為包含電耦接至揮發性記憶體器件之系統單晶片(SoC)之系統。直接記憶體存取(DMA)控制器經電耦接至SoC。DMA控制器接收待轉譯至與受管理反及閘快閃儲存器件相關聯之實體位址之邏輯位址。快取控制器經組態以自揮發性記憶體器件提取邏輯至實體(L2P)位址表之一部分,該邏輯至實體位址表包含用於邏輯位址之壓縮版本之L2P映射。壓縮區塊經組態以解壓縮該壓縮版本之L2P映射以判定對應於邏輯位址之實體位址。 另一實施例為用於提供用於受管理反及閘快閃儲存器件之邏輯至實體位址轉譯之方法。該方法包含:自系統單晶片(SoC)上執行之程式接收待轉譯至與電耦接至該SoC之受管理反及閘快閃儲存器件相關聯之實體位址之邏輯位址;自電耦接至該SoC之揮發性記憶體器件提取邏輯至實體(L2P)位址表之一部分,該邏輯至實體位址表包含用於邏輯位址之壓縮版本之L2P映射;及解壓縮該壓縮版本之L2P映射以判定對應於邏輯位址之實體位址。
詞語「例示性」在本文中用以意謂「充當一實例、個例或說明」。本文中描述為「例示性」之任何態樣不必被認作比其他態樣更佳或更有利。 在此描述中,術語「應用程式」亦可包括具有可執行內容之檔案,諸如:目標碼、指令碼、位元組碼、標示語言檔案以及修補程式。另外,本文中所提及之「應用程式」亦可包括在本質上不可執行之檔案,諸如可能需要打開的文件或其他需要存取的資料檔案。 術語「內容」亦可包括具有可執行內容之檔案,諸如:目標程式碼、腳本、位元組程式碼、標示語言檔案及修補程式。另外,本文中所提及之「內容」亦可包括本質上不可執行之檔案,諸如可能需要打開的文件或其他需要存取的資料檔案。 如在此描述中所使用,術語「組件」、「資料庫」、「模組」、「系統」及其類似者意欲指代電腦相關實體,其為硬體、韌體、硬體與軟體之組合、軟體或執行中之軟體。舉例而言,組件可為(但不限於)在處理器上執行之程序、處理器、物件、可執行體、執行緒、程式及/或電腦。藉助於說明,在計算器件上執行之應用程式及計算器件兩者皆可為組件。一或多個組件可駐存於程序及/或執行緒內,且組件可位於一個電腦上,及/或分佈於兩個或多於兩個電腦之間。另外,此等組件可自上面儲存有各種資料結構之各種電腦可讀媒體執行。該等組件可諸如根據具有一或多個資料封包的信號(例如,來自藉助於信號與本端系統、分佈式系統及/或跨越諸如具有其他系統之網際網路之網路中之另一組件互動的一個組件的資料)藉助於本端及/或遠端程序而通信。 在此描述中,術語「通信器件」、「無線器件」、「無線電話」、「無線通信器件」及「無線手持機」可互換使用。隨著第三代(「3G」)無線技術及第四代(「4G」)之出現,較大頻寬可用性使得更多的攜帶型計算器件能夠具有更多種無線能力。因此,攜帶型計算器件可包括蜂巢式電話、呼叫器、PDA、智慧型電話、導航器件或具有無線連接或鏈路之手持式電腦。 圖1說明用於提供用於受管理反及閘快閃儲存器件(例如反及閘106)之邏輯至實體(L2P)位址表之經壓縮快取之系統100。反及閘106包含反及閘型快閃記憶體。在一實施例中,反及閘106可包含多媒體卡(eMMC)、通用快閃儲存器(UFS)、外部串列進階技術附件(eSATA)、球狀柵格陣列(BGA) SATA、通用串列匯流排(USB)驅動器、安全數位(SD)卡、通用用戶識別模組(USIM)卡及緊密快閃卡。 系統100可實施於任何計算器件中,包括個人電腦、工作台、伺服器、攜帶型計算器件(PCD),諸如,蜂巢式電話、智慧型電話、攜帶型數位助理(PDA)、攜帶型遊戲控制台或平板電腦。如圖1之實施例中所說明,系統100包含電耦接至受管理反及閘控制器108及動態隨機存取記憶體(DRAM) 104之系統單晶片(SoC) 102。受管理反及閘控制器108提供對反及閘106之直接記憶體存取。 SoC 102包含由SoC匯流排120互連之一或多個處理單元(例如中央處理單元(CPU) 110、圖形處理單元(GPU)、數位信號處理單元等)、直接記憶體存取(DMA)匯流排控制器118、DRAM控制器116及機載記憶體(例如靜態隨機存取記憶體(SRAM) 112及唯讀記憶體(ROM) 114等)。DMA匯流排控制器118經電耦接至受管理反及閘控制器108且控制對反及閘106之記憶體存取(例如讀取及/或寫入操作)。DRAM控制器116經電耦接至DRAM 104且控制對DRAM 104之讀取/寫入存取。 受管理反及閘控制器108包含電耦接至SoC 102之DMA匯流排控制器122及電耦接至反及閘106之反及閘介面132。如下文更詳細地描述,受管理反及閘控制器108啟用反及閘邏輯至實體(L2P)位址表142之經壓縮快取。在一實施例中,受管理反及閘控制器108進一步包含快取控制器130、壓縮區塊124、在微控制器上執行之快閃轉譯層(FTL) 126及經由介面134互連之SRAM 128。一般而言,快取控制器130經組態以壓縮DRAM 104中之L2P位址表142。快取控制器130組態並管理(例如在SRAM 128中)用以實施DRAM 104中之L2P位址表142之經壓縮快取之各種資料結構(例如快取自由清單136及邏輯組(LG)查找表138)。圖1之受管理反及閘實施例為使用SoC 102外部的受管理反及閘控制器108之受管理反及閘儲存系統之實例。應瞭解在另一實施例中,圖1之受管理反及閘控制器108內的電路及功能可經整合於SoC 102中,僅留下DRAM 104及反及閘106在SoC 102之外部。 圖2為說明實施於系統100中之用於提供L2P位址表142之經壓縮快取之方法200的實施例之流程圖。在區塊202處,在(例如) CPU 102上執行之程式可指定待轉譯至與反及閘106相關聯之實體位址之邏輯位址。邏輯位址可回應於反及閘讀取及/或寫入操作經由DMA匯流排控制器122接收。對所接收邏輯位址之L2P轉譯可由在微控制器上執行之快閃轉譯層(FTL) 126執行。 FTL 126可查找儲存於DRAM 104中之L2P位址表142之一部分。如下文更詳細地描述,L2P位址表142之部分可包含用於反及閘106之所有邏輯至實體位址映射之壓縮子集。 在區塊204處,快取控制器130可經由(例如) DMA匯流排控制器122自DRAM 104提取L2P位址表142之部分。提取的部分可由壓縮區塊124解壓縮以抽取L2P映射,該L2P映射允許FTL 126判定實體位址。應瞭解,FTL 126可與微控制器及/或快取控制器130整合。在讀取操作之情況下,在獲得實體位址之後,反及閘106可發出讀取命令。作為回應,所要程式資料可經由反及閘介面132返回。可經由DMA匯流排控制器122 (受管理反及閘控制器108中之)、駐存於SoC 102上之DMA匯流排控制器118、SoC匯流排120、DRAM控制器104將資料提供至程式,並寄存於駐存於DRAM 104中之程式之檔案緩衝器140中。 圖3至圖5說明用於將壓縮版本之L2P位址儲存於DRAM 104中之快取結構之例示性實施例。圖3中之記憶體映像302表示例示性反及閘快閃儲存器件106之記憶體空間。反及閘快閃儲存器件106可包含複數個固定大小之區塊或資料頁,該等區塊或頁實際上經組織成N個邏輯組。在圖3之實施例中,每一頁302包含4 KB之資料,而每一邏輯組包含1024頁(使得每一邏輯組包含4 MB之資料)。舉例而言,頁0至頁1023可實際上經組織成邏輯組304 (LG 0)。頁1024至頁2047可實際上經組織成邏輯組306 (LG 1),等等,定義最末邏輯組308。 每一邏輯組之頁302可具有用於組態及管理邏輯組(LG)查找表138 (圖1)之相關標籤。圖5為說明邏輯組標籤格式500之實施例之資料圖。在圖5之實施例中,每一32位元標籤描述邏輯組所位於之位置(例如在DRAM 104中或反及閘106中)及邏輯組經壓縮還是未經壓縮。2位元指示符欄位502中之值「00b」指示邏輯組未經壓縮且位於反及閘106中。2位元指示符欄位502中之值「01b」指示邏輯組未經壓縮且位於DRAM 104中。2位元指示符欄位502中之值「10b」指示邏輯組經壓縮且位於DRAM 104中。30位元欄位504可指定反及閘或DRAM實體位址。 圖4說明由(例如)壓縮區塊124壓縮例示性邏輯組400 (LG 0)。邏輯組400中之所有1024頁之未經壓縮L2P位址402總共佔據4096位元組。頁0、頁1及頁1023之L2P位址分別以參考標號404、406及408展示。壓縮區塊124可將邏輯組400之L2P位址壓縮成包含(例如) 2048位元組或更少之壓縮版本410。在一些情況下,不可能將邏輯組L2P位址壓縮降至2048位元組,在該情況下其可保持未經壓縮。可對整個邏輯組400 (例如其內之所有1024頁L2P)進行壓縮及解壓縮以便達成適合的壓縮比,使得大部分邏輯組成功地處於2 KB內。無損壓縮演算法之選擇為靈活的。舉例而言,在一實施例中,壓縮演算法可包含Lempel-Ziv (LZ)變化中之任一者,或其可使用較簡單方案。解壓縮操作可比壓縮操作快得多,且藉由提供經改良之讀取延遲,此不對稱性可良好地適用於LG L2P快取操作之方式。 圖6為說明實施於圖1系統中之用於初始化受管理反及閘快閃儲存器件106之方法600的實施例之流程圖。在系統100之啟動期間,在CPU 110上運行之初始化軟體(例如經指派以執行系統管理及初始化之主機軟體或其他硬體)可查詢(區塊602)反及閘106以判定(例如)器件能力及是否支援FTL DRAM共用。若支援FTL DRAM共用,則主機可分拆系統DRAM 104之一部分以供受管理反及閘快閃儲存器件106使用。在區塊604處,主機可初始化受管理反及閘快閃儲存器件106。在啟動期間,系統100可與反及閘106中之FTL操作。在區塊606處,主機可查詢受管理反及閘快閃儲存器件106以判定其是否能夠快取DRAM 104中之FTL轉譯表。在區塊608處,主機可授予對受管理反及閘快閃儲存器件106之外部存取並允許其讀取及/或寫入在區塊602中分拆之系統DRAM 104之部分。主機可向受管理反及閘快閃儲存器件106提供一定量之DRAM,該DRAM經分配用於FTL轉譯表。在區塊610處,取決於可用的DRAM資源,受管理反及閘快閃儲存器件106可將FTL轉譯表之一部分或全部壓縮、複製及/或快取至DRAM 104中。應瞭解主機與受管理反及閘快閃儲存器件106之間的通知及其他控制功能可使用命令、回應等在習知儲存介面匯流排上完成。在區塊612處,完整或部分FTL轉譯表可存在於主機的DRAM 104中,且在區塊614中,受管理反及閘快閃儲存器件106具有存取該表之完全權限。在區塊616處,在正常操作期間,受管理反及閘快閃儲存器件106具有所分配DRAM資源上之完全所有權。若所分配DRAM空間不足以容納整個FTL轉譯表,則受管理反及閘快閃儲存器件106可頁入/頁出DRAM 104中之邏輯組之某些部分且維持反及閘中之其他邏輯組。 圖7及圖8說明用於經由LG查找表138來組態及管理DRAM L2P表142快取空間之方法之實施例。圖7說明對應於L2P表142之DRAM快取空間700。圖8說明使用對應於LG查找表區塊138之SRAM實施的用於將邏輯組L2P項定位於DRAM快取空間700中之(例如區塊704、706、708等)LG查找表800。應瞭解,LG查找表800中表示之每一列為包含指示符欄位802 (與502相同)及如圖5中所描述之30位元實體位址804 (與504相同)之標籤。DRAM快取空間可或可不經完全使用,此係因為一些LG L2P映射亦可駐存於受管理反及閘快閃儲存器件106中。DRAM快取空間700可用以保存經壓縮L2P LG (其佔據2 KB)或未經壓縮L2P LG (其佔據4 KB)。表之每一列之起始實體位址經標記為702。經壓縮或未經壓縮L2P LG項經儲存於DRAM快取空間700內之任何可用的空間內。LG查找表800包含每一個LG之標籤。標籤可自LG查找表800之第一列中之LG0開始,接著第二列中之LG1、第三列中之LG2等而經線性佈置。LG根據行806標記。在資料讀取存取期間,FTL 126判定含有資料之反及閘快閃內之實體位址。FTL 126經提供邏輯頁位址,但必須使用L2P表142找出實體頁位址。在操作中,判定含有邏輯頁位址之LG。LG0可對應於頁0至頁1023,LG1對應於頁1024至頁2047,等。為定位特定LG L2P,快取控制器130可讀取對應於LG查找表800中所要LG之列。 舉例而言,為讀取邏輯頁位址1025,快取控制器130將查看LG查找表800中之LG1。其將查看指示符欄位802以判定LG L2P在快取中經壓縮、在快取中未經壓縮抑或未經快取(位於反及閘中)。快取控制器130亦可查看實體位址欄位804。若指示符欄位802為「00」,則FTL 126將使用實體位址804自反及閘快閃讀取並獲得LG。若指示符欄位802為「01」或「10」,則快取控制器130將使用實體位址804自DRAM快取空間700讀取。同樣,使用邏輯頁位址1025作為實例,LG查找表800中之LG1之指示符欄位802 = 「10」(經壓縮)且實體位址804 = 2048。快取控制器130接著將讀取DRAM快取空間700中之LG1 706之經壓縮LG L2P。因為DRAM快取空間700之每一列由4 K位元組組成,所以對應於LG1 L2P 706之實體位址2048開始於第一列之第二(右手)半邊。可存在DRAM快取空間700之未使用的部分714及718。應瞭解,LG L2P之次序不必依序遞增。此外,在一實施例中,未經壓縮之L2P LG (其佔據4 K位元組)可經列對準(開始於4096個中之任何多個)。 圖9說明用於組態及管理儲存於SRAM 128中之快取自由清單136之方法的實施例之結構及操作。快取自由清單136針對每一2 KB之DRAM快取空間700保持1位元欄位930。快取自由清單136可經組態具有複數個32位元列(920、922、924、926、928)。在此實施例中,每一列包含32位元,其中每一位元表示2 KB之DRAM快取空間700。因此,每一列表示64 KB之快取空間700。第一列920對應於第一64 KB,第二列922對應於下一64 KB,等。若自由位元930為「1」,則對應的2 KB之DRAM快取空間在使用中。若自由位元930為「0」,則對應的2 KB之DRAM快取空間為自由的。當需要快取新的邏輯組時,快取控制器130可對快取自由清單138搜尋可用的快取位址。快取自由清單138中之位元之位置(例如列及行)可判定快取中之自由2 KB區塊之起始位址。快取控制器130可向該部分DRAM快取空間700指派新的邏輯組。DRAM快取空間內的每一4 KB列之位址在圖7中標記為702。 如圖9之實施例中所說明,對於經壓縮邏輯組,使用2 KB,因此任何自由位元將足夠。對於未經壓縮的邏輯組,需要4 KB,因此使用兩個鄰接自由位元。在此實例中,第一列920之最低有效位元經擴展並標記為930a且對應於DRAM快取空間700之位址0。標記為930b之下一最低有效位元對應於位址2 K,且其後標記為930c之下一位元對應於位址4 K,且下一930d對應於6 K,且下一930e對應於8 K,等。應瞭解,此實例中之位址0及2 K含有未經壓縮的L2P LG2。LG2不對應於最低邏輯位址(LG0對應),因此此實例展示呈經壓縮或未經壓縮形式之各種LG,無論其位址如何,可佔據DRAM快取空間700之任何部分。另一方面,自由清單136可由遞增位址嚴格地組織,其中第一列之最低有效位元參考DRAM快取空間700之開始,且最後列之最高有效位元參考DRAM快取空間700之最後2 KB。應瞭解,此可便於快速搜尋自由清單136以定位空間。只要DRAM快取空間700內之佔用率變化,自由清單136可更新。 圖10為說明實施於圖1之系統中之用於回應於反及閘讀取操作而管理邏輯組之方法的實施例之流程圖。在區塊1002處,受管理反及閘控制器108經由DMA匯流排控制器122接收傳入頁讀取請求。在區塊1004處,快閃轉譯層126調用快取查找。讀取請求中提供之邏輯頁位址將判定頁位址屬於哪個LG。在LG查找表800中查找對應於頁位址之LG編號。此揭示可用以擷取LG之指示符欄位802及實體位址804。在區塊1006處,獲得、判定及/或快取含有L2P轉譯之邏輯組。應注意,若LG經壓縮,則此區塊可包括在獲得該頁之L2P位址轉譯之前的解壓縮。此外,若自反及閘擷取LG L2P (因為指示符欄位802為「00」),則可藉由將其壓縮並接著將其儲存至DRAM快取空間700中,更新自由清單136,並更新LG查找表800來快取LG L2P (LG之指示符欄位802及實體位址804兩者將經修改)。藉此,對新快取之LG內的1024頁中之任一者之後續讀取將較快,此係因為其處於DRAM快取空間700中。在區塊1008處,使用來自L2P轉譯之實體位址擷取反及閘資料。在區塊1010處,反及閘資料可經返回至請求程式。 圖11為說明實施於圖1之系統中之用於回應於反及閘寫入操作而管理邏輯組之方法的另一實施例之流程圖。在區塊1102處,受管理反及閘控制器108經由DMA匯流排控制器122接收傳入頁寫入請求。在區塊1104處,快閃轉譯層126指派自由反及閘實體頁並使用該實體位址寫入反及閘資料(區塊1106)。在區塊1108處,快取控制器130更新及/或快取邏輯組L2P轉譯。新寫入頁之新指派的實體位址將被插入至屬於邏輯頁寫入位址之LG中。若屬於此LG之其他1024頁中之任一者已經在使用,則首先將新寫入頁L2P插入至如圖4中所描述之LG格式400中之其他頁的L2P中之正確位置中。若此LG完全未使用,則可將新寫入頁L2P插入至正確位置中且圖4中之LG格式400中之所有其他頁L2P可保持為零。可嘗試壓縮LG,且若可壓縮,則將其儲存至佔據2 KB之DRAM快取700中。若不可壓縮,則將其儲存至佔據4 KB之DRAM快取700中。DRAM快取700內用以儲存LG之自由空間可藉由查閱自由清單136發現。對自由空間之管理可由FTL 126在後台執行,FTL 126追蹤(例如)頁之利用率統計並請求快取控制器130執行可釋放DRAM快取700中之空間之操作。舉例而言,快取控制器130可經請求壓縮未經壓縮的LG (從而將LG指示符欄位自「01」改變為「10」)或藉由將LG沖入反及閘中而將LG自快取移除(從而將LG指示符欄位改變為「00」)。此等操作可在DRAM快取700內的可用自由空間降至低於臨限值時進行。只要任何操作產生對DRAM快取空間700之改變,LG查找表800及自由清單136可更新。 DRAM快取空間管理之各種操作態樣將結合圖12至圖18中之實例進一步描述。圖12a說明DRAM快取空間700之初始狀態,其中整個空間未使用(僅展示第一32 KB)。圖12b描繪對應於此初始狀態700之匹配LG查找表800,其中指示符欄位802項中無一者指示DRAM。如圖12b中所說明,所有指示符欄位802項為「00」,此意謂所有邏輯組處於反及閘中且未處於DRAM中(僅展示完全表中之列LG0至列LG8)。在圖13a中,第一4 KB之DRAM快取空間700已填充有LG2 902之未經壓縮的L2P,且在圖13b中,LG查找表800中對應於LG2之列已藉由將指示符欄位802更新為「01」(之前在圖12b中為「00」)並將實體位址804更新為至「0 K」(之前在圖12b中為「8 K」)而修改。應瞭解,可由於讀取或寫入異動而出現上述內容。對於讀取異動,如結合圖10所描述,LG L2P可自較慢反及閘經快取至較快DRAM快取空間700中。對於寫入異動,如結合圖11所描述,LG L2P可經儲存至DRAM快取空間700中。 如圖14a中所說明,LG5 904之L2P可添加至DRAM快取空間700。在圖14b中,LG查找表800中對應於LG5之列已藉由將指示符欄位802更新為「01」(之前在圖13b中為「00」)並將實體位址804更新為「4 K」(之前在圖13b中為「20 K」)而修改。圖15a展示LG10 906、LG500 908、LG137 910、LG29 912、LG0 914、及LG11 916之添加。因為在圖15b中之LG查找表800中僅展示前9個邏輯組(LG0至LG8),所以僅展示第一列中之LG0經修改。其他邏輯組(LG10、LG500、LG137、LG29及LG11)亦可更新,但只是在圖15b中未說明。參看圖15b,LG查找表800中對應於邏輯組(LG0)之列已藉由將指示符欄位802更新為「01」(之前在圖14b中為「00」)並將實體位址804更新為「24 K」(之前在圖14b中為「0 K」)而修改。參看圖16a,可出現兩個事件。第一,LG2之L2P可經壓縮大小變為2 KB(之前為4 KB)並再寫入至位址0 902a。第二,LG15之L2P可經壓縮並儲存於位址2 K 902b處。在圖16b中,LG查找表800中對應於LG2之列已藉由將指示符欄位802更新為「10」(之前在圖15b中為「01」)但將實體位址804保持為「0 K」(因為其仍開始於位址0處)而修改。LG15在圖16b中不可見,但LG15之指示符欄位802及實體位址804兩者皆可經修改。 如圖17a中所說明,所有此前未經壓縮且各自佔據4 KB之L2P可經壓縮至2 KB並再寫入。以此方式,DRAM快取空間700內之空間可增加,允許LG66 904、LG654 906、LG17 908、LG59 910、LG23 912、LG120 914及LG18 916之新的L2P寫入。此說明壓縮並減少DRAM快取空間700所需的最大大小之益處。在圖17b中,LG查找表800中對應於LG5之列已藉由將指示符欄位802更新為「10」(之前在圖16b中為「01」)但將實體位址804保持為「4 K」(因為其仍開始於位址4 K處)而修改。LG66、LG654、LG17、LG59、LG23、LG120及LG18在圖17b中不可見,儘管實際上指示符欄位802及實體位址804經修改以匹配其DRAM快取空間700內之類型(經壓縮「10」)及實體位址。 參看圖18a,LG2之L2P已自位址0移除,且LG4之L2P經寫入至藉由將其移除所產生的自由空間中。在圖18b中,LG查找表800中對應於LG2之列已藉由將指示符欄位802更新為「00」(之前在圖17b中為「10」)並將實體位址804更新為「8 K」(之前在圖17b中為「0 K」)而修改。另外,LG查找表800中對應於LG4之列已藉由將指示符欄位802更新為「10」(之前在圖17b中為「00」)並將實體位址804更新為「0 K」(之前在圖17b中為「16 K」)而修改。應瞭解,此等事件亦可影響且取決於自由清單136。舉例而言,在圖18a中,在自位址0移除LG2之L2P之後,自由清單136之第一列之最低有效位元(例如開始於位址0處第一2 KB之DRAM快取空間700)經置零以指示始於位址0處之2 KB在DRAM快取空間700中為自由的。接著,當搜尋用以儲存LG4之2 KB L2P之自由空間時,快取控制器130可查閱自由清單136,判定在位址0處存在2 KB之自由空間,並接著將DRAM快取空間700之位址0指派至LG4之L2P。在將LG4之2 KB L2P寫入之後,自由清單136可經更新以指示在DRAM快取空間700內之該位置處不再存在任何自由空間。應瞭解,儘管以上圖式中可描繪多個事件,但每一事件可分開出現並處理。舉例而言,在圖18a中,LG2之L2P可由快取控制器130在FTL 126之請求下出於在DRAM快取空間700內維持足夠的自由空間餘量之目的而移除。換言之,LG2可在需要快取LG4產生之前經移除。 圖19中之流程圖1900說明由快取控制器130在壓縮及快取新L2P時執行之功能。在區塊1902中,可需要將邏輯頁位址快取。在區塊1904中,頁L2P與LG中之另一頁L2P合併,且執行壓縮。如上文所述,在一實施例中,邏輯組(LG) L2P可包含1024頁之L2P。在區塊1906中,快取控制器130判定是需要2 KB來儲存經壓縮的LG L2P抑或需要4 KB來儲存未經壓縮的LG L2P。在區塊1908及區塊1910中,快取控制器130對自由清單136分別搜尋自由的2 KB或4 KB。在區塊1912中,若定位到自由空間,則接著在區塊1916中,快取控制器130將LG L2P儲存於彼自由空間中。在區塊1918中,可用新的指示符欄位802及實體位址804更新LG查找表800。在區塊1920中,自由清單136可經更新以展示DRAM快取空間之彼部分不再自由。然而,若在區塊1912中不存在任何自由空間,則在區塊1914中,可移除失效LG以產生自由空間。舊的LG可經複製至反及閘,且舊的LG之LG查找表可經更新。自由清單136亦可經更新以展示新的空間現在為可用的。應瞭解,可藉由主動精簡DRAM快取空間700,其中FTL 126追蹤最近未使用之轉譯,並接著請求快取控制器130將此等舊的LG L2P自DRAM快取空間700移除(亦即,自DRAM複製回反及閘中)來避開區塊1914。 如上文所提及,系統100可併入至任何所要計算系統中。圖20說明併入於例示性攜帶型計算器件(PCD) 2000中之系統100。系統100可包括於SoC 2001上,該SoC 2001可包括多核心CPU 2002。多核心CPU 2002可包括第零核心2010、第一核心2012及第N核心2014。該等核心中之一者可包含(例如)圖形處理單元(GPU),其中該等核心之其他者中之一或多者包含CPU 104 (圖1)。根據替代例示性實施例,CPU 2002亦可包含單核心類型之彼等CPU且不止具有多個核心一個CPU,在此情況下,CPU 104及GPU可為如系統100中所說明之專用處理器。 顯示控制器2016及觸控螢幕控制器2018可耦接至CPU 2002。反過來,在系統單晶片2001外部之觸控螢幕顯示器2025可耦接至顯示控制器2016及觸控螢幕控制器2018。 圖20進一步展示視訊編碼器2020 (例如,逐行倒相(PAL)編碼器、順序傳送色彩與儲存(SECAM)編碼器或全國電視系統委員會(NTSC)編碼器)耦接至多核心CPU 2002。此外,視訊放大器2022耦接至視訊編碼器2020及觸控螢幕顯示器2025。此外,視訊埠2024耦接至視訊放大器2022。如圖20中所展示,通用串列匯流排(USB)控制器2026耦接至多核心CPU 2002。此外,USB埠2028耦接至USB控制器2026。記憶體110及118及用戶識別模組(SIM)卡2046亦可耦接至多核心CPU 2002。記憶體110可包含記憶體器件110及118 (圖1),如上文所描述。 此外,如圖20中所展示,數位攝影機2030可耦接至多核心CPU 2002。在例示性態樣中,數位攝影機2030為電荷耦合器件(CCD)攝影機或互補金屬氧化物半導體(CMOS)攝影機。 如圖20中進一步說明,立體聲音訊寫碼器解碼器(編解碼器) 2032可耦接至多核心CPU 2002。另外,音訊放大器2034可耦接至立體聲音訊編解碼器2032。在例示性態樣中,第一立體聲揚聲器2036及第二立體聲揚聲器2038耦接至音訊放大器2034。圖20展示麥克風放大器1740亦可耦接至立體聲音訊編解碼器2032。另外,麥克風2042可耦接至麥克風放大器1740。在特定態樣中,調頻(FM)無線電調諧器2044可耦接至立體聲音訊編解碼器2032。此外,FM天線2046耦接至FM無線電調諧器2044。此外,立體聲頭戴式耳機2048可耦接至立體聲音訊編解碼器2032。 圖20進一步說明射頻(RF)收發器2050可耦接至多核心CPU 2002。RF切換器2052可耦接至RF收發器2050及RF天線2054。如圖20中所展示,小鍵盤2056可耦接至多核心CPU 2002。此外,具有麥克風2058之單聲道耳機可耦接至多核心CPU 2002。此外,振動器器件2060可耦接至多核心CPU 2002。 圖20亦展示電源供應器2062可耦接至系統單晶片2001。在特定態樣中,電源供應器2062為直流電(DC)電源供應器,其向需要電源之PCD 2000之各種組件提供電源。此外,在特定態樣中,電源供應器為可充電DC電池或DC電源供應器,DC電池或DC電源供應器來源於連接至AC電源之交流電(AC)至DC變壓器。 圖20進一步指示PCD 2000亦可包括可用於存取資料網路(例如,區域網路、個人區域網路或任何其他網路)之網路卡2064。網路卡2064可為藍芽網路卡、WiFi網路卡、個人區域網路(PAN)卡、個人區域網路超低功率技術(PeANUT)網路卡、電視/電纜/衛星調諧器或此項技術中熟知之任何其他網路卡。此外,網路卡2064可併入至晶片中,亦即,網路卡388可為晶片中之完全解決方案,且可不為單獨的網路卡。 應瞭解,本文中所描述之方法步驟中之一或多者可作為電腦程式指令(諸如,上文所描述之模組)儲存於記憶體中。此等指令可結合相應的模組或與相應的模組合作而由任何適合的處理器執行,從而執行本文中所描述之方法。 為了讓本發明起所描述之作用,本說明書中描述之程序或處理流程中的某些步驟自然地先於其他步驟。然而,若此次序或序列不會更改本發明之功能性,則本發明不限於所描述步驟之次序。亦即,應認識到,在不背離本發明之範疇及精神的情況下,一些步驟可在其他步驟之前、之後或與其同時(大體上與其同步)執行。在一些情況下,可在不背離本發明之情況下省略或不執行某些步驟。此外,諸如「此後」、「接著」、「接下來」等詞語並不意欲限制該等步驟之次序。此等詞語僅用以引導讀者貫穿對例示性方法之描述。 另外,舉例而言,程式化技術中之一般技術者能夠基於本說明書中之流程圖及相關聯描述輕鬆地寫入電腦程式碼或識別適當之硬體及/或電路以實施所揭示發明。 因此,特定程式碼指令集合或詳細硬體器件之揭示不被視為對於充分理解如何製作及使用本發明而言為必要的。在上文之描述中且結合可說明各種處理流程之圖式更詳細地解釋所主張之電腦實施之程序的創造性功能性。 在一或多個例示性態樣中,所描述之功能可實施於硬體、軟體、韌體或其任何組合中。若實施於軟體中,則可將功能作為一或多個指令或程式碼而儲存於電腦可讀媒體上或經由電腦可讀媒體來傳輸。電腦可讀媒體包括電腦儲存媒體及通信媒體兩者,通信媒體包括有助於電腦程式自一處轉移至另一處之任何媒體。儲存媒體可為可由電腦存取之任何可用媒體。藉助於實例且非限制,此類電腦可讀媒體可包含RAM、ROM、EEPROM、反及閘快閃、反或閘快閃、M-RAM、P-RAM、R-RAM、CD-ROM或其他光碟儲存器、磁碟儲存器或其他磁性儲存器件、或可用於運載或儲存呈指令或資料結構形式之所要程式碼且可由電腦存取之任何其他媒體。 此外,任何連接適當地稱為電腦可讀媒體。舉例而言,若使用同軸電纜、光纖纜線、雙絞線、數位用戶線(「DSL」)或諸如紅外線、無線電及微波之無線技術自網站、伺服器或其他遠端源傳輸軟體,則同軸電纜、光纖纜線、雙絞線、DSL或諸如紅外線、無線電及微波之無線技術包括於媒體之定義中。 如本文所使用,磁碟及光碟包括緊密光碟(「CD」)、雷射光碟、光學光碟、數位多功能光碟(「DVD」)、軟碟及藍光光碟,其中磁碟通常以磁性方式再現資料,而光碟用雷射以光學方式再現資料。以上之組合亦應包括於電腦可讀媒體之範疇內。 替代實施例將對於一般熟習此項技術者變得顯而易見,本發明在不背離其精神和範疇的情況下涉及該等替代實施例。因此,儘管已經詳細說明及描述了所選擇態樣,但應理解,在不背離如以下申請專利範圍所界定的本發明之精神及範疇的情況下,可在其中進行各種取代及更改。
100‧‧‧系統
102‧‧‧系統單晶片
104‧‧‧動態隨機存取記憶體
106‧‧‧反及閘
108‧‧‧受管理反及閘控制器
110‧‧‧中央處理單元
112‧‧‧靜態隨機存取記憶體
114‧‧‧唯讀記憶體
116‧‧‧DRAM控制器
118‧‧‧直接記憶體存取匯流排控制器
120‧‧‧SoC匯流排
122‧‧‧DMA匯流排控制器
124‧‧‧壓縮區塊
126‧‧‧快閃轉譯層
128‧‧‧靜態隨機存取記憶體
130‧‧‧快取控制器
132‧‧‧反及閘介面
134‧‧‧介面
136‧‧‧快取自由清單
138‧‧‧邏輯組查找表
140‧‧‧檔案緩衝器
142‧‧‧邏輯至實體位址表
200‧‧‧方法
202‧‧‧區塊
204‧‧‧區塊
302‧‧‧記憶體映像/頁
304‧‧‧邏輯組
306‧‧‧邏輯組
308‧‧‧邏輯組
400‧‧‧邏輯組
402‧‧‧未經壓縮邏輯至實體位址
404‧‧‧邏輯至實體位址
406‧‧‧邏輯至實體位址
408‧‧‧邏輯至實體位址
410‧‧‧壓縮版本之邏輯至實體位址
500‧‧‧邏輯組標籤格式
502‧‧‧2位元指示符欄位
504‧‧‧30位元欄位
600‧‧‧方法
602‧‧‧區塊
604‧‧‧區塊
606‧‧‧區塊
608‧‧‧區塊
610‧‧‧區塊
612‧‧‧區塊
614‧‧‧區塊
616‧‧‧區塊
700‧‧‧快取空間
702‧‧‧實體位址
704‧‧‧區塊
706‧‧‧區塊
708‧‧‧區塊
714‧‧‧部分
718‧‧‧部分
800‧‧‧LG查找表
802‧‧‧指示符欄位
804‧‧‧實體位址
806‧‧‧行
902‧‧‧LG2
902a‧‧‧位址0
902b‧‧‧位址2K
904‧‧‧LG5
906‧‧‧LG10
908‧‧‧LG500
910‧‧‧LG137
912‧‧‧LG29
914‧‧‧LG0
916‧‧‧LG11
920‧‧‧列
922‧‧‧列
924‧‧‧列
926‧‧‧列
928‧‧‧列
930‧‧‧自由位元
930a‧‧‧最低有效位元
930b‧‧‧最低有效位元
930c‧‧‧位元
930d‧‧‧位元
930e‧‧‧位元
1002‧‧‧區塊
1004‧‧‧區塊
1006‧‧‧區塊
1008‧‧‧區塊
1010‧‧‧區塊
1102‧‧‧區塊
1104‧‧‧區塊
1106‧‧‧區塊
1108‧‧‧區塊
1740‧‧‧麥克風放大器
1900‧‧‧流程圖
1902‧‧‧區塊
1904‧‧‧區塊
1906‧‧‧區塊
1908‧‧‧區塊
1910‧‧‧區塊
1912‧‧‧區塊
1914‧‧‧區塊
1916‧‧‧區塊
1918‧‧‧區塊
1920‧‧‧區塊
2000‧‧‧攜帶型計算器件
2001‧‧‧系統單晶片
2002‧‧‧多核心CPU
2010‧‧‧第零核心
2012‧‧‧第一核心
2014‧‧‧第N核心
2016‧‧‧顯示控制器
2018‧‧‧觸控螢幕控制器
2020‧‧‧視訊編碼器
2022‧‧‧視訊放大器
2024‧‧‧視訊埠
2025‧‧‧觸控螢幕顯示器
2026‧‧‧通用串列匯流排控制器
2028‧‧‧USB埠
2030‧‧‧數位攝影機
2032‧‧‧立體聲音訊編解碼器
2034‧‧‧音訊放大器
2036‧‧‧第一立體聲揚聲器
2038‧‧‧第二立體聲揚聲器
2042‧‧‧麥克風
2044‧‧‧調頻無線電調諧器
2046‧‧‧用戶識別模組卡
2048‧‧‧立體聲頭戴式耳機
2050‧‧‧射頻收發器
2052‧‧‧RF切換器
2054‧‧‧RF天線
2056‧‧‧小鍵盤
2058‧‧‧麥克風
2060‧‧‧振動器器件
2062‧‧‧電源供應器
2064‧‧‧網路卡
在圖式中,除非另有指示,否則相同參考標號指貫穿各種視圖之相同部分。對於諸如「102A」或「102B」之具有字母字元名稱的參考標號而言,字母字元名稱可區分相同圖中存在之兩個相同部件或元件。當意欲參考標號涵蓋所有圖式中具有相同參考標號之所有部分時,可省略參考標號之字母字元名稱。 圖1為用於提供用於反及閘型快閃記憶體之邏輯至實體(L2P)位址表之經壓縮快取之系統之實施例之方塊圖。 圖2為說明實施於圖1系統中之用於提供L2P位址表之壓縮快取之方法的實施例之流程圖。 圖3為說明用於經組織成邏輯組之例示性受管理反及閘快閃儲存器件的反及閘頁之資料圖。 圖4為說明用於例示性邏輯組之L2P位址的壓縮之資料圖。 圖5為說明邏輯組標籤格式之實施例之資料圖。 圖6為說明實施於圖1系統中之用於初始化受管理反及閘快閃儲存器件之方法的實施例之流程圖。 圖7為說明圖1之DRAM中之例示性快取空間之資料圖。 圖8為說明對應於圖7之快取空間之例示性邏輯組查找表之資料圖。 圖9為說明圖1中之快取自由清單之實施例的結構及操作之資料圖。 圖10為說明實施於圖1之系統中之用於回應於反及閘讀取操作而管理邏輯組之方法的實施例之流程圖。 圖11為說明實施於圖1之系統中之用於回應於反及閘寫入操作而管理邏輯組之方法的另一實施例之流程圖。 圖12a說明處於第一操作態中之例示性DRAM快取空間。 圖12b說明對應於圖12a之DRAM快取空間之例示性邏輯組查找表。 圖13a說明處於第二操作態中之圖12a之DRAM快取空間。 圖13b說明處於第二操作態中之邏輯組查找表。 圖14a說明處於第三操作態中之DRAM快取空間。 圖14b說明處於第三操作態中之邏輯組查找表。 圖15a說明處於第四操作態中之DRAM快取空間。 圖15b說明處於第四操作態中之邏輯組查找表。 圖16a說明處於第五操作態中之DRAM快取空間。 圖16b說明處於第五操作態中之邏輯組查找表。 圖17a說明處於第六操作態中之DRAM快取空間。 圖17b說明處於第六操作態中之邏輯組查找表。 圖18a說明處於第七操作態中之DRAM快取空間。 圖18b說明處於第七操作態中之邏輯組查找表。 圖19為說明由圖1之快取控制器實施之方法之實施例之流程圖。 圖20為用於合併圖1至圖19之系統及方法的攜帶型電腦器件之實施例的方塊圖。
100‧‧‧系統
102‧‧‧系統單晶片
104‧‧‧動態隨機存取記憶體
106‧‧‧反及閘
108‧‧‧受管理反及閘控制器
110‧‧‧中央處理單元
112‧‧‧靜態隨機存取記憶體
114‧‧‧唯讀記憶體
116‧‧‧DRAM控制器
118‧‧‧直接記憶體存取匯流排控制器
120‧‧‧SoC匯流排
122‧‧‧DMA匯流排控制器
124‧‧‧壓縮區塊
126‧‧‧快閃轉譯層
128‧‧‧靜態隨機存取記憶體
130‧‧‧快取控制器
132‧‧‧反及閘介面
134‧‧‧介面
136‧‧‧快取自由清單
138‧‧‧邏輯組查找表
140‧‧‧檔案緩衝器
142‧‧‧邏輯至實體位址表

Claims (30)

  1. 一種用於提供用於一受管理反及閘快閃儲存器件之邏輯至實體位址轉譯之方法,該方法包含: 自於一系統單晶片(SoC)上執行之一程式接收待轉譯至與電耦接至該SoC之一受管理反及閘快閃儲存器件相關聯之一實體位址之一邏輯位址; 自電耦接至該SoC之一揮發性記憶體器件提取一邏輯至實體(L2P)位址表之一部分,該邏輯至實體位址表包含用於該邏輯位址之一壓縮版本之一L2P映射;及 解壓縮該壓縮版本之該L2P映射以判定對應於該邏輯位址之該實體位址。
  2. 如請求項1之方法,其中該揮發性記憶體器件包含一動態隨機存取記憶體(DRAM)。
  3. 如請求項1之方法,其中該L2P位址表之該部分包含對應於複數個頁之一邏輯組。
  4. 如請求項3之方法,其中自該揮發性記憶體器件對該L2P位址表之該部分之該提取包含經由一查找表判定該邏輯組。
  5. 如請求項1之方法,其中對待轉譯至該實體位址之該邏輯位址之該接收對應於一寫入操作及一讀取操作中之一者。
  6. 如請求項1之方法,其進一步包含: 存取與該受管理反及閘快閃儲存器件相關聯之該實體位址。
  7. 如請求項1之方法,其中用於該邏輯位址之該壓縮版本之該L2P映射包含用於包含一邏輯組之複數個頁之該L2P映射。
  8. 一種電腦程式,其實施於一非暫時性電腦可讀媒體中且經組態以經執行以實施一種用於提供用於一受管理反及閘快閃儲存器件之邏輯至實體位址轉譯之方法,該方法包含: 自於一系統單晶片(SoC)上執行之一程式接收待轉譯至與電耦接至該SoC之一受管理反及閘快閃儲存器件相關聯之一實體位址之一邏輯位址; 自電耦接至該SoC之一揮發性記憶體器件提取一邏輯至實體(L2P)位址表之一部分,該邏輯至實體位址表包含用於該邏輯位址之一壓縮版本之一L2P映射;及 解壓縮該壓縮版本之該L2P映射以判定對應於該邏輯位址之該實體位址。
  9. 如請求項8之電腦程式,其中該揮發性記憶體器件包含一動態隨機存取記憶體(DRAM)。
  10. 如請求項8之電腦程式,其中該L2P位址表之該部分包含對應於複數個頁之一邏輯組。
  11. 如請求項10之電腦程式,其中自該揮發性記憶體器件對該L2P位址表之該部分之該提取包含經由一查找表判定該邏輯組。
  12. 如請求項8之電腦程式,其中對待轉譯至該實體位址之該邏輯位址之該接收對應於一寫入操作及一讀取操作中之一者。
  13. 如請求項8之電腦程式,其中該方法進一步包含: 存取與該受管理反及閘快閃儲存器件相關聯之該實體位址。
  14. 如請求項8之電腦程式,其中用於該邏輯位址之該壓縮版本之該L2P映射包含用於包含一邏輯組之複數個頁之該L2P映射。
  15. 一種用於提供用於一受管理反及閘快閃儲存器件之邏輯至實體位址轉譯之系統,該系統包含: 用於自於一系統單晶片(SoC)上執行之一程式接收待轉譯至與電耦接至該SoC之一受管理反及閘快閃儲存器件相關聯之一實體位址之一邏輯位址之構件; 用於自電耦接至該SoC之一揮發性記憶體器件提取一邏輯至實體(L2P)位址表之一部分之構件,該邏輯至實體位址表包含用於一邏輯位址之一壓縮版本之一L2P映射;及 用於解壓縮該壓縮版本之該L2P映射以判定對應於該邏輯位址之該實體位址之構件。
  16. 如請求項15之系統,其中該揮發性記憶體器件包含一動態隨機存取記憶體(DRAM)。
  17. 如請求項15之系統,其中該L2P位址表之該部分包含對應於複數個頁之一邏輯組。
  18. 如請求項17之系統,其中用於自該揮發性記憶體器件提取該L2P位址表之該部分之該構件包含經組態以經由一查找表判定該邏輯組之一快取控制器。
  19. 如請求項15之系統,其中用於接收待轉譯至該實體位址之該邏輯位址之該構件包含電耦接至該SoC之一直接記憶體存取(DMA)匯流排控制器。
  20. 如請求項15之系統,其中該所接收之邏輯位址對應於一寫入操作及一讀取操作中之一者。
  21. 如請求項15之系統,其進一步包含: 用於存取與該受管理反及閘快閃儲存器件相關聯之該實體位址之構件。
  22. 一種用於提供用於一受管理反及閘快閃儲存器件之邏輯至實體位址轉譯之系統,該系統包含: 一系統單晶片(SoC),其經電耦接至一揮發性記憶體器件; 一直接記憶體存取(DMA)控制器,其經電耦接至該SoC,該直接記憶體存取(DMA)控制器用於接收待轉譯至與一受管理反及閘快閃儲存器件相關聯之一實體位址之一邏輯位址; 一快取控制器,其經組態以自該揮發性記憶體器件提取一邏輯至實體(L2P)位址表之一部分,該邏輯至實體位址表包含用於該邏輯位址之一經壓縮版本之一L2P映射;及 一壓縮區塊,其經組態以解壓縮該經壓縮版本之該L2P映射以判定對應於該邏輯位址之該實體位址。
  23. 如請求項22之系統,其中該揮發性記憶體器件包含一動態隨機存取記憶體(DRAM)。
  24. 如請求項22之系統,其中該L2P位址表之該部分包含對應於複數個頁之一邏輯組。
  25. 如請求項24之系統,其中該快取控制器經組態以經由一查找表判定該邏輯組。
  26. 如請求項22之系統,其中待轉譯至該實體位址之該邏輯位址對應於一寫入操作及一讀取操作中之一者。
  27. 如請求項22之系統,其進一步包含: 一介面,其用於存取與該受管理反及閘快閃儲存器件相關聯之該實體位址。
  28. 如請求項22之系統,其中用於該邏輯位址之該壓縮版本之該L2P映射包含用於包含一邏輯組之複數個頁之該L2P映射。
  29. 如請求項22之系統,其併入於一攜帶型計算器件中。
  30. 如請求項29之系統,其中該攜帶型計算器件包含一智慧型電話或一平板電腦中之一者。
TW105142143A 2015-12-21 2016-12-20 用於反及閘型快閃記憶體之邏輯至實體位址表之壓縮快取 TW201729107A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/976,537 US20170177497A1 (en) 2015-12-21 2015-12-21 Compressed caching of a logical-to-physical address table for nand-type flash memory

Publications (1)

Publication Number Publication Date
TW201729107A true TW201729107A (zh) 2017-08-16

Family

ID=57543231

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105142143A TW201729107A (zh) 2015-12-21 2016-12-20 用於反及閘型快閃記憶體之邏輯至實體位址表之壓縮快取

Country Status (3)

Country Link
US (1) US20170177497A1 (zh)
TW (1) TW201729107A (zh)
WO (1) WO2017112357A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI650644B (zh) * 2018-01-05 2019-02-11 慧榮科技股份有限公司 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置
TWI741425B (zh) * 2018-12-31 2021-10-01 美商美光科技公司 儲存裝置中順序資料優化之子區域

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160124651A1 (en) * 2014-11-03 2016-05-05 Texas Instruments Incorporated Method for performing random read access to a block of data using parallel lut read instruction in vector processors
CN106293493A (zh) * 2015-05-18 2017-01-04 广明光电股份有限公司 固态硬盘模块动态储存转换层的方法
KR20180041037A (ko) * 2016-10-13 2018-04-23 삼성전자주식회사 멀티 코어 솔리드 스테이트 드라이브의 공유 분산 메모리 관리 방법
US10459644B2 (en) 2016-10-28 2019-10-29 Western Digital Techologies, Inc. Non-volatile storage system with integrated compute engine and optimized use of local fast memory
US10365844B2 (en) * 2016-12-29 2019-07-30 Intel Corporation Logical block address to physical block address (L2P) table compression
US10565123B2 (en) 2017-04-10 2020-02-18 Western Digital Technologies, Inc. Hybrid logical to physical address translation for non-volatile storage devices with integrated compute module
US10289557B2 (en) * 2017-08-28 2019-05-14 Western Digital Technologies, Inc. Storage system and method for fast lookup in a table-caching database
KR20190059053A (ko) * 2017-11-22 2019-05-30 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20190074886A (ko) 2017-12-20 2019-06-28 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
TWI787438B (zh) 2018-01-24 2022-12-21 韓商愛思開海力士有限公司 系統資料壓縮和重建方法及系統
JP7010740B2 (ja) 2018-03-16 2022-01-26 キオクシア株式会社 メモリシステムおよび制御方法
KR102526526B1 (ko) * 2018-06-14 2023-04-28 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
US10698816B2 (en) 2018-06-29 2020-06-30 Micron Technology, Inc. Secure logical-to-physical caching
US10923202B2 (en) 2018-08-03 2021-02-16 Micron Technology, Inc. Host-resident translation layer triggered host refresh
US11263124B2 (en) * 2018-08-03 2022-03-01 Micron Technology, Inc. Host-resident translation layer validity check
US10970228B2 (en) * 2018-12-14 2021-04-06 Micron Technology, Inc. Mapping table compression using a run length encoding algorithm
US11226907B2 (en) 2018-12-19 2022-01-18 Micron Technology, Inc. Host-resident translation layer validity check techniques
US11226894B2 (en) 2018-12-21 2022-01-18 Micron Technology, Inc. Host-based flash memory maintenance techniques
US10983918B2 (en) 2018-12-31 2021-04-20 Micron Technology, Inc. Hybrid logical to physical caching scheme
JP2020144534A (ja) 2019-03-05 2020-09-10 キオクシア株式会社 メモリ装置およびキャッシュ制御方法
JP2020154603A (ja) 2019-03-19 2020-09-24 キオクシア株式会社 メモリシステム
US11061598B2 (en) * 2019-03-25 2021-07-13 Western Digital Technologies, Inc. Optimized handling of multiple copies in storage management
US11474865B2 (en) 2019-08-23 2022-10-18 Micron Technology, Inc. Allocation schema for a scalable memory area
JP2021043837A (ja) 2019-09-13 2021-03-18 キオクシア株式会社 メモリシステム
US10990537B1 (en) 2020-01-07 2021-04-27 International Business Machines Corporation Logical to virtual and virtual to physical translation in storage class memory
US11262938B2 (en) 2020-05-05 2022-03-01 Silicon Motion, Inc. Method and apparatus for performing access management of a memory device with aid of dedicated bit information
CN113127378B (zh) * 2020-07-16 2024-04-26 长江存储科技有限责任公司 数据读取方法、装置及数据存储设备

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8112574B2 (en) * 2004-02-26 2012-02-07 Super Talent Electronics, Inc. Swappable sets of partial-mapping tables in a flash-memory system with a command queue for combining flash writes
US8516219B2 (en) * 2009-07-24 2013-08-20 Apple Inc. Index cache tree
US8924636B2 (en) * 2012-02-23 2014-12-30 Kabushiki Kaisha Toshiba Management information generating method, logical block constructing method, and semiconductor memory device
JP2013196115A (ja) * 2012-03-16 2013-09-30 Toshiba Corp メモリシステム
US9703697B2 (en) * 2012-12-27 2017-07-11 Intel Corporation Sharing serial peripheral interface flash memory in a multi-node server system on chip platform environment
US9575884B2 (en) * 2013-05-13 2017-02-21 Qualcomm Incorporated System and method for high performance and low cost flash translation layer
JP6021759B2 (ja) * 2013-08-07 2016-11-09 株式会社東芝 メモリシステムおよび情報処理装置
US9223724B2 (en) * 2013-09-09 2015-12-29 Kabushiki Kaisha Toshiba Information processing device
US9229876B2 (en) * 2013-12-17 2016-01-05 Sandisk Technologies Inc. Method and system for dynamic compression of address tables in a memory

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI650644B (zh) * 2018-01-05 2019-02-11 慧榮科技股份有限公司 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置
CN110008136A (zh) * 2018-01-05 2019-07-12 慧荣科技股份有限公司 管理闪存模块的方法及相关的闪存控制器及电子装置
TWI741425B (zh) * 2018-12-31 2021-10-01 美商美光科技公司 儲存裝置中順序資料優化之子區域
US11294585B2 (en) 2018-12-31 2022-04-05 Micron Technology, Inc. Sequential data optimized sub-regions in storage devices
US11755214B2 (en) 2018-12-31 2023-09-12 Micron Technology, Inc. Sequential data optimized sub-regions in storage devices

Also Published As

Publication number Publication date
US20170177497A1 (en) 2017-06-22
WO2017112357A1 (en) 2017-06-29

Similar Documents

Publication Publication Date Title
TW201729107A (zh) 用於反及閘型快閃記憶體之邏輯至實體位址表之壓縮快取
TWI596603B (zh) 用於快取壓縮資料之設備、系統及方法
US10296250B2 (en) Method and apparatus for improving performance of sequential logging in a storage device
US20130145076A1 (en) System and method for memory storage
US10754785B2 (en) Checkpointing for DRAM-less SSD
US11397669B2 (en) Data storage device and non-volatile memory control method
JP6276470B2 (ja) ポータブルコンピューティングデバイスの揮発性メモリのスタンバイ電力を低減するためのシステムおよび方法
US11200159B2 (en) System and method for facilitating efficient utilization of NAND flash memory
US9892046B2 (en) Cache allocation based on quality-of-service information
CN108139972B (zh) 用于管理硬件辅助数据压缩中的存储器碎片的方法和设备
US20190243903A1 (en) Memory controller and a method of operating the same
JP2009003934A (ja) データ管理システム及びデータ管理方法、並びにデータ管理方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
US10048868B2 (en) Replacement of a block with a compressed block to increase capacity of a memory-side cache
US11307979B2 (en) Data storage device and non-volatile memory control method
JP6674460B2 (ja) 不均一メモリアーキテクチャにおける改善されたレイテンシのためのシステムおよび方法
CN113590501A (zh) 一种数据存储方法及相关设备
WO2014100954A1 (zh) 数据控制方法及系统
US11327929B2 (en) Method and system for reduced data movement compression using in-storage computing and a customized file system
US11763899B2 (en) Balanced three-level read disturb management in a memory device
JP6676052B2 (ja) 不均一メモリアーキテクチャにおける改善されたレイテンシを可能にするためのシステムおよび方法
US11886739B2 (en) Read operation using compressed memory
KR101270777B1 (ko) 블록 단위 입출력 디바이스에서 피램을 이용한 데이터 기록시스템 및 방법
US20220206711A1 (en) Devices and methods for optimized fetching of multilingual content in media streaming
US20230093218A1 (en) Data storage method and system, and processor
KR20230025322A (ko) 호스트, 호스트의 동작 방법 및 스토리지 시스템