KR101532840B1 - Method and apparatus for performing data program using coarse writing operation and fine writing operation - Google Patents

Method and apparatus for performing data program using coarse writing operation and fine writing operation Download PDF

Info

Publication number
KR101532840B1
KR101532840B1 KR1020130123881A KR20130123881A KR101532840B1 KR 101532840 B1 KR101532840 B1 KR 101532840B1 KR 1020130123881 A KR1020130123881 A KR 1020130123881A KR 20130123881 A KR20130123881 A KR 20130123881A KR 101532840 B1 KR101532840 B1 KR 101532840B1
Authority
KR
South Korea
Prior art keywords
pages
write
writing
coarse
data
Prior art date
Application number
KR1020130123881A
Other languages
Korean (ko)
Other versions
KR20150044613A (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 KR1020130123881A priority Critical patent/KR101532840B1/en
Publication of KR20150044613A publication Critical patent/KR20150044613A/en
Application granted granted Critical
Publication of KR101532840B1 publication Critical patent/KR101532840B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Read Only Memory (AREA)

Abstract

복수의 멀티 레벨 셀들을 포함하는 메모리 어레이-상기 복수의 멀티 레벨 셀들 각각은 복수의 비트들을 저장하고 복수의 페이지들에 대응함-에서 데이터 프로그래밍 방법은 쓰기 명령을 수신하는 단계; 상기 쓰기 명령에 응답하여, 동시에 상기 복수의 페이지들에 대하여 상기 복수의 멀티 레벨 셀들 각각의 상태를 변화시키기 위하여 거친(coarse) 쓰기를 실행하는 단계; 및 상기 복수의 페이지들에 대하여 동시에 변화된 상기 복수의 멀티 레벨 셀들 각각의 상태를 조정하기 위하여 미세(fine) 쓰기를 실행하는 단계를 포함한다.A memory array comprising a plurality of multi-level cells, each of the plurality of multi-level cells storing a plurality of bits and corresponding to a plurality of pages, the data programming method comprising: receiving a write command; Performing coarse writing to change the state of each of the plurality of multilevel cells for the plurality of pages at the same time in response to the write command; And performing a fine write to adjust the state of each of the plurality of multi-level cells simultaneously changed for the plurality of pages.

Description

거친 쓰기 및 미세 쓰기를 이용하여 데이터 프로그램을 수행하는 방법 및 장치{METHOD AND APPARATUS FOR PERFORMING DATA PROGRAM USING COARSE WRITING OPERATION AND FINE WRITING OPERATION}BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to a method and apparatus for performing a data program using coarse writing and fine writing,

아래의 실시예들은 컨트롤러 및 적어도 하나의 메모리 장치를 포함하는 스토리지 시스템에서, 거친 쓰기 및 미세 쓰기를 이용하여 데이터 프로그램을 수행하는 방법 및 장치에 관한 것이다.The following embodiments are directed to a method and apparatus for performing a data program using coarse write and fine write in a storage system comprising a controller and at least one memory device.

플래시 메모리에서 쓰기 오퍼레이션은 페이지 단위로 실행된다. 즉, 하나의 페이지를 프로그래밍하기 위하여 하나의 쓰기 오퍼레이션이 필요하다.The write operation in flash memory is executed page by page. That is, a single write operation is required to program one page.

또한, 플래시 메모리의 집적도를 높이고, 저장 장치의 용량을 향상시키기 위하여 멀티 레벨 셀이 사용된다. n-비트의 멀티 레벨 셀에는 n-비트의 데이터가 저장되며, n-비트의 데이터는 n 개의 페이지에 포함된다. 따라서, 하나의 n-비트 멀티 레벨 셀에 대하여 n-비트의 데이터를 프로그래밍하기 위해서는 n 개의 페이지들에 대한 쓰기 오퍼레이션들이 필요하므로, 요구되는 쓰기 오퍼레이션들의 개수는 n 개이다.In addition, a multi-level cell is used to increase the degree of integration of the flash memory and to improve the capacity of the storage device. The n-bit multi-level cell stores n-bit data, and the n-bit data is included in n pages. Thus, since programming operations for n pages are required to program n-bit data for one n-bit multilevel cell, the number of write operations required is n.

또한, n-비트의 멀티 레벨 셀의 상태는 각 쓰기 오퍼레이션마다 변화한다. 예를 들어, 3-비트의 멀티 레벨 셀에 3-비트의 데이터 모두가 프로그래밍되기 위해서는 3 번의 쓰기 오퍼레이션이 필요하며, 이는 멀티 레벨 셀의 상태가 3 번 변화한다는 것을 의미한다. 뿐만 아니라, 하나의 쓰기 오퍼레이션이 실행될 때마다 멀티 레벨 셀의 상태로 결정되는 후보들의 개수는 2 배씩 증가하며, 다음 쓰기 오퍼레이션을 수행하기 위해서는 이전 쓰기 오퍼레이션에 의해 결정된 멀티 레벨 셀의 상태가 읽혀져야 한다.Also, the state of the n-bit multi-level cell changes for each write operation. For example, three-bit write operations are required for all three-bit data to be programmed in a three-bit multi-level cell, which means that the state of the multi-level cell changes three times. In addition, each time one write operation is executed, the number of candidates determined as the state of the multi-level cell is increased by 2, and in order to perform the next write operation, the state of the multi-level cell determined by the previous write operation must be read .

그러나, 멀티 레벨 셀의 상태가 읽혀지는 과정 등에서 오류가 발생할 수 있고, 이것은 쓰기 오퍼레이션들이 반복됨에 따라 생각하지 못한 문제를 야기할 수 있다. 따라서, 페이지들의 개수에 대응하는 만큼 쓰기 오퍼레이션들을 반복하는 것이 언제나 좋은 결과를 만들어내지는 못한다.However, errors may occur, such as in the process of reading the state of a multilevel cell, which may cause unthinkable problems as the write operations are repeated. Thus, repeating the write operations as many as the number of pages does not always produce good results.

거친(coarse) 쓰기와 미세(fine) 쓰기로 구분하여 멀티 레벨 셀에 대한 쓰기 오퍼레이션을 수행함으로써, 쓰기 오퍼레이션들을 페이지들의 개수에 대응하는 만큼 반복하지 않고 멀티 레벨 셀에 대한 쓰기 오퍼레이션을 실행한다. 이러한 쓰기 오퍼레이션은 다음 쓰기 오퍼레이션을 수행하기 위해 이전 쓰기 오퍼레이션에 의해 결정된 멀티 레벨 셀의 상태를 읽을 필요가 없으므로, 읽기 작업에 따른 오류를 방지할 수 있다. 또한, 주변 셀에 의한 간섭(interference)을 감소시키고, 쓰기 오퍼레이션들이 반복됨에 따라 생기는 신뢰성 문제를 개선할 수 있다.By performing a write operation on a multi-level cell, the coarse write operation and the fine write operation are performed to perform a write operation on a multi-level cell without repeating write operations corresponding to the number of pages. This write operation does not need to read the state of the multilevel cell determined by the previous write operation to perform the next write operation, thereby preventing errors due to the read operation. It also reduces interference by neighboring cells and improves the reliability problem that occurs as the write operations are repeated.

복수의 멀티 레벨 셀들을 포함하는 메모리 어레이-상기 복수의 멀티 레벨 셀들 각각은 복수의 비트들을 저장하고 복수의 페이지들에 대응함-에서 데이터 프로그래밍 방법은 쓰기 명령을 수신하는 단계; 상기 쓰기 명령에 응답하여, 동시에 상기 복수의 페이지들에 대하여 상기 복수의 멀티 레벨 셀들 각각의 상태를 변화시키기 위하여 거친(coarse) 쓰기를 실행하는 단계; 상기 복수의 페이지들에 대하여 동시에 변화된 상기 복수의 멀티 레벨 셀들 각각의 상태를 조정하기 위하여 미세(fine) 쓰기를 실행하는 단계를 포함한다.A memory array comprising a plurality of multi-level cells, each of the plurality of multi-level cells storing a plurality of bits and corresponding to a plurality of pages, the data programming method comprising: receiving a write command; Performing coarse writing to change the state of each of the plurality of multilevel cells for the plurality of pages at the same time in response to the write command; And performing a fine write to adjust the state of each of the plurality of multi-level cells simultaneously changed for the plurality of pages.

상기 복수의 멀티 레벨 셀들 각각이 n 비트 멀티 레벨 셀인 경우,When each of the plurality of multi-level cells is an n-bit multi-level cell,

상기 거친(coarse) 쓰기를 실행하는 단계는 동시에 n 개의 페이지들에 대하여 상기 복수의 멀티 레벨 셀들 각각의 상태를 변화시키는 단계이다.The step of performing coarse writing is a step of changing the state of each of the plurality of multi-level cells for n pages at the same time.

상기 거친(coarse) 쓰기를 실행하는 단계는 상기 n 개의 페이지들에 대응하는 데이터가 페이지 레지스터에 저장된 이후에, 상기 거친(coarse) 쓰기를 실행하는 단계를 더 포함한다.The step of performing coarse writing further comprises performing the coarse write after the data corresponding to the n pages is stored in the page register.

상기 페이지 레지스터에 저장된 데이터는 상기 미세(fine) 쓰기를 실행하는 단계가 완료될 때까지 유지되고, 상기 거친(coarse) 쓰기를 실행하는 단계는 상기 페이지 레지스터에 저장된 데이터를 이용하여, 거친(coarse) 쓰기를 실행한다.Wherein the data stored in the page register is maintained until the step of performing the fine writing is completed and the step of performing coarse writing is performed using coarse data, Write is executed.

상기 복수의 멀티 레벨 셀들 각각이 n 비트 멀티 레벨 셀인 경우, 상기 쓰기 명령을 수신하는 단계는 n 개의 페이지에 데이터를 프로그래밍 하기 위해서 n 개의 페이지에 대한 쓰기 명령을 한 번 수신하는 단계를 포함한다.When each of the plurality of multi-level cells is an n-bit multi-level cell, receiving the write command includes receiving a write command for n pages once to program data on n pages.

상기 복수의 멀티 레벨 셀들 각각이 n 비트 멀티 레벨 셀인 경우, 상기 쓰기 명령을 수신하는 단계는 n 개의 페이지에 데이터를 프로그래밍 하기 위해서 1 개의 페이지에 대한 쓰기 명령을 n 번 수신하는 단계를 포함한다.If each of the plurality of multilevel cells is an n-bit multilevel cell, receiving the write command includes receiving n write commands for one page to program data on n pages.

상기 미세(fine) 쓰기를 실행하는 단계는 상기 쓰기 명령과 구별되는 적어도 하나의 다른 쓰기 명령에 대한 상기 거친(coarse) 쓰기가 실행된 이후에, 상기 미세(fine) 쓰기를 실행하는 단계이다.The step of performing the fine writing is a step of executing the fine writing after the coarse writing is executed for at least one other writing command different from the writing command.

상기 미세(fine) 쓰기를 실행하는 단계는 상기 n 개의 페이지들에 대한 상기 거친(coarse) 쓰기가 실행되고, 다른 n 개의 페이지들에 대한 상기 거친(coarse) 쓰기가 더 실행된 이후에, 상기 n 개의 페이지들에 대하여 상기 복수의 멀티 레벨 셀들 각각의 상태를 조정하는 단계를 포함한다.Wherein performing the fine writing comprises: after the coarse writing for the n pages is performed and after the coarse writing for the other n pages is further performed, the n < RTI ID = 0.0 > And adjusting the state of each of the plurality of multi-level cells with respect to the plurality of pages.

상기 쓰기 명령을 수신하는 단계는 단일의 쓰기 명령을 수신하는 단계이고, 상기 단일의 쓰기 명령에 대하여 상기 복수의 페이지들에 대한 데이터를 수신하는 단계; 및 상기 복수의 페이지들에 대한 데이터를 페이지 레지스터에 저장하는 단계를 더 포함한다.Wherein receiving the write command comprises receiving a single write command and receiving data for the plurality of pages for the single write command; And storing the data for the plurality of pages in a page register.

상기 페이지 레지스터에 저장된 데이터는 상기 미세(fine) 쓰기를 실행하는 단계가 완료될 때까지 유지되고, 상기 미세(fine) 쓰기를 실행하는 단계는 상기 페이지 레지스터에 저장된 데이터를 이용하여, 미세(fine) 쓰기를 실행한다.Wherein the data stored in the page register is maintained until the step of performing the fine writing is completed and the step of performing the fine writing is performed using fine data stored in the page register, Write is executed.

상기 복수의 멀티 레벨 셀들 각각이 n 비트 멀티 레벨 셀인 경우, 상기 거친(coarse) 쓰기를 위한 오퍼레이션에서 상기 복수의 멀티 레벨 셀들 각각의 상태는 2n 개의 상태들 중 어느 하나로 결정되고, 상기 미세(fine) 쓰기를 위한 오퍼레이션에서 상기 결정된 어느 하나의 상태에 대한 특성이 변화한다.Wherein when the plurality of multi-level cells is an n-bit multi-level cell, the state of each of the plurality of multi-level cells in the operation for coarse writing is determined to be one of 2 n states, ) ≪ / RTI > changes in the characteristics for any one of the determined states in the operation for writing.

상기 n 개의 페이지들에 대응하는 데이터가 페이지 레지스터에 저장될 때까지 상기 쓰기 명령을 홀딩하는 단계를 더 포함한다.And holding the write command until data corresponding to the n pages is stored in the page register.

데이터 프로그래밍을 수행하는 메모리 장치는 복수의 멀티 레벨 셀들을 포함하는 메모리 어레이-상기 복수의 멀티 레벨 셀들 각각은 복수의 비트들을 저장하고 복수의 페이지들에 대응함-; 쓰기 명령을 수신하는 수신부; 상기 복수의 페이지들에 대한 데이터를 저장하는 페이지 레지스터; 상기 쓰기 명령에 응답하여, 동시에 상기 복수의 페이지들에 대하여 상기 복수의 멀티 레벨 셀들 각각의 상태를 변화시키기 위하여 거친(coarse) 쓰기를 실행하고, 상기 복수의 페이지들에 대하여 동시에 변화된 상기 복수의 멀티 레벨 셀들 각각의 상태를 조정하기 위하여 미세(fine) 쓰기를 실행하는 쓰기 실행부를 포함한다.A memory device for performing data programming includes a memory array including a plurality of multi-level cells, each of the plurality of multi-level cells storing a plurality of bits and corresponding to a plurality of pages; A receiving unit for receiving a write command; A page register for storing data for the plurality of pages; In response to the write command, performing a coarse write to simultaneously change the state of each of the plurality of multi-level cells with respect to the plurality of pages, And a write executing unit for executing fine writing to adjust the state of each of the level cells.

상기 복수의 멀티 레벨 셀들 각각이 n 비트 멀티 레벨 셀인 경우, 상기 쓰기 실행부는 동시에 n 개의 페이지들에 대하여 상기 복수의 멀티 레벨 셀들 각각의 상태를 변화시킨다.When each of the plurality of multi-level cells is an n-bit multi-level cell, the write executing unit changes the state of each of the plurality of multi-level cells simultaneously with respect to n pages.

상기 쓰기 실행부는 상기 n 개의 페이지들에 대응하는 데이터가 페이지 레지스터에 저장된 이후에, 상기 거친(coarse) 쓰기를 실행한다.The write execution unit executes the coarse write after the data corresponding to the n pages are stored in the page register.

상기 쓰기 실행부는 상기 쓰기 명령과 구별되는 적어도 하나의 다른 쓰기 명령에 대한 상기 거친(coarse) 쓰기가 실행된 이후에, 상기 미세(fine) 쓰기를 실행한다.The write executing unit executes the fine writing after the coarse writing is executed for at least one other write command different from the write command.

상기 쓰기 실행부는 상기 n 개의 페이지들에 대한 상기 거친(coarse) 쓰기가 실행되고, 다른 n 개의 페이지들에 대한 상기 거친(coarse) 쓰기가 더 실행된 이후에, 상기 n 개의 페이지들에 대하여 상기 복수의 멀티 레벨 셀들 각각의 상태를 조정한다.Wherein the write implementer is configured to perform the coarse writes on the n pages after the coarse writes have been performed on the other n pages, Level cells of the multi-level cells.

상기 쓰기 실행부는 상기 n 개의 페이지들에 대응하는 데이터가 페이지 레지스터에 저장될 때까지 상기 쓰기 명령을 홀딩한다.The write execution unit holds the write command until data corresponding to the n pages is stored in the page register.

스토리지 시스템은 호스트로부터 데이터를 수신하는 컨트롤러; 버스를 통하여 상기 컨트롤러로부터 데이터 및 명령을 수신하는 복수의 메모리 장치들을 포함하고, 상기 복수의 메모리 장치들 각각은 복수의 멀티 레벨 셀들을 포함하는 메모리 어레이-상기 복수의 멀티 레벨 셀들 각각은 복수의 비트들을 저장하고 복수의 페이지들에 대응함-; 쓰기 명령을 수신하는 수신부; 상기 복수의 페이지들에 대한 데이터를 저장하는 페이지 레지스터; 상기 쓰기 명령에 응답하여, 동시에 상기 복수의 페이지들에 대하여 상기 복수의 멀티 레벨 셀들 각각의 상태를 변화시키기 위하여 거친(coarse) 쓰기를 실행하고, 상기 복수의 페이지들에 대하여 동시에 변화된 상기 복수의 멀티 레벨 셀들 각각의 상태를 조정하기 위하여 미세(fine) 쓰기를 실행하는 쓰기 실행부를 포함한다.The storage system includes a controller for receiving data from a host; A plurality of memory devices for receiving data and instructions from the controller via a bus, each of the plurality of memory devices including a plurality of multi-level cells, each of the plurality of multi- Storing a plurality of pages and corresponding to a plurality of pages; A receiving unit for receiving a write command; A page register for storing data for the plurality of pages; In response to the write command, performing a coarse write to simultaneously change the state of each of the plurality of multi-level cells with respect to the plurality of pages, And a write executing unit for executing fine writing to adjust the state of each of the level cells.

거친(coarse) 쓰기와 미세(fine) 쓰기로 구분하여 멀티 레벨 셀에 대한 쓰기 오퍼레이션을 수행함으로써, 쓰기 오퍼레이션들을 페이지들의 개수에 대응하는 만큼 반복하지 않고 멀티 레벨 셀에 대한 쓰기 오퍼레이션을 실행한다. 이러한 쓰기 오퍼레이션은 다음 쓰기 오퍼레이션을 수행하기 위해 이전 쓰기 오퍼레이션에 의해 결정된 멀티 레벨 셀의 상태를 읽을 필요가 없으므로, 읽기 작업에 따른 오류를 방지할 수 있다. 또한, 주변 셀에 의한 간섭(interference)을 감소시키고, 쓰기 오퍼레이션들이 반복됨에 따라 생기는 신뢰성 문제를 개선할 수 있다.By performing a write operation on a multi-level cell, the coarse write operation and the fine write operation are performed to perform a write operation on a multi-level cell without repeating write operations corresponding to the number of pages. This write operation does not need to read the state of the multilevel cell determined by the previous write operation to perform the next write operation, thereby preventing errors due to the read operation. It also reduces interference by neighboring cells and improves the reliability problem that occurs as the write operations are repeated.

도 1은 일반적인 플래시 메모리를 나타낸 도면이다.
도 2는 n-비트 MLC(Multi Level Cell)들을 포함하는 메모리 어레이를 나타낸 도면이다.
도 3은 일반적인 플래시 메모리에서 메모리 장치들과 컨트롤러 사이의 버스를 통해 흐르는 명령 및 데이터와 메모리 장치들 각각에서 수행되는 오퍼레이션들을 나타낸 타이밍도이다.
도 4는 3-비트 MLC에서 복수의 쓰기 오퍼레이션들 각각에서 발생 가능한 MLC의 상태들을 나타낸 도면이다.
도 5는 일반적인 플래시 메모리에서 MLC의 다음 상태가 현재 상태 및 입력된 데이터에 의해 결정됨을 보여주는 타이밍도이다.
도 6은 일실시예에 따른 데이터 프로그램을 수행하는 방법을 나타낸 플로우 차트이다.
도 7은 본 발명의 메모리 장치에서 버스를 통해 흐르는 명령 및 데이터와 메모리 장치들 각각에서 수행되는 오퍼레이션들을 나타낸 타이밍도이다.
도 8은 본 발명의 거친 쓰기 오퍼레이션에 따라 발생 가능한 3-비트 MLC의 상태들을 나타낸 도면이다.
도 9는 본 발명의 거친 쓰기 오퍼레이션 및 미세 쓰기 오퍼레이션을 설명하는 타이밍도이다.
도 10은 본 발명의 일실시예에 따른 거친 쓰기 오퍼레이션이 수행되는 경우 및 미세 쓰기 오퍼레이션이 수행되는 경우에 대한 3-비트 MLC의 상태 변화를 나타낸 도면이다.
도 11은 3-비트 MLC에 대하여 쓰기 명령을 실행하는 것을 설명하는 도면이다.
도 12는 본 발명의 일실시예에 따른 메모리 장치를 나타낸 도면이다.
1 shows a general flash memory.
2 shows a memory array including n-bit MLCs (Multi Level Cells).
3 is a timing diagram illustrating operations performed on each of the memory devices and commands and data flowing through the bus between the memory devices and the controller in a conventional flash memory.
4 is a diagram showing states of MLCs that can occur in each of a plurality of write operations in a 3-bit MLC.
5 is a timing diagram showing that the next state of the MLC in a general flash memory is determined by the current state and the input data.
6 is a flowchart illustrating a method of performing a data program according to an embodiment.
7 is a timing diagram illustrating operations performed on each of the memory devices and commands and data flowing through the bus in the memory device of the present invention.
8 is a diagram illustrating states of a 3-bit MLC that can be generated according to the coarse write operation of the present invention.
9 is a timing diagram illustrating the coarse write operation and fine write operation of the present invention.
FIG. 10 is a diagram illustrating a state change of a 3-bit MLC when a coarse write operation is performed and a fine write operation is performed according to an embodiment of the present invention.
FIG. 11 is a diagram for explaining execution of a write command for a 3-bit MLC. FIG.
12 illustrates a memory device according to an embodiment of the present invention.

이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings.

도 1은 일반적인 플래시 메모리를 나타낸 도면이다.1 shows a general flash memory.

도 1을 참조하면 페이지 단위의 데이터(110)가 플래시 메모리 칩(120)에 쓰이는 과정이 나타나 있다. 플래시 메모리 칩(120)은 복수의 메모리 어레이(121)를 포함할 수 있다. 각각의 메모리 어레이는 복수의 블록(122, 123)으로 구성될 수 있으며, 각각의 블록은 복수의 페이지로 구성될 수 있다.Referring to FIG. 1, the process of using page-based data 110 in the flash memory chip 120 is shown. The flash memory chip 120 may include a plurality of memory arrays 121. Each memory array may be composed of a plurality of blocks 122 and 123, and each block may be composed of a plurality of pages.

플래시 메모리는 페이지 단위로 데이터 쓰기 작업을 실행한다. 또한, 플래시 메모리는 저장하려고 하는 데이터를 페이지 레지스터에 저장한다. 플래시 메모리가 쓰기 명령을 수신한 경우, 쓰기 명령에 대응하는 데이터를 페이지 레지스터에 페이지 단위로 저장하고, 쓰기 명령과 함께 수신한 주소에 해당 페이지를 저장한다.The flash memory executes the data write operation on a page basis. In addition, the flash memory stores data to be stored in a page register. When the flash memory receives a write command, it stores the data corresponding to the write command in the page register in page units, and stores the page in the address received with the write command.

도 2는 n-비트 MLC(Multi Level Cell)들을 포함하는 메모리 어레이를 나타낸 도면이다.2 shows a memory array including n-bit MLCs (Multi Level Cells).

도 2를 참조하면, 하나의 블록은 복수의 워드라인을 포함한다. 각각의 워드라인은 복수의 셀을 포함한다. n-비트 MLC에서 각각의 셀은 n-비트를 저장할 수 있으며, 하나의 셀에 저장된 n-비트의 페이지 주소는 서로 다르다. 예를 들면, 2-비트 MLC에서 각각의 셀은 2-비트를 저장할 수 있으며, 하나의 셀에 저장된 2-비트의 페이지 주소는 서로 다르다. 그리고 3-비트 MLC에서 각각의 셀은 3-비트를 저장할 수 있으며, 하나의 셀에 저장된 3-비트의 페이지 주소는 서로 다르다.Referring to FIG. 2, one block includes a plurality of word lines. Each word line includes a plurality of cells. In an n-bit MLC, each cell can store n bits, and the page addresses of n bits stored in one cell are different. For example, in a two-bit MLC, each cell can store two bits, and the two-bit page addresses stored in one cell are different. In a 3-bit MLC, each cell can store 3-bits, and the 3-bit page addresses stored in one cell are different from each other.

도 3은 일반적인 플래시 메모리에서 메모리 장치들과 컨트롤러 사이의 버스를 통해 흐르는 쓰기 명령 및 데이터와 메모리 장치들 각각에서 수행되는 쓰기 오퍼레이션들을 나타낸 타이밍도이다.3 is a timing diagram illustrating write commands and data that flow through a bus between memory devices and a controller in a conventional flash memory and write operations performed on each of the memory devices.

도 3을 참조하면, 플래시 버스에는 페이지 i, j 및 k에 대한 쓰기 명령에 따른 데이터 D(i), D(j) 및 D(k)가 존재하고, 플래시 메모리 칩은 각각의 데이터에 대한 쓰기 연산을 수행한다. 특정 데이터에 대한 쓰기 명령에 따라 플래시 버스에 특정 데이터가 입력되고, 플래시 메모리 칩은 특정 데이터를 쓰기 위한 연산을 수행한다.3, there are data D (i), D (j) and D (k) according to write commands for pages i, j and k in the flash bus, and the flash memory chip has write . Specific data is input to the flash bus according to a write command for specific data, and the flash memory chip performs an operation for writing specific data.

일반적인 n-비트 MLC는 하나의 셀에 n개의 페이지 데이터를 저장할 수 있으며, n-비트 MLC에 n-비트의 데이터를 저장하기 위해서는 n번의 쓰기 작업을 실행해야 한다. 예를 들어, 일반적인 플래시 메모리는 페이지 i, j 및 k를 플래시 메모리 칩에 저장하기 위해서 쓰기 작업을 3번 수행해야 한다.A typical n-bit MLC can store n page data in one cell and n write operations to store n-bit data in the n-bit MLC. For example, a typical flash memory must perform write operations three times to store pages i, j, and k in the flash memory chip.

도 4는 3-비트 MLC에서 복수의 쓰기 오퍼레이션들 각각에서 발생 가능한 MLC의 상태들을 나타낸 도면이다.4 is a diagram showing states of MLCs that can occur in each of a plurality of write operations in a 3-bit MLC.

도 4를 참조하면, 플래시 메모리 칩이 쓰기 작업을 실행할 때마다, MLC의 상태 개수는 2배씩 증가한다. n-비트 MLC에 n-비트의 데이터를 저장하기 위해서는 총 n번의 쓰기 작업이 필요하며, 한 번의 쓰기 작업은 각각의 상태들을 2배로 증가시킨다. 따라서, n-비트 MLC의 상태 개수의 최대 값은 2n개이다. 예를 들어, 데이터가 쓰이기 전의 MLC는 상태가 1개이고, 데이터 쓰기 작업이 3회 실행될 경우, MLC의 상태는 2개, 4개, 8개로 2배씩 증가한다. 3-비트 MLC에 3-비트의 데이터를 저장하기 위해서는 3번의 데이터 쓰기 작업이 필요하며, 셀의 상태 개수는 각각의 데이터 쓰기 작업에 의해서 2배씩 증가하므로, 셀의 상태 개수는 최종적으로 8개가 된다.Referring to FIG. 4, each time the flash memory chip executes a write operation, the number of states of the MLC increases by two times. To store n-bit data in an n-bit MLC requires a total of n write operations, and a write operation doubles each state. Therefore, the maximum value of the number of states of the n-bit MLC is 2 n . For example, if the state of the MLC before the data is used is 1, and the data write operation is executed 3 times, the state of the MLC is doubled to 2, 4, or 8. In order to store 3-bit data in a 3-bit MLC, three data writing operations are required. Since the number of states of a cell is increased by 2 by each data writing operation, the number of states of a cell is finally 8 .

도 5는 일반적인 플래시 메모리에서 MLC의 다음 상태가 현재 상태 및 입력된 데이터에 의해 결정됨을 보여주는 타이밍도이다.5 is a timing diagram showing that the next state of the MLC in a general flash memory is determined by the current state and the input data.

도 5를 참조하면, 일반적인 플래시 메모리의 쓰기 연산은 읽기 작업과 쓰기 작업을 포함한다. 읽기 작업은 현재의 상태를 파악하는 단계를 포함할 수 있고, 쓰기 작업은 다음 상태로 이동하는 단계를 포함한다. MLC에서 셀의 다음 상태는 셀의 현재 상태와 입력된 데이터 값에 의해서 결정된다. 셀의 현재 상태는 셀에 저장된 데이터를 읽어서 확인할 수 있다.Referring to FIG. 5, a general flash memory write operation includes a read operation and a write operation. The read operation may include grasping the current state, and the write operation includes moving to the next state. The next state of a cell in an MLC is determined by the current state of the cell and the input data value. The current state of a cell can be ascertained by reading the data stored in the cell.

MLC에서 읽기 작업을 할 때 발생한 오류는 다음 단계에도 누적된다. 셀의 다음 상태는 셀의 현재 상태와 입력된 데이터 값에 의해서 결정되기 때문에, 셀의 현재 상태를 읽을 때 오류가 발생할 경우, 셀의 다음 상태로 이동할 때도 오류가 발생하게 된다. 따라서, 하나의 셀에 저장되는 페이지의 수가 증가할수록 읽기 작업도 증가하기 때문에, MLC에 발생하는 오류도 증가된다.
Errors that occur when reading from the MLC are accumulated in the next step. Since the next state of a cell is determined by the current state of the cell and the input data value, if an error occurs when reading the current state of the cell, an error also occurs when moving to the next state of the cell. Therefore, as the number of pages stored in one cell increases, the number of read operations also increases, thereby increasing errors occurring in the MLC.

도 6은 일실시예에 따른 데이터 프로그램을 수행하는 방법을 나타낸 플로우 차트이다.6 is a flowchart illustrating a method of performing a data program according to an embodiment.

도 6을 참조하면, 단계(610) 에서, 본 발명의 메모리 장치는 n개의 페이지를 범용 페이지 레지스터에 저장한다.Referring to FIG. 6, in step 610, the memory device of the present invention stores n pages in a general page register.

범용 페이지 레지스터는 n개의 페이지 데이터를 메모리 어레이에 프로그램하기 위해 n개의 페이지 데이터를 임시로 저장하기 위한 레지스터일 수 있다. 페이지 데이터는 본 발명의 2 단계 쓰기가 완료될 때까지 범용 페이지 레지스터에 저장되어 있어야 한다. 메모리 장치는 범용 페이지 레지스터에 저장된 페이지 데이터에 대한 미세쓰기가 완료된 이후에 범용 페이지 레지스터에 저장된 페이지 데이터를 무효(invalid)처리 할 수 있다.The general page register may be a register for temporarily storing n page data to program n page data into the memory array. The page data must be stored in the general page register until the two-step write of the present invention is completed. The memory device may invalidate the page data stored in the general-purpose page register after the fine writing of the page data stored in the general-purpose page register is completed.

단계(620) 에서, 본 발명의 메모리 장치는 n개의 페이지에 대해서 거친 쓰기를 실행한다.In step 620, the memory device of the present invention performs a coarse write to n pages.

본 발명의 쓰기 작업은 2 단계 쓰기를 포함한다. 한 번의 쓰기 작업으로 하나의 셀에 저장할 수 있는 모든 페이지를 저장할 경우, 주변 셀에 의한 간섭(interference)이 증가되어 신뢰성이 나빠질 수 있기 때문에, 본 발명의 쓰기 작업은 성능을 높이기 위한 거친 쓰기 작업을 한 이후에, 간섭을 받은 셀에 대해서 신뢰성을 높이기 위한 미세 쓰기 작업을 한다.The writing operation of the present invention includes two-step writing. If all the pages that can be stored in one cell are stored in a single write operation, the interference due to the neighboring cells may be increased and the reliability may be deteriorated. Therefore, the write operation of the present invention may be performed by a coarse write operation After that, a fine write operation is performed to increase the reliability of the interfered cells.

거친 쓰기 오퍼레이션은 현재 데이터를 저장하려고 하는 셀에 대해 이루어지며, 하나의 워드라인을 구성하는 일련의 n-비트 MLC들에 대해서 동시에 n-페이지의 비트들의 상태를 변화시킨다.The coarse write operation is performed on the cell where the current data is to be stored, and simultaneously changes the state of the bits of the n-page for a series of n-bit MLCs constituting one word line.

단계(630) 에서, 본 발명의 메모리 장치는 간섭을 받은 n개의 페이지에 대해서 미세쓰기를 실행한다.In step 630, the memory device of the present invention performs fine writing for n pages that are interfered.

미세 쓰기 오퍼레이션은 현재 셀에 대한 거친 쓰기 작업에 의해 간섭을 받은 셀에 대한 오퍼레이션이다. 미세 쓰기 오퍼레이션은 현재 셀에 대한 거친 쓰기 작업에 의해 간섭을 받은 셀의 상태를 조절하여 데이터의 신뢰성을 향상시킬 수 있다.A fine write operation is an operation on a cell that has been interfered by a coarse write operation on the current cell. The fine write operation can improve the reliability of data by adjusting the state of the cell that is interfered by the coarse write operation on the current cell.

본 발명의 2 단계 쓰기 오퍼레이션은, 일반적인 MLC와 달리 읽기 작업을 필요로 하지 않기 때문에, 일반적인 MLC에서 읽기 작업을 할 때 발생한 오류가 다음 단계에도 누적되는 현상을 막을 수 있다.Since the two-step write operation of the present invention does not require a read operation unlike a general MLC, it is possible to prevent an error occurring when a read operation is performed in a general MLC to accumulate in a next step.

단계(630) 에서, 본 발명의 메모리 장치는 미세쓰기가 끝난 n개의 페이지를 범용 페이지 레지스터에서 무효처리한다.In step 630, the memory device of the present invention invalidates n pages that have been finely written in the general purpose page register.

메모리 장치는 페이지로의 접근을 차단하기 위해 범용 페이지 레지스터에서 미세쓰기가 완료된 n개의 페이지를 무효(invalid)처리 할 수 있다. 예를 들어, 메모리 장치는 페이지 테이블의 유효/무효를 나타내는 비트를 제어하여 미세쓰기가 완료된 n개의 페이지에 대한 무효(invalid)처리를 수행할 수 있다.
The memory device may invalidate n pages that have been finely written in the general purpose page register to block access to the page. For example, the memory device can perform an invalidation process for n pages in which fine writing is completed by controlling bits indicating valid / invalid of the page table.

도 7은 본 발명의 메모리 장치에서 버스를 통해 흐르는 쓰기 명령 및 데이터와 메모리 장치들 각각에서 수행되는 오퍼레이션들을 나타낸 타이밍도이다.7 is a timing diagram illustrating operations performed in each of the memory devices and the write command and data flowing through the bus in the memory device of the present invention.

도 7을 참조하면, 본 발명의 메모리 장치는 하나의 셀에 저장할 수 있는 n-페이지의 데이터를 한꺼번에 저장한다. 예를 들어, 도 3에서 일반적인 플래시 메모리가 3-비트의 데이터를 저장하기 위해서는 3번의 쓰기 명령, 3번의 쓰기 명령에 따른 3-페이지의 데이터, 3번의 쓰기 연산이 필요했다. 그러나 본 발명의 메모리 장치는 한 번의 쓰기 명령, 한 번의 쓰기 명령에 따른 3-페이지의 데이터, 한 번의 쓰기 연산에 따라 3-비트의 데이터를 저장할 수 있다. 즉, 2-비트 MLC의 경우에는, 2-페이지를 한꺼번에 저장하고, 3-비트 MLC의 경우에는 3-페이지의 데이터를 한꺼번에 저장한다. 본 발명의 메모리 장치는 하나의 셀에 저장할 수 있는 n-페이지의 데이터를 한꺼번에 저장하기 위해서 거친(coarse) 쓰기와 미세(fine) 쓰기의 과정을 수행한다. Referring to FIG. 7, the memory device of the present invention stores n-page data that can be stored in one cell at a time. For example, in FIG. 3, in order to store 3-bit data, a general flash memory requires three write commands, three page data according to three write commands, and three write operations. However, the memory device of the present invention can store 3-bit data according to one write command, 3-page data according to one write command, and one write operation. That is, in the case of a 2-bit MLC, 2-pages are stored at once, and in the case of a 3-bit MLC, 3-pages are stored at a time. The memory device of the present invention performs a coarse write operation and a fine write operation in order to store n-page data that can be stored in one cell at a time.

도 8은 본 발명의 거친 쓰기 오퍼레이션에 따라 발생 가능한 3-비트 MLC의 상태들을 나타낸 도면이다.8 is a diagram illustrating states of a 3-bit MLC that can be generated according to the coarse write operation of the present invention.

도 8을 참조하면, 본 발명의 거친 쓰기 오퍼레이션 이후의 셀의 상태 개수는 특정 셀이 가질 수 있는 최대 개수가 된다. 예를 들어, 3-비트 MLC의 경우, 셀이 가질 수 있는 최대의 상태 개수는 8개이므로, 본 발명의 거친 쓰기 오퍼레이션 이후의 셀의 상태 개수는 8개가 된다.Referring to FIG. 8, the number of states of a cell after the coarse write operation of the present invention is the maximum number that a specific cell can have. For example, in the case of a 3-bit MLC, since the maximum number of states the cell can have is eight, the number of states of the cells after the coarse write operation of the present invention is eight.

본 발명의 쓰기 작업은 2 단계 쓰기를 포함한다. 한 번의 쓰기 작업으로 하나의 셀에 저장할 수 있는 모든 페이지를 저장할 경우, 주변 셀에 의한 간섭(interference)의 증가로 인해서, 신뢰성이 나빠질 수 있다. 본 발명의 쓰기 작업은 성능을 높이기 위한 거친 쓰기 작업을 한 이후에, 간섭을 받은 셀에 대해서 신뢰성을 높이기 위한 미세 쓰기 작업을 한다.The writing operation of the present invention includes two-step writing. When all pages that can be stored in one cell are stored in a single write operation, reliability may deteriorate due to an increase in interference due to neighboring cells. The write operation of the present invention performs a coarse write operation to increase the performance, and then performs a fine write operation to increase the reliability of the interfered cell.

도 9는 본 발명의 거친 쓰기 오퍼레이션 및 미세 쓰기 오퍼레이션을 설명하는 타이밍도이다.9 is a timing diagram illustrating the coarse write operation and fine write operation of the present invention.

도 9를 참조하면, 본 발명의 쓰기 오퍼레이션은 현재 셀에 대한 거친 쓰기 오퍼레이션과 간섭을 받은 셀에 대한 미세 쓰기 오퍼레이션을 포함한다. 거친 쓰기 오퍼레이션은 현재 데이터를 저장하려고 하는 셀에 대한 오퍼레이션이다. 미세 쓰기 오퍼레이션은 현재 셀에 대한 거친 쓰기 작업에 의해 간섭을 받은 셀에 대한 오퍼레이션이다. 본 발명의 쓰기 오퍼레이션을 위해서, 데이터는 미세 쓰기 오퍼레이션이 끝날 때까지 플래시 메모리 칩의 레지스터에 저장되어 있어야 한다. 본 발명의 쓰기 오퍼레이션은, 일반적인 MLC와 달리 읽기 작업을 필요로 하지 않기 때문에, 일반적인 MLC에서 읽기 작업을 할 때 발생한 오류가 다음 단계에도 누적되는 현상을 막을 수 있다.Referring to FIG. 9, the write operation of the present invention includes a coarse write operation for the current cell and a fine write operation for the interfered cell. The coarse write operation is an operation on the cell where the current data is to be stored. A fine write operation is an operation on a cell that has been interfered by a coarse write operation on the current cell. For the write operation of the present invention, the data must be stored in a register of the flash memory chip until the fine write operation is completed. Since the write operation of the present invention does not require a read operation unlike a general MLC, it is possible to prevent an error that occurs when a read operation is performed in a general MLC to accumulate in a next step.

도 10은 본 발명의 일실시예에 따른 거친 쓰기 오퍼레이션이 수행되는 경우 및 미세 쓰기 오퍼레이션이 수행되는 경우에 대한 3-비트 MLC의 상태 변화를 나타낸 도면이다.FIG. 10 is a diagram illustrating a state change of a 3-bit MLC when a coarse write operation is performed and a fine write operation is performed according to an embodiment of the present invention.

도 10을 참조하면, 거친 쓰기 오퍼레이션에 따라서 MLC의 상태 개수는 최대가 된다. n-비트 MLC의 상태 개수의 최대 값은 2n개이다. 또한, 미세 쓰기 오퍼레이션에 따라서 각각의 상태들은 거친 쓰기 오퍼레이션에 따른 상태보다 신뢰성이 우수한 상태로 수정된다. 미세 쓰기 오퍼레이션은 MLC의 상태 개수를 변화시키지 않으며, MLC의 상태 특성만 개선시킨다.Referring to FIG. 10, the number of states of the MLC is maximized according to the coarse write operation. The maximum number of states of the n-bit MLC is 2 n . Also, according to the fine write operation, each state is modified to a state of better reliability than a state according to a coarse write operation. The fine write operation does not change the number of states of the MLC and improves only the state characteristics of the MLC.

거친 쓰기 오퍼레이션과 미세 쓰기 오퍼레이션은 일련의 MLC들로 구성된 워드라인에 대해 실행되기 때문에, 하나의 워드라인을 구성하는 일련의 n-비트 MLC들에 대해서 동시에 n-페이지의 비트들의 상태를 변화시킨다. 예를 들어, 3-비트 MLC들로 구성된 워드라인에 대한 거친 쓰기 오퍼레이션과 미세 쓰기 오퍼레이션은 각각 3-비트 MLC들에 대한 3-페이지의 비트들의 상태를 변화시킨다.The coarse write operation and the fine write operation change the state of the bits of the n-page at the same time for a series of n-bit MLCs constituting one word line, since they are executed for the word line composed of a series of MLCs. For example, the coarse write operation and the fine write operation for a word line comprised of 3-bit MLCs change the state of the 3-page bits for 3-bit MLCs, respectively.

도 11은 3-비트 MLC에 대하여 쓰기 명령을 실행하는 것을 설명하는 도면이다.FIG. 11 is a diagram for explaining execution of a write command for a 3-bit MLC. FIG.

n-비트 MLC에서 메모리 장치가 n 페이지의 데이터를 프로그래밍 하기 위한 n 페이지의 데이터를 수신하는 방법은 두 가지가 있을 수 있다. 첫 번째로, 메모리 장치는, 도 5 및 도 7과 같이, n 페이지의 데이터에 대한 한 개의 쓰기 명령을 한 번 수신함으로써, n 페이지의 데이터를 수신할 수 있다. 두 번째로, 메모리 장치는, 한 페이지의 데이터에 대한 한 개의 쓰기 명령을 n 번 수신함으로써, n 페이지의 데이터를 수신할 수 있다. 도 11은 상기 방법 중 두 번째 방법을 이용해서 3-비트 MLC에 대해서 쓰기 명령을 실행하는 것을 설명하는 도면이다.In an n-bit MLC, there can be two ways for a memory device to receive n pages of data for programming n pages of data. First, the memory device can receive n pages of data by receiving a write command for n pages of data once, as in Figures 5 and 7. Secondly, the memory device can receive n pages of data by receiving one write command for one page of data n times. 11 is a diagram for explaining execution of a write command for a 3-bit MLC using the second method of the above method.

도 11을 참조하면, 플래시 메모리 블록(1110)은 복수의 워드라인으로 구성되고, 각각의 워드라인은 복수의 페이지를 저장한다. 각각의 워드라인은 복수의 MLC로 구성된다. 각각의 워드라인은 상이한 주소의 페이지를 저장한다. 하나의 워드 라인에 저장되는 복수의 페이지 주소들은 순차적일 수 있다.Referring to FIG. 11, a flash memory block 1110 is composed of a plurality of word lines, and each of the word lines stores a plurality of pages. Each word line is composed of a plurality of MLCs. Each word line stores a page at a different address. The plurality of page addresses stored in one word line may be sequential.

표 1120은 본 발명의 일실시예에 따른 플래시 메모리 컨트롤러의 명령 및 플래시 메모리 칩의 동작을 나타낸다.Table 1120 shows the operations of the flash memory controller and the operation of the flash memory chip according to an embodiment of the present invention.

플래시 메모리 컨트롤러가 ProgramPage(B0, P0, D0)명령을 플래시 메모리 칩에 전달할 경우, 플래시 메모리 칩은 범용 페이지 레지스터에 DO를 저장한다. 본 발명의 쓰기 오퍼레이션을 위해서, 데이터는 미세 쓰기 오퍼레이션이 끝날 때까지 플래시 메모리 칩의 레지스터에 저장되어 있어야 한다.When the flash memory controller transfers the ProgramPage (B0, P0, D0) instruction to the flash memory chip, the flash memory chip stores the DO in the general page register. For the write operation of the present invention, the data must be stored in a register of the flash memory chip until the fine write operation is completed.

플래시 메모리 컨트롤러가 ProgramPage(B0, P1, D1)명령을 플래시 메모리 칩에 전달할 경우, 플래시 메모리 칩은 범용 페이지 레지스터에 D1을 저장한다.When the flash memory controller transfers ProgramPage (B0, P1, D1) instructions to the flash memory chip, the flash memory chip stores D1 in the general page register.

플래시 메모리 컨트롤러가 ProgramPage(B0, P2, D2)명령을 플래시 메모리 칩에 전달할 경우, 플래시 메모리 칩은 범용 페이지 레지스터에 D2을 저장하고, D0, D1 및 D2에 대한 거친 쓰기 오퍼레이션을 실행한다. D0, D1 및 D2에 대한 미세 쓰기 오퍼레이션이 수행되지 않았으므로, 플래시 메모리 칩은 D0, D1 및 D2를 범용 레지스터에 계속 저장한다.When the flash memory controller passes ProgramPage (B0, P2, D2) instructions to the flash memory chip, the flash memory chip stores D2 in the general purpose page register and executes the coarse write operation on D0, D1 and D2. Since no fine write operation has been performed on D0, D1 and D2, the flash memory chip continues to store D0, D1 and D2 in the general purpose registers.

플래시 메모리 컨트롤러가 ProgramPage(B0, P3, D3)명령을 플래시 메모리 칩에 전달할 경우, 플래시 메모리 칩은 범용 페이지 레지스터에 D3를 저장한다.When the flash memory controller transfers ProgramPage (B0, P3, D3) instructions to the flash memory chip, the flash memory chip stores D3 in the general page register.

플래시 메모리 컨트롤러가 ProgramPage(B0, P4, D4)명령을 플래시 메모리 칩에 전달할 경우, 플래시 메모리 칩은 범용 페이지 레지스터에 D4를 저장한다.When the flash memory controller passes ProgramPage (B0, P4, D4) instructions to the flash memory chip, the flash memory chip stores D4 in the general page register.

플래시 메모리 컨트롤러가 ProgramPage(B0, P5, D5)명령을 플래시 메모리 칩에 전달할 경우, 플래시 메모리 칩은 범용 페이지 레지스터에 D5를 저장하고, D3, D4 및 D5에 대한 거친 쓰기 오퍼레이션을 실행한다. D3, D4 및 D5에 대한 거친 쓰기 오퍼레이션에 따라서 D0, D1 및 D2에 간섭이 발생되면, 플래시 메모리 칩은, D0, D1 및 D2에 대한 미세 쓰기를 실행한다. D0, D1 및 D2에 대한 미세 쓰기가 끝났으므로, 플래시 메모리는 D0, D1, D2를 범용 페이지 레지스터에 더 이상 저장할 필요가 없다.When the flash memory controller passes ProgramPage (B0, P5, D5) instructions to the flash memory chip, the flash memory chip stores D5 in the general purpose page register and executes the rough write operation on D3, D4 and D5. If interference occurs in D0, D1 and D2 according to the coarse write operation for D3, D4 and D5, the flash memory chip performs fine writing for D0, D1 and D2. Since fine writing to D0, D1, and D2 is completed, the flash memory no longer needs to store D0, D1, and D2 in the general purpose page register.

플래시 메모리 컨트롤러가 ProgramPage(B0, P6, D6)명령을 플래시 메모리 칩에 전달할 경우, 플래시 메모리 칩은 범용 페이지 레지스터에 D6를 저장한다.When the flash memory controller passes ProgramPage (B0, P6, D6) instructions to the flash memory chip, the flash memory chip stores D6 in the general page register.

플래시 메모리 컨트롤러가 ProgramPage(B0, P7, D7)명령을 플래시 메모리 칩에 전달할 경우, 플래시 메모리 칩은 범용 페이지 레지스터에 D7을 저장한다.When the flash memory controller sends a ProgramPage (B0, P7, D7) instruction to the flash memory chip, the flash memory chip stores D7 in the general page register.

플래시 메모리 컨트롤러가 ProgramPage(B0, P8, D8)명령을 플래시 메모리 칩에 전달할 경우, 플래시 메모리 칩은 범용 페이지 레지스터에 D8를 저장하고, D6, D7 및 D8에 대한 거친 쓰기 오퍼레이션을 실행한다. D6, D7 및 D8에 대한 거친 쓰기 오퍼레이션에 따라서 D3, D4 및 D5에 간섭이 발생되면, 플래시 메모리 칩은, D3, D4 및 D5에 대한 미세 쓰기를 실행한다. D3, D4 및 D5에 대한 미세 쓰기가 끝났으므로, 플래시 메모리는 D3, D4, D5를 범용 페이지 레지스터에 더 이상 저장할 필요가 없다.When the flash memory controller passes ProgramPage (B0, P8, D8) instructions to the flash memory chip, the flash memory chip stores D8 in the general purpose page register and executes the rough write operation on D6, D7 and D8. If interference occurs in D3, D4 and D5 according to the coarse write operation for D6, D7 and D8, the flash memory chip performs fine writing for D3, D4 and D5. Since fine writing to D3, D4 and D5 has been completed, the flash memory no longer needs to store D3, D4, D5 in the general purpose page register.

상기 거친 쓰기와 미세 쓰기 과정에 의해 각각의 데이터들은 플래시 메모리 칩에 저장된다. 본 발명의 메모리 장치는 하나의 워드라인에 대한 거친 쓰기 오퍼레이션과 미세 쓰기 오퍼레이션을 위한 쓰기 명령을 한 번 수신하며, 플래시 메모리 컨트롤러는 한 번의 쓰기 명령에 기초해서 하나의 워드라인에 대한 거친 쓰기 오퍼레이션과 미세 쓰기 오퍼레이션 명령을 내린다. 하나의 워드라인에 대한 거친 쓰기 오퍼레이션과 미세 쓰기 오퍼레이션은 본 발명의 메모리 장치에 대한 단일의 명령에 의해서 수행된다. 거친 쓰기와 미세 쓰기 과정에 의한 쓰기 오퍼레이션은 오류를 감소시킬 뿐 아니라 데이터 쓰기 속도를 향상시킬 수 있다.Each of the data is stored in the flash memory chip by the coarse write and fine write processes. The memory device of the present invention receives a write instruction for a coarse write operation and a fine write operation for one word line and the flash memory controller performs a coarse write operation for one word line Issue a fine write operation command. The coarse write operation and the fine write operation for one word line are performed by a single instruction for the memory device of the present invention. Writing operations by coarse writing and fine writing can not only reduce errors but also improve data writing speed.

도 12는 본 발명의 일실시예에 따른 메모리 장치를 나타낸 도면이다.12 illustrates a memory device according to an embodiment of the present invention.

도 12를 참조하면, 플래시 메모리 칩(1200)은 메모리 어레이(1210), 범용 페이지 레지스터(1220), 쓰기 명령을 수신하는 수신부 및 거친 쓰기와 미세 쓰기를 실행하는 실행부로 구성될 수 있다.12, the flash memory chip 1200 may include a memory array 1210, a general-purpose page register 1220, a receiving unit for receiving a write command, and an execution unit for executing coarse writing and fine writing.

메모리 어레이(1210)는 복수의 블록들로 구성될 수 있으며, 각각의 블록은 복수의 페이지들로 구성될 수 있다.The memory array 1210 may be composed of a plurality of blocks, and each block may be composed of a plurality of pages.

범용 페이지 레지스터는 저장하려고 하는 페이지에 대한 미세 쓰기가 완료되기 전까지 복수의 페이지를 저장하는 역할을 한다.The general-purpose page register serves to store multiple pages until the micro-writing of the page to be stored is completed.

수신부는 플래시 메모리 칩(1200)에 데이터를 쓰기 위한 쓰기 명령을 수신한다. 쓰기 명령은 플래시 메모리 컨트롤러에 의한 일련의 레지스터에 대한 저장 명령, 거친 쓰기 명령 및 미세 쓰기 명령에 의해 수행된다. 수신부는 호스트로부터 단일의 쓰기 명령을 수신하고, 실행부는 이에 따라서 거친 쓰기, 미세 쓰기 및 레지스터에 대한 저장 명령을 수행한다.The receiving unit receives a write command for writing data to the flash memory chip 1200. The write command is performed by a save command, a coarse write command, and a fine write command for a series of registers by the flash memory controller. The receiving unit receives a single writing command from the host, and the executing unit executes coarse writing, fine writing, and storage command to the register accordingly.

실행부는 거친 쓰기 오퍼레이션과 미세 쓰기 오퍼레이션을 실행한다. 거친 쓰기 오퍼레이션과 미세 쓰기 오퍼레이션에 대한 동작 과정은 상술하였으므로 상세한 설명은 생략한다.The execution unit executes coarse write operations and fine write operations. Since the operation procedure for the coarse write operation and the fine write operation has been described above, a detailed description will be omitted.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (21)

복수의 멀티 레벨 셀들을 포함하는 메모리 어레이-상기 복수의 멀티 레벨 셀들 각각은 복수의 비트들을 저장하고 복수의 페이지들에 대응함-에서 데이터 프로그래밍 방법에 있어서,
쓰기 명령을 수신하는 단계;
상기 쓰기 명령에 응답하여, 동시에 상기 복수의 페이지들 중에 제1 페이지 그룹에 대하여 상기 복수의 멀티 레벨 셀들 각각의 상태를 변화시키기 위하여 거친(coarse) 쓰기를 실행하는 단계; 및
상기 복수의 페이지들 중에, 상기 거친(coarse) 쓰기의 간섭에 의해 동시에 변화되고, 상기 제1 페이지 그룹에 인접한, 제2 페이지 그룹의 복수의 멀티 레벨 셀들 각각의 상태를 조정하기 위하여 미세(fine) 쓰기를 실행하는 단계
를 포함하는 데이터 프로그래밍 방법.
A method of programming data in a memory array comprising a plurality of multi-level cells, each of the plurality of multi-level cells storing a plurality of bits and corresponding to a plurality of pages,
Receiving a write command;
Performing coarse writing to change the state of each of the plurality of multilevel cells with respect to a first page group of the plurality of pages at the same time in response to the write command; And
A plurality of pages that are simultaneously changed by the interference of the coarse writing and which are fine to adjust the state of each of a plurality of multilevel cells of a second page group adjacent to the first page group, Steps to run write
/ RTI >
제1항에 있어서,
상기 복수의 멀티 레벨 셀들 각각이 n 비트 멀티 레벨 셀인 경우,
상기 거친(coarse) 쓰기를 실행하는 단계는
동시에 n 개의 페이지들에 대하여 상기 복수의 멀티 레벨 셀들 각각의 상태를 변화시키는 단계
를 포함하는 데이터 프로그래밍 방법.
The method according to claim 1,
When each of the plurality of multi-level cells is an n-bit multi-level cell,
The step of performing the coarse writing
Varying the state of each of the plurality of multilevel cells for n pages simultaneously
/ RTI >
제2항에 있어서,
상기 거친(coarse) 쓰기를 실행하는 단계는
상기 n 개의 페이지들에 대응하는 데이터가 페이지 레지스터에 저장된 이후에, 상기 거친(coarse) 쓰기를 실행하는 단계
를 더 포함하는 데이터 프로그래밍 방법.
3. The method of claim 2,
The step of performing the coarse writing
Executing the coarse write after the data corresponding to the n pages is stored in a page register,
Lt; / RTI >
제3항에 있어서,
상기 페이지 레지스터에 저장된 데이터는 상기 미세(fine) 쓰기를 실행하는 단계가 완료될 때까지 유지되고,
상기 거친(coarse) 쓰기를 실행하는 단계는
상기 페이지 레지스터에 저장된 데이터를 이용하여, 거친(coarse) 쓰기를 실행하는 데이터 프로그래밍 방법.
The method of claim 3,
The data stored in the page register is held until the step of executing the fine writing is completed,
The step of performing the coarse writing
And performing a coarse write using the data stored in the page register.
제1항에 있어서,
상기 복수의 멀티 레벨 셀들 각각이 n 비트 멀티 레벨 셀인 경우,
상기 쓰기 명령을 수신하는 단계는
n 개의 페이지에 데이터를 프로그래밍 하기 위해서 n 개의 페이지에 대한 쓰기 명령을 한 번 수신하는 단계
를 포함하는 데이터 프로그래밍 방법.
The method according to claim 1,
When each of the plurality of multi-level cells is an n-bit multi-level cell,
The step of receiving the write command
receiving a write command for n pages once to program data on n pages
/ RTI >
제1항에 있어서,
상기 복수의 멀티 레벨 셀들 각각이 n 비트 멀티 레벨 셀인 경우,
상기 쓰기 명령을 수신하는 단계는
n 개의 페이지에 데이터를 프로그래밍 하기 위해서 1 개의 페이지에 대한 쓰기 명령을 n 번 수신하는 단계
를 포함하는 데이터 프로그래밍 방법.
The method according to claim 1,
When each of the plurality of multi-level cells is an n-bit multi-level cell,
The step of receiving the write command
receiving a write command for one page n times to program data on n pages
/ RTI >
제1항에 있어서,
상기 미세(fine) 쓰기를 실행하는 단계는
상기 쓰기 명령과 구별되는 적어도 하나의 다른 쓰기 명령에 대한 상기 거친(coarse) 쓰기가 실행된 이후에, 상기 미세(fine) 쓰기를 실행하는 단계인 데이터 프로그래밍 방법.
The method according to claim 1,
The step of performing the fine writing
Executing the fine write after the coarse write to at least one other write command distinct from the write command is executed.
제2항에 있어서,
상기 미세(fine) 쓰기를 실행하는 단계는
상기 n 개의 페이지들에 대한 상기 거친(coarse) 쓰기가 실행되고, 다른 n 개의 페이지들에 대한 상기 거친(coarse) 쓰기가 더 실행된 이후에, 상기 n 개의 페이지들에 대하여 상기 복수의 멀티 레벨 셀들 각각의 상태를 조정하는 단계
를 포함하는 데이터 프로그래밍 방법.
3. The method of claim 2,
The step of performing the fine writing
After the coarse writing for the n pages is performed and after the coarse writing for the other n pages has been performed, the plurality of multi-level cells Adjusting each state
/ RTI >
제1항에 있어서,
상기 쓰기 명령을 수신하는 단계는
단일의 쓰기 명령을 수신하는 단계이고,
상기 단일의 쓰기 명령에 대하여 상기 복수의 페이지들에 대한 데이터를 수신하는 단계; 및
상기 복수의 페이지들에 대한 데이터를 페이지 레지스터에 저장하는 단계
를 더 포함하는 데이터 프로그래밍 방법.
The method according to claim 1,
The step of receiving the write command
Receiving a single write command,
Receiving data for the plurality of pages for the single write command; And
Storing the data for the plurality of pages in a page register
Lt; / RTI >
제8항에 있어서,
상기 페이지 레지스터에 저장된 데이터는 상기 미세(fine) 쓰기를 실행하는 단계가 완료될 때까지 유지되고,
상기 미세(fine) 쓰기를 실행하는 단계는
상기 페이지 레지스터에 저장된 데이터를 이용하여, 미세(fine) 쓰기를 실행하는 데이터 프로그래밍 방법.
9. The method of claim 8,
The data stored in the page register is held until the step of executing the fine writing is completed,
The step of performing the fine writing
And a fine write is performed using data stored in the page register.
제1항에 있어서,
상기 복수의 멀티 레벨 셀들 각각이 n 비트 멀티 레벨 셀인 경우,
상기 거친(coarse) 쓰기를 위한 오퍼레이션에서 상기 복수의 멀티 레벨 셀들 각각의 상태는 2n 개의 상태들 중 어느 하나로 결정되고,
상기 미세(fine) 쓰기를 위한 오퍼레이션에서 상기 결정된 어느 하나의 상태에 대한 특성이 변화하는 데이터 프로그래밍 방법.
The method according to claim 1,
When each of the plurality of multi-level cells is an n-bit multi-level cell,
The state of each of the plurality of multi-level cells in the operation for coarse writing is determined to be one of 2 n states,
Wherein the characteristic for the determined one of the states changes in the operation for fine writing.
제2항에 있어서,
상기 n 개의 페이지들에 대응하는 데이터가 페이지 레지스터에 저장될 때까지 상기 쓰기 명령을 홀딩하는 단계
를 더 포함하는 데이터 프로그래밍 방법.
3. The method of claim 2,
Holding the write command until data corresponding to the n pages is stored in a page register
Lt; / RTI >
제1항 내지 제12항 중 어느 한 항의 방법을 수행하기 위한 컴퓨터로 판독 가능한 기록 매체.13. A computer-readable recording medium for performing the method of any one of claims 1 to 12. 데이터 프로그래밍을 수행하는 메모리 장치에 있어서,
복수의 멀티 레벨 셀들을 포함하는 메모리 어레이-상기 복수의 멀티 레벨 셀들 각각은 복수의 비트들을 저장하고 복수의 페이지들에 대응함-;
쓰기 명령을 수신하는 수신부;
상기 복수의 페이지들에 대한 데이터를 저장하는 페이지 레지스터;
상기 쓰기 명령에 응답하여, 동시에 상기 복수의 페이지들 중에 제1 페이지 그룹에 대하여 상기 복수의 멀티 레벨 셀들 각각의 상태를 변화시키기 위하여 거친(coarse) 쓰기를 실행하고, 상기 복수의 페이지들 중에, 상기 거친(coarse) 쓰기의 간섭에 의해 동시에 변화되고, 상기 제1 페이지 그룹에 인접한, 제2 페이지 그룹의 복수의 멀티 레벨 셀들 각각의 상태를 조정하기 위하여 미세(fine) 쓰기를 실행하는 쓰기 실행부
를 포함하는 메모리 장치.
1. A memory device for performing data programming,
A memory array including a plurality of multi-level cells, each of the plurality of multi-level cells storing a plurality of bits and corresponding to a plurality of pages;
A receiving unit for receiving a write command;
A page register for storing data for the plurality of pages;
In response to the write command, performing a coarse write to change the state of each of the plurality of multi-level cells with respect to a first page group of the plurality of pages at the same time, A write execution unit which is simultaneously changed by interference of coarse writing and executes fine writing to adjust the state of each of a plurality of multi-level cells of a second page group adjacent to the first page group,
≪ / RTI >
제14항에 있어서,
상기 복수의 멀티 레벨 셀들 각각이 n 비트 멀티 레벨 셀인 경우,
상기 쓰기 실행부는
동시에 n 개의 페이지들에 대하여 상기 복수의 멀티 레벨 셀들 각각의 상태를 변화시키는 메모리 장치.
15. The method of claim 14,
When each of the plurality of multi-level cells is an n-bit multi-level cell,
The write-
And simultaneously changes the state of each of the plurality of multi-level cells with respect to n pages.
제15항에 있어서,
상기 쓰기 실행부는
상기 n 개의 페이지들에 대응하는 데이터가 페이지 레지스터에 저장된 이후에, 상기 거친(coarse) 쓰기를 실행하는 메모리 장치.
16. The method of claim 15,
The write-
Wherein the coarse write is performed after data corresponding to the n pages is stored in a page register.
제14항에 있어서,
상기 쓰기 실행부는
상기 쓰기 명령과 구별되는 적어도 하나의 다른 쓰기 명령에 대한 상기 거친(coarse) 쓰기가 실행된 이후에, 상기 미세(fine) 쓰기를 실행하는 메모리 장치.
15. The method of claim 14,
The write-
And performs the fine writing after the coarse writing for at least one other write command distinct from the write command is executed.
제15항에 있어서,
상기 쓰기 실행부는
상기 n 개의 페이지들에 대한 상기 거친(coarse) 쓰기가 실행되고, 다른 n 개의 페이지들에 대한 상기 거친(coarse) 쓰기가 더 실행된 이후에, 상기 n 개의 페이지들에 대하여 상기 복수의 멀티 레벨 셀들 각각의 상태를 조정하는 메모리 장치.
16. The method of claim 15,
The write-
After the coarse writing for the n pages is performed and after the coarse writing for the other n pages has been performed, the plurality of multi-level cells And each state is adjusted.
제14항에 있어서,
상기 거친(coarse) 쓰기를 위한 오퍼레이션에서 상기 복수의 멀티 레벨 셀들 각각의 상태는 한 번 변화하고, 상기 미세(fine) 쓰기를 위한 오퍼레이션에서 상기 복수의 멀티 레벨 셀들 각각의 상태는 두 번 이상 변화하며
상기 거친(coarse) 쓰기를 위한 오퍼레이션에서 상기 복수의 멀티 레벨 셀들 각각의 상태의 변화는 상기 미세(fine) 쓰기를 위한 오퍼레이션에서 상기 복수의 멀티 레벨 셀들 각각의 상태의 변화보다 확률적으로 큰 메모리 장치.
15. The method of claim 14,
Wherein the state of each of the plurality of multilevel cells in the operation for coarse writing changes once and the state of each of the plurality of multilevel cells in the operation for fine writing changes more than once
Wherein a change in the state of each of the plurality of multilevel cells in an operation for coarse writing is greater than a change in state of each of the plurality of multilevel cells in operation for fine writing, .
제15항에 있어서,
상기 쓰기 실행부는 상기 n 개의 페이지들에 대응하는 데이터가 페이지 레지스터에 저장될 때까지 상기 쓰기 명령을 홀딩하는 메모리 장치.
16. The method of claim 15,
And the write execution unit holds the write command until data corresponding to the n pages is stored in the page register.
스토리지 시스템에 있어서,
호스트로부터 데이터를 수신하는 컨트롤러;
버스를 통하여 상기 컨트롤러로부터 데이터 및 명령을 수신하는 복수의 메모리 장치들
을 포함하고,
상기 복수의 메모리 장치들 각각은
복수의 멀티 레벨 셀들을 포함하는 메모리 어레이-상기 복수의 멀티 레벨 셀들 각각은 복수의 비트들을 저장하고 복수의 페이지들에 대응함-;
쓰기 명령을 수신하는 수신부;
상기 복수의 페이지들에 대한 데이터를 저장하는 페이지 레지스터;
상기 쓰기 명령에 응답하여, 동시에 상기 복수의 페이지들 중에 제1 페이지 그룹에 대하여 상기 복수의 멀티 레벨 셀들 각각의 상태를 변화시키기 위하여 거친(coarse) 쓰기를 실행하고, 상기 복수의 페이지들 중에, 상기 거친(coarse) 쓰기의 간섭에 의해 동시에 변화되고, 상기 제1 페이지 그룹에 인접한, 제2 페이지 그룹의 복수의 멀티 레벨 셀들 각각의 상태를 조정하기 위하여 미세(fine) 쓰기를 실행하는 쓰기 실행부
를 포함하는 스토리지 시스템.
In a storage system,
A controller for receiving data from a host;
A plurality of memory devices for receiving data and instructions from the controller via a bus;
/ RTI >
Each of the plurality of memory devices
A memory array including a plurality of multi-level cells, each of the plurality of multi-level cells storing a plurality of bits and corresponding to a plurality of pages;
A receiving unit for receiving a write command;
A page register for storing data for the plurality of pages;
In response to the write command, performing a coarse write to change the state of each of the plurality of multi-level cells with respect to a first page group of the plurality of pages at the same time, A write execution unit which is simultaneously changed by interference of coarse writing and executes fine writing to adjust the state of each of a plurality of multi-level cells of a second page group adjacent to the first page group,
≪ / RTI >
KR1020130123881A 2013-10-17 2013-10-17 Method and apparatus for performing data program using coarse writing operation and fine writing operation KR101532840B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130123881A KR101532840B1 (en) 2013-10-17 2013-10-17 Method and apparatus for performing data program using coarse writing operation and fine writing operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130123881A KR101532840B1 (en) 2013-10-17 2013-10-17 Method and apparatus for performing data program using coarse writing operation and fine writing operation

Publications (2)

Publication Number Publication Date
KR20150044613A KR20150044613A (en) 2015-04-27
KR101532840B1 true KR101532840B1 (en) 2015-06-30

Family

ID=53036896

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130123881A KR101532840B1 (en) 2013-10-17 2013-10-17 Method and apparatus for performing data program using coarse writing operation and fine writing operation

Country Status (1)

Country Link
KR (1) KR101532840B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060127760A (en) * 2005-06-06 2006-12-13 소니 가부시끼 가이샤 Storage device
JP2011065736A (en) * 2009-09-18 2011-03-31 Toshiba Corp Nonvolatile semiconductor memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060127760A (en) * 2005-06-06 2006-12-13 소니 가부시끼 가이샤 Storage device
JP2011065736A (en) * 2009-09-18 2011-03-31 Toshiba Corp Nonvolatile semiconductor memory

Also Published As

Publication number Publication date
KR20150044613A (en) 2015-04-27

Similar Documents

Publication Publication Date Title
US8964466B2 (en) Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
CN111667868B (en) System and method for multi-phase programming by balanced gray coding
US11948644B2 (en) Two-part programming of memory cells
EP2218074B1 (en) M+n bit programming and m+l bit read for m bit memory cells
US10303571B2 (en) Data recovery in memory devices
KR100823170B1 (en) Memory system and memory card using bad block as slc mode
TWI502359B (en) Command order re-sequencing in non-volatile memory
JP2010530595A (en) Programming memory using bit-per-cell changes
US9007841B1 (en) Programming scheme for improved voltage distribution in solid-state memory
WO2017172247A1 (en) Energy efficient read/write support for a protected memory
JP6117779B2 (en) Memory cell programming apparatus and memory cell programming method
CN108255634B (en) Data reading method and device
US11664079B2 (en) Intervallic dynamic start voltage and program verify sampling in a memory sub-system
KR101532840B1 (en) Method and apparatus for performing data program using coarse writing operation and fine writing operation
US11282580B2 (en) Data storage device with foggy-fine program sequence for reducing neighbor wordline interference

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180521

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190520

Year of fee payment: 5