KR20210063814A - Apparatus and method for reading operation in memory system - Google Patents

Apparatus and method for reading operation in memory system Download PDF

Info

Publication number
KR20210063814A
KR20210063814A KR1020190152374A KR20190152374A KR20210063814A KR 20210063814 A KR20210063814 A KR 20210063814A KR 1020190152374 A KR1020190152374 A KR 1020190152374A KR 20190152374 A KR20190152374 A KR 20190152374A KR 20210063814 A KR20210063814 A KR 20210063814A
Authority
KR
South Korea
Prior art keywords
host
physical address
memory
controller
stored
Prior art date
Application number
KR1020190152374A
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 KR1020190152374A priority Critical patent/KR20210063814A/en
Publication of KR20210063814A publication Critical patent/KR20210063814A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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 OR 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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

Abstract

The present invention includes: a non-volatile memory device for storing user data and metadata of the user data; and a controller controlling the non-volatile memory device. The controller includes a memory system which determines whether a physical address received together with a read request and metadata from the host is valid, using the metadata stored in the physical address. Accordingly, overhead of the memory system may be reduced and a lifespan of the memory system may be improved.

Description

메모리 시스템의 리드 동작 방법 및 장치{APPARATUS AND METHOD FOR READING OPERATION IN MEMORY SYSTEM}Method and apparatus for read operation of a memory system {APPARATUS AND METHOD FOR READING OPERATION IN MEMORY SYSTEM}

본 발명은 메모리 시스템 및 메모리 시스템을 포함하는 데이터 처리 장치에 관한 것으로, 보다 구체적으로는 메모리 시스템의 리드 동작 방법과 장치에 관한 것이다. The present invention relates to a memory system and a data processing apparatus including the memory system, and more particularly, to a method and apparatus for a read operation of a memory system.

최근 컴퓨터 환경에 대한 패러다임(paradigm)이 언제, 어디서나 컴퓨터 시스템을 사용할 수 있도록 하는 유비쿼터스 컴퓨팅(ubiquitous computing)으로 전환되고 있다. 이로 인해 휴대폰, 디지털 카메라, 노트북 컴퓨터 등과 같은 휴대용 전자 장치의 사용이 급증하고 있다. 이와 같은 휴대용 전자 장치는 일반적으로 메모리 장치를 이용하는 메모리 시스템, 다시 말해 데이터 저장 장치를 사용한다. 데이터 저장 장치는 휴대용 전자 장치의 주 기억 장치 또는 보조 기억 장치로 사용된다. Recently, a paradigm for a computer environment is shifting to ubiquitous computing, which allows a computer system to be used anytime, anywhere. As a result, the use of portable electronic devices such as mobile phones, digital cameras, and notebook computers is rapidly increasing. Such portable electronic devices generally use a memory system using a memory device, that is, a data storage device. A data storage device is used as a main storage device or a secondary storage device of a portable electronic device.

메모리 장치를 이용한 데이터 저장 장치는 하드 디스크와 달리 기계적인 구동부가 없어서 안정성 및 내구성이 뛰어나며, 또한 정보의 액세스 속도가 매우 빠르고 전력 소모가 적다는 장점이 있다. 이러한 장점을 갖는 메모리 시스템의 일 예로 데이터 저장 장치는, USB(Universal Serial Bus) 메모리 장치, 다양한 인터페이스를 갖는 메모리 카드, 솔리드스테이트 드라이브(SSD: Solid State Drive) 등을 포함한다. A data storage device using a memory device, unlike a hard disk, does not have a mechanical driving part, so it has excellent stability and durability, and also has an advantage of very fast information access speed and low power consumption. As an example of a memory system having such an advantage, a data storage device includes a Universal Serial Bus (USB) memory device, a memory card having various interfaces, a solid state drive (SSD), and the like.

본 발명의 실시 예들은 메모리 시스템의 오버헤드를 줄일 수 있으며, 메모리 시스템의 수명을 향상시킬 수 있으며, 리드 동작의 수행 속도를 향상시키는 메모리 시스템, 데이터 처리 시스템 및 이들의 구동방법을 제공할 수 있다.SUMMARY Embodiments of the present invention may provide a memory system, a data processing system, and a driving method thereof, which can reduce overhead of a memory system, improve the lifespan of the memory system, and improve a read operation execution speed .

본 발명의 실시 예에 따른 메모리 시스템 및 데이터 처리 시스템 그리고 이들의 동작 방법은 호스트로부터 전달된 리드 명령에 대응하는 리드 동작 수행 시, 메모리 장치로부터 맵 데이터를 다운로딩하지 않기 때문에, 메모리 시스템의 오버헤드를 줄일 수 있으며, 메모리 시스템의 수명을 향상시킬 수 있으며, 리드 동작의 수행 속도를 향상시키는 메모리 시스템, 데이터 처리 시스템 및 이들의 구동방법을 제공할 수 있다.The memory system, the data processing system, and the operating method thereof according to an embodiment of the present invention do not download the map data from the memory device when the read operation corresponding to the read command transmitted from the host is performed, so that the overhead of the memory system is increased. It is possible to provide a memory system, a data processing system, and a driving method thereof, which can reduce the size of the memory system, improve the lifespan of the memory system, and improve the read operation execution speed.

또한, 본 발명의 실시 예에 따른 메모리 시스템 및 데이터 처리 시스템 그리고 이들의 동작 방법은 리드 동작 수행 시, 호스트로부터 수신되는 호스트 물리 주소의 유효성을 판단하여, 유효한 물리 주소인 경우 별도의 맵 데이터 탐색과정 없이 해당 물리 주소에 액세스하여 리드 동작의 수행 속도가 향상시키는 메모리 시스템, 데이터 처리 시스템 및 이들의 구동방법을 제공할 수 있다.In addition, embodiments of memory system and a data processing system according to, and their method of operation of the present invention when performing a read operation, to determine the validity of the host physical address received from the host, a valid physical address in case a separate map data search procedure It is possible to provide a memory system, a data processing system, and a driving method thereof, in which a read operation execution speed is improved by accessing a corresponding physical address without the need of access.

또한, 본 발명의 실시 예에 따른 메모리 시스템 및 데이터 처리 시스템 그리고 이들의 동작 방법은 리드 커맨드와 함께 수신된 호스트 물리 주소에 대해 관리 권한은 호스트가 아닌 메모리 시스템이 갖기 때문에, 호스트와 메모리 시스템 사이의 인터페이스를 변경할 필요가 없이 별도의 하드웨어 구성 혹은 자원을 추가 없이 기존의 인터페이스를 변경, 활용하여 구현할 수 있는 메모리 시스템, 데이터 처리 시스템 및 이들의 구동방법을 제공할 수 있다. Further, between the embodiment the memory system and a data processing system according to, and their method of operation of the invention because of administrative rights with respect to the host-physical address received with the read command is to have a memory system that is not a host, a host and the memory system, It is possible to provide a memory system, a data processing system, and a driving method thereof that can be implemented by changing and utilizing an existing interface without the need to change the interface and without adding additional hardware configuration or resources.

본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The technical problems to be achieved in the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those of ordinary skill in the art to which the present invention belongs from the description below. will be able

본 발명의 실시 예에 따른 메모리 시스템은 유저 데이터 및 유저 데이터의 메타 데이터를 저장하는 비휘발성 메모리 장치; 및 비휘발성 메모리 장치를 제어하는 컨트롤러를 포함하며, 컨트롤러는 호스트로부터 리드 커맨드 및 메타 데이터와 함께 수신된 물리 주소의 유효성 여부를, 물리 주소에 저장된 메타 데이터를 이용하여 판단할 수 있다. 컨트롤러는 물리 주소가 유효하면, 물리 주소에 저장된 유저 데이터를 호스트로 전송할 수 있다. 컨트롤러는 물리 주소의 유효성 여부를 판단하기 위해, 물리 주소에 저장된 메타 데이터를 비휘발성 메모리 장치로부터 리드-아웃하는 동안, 물리 주소에 저장된 유저 데이터도 리드-아웃하여 임시 저장할 수 있다. 물리 주소가 유효하면, 컨트롤러는 임시 저장된 유저 데이터를 호스트로 전송할 수 있다. 비휘발성 메모리 장치에 저장된 메타 데이터의 최신을 저장하는 휘발성 메모리를 더 포함하며, 컨트롤러는, 휘발성 메모리에 저장된 최신 메타 데이터와 호스트로부터 수신된 메타 데이터의 동일여부를 판단하고, 동일하면 물리 주소의 유효성 여부를 판단하며, 최신 메타 데이터는 논리 주소에 대응되는 물리 주소가 변경될 때마다 업데이트될 수 있다. 동일 여부를 판단하는 동안, 물리 주소에 저장된 유저 데이터를 비휘발성 메모리 장치로부터 리드-아웃하여 임시 저장할 수 있다. 메타 데이터는 논리 주소 및 논리 주소가 포함된 L2P맵 정보의 맵버전을 포함할 수 있다. 물리 주소가 무효하면, 컨트롤러는 호스트로부터 수신된 논리 주소에 대응되는 물리 주소를 검색하고, 검색된 물리 주소에 저장된 유저 데이터에 호스트로 전송할 수 있다. 호스트로부터 수신된 맵버전은 호스트로부터 수신된 L2P맵 정보가 메모리 시스템으로부터 전송된 시점의 상태값을 가질 수 있다. 물리 주소에 저장된 맵버전은 유저 데이터가 물리 주소에 프로그램되는 시점의 상태값을 가지며, 물리 주소에 저장된 논리 주소는 물리 주소에 저장된 유저 데이터에 대응되는 논리 주소일 수 있다.A memory system according to an embodiment of the present invention includes: a nonvolatile memory device for storing user data and metadata of the user data; and a controller for controlling the nonvolatile memory device, wherein the controller may determine whether a physical address received from the host together with a read command and metadata is valid, using metadata stored in the physical address. If the physical address is valid, the controller may transmit user data stored in the physical address to the host. In order to determine whether the physical address is valid, the controller may read-out user data stored in the physical address while reading out the metadata stored in the physical address from the nonvolatile memory device and temporarily store the same. If the physical address is valid, the controller can send the temporarily stored user data to the host. and a volatile memory for storing the latest metadata stored in the non-volatile memory device, wherein the controller determines whether the latest metadata stored in the volatile memory is the same as the metadata received from the host, and if the same, the validity of the physical address It is determined, and the latest metadata may be updated whenever a physical address corresponding to a logical address is changed. While determining whether they are the same, the user data stored in the physical address may be read out from the nonvolatile memory device and temporarily stored. The metadata may include a logical address and a map version of L2P map information including logical addresses. If the physical address is invalid, the controller may search for a physical address corresponding to the logical address received from the host, and transmit user data stored in the retrieved physical address to the host. The map version received from the host may have a status value when the L2P map information received from the host is transmitted from the memory system. The map version stored in the physical address has a state value at the time when user data is programmed into the physical address, and the logical address stored in the physical address may be a logical address corresponding to the user data stored in the physical address.

본 발명의 실시 예에 따른 유저 데이터 및 유저 데이터의 메타 데이터를 저장하는 비휘발성 메모리 장치 및 메타 데이터의 최신 버전을 저장하는 컨트롤러를 포함하는 메모리 시스템의 동작 방법은 호스트로부터 리드 커맨드 및 메타 데이터와 함께 물리 주소를 수신하는 단계; 및 비휘발성 메모리 장치에 저장된 메타 데이터를 이용하여, 물리 주소의 유효성을 판단하는 단계를 포함할 수 있다. 컨트롤러는 물리 주소가 유효하면, 물리 주소에 저장된 유저 데이터를 호스트로 전송하는 단계를 더 포함할 수 있다. 물리 주소에 저장된 메타 데이터를 비휘발성 메모리 장치로부터 리드-아웃하는 동안, 물리 주소에 저장된 유저 데이터도 리드-아웃하여 임시 저장하는 단계를 더 포함할 수 있다. 물리 주소가 유효하면, 임시 저장된 유저 데이터를 호스트로 전송하는 단계를 더 포함할 수 있다. 최신 메타 데이터와 호스트로부터 수신된 메타 데이터의 동일여부를 판단하는 단계; 및 최신 메타 데이터와 호스트로부터 수신된 메타 데이터가 동일하면 물리 주소의 유효성 여부를 판단하는 단계를 수행할 수 있다. 동일여부를 판단하는 단계는 물리 주소에 저장된 유저 데이터를 비휘발성 메모리 장치로부터 리드-아웃하여 임시 저장하는 단계를 포함할 수 있다. 메타 데이터는 논리 주소 및 논리 주소가 포함된 L2P맵 정보의 맵버전을 포함할 수 있다. 물리 주소가 무효하면, 호스트로부터 수신된 논리 주소에 대응되는 물리 주소를 검색하는 단계; 및 검색된 물리 주소에 저장된 유저 데이터를 호스트로 전송하는 단계를 더 포함할 수 있다. 호스트로부터 수신된 맵버전은 호스트로부터 수신된 L2P맵 정보가 메모리 시스템으로부터 전송된 시점의 상태값을 가질 수 있다. 물리 주소에 저장된 맵버전은 유저 데이터가 물리 주소에 프로그램되는 시점의 상태값을 가지며, 물리 주소에 저장된 논리 주소는 물리 주소에 저장된 유저 데이터에 대응되는 논리 주소일 수 있다.According to an embodiment of the present invention, there is provided a method of operating a memory system including a non-volatile memory device for storing user data and meta data of user data and a controller for storing the latest version of meta data together with a read command and meta data from a host. receiving a physical address; and determining the validity of the physical address by using the metadata stored in the nonvolatile memory device. The controller may further include, if the physical address is valid, transmitting user data stored in the physical address to the host. The method may further include reading out user data stored in the physical address and temporarily storing the user data stored in the physical address while reading out the metadata stored in the physical address from the nonvolatile memory device. If the physical address is valid, the method may further include transmitting the temporarily stored user data to the host. determining whether the latest metadata is the same as the metadata received from the host; and determining whether the physical address is valid when the latest metadata and the metadata received from the host are the same. Determining whether the data is the same may include reading out user data stored in a physical address from a nonvolatile memory device and temporarily storing the user data. The metadata may include a logical address and a map version of L2P map information including logical addresses. if the physical address is invalid, retrieving a physical address corresponding to the logical address received from the host; and transmitting the user data stored in the found physical address to the host. The map version received from the host may have a status value when the L2P map information received from the host is transmitted from the memory system. The map version stored in the physical address has a state value at the time when user data is programmed into the physical address, and the logical address stored in the physical address may be a logical address corresponding to the user data stored in the physical address.

본 발명에 따른 메모리 시스템, 데이터 처리 시스템 및 이들의 구동방법에 대한 효과에 대해 설명하면 다음과 같다. The effects of the memory system, the data processing system, and the driving method thereof according to the present invention will be described as follows.

본 발명의 실시 예들은 메모리 시스템의 오버헤드를 줄일 수 있으며, 메모리 시스템의 수명을 향상시킬 수 있으며, 리드 동작의 수행 속도를 향상시키는 효과를 제공할 수 있다.Embodiments of the present invention may reduce the overhead of the memory system, improve the lifespan of the memory system, and provide the effect of improving the performance speed of the read operation.

또한, 본 발명의 실시 예들은 리드 동작의 수행 속도가 향상되는 효과 및 호스트로부터 수신되는 물리 주소의 유효성 빠르고 정확하게 판단할 수 있는 효과를 제공할 수 있다.In addition, embodiments of the present invention can provide an effect of improving the read operation execution speed and of quickly and accurately determining the validity of a physical address received from a host.

또한, 본 발명의 실시 예들은 리드 동작의 효율 및 신뢰성을 향상시키는 효과를 제공할 수 있다.In addition, embodiments of the present invention may provide an effect of improving the efficiency and reliability of a read operation.

본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다. The effects obtainable in the present invention are not limited to the above-mentioned effects, and other effects not mentioned will be clearly understood by those of ordinary skill in the art to which the present invention belongs from the following description.

도 1은 본 발명의 일 실시예에 따른 맵 정보의 공유 방법을 설명한다.
도 2는 본 발명의 일 실시 예에 따른 메모리 시스템을 포함하는 데이터 처리 시스템의 일 예를 개략적으로 도시한다.
도 3은 본 발명의 일 실시예에 따른 메모리 시스템 내 컨트롤러를 설명한다.
도 4는 본 발명의 일 실시예에 따른 데이터 처리 시스템에서 호스트와 메모리 시스템의 구성을 설명한다.
도 5는 본 발명의 일 실시예에 따른 데이터 처리 시스템에서 호스트와 메모리 시스템의 리드 동작을 설명한다.
도 6a 및 도 6b는 본 발명의 일 실시예에 따른 데이터 처리 시스템에서 호스트와 메모리 시스템의 트랜잭션의 제1예 및 제2예를 설명한다.
도 7a 내지 도 7d은 본 발명의 일 실시예에 따른 호스트와 메모리 시스템의 제1 동작 내지 제4 동작을 설명한다.
도 8a 내지 도 8c은 본 발명의 일 실시예에 따른 메모리 시스템의 리드 동작을 설명한다.
도 9 내지 도 12은 본 발명의 일 실시예에 따른 메모리 시스템의 쓰기 동작을 설명한다.
1 illustrates a method of sharing map information according to an embodiment of the present invention.
2 schematically illustrates an example of a data processing system including a memory system according to an embodiment of the present invention.
3 illustrates a controller in a memory system according to an embodiment of the present invention.
4 illustrates the configuration of a host and a memory system in a data processing system according to an embodiment of the present invention.
5 illustrates a read operation between a host and a memory system in a data processing system according to an embodiment of the present invention.
6A and 6B illustrate first and second examples of a transaction between a host and a memory system in a data processing system according to an embodiment of the present invention.
7A to 7D illustrate first to fourth operations of a host and a memory system according to an embodiment of the present invention.
8A to 8C illustrate a read operation of a memory system according to an exemplary embodiment of the present invention.
9 to 12 illustrate a write operation of a memory system according to an embodiment of the present invention.

이하, 본 발명에 따른 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩뜨리지 않도록 생략될 것이라는 것을 유의하여야 한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings. It should be noted that, in the following description, only parts necessary for understanding the operation according to the present invention are described, and descriptions of other parts will be omitted so as not to obscure the gist of the present invention.

이하, 도면들을 참조하여 본 발명의 실시 예들에 대해서 보다 구체적으로 설명하기로 한다.Hereinafter, embodiments of the present invention will be described in more detail with reference to the drawings.

도 1은 본 발명의 일 실시예에 따른 맵 정보의 공유 방법을 설명한다.1 illustrates a method of sharing map information according to an embodiment of the present invention.

도 1을 참조하면, 호스트(102)와 메모리 시스템(110)이 연동할 수 있다. 호스트(102)는 컴퓨팅 장치로 이해될 수 있으며, 모바일 장치, 컴퓨터, 서버 등의 형태로 구현될 수 있다. 호스트(102)와 연동하는 메모리 시스템(110)은 호스트(102)로부터 명령을 수신하고, 수신한 명령에 대응하여 데이터를 저장하거나 출력할 수 있다.Referring to FIG. 1 , the host 102 and the memory system 110 may interwork. The host 102 may be understood as a computing device, and may be implemented in the form of a mobile device, computer, server, or the like. The memory system 110 interworking with the host 102 may receive a command from the host 102 and store or output data in response to the received command.

메모리 시스템(110)은 비휘발성 메모리셀을 포함하는 저장 공간을 가질 수 있다. 예를 들면, 메모리 시스템(110)은 플래시 메모리, 솔리드 스테이트 드라이브(solid-state drive, SSD) 등의 형태로 구현될 수 있다. The memory system 110 may have a storage space including nonvolatile memory cells. For example, the memory system 110 may be implemented in the form of a flash memory, a solid-state drive (SSD), or the like.

비휘발성 메모리셀을 포함하는 저장 공간에 호스트(102)가 요구한 데이터를 저장하기 위해서, 메모리 시스템(110)은 호스트(102)가 사용하는 파일 시스템과 비휘발성 메모리셀을 포함하는 저장 공간을 연결시키는 맵핑(mapping)을 수행할 수 있다. 예를 들면, 호스트(102)가 사용하는 파일 시스템에 따른 데이터의 주소를 논리 주소 혹은 논리 블록 주소라고 부를 수 있고, 비휘발성 메모리셀을 포함하는 저장 공간에서 데이터의 주소를 물리 주소 혹은 물리 블록 주소라고 부를 수 있다. 호스트(102)가 읽기 명령과 함께 논리 주소를 메모리 시스템(110)에 전달하는 경우, 메모리 시스템(110)은 논리 주소에 대응하는 물리 주소를 탐색한 후 탐색된 물리 주소에 저장된 데이터를 호스트(102)에 출력할 수 있다. 이러한 과정 중 메모리 시스템(110)이 호스트(102)가 전달한 논리 주소에 대응하는 물리 주소를 탐색하는 과정에서 맵핑(mapping)이 수행될 수 있다.In order to store data requested by the host 102 in the storage space including the non-volatile memory cell , the memory system 110 connects the file system used by the host 102 and the storage space including the non-volatile memory cell. mapping can be performed. For example, an address of data according to a file system used by the host 102 may be called a logical address or a logical block address, and an address of data in a storage space including a nonvolatile memory cell is a physical address or a physical block address. can be called When the host 102 transmits the logical address to the memory system 110 along with the read command, the memory system 110 searches for a physical address corresponding to the logical address and then transfers data stored in the searched physical address to the host 102 . ) can be printed. During this process, mapping may be performed while the memory system 110 searches for a physical address corresponding to the logical address transmitted by the host 102 .

메모리 시스템(110)이 수행하는 맵핑을 호스트(102)가 수행할 수 있다면, 메모리 시스템(110)이 호스트(102)가 전달한 읽기 명령에 대응하는 데이터를 출력하는 데 소요되는 시간이 줄어들 수 있다. 이를 위해, 호스트(102)가 맵핑을 통해 물리 주소를 메모리 시스템(110)에 전달하기 위해서, 호스트(102)가 맵핑을 수행하기 위한 맵 정보를 저장하거나 맵 정보에 직접 액세스할 수 있다. If the host 102 can perform the mapping performed by the memory system 110 , the time required for the memory system 110 to output data corresponding to the read command transmitted from the host 102 may be reduced. To this end, in order for the host 102 to transfer a physical address to the memory system 110 through mapping, the host 102 may store map information for performing mapping or directly access the map information.

도 1을 참조하면, 메모리 시스템(110)은 호스트(102)에 맵 정보(MAP INFO.)를 전송할 수 있다. 메모리 시스템(110)으로부터 맵 정보를 수신한 호스트(102)는 맵 정보를 호스트(102)가 포함하는 메모리에 저장할 수 있다. 메모리 시스템(110)이 호스트(102)에 맵 정보 전체를 전송하고, 호스트(102)가 전송된 맵 정보 전체를 저장할 수 있다면, 메모리 시스템(110)은 로그를 기록할 필요가 없을 수 있다. 하지만, 호스트(102)는 메모리 시스템(110)이 관리하는 맵 정보 전체를 저장하기 위해, 메모리 내 저장 공간을 할당하기 어려울 수 있다. 따라서, 메모리 시스템(110)은 호스트(102)가 자주 사용하는 데이터 혹은 논리 주소에 대한 맵 정보를 선별적으로 호스트(102)에 전송할 수 있다.Referring to FIG. 1 , the memory system 110 may transmit map information MAP INFO. to the host 102 . The host 102 receiving the map information from the memory system 110 may store the map information in a memory included in the host 102 . If the memory system 110 is transmitting the entire map information to the host 102 and host 102 can store the entire transmission map information, the memory system 110 may not need to record the log. However, it may be difficult for the host 102 to allocate a storage space in the memory to store the entire map information managed by the memory system 110 . Therefore, the memory system 110 may transmit the selective to the host 102 the data or map information on the logical address to the host (102) is often used.

한편, 맵 정보를 호스트(102)에 전송한 메모리 시스템(110)은 전송된 맵 정보에 대한 로그(log)를 생성할 수 있다. 생성된 로그(log)의 형식, 형태는 다양할 수 있으며, 비휘발성 메모리 셀을 포함하는 메모리 장치 또는 저장 영역에 저장될 수 있다. 실시예에 따라, 로그(log)는 히스토리(history)와 같은 데이터의 형태로, 메모리 시스템(110)이 맵 정보를 호스트(102)에 전송하는 이벤트가 발생할 때마다 전송된 맵 정보를 기록할 수 있다. 메모리 시스템(110)은 호스트(102)에 전송할 수 있는 맵 정보의 크기에 대응하여 로그 또는 히스토리에 기록되는 전송된 맵 정보의 양이 결정될 수 있다. 예를 들어, 메모리 시스템(110)이 호스트(102)에 전송할 수 있는 맵 정보의 크기가 512KB라고 가정할 수 있다. 메모리 시스템(110)이 호스트(102)에 512KB보다 많은 양의 맵 정보를 전송할 수 있지만, 로그(log)에 기록하는 전송된 맵 정보의 양은 512KB까지로 제한할 수 있다. 메모리 시스템(110)이 호스트(102)에 한번에 전송할 수 있는 맵 정보의 양은 호스트(102)가 저장할 수 있는 맵 정보의 양보다 작을 수 있다. 예를 들면, 맵 정보는 세그먼트(segment) 단위로 호스트(102)에 전송될 수 있다. 메모리 시스템(110)은 복수번의 전송을 통해 호스트(102)에 맵 정보를 전달할 수 있으며, 연속적으로 혹은 간헐적으로 맵 정보를 호스트(102)에 전달할 수도 있다.Meanwhile, the memory system 110 that has transmitted the map information to the host 102 may generate a log for the transmitted map information. The format and form of the generated log may vary, and may be stored in a memory device or a storage area including a non-volatile memory cell. According to an embodiment, the log is in the form of data such as history, and whenever an event in which the memory system 110 transmits the map information to the host 102 occurs, the transmitted map information may be recorded. have. The memory system 110 may determine the amount of transmitted map information recorded in the log or history corresponding to the size of the map information that can be transmitted to the host 102 . For example, it may be assumed that the size of map information that the memory system 110 can transmit to the host 102 is 512 KB. Although the memory system 110 may transmit a larger amount of map information to the host 102 than 512 KB, the amount of transmitted map information written to a log may be limited to 512 KB. The amount of map information that the memory system 110 can transmit to the host 102 at one time may be smaller than the amount of map information that the host 102 can store. For example, the map information may be transmitted to the host 102 in units of segments. The memory system 110 may transmit the map information to the host 102 through a plurality of transmissions, and may continuously or intermittently transmit the map information to the host 102 .

실시예에 따라, 메모리 시스템(110)이 호스트(102)에 1MB보다 많은 양의 맵 정보를 전송하는 경우, 호스트(102)는 메모리 시스템(110)이 전송한 시간 순서에 따라 오래된 맵 정보를 삭제할 수 있다. 또한, 메모리 시스템(110)이 호스트(102)에 전송된 맵 정보 중에는 업데이트 정보가 포함될 수 있다. 호스트(102)가 메모리 시스템(110)으로부터 전송된 맵 정보를 저장하기 위해 할당한 공간은 휘발성 메모리셀을 포함하고 있으므로, 호스트(102)는 다른 맵 정보의 삭제 없이 대응하는 맵 정보를 업데이트(갱신)할 수도 있다. According to the embodiment, when memory system 110 is transmitting a large amount of map information than 1MB in the host 102, host 102 is a memory system 110 is sent to delete the old map information according to the time sequence can Also, update information may be included in the map information transmitted from the memory system 110 to the host 102 . Since the space allocated by the host 102 to store the map information transmitted from the memory system 110 includes volatile memory cells, the host 102 updates (updates) the corresponding map information without deleting other map information. )You may.

호스트(102)는 저장된 맵 정보를 바탕으로 메모리 시스템(110)에 전달하는 명령에 물리 주소(PBA)를 포함할 수 있다. 맵핑을 수행하는 호스트(102)는 메모리 시스템(110)에 전달하는 명령에 대응하는 논리 주소를 바탕으로, 논리 주소에 대응하는 물리 주소를 저장하고 있는 맵 정보에서 찾을 수 있다. 물리 주소가 존재하면 호스트(102)는 메모리 시스템(110)에 물리 주소를 포함하는 명령을 전달할 수 있다. The host 102 may include a physical address (PBA) in a command transmitted to the memory system 110 based on the stored map information. The host 102 performing the mapping may be found in map information storing a physical address corresponding to the logical address based on the logical address corresponding to the command transmitted to the memory system 110 . If the physical address exists, the host 102 may send a command including the physical address to the memory system 110 .

호스트(102)로부터 물리 주소를 포함하는 명령을 수신한 메모리 시스템(110)은 해당 명령에 대응하는 커맨드 동작(command operation)을 수행할 수 있다. 전술한 예와 같이, 호스트(102)가 읽기 명령에 대응하는 물리 주소를 전달하는 경우, 메모리 시스템(110)은 해당 물리 주소를 이용하여 데이터를 액세스하고 출력함으로써 읽기 명령에 대응하는 커맨드 동작에 소요되는 시간을 줄일 수 있다. The memory system 110 receiving the command including the physical address from the host 102 may perform a command operation corresponding to the command. As in the above-described example, when the host 102 transmits a physical address corresponding to the read command, the memory system 110 uses the corresponding physical address to access and output data, thereby taking a command operation corresponding to the read command. time can be reduced.

호스트(102)와 메모리 시스템(110)에 전원이 공급되지 않으면(power off), 호스트(102) 내 휘발성 메모리셀을 포함하는 저장 공간에 저장된 맵 정보는 모두 사라지게 된다. 호스트(102)와 메모리 시스템(110)에 전원 공급은 사용자의 요구에 의해 발생하거나, 사용자의 요구와 무관하게 원하지 않는 상황에서도 발생할 수 있다. 호스트(102)와 메모리 시스템(110)에 전원 공급이 재개되면(power on), 메모리 시스템(110)은 호스트(102)에 맵 정보를 전송한 후 기록해 놓은 로그 또는 히스토리를 바탕으로, 호스트(102)에 전송할 맵 정보를 선별할 수 있다. 이후, 메모리 시스템(110)은 호스트(102)에 준비된 맵 정보를 전송하여, 전원 공급이 중단되기 전 호스트(102)가 맵핑을 수행하여 물리 주소를 포함하는 명령을 메모리 시스템(110)에 전달할 수 있었던 상태로 빠르게 회복할 수 있다. When power is not supplied to the host 102 and the memory system 110 , all map information stored in the storage space including the volatile memory cell in the host 102 disappears. Power supply to the host 102 and the memory system 110 may be generated by a user's request or may occur in an undesired situation regardless of a user's request. When power supply to the host 102 and the memory system 110 is resumed (power on), the memory system 110 transmits the map information to the host 102 and then, based on the log or history recorded, the host 102 ) to select map information to be transmitted. Then, the memory system 110 to send the map information prepared in the host 102, before the power failure, the host 102 is a command to perform the mapping includes a physical address to forward to the memory system (110) It can be quickly restored to the state it was in.

전원 공급이 중단되기 전과 전원 공급이 재개된 후, 호스트(102)와 메모리 시스템(110)을 사용하는 사용자의 니즈(needs)와 사용 패턴(usage pattern)은 유사하거나 상이할 수 있다. 만약 사용자의 니즈(needs)와 사용 패턴(usage pattern)이 유사하다면, 호스트(102)는 동일한 데이터에 대한 사용 혹은 접근의 빈도가 많을 수 있다. 이러한 데이터에 대해 호스트(102)가 맵핑을 수행하여 메모리 시스템(110)이 보다 빠르게 데이터를 출력할 수 있다면, 호스트(102)와 메모리 시스템(110)에 대한 사용자의 만족도는 높아질 수 있다.Before the power supply is stopped and after the power supply is resumed, the needs and usage patterns of users who use the host 102 and the memory system 110 may be similar or different. If user needs and usage patterns are similar, the host 102 may use or access the same data more frequently. If the host 102 performs mapping on such data so that the memory system 110 can output data more quickly , the user's satisfaction with the host 102 and the memory system 110 may be increased.

도 2는 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 데이터 처리 시스템의 일 예를 개략적으로 도시한 도면이다. 2 is a diagram schematically illustrating an example of a data processing system including a memory system according to an embodiment of the present invention.

도 2를 참조하면, 데이터 처리 시스템(100)은, 호스트(Host)(102) 및 메모리 시스템(110)을 포함한다. 호스트(102)는 전자 장치, 예컨대 휴대폰, MP3 플레이어, 랩탑 컴퓨터 등과 같은 휴대용 전자 장치들, 또는 데스크탑 컴퓨터, 게임기, TV, 프로젝터 등과 같은 전자 장치들을 포함, 즉 컴퓨팅 장치 혹은 유무선 전자 장치들을 포함할 수 있다.Referring to FIG. 2 , the data processing system 100 includes a host 102 and a memory system 110 . Host 102 may include electronic devices such as portable electronic devices such as mobile phones, MP3 players, laptop computers, etc., or electronic devices such as desktop computers, game consoles, TVs, projectors, etc., that is, computing devices or wired and wireless electronic devices. have.

또한, 호스트(102)는, 적어도 하나의 운영 시스템(OS: operating system)를 포함하며, 운영 시스템은, 호스트(102)의 기능 및 동작을 전반적으로 관리 및 제어하고, 데이터 처리 시스템(100) 또는 메모리 시스템(110)을 사용하는 사용자와 호스트(102) 간에 상호 동작을 제공한다. 여기서, 운영 시스템은, 사용자의 사용 목적 및 용도에 상응한 기능 및 동작을 지원하며, 예컨대, 호스트(102)의 이동성(mobility)에 따라 일반 운영 시스템과 모바일 운용 시스템으로 구분할 수 있다. 또한, 운영 시스템에서의 일반 운영 시스템 시스템은, 사용자의 사용 환경에 따라 개인용 운영 시스템과 기업용 운영 시스템으로 구분할 수 있으며, 일 예로, 개인용 운영 시스템은, 일반 사용자를 위한 서비스 제공 기능을 지원하도록 특성화된 시스템으로, 윈도우(windows) 및 크롬(chrome) 등을 포함하고, 기업용 운영 시스템은, 고성능을 확보 및 지원하도록 특성화된 시스템으로, 윈도 서버(windows server), 리눅스(linux) 및 유닉스(unix) 등을 포함할 수 있다. 아울러, 운영 시스템에서의 모바일 운영 시스템은, 사용자들에게 이동성 서비스 제공 기능 및 시스템의 절전 기능을 지원하도록 특성화된 시스템으로, 안드로이드(android), iOS, 윈도 모바일(windows mobile) 등을 포함할 수 있다. 이때, 호스트(102)는, 복수의 운영 시스템들을 포함할 수 있으며, 또한 사용자 요청(user request)에 상응한 메모리 시스템(110)과의 동작 수행을 위해 운영 시스템을 실행한다, 여기서, 호스트(102)는, 사용자 요청에 해당하는 복수의 커맨드들을 메모리 시스템(110)으로 전송하며, 그에 따라 메모리 시스템(110)에서는 커맨드들에 해당하는 동작들, 즉 사용자 요청에 상응하는 동작들을 수행한다.In addition, the host 102 includes at least one operating system (OS), which generally manages and controls functions and operations of the host 102 , the data processing system 100 or Provides interaction between a user using the memory system 110 and the host 102 . Here, the operating system supports functions and operations corresponding to the purpose and use of the user, and may be divided into, for example, a general operating system and a mobile operating system according to the mobility of the host 102 . In addition, the general operating system in the operating system can be divided into a personal operating system and an enterprise operating system according to the user's use environment. For example, the personal operating system is specialized to support a service provision function for general users. As a system, it includes windows and chrome, and the enterprise operating system is a system specialized to secure and support high performance, such as windows server, Linux and unix. may include. In addition, the mobile operating system in the operating system is a system specialized to support a function of providing a mobility service to users and a power saving function of the system, and may include Android, iOS, Windows mobile, and the like. . In this case, the host 102 may include a plurality of operating systems, and also executes the operating system to perform an operation with the memory system 110 corresponding to a user request, where the host 102 ) transmits a plurality of commands corresponding to a user request to the memory system 110 , and accordingly, the memory system 110 performs operations corresponding to the commands, that is, operations corresponding to the user request.

또한, 메모리 시스템(110)은, 호스트(102)의 요청에 응답하여 동작하며, 특히 호스트(102)에 의해서 액세스되는 데이터를 저장한다. 다시 말해, 메모리 시스템(110)은, 호스트(102)의 주 기억 장치 또는 보조 기억 장치로 사용될 수 있다. 여기서, 메모리 시스템(110)은 호스트(102)와 연결되는 호스트 인터페이스 프로토콜에 따라, 다양한 종류의 저장 장치들 중 어느 하나로 구현될 수 있다. 예를 들면, 메모리 시스템(110)은, 솔리드 스테이트 드라이브(SSD: Solid State Drive), MMC, eMMC(embedded MMC), RS-MMC(Reduced Size MMC), micro-MMC 형태의 멀티 미디어 카드(MMC: Multi Media Card), SD, mini-SD, micro-SD 형태의 시큐어 디지털(SD: Secure Digital) 카드, USB(Universal Storage Bus) 저장 장치, UFS(Universal Flash Storage) 장치, CF(Compact Flash) 카드, 스마트 미디어(Smart Media) 카드, 메모리 스틱(Memory Stick) 등과 같은 다양한 종류의 저장 장치들 중 어느 하나로 구현될 수 있다.In addition, the memory system 110, and operates in response to requests from the host 102, and particularly stores data accessed by a host (102). In other words, the memory system 110 may be used as a main storage device or an auxiliary storage device of the host 102 . Here, the memory system 110 may be implemented in accordance with a host interface protocol that is associated with the host 102, by any of a variety of types of storage devices. For example, the memory system 110 is a solid state drive (SSD: Solid State Drive), MMC, eMMC (embedded MMC), RS-MMC (Reduced Size MMC), micro-MMC type multi-media card (MMC: Multi Media Card), SD, mini-SD, micro-SD type Secure Digital (SD) card, USB (Universal Storage Bus) storage device, UFS (Universal Flash Storage) device, CF (Compact Flash) card, It may be implemented as any one of various types of storage devices, such as a smart media card and a memory stick.

아울러, 메모리 시스템(110)을 구현하는 저장 장치들은, DRAM(Dynamic Random Access Memory), SRAM(Static RAM) 등과 같은 휘발성 메모리 장치와, ROM(Read Only Memory), MROM(Mask ROM), PROM(Programmable ROM), EPROM(Erasable ROM), EEPROM(Electrically Erasable ROM), FRAM(Ferromagnetic ROM), PRAM(Phase change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), 플래시 메모리 등과 같은 비휘발성 메모리 장치로 구현될 수 있다.In addition, storage devices implementing the memory system 110 include volatile memory devices such as dynamic random access memory (DRAM) and static RAM (SRAM), read only memory (ROM), mask ROM (MROM), and programmable memory (PROM). ROM), Erasable ROM (EPROM), Electrically Erasable ROM (EEPROM), Ferromagnetic ROM (FRAM), Phase change RAM (PRAM), Magnetic RAM (MRAM), Resistive RAM (RRAM), Flash memory, etc. can be implemented.

그리고, 메모리 시스템(110)은, 호스트(102)에 의해서 액세스되는 데이터를 저장하는 메모리 장치(150), 및 메모리 장치(150)로의 데이터 저장을 제어하는 컨트롤러(130)를 포함한다.In addition, the memory system 110 includes a memory device 150 for storing data accessed by the host 102 , and a controller 130 for controlling data storage in the memory device 150 .

여기서, 컨트롤러(130) 및 메모리 장치(150)는 하나의 반도체 장치로 집적될 수 있다. 일 예로, 컨트롤러(130) 및 메모리 장치(150)는 하나의 반도체 장치로 집적되어 SSD를 구성할 수 있다. 메모리 시스템(110)이 SSD로 이용되는 경우, 메모리 시스템(110)에 연결되는 호스트(102)의 동작 속도는 보다 개선될 수 있다. 아울러, 컨트롤러(130) 및 메모리 장치(150)는, 하나의 반도체 장치로 집적되어 메모리 카드를 구성할 수도 있으며, 일 예로 PC 카드(PCMCIA: Personal Computer Memory Card International Association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD, SDHC), 유니버설 플래시 기억 장치(UFS) 등과 같은 메모리 카드를 구성할 수 있다.Here, the controller 130 and the memory device 150 may be integrated into one semiconductor device. For example, the controller 130 and the memory device 150 may be integrated into one semiconductor device to constitute an SSD. When the memory system 110 is used as an SSD, the operating speed of the host 102 connected to the memory system 110 may be further improved. In addition, the controller 130 and the memory device 150 may be integrated into one semiconductor device to constitute a memory card, for example, a PC card (PCMCIA: Personal Computer Memory Card International Association), a compact flash card (CF). , configure memory cards such as smart media cards (SM, SMC), memory sticks, multimedia cards (MMC, RS-MMC, MMCmicro), SD cards (SD, miniSD, microSD, SDHC), universal flash storage devices (UFS), etc. can do.

또한, 다른 일 예로, 메모리 시스템(110)은, 컴퓨터, UMPC(Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA(Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 태블릿 컴퓨터(tablet computer), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), e-북(e-book), PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), DMB(Digital Multimedia Broadcasting) 재생기, 3차원 텔레비전(3-dimensional television), 스마트 텔레비전(smart television), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 데이터 센터를 구성하는 스토리지, 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 전자 장치들 중 하나, 컴퓨터 네트워크를 구성하는 다양한 전자 장치들 중 하나, 텔레매틱스 네트워크를 구성하는 다양한 전자 장치들 중 하나, RFID(radio frequency identification) 장치, 또는 컴퓨팅 시스템을 구성하는 다양한 구성 요소들 중 하나 등을 구성할 수 있다.In addition, as another example, the memory system 110 is a computer, an Ultra Mobile PC (UMPC), a workstation, a net-book, a Personal Digital Assistants (PDA), a portable computer, a web tablet. ), tablet computer, wireless phone, mobile phone, smart phone, e-book, PMP (portable multimedia player), portable game machine, navigation (navigation) device, black box, digital camera, DMB (Digital Multimedia Broadcasting) player, 3-dimensional television, smart television, digital audio recorder, digital audio player, digital picture recorder, digital picture player, digital video recorder, digital video player, data center storage constituting a storage device, a device capable of transmitting and receiving information in a wireless environment, one of various electronic devices constituting a home network, one of various electronic devices constituting a computer network, and one of various electronic devices constituting a telematics network. One, a radio frequency identification (RFID) device, or one of various components constituting a computing system may be configured.

한편, 메모리 시스템(110)에서의 메모리 장치(150)는, 전원이 공급되지 않아도 저장된 데이터를 유지할 수 있으며, 특히 라이트(write) 동작을 통해 호스트(102)로부터 제공된 데이터를 저장하고, 리드(read) 동작을 통해 저장된 데이터를 호스트(102)로 제공한다. 여기서, 메모리 장치(150)는, 복수의 메모리 블록(memory block)들(152,154,156)을 포함하며, 각각의 메모리 블록들(152,154,156)은, 복수의 페이지들(pages)을 포함하며, 또한 각각의 페이지들은, 복수의 워드라인(WL: Word Line)들이 연결된 복수의 메모리 셀들을 포함한다. 또한, 메모리 장치(150)는, 복수의 메모리 블록들(152,154,156)이 각각 포함된 복수의 플래인들(plane)을 포함하며, 특히 복수의 플래인들이 각각 포함된 복수의 메모리 다이(memory die)들을 포함할 수 있다. 아울러, 메모리 장치(150)는, 비휘발성 메모리 장치, 일 예로 플래시 메모리가 될 수 있으며, 이때 플래시 메모리는 3차원(dimension) 입체 스택(stack) 구조가 될 수 있다.Meanwhile, the memory device 150 in the memory system 110 may maintain stored data even when power is not supplied, and in particular, stores data provided from the host 102 through a write operation, and reads the data. ) provides the stored data to the host 102 through the operation. Here, the memory device 150 includes a plurality of memory blocks 152 , 154 , and 156 , and each of the memory blocks 152 , 154 , 156 includes a plurality of pages, and each page These include a plurality of memory cells to which a plurality of word lines (WL) are connected. Also, the memory device 150 includes a plurality of planes each including a plurality of memory blocks 152 , 154 , and 156 , and in particular, a plurality of memory dies each including a plurality of planes. may include In addition, the memory device 150 may be a non-volatile memory device, for example, a flash memory, and in this case, the flash memory may have a three-dimensional (3D) stereoscopic stack structure.

그리고, 메모리 시스템(110)에서의 컨트롤러(130)는, 호스트(102)로부터의 요청에 응답하여 메모리 장치(150)를 제어한다. 예컨대, 컨트롤러(130)는, 메모리 장치(150)로부터 리드된 데이터를 호스트(102)로 제공하고, 호스트(102)로부터 제공된 데이터를 메모리 장치(150)에 저장하며, 이를 위해 컨트롤러(130)는, 메모리 장치(150)의 리드, 라이트, 프로그램(program), 이레이즈(erase) 등의 동작을 제어한다.In addition, the controller 130 in the memory system 110 controls the memory device 150 in response to a request from the host 102 . For example, the controller 130 provides data read from the memory device 150 to the host 102 , and stores the data provided from the host 102 in the memory device 150 . , controls operations such as read, write, program, and erase of the memory device 150 .

보다 구체적으로 설명하면, 컨트롤러(130)는, 호스트 인터페이스(Host I/F) 유닛(132), 프로세서(Processor)(134), 에러 정정 코드(ECC: Error Correction Code) 유닛(138), 파워 관리 유닛(PMU: Power Management Unit)(140), 메모리 인터페이스(Memory I/F) 유닛(142), 및 메모리(Memory)(144)를 포함한다.More specifically, the controller 130 includes a host interface (Host I/F) unit 132 , a processor 134 , an error correction code (ECC) unit 138 , and power management. It includes a power management unit (PMU) 140 , a memory interface (Memory I/F) unit 142 , and a memory 144 .

또한, 호스트 인터페이스 유닛(132)은, 호스트(102)의 커맨드(command) 및 데이터를 처리하며, USB(Universal Serial Bus), MMC(Multi-Media Card), PCI-E(Peripheral Component Interconnect-Express), SAS(Serial-attached SCSI), SATA(Serial Advanced Technology Attachment), PATA(Parallel Advanced Technology Attachment), SCSI(Small Computer System Interface), ESDI(Enhanced Small Disk Interface), IDE(Integrated Drive Electronics), MIPI(Mobile Industry Processor Interface) 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나를 통해 호스트(102)와 통신하도록 구성될 수 있다. 여기서, 호스트 인터페이스 유닛(132)은, 호스트(102)와 데이터를 주고 받는 영역으로 호스트 인터페이스 계층(HIL: Host Interface Layer, 이하 'HIL'이라 칭하기로 함)이라 불리는 펌웨어(firmware)를 통해 구동될 수 있다.In addition, the host interface unit 132 processes a command and data of the host 102 , a Universal Serial Bus (USB), a Multi-Media Card (MMC), and a Peripheral Component Interconnect-Express (PCI-E). , Serial-attached SCSI (SAS), Serial Advanced Technology Attachment (SATA), Parallel Advanced Technology Attachment (PATA), Small Computer System Interface (SCSI), Enhanced Small Disk Interface (ESD), Integrated Drive Electronics (IDE), MIPI ( and may be configured to communicate with the host 102 via at least one of a variety of interface protocols, such as a Mobile Industry Processor Interface). Here, the host interface unit 132 is an area for exchanging data with the host 102 and is to be driven through firmware called a host interface layer (HIL: Host Interface Layer, hereinafter referred to as 'HIL'). can

아울러, ECC 유닛(138)은, 메모리 장치(150)에서 처리되는 데이터의 에러 비트를 정정하며, ECC 인코더와 ECC 디코더를 포함할 수 있다. 여기서, ECC 인코더(ECC encoder)는 메모리 장치(150)에 프로그램될 데이터를 에러 정정 인코딩(error correction encoding)하여, 패리티(parity) 비트가 부가된 데이터를 생성하며, 패리티 비트가 부가된 데이터는, 메모리 장치(150)에 저장될 수 있다. 그리고, ECC 디코더(ECC decoder)는, 메모리 장치(150)에 저장된 데이터를 리드할 경우, 메모리 장치(150)로부터 리드된 데이터에 포함되는 에러를 검출 및 정정한다. 다시 말해, ECC 유닛(138)은, 메모리 장치(150)로부터 리드한 데이터를 에러 정정 디코딩(error correction decoding)한 후, 에러 정정 디코딩의 성공 여부를 판단하고, 판단 결과에 따라 지시 신호, 예컨대 에러 정정 성공(success)/실패(fail) 신호를 출력하며, ECC 인코딩 과정에서 생성된 패리티(parity) 비트를 사용하여 리드된 데이터의 에러 비트를 정정할 수 있다. 이때, ECC 유닛(138)은, 에러 비트 개수가 정정 가능한 에러 비트 한계치 이상 발생하면, 에러 비트를 정정할 수 없으며, 에러 비트를 정정하지 못함에 상응하는 에러 정정 실패 신호를 출력할 수 있다.In addition, the ECC unit 138 corrects an error bit of data processed by the memory device 150 , and may include an ECC encoder and an ECC decoder. Here, the ECC encoder performs error correction encoding on data to be programmed in the memory device 150 to generate data to which a parity bit is added, and the data to which the parity bit is added is, It may be stored in the memory device 150 . In addition, when reading data stored in the memory device 150 , the ECC decoder detects and corrects errors included in data read from the memory device 150 . In other words, the ECC unit 138 performs error correction decoding on the data read from the memory device 150 , and then determines whether the error correction decoding succeeds or not, and according to the determination result, an indication signal, for example, an error A correction success/fail signal may be output, and an error bit of the read data may be corrected using a parity bit generated during the ECC encoding process. At this time, when the number of error bits is greater than or equal to the correctable error bit limit, the ECC unit 138 may not correct the error bits and may output an error correction failure signal corresponding to the failure to correct the error bits.

여기서, ECC 유닛(138)은, LDPC(low density parity check) 코드(code), BCH(Bose, Chaudhri, Hocquenghem) 코드, 터보 코드(turbo code), 리드-솔로몬 코드(Reed-Solomon code), 컨벌루션 코드(convolution code), RSC(recursive systematic code), TCM(trellis-coded modulation), BCM(Block coded modulation) 등의 코디드 모듈레이션(coded modulation)을 사용하여 에러 정정을 수행할 수 있으며, 이에 한정되는 것은 아니다. 또한, ECC 유닛(138)는 오류 정정을 위한 회로, 모듈, 시스템, 또는 장치를 모두 포함할 수 있다.Here, the ECC unit 138, LDPC (low density parity check) code (code), BCH (Bose, Chaudhri, Hocquenghem) code, turbo code (turbo code), Reed-Solomon code (Reed-Solomon code), convolution Error correction can be performed using coded modulation such as convolution code, recursive systematic code (RSC), trellis-coded modulation (TCM), and block coded modulation (BCM). it is not In addition, the ECC unit 138 may include all circuits, modules, systems, or devices for error correction.

그리고, PMU(140)는, 컨트롤러(130)의 파워, 즉 컨트롤러(130)에 포함된 구성 요소들의 파워를 제공 및 관리한다.In addition, the PMU 140 provides and manages the power of the controller 130 , that is, the power of components included in the controller 130 .

또한, 메모리 인터페이스 유닛(142)은, 컨트롤러(130)가 호스트(102)로부터의 요청에 응답하여 메모리 장치(150)를 제어하기 위해, 컨트롤러(130)와 메모리 장치(150) 간의 인터페이싱을 수행하는 메모리/스토리지(storage) 인터페이스가 된다. 여기서, 메모리 인터페이스 유닛(142)은, 메모리 장치(150)가 플래시 메모리, 특히 일 예로 메모리 장치(150)가 NAND 플래시 메모리일 경우에 NAND 플래시 컨트롤러(NFC: NAND Flash Controller)로서, 프로세서(134)의 제어에 따라, 메모리 장치(150)의 제어 신호를 생성하고 데이터를 처리한다. 그리고, 메모리 인터페이스 유닛(142)은, 컨트롤러(130)와 메모리 장치(150) 간의 커맨드 및 데이터를 처리하는 인터페이스, 일 예로 NAND 플래시 인터페이스의 동작, 특히 컨트롤러(130)와 메모리 장치(150) 간 데이터 입출력을 지원하며, 메모리 장치(150)와 데이터를 주고 받는 영역으로 플래시 인터페이스 계층(FIL: Flash Interface Layer, 이하 'FIL'이라 칭하기로 함)이라 불리는 펌웨어(firmware)를 통해 구동될 수 있다.In addition, the memory interface unit 142 performs interfacing between the controller 130 and the memory device 150 so that the controller 130 controls the memory device 150 in response to a request from the host 102 . It becomes a memory/storage interface. Here, the memory interface unit 142 is a NAND flash controller (NFC) when the memory device 150 is a flash memory, in particular, for example, when the memory device 150 is a NAND flash memory, the processor 134 . A control signal of the memory device 150 is generated and data is processed under the control of . In addition, the memory interface unit 142 is an interface for processing commands and data between the controller 130 and the memory device 150 , for example, an operation of a NAND flash interface, in particular, data between the controller 130 and the memory device 150 . It supports input/output and is an area for exchanging data with the memory device 150 and may be driven through firmware called a Flash Interface Layer (FIL) (hereinafter referred to as 'FIL').

아울러, 메모리(144)는, 메모리 시스템(110) 및 컨트롤러(130)의 동작 메모리로서, 메모리 시스템(110) 및 컨트롤러(130)의 구동을 위한 데이터를 저장할 수 있다. 보다 구체적으로 설명하면, 메모리(144)는, 컨트롤러(130)가 호스트(102)로부터의 요청에 응답하여 메모리 장치(150)를 제어하는 과정 중 메모리 장치(150)로부터 리드된 데이터를 호스트(102)로 제공하기 전 임시 저장할 수 있다. 또한, 컨트롤러(130)는 호스트(102)로부터 제공된 데이터를 메모리 장치(150)에 저장하기 전, 메모리(144)에 임시 저정할 수 있다. 메모리 장치(150)의 리드, 라이트, 프로그램, 이레이즈(erase) 등의 동작을 제어할 경우, 메모리 시스템(110) 내 컨트롤러(130)와 메모리 장치(150) 사이에 전달되거나 발생하는 데이터는 메모리(144)에 저장될 수 있다. 예를 들어, 메모리(144)는 호스트(102)와 메모리 장치(150) 간 데이터 라이트 및 리드 등의 동작을 수행하기 위해 필요한 데이터, 및 데이터 라이트 및 리드 등의 동작 수행 시의 데이터를 저장할 수 있다. 이러한 데이터 저장을 위해, 메모리(144)는 프로그램 메모리, 데이터 메모리, 라이트 버퍼(buffer)/캐시(cache), 리드 버퍼/캐시, 데이터 버퍼/캐시, 맵(map) 버퍼/캐시 등을 포함할 수 있다.In addition, the memory 144 is an operating memory of the memory system 110 and the controller 130 , and may store data for driving the memory system 110 and the controller 130 . More specifically, the memory 144, the controller 130 is the data read from the memory device 150 of the process in response to the request for controlling the memory device 150, the host (102 from the host 102 ) can be temporarily saved before being provided. Also, the controller 130 may temporarily store data provided from the host 102 in the memory 144 before storing the data in the memory device 150 . When controlling operations such as read, write, program, and erase of the memory device 150 , data transferred or generated between the controller 130 and the memory device 150 in the memory system 110 is stored in the memory. (144) may be stored. For example, the memory 144 may store data required to perform data write and read operations between the host 102 and the memory device 150 , and data when data write and read operations are performed. . For storing such data, the memory 144 may include a program memory, data memory, write buffer/cache, read buffer/cache, data buffer/cache, map buffer/cache, and the like. have.

여기서, 메모리(144)는, 휘발성 메모리로 구현될 수 있으며, 예컨대 정적 랜덤 액세스 메모리(SRAM: Static Random Access Memory), 또는 동적 랜덤 액세스 메모리(DRAM: Dynamic Random Access Memory) 등으로 구현될 수 있다. 아울러, 메모리(144)는, 도 1에서 도시한 바와 같이, 컨트롤러(130)의 내부에 존재하거나, 또는 컨트롤러(130)의 외부에 존재할 수 있으며, 이때 메모리 인터페이스를 통해 컨트롤러(130)로부터 데이터가 입출력되는 외부 휘발성 메모리로 구현될 수도 있다.Here, the memory 144 may be implemented as a volatile memory, for example, a static random access memory (SRAM), a dynamic random access memory (DRAM), or the like. In addition, as shown in FIG. 1 , the memory 144 may exist inside the controller 130 or may exist outside the controller 130 , in which case data is transferred from the controller 130 through the memory interface. It may be implemented as an input/output external volatile memory.

그리고, 프로세서(134)는, 메모리 시스템(110)의 전체적인 동작을 제어하며, 특히 호스트(102)로부터의 라이트 요청 또는 리드 커맨드에 응답하여, 메모리 장치(150)에 대한 프로그램 동작 또는 리드 동작을 제어한다. 여기서, 프로세서(134)는, 메모리 시스템(110)의 제반 동작을 제어하기 위해 플래시 변환 계층(FTL: Flash Translation Layer, 이하 'FTL'이라 칭하기로 함)이라 불리는 펌웨어(firmware)를 구동한다. 또한, 프로세서(134)는, 마이크로프로세서 또는 중앙 처리 장치(CPU) 등으로 구현될 수 있다.In addition, the processor 134 controls the overall operation of the memory system 110 , and in particular, in response to a write request or a read command from the host 102 , controls a program operation or a read operation for the memory device 150 . do. Here, the processor 134 drives firmware called a Flash Translation Layer (FTL) to control the overall operation of the memory system 110 . In addition, the processor 134 may be implemented as a microprocessor or a central processing unit (CPU).

일 예로, 컨트롤러(130)는, 마이크로프로세서 또는 중앙 처리 장치(CPU) 등으로 구현된 프로세서(134)를 통해, 호스트(102)로부터 요청된 동작을 메모리 장치(150)에서 수행, 다시 말해 호스트(102)로부터 수신된 커맨드에 해당하는 커맨드 동작을, 메모리 장치(150)와 수행한다. 여기서, 컨트롤러(130)는, 호스트(102)로부터 수신된 커맨드에 해당하는 커맨드 동작으로 포그라운드(foreground) 동작을 수행, 예컨대 라이트 커맨드에 해당하는 프로그램 동작, 리드 커맨드에 해당하는 리드 동작, 이레이즈 커맨드(erase command)에 해당하는 이레이즈 동작, 셋 커맨드(set command)로 셋 파라미터 커맨드(set parameter command) 또는 셋 픽쳐 커맨드(set feature command)에 해당하는 파라미터 셋 동작 등을 수행할 수 있다. For example, the controller 130 performs an operation requested from the host 102 in the memory device 150 through the processor 134 implemented as a microprocessor or central processing unit (CPU), that is, the host ( A command operation corresponding to the command received from 102 is performed with the memory device 150 . Here, the controller 130 performs a foreground operation as a command operation corresponding to a command received from the host 102 , for example, a program operation corresponding to a write command, a read operation corresponding to a read command, and an erase operation. An erase operation corresponding to an erase command or a parameter set operation corresponding to a set parameter command or a set feature command may be performed as a set command.

마이크로프로세서 또는 중앙 처리 장치(CPU) 등으로 구현된 프로세서(134)를 통해, 컨트롤러(130)는 메모리 장치(150)에 대한 백그라운드(background) 동작을 수행할 수도 있다. 메모리 장치(150)에 대한 백그라운드 동작은, 메모리 장치(150)의 메모리 블록들(152, 154, 156)에서 임의의 메모리 블록에 저장된 데이터를 다른 임의의 메모리 블록으로 카피(copy)하여 처리하는 동작, 일 예로 가비지 컬렉션(GC: Garbage Collection) 동작, 메모리 장치(150)의 메모리 블록들(152, 154, 156) 간 또는 메모리 블록들(152, 154, 156)에 저장된 데이터 간을 스왑(swap)하여 처리하는 동작, 일 예로 웨어 레벨링(WL: Wear Leveling) 동작, 컨트롤러(130)에 저장된 맵 데이터를 메모리 장치(150)의 메모리 블록들(152, 154, 156)로 저장하는 동작, 일 예로 맵 플러시(map flush) 동작, 또는 메모리 장치(150)에 대한 배드 관리(bad management)하는 동작, 일 예로 메모리 장치(150)에 포함된 복수의 메모리 블록들(152,154,156)에서 배드 블록을 확인하여 처리하는 배드 블록 관리(bad block management) 동작 등을 포함할 수 있다.Through the processor 134 implemented as a microprocessor or a central processing unit (CPU), the controller 130 may perform a background operation on the memory device 150 . The background operation of the memory device 150 is an operation of copying data stored in one memory block in the memory blocks 152 , 154 , and 156 of the memory device 150 to another arbitrary memory block and processing it. , for example, a garbage collection (GC) operation, swapping between the memory blocks 152 , 154 , and 156 of the memory device 150 or data stored in the memory blocks 152 , 154 and 156 . and processing, for example, a wear leveling (WL) operation, and storing map data stored in the controller 130 into the memory blocks 152 , 154 and 156 of the memory device 150 , for example, a map A map flush operation, or an operation of bad management for the memory device 150, for example, checking and processing bad blocks in a plurality of memory blocks 152, 154, 156 included in the memory device 150 It may include a bad block management operation and the like.

호스트(102)로부터 수신된 복수의 커맨드들에 해당하는 복수의 커맨드 동작들에 대해, 컨트롤러(130)는 메모리 장치(150)에 포함된 복수의 메모리 다이들과 연결된 복수의 채널(channel)들 또는 웨이(way)들 중 적어도 하나를 선택하여 복수의 커맨드 동작들을 원할히 수행할 수 있다. 컨트롤러(130)는 호스트(102)로부터 전달되는 복수의 커맨드들에 해당하는 복수의 커맨드 동작들, 예컨대 복수의 라이트 커맨드들에 해당하는 복수의 프로그램 동작들, 복수의 리드 커맨드들에 해당하는 복수의 리드 동작들, 및 복수의 이레이즈 커맨드들에 해당하는 복수의 이레이즈 동작들을 수신할 수 있다. 복수의 동작들을 메모리 장치(150)에서 수행할 경우, 컨트롤러(130)는 복수의 채널(channel)들 또는 웨이(way)들의 상태를 바탕으로, 적합한 채널들(또는 웨이들)을 결정할 수 있다. 결정된 최상의 채널들(또는 웨이들)을 통해, 컨트롤러(130)는 호스트(102)로부터 수신된 커맨드들 해당하는 메모리 다이들로 전송할 수 있고, 커맨드들에 해당하는 커맨드 동작들을 수행한 메모리 다이들로부터 커맨드 동작들의 수행 결과들을 수신할 수 있다. 이후, 컨트롤러(130)는 커맨드 동작들의 수행 결과들을 호스트(120)로 제공할 수 있다. In response to a plurality of command operations corresponding to a plurality of commands received from the host 102 , the controller 130 performs a plurality of channels connected to a plurality of memory dies included in the memory device 150 or A plurality of command operations may be smoothly performed by selecting at least one of the ways. The controller 130 performs a plurality of command operations corresponding to a plurality of commands transmitted from the host 102 , for example, a plurality of program operations corresponding to a plurality of write commands and a plurality of read commands corresponding to a plurality of read commands. A plurality of erase operations corresponding to read operations and a plurality of erase commands may be received. When a plurality of operations are performed by the memory device 150 , the controller 130 may determine appropriate channels (or ways) based on states of the plurality of channels or ways. Through the determined best channels (or ways), the controller 130 may transmit commands received from the host 102 to corresponding memory dies, and from the memory dies that performed command operations corresponding to the commands. It is possible to receive execution results of command operations. Thereafter, the controller 130 may provide the execution results of the command operations to the host 120 .

컨트롤러(130)는 메모리 장치(150)에 포함된 복수의 메모리 다이들과 연결된 복수의 채널들(또는 웨이들)의 상태를 확인할 수 있다. 예컨대, 채널들 또는 웨이들의 상태는 비지(busy) 상태, 레디(ready) 상태, 액티브(active) 상태, 아이들(idle) 상태, 정상(normal) 상태, 비정상(abnormal) 상태 등으로 구분할 수 있다. 명령어 (및/또는 데이터)가 전달되는 채널 또는 방법의 컨트롤러 결정은 명령 (및/또는 데이터)이 전달되는 물리적 블록 어드레스와 연관될 수 있다. 컨트롤러(130)는 메모리 디바이스 (150)로부터 전달된 디스크립터(descriptor)를 참조할 수 있다. 디스크립터는 미리 결정된 포맷 또는 구조를 갖는 데이터로서, 메모리 장치(150)에 관한 무언가를 기술하는 파라미터의 블록 또는 페이지를 포함할 수 있다. 예를 들어, 디스크립터는 장치 디스크립터, 구성 디스크립터, 유닛 디스크립터 등을 포함할 수있다. 컨트롤러(130)는 명령 또는 데이터가 어떤 채널(들) 또는 방법(들)을 통해 교환되는지를 결정하기 위해 디스크립터를 참조하거나 사용한다.The controller 130 may check the states of a plurality of channels (or ways) connected to a plurality of memory dies included in the memory device 150 . For example, the states of channels or ways may be classified into a busy state, a ready state, an active state, an idle state, a normal state, an abnormal state, and the like. The controller determination of the channel or method over which instructions (and/or data) is passed may be associated with the physical block address over which instructions (and/or data) are passed. The controller 130 may refer to a descriptor transmitted from the memory device 150 . A descriptor is data having a predetermined format or structure, and may include a block or page of parameters that describe something about the memory device 150 . For example, descriptors may include device descriptors, configuration descriptors, unit descriptors, and the like. The controller 130 references or uses the descriptor to determine over which channel(s) or method(s) commands or data are exchanged.

컨트롤러(130)의 프로세서(134)에는 메모리 장치(150)의 배드 관리를 수행하기 위한 관리 유닛(도시하지 않음)이 포함될 수 있다. 관리 유닛은, 메모리 장치(150)에 포함된 복수의 메모리 블록들(152,154,156)에서 배드 블록을 확인한 후, 확인된 배드 블록을 배드 처리하는 배드 블록 관리를 수행할 수 있다. 여기서, 배드 블록 관리는, 메모리 장치(150)가 플래시 메모리, 예컨대 낸드 플래시 메모리일 경우, 낸드의 특성으로 인해 데이터 라이트, 예컨대 데이터 프로그램(program) 시에 프로그램 실패(program fail)가 발생할 수 있으며, 프로그램 실패가 발생한 메모리 블록을 배드(bad) 처리한 후, 프로그램 실패된 데이터를 새로운 메모리 블록에 라이트, 즉 프로그램하는 것을 의미한다. 또한, 메모리 장치(150)가, 전술한 바와 같이, 3차원 입체 스택 구조를 가질 경우에는, 프로그램 실패에 따라 해당 블록을 배드 블록으로 처리하면, 메모리 장치(150)의 사용 효율 및 메모리 시스템(100)의 신뢰성이 급격하게 저하되므로, 보다 신뢰성 있는 배드 블록 관리 수행이 필요하다. The processor 134 of the controller 130 may include a management unit (not shown) for performing bad management of the memory device 150 . The management unit may identify a bad block in the plurality of memory blocks 152 , 154 , and 156 included in the memory device 150 , and then perform bad block management of processing the checked bad block as bad. Here, in the bad block management, when the memory device 150 is a flash memory, for example, a NAND flash memory, a program failure may occur during data writing, for example, a data program due to the characteristics of the NAND, This refers to writing, ie, programming, data of the program failure to a new memory block after bad processing of the memory block in which the program failure has occurred. In addition, when the memory device 150 has a three-dimensional stack structure, as described above, if a corresponding block is treated as a bad block due to a program failure, the efficiency of use of the memory device 150 and the memory system 100 ) is rapidly reduced, so more reliable bad block management is required.

도 3는 본 발명의 일 실시예에 따른 메모리 시스템 내 컨트롤러를 설명한다.3 illustrates a controller in a memory system according to an embodiment of the present invention.

도 3을 참조하면, 호스트(102) 및 메모리 장치(150)와 연동하는 컨트롤러(130)는 호스트 인터페이스 유닛(132), 플래시 변환 계층(FTL) 유닛(40), 메모리 인터페이스 유닛(142) 및 메모리(144)를 포함할 수 있다. 도 4에서 설명하는 컨트롤러(130)는 도 1에서 설명한 복수의 메모리 시스템(110A, 110B, 110C)에 포함되는 컨트롤러(130)의 하나의 예일 수 있다Referring to FIG. 3 , the controller 130 interworking with the host 102 and the memory device 150 includes a host interface unit 132 , a flash translation layer (FTL) unit 40 , a memory interface unit 142 , and a memory. (144). The controller 130 described in FIG. 4 may be an example of the controller 130 included in the plurality of memory systems 110A, 110B, and 110C described in FIG. 1 .

도 3에서 도시되지 않았지만, 실시예에 따라, 도 2에서 설명한 ECC 유닛(138)은 플래시 변환 계층(FTL) 유닛(40)에 포함될 수 있다. 실시예에 따라, ECC 유닛(138)은 컨트롤러(130) 내 별도의 모듈, 회로, 또는 펌웨어 등으로 구현될 수도 있다.Although not shown in FIG. 3 , according to an embodiment, the ECC unit 138 described in FIG. 2 may be included in the flash translation layer (FTL) unit 40 . According to an embodiment, the ECC unit 138 may be implemented as a separate module, circuit, or firmware in the controller 130 .

호스트 인터페이스 유닛(132)은 호스트(102)로부터 전달되는 명령, 데이터 등을 주고받기 위한 것이다. 예를 들어, 호스트 인터페이스 유닛(132)은 호스트(102)로부터 전달되는 명령, 데이터 등을 순차적으로 저장한 뒤, 저장된 순서에 따라 출력할 수 있는 명령큐(56), 명령큐(56)로부터 전달되는 명령, 데이터 등을 분류하거나 처리 순서를 조정할 수 있는 버퍼관리자(52), 및 버퍼관리자(52)로부터 전달된 명령, 데이터 등의 처리를 위한 이벤트를 순차적으로 전달하기 위한 이벤트큐(54)를 포함할 수 있다. The host interface unit 132 is for sending and receiving commands and data transmitted from the host 102 . For example, the host interface unit 132 sequentially stores commands and data transmitted from the host 102 , and then transfers them from the command queue 56 and the command queue 56 that can be output according to the stored order. A buffer manager 52 capable of classifying commands, data, etc. or adjusting the processing sequence, and an event queue 54 for sequentially delivering events for processing commands, data, etc., delivered from the buffer manager 52 may include

호스트(102)로부터 명령, 데이터는 동일한 특성의 복수개가 연속적으로 전달될 수도 있고, 서로 다른 특성의 명령, 데이터가 뒤 섞여 전달될 수도 있다. 예를 들어, 데이터를 읽기 위한 명령어가 복수 개 전달되거나, 읽기 및 프로그램 명령이 교번적으로 전달될 수도 있다. 호스트 인터페이스 유닛(132)은 호스트(102)로부터 전달된 명령, 데이터 등을 명령큐(56)에 먼저 순차적으로 저장한다. 이후, 호스트(102)로부터 전달된 명령, 데이터 등의 특성에 따라 컨트롤러(130)가 어떠한 동작을 수행할 지를 예측할 수 있으며, 이를 근거로 명령, 데이터 등의 처리 순서나 우선 순위를 결정할 수도 있다. 또한, 호스트(102)로부터 전달된 명령, 데이터 등의 특성에 따라, 호스트 인터페이스 유닛(132) 내 버퍼관리자(52)는 명령, 데이터 등을 메모리(144)에 저장할 지, 플래시 변환 계층(FTL) 유닛(40)으로 전달할 지도 결정할 수도 있다. 이벤트큐(54)는 호스트(102)로부터 전달된 명령, 데이터 등에 따라 메모리 시스템 혹은 컨트롤러(130)가 내부적으로 수행, 처리해야 하는 이벤트를 버퍼관리자(52)로부터 수신한 후, 수신된 순서대로 플래시 변환 계층(FTL) 유닛(40)에 전달할 수 있다.A plurality of commands and data having the same characteristics may be continuously transmitted from the host 102, or commands and data having different characteristics may be mixed and transmitted. For example, a plurality of commands for reading data may be transmitted, or read and program commands may be transmitted alternately. The host interface unit 132 sequentially stores commands and data transmitted from the host 102 in the command queue 56 first. Thereafter, it is possible to predict what kind of operation the controller 130 will perform according to the characteristics of the command and data transmitted from the host 102 , and based on this, the processing order or priority of the command and data may be determined. In addition, according to the characteristics of the command, data, etc. transmitted from the host 102 , the buffer manager 52 in the host interface unit 132 stores the command, data, etc. in the memory 144 , the flash translation layer (FTL) It may also decide whether to forward to the unit 40 . The event queue 54 receives events to be internally executed and processed by the memory system or controller 130 according to commands and data transmitted from the host 102 from the buffer manager 52 and then flashes in the received order. may be passed to a transform layer (FTL) unit 40 .

실시예에 따라, 플래시 변환 계층(FTL) 유닛(40)은 이벤트규(54)로부터 수신된 이벤트를 관리하기 위한 호스트 요구 관리자(Host Request Manager(HRM), 46), 맵 데이터를 관리하는 맵데이터 관리자(Map Manger(MM), 44), 가비지 컬렉션 또는 웨어 레벨링을 수행하기 위한 상태 관리자(42), 메모리 장치 내 블록에 명령을 수행하기 위한 블록 관리자(48)를 포함할 수 있다.According to the embodiment, a flash translation layer (FTL) unit 40 is a map for managing the host request manager (Host Request Manager (HRM), 46), the map data for managing the event received from the event rules 54, data It may include a manager (Map Manager (MM) 44), a state manager 42 for performing garbage collection or wear leveling, and a block manager 48 for performing commands on blocks in the memory device.

예를 들면, 호스트 요구 관리자(HRM, 46)는 맵데이터 관리자(MM, 44) 및 블록 관리자(48)를 사용하여 호스트 인터페이스 유닛(132)으로부터 수신된 읽기 및 프로그램 명령, 이벤트에 따른 요청을 처리할 수 있다. 호스트 요구 관리자(HRM, 46)는 전달된 요청의 논리적 주소에 해당하는 물리적 주소를 파악하기 위해 맵데이터 관리자(MM, 44)에 조회 요청을 보내고 물리적 주소에 대해 메모리 인터페이스 유닛(142)에 플래시 리드 커맨드를 전송하여 리드 커맨드를 처리할 수 있다. 한편, 호스트 요구 관리자(HRM, 46)는 먼저 블록 관리자(48)에 프로그램 요청을 전송함으로써 미기록된(데이터가 없는) 메모리 장치의 특정 페이지에 데이터를 프로그램한 다음, 맵데이터 관리자(MM, 44)에 프로그램 요청에 대한 맵 갱신(update) 요청을 전송함으로써 논리적-물리적 주소의 매핑 정보에 프로그램한 데이터에 대한 내용을 업데이트할 수 있다.For example, the host request manager (HRM) 46 uses the map data manager (MM, 44) and the block manager 48 to process read and program commands received from the host interface unit 132, and requests according to events. can do. The host request manager (HRM, 46) sends an inquiry request to the map data manager (MM, 44) to determine the physical address corresponding to the logical address of the forwarded request, and flash reads the memory interface unit 142 for the physical address. The read command may be processed by sending the command. On the other hand, the host request manager (HRM, 46) first sends a program request to the block manager 48 to program data in a specific page of an unrecorded (no data) memory device, and then the map data manager (MM, 44) By sending a map update request for the program request to , it is possible to update the contents of data programmed in the mapping information of logical-physical addresses.

여기서, 블록 관리자(48)는 호스트 요구 관리자(HRM, 46), 맵데이터 관리자(MM, 44), 및 상태 관리자(42)가 요청한 프로그램 요청을 메모리 장치(150)를 위한 프로그램 요청으로 변환하여 메모리 장치(150) 내 블록을 관리할 수 있다. 메모리 시스템(110, 도 2 참조)의 프로그램 혹은 쓰기 성능을 극대화하기 위해 블록 관리자(48)는 프로그램 요청을 수집하고 다중 평면 및 원샷 프로그램 작동에 대한 플래시 프로그램 요청을 메모리 인터페이스 유닛(142)으로 보낼 수 있다. 또한, 다중 채널 및 다중 방향 플래시 컨트롤러의 병렬 처리를 최대화하기 위해 여러 가지 뛰어난 플래시 프로그램 요청을 메모리 인터페이스 유닛(142)으로 전송할 수도 있다. Here, the block manager 48 converts the program request requested by the host request manager (HRM, 46), the map data manager (MM, 44), and the state manager 42 into a program request for the memory device 150 and converts the memory Blocks in the device 150 may be managed. To maximize the program or write performance of the memory system 110 (see FIG. 2 ), the block manager 48 may collect program requests and send flash program requests for multi-plane and one-shot program operations to the memory interface unit 142 . have. It may also send several outstanding flash program requests to the memory interface unit 142 to maximize the parallel processing of the multi-channel and multi-directional flash controller.

한편, 블록 관리자(48)는 유효 페이지 수에 따라 플래시 블록을 관리하고 여유 블록이 필요한 경우 유효한 페이지가 없는 블록을 선택 및 지우고, 쓰레기(garbage) 수집이 필요한 경우 가장 적게 유효한 페이지를 포함하고 있는 블록을 선택할 수 있다. 블록 관리자(48)가 충분한 빈 블록을 가질 수 있도록, 상태 관리자(42)는 가비지 수집을 수행하여 유효 데이터를 모아 빈 블록으로 이동시키고, 이동된 유효 데이터를 포함하고 있었던 블록들을 삭제할 수 있다. 블록 관리자(48)가 상태 관리자(42)에 대해 삭제될 블록에 대한 정보를 제공하면, 상태 관리자(42)는 먼저 삭제될 블록의 모든 플래시 페이지를 확인하여 각 페이지가 유효한지 여부를 확인할 수 있다. 예를 들어, 각 페이지의 유효성을 판단하기 위해, 상태 관리자(42)는 각 페이지의 스페어(Out Of Band, OOB) 영역에 기록된 논리 주소를 식별한 뒤, 페이지의 실제 주소와 맵 관리자(44)의 조회 요청에서 얻은 논리 주소에 매핑된 실제 주소를 비교할 수 있다. 상태 관리자(42)는 각 유효한 페이지에 대해 블록 관리자(48)에 프로그램 요청을 전송하고, 프로그램 작업이 완료되면 맵 관리자(44)의 갱신을 통해 매핑 테이블이 업데이트될 수 있다.On the other hand, the block manager 48 manages flash blocks according to the number of valid pages, selects and erases blocks without valid pages when free blocks are needed, and when garbage collection is required, blocks containing the least valid pages can be selected. In order for the block manager 48 to have sufficient free blocks, the state manager 42 may perform garbage collection to collect valid data, move it to an empty block, and delete blocks including the moved valid data. When the block manager 48 provides information about the blocks to be deleted to the state manager 42, the state manager 42 can first check all the flash pages of the block to be deleted to determine whether each page is valid. . For example, in order to determine the validity of each page, the state manager 42 identifies the logical address recorded in the Out Of Band (OOB) area of each page, and then the physical address of the page and the map manager 44 ) can compare the physical address mapped to the logical address obtained from the lookup request. The state manager 42 sends a program request to the block manager 48 for each valid page, and when the program operation is completed, the mapping table may be updated through the update of the map manager 44 .

맵 관리자(44)는 논리적-물리적 매핑 테이블을 관리하고, 호스트 요구 관리자(HRM, 46) 및 상태 관리자(42)에 의해 생성된 조회, 업데이트 등의 요청을 처리할 수 있다. 맵 관리자(44)는 전체 매핑 테이블을 플래시 메모리에 저장하고, 메몰시 소자(144) 용량에 따라 매핑 항목을 캐시할 수도 있다. 조회 및 업데이트 요청을 처리하는 동안 맵 캐시 미스가 발생하면, 맵 관리자(44)는 메모리 인터페이스 유닛(142)에 리드 커맨드를 전송하여 메모리 장치(150)에 저장된 매핑 테이블을 로드(load)할 수 있다. 맵 관리자(44)의 더티 캐시 블록 수가 특정 임계 값을 초과하면 블록 관리자(48)에 프로그램 요청을 보내서 깨끗한 캐시 블록을 만들고 더티 맵 테이블이 메모리 장치(150)에 저장될 수 있다.The map manager 44 may manage a logical-physical mapping table, and may process requests such as inquiry, update, etc. generated by the host request manager (HRM) 46 and the state manager 42 . The map manager 44 may store the entire mapping table in the flash memory, and cache the mapping items according to the capacity of the device 144 upon memory loss. If a map cache miss occurs while processing an inquiry and update request, the map manager 44 may transmit a read command to the memory interface unit 142 to load the mapping table stored in the memory device 150 . . When the number of dirty cache blocks of the map manager 44 exceeds a certain threshold, a program request is sent to the block manager 48 to create a clean cache block, and the dirty map table may be stored in the memory device 150 .

한편, 가비지 컬렉션이 수행되는 경우, 상태 관리자(42)가 유효한 페이지를 복사하는 동안 호스트 요구 관리자(HRM, 46)는 페이지의 동일한 논리 주소에 대한 데이터의 최신 버전을 프로그래밍하고 업데이트 요청을 동시에 발행할 수 있다. 유효한 페이지의 복사가 정상적으로 완료되지 않은 상태에서 상태 관리자(42)가 맵 업데이트를 요청하면 맵 관리자(44)는 매핑 테이블 업데이트를 수행하지 않을 수도 있다. 맵 관리자(44)는 최신 맵 테이블이 여전히 이전 실제 주소를 가리키는 경우에만 맵 업데이트를 수행하여 정확성을 보장할 수 있다.On the other hand, when garbage collection is performed, the host request manager (HRM) 46 will program the latest version of the data for the same logical address of the page and issue an update request at the same time while the state manager 42 copies valid pages. can When the state manager 42 requests a map update in a state where copying of a valid page is not normally completed, the map manager 44 may not perform the mapping table update. The map manager 44 can ensure accuracy by performing map updates only when the latest map table still points to the old real address.

메모리 장치(150)는, 복수의 메모리 블록들을, 하나의 메모리 셀에 저장 또는 표현할 수 있는 비트의 수에 따라, 단일 레벨 셀(SLC: Single Level Cell) 메모리 블록 및 멀티 레벨 셀(MLC: Multi Level Cell) 메모리 블록 등으로 포함할 수 있다. 여기서, SLC 메모리 블록은, 하나의 메모리 셀에 1 비트 데이터를 저장하는 메모리 셀들에 의해 구현된 복수의 페이지들을 포함하며, 데이터 연산 성능이 빠르며 내구성이 높다. 그리고, MLC 메모리 블록은, 하나의 메모리 셀에 멀티 비트 데이터(예를 들면, 2 비트 또는 그 이상의 비트)를 저장하는 메모리 셀들에 의해 구현된 복수의 페이지들을 포함하며, SLC 메모리 블록보다 큰 데이터 저장 공간을 가짐, 다시 말해 고집적화할 수 있다. 특히, 메모리 장치(150)는, MLC 메모리 블록으로, 하나의 메모리 셀에 2 비트 데이터를 저장할 수 있는 메모리 셀들에 의해 구현된 복수의 페이지들을 포함하는 MLC 메모리 블록뿐만 아니라, 하나의 메모리 셀에 3 비트 데이터를 저장할 수 있는 메모리 셀들에 의해 구현된 복수의 페이지들을 포함하는 트리플 레벨 셀(TLC: Triple Level Cell) 메모리 블록, 하나의 메모리 셀에 4 비트 데이터를 저장할 수 있는 메모리 셀들에 의해 구현된 복수의 페이지들을 포함하는 쿼드러플 레벨 셀(QLC: Quadruple Level Cell) 메모리 블록, 또는 하나의 메모리 셀에 5 비트 또는 그 이상의 비트 데이터를 저장할 수 있는 메모리 셀들에 의해 구현된 복수의 페이지들을 포함하는 다중 레벨 셀(multiple level cell) 메모리 블록 등을 포함할 수 있다.The memory device 150 stores a plurality of memory blocks in a single level cell (SLC) memory block and a multi level cell (MLC) according to the number of bits that can be stored or expressed in one memory cell. Cell) may be included as a memory block or the like. Here, the SLC memory block includes a plurality of pages implemented by memory cells storing 1-bit data in one memory cell, and has fast data operation performance and high durability. In addition, the MLC memory block includes a plurality of pages implemented by memory cells that store multi-bit data (eg, 2 bits or more bits) in one memory cell, and stores larger data than the SLC memory block. Having space, that is, it can be highly integrated. In particular, the memory device 150 is an MLC memory block, which includes not only an MLC memory block including a plurality of pages implemented by memory cells capable of storing 2-bit data in one memory cell, but also 3 in one memory cell. A triple level cell (TLC) memory block including a plurality of pages implemented by memory cells capable of storing bit data, a plurality of memory cells capable of storing 4-bit data in one memory cell A quadruple level cell (QLC) memory block containing pages of a multi-level including a plurality of pages implemented by memory cells capable of storing 5 bits or more bits of data in one memory cell It may include a multiple level cell memory block and the like.

여기서, 본 발명의 실시 예에서는, 설명의 편의를 위해, 메모리 장치(150)가, 플래시 메모리, 예컨대 NAND 플래시 메모리 등과 같은 비휘발성 메모리 등으로 구현되는 것을 일 예로 설명하지만, 상변환 메모리(PCRAM: Phase Change Random Access Memory), 저항 메모리(RRAM(ReRAM): Resistive Random Access Memory), 강유전체 메모리(FRAM: Ferroelectrics Random Access Memory), 및 스핀 주입 자기 메모리(STT-RAM(STT-MRAM): Spin Transfer Torque Magnetic Random Access Memory) 등과 같은 메모리들 중 어느 하나의 메모리로 구현될 수도 있다.Here, in the embodiment of the present invention, for convenience of description, the memory device 150 is implemented as a flash memory, for example, a non-volatile memory such as a NAND flash memory, etc. as an example, but a phase change memory (PCRAM: Phase Change Random Access Memory (RRAM): Resistive Random Access Memory (RRAM), Ferroelectrics Random Access Memory (FRAM), and Spin Injection Magnetic Memory (STT-RAM (STT-MRAM): Spin Transfer Torque) Magnetic Random Access Memory) may be implemented as any one of memories.

실시예에 따라, 메모리 시스템(110)에 포함된 컨트롤러(130)가, 메모리 시스템(110)의 메모리 장치(150)에 대한 복수의 채널들(또는 웨이들), 특히 메모리 장치(150)에 포함된 복수의 메모리 다이들과 컨트롤러(130) 간 채널들(또는 웨이들)의 상태를 확인하거나, 또는 복수의 메모리 시스템들에서 임의의 메모리 시스템, 예컨대 마스터 메모리 시스템의 컨트롤러가, 복수의 메모리 시스템들에 대한 복수의 채널들(또는 웨이들), 특히 마스터 메모리 시스템과 나머지 메모리 시스템들, 예컨대 마스터 메모리 시스템과 슬레이브 메모리 시스템들 간 채널들(또는 웨이들)의 상태를 확인한다. 다시 말해, 본 발명의 실시 예에서는, 메모리 장치(150)의 메모리 다이들에 대한 복수의 채널들(또는 웨이들), 또는 복수의 메모리 시스템들에 대한 복수의 채널들(또는 웨이들)이, 비지 상태, 레디 상태, 액티브 상태, 아이들 상태, 정상 상태, 비정상 상태 등인 지를 확인한다. 여기서, 본 발명의 실시 예에서는, 정상 상태에서 레디 상태 또는 아이들 상태의 채널들(또는 웨이들)을 최상의 채널들(또는 웨이들)로 결정할 수 있다. 특히, 본 발명의 실시 예에서는, 복수의 채널들(또는 웨이들)에서, 채널(또는 웨이)의 가용 용량이 정상 범위에 존재하거나 또는 채널(또는 웨이)의 동작 레벨이 정상 범위에 존재하는 채널들(또는 웨이들)을, 최상의 채널들로 결정한다. 여기서, 채널(또는 웨이)의 동작 레벨은, 각 채널들(또는 웨이들)에서의 동작 클럭, 파워 레벨, 전류/전압 레벨, 동작 타이밍, 온도 레벨 등에 의해 결정될 수 있다.According to an embodiment, the controller 130 included in the memory system 110 is included in a plurality of channels (or ways) for the memory device 150 of the memory system 110 , in particular, the memory device 150 . Checking the status of channels (or ways) between the plurality of memory dies and the controller 130, or a memory system in a plurality of memory systems, for example, a controller of a master memory system, Check the status of a plurality of channels (or ways) for , in particular, channels (or ways) between the master memory system and the remaining memory systems, eg, between the master memory system and the slave memory systems. In other words, in an embodiment of the present invention, a plurality of channels (or ways) for memory dies of the memory device 150, or a plurality of channels (or ways) for a plurality of memory systems, Check whether it is in a busy state, ready state, active state, idle state, normal state, or abnormal state. Here, in an embodiment of the present invention, it is possible to determine the channels (or ways) of the ready state or the idle state in the normal state as the best channels (or ways). In particular, in an embodiment of the present invention, in a plurality of channels (or ways), the usable capacity of the channel (or way) is in the normal range or the operating level of the channel (or the way) is in the normal range. Determines (or ways) as the best channels. Here, the operation level of the channel (or way) may be determined by the operation clock, power level, current/voltage level, operation timing, temperature level, and the like in each channel (or ways).

아울러, 본 발명의 실시 예에서는, 호스트(102)로부터 수신된 복수의 라이트 커맨드들에 해당하는 라이트 데이터를, 컨트롤러(130)의 메모리(144)에 포함된 버퍼(buffer)/캐시(cache)에 저장한 후, 버퍼/캐시에 저장된 데이터를 메모리 장치(150)에 포함된 복수의 메모리 블록들에 프로그램하여 저장, 다시 말해 프로그램 동작들을 수행하며, 또한 메모리 장치(150)로의 프로그램 동작들에 상응하여 맵 데이터를 업데이트한 후, 업데이트된 맵 데이터를 메모리 장치(150)에 포함된 복수의 메모리 블록들에 저장할 경우, 즉 호스트(102)로부터 수신된 복수의 라이트 커맨드들에 해당하는 프로그램 동작들을 수행할 경우를 일 예로 하여 설명하기로 한다. 그리고, 본 발명의 실시 예에서는, 메모리 장치(150)에 저장된 데이터에 대해, 호스트(102)로부터 복수의 리드 커맨드들을 수신할 경우, 리드 커맨드들에 해당하는 데이터의 맵 데이터를 확인하여, 메모리 장치(150)로부터 리드 커맨드들에 해당하는 데이터를 리드하며, 리드된 데이터를 컨트롤러(130)의 메모리(144)에 포함된 버퍼/캐시에 저장한 후, 버퍼/캐시에 저장된 데이터를 호스트(102)로부터 제공할 경우, 즉 호스트(102)로부터 수신된 복수의 리드 커맨드들에 해당하는 리드 동작들을 수행할 경우를 일 예로 하여 설명하기로 한다. 또한, 본 발명의 실시 예에서는, 메모리 장치(150)에 포함된 메모리 블록들에 대해, 호스트(102)로부터 복수의 이레이즈 커맨드들을 수신할 경우, 이레이즈 커맨드들에 해당하는 메모리 블록들을 확인한 후, 확인한 메모리 블록들에 저장된 데이터를 이레이즈하며, 이레이즈된 데이터에 상응하여 맵 데이터를 업데이트한 후, 업데이트된 맵 데이터를 메모리 장치(150)에 포함된 복수의 메모리 블록들에 저장할 경우, 즉 호스트(102)로부터 수신된 복수의 이레이즈 커맨드들에 해당하는 이레이즈 동작들을 수행할 경우를 일 예로 하여 설명하기로 한다. 아울러, 본 발명의 실시 예에서는, 아울러, 본 발명의 실시 예에서는, 전술한 호스트(102)로부터 복수의 라이트 커맨드들과 복수의 리드 커맨드들 및 복수의 이레이즈 커맨드들을 수신하여, 복수의 프로그램 동작들과 리드 동작들 및 이레이즈 동작들을 수행할 경우를 일 예로 하여 설명하기로 한다.In addition, according to an embodiment of the present invention, write data corresponding to a plurality of write commands received from the host 102 is stored in a buffer/cache included in the memory 144 of the controller 130 . After storing, the data stored in the buffer/cache is programmed into a plurality of memory blocks included in the memory device 150 and stored, that is, program operations are performed, and also corresponding to the program operations to the memory device 150 . After updating the map data, when the updated map data is stored in a plurality of memory blocks included in the memory device 150 , that is, program operations corresponding to a plurality of write commands received from the host 102 are performed. A case will be described as an example. Further, in an embodiment of the present invention, when a plurality of read commands are received from the host 102 with respect to data stored in the memory device 150 , map data of data corresponding to the read commands is checked, and the memory device The host 102 reads data corresponding to the read commands from 150 , stores the read data in a buffer/cache included in the memory 144 of the controller 130 , and then transfers the data stored in the buffer/cache to the host 102 . A case in which read operations corresponding to a plurality of read commands received from the host 102 are performed will be described as an example. In addition, in an embodiment of the present invention, when receiving a plurality of erase commands from the host 102 with respect to memory blocks included in the memory device 150 , after checking the memory blocks corresponding to the erase commands, , when data stored in the checked memory blocks is erased, and the map data is updated according to the erased data, and then the updated map data is stored in a plurality of memory blocks included in the memory device 150 , that is, A case in which erase operations corresponding to a plurality of erase commands received from the host 102 are performed will be described as an example. In addition, according to an embodiment of the present invention, a plurality of write commands, a plurality of read commands, and a plurality of erase commands are received from the above-described host 102 to perform a plurality of program operations. A case of performing read operations and erase operations will be described as an example.

또한, 본 발명의 실시 예에서는, 설명의 편의를 위해, 메모리 시스템(110)에서의 커맨드 동작들을, 컨트롤러(130)가 수행하는 것을 일 예로 하여 설명하지만, 전술한 바와 같이, 컨트롤러(130)에 포함된 프로세서(134)가, 예컨대 FTL을 통해, 수행할 수도 있다. 예컨대, 본 발명의 실시 예에서는, 컨트롤러(130)가, 호스트(102)로부터 수신된 라이트 커맨드들에 해당하는 유저 데이터(user data) 및 메타 데이터(meta data)를, 메모리 장치(150)에 포함된 복수의 메모리 블록들의 임의의 메모리 블록들에 프로그램하여 저장하거나, 호스트(102)로부터 수신된 리드 커맨드들에 해당하는 유저 데이터 및 메타 데이터를, 메모리 장치(150)에 포함된 복수의 메모리 블록들의 임의의 메모리 블록들로부터 리드하여 호스트(102)에 제공하거나, 또는 호스트(102)로부터 수신된 이레이즈 커맨드들에 해당하는 유저 데이터 및 메타 데이터를, 메모리 장치(150)에 포함된 복수의 메모리 블록들의 임의의 메모리 블록들에서 이레이즈한다.In addition, in the embodiment of the present invention, for convenience of description, command operations in the memory system 110 are described as an example that the controller 130 performs, but, as described above, the controller 130 The included processor 134 may perform, for example, via FTL. For example, in an embodiment of the present invention, the controller 130 includes user data and meta data corresponding to write commands received from the host 102 in the memory device 150 . User data and metadata corresponding to read commands received from the host 102 are programmed and stored in arbitrary memory blocks of the plurality of memory blocks included in the memory device 150 . A plurality of memory blocks included in the memory device 150 include user data and metadata corresponding to erase commands read from arbitrary memory blocks and provided to the host 102 or received from the host 102 . Erases from any memory blocks of

여기서, 메타 데이터에는, 프로그램 동작에 상응하여, 메모리 블록들에 저장된 데이터에 대한 논리적/물리적(L2P: Logical to Physical) 정보(이하, '논리적(logical) 정보'라 칭하기로 함)가 포함된 제1맵 데이터, 및 물리적/논리적(P2L: Physical to Logical) 정보(이하, '물리적(physical) 정보'라 칭하기로 함)가 포함된 제2맵 데이터가 포함되며, 또한 호스트(102)로부터 수신된 커맨드에 해당하는 커맨드 데이터에 대한 정보, 커맨드에 해당하는 커맨드 동작에 대한 정보, 커맨드 동작이 수행되는 메모리 장치(150)의 메모리 블록들에 대한 정보, 및 커맨드 동작에 상응한 맵 데이터 등에 대한 정보가 포함될 수 있다. 다시 말해, 메타 데이터에는, 호스트(102)로부터 수신된 커맨드에 해당하는 유저 데이터를 제외한 나머지 모든 정보들 및 데이터가 포함될 수 있다.Herein, the metadata includes logical/physical (L2P) information (hereinafter referred to as 'logical information') on data stored in memory blocks corresponding to a program operation. The first map data and the second map data including physical/logical (P2L: Physical to Logical) information (hereinafter referred to as 'physical information') are included, and also received from the host 102 Information on command data corresponding to a command, information on a command operation corresponding to the command, information on memory blocks of the memory device 150 on which the command operation is performed, and information on map data corresponding to the command operation, etc. may be included. In other words, the metadata may include all other information and data except for user data corresponding to a command received from the host 102 .

즉, 본 발명의 실시 예에서는, 컨트롤러(130)가 호스트(102)로부터 수신된 복수의 커맨드들에 해당하는 커맨드 동작들을 수행, 예컨대 호스트(102)로부터 복수의 라이트 커맨드들을 수신할 경우, 라이트 커맨드들에 해당하는 프로그램 동작들을 수행하며, 이때 라이트 커맨드들에 해당하는 유저 데이터를, 메모리 장치(150)의 메모리 블록들, 예컨대 메모리 블록들에서 이레이즈 동작이 수행된 빈(empty) 메모리 블록들, 오픈 메모리 블록(open memory block)들, 또는 프리 메모리 블록(free memory block)들에 라이트하여 저장하고, 또한 메모리 블록들에 저장된 유저 데이터에 대한 논리적 어드레스(logical address)와 물리적 어드레스(physical address) 간 매핑 정보, 즉 논리적 정보가 기록된 L2P 맵 테이블 또는 L2P 맵 리스트를 포함한 제1맵 데이터와, 유저 데이터가 저장된 메모리 블록들에 대한 물리적 어드레스와 논리적 어드레스 간 매핑 정보, 즉 물리적 정보가 기록된 P2L 맵 테이블 또는 P2L 맵 리스트를 포함한 제2맵 데이터를, 메모리 장치(150)의 메모리 블록들에서의 빈 메모리 블록들, 오픈 메모리 블록들, 또는 프리 메모리 블록들에 라이트하여 저장한다.That is, in the embodiment of the present invention, when the controller 130 receives a plurality of write commands from performing a command operation corresponding to the plurality of commands received from host 102, such as host 102, write command, Program operations corresponding to the above are performed, and in this case, the user data corresponding to the write commands are stored in memory blocks of the memory device 150 , for example, empty memory blocks in which an erase operation is performed on the memory blocks; It is written and stored in open memory blocks or free memory blocks, and between a logical address and a physical address for user data stored in the memory blocks. Mapping information, that is, first map data including an L2P map table or L2P map list in which logical information is recorded, and mapping information between physical addresses and logical addresses for memory blocks in which user data is stored, that is, P2L map in which physical information is recorded The second map data including the table or P2L map list is written and stored in empty memory blocks, open memory blocks, or free memory blocks in the memory blocks of the memory device 150 .

여기서, 컨트롤러(130)는, 호스트(102)로부터 라이트 커맨드들을 수신할 경우, 라이트 커맨드들에 해당하는 유저 데이터를 메모리 블록들에 라이트하여 저장하고, 메모리 블록들에 저장된 유저 데이터에 대한 제1맵 데이터와 제2맵 데이터 등을 포함하는 메타 데이터를 메모리 블록들에 저장한다. 특히, 컨트롤러(130)는, 유저 데이터의 데이터 세그먼트(data segment)들이 메모리 장치(150)의 메모리 블록들에 저장됨에 상응하여, 메타 데이터의 메타 세그먼트(meta segment)들, 다시 말해 맵 데이터의 맵 세그먼트(map segment)들로 제1맵 데이터의 L2P 세그먼트들과 제2맵 데이터의 P2L 세그먼트들을, 생성 및 업데이트한 후, 메모리 장치(150)의 메모리 블록들에 저장하며, 이때 메모리 장치(150)의 메모리 블록들에 저장된 맵 세그먼트들을, 컨트롤러(130)에 포함된 메모리(144)에 로딩하여, 맵 세그먼트들을 업데이트한다. Here, when receiving write commands from the host 102 , the controller 130 writes and stores user data corresponding to the write commands in memory blocks, and stores a first map for the user data stored in the memory blocks. Meta data including data and second map data is stored in memory blocks. In particular, the controller 130 stores meta segments of meta data, that is, a map of map data, in response to data segments of user data being stored in memory blocks of the memory device 150 . After generating and updating the L2P segments of the first map data and the P2L segments of the second map data as map segments, they are stored in memory blocks of the memory device 150 , at this time the memory device 150 . Map segments stored in the memory blocks of , are loaded into the memory 144 included in the controller 130 to update the map segments.

실시예에 따라, 호스트(102)로부터 복수의 라이트 커맨드들을 수신할 경우, 메모리 장치(150)에 대한 복수의 채널들(또는 웨이들)의 상태를 확인, 특히 메모리 장치(150)에 포함된 복수의 메모리 다이들과 연결된 복수의 채널들(또는 웨이들)의 상태를 확인한 후, 채널들(또는 웨이들)의 상태에 상응하여, 최상의 전송 채널들(또는 전송 웨이들)과 최상의 수신 채널들(또는 수신 웨이들)을 각각 독립적으로 결정한다. 그리고, 본 발명의 실시 예에서는, 라이트 커맨드에 해당하는 유저 데이터 및 메타 데이터를, 최상의 전송 채널들(또는 전송 웨이들)을 통해, 메모리 장치(150)의 해당하는 메모리 다이들로 전송하여 저장, 즉 프로그램 동작들을 수행하며, 또한 메모리 장치(150)의 해당하는 메모리 다이들에서 프로그램 동작들의 수행 결과들을, 최상의 수신 채널들(또는 수신 웨이들)을 통해, 메모리 장치(150)의 해당하는 메모리 다이들로부터 수신하여, 호스트(102)로 제공한다.According to an embodiment, when receiving a plurality of write commands from the host 102 , the state of a plurality of channels (or ways) for the memory device 150 is checked, in particular, a plurality of write commands included in the memory device 150 . After confirming the status of a plurality of channels (or ways) connected to the memory dies of , corresponding to the status of the channels (or ways), the best transmission channels (or transmission ways) and the best reception channels ( or reception ways) are independently determined. In addition, in an embodiment of the present invention, user data and metadata corresponding to the write command are transmitted and stored to the corresponding memory dies of the memory device 150 through the best transmission channels (or transmission ways); That is, program operations are performed, and the results of the program operations in the corresponding memory dies of the memory device 150 are displayed on the corresponding memory die of the memory device 150 through the best reception channels (or reception ways). received from the host 102 and provided to the host 102 .

아울러, 컨트롤러(130)는, 호스트(102)로부터 복수의 리드 커맨드들을 수신할 경우, 리드 커맨드들에 해당하는 리드 데이터를, 메모리 장치(150)로부터 리드하여, 컨트롤러(130)의 메모리(144)에 포함된 버퍼/캐시에 저장한 후, 버퍼/캐시에 저장된 데이터를 호스트(102)로부터 제공하여, 복수의 리드 커맨드들에 해당하는 리드 동작들을 수행한다. In addition, when receiving a plurality of read commands from the host 102 , the controller 130 reads read data corresponding to the read commands from the memory device 150 , and the memory 144 of the controller 130 . After being stored in the buffer/cache included in , the data stored in the buffer/cache is provided from the host 102 to perform read operations corresponding to a plurality of read commands.

실시예에 따라, 호스트(102)로부터 복수의 리드 커맨드들을 수신할 경우, 메모리 장치(150)에 대한 복수의 채널들(또는 웨이들)의 상태를 확인, 특히 메모리 장치(150)에 포함된 복수의 메모리 다이들과 연결된 복수의 채널들(또는 웨이들)의 상태를 확인한 후, 채널들(또는 웨이들)의 상태에 상응하여, 최상의 전송 채널들(또는 전송 웨이들)과 최상의 수신 채널들(또는 수신 웨이들)을 각각 독립적으로 결정한다. 그리고, 본 발명의 실시 예에서는, 리드 커맨드에 해당하는 유저 데이터 및 메타 데이터의 리드 커맨드를, 최상의 전송 채널들(또는 전송 웨이들)을 통해, 메모리 장치(150)의 해당하는 메모리 다이들로 전송하여 리드 동작들을 수행하며, 또한 메모리 장치(150)의 해당하는 메모리 다이들에서 리드 동작들의 수행 결과들, 다시 말해 리드 커맨드에 해당하는 유저 데이터 및 메타 데이터를, 최상의 수신 채널들(또는 수신 웨이들)을 통해, 메모리 장치(150)의 해당하는 메모리 다이들로부터 수신하여, 유저 데이터를 호스트(102)로 제공한다.According to an embodiment, when receiving a plurality of read commands from the host 102 , states of a plurality of channels (or ways) of the memory device 150 are checked, and in particular, a plurality of read commands included in the memory device 150 are checked. After confirming the status of a plurality of channels (or ways) connected to the memory dies of , corresponding to the status of the channels (or ways), the best transmission channels (or transmission ways) and the best reception channels ( or reception ways) are independently determined. In addition, in an embodiment of the present invention, a read command of user data and metadata corresponding to the read command is transmitted to the corresponding memory dies of the memory device 150 through the best transmission channels (or transmission ways). to perform read operations, and also to transmit results of read operations from corresponding memory dies of the memory device 150 , that is, user data and metadata corresponding to a read command, to the best reception channels (or reception ways). ), and provides user data to the host 102 by receiving from the corresponding memory dies of the memory device 150 .

또한, 컨트롤러(130)는, 호스트(102)로부터 복수의 이레이즈 커맨드들을 수신할 경우, 이레이즈 커맨드들에 해당하는 메모리 장치(150)의 메모리 블록들을 확인한 후, 메모리 블록들에 대한 이레이즈 동작들을 수행한다. Also, when receiving a plurality of erase commands from the host 102 , the controller 130 checks the memory blocks of the memory device 150 corresponding to the erase commands, and then performs an erase operation on the memory blocks. carry out the

실시예에 따라, 호스트(102)로부터 복수의 이레이즈 커맨드들을 수신할 경우, 메모리 장치(150)에 대한 복수의 채널들(또는 웨이들)의 상태를 확인, 특히 메모리 장치(150)에 포함된 복수의 메모리 다이들과 연결된 복수의 채널들(또는 웨이들)의 상태를 확인한 후, 채널들(또는 웨이들)의 상태에 상응하여, 최상의 전송 채널들(또는 전송 웨이들)과 최상의 수신 채널들(또는 수신 웨이들)을 각각 독립적으로 결정한다. 그리고, 본 발명의 실시 예에서는, 이레이즈 커맨드에 해당하는 메모리 장치(150)의 메모리 다이들에서 메모리 블록들에 대한 이레이즈 요청을, 최상의 전송 채널들(또는 전송 웨이들)을 통해, 메모리 장치(150)의 해당하는 메모리 다이들로 전송하여 이레이즈 동작들을 수행하며, 또한 메모리 장치(150)의 해당하는 메모리 다이들에서 이레이즈 동작들의 수행 결과들을, 최상의 수신 채널들(또는 수신 웨이들)을 통해, 메모리 장치(150)의 해당하는 메모리 다이들로부터 수신하여, 호스트(102)로 제공한다.According to an embodiment, when receiving a plurality of erase commands from the host 102 , the state of a plurality of channels (or ways) for the memory device 150 is checked, and in particular, the state of the plurality of channels (or ways) for the memory device 150 is checked. After checking the status of the plurality of channels (or ways) connected to the plurality of memory dies, the best transmission channels (or transmission ways) and the best reception channels according to the status of the channels (or ways) (or reception ways) are each independently determined. In addition, in an embodiment of the present invention, an erase request for memory blocks from the memory dies of the memory device 150 corresponding to the erase command is transmitted through the best transmission channels (or transmission ways) to the memory device. The erase operations are performed by transmitting to the corresponding memory dies of the memory device 150 , and the results of the erase operations in the corresponding memory dies of the memory device 150 are transmitted to the best reception channels (or reception ways). Through , received from the corresponding memory dies of the memory device 150, and provided to the host (102).

메모리 시스템(110)에서는, 호스트(102)로부터 복수의 커맨드들, 다시 말해 복수의 라이트 커맨드들과 복수의 리드 커맨드들 및 복수의 이레이즈 커맨드들을 수신할 경우, 특히 복수의 커맨드들을 순차적으로 동시에 수신할 경우, 전술한 바와 같이, 메모리 장치(150)에 대한 복수의 채널들(또는 웨이들)의 상태를 확인한 후, 채널들(또는 웨이들)의 상태에 상응하여, 최상의 전송 채널들(또는 전송 웨이들)과 최상의 수신 채널들(또는 수신 웨이들)을 각각 독립적으로 결정하며, 최상의 전송 채널들(또는 전송 웨이들)을 통해, 복수의 커맨드들에 해당하는 커맨드 동작들의 수행을, 메모리 장치(150)로 요청, 특히 메모리 장치(150)에 포함된 복수의 메모리 다이들에서 해당하는 커맨드 동작들의 수행을 요청하며, 또한 최상의 수신 채널들(또는 수신 웨이들)을 통해, 커맨드 동작들에 대한 수행 결과들을, 메모리 장치(150)의 메모리 다이들로부터 수신한다. 그리고, 본 발명의 실시 예에 따른 메모리 시스템(110)에서는, 최상의 전송 채널들(또는 전송 웨이들)을 통해 전송된 커맨드들과 최상의 수신 채널들(또는 수신 웨이들)을 통해 수신된 수행 결과들 간을 매칭하여, 호스트(102)로부터 수신된 복수의 커맨드들에 대한 응답을, 호스트(102)로 제공한다.In the memory system 110 , when receiving a plurality of commands, that is, a plurality of write commands, a plurality of read commands, and a plurality of erase commands from the host 102 , in particular, the plurality of commands are sequentially and simultaneously received. In this case, as described above, after checking the status of a plurality of channels (or ways) for the memory device 150 , the best transmission channels (or transmission channels) according to the status of the channels (or ways) Ways) and best reception channels (or reception ways) are each independently determined, and command operations corresponding to a plurality of commands are performed through the best transmission channels (or transmission ways), the memory device ( 150), in particular, requesting execution of corresponding command operations on a plurality of memory dies included in the memory device 150, and also performing command operations through the best reception channels (or reception ways). Results are received from memory dies of memory device 150 . And, in the memory system 110 according to an embodiment of the present invention, commands transmitted through the best transmission channels (or transmission ways) and execution results received through the best reception channels (or reception ways) a match to, a response to a plurality of commands received from host 102 between, and provides it to the host 102. the

실시예에 따라, 메모리 시스템(110)에 포함된 컨트롤러(130)가, 메모리 시스템(110)의 메모리 장치(150)에 대한 복수의 채널들(또는 웨이들), 특히 메모리 장치(150)에 포함된 복수의 메모리 다이들과 컨트롤러(130) 간 채널들(또는 웨이들)의 상태를 확인한 후, 메모리 장치(150)에 대한 최상의 전송 채널들(또는 전송 웨이들)과 최상의 수신 채널들(또는 수신 웨이들)을 각각 독립적으로 결정할 뿐만 아니라, 복수의 메모리 시스템들에서 임의의 메모리 시스템, 예컨대 마스터 메모리 시스템의 컨트롤러가, 복수의 메모리 시스템들에 대한 복수의 채널들(또는 웨이들), 특히 마스터 메모리 시스템과 나머지 메모리 시스템들, 예컨대 마스터 메모리 시스템과 슬레이브 메모리 시스템들 간 채널들(또는 웨이들)의 상태를 확인한 후, 메모리 시스템들에 대한 최상의 전송 채널들(또는 전송 웨이들)과 최상의 수신 채널들(또는 수신 웨이들)을 각각 독립적으로 결정한다. 다시 말해, 본 발명의 실시 예에서는, 메모리 장치(150)의 메모리 다이들에 대한 복수의 채널들(또는 웨이들), 또는 복수의 메모리 시스템들에 대한 복수의 채널들(또는 웨이들)이, 비지 상태, 레디 상태, 액티브 상태, 아이들 상태, 정상 상태, 비정상 상태 등인 지를 확인하며, 예컨대 정상 상태에서 레디 상태 또는 아이들 상태의 채널들(또는 웨이들)을 최상의 채널들(또는 웨이들)로 결정한다. 특히, 본 발명의 실시 예에서는, 복수의 채널들(또는 웨이들)에서, 채널(또는 웨이)의 가용 용량이 정상 범위에 존재하거나 또는 채널(또는 웨이)의 동작 레벨이 정상 범위에 존재하는 채널들(또는 웨이들)을, 최상의 채널들로 결정한다. 여기서, 채널(또는 웨이)의 동작 레벨은, 각 채널들(또는 웨이들)에서의 동작 클럭, 파워 레벨, 전류/전압 레벨, 동작 타이밍, 온도 레벨 등에 의해 결정될 수 있다. 또한, 본 발명의 실시 예에서는, 각 메모리 시스템들의 정보, 예컨대 각 메모리 시스템들 또는 각 메모리 시스템들에 포함된 컨트롤러(130) 및 메모리 장치(150)에서의 커맨드 동작들에 대한 능력(capability), 일 예로 커맨드 동작들에 대한 수행 능력(performance capability), 처리 능력(process capability), 처리 속도(process speed), 및 처리 레이턴시(process latency) 등에 상응하여, 복수의 메모리 시스템들에서, 마스터 메모리 시스템을 결정한다. 여기서, 마스터 메모리 시스템은, 복수의 메모리 시스템들 간의 경쟁을 통해, 결정될 수도 있으며, 일 예로 호스트(102)와 각 메모리 시스템들 간의 접속 순위에 따른 경쟁을 통해 결정될 수 있다.According to an embodiment, the controller 130 included in the memory system 110 is included in a plurality of channels (or ways) for the memory device 150 of the memory system 110 , in particular, the memory device 150 . After checking the status of channels (or ways) between the plurality of memory dies and the controller 130 , the best transmission channels (or transmission ways) and the best reception channels (or reception) for the memory device 150 . Ways) each independently, as well as a plurality of channels (or ways) for the plurality of memory systems, in particular the master memory, by a controller of any memory system in the plurality of memory systems, for example the master memory system. After checking the status of the channels (or ways) between the system and the rest of the memory systems, eg the master memory system and the slave memory systems, the best transmit channels (or transmit ways) and the best receive channels for the memory systems. (or reception ways) are each independently determined. In other words, in an embodiment of the present invention, a plurality of channels (or ways) for memory dies of the memory device 150, or a plurality of channels (or ways) for a plurality of memory systems, Check whether it is a busy state, a ready state, an active state, an idle state, a normal state, an abnormal state, etc., for example, determine the channels (or ways) in the ready state or idle state as the best channels (or ways) in the normal state do. In particular, in an embodiment of the present invention, in a plurality of channels (or ways), the usable capacity of the channel (or way) is in the normal range or the operating level of the channel (or the way) is in the normal range. Determines (or ways) as the best channels. Here, the operation level of the channel (or way) may be determined by the operation clock, power level, current/voltage level, operation timing, temperature level, and the like in each channel (or ways). In addition, in an embodiment of the present invention, information on each memory system, for example, the ability for command operations in each memory system or the controller 130 and the memory device 150 included in each memory system, For example, in a plurality of memory systems, the master memory system is configured to correspond to performance capability, process capability, process speed, and process latency for command operations. decide Here, the master memory system may be determined through competition between a plurality of memory systems, for example, through competition between the host 102 and each memory system according to a connection order between the memory systems.

실시예와 관련하여, 도 4 및 도 5은 호스트에 포함된 메모리를 메타 데이터를 저장하는 캐시(cashe) 장치로서 사용하는 예를 설명한다.In relation to the embodiment, FIGS. 4 and 5 describe an example of using a memory included in a host as a cache device for storing metadata.

도 4을 참조하면, 호스트(102)는 프로세서(104), 호스트 메모리(106) 및 호스트 컨트롤러 인터페이스(108)를 포함할 수 있다. 메모리 시스템(110)은 컨트롤러(130) 및 메모리 장치(150)를 포함할 수 있다. 도 4에서 설명하는 컨트롤러(130) 및 메모리 장치(150)는 도 2 내지 도 3에서 설명하는 컨트롤러(130) 및 메모리 장치(150)와 유사할 수 있다.Referring to FIG. 4 , the host 102 may include a processor 104 , a host memory 106 , and a host controller interface 108 . The memory system 110 may include a controller 130 and a memory device 150 . The controller 130 and the memory device 150 described in FIG. 4 may be similar to the controller 130 and the memory device 150 described in FIGS. 2 to 3 .

이하에서는, 도 4에서 설명하는 컨트롤러(130) 및 메모리 장치(150)와 도 2 내지 도 3에서 설명하는 컨트롤러(130) 및 메모리 장치(150)에서 기술적으로 구분될 수 있는 내용을 중심으로 설명한다. 특히, 컨트롤러(130) 내 논리 블록(160)은 도 3에서 설명하는 플래시 변환 계층(FTL) 유닛(40)에 대응할 수 있다. 하지만, 실시예에 따라, 컨트롤러(130) 내 논리 블록(160)은 플래시 변환 계층(FTL) 유닛(40)에서 설명하지 않은 역할과 기능을 더 수행할 수 있다.Hereinafter, content that can be technically distinguished from the controller 130 and the memory device 150 described in FIG. 4 and the controller 130 and the memory device 150 described in FIGS. 2 to 3 will be mainly described. . In particular, the logic block 160 in the controller 130 may correspond to the flash translation layer (FTL) unit 40 described in FIG. 3 . However, according to an embodiment, the logic block 160 in the controller 130 may further perform roles and functions not described in the flash translation layer (FTL) unit 40 .

호스트(102)는 호스트(102)와 연동하는 메모리 시스템(110)에 비하여 고성능의 프로세서(104) 및 대용량의 호스트 메모리(106)를 포함할 수 있다. 호스트(102) 내 프로세서(104) 및 호스트 메모리(106)는 메모리 시스템(110)과 달리 공간적 제약이 적고, 필요에 따라 프로세서(104) 및 호스트 메모리(106)의 하드웨어적인 업그레이드(upgrade)가 가능한 장점이 있다. 따라서, 메모리 시스템(110)이 동작 효율성을 높이기 위해, 호스트(102)가 가지는 자원(resource)을 활용할 수 있다. The host 102 may include a high-performance processor 104 and a large-capacity host memory 106 compared to the memory system 110 interworking with the host 102 . Host 102 within the processor 104 and host memory 106 is low, unlike space constraints, and the memory system 110, as needed, the hardware upgrade (upgrade) of the processor 104 and host memory 106 as possible There are advantages. Accordingly, in order to increase the operating efficiency of the memory system 110 , the resource of the host 102 may be utilized.

메모리 시스템(110)이 저장할 수 있는 데이터의 양이 증가하면서, 메모리 시스템(110)에 저장되는 데이터에 대응하는 메타 데이터의 양도 증가한다. 메모리 시스템(110) 내 컨트롤러(130)가 메타 데이터를 로딩(loading)할 수 있는 메모리(144)의 공간은 제한적이므로, 메타 데이터의 양이 증가는 컨트롤러(130)의 동작에 부담을 준다. 예를 들어, 컨트롤러(130)가 메타 데이터를 위해 할당할 수 있는 메모리(144) 내 공간의 제약으로 인해, 메타 데이터의 전부가 아닌 일부를 로딩(loading)할 수 있다. 만약 호스트(102)가 액세스하고자 하는 위치가 일부 로딩된 메타 데이터에 포함되지 않은 경우, 컨트롤러(130)는 로딩(loading)한 메타 데이터의 일부가 갱신되었다면 메모리 장치(150)에 다시 저장해야 하고, 호스트(102)가 액세스하고자 하는 위치에 대응하는 메타 데이터를 메모리 장치(150)로부터 읽어야 한다. 이러한 동작들은 컨트롤러(130)가 호스트(102)가 요구하는 읽기 혹은 쓰기 동작을 수행하기 위해 필요적으로 수행될 수 있으며, 메모리 시스템(110)의 동작 성능을 저하시킬 수 있다.As the amount of data that the memory system 110 can store increases, the amount of metadata corresponding to data stored in the memory system 110 also increases. Since the space of the memory 144 in which the controller 130 can load meta data in the memory system 110 is limited, an increase in the amount of meta data places a burden on the operation of the controller 130 . For example, due to the limitation of the space in the memory 144 that the controller 130 can allocate for the meta data, some but not all of the meta data may be loaded. If the location that the host 102 wants to access is not included in the partially loaded metadata, the controller 130 must re-store the loaded metadata in the memory device 150 if a portion of the loaded metadata is updated, Meta data corresponding to a location to be accessed by the host 102 must be read from the memory device 150 . These operations may be necessary for the controller 130 to perform a read or write operation requested by the host 102 , and may degrade the operating performance of the memory system 110 .

실시예에 따라, 컨트롤러(130)가 사용할 수 있는 메모리(144)에 비하여, 호스트(102)가 포함하는 호스트 메모리(106)의 저장 공간은 수십배에서 수천배 클 수 있다. 따라서, 메모리 시스템(110)은 컨트롤러(130)가 사용하는 메타 데이터(166)를 호스트(102) 내 호스트 메모리(106)에 전달하여, 호스트(102) 내 호스트 메모리(106)가 메모리 시스템(110)이 수행하는 주소변환과정을 위한 캐시(cashe) 메모리로 사용되도록 할 수 있다. 이 경우, 호스트(102)는 메모리 시스템(110)에 명령과 함께 논리적 주소를 전달하지 않고, 호스트 메모리(106)에 저장된 메타 데이터(166)를 바탕으로 논리적 주소를 물리적 주소로 변환한 후 명령과 함께 물리적 주소를 메모리 시스템(110)에 전달할 수 있다. 메모리 시스템(110)은 논리적 주소를 물리적 주소로 변환하는 과정을 생략할 수 있고, 전달되는 물리적 주소를 바탕으로 메모리 장치(150)에 액세스할 수 있다. 이 경우, 전술했던 컨트롤러(130)가 메모리(144)를 사용하면서 발생하는 동작 부담을 해소할 수 있어, 메모리 시스템(110)의 동작 효율성이 매우 높아질 수 있다.Depending on the embodiment, the storage space of the host memory 106, including a host (102) as compared to a controller 130, memory 144 that can be used may be thousands of times greater in several orders of magnitude. Therefore, the memory system 110 includes controller 130 that the metadata 166 is used to transfer to the host 102 within the host memory 106, the host 102 within the host memory 106, a memory system (110 ) can be used as a cache memory for the address translation process. In this case, the host 102 does not transmit the logical address together with the command to the memory system 110, but converts the logical address into a physical address based on the metadata 166 stored in the host memory 106 and then executes the command and Together, the physical address may be transferred to the memory system 110 . The memory system 110 may omit a process of converting a logical address into a physical address, and may access the memory device 150 based on the transferred physical address. In this case, since the above-described controller 130 can relieve the operational burden generated while using the memory 144 , the operational efficiency of the memory system 110 can be very high.

한편, 메모리 시스템(110)이 메타 데이터(166)를 호스트(102)에 전송하더라도, 메모리 시스템(110)이 메타 데이터(166)에 기준이 되는 정보의 관리(즉, 메타 데이터의 갱신, 삭제, 생성 등)를 수행할 수 있다. 메모리 시스템(110) 내 컨트롤러(130)는 메모리 장치(150)의 동작 상태에 따라 가비지 컬렉션, 웨어 레벨링 등의 백그라운 동작을 수행할 수 있고, 호스트(102)에서 전달된 데이터를 메모리 장치(150) 내 저장하는 물리적 위치(물리적 주소)를 결정할 수 있기 때문에, 메모리 장치(150) 내 데이터의 물리적인 주소는 변경될 수 있다. 따라서, 메타 데이터(166)의 기준이 되는 정보(source)의 관리는 메모리 시스템(110)이 맡을 수 있다.Meanwhile, even if the memory system 110 transmits the meta data 166 to the host 102 , the memory system 110 manages information that is a reference to the meta data 166 (that is, updates, deletes, and creation, etc.). The controller 130 in the memory system 110 may perform a background operation such as garbage collection and wear leveling according to the operating state of the memory device 150 , and transfer the data transmitted from the host 102 to the memory device 150 . ), a physical location (physical address) to be stored in the memory device 150 may be determined, so the physical address of data in the memory device 150 may be changed. Accordingly, the management of the information (source) serving as a reference for the meta data 166 may be managed by the memory system 110 .

즉, 메모리 시스템(110)은 이 메타 데이터(166)를 관리하는 과정에서, 호스트(102)에 전달한 메타 데이터(166)를 수정, 갱신할 필요가 있다고 판단되면, 메모리 시스템(110)은 호스트(102)에 메타 데이터(166)의 갱신을 요청할 수 있다. 호스트(102)는 메모리 시스템(110)의 요청에 대응하여, 호스트 메모리(106) 내 저장된 메타 데이터(166)를 갱신할 수 있다. 이를 통해, 호스트(102) 내 호스트 메모리(106)에 저장된 메타 데이터(166)가 최근 상태를 유지할 수 있으며, 호스트 컨트롤러 인터페이스(108)가 호스트 메모리(106)에 저장된 메타 데이터(166)를 사용하여 메모리 시스템(110)에 전달할 주소값을 변환하더라도 동작에 문제가 발생하지 않을 수 있다.That is, when the memory system 110 determines that it is necessary to modify or update the metadata 166 transmitted to the host 102 in the process of managing the metadata 166, the memory system 110 sends the metadata 166 to the host ( 102 ) may request an update of the metadata 166 . The host 102 may update the metadata 166 stored in the host memory 106 in response to a request from the memory system 110 . Through this, the metadata 166 stored in the host 102 within the host memory 106 may maintain a current state, and a host controller interface 108 uses the metadata 166 stored in the host memory 106 Even if the address value to be transmitted to the memory system 110 is converted, an operation problem may not occur.

한편, 호스트 메모리(106)에 저장되는 메타 데이터(166)는 논리적 주소(logical address)에 대응하는 물리적 주소(physical address)를 확인하기 위한 제1 맵핑 정보를 포함할 수 있다. 도 4를 참조하면, 논리적 주소(logical address)와 물리적 주소(physical address)를 대응시키는 메타 데이터에는 논리적 주소에 대응하는 물리적 주소를 확인하기 위한 제1 맵핑 정보와 물리적 주소에 대응하는 논리적 주소를 확인하기 위한 제2 맵핑 정보가 포함될 수 있다. 이 중, 호스트 메모리(106)에 저장되는 메타 데이터(166)는 제1 맵핑 정보를 포함할 수 있다. 제2 맵핑 정보는 주로 메모리 시스템(110)의 내부 동작을 위해 사용되며, 호스트(102)가 데이터를 메모리 시스템(110)에 저장하거나 특정 논리적 주소에 대응하는 데이터를 메모리 시스템(110)으로부터 읽기 위한 동작에는 사용되지 않을 수 있다. 실시예에 따라, 제2 맵핑 정보는 메모리 시스템(110)이 호스트(102)에 전송하지 않을 수 있다. Meanwhile, the metadata 166 stored in the host memory 106 may include first mapping information for identifying a physical address corresponding to a logical address. Referring to FIG. 4 , in metadata corresponding to a logical address and a physical address, first mapping information for identifying a physical address corresponding to the logical address and a logical address corresponding to the physical address are checked Second mapping information for Among them, the metadata 166 stored in the host memory 106 may include first mapping information. The second mapping information is mainly used for an internal operation of the memory system 110 , and the host 102 stores data in the memory system 110 or reads data corresponding to a specific logical address from the memory system 110 . May not be used for action. According to an embodiment, the memory system 110 may not transmit the second mapping information to the host 102 .

한편, 메모리 시스템(110) 내 컨트롤러(130)는 제1 맵핑 정보 혹은 제2 맵핑 정보를 관리(생성, 삭제, 갱신 등)하면서, 제1 맵핑 정보 혹은 제2 맵핑 정보를 메모리 장치(150)에 저장할 수 있다. 호스트(102) 내 호스트 메모리(106)는 휘발성 메모리 장치이므로, 호스트(102) 및 메모리 시스템(110)에 전원 공급이 중단되는 등의 이벤트가 발생하는 경우에 호스트(102) 내 호스트 메모리(106)에 저장된 메타 데이터(166)는 사라질 수 있다. 따라서, 메모리 시스템(110) 내 컨트롤러(130)는 호스트(102) 내 호스트 메모리(106)에 저장된 메타 데이터(166)를 최근 상태로 유지시킬 뿐만 아니라 최근 상태의 제1 맵핑 정보 혹은 제2 맵핑 정보를 메모리 장치(150)에 저장할 수 있다.Meanwhile, the controller 130 in the memory system 110 manages (creates, deletes, updates, etc.) the first mapping information or the second mapping information, and transmits the first mapping information or the second mapping information to the memory device 150 . can be saved Host 102 within the host memory (106) is a volatile memory device, the host 102, and if the memory system (110) for an event such as a power outage occurs, the host 102 within the host memory 106 Meta data 166 stored in may disappear. Therefore, the memory system 110 within the controller 130 includes a host 102 within the host as to maintain the metadata 166 stored in the memory 106 to the latest state as the current state the first mapping information or the second mapping information may be stored in the memory device 150 .

도 4 및 도 5를 참조하여, 호스트(102) 내 호스트 메모리(106)에 메타 데이터(166)가 저장된 경우, 호스트(102)가 메모리 시스템(110) 내 데이터를 읽는 동작을 설명한다.4 and 5 and, in the case where the metadata 166 stored in the host 102 within the host memory 106, the operation reads the data in the host 102, a memory system 110.

호스트(102)와 메모리 시스템(110)에 전원이 공급되고, 호스트(102)와 메모리 시스템(110)이 연동할 수 있다. 호스트(102)와 메모리 시스템(110)이 연동하면, 메모리 장치(150)에 저장된 메타 데이터(L2P MAP)가 호스트 메모리(106)로 전송될 수 있다.Power is supplied to the host 102 and the memory system 110, a can associate the host 102 and the memory system 110. When the host 102 and the memory system 110 work together, metadata (L2P MAP) stored in the memory device 150 may be transmitted to the host memory 106 .

호스트(102) 내 프로세서(104)에 의해 읽기 명령이 발생하면, 읽기 명령은 호스트 컨트롤러 인터페이스(108)에 전달된다. 호스트 컨트롤러 인터페이스(108)는 읽기 명령을 수신한 후, 호스트 메모리(106)에 읽기 명령에 대응하는 논리적 주소(Logical Address)를 전달한다. 호스트 메모리(106) 내 저장된 메타 데이터(L2P MAP)를 바탕으로, 호스트 컨트롤러 인터페이스(108)는 논리적 주소(Logical Address)에 대응하는 물리적 주소(Physical Address)를 인지할 수 있다. When a read command is generated by the processor 104 in the host 102 , the read command is transmitted to the host controller interface 108 . After receiving the read command, the host controller interface 108 transmits a logical address corresponding to the read command to the host memory 106 . Based on the meta data (L2P MAP) stored in the host memory 106 , the host controller interface 108 may recognize a physical address corresponding to the logical address.

호스트 컨트롤러 인터페이스(108)는 물리적 주소(Physical Address)와 함께 읽기 명령(Read CMD)을 메모리 시스템(110) 내 컨트롤러(130)에 전달한다. 컨트롤러(130)는 수신된 읽기 명령과 물리적 주소를 바탕으로, 메모리 장치(150)를 액세스할 수 있다. 메모리 장치(150) 내 물리적 주소에 대응하는 위치에 저장된 데이터는 호스트 메모리(106)로 전달될 수 있다. The host controller interface 108 transmits a read command (Read CMD) together with a physical address to the controller 130 in the memory system 110 . The controller 130 may access the memory device 150 based on the received read command and the physical address. Data stored in a location corresponding to a physical address in the memory device 150 may be transferred to the host memory 106 .

비휘발성 메모리 장치를 포함하는 메모리 장치(150)에서 데이터를 읽는 과정은 다른 비휘발성 메모리인 호스트 메모리(106) 등에서 데이터를 읽는 과정에 비해 많은 시간이 소요될 수 있다. 전술한 읽기 과정에는 컨트롤러(130)가 호스트(102)로부터 논리적 주소를 수신하여 대응하는 물리적 주소를 찾는 과정이 생략될 수 있다. 특히, 컨트롤러(130)가 물리적 주소를 찾아내는 과정에서 메모리 장치(150)를 액세스하여 메타 데이터를 읽어내는 동작이 사라질 수 있다. 이를 통해, 호스트(102)가 메모리 시스템(110)에 저장된 데이터를 읽어 내는 과정이 더욱 빨라질 수 있다.The process of reading data from the memory device 150 including the non-volatile memory device may take more time than the process of reading data from the host memory 106, which is another non-volatile memory. In the above-described read process, a process in which the controller 130 receives a logical address from the host 102 and finds a corresponding physical address may be omitted. In particular, while the controller 130 finds the physical address, the operation of accessing the memory device 150 and reading the metadata may disappear. Through this, a process by which the host 102 reads data stored in the memory system 110 may be further accelerated.

도 6a은 본 발명의 일 실시예에 따른 데이터 처리 시스템에서 호스트와 메모리 시스템의 트랜잭션의 제1예를 설명한다.6A illustrates a first example of a transaction between a host and a memory system in a data processing system according to an embodiment of the present invention.

도 6a을 참조하면, 맵 정보(MAP INFO.)를 저장하는 호스트(102)는 메모리 시스템(110)에 논리 주소(LBA)와 물리 주소(PBA)를 포함하는 읽기 명령(READ COMMAND)를 전달할 수 있다. 호스트(102)가 저장한 맵 정보 내 읽기 명령(READ COMMAND)에 대응하는 논리 주소(LBA)에 대응하는 물리 주소(PBA)가 있는 경우, 호스트(102)는 논리 주소(LBA)와 물리 주소(PBA)를 포함하는 읽기 명령(READ COMMAND)을 메모리 시스템(110)에 전송할 수 있다. 하지만, 호스트(102)가 저장한 맵 정보 내 읽기 명령(READ COMMAND)에 대응하는 논리 주소(LBA)에 대응하는 물리 주소(PBA)가 없는 경우, 호스트(102)는 물리 주소(PBA)가 없는 논리 주소(LBA)만을 포함하는 읽기 명령(READ COMMAND)을 메모리 시스템(110)에 전송할 수 있다. Referring to FIG. 6A , the host 102 storing the map information (MAP INFO.) may transmit a read command (READ COMMAND) including a logical address (LBA) and a physical address (PBA) to the memory system 110 . have. When there is a physical address (PBA) corresponding to a logical address (LBA) corresponding to a read command (READ COMMAND) in the map information stored by the host 102 , the host 102 provides a logical address (LBA) and a physical address ( A read command (READ COMMAND) including PBA) may be transmitted to the memory system 110 . However, if there is no physical address (PBA) corresponding to the logical address (LBA) corresponding to the host map information within the read commands (102) is stored (READ COMMAND), the host 102 is not a physical address (PBA) A read command including only the logical address LBA may be transmitted to the memory system 110 .

도 6a을 읽기 명령(READ COMMAND)을 예로 들어 설명하고 있으나, 실시예에 따라 호스트(102)가 메모리 시스템(110)에 전달할 수 있는 쓰기 명령 혹은 삭제 명령에도 적용될 수 있다.Although FIG. 6A is exemplified by a read command (READ COMMAND), it may also be applied to a write command or a delete command that the host 102 can transmit to the memory system 110 according to an embodiment.

도 6b은 본 발명의 일 실시예에 따른 데이터 처리 시스템에서 호스트와 메모리 시스템의 트랜잭션의 제2예를 설명한다.6B illustrates a second example of a transaction between a host and a memory system in a data processing system according to an embodiment of the present invention.

도 6b를 참조하면, 메모리 시스템(110)은 호스트(102)에 맵 정보(MAP INFO.)를 전달할 수 있다. 메모리 시스템(110)은 호스트(102)의 명령에 대한 응답(RESPONSE)을 이용하여 맵 정보(MAP INFO.)를 전달할 수 있다.Referring to FIG. 6B , the memory system 110 may transmit map information MAP INFO. to the host 102 . The memory system 110 may transmit the map information MAP INFO. using the response RESPONSE to the command of the host 102 .

맵 정보를 전송하기 위한 응답(RESPONSE)에는 특별한 제한이 없을 수 있다. 예를 들면, 읽기 명령에 대응하는 응답, 쓰기 명령에 대응하는 응답, 또는 삭제 명령에 대응하는 응답 등을 이용하여, 메모리 시스템(110)은 맵 정보를 호스트(102)에 전송할 수 있다. There may be no special restrictions on the response RESPONSE for transmitting map information. For example, the memory system 110 may transmit the map information to the host 102 using a response corresponding to a read command, a response corresponding to a write command, or a response corresponding to a delete command.

메모리 시스템(110)과 호스트(102)는 기 설정된 프로토콜에 따라 설정된 단위 형식에 따라 명령과 응답을 주고받을 수 있다. 예를 들면, 응답(RESPONSE)의 형식에는 기본 헤더, 호스트(102)가 전달한 명령의 성공 또는 실패로 인한 명령, 및 메모리 시스템(110)의 상태를 나타내는 추가 정보 등을 포함할 수 있다. 메모리 시스템(110)은 맵 정보를 응답(RESPONSE)에 포함시켜 호스트(102)로 전달할 수 있다.The memory system 110 and the host 102 may send and receive commands and responses according to a unit format set according to a preset protocol. For example, the format of the response RESPONSE may include a basic header, a command due to success or failure of the command transmitted by the host 102 , and additional information indicating the state of the memory system 110 . The memory system 110 may transmit the map information to the host 102 by including the map information in the response RESPONSE.

도 7a은 본 발명의 일 실시예에 따른 호스트와 메모리 시스템의 제1 동작을 설명한다. 구체적으로, 도 7a은 도 6a에서 설명한 호스트(102)와 메모리 시스템(110)과 같이 논리 주소(LBA)와 물리 주소(PBA)를 포함하는 명령어를 전달하는 호스트와 수신하는 메모리 시스템의 구체적인 동작에 대해서 설명한다. 7A illustrates a first operation of a host and a memory system according to an embodiment of the present invention. Specifically, FIG. 7A shows the specific operation of a host and a memory system that transmits and receives a command including a logical address (LBA) and a physical address (PBA), such as the host 102 and the memory system 110 described in FIG. 6A. explain about

도 7a를 참조하면, 호스트는 논리 주소(LBA)를 포함하는 명령(COMMAND)를 생성할 수 있다(812). 이후, 호스트는 논리 주소(LBA)에 대응하는 물리 주소(PBA)가 맵 정보에 있는 지를 확인할 수 있다(814). 물리 주소(PBA)가 없는 경우(814의 NO), 호스트는 논리 주소(LBA)를 포함하는 명령(COMMAND)을 전송할 수 있다(818). Referring to FIG. 7A , the host may generate a command COMMAND including a logical address LBA ( 812 ). Thereafter, the host may check whether a physical address (PBA) corresponding to the logical address (LBA) is present in the map information ( 814 ). If there is no physical address (PBA) (NO in 814), the host may send a command (COMMAND) including a logical address (LBA) (818).

반면, 물리 주소(PBA)가 있는 경우(814의 YES), 호스트는 논리 주소(LBA)를 포함하는 명령(COMMAND)에 물리 주소(PBA)를 추가할 수 있다(816). 호스트는 논리 주소(LBA)와 물리 주소(PBA)를 포함하는 명령(COMMAND)을 전송할 수 있다(818).On the other hand, if there is a physical address (PBA) (YES in 814), the host may add the physical address (PBA) to the command (COMMAND) including the logical address (LBA) (816). The host may send a command (COMMAND) including a logical address (LBA) and a physical address (PBA) (818).

메모리 시스템은 외부에서 전달되는 명령을 수신할 수 있다(822). 메모리 시스템은 수신한 명령에 물리 주소(PBA)가 포함되어 있는 지를 확인할 수 있다(814). 만약 수신한 명령에 물리 주소(PBA)가 없다면(824의 NO), 메모리 시스템은 수신한 명령에 포함된 논리 주소에 대응하는 물리 주소를 탐색할 수 있다(832).The memory system may receive an externally transmitted command ( 822 ). The memory system may check whether a physical address (PBA) is included in the received command ( 814 ). If there is no physical address (PBA) in the received command (NO in 824), the memory system may search for a physical address corresponding to the logical address included in the received command (832).

만약, 수신한 명령에 물리 주소(PBA)가 포함되어 있다면(824의 YES), 메모리 시스템은 물리 주소(PBA)가 유효한 지를 확인할 수 있다(826). 메모리 시스템이 맵 정보를 호스트에 전달하고, 호스트는 메모리 시스템이 전달한 맵 정보를 바탕으로 맵핑을 수행하여 물리 주소(PBA)를 명령에 포함시켜 전달할 수 있다. 하지만, 메모리 시스템이 호스트에 맵 정보를 전달한 후 메모리 시스템이 관리하는 맵 정보가 변경, 갱신될 수 있다. 이렇듯 맵 정보가 더티(dirty) 상태인 경우 호스트가 전달한 물리 주소(PBA)를 그대로 사용할 수 없으므로, 메모리 시스템은 수신한 명령에 포함된 물리 주소(PBA)가 유효한 지를 판단할 수 있다. 수신한 명령에 포함된 물리 주소(PBA)가 유효한 경우(826의 YES), 메모리 시스템은 물리 주소(PBA)를 사용하여 명령에 대응하는 동작을 수행할 수 있다(830).If the received command includes the physical address (PBA) (YES in 824), the memory system may check whether the physical address (PBA) is valid (826). The memory system transmits the map information to the host , and the host performs mapping based on the map information transmitted by the memory system, so that the physical address (PBA) can be included in the command and delivered. However, after the memory system transmits the map information to the host , the map information managed by the memory system may be changed or updated. As such, when the map information is dirty, the physical address (PBA) delivered by the host cannot be used as it is, so the memory system can determine whether the physical address (PBA) included in the received command is valid. If the physical address (PBA) included in the received command is valid (YES in 826), the memory system may use the physical address (PBA) to perform an operation corresponding to the command (830).

수신한 명령에 포함된 물리 주소(PBA)가 유효하지 않은 경우(826의 NO), 메모리 시스템은 수신한 명령에 포함된 물리 주소(PBA)를 무시할 수 있다(828). 이 경우, 메모리 시스템은 수신한 명령에 포함된 논리 주소(LBA)를 바탕으로 물리 주소(PBA)를 탐색할 수 있다(832).If the physical address (PBA) included in the received command is not valid (NO in 826 ), the memory system may ignore the physical address (PBA) included in the received command ( 828 ). In this case, the memory system may search for a physical address (PBA) based on the logical address (LBA) included in the received command ( 832 ).

도 7b은 본 발명의 일 실시예에 따른 호스트와 메모리 시스템의 제2 동작을 설명한다. 구체적으로, 도 7b은 호스트(102)가 메모리 시스템(110)에 맵 정보를 요구하고, 메모리 시스템(110)이 호스트(102)의 요구에 대응하여 맵 정보를 전송하는 과정을 설명한다. 7B illustrates a second operation of a host and a memory system according to an embodiment of the present invention. Specifically, FIG. 7B illustrates a process in which the host 102 requests map information from the memory system 110 and the memory system 110 transmits the map information in response to the request of the host 102 .

도 7b을 참조하면, 호스트(102)에서 맵 정보에 대한 니즈(needs)가 발생할 수 있다. 예를 들면, 호스트(102)가 맵 정보를 저장할 수 있는 공간을 할당할 수 있거나, 명령에 대응하여 메모리 시스템(110)으로부터 보다 빠른 데이터 입출력을 기대하는 경우, 호스트(102)에서는 맵 정보에 대한 니즈(needs)가 발생할 수 있다. 또한, 사용자의 요구에 의해서도 호스트(102)에서는 맵 정보에 대한 니즈(needs)가 발생할 수 있다.Referring to FIG. 7B , a need for map information may arise in the host 102 . For example, when the host 102 allocates a space for storing map information or expects faster data input/output from the memory system 110 in response to a command, the host 102 provides information about the map information. Needs may arise. Also, a need for map information may occur in the host 102 according to a user's request.

호스트(102)는 메모리 시스템(110)에 맵 정보를 요구할 수 있고, 호스트(102)의 요구에 대응하여 메모리 시스템(110)은 맵 정보를 준비할 수 있다. 실시에에 따라, 호스트(102)는 메모리 시스템(110)에 필요한 맵 정보를 구체적으로 요구할 수도 있다. 한편, 다른 실시예에서는 호스트(102)는 메모리 시스템(110)에 맵 정보를 요구할 뿐 어떠한 맵 정보를 제공할 지는 메모리 시스템(110)이 결정할 수도 있다. The host 102 may request map information from the memory system 110 , and the memory system 110 may prepare the map information in response to the request of the host 102 . Depending on the implementation, the host 102 may specifically request map information necessary for the memory system 110 . Meanwhile, in another embodiment, the host 102 may only request map information from the memory system 110 and the memory system 110 may determine which map information to provide.

메모리 시스템(110)은 준비된 맵 정보를 호스트(102)에 전달할 수 있다. 호스트(102)는 메모리 시스템(110)으로부터 전달된 맵 정보를 내부 저장 공간(예, 도 4에서 설명한 호스트 메모리(106))에 저장할 수 있다.The memory system 110 may transmit the prepared map information to the host 102 . The host 102 may store the map information transmitted from the memory system 110 in an internal storage space (eg, the host memory 106 described in FIG. 4 ).

호스트(102)는 저장된 맵 정보를 이용하여, 메모리 시스템(110)에 전송하는 명령(COMMAND)에 물리 주소(PBA)를 포함시켜 전달할 수 있다. 메모리 시스템(110)은 명령(COMMAND)에 포함된 물리 주소(PBA)를 이용하여 해당 동작을 수행할 수 있다. The host 102 may include the physical address PBA in a command COMMAND transmitted to the memory system 110 by using the stored map information. The memory system 110 may perform a corresponding operation using the physical address PBA included in the command COMMAND.

도 7c은 본 발명의 일 실시예에 따른 호스트와 메모리 시스템의 제3 동작을 설명한다. 구체적으로, 도 7c은 메모리 시스템(110)이 호스트(102)에 맵 정보를 전달할 것을 요구하고, 호스트(102)가 메모리 시스템(110)의 요청에 대응하여 맵 정보를 수신하는 과정을 설명한다. 7C illustrates a third operation of a host and a memory system according to an embodiment of the present invention. Specifically, Figure 7c illustrates a process of a memory system 110 receives the map information in response to the request of the need to pass the map information to the host 102, and host 102, a memory system 110.

도 7c을 참조하면, 메모리 시스템(110)은 호스트(102)에 맵 정보를 전송하겠다는 통지(notice)를 할 수 있다. 호스트(102)는 메모리 시스템(110)으로부터 전송된 맵 정보에 관련한 통지에 대응하여, 호스트(102) 내 맵 정보를 저장할 수 있는 지를 확인할 수 있다. 호스트(102)가 메모리 시스템(110)으로부터 전송된 맵 정보를 수신할 수 있는 경우, 호스트(102)는 메모리 시스템(110)에 맵 정보를 전송할 수 있도록 허여(allow)할 수 있다. 메모리 시스템(110)은 호스트(102)에 전송할 맵 정보를 준비한 후, 호스트(102)에 맵 정보를 전송할 수 있다.Referring to FIG. 7C , the memory system 110 may notify the host 102 to transmit map information. In response to the notification related to the map information transmitted from the memory system 110 , the host 102 may check whether the map information in the host 102 can be stored. When the host 102 can receive the map information transmitted from the memory system 110 , the host 102 may allow the memory system 110 to transmit the map information. After preparing the map information to be transmitted to the host 102 , the memory system 110 may transmit the map information to the host 102 .

이후, 호스트(102)는 수신된 맵 정보를 내부 저장 공간(예, 도 4에서 설명한 호스트 메모리(106))에 저장할 수 있다. 호스트(102)는 저장된 맵 정보를 바탕으로 맵핑(mapping)을 수행한 후, 메모리 시스템(110)에 전송할 명령에 물리 주소(PBA)를 포함시킬 수 있다.Thereafter, the host 102 may store the received map information in an internal storage space (eg, the host memory 106 described in FIG. 4 ). After performing mapping based on the stored map information, the host 102 may include a physical address (PBA) in a command to be transmitted to the memory system 110 .

메모리 시스템(110)은 호스트(102)로부터 전달된 명령에 물리 주소(PBA)가 포함되었는 지를 확인하고, 물리 주소(PBA)를 이용하여 명령에 대응하는 동작을 수행할 수 있다.The memory system 110 may check whether a physical address (PBA) is included in the command transmitted from the host 102 , and may perform an operation corresponding to the command using the physical address (PBA).

맵 정보의 전송과 관련하여, 도 7b에서 설명한 호스트(102)와 메모리 시스템(110)의 동작이 호스트(102)이 주도적으로 수행하는 것이라면, 도 7c에서 설명한 호스트(102)와 메모리 시스템(110)의 동작은 메모리 시스템(110)이 주도적으로 수행하는 것에서 차이가 있을 수 있다. 실시예에 따라, 메모리 시스템(102)과 호스트(110)는 도 7b 및 도 7c에서 설명한 맵 정보를 전송하는 방법을 동작 환경에 따라 선택적으로 사용할 수도 있다.In relation to the transmission of the map information, if the operation of the host 102 and the memory system 110 described in Figure 7b the host 102 are performed in a directed, the host 102 is described in Figure 7c, and a memory system (110) The operation may be different from that performed by the memory system 110 . According to an embodiment, the memory system 102 and the host 110 may selectively use the method of transmitting the map information described with reference to FIGS. 7B and 7C according to an operating environment.

도 7d는 본 발명의 일 실시예에 따른 호스트와 메모리 시스템의 제4 동작을 설명한다. 구체적으로, 도 7d는 호스트와 메모리 시스템이 연동하는 과정 중 메모리 시스템이 호스트에 맵 정보를 전송하려는 경우를 설명한다.7D illustrates a fourth operation of the host and the memory system according to an embodiment of the present invention. Specifically, FIG. 7D illustrates a case in which the memory system transmits map information to the host while the host and the memory system are interworking.

도 7d를 참조하면, 메모리 시스템은 호스트로부터 전달된 명령에 대응하는 동작이 완료되었는 지를 확인할 수 있다(862). 메모리 시스템은 명령에 대응하는 동작이 완료된 후, 명령에 대응하는 응답(RESPONSE)을 전송하기 전에 호스트에 전송할 맵 정보가 있는 지를 확인할 수 있다(864). 만약 호스트에 전송할 맵 정보가 없다면(864의 NO), 메모리 시스템은 호스트에서 전달된 명령에 대응하는 동작이 완료되었는 지에 대한 여부(성공 또는 실패)에 대한 정보를 포함하는 응답(RESPONSE)을 전송할 수 있다(866).Referring to FIG. 7D , the memory system may check whether an operation corresponding to the command transmitted from the host is completed ( 862 ). After the operation corresponding to the command is completed, the memory system may check whether there is map information to be transmitted to the host before transmitting the response RESPONSE corresponding to the command ( 864 ). If there is no map information to send to the host (NO of 864), the memory system can send a response (RESPONSE) including information on whether the operation corresponding to the command sent from the host has been completed (success or failure). There is (866).

메모리 시스템이 호스트에 전송할 맵 정보가 있는 경우(864의 YES), 메모리 시스템은 맵 정보를 전송하기 위한 통지(NOTICE)가 이루어졌는 지를 확인할 수 있다(868). 여기서 통지(NOTICE)는 도 7c에서 설명한 것과 유사할 수 있다. 만약, 메모리 시스템이 맵 정보를 전송하고자 하지만, 메모리 시스템이 호스트에 맵 정보를 전송하는 것과 관련한 통지가 사전에 이루어지지 않았다면(868의 NO), 메모리 시스템은 응답(RESPONSE)에 통지(NOTICE)를 추가하여 호스트에 전달할 수 있다(870).When there is map information to be transmitted to the host by the memory system (YES in 864), the memory system may check whether a notification for transmitting the map information is made (868). Here, the NOTICE may be similar to that described in FIG. 7C . If the memory system wants to transmit the map information, but the memory system transmits the map information to the host , if a notice has not been made in advance (NO in 868), the memory system sends a notification (NOTICE) to the response (RESPONSE). In addition, it can be delivered to the host (870).

만약 맵 정보를 전송하기 위한 통지(NOTICE)가 이미 이루어진 경우(868의 YES), 메모리 시스템은 응답에 맵 정보를 추가할 수 있다(872). 이후, 메모리 시스템은 맵 정보를 포함하는 응답을 전송할 수 있다(874).If the notification (NOTICE) for transmitting the map information has already been made (YES in 868), the memory system may add the map information to the response (872). The memory system may then send a response including the map information (874).

호스트는 메모리 시스템으로부터 전송되는 응답(RESPONSE), 통지를 포함하는 응답(RESPONSE WITH NOTICE), 맵 정보를 포함하는 응답(RESPOSNE WITH MAP INFO.) 중 적어도 하나를 수신할 수 있다(842). The host may receive at least one of a response (RESPONSE) transmitted from the memory system, a response including a notification (RESPONSE WITH NOTICE), and a response including map information (RESPOSNE WITH MAP INFO.) (842).

호스트는 수신한 응답에 통지가 포함되어 있는 지를 확인할 수 있다(844). 만약 수신한 응답에 통지가 포함되어 있다면(844의 YES), 호스트는 이후에 전달될 수 있는 맵 정보를 수신하고 저장할 수 있도록 준비할 수 있다(846). 이후, 호스트는 이전 명령에 대응하는 응답을 확인할 수 있다(852). 예를 들어, 호스트는 응답을 확인하여, 이전 명령의 성공 또는 실패 여부를 확인할 수 있다. The host may check whether the received response includes a notification (844). If the received response includes a notification (YES in 844), the host may prepare to receive and store map information that can be delivered at a later time (846). Thereafter, the host may check a response corresponding to the previous command (852). For example, the host can check the response to determine whether the previous command succeeded or failed.

수신한 응답에 통지가 포함되지 않은 경우(844의 NO), 호스트는 응답에 맵 정보가 포함되어 있는 지를 확인할 수 있다(848). 응답에 맵 정보가 포함되어 있지 않은 경우(848의 NO), 호스트는 이전 명령에 대응하는 응답을 확인할 수 있다(852).If the received response does not include a notification (NO in 844), the host may check whether the response includes map information (848). If the response does not include map information (NO in 848), the host can check the response corresponding to the previous command (852).

수신한 응답에 맵 정보가 포함된 경우(848의 YES), 호스트는 응답에 포함된 맵 정보를 호스트 내부 저장 공간에 저장하거나, 이미 저장된 맵 정보를 갱신할 수 있다(850). 이후, 호스트는 이전 명령에 대응하는 응답을 확인할 수 있다(852).When the received response includes the map information (YES in 848), the host may store the map information included in the response in the host internal storage space or update the already stored map information (850). Thereafter, the host may check a response corresponding to the previous command (852).

전술한 실시예를 바탕으로, 메모리 시스템은 호스트에 맵 정보를 전송할 수 있다. 메모리 시스템은 호스트가 전송한 명령을 처리한 후, 해당 명령에 대응하는 응답을 이용하여 맵 정보를 전송할 수 있다. 나아가, 메모리 시스템은 맵 정보를 호스트에 전송한 후, 전송된 맵 정보에 대한 로그 또는 히스토리를 생성하여 저장할 수 있다. 호스트와 메모리 시스템에 전원 공급이 중단된 후 전원 공급이 재개되더라도, 메모리 시스템은 전술한 로그 또는 히스토리를 이용하여 호스트에 맵 정보를 전송할 수 있다. 호스트는 전송된 맵 정보를 바탕으로 명령을 전송할 수 있으며, 이러한 명령에 따라 메모리 시스템의 데이터 입출력 성능은 향상될 수 있다.Based on the above-described embodiment, the memory system may transmit map information to the host. After processing the command sent by the host , the memory system may transmit map information using a response corresponding to the command. Furthermore, after the memory system transmits the map information to the host , the memory system may generate and store a log or history of the transmitted map information. Even if power supply is resumed after power supply to the host and the memory system is interrupted, the memory system may transmit map information to the host using the aforementioned log or history. The host can transmit a command based on the transmitted map information, and the data input/output performance of the memory system can be improved according to the command.

한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로, 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.On the other hand, although specific embodiments have been described in the detailed description of the present invention, various modifications are possible without departing from the scope of the present invention. Therefore, the scope of the present invention should not be limited to the described embodiments and should be defined by the claims described below as well as the claims and equivalents.

도 8a는 본 발명의 실시 예에 따른 리드 동작을 수행하는 메모리 시스템의 예를 도시한다. 도 8b 및 도 8c는 본 발명의 실시 예에 따른 메모리 시스템이 리드 동작을 수행하는 방법의 예를 도시한다.8A illustrates an example of a memory system that performs a read operation according to an embodiment of the present invention. 8B and 8C illustrate examples of a method of performing a read operation by a memory system according to an embodiment of the present invention.

이하, 도 8a 및 도 8b를 참조하여 본 발명의 제1 실시 예에 따른 리드 동작을 설명하기로 한다. 도 8a 및 도 8b를 참조하면, 메모리 시스템(110)은 유저 데이터(UDAT) 및 유저 데이터(UDAT)의 메타 데이터를 저장하는 비휘발성 메모리 장치(150) 및 비휘발성 메모리 장치(150)를 제어하는 컨트롤러(130)를 포함할 수 있다.Hereinafter, a read operation according to the first embodiment of the present invention will be described with reference to FIGS. 8A and 8B . 8A and 8B , the memory system 110 controls the nonvolatile memory device 150 that stores user data UDAT and metadata of the user data UDAT and the nonvolatile memory device 150 . A controller 130 may be included.

컨트롤러(130)는 호스트(102)로부터 리드 커맨드(RD_CMD), 논리 주소(HLBA), 물리주소(HPBA) 및 논리 주소(HLBA)가 포함된 L2P맵 정보(L2P_MAP)의 맵버전(HV#)을 수신할 수 있다(S100). 호스트(102)로부터 수신된 맵버전(V#)은 논리 주소(HLBA)가 포함된 L2P맵 정보(L2P_MAP)이 메모리 시스템(110)으로부터 호스트(102)로 전송된 시점의 상태값을 가질 수 있다. The controller 130 receives the map version (HV#) of the L2P map information (L2P_MAP) including the read command (RD_CMD), the logical address (HLBA), the physical address (HPBA), and the logical address (HLBA) from the host 102 . can be received (S100). The map version V# received from the host 102 may have a state value at a time when the L2P map information L2P_MAP including the logical address HLBA is transmitted from the memory system 110 to the host 102. .

컨트롤러(130)는 메모리(144)에 저장되고 호스트(102)로부터 수신된 논리 주소(HLBA)가 포함된 L2P맵 정보(L2P_MAP)의 맵버전(CV#)을 이용하여, 호스트(102)로부터 수신된 물리주소(HPBA)의 유효성을 판단할 수 있다. 컨트롤러(130)의 메모리(144)에 저장된 L2P맵 정보(L2P_MAP)는 호스트 및 메모리 장치에 저장된 L2P맵 정보(L2P_MAP) 보다 최신일 수 있다. 컨트롤러(130)의 메모리(144)에 저장된 맵버전(CV#)은 L2P맵 정보(L2P_MAP)에 포함된 논리 주소(LBA)에 대응되는 물리 주소(PBA)가 변경될 때마다 업데이트될 수 있다. The controller 130 receives from the host 102 using the map version (CV#) of the L2P map information (L2P_MAP) stored in the memory 144 and including the logical address (HLBA) received from the host 102 . It is possible to determine the validity of the assigned physical address (HPBA). The L2P map information (L2P_MAP) stored in the memory 144 of the controller 130 may be newer than the L2P map information (L2P_MAP) stored in the host and the memory device. The map version CV# stored in the memory 144 of the controller 130 may be updated whenever the physical address PBA corresponding to the logical address LBA included in the L2P map information L2P_MAP is changed.

즉, 컨트롤러(130)는 호스트(102)로부터 수신된 물리주소(HPBA)의 유효성을 판단하기 위해, 비활성 메모리인 메모리(144)에 저장된 맵버전(CV#)과 호스트(102)로부터 수신된 맵버전(HV#)의 동일 여부를 판단할 수 있다(S300a, 제1 검증 동작).That is, the controller 130 determines the validity of the physical address HPBA received from the host 102 , the map version CV# stored in the memory 144 , which is an inactive memory, and the map received from the host 102 . It may be determined whether the versions (HV#) are the same (S300a, first verification operation).

S300a의 판단 결과, 맵버전(CV#)과 맵버전(HV#)이 동일하지 않으면, 컨트롤러(130)는 호스트(102)로부터 수신된 논리 주소(HLBA)가 무효한 것으로 판단할 수 있다. 이에 컨트롤러(130)는 노말 리드 동작을 수행한다(S200). 노말 리드 동작은 호스트(102)로부터 수신된 논리 주소(HLBA)에 대응되는 물리 주소를 메모리 시스템에 저장된 L2P맵 정보(L2P_MAP)에서 검색하고, 검색된 물리 주소에 저장된 유저 데이터에 수행되는 리드 동작을 의미한다.As a result of the determination of S300a, if the map version CV# and the map version HV# are not the same, the controller 130 may determine that the logical address HLBA received from the host 102 is invalid. Accordingly, the controller 130 performs a normal read operation (S200). The normal read operation searches for a physical address corresponding to the logical address (HLBA) received from the host 102 from L2P map information (L2P_MAP) stored in the memory system, and refers to a read operation performed on user data stored in the retrieved physical address. do.

S300a의 판단 결과, 맵버전(CV#)과 맵버전(HV#)이 동일하면, 컨트롤러(130)는 호스트(102)로부터 수신된 물리주소(HPBA)의 유효성 여부를 판단하기 위해, 물리주소(HPBA)에 대응되는 페이지의 메타 영역(200)에 저장된 메타 데이터(MDAT)를 리드 아웃하여, 메모리(144)에 임시 저장할 수 있다(S300b). 이때, 컨트롤러(130)는 물리주소(HPBA)에 대응되는 페이지의 유저 영역(100)에 저장된 유저 데이터(UDAT)도 함께 리드-아웃하여 임시 저장할 수 있다(S300b). 물리주소(HPBA)에 대응되는 페이지의 메타 영역(200)에 저장된 메타 데이터(MDAT)는 유저 영역(100)에 저장된 유저 데이터(UDAT)의 논리 주소(MLBA) 및 논리 주소(MLBA)가 포함된 L2P맵 정보(L2P_MAP)의 맵버전(MV#)을 포함할 수 있다. 물리주소(HPBA)에 대응되는 페이지의 메타 영역(200)에 저장된 맵버전(MV#)은 유저 데이터(UDAT)가 프로그램되는 시점의 상태값을 가질 수 있다.As a result of the determination of S300a, if the map version (CV#) and the map version (HV#) are the same, the controller 130 determines whether the physical address (HPBA) received from the host 102 is valid. The meta data MDAT stored in the meta area 200 of the page corresponding to the HPBA) may be read out and temporarily stored in the memory 144 ( S300b ). In this case, the controller 130 may also read-out the user data UDAT stored in the user area 100 of the page corresponding to the physical address HPBA and temporarily store it ( S300b ). The metadata MDAT stored in the meta area 200 of the page corresponding to the physical address HPBA includes a logical address (MLBA) and a logical address (MLBA) of the user data (UDAT) stored in the user area 100 . It may include a map version (MV#) of the L2P map information (L2P_MAP). The map version MV# stored in the meta area 200 of the page corresponding to the physical address HPBA may have a state value at the time when the user data UDAT is programmed.

컨트롤러(130)는 호스트(102)로부터 수신된 물리 주소(HPBA)에 대응되는 비휘발성 메모리 장치(150)로부터 출력된 논리 주소(MLBA) 및 맵버전(MV#)를 이용하여, 호스트(102)로부터 수신된 물리주소(HPBA)의 유효성을 판단할 수 있다(S300c, 제2 검증 동작). 즉, 컨트롤러(130)는 호스트(102)로부터 수신된 맵버전(HV#)과 메모리 장치(150)로부터 리드 아웃된 맵버전(MV#)이 동일하고, 호스트(102)로부터 수신된 논리 주소(HLBA)와 메모리 장치(150)로부터 리드 아웃된 논리 주소(MLBA)가 동일한지 여부를 판단할 수 있다.The controller 130 uses the logical address (MLBA) and the map version (MV#) output from the non-volatile memory device 150 corresponding to the physical address (HPBA) received from the host 102 , the host 102 . It is possible to determine the validity of the received physical address (HPBA) from (S300c, second verification operation). That is, in the controller 130 , the map version HV# received from the host 102 and the map version MV# read out from the memory device 150 are the same, and the logical address (HV#) received from the host 102 is HLBA) and the logical address MLBA read out from the memory device 150 may be the same.

S300c의 판단 결과, 맵버전(HV#)과 맵버전(MV#)이 동일하고, 논리 주소(HLBA)와 논리 주소(MLBA)가 동일하면, S300b에서 임시 저장된 유저 데이터(UDAT)를 호스트로 전송할 수 있다(S700). 이와 같이, 본 발명의 실시 예는 논리 주소(HLBA)를 물리 주소로 변환하는 별도의 주소 변환 동작 없이 제1 물리 주소(HPBA)에 리드 동작을 수행함으로써, 주소 변환 동작에 의한 지연(latency)을 감소시킬 수 있다. 이에 리드 동작의 속도가 향상될 수 있다. 또한, 본 발명의 실시 예는 제1 및 제2 유효성 검증 동작을 통해 유효성이 검증된 물리 주소에 리드 동작을 수행하기 때문에, 리드 동작의 신뢰성이 향상될 수 있다.As a result of the determination of S300c, if the map version (HV#) and the map version (MV#) are the same and the logical address (HLBA) and the logical address (MLBA) are the same, the S300b transmits the temporarily stored user data (UDAT) to the host. can be (S700). As such, an embodiment of the present invention reduces latency due to an address translation operation by performing a read operation on the first physical address HPBA without a separate address translation operation for converting a logical address (HLBA) into a physical address. can be reduced Accordingly, the speed of the read operation may be improved. In addition, since the read operation is performed on the physical address whose validity has been verified through the first and second validation operations according to the embodiment of the present invention, reliability of the read operation may be improved.

S300c의 판단 결과, 맵버전(HV#)과 맵버전(MV#)이 동일하지 않거나, 또는 논리 주소(HLBA)와 논리 주소(MLBA)가 동일하지 않으면, 컨트롤러(130)는 호스트(102)로부터 수신된 논리 주소(HLBA)가 무효한 것으로 판단할 수 있다. As a result of the determination of S300c, if the map version (HV#) and the map version (MV#) are not the same or the logical address (HLBA) and the logical address (MLBA) are not the same, the controller 130 sends the It may be determined that the received logical address (HLBA) is invalid.

예를 들면, 논리 주소(HLBA)와 논리 주소(MLBA)가 동일하지 않지만 맵버전(HV#)과 맵버전(MV#)이 동일한 경우는 물리 주소(HPBA)에는 논리 주소(HLBA)에 대응되는 데이터가 아닌, 다른 논리 주소에 대응되는 데이터가 저장되는 경우를 포함할 수 있다. 이에, 컨트롤러(130)는 물리 주소(HPBA)가 무효하다고 판단할 수 있다. For example, if the logical address (HLBA) and the logical address (MLBA) are not the same, but the map version (HV#) and the map version (MV#) are the same, the physical address (HPBA) corresponds to the logical address (HLBA). It may include a case where data corresponding to a logical address other than data is stored. Accordingly, the controller 130 may determine that the physical address HPBA is invalid.

또한, 논리 주소(HLBA)와 논리 주소(MLBA)가 동일하지만 맵버전(HV#)이 맵버전(MV#)과 다른 경우, 물리 주소(HPBA)에는 논리 주소(HLBA)에 대응되는 올드 데이터가 저장되는 경우를 포함할 수 있다. 이에, 컨트롤러(130)는 물리 주소(HPBA)가 무효하다고 판단할 수 있다.Also, if the logical address (HLBA) and logical address (MLBA) are the same, but the map version (HV#) is different from the map version (MV#), the physical address (HPBA) contains old data corresponding to the logical address (HLBA). It may include a case where it is stored. Accordingly, the controller 130 may determine that the physical address HPBA is invalid.

또한, 맵버전(HV#)이 맵버전(CV#) 또는 맵버전(MV#)보다 하위 버전인 경우, 컨트롤러(130)는 논리 주소(HLBA)에 대응되는 데이터는 물리 주소(HPBA)가 아닌, 다른 물리 주소로 복사이동 되었다고 판단할 수 있다. 즉, 물리 주소(HPBA)는 올드 물리 주소이기에, 컨트롤러(130)는 물리 주소(HPBA)를 무효하다고 판단할 수 있다.In addition, when the map version (HV#) is a lower version than the map version (CV#) or the map version (MV#), the controller 130 determines that the data corresponding to the logical address (HLBA) is not the physical address (HPBA). , it can be determined that the copy has been moved to another physical address. That is, since the physical address HPBA is an old physical address, the controller 130 may determine that the physical address HPBA is invalid.

또한, 맵버전(HV#)이 맵버전(CV#) 또는 맵버전(MV#)보다 상위 버전인 경우, 컨트롤러(130)는 맵버전(HV#)에 비트플립과 같은 오류가 발생했다고 판단할 수 있다. 오류는 컨트롤러(130)가 L2P맵 정보를 호스트(102)로 업로드 하는 과정 또는 호스트(102)가 리드 커맨드와 함께 물리 주소(HPBA) 및 맵버전(HV#)를 컨트롤러(130)로 전송하는 과정에서 발생했을 가능성이 높다. 즉, 물리 주소(HPBA)는 오류가 포함된 물리 주소이기에, 컨트롤러(130)는 물리 주소(HPBA)를 무효하다고 판단할 수 있다.Also, when the map version (HV#) is higher than the map version (CV#) or the map version (MV#), the controller 130 determines that an error such as a bit flip has occurred in the map version (HV#). can The error is a process in which the controller 130 uploads L2P map information to the host 102 or the process in which the host 102 transmits a physical address (HPBA) and map version (HV#) to the controller 130 along with a read command. most likely occurred in That is, since the physical address HPBA is a physical address including an error, the controller 130 may determine that the physical address HPBA is invalid.

이에 컨트롤러(130)는 S300b에서 임시 저장된 유저 데이터(UDAT)를 삭제할 수 있다. 그리고 컨트롤러(130)는 노말 리드 동작을 수행한다(S200).Accordingly, the controller 130 may delete the temporarily stored user data UDAT in S300b. And the controller 130 performs a normal read operation (S200).

한편, 컨트롤러(130)는 논리 주소(HLBA)에 대응하는 맵버전(CV#)이 메모리(144)에 저장(HIT)되어 있지 않은 경우(MISS), 컨트롤러(130)는 물리 주소(HPBA)에 대응되는 페이지에 저장된 논리 주소(MLBA) 및 제맵버전(MV#)를 이용하여, 물리 주소(HPBA)의 유효성을 검증할 수 있다. 이와 같이, 본 발명의 실시 예는 논리 주소(HLBA)에 대응되는 맵버전(CV#)이 컨트롤러(130)에 저장되어 있지 않더라도(MISS), 논리 주소(HLBA)를 물리 주소로 변환하는 별도의 주소 변환 동작 없이, 메모리 장치(150)에 저장된 논리 주소(MLBA) 및 맵 정보(MV#)를 이용하여, 호스트로(102)부터 수신된 제1 물리 주소(HPBA)의 유효성을 검증할 수 있다.On the other hand, when the controller 130 does not store (HIT) the map version (CV#) corresponding to the logical address (HLBA) in the memory 144 (MISS), the controller 130 stores the map version (CV#) corresponding to the logical address (HLBA) in the physical address (HPBA). The validity of the physical address (HPBA) can be verified by using the logical address (MLBA) and the second map version (MV#) stored in the corresponding page. As such, in the embodiment of the present invention, even if the map version (CV#) corresponding to the logical address (HLBA) is not stored in the controller 130 (MISS), a separate method for converting the logical address (HLBA) into a physical address Without an address translation operation, the validity of the first physical address HPBA received from the host 102 may be verified using the logical address MLBA and the map information MV# stored in the memory device 150 . .

이하, 도 8a 및 도 8c를 참조하여 본 발명의 제2 실시 예에 따른 리드 동작을 설명하기로 한다. 도 8c의 설명에서는 도 8b와 기술적으로 구별되는 차이점 위주로 설명하기로 한다. Hereinafter, a read operation according to a second embodiment of the present invention will be described with reference to FIGS. 8A and 8C . In the description of FIG. 8C , differences from FIG. 8B and technically distinct differences will be mainly described.

도 8c의 S300a의 호스트(102)로부터 수신된 물리주소(HPBA)의 제1 유효성 검증 동작이 수행되는 동안에, 컨트롤러(130)는 도 300b의 물리주소(HPBA)의 제2 유효성 검증 동작을 위한 논리 주소(MLBA) 및 맵버전(MV#)의 리드 아웃 동작을 수행할 수 있다(도 300b). 이에, 도 8b 보다 물리 주소(HPBA)의 유효성 검증 과정을 빨리 수행할 수 있기 때문에 리드 동작의 레이턴시가 감소하는 효과를 제공할 수 있다.While the first validation operation of the physical address (HPBA) received from the host 102 of S300a of FIG. 8C is performed, the controller 130 performs logic for the second validation operation of the physical address (HPBA) of FIG. 300B . A readout operation of the address (MLBA) and the map version (MV#) may be performed ( FIG. 300B ). Accordingly, since the validation process of the physical address (HPBA) can be performed faster than FIG. 8B , the latency of the read operation can be reduced.

이하, 도 9 내지 도 12를 참조하여, 본 발명의 메모리 시스템(110)이 쓰기 동작 및 읽기 동작을 수행하는 구체적인 방법을 설명하기로 한다.Hereinafter, a specific method of performing a write operation and a read operation by the memory system 110 of the present invention will be described with reference to FIGS. 9 to 12 .

도 9는 호스트(102)로부터 수신된 제1 쓰기 커맨드(WT_CMD1)에 의해, 제1 논리 주소(LBA1)에 대응되는 제1 유저 데이터(UDAT1)가 메모리 장치(150)의 제1 물리 주소(PBA1)에 프로그램되는 동작 및 이에 대한 L2P맵 정보가 생성되어 호스트(102)로 전송되는 동작을 설명한다.9 shows that the first user data UDAT1 corresponding to the first logical address LBA1 is converted to the first physical address PBA1 of the memory device 150 by the first write command WT_CMD1 received from the host 102 . ) and an operation in which L2P map information is generated and transmitted to the host 102 will be described.

도 10는 메모리 시스템(110)의 내부 백그라운드 동작에 의해, 제1 물리 주소(PBA1)에 저장된 제1 유저 데이터(UDAT1)가 물리 주소(PBA2)로 복사되고, 제1 물리 주소(PBA1)에 저장된 제1 유저 데이터(UDAT1)가 소거되는 동작 및 호스트로부터 수신된 제1 리드 커맨드(RD_CMD1)에 대한 제1 읽기 동작을 설명한다. FIG. 10 shows that the first user data UDAT1 stored in the first physical address PBA1 is copied to the physical address PBA2 and stored in the first physical address PBA1 by an internal background operation of the memory system 110 . An operation for erasing the first user data UDAT1 and a first read operation for the first read command RD_CMD1 received from the host will be described.

도 11는 호스트(102)로부터 수신된 제2 쓰기 커맨드(WT_CMD2)에 의해 제2 논리 주소(LBA2)에 대응되는 제2 유저 데이터(UDAT2)를 소거 상태인 제1 물리 주소(PBA1)에 프로그램하는 동작 및 호스트로부터 수신된 제2 리드 커맨드(RD_CMD2)에 대한 제2 읽기 동작을 설명한다. 11 is a diagram of programming the second user data UDAT2 corresponding to the second logical address LBA2 to the first physical address PBA1 in the erased state by the second write command WT_CMD2 received from the host 102. An operation and a second read operation for the second read command RD_CMD2 received from the host will be described.

도 12는 호스트(102)로부터 수신된 제3 쓰기 커맨드(WT_CMD3)에 의해, 제1 논리 주소(LBA1)에 대응되는 제3 유저 데이터(UDAT3)가 물리 주소(PBA3)에 프로그램되는 동작 및 호스트로부터 수신된 제3 리드 커맨드(RD_CMD3)에 대한 제3 읽기 동작을 설명한다. 12 shows an operation in which third user data UDAT3 corresponding to a first logical address LBA1 is programmed into a physical address PBA3 by the third write command WT_CMD3 received from the host 102 and from the host A third read operation with respect to the received third read command RD_CMD3 will be described.

도 9를 참조하면, 컨트롤러(130)는 호스트(102)로부터 제1 쓰기 커맨드(WT_CMD1)와 함께, 제1 논리 주소(LBA1) 및 제1 유저 데이터(UDAT1)를 수신할 수 있다(S405). S405 단계에서 수신된 제1 논리 주소(LBA1)은 현재 메모리 장치(150)에 저장된 유저 데이터들에 대응되지 않는 새로 할당된 논리 주소일 수 있다.Referring to FIG. 9 , the controller 130 may receive a first write command WT_CMD1 and a first logical address LBA1 and first user data UDAT1 from the host 102 ( S405 ). The first logical address LBA1 received in operation S405 may be a newly allocated logical address that does not correspond to user data currently stored in the memory device 150 .

컨트롤러(130)는 제1 논리 주소(LBA1)에 대한 맵버전(V#)의 상태 값을 초기값 "00"으로 설정하고 이를 메모리(144)에 저장한다(S410). The controller 130 sets the state value of the map version V# for the first logical address LBA1 to the initial value "00" and stores it in the memory 144 (S410).

그후, 컨트롤러(130)는 제1 유저 데이터(UDAT1) 및 제1 논리 주소(LBA1) 및 맵버전(V#)가 메모리 장치(150)에 프로그램되도록 메모리 장치(150)를 제어한다(S415). 이에, 메모리 장치(150)는 페이지(PAGE1)의 유저 영역(100)에 제1 유저 데이터(UDAT1)를 저장하고 페이지(PAGE1)의 메타 영역(200)에 제1 논리 주소(LBA1) 및 맵버전(V00)를 프로그램 한다(S415). Thereafter, the controller 130 controls the memory device 150 so that the first user data UDAT1, the first logical address LBA1, and the map version V# are programmed into the memory device 150 (S415). Accordingly, the memory device 150 stores the first user data UDAT1 in the user area 100 of the page PAGE1, and the first logical address LBA1 and the map version in the meta area 200 of the page PAGE1. (V00) is programmed (S415).

메모리 장치(150)는 프로그램 동작이 완료됨을 알리는 응답과 함께 프로그램 동작이 수행된 페이지(PAGE1)의 제1 물리 주소(PBA1)를 컨트롤러(130)로 전송할 수 있다. 이에, 컨트롤러(130)는 프로그램 동작이 수행된 제1 물리 주소(PBA1)를 확인할 수 있다(S420).The memory device 150 may transmit the first physical address PBA1 of the page PAGE1 on which the program operation is performed to the controller 130 together with a response indicating that the program operation is completed. Accordingly, the controller 130 may check the first physical address PBA1 on which the program operation is performed ( S420 ).

컨트롤러(130)는 제1 논리 주소(LBA1)에 제1 물리 주소(PBA1)을 대응시켜, L2P맵 정보(L2P_MAP)을 생성한다(S425). 컨트롤러(130)는 S425 단계에서 생성된 L2P맵 정보(L2P_MAP) 및 S410 단계에서 생성된 맵버전(V00)을 호스트(102)로 전송할 수 있다(S430). 이에, 호스트(102)는 컨트롤러(130)로부터 수신된 L2P맵 정보 및 맵버전(V00)을 저장할 수 있다. 즉, 호스트(102)에 저장된 L2P맵 정보(L2P_MAP) 및 맵버전(V00)는 S410에서 컨트롤러(130)에 의해 생성된 맵버전(V00) 및 S425 단계에서 생성된 L2P맵 정보와 동일할 수 있다. The controller 130 associates the first physical address PBA1 with the first logical address LBA1 to generate L2P map information L2P_MAP ( S425 ). The controller 130 may transmit the L2P map information (L2P_MAP) generated in step S425 and the map version V00 generated in step S410 to the host 102 (S430). Accordingly, the host 102 may store the L2P map information and the map version V00 received from the controller 130 . That is, the L2P map information (L2P_MAP) and the map version (V00) stored in the host 102 may be the same as the map version (V00) generated by the controller 130 in S410 and the L2P map information generated in S425. .

이하, 도 10를 참조하여, 도 9의 S430 단계 이후, 메모리 시스템(110)의 내부 백그라운드 동작에 의해, 제1 물리 주소(PBA1)에 저장된 제1 유저 데이터(UDAT1)가 물리 주소(PBA2)로 복사되고, 제1 물리 주소(PBA1)에 저장된 제1 유저 데이터(UDAT1)가 소거된 이후, 호스트로부터 수신된 제1 리드 커맨드(RD_CMD1)에 대한 제1 읽기 동작을 설명한다.Hereinafter, referring to FIG. 10 , after step S430 of FIG. 9 , the first user data UDAT1 stored in the first physical address PBA1 is converted to the physical address PBA2 by the internal background operation of the memory system 110 . After the first user data UDAT1 copied and stored in the first physical address PBA1 is erased, a first read operation with respect to the first read command RD_CMD1 received from the host will be described.

도 9의 S430 단계 이후, 컨트롤러(130)는 제1 물리 주소(PBA1)에 대응되는 페이지(PAGE1)가 포함된 메모리 블록을 백그라운드 동작이 수행될 빅팀 블록으로 결정할 수 있다(S440). 제1 물리 주소(PBA1)에 대응되는 페이지(PAGE1)의 유저 영역(100)에는 제1 유저 데이터(UDAT1)가 저장되고 메타 영역(200)에는 제1 논리 주소(LBA1) 및 맵버전(V00)이 저장되어 있다(도 9의 S415 참조). After step S430 of FIG. 9 , the controller 130 may determine the memory block including the page PAGE1 corresponding to the first physical address PBA1 as the victim block on which the background operation is to be performed ( S440 ). The first user data UDAT1 is stored in the user area 100 of the page PAGE1 corresponding to the first physical address PBA1, and the first logical address LBA1 and the map version V00 are stored in the meta area 200. is stored (refer to S415 in FIG. 9).

컨트롤러(130)는 컨트롤러 제1 논리 주소(LBA1)가 포함된 L2P맵 정보의 맵버전(V#)을 "00"에서 "01"로 업데이트하고 이를 메모리(144)에 저장한다(S450).The controller 130 updates the map version V# of the L2P map information including the controller first logical address LBA1 from “00” to “01” and stores it in the memory 144 ( S450 ).

컨트롤러(130)는 물리 주소(PBA2)에 제1 물리 주소(PBA1)에 저장되어 있는 제1 유저 데이터(UDAT1), 제1 논리 주소(LBA1) 및 업데이트된 맵버전(V01)가 복사되도록 메모리 장치(150)를 제어한다(S460). 이에, 메모리 장치(150)는 소거 상태인 페이지(PAGE2)의 유저 영역(100)에 제1 유저 데이터(UDAT1)를 복사하고 페이지(PAGE2)의 메타 영역(200)에 제1 논리 주소(LBA1) 및 업데이트된 맵버전(V01)를 복사한다(S460).The controller 130 copies the first user data UDAT1, the first logical address LBA1, and the updated map version V01 stored in the first physical address PBA1 to the physical address PBA2 to the memory device. (150) is controlled (S460). Accordingly, the memory device 150 copies the first user data UDAT1 to the user area 100 of the page PAGE2 in the erased state, and the first logical address LBA1 to the meta area 200 of the page PAGE2. And the updated map version (V01) is copied (S460).

메모리 장치(150)는 프로그램 동작이 완료됨을 알리는 응답과 함께 프로그램 동작이 수행된 (PAGE2)의 물리 주소(PBA2)를 컨트롤러(130)로 전송할 수 있다. 이에, 컨트롤러(130)는 복사 동작이 수행된 물리 주소(PBA2)를 확인할 수 있다(S465).The memory device 150 may transmit the physical address PBA2 of the program operation PAGE2 to the controller 130 together with a response indicating that the program operation is completed. Accordingly, the controller 130 may check the physical address PBA2 on which the copy operation is performed (S465).

컨트롤러(130)는 제1 논리 주소(LBA1)에 맵핑된 제1 물리 주소(PBA1) 대신에 물리 주소(PBA2)를 맵핑하여, L2P맵 정보(L2P_MAP)을 업데이트한다(S470). The controller 130 updates the L2P map information L2P_MAP by mapping the physical address PBA2 instead of the first physical address PBA1 mapped to the first logical address LBA1 ( S470 ).

컨트롤러(130)는 제1 물리 주소(PBA1)를 무효화하고(S475), 무효화된 제1 물리 주소(PBA1)에 대응되는 페이지(PAGE1)가 포함된 빅팀 불록에 소거 동작을 수행하여 저장된 유저 데이터(UDAT)를 소거할 수 있다(S480). 이에, 페이지(PAGE1)은 소거된 상태가 될 수 있다. The controller 130 invalidates the first physical address PBA1 ( S475 ), and performs an erase operation on the victim block including the page PAGE1 corresponding to the invalidated first physical address PBA1 to store user data ( UDAT) can be erased (S480). Accordingly, the page PAGE1 may be in an erased state.

그후, S480에서 제1 물리 주소(PBA1)에 소거 동작이 수행된 이후, S450에서 업데이트된 맵버전(V#) 및 S470에서 업데이트된 L2P맵 정보가 호스트(102)로 업로딩되지 않은 상태에서, 호스트(102)는 제1 리드 커맨드(RD_CMD1)와 함께 제1 논리 주소(LBA1), 제1 물리 주소(PBA1) 및 맵버전(V00)을 메모리 시스템(110)으로 전송할 수 있다. Thereafter, after the erase operation is performed on the first physical address (PBA1) in S480, the map version (V#) updated in S450 and the L2P map information updated in S470 are not uploaded to the host 102. 102 may transmit the first logical address LBA1 , the first physical address PBA1 , and the map version V00 together with the first read command RD_CMD1 to the memory system 110 .

컨트롤러(130)는 호스트(102)로부터 제1 리드 커맨드(RD_CMD1)와 함께, 제1 논리 주소(LBA1), 제1 물리 주소(PBA1) 및 맵버전(V00)을 수신할 수 있다(S485). 이에, 컨트롤러는 본 발명의 도 8b 및 도 8c에서 설명된 읽기 동작을 수행할 수 있다.The controller 130 may receive the first logical address LBA1, the first physical address PBA1, and the map version V00 along with the first read command RD_CMD1 from the host 102 (S485). Accordingly, the controller may perform the read operation described with reference to FIGS. 8B and 8C of the present invention.

이때, 맵버전(V00)이 호스트(102)로부터 전송되는 과정에서, 비트 플립과 같은 에러가 발생하여 맵버전(V00)이 맵버전(V01)로 변경될 수 있다. In this case, while the map version V00 is transmitted from the host 102 , an error such as a bit flip may occur, and the map version V00 may be changed to the map version V01 .

만약, 읽기 동작 과정에서 도 8b 및 도 8c에서 설명된 S300c 단계의 2차 검증 과정을 수행하지 않고, S300a 단계의 1차 검증만으로 호스트(102)로부터 수신된 제1 물리 주소(PBA1)의 유효성을 판단한다면, 컨트롤러(130)는 무효한 제1 물리 주소(PBA1)를 유효한 것으로 잘못 판단할 수 있다.If, in the read operation process, the validity of the first physical address PBA1 received from the host 102 is checked only by the first verification of step S300a without performing the secondary verification process of step S300c described in FIGS. 8b and 8c. If so, the controller 130 may erroneously determine the invalid first physical address PBA1 as valid.

이경우, 호스트(102)로부터 전송된 맵버전(V00)과 메모리(144)에 저장된 맵버전(V01)이 실제로는 동일하지 않다. 하지만, 에러에 의해 컨트롤러(130)는 호스트(102)로부터 전송된 맵버전(V01)과 메모리(144)에 저장된 맵버전(V01)이 동일하다고 판단할 수 있다. 즉, 컨트롤러(130)는 호스트(102)로부터 수신된 제1 물리 주소(PBA1)가 최신이 아님에도 불구하고 유효 물리 주소로 잘못 판단할 수 있다. 이에, 컨트롤러(130)는 호스트가 리드 요청한 제1 논리 주소(LBA1)에 대응되는 유저 데이터(UDAT1)가 아닌 소거 상태의 데이터를 호스트(102)로 전송할 수 있다(비정상 리드 동작). In this case, the map version V00 transmitted from the host 102 and the map version V01 stored in the memory 144 are not actually the same. However, due to an error, the controller 130 may determine that the map version V01 transmitted from the host 102 and the map version V01 stored in the memory 144 are the same. That is, the controller 130 may erroneously determine the first physical address PBA1 received from the host 102 as a valid physical address even though it is out of date. Accordingly, the controller 130 may transmit, to the host 102 , data in an erased state, not the user data UDAT1 corresponding to the first logical address LBA1 requested by the host (abnormal read operation).

이에, 본 발명의 실시 예에 따른 컨트롤러(130)는 도 8b 및 도 8c에서 설명된 S300c의 제2 검증 동작을 통해, 제1 물리 주소(PBA1)에 대응되는 페이지는 소거 상태임을 인지할 수 있다. 즉, S300c의 제2 검증 동작에 의해, 컨트롤러(130)는 호스트(102)로부터 수신된 제1 물리 주소(PBA1)에 대응되는 페이지가 소거 상태임을 인지할 수 있다, 이에, 제1 물리 주소(PBA1)가 무효하다고 판단할 수 있다. Accordingly, the controller 130 according to an embodiment of the present invention may recognize that the page corresponding to the first physical address PBA1 is in the erased state through the second verification operation of S300c described with reference to FIGS. 8B and 8C . . That is, by the second verification operation of S300c, the controller 130 may recognize that the page corresponding to the first physical address PBA1 received from the host 102 is in the erased state. Accordingly, the first physical address ( PBA1) can be judged to be invalid.

이와 같이, 본 발명의 실시 예는 리드 동작 수행 시, 리드 커맨드(RD_CMD)과 함께 수신된 제1 물리 주소(PBA1)의 유효성을 S300c의 제2 검증 동작을 통해 판단함으로써, 호스트(102)로부터 수신되는 맵버전(V#)에 에러가 발생하더라도, 호스트(102)로부터 수신된 제1 물리 주소(PBA1)의 유효성을 보다 정확하게 판단할 수 있다.As described above, according to the embodiment of the present invention, when the read operation is performed, the validity of the first physical address PBA1 received together with the read command RD_CMD is determined through the second verification operation of S300c, and is received from the host 102 . Even if an error occurs in the map version V#, the validity of the first physical address PBA1 received from the host 102 can be more accurately determined.

이하, 도 11을 참조하여, 도 10의 S480 단계에서 제1 물리 주소(PBA1)에 소거 동작이 수행된 이후, 호스트(102)로부터 수신된 제2 쓰기 커맨드(WT_CMD2)을 수행하는 방법 및 호스트(102)로부터 수신된 제2 리드 커맨드(RD_CMD2)에 대한 리드 동작을 수행하는 방법을 설명하기로 한다.Hereinafter, with reference to FIG. 11 , after the erase operation is performed on the first physical address PBA1 in step S480 of FIG. 10 , a method of performing the second write command WT_CMD2 received from the host 102 and the host ( A method of performing a read operation on the second read command RD_CMD2 received from 102 will be described.

컨트롤러(130)는 호스트(102)로부터 제2 쓰기 커맨드(WT_CMD2)와 함께, 제2 논리 주소(LBA2) 및 제2 유저 데이터(UDAT2)를 수신할 수 있다(S500). S405 단계에서 수신된 제2 논리 주소(LBA2)은 현재 메모리 장치(150)에 저장된 유저 데이터들에 대응되지 않는 새로 할당된 논리 주소일 수 있다.The controller 130 may receive the second logical address LBA2 and the second user data UDAT2 along with the second write command WT_CMD2 from the host 102 ( S500 ). The second logical address LBA2 received in operation S405 may be a newly allocated logical address that does not correspond to user data currently stored in the memory device 150 .

컨트롤러(130)는 제2 논리 주소(LBA2)에 대한 맵버전(V#)의 상태 값을 초기값 "00"으로 설정하고 이를 메모리(144)에 저장한다(S510). The controller 130 sets the state value of the map version V# for the second logical address LBA2 to the initial value "00" and stores it in the memory 144 (S510).

그후, 컨트롤러(130)는 제1 유저 데이터(UDAT1) 및 제1 논리 주소(LBA1) 및 맵버전(V#)가 메모리 장치(150)에 프로그램되도록 메모리 장치(150)를 제어한다(S515). 이에, 메모리 장치(150)는 S460에서 수행된 소거 동작에 의해 소거 상태인 페이지(PAGE1)의 유저 영역(100)에 제2 유저 데이터(UDAT2)를 저장하고 페이지(PAGE1)의 메타 영역(200)에 제2 논리 주소(LBA2) 및 맵버전(V00)를 프로그램 한다(S515). Thereafter, the controller 130 controls the memory device 150 so that the first user data UDAT1, the first logical address LBA1, and the map version V# are programmed in the memory device 150 (S515). Accordingly, the memory device 150 stores the second user data UDAT2 in the user area 100 of the page PAGE1 that is in an erased state by the erase operation performed in S460, and the meta area 200 of the page PAGE1. The second logical address (LBA2) and the map version (V00) are programmed in (S515).

메모리 장치(150)는 프로그램 동작이 완료됨을 알리는 응답과 함께 프로그램 동작이 수행된 페이지(PAGE1)의 제1 물리 주소(PBA1)를 컨트롤러(130)로 전송할 수 있다. 이에, 컨트롤러(130)는 프로그램 동작이 수행된 제1 물리 주소(PBA1)를 확인할 수 있다(S525). 컨트롤러(130)는 제2 논리 주소(LBA2)에 제1 물리 주소(PBA1)을 대응시켜, L2P맵 정보(L2P_MAP)을 생성한다(S530). The memory device 150 may transmit the first physical address PBA1 of the page PAGE1 on which the program operation is performed to the controller 130 together with a response indicating that the program operation is completed. Accordingly, the controller 130 may check the first physical address PBA1 on which the program operation is performed (S525). The controller 130 associates the first physical address PBA1 with the second logical address LBA2 to generate L2P map information L2P_MAP ( S530 ).

S515에서 제1 물리 주소(PBA1)에 맵버전(V00), 제2 논리 주소(LBA2) 및 유저 데이터(UDAT2)의 프로그램 동작이 수행된 이후, S510에서 생성된 맵버전(V#) 및 S530에서 생성된 L2P맵 정보가 호스트(102)로 업로딩되지 않은 상태에서, 호스트(102)는 제2 리드 커맨드(RD_CMD2)와 함께 제1 논리 주소(LBA1), 제1 물리 주소(PBA1) 및 맵버전(V00)을 메모리 시스템(110)으로 전송할 수 있다. 컨트롤러(130)는 호스트(102)로부터 제2 리드 커맨드(RD_CMD2)와 함께, 제1 논리 주소(LBA1), 제1 물리 주소(PBA1) 및 맵버전(V00)을 수신할 수 있다(S535). 이에, 컨트롤러는 본 발명의 도 8b 및 도 8c에서 설명된 읽기 동작을 수행할 수 있다.After the program operation of the map version (V00), the second logical address (LBA2), and the user data (UDAT2) is performed on the first physical address (PBA1) in S515, the map version (V#) generated in S510 and the map version (V#) generated in S530 In a state in which the generated L2P map information is not uploaded to the host 102 , the host 102 transmits the first logical address LBA1, the first physical address PBA1, and the map version (PBA1) together with the second read command RD_CMD2. V00) may be transmitted to the memory system 110 . The controller 130 may receive the first logical address LBA1 , the first physical address PBA1 , and the map version V00 along with the second read command RD_CMD2 from the host 102 ( S535 ). Accordingly, the controller may perform the read operation described with reference to FIGS. 8B and 8C of the present invention.

만약, 읽기 동작 과정에서 도 8b 및 도 8c에서 설명된 S300c 단계의 2차 검증 과정을 수행하지 않고, S300a 단계의 1차 검증만으로 호스트(102)로부터 수신된 제1 물리 주소(PBA1)의 유효성을 판단한다면, 호스트(102)로부터 전송된 맵버전(00)과 메모리(144)에 저장된 맵버전(V00)이 동일하기에, 컨트롤러(130)는 호스트(102)로부터 수신된 제1 물리 주소(PBA1)를 유효 물리 주소로 잘못 판단할 수 있다. If, in the read operation process, the validity of the first physical address PBA1 received from the host 102 is checked only by the first verification of step S300a without performing the secondary verification process of step S300c described in FIGS. 8b and 8c. If it is determined, since the map version 00 transmitted from the host 102 and the map version V00 stored in the memory 144 are the same, the controller 130 controls the first physical address PBA1 received from the host 102 . ) may be incorrectly determined as an effective physical address.

즉, S515 단계에 의해 소거 상태인 제1 물리 주소(PBA1)에는 제2 논리 주소(LBA2)에 대응되는 유저 데이터(UDAT2)가 저장되었다. 이에, 컨트롤러(130)는 호스트가 리드 요청한 제1 논리 주소(LBA1)에 대응되는 유저 데이터(UDAT1)가 아닌, 제1 물리 주소(PBA1)에 저장되며 제2 논리 주소(LBA2)에 대응되는 유저 데이터(UDAT2)를 호스트(102)로 전송할 수 있다(비정상 리드 동작). That is, the user data UDAT2 corresponding to the second logical address LBA2 is stored in the first physical address PBA1 that is in the erased state by step S515 . Accordingly, the controller 130 stores the first physical address PBA1 instead of the user data UDAT1 corresponding to the first logical address LBA1 requested by the host and stores the user corresponding to the second logical address LBA2. Data UDAT2 may be transmitted to the host 102 (abnormal read operation).

이에, 본 발명의 실시 예에 따른 컨트롤러(130)는 도 8b 및 도 8c에서 설명된 S300c의 제2 검증 동작을 통해, 제1 물리 주소(PBA1)에 대응되는 페이지(PAGE1)의 메타 영역(200)에는 제2 논리 주소(LBA2)가 저장되는 것을 인지할 수 있다. 즉, S300c의 제2 검증 동작에 의해, 컨트롤러(130)는 호스트(102)로부터 수신된 제1 물리 주소(PBA1)에 대응되는 페이지에 저장된 제2 논리 주소(LBA2)와 호스트(102)로부터 수신된 제1 논리 주소(LBA1)가 동일하지 않기에, 호스트(102)로부터 수신된 제1 물리 주소(PBA1)가 무효하다고 판단할 수 있다. Accordingly, the controller 130 according to an embodiment of the present invention performs the second verification operation of S300c described with reference to FIGS. 8B and 8C , the meta area 200 of the page PAGE1 corresponding to the first physical address PBA1. ), it can be recognized that the second logical address LBA2 is stored. That is, by the second verification operation of S300c, the controller 130 receives from the host 102 and the second logical address LBA2 stored in the page corresponding to the first physical address PBA1 received from the host 102 . Since the first logical addresses LBA1 are not identical, it may be determined that the first physical addresses PBA1 received from the host 102 are invalid.

이하, 도 12를 참조하여, 도 9의 S430 단계 이후, 호스트(102)로부터 수신된 제3 쓰기 커맨드(WT_CMD3)에 대한 쓰기 동작을 수행하는 방법 및 호스트(102)로부터 수신된 제3 리드 커맨드(RD_CMD)에 대한 리드 동작을 수행하는 방법을 설명하기로 한다.Hereinafter, with reference to FIG. 12 , after step S430 of FIG. 9 , a method of performing a write operation on the third write command WT_CMD3 received from the host 102 and the third read command received from the host 102 ( A method of performing a read operation on RD_CMD) will be described.

S430 단계 이후, 컨트롤러(130)는 호스트(102)로부터 제3 쓰기 커맨드(WT_CMD3)와 함께, 제1 논리 주소(LBA1) 및 제3 유저 데이터(UDAT3)를 수신할 수 있다(S540). After step S430 , the controller 130 may receive the first logical address LBA1 and the third user data UDAT3 along with the third write command WT_CMD3 from the host 102 ( S540 ).

S540 단계에서 수신된 제1 논리 주소(LBA1)은 현재 메모리 장치(150)에 저장된 유저 데이터들에 대응되는 논리 주소일 수 있다. 즉, 호스트(102)는 제1 논리 주소(LBA1)에 대응되었던 제1 유저 데이터(UDAT1)를 무효화하고, 제3 유저 데이터(UDAT3)를 제1 논리 주소(LBA1)에 새로이 대응시킬 수 있다. 컨트롤러(130)는 제1 논리 주소(LBA1)에 대한 맵버전(00)의 상태 값을 맵버전(V00)으로 초기화하고 이를 메모리(144)에 저장한다(S550). The first logical address LBA1 received in operation S540 may be a logical address corresponding to user data currently stored in the memory device 150 . That is, the host 102 may invalidate the first user data UDAT1 corresponding to the first logical address LBA1 , and may newly associate the third user data UDAT3 with the first logical address LBA1 . The controller 130 initializes the state value of the map version 00 for the first logical address LBA1 as the map version V00 and stores it in the memory 144 ( S550 ).

그후, 컨트롤러(130)는 제3 유저 데이터(UDAT3) 및 제1 논리 주소(LBA1) 및 맵버전(V01)가 메모리 장치(150)에 프로그램되도록 메모리 장치(150)를 제어한다(S555). 이에, 메모리 장치(150)는 소거 상태인 페이지(PAGE3)의 유저 영역(100)에 제3 유저 데이터(UDAT3)를 저장하고 페이지(PAGE3)의 메타 영역(200)에 제1 논리 주소(LBA1) 및 맵버전(V00)를 프로그램 한다(S555). Thereafter, the controller 130 controls the memory device 150 so that the third user data UDAT3, the first logical address LBA1, and the map version V01 are programmed into the memory device 150 (S555). Accordingly, the memory device 150 stores the third user data UDAT3 in the user area 100 of the page PAGE3 in the erased state and the first logical address LBA1 in the meta area 200 of the page PAGE3. and program the map version (V00) (S555).

메모리 장치(150)는 프로그램 동작이 완료됨을 알리는 응답과 함께 프로그램 동작이 수행된 페이지(PAGE3)의 물리 주소(PBA3)를 컨트롤러(130)로 전송할 수 있다. 이에, 컨트롤러(130)는 프로그램 동작이 수행된 물리 주소(PBA3)를 확인할 수 있다(S560).The memory device 150 may transmit the physical address PBA3 of the page PAGE3 on which the program operation is performed to the controller 130 together with a response indicating that the program operation is completed. Accordingly, the controller 130 may check the physical address PBA3 on which the program operation is performed (S560).

컨트롤러(130)는 제1 논리 주소(LBA1)에 물리 주소(PBA3)을 대응시켜, L2P맵 정보(L2P_MAP)을 생성한다(S565). The controller 130 associates the physical address PBA3 with the first logical address LBA1 to generate L2P map information L2P_MAP ( S565 ).

이후, 컨트롤러(130)은 올드 데이터인 제1 유저 데이터(UDAT1)를 저장하고 있는 제1 물리 주소(PBA1)를 무효화할 수 있다(S575). 이후, 컨트롤러(130)은 제1 물리 주소(PBA1)가 포함된 유저 블록에 소거 동작을 수행할 수 있다(S580)Thereafter, the controller 130 may invalidate the first physical address PBA1 storing the first user data UDAT1 that is the old data ( S575 ). Thereafter, the controller 130 may perform an erase operation on the user block including the first physical address PBA1 ( S580 ).

S575 및 S580단계 사이에, 호스트(102)는 제3 리드 커맨드(RD_CMD3)와 함께 제1 논리 주소(LBA1), 제1 물리 주소(PBA1) 및 맵버전(V00)을 메모리 시스템(110)으로 전송할 수 있다. 컨트롤러(130)는 호스트(102)로부터 제3 리드 커맨드(RD_CMD3)와 함께, 제1 논리 주소(LBA1), 제1 물리 주소(PBA1) 및 맵버전(V00)을 수신할 수 있다(S578). 이에, 컨트롤러는 본 발명의 도 8b 및 도 8c에서 설명된 읽기 동작을 수행할 수 있다.Between steps S575 and S580 , the host 102 transmits the first logical address LBA1 , the first physical address PBA1 , and the map version V00 along with the third read command RD_CMD3 to the memory system 110 . can The controller 130 may receive the first logical address LBA1 , the first physical address PBA1 , and the map version V00 along with the third read command RD_CMD3 from the host 102 ( S578 ). Accordingly, the controller may perform the read operation described with reference to FIGS. 8B and 8C of the present invention.

만약, 읽기 동작 과정에서 S300c 단계의 2차 검증 과정을 수행하지 않고, S300a 단계의 1차 검증만으로 호스트(102)로부터 수신된 제1 물리 주소(PBA1)의 유효성을 판단한다면, 컨트롤러(130)는 무효한 제1 물리 주소(PBA1)를 유효한 것으로 잘못 판단할 수 있다. If, in the read operation process, the validity of the first physical address PBA1 received from the host 102 is determined only by the first verification of step S300a without performing the secondary verification process of step S300c, the controller 130 is The invalid first physical address PBA1 may be erroneously determined as valid.

도 9의 S420 단계에 의해, 제1 물리 주소(PBA1)에는 제1 논리 주소(LBA1), V(00) 및 제1 유저 데이터(UDAT)가 저장된 상태이다. S575 단계에 의해 무효화된 제1 물리 주소(PBA1)은 여전히 제1 논리 주소(LBA1)에 대응되는 올드 데이터인 제1 유저 데이터(UDAT1)를 저장한다. By step S420 of FIG. 9 , the first logical address LBA1, V(00), and the first user data UDAT are stored in the first physical address PBA1. The first physical address PBA1 invalidated by step S575 still stores the first user data UDAT1, which is old data corresponding to the first logical address LBA1.

이에, 컨트롤러(130)는 호스트가 리드 요청한 제1 논리 주소(LBA1)에 대응되는 제3 유저 데이터(UDAT3)가 아닌, 제1 물리 주소(PBA1)에 저장된 올드 데이터인 제1 유저 데이터(UDAT1)를 호스트(102)로 전송한다(비정상 리드 동작). Accordingly, the controller 130 controls the first user data UDAT1, which is old data stored in the first physical address PBA1, rather than the third user data UDAT3 corresponding to the first logical address LBA1 requested by the host. to the host 102 (abnormal read operation).

이에, 본 발명의 실시 예에 따른 컨트롤러(130)는 도 8b 및 도 8c에서 설명된 S300c의 제2 검증 동작을 통해, 제1 물리 주소(PBA1)에 대응되는 페이지(PAGE1)의 메타 영역(200)에 저장된 맵버전(00)과 메모리(144)에 저장된 맵버전(00)이 동일하지 않음을 인지할 수 있다. 이에, 컨트롤러(130)는 호스트(102)로부터 수신된 제1 물리 주소(PBA1)가 무효하다고 판단할 수 있다. Accordingly, the controller 130 according to an embodiment of the present invention performs the second verification operation of S300c described with reference to FIGS. 8B and 8C , the meta area 200 of the page PAGE1 corresponding to the first physical address PBA1. It can be recognized that the map version 00 stored in ) and the map version 00 stored in the memory 144 are not the same. Accordingly, the controller 130 may determine that the first physical address PBA1 received from the host 102 is invalid.

이와 같이, 본 발명의 실시 예는 논리 주소에 대응되는 유저 데이터(UDAT) 및 물리 주소(PBA)가 변경됨에 따라 무효화되는 호스트 물리 주소(PBA)의 유효성을 보다 정확하게 판단할 수 있다. As such, according to an embodiment of the present invention, the validity of the host physical address (PBA), which is invalidated as the user data (UDAT) corresponding to the logical address and the physical address (PBA) is changed, can be more accurately determined.

전술한 바와 같이, 호스트 메모리(106)를 맵데이터(L2P MAP)을 저장하는 버퍼 메모리로 사용함으로써, 메모리 시스템(110) 내 메모리(144)의 저장 공간의 한계로 인하여 메타 데이터(L2P MAP)를 메모리 장치(150)로부터 읽어들이고, 다시 저장하는 과정을 생략할 수 있다. 이를 통해, 메모리 시스템(110)의 동작 효율성이 높아질 수 있다. As described above, by using the host memory 106 as a buffer memory for storing the map data (L2P MAP), meta data (L2P MAP) is stored due to the limitation of the storage space of the memory 144 in the memory system 110 . The process of reading from the memory device 150 and storing again may be omitted. Through this, the operating efficiency of the memory system 110 may be increased.

또한, 본 발명의 실시 예에 따른 메모리 시스템(110)은 호스트(102)에 포함된 호스트 메모리(106)의 일부 영역을 캐시(cashe) 혹은 버퍼(buffer)로 사용하고, 메타 데이터를 저장하여, 메모리 시스템(110) 내 컨트롤러(130)가 사용하는 메모리(144)의 저장 공간의 한계를 극복할 수 있다. In addition, the memory system 110 according to an embodiment of the present invention uses a partial area of the host memory 106 included in the host 102 as a cache or buffer, and stores metadata, It is possible to overcome the limitation of the storage space of the memory 144 used by the controller 130 in the memory system 110 .

한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로, 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.On the other hand, although specific embodiments have been described in the detailed description of the present invention, various modifications are possible without departing from the scope of the present invention. Therefore, the scope of the present invention should not be limited to the described embodiments and should be defined by the claims described below as well as the claims and equivalents.

Claims (20)

유저 데이터 및 상기 유저 데이터의 메타 데이터를 저장하는 비휘발성 메모리 장치; 및
상기 비휘발성 메모리 장치를 제어하는 컨트롤러를 포함하며,
상기 컨트롤러는 호스트로부터 읽기 요청 및 메타 데이터와 함께 수신된 물리 주소의 유효성 여부를, 상기 물리 주소에 저장된 메타 데이터를 이용하여 판단하는 메모리 시스템.
a nonvolatile memory device for storing user data and metadata of the user data; and
a controller for controlling the non-volatile memory device;
The controller determines whether the physical address received along with the read request and metadata from the host is valid, using metadata stored in the physical address.
제1항에 있어서,
상기 컨트롤러는 상기 물리 주소가 유효하면, 상기 물리 주소에 저장된 유저 데이터를 상기 호스트로 전송하는 메모리 시스템.
The method of claim 1,
If the physical address is valid, the controller transmits the user data stored in the physical address to the host.
제1항에 있어서,
상기 컨트롤러는
상기 물리 주소의 유효성 여부를 판단하기 위해, 상기 물리 주소에 저장된 메타 데이터를 상기 비휘발성 메모리 장치로부터 리드-아웃하는 동안, 상기 물리 주소에 저장된 유저 데이터도 리드-아웃하여 임시 저장하는 메모리 시스템.
The method of claim 1,
the controller is
In order to determine whether the physical address is valid, while the metadata stored in the physical address is read out from the nonvolatile memory device, the user data stored in the physical address is also read out and temporarily stored.
제3항에 있어서,
상기 물리 주소가 유효하면, 상기 컨트롤러는 상기 임시 저장된 유저 데이터를 상기 호스트로 전송하는 메모리 시스템.
The method of claim 3,
If the physical address is valid, the controller transmits the temporarily stored user data to the host.
제1항에 있어서,
상기 비휘발성 메모리 장치에 저장된 메타 데이터의 최신을 저장하는 휘발성 메모리를 더 포함하며,
상기 컨트롤러는, 상기 휘발성 메모리에 저장된 최신 메타 데이터와 상기 호스트로부터 수신된 메타 데이터의 동일여부를 판단하고, 동일하면 상기 물리 주소의 유효성 여부를 판단하며,
상기 최신 메타 데이터는 논리 주소에 대응되는 물리 주소가 변경될 때마다 업데이트되는 메모리 시스템.
The method of claim 1,
Further comprising a volatile memory for storing the latest metadata stored in the non-volatile memory device,
The controller determines whether the latest metadata stored in the volatile memory is the same as the metadata received from the host, and if the same, determines whether the physical address is valid;
The latest metadata is updated whenever a physical address corresponding to a logical address is changed.
제5항에 있어서,
상기 동일 여부를 판단하는 동안, 상기 물리 주소에 저장된 유저 데이터를 상기 비휘발성 메모리 장치로부터 리드-아웃하여 임시 저장하는 메모리 시스템.
The method of claim 5,
A memory system for reading out the user data stored in the physical address from the nonvolatile memory device and temporarily storing the user data stored in the physical address while determining whether the data is the same.
제1항에 있어서,
상기 메타 데이터는 논리 주소 및 상기 논리 주소가 포함된 L2P맵 정보의 맵버전을 포함하는 메모리 시스템.
The method of claim 1,
The metadata includes a logical address and a map version of L2P map information including the logical address.
제7항에 있어서,
상기 물리 주소가 무효하면, 상기 컨트롤러는 상기 호스트로부터 수신된 논리 주소에 대응되는 물리 주소를 검색하고, 상기 검색된 물리 주소에 저장된 유저 데이터에 상기 호스트로 전송하는 메모리 시스템.
The method of claim 7,
If the physical address is invalid, the controller searches for a physical address corresponding to the logical address received from the host, and transmits user data stored in the searched physical address to the host.
제7항에 있어서,
상기 호스트로부터 수신된 맵버전은 상기 호스트로부터 수신된 L2P맵 정보가 상기 메모리 시스템으로부터 전송된 시점의 상태값을 갖는 메모리 시스템.
The method of claim 7,
The map version received from the host has a state value at a time when the L2P map information received from the host is transmitted from the memory system.
제7항에 있어서,
상기 물리 주소에 저장된 맵버전은 상기 유저 데이터가 상기 물리 주소에 프로그램되는 시점의 상태값을 가지며,
상기 물리 주소에 저장된 논리 주소는 상기 물리 주소에 저장된 상기 유저 데이터에 대응되는 논리 주소인 메모리 시스템.
The method of claim 7,
The map version stored in the physical address has a state value at the time when the user data is programmed in the physical address,
The logical address stored in the physical address is a logical address corresponding to the user data stored in the physical address.
유저 데이터 및 상기 유저 데이터의 메타 데이터를 저장하는 비휘발성 메모리 장치 및 상기 메타 데이터의 최신 버전을 저장하는 컨트롤러를 포함하는 메모리 시스템의 동작 방법에 있어서,
호스트로부터 읽기 요청 및 메타 데이터와 함께 물리 주소를 수신하는 단계; 및
상기 비휘발성 메모리 장치에 저장된 메타 데이터를 이용하여, 상기 물리 주소의 유효성을 판단하는 단계를 포함하는 메모리 시스템의 동작 방법.
A method of operating a memory system comprising: a non-volatile memory device for storing user data and metadata of the user data; and a controller for storing the latest version of the metadata, the method comprising:
receiving a physical address together with a read request and metadata from a host; and
and determining the validity of the physical address by using metadata stored in the nonvolatile memory device.
제11항에 있어서,
상기 컨트롤러는 상기 물리 주소가 유효하면, 상기 물리 주소에 저장된 유저 데이터를 상기 호스트로 전송하는 단계를 더 포함하는 메모리 시스템의 동작 방법.
The method of claim 11,
and transmitting, by the controller, user data stored in the physical address to the host if the physical address is valid.
제11항에 있어서,
상기 물리 주소에 저장된 메타 데이터를 상기 비휘발성 메모리 장치로부터 리드-아웃하는 동안, 상기 물리 주소에 저장된 유저 데이터도 리드-아웃하여 임시 저장하는 단계를 더 포함하는 메모리 시스템의 동작 방법.
The method of claim 11,
and temporarily storing the user data stored in the physical address while reading out the metadata stored in the physical address from the nonvolatile memory device.
제13항에 있어서,
상기 물리 주소가 유효하면, 상기 임시 저장된 유저 데이터를 상기 호스트로 전송하는 단계를 더 포함하는 메모리 시스템의 동작 방법.
The method of claim 13,
and transmitting the temporarily stored user data to the host if the physical address is valid.
제11항에 있어서,
상기 최신 메타 데이터와 상기 호스트로부터 수신된 메타 데이터의 동일여부를 판단하는 단계; 및
상기 최신 메타 데이터와 상기 호스트로부터 수신된 메타 데이터가 동일하면 상기 물리 주소의 유효성 여부를 판단하는 단계를 수행하는 메모리 시스템의 동작 방법.
The method of claim 11,
determining whether the latest metadata is the same as the metadata received from the host; and
and determining whether the physical address is valid when the latest metadata is the same as the metadata received from the host.
제15항에 있어서,
상기 동일여부를 판단하는 단계는
상기 물리 주소에 저장된 유저 데이터를 상기 비휘발성 메모리 장치로부터 리드-아웃하여 임시 저장하는 단계를 포함하는 메모리 시스템의 동작 방법.
The method of claim 15,
The step of determining whether the same
and reading out the user data stored in the physical address from the nonvolatile memory device and temporarily storing the user data.
제11항에 있어서,
상기 메타 데이터는 논리 주소 및 상기 논리 주소가 포함된 L2P맵 정보의 맵버전을 포함하는 메모리 시스템의 동작 방법.
The method of claim 11,
The metadata includes a logical address and a map version of L2P map information including the logical address.
제17항에 있어서,
상기 물리 주소가 무효하면, 상기 호스트로부터 수신된 논리 주소에 대응되는 물리 주소를 검색하는 단계; 및
상기 검색된 물리 주소에 저장된 유저 데이터를 상기 호스트로 전송하는 단계를 더 포함하는 메모리 시스템의 동작 방법.
The method of claim 17,
if the physical address is invalid, searching for a physical address corresponding to the logical address received from the host; and
and transmitting user data stored in the found physical address to the host.
제17항에 있어서,
상기 호스트로부터 수신된 맵버전은 상기 호스트로부터 수신된 L2P맵 정보가 상기 메모리 시스템으로부터 전송된 시점의 상태값을 갖는 메모리 시스템의 동작 방법.
The method of claim 17,
The method of operating a memory system, wherein the map version received from the host has a state value at a time when the L2P map information received from the host is transmitted from the memory system.
제17항에 있어서,
상기 물리 주소에 저장된 맵버전은 상기 유저 데이터가 상기 물리 주소에 프로그램되는 시점의 상태값을 가지며,
상기 물리 주소에 저장된 논리 주소는 상기 물리 주소에 저장된 상기 유저 데이터에 대응되는 논리 주소인 메모리 시스템의 동작 방법.

The method of claim 17,
The map version stored in the physical address has a state value at the time when the user data is programmed in the physical address,
The logical address stored in the physical address is a logical address corresponding to the user data stored in the physical address.

KR1020190152374A 2019-11-25 2019-11-25 Apparatus and method for reading operation in memory system KR20210063814A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190152374A KR20210063814A (en) 2019-11-25 2019-11-25 Apparatus and method for reading operation in memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190152374A KR20210063814A (en) 2019-11-25 2019-11-25 Apparatus and method for reading operation in memory system

Publications (1)

Publication Number Publication Date
KR20210063814A true KR20210063814A (en) 2021-06-02

Family

ID=76372798

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190152374A KR20210063814A (en) 2019-11-25 2019-11-25 Apparatus and method for reading operation in memory system

Country Status (1)

Country Link
KR (1) KR20210063814A (en)

Similar Documents

Publication Publication Date Title
KR20210027642A (en) Apparatus and method for transmitting map information in memory system
US11675527B2 (en) Memory system uploading hot metadata to a host based on free space size of a host memory, and read operation method thereof
US11157402B2 (en) Apparatus and method for managing valid data in memory system
US11354250B2 (en) Apparatus for transmitting map information in memory system
US20200264973A1 (en) Method and apparatus for managing map data in memory system
US11029867B2 (en) Apparatus and method for transmitting map information and read count in memory system
US11126562B2 (en) Method and apparatus for managing map data in a memory system
US11681633B2 (en) Apparatus and method for managing meta data in memory system
US11281574B2 (en) Apparatus and method for processing different types of data in memory system
KR20200113989A (en) Apparatus and method for controlling write operation of memory system
KR20200113992A (en) Apparatus and method for reducing cell disturb in open block of the memory system during receovery procedure
KR20210030599A (en) Memory system for supporting distributed read of data and method operation thereof
KR20200058867A (en) Apparatus and method for reducing repeated access to the same block of the memory system during receovery procedure
US20210026778A1 (en) Method and apparatus for performing access operation in memory system
US20200250104A1 (en) Apparatus and method for transmitting map information in a memory system
KR20210039185A (en) Apparatus and method for providing multi-stream operation in memory system
US20220012180A1 (en) Memory system for meta data management and operating method of memory system
US11275682B2 (en) Memory system and method for performing command operation by memory system
KR20200119059A (en) Memory system and operating method thereof
US11663139B2 (en) Apparatus for transmitting map information in memory system
KR20210063814A (en) Apparatus and method for reading operation in memory system
US11366611B2 (en) Apparatus for transmitting map information in a memory system
KR20210122461A (en) Apparatus and method for improving input/output throughput of memory system
KR20200014164A (en) Apparatus and method for engaging plural memory system with each other to store data
KR20200125262A (en) Memory system, data processing system and method for operation the same