KR20170000914A - Storage device including nonvolatile memory device - Google Patents

Storage device including nonvolatile memory device Download PDF

Info

Publication number
KR20170000914A
KR20170000914A KR20150090056A KR20150090056A KR20170000914A KR 20170000914 A KR20170000914 A KR 20170000914A KR 20150090056 A KR20150090056 A KR 20150090056A KR 20150090056 A KR20150090056 A KR 20150090056A KR 20170000914 A KR20170000914 A KR 20170000914A
Authority
KR
Grant status
Application
Patent type
Prior art keywords
device
storage
including
nonvolatile
memory
Prior art date
Application number
KR20150090056A
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

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from or digital output to record carriers, e.g. RAID, emulated record carriers, networked record carriers
    • G06F3/0601Dedicated interfaces to storage systems
    • G06F3/0602Dedicated interfaces to storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from or digital output to record carriers, e.g. RAID, emulated record carriers, networked record carriers
    • G06F3/0601Dedicated interfaces to storage systems
    • G06F3/0628Dedicated interfaces to storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from or digital output to record carriers, e.g. RAID, emulated record carriers, networked record carriers
    • G06F3/0601Dedicated interfaces to storage systems
    • G06F3/0668Dedicated interfaces to storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data

Abstract

본 발명은 스토리지 장치에 관한 것이다. The present invention relates to a storage device. 본 발명의 스토리지 장치는, 불휘발성 메모리 장치, 그리고 외부의 호스트 장치로부터 논리 어드레스들에 기반한 읽기 요청을 수신하고 논리 어드레스들을 불휘발성 메모리 장치의 물리 어드레스들로 변환하고 그리고 변환된 물리 어드레스들에 기반하여 불휘발성 메모리 장치에 읽기 동작을 수행하도록 구성되는 컨트롤러를 포함한다. The storage device of the present invention, the non-volatile memory device, and receives a read request based on the logical address from the external host apparatus, converts the logical address into a physical address of the nonvolatile memory device, and based on the converted physical address and a controller configured to perform a read operation in the non-volatile memory device. 컨트롤러는 논리 어드레스들에 대응하는 세그먼트를 포함하는 맵 데이터를 읽고, 세그먼트가 순차 데이터에 대응하면 세그먼트가 순차 데이터에 대응함을 가리키는 캐시 맵 데이터를 내부 RAM에 저장하고, 세그먼트가 순차 데이터가 아니면 맵 데이터 중에서 논리 어드레스들 및 물리 어드레스들과 연관된 부분 맵 데이터를 내부 RAM에 저장하도록 구성되는 스토리지 장치. The controller reads the map data including the segments corresponding to the logical address, the segment is that if the corresponding sequential data segment is stored in the cache map data that points to the corresponding to the sequential data to the internal RAM, and the segment is not a sequential data, map data, in a storage device configured to store a portion of the map data associated with the logical addresses and physical addresses in the internal RAM.

Description

불휘발성 메모리 장치를 포함하는 스토리지 장치{STORAGE DEVICE INCLUDING NONVOLATILE MEMORY DEVICE} Bull storage apparatus including a volatile memory device {STORAGE DEVICE INCLUDING NONVOLATILE MEMORY DEVICE}

본 발명은 반도체 회로에 관한 것으로, 더 상세하게는 불휘발성 메모리 장치를 포함하는 스토리지 장치에 관한 것이다. The present invention relates to a storage apparatus comprising a to, and more specifically to a nonvolatile memory device according to the semiconductor circuit.

스토리지 장치는 컴퓨터, 스마트 폰, 스마트 패드 등과 같은 호스트 장치의 제어에 따라 데이터를 저장하는 장치이다. The storage device is a device for storing data under the control of the host device such as a computer, a smart phone, a smart pad. 스토리지 장치는 하드 디스크 드라이브(HDD, Hard Disk Drive)와 같이 자기 디스크에 데이터를 저장하는 장치, 솔리드 스테이트 드라이브(SSD, Solid State Drive), 메모리 카드 등과 같이 반도체 메모리, 특히 불휘발성 메모리에 데이터를 저장하는 장치를 포함한다. Storage device stores data in a semiconductor memory, particularly a non-volatile memory such as a hard disk drive (HDD, Hard Disk Drive) device, a solid state drive which stores data on a magnetic disk, such as (SSD, Solid State Drive), a memory card It includes an apparatus for.

불휘발성 메모리는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등을 포함한다. The non-volatile memory ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), flash memory, PRAM (Phase-change RAM), MRAM (Magnetic RAM), includes a RRAM (Resistive RAM), FRAM (Ferroelectric RAM), etc.

반도체 제조 기술이 발전되면서, 스토리지 장치와 통신하는 컴퓨터, 스마트폰, 스마트패드 등과 같은 호스트 장치의 동작 속도가 향상되고 있다. As semiconductor manufacturing technology advances, the operating speed of a host device such as a computer, a smart phone, a smart pad in communication with the storage device can be improved. 또한, 스토리지 장치 및 스토리지 장치의 호스트 장치에서 사용되는 콘텐츠의 용량이 증가하고 있다. In addition, it increases the capacity of the content to be used by the host device of the storage devices and storage devices. 이에 따라, 더 향상된 동작 속도를 갖는 스토리지 장치에 대한 요구가 지속적으로 제기되고 있다. Accordingly, a need exists for a storage apparatus having an improved operating speed is continuously raised.

본 발명의 목적은 향상된 속도를 갖는 스토리지 장치를 제공하는 데에 있다. An object of the present invention is to provide a storage device having an improved speed.

본 발명의 실시 예에 따른 스토리지 장치는 불휘발성 메모리 장치; Storage device according to an embodiment of the present invention, the non-volatile memory device; 그리고 외부의 호스트 장치로부터 논리 어드레스들에 기반한 읽기 요청을 수신하고, 상기 논리 어드레스들을 상기 불휘발성 메모리 장치의 물리 어드레스들로 변환하고, 그리고 상기 변환된 물리 어드레스들에 기반하여 상기 불휘발성 메모리 장치에 읽기 동작을 수행하도록 구성되는 컨트롤러를 포함하고, 상기 컨트롤러는 상기 논리 어드레스들에 대응하는 세그먼트를 포함하는 맵 데이터(map data)를 읽고, 상기 세그먼트가 순차 데이터에 대응하면 상기 세그먼트가 순차 데이터에 대응함을 가리키는 캐시 맵 데이터(cache map data)를 내부 RAM에 저장하고, 상기 세그먼트가 순차 데이터가 아니면 상기 맵 데이터 중에서 상기 논리 어드레스들 및 상기 물리 어드레스들과 연관된 부분 맵 데이터(partial map data)를 상기 내부 RAM에 저장하도록 구성된다. And to receive a read request based on the logical address from the external host apparatus, and, based on the conversion to physical address, and the physical address of the conversion of the non-volatile memory device of the logical address the non-volatile memory device a controller configured to perform a read operation, and wherein the controller is when the segment read to the map data (map data) including the segments corresponding to the logical address, corresponds to a sequence of data that the segment corresponding to the sequence data a cache map data (cache map data) stored in the internal RAM, and the segments by the sequential data is not part of the map data (partial map data) associated with said logical address and the physical address from the map data the internal pointing It is configured to store in RAM.

본 발명의 다른 실시 예에 따른 스토리지 장치는 불휘발성 메모리 장치; Storage device according to another embodiment of the present invention, the non-volatile memory device; 그리고 외부의 호스트 장치로부터 논리 어드레스들에 기반한 쓰기 요청을 수신하고, 상기 논리 어드레스들을 상기 불휘발성 메모리 장치의 물리 어드레스들로 변환하고, 그리고 상기 변환된 물리 어드레스들에 기반하여 상기 불휘발성 메모리 장치에 쓰기 동작을 수행하도록 구성되는 컨트롤러를 포함하고, 상기 컨트롤러는 상기 논리 어드레스들 및 상기 물리 어드레스들 사이의 변환 정보를 포함하는 맵 데이터(map data)를 생성하고, 상기 논리 어드레스들이 연속인 범위가 세그먼트 이상이면 상기 세그먼트가 순차 데이터에 대응함을 가리키는 캐시 맵 데이터(cache map data)를 내부 RAM에 저장하고, 상기 논리 어드레스들이 연속인 범위가 세그먼트 이하이면, 상기 생성된 맵 데이터를 부분 맵 데이터(partial map data)로서 상기 내부 RAM에 저장하고, 그리고 상 And to receive the write requests, based on the logical address from the external host apparatus, and, based on the conversion to physical address, and the physical address of the conversion of the non-volatile memory device of the logical address the non-volatile memory device a controller configured to perform write operations, wherein the controller is that the logical address and the physical address generate the map data (map data) that includes translation information between, and the logical addresses are continuous in the range segment than if the segment is stored in the cache map data (cache map data) that points to the corresponding to the sequential data to the internal RAM, and the logical addresses are continuous in a range, the segment below, the partial map data, the generated map data (partial map as data) stored in the internal RAM, and the 생성된 맵 데이터 및 상기 쓰기 요청에 따른 쓰기 데이터를 상기 불휘발성 메모리 장치에 기입하도록 구성된다. It is configured to write the write data according to the generated map data and the write request to the nonvolatile memory device.

본 발명의 실시 예들에 따르면, 제1 사이즈를 갖는 맵 데이터가 제1 사이즈보다 작은 제2 사이즈를 갖는 캐시 맵 데이터로 대체된다. According to embodiments of the present invention, the map data having the first size is replaced with a cache map data having a second size smaller than the first size. 따라서, 불휘발성 메모리 장치로부터 맵 데이터를 읽는 횟수가 감소되며, 향상된 속도를 갖는 스토리지 장치가 제공된다. Thus, a reduction in the number of times to read the map data from the non-volatile memory device, a storage device having an improved speed are provided.

도 1은 본 발명의 실시 예에 따른 스토리지 장치를 보여주는 블록도이다. 1 is a block diagram illustrating a storage device according to an embodiment of the invention.
도 2는 본 발명의 제1 실시 예에 따른 스토리지 장치의 동작 방법을 보여주는 순서도이다. 2 is a flow chart showing an operation method of a storage apparatus according to the first embodiment of the present invention.
도 3은 본 발명의 실시 예에 따라 컨트롤러가 스토리지 장치의 저장 공간을 관리하는 예를 보여준다. Figure 3 is an example of the controller to manage the storage space of the storage device according to an embodiment of the invention.
도 4 내지 도 6은 컨트롤러가 캐시 알고리즘에 따라 맵 데이터를 관리하는 예들을 보여준다. 4 to 6 shows the example of the controller to manage the map data based on the cache algorithm.
도 7은 본 발명의 제2 실시 예에 따른 스토리지 장치의 동작 방법을 보여주는 순서도이다. 7 is a flow chart showing an operation method of a storage apparatus according to a second embodiment of the present invention.
도 8은 본 발명의 제3 실시 예에 따른 스토리지 장치의 동작 방법을 보여주는 순서도이다. Figure 8 is a flow chart showing an operation method of a storage apparatus according to a third embodiment of the present invention.
도 9 내지 도 14는 스토리지 장치에 순차 데이터가 기입되고, 캐시 맵 데이터가 등록되는 예들을 보여준다. 9 to 14 are a sequence of data is written to the storage device, it shows the example in which the cache map data is registered.
도 15는 본 발명의 제4 실시 예에 따른 스토리지 장치의 동작 방법을 보여주는 순서도이다. 15 is a flow chart showing an operation method of a storage apparatus according to a fourth embodiment of the present invention.
도 16은 본 발명의 제5 실시 예에 따른 스토리지 장치의 동작 방법을 보여주는 순서도이다. Figure 16 is a flow chart showing an operation method of a storage apparatus according to a fifth embodiment of the present invention.
도 17은 도 16의 방법에 따라 세그먼트의 적어도 하나의 엔트리가 갱신되는 예들을 보여준다. Figure 17 shows the example in which the updated at least one entry of the segment according to the process of FIG.
도 18은 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 보여주는 블록도이다. 18 is a block diagram showing a nonvolatile memory device according to an embodiment of the invention.
도 19는 본 발명의 실시 예에 따른 메모리 블록을 보여주는 회로도이다. 19 is a circuit diagram illustrating a memory block according to an embodiment of the invention.
도 20은 본 발명의 실시 예에 따른 컴퓨팅 장치를 보여주는 블록도이다. 20 is a block diagram illustrating a computing device according to an embodiment of the invention.

이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다. In the following, to be described in detail enough to easily carry out self technical features of the present invention one of ordinary skill in the art, with reference to the accompanying drawings, an embodiment of the present invention will be described .

도 1은 본 발명의 실시 예에 따른 스토리지 장치(100)를 보여주는 블록도이다. Figure 1 is a block diagram showing the storage device 100 in accordance with an embodiment of the present invention. 도 1을 참조하면, 스토리지 장치(100)는 불휘발성 메모리 장치(110) 및 컨트롤러(120)를 포함한다. 1, the storage device 100 includes a non-volatile memory device 110 and the controller 120.

불휘발성 메모리 장치(110)는 컨트롤러(120)의 제어에 따라 쓰기, 읽기 및 소거를 수행할 수 있다. The non-volatile memory device 110 may perform the write, read and erase under the control of the controller 120.

컨트롤러(120)는 외부의 호스트 장치의 요청에 따라 또는 내부 스케줄에 따라 불휘발성 메모리 장치(110)를 제어할 수 있다. The controller 120 may control the non-volatile memory apparatus 110 in accordance with an internal schedule or at the request of an external host device. 컨트롤러(120)는 버스(121), 프로세서(122), RAM (123), 호스트 인터페이스(125), 그리고 메모리 인터페이스(127)를 포함한다. The controller 120 includes a bus 121, a processor (122), RAM (123), the host interface 125, and memory interface 127.

버스(121)는 컨트롤러(120)의 구성 요소들 사이에 채널을 제공하도록 구성된다. Bus 121 is configured to provide a channel between the components of the controller 120.

프로세서(122)는 컨트롤러(120)의 제반 동작을 제어하고, 논리 연산을 수행할 수 있다. Processor 122 may control the overall operation of the controller 120, it performs a logical operation. 프로세서(122)는 호스트 인터페이스(125)를 통해 외부의 호스트 장치와 통신하고, 메모리 인터페이스(127)를 통해 불휘발성 메모리 장치(110)와 통신할 수 있다. Processor 122 may communicate with the non-volatile memory device 110 through the communication with the external host apparatus, and the memory interface 127 via the host interface 125. 프로세서(122)는 RAM (123)을 동작 메모리, 캐시 메모리 또는 버퍼 메모리로 사용하여 스토리지 장치(100)를 제어할 수 있다. Processor 122 may control the storage unit 100 by using the RAM (123) to an operating memory, a cache memory or buffer memory.

RAM (123)은 프로세서(122)의 동작 메모리, 캐시 메모리 또는 버퍼 메모리로 사용될 수 있다. RAM (123) can be used as a working memory, a cache memory or a buffer memory of the processor 122. RAM (123)은 프로세서(122)가 실행하는 코드들 및 명령들을 저장할 수 있다. RAM (123) may store codes and instructions for the processor 122 runs. RAM (123)은 프로세서(122)에 의해 처리되는 데이터를 저장할 수 있다. RAM (123) may store data to be processed by the processor 122. RAM (123)은 SRAM (Static RAM)을 포함할 수 있다. RAM (123) may comprise a (Static RAM) SRAM.

호스트 인터페이스(125)는 프로세서(122)의 제어에 따라, 외부의 호스트 장치와 통신하도록 구성된다. The host interface 125 is configured to communicate with, the external host device in accordance with the control of the processor 122. 호스트 인터페이스(125)는 USB (Universal Serial Bus), SATA (Serial AT Attachment), SAS (Serial Attached SCSI), HSIC (High Speed Interchip), SCSI (Small Computer System Interface), PCI (Peripheral Component Interconnection), PCIe (PCI express), NVMe (NonVolatile Memory express), UFS (Universal Flash Storage), SD (Secure Digital), MMC (MultiMedia Card), eMMC (embedded MMC), DIMM (Dual In-line Memory Module), RDIMM (Registered DIMM), LRDIMM (Load Reduced DIMM) 등과 같은 다양한 통신 방식들 중 적어도 하나를 이용하여 통신하도록 구성될 수 있다. Host Interface 125 USB (Universal Serial Bus), SATA (Serial AT Attachment), SAS (Serial Attached SCSI), HSIC (High Speed ​​Interchip), SCSI (Small Computer System Interface), PCI (Peripheral Component Interconnection), PCIe (PCI express), NVMe (nonVolatile Memory express), UFS (Universal Flash Storage), SD (Secure Digital), MMC (MultiMedia Card), eMMC (embedded MMC), DIMM (Dual In-line Memory Module), RDIMM (Registered can be configured to communicate using at least one of the various communication methods such as a DIMM), LRDIMM (Load Reduced DIMM).

메모리 인터페이스(127)는 프로세서(122)의 제어에 따라, 불휘발성 메모리 장치(110)와 통신하도록 구성된다. Memory interface 127 is under the control of the processor 122 is configured to communicate with the non-volatile memory device 110. 메모리 인터페이스(127)는 입출력 채널을 통해 커맨드, 어드레스 및 데이터를 불휘발성 메모리 장치(110)와 통신할 수 있다. The memory interface 127 may communicate with the command, address and data nonvolatile memory device 110 via the input and output channel. 메모리 인터페이스(127)는 제어 채널을 통해 제어 신호를 불휘발성 메모리 장치(110)와 통신할 수 있다. The memory interface 127 may communicate with a control signal on a control channel non-volatile memory device 110.

메모리 인터페이스(127)는 에러 정정 블록(ECC, 128)을 포함한다. The memory interface 127 includes an error correction block (ECC, 128). 에러 정정 블록(128)은 에러 정정을 수행할 수 있다. The error correction block 128 may perform error correction. 에러 정정 블록(128)은 메모리 인터페이스(127)를 통해 불휘발성 메모리 장치(110)에 기입될 데이터에 기반하여 에러 정정 인코딩을 수행할 수 있다. The error correction block 128 may perform error correction encoding on the basis of data to be written to the memory interface 127, a nonvolatile memory device 110 via the. 에러 정정 블록(128)은 불휘발성 메모리 장치(110)로부터 수신되는 데이터에 대해 에러 정정 디코딩을 수행할 수 있다. The error correction block 128 may perform error correction decoding on data that is received from the non-volatile memory device 110.

외부의 호스트 장치는 스토리지 장치(100)의 저장 공간들에 논리 어드레스들을 부여할 수 있다. An external host apparatus can be given a logical address in the storage space of the storage device 100. 컨트롤러(120)는 외부의 호스트 장치로부터 논리 어드레스들에 기반한 쓰기 요청을 수신할 수 있다. Controller 120 may receive a write request based on the logical address from the external host apparatus. 컨트롤러(120)는 논리 어드레스들을 불휘발성 메모리 장치(110)의 물리 어드레스들로 변환하는 맵 데이터(MD)를 생성할 수 있다. The controller 120 may generate a map data (MD) for converting the logical address into a physical address of the nonvolatile memory device 110. 컨트롤러(120)는 맵 데이터(MD) 및 쓰기 요청된 사용자 데이터(UD)를 불휘발성 메모리 장치(110)에 기입할 수 있다. Controller 120 may be written to the map data (MD) and writing the non-requested user data (UD), a volatile memory device 110. 컨트롤러(120)는 외부의 호스트 장치로부터 논리 어드레스들에 기반한 읽기 요청을 수신할 수 있다. Controller 120 may receive a read request based on the logical address from the external host apparatus. 컨트롤러(120)는 맵 데이터(MD)를 이용하여 논리 어드레스들을 물리 어드레스들로 변환할 수 있다. Controller 120 may convert the logical address into a physical address by using the map data (MD). 컨트롤러(120)는 논리 어드레스들에 기반하여 불휘발성 메모리 장치(110)로부터 사용자 데이터(UD)를 읽고, 읽힌 사용자 데이터(UD)를 외부의 호스트 장치로 출력할 수 있다. Controller 120 may be based on the logical address to output the user data (UD) read user data (UD), reading from the non-volatile memory device 110 to the external host apparatus.

상술된 바와 같이, 컨트롤러(120)는 외부의 호스트 장치의 요청에 따라 불휘발성 메모리 장치(110)를 액세스할 때에, 맵 데이터(MD)를 사용하도록 구성된다. As described above, the controller 120 while accessing the volatile memory device 110, light at the request of an external host device, is configured to use the map data (MD). 맵 데이터(MD)는 외부 호스트 장치에 의해 부여된 논리 어드레스들이 불휘발성 메모리 장치(110)의 물리 어드레스들 중 어느 것에 대응하는지에 대한 정보를 포함할 수 있다. Map data (MD) can be granted by the external host device, a logical address that includes information as to whether any of the corresponding physical address of the nonvolatile memory device 110. 따라서, 불휘발성 메모리 장치(110)의 저장 공간이 증가할수록, 맵 데이터(MD)의 사이즈는 증가할 수 있다. Thus, with increasing the storage space of the non-volatile memory device 110, the size of the map data (MD) may be increased.

eMMC (embedded MultiMedia Card) 또는 UFS (Unifersal Flash Storage)와 같은 실장형 스토리지 장치의 경우, 컨트롤러(120)의 내부의 RAM (123)의 용량이 제한적이다. For the mount of storage devices, such as eMMC (embedded MultiMedia Card), or UFS (Unifersal Flash Storage), the capacity of the internal RAM controller (123) of the (120) it is limited. 예를 들어, RAM (123)의 용량은 맵 데이터(MD)의 사이즈보다 작다. For example, the capacity of the RAM (123) is smaller than the size of the map data (MD). 따라서, 컨트롤러(120)는 맵 데이터(MD) 전체를 RAM (123)에 로드할 수 없으며, 맵 데이터(MD) 중에서 바로 이전 또는 현재의 쓰기 요청 또는 읽기 요청과 연관된 부분을 RAM (123)에 로드하도록 구성된다. Accordingly, the controller 120 loads the map data (MD) can not be the full load to the RAM (123), the map data (MD) immediately before or the associated portion of the current write request or a read request from the RAM (123) from It is configured to.

본 발명의 실시 예에 따른 스토리지 장치(100)의 컨트롤러(120)는 순차 데이터에 대응하는 맵 데이터(MD)의 정보를 포함하는 맵 캐시 데이터(MD_C) 및 순차 데이터가 아닌 맵 데이터인 부분 맵 데이터(MD_P)를 RAM (123)에 로드하도록 구성된다. Controller 120 of the storage device 100 in accordance with an embodiment of the present invention, the portion map data map cache data (MD_C), and sequential data is not map data including information of the map data (MD) corresponding to the sequence data It is configured to load (MD_P) to the RAM (123). 캐시 맵 데이터(MD_C)는 순차 데이터에 대응하는 맵 데이터(MD)를 축약한 형태를 가지며, 맵 데이터(MD)보다 적은 용량으로 순차 데이터에 대응하는 논리 어드레스들 및 물리 어드레스들의 변환을 지원할 수 있다. Cache map data (MD_C) can support the conversion of logical addresses and the physical address corresponding to the sequential data at a lower capacity than has the form a short to the map data (MD), the map data (MD) corresponding to the sequence data . 부분 맵 데이터(MD_P)는 순차 데이터에 대응하지 않는 맵 데이터(MD) 중에서 RAM (123)에 로드된 부분일 수 있다. Partial map data (MD_P) may be a part load the RAM (123) from the map data (MD) that are not compatible with the sequence data.

캐시 맵 데이터(MD_C)가 사용되면, 컨트롤러(120)는 부분 맵 데이터(MD_P)보다 더 적은 RAM (123)의 용량을 사용하여 더 큰 범위의 논리 어드레스들 및 물리 어드레스들의 변환을 수행할 수 있다. When the cache map data (MD_C) is used, the controller 120 may perform the conversion of partial map data less RAM in more logical addresses in a large extent by using a capacity of 123 and a physical address than (MD_P) . 따라서, 불휘발성 메모리 장치(110)로부터 맵 데이터(MD)를 읽는 횟수가 감소하며, 스토리지 장치(100)의 동작 속도가 향상된다. Therefore, reducing the number of times to read the map data (MD) from the non-volatile memory device 110, and thereby improving the operation speed of the storage device 100. 또한, 캐시 맵 데이터(MD_C)와 함께 부분 맵 데이터(MD_P)가 사용되면, 순차 데이터가 아닌 임의 데이터(random data)의 논리 어드레스들 및 물리 어드레스들의 변환이 지원된다. Further, when the cache map data (MD_C) and a partial map data (MD_P) together, the conversion of logical addresses and physical addresses of any data (random data) non-sequential data is supported.

도 2는 본 발명의 제1 실시 예에 따른 스토리지 장치(100)의 동작 방법을 보여주는 순서도이다. 2 is a flow chart showing the operation method of the storage apparatus 100 according to the first embodiment of the present invention. 예시적으로, 스토리지 장치(100)가 외부의 호스트 장치의 쓰기 요청에 따라 쓰기 동작을 수행하는 방법이 도 2에 도시된다. Illustratively, the method of storage device 100 is performing a write operation according to the write request from the external host device, it is shown in FIG.

도 1 및 도 2를 참조하면, S110 단계에서, 컨트롤러(120)는 외부의 호스트 장치로부터 쓰기 요청을 수신한다. 1 and 2, in step S110, the controller 120 receives a write request from an external host apparatus. 예를 들어, 쓰기 요청은 논리 어드레스들 및 쓰기 데이터를 포함할 수 있다. For example, a write request can include a logical address and write data.

S120 단계에서, 컨트롤러(120)는 쓰기 데이터가 적어도 하나의 세그먼트(segment)에 대응하는 순차 데이터인지 판별한다. In step S120, the controller 120 determines that the sequential data writing to the data corresponding to the at least one segment (segment). 예를 들어, 컨트롤러(120)는 불휘발성 메모리 장치(110)에 할당되는 저장 공간(예를 들어, 논리 어드레스들에 의해 식별되는 논리적 저장 공간)을 복수의 세그먼트들로 분할하여 관리할 수 있다. For example, the controller 120 may be managed by dividing the storage space, allocated to the non-volatile memory device 110 (e.g., a logical storage area identified by the logical address) into a plurality of segments. 컨트롤러(120)는 쓰기 데이터가 적어도 하나의 세그먼트의 용량(또는 사이즈) 이상이며 순차 데이터인지 판별할 수 있다. The controller 120 is writing data is not less than the capacity (or size) of at least one segment can be determined that the sequential data. 예를 들어, 컨트롤러(120)는 쓰기 요청과 함께 수신되는 논리 어드레스들이 연속인 범위가 적어도 하나의 세그먼트의 용량(또는 사이즈) 이상인지 판별할 수 있다. For example, controller 120 may have logical addresses are continuous in a range that is received with the write request to determine if more than the capacity (or size) of at least one segment.

쓰기 데이터가 적어도 하나의 세그먼트에 대한 순차 데이터가 아니면, S130 단계에서, 컨트롤러(120)는 복수의 엔트리들을 포함하는 새로운 맵 데이터(MD_N)를 구성한다. Write data is not sequential data for at least one segment, in step S130, the controller 120 constitutes a new map data (MD_N) comprising a plurality of entries. 예를 들어, 컨트롤러(120)는 불휘발성 메모리 장치(110)의 물리 어드레스들 중에서 자유 저장 공간에 대응하는 물리 어드레스들을 쓰기 요청의 논리 어드레스들과 매핑할 수 있다. For example, the controller 120 may map the logical address of writing the physical address corresponding to the free storage space in the physical address of the nonvolatile memory device 110 requests. 컨트롤러(120)는 논리 어드레스들 및 물리 어드레스들 사이의 매핑 정보를 포함하는 새로운 맵 데이터(MD_N)를 구성할 수 있다. The controller 120 may configure the new map data (MD_N) including mapping information between the logical addresses and physical addresses.

예시적으로, 컨트롤러(120)는 엔트리의 단위로 논리 어드레스들과 물리 어드레스들을 변환할 수 있다. Illustratively, the controller 120 may convert the logical addresses and physical addresses in units of entries. 하나의 엔트리는 하나의 논리 어드레스 및 하나의 물리 어드레스의 변환 정보를 포함할 수 있다. One of the entries may include information for converting a logical address and a physical address. 예를 들어, 하나의 엔트리는 4B의 사이즈를 가질 수 있다. For example, one entry may have a size of 4B. 하나의 물리 어드레스는 불휘발성 메모리 장치(110)의 4KB의 저장 공간을 가리킬 수 있다. A physical address may point to the 4KB storage space of the non-volatile memory device 110. 즉, 하나의 논리 어드레스는 하나의 엔트리에 의해 하나의 물리 어드레스로 변환되며, 변환된 하나의 물리 어드레스는 불휘발성 메모리 장치(110)의 하나의 저장 공간을 가리킬 수 있다. That is, a logical address is converted into a physical address by the one entry, the transformed one of the physical address may point to a storage area of ​​the nonvolatile memory device 110. 쓰기 요청이 K개(K는 양의 정수)의 논리 어드레스들에 대응하는 경우, 새로운 맵 데이터(MD_N)는 K개의 엔트리들을 포함할 수 있다. If a write request is the K corresponding to the logical address of the (K is a positive integer), the new map data (MD_N) may comprise K entries.

S140 단계에서, 컨트롤러(120)는 새로운 맵 데이터(MD_N)를 부분 맵 데이터(MD_P)로서 RAM (123)에 저장할 수 있다. In step S140, the controller 120 may store in the RAM (123) as a new map data (MD_N) partial map data (MD_P) a. 이후에 S170 단계가 수행된다. After the step S170 is performed.

쓰기 데이터가 적어도 하나의 세그먼트에 대한 순차 데이터이면, S150 단계에서, 컨트롤러(120)는 복수의 엔트리들을 포함하는 새로운 맵 데이터(MD_N)를 생성할 수 있다. If the write data is sequential data for at least one segment, in step S150, the controller 120 may generate a new map data (MD_N) comprising a plurality of entries. 그리고, 컨트롤러(120)는 새로운 맵 데이터(MD_N)에 캐시 태그를 마크할 수 있다. Then, the controller 120 may mark the cache tag in a new map data (MD_N). 예를 들어, 캐시 태그는 적어도 하나의 세그먼트에 저장된 데이터가 순차 데이터임을 가리킬 수 있다. For example, cache tag may indicate that the data stored in at least one segment by the sequential data. 캐시 태그는 복수의 엔트리들 중 적어도 하나의 엔트리에 마크될 수 있다. A cache tag can be marked on at least one entry of the plurality of entries. 예를 들어, 컨트롤러(120)는 세그먼트의 첫 번째 엔트리(또는 시작 엔트리)에 캐시 태그를 마크할 수 있다. For example, the controller 120 may mark the cache tag in the first entry in the segment (or start entry).

S160 단계에서, 컨트롤러(120)는 새로운 맵 데이터(MD_N)의 적어도 하나의 엔트리를 캐시 맵 데이터(MD_C)로서 RAM (123)에 저장할 수 있다. In step S160, the controller 120 may store in the RAM (123) at least one entry of the new map data (MD_N) as a cache map data (MD_C). 컨트롤러(120)는 캐시 태그가 마크된 적어도 하나의 엔트리를 캐시 맵 데이터(MD_C)로서 RAM (123)에 저장할 수 있다. Controller 120 may at least one of the cache tag entry are marked as cached map data (MD_C) can be stored in the RAM (123). 예를 들어, 컨트롤러(120)는 세그먼트의 첫 번째 엔트리(또는 시작 엔트리)를 캐시 맵 데이터(MD_C)로서 RAM (123)에 저장할 수 있다. For example, the controller 120 may store in the RAM (123) the first entry in the segment (or start entry) as the cache map data (MD_C).

이후에, S170 단계에서, 컨트롤러(120)는 쓰기 데이터 및 새로운 맵 데이터(MD_N)의 쓰기 동작을 수행할 수 있다. In the subsequent, step S170, the controller 120 may perform the write operation of the write data and the new map data (MD_N). 예를 들어, 쓰기 데이터는 사용자 데이터(UD)로서 불휘발성 메모리 장치(110)에 기입될 수 있다. For example, the write data can be written to the nonvolatile memory device 110 as user data (UD). 새로운 맵 데이터(MD_N)는 맵 데이터(MD)로서 불휘발성 메모리 장치(110)에 기입될 수 있다. New map data (MD_N) can be written to the nonvolatile memory device 110 as map data (MD).

예시적으로, 쓰기 요청의 쓰기 데이터 중 일부는 적어도 하나의 세그먼트에 대한 순차 데이터이고, 나머지 일부는 임의(random) 데이터일 수 있다. Illustratively, some of the write data for the write request is sequential data for at least one segment, and the remaining part can be any (random) data. 예를 들어, 쓰기 데이터는 세그먼트의 사이즈의 1.5배의 크기를 갖는 순차 데이터일 수 있다. For example, the write data may be progressive data having a size 1.5 times the size of the segment. 이 경우, 쓰기 데이터 중에서 하나의 세그먼트에 대응하는 순차 데이터는 S150 단계 내지 S160 단계에 따라 캐시 맵 데이터(MD_C)의 생성을 유발할 수 있다. In this case, writing sequential data corresponding to one segment in the data can lead to the generation of the cache map data (MD_C) by following the steps S150 to S160 steps. 쓰기 데이터 중에서 나머지 부분은 하나의 세그먼트의 사이즈보다 작으므로, 임의 데이터로 판별될 수 있다. Writing data from the remaining part is smaller than the size of one segment may be determined by any data. 나머지 부분은 S130 단계 내지 S140 단계에 따라 부분 맵 데이터(MD_P)의 생성을 유발할 수 있다. The rest can lead to generation of partial map data (MD_P) in accordance with step S130 to step S140.

도 3은 본 발명의 실시 예에 따라 컨트롤러(120)가 스토리지 장치(110)의 저장 공간을 관리하는 예를 보여준다. Figure 3 is an example of the controller 120 manages the storage space in the storage device 110 in accordance with an embodiment of the present invention. 예시적으로, 컨트롤러(120)가 맵 데이터(MD)를 관리하는 방법이 도 3에 도시된다. By way of example, a method of the controller 120 manages the map data (MD) is shown in Fig.

도 3을 참조하면, 컨트롤러(120)는 맵 데이터(MD)를 이용하여, 논리 어드레스들에 의해 식별되는 논리적 저장 공간(LSA)과 물리 어드레스들에 의해 식별되는 물리적 저장 공간(PSA)을 매핑할 수 있다. 3, the controller 120 may be mapped to the physical storage space (PSA) which is identified by a logical storage area (LSA) and a physical address by using the map data (MD), identified by the logical address can. 맵 데이터(MD)는 복수의 엔트리들(E)을 포함한다. The map data (MD) comprises a plurality of entries of the (E). 각 엔트리(E)는 논리적 저장 공간(LSA)의 하나의 논리 단위(LU)를 물리적 저장 공간(PSA)의 하나의 물리 단위(PU)와 매핑할 수 있다. Each entry (E) can be mapped to a single logical unit (LU) of the logical storage area (LSA) and a physical unit (PU) of physical storage space (PSA). 하나의 논리 단위(LU)는 하나의 논리 어드레스에 의해 식별될 수 있다. A single logical unit (LU) may be identified by a logical address. 하나의 물리 단위(PU)는 하나의 물리 어드레스에 의해 식별될 수 있다. One of the physical units (PU) may be identified by a physical address. 각 엔트리(E)는 논리 단위(LU)의 논리 어드레스(LBA), 물리 단위(LU)의 물리 어드레스(PBA)를 포함할 수 있다. Each entry (E) may include a physical address (PBA) of the logical address (LBA), physical units (LU) of the logical unit (LU). 각 엔트리(E)는 태그들(TAG_L1, TAG_L2)을 더 포함할 수 있다. Each entry (E) can further include the tags (TAG_L1, TAG_L2). 태그들(TAG_L1, TAG_L2)은 각 엔트리(E)에 대응하는 논리 단위(LU) 또는 물리 단위(PU)에 기입된 데이터가 순차 데이터인지를 가리킬 수 있다. The tag (TAG_L1, TAG_L2) may be data written to the logical unit (LU) or a physical unit (PU) corresponding to the entry (E) is a point that the sequential data.

예시적으로, 각 엔트리(E)는 두 개의 태그들(TAG_L1, TAG_L2)을 갖는 것으로 설명된다. Illustratively, each entry (E) is described as having two tags (TAG_L1, TAG_L2). 그러나, 각 엔트리(E)가 갖는 태그들의 수는 한정되지 않는다. However, the number of tags having a respective entry (E) is not limited. 각 엔트리(E)가 갖는 태그들의 수는 캐시들의 레벨에 따라 결정될 수 있다. The number of tags having a respective entry (E) can be determined according to the level of the cache. 예를 들어, 제1 태그(TAG_L1)는 L1 캐시에 따라 설정되고, 제2 태그(TAG_L2)는 L2 캐시에 따라 설정될 수 있다. For example, a first tag (TAG_L1) is set according to the L1 cache, a second tag (TAG_L2) may be set according to the L2 cache.

예시적으로, 각 엔트리(E)의 사이즈는 4B이고, 각 논리 단위(LU) 또는 각 물리 단위(PU)의 사이즈는 4KB일 수 있다. Illustratively, the size of each entry (E) size 4B, and each logical unit (LU) or each of the physical unit (PU) of may be 4KB.

도 4 내지 도 6은 컨트롤러(120)가 캐시 알고리즘에 따라 맵 데이터(MD)를 관리하는 예들을 보여준다. 4 to 6 shows the example in which the controller 120 manages the map data (MD) depending on the cache algorithm. 예시적으로, 컨트롤러(120)는 L1 캐시 및 L2 캐시를 사용하여 맵 데이터(MD)를 관리할 수 있다. Illustratively, the controller 120 may manage the map data (MD) using the L1 cache and L2 cache. L1 캐시 및 L2 캐시는 세트 결합 캐시(Set Associative cache) 알고리즘에 따라 관리될 수 있다. L1 cache and L2 cache may be maintained in accordance with a set associative cache (Set Associative cache) algorithm.

도 1 및 도 4를 참조하면, 컨트롤러(120)가 L1 캐시를 이용하여 맵 데이터(MD)를 관리하는 방법이 도시되어 있다. 1 and reference to Figure 4, a method of the controller 120 manages the map data (MD) using the L1 cache is shown. 컨트롤러(120)는 논리 어드레스들(LBA)을 복수의 세트들로 분할할 수 있다. Controller 120 may split the logical address (LBA) into a plurality of sets. 예를 들어, 스토리지 장치(110)에 '0000' 내지 '9999'의 논리 어드레스들(LBA)이 할당될 수 있다. It can be, for example, the logical address (LBA) of "0000" to "9999" in the storage apparatus 110 is assigned. 스토리지 장치(110)의 논리 어드레스들(LBA)은 5개의 세트들로 분할될 수 있다. Logical addresses (LBA) of the storage device 110 may be divided into five sets. 분할된 세트들에 각각 인덱스들(SET1_0~SET1_4)이 할당될 수 있다. Each index in the set may be divided (SET1_0 ~ SET1_4) is assigned. SET1_0은 '0000' 내지 '1999'의 논리 어드레스들(LBA)에 대응하고, SET1_1은 '2000' 내지 '3999'의 논리 어드레스들(LBA)에 대응하고, 그리고 SET1_4는 '8000' 내지 '9999'의 논리 어드레스들(LBA)에 대응할 수 있다. SET1_0 is 0000 to correspond to the logical address of "1999" (LBA), and SET1_1 correspond to the logical address of "2000" to "3999" (LBA), and and SET1_4 is '8000' to '9999' It may correspond to the logical addresses (LBA).

L1 캐시의 각 세트는 J개의 제1 세그먼트들(S1_1~S1_J)로 분할될 수 있다. Each set of the L1 cache may be divided into J of the first segment (S1_1 ~ S1_J). 각 제1 세그먼트는 K개의 엔트리들(E1~E_K)을 포함할 수 있다. Each of the first segments may include the K entries (E1 ~ E_K). 즉, 컨트롤러(110)는 K개의 엔트리들(E_1~E_K)을 하나의 제1 세그먼트로 관리할 수 있다. That is, the controller 110 can manage the K entries (E_1 E_K ~) as a first segment. 각 엔트리는 논리 어드레스(LBA), 물리 어드레스(PBA), L1 캐시 태그(TAG_L1), 그리고 L2 캐시 태그(TAG_L2)를 포함할 수 있다. Each entry may include a logical address (LBA), physical address (PBA), L1 cache tag (TAG_L1), and the L2 cache tag (TAG_L2).

도 1 및 도 5를 참조하면, 컨트롤러(120)가 L2 캐시를 이용하여 맵 데이터(MD)를 관리하는 방법이 도시되어 있다. 1 and reference to Figure 5, a method of the controller 120 manages the map data (MD) using the L2 cache is shown. 컨트롤러(120)는 논리 어드레스들(LBA)을 복수의 세트들로 분할할 수 있다. Controller 120 may split the logical address (LBA) into a plurality of sets. 스토리지 장치(110)의 논리 어드레스들(LBA)은 10개의 세트들로 분할될 수 있다. Logical addresses (LBA) of the storage device 110 may be divided into 10 sets. 분할된 세트들에 각각 인덱스들(SET2_0~SET2_9)이 할당될 수 있다. Each index in the set may be divided (SET2_0 ~ SET2_9) is assigned. SET2_0은 '0000' 내지 '0999'의 논리 어드레스들(LBA)에 대응하고, SET2_1은 '1000' 내지 '1999'의 논리 어드레스들(LBA)에 대응하고, 그리고 SET2_9는 '9000' 내지 '9999'의 논리 어드레스들(LBA)에 대응할 수 있다. SET2_0 correspond to the logical address of "0000" to "0999" (LBA), and SET2_1 is "1000" to correspond to the logical address of "1999" (LBA), and and SET2_9 is '9000' to '9999' It may correspond to the logical addresses (LBA).

L2 캐시의 각 세트는 M개의 제2 세그먼트들(S2_1~S2_M)로 분할될 수 있다. Each set of L2 cache may be divided into M of the second segment (S2_1 ~ S2_M). 각 제2 세그먼트는 N개의 엔트리들(E1~E_N)을 포함할 수 있다. Each second segments may include the N entries (E1 ~ E_N). 즉, 컨트롤러(110)는 N개의 엔트리들(E_1~E_N)을 하나의 제1 세그먼트로 관리할 수 있다. That is, the controller 110 can manage the N entries (E_1 E_N ~) as a first segment. 각 엔트리는 논리 어드레스(LBA), 물리 어드레스(PBA), L1 캐시 태그(TAG_L1), 그리고 L2 캐시 태그(TAG_L2)를 포함할 수 있다. Each entry may include a logical address (LBA), physical address (PBA), L1 cache tag (TAG_L1), and the L2 cache tag (TAG_L2).

예시적으로, L1 캐시의 세트들(SET1_0~SET1_4)과 L2 캐시의 세트들(SET2_0~SET2_9)은 서로 다른 것으로 설명되었다. Illustratively, the set of the L1 cache (SET1_0 ~ SET1_4) and a set of L2 cache (SET2_0 ~ SET2_9) has been described as different. 그러나, L1 캐시 및 L2 캐시는 동일한 세트들을 공유할 수 있다. However, L1 cache and L2 cache may share the same set.

예시적으로, L1 캐시의 제1 세그먼트들(S1_0~S1_J) 각각의 사이즈는 L2 캐시의 제2 세그먼트들(S2_0~S2_M) 각각의 사이즈보다 클 수 있다. Illustratively, the first segment of each of size (S1_0 ~ S1_J) of the L1 cache may be greater than each of the size of the second segment of the L2 cache (S2_0 ~ S2_M). 예를 들어, 제1 세그먼트들(S1_0~S1_J) 각각에 포함되는 엔트리들의 수(즉, K)는 제2 세그먼트들(S2_0~S2_M) 각각에 포함되는 엔트리들의 수(즉, N)보다 클 수 있다. For example, the first segment, the number of entries included in each of (S1_0 ~ S1_J) (i.e., K) is larger than the second segments (S2_0 ~ S2_M) number (i. E., N) of entries included in each have.

L1 캐시의 제1 세그먼트들(S1_0~S1_J) 각각에 포함되는 엔트리들의 수(즉, K) 및 세트들(SET1_0~SET1_4) 각각의 사이즈가 결정되면, L1 캐시의 각 세트에 포함되는 제1 세그먼트들의 수(즉, J)가 결정될 수 있다. In the L1 cache, a first segment (S1_0 ~ S1_J) When the number of entries of s (i.e., K) and the sets (SET1_0 ~ SET1_4) each of the crystal size included in each of the first segment to be included in each set of the L1 cache the number (i.e., J) of the can be determined. L2 캐시의 제2 세그먼트들(S2_0~S2_M) 각각에 포함되는 엔트리들의 수(즉, N) 및 세트들(SET2_0~SET2_9) 각각의 사이즈가 결정되면, L2 캐시의 각 세트에 포함되는 제2 세그먼트들의 수(즉, M)가 결정될 수 있다. If the L2 first cache second segment (S2_0 ~ S2_M) the number of entries included in each of (i. E., N) and set (SET2_0 ~ SET2_9) each of the crystal size, the second segments contained in each set of L2 cache the number (i. e., M) of the can be determined.

도 1 및 도 6을 참조하면, 컨트롤러(120)는 세트 결합 캐시 알고리즘에 기반하여 캐시 맵 데이터(MD_C)를 관리할 수 있다. Referring to FIGS. 1 and 6, the controller 120 can manage the cache map data (MD_C) on the basis of a set associative cache algorithm. 캐시 맵 데이터(MD_C)의 L1 캐시는 제1 웨이(L1W1) 및 제2 웨이(L1W2)를 포함할 수 있다. L1 cache, the cache map data (MD_C) may include a first way (L1W1) and the second way (L1W2). 캐시 맵 데이터(MD_C)의 L2 캐시는 제1 웨이(L2W1) 및 제2 웨이(L2W2)를 포함할 수 있다. L2 cache, the cache map data (MD_C) may include a first way (L2W1) and the second way (L2W2).

캐시 맵 데이터(MD_C)에 등록되는 콘텐츠는 레코드일 수 있다. Content that is registered in the cache map data (MD_C) may be a record. 캐시 맵 데이터(MD_C)에 등록되는 레코드가 포함하는 정보들은 필드들일 수 있다. Information that the record to be registered in the cache map data (MD_C) they may be a field. 즉, 각 웨이는 세그먼트, 물리 어드레스(PBA), 그리고 인덱스 필드를 가질 수 있다. That is, each way may have a segment, a physical address (PBA), and an index field. 또한, 각 웨이는 제1 세그먼트들(S1_1~S1_J) 또는 제2 세그먼트들(S2_1~S2_M)에 대응하는 레코드들을 가질 수 있다. In addition, each way may have a record corresponding to the first segments (S1_1 ~ S1_J) or the second segment (S2_1 ~ S2_M). 각 레코드는 세그먼트에 대한 정보, 물리 어드레스(PBA)에 대한 정보, 그리고 인덱스에 대한 정보를 포함할 수 있다. Each record may contain information about the information, and index information for the physical address (PBA) for the segment.

L1 캐시의 웨이들(L1W1, L1W2) 각각의 레코드들은 L1 캐시의 각 세트에 속한 제1 세그먼트들(S1_1~S1_J)에 할당될 수 있다. In the L1 cache way (L1W1, L1W2) each record may be assigned to a first segment belonging to each set of the L1 cache (S1_1 ~ S1_J). L2 캐시의 웨이들(L2W1, L2W2) 각각의 레코드들은 L2 캐시의 각 세트에 속한 제2 세그먼트들(S2_1~S2_M)에 할당될 수 있다. Each record of the way of the L2 cache (L2W1, L2W2) may be assigned to a second segment belonging to each set of L2 cache (S2_1 ~ S2_M).

예시적으로, 캐시 맵 데이터의 L1 캐시 및 L2 캐시는 2-웨이 기반의 세트 결합 캐시(Set Associative cache) 알고리즘에 따라 관리될 수 있다. Illustratively, the cache map data, L1 cache and L2 cache may be maintained in accordance with the 2-way set associative cache based (Set Associative cache) algorithm. 그러나, 본 발명의 기술적 사상은 한정되지 않는다. However, the technical features of the present invention is not limited. L1 캐시의 웨이들의 수 및 L2 캐시들의 웨이들의 수는 서로 다를 수 있다. Way number of the way of the number of L1 cache and L2 cache may be different from each other. 또한, L1 캐시 또는 L2 캐시는 직접 캐시(direct cache) 또는 결합 캐시(associative cache) 알고리즘에 기반하여 관리될 수 있다. Also, L1 cache or the L2 cache may be managed directly based in the cache (cache direct) or binding cache (associative cache) algorithm.

도 7은 본 발명의 제2 실시 예에 따른 스토리지 장치(100)의 동작 방법을 보여주는 순서도이다. 7 is a flow chart showing the operation method of the storage apparatus 100 according to the second embodiment of the present invention. 예시적으로, 컨트롤러(120)가 순차 데이터인지에 따라 캐시 태그들(TAG_L1, TAG_L2)을 마크(S150 단계)하는 방법이 도 7에 도시되어 있다. By way of example, a method of the controller 120 of the cache tag, depending on whether the sequence data (TAG_L1, TAG_L2) to mark (step S150) is shown in Fig.

도 1, 도 4 내지 도 7을 참조하면, S210 단계에서, 컨트롤러(120)는 쓰기 요청과 함께 수신된 쓰기 데이터가 제1 세그먼트(S1)에 대해 순차 데이터인지 판별할 수 있다. Referring to Figure 1, figures 4 to 7, in step S210, the controller 120 receives the write data with the write request can not determine whether the sequence data for the first segment (S1). 예를 들어, 컨트롤러(120)는 쓰기 요청과 함께 수신되는 논리 어드레스들(LBA)에 기반하여 쓰기 데이터에 대응하는 L1 캐시의 세트 및 제1 세그먼트(S1)를 판별할 수 있다. For example, the controller 120 may determine the set and the first segment (S1) of the L1 cache corresponding to the write data based on the logical address received with the write request (LBA). 컨트롤러(120)는 쓰기 데이터가 적어도 하나의 제1 세그먼트(S1)에 순차 기입되는 데이터인지 판별할 수 있다. Controller 120 may determine whether the data write data is successively written to the at least one first segment (S1).

쓰기 데이터가 적어도 하나의 제1 세그먼트(S1)에 대한 순차 데이터이면, S220 단계에서, 컨트롤러(120)는 쓰기 요청에 대응하는 새로운 맵 데이터(MD_N)의 L1 캐시 태그(TAG_L1)에 유효값을 마크할 수 있다. If the write data is sequential data for at least one first segment (S1), in step S220, the controller 120 is a valid value marks the L1 cache tag (TAG_L1) of the new map data (MD_N) corresponding to the write request, can do. 컨트롤러(120)는 쓰기 데이터에 대응하는 적어도 하나의 제1 세그먼트(S1)의 적어도 하나의 엔트리의 L1 캐시 태그(TAG_L1)에 유효값을 마크할 수 있다. Controller 120 may mark the effective value for the at least one first segment (S1) L1 cache tag (TAG_L1) of at least one entry corresponding to the write data. 예를 들어, 컨트롤러(120)는 쓰기 데이터에 대응하는 각 제1 세그먼트(S1)의 첫 번째 엔트리(또는 시작 엔트리)의 L1 캐시 태그(TAG_L1)에 유효값을 마크할 수 있다. For example, the controller 120 may mark a valid value in the L1 cache tag (TAG_L1) of the first entry (or start entry) of each first segment (S1) corresponding to the write data.

S230 단계에서, 컨트롤러(120)는 쓰기 요청과 함께 수신된 쓰기 데이터가 제2 세그먼트(S2)에 대해 순차 데이터인지 판별할 수 있다. In step S230, the controller 120 may write the data received with the write request to determine whether the sequence data for the second segment (S2). 예를 들어, 컨트롤러(120)는 쓰기 요청과 함께 수신되는 논리 어드레스들(LBA)에 기반하여 쓰기 데이터에 대응하는 L2 캐시의 세트 및 제2 세그먼트(S2)를 판별할 수 있다. For example, the controller 120 may determine the set and the second segment (S2) of the L2 cache which corresponds to the write data based on the logical address received with the write request (LBA). 컨트롤러(120)는 쓰기 데이터가 적어도 하나의 제2 세그먼트(S2)에 순차 기입되는 데이터인지 판별할 수 있다. Controller 120 may determine whether the data write data is successively written to the at least one second segment (S2).

쓰기 데이터가 적어도 하나의 제2 세그먼트(S2)에 대한 순차 데이터이면, S240 단계에서, 컨트롤러(120)는 쓰기 요청에 대응하는 새로운 맵 데이터(MD_N)의 L2 캐시 태그(TAG_L2)에 유효값을 마크할 수 있다. If the write data is sequential data for at least one second segment (S2), at the S240 step, the controller 120 is a valid value marks the L2 cache tag (TAG_L2) of the new map data (MD_N) corresponding to the write request, can do. 컨트롤러(120)는 쓰기 데이터에 대응하는 적어도 하나의 제2 세그먼트(S2)의 적어도 하나의 엔트리의 L2 캐시 태그(TAG_L2)에 유효값을 마크할 수 있다. Controller 120 may mark the effective value for the at least one second segment (S2) L2 cache tag (TAG_L2) of at least one entry corresponding to the write data. 예를 들어, 컨트롤러(120)는 쓰기 데이터에 대응하는 각 제2 세그먼트(S2)의 첫 번째 엔트리(또는 시작 엔트리)의 L2 캐시 태그(TAG_L2)에 유효값을 마크할 수 있다. For example, the controller 120 may mark the effective value in the L2 cache tag (TAG_L2) of the first entry (or start entry) of each second segment (S2) corresponding to the write data.

도 8은 본 발명의 제3 실시 예에 따른 스토리지 장치(100)의 동작 방법을 보여주는 순서도이다. Figure 8 is a flow diagram showing the operation method of the storage apparatus 100 according to the third embodiment of the present invention. 예시적으로, 컨트롤러(120)가 캐시 맵 데이터(MD_C)를 RAM (123)에 저장하는 방법(S160 단계)이 도 8에 도시된다. This way of example, the controller 120, the method (step S160) to store the cache map data (MD_C) to the RAM (123) is shown in Fig.

도 1, 도 4 내지 도 6, 그리고 도 8을 참조하면, S310 단계에서, 컨트롤러(120)는 인덱스를 계산할 수 있다. Figure 1, Figures 4 to 6 there is shown, and referring to Figure 8, in step S310, the controller 120 may calculate the index. 예를 들어, 도 7을 참조하여 설명된 바와 같이, L1 캐시 태그(TAG_L1)에 유효값이 마크된 경우, 컨트롤러(120)는 L1 캐시 태그(TAG_L1)가 기입된 제1 세그먼트(S1)가 속한 세트의 인덱스를 계산할 수 있다. For example, as described with reference to Figure 7, if a valid value in the L1 cache tag (TAG_L1) mark, the controller 120 L1 cache tag (TAG_L1) the writing of the first segment (S1) to which it belongs You can calculate the index of the set. 예를 들어, 컨트롤러(120)는 L1 캐시 태그(TAG_L1)가 기입된 엔트리의 논리 어드레스들 중 최상위 비트(MSB) 또는 최상위 비트를 포함하는 둘 이상의 상위 비트들을 L1 캐시의 세트들의 수로 나눈 몫 또는 나머지를 이용하여 L1 캐시의 인덱스를 계산할 수 있다. For example, the controller 120 quotient obtained by dividing two or more upper bits including a most significant bit (MSB) or the most significant bit of the logical address of the write entry L1 cache tag (TAG_L1) by the number of the L1 cache set or rest using it to calculate the index of the L1 cache.

예를 들어, 도 8을 참조하여 설명된 바와 같이, L2 캐시 태그(TAG_L2)에 유효값이 마크된 경우, 컨트롤러(120)는 L2캐시 태그(TAG_L2)가 기입된 제2 세그먼트(S2)가 속한 세트의 인덱스를 계산할 수 있다. For example, as described with reference to Figure 8, when the effective value of the L2 cache tag (TAG_L2) mark, the controller 120 is the L2 cache tags (TAG_L2) is written with a second segment (S2) to which it belongs You can calculate the index of the set. 예를 들어, 컨트롤러(120)는 L2 캐시 태그(TAG_L2)가 기입된 엔트리의 논리 어드레스들 중 최상위 비트(MSB) 또는 최상위 비트를 포함하는 둘 이상의 상위 비트들을 L2 캐시의 세트들의 수로 나눈 몫 또는 나머지를 이용하여 L2 캐시의 인덱스를 계산할 수 있다. For example, the controller 120 quotient obtained by dividing two or more upper bits including a most significant bit (MSB) or the most significant bit of the logical address of the entry to write the L2 cache tag (TAG_L2) by the number of the L2 cache set or rest using it to calculate the index of the L2 cache.

S320 단계에서, 컨트롤러(120)는 캐시 맵 데이터(MD_C)가 갱신되는지 판별한다. In step S320, the controller 120 determines whether to update the cache map data (MD_C). 예를 들어, 컨트롤러(120)는 계산된 인덱스에 대응하는 제1 세그먼트(S1) 또는 제2 세그먼트(S2)가 캐시 맵 데이터(MD_C)에 이미 등록되어 있는지 판별할 수 있다. For example, the controller 120 may determine that the first segment (S1) or the second segment (S2) corresponding to the calculated index is already registered in the cache map data (MD_C).

예를 들어, 계산된 인덱스가 L1 캐시의 인덱스인 경우, 캐시 맵 데이터(MD_C)에 동일한 제1 세그먼트(S1)의 레코드가 이미 등록되어 있는지 판별될 수 있다. For example, the calculated indices may be determined that if the index of the L1 cache, the records in the same first segment (S1) to the cache map data (MD_C) is already registered. 예를 들어, 컨트롤러(120)는 L1 캐시의 제1 및 제2 웨이들(L1W1, L1W2)에서, L1 캐시 태그(TAG_L1)가 마크된 제1 세그먼트(S1)에 대응하는 레코드가 등록되어 있는지 판별할 수 있다. For determination that instance, the controller 120 in the first and second ways (L1W1, L1W2) of the L1 cache, the L1 cache tags (TAG_L1) the records are registered corresponding to the marked first segment (S1) can do.

예를 들어, 계산된 인덱스가 L2 캐시의 인덱스인 경우, 캐시 맵 데이터(MD_C)에 동일한 제2 세그먼트(S2)의 레코드가 이미 등록되어 있는지 판별할 수 있다. For example, the index is calculated to determine if the record of the same second segment (S2) when the index of the L2 cache, the cache map data (MD_C) has already been registered. 또한, 컨트롤러(120)는 L2 캐시 태그(TAG_L2)가 마크된 제2 세그먼트를 포함하는 제1 세그먼트(S1)의 레코드가 캐시 맵 데이터(MD_C)에 이미 등록되어 있는지 판별할 수 있다. In addition, the controller 120 may determine that the record of the first segment (S1) and a second segment of the L2 cache tag (TAG_L2) mark has already been registered in the cache map data (MD_C).

캐시 맵 데이터(MD_C)가 갱신되는 경우, S330 단계에서, 컨트롤러(120)는 캐시 맵 데이터(MD_C)에 이미 등록된 적어도 하나의 레코드, 예를 들어 이전에 유효값이 마크된 캐시 태그를 갖는 적어도 하나의 엔트리에 대응하는 레코드를 캐시 맵 데이터(MD_C)로부터 해제할 수 있다. If the updated cache map data (MD_C), in step S330, the controller 120 includes at least one record has already been registered in the cache map data (MD_C), for example, having at least a previously valid value of the mark cache tag in It may release the record corresponding to one entry from the cache map data (MD_C). 컨트롤러(120)는 새로운 레코드, 즉 현재 유효값이 마크된 캐시 태그를 포함하는 적어도 하나의 엔트리에 대응하는 레코드를 캐시 맵 데이터(MD_C)로 저장할 수 있다. The controller 120 may store records corresponding to at least one entry including a new record, that is, the current effective value mark cache tag in the cache map data (MD_C).

캐시 맵 데이터(MD_C)가 갱신되지 않는 경우, S340 단계에서, 컨트롤러(120)는 자유 웨이가 존재하는지 판별한다. If it does not update the cache map data (MD_C), in step S340, the controller 120 determines that the free-way exists. 예를 들어, 컨트롤러(120)는 L1 캐시의 웨이들(L1W1, L1W2) 또는 L2 캐시의 웨이들(L2W1, L2W2) 중 계산된 인덱스에 대응하는 웨이들을 선택할 수 있다. For example, the controller 120 may select a way corresponding to the calculation of the index of the L1 cache way (L1W1, L1W2) or the way (L2W1, L2W2) of the L2 cache. 컨트롤러(120)는 선택된 웨이들에서, 캐시 태그가 마크된 세그먼트에 대응하는 레코드가 기입되지 않은 자유 웨이가 존재하는지 판별할 수 있다. Controller 120 may determine from the selected way, that the free-way cache tag exists, the record is not written corresponding to the marked segments.

자유 웨이가 존재하면, S350 단계에서, 컨트롤러(120)는 유효값이 마크된 캐시 태그를 갖는 적어도 하나의 엔트리의 정보를 캐시 맵 데이터(MD_C)로서 자유 웨이에 저장할 수 있다. When the free-way is present, in step S350, the controller 120 has as at least one entry of the cache information of the map data (MD_C) having an effective value of the mark can be stored in the cache tag free way.

자유 웨이가 존재하지 않으면, S360 단계에서, 컨트롤러(120)는 캐시 태그가 마크된 세그먼트에 대응하는 레코드들 중에서 오래된 레코드를 해제(release)하고, 해제된 위치에 새로 캐시 태그가 마크된 적어도 하나의 엔트리의 정보를 캐시 맵 데이터(MD_C)로서 저장할 수 있다. If the free way does not exist, at S360 step, the controller 120 at least one of the cache tag is turned off (release) the old record in the record corresponding to the marked segments and the new cache tag in the release position mark It may store the entry information of a cache map data (MD_C).

도 9 내지 도 14는 스토리지 장치(100)에 순차 데이터가 기입되고, 캐시 맵 데이터(MD_C)가 등록되는 예들을 보여준다. 9 to 14 are a sequence of data is written to the storage device 100, it shows the example in which the cache map data (MD_C) register. 도 1 및 도 9를 참조하면, 스토리지 장치(100)의 논리적 저장 공간은 4개의 세트들(SET_1~SET_4)로 분할될 수 있다. Even when 1 and 9, a logical storage space in the storage device 100 can be divided into four sets (SET_1 ~ SET_4). 예시적으로, L1 캐시 및 L2 캐시는 4개의 세트들(SET_1~SET_4)을 공유할 수 있다. Illustratively, L1 cache and L2 cache may be shared by four sets (SET_1 ~ SET_4).

각 세트는 L1 캐시에 대응하는 2개의 제1 세그먼트들(S1_1, S1_2)로 분할될 수 있다. Each set may be divided into two first segment corresponding to the L1 cache (S1_1, S1_2). 각 세트는 L2 캐시에 대응하는 4개의 제2 세그먼트들(S2_1~S2_4)로 분할될 수 있다. Each set may be divided into four second segment corresponding to the L2 cache (S2_1 ~ S2_4). 각 제1 세그먼트 또는 각 제2 세그먼트는 복수의 엔트리들을 포함할 수 있다. Each of the first segment or each of the second segment may include a plurality of entries.

예시적으로, 외부의 호스트 장치의 요청에 따라, SET_1의 인덱스를 갖는 세트에 제2 세그먼트(S2_1)에 순차 데이터가 기입될 수 있다. Illustratively, the sequence data according to the request, the set having the index of SET_1 the second segment (S2_1) of an external host device can be written. 순차 데이터가 기입되면, 순차 데이터에 대응하는 레코드가 캐시 맵 데이터(MD_C)에 등록될 수 있다. If sequential data is written, a record corresponding to the sequential data can be registered in the cache map data (MD_C).

도 1, 도 9 및 도 10을 참조하면, L1 캐시의 제1 웨이(L1W1) 및 제2 웨이(L1W2) 각각은 2개의 제1 세그먼트들(S1_1, S1_2)에 대응하는 레코드들을 포함할 수 있다. When Figs. 1, 9 and 10, the first way (L1W1) and the second way (L1W2) of the L1 cache, each of which may include records corresponding to the two first segments (S1_1, S1_2) . L2 캐시의 제1 웨이(L2W1) 및 제2 웨이(L2W2) 각각은 4개의 제2 세그먼트들(S2_1~S2_4)을 포함할 수 있다. The first way (L2W1) and the second way (L2W2) of the L2 cache, each of which may include 4 of the second segment (S2_1 ~ S2_4).

SET_1의 인덱스를 갖는 세트의 제2 세그먼트(S2_1)에 순차 데이터가 기입됨에 따라, L2 캐시의 제1 웨이(L2W1)에 제2 세그먼트(S2_1)의 레코드가 등록될 수 있다. As the sequence data to the second segment (S2_1) of the set having an index of SET_1 is written, it may be a record in the second segment (S2_1) registered to the first way (L2W1) of the L2 cache. 예를 들어, 순차 데이터가 기입된 제2 세그먼트(S2_1)에 대응하는 저장 공간의 시작 물리 어드레스(PBA1)가 물리 어드레스(PBA)의 필드에 등록될 수 있다. For example, a start physical address (PBA1) of the storage space corresponding to the sequential data is written a second segment (S2_1) can be registered in a field of a physical address (PBA). 순차 데이터가 기입된 세트의 인덱스(SET_1)가 인덱스의 필드에 등록될 수 있다. The index (SET_1) of the sequential set of data is written may be registered in the index field.

도 1 및 도 11을 참조하면, 외부의 호스트 장치의 요청에 따라, SET_3의 인덱스를 갖는 세트의 제1 세그먼트(S1_1)에 순차 데이터가 기입될 수 있다. Even when 1 and 11, in the first segment (S1_1) of the set having an index of SET_3 at the request of an external host device, the sequential data can be written. 순차 데이터가 기입되면, 순차 데이터에 대응하는 레코드가 캐시 맵 데이터(MD_C)에 등록될 수 있다. If sequential data is written, a record corresponding to the sequential data can be registered in the cache map data (MD_C).

도 1, 도 11 및 도 12를 참조하면, SET_3의 인덱스를 갖는 세트의 제1 세그먼트(S1_1)에 순차 데이터가 기입됨에 따라, L1 캐시의 제1 웨이(L1W1)에 제1 세그먼트(S1_1)의 레코드가 등록될 수 있다. In the first way (L1W1) of the L1 cache as Fig. 1, 11 and 12, the sequential data writing to the first segment (S1_1) of the set having an index of SET_3 of the first segment (S1_1) records can be registered. 예를 들어, 순차 데이터가 기입된 제1 세그먼트(S1_1)에 대응하는 저장 공간의 시작 물리 어드레스(PBA2)가 물리 어드레스(PBA)의 필드에 등록될 수 있다. For example, a start physical address (PBA2) of the storage space corresponding to the sequential data is written first segment (S1_1) can be registered in a field of a physical address (PBA). 순차 데이터가 기입된 세트의 인덱스(SET_3)가 인덱스의 필드에 등록될 수 있다. The index (SET_3) of the sequential set of data is written may be registered in the index field.

도 1 및 도 13을 참조하면, 외부의 호스트 장치의 요청에 따라, SET_2의 인덱스를 갖는 세트의 제2 세그먼트(S2_1)에 순차 데이터가 기입될 수 있다. Even when 1 and 13, and the second segment (S2_1) of the set having an index of SET_2 at the request of an external host device, the sequential data can be written. 순차 데이터가 기입되면, 순차 데이터에 대응하는 레코드가 캐시 맵 데이터(MD_C)에 등록될 수 있다. If sequential data is written, a record corresponding to the sequential data can be registered in the cache map data (MD_C).

외부의 호스트 장치의 요청에 따라, SET_4의 인덱스를 갖는 세트의 제1 세그먼트(S1_2)에 순차 데이터가 기입될 수 있다. At the request of an external host device, it can be a sequential data writing to the first segment (S1_2) of the set having an index of SET_4. 순차 데이터가 기입되면, 순차 데이터에 대응하는 레코드가 캐시 맵 데이터(MD_C)에 등록될 수 있다. If sequential data is written, a record corresponding to the sequential data can be registered in the cache map data (MD_C).

도 1, 도 13 및 도 14를 참조하면, SET_2의 인덱스를 갖는 세트의 제2 세그먼트(S2_1)에 순차 데이터가 기입됨에 따라, L2 캐시의 제2 웨이(L2W2)에 제2 세그먼트(S2_1)의 레코드가 등록될 수 있다. FIG. 1, 13 and 14, as sequential data on a second segment (S2_1) of the set having an index of SET_2 is written, the second segment (S2_1) to the second way (L2W2) of the L2 cache, records can be registered. 예를 들어, 순차 데이터가 기입된 제2 세그먼트(S2_1)에 대응하는 저장 공간의 시작 물리 어드레스(PBA3)가 물리 어드레스(PBA)의 필드에 등록될 수 있다. For example, a start physical address (PBA3) of the storage space corresponding to the sequential data is written a second segment (S2_1) can be registered in a field of a physical address (PBA). 순차 데이터가 기입된 세트의 인덱스(SET_2)가 인덱스의 필드에 등록될 수 있다. The index (SET_2) of the sequential set of data is written may be registered in the index field.

SET_4의 인덱스를 갖는 세트의 제1 세그먼트(S1_2)에 순차 데이터가 기입됨에 따라, L1 캐시의 제1 웨이(L1W1)에 제1 세그먼트(S1_2)의 레코드가 등록될 수 있다. As the sequence data for the first segment (S1_2) of the set having an index of SET_4 is written, a record in the first segment (S1_2) can be registered to the first way (L1W1) of the L1 cache. 예를 들어, 순차 데이터가 기입된 제1 세그먼트(S1_2)에 대응하는 저장 공간의 시작 물리 어드레스(PBA4)가 물리 어드레스(PBA)의 필드에 등록될 수 있다. For example, a start physical address (PBA4) of the storage space corresponding to the sequential data is written first segment (S1_2) can be registered in a field of a physical address (PBA). 순차 데이터가 기입된 세트의 인덱스(SET_4)가 인덱스의 필드에 등록될 수 있다. The index (SET_4) of the sequential set of data is written may be registered in the index field.

순차 데이터의 쓰기 요청이 수신될 때, 캐시 맵 데이터(MD_C)는 도 8을 참조하여 설명된 바와 같이 수행될 수 있다. When receiving the write request of the sequential data, the cache map data (MD_C) may be performed as described with reference to FIG. 예시적으로, 순차 데이터의 쓰기 요청이 캐시 맵 데이터(MD_C)의 자유 웨이에 대응하면, 해당 레코드가 캐시 맵 데이터(MD_C)의 자유 웨이에 등록될 수 있다. Illustratively, if the sequential write request of data corresponding to a free way of the cache map data (MD_C), there is a corresponding record can be registered in the free way of the cache map data (MD_C).

예를 들어, L1 캐시의 맵 데이터(MD_C)에서, 제1 세그먼트들(S1_1, S1_2)에 각각 하나의 자유 웨이가 존재한다. For example, the one-way freedom exists in each of the map data (MD_C) of the L1 cache, the first segment (S1_1, S1_2). 따라서, 제1 세그먼트들(S1_1, S1_2) 각각에 대해 순차 데이터의 쓰기가 요청되면, 해당 세그먼트의 레코드가 캐시 맵 데이터(MD_C)에 등록될 수 있다. Therefore, when the first for each of the segments (S1_1, S1_2) requests a write of the sequence data, a record for that segment to be registered in the cache map data (MD_C).

예를 들어, L2 캐시의 맵 데이터(MD_C)에서, 제2 세그먼트들(S2_2~S2_4)에 각각 두 개의 자유 웨이들이 존재한다. For example, in the map data (MD_C) of the L2 cache, and the second there are respectively two-way free to the segments (S2_2 ~ S2_4). 따라서, 제2 세그먼트들(S2_2~S2_4) 각각에 대해 순차 데이터의 쓰기가 요청되면, 해당 세그먼트의 레코드가 캐시 맵 데이터(MD_C)에 등록될 수 있다. Therefore, when the second segments (S2_2 ~ S2_4) a write request of the sequence data for each, a record for that segment to be registered in the cache map data (MD_C).

예시적으로, 순차 데이터의 쓰기 요청에 캐시 맵 데이터(MD_C)의 자유 웨이에 대응하지 않으면, 더 오래된 레코드가 해제(release)되고 해제된 공간에 새로운 레코드가 등록된다. Illustratively, if not compatible with the free-way of the cache map data (MD_C) a write request of the sequence data, a new record is registered in which the older record release (release) is released space.

예를 들어, L2 캐시의 제2 세그먼트(S2_1)에 자유 웨이가 존재하지 않는다. For example, a free way does not exist in the second segment (S2_1) in the L2 cache. 제2 세그먼트(S2_1)에 대해 순차 데이터의 쓰기가 요청되면, 컨트롤러(120)는 제2 세그먼트(S2_1)의 레코드들 중 더 오래된 레코드, 즉 제1 웨이(L2W1)의 레코드를 해제(release)할 수 있다. When the second writing of sequential data requests for the segment (S2_1), the controller 120 first releases the record of the segment older record of the records in the (S2_1), that is, the first way (L2W1) (release) to can. 이후에, 컨트롤러(120)는 제1 웨이(L2W1)에 새로운 제2 세그먼트(S2_1)의 레코드를 등록할 수 있다. Then, the controller 120 may register a new record in the second segment (S2_1) to the first way (L2W1).

예시적으로, 순차 데이터의 쓰기 요청이 캐시 맵 데이터(MD_C)에 이미 등록되어 있는 레코드에 대응하면, 해당 레코드가 갱신된다. Illustratively, if the sequential write request of data corresponding to a record that is already registered in the cache map data (MD_C), the record is updated. 예를 들어, L1 캐시의 캐시 맵 데이터(MD_C)에 SET_3의 인덱스를 갖는 제1 세그먼트(S1_1)의 레코드 및 SET_4의 인덱스를 갖는 제2 세그먼트(S1_2)의 레코드가 등록되어 있다. For example, a record in the second segment (S1_2) having an index of record and SET_4 of the first segment (S1_1) with the index of the cache map data SET_3 (MD_C) of the L1 cache is registered. 해당 레코드에 대응하는 저장 공간(예를 들어, 논리적 저장 공간)에 대해 순차 데이터의 쓰기가 요청되면, 컨트롤러(120)는 해당 레코드를 갱신할 수 있다. When the writing of sequential data requests to the storage space (e.g., a logical storage space) corresponding to the record, the controller 120 may update the corresponding record. 예를 들어, 컨트롤러(120)는 등록된 레코드에 대응하는 논리적 저장 공간을 새로운 물리적 저장 공간과 매칭하고, 새로운 물리 어드레스(PBA)를 캐시 맵 데이터(MD_C)에 기입할 수 있다. For example, the controller 120 may enter the matching and logical storage space for the new physical storage space, and a new physical address (PBA) corresponding to the registered record to the cache map data (MD_C).

마찬가지로, L2 캐시의 캐시 맵 데이터(MD_C)에 SET_1의 인덱스를 갖는 제2 세그먼트(S2_1)의 레코드 및 SET_2의 인덱스를 갖는 제2 세그먼트(S2_1)의 레코드들이 등록되어 있다. Similarly, the record of the second segment (S2_1) having an index of record and SET_2 of the second segment (S2_1) with the index of the cache map data SET_1 (MD_C) of the L2 cache are registered. 해당 레코드에 대응하는 저장 공간(예를 들어, 논리적 저장 공간)에 대해 순차 데이터의 쓰기가 요청되면, 컨트롤러(120)는 해당 레코드를 갱신할 수 있다. When the writing of sequential data requests to the storage space (e.g., a logical storage space) corresponding to the record, the controller 120 may update the corresponding record.

도 15는 본 발명의 제4 실시 예에 따른 스토리지 장치(100)의 동작 방법을 보여주는 순서도이다. 15 is a flow chart showing the operation method of the storage apparatus 100 according to the fourth embodiment of the present invention. 예시적으로, 컨트롤러(120)가 캐시 맵 데이터(MD_C) 또는 부분 맵 데이터(MD_P)를 이용하여 읽기 동작을 수행하는 방법이 도 15에 도시된다. By way of example, a method for the controller 120 to perform a read operation using a cache map data (MD_C) or partial map data (MD_P) is shown in Fig.

도 1, 도 14 및 도 15를 참조하면, S410 단계에서, 컨트롤러(120)는 외부의 호스트 장치로부터 읽기 요청을 수신할 수 있다. 1, when 14 and 15, in step S410, the controller 120 may receive a read request from an external host apparatus.

S420 단계에서, 컨트롤러(120)는 캐시 히트가 발생하는지 판별한다. In step S420, the controller 120 determines that the cache hit occurs. 예를 들어, 컨트롤러(120)는 읽기 요청에 대응하는 세그먼트를 판별하고, 읽기 요청에 대응하는 세그먼트의 레코드가 캐시 맵 데이터(MD_C)에 등록되어 있는지 판별한다. For example, the controller 120 determines a segment corresponding to the read request, and determines that the segment corresponding to the record read request is registered in the cache map data (MD_C). 예를 들어, 컨트롤러(120)는 읽기 요청된 논리 어드레스들을 포함하는 제1 세그먼트(S1) 또는 제2 세그먼트(S2)의 레코드가 캐시 맵 데이터(MD_C)에 등록되어 있는지 판별할 수 있다. For example, the controller 120 may determine that the record of the first segment (S1) or the second segment (S2) containing a logical address read request is registered in the cache map data (MD_C).

읽기 요청에 대응하는 레코드가 캐시 맵 데이터(MD_C)에 등록되어 있으면, 컨트롤러(120)는 등록된 레코드의 인덱스가 읽기 요청에 대응하는 세그먼트의 인덱스와 일치하는지 판별할 수 있다. If the record corresponding to the read request is registered in the cache map data (MD_C), the controller 120 is the index of the registered record to determine if it matches the index of the segment corresponding to the read request. 등록된 레코드의 인덱스가 읽기 요청된 세그먼트의 인덱스가 일치하면, 캐시 히트가 발생한 것으로 판별될 수 있다. If the index registered a record matches the index of reading the requested segments it may be determined that a cache hit occurred. 캐시 히트가 발생하면, S480 단계가 수행된다. When a cache hit occurs, the step S480 is performed. 캐시 히트가 발생하지 않으면, S430 단계가 수행된다. If the cache hit does not occur, the step S430 is performed.

S430 단계에서, 컨트롤러(120)는 읽기 요청에 대응하는 맵 데이터(MD)를 불휘발성 메모리 장치(110)로부터 읽을 수 있다. In step S430, the controller 120 can read from the map data, the volatile memory device 110 to light (MD) corresponding to the read request.

S440 단계에서, 컨트롤러(120)는 캐시 맵 데이터(MD_C)의 구성이 가능한지 판별한다. In step S440, the controller 120 determines whether the configuration of the cache map data (MD_C). 예를 들어, 컨트롤러(120)는 읽기 요청에 대응하는 세그먼트의 적어도 하나의 엔트리에 유효한 캐시 태그가 마크되어 있는지 판별할 수 있다. For example, the controller 120 may determine whether at least one valid cache tag entry of the segment corresponding to the read request is marked. 유효한 캐시 태그가 마크되어 있으면, 읽기 요청에 대응하는 세그먼트에 순차 데이터가 저장되어 있으며, 캐시 맵 데이터(MD_C)의 구성이 가능한 것으로 판별된다. If there is a valid cache tag is marked, and the data is sequentially stored in the segments corresponding to the read request, it is determined as being the configuration of the cache map data (MD_C). 그리고, S470 단계가 수행된다. Then, the step S470 is performed. 유효한 캐시 태그가 마크되어 있지 않으면, 캐시 맵 데이터(MD_C)의 구성이 가능하지 않은 것으로 판별된다. If it is not a valid cache tag is marked, the configuration of the cache map data (MD_C) is judged to be not possible. 그리고 S450 단계가 수행된다. And a step S450 is performed.

S450 단계에서, 컨트롤러(120)는 읽기 요청에 대응하는 맵 데이터(MD)를 부분 맵 데이터(MD_P)로서 RAM (123)에 저장한다. In step S450, the controller 120 is a map data (MD) portions map data (MD_P) corresponding to the read request is stored in the RAM (123). S460 단계에서, 컨트롤러(120)는 부분 맵 데이터(MD_P)를 이용하여 물리 어드레스들(PBA)을 계산한다. In step S460, the controller 120 by using a part of the map data (MD_P) calculates the physical addresses (PBA). 예를 들어, 컨트롤러(120)는 논리 어드레스들(LBA) 및 부분 맵 데이터(MD_P)의 엔트리들을 참조하여 물리 어드레스들(PBA)을 계산할 수 있다. For example, the controller 120 may be with reference to the entry of the logical address (LBA) and the partial map data (MD_P) calculating the physical addresses (PBA). 이후에 S490 단계가 수행된다. After the step S490 is performed.

캐시 맵 데이터(MD_C)의 구성이 가능하면, S470 단계에서, 컨트롤러(120)는 유효한 캐시 태그가 마크된 적어도 하나의 엔트리의 정보를 캐시 맵 데이터(MD_C)의 레코드로 등록한다. If possible, the configuration of the cache map data (MD_C), in step S470, the controller 120 registers the information of at least one entry of a valid cache tag marked with the records of the cache map data (MD_C). 이후에 S480 단계가 수행된다. After the step S480 is performed.

S480 단계에서, 읽기 요청에 대응하는 캐시 맵 데이터(MD_C)가 RAM (123)에 저장되어 있다. In step S480, the cache map data (MD_C) corresponding to the read request is stored in the RAM (123). 컨트롤러(120)는 캐시 맵 데이터(MD_C)를 이용하여 물리 어드레스들(PBA)을 계산할 수 있다. The controller 120 may compute the physical addresses (PBA), by using a cache map data (MD_C). 예를 들어, 캐시 맵 데이터(MD_C)는 읽기 요청에 대응하는 세그먼트의 시작 물리 어드레스를 포함한다. For example, cache map data (MD_C) comprises a starting physical address of the segment corresponding to the read request. 읽기 요청된 데이터는 순차 데이터 또는 순차 데이터의 일부이다. Reading the requested data is part of a sequential data or sequential data. 따라서, 읽기 요청의 논리 어드레스들(LBA)의 세그먼트 내에서의 위치 및 캐시 맵 데이터(MD_C)에 포함된 시작 물리 어드레스에 기반하여, 읽기 요청된 데이터의 시작 물리 어드레스가 계산될 수 있다. Therefore, based on the starting physical address included in the location and the cache map data (MD_C) in the segment of the logical address (LBA) of the read request, it can be calculated the start physical address of the read-requested data. 읽기 요청된 데이터의 시작 물리 어드레스가 계산되면, 컨트롤러(120)는 읽기 요청의 논리 어드레스들(LBA)에 따라 읽기 요청에 대응하는 전체 물리 어드레스들을 계산할 수 있다. When calculating the starting physical address of the requested read data, the controller 120 may calculate the full physical address corresponding to the read request in accordance with the logical address of the read request (LBA).

S490 단계에서, 컨트롤러(120)는 계산된 물리 어드레스들(PBA)을 이용하여 불휘발성 메모리 장치(110)로부터 데이터를 읽을 수 있다. In step S490, the controller 120 may be used to calculate the physical addresses (PBA) to read data from the non-volatile memory device 110.

도 16은 본 발명의 제5 실시 예에 따른 스토리지 장치(100)의 동작 방법을 보여주는 순서도이다. Figure 16 is a flow diagram showing the operation method of the storage apparatus 100 according to the fifth embodiment of the present invention. 예시적으로, 컨트롤러(120)가 외부의 호스트 장치의 쓰기 요청에 따라 불휘발성 메모리 장치(110)에 저장된 맵 데이터(MD)를 갱신하는 예가 도 16에 도시되어 있다. Illustratively, an example of the controller 120 updates the map data (MD) stored in the non-volatile memory apparatus 110 in accordance with write requests from the external host device is illustrated in FIG.

도 1 및 도 16을 참조하면, S510 단계에서, 컨트롤러(120)는 불휘발성 메모리 장치(110)로부터 캐시 태그(TAG)를 포함하는 엔트리들을 읽을 수 있다. Referring to FIGS. 1 and 16, in step S510, the controller 120 may read the entries including a cache tag (TAG) from the non-volatile memory device 110. 예를 들어, 컨트롤러(120)는 쓰기 요청에 의해 데이터가 기입될 저장 공간이 속한 제1 세그먼트(S1) 또는 제2 세그먼트(S2) 중에서 캐시 태그(TAG)가 마크되는 적어도 하나의 엔트리를 읽을 수 있다. For example, the controller 120 can read the first segment (S1) or the second segment at least one entry that is a cache tag (TAG) marked in (S2) belonging to the storage data is to be written by the write requests have. 예를 들어, 컨트롤러(120)는 쓰기 요청에 대응하는 엔트리들에 포함되지 않고, 쓰기 요청에 대응하는 엔트리들을 포함하는 세그먼트에 속하고, 그리고 캐시 태그(TAG)가 마크되는 적어도 하나의 엔트리를 읽을 수 있다. For example, the controller 120 is writing are not included in the entries corresponding to the request, and in the segment comprising the entry corresponding to the write requests, and read at least one entry, the cache tag (TAG) that are marked can.

S520 단계에서, 컨트롤러(120)는 읽힌 적어도 하나의 엔트리에 유효한 캐시 태그(TAG)가 마크되어 있는지 판별한다. It is determined that at step S520, the controller 120 may read a cache tag (TAG) is effective for at least one entry is marked. 유효한 캐시 태그(TAG)가 마크되어 있지 않으면, 컨트롤러(120)는 추가 동작을 수행하지 않는다. If it is not a valid cache tag (TAG) is marked, the controller 120 does not perform additional operations. 유효한 캐시 태그(TAG)가 마크되어 있으면, S530 단계가 수행된다. If there is a valid cache tag (TAG) is marked, the step S530 is performed.

S530 단계에서, 컨트롤러(120)는 적어도 하나의 엔트리의 캐시 태그(TAG)를 갱신한다. In step S530, the controller 120 updates the cache tag (TAG) of the at least one entry. 예를 들어, 컨트롤러(120)는 캐시 태그(TAG)에 무효한 값을 마크할 수 있다. For example, the controller 120 may mark the invalid value in the cache tag (TAG).

이후에, S540 단계에서, 컨트롤러(120)는 갱신된 적어도 하나의 엔트리를 쓰기 데이터 및 새로운 맵 데이터(MD_N)와 함께 불휘발성 메모리 장치(110)에 기입할 수 있다. In the subsequent, step S540, the controller 120 may write the at least one entry to write the updated data and the new map data, the non-volatile memory device 110 with (MD_N).

도 17은 도 16의 방법에 따라 세그먼트의 적어도 하나의 엔트리가 갱신되는 예들을 보여준다. Figure 17 shows the example in which the updated at least one entry of the segment according to the process of FIG. 예시적으로, 쓰기 요청에 의해 제1 맵 데이터(MD1)가 제2 맵 데이터(MD2)로 갱신되는 예가 도 17에 도시되어 있다. An example is the way of example, the first map data (MD1) by the write requests to update the second map data (MD2) is shown in Fig.

도 1 및 도 17을 참조하면, 제1 맵 데이터(MD1)에 제1 세그먼트(S1) 및 제2 세그먼트들(S2_1, S2_2)이 도시된다. Referring to FIGS. 1 and 17, the the first segment (S1) and a second segment in the first map data (MD1) (S2_1, S2_2) are shown. 제1 세그먼트(S1)의 첫 번째 엔트리(E)는 L1 캐시 태그(TAG_L1)를 포함한다. The first entry of the first segment (S1) (E) comprises an L1 cache tag (TAG_L1). 제2 세그먼트들(S2_1, S2_2)의 첫 번째 엔트리들(E)은 L2 캐시 태그들(TAG_L2)을 포함한다. The second segments of the first entry in the (S2_1, S2_2) (E) comprises the L2 cache tag (TAG_L2).

예시적으로, L1 캐시 태그(TAG_L1)에 채워진 사선들은 유효한 값이 마크되어 있음을 가리킨다. Illustratively, the diagonal filled into the L1 cache tag (TAG_L1) may indicate that a valid value is marked. L2 캐시 태그들(TAG_L2)에 채워진 사선들은 유효한 값들이 마크되어 있음을 가리킨다. Diagonal filled the L2 cache tag (TAG_L2) may indicate that valid values ​​are marked. 즉, 제1 맵 데이터(MD1)는 제1 세그먼트(S1)에 순차 데이터가 기입되어 있음을 가리킨다. That is, the first map data (MD1) indicates that it is the sequential data writing to the first segment (S1).

제2 세그먼트(S2_2)에 순차 데이터가 기입되면, 제1 맵 데이터(MD1)는 제2 맵 데이터(MD2)로 갱신될 수 있다. When the second segments are sequentially written to the data (S2_2), a first map data (MD1) it can be updated with a second map data (MD2). 제2 세그먼트(S2_2)에 순차 데이터가 기입되면, 제2 세그먼트(S2_2)의 L2 캐시 태그(L2_TAG)에 유효한 값이 마크된다. When the second data are sequentially written to the segment (S2_2), the valid values ​​in the L2 cache tag (L2_TAG) of the second segment (S2_2) is marked.

제2 세그먼트(S2_2)에 기입된 데이터가 갱신되면, 제2 세그먼트(S2_2)에 매핑된 물리 어드레스들(PBA)이 갱신된다. When the second data is written in the updated segment (S2_2), the physical addresses (PBA) is mapped to a second segment (S2_2) is updated. 따라서, 제2 세그먼트들(S2_1, S2_2)은 논리 저장 공간(LSA)에서는 연속하지만, 물리 저장 공간(PSA)에서는 연속하지 않다. Accordingly, the second segments (S2_1, S2_2) is continuous in the logic storage space (LSA), but it is not continuous in the physical storage area (PSA). 따라서, 제1 세그먼트(S1)의 연속성은 해제된다. Thus, the continuity of the first segment (S1) is released.

컨트롤러(120)는 쓰기 요청에 대응하는 세그먼트, 즉 제2 세그먼트(S2_2) 및 제1 세그먼트(S1)에서, 쓰기 요청에 대응하는 엔트리들이 속하고, 쓰기 요청된 엔트리들에 포함되지 않고, 그리고 캐시 태그를 저장하는 엔트리, 즉 제1 세그먼트(S1)의 첫 번째 엔트리를 불휘발성 메모리 장치(110)로부터 읽을 수 있다. Controller 120 is a letter segments corresponding to the request, i.e., a second segment (S2_2) and a first segment (S1), in that the entry corresponding to the write request, is not included in the write-request entries, and a cache storing the tag entry, that can be read from the first segment (S1) the first volatile memory device 110, the light-th entry in. 읽힌 엔트리의 L1 캐시 태그(TAG_L1)는 유효한 값으로 마크되어 있다. L1 cache tag (TAG_L1) of the read entry is marked as a valid value. 따라서 컨트롤러(120)는 L1 캐시 태그(TAG_L1)를 무효한 값으로 갱신하고, 불휘발성 메모리 장치(110)에 기입할 수 있다. Therefore, the controller 120 may update the value of the invalid the L1 cache tag (TAG_L1), and written into the nonvolatile memory device 110.

상술된 바와 같이, 본 발명의 실시 예에 따른 스토리지 장치(100)는 각 세그먼트에 대응하는 순차 데이터에 대해 캐시 맵 데이터(MD_C)를 사용하고, 그 외의 데이터에 대해 부분 맵 데이터(MD_P)를 사용할 수 있다. As described above, the storage device 100 in accordance with an embodiment of the present invention is using the cache map data (MD_C) for sequential data corresponding to each segment and to use the partial map data (MD_P) for the other data can. 따라서, 순차 데이터의 액세스 시에 스토리지 장치(100)의 동작 속도가 획기적으로 향상된다. Therefore, the operation speed of the storage device 100 at the time of access of sequential data is significantly enhanced.

상술된 실시 예들에서, 캐시 맵 데이터(MD_C)는 L1 및 L2 캐시들에 기반하여 관리되는 것으로 설명되었다. In the embodiments described above, the cache map data (MD_C) has been described as being managed on the basis of the L1 and L2 cache. 그러나, 캐시 맵 데이터(MD_C)의 레벨들의 수는 한정되지 않는다. However, the number of levels of the cache map data (MD_C) is not limited. 또한, 각 레벨의 캐시는 세트 결합 캐시(set associative cache) 알고리즘, 직접 캐시(direct cache) 알고리즘, 또는 결합 캐시(associative cache) 알고리즘에 기반할 수 있다. Also, each level of the cache may be based on a set associative cache (set associative cache) algorithm, the cache directly (direct cache) algorithm, or a combination cache (associative cache) algorithm.

예시적으로, 각 레벨의 세그먼트의 사이즈는 외부의 호스트 장치와 컨트롤러(120) 사이의 통신 특성에 따라 결정될 수 있다. Illustratively, the size of the segment at each level may be determined according to the communication characteristic between the host device and the external controller 120. 예를 들어, 각 레벨의 세그먼트의 사이즈는 외부의 호스트 장치가 읽기 또는 쓰기를 요청하는 데이터의 사이즈, 즉 트랜잭션 사이즈 또는 그것의 배수로 결정될 수 있다. For example, the size of each level of the segment size of the data to an external host device requesting a read or write, that can be determined transaction sizes or its multiple. 예를 들어, 각 레벨의 세그먼트의 사이즈는 외부의 호스트 장치가 컨트롤러(120) 사이의 입출력 대역폭 또는 그것의 배수로 결정될 수 있다. For example, the size of each level of the segment may be determined input-output bandwidth or a multiple of it between the external host equipment controller 120. 예를 들어, 각 레벨의 세그먼트의 사이즈는 외부의 호스트 장치가 컨트롤러(120)를 액세스하는 단위, 즉 섹터 또는 클러스터의 사이즈 또는 그것의 배수로 결정될 수 있다. For example, the size of each level of the segment may be an external host device determined unit to access controller 120, that the sector or its size, or a multiple of the cluster.

다른 예로서, 각 레벨의 세그먼트의 사이즈는 컨트롤러(120)와 불휘발성 메모리 장치(110)의 동작 특성에 따라 결정될 수 있다. As another example, the size of the segment at each level may be determined according to the operating characteristics of the controller 120 and the non-volatile memory device 110. 예를 들어, 각 레벨의 세그먼트의 사이즈(120)는 불휘발성 메모리 장치(110)의 읽기 동작의 단위 또는 그것의 배수로 결정될 수 있다. For example, the size 120 of each level of the segment may be determined in multiples of a unit or its reading operation of the nonvolatile memory device 110. 예를 들어, 각 레벨의 세그먼트의 사이즈(120)는 RAM (123) 중에서 데이터 버퍼 또는 맵 데이터(MD)를 저장하도록 설정된 영역의 사이즈 또는 그와 연관된 값, 또는 에러 정정 블록(128)의 에러 정정 단위의 사이즈에 따라 결정될 수 있다. For example, size 120 is RAM (123) from a data buffer or map data values ​​associated with the size or the area is set up to store the (MD) of each level of the segment, or error error correction of the correction block (128) It can be determined according to the size of the unit.

예시적으로, 제1 세그먼트(S1)는 8KB의 엔트리들에 대응할 수 있다. Illustratively, the first segment (S1) may correspond to the entry of 8KB. 제2 세그먼트(S2)는 2KB의 엔트리들에 대응할 수 있다. A second segment (S2) may correspond to the entry of 2KB. 다른 예로서, 제1 세그먼트(S1)는 1KB의 엔트리들에 대응 할 수 있다. As another example, the first segment (S1) may correspond to the entry of 1KB. 제2 세그먼트(S2)는 256B의 세그먼트들에 대응할 수 있다. A second segment (S2) may correspond to the segment 256B.

다시 도 1을 참조하면, 불휘발성 메모리 장치(110)는 컨트롤러(120)의 제어에 따라 쓰기, 읽기 및 소거를 수행할 수 있다. Referring back to Figure 1, the non-volatile memory device 110 may perform the write, read and erase under the control of the controller 120. 불휘발성 메모리 장치(110)는 입출력 채널을 통해 컨트롤러(120)로부터 커맨드 및 어드레스를 수신할 수 있다. The non-volatile memory device 110 may receive a command and address from the controller 120 via the input and output channel. 불휘발성 메모리 장치(110)는 입출력 채널을 통해 컨트롤러(120)와 데이터를 교환할 수 있다. The non-volatile memory device 110 may exchange the controller 120 with data on the input and output channel.

불휘발성 메모리 장치(110)는 제어 채널을 통해 컨트롤러(120)와 제어 신호를 교환할 수 있다. The non-volatile memory device 110 may exchange the controller 120 and control signals over a control channel. 예를 들어, 불휘발성 메모리 장치(110)는 불휘발성 메모리 장치(110)의 복수의 불휘발성 메모리 칩들 중 적어도 하나의 불휘발성 메모리 칩을 선택하는 칩 인에이블 신호(/CE), 컨트롤러(120)로부터 입출력 채널을 통해 수신되는 신호가 커맨드임을 가리키는 커맨드 래치 인에이블 신호(CLE), 컨트롤러(120)로부터 입출력 채널을 통해 수신되는 신호가 어드레스임을 가리키는 어드레스 래치 인에이블 신호(ALE), 읽기 시에 컨트롤러(120)에 의해 생성되며 주기적으로 토글되어 타이밍을 맞추는 데에 사용되는 읽기 인에이블 신호(/RE), 커맨드 또는 어드레스가 전송될 때에 컨트롤러(120)에 의해 활성화되는 쓰기 인에이블 신호(/WE), 전원이 변화할 때에 의도하지 않은 쓰기 또는 소거를 방지하기 위해 컨트롤러(120)에 의해 활성화되는 쓰기 방지 신호(/WP), 쓰기 시에 컨 For example, the non-volatile memory device 110 includes an enable signal (/ CE), the controller 120 at least a chip selecting one nonvolatile memory chip of a plurality of nonvolatile memory chips for non-volatile memory device 110 the enable signal (ALE) address latch indicating that the received signal is a signal received through the input-output channel address from the command latch enable signal (CLE), the controller 120 indicating that the command to be through the output channel from the controller at the time of reading which is generated by the 120 reading that is used it is a toggle periodically align the timing enable signal (/ RE), when a command or an address to be transmitted a write enable signal (/ WE) which is activated by the controller 120 , write-protect signal (/ WP) which is activated by the controller 120 to prevent the write or erase unwanted when the power is changed, the container at the time of writing 롤러(120)에 의해 생성되며 주기적으로 토글되어 입출력 채널을 통해 전달되는 데이터의 싱크를 맞추는 데에 사용되는 데이터 스트로브 신호(DQS)를 컨트롤러(120)로부터 수신할 수 있다. It produced by the roller 120, and may receive data strobe signal (DQS) that is used to match the synchronization of the data that is periodically transmitted through the toggle input and output channels from the controller 120. 예를 들어, 불휘발성 메모리 장치(110)는 불휘발성 메모리 장치(110)가 프로그램, 소거 또는 읽기 동작을 수행중인지를 가리키는 레디 및 비지 신호(R/nB), 불휘발성 메모리 장치(110)에 의해 읽기 인에이블 신호(/RE)로부터 생성되며 주기적으로 토글되어 데이터의 출력 싱크를 맞추는 데에 사용되는 데이터 스트로브 신호(DQS)를 컨트롤러(120)로 출력할 수 있다. For example, illuminated by a volatile memory device 110 is ready the non-volatile memory device 110 that points to that the run the program, erase or read operation, and the busy signal (R / nB), the non-volatile memory device 110 generated from the read-enable signal (/ RE), and can output the data strobe signal (DQS) is used to toggle the periodically align the output of the sync data to the controller 120.

불휘발성 메모리 장치(110)는 플래시 메모리를 포함할 수 있다. The non-volatile memory device 110 may include a flash memory. 그러나, 불휘발성 메모리 장치(110)는 플래시 메모리를 포함하는 것으로 한정되지 않는다. However, the non-volatile memory device 110 is not limited to a flash memory. 불휘발성 메모리 장치(110)는 PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FeRAM (Ferroelectric RAM) 등과 같은 다양한 불휘발성 메모리 장치들 중 적어도 하나를 포함할 수 있다. The non-volatile memory device 110 may include at least one of a variety of non-volatile memory device such as a PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FeRAM (Ferroelectric RAM).

컨트롤러(120)는 불휘발성 메모리 장치(110)를 제어하도록 구성된다. The controller 120 is configured to control the non-volatile memory device 110. 예를 들어, 컨트롤러(120)는 불휘발성 메모리 장치(110)가 쓰기, 읽기 또는 소거를 수행하도록 입출력 채널 및 제어 채널을 통해 불휘발성 메모리 장치(110)를 제어할 수 있다. For example, the controller 120 may control the volatile memory device 110 through the light input and output channel and the control channel is a non-volatile memory device 110, write, to perform a read or erased.

컨트롤러(120)는 외부의 호스트 장치(미도시)의 제어에 따라 불휘발성 메모리 장치(110)를 제어할 수 있다. The controller 120 may control the non-volatile memory device 110 according to the control of an external host device (not shown). 예를 들어, 컨트롤러(120)는 불휘발성 메모리 장치(110)와 통신하는 포맷과 다른 포맷에 따라 외부의 호스트 장치와 통신할 수 있다. For example, the controller 120 may communicate with an external host device, depending on the format and other formats to communicate with the non-volatile memory device 110. 컨트롤러(120)가 불휘발성 메모리 장치(110)와 통신하는 데이터의 단위는 외부의 호스트 장치와 통신하는 데이터의 단위와 다를 수 있다. Unit of data that the controller 120 communicates with the nonvolatile memory device 110 may be different from the unit of data communicating with the external host apparatus.

컨트롤러(120)는 RAM (130)을 버퍼 메모리, 캐시 메모리, 또는 동작 메모리로 사용할 수 있다. Controller 120 may use a RAM (130) into a buffer memory, cache memory, or the memory operations. 컨트롤러(120)는 불휘발성 메모리 장치(110)를 관리하기 위해 필요한 데이터 또는 코드를 RAM (130)에 저장할 수 있다. The controller 120 may store the data or code that is required to manage the nonvolatile memory device 110 to the RAM (130). 예를 들어, 컨트롤러(120)는 불휘발성 메모리 장치(110)를 관리하기 위해 필요한 데이터 또는 코드를 불휘발성 메모리 장치(110)로부터 읽고, RAM (130)에 로딩하여 구동할 수 있다. For example, the controller 120 reads from the volatile memory device 110, the non-required data or code to manage the nonvolatile memory device 110 may be driven by loading the RAM (130).

RAM (130)은 DRAM (Dynamic RAM), SRAM (Static RAM), SDRAM (Synchronous DRAM), PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FeRAM (Ferroelectric RAM) 등과 같은 다양한 랜덤 액세스 메모리 장치들 중 적어도 하나를 포함할 수 있다. RAM (130) is such as DRAM (Dynamic RAM), SRAM (Static RAM), SDRAM (Synchronous DRAM), PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FeRAM (Ferroelectric RAM) It may include at least one of a variety of random access memory device.

불휘발성 메모리 장치(110)는 복수의 불휘발성 메모리 칩들을 포함할 수 있다. The non-volatile memory device 110 may include a plurality of nonvolatile memory chips. 예시적으로, 컨트롤러(120) 및 불휘발성 메모리 칩들은 채널 및 웨이(way)에 기반하여 서로 연결될 수 있다. Illustratively, the controller 120 and a nonvolatile memory chip can be connected to each other based on the channel and the way (way). 하나의 채널은 하나의 데이터 채널 및 하나의 제어 채널을 포함할 수 있다. One channel may include a data channel and a control channel. 하나의 데이터 채널은 8개의 데이터 라인들을 포함할 수 있다. A data channel may include eight data lines. 하나의 제어 채널은 상술된 칩 인에이블 신호(/CE), 커맨드 래치 인에이블 신호(CLE), 어드레스 래치 인에이블 신호(ALE), 읽기 인에이블 신호(/RE), 쓰기 인에이블 신호(/WE), 쓰기 방지 신호(/WP), 그리고 레디 및 비지 신호(R/nB)를 전송하는 제어 라인들을 포함할 수 있다. A control channel is the enable signal the enable signal (/ CE) above the chip, the command latch enable signal (CLE), address latch enable signal (ALE), a read enable signal (/ RE), a letter (/ WE ), the write-protect signal (/ WP), and may comprise a control line for transmitting a busy signal and a ready (R / nB).

하나의 채널에 연결된 불휘발성 메모리 칩들은 웨이를 형성할 수 있다. The non-volatile memory chip attached to one of the channels can be formed in the way. 하나의 채널에 n개의 불휘발성 메모리 칩들이 연결되면, n-웨이(n-way)를 형성할 수 있다. When n of the non-volatile memory chips are connected to a single channel, it is possible to form the n--way (n-way). 하나의 웨이에 속한 불휘발성 메모리 칩들은 데이터 라인들, 그리고 커맨드 래치 인에이블 신호(CLE), 어드레스 래치 인에이블 신호(ALE), 읽기 인에이블 신호(/RE), 쓰기 인에이블 신호(/WE), 그리고 쓰기 방지 신호(/WP)를 전송하는 제어 라인들을 공유할 수 있다. The non-volatile memory chips are data lines, and command latch enable signal (CLE), address latch enable signal (ALE), a read enable signal (/ RE), a write enable signal (/ WE) belonging to one-way , and you can share the control lines for transmitting the write-protect signal (/ WP). 하나의 웨이에 속한 불휘발성 메모리 칩들 각각은 칩 인에이블 신호(/CE), 그리고 레디 및 비지 신호(R/nB)를 전송하는 전용의 제어 라인들을 통해 컨트롤러(120)와 통신할 수 있다. Non-volatile memory chips, each belonging to one way may communicate with the controller 120 via the control line only to transmit the enable signal (/ CE), and the ready signal and the busy (R / nB) chip.

컨트롤러(120)는 하나의 채널에 연결된 n-웨이의 불휘발성 메모리 칩들을 교대로 액세스할 수 있다. Controller 120 may access alternately the non-volatile memory chip in the n- way connected to one channel. 컨트롤러(120)는 서로 다른 채널들에 연결된 불휘발성 메모리 칩들을 독립적으로 액세스할 수 있다. Controller 120 may independently access the non-volatile memory chip connected to different channels. 컨트롤러(120)는 서로 다른 채널에 연결된 불휘발성 메모리 칩들을 교대로 또는 동시에 액세스할 수 있다. Controller 120 may alternately or at the same time access to the nonvolatile memory chip attached to the other channel.

예시적으로, 불휘발성 메모리 칩들은 와이드IO (Wide IO) 형태로 컨트롤러(120)와 연결될 수 있다. Illustratively, the non-volatile memory chips may be connected to the wide-IO (Wide IO) type controller 120 to. 예를 들어, 서로 다른 채널들에 연결된 불휘발성 메모리 칩들이 하나의 칩 인에이블 신호(/CE)의 제어 라인을 공유할 수 있다. For example, the non-volatile memory chip is connected to the different channels can share the control lines of the enable signal (/ CE) in one chip. 하나의 칩 인에이블 신호(/CE)의 제어 라인을 공유하는 불휘발성 메모리 칩들은 동시에 액세스될 수 있다. A nonvolatile memory chip that share the control lines of the enable signal (/ CE) in one chip may be accessed at the same time. 서로 다른 채널들의 데이터 라인들이 동시에 사용되므로, 넓은 입출력 대역폭이 달성될 수 있다. Since each other are used at the same time the data lines of the other channel, there is a wide input bandwidth can be achieved.

스토리지 장치(100)는 솔리드 스테이트 드라이브(SSD, Solid State Drive) 또는 하드 디스크 드라이브(HDD, Hard Disk Drive)를 포함할 수 있다. Storage device 100 may include a solid state drive (SSD, Solid State Drive) or a hard disk drive (HDD, Hard Disk Drive). 스토리지 장치(100)는 PC 카드(PCMCIA, personal computer memory card international association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD, SDHC), USB (Universal Serial Bus) 메모리 카드, 유니버설 플래시 스토리지(UFS) 등과 같은 메모리 카드들을 포함할 수 있다. Storage device 100 includes a PC card (PCMCIA, personal computer memory card international association), a compact flash card (CF), SmartMedia card (SM, SMC), a memory stick, a multimedia card (MMC, RS-MMC, MMCmicro), It may include memory cards such as SD cards (SD, miniSD, microSD, SDHC), USB (Universal Serial Bus) memory card, universal flash storage (UFS). 스토리지 장치(100)는 eMMC (embedded MultiMedia Card), UFS, PPN (Perfect Page NAND) 등과 같은 실장형 메모리를 포함할 수 있다. Storage device 100 may include a mounting-type memory, such as eMMC (embedded MultiMedia Card), UFS, PPN (Perfect Page NAND).

도 1에서, 스토리지 장치(100)는 컨트롤러(120)의 외부에 배치되는 RAM (130)을 포함하는 것으로 도시되어 있다. 1, the storage device 100 may be seen to include a RAM (130) disposed outside of the controller 120. 그러나, 스토리지 장치(100)는 컨트롤러(120)의 외부에 배치되는 RAM (130)을 구비하지 않을 수 있다. However, the storage device 100 may not be provided with a RAM (130) disposed outside of the controller 120. 컨트롤러(120)는 내부의 RAM (도 9 참조)을 버퍼 메모리, 동작 메모리 또는 캐시 메모리로 사용하도록 구성될 수 있다. Controller 120 may be configured to use the internal RAM (see FIG. 9) to the buffer memory, a working memory or the cache memory.

도 18은 본 발명의 실시 예에 따른 불휘발성 메모리 장치(110)를 보여주는 블록도이다. 18 is a block diagram illustrating a non-volatile memory device 110 according to an embodiment of the invention. 도 1 및 도 18을 참조하면, 불휘발성 메모리 장치(110)는 메모리 셀 어레이(111), 행 디코더 회로(113), 페이지 버퍼 회로(115), 데이터 입출력 회로(117), 그리고 제어 로직 회로(119)를 포함한다. 1 and 18, the non-volatile memory device 110 includes a memory cell array 111, a row decoder circuit 113, a page buffer circuit 115, data input and output circuit 117, and control logic circuit ( 119) a.

메모리 셀 어레이(111)는 복수의 메모리 블록들(BLK1~BLKz)을 포함한다. The memory cell array 111 includes a plurality of memory blocks (BLK1 ~ BLKz). 각 메모리 블록은 복수의 메모리 셀들을 포함한다. Each memory block includes a plurality of memory cells. 각 메모리 블록은 적어도 하나의 접지 선택 라인(GSL), 복수의 워드 라인들(WL), 그리고 적어도 하나의 스트링 선택 라인(SSL)을 통해 행 디코더 회로(113)에 연결될 수 있다. Each memory block may be connected to the row decoder circuit 113 via at least one of the ground selection line (GSL), a plurality of word lines (WL), and at least one string selection line (SSL). 각 메모리 블록은 복수의 비트 라인들(BL)을 통해 페이지 버퍼 회로(115)에 연결될 수 있다. Each memory block may be connected to the page buffer circuit 115 via a plurality of bit lines (BL). 복수의 메모리 블록들(BLK1~BLKz)은 복수의 비트 라인들(BL)에 공통으로 연결될 수 있다. A plurality of memory blocks (BLK1 ~ BLKz) may be connected in common to a plurality of bit lines (BL). 복수의 메모리 블록들(BLK1~BLKz)의 메모리 셀들은 동일한 구조들을 가질 수 있다. Memory cells of the plurality of memory blocks (BLK1 ~ BLKz) may have the same structure.

예시적으로, 복수의 메모리 블록들(BLK1~BLKz) 각각은 소거 동작의 단위일 수 있다. Each way of example, a plurality of memory blocks (BLK1 ~ BLKz) can be a unit of an erase operation. 메모리 셀 어레이(111)의 메모리 셀들은 하나의 메모리 블록의 단위로 소거될 수 있다. Memory cells of the memory cell array 111, can be erased in units of one block of memory. 하나의 메모리 블록에 속한 메모리 셀들은 동시에 소거될 수 있다. A memory cell belonging to one memory block can be simultaneously erased. 다른 예로서, 각 메모리 블록은 복수의 서브 블록들로 분할될 수 있다. As another example, each memory block may be divided into a plurality of sub-blocks. 복수의 서브 블록들 각각은 소거 동작의 단위일 수 있다. Each of the plurality of sub-block may be a unit of an erase operation.

예시적으로, 복수의 메모리 블록들(BLK1~BLKz) 각각은 블록 어드레스에 의해 식별되는 물리적 저장 공간을 포함할 수 있다. Illustratively, each of the plurality of memory blocks (BLK1 ~ BLKz) may comprise a physical storage area identified by a block address. 복수의 워드 라인들(WL) 각각은 행 어드레스에 의해 식별되는 물리적 저장 공간에 대응할 수 있다. A plurality of word lines (WL) each of which may correspond to a physical storage area identified by the row address. 복수의 비트 라인들(BL) 각각은 열 어드레스에 의해 식별되는 물리적 저장 공간에 대응할 수 있다. A plurality of bit lines (BL) each of which may correspond to a physical storage area identified by the column address.

행 디코더 회로(113)는 복수의 접지 선택 라인들(GSL), 복수의 워드 라인들(WL), 그리고 복수의 스트링 선택 라인들(SSL)을 통해 메모리 셀 어레이(111)에 연결된다. Is connected to a row decoder circuit 113 has the plurality of ground select line (GSL), a plurality of word lines (WL), and a plurality of string selection line (SSL) a memory cell array 111 through the. 행 디코더 회로(113)는 제어 로직 회로(119)의 제어에 따라 동작한다. The row decoder circuit 113 operates under the control of the control logic circuit 119. 행 디코더 회로(113)는 컨트롤러(120)로부터 입출력 채널을 통해 수신되는 어드레스를 디코딩하고, 디코딩된 어드레스에 따라 스트링 선택 라인들(SSL), 워드 라인들(WL), 그리고 접지 선택 라인들(GSL)에 인가되는 전압들을 제어할 수 있다. The row decoder circuit 113 decodes, and the string selection line according to the decoded address (SSL), the word lines (WL), and the ground selection line the address received via the input channel from the controller (120) (GSL ) it may control the voltage to be applied to.

예를 들어, 프로그램 시에, 행 디코더 회로(113)는, 어드레스에 의해 선택된 메모리 블록의 선택된 워드 라인에 프로그램 전압(VGPM)을 인가하고, 선택된 메모리 블록의 비선택된 워드 라인들에 패스 전압(VPASS)을 인가할 수 있다. For example, when the program, a row decoder circuit 113, applying a program voltage (VGPM) to the selected word line of a selected memory block by the address, and a pass voltage (VPASS to the unselected word lines of a selected memory block ) it can be applied. 읽기 시에, 행 디코더 회로(113)는 어드레스에 의해 선택된 메모리 블록의 선택된 워드 라인에 선택 읽기 전압(VRD)을 인가하고, 선택된 메모리 블록의 비선택된 워드 라인들에 비선택 읽기 전압(VREAD)을 인가할 수 있다. Read during the, the row decoder circuit 113 is non-selected reading voltage (VREAD) to apply the selected read voltage (VRD) to the selected word line, unselected word lines of a selected memory block in a selected memory block by address It can be applied. 소거 시에, 행 디코더 회로(113)는 어드레스에 의해 선택된 메모리 블록의 워드 라인들에 소거 전압들(예를 들어, 접지 전압 또는 접지 전압과 유사한 레벨들을 갖는 저전압들)을 인가할 수 있다. At the time of erasure can be applied to the row decoder circuit 113 to erase the word lines of a memory block selected by an address voltage (e.g., a low voltage having a similar level to the ground voltage or a ground voltage).

페이지 버퍼 회로(115)는 복수의 비트 라인들(BL)을 통해 메모리 셀 어레이(111)에 연결된다. The page buffer circuit 115 is coupled to the memory cell array 111 via a plurality of bit lines (BL). 페이지 버퍼 회로(115)는 복수의 데이터 라인들(DL)을 통해 데이터 입출력 회로(117)와 연결된다. The page buffer circuit 115 is coupled to the data input and output circuit 117 through the plurality of data lines (DL). 페이지 버퍼 회로(115)는 제어 로직 회로(119)의 제어에 따라 동작한다. The page buffer circuit 115 operates under the control of the control logic circuit 119.

프로그램 시에, 페이지 버퍼 회로(115)는 메모리 셀들에 프로그램될 데이터를 저장할 수 있다. At the time of program, the page buffer circuit 115 can store data to be programmed in the memory cells. 저장된 데이터에 기반하여, 페이지 버퍼 회로(115)는 복수의 비트 라인들(BL)에 전압들을 인가할 수 있다. Based on the stored data, the page buffer circuit 115 may apply the voltage to the plurality of bit lines (BL). 예를 들어, 페이지 버퍼 회로(115)는 쓰기 드라이버로 기능할 수 있다. For example, the page buffer circuit 115 may function as a write driver. 읽기 시에, 페이지 버퍼 회로(115)는 비트 라인들(BL)의 전압들을 센싱하고, 센싱 결과를 저장할 수 있다. At the time of reading, the page buffer circuit 115 may sense the voltages of the bit lines (BL), and to store the result of sensing. 예를 들어, 페이지 버퍼 회로(115)는 감지 증폭기로 기능할 수 있다. For example, the page buffer circuit 115 may function as a sense amplifier.

데이터 입출력 회로(117)는 복수의 데이터 라인들(DL)을 통해 페이지 버퍼 회로(115)와 연결된다. Data input and output circuit 117 is connected to the page buffer circuit 115 via a plurality of data lines (DL). 데이터 입출력 회로(117)는 페이지 버퍼 회로(115)에 의해 읽힌 데이터를 입출력 채널을 통해 컨트롤러(120)로 출력하고, 컨트롤러(120)로부터 입출력 채널을 통해 수신되는 데이터를 페이지 버퍼 회로(115)로 전달할 수 있다. A data input circuit 117 has a page buffer circuit outputting the data read by the 115 to the controller 120 via the input-output channel, the data received through the input and output channels from the controller 120, the page buffer circuit 115 It can deliver.

제어 로직 회로(119)는 컨트롤러(120)로부터 입출력 채널을 통해 커맨드를 수신하고, 제어 채널을 통해 제어 신호를 수신할 수 있다. The control logic circuit 119 may receive a control signal, and receives a command, via a control channel on a channel output from the controller 120. 제어 로직 회로(119)는 제어 신호에 응답하여 입출력 채널을 통해 수신되는 커맨드를 수신하고, 입출력 채널을 통해 수신되는 어드레스는 행 디코더 회로(113)로 라우팅하고, 그리고 입출력 채널을 통해 수신되는 데이터를 데이터 입출력 회로(117)로 라우팅할 수 있다. Address control logic circuit 119 in response to the control signals received the command received via the input-output channel and received on the input and output channel data is routed to the row decoder circuit 113 and, and received via the input-output channel a data output circuit 117 may route. 제어 로직 회로(119)는 수신된 커맨드를 디코딩하고, 디코딩된 커맨드에 따라 불휘발성 메모리 장치(110)를 제어할 수 있다. The control logic circuit 119 may decode and control the volatile memory device 110, the fire according to the decoded command to the received command.

예시적으로, 읽기 시에, 제어 로직 회로(119)는 컨트롤러(120)로부터 제어 채널을 통해 수신되는 읽기 인에이블 신호(/RE)로부터 데이터 스트로브 신호(DQS)를 생성할 수 있다. Illustratively, at the time of reading, the control logic circuit 119 may generate a data strobe signal (DQS) from the read-enable signal (/ RE) that is received via a control channel from a controller 120. 생성된 데이터 스트로브 신호(DQS)는 제어 채널을 통해 컨트롤러(120)로 출력될 수 있다. The generated data strobe signal (DQS) may be output to the controller 120 via a control channel. 쓰기 시에, 제어 로직 회로(119)는 컨트롤러(120)로부터 제어 채널을 통해 데이터 스트로브 신호(DQS)를 수신할 수 있다. At the time of writing, the control logic circuit 119 may receive a data strobe signal (DQS) via a control channel from a controller 120.

도 19는 본 발명의 실시 예에 따른 메모리 블록(BLKa)을 보여주는 회로도이다. 19 is a circuit diagram showing the memory block (BLKa) according to an embodiment of the invention. 도 19를 참조하면, 메모리 블록(BLKa)은 복수의 셀 스트링들(CS11~CS21, CS12~CS22)을 포함한다. Referring to Figure 19, the memory block (BLKa) comprises a plurality of cell strings (CS11 ~ CS21, CS12 ~ CS22). 복수의 셀 스트링들(CS11~CS21, CS12~CS22)은 행 방향(row direction) 및 열 방향(column direction)을 따라 배열되어, 행들 및 열들을 형성할 수 있다. A plurality of cell strings (~ CS11 CS21, CS12 CS22 ~) may form, rows and columns are arranged along the row direction (row direction) and a column direction (column direction).

예를 들어, 행 방향(row direction)을 따라 배열된 셀 스트링들(CS11, CS12)은 제1 행을 형성하고, 행 방향(row direction)을 따라 배열된 셀 스트링들(CS21, CS22)은 제2 행을 형성할 수 있다. For example, the row direction (row direction) of the cell strings arranged in a (CS11, CS12) is in the cell strings arranged in a row direction (row direction), to form a first row 1 (CS21, CS22) is the It may form a second row. 열 방향(column direction)을 따라 배열된 셀 스트링들(CS11, CS21)은 제1 열을 형성하고, 열 방향(column direction)을 따라 배열된 셀 스트링들(CS12, CS22)은 제2 열을 형성할 수 있다. Column-direction (column direction) of the cell strings arranged in a (CS11, CS21) is in the cell strings arranged in the form a first column, and the column-direction (column direction) (CS12, CS22) is formed in the second heat can do.

각 셀 스트링은 복수의 셀 트랜지스터들을 포함할 수 있다. Each cell string may include a plurality of cell transistors. 복수의 셀 트랜지스터들은 접지 선택 트랜지스터들(GST), 메모리 셀들(MC1~MC6), 그리고 스트링 선택 트랜지스터들(SSTa, SSTb)을 포함한다. A plurality of cell transistors comprises the ground selection transistor (GST), memory cells (MC1 ~ MC6), and the string selection transistor (SSTa, SSTb). 각 셀 스트링의 접지 선택 트랜지스터들(GST), 메모리 셀들(MC1~MC6), 그리고 스트링 선택 트랜지스터들(SSTa, SSTb)은 셀 스트링들(CS11~CS21, CS12~CS22)이 행들 및 열들을 따라 배열되는 평면(예를 들어, 메모리 블록(BLKa)의 기판 상의 평면)과 수직한 높이 방향으로 적층될 수 있다. The ground select transistor of each cell string (GST), the memory cells (MC1 ~ MC6), and the string selection transistor (SSTa, SSTb) is the cell strings (CS11 ~ CS21, CS12 ~ CS22) arranged along the rows and columns which plane may be stacked (e.g., flat on the substrate of the memory block (BLKa)) normal to the direction of height.

복수의 셀 트랜지스터들은 절연막에 포획된 전하량에 따라 가변하는 문턱 전압들을 갖는 전하 포획형(charge trap type) 트랜지스터들일 수 있다. A plurality of cell transistors may be a charge trap type (charge trap type) transistor having a threshold voltage that varies according to the amount of charge trapped in the insulating film.

최하단의 접지 선택 트랜지스터들(GST)의 소스들은 공통 소스 라인(CSL)에 공통으로 연결될 수 있다. The source of the ground select transistor, the bottom (GST) may be connected in common to the common source line (CSL).

복수의 셀 스트링들(CS11~CS21, CS12~CS22)의 접지 선택 트랜지스터들(GST)의 제어 게이트들은 접지 선택 라인들(GSL1, GSL2)에 각각 연결될 수 있다. The control gates of the ground selection transistor (GST) of the plurality of cell strings (~ CS11 CS21, CS12 CS22 ~) can be connected respectively to a ground select line (GSL1, GSL2). 예시적으로, 동일한 행의 접지 선택 트랜지스터들은 동일한 접지 선택 라인에 연결되고, 서로 다른 행의 접지 선택 트랜지스터들은 서로 다른 접지 선택 라인들에 연결될 수 있다. Illustratively, the ground selection transistor in the same row are connected to the same ground selection line and each ground select transistors of the other row may be connected to different ground selection line. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 접지 선택 트랜지스터들(GST)은 제1 접지 선택 라인(GSL1)에 연결되고, 제2 행의 셀 스트링들(CS21, CS22)의 접지 선택 트랜지스터들(GST)은 제2 접지 선택 라인(GSL2)에 연결될 수 있다. For example, a claim to a ground select transistor in the cell string in the first line (CS11, CS12) (GST) has a first ground and connected to a select line (GSL1), the cell string of the second line (CS21, CS22) the ground selection transistor (GST) may be connected to the second ground select line (GSL2).

기판(또는 접지 선택 트랜지스터들(GST))으로부터 동일한 높이(또는 순서)에 위치한 메모리 셀들의 제어 게이트들은 하나의 워드 라인에 공통으로 연결되고, 서로 다른 높이(또는 순서)에 위치한 메모리 셀들의 제어 게이트들은 서로 다른 워드 라인들(WL1~WL6)에 각각 연결될 수 있다. Substrate (or ground selection transistors (GST)), the control gates of memory cells located at the same height (or first) control gates of memory cells are commonly connected to one word line, different heights (or sequence) in the from can be connected to each other, each other word line (WL1 ~ WL6). 예를 들어, 메모리 셀들(MC1)은 워드 라인(WL1)에 공통으로 연결된다. For example, the memory cells (MC1) is commonly connected to the word line (WL1). 메모리 셀들(MC2)은 워드 라인(WL2)에 공통으로 연결된다. Memory cells (MC2) are commonly connected to the word line (WL2). 메모리 셀들(MC3)은 워드 라인(WL3)에 공통으로 연결된다. Memory cells (MC3) is commonly connected to the word line (WL3). 메모리 셀들(MC4)은 워드 라인(WL4)에 공통으로 연결된다. The memory cells (MC4) are commonly connected to the word line (WL4). 메모리 셀들(MC5)은 워드 라인(WL5)에 공통으로 연결된다. Memory cell (MC5) are commonly connected to the word line (WL5). 메모리 셀들(MC6)은 워드 라인(WL6)에 공통으로 연결된다. Memory cells (MC6) are commonly connected to the word line (WL6).

복수의 셀 스트링들(CS11~CS21, CS12~CS22)의 동일한 높이(또는 순서)의 제1 스트링 선택 트랜지스터들(SSTa)에서, 서로 다른 행의 제1 스트링 선택 트랜지스터들(SSTa)의 제어 게이트들은 서로 다른 스트링 선택 라인들(SSL1a~SSL2a)에 각각 연결된다. A plurality of cell strings (CS11 ~ CS21, CS12 ~ CS22) control gates of the same height (or order) the first string selection transistors in the (SSTa), each first string selection of other row transistors of the (SSTa) are They are connected to each other string selection line (SSL1a ~ SSL2a). 예를 들어, 셀 스트링들(CS11, CS12)의 제1 스트링 선택 트랜지스터들(SSTa)은 스트링 선택 라인(SSL1a)에 공통으로 연결된다. For example, the cell string of claim 1, the string selection transistor (SSTa) of (CS11, CS12) is commonly connected to the string selection line (SSL1a). 셀 스트링들(CS21, CS22)의 제1 스트링 선택 트랜지스터들(SSTa)은 스트링 선택 라인(SSL2a)에 공통으로 연결된다. The cell string of claim 1, the string selection transistor (SSTa) of (CS21, CS22) is commonly connected to the string selection line (SSL2a).

복수의 셀 스트링들(CS11~CS21, CS12~CS22)의 동일한 높이(또는 순서)의 제2 스트링 선택 트랜지스터들(SSTb)에서, 서로 다른 행의 제2 스트링 선택 트랜지스터들(SSTb)의 제어 게이트들은 서로 다른 스트링 선택 라인들(SSL1b~SSL2b)에 각각 연결된다. A plurality of cell strings (CS11 ~ CS21, CS12 ~ CS22) control gates of the same height (or the first) a second string selection from the transistor (SSTb), each second string selection of other row transistors of the (SSTb) are They are connected to each other string selection line (SSL1b ~ SSL2b). 예를 들어, 셀 스트링들(CS11, CS12)의 제2 스트링 선택 트랜지스터들(SSTb)은 스트링 선택 라인(SSL1b)에 공통으로 연결된다. For example, the second string selection transistor of the cell string (CS11, CS12) (SSTb) are commonly connected to the string selection line (SSL1b). 셀 스트링들(CS21, CS22)의 제2 스트링 선택 트랜지스터들(SSTb)은 스트링 선택 라인(SSL2b)에 공통으로 연결된다. The second string selection transistor of the cell string (CS21, CS22) (SSTb) are commonly connected to the string selection line (SSL2b).

즉, 서로 다른 행의 셀 스트링들은 서로 다른 스트링 선택 라인들에 연결된다. That is, each cell string of the other row are connected to different string selection line. 동일한 행의 셀 스트링들의 동일한 높이(또는 순서)의 스트링 선택 트랜지스터들은 동일한 스트링 선택 라인에 연결된다. The string selection transistor of the same height (or sequence) of the cell string in the same row are connected to the same string selection line. 동일한 행의 셀 스트링들의 서로 다른 높이(또는 순서)의 스트링 선택 트랜지스터들은 서로 다른 스트링 선택 라인들에 연결된다. Select strings of different heights of the cell string (or sequence) of the same row transistors are connected to different string selection line.

예시적으로, 동일한 행의 셀 스트링들의 스트링 선택 트랜지스터들은 하나의 스트링 선택 라인에 공통으로 연결될 수 있다. Illustratively, the cell of the string, the string selection transistors of the same row can be connected in common to a string selection line. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 스트링 선택 트랜지스터들(SSTa, SSTb)은 하나의 스트링 선택 라인에 공통으로 연결될 수 있다. For example, the string selection transistor of the cell string of the line 1 (CS11, CS12) (SSTa, SSTb) may be connected in common to a string selection line. 제2 행의 샐 스트링들(CS21, CS22)의 스트링 선택 트랜지스터들(SSTa, SSTb)은 하나의 스트링 선택 라인에 공통으로 연결될 수 있다. The string selection transistor of the Sal string of the second line (CS21, CS22) (SSTa, SSTb) may be connected in common to a string selection line.

복수의 셀 스트링들(CS11~CS21, CS12~CS22)의 열들은 서로 다른 비트 라인들(BL1, BL2)에 각각 연결된다. Column of the plurality of cell strings (CS11 ~ CS21, CS12 ~ CS22) are connected respectively to different bit lines (BL1, BL2). 예를 들어, 제1 열의 셀 스트링들(CS11~CS21)의 스트링 선택 트랜지스터들(SSTb)은 비트 라인(BL1)에 공통으로 연결된다. For example, the string selection transistor of a column 1 the cell string (CS11 ~ CS21) (SSTb) are commonly connected to the bit line (BL1). 제2 열의 셀 스트링들(CS12~CS22)의 스트링 선택 트랜지스터들(SST)은 비트 라인(BL2)에 공통으로 연결된다. The second string selection transistor (SST) of the heat cell string (~ CS12 CS22) is commonly connected to the bit line (BL2).

셀 스트링들(CS11, CS12)은 제1 플레인을 형성할 수 있다. The cell string (CS11, CS12) may form a first plane. 셀 스트링들(CS21, CS22)은 제2 플레인을 형성할 수 있다. The cell string (CS21, CS22) may form a second plane.

메모리 블록(BLKa)에서, 각 플레인의 각 높이의 메모리 셀들은 물리 페이지를 형성할 수 있다. In the memory block (BLKa), the memory cells of the respective heights of the plane may form a physical page. 물리 페이지는 메모리 셀들(MC1~MC6)의 쓰기 및 읽기의 단위일 수 있다. Physical pages can be a unit of writing and reading of the memory cells (MC1 ~ MC6). 예를 들어, 스트링 선택 라인들(SSL1a, SSL1b, SSL2a, SSL2b)에 의해 메모리 블록(BLKa)의 하나의 플레인이 선택될 수 있다. For example, a single plane of memory blocks (BLKa) can be selected by the string selection line (SSL1a, SSL1b, SSL2a, SSL2b). 스트링 선택 라인들(SSL1a, SSL1b)이 턴-온 전압이 공급되고 스트링 선택 라인들(SSL2a, SSL2b)에 턴-오프 전압이 공급될 때, 제1 플레인의 셀 스트링들(CS11, CS12)이 비트 라인들(BL1, BL2)에 연결된다. The string selection line (SSL1a, SSL1b) the turn-on voltage is supplied is turned to the string selection line (SSL2a, SSL2b) - When a feed-off voltage, the cell string of the first plane (CS11, CS12) is bit It is coupled to the line (BL1, BL2). 즉, 제1 플레인이 선택된다. In other words, the first plane is selected. 스트링 선택 라인들(SSL2a, SSL2b)에 턴-온 전압이 공급되고 스트링 선택 라인들(SSL1a, SSL1B)에 턴-오프 전압이 공급될 때, 제2 플레인의 셀 스트링들(CS21, CS22)이 비트 라인들(BL1, BL2)에 연결된다. The string selection line (SSL2a, SSL2b) to the turn-on voltage is supplied is turned to the string selection line (SSL1a, SSL1B) - when supplying a turn-off voltage, the cell string of the second plane (CS21, CS22) is bit It is coupled to the line (BL1, BL2). 즉, 제2 플레인이 선택된다. That is, the second plane is selected. 선택된 플레인에서, 워드 라인들(WL1~WL6)에 의해 메모리 셀들(MC)의 하나의 행이 선택될 수 있다. In the selected plane, the one row of memory cells (MC) by word lines (WL1 ~ WL6) may be selected. 선택된 행에서, 제2 워드 라인(WL2)에 선택 전압이 인가되고, 나머지 워드 라인들(WL1, WL3~WL6)에 비선택 전압이 인가될 수 있다. In the selected row, a second selection voltage to a word line (WL2) is applied, and the other word line non-selection voltage to the (WL1, WL3 WL6 ~) can be applied. 즉, 스트링 선택 라인들(SSL1a, SSL1b, SSL2a, SSL2b) 및 워드 라인들(WL1~WL6)의 전압들을 조절함으로써, 제2 플레인의 제2 워드 라인(WL2)에 대응하는 물리 페이지가 선택될 수 있다. That is, string selection lines (SSL1a, SSL1b, SSL2a, SSL2b) and word lines (WL1 ~ WL6) by controlling the voltage of a physical page corresponding to the second word line (WL2) in the second plane can be selected have. 선택된 물리 페이지의 메모리 셀들(MC2)에서, 쓰기 또는 읽기가 수행될 수 있다. In the memory cells (MC2) of the selected physical page it can be done by writing or reading.

메모리 블록(BLKa)에서, 메모리 셀들(MC1~MC6)의 소거는 메모리 블록 단위 또는 서브 블록의 단위로 수행될 수 있다. In the memory block (BLKa), erasure of the memory cells (MC1 ~ MC6) may be performed in units of memory blocks or sub-blocks. 메모리 블록 단위로 소거가 수행될 때, 메모리 블록(BLKa)의 모든 메모리 셀들(MC)이 하나의 소거 요청(예를 들어, 외부의 메모리 컨트롤러로부터의 소거 요청)에 따라 동시에 소거될 수 있다. When the erasing is performed in units of memory blocks, and all of the memory cells (MC) of a memory block (BLKa) can be erased in accordance with one of the erasing request (e. G., An erase request from an external memory controller) at the same time. 서브 블록의 단위로 수행될 때, 메모리 블록(BLKa)의 메모리 셀들(MC1~MC6) 중 일부는 하나의 소거 요청(예를 들어, 외부의 메모리 컨트롤러로부터의 소거 요청)에 따라 동시에 소거되고, 나머지 일부는 소거 금지될 수 있다. When performed in units of sub-block, a part of the memory cells (MC1 ~ MC6) of the memory block (BLKa) is erased in accordance with an erase request (e. G., An erase request from an external memory controller) at the same time, the remaining some may be prohibited deleted. 소거되는 메모리 셀들(MC)에 연결된 워드 라인에 저전압(예를 들어, 접지 전압 또는 접지 전압과 유사한 레벨을 갖는 저전압)이 공급되고, 소거 금지된 메모리 셀들(MC)에 연결된 워드 라인은 플로팅될 수 있다. A low voltage to word lines coupled to memory cells (MC) to be erased (e.g., a low voltage having a similar level to the ground voltage or a ground voltage) is supplied, the word line connected to the erasing forbidden memory cells (MC) can be plotted have.

예시적으로, 메모리 블록(BLKa)은 블록 어드레스에 의해 식별되는 물리적 저장 공간을 포함할 수 있다. Illustratively, the memory block (BLKa) may comprise a physical storage area identified by a block address. 워드 라인들(WL1~WL6) 각각은 행 어드레스에 의해 식별되는 물리적 저장 공간에 대응할 수 있다. Each of the word lines (WL1 ~ WL6) may correspond to the physical storage area identified by the row address. 비트 라인들(BL1, BL2) 각각은 열 어드레스에 의해 식별되는 물리적 저장 공간에 대응할 수 있다. Each of the bit lines (BL1, BL2) may correspond to the physical storage area identified by the column address. 서로 다른 행의 스트링 선택 라인들(SSL1a 및 SSL2a, 또는 SSL1b 및 SSL2b) 각각은 또는 서로 다른 행의 접지 선택 라인들(GSL1 및 GSL2)은 플레인 어드레스에 의해 식별되는 물리적 저장 공간에 대응할 수 있다. In another string selection lines of the other row (SSL1a and SSL2a, or SSL1b and SSL2b) each or one another the ground selection lines of the other row (GSL1 and GSL2) may correspond to the physical storage area identified by the plane address.

도 19에 도시된 메모리 블록(BLKa)은 예시적인 것이다. A memory block (BLKa) shown in Figure 19 is exemplary. 본 발명의 기술적 사상은 도 19에 도시된 메모리 블록(BLKa)에 한정되지 않는다. Are not the spirit of the present invention is limited to the memory block (BLKa) shown in Fig. 예를 들어, 셀 스트링들의 행들의 수는 증가 또는 감소될 수 있다. For example, the number of rows of cells of the string may be increased or decreased. 셀 스트링들의 행들의 수가 변경됨에 따라, 셀 스트링들의 행들에 연결되는 스트링 선택 라인들 또는 접지 선택 라인의 수, 그리고 하나의 비트 라인에 연결되는 셀 스트링들의 수 또한 변경될 수 있다. The number of rows of cell strings in accordance with the changes, the number of cell strings connected to the string selection coupled to the rows of cell string lines or the number of ground selection lines, and one bit line can also be changed.

셀 스트링들의 열들의 수는 증가 또는 감소될 수 있다. The number of columns of the cell strings can be increased or decreased. 셀 스트링들의 열들의 수가 변경됨에 따라, 셀 스트링들의 열들에 연결되는 비트 라인들의 수, 그리고 하나의 스트링 선택 라인에 연결되는 셀 스트링들의 수 또한 변경될 수 있다. The number of columns of cell strings in accordance with the changes, the number of bit lines coupled to the columns of the cell string, and the number of cell strings coupled to a string selection line can also be changed.

셀 스트링들의 높이는 증가 또는 감소될 수 있다. The height of the cell strings can be increased or decreased. 예를 들어, 셀 스트링들 각각에 적층되는 접지 선택 트랜지스터들, 메모리 셀들 또는 스트링 선택 트랜지스터들의 수는 증가 또는 감소될 수 있다. For example, the number of the ground selection transistor to be laminated to each of the cell strings, the memory cells or the string selection transistors may be increased or decreased.

예시적으로, 하나의 물리 페이지에 속한 메모리 셀들(MC)은 적어도 세 개의 논리 페이지들에 대응할 수 있다. Illustratively, the memory cells (MC) belonging to a single physical page may correspond to at least three logical page. 예를 들어, 하나의 메모리 셀(MC)에 k 개(k는 2보다 큰 양의 정수)의 비트들이 프로그램될 수 있다. For example, in one of the memory cells (MC) are bits of the k (k is a positive integer greater than 2) can be programmed. 하나의 물리 페이지에 속한 메모리 셀들(MC)에서, 각 메모리 셀(MC)에 프로그램되는 k 개의 비트들은 각각 k 개의 논리 페이지들을 형성할 수 있다. In the memory cells (MC) belonging to one physical page, k bits of the program on the memory cells (MC) are able to form a k number of logical pages, respectively.

예를 들어, 하나의 물리 페이지는 블록 어드레스, 행 어드레스, 열 어드레스 및 플레인 어드레스에 의해 식별되는 물리적 저장 공간을 포함한다. For example, one physical page is a physical storage area identified by a block address, row address, column address and plane address. 하나의 물리 페이지는 둘 이상의 논리 페이지들을 포함할 수 있다. One physical page can include more than one logical page. 논리 페이지들 각각은 물리 페이지의 어드레스에 더하여 논리 페이지들을 식별하는 추가 어드레스(또는 오프셋)에 의해 식별되는 논리적 저장 공간을 포함할 수 있다. Each of the logical page may include a logical storage space identified by the additional address (or offset) for identifying a logical page in addition to the address of the physical page.

본 발명의 기술적 사상에 따른 일 예로서, 3차원 메모리 어레이가 제공된다. In one example according to the technical features of the present invention, there is provided a three-dimensional memory array. 3차원 메모리 어레이는, 실리콘 기판 및 메모리 셀들의 동작에 연관된 회로의 위에 배치되는 활성 영역을 갖는 메모리 셀들의 어레이들의 하나 또는 그 이상의 물리 레벨들에 획일적으로(monolithically) 형성될 수 있다. Three-dimensional memory array may be formed as a monolithic (monolithically) to one or more of the physical levels of the array of memory cells having an active region disposed on the circuit associated with the operation of the silicon substrate, and the memory cell. 메모리 셀들의 동작에 연관된 회로는 기판 내에 또는 기판 위에 위치할 수 있다. Circuit related to the operation of the memory cells may be located in or on the substrate in the substrate. 획일적으로 형성되는 것은, 3차원 어레이의 각 레벨의 레이어들이 3차원 어레이의 하위 레벨의 레이어들 위에 직접 증착됨을 의미한다. It is formed as a monolithic, meaning that each level of the layer of three-dimensional arrays are deposited directly on top of the lower-level layer of the three-dimensional array.

본 발명의 기술적 사상에 따른 일 예로서, 3차원 메모리 어레이는 수직의 방향성을 가져, 적어도 하나의 메모리 셀이 다른 하나의 메모리 셀 위에 위치하는 수직 NAND 스트링들을 포함한다. In one example according to the technical features of the present invention, three-dimensional memory array includes a vertical NAND string get in the vertical direction, at least one memory cell is located on the other one of the memory cells. 적어도 하나의 메모리 셀은 전하 포획 레이어를 포함한다. At least one memory cell includes a charge trapping layer. 각 수직 NAND 스트링은 메모리 셀들 위에 위치하는 적어도 하나의 선택 트랜지스터를 더 포함한다. Each vertical NAND string further comprises at least one selection transistor that is formed on memory cells. 적어도 하나의 선택 트랜지스터는 메모리 셀들과 동일한 구조를 갖고, 메모리 셀들과 함께 획일적으로 형성된다. At least one select transistor has the same structure as the memory cells, are formed in a monolithic with the memory cells.

3차원 메모리 어레이가 복수의 레벨들로 구성되고, 레벨들 사이에서 워드 라인들 또는 비트 라인들이 공유되는 구성은 미국등록특허공보 제7,679,133호, 미국등록특허공보 제8,553,466호, 미국등록특허공보 제8,654,587호, 미국등록특허공보 제8,559,235호, 그리고 미국공개특허공보 제2011/0233648호에 개시되어 있으며, 본 발명의 레퍼런스로 포함된다. Three-dimensional memory array is composed of a plurality of levels, configuration in which the word lines or bit lines to be shared among the levels are U.S. Patent No. 7,679,133 No., U.S. Patent No. 8,553,466 No., U.S. Patent No. 8,654,587 No., U.S. Patent No. 8,559,235 No. and is disclosed in US-a-No. 2011/0233648, hereby incorporated by reference in the present invention.

도 20은 본 발명의 실시 예에 따른 컴퓨팅 장치(1000)를 보여주는 블록도이다. 20 is a block diagram illustrating a computing device 1000 according to an embodiment of the invention. 도 20을 참조하면, 컴퓨팅 장치(1000)는 프로세서(1100), 메모리(1200), 스토리지 장치(1300), 모뎀(1400), 그리고 사용자 인터페이스(1500)를 포함한다. Referring to Figure 20, the computing device 1000 includes a processor 1100, memory 1200, storage device 1300, a modem 1400, and a user interface (1500).

프로세서(1100)는 컴퓨팅 장치(1000)의 제반 동작을 제어하고, 논리 연산을 수행할 수 있다. Processor 1100, may control the overall operation of the computing device 1000, and performs a logic operation. 프로세서(1100)는 코드 또는 프로그램에 포함된 명령으로 표현되는 동작들을 실행하도록 물리적으로 구성된 회로를 포함하는 하드웨어 기반의 데이터 프로세싱 장치일 수 있다. Processor 1100 can be hardware-based data processing apparatus comprising a circuit configured to physically execute the operations represented by the instructions contained in the code or program. 예를 들어, 프로세서(1100)는 시스템-온-칩(SoC, System-on-Chip)으로 구성될 수 있다. For example, the processor 1100 includes a system may be configured in a chip (SoC, System-on-Chip) - one. 프로세서(1100)는 범용 프로세서, 특수 목적 프로세서 또는 어플리케이션 프로세서일 수 있다. Processor 1100 may be a general purpose processor, a special purpose processor or an application processor.

RAM (1200)은 프로세서(1100)와 통신할 수 있다. RAM (1200) may communicate with the processor 1100. RAM (1200)은 프로세서(1100) 또는 컴퓨팅 장치(1000)의 메인 메모리일 수 있다. RAM (1200) may be a main memory of the processor 1100 or the computing device 1000. 프로세서(1100)는 RAM (1200)에 코드 또는 데이터를 임시로 저장할 수 있다. Processor 1100 may also store the code or data in the RAM (1200) temporarily. 프로세서(1100)는 RAM (1200)을 이용하여 코드를 실행하고, 데이터를 처리할 수 있다. Processor 1100 may execute code using a RAM (1200), it processes the data. 프로세서(1100)는 RAM (1200)을 이용하여 운영체제, 어플리케이션과 같은 다양한 소프트웨어들을 실행할 수 있다. Processor 1100 may execute a variety of software such as operating systems, application by using a RAM (1200). 프로세서(1100)는 RAM (1200)을 이용하여 컴퓨팅 장치(1000)의 제반 동작을 제어할 수 있다. Processor 1100, may control the overall operation of the computing device 1000 by using the RAM (1200). RAM (1200)은 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등과 같은 휘발성 메모리, 또는 PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FeRAM (Ferroelectric RAM) 등과 같은 불휘발성 메모리 장치를 포함할 수 있다. RAM (1200) is a SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM volatile memory, or a PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), such as (Synchronous DRAM), FeRAM ( It may include a nonvolatile memory device such as a Ferroelectric RAM).

스토리지 장치(1300)는 프로세서(1100)와 통신할 수 있다. Storage device 1300 may communicate with the processor 1100. 스토리지 장치(1300)는 장기적으로 보존되어야 하는 데이터를 저장할 수 있다. Storage device 1300 may store data to be preserved in the long term. 즉, 프로세서(1100)는 장기적으로 보존되어야 하는 데이터를 스토리지 장치(1300)에 저장할 수 있다. That is, the processor 1100 may store data to be long-term preservation in the storage apparatus 1300. 스토리지 장치(1300)는 컴퓨팅 장치(1000)를 구동하기 위한 부트 이미지를 저장할 수 있다. Storage device 1300 may store a boot image for driving the computing device 1000. 스토리지 장치(1300)는 운영체제, 어플리케이션과 같은 다양한 소프트웨어들의 소스 코드들을 저장할 수 있다. Storage device 1300 may store the source code of a variety of software such as operating systems and applications. 스토리지 장치(1300)는 운영체제, 어플리케이션과 같은 다양한 소프트웨어들에 의해 처리된 데이터를 저장할 수 있다. Storage device 1300 may store data processed by the various software such as operating systems, application.

예시적으로, 프로세서(1100)는 스토리지 장치(1300)에 저장된 소스 코드들을 RAM (1200)에 로드하고, RAM (1200)에 로드된 코드들을 실행함으로써, 운영체제, 어플리케이션과 같은 다양한 소프트웨어들을 구동할 수 있다. Illustratively, the processor 1100 by loading the stored source code on the storage device 1300 to the RAM (1200), and execute the code loaded into the RAM (1200), the operating system, to drive a variety of software such as application have. 프로세서(1100)는 스토리지 장치(1300)에 저장된 데이터를 RAM (1200)에 로드하고, RAM (1200)에 로드된 데이터를 처리할 수 있다. Processor 1100 may load the data stored in the storage device 1300 to the RAM (1200), and processes the data loaded in the RAM (1200). 프로세서(1100)는 RAM (1200)에 저장된 데이터 중 장기적으로 보존하고자 하는 데이터를 스토리지 장치(1300)에 저장할 수 있다. Processor 1100 can store data to be long-term preservation of the data stored in the RAM (1200) to the storage apparatus 1300.

스토리지 장치(1300)는 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등과 같은 불휘발성 메모리 장치를 포함할 수 있다. Storage device 1300 may include volatile memory devices such as flash memory, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM).

모뎀(1400)은 프로세서(1100)의 제어에 따라 외부 장치와 통신을 수행할 수 있다. Modem 1400 may perform communication with the external device under the control of the processor 1100. 예를 들어, 모뎀(1400)은 외부 장치와 유선 또는 무선 통신을 수행할 수 있다. For example, modem 1400 can be performed with an external device either wired or wireless communication. 모뎀(140)은 LTE (Long Term Evolution), 와이맥스(WiMax), GSM (Global System for Mobile communication), CDMA (Code Division Multiple Access), 블루투스(Bluetooth), NFC (Near Field Communication), 와이파이(WiFi), RFID (Radio Frequency IDentification) 등과 같은 다양한 무선 통신 방식들, 또는 USB (Universal Serial Bus), SATA (Serial AT Attachment), HSIC (High Speed Interchip), SCSI (Small Computer System Interface), 파이어와이어(Firewire), PCI (Peripheral Component Interconnection), PCIe (PCI express), NVMe (NonVolatile Memory express), UFS (Universal Flash Storage), SD (Secure Digital), SDIO, UART (Universal Asynchronous Receiver Transmitter), SPI (Serial Peripheral Interface), HS-SPI (High Speed SPI), RS232, I2C (Inter-integrated Circuit), HS-I2C, I2S, (Integrated-interchip Sound), S/PDIF (Sony/Philips Digital Interface), MMC (MultiMedia Card), eMMC (embedded MMC) 등과 같은 다양한 유선 통신 방식들 중 적어도 하나에 기반하여 통신 Modem 140 is LTE (Long Term Evolution), WiMax (WiMax), GSM (Global System for Mobile communication), (Code Division Multiple Access), CDMA, Bluetooth (Bluetooth), (Near Field Communication), NFC, Wi-Fi (WiFi) , RFID (radio Frequency IDentification), various wireless communication schemes, or USB (Universal Serial Bus), SATA (Serial AT Attachment), HSIC (High Speed ​​Interchip), SCSI (Small Computer system Interface), such as, Firewire (Firewire) , PCI (Peripheral Component Interconnection), PCIe (PCI express), NVMe (nonVolatile Memory express), UFS (Universal Flash Storage), SD (Secure Digital), SDIO, UART (Universal Asynchronous Receiver Transmitter), SPI (Serial Peripheral Interface) , HS-SPI (High Speed ​​SPI), RS232, I2C (Inter-integrated Circuit), HS-I2C, I2S, (Integrated-interchip Sound), S / PDIF (Sony / Philips Digital Interface), MMC (MultiMedia Card), eMMC (embedded MMC) various wired communication method of the communication based on at least one, such as 을 수행할 수 있다. The can be performed.

사용자 인터페이스(1500)는 프로세서(1100)의 제어에 따라 사용자와 통신할 수 있다. User interface 1500 may communicate with the user in response to the control of the processor 1100. 예를 들어, 사용자 인터페이스(1500)는 키보드, 키패드, 버튼, 터치 패널, 터치 스크린, 터치 패드, 터치 볼, 카메라, 마이크, 자이로스코프 센서, 진동 센서, 등과 같은 사용자 입력 인터페이스들을 포함할 수 있다. For example, the user interface 1500 may include a user input interface such as a keyboard, keypad, button, touch panel, touch screen, touch pad, touch the ball, a camera, a microphone, a gyroscope sensor, a vibration sensor. 사용자 인터페이스(150)는 LCD (Liquid Crystal Display), OLED (Organic Light Emitting Diode) 표시 장치, AMOLED (Active Matrix OLED) 표시 장치, LED, 스피커, 모터 등과 같은 사용자 출력 인터페이스들을 포함할 수 있다. User interface 150 may include a user output interface such as a LCD (Liquid Crystal Display), OLED (Organic Light Emitting Diode) display device, AMOLED (Active Matrix OLED) display device, LED, speaker, motor.

스토리지 장치(1300)는 본 발명의 실시 예에 따른 스토리지 장치(100)를 포함할 수 있다. Storage device 1300 may include a storage device 100 in accordance with an embodiment of the present invention. 프로세서(1100), RAM (1200), 모뎀(1400), 그리고 사용자 인터페이스(1500)는 스토리지 장치(1300)와 통신하는 호스트 장치를 형성할 수 있다. A processor (1100), RAM (1200), a modem 1400, and the user interface 1500 may form a host device in communication with the storage device 1300.

본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. The invention has been shown and described with respect to specific embodiments, various modifications are possible within the limits that do not depart from the scope and spirit of the present invention. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다. While the invention will be defined by the appended claims and equivalents of the invention as well as the claims below should not jeonghaejyeoseo limited to the embodiments described above ones.

100; 100; 스토리지 장치 110; A storage device 110; 불휘발성 메모리 장치 The non-volatile memory device
111; 111; 메모리 셀 어레이 113; The memory cell array 113; 행 디코더 회로 Row decoder circuit
115; 115; 페이지 버퍼 회로 117; The page buffer circuit 117; 데이터 입출력 회로 Data input
119; 119; 제어 로직 회로 120; The control logic circuit 120; 컨트롤러 controller
121; 121; 버스 122; Bus 122; 프로세서 Processor
123; 123; 랜덤 액세스 메모리 125; Random access memory 125; 호스트 인터페이스 Host Interface
127; 127; 메모리 인터페이스 128; A memory interface 128; 에러 정정 블록 The error correction block
1000; 1000; 컴퓨팅 장치 1100; Computing device 1100; 프로세서 Processor
1200; 1200; 랜덤 액세스 메모리 1300; A random access memory 1300; 스토리지 장치 Storage devices
1400; 1400; 모뎀 1500; Modem 1500; 사용자 인터페이스 The user interface

Claims (10)

  1. 불휘발성 메모리 장치; The non-volatile memory device; 그리고 And
    외부의 호스트 장치로부터 논리 어드레스들에 기반한 읽기 요청을 수신하고, 상기 논리 어드레스들을 상기 불휘발성 메모리 장치의 물리 어드레스들로 변환하고, 그리고 상기 변환된 물리 어드레스들에 기반하여 상기 불휘발성 메모리 장치에 읽기 동작을 수행하도록 구성되는 컨트롤러를 포함하고, Receiving a read request based on the logical address from the external host apparatus, and, based on the conversion to physical address, and the physical address of the conversion of the non-volatile memory device of the logical address to read the non-volatile memory device a controller configured to perform the operation, and
    상기 컨트롤러는 상기 논리 어드레스들에 대응하는 세그먼트를 포함하는 맵 데이터(map data)를 읽고, 상기 세그먼트가 순차 데이터에 대응하면 상기 세그먼트가 순차 데이터에 대응함을 가리키는 캐시 맵 데이터(cache map data)를 내부 RAM에 저장하고, 상기 세그먼트가 순차 데이터가 아니면 상기 맵 데이터 중에서 상기 논리 어드레스들 및 상기 물리 어드레스들과 연관된 부분 맵 데이터(partial map data)를 상기 내부 RAM에 저장하도록 구성되는 스토리지 장치. It said controller is internal to the map data cache map data (cache map data) read (map data), when the segment corresponding to the sequential data is the segment that points to corresponding to the sequential data including the segments corresponding to the logical address stored in the RAM, and the storage device is the segment is not a sequential data configured to store a portion of the map data (partial map data) associated with said logical address and the physical address from among the map data in the internal RAM.
  2. 제1 항에 있어서, According to claim 1,
    상기 캐시 맵 데이터는 상기 세그먼트의 시작 물리 어드레스 및 상기 시작 물리 어드레스와 연관된 시작 논리 어드레스에 대한 정보를 포함하는 스토리지 장치. The cache map data storage device that contains information about the starting logical addresses associated with the start physical address and the start physical address of the segment.
  3. 제1 항에 있어서, According to claim 1,
    상기 논리 어드레스들에 대응하는 캐시 맵 데이터가 상기 내부 RAM에 저장되어 있으면, 상기 컨트롤러는 상기 내부 RAM에 저장된 상기 캐시 맵 데이터를 이용하여 상기 논리 어드레스들을 상기 물리 어드레스들로 변환하도록 구성되는 스토리지 장치. If the cache map data corresponding to the logical address is stored in the internal RAM, the controller storage unit, configured to convert the logical address into the physical address using the cache map data stored in the internal RAM.
  4. 제1 항에 있어서, According to claim 1,
    상기 컨트롤러는 상기 논리 어드레스들에 대응하는 제1 세그먼트가 순차 데이터에 대응하면 상기 제1 세그먼트가 순차 데이터에 대응함을 가리키는 캐시 맵 데이터를 상기 내부 RAM에 저장하고, 상기 제1 세그먼트가 순차 데이터에 대응하지 않고 그리고 상기 논리 어드레스들에 대응하며 상기 제1 세그먼트보다 작은 제2 세그먼트가 순차 데이터에 대응하면 상기 제2 세그먼트가 순차 데이터에 대응함을 가리키는 캐시 맵 데이터를 상기 내부 RAM에 저장하도록 구성되는 스토리지 장치. It said controller is corresponding the first segment when corresponding to the sequential data of the first segment is stored in the cache map data that points to the corresponding to the sequential data to the internal RAM, and the first segment corresponding to the logical address into the sequential data If not, without and corresponding to the logical address, and a small second segment than said first segment corresponding to the sequential data storage device and the second segment is configured to store a cache map data that points to the corresponding to the sequential data in the internal RAM .
  5. 제1 항에 있어서, According to claim 1,
    상기 세그먼트는 복수의 엔트리들을 포함하고, The segment includes a plurality of entries,
    각 엔트리는 하나의 논리 어드레스 및 하나의 물리 어드레스 사이의 변환 정보를 포함하는 스토리지 장치. Each entry in the storage device including an information conversion between a logical address and a physical address.
  6. 제5 항에 있어서, 6. The method of claim 5,
    상기 캐시 맵 데이터는 상기 세그먼트의 시작 엔트리를 포함하고, The cache map data contains the start entry of the segment,
    상기 부분 맵 데이터는 상기 논리 어드레스들에 대응하는 엔트리들을 포함하는 스토리지 장치. The partial map data storage device comprising an entry corresponding to the logical address.
  7. 제5 항에 있어서, 6. The method of claim 5,
    상기 시작 엔트리는 상기 세그먼트가 순차 데이터에 대응하는지를 가리키는 캐시 태그를 더 포함하는 스토리지 장치. The start entry storage device further comprising: a cache tag indicating whether the segment corresponds to the sequence data.
  8. 제1 항에 있어서, According to claim 1,
    상기 불휘발성 메모리 장치는 복수의 메모리 블록들을 포함하고, The nonvolatile memory device includes a plurality of memory blocks,
    상기 복수의 메모리 블록들 각각은 기판 위에 배열되는 복수의 셀 스트링들을 포함하고, Each of the plurality of memory blocks including a plurality of cell strings are arranged on a substrate,
    상기 복수의 셀 스트링들 각각은 상기 기판 위에서 상기 기판과 수직한 방향으로 적층되는 적어도 하나의 선택 트랜지스터 및 복수의 메모리 셀들을 포함하고, Each of the plurality of cell strings comprises at least one selection transistor and a plurality of memory cells that are laminated on the substrate in the substrate normal to the direction,
    상기 적어도 하나의 선택 트랜지스터 및 상기 복수의 메모리 셀들 각각은 전하 포획막을 포함하는 스토리지 장치. Each of the at least one selection transistor and the plurality of memory cells has a storage device including a charge trap film.
  9. 불휘발성 메모리 장치; The non-volatile memory device; 그리고 And
    외부의 호스트 장치로부터 논리 어드레스들에 기반한 쓰기 요청을 수신하고, 상기 논리 어드레스들을 상기 불휘발성 메모리 장치의 물리 어드레스들로 변환하고, 그리고 상기 변환된 물리 어드레스들에 기반하여 상기 불휘발성 메모리 장치에 쓰기 동작을 수행하도록 구성되는 컨트롤러를 포함하고, Receiving a write request based on the logical address from the external host apparatus, and converted to physical addresses of the nonvolatile memory device of the logical address, and, and based on the physical address the converted write to said non-volatile memory device a controller configured to perform the operation, and
    상기 컨트롤러는 상기 논리 어드레스들 및 상기 물리 어드레스들 사이의 변환 정보를 포함하는 맵 데이터(map data)를 생성하고, 상기 논리 어드레스들이 연속인 범위가 세그먼트 이상이면 상기 세그먼트가 순차 데이터에 대응함을 가리키는 캐시 맵 데이터(cache map data)를 내부 RAM에 저장하고, 상기 논리 어드레스들이 연속인 범위가 세그먼트 이하이면, 상기 생성된 맵 데이터를 부분 맵 데이터(partial map data)로서 상기 내부 RAM에 저장하고, 그리고 상기 생성된 맵 데이터 및 상기 쓰기 요청에 따른 쓰기 데이터를 상기 불휘발성 메모리 장치에 기입하도록 구성되는 스토리지 장치. Said controller is a cache points to generate a map data (map data) that contains the conversion information between said logical addresses and the physical addresses, and wherein the logical addresses are continuous in the range when the segment over which the segments corresponding to the sequence data a map data (cache map data) stored in the internal RAM, and the logical address that is continuous in a range, the segment below, the the map data generating section maps data (partial map data) stored in the internal RAM, and the the generated map data and a storage device configured to write the write data according to the write request in the nonvolatile memory device.
  10. 제9 항에 있어서, 10. The method of claim 9,
    상기 외부의 호스트 장치로부터 상기 세그먼트에 대응하는 논리 어드레스들에 기반한 읽기 요청이 수신되면, 상기 컨트롤러는 상기 캐시 맵 데이터를 이용하여 상기 논리 어드레스들을 상기 물리 어드레스들로 변환하도록 구성되는 스토리지 장치. If from the external host device receives a read request based on the logical address corresponding to the segment, wherein the storage controller is configured to convert the logical address by using the cache map data into the physical address.
KR20150090056A 2015-06-24 2015-06-24 Storage device including nonvolatile memory device KR20170000914A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20150090056A KR20170000914A (en) 2015-06-24 2015-06-24 Storage device including nonvolatile memory device

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR20150090056A KR20170000914A (en) 2015-06-24 2015-06-24 Storage device including nonvolatile memory device
US15083524 US9875038B2 (en) 2015-06-24 2016-03-29 Storage device including nonvolatile memory device
CN 201610389748 CN106294215A (en) 2015-06-24 2016-06-03 Storage device and method of operating the same

Publications (1)

Publication Number Publication Date
KR20170000914A true true KR20170000914A (en) 2017-01-04

Family

ID=57600929

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20150090056A KR20170000914A (en) 2015-06-24 2015-06-24 Storage device including nonvolatile memory device

Country Status (3)

Country Link
US (1) US9875038B2 (en)
KR (1) KR20170000914A (en)
CN (1) CN106294215A (en)

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06314233A (en) 1993-04-30 1994-11-08 Kawasaki Steel Corp Memory device
US6098150A (en) 1995-11-17 2000-08-01 Sun Microsystems, Inc. Method and apparatus for fetching information from a cache memory
JPH10105466A (en) 1996-09-30 1998-04-24 Nec Corp Cache memory control method for disk device
JPH11143644A (en) 1997-11-11 1999-05-28 Sony Corp Reproducing device and cache processing method
US6961804B2 (en) 2001-07-20 2005-11-01 International Business Machines Corporation Flexible techniques for associating cache memories with processors and main memory
US7051184B2 (en) 2003-05-06 2006-05-23 Sun Microsystems, Inc. Method and apparatus for mapping memory addresses to corresponding cache entries
JP4356686B2 (en) 2005-12-01 2009-11-04 ソニー株式会社 Memory device and memory control method
KR101226685B1 (en) 2007-11-08 2013-01-25 삼성전자주식회사 Vertical type semiconductor device and Method of manufacturing the same
US8386698B2 (en) 2008-07-08 2013-02-26 Phison Electronics Corp. Data accessing method for flash memory and storage system and controller using the same
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
KR101682666B1 (en) 2010-08-11 2016-12-07 삼성전자주식회사 Nonvolatile memory devicwe, channel boosting method thereof, programming method thereof, and memory system having the same
KR101691092B1 (en) 2010-08-26 2016-12-30 삼성전자주식회사 Nonvolatile memory device, operating method thereof and memory system including the same
KR101226600B1 (en) 2011-03-09 2013-01-28 주식회사 이에프텍 Memory System And Memory Mapping Method thereof
US9542306B2 (en) 2013-03-13 2017-01-10 Seagate Technology Llc Dynamic storage device provisioning
US9575844B2 (en) 2013-03-15 2017-02-21 Skyera, Llc Mass storage device and method of operating the same to back up data stored in volatile memory
KR20150057068A (en) * 2013-11-18 2015-05-28 에스케이하이닉스 주식회사 Data storage device and operating method thereof

Also Published As

Publication number Publication date Type
CN106294215A (en) 2017-01-04 application
US20160378359A1 (en) 2016-12-29 application
US9875038B2 (en) 2018-01-23 grant

Similar Documents

Publication Publication Date Title
US20090248952A1 (en) Data conditioning to improve flash memory reliability
US20090300269A1 (en) Hybrid memory management
US20060044934A1 (en) Cluster based non-volatile memory translation layer
US20120151124A1 (en) Non-Volatile Memory Device, Devices Having the Same, and Method of Operating the Same
US20120005415A1 (en) Memory system selecting write mode of data block and data write method thereof
US20130166825A1 (en) Method Of Controlling Non-Volatile Memory, Non-Volatile Memory Controller Therefor, And Memory System Including The Same
US20100185802A1 (en) Solid state memory formatting
US7193923B2 (en) Semiconductor memory device and access method and memory control system for same
US20120226887A1 (en) Logical address translation
US20140281174A1 (en) Non-volatile multi-level cell memory system and method of performing adaptive data back-up in the system
US20120066438A1 (en) Non-volatile memory device, operation method thereof, and device having the same
US20150332780A1 (en) Storage device, operating method of storage device and method of accessing storage device
US20100095084A1 (en) Translation layer in a solid state storage device
US20130080689A1 (en) Data storage device and related data management method
US20100268869A1 (en) Memory system comprising nonvolatile memory device and controller
US20140237169A1 (en) Hot memory block table in a solid state storage device
US20150228352A1 (en) Semiconductor memory device and memory system including the same
US9190151B2 (en) Three-dimensional nonvolatile memory and related read method designed to reduce read disturbance
US20140101373A1 (en) Method of managing data storage device and data storage device
US20130077399A1 (en) System, semiconductor memory device and operating method thereof
US20170068621A1 (en) Memory system and information processing system
US20150277795A1 (en) Method of operating memory system including nonvolatile memory and memory controller
CN101097543A (en) Memory system with nonvolatile semiconductor memory
US20160225454A1 (en) Nonvolatile memory device and a method of operating the nonvolatile memory device
US20150347296A1 (en) Prioritizing Garbage Collection and Block Allocation Based on I/O History for Logical Address Regions