[go: up one dir, main page]

TWI505091B - Adaptive compression data storing method for non-volatile memories and system using the same - Google Patents

Adaptive compression data storing method for non-volatile memories and system using the same Download PDF

Info

Publication number
TWI505091B
TWI505091B TW103131929A TW103131929A TWI505091B TW I505091 B TWI505091 B TW I505091B TW 103131929 A TW103131929 A TW 103131929A TW 103131929 A TW103131929 A TW 103131929A TW I505091 B TWI505091 B TW I505091B
Authority
TW
Taiwan
Prior art keywords
data
size
buffer
compressed
page
Prior art date
Application number
TW103131929A
Other languages
Chinese (zh)
Other versions
TW201612754A (en
Inventor
Jui Hui Hung
Ming Yi Chu
Original Assignee
Storart Technology Co Ltd
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 Storart Technology Co Ltd filed Critical Storart Technology Co Ltd
Priority to TW103131929A priority Critical patent/TWI505091B/en
Application granted granted Critical
Publication of TWI505091B publication Critical patent/TWI505091B/en
Publication of TW201612754A publication Critical patent/TW201612754A/en

Links

Landscapes

  • Memory System (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

用於非揮發性記憶體的自適應壓縮資料儲存方法 及使用該方法的系統Adaptive compressed data storage method for non-volatile memory And a system using the method

本發明關於一種自適應壓縮資料儲存方法及使用該方法的系統。特別是關於用於非揮發性記憶體,比如快閃記憶體的一種自適應壓縮資料儲存方法及使用該方法的系統。The present invention relates to an adaptive compressed data storage method and a system using the same. In particular, it relates to an adaptive compressed data storage method for non-volatile memory, such as flash memory, and a system using the same.

由於NAND型儲存單元的尺寸持續縮小並結合使用多層式儲存技術,非揮發性記憶體,比如NAND快閃記憶體固態硬碟,近來成為了消費電子設備和桌上電腦系統具吸引力的解決方案。然而,隨著快閃記憶體儲存單元的密度增加,其性能和可靠性可能顯著惡化。例如,以34nm製程製造的單層式儲存快閃記憶體允許每一區塊具有100,000次編程/擦除週期,而同樣以34nm製程製造的多層式儲存快閃記憶體僅支援每區塊5,000次的編程/擦除週期。多層式儲存快閃記憶體的效能也較單層式儲存快閃記憶體的效能慢了好幾倍。然而,當半導體製程進一步縮減,預計這些問題將會越來越嚴重。 其中一個有機會可以減輕這些問題的方法是使用硬體加速壓縮。Non-volatile memory, such as NAND flash memory solid-state drives, has recently become an attractive solution for consumer electronics and desktop systems due to the shrinking size of NAND-type memory cells combined with multi-layered storage technology. . However, as the density of flash memory storage units increases, their performance and reliability may deteriorate significantly. For example, a single-layer storage flash memory fabricated in a 34nm process allows 100,000 program/erase cycles per block, while a multi-layer memory flash memory that is also fabricated in a 34nm process supports only 5,000 blocks per block. Programming/erasing cycle. The performance of multi-layer storage flash memory is also several times slower than that of single-layer storage flash memory. However, as the semiconductor process shrinks further, these problems are expected to become more serious. One way to get rid of these problems is to use hardware to speed up compression.

因為使用快閃記憶體的固態硬碟壽命強烈地依賴於寫入固態硬碟的資料量,減少寫入到固態硬碟實際的資料量的資料壓縮,可以是一個改善固態硬碟使用壽命的有效解決方案。此外,如果壓縮作業能以一硬體加速單元操作,因為在I/O作業期間小量的資料實體傳輸於未壓縮的讀寫中,這也能改善固態硬碟的效能。使用資料壓縮於資料儲存的想法並不新穎,但已廣泛地被研究。例如,許多現有的檔案系統支援基於軟體的資料壓縮,以擴充儲存設備的有效容量。雖然基於軟體的壓縮方式可以有效改善固態硬碟的使用壽命,他們卻造成相當大的壓縮/解壓縮開銷費用。因此整體固態硬碟的效能明顯地惡化。因此,當儲存量是設計最重要的目的之一時,通常使用基於軟體的資料壓縮。Because the life of a solid-state hard disk using flash memory is strongly dependent on the amount of data written to the solid-state hard disk, reducing the amount of data written to the actual amount of data on the solid-state hard disk can be an effective way to improve the life of the solid-state hard disk. solution. In addition, if the compression operation can be operated with a hardware acceleration unit, this can improve the performance of the solid state hard disk because a small amount of data entities are transferred to the uncompressed read and write during the I/O operation. The idea of using data compression for data storage is not new, but has been extensively studied. For example, many existing file systems support software-based data compression to expand the effective capacity of storage devices. While software-based compression can effectively improve the life of solid state drives, they incur significant compression/decompression overhead costs. Therefore, the performance of the overall solid state hard disk is significantly deteriorated. Therefore, software-based data compression is often used when storage is one of the most important goals of the design.

資料壓縮指的是減少所需的儲存資料的空間或減少發送資料所需的時間,資料的大小由移除超額資訊而減少。資料壓縮的目的是以數位形式表達資訊來源,其位元數越少越好,而能滿足重建原始資訊的最低要求。只有精確地從壓縮版本重建原始資料是可行時,資料壓縮可以是無損失的。當該來源原始資料非常重要,以至於人們無法失去任何細節時,才使用這樣的無損失技術。這種來源資料的實例是醫學圖像、為法律上原因保存的文字和圖像、一些電腦的可 執行文件等。因為這些演算法不可逆地刪除資料的某些部分,壓縮演算法的另一個家族被稱為"損失性",僅原始資料的近似值可以被重建。近似重建可能是殷切需求的,因為它可以導致更有效的壓縮。然而,這通常需要視覺品質和計算複雜性之間的良好平衡。因為人類視覺和聽覺系統的運作,諸如多媒體圖像,視頻和音頻的資料藉由損失性壓縮技術,可輕易地被壓縮。損失性演算法達成比無損失演算法更加的壓縮效能。但損失性壓縮被限於音頻、圖像和視頻,其中某些損失是可以接受的。論就"無損失"或"損失性"壓縮技術二者孰優孰劣的問題是沒有意義的,因為每一者都有它的使用面,無損失壓縮技術也許長於某些情況,而損失性壓縮技術優於另一些情況。Data compression refers to reducing the space required to store data or reducing the time required to send data. The size of the data is reduced by removing excess information. The purpose of data compression is to express the source of information in digital form. The fewer the number of bits, the better, and the minimum requirements for reconstructing the original information. Data compression can be lossless only if it is feasible to accurately reconstruct the original data from the compressed version. This lossless technique is used when the source material is so important that people cannot lose any detail. Examples of such source materials are medical images, texts and images saved for legal reasons, and some computers. Execute files, etc. Because these algorithms irreversibly delete portions of the data, another family of compression algorithms is called "loss", and only the approximation of the original data can be reconstructed. Approximate reconstruction may be desirable because it can lead to more efficient compression. However, this usually requires a good balance between visual quality and computational complexity. Because of the operation of the human visual and auditory systems, materials such as multimedia images, video and audio can be easily compressed by lossy compression techniques. Loss algorithm achieves more compression performance than lossless algorithm. But lossy compression is limited to audio, images, and video, and some of the losses are acceptable. It is meaningless to talk about the advantages and disadvantages of "no loss" or "lossy" compression technology, because each has its use surface, lossless compression technology may be longer than some cases, and loss Compression technology is superior to other situations.

時下的一些無損失壓縮技術,它們大多是基於字典或機率及熵的方式。易言之,它們都試圖利用出現在資料中相同的字符/字符串的來實現壓縮。基於字典的壓縮技術,Lempel-Ziv方案分為兩個家族:由LZ77(LZ77、LZSS、LZH與LZB)導出的方案及由LZ78(LZ78、LZW與LZFG)導出的方案。Some of today's lossless compression techniques are mostly based on dictionary or probability and entropy. In other words, they all attempt to achieve compression using the same characters/strings that appear in the material. Based on dictionary-based compression techniques, the Lempel-Ziv scheme is divided into two families: the scheme derived from LZ77 (LZ77, LZSS, LZH and LZB) and the scheme derived from LZ78 (LZ78, LZW and LZFG).

硬體實現上的壓縮技術的一個很好的例子,由Sungjin Lee等人提出於名為"使用硬體加速壓縮改進固態硬碟效能與使用壽命"論文中,該論文出版於2011年11月的電機電子工程師學會消費性電子會報第57卷第4篇。請見第1圖,一 種固態硬碟架構1包含一直接記憶體存取控制器10、數個快閃記憶體匯流排控制器20,及一壓縮/解壓縮模組30。該直接記憶體存取控制器20接收來自一主機(未繪示)的命令並與主機內的一動態隨機存取記憶體彼此傳送資料。每一快閃記憶體匯流排控制器20執行數個快閃記憶體運作,包含讀、寫與擦除運作,並移動資料進出快閃記憶體晶片。A good example of compression techniques on hardware implementation, presented by Sungjin Lee et al. in a paper titled "Using Hardware Accelerated Compression to Improve the Performance and Longevity of Solid State Drives," the paper was published in November 2011. The Institute of Electrical and Electronics Engineers, Consumer Electronics, Vol. 57, No. 4. Please see Figure 1, one The solid state hard disk architecture 1 includes a direct memory access controller 10, a plurality of flash memory bus controllers 20, and a compression/decompression module 30. The direct memory access controller 20 receives commands from a host (not shown) and transmits data to and from a dynamic random access memory within the host. Each flash memory bus controller 20 performs a number of flash memory operations, including read, write and erase operations, and moves data into and out of the flash memory chip.

壓縮/解壓縮模組30實現於直接記憶體存取控制器10與快閃記憶體匯流排控制器20間。壓縮/解壓縮模組30的主要作用在個別執行對傳遞來自直接記憶體存取控制器10或快閃記憶體匯流排控制器20的資料之壓縮或解壓縮。壓縮/解壓縮模組30使用LZRW3演算法,屬於LZ77的演變型。它有四個硬體子模組:一移位暫存器21、一字典表22、一壓縮邏輯電路23,及一壓縮緩衝器24。移位暫存器21暫存用於壓縮要被測試的資料,字典表22包含以前看過重複樣式。壓縮邏輯電路23參照字典表22,轉換移位暫存器21中的資料為符號。壓縮的資料,一連串的符號,儲存於壓縮緩衝器24中且最終移至一快閃記憶體晶片中。The compression/decompression module 30 is implemented between the direct memory access controller 10 and the flash memory bus controller 20. The primary function of the compression/decompression module 30 is to perform compression or decompression of data transmitted from the direct memory access controller 10 or the flash memory bus controller 20 individually. The compression/decompression module 30 uses the LZRW3 algorithm and belongs to the evolution of the LZ77. It has four hardware sub-modules: a shift register 21, a dictionary table 22, a compression logic circuit 23, and a compression buffer 24. The shift register 21 is temporarily stored for compressing the material to be tested, and the dictionary table 22 contains the repeat pattern previously seen. The compression logic circuit 23 refers to the dictionary table 22, and converts the data in the shift register 21 into symbols. The compressed data, a series of symbols, is stored in compression buffer 24 and eventually moved into a flash memory chip.

壓縮/解壓縮模組30取得來自直接記憶體存取控制器10中一直接記憶體存取緩衝器11的資料直到移位暫存器21完全填滿,而該直接記憶體存取緩衝器11保有從主機發送的全部資料。壓縮邏輯電路23使用移位暫存器21中資料的首3位元組,創造一雜湊值,該首3位元組用作為字典表22的 字典索引。壓縮邏輯電路23接著檢查字典索引所指的資料登錄。如果對應資料登錄的首3位元組相當於移位暫存器21中的,就假定一個匹配的圖案被發現於字典表22中。當該壓縮邏輯電路23找到一匹配資料登錄,它會比較移位暫存器21中剩餘的位元組與資料登錄中的位元組,找出移位暫存器21與資料登錄間,資料的公共部分。這公共部分稱作資料片段。壓縮邏輯電路23由結合該字典索引與資料片段的長度,及數值為"1"的一壓縮旗,創造一符號。該壓縮旗指出是否該符號表示壓縮的資料或未壓縮的資料。該創造的符號接著寫入壓縮緩衝器24中。最後,整個資料片段由移位暫存器21中捨棄,新的資料由直接記憶體存取緩衝器11傳送到移位暫存器21中。The compression/decompression module 30 takes the data from a direct memory access buffer 11 in the direct memory access controller 10 until the shift register 21 is completely filled, and the direct memory access buffer 11 Keep all the data sent from the host. The compression logic circuit 23 uses the first 3 bytes of the data in the shift register 21 to create a hash value which is used as the dictionary table 22. Dictionary index. The compression logic circuit 23 then checks the data entry indicated by the dictionary index. If the first 3 bytes of the corresponding material registration are equivalent to those in the shift register 21, it is assumed that a matching pattern is found in the dictionary table 22. When the compression logic circuit 23 finds a matching data registration, it compares the remaining byte groups in the shift register 21 with the byte groups in the data registration, and finds the data between the shift register 21 and the data login. The public part. This public part is called a piece of data. The compression logic circuit 23 creates a symbol by combining the dictionary index with the length of the data segment and a compression flag having a value of "1". The compression flag indicates whether the symbol represents compressed data or uncompressed data. The created symbol is then written to the compression buffer 24. Finally, the entire data segment is discarded by the shift register 21, and the new data is transferred from the direct memory access buffer 11 to the shift register 21.

如果未從字典表22中找到匹配的樣式,一符號僅為該資料的第一個位元組而創造。一9位元符號由增加1位元壓縮旗(其值為0)到移位暫存器21的第一位元組而創造。在該創造的符號寫入壓縮緩衝器24後,來自直接記憶體存取緩衝器11資料的一新的位元組接附於移位暫存器21的尾部,捨棄移位暫存器21的第一位元組。需要注意的是,當一個匹配的樣式不存在字典表22中時,雜湊值所指出資料登錄中的舊樣式由移位暫存器21中的新樣式所取代,以支援新發現的樣式。If a matching pattern is not found from the dictionary table 22, a symbol is created only for the first byte of the material. A 9-bit symbol is created by adding a 1-bit compression flag (which is a value of 0) to the first byte of the shift register 21. After the created symbol is written into the compression buffer 24, a new byte from the direct memory access buffer 11 is attached to the tail of the shift register 21, discarding the shift register 21. The first tuple. It should be noted that when a matching pattern does not exist in the dictionary table 22, the old pattern in the data entry indicated by the hash value is replaced by the new pattern in the shift register 21 to support the newly discovered pattern.

藉由固態硬碟架構1,寫入固態硬碟的資料描述於第2圖。第2圖顯示固態硬碟中連續的頁。這些填製斜線的 頁表示所有頁中的儲存單元都寫入了儲存的資料。關於那些部分填製斜線的頁,空白部分不含資料且技術上墊充"0"。斜線區與空白區的比例就是該頁儲存單元裡,含資料部分與未含資料部分的比例。不是所有的資料都能因其特性而被壓縮,第2圖是用於來說明的例子。從第2圖中,很明顯地,實體頁位址P11到P14儲存一未壓縮的資料。實體頁位址P15與P16儲存一壓縮的資料。實體頁位址P17與P18儲存另一壓縮的資料。事實上,頁中的空白不僅是儲存空間的浪費,也是減少固態硬碟使用壽命的原因。所有的壓縮演算法與應用該壓縮演算法的模組都具有前案所點出的相似缺點。因此,亟待能利用頁空白區的方法和應用該方法的系統。The data written to the solid state drive by the solid state hard disk architecture 1 is described in FIG. Figure 2 shows consecutive pages in a solid state drive. These are slashed The page indicates that the storage unit in all pages has been written with the stored data. For those pages that are partially filled with slashes, the blanks contain no data and are technically filled with "0". The ratio of the slash area to the blank area is the ratio of the data portion to the data portion not included in the storage unit of the page. Not all materials can be compressed due to their characteristics. Figure 2 is an example for illustration. From Fig. 2, it is apparent that the physical page addresses P11 to P14 store an uncompressed material. The physical page addresses P15 and P16 store a compressed data. The physical page addresses P17 and P18 store another compressed material. In fact, the blanks in the page are not only a waste of storage space, but also a reason to reduce the life of the solid state hard disk. All of the compression algorithms and the modules that apply the compression algorithm have similar disadvantages as the previous case. Therefore, there is a need for a method that can utilize a page blank area and a system to which the method is applied.

本段文字提取和編譯本發明的某些特點。其他特點將被揭露於後續段落中。其目的在涵蓋附加的申請專利範圍之精神和範圍中,各式的修改和類似的排列。This paragraph of text extracts and compiles certain features of the present invention. Other features will be revealed in subsequent paragraphs. The intention is to cover various modifications and similar arrangements in the spirit and scope of the appended claims.

本發明提供以解決壓縮資料儲存空間無法被利用的問題。進一步,非揮發性記憶體的使用壽命能延長。The present invention provides a solution to the problem that compressed data storage space cannot be utilized. Further, the service life of non-volatile memory can be extended.

依照本發明的一個態樣,揭露一種用於非揮發性記憶體的自適應壓縮資料儲存方法。該方法包含步驟:A.接收一第一資料,其中該第一資料的大小不大於在一非揮發性記憶體中的一頁的大小,連續接收的第一資料形成一原始資料,該原始資料需要儲存於該非揮發性記憶體中;B.如果該 第一資料的大小大於一預定大小,分割第一資料為至少二基本單元,其中至少一基本單元等於該預定大小;C.壓縮該基本單元或該第一資料;D.連接且墊充該壓縮的基本單元或該第一資料以形成一第二資料,以便該第二資料具有的大小為該預定大小的整數倍;E.儲存該第二資料於一緩衝器中;F.如果第二資料的數量為1且該原始資料並未完全被接收,重複步驟A到步驟E;G.搜尋至少二第二資料,該些第二資料能結合而具有該緩衝器中一頁的大小;H.於該緩衝器中結合該至少二第二資料為一第三資料,或如果該原始資料已完全被接收,墊充該第二資料或連接且墊充於該緩衝器中的該第二資料為一第三資料,其中該第三資料的大小與一頁相同;I.編程該第三資料到該非揮發性記憶體中的一特定頁;及J.如果原始資料並未完全被接收,執行步驟A。0被用作墊充的元素。In accordance with an aspect of the present invention, an adaptive compressed data storage method for non-volatile memory is disclosed. The method comprises the steps of: A. receiving a first data, wherein the size of the first data is not greater than a size of a page in a non-volatile memory, and the continuously received first data forms a raw material, the original data Need to be stored in the non-volatile memory; B. If The size of the first data is greater than a predetermined size, and the first data is divided into at least two basic units, wherein at least one basic unit is equal to the predetermined size; C. compressing the basic unit or the first data; D. connecting and padding the compression The basic unit or the first data to form a second data, so that the second data has a size that is an integer multiple of the predetermined size; E. stores the second data in a buffer; F. if the second data The number is 1 and the original data is not completely received. Steps A through E are repeated; G. searching for at least two second data, the second data being combined to have the size of one page in the buffer; H. Combining the at least two second data in the buffer as a third data, or if the original data has been completely received, padding the second data or the second data that is connected and padded in the buffer is a third data, wherein the third data has the same size as a page; I. programming the third data to a specific page in the non-volatile memory; and J. if the original data is not completely received, performing steps A. 0 is used as an element of pad filling.

依照本發明的構想,該自適應壓縮資料儲存方法,進一步包含一步驟I1於步驟I之後:I1.更新一映射表,該映射表儲存該特定頁的一實體頁位址與該原始資料的一邏輯位址之映射連結。該自適應壓縮資料儲存方法亦進一步包含一步驟H1於該步驟H與步驟I間:H1.如果該緩衝器已滿或實質已滿,且無第二資料的結合具有同一頁的大小,墊充具有該緩衝器中所有第二資料裏最大的第二資料為該第三資料,並編程該第三資料至該非揮發性記憶體中之一特定頁,其中0被用作墊充的元素。或者進一步包含一步驟H2於該步驟H與步驟 I間:H2.如果該緩衝器已滿或實質已滿,且無第二資料的結合具有同一頁的大小,墊充該緩衝器中所有第二資料裏暫存時間最久的第二資料為該第三資料,並編程該第三資料至該非揮發性記憶體中之一特定頁,其中0被用作墊充的元素。According to the concept of the present invention, the adaptive compressed data storage method further includes a step I1 after the step I: I1. updating a mapping table, where the mapping table stores a physical page address of the specific page and one of the original materials. The mapping of logical addresses. The adaptive compressed data storage method further includes a step H1 between the step H and the step I: H1. If the buffer is full or substantially full, and no combination of the second data has the same page size, the pad is filled. The second data having the largest of all the second data in the buffer is the third data, and the third data is programmed to a specific page of the non-volatile memory, wherein 0 is used as an element of the pad charge. Or further comprising a step H2 in the step H and the step I: H2. If the buffer is full or substantially full, and no combination of the second data has the same page size, the second data with the longest temporary storage time in all the second data in the buffer is The third data is programmed to the third page of the non-volatile memory, wherein 0 is used as the element of the pad charge.

依照本發明,一無損失壓縮演算法被用於步驟C以壓縮該第一資料或該基本單元。其中該無損失壓縮演算法為LZ77、LZSS、LZH、LZB、LZ78、LZW或LZFG。該非揮發性記憶體為NAND快閃記憶體或固態硬碟。一基本單元被壓縮以形成一壓縮的基本單元,或至少二基本單元被壓縮以形成一壓縮的基本單元。In accordance with the present invention, a lossless compression algorithm is used in step C to compress the first data or the base unit. The lossless compression algorithm is LZ77, LZSS, LZH, LZB, LZ78, LZW or LZFG. The non-volatile memory is a NAND flash memory or a solid state hard disk. A basic unit is compressed to form a compressed basic unit, or at least two basic units are compressed to form a compressed basic unit.

依照本發明的另一種態樣,一種用於非揮發性記憶體的自適應壓縮資料儲存系統,包含:一主機介面單元,用以與一主機溝通及接收來自該主機的第一資料,該些第一資料的尺寸不大於一非揮發性記憶體中一頁的尺寸,其中連續接收的第一資料形成一原始資料,該原始資料需要儲存於該非揮發性記憶體中;一資料壓縮器,電連接至該主機介面單元,如果該第一資料的大小大於一預定大小,用以分割每一第一資料為至少二基本單元及壓縮該基本單元,其中至少一基本單元等於該預定大小;一墊充單元,電連接至該資料壓縮器,用以連接且墊充該壓縮的基本單元以形成一第二資料,及如果該原始資料已完全被接收,墊充該第二資料或連接且墊充該第二資料為一第三資料;一緩衝器,電連接至墊 充單元與該非揮發性記憶體,用以暫時儲存該第二資料、當其已滿或實質已滿時取代一儲存的第二資料,及編程該第三資料至該非揮發性記憶體中的一特定頁;及一結合單元,電連接至該緩衝器,用以結合在該緩衝器中的至少二第二資料為一第三資料。如果該原始資料大小不大於該預定大小,該第一資料將不被分割但被壓縮及墊充為一頁的大小且編程至該非揮發性記憶體中。該第二資料具有的大小為該預定大小的整數倍。該第三資料的大小與一頁相同。0被用作墊充的元素。According to another aspect of the present invention, an adaptive compressed data storage system for non-volatile memory includes: a host interface unit for communicating with a host and receiving first data from the host, The size of the first data is not larger than the size of one page of the non-volatile memory, wherein the first data continuously received forms an original data, and the original data needs to be stored in the non-volatile memory; a data compressor, electricity Connecting to the host interface unit, if the size of the first data is greater than a predetermined size, dividing each first data into at least two basic units and compressing the basic unit, wherein at least one basic unit is equal to the predetermined size; a charging unit electrically connected to the data compressor for connecting and padding the compressed basic unit to form a second data, and if the original data has been completely received, the pad is filled with the second data or connected and padded The second data is a third data; a buffer is electrically connected to the pad The charging unit and the non-volatile memory are configured to temporarily store the second data, replace a stored second data when it is full or substantially full, and program the third data into one of the non-volatile memories a specific page; and a combining unit electrically connected to the buffer for combining at least two second data in the buffer as a third data. If the original data size is not greater than the predetermined size, the first data will not be split but compressed and padded to the size of one page and programmed into the non-volatile memory. The second material has a size that is an integer multiple of the predetermined size. The size of the third material is the same as one page. 0 is used as an element of pad filling.

依照本案構想,該自適應壓縮資料儲存系統,進一步包含一映射表單元,電連接至該緩衝器,用以儲存與更新一映射表,該映射表有特定頁的一實體頁位址與該原始資料的一邏輯位址之映射連結。如果該緩衝器已滿或實質已滿,且無第二資料的結合具有同一頁的大小,該墊充單元進一步墊充一第二資料為該第三資料,該被墊充的第二資料為該緩衝器中所有第二資料裏最大的。如果該緩衝器已滿或實質已滿,且無第二資料的結合具有同一頁的大小,該墊充單元進一步墊充一第二資料為該第三資料,該被墊充的第二資料為該緩衝器中所有第二資料裏暫存時間最久的。According to the concept of the present invention, the adaptive compressed data storage system further includes a mapping table unit electrically connected to the buffer for storing and updating a mapping table having a physical page address of the specific page and the original A mapping link of a logical address of the data. If the buffer is full or substantially full, and no combination of the second data has the same page size, the pad charging unit further pads a second data into the third data, and the padded second data is The largest of all the second data in the buffer. If the buffer is full or substantially full, and no combination of the second data has the same page size, the pad charging unit further pads a second data into the third data, and the padded second data is The second time of all the second data in the buffer is the longest.

1‧‧‧固態硬碟架構1‧‧‧ Solid State Drive Architecture

10‧‧‧直接記憶體存取控制器10‧‧‧Direct Memory Access Controller

11‧‧‧直接記憶體存取緩衝器11‧‧‧Direct memory access buffer

20‧‧‧快閃記憶體匯流排控制器20‧‧‧Flash memory bus controller

21‧‧‧移位暫存器21‧‧‧Shift register

22‧‧‧字典表22‧‧‧ dictionary table

23‧‧‧壓縮邏輯電路23‧‧‧Compressed logic circuit

24‧‧‧壓縮緩衝器24‧‧‧Compressed buffer

30‧‧‧壓縮/解壓縮模組30‧‧‧Compression/Decompression Module

100‧‧‧自適應壓縮資料儲存系統100‧‧‧Adaptive Compressed Data Storage System

101‧‧‧主機介面單元101‧‧‧Host interface unit

102‧‧‧資料壓縮器102‧‧‧Data Compressor

103‧‧‧墊充單元103‧‧‧ pads unit

104‧‧‧緩衝器104‧‧‧buffer

105‧‧‧結合單元105‧‧‧ combination unit

106‧‧‧映射表單元106‧‧‧ mapping table unit

110‧‧‧非揮發性記憶體110‧‧‧Non-volatile memory

200‧‧‧主機200‧‧‧Host

第1圖為一固態硬碟架構前案的方框圖。Figure 1 is a block diagram of a solid state drive architecture.

第2圖顯示該固態硬碟中連續的頁。Figure 2 shows consecutive pages in the solid state drive.

第3圖依照本發明,一自適應壓縮資料儲存系統實施例的方框圖。Figure 3 is a block diagram of an embodiment of an adaptive compressed data storage system in accordance with the present invention.

第4圖說明資料儲存於實施例的自適應壓縮資料儲存系統中。Figure 4 illustrates the storage of data in an adaptive compressed data storage system of an embodiment.

第5圖為依照本實施例,一自適應壓縮資料儲存方法實施例的流程圖。FIG. 5 is a flow chart of an embodiment of an adaptive compressed data storage method according to the embodiment.

第6圖說明資料儲存於另一實施例的自適應壓縮資料儲存系統中。Figure 6 illustrates the storage of data in an adaptive compressed data storage system of another embodiment.

本發明將藉由參照下列的實施例而更具體地描述。The invention will be more specifically described by reference to the following examples.

請參閱第3圖,該圖說明依照本發明,用於非揮發性記憶體的一種自適應壓縮資料儲存系統100。非揮發性記憶體,諸如NAND快閃記憶體,包含單層式儲存快閃記憶體、多層式儲存快閃記憶體,及三層式儲存快閃記憶體,皆適用於本發明。此外,模組化的非揮發性記憶體,例如固態硬碟、記憶卡與隨身碟,也可應用。然而,非揮發性記憶體(或模組)必須是以"頁"為單位進行編程。可以隨機存取的非揮發性記憶體,例如,電可擦除可編程唯讀記憶體,並不適用。為了說明方便,使用於本實施例的一非揮發性記憶體110是一 NAND快閃記憶體晶片。市場上有許多種類不同規格的的NAND快閃記憶體晶片,它們都可以被使用,無論其記憶容量與頁的大小。此處,本發明聚焦於非揮發性記憶體110中頁間的互動。正如人們所知,一頁常用的大小範圍由512B到4KB(僅計算資料區,不含備用區中的記憶容量)。為了更好地理解本發明,該頁大小為2KB。Referring to Figure 3, there is illustrated an adaptive compressed data storage system 100 for non-volatile memory in accordance with the present invention. Non-volatile memory, such as NAND flash memory, including single-layer storage flash memory, multi-layer storage flash memory, and three-layer storage flash memory, are suitable for use in the present invention. In addition, modular non-volatile memory such as solid state drives, memory cards and flash drives can also be used. However, non-volatile memory (or modules) must be programmed in "pages". Non-volatile memory that can be accessed randomly, such as electrically erasable programmable read-only memory, is not suitable. For convenience of explanation, a non-volatile memory 110 used in the embodiment is a NAND flash memory chip. There are many different types of NAND flash memory chips on the market that can be used regardless of their memory capacity and page size. Here, the present invention focuses on the interaction between pages in the non-volatile memory 110. As is known, a common page size ranges from 512B to 4KB (only the data area is calculated, and the memory capacity in the spare area is not included). For a better understanding of the invention, the page size is 2 KB.

自適應壓縮資料儲存系統100包含數個部分:一主機介面單元101、一資料壓縮器102、一墊充單元103、一緩衝器104、一結合單元105與一映射表單元106。主機介面單元101能與一主機200溝通並接收來自該主機200的第一資料。主機200是一台個人電腦的中央處理單元。它寫資料進入非揮發性記憶體110中,並讀取其中儲存的資料。實作上,主機200也可是一台獨立的電子設備,請求資料儲存,例如,一台筆記型電腦。主機介面單元101能被設計成具有適合於主機200的介面。在本實施例中,該介面可符合內部整合電路(I2C)規範。每一來自主機200的第一資料的大小不大於在非揮發性記憶體110中一頁的大小(2KB)。連續接收的第一資料形成一原始資料,該原始資料需要儲存於該非揮發性記憶體。原始資料,比如一影像檔,可能不會是2KB的整數倍。短的原始資料可能具有500B的資料長度,儲存需要佔一頁的容量。大的原始資料可能具有超過10MB的資料長度,且在分割為數頁大小已進行儲存後,最後一段資料短於2KB。前述的兩種原始資 料都適用於自適應壓縮資料儲存系統100。在本實施例中,具有6KB(3倍頁的大小)的一原始資料用來做說明。其它具不同資料長度的原始資料將在其它實施例中說明。在這種情況下,有3個原始資料的第一資料被接收,如第4圖所示。每一第一資料的大小為2KB。該原始資料的第一資料能在原始資料接收且分割後得到,一個第一資料接著另一個直到原始資料接收完畢,如此的方式也可以,這取決於主機介面單元101的設計,並不為本發明所限制。本實施例應用了後者。The adaptive compressed data storage system 100 includes a plurality of parts: a host interface unit 101, a data compressor 102, a pad charging unit 103, a buffer 104, a combining unit 105, and a mapping table unit 106. The host interface unit 101 can communicate with a host 200 and receive first data from the host 200. The host computer 200 is a central processing unit of a personal computer. It writes data into the non-volatile memory 110 and reads the data stored therein. In practice, the host 200 can also be a standalone electronic device that requests data storage, such as a notebook computer. The host interface unit 101 can be designed to have an interface suitable for the host 200. In this embodiment, the interface can conform to an internal integrated circuit (I2C) specification. The size of each of the first data from the host 200 is not greater than the size of one page (2 KB) in the non-volatile memory 110. The first data received continuously forms a raw material that needs to be stored in the non-volatile memory. The original data, such as an image file, may not be an integer multiple of 2KB. Short source data may have a data length of 500B, and storage needs to occupy one page of capacity. Large original data may have a data length of more than 10 MB, and after being divided into several pages, the last piece of data is shorter than 2 KB. The two kinds of original assets mentioned above The materials are all suitable for the adaptive compressed data storage system 100. In the present embodiment, an original material having 6 KB (the size of 3 pages) is used for explanation. Other sources of material having different data lengths will be described in other embodiments. In this case, the first data with 3 original materials is received, as shown in Figure 4. The size of each first material is 2KB. The first data of the original data can be obtained after the original data is received and divided, and the first data is followed by the other until the original data is received. This manner is also possible, depending on the design of the host interface unit 101, and is not The invention is limited. This embodiment applies the latter.

資料壓縮器102電連接至主機介面單元101。它分割每一第一資料為4個基本單元。每一基本單元劇有相同的大小。如第4圖所示,首先接收到的第一資料具有基本單元D1-1、D1-2、D1-3與D1-4。其次接收到的第一資料具有基本單元D2-1、D2-2、D2-3與D2-4。最後接收到的第一資料具有基本單元D3-1、D3-2、D3-3與D3-4。很明顯的所有的基本單元都是512B。512B設為預定大小。基於不同頁大小與一頁中基本單元的數量,預定大小是可變動的。依照本發明,第一資料中基本單元的數量不限於4個,它可以比4大或比4小,但如果第一資料的大小大於該預定大小,則需要至少二個。如此一來,至少一基本單元可等於該預定大小。然而,本實施例介紹的是理想狀況。如果原始資料的長度或原始資料的最後一部份(依序算來最後一筆第一資料)少於一頁,第一資料中僅一個基本單元會不大於該預定大小而其它基本單元都相同 於該預定大小。資料壓縮器102能壓縮基本單元。有許多用於資料壓縮的演算法可以使用。依照本案構想,無損失壓縮演算法最好用於壓縮基本單元。在本實施例中使用LZ77演算法。實作上,也可使用LZSS、LZH、LZB、LZ78、LZW或LZFG等無損失壓縮演算法。The data compressor 102 is electrically connected to the host interface unit 101. It divides each first data into 4 basic units. Each basic unit has the same size. As shown in FIG. 4, the first data received first has basic units D1-1, D1-2, D1-3, and D1-4. The first received data has basic units D2-1, D2-2, D2-3 and D2-4. The last received first data has basic units D3-1, D3-2, D3-3 and D3-4. It is obvious that all the basic units are 512B. 512B is set to a predetermined size. The predetermined size is variable based on the different page sizes and the number of basic units in a page. According to the present invention, the number of basic units in the first material is not limited to four, and it may be smaller than 4 or smaller than 4, but if the size of the first material is larger than the predetermined size, at least two are required. In this way, at least one basic unit can be equal to the predetermined size. However, this embodiment describes an ideal situation. If the length of the original data or the last part of the original data (the last data of the last data is counted) is less than one page, only one basic unit in the first data will be no larger than the predetermined size and the other basic units are the same. At the predetermined size. The data compressor 102 can compress the base unit. There are many algorithms for data compression that can be used. According to the present concept, the lossless compression algorithm is preferably used to compress the basic unit. The LZ77 algorithm is used in this embodiment. In practice, a lossless compression algorithm such as LZSS, LZH, LZB, LZ78, LZW or LZFG can also be used.

壓縮的結果說明如下。D1-1與D1-2是不可壓縮的。壓縮的基本單元C1-1與C1-2個別和D1-1與D1-2相同。基本單元D1-3與D1-4具有高壓縮比,因而,它們壓縮為另一個壓縮的基本單元C1-3。D2-1到D2-4是高度可壓縮,對應於基本單元D2-1與D2-2的壓縮的基本單元是C2-1,對應於基本單元D2-3與D2-4的壓縮的基本單元是C2-2。相同地,D3-1到D3-4也是高度可壓縮,對應於基本單元D3-1與D3-2的壓縮的基本單元是C3-1,對應於基本單元D3-3與D3-4的壓縮的基本單元是C3-2。The results of the compression are described below. D1-1 and D1-2 are incompressible. The compressed basic units C1-1 and C1-2 are the same as D1-1 and D1-2. The base units D1-3 and D1-4 have a high compression ratio, and thus they are compressed into another compressed base unit C1-3. D2-1 to D2-4 are highly compressible, the basic unit corresponding to the compression of the basic units D2-1 and D2-2 is C2-1, and the basic unit corresponding to the compression of the basic units D2-3 and D2-4 is C2-2. Similarly, D3-1 to D3-4 are also highly compressible, and the basic unit corresponding to the compression of the basic units D3-1 and D3-2 is C3-1, corresponding to the compression of the basic units D3-3 and D3-4. The basic unit is C3-2.

墊充單元103電連接至資料壓縮器102。它能連接且墊充該壓縮的基本單元,以形成一第二資料。第二資料具有預定大小整數倍的大小,例如,1KB或1.5KB。在極端的例子中,壓縮率是0。第二資料的大小能相同於一頁的大小。請再見第4圖,壓縮的基本單元C1-1、C1-2與C1-3相連接且以一墊充P1墊充(或接附)之。壓縮的基本單元C2-1與C2-2相連接且以一墊充P2墊充,壓縮的基本單元C3-1與C3-2相連接且以一墊充P3墊充。0被用作墊充的元素。這表示墊充P1、P2 與P3皆由0所組成。在上述的極端的例子中,墊充步驟仍進行,但沒有"0"接附到連接與壓縮的基本單元之後。壓縮的基本單元相同於對應之接收到的第一資料。這稱為第一墊充,如第4圖所示。The pad charging unit 103 is electrically connected to the data compressor 102. It can connect and pad the compressed basic unit to form a second material. The second material has a size that is an integer multiple of a predetermined size, for example, 1 KB or 1.5 KB. In the extreme case, the compression ratio is zero. The size of the second material can be the same as the size of one page. Please refer to FIG. 4 again, the compressed basic units C1-1, C1-2 are connected to C1-3 and filled (or attached) with a pad P1 pad. The compressed basic unit C2-1 is connected to C2-2 and charged with a pad P2 pad, and the compressed basic unit C3-1 is connected to C3-2 and charged with a pad P3 pad. 0 is used as an element of pad filling. This means pad charging P1, P2 Both P3 and P3 are composed of 0. In the extreme case described above, the pad charging step is still performed, but no "0" is attached to the base unit for connection and compression. The compressed basic unit is identical to the corresponding received first data. This is called the first pad charge, as shown in Figure 4.

墊充單元103能墊充第二資料,如果原始資料已完全被接收,連接且墊充第二資料為一第三資料。第二資料儲存於緩衝器104中。如第4圖所示,第二資料包含C1-1、C1-2、C1-3與P1(此後稱之為第二資料1)進一步以一墊充P1-2(P1-2都是"0")之。這稱作第二墊充,如第4圖所示。第三資料具有同一頁的大小,且能編程進入在非揮發性記憶體110中的一特定頁(B23P03)。這是儲存原始資料的最後階段。因為沒有第二資料可結合(詳述於後),緩衝器104中剩餘的第二資料將被墊充(或連接且墊充),並一次編程至一頁中。如果緩衝器104有一個以上的第二資料,只要其全部大小小於一頁的大小,它們就能被連接、墊充及編程。The pad charging unit 103 can pad the second data, and if the original data has been completely received, the second data is connected and padded as a third data. The second data is stored in the buffer 104. As shown in Fig. 4, the second data includes C1-1, C1-2, C1-3, and P1 (hereinafter referred to as the second data 1) and further fills P1-2 with a pad (P1-2 is "0" "). This is called the second pad charge, as shown in Figure 4. The third material has the same page size and can be programmed into a particular page (B23P03) in the non-volatile memory 110. This is the final stage of storing the original material. Since no second material can be combined (detailed later), the second data remaining in the buffer 104 will be padded (or connected and padded) and programmed into one page at a time. If the buffer 104 has more than one second material, they can be connected, padded, and programmed as long as their overall size is less than one page size.

緩衝器104電連接至墊充單元103與非揮發性記憶體110,它能暫時儲存第二資料。如果緩衝器104已滿或實質已滿時,它能以一個新的第二資料取代一個已儲存的第二資料。然而,這工作需要墊充單元103的協助。當緩衝器104已滿或實質已滿(例如剩餘空間不滿預定大小)且沒有第二資料的結合具有一頁的大小頁時,墊充單元103墊充一第二資料為一第三資料,該被墊充的第二資料是緩衝器104所有第二 資料最大的。被墊充的第二資料(第三資料)將被編程到非揮發性記憶體110中。在此刻,另一第二資料將被儲存到緩衝器104中。例如,如果緩衝器104設定為4KB(2頁大小),第二資料1與由C2-1、C2-2與P2(此後稱之為第二資料2)所組成的第二資料在結合後仍無一頁的大小,較大的第二資料1將由C3-1、C3-2與P3所組成的第二資料(此後稱之為第二資料3)所取代。從而,第二資料2與第二資料3能結合以達到一頁的大小頁。對此,有至少二個第二資料留存於緩衝器104中。新的第二資料可具有和編成的第二資料有不同的大小,至少二第二資料的結合(將詳述於後)能繼續下去。被取代的第二資料也能是緩衝器104所有第二資料中,暫存時間最久的。上述二個方法皆能解決緩衝器已滿的問題。The buffer 104 is electrically connected to the pad charging unit 103 and the non-volatile memory 110, which can temporarily store the second material. If the buffer 104 is full or substantially full, it can replace a stored second data with a new second data. However, this work requires the assistance of the pad charging unit 103. When the buffer 104 is full or substantially full (for example, the remaining space is not full of a predetermined size) and there is no combination of the second data having a page size page, the pad charging unit 103 pads a second data into a third data, The second data that is padded is the buffer 104 all second The largest information. The second material (third material) that is padded will be programmed into the non-volatile memory 110. At this point, another second data will be stored in the buffer 104. For example, if the buffer 104 is set to 4 KB (2 pages size), the second data 1 is still combined with the second data composed of C2-1, C2-2, and P2 (hereinafter referred to as second data 2). Without the size of one page, the larger second data 1 will be replaced by the second data consisting of C3-1, C3-2 and P3 (hereinafter referred to as second data 3). Thus, the second material 2 and the second material 3 can be combined to reach the size page of one page. In this regard, at least two second data are retained in the buffer 104. The new second material may have a different size than the second data compiled, and at least the combination of the second data (which will be detailed later) can continue. The second data that is replaced can also be the longest temporary storage time of all the second data of the buffer 104. Both of the above methods can solve the problem that the buffer is full.

緩衝器104的大小可以是預定大小的整數倍,它應該4倍大於該預定大小。緩衝器104的大小並未限定於本發明中,但最好是8倍於預定大小,以免接收二個第一資料但緩衝器104滿了。除了某些用作控制的邏輯電路,緩衝器104能包含一動態隨機存取記憶體或靜態隨機存取記憶體。動態隨機存取記憶體或靜態隨機存取記憶體常用於緩衝器中。進一步,緩衝器104能編程第三資料到非揮發性記憶體110的一特定頁中。當第三資料被編程到非揮發性記憶體110中時,一部分的原始資料被儲存了。The size of the buffer 104 may be an integer multiple of a predetermined size, which should be four times larger than the predetermined size. The size of the buffer 104 is not limited to the present invention, but is preferably eight times larger than the predetermined size to avoid receiving two first data but the buffer 104 is full. Buffer 104 can include a dynamic random access memory or static random access memory, in addition to some logic circuitry for control. Dynamic random access memory or static random access memory is often used in buffers. Further, the buffer 104 can program the third data into a particular page of the non-volatile memory 110. When the third material is programmed into the non-volatile memory 110, a portion of the original data is stored.

結合單元105電連接至緩衝器104,用來結合緩衝器104中至少二個第二資料為一第三資料。請見第4圖。當處理以墊充P2墊充的第二資料與以墊充P3墊充的第二資料,結合單元105找到緩衝器104裡的這兩個第二資料具有一頁的大小(4倍預定大小),該二個第二資料結合為第三資料並接著被編程到非揮發性記憶體110中。這結合可以是4個具有預定大小的第二資料,它也能是二個第二資料,一個為預定大小的三倍而另一個僅剛好一個預定大小。當然,如果一頁包含超過4個基本單元,結合的態樣就會多變化。The combining unit 105 is electrically connected to the buffer 104 for combining at least two second materials in the buffer 104 as a third data. Please see figure 4. When processing the second data charged by the pad P2 pad and the second material charged by the pad charging pad, the combining unit 105 finds that the two second materials in the buffer 104 have a size of one page (four times predetermined size) The two second data are combined into a third data and then programmed into the non-volatile memory 110. This combination may be four second materials having a predetermined size, which may also be two second materials, one being three times the predetermined size and the other being just exactly one predetermined size. Of course, if a page contains more than 4 basic units, the combined pattern will change.

應當注意的是如果第一資料的大小不大於該預定大小且沒有其他第二資料留存於緩衝器104中,接收的第一資料將不會被分割,但能被壓縮、墊充至一頁的大小及編程到非揮發性記憶體110中。這狀況僅發生於原始資料短於預定大小或接收到原始資料的最後一筆第一資料而緩衝器104中沒有第二資料。It should be noted that if the size of the first material is not greater than the predetermined size and no other second data remains in the buffer 104, the received first data will not be split, but can be compressed and padded to one page. Size and programming into non-volatile memory 110. This condition only occurs when the original data is shorter than the predetermined size or the last first data of the original data is received and the second data is not in the buffer 104.

映射表單元106電連接至緩衝器104,它儲存與更新一映射表,該映射表有特定頁的一實體頁位址與該原始資料的一邏輯位址之映射連結。請參照第4圖。如果要被儲存的影像檔(原始資料)的邏輯位址是在URL:e:\data\image.jpg,對應的實體頁位址會是B23P03(區塊23頁3)及B23P02(區塊23頁2)。更確切地說,原始資料的第一頁大小被壓縮及儲存於B23P03中,而其它部分儲存於B23P02中。一頁資料以此方 式儲存。對市場上現有具有其它壓縮演算法的裝置,因為沒有"結合步驟"來利用一頁中未被使用的空間,仍需要耗費三整頁的空間。映射表單元106可以是一電可擦除可編程唯讀記憶體或其它具有小於非揮發性記憶體110大小的快閃記憶體晶片。The mapping table unit 106 is electrically coupled to the buffer 104, which stores and updates a mapping table having a mapping of a physical page address of a particular page to a logical address of the original material. Please refer to Figure 4. If the logical address of the image file (original data) to be stored is at the URL:e:\data\image.jpg, the corresponding physical page address will be B23P03 (block 23, page 3) and B23P02 (block 23). Page 2). More specifically, the first page size of the original data is compressed and stored in the B23P03, while the other parts are stored in the B23P02. One page of information Storage. For devices with other compression algorithms available on the market, there is still a three-page space required because there is no "combination step" to take advantage of unused space on a page. The mapping table unit 106 can be an electrically erasable programmable read only memory or other flash memory chip having a size smaller than the non-volatile memory 110.

使用自適應壓縮資料儲存系統100之用於非揮發性記憶體的自適應壓縮資料儲存方法描述於第5圖的流程圖中。請同時見第5圖與第4圖。資料壓縮器102接收來自主機介面單元101的一第一資料(包含基本單元D1-1到D1-4,此後稱之為第一資料1)(S01)。在第一資料1後,一第一資料2(包含基本單元D2-1至D2-4)與一第一資料3(包含基本單元D3-1至D3-4)將依序被接收要注意第一資料1、第一資料2與第一資料3的大小相同於非揮發性記憶體110中一頁的大小,如上所述。連續接收的第一資料1、第一資料2與第一資料3形成一原始資料,該原始資料需要儲存於該非揮發性記憶體110。接著,如果第一資料的大小大於預定大小,512B,資料壓縮器102分割第一資料1為4個基本單元(S02)。在步驟S02中,至少需要二基本單元。資料壓縮器102也包含基本單元D1-1至D1-4(S03)。墊充單元103接手基本單元D1-1到D1-4,它連接及墊充壓縮的基本單元D1-1至D1-4以形成第二資料1,以便第二資料1具有預定大小的整數倍(S04)。接著,第二資料1儲存於緩衝器104中(S05)。用於說明,緩衝器104大小設為3KB。An adaptive compressed data storage method for non-volatile memory using adaptive compressed data storage system 100 is described in the flow chart of FIG. Please also see Figures 5 and 4. The data compressor 102 receives a first data (including the basic units D1-1 to D1-4, hereinafter referred to as the first material 1) from the host interface unit 101 (S01). After the first data 1, a first data 2 (including the basic units D2-1 to D2-4) and a first data 3 (including the basic units D3-1 to D3-4) will be received in order to be noted. The data 1, the first data 2 and the first data 3 are the same size as the one page of the non-volatile memory 110, as described above. The first data 1 and the first data 2 continuously received form a raw material, and the original data needs to be stored in the non-volatile memory 110. Next, if the size of the first material is larger than the predetermined size, 512B, the data compressor 102 divides the first material 1 into four basic units (S02). In step S02, at least two basic units are required. The data compressor 102 also includes basic units D1-1 to D1-4 (S03). The pad charging unit 103 takes over the basic units D1-1 to D1-4, which connect and pad the compressed basic units D1-1 to D1-4 to form the second material 1 so that the second material 1 has an integral multiple of a predetermined size ( S04). Next, the second material 1 is stored in the buffer 104 (S05). For illustration, the size of the buffer 104 is set to 3 KB.

如果第二資料的數目為1且原始資料並未完全被接收,重複步驟S01到S05(S06)。這意味著應有至少二第二資料可供結合單元105進行結合。在重複這些步驟後,獲得了第一資料2,也創造了第二資料2。下一步驟,搜尋至少二個第二資料,該些第二資料能由結合單元105,結合於緩衝器104中以具有一頁的大小(S07)。如果因為結合的第二資料1與第二資料2之大小超過頁而導致這不可行,應該要有其它的第二資料(第二資料3)用來執行步驟S07。因此,步驟S07、S08與S09跳過不執行。當原始資料並未完全被接收時,再執行步驟S01,從而獲得第一資料3及創造出第二資料3。在步驟S07之後,第二資料2與第二資料3被發現可以結合。結合單元105於緩衝器104中結合第二資料2與第二資料3為一第三資料(S08)。應注意的是原始資料不長,以至於它在此時就接收完畢。然而,對於要儲存較大的原始資料,當原始資料並未完全被接收時,結合步驟持續進行。同時,被結合的第二資料數量不限於二個,但最少需要二個。包含第二資料2與第二資料3的第三資料首先被編程到非揮發性記憶體110的一特定頁(B23P02)中(S09)。接著,如果原始資料已完全被接收,第二資料1被墊充及編程到非揮發性記憶體110的另一特定頁(B23P03)中。如上所述,0被用作墊充的元素。If the number of second materials is 1 and the original data is not completely received, steps S01 to S05 are repeated (S06). This means that at least two second data should be available for combination by the combining unit 105. After repeating these steps, the first data 2 was obtained, and the second data 2 was also created. In the next step, at least two second data are searched, and the second data can be combined by the combining unit 105 in the buffer 104 to have a size of one page (S07). If this is not feasible because the size of the combined second data 1 and the second data 2 exceeds the page, other second data (second data 3) should be used to perform step S07. Therefore, steps S07, S08, and S09 are skipped and are not executed. When the original data is not completely received, step S01 is performed to obtain the first data 3 and create the second data 3. After step S07, the second material 2 and the second material 3 are found to be combined. The combining unit 105 combines the second material 2 and the second material 3 into a third data in the buffer 104 (S08). It should be noted that the original data is not so long that it is received at this time. However, for storing large raw materials, the combining step continues when the original data is not completely received. At the same time, the number of second materials to be combined is not limited to two, but at least two are required. The third material including the second material 2 and the second material 3 is first programmed into a specific page (B23P02) of the non-volatile memory 110 (S09). Then, if the original material has been completely received, the second material 1 is padded and programmed into another specific page (B23P03) of the non-volatile memory 110. As described above, 0 is used as an element of the pad filling.

事實上,步驟S01到S09應重複進行直到原始資料接收完畢(S10)。在原始資料儲存後,映射表單元106更新其 內的一映射表(S11)。在步驟S11中,儲存了一映射連結,該映射連結用於特定頁的實體頁位址(B23P02與B23P03)與該原始資料的邏輯位址之連結。In fact, steps S01 through S09 should be repeated until the original data is received (S10). After the original data is stored, the mapping table unit 106 updates its A mapping table within (S11). In step S11, a mapping link is stored, which links the physical page addresses (B23P02 and B23P03) for a particular page with the logical address of the original material.

如果緩衝器104的大小較小,例如2KB,第二資料3不能與第二資料1及第二資料2同時存在,依照本發明,有兩種方法可以解決這個問題。第一種,增加一步驟S08'於步驟S08之後:如果緩衝器104已滿或實質已滿且沒有第二資料的結合具有一頁的大小,墊充緩衝器104中較大的第二資料(第二資料1)為第三資料頁,並編程該第三資料至非揮發性記憶體110中的一特定頁。第二種,增加一步驟S08"於步驟S08之後:如果緩衝器104已滿或實質已滿且沒有第二資料的結合具有一頁的大小,墊充緩衝器104中暫存時間最久的第二資料(第二資料1)為該第三資料,並編程該第三資料至非揮發性記憶體110中的一特定頁。相同地,0被用作墊充的元素。If the size of the buffer 104 is small, for example, 2 KB, the second material 3 cannot coexist with the second material 1 and the second material 2, and according to the present invention, there are two methods to solve the problem. First, a step S08' is added after step S08: if the buffer 104 is full or substantially full and the combination of the second data has a size of one page, the second data in the pad buffer 104 is larger ( The second data 1) is a third data page and the third data is programmed to a particular page in the non-volatile memory 110. Second, a step S08 is added after step S08: if the buffer 104 is full or substantially full and the combination of the second data has a page size, the padding buffer 104 has the longest temporary storage time. The second data (second material 1) is the third data, and the third data is programmed to a specific page in the non-volatile memory 110. Similarly, 0 is used as an element of the pad charge.

在本實施例中,原始資料僅具3頁大小。在其它實施例中,原始資料的大小不是一頁的整數倍。依照本發明某些步驟要改變。In this embodiment, the original material has only three pages in size. In other embodiments, the size of the original material is not an integer multiple of one page. Certain steps in accordance with the present invention are subject to change.

請見第6圖,某些元素沿用自第4圖。兩個實施例之間的差異說明如下。首先,原始資料是5.5KB,少於前一個實施例中所舉例的原始資料512B。因此,第一資料3(包含基本單元D3-1至D3-3)大小不滿一整頁(要求至少一基本單元等於該預定大小)。第二,第一資料2具有高壓縮比。基本單 元D2-1至D2-4僅能被壓縮為C2-1,並以墊充P2墊充為第二資料2。第一資料1與第二資料2沒改變。See Figure 6, some elements are used from Figure 4. The differences between the two embodiments are explained below. First, the original data is 5.5 KB, which is less than the original data 512B exemplified in the previous embodiment. Therefore, the first material 3 (including the basic units D3-1 to D3-3) is not full size by one page (requires at least one basic unit equal to the predetermined size). Second, the first data 2 has a high compression ratio. Basic order The elements D2-1 to D2-4 can only be compressed to C2-1 and filled with the pad P2 pad as the second material 2. The first data 1 and the second data 2 did not change.

因此,在步驟S07中,第二資料1與第二資料2將首先被結合並接著編程至B23P02中。因為沒有其它第一資料跟在第一資料3後被接收,第二資料3將再被墊充P4墊充,並於步驟S09中編程進B23P03。在這種情況下,步驟S10將被跳過而執行步驟S11。Therefore, in step S07, the second material 1 and the second material 2 will first be combined and then programmed into B23P02. Since no other first data is received after the first data 3, the second data 3 will be padded with the P4 pad and programmed into the B23P03 in step S09. In this case, step S10 will be skipped and step S11 is performed.

在其它實施例中,如果原始資料較大,當原始資料接收完畢,二個或更多的第二資料留存,在步驟S07中,第二資料將被連接且墊充於緩衝器104中,成為一第三資料。相似地,步驟S10將會被跳過,步驟S11將會被執行。In other embodiments, if the original data is large, when the original data is received, two or more second data are retained, and in step S07, the second data is connected and padded in the buffer 104 to become A third piece of information. Similarly, step S10 will be skipped and step S11 will be executed.

在極端情況下,原始資料太短,以致於原始資料的大小不大於該預定大小。第一資料(僅一個)將不被分割,但直接壓縮及墊充為一頁的大小,並編程至非揮發性記憶體110中。僅步驟S01、S04、S05、S08、S09與S11執行,其餘的步驟都不進行,因為不符合這種情況的要求。In extreme cases, the original material is too short, so that the size of the original material is not greater than the predetermined size. The first data (only one) will not be split, but will be directly compressed and padded to the size of one page and programmed into the non-volatile memory 110. Only steps S01, S04, S05, S08, S09, and S11 are performed, and the remaining steps are not performed because the requirements of this case are not met.

雖然本創作已以實施例揭露如上,然其並非用以限定本創作,任何所屬技術領域中具有通常知識者,在不脫離本創作之精神和範圍內,當可作些許之更動與潤飾,因此本創作之保護範圍當視後附之申請專利範圍所界定者為準。Although the present invention has been disclosed in the above embodiments, it is not intended to limit the present invention, and any person skilled in the art can make some changes and refinements without departing from the spirit and scope of the present invention. The scope of protection of this creation is subject to the definition of the scope of the patent application attached.

100‧‧‧自適應壓縮資料儲存系統100‧‧‧Adaptive Compressed Data Storage System

101‧‧‧主機介面單元101‧‧‧Host interface unit

102‧‧‧資料壓縮器102‧‧‧Data Compressor

103‧‧‧墊充單元103‧‧‧ pads unit

104‧‧‧緩衝器104‧‧‧buffer

105‧‧‧結合單元105‧‧‧ combination unit

106‧‧‧映射表單元106‧‧‧ mapping table unit

110‧‧‧非揮發性記憶體110‧‧‧Non-volatile memory

200‧‧‧主機200‧‧‧Host

Claims (17)

一種用於非揮發性記憶體的自適應壓縮資料儲存方法,包含步驟:A.接收一第一資料,其中該第一資料的大小不大於在一非揮發性記憶體中的一頁的大小,連續接收的第一資料形成一原始資料,該原始資料需要儲存於該非揮發性記憶體中;B.如果該第一資料的大小大於一預定大小,分割第一資料為至少二基本單元,其中至少一基本單元等於該預定大小;C.壓縮該基本單元或該第一資料;D.連接且墊充該壓縮的基本單元或該第一資料以形成一第二資料,以便該第二資料具有的大小為該預定大小的整數倍;E.儲存該第二資料於一緩衝器中;F.如果第二資料的數量為1且該原始資料並未完全被接收,重複步驟A到步驟E;G.搜尋至少二第二資料,該些第二資料能結合而具有該緩衝器中一頁的大小;H.於該緩衝器中結合該至少二第二資料為一第三資料,或如果該原始資料已完全被接收,墊充該第二資料或連接且墊充於該緩衝器中的該第二資料為一第三資料,其中該第三資料的大小與一頁相同;I.編程該第三資料到該非揮發性記憶體中的一特定頁;及 J.如果原始資料並未完全被接收,執行步驟A,其中0被用作墊充的元素。An adaptive compressed data storage method for non-volatile memory, comprising the steps of: A. receiving a first data, wherein the size of the first data is not greater than a size of a page in a non-volatile memory, The first data continuously received forms an original data, and the original data needs to be stored in the non-volatile memory; B. if the size of the first data is greater than a predetermined size, the first data is divided into at least two basic units, at least a basic unit is equal to the predetermined size; C. compressing the basic unit or the first data; D. connecting and padding the compressed basic unit or the first data to form a second data, so that the second data has The size is an integer multiple of the predetermined size; E. storing the second data in a buffer; F. if the number of the second data is 1 and the original data is not completely received, repeat steps A through E; Searching at least two second data, the second data being combined to have a size of a page in the buffer; H. combining the at least two second data in the buffer as a third data, or if the original The data is completely received, the second data or the second data that is connected and filled in the buffer is a third data, wherein the third data has the same size as a page; Three data to a specific page in the non-volatile memory; and J. If the original material is not completely received, perform step A, where 0 is used as the element of the pad charge. 如申請專利範圍第1項所述之自適應壓縮資料儲存方法,進一步包含一步驟I1於步驟I之後:I1.更新一映射表,該映射表儲存該特定頁的一實體頁位址與該原始資料的一邏輯位址之映射連結。The adaptive compressed data storage method of claim 1, further comprising a step I1 after step I: I1. updating a mapping table, the mapping table storing a physical page address of the specific page and the original A mapping link of a logical address of the data. 如申請專利範圍第1項所述之自適應壓縮資料儲存方法,進一步包含一步驟H1於該步驟H與步驟I間:H1.如果該緩衝器已滿或實質已滿,且無第二資料的結合具有同一頁的大小,墊充具有該緩衝器中所有第二資料裏最大的第二資料為該第三資料,並編程該第三資料至該非揮發性記憶體中之一特定頁,其中0被用作墊充的元素。The adaptive compressed data storage method of claim 1, further comprising a step H1 between the step H and the step I: H1. If the buffer is full or substantially full, and there is no second data Combining the size of the same page, the pad is filled with the second data of all the second data in the buffer as the third data, and the third data is programmed to a specific page of the non-volatile memory, wherein Used as an element for pad filling. 如申請專利範圍第1項所述之自適應壓縮資料儲存方法,進一步包含一步驟H2於該步驟H與步驟I間:H2.如果該緩衝器已滿或實質已滿,且無第二資料的結合具有同一頁的大小,墊充該緩衝器中所有第二資料裏暫存時間最久的第二資料為該第三資料,並編程該第三資料至該非揮發性記憶體中之一特定頁,其中0被用作墊充的元素。The adaptive compressed data storage method of claim 1, further comprising a step H2 between the step H and the step I: H2. If the buffer is full or substantially full, and there is no second data Combining the size of the same page, the second data of the second data stored in the second data in the buffer is the third data, and the third data is programmed to a specific page of the non-volatile memory. , where 0 is used as the element of the pad charge. 如申請專利範圍第1項所述之自適應壓縮資料儲存方法,其中一無損失壓縮演算法被用於步驟C以壓縮該第一資料或該基本單元。The adaptive compressed data storage method of claim 1, wherein a lossless compression algorithm is used in step C to compress the first data or the basic unit. 如申請專利範圍第5項所述之自適應壓縮資料儲存方法, 其中該無損失壓縮演算法為LZ77、LZSS、LZH、LZB、LZ78、LZW或LZFG。For example, the adaptive compressed data storage method described in claim 5, The lossless compression algorithm is LZ77, LZSS, LZH, LZB, LZ78, LZW or LZFG. 如申請專利範圍第1項所述之自適應壓縮資料儲存方法,其中該非揮發性記憶體為NAND快閃記憶體或固態硬碟。The adaptive compressed data storage method of claim 1, wherein the non-volatile memory is a NAND flash memory or a solid state hard disk. 如申請專利範圍第1項所述之自適應壓縮資料儲存方法,其中一基本單元被壓縮以形成一壓縮的基本單元,或至少二基本單元被壓縮以形成一壓縮的基本單元。The adaptive compressed data storage method of claim 1, wherein a basic unit is compressed to form a compressed basic unit, or at least two basic units are compressed to form a compressed basic unit. 一種用於非揮發性記憶體的自適應壓縮資料儲存系統,包含:一主機介面單元,用以與一主機溝通及接收來自該主機的第一資料,該些第一資料的尺寸不大於一非揮發性記憶體中一頁的尺寸,其中連續接收的第一資料形成一原始資料,該原始資料需要儲存於該非揮發性記憶體中;一資料壓縮器,電連接至該主機介面單元,如果該第一資料的大小大於一預定大小,用以分割每一第一資料為至少二基本單元及壓縮該基本單元,其中至少一基本單元等於該預定大小;一墊充單元,電連接至該資料壓縮器,用以連接且墊充該壓縮的基本單元以形成一第二資料,及如果該原始資料已完全被接收,墊充該第二資料或連接且墊充該第二資料為一第三資料;一緩衝器,電連接至墊充單元與該非揮發性記憶體,用以 暫時儲存該第二資料、當其已滿或實質已滿時取代一儲存的第二資料,及編程該第三資料至該非揮發性記憶體中的一特定頁;及一結合單元,電連接至該緩衝器,用以結合在該緩衝器中的至少二第二資料為一第三資料,其中如果該原始資料大小不大於該預定大小,該第一資料將不被分割但被壓縮及墊充為一頁的大小且編程至該非揮發性記憶體中;該第二資料具有的大小為該預定大小的整數倍;該第三資料的大小與一頁相同;0被用作墊充的元素。An adaptive compressed data storage system for non-volatile memory, comprising: a host interface unit for communicating with a host and receiving first data from the host, the size of the first data is no more than one non- a size of a page in the volatile memory, wherein the first data continuously received forms a raw material, the original data needs to be stored in the non-volatile memory; and a data compressor is electrically connected to the host interface unit, if The size of the first data is greater than a predetermined size, and is configured to divide each first data into at least two basic units and compress the basic unit, wherein at least one basic unit is equal to the predetermined size; and a pad charging unit electrically connected to the data compression And a pad for charging the compressed basic unit to form a second data, and if the original data has been completely received, padding the second data or connection and padding the second data to a third data a buffer electrically connected to the pad charging unit and the non-volatile memory for Temporarily storing the second data, replacing a stored second data when it is full or substantially full, and programming the third data to a specific page in the non-volatile memory; and a bonding unit electrically connected to The buffer is configured to combine the at least two second data in the buffer into a third data, wherein if the original data size is not greater than the predetermined size, the first data is not divided but compressed and padded The size of one page is programmed into the non-volatile memory; the second data has a size that is an integer multiple of the predetermined size; the size of the third material is the same as a page; 0 is used as an element of the pad charge. 如申請專利範圍第9項所述之自適應壓縮資料儲存系統,進一步包含一映射表單元,電連接至該緩衝器,用以儲存與更新一映射表,該映射表有特定頁的一實體頁位址與該原始資料的一邏輯位址之映射連結。The adaptive compressed data storage system of claim 9, further comprising a mapping table unit electrically connected to the buffer for storing and updating a mapping table having a physical page of a specific page The address is linked to a logical address of the original data. 如申請專利範圍第9項所述之自適應壓縮資料儲存系統,其中如果該緩衝器已滿或實質已滿,且無第二資料的結合具有同一頁的大小,該墊充單元進一步墊充一第二資料為該第三資料,該被墊充的第二資料為該緩衝器中所有第二資料裏最大的。The adaptive compressed data storage system of claim 9, wherein if the buffer is full or substantially full, and no combination of the second data has the same page size, the pad charging unit further fills one The second data is the third data, and the second data that is padded is the largest of all the second data in the buffer. 如申請專利範圍第9項所述之自適應壓縮資料儲存系統,其中如果該緩衝器已滿或實質已滿,且無第二資料的結合具有同一頁的大小,該墊充單元進一步墊充一第二資料為 該第三資料,該被墊充的第二資料為該緩衝器中所有第二資料裏暫存時間最久的。The adaptive compressed data storage system of claim 9, wherein if the buffer is full or substantially full, and no combination of the second data has the same page size, the pad charging unit further fills one The second information is The third data, the second data that is padded is the longest temporary storage time of all the second data in the buffer. 如申請專利範圍第9項所述之自適應壓縮資料儲存系統,其中一無損失壓縮演算法被用以壓縮該第一資料或該基本單元。The adaptive compressed data storage system of claim 9, wherein a lossless compression algorithm is used to compress the first data or the basic unit. 如申請專利範圍第13項所述之自適應壓縮資料儲存系統,其中該無損失壓縮演算法為LZ77、LZSS、LZH、LZB、LZ78、LZW或LZFG。The adaptive compressed data storage system of claim 13, wherein the lossless compression algorithm is LZ77, LZSS, LZH, LZB, LZ78, LZW or LZFG. 如申請專利範圍第9項所述之自適應壓縮資料儲存系統,其中該非揮發性記憶體為NAND快閃記憶體或固態硬碟。The adaptive compressed data storage system of claim 9, wherein the non-volatile memory is a NAND flash memory or a solid state hard disk. 如申請專利範圍第9項所述之自適應壓縮資料儲存系統,其中該緩衝器包含一動態隨機存取記憶體或一靜態隨機存取記憶體。The adaptive compressed data storage system of claim 9, wherein the buffer comprises a dynamic random access memory or a static random access memory. 如申請專利範圍第9項所述之自適應壓縮資料儲存系統,其中一基本單元被壓縮以成一壓縮的基本單元,或至少二基本單元被壓縮以形成一壓縮的基本單元。The adaptive compressed data storage system of claim 9, wherein a basic unit is compressed to form a compressed basic unit, or at least two basic units are compressed to form a compressed basic unit.
TW103131929A 2014-09-16 2014-09-16 Adaptive compression data storing method for non-volatile memories and system using the same TWI505091B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW103131929A TWI505091B (en) 2014-09-16 2014-09-16 Adaptive compression data storing method for non-volatile memories and system using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW103131929A TWI505091B (en) 2014-09-16 2014-09-16 Adaptive compression data storing method for non-volatile memories and system using the same

Publications (2)

Publication Number Publication Date
TWI505091B true TWI505091B (en) 2015-10-21
TW201612754A TW201612754A (en) 2016-04-01

Family

ID=54851807

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103131929A TWI505091B (en) 2014-09-16 2014-09-16 Adaptive compression data storing method for non-volatile memories and system using the same

Country Status (1)

Country Link
TW (1) TWI505091B (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107291377A (en) * 2016-03-31 2017-10-24 慧荣科技股份有限公司 Data storage device and data maintenance method thereof
CN113419683A (en) * 2021-07-01 2021-09-21 群联电子股份有限公司 Memory access method, memory storage device and memory control circuit unit
TWI771079B (en) * 2021-06-24 2022-07-11 群聯電子股份有限公司 Mapping information management method, memory storage device and memory control circuit unit

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2025025871A (en) * 2023-08-10 2025-02-21 キオクシア株式会社 Memory System

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW463176B (en) * 1999-06-21 2001-11-11 Etron Technology Inc Efficient date compression circuit for memory testing
US6697530B2 (en) * 1999-09-18 2004-02-24 Wildtangent, Inc. Data compression through adaptive data size reduction
TWI265490B (en) * 2002-08-08 2006-11-01 Ibm Method and system for storing memory compressed data onto memory compressed disks
US7154416B1 (en) * 2005-09-22 2006-12-26 Packeteer, Inc. Adaptive control of codebook regeneration in data compression mechanisms
US7427993B1 (en) * 2004-08-31 2008-09-23 Pixelworks, Inc. Motion adaptive pixel boost with data compression and decompression
TWI413899B (en) * 2009-07-27 2013-11-01 Univ Nat Sun Yat Sen Compressed data managing system and method for circular buffer
TW201421996A (en) * 2012-11-27 2014-06-01 Omnivision Tech Inc System and method for randomly accessing compressed data from memory

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW463176B (en) * 1999-06-21 2001-11-11 Etron Technology Inc Efficient date compression circuit for memory testing
US6697530B2 (en) * 1999-09-18 2004-02-24 Wildtangent, Inc. Data compression through adaptive data size reduction
TWI265490B (en) * 2002-08-08 2006-11-01 Ibm Method and system for storing memory compressed data onto memory compressed disks
US7427993B1 (en) * 2004-08-31 2008-09-23 Pixelworks, Inc. Motion adaptive pixel boost with data compression and decompression
US7154416B1 (en) * 2005-09-22 2006-12-26 Packeteer, Inc. Adaptive control of codebook regeneration in data compression mechanisms
TWI413899B (en) * 2009-07-27 2013-11-01 Univ Nat Sun Yat Sen Compressed data managing system and method for circular buffer
TW201421996A (en) * 2012-11-27 2014-06-01 Omnivision Tech Inc System and method for randomly accessing compressed data from memory

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107291377A (en) * 2016-03-31 2017-10-24 慧荣科技股份有限公司 Data storage device and data maintenance method thereof
TWI614605B (en) * 2016-03-31 2018-02-11 慧榮科技股份有限公司 Data storage device and data maintenance method thereof
TWI771079B (en) * 2021-06-24 2022-07-11 群聯電子股份有限公司 Mapping information management method, memory storage device and memory control circuit unit
US20220413763A1 (en) * 2021-06-24 2022-12-29 Phison Electronics Corp. Mapping information management method, memory storage device and memory control circuit unit
CN113419683A (en) * 2021-07-01 2021-09-21 群联电子股份有限公司 Memory access method, memory storage device and memory control circuit unit
CN113419683B (en) * 2021-07-01 2023-07-04 群联电子股份有限公司 Memory access method, memory storage device and memory control circuit unit

Also Published As

Publication number Publication date
TW201612754A (en) 2016-04-01

Similar Documents

Publication Publication Date Title
US9720821B2 (en) Adaptive compression data storing method for non-volatile memories and system using the same
KR101660190B1 (en) Data compression and management
US8370544B2 (en) Data storage system with compression/decompression
CN108089817B (en) Storage systems and methods of operating the same and methods of operating data processing systems
CN107506153B (en) Data compression method, data decompression method and related system
US10481797B2 (en) Data storage device for compressing input data
US9665287B2 (en) Data deduplication using a solid state drive controller
TWI505091B (en) Adaptive compression data storing method for non-volatile memories and system using the same
US20130246721A1 (en) Controller, data storage device, and computer program product
CN103136109A (en) Writing-in and reading method of solid-state memory system flash translation layer (FTL) with compression function
KR20090002839A (en) Index Schemes for Flash Memory
US20150242122A1 (en) Method for wrtiting data, memory storage device and memory control circuit unit
JP2018160059A (en) Memory controller
KR101470136B1 (en) Data converting method and data converting apparatus
GB2441729A (en) Decompression technique for generating software image
TW201702877A (en) Mapping table updating method, memory control circuit unit and memory storage device
CN110795272B (en) Method and system for atomic and latency guarantees facilitated on variable-size I/O
US20180267746A1 (en) Readout control device, storage controller, and computer program product
TW201705148A (en) Mapping table accessing method, memory control circuit unit and memory storage device
Zhang et al. Realizing transparent OS/Apps compression in mobile devices at zero latency overhead
US20140258247A1 (en) Electronic apparatus for data access and data access method therefor
KR101348255B1 (en) Storage of transformed units of data in a memory system having fixed sized storage blocks
CN107122312B (en) A solid state disk address mapping method
JP6262878B2 (en) Storage device
US20190310788A1 (en) Similarity-based data deduplication on solid-state storage devices with embedded nonvolatile memory

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees