KR102229024B1 - 스스로 에러를 검출하고 로그를 저장할 수 있는 데이터 저장 장치와 이를 포함하는 시스템 - Google Patents

스스로 에러를 검출하고 로그를 저장할 수 있는 데이터 저장 장치와 이를 포함하는 시스템 Download PDF

Info

Publication number
KR102229024B1
KR102229024B1 KR1020140172462A KR20140172462A KR102229024B1 KR 102229024 B1 KR102229024 B1 KR 102229024B1 KR 1020140172462 A KR1020140172462 A KR 1020140172462A KR 20140172462 A KR20140172462 A KR 20140172462A KR 102229024 B1 KR102229024 B1 KR 102229024B1
Authority
KR
South Korea
Prior art keywords
storage device
host
data storage
storage area
log information
Prior art date
Application number
KR1020140172462A
Other languages
English (en)
Other versions
KR20160066973A (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 KR1020140172462A priority Critical patent/KR102229024B1/ko
Priority to US14/956,846 priority patent/US9875170B2/en
Publication of KR20160066973A publication Critical patent/KR20160066973A/ko
Application granted granted Critical
Publication of KR102229024B1 publication Critical patent/KR102229024B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • 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
    • 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
    • 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/1604Error detection or correction of the data by redundancy in hardware where the fault affects the clock signals of a processing unit and the redundancy is at or within the level of clock signal generation hardware
    • 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/1608Error detection by comparing the output signals of redundant hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/46Test trigger logic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

호스트로부터 작동 전압을 공급받아 상기 호스트와 통신하는 데이터 저장 장치는 제1저장 영역과 제2저장 영역을 포함하는 메모리와, 상기 메모리의 작동을 제어하는 메모리 컨트롤러를 포함한다. 상기 메모리 컨트롤러는 상기 호스트로부터 전송된 로그 시작 명령에 응답하여 상기 데이터 저장 장치의 작동 모드를 일반 모드로부터 디버깅 모드로 변경하고, 상기 호스트로부터 전송된 제1작동 명령을 실행하고, 상기 제1작동 명령의 실행 결과에 상응하는 제1로그 정보를 생성하고, 생성된 제1로그 정보를 상기 제1저장 영역에 저장하고, 상기 제1작동 명령의 실행 결과에 따라 이벤트가 발생하면 상기 제1저장 영역에 저장된 상기 제1로그 정보의 적어도 일부를 상기 제2저장 영역으로 카피한다.

Description

스스로 에러를 검출하고 로그를 저장할 수 있는 데이터 저장 장치와 이를 포함하는 시스템{DATA STORAGE DEVICE FOR SELF-DETECTING ERROR AND LOGGING OPERATION, AND SYSTEM HAVING THE SAME}
본 발명의 개념에 따른 실시 예는 데이터 저장 장치에 관한 것으로, 특히 스스로 에러를 검출하고 로그를 저장할 수 있는 데이터 저장 장치와 이를 포함하는 시스템에 관한 것이다.
메모리 장치는 각각이 데이터를 저장할 수 있는 복수의 메모리 셀들을 포함한다. 메모리 장치가 포함된 시스템이 정상적으로 작동하기 위해서는 데이터의 에러(error)를 최소화하여야 한다.
다만, 상기 복수의 메모리 셀들에서 발생할 수 있는 데이터의 오류는 여러가지 원인에 의해 발생할 수 있다. 불량 분석(failure analysis)은 메모리 장치의 이러한 불량의 원인을 찾아 개선하는 일련의 피드백 과정이다.
현재 불량 분석은 서로 다른 호스트 플랫폼, 평가 툴, 및 소프트웨어를 사용하여 변수가 크고 불량 유형이 많다. 또한, 상기 메모리 장치에 이상이 있어도 계속적으로 추가 평가가 진행되어 불량에 대한 이력이 남지 않아 분석이 점점 장기화 된다. 따라서, 상기 복수의 메모리 셀들에서 발생할 수 있는 불량의 유형을 정확히 판정하여 불량의 원인 분석을 효율적으로 할 필요성이 있다.
본 발명이 이루고자 하는 기술적인 과제는 불량 분석을 효율적으로 하기 위해, 스스로 에러를 검출하고 로그를 저장할 수 있는 데이터 저장 장치와 이를 포함하는 시스템에 관한 것이다.
본 발명의 실시 예에 따른 호스트로부터 작동 전압을 공급받아 상기 호스트와 통신하는 데이터 저장 장치의 작동 방법은 상기 호스트로부터 전송된 로그 시작 명령에 응답하여, 디버깅 모드로 변경되는 단계와, 상기 호스트로부터 제1작동 명령을 수신하고, 수신된 제1작동 명령을 실행하는 단계와, 상기 제1작동 명령의 실행 결과에 상응하는 제1로그 정보를 생성하는 단계와, 생성된 제1로그 정보를 메모리의 제1저장 영역에 저장하는 단계와, 상기 제1작동 명령의 실행 결과에 따라 이벤트가 발생하면, 상기 제1저장 영역에 저장된 상기 제1로그 정보의 적어도 일부를 상기 메모리의 제2저장 영역으로 카피하는 단계를 포함한다.
본 발명의 실시 예에 따라, 상기 이벤트는, 상기 제1작동 명령에 따라 상기 데이터 저장 장치에 저장된 데이터에 대한 에러가 검출될 때, 발생된다.
본 발명의 다른 실시 예에 따라, 상기 이벤트는, 상기 제1작동 명령에 상응하는 리드 카운트가 기준 리드 카운트보다 같거나 클 때, 발생한다.
본 발명의 또 다른 실시 예에 따라, 상기 이벤트는, 상기 제1작동 명령에 상응하는 리드 리클레임 카운트가 기준 리드 리클레임 카운트보다 같거나 클 때, 발생한다.
본 발명의 또 다른 실시 예에 따라, 상기 이벤트는, 상기 제1작동 명령에 따라 수행된 P/E 사이클들의 횟수가 기준 P/E 사이클들의 횟수보다 같거나 클 때, 발생한다.
본 발명의 또 다른 실시 예에 따라, 상기 이벤트는, 상기 제1작동 명령의 수행 결과에 따라 생성된 상기 데이터 저장 장치의 여유 블락의 개수가 기준 여유 블락의 개수보다 작을 때, 발생한다.
상기 데이터 저장 장치의 작동 방법은 상기 이벤트 발생 시점 이후에 상기 호스트로부터 제2작동 명령을 수신하는 단계와, 수신된 제2작동 명령을 실행하는 단계와, 상기 제2작동 명령의 실행 결과에 상응하는 제2로그 정보를 생성하는 단계와, 생성된 제2로그 정보를 상기 메모리의 상기 제1저장 영역에 저장하는 단계와, 상기 제2로그 정보의 적어도 일부를 상기 메모리의 상기 제2저장 영역에 저장하는 단계를 더 포함한다.
상기 제1저장 영역과 상기 제2저장 영역은 서로 다른 메모리 블록일 수 있다. 상기 제1작동 명령은 프로그램 명령, 리드 명령, 또는 이레이즈 명령일 수 있다.
호스트로부터 작동 전압을 공급받아 상기 호스트와 통신하는 데이터 저장 장치에 있어서, 상기 데이터 저장 장치는 제1저장 영역과 제2저장 영역을 포함하는 메모리와, 상기 메모리의 작동을 제어하는 메모리 컨트롤러를 포함하고, 상기 메모리 컨트롤러는 상기 호스트로부터 전송된 로그 시작 명령에 응답하여 상기 데이터 저장 장치의 작동 모드를 일반 모드로부터 디버깅 모드로 변경하고, 상기 호스트로부터 전송된 제1작동 명령을 실행하고, 상기 제1작동 명령의 실행 결과에 상응하는 제1로그 정보를 생성하고, 생성된 제1로그 정보를 상기 제1저장 영역에 저장하고, 상기 제1작동 명령의 실행 결과에 따라 이벤트가 발생하면 상기 제1저장 영역에 저장된 상기 제1로그 정보의 적어도 일부를 상기 제2저장 영역으로 카피한다.
본 발명의 실시 예에 따른 데이터 처리 시스템은 호스트와, 상기 호스트로부터 작동 전압을 공급받아 상기 호스트와 통신하는 데이터 저장 장치를 포함하고, 상기 데이터 저장 장치는 제1저장 영역과 제2저장 영역을 포함하는 메모리와, 상기 메모리의 작동을 제어하는 메모리 컨트롤러를 포함하고, 상기 메모리 컨트롤러는 상기 호스트로부터 전송된 로그 시작 명령에 응답하여 상기 데이터 저장 장치의 작동 모드를 일반 모드로부터 디버깅 모드로 변경하고, 상기 호스트로부터 전송된 제1작동 명령을 실행하고, 상기 제1작동 명령의 실행 결과에 상응하는 제1로그 정보를 생성하고, 생성된 제1로그 정보를 상기 제1저장 영역에 저장하고, 상기 제1작동 명령의 실행 결과에 따라 이벤트가 발생하면 상기 제1저장 영역에 저장된 상기 제1로그 정보의 적어도 일부를 상기 제2저장 영역으로 카피한다.
본 발명의 실시 예에 따른 데이터 저장 장치는 호스트의 작동 명령에 응답하여 상기 데이터 저장 장치의 에러를 스스로 감지할 수 있는 효과가 있다. 본 발명의 실시 예에 따른 데이터 저장 장치는, 상기 데이터 저장 장치에서 에러가 감지되면, 상기 작동 명령에 대한 로그를 별도로 저장할 수 있는 효과가 있다.
따라서, 본 발명의 실시 예에 따른 데이터 저장 장치는 불량 시점 전후의 관련 정보를 특정 공간에 저장할 수 있으므로, 불량 분석을 효율적으로 할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 데이터 처리 시스템의 개략적인 블록도이다.
도 2는 도 1에 도시된 데이터 처리 시스템의 작동의 일 실시 예를 설명하기 위한 개념도이다.
도 3은 도 1에 도시된 데이터 처리 시스템의 작동의 다른 실시 예를 설명하기 위한 개념도이다.
도 4는 도 1에 도시된 CPU에서 실행되는 펌웨어의 세부 블록도이다.
도 5는 본 발명의 실시 예에 따른 기준 횟수를 저장하는 테이블의 실시 예이다.
도 6은 도 2에 도시된 데이터 저장 장치에서 수행되는 작동의 실시 예를 설명하기 위한 개념도이다.
도 7은 도 1에 도시된 데이터 저장 장치를 포함하는 전자 장치의 일 실시 예를 나타낸다.
도 8은 도 1에 도시된 데이터 저장 장치를 포함하는 전자 장치의 다른 실시 예를 나타낸다.
도 9는 도 1에 도시된 데이터 저장 장치를 포함하는 전자 장치의 또 다른 실시 예를 나타낸다.
도 10은 도 1에 도시된 데이터 저장 장치를 포함하는 전자 장치의 또 다른 실시 예를 나타낸다.
도 11은 도 10에 도시된 전자 장치를 포함하는 데이터 처리 시스템의 블록도를 나타낸다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 작동, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 작동, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 데이터 처리 시스템의 개략적인 블록도이다. 도 1을 참조하면, 데이터 처리 시스템(100)은 인터페이스(110)를 통해 접속된 호스트(200)와 데이터 저장 장치(300)를 포함할 수 있다.
본 명세서에서 설명될 데이터 처리 시스템(100)은 서버 컴퓨터, PC(personal computer), 데스크 탑 컴퓨터, 랩-탑(lap-top) 컴퓨터, 워크스테이션 (workstation) 컴퓨터, NAS(network-attached storage(NAS)), 데이터 센터(data center), 인터넷 데이터 센터(internet data center(IDC)) 또는 모바일 컴퓨팅 장치로 구현될 수 있다.
예컨대, 상기 모바일 컴퓨팅 장치는 스마트폰, 태블릿(tablet) PC, 웨어러블 장치, 또는 모바일 인터넷 장치(mobile internet device(MID))로 구현될 수 있다.
호스트(200)는 데이터 저장 장치(300)로 작동 전압(들)을 공급할 수 있다. 또한, 호스트(200)는 로그 시작 명령과 작동 명령들을 인터페이스(110)를 통해 데이터 저장 장치(300)로 전송할 수 있다.
상기 로그 시작 명령은 데이터 저장 장치(300)의 작동 모드(mode of operation)를 일반 모드(normal mode)로부터 디버깅 모드(debugging mode)로 지정(또는 변경)하기 위한 명령일 수 있다. 상기 작동 명령들 각각은 데이터 저장 장치 (300)에 대한 테스트를 수행하기 위한 명령들일 수 있다.
호스트(200)는 데이터 처리 장치(300)의 데이터 처리 작동(예컨대, 프로그램 (program) 작동, 이레이즈(erase) 작동, 또는 리드(read) 작동)을 제어할 수 있다.
호스트(200)는 CPU(central processing unit; 210)와 제1인터페이스(220)를 포함할 수 있다. 도 1에 도시된 호스트(200)의 블록도는, 설명의 편의를 위해 예시적으로 도시된 것으로서, 본 발명의 기술적 사상이 도 1에 도시된 블록도에 한정되는 것은 아니다. 따라서, 호스트(200)는 CPU(210)와 제1인터페이스(220) 이외에 다른 구성 요소들(예컨대, 디스플레이 컨트롤러와 디스플레이)을 더 포함할 수 있다.
실시 예에 따라, 호스트(200)는 집적 회로(integrated circuit(IC)), 마더보드(motherboard), 또는 시스템 온 칩(system on chip(SoC))으로 구현될 수 있으나 이에 한정되는 것은 아니다. 다른 실시 예에 따라, 호스트(200)는 애플리케이션 프로세서(application processor(AP)) 또는 모바일(mobile) AP로 구현될 수 있다.
CPU(210)는 버스 구조(bus architecture; 201)를 통해 제1인터페이스(220)와 명령 및/또는 데이터를 주거나 받을 수 있다. 예컨대, 버스 구조(201)는 AMBA (Advanced Microcontroller Bus Architecture), AXI(AMBA Advanced eXtensible Interface), APB(Advanced Peripheral Bus), 또는 AHB(AMBA Advanced High-performance Bus)일 수 있으나 이에 한정되는 것은 아니다.
CPU(210)는 데이터 저장 장치(300)의 작동 모드를 일반 모드로부터 디버깅 모드로 변경하기 위한 로그 시작 명령과, 데이터 저장 장치(300)에 대한 테스트를 수행하기 위한 작동 명령들을 인터페이스(110)를 통해 데이터 저장 장치(300)로 전송할 수 있다. CPU(210)는 본 발명의 실시 예에 따른 작동들을 수행할 수 있는 프로그램(들)을 실행할 수 있는 프로세서를 의미할 수 있다.
제1인터페이스(220)는 인터페이스(110)를 통해 데이터 저장 장치(300)의 제2인터페이스(313)에 접속될 수 있다.
실시 예들에 따라, 각 인터페이스(110, 220, 및 313)는 PCIe(peripheral component interconnect express), SATA(serial advanced technology attachment), SATAe(SATA Express), SAS(serial attached small computer system interface(SCSI)), 또는 NVMe(Non-volatile memory express) 프로토콜을 지원할 수 있는 인터페이스로 구현될 수 있으나 이에 한정되는 것은 아니다.
데이터 저장 장치(300)는 메모리 컨트롤러(310)와 불휘발성 메모리 (nonvolatile memory(NVM); 330)를 포함할 수 있다.
데이터 저장 장치(300)는 플래시-기반 메모리 장치로 구현될 수 있으나 이에 한정되는 것은 아니다. 예컨대, 데이터 저장 장치(300)는 SSD(solid-state drive or solid-state disk), 임베디드 SSD(embedded SSD(eSSD)), 유니버셜 플래시 스토리지(universal flash storage(UFS)), 멀티미디어 카드(multimedia card(MMC)), 또는 임베디드 MMC(embedded MMC(eMMC))로 구현될 수 있으나 이에 한정되는 것은 아니다.
다른 실시 예에 따라, 데이터 저장 장치(300)는 하드 디스크 드라이브(hard disk drive(HDD))로 구현될 수도 있다. 데이터 저장 장치(300)는 호스트(200)에 접속되거나 분리될 수 있다. 실시 예에 따라, 데이터 저장 장치(300)는 메모리 모듈의 형태로 구현될 수 있다.
본 발명의 실시 예에 따른 데이터 저장 장치(300)는, 호스트(200)로부터 전송된 로그 시작 명령에 응답하여, 데이터 저장 장치(300)의 작동 모드를 설정(또는 변경)할 수 있는 레지스터(도 2의 REG)를 포함할 수 있다. 상기 레지스터는 SRAM 또는 SFR(special function register)로 구현될 수 있다.
실시 예에 따라, 데이터 저장 장치(300)는 상기 레지스터에 설정된 값에 따라 디버깅 모드로 설정될 수 있다. 데이터 저장 장치(300)가 디버깅 모드로 설정된 경우, 데이터 저장 장치(300)는 호스트(200)로부터 데이터 저장 장치(300)를 테스트하기 위한 작동 명령들 각각을 수신하고, 수신된 작동 명령들 각각을 실행하고, 실행 결과에 상응하는 로그 정보를 생성하고, 생성된 로그 정보를 NVM(330)에 저장할 수 있다.
메모리 컨트롤러(310)는 호스트(200)와 NVM(330) 사이에서 주고받는 명령 및/또는 데이터의 전송을 제어할 수 있다.
메모리 컨트롤러(310)는 제2인터페이스(313), CPU(315), RAM(317), 및 NVM 컨트롤러(321), 버퍼 컨트롤러(323), 버퍼(325), 및 암호화 엔진(319)을 포함할 수 있다.
제2인터페이스(313)는 인터페이스(110)를 통해 호스트(200)의 제1인터페이스 (220)에 접속될 수 있다.
CPU(315)는 버스 구조(311)를 통해 제2인터페이스(313), RAM(317), NVM 컨트롤러(321), 버퍼 컨트롤러(323), 버퍼(325), 및 암호화 엔진(319)의 작동들을 제어할 수 있다. CPU(315)는 본 발명의 실시 예에 따른 작동들을 수행할 수 있는 프로그램(들)을 실행할 수 있는 프로세서를 의미할 수 있다. 상기 프로그램은 데이터 저장 장치(300)가 스스로 에러를 검출하고 검출 결과에 상응하는 로그를 저장할 수 있는 명령어들을 실행할 수 있다.
예컨대, 제2인터페이스(313), RAM(317), NVM 컨트롤러(321), 버퍼 컨트롤러 (323), 버퍼(325), 및 암호화 엔진(319)은 버스 구조(311)를 통해 명령 및/또는 데이터를 주거나 받을 수 있다. 예컨대, 버스 구조(311)는 상술한 바와 같이 AMBA, AXI, APB, 또는 AHB일 수 있으나 이에 한정되는 것은 아니다.
RAM(317)은, CPU(315)에 의해 실행되는 프로그램의 제어에 따라, 데이터, 예컨대, NVM(330)에 대한 데이터 처리 작동(예컨대, 프로그램 작동, 리드 작동, 또는 이레이즈 작동)에서 발생하는 에러(또는 상기 에러를 발생하는 메모리 셀들의 위치들)에 대한 데이터 및/또는 상기 데이터 처리 작동에 상응하는 카운트 정보를 저장할 수 있다.
실시 예들에 따라, RAM(317)은 SRAM(static random access memory), 캐시 (cache), 또는 TCM(tightly coupled memory)로 구현될 수 있으나 이에 한정되는 것은 아니다.
도 1에서는 RAM(317)은 CPU(315)의 외부에 구현되어 있으나, 이에 한정되는 것은 아니다. 따라서, RAM(317)은 CPU(315)의 내부에 구현될 수도 있다.
NVM 컨트롤러(321)는, CPU(315)의 제어에 따라, 작동 명령들 각각에 상응하는 데이터 처리 작동을 수행하고, 상기 데이터 처리 작동이 완료될 때마다 로그 정보를 생성하고, 생성된 로그 정보를 NVM(330)에 저장할 수 있다.
실시 예에 따라, NVM(330)은 플래시-기반 메모리로 구현될 수 있으나 이에 한정되는 것은 아니다. 예컨대, 상기 플래시-기반 메모리는 NAND 타입 플래시 메모리 또는 NOR 타입 플래시 메모리로 구현될 수 있다. 상기 플래시-기반 메모리는 복수의 메모리 셀들과 상기 복수의 메모리 셀에 대한 액세스 작동(예컨대, 프로그램 작동 또는 리드 작동)을 제어할 수 있는 액세스 제어 회로를 포함할 수 있다. 상기 복수의 메모리 셀들 각각은 1-비트 또는 그 이상의 정보를 저장할 수 있다.
다른 실시 예들에 따라, NVM(330)은 EPROM(Electrically Erasable Programmable Read-Only Memory), MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torque MRAM), FRAM(Ferroelectric RAM), PRAM(Phase change RAM), 저항 메모리(Resistive RAM(RRAM)), 나노튜브 RRAM(Nanotube RRAM), 폴리머 RAM(Polymer RAM: PoRAM), 나노 부유 게이트 메모리(Nano Floating Gate Memory: NFGM), 홀로그래픽 메모리(holographic memory), 분자 전자 메모리 소자(Molecular Electronics Memory Device), 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory)로 구현될 수 있다.
NVM 컨트롤러(321)는 로그 정보를 NVM(350)의 제1저장 영역(331-1)에 저장할 수 있다. NVM 컨트롤러(321)는, 이벤트(event)가 발생할 때, 상기 로그 정보의 적어도 일부를 NVM(330)의 제2저장 영역(331-n)에 저장 또는 복사(copy)할 수 있다. 상기 이벤트의 발생 여부는 각 작동 명령의 실행 결과에 따라 결정될 수 있다.
도 2는 도 1에 도시된 데이터 처리 시스템의 작동의 일 실시 예를 설명하기 위한 개념도이다.
도 1과 도 2를 참조하면, 호스트(200)와 데이터 저장 장치(300)가 접속되면 (S110), 데이터 저장 장치(300)는 호스트(200)로부터 작동 전압(VL)을 공급받는다 (S111). 호스트(200)는 데이터 저장 장치(300)의 접속을 인식할 수 있다(S112). 그러나, 실시 예들에 따라 S110, S111, 및 S112의 순서는 다양하게 변경될 수 있다.
데이터 저장 장치(300)에 대한 테스트를 수행하기 전에, 호스트(200)의 CPU (210)는 로그 시작 명령(LSC)을 생성하고, 생성된 로그 시작 명령(LSC)을 데이터 저장 장치(300)로 전송할 수 있다(S114).
CPU(315)는, 로그 시작 명령(LSC)에 응답하여, 데이터 저장 장치(300)의 작동 모드를 설정하는 레지스터(REG)를 특정한 비트로 설정할 수 있다(S116). 실시 예들에 따라, 레지스터(REG)는 메모리 컨트롤러(310) 내부의 어디에라도 구현될 수 있다.
데이터 저장 장치(300)는 레지스터(REG)에 설정된 비트에 따라 디버깅 모드로 설정(또는 변경)될 수 있다(S118). 상기 비트는 하나 또는 그 이상의 데이터 값들을 포함할 수 있다.
데이터 저장 장치(300)가 디버깅 모드로 설정된 후, 호스트(200), 예컨대 CPU(210)는 데이터 저장 장치(300)를 테스트하기 위한 제1작동 명령(OC1)을 생성할 수 있다.
데이터 저장 장치(300)는 호스트(200)로부터 제1작동 명령(OC1)을 수신하고 (S120), 수신된 제1작동 명령(OC1)에 상응하는 데이터 처리 작동(예컨대, 프로그램 작동, 리드 작동, 또는 이레이즈 작동)을 수행할 수 있다(S122). 예컨대, 제1작동 명령(OC1)은 프로그램 명령, 리드 명령 또는 이레이즈 명령일 수 있으나 이에 한정되는 것은 아니다.
도 4는 도 1에 도시된 CPU에서 실행되는 펌웨어의 세부 블록도이다.
도 1, 도 2, 및 도 4를 참조하면, CPU(315)에 의해 실행되는 펌웨어(316)는 로그 정보 생성 모듈(327), 데이터 검증 모듈(329), 및 이벤트 발생 여부 판단 모듈(331)을 포함할 수 있다.
본 명세서에서의 모듈(module)이라 함은 본 명세서에서 설명되는 각 명칭에 따른 기능과 작동을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있다. 다시 말해, 모듈이란 본 발명의 기술적 사상을 수행하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.
도 4에서 도시된 각 모듈(327, 329, 및 331)은 컴퓨터 프로그램 코드 또는 명령어들(instructions)을 의미할 수 있다.
로그 정보 생성 모듈(327)은 데이터 저장 장치(300)에서 수행된 데이터 처리 작동 결과에 상응하는 제1로그 정보(LI1)를 생성할 수 있고(S124), 생성된 제1로그 정보(LI1)를 NVM(330)의 제1저장 영역(331-1)에 저장할 수 있다(S126).
로그 정보 생성 모듈(327)은 NVM(330)의 페이지들 각각에 대한 리드 카운트 (Read Count), 리드 리클레임 카운트(Read Reclaim Count), P/E 사이클들 (Program/Erase Cycles)의 횟수, 및/또는 여유 블락 카운트(Reserved Block Count)를 카운트하고, 카운트 결과에 상응하는 카운트 정보를 이용하여 제1로그 정보 (LI1)를 생성할 수 있다.
제1로그 정보(LI1)는 제1작동 명령(OC1)에 상응하는 명령(CMD), 작동 전압 (VL)에 상응하는 전압 레벨(Voltage Level), 리드 카운트(Read Count), 리드 리클레임 카운트(Read Reclaim Count), P/E 사이클들의 횟수, 및 여유 블락 카운트를 포함할 수 있다.
데이터 검증 모듈(329)은, 호스트(200)로부터 수신된 제1작동 명령(OC1)에 상응하는 데이터 처리 작동이 프로그램 작동일 경우, NVM(330)의 메모리 셀들에 저장된 데이터가 오염(corruption)되었는지 여부를 판단할 수 있다.
실시 예에 따라, 상기 데이터가 오염되었는지 여부는 상기 데이터가 NVM (330)의 메모리 셀들에 프로그램되기 이전의 데이터에 기초하여 프로그램이 완료된 이후의 데이터에 대한 에러 체크 방식으로 수행될 수 있다. 상기 에러 체크 방식으로는 순환 중복 검사(Cyclic Redundancy Check(CRC)) 방식일 수 있으나 이에 한정되는 것은 아니다.
좀더 구체적으로, 버퍼 컨트롤러(323)는 데이터가 NVM(330)의 메모리 셀들에 프로그램 되기 이전의 데이터에 상응하는 제1데이터를 버퍼(325)로 저장할 수 있다.
NVM 컨트롤러(321)는 프로그램이 완료된 이후의 데이터에 상응하는 제2데이터를 NVM(330)으로부터 리드하여 버퍼 컨트롤러(323)로 전송하고, 버퍼 컨트롤러 (323)는 버퍼(325)에 저장된 제1데이터에 기초하여 제2데이터에 대한 순환 중복 검사(CRC)를 하여 상기 제2데이터의 에러 발생 여부를 확인할 수 있다.
이벤트 발생 여부 판단 모듈(331)은 제1작동 명령(OC1)에 상응하는 데이터 처리 작동의 수행 결과에 따라 데이터 저장 장치(300)에서 이벤트가 발생했는지의 여부를 판단할 수 있다(S128).
실시 예에 따라, NVM(330)은 데이터 처리 작동에 대한 기준 횟수를 저장하기 위한 메모리 영역을 포함할 수 있다. 이 경우, NVM(300)의 각 페이지에 상응하는 기준 횟수는 테이블 형태로 상기 메모리 영역에 저장될 수 있다.
도 5는 본 발명의 실시 예에 따른 기준 횟수를 저장하는 테이블의 실시 예이다.
테이블(TABLE)에 예시적으로 도시된 바와 같이, 기준 횟수는 각 페이지 (PAGE1~PAGEn, n은 2 이상의 자연수)에 대한 데이터 처리 작동의 기준이 되는 리드 카운트(CN1-1~CN1-n), 리드 리클레임 카운트(CN2-1~CN2-n), P/E 사이클들의 횟수 (CN3-1~CN3-n), 및 여유 블락 카운트(CN4-1~CN4-n) 중에서 적어도 하나를 포함할 수 있다.
실시 예에 따라, 데이터 저장 장치(300)에서 리드 카운트(READ COUNT)와 리드 리클레임 카운트(READ RECLAIM COUNT)가 증가할수록 데이터에 대한 신뢰도가 떨어지기 때문에, 이벤트는, 제1작동 명령(OC1)에 상응하는 각 페이지에 대한 리드 카운트가 각 기준 리드 카운트(CN1-1~CN1-n)보다 같거나 클 때, 발생할 수 있다. 또한, 이벤트는, 제1작동 명령(OC1)에 상응하는 각 페이지에 대한 리드 리클레임 카운트가 각 기준 리드 리클레임 카운트(CN2-1~CN2-n)보다 같거나 클 때, 발생할 수 있다.
또한, P/E 사이클들이 수행된 횟수가 많을수록 NVM(330)에 저장된 데이터에 대한 신뢰성이 떨어지기 때문에, 이벤트는, 제1작동 명령(OC1)에 따라 수행된 P/E 사이클들의 횟수가 각 기준 P/E 사이클의 횟수(CN3-1~CN3-n)보다 같거나 클 때, 발생할 수 있다.
또한, 여유 블록은 배드 블록(bad block)의 생성에 대비하여 NVM(330) 내에 존재하는 여분 블록을 의미할 수 있다. 여유 블록의 개수는 데이터 저장 장치(300)의 기대 수명(expected life time)을 예측할 수 있기 때문에, 이벤트는, 데이터 저장 장치(300)의 여유 블록의 개수(즉, 여부 블록 카운트)가 각 기준 여유 블록의 개수 (CN4-1~CN4-n)보다 작을 때, 발생할 수 있다.
실시 예에 따라, 이벤트 발생 여부 판단 모듈(331)은, 데이터 검증 모듈 (329)에 의해 NVM(330)의 메모리 셀들에 저장된 데이터에서 에러가 발생한 것으로 판단할 때, 이벤트가 발생한 것으로 판단할 수 있다.
도 5에 도시된 바와 같이 본 발명의 실시 예에 따른 각 기준 횟수는 NVM (330)의 각 페이지에 대한 카운트로 나타낼 수 있으나, 이에 한정되는 것은 아니다. 예컨대, P/E 사이클들은 블록 단위로 관리될 수 있다.
다시 도 1과 도 2를 참조하면, NVM 컨트롤러(321)는, 제1작동 명령(OC1)의 실행 결과에 따라 이벤트가 발생한 것으로 판단되면(S128), 제1저장 영역(331-1)에 저장된 제1로그 정보(LI1)를 제2저장 영역(331-n)으로 카피(copy)할 수 있다 (S130).
실시 예에 따라, 제1저장 영역(331-1)에 저장된 제1로그 정보(LI1)가 제2저장 영역(331-n)으로 카피되기 이전에, NVM 컨트롤러(321)는 제1로그 정보(LI1)를 암호화 엔진(319)으로 전송할 수 있다.
암호화 엔진(319)에 의한 암호화 과정에서 암호키가 사용될 수 있고, 암호화 엔진(319)은 상기 암호키를 저장하기 위한 저장 매체(미도시)를 포함하고 상기 저장 매체를 액세스할 수 있다.
암호화 엔진(319)은 암호키를 이용하여 제1로그 정보(LI1)를 암호화하고, 암호화된 제1로그 정보를 NVM 컨트롤러(321)로 전송할 수 있다. NVM 컨트롤러(321)는 암호화된 제1로그 정보를 제2저장 영역(331-n)에 저장할 수 있다.
실시 예에 따라, 데이터 저장 장치(300)는, 호스트(200)로부터 수신된 제1작동 명령(OC1)에 응답하여, 제1응답(R1)을 호스트(200)로 전송할 수 있다(S132). 제1응답(R1)은 데이터 저장 장치(300)에서 실행된 제1작동 명령(OC1)의 결과에 따라 이벤트의 발생 여부, 즉, 데이터 저장 장치(300)에서 이상이 감지되었는지 여부를 나타내는 정보를 포함할 수 있다.
데이터 저장 장치(300)는 호스트(200)로부터 제2작동 명령(OC2)을 수신하고 (S134), 수신된 제2작동 명령(OC2)에 상응하는 데이터 처리 작동을 실행할 수 있다 (S136).
데이터 저장 장치(300)는 제2작동 명령(OC2)에 따라 수행된 데이터 처리 작동 결과에 상응하는 제2로그 정보(LI2)를 생성하고(S138), 생성된 제2로그 정보 (LI2)를 NVM(330)의 제1저장 영역(331-1)에 저장할 수 있다(S140).
실시 예에 따라, 데이터 저장 장치(300)는, 제2작동 명령(OC2)의 실행 결과에 따라 이벤트가 발생하면, 제1저장 영역(331-1)에 저장된 제2로그 정보(LI2)를 제2저장 영역(331-n)으로 카피할 수 있다(S142).
실시 예에 따라, 제1저장 영역(331-1)에 저장된 제2로그 정보(LI2)가 제2저장 영역(331-n)으로 카피되기 이전에, NVM 컨트롤러(321)는 제2로그 정보(LI2)를 암호화 엔진(319)으로 전송할 수 있다.
암호화 엔진(319)은 암호키를 이용하여 제2로그 정보(LI2)를 암호화하고, 암호화된 제2로그 정보를 NVM 컨트롤러(321)로 전송할 수 있다. NVM 컨트롤러(321)는 암호화된 제2로그 정보를 제2저장 영역(331-n)에 저장할 수 있다.
실시 예에 따라, 데이터 저장 장치(300)는, 호스트(200)로부터 수신된 제2작동 명령(OC2)에 응답하여, 제2응답(R2)을 호스트(200)로 전송할 수 있다(S144).
제2응답(R2)은 데이터 저장 장치(300)에서 수행된 제2작동 명령(OC2)에 따라 이벤트의 발생 여부, 즉, 데이터 저장 장치(300)에서 이상이 감지되었는지 여부를 나타내는 정보를 포함할 수 있다.
도 3은 도 1에 도시된 데이터 처리 시스템의 작동의 다른 실시 예를 설명하기 위한 개념도이다.
호스트(200)가 데이터 저장 장치(300)로 명령(CMD1)을 전송하는 단계(S142), 데이터 저장 장치(300)가 명령(CMD1)에 응답하여 데이터 저장 장치(300)의 상태를 해석하는 단계(S145), 해석 결과에 상응하는 응답(RES)을 호스트(200)로 전송하는 단계(S146), 및 응답들(R1과 R2)을 호스트(200)로 전송하지 않는 단계들(S132와 S144)을 제외하면, 도 3에 도시된 작동들은 도 2에 도시된 작동들과 실질적으로 동일 또는 유사하므로, 도 3에 도시된 작동들에 대한 상세한 설명은 생략한다.
실시 예에 따라, 명령(CMD1)은 로그 종료 명령일 수 있다. 데이터 저장 장치 (300)는 명령(CMD1)에 응답하여 데이터 저장 장치(300)의 디버깅 모드를 종료하고, 데이터 저장 장치(300)의 상태를 해석하고, 해석 결과에 상응하는 응답(RES)을 호스트(200)로 전송할 수 있다(S146).
도 6은 도 2에 도시된 데이터 저장 장치에서 수행되는 작동의 실시 예를 설명하기 위한 개념도이다.
도 1, 도 2 및 도 6을 참조하면, 데이터 저장 장치(300)는 호스트(200)로부터 수신된 작동 명령들 각각에 상응하는 데이터 처리 작동을 실행하고, 상기 데이터 처리 작동이 완료될 때마다 각 로그 정보(LI1~LIk; k는 2 이상의 자연수)를 제1저장 영역(331-1)에 저장할 수 있다.
로그 정보(LI4)의 생성에 관련된 작동 명령의 실행 결과에 따라 이벤트가 발생하면, NVM 컨트롤러(321)는 상기 이벤트가 발생한 시점 이전에 제1저장 영역 (331-1)에 저장된 로그 정보의 적어도 일부(예컨대, 제3로그 정보(LI3)와 제4로그 정보(LI4))를 제2저장 영역(331-n)으로 카피할 수 있다(S130 또는 S142).
실시 예에 따라, NVM 컨트롤러(321)는 상기 이벤트가 발생한 시점 이후에 제1저장 영역(331-1)에 저장된 로그 정보의 적어도 일부(예컨대, 제5로그 정보(LI5))를 제2저장 영역(331-n)으로 카피할 수 있다(S130 또는 S142).
제2저장 영역(331-n)은 데이터 저장 장치(300)의 내부 작동에 의해 생성된 정보를 저장할 수 있고, 호스트(200)의 명령에 의해 프로그램되거나 이레이즈될 수 없는 영역을 의미할 수 있으나 이에 한정되는 것은 아니다.
따라서, 데이터 저장 장치(300)는 이벤트가 발생한 시점 전후의 정보를 NVM (330)의 특정 공간에 저장할 수 있으므로, 호스트(200) 또는 데이터 저장 장치 (300)는 데이터 저장 장치(300)의 불량에 대한 분석을 효율적으로 관리할 수 있는 효과가 있다.
도 7은 도 1에 도시된 데이터 저장 장치를 포함하는 전자 장치의 일 실시 예를 나타낸다.
도 1과 도 7을 참조하면, 전자 장치(electronic device; 400)는 이동 전화기 (cellular/mobile phone), 스마트 폰(smart phone), 태블릿 PC(tablet personal computer), PDA(personal digital assistant), 비디오 게임 콘솔(video game console), 또는 휴대용(handheld) 통신 장치로 구현될 수 있다.
전자 장치(400)는 메모리 컨트롤러(310)와 불휘발성 메모리 장치(330)를 포함할 수 있다. 메모리 컨트롤러(310)는 프로세서(410)의 제어에 따라 불휘발성 메모리 장치(330)의 데이터 처리 작동, 예컨대 프로그램 작동(또는 라이트 작동), 이레이즈 작동, 또는 리드 작동을 제어할 수 있다.
불휘발성 메모리 장치(330)에 프로그램된 데이터는, 프로세서(410) 및/또는 메모리 컨트롤러(310)의 제어에 따라, 디스플레이(420)를 통하여 디스플레이될 수 있다. 디스플레이(420)는 TFT-LCD(thin film transistor-liquid crystal display), LED(light-emitting diode) 디스플레이, OLED(organic LED) 디스플레이, 또는 AMOLED(active matrix OLED) 디스플레이와 같은 평판 디스플레이(flat panel display)로 구현될 수 있다.
무선 송수신기(430)는 안테나(ANT)를 통하여 무선 신호를 주거나 받을 수 있다. 예컨대, 무선 송수신기(430)는 안테나(ANT)를 통하여 수신된 무선 신호를 프로세서(410)에서 처리될 수 있는 신호로 변경할 수 있다.
따라서, 프로세서(410)는 무선 송수신기(430)로부터 출력된 신호를 처리하고, 처리된 신호를 메모리 컨트롤러(310) 또는 디스플레이(420)로 전송할 수 있다. 본 발명의 실시 예에 따른 메모리 컨트롤러(310)는 프로세서(410)에 의하여 처리된 신호를 불휘발성 메모리 장치(330)에 프로그램할 수 있다.
또한, 무선 송수신기(430)는 프로세서(410)로부터 출력된 신호를 무선 신호로 변경하고, 변경된 무선 신호를 안테나(ANT)를 통하여 외부 장치로 출력할 수 있다.
입력 장치(440)는 프로세서(410)의 작동을 제어하기 위한 제어 신호 또는 프로세서(410)에 의하여 처리될 데이터를 입력할 수 있는 장치로서, 터치 패드(touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad), 또는 키보드로 구현될 수 있다.
프로세서(410)는 메모리 컨트롤러(310)로부터 출력된 데이터, 무선 송수신기 (430)로부터 출력된 데이터, 또는 입력 장치(440)로부터 출력된 데이터가 디스플레이(420)를 통하여 디스플레이될 수 있도록 디스플레이(420)의 작동을 제어할 수 있다.
실시 예에 따라, 불휘발성 메모리 장치(330)의 작동을 제어할 수 있는 메모리 컨트롤러(310)는 프로세서(410)의 일부로서 구현될 수 있고 프로세서(410)와 별도의 칩으로 구현될 수 있다. 이때, 프로세서(410)는 애플리케이션 프로세서로 구현될 수 있다.
도 8은 도 1에 도시된 데이터 저장 장치를 포함하는 전자 장치의 다른 실시 예를 나타낸다. 도 8에서는 설명의 편의를 위하여 전자 장치(500)와 호스트(530)를 함께 도시한다.
도 8에 도시된 전자 장치(500)는 메모리 카드(memory card) 또는 스마트 카드(smart card)로 구현될 수 있다. 디지털 정보를 저장하기 위하여 사용되는 메모리 카드는 PC 카드, MMC(multimedia card), e-MMC(embedded MMC), SD(secure digital) 카드, 또는 USB(universal serial bus) 플래시 드라이브(flash drive)를 포함한다.
메모리 카드와 같은 전자 장치(500)는 메모리 컨트롤러(310), 불휘발성 메모리 장치(330), 및 카드 인터페이스(520)를 포함할 수 있다.
메모리 컨트롤러(310)는 불휘발성 메모리 장치(330)와 카드 인터페이스(520) 사이에서 데이터의 교환을 제어할 수 있다.
실시 예에 따라, 카드 인터페이스(520)는 SD(secure digital) 카드 인터페이스, MMC 인터페이스, 또는 eMMC 인터페이스일 수 있으나 이에 한정되는 것은 아니다.
카드 인터페이스(520)는, 호스트(530)의 프로토콜에 따라, 호스트(530)와 메모리 컨트롤러(310) 사이에서 데이터 교환을 인터페이싱할 수 있다.
실시 예에 따라, 카드 인터페이스(520)는 USB(Universal Serial Bus) 프로토콜, IC(InterChip)-USB 프로토콜을 지원할 수 있으나 이에 한정되는 것은 아니다. 여기서, 카드 인터페이스라 함은 호스트(530)가 사용하는 프로토콜을 지원할 수 있는 하드웨어, 상기 하드웨어에 탑재된 소프트웨어, 또는 신호 전송 방식을 의미할 수 있다.
전자 장치(500)가 호스트(530)의 호스트 인터페이스(550)에 접속될 때, 호스트 인터페이스(550)는 마이크로프로세서(540)의 제어에 따라 카드 인터페이스(520)와 메모리 컨트롤러(310)를 통하여 불휘발성 메모리 장치(330)와 데이터 통신을 수행할 수 있다. 호스트(530)는 PC(personal computer), 랩탑 컴퓨터, 태블릿 (tablet) PC, 디지털 카메라(digital camera), 디지털 오디오 플레이어(digital audio player), 이동 전화기, 비디오 게임 콘솔(video game console), MP3플레이어, PMP(portable multimedia player), e-북, 또는 디지털 셋-탑 박스(digital set-top box)로 구현될 수 있다.
도 9는 도 1에 도시된 데이터 저장 장치를 포함하는 전자 장치의 또 다른 실시 예를 나타낸다.
도 9에 도시된 전자 장치(600)는 이미지 처리 장치, 예컨대 디지털 카메라, 디지털 카메라가 부착된 이동 전화기, 디지털 카메라가 부착된 스마트 폰, 또는 디지털 카메라가 부착된 태블릿 PC로 구현될 수 있다.
전자 장치(600)는 불휘발성 메모리 장치(330)와, 불휘발성 메모리 장치(330)의 데이터 처리 작동, 예컨대 프로그램 작동(또는 라이트 작동), 이레이즈 작동, 또는 리드 작동을 제어할 수 있는 메모리 컨트롤러(310)를 포함할 수 있다.
전자 장치(600)의 이미지 센서(620)는 광학 이미지를 디지털 이미지 신호들로 변환하고, 변환된 디지털 이미지 신호들은 프로세서(610) 및/또는 메모리 컨트롤러(310)로 전송된다. 프로세서(610)의 제어에 따라, 변환된 디지털 이미지 신호들은 디스플레이(630)를 통하여 디스플레이되거나 또는 메모리 컨트롤러(310)를 통하여 불휘발성 메모리 장치(330)에 저장될 수 있다.
또한, 불휘발성 메모리 장치(330)에 저장된 데이터는 프로세서(610) 및/또는 메모리 컨트롤러(310)의 제어에 따라 디스플레이(630)를 통하여 디스플레이된다.
실시 예에 따라, 불휘발성 메모리 장치(330)의 작동을 제어할 수 있는 메모리 컨트롤러(310)는 프로세서(610)의 일부로서 구현될 수 있고 프로세서(610)와 별개의 칩으로 구현될 수 있다.
도 10은 도 1에 도시된 데이터 저장 장치를 포함하는 전자 장치의 또 다른 실시 예를 나타낸다. 도 10을 참조하면, 전자 장치(700)는 SSD(solid state drive)와 같은 데이터 처리 장치로 구현될 수 있다.
전자 장치(700)는 복수의 불휘발성 메모리 장치들(330), 메모리 컨트롤러 (310), 휘발성 메모리 장치(730), 및 버퍼 매니저(720)를 포함한다.
메모리 컨트롤러(310)는 복수의 불휘발성 메모리 장치들(330) 각각의 데이터 처리 작동을 제어할 수 있다. 복수의 불휘발성 메모리 장치들(330) 각각은 도 1에 도시된 불휘발성 메모리 장치, 예컨대 NAND 플래시 메모리 장치로 되고, 블록들을 포함할 수 있다. 메모리 컨트롤러(310)는 데이터를 복수의 불휘발성 메모리 장치들 (330) 중에서 대응되는 하나 또는 그 이상의 페이지들에 프로그램할 수 있다.
휘발성 메모리 장치(730)는 DRAM(dynamic random access memory)으로 구현될 수 있고, 메모리 컨트롤러(310)와 호스트(740) 사이에서 주고 받는 데이터를 일시적으로 저장할 수 있는 버퍼의 기능을 수행할 수 있다.
버퍼 매니저(720)는 호스트(740), 휘발성 메모리 장치(730), 및/또는 메모리 컨트롤러(310) 사이에서 주고받는 데이터의 버퍼링 작동을 제어할 수 있다.
도 11은 도 10에 도시된 전자 장치를 포함하는 데이터 처리 시스템의 블록도를 나타낸다. 도 10과 도 11을 참조하면, RAID(redundant array of independent disks) 시스템으로 구현될 수 있는 데이터 처리 시스템(800)은 RAID 컨트롤러(810)와 전자 장치들(800-1~800-n; n는 자연수)을 포함할 수 있다.
전자 장치들(800-1~800-n) 각각은 도 10에 도시된 전자 장치(700)로 구현될 수 있다. 전자 장치들(800-1~800-n)은 RAID 어레이를 구성할 수 있다. 데이터 처리 시스템(800)은 PC, NAS(Network-attached storage) 또는 SSD(solid state drive) 모듈로 구현될 수 있다. 전자 장치들(800-1~800-n) 각각은 메모리 모듈(memory module) 형태로 구현된 메모리 시스템일 수 있다.
프로그램 작동(또는 라이트 작동) 동안, 호스트(HOST)로부터 출력된 프로그램 요구(또는 라이트 요구)에 따라 RAID 컨트롤러(810)는 호스트(HOST)로부터 출력된 데이터를 RAID 레벨에 기초하여 복수의 전자 장치(800-1~800-n) 중에서 적어도 어느 하나의 전자 장치로 출력할 수 있다.
리드 작동 동안, RAID 컨트롤러(810)는 호스트(HOST)로부터 출력된 리드 명령에 따라 복수의 전자 장치들(800-1~800-n) 중에서 적어도 어느 하나의 전자 장치로부터 리드된 데이터를 호스트(HOST)로 전송할 수 있다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100; 데이터 처리 시스템
110; 인터페이스
200; 호스트
210; CPU
220; 제1인터페이스
300; 데이터 저장 장치
313; 제2인터페이스
315: CPU
317: RAM
319: 암호화 엔진
321: 불휘발성 메모리 컨트롤러
323: 버퍼 컨트롤러
325; 버퍼
330; 불휘발성 메모리

Claims (10)

  1. 호스트로부터 작동 전압을 공급받아 상기 호스트와 통신하는 데이터 저장 장치에 있어서, 상기 데이터 저장 장치는,
    제1저장 영역과 제2저장 영역을 포함하는 메모리;
    상기 메모리의 작동을 제어하는 메모리 컨트롤러; 및
    이벤트 발생 여부 판단 모듈을 포함하고,
    상기 메모리 컨트롤러는,
    상기 호스트로부터 전송된 로그 시작 명령에 응답하여 상기 데이터 저장 장치의 작동 모드를 일반 모드로부터 디버깅 모드로 변경하고, 상기 호스트로부터 전송된 제1작동 명령을 실행하고, 상기 제1작동 명령의 실행 결과에 상응하는 제1로그 정보를 생성하고, 생성된 제1로그 정보를 상기 제1저장 영역에 저장하고, 상기 제1작동 명령의 실행 결과에 따라 이벤트가 발생하면 상기 제1저장 영역에 저장된 상기 제1로그 정보의 적어도 일부를 상기 제2저장 영역으로 카피하고,
    상기 이벤트 발생 여부 판단 모듈은 상기 제1작동 명령에 상응하는 데이터 처리 작동의 수행 결과에 따라 상기 이벤트가 발생했는지의 여부를 판단하되,
    상기 제2저장 영역은 상기 호스트에 의한 프로그램 또는 소거가 차단된 메모리 영역에 대응하는 데이터 저장 장치.
  2. 제1항에 있어서,
    상기 제1작동 명령은 프로그램 명령, 리드 명령, 또는 이레이즈 명령인 데이터 저장 장치.
  3. 제1항에 있어서, 상기 메모리 컨트롤러는,
    상기 제1작동 명령에 따라 상기 데이터 저장 장치에 저장된 데이터에 대한 에러가 검출될 때, 상기 이벤트를 발생하는 데이터 저장 장치.
  4. 제1항에 있어서, 상기 메모리 컨트롤러는,
    상기 제1작동 명령에 상응하는 리드 카운트가 기준 리드 카운트보다 같거나 클 때, 상기 이벤트를 발생하는 데이터 저장 장치.
  5. 제1항에 있어서, 상기 메모리 컨트롤러는,
    상기 제1작동 명령에 상응하는 리드 리클레임 카운트가 기준 리드 리클레임 카운트보다 같거나 클 때, 상기 이벤트를 발생하는 데이터 저장 장치.
  6. 제1항에 있어서, 상기 메모리 컨트롤러는,
    상기 제1작동 명령에 따라 수행된 P/E 사이클들의 횟수가 기준 P/E 사이클들의 횟수보다 같거나 클 때, 상기 이벤트를 발생하는 데이터 저장 장치.
  7. 제1항에 있어서, 상기 메모리 컨트롤러는,
    상기 제1작동 명령의 수행 결과에 따라 생성된 상기 데이터 저장 장치의 여유 블락의 개수가 기준 여유 블락의 개수보다 작을 때, 상기 이벤트를 발생하는 데이터 저장 장치.
  8. 제1항에 있어서, 상기 메모리 컨트롤러는,
    상기 이벤트 발생 시점 이후에 상기 호스트로부터 전송된 제2작동 명령을 실행하고, 상기 제2작동 명령의 실행 결과에 상응하는 제2로그 정보를 생성하고, 생성된 제2로그 정보를 상기 제1저장 영역에 저장하고, 상기 제2로그 정보의 적어도 일부를 상기 제2저장 영역에 저장하는 데이터 저장 장치.
  9. 호스트; 및
    상기 호스트로부터 작동 전압을 공급받아 상기 호스트와 통신하는 데이터 저장 장치를 포함하고,
    상기 데이터 저장 장치는,
    제1저장 영역과 제2저장 영역을 포함하는 메모리;
    상기 메모리의 작동을 제어하는 메모리 컨트롤러; 및
    이벤트 발생 여부 판단 모듈을 포함하고,
    상기 메모리 컨트롤러는,
    상기 호스트로부터 전송된 로그 시작 명령에 응답하여 상기 데이터 저장 장치의 작동 모드를 일반 모드로부터 디버깅 모드로 변경하고, 상기 호스트로부터 전송된 제1작동 명령을 실행하고, 상기 제1작동 명령의 실행 결과에 상응하는 제1로그 정보를 생성하고, 생성된 제1로그 정보를 상기 제1저장 영역에 저장하고, 상기 제1작동 명령의 실행 결과에 따라 이벤트가 발생하면 상기 제1저장 영역에 저장된 상기 제1로그 정보의 적어도 일부를 상기 제2저장 영역으로 카피하고,
    상기 이벤트 발생 여부 판단 모듈은 상기 제1작동 명령에 상응하는 데이터 처리 작동의 수행 결과에 따라 상기 이벤트가 발생했는지의 여부를 판단하되,
    상기 제2저장 영역은 상기 호스트에 의한 프로그램 또는 소거가 차단된 메모리 영역에 대응하는 데이터 처리 시스템.
  10. 제9항에 있어서,
    상기 제1작동 명령은 프로그램 명령, 리드 명령, 또는 이레이즈 명령이고,
    상기 메모리 컨트롤러는,
    상기 이벤트 발생 시점 이후에 상기 호스트로부터 전송된 제2작동 명령을 실행하고, 상기 제2작동 명령의 실행 결과에 상응하는 제2로그 정보를 생성하고, 생성된 제2로그 정보를 상기 제1저장 영역에 저장하고, 상기 제2로그 정보의 적어도 일부를 상기 제2저장 영역에 저장하는 데이터 처리 시스템.
KR1020140172462A 2014-12-03 2014-12-03 스스로 에러를 검출하고 로그를 저장할 수 있는 데이터 저장 장치와 이를 포함하는 시스템 KR102229024B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140172462A KR102229024B1 (ko) 2014-12-03 2014-12-03 스스로 에러를 검출하고 로그를 저장할 수 있는 데이터 저장 장치와 이를 포함하는 시스템
US14/956,846 US9875170B2 (en) 2014-12-03 2015-12-02 Data storage device for self-detecting error and logging operation and method of operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140172462A KR102229024B1 (ko) 2014-12-03 2014-12-03 스스로 에러를 검출하고 로그를 저장할 수 있는 데이터 저장 장치와 이를 포함하는 시스템

Publications (2)

Publication Number Publication Date
KR20160066973A KR20160066973A (ko) 2016-06-13
KR102229024B1 true KR102229024B1 (ko) 2021-03-17

Family

ID=56094447

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140172462A KR102229024B1 (ko) 2014-12-03 2014-12-03 스스로 에러를 검출하고 로그를 저장할 수 있는 데이터 저장 장치와 이를 포함하는 시스템

Country Status (2)

Country Link
US (1) US9875170B2 (ko)
KR (1) KR102229024B1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10579458B2 (en) * 2015-11-13 2020-03-03 Sandisk Technologies Llc Data logger
US10049757B2 (en) * 2016-08-11 2018-08-14 SK Hynix Inc. Techniques for dynamically determining performance of read reclaim operations
US11112970B2 (en) * 2017-06-12 2021-09-07 Sap Se Software system logging based on runtime analysis
US10642693B2 (en) 2017-09-06 2020-05-05 Western Digital Technologies, Inc. System and method for switching firmware
US10754580B2 (en) * 2017-10-23 2020-08-25 Micron Technology, Inc. Virtual partition management in a memory device
US10789153B2 (en) * 2018-04-03 2020-09-29 Xilinx, Inc. Debug controller circuit
KR102659832B1 (ko) * 2019-03-05 2024-04-22 삼성전자주식회사 데이터 저장 장치 및 시스템
JP2020181229A (ja) * 2019-04-23 2020-11-05 セイコーエプソン株式会社 電子部品、電子機器及び移動体
US11082449B2 (en) 2019-10-24 2021-08-03 Cypress Semiconductor Corporation Remote memory diagnostics
KR20210138996A (ko) * 2020-05-13 2021-11-22 삼성전자주식회사 메모리 장치, 이를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법
CN115589785A (zh) * 2021-05-06 2023-01-10 美光科技公司 主机***与存储器***之间的调试接口
US20230043925A1 (en) * 2021-07-22 2023-02-09 Samsung Electronics Co., Ltd. Storage device and operating method thereof
KR20230092151A (ko) 2021-12-17 2023-06-26 삼성전자주식회사 스토리지 장치 및 이의 동작 방법
CN116486893B (zh) * 2023-04-23 2023-12-12 珠海妙存科技有限公司 Ufs验证方法、装置、电子设备及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020100023A1 (en) * 2000-05-31 2002-07-25 Katsuhiko Ueki Computer system and method for aiding log base debugging
US20040153710A1 (en) * 2000-05-26 2004-08-05 Fair Robert Lawrence Multiple hierarichal/peer domain file server with domain based, cross domain cooperative fault handling mechanisms
US20100082890A1 (en) * 2008-09-30 2010-04-01 Jin Gyu Heo Method of managing a solid state drive, associated systems and implementations
US20130007353A1 (en) * 2010-02-17 2013-01-03 Sunil Shim Control method of nonvolatile memory device

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001051868A (ja) 1999-08-05 2001-02-23 Mitsubishi Electric Corp デバック機構内蔵のデータ処理装置、ホストマシン、及び記録媒体
JP2002023968A (ja) 2000-07-04 2002-01-25 Mitsubishi Electric Corp 半導体記憶装置の制御装置およびフラッシュメモリストレージシステム
JP2005071068A (ja) 2003-08-25 2005-03-17 Renesas Technology Corp 記憶装置
JP2006139556A (ja) 2004-11-12 2006-06-01 Toshiba Corp メモリカード及びそのカードコントローラ
JP4734033B2 (ja) 2005-05-30 2011-07-27 株式会社東芝 記憶装置
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
JP2010079856A (ja) 2008-09-29 2010-04-08 Hitachi Ltd 記憶装置およびメモリ制御方法
US8051337B2 (en) 2009-01-22 2011-11-01 Taiwan Semiconductor Manufacturing Company, Ltd. System and method for fast cache-hit detection
JP2011154593A (ja) 2010-01-28 2011-08-11 Nec Corp メモリ装置およびそのセルフチェック制御方法
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US8429470B2 (en) 2010-03-10 2013-04-23 Micron Technology, Inc. Memory devices, testing systems and methods
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
US8656251B2 (en) 2011-09-02 2014-02-18 Apple Inc. Simultaneous data transfer and error control to reduce latency and improve throughput to a host
US10353598B2 (en) * 2014-10-06 2019-07-16 Sandisk Technologies Llc System and method for refreshing data in a memory device
US9720754B2 (en) * 2014-11-20 2017-08-01 Western Digital Technologies, Inc. Read level grouping for increased flash performance

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040153710A1 (en) * 2000-05-26 2004-08-05 Fair Robert Lawrence Multiple hierarichal/peer domain file server with domain based, cross domain cooperative fault handling mechanisms
US20020100023A1 (en) * 2000-05-31 2002-07-25 Katsuhiko Ueki Computer system and method for aiding log base debugging
US20100082890A1 (en) * 2008-09-30 2010-04-01 Jin Gyu Heo Method of managing a solid state drive, associated systems and implementations
US20130007353A1 (en) * 2010-02-17 2013-01-03 Sunil Shim Control method of nonvolatile memory device

Also Published As

Publication number Publication date
KR20160066973A (ko) 2016-06-13
US20160162375A1 (en) 2016-06-09
US9875170B2 (en) 2018-01-23

Similar Documents

Publication Publication Date Title
KR102229024B1 (ko) 스스로 에러를 검출하고 로그를 저장할 수 있는 데이터 저장 장치와 이를 포함하는 시스템
US10866898B2 (en) Method and apparatus for migrating data between nonvolatile main memory and first or second caches
KR102480544B1 (ko) 손상된 저장 디바이스 펌웨어의 검출
CN109213622B (zh) 存储***及其操作方法
KR102419036B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
CN110716883B (zh) 存储器***及其操作方法
TWI766978B (zh) 記憶體系統及其操作方法
CN110457230B (zh) 存储器***及其操作方法
CN110032471B (zh) 存储器***及其操作方法
US10761912B2 (en) Controller including multi processor and operation method thereof
KR20160097657A (ko) 데이터 저장 장치 그리고 그것의 동작 방법
KR20190090268A (ko) 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US20230004320A1 (en) Method of managing debugging log in storage device
KR20210147696A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN110196816B (zh) 控制器、其操作方法以及包括控制器的存储器***
US11748025B2 (en) Nonvolatile memory device, data storage device including the same and operating method thereof
US20180157415A1 (en) Apparatus and method for controlling memory device
US20180113650A1 (en) Memory system and operating method thereof
US20230393959A1 (en) Out-of-band management method for storage apparatus, baseboard management controller and storage apparatus
US10921988B2 (en) System and method for discovering parallelism of memory devices
US10861576B2 (en) Nonvolatile memory device, operating method thereof and data storage device including the same
KR102425470B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US20240037233A1 (en) Ransomware and malicious software protection in ssd/ufs by nvme instructions log analysis based on machine-learning
KR20210068734A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN110795366B (zh) 数据存储装置及数据存储装置的操作方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant