KR20110047144A - Solid state memory with reduced number of partially filled pages - Google Patents

Solid state memory with reduced number of partially filled pages Download PDF

Info

Publication number
KR20110047144A
KR20110047144A KR1020100105106A KR20100105106A KR20110047144A KR 20110047144 A KR20110047144 A KR 20110047144A KR 1020100105106 A KR1020100105106 A KR 1020100105106A KR 20100105106 A KR20100105106 A KR 20100105106A KR 20110047144 A KR20110047144 A KR 20110047144A
Authority
KR
South Korea
Prior art keywords
page
data
logical
solid state
memory
Prior art date
Application number
KR1020100105106A
Other languages
Korean (ko)
Inventor
올리버 캄펜켈
마이클 드렉슬러
토마스 브룬
Original Assignee
톰슨 라이센싱
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 톰슨 라이센싱 filed Critical 톰슨 라이센싱
Priority to KR1020100105106A priority Critical patent/KR20110047144A/en
Publication of KR20110047144A publication Critical patent/KR20110047144A/en

Links

Images

Classifications

    • 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
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention

Abstract

PURPOSE: A solid state memory is provided to reduce the number of a page of which a part is filled by including an internal buffer. CONSTITUTION: In a solid state memory, a program instruction of 80h during a first period is received from an LU1. A state S51 is operated. A target is switched into T_PP_LUN_DataWait. The LU1 is switched into L_PP_WaitForData. Data is programmed into the page of a first logic device LU1. The state machine is switched into an idle state of S50. The interleaved instruction 11h of LU1 is executed. A target is switched to a T PP IlvWait. The LU1 is switched to an L PP Ilv Wait. An LU2 is maintained in an L idle state.

Description

부분 채워진 페이지의 수가 감소된 고체 상태 메모리{SOLID STATE MEMORY WITH REDUCED NUMBER OF PARTIALLY FILLED PAGES}Solid state memory with reduced number of partially filled pages {SOLID STATE MEMORY WITH REDUCED NUMBER OF PARTIALLY FILLED PAGES}

본 발명은 예를 들어, 타겟 (target)에 유기화된 고체 상태 메모리 (solid state memory)에 관한 것으로, 각 타겟은 하나 이상의 논리 장치 (LUN)를 포함하고, 각 논리 장치는 하나 이상의 블럭을 포함하고 각 블럭은 하나 이상의 페이지를 포함한다. 이러한 디바이스는 예를 들면, 개방형 NAND 플래시 인터페이스 스펙 (Open NAND Flash Interface Specification (ONFI))에 따라 설계되는 NAND 플래시 메모리 디바이스이다.The present invention relates, for example, to solid state memory organic to a target, each target comprising one or more logic units (LUNs), each logic unit comprising one or more blocks, and Each block contains one or more pages. Such a device is, for example, a NAND flash memory device designed according to the Open NAND Flash Interface Specification (ONFI).

이러한 디바이스는 플래시 메모리를 프로그래밍하기 위한 방법을 설명하는 미국 특허 공개 US2008/0183949로부터 공지되어 있다. 이 컨텍스트 내에서의 프로그래밍은 본 기술의 당업자에 의해 플래시 메모리 셀들 (flash memory cells)에 비트를 기록하거나 저장하는 것으로서 이해된다. 플래시 메모리 상의 데이터 프로그래밍은 한번에 한 페이지의 데이터를 프로그래밍하여 행해진다. 데이터 스트림의 종료시 전체 페이지를 프로그램하기에 충분한 데이터가 제공되지 않으면, 데이터 스트림의 종료시 프로그래밍된 페이지는 오직 부분적으로만 채워지게 된다. 프로그래밍된 데이터 스트림이 나중에 계속되면, 다른 완전히 채워진 페이지들 사이에 부분 채워진 페이지가 있게 된다. 이것은 불충분한 것으로 간주될 수 있다. 더 좋은 해결법은 부분 채워진 데이터 페이지를 다시 판독하여 이 데이터를 나중에 기록되도록 제공된 데이터로 완성한 다음에 전 데이터 페이지를 플래시 메모리로 프로그래밍하는 것으로 제공된다. 부분 채워진 페이지는 부가의 판독 및 프로그래밍 주기를 희생하고 감소되게 된다.Such a device is known from US Patent Publication US2008 / 0183949 which describes a method for programming flash memory. Programming in this context is understood by those skilled in the art as writing or storing bits in flash memory cells. Data programming on flash memory is done by programming data one page at a time. If not enough data is provided to program the entire page at the end of the data stream, then the programmed page will only be partially filled at the end of the data stream. If the programmed data stream continues later, there will be a partially filled page between the other fully filled pages. This can be considered insufficient. A better solution is to reread the partially filled data page, complete this data with the data provided for later writing, and then program the entire data page into flash memory. Partially filled pages are reduced at the expense of additional read and programming cycles.

미국 특허 공고 US2006/0136656은 플래시 메모리의 최소한의 소거 가능한 단위로서 블럭을 설명한다. 이는 최소한의 소거 가능한 단위가 페이지가 아니고 블럭이기 때문에 쉽게 삭제될 수 없는 부분 채워진 페이지의 문제를 설명하고 있다. 따라서, 플래시 메모리는 불필요하게 손상되게 된다.US patent publication US2006 / 0136656 describes a block as the minimum erasable unit of flash memory. This explains the problem of partially filled pages that cannot be easily deleted because the minimum erasable unit is a block rather than a page. Thus, the flash memory is unnecessarily damaged.

부분 채워진 페이지의 영향은 또한 두 논리 장치 사이의 스위칭 동작이 실행될 때 발생하게 된다. 제1 논리 장치에서 제2 논리 장치로의 스위칭이 실행될 때, 입력 버퍼에 남은 데이터는 제1 논리 장치로 프로그래밍되고 그 후 제2 논리 장치로의 스위칭이 행해진다. 나중의 데이터가 제1 논리 장치로 프로그래밍되면, 데이터를 프로그래밍하는 데에 새로운 페이지가 이용되고, 따라서 부분 이용된 페이지가 이 논리 장치에 생기게 된다.The impact of a partially filled page also occurs when a switching operation between two logic devices is performed. When switching from the first logic device to the second logic device is executed, the data remaining in the input buffer is programmed into the first logic device and then switching to the second logic device is performed. If later data is programmed into the first logical device, a new page is used to program the data, so that a partially used page is created in this logical device.

개방형 NAND 플래시 인터페이스 스펙 (ONFI)에 따르면, NAND 플래시 디바이스에 데이터를 기록하는 것은 대응하는 논리 장치(LUN), 블럭 어드레스 및 페이지 어드레스와 함께 PROGRAM PAGE 명령어를 타겟에 발하여 행해진다. 전체 메모리 페이지의 나중 데이터, 보통 다수 킬로바이트가 선택된 논리 장치의 페이지 레지스터에 기록된다. 전체 페이지가 페이지 레지스터에 기록되면, 논리 장치는 그 메모리 어레이에 데이터를 프로그램하기 시작한다. 프로그래밍 동안, 논리 장치는 사용중이며 다음 페이지는 제1 페이지의 프로그래밍이 종료된 후에 논리 장치의 페이지 레지스터에 기록될 수 있다. 전체 페이지가 페이지 레지스터에 기록되고 페이지 프로그램이 시작된 후에, 타겟의 다른 논리 장치가 선택되어 이용된다. ONFI 스펙은 또한 부분 페이지를 프로그램할 가능성을 제공하지만, 이는 프로그램 회수가 부가적으로 포함되게 되며 도달가능한 대역폭이 감소된다.According to the Open NAND Flash Interface Specification (ONFI), writing data to a NAND flash device is done by issuing a PROGRAM PAGE command to the target along with the corresponding logical unit (LUN), block address and page address. Later data of the entire memory page, usually many kilobytes, is written to the page register of the selected logical device. Once the entire page is written to the page register, the logic device begins to program data into that memory array. During programming, the logic device is in use and the next page can be written to the page register of the logic device after programming of the first page is finished. After the entire page is written to the page register and the page program is started, another logical device of the target is selected and used. The ONFI specification also offers the possibility to program partial pages, but this involves additional program counts and reduces the reachable bandwidth.

다음 프로그래밍 명령문은 ONFI 스펙에 따라 정의된다.The following programming statement is defined according to the ONFI specification.

페이지 프로그램 (PAGE PROGRAM): 데이터는 데이터 레지스터에 기록되고 프로그래밍은 데이터 단계가 종료된 후에 시작한다.PAGE PROGRAM: Data is written to the data register and programming begins after the data phase is finished.

페이지 캐시 프로그램 (PAGE CACHE PROGRAM): 데이터는 데이터 레지스터에 기록되고 데이터 단계가 종료된 후에, 데이터 레지스터의 컨텐트는 캐시 레지스터 (cache register)에 복사되고 프로그래밍이 시작한다.PAGE CACHE PROGRAM: Data is written to the data register and after the data phase is finished, the contents of the data register are copied to the cache register and programming begins.

페이지 프로그램 인터리브드 (PAGE PROGRAM INTERLEAVED): 데이터는 하나의 LUN의 다수의 데이터 레지스터에 기록되고 프로그래밍은 마지막 데이터 레지스터가 채워질 때 시작한다.PAGE PROGRAM INTERLEAVED: Data is written to multiple data registers of one LUN and programming begins when the last data register is filled.

공지된 페이지 프로그램 플로우는 NAND 디바이스의 페이지 레지스터에 전체 데이터 페이지를 기록하고 메모리 어레이에 대한 프로그래밍을 시작하는 데에 이용된다. 각 처리 절차는 타겟 상태 머신 (state machine)과 논리 장치 상태 머신의 다수의 상태 스위칭의 원인이 된다. 처리 절차에 따른 상태 머신의 상태 스위칭을 아래에 나타내었다:The known page program flow is used to write the entire data page to the page register of the NAND device and to start programming for the memory array. Each processing procedure causes multiple state switching of the target state machine and the logic device state machine. The state switching of the state machine according to the processing procedure is shown below:

처리 절차Processing procedure 타겟target 상태  condition 시퀀스sequence LUNLUN 상태  condition 시퀀스sequence

명령어 80h을 T_Idle L_IdleT_Idle L_Idle command 80h

NAND디바이스에 기록 ->T_Cmd_Decode Write to NAND device-> T_Cmd_Decode

->T_PP_Execute-> T_PP_Execute

->T_PP_AddrWait
-> T_PP_AddrWait

LUN-,블럭-및 T_PP_AddrWait L_IdleLUN-, Block- and T_PP_AddrWait L_Idle

페이지-어드레스를 ->T_PP_Addr ->Page-Address-> T_PP_Addr->

NAND디바이스에 ->T_PP_LUN_Execute L_Idle_TargetRequesstNAND device-> T_PP_LUN_Execute L_Idle_TargetRequesst

기록 ->T_PP_LUN_DataWait ->L_PP_ExecuteRecord-> T_PP_LUN_DataWait-> L_PP_Execute

->L_PP_Addr-> L_PP_Addr

->L_PP_WaitForData-> L_PP_WaitForData

전체 데이터 페이지를 T_PP_LUN_DataWaitT_PP_LUN_DataWait full data page

NAND 디바이스에 기록 ->T_PP_LUN_DataPass L_PP_WaitForDataWrite to NAND device-> T_PP_LUN_DataPass L_PP_WaitForData

->T_PP_LUN_DataWait ->L_PP_AcceptData-> T_PP_LUN_DataWait-> L_PP_AcceptData

->L_PP_WaitForData-> L_PP_WaitForData

명령어 10h를 NAND T_PP_LUN_DataWaitNAND T_PP_LUN_DataWait command 10h

디바이스에 기록 ->T_PP_Cmd_Pass ->L_PP_WaitForDataWrite to device-> T_PP_Cmd_Pass-> L_PP_WaitForData

->T_Idle ->L_PP_Prog-> T_Idle-> L_PP_Prog

->L_PP_ProgWait-> L_PP_ProgWait

->L_PP_Sts-> L_PP_Sts

->L_Idle-> L_Idle

인터리브드 동작 (interleaved operation)은 동일한 논리 장치의 여러 블럭에 동일한 유형의 다수의 명령어를 발할 수 있게 한다. 공지의 인터리브드 페이지 프로그램 플로우는 논리 장치의 다수의 독립적인 페이지 레지스터에 전체 데이터 페이지를 기록하고 모든 레지스터가 채워질 때 메모리 어레이에 대한 프로그래밍을 시작하는 데에 이용된다.Interleaved operation allows multiple blocks of the same type to issue multiple instructions of the same logical device. Known interleaved page program flows are used to write an entire page of data into a number of independent page registers of a logic device and to begin programming for the memory array when all registers are filled.

처리 절차Processing procedure 타겟target 상태  condition 시퀀스sequence LUNLUN 상태  condition 시퀀스sequence

명령어 80h을 T_Idle L_IdleT_Idle L_Idle command 80h

NAND 디바이스에 기록 ->T_Cmd_Decode Write to NAND device-> T_Cmd_Decode

->T_PP_Execute-> T_PP_Execute

->T_PP_AddrWait
-> T_PP_AddrWait

LUN-, 블럭- 및 페이지- T_PP_AddrWait L_IdleLUN-, Block- and Page- T_PP_AddrWait L_Idle

어드레스를 NAND ->T_PP_Addr ->NAND-> T_PP_Addr->

디바이스에기록 ->T_PP_LUN_Execute L_Idle_TargetRequesstWrite to device-> T_PP_LUN_Execute L_Idle_TargetRequesst

->T_PP_LUN_DataWait ->L_PP_Execute-> T_PP_LUN_DataWait-> L_PP_Execute

->L_PP_Addr-> L_PP_Addr

->L_PP_WaitForData-> L_PP_WaitForData

전체 데이터 페이지를 T_PP_LUN_DataWaitT_PP_LUN_DataWait full data page

NAND 디바이스에 기록 ->T_PP_LUN_DataPass L_PP_WaitForDataWrite to NAND device-> T_PP_LUN_DataPass L_PP_WaitForData

->T_PP_LUN_DataWait ->L_PP_AcceptData-> T_PP_LUN_DataWait-> L_PP_AcceptData

->L_PP_WaitForData-> L_PP_WaitForData

명령어 11h를 NAND T_PP_LUN_DataWaitCommand 11h NAND T_PP_LUN_DataWait

디바이스에기록 ->T_PP_Cmd_Pass ->L_PP_WaitForDataWrite to device-> T_PP_Cmd_Pass-> L_PP_WaitForData

->T_PP_IlvWait ->L_PP_Ilv-> T_PP_IlvWait-> L_PP_Ilv

->L_PP_Ilv_Wait-> L_PP_Ilv_Wait

명령어 80h*를 NAND T_PP_IlvWaitNAND T_PP_IlvWait command 80h *

디바이스에 기록 ->T_PP_AddrWait L_PP_Ilv_Wait
Write to device-> T_PP_AddrWait L_PP_Ilv_Wait

LUN-, 블럭- 및 T_PP_AddrWait LUN-, Block- and T_PP_AddrWait

페이지-어드레스를 ->T_PP_Addr L_PP_Ilv_WaitPage-Address-> T_PP_Addr L_PP_Ilv_Wait

NAND 디바이스에기록 ->T_PP_LUN_Execure ->L_PP_AddrWrite to NAND device-> T_PP_LUN_Execure-> L_PP_Addr

->T_PP_LUN_DataWait ->L_PP_WaitForData
->T_PP_LUN_DataWait-> L_PP_WaitForData

전체 데이터 페이지를 T_PP_LUN_DataWaitT_PP_LUN_DataWait full data page

NAND 디바이스에 기록 ->T_PP_LUN_DataPass L_PP_WaitForDataWrite to NAND device-> T_PP_LUN_DataPass L_PP_WaitForData

->T_PP_LUN_DataWait ->L_PP_AcceptData-> T_PP_LUN_DataWait-> L_PP_AcceptData

->L_PP_WaitForData-> L_PP_WaitForData

명령어 10h를 T_PP_LUN_DataWait T_PP_LUN_DataWait command 10h

NAND 디바이스에 기록 ->T_PP_Cmd_Pass L_PP_WaitForDataWrite to NAND device-> T_PP_Cmd_Pass L_PP_WaitForData

->T_Idle ->L_PP_Prog-> T_Idle-> L_PP_Prog

->L_PP_ProgWait -> L_PP_ProgWait

->L_PP_Sts-> L_PP_Sts

->L_Idle-> L_Idle

* 상태 'T_PP_IlvWait'의 프로그램 동작에 대한 어드레스 주기는 이전 프로그램 동작에서 발한 것과 다른 인터리브드 블럭 어드레스를 갖는 것으로 한다.The address period for the program operation of the state 'T_PP_IlvWait' is assumed to have an interleaved block address different from that issued in the previous program operation.

두 독립된 소스 (source)의 데이터가 타겟의 독립된 LUN에 기록되면, 상술된 프로세스 중 하나가 먼저 제1 독립 소스에 대해 제1 LUN에 발해지고 기록 프로세스를 종료한 후에, 상술된 프로세스 중 하나는 제2 독립된 소스의 데이터를 제2 LUN에 기록하기 위해 제2 LUN에 발해진다.If data from two independent sources is written to an independent LUN of the target, then one of the processes described above is first issued to the first LUN for the first independent source and terminates the write process. 2 Issued to the second LUN to write data from independent sources to the second LUN.

독립된 동시성 스트림이 플래시 디바이스에 기록되어야 할 때, 여러 스트림을 여러 논리 장치에 기록하는 것이 이점이 있다. 파일 관리는 이런 정규의 방법에 의해 더 용이해지며 논리 장치의 전체 대역폭은 인입하는 데이터 스트림의 기록을 위해 보장된다. 스트림의 데이터가 페이지 크기 보다 더 작은 크기의 블럭에 도달하면, 하나의 논리 장치의 전체 페이지가 프로그램되려고 할 때, 각 스트림의 데이터를 플래시 디바이스의 외부에 배열된 캐시에 캐시하고 이를 NAND 플래시 디바이스에 기록할 필요가 있다. 스트림과 논리 장치의 양에 따라서, 많은 캐시 메모리가 메모리 장치 외부에 필요한 반면, 디바이스 내측의 이용 가능한 페이지 레지스터는 비사용 상태로 유지된다.When independent concurrency streams must be written to a flash device, it is advantageous to write several streams to multiple logical devices. File management is made easier by this regular method and the overall bandwidth of the logical unit is guaranteed for the recording of incoming data streams. When the data in a stream reaches a block of size smaller than the page size, when the entire page of one logical device is about to be programmed, it caches the data in each stream in a cache arranged outside the flash device and writes it to the NAND flash device. You need to record. Depending on the amount of streams and logic devices, much cache memory is needed outside the memory device, while the available page registers inside the device remain unused.

본 발명의 목적은 부분 채워진 페이지의 문제를 감소시킬 수 있는 고체 상태 메모리 및 고체 상태 메모리를 동작시키기 위한 방법을 제공하는 것이다. 본 발명의 다른 목적은 외부 캐시 메모리의 필요성을 감소시키고 다수의 인입 데이터 스트림이 플래시 디바이스에 프로그램된 경우에 내부 페이지 레지스터를 이용하는 고체 상태 메모리 및 고체 상태 메모리를 동작시키기 위한 방법을 제공하는 것이다.It is an object of the present invention to provide a solid state memory and a method for operating a solid state memory that can reduce the problem of partially filled pages. It is another object of the present invention to reduce the need for external cache memory and to provide a method for operating solid state memory and solid state memory using internal page registers when multiple incoming data streams are programmed in a flash device.

대응하는 인입 데이터 스트림에 대한 입력 버퍼로서 논리 장치의 페이지 레지스터를 이용하기 위해서, 다른 논리 장치 상의 페이지가 아직 완전히 채워질 수 없더라도, 작동 논리 장치는 현재 인입하는 스트림의 특성에 따라서 스위칭되어야 한다. ONFI 스펙은 이 문제를 해결하지 못하며 전용 메커니즘을 제공하지 않는다.In order to use the page register of the logical unit as an input buffer for the corresponding incoming data stream, even though the page on the other logical unit cannot yet be completely filled, the operational logic unit must switch according to the characteristics of the current incoming stream. The ONFI specification does not solve this problem and does not provide a dedicated mechanism.

본 발명에 따르면, 적어도 하나의 인입 데이터 스트림을 저장하기 위한 고체 상태 메모리는 하나의 타겟 내에 다수의 논리 장치를 갖는다. 각 논리 장치는 메모리에 데이터를 프로그래밍하기 위한 적어도 하나의 페이지를 갖는다. 고체 상태 메모리는 인입하는 데이터가 적어도 하나의 페이지에 프로그래밍되기 전에 임시로 인입하는 데이터 스트림을 저장하기 위해서, 때로 페이지 레지스터로 불리는 내부 버퍼 메모리를 포함한다. 또한, 내부 버퍼 메모리는 상이한 논리 장치 간의 스위칭 동작이 실행될 때 아직 프로그래밍되지 않은 데이터를 보유한다. 이는 제1 논리 장치로부터 제2 논리 장치로의 스위칭 경우 페이지를 완전히 채우기에 아직 충분하지 않은 나머지 데이터는 프로그래밍될 필요가 없고 페이지 레지스터에 보유된다는 장점을 갖는다. 나중에, 이 논리 장치에 대한 더 많은 데이터가 제공되게 되면, 이 데이터는 나머지 데이터에 부가되며 나머지 데이터와 새로운 데이터는 함께 전 페이지로 프로그래밍된다. 이는 부분 페이지만을 프로그래밍하는 것이 생략되기 때문에 특정 논리 장치를 프로그래밍하기 위한 전체 비트레이트를 개선한다. 전체 페이지와 부분 페이지의 프로그래밍은 거의 동시에 필요로 하기 때문에, 가능한 경우에 전체 페이지만을 프로그램하는 것을 고려하는 경우 특정 데이터 양을 프로그래밍하는 데에 프로그래밍 주기를 덜 필요로 한다. 또한, 고체 상태 메모리 디바이스에 데이터가 부분적으로만 채워지는 고체 상태 메모리 디바이스에서의 페이지의 문제는 제거된다. 고체 상태 메모리는 더욱 효율적으로 이용된다. According to the invention, a solid state memory for storing at least one incoming data stream has a number of logic devices in one target. Each logic device has at least one page for programming data in memory. Solid state memory includes an internal buffer memory, sometimes referred to as a page register, to store the incoming data stream temporarily before the incoming data is programmed into at least one page. In addition, the internal buffer memory holds data that has not yet been programmed when switching operations between different logic devices are executed. This has the advantage that the remaining data that is not yet sufficient to completely fill the page when switching from the first logic device to the second logic device does not need to be programmed and is held in the page register. Later, as more data is provided for this logical device, this data is appended to the rest of the data and the remaining data and the new data are programmed to the previous page together. This improves the overall bitrate for programming a particular logic device because programming only a partial page is omitted. Since the programming of full and partial pages is required at about the same time, less programming cycles are required to program a specific amount of data when considering only programming the entire page when possible. In addition, the problem of pages in a solid state memory device in which data is only partially filled in the solid state memory device is eliminated. Solid state memory is used more efficiently.

바람직하게, 고체 상태 메모리는 타겟의 그룹으로 유기화되며, 이 때 각 타겟은 적어도 하나의 논리 장치를 포함한다. 각 논리 장치는 이 논리 장치에 프로그래밍되는 인입 데이터를 임시로 저장하기 위해 페이지 레지스터가 설치된다. 또한, 각 논리 장치는 적어도 하나의 블럭을 포함한다. 메모리를 소거하는 것은 블럭 단위로 행해진다. 일 페이지에 있게 저장된 데이터는 한번에 프로그래밍된다.Preferably, the solid state memory is organized into groups of targets, where each target includes at least one logic device. Each logical unit is equipped with a page register to temporarily store incoming data programmed into that logical unit. Each logic device also includes at least one block. Erasing the memory is done in blocks. Data stored on one page is programmed at a time.

바람직하게, 고체 상태 메모리의 각 논리 장치는 데이터가 페이지에 프로그래밍되기 전에 인입 데이터 스트림을 임시로 저장하기 위한 내부 버퍼를 갖는다. 내부 버퍼의 크기는 적어도 하나의 페이지의 크기에 최고 허용 가능한 입력 비트레이트로 페이지의 프로그래밍 주기 동안 수신된 데이터의 크기를 더한 것이다. 따라서:Preferably, each logic device in the solid state memory has an internal buffer for temporarily storing the incoming data stream before the data is programmed into the page. The size of the internal buffer is the size of at least one page plus the maximum allowable input bitrate plus the size of the data received during the programming period of the page. therefore:

SizeinternalBuffer≥SizePage + TimePageProgramCycle*BitrateInputData Size internalBuffer ≥Size Page + Time PageProgramCycle * Bitrate InputData

이것은 페이지의 프로그래밍 동안 다음 페이지를 프로그래밍하기 위한 데이터가 내부 버퍼에 수신될 수 있다는 장점을 갖는다. 입력 데이터의 비트레이트가 충분히 크다면, 예를 들어 두 페이지의 크기의 내부 버퍼는 다른 페이지의 프로그래밍 주기 동안 프로그래밍되도록 전체 페이지의 데이터를 수신할 수 있다. 따라서, 전체 대기 시간은 줄어들고 고체 상태 메모리의 비트레이트는 더욱 개선된다.This has the advantage that during programming of the page data for programming the next page can be received in an internal buffer. If the bit rate of the input data is large enough, for example, an internal buffer of size two pages may receive data of the entire page to be programmed during the programming period of the other page. Thus, the overall latency is reduced and the bit rate of the solid state memory is further improved.

바람직하게, 저장 장치는 NAND 플래시 디바이스로, 이는 개방형 NAND 플래시 인터페이스 (ONFI) 스펙에 따라 동작된다. ONFI 스펙은 여러 논리 장치 간의 스위칭이 실행되는 경우 부분적으로 프로그래밍된 페이지를 생략하고 부분 페이지 프로그래밍의 경우 프로그래밍 회수 및 이에 따라 프로그래밍 비트레이트를 줄이는 특정 알고리즘을 알지 못한다. 제안된 메모리 디바이스는 이것이 필수적으로 ONFI 스펙에 따르며 동시에 부분적인 페이지를 생략한다는 장점을 갖는다. 본 발명에 따른 디바이스는 ONFI 표준의 공지된 구현에서 벗어난 것이다. ONFI 표준의 프로그램 명령어가 여전히 이용된다. 관련 기술에서 알려진 바와 같이 구현 규칙에서 벗어난 것은 ONFI 표준에 대해 부정하는 것은 아니다. 따라서, 본 발명에 따른 디바이스는 ONFI 표준에 따르는 것으로 간주될 수 있다. 또한, 프로그래밍 회수는 전체 페이지가 적당할 때 마다 프로그래밍되기 때문에 감소된다. 그 이외에도, 본 발명은 페이지 지향 방식으로 동작하며, 특히 병렬 상태 또는 유사한 환경의 몇 측정 데이터를 캡쳐링 (capturing)하기 위해 리서치 환경의 측정 데이터를 캡쳐링하기 위한 중앙 저장 장치로서, 특히 병렬 상태인 몇 비디오 소스의 스트리밍을 위해서 예를 들어 스트리밍 애플리케이션에 적용 가능한, 고체 상태 저장 장치에 관한 것이다.Preferably, the storage device is a NAND flash device, which operates according to the Open NAND Flash Interface (ONFI) specification. The ONFI specification omits partially programmed pages when switching between multiple logic devices is performed, and does not know a specific algorithm for partial page programming, which reduces the number of programming times and hence the programming bitrate. The proposed memory device has the advantage that this essentially complies with the ONFI specification and at the same time omits partial pages. The device according to the invention is a departure from the known implementation of the ONFI standard. Program instructions of the ONFI standard are still used. Any deviation from the implementation rules, as known in the art, is not a denial of the ONFI standard. Thus, a device according to the invention can be considered to be in accordance with the ONFI standard. In addition, the number of programming is reduced because the entire page is programmed each time. In addition, the present invention operates in a page-oriented manner, in particular as a central storage device for capturing measurement data of a research environment for capturing some measurement data in a parallel state or similar environment, in particular in a parallel state. It relates to a solid state storage device, for example applicable to streaming applications, for streaming of several video sources.

바람직하게, 고체 상태 메모리는 하나 이상의 카메라를 갖는 비디오 캡쳐링 카메라 시스템의 일부이다. 카메라에 의해 발해진 데이터는 고체 상태 메모리 장치에 제공된다. 바람직하게, 고체 상태 메모리는 여러 카메라에 의해 캡쳐된 데이터 스트림을 여러 논리 장치에 저장한다. 바람직하게, 카메라 시스템은 3D 비디오 캡쳐링을 위해 제공된다. 이 경우, 적어도 하나는 고 데이터 레이트인 몇 비디오 스트림이 형성된다. 이 비디오 데이터 스트림은 병렬로 실시간 저장되어야 한다. 고체 상태 메모리는 상술된 바와 같이 카메라 시스템에 몇가지 장점을 제공한다. 여러 논리 장치에 여러 카메라의 데이터 스트림을 저장하게 되면 용이한 파일 구조가 제공되며 데이터가 계층적 메모리 구조에 따라 유기화된다는 장점을 갖는다. 따라서, 특히 하나 이상의 카메라로 카메라 시스템을 이용하게 되면, 예를 들어 3D 캡쳐에 필수적이기 때문에, 다수의 데이터 스트림이 동시에 저장되어야 한다. 부가하여, 카메라에 의해 출력된 데이터 스트림은 대개 고 데이터레이트를 갖는다. 고 해상도의 카메라 (HD)를 이용하면, 하나의 카메라의 데이터 스트림은 예를 들어, 2Gbit/s에 이른다. 본 발명에 따른 고체 상태 저장소는 저장 장치의 입력 데이터 레이트가 부분 채워진 페이지를 기록하고 판독하여 불필요하게 감소되지 않기 때문에, 이 시스템에는 특히 이점이 있다. 여러 논리 장치 간의 스위칭이 이 시스템에서 정규적으로 행해지고 하나의 주기에서 기록되지 않거나 부분적으로만 기록된 페이지의 문제가 흔히 일어나기 때문에, 여러 카메라의 데이터 스트림이 여러 논리 장치에 저장되게 되는, 다수의 카메라를 갖는 시스템에서 이점이 많다. 3D 캡쳐 이외에, 또한 다차원 캡쳐는 영화 산업에서 집중받고 있다. 본 발명은 또한 실시간으로 다차원 환경의 장면 캡쳐의 목적을 위한 것이다. Preferably, the solid state memory is part of a video capturing camera system having one or more cameras. The data emitted by the camera is provided to a solid state memory device. Preferably, the solid state memory stores data streams captured by several cameras in various logic devices. Preferably, the camera system is provided for 3D video capturing. In this case several video streams are formed, at least one of which is a high data rate. This video data stream must be stored in parallel in real time. Solid state memory provides several advantages to the camera system as described above. Storing data streams from multiple cameras in multiple logical devices provides an easy file structure and has the advantage of data being organized according to hierarchical memory structures. Thus, in particular the use of a camera system with more than one camera is necessary for 3D capture, for example, so that multiple data streams must be stored simultaneously. In addition, the data stream output by the camera usually has a high data rate. With a high resolution camera (HD), the data stream of one camera reaches, for example, 2 Gbit / s. The solid state storage according to the present invention is of particular advantage because the input data rate of the storage device is not unnecessarily reduced by writing and reading partially filled pages. Because switching between multiple logic devices is done regularly in this system and the problem of pages that are not written or only partially written in one cycle often occurs, data streams from multiple cameras are stored in multiple logic devices. There are many advantages in having a system. In addition to 3D capture, multidimensional capture is also focused in the film industry. The invention is also for the purpose of capturing scenes of a multidimensional environment in real time.

바람직하게, 적어도 하나의 논리 장치를 포함하는 고체 상태 저장 장치를 동작시키기 위한 방법이 실현된다. 각 논리 장치는 적어도 하나의 페이지 및 한번에 프로그래밍되고 있는 페이지를 포함한다. 본 발명에 따른 방법에서, 적어도 하나의 인입하는 데이터 스트림은 고체 상태 메모리에 순차적으로 입력된다. 데이터는 내부 버퍼, 즉 페이지 레지스터에 임시 저장된다. 내부 버퍼는 예를 들어 상술된 바와 같은 버퍼이며 논리 장치에 할당된다. 체킹 단계는 하나의 전체 페이지가 프로그래밍되기 충분한 데이터양을 포함하지 여부에 대해 실행된다. 내부 버퍼가 하나의 전체 페이지가 프로그래밍되기에 충분한 데이터를 포함하면, 적어도 하나의 전체 페이지가 프로그래밍된다. 하나의 전체 페이지에 충분한 데이터는 하나의 전체 페이지에 필요한 것 보다 약간 더 많은 데이터일 수 있지만, 또한 몇 개의 전체 페이지를 채우는 데에 충분한 데이터일 수 있다. 스위칭 동작이 여러 논리 장치 간에서 실행되는 경우, 현재 작동중인 논리 장치의 내부 버퍼의 아직 프로그래밍되지 않은 데이터가 내부 버퍼에 보유된다. 논리 장치 간의 스위칭이 실행된다. 이것은 제1 논리 장치로부터 제2 논리 장치로의 스위칭 이전에 전체 페이지를 채우지 않는 나머지 데이터가 프로그래밍될 필요가 있는 것이 아니고 내부 버퍼에 유지되어 스위칭 종료 후 여전히 보유된다는 장점을 갖는다. 나중에, 이 논리 장치에 더 많은 데이터가 제공되면, 이 데이터는 나머지 데이터에 부가되고 나머지 데이터와 새로운 데이터가 함께 전체 페이지로 프로그램된다. 이것은 부분 페이지의 프로그래밍이 전 페이지를 프로그래밍하는 것과 거의 동일한 처리 시간을 필요로 하기 때문에 전체 프로그래밍 시간을 줄인다. 따라서, 전체 페이지만을 프로그래밍하는 것으로, 프로그래밍 대역폭이 개선된다. 또한, 고체 메모리 디바이스에서 하나의 프로그래밍 주기 동안 부분적으로 데이터가 채워진 페이지의 문제가 제거된다. 고체 상태 메모리는 더욱 효율적으로 이용된다.Preferably, a method for operating a solid state storage device comprising at least one logic device is realized. Each logic device includes at least one page and a page being programmed at one time. In the method according to the invention, at least one incoming data stream is input sequentially into the solid state memory. Data is temporarily stored in an internal buffer, a page register. The internal buffer is, for example, the buffer as described above and is allocated to the logical unit. The checking step is executed as to whether or not one whole page contains enough data to be programmed. If the internal buffer contains enough data for one full page to be programmed, at least one full page is programmed. Sufficient data for one full page may be slightly more data than needed for one full page, but may also be enough data to fill several full pages. If the switching operation is executed between several logic devices, the unprogrammed data of the internal buffer of the currently operating logic device is retained in the internal buffer. Switching between logic devices is performed. This has the advantage that the remaining data that does not fill the entire page prior to switching from the first logical device to the second logical device does not need to be programmed, but is held in an internal buffer and still retained after the end of the switching. Later, when more data is provided to this logical device, this data is added to the rest of the data and the remaining data and the new data are programmed together in a full page. This reduces the overall programming time because programming of the partial page requires nearly the same processing time as programming the previous page. Therefore, programming only the whole page improves the programming bandwidth. In addition, the problem of partially filled pages during one programming period in a solid state memory device is eliminated. Solid state memory is used more efficiently.

이롭게도, 이 방법은 여러 논리 장치에 여러 카메라로 캡쳐링한 입력 데이터 스트림을 저장하기 위해 이용된다. 여러 카메라의 데이터 스트림을 여러 논리 장치에 저장하는 것은 용이한 파일 구조가 제공되고 데이터가 계층적 메모리 구조에 따라 유기화된다는 장점을 갖는다. 따라서, 특히 하나 이상의 카메라를 갖는 카메라 시스템을 이용하게 되면, 예를 들어, 3D 캡쳐에 필수적이 되기 때문에, 다수의 데이터 스트림은 동시에 저장되어야 한다. 부가하여, 카메라에 의해 출력된 데이터 스트림은 보통 고 데이터 레이트를 갖는다. 고 해상도 카메라 (HD)를 이용하게 되면, 하나의 카메라의 데이터 스트림은 예를 들어, 2Gbit/s에 이른다. 제공된 고체 상태 저장소는 저장소의 입력 데이터 레이트가 부분 페이지를 판독하고 기록하여 불필요하게 줄어들지 않기 때문에, 이런 시스템에 특히 바람직하다. 여러 논리 장치 간의 스위칭이 이 시스템에서 정규적으로 행해지고 부분 페이지의 문제가 때로 생기기 때문에, 여러 카메라의 데이터 스트림이 여러 논리 장치에 저장되고 있는 다수의 카메라를 갖는 시스템에서 이점이 많다. 3D 캡쳐 이외에, 또한 다차원 캡쳐가 영화 산업에서 집중되고 있다. 본 발명은 또한 실시간으로 다차원 환경의 장면 캡쳐 전용이다.Advantageously, this method is used to store input data streams captured by different cameras in different logic devices. Storing data streams from multiple cameras in multiple logical devices has the advantage of providing an easy file structure and organizing data according to hierarchical memory structures. Thus, in particular using a camera system with more than one camera is necessary for 3D capture, for example, so that multiple data streams must be stored simultaneously. In addition, the data stream output by the camera usually has a high data rate. With high resolution cameras (HD), the data stream of one camera reaches, for example, 2 Gbit / s. The provided solid state storage is particularly desirable for such systems because the input data rate of the storage is not unnecessarily reduced by reading and writing partial pages. Since switching between multiple logic devices is done regularly in this system and sometimes problems with partial pages occur, there are advantages in systems with multiple cameras where data streams from multiple cameras are stored in multiple logical devices. In addition to 3D capture, multidimensional capture is also concentrated in the film industry. The invention is also dedicated to scene capture of multidimensional environments in real time.

바람직하게, 이 방법은 개방형 NAND 플래시 인터페이스 (ONFI) 스펙에 따라 동작한다. 이롭게도, 하나의 논리 장치의 데이터가 데이터 레지스터에 수신된 후 논리 장치의 스위치가 실행되게 되는 경우, 타겟은 페이지 프로그램 인터리브드 명령어 11h를 이용하여 상태 T_PP_I1v_Wait에 세트된다. 이 명령어를 이용하여, 논리 장치는 상태 L_PP_Ilv_Wait로 세트된다. 뒤이어, 타겟은 T_PP_Ilv_Wait에 유지되고 논리 장치는 LUN의 데이터 레지스터가 전 페이지로 채워질 때 까지 상태 L_PP_I1v_Wait에 유지된다. 다음에, 이들 데이터는 명령어 10h 또는 15h를 이용하여 페이지에 프로그래밍된다. 타겟이 어드레스된 논리 장치의 페이지 레지스터로부터 데이터를 삭제하는 것을 방지하기 위해서, 명령어 10h 또는 15h를 이용하여 전 페이지를 논리 장치에 프로그래밍한 후에 타겟을 상태 T_PP_LUN_DataWait로 세팅하고 논리 장치를 상태 L_PP_WaitForData로 세팅한다. Preferably, this method operates according to the Open NAND Flash Interface (ONFI) specification. Advantageously, the target is set to the state T_PP_I1v_Wait using the page program interleaved command 11h when the data of one logical device is received in the data register and then the switch of the logical device is executed. Using this command, the logical device is set to the state L_PP_Ilv_Wait. Subsequently, the target is held at T_PP_Ilv_Wait and the logical unit is held at state L_PP_I1v_Wait until the LUN's data register is filled with the previous page. These data are then programmed into the page using instructions 10h or 15h. To prevent the target from deleting data from the page register of the addressed logical device, after programming the entire page to the logical device using instructions 10h or 15h, set the target to state T_PP_LUN_DataWait and set the logical device to state L_PP_WaitForData. .

본 발명을 더 잘 이해하기 위해서 본 발명은 도면을 참조한 다음 설명에서 더욱 상세히 이하 설명된다. 본 발명은 이들 예시의 실시예에만 제한되는 것은 아니고 특정한 특성들이 본 발명의 영역에서 벗어나지 않고 적절하게 결합 및/또는 수정될 수 있다는 것이 이해될 것이다.BRIEF DESCRIPTION OF THE DRAWINGS In order to better understand the present invention, the invention is explained in more detail below in the following description with reference to the drawings. It is to be understood that the invention is not limited to these exemplary embodiments only and that specific features may be combined and / or modified as appropriate without departing from the scope of the invention.

도 1은 고체 상태 메모리 디바이스의 계층적 구조를 나타내는 도면이다.
도 2는 본 발명에 따른 고체 상태 메모리 디바이스를 동작시키기 위한 방법을 설명하는 도면이다.
도 3은 본 발명에 따른 타겟의 상태도를 나타내는 도면이다.
도 4는 본 발명에 따른 논리 장치의 상태도를 나타내는 도면이다.
도 5는 본 발명에 따라 하나의 타겟과 두개의 논리 장치를 포함하는 고체 상태 메모리의 상태도를 나타내는 도면이다.
1 is a diagram illustrating a hierarchical structure of a solid state memory device.
2 is a diagram illustrating a method for operating a solid state memory device in accordance with the present invention.
3 is a view showing a state diagram of a target according to the present invention.
4 is a diagram illustrating a state diagram of a logic device according to the present invention.
5 is a state diagram of a solid state memory including one target and two logic devices in accordance with the present invention.

도 1은 NAND 플래시 메모리의 구조를 나타내며, 이는 본 발명에 따라 설정된 ONFI 스펙 명령어에 의해 동작된다. NAND 플래시 메모리는 타겟으로서 유기화된다. 타겟은 하나 또는 다수의 논리 장치(LOGICAL UNIT 0, LOGICAL UNIT 1, ..., LOGICAL UNIT L)를 포함하고, 각 논리 장치(LOGICAL UNIT 0, LOGICAL UNIT 1, ..., LOGICAL UNIT L)은 다수의 블럭(BLOCK 0, BLOCK 1, ..., BLOCK M)을 포함하고, 블럭(BLOCK 0, BLOCK1, ..., ..., BLOCK M)은 다수의 페이지(PAGE 0, PAGE 1, ..., PAGE N)을 포함한다. 페이지(PAGE 0, PAGE 1, ..., PAGE N)은 통상 판독 또는 기록 단위이다. 이는 페이지가 하나의 단계에서 판독되거나 기록될 수 있는 최소 개수의 데이터를 포함하는 것을 의미한다. 블럭(BLOCK 0, BLOCK1, ..., ..., BLOCK M)은 통상 소거 단위이다. 이는 블럭이 하나의 단계에서 소거될 수 있는 최소 개수의 데이터를 포함한다는 것을 의미한다. 논리 장치(LOGICAL UNIT 0, LOGICAL UNIT 1, ..., LOGICAL UNIT L)은 독립적으로 동작하는 동작 단위이다. 각 논리 장치(LOGICAL UNIT 0, LOGICAL UNIT 1, ..., LOGICAL UNIT L)은 기록되거나 판독되는 데이터를 임시로 저장하기 위해 페이지 레지스터(PAGE REGISTER)를 포함한다. 또한, 각 논리 장치는 논리 장치(LOGICAL UNIT 0, LOGICAL UNIT 1, ..., LOGICAL UNIT L)를 동작시키기 위한 제어 장치(CU_LU_0, CU_LU_1, ..., CU_LU_L)를 포함한다. 타겟(TARGET)은 또한 타겟 레벨로 디바이스를 제어하기 위한 타겟 제어 장치(CU_TRG)를 포함한다. 1 shows the structure of a NAND flash memory, which is operated by an ONFI specification command set in accordance with the present invention. NAND flash memory is organicized as a target. The target includes one or more logical units (LOGICAL UNIT 0, LOGICAL UNIT 1, ..., LOGICAL UNIT L), and each logical unit (LOGICAL UNIT 0, LOGICAL UNIT 1, ..., LOGICAL UNIT L) It includes a plurality of blocks (BLOCK 0, BLOCK 1, ..., BLOCK M), and the blocks (BLOCK 0, BLOCK1, ..., ..., BLOCK M) contain a plurality of pages (PAGE 0, PAGE 1, ..., PAGE N). Pages (PAGE 0, PAGE 1, ..., PAGE N) are usually read or write units. This means that the page contains the minimum number of data that can be read or written in one step. Blocks BLOCK 0, BLOCK1, ..., ..., BLOCK M are typically erase units. This means that the block contains the minimum number of data that can be erased in one step. Logical units (LOGICAL UNIT 0, LOGICAL UNIT 1, ..., LOGICAL UNIT L) are units of operation that operate independently. Each logical unit (LOGICAL UNIT 0, LOGICAL UNIT 1, ..., LOGICAL UNIT L) includes a page register (PAGE REGISTER) to temporarily store the data being written or read. Each logical unit also includes control units CU_LU_0, CU_LU_1, ..., CU_LU_L for operating the logical units LOGICAL UNIT 0, LOGICAL UNIT 1, ..., LOGICAL UNIT L. The target TARGET also includes a target control device CU_TRG for controlling the device at the target level.

도 2는 본 발명에 따른 디바이스의 프로그램 플로우를 나타낸다. 단계 S1에서 인입 데이터가 유효한지의 여부가 체크된다.2 shows a program flow of a device according to the invention. In step S1, it is checked whether the incoming data is valid.

인입 데이터가 유효하면 (YES), 페이지 프로그램 명령어 80h가 단계 S2에서 타겟에 기록된다. 단계 S3에서 LUN-, 블럭-, 페이지- 및 컬럼 어드레스는 NAND 플래시 타겟의 페이지 레지스터에 기록된다. 단계 S4에서, 다음 데이터 워드는 NAND 플래시 타겟에 기록된다. 다음에, 단계 S5에서 전체 페이지가 플래시 타겟의 페이지 레지스터에서 유효한지가 체크된다.If the incoming data is valid (YES), the page program instruction 80h is written to the target in step S2. In step S3, the LUN-, block-, page- and column addresses are written to the page register of the NAND flash target. In step S4, the next data word is written to the NAND flash target. Next, in step S5, it is checked whether the entire page is valid in the page register of the flash target.

전체 페이지가 유효하면 (YES), 단계 S8에서 데이터는 페이지 프로그램 10h 또는 페이지 캐시 프로그램 15h 명령어를 이용하여 타겟의 각 페이지에 저장된다. 단계 S9에서, 페이지- 및 블럭-어드레스가 인크리멘트된다. 다음에, 다른 페이지 프로그램 명령어 80h가 단계 S10에서 타겟에 기록된다. 단계 S11에서 LUN-, 블럭-, 페이지- 및 컬럼 어드레스가 NAND 플래시 타겟의 페이지 레지스터에 기록된다. If the entire page is valid (YES), in step S8 the data is stored in each page of the target using the page program 10h or page cache program 15h instruction. In step S9, the page- and block-address are incremented. Next, another page program instruction 80h is written to the target in step S10. In step S11, the LUN-, block-, page- and column addresses are written to the page register of the NAND flash target.

단계 6은 단계 S5에서 전체 페이지가 전혀 유효하지 않은 경우 (NO) 실행된다. 단계 6은 또한 단계 S11 후에 실행된다. 단계 S6에서 유효한 나머지 바이트가 있는지가 체크된다. 유효한 나머지 바이트가 있다면 (YES), 방법은 단계 S4로 진행한다. 유효한 나머지 바이트가 없다면 (NO), 인터리브드 명령어 11h가 단계 7에서 NAND에 기록되고 방법은 단계 S1로 진행한다.Step 6 is executed (NO) when the whole page is not valid at all in step S5. Step 6 is also executed after step S11. In step S6 it is checked whether there are remaining valid bytes. If there are remaining valid bytes (YES), the method proceeds to step S4. If there are no remaining valid bytes (NO), the interleaved instruction 11h is written to the NAND in step 7 and the method proceeds to step S1.

단계 S1에서 어떠한 인입 데이터도 유효하지 않다면 (NO), 단계 S12에서 기록이 종료에 이르렀는지가 체크된다. 기록이 종료에 이르지 않으면 (NO), 방법은 단계 S1으로 더 진행한다. 기록의 종료에 이르면 (YES), 방법은 레지스터에 종료하지 않은 페이지가 남았는지 단계 S13에서 체크한다.If no incoming data is valid at step S1 (NO), it is checked at step S12 whether recording has reached the end. If the recording does not reach the end (NO), the method proceeds to step S1 further. When the end of writing is reached (YES), the method checks in step S13 whether an unfinished page remains in the register.

레지스터에 종료하지 않은 페이지가 있다면 (YES), 페이지 프로그램 80h 명령어는 단계 S14에서 NAND 타겟에 기록되고 LUN-, 블럭-, 페이지- 및 컬럼 어드레스가 단계 S15에서 NAND 플래시 디바이스에 기록된다. 다음에, 방법은 단계 S8로 더 진행한다.If there is a page not finished in the register (YES), the page program 80h instruction is written to the NAND target in step S14 and the LUN-, block-, page- and column addresses are written to the NAND flash device in step S15. The method then proceeds to step S8 further.

단계 S13에서 종료하지 않은 페이지가 레지스터에 남아있지 않다면 (NO), 방법은 단계 S16에서 페이지 프로그램 10h 또는 페이지 캐시 프로그램 15h 명령어를 이용하여 타겟의 각 페이지에 데이터를 저장하는 단계로 진행된다. 다음에, 이 방법은 단계 S1로 다시 시작한다.If the page not completed in step S13 remains in the register (NO), the method proceeds to storing data in each page of the target using the page program 10h or page cache program 15h instruction in step S16. Next, the method starts again with step S1.

페이지 프로그램 명령어 또는 캐시 페이지 프로그램 명령어를 이용하여 논리 장치의 페이지에 데이터를 저장하는 것은 두 주기를 필요로 한다는 것에 주의해야 한다. 제1 주기에서, 페이지 프로그램 및 캐시 페이지 프로그램 둘 다는 80h 명령어를 이용하여 초기화된다. 제2 주기에서, 10h 명령어는 페이지 프로그램에 대해 발해지고 15h 명령어는 캐시 페이지 프로그램에 대해 발해진다.Note that storing data in a page of a logical device using a page program instruction or a cache page program instruction requires two cycles. In the first period, both the page program and the cache page program are initialized using the 80h instruction. In a second period, the 10h instruction is issued for the page program and the 15h instruction is issued for the cache page program.

도 3은 본 발명에 따른 타겟 상태도를 도시한다. 개별적으로 고려되는 본 발명에 따른 타겟 상태도는 ONFI 표준에 따른 타겟 상태도에 대응한다. 초기 상태는 T_Idle이다. 명령어가 수신되면, 타겟은 상태 T_Cmd_Decode에서 수신된 명령어를 복호화한다. 복호화된 명령어가 페이지 프로그램 80h 명령어이면, 타겟은 상태 T_PP_Execute로 스위칭된다. 다음에, 타겟은 tLastCmd를 80h로 세팅한다. R/B#가 0으로 소거되면, tbStatus78hReq는 트루(TRUE)로 세팅된다. 부가하여, 모든 LUN들은 페이지 레지스터를 소거하도록 요청받는다. 다음에, 상태 T_PP_AddrWait에서, 타겟은 어드레스 주기를 대기한다. 어드레스 주기가 수신된 후에, 수신된 어드레스 주기는 상태 T_PP_Addr에서 저장된다. 다른 어드레스 주기가 요청되면, 타겟은 다음 어드레스 주기를 수신하도록 다시 T_PP_Addr로 스위칭된다. 다른 어드레스 주기가 필요하지 않으면, 타겟은 상태 T_PP_LUN_Execute로 스위칭된다. 수신된 열 (row) 어드레스에 의해 나타낸 LUN이 선택되고 타겟은 프로그램을 LUN에 발한다. 다음에 타겟은 상태 T_PP_LUN_DataWait에서 호스트로부터 수신되는 데이터 워드나 명령어 주기를 대기하여 데이터 워드를 상태 T_PP_LUN_DataPass에서 선택된 LUN으로 보낸다. 명령어가 T_PP_LUN_DataWait에서 수신될 때, 타겟은 상태 T_PP_Cmd_Pass로 스위칭된다. 다음에, 명령어가 각 LUN에 보내진다. 명령어가 11h 명령어이면, 타겟은 다음 명령어가 발해지길 대기하기 위해 상태 T_PP_IlvWait로 스위칭된다. 이 명령어가 페이지 프로그램 80h이면, 다음 바이트는 상술된 방법에 따라 LUN에 기록된다. 한편, 명령어가 10h 또는 15h 명령어이면, 타겟은 다시 초기 상태 T_Idle로 돌아간다.3 shows a target state diagram in accordance with the present invention. Target state diagrams according to the invention which are considered individually correspond to target state diagrams according to the ONFI standard. The initial state is T_Idle. When the command is received, the target decodes the received command in the state T_Cmd_Decode. If the decrypted instruction is a page program 80h instruction, the target switches to the state T_PP_Execute. Next, the target sets tLastCmd to 80h. If R / B # is cleared to zero, tbStatus78hReq is set to TRUE. In addition, all LUNs are requested to clear the page register. Next, in the state T_PP_AddrWait, the target waits for an address period. After the address period is received, the received address period is stored in the state T_PP_Addr. If another address period is requested, the target switches back to T_PP_Addr to receive the next address period. If no other address period is needed, the target switches to state T_PP_LUN_Execute. The LUN indicated by the received row address is selected and the target issues the program to the LUN. The target then waits for a data word or command cycle received from the host in state T_PP_LUN_DataWait and sends the data word to the LUN selected in state T_PP_LUN_DataPass. When the command is received at T_PP_LUN_DataWait, the target switches to the state T_PP_Cmd_Pass. Next, a command is sent to each LUN. If the instruction is an 11h instruction, the target switches to state T_PP_IlvWait to wait for the next instruction to be issued. If this command is page program 80h, the next byte is written to the LUN according to the method described above. On the other hand, if the instruction is a 10h or 15h instruction, the target returns to the initial state T_Idle.

도 4는 본 발명에 따른 논리 장치 상태도를 나타낸다. 개별적으로 고려되는 본 발명에 따른 논리 장치 상태도는 ONFI 표준에 따른 논리 장치 상태도에 대응한다. 초기 상태는 L_Idle이다. 타겟 요청이 이 LUN에 대해 수신된 후에, LUN은 상태 L_Idle_TargetRequest로 스위칭되어 타겟에 의해 발해진 명령어를 대기한다. 타겟이 프로그램 요청을 나타내면, LUN은 타겟에 의해 수신된 어드레스를 기록하기 위해서 L_PP_Execute으로 다음에 L_PP_Addr로 스위칭된다. 또한, 정확한 페이지 레지스터는 인터리브드 어드레스에 기초하여 선택되고 페이지 레지스터의 행 (cloum)은 수신된 컬럼 어드레스에 따라 선택된다. 다음에, LUN은 상태 L_PP_WaitForData 및 L_PP_AcceptData에서 타겟에 의해 전달된 데이터를 수신한다. LUN이 11h 명령어를 수신한 경우, LUN은 타겟이 이 LUN에 대해 다른 프로그램 명령어를 요청할 때 까지 상태 L_PP_IlvWait로 스위칭된다. LUN이 상태 L_PP_WaitForData에서 10h 또는 15h 명령어를 수신한 경우, LUN은 상태 L_PP_Prog, L_PP_ProgWait 및 L_PP_Sts로 스위칭되고 각 데이터를 각 페이지에 프로그래밍한다.4 illustrates a logic device state diagram in accordance with the present invention. The logical unit state diagram according to the invention, which is considered separately, corresponds to the logic unit state diagram according to the ONFI standard. The initial state is L_Idle. After the target request has been received for this LUN, the LUN switches to the state L_Idle_TargetRequest to wait for commands issued by the target. If the target indicates a program request, the LUN switches to L_PP_Execute and then to L_PP_Addr to record the address received by the target. In addition, the correct page register is selected based on the interleaved address and the cloum of the page register is selected according to the received column address. The LUN then receives data delivered by the target in states L_PP_WaitForData and L_PP_AcceptData. If the LUN receives an 11h command, the LUN switches to the state L_PP_IlvWait until the target requests another program command for this LUN. When a LUN receives a 10h or 15h command in state L_PP_WaitForData, the LUN switches to state L_PP_Prog, L_PP_ProgWait, and L_PP_Sts and programs each data on each page.

본 방법을 더욱 상세히 설명하기 위해서, 도 5는 본 발명에 따른 하나의 타겟과 두 개의 논리 장치를 포함하는 고체 상태 메모리의 상태도를 도시한다. 따라서, 타겟 상태와 대응하는 논리 장치 LU1, LU2의 허용 가능한 조합이 도시되어 있다. 본 발명의 방법은 또한 둘 이상의 논리 장치를 포함하는 적어도 하나의 타겟에 적용 가능하다. 간략하게 하기 위해서, 제1 주기 80h 또는 제2 주기 10h/15h의 페이지 프로그램 명령어나 페이지 캐시 프로그램 명령어 또는 인터리브드된 명령어 11h가 발해지는 상태만이 도시된다. 타겟 및 각 LUN의 제1 상태에서 제2 상태로 스위칭하기 위해서, 제1 및 제2 상태 간의 도 3 및 도 4에 따른 상태 스위치가 또한 실행되어야 한다. 상태 스위치는 ONFI 스펙에 설명된 바와 같이 실행된다.To illustrate the method in more detail, FIG. 5 shows a state diagram of a solid state memory including one target and two logic devices according to the present invention. Thus, an acceptable combination of logical devices LU1, LU2 corresponding to the target state is shown. The method of the invention is also applicable to at least one target comprising two or more logic devices. For simplicity, only the state in which the page program instruction or page cache program instruction or interleaved instruction 11h of the first period 80h or the second period 10h / 15h is issued is shown. In order to switch from the first state to the second state of the target and each LUN, the state switch according to FIGS. 3 and 4 between the first and second states must also be executed. The status switch is implemented as described in the ONFI specification.

초기 상태 S50에서, 타겟은 아이들 상태 T_Idle에 있다. LUN들이 또한 아이들 상태 L_Idle에 있다. 제1 주기 80h의 페이지 프로그램 명령어가 LU1로부터 수신되면, 상태 S51이 작동된다. 따라서, 타겟이 T_PP_LUN_DataWait로 스위치되고 LU1은 L_PP_WaitForData로 스위칭된다. LU2는 그 상태를 변경하지 않는다. 따라서, LU1은 이제 데이터 수신 준비가 된다. LU1에서의 데이터 수신 이후, 제2 주기의 페이지 프로그램 10h 또는 페이지 캐시 프로그램 15h가 발해졌는지가 체크된다. 이 경우, 데이터는 제1 논리 장치 LU1의 페이지로 프로그래밍되고 상태 머신은 다시 아이들 상태 S50로 스위칭된다. LU1의 인터리브드 명령어 11h가 발해지면, 타겟은 T_PP_IlvWait로 스위칭되고 LU1은 L_PP_Ilv_Wait로 스위칭된다. LU2는 L_idle 상태에 유지한다. 이는 도 5의 S52에 대응한다. 따라서, 제1 주기의 다른 페이지 프로그램 명령어 80h는 논리 장치 LU1 또는 LU2에 대해 발해질 수 있다. 페이지 프로그램 명령어 80h가 LU1에 대해 발해진 경우, 상태 머신은 다시 상태 S51로 스위칭된다. 페이지 프로그램 명령어 80h가 LU2에 대해 발해지면, 상태 머신은 S53으로 스위칭된다. 제1 주기의 페이지 프로그램 80h 명령어를 제2 논리 장치로 발하기 위해서, 인터리브드된 11h 명령어가 이전에 제1 논리 장치에 발해지는 것은, 본 발명의 특성의 일부를 이룬다. 따라서 상태 전이는 굵은 화살표로 나타내었다. 이 때 타겟은 상태 T_PP_LUN_DataWait에서 호스트로부터 새로운 데이터나 새로운 명령어를 대기하고 있고, LU1은 상태 L_PP_IlvWait에서 대기하고 있으며 LU2는 상태 L_PP_WaitForData에서 수신되는 데이터를 대기하고 있다. 연속하여, LU1은 LU2가 데이터를 대기하고 있는 상태로 스위칭되기 전에는 아이들 상태로 리세트되지 않는다. 따라서, 본 방법에 따라서 LU1으로부터 LU2로 스위칭될 때, LU1으로부터의 페이지 레지스터의 데이터는 손실되지 않는데, 이는 본 발명의 장점 중 하나이다. In initial state S50, the target is in idle state T_Idle. LUNs are also in idle state L_Idle. When the page program command of the first period 80h is received from LU1, the state S51 is activated. Thus, the target is switched to T_PP_LUN_DataWait and LU1 is switched to L_PP_WaitForData. LU2 does not change its state. Thus, LU1 is now ready to receive data. After receiving data at LU1, it is checked whether page program 10h or page cache program 15h of the second period has been issued. In this case, the data is programmed into the page of the first logical device LU1 and the state machine is switched back to the idle state S50. When the interleaved command 11h of LU1 is issued, the target is switched to T_PP_IlvWait and LU1 is switched to L_PP_Ilv_Wait. LU2 stays in the L_idle state. This corresponds to S52 of FIG. 5. Thus, another page program command 80h of the first period may be issued for logical device LU1 or LU2. When the page program command 80h is issued for LU1, the state machine switches back to state S51. When the page program command 80h is issued for LU2, the state machine switches to S53. In order to issue the page program 80h instruction of the first period to the second logical device, the interleaved 11h instruction previously issued to the first logical device forms part of the characteristics of the present invention. Thus, state transitions are indicated by bold arrows. At this time, the target is waiting for new data or a new command from the host in state T_PP_LUN_DataWait, LU1 is waiting in state L_PP_IlvWait, and LU2 is waiting for data received in state L_PP_WaitForData. In succession, LU1 is not reset to the idle state until it switches to the state where LU2 is waiting for data. Thus, when switching from LU1 to LU2 according to the method, the data of the page register from LU1 is not lost, which is one of the advantages of the present invention.

상태 S53은 제1 주기의 명령어가 LU2에 발해진 후에 도달하게 되므로, 상태 S53에서 LU2에 전용인 제2 주기의 페이지 프로그램 명령어 10h, 페이지 캐시 프로그램 명령어 15h 또는 인터리브드 명령어 11h가 허용 가능하다. LU2에 전용인 페이지 프로그램 명령어 10h 또는 페이지 캐시 프로그램 명령어 15h를 발하게 되면 타겟의 T_Idle 상태 및 LU2의 L_Idle 상태가 되게 한다. 이것은 도 5의 상태 S54에 대응한다. 상태 S54로부터 제1 주기의 페이지 프로그램 80h 또는 페이지 캐시 프로그램 80h 명령어는 LU1 또는 LU2에 발해진다. 80h 명령어가 LU1에 발해진 경우, 상태 머신은 상태S51로 스위칭된다. 80h 명령어가 LU2에 발해진 경우, 상태 머신은 S53으로 스위칭된다.Since the state S53 is reached after the instruction of the first period is issued to LU2, the page program instruction 10h, the page cache program instruction 15h, or the interleaved instruction 11h of the second cycle dedicated to LU2 in the state S53 are acceptable. Issuing a page program command 10h or page cache program command 15h dedicated to LU2 results in the T_Idle state of the target and the L_Idle state of LU2. This corresponds to state S54 of FIG. 5. From state S54, the page program 80h or page cache program 80h instruction of the first period is issued to LU1 or LU2. When the 80h command is issued to LU1, the state machine switches to state S51. If an 80h instruction is issued to LU2, the state machine switches to S53.

인터리브드 11h 명령어가 상태 S53에서 LU2로 발해지면, 타겟은 T_PP_IlvWait로 스위칭되고 LU2는 L_PP_Ilvwait로 스위칭된다. LU1이 L_PP_IlvWait에 유지되므로, 상태 머신은 상태 S59에 있으며 LU1 또는 LU2에 대한 제1 주기의 다음 요청을 수신할 준비가 되어 있다. 80h 명령어가 LU1에 발해진 경우, 상태 머신은 LU1에 대한 명령어를 대기하기 위해 상태 S57로 스위칭된다. LU2에 대한 인터리브드 명령어를 수신한 후에 도달한 상태 S59로부터, 상태 머신이 페이지 프로그램 명령어 10h, 제2 주기의 페이지 캐시 프로그램 명령어 15h 또는 인터리브드된 명령어 11h를 대기하는 상태 S57로 스위칭하는 것이 본 발명의 일부이다. 공지의 방식은 LU2에 대해 인터리브드 명령어 11h가 상태 S59에 도달된 경우에, 상태 S59에서 제1 주기의 페이지 프로그램 명령어 80h를 수신하는 것이다. 상태 머신은 이미 상술된 바와 같이 LU2에 대한 명령어를 대기하기 위해서 상태 S53으로 다시 스위칭한다.If the interleaved 11h command is issued to LU2 in state S53, the target switches to T_PP_IlvWait and LU2 switches to L_PP_Ilvwait. Since LU1 is kept in L_PP_IlvWait, the state machine is in state S59 and is ready to receive the next request of the first cycle for LU1 or LU2. When an 80h command is issued to LU1, the state machine switches to state S57 to wait for a command to LU1. From the state S59 reached after receiving the interleaved instruction for LU2, the state machine switches from the state machine waiting for the page program instruction 10h, the page cache program instruction 15h of the second cycle, or the interleaved instruction 11h. Is part of. The known scheme is to receive the page program command 80h of the first period in state S59 when the interleaved command 11h has reached state S59 for LU2. The state machine switches back to state S53 to wait for a command to LU2 as already described above.

명령어가 다른 논리 장치에 대해 대응하여 발해지면, 상태 S55, S56, S57 및 S58 및 이들의 상태 스위칭은 상태 S51, S52, S53 및 S54 및 이들의 상태 스위칭에 대응한다. 따라서 상세한 설명은 생략한다.If a command is issued correspondingly to other logic devices, states S55, S56, S57 and S58 and their state switching correspond to states S51, S52, S53 and S54 and their state switching. Therefore, detailed description is omitted.

따라서, 본 발명에 따른 프로그램 플로우는 타겟과 LUN이 부가의 데이터 T_PP_IlvWait 및 L_PP_IlvWait를 각각 대응하고 있는 상태가 되게 하기 위해서 인터리브드 페이지 프로그램 11h를 이용한다. 이것은 도 5에 따른 상태 S52, S56 및 S59의 경우이다. 본 발명에 따르면, 한 페이지 미만의 크기의 소량 데이터 블럭을 제1 논리 장치의 페이지 레지스터에 기록하고, 다른 논리 장치로 스위칭하고, 제1 논리 장치로 다시 스위칭된 후에 제1 논리 장치의 페이지 레지스터에 계속 기록하는 것이 행해지고, 다음에 완전한 페이지를 제1 논리 장치로 프로그래밍하는 것이 가능해진다.Therefore, the program flow according to the present invention uses the interleaved page program 11h to bring the target and the LUN into a state in which the additional data T_PP_IlvWait and L_PP_IlvWait respectively correspond. This is the case in states S52, S56 and S59 according to FIG. According to the present invention, a small data block of less than one page in size is written to the page register of the first logic device, switched to another logic device, and switched back to the first logic device and then to the page register of the first logic device. Writing continues, and then it becomes possible to program the complete page into the first logical device.

여러 데이터 소스의 데이터를 여러 LUN에 기록하는 프로그램 플로우는 다음과 같다.The program flow for writing data from multiple data sources to multiple LUNs is as follows:

처리 절차Processing procedure 타겟target 상태  condition 시퀀스sequence LUNLUN 상태  condition 시퀀스sequence

명령어 80h을 T_Idle L_IdleT_Idle L_Idle command 80h

NAND 디바이스에 기록 ->T_Cmd_Decode Write to NAND device-> T_Cmd_Decode

->T_PP_Execute-> T_PP_Execute

->T_PP_AddrWait
-> T_PP_AddrWait

LUN-, 블럭- 및 페이지- T_PP_AddrWait L_IdleLUN-, Block- and Page- T_PP_AddrWait L_Idle

어드레스를 NAND ->T_PP_Addr ->NAND-> T_PP_Addr->

디바이스에 기록 ->T_PP_LUN_Execute L_Idle_TargetWrite to device-> T_PP_LUN_Execute L_Idle_Target

->T_PP_LUN_DataWait Requesst-> T_PP_LUN_DataWait Requesst

->L_PP_Execute-> L_PP_Execute

->L_PP_Addr-> L_PP_Addr

데이터페이지크기 T_PP_LUN_DataWait ->L_PP_WaitForDataData Page Size T_PP_LUN_DataWait-> L_PP_WaitForData

미만의 데이터블럭을 ->T_PP_LUN_DataPass Less than data block-> T_PP_LUN_DataPass

NAND 디바이스에 ->T_PP_LUN_DataWait L_PP_WaitForData-> T_PP_LUN_DataWait L_PP_WaitForData

기록 ->L_PP_AcceptDataRecord-> L_PP_AcceptData

->L_PP_WaitForData-> L_PP_WaitForData

명령어 11h를 NAND T_PP_LUN_DataWaitCommand 11h NAND T_PP_LUN_DataWait

디바이스에 기록 ->T_PP_Cmd_Pass Write to device-> T_PP_Cmd_Pass

->T_PP_IlvWait ->L_PP_WaitForData-> T_PP_IlvWait-> L_PP_WaitForData

->L_PP_Ilv-> L_PP_Ilv

->L_PP_Ilv_Wait-> L_PP_Ilv_Wait

[.. 다른 논리 장치에 데이터를 기록..][.. Write data to another logical device ..]

명령어 80h*를 NAND T_PP_IlvWait L_PP_Ilv_WaitNAND command 80h * T_PP_IlvWait L_PP_Ilv_Wait

디바이스에 기록 ->T_PP_AddrWait
Write to device-> T_PP_AddrWait

LUN-, 블럭- 및 T_PP_AddrWait L_PP_Ilv_WaitLUN-, Block- and T_PP_AddrWait L_PP_Ilv_Wait

페이지- 및 행 ->T_PP_Addr ->L_PP_AddrPages- and rows-> T_PP_Addr-> L_PP_Addr

어드레스를NAND ->T_PP_LUN_Execure ->L_PP_WaitForDataNAND-> T_PP_LUN_Execure-> L_PP_WaitForData

디바이스에 기록 ->T_PP_LUN_DataWait
Write to device-> T_PP_LUN_DataWait

부가의 데이터를 T_PP_LUN_DataWait L_PP_WaitForDataT_PP_LUN_DataWait L_PP_WaitForData

NAND 디바이스에 기록 ->T_PP_LUN_DataPass ->L_PP_AcceptDataWrite to NAND device-> T_PP_LUN_DataPass-> L_PP_AcceptData

전페이지가 ->T_PP_LUN_DataWait ->L_PP_WaitForDataPrevious page-> T_PP_LUN_DataWait-> L_PP_WaitForData

기록될 때 까지
Until recorded

명령어 10h를 T_PP_LUN_DataWait L_PP_WaitForDataCommand 10h T_PP_LUN_DataWait L_PP_WaitForData

NAND 디바이스에 기록 ->T_PP_Cmd_Pass ->L_PP_ProgWrite to NAND device-> T_PP_Cmd_Pass-> L_PP_Prog

->T_Idle ->L_PP_ProgWait -> T_Idle-> L_PP_ProgWait

->L_PP_Sts-> L_PP_Sts

->L_Idle
-> L_Idle

*상태 T_PP_IlvWait의 페이지 프로그램 동작을 위한 어드레스 주기는 이전의 페이지 프로그램 동작에서 발해진 것과 동일한 인터리브드 블럭 어드레스를 가지지만, 컬럼 어드레스는 다른 데이터 블럭을 페이지 레지스터의 올바른 위치에 위치시키도록 인크리멘트된다.The address period for the page program operation of state T_PP_IlvWait has the same interleaved block address as issued in the previous page program operation, but the column address is incremented to place another data block in the correct position in the page register. .

Claims (10)

적어도 하나의 인입 데이터 스트림을 저장하기 위한 고체 상태 메모리로서, 상기 고체 상태 메모리는 다수의 논리 장치(Logical_Unit_0, Logical_Unit_1, ..., Logical_Unit_L)을 가지고, 각 논리 장치(Logical_Unit_0, Logical_Unit_1, ..., Logical_Unit_L)는 적어도 하나의 페이지(Page0, Page1, ..., PageN)을 갖는 고체 상태 메모리에 있어서,
각 논리 장치(Logical_Unit_0, Logical_Unit_1, ..., Logical_Unit_L)는 상기 인입 데이터가 적어도 하나의 페이지(Page0, Page1, ..., PageN)에 프로그래밍되기 전에 상기 인입 데이터 스트림을 임시로 저장하기 위한 내부 버퍼 메모리 (Page_Register)를 포함하고, 상기 내부 버퍼 메모리(Page_Register)는 상이한 논리 장치로의 스위칭 동작이 실행될 때 아직 프로그래밍되지 않은 데이터를 보유하는 고체 상태 메모리.
A solid state memory for storing at least one incoming data stream, the solid state memory having a plurality of logical units Logical_Unit_0, Logical_Unit_1, ..., Logical_Unit_L, each logical unit (Logical_Unit_0, Logical_Unit_1, ..., Logical_Unit_L) is a solid state memory having at least one page (Page0, Page1, ..., PageN),
Each logical unit Logical_Unit_0, Logical_Unit_1, ..., Logical_Unit_L has an internal buffer for temporarily storing the incoming data stream before the incoming data is programmed into at least one page (Page0, Page1, ..., PageN). And a memory (Page_Register), wherein the internal buffer memory (Page_Register) holds data that has not yet been programmed when a switching operation to a different logical device is executed.
제1항에 있어서, 각 논리 장치는 상기 메모리의 최소한의 소거 가능한 단위인 적어도 하나의 블럭을 포함하고, 각 블럭은 상기 메모리의 최소한의 프로그램 가능한 단위인 적어도 하나의 페이지를 포함하는 고체 상태 메모리.2. The solid state memory of claim 1 wherein each logical device includes at least one block that is a minimum erasable unit of the memory, and each block includes at least one page that is a minimum programmable unit of the memory. 제1항 또는 제2항에 있어서, 상기 논리 장치의 상기 내부 버퍼 중 적어도 하나는 최고의 허용 가능한 입력 비트레이트로 페이지의 프로그래밍 주기 동안 수신된 데이터 및 전체 페이지를 저장하기 위한 최소한의 크기를 갖는 고체 상태 메모리.The solid state of claim 1 or 2, wherein at least one of the internal buffers of the logic device has a minimum size for storing the entire page and data received during the programming period of the page at the highest acceptable input bitrate. Memory. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 저장 장치는 개방형 NAND 플래시 인터페이스 스펙에 따라 동작하는 NAND 플래시 디바이스인 고체 상태 메모리.4. The solid state memory of claim 1, wherein the storage device is a NAND flash device operating according to an open NAND flash interface specification. 하나 이상의 카메라를 포함하는 카메라 시스템에 있어서, 상기 카메라 시스템은 제1항 내지 제4항 중 어느 한 항에 따른 고체 상태 메모리를 포함하는 카메라 시스템.A camera system comprising one or more cameras, wherein the camera system comprises a solid state memory according to any of the preceding claims. 제5항에 있어서, 적어도 두 카메라를 포함하고 상이한 카메라에 의해 캡쳐된 데이터 스트림은 상이한 논리 장치에 저장되는 카메라 시스템.6. The camera system of claim 5, wherein the data stream comprising at least two cameras and captured by different cameras is stored in different logic devices. 적어도 하나의 데이터 스트림을 고체 상태 메모리에 프로그래밍하기 위한 방법으로서, 상기 고체 상태 메모리는 적어도 하나의 논리 장치를 포함하고, 각 논리 장치는 적어도 하나의 페이지를 포함하고, 페이지는 한번에 프로그래밍되는 방법에 있어서:
적어도 하나의 인입 데이터 스트림을 상기 고체 상태 메모리에 순차적으로 입력하는 단계;
상기 논리 장치에 포함된 내부 버퍼에 논리 장치와 연관되는 데이터를 저장하는 단계;
상기 버퍼가 프로그래밍되는 적어도 하나의 전체 페이지에 대한 데이터를 포함하는지의 여부를 체크하는 단계;
상기 체킹 단계가 긍정이면, 적어도 하나의 페이지를 프로그래밍하는 단계; 및
스위칭 동작이 상이한 논리 장치 간에 실행되면, 상기 내부 버퍼 메모리에 아직 프로그래밍되지 않은 데이터를 보유하는 단계
를 포함하는 방법.
A method for programming at least one data stream into a solid state memory, the solid state memory comprising at least one logic device, each logic device including at least one page, and wherein the pages are programmed at one time. :
Sequentially inputting at least one incoming data stream into the solid state memory;
Storing data associated with the logical device in an internal buffer included in the logical device;
Checking whether the buffer contains data for at least one full page being programmed;
If the checking step is positive, programming at least one page; And
If a switching operation is performed between different logic devices, retaining data not yet programmed in the internal buffer memory.
How to include.
제7항에 있어서,
상이한 카메라 갖는 카메라 시스템에 의해 캡쳐된 상기 입력 데이터 스트림을 상이한 논리 장치에 저장하는 단계
를 더 포함하는 방법.
The method of claim 7, wherein
Storing the input data stream captured by a camera system with different cameras in different logic devices
How to include more.
제7항 또는 제8항에 있어서,
상기 데이터 레지스터에서 상기 데이터를 수신한 후에 상기 페이지 프로그램 인터리브드 명령어 11h(Page Program Interleaved command 11h)를 이용하여 타겟을 상태 T_PP_Ilv_Wait로 세팅하고 논리 장치를 상태 L_PP_Ilv_Wait로 세팅하는 단계;
LUN의 상기 데이터 레지스터가 전체 페이지로 채워질 때까지 상기 타겟을 상태 T_PP_Ilv_Wait로 유지하고 상기 논리 장치를 상태 L_PP_Ilv_Wait로 유지하는 단계; 및
상기 명령어 10h 또는 15h를 이용하여 상기 데이터를 페이지에 프로그래밍하는 단계
를 더 포함하고, 상기 상태 및 명령어는 ONFI 표준에 따르는 방법.
The method according to claim 7 or 8,
Setting a target to a state T_PP_Ilv_Wait and a logical device to a state L_PP_Ilv_Wait using the Page Program Interleaved command 11h after receiving the data in the data register;
Maintaining the target in state T_PP_Ilv_Wait and maintaining the logical device in state L_PP_Ilv_Wait until the data register of the LUN is filled with full pages; And
Programming the data into a page using the instructions 10h or 15h
The method further comprises the state and instructions according to the ONFI standard.
제7항 내지 제9항 중 어느 한 항에 있어서,
상기 타겟이 상기 어드레스된 논리 장치의 상기 페이지 레지스터로부터 데이터를 삭제하는 것을 방지하기 위해서 상기 명령어 10h 또는 15h를 이용하여 전체 페이지를 논리 장치로 프로그래밍한 후에 상기 타겟을 상태 T_PP_LUN_DataWait로 세팅하고 논리 장치를 상태 L_PP_WaitForData로 세팅하는 단계를 더 포함하고, 상기 상태 및 명령어는 상기 ONFI 표준을 따르는 방법.

The method according to any one of claims 7 to 9,
Set the target to state T_PP_LUN_DataWait and program the logic device after programming the entire page into the logic device using the instructions 10h or 15h to prevent the target from deleting data from the page register of the addressed logic device. Setting to L_PP_WaitForData, wherein the status and instructions comply with the ONFI standard.

KR1020100105106A 2009-10-29 2010-10-27 Solid state memory with reduced number of partially filled pages KR20110047144A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100105106A KR20110047144A (en) 2009-10-29 2010-10-27 Solid state memory with reduced number of partially filled pages

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP09306027.5 2009-10-29
KR1020100105106A KR20110047144A (en) 2009-10-29 2010-10-27 Solid state memory with reduced number of partially filled pages

Publications (1)

Publication Number Publication Date
KR20110047144A true KR20110047144A (en) 2011-05-06

Family

ID=44238471

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100105106A KR20110047144A (en) 2009-10-29 2010-10-27 Solid state memory with reduced number of partially filled pages

Country Status (1)

Country Link
KR (1) KR20110047144A (en)

Similar Documents

Publication Publication Date Title
JP5774838B2 (en) Solid memory with a reduced number of partially filled pages
USRE49921E1 (en) Memory device and controlling method of the same
KR101204680B1 (en) Flash controller cache architecture
KR102584018B1 (en) Apparatus, system and method for caching compressed data background
US7934072B2 (en) Solid state storage reclamation apparatus and method
JP2011175615A (en) Host device and memory device
JP2012511789A (en) Non-volatile memory device for parallel and pipelined memory operation
US20130103889A1 (en) Page-buffer management of non-volatile memory-based mass storage devices
WO2003085677A1 (en) Nonvolatile storage device
KR20080072050A (en) Flash memory device and method
WO2009096180A1 (en) Memory controller, nonvolatile storage device, and nonvolatile storage system
CN108701087A (en) The method and apparatus being sequentially written in for the block group for handling the physical block into memory device
KR20070119692A (en) Method and system for storing logical data blocks into flash-blocks in multiple non-volatile memories which are connected to at least on common data i/o bus
US20140328127A1 (en) Method of Managing Non-Volatile Memory and Non-Volatile Storage Device Using the Same
KR102349381B1 (en) Data storage device and operating method thereof
JP5378197B2 (en) Memory controller, memory card, nonvolatile memory system
US20050268026A1 (en) Memory card, semiconductor device, and method of controlling semiconductor memory
CN108701089A (en) For handling the method and apparatus being sequentially written in the part of addressable unit
US9507710B2 (en) Command execution using existing address information
US20220334747A1 (en) Very low sized zone support for storage devices
JP2010237907A (en) Storage device and recording method
KR20110047144A (en) Solid state memory with reduced number of partially filled pages
US20230359391A1 (en) Allocation of host memory buffer for sustained sequential writes
JP4219299B2 (en) Recording device cache method and data recording apparatus

Legal Events

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