JP2014132750A - データ圧縮方法と、該方法を行う装置 - Google Patents
データ圧縮方法と、該方法を行う装置 Download PDFInfo
- Publication number
- JP2014132750A JP2014132750A JP2013262636A JP2013262636A JP2014132750A JP 2014132750 A JP2014132750 A JP 2014132750A JP 2013262636 A JP2013262636 A JP 2013262636A JP 2013262636 A JP2013262636 A JP 2013262636A JP 2014132750 A JP2014132750 A JP 2014132750A
- Authority
- JP
- Japan
- Prior art keywords
- data block
- data
- current
- previous
- memory area
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 238000013144 data compression Methods 0.000 title claims abstract description 90
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000015654 memory Effects 0.000 claims description 218
- 238000012545 processing Methods 0.000 claims description 51
- 238000013500 data storage Methods 0.000 claims description 30
- 238000004364 calculation method Methods 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 14
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 23
- 102100037364 Craniofacial development protein 1 Human genes 0.000 description 20
- 101000880187 Homo sapiens Craniofacial development protein 1 Proteins 0.000 description 20
- 238000007906 compression Methods 0.000 description 15
- 230000006835 compression Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 230000006837 decompression Effects 0.000 description 7
- 230000003111 delayed effect Effects 0.000 description 6
- 230000001133 acceleration Effects 0.000 description 4
- 101150056647 TNFRSF4 gene Proteins 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000002071 nanotube Substances 0.000 description 2
- 229920000642 polymer Polymers 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009413 insulation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005442 molecular electronic Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- 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
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- 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
-
- 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
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3086—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing a sliding window, e.g. LZ77
-
- 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/60—General implementation details not specific to a particular type of compression
- H03M7/6064—Selection of Compressor
- H03M7/6082—Selection strategies
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)
- Software Systems (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
【解決手段】データ圧縮方法は、以前データブロックと現在データブロックとを含む入力データストリームを受信する段階と、以前データブロックの一部と以前参照データブロックの一部とを比較する第1比較と、現在データブロックと現在参照データブロックとを比較する第2比較とを並列的に実行する段階と、第1比較と第2比較との結果に基づいて、現在データブロックを出力するか、または拡張データブロックを圧縮する段階と、を含み、拡張データブロックは、以前データブロックの一部と現在データブロックとを含む。
【選択図】 図2
Description
このデータ圧縮技術は、フラッシュメモリ装置−基盤のデータ保存装置に保存されるデータのサイズを減らすことができるため、保存装置に対するライト回数及び/またはリード回数を減らすことができるだけではなく、保存装置の期待寿命を増加させることができる。
前記データ圧縮方法は、バッファメモリから前記以前参照データブロックの前記一部と前記現在参照データブロックとを並列的にリードする段階をさらに含む。
前記メモリは、前記現在参照データブロックが保存された第1メモリ領域と前記以前参照データブロックが保存された第2メモリ領域とを含むバッファメモリであり、前記第1メモリ領域と前記第2メモリ領域のそれぞれは、インターリービング方式で割り当てられ、独立してアクセス可能な互いに異なるメモリに具現される。
前記バッファメモリコントローラは、前記アドレスを用いて、前記第1メモリ領域に対する第1アドレスと前記第2メモリ領域に対する第2アドレスとを生成するアドレス生成器と、前記第1アドレスを用いて、前記第1メモリ領域から前記以前参照データブロックの前記一部と、前記第2アドレスを用いて、前記第2メモリ領域から前記現在参照データブロックとを並列的にリードし、前記現在データブロックに対する第3アドレスに基づいて、前記現在データブロックを前記第3メモリ領域にライトするバッファメモリアクセス制御回路と、を含む。
前記拡張データブロックのサイズと前記現在データブロックのサイズとの比は、整数ではない。前記データ保存装置は、フラッシュメモリ、eMMC(embedded MultiMedia Card)、UFS(Universal Flash Storage)、USBフラッシュドライバ、またはSSD(Solid−State Drive)である。前記データ処理装置は、スマートフォン、タブレットPC、モバイルインターネット装置(mobile internet device)、または電子ブックである。
本発明の実施形態によるデータ圧縮方法とデータ圧縮装置は、インターリーブされたメモリ、または互いに独立してアクセス可能なメモリを使って、拡張参照データブロックを処理するので、圧縮効率を向上させうる。本発明の実施形態によるデータ圧縮方法とデータ圧縮装置は、既に処理されたデータブロックの一部に対しても、以前参照データブロックの一部とマッチするか否かを判断することができるので、データ圧縮率またはデータ圧縮効率を向上させうる。
図1Aは、本発明の実施形態によるデータ処理装置のブロック図を示す。図1Aを参照すれば、データ処理装置100は、ホスト110、メモリコントローラ200、第1データ保存装置130、及び第2データ保存装置150を含む。
メモリコントローラ200と第1データ保存装置130は、1つのパッケージ、例えば、マルチチップパッケージ(multi−chip package)でパッケージング(packing)されうる。
メモリコントローラ200は、ホスト110、第1データ保存装置130、及び第2データ保存装置150の間で送受信するデータ及び/または命令を対応するインターフェースプロトコル(interface protocol)によってインターフェーシング(inferfacing)または処理することができる。
例えば、ホストインターフェース210は、データ圧縮動作の間には、ホスト110から出力された入力データストリームIDSをデータ圧縮回路230に伝送し、データ圧縮解除動作の間には、データ圧縮解除回路270から出力された圧縮解除されたデータストリームDDSをホスト110に伝送する。
CPU240は、データバス241を通じてデータ圧縮回路230、第1メモリコントローラ250、第2メモリコントローラ260、及びデータ圧縮解除回路270のうちの少なくとも1つの動作を制御することができる。
実施形態によって、第1データ保存装置130は、フラッシュ−基盤のメモリ、例えば、フラッシュメモリ、eMMC、UFS、USBフラッシュドライブ(USB flashdrive)、またはSSDであり得る。
例えば、第1データ保存装置130に/から入力/出力されるデータは、第2メモリコントローラ260の制御によって第2データ保存装置150に臨時保存することができる。
例えば、図1Bで、データ圧縮回路230は、データバス241を通じてホストインターフェース210から入力データストリームIDSを受信し、データ圧縮解除回路270は、データバス241を通じてホストインターフェース210に出力データストリームDDSを出力する。図1Cで、データ圧縮回路230とデータ圧縮解除回路270は、データバス241と第1メモリコントローラ250との間に位置する。
入力データレジスタ231は、入力データストリームIDSを受信し、入力データストリームIDSに含まれた複数のデータブロックのそれぞれの遅延(delay)を対応する遅延回路D1、D2、及びD3を用いて調節し、遅延調節された複数のデータブロックのそれぞれDATA2、DATA3、及びDATA4を複数の処理回路237、241、及び243のそれぞれに伝送する。
入力データレジスタ231は、入力データストリームIDSに含まれたデータブロックDATA1をハッシュキー生成回路233に伝送し、第1遅延データブロックDATA2をバッファメモリコントローラ237に伝送し、第2遅延データブロックDATA3を比較回路241に伝送し、第3遅延データブロックDATA4を圧縮データ生成回路243に伝送する。遅延を無視すれば、各データブロックDATA1、DATA2、DATA3、及びDATA4は、同じデータブロックである。
ハッシュキー生成回路233は、ハッシュキー生成器233−1、第1カウンター233−2、及びハッシュキーテーブル235を含む。
ハッシュキーテーブル235は、ハッシュキーHiによって指定されたエントリに第1カウント値BCNTを保存する。この際、第1カウント値BCNTは、アドレスADDに対応しうる。
ハッシュキーテーブル235は、ハッシュキーH0によって指定されたエントリに第1カウント値BCNTまたはアドレスADD、すなわち、Ox00を保存する。この際、ハッシュキーテーブル235は、第1処理ユニット(PU1=A1A2A3A4)に対するアドレスADDとしてOx00を出力することができる。
ハッシュキー生成器233−1は、次の4バイト(A3A4B5B6)に相応するハッシュキーH4を生成し、カウンタ233−2は、4バイト(A3A4B5B6)の開始位置を指示する第1カウント値BCNTとしてOx02を生成する。ハッシュキー生成器233−1は、次の4バイト(A4B5B6B7)に相応するハッシュキーH6を生成し、カウンタ233−2は、4バイト(A4B5B6B7)の開始位置を指示する第1カウント値BCNTとしてOx03を生成する。
処理される現在データブロックが、以前データブロックとマッチまたは同一である時、ハッシュキーテーブル235は、データブロック単位で生成されたハッシュキーHiに対応するアドレスADDをバッファメモリコントローラ237に出力することができる。
バッファメモリ239は、インターリービング(interleaving)方式で割り当てられ、独立してアクセス可能な互いに異なる複数のメモリ239−1〜239−4を含む。複数のメモリ239−1〜239−4のそれぞれは、デュアルポート(dual−port)SRAMとして具現可能である。このデュアルポートSRAMは、シングルポート(single−port)SRAMと異なって、同一のサイクル内でリード動作とライト動作とを同時に行うことができる。
ハッシュキー生成回路233から第1処理ユニットPU1に対するハッシュキーH0に対応するデータブロック(A1A2A3A4)の開始位置を指示するアドレス(ADD=Ox00)が入力され、第1遅延データブロック(DATA2=A1A2A3A4)が入力データレジスタ231を通じて入力されれば、バッファメモリコントローラ237のアドレス生成器237−1は、現在参照アドレスADD_Cと直前(immediately previous;または、以前(previous))参照アドレスADD_Pとを生成する。
図6の第2カウンタ237−2は、第1遅延データブロック(DATA2=A1A2A3A4)の開始位置をカウントし、第2カウント値(BCNT1=Ox00)を生成する。この際、第2カウント値BCNT1は、第1遅延データブロック(DATA2=A1A2A3A4)が保存されるメモリ領域のアドレスに相応する。
バッファメモリアクセス制御回路273−3は、現在参照アドレス(ADD_C=Ox00)に対応する第1メモリ領域MR1に保存された現在参照データブロック、例えば、4バイト(X1X2X3X4)とデフォルトとして設定された直前参照アドレスADD_Pに対応するメモリ領域に保存された直前参照データブロックの一部、例えば、2バイトを並列的にリードする。ここで、直前参照データブロックは、デフォルトとして選択されたメモリ領域に保存されたデータブロックであり得る。
レジスタ301に保存された2バイトPDATA1と直前参照データブロックの一部PDATAとが互いに一致せず、現在参照データブロック(RDATA=X1X2X3X4)と第2遅延データブロック(DATA3=A1A2A3A4)とが互いに一致しないので、長さ計算回路311は、第1レベル、例えば、ハイレベルを有するマッチ情報Match_FLAGを出力することができる。この際、長さ計算回路311は、長さ情報Match_LENを生成しないこともある。
第3カウンタ307は、第2遅延データブロック(DATA3=A1A2A3A4)の開始位置をカウントし、このカウントの結果によって、第3カウント値BCNT2を生成することができる。
圧縮データ生成回路243の動作を制御することができる制御情報COMPは、長さ情報Match_LEN、マッチ情報Match_FLAG、及び距離情報Match_DISを含む。
すなわち、圧縮データ生成回路243は、制御情報COMPに基づいて、処理される第3遅延データブロックDATA4が繰り返し(repeated)データブロックまたは繰り返しデータパターンであるか否かを判断し、この判断の結果によって、第3遅延データブロックDATA4を圧縮せず、そのまま出力するか、または第3遅延データブロックDATA4を含む拡張データブロックを圧縮することができる。
バッファメモリアクセス制御回路273−3は、現在参照アドレス(ADD_C=Ox04)に対応する第2メモリ239−2の第2メモリ領域MR2に保存された現在参照データブロック(X5X6X7X8)をリードすると同時に、直前参照アドレス(ADD_P=Ox00)に対応する第1メモリ239−1の第1メモリ領域MR1に保存された直前参照データブロック(A1A2A3A4)の一部、例えば、2バイト(A3A4)をリードする。
第1比較器303は、レジスタ301に保存された2バイト(PDATA1=A3A4)と直前参照データブロックの一部(PDATA=A3A4)とを互いに比較し、この比較の結果によって、第1比較信号CP1を生成する。それと同時に、または並列的に、第2比較器305は、現在参照データブロック(RDATA=X5X6X7X8)と第2遅延データブロック(DATA3=B5B6B7B8)とを互いに比較し、この比較の結果によって、第2比較信号CP2を生成する。
レジスタ301に保存された2バイト(PDATA1=A3A4)と直前参照データブロックの一部(PDATA=A3A4)とが互いに一致し、現在参照データブロック(RDATA=X5X6X7X8)と第2遅延データブロック(DATA3=B5B6B7B8)とが互いに一致しないので、長さ計算回路311は、第1レベル、例えば、ハイレベルを有するマッチ情報Match_FLAGを出力する。
第3処理ユニットPU3のデータブロック(C1C2A3A4)、第4処理ユニットPU4のデータブロック(B1B2B34B)、及び第5処理ユニットPU5のデータブロック(C3C4A3A4)が処理される過程は、第2処理ユニットPU2のデータブロック(B5B6B7B8)が処理される過程と実質的に同一または類似している。
したがって、各メモリ領域MR3、MR4、及びMR5に保存された各参照データブロックY1Y2Y3Y4、Y5Y6Y7Y8、及びZ1Z2Z3Z4は、各データブロックC1C2A3A4、B1B2B34B、及びC3C4A3A4にアップデートされる。
ハッシュキー生成回路233は、第6処理ユニットPU6のデータブロック(B1B2B3B4)に対するハッシュキーH1を生成し、この生成されたハッシュキーH1に対応するハッシュキーテーブル235のエントリに保存された第1カウント値BCNT、例えば、第4処理ユニットPU4のデータブロック(B1B2B3B4)の開始位置を指示するアドレス(ADD=Ox0C)をバッファメモリコントローラ237に出力する。
第1比較器303は、レジスタ301に保存された2バイト(PDATA1=A3A4)と直前参照データブロックの一部(PDATA=A3A4)とを互いに比較し、この比較の結果によって、第1比較信号CP1を生成する。それと同時に、または並列的に、第2比較器305は、現在参照データブロック(RDATA=B1B2B3B4)と第2遅延データブロック(DATA3=PU6=B1B2B3B4)とを互いに比較し、この比較の結果によって、第2比較信号CP2を生成する。
レジスタ301に保存された2バイト(PDATA1=A3A4)と直前参照データブロックの一部(PDATA=A3A4)とが互いに一致し、現在参照データブロック(RDATA=B1B2B3B4)と第2遅延データブロック(DATA3=PU6=B1B2B3B4)とが互いに一致するので、長さ計算回路311は、第2レベル、例えば、ローレベルを有するマッチ情報Match_FLAGを出力する。
例えば、第1メモリコントローラ250は、データ圧縮回路230から出力されたデータDATAOの圧縮有無を示すフラグ(flag)を生成し、該生成されたフラグと共にリテラルデータまたは長さ/距離データを第1データ保存装置130に保存することができる。この際、リテラルデータまたは長さ/距離データは、第2データ保存装置150を通じて第1データ保存装置130に保存することができる。
有限状態マシン271は、圧縮データ、すなわち、リテラルデータと長さ/距離データとを含む圧縮データCDATAと圧縮有無を示すフラグとを含むヘッダHEADERを受信し、ヘッダHEADERに基づいて圧縮データCDATAの圧縮解除を指示する制御信号を出力する。
しかし、以前参照データブロックの一部と以前データブロックの一部とが互いにマッチングされ、現在参照データブロックと現在データブロックとが互いにマッチングされない時、現在参照データブロックを圧縮するか、またはバイパスすることができる(ステップS150)。
ここで、拡張参照データブロックは、以前参照データブロックの一部と現在参照データブロックとを含む。拡張参照データブロックのサイズと現在参照データブロックのサイズとの比は、整数ではない帯小数である。
拡張データブロックのサイズと現在データブロックのサイズとの比は、整数ではない帯小数である。
110:ホスト
130:第1データ保存装置
150:第2データ保存装置
200:メモリコントローラ
210:ホストインターフェース
230:データ圧縮回路
231:入力データレジスタ
233:ハッシュキー生成回路
237:バッファメモリコントローラ
239:バッファメモリ
241:比較回路
243:圧縮データ生成回路
240:CPU
250:第1メモリコントローラ
260:第2メモリコントローラ
270:データ圧縮解除回路
Claims (23)
- 以前データブロックと現在データブロックとを含む入力データストリームを受信する段階と、
前記以前データブロックの一部と以前参照データブロックの一部とを比較する第1比較と、前記現在データブロックと現在参照データブロックとを比較する第2比較とを並列的に実行する段階と、
前記第1比較と前記第2比較との結果に基づいて、前記現在データブロックを出力するか、または拡張データブロックを圧縮する段階と、を含み、
前記拡張データブロックは、前記以前データブロックの前記一部と前記現在データブロックとを含むデータ圧縮方法。 - 前記現在参照データブロックが保存された第1メモリ領域と前記以前参照データブロックが保存された第2メモリ領域のそれぞれは、インターリービング方式で割り当てられ、独立してアクセス可能な互いに異なるメモリに具現される請求項1に記載のデータ圧縮方法。
- 前記拡張データブロックのサイズと前記現在データブロックのサイズとの比は、帯小数である請求項1に記載のデータ圧縮方法。
- バッファメモリから前記以前参照データブロックの前記一部と前記現在参照データブロックとを並列的にリードする段階をさらに含む請求項1に記載のデータ圧縮方法。
- 以前データブロックと現在データブロックとを含む入力データストリームを受信する段階と、
メモリから以前参照データブロックの一部と現在参照データブロックとを並列的にリードする段階と、
前記以前データブロックの一部と前記以前参照データブロックの前記一部とに対する比較と、前記現在データブロックと前記現在参照データブロックとに対する比較とを並列的に行う段階と、
前記以前データブロックの前記一部と前記以前参照データブロックの前記一部とがマッチされ、前記現在データブロックと前記現在参照データブロックとがマッチされる時、拡張データブロックを圧縮する段階と、を含み、
前記拡張データブロックは、前記以前データブロックの前記一部と前記現在データブロックとを含むデータ圧縮方法。 - 前記データ圧縮方法は、前記以前データブロックの前記一部の少なくとも一部と前記以前参照データブロックの前記一部とがマッチされず、前記現在データブロックと前記現在参照データブロックとがマッチされない時、前記現在データブロックを選択的に圧縮または圧縮しない段階を含む請求項5に記載のデータ圧縮方法。
- 前記メモリは、前記現在参照データブロックが保存された第1メモリ領域と前記以前参照データブロックが保存された第2メモリ領域とを含むバッファメモリであり、前記第1メモリ領域と前記第2メモリ領域のそれぞれは、インターリービング方式で割り当てられ、独立してアクセス可能な互いに異なるメモリに具現される請求項5に記載のデータ圧縮方法。
- 第1メモリ領域、第2メモリ領域、及び第3メモリ領域を含むバッファメモリと、
アドレスに応答して、前記第1メモリ領域に保存された以前参照データブロックの一部と前記第2メモリ領域に保存された現在参照データブロックとを出力するバッファメモリコントローラと、
以前データブロックの一部と前記以前参照データブロックの一部とがマッチするか否かと、現在データブロックと前記現在参照データブロックとがマッチするか否かとを判断し、該判断の結果によって、制御情報を生成する比較回路と、
前記制御情報に基づいて、前記現在データブロックを出力するか、圧縮データを出力する圧縮データ生成回路と、を含み、
前記圧縮データは、前記以前データブロックの前記一部と前記現在データブロックとを含む拡張データブロックを圧縮して生成されるデータ圧縮回路。 - 前記第1メモリ領域、前記第2メモリ領域、及び前記第3メモリ領域のそれぞれは、インターリービング方式で割り当てられ、独立してアクセス可能な互いに異なるメモリに具現される請求項8に記載のデータ圧縮回路。
- 前記バッファメモリコントローラは、前記第1メモリ領域から前記以前参照データブロックの前記一部と、前記第2メモリ領域から前記現在参照データブロックとを並列的にリードした後、前記現在データブロックを前記第3メモリ領域にライトする請求項8に記載のデータ圧縮回路。
- 前記バッファメモリコントローラは、
前記アドレスを用いて、前記第1メモリ領域に対する第1アドレスと前記第2メモリ領域に対する第2アドレスとを生成するアドレス生成器と、
前記第1アドレスを用いて、前記第1メモリ領域から前記以前参照データブロックの前記一部と、前記第2アドレスを用いて、前記第2メモリ領域から前記現在参照データブロックとを並列的にリードし、前記現在データブロックに対する第3アドレスに基づいて、前記現在データブロックを前記第3メモリ領域にライトするバッファメモリアクセス制御回路と、
を含む請求項8に記載のデータ圧縮回路。 - 前記比較回路は、前記以前データブロックの前記一部と前記以前参照データブロックの前記一部とがマッチするか否かと、前記現在データブロックと前記現在参照データブロックとがマッチするか否かとを並列的に判断する請求項8に記載のデータ圧縮回路。
- 前記比較回路は、
前記以前データブロックの前記一部を保存するレジスタと、
前記レジスタから出力された前記以前データブロックの前記一部と前記バッファメモリコントローラから出力された前記以前参照データブロックの前記一部とがマッチするか否かを判断する第1比較器と、
前記現在データブロックと前記現在参照データブロックとがマッチするか否かを判断する第2比較器と、
前記第1比較器の出力信号と前記第2比較器の出力信号とに基づいて、前記マッチの有無を示すマッチ情報とマッチされたデータ長を示す長さ情報とを出力する長さ計算回路と、
前記以前データブロックの前記一部に対するアドレスと前記現在データブロックに対するアドレスとに基づいて距離情報を出力する距離計算回路と、を含み、
前記制御情報は、前記マッチ情報、前記長さ情報、及び前記距離情報を含む請求項8に記載のデータ圧縮回路。 - 前記圧縮データ生成回路は、
前記マッチ情報に基づいて選択信号を生成する選択信号生成回路と、
前記長さ情報と前記距離情報とに基づいて、前記圧縮データを生成するコード生成回路と、
前記選択信号に応答して、前記現在データブロックまたは前記圧縮データを出力する選択回路と、
を含む請求項13に記載のデータ圧縮回路。 - データ保存装置と、
以前データブロックと現在データブロックとを含むデータストリームを出力するホストと、
前記ホストから出力された前記データストリームをデータブロック単位または拡張データブロック単位でマッチするか否かを判断し、該判断の結果によって、前記データストリームを前記データブロック単位または前記拡張データブロック単位で圧縮し、該圧縮されたデータを前記データ保存装置に出力するメモリコントローラと、を含み、
前記メモリコントローラは、
前記以前データブロックに対してマッチするか否かを判断した後、前記以前データブロックの一部と前記現在データブロックとを含む拡張データブロックに対してマッチするか否かを判断するデータ処理装置。 - 前記メモリコントローラは、
第1メモリ領域、第2メモリ領域、及び第3メモリ領域を含むバッファメモリと、
アドレスに応答して、前記第1メモリ領域に保存された以前参照データブロックの一部と前記第2メモリ領域に保存された現在参照データブロックとを並列的に出力するバッファメモリコントローラと、
前記以前データブロックの前記一部と前記以前参照データブロックの前記一部とがマッチするか否かと、前記現在データブロックと前記現在参照データブロックとがマッチするか否かとを並列的に判断し、該判断の結果によって、制御情報を生成する比較回路と、
前記制御情報に基づいて、前記現在データブロックを出力するか、前記拡張データブロックを圧縮して生成された前記圧縮データを出力する圧縮データ生成回路と、
を含む請求項15に記載のデータ処理装置。 - 前記第1メモリ領域、前記第2メモリ領域、及び前記第3メモリ領域のそれぞれは、インターリービング方式で割り当てられた互いに異なるアドレスを有する互いに異なるメモリに具現される請求項16に記載のデータ処理装置。
- 前記バッファメモリコントローラは、
前記アドレスを用いて、前記第1メモリ領域に対する第1アドレスと前記第2メモリ領域に対する第2アドレスとを生成するアドレス生成器と、
前記第1アドレスを用いて、前記第1メモリ領域から前記以前参照データブロックの前記一部と、前記第2アドレスを用いて、前記第2メモリ領域から前記現在参照データブロックとを並列的にリードし、前記現在データブロックに対する第3アドレスに基づいて、前記現在データブロックを前記第3メモリ領域にライトするバッファメモリアクセス制御回路と、
を含む請求項16に記載のデータ処理装置。 - 前記比較回路は、
前記以前データブロックの前記一部を保存するレジスタと、
前記レジスタから出力された前記以前データブロックの前記一部と前記バッファメモリコントローラから出力された前記以前参照データブロックの前記一部とがマッチするか否かを判断する第1比較器と、
前記現在データブロックと前記現在参照データブロックとがマッチするか否かを判断する第2比較器と、
前記第1比較器の出力信号と前記第2比較器の出力信号とに基づいて、前記マッチの有無を示すマッチ情報とマッチされたデータ長を示す長さ情報とを出力する長さ計算回路と、
前記以前データブロックの前記一部に対するアドレスと前記現在データブロックに対するアドレスとに基づいて距離情報を出力する距離計算回路と、を含み、
前記制御情報は、前記マッチ情報、前記長さ情報、及び前記距離情報を含む請求項16に記載のデータ処理装置。 - 前記圧縮データ生成回路は、
前記マッチ情報に基づいて選択信号を生成する選択信号生成回路と、
前記長さ情報と前記距離情報とに基づいて、前記圧縮データを生成するコード生成回路と、
前記選択信号に応答して、前記現在データブロックまたは前記圧縮データを出力する選択回路と、
を含む請求項19に記載のデータ処理装置。 - 前記拡張データブロックのサイズと前記現在データブロックのサイズとの比は、整数ではない請求項15に記載のデータ処理装置。
- 前記データ保存装置は、フラッシュメモリ、eMMC、UFS、USBフラッシュドライバ、またはSSDである請求項15に記載のデータ処理装置。
- 前記データ処理装置は、スマートフォン、タブレットPC、モバイルインターネット装置、または電子ブックである請求項15に記載のデータ処理装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130000074A KR101992274B1 (ko) | 2013-01-02 | 2013-01-02 | 데이터 압축 방법과 상기 방법을 수행할 수 있는 장치들 |
KR10-2013-0000074 | 2013-01-02 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2014132750A true JP2014132750A (ja) | 2014-07-17 |
JP2014132750A5 JP2014132750A5 (ja) | 2016-12-22 |
JP6512733B2 JP6512733B2 (ja) | 2019-05-15 |
Family
ID=50150526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013262636A Active JP6512733B2 (ja) | 2013-01-02 | 2013-12-19 | データ圧縮方法と、該方法を行う装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9280287B2 (ja) |
EP (1) | EP2752760B1 (ja) |
JP (1) | JP6512733B2 (ja) |
KR (1) | KR101992274B1 (ja) |
CN (1) | CN103916131B (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9438940B2 (en) * | 2014-04-07 | 2016-09-06 | The Nielsen Company (Us), Llc | Methods and apparatus to identify media using hash keys |
US9668020B2 (en) | 2014-04-07 | 2017-05-30 | The Nielsen Company (Us), Llc | Signature retrieval and matching for media monitoring |
CN105790768B (zh) * | 2014-12-19 | 2018-12-25 | 珠海全志科技股份有限公司 | 数据存储方法和系统 |
CN104485967B (zh) * | 2015-01-08 | 2017-10-03 | 中山大学 | 由序列通项表达式驱动的并行计算传输列表实时压缩方法 |
US10542457B2 (en) | 2015-04-20 | 2020-01-21 | Qualcomm Incorporated | Enhanced compression formats for data compression |
US20170038978A1 (en) * | 2015-08-05 | 2017-02-09 | HGST Netherlands B.V. | Delta Compression Engine for Similarity Based Data Deduplication |
US10394724B2 (en) | 2016-08-22 | 2019-08-27 | Qualcomm Incorporated | Low power data transfer for memory subsystem using data pattern checker to determine when to suppress transfers based on specific patterns |
US10809928B2 (en) | 2017-06-02 | 2020-10-20 | Western Digital Technologies, Inc. | Efficient data deduplication leveraging sequential chunks or auxiliary databases |
US10503608B2 (en) | 2017-07-24 | 2019-12-10 | Western Digital Technologies, Inc. | Efficient management of reference blocks used in data deduplication |
CN107622781B (zh) * | 2017-10-12 | 2020-05-19 | 华中科技大学 | 一种提升三层忆阻器写性能的编解码方法 |
CN111124940B (zh) * | 2018-10-31 | 2022-03-22 | 深信服科技股份有限公司 | 一种基于全闪存阵列的空间回收方法及系统 |
CN112070652A (zh) * | 2019-06-10 | 2020-12-11 | 上海赜睿信息科技有限公司 | 数据压缩、解压方法、可读存储介质和电子设备 |
KR20200143611A (ko) | 2019-06-14 | 2020-12-24 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
CN114077554B (zh) * | 2022-01-20 | 2022-06-21 | 广州匠芯创科技有限公司 | 一种数据解码方法、系统、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5371499A (en) * | 1992-02-28 | 1994-12-06 | Intersecting Concepts, Inc. | Data compression using hashing |
JP2000124810A (ja) * | 1998-08-13 | 2000-04-28 | Fujitsu Ltd | 符号化装置及び復号化装置 |
JP2006092725A (ja) * | 2004-09-24 | 2006-04-06 | Nec Lab America Inc | 圧縮システム及び方法 |
US20060106870A1 (en) * | 2004-11-16 | 2006-05-18 | International Business Machines Corporation | Data compression using a nested hierarchy of fixed phrase length dictionaries |
JP2007037115A (ja) * | 2005-07-11 | 2007-02-08 | Quantum Corp | デジタルデータを符号化する方法、データセグメントのストリームを符号化する方法、エンコーダ、データのソースを符号化するためのパラレルエンコーダ、符号化データのソースを復号するためのパラレルデコーダ、コード化データを復号する方法、磁気テープドライブ、およびデータのストリームを符号化する方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2259824B (en) * | 1991-09-19 | 1995-01-18 | Sony Broadcast & Communication | Data compression |
US5521597A (en) * | 1993-08-02 | 1996-05-28 | Mircosoft Corporation | Data compression for network transport |
US5977977A (en) * | 1995-08-04 | 1999-11-02 | Microsoft Corporation | Method and system for multi-pass rendering |
US5990955A (en) * | 1997-10-03 | 1999-11-23 | Innovacom Inc. | Dual encoding/compression method and system for picture quality/data density enhancement |
JP2000148656A (ja) * | 1998-11-09 | 2000-05-30 | Mitsubishi Electric Corp | メモリシステム |
US6819271B2 (en) * | 1999-01-29 | 2004-11-16 | Quickshift, Inc. | Parallel compression and decompression system and method having multiple parallel compression and decompression engines |
US6601104B1 (en) * | 1999-03-11 | 2003-07-29 | Realtime Data Llc | System and methods for accelerated data storage and retrieval |
US6658148B1 (en) | 2000-06-06 | 2003-12-02 | Matsushita Electric Works, Ltd. | Image processing method and apparatus |
US6763444B2 (en) * | 2001-05-08 | 2004-07-13 | Micron Technology, Inc. | Read/write timing calibration of a memory array using a row or a redundant row |
TWI220959B (en) * | 2003-06-05 | 2004-09-11 | Carry Computer Eng Co Ltd | Storage device with optimized compression management mechanism |
EP1647010B1 (de) * | 2003-07-21 | 2017-09-06 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audiodateiformatumwandlung |
US7321991B2 (en) | 2004-01-10 | 2008-01-22 | Hynix Semiconductor Inc. | Semiconductor memory device having advanced test mode |
WO2007138602A2 (en) | 2006-05-31 | 2007-12-06 | Storwize Ltd. | Method and system for transformation of logical data objects for storage |
CN101212682B (zh) * | 2007-12-22 | 2011-06-15 | 深圳市同洲电子股份有限公司 | 一种运动搜索区域的数据加载装置和方法 |
JP5481809B2 (ja) * | 2008-08-12 | 2014-04-23 | 富士通株式会社 | コンパレータ回路及びそれを有するアナログデジタルコンバータ |
CN101478311B (zh) * | 2009-01-22 | 2010-10-20 | 浙江大学 | bzip2压缩算法硬件加速实现方法 |
CN101505427A (zh) * | 2009-02-20 | 2009-08-12 | 杭州爱威芯科技有限公司 | 视频压缩编码算法中的运动估计装置 |
WO2010113454A1 (ja) * | 2009-03-31 | 2010-10-07 | パナソニック株式会社 | 記録媒体、再生装置、及び集積回路 |
KR20120090194A (ko) * | 2011-02-07 | 2012-08-17 | 삼성전자주식회사 | 데이터 처리 장치 및 이를 포함하는 데이터 처리 시스템 |
-
2013
- 2013-01-02 KR KR1020130000074A patent/KR101992274B1/ko active IP Right Grant
- 2013-12-19 JP JP2013262636A patent/JP6512733B2/ja active Active
- 2013-12-20 US US14/135,628 patent/US9280287B2/en active Active
- 2013-12-30 EP EP13199794.2A patent/EP2752760B1/en active Active
-
2014
- 2014-01-02 CN CN201410001223.XA patent/CN103916131B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5371499A (en) * | 1992-02-28 | 1994-12-06 | Intersecting Concepts, Inc. | Data compression using hashing |
JP2000124810A (ja) * | 1998-08-13 | 2000-04-28 | Fujitsu Ltd | 符号化装置及び復号化装置 |
JP2006092725A (ja) * | 2004-09-24 | 2006-04-06 | Nec Lab America Inc | 圧縮システム及び方法 |
US20060106870A1 (en) * | 2004-11-16 | 2006-05-18 | International Business Machines Corporation | Data compression using a nested hierarchy of fixed phrase length dictionaries |
JP2007037115A (ja) * | 2005-07-11 | 2007-02-08 | Quantum Corp | デジタルデータを符号化する方法、データセグメントのストリームを符号化する方法、エンコーダ、データのソースを符号化するためのパラレルエンコーダ、符号化データのソースを復号するためのパラレルデコーダ、コード化データを復号する方法、磁気テープドライブ、およびデータのストリームを符号化する方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20140088319A (ko) | 2014-07-10 |
CN103916131B (zh) | 2019-05-28 |
JP6512733B2 (ja) | 2019-05-15 |
EP2752760B1 (en) | 2019-03-20 |
US20140189279A1 (en) | 2014-07-03 |
EP2752760A3 (en) | 2015-07-29 |
US9280287B2 (en) | 2016-03-08 |
KR101992274B1 (ko) | 2019-09-30 |
EP2752760A2 (en) | 2014-07-09 |
CN103916131A (zh) | 2014-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6512733B2 (ja) | データ圧縮方法と、該方法を行う装置 | |
JP6366249B2 (ja) | データ圧縮装置及び方法、データ圧縮装置を含むメモリシステム | |
US20190196907A1 (en) | Compression techniques for distributed data | |
US9425828B2 (en) | Memory device and memory system | |
US9690490B2 (en) | Method for writing data, memory storage device and memory control circuit unit | |
TW201539187A (zh) | 快閃記憶體之壓縮、讀取方法及應用其方法的裝置 | |
US10877668B2 (en) | Storage node offload of residual part of a portion of compressed and distributed data to a second storage node for decompression | |
US10579591B1 (en) | Incremental block compression | |
US20190123763A1 (en) | Data compression engine for dictionary based lossless data compression | |
CN113841128B (zh) | 大型数据读取方法、装置及可读介质 | |
US9934234B2 (en) | Adaptive rate compression hash processor | |
KR20180048938A (ko) | 하드웨어-가속화된 스토리지 압축 | |
KR102072412B1 (ko) | 데이터 압축 회로의 동작 방법과 상기 방법을 수행할 수 있는 장치들 | |
KR20220072398A (ko) | 메모리 장치 및 메모리 시스템 | |
WO2020112559A1 (en) | Per cursor logical unit number sequencing | |
CN117149059A (zh) | 非易失性存储器装置中的功率高效码字加扰 | |
KR20210035912A (ko) | 암호화 동작에 기초한 데이터 세그먼트 수정 | |
US9787323B1 (en) | Huffman tree decompression | |
US9501351B2 (en) | Memory control unit and data storage device including the same | |
TWI695264B (zh) | 資料儲存裝置與資料處理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161108 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20161108 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171127 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180109 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180405 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180918 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181213 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20190326 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190409 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6512733 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |