KR20160065659A - Memory controller, system including the same, and method thereof - Google Patents

Memory controller, system including the same, and method thereof Download PDF

Info

Publication number
KR20160065659A
KR20160065659A KR1020140169927A KR20140169927A KR20160065659A KR 20160065659 A KR20160065659 A KR 20160065659A KR 1020140169927 A KR1020140169927 A KR 1020140169927A KR 20140169927 A KR20140169927 A KR 20140169927A KR 20160065659 A KR20160065659 A KR 20160065659A
Authority
KR
South Korea
Prior art keywords
address
key value
summary information
storage area
stored
Prior art date
Application number
KR1020140169927A
Other languages
Korean (ko)
Inventor
정재욱
권훈기
Original Assignee
주식회사 티엘아이
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 티엘아이 filed Critical 주식회사 티엘아이
Priority to KR1020140169927A priority Critical patent/KR20160065659A/en
Publication of KR20160065659A publication Critical patent/KR20160065659A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing or allocation; Relocation with look ahead addressing means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Disclosed are a memory controller, a system comprising the same, and an operation method thereof. According to an embodiment of the present invention, the operation method of a data storing device comprises: a step of storing write data in a storing area of a memory device, wherein the write data is transmitted from a host; a step of generating summarized information of the storing area, including a write data address and an address key value; and a step of storing the summarized information in a memory which is separated from the memory device. According to the present invention, overall performance of a data storing device may be improved.

Description

메모리 컨트롤러, 이를 포함하는 시스템, 및 이의 동작 방법{MEMORY CONTROLLER, SYSTEM INCLUDING THE SAME, AND METHOD THEREOF}[0001] MEMORY CONTROLLER, SYSTEM INCLUDING THE SAME, AND METHOD THEREOF [0002]

아래 실시예들은 메모리 컨트롤러, 이를 포함하는 시스템, 및 이의 동작 방법에 관한 것이다.The following embodiments relate to a memory controller, a system including the same, and a method of operation thereof.

플래시 메모리 장치의 맵핑 방법은 페이지 단위로 맵핑하는 페이지 맵핑 방법, 블록 단위를 기준으로 하는 블록 맵핑 방법, 및 페이지 맵핑 방법과 블록 맵핑 방법의 장점을 취한 하이브리드 맵핑 방법이 있다.The flash memory device mapping method includes a page mapping method of mapping page units, a block mapping method of block units, and a hybrid mapping method of taking advantages of page mapping method and block mapping method.

페이지 맵핑 방법의 경우 쓰기의 가장 작은 단위인 페이지를 기준으로 하여 맵핑하기 때문에, 플래시 메모리 장치의 저장 공간이 클수록 맵 테이블의 크기가 커지게 되고, 맵 테이블을 관리하는 DRAM의 저장 공간 또한 늘어나야 하는 문제점을 가지고 있다.In the case of the page mapping method, since the mapping is performed based on the page which is the smallest unit of writing, the size of the map table becomes larger as the storage space of the flash memory device becomes larger, and the storage space of the DRAM managing the map table also needs to be increased Lt; / RTI >

블록 맵핑 방법은 맵 테이블의 크기를 줄이기 위해 페이지를 단위 블록을 기준으로 맵 테이블을 만드는 것으로, 맵 테이블의 크기를 줄일 수 있지만, 저장 공간의 효율성이 떨어지며, 삭제 연산이 많이 일어난다는 문제점이 있다.In order to reduce the size of the map table, the block mapping method creates a map table based on a unit block, thereby reducing the size of the map table. However, the efficiency of the storage space is reduced and a lot of delete operations occur.

하이브리드 맵핑 방법은 BAST(Block Associative Sector Translation), FAST(Fully Associative Sector Translation), 및 DFTL(Demand-based FTL)을 포함한다.Hybrid mapping methods include Block Associative Sector Translation (BAST), Fully Associative Sector Translation (FAST), and Demand-based FTL (DFTL).

BAST는 로그 블록이 제한적인 LBA(logical block address)만을 수용가능하므로 무작위 쓰기 요청에 대해서는 로그 블록이 변경될 때마다 가비지 컬렉션을 수행해햐하는 오버헤드가 존재한다.Since BAST can only accept logical block addresses (LBAs) with limited log blocks, there is an overhead to perform garbage collection every time a log block is changed for random write requests.

FAST는 무작위 쓰기 요청에 대한 BAST의 단점을 보완하기 위해 랜덤 로그 블록을 관리하지만 경우에 따라 랜덤 로그 블록을 데이터 블록으로 전화하기 위한 가비지 컬렉션 비용이 매우 많이 소요되는 오버헤드가 존재한다.FAST manages a random log block to compensate for the disadvantage of BAST for random write requests, but there is an overhead in which garbage collection cost for calling a random log block into a data block is very high.

DFTL은 FAST의 단점을 보완하기 위해 전체 페이지 사상 기법을 적용하여 자주 참조되는 CMT(Cached Mapping Table)을 램에 올려두고 사용하고 나머지는 GMT(Global Mapping Table) 형태로 낸드 플래시에 저장한다. 모든 읽기/쓰기 요청에 대하여 DFTL은 CMT를 검색하여 해당 LBA가 매디외더 있는지 검색해야 하며, CMT에 없을 경우에는 GMT를 읽어와 매핑 정보를 참조해야 한다.To compensate for the shortcomings of FAST, the DFTL uses a full page mapping technique to store frequently referenced CMT (Cached Mapping Table) on the RAM and the rest in NAND flash in GMT (Global Mapping Table) format. For all read / write requests, the DFTL must search the CMT to find out if the LBA is a mordi extender. If it is not in the CMT, it must read the GMT and reference the mapping information.

DFTL은 CMT를 순차 검색해야 하므로 CMT의 크기가 클수록 검색비용이 증가하는 단점을 가지고 있으며, 또한 로컬리티에 대한 고려가 없기 때문에 순차쓰기 패턴에 취약한 단점이 존재한다.Since the DFTL needs to sequentially search for CMTs, the larger the size of the CMT, the disadvantage is that the search cost increases. Also, since there is no consideration of locality, there is a drawback that it is vulnerable to the sequential write pattern.

실시예들은 데이터 저장 장치의 저장 영역에 대한 요약 정보를 생성하고, 이를 활용함으로써, 쓰기 요청, 예를 들어 무작위 쓰기 요청 또는 순차 쓰기 요청에 대한 오버헤드를 제거하고, 상기 데이터 저장 장치의 전체적인 성능을 향상하는 기술을 제공할 수 있다.Embodiments create and utilize summary information for a storage area of a data storage device, thereby eliminating the overhead of a write request, e.g., a random write request or a sequential write request, and the overall performance of the data storage device Can be provided.

또한, 실시예들은 해쉬 함수를 통해 읽기 요청에 포함된 어드레스로부터 키 값을 추출하여 데이터 저장 장치의 저장 영역에 대한 요약 정보에 포함된 적어도 하나의 키 값과 비교함으로써, 상기 데이터 저장 장치의 상기 어드레스에 대응하는 데이터 검색 시간을 단축하고, 상기 데이터 저장 장치의 전체적인 성능을 향상하는 기술을 제공할 수 있다.Embodiments may also be configured such that by extracting a key value from an address included in a read request via a hash function and comparing the key value with at least one key value included in the summary information for the storage area of the data storage device, The present invention can provide a technique for shortening the data retrieval time corresponding to the data storage device and improving the overall performance of the data storage device.

일 실시예에 따른 데이터 저장 장치의 동작 방법은 호스트로부터 전송된 라이트 데이터를 메모리 장치의 저장 영역에 저장하는 단계와, 상기 라이트 데이터의 어드레스와 상기 어드레스의 키 값을 포함하는 상기 저장 영역에 대한 요약 정보를 생성하는 단계와, 상기 요약 정보를 상기 메모리 장치와 분리된 메모리에 저장하는 단계를 포함할 수 있다.A method of operating a data storage device according to an exemplary embodiment of the present invention includes the steps of storing write data transmitted from a host in a storage area of a memory device and generating a summary of the storage area including the address of the write data and the key value of the address Generating information; and storing the summary information in a memory separate from the memory device.

상기 생성하는 단계는 해쉬 함수를 통해 상기 어드레스로부터 상기 키 값을 추출하는 단계를 포함할 수 있다.The generating may include extracting the key value from the address via a hash function.

상기 방법은 상기 호스트로부터 전송된 읽기 요청에 응답하여 상기 읽기 요청에 포함된 어드레스의 키 값과 상기 요약 정보에 저장된 적어도 하나의 키 값을 비교하고, 비교 결과에 따라 상기 읽기 요청에 포함된 어드레스에 대응하는 데이터를 리드하는 단계를 더 포함할 수 있다.The method includes comparing a key value of an address included in the read request with at least one key value stored in the summary information in response to a read request transmitted from the host, And reading the corresponding data.

상기 방법은 상기 요약 정보를 상기 저장 영역에 저장하는 단계를 더 포함할 수 있다.The method may further comprise storing the summary information in the storage area.

상기 방법은 상기 데이터 저장 장치의 파워-온 시 상기 저장 영역에 저장된 상기 라이트 데이터의 어드레스 및 상기 어드레스의 키 값을 상기 요약 정보에 업데이트하는 단계를 더 포함할 수 있다.The method may further include updating the address of the write data stored in the storage area and the key value of the address to the summary information when the data storage device is powered on.

상기 방법은 상기 데이터 저장 장치의 파워-온 시 상기 저장 영역에 저장된 상기 요약 정보를 상기 메모리에 카피하는 단계를 더 포함할 수 있다.The method may further comprise copying the summary information stored in the storage area to the memory upon power-on of the data storage device.

상기 방법은 상기 저장 영역의 모두가 상기 라이트 데이터로 저장된 때, 상기 요약 정보에 기초하여 상기 라이트 데이터의 어드레스에 대한 맵업데이트를 수행하는 단계를 더 포함할 수 있다.The method may further comprise, when all of the storage areas are stored as the write data, performing a map update on the address of the write data based on the summary information.

상기 데이터 저장 장치는 솔리드 스테이트 드라이브(solid state drive(SSD)), 유니버셜 플래시 스토리지(universal flash storage(UFS)), 플래시 USB 드라이브(flash universal serial bus drive), 또는 임베디드 멀티미디어 카드(embedded multimedia card(eMMC))일 수 있다.The data storage device may be a solid state drive (SSD), a universal flash storage (UFS), a flash universal serial bus drive, or an embedded multimedia card (eMMC) )).

다른 실시 예에 따른 데이터 저장 장치의 동작 방법은 호스트로부터 전송된 읽기 요청을 수신하는 단계와, 상기 읽기 요청에 포함된 어드레스의 키 값과 메모리 장치의 제1 저장 영역에 대한 제1 요약 정보에 저장된 적어도 하나의 키 값을 비교하고, 비교 결과에 따라 상기 읽기 요청에 포함된 어드레스에 대응하는 데이터를 리드하는 단계를 포함할 수 있다.A method of operating a data storage device in accordance with another embodiment includes receiving a read request transmitted from a host, storing a key value of an address included in the read request and first summary information on a first storage area of the memory device Comparing the at least one key value, and reading data corresponding to the address included in the read request according to the comparison result.

상기 리드하는 단계는 상기 읽기 요청에 포함된 어드레스의 키 값이 상기 제1 요약 정보에 저장된 적어도 하나의 키 값과 매칭될 때, 상기 읽기 요청에 포함된 어드레스에 대응하는 데이터를 상기 제1 저장 영역으로부터 리드하는 단계를 포함할 수 있다.Wherein the step of reading includes reading data corresponding to an address included in the read request into the first storage area when the key value of the address included in the read request is matched with at least one key value stored in the first summary information, And a step of reading from the memory cell array.

상기 리드하는 단계는 상기 읽기 요청에 포함된 어드레스의 키 값이 상기 제1 요약 정보에 저장된 적어도 하나의 키 값과 매칭되지 않을 때, 상기 어드레스의 키 값과 상기 메모리 장치의 제2 저장 영역에 대한 제2 요약 정보에 저장된 적어도 하나의 키 값을 비교하고, 비교 결과에 따라 상기 읽기 요청에 포함된 어드레스에 대응하는 데이터를 리드하는 단계를 포함할 수 있다.Wherein the step of reading comprises reading the key value of the address and the second storage area of the memory device when the key value of the address included in the read request does not match the at least one key value stored in the first summary information. Comparing the at least one key value stored in the second summary information, and reading data corresponding to the address included in the read request according to the comparison result.

상기 제1 저장 영역은 상기 호스트로부터 전송된 쓰기 요청에 따라 라이트 데이터가 저장 가능한 영역일 수 있다.The first storage area may be an area in which write data can be stored according to a write request transmitted from the host.

상기 제2 저장 영역은 모든 영역이 라이트 데이터로 저장된 영역일 수 있다.The second storage area may be an area where all areas are stored as write data.

일 실시 예에 따른 메모리 컨트롤러는 호스트로부터 전송된 라이트 데이터의 어드레스와 상기 어드레스의 키 값을 포함하는 메모리 장치의 저장 영역에 대한 요약 정보를 생성하는 어드레스 맵핑 모듈와 상기 메모리 장치와 분리되고, 상기 요약 정보를 저장하는 메모리를 포함하고, 상기 라이트 데이터는 상기 저장 영역에 저장될 수 있다.The memory controller according to an embodiment includes an address mapping module for generating summary information on a storage area of a memory device including an address of write data transmitted from a host and a key value of the address, And the write data may be stored in the storage area.

상기 어드레스 맵핑 모듈은 해쉬 함수를 통해 상기 어드레스로부터 상기 키 값을 추출할 수 있다.The address mapping module may extract the key value from the address through a hash function.

상기 어드레스 맵핑 모듈은 상기 호스트로부터 전송된 읽기 요청에 응답하여 상기 읽기 요청에 포함된 어드레스의 키 값과 상기 요약 정보에 저장된 적어도 하나의 키 값을 비교하고, 비교 결과에 따라 상기 읽기 요청에 포함된 어드레스에 대응하는 데이터의 리드를 제어할 수 있다.Wherein the address mapping module compares a key value of an address included in the read request with at least one key value stored in the summary information in response to a read request transmitted from the host, It is possible to control the reading of data corresponding to the address.

상기 어드레스 맵핑 모듈은 상기 요약 정보를 상기 저장 영역에 저장할 수 있다.The address mapping module may store the summary information in the storage area.

상기 어드레스 맵핑 모듈은 상기 메모리 컨트롤러의 파워-온 시 상기 저장 영역에 저장된 상기 라이트 데이터의 어드레스 및 상기 어드레스의 키 값을 상기 요약 정보에 업데이트할 수 있다.The address mapping module may update an address of the write data stored in the storage area and a key value of the address to the summary information when the memory controller is powered on.

상기 어드레스 맵핑 모듈은 상기 메모리 컨트롤러의 파워-온 시 상기 저장 영역에 저장된 상기 요약 정보를 상기 메모리에 카피할 수 있다.The address mapping module may copy the summary information stored in the storage area to the memory when the memory controller is powered on.

상기 저장 영역의 모두가 상기 라이트 데이터로 저장된 때, 상기 어드레스 맵핑 모듈은 상기 요약 정보에 기초하여 상기 라이트 데이터의 어드레스에 대한 맵업데이트를 수행할 수 있다.When all of the storage areas are stored as the write data, the address mapping module may perform a map update on the address of the write data based on the summary information.

다른 실시 예에 따른 메모리 컨트롤러는 메모리 장치의 제1 저장 영역에 대한 제1 요약 정보를 저장하는 메모리와, 호스트로부터 전송된 읽기 요청에 응답하여 상기 읽기 요청에 포함된 어드레스의 키 값과 상기 제1 요약 정보에 저장된 적어도 하나의 키 값을 비교하고, 비교 결과에 따라 상기 읽기 요청에 포함된 어드레스에 대응하는 데이터의 리드를 제어하는 주소 맵핑 모듈을 포함할 수 있다.According to another embodiment of the present invention, there is provided a memory controller comprising: a memory for storing first summary information on a first storage area of a memory device; And an address mapping module for comparing the at least one key value stored in the summary information and controlling the reading of data corresponding to the address included in the read request according to the comparison result.

상기 읽기 요청에 포함된 어드레스의 키 값이 상기 제1 요약 정보에 저장된 적어도 하나의 키 값과 매칭될 때, 상기 주소 맵핑 모듈은 상기 제1 저장 영역으로부터 상기 읽기 요청에 포함된 어드레스에 대응하는 데이터의 리드를 제어할 수 있다.When the key value of the address included in the read request is matched with at least one key value stored in the first summary information, the address mapping module reads data corresponding to the address included in the read request from the first storage area Can be controlled.

상기 메모리는 상기 메모리 장치의 제2 저장 영역에 대한 제2 요약 정보를 저장하고, 상기 읽기 요청에 포함된 어드레스의 키 값이 상기 제1 요약 정보에 저장된 적어도 하나의 키 값과 매칭되지 않을 때, 상기 주소 맵핑 모듈은 상기 어드레스의 키 값과 상기 제2 요약 정보에 저장된 적어도 하나의 키 값을 비교하고, 비교 결과에 따라 상기 읽기 요청에 포함된 어드레스에 대응하는 데이터의 리드를 제어할 수 있다.Wherein the memory stores second summary information for a second storage area of the memory device and when the key value of the address included in the read request does not match the at least one key value stored in the first summary information, The address mapping module may compare a key value of the address with at least one key value stored in the second summary information, and control the reading of data corresponding to the address included in the read request according to the comparison result.

상기 제1 저장 영역은 상기 호스트로부터 전송된 쓰기 요청에 따라 라이트 데이터가 저장 가능한 영역일 수 있다.The first storage area may be an area in which write data can be stored according to a write request transmitted from the host.

상기 제2 저장 영역은 모든 영역이 라이트 데이터로 저장된 영역일 수 있다.The second storage area may be an area where all areas are stored as write data.

일 실시 예에 따른 데이터 저장 장치는 상기 메모리 컨트롤러와 상기 메모리 장치를 포함할 수 있다.A data storage device according to one embodiment may include the memory controller and the memory device.

상기 데이터 저장 장치는 솔리드 스테이트 드라이브(solid state drive(SSD)), 유니버셜 플래시 스토리지(universal flash storage(UFS)), 플래시 USB 드라이브(flash universal serial bus drive), 또는 임베디드 멀티미디어 카드(embedded multimedia card(eMMC))일 수 있다.The data storage device may be a solid state drive (SSD), a universal flash storage (UFS), a flash universal serial bus drive, or an embedded multimedia card (eMMC) )).

일 실시 예에 따른 전자 시스템은 상기 메모리 컨트롤러와 상기 호스트를 포함할 수 있다.An electronic system according to an embodiment may include the memory controller and the host.

도 1은 일 실시예에 다른 전자 시스템의 개략적인 블록도이다.
도 2는 도 1에 도시된 메모리 컨트롤러의 일 실시 예에 따른 개략적인 블록도이다.
도 3은 도 2에 도시된 불휘발성 메모리 장치의 메모리 셀 어레이를 개략적으로 나타낸다.
도 4는 도 1에 도시된 전자 시스템의 일 실시 예에 따른 계층 구조를 나타내는 도면이다.
도 5는 도 4에 도시된 주소 매핑 모듈에 의해 생성되는 요약 정보의 일 실시 예를 나타낸다.
도 6은 도 4에 도시된 주소 맵핑 모듈의 동작 방법의 일 실시 예를 설명하기 위한 도면이다.
도 7은 도 4에 도시된 주소 맵핑 모듈의 동작 방법의 다른 실시 예를 설명하기 위한 도면이다.
도 8은 도 4에 도시된 플래시 컨트롤러의 동작 방법의 일 실시 예를 설명하기 위한 플로우 차트이다.
도 9는 도 4에 도시된 플래시 컨트롤러의 동작 방법의 다른 실시 예를 설명하기 위한 플로우 차트이다.
도 10는 도 1에 도시된 메모리 컨트롤러와 불휘발성 메모리 장치를 포함하는 전자 시스템의 일 실시 예에 따른 블록도이다.
도 11은 도 1에 도시된 메모리 컨트롤러와 불휘발성 메모리 장치를 포함하는 전자 시스템의 다른 실시 예에 따른 블록도이다.
도 12은 도 1에 도시된 메모리 컨트롤러와 불휘발성 메모리 장치를 포함하는 전자 시스템의 또 다른 실시 예에 따른 블록도이다.
도 13은 도 1에 도시된 데이터 저장 장치를 포함하는 전자 시스템의 또 다른 실시 예에 따른 블록도이다.
도 14는 본 발명의 일 실시 예에 따른 전자 시스템의 블록도이다.
1 is a schematic block diagram of an electronic system according to an embodiment.
2 is a schematic block diagram according to one embodiment of the memory controller shown in FIG.
Fig. 3 schematically shows a memory cell array of the nonvolatile memory device shown in Fig.
4 is a diagram illustrating a hierarchical structure according to an embodiment of the electronic system shown in FIG.
FIG. 5 shows an embodiment of the summary information generated by the address mapping module shown in FIG.
FIG. 6 is a diagram for explaining an operation method of the address mapping module shown in FIG. 4. Referring to FIG.
FIG. 7 is a diagram for explaining another embodiment of the operation method of the address mapping module shown in FIG.
8 is a flowchart for explaining an embodiment of a method of operating the flash controller shown in FIG.
Fig. 9 is a flowchart for explaining another embodiment of the operation method of the flash controller shown in Fig. 4. Fig.
10 is a block diagram according to one embodiment of an electronic system including the memory controller and non-volatile memory device shown in FIG.
11 is a block diagram according to another embodiment of an electronic system including the memory controller and non-volatile memory device shown in FIG.
12 is a block diagram in accordance with another embodiment of an electronic system including the memory controller and non-volatile memory device shown in FIG.
13 is a block diagram in accordance with another embodiment of an electronic system including the data storage device shown in FIG.
14 is a block diagram of an electronic system according to an embodiment of the present invention.

본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.It is to be understood that the specific structural or functional descriptions of embodiments of the present invention disclosed herein are presented for the purpose of describing embodiments only in accordance with the concepts of the present invention, May be embodied in various forms and are not limited to the embodiments described herein.

본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.Embodiments in accordance with the concepts of the present invention are capable of various modifications and may take various forms, so that the embodiments are illustrated in the drawings and described in detail herein. It should be understood, however, that it is not intended to limit the embodiments according to the concepts of the present invention to the particular forms disclosed, but includes all modifications, equivalents, or alternatives falling within the spirit and scope of the invention.

제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.The terms first, second, or the like may be used to describe various elements, but the elements should not be limited by the terms. The terms may be named for the purpose of distinguishing one element from another, for example without departing from the scope of the right according to the concept of the present invention, the first element being referred to as the second element, Similarly, the second component may also be referred to as the first component.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "~사이에"와 "바로~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between. Expressions that describe the relationship between components, such as "between" and "between" or "neighboring to" and "directly adjacent to" should be interpreted as well.

본 명세서에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises ", or" having ", or the like, specify that there is a stated feature, number, step, operation, , Steps, operations, components, parts, or combinations thereof, as a matter of principle.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the meaning of the context in the relevant art and, unless explicitly defined herein, are to be interpreted as ideal or overly formal Do not.

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

본 명세서에서의 모듈(module)은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 특정 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예를 들어 프로세서 또는 마이크로 프로세서를 의미할 수 있다.A module in this specification may mean hardware capable of performing the functions and operations according to the respective names described in this specification and may mean computer program codes capable of performing specific functions and operations , Or an electronic recording medium, e.g., a processor or a microprocessor, equipped with computer program code capable of performing certain functions and operations.

다시 말해, 모듈이란 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.
In other words, a module may mean a functional and / or structural combination of hardware for carrying out the technical idea of the present invention and / or software for driving the hardware.

도 1은 일 실시예에 다른 전자 시스템의 개략적인 블록도이다.1 is a schematic block diagram of an electronic system according to an embodiment.

도 1을 참조하면, 전자 시스템(electronic system; 1)은 호스트(host; 10)와 데이터 저장 장치(data storage device; 20)를 포함할 수 있다.Referring to FIG. 1, an electronic system 1 may include a host 10 and a data storage device 20.

전자 시스템(1)은 PC(personal computer), 서버(server), 데이터 서버, 데이터베이스 서버, 웹 서버, 네트워크-결합 스토리지(network-attached storage(NAS)), 또는 휴대용 전자 장치로 구현될 수 있다.The electronic system 1 may be implemented as a personal computer (PC), a server, a data server, a database server, a web server, a network-attached storage (NAS), or a portable electronic device.

휴대용 전자 장치는 랩탑 컴퓨터(laptop computer), 넷북(netbook), 이동전화기, 스마트폰(smartphone), 태블릿(tablet) PC, 모바일 인터넷 디바이스(mobile internet device(MID)), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), 또는 e-북(e-book)으로 구현될 수 있다.Portable electronic devices include, but are not limited to, a laptop computer, a netbook, a mobile phone, a smartphone, a tablet PC, a mobile internet device (MID), a personal digital assistant (PDA) An enterprise digital assistant (EDA), a digital still camera, a digital video camera, a portable multimedia player (PMP), a personal navigation or portable navigation device (PND), a handheld game console, , Or an e-book (e-book).

호스트(10)는 인터페이스(30)를 통해 데이터 저장 장치(20)와 통신할 수 있다. 예를 들어, 호스트(10)는 인터페이스(30)를 통해 데이터 및/또는 명령을 데이터 저장 장치(20)로 전송할 수 있다. 예를 들어, 호스트(100)는 애플리케이션 프로세서 또는 모바일 애플리케이션 프로세서를 의미할 수 있다.The host 10 can communicate with the data storage device 20 via the interface 30. For example, the host 10 may transmit data and / or commands to the data storage device 20 via the interface 30. For example, the host 100 may refer to an application processor or a mobile application processor.

인터페이스(30)는 통신을 위하여 인터페이스 프로토콜(interface protocol)을 포함할 수 있다.The interface 30 may include an interface protocol for communication.

예를 들어, 인터페이스 프로토콜은 UHI(UHS-I 또는 UHS-II), PCI-E(peripheral component interconnect-express), ATA(Advanced attached SCSI), SATA(serial advanced technology attachment), SAS(Serial Attached SCSI), 또는 DDRx(Double Data Rate x)와 같은 인터페이스 프로토콜일 수 있다.For example, the interface protocol may be UHI (UHS-I or UHS-II), peripheral component interconnect-express (PCI-E), advanced attached SCSI (ATA), serial advanced technology attachment (SATA) , Or Double Data Rate x (DDRx).

또한, 인터페이스 프로토콜은 USB(Universal Serial Bus), MMC(multi-media card), ESDI(enhanced small disk interface), 또는 IDE(Integrated Drive Electronics) 등에 적합한 프로토콜일 수 있다.In addition, the interface protocol may be a protocol suitable for a USB (Universal Serial Bus), a multi-media card (MMC), an enhanced small disk interface (ESDI), or an IDE (Integrated Drive Electronics).

데이터 저장 장치(20)는 메모리 컨트롤러(memory controller; 100)와 불휘발성 메모리 장치(non-volatile memory device; 200)를 포함할 수 있다.The data storage device 20 may include a memory controller 100 and a non-volatile memory device 200.

데이터 저장 장치(20)는 데이터베이스, 솔리드 스테이트 드라이브(Solid State Drive(SSD)), 유니버셜 플래시 스토리지(universal flash storage(UFS)), 플래시 USB 드라이브(flash universal serial bus drive), SD(secure digital) 카드, MMC(multimedia card), 임베디드 MMC(embedded MMC), 스마트 카드(smart card), 메모리 카드(memory card), 또는 레이드(Redundant Array of Independent Disks(RAID) 또는 Redundant Array of Inexpensive Disks(RAID))로 구현될 수 있으나, 반드시 이에 한정되지 않는다.The data storage device 20 may be a database, a solid state drive (SSD), a universal flash storage (UFS), a flash universal serial bus drive, a secure digital , An MMC (multimedia card), an embedded MMC, a smart card, a memory card, or a RAID (Redundant Array of Independent Disks (RAID) or Redundant Array of Inexpensive Disks But is not limited thereto.

예를 들어, 데이터 저장 장치(20)는 eMMC, UFC, 또는 SSD 등과 같이 플래시 메모리 컨트롤러를 포함하는 플래시-기반 데이터 저장 장치일 수 있다.For example, the data storage device 20 may be a flash-based data storage device including a flash memory controller such as an eMMC, UFC, or SSD.

메모리 컨트롤러(100)는 호스트(10)의 명령에 따라 불휘발성 메모리 장치(200)를 제어함으로써 데이터를 리드하거나 데이터를 라이트할 수 있다.The memory controller 100 can read data or write data by controlling the nonvolatile memory device 200 in response to a command from the host 10. [

또한, 메모리 컨트롤러(100)는 불휘발성 메모리 장치(200)의 동작 조건(operation condition)을 제어하거나 불휘발성 메모리 장치(200)의 효율적은 관리를 위하여 필요한 내부 동작(예를 들어, 가비지 컬렉션(garbage collection), 웨어 레벨링(wear-leveling) 등)을 제어할 수 있다.
The memory controller 100 may also control the operation conditions of the non-volatile memory device 200 or the internal operations necessary for efficient management of the non-volatile memory device 200 (e.g., garbage collection, wear-leveling, etc.).

도 2는 도 1에 도시된 메모리 컨트롤러의 일 실시 예에 따른 개략적인 블록도이다.2 is a schematic block diagram according to one embodiment of the memory controller shown in FIG.

도 1 및 도 2를 참조하면, 메모리 컨트롤러(100)는 제1 메모리(fist memory; 110), CPU(central processing unit; 120), 제2 메모리(second memory; 130), 불휘발성 메모리 인터페이스(non-volatile memory interface; 140), 및 ECC 블록(error correction code(ECC) block; 150)을 포함할 수 있다.1 and 2, the memory controller 100 includes a first memory 110, a central processing unit (CPU) 120, a second memory 130, a non-volatile memory interface (non) a volatile memory interface 140, and an error correction code (ECC) block 150.

제1 메모리(110)는 CPU(120)의 동작에 필요한 프로그램 코드 또는 펌웨어(firmware)를 저장할 수 있다. 제1 메모리(110)는 불휘발성 메모리, 예를 들어 RAM으로 구현될 수 있다.The first memory 110 may store program code or firmware necessary for the operation of the CPU 120. [ The first memory 110 may be implemented as a non-volatile memory, for example, a RAM.

CPU(120)는 메모리 컨트롤러(100)의 전반적인 동작을 제어할 수 있다. CPU(120)는 버스(160)를 통하여 제1 메모리(110), 제2 메모리(130), 및 ECC 블록(150) 사이에서 데이터의 교환을 제어할 수 있다.The CPU 120 can control the overall operation of the memory controller 100. [ The CPU 120 can control the exchange of data between the first memory 110, the second memory 130, and the ECC block 150 via the bus 160. [

또한, CPU(120)는 불휘발성 메모리 장치(200)의 FTL(Flash Translation Layer)을 구동할 수 있다. FTL에 대해서는 도 4를 참조하여 후술한다.In addition, the CPU 120 can drive an FTL (Flash Translation Layer) of the nonvolatile memory device 200. [ The FTL will be described later with reference to FIG.

제2 메모리(130)는 휘발성 메모리, 예를 들어 DRAM(dynamic RAM) 또는 SRAM(static RAM)으로 구현될 수 있다. 제2 메모리(130)는 인터페이스(30)를 통해 호스트(10)로부터 전송된 데이터를 일시적으로 저장 또는 버퍼링할 수 있다. 또한, 제2 메모리(130)는 인터페이스(30)를 통해 호스트(10)로 전송하기 위한 불휘발성 메모리 장치(200)로부터 출력된 데이터를 일시적으로 저장 또는 버퍼링할 수 있다. 예를 들어, 제2 메모리(130)는 버퍼 메모리(buffer memory)일 수 있다. 도 2에서는 제2 메모리(130)가 메모리 컨트롤러(100)의 내부에 구현되는 것으로 도시되어 있지만, 메모리 컨트롤러(100)의 외부에 구현될 수도 있다.The second memory 130 may be implemented as a volatile memory, for example, a dynamic random access memory (DRAM) or a static random access memory (SRAM). The second memory 130 may temporarily store or buffer the data transmitted from the host 10 via the interface 30. [ The second memory 130 may also temporarily store or buffer the data output from the nonvolatile memory device 200 for transmission to the host 10 via the interface 30. [ For example, the second memory 130 may be a buffer memory. Although the second memory 130 is illustrated as being implemented in the memory controller 100 in FIG. 2, it may be implemented outside the memory controller 100.

불휘발성 메모리 인터페이스(140)는 불휘발성 메모리 장치(200)와 메모리 컨트롤러(100) 사이에서 데이터의 교환을 인터페이싱할 수 있다.The non-volatile memory interface 140 may interface the exchange of data between the non-volatile memory device 200 and the memory controller 100.

ECC(error correction code) 블록(150)은 불휘발성 메모리 장치(200)에 저장될 데이터 또는 불휘발성 메모리 장치(200)로부터 리드된 데이터에 포함된 에러를 에러 정정 코드(error correction code(ECC))를 이용하여 검출 및 정정할 수 있다.An error correction code (ECC) block 150 is an error correction code (ECC) for error contained in data to be stored in the nonvolatile memory device 200 or data read from the nonvolatile memory device 200. [ Can be detected and corrected.

불휘발성 메모리 장치(200)는 각종 프로그램들(programs)과 데이터(data)를 저장할 수 있다.
The non-volatile memory device 200 may store various programs and data.

도 3은 도 2에 도시된 불휘발성 메모리 장치의 메모리 셀 어레이를 개략적으로 나타낸다.Fig. 3 schematically shows a memory cell array of the nonvolatile memory device shown in Fig.

도 1 내지 도 3을 참조하면, 불휘발성 메모리 장치(200)는 플래시 메모리 장치일 수 있으나, 이에 한정되지 않으며, PRAM, MRAM, ReRAM, 또는 FeRAM 장치일 수 있다. 불휘발성 메모리 장치(200)가 플래시 메모리 장치인 경우, 불휘발성 메모리 장치(200)는 플로팅 게이팅 방식의 NAND 플래시 메모리 장치 또는 CTF(Charge Trap Flash) 방식의 NAND 플래시 메모리 장치일 수 있다. 불휘발성 메모리 장치(200)의 메모리 셀 트랜지스터들은 2차원적으로 배열된 구조를 가질 수도 있고, 또한 3차원적으로 배열된 구조를 가질 수도 있다.1 to 3, the non-volatile memory device 200 may be a flash memory device, but is not limited thereto, and may be a PRAM, an MRAM, a ReRAM, or a FeRAM device. When the non-volatile memory device 200 is a flash memory device, the non-volatile memory device 200 may be a floating gating type NAND flash memory device or a CTF (Charge Trap Flash) type NAND flash memory device. The memory cell transistors of the nonvolatile memory device 200 may have a two-dimensionally arranged structure or a three-dimensionally arranged structure.

불휘발성 메모리 장치(200)는 메모리 셀 어레이(memory cell array; 210)를 포함할 수 있다. 메모리 셀 어레이(210)는 데이터를 라이트할 수 있는 저장 영역들(230, 250, 및 270) 또는 저장 공간들(230, 250, 및 270)을 제공할 수 있다. 저장 영역들(230 및 250)은 하나 이상의 페이지로 구현될 수 있다. 도 3에서는 메모리 셀 어레이(210)가 하나만 도시되어 있지만, 반드시 이에 한정되지 않는다. 저장 영역들(230, 250, 및 270)는 불휘발성 메모리 셀들을 포함할 수 있다.The non-volatile memory device 200 may include a memory cell array 210. The memory cell array 210 may provide storage areas 230, 250, and 270 or storage spaces 230, 250, and 270 that can write data. Storage areas 230 and 250 may be implemented as one or more pages. Although only one memory cell array 210 is shown in FIG. 3, it is not limited thereto. Storage areas 230, 250, and 270 may include non-volatile memory cells.

불휘발성 메모리 셀들 각각은 EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시(flash) 메모리, MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torque MRAM), Conductive bridging RAM(CBRAM), FeRAM(Ferroelectric RAM), PRAM(Phase change RAM), 저항 메모리(Resistive RAM(RRAM)), 나노튜브 RRAM(Nanotube RRAM), 폴리머 RAM(Polymer RAM(PoRAM)), 나노 부유 게이트 메모리(Nano Floating Gate Memory(NFGM)), 홀로그래픽 메모리(holographic memory), 분자 전자 메모리(Molecular Electronics Memory Device), 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory)로 구현될 수 있다. 불휘발성 메모리 셀들 각각은 1-비트 또는 그 이상의 비트들을 저장할 수 있다. 예를 들어, 불휘발성 메모리 셀들은 셀(cell)당 1-비트 정보를 저장할 수 있는 싱글-레벨 셀들(single level cells(SLCs)) 및/또는 셀달 2-비트 정보 또는 그 이상의 정보를 저장할 수 있는 멀티-레벨 셀들(multi-level cells(MLCs))을 포함할 수 있다.
Each of the non-volatile memory cells may be electrically erasable programmable read-only memory (EEPROM), flash memory, magnetic RAM, spin transfer torque MRAM, conductive bridging RAM (CBRAM), FeRAM Ferroelectric random access memory (RAM), phase change random access memory (RAM), resistive random access memory (RRAM), nanotube RRAM, polymer RAM (PoRAM), nano floating gate memory ), A holographic memory, a Molecular Electronics Memory Device, or an Insulator Resistance Change Memory. Each of the non-volatile memory cells may store one or more bits. For example, non-volatile memory cells may store single-level cells (SLCs) that can store 1-bit information per cell and / or cellar 2-bit information or more And may include multi-level cells (MLCs).

도 4는 도 1에 도시된 전자 시스템의 일 실시 예에 따른 계층 구조를 나타내는 도면이고, 도 5는 도 4에 도시된 주소 매핑 모듈에 의해 생성되는 요약 정보의 일 실시 예를 나타낸다.FIG. 4 is a diagram illustrating a hierarchical structure according to an embodiment of the electronic system shown in FIG. 1, and FIG. 5 shows one embodiment of summary information generated by the address mapping module shown in FIG.

도 1, 도 4, 도 5를 참조하면, 전자 시스템(1A)은 도 1의 호스트910)의 일 실시 예에 따른 호스트(10A)와 도 1의 데이터 저장 장치(20)의 일 실시 예에 다른 데이터 저장 장치(20A)를 포함할 수 있다.1, 4, and 5, the electronic system 1A includes a host 10A according to one embodiment of the host 910 of FIG. 1 and a host 10A according to one embodiment of the data storage 20 of FIG. And a data storage device 20A.

데이터 저장 장치(20A)는 도 1의 메모리 컨트롤러(100)의 일 실시 예에 따른 플래시 컨트롤러(100A)와 도 1의 불휘발성 메모리 장치(200)의 일 실시 예에 따른 플래시 메모리 장치(200A)를 포함할 수 있다.The data storage device 20A includes a flash controller 100A according to one embodiment of the memory controller 100 of Figure 1 and a flash memory device 200A according to one embodiment of the non- .

플래시 컨트롤러(100A)는 FTL(flash translation layer; 170)과 인터페이스 레이어(interface layer; 140A)를 포함할 수 있다.The flash controller 100A may include a flash translation layer 170 and an interface layer 140A.

인터페이스 레이어(140A)는 플래시 컨트롤러(100A)가 플래시 메모리 장치(200A)에 액세스할 수 있도록 플래시 인터페이스를 제공하는 계층일 수 있다. 인터페이스 레이어(140A)는 도 2에 도시된 불휘발성 메모리 인터페이스(140)의 전부 또는 일부에 상응할 수 있다.The interface layer 140A may be a layer that provides a flash interface for the flash controller 100A to access the flash memory device 200A. The interface layer 140A may correspond to all or part of the non-volatile memory interface 140 shown in FIG.

FTL(170)은 주소 매핑 모듈(address mapping module; 172), 가비지 콜렉션 모듈(garbage collection module; 174), 및 웨어-레벨링 모듈(wear-leveling module; 176)을 포함할 수 있다.The FTL 170 may include an address mapping module 172, a garbage collection module 174, and a wear-leveling module 176.

주소 매핑 모듈(172), 가비지 콜렉션 모듈(174), 및 웨어-레벨링 모듈(176) 각각은 기능 및 논리적으로 분리될 수 있음을 나타내는 것이며, 반드시 구성들 각각이 별도의 물리적 장치로 구분되거나 별도의 코드로 작성됨을 의미하는 것은 아니다.Each of the address mapping module 172, the garbage collection module 174, and the ware-leveling module 176 may be functionally and logically separate, and each of the components may be separated into separate physical devices, It does not mean that it is written in code.

주소 매핑 모듈(172)은 주소 매핑 테이블(address mapping table)을 이용하여 파일시스템의 논리적 주소와 플래시 메모리 장치(200A)의 물리적 주소를 매핑할 수 있다. 예를 들어, 주소 매핑 모듈(172)은 논리-물리(logical-physical) 주소 매핑 모듈일 수 있다.The address mapping module 172 can map a logical address of the file system and a physical address of the flash memory device 200A using an address mapping table. For example, the address mapping module 172 may be a logical-physical address mapping module.

또한, 주소 매핑 모듈(172)은 호스트(10A)로부터 전송된 라이트 데이터의 어드레스와 어드레스의 키 값을 포함하는 플래시 메모리 장치(200A)의 저장 영역에 대한 요약 정보(AI)를 생성할 수 있다. 예를 들어, 라이트 데이터의 어드레스는 논리 블록 어드레스(logical block address)일 수 있다. 라이트 데이터는 플래시 메모리 장치(200A)의 저장 영역에 저장될 수 있다. 이에 대한 주소 매핑 모듈(172)의 동작은 도 6을 참조하여 상세히 설명된다.The address mapping module 172 may also generate summary information (AI) for the storage area of the flash memory device 200A including the address and address key values of the write data sent from the host 10A. For example, the address of the write data may be a logical block address. The write data can be stored in the storage area of the flash memory device 200A. The operation of the address mapping module 172 for this is described in detail with reference to FIG.

요약 정보(AI)는 제1 영역(LBA)과 제2 영역(KEY)으로 구성될 수 있다. 예를 들어, 제1 영역(LBA)는 어드레스 저장 영역이고, 제2 영역(KEY)은 키 값 저장 영역일 수 있다. 플래시 메모지 장치(200A)의 저장 영역에 저장되는 각 라이트 데이터의 어드레스는 제1 영역(LBA)에 저장되고, 각 라이트 데이터의 어드레스의 키 값은 제2 영역(KEY)에 저장될 수 있다.The summary information AI may be composed of a first area LBA and a second area KEY. For example, the first area LBA may be an address storage area, and the second area KEY may be a key value storage area. The address of each write data stored in the storage area of the flash memory device 200A is stored in the first area LBA and the key value of the address of each write data can be stored in the second area KEY.

또한, 주소 매핑 모듈(172)은 호스트(10A)로부터 전송된 읽기 요청에 포함된 어드레스의 키 값과 플래시 메모리 장치(200A)의 저장 영역에 대한 요약 정보(AI)에 저장된 적어도 하나의 키 값을 비교하고, 비교 결과에 따라 읽기 요청에 포함된 어드레스에 대응하는 데이터의 리드를 제어할 수 있다. 이에 대한 주소 매핑 모듈(172)의 동작은 도 7을 참조하여 상세히 설명된다.The address mapping module 172 also stores at least one key value stored in the key value of the address included in the read request transmitted from the host 10A and the summary information AI of the storage area of the flash memory device 200A And control the reading of data corresponding to the address included in the read request according to the comparison result. The operation of the address mapping module 172 for this is described in detail with reference to FIG.

가비지 콜렉션 모듈(174)은 플래시 메모리 장치(200A)의 블록 내의 유효한 페이지를 관리하기 위한 가비지 콜렉션(garbage collection) 동작을 제어할 수 있다. 가비지 콜렉션 동작은 플래시 메모리 장치(200A)의 기존 블록 내의 유효한 페이지를 새로운 블록에 복사하고, 기존 블록을 이레이즈(erase)하여 프리 블록(free block)으로써 재사용할 수 있도록 하는 동작이다.The garbage collection module 174 may control a garbage collection operation for managing valid pages in a block of the flash memory device 200A. The garbage collection operation is an operation for copying a valid page in an existing block of the flash memory device 200A to a new block, erasing the existing block, and reusing it as a free block.

웨어-레벨링 모듈(176)은 플래시 메모리 장치(200A)의 수명을 늘리기 위해 웨어-레벨링 동작을 수행할 수 있다. 웨어-레벨링 동작은 블록들의 삭제 기능 횟수를 균일하게 관리하여 특정 블록의 수명이 짧아지는 것을 방지하는 동작이다.
Leveling module 176 may perform a wear-leveling operation to increase the lifetime of the flash memory device 200A. The wear-leveling operation is an operation for uniformly managing the number of erase functions of the blocks to prevent the life of a specific block from being shortened.

도 6은 도 4에 도시된 주소 맵핑 모듈의 동작 방법의 일 실시 예를 설명하기 위한 도면이다.FIG. 6 is a diagram for explaining an operation method of the address mapping module shown in FIG. 4. Referring to FIG.

도 6을 참조하면, 플래시 컨트롤러(100A)는 도 1의 제1 메모리(110)의 일 실시 예에 따른 메모리(110A)를 포함할 수 있다.Referring to FIG. 6, the flash controller 100A may include a memory 110A according to one embodiment of the first memory 110 of FIG.

호스트(10A)로부터 전송된 라이트 데이터(DATA1-3)는 호스트(10A)의 쓰기 요청(W)에 따라 플래시 메모리 장치(200A)의 제1 저장 영역(230A)에 저장될 수 있다(S110). 라이트 데이터(DATA1-1 및 DATA1-2)는 호스트(10A)의 쓰기 요청(W) 전에 제1 저장 영역(230A)에 저장된 데이터일 수 있다. 예를 들어, 호스트(10A)의 쓰기 요청(R)은 무작위 쓰기 요청 또는 순차 쓰기 요청일 수 있다.The write data DATA1-3 sent from the host 10A can be stored in the first storage area 230A of the flash memory device 200A according to the write request W of the host 10A at step S110. The write data (DATA1-1 and DATA1-2) may be data stored in the first storage area 230A before the write request (W) of the host 10A. For example, the write request (R) of the host 10A may be a random write request or a sequential write request.

주소 맵핑 모듈(172)은 해쉬 함수를 통해 라이트 데이터(280)의 어드레스로부터 키 값을 추출할 수 있다.The address mapping module 172 may extract the key value from the address of the write data 280 via the hash function.

주소 맵핑 모듈(172)은 라이트 데이터(DATA1-3)의 어드레스와 어드레스의 키 값을 포함하는 제1 저장 영역(271)에 대한 제1 요약 정보(AI-1)를 생성할 수 있다(S120). 예를 들어, 주소 맵핑 모듈(172)은 라이트 데이터(DATA3)의 어드레스와 어드레스의 키 값을 요약 정보(AI-1)에 저장할 수 있다(S120).The address mapping module 172 may generate the first summary information AI-1 for the first storage area 271 including the address value and the key value of the write data (DATA1-3) (S120) . For example, the address mapping module 172 may store the key value of the address and address of the write data (DATA3) in the summary information AI-1 (S120).

또한, 제1 요약 정보(AI-1)는 라이트 데이터(DATA1-1 및 DATA1-2) 각각의 어드레스와 어드레스의 키 값을 포함할 수 있다. 즉, 호스트(10A)의 쓰기 요청에 따라 라이트 데이터가 제1 저장 영역(271)에 저장될 때마다 주소 맵핑 모듈(172)은 제1 저장 영역(230A)에 저장되는 라이트 데이터의 어드레스와 어드레스의 키 값을 이용하여 제1 용약 정보(AI-1)을 갱신할 수 있다.In addition, the first summary information AI-1 may include a key value of the address and address of each of the write data (DATA1-1 and DATA1-2). That is, every time the write data is stored in the first storage area 271 according to the write request of the host 10A, the address mapping module 172 updates the address and address of the write data stored in the first storage area 230A The first drug information (AI-1) can be updated using the key value.

주소 맵핑 모듈(172)은 제1 요약 정보(AI-1)를 메모리(110A)에 저장할 수 있다.The address mapping module 172 may store the first summary information AI-1 in the memory 110A.

제2 저장 영역(250A)은 라이트 데이터(DATA2-1~DATA2-n; n은 1보다 큰 자연수)로 저장될 수 있다. 제2 저장 영역(250A)에 대한 제2 요약 정보(AI-2)도 주소 맵핑 모듈(172)을 통해 생성되고, 메모리(110A)에 저장될 수 있다. 즉, 제2 요약 정보(AI-2)는 라이트 데이터(DATA2-1~DATA2-n)의 어드레스 및 어드레스의 키 값을 포함할 수 있다.The second storage area 250A may be stored with write data (DATA2-1 to DATA2-n, where n is a natural number greater than 1). Second summary information AI-2 for the second storage area 250A may also be generated via the address mapping module 172 and stored in the memory 110A. That is, the second summary information AI-2 may include a key value of the address and address of the write data (DATA2-1 to DATA2-n).

예를 들어, 제1 저장 영역(230A)은 호스트(10A)로부터 전송된 쓰기 요청에 따라 라이트 데이터가 저장 가능한 영역이고, 제2 저장 영역(250A)은 모든 영역이 라이트 데이터로 저장되어, 라이트 데이터가 더 이상 저장이 가능하지 않은 영역일 수 있다. 제2 저장 영역(250A)은 맵업데이트가 필요한 영역일 수 있다.For example, the first storage area 230A is an area in which write data can be stored in response to a write request transmitted from the host 10A. In the second storage area 250A, all areas are stored as write data, Lt; / RTI > can not be stored any longer. The second storage area 250A may be an area requiring map update.

주소 맵핑 모듈(172)은 제2 요약 정보(AI-2)를 제2 저장 영역(250A)에 저장할 수 있다(S130).The address mapping module 172 may store the second summary information AI-2 in the second storage area 250A (S130).

주소 맵핑 모듈(172)은 제2 저장 영역(250A)에 대한 제2 요약 정보(AI-2)에 기초하여 제2 저장 영역(250A)에 저장된 라이트 데이터(DATA2-1~DATA2-n)의 어드레스에 대한 맵업데이트를 수행할 수 있다(S140). 주소 맵핑 모듈(172)은 맵업데이트를 플래시 메모리 장치(200A)의 제3 저장 영역(270A)에서 수행할 수 있다.The address mapping module 172 compares the addresses of the write data DATA2-1 to DATA2-n stored in the second storage area 250A based on the second summary information AI-2 for the second storage area 250A (S140). ≪ / RTI > The address mapping module 172 may perform the map update in the third storage area 270A of the flash memory device 200A.

예를 들어, 제2 저장 영역(250A)의 모두가 라이트 데이터(DATA2-1~DATA2-n)로 저장된 때, 주소 맵핑 모듈(172)은 제2 요약 정보(AI-2)에 기초하여 제2 저장 영역(250A)에 저장된 라이트 데이터(DATA2-1~DATA2-n)의 어드레스에 대한 맵업데이트를 수행할 수 있다(S140).For example, when all of the second storage area 250A is stored as write data (DATA2-1 to DATA2-n), the address mapping module 172 generates the second summary information AI-2 based on the second summary information AI- It is possible to update the map of the addresses of the write data (DATA2-1 to DATA2-n) stored in the storage area 250A (S140).

라이트 데이터(DATA1-3)가 호스트(10A)로부터 전송된 쓰기 요청(W)에 따라 제1 저장 영역(230A)에 저장되면서(S110), 주소 맵핑 모듈(172)은 제2 요약 정보(AI-2)에 기초하여 제2 저장 영역(250A)에 저장된 라이트 데이터(DATA2-1~DATA2-n)의 어드레스에 대한 맵업데이트를 동시에 수행할 수 있다(S140).The address mapping module 172 stores the second summary information AI-1 in the first storage area 230A according to the write request W transmitted from the host 10A in step S110, (DATA2-1 to DATA2-n) stored in the second storage area 250A (step S140).

데이터 저장 장치(20A)의 파워-온 시, 주소 맵핑 모듈(172)은 제1 저장 영역(230A)에 저장된 라이트 데이터(DATA1, DATA2 및 DATA3)의 어드레스 및 어드레스의 키 값을 제1 요약 정보(AI-1)에 업데이트할 수 있다(S150).On power-on of the data storage device 20A, the address mapping module 172 stores the key values of the addresses and addresses of the write data (DATA1, DATA2 and DATA3) stored in the first storage area 230A as first summary information AI-1) (S150).

데이터 저장 장치(20A)의 파워-온 시, 주소 맵핑 모듈(172)은 제2 저장 영역(250A)에 저장된 제2 요약 정보(AI-2)를 메모리(110A)에 카피할 수 있다(S160). 제2 요약 정보(AI-2)를 제2 저장 영역(250A)에 저장해두었기 때문에, 데이터 저장 장치(20A)의 파워-온 시 FTL(170)의 오픈-시간이 단축될 수 있다.Upon power-on of the data storage device 20A, the address mapping module 172 may copy the second summary information AI-2 stored in the second storage area 250A to the memory 110A (S160) . Since the second summary information AI-2 is stored in the second storage area 250A, the open-time of the FTL 170 at the time of power-on of the data storage device 20A can be shortened.

주소 맵핑 모듈(172)이 요약 정보(AI-1 및 AI-2)를 생성하고, 이를 활용함으로써, 데이터 저장 장치(20A)는 호스트(10A)의 쓰기 요청(W), 예를 들어 무작위 쓰기 요청 또는 순차 쓰기 요청에 대한 오버헤드를 제거할 수 있고, 전체적인 성능을 향상할 수 있다.
The data storage device 20A generates the write request W of the host 10A, for example, a random write request (W), by using the address mapping module 172 to generate the summary information AI-1 and AI- Or the overhead for sequential write requests can be eliminated, and the overall performance can be improved.

도 7은 도 4에 도시된 주소 맵핑 모듈의 동작 방법의 다른 실시 예를 설명하기 위한 도면이다.FIG. 7 is a diagram for explaining another embodiment of the operation method of the address mapping module shown in FIG.

도 7을 참조하면, 플래시 컨트롤러(100A)는 도 1의 제1 메모리(110)의 일 실시 예에 따른 메모리(110A)를 포함할 수 있다.Referring to FIG. 7, the flash controller 100A may include a memory 110A according to one embodiment of the first memory 110 of FIG.

제1 저장 영역은(230A)은 라이트 데이터(DATA1-1, DATA1-2, 및 DATA1-3)로 저장될 수 있다. 제1 요약 정보(AI-1)는 라이트 데이터(DATA1-1, DATA1-2, 및 DATA1-3)의 어드레스 및 어드레스의 키 값을 포함할 수 있다.The first storage area 230A can be stored as write data (DATA1-1, DATA1-2, and DATA1-3). The first summary information AI-1 may include a key value of the address and address of the write data (DATA1-1, DATA1-2, and DATA1-3).

제2 저장 영역(250A)은 라이트 데이터(DATA2-1~DATA2-n)로 저장될 수 있다. 제2 요약 정보(AI-2)는 라이트 데이터(DATA2-1~DATA2-n)의 어드레스 및 어드레스의 키 값을 포함할 수 있다.The second storage area 250A may be stored as write data (DATA2-1 to DATA2-n). The second summary information AI-2 may include a key value of the address and address of the write data (DATA2-1 to DATA2-n).

예를 들어, 제1 저장 영역(230A)은 호스트(10A)로부터 전송된 쓰기 요청에 따라 라이트 데이터가 저장 가능한 영역이고, 제2 저장 영역(250A)은 모든 영역이 라이트 데이터로 저장되어, 라이트 데이터가 더 이상 저장이 가능하지 않은 영역일 수 있다. 제2 저장 영역(250A)은 맵업데이트가 필요한 영역일 수 있다.For example, the first storage area 230A is an area in which write data can be stored in response to a write request transmitted from the host 10A. In the second storage area 250A, all areas are stored as write data, Lt; / RTI > can not be stored any longer. The second storage area 250A may be an area requiring map update.

주소 맵핑 모듈(172)은 호스트(10A)로부터 전송된 읽기 요청(R)을 수신할 수 있다. 주소 맵핑 모듈(172)은 읽기 요청(R)에 포함된 어드레스의 키 값과 제1 요약 정보(AI-1)에 저장된 적어도 하나의 키 값을 비교하고, 비교 결과에 따라 읽기 요청(R)에 포함된 어드레스에 대응하는 데이터의 리드를 제어할 수 있다(S210). 예를 들어, 주소 맵핑 모듈(172)은 해쉬 함수를 통해 읽기 요청(R)에 포함된 어드레스로부터 키 값을 추출할 수 있다.The address mapping module 172 may receive the read request R sent from the host 10A. The address mapping module 172 compares the key value of the address included in the read request R with at least one key value stored in the first summary information AI-1, It is possible to control the read of the data corresponding to the included address (S210). For example, the address mapping module 172 may extract a key value from an address included in the read request R through a hash function.

구체적으로, 주소 맵핑 모듈(172)은 읽기 요청(R)에 포함된 어드레스의 키 값과 제1 요약 정보(AI-1)에 저장된 적어도 하나의 키 값을 비교할 수 있다(S210).Specifically, the address mapping module 172 may compare the key value of the address included in the read request R with at least one key value stored in the first summary information AI-1 (S210).

읽기 요청(R)에 포함된 어드레스의 키 값이 제1 요약 정보(AI-1)에 저장된 적어도 하나의 키 값과 매칭될 때, 주소 맵핑 모듈(172)은 제1 저장 영역(230A)으로부터 읽기 요청(R)에 포함된 어드레스에 대응하는 데이터(DATA1-2)의 리드를 제어할 수 있다(S220, S230).The address mapping module 172 reads from the first storage area 230A when the key value of the address contained in the read request R matches the at least one key value stored in the first summary information AI- It is possible to control the read of the data (DATA1-2) corresponding to the address included in the request (R) (S220, S230).

예를 들어, 주소 맵핑 모듈(172)은 읽기 요청(R)에 포함된 어드레스의 키 값에 매칭되는 제1 요약 정보(AI-1)의 키 값을 이용하여, 매칭되는 키 값에 해당하는 어드레스를 제1 요약 정보(AI-1)의 제1 영역(LBA)으로부터 추출할 수 있다(S220).For example, the address mapping module 172 may use the key value of the first summary information AI-1 matching the key value of the address included in the read request R, From the first area LBA of the first summary information AI-1 (S220).

이에, 추출된 어드레스에 대응하는 데이터(DATA1-2)는 제1 저장 영역(230A)으로부터 리드될 수 있다(S230).Thus, the data (DATA 1-2) corresponding to the extracted address can be read from the first storage area 230A (S230).

읽기 요청(R)에 포함된 어드레스의 키 값이 제1 요약 정보(AI-1)에 저장된 적어도 하나의 키 값과 매칭되지 않을 때, 주소 맵핑 모듈(172)은 읽기 요청(R)에 포함된 어드레스의 키 값과 제2 요약 정보(AI-2)에 저장된 적어도 하나의 키 값을 비교하고, 비교 결과에 따라 읽기 요청(R)에 포함된 어드레스에 대응하는 데이터의 리드를 제어할 수 있다(S240).When the key value of the address included in the read request R does not match the at least one key value stored in the first summary information AI-1, the address mapping module 172 determines whether the key value of the address included in the read request R It is possible to compare the key value of the address with at least one key value stored in the second summary information AI-2 and to control the reading of data corresponding to the address included in the read request R according to the comparison result S240).

구체적으로, 주소 맵핑 모듈(172)은 읽기 요청(R)에 포함된 어드레스의 키 값과 제2 요약 정보(AI-2)에 저장된 적어도 하나의 키 값을 비교할 수 있다(S240).Specifically, the address mapping module 172 may compare the key value of the address included in the read request R with at least one key value stored in the second summary information AI-2 (S240).

읽기 요청(R)에 포함된 어드레스의 키 값이 제2 요약 정보(AI-2)에 저장된 적어도 하나의 키 값과 매칭될 때, 주소 맵핑 모듈(172)은 제2 저장 영역(250A)으로부터 읽기 요청(R)에 포함된 어드레스에 대응하는 데이터(DATA2-5)의 리드를 제어할 수 있다(S250, S260).When the key value of the address included in the read request R is matched with at least one key value stored in the second summary information AI-2, the address mapping module 172 reads from the second storage area 250A It is possible to control the read of the data (DATA2-5) corresponding to the address included in the request (R) (S250, S260).

예를 들어, 주소 맵핑 모듈(172)은 읽기 요청(R)에 포함된 어드레스의 키 값에 매칭되는 제2 요약 정보(AI-2)의 키 값을 이용하여, 매칭되는 키 값에 해당하는 어드레스를 제2 요약 정보(AI-2)의 제1 영역(LBA)으로부터 추출할 수 있다(S250).For example, the address mapping module 172 may use the key value of the second summary information (AI-2) matched with the key value of the address included in the read request (R) From the first area LBA of the second summary information AI-2 (S250).

이에, 추출된 어드레스에 대응하는 데이터(DATA2-5)는 제2 저장 영역(250A)으로부터 리드될 수 있다(S260).Accordingly, the data (DATA2-5) corresponding to the extracted address can be read from the second storage area 250A (S260).

읽기 요청(R)에 포함된 어드레스의 키 값이 제2 요약 정보(AI-2)에 저장된 적어도 하나의 키 값과 매칭되지 않을 때, 주소 맵핑 모듈(172)은 제3 저장 영역(275)에 저장된 맵정보에 기초하여 읽기 요청(R)에 포함된 어드레스에 대응하는 데이터가 저장된 해당 저장 영역을 검색할 수 있다(S270).When the key value of the address included in the read request R does not match the at least one key value stored in the second summary information AI-2, the address mapping module 172 stores the key value in the third storage area 275 The corresponding storage area storing data corresponding to the address included in the read request R may be searched based on the stored map information at step S270.

이에, 읽기 요청(R)에 포함된 어드레스에 대응하는 데이터는 검색된 저장 영역으로부터 리드될 수 있다.Thus, the data corresponding to the address included in the read request R can be read from the retrieved storage area.

주소 맵핑 모듈(172)이 호스트(10A)의 읽기 요청(R)에 포함된 어드레스의 키 값, 예를 들어 해쉬 함수를 통해 키 값을 추출하여 요약 정보(AI-1 또는 AI-2)에 포함된 적어도 하나의 키 값과 비교함으로써, 데이터 저장 장치(20A)는 읽기 요청(R)에 포함된 어드레스에 대응하는 데이터 검색 시간을 단축하고, 전체적인 성능을 향상할 수 있다.
The address mapping module 172 extracts the key value of the address included in the read request R of the host 10A, for example, the key value through the hash function and includes it in the summary information AI-1 or AI-2 The data storage device 20A can shorten the data retrieval time corresponding to the address included in the read request R and improve the overall performance.

도 8은 도 4에 도시된 플래시 컨트롤러의 동작 방법의 일 실시 예를 설명하기 위한 플로우 차트이다.8 is a flowchart for explaining an embodiment of a method of operating the flash controller shown in FIG.

도 8을 참조하면, 플래시 컨트롤러(100A)는 호스트(10A)로부터 전송된 라이트 데이터를 메모리 장치(200A)의 저장 영역에 저장할 수 있다(S310).Referring to FIG. 8, the flash controller 100A may store the write data transmitted from the host 10A in the storage area of the memory device 200A (S310).

플래시 컨트롤러(100A)는 라이트 데이터의 어드레스와 어드레스의 키 값을 포함하는 메모리 장치(200A)의 저장 영역에 대한 요약 정보를 생성할 수 있다(S320).The flash controller 100A may generate the summary information on the storage area of the memory device 200A including the address value of the write data and the key value of the address (S320).

플래시 컨트롤러(100A)는 메모리 장치(200A)의 저장 영역에 대한 요약 정보를 메모리 장치(200A)와 분리된 메모리(110A)에 저장할 수 있다(S330).
The flash controller 100A may store the summary information on the storage area of the memory device 200A in the memory 110A separate from the memory device 200A (S330).

도 9는 도 4에 도시된 플래시 컨트롤러의 동작 방법의 다른 실시 예를 설명하기 위한 플로우 차트이다.Fig. 9 is a flowchart for explaining another embodiment of the operation method of the flash controller shown in Fig. 4. Fig.

도 9를 참조하면, 플래시 컨트롤러(100A)는 호스트(10A)로부터 전송된 읽기 요청을 수신할 수 있다(S410).Referring to FIG. 9, the flash controller 100A may receive a read request transmitted from the host 10A (S410).

플래시 컨트롤러(100A)는 읽기 요청에 포함된 어드레스의 키 값과 메모리 장치(200A)의 저장 영역에 대한 요약 정보에 저장된 적어도 하나의 키 값을 비교하고, 비교 결과에 따라 읽기 요청에 포함된 어드레스에 대응하는 데이터를 리드할 수 있다(S420).
The flash controller 100A compares the key value of the address included in the read request with the at least one key value stored in the summary information about the storage area of the memory device 200A, The corresponding data can be read (S420).

도 10는 도 1에 도시된 메모리 컨트롤러와 불휘발성 메모리 장치를 포함하는 전자 시스템의 일 실시 예에 따른 블록도이다.10 is a block diagram according to one embodiment of an electronic system including the memory controller and non-volatile memory device shown in FIG.

도 1과 도 10를 참조하면, 전자 시스템(400)은 이동 전화기(cellular phone), 스마트 폰(smart phone), PDA(personal digital assistant), 또는 무선 통신 장치 등으로 구현될 수 있다. 1 and 10, the electronic system 400 may be implemented as a cellular phone, a smart phone, a personal digital assistant (PDA), or a wireless communication device.

전자 시스템(400)은 불휘발성 메모리 장치(200), 불휘발성 메모리 장치(200)의 동작을 제어할 수 있는 메모리 컨트롤러(100), 프로세서(processor; 410), 디스플레이(display; 420), 무선 송수신기(radio transceiver; 430), 입력 장치(input device; 440)를 포함할 수 있다. The electronic system 400 includes a nonvolatile memory device 200, a memory controller 100 that can control the operation of the nonvolatile memory device 200, a processor 410, a display 420, a wireless transceiver a radio transceiver 430, and an input device 440.

메모리 컨트롤러(100)는 프로세서(410)의 제어에 따라 불휘발성 메모리 장치(200)의 데이터 액세스 동작, 예를 들어 프로그램(program) 동작, 이레이즈(erase) 동작, 또는 리드(read) 동작을 제어할 수 있다. The memory controller 100 controls the data access operation of the nonvolatile memory device 200, for example, a program operation, an erase operation, or a read operation under the control of the processor 410 can do.

불휘발성 메모리 장치(200)에 프로그램된 데이터는 프로세서(410) 및/또는 메모리 컨트롤러(100)의 제어에 따라 디스플레이(420)를 통하여 디스플레이될 수 있다.The data programmed into the non-volatile memory device 200 may be displayed via the display 420 under the control of the processor 410 and / or the memory controller 100.

프로세서(410)는 메모리 컨트롤러(100)로부터 출력된 데이터, 무선 송수신기 (430)로부터 출력된 데이터, 또는 입력 장치(440)로부터 출력된 데이터가 디스플레이(420)를 통하여 디스플레이될 수 있도록 디스플레이(420)의 동작을 제어할 수 있다.The processor 410 is connected to the display 420 so that data output from the memory controller 100, data output from the wireless transceiver 430, or data output from the input device 440 may be displayed via the display 420. [ Can be controlled.

무선 송수신기(430)는 안테나(ANT)를 통하여 무선 신호를 주거나 받을 수 있다. 예를 들어, 무선 송수신기(430)는 안테나(ANT)를 통하여 수신된 무선 신호를 프로세서(410)에서 처리될 수 있는 신호로 변환할 수 있다. The wireless transceiver 430 may receive or receive a wireless signal via the antenna ANT. For example, the wireless transceiver 430 may convert the wireless signal received via the antenna ANT into a signal that can be processed by the processor 410. [

따라서, 프로세서(410)는 무선 송수신기(430)로부터 출력된 신호를 처리하고 처리된 신호를 메모리 컨트롤러(100) 또는 디스플레이(420)로 전송할 수 있다.Thus, the processor 410 may process the signal output from the wireless transceiver 430 and transmit the processed signal to the memory controller 100 or the display 420.

또한, 무선 송수신기(430)는 프로세서(410)로부터 출력된 신호를 무선 신호로 변경하고 변경된 무선 신호를 안테나(ANT)를 통하여 외부 장치로 출력할 수 있다. In addition, the wireless transceiver 430 may convert the signal output from the processor 410 into a wireless signal and output the modified wireless signal to an external device through the antenna ANT.

입력 장치(440)는 프로세서(410)의 동작을 제어하기 위한 제어 신호 또는 프로세서(410)에 의하여 처리될 데이터를 입력할 수 있는 장치로서, 터치 패드(touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad), 또는 키보드 등으로 구현될 수 있다. The input device 440 is a device capable of inputting a control signal for controlling the operation of the processor 410 or data to be processed by the processor 410 and includes a touch pad and a computer mouse Such as a pointing device, a keypad, a keyboard, or the like.

예를 들어, 불휘발성 메모리 장치(200)의 동작을 제어할 수 있는 메모리 컨트롤러(100)는 프로세서(410)의 일부로서 구현될 수 있고 또한 프로세서(410)와 별도의 칩으로 구현될 수 있다.
For example, the memory controller 100, which may control the operation of the non-volatile memory device 200, may be implemented as part of the processor 410 and may be implemented as a separate chip from the processor 410. [

도 11은 도 1에 도시된 메모리 컨트롤러와 불휘발성 메모리 장치를 포함하는 전자 시스템의 다른 실시 예에 따른 블록도이다.11 is a block diagram according to another embodiment of an electronic system including the memory controller and non-volatile memory device shown in FIG.

도 1과 도 11을 참조하면, 전자 시스템(500)은 메모리 카드(memory card) 또는 스마트 카드(smart card) 등으로 구현될 수 있다. Referring to FIGS. 1 and 11, the electronic system 500 may be implemented as a memory card, a smart card, or the like.

전자 시스템(500)은 메모리 컨트롤러(100), 불휘발성 메모리 장치(200), 및 카드 인터페이스(520)를 포함한다. The electronic system 500 includes a memory controller 100, a non-volatile memory device 200, and a card interface 520.

메모리 컨트롤러(100)는 불휘발성 메모리 장치(200)와 카드 인터페이스(520) 사이에서 데이터의 교환을 제어할 수 있다. The memory controller 100 can control the exchange of data between the nonvolatile memory device 200 and the card interface 520. [

카드 인터페이스(520)는 호스트(530)의 프로토콜에 따라 호스트(530)와 메모리 컨트롤러(100) 사이에서 데이터 교환을 인터페이싱할 수 있다. The card interface 520 may interface data exchange between the host 530 and the memory controller 100 according to the protocol of the host 530.

예를 들어, 카드 인터페이스(520)는 SD(secure digital) 카드 인터페이스 또는 MMC(multi-media card) 인터페이스일 수 있으나 이에 한정되는 것은 아니다. For example, the card interface 520 may be, but is not limited to, a secure digital (SD) card interface or a multi-media card (MMC) interface.

다른 예를 들어, 카드 인터페이스(520)는 USB(Universal Serial Bus) 프로토콜, IC(InterChip)-USB 프로토콜을 지원할 수 있다. 여기서, 카드 인터페이스라 함은 호스트(530)가 사용하는 프로토콜을 지원할 수 있는 하드웨어, 상기 하드웨어에 탑재된 소프트웨어, 또는 신호 전송 방식을 의미할 수 있다.For example, the card interface 520 may support USB (Universal Serial Bus) protocol, IC (InterChip) -USB protocol. Here, the card interface may refer to hardware capable of supporting the protocol used by the host 530, software installed in the hardware, or a signal transmission method.

호스트(530)는 PC, 태블릿 PC, 디지털 카메라, 디지털 오디오 플레이어, 이동 전화기, 콘솔 비디오 게임 하드웨어, 또는 디지털 셋-탑 박스 등으로 구현될 수 있다.The host 530 may be implemented as a PC, a tablet PC, a digital camera, a digital audio player, a mobile phone, a console video game hardware, or a digital set-top box.

전자 시스템(500)이 호스트(530)의 호스트 인터페이스(550)와 접속될 때, 호스트 인터페이스(550)는 마이크로프로세서(540)의 제어에 따라 카드 인터페이스(520)와 메모리 컨트롤러(100)를 통하여 불휘발성 메모리 장치(200)와 데이터 통신을 수행할 수 있다.
When the electronic system 500 is connected to the host interface 550 of the host 530, the host interface 550 is connected to the card interface 520 and the memory controller 100, under the control of the microprocessor 540, And can perform data communication with the volatile memory device 200.

도 12은 도 1에 도시된 메모리 컨트롤러와 불휘발성 메모리 장치를 포함하는 전자 시스템의 또 다른 실시 예에 따른 블록도이다.12 is a block diagram in accordance with another embodiment of an electronic system including the memory controller and non-volatile memory device shown in FIG.

도 1과 도 12을 참조하면, 전자 시스템(600)은 SSD(solid state drive)로 구현될 수 있다. Referring to Figures 1 and 12, the electronic system 600 may be implemented as a solid state drive (SSD).

전자 시스템(600)은 메모리 컨트롤러(100), 복수의 불휘발성 메모리 장치들(200), 버퍼 매니저(620), 휘발성 메모리 장치(630), 및 호스트(640)를 포함할 수 있다.The electronic system 600 may include a memory controller 100, a plurality of non-volatile memory devices 200, a buffer manager 620, a volatile memory device 630, and a host 640.

메모리 컨트롤러(100)는 복수의 불휘발성 메모리 장치들(200) 각각의 데이터 처리 동작을 제어할 수 있다.The memory controller 100 can control the data processing operation of each of the plurality of nonvolatile memory devices 200. [

버퍼 매니저(620)는 메모리 컨트롤러(100)와 호스트(640) 사이에서 주고받는 데이터를 휘발성 메모리 장치(630)에 저장하는 것을 제어할 수 있다.The buffer manager 620 can control storing data to be exchanged between the memory controller 100 and the host 640 in the volatile memory device 630. [

휘발성 메모리 장치(630)는 메모리 컨트롤러(100)와 호스트(640) 사이에서 주고받는 데이터를 버퍼링할 수 있다. 예를 들어, 휘발성 메모리 장치(630)는 DRAM(dynamic random access memory)으로 구현될 수 있다.
The volatile memory device 630 can buffer the data exchanged between the memory controller 100 and the host 640. For example, the volatile memory device 630 may be implemented as a dynamic random access memory (DRAM).

도 13은 도 1에 도시된 데이터 저장 장치를 포함하는 전자 시스템의 또 다른 실시 예에 따른 블록도이다.13 is a block diagram in accordance with another embodiment of an electronic system including the data storage device shown in FIG.

도 1과 도 13을 참조하면, RAID(redundant array of independent disks) 시스템으로 구현될 수 있는 데이터 처리 시스템(700)은 RAID 컨트롤러(710)와 다수의 메모리 시스템들(700-1~700-n; n는 자연수)을 포함할 수 있다. 1 and 13, a data processing system 700, which may be implemented as a redundant array of independent disks (RAID) system, includes a RAID controller 710 and a plurality of memory systems 700-1 through 700-n. n is a natural number).

다수의 메모리 시스템들(700-1~700-n) 각각은 도 1에 도시된 데이터 저장 장치(20)일 수 있다. 다수의 메모리 시스템들(700-1~700-n)은 RAID 어레이(array)를 구성할 수 있다. 예를 들어, 데이터 처리 시스템(700)은 PC(personal computer) 또는 SSD로 구현될 수 있다. Each of the plurality of memory systems 700-1 through 700-n may be the data storage device 20 shown in FIG. The plurality of memory systems 700-1 through 700-n may constitute a RAID array. For example, the data processing system 700 may be implemented as a personal computer (PC) or an SSD.

프로그램 동작이 수행되는 동안, RAID 컨트롤러(710)는 호스트(HOST)로부터 출력된 프로그램 명령에 따라 호스트(HOST)로부터 출력된 프로그램 데이터를 RAID 레벨에 따라 다수의 메모리 시스템들(700-1~700-n) 중에서 적어도 어느 하나로 전송할 수 있다.While the program operation is being performed, the RAID controller 710 transfers the program data output from the host (HOST) to the plurality of memory systems 700-1 to 700- n).

리드 동작이 수행되는 동안, RAID 컨트롤러(710)는 호스트(HOST)로부터 출력된 리드 명령에 따라 다수의 메모리 시스템들(700-1~700-n) 중에서 적어도 어느 하나의 메모리 시스템으로부터 리드된 데이터를 호스트(HOST)로 전송할 수 있다.During the read operation, the RAID controller 710 reads data read from at least one of the plurality of memory systems 700-1 to 700-n according to the read command output from the host (HOST) To the host (HOST).

도 13의 호스트(HOST)는 도 1의 호스트(10)를 의미할 수 있다.
The host (HOST) in FIG. 13 may mean the host 10 in FIG.

도 14는 본 발명의 일 실시 예에 따른 전자 시스템의 블록도이다.14 is a block diagram of an electronic system according to an embodiment of the present invention.

도 1과 도 14를 참조하면, 도 1의 전자 시스템(1)은 도 14의 전자 시스템(1000)으로 구현될 수 있다. 전자 시스템(1000)은 MIPI®(mobile industry processor interface)를 사용 또는 지원할 수 있는 데이터 처리 장치, 예컨대, PDA (personal digital assistants), PMP(portable multimedia player), IPTV(internet protocol television) 또는 스마트 폰(smart phone)으로 구현될 수 있다.Referring to Figures 1 and 14, the electronic system 1 of Figure 1 may be implemented in the electronic system 1000 of Figure 14. Electronic system 1000 may be a data processing device that can use or support a mobile industry processor interface (MIPI), such as personal digital assistants (PDA), portable multimedia player (PMP), internet protocol television (IPTV) smart phone).

애플리케이션 프로세서(1010)에 구현된 CSI 호스트(camera serial interface(CSI) host; 1012)는 카메라 시리얼 인터페이스를 통하여 이미지 센서 (1040)의 CSI 장치(1041)와 시리얼 통신할 수 있다. 이때, 예를 들어, CSI 호스트 (1012)는 디시리얼라이저(deserializer(DES))를 포함할 수 있고, CSI 장치(1041)는 시리얼라이저(serializer(SER))를 포함할 수 있다.A CSI host (CSI host) 1012 implemented in the application processor 1010 can communicate with the CSI device 1041 of the image sensor 1040 through a camera serial interface. At this time, for example, the CSI host 1012 may include a deserializer (DES), and the CSI device 1041 may include a serializer (SER).

애플리케이션 프로세서(1010)에 구현된 DSI 호스트(1011)는 디스플레이 시리얼 인터페이스(display serial interface(DSI))를 통하여 디스플레이(1050)의 DSI 장치(1051)와 시리얼 통신할 수 있다. 이때, 예를 들어, DSI 호스트(1011)는 시리얼라이저(SER)를 포함할 수 있고, DSI 장치(1051)는 디시리얼라이저(DES)를 포함할 수 있다.The DSI host 1011 implemented in the application processor 1010 can communicate with the DSI device 1051 of the display 1050 through a display serial interface (DSI). At this time, for example, the DSI host 1011 may include a serializer (SER), and the DSI device 1051 may include a deserializer (DES).

예를 들어, 전자 시스템(1000)은 애플리케이션 프로세서(1010)와 통신할 수 있는 RF 칩(1060)을 더 포함할 수 있다. 애플리케이션 프로세서(1010)에 포함된 PHY(PHYsical layer; 1013)와 RF 칩(1060)에 포함된 PHY(1061)는 MIPI DigRF에 따라 데이터를 주고받을 수 있다.For example, the electronic system 1000 may further include an RF chip 1060 capable of communicating with the application processor 1010. The PHY 1061 included in the PHYsical layer 1013 and the RF chip 1060 included in the application processor 1010 can exchange data according to the MIPI DigRF.

예를 들어, 전자 시스템(1000)은 GPS(1020) 수신기, 스토리지(storage; 1070), 마이크로폰(microphone(MIC); 1080), DRAM(dynamic random access memory; 1085) 및 스피커(speaker; 1090)를 더 포함할 수 있다.For example, the electronic system 1000 includes a GPS receiver 1020, a storage 1070, a microphone (MIC) 1080, a dynamic random access memory (DRAM) 1085, and a speaker 1090 .

도 1의 호스트(10)는 도 14의 AP(1010)로 구현되고, 도 1의 데이터 저장 장치(20)는 도 14의 스토리지(1070)로 구현될 수 있다.The host 10 of FIG. 1 is implemented with the AP 1010 of FIG. 14, and the data storage 20 of FIG. 1 may be implemented with the storage 1070 of FIG.

전자 시스템(1000)은 Wimax(world interoperability for microwave access; 1030) 모듈, WLAN(wireless lan; 1100) 모듈 및/또는 UWB(ultra wideband; 1110) 모듈 등을 이용하여 통신할 수 있다.
The electronic system 1000 may communicate using a world interoperability for microwave access (WIMAX) module, a wireless LAN (WLAN) module 1100, and / or an ultra wideband (UWB)

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA) , A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.

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

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

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

Claims (29)

호스트로부터 전송된 라이트 데이터를 메모리 장치의 저장 영역에 저장하는 단계;
상기 라이트 데이터의 어드레스와 상기 어드레스의 키 값을 포함하는 상기 저장 영역에 대한 요약 정보를 생성하는 단계; 및
상기 요약 정보를 상기 메모리 장치와 분리된 메모리에 저장하는 단계
를 포함하는 데이터 저장 장치의 동작 방법.
Storing write data transmitted from a host in a storage area of a memory device;
Generating summary information for the storage area including an address of the write data and a key value of the address; And
Storing the summary information in a memory separate from the memory device
≪ / RTI >
제1항에 있어서,
상기 생성하는 단계는,
해쉬 함수를 통해 상기 어드레스로부터 상기 키 값을 추출하는 단계
를 포함하는 데이터 저장 장치의 동작 방법.
The method according to claim 1,
Wherein the generating comprises:
Extracting the key value from the address via a hash function
≪ / RTI >
제1항에 있어서,
상기 호스트로부터 전송된 읽기 요청에 응답하여 상기 읽기 요청에 포함된 어드레스의 키 값과 상기 요약 정보에 저장된 적어도 하나의 키 값을 비교하고, 비교 결과에 따라 상기 읽기 요청에 포함된 어드레스에 대응하는 데이터를 리드하는 단계
를 더 포함하는 데이터 저장 장치의 동작 방법.
The method according to claim 1,
In response to a read request transmitted from the host, compares a key value of an address included in the read request with at least one key value stored in the summary information, and, based on the comparison result, ≪ / RTI >
≪ / RTI >
제1항에 있어서,
상기 요약 정보를 상기 저장 영역에 저장하는 단계
를 더 포함하는 데이터 저장 장치의 동작 방법.
The method according to claim 1,
Storing the summary information in the storage area
≪ / RTI >
제1항에 있어서,
상기 데이터 저장 장치의 파워-온 시 상기 저장 영역에 저장된 상기 라이트 데이터의 어드레스 및 상기 어드레스의 키 값을 상기 요약 정보에 업데이트하는 단계
를 더 포함하는 데이터 저장 장치의 동작 방법.
The method according to claim 1,
Updating the address of the write data stored in the storage area and the key value of the address to the summary information when the data storage device is powered on
≪ / RTI >
제4항에 있어서,
상기 데이터 저장 장치의 파워-온 시 상기 저장 영역에 저장된 상기 요약 정보를 상기 메모리에 카피하는 단계
를 더 포함하는 데이터 저장 장치의 동작 방법.
5. The method of claim 4,
Copying the summary information stored in the storage area to the memory when the data storage device is powered on
≪ / RTI >
제1항에 있어서,
상기 저장 영역의 모두가 상기 라이트 데이터로 저장된 때, 상기 요약 정보에 기초하여 상기 라이트 데이터의 어드레스에 대한 맵업데이트를 수행하는 단계
를 더 포함하는 데이터 저장 장치의 동작 방법.
The method according to claim 1,
Performing map update on the address of the write data based on the summary information when all of the storage area is stored as the write data
≪ / RTI >
제1항에 있어서,
상기 데이터 저장 장치는 솔리드 스테이트 드라이브(solid state drive(SSD)), 유니버셜 플래시 스토리지(universal flash storage(UFS)), 플래시 USB 드라이브(flash universal serial bus drive), 또는 임베디드 멀티미디어 카드(embedded multimedia card(eMMC)) 인 데이터 저장 장치의 동작 방법.
The method according to claim 1,
The data storage device may be a solid state drive (SSD), a universal flash storage (UFS), a flash universal serial bus drive, or an embedded multimedia card (eMMC) ). ≪ / RTI >
호스트로부터 전송된 읽기 요청을 수신하는 단계; 및
상기 읽기 요청에 포함된 어드레스의 키 값과 메모리 장치의 제1 저장 영역에 대한 제1 요약 정보에 저장된 적어도 하나의 키 값을 비교하고, 비교 결과에 따라 상기 읽기 요청에 포함된 어드레스에 대응하는 데이터를 리드하는 단계
를 포함하는 데이터 저장 장치의 동작 방법.
Receiving a read request transmitted from a host; And
Comparing the key value of the address included in the read request with at least one key value stored in the first summary information about the first storage area of the memory device, and comparing the key value with the key value of the address corresponding to the address included in the read request ≪ / RTI >
≪ / RTI >
제9항에 있어서,
상기 리드하는 단계는,
상기 읽기 요청에 포함된 어드레스의 키 값이 상기 제1 요약 정보에 저장된 적어도 하나의 키 값과 매칭될 때, 상기 읽기 요청에 포함된 어드레스에 대응하는 데이터를 상기 제1 저장 영역으로부터 리드하는 단계
를 포함하는 데이터 저장 장치의 동작 방법.
10. The method of claim 9,
Wherein the step of reading comprises:
Reading the data corresponding to the address included in the read request from the first storage area when the key value of the address included in the read request is matched with at least one key value stored in the first summary information
≪ / RTI >
제9항에 있어서,
상기 리드하는 단계는,
상기 읽기 요청에 포함된 어드레스의 키 값이 상기 제1 요약 정보에 저장된 적어도 하나의 키 값과 매칭되지 않을 때, 상기 어드레스의 키 값과 상기 메모리 장치의 제2 저장 영역에 대한 제2 요약 정보에 저장된 적어도 하나의 키 값을 비교하고, 비교 결과에 따라 상기 읽기 요청에 포함된 어드레스에 대응하는 데이터를 리드하는 단계
를 포함하는 데이터 저장 장치의 동작 방법.
10. The method of claim 9,
Wherein the step of reading comprises:
When the key value of the address included in the read request does not match the at least one key value stored in the first summary information, the key value of the address and the second summary information of the second storage area of the memory device Comparing at least one stored key value and reading data corresponding to the address included in the read request according to the comparison result
≪ / RTI >
제9항에 있어서,
상기 제1 저장 영역은 상기 호스트로부터 전송된 쓰기 요청에 따라 라이트 데이터가 저장 가능한 영역인 데이터 저장 장치의 동작 방법.
10. The method of claim 9,
Wherein the first storage area is an area in which write data can be stored according to a write request transmitted from the host.
제11항에 있어서,
상기 제2 저장 영역은 모든 영역이 라이트 데이터로 저장된 영역인 데이터 저장 장치의 동작 방법.
12. The method of claim 11,
Wherein the second storage area is an area in which all areas are stored as write data.
호스트로부터 전송된 라이트 데이터의 어드레스와 상기 어드레스의 키 값을 포함하는 메모리 장치의 저장 영역에 대한 요약 정보를 생성하는 어드레스 맵핑 모듈; 및
상기 메모리 장치와 분리되고, 상기 요약 정보를 저장하는 메모리
를 포함하고,
상기 라이트 데이터는 상기 저장 영역에 저장되는 메모리 컨트롤러.
An address mapping module for generating summary information on the storage area of the memory device including the address of the write data sent from the host and the key value of the address; And
A memory that is separate from the memory device and stores the summary information,
Lt; / RTI >
And the write data is stored in the storage area.
제14항에 있어서,
상기 어드레스 맵핑 모듈은 해쉬 함수를 통해 상기 어드레스로부터 상기 키 값을 추출하는 메모리 컨트롤러.
15. The method of claim 14,
Wherein the address mapping module extracts the key value from the address through a hash function.
제14항에 있어서,
상기 어드레스 맵핑 모듈은 상기 호스트로부터 전송된 읽기 요청에 응답하여 상기 읽기 요청에 포함된 어드레스의 키 값과 상기 요약 정보에 저장된 적어도 하나의 키 값을 비교하고, 비교 결과에 따라 상기 읽기 요청에 포함된 어드레스에 대응하는 데이터의 리드를 제어하는 메모리 컨트롤러.
15. The method of claim 14,
Wherein the address mapping module compares a key value of an address included in the read request with at least one key value stored in the summary information in response to a read request transmitted from the host, A memory controller that controls reading of data corresponding to an address.
제14항에 있어서,
상기 어드레스 맵핑 모듈은 상기 요약 정보를 상기 저장 영역에 저장하는 메모리 컨트롤러.
15. The method of claim 14,
Wherein the address mapping module stores the summary information in the storage area.
제14항에 있어서,
상기 어드레스 맵핑 모듈은 상기 메모리 컨트롤러의 파워-온 시 상기 저장 영역에 저장된 상기 라이트 데이터의 어드레스 및 상기 어드레스의 키 값을 상기 요약 정보에 업데이트하는 메모리 컨트롤러.
15. The method of claim 14,
Wherein the address mapping module updates an address of the write data stored in the storage area and a key value of the address to the summary information when the memory controller is powered on.
제17항에 있어서,
상기 어드레스 맵핑 모듈은 상기 메모리 컨트롤러의 파워-온 시 상기 저장 영역에 저장된 상기 요약 정보를 상기 메모리에 카피하는 메모리 컨트롤러.
18. The method of claim 17,
Wherein the address mapping module copies the summary information stored in the storage area to the memory when the memory controller is powered on.
제14항에 있어서,
상기 저장 영역의 모두가 상기 라이트 데이터로 저장된 때, 상기 어드레스 맵핑 모듈은 상기 요약 정보에 기초하여 상기 라이트 데이터의 어드레스에 대한 맵업데이트를 수행하는 메모리 컨트롤러.
15. The method of claim 14,
When all of the storage areas are stored as the write data, the address mapping module performs a map update on the address of the write data based on the summary information.
메모리 장치의 제1 저장 영역에 대한 제1 요약 정보를 저장하는 메모리; 및
호스트로부터 전송된 읽기 요청에 응답하여 상기 읽기 요청에 포함된 어드레스의 키 값과 상기 제1 요약 정보에 저장된 적어도 하나의 키 값을 비교하고, 비교 결과에 따라 상기 읽기 요청에 포함된 어드레스에 대응하는 데이터의 리드를 제어하는 주소 맵핑 모듈
을 포함하는 메모리 컨트롤러.
A memory for storing first summary information for a first storage area of the memory device; And
In response to a read request transmitted from a host, compares a key value of an address included in the read request with at least one key value stored in the first summary information, and in response to the comparison result, An address mapping module that controls the reading of data
.
제21항에 있어서,
상기 읽기 요청에 포함된 어드레스의 키 값이 상기 제1 요약 정보에 저장된 적어도 하나의 키 값과 매칭될 때, 상기 주소 맵핑 모듈은 상기 제1 저장 영역으로부터 상기 읽기 요청에 포함된 어드레스에 대응하는 데이터의 리드를 제어하는 메모리 컨트롤러.
22. The method of claim 21,
When the key value of the address included in the read request is matched with at least one key value stored in the first summary information, the address mapping module reads data corresponding to the address included in the read request from the first storage area A memory controller that controls the read of the memory.
제21항에 있어서,
상기 메모리는 상기 메모리 장치의 제2 저장 영역에 대한 제2 요약 정보를 저장하고,
상기 읽기 요청에 포함된 어드레스의 키 값이 상기 제1 요약 정보에 저장된 적어도 하나의 키 값과 매칭되지 않을 때, 상기 주소 맵핑 모듈은 상기 어드레스의 키 값과 상기 제2 요약 정보에 저장된 적어도 하나의 키 값을 비교하고, 비교 결과에 따라 상기 읽기 요청에 포함된 어드레스에 대응하는 데이터의 리드를 제어하는 메모리 컨트롤러.
22. The method of claim 21,
Wherein the memory stores second summary information for a second storage area of the memory device,
When the key value of the address included in the read request does not match the at least one key value stored in the first summary information, the address mapping module updates at least one key value stored in the second summary information, Compare the key value, and control the reading of data corresponding to the address included in the read request according to a result of the comparison.
제21항에 있어서,
상기 제1 저장 영역은 상기 호스트로부터 전송된 쓰기 요청에 따라 라이트 데이터가 저장 가능한 영역인 메모리 컨트롤러.
22. The method of claim 21,
Wherein the first storage area is an area in which write data can be stored according to a write request transmitted from the host.
제23항에 있어서,
상기 제2 저장 영역은 모든 영역이 라이트 데이터로 저장된 영역인 메모리 컨트롤러.
24. The method of claim 23,
Wherein the second storage area is an area in which all areas are stored as write data.
제14항의 상기 메모리 컨트롤러; 및
상기 메모리 장치를 포함하는 데이터 저장 장치.
The memory controller of claim 14; And
And the memory device.
제26항에 있어서,
상기 데이터 저장 장치는 솔리드 스테이트 드라이브(solid state drive(SSD)), 유니버셜 플래시 스토리지(universal flash storage(UFS)), 플래시 USB 드라이브(flash universal serial bus drive), 또는 임베디드 멀티미디어 카드(embedded multimedia card(eMMC)) 인 데이터 저장 장치.
27. The method of claim 26,
The data storage device may be a solid state drive (SSD), a universal flash storage (UFS), a flash universal serial bus drive, or an embedded multimedia card (eMMC) ).
제14항의 상기 메모리 컨트롤러; 및
상기 호스트를 포함하는 전자 시스템.
The memory controller of claim 14; And
And the host.
제1항 내지 제8항 중에서 어느 하나의 항의 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.A computer-readable recording medium having recorded thereon a program for executing the method according to any one of claims 1 to 8.
KR1020140169927A 2014-12-01 2014-12-01 Memory controller, system including the same, and method thereof KR20160065659A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140169927A KR20160065659A (en) 2014-12-01 2014-12-01 Memory controller, system including the same, and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140169927A KR20160065659A (en) 2014-12-01 2014-12-01 Memory controller, system including the same, and method thereof

Publications (1)

Publication Number Publication Date
KR20160065659A true KR20160065659A (en) 2016-06-09

Family

ID=56138924

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140169927A KR20160065659A (en) 2014-12-01 2014-12-01 Memory controller, system including the same, and method thereof

Country Status (1)

Country Link
KR (1) KR20160065659A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190094975A (en) * 2018-02-06 2019-08-14 삼성전자주식회사 Memory controller and method of operating the memory controller

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190094975A (en) * 2018-02-06 2019-08-14 삼성전자주식회사 Memory controller and method of operating the memory controller

Similar Documents

Publication Publication Date Title
US11086537B2 (en) Method and system to perform urgency level garbage collection based on write history of memory blocks
KR102164630B1 (en) Memory controller, and operation method of the memory controller
US10866797B2 (en) Data storage device and method for reducing firmware update time and data processing system including the device
US9880766B2 (en) Storage medium storing control program, method of controlling information processing device, information processing system, and information processing device
US9996297B2 (en) Hot-cold data separation method in flash translation layer
US9244619B2 (en) Method of managing data storage device and data storage device
US10817418B2 (en) Apparatus and method for checking valid data in memory system
US10963175B2 (en) Apparatus and method for searching valid data in memory system
US11157402B2 (en) Apparatus and method for managing valid data in memory system
US10963160B2 (en) Apparatus and method for checking valid data in block capable of storing large volume data in memory system
KR20140113211A (en) Non-volatile memory system, system having the same and method for performing adaptive user storage region adjustment in the same
US9740630B2 (en) Method of mapping address in storage device, method of reading data from storage devices and method of writing data into storage devices
US11281574B2 (en) Apparatus and method for processing different types of data in memory system
US20200104261A1 (en) Memory system, operation method thereof, and database system including the memory system
US10942848B2 (en) Apparatus and method for checking valid data in memory system
KR20160065661A (en) Memory controller, system including the same, and method thereof
KR20160065659A (en) Memory controller, system including the same, and method thereof
KR20160065644A (en) Memory controller, system including the same, and method thereof
US10585794B2 (en) Memory system and operating method of memory system
US11657000B2 (en) Controller and memory system including the same
KR20240077761A (en) Storage device and operating method thereof for executing background operation based on power state
KR20220042673A (en) Controller, operation method thereof, and memory system including the same
KR20240065774A (en) Storage device and operating method thereof for translating logical address based on the sequentiality of namespace
KR20240086166A (en) Storage device and operating method thereof for managing map information for data
KR20240077059A (en) Storage device and operating method thereof for loading map segments and transmitting the map segments to external device

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination