KR20120117612A - Flash memory device and memory system including the same - Google Patents

Flash memory device and memory system including the same Download PDF

Info

Publication number
KR20120117612A
KR20120117612A KR1020110079104A KR20110079104A KR20120117612A KR 20120117612 A KR20120117612 A KR 20120117612A KR 1020110079104 A KR1020110079104 A KR 1020110079104A KR 20110079104 A KR20110079104 A KR 20110079104A KR 20120117612 A KR20120117612 A KR 20120117612A
Authority
KR
South Korea
Prior art keywords
data
seed
randomization
random sequence
access
Prior art date
Application number
KR1020110079104A
Other languages
Korean (ko)
Other versions
KR101818209B1 (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 JP2012090508A priority Critical patent/JP2012226822A/en
Priority to US13/446,155 priority patent/US8996792B2/en
Priority to CN201210111593.XA priority patent/CN102737719B/en
Publication of KR20120117612A publication Critical patent/KR20120117612A/en
Priority to US14/660,897 priority patent/US9128623B2/en
Application granted granted Critical
Publication of KR101818209B1 publication Critical patent/KR101818209B1/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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • 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/20Initialising; Data preset; Chip identification
    • 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

Abstract

PURPOSE: A flash memory device and a memory system including the same are provided to de-randomize the randomized data and randomize data to be programmed by applying seeds allocated in a page to access requested segments. CONSTITUTION: A page buffer circuit(400) reads or writes data from or in the selected page of a memory cell array. A randomizing and de-randomizing circuit(600) randomizes and de-randomizes data transmitted from the page buffer circuit based on a seed allocated in the selected page. The selected page is composed of a plurality of segments.

Description

플래시 메모리 장치 및 그것을 포함한 메모리 시스템{FLASH MEMORY DEVICE AND MEMORY SYSTEM INCLUDING THE SAME}Flash memory device and memory system including the same {FLASH MEMORY DEVICE AND MEMORY SYSTEM INCLUDING THE SAME}

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

플래시 메모리 장치는 복수의 메모리 영역들이 한 번의 프로그램 동작으로 소거 또는 프로그램되는 일종의 EEPROM이다. 일반적인 EEPROM은 단지 하나의 메모리 영역이 한 번에 소거 또는 프로그램 가능하게 하며, 이는 플래시 메모리 장치를 사용하는 시스템들이 동시에 다른 메모리 영역들에 대해 읽고 쓸 때보다 빠르고 효과적인 속도로 플래시 메모리 장치가 동작할 수 있음을 의미한다. 플래시 메모리 및 EEPROM의 모든 형태는 데이터를 저장하는 데 사용되는 전하 저장 수단의 열화 또는 전하 저장 수단을 둘러싸고 있는 절연막의 마멸로 인해서 특정 수의 소거 동작들 후에 마멸된다.A flash memory device is a kind of EEPROM in which a plurality of memory areas are erased or programmed in one program operation. A typical EEPROM allows only one memory area to be erased or programmable at a time, which allows a flash memory device to operate at a faster and more efficient speed than systems using flash memory devices can simultaneously read and write to other memory areas. It means that there is. All forms of flash memory and EEPROM are worn out after a certain number of erase operations due to degradation of the charge storage means used to store the 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 cut off, the information is maintained without consuming power. In addition, flash memory devices provide physical shock resistance and fast read access times. 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 and a memory system including the same that can improve the reliability.

본 발명의 예시적인 실시예에 따르면, 전송되는 데이터를 랜덤화하도록 또는 디-랜덤화하도록 구성된 장치가 제공된다. 그러한 장치는 메모리 공간에 할당된 시드가 메모리 공간의 액세스 요청된 세그먼트들에 반복적으로 적용되도록 구성될 것이다.According to an exemplary embodiment of the present invention, there is provided an apparatus configured to randomize or de-randomize data to be transmitted. Such an apparatus would be configured such that the seed allocated to the memory space is repeatedly applied to the access requested segments of the memory space.

본 발명의 예시적인 실시한 예들에 의하면, 페이지에 할당된 시드를 페이지의 액세스 요청된 세그먼트들에 각각 적용함으로써 랜덤화된 데이터를 디-랜덤화시키고 그리고 프로그램될 데이터를 랜덤화시키는 것이 가능하다.According to exemplary embodiments of the present invention, it is possible to de-randomize the randomized data and randomize the data to be programmed by applying the seed assigned to the page to each of the requested segments of the page.

도 1은 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치를 개략적으로 보여주는 블록도이다.
도 2a는 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치의 랜덤화 단위를 설명하기 위한 도면이다.
도 2b는 도 2a에 도시된 세그먼트의 일예를 보여주는 도면이다.
도 3은 본 발명의 예시적인 실시예에 따른 도 1에 도시된 랜덤화 및 디-랜덤화 회로를 보여주는 블록도이다.
도 4는 본 발명의 예시적인 실시예에 따른 도 3에 도시된 유사-랜덤 시퀀스 발생기를 보여주는 블록도이다.
도 5a는 본 발명의 예시적인 실시예에 따른 도 3에 도시된 시드 초기화부를 보여주는 블록도이다.
도 5b 및 도 5c는 본 발명의 예시적인 실시예에 따른 세크먼트 크기 설정 방법을 개략적으로 설명하기 위한 타이밍도이다.
도 6a 및 도 6b는 본 발명의 예시적인 실시예에 따른 랜덤화 및 디-랜덤화 회로의 동작을 설명하기 위한 타이밍도이다.
도 7a 및 도 7b는 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치의 읽기 및 쓰기 동작들을 설명하기 위한 타이밍도이다.
도 8은 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 9a 및 도 9b는 랜덤화 온/오프 기능의 설정으로 결정되는 랜덤화 영역을 개략적으로 설명하기 위한 도면들이다.
도 10은 본 발명의 다른 예시적인 실시예에 따른 플래시 메모리 장치를 개략적으로 보여주는 블록도이다.
도 11a은 본 발명의 또 다른 실시예에 따른 플래시 메모리 장치를 개략적으로 보여주는 블록도이다.
도 11b는 본 발명의 또 다른 실시예에 따른 플래시 메모리 장치를 개략적으로 보여주는 블록도이다.
도 12는 도 10 및 도 11a에서 설명된 랜덤화 온/오프 기능을 갖는 플래시 메모리 장치의 동작을 설명하기 위한 흐름도이다.
도 13은 올 비트 라인 메모리 구조 또는 오드-이븐 메모리 구조를 위해 도 1에 도시된 메모리 셀 어레이를 메모리 블록들로 구성하는 예를 보여주는 도면이다.
도 14는 본 발명의 다른 예시적인 실시예에 따른 메모리 셀 어레이를 보여주는 도면이다.
도 15는 본 발명의 일 실시예에 따른 도 14에 도시된 메모리 블록들(BLK1~BLKz) 중 하나의 일부를 보여주는 사시도이다.
도 16은 도 15에 도시된 메모리 블록을 Ⅰ-Ⅰ' 선을 따라 절단된 단면을 보여주는 도면이다.
도 17은 본 발명의 예시적인 실시예에 따른 도 16에 도시된 메모리 블록의 등가 회로를 보여주는 회로도이다.
도 18a는 본 발명의 예시적인 실시예에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 18b는 본 발명의 다른 예시적인 실시예에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 19는 본 발명의 다른 예시적인 실시예에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 20은 본 발명의 예시적인 실시예에 따른 반도체 드라이브를 개략적으로 보여주는 블록도이다.
도 21은 본 발명의 다른 예시적인 실시예에 따른 반도체 드라이브를 개략적으로 보여주는 블록도이다.
도 22은 도 20 또는 도 21에 도시된 반도체 드라이브를 이용한 스토리지를 개략적으로 보여주는 블록도이다.
도 23는 도 20 또는 도 21에 도시된 반도체 드라이브를 이용한 스토리지 서버를 개략적으로 보여주는 블록도이다.
도 24 내지 도 26은 본 발명의 예시적인 실시예들에 따른 시스템들을 개략적으로 보여주는 도면들이다.
도 27 내지 도 31은 본 발명의 예시적인 실시예들에 따른 불 휘발성 메모리 장치가 적용되는 다른 시스템들을 개략적으로 보여주는 도면들이다.
1 is a block diagram schematically illustrating a flash memory device according to an exemplary embodiment of the present invention.
2A is a diagram for describing a randomization unit of a flash memory device according to an exemplary embodiment of the present invention.
FIG. 2B is a diagram illustrating an example of the segment illustrated in FIG. 2A.
FIG. 3 is a block diagram illustrating the randomization and de-randomization circuit shown in FIG. 1 in accordance with an exemplary embodiment of the present invention.
4 is a block diagram illustrating a pseudo-random sequence generator shown in FIG. 3 in accordance with an exemplary embodiment of the present invention.
5A is a block diagram illustrating the seed initializer illustrated in FIG. 3 according to an exemplary embodiment of the present invention.
5B and 5C are timing diagrams schematically illustrating a segment size setting method according to an exemplary embodiment of the present invention.
6A and 6B are timing diagrams for describing an operation of a randomization and de-randomization circuit according to an exemplary embodiment of the present invention.
7A and 7B are timing diagrams for explaining read and write operations of a flash memory device according to an exemplary embodiment of the present invention.
8 is a flowchart for describing a method of operating a flash memory device according to an exemplary embodiment of the present invention.
9A and 9B are diagrams for schematically describing a randomization region determined by setting of a randomization on / off function.
10 is a block diagram schematically illustrating a flash memory device according to another exemplary embodiment of the present invention.
11A is a block diagram schematically illustrating a flash memory device according to another embodiment of the present invention.
11B is a block diagram schematically illustrating a flash memory device according to another embodiment of the present invention.
FIG. 12 is a flowchart for describing an operation of a flash memory device having a randomization on / off function described with reference to FIGS. 10 and 11A.
FIG. 13 is a diagram illustrating an example of configuring the memory cell array shown in FIG. 1 into memory blocks for an all-bit line memory structure or an odd-even memory structure.
14 is a diagram illustrating a memory cell array according to another exemplary embodiment of the present invention.
FIG. 15 is a perspective view illustrating a portion of one of the memory blocks BLK1 to BLKz illustrated in FIG. 14 according to an embodiment of the present invention.
FIG. 16 is a cross-sectional view of the memory block shown in FIG. 15 taken along line II ′.
17 is a circuit diagram illustrating an equivalent circuit of the memory block illustrated in FIG. 16 in accordance with an exemplary embodiment of the present invention.
18A is a block diagram schematically illustrating a memory system according to an exemplary embodiment of the present invention.
18B is a block diagram schematically illustrating a memory system according to another exemplary embodiment of the present invention.
19 is a block diagram schematically illustrating a memory system according to another exemplary embodiment of the present invention.
20 is a block diagram schematically illustrating a semiconductor drive according to an exemplary embodiment of the present invention.
21 is a block diagram schematically illustrating a semiconductor drive according to another exemplary embodiment of the present invention.
FIG. 22 is a block diagram schematically illustrating storage using the semiconductor drive illustrated in FIG. 20 or 21.
FIG. 23 is a block diagram schematically illustrating a storage server using the semiconductor drive illustrated in FIG. 20 or 21.
24 to 26 are diagrams schematically showing systems according to exemplary embodiments of the present invention.
27 to 31 are schematic views illustrating 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, parts denoted by the same reference numerals throughout the specification represent the same components.

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

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

도 1은 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치를 개략적으로 보여주는 블록도이다.1 is a block diagram schematically illustrating a flash memory device according to 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), 등과 같은 불 휘발성 메모리 장치들에도 적용될 것이다.Referring to FIG. 1, the flash memory device is, for example, a NAND flash memory device. However, it will be appreciated that the present invention is not limited to flash memory devices. For example, the present invention provides a phase change memory (PRAM), a magnetoresistive random access memory (MRAM), a ferroelectric memory (FRAM), a resistance change memory (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, where M is an integer of 2 or greater. When each memory cell stores 1-bit data, memory cells belonging to each row of the memory cell array 100 may constitute a memory space. When each memory cell stores M-bit data, memory cells belonging to each row of the memory cell array 100 may configure 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 a charge trap layer, or a memory cell having a variable resistance element. The memory cell array 100 may be a single-layer array structure (or referred to as a two-dimensional array structure) or a multi-layer array structure (or a vertical or stacked three-dimensional array structure). Will be implemented).

행 선택 회로(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 control the overall 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 operation mode. For example, during a read operation, page buffer circuit 400 operates as a sense amplifier that senses data from memory cells of a selected row. During the program operation, the page buffer circuit 400 operates as a write driver for driving the memory cells of the selected row in accordance with the program data. The page buffer circuit 400 includes page buffers corresponding to bit lines or to bit line pairs, respectively. If 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)는 열 선택 회로(500)를 통해 전달되는 페이지 버퍼 회로(400)의 데이터(즉, 랜덤화된 데이터)를 디-랜덤화시키도록 구성된다. 본 발명의 예시적인 실시예에 따른 랜덤화 및 디-랜덤화 회로(600)는 풀-페이지 데이터뿐만 아니라 풀-페이지 데이터보다 양적으로 적은 랜덤 데이터(예를 들면, 스페어 영역의 데이터, 섹터 데이터, 섹터 데이터보다 크고 페이지 데이터보다 작은 데이터, 등)에 대한 랜덤화 및 디-랜덤화 동작들을 수행하도록 구성될 것이다. 이는 이후 상세히 설명될 것이다.1, the column select circuit 500 is controlled by the control logic 300 and sequentially selects columns (or page buffers) according to a predetermined unit during a read / program operation. The randomization and de-randomization circuit 600 is controlled by the control logic 300 and is configured to randomize the data (i.e., data to be programmed or original data) passed through the input / output interface 700. The randomization and de-randomization circuit 600 is configured to de-randomize the data (ie, randomized data) of the page buffer circuit 400 delivered through the column selection circuit 500. The randomization and de-randomization circuit 600 according to an exemplary embodiment of the present invention may include not only full-page data but also quantitatively less random data (eg, data in a spare area, sector data, And randomize and de-randomize operations on data larger than sector data and smaller than page data, etc.). This will be explained in detail later.

메모리 셀은 전하 저장 수단에 저장되는 전하들의 양에 따라 2N개의 문턱 전압 산포들(N은 메모리 셀에 저장된 데이터 비트들의 수를 나타냄) 중 어느 하나를 갖는다. 메모리 셀의 문턱 전압(또는, 문턱 전압 산포)는 인접한 메모리 셀들 간에 생기는 커플링(이는 워드 라인 커플링이라 불림)으로 인해 변화될 것이다. 본 발명의 데이터 랜덤화에 의하면, 워드 라인 커플링으로 인해 생기는 메모리 셀들의 문턱 전압들의 변화를 줄이는 것이 가능하다. 다시 말해서, 메모리 셀들의 상태들이 균일하게 분포되기 때문에, 메모리 셀들 간에 생기는 워드 라인 커플링의 정도가 데이터 랜덤화 이전과 비교하여 볼 때 상대적으로 완화될 것이다. 즉, 메모리 셀들의 문턱 전압들의 변화가 억제될 것이다. 이는 읽기 마진의 향상 즉, 신뢰성의 향상을 의미한다.The memory cell has either of 2 N threshold voltage distributions (N represents 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 coupling occurring between adjacent memory cells (called word line coupling). According to the data randomization of the present invention, it is possible to reduce the change in the threshold voltages of the memory cells caused by the word line coupling. In other words, since the states of the memory cells are uniformly distributed, the degree of word line coupling occurring between the memory cells will be relatively relaxed compared to before data randomization. That is, the change of the threshold voltages of the memory cells will be suppressed. This means an increase in read margin, that is, an increase in 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 specific area is requested, the randomization and de-randomization circuit 600 may be configured not to perform randomization and de-randomization operations. The randomization and de-randomization circuit 600 may be configured to transfer data input through the input / output interface 700 to the page buffer circuit 400 without performing a randomization operation. Thereafter, randomization of the data loaded into the page buffer circuit 400 may be performed through the randomization and de-randomization circuit 600 under the control of the control logic 300.

도 2a는 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치의 랜덤화 단위를 설명하기 위한 도면이고, 도 2b는 도 2a에 도시된 세그먼트의 일예를 보여주는 도면이다.FIG. 2A is a diagram illustrating a randomization unit of a flash memory device according to an exemplary embodiment of the present invention, and FIG. 2B is a diagram illustrating an example of a segment illustrated in FIG. 2A.

플래시 메모리 장치에는 복수의 메모리 공간들이 제공될 것이다. 설명의 편의상, 도 2a에는 단지 하나의 메모리 공간이 도시되어 있다. 메모리 공간은, 예를 들면, 하나의 페이지에 대응할 것이다. 메모리 공간 즉, 페이지는 사용자에 의해서 정의된 크기(L)(또는, 길이라 칭함)를 갖는 세그먼트들로 구성된다. 세그먼트 크기(L)는, 예를 들면, 프로그램 데이터와 ECC 데이터의 크기에 따라 결정될 것이다. 세그먼트는, 도 2b에 도시된 바와 같이, 플래시 메모리 장치의 메모리 공간에 저장될 프로그램 데이터를 포함할 것이다. 또한, 세그먼트는 프로그램 데이터에 의거하여 생성되는 ECC 패리티를 포함할 것이다. 따라서, 하나의 세그먼트에는 프로그램 데이터 및 ECC 패리티가 포함될 것이다. 세그먼트 크기(L)는, 예를 들면, 프로그램 데이터의 크기에 따라 결정될 것이다. 플래시 메모리 장치에 대한 랜덤 읽기 및 쓰기 동작은 프로그램 데이터(또는, 세그먼트)를 기준으로 행해질 것이다. 프로그램 데이터의 크기는 사용자의 정의에 따라 다양하게 결정될 수 있다. 또한, ECC의 크기 역시 사용자의 정의에 따라 다양하게 결정될 수 있다. 따라서, 세그먼트 크기(L)는 플래시 메모리 장치가 적용되는 응용처에 따라 가변될 것이다. 즉, 세그먼트 크기(L)는 사용자의 정의에 따라 가변될 수 있다.The flash memory device may be provided with a plurality of memory spaces. For convenience of explanation, only one memory space is shown in FIG. 2A. The memory space may correspond to one page, for example. The memory space, or page, is composed of segments having a size L (or called a length) defined by the user. The segment size L will be determined according to the size of the program data and the ECC data, for example. The segment will include program data to be stored in the memory space of the flash memory device, as shown in FIG. 2B. The segment will also include ECC parity generated based on the program data. Thus, one segment will contain program data and ECC parity. The segment size L will be determined according to the size of the program data, for example. Random read and write operations to the flash memory device may be performed based on program data (or segments). The size of the program data may be variously determined according to the definition of the user. In addition, the size of the ECC may also be variously determined according to the definition of the user. Therefore, the segment size L will vary depending on the application to which the flash memory device is applied. That is, the segment size L may vary according to the definition of the user.

본 발명의 실시예에 따르면, 데이터 랜덤화/디-랜덤화를 위해서 하나의 페이지에는 하나의 시드가 할당된다. 또한, 페이지를 기준으로 데이터 랜덤화가 행해지는 것이 아니라, 세그먼트를 기준으로 데이터 랜덤화/디-랜덤화가 행해질 것이다. 이러한 경우, 하나의 페이지에 할당된 시드는 랜덤 액세스 및 순차 액세스에 무관하게 각 세그먼트에 반복적으로 적용될 것이다. 다시 말해서, 도 2a에 도시된 바와 같이, 세그먼트 마다 시드 초기화가 행해진다. 시드 초기화에 의하면, 각 세그먼트의 데이터는 대응하는 페이지에 할당된 시드에 따라 생성되는 랜덤 시퀀스에 의거하여 랜덤화/디-랜덤화될 것이다. 즉, 하나의 페이지에 할당된 시드는 각 세그먼트에 반복적으로 적용될 것이다. 이후, 하나의 페이지에 할당된 시드가 각 세그먼트에 반복적으로 적용되는 기술이 상세히 설명될 것이다.According to an embodiment of the present invention, one seed is allocated to one page for data randomization / de-randomization. In addition, data randomization is not performed based on pages, but data randomization / de-randomization is performed based on segments. In this case, the seed assigned to one page will be applied repeatedly to each segment regardless of random access and sequential access. In other words, as shown in Fig. 2A, seed initialization is performed for each segment. According to seed initialization, the data of each segment will be randomized / de-randomized based on a random sequence generated according to the seed assigned to the corresponding page. That is, the seed assigned to one page will be repeatedly applied to each segment. The technique in which the seed assigned to one page is repeatedly applied to each segment will be described in detail later.

예시적인 실시예에 있어서, 사용자의 정의에 따라 결정된 크기를 갖는 세그먼트라는 용어 대신에 섹터라는 용어가 사용될 수 있다. 하지만, 사용자의 정의에 따라 결정된 크기를 갖는 데이터가 다양한 용어들로 정의될 수 있음은 잘 이해될 것이다. 또한, '세그먼트'라는 용어는 프로그램 데이터와 ECC로 구성되는 데이터 단위를 나타내는 데 사용될 것이다.In an exemplary embodiment, the term sector may be used in place of the term segment having a size determined according to the definition of the user. However, it will be appreciated that data having a size determined according to a user's definition may be defined in various terms. The term 'segment' will also be used to indicate a data unit consisting of program data and ECC.

도 3은 본 발명의 예시적인 실시예에 따른 도 1에 도시된 랜덤화 및 디-랜덤화 회로를 보여주는 블록도이다.FIG. 3 is a block diagram illustrating the randomization and de-randomization circuit shown in FIG. 1 in accordance with an exemplary embodiment of the present invention.

도 3을 참조하면, 랜덤화 및 디-랜덤화 회로(600)는 시드 테이블(610), 시드 초기화부(620), 유사-랜덤 시퀀스 발생기(Pseudo-Random sequence generator)(630), 그리고 믹서(640)를 포함할 것이다. 시드 테이블(610)은 행들(또는, 페이지들)에 각각 할당된 시드들을 저장하도록 구성될 것이다. 시드 테이블(610)의 시드들은 액세스 요청된 페이지(또는, 행)의 어드레스(예를 들면, 페이지 어드레스)에 의해서 선택되며, 선택된 시드는 유사-랜덤 시퀀스 발생기(630)에 로드될 것이다. 선택된 시드가 유사-랜덤 시퀀스 발생기(630)에 로드되는 동작을 "시드 초기화 동작(seed initialization operation)"이라 칭한다. 시드 초기화 동작을 통해 시드 테이블(610)의 선택된 시드로 유사-랜덤 시퀀스 발생기(630)가 초기화될 것이다. 시드 초기화부(620)는 유사-랜덤 시퀀스 발생기(630)를 선택된 시드로 초기화하기 위한 초기화 신호(INIT)를 발생할 것이다. 초기화 신호(INIT)는 액세스 요청시 그리고 각 세그먼트의 랜던화/디-랜덤화에 앞서 발생될 것이다. 초기화 신호(INIT)를 발생하는 동작은 이후 상세히 설명될 것이다. 초기화 신호(INIT)는, 예를 들면, 펄스 형태로 생성될 것이다. 유사-랜덤 시퀀스 발생기(630)는 초기화 신호(INIT)에 응답하여 시드 테이블(610)로부터 제공되는 시드로 초기화되며, 시드 초기화 동작 이후 랜덤 시퀀스 데이터(RSD)를 순차적으로 생성할 것이다. 랜던 시퀀스 데이터(RSD)는 믹서(640)로 제공될 것이다. 믹서(640)로 순차적으로 제공되는 랜덤 시퀀스 데이터(RSD)의 그룹은 랜덤 시퀀스를 구성할 것이다. 여기서, 랜덤 시퀀스 데이터(RSD)는 1-비트 데이터일 것이다. 하지만, 랜덤 시퀀스 데이터(RSD)의 비트 수가 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 멀티-상태를 갖는 랜덤 시퀀스 데이터(RSD)가 사용될 수 있다. 이때 각각의 멀티-상태를 나타내는 값은 하나의 심벌(symbol)로 정의되며, 원래의 심벌값은 랜덤 시퀀스 심벌데이터와 논리적으로 조합되어 전체 심벌값들간의 랜덤성을 향상시킨다.Referring to FIG. 3, the randomization and de-randomization circuit 600 includes a seed table 610, a seed initializer 620, a pseudo-random sequence generator 630, and a mixer ( 640). The seed table 610 will be configured to store the seeds assigned to the rows (or pages), respectively. Seeds of the seed table 610 are selected by the address (eg, page address) of the page (or row) requested for access, and the selected seed will be loaded into the pseudo-random sequence generator 630. The operation in which the selected seed is loaded into the pseudo-random sequence generator 630 is referred to as a "seed initialization operation". The pseudo-random sequence generator 630 will be initialized with the selected seed of the seed table 610 through a seed initialization operation. The seed initializer 620 may generate an initialization signal INIT for initializing the pseudo-random sequence generator 630 to the selected seed. An initialization signal INIT will be generated upon access request and prior to randomization / de-randomization of each segment. The operation of generating the initialization signal INIT will be described in detail later. The initialization signal INIT will be generated, for example, in the form of a pulse. The pseudo-random sequence generator 630 is initialized with the seed provided from the seed table 610 in response to the initialization signal INIT and sequentially generates random sequence data RSD after the seed initialization operation. The random sequence data RSD will be provided to the mixer 640. A group of random sequence data (RSD) sequentially provided to the mixer 640 will constitute a random sequence. Here, the random sequence data RSD may be 1-bit data. However, it will be understood that the number of bits of random sequence data (RSD) is not limited to that disclosed herein. For example, random sequence data (RSD) with multi-states can be used. At this time, the value representing each multi-state is defined as one symbol, and the original symbol value is logically combined with random sequence symbol data to improve randomness among all symbol values.

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

예시적인 실시예에 있어서, 믹서(640)는, 예를 들면, XOR 로직으로 구성될 것이다. 하지만, 믹서(640)의 구성이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다.In an exemplary embodiment, the mixer 640 will be configured with XOR logic, for example. However, it will be understood that the configuration of the mixer 640 is not limited to that disclosed herein.

도 4는 본 발명의 예시적인 실시예에 따른 도 3에 도시된 유사-랜덤 시퀀스 발생기를 보여주는 블록도이다.4 is a block diagram illustrating a pseudo-random sequence generator shown in FIG. 3 in accordance with an exemplary embodiment of the present invention.

도 4를 참조하면, 유사-랜덤 시퀀스 발생기(630)는 쉬프트 레지스터(shift register)를 구성하는 플립-플롭들(FF0, FF1, FF2), 멀티플렉서들(MUX0, MUX1, MUX2), 그리고 XOR 로직 게이트(631)를 포함하며, 도면에 도시된 바와 같이 연결되어 있다. 유사-랜덤 시퀀스 발생기(630)는 하나의 쉬프트 레지스터와 하나의 XOR 로직 게이트(631)를 포함하는 선형 피드백 쉬프트 레지스터(Linear Feedback Shift Register: LFSR)로 구현될 수 있다. 유사-랜덤 시퀀스 발생기(630)의 구성이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다. 하지만, 유사-랜덤 시퀀스 발생기(630)가 PN(Pseudo-random Number) 시퀀스 발생기, CRC(Cyclic Redundancy Code) 발생기, 또는 그와 같은 것으로 구현될 수 있음은 잘 이해될 것이다.Referring to FIG. 4, the pseudo-random sequence generator 630 may include flip-flops FF0, FF1, and FF2, multiplexers MUX0, MUX1, and MUX2, and an XOR logic gate. And 631, and are connected as shown in the figure. The pseudo-random sequence generator 630 may be implemented as a linear feedback shift register (LFSR) including one shift register and one XOR logic gate 631. It will be appreciated that the configuration of pseudo-random sequence generator 630 is not limited to that disclosed herein. However, it will be appreciated that pseudo-random sequence generator 630 may be implemented with a pseudo-random number (PN) sequence generator, a cyclic redundancy code (CRC) generator, or the like.

초기화 신호(INIT)가 펄스 형태로 활성화될 때, 도 3에 도시된 시드 테이블(610)로부터 제공되는 시드(S2S1S0)는 멀티플렉서들(MUX2, MUX1, MUX0)을 통해 플립-플롭들(FF2, FF1, FF0)로 전달된다. 예를 들면, 시드값(S2)는 멀티플렉서(MUX2)를 통해 플립-플롭(FF2)에 로드되고, 시드값(S1)는 멀티플렉서(MUX1)를 통해 플립-플롭(FF1)에 로드되며, 시드값(S0)는 멀티플렉서(MUX0)를 통해 플립-플롭(FF0)에 로드된다. 즉, 초기화 신호(INIT)가 활성화될 때마다, 유사-랜덤 시퀀스 발생기(630)가 시드 테이블(610)의 선택된 시드로 설정되는 시드 초기화 동작이 행해질 것이다. 시드 초기화 동작이 행해진 후, 유사-랜덤 시퀀스 발생기(630)는 클록 신호(CLK)에 응답하여 랜덤 시퀀스 데이터(RSD)를 순차적으로 생성할 것이다. 여기서, 클록 신호(CLK)는 데이터 입력/출력시 토글되는 신호(예를 들면, 읽기 인에이블 신호(/RE) 또는 쓰기 인에이블 신호(/WE))에 동기되어 생성될 것이다.When the initialization signal INIT is activated in the form of a pulse, the seed S2S1S0 provided from the seed table 610 shown in FIG. 3 is flip-flops FF2 and FF1 through the multiplexers MUX2, MUX1, and MUX0. , FF0). For example, the seed value S2 is loaded into the flip-flop FF2 through the multiplexer MUX2, and the seed value S1 is loaded into the flip-flop FF1 through the multiplexer MUX1. S0 is loaded into the flip-flop FF0 through the multiplexer MUX0. That is, each time the initialization signal INIT is activated, a seed initialization operation will be performed in which the pseudo-random sequence generator 630 is set to the selected seed of the seed table 610. After the seed initialization operation is performed, the pseudo-random sequence generator 630 will sequentially generate random sequence data RSD in response to the clock signal CLK. Here, the clock signal CLK may be generated in synchronization with a signal that is toggled during data input / output (eg, a read enable signal / RE or a write enable signal / WE).

도 5a는 본 발명의 예시적인 실시예에 따른 도 3에 도시된 시드 초기화부를 보여주는 블록도이다.5A is a block diagram illustrating the seed initializer illustrated in FIG. 3 according to an exemplary embodiment of the present invention.

도 5a를 참조하면, 시드 초기화부(620)는 제 1 및 제 2 가산기들(621, 622), 선택기(623), 레지스터(624), 비교기(625), 그리고 OR 게이트(626)를 포함할 것이다. 시드 초기화부(620)는 액세스 요청시 초기화 신호(INIT)를 발생할 것이다. 또한, 시드 초기화부(620)는 현재 세그먼트의 데이터에 대한 랜덤화/디-랜덤화가 종료되기에 앞서 초기화 신호(INIT)를 발생할 것이다. 초기화 신호(INIT)의 발생에 의하면, 액세스된 페이지에 대응하는 시드 테이블(610)의 시드가 유사-랜덤 시퀀스 발생기(630)에 로드될 것이다. 즉, 유사-랜덤 시퀀스 발생기(630)는 액세스된 페이지에 대응하는 시드 테이블(610)의 시드로 초기화될 것이다. 유사-랜덤 시퀀스 발생기(630)의 초기화는 초기화 신호(INIT)가 발생할 때마다 행해질 것이다.Referring to FIG. 5A, the seed initializer 620 may include first and second adders 621 and 622, a selector 623, a register 624, a comparator 625, and an OR gate 626. will be. The seed initializer 620 may generate an initialization signal INIT upon an access request. In addition, the seed initializer 620 may generate an initialization signal INIT before the randomization / de-randomization of data of the current segment is completed. According to the generation of the initialization signal INIT, the seed of the seed table 610 corresponding to the accessed page will be loaded into the pseudo-random sequence generator 630. That is, pseudo-random sequence generator 630 will be initialized with the seed of seed table 610 corresponding to the accessed page. Initialization of pseudo-random sequence generator 630 will be performed each time an initialization signal INIT occurs.

제 1 가산기(621)는 입력들(CURR_PB_PTR, SEG_L-1)을 가산하고, 제 2 가산기(622)는 입력들(CURR_L_REG, SEG_L)을 가산한다. 여기서, 입력(CURR_PB_PTR)은 도 1의 열 선택 회로(500)에 의해서 선택되는 페이지 버퍼를 가리키기 위한 포인터를 나타낸다. 즉, 입력(CURR_PB_PTR)은 현재의 열 어드레스 값을 나타낸다. 입력(SEG_L)은 사용자에 의해서 정의된 세그먼트 크기를 나타내고, 입력(CURR_L_REG)은 레지스터(624)의 출력을 나타낸다.The first adder 621 adds inputs CURR_PB_PTR and SEG_L-1, and the second adder 622 adds inputs CURR_L_REG and SEG_L. Here, the input CURR_PB_PTR indicates a pointer for indicating a page buffer selected by the column selection circuit 500 of FIG. 1. In other words, the input CURR_PB_PTR indicates the current column address value. The input SEG_L represents the segment size defined by the user, and the input CURR_L_REG represents the output of the register 624.

선택기(623)는 선택 신호(ACC_REQ)에 응답하여 제 1 및 제 2 가산기들(621, 622)의 출력들(AO, BO) 중 하나를 선택한다. 선택 신호(ACC_REQ)는 액세스 요청시 펄스 형태로 활성화될 것이다. 선택기(623)는 선택 신호(ACC_REQ)의 활성화시 제 1 가산기(621)의 출력(AO)을 선택하고, 선택 신호(ACC_REQ)의 비활성화시 제 2 가산기(622)의 출력(BO)을 선택한다. 레지스터(624)는 OR 게이트(626)로부터 출력되는 초기화 신호(INIT)에 응답하여 선택기(623)에 의해서 선택된 값을 저장하는 데 사용될 것이다. 비교기(625)는 레지스터(624)의 출력(CURR_L_REG)과 현재의 열 어드레스(CURR_PB_PTR)가 서로 일치하는 지의 여부를 판별하며, 판별 결과로서 펄스 신호(PUL)를 발생할 것이다. OR 게이트(626)는 선택 신호(ACC_REQ)와 펄스 신호(PUL)에 응답하여 초기화 신호(INIT)를 발생할 것이다. 선택 신호(ACC_REQ)와 펄스 신호(PUL) 중 어느 하나가 활성화될 때, 초기화 신호(INIT)가 펄스 형태로 활성화될 것이다. 초기화 신호(INIT)가 활성화될 때, 유사-랜덤 시퀀스 발생기(630)에 대한 시드 초기화 동작이 행해짐과 동시에, 다음의 세그먼트의 마지막 데이터를 나타내는 값이 레지스터(624)에 로드될 것이다.The selector 623 selects one of the outputs AO and BO of the first and second adders 621 and 622 in response to the selection signal ACC_REQ. The selection signal ACC_REQ will be activated in the form of a pulse upon access request. The selector 623 selects the output AO of the first adder 621 when the selection signal ACC_REQ is activated, and selects the output BO of the second adder 622 when the selection signal ACC_REQ is inactive. . The register 624 will be used to store the value selected by the selector 623 in response to the initialization signal INIT output from the OR gate 626. The comparator 625 determines whether the output CURR_L_REG of the register 624 and the current column address CURR_PB_PTR coincide with each other, and generate a pulse signal PUL as a result of the determination. The OR gate 626 may generate an initialization signal INIT in response to the selection signal ACC_REQ and the pulse signal PUL. When either the selection signal ACC_REQ and the pulse signal PUL are activated, the initialization signal INIT will be activated in the form of a pulse. When the initialization signal INIT is activated, a seed initialization operation on the pseudo-random sequence generator 630 will be performed, while a value representing the last data of the next segment will be loaded into the register 624.

본 발명의 예시적인 실시예에 따른 시드 초기화부(620)가 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 비록 도면에는 도시되지 않았지만, 제 1 및 제 2 가산기들(621, 622) 중 하나는 제거될 수 있다. 이러한 경우, 선택기(623)는 가산기 앞단에 위치하며, 입력들(CURR_PB_PTR, SEG_L-1) 또는 입력들(CURR_L_REG, SEG_L)을 가산기로 전달할 것이다. 가산기에 의해서 가산된 값은 레지스터(624)로 전달될 것이다.It will be appreciated that the seed initializer 620 according to an exemplary embodiment of the invention is not limited to that disclosed herein. For example, although not shown in the figure, one of the first and second adders 621, 622 may be removed. In this case, the selector 623 is located in front of the adder and will pass the inputs CURR_PB_PTR, SEG_L-1 or the inputs CURR_L_REG, SEG_L to the adder. The value added by the adder will be passed to register 624.

도 5b 및 도 5b는 본 발명의 예시적인 실시예에 따른 세크먼트 크기 설정 방법을 개략적으로 설명하기 위한 타이밍도이다.5B and 5B are timing diagrams schematically illustrating a segment size setting method according to an exemplary embodiment of the present invention.

세크먼트 크기(SEG_L)는 특정 명령을 이용하여 플래시 메모리 장치가 적용되는 메모리 제어기로부터 제공될 것이다. 예를 들면, 도 5b에 도시된 바와 같이, 세크먼트 크기(SEG_L)를 나타내는 파라미터는 세트 피쳐 명령(set feature command)와 함께 메모리 제어기에서 플래시 메모리 장치로 전송될 것이다. 여기서, 어드레스는 세크먼트 크기(SEG_L)를 나타내는 데이터(D0~Dn)가 저장될 위치(예를 들면, 레지스터 위치)를 나타내는 데 사용될 것이다. 세크먼트 크기(SEG_L)를 나타내는 데이터(D0~Dn)는 DQS 신호의 하강 및 상승 에지들에 각각 동기되어 플래시 메모리 장치의 레지스터(예를 들면, 도 1의 제어 로직(300)에 포함됨)에 저장될 것이다. 도 5c에 도시된 바와 같이, 도 5b에 도시된 더블 데이터 레이트(DDR) 방식이 아니라 싱글 데이터 레이트(SDR) 방식으로 세크먼트 크기(SEG_L)를 나타내는 데이터(D0~Dn)가 입력될 수 있음은 잘 이해될 것이다. 세크먼트 크기(SEG_L)를 설정하는 동작은 파워-업 이후 세트 피쳐 명령과 함께 세그먼트 크기(SEG_L)의 값을 플래시 메모리 장치로 전송함으로써 달성될 수 있다.The segment size SEG_L may be provided from the memory controller to which the flash memory device is applied using a specific command. For example, as shown in FIG. 5B, a parameter indicative of the segment size SEG_L may be sent from the memory controller to the flash memory device along with a set feature command. Here, the address will be used to indicate a location (eg, a register location) in which data D0 to Dn representing the segment size SEG_L are to be stored. The data D0-Dn representing the segment size SEG_L are stored in registers (eg, included in the control logic 300 of FIG. 1) of the flash memory device in synchronization with the falling and rising edges of the DQS signal, respectively. Will be. As shown in FIG. 5C, the data D0 to Dn indicating the segment size SEG_L may be input in a single data rate SDR method instead of the double data rate DRD method illustrated in FIG. 5B. It will be well understood. The operation of setting the segment size SEG_L may be accomplished by transmitting the value of the segment size SEG_L to the flash memory device with the set feature command after the power-up.

본 발명의 예시적인 실시예에 있어서, 도 5b에 도시된 바와 같이, 커맨드와 어드레스는 WE 신호를 토글하여 전송하며, 쓰기 동작시, 데이터는 데이터 스토로브 신호(data strobe signal)로서 DQS 신호의 토글에 따라 외부로부터 입력될 것이다. 마찬가지로, 읽기 동작시, 데이터는 외부에서 입력되는 RE신호에 따라 발생하는 DQS 신호의 토글에 따라 외부로 출력될 것이다. 이러한 데이터 입출력 방식을 채용한 플래시 메모리 장치를 "토글 DDR NAND 플래시 메모리 장치"라 칭하며, 웹 사이트(http://www.samsung.com/global/business/semiconductor/products/flash/Products_Toggle_DDR_NANDFlash.html)에 개시되어 있으며, 레퍼런스로 포함될 것이다. 또한, 플래시 메모리 장치는 ONFI (Open NAND Flash Interface) DDR NAND 플래시 메모리 장치로 구성될 수 있으며, 이는 웹 사이트(http://onfi.org/specifications/)에 게재되어 있으며, 레퍼런스로 포함될 것이다. 한편, 도 5c에 도시된 바와 같이, SDR(Single Data Rate) 형식을 따르는 읽기/쓰기 동작의 경우는 DQS 신호대신 RE/WE 신호가 사용될 수 있다.In the exemplary embodiment of the present invention, as shown in FIG. 5B, the command and the address toggle the WE signal and transmit, and during the write operation, the data is a toggle of the DQS signal as a data strobe signal. Will be input from outside. Similarly, in a read operation, data may be output to the outside according to the toggle of the DQS signal generated according to the RE signal input from the outside. Flash memory devices employing this data input / output method are referred to as "toggle DDR NAND flash memory devices" and are available on the web site (http://www.samsung.com/global/business/semiconductor/products/flash/Products_Toggle_DDR_NANDFlash.html). It is disclosed and will be included as a reference. In addition, the flash memory device may be configured as an Open NAND Flash Interface (ONFI) DDR NAND flash memory device, which is published on the website (http://onfi.org/specifications/) and will be incorporated by reference. Meanwhile, as shown in FIG. 5C, in the case of a read / write operation that follows the SDR (Single Data Rate) format, the RE / WE signal may be used instead of the DQS signal.

예시적인 실시예에 있어서, 세트 피쳐 명령과 함께 제공되는 데이터(D0~Dn) 중 일부만이 세그먼트 크기(SEG_L)를 나타내는 데이터로서 사용될 수 있다. 나머지 데이터는 세그먼트 크기와 다른 파라미터를 지정하는 데 사용될 수 있다. 이는 이후 상세히 설명될 것이다. 세그먼트 크기(SEG_L)를 설정하는 데 세트 피쳐 명령 대신 테스트 명령이 사용될 수 있다. In an exemplary embodiment, only some of the data D0 to Dn provided with the set feature command may be used as data representing the segment size SEG_L. The remaining data can be used to specify segment size and other parameters. This will be explained in detail later. The test command may be used instead of the set feature command to set the segment size SEG_L.

예시적인 실시예에 있어서, 세크먼트 크기(SEG_L)를 설정하는 동작이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 플래시 메모리 장치의 메모리 셀 어레이(100)에 불 휘발성 트림 정보로서 세그먼트 크기(SEG_L)의 값이 저장될 수 있다. 이러한 경우, 파워-업시, 세그먼트 크기(SEG_L)의 값은 제어 로직(300)의 제어하에 랜덤화 및 디-랜덤화 회로(600)로 로드될 것이다. 다른 예로서, 세그먼트 크기(SEG_L)의 값은 웨이퍼 레벨 또는 패키지 레벨에서 퓨즈 옵션을 통해 설정될 수 있다.In an exemplary embodiment, it will be appreciated that the operation of setting the segment size SEG_L is not limited to that disclosed herein. For example, a value of the segment size SEG_L may be stored as the nonvolatile trim information in the memory cell array 100 of the flash memory device. In this case, upon power-up, the value of the segment size SEG_L will be loaded into the randomization and de-randomization circuit 600 under the control of the control logic 300. As another example, the value of the segment size SEG_L may be set through the fuse option at the wafer level or at the package level.

도 6a는 본 발명의 예시적인 실시예에 따른 랜덤화 및 디-랜덤화 회로의 동작을 설명하기 위한 타이밍도이다. 이하, 본 발명의 예시적인 실시예에 따른 랜덤화 및 디-랜덤화 회로의 동작이 참조 도면들에 의거하여 상세히 설명될 것이다. 설명에 앞서, 세그먼트 크기(L)가 1084B(B는 바이트를 나타냄)라 가정하자. 또한, 액세스 요청시 입력된 열 어드레스가 CA0라고 가정하자. 이러한 가정에 따르면, 요청된 액세스는 풀-페이지 데이터를 읽기 위한 순차 액세스(sequential access)일 것이다.6A is a timing diagram illustrating the operation of a randomization and de-randomization circuit in accordance with an exemplary embodiment of the present invention. Hereinafter, the operation of the randomization and de-randomization circuit according to an exemplary embodiment of the present invention will be described in detail based on the reference figures. Prior to the description, assume that the segment size L is 1084B (B represents bytes). Also assume that the column address entered in the access request is CA0. According to this assumption, the requested access will be sequential access to read the full-page data.

먼저, 읽기/쓰기 동작이 요청될 때, 액세스 요청된 페이지에 대응하는 어드레스가 플래시 메모리 장치로 전송될 것이다. 시드 테이블(610)의 시드들 중 하나가 페이지 어드레스에 따라 선택될 것이다. 선택된 시드는 유사-랜덤 시퀀스 발생기(630)로 전송될 것이다. 액세스 요청은 읽기 동작시 특정 명령(예를 들면, 30h)가 입력된 후 그리고 쓰기 동작시 어드레스가 입력된 후 완료될 것이다. 액세스 요청의 완료시, 선택 신호(ACC_REQ)는 제어 로직(300)에 의해서 펄스 형태로 활성화될 것이다.First, when a read / write operation is requested, an address corresponding to an access requested page will be sent to the flash memory device. One of the seeds of the seed table 610 will be selected according to the page address. The selected seed will be sent to the pseudo-random sequence generator 630. The access request will be completed after a specific command (eg, 30h) has been entered in the read operation and after an address has been entered in the write operation. Upon completion of the access request, the selection signal ACC_REQ will be activated in pulse form by the control logic 300.

선택 신호(ACC_REQ)가 활성화됨에 따라, 시드 초기화부(620)의 OR 게이트(626)는 활성화된 선택 신호(ACC_REQ)에 응답하여 초기화 신호(INIT)를 펄스 형태로 활성화시킨다. 초기화 신호(INIT)가 펄스 형태로 활성화됨에 따라, 유사-랜덤 시퀀스 발생기(630)는 시드 테이블(610)로부터 제공되는 시드로 초기화될 것이다. 다시 말해서, 초기화 신호(INIT)가 활성화될 때, 유사-랜덤 시퀀스 발생기(630)의 멀티플렉서들(MUX0-MUX2)을 통해 시드(S0-S2)가 플립-플롭들(FF0-FF2)로 전달된다. 결과적으로, 초기화 신호(INIT)가 활성화될 때, 유사-랜덤 시퀀스 발생기(630)가 시드 테이블(610)로부터 제공되는 시드로 초기화되는 시드 초기화 동작이 행해질 것이다.As the selection signal ACC_REQ is activated, the OR gate 626 of the seed initialization unit 620 activates the initialization signal INIT in the form of a pulse in response to the activated selection signal ACC_REQ. As the initialization signal INIT is activated in pulse form, the pseudo-random sequence generator 630 will be initialized with the seed provided from the seed table 610. In other words, when the initialization signal INIT is activated, the seed S0-S2 is transferred to the flip-flops FF0-FF2 through the multiplexers MUX0-MUX2 of the pseudo-random sequence generator 630. . As a result, when the initialization signal INIT is activated, a seed initialization operation will be performed in which the pseudo-random sequence generator 630 is initialized with the seed provided from the seed table 610.

선택 신호(ACC_REQ)가 활성화됨에 따라, 시드 초기화부(620)의 선택기(623)는 제 1 가산기(621)의 출력(AO)를 레지스터(624)로 전달한다. 레지스터(624)에는 초기화 신호(INIT)의 활성화에 따라 제 1 가산기(621)의 출력(AO)이 저장될 것이다. 제 1 가산기(621)의 출력(AO)은 현재의 열 어드레스(CA0)를 나타내는 값(CURR_PB_PTR)과 세그먼트 크기보다 1만큼 작은 값(SEG_L-1)의 합 즉, 1083의 값을 갖는다. 즉, 레지스터(624)는 1083의 값으로 설정될 것이다. 이는 레지스터(624)의 출력(CURR_L_REG)이 1083의 값을 가짐을 의미한다. 레지스터(624)에 저장된 값은 현재 전송되는 세그먼트의 마지막 데이터(또는, 마지막 세그먼트 데이터라 칭함)(예를 들면, D1083)를 나타내는 데 사용될 것이다. 이는 다음의 세그먼트에 속한 첫 번째 세그먼트 데이터(예를 들면, D1084)의 랜덤화/디-랜덤화를 위한 시드 초기화 동작을 수행하기 위함이다. As the selection signal ACC_REQ is activated, the selector 623 of the seed initializer 620 transfers the output AO of the first adder 621 to the register 624. The register 624 may store the output AO of the first adder 621 according to the activation of the initialization signal INIT. The output AO of the first adder 621 has a sum of the value CURR_PB_PTR indicating the current column address CA0 and the value SEG_L-1 smaller than 1 by the segment size, that is, the value 1083. That is, register 624 will be set to a value of 1083. This means that the output CURR_L_REG of the register 624 has a value of 1083. The value stored in register 624 will be used to indicate the last data (or referred to as the last segment data) (eg, D1083) of the segment currently being transmitted. This is to perform a seed initialization operation for randomization / de-randomization of the first segment data (eg, D1084) belonging to the next segment.

시드 초기화 동작 이후, 데이터(예를 들면, 읽혀진 데이터로서 랜덤화된 데이터 또는 프로그램될 데이터)가 랜덤화 및 디-랜덤화 회로(600)로 전송될 것이다. 믹서(640)는 랜덤화 및 디-랜덤화 회로(600)로 전송되는 데이터와 유사-랜덤 시퀀스 발생기(630)로부터의 랜덤 시퀀스 데이터(RSD)를 논리적으로 조합할 것이다. 즉, 랜덤화 및 디-랜덤화 회로(600)로 전송되는 데이터는 랜덤화되거나 디-랜덤화될 것이다. 랜덤화 및 디-랜덤화 회로(600)로 데이터가 순차적으로 전송됨에 따라, 도 6a에 도시된 바와 같이, 열 어드레스(CA) 역시 순차적으로 증가될 것이다. 현재의 열 어드레스(CA)를 나타내는 값(CURR_PB_PTR)은 시드 초기화부(630)의 비교기(625)로 전송될 것이다. 비교기(625)는 레지스터(624)의 출력(CURR_L_REG)(현재 세그먼트의 마지막 세그먼트 데이터를 나타냄)과 현재의 열 어드레스를 나타내는 값(CURR_PB_PTR)이 일치하는 지의 여부를 판별할 것이다.After the seed initialization operation, data (eg, data randomized as read data or data to be programmed) will be sent to the randomization and de-randomization circuit 600. The mixer 640 will logically combine the data sent to the randomization and de-randomization circuit 600 with the random sequence data RSD from the pseudo-random sequence generator 630. That is, data sent to the randomization and de-randomization circuit 600 will be randomized or de-randomized. As data is sequentially sent to the randomization and de-randomization circuit 600, as shown in FIG. 6A, the column address CA will also increase sequentially. The value CURR_PB_PTR representing the current column address CA will be transmitted to the comparator 625 of the seed initializer 630. Comparator 625 will determine whether the output (CURR_L_REG) of the register 624 (which indicates the last segment data of the current segment) and the value (CURR_PB_PTR) that represents the current column address match.

만약 레지스터(624)의 출력(CURR_L_REG)과 현재의 열 어드레스를 나타내는 값(CURR_PB_PTR)이 일치하면, 비교기(625)의 출력(PUL)은 펄스 형태로 활성화될 것이다. 다시 말해서, 도 6a에 도시된 바와 같이, 레지스터(624)의 출력(CURR_L_REG)이 1083이고 현재의 열 어드레스를 나타내는 값(CURR_PB_PTR)이 1083일 때, 비교기(625)의 출력(PUL)은 펄스 형태로 활성화될 것이다. 비교기(625)의 출력이 활성화됨은 현재 세그먼트의 마지막 세그먼트 데이터를 위한 랜덤 시퀀스 데이터(RSD)가 생성되었음을 의미한다. 비교기(625)의 출력(PUL)이 펄스 형태로 활성화됨에 따라, 초기화 신호(INIT) 역시 펄스 형태로 활성화될 것이다. 이는 시드 테이블(610)로부터 출력되는 시드(액세스 요청된 페이지에 대응함)가 유사-랜덤 시퀀스 발생기(630)의 멀티플렉서들(MUX2-MUX0)을 통해 플립-플롭들(FF2-FF0)에 로드됨을 의미한다. 즉, 유사-랜덤 시퀀스 발생기(630)의 시드 초기화 동작이 수행될 것이다.If the output CURR_L_REG of the register 624 and the value CURR_PB_PTR indicating the current column address match, the output PUL of the comparator 625 will be activated in the form of a pulse. In other words, as shown in FIG. 6A, when the output CURR_L_REG of the register 624 is 1083 and the value CURR_PB_PTR indicating the current column address is 1083, the output PUL of the comparator 625 is in the form of a pulse. Will be activated. When the output of the comparator 625 is activated, it means that random sequence data RSD for the last segment data of the current segment is generated. As the output PUL of the comparator 625 is activated in pulse form, the initialization signal INIT will also be activated in pulse form. This means that the seed (corresponding to the access requested page) output from the seed table 610 is loaded into the flip-flops FF2-FF0 through the multiplexers MUX2-MUX0 of the pseudo-random sequence generator 630. do. That is, the seed initialization operation of the pseudo-random sequence generator 630 will be performed.

이때, 선택 신호(ACC_REQ)가 비활성화 상태로 유지되기 때문에, 제 2 가산기(622)의 출력(BO)은 선택기(623)를 통해 레지스터(624)로 전송될 것이다. 초기화 신호(INIT)가 비교기(625)의 출력(PUL)의 활성화에 따라 펄스 형태로 활성화될 때, 레지스터(624)에는 제 2 가산기(622)의 출력(BO)이 로드될 것이다. 여기서, 제 2 가산기(622)의 출력(BO)은 세크먼트 크기(SEG_L)와 레지스터(624)의 출력(CURR_L_REG)의 합으로, 2167의 값을 갖는다. 즉, 레지스터(624)는 두 번째 세그먼트의 마지막 세그먼트 데이터(D2167)를 나타내는 2167의 값으로 설정될 것이다. 이는 레지스터(624)의 출력(CURR_L_REG)이 2167의 값을 가짐을 의미한다.At this time, since the selection signal ACC_REQ is maintained in an inactive state, the output BO of the second adder 622 may be transmitted to the register 624 through the selector 623. When the initialization signal INIT is activated in the form of a pulse upon activation of the output PUL of the comparator 625, the output BO of the second adder 622 will be loaded in the register 624. Here, the output BO of the second adder 622 is the sum of the segment size SEG_L and the output CURR_L_REG of the register 624 and has a value of 2167. That is, register 624 will be set to a value of 2167 representing the last segment data D2167 of the second segment. This means that the output CURR_L_REG of the register 624 has a value of 2167.

이후, 두 번째 세그먼트에 대한 데이터 랜덤화/디-랜덤화 동작과 나머지 세그먼트들에 대한 시드 초기화 동작은 앞서 설명된 것과 실질적으로 동일하게 수행되며, 그것에 대한 설명은 그러므로 생략될 것이다.Thereafter, the data randomization / de-randomization operation for the second segment and the seed initialization operation for the remaining segments are performed substantially the same as described above, and a description thereof will therefore be omitted.

이상의 설명으로부터 알 수 있듯이, 시드 초기화 동작은 각 세그먼트의 첫 번째 데이터(D0, D1084, D2168, ...)가 랜덤화/디-랜덤화되기 이전에 행해질 것이다. 따라서, 페이지에 할당된 시드는 사용자에 의해서 정의된 크기를 갖는 세그먼트들(하나의 페이지에 속함)에 반복적으로 적용될 것이다.As can be seen from the above description, the seed initialization operation will be performed before the first data D0, D1084, D2168, ... of each segment is randomized / de-randomized. Thus, the seed assigned to the page will be applied repeatedly to segments (belonging to one page) having a size defined by the user.

도 6b는 본 발명의 예시적인 실시예에 따른 랜덤화 및 디-랜덤화 회로의 동작을 설명하기 위한 타이밍도이다. 이하, 본 발명의 예시적인 실시예에 따른 랜덤화 및 디-랜덤화 회로의 동작이 참조 도면들에 의거하여 상세히 설명될 것이다. 설명에 앞서, 세그먼트의 크기가 1084B(B는 바이트를 나타냄)라 가정하자. 또한, 액세스 요청시 입력된 열 어드레스가 CA1084라고 가정하자. 이러한 가정에 따르면, 요청된 액세스는 풀-페이지 데이터(즉, 하나의 페이지)에 속한 하나 또는 그 보다 많은 세그먼트들을 읽기 위한 랜덤 액세스(random access)일 것이다.6B is a timing diagram illustrating the operation of a randomization and de-randomization circuit according to an exemplary embodiment of the present invention. Hereinafter, the operation of the randomization and de-randomization circuit according to an exemplary embodiment of the present invention will be described in detail based on the reference figures. Prior to the description, assume that the size of the segment is 1084B (B represents bytes). Also assume that the column address entered in the access request is CA1084. According to this assumption, the requested access will be random access for reading one or more segments belonging to full-page data (ie, one page).

먼저, 읽기/쓰기 동작이 요청될 때, 액세스 요청된 페이지에 대응하는 어드레스가 플래시 메모리 장치로 전송될 것이다. 시드 테이블(610)의 시드들 중 하나가 페이지 어드레스에 따라 선택될 것이다. 선택된 시드는 유사-랜덤 시퀀스 발생기(630)로 전송될 것이다. 액세스 요청은 읽기 동작시 특정 명령(예를 들면, 30h)가 입력된 후 그리고 쓰기 동작시 어드레스가 입력된 후 완료될 것이다. 액세스 요청의 완료시, 선택 신호(ACC_REQ)는 제어 로직(300)에 의해서 펄스 형태로 활성화될 것이다.First, when a read / write operation is requested, an address corresponding to an access requested page will be sent to the flash memory device. One of the seeds of the seed table 610 will be selected according to the page address. The selected seed will be sent to the pseudo-random sequence generator 630. The access request will be completed after a specific command (eg, 30h) has been entered in the read operation and after an address has been entered in the write operation. Upon completion of the access request, the selection signal ACC_REQ will be activated in pulse form by the control logic 300.

선택 신호(ACC_REQ)가 활성화됨에 따라, 시드 초기화부(620)의 OR 게이트(626)는 활성화된 선택 신호(ACC_REQ)에 응답하여 초기화 신호(INIT)를 펄스 형태로 활성화시킨다. 초기화 신호(INIT)가 펄스 형태로 활성화됨에 따라, 유사-랜덤 시퀀스 발생기(630)는 시드 테이블(610)로부터 제공되는 시드로 초기화될 것이다. 다시 말해서, 초기화 신호(INIT)가 활성화될 때, 유사-랜덤 시퀀스 발생기(630)의 멀티플렉서들(MUX0-MUX2)을 통해 시드(S0-S2)가 플립-플롭들(FF0-FF2)로 전달된다. 결과적으로, 초기화 신호(INIT)가 활성화될 때, 유사-랜덤 시퀀스 발생기(630)가 시드 테이블(610)로부터 제공되는 시드로 초기화되는 시드 초기화 동작이 행해질 것이다.As the selection signal ACC_REQ is activated, the OR gate 626 of the seed initialization unit 620 activates the initialization signal INIT in the form of a pulse in response to the activated selection signal ACC_REQ. As the initialization signal INIT is activated in pulse form, the pseudo-random sequence generator 630 will be initialized with the seed provided from the seed table 610. In other words, when the initialization signal INIT is activated, the seed S0-S2 is transferred to the flip-flops FF0-FF2 through the multiplexers MUX0-MUX2 of the pseudo-random sequence generator 630. . As a result, when the initialization signal INIT is activated, a seed initialization operation will be performed in which the pseudo-random sequence generator 630 is initialized with the seed provided from the seed table 610.

선택 신호(ACC_REQ)가 활성화됨에 따라, 시드 초기화부(620)의 선택기(623)는 제 1 가산기(621)의 출력(AO)를 레지스터(624)로 전달한다. 레지스터(624)에는 초기화 신호(INIT)의 활성화에 따라 제 1 가산기(621)의 출력(AO)이 저장될 것이다. 제 1 가산기(621)의 출력(AO)은 현재의 열 어드레스(CA1084)를 나타내는 값(CURR_PB_PTR)과 세그먼트 크기보다 1만큼 작은 값(SEG_L-1)의 합 즉, 2167의 값을 갖는다. 즉, 레지스터(624)는 2167의 값으로 설정될 것이다. 이는 레지스터(624)의 출력(CURR_L_REG)이 2167의 값을 가짐을 의미한다. 레지스터(624)에 저장된 값은 현재 전송되는 세그먼트의 마지막 데이터(또는, 마지막 세그먼트 데이터라 칭함)(예를 들면, D2167)를 나타내는 데 사용될 것이다. 이는 다음의 세그먼트에 속한 첫 번째 세그먼트 데이터(예를 들면, D2168)의 랜덤화/디-랜덤화를 위한 시드 초기화 동작을 수행하기 위함이다. As the selection signal ACC_REQ is activated, the selector 623 of the seed initializer 620 transfers the output AO of the first adder 621 to the register 624. The register 624 may store the output AO of the first adder 621 according to the activation of the initialization signal INIT. The output AO of the first adder 621 has a value of 2167, that is, the sum of the value CURR_PB_PTR indicating the current column address CA1084 and the value SEG_L-1 smaller than 1 by the segment size. That is, register 624 will be set to a value of 2167. This means that the output CURR_L_REG of the register 624 has a value of 2167. The value stored in register 624 will be used to indicate the last data (or referred to as the last segment data) of the currently transmitted segment (eg, D2167). This is to perform a seed initialization operation for randomization / de-randomization of the first segment data (eg, D2168) belonging to the next segment.

시드 초기화 동작 이후, 데이터(예를 들면, 읽혀진 데이터로서 랜덤화된 데이터 또는 프로그램될 데이터)가 랜덤화 및 디-랜덤화 회로(600)로 전송될 것이다. 믹서(640)는 랜덤화 및 디-랜덤화 회로(600)로 전송되는 데이터와 유사-랜덤 시퀀스 발생기(630)로부터의 랜덤 시퀀스 데이터(RSD)를 논리적으로 조합할 것이다. 즉, 랜덤화 및 디-랜덤화 회로(600)로 전송되는 데이터는 랜덤화되거나 디-랜덤화될 것이다. 랜덤화 및 디-랜덤화 회로(600)로 데이터가 순차적으로 전송됨에 따라, 도 6b에 도시된 바와 같이, 열 어드레스(CA) 역시 순차적으로 증가될 것이다. 현재의 열 어드레스(CA)를 나타내는 값(CURR_PB_PTR)은 시드 초기화부(630)의 비교기(625)로 전송될 것이다. 비교기(625)는 레지스터(624)의 출력(CURR_L_REG)(현재 세그먼트의 마지막 세그먼트 데이터를 나타냄)과 현재의 열 어드레스를 나타내는 값(CURR_PB_PTR)이 일치하는 지의 여부를 판별할 것이다.After the seed initialization operation, data (eg, data randomized as read data or data to be programmed) will be sent to the randomization and de-randomization circuit 600. The mixer 640 will logically combine the data sent to the randomization and de-randomization circuit 600 with the random sequence data RSD from the pseudo-random sequence generator 630. That is, data sent to the randomization and de-randomization circuit 600 will be randomized or de-randomized. As data is sequentially sent to the randomization and de-randomization circuit 600, as shown in FIG. 6B, the column address CA will also increase sequentially. The value CURR_PB_PTR representing the current column address CA will be transmitted to the comparator 625 of the seed initializer 630. Comparator 625 will determine whether the output (CURR_L_REG) of the register 624 (which indicates the last segment data of the current segment) and the value (CURR_PB_PTR) that represents the current column address match.

만약 레지스터(624)의 출력(CURR_L_REG)과 현재의 열 어드레스를 나타내는 값(CURR_PB_PTR)이 일치하면, 비교기(625)의 출력(PUL)은 펄스 형태로 활성화될 것이다. 다시 말해서, 도 6b에 도시된 바와 같이, 레지스터(624)의 출력(CURR_L_REG)이 2167이고 현재의 열 어드레스를 나타내는 값(CURR_PB_PTR)이 2167일 때, 비교기(625)의 출력(PUL)은 펄스 형태로 활성화될 것이다. 비교기(625)의 출력이 활성화됨은 현재 세그먼트의 마지막 세그먼트 데이터를 위한 랜덤 시퀀스 데이터(RSD)가 생성되었음을 의미한다. 비교기(625)의 출력(PUL)이 펄스 형태로 활성화됨에 따라, 초기화 신호(INIT) 역시 펄스 형태로 활성화될 것이다. 이는 시드 테이블(610)로부터 출력되는 시드(액세스 요청된 페이지에 대응함)가 유사-랜덤 시퀀스 발생기(630)의 멀티플렉서들(MUX2-MUX0)을 통해 플립-플롭들(FF2-FF0)에 로드됨을 의미한다. 즉, 유사-랜덤 시퀀스 발생기(630)의 시드 초기화 동작이 수행될 것이다.If the output CURR_L_REG of the register 624 and the value CURR_PB_PTR indicating the current column address match, the output PUL of the comparator 625 will be activated in the form of a pulse. In other words, as shown in FIG. 6B, when the output CURR_L_REG of the register 624 is 2167 and the value CURR_PB_PTR indicating the current column address is 2167, the output PUL of the comparator 625 is in the form of a pulse. Will be activated. When the output of the comparator 625 is activated, it means that random sequence data RSD for the last segment data of the current segment is generated. As the output PUL of the comparator 625 is activated in pulse form, the initialization signal INIT will also be activated in pulse form. This means that the seed (corresponding to the access requested page) output from the seed table 610 is loaded into the flip-flops FF2-FF0 through the multiplexers MUX2-MUX0 of the pseudo-random sequence generator 630. do. That is, the seed initialization operation of the pseudo-random sequence generator 630 will be performed.

이때, 선택 신호(ACC_REQ)가 비활성화 상태로 유지되기 때문에, 제 2 가산기(622)의 출력(BO)은 선택기(623)를 통해 레지스터(624)로 전송될 것이다. 초기화 신호(INIT)가 비교기(625)의 출력(PUL)의 활성화에 따라 펄스 형태로 활성화될 때, 레지스터(624)에는 제 2 가산기(622)의 출력(BO)이 로드될 것이다. 여기서, 제 2 가산기(622)의 출력(BO)은 세크먼트 크기(SEG_L)와 레지스터(624)의 출력(CURR_L_REG)의 합으로, 3251의 값을 갖는다. 즉, 레지스터(624)는 두 번째 세그먼트의 마지막 세그먼트 데이터(D3251)를 나타내는 3251의 값으로 설정될 것이다. 이는 레지스터(624)의 출력(CURR_L_REG)이 3251의 값을 가짐을 의미한다.At this time, since the selection signal ACC_REQ is maintained in an inactive state, the output BO of the second adder 622 may be transmitted to the register 624 through the selector 623. When the initialization signal INIT is activated in the form of a pulse upon activation of the output PUL of the comparator 625, the output BO of the second adder 622 will be loaded in the register 624. Here, the output BO of the second adder 622 is the sum of the segment size SEG_L and the output CURR_L_REG of the register 624 and has a value of 3251. That is, register 624 will be set to a value of 3251 representing the last segment data D3251 of the second segment. This means that the output CURR_L_REG of the register 624 has a value of 3251.

이후, 두 번째 세그먼트에 대한 데이터 랜덤화/디-랜덤화 동작과 나머지 세그먼트들에 대한 시드 초기화 동작은 앞서 설명된 것과 실질적으로 동일하게 수행되며, 그것에 대한 설명은 그러므로 생략될 것이다.Thereafter, the data randomization / de-randomization operation for the second segment and the seed initialization operation for the remaining segments are performed substantially the same as described above, and a description thereof will therefore be omitted.

이상의 설명으로부터 알 수 있듯이, 시드 초기화 동작은 각 세그먼트의 첫 번째 데이터(D1084, D2168, ...)가 랜덤화/디-랜덤화되기 이전에 행해질 것이다. 따라서, 페이지에 할당된 시드는 사용자에 의해서 정의된 크기를 갖는 세그먼트들(하나의 페이지에 속함)에 반복적으로 적용될 것이다.As can be seen from the above description, the seed initialization operation will be performed before the first data (D1084, D2168, ...) of each segment is randomized / de-randomized. Thus, the seed assigned to the page will be applied repeatedly to segments (belonging to one page) having a size defined by the user.

도 7a 및 도 7b는 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치의 읽기 및 쓰기 동작들을 개략적으로 설명하기 위한 타이밍도이다.7A and 7B are timing diagrams for schematically describing read and write operations of a flash memory device according to an exemplary embodiment of the present invention.

먼저, 쓰기 동작시, 명령(80h)와 어드레스(C1C2R1R2R3) (C는 열 어드레스를 나타내고, R은 행 어드레스를 나타냄)의 입력에 이어서 프로그램될 데이터로서 일련의 세그먼트들(SEG[0]~SEG[i-1])가 입력될 것이다. 여기서, 세그먼트들 (SEG[0]~SEG[i-1]) 각각은 프로그램 데이터와 ECC로 구성될 것이다. 도 7a에 도시된 바와 같이, 세그먼트 마다 시드 초기화 동작이 행해질 것이다. 시드 초기화 동작은 도 6a 및 도 6b에서 설명된 것과 실질적으로 동일하며, 그것에 대한 설명은 그러므로 생략될 것이다. 일련의 세그먼트들(SEG[0]~SEG[i-1])이 입력된 후, 레디/비지 신호(

Figure pat00001
)는 명령(10h)의 입력에 따라 로우 레벨로 천이한다. 프로그램 동작이 완료되면, 레디/비지 신호(
Figure pat00002
)는 하이 레벨로 천이한다. 즉, 쓰기 동작이 종료될 것이다.First, in a write operation, a series of segments SEG [0] to SEG [as data to be programmed following the input of an instruction 80h and an address C1C2R1R2R3 (C represents a column address and R represents a row address). i-1]) will be entered. Here, each of the segments SEG [0] to SEG [i-1] may be composed of program data and ECC. As shown in FIG. 7A, a seed initialization operation will be performed for each segment. The seed initialization operation is substantially the same as that described in FIGS. 6A and 6B, and a description thereof will therefore be omitted. After a series of segments (SEG [0] to SEG [i-1]) is input, the ready / busy signal (
Figure pat00001
) Transitions to the low level according to the input of the command 10h. When the program operation is completed, the ready / busy signal (
Figure pat00002
) Transitions to a high level. That is, the write operation will end.

도 7b에 도시된 바와 같이, 읽기 동작은 일련의 명령(00h), 어드레스(C1C2R1R2R3), 그리고 명령(30h)의 입력에 응답하여 행해질 것이다. 기 동작 동안, 레디/비지 신호(

Figure pat00003
)는 로우 레벨로 유지될 것이다. 이후, 읽혀진 데이터로서, 일련의 세그먼트들(Segment[0], Segment[1], 등)이 순차적으로 출력될 것이다. 여기서, 세그먼트들(Segment[0], Segment[1], 등) 각각은 프로그램 데이터와 ECC로 구성될 것이다. 도 7b에 도시된 바와 같이, 세그먼트 마다 시드 초기화 동작이 행해질 것이다. 시드 초기화 동작은 도 6a 및 도 6b에서 설명된 것과 실질적으로 동일하며, 그것에 대한 설명은 그러므로 생략될 것이다. 비록 도면에는 도시되지 않았지만, 도 6a 및 도 6b에서 설명된 바와 같이, 최초의 시드 초기화 동작은 실질적인 데이터 랜덤화/디-랜덤화 이전에 액세스 요청에 따라 행해질 것이다.As shown in FIG. 7B, the read operation will be performed in response to the input of the series of commands 00h, the address C1C2R1R2R3, and the command 30h. During the operation, the ready / busy signal (
Figure pat00003
) Will remain at the low level. Then, as read data, a series of segments (Segment [0], Segment [1], etc.) will be sequentially output. Here, each of the segments Segment [0], Segment [1], etc. may be composed of program data and ECC. As shown in FIG. 7B, a seed initialization operation will be performed for each segment. The seed initialization operation is substantially the same as that described in FIGS. 6A and 6B, and a description thereof will therefore be omitted. Although not shown in the figures, as described in FIGS. 6A and 6B, the initial seed initialization operation will be performed according to the access request prior to actual data randomization / de-randomization.

도 8은 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치의 동작 방법을 설명하기 위한 흐름도이다. 이하, 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치의 동작 방법이 참조 도면들에 의거하여 상세히 설명될 것이다.8 is a flowchart for describing a method of operating a flash memory device according to an exemplary embodiment of the present invention. Hereinafter, a method of operating a flash memory device according to an exemplary embodiment of the present invention will be described in detail with reference to the accompanying drawings.

도 8을 참조하면, 플래시 메모리 장치의 동작 방법은 액세스 요청을 입력받는 단계(S100); 액세스 요청된 페이지에 대응하는 시드를 선택하는 단계(S200); 선택된 시드로 유사-랜덤 시퀀스 발생기(630)가 초기화되는 시드 초기화 동작을 수행하는 단계(S300); 랜덤 시퀀스 데이터를 발생하여 랜던 시퀀스 데이터와 전송된 데이터를 조합하는 단계(S400); 그리고 모든 세그먼트들이 전송되었는 지의 여부(즉, 액세스 요청된 세그먼트들이 모두 전송되었는 지의 여부)를 판별하는 단계(S500)를 포함할 것이다. 모든 세그먼트들이 전송되지 않은 경우, 동작 방법은 시드 초기화 동작을 수행하기 위한 S300 단계로 진행할 것이다. 이에 반해서, 모든 세그먼트들이 전송된 것으로 판별되면, 플래시 메모리 장치의 동작 방법은 종료될 것이다.Referring to FIG. 8, the method of operating a flash memory device may include receiving an access request (S100); Selecting a seed corresponding to an access requested page (S200); Performing a seed initialization operation in which the pseudo-random sequence generator 630 is initialized with the selected seed (S300); Generating random sequence data to combine random sequence data and transmitted data (S400); And determining whether all segments have been transmitted (that is, whether all of the segments requested for access have been transmitted) (S500). If all segments are not transmitted, the operation method will proceed to step S300 for performing a seed initialization operation. In contrast, if it is determined that all segments have been transmitted, the method of operating the flash memory device will be terminated.

예시적인 실시예에 있어서, 세그먼트 크기(L)를 정의하기 위한 동작은 도 8에서 설명된 정상적인 액세스 요청 이전에 행해질 것이다.In an exemplary embodiment, the operation to define the segment size L will be done before the normal access request described in FIG. 8.

도 9a 및 도 9b는 랜덤화 온/오프 기능의 설정으로 결정되는 랜덤화 영역을 개략적으로 설명하기 위한 도면들이다.9A and 9B are diagrams for schematically describing a randomization region determined by setting of a randomization on / off function.

세트 피쳐 명령(또는, 테스트 명령)과 함께 제공되는 데이터(D0~Dn)에는 세그먼트 크기를 설정하기 위한 파라미터 값뿐만 아니라 랜덤화 온/오프 정보 및/또는 랜덤화 오프 영역 정보를 나타내는 파라미터 값이 포함될 것이다. 예를 들면, 도 9a에 도시된 바와 같이, 세트 피쳐 명령(또는, 테스트 명령)과 함께 제공되는 데이터는 랜덤화 온/오프 정보를 나타내는 온/오프 플래그와 랜덤화 오프 영역 정보를 나타내는 오프 영역 정보를 포함할 것이다. 랜덤화 오프 영역 정보로서 랜덤화 오프 시작 어드레스(또는, 포인터) 및 랜덤화 오프 종료 어드레스(또는, 포인터)에 의해서 세그먼트의 일부 영역(도면에서 빗금친 영역)(이하, 랜덤화 오프 영역이라 칭함)이 지정될 수 있다. 이러한 경우, 랜덤화 오프 영역을 제외한 나머지 부분의 데이터는 랜덤화될 것이다. 랜덤화 오프 영역을 지정하는 방법은 다양하게 변경될 수 있다. 예를 들면, 랜덤화 오프 시작 어드레스(또는, 포인터)만이 제공될 때, 랜덤화 오프 영역은 랜덤화 오프 시작 어드레스에 의해서 지정된 액세스 포인트에서 세그먼트의 끝까지 결정될 것이다. 즉, 도 9b에 도시된 바와 같이, 세그먼트의 패리티 정보에 대응하는 영역을 랜덤화 오프 영역으로 정의하고자 하는 경우, 랜덤화 오프 시작 어드레스만이 파라미터 값에 포함될 것이다. 랜덤화 오프 영역이 스페어 데이터 그리고/또는 모니터링 데이터를 저장하는 영역을 포함함은 잘 이해될 것이다. 여기서, 모니터링 데이터는 MLC 읽기 레벨 제어를 위한 모니터링 데이터 패턴을 포함할 것이다. 이는 대한민국특허 공개번호 제2009-0066680호(대응미국특허공개번호 제2009-0164710호)에 "반도체 메모리 시스템 및 그것의 액세스 방법"이라는 제목으로 개시되어 있으며, 레퍼런스로 포함될 것이다.The data D0 to Dn provided with the set feature command (or test command) include parameter values for setting the segment size as well as parameter values indicating random on / off information and / or randomized off area information. will be. For example, as shown in FIG. 9A, data provided with a set feature command (or a test command) may include on / off flags indicating random on / off information and off area information indicating randomized off area information. It will include. Some areas of the segment (areas hatched in the drawing) by the randomization off start address (or pointer) and the randomization off end address (or pointer) as the randomization off area information (hereinafter referred to as randomization off area) Can be specified. In this case, the data of the remaining portions except the randomization off region will be randomized. The method of designating the randomization off region may be variously changed. For example, when only a randomization off start address (or pointer) is provided, the randomization off area will be determined from the access point specified by the randomization off start address to the end of the segment. That is, as illustrated in FIG. 9B, when a region corresponding to parity information of the segment is to be defined as a randomization off region, only the randomization off start address will be included in the parameter value. It will be appreciated that the randomization off area includes the area storing spare data and / or monitoring data. Here, the monitoring data will include a monitoring data pattern for MLC read level control. This is disclosed in Korean Patent Publication No. 2009-0066680 (corresponding US Patent Publication No. 2009-0164710) entitled "Semiconductor Memory System and Access Method thereof" and will be incorporated by reference.

예시적인 실시예에 있어서, 세 피쳐 명령 대신에 랜덤마이즈 온리드/오프리드 명령이 별도로 사용될 수 있다.In an exemplary embodiment, instead of three feature instructions, a randomize on / off instruction can be used separately.

예시적인 실시예에 있어서, 랜덤화 오프 영역의 단위는 다양하게 결정될 수 있다. 예를 들면, 랜덤화 오프 영역의 단위는 세그먼트 내의 임의의 크기, 하나 또는 그 보다 많은 세그먼트들, 하나 또는 그 보다 많은 페이지들, 하나 또는 그 보다 많은 메모리 블록들, 하나 또는 그 보다 많은 플랜들, 하나 또는 그 보다 많은 채널들, 또는 그것들의 조합으로 구성될 수 있다.In an exemplary embodiment, the unit of the randomization off region may be variously determined. For example, the unit of randomization off region may be any size in a segment, one or more segments, one or more pages, one or more memory blocks, one or more plans, It may consist of one or more channels, or a combination thereof.

예시적인 실시예에 있어서, 랜덤화 온/오프 기능은 웨어 인덱스(wear index)에 의거하여 자동적으로 설정될 수 있다. 예를 들면, 웨어 인덱스는 프로그램-소거 사이클, 프로그램 시간(또는, 프로그램 루프 횟수), 소거 시간(또는, 소거 루프 횟수), 읽기 레벨 쉬프트(또는, 전하 손실) 등을 포함할 것이다. 메모리 제어기는 웨어 인덱스에 의거하여 플래시 메모리 장치의 랜덤화 온/오프 기능을 자동적으로 설정할 것이다.In an exemplary embodiment, the randomization on / off function may be automatically set based on a wear index. For example, the wear index may include a program-erase cycle, program time (or program loop count), erase time (or erase loop count), read level shift (or charge loss), and the like. The memory controller will automatically set the random on / off function of the flash memory device based on the wear index.

비록 도면에는 도시되지 않았지만, 랜덤화 온/오프 기능의 설정은 랜덤화뿐만 아니라 디-랜덤화에도 적용됨은 잘 이해될 것이다.Although not shown in the figure, it will be understood that the setting of the randomization on / off function is applied not only to randomization but also to de-randomization.

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

도 10을 참조하면, 플래시 메모리 장치는 메모리 셀 어레이(100a), 제어 로직(300a), 페이지 버퍼 회로(400a), 열 선택 회로(500a), 랜덤화 및 디-랜덤화 회로(600a), 그리고 입출력 인터페이스(700a)를 포함할 것이다. 도 10에 도시된 메모리 셀 어레이(100a), 페이지 버퍼 회로(400a), 열 선택 회로(500a), 그리고 입출력 인터페이스(700a)는 도 1에 도시된 것과 실질적으로 동일하게 동작하며, 그것에 대한 설명은 그러므로 생략될 것이다.Referring to FIG. 10, a flash memory device may include a memory cell array 100a, a control logic 300a, a page buffer circuit 400a, a column select circuit 500a, a randomization and de-randomization circuit 600a, and And an input / output interface 700a. The memory cell array 100a, the page buffer circuit 400a, the column select circuit 500a, and the input / output interface 700a shown in FIG. 10 operate substantially the same as those shown in FIG. Therefore it will be omitted.

제어 로직(300a)은 레지스터(301)와 디코더(302)를 포함할 것이다. 레지스터(301)는 세트 피쳐 명령과 함께 입력되는 파라미터 값(예를 들면, 랜덤화 오프 영역 정보 및 랜덤화 온/오프 정보를 포함함)으로 설정될 것이다. 디코더(302)는 레지스터(301)에 저장된 파라미터 값을 디코딩하여 랜덤화 오프 플래그 신호(RFS)를 발생할 것이다. 랜덤화 오프 플래그 신호(RFS)는 액세스 요청(또는, 읽기/쓰기 요청)시 현재 열 오프셋 값이 레지스터(301)에 저장된 랜덤화 오프 영역에 속하는 지의 여부에 따라 활성화될 것이다. 랜덤화 오프 플래그 신호(RFS)의 활성화는 랜덤화 기능이 오프됨을 의미한다. 디코더(302)는, 예를 들면, 카운터, 카운터의 값과 랜덤 오프 영역의 시작 어드레스를 비교하기 위한 비교기, 등으로 구성될 수 있다.The control logic 300a will include a register 301 and a decoder 302. The register 301 will be set to a parameter value (eg, including randomized off region information and randomized on / off information) input with the set feature command. Decoder 302 will decode the parameter value stored in register 301 to generate a randomized off flag signal (RFS). The randomization off flag signal (RFS) will be activated upon access request (or read / write request) depending on whether the current column offset value belongs to the randomization off region stored in the register 301. Activation of the randomization off flag signal (RFS) means that the randomization function is turned off. The decoder 302 may be configured, for example, with a counter, a comparator for comparing the value of the counter with the start address of the random off region, and the like.

랜덤화 및 디-랜덤화 회로(600a)는 입출력 인터페이스(700a)와 열 선택 회로(500a) 사이에 위치하며, 전송되는 데이터(프로그램 데이터 또는 읽혀진 데이터)의 랜덤화/디-랜덤화를 행할 것이다. 랜덤화 및 디-랜덤화 회로(600a)는 랜덤화 및 디-랜덤화 유니트(601)와 멀티플렉서/디멀티플렉서(602)를 포함할 것이다. 랜덤화 및 디-랜덤화 유니트(601)는 도 3에 도시된 것과 실질적으로 동일하게 동작하며, 그것에 대한 설명은 그러므로 생략될 것이다.The randomization and de-randomization circuit 600a is located between the input / output interface 700a and the column selection circuitry 500a and will randomize / de-randomize the transmitted data (program data or read data). . The randomization and de-randomization circuit 600a will include a randomization and de-randomization unit 601 and a multiplexer / demultiplexer 602. The randomization and de-randomization unit 601 operates substantially the same as that shown in FIG. 3, and a description thereof will therefore be omitted.

멀티플렉서/디멀티플렉서(602)는 랜덤화 오프 플래그 신호(RFS)에 응답하여 동작하며, 입출력 인터페이스(700a)로부터 전달되는 데이터와 랜덤화 및 디-랜덤화 유니트(601)로부터 출력되는 데이터 중 하나를 선택할 것이다. 예를 들면, 랜덤화 오프 플래그 신호(RFS)가 활성화될 때(즉, 랜덤화 기능이 오프될 때), 멀티플렉서/디멀티플렉서(602)는 입출력 인터페이스(700a)로부터 전달되는 데이터(즉, 랜덤화되지 않은 데이터)를 선택할 것이다. 멀티플렉서/디멀티플렉서(602)는 랜덤화 오프 플래그 신호(RFS)의 비활성화에 응답하여 랜덤화 및 디-랜덤화 유니트(601)로부터 출력되는 데이터(즉, 랜덤화된 데이터)를 선택할 것이다.The multiplexer / demultiplexer 602 operates in response to the randomization off flag signal (RFS), and selects one of data transmitted from the input / output interface 700a and data output from the randomization and de-randomization unit 601. will be. For example, when the randomization off flag signal (RFS) is activated (ie, when the randomization function is turned off), the multiplexer / demultiplexer 602 receives data (i.e., not randomized) from the input / output interface 700a. Not data). The multiplexer / demultiplexer 602 will select data output from the randomization and de-randomization unit 601 (ie, randomized data) in response to deactivation of the randomization off flag signal (RFS).

멀티플렉서/디멀티플렉서(602)는 랜덤화 오프 플래그 신호(RFS)에 응답하여 동작하며, 열 선택 회로(500a)로부터 출력되는 데이터를 입출력 인터페이스(700a) 및 랜덤화 및 디-랜덤화 유니트(601) 중 어느 하나로 전달할 것이다. 예를 들면, 멀티플렉서/디멀티플렉서(602)는 랜덤화 오프 플래그 신호(RFS)의 활성화에 응답하여 열 선택 회로(500a)로부터 출력되는 데이터를 입출력 인터페이스(700a)로 전달할 것이다. 멀티플렉서/디멀티플렉서(602)는 랜덤화 오프 플래그 신호(RFS)의 비활성화에 응답하여 열 선택 회로(500a)로부터 출력되는 데이터를 랜덤화 및 디-랜덤화 유니트(601)로 전달할 것이다.The multiplexer / demultiplexer 602 operates in response to the randomization off flag signal (RFS), and outputs data output from the column selection circuit 500a to the input / output interface 700a and the randomization and de-randomization unit 601. Will be delivered to either. For example, the multiplexer / demultiplexer 602 may transfer data output from the column select circuit 500a to the input / output interface 700a in response to the activation of the randomization off flag signal RFS. The multiplexer / demultiplexer 602 will pass the data output from the column select circuit 500a to the randomization and de-randomization unit 601 in response to deactivation of the randomization off flag signal (RFS).

예시적인 실시예에 있어서, 랜덤화 및 디-랜덤화 유니트(601)는, 도 10에서 점선으로 도시된 바와 같이, 랜덤화 오프 플래그 신호(RFS)를 제공받도록 구성될 수 있다. 이는 랜덤 오프 영역의 크기에 따라 선택적으로 랜덤화 및 디-랜덤화 유니트(601)가 동작하도록 하기 위함이다. 예를 들면, 랜덤화 온/오프가 세그먼트 단위로 행해지는 경우, 랜덤화 및 디-랜덤화 유니트(601)는 랜덤화 오프 플래그 신호(RFS)에 영향을 받지 않을 것이다. 랜덤화 온/오프가 페이지/블록/플랜 단위로 행해지는 경우, 랜덤화 및 디-랜덤화 유니트(601)는 랜덤화 오프가 적용되는 데이터가 입력되는 동안 동작하지 않도록 랜덤화 오프 플래그 신호(RFS)에 영향을 받을 것이다.In an exemplary embodiment, the randomization and de-randomization unit 601 may be configured to receive a randomization off flag signal (RFS), as shown by the dashed lines in FIG. 10. This is to allow the randomization and de-randomization unit 601 to operate selectively according to the size of the random off region. For example, if randomization on / off is performed on a segment basis, the randomization and de-randomization unit 601 will not be affected by the randomization off flag signal (RFS). When randomization on / off is performed on a page / block / plan basis, the randomization and de-randomization unit 601 does not operate while the data to which randomization off is applied is inputted. Will be affected).

