KR20210019784A - 신뢰성 향상을 위한 스토리지 장치의 구동 방법 및 이를 수행하는 스토리지 장치 - Google Patents

신뢰성 향상을 위한 스토리지 장치의 구동 방법 및 이를 수행하는 스토리지 장치 Download PDF

Info

Publication number
KR20210019784A
KR20210019784A KR1020190098846A KR20190098846A KR20210019784A KR 20210019784 A KR20210019784 A KR 20210019784A KR 1020190098846 A KR1020190098846 A KR 1020190098846A KR 20190098846 A KR20190098846 A KR 20190098846A KR 20210019784 A KR20210019784 A KR 20210019784A
Authority
KR
South Korea
Prior art keywords
storage device
reference value
standby current
temperature
initial standby
Prior art date
Application number
KR1020190098846A
Other languages
English (en)
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 KR1020190098846A priority Critical patent/KR20210019784A/ko
Priority to US16/863,531 priority patent/US11593242B2/en
Priority to DE102020113341.3A priority patent/DE102020113341A1/de
Priority to CN202010812374.9A priority patent/CN112394879B/zh
Publication of KR20210019784A publication Critical patent/KR20210019784A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error 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 the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/24Marginal checking or other specified testing methods not covered by G06F11/26, e.g. race tests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • 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/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • 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/12005Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising voltage or current generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • G06F11/2074Asynchronous techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • 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
    • 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/50Marginal testing, e.g. race, voltage or current testing
    • G11C2029/5006Current

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)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

스토리지 장치의 구동 방법에서, 스토리지 장치를 흐르는 스탠바이(standby) 전류를 센싱한다. 센싱된 스탠바이 전류 및 적어도 하나의 기준 값에 기초하여 스토리지 장치에 제품 이상이 발생하였는지 판단한다. 스토리지 장치에 대한 제품 이상이 감지된 경우에, 스토리지 장치의 동작과 관련된 두 개 이상의 제어 프로세스들이 순차적으로 진행되는 단계별(step-wise) 제어 동작을 수행한다.

Description

신뢰성 향상을 위한 스토리지 장치의 구동 방법 및 이를 수행하는 스토리지 장치{METHOD OF OPERATING STORAGE DEVICE FOR IMPROVING RELIABILITY AND STORAGE DEVICE PERFORMING THE SAME}
본 발명은 반도체 집적 회로에 관한 것으로서, 더욱 상세하게는 제품 신뢰성 향상을 위한 스토리지 장치의 구동 방법 및 상기 구동 방법을 수행하는 스토리지 장치에 관한 것이다.
최근에는 메모리 장치를 이용하는 SSD(solid state drive)와 같은 스토리지 장치가 널리 사용되고 있다. 상기와 같은 스토리지 장치는 기계적인 구동부가 없어 안정성 및 내구성이 뛰어나며 정보의 액세스 속도가 매우 빠르고 전력 소모가 적다는 장점이 있다. 최근 들어 노트북과 같은 전자 시스템뿐만 아니라, 자동차, 항공기, 드론(drone) 등과 같은 다양한 종류의 시스템에 전자 회로가 적용됨에 따라, 스토리지 장치 역시 다양한 종류의 시스템에서 사용되고 있다.
상기와 같은 스토리지 장치는 스토리지 컨트롤러 및 비휘발성 메모리를 포함하며, 컨트롤러 칩 및 메모리 칩의 형태로 구현될 수 있다. 스토리지 장치의 사용 시간이 증가함에 따라, 또는 외부로부터 서지 전압(surge voltage)이 수신되는 경우에, 컨트롤러 칩 및/또는 메모리 칩에 손상이 발생할 수 있다. 이 경우 제품 이상/오동작/불량 등이 발생하며, 특히 진행성 불량이 발생하는 경우에 이를 검출하기 어렵다는 문제점이 있다.
본 발명의 일 목적은 이상 동작을 효과적으로 감지하여 제품 신뢰성을 향상시킬 수 있는 스토리지 장치의 구동 방법을 제공하는 것이다.
본 발명의 다른 목적은 상기 구동 방법을 수행하여 제품 신뢰성이 향상될 수 있는 스토리지 장치를 제공하는 것이다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 스토리지 장치의 구동 방법에서, 상기 스토리지 장치를 흐르는 스탠바이(standby) 전류를 센싱한다. 센싱된 상기 스탠바이 전류 및 적어도 하나의 기준 값에 기초하여 상기 스토리지 장치에 제품 이상이 발생하였는지 판단한다. 상기 스토리지 장치에 대한 상기 제품 이상이 감지된 경우에, 상기 스토리지 장치의 동작과 관련된 두 개 이상의 제어 프로세스들이 순차적으로 진행되는 단계별(step-wise) 제어 동작을 수행한다.
상기 다른 목적을 달성하기 위해, 본 발명의 실시예들에 따른 스토리지 장치는 복수의 비휘발성 메모리들, 스토리지 컨트롤러, 및 센싱 및 제어 블록을 포함한다. 상기 복수의 비휘발성 메모리들은 복수의 데이터들을 저장한다. 상기 스토리지 컨트롤러는 상기 복수의 비휘발성 메모리들의 동작을 제어한다. 상기 센싱 및 제어 블록은 상기 스토리지 컨트롤러를 흐르는 전류 및 상기 복수의 비휘발성 메모리들을 흐르는 전류들의 총합을 나타내는 스탠바이(standby) 전류를 센싱하고, 센싱된 상기 스탠바이 전류 및 적어도 하나의 기준 값에 기초하여 스토리지 장치에 제품 이상이 발생하였는지 판단하며, 상기 스토리지 장치에 대한 상기 제품 이상이 감지된 경우에 상기 스토리지 장치의 동작과 관련된 두 개 이상의 제어 프로세스들이 순차적으로 진행되는 단계별(step-wise) 제어 동작을 수행한다.
상기와 같은 본 발명의 실시예들에 따른 스토리지 장치의 구동 방법 및 스토리지 장치에서는, 스토리지 장치를 흐르는 스탠바이 전류를 센싱하며, 센싱 결과에 따라 제품 이상이 감지된 경우에 스토리지 장치에 대한 단계별 제어 동작을 수행할 수 있다. 스탠바이 전류를 주기적으로 센싱함으로써 스토리지 장치의 오작동을 방지하고, 스토리지 장치가 완전히 셧다운 되기 이전에 스토리지 장치에 저장되어 있는 사용자 데이터를 다른 저장소로 이동하여 사용자 데이터의 사전 보전이 가능하며, 센싱 결과를 제품 수명과 불량 예측을 위한 지표로서 활용할 수 있다. 상술한 것처럼 스탠바이 전류를 활용함으로써, 스토리지 장치에 대한 전반적인 제품 신뢰성을 향상시킬 수 있다.
도 1은 본 발명의 실시예들에 따른 스토리지 장치의 구동 방법을 나타내는 순서도이다.
도 2는 본 발명의 실시예들에 따른 스토리지 장치 및 이를 포함하는 스토리지 시스템을 나타내는 블록도이다.
도 3은 본 발명의 실시예들에 따른 스토리지 장치에 포함되는 스토리지 컨트롤러의 일 예를 나타내는 블록도이다.
도 4는 본 발명의 실시예들에 따른 스토리지 장치에 포함되는 비휘발성 메모리의 일 예를 나타내는 블록도이다.
도 5는 도 1의 스탠바이 전류를 센싱하는 단계의 일 예를 나타내는 순서도이다.
도 6은 도 5의 센싱 동작을 설명하기 위한 도면이다.
도 7은 도 1의 스탠바이 전류를 센싱하는 단계의 다른 예를 나타내는 순서도이다.
도 8은 도 1의 스토리지 장치에 제품 이상이 발생하였는지 판단하는 단계 및 스토리지 장치에 제품 이상이 감지된 경우에 단계별 제어 동작을 수행하는 단계의 일 예를 나타내는 순서도이다.
도 9는 도 8의 제1 제어 프로세스를 수행하는 단계의 일 예를 나타내는 순서도이다.
도 10a, 10b, 10c, 10d, 10e, 10f, 10g, 11a, 11b, 11c 및 11d는 도 9의 제1 제어 프로세스를 설명하기 위한 도면들이다.
도 12는 도 8의 제2 제어 프로세스를 수행하는 단계의 일 예를 나타내는 순서도이다.
도 13은 본 발명의 실시예들에 따른 스토리지 장치의 구동 방법을 나타내는 순서도이다.
도 14는 도 13의 적어도 하나의 기준 값을 결정하는 단계의 일 예를 나타내는 순서도이다.
도 15는 도 14의 기준 값 결정 동작을 설명하기 위한 도면이다.
도 16은 본 발명의 실시예들에 따른 스토리지 장치의 구동 방법을 나타내는 순서도이다.
도 17은 도 16의 적어도 하나의 기준 값을 결정하는 단계의 일 예를 나타내는 순서도이다.
도 18은 도 17의 기준 값 결정 동작을 설명하기 위한 도면이다.
도 19는 도 16의 스토리지 장치에 제품 이상이 발생하였는지 판단하는 단계 및 스토리지 장치에 제품 이상이 감지된 경우에 단계별 제어 동작을 수행하는 단계의 일 예를 나타내는 순서도이다.
도 20 및 21은 본 발명의 실시예들에 따른 스토리지 장치 및 이를 포함하는 스토리지 시스템을 나타내는 블록도이다.
도 22는 본 발명의 실시예들에 따른 전자 시스템을 나타내는 블록도이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 스토리지 장치의 구동 방법을 나타내는 순서도이다.
도 1을 참조하면, 본 발명의 실시예들에 따른 스토리지 장치는 데이터를 저장하는 복수의 메모리 블록들을 포함하는 복수의 비휘발성 메모리들 및 상기 복수의 비휘발성 메모리들의 동작을 제어하는 스토리지 컨트롤러를 포함한다. 또한, 상기 스토리지 장치는 스탠바이(standby) 전류를 센싱하고 이를 기초로 제어 동작을 수행하기 위한 센싱 및 제어 블록을 포함하여 구현된다. 상기 스토리지 장치 및 이를 포함하는 스토리지 시스템의 구조에 대해서는 도 2 등을 참조하여 후술하도록 한다.
본 발명의 실시예들에 따른 스토리지 장치의 구동 방법에서, 상기 스토리지 장치를 흐르는 상기 스탠바이 전류를 센싱한다(단계 S100). 상기 스탠바이 전류는 유휴(idle) 전류 또는 누설(leakage) 전류라고 지칭되기도 하며, 상기 스토리지 장치가 일반적인 동작을 수행하지 않는 경우에 상기 스토리지 컨트롤러 및 상기 복수의 비휘발성 메모리들을 흐르는 전류를 나타낼 수 있다. 상기 스탠바이 전류를 센싱하는 구체적인 동작에 대해서는 도 5 내지 7을 참조하여 후술하도록 한다.
센싱된 상기 스탠바이 전류 및 적어도 하나의 기준 값에 기초하여 상기 스토리지 장치에 제품 이상이 발생하였는지 판단하고(단계 S200), 상기 스토리지 장치에 대한 상기 제품 이상이 감지된 경우에, 상기 스토리지 장치의 동작과 관련된 두 개 이상의 제어 프로세스들이 순차적으로 진행되는 단계별(step-wise) 제어 동작을 수행한다(단계 S300). 예를 들어, 센싱된 상기 스탠바이 전류가 하나의 기준 값을 초과하는 경우에, 하나의 제어 프로세스가 수행되며, 이에 따라 상기 기준 값의 개수는 상기 제어 프로세스들의 개수와 실질적으로 동일할 수 있다. 상기 제품 이상을 감지하고 상기 단계별 제어 동작을 수행하는 구체적인 동작에 대해서는 도 8 내지 12를 참조하여 후술하도록 한다.
본 발명의 실시예들에 따른 스토리지 장치의 구동 방법에서, 스토리지 장치를 흐르는 스탠바이 전류를 센싱하며, 센싱 결과에 따라 제품 이상이 감지된 경우에 스토리지 장치에 대한 단계별 제어 동작을 수행할 수 있다. 스탠바이 전류를 주기적으로 센싱함으로써 스토리지 장치의 오작동을 방지하고, 스토리지 장치가 완전히 셧다운(shut-down)되기 이전에 스토리지 장치에 저장되어 있는 사용자 데이터를 다른 저장소로 이동하여 사용자 데이터의 사전 보전이 가능하며, 센싱 결과를 제품 수명과 불량 예측을 위한 지표로서 활용할 수 있다. 상술한 것처럼 스탠바이 전류를 활용함으로써, 스토리지 장치에 대한 전반적인 제품 신뢰성을 향상시킬 수 있다.
도 2는 본 발명의 실시예들에 따른 스토리지 장치 및 이를 포함하는 스토리지 시스템을 나타내는 블록도이다.
도 2를 참조하면, 스토리지 시스템(100)은 호스트 장치(200) 및 스토리지 장치(300)를 포함한다.
호스트 장치(200)는 스토리지 시스템(100)의 전반적인 동작을 제어한다. 예를 들어, 상세하게 도시하지는 않았으나, 호스트 장치(200)는 호스트 프로세서 및 호스트 메모리를 포함할 수 있다. 상기 호스트 프로세서는 호스트 장치(200)의 동작을 제어하고, 예를 들어 운영 체제(Operating System; OS)를 실행할 수 있다. 상기 호스트 메모리는 상기 호스트 프로세서에 의해 실행 및 처리되는 명령어(instruction) 및 데이터를 저장할 수 있다. 예를 들어, 상기 호스트 프로세서에 의해 실행되는 상기 운영 체제는 파일 관리를 위한 파일 시스템(file system), 및 스토리지 장치(300)를 포함하는 주변 기기를 상기 운영 체제 레벨에서 제어하기 위한 장치 드라이버(device driver)를 포함할 수 있다.
스토리지 장치(300)는 호스트 장치(200)에 의해 액세스된다. 스토리지 장치(300)는 스토리지 컨트롤러(310), 복수의 비휘발성 메모리들(320a, 320b, 320c), 버퍼 메모리(330), 전원 관리 집적 회로(Power Management Integrated Circuit; PMIC)(340), 센싱 및 제어 블록(345), 및 온도 센서(360)를 포함한다.
스토리지 컨트롤러(310)는 스토리지 장치(300)의 동작을 제어할 수 있다. 예를 들어, 스토리지 컨트롤러(310)는 호스트 장치(200)로부터 수신된 커맨드 및 데이터에 기초하여 복수의 비휘발성 메모리들(320a, 320b, 320c)의 동작을 제어할 수 있다.
복수의 비휘발성 메모리들(320a, 320b, 320c)은 복수의 데이터들을 저장할 수 있다. 예를 들어, 복수의 비휘발성 메모리들(320a, 320b, 320c)은 메타 데이터들 및 그 밖의 사용자 데이터들을 저장할 수 있다.
일 실시예에서, 복수의 비휘발성 메모리들(320a, 320b, 320c) 각각은 NAND 플래시 메모리(Flash Memory)를 포함할 수 있다. 다른 실시예에서, 복수의 비휘발성 메모리들(320a, 320b, 320c) 각각은 EEPROM(Electrically Erasable Programmable Read-Only Memory), PRAM(Phase Change Random Access Memory), RRAM(Resistance Random Access Memory), NFGM(Nano Floating Gate Memory), PoRAM(Polymer Random Access Memory), MRAM(Magnetic Random Access Memory), FRAM(Ferroelectric Random Access Memory) 또는 이와 유사한 메모리를 포함할 수 있다.
버퍼 메모리(330)는 스토리지 컨트롤러(310)에 의해 실행 및 처리되는 명령어 및 데이터를 저장할 수 있고, 복수의 비휘발성 메모리들(320a, 320b, 320c)에 저장되어 있거나 저장하고자 하는 데이터를 임시로 저장할 수 있다. 예를 들어, 버퍼 메모리(330)는 DRAM(Dynamic Random Access Memory) 등과 같은 휘발성 메모리를 포함할 수 있다.
전원 관리 집적 회로(340)는 외부 전원 전압(VEXT)에 기초하여 스토리지 컨트롤러(310), 복수의 비휘발성 메모리들(320a, 320b, 320c) 및 버퍼 메모리(330)에 공급되는 전원 신호를 발생 및 제어할 수 있다. 다시 말하면, 스토리지 컨트롤러(310), 복수의 비휘발성 메모리들(320a, 320b, 320c) 및 버퍼 메모리(330)를 구동하기 위한 전원이 전원 관리 집적 회로(340)에 의해 제어 및 조절될 수 있다.
센싱 및 제어 블록(345)은 전원 관리 집적 회로(340)에 포함되며, 도 1을 참조하여 상술한 방법을 수행한다. 예를 들어, 센싱 및 제어 블록(345)은 스토리지 장치(300)를 흐르는 스탠바이 전류(ISTBY)를 센싱하고, 센싱된 스탠바이 전류(ISTBY) 및 적어도 하나의 기준 값에 기초하여 스토리지 장치(300)에 제품 이상이 발생하였는지 판단하며, 상기 제품 이상이 감지된 경우에 단계별 제어 동작을 수행한다. 다시 말하면, 센싱 및 제어 블록(345)은 자체적/내부적으로 센싱되는 스탠바이 전류를 활용함으로써, 스토리지 장치(300)에 대한 전반적인 제품 신뢰성을 향상시킬 수 있다. 또한, 센싱 및 제어 블록(345)은 도 13 및 16을 참조하여 후술하는 방법을 수행할 수도 있다.
실시예에 따라서, 센싱 및 제어 블록(345)의 일부 또는 전부는 하드웨어의 형태로 구현될 수도 있고 소프트웨어(즉, 프로그램)의 형태로 구현될 수도 있다.
일 실시예에서, 도 13 및 16을 참조하여 후술하는 것처럼, 상기 적어도 하나의 기준 값은 스토리지 장치(300)의 제조 시에 결정되어 스토리지 장치(300) 내부적으로 저장되어 있을 수 있다.
일 실시예에서, 스탠바이 전류(ISTBY)는 스토리지 장치(300)가 일반적인 동작을 수행하지 않는 경우에 스토리지 컨트롤러(310)를 흐르는 전류, 복수의 비휘발성 메모리들(320a, 320b, 320c)을 흐르는 전류들 및 버퍼 메모리(330)를 흐르는 전류의 총합을 나타낼 수 있다. 실시예에 따라서, 버퍼 메모리(330)가 생략될 수도 있으며, 이 경우 스탠바이 전류(ISTBY)는 스토리지 컨트롤러(310)를 흐르는 전류 및 복수의 비휘발성 메모리들(320a, 320b, 320c)을 흐르는 전류들의 총합을 나타낼 수 있다.
일 실시예에서, 스토리지 컨트롤러(310)는 적어도 하나의 컨트롤러 칩(chip)의 형태로 구현되고, 복수의 비휘발성 메모리들(320a, 320b, 320c)은 복수의 비휘발성 메모리 칩들의 형태로 구현되며, 버퍼 메모리(330)는 적어도 하나의 버퍼 메모리 칩의 형태로 구현될 수 있다. 이 경우, 스탠바이 전류(ISTBY)는 상기 컨트롤러 칩을 흐르는 전류, 상기 복수의 비휘발성 메모리 칩들을 흐르는 전류들 및 상기 버퍼 메모리 칩을 흐르는 전류의 총합을 나타낼 수 있다. 실시예에 따라서, 버퍼 메모리(330)가 생략되고 이에 따라 상기 버퍼 메모리 칩이 생략될 수도 있으며, 이 경우 스탠바이 전류(ISTBY)는 상기 컨트롤러 칩을 흐르는 전류 및 상기 복수의 비휘발성 메모리 칩들을 흐르는 전류들의 총합을 나타낼 수 있다.
온도 센서(360)는 스토리지 장치(300)의 동작 온도를 센싱할 수 있다. 센싱된 상기 동작 온도는 도 12를 참조하여 후술하는 동적 스로틀링(dynamic throttling) 동작을 수행하기 위해 이용될 수도 있고, 도 16을 참조하여 후술하는 것처럼 제품 이상이 발생하였는지 판단하기 위해 이용될 수도 있다.
예를 들어, 온도 센서(360)는 스토리지 컨트롤러(310), 복수의 비휘발성 메모리들(320a, 320b, 320c), 버퍼 메모리(330), 전원 관리 집적 회로(340) 및 센싱 및 제어 블록(345)과 별개로 형성되어 인쇄 회로 기판(Printed Circuit Board; PCB) 상에 실장될 수 있다. 다른 예에서, 온도 센서(360)는 스토리지 컨트롤러(310), 복수의 비휘발성 메모리들(320a, 320b, 320c), 버퍼 메모리(330), 전원 관리 집적 회로(340) 및 센싱 및 제어 블록(345) 중 적어도 하나에 포함되고 온-칩 금속 저항을 포함하는 온-칩 센서(또는 온-다이 센서)의 형태로 구현될 수 있다.
일 실시예에서, 스토리지 장치(300)는 SSD(Solid State Drive)일 수 있다. 다른 실시예에서, 스토리지 장치(300)는 UFS(Universal Flash Storage), MMC(Multi Media Card) 또는 eMMC(embedded MMC)일 수 있다. 또 다른 실시예에서, SD(Secure Digital) 카드, 마이크로 SD 카드, 메모리 스틱(memory stick), 칩 카드(chip card), USB(Universal Serial Bus) 카드, 스마트 카드(smart card), CF(Compact Flash) 카드 또는 이와 유사한 형태로 구현될 수 있다.
일 실시예에서, 스토리지 장치(300)는 SATA(Serial Advanced Technology Attachment) 버스, SCSI(Small Computer Small Interface) 버스, NVMe(Non-Volatile Memory Express) 버스, SAS(Serial Attached SCSI) 버스, UFS, eMMC 등의 버스를 포함하는 블록 액세서블 인터페이스(block accessible interface)를 통해 호스트 장치(200)와 연결되고, 호스트 장치(200)에 의해 상기 블록 액세서블 인터페이스를 통하여 블록 단위로 액세스될 수 있다.
일 실시예에서, 스토리지 시스템(100)은 PC(Personal Computer), 서버 컴퓨터(server computer), 데이터 센터(data center), 워크스테이션(workstation), 디지털 TV(digital television), 셋-탑 박스(set-top box) 등의 임의의 컴퓨팅 시스템일 수 있다. 다른 실시예에서, 스토리지 시스템(100)은 휴대폰(mobile phone), 스마트 폰(smart phone), 태블릿(tablet) PC(Personal Computer), 노트북(laptop computer), PDA(Personal Digital Assistant), PMP(Portable Multimedia Player), 디지털 카메라(digital camera), 캠코더(camcorder), 휴대용 게임 콘솔(portable game console), 음악 재생기(music player), 동영상 재생기(video player), 네비게이션(navigation) 기기, 웨어러블(wearable) 기기, IoT(Internet of Things) 기기, e-북(e-book), VR(Virtual Reality) 기기, AR(Augmented Reality) 기기 등의 임의의 모바일 시스템일 수 있다.
도 3은 본 발명의 실시예들에 따른 스토리지 장치에 포함되는 스토리지 컨트롤러의 일 예를 나타내는 블록도이다.
도 3을 참조하면, 스토리지 컨트롤러(400)는 적어도 하나의 프로세서(410), 메모리(420), 호스트 인터페이스(430), ECC(Error Correction Code) 블록(440) 및 메모리 인터페이스(450)를 포함할 수 있다.
프로세서(410)는 호스트 장치(도 2의 200)로부터 호스트 인터페이스(430)를 통하여 수신된 커맨드에 응답하여 스토리지 컨트롤러(400)의 동작을 제어할 수 있다. 예를 들어, 프로세서(410)는 스토리지 장치(도 2의 300)를 구동하기 위한 펌웨어(Firmware)를 채용하여 각각의 구성들을 제어할 수 있다.
메모리(420)는 프로세서(410)에 의해 실행 및 처리되는 명령어 및 데이터를 저장할 수 있다. 예를 들어, 메모리(420)는 SRAM(Static Random Access Memory), 캐시(cache) 메모리 등과 같은 상대적으로 작은 용량 및 빠른 속도를 가지는 휘발성 메모리로 구현될 수 있다.
에러 정정을 위한 ECC 블록(440)은 BCH(Bose-Chaudhuri-Hocquenghem) 코드, LDPC(Low Density Parity Check) 코드, 터보 코드(Turbo Code), 리드-솔로몬 코드(Reed-Solomon Code), 콘볼루션 코드(Convolution Code), RSC(Recursive Systematic Code), TCM(Trellis-Coded Modulation), BCM(Block Coded Modulation) 등의 부호화된 변조(Coded Modulation), 또는 다른 에러 정정 코드를 이용하여 ECC 인코딩 및 ECC 디코딩을 수행할 수 있다.
호스트 인터페이스(430)는 호스트 장치(200)와 스토리지 장치(300) 사이의 물리적 연결을 제공할 수 있다. 즉, 호스트 인터페이스(430)는 호스트 장치(200)의 버스 포맷(bus format)에 대응하여 스토리지 장치(300)와의 인터페이싱을 제공할 수 있다. 일 실시예에서, 호스트 장치(200)의 버스 포맷은 SCSI 또는 SAS일 수 있다. 다른 실시예에서, 호스트 장치(200)의 버스 포맷은 USB, PCIe(peripheral component interconnect express), ATA, PATA, SATA, NVMe 등일 수 있다.
메모리 인터페이스(450)는 비휘발성 메모리들(도 2의 320a, 320b, 320c)과 데이터를 교환할 수 있다. 메모리 인터페이스(450)는 데이터를 비휘발성 메모리들(320a, 320b, 320c)에 전송할 수 있고, 비휘발성 메모리들(320a, 320b, 320c)로부터 독출된 데이터를 수신할 수 있다. 일 실시예에서, 메모리 인터페이스(450)는 비휘발성 메모리들(320a, 320b, 320c)과 하나의 채널을 통하여 연결될 수 있다. 다른 실시예에서, 메모리 인터페이스(450)는 비휘발성 메모리들(320a, 320b, 320c)과 2 이상의 채널들을 통하여 연결될 수 있다.
도 4는 본 발명의 실시예들에 따른 스토리지 장치에 포함되는 비휘발성 메모리의 일 예를 나타내는 블록도이다.
도 4를 참조하면, 비휘발성 메모리(500)는 메모리 셀 어레이(510), 로우 디코더(520), 페이지 버퍼 회로(530), 데이터 입출력 회로(540), 전압 발생기(550) 및 제어 회로(560)를 포함한다.
메모리 셀 어레이(510)는 복수의 스트링 선택 라인들(SSL), 복수의 워드 라인들(WL) 및 복수의 접지 선택 라인들(GSL)을 통해 로우 디코더(520)와 연결된다. 또한, 메모리 셀 어레이(510)는 복수의 비트 라인들(BL)을 통해 페이지 버퍼 회로(530)와 연결된다. 메모리 셀 어레이(510)는 복수의 워드 라인들(WL) 및 복수의 비트 라인들(BL)에 연결되는 복수의 메모리 셀들을 포함할 수 있다. 메모리 셀 어레이(510)는 각각 메모리 셀들을 포함하는 복수의 메모리 블록들(BLK1, BLK2, ..., BLKz)로 구분될 수 있다. 또한, 복수의 메모리 블록들(BLK1, BLK2, ..., BLKz) 각각은 복수의 페이지들로 구분될 수 있다.
실시예에 따라서, 메모리 셀 어레이(510)는 2차원 어레이(array) 구조 또는 3차원 수직 어레이 구조로 형성될 수 있다. 수직형(또는 3차원) 메모리 셀 어레이에 대한 자세한 설명은 본 명세서에 참고 문헌으로 결합된 미국 등록 번호 7,679,133; 8,553,466; 8,654,587; 8,559,235 및 미국 공개 번호 2011/0233648에 기술되어 있다.
제어 회로(560)는 외부(예를 들어, 도 2의 호스트 장치(200) 및/또는 스토리지 컨트롤러(310))로부터 커맨드(CMD) 및 어드레스(ADDR)를 수신하고, 커맨드(CMD) 및 어드레스(ADDR)에 기초하여 비휘발성 메모리(500)의 소거 루프, 프로그램 루프 및 독출 동작을 제어한다. 여기서 프로그램 루프는 프로그램 동작과 프로그램 검증 동작을 포함하고, 소거 루프는 소거 동작과 소거 검증 동작을 포함할 수 있다. 여기서 독출 동작은 노멀 독출 동작과 데이터 리커버리 독출 동작을 포함할 수 있다.
예를 들어, 제어 회로(560)는 커맨드(CMD)에 기초하여 전압 발생기(550)를 제어하기 위한 제어 신호들(CON) 및 페이지 버퍼 회로(530)를 제어하기 위한 제어 신호들(PBC)을 발생하고, 어드레스(ADDR)에 기초하여 로우 어드레스(R_ADDR) 및 컬럼 어드레스(C_ADDR)를 발생할 수 있다. 제어 회로(560)는 로우 어드레스(R_ADDR)를 로우 디코더(520)에 제공하고, 컬럼 어드레스(C_ADDR)를 데이터 입출력 회로(540)에 제공할 수 있다.
로우 디코더(520)는 복수의 스트링 선택 라인들(SSL), 복수의 워드 라인들(WL) 및 복수의 접지 선택 라인들(GSL)을 통해 메모리 셀 어레이(510)와 연결된다.
예를 들어, 소거/프로그램/독출 동작 시에, 로우 디코더(520)는 로우 어드레스(R_ADDR)에 응답하여, 복수의 워드 라인들(WL) 중 적어도 하나를 선택 워드 라인으로 결정하고, 복수의 워드 라인들(WL) 중에서 상기 선택 워드 라인을 제외한 나머지 워드 라인들을 비선택 워드 라인들로 결정할 수 있다.
또한, 소거/프로그램/독출 동작 시에, 로우 디코더(520)는 로우 어드레스(R_ADDR)에 응답하여, 복수의 스트링 선택 라인들(SSL) 중 적어도 하나를 선택 스트링 선택 라인으로 결정하고, 나머지 스트링 선택 라인들을 비선택 스트링 선택 라인들로 결정할 수 있다.
또한, 소거/프로그램/독출 동작 시에, 로우 디코더(520)는 로우 어드레스(R_ADDR)에 응답하여, 복수의 접지 선택 라인들(GSL) 중 적어도 하나를 선택 접지 선택 라인으로 결정하고, 나머지 접지 선택 라인들을 비선택 접지 선택 라인들로 결정할 수 있다.
전압 발생기(550)는 전원 전압(PWR) 및 제어 신호들(CON)에 기초하여 비휘발성 메모리 장치(500)의 동작에 필요한 전압들(VS)을 발생할 수 있다. 전압들(VS)은 로우 디코더(520)를 통해 복수의 스트링 선택 라인들(SSL), 복수의 워드 라인들(WL) 및 복수의 접지 선택 라인들(GSL)에 인가될 수 있다. 또한, 전압 발생기(550)는 전원 전압(PWR) 및 제어 신호들(CON)에 기초하여 소거 동작에 필요한 소거 전압(VERS)을 발생할 수 있다. 소거 전압(VERS)은 메모리 셀 어레이(510)에 직접 인가되거나 비트 라인(BL)을 통해 인가될 수 있다.
예를 들어, 소거 동작 시에, 전압 발생기(550)는 하나의 메모리 블록의 공통 소스 라인 및/또는 비트 라인(BL)에 소거 전압(VERS)을 인가하고, 로우 디코더(520)를 통해 하나의 메모리 블록의 모든 워드 라인들 또는 일부의 서브 블록에 해당하는 워드 라인들에 소거 허용 전압(예를 들어, 접지 전압)을 인가할 수 있다. 소거 검증 동작 시에, 전압 발생기(550)는 하나의 메모리 블록의 모든 워드 라인들에 소거 검증 전압을 인가하거나 워드 라인 단위로 소거 검증 전압을 인가할 수 있다.
예를 들어, 프로그램 동작 시에, 전압 발생기(550)는 로우 디코더(520)를 통해 상기 선택 워드 라인에 프로그램 전압을 인가하고, 상기 비선택 워드 라인들에는 프로그램 금지 전압을 인가할 수 있다. 프로그램 검증 동작 시에, 전압 발생기(550)는 로우 디코더(520)를 통해 상기 선택 워드 라인에 프로그램 검증 전압을 인가하고, 상기 비선택 워드 라인들에는 검증 패스 전압을 인가할 수 있다.
또한, 노멀 독출 동작 시에, 전압 발생기(550)는 로우 디코더(520)를 통해 상기 선택 워드 라인에 독출 전압을 인가하고, 상기 비선택 워드 라인들에는 독출 패스 전압을 인가할 수 있다. 또한 데이터 리커버리 독출 동작 시에, 전압 발생기(550)는 로우 디코더(520)를 통해 상기 선택 워드 라인에 인접한 워드 라인에 독출 전압을 인가하고, 상기 선택 워드 라인에는 리커버리 독출 전압을 인가할 수 있다.
페이지 버퍼 회로(530)는 복수의 비트 라인들(BL)을 통해 메모리 셀 어레이(510)와 연결될 수 있다. 페이지 버퍼 회로(530)는 복수의 페이지 버퍼들을 포함할 수 있다. 일 실시예에서, 하나의 페이지 버퍼에 하나의 비트 라인이 연결될 수 있다. 다른 실시예에서, 하나의 페이지 버퍼에 두 개 이상의 비트 라인들이 연결될 수 있다.
페이지 버퍼 회로(530)는 메모리 셀 어레이(510)에 프로그램 될 기입 데이터(DAT)를 저장하거나 혹은 메모리 셀 어레이(510)로부터 감지된 독출 데이터(DAT)를 저장할 수 있다. 즉, 페이지 버퍼 회로(530)는 비휘발성 메모리 장치(500)의 동작 모드에 따라 기입 드라이버로서 또는 감지 증폭기로서 동작할 수 있다.
데이터 입출력 회로(540)는 데이터 라인들(DL)을 통해 페이지 버퍼 회로(530)와 연결될 수 있다. 데이터 입출력 회로(540)는 컬럼 어드레스(C_ADDR)에 응답하여, 기입 데이터(DAT)를 페이지 버퍼 회로(530)를 거쳐서 메모리 셀 어레이(510)에 제공하거나 혹은 메모리 셀 어레이(510)로부터 페이지 버퍼 회로(530)를 거쳐서 출력되는 독출 데이터(DAT)를 외부에 제공할 수 있다.
도 5는 도 1의 스탠바이 전류를 센싱하는 단계의 일 예를 나타내는 순서도이다. 도 6은 도 5의 센싱 동작을 설명하기 위한 도면이다.
도 1, 5 및 6을 참조하면, 상기 스탠바이 전류를 센싱하는데 있어서(단계 S100), 상기 스토리지 장치의 구동 중에 상기 스토리지 장치와 외부의 호스트 장치 사이에 신호 입출력이 존재하지 않는 유휴(idle) 구간 동안에 상기 센싱 동작이 수행될 수 있다.
구체적으로, 상기 스토리지 장치의 구동 중에(즉, 실시간(real-time 또는 runtime)으로) 상기 스토리지 장치와 상기 외부의 호스트 장치와의 신호 입출력을 확인하고(단계 S110), 상기 유휴 구간에 진입하였는지 판단할 수 있다(단계 S120). 예를 들어, 도 6에 도시된 것처럼 IOPS(Input/Output Operations Per Second) 및 대역폭(bandwidth, BW) 사용량을 확인하다 보면, 입출력 동작이 전혀 발생하지 않는 유휴 구간(T_IDLE)이 존재할 수 있다. 예를 들어, 유휴 구간(T_IDLE)의 길이는 약 1초 이상일 수 있다.
상기 유휴 구간에 진입하지 않은 경우에(단계 S120: 아니오), 단계 S110의 상기 입출력 확인 동작을 계속 수행할 수 있다.
상기 유휴 구간에 진입한 경우에(단계 S120: 예), 커맨드 페치(fetch)를 중단하고(단계 S130), 내부 백그라운드 동작을 중단할 수 있다(단계 S140). 예를 들어, 커맨드 큐(queue)에 큐잉된 커맨드(예를 들어, 기입 커맨드)의 실행을 중단할 수 있고, 커맨드 실행 이후의 후속 동작(예를 들어, 기입 커맨드 실행 이후에 기입 데이터를 실제로 내부적으로 저장하는 동작) 및/또는 가비지 컬렉션(garbage collection) 등과 같은 백그라운드 동작을 중단할 수 있다.
상기 유휴 구간 동안에 상기 스탠바이 전류를 측정할 수 있다(단계 S150). 예를 들어, 외부 전원 전압(VEXT)에 대한 전체 전류를 측정하고, 복수의 비휘발성 메모리들(320a, 320b, 320c)의 전원 블록을 오프한 이후에 상기 전원 블록이 소모하는 전류를 측정하며, 이에 기초하여 상기 스탠바이 전류를 측정할 수 있다.
일 실시예에서, 상기 유휴 구간은 상기 스토리지 장치의 구동 중에 주기적으로 반복하여 발생될 수 있다. 이에 따라, 상기 스탠바이 전류를 센싱하는 동작은 상기 유휴 구간마다 주기적으로 수행될 수 있고, 상기 센싱 결과에 기초하여 상기 스토리지 장치의 제품 이상 여부를 판단하는 동작 또한 주기적으로 수행될 수 있다.
도 7은 도 1의 스탠바이 전류를 센싱하는 단계의 다른 예를 나타내는 순서도이다.
도 1 및 7을 참조하면, 상기 스탠바이 전류를 센싱하는데 있어서(단계 S100), 상기 스토리지 장치가 파워 온 된 직후에 POR(Power On Reset) 구간 동안에 상기 센싱 동작이 수행될 수 있다.
구체적으로, 상기 스토리지 장치가 파워 온 된 직후에 전원 전압에 대한 파워 온 구간(또는 파워 온 모드)에서 전원 사이클(power cycle)을 확인하고(단계 S160), 상기 스탠바이 전류를 측정할 수 있다(단계 S170). 단계 S170은 도 5의 단계 S150과 실질적으로 동일할 수 있다. 상기 POR 구간 또는 상기 전원 전압에 대한 파워 온 구간에서는 상기 스토리지 장치와 상기 외부의 호스트 장치 사이에 신호 입출력이 존재하지 않으며, 따라서 별도의 입출력 확인 동작 없이 바로 상기 스탠바이 전류를 측정할 수 있다.
한편, 도 5 내지 7을 참조하여 상기 스탠바이 전류를 센싱하는 동작이 상기 유휴 구간 또는 상기 POR 구간 동안에 수행되는 것으로 예시하였으나, 본 발명은 이에 한정되지 않으며, 상기 외부의 호스트 장치와의 신호 입출력이 존재하지 않는 임의의 구간 동안에 수행될 수도 있다.
도 8은 도 1의 스토리지 장치에 제품 이상이 발생하였는지 판단하는 단계 및 스토리지 장치에 제품 이상이 감지된 경우에 단계별 제어 동작을 수행하는 단계의 일 예를 나타내는 순서도이다.
도 1 및 8을 참조하면, 센싱된 상기 스탠바이 전류 및 상기 적어도 하나의 기준 값에 기초하여 상기 스토리지 장치에 상기 제품 이상이 발생하였는지 판단하고(단계 S200), 상기 스토리지 장치에 대한 상기 제품 이상이 감지된 경우에 상기 단계별 제어 동작을 수행하는데 있어서(단계 S300), 상기 적어도 하나의 기준 값은 서로 다른 제1 기준 값, 제2 기준 값 및 제3 기준 값을 포함하며, 상기 제1, 제2 및 제3 기준 값들에 기초하여 3단계의 제어 동작을 수행할 수 있다.
구체적으로, 센싱된 상기 스탠바이 전류가 상기 제1 기준 값을 초과하는 경우에(단계 S210: 예), 상기 제품 이상이 발생한 것으로 판단하고, 불량 칩의 위치 확인을 포함하는 제1 제어 프로세스를 수행할 수 있다(단계 S310). 상기 제1 제어 프로세스에 대해서는 도 9 등을 참조하여 후술하도록 한다.
한편, 센싱된 상기 스탠바이 전류가 상기 제1 기준 값보다 작거나 같은 경우에는(단계 S210: 아니오), 별다른 후속 조치를 수행하지 않으며, 이후에 주기적으로 단계 S100 및 S210을 반복할 수 있다.
센싱된 상기 스탠바이 전류가 상기 제1 기준 값보다 큰 제2 기준 값을 초과하는 경우에(단계 S220: 예), 상기 제품 이상이 보다 심해진 것으로 판단하고, 상기 불량 칩에 대한 성능 제어를 포함하는 제2 제어 프로세스를 수행할 수 있다(단계 S320). 상기 제2 제어 프로세스에 대해서는 도 12를 참조하여 후술하도록 한다.
한편, 센싱된 상기 스탠바이 전류가 상기 제1 기준 값을 초과하였으나 상기 제2 기준 값보다 작거나 같은 경우에는(단계 S220: 아니오), 단계 S310을 수행한 이후에 주기적으로 단계 S100 및 S220을 반복할 수 있다.
센싱된 상기 스탠바이 전류가 상기 제2 기준 값보다 큰 제3 기준 값을 초과하는 경우에(단계 S230: 예), 상기 제품 이상이 매우 심해져서 더 이상의 추가 조치가 무의미한 것으로 판단하고, 상기 불량 칩에 대한 동작 중단을 포함하는 제3 제어 프로세스를 수행할 수 있다(단계 S330). 다시 말하면, 상기 불량 칩을 셧다운 시키고 더 이상 사용하지 않을 수 있다.
한편, 센싱된 상기 스탠바이 전류가 상기 제1 기준 값을 초과하였으나 상기 제2 기준 값보다 작거나 같은 경우에는(단계 S220: 아니오), 단계 S320을 수행한 이후에 주기적으로 단계 S100 및 S230을 반복할 수 있다.
한편, 도 8을 참조하여 3단계의 제어 동작을 수행하는 것으로 예시하였으나, 본 발명은 이에 한정되지 않으며, 2단계 또는 4단계 이상의 복수 개의 단계들을 포함하는 단계별 제어 동작을 수행할 수도 있다.
도 9는 도 8의 제1 제어 프로세스를 수행하는 단계의 일 예를 나타내는 순서도이다. 도 10a, 10b, 10c, 10d, 10e, 10f, 10g, 11a, 11b, 11c 및 11d는 도 9의 제1 제어 프로세스를 설명하기 위한 도면들이다.
도 8, 9, 10a, 10b, 10c, 10d, 10e, 10f, 10g, 11a, 11b, 11c 및 11d를 참조하면, 상기 제1 제어 프로세스를 수행하는데 있어서(단계 S310), 먼저 상기 스토리지 장치에 상기 제품 이상이 발생하였음을 상기 외부의 호스트 장치에 통지(notice 또는 alarm)할 수 있다(단계 S312).
일 실시예에서, 상기 제품 이상이 발생하였음을 상기 외부의 호스트 장치에 통지하는 동작은 소프트웨어 방식으로 구현될 수 있으며, 예를 들어 AER(Asynchronous Event Request) 커맨드에 기초하여 수행될 수 있다. 예를 들어, 도 10a는 NVMe 표준에 따른 커맨드들 중 일부를 예시하고 있으며, 점선으로 표시된 것처럼 AER 커맨드를 포함하고 있다.
AER 커맨드는 장치의 오류(device error) 및 건강(health) 관련 이벤트 발생 시 관련 정보를 호스트 장치에 전송하기 위해 이용되는 커맨드이다. 예를 들어, AER 이벤트는 특정 커맨드의 오류가 아닌 일반적인 오류를 포함하는 오류 이벤트, SMART 또는 건강 상태(Health Status) 이벤트, 그 밖에 벤더 특정(Vendor specific) 이벤트 등을 포함할 수 있다. AER 이벤트가 발생하였으나 이에 대한 요청(request) 커맨드가 없는 경우에, 컨트롤러 내부에 해당 이벤트를 저장하였다가 요청 이벤트가 발생(issue)되면 보고할 수 있다.
다른 실시예에서, 상기 제품 이상이 발생하였음을 상기 외부의 호스트 장치에 통지하는 동작은 하드웨어 방식으로 구현될 수 있으며, 예를 들어 GPIO(general purpose input/output) 기능에 기초하여 수행될 수 있다.
구체적으로, 도 10b에 도시된 것처럼, 시스템 LED(light emitting diode)를 제어하여(예를 들어, 턴 온하여) 상기 제품 이상이 발생하였음을 상기 외부의 호스트 장치에 통지할 수 있다. 예를 들어, 스토리지 모듈(301)은 GPIO 신호(GPIOS)를 수신하는 트랜지스터(T1)를 포함하고, 트랜지스터(T1)는 외부의 LED(LED1) 및 저항(R1)을 통해 전원 전압(VCC)과 연결될 수 있다. GPIO 신호(GPIOS)의 레벨에 따라 LED(LED1)가 발광하여 상기 제품 이상이 발생하였음을 통지할 수 있다. 실시예에 따라서, 스토리지 모듈(301)에 포함되어 있는 LED 기능 지원을 위한 GPIO를 사용하거나, 이상 감지용 GPIO를 별도로 구비할 수 있다.
또한, 도 10c, 10d, 10e, 10f 및 10g에 도시된 것처럼, 스토리지 모듈의 N/C(not connector) 핀 또는 CONFIG 핀을 사용하여 상기 제품 이상이 발생하였음을 상기 외부의 호스트 장치에 통지할 수 있다. 예를 들어, 도 10c는 스토리지 모듈의 핀들의 배치 및 기능의 일부를 예시하고 있으며, 숫자는 핀 번호를 나타내고 글자는 핀 기능을 나타낼 수 있다. 도 10c의 N/C 또는 CONFIG_1로 표기된 핀을 사용할 수 있다.
또한, 도 10d에 도시된 회로 구조를 이용하고 상술한 N/C 핀을 이용하여 상기 제품 이상이 발생하였음을 통지할 수 있다. 도 10d의 알림 회로는 GPIO 신호(GPIOS)를 수신하는 트랜지스터(T2)를 포함하고, 트랜지스터(T2)는 저항(R2)을 통해 전원 전압(VCC)과 연결되며, 알림 신호(HOUT)를 출력할 수 있다. GPIO 신호(GPIOS)는 idle 구간에서 하이 레벨을 가지고 urgent 구간에서 로우 레벨을 가지며, 예를 들어 제1 시점(t1)에서 GPIO 신호(GPIOS)가 하이 레벨에서 로우 레벨로 천이되면 알림 신호(HOUT)는 로우 레벨에서 하이 레벨로 천이될 수 있다. 또한, normal 구간에서 하이 레벨 상태에서 펄스 구간의 폭으로 각 단계를 구분할 수 있다. 예를 들어, 도 10e에 도시된 것처럼 제1 시간 간격(TA)으로 토글되면 센싱된 상기 스탠바이 전류가 상기 제1 기준 값을 초과하는 것을 나타내고, 도 10f에 도시된 것처럼 제2 시간 간격(TB)으로 토글되면 센싱된 상기 스탠바이 전류가 상기 제2 기준 값을 초과하는 것을 나타내며, 도 10g에 도시된 것처럼 제3 시간 간격(TC)으로 토글되거나 항상 하이 레벨을 가지면 상기 스탠바이 전류가 상기 제3 기준 값을 초과하는 것을 나타낼 수 있다. 예를 들어, 제2 시간 간격(TB)은 제1 시간 간격(TA)보다 길고 제3 시간 간격(TC)보다 짧을 수 있다. 예를 들어, 도 10e, 10f 및 10g의 신호는 GPIO 신호(GPIOS) 또는 알림 신호(HOUT)일 수 있다.
다음에 상기 스토리지 장치에 상기 제품 이상이 발생하였음을 기록(log)할 수 있다(단계 S314). 실시예에 따라서, 상기 제품 이상의 발생을 상기 스토리지 장치에 내부적으로 기록할 수도 있고, 상기 스토리지 장치 외부의 별도 영역에 기록할 수도 있으며, 상기 스토리지 장치의 내부 및 외부 모두에 기록할 수도 있다.
또한 상기 스토리지 장치에 포함되는 복수의 칩들 중에서 상기 불량 칩의 위치를 확인할 수 있다(단계 S316). 도 2를 참조하여 상술한 것처럼, 스토리지 컨트롤러(310)는 적어도 하나의 컨트롤러 칩의 형태로 구현되고, 복수의 비휘발성 메모리들(320a, 320b, 320c)은 복수의 비휘발성 메모리 칩들의 형태로 구현될 수 있다. 상기 컨트롤러 칩 및 상기 복수의 비휘발성 메모리 칩들을 포함하는 상기 복수의 칩들 중에서 상기 불량 칩을 검출할 수 있다.
일 실시예에서, 상기 복수의 칩들 각각을 순차적으로 턴 온 시키고, 각 칩을 흐르는 전류를 센싱하는 방식으로 상기 불량 칩을 검출할 수 있다.
구체적으로, 도 11a, 11b, 11c 및 11d에 도시된 것처럼 상기 스토리지 장치는 컨트롤러 칩(311) 및 비휘발성 메모리 칩들(321, 322, 323)을 포함할 수 있다. 먼저 도 11a에 도시된 것처럼 컨트롤러 칩(311)만을 턴 온시키고 나머지 칩들(321, 322, 323)을 턴 오프 시킬 수 있다. 도 11a, 11b, 11c 및 11d에서, 턴 오프된 칩들(예를 들어, 도 11a의 비휘발성 메모리 칩들(321, 322, 323))을 점선으로 도시하였다. 상기 스토리지 장치에 포함되는 센싱 및 제어 블록(345)은 컨트롤러 칩(311)을 흐르는 전류(ISEN1)를 센싱할 수 있다.
이후에, 도 11b에 도시된 것처럼 비휘발성 메모리 칩(321)만을 턴 온 시키고 나머지 칩들(311, 322, 323)을 턴 오프 시키며, 센싱 및 제어 블록(345)은 비휘발성 메모리 칩(321)을 흐르는 전류(ISEN2)를 센싱할 수 있다. 도 11c에 도시된 것처럼 비휘발성 메모리 칩(322)만을 턴 온 시키고 나머지 칩들(311, 321, 323)을 턴 오프 시키며, 센싱 및 제어 블록(345)은 비휘발성 메모리 칩(322)을 흐르는 전류(ISEN3)를 센싱할 수 있다. 도 11d에 도시된 것처럼 비휘발성 메모리 칩(323)만을 턴 온 시키고 나머지 칩들(311, 321, 322)을 턴 오프 시키며, 센싱 및 제어 블록(345)은 비휘발성 메모리 칩(323)을 흐르는 전류(ISEN4)를 센싱할 수 있다.
센싱 및 제어 블록(345)은 센싱된 전류들(ISEN1, ISEN2, ISEN3, ISEN4) 중에서 이상 전류를 판단하고 이에 기초하여 상기 불량 칩의 위치를 확인할 수 있다. 예를 들어, 전류(ISEN1)가 이상 전류인 경우에, 센싱 및 제어 블록(345)은 전류(ISEN1)가 센싱된 컨트롤러 칩(311)이 상기 불량 칩인 것으로 판단할 수 있다.
한편 도시하지는 않았으나, 버퍼 메모리(330) 또한 적어도 하나의 버퍼 메모리 칩의 형태로 구현될 수 있으며, 이 경우 상기 컨트롤러 칩, 상기 복수의 비휘발성 메모리 칩들 및 상기 버퍼 메모리 칩을 포함하는 상기 복수의 칩들 중에서 상기 불량 칩을 검출할 수 있다.
도 12는 도 8의 제2 제어 프로세스를 수행하는 단계의 일 예를 나타내는 순서도이다.
도 8 및 12를 참조하면, 상기 제2 제어 프로세스를 수행하는데 있어서(단계 S320), 먼저 상기 불량 칩에 인가되는 구동 전압을 제어하고(단계 S322), 상기 불량 칩에 대한 동적 스로틀링(dynamic throttling) 동작을 활성화시킬 수 있다(단계 S324). 상기 불량 칩을 셧다운 시키기 전까지는 성능이 떨어지더라도 상기 불량 칩이 비정상적인 동작을 하지 않도록 할 필요가 있으므로, 상기 구동 전압의 제어 및 상기 동적 스로틀링 동작의 활성화를 통해 상기 불량 칩의 성능을 의도적으로 감소시킬 수 있다.
일 실시예에서, 상기 동적 스로틀링 동작은 상기 스토리지 장치의 동작 온도 및 센싱된 상기 스탠바이 전류에 기초하여 수행될 수 있다. 다시 말하면, 온도 기반으로 처리량을 감소시키는 DTT(Dynamic Thermal Throttling) 동작을 수행할 뿐만 아니라, 추가적으로 상기 스탠바이 전류에 기초하여 스로틀링 동작을 수행할 수 있다.
도 13은 본 발명의 실시예들에 따른 스토리지 장치의 구동 방법을 나타내는 순서도이다. 이하 도 1과 중복되는 설명은 생략한다.
도 13을 참조하면, 본 발명의 실시예들에 따른 스토리지 장치의 구동 방법에서, 상기 스토리지 장치의 제조 시에 측정되는 최초(initial) 스탠바이 전류에 기초하여 상기 적어도 하나의 기준 값을 결정할 수 있다(단계 S500). 단계 S500 이후의 단계 S100, S200 및 S300은 도 1의 단계 S100, S200 및 S300과 각각 실질적으로 동일할 수 있다.
일 실시예에서, 단계 S500의 상기 적어도 하나의 기준 값을 결정하는 과정은 상기 스토리지 장치의 제조 시에만 수행될 수 있다. 예를 들어, 단계 S500은 상기 스토리지 장치의 제조 시에 외부의 제조 장치/테스트 장치 등에 의해 1회 수행되고, 이에 따라 상기 적어도 하나의 기준 값이 설정 및 저장되며, 그 이후에 단계 S500은 상기 스토리지 장치에 이미 저장되어 있는 상기 적어도 하나의 기준 값을 로드하는 동작으로 대체될 수 있다. 이 경우, 이미 저장되어 있는 상기 적어도 하나의 기준 값을 로드하여 단계 S100, S200 및 S300이 수행될 수 있다.
도 14는 도 13의 적어도 하나의 기준 값을 결정하는 단계의 일 예를 나타내는 순서도이다. 도 15는 도 14의 기준 값 결정 동작을 설명하기 위한 도면이다.
도 13, 14 및 15를 참조하면, 상기 최초 스탠바이 전류에 기초하여 상기 적어도 하나의 기준 값을 결정하는데 있어서(단계 S500), 상기 최초 스탠바이 전류는 서로 다른 온도에서 측정되는 두 개 이상의 최초 스탠바이 전류들을 포함하며, 상기 두 개 이상의 최초 스탠바이 전류들을 평균화하여 획득된 평균 최초 스탠바이 전류에 기초하여 상기 적어도 하나의 기준 값이 결정될 수 있다. 도 14 및 15의 실시예는 상기 적어도 하나의 기준 값이 상기 제1, 제2 및 제3 기준 값들을 포함하는 경우를 예시하고 있다.
구체적으로, 제1 온도(HT), 제2 온도(RT) 및 제3 온도(CT)에서 제1 최초 스탠바이 전류(IRS1), 제2 최초 스탠바이 전류(IRS2) 및 제3 최초 스탠바이 전류(IRS3)를 각각 측정할 수 있다(단계 S510). 예를 들어, 제2 온도(RT)는 상온(room temperature)이고, 제1 온도(HT)는 상온보다 높은 고온(high temperature)이며, 제3 온도(CT)는 상온보다 낮은 저온(cold temperature)일 수 있다.
예를 들어, 최초 스탠바이 전류들(IRS1, IRS2, IRS3)을 측정하는데 있어서, 도 5의 단계 S150과 유사하게, 외부 전원 전압(VEXT)에 대한 전체 전류를 온도 별로 측정하고, 복수의 비휘발성 메모리들(320a, 320b, 320c)의 전원 블록을 오프한 이후에 상기 전원 블록이 소모하는 전류를 온도 별로 측정하며, 이에 기초하여 최초 스탠바이 전류들(IRS1, IRS2, IRS3)을 측정할 수 있다.
제1 최초 스탠바이 전류(IRS1), 제2 최초 스탠바이 전류(IRS2) 및 제3 최초 스탠바이 전류(IRS3)를 평균화하여 평균 최초 스탠바이 전류(IRS_AVG)를 획득하고(단계 S520), 평균 최초 스탠바이 전류(IRS_AVG)에 기초하여 제1 기준 값(IREF1), 제2 기준 값(IREF2) 및 제3 기준 값(IREF3)을 결정할 수 있다(단계 S530). 예를 들어, 평균 최초 스탠바이 전류(IRS_AVG)에 X(X는 양의 실수)를 곱하여 제1 기준 값(IREF1)을 획득하고, 평균 최초 스탠바이 전류(IRS_AVG)에 Y(Y는 X보다 큰 양의 실수)를 곱하여 제2 기준 값(IREF2)을 획득하며, 평균 최초 스탠바이 전류(IRS_AVG)에 Z(Z는 Y보다 큰 양의 실수)를 곱하여 제3 기준 값(IREF3)을 획득할 수 있다.
일 실시예에서, 제1 기준 값(IREF1)은 평균 최초 스탠바이 전류(IRS_AVG)의 약 2배이고, 제2 기준 값(IREF2)은 평균 최초 스탠바이 전류(IRS_AVG)의 약 3배이며, 제3 기준 값(IREF3)은 평균 최초 스탠바이 전류(IRS_AVG)의 약 4배일 수 있다. 다시 말하면, X=2이고 Y=3이며 Z=4일 수 있다. 다만 본 발명은 이에 한정되지 않으며, X, Y 및 Z 값은 제품 특성에 따라 다양하게 변경될 수 있다.
한편, 도 14 및 15를 참조하여 서로 다른 3개의 온도 별로 최초 스탠바이 전류를 측정하는 것(즉, 3점 온도 관리를 수행하는 것)으로 예시하였으나, 본 발명은 이에 한정되지 않으며, 2개 또는 4개 이상의 복수 개의 온도 별로 최초 스탠바이 전류를 측정/관리할 수도 있다.
도 16은 본 발명의 실시예들에 따른 스토리지 장치의 구동 방법을 나타내는 순서도이다. 이하 도 1 및 13과 중복되는 설명은 생략한다.
도 16을 참조하면, 본 발명의 실시예들에 따른 스토리지 장치의 구동 방법에서, 상기 스토리지 장치의 제조 시에 측정되는 상기 최초 스탠바이 전류 및 상기 스토리지 장치의 동작 온도에 기초하여 상기 적어도 하나의 기준 값을 결정할 수 있다(단계 S500a). 상기 동작 온도를 추가적으로 고려하는 점을 제외하면, 단계 S500a는 도 13의 단계 S500과 유사할 수 있다.
이후에, 상기 스탠바이 전류를 센싱하고(단계 S100), 상기 동작 온도를 센싱하고(단계 S600), 센싱된 상기 스탠바이 전류, 센싱된 상기 동작 온도 및 상기 적어도 하나의 기준 값에 기초하여 상기 제품 이상이 발생하였는지 판단하며(단계 S200a), 상기 제품 이상이 감지된 경우에 상기 단계별 제어 동작을 수행한다(단계 S300). 단계 S100 및 S300은 도 1의 단계 S100 및 S300과 각각 실질적으로 동일하며, 상기 동작 온도를 추가적으로 고려하는 점을 제외하면 단계 S200a는 도 1의 단계 S200과 유사할 수 있다.
한편, 도 16에서는 단계 S100이 수행된 이후에 단계 S600이 수행되는 것으로 도시하였으나, 본 발명은 이에 한정되지 않으며, 단계 S100과 S600은 실질적으로 동시에 수행될 수도 있다.
도 17은 도 16의 적어도 하나의 기준 값을 결정하는 단계의 일 예를 나타내는 순서도이다. 도 18은 도 17의 기준 값 결정 동작을 설명하기 위한 도면이다. 이하 도 14 및 15와 중복되는 설명은 생략한다.
도 16, 17 및 18을 참조하면, 상기 최초 스탠바이 전류에 기초하여 상기 적어도 하나의 기준 값을 결정하는데 있어서(단계 S500), 상기 최초 스탠바이 전류는 서로 다른 온도에서 측정되는 두 개 이상의 최초 스탠바이 전류들을 포함하며, 상기 두 개 이상의 최초 스탠바이 전류들 및 상기 동작 온도에 기초하여 상기 적어도 하나의 기준 값이 결정될 수 있다. 도 17 및 18의 실시예 또한 상기 적어도 하나의 기준 값이 상기 제1, 제2 및 제3 기준 값들을 포함하는 경우를 예시하고 있다.
구체적으로, 단계 S510은 도 14의 단계 S510과 실질적으로 동일할 수 있다.
제1 최초 스탠바이 전류(IRS1)에 기초하여 제1 온도(HT)에서의 제1 기준 값(IREF1), 제2 기준 값(IREF2) 및 제3 기준 값(IREF3)을 결정할 수 있다(단계 S540). 예를 들어, 제1 최초 스탠바이 전류(IRS1)에 X를 곱하여 제1 온도(HT)에서의 제1 기준 값(IREF1)을 획득하고, 제1 최초 스탠바이 전류(IRS1)에 Y를 곱하여 제1 온도(HT)에서의 제2 기준 값(IREF2)을 획득하며, 제1 최초 스탠바이 전류(IRS1)에 Z를 곱하여 제1 온도(HT)에서의 제3 기준 값(IREF3)을 획득할 수 있다.
이와 유사하게, 제2 최초 스탠바이 전류(IRS2)에 기초하여 제2 온도(RT)에서의 제1 기준 값(IREF1), 제2 기준 값(IREF2) 및 제3 기준 값(IREF3)을 결정하며(단계 S550), 제3 최초 스탠바이 전류(IRS3)에 기초하여 제3 온도(CT)에서의 제1 기준 값(IREF1), 제2 기준 값(IREF2) 및 제3 기준 값(IREF3)을 결정할 수 있다(단계 S560).
도 19는 도 16의 스토리지 장치에 제품 이상이 발생하였는지 판단하는 단계 및 스토리지 장치에 제품 이상이 감지된 경우에 단계별 제어 동작을 수행하는 단계의 일 예를 나타내는 순서도이다. 이하 도 8과 중복되는 설명은 생략한다.
도 16, 18 및 19를 참조하면, 상기 동작 온도를 추가적으로 고려하는 점을 제외하면, 단계 S210a, S220a 및 S320a는 도 8의 단계 S210, S220 및 S230과 각각 유사할 수 있다. 단계 S310, S320 및 S330은 도 8의 단계 S310, S320 및 S330과 각각 실질적으로 동일할 수 있다.
구체적으로, 센싱된 상기 스탠바이 전류가 현재 동작 온도에 적합한 상기 제1 기준 값을 초과하는지 판단할 수 있다(단계 S210a). 예를 들어, 상기 현재 동작 온도가 제1 온도(HT)인 경우에는 센싱된 상기 스탠바이 전류가 IRS1*X 값을 초과하는지 판단하고, 상기 현재 동작 온도가 제2 온도(RT)인 경우에는 센싱된 상기 스탠바이 전류가 IRS2*X 값을 초과하는지 판단하며, 상기 현재 동작 온도가 제3 온도(CT)인 경우에는 센싱된 상기 스탠바이 전류가 IRS3*X 값을 초과하는지 판단할 수 있다.
이와 유사하게, 센싱된 상기 스탠바이 전류가 상기 현재 동작 온도에 적합한 상기 제2 기준 값을 초과하는지 판단하고(단계 S220a), 센싱된 상기 스탠바이 전류가 상기 현재 동작 온도에 적합한 상기 제3 기준 값을 초과하는지 판단할 수 있다(단계 S230a).
도 20 및 21은 본 발명의 실시예들에 따른 스토리지 장치 및 이를 포함하는 스토리지 시스템을 나타내는 블록도이다. 이하 도 2와 중복되는 설명은 생략한다.
도 20을 참조하면, 스토리지 시스템(100a)은 호스트 장치(200) 및 스토리지 장치(300a)를 포함한다. 스토리지 장치(300a)는 스토리지 컨트롤러(310), 복수의 비휘발성 메모리들(320a, 320b, 320c), 버퍼 메모리(330), 전원 관리 집적 회로(340a), 센싱 및 제어 블록(345), 전원 손실 보호 집적 회로(Power-Loss Protection Integrated Circuit; PLP IC)(350a) 및 온도 센서(360)를 포함한다.
전원 손실 보호 집적 회로(350a)를 더 포함하고 센싱 및 제어 블록(345)이 전원 손실 보호 집적 회로(350a)에 포함되는 것을 제외하면, 도 20의 스토리지 시스템(100a)은 도 2의 스토리지 시스템(100)과 실질적으로 동일할 수 있다.
전원 손실 보호 집적 회로(350a)는 외부 전원 전압(VEXT)에 기초하여 내부 전원 전압을 발생하며, 전원 관리 집적 회로(340a)는 상기 내부 전원 전압에 기초하여 스토리지 컨트롤러(310), 복수의 비휘발성 메모리들(320a, 320b, 320c) 및 버퍼 메모리(330)에 공급되는 전원 신호를 발생 및 제어할 수 있다.
또한, 전원 손실 보호 집적 회로(350a)는 스토리지 장치(300a)에 전원이 갑자기 오프(off)된 경우에(즉, sudden power off의 경우에), 스토리지 컨트롤러(310), 복수의 비휘발성 메모리들(320a, 320b, 320c) 및 버퍼 메모리(330)에 공급되는 상기 전원 신호를 발생하기 위한 보조 전원 전압을 발생하며, 전원 관리 집적 회로(340a)는 상기 보조 전원 전압에 기초하여 스토리지 장치(300a)에 전원이 오프된 이후에도 상기 전원 신호를 일정 시간 동안 공급할 수 있다. 예를 들어, 전원 손실 보호 집적 회로(350a)는 상기 보조 전원 전압을 발생하기 위한 적어도 하나의 커패시터를 포함할 수 있다.
도 21을 참조하면, 스토리지 시스템(100b)은 호스트 장치(200) 및 스토리지 장치(300b)를 포함한다. 스토리지 장치(300b)는 스토리지 컨트롤러(310), 복수의 비휘발성 메모리들(320a, 320b, 320c), 버퍼 메모리(330), 전원 관리 집적 회로(340b), 센싱 및 제어 블록(345) 및 온도 센서(360)를 포함한다.
센싱 및 제어 블록(345)이 전원 관리 집적 회로(340b)에 포함되지 않는 것을 제외하면, 도 21의 스토리지 시스템(100b)은 도 2의 스토리지 시스템(100)과 실질적으로 동일할 수 있다.
한편 도시하지는 않았으나, 센싱 및 제어 블록(345)의 배치는 스토리지 장치 내에서 다양하게 변경될 수 있다.
본 발명의 실시예들에 따른 스토리지 장치 및 그 구동 방법에서, 스토리지 장치를 흐르는 스탠바이 전류를 센싱하며, 센싱 결과에 따라 제품 이상이 감지된 경우에 스토리지 장치에 대한 단계별 제어 동작을 수행할 수 있다. 스탠바이 전류를 활용함으로써, 스토리지 장치에 대한 전반적인 제품 신뢰성을 향상시킬 수 있다.
한편, 본 발명의 실시예들은 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터로 판독 가능한 프로그램 코드를 포함하는 제품 등의 형태로 구현될 수도 있다. 상기 컴퓨터로 판독 가능한 프로그램 코드는 다양한 컴퓨터 또는 다른 데이터 처리 장치의 프로세서로 제공될 수 있다. 상기 컴퓨터로 판독 가능한 매체는 컴퓨터로 판독 가능한 신호 매체 또는 컴퓨터로 판독 가능한 기록 매체일 수 있다. 상기 컴퓨터로 판독 가능한 기록 매체는 명령어 실행 시스템, 장비 또는 장치 내에 또는 이들과 접속되어 프로그램을 저장하거나 포함할 수 있는 임의의 유형적인 매체일 수 있다. 예를 들어, 상기 컴퓨터로 판독 가능한 매체는 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, 비일시적은 저장 매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장 매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
도 22는 본 발명의 실시예들에 따른 전자 시스템을 나타내는 블록도이다.
도 22를 참조하면, 전자 시스템(4000)은 프로세서(4100), 통신 모듈(4200), 디스플레이/터치 모듈(4300), 스토리지 장치(4400) 및 메모리 장치(4500)를 포함한다. 예를 들어, 전자 시스템(4000)은 임의의 모바일 시스템 또는 컴퓨팅 시스템일 수 있다.
프로세서(4100)는 전자 시스템(4000)의 전반적인 동작을 제어한다. 프로세서(4100)는 운영 체제, 어플리케이션 등을 실행할 수 있다. 통신 모듈(4200)은 외부와의 유선 통신 및/또는 무선 통신을 제어하도록 구현될 수 있다. 디스플레이/터치 모듈(4300)은 프로세서(4100)에서 처리된 데이터를 디스플레이 하거나, 터치 패널로부터 데이터를 입력 받도록 구현될 수 있다. 스토리지 장치(4400)는 사용자의 데이터를 저장하며, 본 발명의 실시예들에 따른 구동 방법에 기초하여 동작할 수 있다. 메모리 장치(4500)는 전자 시스템(4000)의 처리 동작 시 필요한 데이터를 임시로 저장할 수 있다. 프로세서(4100) 및 스토리지 장치(4400)가 도 2의 호스트 장치(200) 및 스토리지 장치(300)에 각각 대응할 수 있다.
한편, 도시하지는 않았으나, 전자 시스템은 서버, 상기 서버를 구동하는데 필요한 데이터를 저장하는 복수의 스토리지 장치들 및 상기 복수의 스토리지 장치들을 제어하기 위한 RAID(Redundant Array of Independent Drives) 컨트롤러를 포함하는 스토리지 서버의 형태로 구현될 수도 있다.
본 발명의 실시예들은 스토리지 장치 및 스토리지 시스템을 포함하는 임의의 전자 장치 및 시스템에 유용하게 이용될 수 있다. 예를 들어, 본 발명의 실시예들은 PC(Personal Computer), 서버 컴퓨터(server computer), 데이터 센터(data center), 워크스테이션(workstation), 노트북(laptop), 핸드폰(cellular), 스마트 폰(smart phone), MP3 플레이어, PDA(Personal Digital Assistant), PMP(Portable Multimedia Player), 디지털 TV, 디지털 카메라, 포터블 게임 콘솔(portable game console), 네비게이션(navigation) 기기, 웨어러블(wearable) 기기, IoT(Internet of Things) 기기, IoE(Internet of Everything) 기기, e-북(e-book), VR(Virtual Reality) 기기, AR(Augmented Reality) 기기 등과 같은 전자 시스템에 더욱 유용하게 적용될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (20)

  1. 스토리지 장치의 구동 방법으로서,
    상기 스토리지 장치를 흐르는 스탠바이(standby) 전류를 센싱하는 단계;
    센싱된 상기 스탠바이 전류 및 적어도 하나의 기준 값에 기초하여 상기 스토리지 장치에 제품 이상이 발생하였는지 판단하는 단계; 및
    상기 스토리지 장치에 대한 상기 제품 이상이 감지된 경우에, 상기 스토리지 장치의 동작과 관련된 두 개 이상의 제어 프로세스들이 순차적으로 진행되는 단계별(step-wise) 제어 동작을 수행하는 단계를 포함하는 스토리지 장치의 구동 방법.
  2. 제 1 항에 있어서, 상기 단계별 제어 동작을 수행하는 단계는,
    센싱된 상기 스탠바이 전류가 제1 기준 값을 초과하는 경우에, 불량 칩의 위치 확인을 포함하는 제1 제어 프로세스를 수행하는 단계;
    센싱된 상기 스탠바이 전류가 상기 제1 기준 값보다 큰 제2 기준 값을 초과하는 경우에, 상기 불량 칩에 대한 성능 제어를 포함하는 제2 제어 프로세스를 수행하는 단계; 및
    센싱된 상기 스탠바이 전류가 상기 제2 기준 값보다 큰 제3 기준 값을 초과하는 경우에, 상기 불량 칩에 대한 동작 중단을 포함하는 제3 제어 프로세스를 수행하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 구동 방법.
  3. 제 2 항에 있어서, 상기 제1 제어 프로세스를 수행하는 단계는,
    상기 스토리지 장치에 상기 제품 이상이 발생하였음을 외부의 호스트 장치에 통지하는 단계;
    상기 스토리지 장치에 상기 제품 이상이 발생하였음을 기록하는 단계; 및
    상기 스토리지 장치에 포함되는 복수의 칩들 중에서 상기 불량 칩의 위치를 확인하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 구동 방법.
  4. 제 3 항에 있어서, 상기 불량 칩의 위치를 확인하는 단계는,
    상기 복수의 칩들 각각을 순차적으로 턴 온 시키고, 각 칩을 흐르는 전류를 센싱하는 방식으로 수행되는 것을 특징으로 하는 스토리지 장치의 구동 방법.
  5. 제 3 항에 있어서, 상기 스토리지 장치에 상기 제품 이상이 발생하였음을 상기 외부의 호스트 장치에 통지하는 단계는,
    AER(Asynchronous Event Request) 커맨드에 기초하여 수행되는 것을 특징으로 하는 스토리지 장치의 구동 방법.
  6. 제 2 항에 있어서, 상기 제2 제어 프로세스를 수행하는 단계는,
    상기 불량 칩에 인가되는 구동 전압을 제어하는 단계; 및
    상기 불량 칩에 대한 동적 스로틀링(dynamic throttling) 동작을 활성화시키는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 구동 방법.
  7. 제 2 항에 있어서,
    상기 스토리지 장치의 제조 시에 측정되는 최초 스탠바이 전류에 기초하여 상기 제1 기준 값, 상기 제2 기준 값 및 상기 제3 기준 값을 결정하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 장치의 구동 방법.
  8. 제 7 항에 있어서,
    상기 최초 스탠바이 전류는 제1 온도에서 측정되는 제1 최초 스탠바이 전류, 상기 제1 온도와 다른 제2 온도에서 측정되는 제2 최초 스탠바이 전류 및 상기 제1 온도 및 상기 제2 온도와 다른 제3 온도에서 측정되는 제3 최초 스탠바이 전류를 포함하고,
    상기 제1 기준 값, 상기 제2 기준 값 및 상기 제3 기준 값을 결정하는 단계는,
    상기 제1 최초 스탠바이 전류, 상기 제2 최초 스탠바이 전류 및 상기 제3 최초 스탠바이 전류를 평균화하여 획득된 평균 최초 스탠바이 전류에 기초하여 상기 제1 기준 값, 상기 제2 기준 값 및 상기 제3 기준 값을 결정하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 구동 방법.
  9. 제 7 항에 있어서,
    상기 최초 스탠바이 전류는 제1 온도에서 측정되는 제1 최초 스탠바이 전류, 상기 제1 온도와 다른 제2 온도에서 측정되는 제2 최초 스탠바이 전류 및 상기 제1 온도 및 상기 제2 온도와 다른 제3 온도에서 측정되는 제3 최초 스탠바이 전류를 포함하고,
    상기 제1 기준 값, 상기 제2 기준 값 및 상기 제3 기준 값을 결정하는 단계는,
    상기 제1 최초 스탠바이 전류에 기초하여 상기 제1 온도에서의 상기 제1 기준 값, 상기 제2 기준 값 및 상기 제3 기준 값을 결정하는 단계;
    상기 제2 최초 스탠바이 전류에 기초하여 상기 제2 온도에서의 상기 제1 기준 값, 상기 제2 기준 값 및 상기 제3 기준 값을 결정하는 단계; 및
    상기 제3 최초 스탠바이 전류에 기초하여 상기 제3 온도에서의 상기 제1 기준 값, 상기 제2 기준 값 및 상기 제3 기준 값을 결정하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 구동 방법.
  10. 제 1 항에 있어서,
    상기 스토리지 장치는 컨트롤러 칩 및 복수의 비휘발성 메모리 칩들을 포함하며,
    상기 스탠바이 전류는 상기 컨트롤러 칩을 흐르는 전류 및 상기 복수의 비휘발성 메모리 칩들을 흐르는 전류들의 총합을 나타내는 것을 특징으로 하는 스토리지 장치의 구동 방법.
  11. 제 1 항에 있어서, 상기 스탠바이 전류를 센싱하는 단계는,
    상기 스토리지 장치의 구동 중에 상기 스토리지 장치와 외부의 호스트 장치 사이에 신호 입출력이 존재하지 않는 유휴(idle) 구간 동안에 수행되는 것을 특징으로 하는 스토리지 장치의 구동 방법.
  12. 제 11 항에 있어서, 상기 스탠바이 전류를 센싱하는 단계는,
    상기 유휴 구간마다 주기적으로 수행되는 것을 특징으로 하는 스토리지 장치의 구동 방법.
  13. 제 1 항에 있어서, 상기 스탠바이 전류를 센싱하는 단계는,
    상기 스토리지 장치가 파워 온 된 직후에 POR(Power On Reset) 구간 동안에 수행되는 것을 특징으로 하는 스토리지 장치의 구동 방법.
  14. 복수의 데이터들을 저장하는 복수의 비휘발성 메모리들;
    상기 복수의 비휘발성 메모리들의 동작을 제어하는 스토리지 컨트롤러; 및
    상기 스토리지 컨트롤러를 흐르는 전류 및 상기 복수의 비휘발성 메모리들을 흐르는 전류들의 총합을 나타내는 스탠바이(standby) 전류를 센싱하고, 센싱된 상기 스탠바이 전류 및 적어도 하나의 기준 값에 기초하여 스토리지 장치에 제품 이상이 발생하였는지 판단하며, 상기 스토리지 장치에 대한 상기 제품 이상이 감지된 경우에 상기 스토리지 장치의 동작과 관련된 두 개 이상의 제어 프로세스들이 순차적으로 진행되는 단계별(step-wise) 제어 동작을 수행하는 센싱 및 제어 블록을 포함하는 스토리지 장치.
  15. 제 14 항에 있어서,
    상기 스토리지 컨트롤러 및 상기 복수의 비휘발성 메모리들에 공급되는 전원 신호를 발생 및 제어하는 전원 관리 집적 회로(Power Management Integrated Circuit; PMIC)를 더 포함하고,
    상기 센싱 및 제어 블록은 상기 전원 관리 집적 회로에 포함되는 것을 특징으로 하는 스토리지 장치.
  16. 제 14 항에 있어서,
    상기 스토리지 장치에 전원이 갑자기 오프(off)된 경우에 상기 스토리지 컨트롤러 및 상기 복수의 비휘발성 메모리들에 공급되는 전원 신호를 발생하기 위한 보조 전원 전압을 발생하는 전원 손실 보호 집적 회로(Power-Loss Protection Integrated Circuit; PLP IC)를 더 포함하고,
    상기 센싱 및 제어 블록은 상기 전원 손실 보호 집적 회로에 포함되는 것을 특징으로 하는 스토리지 장치.
  17. 제 14 항에 있어서,
    상기 스토리지 장치의 제조 시에 측정되는 최초 스탠바이 전류에 기초하여 상기 적어도 하나의 기준 값이 결정되는 것을 특징으로 하는 스토리지 장치.
  18. 제 17 항에 있어서,
    상기 최초 스탠바이 전류는 서로 다른 온도에서 측정되는 두 개 이상의 최초 스탠바이 전류들을 포함하며,
    상기 두 개 이상의 최초 스탠바이 전류들을 평균화하여 획득된 평균 최초 스탠바이 전류에 기초하여 상기 적어도 하나의 기준 값이 결정되는 것을 특징으로 하는 스토리지 장치.
  19. 제 17 항에 있어서,
    상기 스토리지 장치의 동작 온도를 센싱하는 온도 센서를 더 포함하고,
    상기 최초 스탠바이 전류는 서로 다른 온도에서 측정되는 두 개 이상의 최초 스탠바이 전류들을 포함하며,
    상기 두 개 이상의 최초 스탠바이 전류들 및 센싱된 상기 동작 온도에 기초하여 상기 적어도 하나의 기준 값이 결정되는 것을 특징으로 하는 스토리지 장치.
  20. 제 14 항에 있어서,
    상기 복수의 비휘발성 메모리들에 저장되어 있거나 저장하고자 하는 상기 복수의 데이터들을 임시 저장하는 버퍼 메모리를 더 포함하고,
    상기 스탠바이 전류는 상기 스토리지 컨트롤러를 흐르는 전류, 상기 복수의 비휘발성 메모리들을 흐르는 전류들 및 상기 버퍼 메모리를 흐르는 전류의 총합을 나타내는 것을 특징으로 하는 스토리지 장치.

KR1020190098846A 2019-08-13 2019-08-13 신뢰성 향상을 위한 스토리지 장치의 구동 방법 및 이를 수행하는 스토리지 장치 KR20210019784A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020190098846A KR20210019784A (ko) 2019-08-13 2019-08-13 신뢰성 향상을 위한 스토리지 장치의 구동 방법 및 이를 수행하는 스토리지 장치
US16/863,531 US11593242B2 (en) 2019-08-13 2020-04-30 Method of operating storage device for improving reliability, storage device performing the same and method of operating storage using the same
DE102020113341.3A DE102020113341A1 (de) 2019-08-13 2020-05-18 Verfahren zum betrieb einer speichervorichtung zur verbesserung der zuverlässigkeit, speichervorrichtung, die dasselbe durchführt, und verfahren zum betrieb eines dieselbe verwendenden speichers
CN202010812374.9A CN112394879B (zh) 2019-08-13 2020-08-13 操作存储设备的方法、存储设备及操作存储系统的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190098846A KR20210019784A (ko) 2019-08-13 2019-08-13 신뢰성 향상을 위한 스토리지 장치의 구동 방법 및 이를 수행하는 스토리지 장치

Publications (1)

Publication Number Publication Date
KR20210019784A true KR20210019784A (ko) 2021-02-23

Family

ID=74239815

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190098846A KR20210019784A (ko) 2019-08-13 2019-08-13 신뢰성 향상을 위한 스토리지 장치의 구동 방법 및 이를 수행하는 스토리지 장치

Country Status (4)

Country Link
US (1) US11593242B2 (ko)
KR (1) KR20210019784A (ko)
CN (1) CN112394879B (ko)
DE (1) DE102020113341A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11538545B2 (en) * 2021-04-22 2022-12-27 Micron Technology, Inc. Auto-power on mode for biased testing of a power management integrated circuit (PMIC)

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0154750B1 (ko) 1995-07-26 1998-12-01 김광호 반도체 메모리의 누설전류 감지회로
US6366108B2 (en) * 1998-12-01 2002-04-02 Agilent Technologies, Inc. System and method for detecting defects within an electrical circuit by analyzing quiescent current
JP3910078B2 (ja) * 2001-05-11 2007-04-25 株式会社ルネサステクノロジ 半導体記憶装置および半導体記憶装置のテスト方法
JP2003249100A (ja) 2002-02-26 2003-09-05 Kawasaki Microelectronics Kk 半導体集積回路及び半導体集積回路テスト方法
KR100735677B1 (ko) 2005-12-28 2007-07-04 삼성전자주식회사 스탠바이 전류 저감 회로 및 이를 구비한 반도체 메모리장치
US8984216B2 (en) * 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
JP2013037733A (ja) 2011-08-05 2013-02-21 Renesas Electronics Corp 半導体記憶装置
US8817570B2 (en) 2012-02-13 2014-08-26 GlobalFoundries, Inc. Devices having bias temperature instability compensation
US9105357B2 (en) * 2013-09-09 2015-08-11 Kabushiki Kaisha Toshiba Semiconductor memory device and defective judging method thereof
KR20180040288A (ko) * 2016-10-12 2018-04-20 삼성전자주식회사 비휘발성 메모리 장치의 리클레임 제어 방법, 상기 비휘발성 메모리 장치를 포함하는 저장 장치의 동작 방법 및 저장 장치
KR20180135662A (ko) 2017-06-13 2018-12-21 삼성전자주식회사 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법
KR102611634B1 (ko) * 2018-01-22 2023-12-08 삼성전자주식회사 스토리지 장치, 스토리지 시스템 및 스토리지 장치의 동작 방법
US10566072B2 (en) * 2018-03-06 2020-02-18 Winbond Electronics Corp. Detection methods for NOR flash memory

Also Published As

Publication number Publication date
CN112394879A (zh) 2021-02-23
DE102020113341A1 (de) 2021-02-18
US20210049086A1 (en) 2021-02-18
CN112394879B (zh) 2024-05-17
US11593242B2 (en) 2023-02-28

Similar Documents

Publication Publication Date Title
US10943639B2 (en) Data storage device and operating method thereof
CN111400200A (zh) 控制器及其操作方法
KR102571747B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US11748223B2 (en) Method of operating storage device, storage device performing the same and storage system including the same
US11704048B2 (en) Electronic device
US11282584B2 (en) Multi-chip package and method of testing the same
US20190220228A1 (en) Memory system and operating method thereof
US20230004320A1 (en) Method of managing debugging log in storage device
KR20210147696A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN109960466B (zh) 存储器系统及其操作方法
US11748025B2 (en) Nonvolatile memory device, data storage device including the same and operating method thereof
CN110083305B (zh) 存储器系统及其操作方法
KR20200076846A (ko) 메모리 장치에 저장된 데이터의 에러를 검출하는 장치 및 그 동작 방법
US9837166B2 (en) Data storage device and operating method thereof
CN112394879B (zh) 操作存储设备的方法、存储设备及操作存储系统的方法
KR102469098B1 (ko) 불휘발성 메모리 장치, 불휘발성 메모리 장치의 동작 방법 및 이를 포함하는 데이터 저장 장치
US20150169235A1 (en) Data storage device and operating method thereof
US11157401B2 (en) Data storage device and operating method thereof performing a block scan operation for checking for valid page counts
US10776008B2 (en) Memory system and operating method thereof
KR20190037659A (ko) 불휘발성 메모리 장치, 불휘발성 메모리 장치의 동작 방법 및 불휘발성 메모리 장치를 포함하는 데이터 저장 장치
KR20180047808A (ko) 데이터 저장 장치 및 그것의 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal