TWI783017B - 記憶體系統及其操作方法 - Google Patents
記憶體系統及其操作方法 Download PDFInfo
- Publication number
- TWI783017B TWI783017B TW107126841A TW107126841A TWI783017B TW I783017 B TWI783017 B TW I783017B TW 107126841 A TW107126841 A TW 107126841A TW 107126841 A TW107126841 A TW 107126841A TW I783017 B TWI783017 B TW I783017B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- compressed
- compression
- map
- mapping
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Memory System (AREA)
- Electrotherapy Devices (AREA)
Abstract
一種記憶體系統及其操作方法,該方法包括:接收讀取命令和讀取邏
輯位址;回應於讀取命令,在映射讀取階段,讀取儲存在非揮發性記憶體裝置中的原始映射切片,其中原始映射切片包括對應於讀取邏輯位址的讀取物理位址;透過壓縮原始映射切片來產生壓縮映射切片;將與壓縮映射切片的大小與原始映射切片的大小的比率相對應的壓縮類別儲存在壓縮類別描述表中;將壓縮映射切片儲存在緩衝記憶體中;並且基於儲存在緩衝記憶體中的壓縮映射切片,在資料讀取階段,從非揮發性記憶體裝置讀取對應於讀取命令的資料。
Description
本發明的各個實施例整體關於一種記憶體系統及其操作方法。特別地,實施例關於一種記憶體系統及記憶體系統的操作方法,該記憶體系統被配置成透過壓縮儲存在非揮發性記憶體裝置中的邏輯到物理位址映射資訊來產生壓縮的邏輯到物理位址映射資訊、將壓縮的邏輯到物理位址映射資訊儲存在緩衝記憶體中、以及管理壓縮的邏輯到物理位址映射資訊的壓縮類別。
非揮發性記憶體裝置可包括多個記憶體區塊。另外,每個記憶體區塊可包括多個記憶體單元,並且可對包括在一個記憶體區塊中的記憶體單元同時執行擦除操作。
當記憶體系統接收到從主機輸入的寫入命令和邏輯位址時,記憶體系統可分配對應於邏輯位址的物理位址,並將資料寫入對應於物理位址的記憶體區域。
記憶體系統可將位址映射資訊臨時儲存在緩衝記憶體中,並將儲存在緩衝記憶體中的位址映射資訊清除(flush)到非揮發性記憶體裝置。而且,當記憶體系統通電時,記憶體系統可將儲存在非揮發性記憶體裝置中的位址映射資訊重新載入到緩衝記憶體。
實施例提供了一種記憶體系統及記憶體系統的操作方法,該記憶體系統能夠透過壓縮儲存在非揮發性記憶體裝置中的邏輯到物理位址映射資訊來產生壓縮邏輯到物理位址映射資訊、將壓縮邏輯到物理位址映射資訊儲存在緩衝記憶體中、並且管理壓縮邏輯到物理位址映射資訊的壓縮類別。
根據本發明的態樣,提供了一種用於操作記憶體系統的方法,該方法包括:接收讀取命令和讀取邏輯位址;回應於讀取命令,在映射讀取階段,讀取儲存在非揮發性記憶體裝置中的原始映射切片,其中原始映射切片包括對應於讀取邏輯位址的讀取物理位址;透過壓縮原始映射切片來產生壓縮映射切片;將與壓縮映射切片的大小與原始映射切片的大小的比率相對應的壓縮類別儲存在壓縮類別描述表中;將壓縮映射切片儲存在緩衝記憶體中;並且基於儲存在緩衝記憶體中的壓縮映射切片,在資料讀取階段,從非揮發性記憶體裝置讀取對應於讀取命令的資料。
根據本發明的態樣,提供了一種記憶體系統,包括:非揮發性記憶體裝置,被配置成儲存包括邏輯到物理位址映射資訊的多個原始映射切片;以及記憶體控制器,包括記憶體緩衝器和邏輯到物理位址映射資訊壓縮器,其中邏輯到物理位址映射資訊壓縮器被配置成透過壓縮從非揮發性記憶體裝置讀取的多個原始映射切片來產生壓縮映射切片,並且記憶體緩衝器被配置成儲存壓縮映射切片和壓縮類別描述表,該壓縮類別描述表包括透過對各個壓縮映射切片的壓縮率進行分類而獲得的資訊。
根據本發明的態樣,提供了一種記憶體系統,包括:記憶體裝置,被配置成儲存邏輯到物理位址映射資訊的片段;以及控制器,被配置成:在針對第一讀取操作的第一邏輯位址的快取未命中的情況下,對儲存在記憶體裝置中的片段之中的、對應於第一邏輯位址的第一片段進行壓縮,並且快取壓縮的第一片段;根據第一片段中的、被映射到第一邏輯位址的物理位址,控制記憶體裝置執行第一讀取操作;在針對第二讀取操作的第二邏輯位址的快取命中的情況下,對一個或多個被壓縮並被快取的片段之中的、對應於第二邏輯位址的壓縮的第二片段進行解壓縮;並且根據第二片段中的、被映射到第二邏輯位址的物理位址,控制記憶體裝置執行第二讀取操作,其中控制器根據可用快取大小和壓縮片段的壓縮率來快取壓縮片段。
相關申請案的交叉引用:本申請案請求於2017年12月20日提交的申請號為10-2017-0176578的韓國專利申請案的優先權,該韓國專利申請案的全部內容透過引用併入本文。
100:記憶體單元陣列
110:記憶體區塊
200:周邊電路
210:電壓產生電路
220:行解碼器
230:頁面緩衝器組
231:頁面緩衝器
240:列解碼器
250:輸入/輸出電路
260:感測電路
300:控制邏輯
710:處理器
711:主機控制部
712:快閃記憶體控制部
713:快閃記憶體轉換部
720:記憶體緩衝器
721:邏輯到物理位址映射資訊儲存部
722:物理到邏輯位址映射資訊儲存部
723:壓縮類別描述表儲存部
730:資料編碼部
731:錯誤校正碼電路
732:資料隨機化產生器
740:主機介面
750:緩衝器控制電路
760:快閃記憶體介面
770:邏輯到物理位址映射資訊壓縮器
771:壓縮部
772:解壓縮部
773:壓縮類別描述表管理部
790:匯流排
1000:記憶體系統
1100:非揮發性記憶體裝置
1200:記憶體控制器
1300:緩衝記憶體裝置
2000:主機
3100:處理器
3200:顯示器
3300:無線電收發器
3400:輸入裝置
30000:記憶體系統
4100:處理器
4200:輸入裝置
4300:顯示器
40000:記憶體系統
5100:處理器
5200:影像感測器
5300:顯示器
50000:記憶體系統
6100:微處理器
6200:主機介面
60000:主機
7100:卡介面
70000:記憶體系統
ADD:位址
ANT:天線
BL1~BLn:位元線
BLK1~BLKm:記憶體區塊
CADD:列位址
CL:列線
Class Code<1>~Class Code<8>:第一類別代碼~第八類別代碼
Class Entry 1~Class Entry 4:第一類別條目~第四類別條目
CMD:命令
CompressionClass-1~N:第一至第N壓縮類別
Comp.MapSlice:壓縮映射切片
Comp.MapSlice-1:第一壓縮映射切片
Comp.MapSlice-2:第二壓縮映射切片
Comp.MapSlice-3:第三壓縮映射切片
Comp.MapSlice-4:第四壓縮映射切片
Comp.MapSlice-N:第N壓縮映射切片
DATA:資料
DL:資料線
DSL:汲極選擇線
DST:汲極選擇電晶體
F1~F16:記憶體單元
FAIL:失敗信號
LL:區域線
Mapping Entry_1:第一映射條目
Mapping Entry_2:第二映射條目
Mapping Entry_3:第三映射條目
Mapping Entry_4:第四映射條目
MC:記憶體單元
OP_CMD:操作信號
PASS:通過信號
PB1~PBn:頁面緩衝器
PBSIGNALS:頁面緩衝器控制信號
PPG:物理頁面
RADD:行位址
RawMapSlice:原始映射切片
RawMapSlice-1:第一原始映射切片
RawMapSlice-2:第二原始映射切片
RawMapSlice-3:第三原始映射切片
RawMapSlice-4:第四原始映射切片
RawMapSlice-N:第N原始映射切片
S901~S913:步驟
S1101~S1107:步驟
SL:源極線
SSL:源極選擇線
SST:源極選擇電晶體
ST:串
StartLA:開始邏輯位址
StartLA<1>~StartLA<8>:第一開始邏輯位址~第八開始邏輯位址
Vop:操作電壓
VPB:感測電壓
VRY_BIT<#>:允許位元
WL1~WL16:字元線
圖1是示出根據本發明的實施例的記憶體系統的示意圖。
圖2是示出圖1的記憶體控制器的示意圖。
圖3是示出圖1的非揮發性記憶體裝置的示意圖。
圖4是示出圖3的記憶體區塊的示意圖。
圖5是示出根據本發明的實施例的用於壓縮邏輯到物理位址映射資訊的方法的示意圖。
圖6是示出根據本發明的實施例的壓縮類別描述表的示意圖。
圖7是示出根據本發明的實施例的用於儲存壓縮映射切片的映射條目的示意圖。
圖8是示出根據本發明的另一實施例的記憶體控制器的示意圖。
圖9是描述根據本發明的實施例的讀取操作的流程圖。
圖10是示出根據本發明的實施例的記憶體緩衝器的示意圖。
圖11是描述根據本發明的實施例的寫入操作的流程圖。
圖12是示出根據本發明的另一實施例的記憶體系統的示意圖。
圖13至圖16是示出根據本發明的一個或多個實施例的記憶體系統的各種應用示例的示意圖。
現在將參照圖式在下文中更詳細地描述各個實施例;然而,本發明的元件和特徵可以不同的形式來體現,並且不應被解釋為限於本文闡述的實施例。相反地,提供這些實施例以使本發明徹底且完全,並且將實施例的範圍全面地傳達給本領域的技術人員。
在圖式中,為了說明清楚,尺寸可能被誇大。將理解的是,當元件被稱為在兩個元件「之間」時,該元件可以是這兩個元件之間的唯一元件,或者也可存在一個或多個中間元件。相同的元件符號始終表示相同的元件。
在以下詳細描述中,僅透過說明的方式示出和描述了本發明的某些示例性實施例。如本領域技術人員基於這種描述將認識到的,在不脫離本發明的精神或範圍的情況下,所述實施例可以各種不同的方式修改。因此,圖式和描述被認為在本質上是說明性的而非限制性的。此外,應注意的是,對「實
施例」的參考不一定僅針對一個實施例,並且對「實施例」的不同參考不一定針對相同的實施例。
在整個說明書中,當元件被稱為「連接」或「耦接」到另一元件時,該元件可以直接連接或耦接到另一元件,或者利用置於其間的一個或多個中間元件而間接連接或耦接到另一元件。另外,除非另有說明或上下文另有要求,否則當元件被稱為「包括」部件時,這表示該元件可進一步包括一個或多個另外的部件。
本文使用的術語僅用於描述特定實施例,並不旨在限制本發明。
如本文所使用的,除非上下文另有明確說明,否則單數形式也可包括複數形式,反之亦然。
在以下描述中,為了提供本發明的徹底理解,闡述了許多具體細節。可以在沒有一些或全部這些具體細節的情況下實施本發明。在其它情況下,為了避免不必要地模糊本發明,未詳細地描述公眾知悉的進程結構和/或進程。
在下文中,將參照圖式詳細描述本發明的各個實施例。
圖1是示出根據本發明的實施例的記憶體系統1000的示意圖。
參照圖1,記憶體系統1000可包括即使在斷電時也保持儲存的資料的非揮發性記憶體裝置1100,以及在主機2000的控制下控制非揮發性記憶體裝置1100的記憶體控制器1200。
主機2000可使用諸如以下的各種通訊協定中的至少一種來與記憶體系統1000通訊:通用序列匯流排(USB)、序列式AT附件(SATA)、高速晶片互連(HSIC)、小型電腦系統介面(SCSI)、火線、周邊元件互連(PCI)、PCI高速(PCIe)、高速非揮發性記憶體(NVMe)、通用快閃記憶體儲存(UFS)、
安全數位(SD)、多媒體卡(MMC)、嵌入式MMC(eMMC)、雙列直插式記憶體模組(DIMM)、暫存式DIMM(RDIMM)以及低負載DIMM(LRDIMM)等。
記憶體控制器1200可控制記憶體系統1000的全部操作,並且控制主機2000與非揮發性記憶體裝置1100之間的資料交換。例如,記憶體控制器1200可回應於主機2000的請求,透過控制非揮發性記憶體裝置1100來編程或讀取資料。而且,記憶體控制器1200可儲存包括在非揮發性記憶體裝置1100中的主記憶體區塊和子記憶體區塊的資訊,並且選擇非揮發性記憶體裝置1100,使得根據為編程操作載入的資料量而對主記憶體區塊或子記憶體區塊執行編程操作。在一些實施例中,非揮發性記憶體裝置1100可包括快閃記憶體。
圖2是示出圖1的記憶體控制器1200的示意圖。
參照圖2,記憶體控制器1200可包括處理器710、記憶體緩衝器720、資料編碼部730、主機介面740、緩衝器控制電路750、快閃記憶體介面760和匯流排790。另外,資料編碼部730可包括錯誤校正碼(ECC)電路731和資料隨機化產生器732。
匯流排790可被配置成提供記憶體控制器1200的部件之間的通道。
處理器710可控制記憶體控制器1200的全部操作並且執行邏輯操作。處理器710可透過主機介面740與外部主機2000通訊,並且透過快閃記憶體介面760與非揮發性記憶體裝置1100通訊。而且,處理器710可透過緩衝器控制電路750來控制記憶體緩衝器720。處理器710可作為工作記憶體、快取記憶體或緩衝記憶體來控制記憶體系統1000的操作。
處理器710可對從主機2000輸入的多個命令進行排隊。這種操作被稱為多隊列。處理器710可依序地將排隊的多個命令傳輸到非揮發性記憶體裝置1100。
記憶體緩衝器720可作為處理器710的工作記憶體、快取記憶體或緩衝記憶體。記憶體緩衝器720可儲存處理器710執行的代碼和命令。記憶體緩衝器720可儲存由處理器710處理的資料。記憶體緩衝器720可包括靜態隨機存取記憶體(SRAM)或動態隨機存取記憶體(DRAM)。
ECC電路731可執行錯誤校正。ECC電路731可基於透過快閃記憶體介面760被寫入非揮發性記憶體裝置1100中的資料來執行ECC編碼。經ECC編碼的資料可透過快閃記憶體介面760傳輸到非揮發性記憶體裝置1100。ECC電路731可對透過快閃記憶體介面760從非揮發性記憶體裝置1100接收的資料執行ECC解碼。作為示例,ECC電路731可作為快閃記憶體介面760的部件而被包括在快閃記憶體介面760中。
主機介面740可在處理器710的控制下與外部主機2000通訊。主機介面740可使用諸如以下的各種通訊協定中的至少一種來與主機2000通訊:通用序列匯流排(USB)、序列式AT附件(SATA)、高速晶片互連(HSIC)、小型電腦系統介面(SCSI)、火線、周邊元件互連(PCI)、PCI高速(PCIe)、高速非揮發性記憶體(NVMe)、通用快閃記憶體儲存(UFS)、安全數位(SD)、多媒體卡(MMC)、嵌入式MMC(eMMC)、雙列直插式記憶體模組(DIMM)、暫存式DIMM(RDIMM)以及低負載DIMM(LRDIMM)。
緩衝器控制電路750可在處理器710的控制下控制記憶體緩衝器720。
快閃記憶體介面760可在處理器710的控制下與非揮發性記憶體裝置1100通訊。快閃記憶體介面760可透過通道與非揮發性記憶體裝置1100通訊命令、位址和資料。
雖然圖2示出了記憶體控制器1200包括記憶體緩衝器720和緩衝器控制電路750,但本發明不限於此。也就是說,根據實施例,記憶體緩衝器720和/或緩衝器控制電路750可單獨地實現或在另一部件中實現。
作為示例,處理器710可使用代碼來控制記憶體控制器1200的操作。處理器710可從設置在記憶體控制器1200中的非揮發性記憶體裝置(例如,唯讀記憶體)載入代碼。作為另一示例,處理器710可透過快閃記憶體介面760從非揮發性記憶體裝置1100載入代碼。
資料隨機化產生器732可對資料進行隨機化或對被隨機化的資料進行去隨機化。資料隨機化產生器732可對透過快閃記憶體介面760被寫入非揮發性記憶體裝置1100中的資料執行資料隨機化操作。被隨機化的資料可透過快閃記憶體介面760傳輸到非揮發性記憶體裝置1100。資料隨機化產生器732可對透過快閃記憶體介面760從非揮發性記憶體裝置1100接收到的資料執行資料去隨機化操作。作為示例,資料隨機化產生器732可作為快閃記憶體介面760的部件而被包括在快閃記憶體介面760中。
作為示例,記憶體控制器1200的匯流排790可被劃分成控制匯流排和資料匯流排。資料匯流排可在記憶體控制器1200中傳輸資料,並且控制匯流排可在記憶體控制器1200中傳輸諸如命令和位址的控制資訊。資料匯流排和控制匯流排彼此分離,以使彼此不相互干擾或不相互影響。資料匯流排可耦接到主機介面740、緩衝器控制電路750、ECC電路731和快閃記憶體介面760。
控制匯流排可耦接到主機介面740、處理器710、緩衝器控制電路750和快閃記憶體介面760。
記憶體系統1000可從主機2000接收寫入命令、寫入資料和邏輯位址。回應於寫入命令,記憶體控制器1200的處理器710可分配物理儲存區域,即非揮發性記憶體裝置1100(寫入資料將儲存其中)的記憶體區塊(圖3的110)或頁面。換言之,處理器710可回應於寫入命令映射對應於邏輯位址的物理位址。物理位址可以是與非揮發性記憶體裝置1100的物理儲存區域(從主機2000輸入的寫入資料將儲存其中)相對應的位址。
記憶體系統1000可將邏輯位址與物理位址之間的映射資訊,即物理到邏輯位址映射資訊儲存在非揮發性記憶體裝置1100的記憶體區塊(圖3的110)中。儲存物理到邏輯位址映射資訊的記憶體區塊(圖3的110)可被稱為系統區塊。
作為另一示例,當記憶體系統從主機2000接收寫入命令、寫入資料和邏輯位址時,記憶體控制器1200的處理器710可回應於寫入命令而分配非揮發性記憶體裝置1100的物理儲存空間(寫入資料將儲存其中)。也就是說,處理器710可映射與寫入命令中的邏輯位址相對應的物理位址。新產生的邏輯位址與物理位址之間的映射資訊,即物理到邏輯位址映射資訊可被儲存在記憶體緩衝器720中。
作為另一示例,記憶體系統1000可從主機2000接收寫入命令、寫入資料和邏輯位址。另外,記憶體控制器1200的記憶體緩衝器720可包括與未被現有邏輯位址映射到的物理位址有關的資訊,即與對應於非揮發性記憶體裝置1100中的空閒塊或空閒頁面的物理位址有關的資訊。空閒塊或空閒頁面可
指將寫入新資料的記憶體區塊(圖3的110)或頁面。換言之,空閒塊或空閒頁面可處於擦除狀態。另外,記憶體控制器1200可將從主機2000輸入的寫入資料緩衝到記憶體緩衝器720。
在這種情況下,記憶體控制器1200的處理器710可回應於從主機2000接收到的寫入命令,檢查儲存在記憶體緩衝器720中的、與對應於非揮發性記憶體裝置1100的空閒塊或空閒頁面的物理位址有關的資訊,並將物理位址映射到邏輯位址。然後,記憶體控制器1200可將被緩衝到記憶體緩衝器720的寫入資料編程到非揮發性記憶體裝置1100的、對應於物理位址的儲存空間中。邏輯位址與物理位址之間的映射資訊,即物理到邏輯位址映射資訊可被臨時儲存在記憶體緩衝器720中,然後被清除到非揮發性記憶體裝置1100的記憶體區塊(圖3的110)。
記憶體系統1000可從主機2000接收讀取命令和邏輯位址。記憶體控制器1200的處理器710可回應於讀取命令來讀取儲存在非揮發性記憶體裝置1100中的、對應於邏輯位址的邏輯到物理位址映射資訊,並將讀取的邏輯到物理位址映射資訊載入到記憶體緩衝器720。然後,處理器710可從被載入到記憶體緩衝器720的邏輯到物理位址映射資訊中檢查對應於邏輯位址的物理位址,讀取儲存在非揮發性記憶體裝置1100的、對應於物理位址的儲存區域中的資料,並將讀取的資料輸出到主機2000。
每當從主機2000接收到讀取命令和邏輯位址時,記憶體系統1000可如上所述,讀取儲存在非揮發性記憶體裝置1100中的、對應於邏輯位址的邏輯到物理位址映射資訊,並將讀取的邏輯到物理位址映射資訊載入到記憶體緩
衝器720。載入這種邏輯到物理位址映射資訊的操作可能成為使記憶體系統1000的讀取性能劣化的因素。
當記憶體緩衝器720中用於儲存邏輯到物理位址映射資訊的記憶體空間變得越大時,記憶體系統1000一次載入邏輯到物理位址映射資訊的數量就越大。因此,透過同時載入邏輯到物理位址映射資訊的操作,邏輯到物理位址映射資訊可對應於多個讀取命令。因此,可提高記憶體系統1000的讀取性能。
記憶體系統1000可將用於讀取操作的邏輯到物理位址映射資訊和在寫入操作中產生的物理到邏輯位址映射資訊作為一種集成形式進行管理。可選地,記憶體系統可將邏輯到物理位址映射資訊和物理到邏輯位址映射資訊作為不同的形式單獨進行管理。
作為示例,可在搜尋對應於特定邏輯位址的物理位址時最佳化邏輯到物理位址映射資訊。因此,在讀取操作中有效搜尋被映射到從主機2000輸入的邏輯位址的物理位址。
作為示例,可針對寫入操作來最佳化物理到邏輯位址映射資訊。當從主機2000接收到寫入命令、寫入資料和邏輯位址時,記憶體控制器1200的處理器710需要迅速分配非揮發性記憶體裝置1100的儲存空間(寫入資料將儲存其中)。為此,記憶體緩衝器720可儲存與非揮發性記憶體裝置1100中的、可用於儲存寫入資料的儲存空間相對應的物理位址的列表。當從主機2000接收到寫入命令、寫入資料和邏輯位址時,記憶體控制器1200的處理器710可透過搜尋列表來將與能夠儲存寫入資料的儲存空間相對應的物理位址映射到邏輯位址,並且然後將寫入資料儲存在對應於物理位址的儲存空間中。物理到邏輯位址映射資訊可被產生並被臨時儲存在記憶體緩衝器720中。隨後,儲存在記憶
體緩衝器720中的物理到邏輯位址映射資訊可被清除到非揮發性記憶體裝置1100。
換言之,用於讀取操作的邏輯到物理位址映射資訊和在寫入操作中產生或更新的物理到邏輯位址映射資訊可在記憶體緩衝器720中被單獨管理。隨後,在儲存在記憶體緩衝器720中的物理到邏輯位址映射資訊被清除到非揮發性記憶體裝置1100之後,邏輯到物理位址映射資訊和物理到邏輯位址映射資訊可被集成為一個整體以被管理。作為示例,在記憶體緩衝器720中被單獨管理的邏輯到物理位址映射資訊和物理到邏輯位址映射資訊可以邏輯到物理位址映射資訊的形式被集成和管理。
處理器710可包括主機控制部711、快閃記憶體控制部712和快閃記憶體轉換部713。
主機控制部711可控制主機2000和主機介面740與記憶體緩衝器720之間的資料傳輸。作為示例,主機控制部711可控制經由主機介面740將從主機2000輸入的資料緩衝到記憶體緩衝器720的操作。作為另一示例,主機控制部711可控制經由主機介面740將被緩衝到記憶體緩衝器720的資料輸出到主機2000的操作。
在寫入操作中,快閃記憶體控制部712可控制將被緩衝在記憶體緩衝器720中的資料傳輸到非揮發性記憶體裝置1100,並對資料進行編程的操作。作為另一示例,在讀取操作中,快閃記憶體控制部712可控制將從非揮發性記憶體裝置1100讀取和輸出的資料緩衝到記憶體緩衝器720的操作。
在資料寫入操作中,快閃記憶體轉換部713可映射與從主機2000輸入的邏輯位址相對應的物理位址。而且,快閃記憶體轉換部713可將映射的
物理位址傳輸到快閃記憶體控制部712,並且快閃記憶體控制部712可基於物理位址將資料編程到非揮發性記憶體裝置1100。而且,快閃記憶體轉換部713可產生物理到邏輯位址映射資訊,並且臨時儲存物理到邏輯位址映射資訊。隨後,快閃記憶體控制部712可將臨時儲存在記憶體緩衝器720中的物理到邏輯位址映射資訊清除到非揮發性記憶體裝置1100。
在資料讀取操作中,快閃記憶體轉換部713可從非揮發性記憶體裝置1100讀取與被映射到從主機2000輸入的邏輯位址的物理位址有關的資訊,即邏輯到物理位址映射資訊,並且將邏輯到物理位址映射資訊儲存在記憶體緩衝器720中。快閃記憶體轉換部713可從儲存在記憶體緩衝器720中的邏輯到物理位址映射資訊中檢查對應於邏輯位址的物理位址,並將物理位址傳輸到快閃記憶體控制部712。快閃記憶體控制部712可從非揮發性記憶體裝置1100的、對應於物理位址的儲存空間讀取資料。
圖3是示出圖1的非揮發性記憶體裝置1100的示意圖。
參照圖3,非揮發性記憶體裝置1100可包括儲存資料的記憶體單元陣列100。非揮發性記憶體裝置1100可包括周邊電路200,其中周邊電路200執行用於將資料儲存在記憶體單元陣列100中的編程操作、用於輸出儲存的資料的讀取操作和用於擦除儲存的資料的擦除操作。非揮發性記憶體裝置1100可包括控制邏輯300,其中控制邏輯300在記憶體控制器(圖1的1200)的控制下控制周邊電路200。
記憶體單元陣列100可包括多個記憶體區塊BLK1~BLKm(m為正整數)110。區域線LL和位元線BL1~BLn(n為正整數)可耦接到記憶體區塊BLK1~BLKm 110。例如,區域線LL可包括第一選擇線、第二選擇線以及佈
置在第一選擇線和第二選擇線之間的多個字元線。而且,區域線LL可進一步包括佈置在第一選擇線和字元線之間以及佈置在第二選擇線和字元線之間的虛設(dummy)線。此處,第一選擇線可以是源極選擇線,並且第二選擇線可以是汲極選擇線。例如,區域線LL可包括字元線、汲極選擇線、源極選擇線以及源極線SL。例如,區域線LL可進一步包括虛設線。例如,區域線LL可進一步包括管線。區域線LL可分別耦接到記憶體區塊BLK1~BLKm 110,位元線BL1~BLn可共同耦接到記憶體區塊BLK1~BLKm 110。記憶體區塊BLK1~BLKm 110可實施為二維或三維結構。例如,在具有二維結構的記憶體區塊BLK1~BLKm 110中,記憶體單元可沿平行於基體的方向佈置。例如,在具有三維結構的記憶體區塊BLK1~BLKm 110中,記憶體單元可沿垂直於基體的方向佈置。
周邊電路200可在控制邏輯300的控制下對多個記憶體區塊BLK1~BLKm 110之中的所選擇的記憶體區塊執行編程操作、讀取操作和擦除操作。例如,在控制邏輯300的控制下,周邊電路200可將驗證電壓和通過電壓提供至第一選擇線、第二選擇線和字元線,選擇性地使第一選擇線、第二選擇線和字元線放電,並且驗證耦接到字元線之中的所選擇的字元線的記憶體單元。例如,周邊電路200可包括電壓產生電路210、行解碼器220、頁面緩衝器組230、列解碼器240、輸入/輸出電路250和感測電路260。
電壓產生電路210可回應於操作信號OP_CMD而產生用於編程操作、讀取操作和擦除操作的各種操作電壓Vop。而且,電壓產生電路210可回應於操作信號OP_CMD選擇性地使區域線LL放電。例如,在控制邏輯300的控制下,電壓產生電路210可產生編程電壓、驗證電壓、通過電壓、導通電壓、讀取電壓、擦除電壓、源極線電壓等。
行解碼器220可回應於行位址RADD將操作電壓Vop傳輸到與多個記憶體區塊BLK1~BLKm 110中的所選擇的記憶體區塊耦接的區域線LL。
頁面緩衝器組230可包括耦接到位元線BL1~BLn的多個頁面緩衝器PB1~PBn 231。頁面緩衝器PB1~PBn 231可回應於頁面緩衝器控制信號PBSIGNALS進行操作。例如,在讀取操作或驗證操作中,頁面緩衝器PB1~PBn 231可臨時儲存透過位元線BL1~BLn接收到的資料,或者感測位元線BL1~BLn的電壓或電流。
列解碼器240可回應於列位址CADD在輸入/輸出電路250和頁面緩衝器組230之間傳輸資料。例如,列解碼器240可透過資料線DL與頁面緩衝器231交換資料,或者可透過列線CL與輸入/輸出電路250交換資料。
輸入/輸出電路250可將從記憶體控制器(圖1的1200)接收到的命令CMD和位址ADD傳輸到控制邏輯300,或與列解碼器240交換資料DATA。
在讀取操作和驗證操作中,感測電路260可回應於許可位元VRY_BIT<#>產生參考電流,並且透過將從頁面緩衝器組230接收到的感測電壓VPB與由參考電流產生的參考電壓進行比較來輸出通過信號PASS或失敗信號FAIL。
控制邏輯300可回應於命令CMD和位址ADD,透過輸出操作信號OP_CMD、行位址RADD、頁面緩衝器控制信號PBSIGNALS、許可位元VRY_BIT<#>和列位址CADD來控制周邊電路200。而且,控制邏輯300可回應於通過信號PASS或失敗信號FAIL來確定驗證操作是通過還是失敗。
在非揮發性記憶體裝置1100的操作中,每個記憶體區塊110可以是擦除操作的單位。換言之,包括在記憶體區塊110中的多個記憶體單元被同時擦除,而不可被選擇性地擦除。
圖4是示出圖3的記憶體區塊的示例的示意圖。例如,圖4所示的記憶體區塊110可對應於圖3所示的多個記憶體區塊BLK1~BLKm中的任何一個。
參照圖4,在第一選擇線和第二選擇線之間彼此平行佈置的多個字元線可耦接到第一記憶體區塊110。此處,第一選擇線可以是源極選擇線SSL,並且第二選擇線可以是汲極選擇線DSL。更具體地,第一記憶體區塊110可包括耦接在位元線BL1~BLn與源極線SL之間的多個串ST。位元線BL1~BLn可分別耦接到串ST,並且源極線SL可共同耦接到串ST。串ST可彼此相同地配置,因此,將作為示例詳細描述耦接到第一位元線BL1的串ST。
串ST可包括彼此串聯耦接在源極線SL和第一位元線BL1之間的源極選擇電晶體SST、多個記憶體單元F1~F16以及汲極選擇電晶體DST。一個串ST中可包括至少一個源極選擇電晶體SST和至少一個汲極選擇電晶體DST,並且一個串ST中可包括數量大於圖5所示數量的記憶體單元(即,多於16個記憶體單元F1~F16)。
源極選擇電晶體SST的源極可耦接到源極線SL,汲極選擇電晶體DST的汲極可耦接到第一位元線BL1。記憶體單元F1~F16可串聯耦接在源極選擇電晶體SST和汲極選擇電晶體DST之間。不同串ST中的源極選擇電晶體SST的閘極可耦接到源極選擇線SSL,不同串ST中的汲極選擇電晶體DST的閘極可耦接到汲極選擇線DSL,不同串ST中的記憶體單元F1~F16的閘極可
耦接到多個字元線WL1~WL16。包括在不同串ST中的記憶體單元之中耦接到相同字元線的一組記憶體單元可以是物理頁面PPG。因此,第一記憶體區塊110中可包括數量對應於字元線WL1~WL16數量的物理頁面PPG。
一個記憶體單元MC可儲存一位資料。這通常被稱為單層單元(SLC)。在這種情況下,一個物理頁面(PPG)可儲存一個邏輯頁面(LPG)資料。一個LPG資料可包括數量對應於包括在一個物理頁面PPG中的單元數量的資料位。另外,一個記憶體單元MC可儲存兩位或更多位的資料。這通常被稱為多層單元(MLC)。在這種情況下,一個物理頁面PPG可儲存兩個或更多個LPG資料。
當記憶體單元儲存兩位資料時,一個物理頁面PPG可包括兩個頁面PG。一個頁面PG可儲存一個LPG資料。一個記憶體單元可根據資料而具有多個閾值電壓中的任何一個,並且包括在一個物理頁面PPG中的多個頁面PG可使用閾值電壓差來表示。
包括在一個物理頁面PPG中的多個記憶體單元可被同時編程。換言之,非揮發性記憶體裝置1100可以物理頁面PPG為單位執行編程操作。包括在一個記憶體區塊中的多個記憶體單元可被同時擦除。換言之,非揮發性記憶體裝置1100可以記憶體區塊110為單位執行擦除操作。作為示例,為了更新儲存在一個記憶體區塊110中的資料的一部分,在透過讀取儲存在記憶體區塊110中的整個資料來修改整個資料中需要更新的資料之後,整個資料可再次被編程到另一記憶體區塊110中。
圖5是示出根據本發明的實施例的用於壓縮邏輯到物理位址映射資訊的方法的示意圖。
參照圖5,非揮發性記憶體裝置1100可儲存邏輯到物理位址映射資訊。作為示例,邏輯到物理位址映射資訊可被劃分成多個原始映射切片RawMapSlice來進行管理。作為示例,一個原始映射切片RawMapSlice可以是大小為2千位元組(2KB)的資料。
當從主機2000接收到讀取命令和邏輯位址時,記憶體控制器1200的處理器710可讀取被儲存在非揮發性記憶體裝置1100中的邏輯到物理位址映射資訊,並將讀取的邏輯到物理位址映射資訊儲存在記憶體緩衝器720中,以將物理位址與邏輯位址連結。記憶體控制器1200可以原始映射切片RawMapSlice為單位讀取邏輯到物理位址映射資訊。換言之,處理器710可從非揮發性記憶體裝置1100中僅讀取一個原始映射切片RawMapSlice,或者平行讀取多個原始映射切片RawMapSlice。
作為示例,記憶體控制器1200可從主機2000接收讀取命令和第一邏輯位址。與第一邏輯位址有關的邏輯到物理位址映射資訊可被包括在第一原始映射切片RawMapSlice-1中。為了檢查對應於第一邏輯位址的物理位址,處理器710可從非揮發性記憶體裝置1100讀取包括與第一邏輯位址有關的邏輯到物理位址映射資訊的第一原始映射切片RawMapSlice-1,並將讀取的RawMapSlice-1儲存在記憶體緩衝器720中。然後,記憶體控制器1200可在被儲存在記憶體緩衝器720中的RawMapSlice-1中檢查對應於第一邏輯位址的物理位址,讀取被儲存在非揮發性記憶體裝置1100的、與物理位址相對應的儲存空間中的資料,並將讀取資料緩衝到記憶體緩衝器720。然後,記憶體控制器1200的處理器710可透過主機介面740將被緩衝到記憶體緩衝器720的讀取資料輸出到主機2000。
然後,記憶體控制器1200可接收讀取命令和第二邏輯位址。與第二邏輯位址有關的邏輯到物理位址映射資訊可被包括在第二原始映射切片RawMapSlice-2中。為了檢查對應於第二邏輯位址的物理位址,處理器710可讀取包括與第二邏輯位址有關的邏輯到物理位址映射資訊的RawMapSlice-2,並將讀取的RawMapSlice-2儲存在記憶體緩衝器720中。然後,記憶體控制器1200可在被儲存在記憶體緩衝器720中的RawMapSlice-2中檢查對應於第二邏輯位址的物理位址,讀取被儲存在非揮發性記憶體裝置1100的、與物理位址相對應的儲存空間中的資料,並將讀取資料緩衝到記憶體緩衝器720。然後,記憶體控制器1200可將被緩衝到記憶體緩衝器720的讀取資料輸出到主機2000。
然後,記憶體控制器1200可從主機2000接收讀取命令和第三邏輯位址。與第三邏輯位址有關的位址映射資訊可被包括在第三原始映射切片RawMapSlice-3中。為了檢查對應於第三邏輯位址的物理位址,記憶體控制器1200可讀取包括與第三邏輯位址有關的位址映射資訊的RawMapSlice-3,並將讀取的RawMapSlice-3儲存在記憶體緩衝器720中。
作為示例,當記憶體緩衝器720分配4KB的儲存空間來儲存邏輯到物理位址映射資訊時,從非揮發性記憶體裝置1100讀取的RawMapSlice-3可被重寫在儲存了RawMapSlice-1或RawMapSlice-2的空間中。可選地,RawMapSlice-3可被儲存在透過刪除RawMapSlice-1和RawMapSlice-2中的一個而獲得的記憶體空間中。
作為另一示例,當記憶體緩衝器720分配8KB的記憶體空間來儲存邏輯到物理位址映射資訊時,記憶體控制器1200不刪除儲存在記憶體緩衝器720中的第一原始映射切片RawMapSlice-1和第二原始映射切片RawMapSlice-2,
而是可將第三原始映射切片RawMapSlice-3添加在記憶體緩衝器720中。隨後,基於儲存在記憶體緩衝器720中的RawMapSlice-3,記憶體控制器1200可完成對應於讀取命令的讀取操作。
然後,記憶體控制器1200可從主機2000接收讀取命令和第四邏輯位址。與第四邏輯位址有關的位址映射資訊可被包括在RawMapSlice-1中。在上述示例中,當記憶體緩衝器720分配4KB的記憶體空間來儲存邏輯到物理位址映射資訊時,RawMapSlice-1可能未被儲存在記憶體緩衝器720中。在這種情況下,記憶體控制器1200可從非揮發性記憶體裝置1100重新讀取RawMapSlice-1,並將重新讀取的RawMapSlice-1儲存在記憶體緩衝器720中。
在上述示例中,當記憶體緩衝器720分配8KB的記憶體空間來儲存邏輯到物理位址映射資訊時,RawMapSlice-1仍可被儲存在記憶體緩衝器720中。在這種情況下,記憶體控制器1200可不從非揮發性記憶體裝置1100重新讀取RawMapSlice-1。在這種情況下,與從非揮發性記憶體裝置1100重新讀取RawMapSlice-1時相比,記憶體控制器1200可具有優異的讀取性能。
如上所述,當記憶體緩衝器720分配較大的記憶體空間來儲存邏輯到物理位址映射資訊時,從非揮發性記憶體裝置1100讀取邏輯到物理位址映射資訊的操作可執行的比當記憶體緩衝器720分配較小的記憶體空間時少。因此,記憶體系統1000的讀取性能可以更好。然而,因為記憶體緩衝器720可以分配用於儲存邏輯到物理位址映射資訊的記憶體空間的大小是有限的,因此可能需要克服這個問題的技術。
記憶體控制器1200可透過在從非揮發性記憶體裝置1100讀取邏輯到物理位址映射資訊並隨後將其儲存在記憶體緩衝器720中之前壓縮該資訊
來減小該資訊的大小。資料壓縮率可以根據原始映射切片RawMapSlice的資料特性而不同。作為示例,當原始映射切片RawMapSlice被壓縮時,記憶體控制器1200可應用各個資料壓縮率,並將各個資料壓縮率管理和分類成多個類別。
作為示例,RawMapSlice-1可被壓縮到256位元組(256B)或更小,從而產生第一壓縮映射切片Comp.MapSlice-1。當壓縮映射切片Comp.MapSlice的大小大於0B且等於或小於256B時,記憶體控制器1200可將該壓縮映射切片Comp.MapSlice標示為第一壓縮類別CompressionClass-1,並管理該壓縮映射切片Comp.MapSlice。換言之,記憶體緩衝器720可將256B的記憶體空間分配給被壓縮到CompressionClass-1的壓縮映射切片Comp.MapSlice。
而且,作為示例,RawMapSlice-2可被壓縮到超過256B並小於或等於512位元組(512B)的大小,從而產生第二壓縮映射切片Comp.MapSlice-2。當壓縮映射切片Comp.MapSlice的大小大於256B且小於或等於512B時,記憶體控制器1200可將該壓縮映射切片Comp.MapSlice標示為第二壓縮類別CompressionClass-2,並管理該壓縮映射切片Comp.MapSlice。換言之,記憶體緩衝器720可將512B的記憶體空間分配給被壓縮到第二壓縮類別CompressionClass-2的壓縮映射切片Comp.MapSlice。
而且,作為示例,RawMapSlice-3可被壓縮到超過512B並小於或等於1千位元組(1KB)的大小,從而產生第三壓縮映射切片Comp.MapSlice-3。當壓縮映射切片Comp.MapSlice的大小大於512B且小於或等於1KB時,記憶體控制器1200可將該壓縮映射切片Comp.MapSlice標示為第三壓縮類別CompressionClass-3,並管理該壓縮映射切片Comp.MapSlice。換言之,記憶體
緩衝器720可將1KB的記憶體空間分配給被壓縮到第三壓縮類別CompressionClass-3的壓縮映射切片Comp.MapSlice。
而且,作為示例,第四原始映射切片RawMapSlice-4可被壓縮到超過1KB並小於或等於2千位元組(2KB)的大小,從而產生第四壓縮映射切片Comp.MapSlice-4。當壓縮映射切片Comp.MapSlice的大小大於1KB且小於或等於2KB時,記憶體控制器1200可將該壓縮映射切片Comp.MapSlice標示為第四壓縮類別CompressionClass-4,並管理該壓縮映射切片Comp.MapSlice。換言之,記憶體緩衝器720可將2KB的記憶體空間分配給被壓縮到第四壓縮類別CompressionClass-4的壓縮映射切片Comp.MapSlice。
如上所述,記憶體緩衝器720可根據壓縮映射切片Comp.MapSlice的壓縮類別來分配記憶體空間,以儲存壓縮映射切片Comp.MapSlice。
作為示例,當記憶體緩衝器720分配總共2KB的記憶體空間來儲存邏輯到物理位址映射資訊時,記憶體緩衝器720可儲存八個CompressionClass-1的壓縮映射切片Comp.MapSlice。作為另一示例,當記憶體緩衝器720分配總共2KB的記憶體空間來儲存邏輯到物理位址映射資訊時,記憶體緩衝器720可儲存兩個CompressionClass-1的壓縮映射切片Comp.MapSlice、一個CompressionClass-2的壓縮映射切片Comp.MapSlice和一個CompressionClass-3的壓縮映射切片Comp.MapSlice。
圖6是示出根據本發明的實施例的壓縮類別描述表的示意圖。圖7是示出根據本發明的實施例的用於儲存壓縮映射切片Comp.MapSlice的映射條目的示意圖。
參照圖6和圖7,記憶體控制器1200的處理器710可將壓縮類別描述表儲存在記憶體緩衝器720中,並且管理壓縮類別描述表。
作為示例,記憶體緩衝器720可分配8KB的記憶體空間來儲存邏輯到物理位址映射資訊。記憶體緩衝器720可以2KB為單位劃分和管理8KB的記憶體空間。此處,每個2KB的記憶體空間可被稱為映射條目。在參照圖5描述的示例中,當一個原始映射切片RawMapSlice具有2KB的大小時,八個第一壓縮類別CompressionClass-1的壓縮映射切片Comp.MapSlice可被儲存在記憶體緩衝器720的單個映射條目中。可選地,兩個第一壓縮類別CompressionClass-1的壓縮映射切片Comp.MapSlice、一個第二壓縮類別CompressionClass-2的壓縮映射切片Comp.MapSlice以及一個第三壓縮類別CompressionClass-3的壓縮映射切片Comp.MapSlice可被儲存在記憶體緩衝器720的映射條目中。另外,一個第四壓縮類別CompressionClass-4的壓縮映射切片Comp.MapSlice可被儲存在記憶體緩衝器720的映射條目中。
作為示例,記憶體緩衝器720可包括8KB的記憶體空間,即第一映射條目Mapping Entry_1至第四映射條目Mapping Entry_4,來儲存壓縮映射切片Comp.MapSlice。也就是說,第一映射條目Mapping Entry_1至第四映射條目Mapping Entry_4中的每一個可具有2KB的記憶體空間。記憶體控制器1200可產生和管理壓縮類別描述表,以管理第一映射條目Mapping Entry_1至第四映射條目Mapping Entry_4。作為示例,壓縮類別描述表可包括第一類別條目Class Entry 1至第四類別條目Class Entry 4,並且每個類別條目可包括與記憶體緩衝器720中的、被分配來儲存壓縮映射切片Comp.MapSlice的第一映射條目Mapping Entry_1至第四映射條目Mapping Entry_4中的任何一個有關的資訊。
作為示例,儲存在非揮發性記憶體裝置1100中的、具有2KB大小的原始映射切片RawMapSlice可被壓縮到第四壓縮類別CompressionClass-4,以被儲存在記憶體緩衝器720的第一映射條目Mapping Entry_1中。換言之,被壓縮到第四壓縮類別CompressionClass-4的壓縮映射切片Comp.MapSlice可被儲存在第一映射條目Mapping Entry_1中,其中第一映射條目Mapping Entry_1是在記憶體緩衝器720中分配的、8KB的記憶體空間中的第一個2KB記憶體空間。
在這種情況下,記憶體控制器1200可在壓縮類別描述表中產生第一類別條目Class Entry_1。換言之,第一類別條目Class Entry_1可儲存與記憶體緩衝器720中、被分配來儲存壓縮映射切片Comp.MapSlice的第一個2KB記憶體空間,即第一映射條目Mapping Entry_1有關的資訊。第一類別條目Class Entry_1可包括第一條目位元映射EntryBitMap_1,以及用於壓縮映射切片Comp.MapSlice的第一類別代碼Class Code<1>和第一開始邏輯位址StartLA<1>,其中該壓縮映射切片Comp.MapSlice被壓縮到第四壓縮類別CompressionClass-4並將被儲存在第一映射條目Mapping Entry_1中。
也就是說,第一條目位元映射EntryBitMap_1可以是表示被壓縮到第四壓縮類別CompressionClass4的一個壓縮映射切片Comp.MapSlice被儲存在第一映射條目Mapping Entry_1中的資訊。第一類別條目Class Entry-1的第一類別代碼Class Code<1>可以是表示儲存在第一映射條目Mapping Entry-1中的壓縮映射切片Comp.MapSlice的壓縮類別CompressionClass是第四壓縮類別CompressionClass-4的資訊。另外,第一類別條目Class Entry-1的第一開始邏輯位址StartLA<1>可包括被壓縮到第四壓縮類別CompressionClass-4的壓縮映射切片Comp.MapSlice的邏輯到物理位址映射資訊中包括的開始邏輯位址。
作為另一示例,儲存在非揮發性記憶體裝置1100中的、各自具有2KB大小的兩個原始映射切片RawMapSlice可被壓縮到第三壓縮類別CompressionClass-3,以被儲存在記憶體緩衝器720的第二映射條目Mapping Entry_2中。換言之,被壓縮到第三壓縮類別CompressionClass-3的兩個壓縮映射切片Comp.MapSlice可被儲存在第二映射條目Mapping Entry_2中,該第二映射條目Mapping Entry_2是在記憶體緩衝器720中分配的、8KB的記憶體空間中的第二個2KB記憶體空間。
在這種情況下,記憶體控制器1200可在壓縮類別描述表中產生第二類別條目Class Entry_2。換言之,第二類別條目Class Entry_2可儲存與記憶體緩衝器720中、被分配來儲存壓縮映射切片Comp.MapSlice的第二個2KB記憶體空間,即第二映射條目Mapping Entry_2有關的資訊。第二類別條目Class Entry_2可包括第二條目位元映射EntryBitMap_2,用於第一壓縮映射切片的第一類別代碼Class Code<1>和第一開始邏輯位址StartLA<1>,以及用於第二壓縮映射切片的第二類別代碼Class Code<2>和第二開始邏輯位址StartLA<2>,其中第一壓縮映射切片被壓縮到第三壓縮類別CompressionClass-3並將被儲存在第二映射條目Mapping Entry_2中,第二壓縮映射切片被壓縮到第三壓縮類別CompressionClass-3並將被儲存在第二映射條目Mapping Entry_2中。
也就是說,第二條目位元映射EntryBitMap_2可以是表示被壓縮到第三壓縮類別CompressionClass3的兩個壓縮映射切片Comp.MapSlice被儲存在第二映射條目Mapping Entry_2中的資訊。另外,第二類別條目Class Entry-2的第一類別代碼Class Code<1>可以是表示儲存在第二映射條目Mapping Entry-2中的第一壓縮映射切片的壓縮類別CompressionClass是第三壓縮類別
CompressionClass-3的資訊,並且第二類別條目Class Entry-2的第二類別代碼Class Code<2>可以是表示儲存在第二映射條目Mapping Entry-2中的第二壓縮映射切片的壓縮類別CompressionClass是第三壓縮類別CompressionClass-3的資訊。另外,第二類別條目Class Entry-2的第一開始邏輯位址StartLA<1>可包括被儲存在第二映射條目Mapping Entry2中的、被壓縮到第三壓縮類別CompressionClass-3的第一壓縮映射切片的邏輯到物理位址映射資訊中包括的開始邏輯位址,並且第二類別條目Class Entry-2的第二開始邏輯位址StartLA<2>可包括被儲存在第二映射條目Mapping Entry2中的、被壓縮到第三壓縮類別CompressionClass-3的第二壓縮映射切片的邏輯到物理位址映射資訊中包括的的開始邏輯位址。
作為另一示例,儲存在非揮發性記憶體裝置1100中的、各自具有2KB大小的八個原始映射切片RawMapSlice可被壓縮到第一壓縮類別CompressionClass-1,以被儲存在記憶體緩衝器720的第三映射條目Mapping Entry_3中。換言之,被壓縮到第一壓縮類別CompressionClass-1的八個壓縮映射切片Comp.MapSlice可被儲存在記憶體緩衝器720中分配的、8KB的記憶體空間中的第三個2KB記憶體空間,即第三映射條目Mapping Entry_3中。
在這種情況下,記憶體控制器1200可在壓縮類別描述表中產生第三類別條目Class Entry_3。換言之,第三類別條目Class Entry_3可儲存與記憶體緩衝器720中、被分配來儲存壓縮映射切片Comp.MapSlice的第三個2KB記憶體空間,即第三映射條目Mapping Entry_3有關的資訊。第三類別條目Class Entry-3可包括第三條目位元映射EntryBitMap_3,以及用於八個壓縮映射切片Comp.MapSlice的第一類別代碼Class Code<1>至第八類別代碼Class Code<8>和
第一開始邏輯位址StartLA<1>至第八開始邏輯位址StartLA<8>,其中八個壓縮映射切片Comp.MapSlice被壓縮到第一壓縮類別CompressionClass-1並將被儲存在第三映射條目Mapping Entry_3中。
也就是說,第三條目位元映射EntryBitMap_3可以是表示被壓縮到第一壓縮類別CompressionClass-1的八個壓縮映射切片Comp.MapSlice被儲存在第三映射條目Mapping Entry_3中的資訊。另外,第三類別條目Class Entry-3的第一類別代碼Class Code<1>至第八類別代碼Class Code<8>中的每一個可以是表示儲存在第三映射條目Mapping Entry-3中的第一至第八壓縮映射切片Comp.MapSlice中的每一個的壓縮類別CompressionClass是第一壓縮類別CompressionClass-1的資訊。另外,第三類別條目Class Entry-3的第一開始邏輯位址StartLA<1>至第八開始邏輯位址StartLA<8>可包括被儲存在第三映射條目Mapping Entry_3中的、被壓縮到第一壓縮類別CompressionClass-1的八個壓縮映射切片Comp.MapSlice各自的邏輯到物理位址映射資訊中包括的開始邏輯位址。
作為另一示例,在儲存在非揮發性記憶體裝置1100中的、各自具有2KB大小的四個原始映射切片RawMapSlice中,被壓縮到第一壓縮類別CompressionClass-1的兩個原始映射切片RawMapSlice、被壓縮到第三壓縮類別CompressionClass-3的一個原始映射切片RawMapSlice以及被壓縮到第四壓縮類別CompressionClass-4的剩餘原始映射切片RawMapSlice可被儲存在第四映射條目Mapping Entry_4中。換言之,被壓縮到第一壓縮類別CompressionClass-1的兩個壓縮映射切片Comp.MapSlice、被壓縮到第三壓縮類別CompressionClass3的一個壓縮映射切片Comp.MapSlice和被壓縮到第四壓縮類別
CompressionClass-4的一個壓縮映射切片Comp.MapSlice可被儲存在第四映射條目Mapping Entry_4中,其中第四映射條目Mapping Entry_4是記憶體緩衝器720中分配的、8KB的記憶體空間中的第四個2KB記憶體空間。
在這種情況下,記憶體控制器1200可在壓縮類別描述表中產生第四類別條目Class Entry-4。換言之,第四類別條目Class Entry-4可儲存與記憶體緩衝器720中、被分配來儲存壓縮映射切片Comp.MapSlice的第四個2KB記憶體空間,即第四映射條目Mapping Entry_4有關的資訊。第四類別條目Class Entry_4可包括第四條目位元映射EntryBitMap_4,用於第一壓縮映射切片的第一類別代碼Class Code<1>和第一開始邏輯位址StartLA<1>,用於第二壓縮映射切片的第二類別代碼Class Code<2>和第二開始邏輯位址StartLA<2>,用於第三壓縮映射切片的第三類別代碼Class Code<3>和第三開始邏輯位址StartLA<3>,以及用於第四壓縮映射切片的第四類別代碼Class Code<4>和第四開始邏輯位址StartLA<4>,其中第一壓縮映射切片被壓縮到第一壓縮類別CompressionClass-1並將被儲存在第四映射條目Mapping Entry_4中,第二壓縮映射切片被壓縮到第一壓縮類別CompressionClass-1並將被儲存在第四映射條目Mapping Entry_4中,第三壓縮映射切片被壓縮到第三壓縮類別CompressionClass-3並將被儲存在第四映射條目Mapping Entry_4中,第四壓縮映射切片被壓縮到第四壓縮類別CompressionClass-4並將被儲存在第四映射條目Mapping Entry_4中。
也就是說,第四條目位元映射EntryBitMap_4可以是表示被壓縮到第一壓縮類別CompressionClass-1的兩個壓縮映射切片Comp.MapSlice,被壓縮到第三壓縮類別CompressionClass3的一個壓縮映射切片Comp.MapSlice和被壓縮到第四壓縮類別CompressionClass4的一個壓縮映射切片Comp.MapSlice被
儲存在第四映射條目Mapping Entry_4中的資訊。而且,第四條目位元映射EntryBitMap_4可進一步包括與四個壓縮映射切片Comp.MapSlice的儲存順序有關的資訊。
第四類別條目Class Entry-4的第一類別代碼Class Code<1>可以是表示第一壓縮映射切片的壓縮類別CompressionClass是第一壓縮類別CompressionClass-1的資訊,並且第四類別條目Class Entry4的第一開始邏輯位址StartLA<1>可包括被壓縮到第一壓縮類別CompressionClass-1的第一壓縮映射切片的邏輯到物理位址映射資訊中包括的開始邏輯位址。另外,第四類別條目Class Entry-4的第二類別代碼Class Code<2>可以是表示第二壓縮映射切片的壓縮類別CompressionClass是第一壓縮類別CompressionClass-1的資訊,並且第四類別條目Class Entry4的第二開始邏輯位址StartLA<2>可包括被壓縮到第一壓縮類別CompressionClass-1的第二壓縮映射切片的邏輯到物理位址映射資訊中包括的開始邏輯位址。
第四類別條目Class Entry-4的第三類別代碼Class Code<3>可以是表示第三壓縮映射切片的壓縮類別CompressionClass是第三壓縮類別CompressionClass-3的資訊,並且第四類別條目Class Entry4的第三開始邏輯位址StartLA<3>可包括被壓縮到第三壓縮類別CompressionClass-3的第三壓縮映射切片的邏輯到物理位址映射資訊中包括的開始邏輯位址。另外,第四類別條目Class Entry-4的第四類別代碼Class Code<4>可以是表示第四壓縮映射切片的壓縮類別CompressionClass是第四壓縮類別CompressionClass-4的資訊,並且第四類別條目Class Entry4的第四開始邏輯位址StartLA<4>可包括被壓縮到第四壓
縮類別CompressionClass-4的第四壓縮映射切片的邏輯到物理位址映射資訊中包括的開始邏輯位址。
作為示例,壓縮類別描述表可被儲存在記憶體緩衝器720中,並且可在記憶體控制器1200通電時被初始化。而且,當記憶體控制器1200讀取儲存在非揮發性記憶體裝置1100中的原始映射切片RawMapSlice,透過壓縮原始映射切片RawMapSlice來產生壓縮映射切片Comp.MapSlice,然後將壓縮映射切片Comp.MapSlice儲存在記憶體緩衝器720中時,壓縮類別描述表可被更新。
作為示例,第一映射條目Mapping Entry-1和第二映射條目Mapping Entry-2兩者可處於被占滿的狀態,五個第一壓縮類別CompressionClass-1的壓縮映射切片Comp.MapSlice可被儲存在第三映射條目Mapping Entry-3中,並且兩個第一壓縮類別CompressionClass-1的壓縮映射切片Comp.MapSlice和一個第四壓縮類別CompressionClass-4的壓縮映射切片Comp.MapSlice可被儲存在第四映射條目Mapping Entry-4中。與此有關的資訊可被包括在壓縮類別描述表中。當記憶體控制器1200的處理器710讀取儲存在非揮發性記憶體裝置1100中的原始映射切片RawMapSlice,透過壓縮原始映射切片RawMapSlice來產生壓縮映射切片Comp.MapSlice,然後將壓縮映射切片Comp.MapSlice儲存在記憶體緩衝器720中時,可基於壓縮類別描述表來確定壓縮映射切片Comp.MapSlice將被儲存的位置。
作為示例,當新儲存的壓縮映射切片Comp.MapSlice具有第三壓縮類別CompressionClass-3時,記憶體控制器1200可基於壓縮類別描述表將第三壓縮類別CompressionClass-3的壓縮映射切片Comp.MapSlice儲存在第四映射條目Mapping Entry-4中,並且在壓縮類別描述表中更新該結果。
作為另一示例,當新儲存的壓縮映射切片Comp.MapSlice具有第一壓縮類別CompressionClass-1時,記憶體控制器1200可基於壓縮類別描述表將第一壓縮類別CompressionClass-1的壓縮映射切片Comp.MapSlice儲存在第三映射條目Mapping Entry-3或第四映射條目Mapping Entry-4中,並且在壓縮類別描述表中更新該結果。
作為又一示例,當新儲存的壓縮映射切片Comp.MapSlice具有第四壓縮類別CompressionClass-4時,記憶體控制器1200可基於壓縮類別描述表刪除儲存在第一映射條目Mapping Entry-1至第四映射條目Mapping Entry-4中的一些壓縮映射切片Comp.MapSlice,將第四壓縮類別CompressionClass-4的壓縮映射切片儲存在對應記憶體空間中,然後在壓縮類別描述表中更新該結果。
如上述示例中所述,映射條目Mapping Entry中的、被分配來儲存壓縮映射切片Comp.MapSlice的記憶體空間可具有與該壓縮映射切片Comp.MapSlice的壓縮類別CompressionClass相對應的大小。作為示例,映射條目Mapping Entry中的、具有256B大小的記憶體空間可被分配給第一壓縮類別CompressionClass-1的壓縮映射切片Comp.MapSlice,映射條目Mapping Entry中的、具有512B大小的記憶體空間可被分配給第二壓縮類別CompressionClass-2的壓縮映射切片Comp.MapSlice,映射條目Mapping Entry中的、具有1KB大小的記憶體空間可被分配給第三壓縮類別CompressionClass-3的壓縮映射切片Comp.MapSlice,並且映射條目Mapping Entry中的、具有2KB大小的記憶體空間可被分配給第四壓縮類別CompressionClass-4的壓縮映射切片Comp.MapSlice。
圖8是示出根據本發明的另一實施例的記憶體控制器1200的示意圖。
參照圖8,除圖2中描述的示例以外,記憶體控制器1200可進一步包括邏輯到物理位址映射資訊壓縮器770。另外,邏輯到物理位址映射資訊壓縮器770可包括壓縮部771、解壓縮部772和壓縮類別描述表管理部773。
壓縮部771可透過對從非揮發性記憶體裝置1100讀取的原始映射切片RawMapSlice進行壓縮來產生壓縮映射切片Comp.MapSlice。記憶體控制器1200的處理器710可透過壓縮部771對從非揮發性記憶體裝置1100讀取的原始映射切片RawMapSlice進行壓縮,以便產生壓縮映射切片Comp.MapSlice。資料壓縮率可根據原始映射切片RawMapSlice的資料特性而不同。因此,壓縮映射切片CompMapSlice的資料大小可能不同。
如參照圖5至圖7所述,壓縮率可以多個壓縮類別的形式被分類並被儲存在壓縮類別描述表中。壓縮類別描述表管理部773可執行根據壓縮映射切片Comp.MapSlice的資料大小產生壓縮類別CompressionClass並且將壓縮類別CompressionClass儲存在壓縮類別描述表中的操作。換言之,壓縮類別描述表管理部773可執行產生和儲存壓縮類別描述表並更新壓縮類別描述表的操作。
解壓縮部772可執行對儲存在記憶體緩衝器720中的壓縮映射切片Comp.MapSlice進行解壓縮的操作。記憶體控制器1200可從主機2000接收讀取命令和邏輯位址。記憶體控制器1200的處理器710可透過解壓縮部772對儲存在記憶體緩衝器720中的壓縮映射切片Comp.MapSlice進行解壓縮,以便檢查對應於邏輯位址的物理位址。
記憶體控制器1200的處理器710可透過解壓縮部772對儲存在記憶體緩衝器720中的壓縮映射切片Comp.MapSlice進行解壓縮,然後將解壓縮後的壓縮映射切片Comp.MapSlice儲存在非揮發性記憶體裝置1100中。
圖9是描述根據本發明的實施例的讀取操作的流程圖。
參照圖9,在步驟S901中,記憶體控制器1200可接收讀取命令和邏輯位址。在步驟S902中,記憶體控制器1200的處理器710可透過搜尋壓縮類別描述表來檢查是否已經發生快取命中。快取命中可表示與從主機2000輸入的邏輯位址相對應的邏輯到物理位址映射資訊被儲存在記憶體緩衝器720中的情況。
如果未發生快取命中(步驟S903中為「否」),則在步驟S904中,處理器710可從非揮發性記憶體裝置讀取邏輯到物理位址映射資訊,其中邏輯到物理位址映射資訊包括與從主機2000提供的邏輯位址相對應的至少一個原始映射切片RawMapSlice。
在步驟S904之後,在步驟S905中,處理器710可透過使用壓縮部771,壓縮從非揮發性記憶體裝置1100讀取的原始映射切片RawMapSlice來產生壓縮映射切片Comp.MapSlice。
在步驟S905之後,在步驟S906中,處理器710可透過搜尋壓縮類別描述表來分配將儲存壓縮映射切片Comp.MapSlice的映射條目Mapping Entry。步驟S906可進一步包括透過搜尋壓縮類別描述表來檢查映射條目Mapping Entry的可用記憶體空間的步驟。映射條目Mapping Entry的可用記憶體空間是指映射條目Mapping Entry中可另外儲存壓縮映射切片CompMapSlice的記憶體空間。
在步驟S906之後,在步驟S907中,處理器710可將壓縮映射切片CompMapSlice儲存在分配的映射條目Mapping Entry中。在步驟S908中,處理器710可在壓縮類別描述表中更新壓縮映射切片Comp.MapSlice的類別代碼Class Code和開始邏輯位址StartLA,以及儲存壓縮映射切片Comp.MapSlice的映射條目Mapping Entry的條目位元映射EntryBitMap。
在步驟S908之後,在步驟S909中,處理器710可使用解壓縮部772對儲存在映射條目Mapping Entry中的壓縮映射切片Comp.MapSlice執行解壓縮。而且,在步驟S910中,處理器710可基於包括在解壓縮後的壓縮映射切片Comp.MapSlice中的邏輯到物理位址映射資訊來檢查與從主機2000提供的邏輯位址相對應的物理位址。
在步驟S910之後,在步驟S911中,處理器710可基於物理位址讀取儲存在非揮發性記憶體裝置1100中的資料。而且,在步驟S912中,處理器710可將讀取的資料臨時儲存在記憶體緩衝器720中。
在步驟S912之後,在步驟S913中,處理器710可透過主機介面740將讀取的資料輸出到主機2000。
如果發生快取命中(步驟S903中為「是」),則可立即執行步驟S909。換言之,處理器710可立即在映射條目Mapping Entry中檢查與從主機2000接收的邏輯位址相對應的邏輯到物理位址映射資訊。
圖10是示出根據本發明的實施例的記憶體緩衝器720的示意圖。
參照圖10,記憶體緩衝器720可包括邏輯到物理位址映射資訊儲存部721、物理到邏輯位址映射資訊儲存部722和壓縮類別描述表儲存部723。
記憶體控制器1200可從主機2000接收讀取命令和邏輯位址。記憶體控制器1200的處理器710可回應於讀取命令,從非揮發性記憶體裝置1100讀取包括對應於邏輯位址的邏輯到物理位址映射資訊的原始映射切片RawMapSlice,透過壓縮原始映射切片RawMapSlice來產生壓縮映射切片Comp.MapSlice,然後將壓縮映射切片Comp.MapSlice儲存在記憶體緩衝器720的邏輯到物理位址映射資訊儲存部721中。然後,記憶體控制器1200可對儲存在邏輯到物理位址映射資訊儲存部721中的壓縮映射切片Comp.MapSlice進行解壓縮,並且透過解壓縮後的壓縮映射切片Comp.MapSlice檢查對應於邏輯位址的物理位址。然後,記憶體控制器1200可讀取儲存在非揮發性記憶體裝置1100的、對應於物理位址的儲存區域中的資料,並且將讀取的資料輸出到主機2000。
作為另一示例,記憶體控制器1200可從主機2000接收讀取命令和邏輯位址。記憶體控制器1200的處理器710可回應於讀取命令,檢查對應於邏輯位址的邏輯到物理位址映射資訊是否已被儲存在邏輯到物理位址映射資訊儲存部721中。如果對應於邏輯位址的邏輯到物理位址映射資訊被儲存在邏輯到物理位址映射資訊儲存部721中,則記憶體控制器1200可對對應壓縮映射切片Comp.MapSlice進行解壓縮,並透過解壓縮後的壓縮映射切片Comp.MapSlice檢查對應於邏輯位址的物理位址。然後,記憶體控制器1200可讀取儲存在非揮發性記憶體裝置的、對應於物理位址的儲存區域中的資料,並且將讀取的資料輸出到主機2000。
記憶體控制器1200可從主機2000接收寫入命令、寫入資料和邏輯位址。另外,記憶體控制器1200的物理到邏輯位址映射資訊儲存部722可包括與未被映射邏輯位址的物理位址有關的資訊,即與對應於非揮發性記憶體裝
置1100中的空閒塊或空閒頁面的物理位址有關的資訊。空閒塊或空閒頁面可指可用於儲存額外資料的記憶體區塊110或頁面。另外,記憶體控制器1200可將從主機2000輸入的寫入資料緩衝到記憶體緩衝器720。
在這種情況下,回應於從主機2000接收的寫入命令,記憶體控制器1200的處理器710可檢查儲存在物理到邏輯位址映射資訊儲存部722中的、與對應於非揮發性記憶體裝置1100的空閒塊或空閒頁面的物理位址有關的資訊,並將物理位址映射到邏輯位址。然後,記憶體控制器1200可將被緩衝到記憶體緩衝器720的寫入資料編程到非揮發性記憶體裝置1100的、對應於物理位址的儲存空間中。邏輯位址與物理位址之間的映射資訊,即物理到邏輯位址映射資訊可被臨時儲存在物理到邏輯位址映射資訊儲存部722中,然後被清除到非揮發性記憶體裝置1100的記憶體區塊110。
處理器710可將參照圖6描述的壓縮類別描述表儲存在壓縮類別描述表儲存部723中並在壓縮類別描述表儲存部723中進行管理。儲存在壓縮類別描述表儲存部723中的壓縮類別描述表可在記憶體控制器1200通電時被初始化。
當記憶體控制器1200的處理器710讀取儲存在非揮發性記憶體裝置1100中的原始映射切片RawMapSlice,透過壓縮原始映射切片RawMapSlice來產生壓縮映射切片Comp.MapSlice,然後將壓縮映射切片Comp.MapSlice儲存在邏輯到物理位址映射資訊儲存部721中時,可基於儲存在壓縮類別描述表儲存部723中的壓縮類別描述表來確定壓縮映射切片Comp.MapSlice將被儲存的位置。
作為示例,當新儲存的壓縮映射切片Comp.MapSlice對應於第三壓縮類別CompressionClass-3時,處理器710可基於儲存在壓縮類別描述表儲存部723中的壓縮類別描述表,將第三壓縮類別CompressionClass-3的壓縮映射切片Comp.MapSlice儲存在第四映射條目Mapping Entry-4中,並且基於結果更新儲存在壓縮類別描述表儲存部723中的壓縮類別描述表。
圖11是描述根據本發明的實施例的寫入操作的流程圖。
參照圖11,在步驟S1101中,記憶體控制器1200可從主機2000接收寫入命令、寫入資料和邏輯位址。另外,在步驟S1102中,處理器710可將寫入資料臨時儲存在記憶體緩衝器720中。
在步驟S1103中,處理器710可接收透過搜尋物理到邏輯位址映射資訊儲存部722而被分配的可映射物理位址。非揮發性記憶體裝置1100的、對應於可映射物理位址的儲存空間可以是可編程寫入資料的空閒塊或空閒頁面。換言之,非揮發性記憶體裝置1100的、對應於可映射物理位址的儲存空間可處於擦除狀態。
然後,在步驟S1104中,處理器710可將被分配的物理位址映射到邏輯位址。
在步驟S1104之後,在步驟S1105中,處理器710可將臨時儲存在記憶體緩衝器720中的寫入資料編程到非揮發性記憶體裝置1100。而且,在步驟S1106中,處理器710可將邏輯位址與物理位址之間的映射資訊,即物理到邏輯位址映射資訊儲存在記憶體緩衝器720的物理到邏輯位址映射資訊儲存部722中。步驟S1105可在步驟S1106之前執行、與步驟S1106並行執行或在步驟S1106之後執行。而且,在步驟1106期間,處理器710可基於邏輯位址與
物理位址之間的映射資訊,即物理到邏輯位址映射資訊,更新儲存在記憶體緩衝器720中的現有物理到邏輯位址映射資訊。
當滿足某個條件時,在步驟S1107中,處理器710可將儲存在記憶體緩衝器720的物理到邏輯位址映射資訊儲存部722中的物理到邏輯位址映射資訊清除到非揮發性記憶體裝置1100。該條件是示例,並且可用於以下情況:物理到邏輯位址映射資訊儲存部722中分配的物理位址變為某個水平或更低。
步驟S1107可包括,基於儲存在記憶體緩衝器720的物理到邏輯位址映射資訊儲存部722中的物理到邏輯位址映射資訊來更新儲存在非揮發性記憶體裝置1100中的邏輯到物理位址映射資訊的操作。換言之,邏輯到物理位址映射資訊和物理到邏輯位址映射資訊可在記憶體緩衝器720中被單獨管理。邏輯到物理位址映射資訊和物理到邏輯位址映射資訊可被集成為單個形式,即將在非揮發性記憶體裝置1100中管理的邏輯到物理位址映射資訊的形式。
圖12是示出根據本發明的另一實施例的記憶體系統1000的示意圖。
參照圖12,與參照圖1描述的示例相比,記憶體系統1000可進一步包括緩衝記憶體裝置1300。
記憶體控制器1200可從主機2000接收讀取命令和邏輯位址。記憶體控制器1200可回應於讀取命令,讀取儲存在非揮發性記憶體裝置1100中的、包括對應於邏輯位址的邏輯到物理位址映射資訊的原始映射切片RawMapSlice,透過壓縮原始映射切片(RawMapSlice)來產生壓縮映射切片(Comp.MapSlice),然後將Comp.MapSlice載入到緩衝記憶體裝置1300。然後,記憶體控制器1200可對被載入到緩衝記憶體裝置1300的Comp.MapSlice進行解壓縮,並且透過解
壓縮後的Comp.MapSlice檢查對應於邏輯位址的物理位址。然後,記憶體控制器1200可讀取儲存在非揮發性記憶體裝置1100的、對應於物理位址的儲存區域中的資料,將資料臨時儲存在緩衝記憶體裝置1300中,並將資料輸出到主機2000。
作為另一示例,記憶體控制器1200可從主機2000接收讀取命令和邏輯位址。記憶體控制器1200可回應於讀取命令,檢查對應於邏輯位址的邏輯到物理位址映射資訊是否已被儲存在緩衝記憶體裝置1300中。如果對應於邏輯位址的邏輯到物理位址映射資訊被儲存在緩衝記憶體裝置1300中,則記憶體控制器1200可解壓縮對應Comp.MapSlice,並透過解壓縮後的Comp.MapSlice檢查對應於邏輯位址的物理位址。然後,記憶體控制器1200可讀取儲存在非揮發性記憶體裝置1100的、對應於物理位址的儲存區域中的資料,並且將讀取的資料輸出到主機2000。
記憶體控制器1200可從主機2000接收寫入命令、寫入資料和邏輯位址。另外,緩衝記憶體裝置1300可包括與未被映射邏輯位址的物理位址有關的資訊,即與對應於非揮發性記憶體裝置1100中的空閒塊或空閒頁面的物理位址有關的資訊。空閒塊或空閒頁面可指將寫入新資料的記憶體區塊110或頁面。另外,記憶體控制器1200可將從主機2000輸入的寫入資料緩衝到緩衝記憶體裝置1300。
在這種情況下,回應於從主機2000接收到的寫入命令,記憶體控制器1200可檢查儲存在緩衝記憶體裝置1300中的、與對應於非揮發性記憶體裝置1100的空閒塊或空閒頁面的物理位址有關的資訊,並將物理位址映射到邏輯位址。然後,記憶體控制器1200可將被緩衝到緩衝記憶體裝置1300的寫入資
料編程到非揮發性記憶體裝置1100的、對應於物理位址的儲存空間中。邏輯位址與物理位址之間的映射資訊,即物理到邏輯位址映射資訊可被臨時儲存在緩衝記憶體裝置1300中,然後被清除到非揮發性記憶體裝置1100的記憶體區塊110。
在一些實施例中,緩衝記憶體裝置1300可包括雙倍資料速率同步動態隨機存取記憶體(DDR SDRAM)、低功率雙倍資料速率4(LPDDR4)SDRAM、圖形雙倍資料速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus動態隨機存取記憶體(RDRAM)等中的任何一種。
另外,可考慮將記憶體控制器1200的記憶體緩衝器720和緩衝記憶體裝置1300一起稱為緩衝記憶體。
圖13是示出根據本發明的一個或多個實施例的記憶體系統的應用示例的示意圖。
參照圖13,記憶體系統30000可被實施為移動電話、智慧智慧型手機、平板PC、個人數位助理(PDA)或無線通訊裝置。記憶體系統30000可包括非揮發性記憶體裝置1100和能夠控制非揮發性記憶體裝置1100的操作的記憶體控制器1200。記憶體控制器1200可在處理器3100的控制下控制非揮發性記憶體裝置1100的資料存取操作,例如編程操作、擦除操作或讀取操作。
被編程在非揮發性記憶體裝置1100中的資料可在記憶體控制器1200的控制下透過顯示器3200輸出。
無線電收發器3300可透過天線ANT發送/接收無線電信號。例如,無線電收發器3300可將透過天線ANT接收到的無線電信號轉換為可以由處理器3100處理的信號。因此,處理器3100可處理從無線電收發器3300輸出的信
號,並將處理後的信號傳輸到記憶體控制器1200或顯示器3200。記憶體控制器1200可將由處理器3100處理的信號編程到非揮發性記憶體裝置1100中。而且,無線電收發器3300可將從處理器3100輸出的信號轉換為無線電信號,並且透過天線ANT將轉換後的無線電信號輸出到外部裝置。輸入裝置3400是能夠輸入用於控制處理器3100的操作的控制信號或由處理器3100處理的資料的裝置,並且可實施為諸如觸摸板或電腦鼠標的定點裝置、小鍵盤或鍵盤。處理器3100可控制顯示器3200的操作,使得從記憶體控制器1200輸出的資料、從無線電收發器3300輸出的資料或從輸入裝置3400輸出的資料可以透過顯示器3200輸出。
在一些實施例中,能夠控制非揮發性記憶體裝置1100的操作的記憶體控制器1200可被實施為處理器3100的一部分,或者被實施為獨立於處理器3100的晶片。而且,記憶體控制器1200可利用圖2所示的記憶體控制器來實施。
圖14是示出根據本發明的一個或多個實施例的記憶體系統的應用示例的示意圖。
參照圖14,記憶體系統40000可被實施成個人電腦(PC)、平板PC、小筆電、電子閱讀器、個人數位助理(PDA)、便攜式多媒體播放器(PMP)、MP3播放器或MP4播放器。
記憶體系統40000可包括非揮發性記憶體裝置1100和能夠控制非揮發性記憶體裝置1100的資料處理操作的記憶體控制器1200。
處理器4100可根據透過輸入裝置4200輸入的資料,透過顯示器4300輸出儲存在非揮發性記憶體裝置1100中的資料。例如,輸入裝置4200可被實施為諸如觸摸板或電腦鼠標的定點裝置、小鍵盤或鍵盤。
處理器4100可控制記憶體系統40000的全部操作,並且控制記憶體控制器1200的操作。在一些實施例中,能夠控制非揮發性記憶體裝置1100的操作的記憶體控制器1200可被實施為處理器4100的一部分,或者被實施為獨立於處理器4100的晶片。而且,記憶體控制器1200可利用圖2所示的記憶體控制器來實施。
圖15是示出根據本發明的一個或多個實施例的記憶體系統的應用示例的示意圖。
參照圖15,記憶體系統50000可被實施為諸如數位相機的影像處理裝置,或者被實施為包括或連接到數位相機的各種裝置,例如行動終端機、智慧智慧型手機或平板PC中的任何一種。
記憶體系統50000可包括非揮發性記憶體裝置1100和能夠控制非揮發性記憶體裝置1100的例如編程操作、擦除操作或讀取操作等資料處理操作的記憶體控制器1200。
記憶體系統50000的影像感測器5200可將光學影像轉換成數位信號,並且轉換後的數位信號可被傳輸到處理器5100或記憶體控制器1200。在處理器5100的控制下,轉換後的數位信號可透過顯示器5300輸出,或透過記憶體控制器1200而儲存在非揮發性記憶體裝置1100中。另外,儲存在非揮發性記憶體裝置1100中的資料可在處理器5100或記憶體控制器1200的控制下透過顯示器5300輸出。
在一些實施例中,能夠控制非揮發性記憶體裝置1100的操作的記憶體控制器1200可被實施為處理器5100的一部分,或者被實施為獨立於處理
器5100的晶片。而且,記憶體控制器1200可利用圖2所示的記憶體控制器來實施。
圖16是示出根據本發明的一個或多個實施例的記憶體系統的應用示例的示意圖。
參照圖16,記憶體系統70000可被實施為記憶卡或智慧卡。記憶體系統70000可包括非揮發性記憶體裝置1100、記憶體控制器1200和卡介面7100。
記憶體控制器1200可控制非揮發性記憶體裝置1100和卡介面7100之間的資料交換。在一些實施例中,卡介面7100可以是安全數位(SD)卡介面或多媒體卡(MMC)介面,但本發明不限於此。而且,記憶體控制器1200可利用圖2所示的記憶體控制器來實施。
卡介面7100可根據主機60000的協定來介面連接主機60000和記憶體控制器1200以進行資料交換。在一些實施例中,卡介面7100可支持通用序列匯流排(USB)協定和晶片互連(IC)-USB協定。此處,卡介面7100可表示能夠支持由主機60000使用的協定、嵌入在硬體中的軟體或信號傳輸方案的硬體。
當記憶體系統70000耦接到諸如PC、平板PC、數位相機、數位音訊播放器、手機、控制台視訊遊戲硬體或數位機上盒的主機60000的主機介面6200時,主機介面6200可在微處理器6100的控制下,透過卡介面7100和記憶體控制器1200與非揮發性記憶體裝置1100進行資料通訊。
根據本發明,在記憶體系統的操作中,可使用壓縮並儲存在緩衝記憶體中的邏輯到物理位址映射資訊來提高記憶體系統的讀取性能。
本文已經公開了各個實施例,並且儘管使用了特定的術語,但是它們僅以一般的和描述性的意義來使用並理解,而不用於限制的目的。在一些情況下,從本申請案提交起,對於本領域技術人員而言顯而易見的是,除非另外明確指出,否則結合特定實施例描述的特徵、特性和/或元件可單獨使用或與結合其它實施例描述的特徵、特性和/或元件組合使用。因此,本領域技術人員將理解的是,在不脫離如申請專利範圍中闡述的本發明的實質和範圍的情況下,可進行形式和細節上的各種改變。
RawMapSlice-1:第一原始映射切片
RawMapSlice-2:第二原始映射切片
RawMapSlice-3:第三原始映射切片
RawMapSlice-4:第四原始映射切片
RawMapSlice-N:第N原始映射切片
Comp.MapSlice-1:第一壓縮映射切片
Comp.MapSlice-2:第二壓縮映射切片
Comp.MapSlice-3:第三壓縮映射切片
Comp.MapSlice-4:第四壓縮映射切片
Comp.MapSlice-N:第N壓縮映射切片
Claims (20)
- 一種操作記憶體系統的方法,所述方法包括:接收讀取命令和讀取邏輯位址;回應於所述讀取命令,在映射讀取階段,讀取儲存在非揮發性記憶體裝置中的原始映射切片,其中所述原始映射切片包括對應於所述讀取邏輯位址的讀取物理位址;透過壓縮所述原始映射切片來產生壓縮映射切片;將與所述壓縮映射切片的大小與所述原始映射切片的大小的比率相對應的壓縮類別儲存在壓縮類別描述表中;將所述壓縮映射切片儲存在包括多個映射條目的緩衝記憶體中;並且基於儲存在所述緩衝記憶體中的壓縮映射切片,在資料讀取階段,從所述非揮發性記憶體裝置讀取對應於所述讀取命令的資料,其中所述壓縮類別描述表包括條目位元映射,其包括儲存在每一個所述多個映射條目中的壓縮映射切片的數量以及與所述壓縮映射切片的儲存順序有關的資訊。
- 如請求項1所述的方法,其中透過基於所述壓縮類別選擇所述多個映射條目中的一個來儲存所述壓縮映射切片。
- 如請求項2所述的方法,其中所述壓縮類別描述表包括與所述多個映射條目相對應的多個類別條目,並且 其中所述多個類別條目中的每一個包括:所述條目位元映射,其包括儲存在對應映射條目中的壓縮映射切片的所述數量;以及儲存在所述對應映射條目中的至少一個壓縮映射切片的壓縮類別和開始邏輯位址。
- 如請求項2所述的方法,進一步包括透過搜尋所述壓縮類別描述表來檢查所述多個映射條目的可用記憶體空間。
- 如請求項2所述的方法,進一步包括對儲存在所述緩衝記憶體中的壓縮映射切片進行解壓縮,其中基於解壓縮後的映射切片來執行所述資料讀取階段。
- 如請求項3所述的方法,進一步包括,回應於所述讀取命令,在所述映射讀取階段之前,透過搜尋所述壓縮類別描述表,檢查包括對應於所述讀取邏輯位址的讀取物理位址的壓縮映射切片是否已被儲存在所述緩衝記憶體中,其中當包括對應於所述讀取邏輯位址的讀取物理位址的壓縮映射切片未被儲存在所述緩衝記憶體中時,執行所述映射讀取階段。
- 如請求項3所述的方法,其中所述多個映射條目中的每一個包括具有相同大小的記憶體空間,所述記憶體空間儲存至少一個壓縮映射切片,並且其中所述多個映射條目具有根據所述壓縮類別被儲存的不同數量的壓縮映射切片。
- 如請求項7所述的方法,其中所述多個映射條目中的每一個包括靜態隨機存取記憶體,即SRAM。
- 如請求項2所述的方法,進一步包括:接收寫入命令、寫入資料和寫入邏輯位址;基於儲存在所述緩衝記憶體中的物理到邏輯位址映射資訊,將寫入物理位址映射到所述寫入邏輯位址;並且基於所述映射,更新儲存在所述緩衝記憶體中的物理到邏輯位址映射資訊。
- 如請求項9所述的方法,進一步包括:基於更新的物理到邏輯位址映射資訊,更新儲存在所述非揮發性記憶體裝置中的原始映射切片中的至少一個;以及基於所述寫入物理位址,將所述寫入資料編程到所述非揮發性記憶體裝置。
- 如請求項10所述的方法,其中所述非揮發性記憶體裝置的、對應於所述寫入物理位址的儲存空間處於擦除狀態。
- 一種記憶體系統,包括:非揮發性記憶體裝置,儲存包括邏輯到物理位址映射資訊的多個原始映射切片;以及記憶體控制器,包括記憶體緩衝器和邏輯到物理位址映射資訊壓縮器,其中所述邏輯到物理位址映射資訊壓縮器透過壓縮從所述非揮發性記憶體裝置讀取的多個原始映射切片來產生壓縮映射切片,並且其中所述記憶體緩衝器儲存所述壓縮映射切片和壓縮類別描述表,所述壓縮類別描述表包括透過對各個所述壓縮映射切片的壓縮率進行分類而獲得的資訊, 其中所述記憶體緩衝器包括多個映射條目,並且其中所述壓縮類別描述表包括條目位元映射,其包括儲存在每一個所述多個映射條目中的壓縮映射切片的數量以及與所述壓縮映射切片的儲存順序有關的資訊。
- 如請求項12所述的記憶體系統,其中所述多個映射條目包括具有相同大小的記憶體空間,以儲存所述壓縮映射切片,其中所述壓縮類別描述表包括對應於所述多個映射條目的多個類別條目,並且其中所述多個類別條目中的每一個包括:所述條目位元映射,其包括儲存在對應映射條目中的壓縮映射切片的所述數量;以及儲存在所述對應映射條目中的至少一個壓縮映射切片的壓縮類別和開始邏輯位址。
- 如請求項12所述的記憶體系統,其中所述記憶體控制器進一步包括處理器,並且其中所述處理器回應於從主機輸入的讀取命令和讀取邏輯位址,檢查包括對應於所述讀取邏輯位址的讀取物理位址的壓縮映射切片是否已被儲存在所述記憶體緩衝器中。
- 如請求項14所述的記憶體系統,其中所述邏輯到物理位址映射資訊壓縮器進一步對儲存在所述記憶體緩衝器中的壓縮映射切片進行解壓縮,並且其中所述處理器基於解壓縮後的映射切片來檢查所述讀取物理位址。
- 如請求項14所述的記憶體系統, 其中所述記憶體緩衝器儲存物理到邏輯位址映射資訊,並且其中所述處理器回應於從所述主機輸入的寫入命令和寫入邏輯位址,透過搜尋所述物理到邏輯位址映射資訊來分配被映射到所述寫入邏輯位址的寫入物理位址,並且基於所述寫入邏輯位址和分配的寫入物理位址之間的映射資訊,更新儲存在所述記憶體緩衝器中的物理到邏輯位址映射資訊。
- 如請求項16所述的記憶體系統,其中所述處理器基於儲存在所述記憶體緩衝器中的被更新的物理到邏輯位址映射資訊,更新儲存在所述非揮發性記憶體裝置中的邏輯到物理位址映射資訊。
- 如請求項16所述的記憶體系統,其中所述非揮發性記憶體裝置的、對應於所述寫入物理位址的儲存空間處於擦除狀態。
- 如請求項13所述的記憶體系統,其中當所述記憶體控制器通電時,所述壓縮類別描述表被初始化。
- 一種記憶體系統,包括:記憶體裝置,儲存邏輯到物理位址映射資訊的片段;以及控制器包括記憶體緩衝器以及邏輯到物理位址映射資訊壓縮器,其中所述邏輯到物理位址映射資訊壓縮器透過壓縮從所述記憶體裝置讀取的多個原始映射切片來產生壓縮映射切片,其中所述記憶體緩衝器儲存所述壓縮映射切片和壓縮類別描述表,所述壓縮類別描述表包括透過對各個所述壓縮映射切片的壓縮率進行分類而獲得的資訊,其中所述記憶體緩衝器包括多個映射條目, 其中所述壓縮類別描述表包括條目位元映射,其包括儲存在每一個所述多個映射條目中的壓縮映射切片的數量以及與所述壓縮映射切片的儲存順序有關的資訊,其中所述控制器被配置成:在針對第一讀取操作的第一邏輯位址的快取未命中的情況下,對儲存在所述記憶體裝置中的片段之中的、對應於所述第一邏輯位址的第一片段進行壓縮,並且快取壓縮的第一片段;根據所述第一片段中的、被映射到所述第一邏輯位址的物理位址,控制所述記憶體裝置執行所述第一讀取操作;在針對第二讀取操作的第二邏輯位址的快取命中的情況下,對一個或多個被壓縮並被快取的片段之中的、對應於所述第二邏輯位址的壓縮的第二片段進行解壓縮;根據所述第二片段中的、被映射到所述第二邏輯位址的物理位址,控制所述記憶體裝置執行所述第二讀取操作,並且其中所述控制器根據可用快取大小和壓縮片段的壓縮率來快取所述壓縮片段。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020170176578A KR20190074886A (ko) | 2017-12-20 | 2017-12-20 | 메모리 시스템 및 그것의 동작 방법 |
| ??10-2017-0176578 | 2017-12-20 | ||
| KR10-2017-0176578 | 2017-12-20 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201928686A TW201928686A (zh) | 2019-07-16 |
| TWI783017B true TWI783017B (zh) | 2022-11-11 |
Family
ID=66815132
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW107126841A TWI783017B (zh) | 2017-12-20 | 2018-08-02 | 記憶體系統及其操作方法 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US10831652B2 (zh) |
| KR (1) | KR20190074886A (zh) |
| CN (1) | CN109947361B (zh) |
| TW (1) | TWI783017B (zh) |
Families Citing this family (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102569177B1 (ko) * | 2018-11-29 | 2023-08-23 | 에스케이하이닉스 주식회사 | 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법 |
| US11237902B2 (en) * | 2019-03-15 | 2022-02-01 | Innogrit Technologies Co., Ltd. | Systems and methods for an ECC architecture with memory mapping |
| GB2582638B (en) * | 2019-03-29 | 2021-10-06 | Kigen Uk Ltd | An apparatus, method and computer program for managing memory page updates within non-volatile memory |
| US11663139B2 (en) * | 2019-04-22 | 2023-05-30 | SK Hynix Inc. | Apparatus for transmitting map information in memory system |
| JP7358279B2 (ja) * | 2020-03-18 | 2023-10-10 | キオクシア株式会社 | メモリシステム |
| KR20210143387A (ko) * | 2020-05-20 | 2021-11-29 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 |
| KR102756399B1 (ko) | 2021-12-21 | 2025-01-16 | 양쯔 메모리 테크놀로지스 씨오., 엘티디. | 메모리 디바이스의 조각 모음을 위한 시스템 및 방법 |
| KR20230094565A (ko) * | 2021-12-21 | 2023-06-28 | 에스케이하이닉스 주식회사 | 복수의 서브 회로들의 상태를 기초로 활성화 모드 또는 저전력 모드로 동작하는 컨트롤러 및 그 방법 |
| US11947818B2 (en) * | 2022-04-20 | 2024-04-02 | Silicon Motion, Inc. | Method for accessing flash memory module and associated flash memory controller and electronic device |
| CN115617266A (zh) | 2022-10-11 | 2023-01-17 | 星宸科技股份有限公司 | 电子装置及其操作方法 |
| TWI829394B (zh) * | 2022-10-17 | 2024-01-11 | 大陸商星宸科技股份有限公司 | 電子裝置及其操作方法 |
| US12366959B2 (en) * | 2023-04-14 | 2025-07-22 | Micron Technology, Inc. | Data compression for mapping tables |
| US20250117321A1 (en) * | 2023-10-06 | 2025-04-10 | Micron Technology, Inc. | Compression-based address mapping management in a memory system |
| US12332815B1 (en) | 2024-03-15 | 2025-06-17 | SanDisk Technologies, Inc. | Dynamically assigning compression priority to cached entries in storage devices |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140281146A1 (en) * | 2013-03-15 | 2014-09-18 | Western Digital Technologies, Inc. | Compression and formatting of data for data storage systems |
| TWI516931B (zh) * | 2011-10-05 | 2016-01-11 | Lsi公司 | 用於非揮發儲存之自我記錄及階層一致性 |
| US20170024127A1 (en) * | 2015-07-24 | 2017-01-26 | Sandisk Technologies Inc. | Optimistic read operation |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6360213B1 (en) * | 1997-10-14 | 2002-03-19 | International Business Machines Corporation | System and method for continuously adaptive indexes |
| US7162669B2 (en) * | 2003-06-10 | 2007-01-09 | Hewlett-Packard Development Company, L.P. | Apparatus and method for compressing redundancy information for embedded memories, including cache memories, of integrated circuits |
| US8959280B2 (en) * | 2008-06-18 | 2015-02-17 | Super Talent Technology, Corp. | Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear |
| CN102436421B (zh) * | 2010-09-29 | 2015-12-16 | 腾讯科技(深圳)有限公司 | 缓存数据的方法 |
| US9229876B2 (en) * | 2013-12-17 | 2016-01-05 | Sandisk Technologies Inc. | Method and system for dynamic compression of address tables in a memory |
| US10255004B2 (en) | 2015-11-16 | 2019-04-09 | Marvell World Trade Ltd. | Systems and methods for managing address-mapping data in memory devices |
| US20170177497A1 (en) | 2015-12-21 | 2017-06-22 | Qualcomm Incorporated | Compressed caching of a logical-to-physical address table for nand-type flash memory |
| US9946462B1 (en) * | 2016-02-15 | 2018-04-17 | Seagate Technology Llc | Address mapping table compression |
-
2017
- 2017-12-20 KR KR1020170176578A patent/KR20190074886A/ko not_active Withdrawn
-
2018
- 2018-08-02 TW TW107126841A patent/TWI783017B/zh active
- 2018-08-06 US US16/055,737 patent/US10831652B2/en active Active
- 2018-08-30 CN CN201811004599.0A patent/CN109947361B/zh active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI516931B (zh) * | 2011-10-05 | 2016-01-11 | Lsi公司 | 用於非揮發儲存之自我記錄及階層一致性 |
| US20140281146A1 (en) * | 2013-03-15 | 2014-09-18 | Western Digital Technologies, Inc. | Compression and formatting of data for data storage systems |
| US20170024127A1 (en) * | 2015-07-24 | 2017-01-26 | Sandisk Technologies Inc. | Optimistic read operation |
Also Published As
| Publication number | Publication date |
|---|---|
| CN109947361B (zh) | 2022-09-16 |
| KR20190074886A (ko) | 2019-06-28 |
| CN109947361A (zh) | 2019-06-28 |
| US20190188127A1 (en) | 2019-06-20 |
| US10831652B2 (en) | 2020-11-10 |
| TW201928686A (zh) | 2019-07-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI783017B (zh) | 記憶體系統及其操作方法 | |
| US11334448B2 (en) | Memory system and operating method thereof | |
| US11194520B2 (en) | Memory system and operating method thereof | |
| CN109992537B (zh) | 存储系统及其操作方法 | |
| CN109783397B (zh) | 存储器系统及其操作方法 | |
| TWI765044B (zh) | 記憶體系統及其操作方法 | |
| CN109697024B (zh) | 存储器系统及其操作方法 | |
| CN110489360B (zh) | 存储器控制器及该存储器控制器的操作方法 | |
| US20200310675A1 (en) | Memory system and method of operating the same | |
| CN109933467B (zh) | 存储器系统及其操作方法 | |
| CN109902031B (zh) | 存储系统及其操作方法 | |
| US10942675B2 (en) | Memory system and operating method thereof |