KR20150112075A - 스토리지 장치 및 스토리지 장치의 동작 방법 - Google Patents

스토리지 장치 및 스토리지 장치의 동작 방법 Download PDF

Info

Publication number
KR20150112075A
KR20150112075A KR1020140035144A KR20140035144A KR20150112075A KR 20150112075 A KR20150112075 A KR 20150112075A KR 1020140035144 A KR1020140035144 A KR 1020140035144A KR 20140035144 A KR20140035144 A KR 20140035144A KR 20150112075 A KR20150112075 A KR 20150112075A
Authority
KR
South Korea
Prior art keywords
upiu
fields
status information
data
field
Prior art date
Application number
KR1020140035144A
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 KR1020140035144A priority Critical patent/KR20150112075A/ko
Priority to US14/541,335 priority patent/US20150278087A1/en
Priority to CN201510136929.1A priority patent/CN104951402B/zh
Publication of KR20150112075A publication Critical patent/KR20150112075A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7206Reconfiguration of flash memory system
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

본 발명은 스토리지 장치의 동작 방법에 관한 것이다. 본 발명의 동작 방법은, 요청을 수신하는 단계, 수신된 요청에 대응하는 동작을 수행하는 단계, 수행된 동작에 대한 정보를 포함하는 응답 데이터를 생성하는 단계, 그리고 생성된 응답 데이터를 출력하는 단계로 구성한다. 스토리지 장치의 상태에 대한 정보를 포함하는 상태 정보가 요청 및 동작과 독립적으로 수집된다. 응답 데이터를 생성하는 단계에서, 상태 정보가 응답 데이터에 추가된다.

Description

스토리지 장치 및 스토리지 장치의 동작 방법{STORAGE DEVICE AND OPERATING METHOD OF STORAGE DEVICE}
본 발명은 스토리지 장치 및 스토리지 장치의 동작 방법에 관한 것이다.
스토리지 장치는 컴퓨터, 스마트폰, 스마트패드 등과 같은 호스트 장치의 제어에 따라 데이터를 저장하는 장치이다. 스토리지 장치는 하드 디스크 드라이브(HDD, Hard Disk Drive)와 같이 자기 디스크에 데이터를 저장하는 장치, 솔리드 스테이트 드라이브(SSD, Solid State Drive), 메모리 카드 등과 같이 반도체 메모리, 특히 불휘발성 메모리에 데이터를 저장하는 장치를 포함한다.
불휘발성 메모리는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등을 포함한다.
반도체 제조 기술이 발전되면서, 스토리지 장치와 통신하는 컴퓨터, 스마트폰, 스마트패드 등과 같은 호스트 장치의 동작 속도가 향상되고 있다. 또한, 스토리지 장치 및 스토리지 장치의 호스트 장치에서 사용되는 콘텐츠의 용량이 증가하고 있다. 이에 따라, 더 향상된 동작 성능을 갖는 스토리지 장치에 대한 요구가 지속적으로 제기되고 있다.
본 발명의 목적은 향상된 동작 성능을 갖는 스토리지 장치 및 스토리지 장치의 동작 방법을 제공하는 데에 있다.
불휘발성 메모리 및 상기 불휘발성 메모리를 제어하도록 구성되는 메모리 컨트롤러를 포함하는 본 발명의 실시 예에 따른 스토리지 장치의 동작 방법은, 요청을 수신하는 단계; 상기 수신된 요청에 따라, 상기 수신된 요청에 대응하는 동작을 수행하는 단계; 상기 수행된 동작에 대한 정보를 포함하는 응답 데이터를 생성하는 단계; 그리고 상기 생성된 응답 데이터를 출력하는 단계를 포함하고, 상기 스토리지 장치의 상태에 대한 정보를 포함하는 상태 정보가 상기 수신된 요청 및 상기 수행된 동작과 독립적으로 수집되고, 상기 응답 데이터를 생성하는 단계에서, 상기 상태 정보가 상기 응답 데이터에 추가된다.
실시 예로서, 상기 응답 데이터 및 상기 상태 정보는, 상기 수신된 요청에 대한 응답으로 출력된다.
실시 예로서, 상기 응답 데이터 및 상기 상태 정보는, UFS (Universal Flash Storage)의 UPIU (UFS Protocol Information Units)의 포맷으로 전송된다.
실시 예로서, 상기 상태 정보는, UFS의 응답 UPIU (Response UPIU) 포맷의 제16 내지 제31 필드들 중 적어도 하나의 필드로서 전송된다.
실시 예로서, 상기 상태 정보는, UFS의 데이터 출력 UPIU (Data Out UPIU) 포맷의 제4 내지 제7 필드들, 제9 필드, 제20 내지 제31 필드들 중 적어도 하나의 필드로서 전송된다.
실시 예로서, 상기 상태 정보는, UFS의 전송 대기 UPIU (Ready To Transfer UPIU) 포맷의 제20 내지 제31 필드들 중 적어도 하나의 필드로서 전송된다.
실시 예로서, 상기 상태 정보는, UFS의 작업 관리 응답 UPIU (Task Management Response UPIU) 포맷의 제20 내지 제31 필드들 중 적어도 하나의 필드로서 전송된다.
실시 예로서, 상기 상태 정보는, UFS의 쿼리 응답 UPIU (Query Response UPIU) 포맷의 제28 내지 제31 필드들 중 적어도 하나의 필드로서 전송된다.
실시 예로서, 상기 상태 정보는, UFS의 쿼리 응답 UPIU (Query Response UPIU) 포맷의 제16, 제17, 그리고 제20 내지 제27 필드들 중 적어도 하나의 필드로서 전송된다.
실시 예로서, 상기 상태 정보는, UFS의 쿼리 응답 UPIU (Query Response UPIU) 포맷의 제16 내지 제19, 그리고 제24 내지 제27 필드들 중 적어도 하나의 필드로서 전송된다.
실시 예로서, 상기 상태 정보는, UFS의 쿼리 응답 UPIU (Query Response UPIU) 포맷의 제16 내지 제22, 그리고 제24 내지 제27 필드들 중 적어도 하나의 필드로서 전송된다.
실시 예로서, 상기 상태 정보는, UFS의 쿼리 응답 UPIU (Query Response UPIU) 포맷의 제13 내지 제27 필드들 중 적어도 하나의 필드로서 전송된다.
실시 예로서, 상기 상태 정보는, UFS의 NOP IN UPIU (Query Response UPIU) 포맷의 제12 내지 제31 필드들 중 적어도 하나의 필드로서 전송된다.
실시 예로서, 상기 상태 정보는, 상기 스토리지 장치의 전원 제어 정보를 포함한다.
실시 예로서, 상기 상태 정보는, 상기 스토리지 장치가 절전 모드로 진입할 시점에 대한 정보를 포함한다.
본 발명의 실시 예에 따른 스토리지 장치는, 불휘발성 메모리; 그리고 상기 불휘발성 메모리를 제어하도록 구성되는 메모리 컨트롤러를 포함하고, 상기 메모리 컨트롤러는 상기 불휘발성 메모리 및 상기 메모리 컨트롤러의 상태에 대한 정보를 포함하는 상태 정보를 수집하도록 구성되고, 외부 장치로부터 액세스 요청이 수신되면, 상기 메모리 컨트롤러는 상기 액세스 요청을 수행하고, 상기 액세스 요청에 따른 수행 결과를 포함하는 응답 데이터에 상기 상태 정보를 추가하여 상기 외부 장치로 출력하도록 구성된다.
본 발명의 실시 예에 따른 컴퓨팅 시스템은, 스토리지 장치; 그리고 상기 스토리지 장치로 요청을 전송하여 상기 스토리지 장치를 제어하고, 상기 스토리지 장치에 데이터를 기입하거나 상기 스토리지 장치로부터 데이터를 읽도록 구성되는 호스트 장치를 포함하고, 상기 스토리지 장치는 상기 스토리지 장치의 상태에 대한 정보를 포함하는 상태 정보를 수집하도록 구성되고, 상기 스토리지 장치는 상기 요청을 수신하고, 상기 수신된 요청을 수행하고, 상기 요청에 따른 수행 결과를 포함하는 응답 데이터에 상기 상태 정보를 추가하여 상기 외부 장치로 출력하도록 구성된다.
실시 예로서, 상기 스토리지 장치는 상기 응답 데이터를 포함하는 데이터 포맷의 미리 정해진 위치에 미리 정해진 종류의 상태 정보를 삽입하도록 구성되고, 상기 호스트 장치는 상기 데이터 포맷의 상기 미리 정해진 위치로부터 미리 정해진 종류의 상태 정보를 추출하도록 구성된다.
실시 예로서, 상기 스토리지 장치는 상기 응답 데이터를 포함하는 데이터 포맷에 상기 상태 정보 및 상기 상태 정보의 종류를 가리키는 플래그 정보를 삽입하도록 구성되고, 상기 호스트 장치는 상기 데이터 포맷의 상기 플래그 정보를 이용하여 상기 상태 정보를 추출하도록 구성되고, 상기 플래그 정보는 상기 데이터 포맷의 미리 정해진 위치들 중 하나에 삽입된다.
실시 예로서, 상기 스토리지 장치는 상기 응답 데이터를 포함하는 데이터 포맷에 상기 상태 정보 및 상기 상태 정보의 종류와 위치를 가리키는 맵 정보를 삽입하도록 구성되고, 상기 호스트 장치는 상기 데이터 포맷의 상기 맵 정보를 이용하여 상기 상태 정보를 추출하도록 구성되고, 상기 맵 정보는 상기 데이터 포맷의 미리 정해진 위치에 삽입된다.
본 발명에 따르면, 스토리지 장치의 상태 정보가 호스트 장치로 전송된다. 따라서, 호스트 장치가 상태 정보에 기반하여 스토리지 장치를 제어하므로, 향상된 동작 성능을 갖는 스토리지 장치 및 스토리지 장치의 동작 방법이 제공된다.
도 1은 본 발명의 실시 예에 따른 스토리지 장치를 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 스토리지 장치의 동작 방법을 보여주는 순서도이다.
도 4 내지 도 6은 상태 정보가 포함된 예들을 보여준다.
도 7은 본 발명의 제2 실시 예에 따라 스토리지 장치가 출력하는 데이터의 포맷을 보여준다.
도 8은 본 발명의 제3 실시 예에 따라 스토리지 장치가 출력하는 데이터의 포맷을 보여준다.
도 9는 본 발명의 제4 실시 예에 따라 스토리지 장치가 출력하는 데이터의 포맷을 보여준다.
도 10은 본 발명의 제5 실시 예에 따라 스토리지 장치가 출력하는 데이터의 포맷을 보여준다.
도 11은 도 10의 제12 내지 제27 필드들의 제1 예를 보여준다.
도 12는 도 10의 제12 내지 제27 필드들의 제2 예를 보여준다.
도 13은 도 10의 제12 내지 제27 필드들의 제3 예를 보여준다.
도 14는 도 10의 제12 내지 제27 필드들의 제4 예를 보여준다.
도 15는 도 10의 제12 내지 제27 필드들의 제5 예를 보여준다.
도 16은 도 10의 제12 내지 제27 필드들의 제6 예를 보여준다.
도 17은 도 10의 제12 내지 제27 필드들의 제7 예를 보여준다.
도 18은 도 10의 제12 내지 제27 필드들의 제8 예를 보여준다.
도 19는 도 10의 제12 내지 제27 필드들의 제9 예를 보여준다.
도 20은 본 발명의 제6 실시 예에 따라 스토리지 장치가 출력하는 데이터의 포맷을 보여준다.
도 21은 본 발명의 실시 예에 따른 메모리 컨트롤러를 보여주는 블록도이다.
도 22는 본 발명의 실시 예에 따른 불휘발성 메모리를 보여주는 블록도이다.
도 23은 본 발명의 실시 예에 따른 메모리 블록을 보여주는 회로도이다.
도 24는 본 발명의 다른 실시 예에 따른 메모리 블록을 보여주는 회로도이다.
도 25는 본 발명의 다른 실시 예에 따른 스토리지 장치를 보여주는 블록도이다.
도 26은 본 발명의 실시 예에 따른 컴퓨팅 장치를 보여주는 블록도이다.
이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 스토리지 장치(100)를 보여주는 블록도이다. 도 1을 참조하면, 스토리지 장치(100)는 불휘발성 메모리(110) 및 메모리 컨트롤러(120)를 포함한다. 스토리지 장치(100)는 솔리드 스테이트 드라이브(SSD), 메모리 카드, 또는 실장형 메모리를 형성할 수 있다.
불휘발성 메모리(110)는 메모리 컨트롤러(120)의 제어에 따라 쓰기, 읽기 및 소거를 수행할 수 있다. 불휘발성 메모리(110)는 플래시 메모리를 포함할 수 있다. 그러나, 불휘발성 메모리(110)는 플래시 메모리를 포함하는 것으로 한정되지 않는다. 불휘발성 메모리(110)는 PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FeRAM (Ferroelectric RAM) 등과 같은 다양한 불휘발성 메모리들 중 적어도 하나를 포함할 수 있다.
메모리 컨트롤러(120)는 호스트 장치(미도시)의 요청에 따라 또는 미리 정해진 스케줄에 따라 불휘발성 메모리(110)를 제어하도록 구성된다. 예를 들어, 메모리 컨트롤러(120)는 불휘발성 메모리(110)가 쓰기, 읽기 또는 소거를 수행하도록 제어할 수 있다. 메모리 컨트롤러(120)는 쓰기 요청들의 쓰기 진행도를 호스트 장치(100)로 통지할 수 있다.
메모리 컨트롤러(120)는 정보 수집부(221) 및 정보 추가부(222)를 포함한다. 정보 수집부(221)는 스토리지 장치(100)의 상태에 대한 정보를 주기적으로 또는 지속적으로 수집할 수 있다.
예를 들어, 정보 수집부(221)는 스토리지 장치(100)의 전원에 대한 정보를 수집할 수 있다. 정보 수집부(221)는 스토리지 장치(100)의 소비 전력, 예상 소비 전력, 절전 모드인지 또는 웨이크-업(wake-up) 모드인지에 대한 정보, 절전 모드로 진입할 시점, 웨이크-업(wake-up)할 시점과 같은 정보들 중 적어도 하나를 상태 정보로서 수집할 수 있다.
예를 들어, 정보 수집부(221)는 스토리지 장치(100)의 수명(또는 예상 수명)에 대한 정보를 상태 정보로서 수집할 수 있다.
예를 들어, 정보 수집부(221)는 스토리지 장치(100)가 스토리지 장치(100)를 액세스하는 호스트 장치(미도시)에게 전달하고자 하는 메시지를 수집할 수 있다. 예를 들어, 정보 수집부(221)는 스토리지 장치(100)와 통신하는 채널을 절전 모드로 제어할 것을 요청하는 메시지, 스토리지 장치(100)의 상태를 체크할 것을 요청하는 메시지 등을 상태 정보로서 수집할 수 있다.
예를 들어, 메모리 컨트롤러(120)는 스토리지 장치(100)를 제어하는 데에 필요한 다양한 정보들을 레지스터들에 저장할 수 있다. 정보 수집부(221)는 메모리 컨트롤러(120)의 레지스터들 중 상태 정보를 저장하는 레지스터들에 대응할 수 있다.
예를 들어, 정보 수집부(221)는 스토리지 장치(100)의 상태 정보를 능동적으로 수집하도록 구성되는 수집 모듈 및 수집된 상태 정보를 저장하도록 구성되는 레지스터들을 포함할 수 있다.
정보 추가부(222)는 정보 수집부(221)에 의해 수집된 상태 정보를, 메모리 컨트롤러(120)가 외부의 호스트 장치로 출력하는 데이터에 추가할 수 있다. 예를 들어, 메모리 컨트롤러(120)는 외부의 호스트 장치로부터 다양한 요청들을 수신할 수 있다. 수신된 요청들에 따라, 메모리 컨트롤러(120)는 수신된 요청들에 대응하는 동작들을 수행할 수 있다. 수신된 요청들에 대응하는 동작들을 수행한 후, 메모리 컨트롤러(120)는 동작들의 수행 결과들에 대한 정보를 포함하는 데이터(예를 들어, 응답 데이터)를 외부의 호스트 장치로 출력할 수 있다. 메모리 컨트롤러(120)는 외부의 호스트 장치로 출력되는 데이터에 상태 정보를 추가하여 출력할 수 있다.
예시적으로, 정보 수집부(221) 및 정보 추가부(222) 중 적어도 하나는 소트트웨어, 하드웨어, 또는 소프트웨어와 하드웨어가 조합된 형태로 구현될 수 있다.
도 2는 본 발명의 실시 예에 따른 스토리지 장치(100)의 동작 방법을 보여주는 순서도이다. 도 1 및 도 2를 참조하면, S110 단계에서, 상태 정보가 수집된다. 예를 들어, 정보 수집부(221)는 주기적으로, 지속적으로, 또는 상태 정보가 변경될 때마다, 상태 정보를 수집할 수 있다.
S120 단계에서, 요청이 수신되는지 판별된다. 외부의 호스트 장치(미도시)로부터 요청이 수신되지 않으면, 스토리지 장치(100)는 상태 정보를 이용한 동작을 수행하지 않는다. 외부의 호스트 장치로부터 요청이 수신되면, S130 단계가 수행된다.
S130 단계에서, 스토리지 장치(100)는 수신된 요청에 따라 동작을 수행할 수 잇다. S140 단계에서, 스토리지 장치(100)는 동작의 정보 및 상태 정보를 포함하는 응답 데이터를 생성할 수 있다. 예를 들어, 스토리지 장치(100)는 동작의 수행 결과를 가리키는 정보 및 상태 정보를 포함하는 응답 데이터를 생성할 수 있다.
S150 단계에서, 메모리 컨트롤러(120)는 동작의 정보 및 상태 정보를 포함하는 응답 데이터를 외부의 호스트 장치로 출력할 수 있다.
예시적으로, 외부의 호스트 장치로부터 수신되는 요청은, 스토리지 장치(100)에 데이터를 기입하는 요청, 스토리지 장치(100)로부터 데이터를 읽는 요청, 스토리지 장치(100)로부터 데이터를 소거하는 요청, 스토리지 장치(100)를 제어하기 위한 요청 등을 포함할 수 있다. 외부의 호스트 장치로부터 수신되는 요청은, 스토리지 장치(120)가 외부의 호스트 장치와 통신하는 통신 표준에 정의된 요청들 중 하나이며, 상태 정보를 요청하도록 정의된 요청은 아니다. 즉, 스토리지 장치(100)는 외부의 호스트 장치로부터 통상적인 요청들을 수신하고, 수신된 통상적인 요청들에 따라 동작들을 수행한다. 스토리지 장치(100)는 동작들의 수행 결과를 가리키는 통상적인 응답 데이터를 외부의 호스트 장치로 전송하되, 상태 정보를 추가적으로 전송하도록 구성된다.
예시적으로, 상태 정보를 수집하는 단계(S110)는 외부의 호스트 장치로부터 요청이 수신되기 전에 수행되는 것으로 설명되었다. 그러나, 상태 정보를 수집하는 단계(S110)는 외부의 호스트 장치로부터 요청이 수신된 후에 수행될 수 있다.
도 3은 본 발명의 제1 실시 예에 따라 스토리지 장치(100)가 출력하는 데이터의 포맷을 보여준다. 예시적으로, 스토리지 장치(100)는 UFS (Universal Flash Storage)의 UPIU (UFS Protocol Information Unit)의 포맷에 따라 데이터를 출력할 수 있다.
도 3을 참조하면, 스토리지 장치(100)는 응답 UPIU (Response UPIU)를 출력할 수 있다. 응답 UPIU는 복수의 필드들로 구성된다. 응답 UPIU의 각 필드는, 박스 내에 기재된 번호를 이용하여 참조된다. 응답 UPIU의 각 필드는, 1 바이트의 데이터를 포함할 수 있다.
응답 UPIU의 제0 필드는 트랜잭션 타입(Transaction Type)에 대한 정보를 포함한다. 예를 들어, 응답 UPIU에 할당된 트랜잭션 코드(Transaction Code)는 '100001b'일 수 있다. 응답 UPIU의 제1 필드는 플래그에 대한 정보를 포함한다. 제1 필드는, 스토리지 장치(100)가 전송할 데이터가 외부의 호스트 장치로부터 요청된 데이터보다 많음을 가리키는 데이터 오버플로우 플래그, 스토리지 장치(100)가 전송할 데이터가 외부의 호스트 장치로부터 요청된 데이터보다 적음을 가리키는 데이터 언더플로우 플래그, 요청된 데이터의 버퍼 오프셋 또는 전송 카운트가 올바르지 않음을 가리키는 플래그 등의 정보를 포함할 수 있다. 응답 UPIU의 제2 필드는 목표 장치의 논리 번호(LUN, Logical Unit Number)에 대한 정보를 포함한다. 응답 UPIU의 제3 필드는 작업 태그(Task Tag)에 대한 정보를 포함한다.
응답 UPIU의 제4 필드 중 일부(예를 들어, 4비트)는 상태 정보 영역(SIA)으로 사용되고, 나머지 일부(예를 들어, 나머지 4비트)는 커맨드 셋 타입에 대한 정보를 포함한다. 예를 들어, 커맨드 셋 타입은 스카시(SCSI) 커맨드 셋, UFS 특화 커맨드 셋(UFS specific command set), 벤더 특화 커맨드 셋(Vendor specific command set) 등을 포함할 수 있다. 응답 UPIU의 제5 필드는 상태 정보 영역(SIA)으로 사용될 수 있다. 응답 UPIU의 제6 필드는 응답(response) 필드이다. 제6 필드는 외부의 호스트 장치로부터 수신된 요청에 따른 동작이 성공인지 또는 페일인지에 대한 정보를 포함할 수 있다. 응답 UPIU의 제7 필드는 스카시 커맨드 셋에 따른 스카시 상태(SCSI status)에 대한 정보를 포함한다.
응답 UPIU의 제8 필드는 EHS (Extra Header Segment)의 전체 길이에 대한 정보를 포함한다. 응답 UPIU의 제9 필드는 장치 정보를 포함한다. 응답 UPIU의 제10 및 제11 필드들은 데이터 세그먼트의 유효 바이트들의 수에 대한 정보를 포함한다.
응답 UPIU의 제12 내지 제15 필드들은, 데이터 오버플로우가 발생한 경우에 스토리지 장치(100)가 전송하지 않은 바이트들의 수, 데이터 언더플로우가 발생한 경우에 스토리지 장치(100)가 전송하지 못한 바이트들의 수 등의 정보를 포함할 수 있다.
응답 UPIU의 제16 내지 제31 필드들은 상태 정보 영역들(SIA)로 사용될 수 있다.
응답 UPIU의 제31 필드 이후에, 헤더의 단대단 순환중복검사(end-to-end CRC (Cyclic Redundancy Check)) 코드가 옵션으로 추가될 수 있다. 예를 들어, 제0 필드의 첫 번째 비트가 '0'인 경우, 헤더의 단대단 순환중복검사 코드는 생략될 수 있다. 이 경우, 응답 UPIU의 제k 필드는 제31 필드에 연속하는 제32 필드일 수 있다.
응답 UPIU의 제k 필드는 센스 데이터 필드들의 길이에 대한 정보를 포함한다. 응답 UPIU의 제k+1 내지 제k+19 필드들은 센스 데이터 필드들이며, 에러 상태에 대한 추가 정보를 포함할 수 있다.
응답 UPIU의 제k+19 필드 이후에, 데이터의 단대단 순환중복검사(end-to-end CRC (Cyclic Redundancy Check)) 코드가 옵션으로 추가될 수 있다. 예를 들어, 제0 필드의 두 번째 비트가 '0'인 경우, 데이터의 단대단 순환중복검사 코드는 생략될 수 있다.
응답 UPIU의 제4 필드의 일부, 제5 필드, 그리고 제16 내지 제31 필드들은 상태 정보 영역(SIA)으로 사용된다. 상태 정보는, 상태 정보 영역(SIA)의 적어도 하나의 필드 또는 적어도 하나의 비트로서 추가될 수 있다.
상태 정보가 상태 정보 영역(SIA) 외의 다른 필드에 추가되는 경우, 스토리지 장치(100)로부터 외부의 호스트 장치로 전송되어야 하는 데이터가 상태 정보에 의해 손상될 수 있다. 따라서, 상태 정보는 기존의 데이터가 포함되는 필드들 외의 상태 정보 영역(SIA)의 적어도 하나의 필드 또는 적어도 하나의 비트로서 추가되면, 스토리지 장치(100)가 수행한 동작의 결과와 함께 스토리지 장치(100)의 상태 정보가 외부의 호스트 장치로 전달된다. 따라서, 상태 정보를 이용하여 스토리지 장치(100)의 동작 성능의 최적화가 달성될 수 있다.
예시적으로, 상태 정보는 둘 이상의 정보들을 포함할 수 있다. 둘 이상의 정보들은 각각 정보의 종류에 따라 상태 정보 영역(SIA)의 미리 정해진 위치(예를 들어, 미리 정해진 위치의 필드 또는 비트)에 포함될 수 있다. 둘 이상의 정보들의 미리 정해진 위치는, 스토리지 장치(100) 및 외부의 호스트에 공통적으로 알려진 정보일 수 있다. 응답 UPIU를 수신한 호스트 장치는, 상태 정보 영역(SIA)의 미리 정해진 위치로부터, 둘 이상의 정보들을 각각 추출할 수 있다.
예를 들어, 도 4에 도시된 바와 같이, 응답 UPIU의 제16 필드에 제1 상태 정보(SI1)가 포함되고, 제17 필드에 제2 상태 정보(SI2)가 포함되고, 제18 필드에 제3 상태 정보(SI3)가 포함되고, 제19 필드에 제4 상태 정보(SI4)가 포함되도록 정해질 수 있다. 스토리지 장치(100)가 제2 상태 정보(SI2)를 제공하도록 구성되는 경우, 스토리지 장치(100)는 응답 UPIU의 제17 필드에 제2 상태 정보(SI2)를 추가할 수 있다. 스토리지 장치(100)가 제2 상태 정보(SI2)를 제공하지 않도록 구성되는 경우, 스토리지 장치(100)는 응답 UPIU의 제17 필드에 어떠한 정보도 추가하지 않을 수 있다.
다른 예로서, 상태 정보는 둘 이상의 정보들을 포함할 수 있다. 둘 이상의 정보들은 각각 정보의 종류를 가리키는 플래그 데이터와 함께 제공될 수 있다. 이 경우, 상태 정보의 종류에 따른 위치는 정해지지 않고, 플래그 데이터의 위치는 미리 정해질 수 있다. 예를 들어, 상태 정보 영역(SIA)의 각 필드의 첫 번째 비트는 플래그 데이터를 포함하고, 나머지 비트들은 상태 정보를 포함하도록 정해질 수 있다. 외부의 호스트 장치는 플래그 데이터에 기반하여 상태 정보를 추출할 수 있다.
예를 들어, 도 5에 도시된 바와 같이, 상태 정보 영역(SIA) 중 제16 내지 제19 필드들이 상태 정보를 포함하도록 정해질 수 있다. 제16 내지 제19 필드들 각각의 적어도 첫 번째 비트는 플래그 데이터(F)를 포함하도록 정해질 수 있다. 제16 내지 제19 필드들 각각의 나머지 비트들은 상태 정보(SI)를 포함하도록 정해질 수 있다.
스토리지 장치(100)가 제 1 및 제2 상태 정보들을 제공하도록 구성되는 경우, 스토리지 장치(100)는 제16 필드의 적어도 첫 번째 비트에 제1 상태 정보를 가리키는 플래그 데이터를 추가하고, 제16 필드의 나머지 비트들에 제1 상태 정보를 추가할 수 있다. 스토리지 장치(100)는 제17 필드의 적어도 첫 번째 비트에 제2 상태 정보를 가리키는 플래그 데이터를 추가하고, 제17 필드의 나머지 비트들에 제2 상태 정보를 추가할 수 있다. 스토리지 장치(100)가 제 3 및 제4 상태 정보들을 제공하도록 구성되는 경우, 스토리지 장치(100)는 제18 필드의 적어도 첫 번째 비트에 제3 상태 정보를 가리키는 플래그 데이터를 추가하고, 제18 필드의 나머지 비트들에 제3 상태 정보를 추가할 수 있다. 스토리지 장치(100)는 제19 필드의 적어도 첫 번째 비트에 제4 상태 정보를 가리키는 플래그 데이터를 추가하고, 제19 필드의 나머지 비트들에 제4 상태 정보를 추가할 수 있다.
다른 예로서, 상태 정보는 둘 이상의 정보들을 포함할 수 있다. 둘 이상의 정보들은 둘 이상의 정보들의 종류들 및 둘 이상의 정보들이 저장된 위치들을 가리키는 상태 정보 맵 데이터와 함께 제공될 수 있다. 이 경우, 상태 정보 맵 데이터의 위치 및 사이즈는 미리 정해질 수 있다. 상태 정보들의 위치들 및 크기들은 정해지지 않을 수 있다. 외부의 호스트 장치는 상태 정보 맵 데이터를 이용하여 상태 정보들을 추출할 수 있다.
예를 들어, 도 6에 도시된 바와 같이, 상태 정보 영역(SIA) 중 제16 내지 제19 필드들이 상태 정보를 포함하도록 정해질 수 있다. 제16 필드의 일부 비트들에 상태 정보 맵 데이터(SIM)가 포함되도록 정해질 수 있다. 제16 필드의 나머지 비트들 및 제17 내지 제19 필드들에 상태 정보 맵 데이터(SIM)에 대응하는 상태 정보들(SI)이 포함될 수 있다.
도 7은 본 발명의 제2 실시 예에 따라 스토리지 장치(100)가 출력하는 데이터의 포맷을 보여준다. 예시적으로, 스토리지 장치(100)는 UFS (Universal Flash Storage)의 UPIU (UFS Protocol Information Unit)의 포맷에 따라 데이터를 출력할 수 있다.
도 7을 참조하면, 스토리지 장치(100)는 데이터 출력 UPIU (Data Out UPIU)를 출력할 수 있다. 데이터 출력 UPIU는 복수의 필드들로 구성된다. 데이터 출력 UPIU의 각 필드는, 박스 내에 기재된 번호를 이용하여 참조된다. 데이터 출력 UPIU의 각 필드는, 1 바이트의 데이터를 포함할 수 있다.
데이터 출력 UPIU의 제0 필드는 트랜잭션 타입(Transaction Type)에 대한 정보를 포함한다. 예를 들어, 데이터 출력 UPIU에 할당된 트랜잭션 코드(Transaction Code)는 '100010b'일 수 있다. 데이터 출력 UPIU의 제1 필드는 플래그 필드이며, 데이터 출력 UPIU에서는 사용되지 않을 수 있다. 데이터 출력 UPIU의 제2 필드는 목표 장치의 논리 번호(LUN, Logical Unit Number)에 대한 정보를 포함한다. 데이터 출력 UPIU의 제3 필드는 작업 태그(Task Tag)에 대한 정보를 포함한다.
데이터 출력 UPIU의 제4 내지 제7 필드들은 상태 정보 영역(SIA)으로 사용될 수 있다.
데이터 출력 UPIU의 제8 필드는 EHS (Extra Header Segment)의 전체 길이에 대한 정보를 포함한다. 데이터 출력 UPIU의 제9 필드는 상태 정보 영역(SIA)으로 사용된다. 데이터 출력 UPIU의 제10 및 제11 필드들은 데이터 세그먼트의 유효 바이트들의 수에 대한 정보를 포함한다.
데이터 출력 UPIU의 제12 내지 제15 필드들은, 전송될 전체 데이터 중 해당 UPIU에 포함된 데이터의 오프셋에 대한 정보를 포함한다.
데이터 출력 UPIU의 제16 내지 제19 필드들은, 해당 UPIU를 통해 전송되는 데이터 바이트들의 수에 대한 정보를 포함한다.
데이터 출력 UPIU의 제20 내지 제31 필드들은 상태 정보 영역들(SIA)로 사용될 수 있다.
데이터 출력 UPIU의 제31 필드 이후에, 헤더의 단대단 순환중복검사(end-to-end CRC (Cyclic Redundancy Check)) 코드가 옵션으로 추가될 수 있다. 예를 들어, 제0 필드의 첫 번째 비트가 '0'인 경우, 헤더의 단대단 순환중복검사 코드는 생략될 수 있다. 이 경우, 데이터 출력 UPIU의 제k 필드는 제31 필드에 연속하는 제32 필드일 수 있다.
데이터 출력 UPIU의 제k 필드 및 그 이후의 필드들은 데이터 필드들은 출력 데이터를 포함한다.
출력 데이터 필드들 이후에, 데이터의 단대단 순환중복검사(end-to-end CRC (Cyclic Redundancy Check)) 코드가 옵션으로 추가될 수 있다. 예를 들어, 제0 필드의 두 번째 비트가 '0'인 경우, 데이터의 단대단 순환중복검사 코드는 생략될 수 있다.
데이터 출력 UPIU의 제4 내지 제7 필드들, 제9 필드, 그리고 제20 내지 제31 필드들은 상태 정보 영역(SIA)으로 사용된다. 상태 정보는, 상태 정보 영역(SIA)의 적어도 하나의 필드 또는 적어도 하나의 비트로서 추가될 수 있다.
예를 들어, 도 4를 참조하여 설명된 바와 같이, 둘 이상의 상태 정보들이 미리 정해진 위치에 포함될 수 있다. 도 5를 참조하여 설명된 바와 같이, 둘 이상의 상태 정보들이 플래그 데이터들과 함께 포함될 수 있다. 도 6을 참조하여 설명된 바와 같이, 둘 이상의 상태 정보들이 상태 정보 맵 데이터와 함께 포함될 수 있다.
도 8은 본 발명의 제3 실시 예에 따라 스토리지 장치(100)가 출력하는 데이터의 포맷을 보여준다. 예시적으로, 스토리지 장치(100)는 UFS (Universal Flash Storage)의 UPIU (UFS Protocol Information Unit)의 포맷에 따라 데이터를 출력할 수 있다.
도 8을 참조하면, 스토리지 장치(100)는 전송 대기 UPIU (Ready to Transfer UPIU)를 출력할 수 있다. 전송 대기 UPIU는 복수의 필드들로 구성된다. 전송 대기 UPIU의 각 필드는, 박스 내에 기재된 번호를 이용하여 참조된다. 전송 대기 UPIU의 각 필드는, 1 바이트의 데이터를 포함할 수 있다.
전송 대기 UPIU의 제0 필드는 트랜잭션 타입(Transaction Type)에 대한 정보를 포함한다. 예를 들어, 전송 대기 UPIU에 할당된 트랜잭션 코드(Transaction Code)는 '110001b'일 수 있다. 전송 대기 UPIU의 제1 필드는 플래그 필드이며, 전송 대기 UPIU에서는 사용되지 않을 수 있다. 전송 대기 UPIU의 제2 필드는 목표 장치의 논리 번호(LUN, Logical Unit Number)에 대한 정보를 포함한다. 전송 대기 UPIU의 제3 필드는 작업 태그(Task Tag)에 대한 정보를 포함한다.
전송 대기 UPIU의 제4 내지 제7 필드들은 상태 정보 영역(SIA)으로 사용될 수 있다.
전송 대기 UPIU의 제8 필드는 EHS (Extra Header Segment)의 전체 길이에 대한 정보를 포함한다. 전송 대기 UPIU의 제9 필드는 상태 정보 영역(SIA)으로 사용된다. 전송 대기 UPIU의 제10 및 제11 필드들은 데이터 세그먼트의 유효 바이트들의 수에 대한 정보를 가리키며, 전송 대기 UPIU에서는 사용되지 않을 수 있다.
전송 대기 UPIU의 제12 내지 제15 필드들은, 전송될 데이터의 시작 위치에 대한 정보를 포함한다.
전송 대기 UPIU의 제16 내지 제19 필드들은, 외부의 호스트 장치가 요청한 바이트들의 수에 대한 정보를 포함한다.
전송 대기 UPIU의 제20 내지 제31 필드들은 상태 정보 영역들(SIA)로 사용될 수 있다.
전송 대기 UPIU의 제31 필드 이후에, 헤더의 단대단 순환중복검사(end-to-end CRC (Cyclic Redundancy Check)) 코드가 옵션으로 추가될 수 있다. 예를 들어, 제0 필드의 첫 번째 비트가 '0'인 경우, 헤더의 단대단 순환중복검사 코드는 생략될 수 있다.
전송 대기 UPIU의 제4 내지 제7 필드들, 제9 필드, 그리고 제20 내지 제31 필드들은 상태 정보 영역(SIA)으로 사용된다. 상태 정보는, 상태 정보 영역(SIA)의 적어도 하나의 필드 또는 적어도 하나의 비트로서 추가될 수 있다.
예를 들어, 도 4를 참조하여 설명된 바와 같이, 둘 이상의 상태 정보들이 미리 정해진 위치에 포함될 수 있다. 도 5를 참조하여 설명된 바와 같이, 둘 이상의 상태 정보들이 플래그 데이터들과 함께 포함될 수 있다. 도 6을 참조하여 설명된 바와 같이, 둘 이상의 상태 정보들이 상태 정보 맵 데이터와 함께 포함될 수 있다.
도 9는 본 발명의 제4 실시 예에 따라 스토리지 장치(100)가 출력하는 데이터의 포맷을 보여준다. 예시적으로, 스토리지 장치(100)는 UFS (Universal Flash Storage)의 UPIU (UFS Protocol Information Unit)의 포맷에 따라 데이터를 출력할 수 있다.
도 9를 참조하면, 스토리지 장치(100)는 작업 관리 응답 UPIU (Task Management Response UPIU)를 출력할 수 있다. 작업 관리 응답 UPIU는 복수의 필드들로 구성된다. 작업 관리 응답 UPIU의 각 필드는, 박스 내에 기재된 번호를 이용하여 참조된다. 작업 관리 응답 UPIU의 각 필드는, 1 바이트의 데이터를 포함할 수 있다.
작업 관리 응답 UPIU의 제0 필드는 트랜잭션 타입(Transaction Type)에 대한 정보를 포함한다. 예를 들어, 작업 관리 응답 UPIU에 할당된 트랜잭션 코드(Transaction Code)는 '100100b'일 수 있다. 작업 관리 응답 UPIU의 제1 필드는 플래그 필드이며, 작업 관리 응답 UPIU에서는 사용되지 않을 수 있다. 작업 관리 응답 UPIU의 제2 필드는 목표 장치의 논리 번호(LUN, Logical Unit Number)에 대한 정보를 포함한다. 작업 관리 응답 UPIU의 제3 필드는 작업 태그(Task Tag)에 대한 정보를 포함한다.
작업 관리 응답 UPIU의 제4 내지 제7 필드들은 상태 정보 영역(SIA)으로 사용될 수 있다.
작업 관리 응답 UPIU의 제8 필드는 EHS (Extra Header Segment)의 전체 길이에 대한 정보를 포함한다. 작업 관리 응답 UPIU의 제9 필드는 상태 정보 영역(SIA)으로 사용된다. 작업 관리 응답 UPIU의 제10 및 제11 필드들은 데이터 세그먼트의 유효 바이트들의 수에 대한 정보를 가리키며, 작업 관리 응답 UPIU에서는 사용되지 않을 수 있다.
작업 관리 응답 UPIU의 제12 내지 제19 필드들은, 작업 관리 서비스 응답(Task Management Service Response)에 대한 정보를 포함할 수 있다. 예를 들어, 제12 내지 제19 필드들은 요청된 작업이 완료되었는지, 스토리지 장치(100)에서 지원되지 않는 작업인지, 실패하였는지, 성공하였는지, 올바르지 않은 논리 번호(LUN)인지에 대한 정보를 포함할 수 있다.
작업 관리 응답 UPIU의 제20 내지 제31 필드들은 상태 정보 영역들(SIA)로 사용될 수 있다.
작업 관리 응답 UPIU의 제31 필드 이후에, 헤더의 단대단 순환중복검사(end-to-end CRC (Cyclic Redundancy Check)) 코드가 옵션으로 추가될 수 있다. 예를 들어, 제0 필드의 첫 번째 비트가 '0'인 경우, 헤더의 단대단 순환중복검사 코드는 생략될 수 있다.
작업 관리 응답 UPIU의 제4 내지 제7 필드들, 제9 필드, 그리고 제20 내지 제31 필드들은 상태 정보 영역(SIA)으로 사용된다. 상태 정보는, 상태 정보 영역(SIA)의 적어도 하나의 필드 또는 적어도 하나의 비트로서 추가될 수 있다.
예를 들어, 도 4를 참조하여 설명된 바와 같이, 둘 이상의 상태 정보들이 미리 정해진 위치에 포함될 수 있다. 도 5를 참조하여 설명된 바와 같이, 둘 이상의 상태 정보들이 플래그 데이터들과 함께 포함될 수 있다. 도 6을 참조하여 설명된 바와 같이, 둘 이상의 상태 정보들이 상태 정보 맵 데이터와 함께 포함될 수 있다.
도 10은 본 발명의 제5 실시 예에 따라 스토리지 장치(100)가 출력하는 데이터의 포맷을 보여준다. 예시적으로, 스토리지 장치(100)는 UFS (Universal Flash Storage)의 UPIU (UFS Protocol Information Unit)의 포맷에 따라 데이터를 출력할 수 있다.
도 10을 참조하면, 스토리지 장치(100)는 쿼리 응답 UPIU (Query Response UPIU)를 출력할 수 있다. 쿼리 응답 UPIU는 복수의 필드들로 구성된다. 쿼리 응답 UPIU의 각 필드는, 박스 내에 기재된 번호를 이용하여 참조된다. 쿼리 응답 UPIU의 각 필드는, 1 바이트의 데이터를 포함할 수 있다.
쿼리 응답 UPIU의 제0 필드는 트랜잭션 타입(Transaction Type)에 대한 정보를 포함한다. 예를 들어, 쿼리 응답 UPIU에 할당된 트랜잭션 코드(Transaction Code)는 '010110b'일 수 있다. 쿼리 응답 UPIU의 제1 필드는 플래그 필드이며, 쿼리 응답 UPIU에서는 사용되지 않을 수 있다. 쿼리 응답 UPIU의 제2 필드는 상태 정보 영역(SIA)으로 사용될 수 있다. 쿼리 응답 UPIU의 제3 필드는 작업 태그(Task Tag)에 대한 정보를 포함한다.
쿼리 응답 UPIU의 제4 필드는 상태 정보 영역(SIA)으로 사용될 수 있다. 쿼리 응답 UPIU의 제5 필드는 쿼리 요청 UPIU를 통해 수신된 쿼리 값을 포함할 수 있다. 쿼리 응답 UPIU의 제6 필드는 쿼리 요청 UPIU에 따라 수행된 동작의 정보를 포함한다. 쿼리 응답 UPIU의 제7 필드는 상태 정보 영역(SIA)으로 사용될 수 있다.
쿼리 응답 UPIU의 제8 필드는 EHS (Extra Header Segment)의 전체 길이에 대한 정보를 포함한다. 쿼리 응답 UPIU의 제9 필드는 장치 정보를 포함할 수 있다. 쿼리 응답 UPIU의 제10 및 제11 필드들은 데이터 세그먼트의 유효 바이트들의 수에 대한 정보를 포함한다.
쿼리 응답 UPIU의 제12 내지 제27 필드들은, 쿼리 응답 UPIU의 종류에 따라 다양한 정보를 포함하도록 구성되며, 아래에서 후술된다.
쿼리 응답 UPIU의 제28 내지 제31 필드들은 상태 정보 영역들(SIA)로 사용될 수 있다.
쿼리 응답 UPIU의 제31 필드 이후에, 헤더의 단대단 순환중복검사(end-to-end CRC (Cyclic Redundancy Check)) 코드가 옵션으로 추가될 수 있다. 예를 들어, 제0 필드의 첫 번째 비트가 '0'인 경우, 헤더의 단대단 순환중복검사 코드는 생략될 수 있다. 이 경우, 쿼리 응답 UPIU의 제k 필드는 제31 필드에 연속하는 제32 필드일 수 있다.
쿼리 응답 UPIU의 제k 필드 및 그 이후의 필드들은 데이터 필드들은 출력 데이터를 포함한다. 예시적으로, 쿼리 응답 UPIU의 종류에 따라, 데이터 필드들은 제공되거나 또는 제공되지 않을 수 있다.
출력 데이터 필드들 이후에, 데이터의 단대단 순환중복검사(end-to-end CRC (Cyclic Redundancy Check)) 코드가 옵션으로 추가될 수 있다. 예를 들어, 제0 필드의 두 번째 비트가 '0'인 경우, 데이터의 단대단 순환중복검사 코드는 생략될 수 있다.
쿼리 응답 UPIU의 제2 필드, 제4 필드, 제7 필드, 그리고 제28 내지 제31 필드들은 상태 정보 영역(SIA)으로 사용된다. 상태 정보는, 상태 정보 영역(SIA)의 적어도 하나의 필드 또는 적어도 하나의 비트로서 추가될 수 있다.
예를 들어, 도 4를 참조하여 설명된 바와 같이, 둘 이상의 상태 정보들이 미리 정해진 위치에 포함될 수 있다. 도 5를 참조하여 설명된 바와 같이, 둘 이상의 상태 정보들이 플래그 데이터들과 함께 포함될 수 있다. 도 6을 참조하여 설명된 바와 같이, 둘 이상의 상태 정보들이 상태 정보 맵 데이터와 함께 포함될 수 있다.
도 11은 도 10의 제12 내지 제27 필드들의 제1 예를 보여준다. 예시적으로, 읽기 기술자(read descriptor)를 요청하는 쿼리 요청 UPIU에 따라 생성되는 쿼리 응답 UPIU의 제12 내지 제27 필드들이 도 11에 도시된다.
도 11을 참조하면, 제12 필드는 명령(opcode)에 대한 정보를 포함한다. 읽기 기술자와 연관된 명령(opcode)은 '01h'일 수 있다. 제13 필드는 명령과 연관된 필드이며, 쿼리 요청 UPIU에 포함된 기술자 식별자(Descriptor IDentification Number)의 정보를 동일하게 포함할 수 있다. 제14 필드는 인덱스 필드이며, 쿼리 요청 UPIU에 포함된 인덱스 값을 동일하게 포함할 수 있다. 제15 필드는 셀렉터 필드이며, 쿼리 요청 UPIU에 포함된 셀렉터 값을 동일하게 포함할 수 있다.
제16 및 제17 필드들은 상태 정보 영역(SIA)으로 사용될 수 있다. 제18 및 제19 필드들은 쿼리 요청 UPIU에 따라 리턴되는 바이트들의 수에 대한 정보를 포함한다.
제20 내지 제27 필드들은 상태 정보 영역(SIA)으로 사용될 수 있다.
읽기 기술자(read descriptor)와 연관된 쿼리 응답 UPIU는, 제16 필드, 제17 필드 및 제20 내지 제27 필드들을 상태 정보 영역(SIA)으로 더 사용할 수 있다.
도 12는 도 10의 제12 내지 제27 필드들의 제2 예를 보여준다. 예시적으로, 쓰기 기술자(write descriptor)를 요청하는 쿼리 요청 UPIU에 따라 생성되는 쿼리 응답 UPIU의 제12 내지 제27 필드들이 도 12에 도시된다.
도 12를 참조하면, 제12 필드는 명령(opcode)에 대한 정보를 포함한다. 쓰기 기술자와 연관된 명령(opcode)은 '02h'일 수 있다. 제13 필드는 명령과 연관된 필드이며, 쿼리 요청 UPIU에 포함된 기술자 식별자(Descriptor IDentification Number)의 정보를 동일하게 포함할 수 있다. 제14 필드는 인덱스 필드이며, 쿼리 요청 UPIU에 포함된 인덱스 값을 동일하게 포함할 수 있다. 제15 필드는 셀렉터 필드이며, 쿼리 요청 UPIU에 포함된 셀렉터 값을 동일하게 포함할 수 있다.
제16 및 제17 필드들은 상태 정보 영역(SIA)으로 사용될 수 있다. 제18 및 제19 필드들은 쿼리 요청 UPIU에 따라 기입되는 기술자 바이트들의 수에 대한 정보를 포함한다.
제20 내지 제27 필드들은 상태 정보 영역(SIA)으로 사용될 수 있다.
쓰기 기술자(write descriptor)와 연관된 쿼리 응답 UPIU는, 제16 필드, 제17 필드 및 제20 내지 제27 필드들을 상태 정보 영역(SIA)으로 더 사용할 수 있다.
도 13은 도 10의 제12 내지 제27 필드들의 제3 예를 보여준다. 예시적으로, 읽기 특성(read attributes)을 요청하는 쿼리 요청 UPIU에 따라 생성되는 쿼리 응답 UPIU의 제12 내지 제27 필드들이 도 13에 도시된다.
도 13을 참조하면, 제12 필드는 명령(opcode)에 대한 정보를 포함한다. 읽기 특성과 연관된 명령(opcode)은 '03h'일 수 있다. 제13 필드는 명령과 연관된 필드이며, 쿼리 요청 UPIU에 포함된 특성 식별자(Attribute IDentification Number)의 정보를 동일하게 포함할 수 있다. 제14 필드는 인덱스 필드이며, 쿼리 요청 UPIU에 포함된 인덱스 값을 동일하게 포함할 수 있다. 제15 필드는 셀렉터 필드이며, 쿼리 요청 UPIU에 포함된 셀렉터 값을 동일하게 포함할 수 있다.
제16 내지 제19 필드들은 상태 정보 영역(SIA)으로 사용될 수 있다.
제20 내지 제23 필드들은 읽기 특성에 대한 값을 포함할 수 있다.
제24 내지 제27 필드들은 상태 정보 영역(SIA)으로 사용될 수 있다.
읽기 특성(read attributes)과 연관된 쿼리 응답 UPIU는, 제16 내지 제19 필드들 및 제24 내지 제27 필드들을 상태 정보 영역(SIA)으로 더 사용할 수 있다.
도 14는 도 10의 제12 내지 제27 필드들의 제4 예를 보여준다. 예시적으로, 쓰기 특성(write attributes)을 요청하는 쿼리 요청 UPIU에 따라 생성되는 쿼리 응답 UPIU의 제12 내지 제27 필드들이 도 14에 도시된다.
도 14를 참조하면, 제12 필드는 명령(opcode)에 대한 정보를 포함한다. 쓰기 특성과 연관된 명령(opcode)은 '04h'일 수 있다. 제13 필드는 명령과 연관된 필드이며, 쿼리 요청 UPIU에 포함된 특성 식별자(Attribute IDentification Number)의 정보를 동일하게 포함할 수 있다. 제14 필드는 인덱스 필드이며, 쿼리 요청 UPIU에 포함된 인덱스 값을 동일하게 포함할 수 있다. 제15 필드는 셀렉터 필드이며, 쿼리 요청 UPIU에 포함된 셀렉터 값을 동일하게 포함할 수 있다.
제16 내지 제19 필드들은 상태 정보 영역(SIA)으로 사용될 수 있다.
제20 내지 제23 필드들은 쓰기 특성에 대한 값을 포함할 수 있다.
제24 내지 제27 필드들은 상태 정보 영역(SIA)으로 사용될 수 있다.
쓰기 특성(write attributes)과 연관된 쿼리 응답 UPIU는, 제16 내지 제19 필드들 및 제24 내지 제27 필드들을 상태 정보 영역(SIA)으로 더 사용할 수 있다.
도 15는 도 10의 제12 내지 제27 필드들의 제5 예를 보여준다. 예시적으로, 플래그 읽기(read flag)를 요청하는 쿼리 요청 UPIU에 따라 생성되는 쿼리 응답 UPIU의 제12 내지 제27 필드들이 도 15에 도시된다.
도 15를 참조하면, 제12 필드는 명령(opcode)에 대한 정보를 포함한다. 플래그 읽기와 연관된 명령(opcode)은 '05h'일 수 있다. 제13 필드는 명령과 연관된 필드이며, 쿼리 요청 UPIU에 포함된 플래그 식별자(Flag IDentification Number)의 정보를 동일하게 포함할 수 있다. 제14 필드는 인덱스 필드이며, 쿼리 요청 UPIU에 포함된 인덱스 값을 동일하게 포함할 수 있다. 제15 필드는 셀렉터 필드이며, 쿼리 요청 UPIU에 포함된 셀렉터 값을 동일하게 포함할 수 있다.
제16 내지 제22 필드들은 상태 정보 영역(SIA)으로 사용될 수 있다.
제23 필드는 플래그 값을 포함할 수 있다.
제24 내지 제27 필드들은 상태 정보 영역(SIA)으로 사용될 수 있다.
플래그 읽기(read flag)와 연관된 쿼리 응답 UPIU는, 제16 내지 제22 필드들 및 제24 내지 제27 필드들을 상태 정보 영역(SIA)으로 더 사용할 수 있다.
도 16은 도 10의 제12 내지 제27 필드들의 제6 예를 보여준다. 예시적으로, 플래그 설정(set flag)을 요청하는 쿼리 요청 UPIU에 따라 생성되는 쿼리 응답 UPIU의 제12 내지 제27 필드들이 도 16에 도시된다.
도 16을 참조하면, 제12 필드는 명령(opcode)에 대한 정보를 포함한다. 플래그 설정과 연관된 명령(opcode)은 '06h'일 수 있다. 제13 필드는 명령과 연관된 필드이며, 쿼리 요청 UPIU에 포함된 플래그 식별자(Flag IDentification Number)의 정보를 동일하게 포함할 수 있다. 제14 필드는 인덱스 필드이며, 쿼리 요청 UPIU에 포함된 인덱스 값을 동일하게 포함할 수 있다. 제15 필드는 셀렉터 필드이며, 쿼리 요청 UPIU에 포함된 셀렉터 값을 동일하게 포함할 수 있다.
제16 내지 제22 필드들은 상태 정보 영역(SIA)으로 사용될 수 있다.
제23 필드는 플래그 값을 포함할 수 있다.
제24 내지 제27 필드들은 상태 정보 영역(SIA)으로 사용될 수 있다.
읽기 플래그(read flag)와 연관된 쿼리 응답 UPIU는, 제16 내지 제22 필드들 및 제24 내지 제27 필드들을 상태 정보 영역(SIA)으로 더 사용할 수 있다.
도 17은 도 10의 제12 내지 제27 필드들의 제7 예를 보여준다. 예시적으로, 플래그 클리어(clear flag)를 요청하는 쿼리 요청 UPIU에 따라 생성되는 쿼리 응답 UPIU의 제12 내지 제27 필드들이 도 17에 도시된다.
도 17을 참조하면, 제12 필드는 명령(opcode)에 대한 정보를 포함한다. 플래그 클리어와 연관된 명령(opcode)은 '07h'일 수 있다. 제13 필드는 명령과 연관된 필드이며, 쿼리 요청 UPIU에 포함된 플래그 식별자(Flag IDentification Number)의 정보를 동일하게 포함할 수 있다. 제14 필드는 인덱스 필드이며, 쿼리 요청 UPIU에 포함된 인덱스 값을 동일하게 포함할 수 있다. 제15 필드는 셀렉터 필드이며, 쿼리 요청 UPIU에 포함된 셀렉터 값을 동일하게 포함할 수 있다.
제16 내지 제22 필드들은 상태 정보 영역(SIA)으로 사용될 수 있다.
제23 필드는 플래그 값을 포함할 수 있다.
제24 내지 제27 필드들은 상태 정보 영역(SIA)으로 사용될 수 있다.
읽기 플래그(read flag)와 연관된 쿼리 응답 UPIU는, 제16 내지 제22 필드들 및 제24 내지 제27 필드들을 상태 정보 영역(SIA)으로 더 사용할 수 있다.
도 18은 도 10의 제12 내지 제27 필드들의 제8 예를 보여준다. 예시적으로, 플래그 토글(toggle flag)을 요청하는 쿼리 요청 UPIU에 따라 생성되는 쿼리 응답 UPIU의 제12 내지 제27 필드들이 도 18에 도시된다.
도 18을 참조하면, 제12 필드는 명령(opcode)에 대한 정보를 포함한다. 플래그 토글과 연관된 명령(opcode)은 '08h'일 수 있다. 제13 필드는 명령과 연관된 필드이며, 쿼리 요청 UPIU에 포함된 플래그 식별자(Flag IDentification Number)의 정보를 동일하게 포함할 수 있다. 제14 필드는 인덱스 필드이며, 쿼리 요청 UPIU에 포함된 인덱스 값을 동일하게 포함할 수 있다. 제15 필드는 셀렉터 필드이며, 쿼리 요청 UPIU에 포함된 셀렉터 값을 동일하게 포함할 수 있다.
제16 내지 제22 필드들은 상태 정보 영역(SIA)으로 사용될 수 있다.
제23 필드는 플래그 값을 포함할 수 있다.
제24 내지 제27 필드들은 상태 정보 영역(SIA)으로 사용될 수 있다.
읽기 플래그(read flag)와 연관된 쿼리 응답 UPIU는, 제16 내지 제22 필드들 및 제24 내지 제27 필드들을 상태 정보 영역(SIA)으로 더 사용할 수 있다.
도 19는 도 10의 제12 내지 제27 필드들의 제9 예를 보여준다. 예시적으로, NOP 쿼리 요청 UPIU에 따라 생성되는 쿼리 응답 UPIU의 제12 내지 제27 필드들이 도 19에 도시된다.
도 19를 참조하면, 제12 필드는 명령(opcode)에 대한 정보를 포함한다. NOP와 연관된 명령(opcode)은 '00h'일 수 있다. 제13 내지 제27 필드들은 상태 정보 영역(SIA)으로 사용될 수 있다. NOP와 연관된 쿼리 응답 UPIU는, 제13 내지 제27 필드들을 상태 정보 영역(SIA)으로 더 사용할 수 있다.
도 20은 본 발명의 제6 실시 예에 따라 스토리지 장치(100)가 출력하는 데이터의 포맷을 보여준다. 예시적으로, 스토리지 장치(100)는 UFS (Universal Flash Storage)의 UPIU (UFS Protocol Information Unit)의 포맷에 따라 데이터를 출력할 수 있다.
도 20을 참조하면, 스토리지 장치(100)는 NOP IN UPIU (Task Management Response UPIU)를 출력할 수 있다. NOP IN UPIU는 복수의 필드들로 구성된다. NOP IN UPIU의 각 필드는, 박스 내에 기재된 번호를 이용하여 참조된다. NOP IN UPIU의 각 필드는, 1 바이트의 데이터를 포함할 수 있다.
NOP IN UPIU의 제0 필드는 트랜잭션 타입(Transaction Type)에 대한 정보를 포함한다. 예를 들어, NOP IN UPIU에 할당된 트랜잭션 코드(Transaction Code)는 '100000b'일 수 있다. NOP IN UPIU의 제1 필드는 플래그 필드이며, NOP IN UPIU에서는 사용되지 않을 수 있다. NOP IN UPIU의 제2 필드는 상태 정보 영역(SIA)으로 사용될 수 있다. NOP IN UPIU의 제3 필드는 작업 태그(Task Tag)에 대한 정보를 포함한다.
NOP IN UPIU의 제4 및 제5 필드들은 상태 정보 영역(SIA)으로 사용될 수 있다. NOP IN UPIU의 제6 필드는 스토리지 장치(100)가 외부 호스트 장치의 요청에 응답할 수 있음을 가리키는 정보를 포함할 수 있다. NOP IN UPIU의 제7 필드는 상태 정보 영역(SIA)으로 사용될 수 있다.
NOP IN UPIU의 제8 필드는 EHS (Extra Header Segment)의 전체 길이에 대한 정보를 포함한다. NOP IN UPIU의 제9 필드는 장치 정보 필드일 수 있다. NOP IN UPIU의 제10 및 제11 필드들은 데이터 세그먼트의 유효 바이트들의 수에 대한 정보를 가리키며, NOP IN UPIU에서는 사용되지 않을 수 있다.
NOP IN UPIU의 제12 내지 제31 필드들은, 상태 정보 영역들(SIA)로 사용될 수 있다.
작업 관리 응답 UPIU의 제31 필드 이후에, 헤더의 단대단 순환중복검사(end-to-end CRC (Cyclic Redundancy Check)) 코드가 옵션으로 추가될 수 있다. 예를 들어, 제0 필드의 첫 번째 비트가 '0'인 경우, 헤더의 단대단 순환중복검사 코드는 생략될 수 있다.
NOP IN UPIU의 제2 필드, 제4 및 제5 필드들, 제7 필드, 그리고 제12 내지 제31 필드들은 상태 정보 영역(SIA)으로 사용된다. 상태 정보는, 상태 정보 영역(SIA)의 적어도 하나의 필드 또는 적어도 하나의 비트로서 추가될 수 있다.
예를 들어, 도 4를 참조하여 설명된 바와 같이, 둘 이상의 상태 정보들이 미리 정해진 위치에 포함될 수 있다. 도 5를 참조하여 설명된 바와 같이, 둘 이상의 상태 정보들이 플래그 데이터들과 함께 포함될 수 있다. 도 6을 참조하여 설명된 바와 같이, 둘 이상의 상태 정보들이 상태 정보 맵 데이터와 함께 포함될 수 있다.
도 3 내지 도 20을 참조하여 설명된 데이터 포맷들에서, 제24 내지 제31 필드들은 공통적으로 상태 정보 영역들(SIA)로 사용된다. 따라서, 상태 정보는 스토리지 장치(100)가 출력하는 UPIU의 제24 내지 제31 필드들 중 적어도 하나의 비트 또는 적어도 하나의 필드로서 추가될 수 있다.
도 21은 본 발명의 실시 예에 따른 메모리 컨트롤러(120)를 보여주는 블록도이다. 도 21을 참조하면, 메모리 컨트롤러(120)는 버스(121), 프로세서(122), RAM (123), 에러 정정 블록(124), 호스트 인터페이스(125), 그리고 메모리 인터페이스(127)를 포함한다.
버스(121)는 메모리 컨트롤러(120)의 구성 요소들 사이에 채널을 제공하도록 구성된다.
프로세서(122)는 메모리 컨트롤러(120)의 제반 동작을 제어하고, 논리 연산을 수행할 수 있다. 프로세서(122)는 호스트 인터페이스(230)를 통해 외부의 호스트 장치와 통신할 수 있다. 프로세서(122)는 호스트 인터페이스(125)를 통해 수신되는 커맨드 또는 어드레스를 RAM (123)에 저장할 수 있다. 프로세서(122)는 호스트 인터페이스(125)를 통해 수신되는 데이터를 RAM (123)에 저장할 수 있다. 프로세서(122)는 RAM (123)에 저장된 커맨드 또는 어드레스에 따라 내부 커맨드 및 어드레스를 생성하고, 생성된 내부 커맨드 및 어드레스를 메모리 인터페이스(127)를 통해 출력할 수 있다. 프로세서(122)는 RAM (123)에 저장된 데이터를 메모리 인터페이스(127)를 통해 출력할 수 있다. 프로세서(122)는 메모리 인터페이스(127)를 통해 수신되는 데이터를 RAM (123)에 저장할 수 있다. 프로세서(122)는 RAM (123)에 저장된 데이터를 호스트 인터페이스(125) 또는 메모리 인터페이스(127)를 통해 출력할 수 있다. 예시적으로, 프로세서(122)는 DMA (Direct Memory Access)를 포함하며, DMA를 이용하여 데이터를 출력할 수 있다.
프로세서(122)는 정보 수집부(221) 및 정보 추가부(222)를 포함할 수 있다. 즉, 프로세서(122)는 스토리지 장치(100, 도 1 참조)의 상태 정보를 수집하고, 수집된 상태 정보를 호스트 인터페이스(125)를 통해 출력할 수 있다.
예시적으로, 프로세서(122)는 코드들을 이용하여 메모리 컨트롤러(120)를 제어할 수 있다. 프로세서(122)는 메모리 컨트롤러(120)의 내부에 제공되는 불휘발성 메모리(예를 들어, Read Only Memory)로부터 코드들을 로드할 수 있다. 다른 예로서, 프로세서(122)는 메모리 인터페이스(127)로부터 수신되는 코드들을 로드할 수 있다.
RAM (123)은 프로세서(122)의 동작 메모리, 캐시 메모리 또는 버퍼 메모리로 사용될 수 있다. RAM (123)은 프로세서(122)가 실행하는 코드들 및 명령들을 저장할 수 있다. RAM (123)은 프로세서(122)에 의해 처리되는 데이터를 저장할 수 있다. RAM (123)은 SRAM (Static RAM)을 포함할 수 있다.
에러 정정 블록(124)은 에러 정정을 수행할 수 있다. 에러 정정 블록(124)은 메모리 인터페이스(127)로 출력될 데이터에 기반하여, 에러 정정을 수행하기 위한 패리티를 생성할 수 있다. 데이터 및 패리티는 메모리 인터페이스(124)를 통해 출력될 수 있다. 에러 정정 블록(124)은 메모리 인터페이스(127)를 통해 수신되는 데이터 및 패리티를 이용하여, 수신된 데이터의 에러 정정을 수행할 수 있다.
호스트 인터페이스(125)는 프로세서(122)의 제어에 따라, 외부의 호스트 장치와 통신하도록 구성된다. 호스트 인터페이스(125)는 USB (Universal Serial Bus), SATA (Serial AT Attachment), HSIC (High Speed Interchip), SCSI (Small Computer System Interface), 파이어와이어(Firewire), PCI (Peripheral Component Interconnection), PCIe (PCI express), NVMe (NonVolatile Memory express), UFS (Universal Flash Storage), SD (Secure Digital), MMC (MultiMedia Card), eMMC (embedded MMC) 등과 같은 다양한 통신 방법들 중 적어도 하나를 이용하여 통신하도록 구성될 수 있다.
메모리 인터페이스(127)는 프로세서(122)의 제어에 따라, 불휘발성 메모리(110, 도 1 참조)와 통신하도록 구성된다.
예시적으로, 프로세서(122)는 코드들을 이용하여 메모리 컨트롤러(120)를 제어할 수 있다. 프로세서(122)는 메모리 컨트롤러(120)의 내부에 제공되는 불휘발성 메모리(예를 들어, Read Only Memory)로부터 코드들을 로드할 수 있다. 다른 예로서, 프로세서(122)는 메모리 인터페이스(127)로부터 수신되는 코드들을 로드할 수 있다.
도 22는 본 발명의 실시 예에 따른 불휘발성 메모리(110)를 보여주는 블록도이다. 도 22를 참조하면, 불휘발성 메모리(110)는 메모리 셀 어레이(111), 어드레스 디코더 회로(113), 페이지 버퍼 회로(115), 데이터 입출력 회로(117), 그리고 제어 로직 회로(119)를 포함한다.
메모리 셀 어레이(111)는 복수의 메모리 블록들(BLK1~BLKz)을 포함한다. 각 메모리 블록은 복수의 메모리 셀들을 포함한다. 각 메모리 블록은 적어도 하나의 접지 선택 라인(GSL), 복수의 워드 라인들(WL), 그리고 적어도 하나의 스트링 선택 라인(SSL)을 통해 어드레스 디코더 회로(113)에 연결될 수 있다. 각 메모리 블록은 복수의 비트 라인들(BL)을 통해 페이지 버퍼 회로(115)에 연결될 수 있다. 복수의 메모리 블록들(BLK1~BLKz)은 복수의 비트 라인들(BL)에 공통으로 연결될 수 있다. 복수의 메모리 블록들(BLK1~BLKz)의 메모리 셀들은 동일한 구조들을 가질 수 있다.
어드레스 디코더 회로(113)는 복수의 접지 선택 라인들(GSL), 복수의 워드 라인들(WL), 그리고 복수의 스트링 선택 라인들(SSL)을 통해 메모리 셀 어레이(111)에 연결된다. 어드레스 디코더 회로(113)는 제어 로직 회로(119)의 제어에 따라 동작한다. 어드레스 디코더 회로(113)는 메모리 컨트롤러(220, 도 4 참조)로부터 어드레스를 수신할 수 있다. 어드레스 디코더 회로(113)는 수신된 어드레스(ADDR)를 디코딩하고, 디코딩된 어드레스에 따라 워드 라인들(WL)에 인가되는 전압들을 제어할 수 있다. 예를 들어, 프로그램 시에, 어드레스 디코더 회로(113)는, 제어 로직 회로(119)의 제어 따라, 워드 라인들(WL)에 패스 전압을 인가할 수 있다. 프로그램 시에, 어드레스 디코더 회로(113)는, 제어 로직 회로(119)의 제어에 따라, 워드 라인들(WL) 중 어드레스(ADDR)가 가리키는 워드 라인에 프로그램 전압을 더 인가할 수 있다.
페이지 버퍼 회로(115)는 복수의 비트 라인들(BL)을 통해 메모리 셀 어레이(111)에 연결된다. 페이지 버퍼 회로(115)는 복수의 데이터 라인들(DL)을 통해 데이터 입출력 회로(117)와 연결된다. 페이지 버퍼 회로(115)는 제어 로직 회로(119)의 제어에 따라 동작한다.
페이지 버퍼 회로(115)는 메모리 셀 어레이(111)의 메모리 셀들에 프로그램될 데이터 또는 메모리 셀들로부터 읽히는 데이터를 저장할 수 있다. 프로그램 시에, 페이지 버퍼 회로(115)는 메모리 셀들에 프로그램될 데이터를 저장할 수 있다. 저장된 데이터에 기반하여, 페이지 버퍼 회로(115)는 복수의 비트 라인들(BL)을 바이어스할 수 있다. 프로그램 시에, 페이지 버퍼 회로(115)는 쓰기 드라이버로 기능할 수 있다. 읽기 시에, 페이지 버퍼 회로(115)는 비트 라인들(BL)의 전압들을 센싱하고, 센싱 결과를 저장할 수 있다. 읽기 시에, 페이지 버퍼 회로(115)는 감지 증폭기로 기능할 수 있다.
데이터 입출력 회로(117)는 복수의 데이터 라인들(DL)을 통해 페이지 버퍼 회로(115)와 연결된다. 데이터 입출력 회로(117)는 메모리 컨트롤러(220, 도 4 참조)와 데이터(DATA)를 교환할 수 있다.
데이터 입출력 회로(117)는 메모리 컨트롤러(220)로부터 수신되는 데이터(DATA)를 임시로 저장할 수 있다. 데이터 입출력 회로(117)는 저장된 데이터를 페이지 버퍼 회로(115)로 전달할 수 있다. 데이터 입출력 회로(117)는 페이지 버퍼 회로(115)로부터 전달되는 데이터(DATA)를 임시로 저장할 수 있다. 데이터 입출력 회로(117)는 저장된 데이터(DATA)를 메모리 컨트롤러(220)로 전송할 수 있다. 데이터 입출력 회로(117)는 버퍼 메모리로 기능할 수 있다.
제어 로직 회로(119)는 메모리 컨트롤러(220)로부터 커맨드(CMD)를 수신한다. 제어 로직 회로(119)는 수신된 커맨드(CMD)를 디코딩하고, 디코딩된 커맨드에 따라 불휘발성 메모리(110)의 제반 동작을 제어할 수 있다. 제어 로직 회로(119)는 메모리 컨트롤러(120, 도 1 참조)로부터 다양한 제어 신호들 및 전압들을 더 수신할 수 있다.
도 23은 본 발명의 실시 예에 따른 메모리 블록(BLKa)을 보여주는 회로도이다. 예시적으로, 도 22에 도시된 메모리 셀 어레이(211)의 복수의 메모리 블록들(BLK1~BLKz) 중 하나의 메모리 블록(BLKa)이 도 23에 도시된다.
도 23을 참조하면, 메모리 블록(BKLa)은 복수의 스트링들(SR)을 포함한다. 복수의 스트링들(SR)은 복수의 비트 라인들(BL1~BLn)에 각각 연결될 수 있다. 각 스트링(SR)은 접지 선택 트랜지스터(GST), 메모리 셀들(MC), 그리고 스트링 선택 트랜지스터(SST)를 포함한다.
각 스트링(SR)의 접지 선택 트랜지스터(GST)는 메모리 셀들(MC) 및 공통 소스 라인(CSL)의 사이에 연결된다. 복수의 스트링들(SR)의 접지 선택 트랜지스터들(GST)은 공통 소스 라인(CSL)에 공통으로 연결된다.
각 스트링(SR)의 스트링 선택 트랜지스터(SST)는 메모리 셀들(MC) 및 비트 라인(BL)의 사이에 연결된다. 복수의 스트링들(SR)의 스트링 선택 트랜지스터들(SST)은 복수의 비트 라인들(BL1~BLn)에 각각 연결된다.
각 스트링(SR)에서, 접지 선택 트랜지스터(GST) 및 스트링 선택 트랜지스터(SST) 사이에 복수의 메모리 셀들(MC)이 제공된다. 각 스트링(SR)에서, 복수의 메모리 셀들(MC)은 직렬 연결될 수 있다.
복수의 스트링들(SR)에서, 공통 소스 라인(CSL)으로부터 동일한 순서에 위치한 메모리 셀들(MC)은 하나의 워드 라인에 공통으로 연결될 수 있다. 복수의 스트링들(SR)의 메모리 셀들(MC)은 복수의 워드 라인들(WL1~WLm)에 연결될 수 있다.
도 24는 본 발명의 다른 실시 예에 따른 메모리 블록(BLKb)을 보여주는 회로도이다. 도 24를 참조하면, 메모리 블록(BLKb)은 복수의 셀 스트링들(CS11~CS21, CS12~CS22)을 포함한다. 복수의 셀 스트링들(CS11~CS21, CS12~CS22)은 행 방향(row direction)및 열 방향(column direction)을 따라 배열되어, 행들 및 열들을 형성할 수 있다.
예를 들어, 행 방향(row direction)을 따라 배열된 셀 스트링들(CS11, CS12)은 제1 행을 형성하고, 행 방향(row direction)을 따라 배열된 셀 스트링들(CS21, CS22)은 제2 행을 형성할 수 있다. 열 방향(column direction)을 따라 배열된 셀 스트링들(CS11, CS21)은 제1 열을 형성하고, 열 방향(column direction)을 따라 배열된 셀 스트링들(CS12, CS22)은 제2 열을 형성할 수 있다.
각 셀 스트링은 복수의 셀 트랜지스터들을 포함할 수 있다. 복수의 셀 트랜지스터들은 접지 선택 트랜지스터들(GSTa, GSTb), 메모리 셀들(MC1~MC6), 그리고 스트링 선택 트랜지스터들(SSTa, SSTb)을 포함한다. 각 셀 스트링의 접지 선택 트랜지스터들(GSTa, GSTb), 메모리 셀들(MC1~MC6), 그리고 스트링 선택 트랜지스터들(SSTa, GSTb)은 셀 스트링들(CS11~CS21, CS12~CS22)이 행들 및 열들을 따라 배열되는 평면(예를 들어, 메모리 블록(BLKb)의 기판 상의 평면)과 수직한 높이 방향으로 적층될 수 있다.
복수의 셀 트랜지스터들은 절연막에 포획된 전하량에 따라 가변하는 문턱 전압들을 갖는 전하 포획형(charge trap type) 트랜지스터들일 수 있다.
최하단의 접지 선택 트랜지스터들(GSTa)은 공통 소스 라인(CSL)에 공통으로 연결될 수 있다.
복수의 셀 스트링들(CS11~CS21, CS12~CS22)의 접지 선택 트랜지스터들(GSTa, GSTb)은 접지 선택 라인(GSL)에 공통으로 연결될 수 있다.
예시적으로, 동일한 높이(또는 순서)의 접지 선택 트랜지스터들은 동일한 접지 선택 라인에 연결되고, 서로 다른 높이(또는 순서)를 갖는 접지 선택 트랜지스터들은 서로 다른 접지 선택 라인들에 연결될 수 있다. 예를 들어, 제1 높이의 접지 선택 트랜지스터들(GSTa)은 제1 접지 선택 라인에 공통으로 연결되고, 제2 높이의 접지 선택 트랜지스터들(GSTb)은 제2 접지 선택 라인에 공통으로 연결될 수 있다.
예시적으로, 동일한 행의 접지 선택 트랜지스터들은 동일한 접지 선택 라인에 연결되고, 서로 다른 행의 접지 선택 트랜지스터들은 서로 다른 접지 선택 라인들에 연결될 수 있다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 접지 선택 트랜지스터들(GSTa, GSTb)은 제1 접지 선택 라인에 연결되고, 제2 행의 셀 스트링들(CS21, CS22)의 접지 선택 트랜지스터들(GSTa, GSTb)은 제2 접지 선택 라인에 연결될 수 있다.
기판(또는 접지 선택 트랜지스터들(GST))으로부터 동일한 높이(또는 순서)에 위치한 메모리 셀들은 하나의 워드 라인에 공통으로 연결되고, 서로 다른 높이(또는 순서)에 위치한 메모리 셀들은 서로 다른 워드 라인들(WL1~WL6)에 각각 연결될 수 있다. 예를 들어, 메모리 셀들(MC1)은 워드 라인(WL1)에 공통으로 연결된다. 메모리 셀들(MC2)은 워드 라인(WL2)에 공통으로 연결된다. 메모리 셀들(MC3)은 워드 라인(WL3)에 공통으로 연결된다. 메모리 셀들(MC4)은 워드 라인(WL4)에 공통으로 연결된다. 메모리 셀들(MC5)은 워드 라인(WL5)에 공통으로 연결된다. 메모리 셀들(MC6)은 워드 라인(WL6)에 공통으로 연결된다.
복수의 셀 스트링들(CS11~CS21, CS12~CS22)의 동일한 높이(또는 순서)의 제1 스트링 선택 트랜지스터들(SSTa)에서, 서로 다른 행의 제1 스트링 선택 트랜지스터들(SSTa)은 서로 다른 스트링 선택 라인들(SSL1a~SSL2a)에 각각 연결된다. 예를 들어, 셀 스트링들(CS11, CS12)의 제1 스트링 선택 트랜지스터들(SSTa)은 스트링 선택 라인(SSL1a)에 공통으로 연결된다. 셀 스트링들(CS21, CS22)의 제1 스트링 선택 트랜지스터들(SSTa)은 스트링 선택 라인(SSL2a)에 공통으로 연결된다.
복수의 셀 스트링들(CS11~CS21, CS12~CS22)의 동일한 높이(또는 순서)의 제2 스트링 선택 트랜지스터들(SSTb)에서, 서로 다른 행의 제2 스트링 선택 트랜지스터들(SSTb)은 서로 다른 스트링 선택 라인들(SSL1b~SSL2b)에 각각 연결된다. 예를 들어, 셀 스트링들(CS11, CS12)의 제2 스트링 선택 트랜지스터들(SSTb)은 스트링 선택 라인(SSL1b)에 공통으로 연결된다. 셀 스트링들(CS21, CS22)의 제2 스트링 선택 트랜지스터들(SSTb)은 스트링 선택 라인(SSL2b)에 공통으로 연결된다.
즉, 서로 다른 행의 셀 스트링들은 서로 다른 스트링 선택 라인들에 연결된다. 동일한 행의 셀 스트링들의 동일한 높이(또는 순서)의 스트링 선택 트랜지스터들은 동일한 스트링 선택 라인에 연결된다. 동일한 행의 셀 스트링들의 서로 다른 높이(또는 순서)의 스트링 선택 트랜지스터들은 서로 다른 스트링 선택 라인들에 연결된다.
예시적으로, 동일한 행의 셀 스트링들의 스트링 선택 트랜지스터들은 하나의 스트링 선택 라인에 공통으로 연결될 수 있다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 스트링 선택 트랜지스터들(SSTa, SSTb)은 하나의 스트링 선택 라인에 공통으로 연결될 수 있다. 제2 행의 샐 스트링들(CS21, CS22)의 스트링 선택 트랜지스터들(SSTa, SSTb)은 하나의 스트링 선택 라인에 공통으로 연결될 수 있다.
복수의 셀 스트링들(CS11~CS21, CS12~CS22)의 열들은 서로 다른 비트 라인들(BL1, BL2)에 각각 연결된다. 예를 들어, 제1 열의 셀 스트링들(CS11~CS21)의 스트링 선택 트랜지스터들(SSTb)은 비트 라인(BL1)에 공통으로 연결된다. 제2 열의 셀 스트링들(CS12~CS22)의 스트링 선택 트랜지스터들(SST)은 비트 라인(BL2)에 공통으로 연결된다.
도 24에 도시된 메모리 블록(BLKb)은 예시적인 것이다. 본 발명의 기술적 사상은 도 24에 도시된 메모리 블록(BLKb)에 한정되지 않는다. 예를 들어, 셀 스트링들의 행들의 수는 증가 또는 감소될 수 있다. 셀 스트링들의 행들의 수가 변경됨에 따라, 셀 스트링들의 행들에 연결되는 스트링 선택 라인들 또는 접지 선택 라인의 수, 그리고 하나의 비트 라인에 연결되는 셀 스트링들의 수 또한 변경될 수 있다.
셀 스트링들의 열들의 수는 증가 또는 감소될 수 있다. 셀 스트링들의 열들의 수가 변경됨에 따라, 셀 스트링들의 열들에 연결되는 비트 라인들의 수, 그리고 하나의 스트링 선택 라인에 연결되는 셀 스트링들의 수 또한 변경될 수 있다.
셀 스트링들의 높이는 증가 또는 감소될 수 있다. 예를 들어, 셀 스트링들 각각에 적층되는 접지 선택 트랜지스터들, 메모리 셀들 또는 스트링 선택 트랜지스터들의 수는 증가 또는 감소될 수 있다.
예시적으로, 쓰기 및 읽기는 셀 스트링들(CS11~CS21, CS12~CS22)의 행의 단위로 수행될 수 있다. 스트링 선택 라인들(SSL1a, SSL1b, SSL2a, SSL2b)에 의해, 셀 스트링들(CS11~CS21, CS12~CS22)이 하나의 행 단위로 선택될 수 있다.
셀 스트링들(CS11~CS21, CS12~CS22)의 선택된 행에서, 쓰기 및 읽기는 워드 라인의 단위로 수행될 수 있다. 셀 스트링들(CS11~CS21, CS12~CS22)의 선택된 행에서, 선택된 워드 라인에 연결된 메모리 셀들이 프로그램될 수 있다.
도 25는 본 발명의 다른 실시 예에 따른 스토리지 장치(300)를 보여주는 블록도이다. 도 25를 참조하면, 스토리지 장치(300)는 불휘발성 메모리(310), 메모리 컨트롤러(320) 및 RAM (330)을 포함한다. 도 1의 스토리지 장치(100)와 비교하면, 불휘발성 메모리(310) 및 메모리 컨트롤러(320)의 외부에 RAM (330)에 추가적으로 제공된다.
RAM (330)은 DRAM (Dynamic RAM), SRAM (Static RAM), SDRAM (Synchronous DRAM), PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FeRAM (Ferroelectric RAM) 등과 같은 다양한 랜덤 액세스 메모리들 중 적어도 하나를 포함할 수 있다.
메모리 컨트롤러(320)는 RAM (330)을 버퍼 메모리, 캐시 메모리, 또는 동작 메모리로 사용할 수 있다. 메모리 컨트롤러(320)는 호스트 장치로부터 수신된 데이터를 RAM (330)에 저장하고, RAM (330)에 저장된 데이터를 불휘발성 메모리(310)에 기입할 수 있다. 메모리 컨트롤러(320)는 불휘발성 메모리(310)로부터 읽은 데이터를 RAM (330)에 저장하고, RAM (330)에 저장된 데이터를 호스트 장치로 출력할 수 있다. 메모리 컨트롤러(330)는 불휘발성 메모리(310)로부터 읽은 데이터를 RAM (330)에 저장하고, RAM (330)에 저장된 데이터를 다시 불휘발성 메모리(310)에 기입할 수 있다.
메모리 컨트롤러(320)는 불휘발성 메모리(310)를 관리하기 위해 필요한 데이터 또는 코드를 RAM (330)에 저장할 수 있다. 예를 들어, 메모리 컨트롤러(320)는 불휘발성 메모리(310)를 관리하기 위해 필요한 데이터 또는 코드를 불휘발성 메모리(310)로부터 읽고, RAM (330)에서 구동할 수 있다.
스토리지 장치(300)는 솔리드 스테이트 드라이브(SSD), 메모리 카드, 또는 실장형 메모리를 형성할 수 있다.
도 26은 본 발명의 실시 예에 따른 컴퓨팅 장치(1000)를 보여주는 블록도이다. 도 26을 참조하면, 컴퓨팅 장치(1000)는 프로세서(1100), 메모리(1200), 스토리지 장치(1300), 모뎀(1400), 그리고 사용자 인터페이스(1500)를 포함한다.
프로세서(1100)는 컴퓨팅 장치(1000)의 제반 동작을 제어하고, 논리 연산을 수행할 수 있다. 예를 들어, 프로세서(1100)는 시스템-온-칩(SoC, System-on-Chip)으로 구성될 수 있다. 프로세서(1100)는 범용 프로세서, 특수 목적 프로세서 또는 어플리케이션 프로세서일 수 있다.
RAM (1200)은 프로세서(1100)와 통신할 수 있다. RAM (1200)은 프로세서(1100) 또는 컴퓨팅 장치(1000)의 메인 메모리일 수 있다. 프로세서(1100)는 RAM (1200)에 코드 또는 데이터를 임시로 저장할 수 있다. 프로세서(1100)는 RAM (1200)을 이용하여 코드를 실행하고, 데이터를 처리할 수 있다. 프로세서(1100)는 RAM (1200)을 이용하여 운영체제, 어플리케이션과 같은 다양한 소프트웨어들을 실행할 수 있다. 프로세서(1100)는 RAM (1200)을 이용하여 컴퓨팅 장치(1000)의 제반 동작을 제어할 수 있다. RAM (1200)은 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등과 같은 휘발성 메모리, 또는 PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FeRAM (Ferroelectric RAM) 등과 같은 불휘발성 메모리를 포함할 수 있다.
스토리지 장치(1300)는 프로세서(1100)와 통신할 수 있다. 스토리지 장치(1300)는 장기적으로 보존되어야 하는 데이터를 저장할 수 있다. 즉, 프로세서(1100)는 장기적으로 보존되어야 하는 데이터를 스토리지 장치(1300)에 저장할 수 있다. 스토리지 장치(1300)는 컴퓨팅 장치(1000)를 구동하기 위한 부트 이미지를 저장할 수 있다. 스토리지 장치(1300)는 운영체제, 어플리케이션과 같은 다양한 소프트웨어들의 소스 코드들을 저장할 수 있다. 스토리지 장치(1300)는 운영체제, 어플리케이션과 같은 다양한 소프트웨어들에 의해 처리된 데이터를 저장할 수 있다.
예시적으로, 프로세서(1100)는 스토리지 장치(1300)에 저장된 소스 코드들을 RAM (1200)에 로드하고, RAM (1200)에 로드된 코드들을 실행함으로써, 운영체제, 어플리케이션과 같은 다양한 소프트웨어들을 구동할 수 있다. 프로세서(1100)는 스토리지 장치(1300)에 저장된 데이터를 RAM (1200)에 로드하고, RAM (1200)에 로드된 데이터를 처리할 수 있다. 프로세서(1100)는 RAM (1200)에 저장된 데이터 중 장기적으로 보존하고자 하는 데이터를 스토리지 장치(1300)에 저장할 수 있다.
스토리지 장치(1300)는 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등과 같은 불휘발성 메모리를 포함할 수 있다.
모뎀(1400)은 프로세서(1100)의 제어에 따라 외부 장치와 통신을 수행할 수 있다. 예를 들어, 모뎀(1400)은 외부 장치와 유선 또는 무선 통신을 수행할 수 있다. 모뎀(140)은 LTE (Long Term Evolution), 와이맥스(WiMax), GSM (Global System for Mobile communication), CDMA (Code Division Multiple Access), 블루투스(Bluetooth), NFC (Near Field Communication), 와이파이(WiFi), RFID (Radio Frequency IDentification) 등과 같은 다양한 무선 통신 방식들, 또는 USB (Universal Serial Bus), SATA (Serial AT Attachment), HSIC (High Speed Interchip), SCSI (Small Computer System Interface), 파이어와이어(Firewire), PCI (Peripheral Component Interconnection), PCIe (PCI express), NVMe (NonVolatile Memory express), UFS (Universal Flash Storage), SD (Secure Digital), SDIO, UART (Universal Asynchronous Receiver Transmitter), SPI (Serial Peripheral Interface), HS-SPI (High Speed SPI), RS232, I2C (Inter-integrated Circuit), HS-I2C, I2S, (Integrated-interchip Sound), S/PDIF (Sony/Philips Digital Interface), MMC (MultiMedia Card), eMMC (embedded MMC) 등과 같은 다양한 유선 통신 방식들 중 적어도 하나에 기반하여 통신을 수행할 수 있다.
사용자 인터페이스(1500)는 프로세서(1100)의 제어에 따라 사용자와 통신할 수 있다. 예를 들어, 사용자 인터페이스(1500)는 키보드, 키패드, 버튼, 터치 패널, 터치 스크린, 터치 패드, 터치 볼, 카메라, 마이크, 자이로스코프 센서, 진동 센서, 등과 같은 사용자 입력 인터페이스들을 포함할 수 있다. 사용자 인터페이스(150)는 LCD (Liquid Crystal Display), OLED (Organic Light Emitting Diode) 표시 장치, AMOLED (Active Matrix OLED) 표시 장치, LED, 스피커, 모터 등과 같은 사용자 출력 인터페이스들을 포함할 수 있다.
스토리지 장치(1300)는 도 1 내지 도 24를 참조하여 설명된 스토리지 장치(100 또는 300)를 포함할 수 있다. 즉, 스토리지 장치(1300)는 응답 데이터에 상태 정보를 추가하여 프로세서(1100)로 전송할 수 있다.
프로세서(1100)는 스토리지 장치(1300)로부터 수신되는 상태 정보를 이용하여 스토리지 장치(1300)를 제어할 수 있다. 예를 들어, 프로세서(1100)는 스토리지 장치(1300)와 연관된 전력 제어, 수명 제어 등을 수행할 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
110, 310; 불휘발성 메모리
120, 320; 메모리 컨트롤러
330; RAM
221; 정보 수집부
222; 정보 추가부
121; 버스
122; 프로세서
123; 랜덤 액세스 메모리
124; 에러 정정 블록
125; 호스트 인터페이스
127; 메모리 인터페이스
111; 메모리 셀 어레이
113; 어드레스 디코더 회로
115; 페이지 버퍼 회로
117; 데이터 입출력 회로
119; 제어 로직 회로
1000; 컴퓨팅 장치
1100; 프로세서
1200; 랜덤 액세스 메모리
1300; 스토리지 장치
1400; 모뎀
1500; 사용자 인터페이스

Claims (10)

  1. 불휘발성 메모리 및 상기 불휘발성 메모리를 제어하도록 구성되는 메모리 컨트롤러를 포함하는 스토리지 장치의 동작 방법에 있어서:
    요청을 수신하는 단계;
    상기 수신된 요청에 따라, 상기 수신된 요청에 대응하는 동작을 수행하는 단계;
    상기 수행된 동작에 대한 정보를 포함하는 응답 데이터를 생성하는 단계; 그리고
    상기 생성된 응답 데이터를 출력하는 단계를 포함하고,
    상기 스토리지 장치의 상태에 대한 정보를 포함하는 상태 정보가 상기 수신된 요청 및 상기 수행된 동작과 독립적으로 수집되고,
    상기 응답 데이터를 생성하는 단계에서, 상기 상태 정보가 상기 응답 데이터에 추가되는 동작 방법.
  2. 제1 항에 있어서,
    상기 응답 데이터 및 상기 상태 정보는, UFS (Universal Flash Storage)의 UPIU (UFS Protocol Information Units)의 포맷으로 전송되는 동작 방법.
  3. 제2 항에 있어서,
    상기 상태 정보는, UFS의 응답 UPIU (Response UPIU) 포맷의 제16 내지 제31 필드들 중 적어도 하나의 필드로서 전송되는 동작 방법.
  4. 제2 항에 있어서,
    상기 상태 정보는, UFS의 데이터 출력 UPIU (Data Out UPIU) 포맷의 제4 내지 제7 필드들, 제9 필드, 제20 내지 제31 필드들 중 적어도 하나의 필드로서 전송되는 동작 방법.
  5. 제2 항에 있어서,
    상기 상태 정보는, UFS의 전송 대기 UPIU (Ready To Transfer UPIU) 포맷의 제20 내지 제31 필드들 중 적어도 하나의 필드로서 전송되는 동작 방법.
  6. 제2 항에 있어서,
    상기 상태 정보는, UFS의 작업 관리 응답 UPIU (Task Management Response UPIU) 포맷의 제20 내지 제31 필드들 중 적어도 하나의 필드로서 전송되는 동작 방법.
  7. 제2 항에 있어서,
    상기 상태 정보는, UFS의 쿼리 응답 UPIU (Query Response UPIU) 포맷의 제28 내지 제31 필드들 중 적어도 하나의 필드로서 전송되는 동작 방법.
  8. 제2 항에 있어서,
    상기 상태 정보는, UFS의 쿼리 응답 UPIU (Query Response UPIU) 포맷의 제16, 제17, 그리고 제20 내지 제27 필드들 중 적어도 하나의 필드로서 전송되는 동작 방법.
  9. 제2 항에 있어서,
    상기 상태 정보는, UFS의 쿼리 응답 UPIU (Query Response UPIU) 포맷의 제16 내지 제19, 그리고 제24 내지 제27 필드들 중 적어도 하나의 필드로서 전송되는 동작 방법.
  10. 불휘발성 메모리; 그리고
    상기 불휘발성 메모리를 제어하도록 구성되는 메모리 컨트롤러를 포함하고,
    상기 메모리 컨트롤러는 상기 불휘발성 메모리 및 상기 메모리 컨트롤러의 상태에 대한 정보를 포함하는 상태 정보를 수집하도록 구성되고,
    외부 장치로부터 액세스 요청이 수신되면, 상기 메모리 컨트롤러는 상기 액세스 요청을 수행하고, 상기 액세스 요청에 따른 수행 결과를 포함하는 응답 데이터에 상기 상태 정보를 추가하여 상기 외부 장치로 출력하도록 구성되는 스토리지 장치.
KR1020140035144A 2014-03-26 2014-03-26 스토리지 장치 및 스토리지 장치의 동작 방법 KR20150112075A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020140035144A KR20150112075A (ko) 2014-03-26 2014-03-26 스토리지 장치 및 스토리지 장치의 동작 방법
US14/541,335 US20150278087A1 (en) 2014-03-26 2014-11-14 Storage device and an operating method of the storage device
CN201510136929.1A CN104951402B (zh) 2014-03-26 2015-03-26 存储装置及其操作方法和计算系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140035144A KR20150112075A (ko) 2014-03-26 2014-03-26 스토리지 장치 및 스토리지 장치의 동작 방법

Publications (1)

Publication Number Publication Date
KR20150112075A true KR20150112075A (ko) 2015-10-07

Family

ID=54166068

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140035144A KR20150112075A (ko) 2014-03-26 2014-03-26 스토리지 장치 및 스토리지 장치의 동작 방법

Country Status (3)

Country Link
US (1) US20150278087A1 (ko)
KR (1) KR20150112075A (ko)
CN (1) CN104951402B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170055395A (ko) * 2015-11-10 2017-05-19 삼성전자주식회사 스토리지 장치 및 그것의 디버깅 방법
US11126584B2 (en) 2015-10-30 2021-09-21 Samsung Electronics Co., Ltd. Method for transferring request in storage device and method for issuing command in host

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102637160B1 (ko) 2016-04-14 2024-02-19 삼성전자주식회사 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법
CN112992231A (zh) * 2017-02-02 2021-06-18 慧荣科技股份有限公司 数据储存装置以及参数改写方法
TWI705330B (zh) * 2017-02-02 2020-09-21 慧榮科技股份有限公司 資料儲存裝置以及參數改寫方法
KR20190018326A (ko) * 2017-08-14 2019-02-22 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작방법
KR102411290B1 (ko) * 2017-10-24 2022-06-22 삼성전자주식회사 선택적으로 퍼지 동작을 수행하도록 구성되는 호스트 장치 및 스토리지 장치를 포함하는 스토리지 시스템
TWI700590B (zh) * 2019-01-28 2020-08-01 瑞昱半導體股份有限公司 介面轉接電路
JP7266628B2 (ja) * 2021-03-19 2023-04-28 株式会社日立製作所 ストレージ装置、ストレージ装置制御方法
CN117396859A (zh) * 2022-01-30 2024-01-12 华为技术有限公司 数据处理方法、装置以及电子设备

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6728798B1 (en) * 2000-07-28 2004-04-27 Micron Technology, Inc. Synchronous flash memory with status burst output
US20050050269A1 (en) * 2003-08-27 2005-03-03 Horn Robert L. Method of collecting and tallying operational data using an integrated I/O controller in real time
US7512847B2 (en) * 2006-02-10 2009-03-31 Sandisk Il Ltd. Method for estimating and reporting the life expectancy of flash-disk memory
CN100476782C (zh) * 2006-09-22 2009-04-08 普天信息技术研究院 一种存储卡数据传输方法
US8543742B2 (en) * 2007-02-22 2013-09-24 Super Talent Electronics, Inc. Flash-memory device with RAID-type controller
US20090106498A1 (en) * 2007-10-23 2009-04-23 Kevin Michael Lepak Coherent dram prefetcher
US8085586B2 (en) * 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
CN101261568B (zh) * 2008-04-09 2012-07-04 成都市华为赛门铁克科技有限公司 一种管理存储设备的方法和装置
US8010738B1 (en) * 2008-06-27 2011-08-30 Emc Corporation Techniques for obtaining a specified lifetime for a data storage device
US8166232B2 (en) * 2009-04-02 2012-04-24 Hitachi, Ltd. Metrics and management for flash memory storage life
US8578138B2 (en) * 2009-08-31 2013-11-05 Intel Corporation Enabling storage of active state in internal storage of processor rather than in SMRAM upon entry to system management mode
US8990538B2 (en) * 2010-11-05 2015-03-24 Microsoft Corporation Managing memory with limited write cycles in heterogeneous memory systems
US8539139B1 (en) * 2010-12-17 2013-09-17 Teradota Us, Inc. Managing device wearout using I/O metering
US10079068B2 (en) * 2011-02-23 2018-09-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Devices and method for wear estimation based memory management
JP5762106B2 (ja) * 2011-04-20 2015-08-12 キヤノン株式会社 通信装置及びその制御方法、並びにプログラム
JP5677336B2 (ja) * 2011-08-01 2015-02-25 株式会社東芝 メモリ・デバイス
JP2013077278A (ja) * 2011-09-16 2013-04-25 Toshiba Corp メモリ・デバイス
JP5694101B2 (ja) * 2011-09-20 2015-04-01 株式会社東芝 メモリ・デバイス、ホスト・デバイス
JP5547154B2 (ja) * 2011-09-21 2014-07-09 株式会社東芝 メモリ・デバイス
US10359949B2 (en) * 2011-10-31 2019-07-23 Apple Inc. Systems and methods for obtaining and using nonvolatile memory health information
KR20130061967A (ko) * 2011-12-02 2013-06-12 삼성전자주식회사 메모리 시스템 및 그것의 웨어 레벨링 방법
TWI536157B (zh) * 2012-02-23 2016-06-01 原相科技股份有限公司 電子裝置與電腦可讀取媒體
KR101949671B1 (ko) * 2012-06-28 2019-04-25 삼성전자 주식회사 라이프 싸이클을 증가시킬 수 있는 저장 장치 및 그 동작 방법
TWI526838B (zh) * 2013-02-27 2016-03-21 東芝股份有限公司 記憶體裝置
US9450876B1 (en) * 2013-03-13 2016-09-20 Amazon Technologies, Inc. Wear leveling and management in an electronic environment
US20140310536A1 (en) * 2013-04-16 2014-10-16 Qualcomm Incorporated Storage device assisted inline encryption and decryption
KR20150014002A (ko) * 2013-07-25 2015-02-06 삼성전자주식회사 데이터 전송 속도 관리자를 포함하는 스토리지 시스템 및 그것의 데이터 전송 속도 변경 방법
KR102145420B1 (ko) * 2013-07-25 2020-08-18 삼성전자주식회사 데이터 전송 속도를 변경하는 스토리지 시스템 및 그것의 데이터 전송 속도 변경 방법
US9377966B2 (en) * 2013-10-09 2016-06-28 Samsung Electronics Co., Ltd. Method and apparatus for efficiently processing storage commands
KR102188062B1 (ko) * 2014-02-28 2020-12-07 삼성전자 주식회사 데이터 저장 장치의 동작 방법과 상기 데이터 저장 장치를 포함하는 시스템의 동작 방법
US9450833B2 (en) * 2014-03-26 2016-09-20 International Business Machines Corporation Predicting hardware failures in a server
US9984007B2 (en) * 2014-03-28 2018-05-29 Samsung Electronics Co., Ltd. Storage system and method for performing and authenticating write-protection thereof
KR102285789B1 (ko) * 2014-07-01 2021-08-04 삼성전자 주식회사 외장 저장 장치, 및 이의 기준 주파수를 설정하는 방법
US20160011790A1 (en) * 2014-07-14 2016-01-14 Sandisk Technologies Inc. Systems and methods to enable access to a host memory associated with a unified memory architecture (uma)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11126584B2 (en) 2015-10-30 2021-09-21 Samsung Electronics Co., Ltd. Method for transferring request in storage device and method for issuing command in host
KR20170055395A (ko) * 2015-11-10 2017-05-19 삼성전자주식회사 스토리지 장치 및 그것의 디버깅 방법

Also Published As

Publication number Publication date
CN104951402A (zh) 2015-09-30
US20150278087A1 (en) 2015-10-01
CN104951402B (zh) 2019-07-19

Similar Documents

Publication Publication Date Title
KR102447471B1 (ko) 불휘발성 메모리 장치를 포함하는 스토리지 장치
US10223011B2 (en) Storage device including nonvolatile memory device and controller and operating method of the storage device
KR102403253B1 (ko) 불휘발성 메모리 장치를 포함하는 스토리지 장치
KR101730991B1 (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
KR102128406B1 (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
KR102249810B1 (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
KR102290448B1 (ko) 불휘발성 메모리 및 불휘발성 메모리의 동작 방법
KR102292183B1 (ko) 불휘발성 메모리의 동작 방법 및 불휘발성 메모리를 포함하는 스토리지 장치의 동작 방법
KR102293078B1 (ko) 불휘발성 메모리 장치
KR20150112075A (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
KR102333743B1 (ko) 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 동작 방법
KR102285462B1 (ko) 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 메모리 시스템의 동작 방법
KR102294848B1 (ko) 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치
KR102316441B1 (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
KR20170070921A (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
KR102313017B1 (ko) 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 쓰기를 제어하는 컨트롤러를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법
US10162568B2 (en) Method for searching matching key of storage device and server system including the same
KR20220113159A (ko) 저장 장치 및 그 동작 방법
KR102365171B1 (ko) 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 동작 방법
KR20160001911A (ko) 불휘발성 메모리, 랜덤 액세스 메모리 및 메모리 컨트롤러를 포함하는 솔리드 스테이트 드라이브
KR101751952B1 (ko) 스토리지 장치의 동작 방법 및 스토리지 장치에 데이터를 기입하는 방법
KR102606468B1 (ko) 불휘발성 메모리 장치, 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치에 데이터를 프로그램 하는 프로그램 방법
KR20210054396A (ko) 저장 장치 및 그 동작 방법
KR102282952B1 (ko) 스토리지 장치의 동작 방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid