KR20220144635A - Memory system and data processing system - Google Patents

Memory system and data processing system Download PDF

Info

Publication number
KR20220144635A
KR20220144635A KR1020210051191A KR20210051191A KR20220144635A KR 20220144635 A KR20220144635 A KR 20220144635A KR 1020210051191 A KR1020210051191 A KR 1020210051191A KR 20210051191 A KR20210051191 A KR 20210051191A KR 20220144635 A KR20220144635 A KR 20220144635A
Authority
KR
South Korea
Prior art keywords
error history
buffer
data
command
memory system
Prior art date
Application number
KR1020210051191A
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 KR1020210051191A priority Critical patent/KR20220144635A/en
Priority to US17/554,169 priority patent/US11782782B2/en
Priority to CN202210300429.7A priority patent/CN115220950A/en
Publication of KR20220144635A publication Critical patent/KR20220144635A/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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2048Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share neither address space nor persistent storage
    • 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/0653Monitoring storage devices or systems
    • 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
    • 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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0036Small computer system interface [SCSI]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

A data processing system may include: a memory system including an error history buffer and storing error history data associated with an internal error in the error history buffer; and a host which obtains the error history data from the memory system by providing the memory system with an error history read command, performs failure analysis of the memory system on the basis of the obtained error history data, and controls the memory system to clear at least a portion of the error history buffer by providing the memory system with an error history clear command, wherein the error history buffer is a memory region which is not able to be accessed with a logical address used by the host. According to the present invention, the host can easily conduct failure analysis of the memory system.

Description

메모리 시스템 및 데이터 처리 시스템{MEMORY SYSTEM AND DATA PROCESSING SYSTEM}MEMORY SYSTEM AND DATA PROCESSING SYSTEM

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

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

메모리 장치를 이용한 데이터 저장 장치는 기계적인 구동부가 없어서 안정성 및 내구성이 뛰어나며, 또한 정보의 액세스 속도가 매우 빠르고 전력 소모가 적다는 장점이 있다. 이러한 장점을 갖는 메모리 시스템의 일 예로 데이터 저장 장치는, USB(Universal Serial Bus) 메모리 장치, 다양한 인터페이스를 갖는 메모리 카드, 솔리드 스테이트 드라이브(SSD: Solid State Drive) 등을 포함한다.A data storage device using a memory device has advantages in that it has excellent stability and durability because there is no 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, a data storage device includes a Universal Serial Bus (USB) memory device, a memory card having various interfaces, a solid state drive (SSD), and the like.

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

본 발명의 실시 예에 따른 데이터 처리 시스템에 있어서, 에러 히스토리 버퍼를 포함하고, 내부에서 발생한 에러에 연관된 에러 히스토리 데이터를 상기 에러 히스토리 버퍼에 저장하는 메모리 시스템; 및 상기 메모리 시스템으로 에러 히스토리 리드 커맨드를 제공함으로써 상기 메모리 시스템으로부터 상기 에러 히스토리 데이터를 획득하고, 상기 획득된 에러 히스토리 데이터에 기초하여 상기 메모리 시스템의 불량 분석(failure analysis)을 수행하며, 상기 메모리 시스템으로 에러 히스토리 클리어 커맨드를 제공함으로써 상기 메모리 시스템이 상기 에러 히스토리 버퍼의 적어도 일부를 클리어하도록 제어하는 호스트를 포함하고, 상기 에러 히스토리 버퍼는 상기 호스트에서 사용되는 논리 주소로 액세스될 수 없는 메모리 영역이다.In a data processing system according to an embodiment of the present invention, there is provided a data processing system comprising: a memory system including an error history buffer and storing error history data related to internal errors in the error history buffer; and obtaining the error history data from the memory system by providing an error history read command to the memory system, and performing failure analysis of the memory system based on the obtained error history data, the memory system and a host controlling the memory system to clear at least a portion of the error history buffer by providing an error history clear command to the host, wherein the error history buffer is 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 designated as an error history clear mode, and the error history clear mode corresponds to a reserved mode value of the read buffer command, which is a SCSI (Small Computer System Interface) command. can

또한, 상기 에러 히스토리 버퍼는 복수의 에러 히스토리 엔트리들을 포함하고, 상기 호스트는 상기 에러 히스토리 엔트리들 중 어느 하나에 대응하는 버퍼 ID(identifier) 값을 포함하는 상기 에러 히스토리 클리어 커맨드를 상기 메모리 시스템으로 제공함으로써 상기 어느 하나의 에러 히스토리 엔트리를 클리어하도록 상기 메모리 시스템을 제어할 수 있다.In addition, the error history buffer includes a plurality of error history entries, and the host provides the error history clear command including a buffer identifier (ID) value corresponding to any one of the error history entries to the memory system. By doing so, it is possible to control the memory system to clear any one of the error history 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 any one of buffer IDs '10h' to 'EFh'.

또한, 상기 에러 히스토리 버퍼는 복수의 에러 히스토리 엔트리들을 포함하고, 상기 호스트는 상기 복수의 에러 히스토리 엔트리들 모두를 지정하기 위한 버퍼 ID 값을 포함하는 에러 히스토리 클리어 커맨드를 상기 메모리 시스템으로 제공함으로써 상기 복수의 에러 히스토리 엔트리들 모두를 클리어하도록 상기 메모리 시스템을 제어하는고, 상기 버퍼 ID 값은 상기 에러 히스토리 클리어 커맨드의 예비된 버퍼 ID 값일 수 있다.In addition, the error history buffer includes a plurality of error history entries, and the host provides an error history clear command including a buffer ID value for specifying all of the plurality of error history entries to the memory system by providing the memory system with the plurality of error history entries. control the memory system to clear all of the error history entries of , wherein the buffer ID value may be a reserved buffer ID value of the clear error history 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'.

또한, 상기 에러 히스토리 버퍼는 복수의 에러 히스토리 엔트리들을 포함하고, 상기 메모리 시스템은 상기 복수의 에러 히스토리 엔트리들 중 적어도 하나를 지정하는 상기 에러 히스토리 클리어 커맨드에 응하여 상기 에러 히스토리 버퍼의 데이터를 내부 휘발성 메모리로 로드하고, 상기 에러 히스토리 버퍼를 이레이즈하고, 상기 로드된 데이터로부터 상기 지정된 에러 히스토리 엔트리에 대응하는 데이터를 제거함으로써 상기 로드된 데이터를 수정하고, 상기 수정된 데이터를 상기 에러 히스토리 버퍼에 프로그램할 수 있다.In addition, the error history buffer includes a plurality of error history entries, and the memory system stores data in the error history buffer into an internal volatile memory in response to the error history clear command specifying at least one of the plurality of error history entries. modifies the loaded data by loading into , erasing the error history buffer, removing data corresponding to the specified error history entry from the loaded data, and programming the modified data into the error history buffer. can

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

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

또한, 상기 메모리 시스템은 상기 에러 히스토리 버퍼의 데이터를 내부 휘발성 메모리로 로드하고, 상기 에러 히스토리 버퍼를 이레이즈하고, 상기 로드된 데이터에서 상기 클리어된 에러 히스토리 엔트리에 해당하는 데이터를 상기 새로운 에러 히스토리 데이터로 덮어쓰기함으로써 상기 로드된 데이터를 수정하고, 상기 수정된 데이터를 상기 에러 히스토리 버퍼에 저장함으로써 상기 클리어된 에러 히스토리 엔트리에 새로운 에러 히스토리 데이터를 저장할 수 있다.Also, the memory system loads data of the error history buffer into an internal volatile memory, erases the error history buffer, and converts data corresponding to the cleared error history entry from the loaded data to the new error history data. It is possible to modify the loaded data by overwriting with , and store new error history data in the cleared error history entry by storing the modified data in the error history buffer.

또한, 상기 호스트는 상기 메모리 시스템의 재구동 이후에 에러 히스토리 리드 커맨드를 상기 메모리 시스템으로 더 제공하고, 상기 메모리 시스템로부터 유효한 에러 히스토리 데이터를 획득한 경우 상기 획득된 에러 히스토리 데이터에 기초하여 상기 새로 발생한 에러의 발생 원인을 분석할 수 있다.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 used based on the obtained error history data. The cause of the error can be analyzed.

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

또한, 상기 메모리 시스템은 복수의 메모리 블록들을 포함하고, 상기 에러 히스토리 버퍼는 상기 복수의 메모리 블록들 중 어느 하나에 대응할 수 있다.Also, the memory system may include a plurality of memory blocks, and the error history buffer 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 buffer; and a controller that clears at least a portion of the error history buffer in response to an error history clear command from a host, wherein the error history buffer 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 designated as an error history clear mode, and the error history clear mode corresponds to a reserved mode value of the read buffer command, which is a SCSI (Small Computer System Interface) command. can

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

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

또한, 상기 에러 히스토리 버퍼는 복수의 에러 히스토리 엔트리들을 포함하고, 상기 에러 히스토리 클리어 커맨드는 상기 복수의 에러 히스토리 엔트리들 모두를 지정하기 위한 버퍼 ID 값을 포함하는 전체 에러 히스토리 클리어 커맨드일 수 있다.Also, the error history buffer may include a plurality of error history entries, and the clear error history command may be a clear full error history command including a buffer ID value for designating all of the plurality of error history 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 that enables a host to easily analyze a failure 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 illustrating an exemplary configuration of a memory cell array in the memory device 150 .
4 is a diagram for describing the error history buffer 152 in detail.
FIG. 5 is a diagram for explaining error history data that may be stored in the error history buffer 152 .
6 to 9B are diagrams for 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 for explaining 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, but may be configured in various different forms, only this embodiment allows the disclosure of the present invention to be complete and the scope of the present invention to those of ordinary skill in the art It is provided to fully inform

도 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 an electronic device, for example, portable electronic devices such as a mobile phone, an MP3 player, a laptop computer, or the like, or electronic devices such as a desktop computer, a game console, a TV, a projector, and the like.

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

메모리 시스템(110)은 호스트(102)의 요청에 응하여 호스트(102)의 데이터를 저장하기 위해 동작할 수 있다.The memory system 110 is operable 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 predetermined 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 a Small Computer System Interface (SCSI) command set. have. However, the present invention is not limited thereto, and the present invention may 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 is a solid state drive (SSD: Solid State Drive), MMC, eMMC (embedded MMC), RS-MMC (Reduced Size MMC), micro-MMC type of multi-media card (MMC: Multi Media Card), SD, mini-SD, micro-SD type Secure Digital (SD) card, USB (Universal Serial Bus) storage device, UFS (Universal Flash Storage) device, CF (Compact Flash) card, smart It may be implemented as any one of various types of storage devices such as a smart media card and a memory stick.

메모리 시스템(110)은 다양한 종류의 저장 장치에 의해 구현될 수 있다. 예를 들어, 상기 저장 장치는 DRAM(Dynamic Random Access Memory), SRAM(Static RAM) 등과 같은 휘발성 메모리 장치와, ROM(Read Only Memory), MROM(Mask ROM), PROM(Programmable ROM), EPROM(Erasable ROM), EEPROM(Electrically Erasable ROM), FRAM(Ferromagnetic ROM), PRAM(Phase change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), 플래시 메모리 등과 같은 비휘발성 메모리 장치를 포함할 수 있다. 상기 플래시 메모리는 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), non-volatile memory devices such as flash memory. The flash memory may have a three-dimensional stack structure.

메모리 시스템(110)은 메모리 장치(150) 및 컨트롤러(130)를 포함할 수 있다. 메모리 장치(150)는 호스트(102)를 위한 데이터를 저장할 수 있으며, 컨트롤러(130)는 메모리 장치(150)로의 데이터 저장을 제어할 수 있다.The memory system 110 may include a memory device 150 and a controller 130 . The memory device 150 may store data for the host 102 , and the controller 130 may control data storage in the memory device 150 .

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

다른 일 예로, 메모리 시스템(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 is a computer, an Ultra Mobile PC (UMPC), a workstation, a net-book, a Personal Digital Assistants (PDA), a portable computer, a web tablet, Tablet computer, wireless phone, mobile phone, smart phone, e-book, portable multimedia player (PMP), portable game machine, navigation ) device, black box, digital camera, DMB (Digital Multimedia Broadcasting) player, 3-dimensional television, smart television, digital audio recorder , digital audio player, digital picture recorder, digital picture player, digital video recorder, digital video player, data center storage, 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, A radio frequency identification (RFID) device or one of various components constituting a computing system may be configured.

메모리 장치(150)는 비휘발성 메모리 장치일 수 있으며, 전원이 공급되지 않아도 저장된 데이터를 유지할 수 있다. 메모리 장치(150)는 프로그램 동작을 통해 호스트(102)로부터 제공된 데이터를 저장할 수 있고, 리드 동작을 통해 호스트(102)로 메모리 장치(150)에 저장된 데이터를 제공할 수 있다. 일 실시예에서, 메모리 장치(150)는 플래시 메모리가 될 수 있다.The memory device 150 may be a non-volatile memory device, and may retain 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 data stored in the memory device 150 to the host 102 through a read operation. In one embodiment, the 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 operations such as read, program, and erase of the memory device 150 . The controller 130 may drive the firmware FW to control the memory device 150 .

메모리 시스템(110)의 동작 중 에러가 발생할 수 있다. 컨트롤러(130)는 메모리 시스템(110)에서 에러가 발생하면, 발생한 에러에 대한 정보를 나타내는 에러 히스토리 데이터를 메모리 장치(150)에 저장할 수 있다. 메모리 장치(150)는 에러 히스토리 데이터를 저장하기 위한 전용 영역인 에러 히스토리 버퍼(152)를 포함할 수 있다. 에러 히스토리 버퍼(152)는 비휘발성 메모리로 구현될 수 있다. An error may occur during the 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 error in the memory device 150 . The memory device 150 may include an error history buffer 152 that is a dedicated area for storing error history data. The error history buffer 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 be later analyzed for failure by a vendor of the memory system 110 . The manufacturer may acquire the error history data stored in the error history buffer 152 and utilize it for failure analysis of the memory system 110 . For example, the manufacturer may analyze the error history data of the memory system 110 and find the firmware code causing the error by repeating the error occurrence.

에러 히스토리 버퍼(152)는 메모리 장치(150)에 포함될 수 있으며, 호스트(102)의 파일 시스템에서 사용되는 논리 어드레스로는 액세스될 수 없는 메모리 영역일 수 있다. 호스트(102)는 일반적인 리드 및 라이트 커맨드, 예를 들어 UFS 장치에서 지원하는 READ(10), WRITE(10) 커맨드를 사용하여서는 에러 히스토리 버퍼(152)에 액세스하지 못할 수 있다.The error history buffer 152 may be included in the memory device 150 and may be a memory area that cannot be accessed by a logical address used in the file system of the host 102 . The host 102 may not be able to access the error history buffer 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 장치인 경우, 메모리 시스템(110)은 호스트(102)로부터의 에러 히스토리 리드 커맨드에 응하여 에러 히스토리 버퍼(152)에 저장된 에러 히스토리 데이터를 호스트(102)로 제공할 수 있다. 제조사는 호스트(102)로 제공된 상기 에러 히스토리 데이터를 획득하고, 상기터에러 히스토리 데이터를 메모리 시스템(110)의 불량 분석을 위해 사용할 수 있다.The memory system 110 may support a command that allows the host 102 to obtain error history data from the error history buffer 152 . For example, when the memory system 110 is a UFS 3.0 device, the memory system 110 transmits error history data stored in the error history buffer 152 in response to an error history read command from the host 102 to the host 102 . can be provided as The manufacturer may obtain the error history data provided to the host 102 , and use the error history data for failure analysis of the memory system 110 .

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

에러 히스토리 버퍼(152)에서 기존 에러 히스토리 데이터가 제거되지 않아서 새로운 에러 히스토리 데이터를 저장할 수 있는 공간이 없는 경우, 컨트롤러(130)는 상기 새로운 에러 히스토리 데이터를 에러 히스토리 버퍼(152)에 저장하지 않고 버리거나(discard), 에러 히스토리 버퍼(152)에 저장된 기존 에러 히스토리 데이터를 제거하고 새로운 에러 히스토리 데이터를 저장할 수 있다. 에러 히스토리 버퍼(152)에 상기 새로운 에러 히스토리 데이터가 저장되지 않은 경우, 호스트(102)는 새로운 에러의 발생 원인을 분석하기 어려울 수 있다. 에러 히스토리 버퍼(152)의 기존 에러 히스토리 데이터가 저장된 영역에 새로운 에러 히스토리 데이터가 저장되는 경우, 호스트(102)는 에러 히스토리 버퍼(152)로부터 획득한 에러 히스토리 데이터가 이전에 발생한 에러로 인한 데이터인지, 새로 발생한 에러로 인한 데이터인지 구별하기 어려울 수 있다. When there is no space to store new error history data because the existing error history data is not removed from the error history buffer 152 , the controller 130 discards the new error history data without storing the new error history data in the error history buffer 152 , or (discard), existing error history data stored in the error history buffer 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 buffer 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 in which the existing error history data of the error history buffer 152 is stored, the host 102 determines whether the error history data obtained from the error history buffer 152 is data due to a previously generated 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 buffer 152 . The host 102 may control the memory system 110 to delete the error history data by using the clear error history command. When the memory system 110 is restarted after the error history buffer 152 is cleared, even if a new error occurs in the memory system 110 , the controller 130 may store new error history data in the error history buffer 152 . have. In addition, 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)는 도 1을 참조하여 설명된 컨트롤러(130) 및 메모리 장치(150)와 대응할 수 있다.The controller 130 and the memory device 150 illustrated in FIG. 2 may correspond to the controller 130 and the 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 processes commands and data from the host 102 and may be configured to communicate with the host 102 using a SCSI command set. For example, when 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 drive firmware called a host interface layer (HIL) in order to exchange data with the host 102 .

호스트 인터페이스(132)는 암호화기(232)를 포함할 수 있다. 에러 히스토리 데이터는 메모리 시스템(110)의 기술적 정보(technical information)를 포함할 수 있다. 예를 들어, 상기 기술적 정보는 메모리 시스템(110)을 구성하는 하드웨어 및 펌웨어에 대한 정보를 포함할 수 있다. 상기 기술적 정보가 메모리 시스템(110)의 제조사 외부로 유출되지 않는 것이 바람직하다. 기술적 정보를 보호하기 위해, 호스트 인터페이스(132)는 에러 히스토리 버퍼(152)로부터 획득된 에러 히스토리 데이터를 암호화기(232)를 사용하여 암호화(encryption)하고, 암호화된 데이터를 호스트(102)로 제공할 수 있다. The host interface 132 may include an encryptor 232 . The error history data may include technical information of the memory system 110 . For example, the technical information may include information on hardware and firmware constituting the memory system 110 . It is preferable that the technical information is not leaked to the outside of the manufacturer of the memory system 110 . In order to protect technical information, the host interface 132 encrypts the error history data obtained from the error history buffer 152 using the encryptor 232 , and provides the encrypted data to the host 102 . can do.

암호화된 데이터는 메모리 시스템(110)의 제조사에 의해서만 복호(decryption)될 수 있다. 따라서, 에러 히스토리 데이터가 외부로 유출되더라도 메모리 시스템(110)의 기술적 정보가 보호될 수 있다. 예를 들어, 데이터 처리 시스템(100)의 제조사나 A/S 센터를 비롯한 고객사도 데이터 처리 시스템(100)에 포함된 메모리 시스템(110)으로 에러 히스토리 클리어 커맨드를 제공하면 메모리 시스템(110)으로부터 에러 히스토리 데이터를 획득할 수 있다. 고객사가 상기 에러 히스토리 데이터를 획득하더라도 고객사는 상기 에러 히스토리 데이터를 복호할 수 없으므로, 에러 히스토리 데이터에 포함된 기술적 정보는 보호될 수 있다. 메모리 시스템(110)의 제조사는 고객사가 획득한 에러 히스토리 데이터를 원격으로 수신하면 메모리 시스템(110)을 직접 획득하지 않고 메모리 시스템(110)의 불량 분석을 수행할 수도 있다.The encrypted data may be decrypted only by the manufacturer of the memory system 110 . Accordingly, even if the error history data is leaked to the outside, technical information of the memory system 110 may be protected. For example, when a manufacturer of the data processing system 100 or a customer including an A/S center also provides an error history clear command to the memory system 110 included in the data processing system 100 , an error is generated from the memory system 110 . Historical data can be obtained. Even if the customer obtains the error history data, the customer cannot decrypt the error history data, so technical information included in the error history data can be protected. The manufacturer of the memory system 110 may perform failure analysis of the memory system 110 without directly acquiring the memory system 110 when the customer remotely receives the error history data acquired by the customer.

ECC(138)는 메모리 장치(150)로부터 독출되는 데이터에 포함된 에러를 검출 및 정정할 수 있다. 즉, ECC(138)는 ECC 인코딩 프로세스에서 사용된 ECC 코드를 통해 메모리 장치(150)로부터 독출된 데이터에 에러 정정 디코딩 프로세스를 수행할 수 있다. 에러 정정 디코딩 프로세스의 결과에 따라, ECC(138)는 예를 들어 에러 정정 성공/실패 신호와 같은 신호를 출력할 수 있다. 에러 비트의 수가 정정 가능한 에러 비트의 임계치를 초과하면, ECC(138)는 에러 비트를 정정하지 못하고, 에러 정정 실패 신호를 출력할 수 있다.The ECC 138 may detect and correct an error 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, the ECC 138 may output a signal such as, for example, an error correction success/failure signal. If the number of error bits exceeds the threshold of correctable error bits, the ECC 138 may not 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 LDPC (low density parity check) code (code), BCH (Bose, Chaudhuri, Hocquenghem) code, turbo code (turbo code), Reed-Solomon code (Reed-Solomon code), convolution code (convolution code) ), recursive systematic code (RSC), trellis-coded modulation (TCM), and block coded modulation (BCM) can be used to perform error correction. However, the ECC 138 is not limited to a specific structure. The ECC 138 may include all circuits, modules, systems, or devices 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 such 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, in particular a NAND flash memory, the memory interface 142 generates a control signal for the memory device 150 and is provided 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 the overall operation of the memory system 110 . The firmware may be referred to as a Flash Translation Layer (FTL). In addition, 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 the flash translation 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, the program command, the read command, and the erase command provided by the processor 134 to the memory device 150 may be distinguished from the commands provided by the host 102 to the memory system 110 , an internal program command, They are 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 on 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. It may include actions and the like.

메모리(144)는 메모리 시스템(110) 및 컨트롤러(130)의 동작 메모리로서의 역할을 수행할 수 있으며, 메모리 시스템(110) 및 컨트롤러(130)의 구동을 위한 데이터를 저장할 수 있다. 컨트롤러(130)는 호스트(102)로부터의 요청에 응하여 메모리 장치(150)가 리드, 프로그램, 이레이즈 동작을 수행하도록 메모리 장치(150)를 제어할 수 있다. 컨트롤러(130)는 메모리 장치(150)로부터 독출되는 데이터를 호스트(102)로 제공할 수 있으며, 호스트(102)로부터 제공되는 데이터를 메모리 장치(150)에 저장할 수 있다. 메모리(144)는 컨트롤러(130)와 메모리 장치(150)가 이러한 동작을 수행하는 데 필요한 데이터를 저장할 수 있다.The memory 144 may serve as an operating memory of the memory system 110 and the controller 130 , and may store data for driving the memory system 110 and the controller 130 . 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 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 the 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)와 데이터를 입출력하기 위한 메모리 인터페이스를 가질 수 있다.The memory 144 may be implemented as a volatile memory. For example, the memory 144 may be implemented as a static random access memory (SRAM), a dynamic random access memory (DRAM), or the like. The memory 144 may be disposed inside or outside the controller 130 . 1 illustrates a memory 144 disposed within a controller 130 . In an embodiment, the memory 144 may be implemented as an external volatile memory device, and the memory 144 may have a memory interface for inputting/outputting data to and from the controller 130 .

도 1을 참조하여 설명된 것과 같이, 메모리 장치(150)는 에러 히스토리 버퍼(152)를 포함할 수 있다. 에러 히스토리 버퍼(152)는 메모리 장치(150)를 구성하는 비휘발성 메모리의 일부에 해당할 수 있다.As described with reference to FIG. 1 , the memory device 150 may include an error history buffer 152 . The error history buffer 152 may correspond to a part of a 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 flash memory, for example a non-volatile memory such as a NAND flash memory. However, the memory device 150 includes a phase change random access memory (PCRAM), a resistive random access memory (RRAM (ReRAM)), a ferroelectrics random access memory (FRAM), and a spin injection magnetic field. Memory (STT-RAM (STT-MRAM): Spin Transfer Torque Magnetic Random Access Memory) may be implemented as any one of the memories.

플래시 메모리 장치는 메모리 셀 트랜지스터들로 구성된 메모리 셀 어레이에 데이터를 저장할 수 있다. 플래시 메모리 장치는 메모리 다이, 플레인, 메모리 블록 및 페이지 계층 구조를 가질 수 있다. 하나의 메모리 다이는 한 번에 하나의 커맨드를 수신할 수 있다. 플래시 메모리는 복수의 메모리 다이를 포함할 수 있다. 하나의 메모리 다이는 복수의 플레인을 포함할 수 있으며, 상기 복수의 플레인은 상기 메모리 다이가 수신한 커맨드를 병렬로 처리할 수 있다. 각 플레인은 복수의 메모리 블록을 포함할 수 있다. 메모리 블록은 이레이즈 동작의 최소 단위일 수 있다. 하나의 메모리 블록은 복수의 페이지를 포함할 수 있다. 페이지는 라이트 동작의 최소 단위일 수 있다.The flash memory device may store data in a memory cell array including memory cell transistors. A flash memory device may have a memory die, plane, memory block, and page hierarchy. 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 write 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 buffer 152 will be described in detail with reference to FIG. 4 .

도 3은 메모리 장치(150) 내의 메모리 셀 어레이의 예시적인 구성을 나타낸 회로도이다.3 is a circuit diagram illustrating an exemplary configuration of a memory cell array in the 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 , the memory block 330 that may correspond to any one of the plurality of memory blocks 152 , 154 , and 156 included in the memory device 150 of the memory system 110 includes a plurality of bit lines BL0 to BLm. A plurality of cell strings 340 connected to -1) may be included. 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 the corresponding bit lines BL0 to BLm-1, respectively. For example, as shown in FIG. 3 , the first cell string may be connected to the first bit line BL0 , and the last cell string may be connected to the last bit line BLm-1. For reference, in FIG. 3, 'DSL' denotes a drain selection line, 'SSL' denotes a source selection line, and 'CSL' denotes a common source line.

도 3은 NAND 플래시 메모리 셀들을 도시하고 있으나, 본 발명은 이에 한정되지 않는다. 상기 메모리 셀들은 NOR 플래시 메모리 셀들일 수 있다. 또한, 메모리 장치(150)는 전하 저장층으로서 전도성 플로팅 게이트를 포함하는 플래시 메모리 장치 또는 전하 저장층이 절연막으로 구성된 차지 트랩형 플래시(CTF, Charge Trap Flash) 메모리 장치일 수도 있다.3 illustrates NAND flash memory cells, 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 a program voltage, a read voltage, and a pass voltage to be supplied to the word lines according to an operation mode. The 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, and may select one of the word lines of the selected memory block, the word line The voltage may be provided to the selected word line and may be provided to the unselected word line if necessary.

메모리 장치(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 bitlines) or column pairs (or bitline 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 for storing 1-bit data, a multi-level cell (MLC) memory block for storing multi-bit data, and the like. The SLC memory blocks may include a plurality of pages implemented as memory cells storing one bit 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 as memory cells that store data of multiple bits, 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 may 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 a word line WL1. The memory cells may be accessed in units of pages by the voltage supply 310 and the read/write circuit 320 .

도 4는 에러 히스토리 버퍼(152)를 상세히 설명하기 위한 도면이다.4 is a diagram for describing the error history buffer 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 each page 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 the file system of the operating system of the host 102 . The read command or 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 the logical address from the host 102 into a physical address with reference to the map data.

시스템 영역은 시스템 데이터를 저장할 수 있는 영역을 지칭한다. 시스템 데이터는 메모리 시스템(110)의 관리를 위한 데이터로서 펌웨어 코드, 맵 데이터, 에러 히스토리 데이터 등을 포함할 수 있다. 상기 시스템 영역은 논리 주소를 사용하여 액세스될 수 없다.The system area refers to an area in which system data can be stored. The system data is data for management of the memory system 110 and may include firmware codes, 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 buffer 152 . The error history buffer 152 may be designated as physical addresses within a predetermined range. For example, a predetermined one of the memory blocks included in the memory device 150 may be allocated as the error history buffer 152 . The memory block allocated as the error history buffer 152 may be an SLC memory block having higher reliability and faster access speed than the MLC memory block.

호스트(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 remove the error history data of the memory system 110 , the host 102 provides a Field Firmware Update (FFU) command to the memory system 110 to There is a way to delete all data and reinstall the firmware (FW). When all of the system data is deleted, not only the error history data but also the data causing the error may be removed. If the error cause data is removed, it may be difficult for the host 102 to reproduce the error occurrence of the memory system 110 . Accordingly, when the host 102 removes the error history data using the FFU command, the 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 the error history data from among the system data by using the error history clear command. Even if the error history data of the memory system 110 is removed, the error cause data can be maintained, so that the manufacturer can easily reproduce the error occurrence of the memory system 110 . In addition, the memory system 110 may store error history data for the reproduced error in the error history buffer 152 . Accordingly, the manufacturer can easily perform a 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 may be stored in the error history buffer 152 .

메모리 시스템(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 referred to as 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 the error history data, and each column corresponds to a bit of each byte.

에러 히스토리 디렉토리는 32바이트의 헤더 및 복수의 에러 히스토리 엔트리들을 포함할 수 있다.The error history directory may include a header of 32 bytes and a plurality of error history 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) 필드는 전송될 수 있는 에러 히스토리 디렉토리 리스트의 바이트 수를 나타낼 수 있다.The header may include a plurality of fields. A vendor identifier (T10 VENDOR IDENTIFICATION) field of the 0th to 7th bytes may include manufacturer information of the memory system 110 . The version (VERSION) field of the eighth byte may indicate the version and format of the error history data. The error history source (EHS_SOURCE) field, the searched error history (EHS_RETRIEVED) field, and the clear support (CLR_SUP) field of the ninth byte are fixed to '0' in the UFS device and may be fields that are not used effectively. The tenth to twenty-ninth bytes may be reserved fields. The DIRECTORY LENGTH field of the 30th to 31st bytes may indicate the number of bytes of the error history directory list that can be transmitted.

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

본 발명의 실시 예에 따르면, 호스트(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 the 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)에 기초하여 정의될 수 있다.The 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 for 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 (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 performed by the memory system 110 on the internal buffer in response to the read buffer command READ BUFFER.

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

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

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

도 7은 리드 버퍼 커맨드(READ BUFFER)의 모드 값에 따라 메모리 시스템(110)에서 수행되는 동작을 나타내는 테이블이다. 7 is a table illustrating an operation performed in the memory system 110 according to a mode value 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 refer to the read buffer command READ BUFFER designated as the error history read mode.

UFS 사양에서 모드 값 '1Dh' 내지 '1Fh'는 예비된(reserved) 값일 수 있다. In the UFS specification, 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 buffer 152 . The host 102 may control the memory system 110 to delete all or part of the error history data by providing the read buffer command READ BUFFER 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 the error history clear command to the memory system 110 , data to be removed among the 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 a buffer area designated according to a buffer ID BUFFER ID of a read buffer command READ BUFFER.

에러 히스토리 버퍼(152)에 저장되는 에러 히스토리 엔트리들 각각은 정해진 버퍼 ID(BUFFER ID)로 지정될 수 있다. 예를 들어, 에러 히스토리 엔트리들 각각은 '10h' 내지 'EFh'의 버퍼 ID 값들 중 어느 하나로 지정될 수 있다. 구현에 따라, 에러 히스토리 엔트리가 단지 몇 개의 에러 히스토리 엔트리를 포함하는 경우 '10h' 내지 'EFh'의 버퍼 ID 값들 중 일부만이 유효하게 사용될 수도 있다. Each of the error history entries stored in the error history buffer 152 may be designated by a predetermined buffer ID (BUFFER ID). For example, each of the error history entries may be designated as any one of buffer ID values of '10h' to 'EFh'. Depending on the implementation, only some of the buffer ID values of '10h' to 'EFh' may be used effectively when the error history entry includes only a few error history 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 that is an error history clear command designating a valid buffer ID (BUFFER ID) to the memory system 110 . The host 102 may instruct the memory system 110 to clear only the error history entry corresponding to the buffer ID (BUFFER ID) by providing the specific error history clear command. The memory system 110 may clear the error history entry by removing data included in the designated error history entry.

본 발명의 실시 예에 따르면, 에러 히스토리 엔트리들 전부를 지정하는 버퍼 ID(BUFFER ID)가 정의될 수 있다. 도 8의 예에서, 에러 히스토리 엔트리들 전부를 지정하는 버퍼 ID(BUFFER ID)는 UFS 사양에서 예비된 버퍼 ID 값인 'FDh'로 정의될 수 있다. According to an embodiment of the present invention, a buffer ID (BUFFER ID) designating all of the error history entries may be defined. In the example of FIG. 8 , a buffer ID (BUFFER ID) designating all of the error history 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 the buffer ID 'FDh' to the memory system 110 to obtain all the error history data stored in the error history buffer 152 .

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

도 9a는 특정 에러 히스토리 클리어 커맨드의 CDB를 예시한다.9A illustrates the 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 entry corresponding to a buffer ID '10h', an operation code (OPERATION CODE) '3Ch', a mode (MODE) '1Dh', a buffer ID A CDB including a (BUFFER ID) '10h', a buffer offset (BUFFER OFFSET) '00h', and an ALLOCATION LENGTH '8000h' may be provided to the memory system 110 . The values of the buffer offset BUFFER OFFSET and ALLOCATION LENGTH shown in FIG. 9A are merely examples, and the present invention is not limited thereto. For example, the host 102 may specify a predetermined maximum length for an error history entry as the ALLOCATION LENGTH.

도 9b는 전체 에러 히스토리 클리어 커맨드의 CDB를 예시한다.9B illustrates the CDB of the Clear Full 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 is a CDB including an operation code '3Ch', a mode (MODE) '1Dh', and a buffer ID (BUFFER ID) 'FDh' to obtain all of the error history data. may be provided as the memory system 110 . In the all error history clear command, the buffer offset (BUFFER OFFSET) and the ALLOCATION LENGTH values 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 entries included in the error history buffer 152 by performing steps S1004 to S1016 in response to the error history clear command.

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

단계 S1006에서, 메모리 장치(150)는 상기 내부 리드 커맨드에 응하여 에러 히스토리 버퍼(152)에 저장된 에러 히스토리 디렉토리를 컨트롤러(130)의 메모리(144)로 제공할 수 있다.In operation S1006 , the memory device 150 may provide the error history directory stored in the error history buffer 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, when the error history read command is a specific error history read command, the processor 134 may remove data of an error history entry corresponding to a buffer ID (BUFFER ID) included in the command from the error history directory. have.

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

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

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

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

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

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

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

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

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

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

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

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

상기 특정 에러 히스토리 클리어 커맨드가 처리된 이후 호스트(102)가 에러 히스토리 리드 커맨드를 사용하여 버퍼 ID '10h'에 해당하는 에러 히스토리 엔트리를 리드하는 경우, 호스트(102)는 클리어-마크 데이터를 획득할 수 있다. 제조사는 상기 클리어-마크 데이터를 참조하면, 상기 에러 히스토리 엔트리가 호스트(102)에 의해 비워졌다는 것을 확인할 수 있다.When the host 102 reads the error history 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 acquires clear-mark data. can By referring to the clear-mark data, the manufacturer can confirm that the error history entry has been cleared by the host 102 .

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

도 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 area of the error history buffer 152 shown on the right side of FIG. 11B exemplifies data stored in the error history buffer 152 after the clear all error history command illustrated in FIG. 9B is processed. Referring to FIG. 11B , all error history entries may be cleared, and clear-mark data may be overwritten in all entries. Data in the header may be maintained.

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

본 발명의 실시 예에 따르면, 호스트(102)는 에러 히스토리 리드 커맨드를 사용하여 메모리 시스템(110)으로부터 에러 히스토리 데이터를 획득한 후에 에러 히스토리 클리어 커맨드를 사용하여 메모리 시스템(110)의 에러 히스토리 엔트리를 클리어할 수 있다. 메모리 시스템(110)이 에러 히스토리 리드 커맨드에 응하여 에러 히스토리 엔트리를 클리어하더라도, 에러 히스토리 데이터를 제외한 나머지 시스템 데이터는 시스템 영역에 유지될 수 있다. According to an embodiment of the present invention, the host 102 obtains error history data from the memory system 110 using the error history read command and then uses the clear error history command to read the error history entry of the memory system 110 . can be cleared Even if the memory system 110 clears the error history 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 the 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 entry is cleared, the memory system 110 may store new error history data corresponding to the reproduced error in the error history entry. Accordingly, the host 102 can easily perform a failure analysis of the memory system 110 by using the clear error history command.

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

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

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

단계 S1214에서, 메모리 시스템(110)은 상기 에러 히스토리 리드 커맨드에 응하여 호스트(102)로 에러 히스토리 데이터를 제공할 수 있다.In operation S1214 , the memory system 110 may provide error history data to the host 102 in response to the error history read command.

에러 히스토리 버퍼(152)는 에러 히스토리 데이터의 로 데이터(raw data)를 저장할 수 있다. 메모리 시스템(110)은 암호화기(232)를 이용하여 로 데이터를 암호화하고, 암호화된 데이터를 호스트(102)로 제공할 수 있다.The error history buffer 152 may store raw data of the error history data. The memory system 110 may encrypt the raw data using the encryptor 232 and provide the encrypted data to the host 102 .

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

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

상기 에러 히스토리 데이터가 유효한 데이터인 경우(단계 S1216에서, "YES"), 호스트(102)는 단계 S1218에서 메모리 시스템(110)으로부터 획득된 에러 히스토리 데이터를 사용하여 메모리 시스템(110)의 불량 분석을 수행할 수 있다. 상기 획득된 에러 히스토리 데이터가 암호화된 데이터인 경우, 상기 데이터는 메모리 시스템(110)의 제조사에 의해 복호될 수 있다.If the error history data is valid data (“YES” in step S1216), the host 102 performs a failure analysis of the memory system 110 using the error history data obtained from the memory system 110 in step S1218. can be done When the obtained error history data is encrypted data, the data may be decrypted by the manufacturer of the memory system 110 .

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

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

단계 S1234에서, 메모리 시스템(110)은 에러 히스토리 클리어 커맨드를 정상 수신하였음을 알리는 신호를 데이터 인 UPIU(DATA IN UPIU)를 통해 호스트(102)로 제공할 수 있다.In operation 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 operation S1236 , the memory system 110 may clear at least one error history entry in the error history buffer 152 in response to the clear error history command. An operation of the memory system 110 to clear at least one error history entry in response to the clear error history command has been described in detail with reference to FIGS. 10 to 11B .

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

메모리 시스템(110)은 에러 히스토리 엔트리가 클리어된 이후 재구동될 수 있다. 메모리 시스템(110)의 재구동 시 새로운 에러가 발생하면 컨트롤러(130)는 상기 클리어된 에러 히스토리 엔트리에 새로운 에러 히스토리 데이터를 저장할 수 있다. 예를 들어, 컨트롤러(130)는 에러 히스토리 버퍼(152)의 데이터를 메모리(144)로 로드하고, 에러 히스토리 버퍼(152)를 이레이즈할 수 있다. 그리고, 컨트롤러(130)는 상기 로드된 데이터에 포함된 클리어-마크 데이터를 새로 발생한 에러에 대한 데이터로 수정하고, 상기 수정된 데이터를 에러 히스토리 버퍼(152)에 프로그램함으로써 새로운 에러 히스토리 데이터를 저장할 수 있다. The memory system 110 may be restarted after the error history 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 entry. For example, the controller 130 may load data from the error history buffer 152 into the memory 144 and erase the error history buffer 152 . Then, the controller 130 may store the new error history data by correcting 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 buffer 152 . have.

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

제1 예로, 메모리 시스템(110)의 제조사는 메모리 시스템(110)을 재구동함으로써 에러 발생을 재현하고, 상기 재현된 에러를 분석하기 위해 메모리 시스템(110)으로 에러 히스토리 리드 커맨드를 제공할 수 있다.As a first example, the manufacturer of the memory system 110 may reproduce the error occurrence by re-driving the memory system 110 , and provide 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, a customer may provide the memory system 110 as a manufacturer of the memory system 110 while reporting an error occurrence of the memory system 110 included in the data processing system 100 . The manufacturer may complete failure analysis using the error history data obtained 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. After the memory system 110 is restarted, the customer company may provide the memory system 110 back to the manufacturer while reporting a new error occurrence. The manufacturer may provide an error history read command to the memory system 110 . When the manufacturer obtains valid error history data from the memory system 110 , the manufacturer may determine the acquired data as error history data for a new error after the memory system 110 is returned to the customer. The manufacturer may re-analyze the failure of the memory system 110 based on the error reported by the customer and the error history data.

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

Claims (20)

데이터 처리 시스템에 있어서,
에러 히스토리 버퍼를 포함하고, 내부에서 발생한 에러에 연관된 에러 히스토리 데이터를 상기 에러 히스토리 버퍼에 저장하는 메모리 시스템; 및
상기 메모리 시스템으로 에러 히스토리 리드 커맨드를 제공함으로써 상기 메모리 시스템으로부터 상기 에러 히스토리 데이터를 획득하고, 상기 획득된 에러 히스토리 데이터에 기초하여 상기 메모리 시스템의 불량 분석(failure analysis)을 수행하며, 상기 메모리 시스템으로 에러 히스토리 클리어 커맨드를 제공함으로써 상기 메모리 시스템이 상기 에러 히스토리 버퍼의 적어도 일부를 클리어하도록 제어하는 호스트를 포함하고,
상기 에러 히스토리 버퍼는 상기 호스트에서 사용되는 논리 주소로 액세스될 수 없는 메모리 영역인
데이터 처리 시스템.
A data processing system comprising:
a memory system including an error history buffer and storing error history data related to an internally generated error in the error history buffer; and
Obtaining the error history data from the memory system by providing an error history read command to the memory system, performing failure analysis of the memory system based on the obtained error history data, to the memory system a host controlling the memory system to clear at least a portion of the error history buffer by providing an error history clear command;
The error history buffer is a memory area that cannot be accessed with a logical address used by the host.
data processing system.
제1항에 있어서,
상기 에러 히스토리 클리어 커맨드는
모드가 에러 히스토리 클리어 모드로 지정된 리드 버퍼 커맨드이고,
상기 에러 히스토리 클리어 모드는
SCSI(Small Computer System Interface) 커맨드인 상기 리드 버퍼 커맨드의 예비된(reserved) 모드 값에 대응하는
데이터 처리 시스템.
According to claim 1,
The error history clear command is
The mode is a read buffer command specified as the error history clear mode,
The error history clear mode is
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 buffer is
a plurality of error history entries;
the host is
controlling the memory system to clear the one error history entry by providing the error history clear command including a buffer identifier (ID) value corresponding to any one of the error history entries to the memory system
data processing system.
제3항에 있어서,
상기 에러 히스토리 클리어 커맨드의 CDB(Command Descriptor Block)는
동작 코드 '3Ch' 및 모드 '1Dh'를 포함하고, 버퍼 ID '10h' 내지 'EFh' 중 어느 하나를 포함하는
데이터 처리 시스템.
4. The method of claim 3,
The command descriptor block (CDB) of the error history clear command is
Including operation code '3Ch' and mode '1Dh', including any one of buffer IDs '10h' to 'EFh'
data processing system.
제1항에 있어서,
상기 에러 히스토리 버퍼는
복수의 에러 히스토리 엔트리들을 포함하고,
상기 호스트는
상기 복수의 에러 히스토리 엔트리들 모두를 지정하기 위한 버퍼 ID 값을 포함하는 에러 히스토리 클리어 커맨드를 상기 메모리 시스템으로 제공함으로써 상기 복수의 에러 히스토리 엔트리들 모두를 클리어하도록 상기 메모리 시스템을 제어하는고,
상기 버퍼 ID 값은
상기 에러 히스토리 클리어 커맨드의 예비된 버퍼 ID 값인
데이터 처리 시스템.
According to claim 1,
The error history buffer is
a plurality of error history entries;
the host is
controlling the memory system to clear all of the plurality of error history entries by providing an error history clear command to the memory system that includes a buffer ID value for designating all of the plurality of error history entries;
The buffer ID value is
The reserved buffer ID value of the clear error history command is
data processing system.
제5항에 있어서,
상기 에러 히스토리 클리어 커맨드의 CDB는
동작 코드 '3Ch', 모드 '1Dh' 및 버퍼 ID 'FDh'를 포함하는
데이터 처리 시스템.
6. The method of claim 5,
The CDB of the error history clear command is
containing action code '3Ch', mode '1Dh' and buffer ID 'FDh'
data processing system.
제1항에 있어서,
상기 에러 히스토리 버퍼는
복수의 에러 히스토리 엔트리들을 포함하고,
상기 메모리 시스템은
상기 복수의 에러 히스토리 엔트리들 중 적어도 하나를 지정하는 상기 에러 히스토리 클리어 커맨드에 응하여 상기 에러 히스토리 버퍼의 데이터를 내부 휘발성 메모리로 로드하고, 상기 에러 히스토리 버퍼를 이레이즈하고, 상기 로드된 데이터로부터 상기 지정된 에러 히스토리 엔트리에 대응하는 데이터를 제거함으로써 상기 로드된 데이터를 수정하고, 상기 수정된 데이터를 상기 에러 히스토리 버퍼에 프로그램하는
데이터 처리 시스템.
According to claim 1,
The error history buffer is
a plurality of error history entries;
the memory system
load data in the error history buffer into an internal volatile memory in response to the clear error history command specifying at least one of the plurality of error history entries, erase the error history buffer; correcting the loaded data by removing data corresponding to the error history entry, and programming the modified data into the error history buffer
data processing system.
제1항에 있어서,
상기 에러 히스토리 버퍼는 복수의 에러 히스토리 엔트리들을 포함하고,
상기 메모리 시스템은
상기 복수의 에러 히스토리 엔트리들 중 적어도 하나를 지정하는 상기 에러 히스토리 클리어 커맨드에 응하여 상기 에러 히스토리 버퍼의 데이터를 내부 휘발성 메모리로 로드하고, 상기 에러 히스토리 버퍼를 이레이즈하고, 상기 로드된 데이터로부터 상기 지정된 에러 히스토리 엔트리에 대응하는 데이터의 적어도 일부를 클리어-마크 데이터로 덮어쓰기함으로써 상기 로드된 데이터를 수정하고, 상기 수정된 데이터를 상기 에러 히스토리 버퍼에 프로그램함으로써 상기 지정된 에러 히스토리 엔트리를 클리어하는
데이터 처리 시스템.
According to claim 1,
The error history buffer includes a plurality of error history entries,
the memory system
load data in the error history buffer into an internal volatile memory in response to the clear error history command specifying at least one of the plurality of error history entries, erase the error history buffer; correcting the loaded data by overwriting at least a portion of data corresponding to the error history entry with clear-mark data, and clearing the specified error history entry by programming the corrected data into the error history buffer
data processing system.
제8항에 있어서,
상기 메모리 시스템은
상기 에러 히스토리 클리어 커맨드가 수행된 후 재구동 시에 내부에 새로운 에러가 발생하면 상기 클리어된 에러 히스토리 엔트리에 새로운 에러 히스토리 데이터를 저장하는
데이터 처리 시스템.
9. The method of claim 8,
the memory system
and storing new error history data in the cleared error history entry when a new error occurs during restarting after the error history clear command is executed.
data processing system.
제9항에 있어서,
상기 메모리 시스템은
상기 에러 히스토리 버퍼의 데이터를 내부 휘발성 메모리로 로드하고, 상기 에러 히스토리 버퍼를 이레이즈하고, 상기 로드된 데이터에서 상기 클리어된 에러 히스토리 엔트리에 해당하는 데이터를 상기 새로운 에러 히스토리 데이터로 덮어쓰기함으로써 상기 로드된 데이터를 수정하고, 상기 수정된 데이터를 상기 에러 히스토리 버퍼에 저장함으로써 상기 클리어된 에러 히스토리 엔트리에 새로운 에러 히스토리 데이터를 저장하는
데이터 처리 시스템.
10. The method of claim 9,
the memory system
The load by loading data of the error history buffer into an internal volatile memory, erasing the error history buffer, and overwriting data corresponding to the cleared error history entry in the loaded data with the new error history data correcting old data and storing new error history data in the cleared error history entry by storing the corrected data in the error history buffer.
data processing system.
제10항에 있어서,
상기 호스트는
상기 메모리 시스템의 재구동 이후에 에러 히스토리 리드 커맨드를 상기 메모리 시스템으로 더 제공하고, 상기 메모리 시스템로부터 유효한 에러 히스토리 데이터를 획득한 경우 상기 획득된 에러 히스토리 데이터에 기초하여 상기 새로 발생한 에러의 발생 원인을 분석하는
데이터 처리 시스템.
11. The method of claim 10,
the host is
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 obtained from the memory system, the cause of the newly generated error is determined based on the obtained error history data. to analyze
data processing system.
제8항에 있어서,
상기 호스트는
상기 에러 히스토리 리드 커맨드에 응하여 획득된 에러 히스토리 데이터가 상기 클리어-마크 데이터에 해당하는 경우, 호스트에 의해 에러 히스토리 버퍼가 클리어된 것으로 판단하고 불량 분석을 종료하는
데이터 처리 시스템.
9. The method of claim 8,
the host is
When the error history data obtained in response to the error history read command corresponds to the clear-mark data, it is determined that the error history buffer is cleared by the host and the failure analysis is terminated.
data processing system.
제1항에 있어서,
상기 메모리 시스템은
복수의 메모리 블록들을 포함하고,
상기 에러 히스토리 버퍼는 상기 복수의 메모리 블록들 중 어느 하나에 대응하는
데이터 처리 시스템.
According to claim 1,
the memory system
comprising a plurality of memory blocks;
The error history buffer 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 UFS (Universal Flash Storage) device.
data processing system.
메모리 시스템에 있어서,
에러 히스토리 버퍼를 포함하는 메모리 장치; 및
호스트로부터의 에러 히스토리 클리어 커맨드에 응하여 상기 에러 히스토리 버퍼의 적어도 일부를 클리어하는 컨트롤러를 포함하고,
상기 에러 히스토리 버퍼는 상기 호스트에서 사용되는 논리 주소로 액세스될 수 없는 메모리 영역인
메모리 시스템.
In the memory system,
a memory device including an error history buffer; and
a controller for clearing at least a portion of the error history buffer in response to a clear error history command from a host;
The error history buffer is a memory area that cannot be accessed with a logical address used by the host.
memory system.
제15항에 있어서,
상기 에러 히스토리 클리어 커맨드는
모드가 에러 히스토리 클리어 모드로 지정된 리드 버퍼 커맨드이고,
상기 에러 히스토리 클리어 모드는
SCSI(Small Computer System Interface) 커맨드인 상기 리드 버퍼 커맨드의 예비된(reserved) 모드 값에 대응하는
메모리 시스템.
16. The method of claim 15,
The error history clear command is
The mode is a read buffer command specified as the error history clear mode,
The error history clear mode is
corresponding to the reserved mode value of the read buffer command, which is a SCSI (Small Computer System Interface) command.
memory system.
제15항에 있어서,
상기 에러 히스토리 버퍼는
복수의 에러 히스토리 엔트리들을 포함하고,
상기 에러 히스토리 클리어 커맨드는
상기 에러 히스토리 엔트리들 중 어느 하나에 대응하는 버퍼 ID 값을 포함하는 특정 에러 히스토리 클리어 커맨드인
메모리 시스템.
16. The method of claim 15,
The error history buffer is
a plurality of error history entries;
The error history clear command is
A specific error history clear command including a buffer ID value corresponding to any one of the error history entries.
memory system.
제17항에 있어서,
상기 특정 에러 히스토리 클리어 커맨드의 CDB(Command Descriptor Block)는
동작 코드 '3Ch' 및 모드 '1Dh'를 포함하고, 버퍼 ID '10h' 내지 'EFh' 중 어느 하나를 포함하는
메모리 시스템.
18. The method of claim 17,
The command descriptor block (CDB) of the specific error history clear command is
Including operation code '3Ch' and mode '1Dh', including any one of buffer IDs '10h' to 'EFh'
memory system.
제15항에 있어서,
상기 에러 히스토리 버퍼는
복수의 에러 히스토리 엔트리들을 포함하고,
상기 에러 히스토리 클리어 커맨드는
상기 복수의 에러 히스토리 엔트리들 모두를 지정하기 위한 버퍼 ID 값을 포함하는 전체 에러 히스토리 클리어 커맨드인
메모리 시스템.
16. The method of claim 15,
The error history buffer is
a plurality of error history entries;
The error history clear command is
A clear full error history command including a buffer ID value for specifying all of the plurality of error history entries.
memory system.
제19항에 있어서,
상기 전체 에러 히스토리 클리어 커맨드의 CDB는
동작 코드 '3Ch', 모드 '1Dh' 및 버퍼 ID 'FDh'를 포함하는
메모리 시스템.
20. The method of claim 19,
The CDB of the all error history clear command is
containing action code '3Ch', mode '1Dh' and buffer ID 'FDh'
memory system.
KR1020210051191A 2021-04-20 2021-04-20 Memory system and data processing system KR20220144635A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210051191A KR20220144635A (en) 2021-04-20 2021-04-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
KR1020210051191A KR20220144635A (en) 2021-04-20 2021-04-20 Memory system and data processing system

Publications (1)

Publication Number Publication Date
KR20220144635A true KR20220144635A (en) 2022-10-27

Family

ID=83810120

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210051191A KR20220144635A (en) 2021-04-20 2021-04-20 Memory system and data processing system

Country Status (1)

Country Link
KR (1) KR20220144635A (en)

Similar Documents

Publication Publication Date Title
US10180805B2 (en) Memory system and operating method thereof
US10403369B2 (en) Memory system with file level secure erase and operating method thereof
KR20180076765A (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
KR20180123265A (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
KR20180135188A (en) Memory system and operating method of memory system
KR20190115310A (en) Memory system and operating method of memory system
KR20190113443A (en) Memory system and operating method of memory system
KR102475798B1 (en) Memory system and operating method of memory system
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
KR20200012494A (en) Controller and operation method thereof
KR20210077230A (en) Memory system and method for operation in memory system
KR20190069806A (en) Memory system and operating method of memory system
CN109918315B (en) Memory system and operation method thereof
KR20190001300A (en) Controller and memory system and operating method of memory system
CN111755061A (en) Apparatus and method for checking operation state of memory device in memory system
KR20190068197A (en) Memory system and operation method thereof
US11782782B2 (en) Memory system and data processing system
KR20220091955A (en) Memory system discarding method and memory system thereof