KR20120090194A - 데이터 처리 장치 및 이를 포함하는 데이터 처리 시스템 - Google Patents

데이터 처리 장치 및 이를 포함하는 데이터 처리 시스템 Download PDF

Info

Publication number
KR20120090194A
KR20120090194A KR1020110010480A KR20110010480A KR20120090194A KR 20120090194 A KR20120090194 A KR 20120090194A KR 1020110010480 A KR1020110010480 A KR 1020110010480A KR 20110010480 A KR20110010480 A KR 20110010480A KR 20120090194 A KR20120090194 A KR 20120090194A
Authority
KR
South Korea
Prior art keywords
data
compressed data
buffer
flash memory
size
Prior art date
Application number
KR1020110010480A
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 KR1020110010480A priority Critical patent/KR20120090194A/ko
Priority to US13/366,739 priority patent/US20120203955A1/en
Publication of KR20120090194A publication Critical patent/KR20120090194A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

데이터 처리 시스템이 개시된다. 상기 데이터 처리 시스템은 호스트 및 상기 호스트로부터 출력된 데이터를 저장하기 위한 데이터 처리 장치를 포함하며, 상기 데이터 처리 장치는 상기 데이터를 압축하고 상기 압축된 데이터를 압축된 데이터의 크기에 따라 분류하기 위한 압축 및 해제기 및 상기 분류된 데이터를 저장하기 위한 버퍼 블록을 포함한다.

Description

데이터 처리 장치 및 이를 포함하는 데이터 처리 시스템{DATA PROCESSING DEVICE AND SYSTEM HAVING THE SAME}
본 발명의 개념에 따른 실시 예는 데이터 처리 장치에 관한 것으로, 특히 SSD(Solid State Drive)에 있어서 데이터를 압축하여 저장하고, 압축된 데이터를 해제(decompressed)하여 리드(read)하는 데이터 처리 장치 및 이를 포함하는 데이터 처리 시스템에 관한 것이다.
근래의 하드 디스크 드라이브(Hard Disk Drive;HDD) 트랜드(trend)에 따르면, 자기 디스크 장치를 대신하는 기억 소자로 플래시 메모리를 채택한 SSD(Solid State Drive) 장치에 대한 요구가 점차 증가되고 있다. 데이터 처리 장치는 컴퓨터 시스템이나 휴대용 기기의 대용량 저장 장치로서 자기 디스크 장치에 비하여 기억 용량이나 비용 면에서는 불리하지만 액세스 속도와 소형화 및 충격으로부터의 안정성 등에 우위를 점하고 있다. 또한 공정 기술과 설계 기술의 진보에 따라 점차 SSD의 기억 용량 증가와 비용의 감소가 예상되며, 머지않아 데이터 처리 장치는 자기 디스크를 대체할 것이다.
상술한 데이터 처리 장치를 컴퓨터 시스템이나 기타 휴대용 기기의 대용량 저장 장치로 사용할 경우, 호스트 측의 데이터 교환 프로토콜과 플래시 메모리와의 호환을 위한 제어 장치가 필요하다.
일반적인 컴퓨터 시스템에서는 디스크 드라이버의 데이터 전송 프로토콜로 미국의 IBM사가 제안한 하드 디스크 드라이브(HDD)용 규격인 ATA(Advanced Technology Attachment) 방식이 사용된다. 이러한 프로토콜과 호환성을 갖기 위해서는 ATA 방식으로 데이터를 교환하기 위한 인터페이스(Interface) 및 플래시 메모리와의 인터페이스가 필요하다. 상술한 데이터 교환의 제반 동작들을 제어하는 장치를 SSD 제어 장치라 한다.
본 발명이 이루고자 하는 기술적인 과제는 상대적으로 저장 공간을 확장하고, 내구성을 높일 수 있는 데이터 처리 장치 및 이를 포함하는 데이터 처리 시스템을 제공하는 것이다.
본 발명의 실시 예에 따른 데이터 처리 시스템은 호스트 및 상기 호스트로부터 출력된 데이터를 저장하기 위한 데이터 처리 장치를 포함하며, 상기 데이터 처리 장치는 상기 데이터를 압축하고 상기 압축된 데이터를 상기 압축된 데이터의 크기에 따라 분류하기 위한 압축 및 해제기 및 상기 분류된 데이터를 저장하기 위한 버퍼 블록을 포함한다.
상기 버퍼 블록은 각각이 동일한 크기(m*n, m와 n은 자연수)를 갖는 다수개의 버퍼들을 포함하며, 상기 m은 상기 다수개의 버퍼들 각각에 포함된 단위 버퍼의 개수이고, 상기 n은 상기 단위 버퍼의 크기이다.
상기 압축된 데이터의 크기가 상기 n보다 작을 때, 상기 압축된 데이터는 상기 n크기를 갖는 상기 단위 버퍼에 저장된다.
상기 데이터 처리 시스템은 상기 버퍼 블록으로부터 출력된 데이터를 저장하는 플래시 메모리 및 상기 플래시 메모리를 제어하는 플래시 메모리 컨트롤러를 더 포함하고, 상기 플래시 메모리는 상기 버퍼 블록으로부터 출력된 상기 데이터를 메모리 셀 어레이로 전송하기 위한 페이지 버퍼를 포함하고, 상기 플래시 메모리는 NAND 플래시 메모리를 포함한다.
상기 m개의 단위 버퍼들이 모두 채워지면, 상기 m개의 단위 버퍼들 각각에 저장된 데이터는 상기 페이지 버퍼로 전송된다.
상기 압축된 데이터의 크기가 상기 페이지 버퍼에 저장될 수 있는 데이터의 크기보다 클 때, 압축되지 않은 상기 데이터는 상기 페이지 버퍼에 저장된다.
상기 호스트와 인터페이스하는 호스트 인터페이스를 더 포함하고, 상기 호스트 인터페이스는 S-ATA(Serial Advanced Technology Attachment), P-ATA(Parallel Advanced Technology Attachment), USB(Universal Serial Bus), PCI(Peripheral Component Interconnect), PCI-EXPRESS(Peripheral Component Interconnect Express) 및 SAS(Serial Attached SCSI) 인터페이스들 중 하나를 포함한다.
상기 데이터 처리 시스템은 상기 플래시 메모리 컨트롤러, 상기 호스트 인터페이스 및 상기 버퍼 블록을 제어하는 중앙 처리 장치를 더 포함하고, 상기 중앙 처리 장치는 ARMTM 프로세서를 포함한다.
상기 데이터 처리 장치는 SSD(Solid State Drive) 또는 하드 디스크 드라이브(Hard disk Drive)이다.
본 발명의 실시 예에 따른 데이터 처리 장치는 중앙 처리 장치, 데이터를 임시로 저장하기 위한 버퍼 블록 및 상기 데이터를 압축하고, 상기 압축된 데이터의 크기 정보를 상기 중앙 처리 장치에 전송하는 압축 및 해제기를 포함하고,상기 중앙 처리 장치는 상기 크기 정보에 따라 상기 압축된 데이터를 상기 버퍼 블록에 저장한다.
상기 압축 및 해제기는 상기 데이터를 압축하는 압축기, 상기 압축된 데이터의 상기 크기 정보를 상기 중앙 처리 장치에 전송하는 압축감지기 및 상기 압축된 데이터를 해제하는 해제기를 포함한다.
본 발명의 실시 예에 따른 데이터 처리 장치는 상대적으로 저장 공간을 확장하고, 내구성을 높일 수 있는 효과가 있다. 또한, 본 발명의 실시 예에 따른 데이터 처리 장치는 데이터를 라이트하거나 리드하는 시간을 줄이는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 데이터 처리 시스템을 도시한 블록도이다.
도 2는 도 1에 도시된 버퍼를 상세히 도시한 개념도이다.
도 3은 도 2에 도시된 버퍼를 상세히 도시한 개념도이다.
도 4는 도 1에 도시된 압축 및 해제기를 상세히 도시한 블록도이다.
도 5는 도 1에 도시된 압축 및 해제기의 동작을 상세히 도시한 개념도이다.
도 6은 도 1에 도시된 데이터 처리 장치의 라이트 동작을 도시한 플로우챠트이다.
도 7은 도 1에 도시된 데이터 처리 장치의 리드 동작을 도시한 플로우챠트이다.
도 8은 도 1에 도시된 데이터 처리 장치의 압축률을 도시한 그래프이다.
도 9는 도 1에 도시된 데이터 처리 장치를 포함하는 컴퓨터 시스템의 일 실시 예를 나타낸다.
도 10은 도 1에 도시된 데이터 처리 장치를 포함하는 컴퓨터 시스템의 다른 실시 예를 나타낸다.
도 11은 도 1에 도시된 데이터 처리 장치를 포함하는 컴퓨터 시스템의 또 다른 실시 예를 나타낸다.
도 12는 도 1에 도시된 데이터 처리 장치를 포함하는 컴퓨터 시스템의 또 다른 실시 예를 나타낸다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
본 발명의 실시 예에 따른 데이터 처리 장치는 라이트(write) 동작 동안 호스트로부터 전송된 데이터를 압축(compress)하여 저장하고, 리드(read) 동작 동안 압축된 데이터를 해제(decompress)하여 호스트로 전송한다. 따라서, 데이터 처리 장치는 데이터를 압축하고 해제하는 과정을 통하여 상대적으로 저장 공간을 늘릴 수 있다. 또한, NAND 플래시 메모리의 프로그램 동작 및 리드 동작을 고려하면, 데이터 처리 장치의 라이트 및 리드 시간을 단축할 수 있다.
본 발명의 실시 예에 따른 데이터 처리 장치의 효과를 달성하기 위하여 데이터 처리 장치는 페이지 버퍼(page buffer)의 크기를 고려하여 호스트로부터 전송된 데이터를 압축하고 저장한다. 예를 들면, NAND 플래시 메모리의 페이지 버퍼의 크기가 8Kbyte이고, 호스트로부터 전송된 데이터가 8Kbyte인 것을 가정한다. 상기 데이터는 압축된 크기에 따라 분류되어 저장된다. 상술한 본 발명의 개념에 따른 기술적 특징은 도 1을 참조하여 상세히 설명된다.
도 1은 본 발명의 일 실시 예에 따른 데이터 처리 시스템을 도시한 블록도이다.
도 1을 참조하면, 데이터 처리 시스템(1000)은 데이터 처리 장치(100)와 호스트(200)를 포함한다. 구체적으로, 데이터 처리 장치(100)는 플래시 메모리(flash memory; 10), 플래시 메모리 컨트롤러(20), 호스트 인터페이스(30), 압축 및 해제기(40), 버퍼 블록(50), 중앙 처리 장치(60) 및 버스(70)를 포함한다.
플래시 메모리(10)는 비휘발성 메모리로서 호스트(200)로부터 전송된 데이터(OD)를 저장한다. 예컨데, 플래시 메모리(10)는 NAND 플래시 메모리로 구현될 것이다. 플래시 메모리(10)는 한 개의 칩으로 구현되거나 플래시 메모리(10)의 메모리 크기를 확장하기 위하여 여러 개 칩들로 구현될 것이다. 플래시 메모리 컨트롤러(20)는 플래시 메모리(10)를 제어한다.
호스트 인터페이스(30)는 플래시 메모리(10)와 호스트(20)를 인터페이스한다. 예컨데, 호스트 인터페이스(30)는 S-ATA(Serial Advanced Technology Attachment), P-ATA(Parallel Advanced Technology Attachment), USB(Universal Serial Bus), PCI(Peripheral Component Interconnect), PCI-EXPRESS(Peripheral Component Interconnect Express), 또는 SAS(Serial Attached SCSI) 인터페이스들을 포함할 것이다.
압축 및 해제기(40)는 호스트(200)로부터 전송된 데이터(OD)를 압축하거나 플래시 메모리(10)에 저장된 압축된 데이터(CD)를 해제(decompress)한다. 데이터 처리 장치(100)의 성능을 위해서는 압축 및 해제기(40)는 하드웨어(hardware)로 구현될 수 있다. 그러나, 압축 및 해제기(40)의 기능(function)은 중앙 처리 장치(60)에 의하여 소프트웨어(software)로 처리될 수 있을 것이다.
버퍼 블록(50)은 압축 및 해제기(40)로부터 전송된 압축된 데이터(CD)를 저장한다. 압축된 데이터(CD)는 압축된 데이터(CD)의 크기에 따라 분류되어 버퍼 블록(50)에 저장된다. 버퍼 블록(50)은 중앙 처리 장치(60)의 제어에 응답하여 압축된 데이터(CD)를 플래시 메모리(10)로 전송한다. 또한, 버퍼 블록(50)은 호스트(200)로 전송될 데이터(OD)를 저장할 수 있을 것이다. 예컨데, 버퍼 블록(50)은 SRAM(Static Random Access Memory) 또는 DRAM(Dynamic Random Access Memory)으로 구현될 것이다.
버퍼 블록(50)은 다양한 크기의 작은 버퍼들을 더 포함한다. 예컨데, 버퍼 블록(50)은 1Kbyte 버퍼, 2Kbyte 버퍼, 4Kbyte 버퍼 및 8Kbyte를 포함한다. 1Kbyte 버퍼는 8개의 1Kbyte 유닛 버퍼들을 포함하고, 2Kbyte 버퍼는 4개의 2Kbyte 유닛 버퍼들을 포함하고, 4Kbyte 버퍼는 2개의 4Kbyte 유닛 버퍼들을 포함하고, 8Kbyte 버퍼는 1개의 8Kbyte 유닛 버퍼를 포함한다.
8개의 1Kbyte 유닛 버퍼들의 용량의 합, 4개의 2Kbyte 유닛 버퍼들의 용량의 합, 2개의 4Kbyte 유닛 버퍼들의 용량의 합 및 1개의 8Kbyte 유닛 버퍼의 용량은 모두 일정하도록 구현된다. 본 발명의 실시 예에 따른 버퍼 블록(50)의 구조는 도 2를 참조하여 상세히 설명될 것이다.
예를 들면, 압축된 데이터(CD)의 크기가 1Kbyte보다 작으면, 압축된 데이터(CD)는 1Kbyte 유닛 버퍼에 저장된다. 압축된 데이터(CD)의 크기가 1Kbyte보다 크고 2Kbyte보다 작으면, 압축된 데이터(CD)는 2Kbyte 유닛 버퍼에 저장된다. 압축된 데이터(CD)의 크기가 2Kbyte보다 크고 4Kbyte보다 작으면, 압축된 데이터(CD)는 4Kbyte 유닛 버퍼에 저장된다. 압축된 데이터(CD)의 크기가 4Kbyte보다 크고 8Kbyte보다 작으면, 압축된 데이터(CD)는 8Kbyte 유닛 버퍼에 저장된다. 그리고, 압축된 데이터(CD)의 크기가 8Kbyte보다 크면, 압축되지 않은 데이터(OD)는 8Kbyte 유닛 버퍼에 저장된다. 본 발명의 실시 예에 따른 버퍼 블록(50)의 동작은 도 3를 참조하여 상세히 설명될 것이다.
압축된 데이터(CD)를 분류한 정보(L2P)는 논리-물리 변환 테이블(Logical-to-Physical Transition table)에 저장될 것이다. 논리-물리 변환 테이블은 논리 주소(logical address)를 물리 주소(physical address)로 변환할 때 사용된다. 또한, 압축된 데이터(CD)를 분류한 정보(L2P)는 테이블(table)의 형태로 플래시 메모리(10) 또는 버퍼 블록(50)에 저장될 수 있을 것이다.
중앙 처리 장치(60)는 압축된 데이터(CD)를 분류한 정보(L2P)를 플래시 메모리(10)에 저장한다. 압축된 데이터(CD)를 분류한 정보(L2P)는 플래시 메모리(10)의 스페어 영역, 특정 블록 또는 특정 페이지에 저장될 것이다.
또한, 중앙 처리 장치(60)는 플래시 메모리 컨트롤러(20), 호스트 인터페이스(30) 및 버퍼 블록(50)를 제어한다. 예컨데, 중앙 처리 장치(60)는 ARMTM의 프로세서(processor)로 구현된다. 버스(70)는 플래시 메모리 컨트롤러(20), 호스트 인터페이스(30), 압축 및 해제기(40), 버퍼 블록(50) 및 중앙 처리 장치(60)를 상호 간에 연결한다.
예컨데, 데이터 처리 장치(100)는 SSD(Solid State Drive) 또는 하드 디스크 드라이브(Hard Disk Drive)로 구현될 수 있을 것이다.
본 발명의 실시 예에 따른 데이터 처리 장치(100)의 라이트 방법은 도 5를 참조하여 상세히 설명된다. 또한, 본 발명의 실시 예에 따른 데이터 처리 장치(100)의 리드 방법은 도 6을 참조하여 상세히 설명된다.
도 2는 도 1에 도시된 버퍼를 상세히 도시한 개념도이다.
도 1 및 도 2를 참조하면, 플래시 메모리(10)는 메모리 셀 어레이에 저장된 데이터(OD)를 리드(read)하거나 상기 메모리 셀 어레이에 데이터(OD) 또는 압축된 데이터(CD)를 라이트(write)하기 위하여 저장하는 페이지 버퍼(page buffer;PB)를 포함한다. 본 발명의 실시 예에 따른 페이지 버퍼(PB)의 크기는 8Kbyte로 가정한다.
압축 및 해제기(40)로부터 전송된 압축된 데이터(CD)는 중앙 처리 장치(60)의 제어에 응답하여 다수의 버퍼들 중 어느 하나에 저장된다.
실시 예에 따라, 버퍼 블록(50)은 1Kbyte 버퍼, 2Kbyte 버퍼, 4Kbyte 버퍼 및 8Kbyte를 포함한다. 1Kbyte 버퍼는 8개의 1Kbyte 유닛 버퍼들을 포함하고, 2Kbyte 버퍼는 4개의 2Kbyte 유닛 버퍼들을 포함하고, 4Kbyte 버퍼는 2개의 4Kbyte 유닛 버퍼들을 포함하고, 8Kbyte 버퍼는 1개의 8Kbyte 유닛 버퍼를 포함한다. 본 발명의 실시 예에 따른 버퍼의 수 및 유닛 버퍼의 수는 이에 한정되지 않는다.
8개의 1Kbyte 유닛 버퍼들 모두의 용량의 합, 4개의 2Kbyte 유닛 버퍼들 모두의 용량의 합, 2개의 4Kbyte 유닛 버퍼들 모두의 용량의 합 및 1개의 8Kbyte 유닛 버퍼의 용량은 모두 8Kbyte로 일정하다.
또한, 버퍼 블록(50)은 각각이 동일한 크기(m*n, m와 n은 자연수)를 갖는 다수개의 버퍼들을 포함할 수 있다. 상기 m은 상기 다수 개의 버퍼들 각각에 포함된 단위 버퍼의 개수이고, 상기 n은 상기 단위 버퍼의 크기이다. 상기 m개의 단위 버퍼들이 모두 채워지면, 상기 m개의 단위 버퍼들 각각에 저장된 데이터는 페이지 버퍼(PB)로 전송된다.
도 3는 도 2에 도시된 버퍼를 상세히 도시한 개념도이다.
도 1 및 도 3을 참조하면, 호스트(200)로부터 전송된 데이터(OD)의 크기는 8Kbyte로 가정하면, 압축 및 해제기(40)는 8Kbyte의 데이터(OD)를 압축하여 압축된 데이터(CD)를 생성한다. 중앙 처리 장치(60)는 압축 및 해제기(40)에 의하여 압축된 데이터(CD)를 압축된 데이터(CD)의 크기에 따라 분류하여 버퍼 블록(50)에 저장한다. 압축 및 해제기(40)에 의하여 압축된 데이터(CD)는 8Kbyte보다 작거나 8Kbyte보다 클 것이다.
압축된 데이터(CD)는 1Kbyte보다 작더라도 1Kbyte 유닛 버퍼에 저장된다.압축된 데이터(CD)가 저장되고 남은 저장 영역은 사용되지 않는다. 또한, 압축된 데이터(CD)는 1Kbyte보다 크고 2Kbyte보다 작더라도 2Kbyte 유닛 버퍼에 저장된다. 압축된 데이터(CD)가 저장되고 남은 저장 영역은 사용되지 않는다. 마찬가지로, 압축된 데이터(CD)는 2Kbyte보다 크고 4Kbyte보다 작더라도 4Kbyte 유닛 버퍼에 저장된다. 압축된 데이터(CD)는 4Kbyte보다 크고 8Kbyte보다 작더라도 8Kbyte 유닛 버퍼에 저장된다. 또한, 압축된 데이터(CD)가 저장되고 남은 저장 영역에 압축된 데이터(CD)를 분류한 정보(L2P)가 저장될 수도 있을 것이다.
도 4는 도 1에 도시된 압축 및 해제기를 상세히 도시한 블록도이다.
도 1 및 도 4를 참조하면, 압축 및 해제기(40)는 압축기(41), 압축감지기(42) 및 해제기(43)를 포함한다.
압축기(41)는 호스트(200)로부터 전송된 데이터(OD)를 압축하여 압축된 데이터(CD)를 생성한다. 압축기(41)는 압축된 데이터(CD)를 버퍼 블록(50)로 전송한다. 압축감지기(42)는 압축된 데이터(CD)의 크기 정보를 중앙 처리 장치(60)로 전송한다. 해제기(43)는 압축된 데이터(CD)를 분류한 정보(L2P)를 참조하여 플래시 메모리(10)로부터 전송된 압축된 데이터(CD)를 해제하고, 해제된 데이터를 호스트 인터페이스(30)를 통하여 호스트(200)로 전송한다.
도 5은 도 1에 도시된 압축 및 해제기의 동작을 상세히 도시한 개념도이다.
도 1부터 도 5를 참조하면, 호스트(200)로부터 전송된 데이터(OD)의 크기는 8Kbyte로 가정된다. 압축 및 해제기(40)는 중앙 처리 장치(60)의 제어에 응답하여 데이터(OD)를 압축한다. 중앙 처리 장치(60)는 압축된 데이터(CD)를 압축된 데이터(CD)의 크기에 따라 분류한다.
압축된 데이터(CD)는 1Kbyte보다 작더라도 8개의 1Kbyte 유닛 버퍼들 중 어느 하나에 저장된다(case1). 압축된 데이터(CD)는 1Kbyte보다 크고 2Kbyte보다 작더라도 4개의 2Kbyte 유닛 버퍼들 중 어느 하나에 저장된다(case2). 압축된 데이터(CD)는 2Kbyte보다 크고 4Kbyte보다 작더라도 2개의 4Kbyte 유닛 버퍼들 중 어느 하나에 저장된다(case3). 압축된 데이터(CD)는 4Kbyte보다 크고 8Kbyte보다 작더라도 8Kbyte 유닛 버퍼에 저장된다(case4). 압축된 데이터(CD)가 8Kbyte보다 크다면 압축되지 않은 데이터(OD)가 8Kbyte 유닛 버퍼에 저장된다(case5).
본 발명의 실시 예에 따른 데이터 처리 장치(100)의 구체적인 라이트 동작은 도 5를 참조하여 상세히 설명된다.
도 6는 도 1에 도시된 데이터 처리 장치의 라이트 동작을 도시한 플로우챠트이다.
도 1부터 도 6를 참조하면, 압축 및 해제기(40)는 중앙 처리 장치(60)의 제어에 응답하여 호스트 인터페이스(30)을 통하여 호스트(200)로부터 데이터(OD)를 전송받는다(S01).
압축 및 해제기(40)는 데이터(OD)를 압축하여 압축된 데이터(CD)를 생성한다(S02).
중앙 처리 장치(60)는 압축된 데이터(CD)가 1Kbyte보다 작거나 같은지 판단한다(S03). 압축된 데이터(CD)가 1Kbyte보다 작거나 같다면, 중앙 처리 장치(60)는 압축된 데이터(CD)를 8개의 1Kbyte 유닛 버퍼들 중 어느 하나에 저장한다(S04).
압축된 데이터(CD)가 1Kbyte보다 크다면, 중앙 처리 장치(60)는 압축된 데이터(CD)가 2Kbyte보다 작거나 같은지 판단한다(S05). 압축된 데이터(CD)가 2Kbyte보다 작거나 같다면, 중앙 처리 장치(60)는 압축된 데이터(CD)를 4개의 2Kbyte 유닛 버퍼들 중 어느 하나에 저장한다(S06).
압축된 데이터(CD)가 2Kbyte보다 크다면, 중앙 처리 장치(60)는 압축된 데이터(CD)가 4Kbyte보다 작거나 같은지 판단한다(S07). 압축된 데이터(CD)가 4Kbyte보다 작거나 같다면, 중앙 처리 장치(60)는 압축된 데이터(CD)를 2개의 4Kbyte 유닛 버퍼들 중 어느 하나에 저장한다(S08).
압축된 데이터(CD)가 4Kbyte보다 크다면, 중앙 처리 장치(60)는 압축된 데이터(CD)가 8Kbyte보다 작거나 같은지 판단한다(S09). 압축된 데이터(CD)가 8Kbyte보다 작거나 같다면, 중앙 처리 장치(60)는 압축된 데이터(CD)를 8Kbyte 유닛 버퍼에 저장한다(S10). 압축된 데이터(CD)가 8Kbyte보다 크다면, 중앙 처리 장치(60)는 압축되지 않은 데이터(OD)를 페이지 버퍼(page buffer)에 전송한다(S11).
중앙 처리 장치(60)는 압축된 데이터(CD)를 페이지 버퍼(PB)에 전송한다(S12). 플래시 메모리(10)는 플래시 메모리 컨트롤러(20)의 제어에 응답하여 프로그램 동작을 수행한다(S13).
본 발명의 실시 예에 따른 데이터 처리 장치(100)의 라이트 방법에 따라 저장된 데이터는 도 6에 도시된 플로우챠트에 따라 리드된다.
도 7은 도 1에 도시된 데이터 처리 장치의 리드 동작을 도시한 플로우챠트이다.
도 1부터 도 7를 참조하면, 중앙 처리 장치(60)는 플래시 메모리(10)로부터 압축된 데이터(CD)를 분류한 정보(L2P)를 리드한다(S21).
압축 및 해제기(40)는 중앙 처리 장치(60)의 제어에 응답하여 플래시 메모리(10)로부터 압축된 데이터(CD)를 수신한다(S22). 압축 및 해제기(40)는 압축된 데이터(CD)를 분류한 정보(L2P)에 따라 압축된 데이터(CD)를 해제한다(S23). 중앙 처리 장치(60)는 해제된 데이터(OD)를 호스트(200)로 전송한다(S24).
도 8은 도 1에 도시된 데이터 처리 장치의 압축률과 성능을 도시한 그래프이다. (A) 및 (B) 그래프는 벤치마크 프로그램(benchmark program) TPC-H에 의하여 구현된 것이다. 벤치마크 프로그램 TPC-H는 일반적으로 컴퓨터의 성능을 평가하기 위하여 사용된다.
도 1부터 도 8를 참조하면, (A) 그래프의 X축은 압축후 데이터 크기를 나타내고, Y축은 압축된 데이터의 크기별 빈도(frequency)를 나타낸다. (B) 그래프의 X축은 압축후 데이터 크기를 나타내고, Y축은 압축된 데이터의 크기별 누적된 빈도(cumulative frequency)를 나타낸다.
(A) 그래프는 8Kbyte의 데이터(OD)가 압축되어 압축된 데이터(CD)로 변환 후의 빈도를 나타내고, (B) 그래프는 8Kbyte의 데이터(OD)가 압축되어 압축된 데이터(CD)로 변환 후의 누적 빈도를 나타낸다.
호스트(200)로부터 전송된 데이터량은 1014Mbyte이고, 호스트(200)로부터 전송되는 데이터(OD)는 8Kbyte로 가정한다. (A) 그래프를 참조하면, 압축된 데이터(CD)의 빈도는 3500Byte에서 4000Byte 사이에서 가장 크게 나타난다. 또한, (B) 그래프를 참조하면, 압축된 데이터(CD)의 누적 빈도는 약 4000Kbyte 정도에서 포화(saturated)되는 것을 확인할 수 있다. 즉, 호스트(200)로부터 전송된 데이터(OD)의 대부분은 4Kbyte보다 작게 압축될 것이다. 벤치마크 프로그램 TPC-H에 의하면, 호스트(200)로부터 전송된 데이터 1014Mbyte은 438MByte로 압축된다. 압축률은 약 57%이다.
따라서, 본 발명의 실시 예에 따른 데이터 처리 장치(100)의 압축률은 약 50%보다 클 것이다. 예를 들면, 데이터 처리 장치(100)의 저장 능력이 16Gbyte라면, 실제로 저장되는 데이터는 32Gbyte보다 더 클 것이다.
또한, 데이터 처리 장치(100)는 16Kbyte의 데이터를 8Kbyte 정도의 용량으로 라이트하고, 8Kbyte의 데이터를 16Kbyte의 데이터로 출력하게 되므로, 본 발명의 실시 예에 따른 데이터 처리 장치(100)의 리드 및 라이트 속도는 향상될 수 있을 것이다.
그리고, 데이터 처리 장치(100)는 저장 매체로 NAND 플래시 메모리를 사용한다. NAND 플래시 메모리는 데이터를 억세스하는 횟수가 증가할수록 내구성이 감소되는 특성을 가지고 있다. 따라서, 본 발명의 실시 예에 따른 데이터 처리 장치(100)는 리드 및 라이트되는 데이터량이 감소되므로, NAND 플래시 메모리의 내구성을 향상시킬 수 있을 것이다.
도 9는 도 1에 도시된 데이터 처리 장치를 포함하는 컴퓨터 시스템의 일 실시 예를 나타낸다.
도 9를 참조하면, 도 1에 도시된 데이터 처리 장치(100)를 포함하는 컴퓨터 시스템(200)은 이동 전화기 (cellular phone), 스마트 폰(smart phone), PDA(personal digital assistant), 스마트 패드(smart pad) 또는 무선 통신 장치로 구현될 수 있다.
메모리 장치(100)는 도 1에 도시된 데이터 처리 장치(100)를 포함한다. 컴퓨터 시스템(200)은 메모리 장치(100)와 메모리 장치(100)의 동작을 제어할 수 있는 메모리 컨트롤러(220)를 포함한다. 또한, 컴퓨터 시스템(200)은 중앙 처리 장치(210)에 의하여 제어되는 데이터 처리 장치(100)을 더 포함할 수 있다.
메모리 컨트롤러(220)는 중앙 처리 장치(210)의 제어에 따라 메모리 장치(100)의 데이터 액세스 동작, 예컨대 라이트 동작 또는 리드 동작을 제어할 수 있다. 메모리 장치(100)에 데이터는 중앙 처리 장치(210)와 메모리 컨트롤러(220)의 제어에 따라 디스플레이(230)를 통하여 디스플레이될 수 있다. 무선 송수신기(240)는 안테나(ANT)를 통하여 무선 신호를 주거나 받을 수 있다. 예컨대, 무선 송수신기(240)는 안테나(ANT)를 통하여 수신된 무선 신호를 중앙 처리 장치(210)에서 처리될 수 있는 신호로 변경할 수 있다. 따라서, 중앙 처리 장치(210)는 무선 송수신기(240)로부터 출력된 신호를 처리하고 처리된 신호를 메모리 컨트롤러(220) 또는 디스플레이(230)로 전송할 수 있다. 메모리 컨트롤러(220)는 중앙 처리 장치(210)에 의하여 처리된 신호를 메모리 장치(100)에 저장할 수 있다.
또한, 무선 송수신기(240)는 중앙 처리 장치(210)로부터 출력된 신호를 무선 신호로 변경하고 변경된 무선 신호를 안테나(ANT)를 통하여 외부 장치로 출력할 수 있다. 입력 장치(250)는 중앙 처리 장치(210)의 동작을 제어하기 위한 제어 신호 또는 중앙 처리 장치(210)에 의하여 처리될 데이터를 입력할 수 있는 장치로서, 터치 패드(touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad), 또는 키보드로 구현될 수 있다.
중앙 처리 장치(210)는 메모리 컨트롤러(220)로부터 출력된 데이터, 무선 송수신기(240)로부터 출력된 데이터, 또는 입력 장치(250)로부터 출력된 데이터가 디스플레이(230)를 통하여 디스플레이될 수 있도록 디스플레이(230)의 동작을 제어할 수 있다.
실시 예에 따라, 메모리 장치(100)의 동작을 제어할 수 있는 메모리 컨트롤러(220)는 중앙 처리 장치(210)의 일부로서 구현될 수 있고 또한 중앙 처리 장치(210)과 별도의 칩으로 구현될 수 있다.
도 10은 도 1에 도시된 데이터 처리 장치를 포함하는 컴퓨터 시스템의 다른 실시 예를 나타낸다.
도 10을 참조하면, 도 1에 도시된 데이터 처리 장치(100)를 포함하는 컴퓨터 시스템(300)은 PC(personal computer), 네트워크 서버(Network Server), 태블릿(tablet) PC, 넷-북(net-book), 스마트 패드(smart pad), e-리더(e-reader), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 또는 MP4 플레이어로 구현될 수 있다. 스마트 패드는 IPAD( TM ), 갤럭시탭( TM ) 등을 포함한다.
메모리 장치(100)는 도 1에 도시된 데이터 처리 장치(100)를 포함한다. 컴퓨터 시스템(300)은 메모리 장치(100)와 메모리 장치(100)의 데이터 처리 동작을 제어할 수 있는 메모리 컨트롤러(320), 디스플레이(330), 입력 장치(340) 및 중앙 처리 장치(310)를 포함한다.
중앙 처리 장치(310)는 입력 장치(340)를 통하여 입력된 데이터에 따라 메모리 장치(100)에 저장된 데이터를 디스플레이(330)를 통하여 디스플레이할 수 있다. 예컨대, 입력 장치(340)는 터치 패드 또는 컴퓨터 마우스와 같은 포인팅 장치, 키패드, 또는 키보드로 구현될 수 있다. 중앙 처리 장치(310)는 컴퓨터 시스템(300)의 전반적인 동작을 제어할 수 있고 메모리 컨트롤러(320)의 동작을 제어할 수 있다.
실시 예에 따라 메모리 장치(100)의 동작을 제어할 수 있는 메모리 컨트롤러(320)는 중앙 처리 장치(310)의 일부로서 구현될 수 있고 또한 중앙 처리 장치(310)와 별도의 칩으로 구현될 수 있다.
도 11은 도 1에 도시된 데이터 처리 장치를 포함하는 컴퓨터 시스템의 또 다른 실시 예를 나타낸다.
도 11를 참조하면, 도 1에 도시된 데이터 처리 장치(100)를 포함하는 컴퓨터 시스템(400)은 이미지 처리 장치(Image Process Device), 예컨대 디지털 카메라 또는 디지털 카메라가 부착된 이동 전화기 또는 스마트 폰으로 구현될 수 있다.
메모리 장치(100)는 도 1에 도시된 데이터 처리 장치(100)를 포함한다. 컴퓨터 시스템(400)은 메모리 장치(100)와 메모리 장치(100)의 데이터 처리 동작, 예컨대 라이트 동작 또는 리드 동작을 제어할 수 있는 메모리 컨트롤러(420)를 포함한다. 또한, 컴퓨터 시스템(400)은 이미지 센서(430), 디스플레이(440) 및 중앙 처리 장치(410)를 더 포함한다.
컴퓨터 시스템(400)의 이미지 센서(430)는 광학 이미지를 디지털 신호들로 변환하고, 변환된 디지털 신호들은 중앙 처리 장치(410) 또는 메모리 컨트롤러(420)로 전송된다. 중앙 처리 장치(410)의 제어에 따라, 상기 변환된 디지털 신호들은 디스플레이(440)를 통하여 디스플레이되거나 또는 메모리 컨트롤러(420)를 통하여 메모리 장치(100)에 저장될 수 있다.
또한, 메모리 장치(100)에 저장된 데이터는 중앙 처리 장치(410) 또는 메모리 컨트롤러(420)의 제어에 따라 디스플레이(440)를 통하여 디스플레이된다.
실시 예에 따라 메모리 장치(100)의 동작을 제어할 수 있는 메모리 컨트롤러(420)는 중앙 처리 장치(410)의 일부로서 구현될 수 있고 또한 중앙 처리 장치(410)와 별개의 칩으로 구현될 수 있다.
도 12은 도 1에 도시된 데이터 처리 장치를 포함하는 컴퓨터 시스템의 또 다른 실시 예를 나타낸다.
도 12을 참조하면, 도 1에 도시된 데이터 처리 장치(100)를 포함하는 컴퓨터 시스템(500)은 메모리 장치(100) 및 메모리 장치(100)의 동작을 제어할 수 있는 중앙 처리 장치(510)를 포함한다.
메모리 장치(100)는 도 1에 도시된 데이터 처리 장치(100)를 포함한다. 메모리 장치(100)는 플래시 메모리(Flash Memory)와 같은 비휘발성 메모리로 구현될 것을 예시한다. 또한, 컴퓨터 시스템(500)은 시스템 메모리(520), 메모리 인터페이스(530), ECC 블록(540) 및 호스트 인터페이스(550)을 더 포함한다.
컴퓨터 시스템(500)은 중앙 처리 장치(510)의 동작 메모리(operation memory)로서 사용될 수 있는 시스템 메모리(520)를 포함한다. 시스템 메모리(520)는 ROM(read only memory)과 같은 비휘발성 메모리로 구현될 수 있고 SRAM(Static random access memory)과 같은 휘발성 메모리로 구현될 수 있다.
컴퓨터 시스템(500)에 접속된 호스트(HOST)는 메모리 인터페이스(530)와 호스트 인터페이스(550)를 통하여 메모리 장치(100)와 데이터 통신을 수행할 수 있다.
중앙 처리 장치(510)의 제어에 따라 에러 정정 코드(error correction code(ECC)) 블록 (540)은 메모리 인터페이스(530)를 통하여 메모리 장치(100)로부터 출력된 데이터에 포함된 에러 비트를 검출하고, 상기 에러 비트를 정정하고, 에러 정정된 데이터를 호스트 인터페이스(550)를 통하여 호스트(HOST)로 전송할 수 있다. 중앙 처리 장치(510)는 버스(560)를 통하여 메모리 인터페이스(530), ECC 블럭(540), 호스트 인터페이스(550), 및 시스템 메모리(520) 사이에서 데이터 통신을 제어할 수 있다.
컴퓨터 시스템(500)은 플래시 메모리 드라이브, USB 메모리 드라이브, IC-USB 메모리 드라이브, 또는 메모리 스틱(memory stick)으로 구현될 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10 : 플래시 메모리
20 : 플래시 메모리 컨트롤러
30 : 호스트 인터페이스
40 : 압축 및 해제기
50 : 버퍼 블록
60 : 중앙 처리 장치
70 : 시스템 버스
100 : 데이터 처리 장치
200 : 호스트

Claims (10)

  1. 호스트; 및
    상기 호스트로부터 출력된 데이터를 저장하기 위한 데이터 처리 장치를 포함하며,
    상기 데이터 처리 장치는,
    상기 데이터를 압축하고 상기 압축된 데이터를 상기 압축된 데이터의 크기에 따라 분류하기 위한 압축 및 해제기; 및
    상기 분류된 데이터를 저장하기 위한 버퍼 블록을 포함하는 데이터 처리 시스템.
  2. 제1항에 있어서,
    상기 버퍼 블록은 각각이 동일한 크기(m*n, m와 n은 자연수)를 갖는 다수개의 버퍼들을 포함하며,
    상기 m은 상기 다수개의 버퍼들 각각에 포함된 단위 버퍼의 개수이고, 상기 n은 상기 단위 버퍼의 크기인 데이터 처리 시스템.
  3. 제2항에 있어서,
    상기 압축된 데이터의 크기가 상기 n보다 작을 때, 상기 압축된 데이터는 상기 n크기를 갖는 상기 단위 버퍼에 저장되는 데이터 처리 시스템.
  4. 제3항에 있어서,
    상기 버퍼 블록으로부터 출력된 데이터를 저장하는 플래시 메모리; 및
    상기 플래시 메모리를 제어하는 플래시 메모리 컨트롤러를 더 포함하고,
    상기 플래시 메모리는 상기 버퍼 블록으로부터 출력된 상기 데이터를 메모리 셀 어레이로 전송하기 위한 페이지 버퍼를 포함하고,
    상기 플래시 메모리는 NAND 플래시 메모리를 포함하는 데이터 처리 시스템.
  5. 제4항에 있어서,
    상기 m개의 단위 버퍼들이 모두 채워지면, 상기 m개의 단위 버퍼들 각각에 저장된 데이터는 상기 페이지 버퍼로 전송되는 데이터 처리 시스템.
  6. 제4항에 있어서,
    상기 압축된 데이터의 크기가 상기 페이지 버퍼에 저장될 수 있는 데이터의 크기보다 클 때, 압축되지 않은 상기 데이터는 상기 페이지 버퍼에 저장되는 데이터 처리 시스템.
  7. 제4항에 있어서,
    상기 호스트와 인터페이스하는 호스트 인터페이스를 더 포함하고,
    상기 호스트 인터페이스(30)는 S-ATA(Serial Advanced Technology Attachment), P-ATA(Parallel Advanced Technology Attachment), USB(Universal Serial Bus), PCI(Peripheral Component Interconnect), PCI-EXPRESS(Peripheral Component Interconnect Express) 및 SAS(Serial Attached SCSI) 인터페이스들 중 하나를 포함하는 데이터 처리 시스템.
  8. 제1항에 있어서,
    상기 데이터 처리 장치는 SSD(Solid State Drive) 또는 하드 디스크 드라이브(Hard disk Drive)인 데이터 처리 시스템.
  9. 중앙 처리 장치;
    데이터를 임시로 저장하기 위한 버퍼 블록; 및
    상기 데이터를 압축하고, 상기 압축된 데이터의 크기 정보를 상기 중앙 처리 장치에 전송하는 압축 및 해제기를 포함하고,
    상기 중앙 처리 장치는 상기 크기 정보에 따라 상기 압축된 데이터를 상기 버퍼 블록에 저장하는 데이터 처리 장치.
  10. 제9항에 있어서,
    상기 압축 및 해제기는,
    상기 데이터를 압축하는 압축기;
    상기 압축된 데이터의 상기 크기 정보를 상기 중앙 처리 장치에 전송하는 압축감지기; 및
    상기 압축된 데이터를 해제하는 해제기를 포함하는 데이터 처리 장치.
KR1020110010480A 2011-02-07 2011-02-07 데이터 처리 장치 및 이를 포함하는 데이터 처리 시스템 KR20120090194A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110010480A KR20120090194A (ko) 2011-02-07 2011-02-07 데이터 처리 장치 및 이를 포함하는 데이터 처리 시스템
US13/366,739 US20120203955A1 (en) 2011-02-07 2012-02-06 Data processing device and system including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110010480A KR20120090194A (ko) 2011-02-07 2011-02-07 데이터 처리 장치 및 이를 포함하는 데이터 처리 시스템

Publications (1)

Publication Number Publication Date
KR20120090194A true KR20120090194A (ko) 2012-08-17

Family

ID=46601463

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110010480A KR20120090194A (ko) 2011-02-07 2011-02-07 데이터 처리 장치 및 이를 포함하는 데이터 처리 시스템

Country Status (2)

Country Link
US (1) US20120203955A1 (ko)
KR (1) KR20120090194A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140088319A (ko) * 2013-01-02 2014-07-10 삼성전자주식회사 데이터 압축 방법과 상기 방법을 수행할 수 있는 장치들
KR20200065582A (ko) 2018-11-30 2020-06-09 하헌우 다목적 욕실 환경 조성기

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101888074B1 (ko) * 2012-01-09 2018-08-13 삼성전자주식회사 저장 장치 및 불휘발성 메모리 장치, 그리고 그것의 동작 방법
TWI497515B (zh) * 2012-07-10 2015-08-21 Silicon Motion Inc 快閃記憶體控制器、快閃記憶體偵錯方法
KR20140028930A (ko) * 2012-08-31 2014-03-10 삼성전자주식회사 데이터 처리 장치 및 이의 데이터 처리 방법 그리고 그 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능 매체
US9495288B2 (en) * 2013-01-22 2016-11-15 Seagate Technology Llc Variable-size flash translation layer
US10817178B2 (en) * 2013-10-31 2020-10-27 Hewlett Packard Enterprise Development Lp Compressing and compacting memory on a memory device wherein compressed memory pages are organized by size
KR102078853B1 (ko) 2013-11-27 2020-02-18 삼성전자 주식회사 메모리 시스템, 호스트 시스템 및 메모리 시스템에서의 라이트 동작 수행 방법
KR20160148940A (ko) * 2015-06-17 2016-12-27 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작방법
KR20170060234A (ko) * 2015-11-23 2017-06-01 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US20180060235A1 (en) * 2016-08-30 2018-03-01 Intel Corporation Non-volatile memory compression devices and associated methods and systems
WO2020032816A1 (en) * 2018-08-09 2020-02-13 Huawei Technologies Co., Ltd Device and method for compacting compressed and uncompressed data blocks
JP2020154525A (ja) * 2019-03-19 2020-09-24 キオクシア株式会社 メモリシステムおよび情報処理システム
CN110096113A (zh) * 2019-05-08 2019-08-06 苏州浪潮智能科技有限公司 一种服务器
CN111309269B (zh) * 2020-02-28 2021-12-17 苏州浪潮智能科技有限公司 一种压缩数据落盘的方法、系统、设备及可读存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5490260A (en) * 1990-12-14 1996-02-06 Ceram, Inc. Solid-state RAM data storage for virtual memory computer using fixed-sized swap pages with selective compressed/uncompressed data store according to each data size
US5237460A (en) * 1990-12-14 1993-08-17 Ceram, Inc. Storage of compressed data on random access storage devices
US5764373A (en) * 1993-03-16 1998-06-09 Mitsubishi Denki Kabushiki Kaisha Image data compression-expansion circuit
JPH11110267A (ja) * 1997-10-02 1999-04-23 Oki Electric Ind Co Ltd データ保存装置、データ保存方法及び記録媒体
TWI227409B (en) * 2003-06-05 2005-02-01 Carry Computer Eng Co Ltd Storage device capable of enhancing transmission speed
KR100858756B1 (ko) * 2004-07-12 2008-09-16 가부시끼가이샤 도시바 저장 디바이스 및 호스트 장치
US8473673B2 (en) * 2005-06-24 2013-06-25 Hewlett-Packard Development Company, L.P. Memory controller based (DE)compression

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140088319A (ko) * 2013-01-02 2014-07-10 삼성전자주식회사 데이터 압축 방법과 상기 방법을 수행할 수 있는 장치들
KR20200065582A (ko) 2018-11-30 2020-06-09 하헌우 다목적 욕실 환경 조성기

Also Published As

Publication number Publication date
US20120203955A1 (en) 2012-08-09

Similar Documents

Publication Publication Date Title
KR20120090194A (ko) 데이터 처리 장치 및 이를 포함하는 데이터 처리 시스템
US8615702B2 (en) Method and apparatus for correcting errors in memory device
CN110059032B (zh) 存储器接口及具有存储器接口的存储器控制器
US9690490B2 (en) Method for writing data, memory storage device and memory control circuit unit
US8990535B2 (en) Method for operating memory controller, and memory system including the same
US9336081B2 (en) Data writing and reading method, and memory controller and memory storage apparatus using the same for improving reliability of data access
US8589618B2 (en) Memory system comprising nonvolatile memory device and controller
CN111324301B (zh) 存储器控制器以及具有存储器控制器的存储器系统
US11403045B2 (en) Memory controller and operating method thereof
US9740630B2 (en) Method of mapping address in storage device, method of reading data from storage devices and method of writing data into storage devices
CN110109851B (zh) 具有主机和存储器控制器的电子系统及其操作方法
KR20190054383A (ko) 데이터 저장 장치 및 그것의 동작 방법
US11614885B2 (en) Data processing method for improving access performance of memory device and data storage device utilizing the same
KR20160105625A (ko) 데이터 저장 장치 및 그것의 동작 방법
US20150052290A1 (en) Data storage device and operating method thereof
TWI534814B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
KR20190140788A (ko) 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US9483195B2 (en) Response reading method and data transmission system
KR20150041873A (ko) 데이터 처리 시스템
KR102349422B1 (ko) 메모리 컨트롤러의 동작 방법 및 메모리 컨트롤러를 포함하는 반도체 저장장치
US20230176733A1 (en) Data storage device and data storage system
US10649937B2 (en) Universal asynchronous receiver/transmitter unit, and memory controller and memory system including the same
US20230169028A1 (en) Bridge device and data storage system
KR20170031311A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20190105869A (ko) 메모리 컨트롤러 및 그 동작 방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid