KR20220144635A - Memory system and data processing system - Google Patents
Memory system and data processing system Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0766—Error or fault reporting or storing
- G06F11/0787—Storage of error reports, e.g. persistent data storage, storage using memory protection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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/2048—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0036—Small computer system interface [SCSI]
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
Description
본 발명은 메모리 시스템 및 데이터 처리 시스템에 관한 것이다.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
2 is a diagram illustrating a
3 is a circuit diagram illustrating an exemplary configuration of a memory cell array in the
4 is a diagram for describing the
FIG. 5 is a diagram for explaining error history data that may be stored in the
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
12 is a diagram for explaining a transaction between the
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명하기로 한다.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
도 1을 참조하면, 데이터 처리 시스템(100)은, 호스트(102) 및 메모리 시스템(110)을 포함한다.Referring to FIG. 1 , a
호스트(102)는 전자 장치, 예를 들어 휴대폰, MP3 플레이어, 랩탑 컴퓨터 등과 같은 휴대용 전자 장치들, 또는 데스크탑 컴퓨터, 게임기, TV, 프로젝터 등과 같은 전자 장치들을 포함할 수 있다.The
호스트(102)는 적어도 하나의 운영 시스템(OS: operating system)을 포함할 수 있다. 운영 시스템은 호스트(102)의 기능 및 동작을 전반적으로 관리 및 제어하고, 데이터 처리 시스템(100) 또는 메모리 시스템(110)을 사용하는 사용자와 호스트(102) 간에 상호 동작을 제공한다. 운영 시스템은 사용자의 사용 목적 및 용도에 상응한 기능 및 동작을 지원하며, 호스트(102)의 이동성(mobility)에 따라 일반 운영 시스템과 모바일 운용 시스템으로 구분할 수 있다. 운영 시스템에서의 일반 운영 시스템 시스템은, 사용자의 사용 환경에 따라 개인용 운영 시스템과 기업용 운영 시스템으로 구분할 수 있다.The
메모리 시스템(110)은 호스트(102)의 요청에 응하여 호스트(102)의 데이터를 저장하기 위해 동작할 수 있다.The
호스트(102)는 정해진 인터페이스를 통해 메모리 시스템(110)과 통신할 수 있다. 예를 들어, 메모리 시스템(110)이 UFS(Universal Flash Storage) 장치인 경우 호스트(102)는 SCSI(Small Computer System Interface) 커맨드 세트를 기반으로 하는 UFS 인터페이스를 통해 메모리 시스템(110)과 통신할 수 있다. 그러나 본 발명이 이에 제한되는 것은 아니며, 본 발명은 SCSI 커맨드 세트를 사용하여 호스트(102)와 통신할 수 있는 다양한 메모리 시스템(110)에 적용될 수 있다.The
예를 들어, 메모리 시스템(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
메모리 시스템(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
메모리 시스템(110)은 메모리 장치(150) 및 컨트롤러(130)를 포함할 수 있다. 메모리 장치(150)는 호스트(102)를 위한 데이터를 저장할 수 있으며, 컨트롤러(130)는 메모리 장치(150)로의 데이터 저장을 제어할 수 있다.The
컨트롤러(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
다른 일 예로, 메모리 시스템(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
메모리 장치(150)는 비휘발성 메모리 장치일 수 있으며, 전원이 공급되지 않아도 저장된 데이터를 유지할 수 있다. 메모리 장치(150)는 프로그램 동작을 통해 호스트(102)로부터 제공된 데이터를 저장할 수 있고, 리드 동작을 통해 호스트(102)로 메모리 장치(150)에 저장된 데이터를 제공할 수 있다. 일 실시예에서, 메모리 장치(150)는 플래시 메모리가 될 수 있다.The
컨트롤러(130)는 호스트(102)로부터의 요청에 응하여 메모리 장치(150)를 제어할 수 있다. 예를 들어, 컨트롤러(130)는 메모리 장치(150)로부터 리드된 데이터를 호스트(102)로 제공하고, 호스트(102)로부터 제공된 데이터를 메모리 장치(150)에 저장할 수 있다. 이러한 동작을 위해, 컨트롤러(130)는 메모리 장치(150)의 리드(read), 프로그램(program), 이레이즈(erase) 등의 동작을 제어할 수 있다. 컨트롤러(130)는 메모리 장치(150)를 제어하기 위해 펌웨어(FW)를 구동할 수 있다.The
메모리 시스템(110)의 동작 중 에러가 발생할 수 있다. 컨트롤러(130)는 메모리 시스템(110)에서 에러가 발생하면, 발생한 에러에 대한 정보를 나타내는 에러 히스토리 데이터를 메모리 장치(150)에 저장할 수 있다. 메모리 장치(150)는 에러 히스토리 데이터를 저장하기 위한 전용 영역인 에러 히스토리 버퍼(152)를 포함할 수 있다. 에러 히스토리 버퍼(152)는 비휘발성 메모리로 구현될 수 있다. An error may occur during the operation of the
상기 에러가 발생한 메모리 시스템(110)은 추후에 메모리 시스템(110)의 제조사(vendor)에 의해 불량 분석(failure analysis)될 수 있다. 제조사는 에러 히스토리 버퍼(152)에 저장된 에러 히스토리 데이터를 획득하여 메모리 시스템(110)의 불량 분석에 활용할 수 있다. 예를 들어, 제조사는 메모리 시스템(110)의 에러 히스토리 데이터를 분석하고, 에러 발생을 반복 재현함으로써 에러의 원인이 되는 펌웨어 코드를 찾을 수 있다.The
에러 히스토리 버퍼(152)는 메모리 장치(150)에 포함될 수 있으며, 호스트(102)의 파일 시스템에서 사용되는 논리 어드레스로는 액세스될 수 없는 메모리 영역일 수 있다. 호스트(102)는 일반적인 리드 및 라이트 커맨드, 예를 들어 UFS 장치에서 지원하는 READ(10), WRITE(10) 커맨드를 사용하여서는 에러 히스토리 버퍼(152)에 액세스하지 못할 수 있다.The
메모리 시스템(110)은 호스트(102)가 에러 히스토리 버퍼(152)로부터 에러 히스토리 데이터를 획득할 수 있도록 하는 커맨드를 지원할 수 있다. 예를 들어, 메모리 시스템(110)이 UFS 3.0 장치인 경우, 메모리 시스템(110)은 호스트(102)로부터의 에러 히스토리 리드 커맨드에 응하여 에러 히스토리 버퍼(152)에 저장된 에러 히스토리 데이터를 호스트(102)로 제공할 수 있다. 제조사는 호스트(102)로 제공된 상기 에러 히스토리 데이터를 획득하고, 상기터에러 히스토리 데이터를 메모리 시스템(110)의 불량 분석을 위해 사용할 수 있다.The
만약 호스트(102)가 에러 히스토리 데이터를 획득한 후에도 에러 히스토리 버퍼(152)에 상기 데이터가 남아있다면, 상기 남아있는 데이터로 인해 호스트(102)가 메모리 시스템(110)의 불량 분석을 수행하기 어려워질 수 있다. 예를 들어, 메모리 시스템(110)은 불량 분석을 위해서 재구동되거나, 혹은 불량 분석이 완료된 후에 재구동될 수 있다. 메모리 시스템(110)의 재구동 중에 새로운 에러가 발생하면, 컨트롤러(130)는 새로운 에러 히스토리 데이터를 생성할 수 있다. If the data remains in the
에러 히스토리 버퍼(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
본 발명의 실시 예에 따르면, 메모리 시스템(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
도 2는 본 발명의 실시 예에 따른 메모리 시스템(110)을 나타내는 도면이다.2 is a diagram illustrating a
도 2에 도시된 컨트롤러(130) 및 메모리 장치(150)는 도 1을 참조하여 설명된 컨트롤러(130) 및 메모리 장치(150)와 대응할 수 있다.The
컨트롤러(130)는 서로 내부 버스를 통해 동작 가능하도록 연결된 호스트 인터페이스(132), 프로세서(134), ECC(error correction code, 138), 메모리 인터페이스(142) 및 메모리(144)를 포함할 수 있다.The
호스트 인터페이스(132)는 호스트(102)의 커맨드(command) 및 데이터를 처리하며, SCSI 커맨드 세트를 사용하여 호스트(102)와 통신하도록 구성될 수 있다. 예를 들어, 메모리 시스템(110)이 UFS 장치인 경우 호스트 인터페이스(132)는 UFS 인터페이스를 통해 호스트(102)와 통신할 수 있다.The
호스트 인터페이스(132)는 호스트(102)와 데이터를 주고받기 위해 호스트 인터페이스 계층(HIL: Host Interface Layer)이라 불리는 펌웨어(firmware)를 구동할 수 있다.The
호스트 인터페이스(132)는 암호화기(232)를 포함할 수 있다. 에러 히스토리 데이터는 메모리 시스템(110)의 기술적 정보(technical information)를 포함할 수 있다. 예를 들어, 상기 기술적 정보는 메모리 시스템(110)을 구성하는 하드웨어 및 펌웨어에 대한 정보를 포함할 수 있다. 상기 기술적 정보가 메모리 시스템(110)의 제조사 외부로 유출되지 않는 것이 바람직하다. 기술적 정보를 보호하기 위해, 호스트 인터페이스(132)는 에러 히스토리 버퍼(152)로부터 획득된 에러 히스토리 데이터를 암호화기(232)를 사용하여 암호화(encryption)하고, 암호화된 데이터를 호스트(102)로 제공할 수 있다. The
암호화된 데이터는 메모리 시스템(110)의 제조사에 의해서만 복호(decryption)될 수 있다. 따라서, 에러 히스토리 데이터가 외부로 유출되더라도 메모리 시스템(110)의 기술적 정보가 보호될 수 있다. 예를 들어, 데이터 처리 시스템(100)의 제조사나 A/S 센터를 비롯한 고객사도 데이터 처리 시스템(100)에 포함된 메모리 시스템(110)으로 에러 히스토리 클리어 커맨드를 제공하면 메모리 시스템(110)으로부터 에러 히스토리 데이터를 획득할 수 있다. 고객사가 상기 에러 히스토리 데이터를 획득하더라도 고객사는 상기 에러 히스토리 데이터를 복호할 수 없으므로, 에러 히스토리 데이터에 포함된 기술적 정보는 보호될 수 있다. 메모리 시스템(110)의 제조사는 고객사가 획득한 에러 히스토리 데이터를 원격으로 수신하면 메모리 시스템(110)을 직접 획득하지 않고 메모리 시스템(110)의 불량 분석을 수행할 수도 있다.The encrypted data may be decrypted only by the manufacturer of the
ECC(138)는 메모리 장치(150)로부터 독출되는 데이터에 포함된 에러를 검출 및 정정할 수 있다. 즉, ECC(138)는 ECC 인코딩 프로세스에서 사용된 ECC 코드를 통해 메모리 장치(150)로부터 독출된 데이터에 에러 정정 디코딩 프로세스를 수행할 수 있다. 에러 정정 디코딩 프로세스의 결과에 따라, ECC(138)는 예를 들어 에러 정정 성공/실패 신호와 같은 신호를 출력할 수 있다. 에러 비트의 수가 정정 가능한 에러 비트의 임계치를 초과하면, ECC(138)는 에러 비트를 정정하지 못하고, 에러 정정 실패 신호를 출력할 수 있다.The
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)는 오류 정정을 위한 회로, 모듈, 시스템, 또는 장치를 모두 포함할 수 있다.
메모리 인터페이스(142)는 컨트롤러(130)가 호스트(102)로부터의 요청에 응답하여 메모리 장치(150)를 제어하도록, 컨트롤러(130)와 메모리 장치(150) 간의 인터페이싱을 위한 메모리/스토리지(storage) 인터페이스로서의 역할을 할 수 있다. 메모리 장치(150)가 플래시 메모리, 특히 NAND 플래시 메모리인 경우, 메모리 인터페이스(142)는 메모리 장치(150)를 위한 제어 신호를 생성하고, 프로세서(134)의 제어 하에 메모리 장치(150)로 제공되는 데이터를 처리할 수 있다. 메모리 인터페이스(142)는 컨트롤러(130)와 메모리 장치(150) 사이의 커맨드 및 데이터를 처리하기 위한 인터페이스, 예를 들어 NAND 플래시 인터페이스로서 동작할 수 있다.The
메모리 인터페이스(142)는 플래시 인터페이스 계층(FIL: Flash Interface Layer)이라 불리는 펌웨어(firmware)를 구동할 수 있다.The
프로세서(134)는 메모리 시스템(110)의 전체적인 동작을 제어할 수 있다. 프로세서(134)는 메모리 시스템(110)의 전반적인 동작을 제어하기 위해 펌웨어를 구동할 수 있다. 상기 펌웨어는 플래시 변환 계층(FTL: Flash Translation Layer)으로 불릴 수 있다. 그리고, 프로세서(134)는 마이크로프로세서 또는 중앙 처리 장치(CPU) 등으로 구현될 수 있다.The
프로세서(134)는 플래시 변환 계층을 구동하여 호스트(102)로부터 수신된 요청에 대응하는 포그라운드 동작(foreground operation)을 수행할 수 있다. 예를 들어, 프로세서(134)는 호스트로부터의 라이트 커맨드에 응하여 메모리 장치(150)의 라이트 동작을 제어하고, 리드 커맨드에 응하여 메모리 장치(150)의 리드 동작을 제어할 수 있다. 한편, 프로세서(134)는 메모리 장치(150)를 제어하기 위해 프로그램 커맨드, 리드 커맨드 또는 이레이즈 커맨드를 제공할 수 있다. 이하에서, 프로세서(134)가 메모리 장치(150)로 제공하는 프로그램 커맨드, 리드 커맨드 및 이레이즈 커맨드는 호스트(102)가 메모리 시스템(110)으로 제공하는 커맨드들과 구별될 수 있도록 내부 프로그램 커맨드, 내부 리드 커맨드 및 내부 이레이즈 커맨드로 지칭된다.The
또한, 컨트롤러(130)는 마이크로프로세서 또는 중앙 처리 장치(CPU) 등으로 구현된 프로세서(134)를 통해 메모리 장치(150)에 대한 백그라운드 동작(background operation)을 수행할 수도 있다. 예를 들어, 메모리 장치(150)에 대한 백그라운드 동작은 가비지 컬렉션(GC: Garbage Collection) 동작, 웨어 레벨링(WL: Wear Leveling) 동작, 맵 플러시(map flush) 동작, 배드 블록 관리(bad block management) 동작 등을 포함할 수 있다.Also, the
메모리(144)는 메모리 시스템(110) 및 컨트롤러(130)의 동작 메모리로서의 역할을 수행할 수 있으며, 메모리 시스템(110) 및 컨트롤러(130)의 구동을 위한 데이터를 저장할 수 있다. 컨트롤러(130)는 호스트(102)로부터의 요청에 응하여 메모리 장치(150)가 리드, 프로그램, 이레이즈 동작을 수행하도록 메모리 장치(150)를 제어할 수 있다. 컨트롤러(130)는 메모리 장치(150)로부터 독출되는 데이터를 호스트(102)로 제공할 수 있으며, 호스트(102)로부터 제공되는 데이터를 메모리 장치(150)에 저장할 수 있다. 메모리(144)는 컨트롤러(130)와 메모리 장치(150)가 이러한 동작을 수행하는 데 필요한 데이터를 저장할 수 있다.The
메모리(144)는 상기 HIL, FIL 및 FTL과 같은 펌웨어(FW)를 구동하기 위한 펌웨어 코드를 저장할 수 있다.The
메모리(144)는 휘발성 메모리로 구현될 수 있다. 예를 들어, 메모리(144)는 정적 랜덤 액세스 메모리(SRAM: Static Random Access Memory), 또는 동적 랜덤 액세스 메모리(DRAM: Dynamic Random Access Memory) 등으로 구현될 수 있다. 메모리(144)는 컨트롤러(130) 내부 또는 외부에 배치될 수 있다. 도 1은 컨트롤러(130) 내부에 배치된 메모리(144)를 예시한다. 일 실시예에서, 메모리(144)는 외부 휘발성 메모리 장치로 구현될 수 있으며, 상기 메모리(144)는 컨트롤러(130)와 데이터를 입출력하기 위한 메모리 인터페이스를 가질 수 있다.The
도 1을 참조하여 설명된 것과 같이, 메모리 장치(150)는 에러 히스토리 버퍼(152)를 포함할 수 있다. 에러 히스토리 버퍼(152)는 메모리 장치(150)를 구성하는 비휘발성 메모리의 일부에 해당할 수 있다.As described with reference to FIG. 1 , the
본 발명의 일 실시예에 따르면, 메모리 장치(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
플래시 메모리 장치는 메모리 셀 트랜지스터들로 구성된 메모리 셀 어레이에 데이터를 저장할 수 있다. 플래시 메모리 장치는 메모리 다이, 플레인, 메모리 블록 및 페이지 계층 구조를 가질 수 있다. 하나의 메모리 다이는 한 번에 하나의 커맨드를 수신할 수 있다. 플래시 메모리는 복수의 메모리 다이를 포함할 수 있다. 하나의 메모리 다이는 복수의 플레인을 포함할 수 있으며, 상기 복수의 플레인은 상기 메모리 다이가 수신한 커맨드를 병렬로 처리할 수 있다. 각 플레인은 복수의 메모리 블록을 포함할 수 있다. 메모리 블록은 이레이즈 동작의 최소 단위일 수 있다. 하나의 메모리 블록은 복수의 페이지를 포함할 수 있다. 페이지는 라이트 동작의 최소 단위일 수 있다.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
도 3은 메모리 장치(150) 내의 메모리 셀 어레이의 예시적인 구성을 나타낸 회로도이다.3 is a circuit diagram illustrating an exemplary configuration of a memory cell array in the
도 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
도 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
메모리 장치(150)는 동작 모드에 따라 워드라인들로 공급하기 위한 프로그램 전압, 리드 전압, 패스 전압을 포함하는 워드라인 전압들을 제공하는 전압 공급부(310)를 더 포함할 수 있다. 전압 공급부(310)의 전압 생성 동작은 제어회로(미도시)에 의해 제어될 수 있다. 상기 제어회로의 제어 하에, 전압 공급부(310)는 메모리 셀 어레이의 메모리 블록들(또는 섹터들) 중 하나를 선택할 수 있고, 상기 선택된 메모리 블록의 워드라인들 중 하나를 선택할 수 있으며, 상기 워드라인 전압을 선택 워드라인으로 제공하고, 필요에 따라 비선택 워드라인으로 제공할 수 있다.The
메모리 장치(150)는 제어회로에 의해 제어되는 리드/라이트 회로(320)를 포함할 수 있다. 검증/정상 리드 동작 중에, 리드/라이트 회로(320)는 메모리 셀 어레이로부터 데이터를 리드하기 위해 감지 증폭기로서 동작할 수 있다. 프로그램 동작 중에, 리드/라이트 회로(320)는 상기 메모리 셀 어레이에 저장될 데이터에 따라 비트라인들을 구동하는 라이트 드라이버로서 동작할 수 있다. 프로그램 동작 중에, 리드/라이트 회로(320)는 버퍼(미도시)로부터 상기 메모리 셀 어레이에 저장될 데이터를 수신하고, 상기 수신된 데이터에 따라 비트라인들을 구동할 수 있다. 리드/라이트 회로(320)는 각각이 열(column)들(또는 비트라인들) 또는 열쌍(column pair)들(또는 비트라인 쌍들)과 대응하는 복수의 페이지 버퍼들(322 내지 326)을 포함할 수 있으며, 각각의 페이지 버퍼들(322 내지 326)은 복수의 래치들(미도시)을 포함할 수 있다.The
메모리 장치(150)는 1비트 데이터를 저장하는 싱글 레벨 셀(SLC) 메모리 블록, 복수 비트 데이터를 저장하는 멀티 레벨 셀(MLC) 메모리 블록 등을 포함하는 복수의 메모리 블록들을 포함할 수 있다. SLC 메모리 블록들은 한 메모리 셀에 한 비트 데이터를 저장하는 메모리 셀들로 구현되는 복수의 페이지들을 포함할 수 있다. SLC 메모리 블록들은 높은 내구성과 빠른 데이터 동작 성능을 가질 수 있다. 반면에, MLC 메모리 블록들은 한 메모리 셀에 둘 이상의 비트와 같은 복수 비트의 데이터를 저장하는 메모리 셀들로 구현되는 복수의 페이지들을 포함할 수 있다. 상기 MLC 메모리 블록들은 상기 SLC 메모리 블록들보다 큰 데이터 저장 공간을 가질 수 있다. 즉, 상기 MLC 메모리 블록들은 고집적화될 수 있다. The
메모리 블록(330)의 메모리 셀들은 복수의 워드 라인들(WL0 - WLn-1)과 연결될 수 있다. 하나의 워드 라인에 연결된 메모리 셀들은 페이지로 지칭될 수 있다. 도 2는 워드라인(WL1)에 연결된 메모리 셀들(MC1)을 포함하는 페이지(350)를 예시한다. 메모리 셀들은 전압 공급부(310) 및 리드/라이트 회로(320)에 의해 페이지 단위로 액세스될 수 있다.Memory cells of the
도 4는 에러 히스토리 버퍼(152)를 상세히 설명하기 위한 도면이다.4 is a diagram for describing the
도 4는 메모리 장치(150)의 메모리 영역을 개략적으로 나타낸다. 상기 메모리 영역은 물리 주소로 식별될 수 있다. 예를 들어, 메모리 장치(150)의 페이지마다 서로 다른 물리 주소가 할당될 수 있다. 메모리 영역은 유저 영역 및 시스템 영역을 포함할 수 있다. 4 schematically shows a memory area of the
유저 영역은 유저 데이터를 저장할 수 있는 영역으로서, 논리 주소를 사용하여 액세스될 수 있는 영역을 지칭한다. 예를 들어, 상기 논리 주소는 호스트(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
시스템 영역은 시스템 데이터를 저장할 수 있는 영역을 지칭한다. 시스템 데이터는 메모리 시스템(110)의 관리를 위한 데이터로서 펌웨어 코드, 맵 데이터, 에러 히스토리 데이터 등을 포함할 수 있다. 상기 시스템 영역은 논리 주소를 사용하여 액세스될 수 없다.The system area refers to an area in which system data can be stored. The system data is data for management of the
시스템 영역은 에러 히스토리 버퍼(152)를 포함할 수 있다. 에러 히스토리 버퍼(152)는 정해진 범위의 물리 주소들로 지정될 수 있다. 예를 들어, 메모리 장치(150)에 포함된 메모리 블록들 중 정해진 하나의 메모리 블록이 에러 히스토리 버퍼(152)로서 할당될 수 있다. 에러 히스토리 버퍼(152)로서 할당되는 메모리 블록은 MLC 메모리 블록보다 높은 신뢰성과 빠른 액세스 속도를 갖는 SLC 메모리 블록일 수 있다.The system area may include an
호스트(102)가 메모리 시스템(110)의 에러 히스토리 데이터를 제거하기 위해 제안된 방법의 일 예로, 호스트(102)가 메모리 시스템(110)으로 FFU(Field Firmware Update) 커맨드를 제공하여 시스템 영역의 시스템 데이터를 모두 삭제하고 펌웨어(FW)를 재설치하는 방법이 있다. 시스템 데이터가 모두 삭제되면 에러 히스토리 데이터뿐만 아니라 에러 발생의 원인이 되는 데이터도 제거될 수 있다. 에러 원인 데이터가 제거되면, 호스트(102)는 메모리 시스템(110)의 에러 발생을 재현하기 어려울 수 있다. 따라서, 호스트(102)가 FFU 커맨드를 사용하여 에러 히스토리 데이터를 제거하는 경우 메모리 시스템(110)의 불량 분석에 실패할 수 있다.As an example of a method proposed for the
본 발명의 실시 예에 따르면, 호스트(102)는 에러 히스토리 클리어 커맨드를 사용함으로써 시스템 데이터 중 에러 히스토리 데이터만을 제거할 수 있다. 메모리 시스템(110)의 에러 히스토리 데이터가 제거되더라도 에러 원인 데이터가 유지될 수 있으므로, 제조사는 메모리 시스템(110)의 에러 발생을 용이하게 재현할 수 있다. 그리고, 메모리 시스템(110)은 재현된 에러에 대한 에러 히스토리 데이터를 에러 히스토리 버퍼(152)에 저장할 수 있다. 따라서, 제조사는 메모리 시스템(110)의 불량 분석을 용이하게 수행할 수 있다.According to an embodiment of the present invention, the
이하에서, 도 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
메모리 시스템(110)이 UFS 장치에 해당하는 경우, 에러 히스토리 데이터는 에러 히스토리 디렉토리(error history directory)로 지칭되는 테이블에 포함될 수 있다. 그러나, 본 발명의 에러 히스토리 데이터는 도 5에 도시된 예로 제한되지 않는다.When the
도 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
복수의 에러 히스토리 엔트리들은 에러 히스토리 데이터를 저장할 수 있다. 각각의 에러 히스토리 엔트리에 저장되는 데이터의 포맷은 메모리 시스템(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
본 발명의 실시 예에 따르면, 호스트(102)는 상기 에러 히스토리 클리어 커맨드를 메모리 시스템(110)으로 제공함으로써 에러 히스토리 데이터의 전부 또는 일부를 삭제하도록 메모리 시스템(110)을 제어할 수 있다.According to an embodiment of the present invention, the
도 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
제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
도 7의 예에서, 모드 값 '02h'는 데이터 모드를 가리킨다. 데이터 모드에서 호스트(102)로 전송되는 데이터는 메모리 시스템(110)에 따라 다를 수 있다.In the example of FIG. 7 , the mode value '02h' indicates the data mode. Data transmitted to the
모드 값 '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
호스트(102)가 에러 히스토리 클리어 커맨드를 메모리 시스템(110)으로 제공할 때, 에러 히스토리 데이터 중 제거될 데이터를 지정할 수 있다. 호스트(102)가 제거될 데이터를 지정하는 방법의 예가 도 8을 참조하여 설명된다.When the
도 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
본 발명의 실시 예에 따르면, 호스트(102)는 메모리 시스템(110)으로 유효한 버퍼 ID(BUFFER ID)를 지정한 에러 히스토리 클리어 커맨드인 특정 에러 히스토리 클리어 커맨드를 제공할 수 있다. 호스트(102)는 상기 특정 에러 히스토리 클리어 커맨드를 제공함으로써 상기 버퍼 ID(BUFFER ID)에 대응하는 에러 히스토리 엔트리만을 클리어하도록 메모리 시스템(110)에 지시할 수 있다. 메모리 시스템(110)은 지정된 에러 히스토리 엔트리에 포함된 데이터를 제거함으로써 상기 에러 히스토리 엔트리를 클리어할 수 있다.According to an embodiment of the present invention, the
본 발명의 실시 예에 따르면, 에러 히스토리 엔트리들 전부를 지정하는 버퍼 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
그리고, 호스트(102)는 에러 히스토리 엔트리들 모두를 클리어하기 위해, 버퍼 ID 'FDh'를 지정한 에러 히스토리 클리어 커맨드인 전체 에러 히스토리 클리어 커맨드를 메모리 시스템(110)으로 제공할 수 있다. 호스트(102)는 상기 전체 에러 히스토리 클리어 커맨드를 제공함으로써 에러 히스토리 엔트리 모두를 클리어하도록 메모리 시스템(110)에 지시할 수 있다. 메모리 시스템(110)은 에러 히스토리 버퍼(152)에 저장된 모든 에러 히스토리 데이터를 제거함으로써 에러 히스토리 엔트리 모두를 클리어할 수 있다.In addition, the
도 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
도 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
이하에서, 호스트(102)로부터의 에러 히스토리 클리어 커맨드에 응하여 메모리 시스템(110)이 수행하는 동작이 도 10 내지 도 11b를 참조하여 설명된다.Hereinafter, an operation performed by the
도 10은 에러 히스토리 클리어 커맨드에 따른 메모리 시스템(110)의 동작을 나타내는 도면이다.10 is a diagram illustrating an operation of the
단계 S1002에서, 컨트롤러(130)는 호스트 인터페이스(132)를 통해 호스트(102)로부터 에러 히스토리 클리어 커맨드를 수신할 수 있다. 에러 히스토리 클리어 커맨드의 포맷은 도 6 내지 도 9b를 참조하여 상세히 설명되었다.In step S1002 , the
컨트롤러(130)는 상기 에러 히스토리 클리어 커맨드에 응하여 단계 S1004 내지 단계 S1016를 수행함으로써 에러 히스토리 버퍼(152)에 포함된 에러 히스토리 엔트리들의 전부 또는 일부를 클리어할 수 있다.The
단계 S1004에서, 컨트롤러(130)의 프로세서(134)는 에러 히스토리 버퍼(152)에 대한 내부 리드 커맨드를 제공할 수 있다. 상기 내부 리드 커맨드는 에러 히스토리 버퍼(152)를 가리키는 물리 주소를 포함할 수 있다.In operation S1004 , the
단계 S1006에서, 메모리 장치(150)는 상기 내부 리드 커맨드에 응하여 에러 히스토리 버퍼(152)에 저장된 에러 히스토리 디렉토리를 컨트롤러(130)의 메모리(144)로 제공할 수 있다.In operation S1006 , the
단계 S1008에서, 컨트롤러(130)는 메모리(144)에 저장된 에러 히스토리 디렉토리를 수정할 수 있다.In step S1008 , the
제1 예로, 상기 에러 히스토리 리드 커맨드가 특정 에러 히스토리 리드 커맨드인 경우 프로세서(134)는 상기 에러 히스토리 디렉토리에서 상기 커맨드에 포함된 버퍼 ID(BUFFER ID)에 대응하는 에러 히스토리 엔트리의 데이터를 제거할 수 있다.As a first example, when the error history read command is a specific error history read command, the
제2 예로, 상기 에러 히스토리 리드 커맨드가 전체 에러 히스토리 리드 커맨드인 경우 프로세서(134)는 상기 에러 히스토리 디렉토리에서 모든 에러 히스토리 엔트리들의 데이터를 제거할 수 있다.As a second example, when the error history read command is a full error history read command, the
구현에 따라, 프로세서(134)는 데이터가 제거된 에러 히스토리 엔트리에 정해진 데이터를 덮어쓰기할 수 있다. 예를 들어, 프로세서(134)는 에러 히스토리 엔트리의 모든 비트들에 '1'을 저장하거나, 정해진 비트들에 '1'을 저장할 수 있다. 상기 정해진 데이터는 상기 에러 히스토리 엔트리가 호스트(102)의 요청에 의해 클리어되었다는 것을 표시할 수 있다. 이하에서, 상기 정해진 데이터는 클리어-마크 데이터로 지칭된다.Depending on the implementation, the
단계 S1010에서, 컨트롤러(130)는 에러 히스토리 버퍼(152)에 대한 내부 이레이즈 커맨드를 메모리 장치(150)로 제공할 수 있다.In operation S1010 , the
단계 S1012에서, 메모리 장치(150)는 상기 내부 이레이즈 커맨드에 응하여 에러 히스토리 버퍼(152)에 해당하는 메모리 블록을 이레이즈할 수 있다.In operation S1012 , the
단계 S1014에서, 컨트롤러(130)는 상기 수정된 에러 히스토리 디렉토리를 에러 히스토리 버퍼(152)에 프로그램하기 위해 에러 히스토리 버퍼(152)에 대한 내부 프로그램 커맨드를 메모리 장치(150)로 제공할 수 있다.In operation S1014 , the
단계 S1016에서, 메모리 장치(150)는 상기 내부 프로그램 커맨드에 응하여 에러 히스토리 버퍼(152)에 상기 수정된 에러 히스토리 디렉토리를 프로그램할 수 있다. 에러 히스토리 버퍼(152)에 프로그램된 데이터에서 호스트(102)가 지정한 에러 히스토리 엔트리의 데이터는 제거되었으므로, 상기 지정된 에러 히스토리 엔트리가 클리어될 수 있다.In operation S1016 , the
에러 히스토리 클리어 커맨드가 수행된 이후에 에러 히스토리 버퍼(152)에 저장되는 데이터의 예가 도 11a 내지 도 11b를 참조하여 설명된다.An example of data stored in the
도 11a 내지 도 11b는 에러 히스토리 클리어 커맨드가 처리되기 전후의 에러 히스토리 버퍼(152) 영역을 도시하는 도면이다. 도 11a 내지 도 11b의 에러 히스토리 버퍼(152)에서 문자가 도시된 영역은 해당하는 데이터가 프로그램된 영역을 나타내고, 도트 패턴이 도시된 영역은 이레이즈된 영역을 나타내며, 빗금이 도시된 영역은 클리어-마크 데이터가 덮어쓰기된 영역을 나타낸다.11A to 11B are diagrams illustrating an area of the
도 11a는 특정 에러 히스토리 클리어 커맨드가 처리된 이후에 에러 히스토리 버퍼(152)에 저장되는 데이터를 설명하는 도면이다.11A is a view for explaining data stored in the
도 11a의 좌측에 도시된 에러 히스토리 버퍼(152) 영역은 에러 히스토리 클리어 커맨드가 처리되기 전에 에러 히스토리 버퍼(152)에 저장되는 데이터를 예시한다.The area of the
도 5를 참조하여 설명된 것과 같이, 에러 히스토리 버퍼(152)는 에러 히스토리 디렉토리의 헤더 및 복수의 에러 히스토리 엔트리들을 포함할 수 있다. 복수의 에러 히스토리 엔트리들 각각은 버퍼 ID(BUFFER ID)에 대응할 수 있으며, 복수의 에러 히스토리 엔트리들은 에러 히스토리 데이터를 저장할 수 있다.As described with reference to FIG. 5 , the
도 11a의 우측에 도시된 에러 히스토리 버퍼(152) 영역은 도 9a에 예시된 특정 에러 히스토리 클리어 커맨드가 처리된 후의 에러 히스토리 버퍼(152)에 저장되는 데이터를 예시한다. 도 9a의 에러 히스토리 클리어 커맨드는 버퍼 ID(BUFFER ID) '10h'을 지정할 수 있다. 도 11a를 참조하면, 버퍼 ID '10h'에 해당하는 에러 히스토리 엔트리에 포함된 데이터가 제거됨으로써 에러 히스토리 엔트리가 클리어되고, 클리어-마크 데이터가 덮어쓰기될 수 있다. 헤더 및 나머지 에러 히스토리 엔트리에 포함된 데이터는 유지될 수 있다. The area of the
상기 특정 에러 히스토리 클리어 커맨드가 처리된 이후 호스트(102)가 에러 히스토리 리드 커맨드를 사용하여 버퍼 ID '10h'에 해당하는 에러 히스토리 엔트리를 리드하는 경우, 호스트(102)는 클리어-마크 데이터를 획득할 수 있다. 제조사는 상기 클리어-마크 데이터를 참조하면, 상기 에러 히스토리 엔트리가 호스트(102)에 의해 비워졌다는 것을 확인할 수 있다.When the
도 11b는 전체 에러 히스토리 클리어 커맨드가 수행된 이후에 에러 히스토리 버퍼(152)에 저장되는 데이터를 설명하는 도면이다.FIG. 11B is a diagram for explaining data stored in the
도 11b의 좌측에 도시된 에러 히스토리 버퍼(152) 영역은 도 11a의 좌측에 도시된 에러 히스토리 버퍼(152) 영역과 동일할 수 있다.The area of the
도 11b의 우측에 도시된 에러 히스토리 버퍼(152) 영역은 도 9b에 예시된 전체 에러 히스토리 클리어 커맨드가 처리된 후의 에러 히스토리 버퍼(152)에 저장되는 데이터를 예시한다. 도 11b를 참조하면, 모든 에러 히스토리 엔트리들이 클리어되고, 모든 엔트리들에 클리어-마크 데이터가 덮어쓰기될 수 있다. 헤더의 데이터는 유지될 수 있다.The area of the
호스트(102)는 하나의 전체 에러 히스토리 클리어 커맨드를 사용하여 모든 에러 히스토리 엔트리들을 클리어할 수 있다. 상기 전체 에러 히스토리 클리어 커맨드가 처리된 이후, 호스트(102)가 에러 히스토리 리드 커맨드를 사용하여 상기 에러 히스토리 엔트리들로부터 클리어-마크 데이터를 획득한 경우, 모든 에러 히스토리 엔트리가 호스트(102)에 의해 비워졌다는 것을 확인할 수 있다.The
본 발명의 실시 예에 따르면, 호스트(102)는 에러 히스토리 리드 커맨드를 사용하여 메모리 시스템(110)으로부터 에러 히스토리 데이터를 획득한 후에 에러 히스토리 클리어 커맨드를 사용하여 메모리 시스템(110)의 에러 히스토리 엔트리를 클리어할 수 있다. 메모리 시스템(110)이 에러 히스토리 리드 커맨드에 응하여 에러 히스토리 엔트리를 클리어하더라도, 에러 히스토리 데이터를 제외한 나머지 시스템 데이터는 시스템 영역에 유지될 수 있다. According to an embodiment of the present invention, the
에러 원인 데이터를 포함하는 상기 나머지 시스템 데이터가 시스템 영역에 유지되므로 호스트(102)는 메모리 시스템(110)의 에러 발생을 용이하게 재현할 수 있다. 그리고, 에러 히스토리 엔트리가 클리어되므로 메모리 시스템(110)은 재현된 에러에 대응하는 새로운 에러 히스토리 데이터를 에러 히스토리 엔트리에 저장할 수 있다. 따라서, 호스트(102)는 에러 히스토리 클리어 커맨드를 사용함으로써 메모리 시스템(110)의 불량 분석을 용이하게 수행할 수 있다.Since the remaining system data including the error cause data is maintained in the system area, the
호스트(102)가 메모리 시스템(110)의 불량 분석을 수행하는 방법의 일 예가 도 12를 참조하여 설명된다.An example of how the
도 12는 호스트(102)와 메모리 시스템(110)의 상호작용(transaction)을 설명하는 도면이다.12 is a diagram for explaining a transaction between the
단계 S1212에서, 호스트(102)는 메모리 시스템(110)으로 에러 히스토리 리드 커맨드를 제공할 수 있다. 예를 들어, 호스트(102)는 메모리 시스템(110)의 불량 분석을 위한 에러 히스토리 데이터를 획득하기 위해 상기 에러 히스토리 리드 커맨드를 제공할 수 있다. 에러 히스토리 리드 커맨드의 예는 도 7을 참조하여 설명되었다.In operation S1212 , the
단계 S1214에서, 메모리 시스템(110)은 상기 에러 히스토리 리드 커맨드에 응하여 호스트(102)로 에러 히스토리 데이터를 제공할 수 있다.In operation S1214 , the
에러 히스토리 버퍼(152)는 에러 히스토리 데이터의 로 데이터(raw data)를 저장할 수 있다. 메모리 시스템(110)은 암호화기(232)를 이용하여 로 데이터를 암호화하고, 암호화된 데이터를 호스트(102)로 제공할 수 있다.The
단계 S1216에서, 호스트(102)는 상기 불량 분석을 수행하기 앞서 상기 에러 히스토리 데이터가 유효한 데이터인지 여부를 판단할 수 있다. 예를 들어, 호스트(102)는 에러 히스토리 데이터의 사이즈 값이 '0'인 경우 혹은 에러 히스토리 데이터가 클리어-마크 데이터에 해당하는 경우 상기 에러 히스토리 데이터를 무효한 데이터로 판단할 수 있다.In step S1216 , the
상기 에러 히스토리 데이터가 무효한 데이터인 경우(단계 S1216에서, "NO"), 호스트(102)는 메모리 시스템(110)에 에러가 발생하지 않은 것으로 판단하고 동작을 종료할 수 있다.When the error history data is invalid data (“NO” in step S1216 ), the
상기 에러 히스토리 데이터가 유효한 데이터인 경우(단계 S1216에서, "YES"), 호스트(102)는 단계 S1218에서 메모리 시스템(110)으로부터 획득된 에러 히스토리 데이터를 사용하여 메모리 시스템(110)의 불량 분석을 수행할 수 있다. 상기 획득된 에러 히스토리 데이터가 암호화된 데이터인 경우, 상기 데이터는 메모리 시스템(110)의 제조사에 의해 복호될 수 있다.If the error history data is valid data (“YES” in step S1216), the
단계 S1230에서, 호스트(102)는 메모리 시스템(110)의 에러 히스토리 엔트리들 중 적어도 어느 하나를 클리어할 수 있다. 단계 S1230는 단계 S1232 내지 단계 S1238을 포함할 수 있다.In operation S1230 , the
단계 S1232에서, 호스트(102)는 메모리 시스템(110)으로 에러 히스토리 클리어 커맨드를 제공할 수 있다. 에러 히스토리 클리어 커맨드의 예는 도 9a 및 도 9b를 참조하여 설명되었다.In operation S1232 , the
단계 S1234에서, 메모리 시스템(110)은 에러 히스토리 클리어 커맨드를 정상 수신하였음을 알리는 신호를 데이터 인 UPIU(DATA IN UPIU)를 통해 호스트(102)로 제공할 수 있다.In operation S1234 , the
단계 S1236에서, 메모리 시스템(110)은 에러 히스토리 클리어 커맨드에 응하여 에러 히스토리 버퍼(152)에서 적어도 하나의 에러 히스토리 엔트리를 클리어할 수 있다. 메모리 시스템(110)이 에러 히스토리 클리어 커맨드에 응하여 적어도 하나의 에러 히스토리 엔트리를 클리어하는 동작은 도 10 내지 도 11b를 참조하여 상세히 설명되었다.In operation S1236 , the
단계 S1238에서, 메모리 시스템(110)은 에러 히스토리 클리어 커맨드에 대한 완료 응답을 리스폰스 UPIU(RESPONSE UPIU)를 통해 호스트(102)로 제공할 수 있다.In operation S1238 , the
메모리 시스템(110)은 에러 히스토리 엔트리가 클리어된 이후 재구동될 수 있다. 메모리 시스템(110)의 재구동 시 새로운 에러가 발생하면 컨트롤러(130)는 상기 클리어된 에러 히스토리 엔트리에 새로운 에러 히스토리 데이터를 저장할 수 있다. 예를 들어, 컨트롤러(130)는 에러 히스토리 버퍼(152)의 데이터를 메모리(144)로 로드하고, 에러 히스토리 버퍼(152)를 이레이즈할 수 있다. 그리고, 컨트롤러(130)는 상기 로드된 데이터에 포함된 클리어-마크 데이터를 새로 발생한 에러에 대한 데이터로 수정하고, 상기 수정된 데이터를 에러 히스토리 버퍼(152)에 프로그램함으로써 새로운 에러 히스토리 데이터를 저장할 수 있다. The
호스트(102)는 재구동된 메모리 시스템(110)으로 에러 히스토리 리드 커맨드를 제공함으로써 상기 새로운 에러 히스토리 데이터를 획득할 수 있다. 메모리 시스템(110)의 제조사는 상기 새로운 에러 히스토리 데이터를 획득함으로써 메모리 시스템(110)이 재구동된 이후에 발생한 에러를 용이하게 분석할 수 있다.The
제1 예로, 메모리 시스템(110)의 제조사는 메모리 시스템(110)을 재구동함으로써 에러 발생을 재현하고, 상기 재현된 에러를 분석하기 위해 메모리 시스템(110)으로 에러 히스토리 리드 커맨드를 제공할 수 있다.As a first example, the manufacturer of the
제2 예로, 고객사가 데이터 처리 시스템(100)에 포함된 메모리 시스템(110)의 에러 발생을 리포트(report)하면서 메모리 시스템(110)을 메모리 시스템(110)의 제조사로 제공하는 경우가 있다. 상기 제조사는 메모리 시스템(110)으로부터 획득된 에러 히스토리 데이터를 사용하여 불량 분석을 완료하고, 에러 히스토리 클리어 커맨드를 제공함으로써 상기 에러 히스토리 데이터를 제거한 후 고객사로 메모리 시스템(110)을 반환할 수 있다. 메모리 시스템(110)이 재구동된 후 고객사가 새로운 에러 발생을 리포트하면서 상기 제조사로 상기 메모리 시스템(110)을 다시 제공할 수 있다. 상기 제조사는 메모리 시스템(110)으로 에러 히스토리 리드 커맨드를 제공할 수 있다. 상기 제조사는 메모리 시스템(110)으로부터 유효한 에러 히스토리 데이터를 획득한 경우, 상기 획득된 데이터를 메모리 시스템(110)이 고객사로 반환된 후에 새로 발생한 에러에 대한 에러 히스토리 데이터로 판단할 수 있다. 제조사는 고객사가 리포트한 에러 및 상기 에러 히스토리 데이터에 기초하여 메모리 시스템(110)의 불량 분석을 다시 수행할 수 있다.As a second example, a customer may provide the
이상 본 발명의 실시예에 따른 메모리 시스템 및 데이터 처리 시스템을 구체적인 실시 형태로서 설명하였으나, 이는 예시에 불과한 것으로서 본 발명은 이에 한정되지 않는 것이며, 본 명세서에 개시된 기초 사상에 따르는 최광의 범위를 갖는 것으로 해석되어야 한다. 당업자는 개시된 실시 형태들을 조합, 치환하여 적시되지 않은 실시 형태를 실시할 수 있으나, 이 역시 본 발명의 권리범위를 벗어나지 않는 것이다. 이외에도 당업자는 본 명세서에 기초하여 개시된 실시형태를 용이하게 변경 또는 변형할 수 있으며, 이러한 변경 또는 변형도 본 발명의 권리범위에 속함은 명백하다.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.
상기 에러 히스토리 클리어 커맨드는
모드가 에러 히스토리 클리어 모드로 지정된 리드 버퍼 커맨드이고,
상기 에러 히스토리 클리어 모드는
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.
상기 에러 히스토리 버퍼는
복수의 에러 히스토리 엔트리들을 포함하고,
상기 호스트는
상기 에러 히스토리 엔트리들 중 어느 하나에 대응하는 버퍼 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.
상기 에러 히스토리 클리어 커맨드의 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.
상기 에러 히스토리 버퍼는
복수의 에러 히스토리 엔트리들을 포함하고,
상기 호스트는
상기 복수의 에러 히스토리 엔트리들 모두를 지정하기 위한 버퍼 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.
상기 에러 히스토리 클리어 커맨드의 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.
상기 에러 히스토리 버퍼는
복수의 에러 히스토리 엔트리들을 포함하고,
상기 메모리 시스템은
상기 복수의 에러 히스토리 엔트리들 중 적어도 하나를 지정하는 상기 에러 히스토리 클리어 커맨드에 응하여 상기 에러 히스토리 버퍼의 데이터를 내부 휘발성 메모리로 로드하고, 상기 에러 히스토리 버퍼를 이레이즈하고, 상기 로드된 데이터로부터 상기 지정된 에러 히스토리 엔트리에 대응하는 데이터를 제거함으로써 상기 로드된 데이터를 수정하고, 상기 수정된 데이터를 상기 에러 히스토리 버퍼에 프로그램하는
데이터 처리 시스템.
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.
상기 에러 히스토리 버퍼는 복수의 에러 히스토리 엔트리들을 포함하고,
상기 메모리 시스템은
상기 복수의 에러 히스토리 엔트리들 중 적어도 하나를 지정하는 상기 에러 히스토리 클리어 커맨드에 응하여 상기 에러 히스토리 버퍼의 데이터를 내부 휘발성 메모리로 로드하고, 상기 에러 히스토리 버퍼를 이레이즈하고, 상기 로드된 데이터로부터 상기 지정된 에러 히스토리 엔트리에 대응하는 데이터의 적어도 일부를 클리어-마크 데이터로 덮어쓰기함으로써 상기 로드된 데이터를 수정하고, 상기 수정된 데이터를 상기 에러 히스토리 버퍼에 프로그램함으로써 상기 지정된 에러 히스토리 엔트리를 클리어하는
데이터 처리 시스템.
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.
상기 메모리 시스템은
상기 에러 히스토리 클리어 커맨드가 수행된 후 재구동 시에 내부에 새로운 에러가 발생하면 상기 클리어된 에러 히스토리 엔트리에 새로운 에러 히스토리 데이터를 저장하는
데이터 처리 시스템.
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.
상기 메모리 시스템은
상기 에러 히스토리 버퍼의 데이터를 내부 휘발성 메모리로 로드하고, 상기 에러 히스토리 버퍼를 이레이즈하고, 상기 로드된 데이터에서 상기 클리어된 에러 히스토리 엔트리에 해당하는 데이터를 상기 새로운 에러 히스토리 데이터로 덮어쓰기함으로써 상기 로드된 데이터를 수정하고, 상기 수정된 데이터를 상기 에러 히스토리 버퍼에 저장함으로써 상기 클리어된 에러 히스토리 엔트리에 새로운 에러 히스토리 데이터를 저장하는
데이터 처리 시스템.
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.
상기 호스트는
상기 메모리 시스템의 재구동 이후에 에러 히스토리 리드 커맨드를 상기 메모리 시스템으로 더 제공하고, 상기 메모리 시스템로부터 유효한 에러 히스토리 데이터를 획득한 경우 상기 획득된 에러 히스토리 데이터에 기초하여 상기 새로 발생한 에러의 발생 원인을 분석하는
데이터 처리 시스템.
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.
상기 호스트는
상기 에러 히스토리 리드 커맨드에 응하여 획득된 에러 히스토리 데이터가 상기 클리어-마크 데이터에 해당하는 경우, 호스트에 의해 에러 히스토리 버퍼가 클리어된 것으로 판단하고 불량 분석을 종료하는
데이터 처리 시스템.
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.
상기 메모리 시스템은
복수의 메모리 블록들을 포함하고,
상기 에러 히스토리 버퍼는 상기 복수의 메모리 블록들 중 어느 하나에 대응하는
데이터 처리 시스템.
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.
상기 메모리 시스템은 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.
상기 에러 히스토리 클리어 커맨드는
모드가 에러 히스토리 클리어 모드로 지정된 리드 버퍼 커맨드이고,
상기 에러 히스토리 클리어 모드는
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.
상기 에러 히스토리 버퍼는
복수의 에러 히스토리 엔트리들을 포함하고,
상기 에러 히스토리 클리어 커맨드는
상기 에러 히스토리 엔트리들 중 어느 하나에 대응하는 버퍼 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.
상기 특정 에러 히스토리 클리어 커맨드의 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.
상기 에러 히스토리 버퍼는
복수의 에러 히스토리 엔트리들을 포함하고,
상기 에러 히스토리 클리어 커맨드는
상기 복수의 에러 히스토리 엔트리들 모두를 지정하기 위한 버퍼 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.
상기 전체 에러 히스토리 클리어 커맨드의 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.
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) |
-
2021
- 2021-04-20 KR KR1020210051191A patent/KR20220144635A/en unknown
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 |