KR20230013822A - Memory system and data processing system - Google Patents

Memory system and data processing system Download PDF

Info

Publication number
KR20230013822A
KR20230013822A KR1020210094761A KR20210094761A KR20230013822A KR 20230013822 A KR20230013822 A KR 20230013822A KR 1020210094761 A KR1020210094761 A KR 1020210094761A KR 20210094761 A KR20210094761 A KR 20210094761A KR 20230013822 A KR20230013822 A KR 20230013822A
Authority
KR
South Korea
Prior art keywords
error history
data
memory system
memory
area
Prior art date
Application number
KR1020210094761A
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 KR1020210094761A priority Critical patent/KR20230013822A/en
Priority to US17/554,169 priority patent/US11782782B2/en
Priority to CN202210300429.7A priority patent/CN115220950A/en
Publication of KR20230013822A publication Critical patent/KR20230013822A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2247Verification or detection of system hardware configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file

Abstract

A data processing system includes: a memory system including an error history area, and storing error history data related to errors occurring within the memory system in the error history area; and a host acquiring the error history data from the memory system by providing an error history read command to the memory system, performing failure analysis on the memory system based on the acquired error history data, and controlling the memory system so as to clear at least one part of the error history area by providing an error history clear command to the memory system. The error history area can be a memory area which cannot be accessed with a logical address used for the host. Therefore, the present invention is capable of enabling the host to easily perform the failure analysis on the memory system.

Description

메모리 시스템 및 데이터 처리 시스템{MEMORY SYSTEM AND DATA PROCESSING SYSTEM}Memory system and data processing system {MEMORY SYSTEM AND DATA PROCESSING SYSTEM}

본 발명은 메모리 시스템 및 데이터 처리 시스템에 관한 것이다.The present invention relates to memory systems and data processing systems.

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

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

본 발명은 호스트가 메모리 시스템의 불량 분석을 용이하게 할 수 있도록 하는 메모리 시스템 및 상기 메모리 시스템을 포함하는 데이터 처리 시스템을 제공하고자 한다.An object of the present invention is to provide a memory system enabling a host to easily analyze failures of the memory system and a data processing system including the memory system.

본 발명의 실시 예에 따른 데이터 처리 시스템에 있어서, 에러 히스토리 영역을 포함하고, 내부에서 발생한 에러에 연관된 에러 히스토리 데이터를 상기 에러 히스토리 영역에 저장하는 메모리 시스템; 및 상기 메모리 시스템으로 에러 히스토리 리드 커맨드를 제공하여 상기 메모리 시스템으로부터 상기 에러 히스토리 데이터를 획득하고, 상기 획득된 에러 히스토리 데이터에 기초하여 상기 메모리 시스템의 불량 분석(failure analysis)을 수행하며, 상기 메모리 시스템으로 에러 히스토리 클리어 커맨드를 제공하여 상기 메모리 시스템이 상기 에러 히스토리 영역의 적어도 일부를 클리어하도록 제어하는 호스트를 포함하고, 상기 에러 히스토리 영역은 상기 호스트에서 사용되는 논리 주소로 액세스될 수 없는 메모리 영역일 수 있다.A data processing system according to an embodiment of the present invention, comprising: a memory system including an error history area and storing error history data related to errors generated therein in the error history area; and obtaining the error history data from the memory system by providing an error history read command to the memory system, performing a failure analysis of the memory system based on the obtained error history data, and performing a failure analysis of the memory system. and a host controlling the memory system to clear at least a portion of the error history area by providing an error history clear command to the error history area, wherein the error history area may be a memory area that cannot be accessed with a logical address used by the host. there is.

또한, 상기 에러 히스토리 클리어 커맨드는 모드가 에러 히스토리 클리어 모드로 지정된 리드 버퍼 커맨드이고, 상기 에러 히스토리 클리어 모드는 SCSI(Small Computer System Interface) 커맨드인 상기 리드 버퍼 커맨드의 예비된(reserved) 모드 값에 대응할 수 있다.In addition, the error history clear command is a read buffer command whose mode is specified as an error history clear mode, and the error history clear mode may correspond to a reserved mode value of the read buffer command, which is a small computer system interface (SCSI) command. can

또한, 상기 에러 히스토리 영역은 복수의 에러 히스토리 디렉토리 엔트리들을 포함하고, 상기 호스트는 상기 에러 히스토리 디렉토리 엔트리들 중 어느 하나에 대응하는 버퍼 ID(identifier) 값을 포함하는 상기 에러 히스토리 클리어 커맨드를 상기 메모리 시스템으로 제공함으로써 상기 어느 하나의 에러 히스토리 디렉토리 엔트리를 클리어하도록 상기 메모리 시스템을 제어할 수 있다.The error history area includes a plurality of error history directory entries, and the host sends the error history clear command including a buffer ID (identifier) value corresponding to one of the error history directory entries to the memory system. It is possible to control the memory system to clear any one of the error history directory entries.

또한, 상기 에러 히스토리 클리어 커맨드의 CDB(Command Descriptor Block)는 동작 코드 '3Ch' 및 모드 '1Dh'를 포함하고, 버퍼 ID '10h' 내지 'EFh' 중 어느 하나를 포함할 수 있다.Also, the command descriptor block (CDB) of the error history clear command may include an operation code '3Ch' and a mode '1Dh', and may include one of buffer IDs '10h' to 'EFh'.

또한, 상기 에러 히스토리 영역은 복수의 에러 히스토리 디렉토리 엔트리들을 포함하고, 상기 호스트는 상기 복수의 에러 히스토리 디렉토리 엔트리들 모두를 지정하기 위한 버퍼 ID 값을 포함하는 에러 히스토리 클리어 커맨드를 상기 메모리 시스템으로 제공함으로써 상기 복수의 에러 히스토리 디렉토리 엔트리들 모두를 클리어하도록 상기 메모리 시스템을 제어하는고, 상기 버퍼 ID 값은 상기 에러 히스토리 클리어 커맨드의 예비된 버퍼 ID 값일 수 있다.In addition, the error history area includes a plurality of error history directory entries, and the host provides an error history clear command including a buffer ID value for specifying all of the plurality of error history directory entries to the memory system. The memory system may be controlled to clear all of the plurality of error history directory entries, and the buffer ID value may be a reserved buffer ID value of the error history clear command.

또한, 상기 에러 히스토리 클리어 커맨드의 CDB는 동작 코드 '3Ch', 모드 '1Dh' 및 버퍼 ID 'FDh'를 포함할 수 있다.Also, the CDB of the error history clear command may include an operation code '3Ch', a mode '1Dh', and a buffer ID 'FDh'.

또한, 상기 에러 히스토리 영역은 복수의 에러 히스토리 디렉토리 엔트리들을 포함하고, 상기 메모리 시스템은 상기 복수의 에러 히스토리 디렉토리 엔트리들 중 적어도 하나를 지정하는 상기 에러 히스토리 클리어 커맨드에 응하여 상기 에러 히스토리 영역의 데이터를 내부 휘발성 메모리로 로드하고, 상기 에러 히스토리 영역을 이레이즈하고, 상기 로드된 데이터로부터 상기 지정된 에러 히스토리 디렉토리 엔트리에 대응하는 데이터를 제거함으로써 상기 로드된 데이터를 수정하고, 상기 수정된 데이터를 상기 에러 히스토리 영역에 프로그램할 수 있다.The error history area includes a plurality of error history directory entries, and the memory system internally stores data in the error history area in response to the error history clear command designating at least one of the plurality of error history directory entries. Loading into volatile memory, erasing the error history area, correcting the loaded data by removing data corresponding to the designated error history directory entry from the loaded data, and sending the modified data to the error history area can be programmed in

또한, 상기 에러 히스토리 영역은 복수의 에러 히스토리 디렉토리 엔트리들을 포함하고, 상기 메모리 시스템은 상기 복수의 에러 히스토리 디렉토리 엔트리들 중 적어도 하나를 지정하는 상기 에러 히스토리 클리어 커맨드에 응하여 상기 에러 히스토리 영역의 데이터를 내부 휘발성 메모리로 로드하고, 상기 에러 히스토리 영역을 이레이즈하고, 상기 로드된 데이터로부터 상기 지정된 에러 히스토리 디렉토리 엔트리에 대응하는 데이터의 적어도 일부를 클리어-마크 데이터로 덮어쓰기함으로써 상기 로드된 데이터를 수정하고, 상기 수정된 데이터를 상기 에러 히스토리 영역에 프로그램함으로써 상기 지정된 에러 히스토리 디렉토리 엔트리를 클리어할 수 있다.The error history area includes a plurality of error history directory entries, and the memory system internally stores data in the error history area in response to the error history clear command designating at least one of the plurality of error history directory entries. modifying the loaded data by loading into a volatile memory, erasing the error history area, and overwriting at least a portion of data corresponding to the designated error history directory entry from the loaded data with clear-mark data; The designated error history directory entry may be cleared by programming the corrected data in the error history area.

또한, 상기 메모리 시스템은 상기 에러 히스토리 클리어 커맨드가 수행된 후 재구동 시에 내부에 새로운 에러가 발생하면 상기 클리어된 에러 히스토리 디렉토리 엔트리에 새로운 에러 히스토리 데이터를 저장할 수 있다.Also, if a new error occurs inside the memory system upon restart after the error history clear command is executed, new error history data may be stored in the cleared error history directory entry.

또한, 상기 메모리 시스템은 상기 에러 히스토리 영역의 데이터를 내부 휘발성 메모리로 로드하고, 상기 에러 히스토리 영역을 이레이즈하고, 상기 로드된 데이터에서 상기 클리어된 에러 히스토리 디렉토리 엔트리에 해당하는 데이터를 상기 새로운 에러 히스토리 데이터로 덮어쓰기함으로써 상기 로드된 데이터를 수정하고, 상기 수정된 데이터를 상기 에러 히스토리 영역에 저장함으로써 상기 클리어된 에러 히스토리 디렉토리 엔트리에 새로운 에러 히스토리 데이터를 저장할 수 있다.In addition, the memory system loads data of the error history area into an internal volatile memory, erases the error history area, and transfers data corresponding to the cleared error history directory entry from the loaded data to the new error history The loaded data may be corrected by overwriting with data, and new error history data may be stored in the cleared error history directory entry by storing the modified data in the error history area.

또한, 상기 호스트는 상기 메모리 시스템의 재구동 이후에 에러 히스토리 리드 커맨드를 상기 메모리 시스템으로 더 제공하고, 상기 메모리 시스템로부터 유효한 에러 히스토리 데이터를 획득한 경우 상기 획득된 에러 히스토리 데이터에 기초하여 상기 새로 발생한 에러의 발생 원인을 분석할 수 있다.In addition, the host further provides an error history read command to the memory system after the memory system is restarted, and when valid error history data is obtained from the memory system, the newly generated error history data is generated based on the obtained error history data. The cause of the error can be analyzed.

또한, 상기 호스트는 상기 에러 히스토리 리드 커맨드에 응하여 획득된 에러 히스토리 데이터가 상기 클리어-마크 데이터에 해당하는 경우, 호스트에 의해 에러 히스토리 영역이 클리어된 것으로 판단하고 불량 분석을 종료할 수 있다.In addition, when the error history data acquired in response to the error history read command corresponds to the clear-mark data, the host may determine that the error history area is cleared by the host and terminate the defect analysis.

또한, 상기 메모리 시스템은 복수의 메모리 블록들을 포함하고, 상기 에러 히스토리 영역은 상기 복수의 메모리 블록들 중 어느 하나에 대응할 수 있다.Also, the memory system may include a plurality of memory blocks, and the error history area may correspond to any one of the plurality of memory blocks.

또한, 상기 메모리 시스템은 UFS(Universal Flash Storage) 장치일 수 있다.Also, the memory system may be a Universal Flash Storage (UFS) device.

본 발명의 실시 예에 따른 메모리 시스템에 있어서, 에러 히스토리 영역을 포함하는 메모리 장치; 및 호스트로부터의 에러 히스토리 클리어 커맨드에 응하여 상기 에러 히스토리 영역의 적어도 일부를 클리어하는 컨트롤러를 포함하고, 상기 에러 히스토리 영역은 상기 호스트에서 사용되는 논리 주소로 액세스될 수 없는 메모리 영역일 수 있다.A memory system according to an embodiment of the present invention includes: a memory device including an error history area; and a controller that clears at least a part of the error history area in response to an error history clear command from a host, wherein the error history area may be a memory area that cannot be accessed by a logical address used by the host.

또한, 상기 에러 히스토리 클리어 커맨드는 모드가 에러 히스토리 클리어 모드로 지정된 리드 버퍼 커맨드이고, 상기 에러 히스토리 클리어 모드는 SCSI(Small Computer System Interface) 커맨드인 상기 리드 버퍼 커맨드의 예비된(reserved) 모드 값에 대응할 수 있다.In addition, the error history clear command is a read buffer command whose mode is specified as an error history clear mode, and the error history clear mode may correspond to a reserved mode value of the read buffer command, which is a small computer system interface (SCSI) command. can

또한, 상기 에러 히스토리 영역은 복수의 에러 히스토리 디렉토리 엔트리들을 포함하고, 상기 에러 히스토리 클리어 커맨드는 상기 에러 히스토리 디렉토리 엔트리들 중 어느 하나에 대응하는 버퍼 ID 값을 포함하는 특정 에러 히스토리 클리어 커맨드일 수 있다.Also, the error history area may include a plurality of error history directory entries, and the error history clear command may be a specific error history clear command including a buffer ID value corresponding to any one of the error history directory entries.

또한, 상기 특정 에러 히스토리 클리어 커맨드의 CDB(Command Descriptor Block)는 동작 코드 '3Ch' 및 모드 '1Dh'를 포함하고, 버퍼 ID '10h' 내지 'EFh' 중 어느 하나를 포함할 수 있다.Also, the CDB (Command Descriptor Block) of the specific error history clear command may include an operation code '3Ch' and a mode '1Dh', and may include any one of buffer IDs '10h' to 'EFh'.

또한, 상기 에러 히스토리 영역은 복수의 에러 히스토리 디렉토리 엔트리들을 포함하고, 상기 에러 히스토리 클리어 커맨드는 상기 복수의 에러 히스토리 디렉토리 엔트리들 모두를 지정하기 위한 버퍼 ID 값을 포함하는 전체 에러 히스토리 클리어 커맨드일 수 있다.The error history area may include a plurality of error history directory entries, and the error history clear command may be an entire error history clear command including a buffer ID value for designating all of the plurality of error history directory entries. .

또한, 상기 전체 에러 히스토리 클리어 커맨드의 CDB는 동작 코드 '3Ch', 모드 '1Dh' 및 버퍼 ID 'FDh'를 포함할 수 있다.Also, the CDB of the clear all error history command may include an operation code '3Ch', a mode '1Dh', and a buffer ID 'FDh'.

본 발명은 호스트가 메모리 시스템의 불량 분석을 용이하게 할 수 있도록 하는 메모리 시스템 및 상기 메모리 시스템을 포함하는 데이터 처리 시스템을 제공할 수 있다.The present invention may provide a memory system enabling a host to easily analyze failures of the memory system and a data processing system including the memory system.

도 1은 본 발명의 실시 예에 따른 메모리 시스템(110)을 포함하는 데이터 처리 시스템(100)의 일 예를 개략적으로 도시한 도면이다.
도 2는 본 발명의 실시 예에 따른 메모리 시스템(110)을 나타내는 도면이다.
도 3은 메모리 장치(150) 내의 메모리 셀 어레이의 예시적인 구성을 나타낸 회로도이다.
도 4는 에러 히스토리 영역(152)을 상세히 설명하기 위한 도면이다.
도 5는 에러 히스토리 영역(152)에 저장될 수 있는 에러 히스토리 데이터를 설명하기 위한 도면이다.
도 6 내지 도 9b는 본 발명의 실시 예에 따른 에러 히스토리 클리어 커맨드를 상세히 설명하는 도면이다.
도 10 내지 도 11b는 본 발명의 실시 예에 따른 메모리 시스템(110)의 동작을 설명하는 도면이다.
도 12는 호스트(102) 및 메모리 시스템(110)의 상호작용(transaction)을 설명하는 도면이다.
1 is a diagram schematically illustrating an example of a data processing system 100 including a memory system 110 according to an embodiment of the present invention.
2 is a diagram illustrating a memory system 110 according to an embodiment of the present invention.
3 is a circuit diagram showing an exemplary configuration of a memory cell array in memory device 150 .
4 is a diagram for explaining the error history area 152 in detail.
FIG. 5 is a diagram for explaining error history data that can be stored in the error history area 152. Referring to FIG.
6 to 9B are diagrams explaining in detail an error history clear command according to an embodiment of the present invention.
10 to 11B are diagrams for explaining the operation of the memory system 110 according to an embodiment of the present invention.
12 is a diagram illustrating a transaction between the host 102 and the memory system 110 .

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명하기로 한다.Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings.

그러나, 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구성될 수 있으며, 단지 본 실시예는 본 발명의 개시가 완전하도록 하며 통상의 지식을 가진 자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다.However, the present invention is not limited to the embodiments disclosed below and may be configured in various different forms, but only the present embodiments are intended to complete the disclosure of the present invention and to those skilled in the art within the scope of the present invention. It is provided to fully inform you.

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

도 1을 참조하면, 데이터 처리 시스템(100)은, 호스트(102) 및 메모리 시스템(110)을 포함한다.Referring to FIG. 1 , a data processing system 100 includes a host 102 and a memory system 110 .

호스트(102)는 전자 장치, 예를 들어 휴대폰, MP3 플레이어, 랩탑 컴퓨터 등과 같은 휴대용 전자 장치들, 또는 데스크탑 컴퓨터, 게임기, TV, 프로젝터 등과 같은 전자 장치들을 포함할 수 있다.The host 102 may include electronic devices, for example, portable electronic devices such as mobile phones, MP3 players, and laptop computers, or electronic devices such as desktop computers, game consoles, TVs, and projectors.

호스트(102)는 적어도 하나의 운영 시스템(OS: operating system)을 포함할 수 있다. 운영 시스템은 호스트(102)의 기능 및 동작을 전반적으로 관리 및 제어하고, 데이터 처리 시스템(100) 또는 메모리 시스템(110)을 사용하는 사용자와 호스트(102) 간에 상호 동작을 제공한다. 운영 시스템은 사용자의 사용 목적 및 용도에 상응한 기능 및 동작을 지원하며, 호스트(102)의 이동성(mobility)에 따라 일반 운영 시스템과 모바일 운용 시스템으로 구분할 수 있다. 운영 시스템에서의 일반 운영 시스템 시스템은, 사용자의 사용 환경에 따라 개인용 운영 시스템과 기업용 운영 시스템으로 구분할 수 있다.The host 102 may include at least one operating system (OS). The operating system generally manages and controls the functions and operations of the host 102 and provides interaction between a user using the data processing system 100 or memory system 110 and the host 102 . The operating system supports functions and operations corresponding to the purpose and purpose of use of the user, and can be divided into a general operating system and a mobile operating system according to the mobility of the host 102 . The general operating system system in the operating system can be divided into a personal operating system and a corporate operating system according to a user's use environment.

메모리 시스템(110)은 호스트(102)의 요청에 응하여 호스트(102)의 데이터를 저장하기 위해 동작할 수 있다.The memory system 110 may operate to store data of the host 102 in response to a request of the host 102 .

호스트(102)는 정해진 인터페이스를 통해 메모리 시스템(110)과 통신할 수 있다. 예를 들어, 메모리 시스템(110)이 UFS(Universal Flash Storage) 장치인 경우 호스트(102)는 SCSI(Small Computer System Interface) 커맨드 세트를 기반으로 하는 UFS 인터페이스를 통해 메모리 시스템(110)과 통신할 수 있다. 그러나 본 발명이 이에 제한되는 것은 아니며, 본 발명은 SCSI 커맨드 세트를 사용하여 호스트(102)와 통신할 수 있는 다양한 메모리 시스템(110)에 적용될 수 있다.The host 102 may communicate with the memory system 110 through a defined interface. For example, if the memory system 110 is a Universal Flash Storage (UFS) device, the host 102 may communicate with the memory system 110 through a UFS interface based on the Small Computer System Interface (SCSI) command set. there is. However, the present invention is not limited thereto, and the present invention can be applied to various memory systems 110 capable of communicating with the host 102 using a SCSI command set.

예를 들어, 메모리 시스템(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 Serial Bus) 저장 장치, UFS(Universal Flash Storage) 장치, CF(Compact Flash) 카드, 스마트 미디어(Smart Media) 카드, 메모리 스틱(Memory Stick) 등과 같은 다양한 종류의 저장 장치들 중 어느 하나로 구현될 수 있다.For example, the memory system 110 may include a solid state drive (SSD), MMC, embedded MMC (eMMC), reduced size MMC (RS-MMC), and a multi-media card (MMC) in the form of micro-MMC. Media Card), Secure Digital (SD) card in the form of SD, mini-SD, and micro-SD, USB (Universal Serial Bus) storage device, UFS (Universal Flash Storage) device, CF (Compact Flash) card, smart It may be implemented as one of various types of storage devices such as a smart media card, a memory stick, and the like.

메모리 시스템(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), 플래시 메모리 등과 같은 비휘발성 메모리 장치를 포함할 수 있다. 상기 플래시 메모리는 3차원 스택 구조를 가질 수 있다.The memory system 110 may be implemented by various types of storage devices. For example, the storage device includes a volatile memory device such as dynamic random access memory (DRAM) and static RAM (SRAM), read only memory (ROM), mask ROM (MROM), programmable ROM (PROM), and erasable memory (EPROM). ROM), electrically erasable ROM (EEPROM), ferromagnetic ROM (FRAM), phase change RAM (PRAM), magnetic RAM (MRAM), resistive RAM (RRAM), flash memory, and the like. The flash memory may have a 3D stack structure.

메모리 시스템(110)은 메모리 장치(150), 컨트롤러(130) 및 암호화기(170)를 포함할 수 있다. 메모리 장치(150)는 호스트(102)를 위한 데이터를 저장할 수 있으며, 컨트롤러(130)는 메모리 장치(150)로의 데이터 저장을 제어할 수 있다. 암호화기(170)는 컨트롤러(130)로부터 호스트(102)로 출력되는 데이터를 암호화(encryption)할 수 있다.The memory system 110 may include a memory device 150 , a controller 130 and an encryptor 170 . The memory device 150 may store data for the host 102 , and the controller 130 may control data storage into the memory device 150 . The encryptor 170 may encrypt data output from the controller 130 to the host 102 .

컨트롤러(130), 메모리 장치(150) 및 암호화기(170)는 하나의 반도체 장치로 집적될 수 있다. 일 예로, 컨트롤러(130), 메모리 장치(150) 및 암호화기(170)는 하나의 반도체 장치로 집적되어 SSD를 구성할 수 있다. 메모리 시스템(110)이 SSD로 사용되면, 메모리 시스템(110)에 연결된 호스트(102)의 동작 속도는 향상될 수 있다. 게다가, 컨트롤러(130), 메모리 장치(150) 및 암호화기(170)는 하나의 반도체 장치로 집적되어 메모리 카드를 구성할 수도 있다. 예를 들어, 컨트롤러(130), 메모리 장치(150) 및 암호화기(170)는 PC 카드(PCMCIA: Personal Computer Memory Card International Association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD, SDHC), 유니버설 플래시 기억 장치(UFS) 등과 같은 메모리 카드를 구성할 수 있다.The controller 130, the memory device 150, and the encryptor 170 may be integrated into a single semiconductor device. For example, the controller 130, the memory device 150, and the encryptor 170 may be integrated into a single semiconductor device to form 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 improved. In addition, the controller 130, the memory device 150, and the encryptor 170 may be integrated into a single semiconductor device to form a memory card. For example, the controller 130, the memory device 150, and the encryptor 170 may include PC cards (Personal Computer Memory Card International Association (PCMCIA)), compact flash cards (CF), smart media cards (SM, SMC), Memory cards such as memory sticks, multimedia cards (MMC, RS-MMC, MMCmicro), SD cards (SD, miniSD, microSD, SDHC), and universal flash storage (UFS) can be configured.

다른 일 예로, 메모리 시스템(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) 장치, 또는 컴퓨팅 시스템을 구성하는 다양한 구성 요소들 중 하나 등을 구성할 수 있다.As another example, the memory system 110 may include a computer, an ultra mobile PC (UMPC), a workstation, a net-book, a personal digital assistant (PDA), a portable computer, a web tablet, Tablet computer, wireless phone, mobile phone, smart phone, e-book, portable multimedia player (PMP), portable game console, 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, constitutes a data center storage, 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, one of various electronic devices constituting a telematics network, It may constitute a radio frequency identification (RFID) device, or one of various components constituting a computing system.

메모리 장치(150)는 비휘발성 메모리 장치일 수 있으며, 전원이 공급되지 않아도 저장된 데이터를 유지할 수 있다. 메모리 장치(150)는 프로그램 동작을 통해 호스트(102)로부터 제공된 데이터를 저장할 수 있고, 리드 동작을 통해 호스트(102)로 메모리 장치(150)에 저장된 데이터를 제공할 수 있다. 일 실시예에서, 메모리 장치(150)는 플래시 메모리가 될 수 있다.The memory device 150 may be a non-volatile memory device, and may maintain stored data even when power is not supplied. The memory device 150 may store data provided from the host 102 through a program operation, and may provide the data stored in the memory device 150 to the host 102 through a read operation. In one embodiment, memory device 150 may be a flash memory.

컨트롤러(130)는 호스트(102)로부터의 요청에 응하여 메모리 장치(150)를 제어할 수 있다. 예를 들어, 컨트롤러(130)는 메모리 장치(150)로부터 리드된 데이터를 호스트(102)로 제공하고, 호스트(102)로부터 제공된 데이터를 메모리 장치(150)에 저장할 수 있다. 이러한 동작을 위해, 컨트롤러(130)는 메모리 장치(150)의 리드(read), 프로그램(program), 이레이즈(erase) 등의 동작을 제어할 수 있다. 컨트롤러(130)는 메모리 장치(150)를 제어하기 위해 펌웨어(FW)를 구동할 수 있다.The controller 130 may control the memory device 150 in response to a request from the host 102 . For example, the controller 130 may provide data read from the memory device 150 to the host 102 and store the data provided from the host 102 in the memory device 150 . For this operation, the controller 130 may control read, program, and erase operations of the memory device 150 . The controller 130 may drive firmware FW to control the memory device 150 .

메모리 시스템(110)의 동작 중 에러가 발생할 수 있다. 컨트롤러(130)는 메모리 시스템(110)에서 에러가 발생하면, 발생한 에러에 대한 정보를 나타내는 에러 히스토리 데이터를 메모리 장치(150)에 저장할 수 있다. 메모리 장치(150)는 에러 히스토리 데이터를 저장하기 위한 전용 영역인 에러 히스토리 영역(152)을 포함할 수 있다. 에러 히스토리 영역(152)은 비휘발성 메모리로 구현될 수 있다. An error may occur during operation of the memory system 110 . When an error occurs in the memory system 110 , the controller 130 may store error history data representing information about the occurred error in the memory device 150 . The memory device 150 may include an error history area 152 that is a dedicated area for storing error history data. The error history area 152 may be implemented as a non-volatile memory.

상기 에러가 발생한 메모리 시스템(110)은 추후에 메모리 시스템(110)의 제조사(vendor)에 의해 불량 분석(failure analysis)될 수 있다. 제조사는 에러 히스토리 영역(152)에 저장된 에러 히스토리 데이터를 획득하여 메모리 시스템(110)의 불량 분석에 활용할 수 있다. 예를 들어, 제조사는 메모리 시스템(110)의 에러 히스토리 데이터를 분석하고, 에러 발생을 반복 재현함으로써 에러의 원인이 되는 펌웨어 코드를 찾을 수 있다.The memory system 110 in which the error has occurred may later be subjected to a failure analysis by a vendor of the memory system 110 . A manufacturer may obtain error history data stored in the error history area 152 and use the error history data of the memory system 110 for analysis. For example, a manufacturer may find a firmware code that causes an error by analyzing error history data of the memory system 110 and repeatedly reproducing the occurrence of the error.

에러 히스토리 영역(152)은 메모리 장치(150)에 포함될 수 있으며, 호스트(102)의 파일 시스템에서 사용되는 논리 어드레스로는 액세스될 수 없는 메모리 영역일 수 있다. 호스트(102)는 일반적인 리드 및 라이트 커맨드, 예를 들어 UFS 장치에서 지원하는 READ(10), WRITE(10) 커맨드를 사용하여서는 에러 히스토리 영역(152)에 액세스하지 못할 수 있다.The error history area 152 may be included in the memory device 150 and may be a memory area that cannot be accessed with a logical address used in the file system of the host 102 . The host 102 may not be able to access the error history area 152 using general read and write commands, for example, the READ(10) and WRITE(10) commands supported by the UFS device.

메모리 시스템(110)은 호스트(102)가 에러 히스토리 영역(152)으로부터 에러 히스토리 데이터를 획득할 수 있도록 하는 커맨드를 지원할 수 있다. 예를 들어, 메모리 시스템(110)이 UFS 3.0 장치인 경우, 호스트(102)는 메모리 시스템(110)으로부터 에러 히스토리 데이터를 획득하기 위해 에러 히스토리 리드 커맨드를 컨트롤러(130)로 제공할 수 있다. 컨트롤러(130)는 호스트(102)로부터의 에러 히스토리 리드 커맨드에 응하여 에러 히스토리 영역(152)에 저장된 에러 히스토리 데이터를 호스트(102)로 제공할 수 있다. 제조사는 호스트(102)로 제공된 상기 에러 히스토리 데이터를 획득하고, 상기 에러 히스토리 데이터를 메모리 시스템(110)의 불량 분석을 위해 사용할 수 있다.The memory system 110 may support a command allowing the host 102 to obtain error history data from the error history area 152 . For example, when the memory system 110 is a UFS 3.0 device, the host 102 may provide an error history read command to the controller 130 to obtain error history data from the memory system 110 . The controller 130 may provide error history data stored in the error history area 152 to the host 102 in response to an error history read command from the host 102 . The manufacturer may acquire the error history data provided to the host 102 and use the error history data to analyze defects of the memory system 110 .

컨트롤러(130)로부터 출력되는 에러 히스토리 데이터는 암호화기(170)를 통해 암호화된 후 호스트(102)로 제공될 수 있다. 에러 히스토리 데이터는 메모리 시스템(110)의 시스템 정보를 포함할 수 있다. 예를 들어, 상기 시스템 정보는 메모리 시스템(110)을 구성하는 하드웨어 및 펌웨어에 대한 정보를 포함할 수 있다. 상기 시스템 정보가 메모리 시스템(110)의 제조사 외부로 유출되지 않는 것이 바람직하다. Error history data output from the controller 130 may be provided to the host 102 after being encrypted by the encryptor 170 . The error history data may include system information of the memory system 110 . For example, the system information may include information on hardware and firmware constituting the memory system 110 . Preferably, the system information is not leaked outside the manufacturer of the memory system 110 .

호스트(102)로부터 에러 히스토리 데이터가 출력되면, 메모리 시스템(110)의 제조사가 상기 데이터를 획득할 수도 있지만 데이터 처리 시스템(100)의 제조사나 A/S 센터를 비롯한 고객사 또는 일반 사용자가 상기 데이터를 획득할 수도 있다. 고객사 또는 일반 사용자로부터 시스템 정보를 보호하기 위해, 암호화기(170)는 컨트롤러(130)로부터 출력되는 에러 히스토리 데이터를 암호화하고, 암호화된 데이터를 호스트(102)로 제공할 수 있다.When error history data is output from the host 102, the manufacturer of the memory system 110 may acquire the data, but the manufacturer of the data processing system 100, customer companies including A/S centers, or general users may obtain the data. may also be obtained. To protect system information from customer companies or general users, the encryptor 170 may encrypt error history data output from the controller 130 and provide the encrypted data to the host 102 .

고객사가 암호화된 에러 히스토리 데이터를 획득하더라도 고객사는 상기 데이터를 복호할 수 없다. 따라서, 에러 히스토리 데이터가 외부로 유출되더라도 메모리 시스템(110)의 시스템 정보가 보호될 수 있다. 반면에, 메모리 시스템(110)의 제조사는 암호화된 에러 히스토리 데이터를 복호(decryption)할 수 있다. 메모리 시스템(110)의 제조사는 메모리 시스템(110)으로부터 에러 히스토리 데이터를 직접 획득하여 메모리 시스템(110)의 불량 분석을 수행할 수 있을 뿐만 아니라, 고객사가 획득한 에러 히스토리 데이터를 원격으로 수신하여 메모리 시스템(110)을 직접 획득하지 않고도 메모리 시스템(110)의 불량 분석을 수행할 수 있다.Even if the customer company obtains the encrypted error history data, the customer company cannot decrypt the data. Accordingly, system information of the memory system 110 may be protected even if error history data is leaked to the outside. On the other hand, the manufacturer of the memory system 110 may decrypt the encrypted error history data. The manufacturer of the memory system 110 can directly acquire error history data from the memory system 110 to perform defect analysis of the memory system 110, and also remotely receive the error history data obtained by the customer to make the memory memory system 110 Failure analysis of the memory system 110 may be performed without directly acquiring the system 110 .

암호화기(170)는 컨트롤러(130)로부터 출력되는 데이터를 선택적으로 암호화할 수 있다. 예를 들어, 컨트롤러(130)는 에러 히스토리 데이터의 적어도 일부를 암호화하지 않도록 암호화기(170)를 제어함으로써 상기 적어도 일부의 데이터를 메모리 시스템(110) 제조사 외부로 공개할 수 있다.The encryptor 170 may selectively encrypt data output from the controller 130 . For example, the controller 130 controls the encryptor 170 not to encrypt at least a portion of the error history data, thereby disclosing at least a portion of the data to the outside of the memory system 110 manufacturer.

한편, 만약 호스트(102)가 에러 히스토리 데이터를 획득한 후에도 에러 히스토리 영역(152)에 상기 데이터가 남아있다면, 상기 남아있는 데이터로 인해 호스트(102)가 메모리 시스템(110)의 불량 분석을 수행하기 어려워질 수 있다. 예를 들어, 메모리 시스템(110)은 불량 분석을 위해서 재구동되거나, 혹은 불량 분석이 완료된 후에 재구동될 수 있다. 메모리 시스템(110)의 재구동 중에 새로운 에러가 발생하면, 컨트롤러(130)는 새로운 에러 히스토리 데이터를 생성할 수 있다. On the other hand, if the data remains in the error history area 152 even after the host 102 acquires the error history data, the host 102 performs a failure analysis of the memory system 110 due to the remaining data. It can get difficult. For example, the memory system 110 may be restarted for failure analysis or after failure analysis is completed. If a new error occurs while the memory system 110 is re-driving, the controller 130 may generate new error history data.

에러 히스토리 영역(152)에서 기존 에러 히스토리 데이터가 제거되지 않아서 새로운 에러 히스토리 데이터를 저장할 수 있는 공간이 없는 경우, 컨트롤러(130)는 상기 새로운 에러 히스토리 데이터를 에러 히스토리 영역(152)에 저장하지 않고 버리거나(discard), 에러 히스토리 영역(152)에 저장된 기존 에러 히스토리 데이터를 제거하고 새로운 에러 히스토리 데이터를 저장할 수 있다. 에러 히스토리 영역(152)에 상기 새로운 에러 히스토리 데이터가 저장되지 않은 경우, 호스트(102)는 새로운 에러의 발생 원인을 분석하기 어려울 수 있다. 에러 히스토리 버퍼(152)의 기존 에러 히스토리 데이터가 저장된 영역에 새로운 에러 히스토리 데이터가 저장되는 경우, 호스트(102)는 에러 히스토리 영역(152)으로부터 획득한 에러 히스토리 데이터가 이전에 발생한 에러로 인한 데이터인지, 새로 발생한 에러로 인한 데이터인지 구별하기 어려울 수 있다. If there is no space to store new error history data because existing error history data is not removed from the error history area 152, the controller 130 discards the new error history data without storing it in the error history area 152, or (discard), existing error history data stored in the error history area 152 may be removed and new error history data may be stored. If the new error history data is not stored in the error history area 152, it may be difficult for the host 102 to analyze the cause of the new error. When new error history data is stored in the area where the previous error history data is stored in the error history buffer 152, the host 102 determines whether the error history data obtained from the error history area 152 is data due to a previous error. , it may be difficult to distinguish whether the data is due to a newly generated error.

본 발명의 실시 예에 따르면, 메모리 시스템(110)은 호스트(102)가 에러 히스토리 영역(152)을 클리어(clear)하기 위한 에러 히스토리 클리어 커맨드를 지원할 수 있다. 호스트(102)는 에러 히스토리 클리어 커맨드를 사용하여 메모리 시스템(110)이 에러 히스토리 데이터를 삭제하도록 제어할 수 있다. 에러 히스토리 영역(152)이 클리어된 후 메모리 시스템(110)이 재구동되면, 메모리 시스템(110)에서 새로운 에러가 발생하더라도 컨트롤러(130)는 에러 히스토리 영역(152)에 새로운 에러 히스토리 데이터를 저장할 수 있다. 그리고, 호스트(102)는 메모리 시스템(110)으로부터 상기 새로운 에러 히스토리 데이터를 획득함으로써 새로운 에러의 발생 원인을 용이하게 분석할 수 있다. 본 발명의 실시 예에 따른 메모리 시스템(110)이 도 2 내지 도 11b를 참조하여 상세히 설명된다.According to an embodiment of the present invention, the memory system 110 may support an error history clear command for the host 102 to clear the error history area 152 . The host 102 may control the memory system 110 to delete error history data by using an error history clear command. If the memory system 110 is restarted after the error history area 152 is cleared, even if a new error occurs in the memory system 110, the controller 130 can store new error history data in the error history area 152. there is. Also, the host 102 can easily analyze the cause of the new error by acquiring the new error history data from the memory system 110 . A memory system 110 according to an embodiment of the present invention will be described in detail with reference to FIGS. 2 to 11B.

도 2는 본 발명의 실시 예에 따른 메모리 시스템(110)을 나타내는 도면이다.2 is a diagram illustrating a memory system 110 according to an embodiment of the present invention.

도 2에 도시된 컨트롤러(130), 메모리 장치(150) 및 암호화기(170)는 도 1을 참조하여 설명된 컨트롤러(130) 및 메모리 장치(150)와 대응할 수 있다.The controller 130, memory device 150, and encryptor 170 illustrated in FIG. 2 may correspond to the controller 130 and memory device 150 described with reference to FIG. 1 .

컨트롤러(130)는 서로 내부 버스를 통해 동작 가능하도록 연결된 호스트 인터페이스(132), 프로세서(134), ECC(error correction code, 138), 메모리 인터페이스(142) 및 메모리(144)를 포함할 수 있다.The controller 130 may include a host interface 132, a processor 134, an error correction code (ECC) 138, a memory interface 142, and a memory 144 operably connected to each other through an internal bus.

호스트 인터페이스(132)는 호스트(102)의 커맨드(command) 및 데이터를 처리하며, SCSI 커맨드 세트를 사용하여 호스트(102)와 통신하도록 구성될 수 있다. 예를 들어, 메모리 시스템(110)이 UFS 장치인 경우 호스트 인터페이스(132)는 UFS 인터페이스를 통해 호스트(102)와 통신할 수 있다.The host interface 132 may be configured to process commands and data of the host 102 and to communicate with the host 102 using SCSI command sets. For example, if the memory system 110 is a UFS device, the host interface 132 may communicate with the host 102 through the UFS interface.

호스트 인터페이스(132)는 호스트(102)와 데이터를 주고받기 위해 호스트 인터페이스 계층(HIL: Host Interface Layer)이라 불리는 펌웨어(firmware)를 구동할 수 있다.The host interface 132 may run firmware called a host interface layer (HIL) to exchange data with the host 102 .

ECC(138)는 메모리 장치(150)로부터 독출되는 데이터에 포함된 에러를 검출 및 정정할 수 있다. 즉, ECC(138)는 ECC 인코딩 프로세스에서 사용된 ECC 코드를 통해 메모리 장치(150)로부터 독출된 데이터에 에러 정정 디코딩 프로세스를 수행할 수 있다. 에러 정정 디코딩 프로세스의 결과에 따라, ECC(138)는 예를 들어 에러 정정 성공/실패 신호와 같은 신호를 출력할 수 있다. 에러 비트의 수가 정정 가능한 에러 비트의 임계치를 초과하면, ECC(138)는 에러 비트를 정정하지 못하고, 에러 정정 실패 신호를 출력할 수 있다.The ECC 138 may detect and correct errors included in data read from the memory device 150 . That is, the ECC 138 may perform an error correction decoding process on data read from the memory device 150 through the ECC code used in the ECC encoding process. Depending on the result of the error correction decoding process, ECC 138 may output a signal, such as an error correction success/failure signal, for example. If the number of error bits exceeds the threshold of correctable error bits, the ECC 138 cannot correct the error bits and may output an error correction failure signal.

ECC(138)는 LDPC(low density parity check) 코드(code), BCH(Bose, Chaudhuri, Hocquenghem) 코드, 터보 코드(turbo code), 리드-솔로몬 코드(Reed-Solomon code), 컨벌루션 코드(convolution code), RSC(recursive systematic code), TCM(trellis-coded modulation), BCM(Block coded modulation) 등의 코디드 모듈레이션(coded modulation)을 사용하여 에러 정정을 수행할 수 있다. 그러나, ECC(138)는 특정한 구조로 한정되는 것은 아니다. ECC(138)는 오류 정정을 위한 회로, 모듈, 시스템, 또는 장치를 모두 포함할 수 있다.ECC 138 is a low density parity check (LDPC) code, Bose, Chaudhuri, Hocquenghem (BCH) code, turbo code, Reed-Solomon code, convolution code ), RSC (recursive systematic code), TCM (trellis-coded modulation), BCM (block coded modulation) such as coded modulation (coded modulation) can be used to perform error correction. However, the ECC 138 is not limited to a specific structure. The ECC 138 may include any circuit, module, system, or device for error correction.

메모리 인터페이스(142)는 컨트롤러(130)가 호스트(102)로부터의 요청에 응답하여 메모리 장치(150)를 제어하도록, 컨트롤러(130)와 메모리 장치(150) 간의 인터페이싱을 위한 메모리/스토리지(storage) 인터페이스로서의 역할을 할 수 있다. 메모리 장치(150)가 플래시 메모리, 특히 NAND 플래시 메모리인 경우, 메모리 인터페이스(142)는 메모리 장치(150)를 위한 제어 신호를 생성하고, 프로세서(134)의 제어 하에 메모리 장치(150)로 제공되는 데이터를 처리할 수 있다. 메모리 인터페이스(142)는 컨트롤러(130)와 메모리 장치(150) 사이의 커맨드 및 데이터를 처리하기 위한 인터페이스, 예를 들어 NAND 플래시 인터페이스로서 동작할 수 있다.The memory interface 142 is a memory/storage for 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 can serve as an interface. When the memory device 150 is a flash memory, particularly a NAND flash memory, the memory interface 142 generates control signals for the memory device 150 and provides them to the memory device 150 under the control of the processor 134. data can be processed. The memory interface 142 may operate as an interface for processing commands and data between the controller 130 and the memory device 150, for example, a NAND flash interface.

메모리 인터페이스(142)는 플래시 인터페이스 계층(FIL: Flash Interface Layer)이라 불리는 펌웨어(firmware)를 구동할 수 있다.The memory interface 142 may drive firmware called a flash interface layer (FIL).

프로세서(134)는 메모리 시스템(110)의 전체적인 동작을 제어할 수 있다. 프로세서(134)는 메모리 시스템(110)의 전반적인 동작을 제어하기 위해 펌웨어를 구동할 수 있다. 상기 펌웨어는 플래시 변환 계층(FTL: Flash Translation Layer)으로 불릴 수 있다. 그리고, 프로세서(134)는 마이크로프로세서 또는 중앙 처리 장치(CPU) 등으로 구현될 수 있다.The processor 134 may control the overall operation of the memory system 110 . The processor 134 may drive firmware to control overall operations of the memory system 110 . The firmware may be referred to as a Flash Translation Layer (FTL). Also, the processor 134 may be implemented as a microprocessor or a central processing unit (CPU).

프로세서(134)는 플래시 변환 계층을 구동하여 호스트(102)로부터 수신된 요청에 대응하는 포그라운드 동작(foreground operation)을 수행할 수 있다. 예를 들어, 프로세서(134)는 호스트로부터의 라이트 커맨드에 응하여 메모리 장치(150)의 라이트 동작을 제어하고, 리드 커맨드에 응하여 메모리 장치(150)의 리드 동작을 제어할 수 있다. 한편, 프로세서(134)는 메모리 장치(150)를 제어하기 위해 프로그램 커맨드, 리드 커맨드 또는 이레이즈 커맨드를 제공할 수 있다. 이하에서, 프로세서(134)가 메모리 장치(150)로 제공하는 프로그램 커맨드, 리드 커맨드 및 이레이즈 커맨드는 호스트(102)가 메모리 시스템(110)으로 제공하는 커맨드들과 구별될 수 있도록 내부 프로그램 커맨드, 내부 리드 커맨드 및 내부 이레이즈 커맨드로 지칭된다.The processor 134 may drive a flash conversion layer to perform a foreground operation corresponding to a request received from the host 102 . For example, the processor 134 may control a write operation of the memory device 150 in response to a write command from a host and may control a read operation of the memory device 150 in response to a read command. Meanwhile, the processor 134 may provide a program command, a read command, or an erase command to control the memory device 150 . Hereinafter, a program command, a read command, and an erase command provided to the memory device 150 by the processor 134 may be distinguished from commands provided to the memory system 110 by the host 102, such as an internal program command, It is referred to as an internal read command and an internal erase command.

또한, 컨트롤러(130)는 마이크로프로세서 또는 중앙 처리 장치(CPU) 등으로 구현된 프로세서(134)를 통해 메모리 장치(150)에 대한 백그라운드 동작(background operation)을 수행할 수도 있다. 예를 들어, 메모리 장치(150)에 대한 백그라운드 동작은 가비지 컬렉션(GC: Garbage Collection) 동작, 웨어 레벨링(WL: Wear Leveling) 동작, 맵 플러시(map flush) 동작, 배드 블록 관리(bad block management) 동작 등을 포함할 수 있다.Also, the controller 130 may perform a background operation of the memory device 150 through the processor 134 implemented as a microprocessor or a central processing unit (CPU). For example, the background operation for the memory device 150 includes a garbage collection (GC) operation, a wear leveling (WL) operation, a map flush operation, and a bad block management. actions, etc.

메모리(144)는 메모리 시스템(110) 및 컨트롤러(130)의 동작 메모리로서의 역할을 수행할 수 있으며, 메모리 시스템(110) 및 컨트롤러(130)의 구동을 위한 데이터를 저장할 수 있다. 컨트롤러(130)는 호스트(102)로부터의 요청에 응하여 메모리 장치(150)가 리드, 프로그램, 이레이즈 동작을 수행하도록 메모리 장치(150)를 제어할 수 있다. 컨트롤러(130)는 메모리 장치(150)로부터 독출되는 데이터를 호스트(102)로 제공할 수 있으며, 호스트(102)로부터 제공되는 데이터를 메모리 장치(150)에 저장할 수 있다. 메모리(144)는 컨트롤러(130)와 메모리 장치(150)가 이러한 동작을 수행하는 데 필요한 데이터를 저장할 수 있다.The memory 144 may serve as an operation memory for the memory system 110 and the controller 130 and may store data for driving the memory system 110 and the controller 130 . The controller 130 may control the memory device 150 to perform read, program, and erase operations in response to a request from the host 102 . The controller 130 may provide data read from the memory device 150 to the host 102 and may store the data provided from the host 102 in the memory device 150 . The memory 144 may store data necessary for the controller 130 and the memory device 150 to perform these operations.