이상의 설명으로부터 알 수 있듯이, 레지스터(301)에 설정된 파라미터 값에 의거하여 랜덤화/디-랜덤화 기능을 활성화 또는 비활성화시키는 것이 가능하다.As can be seen from the above description, it is possible to activate or deactivate the randomization / de-randomization function based on the parameter value set in the register 301.

도 11a는 본 발명의 또 다른 실시예에 따른 플래시 메모리 장치를 개략적으로 보여주는 블록도이다.11A is a block diagram schematically illustrating a flash memory device according to another embodiment of the present invention.

도 11a를 참조하면, 플래시 메모리 장치는 메모리 셀 어레이(100b), 제어 로직(300b), 페이지 버퍼 회로(400b), 열 선택 회로(500b), 랜덤화 및 디-랜덤화 회로(600b), 그리고 입출력 인터페이스(700b)를 포함할 것이다. 도 11a에 도시된 메모리 셀 어레이(100b), 제어 로직(300b), 페이지 버퍼 회로(400b), 열 선택 회로(500b), 그리고 입출력 인터페이스(700b)는 도 10에 도시된 것과 실질적으로 동일하게 동작하며, 그것에 대한 설명은 그러므로 생략될 것이다.Referring to FIG. 11A, a flash memory device includes a memory cell array 100b, a control logic 300b, a page buffer circuit 400b, a column select circuit 500b, a randomization and de-randomization circuit 600b, and And an input / output interface 700b. The memory cell array 100b, the control logic 300b, the page buffer circuit 400b, the column select circuit 500b, and the input / output interface 700b shown in FIG. 11A operate substantially the same as that shown in FIG. The description thereof will therefore be omitted.

랜덤화 및 디-랜덤화 회로(600b)는 랜덤 시퀀스 데이터 발생 유니트(603), 오어 게이트(604), 그리고 제 1 및 제 2 멀티플렉서들(605, 606)를 포함할 것이다. 랜덤 시퀀스 데이터 발생 유니트(603)는 믹서(630)가 제거된다는 점을 제외하면 도 3에 도시된 것과 동일하게 구성될 것이다. 예를 들면, 랜덤 시퀀스 데이터 발생 유니트(603)는 시드 테이블(610), 시드 초기화부(620), 그리고 유사-랜덤 시퀀스 발생기(630)를 포함할 것이다. 랜덤 시퀀스 데이터 발생 유니트(603)에 의해서 순차적으로 생성되는 랜덤 시퀀스 데이터(예를 들면, 1-비트 랜덤 시퀀스 데이터)는 인버터(INV1)를 통해 오어 게이트(604)로 제공될 것이다. 오어 게이트(604)는 랜덤화 오프 플래그 신호(RFS) 및 반전된 랜덤 시퀀스 데이터에 응답하여 선택 신호(SEL)를 출력할 것이다.The randomization and de-randomization circuit 600b will include a random sequence data generation unit 603, an or gate 604, and first and second multiplexers 605 and 606. The random sequence data generation unit 603 will be configured the same as that shown in FIG. 3 except that the mixer 630 is removed. For example, the random sequence data generation unit 603 may include a seed table 610, a seed initializer 620, and a pseudo-random sequence generator 630. Random sequence data (eg, 1-bit random sequence data) sequentially generated by the random sequence data generation unit 603 may be provided to the or gate 604 through the inverter INV1. The OR gate 604 will output the selection signal SEL in response to the randomized off flag signal RFS and the inverted random sequence data.

제 1 멀티플렉서(605)는 선택 신호(SEL)에 응답하여 동작하며, 입출력 인터페이스(700b)로부터 출력되는 데이터(Data_In) 및 인버터(INV2)를 통해 반전된 데이터(Data_In_b) 중 하나를 선택할 것이다. 예를 들면, 랜덤화 오프 플래그 신호(RFS)가 하이로 활성화되는 경우, 랜덤화 기능은 오프될 것이다. 이러한 경우, 선택 신호(SEL)는 랜덤 시퀀스 데이터의 값에 무관하게 논리 하이 레벨을 갖는다. 선택 신호(SEL)가 논리 하이 레벨을 가지면, 제 1 멀티플렉서(605)는 반전된 데이터(Data_In_b)가 아니라 데이터(Data_In)를 선택할 것이다. 즉, 데이터 랜덤화 기능이 바이패스된다. 랜덤화 오프 플래그 신호(RFS)가 로우로 비활성화되는 경우, 랜덤화 기능은 온될 것이다. 이러한 경우, 선택 신호(SEL)는 논리 하이 레벨 또는 논리 로우 레벨로 고정되는 것이 아니라 랜덤 시퀀스 데이터의 값에 따라 논리 하이 레벨과 논리 로우 레벨을 갖는다. 선택 신호(SEL)가 랜덤 시퀀스 데이터의 값에 따라 논리 하이 레벨과 논리 로우 레벨로 설정됨에 따라, 제 1 멀티플렉서(605)는 랜덤 시퀀스 데이터의 값에 따라 데이터(Data_In)와 반전된 데이터(Data_In_b)를 선택할 것이다. 즉, 데이터 랜덤화가 행해질 것이다.The first multiplexer 605 operates in response to the selection signal SEL and selects one of the data Data_In output from the input / output interface 700b and the inverted data Data_In_b through the inverter INV2. For example, if the randomization off flag signal (RFS) is activated high, the randomization function will be turned off. In this case, the selection signal SEL has a logic high level regardless of the value of the random sequence data. If the selection signal SEL has a logic high level, the first multiplexer 605 will select the data Data_In rather than the inverted data Data_In_b. In other words, the data randomization function is bypassed. If the randomization off flag signal (RFS) is deactivated low, the randomization function will be on. In this case, the selection signal SEL is not fixed to the logic high level or the logic low level but has a logic high level and a logic low level according to the value of the random sequence data. As the selection signal SEL is set to a logic high level and a logic low level according to the value of the random sequence data, the first multiplexer 605 inverts the data Data_In and the data Data_In_b according to the value of the random sequence data. Will choose. That is, data randomization will be performed.

제 2 멀티플렉서(606)는 선택 신호(SEL)에 응답하여 동작하며, 열 선택 회로(500c)로부터 출력되는 데이터(Data_Out) 및 인버터(INV3)를 통해 반전된 데이터(Data_Out_b) 중 하나를 선택할 것이다. 선택 신호(SEL)가 논리 하이 레벨을 가지면, 제 2 멀티플렉서(606)는 데이터(Data_Out)를 선택할 것이다. 즉, 데이터 디-랜덤화가 바이패스된다. 랜덤화 오프 플래그 신호(RFS)가 로우로 비활성화되는 경우, 디-랜덤화 기능은 온될 것이다. 이러한 경우, 선택 신호(SEL)는 랜덤 시퀀스 데이터의 값에 따라 논리 하이 레벨과 논리 로우 레벨을 갖는다. 선택 신호(SEL)가 랜덤 시퀀스 데이터의 값에 따라 논리 하이 레벨과 논리 로우 레벨로 설정됨에 따라, 제 2 멀티플렉서(606)는 랜덤 시퀀스 데이터의 값에 따라 데이터(Data_Out)와 반전된 데이터(Data_Out_b)를 선택할 것이다. 즉, 데이터 디-랜덤화가 행해질 것이다.The second multiplexer 606 operates in response to the selection signal SEL and selects one of the data Data_Out output from the column selection circuit 500c and the inverted data Data_Out_b through the inverter INV3. If the select signal SEL has a logic high level, the second multiplexer 606 will select data Data_Out. That is, data de-randomization is bypassed. If the randomization off flag signal (RFS) is deactivated low, the de-randomization function will be on. In this case, the selection signal SEL has a logic high level and a logic low level according to the value of the random sequence data. As the selection signal SEL is set to a logic high level and a logic low level according to the value of the random sequence data, the second multiplexer 606 inverts the data Data_Out and the inverted data Data_Out_b according to the value of the random sequence data. Will choose. That is, data de-randomization will be done.

도 11b는 본 발명의 또 다른 실시예에 따른 플래시 메모리 장치를 개략적으로 보여주는 블록도이다.11B is a block diagram schematically illustrating a flash memory device according to another embodiment of the present invention.

도 11b를 참조하면, 플래시 메모리 장치는 메모리 셀 어레이(100c), 페이지 버퍼 회로(400c), 열 선택 회로(500c), 랜덤화 및 디-랜덤화 회로(600c), 그리고 입출력 인터페이스(700c)를 포함할 것이다. 도 11b에 도시된 메모리 셀 어레이(100c), 페이지 버퍼 회로(400c), 열 선택 회로(500c), 그리고 입출력 인터페이스(700c)는 도 11a에 도시된 것과 실질적으로 동일하게 동작하며, 그것에 대한 설명은 그러므로 생략될 것이다.Referring to FIG. 11B, a flash memory device may include a memory cell array 100c, a page buffer circuit 400c, a column select circuit 500c, a randomization and de-randomization circuit 600c, and an input / output interface 700c. Will include. The memory cell array 100c, the page buffer circuit 400c, the column select circuit 500c, and the input / output interface 700c shown in FIG. 11B operate substantially the same as those shown in FIG. Therefore it will be omitted.

도 11b에 도시된 랜덤화 및 디-랜덤화 회로(600c)는 멀티플렉서들(608, 609)의 선택 신호(SEL)로서 랜덤 시퀀스 데이터 발생기(607)의 출력 즉, 랜덤 시퀀스 데이터가 사용된다는 점을 제외하면 도 11a에 도시된 것과 실질적으로 동일하며, 그것에 대한 설명은 그러므로 생략될 것이다.The randomization and de-randomization circuit 600c shown in FIG. 11B shows that the output of the random sequence data generator 607, i.e., random sequence data, is used as the selection signal SEL of the multiplexers 608 and 609. FIG. Except for the substantially same as that shown in Fig. 11A, the description thereof will therefore be omitted.

도 12는 도 10 및 도 11a에서 설명된 랜덤화 온/오프 기능을 갖는 플래시 메모리 장치의 동작을 설명하기 위한 흐름도이다. 설명의 편의상, 랜덤화 오프 영역이 세그먼트의 특정 영역(예를 들면, 도 9b의 ECC/패리티 데이터에 대응하는 영역)으로 설정된다고 가정하자.FIG. 12 is a flowchart for describing an operation of a flash memory device having a randomization on / off function described with reference to FIGS. 10 and 11A. For convenience of explanation, assume that the randomization off area is set to a specific area of the segment (for example, an area corresponding to ECC / parity data in FIG. 9B).

앞서 설명된 바와 같이, 플래시 메모리 장치의 세그먼트 크기(SEG_L)는 세트 피쳐 명령(또는, 테스트 명령)을 이용하여 설정될 것이다. 제어 로직(300a/b)의 레지스터(예를 들면, 301)는 세그먼트 크기(SEG_L)를 나타내는 파라미터 값과 더불어 랜덤화 온/오프 정보 및 랜덤화 오프 영역을 지정하기 위한 영역 정보로 설정될 것이다. 이는 S200 단계에서 행해질 것이다. 이 동작(세그먼트 크기의 설정 그리고/또는 랜덤화 온/오프의 설정)은 파워-업 이후 또는 필요에 따라 행해질 것이다.As described above, the segment size SEG_L of the flash memory device will be set using the set feature command (or test command). A register (eg, 301) of the control logic 300a / b may be set as parameter information indicating the segment size SEG_L and region information for specifying randomization on / off information and randomization off region. This will be done in step S200. This operation (setting of segment size and / or setting of randomization on / off) may be performed after power-up or as needed.

플래시 메모리 장치에 대한 액세스(읽기/쓰기 동작)이 S210 단계에서 요청될 것이다. S220 단계에서, 액세스 요청시 입력된 현재의 오프셋 어드레스가 레지스터(301)에 설정된 랜덤화 오프 영역에 속하는 지의 여부가 판별될 것이다. 이는 제어 로직(300a/b)에 의해서 행해질 것이다. 만약 현재의 오프셋 어드레스가 레지스터(301)에 설정된 랜덤화 오프 영역에 속하지 않는 것으로 판별되면, 랜덤화/디-랜덤화 없이 데이터가 전송될 것이다. 이후, 절차는 S250로 진행할 것이다. 만약 현재의 오프셋 어드레스가 레지스터(301)에 설정된 랜덤화 오프 영역에 속하는 것으로 판별되면, 전송되는 데이터에 대한 랜덤화/디-랜덤화가 행해질 것이다. 이는 도 10 및 도 11a에서 설명된 것과 실질적으로 동일하게 행해질 것이다. 이후, 절차는 S250로 진행할 것이다.Access to the flash memory device (read / write operation) will be requested in step S210. In step S220, it is determined whether the current offset address input at the time of the access request belongs to the randomization off area set in the register 301. This will be done by the control logic 300a / b. If it is determined that the current offset address does not belong to the randomization off region set in the register 301, data will be transmitted without randomization / de-randomization. The procedure will then proceed to S250. If it is determined that the current offset address belongs to the randomization off area set in the register 301, randomization / de-randomization of the transmitted data will be performed. This will be done substantially the same as described in FIGS. 10 and 11A. The procedure will then proceed to S250.

S250 단계에서, 랜덤화 오프 영역의 단위에 대응하는 데이터(예를 들면, 512-바이트)가 모두 전송되었는 지의 여부가 판별될 것이다. 예를 들면 하나의 세그먼트에 대응하는 데이터(예를 들면, 512-바이트)가 모두 전송되었는 지의 여부가 판별될 것이다. 만약 그렇지 않으면, 절차는 S220 단계로 진행할 것이다. 만약 그렇다면, 절차는 S260 단계로 진행할 것이다. S260 단계에서, 액세스 요청된 데이터가 모두 전송되었는 지의 여부가 판별될 것이다. 만약 그렇지 않으면, 절차는 S220 단계로 진해할 것이다. 만약 그렇다면, 절차는 종료될 것이다.In step S250, it may be determined whether all data (eg, 512-bytes) corresponding to the unit of the randomization off area has been transmitted. For example, it will be determined whether all data corresponding to one segment (eg, 512-bytes) has been transmitted. If not, the procedure will proceed to step S220. If so, the procedure will proceed to step S260. In step S260, it will be determined whether all of the data requested for access has been transmitted. If not, the procedure will proceed to step S220. If so, the procedure will end.

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

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

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

도 14는 본 발명의 다른 예시적인 실시예에 따른 메모리 셀 어레이를 보여주는 도면이다. 본 발명의 다른 예시적인 실시예에 따른 메모리 셀 어레이는 수직 구조를 갖도록 구성될 것이다. 수직 구조는 기판에 대해 스트링이 수직하게 형성된 구조를 의미한다.14 is a diagram illustrating a memory cell array according to another exemplary embodiment of the present invention. The memory cell array according to another exemplary embodiment of the present invention will be configured to have a vertical structure. The vertical structure means a structure in which a string is formed perpendicular to the substrate.

도 14를 참조하면, 메모리 셀 어레이(100a)는 복수의 메모리 블록들(BLK1~BLKz)을 포함한다. 메모리 블록들(BLK1~BLKz) 각각은 3차원 구조(또는 수직 구조)를 갖는다. 예를 들면, 메모리 블록들(BLK1~BLKz)각각은 제 1 내지 제 3 방향들을 따라 신장된 구조물들을 포함한다. 예를 들면, 메모리 블록들(BLK1~BLKz)각각은 제 2 방향을 따라 신장된 복수의 스트링들(또는, 낸드 스트링들)을 포함한다. 다른 예로서, 제 1 또는 제 3 방향을 따라 복수의 낸드 스트링들이 제공될 수 있다. 예시적으로, 메모리 블록들(BLK1~BLKz)은 도 1에 도시된 행 선택 회로(200)에 의해서 선택될 것이다.Referring to FIG. 14, the memory cell array 100a includes a plurality of memory blocks BLK1 to BLKz. Each of the memory blocks BLK1 to BLKz has a three-dimensional structure (or a vertical structure). For example, each of the memory blocks BLK1 to BLKz includes structures extending along first to third directions. For example, each of the memory blocks BLK1 to BLKz includes a plurality of strings (or NAND strings) extending along the second direction. As another example, a plurality of NAND strings may be provided along the first or third direction. In exemplary embodiments, the memory blocks BLK1 to BLKz may be selected by the row selection circuit 200 shown in FIG. 1.

도 15는 본 발명의 일 실시예에 따른 도 14에 도시된 메모리 블록들(BLK1~BLKz) 중 하나의 일부를 보여주는 사시도이다. 도 16은 도 15에 도시된 메모리 블록을 Ⅰ-Ⅰ' 선을 따라 절단된 단면을 보여주는 도면이다. 도 15 및 도 16을 참조하면, 메모리 블록(BLKa)은 제 1 내지 제 3 방향들을 따라 신장된 구조물들을 포함한다.FIG. 15 is a perspective view illustrating a portion of one of the memory blocks BLK1 to BLKz illustrated in FIG. 14 according to an embodiment of the present invention. FIG. 16 is a cross-sectional view of the memory block shown in FIG. 15 taken along line II ′. 15 and 16, the memory block BLKa includes structures extending along first to third directions.

우선, 기판(111)이 제공된다. 예시적으로, 기판(111)은 제 1 타입을 갖는 웰(well)일 것이다. 예를 들면, 기판(111)은 붕소(B, Boron)와 같은 5족 원소가 주입되어 형성된 p웰일 것이다. 예를 들면, 기판(111)은 n웰 내에 제공되는 포켓 p 웰일 것이다. 이하에서, 기판(111)이 p 웰이라고 가정할 것이다. 그러나, 기판(111)이 p웰로 한정되지 않음은 잘 이해될 것이다.First, the substrate 111 is provided. In exemplary embodiments, the substrate 111 may be a well having a first type. For example, the substrate 111 may be a p well formed by implanting a Group 5 element such as boron (B). For example, the substrate 111 may be a pocket p well provided in an n well. In the following, it will be assumed that the substrate 111 is a p well. However, it will be appreciated that the substrate 111 is not limited to p wells.

기판(111) 상에, 제 1 방향을 따라 신장된 복수의 도핑 영역들(311~314)이 제공된다. 예를 들면, 복수의 도핑 영역들(311~314)은 기판(111)과 상이한 제 2 타입을 가질 것이다. 도시의 편의상, 도 15에는 단지 4개의 도핑 영역들(311~314)이 도시되어 있다. 하지만, 제 3 방향을 따라 더 많은 도핑 영역들이 제공됨은 잘 이해될 것이다. 복수의 도핑 영역들(311~314)은 n-타입을 가질 것이다. 이하에서, 도핑 영역들(311~314)이 n-타입을 갖는다고 가정할 것이다. 그러나, 도핑 영역들(311~314)이 n-타입으로 제한되지 않음은 잘 이해될 것이다.On the substrate 111, a plurality of doped regions 311 ˜ 314 extending along the first direction are provided. For example, the plurality of doped regions 311 to 314 may have a second type different from that of the substrate 111. For convenience of illustration, only four doped regions 311-314 are shown in FIG. 15. However, it will be appreciated that more doped regions are provided along the third direction. The plurality of doped regions 311 ˜ 314 may have an n-type. Hereinafter, it will be assumed that the doped regions 311 to 314 have an n-type. However, it will be appreciated that the doped regions 311-314 are not limited to n-type.

도핑 영역들(311, 312) 사이의 기판(111) 상에, 제 1 방향을 따라 신장되는 복수의 절연 물질들(112)이 제 2 방향을 따라 순차적으로 제공된다. 예를 들면, 복수의 절연 물질들(112)은 소정 거리만큼 이격되도록 제 2 방향을 따라 제공될 것이다. 예시적으로, 절연 물질들(112)은 실리콘 산화물(Silicon Oxide)과 같은 절연 물질을 포함할 것이다.On the substrate 111 between the doped regions 311 and 312, a plurality of insulating materials 112 extending along the first direction are sequentially provided along the second direction. For example, the plurality of insulating materials 112 may be provided along the second direction to be spaced apart by a predetermined distance. Illustratively, the insulating materials 112 will comprise an insulating material such as silicon oxide.

도핑 영역들(311, 312) 사이의 기판(111) 상에, 제 1 방향을 따라 순차적으로 배치되며 제 2 방향을 따라 절연 물질들(112)을 관통하는 복수의 필라들(113)이 제공된다. 예시적으로, 복수의 필라들(113)은 절연 물질들(112)을 관통하여 기판(111)과 연결될 것이다. 예시적으로, 각 필라(113)는 복수의 물질들로 구성될 것이다. 예를 들면, 각 필라(113)의 표면층(114)은 제 1 타입을 갖는 실리콘 물질을 포함할 것이다. 다른 예로서, 각 필라(113)의 표면층(114)은 기판(111)과 동일한 타입을 갖는 실리콘 물질을 포함할 것이다. 이하에서, 각 필라(113)의 표면층(114)이 p-타입 실리콘을 포함한다고 가정하자. 그러나, 각 필라(113)의 표면층(114)은 p-타입 실리콘을 포함하는 것으로 한정되지 않는다. 각 필라(113)의 내부층(115)은 절연 물질로 구성된다. 예를 들면, 각 필라(113)의 내부층(115)은 실리콘 산화물(Silicon Oxide)과 같은 절연 물질을 포함할 것이다. 또는, 각 필라(113)의 내부층(115)은 에어 갭(air gap)을 포함할 수 있다.On the substrate 111 between the doped regions 311 and 312, a plurality of pillars 113 are provided which are sequentially disposed in the first direction and penetrate the insulating materials 112 along the second direction. . In some embodiments, the pillars 113 may be connected to the substrate 111 through the insulating materials 112. Illustratively, each pillar 113 will comprise a plurality of materials. For example, the surface layer 114 of each pillar 113 may comprise a silicon material having a first type. As another example, the surface layer 114 of each pillar 113 may comprise a silicon material having the same type as the substrate 111. In the following, assume that the surface layer 114 of each pillar 113 includes p-type silicon. However, the surface layer 114 of each pillar 113 is not limited to including p-type silicon. The inner layer 115 of each pillar 113 is comprised of an insulating material. For example, the inner layer 115 of each pillar 113 may include an insulating material such as silicon oxide. Alternatively, the inner layer 115 of each pillar 113 may include an air gap.

인접한 도핑 영역들 사이에 배치된 각 구조물을 참조하면, 절연 물질들(112), 필라(113), 그리고 기판(111)의 노출된 표면을 따라 절연막(116)이 제공된다. 예시적으로, 제 2 방향을 따라 제공되는 마지막 절연 물질(112)의 제 2 방향 쪽의 노출면에 제공되는 절연막(116)은 제거될 수 있다. 절연막(116)은 하나 또는 그 보다 많은 물질층들로 구성될 수 있다. 절연막(116)의 노출된 표면 상에 제 1 도전 물질들(211~291)이 제공된다. 예를 들면, 제 1 방향을 따라 신장되는 제 1 도전 물질(211)이 기판(111)에 인접한 절연 물질(112) 및 기판(111) 사이에 제공된다. 예시적으로, 제 1 도전 물질들(211~291)은 금속 물질일 것이다. 다른 예로서, 제 1 도전 물질들(211~291)은 폴리 실리콘과 같은 도전 물질일 것이다.Referring to each structure disposed between adjacent doped regions, an insulating film 116 is provided along the exposed surfaces of the insulating materials 112, the pillars 113, and the substrate 111. In exemplary embodiments, the insulating layer 116 provided on the exposed surface of the last insulating material 112 provided in the second direction toward the second direction may be removed. The insulating film 116 may be composed of one or more material layers. First conductive materials 211 to 291 are provided on the exposed surface of the insulating layer 116. For example, a first conductive material 211 extending along the first direction is provided between the insulating material 112 and the substrate 111 adjacent to the substrate 111. In exemplary embodiments, the first conductive materials 211 to 291 may be metal materials. As another example, the first conductive materials 211 to 291 may be a conductive material such as polysilicon.

도핑 영역들(312, 313) 사이에 배치된 구조물은 도핑 영역들(311, 312) 사이에 배치된 구조물과 동일하게 구성될 것이다. 마찬가지로, 도핑 영역들(313, 314) 사이에 배치된 구조물은 도핑 영역들(311, 312) 사이에 배치된 구조물과 동일하게 구성될 것이다.The structure disposed between the doped regions 312 and 313 will be configured the same as the structure disposed between the doped regions 311 and 312. Similarly, the structure disposed between the doped regions 313 and 314 will be configured identically to the structure disposed between the doped regions 311 and 312.

복수의 필라들(113) 상에 플러그들(320)이 각각 제공된다. 예시적으로, 플러그들(320)은 제 2 타입으로 도핑된 실리콘 물질들일 것이다. 예를 들면, 플러그들(320)은 n-타입으로 도핑된 실리콘 물질일 것이다. 이하에서, 플러그들(320)은 n-타입 실리콘을 포함하는 것으로 가정한다. 그러나, 플러그들(320)은 n-타입 실리콘을 포함하는 것으로 한정되지 않는다. 예시적으로, 각 플러그(320)의 폭은 대응하는 필라(113)의 폭 보다 클 수 있다. 예를 들면, 각 플러그(320)는 대응하는 필라(113)의 상부면에 패드 형태로 제공될 수 있다. 제 3 방향으로 신장된 제 2 도전 물질들(331~333)이 플러그들(320)와 전기적으로 연결되도록 제공된다. 제 2 도전 물질들(331~333)은 제 1 방향을 따라 순차적으로 배치된다. 예시적으로, 제 2 도전 물질들(331~333)은 금속 물질일 것이다. 다른 예로서, 제 2 도전 물질들(331~333)은 폴리 실리콘과 같은 도전 물질일 것이다.Plugs 320 are respectively provided on the plurality of pillars 113. As an example, the plugs 320 may be silicon materials doped with a second type. For example, the plugs 320 may be silicon material doped with n-type. In the following, it is assumed that the plugs 320 include n-type silicon. However, the plugs 320 are not limited to containing n-type silicon. In exemplary embodiments, the width of each plug 320 may be larger than the width of the corresponding pillar 113. For example, each plug 320 may be provided in the form of a pad on the top surface of the corresponding pillar 113. Second conductive materials 331 ˜ 333 extending in the third direction are provided to be electrically connected to the plugs 320. The second conductive materials 331 ˜ 333 are sequentially disposed along the first direction. In exemplary embodiments, the second conductive materials 331 to 333 may be metal materials. As another example, the second conductive materials 331 to 333 may be conductive materials such as polysilicon.

도 16에 있어서, 인접한 도핑 영역들(예를 들면, 311, 312) 사이에 배치된 구조물은 비트 라인들으로 작용하는 도전 물질들(예를 들면, 331, 332, 333)에 각각 전기적으로 연결되는 필라들(113)을 포함한다. 비트 라인들으로 작용하는 도전 물질들(예를 들면, 331, 332, 333)에 각각 전기적으로 연결되는 필라들(113)은 하나의 플랜을 구성할 것이다. 이는 하나의 메모리 블록이 복수의 플랜들로 구성됨을 의미한다. 도 15 및 도 16에 있어서, 도전 물질들(211, 212, 213)은 접지 선택 라인으로 작용하며, 도전 물질들(291, 292, 293)은 스트링 선택 라인으로 작용하며, 도핑 영역들(311~314)은 공통 소오스 라인으로 작용하며, 도전 물질들(221~281, 222~282, 223~283)은 워드 라인으로 작용할 것이다.In FIG. 16, a structure disposed between adjacent doped regions (eg, 311, 312) is electrically connected to conductive materials (eg, 331, 332, 333) that act as bit lines, respectively. Pillars 113. Pillars 113 electrically connected to conductive materials (eg, 331, 332, 333) acting as bit lines will constitute a plan. This means that one memory block is composed of a plurality of plans. 15 and 16, the conductive materials 211, 212, and 213 serve as ground select lines, and the conductive materials 291, 292, and 293 serve as string select lines, and doped regions 311 ˜. 314 may serve as a common source line, and the conductive materials 221 to 281, 222 to 282, and 223 to 283 may serve as word lines.

도 17은 본 발명의 예시적인 실시예에 따른 도 16에 도시된 메모리 블록의 등가 회로를 보여주는 회로도이다.17 is a circuit diagram illustrating an equivalent circuit of the memory block illustrated in FIG. 16 in accordance with an exemplary embodiment of the present invention.

도 17을 참조하면, 비트 라인들과 및 공통 소스 라인(CSL) 사이에 낸드 스트링들이 제공된다. 예를 들면, 비트 라인(BL1) 및 공통 소스 라인(CSL) 사이에 낸드 스트링들(NS11, NS21, NS31)이 제공되고, 비트 라인(BL2) 및 공통 소스 라인(CSL) 사이에 낸드 스트링들(NS12, NS22, NS32)이 제공되며, 비트 라인(BL3) 및 공통 소스 라인(CSL) 사이에 낸드 스트링들(NS13, NS23. NS33)이 제공된다. 비트 라인들(BL1~BL3)은 제 3 방향으로 신장된 제 2 도전 물질들(331~333)(도 15 참조)에 각각 대응할 것이다.Referring to FIG. 17, NAND strings are provided between the bit lines and the common source line CSL. For example, NAND strings NS11, NS21, and NS31 are provided between the bit line BL1 and the common source line CSL, and NAND strings between the bit line BL2 and the common source line CSL. NS12, NS22, NS32 are provided, and NAND strings NS13, NS23, NS33 are provided between the bit line BL3 and the common source line CSL. The bit lines BL1 to BL3 may correspond to the second conductive materials 331 to 333 (see FIG. 15) respectively extending in the third direction.

각 낸드 스트링의 스트링 선택 트랜지스터(SST)는 대응하는 비트 라인과 연결된다. 각 낸드 스트링의 접지 선택 트랜지스터(GST)는 공통 소스 라인(CSL)과 연결된다. 각 낸드 스트링의 스트링 선택 트랜지스터(SST) 및 접지 선택 트랜지스터(GST) 사이에 메모리 셀들(MC)이 제공된다.The string select transistor SST of each NAND string is connected to a corresponding bit line. The ground select transistor GST of each NAND string is connected to the common source line CSL. Memory cells MC are provided between the string select transistor SST and the ground select transistor GST of each NAND string.

하나의 비트 라인에 공통으로 연결된 낸드 스트링들은 하나의 열을 형성한다. 예를 들면, 비트 라인(BL1)에 연결된 낸드 스트링들(NS11~NS31)은 제 1 열을 형성할 것이다. 비트 라인(BL2)에 연결된 낸드 스트링들(NS12~NS32)은 제 2 열을 형성할 것이다. 비트 라인(BL3)에 연결된 낸드 스트링들(NS13~NS33)은 제 3 열을 형성할 것이다. 하나의 스트링 선택 라인(SSL)에 연결되는 낸드 스트링들은 하나의 행을 형성한다. 예를 들면, 스트링 선택 라인(SSL1)에 연결된 낸드 스트링들(NS11~NS13)은 제 1 행을 형성한다. 스트링 선택 라인(SSL2)에 연결된 낸드 스트링들(NS21~NS23)은 제 2 행을 형성한다. 스트링 선택 라인(SSL3)에 연결된 낸드 스트링들(NS31~NS33)은 제 3 행을 형성한다.NAND strings commonly connected to one bit line form one column. For example, the NAND strings NS11 to NS31 connected to the bit line BL1 may form a first column. The NAND strings NS12 to NS32 connected to the bit line BL2 will form a second column. The NAND strings NS13 to NS33 connected to the bit line BL3 form a third column. NAND strings connected to one string select line SSL form one row. For example, the NAND strings NS11 to NS13 connected to the string select line SSL1 form a first row. The NAND strings NS21 to NS23 connected to the string select line SSL2 form a second row. The NAND strings NS31 to NS33 connected to the string select line SSL3 form a third row.

도 17에 도시된 바와 같이, 행들과 열들로 배열된 낸드 스트링들은 접지 선택 라인(GSL)을 공유한다. 각 행(또는, 각 플랜)에 속한 메모리 셀들은 다른 층들에 각각 배열된 워드 라인들(WL1~WL7)을 공유한다. 예를 들면, 플랜(PL1)에 속한 그리고 접지 선택 트랜지스터들(GST)에 인접한 메모리 셀들(MC1)은 워드 라인(WL1)을 공유하고, 플랜(PL1)에 속한 그리고 스트링 선택 트랜지스터들(SST)에 인접한 메모리 셀들(MC7)은 워드 라인(WL7)을 공유한다.As shown in FIG. 17, NAND strings arranged in rows and columns share a ground select line GSL. Memory cells belonging to each row (or each plan) share word lines WL1 to WL7 arranged in different layers, respectively. For example, memory cells MC1 belonging to plan PL1 and adjacent to ground select transistors GST share a word line WL1, and belong to plan PL1 and to string select transistors SST. Adjacent memory cells MC7 share the word line WL7.

동일한 행/플랜에 속한 낸드 스트링들은 스트링 선택 라인을 공유한다. 예를 들면, 플랜(PL1)에 속한 낸드 스트링들(NS11, NS12, NS13)은 스트링 선택 라인(SSL1)을 공유하고, 플랜(PL2)에 속한 낸드 스트링들(NS21, NS22, NS23)은 스트링 선택 라인(SSL2)을 공유하며, 플랜(PL3)에 속한 낸드 스트링들(NS31, NS32, NS33)은 스트링 선택 라인(SSL3)을 공유한다. 스트링 선택 라인들(SSL1, SSL2, SSL3)은 독립적으로 제어되며, 그 결과 임의의 플랜/행(예를 들면, PL1)에 속한 낸드 스트링들(NS11, NS12, NS13)이 비트 라인들(BL1, BL2, BL3)과 전기적으로 각각 연결될 것이다. 나머지 플랜들(예를 들면, PL2, PL3)에 속한 낸드 스트링들(NS21, NS22, NS23, NS31, NS32, NS33)은 비트 라인들(BL1, BL2, BL3)과 전기적으로 각각 분리될 것이다.NAND strings belonging to the same row / plan share a string select line. For example, the NAND strings NS11, NS12, NS13 belonging to the plan PL1 share the string select line SSL1, and the NAND strings NS21, NS22, NS23 belonging to the plan PL2 select the string. The line SSL2 is shared, and the NAND strings NS31, NS32, and NS33 belonging to the plan PL3 share the string select line SSL3. The string select lines SSL1, SSL2, and SSL3 are controlled independently, so that the NAND strings NS11, NS12, NS13 belonging to any plan / row (e.g., PL1) are connected to the bit lines BL1, And electrically connected to BL2 and BL3, respectively. NAND strings NS21, NS22, NS23, NS31, NS32, NS33 belonging to the remaining plans (eg, PL2, PL3) will be electrically separated from the bit lines BL1, BL2, BL3, respectively.

예시적인 실시예에 있어서, 프로그램 및 읽기 동작시, 스트링 선택 라인들(SSL1~SSL3) 중 어느 하나가 행 디코더 회로(200, 도 1 참조)에 의해서 선택될 것이다. 즉, 프로그램 및 읽기 동작들은 낸드 스트링들(NS11~NS13, NS21~NS23, NS31~NS33)의 행 단위(또는, 플랜 단위)로 수행될 것이다. 하나의 페이지는, 예를 들면, 하나의 스트링 선택 라인에 의해서 선택되고, 하나의 플랜에 속한 메모리 셀들(하나의 워드 라인에 연결됨)로 구성될 수 있다. 하지만, 페이지가 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다.In an exemplary embodiment, during the program and read operations, any one of the string select lines SSL1-SSL3 will be selected by the row decoder circuit 200 (see FIG. 1). That is, program and read operations may be performed in row units (or plan units) of the NAND strings NS11 to NS13, NS21 to NS23, and NS31 to NS33. One page may be configured by, for example, one string select line and memory cells belonging to one plan (connected to one word line). However, it will be appreciated that the page is not limited to what is disclosed herein.

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

도 18a를 참조하면, 메모리 시스템(3000)은 적어도 하나의 플래시 메모리(1000)와 제어기(2000)를 포함할 것이다. 플래시 메모리(1000)는 제어기(2000)의 제어하에 동작하며, 저장 매체로서 사용될 것이다. 제어기(2000)는 플래시 메모리(1000)를 제어하도록 구성될 것이다. 플래시 메모리(1000)는 랜덤화 및 디-랜덤화 회로(1100)를 포함할 것이다. 도 18a에 도시된 플래시 메모리(1000)는 도 1, 도 10, 또는 도 11에 도시된 것과 실질적으로 동일하게 구성되며, 그것에 대한 설명은 그러므로 생략될 것이다. 랜덤화 및 디-랜덤화 회로(1100)는, 앞서 설명된 바와 같이, 액세스 요청된 세그먼트들에 각각 동일한 시드를 적용하도록 구성될 것이다.Referring to FIG. 18A, the memory system 3000 may 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 may be configured to control the flash memory 1000. Flash memory 1000 may include randomization and de-randomization circuitry 1100. The flash memory 1000 shown in FIG. 18A is configured substantially the same as that shown in FIG. 1, 10, or 11, and a description thereof will therefore be omitted. The randomization and de-randomization circuit 1100 will be configured to apply the same seed to each of the segments requested for access, as described above.

제어기(2000)는 제 1 인터페이스(2100), 제 2 인터페이스(2200), 처리 유니트(2300), 버퍼 메모리(2400), 그리고 ECC 블록(2500)을 포함할 것이다. 제 1 인터페이스(2100)는 외부(예를 들면, 호스트)와 인터페이스하도록 구성되고, 제 2 인터페이스(2200)는 플래시 메모리(1000)와 인터페이스하도록 구성될 것이다. 처리 유니트(2300)는 제어기(2000)의 전반적인 동작을 제어하도록 구성될 것이다. 버퍼 메모리(2400)는 플래시 메모리(1000)에 저장될 데이터 또는 플래시 메모리(1000)로부터 읽혀진 데이터를 저장하도록 구성될 것이다. ECC 블록(2500)은 버퍼 메모리(2400)로부터 출력되는 데이터에 의거하여 ECC 데이터를 생성할 것이다. ECC 블록(2500)은 ECC 데이터에 의거하여 플래시 메모리(1000)로부터 읽혀진 데이터에 대한 에러 검출 및 정정 동작을 수행할 것이다. ECC 데이터는 플래시 메모리(1000)에 저장될 데이터와 동일한 페이지에 또는 플래시 메모리(1000)에 저장될 데이터와 다른 영역에 저장될 수 있다.The controller 2000 may 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 may be configured to interface with an external (eg, a host), and the second interface 2200 may be configured to interface with the flash memory 1000. The processing unit 2300 will 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 may generate ECC data based on data output from the buffer memory 2400. The ECC block 2500 may perform error detection and correction operations on 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.

제어기(2000)는, 도 5b에서 설명된 바와 같이, 파워 업 이후 세트 피쳐 명령을 이용하여 세그먼트 크기(SEG_L)를 설정할 것이다. 세그먼트 크기(SEG_L)의 설정과 더불어 랜덤화 온/오프 기능 및 랜덤화 오프 영역의 설정이 제어기(2000)에 의해서 행해질 것이다. 또는, 플래시 메모리 장치의 메모리 셀 어레이(100)에 불 휘발성 트림 정보로서 세그먼트 크기(SEG_L)의 값이 저장될 수 있다. 이러한 경우, 파워-업시, 세그먼트 크기(SEG_L)의 값은 플래시 메모리 장치의 제어 로직(300)의 제어하에 랜덤화 및 디-랜덤화 회로(600)로 로드될 것이다. 다른 예로서, 세그먼트 크기(SEG_L)의 값은 웨이퍼 레벨 또는 패키지 레벨에서 퓨즈 옵션을 통해 설정될 수 있다.The controller 2000 will set the segment size SEG_L using the set feature command after power up, as described in FIG. 5B. In addition to the setting of the segment size SEG_L, the setting of the randomization on / off function and the randomization off region will be performed by the controller 2000. Alternatively, a value of the segment size SEG_L may be stored as the nonvolatile trim information in the memory cell array 100 of the flash memory device. In this case, upon power-up, the value of the segment size SEG_L will be loaded into the randomization and de-randomization circuit 600 under the control of the control logic 300 of the flash memory device. As another example, the value of the segment size SEG_L may be set through the fuse option at the wafer level or at the package level.

예시적인 실시예에 있어서, 제 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 configured with 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.

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

도 18b를 참조하면, 메모리 시스템(3000)은 적어도 하나의 플래시 메모리(1000), 제어기(2000), 그리고 본딩 옵션(3010)를 포함할 것이다. 도 18b에 도시된 플래시 메모리(1000)와 제어기(2000)는 아래의 차이점을 제외하면 도 18a에 도시된 것과 실질적으로 동일하며, 그것에 대한 설명은 그러므로 생략될 것이다.Referring to FIG. 18B, the memory system 3000 may include at least one flash memory 1000, a controller 2000, and a bonding option 3010. The flash memory 1000 and the controller 2000 shown in FIG. 18B are substantially the same as those shown in FIG. 18A except for the following differences, and a description thereof will therefore be omitted.

본딩 옵션(3010)은 불 휘발성 메모리 장치(1000)로 세그먼트 크기(SEG_L)의 값을 제공하기 위해서 사용될 것이다. 본딩 옵션(3010)은, 예를 들면, 특정 세그먼트 크기(SEG_L)의 값(예를 들면, 바이너리 코드 값)을 설정하도록 구성되고 패드들에 연결된 퓨즈들을 포함할 것이다. 특정 세그먼트 크기(SEG_L)로의 설정은 패키지 레벨에서 행해질 것이다. 이러한 경우, 세그먼트 크기(SEG_L)를 설정하기 위해서 파워 업 이후 제어기(2000)에서 플래시 메모리(1000)로 세트 피쳐 명령을 전송하는 동작은 행해지지 않을 것이다.The bonding option 3010 may be used to provide a value of the segment size SEG_L to the nonvolatile memory device 1000. Bonding option 3010 may include, for example, fuses configured to set a value (eg, binary code value) of a particular segment size (SEG_L) and connected to the pads. Setting to a specific segment size (SEG_L) will be done at the package level. In this case, the operation of transmitting the set feature command from the controller 2000 to the flash memory 1000 after the power-up to set the segment size SEG_L will not be performed.

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

도 19를 참조하면, 메모리 시스템(3000a)은 적어도 하나의 플래시 메모리(1000a)와 제어기(2000a)를 포함할 것이다. 플래시 메모리(1000a)는 제어기(2000a)의 제어 하에 동작하며, 저장 매체로서 사용될 것이다. 도 19에 도시된 플래시 메모리(1000a)는 앞서 언급된 랜덤화 및 디-랜덤화 회로를 포함하지 않을 것이다. 제어기(2000a)는 플래시 메모리(1000a)를 제어하도록 구성될 것이다. 제어기(2000a)는 플래시 메모리(1000a)에 저장될 데이터를 랜덤화하도록 그리고 랜덤화된 데이터에 ECC 데이터를 부가하도록 구성될 것이다. 제어기(2000a)는 플래시 메모리(1000a)로부터 읽혀진 랜덤화된 데이터의 에러에 대한 검출 및 정정 동작을 수행하고, 랜덤화된 데이터를 디-랜덤화하도록 구성될 것이다.Referring to FIG. 19, the memory system 3000a may 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. 19 will not include the randomization and de-randomization circuits mentioned above. The controller 2000a may be configured to control the flash memory 1000a. The controller 2000a may be configured to randomize data to be stored in the flash memory 1000a and to add ECC data to the randomized data. The controller 2000a may be configured to perform detection and correction operations for 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)을 포함할 것이다. 도 19에 도시된 구성 요소들(2100a, 2200a, 2300a, 2400a, 2500a)은 아래의 차이점을 제외하면 도 18a에 도시된 것과 실질적으로 동일하며, 그것에 대한 설명은 그러므로 생략될 것이다.The controller 2000a controls the first interface 2100a, the second interface 2200a, the processing unit 2300a, the buffer memory 2400a, the ECC block 2500a, and the randomized / de-randomized block 2600. Will include. The components 2100a, 2200a, 2300a, 2400a, and 2500a shown in FIG. 19 are substantially the same as those shown in FIG. 18A except for the following differences, and a description thereof will therefore be omitted.

랜덤화 및 디-랜덤화 블록(2600)은 버퍼 메모리(2400a)로부터 출력되는 데이터를 랜덤화하도록 그리고 플래시 메모리(1000a)로부터 읽혀진 데이터(즉, 랜덤화된 데이터)를 디-랜덤화하도록 구성될 것이다. 랜덤화 및 디-랜덤화 블록(2600)은 도 1 내지 도 12에서 설명된 방식에 따라 순차 데이터 및 랜덤 데이터에 대한 랜덤화 및 디-랜덤화 동작들을 수행하며, 그것에 대한 설명은 그러므로 생략될 것이다. ECC 블록(2500a)은 랜덤화 및 디-랜덤화 블록(2600)으로부터 출력되는 랜덤화된 데이터에 의거하여 ECC 데이터를 생성할 것이다. ECC 블록(2500a)은, 또한, ECC 데이터에 의거하여 플래시 메모리(1000a)로부터 읽혀진 데이터 즉, 랜덤화된 데이터에 대한 에러 검출 및 정정 동작을 수행할 것이다. ECC 데이터는 플래시 메모리(1000a)에 저장될 데이터와 동일한 페이지에 또는 플래시 메모리(1000a)에 저장될 데이터와 다른 영역에 저장될 수 있다.The randomization and de-randomization block 2600 may be configured to randomize data output from the buffer memory 2400a and to de-randomize the data (ie, randomized data) read from the flash memory 1000a. will be. Randomization and de-randomization block 2600 performs randomization and de-randomization operations on sequential data and random data according to the scheme described in FIGS. 1 to 12, and a description thereof will therefore be omitted. . The ECC block 2500a will generate ECC data based on the randomized data output from the randomized and de-randomized block 2600. The ECC block 2500a may 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.

도 19에 도시된 메모리 시스템의 경우, 쓰기 동작은 플래시 메모리(1000a)에 저장될 데이터를 랜덤화시키고, 랜덤화된 데이터에 의거하여 ECC 데이터를 생성하고, 플래시 메모리(1000a)에 ECC 데이터와 랜덤화된 데이터를 저장하는 것을 포함할 것이다. 또는, 저장될 데이터와 ECC 데이터를 모두 랜덤화하여 저장하는 것을 포함할 것이다 . 읽기 동작은 ECC 데이터에 의거하여 읽혀진 데이터(즉, 랜덤화된 데이터)에 대한 에러 검출 및 정정 동작을 수행하고, 읽혀진 데이터를 랜덤화시키는 것을 포함할 것이다.In the memory system illustrated in FIG. 19, a write operation randomizes data to be stored in the flash memory 1000a, generates ECC data based on the randomized data, and randomizes ECC data and random data to the flash memory 1000a. It will include storing the formatted data. Alternatively, the method may include randomly storing both data to be stored and ECC data . The read operation may include performing error detection and correction operations on the read data (ie, randomized data) based on the ECC data, and randomizing the read data.

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

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

하나의 채널(예를 들면, CH0)에 연결된 불 휘발성 메모리 장치들은 단일-비트 데이터(예를 들면, 메타 데이터, 패리티 데이터, 또는 그와 같은 것)를 저장하는 데 사용되고, 나머지 채널들(예를 들면, CH1~CHn-1) 각각에 연결된 불 휘발성 메모리 장치들은 멀티-비트 데이터를 저장하는 데 사용될 수 있다. 이러한 경우, 제어기(4200)는 세트 피쳐 명령을 이용하여 채널(CH0)의 불 휘발성 메모리 장치들의 랜덤화 기능을 오프시킬 수 있다. 마찬가지로, 제어기(4200)는 세트 피쳐 명령을 이용하여 나머지 채널들(CH1~CHn-1)의 불 휘발성 메모리 장치들에 대한 랜덤화 오프 영역을 설정할 수 있다.Nonvolatile memory devices connected to one channel (e.g., CH0) are used to store single-bit data (e.g., metadata, parity data, or the like), and the other channels (e.g., For example, nonvolatile memory devices connected to each of CH1 to CHn-1) may be used to store multi-bit data. In this case, the controller 4200 may turn off the randomization function of the nonvolatile memory devices of the channel CH0 using the set feature command. Similarly, the controller 4200 may set a randomization off area for the nonvolatile memory devices of the remaining channels CH1 to CHn-1 using the set feature command.

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

도 21을 참조하면, 반도체 드라이브(4000a)(SSD)는 저장 매체(4100a)와 제어기(4200a)를 포함할 것이다. 저장 매체(4100a)는 복수의 채널들(CH0-CHn-1)을 통해 제어기(4200a)와 연결될 것이다. 채널들(CH0-CHn-1) 각각에는 복수의 불 휘발성 메모리들(NVM)이 공통으로 연결될 것이다. 각 불 휘발성 메모리(NVM)는 랜덤화 및 디-랜덤화 회로를 포함하지 않는다. 이러한 경우, 각 불 휘발성 메모리(NVM)는 도 19에 도시된 것과 실질적으로 동일하게 구성될 것이다. 제어기(4200a)는 랜덤화 및 디-랜덤화 회로(4102)를 포함할 것이다. 이러한 경우, 제어기(4200a)는 도 19에 도시된 것과 실질적으로 동일하게 구성될 것이다. 즉, 데이터 랜덤화 및 디-랜덤화 및 에러 검출 및 정정은 제어기(4200a) 내에서 행해질 것이다.Referring to FIG. 21, a semiconductor drive 4000a (SSD) may include a storage medium 4100a and a controller 4200a. The storage medium 4100a may be connected to the controller 4200a through a plurality of channels CH0-CHn-1. Each of the channels CH0-CHn-1 may have a plurality of nonvolatile memories NVM in common. Each nonvolatile memory (NVM) does not include randomization and de-randomization circuitry. In this case, each nonvolatile memory NVM will be configured substantially the same as that shown in FIG. Controller 4200a will include randomization and de-randomization circuitry 4102. In this case, the controller 4200a will be configured substantially the same as that shown in FIG. That is, data randomization and de-randomization and error detection and correction will be done within the controller 4200a.

도 22는 도 20 또는 도 21에 도시된 반도체 드라이브를 이용한 스토리지를 개략적으로 보여주는 블록도이고, 도 23은 도 20 또는 도 21에 도시된 반도체 드라이브를 이용한 스토리지 서버를 개략적으로 보여주는 블록도이다.FIG. 22 is a block diagram schematically illustrating storage using the semiconductor drive illustrated in FIG. 20 or 21, and FIG. 23 is a block diagram schematically illustrating a storage server using the semiconductor drive illustrated in FIG. 20 or 21.

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

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

본 발명의 예시적인 실시예들에 따른 메모리 제어기 및 플래시 메모리 장치들로 구성되는 반도체 드라이브가 스토리지에 적용되는 경우, 도 24에 도시된 바와 같이, 시스템(6000)은 유선 그리고/또는 무선으로 호스트와 통신하는 스토리지(6100)를 포함할 것이다. 본 발명의 예시적인 실시예들에 따른 데이터 저장 장치를 포함한 반도체 드라이브가 스토리지 서버에 적용되는 경우, 도 25에 도시된 바와 같이, 시스템(7000)은 유선 그리고/또는 무선으로 호스트와 통신하는 스토리지 서버들(7100, 7200)을 포함할 것이다. 또한, 도 26에 도시된 바와 같이, 본 발명의 예시적인 실시예에 따른 데이터 저장 장치를 포함한 반도체 드라이브는 메일 서버(8100)에도 적용될 수 있다. 메일 서버(8100)는 POP 및 SMTP 방식들로 연결된 메일 데몬을 통해 사용자 메일 프로그램들과 통신하며, 메일 서버들(8100)은 인터넷망을 통해 통신할 것이다.When a semiconductor drive consisting of a memory controller and flash memory devices according to exemplary embodiments of the present invention is applied to storage, as illustrated in FIG. 24, the system 6000 may be connected to a host by wire and / or wirelessly. It will include storage 6100 in communication. 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. 25, the system 7000 may communicate with the host by wire and / or wirelessly. Ones 7100 and 7200. In addition, as shown in FIG. 26, the semiconductor drive including the data storage device according to the exemplary embodiment of the present invention may be applied to the mail server 8100. The mail server 8100 communicates with user mail programs through a mail daemon connected in POP and SMTP manners, and the mail servers 8100 will communicate via an internet network.

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

도 27은 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치가 사용되는 휴대폰 시스템(cellular phone system)을 개략적으로 보여주는 블록도이다.FIG. 27 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.

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

또한, 휴대폰 시스템은 여러 가지 종류의 메모리 장치를 포함할 수 있는데, 예를 들어, 휴대폰 시스템은 불 휘발성 메모리 장치인 플래시 메모리 장치(9207), ROM(9208), SRAM(9209)를 포함할 수 있다. 휴대폰 시스템의 메모리 장치(9207)로서, 예를 들어, 도 1에서 설명된 플래시 메모리 장치가 사용될 것이다. 즉, 메모리 장치(9207)는 액세스 요청된 세그먼트들에 각각 동일한 시드를 적용하도록 구성될 것이다. ROM(9208)은 프로그램을 저장할 수 있고, SRAM(9209)은 시스템 컨트롤 마이크로컴퓨터(9212)를 위한 작업 영역으로써 역할을 하거나 데이터를 일시적으로 저장한다. 여기서, 시스템 컨트롤 마이크로컴퓨터(9212)는 프로세서로서, 플래시 메모리 장치(9207)의 쓰기 동작 및 읽기 동작을 제어할 수 있다.In addition, the mobile phone system may include various types of memory devices. For example, the mobile phone system may include a flash memory device 9207, a ROM 9008, and an SRAM 9209, which are nonvolatile memory devices. . As the memory device 9207 of the cellular phone system, for example, the flash memory device described in FIG. 1 will be used. That is, the memory device 9207 will be configured to apply the same seed to each of the segments requested for access. ROM 9308 can store programs, and SRAM 9209 serves as a work area for system control microcomputer 9212 or temporarily stores data. Here, the system control microcomputer 9212 is a processor and may control write and read operations of the flash memory device 9207.

도 28은 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치가 사용되는 메모리 카드(memory card)의 예시적 도면이다. 메모리 카드는 예를 들어, MMC 카드, SD카드, 멀티유즈(multiuse) 카드, 마이크로 SD카드, 메모리 스틱, 컴팩트 SD 카드, ID 카드, PCMCIA 카드, SSD카드, 칩카드(chipcard), 스마트카드(smartcard), USB카드, MCP-타입 임베디드 카드 스토리지, 등일 수 있다. MCP-타입 임베디드 카드 스토리지는 eMMC (embedded MMC), Esd (embedded SD), eSSD (embedded SSD), PPN (Perfect Page NAND), 등을 포함할 것이다.28 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, MMC card, SD card, multiuse card, micro SD card, memory stick, compact SD card, ID card, PCMCIA card, SSD card, chipcard, smartcard ), USB card, MCP-type embedded card storage, and the like. MCP-type embedded card storage will include eMMC (embedded MMC), Esd (embedded SD), eSSD (embedded SSD), Perfect Page NAND (PPN), and the like.

도 28을 참조하면, 메모리 카드는 외부와의 인터페이스를 수행하는 인터페이스부(9221), 버퍼 메모리를 갖고 메모리 카드의 동작을 제어하는 컨트롤러(9222), 본 발명의 실시예에 따른 플래시 메모리 장치(9207)을 적어도 하나 포함할 수 있다. 플래시 메모리 장치(9207)는 액세스 요청된 세그먼트들에 각각 동일한 시드를 적용하도록 구성될 것이다. 컨트롤러(9222)는 프로세서로서, 플래시 메모리 장치(9207)의 라이트 동작 및 리드 동작을 제어할 수 있다. 구체적으로, 제어기(9222)는 데이터 버스(DATA)와 어드레스 버스(ADDRESS)를 통해서 불 휘발성 메모리 장치(9207), 인터페이스부(9221)와 커플링되어 있다.Referring to FIG. 28, a memory card includes an interface unit 9221 for performing an interface with an external device, a controller 9222 having a buffer memory to control an operation of the memory card, and a flash memory device 9207 according to an embodiment of the present invention. It may include at least one. Flash memory device 9207 will be configured to apply the same seed to each of the segments requested for access. The controller 9222 is a processor and may control write operations and read operations of the flash memory device 9207. In detail, the controller 9222 is coupled to the nonvolatile memory device 9207 and the interface unit 9221 through the data bus DATA and the address bus ADDRESS.

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

도 29를 참조하면, 디지털 스틸 카메라는 바디(9301), 슬롯(9302), 렌즈(9303), 디스플레이부(9308), 셔터 버튼(9312), 스트로브(strobe)(9318) 등을 포함한다. 특히, 슬롯(9302)에는 메모리 카드(9331)가 삽입될 수 있고, 메모리 카드(9331)는 액세스 요청된 세그먼트들에 각각 동일한 시드를 적용하도록 구성된 본 발명의 실시예에 따른 플래시 메모리 장치(9207)를 적어도 하나 포함할 수 있다. 메모리 카드(9331)가 접촉형(contact type)인 경우, 메모리 카드(9331)가 슬롯(9302)에 삽입될 때 메모리 카드(9331)와 회로 기판상의 특정 전기 회로가 전기적으로 접촉하게 된다. 메모리 카드(9331)가 비접촉형(non-contact type)인 경우, 무선 신호를 통해서 메모리 카드(9331)가 액세스 될 것이다.Referring to FIG. 29, the digital still camera includes a body 9301, a slot 9302, a lens 9303, a display 9308, a shutter button 9312, a strobe 9318, and the like. In particular, a memory card 9319 may be inserted into the slot 9302, and the memory card 9319 may be configured to apply the same seed to each of the segments requested for access, according to an embodiment of the present invention. It may include at least one. When the memory card 9331 is a contact type, when the memory card 931 is inserted into the slot 9302, the memory card 9311 and a specific electrical circuit on the circuit board are in electrical contact. If the memory card 9319 is of a non-contact type, the memory card 9319 will be accessed via a wireless signal.

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

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

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

도 31을 참조하면, 이미지 센서 시스템은 이미지 센서(9332), 입출력 장치(9336), RAM(9348), CPU(9344), 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치(9354) 등을 포함할 수 있다. 플래시 메모리 장치(9354)는 액세스 요청된 세그먼트들에 각각 동일한 시드를 적용하도록 구성될 것이다. 각 구성요소, 즉, 이미지 센서(9332), 입출력 장치(9336), RAM(9348), CPU(9344), 플래시 메모리 장치(9354)는 버스(9352)를 통해서 서로 통신한다. 이미지 센서(9332)는 포토게이트, 포토다이오드 등과 같은 포토센싱(photo sensing) 소자를 포함할 수 있다. 각각의 구성 요소는 프로세서와 함께 하나의 칩으로 구성될 수도 있고, 프로세서와 각각 별개의 칩으로 구성될 수도 있다.Referring to FIG. 31, an image sensor system includes an image sensor 9332, an input / output device 9336, a RAM 9348, a CPU 9344, a flash memory device 954 according to an exemplary embodiment of the present invention, and the like. can do. The flash memory device 9354 will be configured to apply the same seed to each of the segments requested for access. Each component, that is, 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 through the bus 9932. The image sensor 9332 may include a photo sensing device such as a photogate, a photodiode, or the like. Each component may be configured as a chip together with the processor, or may be configured as a separate chip from the processor.

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

본 발명의 다른 예시적인 실시예에 있어서, 메모리 셀들은 전하 저장층을 갖는 다양한 셀 구조들 중 하나를 이용하여 구현될 수 있다. 전하 저장층을 갖는 셀 구조는 전하 트랩층을 이용하는 전하 트랩 플래시 구조, 어레이들이 다층으로 적층되는 스택 플래시 구조, 소오스-드레인이 없는 플래시 구조, 핀-타입 플래시 구조, 등을 포함할 것이다.In another exemplary embodiment of the present invention, memory cells may be implemented using one of a variety of cell structures having a charge storage layer. Cell structures having a charge storage layer may include a charge trap flash structure using a charge trap layer, a stack flash structure in which arrays are stacked in multiple layers, a flash structure without 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 a charge storage layer is disclosed in US Pat. No. 6,888,906, US Pat. . A source / drain free flash structure is disclosed in Korean Patent No. 673020 and 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 may be a package on package (PoP), 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), It can be implemented using packages such as Wafer-Level Processed Stack Package (WSP), or 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: column selection circuit
600: randomized and de-randomized circuit
700: input / output interface

Claims (31)

불 휘발성 메모리 장치의 선택된 페이지에/로부터 전송되는 데이터를 랜덤화 및 디-랜덤화하는 방법에 있어서:
상기 선택된 페이지에 할당된 시드에 의거하여 랜덤 시퀀스 데이터를 순차적으로 발생하고,
상기 선택된 메모리 공간에 속한 액세스-요청된 세그먼트들 중 하나와 상기 순차적으로 생성된 랜덤 시퀀스 데이터를 논리적으로 조합하고,
상기 선택된 페이지에 속한 나머지 액세스-요청된 세그먼트들 모두 전송될 때까지 상기 순차적으로 발생하는 것과 상기 논리적으로 조합하는 것을 반복함으로써 상기 선택된 페이지에 할당된 시드를 상기 나머지 액세스-요청된 세그먼트들에 반복적으로 적용하는 것을 포함하는 것을 특징으로 하는 방법.
A method of randomizing and de-randomizing data transmitted to / from a selected page of a nonvolatile memory device, the method comprising:
Randomly generating random sequence data based on the seed assigned to the selected page,
Logically combining one of the access-requested segments belonging to the selected memory space with the sequentially generated random sequence data,
Iteratively repeating the seed assigned to the selected page to the remaining access-requested segments by repeating the sequential occurrence and the logical combination until all remaining access-requested segments belonging to the selected page are transmitted. A method comprising applying.
제 1 항에 있어서,
상기 논리적으로 조합된 데이터는 랜덤화된 데이터로서 상기 선택된 페이지에 저장되거나 디-랜덤화된 데이터로서 페이지 버퍼로 전송되는 것을 특징으로 하는 방법.
The method of claim 1,
And said logically combined data is stored in said selected page as randomized data or transmitted to a page buffer as de-randomized data.
제 2 항에 있어서,
상기 선택된 페이지의 세그먼트들은 가변 가능하게 정의된 크기를 갖는 것을 특징으로 하는 방법.
The method of claim 2,
And segments of the selected page have a variably defined size.
제 3 항에 있어서,
상기 각 세그먼트는 프로그램 데이터와 상기 프로그램 데이터와 관련된 패리티 정보로 구성되는 것을 특징으로 하는 방법.
The method of claim 3, wherein
Wherein each segment comprises program data and parity information associated with the program data.
제 4 항에 있어서,
상기 선택된 페이지로의 액세스는 세그먼트 단위로 요청되는 것을 특징으로 하는 방법.
The method of claim 4, wherein
Access to the selected page is requested in units of segments.
제 1 항에 있어서,
세트 피쳐 명령에 의거하여 랜덤화 온/오프 기능을 설정하는 것을 더 포함하는 것을 특징으로 하는 방법.
The method of claim 1,
Setting a randomization on / off function based on a set feature command.
제 6 항에 있어서,
상기 랜덤화 온/오프 기능은 세그먼트 단위로 설정되며, 상기 세트 피쳐 명령과 함께 입력되는 오프 영역 정보에 대응하는 세그먼트의 일부 데이터는 랜덤화되지 않는 것을 특징으로 하는 방법.
The method according to claim 6,
The randomization on / off function is set in units of segments, and the partial data of the segment corresponding to the off area information input together with the set feature command is not randomized.
제 1 항에 있어서,
상기 선택된 페이지에 할당된 시드의 반복 적용은 세그먼트 단위로 또는 페이지 보다 작은 단위로 행해지는 것을 특징으로 하는 방법.
The method of claim 1,
Iterative application of the seed assigned to the selected page is carried out in units of segments or smaller than the page.
메모리 셀 어레이의 선택된 페이지로부터/에 데이터를 읽거나 쓰도록 구성된 페이지 버퍼 회로와; 그리고
상기 선택된 페이지에 할당된 시드에 의거하여 상기 페이지 버퍼 회로로/로부터 전송되는 데이터를 랜덤화 및 디-랜덤화하도록 구성된 랜덤화 및 디-랜덤화 회로를 포함하며,
상기 선택된 페이지는 복수의 세그먼트들로 구성되고;
상기 랜덤화 및 디-랜덤화 회로는 상기 선택된 페이지에 할당된 시드에 의거하여 상기 선택된 페이지의 액세스-요청된 세그먼트들 각각에 대한 랜덤 시퀀스를 발생하도록 그리고 상기 시드에 따라 반복적으로 생성된 상기 랜덤 시퀀스에 의거하여 상기 각 액세스-요청된 세그먼트의 데이터를 랜덤화 및 디-랜덤화하도록 구성되는 불 휘발성 메모리 장치.
Page buffer circuitry configured to read or write data to / from selected pages of the memory cell array; And
Randomized and de-randomized circuitry configured to randomize and de-randomize data transmitted to / from the page buffer circuit based on a seed assigned to the selected page,
The selected page is composed of a plurality of segments;
The randomization and de-randomization circuitry generates the random sequence for each of the access-requested segments of the selected page based on the seed assigned to the selected page and the random sequence generated repeatedly according to the seed. And randomize and de-randomize data in each of the access-requested segments based on the nonvolatile memory device.
제 9 항에 있어서,
상기 랜덤화 및 디-랜덤화 회로는
상기 페이지들 각각에 대응하는 시드들을 저장하는 시드 테이블과;
상기 시드 테이블로부터 제공되고 상기 선택된 페이지에 대응하는 시드에 의거하여 랜덤 시퀀스를 발생하는 유사-랜덤 시퀀스 발생기와;
상기 랜덤 시퀀스와 액세스-요청된 세그먼트의 데이터를 논리적으로 조합하는 믹서와; 그리고
상기 선택된 페이지에 대응하는 상기 시드에 따라 반복적으로 생성되는 상기 랜던 시퀀스에 따라 액세스-요청된 세그먼트들 각각의 데이터를 랜덤화 및 디-랜덤화하도록 상기 선택된 페이지에 대응하는 상기 시드로 상기 유사-랜덤 시퀀스 발생기를 초기화하는 시드 초기화부를 포함하는 불 휘발성 메모리 장치.
The method of claim 9,
The randomization and de-randomization circuit is
A seed table storing seeds corresponding to each of the pages;
A pseudo-random sequence generator provided from the seed table and generating a random sequence based on a seed corresponding to the selected page;
A mixer for logically combining the random sequence and data of an access-requested segment; And
The pseudo-random to the seed corresponding to the selected page to randomize and de-randomize the data of each of the accessed-requested segments according to the random sequence generated repeatedly according to the seed corresponding to the selected page. A nonvolatile memory device comprising a seed initializer for initializing a sequence generator.
제 10 항에 있어서,
상기 시드 초기화부는 상기 유사-랜덤 시퀀스 발생기를 시드로 초기화하기 위한 시드 초기화 동작을 수행하며,
상기 액세스 요청된 세그먼트들 중 첫 번째 액세스 요청된 세그먼트의 데이터에 대한 시드 초기화 동작은 액세스 요청시에 행해지고,
나머지 액세스 요청된 세그먼트들의 데이터에 대한 시드 초기화 동작은 현재의 액세스 요청된 세그먼트의 마지막 세그먼트 데이터가 처리될 때 행해지는 불 휘발성 메모리 장치.
11. The method of claim 10,
The seed initialization unit performs a seed initialization operation for initializing the pseudo-random sequence generator to a seed,
A seed initialization operation on data of a first access requested segment of the access requested segments is performed at an access request,
The seed initialization operation on the data of the remaining access requested segments is performed when the last segment data of the current access requested segment is processed.
제 11 항에 있어서,
상기 시드 초기화부는
레지스터와;
전송되는 데이터를 나타내는 어드레스의 값과 세그먼트 크기보다 1만큼 작은 값(SEG-1)을 가산하도록 구성된 제 1 가산기와;
상기 레지스터의 출력값과 상기 세그먼트 크기를 가산하도록 구성된 제 2 가산기와;
액세스 요청의 완료시 활성화되는 선택 신호에 응답하여 상기 제 1 및 제 2 가산기들 중 출력 값들 중 하나를 선택하는 선택기;
상기 선택기에 의해서 선택된 출력 값은 상기 레지스터로 전송되며;
상기 레지스터의 출력 값이 전송되는 데이터를 나타내는 어드레스의 값과 일치하는 지의 여부를 판별하고 판별 결과로서 펄스 신호를 발생하는 비교기와; 그리고
상기 선택 신호 및 상기 펄스 신호에 응답하여 초기화 신호를 발생하도록 구성된 논리 게이트를 포함하며,
상기 레지스터는 상기 초기화 신호에 응답하여 상기 선택기에 의해서 선택된 출력값을 저장하며, 상기 유사-랜덤 시퀀스 발생기는 상기 초기화 신호에 응답하여 상기 선택된 페이지에 대응하는 상기 시드로 초기화되는 불 휘발성 메모리 장치.
The method of claim 11,
The seed initialization unit
A register;
A first adder configured to add a value (SEG-1) smaller than the segment size and the value of the address indicating the data to be transmitted;
A second adder configured to add the output value of the register and the segment size;
A selector for selecting one of the output values of the first and second adders in response to a selection signal activated upon completion of an access request;
The output value selected by the selector is sent to the register;
A comparator for discriminating whether or not the output value of the register coincides with the value of the address representing the data to be transmitted and generating a pulse signal as a result of the determination; And
A logic gate configured to generate an initialization signal in response to the selection signal and the pulse signal,
And the register stores an output value selected by the selector in response to the initialization signal, wherein the pseudo-random sequence generator is initialized with the seed corresponding to the selected page in response to the initialization signal.
제 12 항에 있어서,
상기 세그먼트 크기를 나타내는 값은 세트 피쳐 명령과 함께 외부 장치로부터 제공되는 불 휘발성 메모리 장치.
13. The method of claim 12,
And the value representing the segment size is provided from an external device with a set feature command.
제 9 항에 있어서,
특정 명령에 따라 입력되는 랜덤 온/오프 정보 및 랜덤 오프 영역 정보를 저장하는 제어 로직을 더 포함하며, 상기 제어 로직은 액세스 요청시 랜덤 오프 영역 정보에 의거하여 랜덤화 오프 플래그 신호를 발생하는 불 휘발성 메모리 장치.
The method of claim 9,
And control logic for storing random on / off information and random off area information input according to a specific command, wherein the control logic is nonvolatile that generates a randomized off flag signal based on the random off area information upon an access request. Memory device.
제 14 항에 있어서,
상기 랜덤 오프 영역 정보에 의해서 정의되는 오프 영역은 세그먼트보다 작은 크기의 데이터, 세그먼트, 페이지, 블록, 플랜, 또는 칩 단위로 결정되는 불 휘발성 메모리 장치.
15. The method of claim 14,
The off area defined by the random off area information is determined in units of data, a segment, a page, a block, a plan, or a chip having a smaller size than the segment.
제 14 항에 있어서,
상기 랜덤화 및 디-랜덤화 회로는
상기 페이지들 각각에 대응하는 시드들을 저장하는 시드 테이블과;
상기 시드 테이블로부터 제공되고 상기 선택된 페이지에 대응하는 시드에 의거하여 랜덤 시퀀스를 발생하는 유사-랜덤 시퀀스 발생기와;
상기 랜덤 시퀀스와 액세스-요청된 세그먼트의 데이터를 논리적으로 조합하는 믹서와;
상기 선택된 페이지에 대응하는 상기 시드에 따라 반복적으로 생성되는 상기 랜던 시퀀스에 따라 액세스-요청된 세그먼트들 각각의 데이터를 랜덤화 및 디-랜덤화하도록 상기 선택된 페이지에 대응하는 상기 시드로 상기 유사-랜덤 시퀀스 발생기를 초기화하는 시드 초기화부와; 그리고
쓰기 요청시, 랜덤화 오프 플래그 신호에 응답하여 상기 믹서의 출력과 상기 액세스-요청된 세그먼트의 데이터 중 하나를 선택하는 멀티플렉서를 포함하는 불 휘발성 메모리 장치.
15. The method of claim 14,
The randomization and de-randomization circuit is
A seed table storing seeds corresponding to each of the pages;
A pseudo-random sequence generator provided from the seed table and generating a random sequence based on a seed corresponding to the selected page;
A mixer for logically combining the random sequence and data of an access-requested segment;
The pseudo-random to the seed corresponding to the selected page to randomize and de-randomize the data of each of the accessed-requested segments according to the random sequence generated repeatedly according to the seed corresponding to the selected page. A seed initializer for initializing the sequence generator; And
And a multiplexer for selecting one of an output of the mixer and data of the access-requested segment in response to a write request.
제 16 항에 있어서,
상기 멀티플렉서는 읽기 요청시 상기 랜덤화 오프 플래그 신호에 응답하여 액세스-요청된 세그먼트의 데이터를 상기 믹서로 또는 입출력 인터페이스부로 전달하는 불 휘발성 메모리 장치.
17. The method of claim 16,
And the multiplexer transfers data of an access-requested segment to the mixer or to an input / output interface unit in response to the randomization off flag signal.
메모리 셀 어레이와;
랜덤 시퀀스 데이터를 순차적으로 발생하도록 구성된 랜덤 시퀀스 데이터 발생기와; 그리고
상기 메모리 셀 어레이에 저장될 프로그램 데이터와 상기 프로그램 데이터의 반전된 데이터를 입력받고, 선택 신호로서 상기 랜덤 시퀀스 데이터에 응답하여 상기 프로그램 데이터 또는 상기 반전된 데이터를 선택하는 제 1 멀티플렉서를 포함하며, 상기 제 1 멀티플렉서에 의해서 선택된 데이터는 랜덤화된 데이터로서 상기 메모리 셀 어레이에 저장되는 불 휘발성 메모리 장치.
A memory cell array;
A random sequence data generator configured to sequentially generate random sequence data; And
And a first multiplexer configured to receive program data to be stored in the memory cell array and inverted data of the program data, and select the program data or the inverted data in response to the random sequence data as a selection signal. The data selected by the first multiplexer is stored in the memory cell array as randomized data.
제 18 항에 있어서,
상기 메모리 셀 어레이로부터 읽혀진 데이터와 상기 읽혀진 데이터의 반전된 데이터를 입력받고, 상기 선택 신호로서 상기 랜덤 시퀀스 데이터에 응답하여 상기 읽혀진 데이터 또는 상기 읽혀진 데이터의 반전된 데이터를 선택하는 제 2 멀티플렉서를 더 포함하며, 상기 제 2 멀티플렉서에 의해서 선택된 데이터는 디-랜덤화된 데이터로서 외부 장치로 출력되는 불 휘발성 메모리 장치.
The method of claim 18,
And a second multiplexer which receives the read data and the inverted data of the read data from the memory cell array and selects the read data or the inverted data of the read data in response to the random sequence data as the selection signal. And the data selected by the second multiplexer is output to the external device as de-randomized data.
제 19 항에 있어서,
세트 피쳐 명령에 따라 입력되는 랜덤 온/오프 정보 및 랜덤 오프 영역 정보를 저장하는 제어 로직을 더 포함하며, 상기 제어 로직은 액세스 요청시 랜덤 오프 영역 정보에 의거하여 랜덤화 오프 플래그 신호를 발생하는 불 휘발성 메모리 장치.
The method of claim 19,
And a control logic for storing random on / off information and random off area information input according to a set feature command, wherein the control logic is configured to generate a randomized off flag signal based on the random off area information upon an access request. Volatile memory device.
제 20 항에 있어서,
상기 제 1 및 제 2 멀티플렉서들은 상기 랜덤화 오프 플래그 신호 및 상기 랜덤 시퀀스 데이터를 논리적으로 조합함으로써 생성되는 상기 선택 신호에 응답하여 동작하는 불 휘발성 메모리 장치.
21. The method of claim 20,
And the first and second multiplexers operate in response to the selection signal generated by logically combining the randomization off flag signal and the random sequence data.
메모리 셀 어레이와;
세트 피쳐 명령에 따라 입력되는 파라미터 값을 저장하는 레지스터와;
랜덤 시퀀스 데이터를 순차적으로 발생하도록 구성된 랜덤 시퀀스 데이터 발생기와;
상기 레지스터에 저장된 파라미터 값 및 상기 랜덤 시퀀스 데이터에 응답하여 선택 신호를 발생하는 선택 신호 발생기와; 그리고
상기 메모리 셀 어레이에 저장될 프로그램 데이터와 상기 프로그램 데이터의 반전된 데이터를 입력받고, 상기 선택 신호에 응답하여 상기 프로그램 데이터 또는 상기 반전된 데이터를 선택하는 제 1 멀티플렉서를 포함하는 불 휘발성 메모리 장치.
A memory cell array;
A register for storing a parameter value input according to the set feature command;
A random sequence data generator configured to sequentially generate random sequence data;
A selection signal generator for generating a selection signal in response to a parameter value stored in the register and the random sequence data; And
And a first multiplexer configured to receive program data to be stored in the memory cell array and inverted data of the program data, and select the program data or the inverted data in response to the selection signal.
제 22 항에 있어서,
상기 제 1 멀티플렉서와 상기 메모리 셀 어레이 사이에 배열된 페이지 버퍼 회로를 더 포함하는 불 휘발성 메모리 장치.
The method of claim 22,
And a page buffer circuit arranged between the first multiplexer and the memory cell array.
제 23 항에 있어서,
상기 제 1 멀티플렉서에 의해서 선택된 데이터는 랜덤화된 데이터로서 상기 페이지 버퍼 회로로 전달되는 불 휘발성 메모리 장치.
24. The method of claim 23,
The data selected by the first multiplexer is transferred to the page buffer circuit as randomized data.
제 24 항에 있어서,
상기 페이지 버퍼 회로를 통해 상기 메모리 셀 어레이로부터 읽혀진 데이터와 상기 읽혀진 데이터의 반전된 데이터를 입력받고, 상기 선택 신호에 응답하여 상기 읽혀진 데이터 또는 상기 읽혀진 데이터의 반전된 데이터를 선택하는 제 2 멀티플렉서를 더 포함하며, 상기 제 2 멀티플렉서에 의해서 선택된 데이터는 디-랜덤화된 데이터로서 외부 장치로 출력되는 불 휘발성 메모리 장치.
25. The method of claim 24,
A second multiplexer configured to receive data read from the memory cell array and inverted data of the read data through the page buffer circuit, and select the read data or the inverted data of the read data in response to the selection signal; And the data selected by the second multiplexer is output to an external device as de-randomized data.
제 24 항에 있어서,
상기 파라미터 값은 랜덤 온/오프 정보 및 랜덤 오프 영역 정보를 포함하는 불 휘발성 메모리 장치.
25. The method of claim 24,
The parameter value includes random on / off information and random off region information.
제 26 항에 있어서,
상기 선택 신호 발생기는 액세스 요청시 상기 랜덤 오프 영역 정보 및 상기 랜덤 시퀀스 데이터를 논리적으로 조합하여 상기 선택 신호를 발생하는 불 휘발성 메모리 장치.
The method of claim 26,
And the selection signal generator generates the selection signal by logically combining the random off region information and the random sequence data when an access request is made.
제 27 항에 있어서,
상기 랜덤 온/오프 정보가 랜덤화 오프 상태를 나타낼 때, 프로그램 데이터만이 상기 제 1 멀티플렉서를 통해 상기 페이지 버퍼 회로로 전송되고 상기 읽혀진 데이터만이 상기 제 2 멀티플렉서를 통해 외부로 전송되는 불 휘발성 메모리 장치.
The method of claim 27,
When the random on / off information indicates a randomization off state, only program data is transmitted to the page buffer circuit through the first multiplexer, and only the read data is transmitted externally through the second multiplexer Device.
복수의 페이지들을 포함하는 불 휘발성 메모리 장치와; 그리고
버퍼를 포함하고, 상기 불 휘발성 메모리 장치를 제어하는 제어기를 포함하며,
상기 제어기는 선택된 페이지에 할당된 시드에 의거하여 상기 불 휘발성 메모리 장치로/로부터 전송되는 데이터를 랜덤화 및 디-랜덤화하도록 구성된 랜덤화 및 디-랜덤화 회로를 더 포함하며,
상기 랜덤화 및 디-랜덤화 회로는
상기 페이지들 각각에 대응하는 시드들을 저장하는 시드 테이블과;
상기 시드 테이블로부터 제공되고 상기 선택된 페이지에 대응하는 시드에 의거하여 랜덤 시퀀스를 발생하는 유사-랜덤 시퀀스 발생기와;
상기 랜덤 시퀀스와 액세스-요청된 세그먼트의 데이터를 논리적으로 조합하는 믹서와; 그리고
상기 선택된 페이지에 대응하는 상기 시드에 따라 반복적으로 생성되는 상기 랜던 시퀀스에 따라 액세스-요청된 세그먼트들 각각의 데이터를 랜덤화 및 디-랜덤화하도록 상기 선택된 페이지에 대응하는 상기 시드로 상기 유사-랜덤 시퀀스 발생기를 초기화하는 시드 초기화부를 포함하는 메모리 카드.
A nonvolatile memory device including a plurality of pages; And
A controller including a buffer, the controller controlling the nonvolatile memory device,
The controller further comprises randomization and de-randomization circuitry configured to randomize and de-randomize data transmitted to / from the nonvolatile memory device based on a seed assigned to a selected page,
The randomization and de-randomization circuit is
A seed table storing seeds corresponding to each of the pages;
A pseudo-random sequence generator provided from the seed table and generating a random sequence based on a seed corresponding to the selected page;
A mixer for logically combining the random sequence and data of an access-requested segment; And
The pseudo-random to the seed corresponding to the selected page to randomize and de-randomize the data of each of the accessed-requested segments according to the random sequence generated repeatedly according to the seed corresponding to the selected page. And a seed initializer for initializing the sequence generator.
제 29 항에 있어서,
상기 시드 초기화부는 상기 유사-랜덤 시퀀스 발생기를 시드로 초기화하기 위한 시드 초기화 동작을 수행하며,
상기 액세스 요청된 세그먼트들 중 첫 번째 액세스 요청된 세그먼트의 데이터에 대한 시드 초기화 동작은 액세스 요청시에 행해지고,
나머지 액세스 요청된 세그먼트들의 데이터에 대한 시드 초기화 동작은 현재의 액세스 요청된 세그먼트의 마지막 세그먼트 데이터가 처리될 때 행해지는 메모리 카드.
30. The method of claim 29,
The seed initialization unit performs a seed initialization operation for initializing the pseudo-random sequence generator to a seed,
A seed initialization operation on data of a first access requested segment of the access requested segments is performed at an access request,
The seed initialization operation on the data of the remaining access requested segments is performed when the last segment data of the current access requested segment is processed.
복수의 메모리 공간들을 포함하는 저장 매체와;
복수의 채널들과; 그리고
상기 복수의 채널들을 통해 상기 저장 매체에 연결되고 상기 저장 매체를 제어하도록 구성된 제어기를 포함하며,
상기 제어기는
선택된 페이지에 할당된 시드에 의거하여 랜덤 시퀀스 데이터를 순차적으로 발생하고,
상기 선택된 페이지에 속한 액세스-요청된 세그먼트들 중 하나와 상기 순차적으로 생성된 랜덤 시퀀스 데이터를 논리적으로 조합하고,
상기 선택된 페이지에 할당된 시드가 상기 나머지 액세스-요청된 세그먼트들에 반복적으로 적용되도록, 상기 선택된 페이지에 속한 나머지 액세스-요청된 세그먼트들 모두 전송될 때까지 상기 순차적으로 발생하는 것과 상기 논리적으로 조합하는 것을 반복함으로써
상기 저장 매체로/로부터 전송되는 데이터를 랜덤화 및 디-랜덤화하는 반도체 드라이브.
A storage medium comprising a plurality of memory spaces;
A plurality of channels; And
A controller coupled to the storage medium via the plurality of channels and configured to control the storage medium,
The controller
Random sequence data is generated sequentially based on the seed assigned to the selected page,
Logically combining one of the access-requested segments belonging to the selected page with the sequentially generated random sequence data,
The logical combination with the sequentially occurring until all the remaining access-requested segments belonging to the selected page have been transmitted so that the seed assigned to the selected page is repeatedly applied to the remaining access-requested segments. By repeating
And randomize and de-randomize data transmitted to and from the storage medium.
KR1020110079104A 2011-04-15 2011-08-09 Flash memory device and memory system including the same KR101818209B1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2012090508A JP2012226822A (en) 2011-04-15 2012-04-11 Nonvolatile memory device
US13/446,155 US8996792B2 (en) 2011-04-15 2012-04-13 Non-volatile memory devices, methods of operating non-volatile memory devices, and systems including the same
CN201210111593.XA CN102737719B (en) 2011-04-15 2012-04-16 Nonvolatile memory device, its operating method and the system including it
US14/660,897 US9128623B2 (en) 2011-04-15 2015-03-17 Non-volatile memory devices, methods of operating non-volatile memory devices, and systems including the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161475695P 2011-04-15 2011-04-15
US61/475,695 2011-04-15

Publications (2)

Publication Number Publication Date
KR20120117612A true KR20120117612A (en) 2012-10-24
KR101818209B1 KR101818209B1 (en) 2018-01-16

Family

ID=47285544

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110079104A KR101818209B1 (en) 2011-04-15 2011-08-09 Flash memory device and memory system including the same

Country Status (1)

Country Link
KR (1) KR101818209B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014137841A (en) * 2013-01-18 2014-07-28 Samsung Electronics Co Ltd Non-volatile memory device, memory system including non-volatile memory device and control method therefor
KR20170108307A (en) * 2016-03-17 2017-09-27 삼성전자주식회사 Non-volatile memory device and method of operating the same
KR20170128686A (en) * 2016-05-12 2017-11-23 삼성전자주식회사 Nonvolatile memory device and read method and copy-back method thereof
KR20200027486A (en) * 2020-03-02 2020-03-12 삼성전자주식회사 Memory system comprising nonvolatile memory device and control method thereof
KR102557557B1 (en) * 2023-04-19 2023-07-24 메티스엑스 주식회사 Electronic device and computing system including same

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69810250T2 (en) 1997-05-26 2003-10-09 Koninkl Philips Electronics Nv SYSTEM FOR PLAYING BACK DATA IN A DATA FLOW SERVER
US8154918B2 (en) * 2008-06-30 2012-04-10 Sandisk Il Ltd. Method for page- and block based scrambling in non-volatile memory
KR101504338B1 (en) * 2009-03-04 2015-03-23 삼성전자주식회사 Operating method of nonvolatile memory device

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014137841A (en) * 2013-01-18 2014-07-28 Samsung Electronics Co Ltd Non-volatile memory device, memory system including non-volatile memory device and control method therefor
KR20170108307A (en) * 2016-03-17 2017-09-27 삼성전자주식회사 Non-volatile memory device and method of operating the same
KR20170128686A (en) * 2016-05-12 2017-11-23 삼성전자주식회사 Nonvolatile memory device and read method and copy-back method thereof
KR20200027486A (en) * 2020-03-02 2020-03-12 삼성전자주식회사 Memory system comprising nonvolatile memory device and control method thereof
KR102557557B1 (en) * 2023-04-19 2023-07-24 메티스엑스 주식회사 Electronic device and computing system including same
US11928054B1 (en) 2023-04-19 2024-03-12 Metisx Co., Ltd. Electronic device and computing system including same

Also Published As

Publication number Publication date
KR101818209B1 (en) 2018-01-16

Similar Documents

Publication Publication Date Title
US9128623B2 (en) Non-volatile memory devices, methods of operating non-volatile memory devices, and systems including the same
US9672104B2 (en) Memory system and read reclaim method thereof
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
KR102089613B1 (en) Nonvolatile memory device and memory system including the same
KR102068342B1 (en) Memory controller and memory system including the same
KR102116258B1 (en) Memory system and user device including the same
US9183938B2 (en) Nonvolatile memory device and method of programming nonvolatile memory device
KR20130066277A (en) Nonvolatile memory device and operating method thereof
US8817540B2 (en) Nonvolatile memory device and program method thereof
KR102187643B1 (en) Memory system and user device including the same
US20130219109A1 (en) Memory system and program method thereof
KR101818209B1 (en) Flash memory device and memory system including the same
KR20150058927A (en) Technique for controlling write speed of nonvolatile memory
KR20130049330A (en) Memory system and memory managing technique thereof
KR101733567B1 (en) Initial seed generating method and flash memory device and memory system using the same
KR20130099495A (en) Nonvolatile memory device and memory systme including the same

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant