KR20120084180A - 데이터 압축 장치, 이의 동작 방법, 및 이를 포함하는 데이터 처리 장치 - Google Patents

데이터 압축 장치, 이의 동작 방법, 및 이를 포함하는 데이터 처리 장치 Download PDF

Info

Publication number
KR20120084180A
KR20120084180A KR20110005575A KR20110005575A KR20120084180A KR 20120084180 A KR20120084180 A KR 20120084180A KR 20110005575 A KR20110005575 A KR 20110005575A KR 20110005575 A KR20110005575 A KR 20110005575A KR 20120084180 A KR20120084180 A KR 20120084180A
Authority
KR
South Korea
Prior art keywords
data
symbols
input
input data
frequency
Prior art date
Application number
KR20110005575A
Other languages
English (en)
Inventor
조경래
윤찬호
공준진
윤필상
Original Assignee
삼성전자주식회사
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 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR20110005575A priority Critical patent/KR20120084180A/ko
Priority to DE201110056563 priority patent/DE102011056563A1/de
Priority to JP2011288902A priority patent/JP5881416B2/ja
Priority to CN201110453646.1A priority patent/CN102694554B/zh
Priority to US13/353,984 priority patent/US8659452B2/en
Publication of KR20120084180A publication Critical patent/KR20120084180A/ko
Priority to US14/173,086 priority patent/US9191027B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6064Selection of Compressor
    • H03M7/6082Selection strategies
    • H03M7/6088Selection strategies according to the data type

Abstract

데이터 압축 장치의 동작 방법이 개시된다. 상기 방법은 입력 버퍼를 이용하여 입력 데이터를 버퍼링하는 동안 데이터 패턴 분석기를 이용하여 상기 입력 데이터의 패턴을 분석하고 분석 결과를 출력하는 단계와, 데이터 압축 관리기가 상기 분석 결과에 따라 상기 입력 버퍼에 의하여 버퍼된 데이터를 바이패스하거나 또는 압축하는 단계를 포함한다.

Description

데이터 압축 장치, 이의 동작 방법, 및 이를 포함하는 데이터 처리 장치 {Data compression device, operation method using the same, and data processing apparatus having the same}
본 발명의 개념에 따른 실시 예는 데이터 압축 기술에 관한 것으로, 특히 전송되는 데이터의 패턴을 분석하고 분석 결과에 따라 상기 데이터의 압축 여부를 결정할 수 있는 데이터 압축 장치, 이의 동작 방법, 및 이를 포함하는 데이터 처리 장치에 관한 것이다.
데이터 압축은 데이터를 더 작은 저장 공간에 효율적으로 저장하기 위한 기술 또는 상기 기술의 실제 적용을 의미한다.
데이터의 압축은 데이터를 더 작은 크기로 변환시키는 인코딩(encoding) 과정과 인코드된 데이터를 원래 데이터로 복원시키는 디코딩(decoding) 과정을 포함한다.
본 발명이 이루고자 하는 기술적인 과제는 데이터 압축 시간을 감소시키기 위하여 데이터가 입력 버퍼로 전송되는 도중에 상기 데이터의 패턴을 분석하고 분석 결과에 따라 상기 데이터의 압축 여부를 결정할 수 있는 데이터 압축 방법과 상기 방법을 수행할 수 있는 장치를 제공하는 것이다.
본 발명의 일 실시 예에 따른 데이터 압축 장치의 동작 방법은 입력 버퍼를 이용하여 입력 데이터를 버퍼링하는 동안, 데이터 패턴 분석기를 이용하여 상기 입력 데이터의 패턴을 분석하고 분석 결과를 출력하는 단계와 상기 분석 결과에 따라, 상기 입력 버퍼에 의하여 버퍼된 데이터를 바이패스하거나 또는 압축하는 단계를 포함한다.
실시 예에 따라 상기 분석 결과를 출력하는 단계는 상기 입력 데이터의 헤더에 포함되며 상기 입력 데이터의 압축 여부를 지시하는 지시 비트를 분석하여 상기 분석 결과를 출력한다.
다른 실시 예에 따라 상기 분석 결과를 출력하는 단계는 상기 입력 데이터에 포함된 복수의 심벌들 각각의 빈도 수를 계수하는 단계와, 최대 빈도 수와 최소 빈도 수 중에서 어느 하나와 기준 값의 비교 결과를 상기 분석 결과로서 출력하는 단계를 포함한다.
또 다른 실시 예에 따라 상기 분석 결과를 출력하는 단계는 상기 입력 데이터에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고 상기 복수의 심벌들 각각에 코드워드를 할당하는 단계와, 상기 복수의 심벌들 각각의 빈도 수와 상기 복수의 심벌들 각각에 할당된 코드워드의 비트 수를 이용하여 예측 데이터의 크기를 계산하는 단계와, 상기 예측 데이터의 크기와 기준 데이터의 크기의 비교 결과를 상기 분석 결과로서 출력하는 단계를 포함한다.
또 다른 실시 예에 따라 상기 분석 결과를 출력하는 단계는 상기 입력 데이터의 헤더에 포함되며, 상기 입력 데이터의 압축 여부를 지시하는 지시 비트를 분석하는 단계와, 상기 지시 비트의 분석 결과에 따라, 상기 입력 데이터에 포함된 복수의 심벌들 각각의 빈도 수를 계수하는 단계와, 최대 빈도 수와 최소 빈도 수 중에서 어느 하나와 기준 값의 비교 결과를 상기 분석 결과로서 출력하는 단계를 포함한다.
상기 버퍼된 데이터를 바이패스하거나 또는 압축하는 단계는 상기 분석 결과를 메모리에 저장하는 단계와, 상기 메모리에 저장된 상기 분석 결과에 따라 상기 버퍼된 데이터를 바이패스하거나 또는 프로세서를 이용하여 상기 버퍼된 데이터를 압축하는 단계를 포함한다.
상기 입력 데이터에 대한 패턴 분석은 상기 버퍼된 데이터가 출력되기 전에 종료된다.
본 발명의 실시 예에 따른 데이터 압축 장치는 입력 버퍼와, 상기 입력 버퍼로 전송되는 입력 데이터의 패턴을 분석하여 분석 코드를 출력하기 위한 데이터 패턴 분석기와, 상기 분석 코드에 따라, 상기 입력 버퍼에 의해 버퍼된 데이터를 비휘발성 메모리 장치로 바이패스하거나 또는 상기 버퍼된 데이터를 압축하여 생성된 압축 데이터를 상기 비휘발성 메모리 장치로 전송하는 데이터 압축 관리기를 포함한다.
실시 예에 따라 상기 데이터 패턴 분석기는 상기 입력 데이터의 헤더에 포함되며 상기 입력 데이터의 압축 여부를 나타내는 지시 비트를 분석하여 상기 분석 코드를 출력한다.
다른 실시 예에 따라 상기 데이터 패턴 분석기는 상기 입력 데이터에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고, 최대 빈도 수와 최소 빈도 수 중에서 어느 하나와 기준 값의 비교 결과를 상기 분석 코드로서 출력한다.
또 다른 실시 예에 따라 상기 데이터 패턴 분석기는 상기 입력 데이터에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고, 상기 복수의 심벌들 각각에 코드워드를 할당하고, 상기 복수의 심벌들 각각의 빈도 수와 상기 복수의 심벌들 각각에 할당된 코드워드의 비트 수를 이용하여 예측된 데이터의 크기와 기준 데이터의 크기의 비교 결과를 상기 분석 코드로서 출력한다.
또 다른 실시 예에 따라 상기 데이터 패턴 분석기는 상기 입력 데이터의 헤더에 포함된 상기 입력 데이터의 압축 여부를 나타내는 지시 비트에 따라 제어 신호를 출력하는 헤더 분석기와, 활성화된 상기 제어 신호에 따라 인에이블되고, 상기 입력 데이터에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고 상기 복수의 심벌들 각각에 코드워드를 할당하고, 상기 복수의 심벌들 각각의 빈도 수와 상기 복수의 심벌들 각각에 할당된 코드워드의 비트 수를 이용하여 예측된 데이터의 크기와 기준 데이터의 크기의 비교 결과를 상기 분석 코드로서 출력하는 예측기를 포함한다.
또 다른 실시 예에 따라 상기 데이터 패턴 분석기는 상기 입력 데이터에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고 상기 복수의 심벌들 각각에 코드워드를 할당하는 패턴 분석기와, 상기 패턴 분석기로부터 출력된 상기 복수의 심벌들 각각의 빈도 수와 상기 복수의 심벌들 각각에 할당된 코드워드를 수신하고, 상기 복수의 심벌들 각각의 빈도 수와 상기 복수의 심벌들 각각에 할당된 코드워드의 비트 수를 이용하여 예측된 데이터의 크기와 기준 데이터의 크기의 비교 결과를 상기 분석 코드로서 출력하는 예측기를 포함한다.
상기 데이터 압축 관리기는 상기 분석 코드를 저장하기 위한 메모리와, 상기 버퍼된 데이터를 압축하여 상기 압축 데이터를 출력하는 프로세서와, 상기 메모리에 저장된 상기 분석 코드에 따라, 상기 버퍼된 데이터를 상기 비휘발성 메모리 장치로 바이패스하거나 또는 상기 프로세서로 전송하기 위한 선택기를 포함한다.
상기 프로세서는 상기 입력 버퍼로부터 출력된 상기 버퍼된 데이터 중에서 중복되는 심벌들에 대해서는 상기 심벌들에 대한 연관 정보를 출력한다.
본 발명의 실시 예에 따른 데이터 처리 장치는 비휘발성 메모리 장치와, 바이패스된 입력 데이터 또는 압축 데이터를 상기 비휘발성 메모리 장치로 전송하는 데이터 압축 장치를 포함한다. 상기 데이터 압축 장치는 입력 버퍼와, 입력 데이터가 상기 입력 버퍼로 전송되는 동안 상기 입력 데이터의 패턴을 분석하여 분석 코드를 출력하기 위한 데이터 패턴 분석기와, 상기 분석 코드에 따라, 상기 입력 버퍼에 의하여 버퍼된 데이터를 상기 바이패스된 입력 데이터로서 출력하거나 또는 상기 버퍼된 데이터를 압축하여 상기 압축 데이터를 출력하는 데이터 압축 관리기를 포함한다.
상기 데이터 처리 장치는 SSD(solid state drive), 스마트 카드, 메모리 카드, 스마트 폰(smart phone), 또는 태블릿(tablet) PC로 구현될 수 있다.
상기 데이터 압축 장치는 상기 비휘발성 메모리를 제어하는 메모리 컨트롤러 내부에 집적된다.
본 발명의 다른 실시 예에 따른 데이터 압축 장치의 동작 방법은 입력 버퍼로 전송되는 입력 데이터를 가로채는 단계와, 가로챈 입력 데이터의 패턴을 분석하고 분석 결과를 출력하는 단계와, 상기 분석 결과에 따라 상기 입력 버퍼에 의하여 버퍼된 데이터를 바이패스하거나 또는 압축하여 출력하는 단계를 포함한다.
상기 입력 데이터에 대한 패턴 분석은 상기 버퍼된 데이터가 상기 버퍼로부터 출력되기 전에 종료된다.
상기 입력 데이터가 n-비트 데이터 일 때 상기 버퍼된 데이터는 상기 입력 데이터의 정수 배인 데이터이다.
본 발명의 실시 예에 따른 데이터 압축 장치와 이의 동작 방법은 데이터가 입력 버퍼로 전송되는 도중에 상기 데이터의 패턴을 분석하고 분석 결과에 따라 상기 데이터의 압축 여부를 결정할 수 있으므로 상기 데이터를 압축하는 시간을 감소시킬 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1a는 본 발명의 일 실시예에 따른 데이터 압축 장치의 블록도를 나타낸다.
도 1b는 도 1의 입력 버퍼로부터 출력되는 버퍼된 데이터의 출력 타이밍도를 나타낸다.
도 1c는 도 2에 도시된 버퍼된 데이터 구조를 나타낸다.
도 2는 본 발명의 다른 실시예에 따른 데이터 압축 장치의 블록도를 나타낸다.
도 3은 도 2에 도시된 데이터 패턴 분석기의 동작을 설명하기 위한 테이블이다.
도 4는 본 발명의 또 다른 실시예에 따른 데이터 압축 장치의 블록도를 나타낸다.
도 5는 본 발명의 또 다른 실시예에 따른 데이터 압축 장치의 블록도를 나타낸다.
도 6은 도 1a, 도 2, 도 4, 또는 도 5에 도시된 데이터 압축 장치의 동작을 설명하기 위한 플로우차트이다.
도 7은 도 1a, 도 2, 도 4, 또는 도 5에 도시된 데이터 압축 장치의 동작을 설명하기 위한 플로우차트이다.
도 8은 도 1a, 도 2, 도 4, 또는 도 5에 도시된 데이터 압축 장치의 동작을 설명하기 위한 플로우차트이다.
도 9는 정적 호프만 코딩 규칙을 이용하는 도 5에 도시된 패턴 분석기의 동작을 설명하기 위한 플로우차트이다.
도 10은 동적 호프만 코딩 규칙을 이용하는 도 5에 도시된 패턴 분석기의 동작을 설명하기 위한 플로우차트이다.
도 11은 도 1a, 도 2, 도 4, 또는 도 5에 도시된 데이터 압축 장치를 포함하는 데이터 처리 시스템의 일 실시예를 나타낸다.
도 12는 도 1a, 도 2, 도 4, 또는 도 5에 도시된 데이터 압축 장치를 포함하는 데이터 처리 시스템의 다른 실시예를 나타낸다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1a는 본 발명의 일 실시예에 따른 데이터 압축 장치의 블록도를 나타내고, 도 1b는 도 1의 입력 버퍼로부터 출력되는 버퍼된 데이터의 출력 타이밍도를 나타내고, 도 1c는 도 2에 도시된 버퍼된 데이터 구조를 나타낸다.
도 1a부터 도 1c을 참조하면, 데이터 압축 장치(10A)는 데이터 패턴 분석기 (20A), 입력 버퍼(30), 및 데이터 압축 관리기(data compression manager; 40)를 포함한다. 실시 예에 따라, 데이터 압축 장치(10A)는 출력 버퍼(50)를 더 포함할 수 있다. 데이터 압축 장치(10A)는 집적 회로에 구현될 수 있다.
데이터 패턴 분석기(20A)는 입력 데이터(DATA)의 패턴을 분석할 수 있는 하드웨어 또는 프로세서(processor)로 구현될 수 있다. 또한, 데이터 압축 관리기 (40)는, 데이터 패턴 분석기(20A)로부터 출력된 분석 결과(INF1)에 따라, 입력 버퍼(30)에 의하여 버퍼된 데이터(BDi)를 바이패스(bypass)하거나 또는 압축할 수 있는 하드웨어 또는 프로세서로 구현될 수 있다.
데이터 패턴 분석기(20A)는 입력 버퍼(30)로 전송되는 입력 데이터(DATA)를 가로채 입력 데이터(DATA)의 패턴을 분석하여 분석 결과, 즉 분석 코드(INF1)를 출력할 수 있다.
예컨대, 데이터 패턴 분석기(20A)에 포함된 헤더 분석기(21)는 입력 데이터 (DATA)의 헤더(HEADER)에 포함된 지시 비트를 분석하고, 분석 결과에 따라 분석 코드(INF1)를 출력할 수 있다. 분석 코드(INF1)는 1-비트 또는 그 이상의 비트로 구현될 수 있다.
헤더(HEADER)에 포함된 지시 비트는 입력 데이터(DATA)의 바디(DATA1)에 포함된 데이터가 압축되었는지의 여부를 나타내는 비트로서, 1-비트 또는 그 이상의 비트일 수 있다.
예컨대, 입력 데이터(DATA)의 바디(DATA1)에 포함된 데이터가 압축 데이터 (compressed data; 예컨대 멀티-미디어 데이터)일 때 헤더(HEADER)에 포함된 지시 비트는 1이고, 입력 데이터(DATA)의 바디(DATA1)에 포함된 데이터가 압축되지 않은 데이터(uncompressed data)일 때 헤더(HEADER)에 포함된 지시 비트는 0일 수 있다.
이때, 데이터 패턴 분석기(20A), 예컨대 헤더 분석기(21)는 헤더(HEADER)에 포함된 지시 비트에 따라 1(예컨대, 지시 비트가 1일 때) 또는 0(예컨대, 지시 비트가 0일 때)을 갖는 분석 코드(INF1)를 출력할 수 있다.
입력 버퍼(30)는 데이터 버스를 통하여 입력된 입력 데이터(DATA)를 버퍼링하여 버퍼된 데이터(BDi)를 출력한다. 예컨대, 입력 데이터(DATA)가 a-비트 데이터일 때 버퍼된 데이터(BDi)는 b-비트 데이터일 수 있다. 여기서, a과 b은 자연수로서, a=b 또는 b은 a의 정수 배일 수 있다.
예컨대, 입력 데이터(DATA)가 8-비트 데이터이고 버퍼된 데이터(BDi)가 64-비트 데이터일 때, 데이터 패턴 분석기(20A)는 시간 간격(T) 이내에 8개의 입력 데이터(DATA) 각각에 대한 패턴 분석을 수행할 수 있다. 입력 버퍼(30)는, 8개의 입력 데이터(DATA)가 모두 입력될 마다 활성화되는 인에이블 신호(EN)에 따라, 각 버퍼된 데이터(BDi, i=0, 1, 2, 3, ...)를 출력할 수 있다.
데이터 압축 관리기(40)는 데이터 패턴 분석기(20A)로부터 출력된 분석 코드 (INF1)에 따라 입력 버퍼(30)에 의하여 버퍼된 데이터(BDi)를 외부로 바이패스 (bypass)하거나 또는 버퍼된 데이터(BDi)를 압축하여 생성된 압축 데이터(CDATA)를 상기 외부로 전송할 수 있다.
예컨대, 분석 코드(INF1)가 0일 때, 데이터 압축 관리기(40)는 입력 버퍼 (30)에 의하여 버퍼된 데이터(BDi)를 압축하고 압축 데이터(CDATA)를 출력 버퍼 (50)로 출력한다. 분석 코드(INF1)가 1일 때 데이터 압축 관리기(40)는 입력 버퍼 (30)에 의하여 버퍼된 데이터(BDi)를 출력 버퍼(50)로 바이패스한다.
데이터 압축 관리기(40)는 분석 코드(INF1)를 수신하여 저장하기 위한 메모리(41), 선택기(45)로부터 출력된 버퍼된 데이터(BDi)를 압축하여 압축 데이터 (CDATA)를 생성하기 위한 프로세서(43), 및 메모리(41)에 저장된 분석 코드(INF1)에 따라 입력 버퍼(30)로부터 버퍼된 데이터(BDi)를 외부로 바이패스하거나 또는 프로세서(43)로 전송하기 위한 선택기(45)를 포함한다.
예컨대, 도 1c에 도시된 버퍼된 데이터(D0)를 처리하는 프로세서(43)는 각 심벌(A1, A2, 및 A3)을 순차적으로 압축하고, 이전에 압축된 심벌(예컨대, 첫 번째 A1)과 동일한 심벌(예컨대, 네 번째 A1)에 대해서는 압축하지 않고 심벌들(예컨대, 첫 번째 A1과 네 번째 A1) 사이의 연관 관계를 나타내는 연관 정보를 출력할 수 있다. 물론, 프로세서(43)는 모든 심벌들 각각을 압축할 수도 있다.
출력 버퍼(50)는 선택기(45)로부터 출력된 버퍼된 데이터(BDi) 또는 프로세서(43)에 의하여 압축된 압축 데이터(CDATA)를 수신하여 버퍼링할 수 있다.
도 1a을 참조하여 설명한 바와 같이, 데이터 패턴 분석기(20A)는 입력 데이터(DATA)가 입력 버퍼(30)로 전송되는 도중에(또는, 입력 데이터(DATA)가 입력 버퍼(30)에 의하여 버퍼링되는 도중에) 입력 데이터(DATA)의 패턴(예컨대, 헤더에 포함된 지시 비트)을 분석하고, 분석 결과(INF1)를 데이터 압축 관리기(40)로 전송할 수 있다. 데이터 압축 관리기(40)는 분석 결과(INF1)에 따라 버퍼된 데이터(BDi)를 바이패스할지 또는 압축할지를 결정할 수 있다.
데이터 압축 관리기(40)는 각 입력 데이터(DATA)의 패턴을 분석하기 위하여 입력 버퍼(30)에 저장된 각 입력 데이터(DATA) 또는 버퍼된 데이터(BDi)를 별도로 리드할 필요가 없으므로 데이터 압축 속도를 개선할 수 있다.
도 2는 본 발명의 다른 실시예에 따른 데이터 압축 장치의 블록도를 나타낸다.
도 2를 참조하면, 도 1에 도시된 입력 데이터(DATA)와 달리, 도 2에 도시된 입력 데이터(DATA)는 바디(DATA1)에 포함된 데이터가 압축 데이터인지를 지시하는 지시 비트를 포함하는 헤더를 포함하지 않는다.
데이터 압축 장치(10B)는 데이터 패턴 분석기(20B), 입력 버퍼(30), 및 데이터 압축 관리기(40)를 포함한다. 실시 예에 따라, 데이터 압축 장치(10B)는 출력 버퍼(50)를 더 포함할 수 있다.
데이터 패턴 분석기(20B)에 포함된 패턴 분석기(23)는 입력 데이터(DATA)가 입력 버퍼(30)로 전송될 때 입력 데이터(DATA)를 가로채 입력 데이터(DATA)의 패턴을 분석하고 분석 결과(INF2)를 출력한다. 이 경우, 패턴 분석기(23)는 도 1c의 버퍼된 데이터(D0)에 포함된 각 입력 데이터에 대한 패턴을 다음 버퍼된 데이터(D1)가 출력되기 전까지 분석할 수 있다.
패턴 분석기(23)는 입력 데이터(DATA)에 포함된 복수의 심벌들(symbols) 각각의 빈도 수를 계수(count)하고, 최대 빈도 수(또는 최소 빈도 수)와 기준 값을 비교하고, 비교 결과를 분석 결과(INF2)로서 데이터 압축 관리기(40)로 출력한다. 하나의 심벌은 k(k은 자연수, 예컨대 k=8)-비트들을 포함할 수 있다.
도 3은 도 2에 도시된 데이터 패턴 분석기의 동작을 설명하기 위한 테이블이다.
도 2와 도 3을 참조하면, 패턴 분석기(23)는 입력 데이터(DATA)에 포함된 복수의 심벌들(AA, BB, CC, DD, EE, FF, ...) 각각의 빈도 수(10, 100, 1000, 2, 5, 50, ...)를 카운트하고, 최대 빈도 수(또는 최소 빈도 수)와 기준 값을 비교한다.
설명의 일 예로서, 상기 최대 빈도 수가 상기 기준 값보다 큰 경우, 즉, 상기 최대 빈도 수에 상응하는 심벌의 반복 회수가 많으므로, 패턴 분석기(23)는 입력 데이터(DATA)에 대한 압축을 지시하는 분석 코드(INF2; 예컨대 0)를 데이터 압축 관리기(40)로 출력한다. 압축을 지시하는 분석 코드(INF2)에 따라, 데이터 압축 관리기(40)는 입력 버퍼(30)에 의하여 버퍼된 데이터(BDi)를 압축하여 압축 데이터 (CDATA)를 비휘발성 메모리 장치, 예컨대 플래시 메모리 장치로 출력하거나 또는 출력 버퍼(50)를 통하여 상기 비휘발성 메모리 장치로 출력할 수 있다.
그러나, 상기 최대 빈도 수가 상기 기준 값보다 작은 경우, 패턴 분석기(23)는 버퍼된 데이터(BDi)에 대한 바이패스를 지시하는 분석 코드(INF2; 예컨대 1)를 데이터 압축 관리기(40)로 출력한다. 바이패스를 지시하는 분석 코드(INF2)에 따라, 데이터 압축 관리기(40)는 버퍼된 데이터(BDi)를 바이패스하여 비휘발성 메모리 장치 또는 출력 버퍼(50)로 전송할 수 있다.
도 4는 본 발명의 또 다른 실시예에 따른 데이터 압축 장치의 블록도를 나타낸다. 도 4에는 헤더 분석기(25)와 예측기(26)를 포함하는 데이터 패턴 분석기 (20C)가 도시되어 있다.
즉, 데이터 압축 장치(10C)는 데이터 패턴 분석기(20C), 입력 버퍼(30), 및 데이터 압축 관리기(40)를 포함한다. 실시 예에 따라 데이터 압축 장치(10C)는 출력 버퍼(50)를 더 포함할 수 있다.
헤더 분석기(25)는 입력 데이터(DATA)의 헤더(HEADER)에 포함된 지시 비트에 따라 예측기(26)의 동작을 제어하는 제어 신호와 데이터 압축 관리기(40)의 동작을 제어하는 제1제어 코드를 출력한다.
예컨대, 바디(DATA1)에 포함된 데이터가 이미 압축된 데이터임을 나타내는 지시 비트(예컨대, 1)에 따라 헤더 분석기(25)는 예측기(26)의 동작을 디스에이블시키기 위한 제어 신호(예컨대, 로우 레벨을 갖는 제어 신호)를 예측기(26)로 출력한다. 이때, 헤더 분석기(25)는 버퍼된 데이터(BDi)를 바이패스시키기 위한 제1제어 코드를 데이터 압축 관리기(40)로 출력할 수 있다.
그러나, 바디(DATA1)에 포함된 데이터가 압축되지 않은 데이터임을 나타내는 지시 비트(예컨대, 0)에 따라 헤더 분석기(25)는 예측기(26)의 동작을 인에이블시키기 위한 제어 신호(예컨대, 하이 레벨을 갖는 제어 신호)를 예측기(26)로 출력한다.
예측기(26)는 활성화된 제어 신호(예컨대, 하이 레벨을 갖는 제어 신호)에 따라 인에이블되고, 도 3에 도시된 바와 같이 입력 데이터(DATA), 즉 바디(DATA1)에 포함된 복수의 심벌들(AA, BB, CC, DD, EE, FF, ...) 각각의 빈도 수(10, 100, 1000, 2, 5, 50, ...)를 계수한다.
예측기(26)는 복수의 심벌들(AA, BB, CC, DD, EE, FF, ...) 각각에 코딩 규칙에 따라 코드워드(1011, 101, 10, 10101, 10001, 110, ...)를 할당하고, 복수의 심벌들(AA, BB, CC, DD, EE, FF, ...) 각각의 빈도 수(10, 100, 1000, 2, 5, 50, ...)와 복수의 심벌들(AA, BB, CC, DD, EE, FF, ...) 각각에 할당된 코드워드 (1011, 101, 10, 10101, 10001, 110, ...)의 비트 수(4, 3, 2, 5, 5, 3, ...)를 이용하여 압축될 데이터의 크기를 예측하고, 예측된 압축 데이터(이하, '예측 데이터'라 한다)의 크기와 기준 데이터의 크기를 비교하고 비교 결과를 출력한다.
즉, 예측기(26)는 실시 예로서 제시된 수학식 1에 따라 예측 데이터(ECDATA)의 크기를 계산할 수 있다.
[수학식 1]
Figure pat00001
n(n은 자연수)은 바디(DATA1)에 포함된 데이터의 심벌의 총 수를 나타내고, fi는 i-번째 심벌의 빈도 수를 나타내고, Bi는 i-번째 심벌에 할당된 코드워드 (codeword)의 비트 수를 나타내다.
예컨대, 심벌(AA)의 빈도 수는 10이고, 심벌(AA)에 할당된 코드워드(1011)의 비트 수는 3이고, 심벌(CC)의 빈도 수는 1,000이고, 심벌(CC)에 할당된 코드워드 (10)의 비트 수는 2이다.
입력 데이터(DATA)의 크기가 5Kbyte이고 기준 데이터의 크기가 3Kbyte이고, 수학식 1에 따라 계산된 예측 데이터(ECDATA)의 크기가 3Kbyte보다 클 때, 예측기 (26)는 버퍼된 데이터(BDi)를 바이패스시킬 것을 지시하는 제2제어 코드를 출력한다. 반대로, 수학식 1에 따라 계산된 예측 데이터(ECDATA)의 크기가 3Kbyte보다 작을 때, 예측기(26)는 버퍼된 데이터(BDi)를 압축시킬 것을 지시하는 제2제어 코드를 출력한다. 예컨대, 기준 데이터의 크기는 입력 데이터(DATA)의 크기의 c(c는 소수, 예컨대, 0.6)배일 수 있다.
도 4에 도시된 분석 코드(INF3)는 헤더(HEADER)에 포함된 지시 비트에 따라 발생한 제1제어 코드와, 예측 데이터(ECDATA)의 크기와 기준 데이터의 크기의 비교 결과에 따라 발생한 제2제어 코드를 포함한다.
도 1부터 도 4를 참조하여 설명한 바와 같이, 데이터 압축 관리기(40)가 버퍼된 데이터(BDi)를 바이패스하는 경우는 다음과 같다.
첫째, 바디(DATA1)에 포함된 데이터가 이미 압축된 경우,
둘째, 바디(DATA1)에 포함된 데이터가 압축되지 않은 데이터이고 예측 데이터(ECDATA)의 크기가 기준 데이터의 크기보다 큰 경우,
이때 데이터 압축 관리기(40)는 데이터 패턴 분석기(20C)로부터 출력된 분석 코드(INF3)를 분석하고 분석 결과에 따라 버퍼된 데이터(BDi)를 바이패스한다.
그러나, 바디(DATA1)에 포함된 데이터가 압축되지 않은 데이터이고 예측 데이터(ECDATA)의 크기가 기준 데이터의 크기보다 작은 경우, 데이터 압축 관리기 (40)는 데이터 패턴 분석기(20C)로부터 출력된 분석 코드(INF3)에 따라 버퍼된 데이터(BDi)를 압축하여 압축 데이터(CDATA)를 출력한다.
상술한 바와 같이, 각각의 입력 데이터(DATA)가 입력 버퍼(30)로 전송되는 동안 데이터 패턴 분석기(20C)는 각각의 입력 데이터(DATA)의 패턴을 분석하고 분석 결과(INF3)를 데이터 압축 관리기(40)로 전송한다. 데이터 압축 관리기(40)는 분석 결과(INF3)에 따라 버퍼된 데이터(BDi)를 바이패스하거나 또는 압축할 수 있다.
도 5는 본 발명의 또 다른 실시예에 따른 데이터 압축 장치의 블록도를 나타낸다. 도 5에는 패턴 분석기(27)와 예측기(28)를 포함하는 데이터 패턴 분석기 (20D)가 도시되어 있다.
즉, 데이터 압축 장치(10D)는 데이터 패턴 분석기(20D), 입력 버퍼(30), 및 데이터 압축 관리기(40)를 포함한다. 실시 예에 따라 데이터 압축 장치(10D)는 출력 버퍼(50)를 더 포함할 수 있다.
패턴 분석기(27)는 입력 데이터(DATA)에 포함된 복수의 심벌들(AA, BB, CC, DD, EE, FF, ...) 각각의 빈도 수(10, 100, 1000, 2, 5, 50, ...)를 계수하고, 복수의 심벌들(AA, BB, CC, DD, EE, FF, ...) 각각에 코딩 규칙에 따라 코드워드 (1011, 101, 10, 10101, 10001, 110, ...)를 할당하고, 복수의 심벌들(AA, BB, CC, DD, EE, FF, ...) 각각의 빈도 수(10, 100, 1000, 2, 5, 50, ...)와 복수의 심벌들(AA, BB, CC, DD, EE, FF, ...) 각각에 할당된 코드워드(1011, 101, 10, 10101, 10001, 110, ...)를 예측기(28)로 전송한다.
예측기(28)는 복수의 심벌들(AA, BB, CC, DD, EE, FF, ...) 각각의 빈도 수 (10, 100, 1000, 2, 5, 50, ...)와 복수의 심벌들(AA, BB, CC, DD, EE, FF, ...) 각각에 할당된 코드워드(1011, 101, 10, 10101, 10001, 110, ...)의 비트 수(4, 3, 2, 5, 5, 3, ...)를 이용하여 압축될 데이터의 크기를 수학식 1에 따라 예측하고, 예측 데이터(ECDATA)의 크기와 기준 데이터의 크기를 비교하고, 비교 결과에 상응하는 분석 코드(INF4)를 데이터 압축 관리기(40)로 출력한다.
예측 데이터(ECDATA)의 크기가 기준 데이터의 크기보다 작은 경우(예컨대, 압축 효율이 좋은 경우), 데이터 압축 관리기(40)는 데이터 패턴 분석기(20C)로부터 출력된 분석 코드(INF3; 예컨대 0)에 따라 버퍼된 데이터(BDi)를 압축하여 생성된 압축 데이터(CDATA)를 출력한다.
그러나, 예측 데이터(ECDATA)의 크기가 기준 데이터의 크기보다 큰 경우(예컨대, 압축 효율이 좋지 않은 경우), 데이터 압축 관리기(40)는 데이터 패턴 분석기(20C)로부터 출력된 분석 코드(INF3; 예컨대 1)에 따라 버퍼된 데이터(BDi)를 바이패스한다.
도 6은 도 1a, 도 2, 도 4, 또는 도 5에 도시된 데이터 압축 장치의 동작을 설명하기 위한 플로우차트이다.
도 1a 내지 도 6을 참조하면, 데이터 패턴 분석기(20A, 20B, 20C, 또는 20D)는 입력 데이터(DATA)에 헤더가 포함되어 있는지의 여부를 검색한다(S10).
입력 데이터(DATA)에 헤더(HEADER)가 존재할 때(S20), 헤더 분석기(21)는 헤더(HEADER)에 포함된 지시 비트가 바디(DATA1)에 포함된 데이터가 압축 데이터임을 나타내는지의 여부를 판단한다(S30).
S30의 판단 결과, 바디(DATA1)에 포함된 데이터가 압축 데이터일 때 헤더 분석기(21)는 상기 데이터가 압축 데이터임을 지시하는 분석 코드(INF1)를 데이터 압축 관리기(40)로 전송한다. 따라서 데이터 압축 관리기(40)는 분석 코드(INF1)에 따라 버퍼된 데이터(BDi)를 출력 버퍼(50)로 바이패스한다(S32). 따라서 데이터 압축 관리기(40)에 의하여 바이패스된 버퍼된 데이터(BDi)는 출력 버퍼(50)를 통하여 비휘발성 메모리 장치에 저장될 수 있다.
그러나 S30의 판단 결과, 바디(DATA1)에 포함된 데이터가 압축되지 않은 데이터일 때 헤더 분석기(21)는 상기 데이터가 압축되지 않은 데이터임을 지시하는 분석 코드(INF1)를 데이터 압축 관리기(40)로 전송한다. 따라서 데이터 압축 관리기(40)는, 분석 코드(INF1)에 따라, 버퍼된 데이터(BDi)를 압축하여 생성된 압축 데이터(CDATA)를 출력 버퍼(50)로 출력한다(S34). 따라서 데이터 압축 관리기(40)로부터 출력된 압축 데이터(CDATA)는 출력 버퍼(50)를 통하여 비휘발성 메모리 장치에 저장될 수 있다.
입력 데이터(DATA)에 헤더(HEADER)가 존재하지 않을 때(S30), 패턴 분석기 (23)는 도 2와 도 3을 참조하여 설명한 바와 같이 입력 데이터(DATA)의 패턴을 검색한다(S40).
도 7은 도 1a, 도 2, 도 4, 또는 도 5에 도시된 데이터 압축 장치의 동작을 설명하기 위한 플로우차트이다.
도 2에 도시된 패턴 분석기(23)는 입력 데이터(DATA)의 패턴을 분석한다 (S42). 즉, 패턴 분석기(23)는 입력 데이터(DATA)에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고, 계수된 빈도 수들 중에서 최대 빈도 수(또는 최소 빈도 수)와 기준 값을 비교한다(S44).
S44의 비교 결과, 상기 최대 빈도 수(또는 최소 빈도 수)가 상기 기준 값보다 클 때, 패턴 분석기(23)는 버퍼된 데이터(BDi)의 압축을 지시하는 분석 코드 (INF2)를 데이터 압축 관리기(40)로 전송한다. 따라서, 데이터 압축 관리기(40)는 버퍼된 데이터(BDi)를 압축하고(S46), 압축 데이터(CDATA)를 출력 버퍼(50)로 전송한다. 출력 버퍼(50)에 저장된 압축 데이터(CDATA)는 비휘발성 메모리 장치에 저장된다.
S44의 비교 결과, 상기 최대 빈도 수(또는 최소 빈도 수)가 상기 기준 값보다 작을 때, 패턴 분석기(23)는 버퍼된 데이터(BDi)의 바이패스를 지시하는 분석 코드(INF2)를 데이터 압축 관리기(40)로 전송한다. 따라서, 데이터 압축 관리기 (40)는 버퍼된 데이터(BDi)를 출력 버퍼(50)로 바이패스한다(S48).
도 8은 도 1a, 도 2, 도 4, 또는 도 5에 도시된 데이터 압축 장치의 동작을 설명하기 위한 플로우차트이다.
도 5에 도시된 패턴 분석기(27)는 입력 데이터(DATA)의 패턴을 분석한다 (S42). 즉 패턴 분석기(27)는 입력 데이터(DATA)에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고, 코딩 규칙에 따라 상기 복수의 심벌들 각각에 코드워드를 할당하고, 상기 복수의 심벌들 각각의 빈도 수와 상기 복수의 심벌들 각각에 할당된 코드워드를 예측기(28)로 출력한다.
예측기(28)는 패턴 분석기(27)로부터 출력된 상기 복수의 심벌들 각각의 빈도 수와 상기 복수의 심벌들 각각에 할당된 코드워드의 비트 수를 이용하여 수학식 1에 따라 예측 데이터(ECDATA)의 크기를 계산한다(S80).
예측기(28)는 예측 데이터의 크기와 기준 데이터의 크기를 비교하고(S82), 상기 예측 데이터의 크기와 상기 기준 데이터의 크기보다 클 때, 예측기(28)는 버퍼된 데이터(BDi)의 바이패스를 지시하는 분석 코드(INF4)를 데이터 압축 관리기 (40)로 전송한다. 따라서, 데이터 압축 관리기(40)는 버퍼된 데이터(BDi)를 출력 버퍼(50)로 바이패스한다(S84). 그 후 출력 버퍼(50)에 저장된 버퍼된 데이터(BDi)는 비휘발성 메모리 장치에 저장된다(S88).
상기 예측 데이터의 크기와 상기 기준 데이터의 크기보다 작을 때, 예측기 (28)는 버퍼된 데이터(BDi)의 압축을 지시하는 분석 코드(INF4)를 데이터 압축 관리기(40)로 전송한다. 따라서, 데이터 압축 관리기(40)는 버퍼된 데이터(BDi)를 압축하고(S86), 압축 데이터(CDATA)를 출력 버퍼(50)로 전송한다. 출력 버퍼(50)에 저장된 압축 데이터(CDATA)는 비휘발성 메모리 장치에 저장된다(S88).
패턴 분석기(27)는 입력 데이터(DATA)에 포함된 복수의 심벌들 각각의 빈도 수를 카운트하고 코딩 규칙에 따라 상기 복수의 심벌들 각각에 코드워드를 할당한다.
상기 코딩 규칙은 호프만 코딩 규칙(Huffman coding rule), LZW 코딩 규칙 (Lempel Zip Welch rule), 산술 코딩 규칙(Arithmetic coding rule), 또는 RLE(Run Length Encoding)일 수 있다. 또한, 상기 호프만 코딩 규칙은 정적 호프만 코딩 규칙과 동적 호프만 코딩 규칙을 포함한다.
도 9는 정적 호프만 코딩 규칙을 이용하는 도 5에 도시된 패턴 분석기의 동작을 설명하기 위한 플로우차트이다.
도 5와 도 9를 참조하면, 패턴 분석기(27)는 입력 데이터(DATA)의 패턴을 검색한다(S40). 즉 패턴 분석기(27)는 입력 데이터(DATA)에 포함된 심벌이 발견될 때마다(S61), 해당 심벌의 빈도 수를 +1증가시킨다(S62).
패턴 분석기(27)는 입력 데이터(DATA) 모두에 대하여 심벌 단위로 S40, S61, 및 S62를 수행한다(S63). 패턴 분석기(27)는 입력 데이터(DATA)에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고 코딩 규칙(예컨대, 정적 호프만 코딩 규칙)에 따라 상기 복수의 심벌들 각각에 코드워드를 할당한다(S64).
도 10은 동적 호프만 코딩 규칙을 이용하는 도 5에 도시된 패턴 분석기의 동작을 설명하기 위한 플로우차트이다.
도 5와 도 10을 참조하면, 패턴 분석기(27)는 입력 데이터(DATA)의 패턴을 검색한다(S40). 즉 패턴 분석기(27)는 입력 데이터(DATA)에 포함된 심벌이 발견되면(S66), 상기 심벌이 새로운 심벌인지의 여부를 판단하고(67), 상기 심벌이 새로운 심벌이면 상기 심벌을 심벌 리스트에 추가하고(S68), 해당 심벌의 빈도 수를 +1증가시킨다(S69). 그러나 발견된 심벌이 새로운 심벌이 아닐 때(S67), 해당 심벌의 빈도 수를 +1증가시킨다(S69).
패턴 분석기(27)는 입력 데이터(DATA) 모두에 대하여 심벌 단위로 S66~69를 수행한다(S70). 패턴 분석기(27)는 입력 데이터(DATA)에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고 코딩 규칙(예컨대, 동적 호프만 코딩 규칙)에 따라 상기 복수의 심벌들 각각에 코드워드를 할당한다(S71).
도 11은 도 1a, 도 2, 도 4, 또는 도 5에 도시된 데이터 압축 장치를 포함하는 데이터 처리 시스템의 일 실시예를 나타낸다.
데이터 처리 시스템(100)은 SSD(solid state drive)로 구현될 수 있다. 또한, 데이터 처리 시스템(100)은 데이터 패턴 분석기(20A부터 20D를 총괄적으로 '20'으로 나타냄)와 데이터 압축 관리기(40)를 포함하는 모든 데이터 처리 장치를 포함한다.
데이터 처리 시스템(100)은 메모리 컨트롤러(90)와 복수의 플래시 메모리 장치들(141)을 포함한다. 메모리 컨트롤러(90)는 데이터 패턴 분석기(20)를 포함하는 호스트 인터페이스(101), 데이터 압축 관리기(40), 메인 프로세서(110), 휘발성 메모리(120), 및 플래시 관리 컨트롤러(Flash Management Controller(FMC); 140)를 포함한다. 각 구성 요소(40, 101, 110, 120, 및 140)는 데이터 버스(100-1)를 통하여 서로 데이터 통신을 수행할 수 있다.
호스트 인터페이스(101)는 호스트와 메모리 컨트롤러(90)에서 데이터 통신을 위한 인터페이스 기능을 수행한다.
도 11에 도시된 DRAM(dynamic random access memory)으로 구현된 휘발성 메모리(120)는 도 1a, 도 2, 도 4, 또는 도 5에 도시된 입력 버퍼(30)와 출력 버퍼(50)의 기능을 함께 수행할 수 있다.
호스트로부터 출력된 입력 데이터(DATA)가 제1데이터 경로(PATH1)를 통하여 휘발성 메모리(120)로 전송되는 도중에, 데이터 패턴 분석기(20)는 입력 데이터 (DATA)를 가로채서 입력 데이터(DATA)의 패턴을 분석한다. 입력 데이터(DATA)의 패턴을 분석하는 각 방법은 도 1부터 도 10을 참조하여 설명한 바와 같다.
데이터 패턴 분석기(20)는 분석 결과에 따른 분석코드(INF1, INF2, INF3, 또는 INF4)를 데이터 압축 관리기(40)로 전송한다.
데이터 압축 관리기(40)는 바이패스를 지시하는 분석코드(INF1, INF2, INF3, 또는 INF4)에 따라 제2데이터 경로(PATH2)를 통하여 휘발성 메모리(120)의 입력 버퍼로부터 리드된 버퍼된 데이터(BDi)를 바이패스하여 휘발성 메모리(120)의 출력 버퍼에 저장한다.
그러나, 데이터 압축 관리기(40)는 압축을 지시하는 분석코드(INF1, INF2, INF3, 또는 INF4)에 따라 제2데이터 경로(PATH2)를 통하여 휘발성 메모리(120)의 입력 버퍼로부터 리드된 버퍼된 데이터(BDi)를 압축하여 압축 데이터를 휘발성 메모리(120)의 출력 버퍼에 저장한다.
휘발성 메모리(120)의 출력 버퍼에 저장된 데이터, 즉 바이패스된 입력 데이터(DATA) 또는 압축 데이터(CDATA)는 제3데이터 경로(PATH3)를 통하여 FMC(140)로 전송되고, FMC(140)로 전송된 바이패스된 입력 데이터(DATA) 또는 압축 데이터 (CDATA)는 FMC(140)의 제어에 따라 복수의 플래시 메모리 장치들(141) 중에서 적어도 하나의 플래시 메모리 장치로 전송된다.
도 12는 도 1a, 도 2, 도 4, 또는 도 5에 도시된 데이터 압축 장치를 포함하는 데이터 처리 시스템의 다른 실시예를 나타낸다.
도 12를 참조하면, 스마트 카드(smart card) 또는 메모리 카드(memory card)로 구현될 수 있는 데이터 처리 시스템(200)은 카드 인터페이스(210), 메모리 컨트롤러(220), 및 비휘발성 메모리 장치(230)를 포함한다.
메모리 컨트롤러(220)는 데이터 압축 장치(10A, 10B, 10C, 또는 10D; 총괄적으로 10으로 표시한다)를 포함한다. 실시 예에 따라 데이터 압축 장치(10)는 메모리 컨트롤러(220)의 외부에 구현될 수도 있다.
카드 인터페이스(210)는 메모리 컨트롤러(220)와 호스트 사이에서 주고받는 데이터의 교환을 제어하고, 메모리 컨트롤러(220)는 비휘발성 메모리 장치(230)의 동작, 예컨대 프로그램(program) 동작, 리드(read) 동작, 또는 이레이즈(erase) 동작을 제어한다.
데이터 압축 장치(10)는 호스트로부터 출력되고 카드 인터페이스(210)를 통하여 입력된 데이터(DATA)가 입력 버퍼(30)로 전송되는 도중에 데이터(DATA)의 패턴을 분석하고 분석 결과에 따라 입력 버퍼(30)에 의하여 버퍼된 데이터(BDi)를 비휘발성 메모리 장치(230)로 바이패스하거나 또는 버퍼된 데이터(BDi)를 압축하여 압축 데이터(CDATA)를 비휘발성 메모리 장치(230)로 전송한다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10A, 10B, 10C, 및 10D: 데이터 압축 장치
20A, 20B, 20C, 및 20D: 데이터 패턴 분석기
30: 입력 버퍼
40: 데이터 압축 관리기
41: 메모리
43: 프로세서
45: 선택기
101: 호스트 장치]
110: 메인 프로세서
120: DRAM
140: 플래시 관리 컨트롤러
210: 카드 인터페이스
220: 메모리 컨트롤러
230: 메모리 장치

Claims (29)

  1. 입력 버퍼를 이용하여 입력 데이터를 버퍼링하는 동안, 데이터 패턴 분석기를 이용하여 상기 입력 데이터의 패턴을 분석하고 분석 결과를 출력하는 단계; 및
    상기 분석 결과에 따라, 상기 입력 버퍼에 의하여 버퍼된 데이터를 바이패스하거나 또는 압축하는 단계를 포함하는 데이터 압축 장치의 동작 방법.
  2. 제1항에 있어서, 상기 분석 결과를 출력하는 단계는,
    상기 입력 데이터의 헤더에 포함되며, 상기 입력 데이터의 압축 여부를 지시하는 지시 비트를 분석하여 상기 분석 결과를 출력하는 데이터 압축 장치의 동작 방법.
  3. 제1항에 있어서, 상기 분석 결과를 출력하는 단계는,
    상기 입력 데이터에 포함된 복수의 심벌들 각각의 빈도 수를 계수하는 단계; 및
    최대 빈도 수와 최소 빈도 수 중에서 어느 하나와 기준 값의 비교 결과를 상기 분석 결과로서 출력하는 단계를 포함하는 데이터 압축 장치의 동작 방법.
  4. 제1항에 있어서, 상기 분석 결과를 출력하는 단계는,
    상기 입력 데이터에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고 상기 복수의 심벌들 각각에 코드워드를 할당하는 단계;
    상기 복수의 심벌들 각각의 빈도 수와 상기 복수의 심벌들 각각에 할당된 코드워드의 비트 수를 이용하여 예측 데이터의 크기를 계산하는 단계; 및
    상기 예측 데이터의 크기와 기준 데이터의 크기의 비교 결과를 상기 분석 결과로서 출력하는 데이터 압축 장치의 동작 방법.
  5. 제1항에 있어서, 상기 분석 결과를 출력하는 단계는,
    상기 입력 데이터의 헤더에 포함되며, 상기 입력 데이터의 압축 여부를 지시하는 지시 비트를 분석하는 단계;
    상기 지시 비트의 분석 결과에 따라, 상기 입력 데이터에 포함된 복수의 심벌들 각각의 빈도 수를 계수하는 단계; 및
    최대 빈도 수와 최소 빈도 수 중에서 어느 하나와 기준 값의 비교 결과를 상기 분석 결과로서 출력하는 단계를 포함하는 데이터 압축 장치의 동작 방법.
  6. 제1항에 있어서, 상기 버퍼된 데이터를 바이패스하거나 또는 압축하는 단계는,
    상기 분석 결과를 메모리에 저장하는 단계; 및
    상기 메모리에 저장된 상기 분석 결과에 따라 상기 버퍼된 데이터를 바이패스하거나 또는 프로세서를 이용하여 상기 버퍼된 데이터를 압축하는 단계를 포함하는 데이터 압축 장치의 동작 방법.
  7. 제1항에 있어서,
    상기 입력 데이터에 대한 패턴 분석은 상기 버퍼된 데이터가 출력되기 전에 종료되는 데이터 압축 장치의 동작 방법.
  8. 입력 버퍼;
    상기 입력 버퍼로 전송되는 입력 데이터의 패턴을 분석하여 분석 코드를 출력하기 위한 데이터 패턴 분석기; 및
    상기 분석 코드에 따라, 상기 입력 버퍼에 의해 버퍼된 데이터를 비휘발성 메모리 장치로 바이패스하거나 또는 상기 버퍼된 데이터를 압축하여 생성된 압축 데이터를 상기 비휘발성 메모리 장치로 전송하는 데이터 압축 관리기를 포함하는 데이터 압축 장치.
  9. 제8항에 있어서, 상기 데이터 패턴 분석기는,
    상기 입력 데이터의 헤더에 포함되며, 상기 입력 데이터의 압축 여부를 나타내는 지시 비트를 분석하여 상기 분석 코드를 출력하는 데이터 압축 장치.
  10. 제8항에 있어서, 상기 데이터 패턴 분석기는,
    상기 입력 데이터에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고, 최대 빈도 수와 최소 빈도 수 중에서 어느 하나와 기준 값의 비교 결과를 상기 분석 코드로서 출력하는 데이터 압축 장치.
  11. 제8항에 있어서, 상기 데이터 패턴 분석기는,
    상기 입력 데이터에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고, 상기 복수의 심벌들 각각에 코드워드를 할당하고, 상기 복수의 심벌들 각각의 빈도 수와 상기 복수의 심벌들 각각에 할당된 코드워드의 비트 수를 이용하여 예측된 데이터의 크기와 기준 데이터의 크기의 비교 결과를 상기 분석 코드로서 출력하는 데이터 압축 장치.
  12. 제8항에 있어서, 상기 데이터 패턴 분석기는,
    상기 입력 데이터의 헤더에 포함된 상기 입력 데이터의 압축 여부를 나타내는 지시 비트에 따라 제어 신호를 출력하는 헤더 분석기; 및
    활성화된 상기 제어 신호에 따라 인에이블되고, 상기 입력 데이터에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고 상기 복수의 심벌들 각각에 코드워드를 할당하고, 상기 복수의 심벌들 각각의 빈도 수와 상기 복수의 심벌들 각각에 할당된 코드워드의 비트 수를 이용하여 예측된 데이터의 크기와 기준 데이터의 크기의 비교 결과를 상기 분석 코드로서 출력하는 예측기를 포함하는 데이터 압축 장치.
  13. 제8항에 있어서, 상기 데이터 패턴 분석기는,
    상기 입력 데이터에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고 상기 복수의 심벌들 각각에 코드워드를 할당하는 패턴 분석기; 및
    상기 패턴 분석기로부터 출력된 상기 복수의 심벌들 각각의 빈도 수와 상기 복수의 심벌들 각각에 할당된 코드워드를 수신하고, 상기 복수의 심벌들 각각의 빈도 수와 상기 복수의 심벌들 각각에 할당된 코드워드의 비트 수를 이용하여 예측된 데이터의 크기와 기준 데이터의 크기의 비교 결과를 상기 분석 코드로서 출력하는 예측기를 포함하는 데이터 압축 장치.
  14. 제8항에 있어서, 상기 데이터 압축 관리기는,
    상기 분석 코드를 저장하기 위한 메모리;
    상기 버퍼된 데이터를 압축하여 상기 압축 데이터를 출력하는 프로세서; 및
    상기 메모리에 저장된 상기 분석 코드에 따라, 상기 버퍼된 데이터를 상기 비휘발성 메모리 장치로 바이패스하거나 또는 상기 프로세서로 전송하기 위한 선택기를 포함하는 데이터 압축 장치.
  15. 제14항에 있어서, 상기 프로세서는,
    상기 입력 버퍼로부터 출력된 상기 버퍼된 데이터 중에서 중복되는 심벌들에 대해서는 상기 심벌들에 대한 연관 정보를 출력하는 데이터 압축 장치.
  16. 비휘발성 메모리 장치;
    바이패스된 입력 데이터 또는 압축 데이터를 상기 비휘발성 메모리 장치로 전송하는 데이터 압축 장치를 포함하며,
    상기 데이터 압축 장치는,
    입력 버퍼;
    입력 데이터가 상기 입력 버퍼로 전송되는 동안, 상기 입력 데이터의 패턴을 분석하여 분석 코드를 출력하기 위한 데이터 패턴 분석기; 및
    상기 분석 코드에 따라, 상기 입력 버퍼에 의하여 버퍼된 데이터를 상기 바이패스된 입력 데이터로서 출력하거나 또는 상기 버퍼된 데이터를 압축하여 상기 압축 데이터를 출력하는 데이터 압축 관리기를 포함하는 데이터 처리 장치.
  17. 제16항에 있어서, 상기 데이터 패턴 분석기는,
    상기 입력 데이터의 헤더에 포함되며, 상기 입력 데이터의 압축 여부를 나타내는 지시 비트를 분석하여 상기 분석 코드를 출력하는 데이터 처리 장치.
  18. 제16항에 있어서, 상기 데이터 패턴 분석기는,
    상기 입력 데이터에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고, 최대 빈도 수와 최소 빈도 수 중에서 어느 하나와 기준 값의 비교 결과를 상기 분석 코드로서 출력하는 데이터 처리 장치.
  19. 제16항에 있어서, 상기 데이터 패턴 분석기는,
    상기 입력 데이터에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고, 상기 복수의 심벌들 각각에 코드워드를 할당하고, 상기 복수의 심벌들 각각의 빈도 수와 상기 복수의 심벌들 각각에 할당된 코드워드의 비트 수를 이용하여 예측된 데이터의 크기와 기준 데이터의 크기의 비교 결과를 상기 분석 코드로서 출력하는 데이터 처리 장치.
  20. 제16항에 있어서, 상기 데이터 압축 관리기는,
    상기 분석 코드를 저장하기 위한 메모리;
    상기 버퍼된 데이터를 압축하여 상기 압축 데이터를 출력하는 프로세서; 및
    상기 메모리에 저장된 상기 분석 코드에 따라, 상기 입력 버퍼로부터 출력된 상기 입력 데이터를 상기 바이패스된 입력 데이터로서 출력하거나 또는 상기 프로세서로 전송하기 위한 선택기를 포함하는 데이터 처리 장치.
  21. 제16항에 있어서, 상기 데이터 처리 장치는 SSD(solid state drive)인 데이터 처리 장치.
  22. 제16항에 있어서, 상기 데이터 처리 장치는 스마트 카드 또는 메모리 카드인 데이터 처리 장치.
  23. 제16항에 있어서, 상기 데이터 처리 장치는 스마트 폰(smart phone) 또는 태블릿(tablet) PC인 데이터 처리 장치.
  24. 제16항에 있어서, 상기 데이터 압축 장치는 상기 비휘발성 메모리를 제어하는 메모리 컨트롤러 내부에 집적된 데이터 처리 장치.
  25. 입력 버퍼로 전송되는 입력 데이터를 가로채는 단계:
    가로챈 입력 데이터의 패턴을 분석하고 분석 결과를 출력하는 단계; 및
    상기 분석 결과에 따라 상기 입력 버퍼에 의하여 버퍼된 데이터를 바이패스하거나 또는 압축하여 출력하는 단계를 포함하는 데이터 압축 장치의 동작 방법.
  26. 제25항에 있어서,
    상기 입력 데이터에 대한 패턴 분석은 상기 버퍼된 데이터가 상기 버퍼로부터 출력되기 전에 종료되는 데이터 압축 장치의 동작 방법.
  27. 제25항에 있어서,
    상기 입력 데이터가 n-비트 데이터 일 때 상기 버퍼된 데이터는 상기 입력 데이터의 정수 배인 데이터 압축 장치의 동작 방법.
  28. 제25항에 있어서, 상기 분석 결과를 출력하는 단계는,
    상기 입력 데이터의 헤더에 포함되며, 상기 입력 데이터의 압축 여부를 지시하는 지시 비트를 분석하여 상기 분석 결과를 출력하는 데이터 압축 장치의 동작 방법.
  29. 제25항에 있어서, 상기 분석 결과를 출력하는 단계는,
    상기 입력 데이터에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고 상기 복수의 심벌들 각각에 코드워드를 할당하는 단계;
    상기 복수의 심벌들 각각의 빈도 수와 상기 복수의 심벌들 각각에 할당된 코드워드의 비트 수를 이용하여 예측 데이터의 크기를 계산하는 단계; 및
    상기 예측 데이터의 크기와 기준 데이터의 크기의 비교 결과를 상기 분석 결과로서 출력하는 데이터 압축 장치의 동작 방법.
KR20110005575A 2011-01-19 2011-01-19 데이터 압축 장치, 이의 동작 방법, 및 이를 포함하는 데이터 처리 장치 KR20120084180A (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR20110005575A KR20120084180A (ko) 2011-01-19 2011-01-19 데이터 압축 장치, 이의 동작 방법, 및 이를 포함하는 데이터 처리 장치
DE201110056563 DE102011056563A1 (de) 2011-01-19 2011-12-16 Datenkompressionsvorrichtungen, Betriebsverfahren dafür und Datenverarbeitungsgeräte einschließlich derselben
JP2011288902A JP5881416B2 (ja) 2011-01-19 2011-12-28 データ圧縮装置、及びデータ圧縮装置を含むデータ処理装置
CN201110453646.1A CN102694554B (zh) 2011-01-19 2011-12-30 数据压缩设备、其操作方法以及包括该设备的数据处理装置
US13/353,984 US8659452B2 (en) 2011-01-19 2012-01-19 Data compression devices, operating methods thereof, and data processing apparatuses including the same
US14/173,086 US9191027B2 (en) 2011-01-19 2014-02-05 Data compression devices, operating methods thereof, and data processing apparatuses including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20110005575A KR20120084180A (ko) 2011-01-19 2011-01-19 데이터 압축 장치, 이의 동작 방법, 및 이를 포함하는 데이터 처리 장치

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020170054930A Division KR101818440B1 (ko) 2017-04-28 2017-04-28 데이터 압축 장치, 이의 동작 방법, 및 이를 포함하는 데이터 처리 장치

Publications (1)

Publication Number Publication Date
KR20120084180A true KR20120084180A (ko) 2012-07-27

Family

ID=46490360

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20110005575A KR20120084180A (ko) 2011-01-19 2011-01-19 데이터 압축 장치, 이의 동작 방법, 및 이를 포함하는 데이터 처리 장치

Country Status (5)

Country Link
US (2) US8659452B2 (ko)
JP (1) JP5881416B2 (ko)
KR (1) KR20120084180A (ko)
CN (1) CN102694554B (ko)
DE (1) DE102011056563A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9679621B2 (en) 2015-10-27 2017-06-13 SK Hynix Inc. Semiconductor device and semiconductor system

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9792308B2 (en) * 1998-12-11 2017-10-17 Realtime Data, Llc Content estimation data compression
JP2014052899A (ja) 2012-09-07 2014-03-20 Toshiba Corp メモリシステムとその制御方法
US9325762B2 (en) * 2012-12-11 2016-04-26 Qualcomm Incorporated Method and apparatus for efficient signaling for compression
US9264707B2 (en) * 2013-02-04 2016-02-16 Google Inc. Multi-symbol run-length coding
CN104125458B (zh) * 2013-04-27 2017-08-08 展讯通信(上海)有限公司 内存数据无损压缩方法及装置
KR102078853B1 (ko) 2013-11-27 2020-02-18 삼성전자 주식회사 메모리 시스템, 호스트 시스템 및 메모리 시스템에서의 라이트 동작 수행 방법
US20150227540A1 (en) * 2014-02-12 2015-08-13 Hitachi, Ltd. System and method for content-aware data compression
KR20160031169A (ko) * 2014-09-12 2016-03-22 에스케이하이닉스 주식회사 데이터 패턴 탐지 장치, 이를 포함하는 반도체 장치 및 그 동작 방법
TWI534814B (zh) * 2014-10-20 2016-05-21 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
CN104967498B (zh) * 2015-06-11 2018-01-30 中国电子科技集团公司第五十四研究所 一种基于历史的卫星网络数据包压缩传输方法
CN104917591B (zh) * 2015-06-11 2018-03-23 中国电子科技集团公司第五十四研究所 一种适用于单向有损链路的卫星网络数据包压缩方法
US10135461B2 (en) * 2015-09-25 2018-11-20 Intel Corporation Systems, methods, and apparatuses for decompression using hardware and software
SE542507C2 (en) * 2016-03-31 2020-05-26 Zeropoint Tech Ab Variable-sized symbol entropy-based data compression
EP3407499A1 (en) * 2017-05-24 2018-11-28 ams AG Integrator circuit for use in a sigma-delta modulator
US10097202B1 (en) * 2017-06-20 2018-10-09 Samsung Electronics Co., Ltd. SSD compression aware
CN110290099A (zh) * 2018-03-19 2019-09-27 海能达通信股份有限公司 数据传输方法、通信设备及具有存储功能的装置
KR102515127B1 (ko) * 2018-03-22 2023-03-28 삼성전자주식회사 디스플레이 장치의 저 전력 모드에서의 동작을 지원하는 디스플레이 드라이버 회로
CN109445693A (zh) * 2018-10-19 2019-03-08 郑州云海信息技术有限公司 一种数据压缩方法和装置
US10666289B1 (en) * 2019-01-16 2020-05-26 International Business Machines Corporation Data compression using dictionary encoding
US10944423B2 (en) 2019-03-14 2021-03-09 International Business Machines Corporation Verifying the correctness of a deflate compression accelerator
US11108406B2 (en) * 2019-06-19 2021-08-31 Intel Corporation System, apparatus and method for dynamic priority-aware compression for interconnect fabrics

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5467087A (en) * 1992-12-18 1995-11-14 Apple Computer, Inc. High speed lossless data compression system
US5635932A (en) * 1994-10-17 1997-06-03 Fujitsu Limited Lempel-ziv compression with expulsion of dictionary buffer matches
US5896099A (en) * 1995-06-30 1999-04-20 Sanyo Electric Co., Ltd. Audio decoder with buffer fullness control
JPH09138677A (ja) * 1995-11-10 1997-05-27 Brother Ind Ltd キャラクタのデータ記憶装置及びキャラクタ出力装置
JP3161697B2 (ja) * 1997-04-18 2001-04-25 富士ゼロックス株式会社 符号化装置、復号装置および符号化復号装置ならびにそれらの方法
JP3639436B2 (ja) * 1998-07-14 2005-04-20 シャープ株式会社 画像処理装置
US6195024B1 (en) * 1998-12-11 2001-02-27 Realtime Data, Llc Content independent data compression method and system
US6624761B2 (en) * 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
US6597812B1 (en) * 1999-05-28 2003-07-22 Realtime Data, Llc System and method for lossless data compression and decompression
JP2001111432A (ja) * 1999-10-04 2001-04-20 Seiko Epson Corp データ圧縮制御装置、データ圧縮制御方法、印刷情報形成装置、印刷システム及びプログラムを記録した記録媒体
JP2001275112A (ja) * 2000-01-19 2001-10-05 Oki Electric Ind Co Ltd データ圧縮装置
JP2001326930A (ja) * 2000-05-15 2001-11-22 Matsushita Electric Ind Co Ltd 画像符号化装置および方法ならびに記憶媒体
US20030030575A1 (en) * 2001-05-07 2003-02-13 Harmonic Data Systems Ltd. Lossless data compression
US7062100B2 (en) 2002-12-16 2006-06-13 Xerox Corporation System for selecting a compression method for image data
JP2004208018A (ja) 2002-12-25 2004-07-22 Ricoh Co Ltd 印刷処理装置
JP4538750B2 (ja) 2003-09-30 2010-09-08 ソニー株式会社 データ再生装置及び方法並びにプログラム
JP2008124969A (ja) * 2006-11-15 2008-05-29 Ikegami Tsushinki Co Ltd 画像可逆符号化方法及び画像可逆符号化装置
US8281227B2 (en) * 2009-05-18 2012-10-02 Fusion-10, Inc. Apparatus, system, and method to increase data integrity in a redundant storage system
US20110004728A1 (en) * 2009-07-02 2011-01-06 Ocz Technology Group, Inc. On-device data compression for non-volatile memory-based mass storage devices
KR20110005575A (ko) 2009-07-10 2011-01-18 한국전자통신연구원 코히어런트 광 수신기의 디지털 등화 장치 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9679621B2 (en) 2015-10-27 2017-06-13 SK Hynix Inc. Semiconductor device and semiconductor system

Also Published As

Publication number Publication date
US20120182163A1 (en) 2012-07-19
JP2012151840A (ja) 2012-08-09
CN102694554A (zh) 2012-09-26
DE102011056563A8 (de) 2012-09-27
US20140152475A1 (en) 2014-06-05
DE102011056563A1 (de) 2012-07-19
US8659452B2 (en) 2014-02-25
JP5881416B2 (ja) 2016-03-09
CN102694554B (zh) 2017-05-31
US9191027B2 (en) 2015-11-17

Similar Documents

Publication Publication Date Title
KR20120084180A (ko) 데이터 압축 장치, 이의 동작 방법, 및 이를 포함하는 데이터 처리 장치
CN107925418B (zh) 用于混合式数据压缩和解压缩的方法、设备和系统
US9158686B2 (en) Processing system and method including data compression API
US10044370B1 (en) Lossless binary compression in a memory constrained environment
CN112514264A (zh) 数据压缩、解压方法及相关装置、电子设备、系统
JP2008065834A (ja) フュージョンメモリ装置及び方法
KR20120134916A (ko) 저장 장치 및 저장 장치를 위한 데이터 처리 장치
EP3195481B1 (en) Adaptive rate compression hash processing device
US10891082B2 (en) Methods for accelerating compression and apparatuses using the same
US8576100B2 (en) Parallel entropy encoder and parallel entropy decoder
US20210374587A1 (en) Dynamic quantum data output post-processing
KR20160077117A (ko) 다중-사용자 전력 절약 코드북 최적화를 제공하기 위한 시스템 및 방법
KR101848192B1 (ko) 메모리 시스템에서 전력 소비를 절약하기 위한 시스템 및 방법
US10565182B2 (en) Hardware LZMA compressor
US10103747B1 (en) Lossless binary compression in a memory constrained environment
AU2017248412A1 (en) Information processing apparatus, and data management method
KR101818440B1 (ko) 데이터 압축 장치, 이의 동작 방법, 및 이를 포함하는 데이터 처리 장치
US20210157485A1 (en) Pattern-based cache block compression
CN110247666B (zh) 一种硬件并行压缩的系统及方法
US11431349B2 (en) Method, electronic device and computer program product for processing data
CN103729315B (zh) 一种地址压缩、解压缩的方法、压缩器和解压缩器
KR20210119907A (ko) 가중치 값의 압축 및 압축 해제
CN115765756A (zh) 一种高速透明传输的无损数据压缩方法、系统及装置
CN116015310A (zh) 一种数据无损压缩方法和装置
KR20180067956A (ko) 데이터 압축 장치 및 방법

Legal Events

Date Code Title Description
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment