KR101487190B1 - 압축 코덱을 구비한 플래시 메모리 집적 회로 - Google Patents

압축 코덱을 구비한 플래시 메모리 집적 회로 Download PDF

Info

Publication number
KR101487190B1
KR101487190B1 KR20080089925A KR20080089925A KR101487190B1 KR 101487190 B1 KR101487190 B1 KR 101487190B1 KR 20080089925 A KR20080089925 A KR 20080089925A KR 20080089925 A KR20080089925 A KR 20080089925A KR 101487190 B1 KR101487190 B1 KR 101487190B1
Authority
KR
South Korea
Prior art keywords
input data
compressed
data
flash memory
circuit
Prior art date
Application number
KR20080089925A
Other languages
English (en)
Other versions
KR20100030943A (ko
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 KR20080089925A priority Critical patent/KR101487190B1/ko
Priority to US12/458,641 priority patent/US9236129B2/en
Publication of KR20100030943A publication Critical patent/KR20100030943A/ko
Application granted granted Critical
Publication of KR101487190B1 publication Critical patent/KR101487190B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits

Landscapes

  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

압축 코덱을 구비한 플래시 메모리 집적 회로가 제공된다. 압축 코덱을 구비한 플래시 메모리 집적 회로는 메모리 블록 및 압축 코덱 회로를 동시에 포함한다. 이 때, 압축 코덱 회로는 입력 데이터를 압축하고, 컨트롤러 회로는 압축된 입력 데이터를 메모리 블록에 포함된 적어도 하나의 페이지에 저장함으로써 플래시 메모리의 사용 효율을 높일 수 있다.
플래시 메모리, 데이터, 압축, 코덱, 컨트롤러, 집적 회로

Description

압축 코덱을 구비한 플래시 메모리 집적 회로{FLASH MEMORY INTEGRATED CIRCUIT WITH COMPRESSION/DECOMPRESSION CODEC}
본 발명의 실시예들은 플래시 메모리의 읽기 동작 혹은 쓰기 동작에 관한 것으로서, 특히 플래시 메모리의 입력 데이터를 압축하여 저장하는 기술과 관련된 것이다.
플래시 메모리는 전원이 공급되지 않은 상태에서도 저장된 데이터를 유지하는 비휘발성 메모리이다. 플래시 메모리는 복수의 메모리 블록들로 구성되며, 메모리 블록에 저장된 데이터를 전기적으로 지우고 다시 쓸 수 있는 기능을 제공한다.
메모리 블록은 복수의 셀(cell)들로 구성된다. 여기서, 플래시 메모리는 복수의 셀들의 물리적인 구조에 따라 NAND, NOR와 같이 다양한 타입들을 가질 수 있다. 특히, NAND 플래시 메모리는 대용량의 데이터를 저장할 수 있으며, 높은 집적도를 적용할 수 있으므로, 메모리 시장에서 많이 주목받고 있다. 현재, NAND 플래시 메모리는 휴대폰, 디지털 카메라, MP3 플레이어, 캠코더, PDA 등 휴대형 전자기기의 저장매체 등으로 널리 이용되고 있다.
복수의 셀들 각각은 트랜지스터를 가지고 구현될 수 있다. 일반적인 플래시 메모리에서, 데이터를 프로그램(program)하거나 읽기 위하여 트랜지스터의 문턱 전압(threshold voltage)이 조절된다. 이 때, 셀들은 트랜지스터가 가질 수 있는 문턱 전압들의 개수에 따라 SLC(Single Level Cell) 또는 MLC(Multi Level Cell)로 분류된다.
이러한, 플래시 메모리는 면적 및 코스트가 제한된 상황에서 잘 설계되어야 한다. 특히, 플래시 메모리에 저장되는 데이터의 크기를 감소시키기 위하여 추가적인 장치들을 플래시 메모리에 추가하는 것도 고려될 수 있다.
본 발명의 일실시예에 따른 압축 코덱을 구비한 플래시 메모리 집적 회로는 복수의 페이지들을 포함하는 적어도 하나의 메모리 블록, 입력 데이터를 압축하는 압축 코덱 회로 및 상기 복수의 페이지들 중 적어도 하나의 페이지에 순차적으로 상기 압축된 입력 데이터를 쓰기(write) 위하여 제어 신호를 생성하는 컨트롤러 회로를 포함한다.
이 때, 본 발명의 일실시예에 따른 압축 코덱을 구비한 플래시 메모리 집적 회로는 상기 입력 데이터가 압축된(compressed) 데이터인지 여부를 판단하는 유형 판단 회로를 더 포함하고, 상기 압축 코덱 회로는 상기 입력 데이터가 압축된 데이터가 아닌 경우 상기 입력 데이터를 압축할 수 있다.
또한, 본 발명의 다른 실시예에 따른 압축 코덱을 구비한 플래시 메모리 집적 회로는 복수의 페이지들을 포함하는 적어도 하나의 메모리 블록, 상기 복수의 페이지들 중 적어도 하나의 페이지에 쓰여진 압축 데이터를 읽기(read) 위하여 제어 신호를 생성하는 컨트롤러 회로 및 선정된 알고리즘에 따라 상기 읽혀진 압축 데이터를 압축 해제하는 압축 코덱 회로를 포함한다.
또한, 본 발명의 일실시예에 따른 압축 코덱을 구비한 플래시 메모리의 동작 방법은 선정된(predetermined) 압축 알고리즘에 따라 플래시 메모리의 입력 데이터를 압축하는 단계 및 상기 플래시 메모리의 적어도 하나의 메모리 블록에 포함된 복수의 페이지들 중 적어도 하나의 페이지에 상기 압축된 입력 데이터를 쓰 기(write) 위하여 제어 신호를 생성하는 단계를 포함한다.
또한, 본 발명의 다른 실시예에 따른 압축 코덱을 구비한 플래시 메모리의 동작 방법은 플래시 메모리의 적어도 하나의 메모리 블록에 포함된 복수의 페이지들 중 적어도 하나의 페이지에 쓰여진 압축 데이터를 읽기(read) 위하여 제어 신호를 생성하는 단계 및 압축 코덱 회로가 선정된 알고리즘에 따라 상기 읽혀진 압축 데이터를 압축 해제하는 단계를 포함한다.
본 발명의 일실시예에 따른 압축 코덱을 구비한 플래시 메모리 집적 회로 및 플래시 메모리의 동작 방법은 플래시 메모리의 입력 데이터를 압축함으로써, 플래시 메모리에 저장되는 데이터의 크기를 줄이고, 플래시 메모리의 사용 효율을 향상시킬 수 있다.
또한, 본 발명의 일실시예에 따른 압축 코덱을 구비한 플래시 메모리 집적 회로 및 플래시 메모리의 동작 방법은 압축된 입력 데이터를 식별할 수 있는 식별 정보를 추가적으로 플래시 메모리에 씀(writing)으로써, 효과적으로 압축된 입력 데이터를 읽고, 압축 해제할 수 있다.
또한, 본 발명의 일실시예에 따른 압축 코덱을 구비한 플래시 메모리 집적 회로 및 플래시 메모리의 동작 방법은 입력 데이터의 유형에 따라 입력 데이터를 압축함으로써, 플래시 메모리의 사용 효율을 향상시킬 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 하나의 메모리 블록에 포함되는 복수의 페이지들의 구조를 나타낸 도면이다.
도 1을 참조하면, 하나의 메모리 블록은 페이지 1 및 페이지 2와 같은 복수의 페이지들을 포함한다. 또한, 복수의 페이지들 각각은 복수의 메모리 셀들로 구성된다.
메모리 셀들의 게이트들은 워드 라인들(WL1, WL2)과 연결되며, 메모리 셀들의 소스들은 비트 라인들(BL1, BL2, BL3)와 연결된다.
메모리 블록에 데이터를 쓰는 경우, 컨트롤러 회로는 데이터에 대응하는 제어 신호를 생성하며, 생성된 제어 신호는 적절히 워드 라인들(WL1, WL2) 및 비트 라인들(BL1, BL2, BL3)에 인가되는 전압 또는 전류들을 제어한다. 특히, 일반적으로 쓰기 동작은 페이지 단위로 이루어지므로, 워드 라인들(WL1, WL2)에는 제어 신호에 대응하는 전압 또는 전류들이 순차적으로 인가된다. 이 때, 메모리 셀의 트랜지스터의 문턱 전압은 인가된 전압 또는 전류에 따라 변화하고, 변화된
또한, 메모리 블록에 데이터를 읽는 경우, 컨트롤러 회로는 트랜지스터의 현재 문턱 전압을 검출하기 위하여 제어 신호를 생성한다. 그리고, 검출된 문턱 전압에 따라 메모리 블록에 저장된 데이터가 검출된다.
도 2는 도 2은 본 발명의 일실시예에 따른 압축 코덱을 구비한 플래시 메모리 집적 회로를 개념적으로 나타낸 도면이다.
도 2를 참조하면, 메모리 어레이(210)는 인터페이스 회로(interface circuit, 220)를 통하여 컨트롤러 회로(230) 및 압축 코덱 회로(240)와 연결된다. 여기서, 인터페이스 회로(220)는 컨트롤러 회로(230)에 의해 생성된 제어 신호를 메모리 어레이(210)로 전달한다.
메모리 어레이(210)는 복수의 메모리 블록들(211, 212)을 포함하고, 복수의 메모리 블록들(211, 212) 각각은 복수의 페이지들로 구성된다. 또한, 도 2에 도시되지 아니하였으나, 복수의 페이지들은 복수의 메모리 셀들로 구성된다. 그리고, 복수의 메모리 셀들은 다양한 전기 소자들로 구현될 수 있으며, 예를 들어 각각의 메모리 셀은 하나의 트랜지스터로 구현될 수 있다.
일반적인 플래시 메모리에서, 소거(erase) 동작은 블록 단위로 수행되며, 읽기(read) 및 쓰기(write) 동작은 페이지 단위로 수행된다. 즉, 소거 동작이 수행되는 경우, 하나의 블록에 포함되는 복수의 페이지들에 저장된 데이터는 동시에 소거되며, 읽기 및 쓰기 동작이 수행되는 경우, 데이터는 상기 복수의 페이지들로부터 순차적으로 검출되거나, 상기 복수의 페이지들에 순차적으로 쓰여진다.
각각의 메모리 셀들은 인터페이스 회로(220)를 통하여 컨트롤러 회로(230)와 연결되며, 컨트롤러 회로(230)는 메모리 셀들에 인가되는 전압 또는 전류를 제어하기 위한 제어 신호를 생성한다.
또한, 압축 코덱 회로(240)는 선정된(predetermined) 압축 알고리즘에 따라 입력 데이터를 압축한다. 따라서, 입력 데이터는 압축 알고리즘에 상응하는 압축율로 압축 코덱 회로(240)에 의해 압축될 수 있으므로, 메모리 블록에 저장되는 데이터의 크기는 감소할 수 있다.
여기서, 압축 알고리즘은 허프만(Huffman) 압축 알고리즘 및 arithmetic 압축 알고리즘과 같은 엔트로피(entropy) 코딩 알고리즘, 사전 코딩 알고리즘, 엔트로피 코딩 알고리즘과 사전 코딩 알고리즘의 조합 등 다양한 알고리즘들을 포함한다.
이 때, 플래시 메모리 집적 회로 내에 존재하는 압축 코덱 회로(240)는 무조건적으로 또는 선택적으로 입력 데이터를 압축함으로써 메모리 블록에 저장되는 데이터의 크기를 줄일 수 있다.
즉, 압축 코덱 회로(240)는 입력 데이터가 이미 압축된 데이터인지 여부와 무관하게 입력 데이터를 무조건적으로 압축할 수 있다, 다만, 입력 데이터가 이미 압축된 경우, 압축 효율이 크지 않을 수 있으므로 압축 코덱 회로(240)는 선택적으로 입력 데이터를 압축하지 않을 수 있다.
결국, 본 발명의 일실시예에 따른 압축 코덱 회로(240)는 플래시 메모리 집적 회로의 내에 존재하면서 입력 데이터를 압축함으로써, 메모리 블록의 사용 효율을 향상시킬 수 있다.
다만, 입력 데이터가 이미 압축된 데이터인 경우, 입력 데이터의 압축 효율은 크지 않을 수 있다. 이 때, 압축 코덱 회로(240)는 입력 데이터가 압축된 데이터인지 여부에 따라 입력 데이터를 압축할 수 있다. 즉, 압축 코덱 회로(240)는 입력 데이터가 압축된 데이터가 아닌 경우 입력 데이터를 압축하고, 입력 데이터가 압축된 데이터인 경우 입력 데이터를 압축하지 않을 수 있다.
압축 코덱 회로(240)는 선택적으로 입력 데이터를 압축하기 위하여 외부로 부터 유입되는 입력 데이터의 유형을 판단할 수 있다. 여기서, 입력 데이터는 비디오 데이터 또는 오디오 데이터와 같은 멀티미디어 데이터일 수 있다. 이 때, 압축 코덱 회로(240)는 입력 데이터의 유형을 미리 설정된 유형들(예를 들어, MP3, MP4, MPEG)과 비교하여 입력 데이터가 압축된 데이터인지 또는 비압축된 데이터인지를 판단할 수 있다.
예를 들어, 입력 데이터가 MP3(MPEG Audio Layer-3), MP4와 같은 오디오 데이터 또는 MPEG과 같은 비디오 데이터로서 압축된 멀티미디어 데이터인 경우, 압축 코덱 회로(240)는 입력 데이터를 압축할 수 있으며, 입력 데이터가 압축되지 않은 형태를 갖는 멀티미디어 데이터인 경우, 압축 코덱 회로(240)는 입력 데이터를 압축하지 않을 수 있다.
이 때, 압축 코덱 회로(240)는 미리 설정된 압축 알고리즘에 따라 입력 데이터를 압축하여 다양한 유형을 갖는 압축된 입력 데이터를 생성할 수 있다. 예를 들어, 압축 코덱 회로(240)는 오디오 데이터인 입력 데이터를 압축하여 MP3, MP4와 같은 압축된 데이터를 생성할 수 있다.
또한, 압축 코덱 회로(240)가 입력 데이터를 압축한 경우, 압축된 입력 데이터임을 식별할 수 있도록 압축된 입력 데이터에 대응하는 식별 정보를 추가적으로 생성할 수 있다.
예를 들어, 플래시 메모리의 메모리 블록에 쓰여진 압축된 입력 데이터를 읽는 경우, 식별 정보를 확인함으로써 읽혀진 데이터가 압축 코덱 회로(240)에 의해 압축된 것임이 파악될 수 있다.
또한, 컨트롤러 회로(230)는 압축 코덱 회로(240)로부터 제공되는 입력 데이터 또는 압축된 입력 데이터를 메모리 어레이(210)에 쓰기 위한 제어 신호를 인터페이스 회로(220)로 제공한다. 이 때, 제어 신호에 따라 메모리 셀들에 가해지는 전기적인 자극이 조절됨으로써, 입력 데이터 또는 압축된 입력 데이터는 메모리 어레이(210)에 쓰여질 수 있다.
또한, 본 발명의 일실시예에 따른 컨트롤러 회로(230), 압축 코덱 회로(240), 메모리 어레이(210)는 하나의 칩으로 시스템 온 칩(System on Chip, SoC) 형태로 구현될 수 있다.
도 3은 압축 코덱 회로 및 유형 판단 회로의 일예를 나타낸 블록도이다.
도 3를 참조하면, 본 발명의 일실시예에 따른 압축 코덱을 구비한 플래시 메모리 집적 회로는 압축 코덱 회로(310)뿐만 아니라 유형 판단 회로(320)를 더 포함한다.
유형 판단 회로(320)는 입력 데이터가 압축된 데이터인지 여부를 판단한다. 이 때, 유형 판단 회로(320)는 입력 데이터의 유형과 미리 설정된 유형들을 비교하여 입력 데이터가 압축된 데이터인지 또는 비압축된 데이터인지 판단할 수 있다. 예를 들어, 유형 판단 회로(320)는 입력 데이터가 MP3, MP4 또는 MPEG 데이터인지를 판단할 수 있다.
이 때, 유형 판단 회로(310)는 입력 데이터가 압축된 데이터인 경우 제1 논리값을 제공하고, 입력 데이터가 비압축된 데이터인 경우, 제2 논리값을 제공한다.
또한, 압축 코덱 회로(310)는 유형 판단 회로(320)에 의해 제공된 논리값을 이용하여 입력 데이터가 압축된 데이터인지 또는 비압축된 데이터인지를 파악한다. 그리고, 압축 코덱 회로(310)는 제공된 논리값이 제2 논리값인 경우, 입력 데이터를 압축하여 압축된 입력 데이터를 생성한다. 이 때, 압축 코덱 회로(310)는 압축된 입력 데이터임을 지시하는 식별 정보를 추가적으로 생성할 수 있다.
반대로, 제공된 논리값이 제1 논리값인 경우 입력 데이터는 이미 압축된 데이터이므로, 압축 코덱 회로(310)는 입력 데이터를 그대로 컨트롤러 회로로 제공한다.
컨트롤러 회로는 압축 코덱 회로(310)로부터 원래의 입력 데이터를 수신한 경우, 플래시 메모리에 입력 데이터가 쓰여지도록 제어 신호를 생성한다. 다만, 컨트롤러 회로가 압축 코덱 회로(310)로부터 압축된 입력 데이터 및 그에 대응하는 식별 정보를 수신하는 경우, 플래시 메모리에 압축된 입력 데이터 및 그에 대응하는 식별 정보 쓰여지도록 제어 신호를 생성할 수 있다.
도 4는 본 발명의 일실시예에 따른 압축 코덱을 구비한 플래시 메모리의 동작 방법을 나타낸 동작 흐름도이다.
도 4를 참조하면, 발명의 일실시예에 따른 압축 코덱을 구비한 플래시 메모리는 읽기 동작 또는 수행 동작이 요청되었는지를 판단한다(S410).
읽기 동작에서, 발명의 일실시예에 따른 압축 코덱을 구비한 플래시 메모리는 입력 데이터를 수신한다(S420). 이 때, 압축 코덱을 구비한 플래시 메모리는 입력 데이터를 선정된 알고리즘에 따라 입력 데이터를 압축하여, 소정의 압축율로 압축된 입력 데이터를 생성한다(S430). 그리고, 압축된 입력 데이터에 응답하여 발명의 일실시예에 따른 압축 코덱을 구비한 플래시 메모리는 메모리 블록의 워드 라인들 또는 비트 라인들의 전압 또는 전류를 제어하기 위하여 제어 신호를 생성한다(S440). 이 때, 제어 신호에 따라 메모리 블록에 속하는 메모리 셀들의 문턱 전압들은 변화하며, 메모리 셀들을 포함하는 메모리 블록에는 압축된 입력 데이터가 쓰여진다(S450).
또한, 쓰기 동작에서, 발명의 일실시예에 따른 압축 코덱을 구비한 플래시 메모리는 메모리 셀들의 문턱 전압들을 검출하기 위하여 제어 신호를 생성한다(S460). 여기서, 메모리 블록에는 입력 데이터가 압축된 압축 입력 데이터가 저장되었다고 가정한다. 이 때, 본 발명의 일실시예에 따른 압축 코덱을 구비한 플래시 메모리는 메모리 셀들의 문턱 전압들을 검출함으로써, 메모리 블록에 저장된 압축 입력 데이터를 추출한다(S470). 그리고, 플래시 메모리는 추출된 압축 입력 데이터를 압축 해제함(S480)으로써, 읽기 동작이 완료된다(S490).
도 5는 본 발명의 일실시예에 따라 쓰기 동작을 수행하는 압축 코덱을 구비한 플래시 메모리의 동작 방법을 나타낸 동작 흐름도이다.
도 5를 참조하면, 본 발명의 일실시예에 따른 압축 코덱을 구비한 플래시 메모리의 동작 방법은 외부로부터 제공되는 입력 데이터를 수신한다(S500). 이 때, 입력 데이터는 멀티미디어 데이터일 수 있다.
또한, 본 발명의 일실시예에 따른 압축 코덱을 구비한 플래시 메모리의 동작 방법은 입력 데이터를 선택적으로 압축하기 위하여 입력 데이터가 압축된 데이터인지 또는 비압축된 데이터인지 판단한다(S510). 이 때, 본 발명의 일실시예에 따른 압축 코덱을 구비한 플래시 메모리의 동작 방법은 입력된 데이터의 유형과 미리 설정된 유형들을 비교함으로써, 입력된 데이터가 압축된 데이터인지 또는 비압축된 데이터인지 판단할 수 있다.
이 때, 입력 데이터가 압축된 데이터인 경우, 입력 데이터에 대응하는 논리값은 미리 설정된 제1 논리값으로 결정된다(S570). 그리고, 입력 데이터 및 입력 데이터의 논리값은 컨트롤러 회로로 제공된다.
또한, 컨트롤러 회로는 입력 데이터가 플래시 메모리에 쓰여지도록 입력 데이터에 대응하는 제어 신호를 생성한다(S580). 제어 신호에 응답하여, 플래시 메모리에는 입력 데이터가 그대로 쓰여진다(S590).
반대로, 입력 데이터가 압축되지 않은 비압축 데이터인 경우, 입력 데이터에 대응하는 논리값은 미리 설정된 제2 논리값으로 결정된다(S520).
그리고, 본 발명의 일실시예에 따른 압축 코덱을 구비한 플래시 메모리의 동작 방법은 제2 논리값에 응답하여 입력 데이터를 압축한다(S530). 즉, 본 발명의 일실시예에 따른 압축 코덱을 구비한 플래시 메모리의 동작 방법은 입력 데이터에 대응하는 논리값에 따라 입력 데이터를 압축할 수 있다.
또한, 본 발명의 일실시예에 따른 압축 코덱을 구비한 플래시 메모리의 동작 방법은 입력 데이터를 압축함에 응답하여 압축된 입력 데이터에 대응하는 식별 정보를 추가적으로 생성한다(S540).
또한, 본 발명의 일실시예에 따른 압축 코덱을 구비한 플래시 메모리의 동작 방법에서, 컨트롤러 회로는 식별 정보 및 압축된 입력 데이터에 대응하는 제어 신호를 생성한다(S550). 그리고, 압축 코덱을 구비한 플래시 메모리의 메모리 블록에는 제어 신호에 따라 식별 정보 및 압축된 입력 데이터가 쓰여진다(S560).
도 6은 본 발명의 일실시예에 따르 읽기 동작을 수행하는 압축 코덱을 구비한 플래시 메모리의 동작 방법을 나타낸 동작 흐름도이다.
도 6와 관련하여 설명하기에 앞서, 도 2에 도시된 플래시 메모리 제어 장치는 쓰기 동작뿐만 아니라 읽기 동작을 수행할 수 있다. 도 2를 다시 참조하면, 컨트롤러 회로(230)는 메모리 어레이(210)에 포함된 적어도 하나의 메모리 블록에 쓰여진 압축 데이터를 읽기(read) 위하여 제어 신호를 생성한다. 그리고, 압축 코덱 회로(240)는 선정된 알고리즘에 따라 상기 읽혀진 압축 데이터를 압축 해제한다.
여기서, 압축 코덱 회로(240)가 입력 데이터를 압축하고, 메모리 어레이(210)에는 압축된 입력 데이터와 그에 대응하는 식별 정보가 쓰여졌다고 가정한다. 이 때, 컨트롤러 회로(230)는 식별 정보 및 압축된 입력 데이터를 읽기 위한 제어 신호를 생성한다.
그리고, 압축 코덱 회로(240)는 읽혀진 식별 정보를 이용하여 압축된 입력 데이터가 압축 코덱 회로(240)에 의해 압축된 것임을 파악할 수 있다. 이러한 경우, 압축 코덱 회로(240)는 읽혀진 압축된 입력 데이터를 압축 해제함으로써, 입력 데이터를 복원할 수 있으며, 복원된 입력 데이터는 외부의 프로세서로 제공될 수 있다.
다만, 압축 코덱 회로(240)는 읽혀진 식별 정보를 기초로 읽혀진 입력 데이터가 압축 코덱 회로(240)에 의해 압축되지 않은 것임을 파악할 수 있다. 이 때, 압축 코덱 회로(240)는 읽혀진 입력 데이터를 그대로 외부의 프로세서로 제공할 수 있다.
도 4를 참조하면, 본 발명의 다른 실시예에 따른 압축 코덱을 구비한 플래시 메모리의 동작 방법에서, 컨트롤러 회로는 메모리 블록에 쓰여진 입력 데이터 또는 압축된 입력 데이터 및 식별 정보를 읽기 위한 제어 신호를 생성한다(S610).
이러한 제어 신호는 인터페이스 회로를 통하여 메모리 셀들로 제공되며, 제어 신호에 따라 메모리 셀들에 쓰여진 입력 데이터 또는 압축된 입력 데이터 및 식별 정보가 읽혀진다.
즉, 본 발명의 다른 실시예에 따른 압축 코덱을 구비한 플래시 메모리의 동작 방법은 제어 신호에 응답하여 메모리 셀들에 쓰여진 식별 정보를 추출한다(S620).
그리고, 본 발명의 다른 실시예에 따른 압축 코덱을 구비한 플래시 메모리의 동작 방법은 식별 정보를 이용하여 메모리 셀들에 쓰여진 데이터가 원래의 입력 데이터인지 또는 압축된 입력 데이터인지를 판단한다(S630).
이 때, 플래시 메모리에 쓰여진 데이터가 원래의 입력 데이터로 판단되는 경우, 본 발명의 다른 실시예에 따른 압축 코덱을 구비한 플래시 메모리의 동작 방법은 메모리 셀들에 쓰여진 원래의 입력 데이터를 추출한다(S640). 그리고, 추출된 입력 데이터는 외부의 프로세서로 제공된다(S660).
반대로, 메모리 셀들에 쓰여진 데이터가 압축된 입력 데이터로 판단되는 경우, 본 발명의 다른 실시예에 따른 압축 코덱을 구비한 플래시 메모리의 동작 방법 은 메모리 셀들에 쓰여진 압축된 입력 데이터를 추출하고, 압축된 입력 데이터를 압축 해제한다(S640).
그리고, 압축 해제됨으로써 생성된 입력 데이터는 외부의 프로세서로 제공된다(S660). 여기서, 외부의 프로세서는 플래시 메모리가 적용될 수 있는 다양한 어플리케이션들에 설치된 것일 수 있다.
본 발명의 실시예에 따른 압축 코덱을 구비한 플래시 메모리의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명의 일실시예에 따른 하나의 메모리 블록에 포함되는 복수의 페이지들의 구조를 나타낸 도면이다.
도 2은 본 발명의 일실시예에 따른 압축 코덱을 구비한 플래시 메모리 집적 회로를 나타낸 도면이다.
도 3은 압축 코덱 회로 및 유형 판단 회로의 일예를 나타낸 블록도이다.
도 4는 본 발명의 일실시예에 따른 압축 코덱을 구비한 플래시 메모리의 동작 방법을 나타낸 동작 흐름도이다.
도 5는 본 발명의 일실시예에 따라 쓰기 동작을 수행하는 압축 코덱을 구비한 플래시 메모리의 동작 방법을 나타낸 동작 흐름도이다.
도 6은 본 발명의 일실시예에 따르 읽기 동작을 수행하는 압축 코덱을 구비한 플래시 메모리의 동작 방법을 나타낸 동작 흐름도이다.

Claims (17)

  1. 복수의 페이지들을 포함하는 적어도 하나의 메모리 블록;
    입력 데이터가 압축된(compressed) 데이터인지 여부를 판단하는 유형 판단 회로;
    상기 입력 데이터가 상기 압축된 데이터가 아닌 경우, 상기 입력 데이터를 압축하여 압축된 입력 데이터를 생성하고 상기 생성된 데이터가 압축된 입력 데이터임을 지시하는 식별 정보를 생성하고, 상기 입력 데이터가 압축된 데이터인 경우, 상기 입력 데이터를 압축된 입력 데이터로서 제공하는 압축 코덱 회로; 및
    상기 복수의 페이지들 중 적어도 하나의 페이지에 순차적으로 상기 압축된 입력 데이터 및 식별 정보 중 적어도 하나를 쓰기(write) 위하여 제어 신호를 생성하는 컨트롤러 회로
    를 포함하는 것을 특징으로 압축 코덱을 구비한 플래시 메모리 집적 회로.
  2. 제1항에 있어서,
    상기 압축 코덱 회로는
    미리 설정된 압축 알고리즘에 따라 상기 입력 데이터를 압축하는 것을 특징으로 하는 압축 코덱을 구비한 플래시 메모리 집적 회로.
  3. 제1항에 있어서,
    상기 입력 데이터는 멀티미디어 데이터인 것을 특징으로 하는 압축 코덱을 구비한 플래시 메모리 집적 회로.
  4. 제1항에 있어서,
    상기 적어도 하나의 메모리 블록은 낸드(NAND) 플래시 메모리의 메모리 블록인 것을 특징으로 하는 압축 코덱을 구비한 플래시 메모리 집적 회로.
  5. 제1항에 있어서,
    상기 컨트롤러 회로는
    상기 적어도 하나의 페이지와 연결된 워드 라인(word line) 또는 비트 라인(bit line)에 인가되는 전압들을 제어하는 상기 제어 신호를 생성하는 것을 특징으로 하는 압축 코덱을 구비한 플래시 메모리 집적 회로.
  6. 삭제
  7. 제1항에 있어서,
    상기 유형 판단 회로는
    상기 입력 데이터의 유형을 미리 설정된 유형들과 비교하여 상기 입력 데이터가 상기 압축된 데이터인지 여부를 판단하는 것을 특징으로 하는 압축 코덱을 구비한 플래시 메모리 집적 회로.
  8. 제1항에 있어서,
    상기 유형 판단 회로는
    상기 판단 결과에 대응하는 논리값을 제공하고,
    상기 압축 코덱 회로는
    상기 제공된 논리값에 따라 상기 입력 데이터를 압축하는 것을 특징으로 하는 압축 코덱을 구비한 플래시 메모리 집적 회로.
  9. 제1항에 있어서,
    상기 컨트롤러 회로는
    상기 적어도 하나의 메모리 블록에 상기 압축된 입력 데이터를 식별할 수 있는 식별 정보를 쓰기 위하여 상기 제어 신호를 생성하는 것을 특징으로 하는 압축 코덱을 구비한 플래시 메모리 집적 회로.
  10. 플래시 메모리 집적 회로에 있어서,
    복수의 페이지들을 포함하며 압축 데이터를 식별할 수 있는 식별 정보를 저장하는 적어도 하나의 메모리 블록;
    상기 복수의 페이지들 중 적어도 하나의 페이지에 쓰여진 압축 데이터를 읽기(read) 위하여 제어 신호를 생성하는 컨트롤러 회로; 및
    상기 식별 정보에 기초하여 선정된 알고리즘에 따라 상기 읽혀진 압축 데이터를 압축 해제하는 압축 코덱 회로
    를 포함하고,
    상기 압축 데이터는
    상기 플래시 메모리 집적 회로에 입력되는 입력 데이터가 압축된 데이터가 아닌 경우, 상기 입력 데이터를 압축하여 생성된 압축된 입력 데이터이고, 상기 입력 데이터가 압축된 데이터인 경우, 상기 입력 데이터와 동일하고,
    상기 압축 코덱 회로에 의해 상기 적어도 하나의 페이지에 쓰여진 것을 특징으로 하는 압축 코덱을 구비한 플래시 메모리 집적 회로.
  11. 삭제
  12. 플래시 메모리의 입력 데이터가 압축된 데이터인지 여부를 판단하는 단계;
    상기 입력 데이터가 상기 압축된 데이터가 아닌 경우, 상기 입력 데이터를 선정된(predetermined) 압축 알고리즘에 따라 압축하여 압축된 입력 데이터를 생성하고 상기 생성된 데이터가 압축된 입력 데이터임을 지시하는 식별 정보를 생성하고, 상기 입력 데이터가 압축된 데이터인 경우, 상기 입력 데이터를 압축된 입력 데이터로서 제공하는 단계; 및
    상기 플래시 메모리의 적어도 하나의 메모리 블록에 포함된 복수의 페이지들 중 적어도 하나의 페이지에 상기 압축된 입력 데이터 및 식별 정보 중 적어도 하나를 쓰기(write) 위하여 제어 신호를 생성하는 단계
    를 포함하는 것을 특징으로 하는 압축 코덱을 구비한 플래시 메모리의 동작 방법.
  13. 삭제
  14. 제12항에 있어서,
    상기 제어 신호를 생성하는 단계는
    상기 적어도 하나의 메모리 블록에 상기 압축된 입력 데이터를 식별할 수 있는 식별 정보를 더 쓰기 위하여 상기 제어 신호를 생성하는 단계인 것을 특징으로 하는 압축 코덱을 구비한 플래시 메모리의 동작 방법.
  15. 플래시 메모리의 동작 방법에 있어서,
    플래시 메모리의 적어도 하나의 메모리 블록에 포함된 복수의 페이지들 중 적어도 하나의 페이지에 쓰여진 압축 데이터 및 상기 압축 데이터를 식별할 수 있는 식별 정보를 읽기(read) 위하여 제어 신호를 생성하는 단계; 및
    상기 식별 정보에 기초하여 압축 코덱 회로가 선정된 알고리즘에 따라 상기 읽혀진 압축 데이터를 압축 해제하는 단계
    를 포함하고,
    상기 압축 데이터는
    상기 플래시 메모리에 입력되는 입력 데이터가 압축된 데이터가 아닌 경우, 상기 입력 데이터를 압축하여 생성된 압축된 입력 데이터이고, 상기 입력 데이터가 압축된 데이터인 경우, 상기 입력 데이터와 동일하고,
    상기 압축 코덱 회로에 의해 상기 적어도 하나의 페이지에 쓰여진 것을 특징으로 하는 압축 코덱을 구비한 플래시 메모리의 동작 방법.
  16. 삭제
  17. 제12항, 제14항 내지 제15항 중 어느 한 항의 방법을 수행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
KR20080089925A 2008-09-11 2008-09-11 압축 코덱을 구비한 플래시 메모리 집적 회로 KR101487190B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR20080089925A KR101487190B1 (ko) 2008-09-11 2008-09-11 압축 코덱을 구비한 플래시 메모리 집적 회로
US12/458,641 US9236129B2 (en) 2008-09-11 2009-07-17 Flash memory integrated circuit with compression/decompression CODEC

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20080089925A KR101487190B1 (ko) 2008-09-11 2008-09-11 압축 코덱을 구비한 플래시 메모리 집적 회로

Publications (2)

Publication Number Publication Date
KR20100030943A KR20100030943A (ko) 2010-03-19
KR101487190B1 true KR101487190B1 (ko) 2015-01-28

Family

ID=42038771

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20080089925A KR101487190B1 (ko) 2008-09-11 2008-09-11 압축 코덱을 구비한 플래시 메모리 집적 회로

Country Status (2)

Country Link
US (1) US9236129B2 (ko)
KR (1) KR101487190B1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080140724A1 (en) 2006-12-06 2008-06-12 David Flynn Apparatus, system, and method for servicing object requests within a storage controller
KR101487190B1 (ko) * 2008-09-11 2015-01-28 삼성전자주식회사 압축 코덱을 구비한 플래시 메모리 집적 회로
KR101649357B1 (ko) * 2010-05-10 2016-08-19 삼성전자주식회사 데이터 저장 장치, 그것의 동작 방법, 그리고 그것을 포함한 스토리지 서버
KR20120062500A (ko) * 2010-12-06 2012-06-14 삼성전자주식회사 압축 데이터를 판별하는 방법 및 장치 그리고 그것을 포함한 데이터 저장 장치
US8725933B2 (en) * 2011-07-01 2014-05-13 Intel Corporation Method to detect uncompressible data in mass storage device
TWI467590B (zh) * 2011-07-11 2015-01-01 Phison Electronics Corp 資料處理方法、記憶體控制器及記憶體儲存裝置
WO2013076763A1 (en) * 2011-11-22 2013-05-30 Hitachi, Ltd. Storage system and control method of storage system
US10019353B2 (en) * 2012-03-02 2018-07-10 Longitude Enterprise Flash S.A.R.L. Systems and methods for referencing data on a storage medium
US9064575B2 (en) * 2012-08-03 2015-06-23 Micron Technology, Inc. Determining whether a memory cell state is in a valley between adjacent data states
US9940733B2 (en) * 2014-06-26 2018-04-10 Intel Corporation Virtual memory supported compression control surfaces
US10387305B2 (en) * 2016-12-23 2019-08-20 Intel Corporation Techniques for compression memory coloring

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6145069A (en) 1999-01-29 2000-11-07 Interactive Silicon, Inc. Parallel decompression and compression system and method for improving storage density and access speed for non-volatile memory and embedded memory devices
KR100369514B1 (ko) 1996-04-24 2003-03-28 주식회사 엘지이아이 데이타압축장치
JP2004535022A (ja) 2001-07-02 2004-11-18 ナノアンプ・ソリューションズ・インコーポレイテッド スマートメモリ
KR20080023191A (ko) * 2006-09-08 2008-03-12 삼성전자주식회사 퓨전메모리 장치 및 방법

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3015134B2 (ja) * 1991-04-23 2000-03-06 キヤノン株式会社 画像処理方法及び装置
US6400996B1 (en) * 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method
US6081783A (en) * 1997-11-14 2000-06-27 Cirrus Logic, Inc. Dual processor digital audio decoder with shared memory data transfer and task partitioning for decompressing compressed audio data, and systems and methods using the same
JP2001243795A (ja) * 1999-12-24 2001-09-07 Nec Corp 半導体記憶装置
ITRM20010104A1 (it) * 2001-02-27 2002-08-27 Micron Technology Inc Modo di lettura a compressione di dati per il collaudo di memorie.
US20070065018A1 (en) * 2003-12-15 2007-03-22 Arvind Thiagarajan Compressing image data
US7504970B2 (en) * 2006-08-17 2009-03-17 Raytheon Company Data encoder
DE102007017254B4 (de) * 2006-11-16 2009-06-25 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung zum Kodieren und Dekodieren
US7940575B2 (en) * 2008-03-28 2011-05-10 Qimonda Ag Memory device and method providing logic connections for data transfer
US9772936B2 (en) * 2008-07-10 2017-09-26 Micron Technology, Inc. Data collection and compression in a solid state storage device
KR101487190B1 (ko) * 2008-09-11 2015-01-28 삼성전자주식회사 압축 코덱을 구비한 플래시 메모리 집적 회로

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100369514B1 (ko) 1996-04-24 2003-03-28 주식회사 엘지이아이 데이타압축장치
US6145069A (en) 1999-01-29 2000-11-07 Interactive Silicon, Inc. Parallel decompression and compression system and method for improving storage density and access speed for non-volatile memory and embedded memory devices
JP2004535022A (ja) 2001-07-02 2004-11-18 ナノアンプ・ソリューションズ・インコーポレイテッド スマートメモリ
KR20080023191A (ko) * 2006-09-08 2008-03-12 삼성전자주식회사 퓨전메모리 장치 및 방법

Also Published As

Publication number Publication date
US20100077133A1 (en) 2010-03-25
KR20100030943A (ko) 2010-03-19
US9236129B2 (en) 2016-01-12

Similar Documents

Publication Publication Date Title
KR101487190B1 (ko) 압축 코덱을 구비한 플래시 메모리 집적 회로
US7934053B2 (en) Flash memory storage device for adjusting efficiency in accessing flash memory
US8537621B2 (en) Non-volatile memory device and read method thereof
US8347023B2 (en) Compression based wear leveling for non-volatile memory
US9230658B2 (en) Method of storing data on a flash memory device
TWI404068B (zh) 非揮發性記憶體陣列分割結構
KR101379048B1 (ko) 고상 저장 장치 내의 데이터 수집 및 압축
KR100736103B1 (ko) 비휘발성 메모리, 상기 비휘발성 메모리의 데이터 유효성을판단하는 장치 및 방법
US7436715B2 (en) Non-volatile memory device, and control method of non-volatile memory device
US20180018224A1 (en) Method for managing data stored in flash memory and associated memory device and controller
US20100135082A1 (en) Moving program verify level for programming of memory
JP2013077371A (ja) 不揮発性メモリ装置及びそのソフト判定読出し方法
CN107958685B (zh) 阻变存储装置及其选择性写入电路和操作方法
US11158380B1 (en) Memory device and erasing and verification method thereof
KR20130074294A (ko) 불 휘발성 메모리 장치 및 그것의 프로그램 방법
KR20130049331A (ko) 메모리 시스템 및 그것의 데이터 저장 방법
CN116403629A (zh) 存储装置
KR20170064980A (ko) 데이터 중복 제거를 수행할 수 있는 플래시 메모리 장치의 동작 방법과 상기 플래시 메모리 장치를 포함하는 데이터 저장 시스템
US8830750B1 (en) Data reading method, and control circuit, memory module and memory storage apparatus using the same
US20100049904A1 (en) Storage device using a multi-level flash memory as a single flash memory and method for the same
US8520465B2 (en) Semiconductor device
CN113096714A (zh) 存储器装置及其操作方法
KR20150118649A (ko) 데이터 스토리지 시스템에서의 스트로브 신호 성형방법 및 그에 따른 스트로브 신호 성형장치
CN102393835A (zh) 闪存及其数据更新方法
US20150143203A1 (en) Semiconductor device and method of operating the same

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20171219

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181220

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20191217

Year of fee payment: 6