KR20120109753A - 저장 장치에서의 데이터 압축 방법 - Google Patents
저장 장치에서의 데이터 압축 방법 Download PDFInfo
- Publication number
- KR20120109753A KR20120109753A KR1020110027176A KR20110027176A KR20120109753A KR 20120109753 A KR20120109753 A KR 20120109753A KR 1020110027176 A KR1020110027176 A KR 1020110027176A KR 20110027176 A KR20110027176 A KR 20110027176A KR 20120109753 A KR20120109753 A KR 20120109753A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- codeword
- symbol
- length
- chunk data
- 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
Images
Classifications
-
- 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/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/40—Response verification devices using compression techniques
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)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
도 1은 본 발명의 실시예에 따른 저장 장치에서의 데이터 압축 방법을 나타내는 순서도이다.
도 2는 도 1의 데이터 압축 방법으로 동작하는 데이터 압축기를 나타내는 블록도이다.
도 3은 본 발명의 실시예에 따른 솔리드 스테이트 드라이브를 좀 더 자세히 나타내는 도면이다.
도 4는 도 2의 데이터 압축기가 구비되는 위치에 대한 실시예들을 나타내는 도면이다.
도 5는 도 2의 데이터 압축기를 포함하는 네트워크 시스템을 나타내는 도면이다.
도 6은 각 청크 데이터의 심볼의 발생 빈도수와 부호어의 길이와의 관계를 나타내는 그래프이다.
도 7 및 도 8은 허프만 트리를 형성하여 심볼의 발생 빈도 확률에 따른 부호어 길이를 할당하는 방법을 나타내는 도면이다.
도 9는 본 발명의 실시예에 따른 제1 테이블의 예를 나타내는 도면이다.
도 10 및 도 11은 각각, 본 발명의 실시예에 따른 제1 테이블을 형성하는 방법 및 이를 위한 데이터 압축기의 구조를 나타내는 도면이다.
도 12는 본 발명의 다른 실시예에 따른 솔리드 스테이트 드라이브(Solid State Drive)에서의 데이터 압축 방법을 나타내는 순서도이다.
도 13은 도 12의 데이터 압축 방법으로 동작하는 데이터 압축기를 나타내는 블록도이다.
도 14는 본 발명의 실시예에 따른 제2 테이블의 예를 나타내는 도면이다.
도 15는 본 발명의 또 다른 실시예에 따른 솔리드 스테이트 드라이브(Solid State Drive)에서의 데이터 압축 방법을 나타내는 순서도이다.
도 16은 도 15의 데이터 압축 방법으로 동작하는 데이터 압축기를 나타내는 블록도이다.
도 17은 본 발명의 실시예에 따른 청크 데이터의 구조를 나타내는 도면이다.
도 18은 본 발명의 실시예에 따른 컴퓨팅 시스템을 나타내는 도면이다.
Claims (10)
- 저장 장치에서의 데이터 압축 방법에 있어서,
청크(chunk) 데이터의 심볼의 발생 빈도수와 부호어 길이와의 관계를 나타내는 제1 테이블을 이용하여 상기 심볼에 대한 부호어 길이를 결정하고, 상기 부호어 길이를 갖고 상기 심볼에 대응되는 부호어를 결정하는 단계; 및
상기 심볼을 상기 부호어로 변환하여 상기 청크 데이터에 대한 압축 데이터를 생성하는 단계를 구비하는 것을 특징으로 하는 데이터 압축 방법. - 제1 항에 있어서, 상기 청크 데이터를 압축하는 단계는,
상기 청크 데이터의 상기 심볼의 발생 빈도수를 카운트 하는 단계;
상기 제1 테이블 상에 상기 심볼의 발생 빈도수에 대응되는 부호어 길이를 검색하여 결정하는 단계; 및
상기 부호어 길이에 대응되는 부호어를 결정하여, 상기 심볼을 상기 부호어로 변환하는 단계를 구비하는 것을 특징으로 하는 데이터 압축 방법. - 제1 항에 있어서,
상기 제1 테이블을 형성하는 단계를 더 구비하는 것을 특징으로 하는 데이터 압축 방법. - 제3 항에 있어서, 상기 제1 테이블을 형성하는 단계는,
테스트 데이터를 수신하는 단계; 및
상기 테스트 데이터의 각 심볼의 발생 빈도의 확률을 산출하는 단계;
상기 테스트 데이터의 각 심볼의 발생 빈도의 확률을 정렬하여 허프만 트리를 생성하는 단계; 및
상기 테스트 데이터에 대한 상기 허프만 트리에 근거하여, 상기 테스트 데이터의 각 심볼과 상기 각 심볼에 대응되는 부호어 길이를 매치하는 단계를 구비하는 것을 특징으로 하는 데이터 압축 방법. - 제3 항에 있어서, 상기 테스트 데이터는,
상기 청크 데이터와 압축률, 디코딩 방식 및 크기 중 적어도 하나가 동일한 것을 특징으로 하는 데이터 압축 방법. - 제1 항에 있어서, 상기 제1 테이블은,
상기 각 심볼과 상기 부호어의 길이와의 제1 관계에 대한 제1 서브 테이블 및 상기 각 심볼과 상기 부호어의 길이와의 제2 관계에 대한 제2 서브 테이블을 포함하는 것을 특징으로 하는 데이터 압축 방법. - 제6 항에 있어서, 상기 청크 데이터를 압축하는 단계는,
상기 제1 서브 테이블 및 상기 제2 서브 테이블 중 하나를 선택하는 단계; 및
상기 제1 서브 테이블 및 상기 제2 서브 테이블 중 선택된 서브 테이블을 이용하여 상기 부호어의 길이를 결정하는 단계를 구비하는 것을 특징으로 하는 데이터 압축 방법. - 제7 항에 있어서, 상기 서브 테이블을 선택하는 단계는,
상기 청크 데이터를 압축하고자 하는 압축률에 따라 상기 서브 테이블을 선택하는 것을 특징으로 하는 데이터 압축 방법. - 제1 항에 있어서, 상기 저장 장치는,
솔리드 스테이트 드라이브(Solid State Drive)인 것을 특징으로 하는 데이터 압축 방법. - 저장 장치에서의 데이터 압축 방법에 있어서,
청크 데이터를 제1 유형의 제1 청크 데이터 및 제2 유형의 제2 청크 데이터 중 하나로 분류하는 단계;
상기 제1 청크 데이터의 각 심볼의 발생 빈도수와 부호어의 길이와의 관계를 나타내는 제1 테이블을 이용하여 상기 제1 청크 데이터의 각 심볼에 대응되는 부호어 길이를 결정하고, 상기 제1 청크 데이터의 각 심볼을 대응되는 부호어의 길이를 갖는 부호어로 변환하여 상기 제1 청크 데이터를 압축하는 단계; 및
상기 제2 청크 데이터에 포함되는 각 심볼의 발생 빈도수와 부호어의 길이와의 관계를 나타내는 제2 테이블을 이용하여 상기 제2 청크 데이터의 각 심볼에 대응되는 부호어 길이를 결정하고, 상기 제2 청크 데이터의 각 심볼을 대응되는 부호어의 길이를 갖는 부호어로 변환하여 상기 제2 청크 데이터를 압축하는 단계를 구비하는 것을 특징으로 하는 데이터 압축 방법.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020110027176A KR101725223B1 (ko) | 2011-03-25 | 2011-03-25 | 저장 장치에서의 데이터 압축 방법 |
| US13/364,787 US8593307B2 (en) | 2011-03-25 | 2012-02-02 | Methods of compressing data in storage device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020110027176A KR101725223B1 (ko) | 2011-03-25 | 2011-03-25 | 저장 장치에서의 데이터 압축 방법 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20120109753A true KR20120109753A (ko) | 2012-10-09 |
| KR101725223B1 KR101725223B1 (ko) | 2017-04-11 |
Family
ID=46876896
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020110027176A Active KR101725223B1 (ko) | 2011-03-25 | 2011-03-25 | 저장 장치에서의 데이터 압축 방법 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US8593307B2 (ko) |
| KR (1) | KR101725223B1 (ko) |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101531661B1 (ko) * | 2013-11-19 | 2015-06-26 | 서울대학교산학협력단 | 비휘발성 메모리 장치, 이를 위한 메모리 제어기 및 동작 방법 |
| KR20160021004A (ko) * | 2014-08-15 | 2016-02-24 | 김정훈 | 이진 데이터의 압축 및 복원 방법과 장치 |
| KR20160021416A (ko) * | 2014-08-17 | 2016-02-25 | 김정훈 | 이진 데이터의 압축 및 복원 방법과 장치 |
| KR20170019556A (ko) * | 2015-08-11 | 2017-02-22 | 삼성전자주식회사 | 스토리지 장치로부터 데이터를 검색하는 방법 |
| KR20180067956A (ko) * | 2016-12-13 | 2018-06-21 | 에스케이텔레콤 주식회사 | 데이터 압축 장치 및 방법 |
| US10810016B2 (en) | 2015-08-11 | 2020-10-20 | Samsung Electronics Co., Ltd. | Operating methods of computing devices comprising storage devices including nonvolatile memory devices, buffer memories and controllers |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8847798B2 (en) * | 2012-12-17 | 2014-09-30 | Maxeler Technologies, Ltd. | Systems and methods for data compression and parallel, pipelined decompression |
| US9430326B2 (en) * | 2014-07-22 | 2016-08-30 | HGST Netherlands B.V. | Multiple ECC codeword sizes in an SSD |
| US10152389B2 (en) | 2015-06-19 | 2018-12-11 | Western Digital Technologies, Inc. | Apparatus and method for inline compression and deduplication |
| US9552384B2 (en) | 2015-06-19 | 2017-01-24 | HGST Netherlands B.V. | Apparatus and method for single pass entropy detection on data transfer |
| US11232075B2 (en) * | 2018-10-25 | 2022-01-25 | EMC IP Holding Company LLC | Selection of hash key sizes for data deduplication |
| US10509676B1 (en) * | 2018-10-29 | 2019-12-17 | EMC IP Holding Company LLC | Techniques for optimizing entropy computations |
| CN113572479B (zh) * | 2021-09-22 | 2021-12-21 | 苏州浪潮智能科技有限公司 | 一种有限状态熵编码表的生成方法及系统 |
| CN118838292B (zh) * | 2024-09-20 | 2024-12-03 | 武汉优力克自动化系统工程股份有限公司 | 一种汽车生产线数据管理方法及系统 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6636167B1 (en) * | 2000-10-31 | 2003-10-21 | Intel Corporation | Method of generating Huffman code length information |
| US6646577B2 (en) * | 2000-10-31 | 2003-11-11 | Intel Corporation | Method of performing Huffman decoding |
| US7071853B2 (en) * | 2000-09-28 | 2006-07-04 | Roke Manor Research Limited | Method of compressing data packets |
| US7375660B1 (en) * | 2006-11-24 | 2008-05-20 | Primax Electronics Ltd. | Huffman decoding method |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4646061A (en) * | 1985-03-13 | 1987-02-24 | Racal Data Communications Inc. | Data communication with modified Huffman coding |
| US4899149A (en) * | 1986-02-28 | 1990-02-06 | Gary Kahan | Method of and apparatus for decoding Huffman or variable-length coees |
| KR0139162B1 (ko) | 1994-11-30 | 1998-05-15 | 김광호 | 부호어재배정을 이용한 가변장부호화장치 및 복호화장치 |
| JP3659196B2 (ja) | 2001-06-18 | 2005-06-15 | ヤマハ株式会社 | ハフマン符号の復号方法および装置 |
| US7436329B2 (en) | 2003-04-17 | 2008-10-14 | Droplet Technology, Inc. | Multiple technique entropy coding system and method |
-
2011
- 2011-03-25 KR KR1020110027176A patent/KR101725223B1/ko active Active
-
2012
- 2012-02-02 US US13/364,787 patent/US8593307B2/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7071853B2 (en) * | 2000-09-28 | 2006-07-04 | Roke Manor Research Limited | Method of compressing data packets |
| US6636167B1 (en) * | 2000-10-31 | 2003-10-21 | Intel Corporation | Method of generating Huffman code length information |
| US6646577B2 (en) * | 2000-10-31 | 2003-11-11 | Intel Corporation | Method of performing Huffman decoding |
| US7375660B1 (en) * | 2006-11-24 | 2008-05-20 | Primax Electronics Ltd. | Huffman decoding method |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101531661B1 (ko) * | 2013-11-19 | 2015-06-26 | 서울대학교산학협력단 | 비휘발성 메모리 장치, 이를 위한 메모리 제어기 및 동작 방법 |
| KR20160021004A (ko) * | 2014-08-15 | 2016-02-24 | 김정훈 | 이진 데이터의 압축 및 복원 방법과 장치 |
| KR20160021416A (ko) * | 2014-08-17 | 2016-02-25 | 김정훈 | 이진 데이터의 압축 및 복원 방법과 장치 |
| KR20170019556A (ko) * | 2015-08-11 | 2017-02-22 | 삼성전자주식회사 | 스토리지 장치로부터 데이터를 검색하는 방법 |
| US10621171B2 (en) | 2015-08-11 | 2020-04-14 | Samsung Electronics Co., Ltd. | Method for searching for data in storage device |
| US10810016B2 (en) | 2015-08-11 | 2020-10-20 | Samsung Electronics Co., Ltd. | Operating methods of computing devices comprising storage devices including nonvolatile memory devices, buffer memories and controllers |
| KR20180067956A (ko) * | 2016-12-13 | 2018-06-21 | 에스케이텔레콤 주식회사 | 데이터 압축 장치 및 방법 |
Also Published As
| Publication number | Publication date |
|---|---|
| US8593307B2 (en) | 2013-11-26 |
| US20120242517A1 (en) | 2012-09-27 |
| KR101725223B1 (ko) | 2017-04-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101725223B1 (ko) | 저장 장치에서의 데이터 압축 방법 | |
| US8949687B2 (en) | Memory device and memory system | |
| US10187081B1 (en) | Dictionary preload for data compression | |
| US10680645B2 (en) | System and method for data storage, transfer, synchronization, and security using codeword probability estimation | |
| US12321596B2 (en) | System and method for codebook-based data encoding | |
| US20140040214A1 (en) | Entropy Coding and Decoding Using Polar Codes | |
| JP2021527376A (ja) | データ圧縮 | |
| US12373101B2 (en) | System and method for data compaction with codebook statistical estimates | |
| US12061794B2 (en) | System and method for multiple pass data compaction utilizing delta encoding | |
| US12307089B2 (en) | System and method for compaction of floating-point numbers within a dataset | |
| US12224776B2 (en) | System and method for data storage, transfer, synchronization, and security using automated model monitoring and training | |
| KR20150092585A (ko) | 이진 영상에 기반한 유전체 데이터 압축 방법 및 장치 | |
| JP2016052046A (ja) | 圧縮装置、伸長装置およびストレージ装置 | |
| US12081241B2 (en) | Code table generation device, memory system, and code table generation method | |
| JP7562451B2 (ja) | 圧縮装置および制御方法 | |
| JP6301459B2 (ja) | 周波数エンベロープベクトル量子化方法及び装置 | |
| US12443343B2 (en) | Data compaction utilizing delta encoding | |
| US11855772B2 (en) | High throughput polar ECC decoding via compressed successive cancellation algorithm | |
| US20230315288A1 (en) | System and method for data compaction and security using multiple encoding algorithms with pre-coding and complexity estimation |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20110325 |
|
| PG1501 | Laying open of application | ||
| A201 | Request for examination | ||
| PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20160224 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20110325 Comment text: Patent Application |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20160630 Patent event code: PE09021S01D |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20170117 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20170404 Patent event code: PR07011E01D |
|
| PR1002 | Payment of registration fee |
Payment date: 20170405 End annual number: 3 Start annual number: 1 |
|
| PG1601 | Publication of registration | ||
| PR1001 | Payment of annual fee |
Payment date: 20200330 Start annual number: 4 End annual number: 4 |
|
| PR1001 | Payment of annual fee |
Payment date: 20210329 Start annual number: 5 End annual number: 5 |
|
| PR1001 | Payment of annual fee |
Payment date: 20220323 Start annual number: 6 End annual number: 6 |
|
| PR1001 | Payment of annual fee |
Payment date: 20230327 Start annual number: 7 End annual number: 7 |
|
| PR1001 | Payment of annual fee |
Payment date: 20240325 Start annual number: 8 End annual number: 8 |
|
| PR1001 | Payment of annual fee |
Payment date: 20250325 Start annual number: 9 End annual number: 9 |