메모리(144)는 상기 HIL, FIL 및 FTL과 같은 펌웨어(FW)를 구동하기 위한 펌웨어 코드를 저장할 수 있다.The memory 144 may store firmware codes for driving firmware FW such as the HIL, FIL, and FTL.

메모리(144)는 휘발성 메모리로 구현될 수 있다. 예를 들어, 메모리(144)는 정적 랜덤 액세스 메모리(SRAM: Static Random Access Memory), 또는 동적 랜덤 액세스 메모리(DRAM: Dynamic Random Access Memory) 등으로 구현될 수 있다. 메모리(144)는 컨트롤러(130) 내부 또는 외부에 배치될 수 있다. 도 1은 컨트롤러(130) 내부에 배치된 메모리(144)를 예시한다. 일 실시예에서, 메모리(144)는 외부 휘발성 메모리 장치로 구현될 수 있으며, 상기 메모리(144)는 컨트롤러(130)와 데이터를 입출력하기 위한 메모리 인터페이스를 가질 수 있다.Memory 144 may be implemented as volatile memory. For example, the memory 144 may be implemented as static random access memory (SRAM) or dynamic random access memory (DRAM). Memory 144 may be located inside or outside controller 130 . 1 illustrates memory 144 disposed within controller 130 . In one embodiment, the memory 144 may be implemented as an external volatile memory device, and the memory 144 may have a controller 130 and a memory interface for inputting/outputting data.

암호화기(170)는 단방향으로 동작할 수 있다. 도 1을 참조하여 설명된 것과 같이, 암호화기(170)는 호스트 인터페이스(132)로부터 출력되는 에러 히스토리 데이터를 암호화하여 호스트(102)로 전달할 수 있다. 반면에, 호스트(102)로부터 호스트 인터페이스(132)로 제공되는 데이터는 암호화기(170)를 바이패스할 수 있다.The encryptor 170 may operate in one direction. As described with reference to FIG. 1 , the encryptor 170 may encrypt error history data output from the host interface 132 and transmit the encrypted error history data to the host 102 . On the other hand, data provided from the host 102 to the host interface 132 may bypass the encryptor 170 .

도 1을 참조하여 설명된 것과 같이, 메모리 장치(150)는 에러 히스토리 영역(152)을 포함할 수 있다. 에러 히스토리 영역(152)은 메모리 장치(150)를 구성하는 비휘발성 메모리의 일부에 해당할 수 있다.As described with reference to FIG. 1 , the memory device 150 may include an error history area 152 . The error history area 152 may correspond to a part of non-volatile memory constituting the memory device 150 .

본 발명의 일 실시예에 따르면, 메모리 장치(150)는 플래시 메모리, 예를 들어 NAND 플래시 메모리와 같은 비휘발성 메모리로 설명된다. 그러나, 메모리 장치(150)는 상변환 메모리(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) 등과 같은 메모리들 중 어느 하나의 메모리로 구현될 수도 있다. According to one embodiment of the present invention, the memory device 150 is described as a non-volatile memory such as a flash memory, for example a NAND flash memory. However, the memory device 150 includes phase change random access memory (PCRAM), resistive random access memory (RRAM), ferroelectrics random access memory (FRAM), and spin injection magnetic memory. It may be implemented as any one of memories such as STT-RAM (STT-MRAM): Spin Transfer Torque Magnetic Random Access Memory.

플래시 메모리 장치는 메모리 셀 트랜지스터들로 구성된 메모리 셀 어레이에 데이터를 저장할 수 있다. 플래시 메모리 장치는 메모리 다이, 플레인, 메모리 블록 및 페이지 계층 구조를 가질 수 있다. 하나의 메모리 다이는 한 번에 하나의 커맨드를 수신할 수 있다. 플래시 메모리는 복수의 메모리 다이를 포함할 수 있다. 하나의 메모리 다이는 복수의 플레인을 포함할 수 있으며, 상기 복수의 플레인은 상기 메모리 다이가 수신한 커맨드를 병렬로 처리할 수 있다. 각 플레인은 복수의 메모리 블록을 포함할 수 있다. 메모리 블록은 이레이즈 동작의 최소 단위일 수 있다. 하나의 메모리 블록은 복수의 페이지를 포함할 수 있다. 페이지는 라이트 동작의 최소 단위일 수 있다.A flash memory device may store data in a memory cell array composed of memory cell transistors. A flash memory device may have a hierarchy of memory dies, planes, memory blocks, and pages. One memory die can receive one command at a time. Flash memory may include a plurality of memory dies. One memory die may include a plurality of planes, and the plurality of planes may process commands received by the memory die in parallel. Each plane may include a plurality of memory blocks. A memory block may be a minimum unit of an erase operation. One memory block may include a plurality of pages. A page may be a minimum unit of a light operation.

이하에서, 도 3을 참조하여 메모리 장치(150)의 구성이 상세히 설명되고, 도 4를 참조하여 에러 히스토리 영역(152)이 상세히 설명된다.Hereinafter, the configuration of the memory device 150 will be described in detail with reference to FIG. 3 , and the error history area 152 will be described in detail with reference to FIG. 4 .

도 3은 메모리 장치(150) 내의 메모리 셀 어레이의 예시적인 구성을 나타낸 회로도이다.3 is a circuit diagram showing an exemplary configuration of a memory cell array in memory device 150 .

도 3을 참조하면, 메모리 시스템(110)의 메모리 장치(150)에 포함된 복수의 메모리 블록들(152,154,156) 중 어느 것과도 대응할 수 있는 메모리 블록(330)은 복수의 비트라인들(BL0 내지 BLm-1)과 연결된 복수의 셀 스트링들(340)을 포함할 수 있다. 각 열(column)의 셀 스트링(340)은 적어도 하나의 드레인 선택 트랜지스터(DST)와 적어도 하나의 소스 선택 트랜지스터(SST)를 포함할 수 있다. 드레인 선택 트랜지스터(DST) 및 소스 선택 트랜지스터(SST) 사이에 복수 개의 메모리 셀들(MC0 to MCn-1)이 직렬로 연결될 수 있다. 각각의 메모리 셀들(MC0 to MCn-1)은 셀 당 복수의 비트들의 데이터 정보를 저장하는 MLC로 구현될 수 있다. 각각의 셀 스트링들(340)은 대응하는 비트라인들(BL0 to BLm-1)에 각각 전기적으로 연결될 수 있다. 예를 들어, 도 3에 도시된 바와 같이 제1 셀 스트링은 제1 비트라인(BL0)과 연결되고, 마지막 셀 스트링은 마지막 비트라인(BLm-1)과 연결될 수 있다. 참고로, 도 3에서 ‘DSL’은 드레인 선택 라인, ‘SSL’은 소스 선택 라인, ‘CSL’은 공통 소스 라인을 나타낸다.Referring to FIG. 3 , a memory block 330 that may correspond to any one of a plurality of memory blocks 152 , 154 , and 156 included in a memory device 150 of a memory system 110 includes a plurality of bit lines BL0 to BLm -1) may include a plurality of cell strings 340 connected to each other. The cell string 340 of each column may include at least one drain select transistor DST and at least one source select transistor SST. A plurality of memory cells MC0 to MCn−1 may be connected in series between the drain select transistor DST and the source select transistor SST. Each of the memory cells MC0 to MCn-1 may be implemented as an MLC that stores data information of a plurality of bits per cell. Each of the cell strings 340 may be electrically connected to corresponding bit lines BL0 to BLm-1, respectively. For example, as shown in FIG. 3 , a first cell string may be connected to a first bit line BL0 and a last cell string may be connected to a last bit line BLm-1. For reference, in FIG. 3, 'DSL' denotes a drain select line, 'SSL' denotes a source select line, and 'CSL' denotes a common source line.

도 3은 NAND 플래시 메모리 셀들을 도시하고 있으나, 본 발명은 이에 한정되지 않는다. 상기 메모리 셀들은 NOR 플래시 메모리 셀들일 수 있다. 또한, 메모리 장치(150)는 전하 저장층으로서 전도성 플로팅 게이트를 포함하는 플래시 메모리 장치 또는 전하 저장층이 절연막으로 구성된 차지 트랩형 플래시(CTF, Charge Trap Flash) 메모리 장치일 수도 있다.Figure 3 shows NAND flash memory cells, but the present invention is not limited thereto. The memory cells may be NOR flash memory cells. Also, the memory device 150 may be a flash memory device including a conductive floating gate as a charge storage layer or a charge trap flash (CTF) memory device in which the charge storage layer is formed of an insulating layer.

메모리 장치(150)는 동작 모드에 따라 워드라인들로 공급하기 위한 프로그램 전압, 리드 전압, 패스 전압을 포함하는 워드라인 전압들을 제공하는 전압 공급부(310)를 더 포함할 수 있다. 전압 공급부(310)의 전압 생성 동작은 제어회로(미도시)에 의해 제어될 수 있다. 상기 제어회로의 제어 하에, 전압 공급부(310)는 메모리 셀 어레이의 메모리 블록들(또는 섹터들) 중 하나를 선택할 수 있고, 상기 선택된 메모리 블록의 워드라인들 중 하나를 선택할 수 있으며, 상기 워드라인 전압을 선택 워드라인으로 제공하고, 필요에 따라 비선택 워드라인으로 제공할 수 있다.The memory device 150 may further include a voltage supply unit 310 that provides word line voltages including program voltages, read voltages, and pass voltages to be supplied to word lines according to an operation mode. A voltage generation operation of the voltage supply unit 310 may be controlled by a control circuit (not shown). Under the control of the control circuit, the voltage supply unit 310 may select one of the memory blocks (or sectors) of the memory cell array, select one of the word lines of the selected memory block, and select the word line The voltage may be provided to the selected word line and, if necessary, to the non-selected word line.

메모리 장치(150)는 제어회로에 의해 제어되는 리드/라이트 회로(320)를 포함할 수 있다. 검증/정상 리드 동작 중에, 리드/라이트 회로(320)는 메모리 셀 어레이로부터 데이터를 리드하기 위해 감지 증폭기로서 동작할 수 있다. 프로그램 동작 중에, 리드/라이트 회로(320)는 상기 메모리 셀 어레이에 저장될 데이터에 따라 비트라인들을 구동하는 라이트 드라이버로서 동작할 수 있다. 프로그램 동작 중에, 리드/라이트 회로(320)는 버퍼(미도시)로부터 상기 메모리 셀 어레이에 저장될 데이터를 수신하고, 상기 수신된 데이터에 따라 비트라인들을 구동할 수 있다. 리드/라이트 회로(320)는 각각이 열(column)들(또는 비트라인들) 또는 열쌍(column pair)들(또는 비트라인 쌍들)과 대응하는 복수의 페이지 버퍼들(322 내지 326)을 포함할 수 있으며, 각각의 페이지 버퍼들(322 내지 326)은 복수의 래치들(미도시)을 포함할 수 있다.The memory device 150 may include a read/write circuit 320 controlled by a control circuit. During a verify/normal read operation, the read/write circuit 320 may operate as a sense amplifier to read data from the memory cell array. During a program operation, the read/write circuit 320 may operate as a write driver that drives bit lines according to data to be stored in the memory cell array. During a program operation, the read/write circuit 320 may receive data to be stored in the memory cell array from a buffer (not shown) and drive bit lines according to the received data. The read/write circuit 320 may include a plurality of page buffers 322 to 326 each corresponding to columns (or bit lines) or column pairs (or bit line pairs). Each of the page buffers 322 to 326 may include a plurality of latches (not shown).

메모리 장치(150)는 1비트 데이터를 저장하는 싱글 레벨 셀(SLC) 메모리 블록, 복수 비트 데이터를 저장하는 멀티 레벨 셀(MLC) 메모리 블록 등을 포함하는 복수의 메모리 블록들을 포함할 수 있다. SLC 메모리 블록들은 한 메모리 셀에 한 비트 데이터를 저장하는 메모리 셀들로 구현되는 복수의 페이지들을 포함할 수 있다. SLC 메모리 블록들은 높은 내구성과 빠른 데이터 동작 성능을 가질 수 있다. 반면에, MLC 메모리 블록들은 한 메모리 셀에 둘 이상의 비트와 같은 복수 비트의 데이터를 저장하는 메모리 셀들로 구현되는 복수의 페이지들을 포함할 수 있다. 상기 MLC 메모리 블록들은 상기 SLC 메모리 블록들보다 큰 데이터 저장 공간을 가질 수 있다. 즉, 상기 MLC 메모리 블록들은 고집적화될 수 있다. The memory device 150 may include a plurality of memory blocks including a single-level cell (SLC) memory block storing 1-bit data, a multi-level cell (MLC) memory block storing plural-bit data, and the like. SLC memory blocks may include a plurality of pages implemented with memory cells that store one bit of data in one memory cell. SLC memory blocks may have high durability and fast data operation performance. On the other hand, MLC memory blocks may include a plurality of pages implemented with memory cells that store multiple bits of data, such as two or more bits, in one memory cell. The MLC memory blocks may have a larger data storage space than the SLC memory blocks. That is, the MLC memory blocks can be highly integrated.

메모리 블록(330)의 메모리 셀들은 복수의 워드 라인들(WL0 - WLn-1)과 연결될 수 있다. 하나의 워드 라인에 연결된 메모리 셀들은 페이지로 지칭될 수 있다. 도 2는 워드라인(WL1)에 연결된 메모리 셀들(MC1)을 포함하는 페이지(350)를 예시한다. 메모리 셀들은 전압 공급부(310) 및 리드/라이트 회로(320)에 의해 페이지 단위로 액세스될 수 있다.Memory cells of the memory block 330 may be connected to a plurality of word lines WL0 - WLn-1. Memory cells connected to one word line may be referred to as a page. 2 illustrates a page 350 including memory cells MC1 connected to word line WL1. Memory cells may be accessed in page units by the voltage supply unit 310 and the read/write circuit 320 .

도 4는 에러 히스토리 영역(152)을 상세히 설명하기 위한 도면이다.4 is a diagram for explaining the error history area 152 in detail.

도 4는 메모리 장치(150)의 메모리 영역을 개략적으로 나타낸다. 상기 메모리 영역은 물리 주소로 식별될 수 있다. 예를 들어, 메모리 장치(150)의 페이지마다 서로 다른 물리 주소가 할당될 수 있다. 메모리 영역은 유저 영역 및 시스템 영역을 포함할 수 있다. 4 schematically shows a memory area of the memory device 150 . The memory area may be identified by a physical address. For example, different physical addresses may be allocated to pages of the memory device 150 . The memory area may include a user area and a system area.

유저 영역은 유저 데이터를 저장할 수 있는 영역으로서, 논리 주소를 사용하여 액세스될 수 있는 영역을 지칭한다. 예를 들어, 상기 논리 주소는 호스트(102)의 운영 체제의 파일 시스템에서 사용되는 LBA(Logical Block Address)일 수 있다. 호스트(102)가 컨트롤러(130)로 제공하는 리드 커맨드 또는 라이트 커맨드에는 상기 논리 주소가 포함될 수 있다. 컨트롤러(130)는 논리 주소들을 기준으로 상기 논리 주소들에 대응하는 물리 주소들을 나타내는 맵 데이터를 메모리(144)에 저장할 수 있다. 컨트롤러(130)는 상기 맵 데이터를 참조하여 호스트(102)로부터의 논리 주소를 물리 주소로 변환(translation)할 수 있다.The user area is an area that can store user data and refers to an area that can be accessed using a logical address. For example, the logical address may be a Logical Block Address (LBA) used in a file system of an operating system of the host 102 . A read command or a write command provided from the host 102 to the controller 130 may include the logical address. The controller 130 may store map data representing physical addresses corresponding to the logical addresses in the memory 144 based on the logical addresses. The controller 130 may translate a logical address from the host 102 into a physical address by referring to the map data.

시스템 영역은 시스템 데이터를 저장할 수 있는 영역을 지칭한다. 시스템 데이터는 메모리 시스템(110)의 관리를 위한 데이터로서 펌웨어 코드, 맵 데이터, 에러 히스토리 데이터 등을 포함할 수 있다. 상기 시스템 영역은 논리 주소를 사용하여 액세스될 수 없다.The system area refers to an area capable of storing system data. System data is data for management of the memory system 110 and may include firmware code, map data, error history data, and the like. The system area cannot be accessed using logical addresses.

시스템 영역은 에러 히스토리 영역(152)을 포함할 수 있다. 에러 히스토리 영역(152)은 정해진 범위의 물리 주소들로 지정될 수 있다. 예를 들어, 메모리 장치(150)에 포함된 메모리 블록들 중 정해진 하나의 메모리 블록이 에러 히스토리 영역(152)으로서 할당될 수 있다. 에러 히스토리 영역(152)으로서 할당되는 메모리 블록은 MLC 메모리 블록보다 높은 신뢰성과 빠른 액세스 속도를 갖는 SLC 메모리 블록일 수 있다.The system area may include an error history area 152 . The error history area 152 may be designated with physical addresses within a predetermined range. For example, one predetermined memory block among memory blocks included in the memory device 150 may be allocated as the error history area 152 . The memory block allocated as the error history area 152 may be an SLC memory block having higher reliability and faster access speed than MLC memory blocks.

호스트(102)가 메모리 시스템(110)의 에러 히스토리 데이터를 제거하기 위해 제안된 방법의 일 예로, 호스트(102)가 메모리 시스템(110)으로 FFU(Field Firmware Update) 커맨드를 제공하여 시스템 영역의 시스템 데이터를 모두 삭제하고 펌웨어(FW)를 재설치하는 방법이 있다. 시스템 데이터가 모두 삭제되면 에러 히스토리 데이터뿐만 아니라 에러 발생의 원인이 되는 데이터도 제거될 수 있다. 에러 원인 데이터가 제거되면, 호스트(102)는 메모리 시스템(110)의 에러 발생을 재현하기 어려울 수 있다. 따라서, 호스트(102)가 FFU 커맨드를 사용하여 에러 히스토리 데이터를 제거하는 경우 메모리 시스템(110)의 불량 분석에 실패할 수 있다.As an example of a method proposed for the host 102 to delete the error history data of the memory system 110, the host 102 provides a field firmware update (FFU) command to the memory system 110 so that the system area system There is a method to delete all data and reinstall the firmware (FW). When all system data is deleted, not only error history data but also data causing errors can be removed. If the error cause data is removed, it may be difficult for the host 102 to reproduce the occurrence of an error in the memory system 110 . Therefore, when the host 102 removes the error history data by using the FFU command, failure analysis of the memory system 110 may fail.

본 발명의 실시 예에 따르면, 호스트(102)는 에러 히스토리 클리어 커맨드를 사용함으로써 시스템 데이터 중 에러 히스토리 데이터만을 제거할 수 있다. 메모리 시스템(110)의 에러 히스토리 데이터가 제거되더라도 에러 원인 데이터가 유지될 수 있으므로, 제조사는 메모리 시스템(110)의 에러 발생을 용이하게 재현할 수 있다. 그리고, 메모리 시스템(110)은 재현된 에러에 대한 에러 히스토리 데이터를 에러 히스토리 영역(152)에 저장할 수 있다. 따라서, 제조사는 메모리 시스템(110)의 불량 분석을 용이하게 수행할 수 있다.According to an embodiment of the present invention, the host 102 may remove only error history data from system data by using an error history clear command. Even if the error history data of the memory system 110 is removed, error cause data can be maintained, so that the manufacturer can easily reproduce the error occurrence of the memory system 110 . Also, the memory system 110 may store error history data for reproduced errors in the error history area 152 . Accordingly, the manufacturer can easily perform failure analysis of the memory system 110 .

이하에서, 도 5를 참조하여 에러 히스토리 데이터가 설명되고, 도 6 내지 도 9b를 참조하여 본 발명의 실시 예에 따른 에러 히스토리 클리어 커맨드의 예가 상세히 설명된다.Hereinafter, error history data will be described with reference to FIG. 5, and an example of an error history clear command according to an embodiment of the present invention will be described in detail with reference to FIGS. 6 to 9B.

도 5는 에러 히스토리 영역(152)에 저장될 수 있는 에러 히스토리 데이터를 설명하기 위한 도면이다.FIG. 5 is a diagram for explaining error history data that can be stored in the error history area 152. Referring to FIG.

메모리 시스템(110)이 UFS 장치에 해당하는 경우, 에러 히스토리 데이터는 에러 히스토리 디렉토리(error history directory)로 지칭되는 테이블에 포함될 수 있다. 그러나, 본 발명의 에러 히스토리 데이터는 도 5에 도시된 예로 제한되지 않는다.When the memory system 110 corresponds to a UFS device, error history data may be included in a table called an error history directory. However, the error history data of the present invention is not limited to the example shown in FIG. 5 .

도 5에 도시되는 테이블의 각 행(row)들은 에러 히스토리 데이터의 바이트(byte)에 대응하고, 각 열(column)들은 각 바이트의 비트(bit)에 대응한다.Each row of the table shown in FIG. 5 corresponds to a byte of error history data, and each column corresponds to a bit of each byte.

에러 히스토리 디렉토리는 32바이트의 헤더 및 복수의 에러 히스토리 디렉토리 엔트리들을 포함할 수 있다.The error history directory may include a 32-byte header and a plurality of error history directory entries.

헤더는 복수의 필드들을 포함할 수 있다. 제0 내지 제7 바이트의 벤더 식별자(T10 VENDOR IDENTIFICATION) 필드는 메모리 시스템(110)의 제조사 정보를 포함할 수 있다. 제8 바이트의 버전(VERSION) 필드는 에러 히스토리 데이터의 버전 및 포맷을 나타낼 수 있다. 제9 바이트의 에러 히스토리 소스(EHS_SOURCE) 필드, 검색된 에러 히스토리(EHS_RETRIEVED) 필드 및 클리어 서포트(CLR_SUP) 필드는 UFS 장치에서는 '0'으로 고정되어, 유효하게 사용되지 않는 필드일 수 있다. 제10 내지 제29 바이트는 예비된(reserved) 필드일 수 있다. 제30 내지 제31 바이트의 디렉토리 길이(DIRECTORY LENGTH) 필드는 전송될 수 있는 에러 히스토리 디렉토리 리스트의 바이트 수를 나타낼 수 있다.A header may include a plurality of fields. The vendor identifier (T10 VENDOR IDENTIFICATION) field of the 0th to 7th bytes may include manufacturer information of the memory system 110 . A version field of the eighth byte may indicate the version and format of error history data. The error history source (EHS_SOURCE) field, retrieved error history (EHS_RETRIEVED) field, and clear support (CLR_SUP) field of the ninth byte are fixed to '0' in the UFS device and may be fields that are not effectively used. The 10th to 29th bytes may be reserved fields. A DIRECTORY LENGTH field of 30th to 31st bytes may indicate the number of bytes of an error history directory list that can be transmitted.

복수의 에러 히스토리 디렉토리 엔트리들은 에러 히스토리 데이터를 저장할 수 있다. 각각의 에러 히스토리 디렉토리 엔트리에 저장되는 데이터의 포맷은 메모리 시스템(110)의 제조사에 의해 사전에 결정될 수 있으며, 메모리 시스템(110)에 따라 다를 수 있다. 에러 히스토리 디렉토리 엔트리의 개수는 사전에 결정될 수 있으며, 복수의 에러 히스토리 디렉토리 엔트리 각각은 정해진 물리 주소로 식별될 수 있다. A plurality of error history directory entries may store error history data. The format of data stored in each error history directory entry may be previously determined by the manufacturer of the memory system 110 and may vary depending on the memory system 110 . The number of error history directory entries may be determined in advance, and each of the plurality of error history directory entries may be identified by a predetermined physical address.

본 발명의 실시 예에 따르면, 호스트(102)는 상기 에러 히스토리 클리어 커맨드를 메모리 시스템(110)으로 제공함으로써 에러 히스토리 데이터의 전부 또는 일부를 삭제하도록 메모리 시스템(110)을 제어할 수 있다.According to an embodiment of the present invention, the host 102 may control the memory system 110 to delete all or part of error history data by providing the error history clear command to the memory system 110 .

도 6 내지 도 9b를 참조하여 에러 히스토리 클리어 커맨드가 상세히 설명된다.The error history clear command will be described in detail with reference to FIGS. 6 to 9B.

UFS 장치는 리드 버퍼 커맨드(READ BUFFER)로 지칭되는 UPIU(UFS Protocol Information Unit)를 지원할 수 있다. 에러 히스토리 클리어 커맨드는 리드 버퍼 커맨드(READ BUFFER)에 기초하여 정의될 수 있다.A UFS device may support a UFS Protocol Information Unit (UPIU) referred to as a read buffer command (READ BUFFER). The error history clear command may be defined based on the read buffer command (READ BUFFER).

도 6은 리드 버퍼 커맨드(READ BUFFER)를 설명하는 도면이다.6 is a diagram explaining a read buffer command (READ BUFFER).

도 6은 리드 버퍼 커맨드(READ BUFFER)의 CDB(Command Descriptor Block)을 나타내는 테이블이다. 도 6에 도시되는 테이블의 각 행들은 CDB의 바이트에 대응하고, 각 열들은 각 바이트의 비트에 대응한다.6 is a table showing a command descriptor block (CDB) of a read buffer command (READ BUFFER). Each row of the table shown in Fig. 6 corresponds to a byte of the CDB, and each column corresponds to a bit of each byte.

제0 바이트의 동작 코드(OPERATION CODE)는 CDB가 어느 커맨드에 해당하는지를 나타낼 수 있다. 도 6을 참조하면, 리드 버퍼 커맨드(READ BUFFER)는 동작 코드 '3Ch'로 지정될 수 있다.The OPERATION CODE of the 0th byte may indicate which command the CDB corresponds to. Referring to FIG. 6 , the read buffer command (READ BUFFER) may be designated as an operation code '3Ch'.

제1 바이트의 모드(MODE)는 리드 버퍼 커맨드(READ BUFFER)에 응하여 메모리 시스템(110)이 내부 버퍼에 대해 수행하는 동작을 지정할 수 있다. The mode of the first byte may designate an operation that the memory system 110 performs on an internal buffer in response to the read buffer command READ BUFFER.

제2 바이트의 버퍼 ID(BUFFER ID)는 상기 동작이 수행될 버퍼 영역을 지정할 수 있다.A buffer ID (BUFFER ID) of the second byte may designate a buffer area in which the above operation is to be performed.

제3 내지 제5 바이트의 버퍼 오프셋(BUFFER OFFSET)은 상기 지정된 버퍼 영역에서 출력될 데이터의 바이트 오프셋을 지정하며, 제6 내지 제7 바이트의 할당 길이(ALLOCATION LENGTH)는 상기 출력될 데이터의 길이를 지정할 수 있다. 제8 바이트의 제어(CONTROL) 필드는 UFS 장치에서는 '00h'로 고정될 수 있다.The third to fifth bytes of the buffer offset (BUFFER OFFSET) designate the byte offset of data to be output in the designated buffer area, and the sixth to seventh bytes of the allocation length (ALLOCATION LENGTH) specify the length of the data to be output. can be specified. The control field of the eighth byte may be fixed to '00h' in a UFS device.

에러 히스토리 클리어 커맨드를 지정하기 위한 모드(MODE)의 예가 도 7을 참조하여 설명된다.An example of a mode (MODE) for designating an error history clear command will be described with reference to FIG. 7 .

도 7은 리드 버퍼 커맨드(READ BUFFER)의 모드 값에 따라 메모리 시스템(110)에서 수행되는 동작을 나타내는 테이블이다. 7 is a table showing operations performed in the memory system 110 according to mode values of the read buffer command READ BUFFER.

도 7의 예에서, 모드 값 '02h'는 데이터 모드를 가리킨다. 데이터 모드에서 호스트(102)로 전송되는 데이터는 메모리 시스템(110)에 따라 다를 수 있다.In the example of FIG. 7 , the mode value '02h' indicates the data mode. Data transmitted to the host 102 in the data mode may vary depending on the memory system 110 .

모드 값 '1Ch'는 에러 히스토리 리드 모드를 가리킨다. 상기 에러 히스토리 리드 모드는 UFS 사양에서는 에러 히스토리 모드(error history mode)로 지칭될 수 있다. 이하에서, 에러 히스토리 리드 커맨드는 에러 히스토리 리드 모드로 지정된 리드 버퍼 커맨드(READ BUFFER)를 가리킬 수 있다.The mode value '1Ch' indicates the error history read mode. The error history read mode may be referred to as an error history mode in the UFS specification. Hereinafter, the error history read command may indicate a read buffer command (READ BUFFER) designated as an error history read mode.

UFS 사양에서 모드 값 '1Dh' 내지 '1Fh'는 예비된(reserved) 값일 수 있다. In the UFS specification, the mode values '1Dh' to '1Fh' may be reserved values.

본 발명의 실시 예에 따르면, 모드 값 '1Dh'가 에러 히스토리 클리어 모드로 정의될 수 있다. 에러 히스토리 클리어 모드는 호스트(102)가 에러 히스토리 영역(152)을 클리어할 수 있도록 지원하는 모드일 수 있다. 호스트(102)는 에러 히스토리 클리어 모드로 지정된 리드 버퍼 커맨드(READ BUFFER)를 제공함으로써 에러 히스토리 데이터의 전부 또는 일부를 삭제하도록 메모리 시스템(110)을 제어할 수 있다. 이하에서, 에러 히스토리 클리어 모드로 지정된 리드 버퍼 커맨드(READ BUFFER)는 에러 히스토리 클리어 커맨드로 지칭될 수 있다.According to an embodiment of the present invention, the mode value '1Dh' may be defined as an error history clear mode. The error history clear mode may be a mode that supports the host 102 to clear the error history area 152 . The host 102 may control the memory system 110 to delete all or part of the error history data by providing a read buffer command designated as the error history clear mode. Hereinafter, the read buffer command READ BUFFER designated as the error history clear mode may be referred to as an error history clear command.

호스트(102)가 에러 히스토리 클리어 커맨드를 메모리 시스템(110)으로 제공할 때, 에러 히스토리 데이터 중 제거될 데이터를 지정할 수 있다. 호스트(102)가 제거될 데이터를 지정하는 방법의 예가 도 8을 참조하여 설명된다.When the host 102 provides an error history clear command to the memory system 110, data to be removed among error history data may be designated. An example of how the host 102 specifies data to be removed is described with reference to FIG. 8 .

도 8은 리드 버퍼 커맨드(READ BUFFER)의 버퍼 ID(BUFFER ID)에 따라 지정되는 버퍼 영역을 나타내는 테이블이다.8 is a table showing buffer areas designated according to the buffer ID of the read buffer command (READ BUFFER).

에러 히스토리 영역(152)에 저장되는 에러 히스토리 디렉토리 엔트리들 각각은 정해진 버퍼 ID(BUFFER ID)로 지정될 수 있다. 예를 들어, 에러 히스토리 디렉토리 엔트리들 각각은 '10h' 내지 'EFh'의 버퍼 ID 값들 중 어느 하나로 지정될 수 있다. 구현에 따라, 에러 히스토리 디렉토리 엔트리가 단지 몇 개의 에러 히스토리 디렉토리 엔트리를 포함하는 경우 '10h' 내지 'EFh'의 버퍼 ID 값들 중 일부만이 유효하게 사용될 수도 있다. Each of the error history directory entries stored in the error history area 152 may be designated as a predetermined buffer ID. For example, each of the error history directory entries may be designated with one of buffer ID values of '10h' to 'EFh'. Depending on the implementation, only some of the buffer ID values from '10h' to 'EFh' may be effectively used if the error history directory entry includes only a few error history directory entries.

본 발명의 실시 예에 따르면, 호스트(102)는 메모리 시스템(110)으로 유효한 버퍼 ID(BUFFER ID)를 지정한 에러 히스토리 클리어 커맨드인 특정 에러 히스토리 클리어 커맨드를 제공할 수 있다. 호스트(102)는 상기 특정 에러 히스토리 클리어 커맨드를 제공함으로써 상기 버퍼 ID(BUFFER ID)에 대응하는 에러 히스토리 디렉토리 엔트리만을 클리어하도록 메모리 시스템(110)에 지시할 수 있다. 메모리 시스템(110)은 지정된 에러 히스토리 디렉토리 엔트리에 포함된 데이터를 제거함으로써 상기 에러 히스토리 디렉토리 엔트리를 클리어할 수 있다.According to an embodiment of the present invention, the host 102 may provide a specific error history clear command, which is an error history clear command in which an effective buffer ID (BUFFER ID) is specified, to the memory system 110 . The host 102 may instruct the memory system 110 to clear only the error history directory entry corresponding to the buffer ID by providing the specific error history clear command. The memory system 110 may clear the error history directory entry by removing data included in the specified error history directory entry.

본 발명의 실시 예에 따르면, 에러 히스토리 디렉토리 엔트리들 전부를 지정하는 버퍼 ID(BUFFER ID)가 정의될 수 있다. 도 8의 예에서, 에러 히스토리 디렉토리 엔트리들 전부를 지정하는 버퍼 ID(BUFFER ID)는 UFS 사양에서 예비된 버퍼 ID 값인 'FDh'로 정의될 수 있다. According to an embodiment of the present invention, a buffer ID designating all of the error history directory entries may be defined. In the example of FIG. 8 , a buffer ID (BUFFER ID) designating all error history directory entries may be defined as 'FDh', which is a reserved buffer ID value in the UFS specification.

호스트(102)는 에러 히스토리 영역(152)에 저장된 모든 에러 히스토리 데이터를 획득하기 위해 버퍼 ID 'FDh'를 지정한 에러 히스토리 리드 커맨드를 메모리 시스템(110)으로 제공할 수 있다.The host 102 may provide an error history read command designating a buffer ID 'FDh' to the memory system 110 to acquire all error history data stored in the error history area 152 .

그리고, 호스트(102)는 에러 히스토리 디렉토리 엔트리들 모두를 클리어하기 위해, 버퍼 ID 'FDh'를 지정한 에러 히스토리 클리어 커맨드인 전체 에러 히스토리 클리어 커맨드를 메모리 시스템(110)으로 제공할 수 있다. 호스트(102)는 상기 전체 에러 히스토리 클리어 커맨드를 제공함으로써 에러 히스토리 디렉토리 엔트리 모두를 클리어하도록 메모리 시스템(110)에 지시할 수 있다. 메모리 시스템(110)은 에러 히스토리 영역(152)에 저장된 모든 에러 히스토리 데이터를 제거함으로써 에러 히스토리 디렉토리 엔트리 모두를 클리어할 수 있다.In addition, the host 102 may provide an error history clear command designated with the buffer ID 'FDh' to the memory system 110 in order to clear all error history directory entries. Host 102 may instruct memory system 110 to clear all error history directory entries by providing the clear all error history command. The memory system 110 may clear all error history directory entries by removing all error history data stored in the error history area 152 .

도 9a는 특정 에러 히스토리 클리어 커맨드의 CDB를 예시한다.9A illustrates a CDB of a specific error history clear command.

도 9a의 CDB는 도 6을 참조하여 설명된 리드 버퍼 커맨드(READ BUFFER)의 CDB에 대응할 수 있다. 도 9a를 참조하면, 호스트(102)는 버퍼 ID '10h'에 대응하는 에러 히스토리 디렉토리 엔트리로부터 에러 히스토리 유닛을 획득하기 위해 동작 코드(OPERATION CODE) '3Ch', 모드(MODE) '1Dh', 버퍼 ID(BUFFER ID) '10h', 버퍼 오프셋(BUFFER OFFSET) '00h' 및 할당 길이(ALLOCATION LENGTH) '8000h'를 포함하는 CDB를 메모리 시스템(110)으로 제공할 수 있다. 도 9a에 도시된 버퍼 오프셋(BUFFER OFFSET) 및 할당 길이(ALLOCATION LENGTH)의 값은 예시에 불과하며, 본 발명은 이에 제한되지 않는다. 예를 들어, 호스트(102)는 할당 길이(ALLOCATION LENGTH)로서 에러 히스토리 디렉토리 엔트리에 대해 사전 결정된 최대 길이를 지정할 수 있다.The CDB of FIG. 9A may correspond to the CDB of the read buffer command READ BUFFER described with reference to FIG. 6 . Referring to FIG. 9A , the host 102 obtains an error history unit from an error history directory entry corresponding to a buffer ID of '10h', an operation code (OPERATION CODE) '3Ch', a mode (MODE) '1Dh', a buffer A CDB including an ID (BUFFER ID) '10h', a buffer offset (BUFFER OFFSET) '00h', and an allocation length (ALLOCATION LENGTH) '8000h' may be provided to the memory system 110 . The values of the buffer offset (BUFFER OFFSET) and the allocation length (ALLOCATION LENGTH) shown in FIG. 9A are only examples, and the present invention is not limited thereto. For example, host 102 may specify a predetermined maximum length for an error history directory entry as an ALLOCATION LENGTH.

도 9b는 전체 에러 히스토리 클리어 커맨드의 CDB를 예시한다.9B illustrates the CDB of the Clear All Error History command.

도 9b의 CDB는 도 6을 참조하여 설명된 리드 버퍼 커맨드(READ BUFFER)의 CDB에 대응할 수 있다. 도 9b를 참조하면, 호스트(102)는 에러 히스토리 데이터 전부를 획득하기 위해 동작 코드(OPERATION CODE) '3Ch', 모드(MODE) '1Dh', 버퍼 ID(BUFFER ID) 'FDh'를 포함하는 CDB를 메모리 시스템(110)으로 제공할 수 있다. 전체 에러 히스토리 클리어 커맨드에서 버퍼 오프셋(BUFFER OFFSET)과 할당 길이(ALLOCATION LENGTH) 값은 '00h'로 고정될 수 있으나, 본 발명은 이에 제한되지 않는다.The CDB of FIG. 9B may correspond to the CDB of the read buffer command READ BUFFER described with reference to FIG. 6 . Referring to FIG. 9B, the host 102 uses a CDB including an operation code '3Ch', a mode '1Dh', and a buffer ID 'FDh' to acquire all error history data. may be provided to the memory system 110 . In the entire error history clear command, values of the buffer offset (BUFFER OFFSET) and the allocation length (ALLOCATION LENGTH) may be fixed to '00h', but the present invention is not limited thereto.

이하에서, 호스트(102)로부터의 에러 히스토리 클리어 커맨드에 응하여 메모리 시스템(110)이 수행하는 동작이 도 10 내지 도 11b를 참조하여 설명된다.Hereinafter, an operation performed by the memory system 110 in response to an error history clear command from the host 102 will be described with reference to FIGS. 10 to 11B .

도 10은 에러 히스토리 클리어 커맨드에 따른 메모리 시스템(110)의 동작을 나타내는 도면이다.10 is a diagram illustrating an operation of the memory system 110 according to an error history clear command.

단계 S1002에서, 컨트롤러(130)는 호스트 인터페이스(132)를 통해 호스트(102)로부터 에러 히스토리 클리어 커맨드를 수신할 수 있다. 에러 히스토리 클리어 커맨드의 포맷은 도 6 내지 도 9b를 참조하여 상세히 설명되었다.In step S1002 , the controller 130 may receive an error history clear command from the host 102 through the host interface 132 . The format of the error history clear command has been described in detail with reference to FIGS. 6 to 9B.

컨트롤러(130)는 상기 에러 히스토리 클리어 커맨드에 응하여 단계 S1004 내지 단계 S1016를 수행함으로써 에러 히스토리 영역(152)에 포함된 에러 히스토리 디렉토리 엔트리들의 전부 또는 일부를 클리어할 수 있다.The controller 130 may clear all or some of the error history directory entries included in the error history area 152 by performing steps S1004 to S1016 in response to the error history clear command.

단계 S1004에서, 컨트롤러(130)의 프로세서(134)는 에러 히스토리 영역(152)에 대한 내부 리드 커맨드를 제공할 수 있다. 상기 내부 리드 커맨드는 에러 히스토리 영역(152)을 가리키는 물리 주소를 포함할 수 있다.In step S1004 , the processor 134 of the controller 130 may provide an internal read command for the error history area 152 . The internal read command may include a physical address indicating the error history area 152 .

단계 S1006에서, 메모리 장치(150)는 상기 내부 리드 커맨드에 응하여 에러 히스토리 영역(152)에 저장된 에러 히스토리 디렉토리를 컨트롤러(130)의 메모리(144)로 제공할 수 있다.In step S1006 , the memory device 150 may provide the error history directory stored in the error history area 152 to the memory 144 of the controller 130 in response to the internal read command.

단계 S1008에서, 컨트롤러(130)는 메모리(144)에 저장된 에러 히스토리 디렉토리를 수정할 수 있다.In step S1008, the controller 130 may modify the error history directory stored in the memory 144.

제1 예로, 상기 에러 히스토리 리드 커맨드가 특정 에러 히스토리 리드 커맨드인 경우 프로세서(134)는 상기 에러 히스토리 디렉토리에서 상기 커맨드에 포함된 버퍼 ID(BUFFER ID)에 대응하는 에러 히스토리 디렉토리 엔트리의 데이터를 제거할 수 있다.As a first example, if the error history read command is a specific error history read command, the processor 134 may remove data of an error history directory entry corresponding to a buffer ID (BUFFER ID) included in the command from the error history directory. can

제2 예로, 상기 에러 히스토리 리드 커맨드가 전체 에러 히스토리 리드 커맨드인 경우 프로세서(134)는 상기 에러 히스토리 디렉토리에서 모든 에러 히스토리 디렉토리 엔트리들의 데이터를 제거할 수 있다.As a second example, when the error history read command is the entire error history read command, the processor 134 may remove data of all error history directory entries from the error history directory.

구현에 따라, 프로세서(134)는 데이터가 제거된 에러 히스토리 디렉토리 엔트리에 정해진 데이터를 덮어쓰기할 수 있다. 예를 들어, 프로세서(134)는 에러 히스토리 디렉토리 엔트리의 모든 비트들에 '1'을 저장하거나, 정해진 비트들에 '1'을 저장할 수 있다. 상기 정해진 데이터는 상기 에러 히스토리 디렉토리 엔트리가 호스트(102)의 요청에 의해 클리어되었다는 것을 표시할 수 있다. 이하에서, 상기 정해진 데이터는 클리어-마크 데이터로 지칭된다.Depending on the implementation, the processor 134 may overwrite data specified in the error history directory entry from which the data was removed. For example, the processor 134 may store '1' in all bits of the error history directory entry or store '1' in specific bits. The specified data may indicate that the error history directory entry was cleared at the request of the host 102 . Hereinafter, the predetermined data is referred to as clear-mark data.

단계 S1010에서, 컨트롤러(130)는 에러 히스토리 영역(152)에 대한 내부 이레이즈 커맨드를 메모리 장치(150)로 제공할 수 있다.In step S1010 , the controller 130 may provide an internal erase command for the error history area 152 to the memory device 150 .

단계 S1012에서, 메모리 장치(150)는 상기 내부 이레이즈 커맨드에 응하여 에러 히스토리 영역(152)에 해당하는 메모리 블록을 이레이즈할 수 있다.In step S1012, the memory device 150 may erase the memory block corresponding to the error history area 152 in response to the internal erase command.

단계 S1014에서, 컨트롤러(130)는 상기 수정된 에러 히스토리 디렉토리를 에러 히스토리 영역(152)에 프로그램하기 위해 에러 히스토리 영역(152)에 대한 내부 프로그램 커맨드를 메모리 장치(150)로 제공할 수 있다.In step S1014, the controller 130 may provide an internal program command for the error history area 152 to the memory device 150 to program the corrected error history directory in the error history area 152.

단계 S1016에서, 메모리 장치(150)는 상기 내부 프로그램 커맨드에 응하여 에러 히스토리 영역(152)에 상기 수정된 에러 히스토리 디렉토리를 프로그램할 수 있다. 에러 히스토리 영역(152)에 프로그램된 데이터에서 호스트(102)가 지정한 에러 히스토리 디렉토리 엔트리의 데이터는 제거되었으므로, 상기 지정된 에러 히스토리 디렉토리 엔트리가 클리어될 수 있다.In step S1016, the memory device 150 may program the corrected error history directory in the error history area 152 in response to the internal program command. Since the data of the error history directory entry designated by the host 102 is removed from the data programmed in the error history area 152, the designated error history directory entry can be cleared.

에러 히스토리 클리어 커맨드가 수행된 이후에 에러 히스토리 영역(152)에 저장되는 데이터의 예가 도 11a 내지 도 11b를 참조하여 설명된다.Examples of data stored in the error history area 152 after the error history clear command is executed will be described with reference to FIGS. 11A and 11B.

도 11a 내지 도 11b는 에러 히스토리 클리어 커맨드가 처리되기 전후의 에러 히스토리 버퍼(152) 영역을 도시하는 도면이다. 도 11a 내지 도 11b의 에러 히스토리 영역(152)에서 문자가 도시된 영역은 해당하는 데이터가 프로그램된 영역을 나타내고, 도트 패턴이 도시된 영역은 이레이즈된 영역을 나타내며, 빗금이 도시된 영역은 클리어-마크 데이터가 덮어쓰기된 영역을 나타낸다.11A and 11B are diagrams showing an area of the error history buffer 152 before and after an error history clear command is processed. In the error history area 152 of FIGS. 11A and 11B , areas where characters are shown indicate areas where corresponding data is programmed, areas where dot patterns are shown indicate areas that have been erased, and areas where hatched lines are shown are clear. - Indicates the area where the mark data has been overwritten.

도 11a는 특정 에러 히스토리 클리어 커맨드가 처리된 이후에 에러 히스토리 영역(152)에 저장되는 데이터를 설명하는 도면이다.11A is a diagram illustrating data stored in the error history area 152 after a specific error history clear command is processed.

도 11a의 좌측에 도시된 에러 히스토리 버퍼(152) 영역은 에러 히스토리 클리어 커맨드가 처리되기 전에 에러 히스토리 영역(152)에 저장되는 데이터를 예시한다.The error history buffer 152 area shown on the left side of FIG. 11A illustrates data stored in the error history area 152 before an error history clear command is processed.

도 5를 참조하여 설명된 것과 같이, 에러 히스토리 영역(152)은 에러 히스토리 디렉토리의 헤더 및 복수의 에러 히스토리 디렉토리 엔트리들을 포함할 수 있다. 복수의 에러 히스토리 디렉토리 엔트리들 각각은 버퍼 ID(BUFFER ID)에 대응할 수 있으며, 복수의 에러 히스토리 디렉토리 엔트리들은 에러 히스토리 데이터를 저장할 수 있다.As described with reference to FIG. 5 , the error history area 152 may include a header of an error history directory and a plurality of error history directory entries. Each of the plurality of error history directory entries may correspond to a buffer ID (BUFFER ID), and the plurality of error history directory entries may store error history data.

도 11a의 우측에 도시된 에러 히스토리 버퍼(152) 영역은 도 9a에 예시된 특정 에러 히스토리 클리어 커맨드가 처리된 후의 에러 히스토리 영역(152)에 저장되는 데이터를 예시한다. 도 9a의 에러 히스토리 클리어 커맨드는 버퍼 ID(BUFFER ID) '10h'을 지정할 수 있다. 도 11a를 참조하면, 버퍼 ID '10h'에 해당하는 에러 히스토리 디렉토리 엔트리에 포함된 데이터가 제거됨으로써 에러 히스토리 디렉토리 엔트리가 클리어되고, 클리어-마크 데이터가 덮어쓰기될 수 있다. 헤더 및 나머지 에러 히스토리 디렉토리 엔트리에 포함된 데이터는 유지될 수 있다. The error history buffer 152 area shown on the right side of FIG. 11A illustrates data stored in the error history area 152 after the specific error history clear command illustrated in FIG. 9A is processed. The error history clear command of FIG. 9A may designate a buffer ID (BUFFER ID) '10h'. Referring to FIG. 11A , the error history directory entry may be cleared by removing data included in the error history directory entry corresponding to the buffer ID '10h', and the clear-mark data may be overwritten. Data contained in the header and remaining error history directory entries may be retained.

상기 특정 에러 히스토리 클리어 커맨드가 처리된 이후 호스트(102)가 에러 히스토리 리드 커맨드를 사용하여 버퍼 ID '10h'에 해당하는 에러 히스토리 디렉토리 엔트리를 리드하는 경우, 호스트(102)는 클리어-마크 데이터를 획득할 수 있다. 제조사는 상기 클리어-마크 데이터를 참조하면, 상기 에러 히스토리 디렉토리 엔트리가 호스트(102)에 의해 비워졌다는 것을 확인할 수 있다.When the host 102 reads the error history directory entry corresponding to the buffer ID '10h' using the error history read command after the specific error history clear command is processed, the host 102 obtains clear-mark data. can do. Referring to the clear-mark data, the manufacturer can confirm that the error history directory entry has been emptied by the host 102 .

도 11b는 전체 에러 히스토리 클리어 커맨드가 수행된 이후에 에러 히스토리 영역(152)에 저장되는 데이터를 설명하는 도면이다.FIG. 11B is a diagram for explaining data stored in the error history area 152 after the entire error history clear command is executed.

도 11b의 좌측에 도시된 에러 히스토리 버퍼(152) 영역은 도 11a의 좌측에 도시된 에러 히스토리 버퍼(152) 영역과 동일할 수 있다.The area of the error history buffer 152 shown on the left side of FIG. 11B may be the same as the area of the error history buffer 152 shown on the left side of FIG. 11A.

도 11b의 우측에 도시된 에러 히스토리 버퍼(152) 영역은 도 9b에 예시된 전체 에러 히스토리 클리어 커맨드가 처리된 후의 에러 히스토리 영역(152)에 저장되는 데이터를 예시한다. 도 11b를 참조하면, 모든 에러 히스토리 디렉토리 엔트리들이 클리어되고, 모든 엔트리들에 클리어-마크 데이터가 덮어쓰기될 수 있다. 헤더의 데이터는 유지될 수 있다.The error history buffer 152 area shown on the right side of FIG. 11B illustrates data stored in the error history area 152 after the entire error history clear command illustrated in FIG. 9B is processed. Referring to FIG. 11B, all error history directory entries may be cleared, and clear-mark data may be overwritten in all entries. Header data can be maintained.

호스트(102)는 하나의 전체 에러 히스토리 클리어 커맨드를 사용하여 모든 에러 히스토리 디렉토리 엔트리들을 클리어할 수 있다. 상기 전체 에러 히스토리 클리어 커맨드가 처리된 이후, 호스트(102)가 에러 히스토리 리드 커맨드를 사용하여 상기 에러 히스토리 디렉토리 엔트리들로부터 클리어-마크 데이터를 획득한 경우, 모든 에러 히스토리 디렉토리 엔트리가 호스트(102)에 의해 비워졌다는 것을 확인할 수 있다.The host 102 can clear all error history directory entries using one clear all error history command. After the clear all error history command is processed, if the host 102 obtains clear-mark data from the error history directory entries by using the error history read command, all error history directory entries are sent to the host 102. You can check that it has been emptied by .

본 발명의 실시 예에 따르면, 호스트(102)는 에러 히스토리 리드 커맨드를 사용하여 메모리 시스템(110)으로부터 에러 히스토리 데이터를 획득한 후에 에러 히스토리 클리어 커맨드를 사용하여 메모리 시스템(110)의 에러 히스토리 디렉토리 엔트리를 클리어할 수 있다. 메모리 시스템(110)이 에러 히스토리 리드 커맨드에 응하여 에러 히스토리 디렉토리 엔트리를 클리어하더라도, 에러 히스토리 데이터를 제외한 나머지 시스템 데이터는 시스템 영역에 유지될 수 있다. According to an embodiment of the present invention, the host 102 acquires error history data from the memory system 110 using an error history read command and then uses an error history clear command to enter the error history directory of the memory system 110. can be cleared. Even if the memory system 110 clears the error history directory entry in response to the error history read command, system data other than the error history data may be maintained in the system area.

에러 원인 데이터를 포함하는 상기 나머지 시스템 데이터가 시스템 영역에 유지되므로 호스트(102)는 메모리 시스템(110)의 에러 발생을 용이하게 재현할 수 있다. 그리고, 에러 히스토리 디렉토리 엔트리가 클리어되므로 메모리 시스템(110)은 재현된 에러에 대응하는 새로운 에러 히스토리 데이터를 에러 히스토리 디렉토리 엔트리에 저장할 수 있다. 따라서, 호스트(102)는 에러 히스토리 클리어 커맨드를 사용함으로써 메모리 시스템(110)의 불량 분석을 용이하게 수행할 수 있다.Since the remaining system data including error cause data is maintained in the system area, the host 102 can easily reproduce the occurrence of an error in the memory system 110 . Also, since the error history directory entry is cleared, the memory system 110 may store new error history data corresponding to the reproduced error in the error history directory entry. Accordingly, the host 102 can easily perform failure analysis of the memory system 110 by using the error history clear command.

호스트(102)가 메모리 시스템(110)의 불량 분석을 수행하는 방법의 일 예가 도 12를 참조하여 설명된다.An example of how the host 102 performs failure analysis of the memory system 110 is described with reference to FIG. 12 .

도 12는 호스트(102)와 메모리 시스템(110)의 상호작용(transaction)을 설명하는 도면이다.12 is a diagram illustrating a transaction between the host 102 and the memory system 110 .

단계 S1212에서, 호스트(102)는 메모리 시스템(110)으로 에러 히스토리 리드 커맨드를 제공할 수 있다. 예를 들어, 호스트(102)는 메모리 시스템(110)의 불량 분석을 위한 에러 히스토리 데이터를 획득하기 위해 상기 에러 히스토리 리드 커맨드를 제공할 수 있다. 에러 히스토리 리드 커맨드의 예는 도 7을 참조하여 설명되었다.In step S1212 , the host 102 may provide an error history read command to the memory system 110 . For example, the host 102 may provide the error history read command to acquire error history data for analyzing a failure of the memory system 110 . An example of the error history read command has been described with reference to FIG. 7 .

단계 S1214에서, 메모리 시스템(110)은 상기 에러 히스토리 리드 커맨드에 응하여 에러 히스토리 영역(152)으로부터 에러 히스토리 데이터의 로 데이터(raw data)를 획득하고, 암호화기(170)를 이용하여 상기 로 데이터를 암호화할 수 있다.In step S1214, the memory system 110 obtains raw data of error history data from the error history area 152 in response to the error history read command, and uses the encryptor 170 to convert the raw data to can be encrypted.

단계 S1216에서, 메모리 시스템(110)은 호스트(102)로 상기 암호화된 에러 히스토리 데이터를 제공할 수 있다.단계 S1218에서, 호스트(102)는 불량 분석을 수행하기 앞서 상기 에러 히스토리 데이터가 유효한 데이터인지 여부를 판단할 수 있다. 예를 들어, 호스트(102)는 에러 히스토리 데이터의 사이즈 값이 '0'인 경우 혹은 에러 히스토리 데이터가 클리어-마크 데이터에 해당하는 경우 상기 에러 히스토리 데이터를 무효한 데이터로 판단할 수 있다.In step S1216, the memory system 110 may provide the encrypted error history data to the host 102. In step S1218, the host 102 determines whether the error history data is valid data prior to performing failure analysis. can determine whether For example, when the size value of the error history data is '0' or when the error history data corresponds to clear-mark data, the host 102 may determine the error history data as invalid data.

상기 에러 히스토리 데이터가 무효한 데이터인 경우(단계 S1218에서, "NO"), 호스트(102)는 메모리 시스템(110)에 에러가 발생하지 않은 것으로 판단하고 동작을 종료할 수 있다.When the error history data is invalid data (“NO” in step S1218), the host 102 may determine that no error has occurred in the memory system 110 and may terminate the operation.

상기 에러 히스토리 데이터가 유효한 데이터인 경우(단계 S1218에서, "YES"), 호스트(102)는 단계 S1220 및 단계 S1222를 선택적으로 수행할 수 있다.If the error history data is valid data (“YES” in step S1218), the host 102 may selectively perform steps S1220 and S1222.

예를 들어, 호스트(102)가 메모리 시스템(110)의 제조사에서 제공하는 복호화 키를 가지고 있는 경우, 호스트(102)는 단계 S1220에서 에러 히스토리 데이터를 복호할 수 있다. 단계 S1222에서, 호스트(102)는 복호화된 에러 히스토리 데이터를 사용하여 메모리 시스템(110)의 불량 분석을 수행할 수 있다. For example, when the host 102 has a decryption key provided by the manufacturer of the memory system 110, the host 102 may decrypt the error history data in step S1220. In step S1222, the host 102 may analyze the failure of the memory system 110 using the decrypted error history data.

반면에, 호스트(102)가 상기 복호화 키를 가지고 있지 않은 경우, 호스트(102)는 단계 S1220 및 단계 S1222를 수행하지 않을 수 있다. 대신에, 호스트(102)는 외부의 요청에 응하여 암호화된 에러 히스토리 데이터를 메모리 시스템(110)의 제조사로 전달할 수 있다.On the other hand, if the host 102 does not have the decryption key, the host 102 may not perform steps S1220 and S1222. Instead, the host 102 may transmit encrypted error history data to the manufacturer of the memory system 110 in response to an external request.

단계 S1230에서, 호스트(102)는 메모리 시스템(110)의 에러 히스토리 디렉토리 엔트리들 중 적어도 어느 하나를 클리어할 수 있다. 단계 S1230는 단계 S1232 내지 단계 S1238을 포함할 수 있다.In operation S1230 , the host 102 may clear at least one of the error history directory entries of the memory system 110 . Step S1230 may include steps S1232 to S1238.

단계 S1232에서, 호스트(102)는 메모리 시스템(110)으로 에러 히스토리 클리어 커맨드를 제공할 수 있다. 에러 히스토리 클리어 커맨드의 예는 도 9a 및 도 9b를 참조하여 설명되었다.In step S1232 , the host 102 may provide an error history clear command to the memory system 110 . An example of the error history clear command has been described with reference to FIGS. 9A and 9B.

단계 S1234에서, 메모리 시스템(110)은 에러 히스토리 클리어 커맨드를 정상 수신하였음을 알리는 신호를 데이터 인 UPIU(DATA IN UPIU)를 통해 호스트(102)로 제공할 수 있다.In step S1234, the memory system 110 may provide a signal indicating that the error history clear command has been normally received to the host 102 through a DATA IN UPIU.

단계 S1236에서, 메모리 시스템(110)은 에러 히스토리 클리어 커맨드에 응하여 에러 히스토리 영역(152)에서 적어도 하나의 에러 히스토리 디렉토리 엔트리를 클리어할 수 있다. 메모리 시스템(110)이 에러 히스토리 클리어 커맨드에 응하여 적어도 하나의 에러 히스토리 디렉토리 엔트리를 클리어하는 동작은 도 10 내지 도 11b를 참조하여 상세히 설명되었다.In step S1236, the memory system 110 may clear at least one error history directory entry in the error history area 152 in response to the error history clear command. An operation in which the memory system 110 clears at least one error history directory entry in response to an error history clear command has been described in detail with reference to FIGS. 10 to 11B.

단계 S1238에서, 메모리 시스템(110)은 에러 히스토리 클리어 커맨드에 대한 완료 응답을 리스폰스 UPIU(RESPONSE UPIU)를 통해 호스트(102)로 제공할 수 있다.In step S1238, the memory system 110 may provide a completion response to the error history clear command to the host 102 through a response UPIU.

메모리 시스템(110)은 에러 히스토리 디렉토리 엔트리가 클리어된 이후 재구동될 수 있다. 메모리 시스템(110)의 재구동 시 새로운 에러가 발생하면 컨트롤러(130)는 상기 클리어된 에러 히스토리 디렉토리 엔트리에 새로운 에러 히스토리 데이터를 저장할 수 있다. 예를 들어, 컨트롤러(130)는 에러 히스토리 버퍼(152)의 데이터를 메모리(144)로 로드하고, 에러 히스토리 영역(152)을 이레이즈할 수 있다. 그리고, 컨트롤러(130)는 상기 로드된 데이터에 포함된 클리어-마크 데이터를 새로 발생한 에러에 대한 데이터로 수정하고, 상기 수정된 데이터를 에러 히스토리 영역(152)에 프로그램함으로써 새로운 에러 히스토리 데이터를 저장할 수 있다. The memory system 110 can be restarted after the error history directory entry is cleared. When a new error occurs when the memory system 110 is restarted, the controller 130 may store new error history data in the cleared error history directory entry. For example, the controller 130 may load data of the error history buffer 152 into the memory 144 and erase the error history area 152 . In addition, the controller 130 may store new error history data by modifying the clear-mark data included in the loaded data with data for a newly generated error and programming the corrected data in the error history area 152. there is.

호스트(102)는 재구동된 메모리 시스템(110)으로 에러 히스토리 리드 커맨드를 제공함으로써 상기 새로운 에러 히스토리 데이터를 획득할 수 있다. 메모리 시스템(110)의 제조사는 상기 새로운 에러 히스토리 데이터를 획득함으로써 메모리 시스템(110)이 재구동된 이후에 발생한 에러를 용이하게 분석할 수 있다.The host 102 may obtain the new error history data by providing an error history read command to the restarted memory system 110 . The manufacturer of the memory system 110 may easily analyze an error occurring after the memory system 110 is restarted by acquiring the new error history data.

제1 예로, 메모리 시스템(110)의 제조사는 메모리 시스템(110)을 재구동함으로써 에러 발생을 재현하고, 상기 재현된 에러를 분석하기 위해 메모리 시스템(110)으로 에러 히스토리 리드 커맨드를 제공할 수 있다.As a first example, the manufacturer of the memory system 110 reproduces the occurrence of an error by restarting the memory system 110 and provides an error history read command to the memory system 110 to analyze the reproduced error. .

제2 예로, 고객사가 데이터 처리 시스템(100)에 포함된 메모리 시스템(110)의 에러 발생을 리포트(report)하면서 메모리 시스템(110)을 메모리 시스템(110)의 제조사로 제공하는 경우가 있다. 상기 제조사는 메모리 시스템(110)으로부터 획득된 에러 히스토리 데이터를 사용하여 불량 분석을 완료하고, 에러 히스토리 클리어 커맨드를 제공함으로써 상기 에러 히스토리 데이터를 제거한 후 고객사로 메모리 시스템(110)을 반환할 수 있다. 메모리 시스템(110)이 재구동된 후 고객사가 새로운 에러 발생을 리포트하면서 상기 제조사로 상기 메모리 시스템(110)을 다시 제공할 수 있다. 상기 제조사는 메모리 시스템(110)으로 에러 히스토리 리드 커맨드를 제공할 수 있다. 상기 제조사는 메모리 시스템(110)으로부터 유효한 에러 히스토리 데이터를 획득한 경우, 상기 획득된 데이터를 메모리 시스템(110)이 고객사로 반환된 후에 새로 발생한 에러에 대한 에러 히스토리 데이터로 판단할 수 있다. 제조사는 고객사가 리포트한 에러 및 상기 에러 히스토리 데이터에 기초하여 메모리 시스템(110)의 불량 분석을 다시 수행할 수 있다.As a second example, there is a case where a customer company provides the memory system 110 to the manufacturer of the memory system 110 while reporting the occurrence of an error in the memory system 110 included in the data processing system 100 . The manufacturer may complete defect analysis using the error history data acquired from the memory system 110, remove the error history data by providing an error history clear command, and then return the memory system 110 to the customer company. After the memory system 110 is restarted, the customer company may provide the memory system 110 to the manufacturer again while reporting the occurrence of a new error. The manufacturer may provide an error history read command to the memory system 110 . When valid error history data is obtained from the memory system 110, the manufacturer may determine the acquired data as error history data for a newly generated error after the memory system 110 is returned to the customer company. The manufacturer may perform defect analysis of the memory system 110 again based on the error reported by the customer and the error history data.

이상 본 발명의 실시예에 따른 메모리 시스템 및 데이터 처리 시스템을 구체적인 실시 형태로서 설명하였으나, 이는 예시에 불과한 것으로서 본 발명은 이에 한정되지 않는 것이며, 본 명세서에 개시된 기초 사상에 따르는 최광의 범위를 갖는 것으로 해석되어야 한다. 당업자는 개시된 실시 형태들을 조합, 치환하여 적시되지 않은 실시 형태를 실시할 수 있으나, 이 역시 본 발명의 권리범위를 벗어나지 않는 것이다. 이외에도 당업자는 본 명세서에 기초하여 개시된 실시형태를 용이하게 변경 또는 변형할 수 있으며, 이러한 변경 또는 변형도 본 발명의 권리범위에 속함은 명백하다.Although the memory system and data processing system according to an embodiment of the present invention have been described as specific embodiments, this is only an example, and the present invention is not limited thereto, and is intended to have the widest scope according to the basic ideas disclosed herein. should be interpreted A person skilled in the art may implement an embodiment that is not indicated by combining or substituting the disclosed embodiments, but this also does not deviate from the scope of the present invention. In addition, those skilled in the art can easily change or modify the disclosed embodiments based on this specification, and it is clear that such changes or modifications also fall within the scope of the present invention.

Claims (18)

에러 히스토리 영역을 포함하고, 내부에서 발생한 에러에 연관된 에러 히스토리 데이터를 상기 에러 히스토리 영역에 저장하는 메모리 시스템; 및
상기 메모리 시스템으로 에러 히스토리 리드 커맨드를 제공하여 상기 메모리 시스템으로부터 상기 에러 히스토리 데이터를 획득하고, 상기 획득된 에러 히스토리 데이터에 기초하여 상기 메모리 시스템의 불량 분석(failure analysis)을 수행하며, 상기 메모리 시스템으로 에러 히스토리 클리어 커맨드를 제공하여 상기 메모리 시스템이 상기 에러 히스토리 영역의 적어도 일부를 클리어하도록 제어하는 호스트를 포함하고,
상기 에러 히스토리 영역은 상기 호스트에서 사용되는 논리 주소로 액세스될 수 없는 메모리 영역인
데이터 처리 시스템.
a memory system including an error history area and storing error history data related to errors generated therein in the error history area; and
An error history read command is provided to the memory system to obtain the error history data from the memory system, a failure analysis of the memory system is performed based on the obtained error history data, and a failure analysis of the memory system is performed. a host controlling the memory system to clear at least a portion of the error history area by providing an error history clear command;
The error history area is a memory area that cannot be accessed with a logical address used in the host.
data processing system.
제1항에 있어서,
상기 에러 히스토리 클리어 커맨드는
모드가 에러 히스토리 클리어 모드로 지정된 리드 버퍼 커맨드이고,
상기 에러 히스토리 클리어 모드는
SCSI(Small Computer System Interface) 커맨드인 상기 리드 버퍼 커맨드의 예비된(reserved) 모드 값에 대응하는
데이터 처리 시스템.
According to claim 1,
The error history clear command
The mode is a read buffer command specified as the error history clear mode,
The error history clear mode
Corresponding to the reserved mode value of the read buffer command, which is a SCSI (Small Computer System Interface) command.
data processing system.
제1항에 있어서,
상기 에러 히스토리 영역은
복수의 에러 히스토리 디렉토리 엔트리들을 포함하고,
상기 호스트는
상기 에러 히스토리 디렉토리 엔트리들 중 어느 하나에 대응하는 버퍼 ID(identifier) 값을 포함하는 상기 에러 히스토리 클리어 커맨드를 상기 메모리 시스템으로 제공함으로써 상기 어느 하나의 에러 히스토리 디렉토리 엔트리를 클리어하도록 상기 메모리 시스템을 제어하는
데이터 처리 시스템.
According to claim 1,
The error history area is
contains a plurality of error history directory entries;
the host
Controlling the memory system to clear any one error history directory entry by providing the error history clear command including a buffer ID (identifier) value corresponding to any one of the error history directory entries to the memory system.
data processing system.
제1항에 있어서,
상기 에러 히스토리 영역은
복수의 에러 히스토리 디렉토리 엔트리들을 포함하고,
상기 호스트는
상기 복수의 에러 히스토리 디렉토리 엔트리들 모두를 지정하기 위한 버퍼 ID 값을 포함하는 에러 히스토리 클리어 커맨드를 상기 메모리 시스템으로 제공함으로써 상기 복수의 에러 히스토리 디렉토리 엔트리들 모두를 클리어하도록 상기 메모리 시스템을 제어하는고,
상기 버퍼 ID 값은
상기 에러 히스토리 클리어 커맨드의 예비된 버퍼 ID 값인
데이터 처리 시스템.
According to claim 1,
The error history area is
contains a plurality of error history directory entries;
the host
controlling the memory system to clear all of the plurality of error history directory entries by providing an error history clear command including a buffer ID value for specifying all of the plurality of error history directory entries to the memory system;
The buffer ID value is
The reserved buffer ID value of the error history clear command
data processing system.
제1항에 있어서,
상기 에러 히스토리 영역은
복수의 에러 히스토리 디렉토리 엔트리들을 포함하고,
상기 메모리 시스템은
상기 복수의 에러 히스토리 디렉토리 엔트리들 중 적어도 하나를 지정하는 상기 에러 히스토리 클리어 커맨드에 응하여 상기 에러 히스토리 영역의 데이터를 내부 휘발성 메모리로 로드하고, 상기 에러 히스토리 영역을 이레이즈하고, 상기 로드된 데이터로부터 상기 지정된 에러 히스토리 디렉토리 엔트리에 대응하는 데이터를 제거함으로써 상기 로드된 데이터를 수정하고, 상기 수정된 데이터를 상기 에러 히스토리 영역에 프로그램하는
데이터 처리 시스템.
According to claim 1,
The error history area is
contains a plurality of error history directory entries;
the memory system
In response to the error history clear command designating at least one of the plurality of error history directory entries, data of the error history area is loaded into an internal volatile memory, the error history area is erased, and the error history area is erased from the loaded data. modifying the loaded data by removing data corresponding to a designated error history directory entry, and programming the modified data in the error history area;
data processing system.
제1항에 있어서,
상기 에러 히스토리 영역은 복수의 에러 히스토리 디렉토리 엔트리들을 포함하고,
상기 메모리 시스템은
상기 복수의 에러 히스토리 디렉토리 엔트리들 중 적어도 하나를 지정하는 상기 에러 히스토리 클리어 커맨드에 응하여 상기 에러 히스토리 영역의 데이터를 내부 휘발성 메모리로 로드하고, 상기 에러 히스토리 영역을 이레이즈하고, 상기 로드된 데이터로부터 상기 지정된 에러 히스토리 디렉토리 엔트리에 대응하는 데이터의 적어도 일부를 클리어-마크 데이터로 덮어쓰기함으로써 상기 로드된 데이터를 수정하고, 상기 수정된 데이터를 상기 에러 히스토리 영역에 프로그램함으로써 상기 지정된 에러 히스토리 디렉토리 엔트리를 클리어하는
데이터 처리 시스템.
According to claim 1,
The error history area includes a plurality of error history directory entries;
the memory system
In response to the error history clear command designating at least one of the plurality of error history directory entries, data of the error history area is loaded into an internal volatile memory, the error history area is erased, and the error history area is erased from the loaded data. correcting the loaded data by overwriting at least a part of data corresponding to a designated error history directory entry with clear-mark data, and clearing the designated error history directory entry by programming the modified data in the error history area.
data processing system.
제6항에 있어서,
상기 메모리 시스템은
상기 에러 히스토리 클리어 커맨드가 수행된 후 재구동 시에 내부에 새로운 에러가 발생하면 상기 클리어된 에러 히스토리 디렉토리 엔트리에 새로운 에러 히스토리 데이터를 저장하는
데이터 처리 시스템.
According to claim 6,
the memory system
Storing new error history data in the cleared error history directory entry when a new error occurs internally during restart after the error history clear command is executed.
data processing system.
제7항에 있어서,
상기 메모리 시스템은
상기 에러 히스토리 영역의 데이터를 내부 휘발성 메모리로 로드하고, 상기 에러 히스토리 영역을 이레이즈하고, 상기 로드된 데이터에서 상기 클리어된 에러 히스토리 디렉토리 엔트리에 해당하는 데이터를 상기 새로운 에러 히스토리 데이터로 덮어쓰기함으로써 상기 로드된 데이터를 수정하고, 상기 수정된 데이터를 상기 에러 히스토리 영역에 저장함으로써 상기 클리어된 에러 히스토리 디렉토리 엔트리에 새로운 에러 히스토리 데이터를 저장하는
데이터 처리 시스템.
According to claim 7,
the memory system
By loading data in the error history area into an internal volatile memory, erasing the error history area, and overwriting data corresponding to the cleared error history directory entry in the loaded data with the new error history data. Storing new error history data in the cleared error history directory entry by correcting the loaded data and storing the corrected data in the error history area.
data processing system.
제8항에 있어서,
상기 호스트는
상기 메모리 시스템의 재구동 이후에 에러 히스토리 리드 커맨드를 상기 메모리 시스템으로 더 제공하고, 상기 메모리 시스템로부터 유효한 에러 히스토리 데이터를 획득한 경우 상기 획득된 에러 히스토리 데이터에 기초하여 상기 새로 발생한 에러의 발생 원인을 분석하는
데이터 처리 시스템.
According to claim 8,
the host
After the memory system is restarted, an error history read command is further provided to the memory system, and when valid error history data is acquired from the memory system, a cause of the newly generated error is determined based on the obtained error history data. to analyze
data processing system.
제6항에 있어서,
상기 호스트는
상기 에러 히스토리 리드 커맨드에 응하여 획득된 에러 히스토리 데이터가 상기 클리어-마크 데이터에 해당하는 경우, 호스트에 의해 에러 히스토리 영역이 클리어된 것으로 판단하고 불량 분석을 종료하는
데이터 처리 시스템.
According to claim 6,
the host
When the error history data obtained in response to the error history read command corresponds to the clear-mark data, determining that the error history area is cleared by the host and terminating the defect analysis.
data processing system.
제1항에 있어서,
상기 메모리 시스템은
복수의 메모리 블록들을 포함하고,
상기 에러 히스토리 영역은 상기 복수의 메모리 블록들 중 어느 하나에 대응하는
데이터 처리 시스템.
According to claim 1,
the memory system
Including a plurality of memory blocks,
The error history area corresponds to any one of the plurality of memory blocks.
data processing system.
제1항에 있어서,
상기 메모리 시스템은 UFS(Universal Flash Storage) 장치인
데이터 처리 시스템.
According to claim 1,
The memory system is a Universal Flash Storage (UFS) device.
data processing system.
메모리 시스템에 있어서,
에러 히스토리 영역을 포함하는 메모리 장치; 및
호스트로부터의 에러 히스토리 클리어 커맨드에 응하여 상기 에러 히스토리 영역의 적어도 일부를 클리어하는 컨트롤러를 포함하고,
상기 에러 히스토리 영역은 상기 호스트에서 사용되는 논리 주소로 액세스될 수 없는 메모리 영역인
메모리 시스템.
In the memory system,
a memory device including an error history area; and
a controller clearing at least a part of the error history area in response to an error history clear command from a host;
The error history area is a memory area that cannot be accessed with a logical address used in the host.
memory system.
제13항에 있어서,
상기 에러 히스토리 클리어 커맨드는
모드가 에러 히스토리 클리어 모드로 지정된 리드 버퍼 커맨드이고,
상기 에러 히스토리 클리어 모드는
SCSI(Small Computer System Interface) 커맨드인 상기 리드 버퍼 커맨드의 예비된(reserved) 모드 값에 대응하는
메모리 시스템.
According to claim 13,
The error history clear command
The mode is a read buffer command specified as the error history clear mode,
The error history clear mode
Corresponding to the reserved mode value of the read buffer command, which is a SCSI (Small Computer System Interface) command.
memory system.
제13항에 있어서,
상기 에러 히스토리 영역은
복수의 에러 히스토리 디렉토리 엔트리들을 포함하고,
상기 에러 히스토리 클리어 커맨드는
상기 에러 히스토리 디렉토리 엔트리들 중 어느 하나에 대응하는 버퍼 ID 값을 포함하는 특정 에러 히스토리 클리어 커맨드인
메모리 시스템.
According to claim 13,
The error history area is
contains a plurality of error history directory entries;
The error history clear command
A specific error history clear command including a buffer ID value corresponding to any one of the error history directory entries.
memory system.
메모리 시스템에 있어서,
상기 메모리 시스템의 내부에서 발생한 에러에 연관된 에러 히스토리 데이터를 저장하는 에러 히스토리 영역을 포함하는 메모리 장치;
호스트로부터의 에러 히스토리 리드 커맨드에 응하여 상기 에러 히스토리 영역에 저장된 에러 히스토리 데이터를 획득하는 컨트롤러; 및
상기 컨트롤러로부터 획득되는 상기 에러 히스토리 데이터를 암호화하고, 상기 암호화된 에러 히스토리 데이터를 호스트로 제공하는 암호화기를 포함하는
메모리 시스템.
In the memory system,
a memory device including an error history area for storing error history data related to an error occurring inside the memory system;
a controller acquiring error history data stored in the error history area in response to an error history read command from a host; and
And an encryptor configured to encrypt the error history data obtained from the controller and provide the encrypted error history data to a host.
memory system.
제16항에 있어서,
상기 호스트로부터 수신되는 데이터는 상기 암호화기를 바이패스하는
메모리 시스템.
According to claim 16,
Data received from the host bypasses the encryptor.
memory system.
제16항에 있어서,
상기 에러 히스토리 영역은 상기 호스트에서 사용되는 논리 주소로 액세스될 수 없는 메모리 영역인
메모리 시스템.
According to claim 16,
The error history area is a memory area that cannot be accessed with a logical address used in the host.
memory system.
KR1020210094761A 2021-04-20 2021-07-20 Memory system and data processing system KR20230013822A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210094761A KR20230013822A (en) 2021-07-20 2021-07-20 Memory system and data processing system
US17/554,169 US11782782B2 (en) 2021-04-20 2021-12-17 Memory system and data processing system
CN202210300429.7A CN115220950A (en) 2021-04-20 2022-03-24 Memory system and data processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210094761A KR20230013822A (en) 2021-07-20 2021-07-20 Memory system and data processing system

Publications (1)

Publication Number Publication Date
KR20230013822A true KR20230013822A (en) 2023-01-27

Family

ID=85101350

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210094761A KR20230013822A (en) 2021-04-20 2021-07-20 Memory system and data processing system

Country Status (1)

Country Link
KR (1) KR20230013822A (en)

Similar Documents

Publication Publication Date Title
US10180805B2 (en) Memory system and operating method thereof
CN107957959B (en) Memory system with file level secure erase and method of operating the same
KR102615593B1 (en) Memory system and operating method of memory system
KR102468751B1 (en) Memory system and operating method of memory system
KR102564774B1 (en) Apparatus for diagnosing memory system or data processing system and operating method of memory system or data processing system based on diagnosis
KR20190017550A (en) Memory system and operating method of memory system
KR20190026231A (en) Memory system and operating method of memory system
KR102553170B1 (en) Memory system and operating method of memory system
KR20200013897A (en) Controller and operation method thereof
KR20180135188A (en) Memory system and operating method of memory system
US20230350577A1 (en) Memory system and operation method thereof
KR102475798B1 (en) Memory system and operating method of memory system
KR102612918B1 (en) Controller and operation method thereof
KR20210030599A (en) Memory system for supporting distributed read of data and method operation thereof
KR102431238B1 (en) Memory system and operating method of memory system
KR102340094B1 (en) Memory system and operating method thereof
CN109918315B (en) Memory system and operation method thereof
KR102234725B1 (en) Controller and memory system and operating method of memory system
KR20200113990A (en) Apparatus and method for checking operation status of memory device in memory system
KR20220091955A (en) Memory system discarding method and memory system thereof
US11782782B2 (en) Memory system and data processing system
KR102529710B1 (en) Memory system and operation method thereof
KR20230013822A (en) Memory system and data processing system
KR20220144635A (en) Memory system and data processing system
US11675522B2 (en) Memory system and operating method thereof