KR20120118762A - 불휘발성 메모리 장치, 불휘발성 메모리 시스템 및 그것의 랜덤 데이터 읽기 방법 - Google Patents

불휘발성 메모리 장치, 불휘발성 메모리 시스템 및 그것의 랜덤 데이터 읽기 방법 Download PDF

Info

Publication number
KR20120118762A
KR20120118762A KR1020110036350A KR20110036350A KR20120118762A KR 20120118762 A KR20120118762 A KR 20120118762A KR 1020110036350 A KR1020110036350 A KR 1020110036350A KR 20110036350 A KR20110036350 A KR 20110036350A KR 20120118762 A KR20120118762 A KR 20120118762A
Authority
KR
South Korea
Prior art keywords
seed
data
random
randomization
read
Prior art date
Application number
KR1020110036350A
Other languages
English (en)
Other versions
KR101818671B1 (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 KR1020110036350A priority Critical patent/KR101818671B1/ko
Priority to US13/450,541 priority patent/US8856428B2/en
Publication of KR20120118762A publication Critical patent/KR20120118762A/ko
Priority to US14/472,072 priority patent/US9400750B2/en
Application granted granted Critical
Publication of KR101818671B1 publication Critical patent/KR101818671B1/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
    • G11C16/26Sensing or reading circuits; Data output circuits
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • 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/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words

Abstract

본 발명의 일 특징에 따른 불휘발성 메모리 장치의 랜덤 데이터의 읽기 방법은, 선택된 페이지에 대응하는 이니셜 시드와, 상기 선택된 페이지 내에서 읽기 요청되는 랜덤 데이터의 상대적인 위치 정보를 수신하는 단계, 유한장 곱셈 연산을 통해 상기 이니셜 시드와 상기 위치 정보를 처리하여 상기 랜덤 데이터를 디-랜덤화하기 위한 시드를 생성하는 단계, 그리고 상기 시드로부터 생성되는 랜덤 시퀀스를 상기 랜덤 데이터에 적용하여 디-랜덤화하는 단계를 포함한다.

Description

불휘발성 메모리 장치, 불휘발성 메모리 시스템 및 그것의 랜덤 데이터 읽기 방법{NONVOLATILE MEMORY DEVICE AND NONVOLATILE MEMORY SYSTEM AND RANDOM DATA READ METHOD THEREOF}
본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 구체적으로는 불휘발성 메모리 장치에 관한 것이다.
플래시 메모리 장치는 복수의 메모리 영역들이 한 번의 프로그램 동작으로 소거 또는 프로그램되는 일종의 EEPROM이다. 일반적인 EEPROM은 단지 하나의 메모리 영역이 한 번에 소거 또는 프로그램 가능하게 하며, 이는 플래시 메모리 장치를 사용하는 시스템들이 동시에 다른 메모리 영역들에 대해 읽고 쓸 때보다 빠르고 효과적인 속도로 플래시 메모리 장치가 동작할 수 있음을 의미한다. 플래시 메모리 및 EEPROM의 모든 형태는 데이터를 저장하는 데 사용되는 전하 저장 수단의 열화 또는 전하 저장 수단을 둘러싸고 있는 절연막의 마멸로 인해서 특정 수의 소거 동작들 후에 마멸된다.
플래시 메모리 장치는 실리콘 칩에 저장된 정보를 유지하는 데 전원을 필요로 하지 않는 방법으로 실리콘 칩 상에 정보를 저장한다. 이는 만약 칩에 공급되는 전원이 차단되면 전원의 소모 없이 정보가 유지됨을 의미한다. 추가로, 플래시 메모리 장치는 물리적인 충격 저항성 및 빠른 읽기 접근 시간을 제공한다. 이러한 특징들 때문에, 플래시 메모리 장치는 배터리에 의해서 전원을 공급받는 장치들의 저장 장치로서 일반적으로 사용되고 있다.
본 발명의 목적은 신뢰성을 향상시킬 수 있는 불휘발성 메모리 장치 및 그것을 포함한 메모리 시스템을 제공하는 것이다.
본 발명의 일 특징에 따른 불휘발성 메모리 장치의 랜덤 데이터의 읽기 방법은, 선택된 페이지에 대응하는 이니셜 시드와, 상기 선택된 페이지 내에서 읽기 요청되는 랜덤 데이터의 상대적인 위치 정보를 수신하는 단계, 유한장 곱셈 연산을 통해 상기 이니셜 시드와 상기 위치 정보를 처리하여 상기 랜덤 데이터를 디-랜덤화하기 위한 시드를 생성하는 단계, 그리고 상기 시드로부터 생성되는 랜덤 시퀀스를 상기 랜덤 데이터에 적용하여 디-랜덤화하는 단계를 포함한다.
본 발명의 다른 특징에 따른 불휘발성 메모리 장치는, 행들과 열들로 배열된 메모리 셀들의 어레이, 그리고 상기 어레이에 저장될 데이터를 랜덤화하도록 구성된 랜덤화 및 디-랜덤화 회로를 포함하며, 상기 랜덤화 및 디-랜덤화 회로는 랜덤 읽기 동작시 랜덤 시퀀스의 생성 동작 없이, 읽기 요청되는 랜덤 데이터가 포함되는 페이지의 이니셜 시드와, 상기 랜덤 데이터의 위치 정보를 참조하여 상기 랜덤 데이터를 디-랜덤화하기 위한 시드를 생성한다.
본 발명의 예시적인 실시 예들에 의하면, 랜덤한 읽기 위치에서부터 랜덤 데이터에 대한 액세스가 요청되더라도, 랜덤한 읽기 위치에 대응하는 랜덤 시퀀스를 신속히 제공할 수 있다. 따라서, 불휘발성 메모리 장치의 읽기 성능을 높일 수 있다.
도 1은 본 발명의 예시적인 실시 예에 따른 플래시 메모리 장치를 개략적으로 보여주는 블록도이다.
도 2는 도 1의 랜덤화 및 디-랜덤화 회로를 간략히 보여주는 블록도이다.
도 3은 본 발명의 랜덤 읽기 위치 정보(ij)와 그에 대응하는 랜덤 시드값들을 보여주는 도면이다.
도 3은 본 발명의 일 실시예에 따른 도 1에 도시된 랜덤화 및 디-랜덤화 회로를 개략적으로 보여주는 블록도이다.
도 4는 본 발명의 일 실시 예에 따른 랜덤화 및 디-랜덤화 회로를 간략히 보여주는 블록도이다.
도 5a 및 도 5b는 도 4의 시퀀스 발생기 및 시퀀스 발생기의 동작 예를 보여주는 도면들이다.
도 6은 랜덤 읽기 위치 정보를 유한장 요소로 변환시키기 위한 방법을 간략히 보여주는 표이다.
도 7은 도 4의 시드 오프셋 계산기를 예시적으로 보여주는 블록도이다.
도 8a 및 도 8b는 도 7의 회귀 자승 유닛의 구조를 보여주는 블록도이다.
도 9는 본 발명의 일 실시 예에 따른 디-랜덤화 연산의 방법을 보여주는 순서도이다.
도 10은 본 발명의 다른 실시 예에 따른 랜덤화 및 디-랜덤화 회로를 간략히 보여주는 블록도이다.
도 11은 도 10의 시드 오프셋 계산기의 예를 간략히 보여주는 블록도이다.
도 12a 및 도 12b는 도 10의 시퀀스 발생기 및 그것에 의해서 발생된 랜덤 시퀀스를 예시적으로 보여주는 도면들이다.
도 13은 본 발명의 다른 실시 예에 따른 디-랜덤화 연산의 방법을 보여주는 순서도이다.
도 14는 바이트 단위의 랜덤 읽기 동작시에 본 발명의 예시적인 실시 예를 보여주는 도면이다.
도 15는 바이트 단위의 랜덤 읽기 동작시의 데이터 위치 구분을 보여주는 도면이다.
도 16은 도 15에서의 구분에 대한 랜덤 읽기의 위치 정보(t)에 대한 유한장 필드에서의 테이블을 보여주는 도면이다.
도 17은 도 16의 유한장 변환값(αt)과 시드 오프셋을 계산하는 시드 오프셋 계산기의 실시 예를 보여주는 도면이다.
도 18은 본 발명의 예시적인 실시 예에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 19는 본 발명의 다른 예시적인 실시 예에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 20은 본 발명의 예시적인 실시 예에 따른 SSD를 개략적으로 보여주는 블록도이다.
도 21은 도 20에 도시된 SSD를 이용한 스토리지를 개략적으로 보여주는 블록도이다.
도 22은 도 20에 도시된 SSD를 이용한 스토리지 서버를 개략적으로 보여주는 블록도이다.
도 23 내지 도 25는 본 발명의 예시적인 실시 예들에 따른 시스템들을 개략적으로 보여주는 도면들이다.
도 26 내지 도 30은 본 발명의 예시적인 실시 예들에 따른 불 휘발성 메모리 장치가 적용되는 다른 시스템들을 개략적으로 보여주는 도면들이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
도면들에 있어서, 본 발명의 실시 예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 또한, 명세서 전체에 걸쳐서 동일한 참조번호로 표시된 부분들은 동일한 구성요소를 나타낸다.
본 명세서에서 ‘및/또는’이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한, ‘연결되는/결합되는’이란 표현은 다른 구성요소와 직접적으로 연결되거나 다른 구성요소를 통해 간접적으로 연결되는 것을 포함하는 의미로 사용된다. 본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 ‘포함한다’ 또는 ‘포함하는’으로 언급된 구성요소, 단계, 동작 및 소자는 하나 이상의 다른 구성요소, 단계, 동작, 소자 및 장치의 존재 또는 추가를 의미한다. 이하, 예시적인 실시 예들이 참조 도면들에 의거하여 상세히 설명될 것이다.
도 1은 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치를 개략적으로 보여주는 블록도이다. 도 1을 참조하면, 플래시 메모리 장치는, 예를 들면, 낸드 플래시 메모리 장치이다. 하지만, 본 발명이 플래시 메모리 장치에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 본 발명은 상변환 메모리(Phase change Random Access Memory: PRAM), 자기저항 메모리(Magnetroresistive Random Access Memory: MRAM), 강유전체 메모리(Ferroelectric Random Access Memory: FRAM), 저항 변화 메모리(Resistance Random Access Memory: RRAM), 스핀주입 자화반전 메모리(Spin transfer Torque Random Access Memory: STT-RAM), 등과 같은 불 휘발성 메모리 장치들에도 적용될 것이다.
플래시 메모리 장치는 행들(워드 라인들: WL)과 열들(비트 라인들: BL)로 배열된 메모리 셀들을 갖는 메모리 셀 어레이(100)를 포함한다. 각 메모리 셀은 1-비트 데이터 또는 M-비트(멀티-비트) 데이터(M은 2 또는 그 보다 큰 정수)를 저장한다. 각 메모리 셀이 1-비트 데이터를 저장하는 경우, 메모리 셀 어레이(100)의 각 행에 속한 메모리 셀들은 메모리 공간(memory space)을 구성할 것이다.
각 메모리 셀이 M-비트 데이터를 저장하는 경우, 메모리 셀 어레이(100)의 각 행에 속한 메모리 셀들은 복수의 페이지들에 각각 대응하는 메모리 공간들을 구성할 것이다. 각 메모리 셀은 플로팅 게이트 또는 전하 트랩층과 같은 전하 저장층을 갖는 메모리 셀 또는 가변 저항 소자를 갖는 메모리 셀로 구현될 수 있다. 메모리 셀 어레이(100)는 단층 어레이 구조(single-layer array structure)(또는, 2차원 어레이 구조라고 불림) 또는 다층 어레이 구조(multi-layer array structure)(또는, 수직형 또는 스택형 3차원 어레이 구조라고 불림)를 갖도록 구현될 것이다.
행 선택 회로(200)는 제어 로직(300)에 의해서 제어되며, 메모리 셀 어레이(100)의 행들에 대한 선택 및 구동 동작들을 수행하도록 구성된다. 제어 로직(300)은 플래시 메모리 장치의 동작을 전반적으로 제어하도록 구성된다.
페이지 버퍼 회로(400)는 제어 로직(300)에 의해서 제어되며, 동작 모드에 따라 감지 증폭기로서 또는 쓰기 드라이버로서 동작한다. 예를 들면, 읽기 동작 동안, 페이지 버퍼 회로(400)는 선택된 행의 메모리 셀들로부터 데이터를 감지하는 감지 증폭기로서 동작한다. 프로그램 동작 동안, 페이지 버퍼 회로(400)는 프로그램 데이터에 따라 선택된 행의 메모리 셀들을 구동하는 쓰기 드라이버로서 동작한다. 페이지 버퍼 회로(400)는 비트 라인들에 또는 비트 라인 쌍들에 각각 대응하는 페이지 버퍼들을 포함한다. 메모리 셀들 각각이 멀티-비트 데이터를 저장하는 경우, 페이지 버퍼 회로(400)의 각 페이지 버퍼는 2개 또는 그 보다 많은 래치들을 갖도록 구성될 것이다.
열 선택 회로(500)는 제어 로직(300)에 의해서 제어되며, 읽기/프로그램 동작시 열들(또는 페이지 버퍼들)을 정해진 단위로 순차적으로 선택한다.
랜덤화 및 디-랜덤화 회로(600)는 제어 로직(300)의 제어에 따라 입출력 인터페이스(700)를 통해 전달되는 데이터(즉, 프로그램될 데이터 또는 원본 데이터)를 랜덤화시키도록 구성된다. 랜덤화 및 디-랜덤화 회로(600)는 제어 로직(300)의 제어에 따라 열 선택 회로(500)를 통해 전달되는 페이지 버퍼 회로(400)의 데이터(즉, 랜덤화된 데이터)를 디-랜덤화시키도록 구성된다. 본 발명의 실시 예에 따른 랜덤화 및 디-랜덤화 회로(600)는 풀-페이지 데이터보다 양적으로 적은 랜덤 읽기 데이터(예를 들면, 스페어 영역의 데이터, 섹터 데이터, 섹터 데이터보다 크고 페이지 데이터보다 작은 데이터, 섹터 데이터보다 작은 데이터, 등)에 대한 랜덤화 및 디-랜덤화 동작들을 수행하도록 구성될 것이다.
랜덤화 및 디-랜덤화 회로(600)는 랜덤 읽기 동작시 디-랜덤화 연산을 수행하기 위한 랜덤 읽기 데이터의 시드를 시퀀스 발생기(Sequence Generator)의 구동없이 생성할 수 있다. 따라서, 하나의 페이지보다 작은 데이터를 랜덤 읽기 동작에 의해서 처리할 때, 고속으로 디-랜덤화 연산을 수행할 수 있다. 이러한 동작은 후술하는 도면들을 통해서 좀더 상세히 설명될 것이다.
메모리 셀은 전하 저장 수단에 저장되는 전하들의 양에 따라 2N개의 문턱 전압 산포들(N은 메모리 셀에 저장된 데이터 비트들의 수를 나타냄) 중 어느 하나를 갖는다. 메모리 셀의 문턱 전압(또는, 문턱 전압 산포)은 인접한 메모리 셀들 간에 생기는 커플링 (이는 워드 라인 커플링이라 불림)으로 인해 변화될 것이다. 본 발명의 데이터 랜덤화에 의하면, 워드 라인 커플링으로 인해 생기는 메모리 셀들의 문턱 전압들의 변화를 줄이는 것이 가능하다. 다시 말해서, 메모리 셀들의 상태들이 균일하게 분포되기 때문에, 메모리 셀들 간에 생기는 워드 라인 커플링의 정도가 데이터 랜덤화 이전과 비교하여 볼 때 상대적으로 완화될 것이다. 즉, 메모리 셀들의 문턱 전압들의 변화가 억제될 것이다. 이는 읽기 마진의 향상 즉, 신뢰성의 향상을 의미한다.
몇몇 실시 예들에 있어서, 랜덤화 및 디-랜덤화 동작은 선택적으로 행해질 수 있다. 예를 들면, 특정 데이터에 대한 액세스 또는 특정 영역에 대한 액세스가 요청될 때, 랜덤화 및 디-랜덤화 회로(600)는 랜덤화 및 디-랜덤화 동작을 수행하지 않도록 구성될 수 있다. 랜덤화 및 디-랜덤화 회로(600)는 랜덤화 동작의 수행없이 입출력 인터페이스(700)를 통해 입력되는 데이터를 페이지 버퍼 회로(400)로 전달하도록 구성될 수 있다. 이후, 페이지 버퍼 회로(400)에 로드된 데이터에 대한 랜덤화는 제어 로직(300)의 제어하에 랜덤화 및 디-랜덤화 회로(600)를 통해 행해질 수 있다.
도 2는 도 1의 랜덤화 및 디-랜덤화 회로(600)를 간략히 보여주는 블록도이다. 도 2를 참조하면, 본 발명의 랜덤화 및 디-랜덤화 회로(600)는 시드 생성기(610)와 디-랜더마이저(620)를 포함한다. 본 발명의 랜덤화 및 디-랜덤화 회로(600)는 시드 생성기(610)와 디-랜더마이저(620)를 통해서 랜덤 읽기 데이터를 디-랜덤화하기 위한 시드(Seed)를 고속으로 제공할 수 있다. 여기서, 랜덤 읽기 동작 및 랜덤 읽기 데이터는 읽기 단위(예를 들면, 페이지)의 특정 시점부터의 읽기 동작을 말한다.
시드 생성기(610)는 이니셜 시드(s0)와 랜덤 읽기 위치 정보(ij)를 참조하여 랜덤 읽기 위치에 대응하는 시드(sj)를 제공한다. 일반적인 읽기 동작에서, 데이터는 읽기 단위, 즉 하나의 페이지로 제공된다. 그리고 하나의 페이지에는 하나의 이니셜 시드(s0)가 제공된다. 하나의 페이지 전체의 디-랜덤화 연산을 위해서는 시퀀스 발생기가 이니셜 시드(s0)를 통해서 생성하는 랜덤 시퀀스(RS)를 사용한다.
하지만, 랜덤 읽기 요청은 하나의 페이지뿐 아니라, 페이지를 세분하는 섹터 단위로도 발생할 수 있다. 따라서, 랜덤 읽기 요청되는 데이터의 시작점(섹터)은 하나의 페이지에서 중간 지점에 위치할 수도 있고, 후반부에 위치할 수도 있다. 이때의 디-랜덤화 연산을 위한 시드(sj)를 얻기 위해서는 이니셜 시드(s0)를 초기값으로 하여 시퀀스 발생기를 대응하는 클록 수만큼 구동시켜야 한다. 이러한 설정은 랜덤 읽기에 너무나 큰 지연이 뒤따르게 된다. 반면, 섹터들 각각에 대응하는 시드(sj)를 스페어 영역이나 메모리 영역에 저장하는 경우, 모든 페이지들에 대한 시드들을 저장하기 위해서는 상대적으로 큰 데이터 영역이 요구된다.
본 발명의 랜덤화 및 디-랜덤화 회로(600)에 따르면, 하나의 페이지에 대응하는 하나의 이니셜 시드(s0)만이 저장된다. 그리고, 랜덤 읽기 요청이 발생하면 대응하는 페이지에 할당된 이니셜 시드(s0)와 랜덤 읽기 요청되는 데이터의 시작점에 대응하는 위치 정보(ij)를 참조하여 시드(sj)를 계산할 수 있다. 예를 들면, 랜덤 읽기 요청되는 섹터가 포함되는 페이지의 이니셜 시드(s0)와 랜덤 읽기 요청되는 섹터의 위치 정보(ij)로부터 시퀀스 발생기의 구동없이 시드(sj)의 생성이 가능하다.
여기서, 위치 정보(ij)는 테이블(미도시됨)을 사용하여 신속히 제공할 수 있다. 본 발명의 시드 생성기(610)는 랜덤 읽기 요청되는 데이터(Dread)의 시드값(sj)이 출력될 때까지 시퀀스 발생기를 구동하지 않고도 고속으로 읽기 요청된 위치의 시드(sj)를 생성할 수 있다. 예를 들면, 시드 생성기(610)는 페이지에 할당된 이니셜 시드(s0)와 랜덤 읽기 위치 정보(ij)에 대한 갈로아 필드(Galois field) 연산을 통해서 시드값(sj)을 생성한다.
디-랜더마이저(620)는 시드 생성기(610)로부터 제공되는 시드(sj)를 이용하여 랜덤 읽기 데이터(Dread)를 디-랜덤화하기 위한 랜덤 시퀀스(RS)를 생성한다. 그리고 디-랜더마이저(620)는 랜덤 시퀀스(RS)와 랜덤 읽기 데이터(Dread)를 믹싱하여 디-랜덤화된 데이터(Dout)를 출력한다. 예를 들면, 랜덤 시퀀스(RS)와 랜덤 읽기 데이터(Dread)가 배타적 논리합(XOR) 연산에 의하여 논리적으로 믹싱되어 디-랜덤화된 데이터(Dout)로 출력될 수 있다.
이상에서 설명된 바에 따르면, 본 발명의 시드 생성기(610)는 페이지에 할당된 이니셜 시드(s0)와 랜덤 읽기 요청되는 섹터의 위치 정보(ij)만을 사용하여 고속으로 랜덤 읽기 요청된 데이터의 시드(sj)를 생성할 수 있다. 특히, 섹터 단위로 랜덤 읽기 요청되는 경우, 모든 섹터들의 위치 정보는 모든 페이지에 대해서 동일하게 적용 가능하다. 따라서, 각각의 섹터들에 대한 위치 정보의 크기는 상대적으로 작다. 따라서, 위치 정보 테이블을 사용하면 효율적은 시드의 생성이 가능하다.
도 3은 본 발명의 랜덤 읽기 위치 정보(ij)와 그에 대응하는 랜덤 시드들을 보여주는 도면이다. 도 3을 참조하면, 복수의 데이터 단위들(예를 들면, 섹터)로 구성될 수 있는 하나의 페이지가 도시되어 있다.
플래시 메모리 장치에는 복수의 메모리 공간들이 제공될 것이다. 설명의 편의상, 도 3에는 단지 하나의 메모리 공간이 도시되어 있다. 메모리 공간은, 예를 들면, 하나의 페이지에 대응할 것이다. 메모리 공간 즉, 페이지는 사용자에 의해서 정의된 크기를 갖는 섹터들로 구성된다. 섹터들의 크기는 다양하게 설정될 수 있다. 예를 들면, 하나의 섹터는 1 킬로 바이트(KByte)의 크기로 설정될 수 있다. 그리고 플래시 메모리 장치에 대한 랜덤 읽기 동작은 섹터 단위로 행해질 것이다. 랜덤 읽기 동작의 단위로 섹터를 예로 들었으나, 랜덤 읽기의 단위가 섹터에만 국한되지는 않는다.
데이터의 랜덤화/디-랜덤화 연산을 위해서 하나의 페이지에는 하나의 이니셜 시드(s0)가 할당된다. 랜덤 읽기 요청시, 데이터의 시작 위치(또는, 액세스 포인트)는 하나의 페이지의 시작 위치(i0)가 될 수도 있지만, 다른 위치(i1~i7)가 될 수도 있다. 만일, 랜덤 읽기 요청이 데이터(Data3)부터 시작되는 경우, 데이터(Data3)의 시드(s3)를 생성하기 위해서는 이니셜 시드(s0)를 사용하여 시퀀스 생성기를 순차적으로 구동시켜야 한다. 즉, 이니셜 시드(s0)를 시작으로 하여 3개 섹터들(Data0, Data1, Data2)의 사이즈에 대응하는 사이클 동안 시퀀스 생성기를 구동시켜야 한다.
하지만, 본 발명에 따르면, 시퀀스 생성기의 구동없이 이니셜 시드(s0)와 랜덤 읽기 위치 정보(i3)만을 사용하여 읽기 요청된 랜덤 데이터(Data3)의 시드값(s3)을 얻을 수 있다. 그리고 랜덤 읽기 위치 정보(ij)는 모든 페이지에서 동일하게 적용된다. 서로 다른 이니셜 시드(s0)를 사용하는 페이지라도, 페이지의 시작점(i0)으로부터의 상대적 위치를 나타내는 섹터들의 위치 정보(ij)는 동일하다. 따라서, 하나의 페이지에 8개 섹터가 포함되는 경우, 하나의 칩에서 7개의 위치 정보(i1~i7)만을 테이블로 구성하면, 특정 섹터에 대한 시드를 곧바로 구할 수 있다.
도 4는 본 발명의 일 실시 예에 따른 랜덤화 및 디-랜덤화 회로를 간략히 보여주는 블록도이다. 도 4를 참조하면, 본 발명의 랜덤화 및 디-랜덤화 회로(600a)는 피보나치 방식(Fibonacci Configuration)에 따라 구동되는 시퀀스 발생기(621a)를 기반으로 동작한다.
시드 생성기(610a)는 이니셜 시드(s0)와 랜덤 읽기 위치 정보(ij)를 참조하여 랜덤 읽기 위치에 대응하는 시드(sj)를 제공한다. 시드 생성기(610a)는 시드 변환기(611), 위치 테이블(613), 그리고 시드 오프셋 계산기(615a)를 포함한다.
시드 변환기(611)는 피보나치 방식(Fibonacci Configuration)으로 생성된 이니셜 시드(s0)를 유한장 요소(Finite field element)로 변환한다. 예를 들면, 시드 변환기(611)는 각 페이지들에 할당된 이니셜 시드(s0)를 갈로아 필드(Galois field)의 벡터 v(s0)로 변환시킬 수 있다. 이러한 변환의 예시는 후술하는 도 5b에서 상세히 설명될 것이다.
위치 테이블(613)은 랜덤 읽기 요청시 해당하는 섹터의 위치 정보(ij)를 저장한다. 예를 들면, 랜덤 읽기 요청시 섹터 단위로 제공되는 시작 위치는 위치 정보들(i0~i7) 중 어느 하나일 것이다. 그리고 이들 8개들의 위치는 모든 페이지들에 대해서 동일한 값을 가질 것이다. 섹터의 위치는 메모리 영역에서 절대적으로 제공되는 것이 아니라, 각각의 페이지에서 동일하게 적용되는 상대적이 값이기 때문이다. 따라서, 서로 다른 이니셜 시드(s0)를 사용하는 페이지라도, 동일한 위치의 섹터들의 랜덤 읽기 위치 정보(ij)는 동일하다. 8개 섹터가 하나의 페이지를 구성하는 경우, 하나의 메모리 칩에 구성되는 위치 테이블(613)에는 7개의 섹터의 위치 정보(i1~i7)만을 저장하더라도 본 발명의 이점은 제공될 수 있다.
더불어, 오프셋 계산을 위해서 유한장(예를 들면, 갈로아 필드 상에서) 연산이 수행되어야 한다. 따라서, 위치 정보(ij)는 유한장 요소인 벡터 v(ij)으로 저장되는 것이 바람직하다. 이러한 위치 정보의 유한장 표현으로의 변환은 후술하는 도 6에서 설명될 것이다.
시드 오프셋 계산기(615a)는 유한장 벡터 값으로 전달되는 이니셜 시드 v(s0)와 랜덤 읽기 위치 정보 v(ij)를 참조하여 랜덤 읽기 요청된 데이터(Dread)에 대응하는 랜덤 시드(sj)를 계산한다. 시드 오프셋 계산기(615a)의 연산은 유한장(예를 들면, 갈로아 필드) 연산에 따라 수행된다. 시드 오프셋 계산기(615a)는 주로 갈로아 필드 상에서 수행되는 유한장 곱셈(Finite Field Multiply) 연산을 통해서 읽기 요청된 섹터의 시드(sj)를 생성한다. 시드 오프셋 계산기(615a)의 구성은 후술하는 도 7에서 보다 상세하게 설명될 것이다.
시드 오프셋 계산기(615a)에 의한 랜덤 시드 s(ij)는 아래 수학식 1의 함수 표현으로 나타낼 수 있다.
Figure pat00001
단, Tr1 n(?)은 유한장(예를 들면, GF(2n)) 연산을 의미하고, c는 이니셜 시드(s0)의 유한장 요소, 그리고 α는 원시 원소(Primitive element)이다.
즉, 수학식 1에 따르면, 특정 랜덤 읽기 위치(ij)에서의 랜덤 시드 s(ij)는 이니셜 시드(s0)와 오프셋(ij)의 함수임을 알수 있다. 페이지별 하나의 이니셜 시드가 할당된 환경에서 랜덤 읽기 위치(ij)에서의 시드를 빠르게 생성하기 위해서는 이니셜 시드(s0)와 오프셋(ij)을 유한장 값(c, αij)으로 변환하여 처리하면 된다.
디-랜더마이저(620a)는 시드 생성기(610a)로부터 제공되는 시드값(sj)을 이용하여 랜덤 읽기 데이터(Dread)를 디-랜덤화하기 위한 랜덤 시퀀스(RS)를 생성한다. 그리고 랜덤 시퀀스(RS)와 랜덤 읽기 데이터(Dread)를 믹싱하여 디-랜덤화된 데이터(Dout)를 출력한다. 디-랜더마이저(620a)는 이를 위하여 시퀀스 발생기(621a)와 믹서(623)를 포함한다.
시퀀스 발생기(621a)는 입력되는 시드(sj)를 초기값으로 하는 랜덤 시퀀스를 생성한다. 시퀀스 발생기(621a)는 피보나치 방식(Fibonacci configuration)으로 동작하는 선형 궤환 시프트 레지스터(LSFR)로 구성될 수 있다. 시퀀스 발생기(621a)는 랜덤 읽기 요청된 데이터(Dread)의 랜덤화 연산 당시에 사용된 랜덤 시퀀스(RS)를 생성하게 될 것이다. 그러면, 믹서(623)는 랜덤 읽기 데이터와 랜덤 시퀀스(RS)를 조합하여 디-랜덤화된 데이터(Dout)를 출력한다. 여기서, 랜덤 시퀀스(RS)와 랜덤 읽기 데이터(Dread)는 배타적 논리합(XOR) 연산에 의하여 믹싱되어 디-랜덤화된 데이터(Dout)로 출력될 수 있다.
이상에서 설명된 바에 따르면, 본 발명의 시드 생성기(610a)는 모든 페이지들에 할당된 이니셜 시드(s0)와 랜덤 읽기 위치 정보(ij)만을 사용하여 랜덤 시퀀스를 생성하기 위한 시드(sj)를 생성할 수 있다. 다시 말하면, 시퀀스 발생기를 구동하지 않고 이니셜 시드(s0)와 랜덤 읽기 위치 정보(ij)의 조합을 통해서 랜덤 읽기 요청된 데이터의 시드(sj)를 계산할 수 있다.
더불어, 위치 테이블(613)은 섹터의 위치 정보(ij)를 유한장 벡터로 저장되어 있는 것으로 설명되었으나, 본 발명은 이에 국한되지 않는다. 위치 테이블(613)은 위치 정보(ij)를 입력받아 유한장 요소로 출력하는 연산 블록으로 제공될 수 있을 것이다. 이러한 연산 기능은 아래 수학식 2로 표현할 수 있다.
Figure pat00002
도 5a 및 도 5b는 도 4의 시퀀스 발생기(621a) 및 시퀀스 발생기의 동작예를 보여주는 도면들이다. 도 5a를 참조하면, 4개의 플립플롭으로 구성되며, 피보나치 방식의 랜덤 시퀀스를 생성하는 시퀀스 발생기(621a)가 도시되어 있다. 이러한 시퀀스 발생기(621a)를 구성하기 위한 생성 다항식 g(X)는 아래 수학식 3으로 나타낼 수 있다.
Figure pat00003
즉, 복수의 플립플롭으로 구성된 선형 피드백 시프트 레지스터(LFSR)로 시퀀스 발생기(621a)가 구성될 수 있다. 여기서, 플립플롭들(D0, D1, D2, D3)에 저장되는 각각의 이진 값들이 시드 값에 해당한다. 그리고 클록 사이클의 증가에 따라 출력되는 비트열이 바로 랜덤 시퀀스(RSout)가 될 것이다. 여기서, 믹서는 배타적 논리합(XOR)에 해당한다.
도 5b를 참조하면, 각 클록 사이클의 증가에 따른 시퀀스 발생기(621a)의 레지스터 값들의 변화를 보여주는 표이다. 시퀀스 발생기(621a)의 플립플롭들(D0, D1, D2, D3)의 초기값(T=0)이 [1 0 0 0]으로 가정한다. 그러면, 클록 사이클의 증가에 따라 15 클록 이후에는 레지스터들(D0, D1, D2, D3)의 값은 초기와 동일하게 설정된다. 그 이후(T=15)에는 처음의 사이클 증가 때와 동일한 방식으로 레지스터들(D0, D1, D2, D3)의 데이터 상태가 설정될 것이다. 이때, 레지스터(D3)의 출력 측으로 전달되는 비트열이 랜덤 시퀀스로서 제공될 것이다.
그러나, 이러한 랜덤 시퀀스는 피보나치 방식의 랜덤 시퀀스에 지나지 않는다. 만일, 유한장 방식으로 이들 시드를 처리할 필요가 생기게 되면, 대수적인 변환이 필요하다. 예를 들면, 우측에는 갈로아 필드에서의 변환된 시드의 값이 기술되어 있다. 시드(sj)나 위치 정보와 같은 이진 값들을 특정 벡터 공간에서 처리하기 위해서는 동일한 벡터 방식으로 변환시켜야 한다.
도 6은 랜덤 읽기 위치 정보를 유한장 요소로 변환시키기 위한 방법을 간략히 보여주는 표이다. 도 6을 참조하면, 하나의 페이지에 포함되는 각각의 섹터들의 위치는 유한장 요소들로 변환될 수 있다. 이러한 변환 방식은 앞서 설명된 도 5b에서 간략히 도시되었다. 그리고 이러한 대응 관계의 수학적 표현은 앞서 설명된 수학식 1에 대응한다. 결국, 피보나치 방식으로 랜덤 시퀀스가 구성되는 실시 예에서, 위치 테이블(613)은 섹터들의 위치 정보(i1~i7)에 대응하는 유한장 표현들(αi0=c, αi1, αi2,… ,αi7)만을 테이블로 제공할 수 있다. 또는, 상술한 유한장 표현들에 대해 일대일 변환될 수 있는 다양한 기능 블록들로 위치 테이블(613)이 구성될 수 있을 것이다.
도 7은 도 4의 시드 오프셋 계산기(615a)의 구성을 예시적으로 보여주는 블록도이다. 도 7을 참조하면, 시드 오프셋 계산기(615a)는 유한장 곱셈기들(60, 61~64) 및 회귀 자승 유닛들(65~69)을 포함한다.
유한장 곱셈기(60)는 이니셜 시드 벡터 v(sj)와 위치 벡터 v(ij)에 대한 갈로아 필드 GF(2n) 상에서의 곱셈 연산(Multiply)을 수행한다. 유한장 곱셈기(60)는 이니셜 시드 벡터 v(sj)와 위치 벡터 v(ij) 각각의 모든 원소들을 상호 곱한다. 그리고 GF(2n)의 원소를 GF(2n) 상의 다항식으로 표현한다. 원시 요소 α와 α2, α3,...,αn-1을 곱하는 회로를 배타적 논리합(XOR) 게이트로 구현한다. 이를 AND 게이트 배열에 연결함으로써 최종 결과를 GF(2n)상의 다항식으로 출력한다.
유한장 곱셈기들(61~64)은 유한장 곱셈기(60)의 출력에 각각 원시 요소들, 1, α, α2, α3,...,αn-1을 곱하여 회귀 자승 유닛들(65~69)로 제공한다. 여기서, 1을 곱하는 경우에는 유한장 곱셈기(60)의 출력을 그대로 회귀 자승 유닛(65)으로 전달하는 것과 같다. 그리고, 회귀 자승 유닛들(65~69)은 유한장 곱셈기들(60~64) 각각으로부터 출력되는 n 비트의 결과에 대한 회귀 자승 연산을 수행한다. 회귀 자승 연산의 결과에 따라 회귀 자승 유닛들(65~69)은 각각 1-비트의 랜덤 시퀀스(d0, d1, d2, …, dn -1)를 출력한다.
도 8a 및 도 8b는 도 7의 회귀 자승 유닛들을 예시적으로 보여주는 블록도들이다. 유한장 곱셈기들(60~64)로부터 출력되는 n-비트의 출력에 대해서 회귀 자승 유닛들(65~69)은 유한장에서의 제곱 연산을 수행한다. 그리고 n-비트 데이터에 대한 제곱 연산을 수행한 후에는 그 결과 값의 LSB만을 출력하게 될 것이다. 회귀 자승 유닛들(65~69)은 모두 동일한 기능의 동일한 구성으로 구현될 수 있다. 따라서, 설명의 편의를 위하여 회귀 자승 유닛(65)을 예시적으로 설명하기로 한다.
도 8a를 참조하면, 회귀 자승 유닛(65a)은 갈로아 필드 GF(2n)에서의 유한장 곱셈기(651a)를 포함한다. 회귀 자승 유닛(65a)은 입력과 출력을 제어하기 위한 스위치(SW1, SW3)를 포함한다. 그리고 회귀 자승 유닛(65a)은 피드백 동작을 제어하기 위한 스위치(SW2)를 포함한다. 그리고 회귀 자승 유닛(65a)은 지연기들(652a, 654a) 및 가산기(653a)를 포함한다. 입력되는 n-비트 데이터에 대한 유한장 제곱 연산을 위해서, 회귀 자승 유닛(65a)의 스위치 동작은 다음과 같다.
먼저, 최초 클록 사이클에서는 스위치(SW1)가 오픈(Open) 되고, 스위치들(SW2, SW3)은 차단된다. 따라서, n-비트의 데이터만이 회귀 자승 유닛(65)에 입력되고, 출력 및 피드백 경로는 차단된다.
이어지는 n-클록 사이클에서, 스위치(SW1) 및 스위치(SW3)가 차단되고, 스위치(SW2)만이 오픈(Open) 된다. 즉, 회귀 자승 유닛(65a)의 입출력은 차단되고, 피드백 경로만 활성화된다. 일단, 입력된 n-비트의 데이터는 유한장 곱셈기(651a)에 두 개의 경로로 분기되어 입력되며, 유한장 곱셈기(651a)에 의해서 갈로아 필드에서의 자승 연산이 이루어진다. 곱셈의 결과가 n-클록 사이클 동안 피드백되면서, 반복적인 갈로아 필드에서의 곱셈이 이루어진다.
이후, 마지막 1-클록 사이클에서, 스위치(SW1) 및 스위치(SW2)가 차단되고, 스위치(SW3)만이 오픈(Open) 된다. 즉, 회귀 자승 유닛(65a)의 입력 및 피드백 경로는 차단되고, 출력 경로만 활성화된다. 특히, 유한장 곱셈기(651a)에서 마지막 사이클에서 출력되는 n-비트의 데이터 중에서 LSB만을 추출하는 동작이 이루어진다. LSB에 대응하는 1비트만이 시드 오프셋 중에 하나의 비트(d0)로써 출력될 것이다.
도 8b를 참조하면, 회귀 자승 유닛(65b)은 갈로아 필드 GF(2n)에서의 제곱 유닛(651b)을 포함한다. 회귀 자승 유닛(65b)은 입력과 출력을 제어하기 위한 스위치(SW1, SW3)를 포함한다. 그리고 회귀 자승 유닛(65b)은 피드백 동작을 제어하기 위한 스위치(SW2)를 포함한다. 그리고 회귀 자승 유닛(65b)은 지연기들(652b, 654b) 및 가산기(653b)를 포함한다. 입력되는 n-비트 데이터에 대한 유한장 제곱 연산을 위한 회귀 자승 유닛(65b)의 스위치 동작은 다음과 같다.
먼저, 최초 클록 사이클에서는 스위치(SW1)가 오픈(Open) 되고, 스위치들(SW2, SW3)은 차단된다. 따라서, n-비트의 데이터만이 회귀 자승 유닛(65b)에 입력되고, 출력 및 피드백 경로는 차단된다.
이어지는 n-클록 사이클에서, 스위치(SW1) 및 스위치(SW3)가 차단되고, 스위치(SW2)만이 오픈(Open) 된다. 즉, 회귀 자승 유닛(65b)의 입출력은 차단되고, 피드백 경로만 활성화된다. 일단, 입력된 n-비트의 데이터는 유한장 곱셈기(651a)의 입력 방식과는 달리 하나의 경로로 제곱 유닛(651b)에 입력될 것이다. 제곱 유닛(651b)에 의해서 갈로아 필드에서의 제곱 연산이 이루어진다. 제곱 결과가 n-클록 사이클 동안 피드백되면서, 반복적인 갈로아 필드에서의 제곱 연산이 이루어진다.
이후, 마지막 1-클록 사이클에서, 스위치(SW1) 및 스위치(SW2)가 차단되고, 스위치(SW3)만이 오픈(Open) 된다. 즉, 회귀 자승 유닛(65b)의 입력 및 피드백 경로는 차단되고, 출력 경로만 활성화된다. 특히, 제곱 유닛(651b)에서 마지막 사이클에서 출력되는 n-비트의 데이터 중에서 LSB만을 추출하는 동작이 이루어진다. LSB에 대응하는 1비트만이 시드 오프셋 중에 하나의 비트(d0)로써 출력될 것이다.
도 9는 본 발명의 일 실시 예에 따른 디-랜덤화 연산 방법을 보여주는 순서도이다. 도 9를 참조하면, 랜덤 읽기 요청에 대해서 본 발명의 랜덤화 및 디-랜덤화 회로(600a)는 이니셜 시드(s0)와 위치 정보(ij)를 참조하여 랜덤 읽기 데이터에 대한 시드(sj)를 생성할 수 있다. 그리고 생성된 시드(sj)를 참조하여 랜덤 읽기 데이터에 대한 디-랜덤화 연산을 수행하게 될 것이다.
S110 단계에서, 랜덤화 및 디-랜덤화 회로(600a)는 랜덤 읽기 요청에 대응하는 랜덤 읽기 위치 정보를 수신한다. 본 발명의 실시 예에 따른 랜덤화 및 디-랜덤화 회로(600a)는 랜덤 읽기 요청에 따라 제공되는 열 어드레스(Column address)를 참조하여 랜덤 읽기 위치 정보를 파악할 수 있다. 또는, 섹터 단위로 랜덤 읽기가 이루어지는 경우, 섹터 어드레스에 따라 페이지 내에서의 상대적인 랜덤 읽기 위치 정보를 알 수 있다. 하지만, 랜덤 읽기 위치 정보의 획득 경로는 상술한 예들에 국한되지 않을 것이다.
S120 단계에서, 랜덤화 및 디-랜덤화 회로(600a)는 랜덤 읽기 요청되는 데이터가 포함되는 페이지 어드레스를 참조하여 이니셜 시드(s0)를 획득할 수 있다. 이니셜 시드는 메모리 장치에 포함된 모든 페이지들 각각에 대해서 할당되어 있다. 이러한 이니셜 시드는 읽기 동작시 스페어 영역에서, 또는 제어 정보 영역에서 획득될 수 있다. 그러면, 시드 변환기(611)는 피보나치 방식(Fibonacci Configuration)으로 생성된 이니셜 시드(s0)를 유한장(Finite field) 벡터값으로 변환한다. 예를 들면, 시드 변환기(611)는 각 페이지들에 할당된 이니셜 시드(s0)를 갈로아 필드(Galois field)의 벡터 v(s0)로 변환시킬 수 있다.
S130 단계에서, 랜덤화 및 디-랜덤화 회로(600a)는 랜덤 읽기 데이터의 위치 정보(ij)를 제공받는다. 위치 정보(ij)는 모든 페이지들에 대해서 동일한 값을 가질 것이다. 예를 들면, 서로 다른 이니셜 시드(s0)를 사용하는 페이지라도 동일한 위치의 섹터들의 랜덤 읽기 위치 정보(ij)는 동일하다. 또한, 위치 정보(ij)는 유한장 연산을 위해서 유한장 벡터(예를 들면, 갈로아 필드 요소)로 제공되어야 한다. 위치 테이블(613)에는 모든 위치 정보(ij)가 유한장 벡터 v(ij) 값으로 존재할 수 있다. 또는, 제공되는 위치 정보(ij)를 변경하는 연산기를 통해서 위치 정보(ij)가 유한장 벡터 v(ij)로 제공될 수 있다.
S140 단계에서, 시퀀스 발생기(621a)는 입력되는 시드 v(sj)를 초기값으로 하는 랜덤 시퀀스(RS)를 생성한다. 시퀀스 발생기(621a)는 피보나치 방식(Fibonacci configuration)으로 동작하는 선형 궤환 시프트 레지스터(LSFR)로 구성될 수 있다.
S150 단계에서, 믹서(623)는 랜덤 읽기 데이터와 랜덤 시퀀스(RS)를 조합하여 디-랜덤화된 데이터(Dout)를 출력한다. 여기서, 랜덤 시퀀스(RS)와 랜덤 읽기 데이터(Dread)가 배타적 논리합(XOR) 연산에 의하여 논리적으로 믹싱되어 디-랜덤화된 데이터(Dout)로 출력될 수 있다.
여기서, S120 단계와 S130 단계는 도시된 순서에 국한되지 않는다. 예를 들면, S130 단계가 S120 단계보다 먼저 수행될 수도 있다. 또는, S130 단계와 S120 단계는 병렬적으로 수행될 수 있다.
도 10은 본 발명의 다른 실시 예에 따른 랜덤화 및 디-랜덤화 회로를 간략히 보여주는 블록도이다. 도 10을 참조하면, 본 발명의 랜덤화 및 디-랜덤화 회로(600b)는 갈로아 방식(Galois Configuration)에 따라 구동되는 시퀀스 발생기(621b)를 기반으로 동작한다.
시드 오프셋 계산기(610b)는 이니셜 시드(s0)와 랜덤 읽기 위치 정보(ij)를 참조하여 랜덤 읽기 위치에 대응하는 시드(sj)를 제공한다. 시드 오프셋 계산기(610b)는 위치 테이블(613)과 시드 오프셋 계산기(615b)를 포함한다. 여기서, 갈로아 방식(Galois Configuration)으로 생성된 이니셜 시드(s0)는 이미 유한장 벡터 상에 존재하는 벡터이다. 따라서, 이니셜 시드(s0)에 대한 유한장 연산을 위한 별도의 변경이 불필요하다. 이니셜 시드(s0)를 유한장 벡터로 변환하기 위한 별도의 변환 블록은 필요치 않다.
위치 테이블(613)은 랜덤 읽기 요청시 해당하는 섹터의 위치 정보(ij)를 저장한다. 예를 들면, 랜덤 읽기 요청시 제공되는 섹터의 위치는 모든 페이지들에 대해서 동일한 값을 가질 것이다. 하나의 페이지 내에서 섹터의 위치 정보는 모든 페이지에서 동일하게 적용되는 상대적이 값이기 때문이다. 따라서, 서로 다른 이니셜 시드(s0)를 사용하는 페이지라도, 동일한 위치의 섹터들의 랜덤 읽기 위치 정보(ij)는 동일하다. 따라서, 임의의 페이지 내에 포함되는 섹터들의 위치 정보만을 위치 테이블(613)에 저장하더라도 하나의 칩에 필요한 모든 페이지들의 섹터의 위치 정보(ij)는 제공될 수 있다. 더불어, 시드 오프셋 계산을 위해서 유한장(예를 들면, 갈로아 필드) 연산을 수행하는 경우, 위치 정보(ij)는 유한장 표현인 벡터 v(ij)으로 저장되는 것이 바람직하다.
시드 오프셋 계산기(615b)는 유한장 요소로 전달되는 이니셜 시드 v(s0)와 랜덤 읽기 위치 정보 v(ij)를 참조하여 랜덤 읽기 요청된 데이터(Dread)에 대응하는 랜덤 시드(sj)를 계산한다. 시드 오프셋 계산기(615b)의 연산은 유한장(예를 들면, 갈로아 필드) 연산에 따라 수행된다. 시드 오프셋 계산기(615b)는 주로 갈로아 필드 상에서 수행되는 유한장 곱셈(Finite Field Multiply: FFM) 연산을 통해서 읽기 요청된 섹터의 시드(sj)를 생성한다. 시드 오프셋 계산기(615b)의 구성은 후술하는 도 11에서 보다 상세하게 설명될 것이다.
디-랜더마이저(620b)는 시드 오프셋 계산기(610b)로부터 제공되는 시드값(sj)을 이용하여 랜덤 읽기 데이터(Dread)를 디-랜덤화하기 위한 랜덤 시퀀스(RS)를 생성한다. 그리고 랜덤 시퀀스(RS)와 랜덤 읽기 데이터(Dread)를 믹싱하여 디-랜덤화된 데이터(Dout)를 출력한다. 디-랜더마이저(620b)는 이를 위하여 시퀀스 발생기(621b)와 믹서(623)를 포함한다.
시퀀스 발생기(621b)는 입력되는 시드(sj)를 초기값으로 하는 랜덤 시퀀스를 생성한다. 시퀀스 발생기(621a)는 갈로아 방식(Fibonacci configuration)으로 동작하는 선형 궤환 시프트 레지스터(LSFR)로 구성될 수 있다. 시퀀스 발생기(621b)는 랜덤 읽기 요청된 데이터(Dread)의 랜덤화 연산 당시에 사용된 랜덤 시퀀스(RS)를 생성하게 될 것이다. 그러면, 믹서(623)는 랜덤 읽기 데이터와 랜덤 시퀀스(RS)를 조합하여 디-랜덤화된 데이터(Dout)를 출력한다. 여기서, 랜덤 시퀀스(RS)와 랜덤 읽기 데이터(Dread)가 배타적 논리합(XOR) 연산에 의하여 논리적으로 믹싱되어 디-랜덤화된 데이터(Dout)로 출력될 수 있다.
이상에서 설명된 바에 따르면, 본 발명의 시드 오프셋 계산기(610b)는 페이지에 할당된 이니셜 시드(s0)와 랜덤 읽기 위치 정보(ij)만을 사용하여 고속으로 랜덤 읽기 요청된 데이터의 시드(sj)를 생성할 수 있다. 특히, 다른 실시 예에 따르면, 시드 오프셋 계산기(610b)는 이니셜 시드(s0)에 대한 별도의 변환 연산 없이 유한장 곱셈 연산만으로 랜덤 시드 (sj)의 생성이 가능하다.
도 11은 앞서 설명된 도 10의 시드 오프셋 계산기의 예를 간략히 보여주는 블록도이다. 도 11을 참조하면, 시드 오프셋 계산기(615b)는 갈로아 필드 GF(2n)에서 구동되는 유한장 곱셈기(FFM)를 포함할 수 있다.
갈로아 방식(Galois Configuration)으로 생성된 이니셜 시드(s0)는 이미 유한장 벡터 상에 존재하는 벡터이므로, 유한장 연산을 위한 별도의 변경이 불필요하다. 그리고, 위치 테이블이나 변환기에 의해서 유한장 요소로 제공되는 위치 정보 v(ij)는 유한장 곱셈기(FFM)에 의해서 용이하게 처리될 수 있다. 유한장 곱셈기(615b)는 이니셜 시드 벡터 v(sj)와 위치 벡터 v(ij)에 대한 갈로아 필드 GF(2n) 상에서의 곱셈(Multiply)을 수행한다. 유한장 곱셈기(FFM)는 유한장 벡터로 변경된, 이니셜 시드 벡터 v(sj)와 위치 벡터 v(ij)의 임의의 두 원소를 곱한다. GF(2n)의 원소는 GF(2n) 상의 다항식으로 표시된다. 원시 요소 α와 α2, α3,...,αn-1을 곱하는 회로들은 배타적 논리합(XOR) 게이트로 구현될 수 있다. 유한장 곱셈기(FFM)의 출력이 바로 랜덤 읽기 요청된 섹터의 시드 값(sj)으로 출력될 것이다.
도 12a 및 도 12b는 도 10의 시퀀스 발생기(621b) 그것에 의해서 발생된 랜덤 시퀀스를 예시적으로 보여주는 도면들이다.
도 12a를 참조하면, 4개의 시프트 레지스터로 구성되는 갈로아 방식(Galois configuration)의 랜덤 시퀀스를 생성하는 시퀀스 발생기(621b)가 도시되어 있다. 이러한 시퀀스 발생기(621b)를 구성하기 위한 생성 다항식 g(X)는 앞서 설명된 수학식 2와 동일하게 표현될 것이다.
복수의 플립플롭으로 구성된 선형 피드백 시프트 레지스터(LFSR)로 시퀀스 발생기(621a)가 구성될 수 있다. 여기서, 레지스터들(D0, D1, D2, D3)에 저장되는 각각의 이진 값들이 시드 s(j)에 해당한다. 그리고 클록 사이클의 증가에 따라 출력되는 비트열이 바로 랜덤 시퀀스(RSout)가 될 것이다. 여기서, 믹서는 배타적 논리합(XOR)에 해당한다.
도 12b를 참조하면, 각 클록 사이클의 증가에 따른 시퀀스 발생기(621b)의 레지스터 값들의 변화를 보여주는 표이다. 시퀀스 발생기(621b)의 레지스터들(D0, D1, D2, D3)의 초기값(T=0)이 [1 0 0 0]으로 가정한다. 그러면, 클록 사이클의 증가에 따라 15 클록 이후에는 레지스터들(D0, D1, D2, D3)의 값은 초기와 동일하게 설정된다. 그 이후(T=15)에는 처음의 사이클 증가 때와 동일한 방식으로 레지스터들(D0, D1, D2, D3)의 데이터 상태가 설정될 것이다. 이때, 레지스터(D3)의 출력 측으로 전달되는 비트열이 랜덤 시퀀스로서 제공될 것이다.
도시된 갈로아 방식(Galois configuration)의 시퀀스 발생기(621b)에 의하면, 갈로아 필드 GF(24) 연산에서의 레지스터 값들과 동일함을 알 수 있다.이것은 이니셜 시드(s0) 자체가 이미 갈로아 필드에 포함되는 벡터임을 의미한다. 따라서, 별도의 변환 절차없이 시드 오프셋 계산기(615b)에 이니셜 시드(s0)를 전달할 수 있다.
도 13은 본 발명의 다른 실시 예에 따른 디-랜덤화 연산의 방법을 보여주는 순서도이다. 도 13을 참조하면, 랜덤 읽기 요청에 대해서 본 발명의 랜덤화 및 디-랜덤화 회로(600b)는 이니셜 시드(s0)와 위치 정보(ij)를 참조하여 고속으로 랜덤 읽기 데이터에 대한 시드(sj)를 생성할 수 있다. 그리고 생성된 시드(sj)에 근거하여 랜덤 읽기 데이터에 대한 디-랜덤화 연산이 수행될 것이다.
S210 단계에서, 랜덤화 및 디-랜덤화 회로(600b)는 랜덤 읽기 요청에 대응하는 랜덤 읽기 위치 정보를 수신한다. 본 발명의 실시 예에 따른 랜덤화 및 디-랜덤화 회로(600a)는 랜덤 읽기 요청에 따라 제공되는 열 어드레스(Column address)를 참조하여 랜덤 읽기 위치 정보를 파악할 수 있다. 또는, 섹터 단위로 랜덤 읽기가 이루어지는 경우, 섹터 어드레스에 따라 페이지 내에서의 상대적인 랜덤 읽기 위치 정보를 알 수 있다. 하지만, 랜덤 읽기 위치 정보의 획득 경로는 상술한 예들에 국한되지 않을 것이다.
S220 단계에서, 랜덤화 및 디-랜덤화 회로(600b)는 랜덤 읽기 데이터의 위치 정보(ij)를 제공받는다. 위치 정보(ij)는 모든 페이지들에 대해서 동일한 값을 가질 것이다. 예를 들면, 서로 다른 이니셜 시드(s0)를 사용하는 페이지라도 동일한 위치의 섹터들의 랜덤 읽기 위치 정보(ij)는 동일하다. 또한, 위치 정보(ij)는 유한장 연산을 위해서 유한장 벡터로 제공되어야 한다. 위치 테이블(613)에는 모든 위치 정보(ij)가 유한장 벡터 v(ij) 값으로 존재할 수 있다. 또는, 제공되는 위치 정보(ij)를 변경하는 연산기를 통해서 위치 정보(ij)가 유한장 벡터 v(ij)로 제공될 수 있다.
S230 단계에서, 시드 오프셋 계산기(615b)는 유한장 요소로 전달되는 이니셜 시드 v(s0)와 랜덤 읽기 위치 정보 v(ij)를 참조하여 랜덤 읽기 요청된 데이터(Dread)에 대응하는 랜덤 시드(sj)를 계산한다. 시드 오프셋 계산기(615b)는 주로 갈로아 필드 상에서 수행되는 유한장 곱셈(Finite Field Multiply) 연산을 통해서 읽기 요청된 섹터의 시드(sj)를 생성한다.
S240 단계에서, 디-랜더마이저(620b)에 의한 랜덤 시퀀스의 생성과 디-랜덤화 연산이 이루어진다. 믹서(623)는 랜덤 읽기 데이터와 랜덤 시퀀스(RS)를 조합하여 디-랜덤화된 데이터(Dout)를 출력한다. 여기서, 랜덤 시퀀스(RS)와 랜덤 읽기 데이터(Dread)가 배타적 논리합(XOR) 연산에 의하여 논리적으로 믹싱되어 디-랜덤화된 데이터(Dout)로 출력될 수 있다.
상술한 다른 실시 예에 따를 경우, 이니셜 시드(s0)에 대한 유한장 벡터로의 변환 절차 또는 변환을 위한 구성이 생략될 수 있다.
도 14는 바이트 단위의 랜덤 읽기 동작시에 본 발명의 예시적인 실시 예를 보여주는 도면이다. 도 3에서는 랜덤 읽기 동작의 단위가 섹터 단위(Sector Unit)로 이루어지는 예가 설명되었다. 하지만, 랜덤 읽기의 단위 즉, 랜덤 읽기의 시작 위치는 섹터의 시작 위치뿐 아니라 바이트 단위(Byte Unit)로도 설정될 수 있다. 이 경우, 모든 바이트 단위의 랜덤 읽기 위치(ik)에 대한 시드 오프셋을 룩업 테이블로 구성할 수도 있을 것이다. 그러나 룩업 테이블의 사이즈를 최소화하기 위해서는 하나의 섹터 내에서의 랜덤 읽기 위치(t)를 상대적인 값으로 구성하면, 룩업 테이블의 사이즈를 최소화할 수 있을 것이다.
즉, 섹터(Sector 2)의 내부에 존재하는 특정 바이트 위치를 랜덤 읽기의 시작 어드레스로 설정하면, 그에 대응하는 랜덤 시드 S(t)는 아래 수학식 4로 표현될 수 있다.
Figure pat00004
여기서, Tr1 n(?)은 유한장(예를 들면, GF(2n)) 연산을 의미하고, c는 이니셜 시드(s0)의 유한장 요소, 그리고 α는 원시 원소(Primitive element)이다. 따라서, 바이트 단위의 랜덤 읽기에서 랜덤 시드 s(t)를 구하기 위해서는 이니셜 시드(s0)와 랜덤 읽기의 시작 위치(t)에 대한 유한장 변환값들이 필요하다. 랜덤 읽기의 시작 위치(t)에 대한 유한장 변환값들(αt)은 다단계의 페이지 구분을 통해서 간략한 룩업 테이블로 구성할 수 있다. 이러한 기술은 후술하는 도 15와 도 16에서 상세히 설명될 것이다.
도 15는 바이트 단위의 랜덤 읽기 동작시의 데이터 위치 구분을 보여주는 도면이다. 도 15를 참조하면, 하나의 페이지(1-page)는 복수의 섹터들(Sector0 ~ Sector7)로 구분될 수 있다. 하나의 페이지 내에서 섹터들 각각의 상대적인 위치 정보는 제 1 요소(β0)로 표현될 수 있다. 그리고 각각의 섹터들은 128 바이트(128B) 단위의 서브 섹터들로 구분될 수 있다. 하나의 섹터 내에서 서브 섹터들 각각의 상대적 위치 정보는 제 2 요소(β1)로 표현될 수 있다. 서브 섹터(128B)들은 다시 16 바이트(16B) 크기의 데이터들로 나뉠 수 있다. 하나의 서브 섹터 내에서 16 바이트 크기의 데이터들의 상대적 위치 정보는 제 3 요소(β2)로 표현될 수 있다. 16 바이트(16B) 크기의 데이터들은 다시 2 바이트(2B) 크기의 데이터들로 나뉠 수 있다. 하나의 16 바이트(16B) 크기의 데이터 내에서 2 바이트(2B) 크기의 데이터들의 상대적 위치 정보는 제 4 요소(β3)로 표현될 수 있다. 그리고 2 바이트(2B) 크기의 데이터들은 다시 1 바이트(1B) 크기의 데이터들로 나뉠 수 있다. 하나의 2 바이트(2B) 크기의 데이터 내에서 1 바이트(2B) 크기의 데이터들의 상대적 위치 정보는 제 5 요소(β4)로 표현될 수 있다.
따라서, 바이트 단위의 랜덤 읽기의 위치 정보(t)는 유한장 요소로 표현되는 제 1 내지 제 5 요소(β04) 값으로 표현될 수 있다. 하지만, 본 발명은 이러한 5단계의 구분에만 국한되지는 않는다. 그보다 많거나 적은 단계들로 구분하여 바이트 단위의 랜덤 읽기의 위치 정보(t)는 테이블로 구성될 수 있을 것이다.
도 16은 도 15에서의 구분에 대한 랜덤 읽기의 위치 정보(t)에 대한 유한장 필드에서의 테이블을 보여주는 도면이다. 랜덤 읽기의 위치 정보(t)가 제공되면 유한장 요소인 제 1 내지 제 5 요소(β04)가 선택될 수 있다. 그리고 테이블에서 선택된 제 1 내지 제 5 요소(β04)들 각각에 대한 유한장 곱셈을 수행하면, 랜덤 읽기의 위치 정보(t)에 대한 유한장 변환값(αt)이 생성될 수 있다.
도 17은 도 16의 유한장 변환값(αt)과 시드 오프셋을 계산하는 시드 오프셋 계산기(615c)의 실시 예를 보여주는 도면이다. 만일, 이니셜 시드(s0)가 유한장 요소(c)로 주어지는 경우(Galois configuration)라면, 도 16의 테이블에서 제공되는 제 1 내지 제 5 요소들(β04)과 이니셜 시드의 유한장 곱셈(FFM)만으로 랜덤 시드 s(t)는 구해질 수 있다.
이상에서 살펴본 바와 같이, 바이트 단위의 랜덤 읽기 동작에 대해서도 랜덤 읽기 위치 정보를 저장하는 테이블은 간단하게 구성될 수 있다.
도 18은 본 발명의 예시적인 실시 예에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다. 도 18을 참조하면, 메모리 시스템(3000)은 적어도 하나의 플래시 메모리(1000)와 제어기(2000)를 포함할 것이다.
플래시 메모리(1000)는 제어기(2000)의 제어하에 동작하며, 저장 매체로서 사용될 것이다. 제어기(2000)는 플래시 메모리(1000)를 제어하도록 구성될 것이다. 플래시 메모리(1000)는 랜덤화 및 디-랜덤화 회로(1100)를 포함할 것이다. 도 16에 도시된 플래시 메모리(1000)는 도 1에 도시된 것과 실질적으로 동일하게 구성되며, 그것에 대한 설명은 그러므로 생략될 것이다. 제어기(2000)는 플래시 메모리(1000)에 저장될 데이터를 랜덤화하도록 그리고 랜덤화된 데이터에 ECC 데이터를 부가하도록 구성될 것이다.
제어기(2000)는 제 1 인터페이스(2100), 제 2 인터페이스(2200), 처리 유니트(2300), 버퍼 메모리(2400), 그리고 ECC 블록(2500)을 포함할 것이다. 제 1 인터페이스(2100)는 외부(예를 들면, 호스트)와 인터페이스하도록 구성되고, 제 2 인터페이스(2200)는 플래시 메모리(2200)와 인터페이스하도록 구성될 것이다. 처리 유니트(2300)는 제어기(2000)의 전반적인 동작을 제어하도록 구성될 것이다. 버퍼 메모리(2400)는 플래시 메모리(1000)에 저장될 데이터 또는 플래시 메모리(1000)로부터 읽혀진 데이터를 저장하도록 구성될 것이다. ECC 블록(2500)은 버퍼 메모리(2400)로부터 출력되는 데이터에 의거하여 ECC 데이터를 생성할 것이다. ECC 블록(2600)은 ECC 데이터에 의거하여 플래시 메모리(1000)로부터 읽혀진 데이터에 대한 에러 검출 및 정정 동작을 수행할 것이다. ECC 데이터는 플래시 메모리(1000)에 저장될 데이터와 동일한 페이지에 또는 플래시 메모리(1000)에 저장될 데이터와 다른 영역에 저장될 수 있다.
도 18에 도시된 메모리 시스템의 경우, 쓰기 동작은 플래시 메모리(1000)에 저장될 데이터에 의거하여 ECC 데이터를 생성하고, 플래시 메모리(1000)에 저장될 데이터를 랜덤화시키는 것을 포함할 것이다. 읽기 동작은 읽혀진 데이터를 디-랜덤화시키고, ECC 데이터에 의거하여 디-랜덤화된 데이터에 대한 에러 검출 및 정정 동작을 수행하는 것을 포함할 것이다. ECC에 대한 랜덤화/디-랜덤화는 선택적으로 행하여 질 수 있다.
예시적인 실시예에 있어서, 제 1 인터페이스(2100)는 컴퓨터 버스 표준들, 스토리지 버스 표준들, iFCPPeripheral 버스 표준들, 등 중 하나 또는 그 보다 많은 것들의 조합으로 구성될 수 있다. 컴퓨터 버스 표준들(computer bus standards)은 S-100 bus, Mbus, Smbus, Q-Bus, ISA, Zorro II, Zorro III, CAMAC, FASTBUS, LPC, EISA, VME, VXI, NuBus, TURBOchannel, MCA, Sbus, VLB, PCI, PXI, HP GSC bus, CoreConnect, InfiniBand, UPA, PCI-X, AGP, PCIe, Intel QuickPath Interconnect, Hyper Transport, 등을 포함한다. 스토리지 버스 표준들(Storage bus standards)은 ST-506, ESDI, SMD, Parallel ATA, DMA, SSA, HIPPI, USB MSC, FireWire(1394), Serial ATA, eSATA, SCSI, Parallel SCSI, Serial Attached SCSI, Fibre Channel, iSCSI, SAS, RapidIO, FCIP, 등을 포함한다. iFCPPeripheral 버스 표준들(iFCPPeripheral bus standards)은 Apple Desktop Bus, HIL, MIDI, Multibus, RS-232, DMX512-A, EIA/RS-422, IEEE-1284, UNI/O, 1-Wire, I2C, SPI, EIA/RS-485, USB, Camera Link, External PCIe, Light Peak, Multidrop Bus, 등을 포함한다.
도 19는 본 발명의 다른 예시적인 실시예에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다. 도 19를 참조하면, 메모리 시스템(3000a)은 적어도 하나의 플래시 메모리(1000a)와 제어기(2000a)를 포함할 것이다. 플래시 메모리(1000a)는 제어기(2000a)의 제어 하에 동작하며, 저장 매체로서 사용될 것이다. 도 17에 도시된 플래시 메모리(1000a)는 앞서 언급된 랜덤화 및 디-랜덤화 회로를 포함하지 않을 것이다. 제어기(2000a)는 플래시 메모리(1000a)를 제어하도록 구성될 것이다. 제어기(2000a)는 플래시 메모리(1000a)에 저장될 데이터를 랜덤화하도록 그리고 랜덤화된 데이터에 ECC 데이터를 부가하도록 구성될 것이다. 제어기(2000a)는 플래시 메모리(1000a)로부터 읽혀진 랜덤화된 데이터의 에러에 대한 검출 및 정정 동작을 수행하고, 랜덤화된 데이터를 디-랜덤화하도록 구성될 것이다.
제어기(2000a)는 제 1 인터페이스(2100a), 제 2 인터페이스(2200a), 처리 유니트(2300a), 버퍼 메모리(2400a), ECC 블록(2500a), 그리고 랜덤화/디-랜덤화 블록(2600)을 포함할 것이다. 도 19에 도시된 구성 요소들(2100a, 2200a, 2300a, 2400a, 2500a)은 아래의 차이점을 제외하면 도 18에 도시된 것과 실질적으로 동일하며, 그것에 대한 설명은 그러므로 생략될 것이다.
랜덤화 및 디-랜덤화 블록(2600)은 버퍼 메모리(2400a)로부터 출력되는 데이터를 랜덤화하도록 그리고 플래시 메모리(1000a)로부터 읽혀진 데이터(즉, 랜덤화된 데이터)를 디-랜덤화하도록 구성될 것이다. 랜덤화 및 디-랜덤화 블록(2600)은 도 2 내지 도 17에서 설명된 방식들 중 하나에 따라 랜덤 데이터에 대한 랜덤화 및 디-랜덤화 동작들을 수행하며, 그것에 대한 설명은 그러므로 생략될 것이다. ECC 블록(2600)은 랜덤화 및 디-랜덤화 블록(2500)으로부터 출력되는 랜덤화된 데이터에 의거하여 ECC 데이터를 생성할 것이다. ECC 블록(2500a)은, 또한, ECC 데이터에 의거하여 플래시 메모리(1000a)로부터 읽혀진 데이터 즉, 랜덤화된 데이터에 대한 에러 검출 및 정정 동작을 수행할 것이다. ECC 데이터는 플래시 메모리(1000a)에 저장될 데이터와 동일한 페이지에 또는 플래시 메모리(1000a)에 저장될 데이터와 다른 영역에 저장될 수 있다.
도 19에 도시된 메모리 시스템의 경우, 쓰기 동작은 플래시 메모리(1000a)에 저장될 데이터를 랜덤화시키고, 랜덤화된 데이터에 의거하여 ECC 데이터를 생성하고, 플래시 메모리(1000)에 ECC 데이터와 랜덤화된 데이터를 저장하는 것을 포함할 것이다. 또는, 저장될 데이터와 ECC 데이터를 모두 랜덤화하여 저장하는 것을 포함할 것이다 . 읽기 동작은 ECC 데이터에 의거하여 읽혀진 데이터(즉, 랜덤화된 데이터)에 대한 에러 검출 및 정정 동작을 수행하고, 읽혀진 데이터를 랜덤화시키는 것을 포함할 것이다.
도 20은 본 발명의 예시적인 실시 예에 따른 솔리드 스테이트 드라이브(이하, SSD)를 개략적으로 보여주는 블록도이다. 도 20을 참조하면, SSD(4000)는 저장 매체(4100)와 제어기(4200)를 포함할 것이다. 저장 매체(4100)는 복수의 채널들을 통해 제어기(4200)와 연결될 것이다. 각 채널에는 복수의 불 휘발성 메모리들이 공통으로 연결될 것이다. 각 불 휘발성 메모리는 도 1에서 설명된 플래시 메모리로 구성될 것이다. 이러한 경우, 제어기(4200)는 도 18에 도시된 것과 실질적으로 동일하게 구성될 것이다. 즉, 데이터 랜덤화 및 디-랜덤화는 각 불 휘발성 메모리 내에서 행해지고, 에러 검출 및 정정은 제어기(4200) 내에서 행해질 것이다.
또는, 제어기(4200)는 도 19에서 설명된 것과 동일하게 구성될 것이다. 이러한 경우, 데이터 랜덤화 및 디-랜덤화와 에러 검출 및 정정은 제어기(4200) 내에서 행해질 것이다. 따라서, 오프셋 어드레스를 참조하여 랜덤 데이터를 위한 초기 시드를 생성하는 것이 가능하다.
도 21은 도 20에 도시된 SSD를 이용한 스토리지를 개략적으로 보여주는 블록도이고, 도 22은 도 20에 도시된 SSD를 이용한 스토리지 서버를 개략적으로 보여주는 블록도이다.
본 발명의 예시적인 실시예에 따른 SSD(4000)는 스토리지를 구성하는 데 사용될 수 있다. 도 21에 도시된 바와 같이, 스토리지는 도 20에서 설명된 것과 실질적으로 동일하게 구성되는 복수의 SSD들을 포함할 것이다. 본 발명의 예시적인 실시예에 따른 SSD(4000)는 스토리지 서버를 구성하는 데 사용될 수 있다. 도 22에 도시된 바와 같이, 스토리지 서버는 도 20에서 설명된 것과 실질적으로 동일하게 구성되는 복수의 SSD들(4000), 그리고 스토리지 서버의 전반적인 동작을 제어하기 위한 서버(4000A)를 포함할 것이다. 또한, SSD들(4000)에 저장된 데이터에 대한 결함을 치유하기 위해 적용되는 패리티 방식에 따른 패리티 관리를 위한 RAID 제어기(4000B)가 스토리지 서버에 제공될 수 있음은 잘 이해될 것이다.
도 21 내지 도 25은 본 발명의 예시적인 실시예들에 따른 시스템들을 개략적으로 보여주는 도면들이다. 본 발명의 예시적인 실시예들에 따른 메모리 제어기 및 플래시 메모리 장치들로 구성되는 반도체 드라이브가 스토리지에 적용되는 경우, 도 21에 도시된 바와 같이, 시스템(6000)은 유선 그리고/또는 무선으로 호스트와 통신하는 스토리지(6100)를 포함할 것이다. 본 발명의 예시적인 실시예들에 따른 데이터 저장 장치를 포함한 SSD가 스토리지 서버에 적용되는 경우, 도 24에 도시된 바와 같이, 시스템(7000)은 유선 그리고/또는 무선으로 호스트와 통신하는 스토리지 서버들(7100, 7200)을 포함할 것이다. 또한, 도 25에 도시된 바와 같이, 본 발명의 예시적인 실시예에 따른 데이터 저장 장치를 포함한 SSD는 메일 서버(8100)에도 적용될 수 있다. 메일 서버(8100)는 POP 및 SMTP 방식들로 연결된 메일 데몬을 통해 사용자 메일 프로그램들과 통신하며, 메일 서버들(8100)은 인터넷망을 통해 통신할 것이다.
도 26 내지 도 30은 본 발명의 예시적인 실시 예들에 따른 불 휘발성 메모리 장치가 적용되는 다른 시스템들을 개략적으로 보여주는 도면들이다.
도 26은 본 발명의 예시적인 실시 예에 따른 플래시 메모리 장치가 사용되는 휴대폰 시스템(cellular phone system)을 개략적으로 보여주는 블록도이다. 도 26을 참조하면, 휴대폰 시스템은 소리를 압축하거나 압축된 소리를 푸는(compression or decompression) ADPCM 코덱 회로(9202), 스피커(speaker)(9203), 마이크로폰(microphone)(9204), 디지털 데이터를 시분할 멀티플렉싱하는 TDMA회로(9206), 무선 신호의 캐리어 주파수(carrier frequency)를 세팅하는 PLL회로(9210), 무선 신호를 전달하거나 받기 위한 RF 회로(9211) 등을 포함할 수 있다.
또한, 휴대폰 시스템은 여러 가지 종류의 메모리 장치를 포함할 수 있는데, 예를 들어, 휴대폰 시스템은 불 휘발성 메모리 장치인 플래시 메모리 장치(9207), ROM(9208), SRAM(9209)를 포함할 수 있다. 휴대폰 시스템의 메모리 장치(9207)로서, 예를 들어, 도 1에서 설명된 플래시 휘발성 메모리 장치가 사용될 것이다. 즉, 랜덤 데이터를 위한 초기 시드를 생성하는 것이 가능하다. ROM(9208)은 프로그램을 저장할 수 있고, SRAM(9209)은 시스템 컨트롤 마이크로컴퓨터(9212)를 위한 작업 영역으로써 역할을 하거나 데이터를 일시적으로 저장한다. 여기서, 시스템 컨트롤 마이크로컴퓨터(9212)는 프로세서로서, 플래시 메모리 장치(9207)의 쓰기 동작 및 읽기 동작을 제어할 수 있다.
도 27은 본 발명의 예시적인 실시 예에 따른 플래시 메모리 장치가 사용되는 메모리 카드(memory card)의 예시적 도면이다. 메모리 카드는 예를 들어, MMC 카드, SD카드, 멀티유즈(multiuse) 카드, 마이크로 SD카드, 메모리 스틱, 컴팩트 SD 카드, ID 카드, PCMCIA 카드, SSD카드, 칩카드(chipcard), 스마트카드(smartcard), USB카드 등일 수 있다.
도 27을 참조하면, 메모리 카드는 외부와의 인터페이스를 수행하는 인터페이스부(9221), 버퍼 메모리를 갖고 메모리 카드의 동작을 제어하는 컨트롤러(9222), 본 발명의 실시예에 따른 플래시 메모리 장치(9207)을 적어도 하나 포함할 수 있다. 플래시 메모리 장치(9207)는 랜덤 데이터를 위한 초기 시드를 생성하도록 구성된 플래시 메모리 장치로 구성될 것이다. 컨트롤러(9222)는 프로세서로서, 플래시 메모리 장치(9207)의 라이트 동작 및 리드 동작을 제어할 수 있다. 구체적으로, 제어기(9222)는 데이터 버스(DATA)와 어드레스 버스(ADDRESS)를 통해서 불 휘발성 메모리 장치(9207), 인터페이스부(9221)와 커플링되어 있다.
도 28은 본 발명의 예시적인 실시 예에 따른 플래시 메모리 장치가 사용되는 디지털 스틸 카메라(digital still camera)의 예시적 도면이다. 도 28을 참조하면, 디지털 스틸 카메라는 바디(9301), 슬롯(9302), 렌즈(9303), 디스플레이부(9308), 셔터 버튼(9312), 스트로브(strobe)(9318) 등을 포함한다. 특히, 슬롯(9308)에는 메모리 카드(9331)가 삽입될 수 있고, 메모리 카드(9331)는 랜덤 데이터를 위한 초기 시드를 생성하는 것이 가능하도록 구성된 본 발명의 실시예에 따른 플래시 메모리 장치(9207)를 적어도 하나 포함할 수 있다. 메모리 카드(9331)가 접촉형(contact type)인 경우, 메모리 카드(9331)가 슬롯(9308)에 삽입될 때 메모리 카드(9331)와 회로 기판상의 특정 전기 회로가 전기적으로 접촉하게 된다. 메모리 카드(9331)가 비접촉형(non-contact type)인 경우, 무선 신호를 통해서 메모리 카드(9331)가 액세스 될 것이다.
도 29는 도 28의 메모리 카드가 사용되는 다양한 시스템을 설명하는 예시적 도면이다. 도 29를 참조하면, 메모리 카드(2331)는 (a) 비디오 카메라, (b) 텔레비전, (c) 오디오 장치, (d) 게임장치, (e) 전자 음악 장치, (f) 휴대폰, (g) 컴퓨터, (h) PDA(Personal Digital Assistant), (i) 보이스 레코더(voice recorder), (j) PC 카드 등에 사용될 수 있다.
도 30은 본 발명의 예시적인 실시 예에 따른 플래시 메모리 장치가 사용되는 이미지 센서(image sensor) 시스템의 예시적 도면이다. 도 30을 참조하면, 이미지 센서 시스템은 이미지 센서(9332), 입출력 장치(9336), RAM(9348), CPU(9344), 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치(9354) 등을 포함할 수 있다. 플래시 메모리 장치(9354)는 랜덤 데이터를 위한 초기 시드를 생성하는 것이 가능하도록 구성될 것이다. 각 구성요소, 즉, 이미지 센서(9332), 입출력 장치(9336), RAM(9348), CPU(9344), 플래시 메모리 장치(9354)는 버스(9352)를 통해서 서로 통신한다. 이미지 센서(9332)는 포토게이트, 포토다이오드 등과 같은 포토센싱(photo sensing) 소자를 포함할 수 있다. 각각의 구성 요소는 프로세서와 함께 하나의 칩으로 구성될 수도 있고, 프로세서와 각각 별개의 칩으로 구성될 수도 있다.
본 발명의 예시적인 실시 예에 있어서, 메모리 셀들은 가변 저항 메모리 셀로 구성될 수 있다. 본 발명의 다른 예시적인 실시 예에 있어서, 메모리 셀들은 전하 저장층을 갖는 다양한 셀 구조들 중 하나를 이용하여 구현될 수 있다. 전하 저장층을 갖는 셀 구조는 전하 트랩층을 이용하는 전하 트랩 플래시 구조, 어레이들이 다층으로 적층되는 스택 플래시 구조, 소오스-드레인이 없는 플래시 구조, 핀-타입 플래시 구조 등을 포함할 것이다.
본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 제어기는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장될 수 있다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
100: 메모리 셀 어레이
200: 행 선택 회로
300: 제어 로직
400: 페이지 버퍼 회로
500: 열 선택 회로
600: 랜덤화 및 디-랜덤화 회로
610a, 610b : 시드 생성기
611 : 시드 변환기
613 : 위치 테이블
615a, 615b : 시드 오프셋 계산기
620a, 620b : 디-랜더마이저
621a, 621b : 시퀀스 발생기
623 : 믹서
700: 입출력 인터페이스 회로

Claims (10)

  1. 불휘발성 메모리 장치의 랜덤 데이터의 읽기 방법에 있어서:
    선택된 페이지에 대응하는 이니셜 시드와, 상기 선택된 페이지 내에서 읽기 요청되는 랜덤 데이터의 상대적인 위치 정보를 수신하는 단계;
    유한장 연산을 통해 상기 이니셜 시드와 상기 위치 정보를 처리하여 상기 랜덤 데이터를 디-랜덤화하기 위한 시드를 생성하는 단계; 그리고
    상기 시드로부터 생성되는 랜덤 시퀀스를 상기 랜덤 데이터에 적용하여 디-랜덤화하는 단계를 포함하는 랜덤 데이터의 읽기 방법.
  2. 제 1 항에 있어서,
    상기 위치 정보는 상기 랜덤 데이터의 시작점과 상기 선택된 페이지의 시작점과의 상대적인 데이터 길이에 대응하는 랜덤 데이터의 읽기 방법.
  3. 제 2 항에 있어서,
    상기 선택된 페이지는 복수의 위치 정보들에 의하여 구분되고, 상기 불휘발성 메모리 장치의 복수의 페이지들은 상기 복수의 위치 정보들에 의하여 동일하게 구분되는 랜덤 데이터의 읽기 방법.
  4. 제 3 항에 있어서,
    상기 복수의 페이지들 각각은 서로 다른 상기 이니셜 시드를 가지는 랜덤 데이터의 읽기 방법.
  5. 제 3 항에 있어서,
    상기 위치 정보들은 테이블로 구성되는 랜덤 데이터의 읽기 방법.
  6. 제 1 항에 있어서,
    상기 랜덤 시퀀스는 상기 시드로부터 피보나치 설정(Fibonacci Configuration)에 따라 생성되는 랜덤 데이터의 읽기 방법.
  7. 제 6 항에 있어서,
    상기 이니셜 시드를 상기 유한장 요소로 변경하는 단계를 더 포함하는 랜덤 데이터의 읽기 방법.
  8. 제 1 항에 있어서,
    상기 랜덤 시퀀스는 상기 시드로부터 갈로아 설정(Galois Configuration)에 따라 생성되는 랜덤 데이터의 읽기 방법.
  9. 제 8 항에 있어서,
    상기 이니셜 시드는 필드 변경 연산없이 상기 시드를 생성하기 위한 유한장 곱셈 연산에 사용되는 랜덤 데이터의 읽기 방법.
  10. 행들과 열들로 배열된 메모리 셀들을 포함하는 어레이; 그리고
    상기 어레이에 저장될 데이터를 랜덤화하고, 랜덤 읽기 동작시 읽기 요청된 랜덤 데이터가 포함되는 페이지의 이니셜 시드와 상기 랜덤 데이터의 위치 정보를 참조하여 시드를 생성하고, 상기 생성된 시드로부터 생성되는 랜덤 시퀀스를 적용하여 상기 랜덤 데이터를 디-랜덤화하는 랜덤화 및 디-랜덤화 회로를 포함하되,
    상기 시드는 시퀀스 발생기의 구동없이 유한장 연산을 통해서 생성되는 불휘발성 메모리 장치.
KR1020110036350A 2011-04-19 2011-04-19 불휘발성 메모리 장치, 불휘발성 메모리 시스템 및 그것의 랜덤 데이터 읽기 방법 KR101818671B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020110036350A KR101818671B1 (ko) 2011-04-19 2011-04-19 불휘발성 메모리 장치, 불휘발성 메모리 시스템 및 그것의 랜덤 데이터 읽기 방법
US13/450,541 US8856428B2 (en) 2011-04-19 2012-04-19 Nonvolatile memory device and nonvolatile memory system and random data read method thereof
US14/472,072 US9400750B2 (en) 2011-04-19 2014-08-28 Nonvolatile memory device and nonvolatile memory system and random data read method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110036350A KR101818671B1 (ko) 2011-04-19 2011-04-19 불휘발성 메모리 장치, 불휘발성 메모리 시스템 및 그것의 랜덤 데이터 읽기 방법

Publications (2)

Publication Number Publication Date
KR20120118762A true KR20120118762A (ko) 2012-10-29
KR101818671B1 KR101818671B1 (ko) 2018-02-28

Family

ID=47022167

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110036350A KR101818671B1 (ko) 2011-04-19 2011-04-19 불휘발성 메모리 장치, 불휘발성 메모리 시스템 및 그것의 랜덤 데이터 읽기 방법

Country Status (2)

Country Link
US (2) US8856428B2 (ko)
KR (1) KR101818671B1 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101678919B1 (ko) 2011-05-02 2016-11-24 삼성전자주식회사 메모리 시스템 및 에러 정정 방법
US9171620B2 (en) 2012-11-29 2015-10-27 Sandisk Technologies Inc. Weighted read scrub for nonvolatile memory
US9098205B2 (en) 2013-01-30 2015-08-04 Sandisk Technologies Inc. Data randomization in 3-D memory
US20150121156A1 (en) 2013-10-28 2015-04-30 Sandisk Technologies Inc. Block Structure Profiling in Three Dimensional Memory
CN103559146B (zh) * 2013-11-05 2016-03-30 山东大学 一种提高NAND flash控制器读写速度的方法
KR102133542B1 (ko) * 2013-12-03 2020-07-14 에스케이하이닉스 주식회사 랜더마이저 및 디랜더마이저를 포함하는 메모리 시스템
US9312017B2 (en) 2014-01-15 2016-04-12 Apple Inc. Storage in charge-trap memory structures using additional electrically-charged regions
KR20150130813A (ko) * 2014-05-14 2015-11-24 에스케이하이닉스 주식회사 노이즈 생성기 및 그것을 포함하는 ecc 유닛 검증 회로
US8918577B1 (en) 2014-06-13 2014-12-23 Sandisk Technologies Inc. Three dimensional nonvolatile memory with variable block capacity
KR102248207B1 (ko) 2014-10-30 2021-05-06 삼성전자주식회사 저장 장치 및 그것의 동작 방법
US11515897B2 (en) 2015-05-29 2022-11-29 SK Hynix Inc. Data storage device
US11611359B2 (en) * 2015-05-29 2023-03-21 SK Hynix Inc. Data storage device
KR102285940B1 (ko) * 2015-05-29 2021-08-05 에스케이하이닉스 주식회사 데이터 처리 회로, 데이터 처리 회로를 포함하는 데이터 저장 장치 및 그것의 동작 방법
KR102511459B1 (ko) * 2016-03-17 2023-03-17 삼성전자주식회사 비휘발성 메모리 장치 및 그 동작 방법
KR102515137B1 (ko) * 2016-03-28 2023-03-29 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR102636039B1 (ko) 2016-05-12 2024-02-14 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 읽기 방법 및 카피백 방법
US9934841B1 (en) * 2016-10-21 2018-04-03 Altera Corporation Systems and methods for refreshing data in memory circuits
CN108307131B (zh) * 2016-12-27 2021-08-03 株式会社半导体能源研究所 摄像装置及电子设备
CN109146073B (zh) * 2017-06-16 2022-05-24 华为技术有限公司 一种神经网络训练方法和装置
KR20190033791A (ko) * 2017-09-22 2019-04-01 에스케이하이닉스 주식회사 컨트롤러, 반도체 메모리 장치 및 이들을 포함하는 메모리 시스템
CN108090272B (zh) * 2017-12-13 2020-11-17 广东电网有限责任公司电力科学研究院 一种模块化多电平换流器的建模仿真方法及装置
KR20190074890A (ko) 2017-12-20 2019-06-28 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
CN108493958B (zh) * 2018-03-26 2021-07-02 湖南大学 新能源发电场站宽频带振荡抑制装备及其控制方法
KR20210079556A (ko) * 2019-12-20 2021-06-30 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
KR20210094696A (ko) 2020-01-21 2021-07-30 삼성전자주식회사 비휘발성 메모리 장치, 스토리지 장치, 및 그것의 프로그램 방법
KR20210111004A (ko) 2020-03-02 2021-09-10 삼성전자주식회사 비휘발성 메모리 장치, 그것을 갖는 저장 장치, 및 그것의 읽기 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001339385A (ja) 2000-05-30 2001-12-07 Toshiba Corp 暗号化処理装置及び暗号化処理方法
US8619981B2 (en) 2005-05-12 2013-12-31 Jds Uniphase Corporation Systems and methods for producing pseudo-random number distributions in devices having limited processing and storage capabilities
JP2009258141A (ja) 2006-06-30 2009-11-05 Kiyoto Yui 無限乱数発生装置を用いた無限暗号化・復号装置及び無限暗号化装置
JP4462252B2 (ja) 2006-08-30 2010-05-12 ブラザー工業株式会社 情報処理装置及びプログラム
US8145855B2 (en) 2008-09-12 2012-03-27 Sandisk Technologies Inc. Built in on-chip data scrambler for non-volatile memory
KR101554159B1 (ko) * 2008-10-08 2015-09-21 삼성전자주식회사 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템
KR20100099961A (ko) * 2009-03-04 2010-09-15 삼성전자주식회사 불휘발성 메모리 장치 및 그 동작 방법

Also Published As

Publication number Publication date
US8856428B2 (en) 2014-10-07
US20120272017A1 (en) 2012-10-25
KR101818671B1 (ko) 2018-02-28
US20140372714A1 (en) 2014-12-18
US9400750B2 (en) 2016-07-26

Similar Documents

Publication Publication Date Title
KR101818671B1 (ko) 불휘발성 메모리 장치, 불휘발성 메모리 시스템 및 그것의 랜덤 데이터 읽기 방법
US9128623B2 (en) Non-volatile memory devices, methods of operating non-volatile memory devices, and systems including the same
KR102089613B1 (ko) 불 휘발성 메모리 장치 및 그것을 포함한 메모리 시스템
JP6202972B2 (ja) メモリシステム及びそれの読み出し校正方法
KR101818176B1 (ko) 메모리 시스템 및 그것의 동작 방법
US8751729B2 (en) Flash memory device and memory system including the same
US8694873B2 (en) Memory system and error correction method
KR101811298B1 (ko) 랜덤마이져로 씨드를 제공하는 씨드 컨트롤러 및 그것을 포함한 메모리 컨트롤러
US8996947B2 (en) Generation of program data for nonvolatile memory
US9164889B2 (en) Memory system to select program operation method and method thereof
KR20130052971A (ko) 비휘발성 메모리 장치의 동작 방법
KR20100111990A (ko) 플래시 메모리 장치 및 그것의 데이터 랜덤화 방법
US20100293393A1 (en) Memory Controller, Memory System Including the Same, and Method for Operating the Same
US20150228344A1 (en) Partial page programming of nonvolatile memory device
US20120215963A1 (en) Semiconductor Memory Systems that Include Data Randomizers and Related Devices, Controllers and Methods
US20120290783A1 (en) Memory device and memory system including the same
KR20170114438A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR101818209B1 (ko) 플래시 메모리 장치 및 그것을 포함한 메모리 시스템
CN111290705A (zh) 包括现场可编程门阵列的存储器系统及其操作方法
KR101733567B1 (ko) 초기 시드 생성 방법과 그것을 이용한 플래시 메모리 장치 및 메모리 시스템
KR102496678B1 (ko) 반도체 메모리 장치 및 이의 동작 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant