KR101733567B1 - Initial seed generating method and flash memory device and memory system using the same - Google Patents

Initial seed generating method and flash memory device and memory system using the same Download PDF

Info

Publication number
KR101733567B1
KR101733567B1 KR1020110000279A KR20110000279A KR101733567B1 KR 101733567 B1 KR101733567 B1 KR 101733567B1 KR 1020110000279 A KR1020110000279 A KR 1020110000279A KR 20110000279 A KR20110000279 A KR 20110000279A KR 101733567 B1 KR101733567 B1 KR 101733567B1
Authority
KR
South Korea
Prior art keywords
data
random sequence
seed
memory
random
Prior art date
Application number
KR1020110000279A
Other languages
Korean (ko)
Other versions
KR20120072289A (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 US13/326,820 priority Critical patent/US8751729B2/en
Priority to DE102011056776A priority patent/DE102011056776A1/en
Priority to JP2011281075A priority patent/JP2012133877A/en
Priority to TW100147869A priority patent/TW201232261A/en
Priority to CN2011104368269A priority patent/CN102568575A/en
Publication of KR20120072289A publication Critical patent/KR20120072289A/en
Application granted granted Critical
Publication of KR101733567B1 publication Critical patent/KR101733567B1/en

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/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/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
    • 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/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • 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
    • 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

Abstract

본 발명의 메모리 제어 방법은 데이터 액세스가 랜덤인지 판별하는 단계, 상기 데이터 액세스가 랜덤이 아닌 경우, 제 1 시드를 기초로 제 1 랜덤 시퀀스 데이터를 생성하는 단계, 상기 제 1 랜덤 시퀀스 데이터와 메모리로부터 독출된 데이터 혹은 상기 메모리에 쓰여질 데이터를 합성하는 단계, 상기 데이터 액세스가 랜덤인 경우, 상기 제 1 시드로부터 제 2 시드를 생성하는 단계, 상기 제 2 시드를 기초로 제 2 랜덤 시퀀스 데이터를 생성하는 단계, 그리고 상기 제 2 랜덤 시퀀스 데이터와 상기 메모리로부터 독출된 데이터 혹은 상기 메모리에 쓰여질 데이터를 합성하는 단계를 포함한다.The memory control method of the present invention includes the steps of determining whether data access is random, generating first random sequence data based on a first seed if the data access is not random, Synthesizing the read data or data to be written to the memory, generating a second seed from the first seed if the data access is random, generating second random sequence data based on the second seed And combining the second random sequence data with data read from the memory or data to be written to the memory.

Description

초기 시드 생성 방법과 그것을 이용한 플래시 메모리 장치 및 메모리 시스템{INITIAL SEED GENERATING METHOD AND FLASH MEMORY DEVICE AND MEMORY SYSTEM USING THE SAME}FIELD OF THE INVENTION [0001] The present invention relates to an initial seed generation method and a flash memory device and a memory system using the same.

본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 구체적으로는 플래시 메모리 장치에 관한 것이다.The present invention relates to semiconductor memory devices, and more particularly, to flash memory devices.

플래시 메모리 장치는 복수의 메모리 영역들이 한 번의 프로그램 동작으로 소거 또는 프로그램되는 일종의 EEPROM이다. 일반적인 EEPROM은 단지 하나의 메모리 영역이 한 번에 소거 또는 프로그램 가능하게 하며, 이는 플래시 메모리 장치를 사용하는 시스템들이 동시에 다른 메모리 영역들에 대해 읽고 쓸 때보다 빠르고 효과적인 속도로 플래시 메모리 장치가 동작할 수 있음을 의미한다. 플래시 메모리 및 EEPROM의 모든 형태는 데이터를 저장하는 데 사용되는 전하 저장 수단의 열화 또는 전하 저장 수단을 둘러싸고 있는 절연막의 마멸로 인해서 특정 수의 소거 동작들 후에 마멸된다.A flash memory device is a kind of EEPROM in which a plurality of memory areas are erased or programmed by a single program operation. A typical EEPROM allows only one memory area to be erased or programmed at a time, which allows the flash memory device to operate at a faster and more efficient rate than systems using the flash memory device to read and write to different memory areas simultaneously . All forms of flash memory and EEPROM are worn out after a certain number of erase operations due to deterioration of the charge storage means used to store data or wear of the insulating film surrounding the charge storage means.

플래시 메모리 장치는 실리콘 칩에 저장된 정보를 유지하는 데 전원을 필요로 하지 않는 방법으로 실리콘 칩 상에 정보를 저장한다. 이는 만약 칩에 공급되는 전원이 차단되면 전원의 소모 없이 정보가 유지됨을 의미한다. 추가로, 플래시 메모리 장치는 물리적인 충격 저항성 및 빠른 읽기 접근 시간을 제공한다. 이러한 특징들 때문에, 플래시 메모리 장치는 배터리에 의해서 전원을 공급받는 장치들의 저장 장치로서 일반적으로 사용되고 있다.A flash memory device stores information on a silicon chip in a manner that does not require power to maintain information stored on the silicon chip. This means that if the power to the chip is interrupted, the information is retained without consuming power. In addition, the flash memory device provides physical impact resistance and fast read access time. Because of these features, flash memory devices are commonly used as storage devices for devices powered by batteries.

본 발명의 목적은 신뢰성을 향상시킬 수 있는 플래시 메모리 장치 및 그것을 포함한 메모리 시스템을 제공하는 것이다.An object of the present invention is to provide a flash memory device capable of improving reliability and a memory system including the same.

본 발명의 메모리 제어 방법은 데이터 액세스가 랜덤인지 판별하는 단계, 상기 데이터 액세스가 랜덤이 아닌 경우, 제 1 시드를 기초로 제 1 랜덤 시퀀스 데이터를 생성하는 단계, 상기 제 1 랜덤 시퀀스 데이터와 메모리로부터 독출된 데이터 혹은 상기 메모리에 쓰여질 데이터를 합성하는 단계, 상기 데이터 액세스가 랜덤인 경우, 상기 제 1 시드로부터 제 2 시드를 생성하는 단계, 상기 제 2 시드를 기초로 제 2 랜덤 시퀀스 데이터를 생성하는 단계, 그리고 상기 제 2 랜덤 시퀀스 데이터와 상기 메모리로부터 독출된 데이터 혹은 상기 메모리에 쓰여질 데이터를 합성하는 단계를 포함한다.The memory control method of the present invention includes the steps of determining whether data access is random, generating first random sequence data based on a first seed if the data access is not random, Synthesizing the read data or data to be written to the memory, generating a second seed from the first seed if the data access is random, generating second random sequence data based on the second seed And combining the second random sequence data with data read from the memory or data to be written to the memory.

본 발명의 예시적인 실시한 예들에 의하면, 비록 랜덤 데이터에 대한 액세스가 요청되더라도 초기 시드(또는, 초기 랜덤 시퀀스 데이터)를 생성함으로써 랜덤화된 데이터를 디-랜덤화시키고 그리고 프로그램될 데이터를 랜덤화시키는 것이 가능하다.According to exemplary embodiments of the present invention, it is possible to de-randomize randomized data by generating an initial seed (or initial random sequence data), even if access to random data is requested, and to randomize the data to be programmed It is possible.

도 1은 본 발명의 예시적인 실시 예에 따른 플래시 메모리 장치를 개략적으로 보여주는 블록도이다.
도 2는 올 비트 라인 메모리 구조 또는 오드-이븐 메모리 구조를 위해 도 1에 도시된 메모리 셀 어레이를 메모리 블록들로 구성하는 예를 보여주는 도면이다.
도 3은 본 발명의 일 실시예에 따른 도 1에 도시된 랜덤화 및 디-랜덤화 회로를 개략적으로 보여주는 블록도이다.
도 4는 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치의 읽기 동작을 개략적으로 설명하기 위한 타이밍도이다.
도 5는 본 발명의 다른 예시적인 실시예에 따른 플래시 메모리 장치의 읽기 동작을 개략적으로 설명하기 위한 타이밍도이다.
도 6은 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치의 쓰기 동작을 개략적으로 설명하기 위한 타이밍도이다.
도 7은 본 발명의 다른 실시예에 따른 도 1에 도시된 랜덤화 및 디-랜덤화 회로를 개략적으로 보여주는 블록도이다.
도 8은 도 7에 도시된 유사-랜덤 시퀀스 발생기를 개략적으로 보여주는 블록도이다.
도 9는 도 7에 도시된 유사-랜덤 시퀀스 발생기의 다항식을 이용하여 생성되는 초기 시드값들을 보여주는 도면이다.
도 10은 본 발명의 또 다른 실시예에 따른 도 1에 도시된 랜덤화 및 디-랜덤화 회로를 개략적으로 보여주는 블록도이다.
도 11a는 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치의 랜덤화 및 디-랜덤화 방법을 설명하기 위한 흐름도이다.
도 11b는 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치의 랜덤화 및 디-랜덤화 스킴을 개략적으로 설명하기 위한 도면이다.
도 12는 본 발명의 예시적인 실시예에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 13은 는 본 발명의 다른 예시적인 실시예에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 14는 본 발명의 예시적인 실시예에 따른 반도체 드라이브를 개략적으로 보여주는 블록도이다.
도 15는 도 14에 도시된 반도체 드라이브를 이용한 스토리지를 개략적으로 보여주는 블록도이다.
도 16은 도 14에 도시된 반도체 드라이브를 이용한 스토리지 서버를 개략적으로 보여주는 블록도이다.
도 17 내지 도 19는 본 발명의 예시적인 실시예들에 따른 시스템들을 개략적으로 보여주는 도면들이다.
도 20 내지 도 24는 본 발명의 예시적인 실시예들에 따른 불 휘발성 메모리 장치가 적용되는 다른 시스템들을 개략적으로 보여주는 도면들이다.
1 is a block diagram that schematically illustrates a flash memory device in accordance with an exemplary embodiment of the present invention.
FIG. 2 is a view showing an example of configuring the memory cell array shown in FIG. 1 as memory blocks for an all-bit line memory structure or an odd-even memory structure.
3 is a block diagram that schematically illustrates the randomization and de-randomization circuitry shown in FIG. 1 in accordance with one embodiment of the present invention.
4 is a timing diagram schematically illustrating a read operation of a flash memory device according to an exemplary embodiment of the present invention.
5 is a timing diagram schematically illustrating a read operation of a flash memory device according to another exemplary embodiment of the present invention.
6 is a timing diagram schematically illustrating a write operation of a flash memory device according to an exemplary embodiment of the present invention.
Figure 7 is a block diagram that schematically illustrates the randomization and de-randomization circuitry shown in Figure 1 according to another embodiment of the present invention.
8 is a block diagram schematically illustrating the pseudo-random sequence generator shown in FIG.
FIG. 9 is a diagram showing initial seed values generated using the polynomial equation of the pseudo-random sequence generator shown in FIG.
10 is a block diagram that schematically illustrates the randomization and de-randomization circuitry shown in FIG. 1 in accordance with another embodiment of the present invention.
11A is a flowchart illustrating a randomization and de-randomization method of a flash memory device according to an exemplary embodiment of the present invention.
11B schematically illustrates a randomization and de-randomization scheme of a flash memory device according to an exemplary embodiment of the present invention.
12 is a block diagram that schematically illustrates a memory system in accordance with an exemplary embodiment of the present invention.
Figure 13 is a block diagram that schematically illustrates a memory system according to another exemplary embodiment of the present invention.
14 is a block diagram schematically illustrating a semiconductor drive according to an exemplary embodiment of the present invention.
15 is a block diagram schematically showing storage using the semiconductor drive shown in FIG.
16 is a block diagram schematically showing a storage server using the semiconductor drive shown in FIG.
Figures 17-19 are diagrams schematically illustrating systems according to exemplary embodiments of the present invention.
20 to 24 are diagrams schematically showing other systems to which a nonvolatile memory device according to exemplary embodiments of the present invention is applied.

본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention, and how to accomplish it, will be described with reference to the embodiments described in detail below with reference to the accompanying drawings. However, the present invention is not limited to the embodiments described herein but may be embodied in other forms. The embodiments are provided so that those skilled in the art can easily carry out the technical idea of the present invention to those skilled in the art.

도면들에 있어서, 본 발명의 실시 예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 또한, 명세서 전체에 걸쳐서 동일한 참조번호로 표시된 부분들은 동일한 구성요소를 나타낸다.In the drawings, embodiments of the present invention are not limited to the specific forms shown and are exaggerated for clarity. In addition, like reference numerals designate like elements throughout the specification.

본 명세서에서 ‘및/또는’이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한, ‘연결되는/결합되는’이란 표현은 다른 구성요소와 직접적으로 연결되거나 다른 구성요소를 통해 간접적으로 연결되는 것을 포함하는 의미로 사용된다. 본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 ‘포함한다’ 또는 ‘포함하는’으로 언급된 구성요소, 단계, 동작 및 소자는 하나 이상의 다른 구성요소, 단계, 동작, 소자 및 장치의 존재 또는 추가를 의미한다.The expression " and / or " is used herein to mean including at least one of the elements listed before and after. Also, the expression " coupled / connected " is used to mean either directly connected to another component or indirectly connected through another component. The singular forms herein include plural forms unless the context clearly dictates otherwise. Also, components, steps, operations and elements referred to in the specification as " comprises " or " comprising " mean the presence or addition of one or more other components, steps, operations, elements and devices.

이하, 예시적인 실시예들이 참조 도면들에 의거하여 상세히 설명될 것이다.Hereinafter, exemplary embodiments will be described in detail with reference to the drawings.

도 1은 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치를 개략적으로 보여주는 블록도이다.1 is a block diagram that schematically illustrates a flash memory device in accordance with an exemplary embodiment of the present invention.

도 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), 등과 같은 불 휘발성 메모리 장치들에도 적용될 것이다.1, the flash memory device is, for example, a NAND flash memory device. However, it will be appreciated that the invention is not limited to flash memory devices. For example, the present invention can be applied to a PRAM (Phase Change Random Access Memory), a MRAM (Magnetoresistive Random Access Memory), a Ferroelectric Random Access Memory (FRAM), a Resistance Random Access Memory: RRAM, Spin Transfer Torque Random Access Memory (STT-RAM), and the like.

플래시 메모리 장치는 행들(워드 라인들:WL)과 열들(비트 라인들:BL)로 배열된 메모리 셀들을 갖는 메모리 셀 어레이(100)를 포함한다. 각 메모리 셀은 1-비트 데이터 또는 M-비트(멀티-비트) 데이터(M은 2 또는 그 보다 큰 정수)를 저장한다. 각 메모리 셀이 1-비트 데이터를 저장하는 경우, 메모리 셀 어레이(100)의 각 행에 속한 메모리 셀들은 메모리 공간(memory space)을 구성할 것이다. 각 메모리 셀이 M-비트 데이터를 저장하는 경우, 메모리 셀 어레이(100)의 각 행에 속한 메모리 셀들은 복수의 페이지들에 각각 대응하는 메모리 공간들을 구성할 것이다. 각 메모리 셀은 플로팅 게이트 또는 전하 트랩층과 같은 전하 저장층을 갖는 메모리 셀 또는 가변 저항 소자를 갖는 메모리 셀로 구현될 수 있다. 메모리 셀 어레이(100)는 단층 어레이 구조(single-layer array structure)(또는, 2차원 어레이 구조라고 불림) 또는 다층 어레이 구조(multi-layer array structure)(또는, 수직형 또는 스택형 3차원 어레이 구조라고 불림)를 갖도록 구현될 것이다.The flash memory device includes a memory cell array 100 having memory cells arranged in rows (word lines: WL) and columns (bit lines: BL). Each memory cell stores 1-bit data or M-bit (multi-bit) data (M is an integer of 2 or greater). When each memory cell stores 1-bit data, the memory cells belonging to each row of the memory cell array 100 will constitute a memory space. When each memory cell stores M-bit data, the memory cells belonging to each row of the memory cell array 100 will constitute memory spaces corresponding to a plurality of pages, respectively. Each memory cell may be implemented as a memory cell having a charge storage layer, such as a floating gate or charge trap layer, or a memory cell having a variable resistive element. The memory cell array 100 may be a single-layer array structure (also referred to as a two-dimensional array structure) or a multi-layer array structure (or a vertical or stacked three- Quot;).

행 선택 회로(200)는 제어 로직(300)에 의해서 제어되며, 메모리 셀 어레이(100)의 행들에 대한 선택 및 구동 동작들을 수행하도록 구성된다. 제어 로직(300)은 플래시 메모리 장치의 동작을 전반적으로 제어하도록 구성된다. 페이지 버퍼 회로(400)는 제어 로직(300)에 의해서 제어되며, 동작 모드에 따라 감지 증폭기로서 또는 쓰기 드라이버로서 동작한다. 예를 들면, 읽기 동작 동안, 페이지 버퍼 회로(400)는 선택된 행의 메모리 셀들로부터 데이터를 감지하는 감지 증폭기로서 동작한다. 프로그램 동작 동안, 페이지 버퍼 회로(400)는 프로그램 데이터에 따라 선택된 행의 메모리 셀들을 구동하는 쓰기 드라이버로서 동작한다. 페이지 버퍼 회로(400)는 비트 라인들에 또는 비트 라인 쌍들에 각각 대응하는 페이지 버퍼들을 포함한다. 메모리 셀들 각각이 멀티-비트 데이터를 저장하는 경우, 페이지 버퍼 회로(400)의 각 페이지 버퍼는 2개 또는 그 보다 많은 래치들을 갖도록 구성될 것이다.The row select circuit 200 is controlled by the control logic 300 and is configured to perform select and drive operations on the rows of the memory cell array 100. [ The control logic 300 is configured to generally control the operation of the flash memory device. The page buffer circuit 400 is controlled by the control logic 300 and operates as a sense amplifier or as a write driver depending on the mode of operation. For example, during a read operation, the page buffer circuit 400 operates as a sense amplifier that senses data from the memory cells of the selected row. During a program operation, the page buffer circuit 400 operates as a write driver that drives memory cells of a selected row according to program data. The page buffer circuit 400 includes page buffers that correspond to bit lines or to bit line pairs, respectively. When each of the memory cells stores multi-bit data, each page buffer of the page buffer circuit 400 will be configured to have two or more latches.

계속해서 도 1을 참조하면, 열 선택 회로(500)는 제어 로직(300)에 의해서 제어되며, 읽기/프로그램 동작시 열들(또는 페이지 버퍼들)을 정해진 단위로 순차적으로 선택한다. 랜덤화 및 디랜덤화 회로(600)는 제어 로직(300)의 제어에 따라 입출력 인터페이스(700)를 통해 전달되는 데이터(즉, 프로그램될 데이터 또는 원본 데이터)를 랜덤화시키도록 구성된다. 랜덤화 및 디랜덤화 회로(600)는 제어 로직(300)의 제어에 따라 열 선택 회로(500)를 통해 전달되는 페이지 버퍼 회로(400)의 데이터(즉, 랜덤화된 데이터)를 디-랜덤화시키도록 구성된다. 본 발명의 예시적인 실시예에 따른 랜덤화 및 디-랜덤화 회로(600)는 풀-페이지 데이터뿐만 아니라 풀-페이지 데이터보다 양적으로 적은 랜덤 데이터(예를 들면, 스페어 영역의 데이터, 섹터 데이터, 섹터 데이터보다 크고 페이지 데이터보다 작은 데이터, 섹터 데이터보다 작은 데이터, 등)에 대한 랜덤화 및 디-랜덤화 동작들을 수행하도록 구성될 것이다. 이는 이후 상세히 설명될 것이다.1, the column select circuit 500 is controlled by the control logic 300 and sequentially selects the columns (or page buffers) in a predetermined unit during a read / program operation. The randomizing and derandomizing circuit 600 is configured to randomize data (i.e., data to be programmed or original data) to be transferred through the input / output interface 700 under the control of the control logic 300. The randomizing and derandomizing circuit 600 supplies the data (i.e., randomized data) of the page buffer circuit 400, which is transmitted through the column selecting circuit 500 under the control of the control logic 300, . The randomizing and de-randomizing circuit 600 according to the exemplary embodiment of the present invention is capable of storing not only full-page data but also random data (e.g., spare area data, sector data, Data smaller than the page data, data smaller than the sector data, etc.), for example, to perform randomization and de-randomization operations. This will be described in detail later.

메모리 셀은 전하 저장 수단에 저장되는 전하들의 양에 따라 2N개의 문턱 전압 산포들(N은 메모리 셀에 저장된 데이터 비트들의 수를 나타냄) 중 어느 하나를 갖는다. 메모리 셀의 문턱 전압(또는, 문턱 전압 산포)는 인접한 메모리 셀들 간에 생기는 커플링 (이는 워드 라인 커플링이라 불림)으로 인해 변화될 것이다. 본 발명의 데이터 랜덤화에 의하면, 워드 라인 커플링으로 인해 생기는 메모리 셀들의 문턱 전압들의 변화를 줄이는 것이 가능하다. 다시 말해서, 메모리 셀들의 상태들이 균일하게 분포되기 때문에, 메모리 셀들 간에 생기는 워드 라인 커플링의 정도가 데이터 랜덤화 이전과 비교하여 볼 때 상대적으로 완화될 것이다. 즉, 메모리 셀들의 문턱 전압들의 변화가 억제될 것이다. 이는 읽기 마진의 향상 즉, 신뢰성의 향상을 의미한다.The memory cell has either of 2 N threshold voltage distributions (N representing the number of data bits stored in the memory cell) depending on the amount of charges stored in the charge storage means. The threshold voltage (or threshold voltage distribution) of a memory cell will change due to the coupling between adjacent memory cells, which is referred to as word line coupling. The data randomization of the present invention makes it possible to reduce variations in the threshold voltages of memory cells caused by word line coupling. In other words, since the states of the memory cells are uniformly distributed, the degree of word line coupling between the memory cells will be relatively relaxed as compared to before data randomization. That is, a change in the threshold voltages of the memory cells will be suppressed. This means improvement of reading margin, that is, improvement of reliability.

몇몇 실시예들에 있어서, 랜덤화 및 디-랜덤화 동작은 선택적으로 행해질 수 있다. 예를 들면, 특정 데이터에 대한 액세스 또는 특정 영역에 대한 액세스가 요청될 때, 랜덤화 및 디-랜덤화 회로(600)는 랜덤화 및 디-랜덤화 동작을 수행하지 않도록 구성될 수 있다. 랜덤화 및 디-랜덤화 회로(600)는 랜덤화 동작의 수행없이 입출력 인터페이스(700)를 통해 입력되는 데이터를 페이지 버퍼 회로(400)로 전달하도록 구성될 수 있다. 이후, 페이지 버퍼 회로(400)에 로드된 데이터에 대한 랜덤화는 제어 로직(300)의 제어하에 랜덤화 및 디-랜덤화 회로(600)를 통해 행해질 수 있다.In some embodiments, randomization and de-randomization operations may be performed selectively. For example, when access to specific data or access to a particular area is requested, the randomization and de-randomization circuitry 600 may be configured not to perform randomization and de-randomization operations. The randomizing and de-randomizing circuit 600 may be configured to transmit the data input through the input / output interface 700 to the page buffer circuit 400 without performing the randomizing operation. Randomization of the data loaded into the page buffer circuit 400 may then be performed via the randomization and de-randomization circuit 600 under the control of the control logic 300. [

도 2는 올 비트 라인 메모리 구조 또는 오드-이븐 메모리 구조를 위해 도 1에 도시된 메모리 셀 어레이를 메모리 블록들로 구성하는 예를 보여주는 도면이다. 메모리 셀 어레이(100)의 예시적인 구조들이 설명될 것이다. 일례로서, 메모리 셀 어레이(100)가 1024개의 메모리 블록들로 나눠진 낸드 플래시 메모리 장치가 설명될 것이다. 각 메모리 블록에 저장된 데이터는 동시에 소거되거나 메모리 서브 블록 단위로 소거될 수 있다. 일 실시예에 있어서, 메모리 블록 또는 메모리 서브 블록은 동시에 소거되는 저장 소자들의 최소 단위이다. 각 메모리 블록에는, 예를 들면, 비트 라인들(예를 들면, 1KB의 비트 라인들)에 각각 대응하는 복수의 열들이 있다. 올 비트 라인 (all bit line: ABL) 구조라 불리는 일 실시예에 있어서, 메모리 블록의 모든 비트 라인들은 읽기 및 프로그램 동작들 동안 동시에 선택될 수 있다. 행 선택 회로(200)에 의해서 선택된 워드 라인에 속하며 모든 비트 라인들과 연결된 저장 소자들은 동시에 프로그램될 수 있다.FIG. 2 is a view showing an example of configuring the memory cell array shown in FIG. 1 as memory blocks for an all-bit line memory structure or an odd-even memory structure. Exemplary structures of the memory cell array 100 will now be described. As an example, a NAND flash memory device in which the memory cell array 100 is divided into 1024 memory blocks will be described. The data stored in each memory block can be erased simultaneously or erased in units of memory sub-blocks. In one embodiment, the memory block or memory sub-block is the smallest unit of storage elements that are simultaneously erased. Each memory block has a plurality of columns each corresponding to, for example, bit lines (e.g., 1 KB of bit lines). In one embodiment, referred to as an all bit line (ABL) structure, all bit lines of a memory block may be selected simultaneously during read and program operations. The storage elements belonging to the word line selected by the row selection circuit 200 and connected to all the bit lines can be programmed simultaneously.

예시적인 실시예에 있어서, 동일한 열에 속한 복수의 저장 소자들은 낸드 스트링을 구성하도록 직렬로 연결된다. 낸드 스트링의 일 단자는 스트링 선택 라인(SSL)에 의해서 제어되는 선택 트랜지스터를 통해 대응하는 비트 라인에 연결되고, 다른 단자는 접지 선택 라인(GSL)에 의해서 제어되는 선택 트랜지스터를 통해 공통 소오스 라인(CSL)에 연결된다.In an exemplary embodiment, a plurality of storage elements in the same column are serially connected to form a NAND string. One terminal of the NAND string is connected to the corresponding bit line through the selection transistor controlled by the string selection line SSL and the other terminal is connected to the common source line CSL through the selection transistor controlled by the ground selection line GSL. .

오드-이븐 구조(odd-even architecture)라 불리는 다른 예시적인 실시예에 있어서, 비트 라인들은 이븐 비트 라인들(BLe)과 오드 비트 라인들(BLo)로 구분된다. 오드/이븐 비트 라인 구조에 있어서, 선택된 워드 라인에 속하며 오드 비트 라인들과 연결된 저장 소자들이 제 1 시간에 프로그램되는 반면에, 공통 워드 라인에 속하면 이븐 비트 라인들과 연결된 저장 소자들은 제 2 시간에 프로그램된다.In another exemplary embodiment, referred to as an odd-even architecture, the bit lines are divided into even bit lines BLe and odd bit lines BLo. In the odd / even bit line structure, the storage elements belonging to the selected word line and connected to the odd bit lines are programmed at the first time, while the storage elements connected to the even bit lines belong to the common word line, Lt; / RTI >

도 3은 본 발명의 일 실시예에 따른 도 1에 도시된 랜덤화 및 디-랜덤화 회로를 개략적으로 보여주는 블록도이다.3 is a block diagram that schematically illustrates the randomization and de-randomization circuitry shown in FIG. 1 in accordance with one embodiment of the present invention.

도 3을 참조하면, 본 발명의 일 실시예에 따른 랜덤화 및 디-랜덤화 회로(600)는 클록 발생기(610), 선택기(620), 유사-랜덤 시퀀스 발생기(Pseudo-Random Sequence generator)(630), 프리-런 검출기(free-run detector)(640), 그리고 믹서(650)를 포함할 것이다. 여기서, 클록 발생기(610), 선택기(620), 유사-랜덤 시퀀스 발생기(630), 그리고 프리-런 검출기(630)는 믹서(650)로 제공되는 랜덤 시퀀스 데이터(RSD)를 순차적으로 발생하는 랜덤 시퀀스 발생 블록(660)을 구성할 것이다. 순차적으로 생성되는 랜덤 시퀀스 데이터의 그룹은 랜덤 시퀀스(RS)를 구성할 것이다.3, a randomizing and de-randomizing circuit 600 according to an embodiment of the present invention includes a clock generator 610, a selector 620, a pseudo-random sequence generator 630, a free-run detector 640, and a mixer 650. In this case, the clock generator 610, the selector 620, the pseudo-random sequence generator 630, and the pre-run detector 630 may generate the random sequence data RSD sequentially provided to the mixer 650 A sequence generation block 660 will be constructed. The group of sequentially generated random sequence data will constitute a random sequence (RS).

클록 발생기(610)는 클록 신호(CLK)를 발생하도록 구성될 것이다. 선택기(620)는 선택 신호로서 프리-런 검출기(640)로부터 출력되는 프리-런 신호(FRS)에 응답하여 입력 신호들(CLK, RE/WE) 중 하나를 선택한다. 예를 들면, 프리-런 신호(FRS)가 활성화될 때, 선택기(620)는 클록 발생기(610)로부터의 클록 신호(CLK)를 출력 신호로서 선택할 것이다. 프리-런 신호(FRS)가 비활성화될 때, 선택기(620)는 읽기/쓰기 동작의 데이터 입력/출력시 토글되는 읽기/쓰기 인에이블 신호(RE/WE)를 출력 신호로서 선택할 것이다. 선택기(620)에 의해서 선택된 신호(CLK 또는 RE/WE)는 랜덤 시퀀스 클록 신호(CLK_RS)로서 유사-랜덤 시퀀스 발생기(630)에 제공될 것이다. 유사-랜덤 시퀀스 발생기(630)는 랜덤 시퀀스 클록 신호(CLK_RS)에 응답하여 동작하며, 소정 시드를 이용하여 랜덤 시퀀스 데이터(RSD)를 순차적으로 발생한다. 랜덤 시퀀스(RS)는, 예를 들면, 일련의 데이터 비트들로 구성될 것이다. 랜덤 시퀀스(RS)의 각 데이터 비트는 랜덤 시퀀스 데이터로서 믹서(650)로 제공될 것이다. 다른 예로서, 랜덤 시퀀스(RS)는 일련의 데이터 비트 그룹들로 구성되며, 각 데이터 비트 그룹은 2 또는 그 보다 많은 데이터 비트들로 구성될 수 있다.Clock generator 610 may be configured to generate a clock signal CLK. The selector 620 selects one of the input signals CLK, RE / WE in response to the pre-run signal FRS output from the pre-run detector 640 as a selection signal. For example, when the pre-run signal FRS is activated, the selector 620 will select the clock signal CLK from the clock generator 610 as the output signal. When the pre-run signal FRS is deactivated, the selector 620 will select the read / write enable signal RE / WE to be toggled upon data input / output of the read / write operation as the output signal. The signal (CLK or RE / WE) selected by the selector 620 will be provided to the pseudo-random sequence generator 630 as the random sequence clock signal CLK_RS. The pseudo-random sequence generator 630 operates in response to the random sequence clock signal CLK_RS and sequentially generates random sequence data RSD using a predetermined seed. The random sequence RS may, for example, consist of a series of data bits. Each data bit of the random sequence RS will be provided to the mixer 650 as random sequence data. As another example, the random sequence RS may be comprised of a series of data bit groups, where each data bit group may be composed of two or more data bits.

여기서, 소정 시드는, 예를 들면, 페이지 어드레스에 의거하여 결정될 수 있다. 다시 말해서, 시드는 페이지 단위로 결정될 것이다. 하지만, 시드가 블록 단위로 결정될 수 있음은 잘 이해될 것이다. 즉, 시드는 각 페이지에 할당된 고유한 값을 가질 것이다. 또는, 페이지들에 각각 대응하는 상수들이 시드로서 각각 사용될 수 있다. 또는, 소정 시드는 페이지의 섹터 단위로 결정될 수 있다. 하지만, 시드 결정 방식이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다. 임의의 페이지에 대한 액세스가 요청될 때, 시드는 페이지 어드레스를 기준으로 유사-랜덤 시퀀스 발생기(630)에 제공될 것이다. 이는 임의의 페이지에 대한 액세스가 요청될 때 일정한 값을 갖는 시드가 유사-랜덤 시퀀스 발생기(630)로 제공됨을 의미한다. 이하, 믹서(650)에 제공되는 첫 번째 데이터를 실질적으로 랜덤화시키기 위한 랜덤 시퀀스 데이터(RSD)를 '초기 랜덤 시퀀스 데이터'(initial RSD)라 칭한다. 그리고, 믹서(650)에 제공되는 첫 번째 데이터의 실질적인 랜덤화에 필요한 또는 초기 랜덤 시퀀스 데이터를 생성하는 데 필요한 시드를 '초기 시드'(initial seed)라 칭한다.Here, the predetermined seed may be determined based on, for example, a page address. In other words, the seed will be determined on a page-by-page basis. However, it will be appreciated that the seed may be determined on a block-by-block basis. That is, the seed will have a unique value assigned to each page. Alternatively, constants corresponding respectively to pages may be used as seeds, respectively. Alternatively, the predetermined seed may be determined on a sector-by-sector basis of a page. However, it will be appreciated that the seed determination scheme is not limited to that disclosed herein. When access to any page is requested, the seed will be provided to the pseudo-random sequence generator 630 based on the page address. This means that a seed having a constant value is provided to the pseudo-random sequence generator 630 when access to any page is requested. Hereinafter, the random sequence data RSD for substantially randomizing the first data provided to the mixer 650 will be referred to as 'initial random sequence data' (initial RSD). The seed necessary for the actual randomization of the first data provided to the mixer 650 or for generating the initial random sequence data is called an " initial seed ".

예시적인 실시예에 있어서, 유사-랜덤 시퀀스 발생기(630)는 하나의 쉬프트 레지스터와 하나 또는 그 보다 많은 XOR 로직 게이트들로 구성된 선형 피드백 쉬프트 레지스터(Linear Feedback Shift Register: LFSR)로 구현될 수 있다. 하지만, 유사-랜덤 시퀀스 발생기(630)가 PN(Pseudo-random Number) 시퀀스 발생기, CRC(Cyclic Redundancy Code) 발생기, 또는 그와 같은 것으로 구현될 수 있음은 잘 이해될 것이다.In an exemplary embodiment, the pseudo-random sequence generator 630 may be implemented with a linear feedback shift register (LFSR) comprised of one shift register and one or more XOR logic gates. However, it will be appreciated that pseudo-random sequence generator 630 may be implemented as a pseudo-random number (PN) sequence generator, a cyclic redundancy code (CRC) generator, or the like.

계속해서 도 3을 참조하면, 프리-런 검출기(640)는 열 오프셋 값에 의거하여 프리-런 신호(free-run signal)(FRS)를 발생한다. 예시적인 실시예에 있어서, 열 오프셋 값은 액세스 요청시 제공되는 열 어드레스의 값일 것이다. 열 오프셋 값은 요청된 액세스가 풀-페이지 데이터와 관련된 것인 지 랜덤 데이터와 관련된 것인 지의 여부에 따라 다를 것이다. 예를 들면, 풀-페이지 데이터에 대한 읽기/쓰기 동작이 요구될 때, 열 오프셋 값은 '0'일 것이다. 랜덤 데이터에 대한 읽기/쓰기 동작이 요구될 때, 열 오프셋 값은 '0'보다 클 것이다. 본 발명의 경우, 액세스 요청에 따라 데이터가 읽혀질 위치 즉, 액세스 포인트는 열 어드레스를 통해 다양하게 결정될 것이다. 예를 들면, 페이지 데이터의 첫 번째 액세스 포인트는 '0'의 값을 갖는 열 어드레스에 의해서 결정되고, 페이지 데이터의 나머지 액세스 포인트들은 '0'보다 큰 값을 갖는 열 어드레스에 의해서 결정될 것이다. 여기서, 데이터가 읽혀질 위치는 페이지 버퍼 회로(400)의 열 위치 또는 하나의 페이지의 열 위치를 포함할 것이다. 마찬가지로, 액세스 요청에 따라 데이터가 저장될 위치 즉, 액세스 포인트는 열 어드레스를 통해 다양하게 결정될 것이다. 예를 들면, 페이지 데이터의 첫 번째 액세스 포인트는 '0'의 값을 갖는 열 어드레스에 의해서 결정되고, 페이지 데이터의 나머지 액세스 포인트들은 '0'보다 큰 값을 갖는 열 어드레스에 의해서 결정될 것이다. 열 오프셋 값은 또한 '오프셋 어드레스'라 불린다.3, the pre-run detector 640 generates a free-run signal (FRS) based on the column offset value. In an exemplary embodiment, the column offset value will be the value of the column address provided in the access request. The column offset value will depend on whether the requested access is associated with full-page data or not with random data. For example, when a read / write operation to full-page data is required, the column offset value will be '0'. When a read / write operation for random data is required, the column offset value will be larger than '0'. In the case of the present invention, the location at which data will be read according to an access request, i.e., the access point, will be variously determined through the column address. For example, the first access point of the page data may be determined by a column address having a value of '0', and the remaining access points of the page data may be determined by a column address having a value greater than '0'. Here, the position at which the data is to be read may include the column position of the page buffer circuit 400 or the column position of one page. Likewise, the location at which data will be stored in response to an access request, i. E. The access point, will be variously determined via the column address. For example, the first access point of the page data may be determined by a column address having a value of '0', and the remaining access points of the page data may be determined by a column address having a value greater than '0'. The column offset value is also referred to as an 'offset address'.

프리-런 검출기(640)는 카운터(641)와 비교기(642)를 포함할 것이다. 카운터(641)는, 예를 들면, 클록 발생기(610)에 의해서 생성되는 클록 신호(CLK)에 동기되어 동작할 것이다. 비교기(642)는 카운터(641)의 카운트 값과 열 오프셋 값을 비교하고 비교 결과에 따라 프리-런 신호(FRS)를 발생할 것이다. 예를 들면, 프리-런 신호(FRS)는 카운터(641)의 초기값과 열 오프셋 값이 서로 일치할 때 비활성화될 것이다. 프리-런 신호(FRS)는 카운터(641)의 초기값과 열 오프셋 값이 서로 다를 때 활성화될 것이다. 후자의 경우, 비교기(642)는 카운터(641)의 카운트 값이 열 오프셋 값에 도달할 때 프리-런 신호(FRS)를 비활성화시킬 것이다. 이때, 카운터(641)는 프리-런 신호(FRS)의 비활성화에 따라 동작하지 않을 것이다.The pre-run detector 640 will include a counter 641 and a comparator 642. The counter 641 will operate in synchronization with, for example, the clock signal CLK generated by the clock generator 610. The comparator 642 compares the count value of the counter 641 with the column offset value and generates the pre-run signal FRS according to the comparison result. For example, the pre-run signal FRS will be inactive when the initial value of the counter 641 and the column offset value match each other. The pre-run signal FRS will be activated when the initial value of the counter 641 and the column offset value are different. In the latter case, the comparator 642 will deactivate the pre-run signal FRS when the count value of the counter 641 reaches the column offset value. At this time, the counter 641 will not operate according to the deactivation of the pre-run signal FRS.

카운터(641)는 읽기/쓰기 동작시 열 오프셋 값이 '0'일 때 동작하지 않는다. 즉, '0'의 열 오프셋 값이 카운터(641)의 초기값('0')과 일치할 때, 카운터(640)의 동작은 수행되지 않을 것이다. 이때, 프리-런 검출기(640)의 비교기(642)는 프리-런 신호(FRS)를 비활성화시킨다. 프리-런 신호(FRS)의 비활성화는 요청된 액세스가 풀-페이지 데이터와 관련된 것임을 의미한다. 이 경우, 데이터 입력/출력시 토글되는 읽기/쓰기 인에이블 신호(RE/WE)는 랜덤 시퀀스 클록 신호(CLK_RS)로서 선택기(620)를 통해 유사-랜덤 시퀀스 발생기(630)로 제공될 것이다. 읽기/쓰기 인에이블 신호(RE/WE)는 읽기/쓰기 요청시 믹서(650)로 데이터를 제공하기 위해서 토글될 것이다.The counter 641 does not operate when the column offset value is '0' in a read / write operation. That is, when the column offset value of '0' coincides with the initial value ('0') of the counter 641, the operation of the counter 640 will not be performed. At this time, the comparator 642 of the pre-run detector 640 deactivates the pre-run signal FRS. Deactivation of the pre-run signal (FRS) implies that the requested access is associated with full-page data. In this case, the read / write enable signal RE / WE, which is toggled upon data input / output, will be provided to the pseudo-random sequence generator 630 via the selector 620 as the random sequence clock signal CLK_RS. The read / write enable signal RE / WE will be toggled to provide data to the mixer 650 upon a read / write request.

카운터(641)는 읽기/쓰기 동작시 열 오프셋 값이 '0'가 아닐 때 카운트 동작을 수행할 것이다. 즉, 열 오프셋 값이 카운터(641)의 초기값과 일치하지 않을 때, 카운터(640)는 클록 신호(CLK)에 동기되어 카운트 동작을 수행할 것이다. 이때, 프리-런 검출기(640)의 비교기(642)는 프리-런 신호(FRS)를 활성화시킨다. 프리-런 신호(FRS)의 활성화는 요청된 액세스가 랜덤 데이터와 관련된 것임을 의미한다. 이 경우, 클록 발생기(610)에 의해서 생성된 클록 신호(CLK)는 랜덤 시퀀스 클록 신호(CLK_RS)로서 선택기(620)를 통해 유사-랜덤 시퀀스 발생기(630)로 제공될 것이다. 클록 발생기(610)에 의해서 생성된 클록 신호(CLK)가 랜덤 시퀀스 클록 신호(CLK_RS)로서 선택기(620)를 통해 유사-랜덤 시퀀스 발생기(630)로 제공되는 동안, 믹서(650)에는 데이터가 제공되지 않을 것이다. 비록 믹서(650)에는 데이터가 제공되지 않더라도, 유사-랜덤 시퀀스 발생기(630)는 클록 발생기(610)로부터 제공되는 클록 신호(CLK)에 동기되어 랜덤 시퀀스 데이터를 순차적으로 발생할 것이다. 첫 번째 데이터의 실질적인 랜덤화를 위한 초기 랜덤 시퀀스 데이터를 생성하기 위한 동작을 프리-런 동작이라 칭한다. 프리-런 검출기(640)는 카운트 값이 열 오프셋 값에 도달할 때 프리-런 신호(FRS)를 비활성화시킨다. 프리-런 신호(FRS)의 상태가 활성화 상태에서 비활성화 상태로 천이할 때, 데이터 입력/출력시 읽기/쓰기 인에이블 신호(RE/WE)는 랜덤 시퀀스 클록 신호(CLK_RS)로서 선택기(620)를 통해 유사-랜덤 시퀀스 발생기(630)로 제공될 것이다. 이때, 카운터의 동작은 프리-런 신호(FRS)의 비활성화에 따라 정지될 것이다.The counter 641 will perform a count operation when the column offset value is not '0' in a read / write operation. That is, when the column offset value does not match the initial value of the counter 641, the counter 640 will perform the counting operation in synchronization with the clock signal CLK. At this time, the comparator 642 of the pre-run detector 640 activates the pre-run signal FRS. Activation of the pre-run signal (FRS) implies that the requested access is associated with random data. In this case, the clock signal CLK generated by the clock generator 610 will be provided to the pseudo-random sequence generator 630 via the selector 620 as the random sequence clock signal CLK_RS. While the clock signal CLK generated by the clock generator 610 is provided to the pseudo-random sequence generator 630 via the selector 620 as the random sequence clock signal CLK_RS, the mixer 650 is provided with data . The pseudo-random sequence generator 630 will sequentially generate the random sequence data in synchronization with the clock signal CLK provided from the clock generator 610, even though no data is provided to the mixer 650. [ An operation for generating initial random sequence data for substantial randomization of the first data is referred to as a pre-run operation. The pre-run detector 640 deactivates the pre-run signal FRS when the count value reaches the column offset value. When the state of the pre-run signal FRS transitions from the active state to the inactive state, the read / write enable signal RE / WE at the data input / output outputs the random sequence clock signal CLK_RS to the selector 620 Random sequence generator 630 through the pseudo-random sequence generator 630. At this time, the operation of the counter will stop according to the deactivation of the pre-run signal FRS.

믹서(650)는 랜덤 시퀀스 데이터(RSD)와 데이터(또는, 랜덤 시퀀스와 믹서(650)에 입력된 데이터)를 논리적으로 조합하고, 랜덤화된/디-랜덤화된 데이터로서 조합된 데이터를 출력할 것이다. 예를 들면, 읽기 동작시, 믹서(650)는 열 선택 회로(500)를 통해 제공되는 랜덤화된 데이터와 랜덤 시퀀스 데이터(RSD)를 논리적으로 조합하고, 디-랜덤화된 데이터로서 조합된 데이터를 입출력 인터페이스(700)로 출력할 것이다. 쓰기 동작시, 믹서(650)는 입출력 인터페이스(700)를 통해 제공되는 데이터와 랜덤 시퀀스 데이터(RSD)를 논리적으로 조합하고, 랜덤화된 데이터로서 조합된 데이터를 열 선택 회로(500)로 출력할 것이다. 믹서(650)로 바이트 단위의 데이터가 제공되는 경우, 랜덤 시퀀스 데이터 비트는 읽혀진/프로그램될 데이터 비트들과 각각 논리적으로 조합될 것이다.The mixer 650 logically combines the random sequence data RSD and the data (or the data input to the random sequence and the mixer 650), and outputs the combined data as randomized / de-randomized data something to do. For example, in a read operation, the mixer 650 logically combines the randomized data and the random sequence data RSD provided through the column selection circuit 500, and outputs the combined data as the de-randomized data To the input / output interface 700. In the write operation, the mixer 650 logically combines the data provided through the input / output interface 700 with the random sequence data (RSD), and outputs the combined data as the randomized data to the column selection circuit 500 will be. When data is provided in byte units by the mixer 650, the random sequence data bits will be logically combined with the data bits to be read / programmed, respectively.

여기서, 프리-런 신호(FRS)는 요청된 액세스가 랜덤 데이터 액세스인지의 여부에 따라 액티브-하이 레벨과 액티브-로우 레벨 중 하나를 갖는다.Here, the pre-run signal FRS has one of an active-high level and an active-low level depending on whether the requested access is a random data access.

예시적인 실시예에 있어서, 믹서(650)는, 예를 들면, XOR 로직으로 구성될 것이다. 하지만, 믹서(650)의 구성이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다. 또한, 프리-런 검출기(640)의 구성이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다.In an exemplary embodiment, the mixer 650 may comprise, for example, XOR logic. However, it will be appreciated that the configuration of the mixer 650 is not limited to that disclosed herein. It will also be appreciated that the configuration of the pre-run detector 640 is not limited to what is disclosed herein.

도 4는 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치의 읽기 동작을 개략적으로 설명하기 위한 타이밍도이다. 이하, 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치의 읽기 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.4 is a timing diagram schematically illustrating a read operation of a flash memory device according to an exemplary embodiment of the present invention. Hereinafter, a read operation of a flash memory device according to an exemplary embodiment of the present invention will be described in detail with reference to the drawings.

읽기 동작은 일련의 명령들 및 어드레스의 입력에 따라 수행될 것이다. 예를 들면, 도 4에 도시된 바와 같이, 제 1 명령(00h), 어드레스(C1C2R1R2R3), 그리고 제 2 명령(30h)이 플래시 메모리 장치로 순차적으로 제공될 것이다. 제공된 어드레스(C1C2R1R2R3)는 열 어드레스(C1C2)와 행 어드레스(R1R2R3)를 포함할 것이다. 열 어드레스(C1C2)의 값인 열 오프셋 값이 '0'이 아니라고 가정하자. 열 오프셋 값이 '0'가 아니기 때문에, 초기 랜덤 시퀀스 데이터를 생성하는 데 필요한 초기 시드는 행 어드레스(R1R2R3)에 따라 결정되는 시드(또는, 행 어드레스(R1R2R3)에 할당된 시드)를 이용하여 랜덤 시퀀스 발생 블록(650)의 프리-런 동작을 통해 생성될 것이다. 좀 더 구체적으로 설명하면, 다음과 같다. 하지만 한 페이지보다 작은 단위로 랜덤화를 적용하는 경우는 열 어드레스를 참조할 수도 있다.The read operation will be performed according to the input of a series of instructions and addresses. For example, as shown in Fig. 4, the first instruction 00h, the address C1C2R1R2R3, and the second instruction 30h will be sequentially provided to the flash memory device. The provided address C1C2R1R2R3 will include column address C1C2 and row address R1R2R3. Assume that the column offset value that is the value of the column address C1C2 is not '0'. Since the column offset value is not '0', the initial seed necessary for generating the initial random sequence data is a random sequence (ie, a seed assigned to the row address R1R2R3) determined according to the row address R1R2R3 Run operation of the generation block 650. [ More specifically, it is as follows. However, when the randomization is applied in units smaller than one page, the column address may be referred to.

제 2 명령(30h)이 플래시 메모리 장치에 제공되면, tR 시간 동안, 페이지 버퍼 회로(400)는 제어 로직(300)의 제어에 응답하여 메모리 셀 어레이(100)로부터 데이터를 읽는다. 도 4에 도시된 바와 같이, 레지/비지 신호(

Figure 112011000226310-pat00001
)는 tR 시간 동안 로우 레벨로 유지될 것이다. 이와 동시에, 프리-런 검출기(640)는 열 오프셋 값이 '0'가 아니기 때문에 프리-런 신호(FRS)를 활성화시킨다. 즉, 열 오프셋 값이 카운터(641)의 초기값과 일치하지 않을 때, 프리-런 검출기(640)는 프리-런 신호(FRS)를 활성화시킨다. 이는 선택기(620)를 통해 클록 발생기(610)에 의해서 생성된 클록 신호(CLK)가 선택됨을 의미한다. 클록 신호(CLK)는 랜덤 시퀀스 클록 신호(CLK_RS)로서 유사-랜덤 시퀀스 발생기(630)로 제공될 것이다. 유사-랜덤 시퀀스 발생기(630)는 행 어드레스(R1R2R3)에 따라 결정되는 시드를 이용하여 랜덤 시퀀스 데이터를 생성할 것이다. 즉, 초기 랜덤 시퀀스 데이터(또는, 초기 시드)를 생성하기 위한 프리-런 동작이 수행될 것이다. 카운터(641)는 제 2 명령(30h)의 입력시 클록 신호(CLK)에 따라 카운트하기 시작할 것이다.When the second instruction 30h is provided to the flash memory device, the page buffer circuit 400 reads data from the memory cell array 100 in response to the control of the control logic 300, for tR time. As shown in Fig. 4, the register / busy signal
Figure 112011000226310-pat00001
) Will remain at the low level for tR time. At the same time, the pre-run detector 640 activates the pre-run signal FRS since the column offset value is not '0'. That is, when the column offset value does not match the initial value of the counter 641, the pre-run detector 640 activates the pre-run signal FRS. This means that the clock signal CLK generated by the clock generator 610 via the selector 620 is selected. The clock signal CLK will be provided to the pseudo-random sequence generator 630 as the random sequence clock signal CLK_RS. The pseudo-random sequence generator 630 will generate random sequence data using a seed determined according to the row address R1R2R3. That is, a pre-run operation for generating initial random sequence data (or initial seed) will be performed. The counter 641 will start counting according to the clock signal CLK upon input of the second instruction 30h.

카운터(641)의 카운트 값이 열 오프셋 값에 도달할 때, 프리-런 검출기(640)는 프리-런 신호(FRS)를 비활성화시킨다. 프리-런 신호(FRS)가 비활성화됨에 따라, 유사-랜덤 시퀀스 발생기(630)로의 클록 신호 공급은 중단될 것이다. 즉, 프리-런 동작이 중지될 것이다. 이때, 유사-랜덤 시퀀스 발생기(630)는 첫 번째 데이터의 랜덤화에 필요한 초기 시드로 설정될 것이다. tR 시간이 경과한 후, 페이지 버퍼 회로(400)의 데이터(즉, 랜덤화된 데이터)는 읽기/쓰기 인에이블 신호(RE/WE)의 토글에 따라 열 선택 회로(500)를 통해 랜덤화 및 디-랜덤화 회로(600)로 제공될 것이다. 이때, 유사-랜덤 시퀀스 발생기(630)는 읽기/쓰기 인에이블 신호(RE/WE)의 토글에 동기되어 랜덤 시퀀스 데이터(RSD)를 순차적으로 생성할 것이다. 믹서(650)는 초기 랜덤 시퀀스 데이터(RSD)와 액세스 포인터로서 열 어드레스(C1C2)에 의해서 선택된 데이터를 논리적으로 조합하며, 조합된 데이터는 디-랜덤화된 데이터로서 입출력 인터페이스(700)를 통해 외부로 출력될 것이다. 디-랜덤화 동작은 액세스 요청된 데이터가 모두 출력될 때까지 행해질 것이다.When the count value of the counter 641 reaches the column offset value, the pre-run detector 640 deactivates the pre-run signal FRS. As the pre-run signal (FRS) is deactivated, the supply of the clock signal to the pseudo-random sequence generator 630 will be stopped. That is, the pre-run operation will be stopped. At this time, the pseudo-random sequence generator 630 will be set to the initial seed necessary for randomizing the first data. After the tR time has elapsed, the data (i.e., the randomized data) of the page buffer circuit 400 is randomized through the column selection circuit 500 according to the toggle of the read / write enable signal RE / To the de-randomization circuit 600. At this time, the pseudo-random sequence generator 630 will sequentially generate the random sequence data RSD in synchronization with the toggle of the read / write enable signal RE / WE. The mixer 650 logically combines the initial random sequence data RSD with the data selected by the column address C1C2 as an access pointer and the combined data is de-randomized through the input / . The de-randomization operation will be performed until all of the access-requested data is output.

페이지 버퍼 회로(400)에 저장된 데이터는 일련의 명령들과 어드레스를 이용하여 추가적으로 외부로 제공될 수 있다. 이러한 경우, 도 4에 도시된 바와 같이, 레지/비지 신호(

Figure 112011000226310-pat00002
)는 tR 시간 동안 하이 레벨로 유지될 것이다. 예를 들면, 제 1 명령(05h), 어드레스(C1C2), 그리고 제 2 명령(E0h)이 플래시 메모리 장치로 순차적으로 제공될 것이다. 이때, 제공된 어드레스(C1C2)는 단지 열 어드레스(C1C2)만을 포함할 것이다. 열 어드레스(C1C2)의 값인 열 오프셋 값이 '0'이 아니라고 가정하자. 열 오프셋 값이 '0'가 아니기 때문에, 초기 랜덤 시퀀스 데이터를 생성하는 데 필요한 초기 시드는 이전에 입력된 행 어드레스(R1R2R3)에 따라 결정되는 시드를 이용하여 랜덤 시퀀스 발생 블록(650)의 프리-런 동작을 통해 생성될 것이다. 프리-런 동작을 통해 초기 랜덤 시퀀스 데이터(또는, 초기 시드)를 생성하는 동작과 디-랜덤화 동작은 앞서 설명된 것과 실질적으로 동일하며, 그것에 대한 설명은 그러므로 생략될 것이다.The data stored in the page buffer circuit 400 may be additionally externally provided using a series of instructions and addresses. In this case, as shown in Fig. 4, the register / busy signal
Figure 112011000226310-pat00002
) Will remain at the high level for tR time. For example, the first instruction 05h, the address C1C2, and the second instruction E0h will be sequentially provided to the flash memory device. At this time, the provided address C1C2 will contain only the column address C1C2. Assume that the column offset value that is the value of the column address C1C2 is not '0'. Since the column offset value is not " 0 ", the initial seed necessary for generating the initial random sequence data is a pre-run of the random sequence generating block 650 using the seed determined according to the previously input row address R1R2R3 Operation. The operation of generating the initial random sequence data (or the initial seed) through the pre-run operation and the de-randomizing operation are substantially the same as those described above, and the description thereof will be omitted.

도 4에 도시된 바와 같이, 제 2 명령(E0h)이 입력되고 초기 시드를 생성하는 데 필요한 소정 시간이 경과한 후, 데이터가 출력될 것이다. 초기 시드를 생성하는 데 걸리는 시간(예를 들면, 13us)은 tR 시간(예를 들면, 30us)보다 짧다.As shown in Fig. 4, after the second instruction E0h is input and the predetermined time required to generate the initial seed has elapsed, the data will be output. The time it takes to generate the initial seed (e.g., 13us) is shorter than the tR time (e.g., 30us).

상술한 바와 같이, 비록 랜덤 데이터에 대한 액세스(또는, 랜덤 데이터 액세스)가 요청되더라도 오프셋 값(또는, 오프셋 어드레스)를 이용하여 초기 시드(또는, 초기 랜덤 시퀀스 데이터)를 생성함으로써 랜덤화된 데이터를 디-랜덤화시키는 것이 가능하다.As described above, even if access to random data (or random data access) is requested, random data is generated by generating an initial seed (or initial random sequence data) using an offset value (or an offset address) It is possible to de-randomize.

도 5는 본 발명의 다른 예시적인 실시예에 따른 플래시 메모리 장치의 읽기 동작을 개략적으로 설명하기 위한 타이밍도이다. 이하, 발명의 예시적인 실시예에 따른 플래시 메모리 장치의 읽기 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.5 is a timing diagram schematically illustrating a read operation of a flash memory device according to another exemplary embodiment of the present invention. Hereinafter, a read operation of a flash memory device according to an exemplary embodiment of the present invention will be described in detail with reference to the drawings.

읽기 동작은 일련의 명령들 및 어드레스의 입력에 따라 수행될 것이다. 예를 들면, 도 5에 도시된 바와 같이, 제 1 명령(00h), 어드레스(C1C2R1R2R3), 그리고 제 2 명령(30h)이 플래시 메모리 장치로 순차적으로 제공될 것이다. 어드레스(C1C2R1R2R3)는 열 어드레스(C1C2)와 행 어드레스(R1R2R3)를 포함할 것이다. 열 어드레스(C1C2)의 값인 열 오프셋 값이 '0'이라고 가정하자. 열 오프셋 값이 '0'이기 때문에, 초기 시드를 생성하기 위한 프리-런 동작은 수행되지 않는다. The read operation will be performed according to the input of a series of instructions and addresses. For example, as shown in Fig. 5, the first instruction 00h, the address C1C2R1R2R3, and the second instruction 30h will be sequentially provided to the flash memory device. The address C1C2R1R2R3 will include column address C1C2 and row address R1R2R3. And a column offset value that is a value of the column address C1C2 is '0'. Since the column offset value is '0', the pre-run operation for generating the initial seed is not performed.

제 2 명령(30h)이 플래시 메모리 장치에 제공되면, tR 시간 동안, 페이지 버퍼 회로(400)는 제어 로직(300)의 제어에 응답하여 메모리 셀 어레이(100)로부터 데이터를 읽는다. 도 5에 도시된 바와 같이, 레지/비지 신호(

Figure 112011000226310-pat00003
)는 tR 시간 동안 하이 레벨로 유지될 것이다. 랜덤화 및 디-랜덤화 회로(600)는 입력된 행 어드레스(R1R2R3)에 따라 결정된 시드(즉, 초기 시드)를 이용하여 랜덤 시퀀스 데이터(RSD)를 순차적으로 생성하고, 랜덤 시퀀스 데이터(RSD)와 페이지 버퍼 회로(400)에 의해서 읽혀진 데이터를 논리적으로 조합할 것이다. 조합된 데이터는 디-랜덤화된 데이터로서 입출력 회로(700)를 통해 외부로 출력될 것이다.When the second instruction 30h is provided to the flash memory device, the page buffer circuit 400 reads data from the memory cell array 100 in response to the control of the control logic 300, for tR time. As shown in Fig. 5, the register / busy signal
Figure 112011000226310-pat00003
) Will remain at the high level for tR time. The randomizing and de-randomizing circuit 600 sequentially generates the random sequence data RSD using the seed determined according to the inputted row address R1R2R3 (i.e., the initial seed), and outputs the random sequence data RSD, And the data read by the page buffer circuit 400 will be logically combined. The combined data will be output to the outside through the input / output circuit 700 as the de-randomized data.

도 6은 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치의 쓰기 동작을 개략적으로 설명하기 위한 타이밍도이다. 이하, 발명의 예시적인 실시예에 따른 플래시 메모리 장치의 쓰기 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.6 is a timing diagram schematically illustrating a write operation of a flash memory device according to an exemplary embodiment of the present invention. Hereinafter, a writing operation of a flash memory device according to an exemplary embodiment of the invention will be described in detail with reference to the drawings.

쓰기 동작은 일련의 명령들, 데이터, 그리고 어드레스의 입력에 따라 수행될 것이다. 예를 들면, 도 6에 도시된 바와 같이, 제 1 명령(80h), 어드레스(C1C2R1R2R3), 데이터, 그리고 제 2 명령(10h)이 플래시 메모리 장치로 순차적으로 제공될 것이다. 어드레스(C1C2R1R2R3)는 열 어드레스(C1C2)와 행 어드레스(R1R2R3)를 포함할 것이다. 열 어드레스(C1C2)의 값인 열 오프셋 값이 '0'이 아니라고 가정하자. 열 오프셋 값이 '0'가 아니기 때문에, 초기 랜덤 시퀀스 데이터를 생성하는 데 필요한 초기 시드는 행 어드레스(R1R2R3)에 따라 결정되는 시드를 이용하여 랜덤 시퀀스 발생 블록(650)의 프리-런 동작을 통해 생성될 것이다. 좀 더 구체적으로 설명하면, 다음과 같다.The write operation will be performed according to the input of a series of instructions, data, and address. For example, as shown in Fig. 6, the first instruction 80h, the address C1C2R1R2R3, the data, and the second instruction 10h will be sequentially provided to the flash memory device. The address C1C2R1R2R3 will include column address C1C2 and row address R1R2R3. Assume that the column offset value that is the value of the column address C1C2 is not '0'. Since the column offset value is not '0', the initial seed necessary for generating the initial random sequence data is generated through the pre-run operation of the random sequence generation block 650 using a seed determined according to the row address R1R2R3 Will be. More specifically, it is as follows.

어드레스의 입력이 완료되면, 프리-런 검출기(640)는 열 오프셋 값에 따라 프리-런 신호(FRS)를 발생할 것이다. 열 오프셋 값이 '0'가 아니기 때문에, 프리-런 검출기(640)는 프리-런 신호(FRS)를 활성화시킨다. 이는 선택기(620)를 통해 클록 발생기(610)에 의해서 생성된 클록 신호(CLK)가 선택됨을 의미한다. 클록 신호(CLK)는 랜덤 시퀀스 클록 신호(CLK_RS)로서 유사-랜덤 시퀀스 발생기(630)로 제공될 것이다. 유사-랜덤 시퀀스 발생기(630)는 행 어드레스(R1R2R3)에 따라 결정되는 시드를 이용하여 랜덤 시퀀스 데이터(RSD)를 순차적으로 생성할 것이다. 즉, 초기 랜덤 시퀀스 데이터(또는, 초기 시드)를 생성하기 위한 프리-런 동작이 수행될 것이다. 카운터(641)의 카운트 값이 열 오프셋 값에 도달할 때, 프리-런 검출기(640)는 프리-런 신호(FRS)를 비활성화시킨다. 프리-런 신호(FRS)가 비활성화됨에 따라, 유사-랜덤 시퀀스 발생기(630)로의 클록 신호 공급은 중단될 것이다. 즉, 프리-런 동작이 중지될 것이다. 이때, 유사-랜덤 시퀀스 발생기(630)는 첫 번째 데이터의 랜덤화에 필요한 초기 시드로 설정될 것이다.When the input of the address is completed, the pre-run detector 640 will generate the pre-run signal FRS according to the column offset value. Since the column offset value is not '0', the pre-run detector 640 activates the pre-run signal FRS. This means that the clock signal CLK generated by the clock generator 610 via the selector 620 is selected. The clock signal CLK will be provided to the pseudo-random sequence generator 630 as the random sequence clock signal CLK_RS. The pseudo-random sequence generator 630 will sequentially generate the random sequence data RSD using a seed determined according to the row address R1R2R3. That is, a pre-run operation for generating initial random sequence data (or initial seed) will be performed. When the count value of the counter 641 reaches the column offset value, the pre-run detector 640 deactivates the pre-run signal FRS. As the pre-run signal (FRS) is deactivated, the supply of the clock signal to the pseudo-random sequence generator 630 will be stopped. That is, the pre-run operation will be stopped. At this time, the pseudo-random sequence generator 630 will be set to the initial seed necessary for randomizing the first data.

예시적인 실시예에 있어서, 쓰기 동작시, 카운터(641)는 어드레스 입력에 이어서 카운트하기 시작할 것이다.In an exemplary embodiment, during a write operation, the counter 641 will begin counting following the address input.

초기 시드의 생성이 완료되면, 프로그램될 데이터는 읽기/쓰기 인에이블 신호(RE/WE)의 토글에 따라 플래시 메모리 장치의 입출력 인터페이스(700)를 통해 랜덤화 및 디-랜덤화 회로(600)로 순차적으로 제공될 것이다. 이때, 유사-랜덤 시퀀스 발생기(630)는 읽기/쓰기 인에이블 신호(RE/WE)의 토글에 동기되어 랜덤 시퀀스 데이터(RSD)를 순차적으로 생성할 것이다. 믹서(650)는 초기 랜덤 시퀀스 데이터와 입출력 인터페이스 회로(700)를 통해 제공되는 데이터를 논리적으로 조합하며, 조합된 데이터는 랜덤화된 데이터로서 열 선택 회로(500)를 통해 페이지 버퍼 회로(400)로 전달될 것이다. 랜덤화 동작은 프로그램될 데이터가 모두 페이지 버퍼 회로(400)로 전달될 때까지 행해질 것이다. 이후, 제 2 명령(10h)이 플래시 메모리 장치로 제공되면, 도 6에 도시된 바와 같이, 레지/비지 신호(

Figure 112011000226310-pat00004
)는 하이 레벨에서 로우 레벨로 천이할 것이다. 레지/비지 신호(
Figure 112011000226310-pat00005
)의 로우-레벨 구간 동안, 즉, tPGM 시간 동안, 페이지 버퍼 회로(400)에 저장된 데이터(즉, 랜덤화된 데이터)는 메모리 셀 어레이(100)에 저장될 것이다.When generation of the initial seed is completed, the data to be programmed is transferred to the randomizing and de-randomizing circuit 600 through the input / output interface 700 of the flash memory device according to the toggle of the read / write enable signal RE / WE Will be provided sequentially. At this time, the pseudo-random sequence generator 630 will sequentially generate the random sequence data RSD in synchronization with the toggle of the read / write enable signal RE / WE. The mixer 650 logically combines the initial random sequence data and the data provided through the input / output interface circuit 700, and the combined data is randomized by the page buffer circuit 400 through the column selection circuit 500, Lt; / RTI > The randomizing operation will be performed until all of the data to be programmed is transferred to the page buffer circuit 400. [ Then, when the second instruction 10h is provided to the flash memory device, as shown in Fig. 6, the register / busy signal
Figure 112011000226310-pat00004
Will transition from a high level to a low level. Register / busy signal
Figure 112011000226310-pat00005
(I.e., randomized data) stored in the page buffer circuit 400 will be stored in the memory cell array 100 during a low-level period of the memory cell array 100, i.e., during the tPGM time.

상술한 바와 같이, 비록 랜덤 데이터에 대한 액세스(즉, 랜덤 데이터 액세스)가 요청되더라도 열 오프셋 값으로서 오프셋 어드레스를 이용하여 초기 시드(또는, 초기 랜덤 시퀀스 데이터)를 생성함으로써 프로그램될 랜덤 데이터를 랜덤화시키는 것이 가능하다.As described above, even if access to random data (i.e., random data access) is requested, randomizing random data to be programmed by generating an initial seed (or initial random sequence data) using the offset address as a column offset value It is possible.

비록 도면에는 도시되지 않았지만, 쓰기 동작시 열 오프셋 값이 '0'인 경우, 초기 시드를 생성하기 위한 프리-런 동작은 수행되지 않을 것이다. 이러한 경우, 데이터 및 제 2 명령(10h)은 어드레스 입력에 이어서 연속적으로 플래시 메모리 장치에 제공될 것이다.Although not shown in the figure, when the thermal offset value is '0' in a write operation, a pre-run operation for generating an initial seed will not be performed. In this case, the data and the second instruction 10h will be continuously provided to the flash memory device following the address input.

예시적인 실시예에 있어서, 초기 시드를 생성하는 데 걸리는 시간은 열 오프셋 값에 따라 다를 것이다. 따라서, 도 4에서 설명된 읽기 동작에서 데이터를 가져가는 시점 및 도 6에서 설명된 쓰기 동작에서 데이터를 제공하는 시점은 초기 시드를 생성하는 데 걸리는 최대 시간을 기준으로 설정될 수 있다.In an exemplary embodiment, the time taken to create the initial seed will depend on the column offset value. Therefore, the point of taking data in the read operation described in FIG. 4 and the point of providing data in the write operation described in FIG. 6 can be set based on the maximum time taken to generate the initial seed.

도 7은 본 발명의 다른 실시예에 따른 도 1에 도시된 랜덤화 및 디-랜덤화 회로를 개략적으로 보여주는 블록도이다.Figure 7 is a block diagram that schematically illustrates the randomization and de-randomization circuitry shown in Figure 1 according to another embodiment of the present invention.

도 7을 참조하면, 본 발명의 다른 실시예에 따른 랜덤화 및 디-랜덤화 회로(600a)는 클록 발생기(610), 선택기(620), 유사-랜덤 시퀀스 발생기(Pseudo-Random Sequence generator)(630a), 프리-런 검출기(free-run detector)(640a), 그리고 믹서(650)를 포함할 것이다. 여기서, 클록 발생기(610), 선택기(620), 그리고 믹서(650)는 도 3에 도시된 것과 실질적으로 동일하며, 그것에 대한 설명은 그러므로 생략될 것이다.Referring to FIG. 7, the randomizing and de-randomizing circuit 600a according to another embodiment of the present invention includes a clock generator 610, a selector 620, a pseudo-random sequence generator 630 a, a free-run detector 640 a, and a mixer 650. Here, the clock generator 610, the selector 620, and the mixer 650 are substantially the same as those shown in FIG. 3, and the description thereof will therefore be omitted.

랜덤화 및 디-랜덤화 회로(600a)의 유사-랜덤 바이너리 시퀀스(630a)는 가속 모드를 나타내는 플래그 신호(ACC_EN)에 따라 가속 모드와 정상 모드 중 어느 하나로 동작할 것이다. 예를 들면, 플래그 신호(ACC_EN)가 활성화될 때, 유사-랜덤 바이너리 시퀀스(630a)는 가속 모드로 동작할 것이다. 플래그 신호(ACC_EN)가 비활성화될 때, 유사-랜덤 바이너리 시퀀스(630a)는 정상 모드로 동작할 것이다. 가속 모드시, 복수의 클록 사이클들을 통해 생성되는 랜덤 시퀀스 데이터가 한 번의 클록 사이클을 통해 생성될 것이다. 이는 열 오프셋 값이 '0'이 아닐 때 초기 시드를 생성하는 데 걸리는 시간이 단축됨을 의미한다.The pseudo-random binary sequence 630a of the randomizing and de-randomizing circuit 600a will operate in either an acceleration mode or a normal mode according to the flag signal ACC_EN indicating the acceleration mode. For example, when the flag signal ACC_EN is activated, the pseudo-random binary sequence 630a will operate in the acceleration mode. When the flag signal ACC_EN is deactivated, the pseudo-random binary sequence 630a will operate in the normal mode. In the acceleration mode, random sequence data generated over a plurality of clock cycles will be generated over one clock cycle. This means that the time to generate the initial seed is shortened when the column offset value is not " 0 ".

여기서, 가속 모드를 나타내는 플래그 신호(ACC_EN)의 활성화 및 비활성화는 플래시 메모리 장치의 조정 정보(trim information)에 의거하여 결정될 수 있다. 또는, 가속 모드를 나타내는 플래그 신호(ACC_EN)의 활성화 및 비활성화는 플래시 메모리 장치를 제어하는 제어기에 의해서 결정될 수 있다. 하지만, 플래그 신호(ACC_EN)의 활성화 및 비활성화가 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다. 플래그 신호의 활성화와 함께 배속 정보 역시 결정될 것이다.Here, activation and deactivation of the flag signal ACC_EN indicating the acceleration mode can be determined based on the trim information of the flash memory device. Alternatively, activation and deactivation of the flag signal ACC_EN indicating the acceleration mode may be determined by the controller controlling the flash memory device. However, it will be appreciated that the activation and deactivation of the flag signal ACC_EN is not limited to what is disclosed herein. With the activation of the flag signal, the speed information will also be determined.

프리-런 검출기(640a)는 카운터(641a), 비교기(642a), 그리고 분주기(643a)를 포함한다. 카운터(641a)는 클록 신호(CLK)에 동기되어 동작하도록 구성될 것이다. 분주기(643a)는 가속 모드를 알리는 플래그 신호(ACC_EN)에 응답하여 동작하며, 열 오프셋 값을 그대로 비교기(642a)로 전달하거나 열 오프셋 값을 배속 정보(N)로 나누어 얻어진 값을 비교기(642a)로 전달할 것이다. 예를 들면, 플래그 신호(ACC_EN)가 정상 모드를 나타낼 때, 분주기(643a)는 변경없이 열 오프셋 값을 분주기(643a)로 전달할 것이다. 플래그 신호(ACC_EN)가 가속 모드를 나타낼 때, 분주기(643a)는 배속 정보(N)로 열 오프셋 값을 나누고, 결과값을 비교기(642a)로 전달할 것이다. 예를 들면, 열 오프셋 값이 '1000'이고 배속 정보가 N-배속을 나타낼 때, 분주기(643a)의 출력은 1000/N의 값이 될 것이다.The pre-run detector 640a includes a counter 641a, a comparator 642a, and a divider 643a. The counter 641a will be configured to operate in synchronization with the clock signal CLK. The frequency divider 643a operates in response to the flag signal ACC_EN indicating the acceleration mode and transfers the value of the column offset to the comparator 642a as it is or the value obtained by dividing the column offset value by the speed information N by a comparator 642a ). For example, when the flag signal ACC_EN indicates normal mode, the divider 643a will deliver the column offset value to the divider 643a without modification. When the flag signal ACC_EN indicates the acceleration mode, the divider 643a divides the column offset value into the multiplication information N and transmits the resultant value to the comparator 642a. For example, when the column offset value is '1000' and the speed information indicates N-times speed, the output of the frequency divider 643a will be a value of 1000 / N.

비교기(642a)는 카운터(641a)의 카운트 값과 분주기(643a)의 출력을 비교하고 비교 결과에 따라 프리-런 신호(FRS)를 발생할 것이다. 예를 들면, 프리-런 신호(FRS)는 카운터(641)의 초기값과 분주기(643a)의 출력이 서로 일치할 때 비활성화될 것이다. 프리-런 신호(FRS)는 카운터(641a)의 초기값과 분주기(643a)의 출력이 서로 다를 때 활성화될 것이다. 후자의 경우, 비교기(642a)는 카운터(641a)의 카운트 값이 분주기(643a)의 출력값에 도달할 때 프리-런 신호(FRS)를 비활성화시킬 것이다. 이때, 카운터(641a)는 프리-런 신호(FRS)의 비활성화에 따라 동작하지 않을 것이다.The comparator 642a compares the count value of the counter 641a with the output of the divider 643a and generates the pre-run signal FRS according to the comparison result. For example, the pre-run signal FRS will be deactivated when the initial value of the counter 641 and the output of the divider 643 match each other. The pre-run signal FRS will be activated when the initial value of the counter 641a and the output of the divider 643a are different. In the latter case, the comparator 642a will deactivate the pre-run signal FRS when the count value of the counter 641a reaches the output value of the divider 643a. At this time, the counter 641a will not operate according to the deactivation of the pre-run signal FRS.

도 8은 도 7에 도시된 유사-랜덤 시퀀스 발생기를 개략적으로 보여주는 블록도이고, 도 9는 도 7에 도시된 유사-랜덤 시퀀스 발생기의 다항식을 이용하여 생성되는 초기 시드값들을 보여주는 도면이다.FIG. 8 is a block diagram schematically showing the pseudo-random sequence generator shown in FIG. 7, and FIG. 9 is a diagram showing initial seed values generated using polynomials of the pseudo-random sequence generator shown in FIG.

도 8을 참조하면, 유사-랜덤 시퀀스 발생기(630a)는 랜덤 시퀀스 클록 신호(CLK_RS)에 응답하여 동작하는 복수의 플립-플롭들(FF0∼FF10), 플래그 신호(ACC_EN)에 응답하여 동작하는 복수의 선택기들(SEL0∼SEL10), 그리고 복수의 XOR 로직들(631, 632, 633, 634)을 포함하며, 도시된 바와 같이 연결되어 있다. 도 8에 도시된 유사-랜덤 시퀀스 발생기(630a)는 (X11+X10+1)와 같은 다항식을 만족하도록 구성되며, 플래그 신호(ACC_EN)에 따라 정상 모드 또는 가속 모드로 동작할 것이다. 플래그 신호(ACC_EN)가 정상 모드를 나타내는 로우-레벨 신호일 때, 플립-플롭들(FF0∼FF10)의 입력들(D)에는 대응하는 선택기들(SEL0∼SEL10)을 통해 선택되는 정상-모드 값들(X10^X0, X10∼X1)이 각각 제공될 것이다. 이러한 경우, 도 9에서, 클록 신호(CLK)의 토글에 따라 열 오프셋 값이 증가할 때, 초기 시드 역시 순차적으로 생성될 것이다. 예를 들면, 열 오프셋 값이 '9'라고 가정하자. 이러한 가정 하에서 클록 신호(CLK)가 9번 토글하면, 비교기(642a)는 분주기(643a)의 출력 즉, 분주되지 않은 열 오프셋 값이 카운터(641a)의 카운트 값과 일치하기 때문에 프리-런 신호(FRS)를 비활성화시킨다. 이때, '9'의 열 오프셋 값에 대응하는 초기 시드(X10^X0^X1^X2^X3^X4^X5^X6^X7^X8, X10^X0^X1^X2^X3^X4^X5^X6^X7, X10^X0^X1^X2^X3^X4^X5^X6, X10^X0^X1^X2^X3^X4^X5, X10^X0^X1^X2^X3^X4, X10^X0^X1^X2^X3, X10^X0^X1^X2, X10^X0^X1, X10^X0, X10, X9)가 유사-랜덤 시퀀스 발생기(630)에 설정될 것이다.8, the pseudo-random sequence generator 630a includes a plurality of flip-flops (FF0 to FF10) operating in response to a random sequence clock signal (CLK_RS), a plurality SEL0 to SEL10, and a plurality of XOR logic 631, 632, 633, and 634, and are coupled as shown. The pseudo-random sequence generator 630a shown in FIG. 8 is configured to satisfy a polynomial such as (X 11 + X 10 +1), and operates in the normal mode or the acceleration mode according to the flag signal ACC_EN. When the flag signal ACC_EN is a low-level signal indicative of a normal mode, the inputs D of the flip-flops FF0 to FF10 are supplied with normal-mode values ( X 10 ^ X 0 , X 10 ~ X 1 ), respectively. In this case, in Fig. 9, when the column offset value increases according to the toggle of the clock signal CLK, the initial seed will also be generated sequentially. For example, assume that the column offset value is '9'. Under this assumption, when the clock signal CLK is toggled 9 times, the comparator 642a compares the output of the divider 643a, i.e., the non-divided column offset value, with the count value of the counter 641a, (FRS). At this time, an initial seed (X 10 ^ X 0 ^ X 1 ^ X 2 ^ X 3 ^ X 4 ^ X 5 ^ X 6 ^ X 7 ^ X 8 , X 10 ^ X 0 ^ ^ X 1 ^ X 2 ^ X 3 ^ X 4 ^ X 5 ^ X 6 ^ X 7, X 10 ^ X 0 ^ X 1 ^ X 2 ^ X 3 ^ X 4 ^ X 5 ^ X 6, X 10 ^ X 0 ^ X 1 ^ X 2 ^ X 3 ^ X 4 ^ X 5, X 10 ^ X 0 ^ X 1 ^ X 2 ^ X 3 ^ X 4, X 10 ^ X 0 ^ X 1 ^ X 2 ^ X 3, X 10 ^ X 0 ^ X 1 ^ X 2 , X 10 ^ X 0 ^ X 1 , X 10 ^ X 0 , X 10 , X 9 will be set in the pseudo-random sequence generator 630.

플래그 신호(ACC_EN)가 가속 모드를 나타내는 하이-레벨 신호일 때, 플립-플롭들(FF0∼FF10)의 입력들(D)에는 대응하는 선택기들(SEL0∼SEL10)을 통해 선택되는 가속-모드 값들(X10^X0^X1^X2, X10^X0^X1, X10^X0, X10∼X3)이 각각 제공될 것이다. 이러한 경우, 클록 신호(CLK)의 토글에 따라 열 오프셋 값이 3배속으로 증가할 때, 도 9의 화살표로 표시된 초기 시드들이 순차적으로 생성될 것이다. 예를 들면, 열 오프셋 값이 '9'라고 가정하자. 이러한 가정 하에서 클록 신호(CLK)가 3번 토글되면, 비교기(642a)는 분주기(643a)의 출력 즉, 분주된 값(9/3=3)이 카운터(641a)의 카운트 값과 일치하기 때문에 프리-런 신호(FRS)를 비활성화시킨다. 이때, '9'의 열 오프셋 값에 대응하는 초기 시드(X10^X0^X1^X2^X3^X4^X5^X6^X7^X8, X10^X0^X1^X2^X3^X4^X5^X6^X7, X10^X0^X1^X2^X3^X4^X5^X6, X10^X0^X1^X2^X3^X4^X5, X10^X0^X1^X2^X3^X4, X10^X0^X1^X2^X3, X10^X0^X1^X2, X10^X0^X1, X10^X0, X10, X9)가 유사-랜덤 시퀀스 발생기(630)에 설정될 것이다.When the flag signal ACC_EN is a high-level signal indicative of the acceleration mode, the inputs D of the flip-flops FF0 to FF10 are supplied with the acceleration-mode values ( X 10 ^ X 0 ^ X 1 ^ X 2 , X 10 ^ X 0 ^ X 1 , X 10 ^ X 0 , and X 10 ~X 3 , respectively. In this case, when the column offset value increases by three times according to the toggle of the clock signal CLK, the initial seeds indicated by arrows in Fig. 9 will be sequentially generated. For example, assume that the column offset value is '9'. Under this assumption, if the clock signal CLK is toggled three times, the comparator 642a will compare the output of the divider 643a, i.e., the divided value 9/3 = 3, with the count value of the counter 641a Deactivates the pre-run signal (FRS). At this time, an initial seed (X 10 ^ X 0 ^ X 1 ^ X 2 ^ X 3 ^ X 4 ^ X 5 ^ X 6 ^ X 7 ^ X 8 , X 10 ^ X 0 ^ ^ X 1 ^ X 2 ^ X 3 ^ X 4 ^ X 5 ^ X 6 ^ X 7, X 10 ^ X 0 ^ X 1 ^ X 2 ^ X 3 ^ X 4 ^ X 5 ^ X 6, X 10 ^ X 0 ^ X 1 ^ X 2 ^ X 3 ^ X 4 ^ X 5, X 10 ^ X 0 ^ X 1 ^ X 2 ^ X 3 ^ X 4, X 10 ^ X 0 ^ X 1 ^ X 2 ^ X 3, X 10 ^ X 0 ^ X 1 ^ X 2 , X 10 ^ X 0 ^ X 1 , X 10 ^ X 0 , X 10 , X 9 will be set in the pseudo-random sequence generator 630.

도 8에 도시된 유사-랜덤 시퀀스 발생기(630a)의 구성은 배속에 따라 다양하게 변경될 수 있음은 잘 이해될 것이다. 도 8에 도시된 랜덤 시퀀스 발생 블록의 경우, 초기 시드 (또는, 초기 랜덤 시퀀스 데이터)를 생성하는 데 필요한 시간을 단축할 수 있다.It will be appreciated that the configuration of the pseudo-random sequence generator 630a shown in FIG. 8 can be variously changed depending on the speed. In the case of the random sequence generation block shown in Fig. 8, the time required to generate the initial seed (or the initial random sequence data) can be shortened.

도 10은 본 발명의 또 다른 실시예에 따른 유사-랜덤 시퀀스 발생기를 개략적으로 보여주는 블록도이다.10 is a block diagram schematically illustrating a pseudo-random sequence generator according to another embodiment of the present invention.

설명에 앞서, 도 10에 도시된 랜덤화 및 디-랜덤화 회로(600b)에 있어서, 도 3에 도시된 것과 동일한 기능을 갖는 구성 요소들은 동일한 참조 번호들로 표기되며, 그것에 대한 설명은 그러므로 생략될 것이다.Prior to the description, in the randomizing and de-randomizing circuit 600b shown in FIG. 10, components having the same functions as those shown in FIG. 3 are denoted by the same reference numerals, Will be.

도 10을 참조하면, 랜덤화 및 디-랜덤화 회로(600b)는 초기 시드 발생기(670)를 포함할 것이다. 초기 시드 발생기(670)는 열 오프셋 값에 의거하여 초기 시드를 발생할 것이다. 유사-랜덤 시퀀스 발생기(630)가 도 9에 도시된 초기 시드들을 발생하기 위한 다항식(X11+X10+1)에 따라 구현된다고 가정하자. 이러한 가정에 따르면, 도 9에서 알 수 있듯이, 열 오프셋 값에 따른 유사-랜덤 시퀀스 발생기(630)의 초기 시드값들을 계산/예측하는 것이 가능하다. 따라서, 초기 시드 발생기(670)는 계산된/예측된 초기 시드값들이 도 9에 도시된 항들에 따라 생성되도록 하드웨어적으로 구현될 것이다. 유사-랜덤 시퀀스 발생기(630)와 초기 시드 발생기(670)는 랜덤 시퀀스를 발생하는 블록을 구성할 것이다. 도 10에 도시된 랜덤 시퀀스 발생 블록의 경우, 각 열 오프셋 값에 대응하는 초기 시드를 생성하거나 초기 랜덤 시퀀스 데이터(initial RSD)를 생성하는 데 필요한 시간을 단축할 수 있다.Referring to FIG. 10, the randomizing and de-randomizing circuit 600b will include an initial seed generator 670. The initial seed generator 670 will generate an initial seed based on the thermal offset value. Assume that the pseudo-random sequence generator 630 is implemented according to the polynomial (X 11 + X 10 +1) for generating the initial seeds shown in FIG. According to this assumption, it is possible to calculate / predict the initial seed values of the pseudo-random sequence generator 630 according to the column offset value, as can be seen in Fig. Thus, the initial seed generator 670 will be implemented in hardware so that the calculated / predicted initial seed values are generated according to the terms shown in FIG. The pseudo-random sequence generator 630 and the initial seed generator 670 will constitute a block that generates a random sequence. In the case of the random sequence generation block shown in FIG. 10, it is possible to shorten the time required to generate an initial seed corresponding to each column offset value or to generate initial random sequence data (initial RSD).

도 10에 도시된 랜덤화 및 디-랜덤화 회로(600b)는 상술한 차이점을 제외하면 도 4 내지 도 6에서 설명된 것과 실질적으로 동일하게 동작하며, 그것에 대한 설명은 그러므로 생략될 것이다.The randomizing and de-randomizing circuit 600b shown in FIG. 10 operates substantially the same as that described in FIGS. 4 to 6 except for the differences described above, and the description thereof will therefore be omitted.

예시적인 실시예에 있어서, 유사-랜덤 시퀀스 발생기(630)에 인가되는 랜덤 시퀀스 클록 신호(CLK_RS)는 데이터 입력/출력시 토글되는 읽기/쓰기 인에이블 신호일 것이다. 또는, 유사-랜덤 시퀀스 발생기(630)에 인가되는 랜덤 시퀀스 클록 신호(CLK_RS)는 데이터 입력/출력시 생성되는 클록 신호일 것이다.In an exemplary embodiment, the random sequence clock signal CLK_RS applied to the quasi-random sequence generator 630 may be a read / write enable signal that is toggled upon data input / output. Alternatively, the random sequence clock signal CLK_RS applied to the quasi-random sequence generator 630 may be a clock signal generated upon data input / output.

도 11a는 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치의 랜덤화 및 디-랜덤화 방법을 설명하기 위한 흐름도이고, 도 11b는 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치의 랜덤화 및 디-랜덤화 스킴을 개략적으로 설명하기 위한 도면이다.FIG. 11A is a flowchart for explaining a randomizing and de-randomizing method of a flash memory device according to an exemplary embodiment of the present invention, FIG. 11B is a flowchart illustrating a randomizing and flashing of a flash memory device according to an exemplary embodiment of the present invention, And schematically illustrates a de-randomization scheme.

먼저, S100 단계에서, 요청된 액세스가 랜덤 데이터 액세스인 지의 여부가 판별될 것이다. 다시 말해서, 데이터가 액세스 포인터로서 메모리 공간(예를 들면, 하나의 페이지를 구성하는 메모리 셀들로 구성됨)의 시작점으로부터 저장되는 지의 여부가 판별될 것이다. 만약 요청된 액세스가 랜덤 데이터 액세스인 것으로 판별되면(또는, 데이터가 액세스 포인터로서 메모리 공간의 시작점을 제외한 나머지 액세스 포인트들 중 하나로부터 저장되는 것으로 판별되면), 절차는 S110 단계로 진행할 것이다. S110 단계에서, 시드를 이용하여 랜덤 데이터에 대응하는 초기 시드(또는, 초기 랜덤 시퀀스 데이터(RSD))가 생성될 것이다. 예를 들면, 도 11b에 도시된 바와 같이, 요청된 액세스의 열 오프셋 값이 '0'이 아닌 경우 즉, i번째 데이터(Di)로부터 랜덤화/디-랜덤화가 행해지는 경우, 도 3 내지 도 10에서 설명된 초기 시드 생성 동작을 통해 초기 시드가 생성될 것이다. 초기 시드가 생성된 후, S120 단계에서, 그렇게 생성된 초기 시드를 이용하여 랜덤 시퀀스(RSDi∼RSDn+1)가 생성되고, 랜덤 시퀀스(RSDi∼RSDn+1)를 이용하여 랜덤화/디-랜덤화 동작이 수행될 것이다. 랜덤화된 데이터는 페이지 버퍼 회로(400)를 통해 어레이(100)에 저장될 것이다. 디-랜덤화된 데이터는 입출력 인터페이스(700)를 통해 외부(예를 들면, 제어기)로 제공될 것이다. 이후 절차는 종료될 것이다.First, in step S100, it is determined whether or not the requested access is a random data access. In other words, it will be determined whether or not the data is stored as an access pointer from the starting point of the memory space (for example, composed of memory cells constituting one page). If the requested access is determined to be a random data access (or if it is determined that the data is stored from one of the remaining access points except for the starting point of the memory space as an access point), the procedure will proceed to step SlO. In step S110, an initial seed (or initial random sequence data RSD) corresponding to the random data will be generated using the seed. For example, as shown in FIG. 11B, when the column offset value of the requested access is not '0', that is, when the randomization / de-randomization is performed from the i-th data Di, An initial seed will be generated through the initial seed generation operation described in 10. After the initial seed is generated, a random sequence (RSDi to RSDn + 1) is generated using the thus generated initial seed in step S120, and randomization / de-randomization is performed using the random sequences RSDi to RSDn + The operation will be performed. The randomized data will be stored in the array 100 via the page buffer circuit 400. The de-randomized data will be provided to the outside (for example, a controller) through the input / output interface 700. Then the procedure will end.

예시적인 실시예에 있어서, S100 단계와 S110 단계는 메모리 공간에 저장될 데이터를 랜덤화하기 위한 초기 시드를 생성하는 방법을 구성할 것이다. 또한, S100 단계와 S110 단계는 메모리 공간으로부터 읽혀질 데이터를 디-랜덤화하기 위한 초기 시드를 생성하는 방법을 구성할 것이다.In an exemplary embodiment, steps S100 and S110 may constitute a method for generating an initial seed for randomizing data to be stored in a memory space. In addition, steps S100 and S110 may constitute a method for generating an initial seed for de-randomizing data to be read from the memory space.

만약 요청된 액세스가 랜덤 데이터 액세스가 아닌 것으로 판별되면, 절차는 S130 단계로 진행할 것이다. 예를 들면, 도 11b에 도시된 바와 같이, 요청된 액세스의 열 오프셋 값이 '0'인 경우 즉, 첫 번째 데이터(D0)로부터 랜덤화/디-랜덤화가 행해지는 경우, 도 3 내지 도 10에서 설명된 초기 시드 생성 동작없이 페이지 어드레스에 따라 결정된 시드에 의거하여 랜덤 시퀀스(RSD0∼RSDn+1)가 생성되며, 그렇게 생성된 랜덤 시퀀스(RSD0∼RSDn+1)를 이용하여 랜덤화/디-랜덤화 동작이 수행될 것이다. 랜덤화된 데이터는 페이지 버퍼 회로(400)를 통해 어레이(100)에 저장될 것이다. 디-랜덤화된 데이터는 입출력 인터페이스(700)를 통해 외부(예를 들면, 제어기)로 제공될 것이다. 이후 절차는 종료될 것이다.If it is determined that the requested access is not a random data access, the procedure will proceed to step S130. For example, as shown in FIG. 11B, when the column offset value of the requested access is '0', that is, when the randomization / de-randomization is performed from the first data D0, (RSD0 to RSDn + 1) are generated based on the seed determined according to the page address without the initial seed generation operation described in the above description. The random sequence (RSD0 to RSDn + 1) A randomizing operation will be performed. The randomized data will be stored in the array 100 via the page buffer circuit 400. The de-randomized data will be provided to the outside (for example, a controller) through the input / output interface 700. Then the procedure will end.

예시적인 실시예에 있어서, 믹서(650)를 통해 행해지는 랜덤화/디-랜덤화는 바이너리 단위로 행해질 뿐만 아니라 비트-와이즈 XOR 연산(bit-wise XOR operation)를 통해 다치(multi-value) 상태에 대해서 행해질 수 있다.In the exemplary embodiment, the randomization / de-randomization performed through the mixer 650 is performed in binary units, as well as in a multi-value state (not shown) via a bit-wise XOR operation Lt; / RTI >

도 12는 본 발명의 예시적인 실시예에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.12 is a block diagram that schematically illustrates a memory system in accordance with an exemplary embodiment of the present invention.

도 12를 참조하면, 메모리 시스템(3000)은 적어도 하나의 플래시 메모리(1000)와 제어기(2000)를 포함할 것이다. 플래시 메모리(1000)는 제어기(2000)의 제어하에 동작하며, 저장 매체로서 사용될 것이다. 제어기(2000)는 플래시 메모리(1000)를 제어하도록 구성될 것이다. 플래시 메모리(1000)는 랜덤화 및 디-랜덤화 회로(1100)를 포함할 것이다. 도 12에 도시된 플래시 메모리(1000)는 도 1에 도시된 것과 실질적으로 동일하게 구성되며, 그것에 대한 설명은 그러므로 생략될 것이다. 제어기(2000)는 플래시 메모리(1000)에 저장될 데이터를 랜덤화하도록 그리고 랜덤화된 데이터에 ECC 데이터를 부가하도록 구성될 것이다.Referring to FIG. 12, the memory system 3000 will include at least one flash memory 1000 and a controller 2000. The flash memory 1000 operates under the control of the controller 2000 and will be used as a storage medium. The controller 2000 will be configured to control the flash memory 1000. The flash memory 1000 will include a randomization and de-randomization circuit 1100. The flash memory 1000 shown in FIG. 12 is configured substantially the same as that shown in FIG. 1, and the description thereof will therefore be omitted. The controller 2000 will be configured to randomize the data to be stored in the flash memory 1000 and to add ECC data to the randomized data.

제어기(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)에 저장될 데이터와 다른 영역에 저장될 수 있다.The controller 2000 will include a first interface 2100, a second interface 2200, a processing unit 2300, a buffer memory 2400, and an ECC block 2500. The first interface 2100 is configured to interface with an external (e.g., host), and the second interface 2200 may be configured to interface with a flash memory 2200. The processing unit 2300 may be configured to control the overall operation of the controller 2000. The buffer memory 2400 may be configured to store data to be stored in the flash memory 1000 or data read from the flash memory 1000. The ECC block 2500 will generate ECC data based on the data output from the buffer memory 2400. The ECC block 2600 will perform error detection and correction operations on the data read from the flash memory 1000 based on the ECC data. The ECC data may be stored in the same page as the data to be stored in the flash memory 1000 or in an area different from the data to be stored in the flash memory 1000. [

도 12에 도시된 메모리 시스템의 경우, 쓰기 동작은 플래시 메모리(1000)에 저장될 데이터에 의거하여 ECC 데이터를 생성하고, 플래시 메모리(1000)에 저장될 데이터를 랜덤화시키는 것을 포함할 것이다. 읽기 동작은 읽혀진 데이터를 디-랜덤화시키고, ECC 데이터에 의거하여 디-랜덤화된 데이터에 대한 에러 검출 및 정정 동작을 수행하는 것을 포함할 것이다. ECC에 대한 랜덤화/디-랜덤화는 선택적으로 행하여 질 수 있다.In the case of the memory system shown in FIG. 12, the write operation will include generating ECC data based on data to be stored in the flash memory 1000, and randomizing data to be stored in the flash memory 1000. The read operation will include de-randomizing the read data and performing an error detection and correction operation on the de-randomized data based on the ECC data. Randomization / de-randomization for ECC may optionally be performed.

예시적인 실시예에 있어서, 제 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, 등을 포함한다.In an exemplary embodiment, the first interface 2100 may be comprised of a combination of one or more of computer bus standards, storage bus standards, iFCPPeripheral bus standards, and the like. Computer bus standards include computer bus standards such as S-100 bus, Mbus, Smbus, Q-Bus, ISA, Zorro II, Zorro III, CAMAC, FASTBUS, LPC, EISA, VME, VXI, NuBus, TURBOchannel, , VLB, PCI, PXI, HP GSC bus, CoreConnect, InfiniBand, UPA, PCI-X, AGP, PCIe, Intel QuickPath Interconnect, Hyper Transport, Storage bus standards include ST-506, ESDI, SMD, Parallel ATA, DMA, SSA, HIPPI, USB MSC, FireWire (1394), Serial ATA, eSATA, SCSI, Parallel SCSI, Serial Attached SCSI, Fiber Channel, iSCSI, SAS, RapidIO, FCIP, and the like. The iFCPPeripheral bus standards include the 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, etc.

도 13은 본 발명의 다른 예시적인 실시예에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.13 is a block diagram schematically illustrating a memory system according to another exemplary embodiment of the present invention.

도 13을 참조하면, 메모리 시스템(3000a)은 적어도 하나의 플래시 메모리(1000a)와 제어기(2000a)를 포함할 것이다. 플래시 메모리(1000a)는 제어기(2000a)의 제어 하에 동작하며, 저장 매체로서 사용될 것이다. 도 13에 도시된 플래시 메모리(1000a)는 앞서 언급된 랜덤화 및 디-랜덤화 회로를 포함하지 않을 것이다. 제어기(2000a)는 플래시 메모리(1000a)를 제어하도록 구성될 것이다. 제어기(2000a)는 플래시 메모리(1000a)에 저장될 데이터를 랜덤화하도록 그리고 랜덤화된 데이터에 ECC 데이터를 부가하도록 구성될 것이다. 제어기(2000a)는 플래시 메모리(1000a)로부터 읽혀진 랜덤화된 데이터의 에러에 대한 검출 및 정정 동작을 수행하고, 랜덤화된 데이터를 디-랜덤화하도록 구성될 것이다.Referring to FIG. 13, the memory system 3000a will include at least one flash memory 1000a and a controller 2000a. The flash memory 1000a operates under the control of the controller 2000a and will be used as a storage medium. The flash memory 1000a shown in Fig. 13 will not include the above-mentioned randomizing and de-randomizing circuit. The controller 2000a will be configured to control the flash memory 1000a. The controller 2000a will be configured to randomize the data to be stored in the flash memory 1000a and to add ECC data to the randomized data. The controller 2000a will be configured to detect and correct errors in the randomized data read from the flash memory 1000a and to de-randomize the randomized data.

제어기(2000a)는 제 1 인터페이스(2100a), 제 2 인터페이스(2200a), 처리 유니트(2300a), 버퍼 메모리(2400a), ECC 블록(2500a), 그리고 랜덤화/디-랜덤화 블록(2600)을 포함할 것이다. 도 13에 도시된 구성 요소들(2100a, 2200a, 2300a, 2400a, 2500a)은 아래의 차이점을 제외하면 도 12에 도시된 것과 실질적으로 동일하며, 그것에 대한 설명은 그러므로 생략될 것이다.The controller 2000a includes a first interface 2100a, a second interface 2200a, a processing unit 2300a, a buffer memory 2400a, an ECC block 2500a, and a randomization / de-randomization block 2600 . The components 2100a, 2200a, 2300a, 2400a, and 2500a shown in Figure 13 are substantially the same as those shown in Figure 12 except for the following differences, and the description thereof will therefore be omitted.

랜덤화 및 디-랜덤화 블록(2600)은 버퍼 메모리(2400a)로부터 출력되는 데이터를 랜덤화하도록 그리고 플래시 메모리(1000a)로부터 읽혀진 데이터(즉, 랜덤화된 데이터)를 디-랜덤화하도록 구성될 것이다. 랜덤화 및 디-랜덤화 블록(2600)은 도 3 내지 도 10에서 설명된 방식들 중 하나에 따라 랜덤 데이터에 대한 랜덤화 및 디-랜덤화 동작들을 수행하며, 그것에 대한 설명은 그러므로 생략될 것이다. ECC 블록(2600)은 랜덤화 및 디-랜덤화 블록(2500)으로부터 출력되는 랜덤화된 데이터에 의거하여 ECC 데이터를 생성할 것이다. ECC 블록(2500a)은, 또한, ECC 데이터에 의거하여 플래시 메모리(1000a)로부터 읽혀진 데이터 즉, 랜덤화된 데이터에 대한 에러 검출 및 정정 동작을 수행할 것이다. ECC 데이터는 플래시 메모리(1000a)에 저장될 데이터와 동일한 페이지에 또는 플래시 메모리(1000a)에 저장될 데이터와 다른 영역에 저장될 수 있다.The randomization and de-randomization block 2600 is configured to randomize data output from the buffer memory 2400a and de-randomize the data (i.e., randomized data) read from the flash memory 1000a will be. The randomization and de-randomization block 2600 performs randomization and de-randomization operations on random data according to one of the schemes described in Figures 3 to 10, the description of which will therefore be omitted . The ECC block 2600 will generate ECC data based on the randomized data output from the randomizing and de-randomizing block 2500. [ The ECC block 2500a will also perform error detection and correction operations on the data read from the flash memory 1000a, that is, the randomized data, based on the ECC data. The ECC data may be stored in the same page as the data to be stored in the flash memory 1000a or in an area different from the data to be stored in the flash memory 1000a.

도 13에 도시된 메모리 시스템의 경우, 쓰기 동작은 플래시 메모리(1000a)에 저장될 데이터를 랜덤화시키고, 랜덤화된 데이터에 의거하여 ECC 데이터를 생성하고, 플래시 메모리(1000)에 ECC 데이터와 랜덤화된 데이터를 저장하는 것을 포함할 것이다. 또는, 저장될 데이터와 ECC 데이터를 모두 랜덤화하여 저장하는 것을 포함할 것이다 . 읽기 동작은 ECC 데이터에 의거하여 읽혀진 데이터(즉, 랜덤화된 데이터)에 대한 에러 검출 및 정정 동작을 수행하고, 읽혀진 데이터를 랜덤화시키는 것을 포함할 것이다.In the case of the memory system shown in FIG. 13, the write operation randomizes data to be stored in the flash memory 1000a, generates ECC data based on the randomized data, Lt; RTI ID = 0.0 > data. ≪ / RTI > Or randomizing and storing both the data to be stored and the ECC data . The read operation may include performing error detection and correction operations on the data (i.e., randomized data) read based on the ECC data, and randomizing the read data.

도 14는 본 발명의 예시적인 실시예에 따른 반도체 드라이브를 개략적으로 보여주는 블록도이다.14 is a block diagram schematically illustrating a semiconductor drive according to an exemplary embodiment of the present invention.

도 14를 참조하면, 반도체 드라이브(4000)(SSD)는 저장 매체(4100)와 제어기(4200)를 포함할 것이다. 저장 매체(4100)는 복수의 채널들을 통해 제어기(4200)와 연결될 것이다. 각 채널에는 복수의 불 휘발성 메모리들이 공통으로 연결될 것이다. 각 불 휘발성 메모리는 도 1에서 설명된 플래시 메모리로 구성될 것이다. 이러한 경우, 제어기(4200)는 도 12에 도시된 것과 실질적으로 동일하게 구성될 것이다. 즉, 데이터 랜덤화 및 디-랜덤화는 각 불 휘발성 메모리 내에서 행해지고, 에러 검출 및 정정은 제어기(4200) 내에서 행해질 것이다.Referring to FIG. 14, the semiconductor drive 4000 (SSD) will include a storage medium 4100 and a controller 4200. The storage medium 4100 may be coupled to the controller 4200 via a plurality of channels. A plurality of nonvolatile memories will be commonly connected to each channel. Each non-volatile memory will consist of the flash memory described in FIG. In this case, the controller 4200 will be configured substantially the same as that shown in Fig. That is, data randomization and de-randomization are performed in each non-volatile memory, and error detection and correction will be performed in the controller 4200.

또는, 제어기(4200)는 도 13에서 설명된 것과 동일하게 구성될 것이다. 이러한 경우, 데이터 랜덤화 및 디-랜덤화와 에러 검출 및 정정은 제어기(4200) 내에서 행해질 것이다. 따라서, 오프셋 어드레스를 참조하여 랜덤 데이터를 위한 초기 시드를 생성하는 것이 가능하다.Alternatively, the controller 4200 will be configured the same as that described in Fig. In such a case, data randomization and de-randomization and error detection and correction will be performed in controller 4200. Thus, it is possible to generate an initial seed for random data with reference to an offset address.

도 15는 도 14에 도시된 반도체 드라이브를 이용한 스토리지를 개략적으로 보여주는 블록도이고, 도 16은 도 14에 도시된 반도체 드라이브를 이용한 스토리지 서버를 개략적으로 보여주는 블록도이다.FIG. 15 is a block diagram schematically showing the storage using the semiconductor drive shown in FIG. 14, and FIG. 16 is a block diagram schematically showing a storage server using the semiconductor drive shown in FIG.

본 발명의 예시적인 실시예에 따른 반도체 드라이브(4000)는 스토리지를 구성하는 데 사용될 수 있다. 도 15에 도시된 바와 같이, 스토리지는 도 14에서 설명된 것과 실질적으로 동일하게 구성되는 복수의 반도체 드라이브들을 포함할 것이다. 본 발명의 예시적인 실시예에 따른 반도체 드라이브(4000)는 스토리지 서버를 구성하는 데 사용될 수 있다. 도 16에 도시된 바와 같이, 스토리지 서버는 도 14에서 설명된 것과 실질적으로 동일하게 구성되는 복수의 반도체 드라이브들(4000), 그리고 스토리지 서버의 전반적인 동작을 제어하기 위한 서버(4000A)를 포함할 것이다. 또한, 반도체 드라이브들(4000)에 저장된 데이터에 대한 결함을 치유하기 위해 적용되는 패리티 방식에 따른 패리티 관리를 위한 RAID 제어기(4000B)가 스토리지 서버에 제공될 수 있음은 잘 이해될 것이다.A semiconductor drive 4000 in accordance with an exemplary embodiment of the present invention may be used to configure storage. As shown in FIG. 15, the storage will include a plurality of semiconductor drives configured substantially the same as those described in FIG. A semiconductor drive 4000 in accordance with an exemplary embodiment of the present invention may be used to configure a storage server. As shown in FIG. 16, the storage server will include a plurality of semiconductor drives 4000 configured substantially the same as those described in FIG. 14, and a server 4000A for controlling the overall operation of the storage server . It will also be appreciated that a RAID controller 4000B for parity management according to a parity scheme applied to heal defects for data stored in semiconductor drives 4000 may be provided to the storage server.

도 17 내지 도 19는 본 발명의 예시적인 실시예들에 따른 시스템들을 개략적으로 보여주는 도면들이다.Figures 17-19 are diagrams schematically illustrating systems according to exemplary embodiments of the present invention.

본 발명의 예시적인 실시예들에 따른 메모리 제어기 및 플래시 메모리 장치들로 구성되는 반도체 드라이브가 스토리지에 적용되는 경우, 도 17에 도시된 바와 같이, 시스템(6000)은 유선 그리고/또는 무선으로 호스트와 통신하는 스토리지(6100)를 포함할 것이다. 본 발명의 예시적인 실시예들에 따른 데이터 저장 장치를 포함한 반도체 드라이브가 스토리지 서버에 적용되는 경우, 도 18에 도시된 바와 같이, 시스템(7000)은 유선 그리고/또는 무선으로 호스트와 통신하는 스토리지 서버들(7100, 7200)을 포함할 것이다. 또한, 도 19에 도시된 바와 같이, 본 발명의 예시적인 실시예에 따른 데이터 저장 장치를 포함한 반도체 드라이브는 메일 서버(8100)에도 적용될 수 있다. 메일 서버(8100)는 POP 및 SMTP 방식들로 연결된 메일 데몬을 통해 사용자 메일 프로그램들과 통신하며, 메일 서버들(8100)은 인터넷망을 통해 통신할 것이다.In the case where a semiconductor drive comprising memory controller and flash memory devices according to exemplary embodiments of the present invention is applied to the storage, as shown in FIG. 17, system 6000 may be wired and / And a storage 6100 that communicates. When a semiconductor drive including a data storage device according to exemplary embodiments of the present invention is applied to a storage server, as shown in FIG. 18, the system 7000 may include a storage server Lt; RTI ID = 0.0 > 7100 < / RTI > 19, the semiconductor drive including the data storage device according to the exemplary embodiment of the present invention may also be applied to the mail server 8100. [ The mail server 8100 communicates with the user mail programs through the mail daemon connected by the POP and SMTP methods, and the mail servers 8100 communicate with the internet network.

도 20 내지 도 24는 본 발명의 예시적인 실시예들에 따른 불 휘발성 메모리 장치가 적용되는 다른 시스템들을 개략적으로 보여주는 도면들이다.20 to 24 are diagrams schematically showing other systems to which a nonvolatile memory device according to exemplary embodiments of the present invention is applied.

도 20은 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치가 사용되는 휴대폰 시스템(cellular phone system)을 개략적으로 보여주는 블록도이다.20 is a block diagram schematically illustrating a cellular phone system in which a flash memory device according to an exemplary embodiment of the present invention is used.

도 20을 참조하면, 휴대폰 시스템은 소리를 압축하거나 압축된 소리를 푸는(compression or decompression) ADPCM 코덱 회로(9202), 스피커(speaker)(9203), 마이크로폰(microphone)(9204), 디지털 데이터를 시분할 멀티플렉싱하는 TDMA회로(9206), 무선 신호의 캐리어 주파수(carrier frequency)를 세팅하는 PLL회로(9210), 무선 신호를 전달하거나 받기 위한 RF 회로(9211) 등을 포함할 수 있다.20, the mobile phone system includes an ADPCM codec circuit 9202, a speaker 9203, a microphone 9204, a compression or decompression circuit for compressing or decompressing a sound, A TDMA circuit 9206 for multiplexing, a PLL circuit 9210 for setting a carrier frequency of a radio signal, an RF circuit 9211 for transmitting or receiving a radio signal, and the like.

또한, 휴대폰 시스템은 여러 가지 종류의 메모리 장치를 포함할 수 있는데, 예를 들어, 휴대폰 시스템은 불 휘발성 메모리 장치인 플래시 메모리 장치(9207), ROM(9208), SRAM(9209)를 포함할 수 있다. 휴대폰 시스템의 메모리 장치(9207)로서, 예를 들어, 도 1에서 설명된 플래시 휘발성 메모리 장치가 사용될 것이다. 즉, 랜덤 데이터를 위한 초기 시드를 생성하는 것이 가능하다. ROM(9208)은 프로그램을 저장할 수 있고, SRAM(9209)은 시스템 컨트롤 마이크로컴퓨터(9212)를 위한 작업 영역으로써 역할을 하거나 데이터를 일시적으로 저장한다. 여기서, 시스템 컨트롤 마이크로컴퓨터(9212)는 프로세서로서, 플래시 메모리 장치(9207)의 쓰기 동작 및 읽기 동작을 제어할 수 있다.The cellular phone system may also include various types of memory devices, for example, a cellular phone system may include a flash memory device 9207, a non-volatile memory device, ROM 9208, SRAM 9209 . As the memory device 9207 of the mobile phone system, for example, the flash volatile memory device described in Fig. 1 will be used. That is, it is possible to generate an initial seed for random data. ROM 9208 can store a program and SRAM 9209 acts as a work area for system control microcomputer 9212 or temporarily stores data. Here, the system control microcomputer 9212, as a processor, can control the write operation and the read operation of the flash memory device 9207. [

도 21은 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치가 사용되는 메모리 카드(memory card)의 예시적 도면이다. 메모리 카드는 예를 들어, MMC 카드, SD카드, 멀티유즈(multiuse) 카드, 마이크로 SD카드, 메모리 스틱, 컴팩트 SD 카드, ID 카드, PCMCIA 카드, SSD카드, 칩카드(chipcard), 스마트카드(smartcard), USB카드 등일 수 있다.21 is an exemplary diagram of a memory card in which a flash memory device according to an exemplary embodiment of the present invention is used. The memory card may be, for example, an MMC card, an SD card, a multiuse card, a micro SD card, a memory stick, a compact SD card, an ID card, a PCMCIA card, an SSD card, a chip card, ), A USB card, and the like.

도 21을 참조하면, 메모리 카드는 외부와의 인터페이스를 수행하는 인터페이스부(9221), 버퍼 메모리를 갖고 메모리 카드의 동작을 제어하는 컨트롤러(9222), 본 발명의 실시예에 따른 플래시 메모리 장치(9207)을 적어도 하나 포함할 수 있다. 플래시 메모리 장치(9207)는 랜덤 데이터를 위한 초기 시드를 생성하도록 구성된 플래시 메모리 장치로 구성될 것이다. 컨트롤러(9222)는 프로세서로서, 플래시 메모리 장치(9207)의 라이트 동작 및 리드 동작을 제어할 수 있다. 구체적으로, 제어기(9222)는 데이터 버스(DATA)와 어드레스 버스(ADDRESS)를 통해서 불 휘발성 메모리 장치(9207), 인터페이스부(9221)와 커플링되어 있다.21, the memory card includes an interface unit 9221 for performing an interface with the outside, a controller 9222 having a buffer memory and controlling the operation of the memory card, a flash memory device 9207 according to an embodiment of the present invention ). ≪ / RTI > The flash memory device 9207 will be configured as a flash memory device configured to generate an initial seed for random data. The controller 9222, as a processor, can control the write operation and the read operation of the flash memory device 9207. [ Specifically, the controller 9222 is coupled to the nonvolatile memory device 9207 and the interface portion 9221 via a data bus (DATA) and an address bus (ADDRESS).

도 22는 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치가 사용되는 디지털 스틸 카메라(digital still camera)의 예시적 도면이다.22 is an exemplary diagram of a digital still camera in which a flash memory device according to an exemplary embodiment of the present invention is used.

도 22를 참조하면, 디지털 스틸 카메라는 바디(9301), 슬롯(9302), 렌즈(9303), 디스플레이부(9308), 셔터 버튼(9312), 스트로브(strobe)(9318) 등을 포함한다. 특히, 슬롯(9308)에는 메모리 카드(9331)가 삽입될 수 있고, 메모리 카드(9331)는 랜덤 데이터를 위한 초기 시드를 생성하는 것이 가능하도록 구성된 본 발명의 실시예에 따른 플래시 메모리 장치(9207)를 적어도 하나 포함할 수 있다. 메모리 카드(9331)가 접촉형(contact type)인 경우, 메모리 카드(9331)가 슬롯(9308)에 삽입될 때 메모리 카드(9331)와 회로 기판상의 특정 전기 회로가 전기적으로 접촉하게 된다. 메모리 카드(9331)가 비접촉형(non-contact type)인 경우, 무선 신호를 통해서 메모리 카드(9331)가 액세스 될 것이다.22, a digital still camera includes a body 9301, a slot 9302, a lens 9303, a display portion 9308, a shutter button 9312, a strobe 9318, and the like. Particularly, a memory card 9331 can be inserted in the slot 9308 and a memory card 9331 can be inserted into the flash memory device 9207 according to an embodiment of the present invention configured to be able to generate an initial seed for random data, May be included. When the memory card 9331 is in the contact type, the memory card 9331 and the specific electric circuit on the circuit board are brought into electrical contact when the memory card 9331 is inserted into the slot 9308. [ If the memory card 9331 is a non-contact type, the memory card 9331 will be accessed via the wireless signal.

도 23은 도 22의 메모리 카드가 사용되는 다양한 시스템을 설명하는 예시적 도면이다.23 is an exemplary diagram illustrating various systems in which the memory card of Fig. 22 is used.

도 23을 참조하면, 메모리 카드(2331)는 (a) 비디오 카메라, (b) 텔레비전, (c) 오디오 장치, (d) 게임장치, (e) 전자 음악 장치, (f) 휴대폰, (g) 컴퓨터, (h) PDA(Personal Digital Assistant), (i) 보이스 레코더(voice recorder), (j) PC 카드 등에 사용될 수 있다. 23, the memory card 2331 includes a video camera, a television, an audio device, a game device, an electronic music device, a mobile phone, (H) a PDA (Personal Digital Assistant), (i) a voice recorder, (j) a PC card, and the like.

도 24는 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치가 사용되는 이미지 센서(image sensor) 시스템의 예시적 도면이다.Figure 24 is an exemplary diagram of an image sensor system in which a flash memory device according to an exemplary embodiment of the invention is used.

도 24를 참조하면, 이미지 센서 시스템은 이미지 센서(9332), 입출력 장치(9336), RAM(9348), CPU(9344), 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치(9354) 등을 포함할 수 있다. 플래시 메모리 장치(9354)는 랜덤 데이터를 위한 초기 시드를 생성하는 것이 가능하도록 구성될 것이다. 각 구성요소, 즉, 이미지 센서(9332), 입출력 장치(9336), RAM(9348), CPU(9344), 플래시 메모리 장치(9354)는 버스(9352)를 통해서 서로 통신한다. 이미지 센서(9332)는 포토게이트, 포토다이오드 등과 같은 포토센싱(photo sensing) 소자를 포함할 수 있다. 각각의 구성 요소는 프로세서와 함께 하나의 칩으로 구성될 수도 있고, 프로세서와 각각 별개의 칩으로 구성될 수도 있다.24, the image sensor system includes an image sensor 9332, an input / output device 9336, a RAM 9348, a CPU 9344, a flash memory device 9354, etc. according to an exemplary embodiment of the present invention can do. Flash memory device 9354 may be configured to be capable of generating an initial seed for random data. Each component, namely, the image sensor 9332, the input / output device 9336, the RAM 9348, the CPU 9344, and the flash memory device 9354 communicate with each other via the bus 9352. The image sensor 9332 may include a photo sensing device such as a photogate, a photodiode, or the like. Each component may be composed of one chip together with the processor, or may be formed of chips separate from the processor.

본 발명의 예시적인 실시예에 있어서, 메모리 셀들은 가변 저항 메모리 셀로 구성될 수 있으며, 예시적인 가변 저항 메모리 셀 및 그것을 포함한 메모리 장치가 미국특허번호 제7529124호에 게재되어 있으며, 이 출원의 레퍼런스로 포함될 것이다.In an exemplary embodiment of the present invention, the memory cells may be comprised of variable resistance memory cells, and exemplary variable resistance memory cells and memory devices containing the same are disclosed in U.S. Patent No. 7529124, Will be included.

본 발명의 다른 예시적인 실시예에 있어서, 메모리 셀들은 전하 저장층을 갖는 다양한 셀 구조들 중 하나를 이용하여 구현될 수 있다. 전하 저장층을 갖는 셀 구조는 전하 트랩층을 이용하는 전하 트랩 플래시 구조, 어레이들이 다층으로 적층되는 스택 플래시 구조, 소오스-드레인이 없는 플래시 구조, 핀-타입 플래시 구조, 등을 포함할 것이다.In another exemplary embodiment of the present invention, the memory cells may be implemented using one of various cell structures having a charge storage layer. The cell structure with the charge storage layer will include a charge trap flash structure using a charge trap layer, a stack flash structure in which the arrays are stacked in multiple layers, a flash structure without a source-drain, a pin-type flash structure, and the like.

전하 저장층으로서 전하 트랩 플래시 구조를 갖는 메모리 장치가 미국특허 제6858906호, 미국공개특허 제2004-0169238호, 그리고 미국공개특허 제2006-0180851호에 각각 게재되어 있으며, 이 출원의 레퍼런스로 포함될 것이다. 소오스/드레인이 없는 플래시 구조는 대한민국특허 제673020호에 게재되어 있으며, 이 출원의 레퍼런스로 포함될 것이다.A memory device having a charge trap flash structure as the charge storage layer is disclosed in U.S. Patent No. 6858906, U.S. Patent Publication No. 2004-0169238, and U.S. Patent Publication No. 2006-0180851, each of which is incorporated herein by reference . A flash structure without a source / drain is disclosed in Korean Patent No. 673020, which will be incorporated by reference in this application.

본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 제어기는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 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), 등과 같은 패키지들을 이용하여 실장될 수 있다.The flash memory device and / or memory controller according to the present invention may be implemented using various types of packages. For example, the flash memory device and / or the memory controller according to the present invention can be implemented as a package on package (PoP), ball grid arrays (BGAs), chip scale packages (CSPs), plastic leaded chip carriers (PLCC) Linear 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 (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 Wafer-Level Processed Stack Package (WSP), and the like.

본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.It will be apparent to those skilled in the art that the structure of the present invention can be variously modified or changed without departing from the scope or spirit of the present invention. In view of the foregoing, it is intended that the present invention cover the modifications and variations of this invention provided they fall within the scope of the following claims and equivalents.

100: 메모리 셀 어레이
200: 행 선택 회로
300: 제어 로직
400: 페이지 버퍼 회로
500: 열 선택 회로
600: 랜덤화 및 디-랜덤화 회로
700: 입출력 인터페이스 회로
100: memory cell array
200: row selection circuit
300: control logic
400: page buffer circuit
500: Thermal select circuit
600: randomization and de-randomization circuit
700: Input / output interface circuit

Claims (10)

데이터 액세스가 랜덤인지 판별하는 단계;
상기 데이터 액세스가 랜덤이 아닌 경우, 제 1 시드를 기초로 제 1 랜덤 시퀀스 데이터를 생성하는 단계;
상기 제 1 랜덤 시퀀스 데이터와 메모리로부터 독출된 데이터 혹은 상기 메모리에 쓰여질 데이터를 합성하는 단계;
상기 데이터 액세스가 랜덤인 경우, 상기 제 1 시드로부터 제 2 시드를 생성하는 단계;
상기 제 2 시드를 기초로 제 2 랜덤 시퀀스 데이터를 생성하는 단계; 그리고
상기 제 2 랜덤 시퀀스 데이터와 상기 메모리로부터 독출된 데이터 혹은 상기 메모리에 쓰여질 데이터를 합성하는 단계를 포함하는 메모리 제어 방법.
Determining if the data access is random;
If the data access is not random, generating first random sequence data based on the first seed;
Synthesizing the first random sequence data with data read from the memory or data to be written into the memory;
If the data access is random, generating a second seed from the first seed;
Generating second random sequence data based on the second seed; And
And combining the second random sequence data with data read from the memory or data to be written to the memory.
제 1 항에 있어서,
상기 제 1 시드는 열 어드레스, 페이지 어드레스, 블록 단위 또는 섹터 단위 중 하나에 기초하여 생성되는 메모리 제어 방법.
The method according to claim 1,
Wherein the first seed is generated based on one of a column address, a page address, a block unit, or a sector unit.
제 1 항에 있어서,
상기 데이터 액세스의 열 오프셋 값이 0이 아닌 경우, 상기 데이터 액세스는 랜덤으로 판별되는 메모리 제어 방법.
The method according to claim 1,
And if the column offset value of the data access is not zero, the data access is determined at random.
제 1 항에 있어서,
상기 데이터 액세스의 열 오프셋 값이 0인 경우, 상기 데이터 액세스는 랜덤이 아닌 것으로 판별되는 메모리 제어 방법.
The method according to claim 1,
And if the column offset value of the data access is zero, the data access is determined not to be random.
제 1 항에 있어서,
상기 쓰여질 데이터는 입출력 인터페이스를 통해 수신되고, 그리고 상기 쓰여질 데이터와 상기 제 1 또는 제 2 랜덤 시퀀스 데이터가 합성된 데이터는 페이지 버퍼로 출력되는 메모리 제어 방법.
The method according to claim 1,
Wherein the data to be written is received through an input / output interface, and the data to be written and the first or second random sequence data are combined is output to a page buffer.
제 1 항에 있어서,
상기 메모리로부터 독출된 데이터와 상기 제 1 또는 제 2 랜덤 시퀀스 데이터가 합성된 데이터는 입출력 인터페이스를 통해 출력되는 메모리 제어 방법.
The method according to claim 1,
Wherein the data read from the memory and the first or second random sequence data are combined through an input / output interface.
메모리 셀 어레이;
제 1 시드에 기초하여 적어도 하나의 랜덤 시퀀스 데이터 스트링을 생성하는 랜덤 시퀀스 데이터 생성기;
상기 메모리 셀 어레이로부터 독출된 데이터를 디-랜덤화하는 믹서; 그리고
상기 메모리 셀 어레이에 대한 액세스를 제어하고, 메모리 액세스 모드에 기초하여 상기 랜덤 시퀀스 데이터 생성기를 활성화하는 제어 회로를 포함하되,
제 1 모드에서, 메모리 어드레스의 일부분은 상기 제 1 시드로서 사용되고,
제 2 모드에서, 제 2 시드는 상기 랜덤 시퀀스 데이터 생성기에 의해 생성되는 메모리 장치.
A memory cell array;
A random sequence data generator for generating at least one random sequence data string based on the first seed;
A mixer for de-randomizing data read from the memory cell array; And
A control circuit for controlling access to the memory cell array and activating the random sequence data generator based on a memory access mode,
In the first mode, a portion of the memory address is used as the first seed,
In a second mode, a second seed is generated by the random sequence data generator.
제 7 항에 있어서,
상기 믹서는 상기 메모리 셀 어레이에 쓰여질 데이터와 랜덤 시퀀스 데이터를 랜덤화하는 메모리 장치.
8. The method of claim 7,
Wherein the mixer randomizes random sequence data and data to be written to the memory cell array.
제 7 항에 있어서,
상기 제어 회로는 상기 제 1 시드에 기초하여 중간 시드를 생성하고, 상기 중간 시드에 기초하여 랜덤 시퀀스 데이터를 생성하는 메모리 장치.
8. The method of claim 7,
Wherein the control circuit generates an intermediate seed based on the first seed and generates random sequence data based on the intermediate seed.
제 7 항에 있어서,
상기 믹서는 비트-와이즈 XOR 동작에 의해 다치 데이터를 합성하는 메모리 장치.
8. The method of claim 7,
Wherein the mixer synthesizes multi-valued data by a bit-wise XOR operation.
KR1020110000279A 2010-12-23 2011-01-03 Initial seed generating method and flash memory device and memory system using the same KR101733567B1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US13/326,820 US8751729B2 (en) 2010-12-23 2011-12-15 Flash memory device and memory system including the same
DE102011056776A DE102011056776A1 (en) 2010-12-23 2011-12-21 Flash memory device and memory system with the same
JP2011281075A JP2012133877A (en) 2010-12-23 2011-12-22 Initial seed generation method, flash memory device using the same, and memory system
TW100147869A TW201232261A (en) 2010-12-23 2011-12-22 Memory control method, memory device and memory system
CN2011104368269A CN102568575A (en) 2010-12-23 2011-12-23 Flash memory device and memory system including the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201061426529P 2010-12-23 2010-12-23
US61/426,529 2010-12-23

Publications (2)

Publication Number Publication Date
KR20120072289A KR20120072289A (en) 2012-07-03
KR101733567B1 true KR101733567B1 (en) 2017-05-11

Family

ID=46707029

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110000279A KR101733567B1 (en) 2010-12-23 2011-01-03 Initial seed generating method and flash memory device and memory system using the same

Country Status (1)

Country Link
KR (1) KR101733567B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11004487B2 (en) 2019-03-05 2021-05-11 SK Hynix Inc. Semiconductor device and semiconductor system

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102200108B1 (en) * 2014-10-10 2021-01-08 삼성전자주식회사 Non-volatile memory device and method for operating the same

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080239811A1 (en) 2007-04-02 2008-10-02 Kabushiki Kaisha Toshiba Method for controlling a non-volatile semiconductor memory, and semiconductor storage system
US20100124120A1 (en) 2008-11-17 2010-05-20 Samsung Electronics Co., Ltd. Nonvolatile memory device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080239811A1 (en) 2007-04-02 2008-10-02 Kabushiki Kaisha Toshiba Method for controlling a non-volatile semiconductor memory, and semiconductor storage system
US20100124120A1 (en) 2008-11-17 2010-05-20 Samsung Electronics Co., Ltd. Nonvolatile memory device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11004487B2 (en) 2019-03-05 2021-05-11 SK Hynix Inc. Semiconductor device and semiconductor system

Also Published As

Publication number Publication date
KR20120072289A (en) 2012-07-03

Similar Documents

Publication Publication Date Title
US9128623B2 (en) Non-volatile memory devices, methods of operating non-volatile memory devices, and systems including the same
US8751729B2 (en) Flash memory device and memory system including the same
KR101767649B1 (en) Seed generating method and flash memory device and memory system using the same
US9672104B2 (en) Memory system and read reclaim method thereof
US9400750B2 (en) Nonvolatile memory device and nonvolatile memory system and random data read method thereof
KR102089613B1 (en) Nonvolatile memory device and memory system including the same
US20140223084A1 (en) Memory system and related method of operation
KR101818176B1 (en) Nonvolatile memory device and operating method thereof
US20130117620A1 (en) Memory system and operating method thereof
US9164889B2 (en) Memory system to select program operation method and method thereof
US9183938B2 (en) Nonvolatile memory device and method of programming nonvolatile memory device
US9021338B2 (en) Memory system and data storage method
US9189384B2 (en) Memory system and memory managing method thereof
KR101818209B1 (en) Flash memory device and memory system including the same
KR101733567B1 (en) Initial seed generating method and flash memory device and memory system using the same
KR20140105091A (en) Nonvolatile memory device and memory system including the same

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right