TWI787438B - 系統資料壓縮和重建方法及系統 - Google Patents
系統資料壓縮和重建方法及系統 Download PDFInfo
- Publication number
- TWI787438B TWI787438B TW108102533A TW108102533A TWI787438B TW I787438 B TWI787438 B TW I787438B TW 108102533 A TW108102533 A TW 108102533A TW 108102533 A TW108102533 A TW 108102533A TW I787438 B TWI787438 B TW I787438B
- Authority
- TW
- Taiwan
- Prior art keywords
- content
- elements
- pattern
- system data
- information
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3066—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction by means of a mask or a bit-map
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Read Only Memory (AREA)
Abstract
提供一種用於壓縮和重建系統資料的方法和系統。記憶體系統的控制
器包括搜尋包括複數個元素的系統資料陣列的模式並且基於該模式來壓縮系統資料陣列的壓縮部件。系統資料陣列包括複數個元素之中的對應於第一模式的鄰近元素。經壓縮的系統資料包括:第一資訊,包括指示第一內容的第一位元;第二資訊,包括第一位元圖,該第一位元圖的每個位元指示相應元素是否是第一模式的鄰近元素之中的第一元素。
Description
本揭示內容的實施例關於一種處理用於記憶體系統的系統資料的方案。
電腦環境範例已經變為可在任何時間和任何地點使用的普適計算系統。因此,諸如行動電話、數位相機和筆記型電腦的便攜式電子裝置的使用已經快速增長。這些便攜式電子裝置通常使用具有記憶體裝置的記憶體系統,即資料儲存裝置。資料儲存裝置作為便攜式電子裝置的主記憶體裝置或輔助記憶體裝置。
使用記憶體裝置的記憶體系統因不具有行動部件而提供優良的穩定性、耐用性、高資訊存取速度以及低功耗。具有這種優點的記憶體系統的示例包括通用序列匯流排(USB)記憶體裝置、諸如通用快閃記憶體儲存(UFS)的具有各種介面的記憶卡以及固態硬碟(SSD)。記憶體系統使用各種系統資料。
本發明的各方面包括系統資料壓縮和重建方法以及記憶體系統。
在一個方面,一種記憶體系統包括記憶體裝置和控制器。控制器包括搜尋包括複數個元素的系統資料陣列的模式並基於該模式來壓縮系統資料陣列的壓縮部件。控制器控制記憶體裝置以將經壓縮的系統資料儲存在記憶體裝置中。系統資料陣列包括複數個元素之中的對應於第一模式的鄰近元素。經壓縮的系統資料包括:第一資訊,包括指示第一內容的第一位元;第二資訊,包括第一位元圖,該第一位元圖的每個位元指示相應元素是否是第一模式的鄰近元素之中的第一元素。
在另一方面,一種記憶體系統包括記憶體裝置和控制器,該記憶體裝置用於儲存包括第一和第二資訊的經壓縮的系統資料。控制器載入經壓縮的系統資料,並且基於第一和第二資訊來重建載入的經壓縮的系統資料以產生系統資料陣列。系統資料陣列包括複數個元素之中的對應於第一模式的鄰近元素。第一資訊包括指示第一內容的第一位元。第二資訊包括第一位元圖,該第一位元圖的每個位元指示相應元素是否是第一模式的鄰近元素之中的第一元素。
在又一方面,一種操作包括記憶體裝置和控制器的記憶體系統的方法。該方法包括:搜尋包括複數個元素的系統資料陣列的模式;根據模式來壓縮系統資料陣列;並且將經壓縮的系統資料儲存在記憶體裝置中。系統資料陣列包括複數個元素之中的對應於第一模式的鄰近元素。經壓縮的系統資料包括:第一資訊,包括指示第一內容的第一位元;第二資訊,包括第一位元
圖,該第一位元圖的每個位元指示相應元素是否是第一模式的鄰近元素之中的第一元素。
在又一方面,一種操作包括記憶體裝置和控制器的記憶體系統的方法。該方法包括:從記憶體裝置中載入包括第一和第二資訊的經壓縮的系統資料;基於第一和第二資訊來重建載入的經壓縮的系統資料以產生系統資料陣列。系統資料陣列包括複數個元素之中的對應於第一模式的鄰近元素。第一資訊包括指示第一內容的第一位元。第二資訊包括第一位元圖,該第一位元圖的每個位元指示相應元素是否是第一模式的鄰近元素之中的第一元素。
從以下描述中,本發明另外的方面將變得顯而易見。
相關申請案的交叉引用:
本申請案請求於2018年1月24日提交的申請號為62/621,405的美國臨時申請案的權益,該申請案的全部內容透過引用併入本文。
5:主機系統
10:記憶體系統
100:控制器
110:儲存裝置
110A:儲存裝置
110B:儲存裝置
120:控制部件
130:錯誤校正碼部件
140:主機介面
150:記憶體介面
160:匯流排
200:記憶體裝置
200A~200D:快閃記憶體晶片
210:記憶體單元陣列
211:記憶體區塊
220:控制電路
221:單元串
230:電壓產生電路
240:列解碼器
250:頁面緩衝器陣列
251:頁面緩衝器
260:行解碼器
270:輸入/輸出電路
510:壓縮部件
512:初始化部件
514:搜尋部件
516:壓縮組件
520:重建部件
700:系統資料
705:第四資訊
710:第二資訊
720:第一資訊
730:第三資訊
740:第五資訊
1100:搜尋過程
1102:步驟
1104:步驟
1106:步驟
1108:步驟
1110:步驟
1112:步驟
1114:步驟
1116:步驟
1118:步驟
1120:步驟
1122:步驟
1200:壓縮過程
1202~1230:步驟
1300:重建過程
1302~1326:步驟
ADDR:位址
BL0~BLm-1:位元線
CMD:命令
CSL:公共源極線
CTRL:控制信號
DATA:資料
DSL:汲極選擇線
DST:汲極選擇電晶體
i~(i+11):元素索引
PWR:電力
MC0~MCn-1:記憶體單元電晶體
PB:頁面緩衝器
SDA:系統資料陣列
SSL:源極選擇線
SST:源極選擇電晶體
SVP:相同值模式
WL0~WLn-1:字元線
圖1是示出根據本發明的實施例的記憶體系統的方塊圖。
圖2是示出根據本發明的實施例的記憶體系統的方塊圖。
圖3是示出根據本發明的實施例的記憶體系統的記憶體裝置的記憶體區塊的電路圖。
圖4A和圖4B是示出根據本發明的實施例的資料處理系統的示圖。
圖5是示出根據本發明的實施例的記憶體系統的示圖。
圖6是示出根據本發明的實施例的壓縮部件的示圖。
圖7A和圖7B是示出根據本發明的實施例的經壓縮的系統資料的示圖。
圖8A和圖8B是示出系統資料陣列的示例的示圖。
圖9A和圖9B是示出根據本發明的實施例的經壓縮的系統資料的示例的示圖。
圖10A和圖10B是示出系統資料陣列的複雜資料結構的示圖。
圖11是示出根據本發明的實施例的系統資料的模式搜尋過程的流程圖。
圖12是示出根據本發明的實施例的系統資料的壓縮過程的流程圖。
圖13是示出根據本發明的實施例的系統資料的重建過程的流程圖。
圖14A至圖14C是示出系統資料陣列的複雜資料結構的示例的示圖。
圖15A和圖15B是示出系統資料陣列的複雜資料結構的另一示例的示圖。
圖15C是示出根據本發明的實施例的經壓縮的系統資料的示例的示圖。
圖16A是示出系統資料陣列的複雜資料結構的示例的示圖。
圖16B是示出根據本發明的實施例的經壓縮的系統資料的示例的示圖。
以下參照圖式更詳細地描述各個實施例。然而,本發明可以不同形式實施,並且不應被解釋為限於本文闡述的實施例。相反地,提供這些實施例以使本揭示內容徹底且充分,並且將本發明的範圍全面地傳達給本領域的技術人員。此外,本文中對「一個實施例」、「另一實施例」等的參考不一定僅針對一個實施例,並且對任一這種短語的不同參考不一定針對相同的實施例。在整個本揭示內容中,相同的元件符號在本發明的圖式和實施例中表示相同的部件。
本發明可以多種方式實施,包括作為進程;設備;系統;體現在電腦可讀儲存介質上的電腦程式產品;和/或處理器,諸如適於執行儲存在耦
接到處理器的記憶體上的指令和/或由耦接到處理器的記憶體提供的指令的處理器。在本說明書中,這些實施方式或本發明可能採取的任何其它形式可被稱為技術。通常,所揭示進程的步驟的順序可在本發明的範圍內改變。除非另有說明,否則被描述為適於執行任務的諸如處理器或者記憶體的部件可被實施為暫時配置成在給定時間執行任務的一般部件或被製造為執行任務的特定部件。如本文所使用的,術語「處理器」等指適於處理諸如電腦程式指令的資料的一個或複數個裝置、電路和/或處理核心。
下面提供了本發明的實施例的詳細描述以及示出本發明各方面的圖式。結合這些實施例描述本發明,但是本發明不限於任何實施例。本發明的範圍僅由申請專利範圍限定。本發明包括處於申請專利範圍內的許多替換、修改和等同物。為了提供對本發明的全面理解,在下面的描述中闡述了許多具體細節。為了示例的目的提供這些細節,並且可在沒有一些或所有這些具體細節的情況下,根據申請專利範圍實施本發明。為了清晰目的,沒有詳細描述與本發明相關的技術領域中習知的技術內容,以免不必要地模糊本發明。
圖1是示出根據本發明的實施例的記憶體系統10的方塊圖。
參照圖1,記憶體系統10可包括記憶體控制器100和半導體記憶體裝置200,該半導體記憶體裝置200可代表多於一個這種裝置。半導體記憶體裝置200可以是快閃記憶體裝置,特別是NAND型快閃記憶體裝置。
記憶體控制器100可控制半導體記憶體裝置200的全部操作。
半導體記憶體裝置200可在記憶體控制器100的控制下執行一個或複數個擦除操作、編程操作和讀取操作。半導體記憶體裝置200可透過輸入/輸出(I/O)線接收命令CMD、位址ADDR和資料DATA。半導體記憶體裝置
200可透過電源線接收電力PWR,並且透過控制線接收控制信號CTRL。控制信號CTRL可包括命令鎖存啟用(CLE)信號、位址鎖存啟用(ALE)信號、晶片啟用(CE)信號、寫入啟用(WE)信號、讀取啟用(RE)信號等。
記憶體控制器100和半導體記憶體裝置200可被集成在諸如固態硬碟(SSD)的單個半導體裝置中。SSD可包括用於在其中儲存資料的儲存裝置。當以SSD使用半導體記憶體系統10時,耦接到記憶體系統10的主機(未示出)的操作速度可顯著提升。
記憶體控制器100和半導體記憶體裝置200可被集成在諸如記憶卡的單個半導體裝置中。例如,記憶體控制器100和半導體記憶體裝置200可被集成以形成:個人電腦記憶卡國際協會(PCMCIA)的PC卡、標準快閃記憶體(compact flash,CF)卡、智慧媒體(SM)卡、記憶棒、多媒體卡(MMC)、縮小尺寸的多媒體卡(RS-MMC)、微型版本的MMC(微型MMC)、安全數位(SD)卡、迷你安全數位(迷你SD)卡、微型安全數位(微型SD)卡、高容量安全數位卡(SDHC)和/或通用快閃記憶體儲存(UFS)。
在另一實施例中,記憶體系統10可被提供為諸如以下的電子裝置中的各種部件之一:電腦、超行動PC(UMPC)、工作站、小筆電、個人數位助理(PDA)、便攜式電腦、網路平板PC、無線電話、行動電話、智慧型手機、電子書閱讀器、便攜式多媒體播放器(PMP)、便攜式遊戲裝置、導航裝置、黑盒子、數位相機、數位多媒體廣播(DMB)播放器、三維電視、智慧電視、數位音訊記錄器、數位音訊播放器、數位圖片記錄器、數位圖片播放器、數位視訊記錄器、數位視訊播放器、資料中心的儲存裝置、能夠在無線環
境中接收和發送資訊的裝置、射頻識別(RFID)裝置、以及家用網路的電子裝置之一、電腦網路的電子裝置之一、遠端資訊處理網路的電子裝置之一、或計算系統的各種組件之一。
圖2是示出根據本發明的實施例的記憶體系統的詳細方塊圖。例如,圖2的記憶體系統可描述圖1所示的記憶體系統10。
參照圖2,記憶體系統10可包括記憶體控制器100和半導體記憶體裝置200。記憶體系統10可回應於來自主機裝置的請求而操作,並且特別地,儲存待由主機裝置存取的資料。
主機裝置可利用各種電子裝置中的任意一種來實施。在一些實施例中,主機裝置可包括諸如以下的電子裝置:桌上型電腦、工作站、三維(3D)電視、智慧電視、數位音訊記錄器、數位音訊播放器、數位圖片記錄器、數位圖片播放器、和/或數位視訊記錄器以及數位視訊播放器。在一些實施例中,主機裝置可包括諸如以下的便攜式電子裝置:行動電話、智慧型手機、電子書、MP3播放器、便攜式多媒體播放器(PMP)和/或便攜式遊戲機。
記憶體裝置200可儲存待由主機裝置存取的資料。
記憶體裝置200可利用諸如動態隨機存取記憶體(DRAM)和/或靜態隨機存取記憶體(SRAM)的揮發性記憶體裝置或諸如唯讀記憶體(ROM)、掩模ROM(MROM)、可編程ROM(PROM)、可擦除可編程ROM(EPROM)、電可擦除可編程ROM(EEPROM)、鐵電隨機存取記憶體(FRAM)、相變RAM(PRAM)、磁阻RAM(MRAM)和/或電阻式RAM(RRAM)的非揮發性記憶體裝置來實施。
控制器100可控制資料在記憶體裝置200中的儲存。例如,控制器100可回應於來自主機裝置的請求來控制記憶體裝置200。控制器100可將從記憶體裝置200讀取的資料提供給主機裝置,並且可將從主機裝置提供的資料儲存到記憶體裝置200中。
控制器100可包括透過匯流排160耦接的儲存裝置110、可被實施為諸如中央處理單元(CPU)的處理器的控制部件120、錯誤校正碼(ECC)部件130、主機介面(I/F)140和記憶體介面(I/F)150。
儲存裝置110可作為記憶體系統10和控制器100的工作記憶體,並且儲存用於驅動記憶體系統10和控制器100的資料。當控制器100控制記憶體裝置200的操作時,儲存裝置110可儲存由控制器100和記憶體裝置200用於諸如讀取操作、寫入操作、編程操作和擦除操作的操作的資料。
儲存裝置110可利用諸如靜態隨機存取記憶體(SRAM)或動態隨機存取記憶體(DRAM)的揮發性記憶體來實施。如上所述,儲存裝置110可將由主機裝置使用的資料儲存在記憶體裝置200中,以用於讀取操作和寫入操作。為了儲存資料,儲存裝置110可包括程式記憶體、資料記憶體、寫入緩衝器、讀取緩衝器、映射緩衝器等。
控制部件120可控制記憶體系統10的一般操作,以及回應於來自主機裝置的寫入請求或讀取請求來控制針對記憶體裝置200的寫入操作或讀取操作。控制部件120可驅動被稱為快閃記憶體轉換層(flash translation layer,FTL)的韌體以控制記憶體系統10的一般操作。例如,FTL可執行諸如邏輯到物理(logical-to-physical,L2P)映射、損耗均衡、垃圾收集和/或壞區塊處理的操作。L2P映射亦可稱為邏輯區塊定址(logical block addressing,LBA)。
在讀取操作期間,ECC部件130可檢測並校正從記憶體裝置200讀取的資料中的錯誤。當錯誤位元的數量大於或等於可校正錯誤位元的閾值數量時,ECC部件130可不校正錯誤位元,而是可輸出指示校正錯誤位元失敗的錯誤校正失敗信號。
在一些實施例中,ECC部件130可基於諸如以下的編碼調製來執行錯誤校正操作:低密度同位檢查(LDPC)碼、博斯-查德胡里-霍昆格姆(BCH)碼、渦輪(turbo)碼、渦輪乘積碼(TPC)、里德-所羅門(RS)碼、卷積碼、遞迴系統碼(RSC)、網格編碼調製(TCM)以及分組編碼調製(BCM)。這樣,ECC部件130可包括用於適當的錯誤校正操作的所有電路、系統或裝置。
主機介面140可透過諸如以下的各種介面協定中的一種或多種與主機裝置通訊:通用序列匯流排(USB)、多媒體卡(MMC)、高速周邊元件互連(PCI-e)、小型電腦系統介面(SCSI)、序列式SCSI(SAS)、序列先進技術附件(SATA)、平行先進技術附件(PATA)、增強型小型磁碟介面(ESDI)、整合裝置電路(IDE)以及高速非揮發性記憶體(NVMe)。
記憶體介面150可提供控制器100和記憶體裝置200之間的介面連接,以允許控制器100回應於來自主機裝置的請求來控制記憶體裝置200。記憶體介面150可在CPU 120的控制下產生用於記憶體裝置200的控制信號並處理資料。當記憶體裝置200是諸如NAND快閃記憶體的快閃記憶體時,記憶體介面150可在CPU 120的控制下產生用於記憶體的控制信號並處理資料。
記憶體裝置200可包括記憶體單元陣列210、控制電路220、電壓產生電路230、列解碼器240、可為頁面緩衝器陣列形式的頁面緩衝器250、
行解碼器260和輸入/輸出電路270。記憶體單元陣列210可包括可儲存資料的複數個記憶體區塊211。電壓產生電路230、列解碼器240、頁面緩衝器陣列250、行解碼器260和輸入/輸出電路270可形成用於記憶體單元陣列210的周邊電路。周邊電路可執行記憶體單元陣列210的編程操作、讀取操作或擦除操作。控制電路220可控制周邊電路。
電壓產生電路230可產生各種位準的操作電壓。例如,在擦除操作中,電壓產生電路230可產生各種位準的操作電壓,諸如擦除電壓和通過電壓。
列解碼器240可與電壓產生電路230和複數個記憶體區塊211電通訊。列解碼器240可回應於由控制電路220產生的列位址RADD而在複數個記憶體區塊211中選擇至少一個記憶體區塊,並將從電壓產生電路230供應的操作電壓傳輸到所選擇的記憶體區塊。
頁面緩衝器250可透過位元線BL與記憶體單元陣列210電通訊(如圖3所示)。回應於由控制電路220產生的頁面緩衝器控制信號,頁面緩衝器250可利用正電壓對位元線BL進行預充電,在編程操作和讀取操作中向所選擇的記憶體區塊傳輸資料和從所選擇的記憶體區塊接收資料,或者臨時儲存傳輸的資料。
行解碼器260可向頁面緩衝器250傳輸資料和從頁面緩衝器250接收資料,或者與輸入/輸出電路270交換資料。
輸入/輸出電路270可將從外部裝置(例如,記憶體控制器100)接收的命令和位址傳輸到控制電路220,將來自外部裝置的資料傳輸到行
解碼器260,或者透過輸入/輸出電路270將資料從行解碼器260輸出到外部裝置。
控制電路220可回應於命令和位址來控制周邊電路。
圖3是示出根據本發明的實施例的半導體記憶體裝置的記憶體區塊的電路圖。例如,圖3的記憶體區塊可以是圖2所示的記憶體單元陣列210的記憶體區塊211中的任意一個。
參照圖3,示例性記憶體區塊211可包括耦接到列解碼器240的複數個字元線WL0~WLn-1、汲極選擇線DSL和源極選擇線SSL。這些線可平行佈置,其中複數個字元線處於DSL與SSL之間。
示例性記憶體區塊211可進一步包括分別耦接到位元線BL0~BLm-1的複數個單元串221。每行的單元串可包括一個或複數個汲極選擇電晶體DST和一個或複數個源極選擇電晶體SST。在所示實施例中,每一個單元串具有一個DST和一個SST。在單元串中,複數個記憶體單元或記憶體單元電晶體MC0~MCn-1可串聯耦接在選擇電晶體DST和SST之間。記憶體單元中的每一個可被形成為儲存1位元資料的單層單元(SLC)。記憶體單元中的每一個可被形成為儲存2位元資料的多層單元(MLC)。記憶體單元中的每一個可被形成為儲存3位元資料的三層單元(TLC)。記憶體單元中的每一個可被形成為儲存4位元資料的四層單元(QLC)。
每一個單元串中的SST的源極可耦接到公共源極線CSL,並且每一個DST的汲極可耦接到對應的位元線。單元串中的SST的閘極可耦接到SSL,並且單元串中的DST的閘極可耦接到DSL。跨越單元串的記憶體單元的閘極可耦接到各自的字元線。也就是說,記憶體單元MC0的閘極耦接到對應
的字元線WL0,記憶體單元MC1的閘極耦接到對應的字元線WL1等。耦接到特定字元線的記憶體單元組可被稱為物理頁面。因此,記憶體區塊211中的物理頁面的數量可對應於字元線的數量。
頁面緩衝器陣列250可包括耦接到位元線BL0~BLm-1的複數個頁面緩衝器251。頁面緩衝器251可回應於頁面緩衝器控制信號進行操作。例如,在讀取或驗證操作期間,頁面緩衝器251可臨時儲存透過位元線BL0~BLm-1接收的資料,或者感測位元線的電壓或電流。
在一些實施例中,記憶體區塊211可包括NAND型快閃記憶體單元。然而,記憶體區塊211不限於這種單元類型,而是可包括NOR型快閃記憶體單元。記憶體單元陣列210可被實施為混合快閃記憶體或1-NAND快閃記憶體,其中在混合快閃記憶體中組合了兩種或更多種類型的記憶體單元,在1-NAND快閃記憶體中控制器被嵌入在記憶體晶片內部。
圖4A和圖4B是示出根據本發明的實施例的資料處理系統的示圖。
參照圖4A,資料處理系統可包括主機系統5和記憶體系統10。記憶體系統10可包括控制器100和記憶體裝置200。在各個實施例中,記憶體系統10可以是諸如通用快閃記憶體儲存(UFS)的記憶卡的快閃記憶體型儲存裝置以及固態硬碟(SSD)。
記憶體裝置200可包括複數個快閃記憶體晶片200A~200D。控制器100可包括儲存裝置110A、控制部件120、主機介面邏輯140和快閃記憶體介面邏輯150。儲存裝置110A、控制部件120、主機介面邏輯140和快閃記憶體介面邏輯150可利用系統單晶片(SoC)來實施。儲存裝置110A可利用嵌
入式隨機存取記憶體(RAM)來實施。控制部件120可利用微處理器(μP)來實施。控制部件120可包括通常在其上運行的韌體(firmware,FW)。進一步地,控制器100可包括圖2中示出但圖4A和圖4B中未示出的其它元件。可在系統單晶片(SoC)上實施儲存裝置110A、控制部件120、主機介面邏輯140和快閃記憶體介面邏輯150。
參照圖4B,資料處理系統可包括主機系統5和記憶體系統10。如圖4A所示,記憶體系統10可包括控制器100和記憶體裝置200。
控制器100可包括儲存裝置110B、控制部件120、主機介面邏輯140和快閃記憶體介面邏輯150。可在系統單晶片(SoC)上實施控制部件120、主機介面邏輯140和快閃記憶體介面邏輯150。儲存裝置110B可由外部隨機存取記憶體(RAM)來實施。控制部件120可利用微處理器(μP)來實施。控制部件120可包括通常在其上運行的韌體(FW)。進一步地,控制器100可包括圖2中示出但圖4A和圖4B中未示出的其它元件。
在圖4A和圖4B中,FW的功能之一是透過將來自主機系統5的請求(即,主機請求)轉變成內部快閃記憶體操作來滿足這些請求。FW對邏輯區塊進行讀取和寫入,並將它們轉換為對記憶體裝置200的物理區塊和物理頁面的低位準讀取、編程和擦除命令。而且,FW應當防止記憶體裝置200的快閃記憶體晶片內的可靠性問題,例如,有限數量的擦除編程週期和讀取/寫入干擾。
為了提供快閃記憶體型儲存裝置10的所需功能,FW執行特定的內部過程。而且,FW必須產生一些特定的內部資料,例如系統資料(system data,SD)。例如,系統資料可包括一組計數器(例如,擦除和讀取
計數器)和位址轉換表,其中計數器用於在裝置壽命期間控制快閃記憶體晶片的物理狀態,並且位址轉換表用於管理對快閃記憶體晶片中儲存的資料的物理存取。因此,系統資料可被表示為一組條目,其中由FW針對特定所需功能來使用每一個條目。
FW將系統資料記錄到快閃記憶體晶片本身,以在斷電後重建正確的裝置狀態。同時,為了提供快閃記憶體型快閃記憶體裝置的高級性能,FW必須將系統資料快取在可用的RAM(110A或110B)中。較佳地,如果所有系統資料都可儲存在RAM(110A或110B)中,則可實現最高性能。由於硬體負擔限制和/或快閃記憶體晶片的超大容量,不可能總是使用具有相應容量的RAM(110A或110B)。因此,FW必須週期性地從快閃記憶體晶片載入系統資料,這顯著地降低裝置性能。為了將更多的系統資料條目儲存在RAM(110A或110B)中,可無損地壓縮系統資料。在這種情況下,可透過減少對快閃記憶體晶片的內部存取次數來提高性能。
存在用於記憶體系統的許多資料壓縮演算法。它們的實施目標不同並且取決於待壓縮的資料類型。例如,可使用適當的壓縮演算法以用於提高系統性能、節能、增加儲存容量、降低失效率和頻寬:Sparsh Mittal,Jeffrey S.Vetter:「快取記憶體和主記憶體系統中的資料壓縮的結構方法綜述」,IEEE Trans.Parallel Distrib.Syst.27(5):1524-1536(2016)。而且,系統資料的性質確定了最適於實施的壓縮演算法。例如,如果系統資料包括少量的頻繁出現的不同值,則最好使用頻繁值壓縮(frequent value compression,FVC)演算法:J.Yang、Y.Zhang和R.Gupta「資料快取記憶體中的頻繁值壓縮」,Proc.Annu.IEEE/ACM Int.Symp.Microarchit.:第258-265頁(2000)。在SD條目
的元素之間的差異非常小的情況下,可應用某些類型的基本增量或模式型壓縮演算法:G.Pekhimenko、V.Seshadri、O.Mutlu、P.B.Gibbons、M.A.Kozuch和T.C.Mowry「基本增量即時壓縮:晶載快取記憶體的實際資料壓縮」,PACT:第377-388頁(2012);以及X.Chen、L.Yang、R.P.Dick、L.Shang和H.Lekatsas「C-pack:一種高性能微處理器快取壓縮演算法」,IEEE Transactions on VLSI Systems 18(8):第1196-1208頁(2010)。
在各個實施例中,提供了用於諸如NAND快閃記憶體型儲存裝置的記憶體系統的系統資料的可調壓縮方案。該壓縮方案可考慮經壓縮的資料元素之間的變量差異。壓縮方案可透過減少系統資料的大小來減少對快閃記憶體晶片的內部FW存取次數,並且使得整體系統性能提升。在不限制一般適用性的情況下,系統資料條目可被視為一些二進位制結構陣列或系統資料陣列(array of system data,SDA)。
在各個實施例中,SDA元素的狀態不僅取決於內部FW管理演算法,還取決於來自主機系統的命令(即,主機命令)的順序。如果主機系統的行為具有一些規律性(例如,依序讀取/寫入),則可在SDA元素中觀察到這種規律性。例如,主機系統依序地重寫記憶體裝置的整個容量,擦除計數器表包括彼此非常接近的值。換言之,任何兩個元素之間的差異不大於閾值(例如,1)。如果主機系統的行為是隨機的,則難以識別SDA元素之間的規律性。例如,如果主機系統使用記憶體裝置的整個容量來進行隨機讀取,則讀取計數器表包括隨機的整數值。
因此,可在SDA元素中觀察到一些模式,其中模式是與其鄰近元素存在一些關係的SDA元素的線性子集。例如,如果存在其中每一個元素
包括相同值的SDA元素的線性子集,則該線性子集形成相同值模式(same value pattern,SVP)並且鄰近元素之間的關係為相等。
在各個實施例中,模式基數(base of a pattern,BP)被定義為形成了某個模式的SDA元素的線性子集中的第一元素的內容。可使用來自模式的任何元素的BP以及元素之間的預定義關係來獲得任何元素的二進位制內容。
圖5是示出根據本發明的實施例的例如圖1、圖2、圖4A和圖4B的記憶體系統10的記憶體系統的示圖。
參照圖5,記憶體系統10可包括控制器100和記憶體裝置200。在各個實施例中,記憶體系統10可以是諸如通用快閃記憶體儲存(UFS)的記憶卡的快閃記憶體型儲存裝置以及固態硬碟(SSD)。記憶體裝置200可包括如圖4A和圖4B所示的複數個快閃記憶體晶片200A~200D,其中如圖4A和圖4B所示的複數個快閃記憶體晶片200A~200D可以是NAND型快閃記憶體晶片。
控制器100可包括儲存裝置110和控制部件120。控制部件120可包括壓縮部件510和重建部件520。控制部件120可利用微處理器(μP)來實施。控制部件120可包括通常在其上運行的韌體(FW)。進一步地,控制器100可包括圖2中示出但圖5中未示出的其它元件。
控制部件120可透過圖4A和圖4B的主機介面邏輯140從主機系統5接收系統資料陣列。控制部件120可使用壓縮部件510來壓縮系統資料陣列以產生經壓縮的系統資料。系統資料陣列可包括複數個元素。控制部件120可透過圖4A和圖4B的快閃記憶體介面邏輯150將經壓縮的系統資料傳輸
到記憶體裝置200。記憶體裝置200可將經壓縮的系統資料儲存在某個記憶體區域中。
控制部件120可從記憶體裝置200載入所儲存的經壓縮的系統資料。進一步地,控制部件120可將載入的經壓縮的系統資料儲存在儲存裝置110中。儲存裝置110可以是如圖4A和圖4B所示的嵌入式RAM 110A或外部RAM 110B。
壓縮部件510可接收系統資料陣列,搜尋系統資料陣列的模式,並且基於搜尋到的模式來壓縮系統資料陣列。
在各個實施例中,系統資料陣列包括複數個元素之中的對應於第一模式的鄰近元素。鄰近元素共同包括第一內容。
在各個實施例中,經壓縮的系統資料包括第一資訊和第二資訊。第一資訊包括指示第一內容的第一位元。第二資訊包括第一位元圖。第一位元圖中的每一位元指示相應元素是否是第一模式的鄰近元素之中的第一元素。
在各個實施例中,所有鄰近元素同樣地具有第一內容。可選地,鄰近元素的第一元素具有第一內容,鄰近元素的第二元素具有與第一內容不同的第二內容,第二元素與第一元素相鄰。
在各個實施例中,經壓縮的系統資料進一步包括第三資訊,第三資訊包括第二位元圖。第二位元圖的第一位元指示第一模式的長度。
在各個實施例中,系統資料陣列包括至少一個具有第二模式的其它元素。其它元素具有與第一內容不同的第二內容。其它元素插入在鄰近元
素之中的兩個相鄰元素之間。第一資訊進一步包括指示第二內容的第二位元。第二位元圖的第二位元指示第二模式的長度。
重建部件520可重建載入的經壓縮的系統資料。在各個實施例中,重建部件520可基於第一和第二資訊來重建載入的經壓縮的系統資料。
圖6是示出根據本發明的實施例的例如圖5的壓縮部件510的壓縮部件的示圖。
參照圖6,壓縮部件510可透過圖4A和圖4B的主機介面邏輯140從主機系統5接收系統資料陣列。壓縮部件510可壓縮系統資料陣列以產生經壓縮的系統資料。
壓縮部件510可包括初始化部件512、搜尋部件514和壓縮組件516。初始化部件512可執行根據本發明的實施例的壓縮方案的初始化過程。搜尋部件514可執行用於搜尋系統資料陣列的模式的搜尋過程。壓縮組件516可執行基於搜尋到的模式來壓縮系統資料陣列的壓縮過程。下面將描述初始化過程、搜尋過程和壓縮過程。
圖7A和圖7B是示出根據本發明的實施例的經壓縮的系統資料700的示圖。
參照圖7A,經壓縮的系統資料700可包括第一資訊720、第二資訊710和第三資訊730。第二資訊710可包括主位元圖。第一資訊720可包括基數陣列。第三資訊730可包括輔助位元圖。
參照圖7B,示出了經壓縮的系統資料700可進一步包括第四資訊705和第五資訊740。第四資訊705可包括主位元圖索引。第五資訊740可包括基數陣列和輔助位元圖索引。應當注意的是,已經添加的第四資訊705和
第五資訊740,即索引,僅僅用於簡化對壓縮演算法本身的理解和更好的可視化。換言之,索引可不被包括和儲存在經壓縮的系統資料700中。
下面將描述包括在經壓縮的系統資料700中的資訊710~750。
圖8A和圖8B是示出系統資料陣列(SDA)的示例的示圖。
參照圖8A,系統資料陣列可包括複數個元素和複數個元素索引i~(i+11)。對應於元素索引i和元素索引(i+1)的元素具有內容「j1」。對應於元素索引(i+10)和元素索引(i+11)的元素分別具有內容「j3」和「j4」。對應於元素索引(i+2)~(i+9)的元素各自具有內容「10」。換言之,複數個元素包括與元素索引(i+2)~(i+9)相對應的鄰近元素,其中該鄰近元素形成第一模式。鄰近元素共同包括第一內容「10」。第一模式可被定義為相同值模式(same value pattern,SVP)。
圖8A的模式(即,SVP)具有每一個都與其鄰近元素具有預定義關係的元素。該模式可被表示為兩個值:BP=10和模式長度L=8。相比於儲存整個模式,這種表示可能需要較少的記憶體(例如,RAM)資源。
圖9A和圖9B是示出根據本發明的實施例的經壓縮的系統資料的示例的示圖。圖9A的經壓縮的系統資料可對應於圖8A的系統資料陣列(即,SVP),並且圖9B的經壓縮的系統資料(即,兩個SVP或單個SP)可對應於圖8B的系統資料陣列。圖9A和圖9B的經壓縮的系統資料可由圖5和圖6的壓縮部件510產生。
參照圖9A,經壓縮的系統資料可包括作為第一資訊的基數陣列、作為第二資訊的主位元圖、作為第三資訊的輔助位元圖、作為第四資訊的主位元圖索引以及作為第五資訊的基數陣列和輔助位元圖索引。第一資訊
(即,基數陣列)可包括指示與圖8A中的索引(i+2)~(i+9)相對應的元素的內容的值「10」的位元。
第二資訊(即,主位元圖)可包括複數個位元,該複數個位元中的每一個指示相應元素是否是包括在模式SVP中的元素之中的第一元素。主位元圖的複數個位元的數量可對應於包括在模式SVP中的元素的數量。第二資訊的第一位元可包括具有值「0」的位元,值「0」指示相應元素是包括在模式SVP中的元素之中的第一元素。第二資訊的剩餘位元可具有值「1」,值「1」指示相應元素不是包括在模式SVP中的元素之中的第一元素。
第三資訊(即,輔助位元圖)可包括至少一個指示模式SVP的長度的位元。基於包括在系統資料陣列中的模式SVP的數量,輔助位元圖具有一個或複數個位元。因為模式SVP的數量為1,所以輔助位元圖具有一個位元。輔助位元圖的位元具有指示模式SVP是具有一個元素還是具有更多個元素的值。因為模式SVP具有對應於長度L=8的8個元素,所以輔助位元圖的位元具有值「1」。
第四資訊(即,主位元圖索引)可包括指示索引(i+2)~索引(i+9)的與主位元圖的位元相對應的位元。換言之,主位元圖索引中的每一個可對應於包括在模式SVP中的元素中的每一個。第五資訊(即,基數陣列和輔助位元圖索引)可包括指示基數陣列和輔助位元圖索引的一個或複數個位元。因為基數陣列和輔助位元圖索引的數量為1,所以第五資訊包括指示索引k的一個位元。
重新參照圖8B,系統資料陣列可包括複數個元素和複數個元素索引i~(i+11)。對應於元素索引i和元素索引(i+1)的元素具有內容
「j1」。對應於元素索引(i+10)和元素索引(i+11)的元素分別具有內容「j3」和「j4」。對應於元素索引(i+2)~(i+4)和元素索引(i+6)~(i+9)的元素具有內容「10」。對應於元素索引(i+5)的元素具有內容「20」。換言之,複數個元素包括對應於元素索引(i+2)~(i+4)的鄰近元素、對應於元素索引(i+6)~(i+9)的鄰近元素以及對應於元素索引(i+5)的元素,其中對應於元素索引(i+2)~(i+4)的鄰近元素形成第一模式,對應於元素索引(i+6)~(i+9)的鄰近元素形成第二模式,對應於元素索引(i+5)的元素形成第三模式。對應於元素索引(i+2)~(i+4)和元素索引(i+6)~(i+9)的鄰近元素共同包括第一內容「10」。第一和第二模式可被定義為可被插入而作為單個分割模式(split pattern,SP)的相同值模式(SVP)。第三模式可插入在第一模式和第二模式之間,並且可被定義為具有長度1的模式。
重新參照圖4A和圖4B,在處理來自主機系統5的命令期間,控制部件120將具有索引(i+5)的元素的二進位制內容改變為一些其它的二進位制內容。例如,如圖8B所示,控制部件120將具有索引(i+5)的元素的內容從10改變為20。
在圖8B中,具有索引(i+5)的元素與鄰近元素不具有相等的關係,因此它可被解釋為具有長度1的模式。因此,這種改變將圖8A的初始SVP分割成兩個SVP(其可被插入而作為單個分割模式(SP)),其中該兩個SVP包括具有從索引(i+2)~(i+4)的元素的第一SVP和具有從索引(i+6)~(i+9)的元素的第二SVP,它們具有相同的BP=10。換言之,具有索引(i+5)的元素與其鄰近元素沒有預定義的關係,而是作為具有長度等於1的模式。這種元素可被表示為兩個值:與元素內容相等的BP=20和L=1。
參照圖9B,經壓縮的系統資料可包括作為第一資訊的基數陣列、作為第二資訊的主位元圖、作為第三資訊的輔助位元圖、作為第四資訊的主位元圖索引以及作為第五資訊的基數陣列和輔助位元圖索引。第一資訊(即,基數陣列)可包括指示與圖8B中的索引(i+2)~(i+4)和索引(i+6)~(i+9)相對應的元素的內容的值「10」的位元和指示與圖8B中的索引(i+5)相對應的元素的內容的值「20」的位元。
第二資訊(即,主位元圖)可包括複數個位元。複數個位元中的每一個指示相應元素是否是包括在SP或者具有長度1的模式中的元素之中的第一元素。主位元圖的複數個位元的數量可對應於包括在SP或者具有長度1的模式中的元素的數量。第二資訊的第一位元可包括具有值「0」的位元,值「0」指示相應元素是包括在SP中的元素之中的第一元素。第二資訊的第二和第三位元可具有值「1」,值「1」指示相應元素不是包括在SP中的元素之中的第一元素。第二資訊的第四位元可包括具有值「0」的位元,值「0」指示相應元素是包括在具有長度1的模式中的元素之中的第一元素。第二資訊的從5至8的位元可具有值「1」,值「1」指示相應元素不是包括在SP中的元素之中的第一元素。
第三資訊(即,輔助位元圖)可包括指示模式的長度大於1時的情況的位元。基於包括在系統資料陣列中的模式的數量,輔助位元圖具有一個或複數個位元。因為模式SP的數量為1,所以輔助位元圖具有一個位元。因為具有長度1的模式的數量為1,所以輔助位元圖具有另一個位元。輔助位元圖的第一位元具有指示模式SP是具有一個元素還是更多個元素的值。因為模式SP具有大於1的與長度L=7相對應的7個元素,所以輔助位元圖的第一位
元具有值「1」。因為具有長度1的模式具有與長度L=1相對應的1個元素,所以輔助位元圖的第二位元具有值「0」。
第四資訊(即,主位元圖索引)可包括指示索引(i+2)~索引(i+9)的與主位元圖的位元相對應的位元。換言之,主位元圖索引中的每一個可對應於包括在模式SP或具有長度1的模式中的元素中的每一個。第五資訊(即,基數陣列和輔助位元圖索引)可包括指示基數陣列和輔助位元圖索引的一個或複數個位元。因為基數陣列和輔助位元圖索引的數量為1,所以第五資訊包括指示索引k的一個位元和指示索引(k+1)的另一個位元。
如圖9B所示,壓縮方案允許重建初始模式SVP的分割部分之間的關係。這使得針對初始模式SVP的分割部分中的每一個,僅儲存一個BP而非儲存所有的BP。經壓縮的資料具有三個資料結構:包括主位元圖和輔助位元圖的2個位元圖,以及1個基數陣列。
基數陣列包括針對每一個模式的所有BP,這包括具有L=1的模式的BP。主位元圖的大小等於SDA中元素的數量。每一個元素在主位元圖中具有自己的位元。如果該位元被設置為「1」,則相應元素屬某種模式。如果未設置該位元,即如果該位元被設置為「0」,則相應元素是新模式中的第一元素。
只有作為新模式的BP的元素在輔助位元圖中具有相應的位元。如果該位元被設置為「1」,則模式的長度大於閾值(即,1)。如果未設置該位元,即如果該位元被設置為「0」,則模式的長度等於閾值。
輔助位元圖使得僅儲存初始模式的一個BP而非儲存所有BP,即使初始模式已經透過具有L=1的模式而被分割成若干部分。可在沒有完全解
壓縮基數陣列和兩個提及位元圖的情況下,容易地重建任何經壓縮的SDA元素的內容。
重新參照圖5,為了提供特定的功能,控制部件120(即,FW)可使用特定的SDA。例如,控制部件120使用擦除計數器表來管理針對物理區塊的擦除-編程週期的數量。在該示例中,控制部件120將提及SDA的元素的所有位元解釋為整數。
然而,在另一示例中,如圖10A和圖10B所示,特定SDA的元素可以是包括32位元元素的複雜資料結構。在圖10A和圖10B中,複雜資料結構可包括包含位元0至位元27的位元字段和包含位元28至位元31的控制位元(或標誌)。位元字段可包括:包含位元25至位元27的位元字段1、包含位元20至位元24的位元字段2、包含位元11至位元19的位元字段3以及包含位元0至位元10的位元字段4。控制位元可包括位元28(即,標誌4)、位元29(即,標誌3)、位元30(即,標誌2)和位元31(即,標誌1)。
此外,FW對SDA的內容解釋可取決於SDA的控制位元的狀態,其中FW根據其內部演算法來管理SDA的控制位元。例如,如圖10A所示,如果未設置「標誌4」,則FW將從0至10的位元解釋為單個位元字段(「位元字段4」)。如圖10B所示,如果設置了「標誌4」,則FW將從0至10的位元解釋為兩個單獨的位元字段,即從6至10的位元的「位元字段4.1」和從0至5的位元的「位元字段4.2」。
由於SDA的複雜結構,FW工程師可考慮主機系統的行為和FW演算法的特徵來定義特定SDA中可能觀察到的模式。
如上所述,如果SDA具有圖10A或圖10B的結構,則可以是以下觀察到的模式,諸如相同值模式(SVP)和增量值模式(delta value pattern,DVP)。如圖10A所示,僅在未設置「標誌4」時,才可能在SDA中出現SVP。SVP的元素之間的關係可被定義為「相等」(參見圖8A)。如圖10B所示,僅在設置了「標誌4」時,才可能在SDA中出現DVP。這表示SDA的兩個鄰近元素之間的差異是恆定且已知的(定義為d)。DVP的元素之間的關係可被定義為「d-diff」(參見圖8B)。
重新參照圖6,對SDA的壓縮方案可包括三個步驟,該三個步驟包括:初始化部件512的初始化過程、搜尋部件514的搜尋過程和壓縮組件516的壓縮過程。在壓縮方案中,變量「SPcontent」用於儲存SP的SDA元素的內容,變量「i」用於透過SDA元素的迭代(iteration),變量「SPrelation」用於儲存SP的元素之間的關係類型(「相等」或「d-diff」)。
圖11是示出根據本發明的實施例的系統資料的模式搜尋過程1100的流程圖。搜尋過程1100可由圖6中的壓縮部件510的搜尋部件514來執行。可在L>1的情況下執行搜尋過程1100。如果不存在具有L>1的模式,則壓縮演算法無法運行並停止該演算法。
參照圖11,在步驟1102中,確定是否處理了系統資料陣列(SDA)。當確定未處理SDA時,可執行步驟1104。在步驟1104中,可設置圖7A和圖7B的主位元圖710中的第i位元。在步驟1106中,可將第i SDA元素的內容插入到基數陣列中。在步驟1108中,確定在第i SDA元素中是否設置了圖10A和圖10B的「標誌4」。當確定在第i SDA元素中設置了「標誌4」時,可執行步驟1110。否則,可執行步驟1112。在步驟1110中,可將SPrelation設置為「d-diff」。在步驟1112中,可將SPrelation設置為「相等」。
在步驟1114中,確定具有索引i和索引(i+1)的SDA元素是否處於SPrelation。當確定具有索引i和索引(i+1)的SDA元素處於SPrelation時,可執行步驟1120和步驟1122。否則,可執行步驟1116和步驟1118。
在步驟1116中,可將「0」插入到圖7A和圖7B的輔助位元圖730。在步驟1118中,可增加索引i。
在步驟1120中,可將「1」插入到輔助位元圖730。在步驟1122中,可將第i SDA元素的內容置入SPcontent。
應當注意的是,如果成功地完成了搜尋過程,則必須將此搜尋過程中的變量(i、SPrelation和SPcontent)的值用於壓縮過程。
圖12是示出根據本發明的實施例的系統資料的壓縮過程1200的流程圖。壓縮過程1200可由圖6中的壓縮部件510的壓縮組件516來執行。
參照圖12,在步驟1204中,確定是否處理了系統資料陣列(SDA)。當確定未處理SDA時,可執行步驟1206。在步驟1206中,確定第i SDA元素是否可透過SPrelation而與SPcontent具有關係。當確定第i SDA元
素可透過SPrelation而與SPcontent具有關係時,可執行步驟1208、步驟1210和步驟1202。否則,可執行步驟1212和步驟1214。
在步驟1208中,可將圖7A和圖7B的主位元圖710中的第i位元設置為「1」。在步驟1210中,可根據Sprelation來更新SPcontent。
在步驟1212中,可將主位元圖710中的第i位元設置為「0」。在步驟1214,可將第i SDA元素的內容插入到基數陣列中。
在步驟1216中,確定在第i SDA元素中是否設置了圖14A和圖15A的「標誌4」。當確定在第i SDA元素中設置了「標誌4」時,可執行步驟1218。否則,可執行步驟1220。在步驟1218中,可保存SPrelation的狀態並將其設置為「d-diff」。在步驟1220中,可保存SPrelation的狀態並將其設置為「相等」。
在步驟1222中,確定具有索引i和索引(i+1)的SDA元素是否處於SPrelation。當確定具有索引i和索引(i+1)的SDA元素處於SPrelation時,可依序地執行步驟1228、步驟1230和步驟1202。否則,可依序地執行步驟1224、步驟1226、步驟1210和步驟1202。
在步驟1224中,可將SPrelation回滾到保存的狀態。在步驟1226中,可將「0」插入到圖7A和圖7B的輔助位元圖730。在步驟1228中,可將第i SDA元素的內容置入SPcontent。在步驟1230中,可將「1」插入到輔助位元圖730。在步驟1202中,可增加索引i。
週期性地,在運行時,可由FW請求經壓縮的SDA的元素的內容。如圖13所示,透過使用初始SDA中的元素的偏移,可在沒有完全解壓縮的情況下容易地重建任何經壓縮的SDA元素的內容。換言之,將變量j用於透
過基數陣列和輔助位元圖的迭代。在完成上述壓縮演算法之後,該變量SPcontent包括所需SDA元素的內容。可以類似的方式完成經壓縮的SDA的解壓縮。
圖13是示出根據本發明的實施例的系統資料的重建過程1300的流程圖。重建過程1300可由圖5的重建部件520來執行。
參照圖13,在步驟1302中,可將變量i和k初始化為「0」。在步驟1304中,確定變量i是否可能需要SDA偏移。當確定變量i可能需要SDA偏移時,可執行步驟1306。否則,可執行步驟1324。
在步驟1306中,確定圖7A和圖7B的主位元圖710中的第i位元是否可被設置為「1」。當確定主位元圖710中的第i位元可被設置為「1」時,可執行步驟1314。否則,可執行步驟1308和步驟1312,或執行步驟1308、步驟1310和步驟1312。
在步驟1308中,確定圖7A和圖7B的輔助位元圖730中的第k位元是否可被設置為「1」。在步驟1310中,可將來自基數陣列的第k SDA元素的內容置入SPcontent。在步驟1312中,可增加索引k。
在步驟1314中,確定在第i SPcontent中是否設置了圖14A和圖15A的「標誌4」。當確定在第i SPcontent中設置了「標誌4」時,可執行步驟1316和步驟1320。否則,可執行步驟1318和步驟1320。在步驟1316中,可將SPrelation的狀態設置為「d-diff」。在步驟1318中,可將SPrelation的狀態設置為「相等」。
在步驟1320中,可根據Sprelation來更新SPcontent。在執行步驟1320之後,可執行步驟1322,然後可執行步驟1304。在步驟1322中,可增加索引i。
在步驟1324中,確定主位元圖710中的第i位元可被設置為「1」。當確定主位元圖710中的第i位元可被設置為「1」時,可結束重建過程1300。否則,在步驟1326中,可將來自基數陣列的第k SDA元素的內容置入SPcontent。
在各個實施例中,壓縮方案可用於壓縮行動NAND快閃記憶體型儲存裝置中的邏輯到物理位址轉換表(L2P)。在這種情況下,系統資料陣列(SDA)可以是L2P表的一段。由於行動產品中的RAM資源限制,韌體(FW)必須週期性地將L2P的段從記憶體裝置載入到快取記憶體中,例如從圖5中的記憶體裝置200載入到儲存裝置110中。可在圖4A、圖4B和圖5的控制部件120上運行FW。
任何L2P條目都是具有特定位元字段的複雜二進位制資料結構。例如,如圖14A所示,L2P條目的大小可以是16位元。
參照圖14A,如果設置了「有效位元」,則在處理L2P條目期間,FW將從0至11的位元解釋為對應於邏輯塊位址(LBA)的物理位址。對於圖4A或圖4B中的主機系統5的行為,可將典型的模式描述為:依序地寫入一些範圍的LBA,並且隨機地重寫該範圍中的一些LBA。假設L2P段的大小為16個條目,每一個條目的內容以HEX格式表示,FW使用第3超級區塊來依序寫入並且使用第4超級區塊來隨機寫入。在圖14B和圖14C中示出了該工作負載的L2P元素的狀態。
圖14B是示出例如L2P段的系統資料陣列的複雜資料結構的示例的示圖。
參照圖14B,L2P段可包括對應於LBA的16個元素。依序地寫入一些範圍的LBA。因此,16個元素的內容具有範圍從「0x1300」至「0x130F」的值。
在依序寫入之後,L2P段的所有元素都包括順序值,並且兩個鄰近條目之間的差異等於1。因此,在依序寫入之後,L2P段的元素形成具有BP=0x1300的增量值模式(DVP)。換言之,元素之間的關係為「1-diff」。
圖14C是示出例如L2P段的系統資料陣列的複雜資料結構的示例的示圖。
參照圖14C,L2P段可包括對應於LBA的16個元素。隨機重寫範圍從「0x1300」至「0x130F」的一些LBA(例如,索引3和索引4)。當圖4A或圖4B的主機系統5隨機重寫L2P段的一些LBA(例如,索引3和索引4)時,初始增量值模式被分割成兩個部分:第一部分具有範圍為從0至2的索引,第二部分具有範圍為從5至15的索引。
重新參照圖4A或圖4B,在處理如圖14A至圖14C所示的L2P段之後,主機系統5可針對圖14C的一些LBA發送修整命令。在處理這些命令期間,如圖15A所示,控制部件120(即,FW)可將經修整LBA的「有效位元」設置為零,並且將超級區塊擦除計數器值的值寫入預定義的位元字段(例如,從0至7的位元)。圖15A表示FW如何解釋經修整LBA的L2P元素。
圖15B示出了在處理修整命令之後的例如L2P段的結構的系統資料陣列的複雜資料結構。
參照圖15B,圖4A或圖4B的主機系統針對具有索引9和索引10的LBA發送修整命令。因為這些LBA已被寫入相同的超級區塊,所以擦除計數器值也將相同,例如索引7的值。
可以看出的是,這些修整命令將具有BP=0x1305和L=11(即,從索引5至索引15)的DVP分割開。此外,具有索引9和索引10的L2P條目形成具有BP=0x0307和L=2的SVP。元素9和元素10之間的關係為相等。
圖15C是示出根據本發明的實施例的經壓縮的系統資料的示例的示圖。例如,圖15C示出了圖15B的L2P段被壓縮。
參照圖15C,經壓縮的L2P段可包括主位元圖和相應的主位元圖索引,該主位元圖包括16個位元「0110011110101111」,相應的主位元圖索引範圍為從0至15。進一步地,經壓縮的L2P段可包括基數陣列的資訊,該資訊包括5個BP值「0x1300」、「0x14F1」、「0x1409」、「0x0307」和「0x130B」。此外,經壓縮的L2P段可包括輔助位元圖以及相應的基數陣列和輔助位元圖索引,該輔助位元圖包括5個位元「10011」,相應的基數陣列和輔助位元圖索引範圍為從0至4。可透過圖9A和圖9B中的壓縮方案來類似地確定包括在圖15C的經壓縮的L2P段中的資訊的值。
重新參照圖5,控制部件120(即,FW)可能需要具有索引10的L2P段的內容,如圖15B所示。如圖15C所示,控制部件120可從經壓縮的資料來重建資料。根據圖13的重建過程,重建部件520可讀取與主位元圖索引0~10相對應的主位元圖的11個位元。因此,迭代的總數量可以為11,如下面
的列表2至列表12。重建期間透過位元圖的迭代所使用的變量為i和k。變量i表示主位元圖,變量k表示輔助位元圖。根據下面的列表2至列表12來描述每次迭代的變量的值和動作(action)順序:
在以上列表2至列表12中,可透過列表2的迭代來重建圖15B和圖15C的元素內容「0x1300」。可透過列表3的迭代來重建圖15B和圖15C
的元素內容「0X1301」,並且可透過列表4的迭代來重建圖15B和圖15C的元素內容「0x1302」。可透過列表5的迭代並且從具有根據變量k的值的索引的基數陣列讀取元素來重建圖15B和圖15C的元素內容「0x14F1」,並且可透過列表6的迭代並且從具有根據變量k的值的索引的基數陣列讀取元素來重建圖15B和圖15C的元素內容「0x1409」。可透過列表12的迭代來重建圖15B和圖15C的元素內容「0x0307」。
當完成上述重建演算法時,變量SPrelation=0x0305包括LBA段中所需偏移的內容。可借助於該演算法來重建任何L2P段條目的內容。
提供以上詳細描述是為了說明和描述的目的。不旨在將本發明限制到精確的形式。可以修改壓縮演算法的參數以滿足特定要求。例如,如果在系統資料陣列(SDA)中所觀察到的模式的BP之間存在已知關係,則為了提高壓縮比,可增加對基數陣列的另外壓縮。可選地,如圖16A所示,如果整個SDA包括具有單個BP的非分割模式,則可考慮對主位元圖進行壓縮。
圖16A是示出系統資料陣列的複雜資料結構的示例的示圖,例如僅包括一個模式的L2P段的結構。圖16B是示出根據本發明的實施例的經壓縮的系統資料的示例的示圖。例如,圖16B示出了圖16A的L2P段被壓縮。
參照圖16A,L2P段可包括具有單個BP(即,「0x1000」)的非分割模式。換言之,具有索引0的元素至具有索引15的元素之中的鄰近元素,即相鄰的兩個元素具有線性關係。
參照圖16B,經壓縮的L2P段可包括主位元圖和相應的主位元圖索引,該主位元圖包括16個位元「0111111111111111」,相應的主位元圖索引範圍為從0至15。進一步地,經壓縮的L2P段可包括基數陣列的資訊,該
資訊僅包括一個BP值「0x1000」。此外,經壓縮的L2P段可包括輔助位元圖以及相應的基數陣列和輔助位元圖索引0,該輔助位元圖包括1個位元「1」。
從圖16B可以看出的是,如果SDA僅包括一個模式,則因為第一SDA元素為BP,所以除了總是等於0的第一位元之外,主位元圖的所有位元都等於1。換言之,主位元圖的第一位元等於0,並且主位元圖的所有其它位元等於1。這允許將主位元圖的大小減少到1個位元。可透過使用任何SDA元素的索引和儲存在基數陣列中的BP來重建該SDA元素的內容。
如前所述,本發明的實施例提供了一種用於可設置諸如NAND快閃記憶體型儲存裝置的記憶體系統的系統資料的可調壓縮方案。該壓縮方案可考慮經壓縮的資料元素之間的變量差異。該壓縮方案可透過減少系統資料的大小來減少對快閃記憶體晶片的內部韌體(FW)存取次數,並實現整體系統性能提升。
雖然為了清楚和理解的目的已經詳細示出和描述了前述實施例,但是本發明不限於所提供的細節。正如本領域技術人員根據前述公開內容將理解的那樣,存在許多實施本發明的可選方式。因此,所公開的實施例是說明性的,而非限制性的。本發明旨在涵蓋落入申請專利範圍內的所有修改和替換。
1100:搜尋過程
1102:步驟
1104:步驟
1106:步驟
1108:步驟
1110:步驟
1112:步驟
1114:步驟
1116:步驟
1118:步驟
1120:步驟
1122:步驟
Claims (20)
- 一種記憶體系統,包括:記憶體裝置;以及記憶體控制器,包括壓縮部件,所述壓縮部件識別包括複數個元素的系統資料陣列中一個或複數個模式並且基於所述被識別的一個或複數個模式,來壓縮所述系統資料陣列,所述複數個元素包括鄰近元素以及插入在鄰近元素之中的兩個相鄰元素之間的至少一個其它元素,所述一個或複數個模式包括第一模式以及第二模式,所述第一模式指示所述鄰近元素具有第一內容,所述第二模式指示所述其它元素具有與所述第一內容不同的第二內容,其中每一個所述第一模式和所述第二模式分別被壓縮,並且其中所述記憶體控制器控制所述記憶體裝置以將所述經壓縮的系統資料儲存在所述記憶體裝置中,其中所述系統資料陣列包括所述複數個元素之中的對應於所述第一模式的所述鄰近元素,並且其中所述經壓縮的系統資料包括:第一資訊,包括指示所述第一內容的第一位元,以及第二資訊,包括第一位元圖,所述第一位元圖的每個位元指示相應元素是否是所述第一模式的鄰近元素之中的第一元素。
- 如請求項1所述的記憶體系統,其中所有的所述鄰近元素同樣地具有所述第一內容。
- 如請求項1所述的記憶體系統,其中所述鄰近元素的第一元素具有所述第一內容,所述鄰近元素的第二元素具有與所述第一內容不同的第二內容,所述第二元素與所述第一元素相鄰。
- 如請求項1所述的記憶體系統,其中所述經壓縮的系統資料進一步包括:第三資訊,包括第二位元圖,所述第二位元圖的第一位元指示所述第一模式的長度。
- 如請求項4所述的記憶體系統,其中所述系統資料陣列包括具有所述第二模式的所述其它元素,所述其它元素具有與所述第一內容不同的第二內容,所述其它元素插入在所述鄰近元素之中的兩個相鄰元素之間,其中所述第一資訊進一步包括指示所述第二內容的第二位元,並且其中所述第二位元圖的第二位元指示所述第二模式的長度。
- 一種記憶體系統,包括:記憶體裝置,儲存包括第一資訊和第二資訊的經壓縮的系統資料;以及記憶體控制器,載入所述經壓縮的系統資料,並且基於所述第一資訊和所述第二資訊來重建所載入的經壓縮的系統資料以產生系統資料陣列,其中所述系統資料陣列包括對應於第一模式以及插入在鄰近元素之中的兩個相鄰元素之間的至少一個其它元素的鄰近元素,所述第一模式指示所述鄰近元素具有第一內容,所述第二模式指示所述 其它元素具有與所述第一內容不同的第二內容,其中每一個所述第一模式和所述第二模式分別被壓縮,其中所述第一資訊包括指示所述第一內容的第一位元,並且其中所述第二資訊包括第一位元圖,所述第一位元圖的每個位元指示相應元素是否是所述第一模式的鄰近元素之中的第一元素。
- 如請求項6所述的記憶體系統,其中所有的所述鄰近元素同樣地具有所述第一內容。
- 如請求項6所述的記憶體系統,其中所述鄰近元素的第一元素具有所述第一內容,所述鄰近元素的第二元素具有與所述第一內容不同的第二內容,所述第二元素與所述第一元素相鄰。
- 如請求項6所述的記憶體系統,其中所述經壓縮的系統資料進一步包括:第三資訊,包括第二位元圖,所述第二位元圖的第一位元指示所述第一模式的長度。
- 如請求項9所述的記憶體系統,其中所述系統資料陣列包括具有所述第二模式的所述其它元素,所述其它元素具有與所述第一內容不同的第二內容,所述其它元素插入在所述鄰近元素之中的兩個相鄰元素之間,其中所述第一資訊進一步包括指示所述第二內容的第二位元,並且其中所述第二位元圖的第二位元指示所述第二模式的長度。
- 一種操作記憶體系統的方法,所述記憶體系統包括記憶體裝置和記憶體控制器,所述方法包括: 識別包括複數個元素的系統資料陣列的一個或複數個模式,所述複數個元素包括鄰近元素以及插入在鄰近元素之中的兩個相鄰元素之間的至少一個其它元素,所述一個或複數個模式包括第一模式以及第二模式,所述第一模式指示所述鄰近元素具有第一內容,所述第二模式指示所述其它元素具有與所述第一內容不同的第二內容;基於所述被識別的一個或複數個模式來壓縮所述系統資料陣列,每一個所述第一模式和所述第二模式分別被壓縮;並且將經壓縮的系統資料儲存在所述記憶體裝置中,其中所述系統資料陣列包括所述複數個元素之中的對應於所述第一模式的所述鄰近元素,並且其中所述經壓縮的系統資料包括:第一資訊,包括指示所述第一內容的第一位元,以及第二資訊,包括第一位元圖,所述第一位元圖的每個位元指示相應元素是否是所述第一模式的鄰近元素之中的第一元素。
- 如請求項11所述的方法,其中所有的所述鄰近元素同樣地具有所述第一內容。
- 如請求項11所述的方法,其中所述鄰近元素的第一元素具有所述第一內容,所述鄰近元素的第二元素具有與所述第一內容不同的第二內容,所述第二元素與所述第一元素相鄰。
- 如請求項11所述的方法,其中所述經壓縮的系統資料進一步包括: 第三資訊,包括第二位元圖,所述第二位元圖的第一位元指示所述第一模式的長度。
- 如請求項14所述的方法,其中所述系統資料陣列包括具有所述第二模式的所述其它元素,所述其它元素具有與所述第一內容不同的所述第二內容,所述其它元素插入在所述鄰近元素之中的兩個相鄰元素之間,其中所述第一資訊進一步包括指示所述第二內容的第二位元,並且其中所述第二位元圖的第二位元指示所述第二模式的長度。
- 一種操作記憶體系統的方法,所述記憶體系統包括記憶體裝置和記憶體控制器,所述方法包括:從記憶體裝置載入包括第一資訊和第二資訊的經壓縮的系統資料;並且基於所述第一資訊和所述第二資訊來重建所載入的經壓縮的系統資料以產生系統資料陣列,其中所述系統資料陣列包括對應於第一模式以及插入在鄰近元素之中的兩個相鄰元素之間的至少一個其它元素的鄰近元素,所述第一模式指示所述鄰近元素具有第一內容,所述第二模式指示所述其它元素具有與所述第一內容不同的第二內容,其中每一個所述第一模式和所述第二模式分別被壓縮,其中所述第一資訊包括指示第一內容的第一位元,並且其中所述第二資訊包括第一位元圖,所述第一位元圖的每個位元指示相應元素是否是所述第一模式的鄰近元素之中的第一元素。
- 如請求項16所述的方法,其中所有的所述鄰近元素同樣地具有所述第一內容。
- 如請求項16所述的方法,其中所述鄰近元素的第一元素具有所述第一內容,所述鄰近元素的第二元素具有與所述第一內容不同的第二內容,所述第二元素與所述第一元素相鄰。
- 如請求項16所述的方法,其中所述經壓縮的系統資料進一步包括:第三資訊,包括第二位元圖,所述第二位元圖的第一位元指示所述第一模式的長度。
- 如請求項19所述的方法,其中所述系統資料陣列包括具有所述第二模式的所述其它元素,所述其它元素具有與所述第一內容不同的第二內容,所述其它元素插入在所述鄰近元素之中的兩個相鄰元素之間,其中所述第一資訊進一步包括指示所述第二內容的第二位元,並且其中所述第二位元圖的第二位元指示所述第二模式的長度。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862621405P | 2018-01-24 | 2018-01-24 | |
US62/621,405 | 2018-01-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201939285A TW201939285A (zh) | 2019-10-01 |
TWI787438B true TWI787438B (zh) | 2022-12-21 |
Family
ID=67298663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108102533A TWI787438B (zh) | 2018-01-24 | 2019-01-23 | 系統資料壓縮和重建方法及系統 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11093382B2 (zh) |
CN (1) | CN110069428B (zh) |
TW (1) | TWI787438B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030041211A1 (en) * | 2001-03-07 | 2003-02-27 | Merkey Jeffrey Vernon | Dual axis RAID systems for enhanced bandwidth and reliability |
TW200413928A (en) * | 2002-11-13 | 2004-08-01 | Sandisk Corp | Universal non-volatile memory card used with various different standard cards containing a memory controller |
US20080256281A1 (en) * | 2007-04-16 | 2008-10-16 | International Business Machines Corporation | System and method for providing an adapter for re-use of legacy dimms in a fully buffered memory environment |
US20100023682A1 (en) * | 2007-10-11 | 2010-01-28 | Super Talent Electronics Inc. | Flash-Memory System with Enhanced Smart-Storage Switch and Packed Meta-Data Cache for Mitigating Write Amplification by Delaying and Merging Writes until a Host Read |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100706242B1 (ko) | 2005-02-07 | 2007-04-11 | 삼성전자주식회사 | 메모리 시스템 및 그것의 런 단위 어드레스 매핑 테이블 구성 방법 |
US9678975B2 (en) * | 2013-03-15 | 2017-06-13 | International Business Machines Corporation | Reducing digest storage consumption in a data deduplication system |
US9244935B2 (en) * | 2013-06-14 | 2016-01-26 | International Business Machines Corporation | Data encoding and processing columnar data |
US9229876B2 (en) | 2013-12-17 | 2016-01-05 | Sandisk Technologies Inc. | Method and system for dynamic compression of address tables in a memory |
US20170177497A1 (en) | 2015-12-21 | 2017-06-22 | Qualcomm Incorporated | Compressed caching of a logical-to-physical address table for nand-type flash memory |
-
2019
- 2019-01-23 US US16/255,365 patent/US11093382B2/en active Active
- 2019-01-23 TW TW108102533A patent/TWI787438B/zh active
- 2019-01-24 CN CN201910070069.4A patent/CN110069428B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030041211A1 (en) * | 2001-03-07 | 2003-02-27 | Merkey Jeffrey Vernon | Dual axis RAID systems for enhanced bandwidth and reliability |
TW200413928A (en) * | 2002-11-13 | 2004-08-01 | Sandisk Corp | Universal non-volatile memory card used with various different standard cards containing a memory controller |
US20080256281A1 (en) * | 2007-04-16 | 2008-10-16 | International Business Machines Corporation | System and method for providing an adapter for re-use of legacy dimms in a fully buffered memory environment |
US20100023682A1 (en) * | 2007-10-11 | 2010-01-28 | Super Talent Electronics Inc. | Flash-Memory System with Enhanced Smart-Storage Switch and Packed Meta-Data Cache for Mitigating Write Amplification by Delaying and Merging Writes until a Host Read |
Also Published As
Publication number | Publication date |
---|---|
CN110069428A (zh) | 2019-07-30 |
US20190227924A1 (en) | 2019-07-25 |
US11093382B2 (en) | 2021-08-17 |
TW201939285A (zh) | 2019-10-01 |
CN110069428B (zh) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10535410B2 (en) | Hybrid read disturb count management | |
US10180805B2 (en) | Memory system and operating method thereof | |
US10884947B2 (en) | Methods and memory systems for address mapping | |
TWI696915B (zh) | 提高重建效率的記憶體系統和操作方法 | |
US20160124848A1 (en) | Memory system and memory management method thereof | |
CN107957959B (zh) | 具有文件级安全擦除的存储器系统及其操作方法 | |
US10007451B2 (en) | Scalable SPOR algorithm for flash memories | |
US11681554B2 (en) | Logical address distribution in multicore memory system | |
US20160335179A1 (en) | Data separation by delaying hot block garbage collection | |
US11003587B2 (en) | Memory system with configurable NAND to DRAM ratio and method of configuring and using such memory system | |
US10552048B2 (en) | Reduction of maximum latency using dynamic self-tuning for redundant array of independent disks | |
US10942678B2 (en) | Method of accessing data in storage device, method of managing data in storage device and storage device performing the same | |
US10896125B2 (en) | Garbage collection methods and memory systems for hybrid address mapping | |
US20190369880A1 (en) | Memory system and operating method thereof | |
US9946644B2 (en) | Memory system and operating method thereof | |
US11907571B2 (en) | Read threshold optimization systems and methods using domain transformation | |
US11650795B2 (en) | Raw read based physically unclonable function for flash memory | |
TWI787438B (zh) | 系統資料壓縮和重建方法及系統 | |
US11204839B2 (en) | Memory system with low-latency read recovery and method of operating the memory system | |
CN110941567B (zh) | 存储器控制器及其操作方法 | |
CN110275844B (zh) | 利用自适应阈值解码的存储器系统及其操作方法 | |
KR20220153863A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
US11520507B1 (en) | System and method for test precondition generation based on factory-formatted state of memory device | |
CN110047554B (zh) | 具有超级芯片删除恢复的存储器系统及其操作方法 | |
CN114253470A (zh) | 管理存储器系统的可靠性的主机、数据处理系统及其方法 |