KR20160031169A - 데이터 패턴 탐지 장치, 이를 포함하는 반도체 장치 및 그 동작 방법 - Google Patents

데이터 패턴 탐지 장치, 이를 포함하는 반도체 장치 및 그 동작 방법 Download PDF

Info

Publication number
KR20160031169A
KR20160031169A KR1020140120794A KR20140120794A KR20160031169A KR 20160031169 A KR20160031169 A KR 20160031169A KR 1020140120794 A KR1020140120794 A KR 1020140120794A KR 20140120794 A KR20140120794 A KR 20140120794A KR 20160031169 A KR20160031169 A KR 20160031169A
Authority
KR
South Korea
Prior art keywords
data
pattern
length
requested
write
Prior art date
Application number
KR1020140120794A
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 KR1020140120794A priority Critical patent/KR20160031169A/ko
Priority to US14/549,190 priority patent/US10387579B2/en
Publication of KR20160031169A publication Critical patent/KR20160031169A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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/08Address circuits; Decoders; Word-line control 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/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching 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/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • 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

Abstract

본 발명의 일 실시예에 의한 데이터 패턴 탐지 장치는 압축된 입력 데이터와 압축된 패턴 데이터의 길이가 동일한지 비교하는 길이 비교부; 및 압축된 입력 데이터와 압축된 패턴 데이터가 동일한지 비교하는 데이터 비교부를 포함한다.

Description

데이터 패턴 탐지 장치, 이를 포함하는 반도체 장치 및 그 동작 방법{DATA PATTERN DETECTING DEVICE, SEMICONDUCTOR DEVICE INCLUDING THE SAME AND OPERATING METHOD THEREOF}
본 발명은 데이터가 특정 패턴을 갖는지 판단하는 데이터 패턴 탐지 장치와 이를 포함하는 반도체 장치 및 그 동작 방법에 관한 것이다.
낸드 플래시 메모리 장치 등의 비휘발성 반도체 메모리 장치를 포함하는 SSD(Solid State Drive) 등의 데이터 저장 장치가 하드디스크와 같은 기존의 데이터 저장 장치를 대체하고 있다.
SSD와 같은 데이터 저장 장치는 상대적으로 고가여서 데이터 저장 공간을 효율적으로 사용하기 위한 기술이 요구되고 있다. 예를 들어 특수한 패턴의 데이터가 자주 사용된다면 해당 패턴의 데이터 전체를 직접 저장하는 대신에 해당 패턴의 데이터를 저장했다는 정보만 저장함으로써 저장 공간을 대폭 줄일 수 있다.
낸드 플래시 메모리 장치의 경우 페이지 단위로 읽기 쓰기를 수행하고 블록 단위로 소거 동작을 수행한다. 이때 페이지의 크기는 보통 4096 바이트(4KB)인데 이에 비하여 특정 주소에 해당 패턴의 데이터를 저장했다는 정보는 훨씬 작아 저장 공간을 아낄 수 있게 된다.
종래에는 특정 데이터 패턴을 탐지하는 동작 자체를 위하여 자원을 과도하게 소모하여 오히려 데이터 저장 장치의 전체적인 성능이 악화되는 문제가 있었다. 이에 따라 특정한 데이터 패턴을 보다 효율적으로 탐지할 수 있는 장치 및 방법이 요구되고 있다.
본 발명은 데이터가 특정 패턴을 갖는지를 용이하게 판별할 수 있는 데이터 패턴 탐지 장치와 이를 포함하는 반도체 장치 및 그 동작 방법을 제공한다.
본 발명의 일 실시예에 의한 데이터 패턴 탐지 장치는 압축된 입력 데이터와 압축된 패턴 데이터의 길이가 동일한지 비교하는 길이 비교부; 및 압축된 입력 데이터와 압축된 패턴 데이터가 동일한지 비교하는 데이터 비교부를 포함한다.
본 발명의 일 실시예에 의한 반도체 장치는 메모리 셀 어레이 및 호스트로부터 요청된 데이터의 입출력을 위하여 메모리 셀 어레이를 제어하는 제어장치를 포함하되, 제어장치는 호스트로부터 요청된 데이터가 소정의 패턴을 가지는지 판단하는 패턴 판별 장치; 호스트로부터 요청된 논리 주소와 메모리 셀 어레이의 주소 사이의 대응 관계를 저장하는 주소 매핑 테이블; 및 요청된 데이터가 소정의 패턴을 가지는 경우 호스트로부터 요청된 주소에 대응하는 물리 주소로서 소정의 패턴에 대응하는 주소를 지정하는 제어부를 포함한다.
본 발명의 일 실시예에 의한 반도체 장치의 동작 방법은 쓰기 요청된 데이터를 압축하는 제 1 단계; 쓰기 요청된 데이터가 소정 패턴을 가지는지 판단하는 제 2 단계; 및 쓰기 요청된 데이터가 소정 패턴을 가지는 경우 쓰기 요청된 논리 주소를 제 1 물리 주소에 대응시키는 제 3 단계를 포함하되, 제 2 단계는 쓰기 요청된 데이터를 압축한 제 1 데이터의 길이와 소정 패턴의 데이터를 압축한 제 2 데이터의 길이를 비교하는 제 2-1 단계; 및 제 1 데이터와 제 2 데이터를 비교하는 제 2-2 단계를 포함한다.
본 발명은 입력된 데이터가 특정 패턴을 갖는지를 용이하게 판별할 수 있는 데이터 패턴 탐지 장치와 이를 포함하는 반도체 장치 및 그 동작 방법을 제공한다. 이에 따라 특정 패턴의 비중이 클수록 데이터 저장 공간의 소모량을 줄일 수 있고, 특정 패턴의 데이터를 메모리 셀 어레이에서 읽어서 출력하는 대신에 특정 패턴의 데이터를 직접 생성하여 출력할 수 있으므로 읽기 성능이 향상될 수 있다.
도 1은 본 발명의 일 실시예에 의한 데이터 패턴 탐지 장치의 블록도.
도 2는 본 발명의 일 실시예에 의한 반도체 장치의 블록도.
도 3은 도 2의 주소 테이블의 데이터 구조도.
도 4는 도 2의 물리 페이지의 데이터 구조도.
도 5는 도 2의 쓰기 버퍼의 데이터 구조도.
도 6은 본 발명의 일 실시예에 의한 반도체 장치의 읽기 동작을 나타내는 순서도.
도 7은 본 발명의 일 실시예에 의한 반도체 장치의 쓰기 동작을 나타내는 순서도.
도 8 및 9는 본 발명의 효과를 나타내는 그래프.
이하에서는 첨부한 도면을 참조하여 본 발명의 실시예에 대해서 상세히 설명한다. 이하의 설명에서 동일한 참조 부호는 실질적으로 동일한 대상을 지시한다.
도 1은 본 발명의 일 실시예에 의한 데이터 패턴 탐지 장치의 블록도이다.
본 발명의 일 실시예에 의한 데이터 패턴 탐지 장치(100)는 입력된 데이터가 특정 패턴을 갖는지 여부를 판별하여 탐지 플래그 신호를 출력한다.
본 발명의 일 실시예에 의한 데이터 패턴 탐지 장치(100)는 압축부(110), 길이 비교부(120), 데이터 비교부(130) 및 플래그 생성부(130)를 포함한다.
압축부(110)는 입력된 데이터를 압축하여 압축 데이터를 출력한다.
길이 비교부(120)는 압축된 데이터와 특정 패턴을 가지는 데이터를 압축한 압축된 패턴 데이터의 길이를 비교한다. 압축된 패턴 데이터는 반도체 장치(100) 내의 저장부(150)에 미리 저장될 수 있다. 길이 비교부(110)는 길이가 동일한 경우 길이 비교 신호(SL)를 활성화한다.
압축된 데이터의 길이가 압축된 패턴 데이터의 길이와 상이한 경우에는 압축되기 전의 데이터는 패턴 데이터와 동일할 수 없다. 이에 따라 데이터 비교부(130)는 데이터 비교 동작을 수행할 필요가 없다.
압축된 데이터의 길이가 압축된 패턴 데이터의 길이와 동일한 경우에는 압축되기 전의 데이터가 패턴 데이터일 가능성은 있으나 이를 패턴 데이터로 단정할 수 없다. 예를 들어 페이지의 크기가 4KB이고 압축 알고리즘이 LZFX인 경우, 페이지 내의 모든 데이터가 0인 경우와 1인 경우는 압축 후의 길이가 54 바이트로 동일하다.
길이 비교부(120)에서 길이가 동일한 것으로 판별되면 데이터 비교부(130)는 압축된 패턴 데이터와 압축 데이터를 비교한다. 데이터 비교부(130)는 데이터가 동일한 경우 데이터 비교 신호(SD)를 활성화한다.
플래그 생성부(140)는 길이 비교 신호(SL) 및 데이터 비교 신호(SD) 모두가 활성화된 경우 탐지 플래그를 활성화하고 그렇지 않으면 탐지 플래그를 비활성화한다.
탐지하고자 하는 패턴의 종류는 실시예에 따라 다양하게 변경될 수 있으나 이하에서는 제로 데이터의 경우 즉 데이터가 모두 "0"인 경우를 탐지하고자 하는 패턴으로 하는 실시예를 개시한다.
예를 들어 낸드 플래시 메모리 장치에 저장되는 페이지의 크기는 4096 바이트(4KB)이다. 페이지가 제로 페이지인지 판별하기 위하여 4096 바이트의 데이터를 일일이 '0'과 비교하는 경우에는 데이터 비교부(130)의 하드웨어 면적 또는 비교 시간 중 적어도 하나가 과도하게 증가하게 되어 시스템의 성능을 저하시킨다.
이에 비하여 제로 페이지를 압축하면 압축된 데이터의 길이는 현저하게 줄어든다. 전술한 바와 같이 LZFX 알고리즘에 의하여 4KB 크기의 제로 페이지를 압축하는 경우 그 길이는 54 바이트로 줄어든다.
이에 따라 데이터 비교부(130)의 하드웨어 면적 또는 비교 시간은 현저하게 줄어들 수 있다. 데이터 비교부(130)는 논리 게이트를 이용하여 용이하게 구현할 수 있으므로 이에 대한 설명은 생략한다.
도 2는 본 발명의 일 실시예에 의한 반도체 장치의 블록도이다.
본 발명의 일 실시예에 의한 반도체 장치(1000)는 호스트(10)의 요청에 따라 데이터를 읽거나 쓰는 동작을 수행한다. 이하에서는 반도체 장치(1000)가 낸드 플래시 메모리 장치인 실시예를 개시한다. 본 실시예에서 호스트(10)는 운영체제의 제어에 따라 동작하는 CPU, 메모리 컨트롤러 등을 포함할 수 있다.
반도체 장치(300)는 물리 페이지(310) 단위로 구분된 메모리 셀 어레이(300)와 호스트(10)의 요청에 따라 메모리 셀 어레이(300)를 제어하여 데이터를 입출력하는 제어 장치(200)를 포함한다.
메모리 셀 어레이(300)는 물리 페이지(310)에 쓰기 요청된 데이터를 압축된 형태 또는 압축되지 않은 형태로 저장할 수 있다.
물리 페이지(310)의 크기는 논리 페이지의 크기와 상이할 수 있다. 예를 들어 호스트로부터 제공되는 논리 페이지의 크기는 4KB 이고 물리 페이지(310)의 크기는 8KB 일 수 있다. 이 경우 하나의 물리 페이지는 두 개의 압축되지 않은 논리 페이지를 저장할 수 있다.
제어 장치(200)는 제어부(210), 주소 매핑 테이블(220), 패턴 판별 장치(100), 압축 해제부(230), 쓰기 버퍼(240), 읽기 버퍼(250)를 포함한다.
제어부(210)는 FTL(Flash Translation Layer)과 같이 낸드 플래시 메모리 장치의 읽기, 쓰기, 가비지 콜렉션, 웨어 레벨링 동작을 전반적으로 제어한다. FTL의 일반적인 동작은 잘 알려져 있으므로 이에 대한 구체적인 개시는 생략한다.
주소 매핑 테이블(220)은 호스트(10)로부터 요청된 논리 주소와 이에 대응하는 물리 주소를 관리한다. 대응 관계는 가비지 콜렉션, 웨어 레벨링 등의 동작을 수행하면서 갱신될 수 있다.
패턴 판별 장치(100)는 전술한 바와 같이 입력된 데이터를 압축하는 압축부(110)를 포함한다. 패턴 판별 장치(100)는 쓰기 요청된 데이터가 특정 패턴을 가지는지 판단한다.
압축 해제부(230)는 읽기 요청시 메모리 셀 어레이(300)에서 출력된 데이터가 압축된 경우 이를 해제하여 출력한다.
쓰기 버퍼(240)는 물리 페이지(310)에 데이터를 저장하기 전에 압축된 데이터 또는 압축되지 않은 데이터를 임시로 저장한다.
읽기 버퍼(240)는 물리 페이지(310)에서 읽은 데이터를 임시 저장한다.
도 3은 주소 매핑 테이블(220)의 데이터 구조를 나타낸다.
주소 매핑 테이블은 논리 주소 필드(LPA), 바이패스 플래그 필드(BPF), 인덱스 필드(INDEX0, 물리 주소 필드(PPA)를 포함한다.
논리 주소 필드(LPA)는 호스트(10)로부터 요청되는 데이터의 논리 주소를 저장한다. 호스트(10)로부터 요청되는 논리 주소로부터 주소 매핑 테이블(220)의 인덱스를 계산하여 알 수 있는 경우에는 논리 주소 필드(LPA)를 따로 저장하지 않아도 무방하다.
바이패스 플래그 필드(BPF)는 물리 페이지(310)에 데이터가 압축되지 않고 저장되는 경우 1, 그렇지 않은 경우 0을 저장한다. 데이터의 종류에 따라 압축 성능이 달라질 수 있고 심지어는 압축 결과 크기가 더 커질 수도 있다. 이에 따라 압축 성능이 저하되는 데이터에 대해서는 압축되지 않은 데이터를 그대로 저장하게 된다.
예를 들어 압축된 데이터의 길이가 본래 데이터의 길이보다 95% 이상인 경우 압축되지 않은 데이터를 그대로 저장할 수 있으며 이 경우 해당 논리 주소에 대응하는 바이패스 플래그는 1로 설정된다.
도 3에서 논리 주소 80 - 82에 대응하는 데이터는 압축된 형태로 저장되고 논리 주소 83-84에 대응하는 데이터는 압축되지 않은 형태로 저장됨을 나타낸다.
물리 주소 필드(PPA)는 논리 주소에 대응하는 물리 페이지(310)의 주소를 나타낸다.
전술한 바와 같이 물리 페이지(310)의 크기는 논리 페이지보다 더 클 수 있다. 이에 따라 하나의 물리 페이지(310)는 다수의 논리 페이지를 저장할 수 있다. 이에 따라 하나의 물리 페이지(310)에 저장된 다수의 논리 페이지를 식별하기 위하여 인덱스 정보가 사용될 수 있다. 인덱스 필드(INDEX)는 이러한 인덱스 정보를 저장한다.
예를 들어 도 3에서 논리 주소 80에 대응하는 인덱스는 0이므로 물리 주소 100에 압축되어 저장된 데이터 중 첫 번째 데이터에 대응한다. 또한 논리 주소 84에 대응하는 인덱스는 1이므로 물리 주소 200에 압축되지 않고 저장된 데이터 중 두 번째 데이터에 대응한다.
도 4는 물리 페이지(310)의 데이터 구조를 나타낸다.
(a)는 데이터가 압축되지 않고 저장되는 경우의 구조를 나타내고 (b)는 데이터가 압축되어 저장되는 경우의 구조를 나타낸다.
본 실시예에서 논리 페이지의 크기는 4KB이고 물리 페이지의 크기는 8KB이므로 하나의 물리 페이지(310)는 두 개의 논리 페이지(311, 312)를 저장하며 순서대로 인덱스 0과 1에 대응한다.
데이터가 압축되지 않고 저장되는 경우에는 논리 페이지 데이터 이외에 별도의 데이터를 기록할 필요가 없다.
이에 비하여 데이터가 압축되는 경우에는 압축된 데이터의 크기가 데이터 마다 달라질 수 있어 압축된 데이터를 식별하기 위한 별도의 메타 데이터를 필요로 한다.
(b)에서 메타 데이터는 개수 데이터(313)와 길이 데이터(314 - 316)를 포함한다.
개수 데이터(313)는 물리 페이지(310)에 포함된 압축된 논리 페이지의 개수를 나타낸다. 본 실시예에서 압축된 논리 페이지(317 - 319)는 3개이다.
길이 데이터(314 - 316)는 압축된 논리 페이지(317 - 319) 각각의 길이를 나타낸다. 길이 데이터(314)는 0번째 압축 논리 페이지(317)의 길이를 나타내고, 길이 데이터(315)는 1번째 압축 논리 페이지(318)의 길이를 나타내고, 길이 데이터(316)는 2번째 압축 논리 페이지(319)의 길이를 나타낸다.
물리 주소와 메타 데이터를 통해 압축된 논리 페이지 데이터를 식별할 수 있다.
도 5는 도 2의 쓰기 버퍼(240))를 나타내는 블록도이다.
쓰기 버퍼(240)는 제 1 쓰기 버퍼(241)와 제 2 쓰기 버퍼(242)를 포함할 수 있다.
제 1 쓰기 버퍼(241)는 압축하지 않은 페이지를 임시 저장하기 위한 것으로서 도 4의 (a)와 같은 구조를 가질 수 있다. 제 1 쓰기 버퍼(241)는 두 개의 비압축 논리 페이지(241-1, 241-2)를 저장할 수 있다.
제 2 쓰기 버퍼(242)는 압축한 페이지를 임시 저장하기 위한 것으로서 도 4의 (b)와 같은 구조를 가질 수 있다. 제 2 쓰기 버퍼(242)는 압축 논리 페이지(242-5 ~ 242-7)와 이들에 대응하는 메타 데이터(242-1 ~ 242-4)를 저장한다. 메타 데이터는 압축 논리 페이지의 개수(242-1)와 압축 논리 페이지들의 길이(242-2 ~ 242-4)를 포함한다.
도 6은 도 2의 반도체 장치(1000)의 쓰기 동작을 나타내는 순서도이다.
반도체 장치(1000)의 쓰기 동작은 전반적으로 제어부(210)에 의해 제어된다.
호스트(10)로부터 쓰기 요청이 제공되면 패턴 판별 장치(100)의 압축부(110)는 먼저 논리 페이지를 압축한다(S110).
이후 패턴 판별 장치(100)는 압축된 논리 페이지 정보를 이용하여 쓰기 요청된 페이지가 제로 페이지인지 여부를 판별한다(S130). 제로 페이지 판별 동작은 도 1을 참조하여 개시한 바 있으므로 설명을 생략한다.
다음으로 판별 결과를 참조하여 입력된 페이지가 제로 페이지인지 판단한다(S130).
입력된 페이지가 제로 페이지이면 논리 주소에 대응하는 물리 주소로서 제로 페이지에 대응하는 주소를 할당한다(S140). 이때 제로 페이지에 대응하는 주소로서 특정한 값 예를 들어 0을 할당할 수 있다. 이 경우 제로 페이지를 물리 페이지(310)에 저장할 필요 없다.
입력된 페이지가 제로 페이지가 아니면 먼저 압축된 페이지의 크기를 임계점과 비교한다(S150). 예를 들어 압축된 페이지의 크기가 압축 전 페이지 크기의 95% 이하인지를 비교한다.
압축 페이지 크기가 임계점보다 크면 압축되지 않은 논리 페이지를 쓰기 대상으로 설정하고(S151), 그렇지 않으면 압축된 논리 페이지를 쓰기 대상으로 설정한다(S152).
이후 쓰기 버퍼(240)에 여유 공간이 있는지 확인한다(S160). 예를 들어 압축되지 않은 논리 페이지를 쓰기 대상으로 설정한 경우에는 제 1 쓰기 버퍼(241)에 여유 공간이 있는지 확인하고, 압축되지 않은 논리 페이지를 쓰기 대상으로 설정한 경우에는 제 2 쓰기 버퍼(242)에 여유 공간이 있는지 확인한다.
쓰기 버퍼(240)에 여유 공간이 없으면 먼저 쓰기 버퍼(240)의 내용을 물리 페이지에 저장하고(S170), 쓰기 대상으로 설정된 데이터를 쓰기 버퍼(240)에 저장한다(S180).
쓰기 버퍼(240)에 여유 공간이 있으면 쓰기 대상으로 설정된 데이터를 쓰기 버퍼(240)에 저장한다(S180).
쓰기 대상으로 설정된 데이터가 압축되지 않은 논리 페이지이면 제 1 쓰기 버퍼(241)에 저장하고, 쓰기 대상으로 설정된 데이터가 압축된 논리 페이지이면 제 2 쓰기 버퍼(242)에 저장한다.
도 7은 도 2의 반도체 장치의 읽기 동작을 나타내는 순서도이다.
반도체 장치(1000)의 읽기 동작은 전반적으로 제어부(210)에 의해 제어된다.
호스트(10)로부터 읽기 요청이 제공되면 먼저 주소 매핑 테이블(220)을 참조하여 요청된 논리 주소에 대응하는 물리 주소를 확인한다(S210).
이후 확인된 물리 주소가 제로 페이지에 대응하는 주소인지 판단한다(S220).
확인된 물리 주소가 제로 페이지에 대응하는 경우 메모리 셀 어레이(300)로부터 데이터를 읽지 않고 제로 페이지를 생성하여 호스트(10)로 전달한다(S230).
확인된 물리 주소가 제로 페이지에 대응하지 않는 경우 압축된 논리 페이지가 저장된 물리 페이지(310)를 읽는다(S240).
물리 페이지(310)에서 읽어온 데이터는 읽기 버퍼(250)에 임시로 저장될 수 있다.
이후 읽어온 데이터에서 논리 주소에 대응하는 압축된 논리 페이지 부분을 압축 해제하여 호스트로 전달한다(S250). 논리 주소에 대응하는 압축된 논리 페이지 부분을 찾기 위하여 주소 매핑 테이블(220)을 참조할 수 있다.
도 8은 본 발명의 효과를 나타내는 그래프이다.
도 8의 그래프는 페이지 데이터를 압축하여 저장하는 방식의 낸드 플래시 메모리 장치에 있어서 제로 페이지를 탐지하는 경우와 그렇지 않은 경우의 성능을 비교한다.
그래프에서 가로축은 벤치마크의 종류를 나타내고, 세로 축은 쓰기 증폭비(WAF, Write Amplification Factor)를 나타낸다. 쓰기 증폭비는 호스트(10)에서 쓰기 요청한 데이터의 크기에 대비하여 제어장치(200)가 메모리 셀 어레이(300)에 실제로 쓰기를 수행한 데이터의 비율을 말한다.
도시된 바와 같이 제로 페이지 탐지 동작을 수행하는 경우에는 제로 페이지를 저장하지 않으므로 쓰기 증폭비가 더 줄어들게 된다. 예를 들어 리눅스 벤치 마크의 경우 제로 페이지 탐지 동작을 수행하는 경우 그렇지 않은 경우에 비하여 14% 정도 쓰기 증폭비가 줄어들었음을 알 수 있다.
도 9는 본 발명의 효과를 나타내는 다른 그래프이다.
도 9의 그래프는 페이지 데이터를 압축하여 저장하는 방식의 낸드 플래시 메모리 장치에 있어서 제로 페이지를 탐지하는 경우와 그렇지 않은 경우의 읽기 회수, 쓰기 회수, 압축 해제 회수를 비교하여 나타낸 그래프이다.
제로 페이지의 읽기는 쓰기가 발생한 뒤, 바로 발생하는 것이 아니기 때문에 정확한 성능을 측정하기 위하여, 윈도우7 설치부터 시작하여 약 12시간의 실제 사용자 워크로드를 추출하였다. 추출된 워크로드를 통해 제로 페이지를 탐지하는 경우와 그렇지 않은 경우의 쓰기, 읽기, 압축 해제 회수를 측정하였다.
도 9에 도시된 바와 같이 제로 페이지를 탐지하는 경우 그렇지 않은 경우에 비하여 읽기 회수는 2% 정도, 쓰기 회수와 압축 해제 회수는 각각 4% 정도 감소하였음을 알 수 있다.
읽기 동작에 있어서 제로 페이지를 탐지한 경우에는 실제로 데이터를 읽는 대신에 페이지 데이터를 생성하여 출력하고, 쓰기 동작에 있어서 제로 페이지를 탐지한 경우에는 실제로 데이터를 기록하지 않기 때문에 이러한 결과가 얻어졌다.
만일 실험에 사용한 데이터에 비하여 제로 페이지의 비중이 더 높은 데이터를 읽고 쓰는 경우에는 감소폭이 더 클 것으로 예상할 수 있다.
이상에서 도면을 참조하여 본 발명의 실시예를 개시하였다. 이상의 개시는 설명을 위한 것으로서 본 발명의 권리범위를 한정하는 것은 아니며, 본 발명의 권리범위는 이하의 특허청구범위에 문언적으로 기재된 범위와 그 균등범위에 의해 정해진다.
100: 패턴 탐지 장치
110: 압축부
120: 길이 비교부
130: 데이터 비교부
140: 플래그 연산부
1000: 반도체 장치
200: 제어 장치
210: 제어부
220: 주소 매핑 테이블
230: 압축 해제부
240: 쓰기 버퍼
241: 제 1 쓰기 버퍼
242: 제 2 쓰기 버퍼
250: 읽기 버퍼
300: 메모리 셀 어레이
310: 물리 페이지

Claims (20)

  1. 압축된 입력 데이터와 압축된 패턴 데이터의 길이가 동일한지 비교하는 길이 비교부; 및
    상기 압축된 입력 데이터와 상기 압축된 패턴 데이터가 동일한지 비교하는 데이터 비교부
    를 포함하는 데이터 패턴 탐지 장치.
  2. 청구항 1에 있어서, 상기 길이 비교부에서 길이가 동일한 것으로 판정한 경우 및 상기 데이터 비교부에서 데이터가 동일한 것으로 판정한 경우 활성화된 탐지 플래그를 플래그 생성부를 더 포함하는 데이터 패턴 탐지 장치.
  3. 청구항 1에 있어서, 상기 데이터 비교부는 상기 길이 비교부에서 길이가 동일한 것으로 판정된 경우에 동작하는 데이터 패턴 탐지 장치.
  4. 청구항 1에 있어서, 입력된 데이터를 압축하여 상기 압축된 입력 데이터를 출력하는 압축부를 더 포함하는 데이터 패턴 탐지 장치.
  5. 청구항 1에 있어서, 상기 압축된 패턴 데이터를 저장하는 저장부를 더 포함하는 데이터 패턴 탐지 장치.
  6. 메모리 셀 어레이 및
    호스트로부터 요청된 데이터의 입출력을 위하여 상기 메모리 셀 어레이를 제어하는 제어장치를 포함하되, 상기 제어장치는
    호스트로부터 요청된 데이터가 소정의 패턴을 가지는지 판단하는 패턴 판별 장치;
    호스트로부터 요청된 논리 주소와 상기 메모리 셀 어레이의 주소 사이의 대응 관계를 저장하는 주소 매핑 테이블; 및
    상기 요청된 데이터가 상기 소정의 패턴을 가지는 경우 상기 호스트로부터 요청된 주소에 대응하는 물리 주소로서 상기 소정의 패턴에 대응하는 주소를 지정하는 제어부
    를 포함하는 반도체 장치.
  7. 청구항 6에 있어서, 상기 패턴 판별 장치는
    쓰기 요청된 데이터를 압축한 제 1 데이터의 길이와 상기 소정 패턴의 데이터를 압축한 제 2 데이터의 길이를 비교하는 길이 비교부; 및
    상기 제 1 데이터와 상기 제 2 데이터를 비교하는 데이터 비교부
    를 포함하는 반도체 장치.
  8. 청구항 7에 있어서, 상기 패턴 판별 장치는 상기 길이 비교부에서 길이가 동일한 것으로 판정한 경우 및 상기 데이터 비교부에서 데이터가 동일한 것으로 판정한 경우 활성화된 탐지 플래그를 플래그 생성부를 더 포함하는 반도체 장치.
  9. 청구항 7에 있어서, 상기 데이터 비교부는 상기 길이 비교부에서 길이가 동일한 것으로 판정된 경우에 동작하는 반도체 장치.
  10. 청구항 7에 있어서, 상기 쓰기 요청된 데이터를 압축하여 상기 제 1 데이터를 출력하는 압축부를 더 포함하는 반도체 장치.
  11. 청구항 7에 있어서, 상기 제 2 데이터를 저장하는 저장부를 더 포함하는 반도체 장치.
  12. 청구항 7에 있어서, 상기 제어부는 상기 패턴 판별 장치에서 상기 쓰기 요청된 데이터가 상기 소정의 패턴을 갖지 않는 것으로 판단하는 경우 상기 제 1 데이터를 상기 메모리 셀 어레이에 저장하는 반도체 장치.
  13. 청구항 12에 있어서, 상기 제어장치는 상기 제 1 데이터를 임시 저장하는 쓰기 버퍼를 더 포함하는 반도체 장치.
  14. 청구항 13에 있어서, 상기 제어부는 상기 쓰기 버퍼에 여유 공간이 없는 경우 상기 쓰기 버퍼의 데이터를 상기 메모리 셀 어레이에 저장하고 상기 제 1 데이터를 상기 쓰기 버퍼에 저장하는 반도체 장치.
  15. 청구항 12에 있어서, 상기 제어장치는 상기 메모리 셀 어레이에서 읽은 데이터의 압축을 해제하는 압축 해제부를 더 포함하는 반도체 장치.
  16. 청구항 15에 있어서, 상기 제어장치는 상기 메모리 셀 어레이에서 읽은 데이터를 임시 저장하는 읽기 버퍼를 더 포함하는 반도체 장치.
  17. 쓰기 요청된 데이터를 압축하는 제 1 단계;
    상기 쓰기 요청된 데이터가 소정 패턴을 가지는지 판단하는 제 2 단계; 및
    상기 쓰기 요청된 데이터가 상기 소정 패턴을 가지는 경우 쓰기 요청된 논리 주소를 제 1 물리 주소에 대응시키는 제 3 단계;
    를 포함하되, 상기 제 2 단계는
    상기 쓰기 요청된 데이터를 압축한 제 1 데이터의 길이와 상기 소정 패턴의 데이터를 압축한 제 2 데이터의 길이를 비교하는 제 2-1 단계; 및
    상기 제 1 데이터와 상기 제 2 데이터를 비교하는 제 2-2 단계
    를 포함하는 반도체 장치의 동작 방법.
  18. 청구항 17에 있어서, 상기 제 2-2 단계는 상기 제 1 데이터의 길이와 상기 제 2 데이터의 길이가 동일한 경우에 수행되는 반도체 장치의 동작 방법.
  19. 청구항 17에 있어서, 쓰기 요청된 데이터가 상기 소정 패턴을 가지지 않는 경우 상기 제 1 데이터를 메모리 셀 어레이에 저장하는 단계를 더 포함하는 반도체 장치의 동작 방법.
  20. 청구항 19에 있어서, 읽기 요청된 논리 주소에 대응하는 물리 주소가 상기 제 1 물리 주소인 경우 상기 소정 패턴의 데이터를 생성하여 출력하는 단계 및 상기 읽기 요청된 논리 주소에 대응하는 물리 주소가 상기 제 1 물리 주소가 아닌 경우 상기 메모리 셀 어레이에서 읽은 데이터에 따라 출력 데이터를 생성하는 단계를 더 포함하는 반도체 장치의 동작 방법.
KR1020140120794A 2014-09-12 2014-09-12 데이터 패턴 탐지 장치, 이를 포함하는 반도체 장치 및 그 동작 방법 KR20160031169A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140120794A KR20160031169A (ko) 2014-09-12 2014-09-12 데이터 패턴 탐지 장치, 이를 포함하는 반도체 장치 및 그 동작 방법
US14/549,190 US10387579B2 (en) 2014-09-12 2014-11-20 Data pattern detecting device, semiconductor device including the same, and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140120794A KR20160031169A (ko) 2014-09-12 2014-09-12 데이터 패턴 탐지 장치, 이를 포함하는 반도체 장치 및 그 동작 방법

Publications (1)

Publication Number Publication Date
KR20160031169A true KR20160031169A (ko) 2016-03-22

Family

ID=55454933

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140120794A KR20160031169A (ko) 2014-09-12 2014-09-12 데이터 패턴 탐지 장치, 이를 포함하는 반도체 장치 및 그 동작 방법

Country Status (2)

Country Link
US (1) US10387579B2 (ko)
KR (1) KR20160031169A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190114190A (ko) * 2018-03-29 2019-10-10 삼성전자주식회사 데이터를 처리하기 위한 방법 및 이를 지원하는 전자 장치
KR20200027641A (ko) * 2018-09-05 2020-03-13 에스케이하이닉스 주식회사 컨트롤러 및 그것의 동작 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10136002B2 (en) * 2016-11-30 2018-11-20 Kyocera Document Solutions Inc. Cloud-based document quality assurance
US11860834B1 (en) * 2017-11-01 2024-01-02 EMC IP Holding Company LLC Reporting of space savings due to pattern matching in storage systems
CN108228738B (zh) * 2017-12-13 2021-12-17 河南辉煌科技股份有限公司 监测系统实时数据压缩存储方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5283667A (en) * 1989-12-18 1994-02-01 Ricoh Company, Ltd. Electronic filing apparatus provided with a multiple processing function when image data is displayed
US5745245A (en) * 1995-01-06 1998-04-28 Mita Industrial Co., Ltd. Communication apparatus
JP2006201969A (ja) * 2005-01-19 2006-08-03 Fujitsu Ltd エラー情報圧縮装置、エラー情報圧縮方法およびエラー情報圧縮プログラム
US8291194B2 (en) 2009-11-16 2012-10-16 Mediatek Inc. Methods of utilizing address mapping table to manage data access of storage medium without physically accessing storage medium and related storage controllers thereof
KR20120084180A (ko) * 2011-01-19 2012-07-27 삼성전자주식회사 데이터 압축 장치, 이의 동작 방법, 및 이를 포함하는 데이터 처리 장치
KR102017808B1 (ko) * 2013-12-31 2019-09-03 에스케이하이닉스 주식회사 데이터 처리 장치 및 데이터 처리 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190114190A (ko) * 2018-03-29 2019-10-10 삼성전자주식회사 데이터를 처리하기 위한 방법 및 이를 지원하는 전자 장치
KR20200027641A (ko) * 2018-09-05 2020-03-13 에스케이하이닉스 주식회사 컨트롤러 및 그것의 동작 방법
CN110880340A (zh) * 2018-09-05 2020-03-13 爱思开海力士有限公司 控制器及其操作方法
CN110880340B (zh) * 2018-09-05 2024-01-02 爱思开海力士有限公司 控制器及其操作方法

Also Published As

Publication number Publication date
US20160078051A1 (en) 2016-03-17
US10387579B2 (en) 2019-08-20

Similar Documents

Publication Publication Date Title
US9229876B2 (en) Method and system for dynamic compression of address tables in a memory
US9928167B2 (en) Information processing system and nonvolatile storage unit
KR101818578B1 (ko) 비휘발성 메모리를 갖는 시스템을 위한 동적 및 정적 데이터의 처리
US10747666B2 (en) Memory system
TWI597605B (zh) 用於資料儲存裝置的損耗平均方法
KR102155191B1 (ko) 비휘발성 메모리에 대한 기록들의 관리 및 그 기록들의 영역 선택
US10360144B2 (en) Storage apparatus and non-volatile memory device including a controller to selectively compress data based on an update frequency level
KR20160031169A (ko) 데이터 패턴 탐지 장치, 이를 포함하는 반도체 장치 및 그 동작 방법
US10203899B2 (en) Method for writing data into flash memory apparatus, flash memory apparatus, and storage system
US10310764B2 (en) Semiconductor memory device and storage apparatus comprising semiconductor memory device
TW201617840A (zh) 資料儲存設備及其操作方法
KR101649357B1 (ko) 데이터 저장 장치, 그것의 동작 방법, 그리고 그것을 포함한 스토리지 서버
TWI498735B (zh) 由主機至儲存裝置之刪除資料的暗示
EP3346387B1 (en) Storage system and system garbage collection method
KR101472797B1 (ko) 데이터를 읽거나 쓰기 위한 방법 및 장치
TWI601059B (zh) 資料儲存裝置與資料儲存方法
KR102113212B1 (ko) 플래시 메모리 시스템 및 그 제어 방법
KR101626218B1 (ko) 블록 기반의 페이지 매핑 방법
KR20220138269A (ko) 데이터의 핫/콜드 여부를 동적으로 판단하는 데이터 저장장치 및 이의 동작방법
CN112068782A (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元
TWI673646B (zh) 資料儲存裝置與資料儲存方法
US20190087097A1 (en) Memory system

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