KR20180025788A - 스토리지 장치 및 이의 호스트 - Google Patents

스토리지 장치 및 이의 호스트 Download PDF

Info

Publication number
KR20180025788A
KR20180025788A KR1020170016850A KR20170016850A KR20180025788A KR 20180025788 A KR20180025788 A KR 20180025788A KR 1020170016850 A KR1020170016850 A KR 1020170016850A KR 20170016850 A KR20170016850 A KR 20170016850A KR 20180025788 A KR20180025788 A KR 20180025788A
Authority
KR
South Korea
Prior art keywords
host
calibration
descriptor
storage device
calibration data
Prior art date
Application number
KR1020170016850A
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 US15/690,849 priority Critical patent/US10969960B2/en
Publication of KR20180025788A publication Critical patent/KR20180025788A/ko
Priority to US17/221,503 priority patent/US11567663B2/en
Priority to US18/152,655 priority patent/US12001676B2/en

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • G06F21/46Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
    • 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/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • 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/0629Configuration or reconfiguration 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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

스토리지 시스템의 스토리지 장치 및 이의 호스트가 개시된다. 본 개시에 따른 스토리지 장치는 상기 호스트와 상기 스토리지 장치 간의 설정 정보를 포함하는 켈리브레이션 데이터를 저장하는 비휘발성 메모리 및 상기 호스트로부터 변경된 설정 정보를 포함하는 디스크립터를 수신하고, 상기 디스크립터를 기초로 상기 설정 정보를 변경하도록 상기 켈리브레이션 데이터를 업데이트 하는 켈리브레이션 매니저를 포함할 수 있다.

Description

스토리지 장치 및 이의 호스트{STORAGE DEVICE AND ITS HOST}
본 개시의 기술적 사상은 스토리지 장치 및 이의 호스트에 관한 것으로, 더욱 상세하게는 호스트에 대한 설정 정보를 저장하는 스토리지 장치에 관한 것이다.
스토리지 시스템(storage system)은 호스트(host)와 스토리지 장치(storage device)로 구성되며, UFS(universal flash storage), SATA(serial ATA), SCSI(small computer small interface), SAS(serial attached SCSI), eMMC(embedded MMC) 등과 같은 다양한 인터페이스 표준을 통해 연결된다. 호스트와 스토리지 장치의 통신에 있어서 호환성 문제가 발생할 수 있고, 최적화의 필요성이 생길 수 있다.
본 개시의 기술적 사상이 해결하고자 하는 과제는 호스트와의 통신에 있어서 호환성 문제를 효율적으로 해결하고 최적화를 수행할 수 있는 할 수 있는 스토리지 장치를 제공하는데 있다.
본 개시의 기술적 사상이 해결하고자 하는 또 다른 과제는 스토리지 장치와의 통신에 있어서 호환성 문제를 효율적으로 해결하고 최적화를 수행할 수 있는 스토리지 시스템의 호스트를 제공하는데 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 호스트와 통신 가능하게 연결된 스토리지 장치는 상기 호스트와 상기 스토리지 장치 간의 설정 정보를 포함하는 켈리브레이션 데이터를 저장하는 비휘발성 메모리 및 상기 호스트로부터 변경된 설정 정보를 포함하는 디스크립터를 수신하고, 상기 디스크립터를 기초로 상기 설정 정보를 변경하도록 상기 켈리브레이션 데이터를 업데이트 하는 켈리브레이션 매니저를 포함할 수 있다.
본 개시의 기술적 사상의 또 다른 측면에 따른 호스트는 스토리지 장치와 통신 가능하게 연결된 호스트 인터페이스 및 상기 스토리지 장치와 호스트 간의 설정 정보를 업데이트 하기 위한 디스크립터를 생성하고, 상기 디스크립터를 상기 스토리지 장치에 출력하는 켈리브레이션 컨트롤러를 포함하고, 상기 디스크립터는 설정 변경이 필요한 호스트에 대한 호스트 아이디, 설정 변경이 필요한 이벤트, 설정 변경이 필요한 기능 블록의 어드레스, 상기 어드레스에 기입할 설정값 및 설정 변경이 수행되는 옵션 중 적어도 하나를 포함할 수 있다.
본 개시의 기술적 사상에 따른 스토리지 장치는 호스트 별 켈리브레이션 데이터를 저장하고, 호스트로부터 수신한 디스크립터를 이용하여 켈리브레이션 데이터를 업데이트 함으로써 설정을 변경할 수 있다. 이에 따라 스토리지 장치와 호스트 사이의 통신이 안정화될 수 있고, 스토리지 장치에서 호스트 별 설정이 효율적으로 관리될 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 2는 본 개시의 예시적 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 3은 본 개시의 예시적 실시예에 따른 켈리브레이션 매니저의 동작 방법을 나타내는 순서도이다.
도 4는 본 개시의 예시적 실시예에 따른 켈리브레이션 컨트롤러의 동작 방법을 나타내는 순서도이다.
도 5는 본 개시의 예시적 실시예에 따른 플래시 메모리를 기반으로 하는 UFS 시스템을 나타내는 블록도이다.
도 6은 본 개시의 예시적 실시예에 따른 메모리 셀 어레이에 포함된 메모리 블록을 나타내는 회로도이다.
도 7는 본 개시의 예시적 실시예들에 따른 메모리 셀 어레이에 포함된 메모리 블록의 다른 예를 나타내는 회로도이다.
도 8은 본 개시의 예시적 실시예들에 따른 메모리 셀 어레이에 포함된 메모리 블록의 다른 예를 나타내는 회로도이다.
도 9는 도 8의 메모리 블록을 나타내는 사시도이다.
도 10은 본 개시의 예시적 실시예에 따른 디스크립터의 예시를 나타내는 표이다.
도 11은 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작방법을 나타내는 도면이다.
도 12는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 동작방법을 나타내는 순서도이다.
도 13은 본 개시의 예시적 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 14는 본 개시의 예시적 실시예에 따른 켈리브레이션 매니저의 동작방법을 나타내는 순서도이다.
도 15는 본 개시의 예시적 실시예에 따른 켈리브레이션 매니저의 동작방법을 나타내는 순서도이다.
도 16은 본 개시의 예시적 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 17은 본 개시의 예시적 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 18은 본 개시의 예시적 실시예에 따른 컴퓨팅 시스템을 나타내는 도면이다.
도 1은 본 개시의 예시적 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 1을 참조하면, 스토리지 시스템(10)은 제1 호스트(100_1), 제2 호스트(100_2), 제3 호스트(100_3) 및 스토리지 장치(200)를 포함할 수 있다. 제1 내지 제3 호스트(100_1~100_3)는 각각 켈리브레이션 컨트롤러(110)를 포함할 수 있고, 스토리지 장치(200)는 켈리브레이션 매니저(210) 및 비휘발성 메모리(220)를 포함할 수 있다.
비휘발성 메모리(220)는 제1 켈리브레이션 데이터(CDatA), 제2 켈리브레이션 데이터(CDatB) 및 제3 켈리브레이션 데이터(CDatC)를 포함할 수 있다. 제1 켈리브레이션 데이터(CDatA)는 제1 호스트(100_1)에 대한 설정 정보를 포함할 수 있고, 제2 켈리브레이션 데이터(CDatB)는 제2 호스트(100_2)에 대한 설정 정보를 포함할 수 있고, 제3 켈리브레이션 데이터(CDatC)는 제3 호스트(100_3)에 대한 설정 정보를 포함할 수 있다. 자세하게는, 제1 내지 제3 켈리브레이션 데이터(CDatA, CDatB, CDatC)는 각각 제1 내지 제3 호스트(100_1~100_3)에 대한 호스트 정보, 설정 변경 이벤트 정보, 대상 어드레스, 설정 값 및 옵션 정보를 포함할 수 있다.
제1 호스트(100_1)와 스토리지 장치(200) 간의 통신에 있어서 설정 변경의 필요가 있는 경우, 제1 호스트(100_1)에 포함된 켈리브레이션 컨트롤러(110)는 디스크립터(Ds)를 생성하고, 스토리지 장치(200)에 전송할 수 있다. 디스크립터(Ds)는 커맨드 신호를 통해 전송될 수 있다. 본 개시의 일 예시에 따르면, 디스크립터(Ds)는 라이트 커맨드 신호(예를 들어, 라이트 버퍼 커맨드 신호(Write Buffer Command))를 통해 전송될 수 있다.
스토리지 장치(200)에 포함되는 켈리브레이션 매니저(210)는 디스크립터(Ds)를 수신할 수 있다. 켈리브레이션 매니저(210)는 수신한 디스크립터(Ds)에 기초하여 제1 켈리브레이션 데이터(CDatA)를 업데이트할 수 있다. 또한, 켈리브레이션 매니저(210)는 업데이트한 제1 켈리브레이션 데이터(CDatA)를 이용하여 스토리지 장치(200)의 각종 설정을 변경할 수 있다. 이를 위해 켈리브레이션 매니저(210)는 스토리지 장치(200)의 각종 기능 블록과 통신 가능하도록 연결될 수 있고, 이에 관해서는 도 2에서 후술한다.
비휘발성 메모리(220)는 비제한적인 예시로서 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드 플래시 메모리(Vertical NAND; VNAND), 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory; RRAM), 상변화 메모리(Phase-Change Memory; PRAM), 자기저항 메모리(Magnetoresistive Random Access Memory; MRAM), 강유전체 메모리(Ferroelectric Random Access Memory; FRAM), 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory; STT-RAM) 등이 될 수 있다. 비휘발성 메모리(220)는 3차원 어레이 구조(three-dimensional 10 array structure) 등으로 구현될 수 있다. 또한, 비휘발성 메모리(220)는 반도체 메모리 장치뿐만 아니라, 자기 디스크 장치로 구현될 수도 있다. 본 발명의 기술적 사상에 따른 실시예는 전하 저장층이 전도성 부유 게이트(floating gate)로 구성된 플래시 메모리는 물론, 전하 저장층이 절연막으로 구성된 차지 트랩형 플래시(charge trap flash; CTF)에도 모두 적용 가능하다. 본 명세서에서 비휘발성 메모리(220)는 플래시 메모리인 것으로 설명되나 본 발명의 기술적 사상이 이에 제한되지 않음은 이해되어야 할 것이다.
본 발명의 기술적 사상에 따른 스토리지 시스템(10)에 포함된 호스트(100_1~100_3) 및 스토리지 장치(200)는 작동 중 호환성 문제가 생기거나 최적화 필요성이 생긴 경우 디스크립터(Ds)를 커맨드를 통해 전송하여 켈리브레이션 데이터(CDatA, CDatB, CDatC)를 업데이트 함으로써 호환성 문제를 해결하고 최적화를 수행할 수 있다. 또한, 스토리지 장치(200)는 비휘발성 메모리(220)에 호스트(100_1~100_3) 별 켈리브레이션 데이터(CDatA, CDatB, CDatC)를 각각 저장하고 업데이트 함으로써, 호스트(100_1~100_3) 설정을 효율적으로 관리할 수 있다.
도 1에서는 제1 호스트(100_1)에 포함된 켈리브레이션 컨트롤러(110)가 디스크립터(Ds)를 전송하여 제1 켈리브레이션 데이터(CDatA)를 업데이트하는 경우만 설명하고 있으나, 이는 일 예시이고, 제2 호스트(100_2)에 포함된 켈리브레이션 컨트롤러(110)는 디스크립터(Ds)를 전송하여 제2 켈리브레이션 데이터(CDatB)를 업데이트 할 수 있고, 제3 호스트(100_3)에 포함된 켈리브레이션 컨트롤러(110)는 디스크립터(Ds)를 전송하여 제3 켈리브레이션 데이터(CDatC)를 업데이트 할 수 있다. 또한, 도 1에서는 호스트(100_1~100_3)가 세 개인 경우를 도시하고 있으나, 본 발명의 기술적 사상은 이에 제한되지 않는다.
도 2는 본 개시의 예시적 실시예에 따른 스토리지 시스템을 나타내는 블록도이다. 도 1과 중복되는 내용은 생략한다.
도 2를 참조하면, 스토리지 시스템(10)은 호스트(100)와 스토리지 장치(200)를 포함할 수 있다. 호스트(100)는 켈리브레이션 컨트롤러(110), 호스트 인터페이스(120), 어플리케이션(130), 장치 드라이버(140) 및 호스트 컨트롤러(150)를 포함할 수 있다. 스토리지 장치(200)는 켈리브레이션 매니저(210), 비휘발성 메모리(220), 장치 인터페이스(230) 및 장치 컨트롤러(240)를 포함할 수 있다. 켈리브레이션 컨트롤러(110), 켈리브레이션 매니저(210) 및 비휘발성 메모리(220)는 도 1에서 상술한 바 생략한다.
호스트(100)와 스토리지 장치(200)는 UFS(universal flash storage), SATA(serial ATA), SCSI(small computer small interface), SAS(serial attached SCSI), eMMC(embedded MMC) 등과 같은 표준 인터페이스를 통해 연결될 수 있다. 호스트 인터페이스(120)와 장치 인터페이스(230)는 데이터나 신호를 주고 받기 위한 데이터 라인과 전원을 제공하기 위한 전원 라인으로 연결될 수 있다. 호스트 인터페이스(120)와 장치 인터페이스(230)는 데이터(DATA) 및 레퍼런스 클록(CLK)을 송수신할 수 있다.
어플리케이션(130)은 호스트(100)에서 실행되는 다양한 응용 프로그램들일수 있다. 장치 드라이버(140)는 호스트(100)에 연결되어 사용되는 주변 장치들을 구동하기 위한 것으로, 스토리지 장치(200)를 구동할 수 있다. 어플리케이션(130)이나 장치 드라이버(140)는 소프트웨어(software) 또는 펌웨어(firmware) 등을 통해 구현될 수 있다. 호스트 컨트롤러(150)는 호스트 인터페이스(120)를 통해, 데이터를 스토리지 장치(200)에 제공하거나 스토리지 장치(200)로부터 데이터를 입력 받을 수 있다. 도시되지 않았으나, 호스트(100)는 메모리를 더 포함할 수 있다. 메모리는 호스트(100)의 메인 메모리(main memory) 또는 캐시 메모리로 사용될 수 있다. 또한, 메모리는 어플리케이션(130)이나 장치 드라이버(140) 등과 같은 소프트웨어를 구동하기 위한 구동메모리(driving memory)로 사용될 수도 있다.
켈리브레이션 컨트롤러(110)는 디스크립터(Ds)를 생성하여 호스트 컨트롤러(150) 및/또는 호스트 인터페이스(120)를 통해서 스토리지 장치(200)에 전송할 수 있다. 도 2에는 켈리브레이션 컨트롤러(110)가 별도의 블록으로 도시되었으나, 이는 일 실시예이고, 본 발명의 또 다른 실시예에서 장치 드라이버(140) 또는 호스트 컨트롤러(150)가 켈리브레이션 컨트롤러(110)의 역할을 수행할 수 있다.
스토리지 장치(200)는 장치 인터페이스(230)를 통해서 호스트(100)와 연결될 수 있다. 장치 컨트롤러(240)는 비휘발성 메모리(220)의 쓰기, 읽기, 소거 등과 같은 전반적인 동작을 제어할 수 있다. 장치 컨트롤러(240)는 어드레스 또는 데이터 버스를 통해 비휘발성 메모리(220) 또는 버퍼 메모리(미도시)와 데이터를 주고 받을 수 있다. 도시되지 않았지만 스토리지 장치(200)는 버퍼 메모리를 더 포함할 수 있다. 버퍼 메모리는 비휘발성 메모리(220)에 저장될 또는 비휘발성 메모리(220)로부터 읽은 데이터를 임시 저장하는 데 사용될 수 있다.
켈리브레이션 매니저(210)는 디스크립터(Ds)를 켈리브레이션 컨트롤러(110)로부터 수신하고, 직접 또는 장치 컨트롤러(240)를 통해 비휘발성 메모리(220)에 업데이트된 켈리브레이션 데이터(220)를 기입할 수 있다. 또한, 켈리브레이션 매니저(210)는 업데이트된 켈리브레이션 데이터(220)를 이용하여 장치 인터페이스(230) 등의 설정을 변경할 수 있다. 도 2에서는 켈리브레이션 매니저(210)가 장치 컨트롤러(240)와 별도로 도시되었으나 이는 일 예시이고, 켈리브레이션 매니저(210)는 장치 컨트롤러(240)에 포함될 수 있다.
도 3은 본 개시의 예시적 실시예에 따른 켈리브레이션 매니저의 동작 방법을 나타내는 순서도이다. 도 1과 중복되는 내용은 생략한다.
도 1 및 도 3을 참조하면, 켈리브레이션 매니저(210)는 호스트(100)로부터 디스크립터(Ds)를 수신할 수 있다(S11). 켈리브레이션 매니저(210)는 수신한 디스크립터(Ds)를 이용하여 비휘발성 메모리(220)에 저장된 켈리브레이션 데이터(CDat)를 업데이트 할 수 있다(S12). 켈리브레이션 매니저(210)는 업데이트된 켈리브레이션 데이터(CDat)를 이용하여 대응하는 기능 블록의 설정을 변경할 수 있다(S13). 예를 들어, 대응하는 기능 블록은 도 2의 장치 인터페이스(230)일 수 있다.
도 4는 본 개시의 예시적 실시예에 따른 켈리브레이션 컨트롤러의 동작 방법을 나타내는 순서도이다. 도 1과 중복되는 내용은 생략한다.
도 1 및 도 4를 참조하면, 호환성 문제가 발생한 경우나 최적화가 필요한 경우와 같은 이벤트가 발생하면(S21), 켈리브레이션 컨트롤러(110)는 이벤트 해결을 위해 스토리지 장치(200)의 설정 변경이 필요한지 판단할 수 있다(S22). 본 개시의 일 실시예에서, 켈리브레이션 컨트롤러(110)는 이벤트에 대한 설정 변경을 통해 최적화를 시킬 필요가 있는지 판단할 수 있다. 스토리지 장치(200)의 설정 변경이 필요하다고 판단되면, 켈리브레이션 컨트롤러(110)는 업데이트 내용이 담긴 디스크립터(Ds)를 생성할 수 있다(S23). 켈리브레이션 컨트롤러(110)는 생성한 디스크립터(Ds)를 스토리지 장치에 전송할 수 있다(S24). 스토리지 장치(200)의 설정 변경이 필요하지 않다고 판단되면, 켈리브레이션 컨트롤러(110)는 디스크립터(Ds)를 생성하지 않고 종료할 수 있다.
도 5는 본 개시의 예시적 실시예에 따른 플래시 메모리를 기반으로 하는 UFS 시스템을 나타내는 블록도이다. 도 2와 중복되는 내용은 생략한다.
도 5를 참조하면, UFS 시스템(20)은 UFS 호스트(300)와 UFS 장치(400)를 포함할 수 있다. UFS 호스트(300)는 켈리브레이션 컨트롤러(310), 호스트 인터페이스(320), 어플리케이션(330), 장치 드라이버(340) 및 호스트 컨트롤러(350)를 포함할 수 있다. 호스트 컨트롤러(350)는 커맨드 큐(Command Queue)(CQ, 351), 전원 관리자(Power Manager)(PM, 352) 및 호스트 DMA(353)를 포함할 수 있다. UFS 시스템(20)은 도 1의 스토리지 시스템(10)의 일 예일 수 있으므로 중복되는 내용은 생략한다.
UFS 호스트(300)의 어플리케이션(330)과 장치 드라이버(340)에서 생성된 커맨드(예를 들면, 쓰기 커맨드)은 호스트 컨트롤러(350)의 커맨드 큐(351)에 입력될 수 있다. 커맨드 큐(351)는 UFS 장치(400)로 제공될 커맨드를 순서대로 저장한다. 커맨드 큐(351)에 저장된 커맨드는 호스트 DMA(353)로 제공될 수 있다. 호스트 DMA(353)는 커맨드를 호스트 인터페이스(320)를 통해 UFS 장치(400)로 보낼 수 있다.
UFS 장치(400)는 켈리브레이션 매니저(410), 플래시 메모리(420), 장치 인터페이스(430) 및 장치 컨트롤러(440)를 포함할 수 있다. 또한, 장치 컨트롤러(440)는 중앙처리장치(CPU, 441), 커맨드 관리자(CMD manager, 442), 플래시 변환 계층(FTL; Flash Translation Layer, 443) 및 플래시 관리자(444)를 포함할 수 있다.
UFS 호스트(300)로부터 UFS 장치(400)로 입력된 커맨드는 장치 인터페이스(430)를 통해 커맨드 관리자(442)로 제공될 수 있다. 도시되지 않았지만, 커맨드 및 데이터는 장치 DMA(미도시)를 통해 커맨드 관리자(442)에 제공될 수 있다. UFS 장치(400)는 제공받은 데이터를 버퍼 램(미도시)에 저장할 수 있다. 버퍼 램(미도시)에 저장된 데이터는 플래시 관리자(444)에 제공될 수 있고, 플래시 관리자(444)는 플래시 변환 계층(443)의 어드레스 맵핑 정보를 참조하여, 플래시 메모리(420)의 선택된 주소에 데이터를 저장할 수 있다. UFS 장치(400)는 커맨드에 필요한 데이터 전송과 프로그램이 완료되면, 장치 인터페이스(430)를 통해 UFS 호스트(300)로 응답 신호(response)를 보내고, 커맨드 완료를 알린다. UFS 호스트(300)는 응답 신호를 전달받은 커맨드에 대한 완료 여부를 장치 드라이버(340)와 어플리케이션(330)에 알려주고, 해당 커맨드에 대한 동작을 종료할 수 있다.
호스트 인터페이스(320) 및 장치 인터페이스(430)는 UFS 인터코넥트 레이어(UFS Interconnect Layer; UIC)로서, Link 레이어(321, 431) 및 PHY 레이어(322, 432)를 포함할 수 있다. Link 레이어(321, 431)는 MIPI UniPro이고, PHY 레이어(322, 432)는 MIPI M-PHY일 수 있다.
본 발명의 일 실시예에 따르면, UFS 호스트(300)는 UFS 장치(400)로 커맨드를 통해 디스크립터(Ds)를 전송할 수 있다. 켈리브레이션 매니저(410)는 CPU(441), 플래시 변환 계층(443), 플래시 관리자(444)를 통해서 플래시 메모리(420)에 디스크립터(Ds)를 이용하여 켈리브레이션 데이터(CDat)를 업데이트할 수 있다. 또한, 켈리브레이션 매니저(410)는 직접 또는 커맨드 관리자(442)를 통해서 플래시 메모리(420)에 저장된 켈리브레이션 데이터(CDat)를 이용하여 UFS 장치(400)에 포함된 기능 블록들의 설정을 변경할 수 있다. 본 명세서에서 기능 블록이라 함은 특정 기능을 수행하는 블록(예를 들어, 장치 인터페이스(430), CPU(441), 커맨드 관리자(442), 플래시 변환 계층(443), 플래지 관리자(444) 등)을 칭할 수 있다. 본 개시의 일 실시예에서, 켈리브레이션 매니저(410)는 업데이트된 켈리브레이션 데이터(CDat)를 기초로 Link 레이어(431) 및 PHY 레이어(432)에 포함된 레지스터의 설정값을 변경할 수 있다.
도 6은 본 개시의 예시적 실시예에 따른 메모리 셀 어레이에 포함된 메모리 블록을 나타내는 회로도이다.
도 6을 참조하면, 비휘발성 메모리(예를 들어, 도 1의 220)는 수평 낸드 플래시 메모리의 메모리 셀 어레이를 포함할 수 있고, 복수의 메모리 블록들을 포함할 수 있다. 각 메모리 블록(BLKa)은 비트 라인(BL0 ~ BLn-1) 방향으로, 다수 개의 메모리 셀(MC)들이 직렬로 연결되는 n(n는 2 이상의 정수)개의 셀 스트링(STR)들을 포함할 수 있다. 일 예로서, 도 6에는 각각의 셀 스트링(STR)이 8 개의 메모리 셀들을 포함하는 예가 도시된다.
도 6과 같은 구조를 갖는 낸드 플래시 메모리 장치는 블록 단위로 소거가 수행되고, 각 워드 라인(WL0 ~ WL7)에 대응되는 페이지 단위로 프로그램을 수행한다. 도 6은 하나의 블록에 n개의 워드 라인들(WL1 ~ WLn)에 대한 n개의 페이지들이 구비되는 예를 도시한다.
도 7는 본 개시의 예시적 실시예들에 따른 메모리 셀 어레이에 포함된 메모리 블록의 다른 예를 나타내는 회로도이다.
도 7를 참조하면, 메모리 블록(BLKb)은 수평 구조의 낸드 플래쉬 메모리일 수 있다. 메모리 블록(BLKb)은 복수의 셀 스트링들(NS11 내지 NS23), 복수의 워드 라인들(WL1 내지 WL8), 복수의 비트 라인들(BL1 내지 BLn), 복수의 접지 선택 라인들(GSL1 및 GSL2), 복수의 스트링 선택 라인들(SSL1 및 SSL2) 및 공통 소스 라인(CSL)을 포함할 수 있다. 여기서, 셀 스트링들의 개수, 워드 라인들의 개수, 비트 라인들의 개수, 접지 선택 라인의 개수 및 스트링 선택 라인들의 개수는 실시예에 따라 다양하게 변경될 수 있다. 특히, 워드라인에 대응되는 메모리 셀들(MC1~8)의 개수가 증가됨에 따라 스트링 선택 라인들의 개수가 증가될 수 있고, 이에 따라 프로그램 디스터브가 증가될 수 있다.
복수의 셀 스트링들은 워드 라인들(WL1 내지 WL8)을 공유할 수 있으며, 적어도 두 개의 셀 스트링들은 하나의 비트 라인을 공유할 수 있다. 하나의 비트 라인을 공유하는 셀 스트링들은 서로 다른 스트링 선택 라인 및 서로 다른 접지 선택 라인에 연결될 수 있다. 예컨대, 셀 스트링들(NS11 및 NS21)은 제1 비트 라인(BL1)을 공유할 수 있으며, 셀 스트링 NS11의 스트링 선택 트랜지스터(SST) 및 접지 선택 트랜지스터(GST)는 각각 제1 스트링 선택 라인(SSL1) 및 제1 접지 선택 라인(GSL1)에 연결되고, 셀 스트링 NS21의 스트링 선택 트랜지스터(SST) 및 접지 선택 트랜지스터(GST)는 제2 스트링 선택 라인(SSL2) 및 제2 접지 선택 라인(GSL2)에 연결될 수 있다. 이에 따라, 제1 워드 라인(WL1)에 연결되어 있고 셀 스트링(NS11, NS12 내지 NS1n)에 속해 있는 메모리 셀들로부터 데이터를 리드하는 경우에는, 제1 워드 라인(WL1)과 제1 스트링 선택 라인(SSL1) 및 제1 접지 선택 라인(GSL1)이 선택될 수 있다.
도 8은 본 개시의 예시적 실시예들에 따른 메모리 셀 어레이에 포함된 메모리 블록의 다른 예를 나타내는 회로도이다.
도 8을 참조하면, 비휘발성 메모리(예를 들어 도 1의 220)는 수직 낸드 플래시 메모리의 메모리 셀 어레이를 포함할 수 있고, 복수의 메모리 블록들을 포함할 수 있다. 각 메모리 블록(BLK0)은 복수의 낸드 셀 스트링들(NS11 ~ NS33), 복수의 워드 라인들(WL1 ~ WL8), 복수의 비트 라인들(BL1 ~ BL3), 복수의 그라운드 선택 라인들(GSL1 ~ GSL3), 복수의 셀 스트링 선택 라인들(SSL1 ~ SSL3) 및 공통 소스 라인(CSL)을 포함할 수 있다. 여기서, 낸드 셀 스트링들의 개수, 워드 라인들의 개수, 비트 라인들의 개수, 그라운드 선택 라인의 개수 및 셀 스트링 선택 라인들의 개수는 실시예에 따라 다양하게 변경될 수 있다.
제1 비트 라인(BL1)과 공통 소스 라인(CSL) 사이에 낸드 셀 스트링들(NS11, NS21, NS31)이 제공되고, 제2 비트 라인(BL2)과 공통 소스 라인(CSL) 사이에 낸드 셀 스트링들(NS12, NS22, NS32)이 제공되고 제3 비트 라인(BL3)과 공통 소스 라인(CSL) 사이에 낸드 셀 스트링들(NS13, NS23, NS33)이 제공된다. 각 낸드 셀 스트링(예를 들면, NS11)은 직렬로 연결된 셀 스트링 선택 트랜지스터(SST), 복수의 메모리 셀들(MC1 내지 MC8) 및 그라운드 선택 트랜지스터(GST)를 포함할 수 있다.
하나의 비트 라인에 공통으로 연결된 셀 스트링들은 하나의 칼럼을 구성한다. 예를 들어, 제1 비트 라인(BL1)에 공통으로 연결된 셀 스트링들(NS11, NS21, NS31)은 제1 칼럼에 대응되고, 제2 비트 라인(BL2)에 공통으로 연결된 셀 스트링들(NS12, NS22, NS32)은 제2 칼럼에 대응되며, 제3 비트 라인(BL3)에 공통으로 연결된 셀 스트링들(NS13, NS23, NS33)은 제3 칼럼에 대응될 수 있다.
하나의 셀 스트링 선택 라인에 연결되는 셀 스트링들은 하나의 로우를 구성한다. 예를 들어, 제1 셀 스트링 선택 라인(SSL1)에 연결된 셀 스트링들(NS11, NS12, NS13)은 제1 로우에 대응되고, 제2 셀 스트링 선택 라인(SSL2)에 연결된 셀 스트링들(NS21, NS22, NS23)은 제2 로우에 대응되며, 제3 셀 스트링 선택 라인(SSL3)에 연결된 셀 스트링들(NS31, NS32, NS33)은 제3 로우에 대응될 수 있다.
셀 스트링 선택 트랜지스터(SST)는 대응하는 셀 스트링 선택 라인(SSL1 ~ SSL3)에 연결된다. 복수의 메모리 셀들(MC1 ~ MC8)은 각각 대응하는 워드 라인(WL1 내지 WL8)에 연결된다. 그라운드 선택 트랜지스터(GST)는 대응하는 그라운드 선택 라인(GSL1 ~ GSL3)에 연결된다. 셀 스트링 선택 트랜지스터(SST)는 대응하는 비트 라인(BL1 ~ BL3)에 연결되고, 그라운드 선택 트랜지스터(GST)는 공통 소스 라인(CSL)에 연결된다.
동일 높이의 워드 라인(예를 들면, WL1)은 서로 공통으로 연결되어 있고, 셀 스트링 선택 라인들(SSL1 ~ SSL3)은 서로 분리되어 있고, 그라운드 선택 라인들(GSL1 ~ GSL3)도 서로 분리되어 있다. 예를 들어, 제 1 워드 라인(WL1)에 연결되어 있고 셀 스트링(NS11, NS12, NS13)에 속해 있는 메모리 셀들을 프로그램하는 경우에는, 제1 워드 라인(WL1)과 제1 셀 스트링 선택 라인(SSL1)이 선택된다. 그라운드 선택 라인들(GSL1 ~ GSL3)은 서로 공통으로 연결될 수도 있다.
도 9는 도 8의 메모리 블록(BLK0)을 나타내는 사시도이다.
도 9를 참조하면, 메모리 셀 어레이(예를 들어, 도 2의 110)에 포함된 각 메모리 블록은 기판(SUB)에 대해 수직 방향으로 형성되어 있다. 도 9에서는, 메모리 블록이 2개의 선택 라인들(GSL, SSL), 8개의 워드 라인들(WL1 ~ WL8), 그리고 3개의 비트 라인들(BL1 ~ BL3)을 포함하는 것으로 도시되어 있으나, 실제로는 이것들보다 더 많거나 적을 수 있다.
기판(SUB)은 제1 도전형(예를 들어, p 타입)을 가지며, 기판(SUB) 상에 제1 방향(예를 들어, Y 방향)을 따라 신장되고, 제2 도전형(예를 들어, n 타입)의 불순물들이 도핑된 공통 소스 라인(CSL)이 제공된다. 인접한 두 공통 소스 라인(CSL) 사이의 기판(SUB)의 영역 상에, 제1 방향을 따라 신장되는 복수의 절연막들(IL)이 제3 방향(예를 들어, Z 방향)을 따라 순차적으로 제공되며, 복수의 절연막들(IL)은 제3 방향을 따라 특정 거리만큼 이격된다. 예를 들어, 복수의 절연막들(IL)은 실리콘 산화물과 같은 절연 물질을 포함할 수 있다.
인접한 두 공통 소스 라인들(CSL) 사이의 기판(SUB)의 영역 상에, 제1 방향을 따라 순차적으로 배치되며, 제3 방향을 따라 복수의 절연막들(IL)을 관통하는 복수의 필라들(pillars)(P)이 제공된다. 예를 들어, 복수의 필라들(P)은 복수의 절연막들(IL)을 관통하여 기판(SUB)과 컨택할 것이다. 구체적으로, 각 필라(P)의 표면층(surface layer)(S)은 제1 타입을 갖는 실리콘 물질을 포함할 수 있고, 채널 영역으로 기능할 수 있다. 한편, 각 필라(P)의 내부층(I)은 실리콘 산화물과 같은 절연 물질 또는 에어 갭(air gap)을 포함할 수 있다.
인접한 두 공통 소스 라인들(CSL) 사이의 영역에서, 절연막들(IL), 필라들(P) 및 기판(SUB)의 노출된 표면을 따라 전하 저장층(charge storage layer, CS)이 제공된다. 전하 저장층(CS)은 게이트 절연층(또는 '터널링 절연층'이라고 지칭함), 전하 트랩층 및 블로킹 절연층을 포함할 수 있다. 예를 들어, 전하 저장층(CS)은 ONO(oxide-nitride-oxide) 구조를 가질 수 있다. 또한, 인접한 두 공통 소스 라인들(CSL) 사이의 영역에서, 전하 저장층(CS)의 노출된 표면 상에, 선택 라인들(GSL, SSL) 및 워드 라인들(WL1 ~ WL8)과 같은 게이트 전극(GE)이 제공된다.
복수의 필라들(P) 상에는 드레인들 또는 드레인 컨택들(DR)이 각각 제공된다. 예를 들어, 드레인들 또는 드레인 컨택들(DR)은 제2 도전형을 갖는 불순물들이 도핑된 실리콘 물질을 포함할 수 있다. 드레인들(DR) 상에, 제2 방향(예를 들어, X 방향)으로 신장되고 제1 방향을 따라 특정 거리만큼 이격되어 배치된 비트 라인들(BL1 내지 BL3)이 제공된다.
도 10는 본 개시의 예시적 실시예에 따른 디스크립터의 예시를 나타내는 표이다.
도 1 및 도 10을 참조하면, 디스크립터(Ds)는 헤더(D_Header), 제1 엔트리(D_Entry1), 제2 엔트리(D_Entry2) 및 제3 엔트리(D_Entry3)를 포함할 수 있다. 헤더(D_Header)는 디스크립터(Ds)의 일반적인 정보를 의미할 수 있고, 호스트 아이디(HostID), 디스크립터 길이(DsLength) 및 엔트리 개수(EntryNo)를 포함할 수 있다. 또한, 엔트리(D_Entry1~3)는 이벤트 별 변경될 설정 정보를 의미하고, 이벤트 넘버(EventNo), 옵션(Option), 어드레스(Address) 및 설정값(Value)을 포함할 수 있다. 도 10에서는 세가지 이벤트에 대한 설정 정보를 변경하기 위해 디스크립터(Ds)가 제1 엔트리(D_Entry1), 제2 엔트리(D_Entry2) 및 제3 엔트리(D_Entry3)를 포함하고 있으나, 이는 일 예시일 뿐이고, 엔트리의 개수는 이보다 많거나 적을 수 있음은 이해되어야 할 것이다.
호스트 아이디(HostID)는 디스크립터(Ds)를 생성하고 전송하는 호스트에 대한 정보를 포함할 수 있다. 즉, 스토리지 장치(200)는 호스트 아이디(HostID)를 통해 설정을 변경해야 하는 대상 호스트를 알 수 있다. 예를 들어, 대상 호스트는 제1 내지 제3 호스트(100_1~100_3) 중 하나일 수 있다. 디스크립터 길이(DsLength)는 전송하는 디스크립터(Ds)의 총 데이터량을 의미할 수 있다. 본 개시의 일 실시예에서 디스크립터 길이(DsLength)는 헤더(D_Header)를 제외한 엔트리들의 총 데이터 량을 의미할 수 있다. 엔트리 개수(EntryNo)는 디스크립터(Ds)에 포함되는 총 엔트리(D_Entry1~3)의 개수일 수 있다. 스토리지 장치(200)는 디스크립터 길이(DsLength) 및 엔트리 개수(EntryNo)를 통해 엔트리(D_Entry1~3)당 데이터량을 알 수 있다. 일 예로서, 디스크립터 길이(DsLength)가 96bit이고, 엔트리 개수(EntryNo)가 3인 경우, 스토리지 장치(200)는 엔트리당 32bit가 할당됨을 알 수 있다.
이벤트 넘버(EventNo)는 설정 변경이 필요한 사건(Incident) 또는 이벤트(이하 이벤트)에 대한 정보를 포함할 수 있다. 스토리지 장치(200)에는 복수의 이벤트가 발생할 수 있고, 복수의 이벤트는 미리 결정된 고유 번호가 설정될 수 있다. 디스크립터(Ds)에는 설정 변경이 필요한 이벤트에 대한 이벤트 넘버(EventNo)에 대한 정보를 포함할 수 있다. 이벤트에 대한 예시로서 전원 인가(Power On), 링크 연결 성공/실패(Linkup Success/Fail) 및 취침모드 진입/종료(Hibernation Mode Enter/Exit)가 있을 수 있다.
옵션(Option)은 설정 변경이 적용되기 위한 조건에 대한 정보를 포함할 수 있다. 스토리지 장치(200)는 이벤트가 일어난 경우라도 옵션(Option)의 조건에 합치하는 경우에만 설정 변경을 적용할 수 있다. 옵션(Option)에 대한 예시로서, 타깃 전원 모드(Target Power Mode), 타깃 레인(Target Lane) 및 타깃 송/수신단(Target Rx/Tx)이 있을 수 있다. 옵션(Option)이 특정 타깃 전원 모드인 경우, 스토리지 장치(200)는 이벤트가 상기 특정 타깃 전원 모드에서 발생한 경우에만 설정 변경을 수행할 수 있다. 옵션(Option)이 특정 레인인 경우, 스토리지 장치(200)는 장치 인터페이스(230)의 특정 레인에 대해서만 설정 변경을 수행할 수 있고, 옵션(Option)이 타깃 송/수신단인 경우, 스토리지 장치(200)는 송신단(Tx) 또는 수신단(Rx) 중 어느 하나에 대해서만 설정 변경을 수행할 수 있다.
어드레스(Address)는 디스크립터(Ds)를 통해 설정 변경이 수행되는 기능 블록의 레지스터(Register) 어드레스를 가리킬 수 있다. 또한, 설정값(Value)은 상기 어드레스(Address)에 저장할 새로운 설정값을 의미할 수 있다. 예를 들어, 기존의 어드레스(Address)에 저장된 값이 ‘0’이었는데 설정값(Value)으로 ‘1’이 새롭게 저장될 수 있다.
도시하지는 않았지만 상기 정보 외에도, 디스크립터(Ds)는 디스크립터인지 여부를 나타내는 디스크립터 코드, 설정 변경 적용 여부 및 설정 업데이트 모드 중 적어도 하나를 더 포함할 수 있다. 호스트(100_1~100_3)는 커맨드를 통해서 스토리지 장치(200)에 디스크립터를 전송할 수 있다. 디스크립터 코드는 스토리지 장치(200)로 하여금 일반 커맨드와 디스크립터를 구분하기 위한 미리 결정된 코드일 수 있다. 설정 변경 적용 여부는 각 엔트리별 설정 변경을 적용시킬지 여부를 나타낼 수 있다. 설정 업데이트 모드는 설정 변경을 하는 경우 선택할 수 있는 모드에 대한 정보를 나타낼 수 있고, 이에 관해서는 도 13 등에서 자세하게 후술한다.
호스트(100_1~100_3)가 스토리지 장치(200)로 디스크립터(Ds)를 전송할 때 커맨드에 포함되는 데이터 스트림(Data Stream)의 형태로 전송할 수 있다. 호스트(100_1~100_3)는 디스크립터(Ds)를 전송하기 전에 스토리지 장치(200)로부터 데이터 스트림의 데이터 구분 정보를 획득한 후, 이에 대응하는 디스크립터(Ds)를 생성할 수 있다. 일 예시로서, 데이터 스트림의 데이터 구분 정보는 스토리지 장치(200)의 제조사가 미리 결정한 어드레스 구분 정보일 수 있다. 또 다른 예시로서, 데이터 스트림의 데이터 구분 정보는 표준으로 결정된 어드레스 구분 정보일 수 있다.
도 11은 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작방법을 나타내는 도면이다. 자세하게는 도 11은 스토리지 장치(200)가 디스크립터를 전송 전 호스트(100)에 대한 인증 절차를 거치는 실시예에 대한 도면이다.
도 2 및 도 11을 참조하면, 스토리지 장치(200)는 호스트(100)로부터 패스워드를 수신 할 수 있다(S110). 본 개시의 일 실시예에 따르면, 호스트(100)는 인증 커맨드를 통해서 스토리지 장치(200)에 패스워드를 전송할 수 있다. 스토리지 장치(200)는 수신한 패스워드를 이용하여 호스트가 등록된 호스트인지 여부를 확인할 수 있다(S120). 자세하게는, 스토리지 장치(200)는 수신한 패스워드가 미리 저장된 패스워드와 일치하는지 여부를 통해 호스트(100)가 등록된 호스트인지 여부를 확인할 수 있다.
호스트(100)가 등록된 호스트인 경우(S130), 즉, 수신한 패스워드와 미리 저장된 패스워드가 일치하는 경우, 스토리지 장치(200)는 호스트(100)에 인증 결과로 ‘1’을 출력할 수 있다(S140). 호스트(100)는 인증 결과로 ‘1’을 수신하면 디스크립터(Ds)를 스토리지 장치(200)에 전송할 수 있고, 스토리지 장치(200)는 호스트(100)로부터 수신한 디스크립터(Ds)를 이용하여 비휘발성 메모리(220)에 저장된 켈리브레이션 데이터(CDat)를 업데이트할 수 있다(S150). 스토리지 장치(200)는 업데이트된 켈리브레이션 데이터(CDat)를 이용하여 대응하는 기능 블록의 설정을 변경할 수 있다(S160).
호스트(100)가 등록된 호스트가 아닌 경우(S130), 즉, 수신한 패스워드와 미리 저장된 패스워드가 일치하지 않는 경우, 스토리지 장치(200)는 호스트(100)에 인증 결과로 ‘0’을 출력할 수 있다(S170). 만약, 호스트(100)로부터 디스크립터(Ds)를 수신하는 경우에도 스토리지 장치(200)는 수신한 디스크립터(Ds)를 이용하지 않고, 호스트(100)에 페일(Fail) 신호를 출력할 수 있다.
도 11은 패스워드를 이용하여 인증을 수행하나 이는 일 예시일 뿐이고, 스토리지 장치(200)가 호스트(100)를 인증하는 모든 방법은 본 발명의 기술적 사상이 적용될 수 있음은 이해되어야 할 것이다.
도 12는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 동작방법을 나타내는 순서도이다. 자세하게는 도 12는 스토리지 시스템의 패스워드 설정 방법을 나타내는 순서도이다.
도 2 및 도 12를 참조하면, 호스트(100)가 스토리지 장치(200)에 체결되면(S210), 호스트(100)는 스토리지 장치(200)에 패스워드 설정 커맨드(Password Set Command) 및 패스워드를 전송할 수 있다(S220). 스토리지 장치(200)는 호스트(100)에 대한 인증키로서 수신한 패스워드를 비휘발성 메모리(220)에 저장할 수 있다(S230). 스토리지 장치(200)는 인증키로서 수신한 패스워드를 도 11과 같은 인증 절차에서 사용할 수 있다.
도 13은 본 개시의 예시적 실시예에 따른 스토리지 시스템을 나타내는 블록도이다. 도 2와 중복되는 내용은 생략한다.
도 2 및 도 13을 참조하면, 스토리지 시스템(10a)은 호스트(100a) 및 스토리지 장치(200a)를 포함하고, 호스트(100a)는 켈리브레이션 컨트롤러(110a)를 포함할 수 있다. 스토리지 장치(200a)는 켈리브레이션 매니저(210a), 비휘발성 메모리(220a) 및 휘발성 메모리(250a)를 포함할 수 있다. 켈리브레이션 매니저(210a), 비휘발성 메모리(220a)는 도 2의 켈리브레이션 매니저(210), 비휘발성 메모리(220)에 각각 대응할 수 있다.
휘발성 메모리(250a)는 제1 켈리브레이션 데이터(CDat1)를 저장할 수 있다. 휘발성 메모리(250a)는 전원이 꺼지면 데이터를 잃어버리는 메모리를 의미할 수 있고, 예시로서, 정적 랜덤 억세스 메모리(Static Random Access Memory;SRAM), 동적 랜덤 억세스 메모리(Dynamic Random Access Memory;DRAM), 래치(Latch), 플립플롭(Flip-Flop), 레지스터(Register) 등을 의미할 수 있으나 이에 제한되지 않는다.
켈리브레이션 컨트롤러(110a)는 디스크립터(Ds)를 생성하고 켈리브레이션 매니저(210a)에 전송할 수 있다. 디스크립터(Ds)는 업데이트 모드에 관한 정보를 포함할 수 있다. 업데이트 모드는 비휘발성 업데이트 모드, 휘발성 업데이트 모드 및 검증 업데이트 모드를 포함할 수 있다. 켈리브레이션 매니저(210a)는 디스크립터(Ds)에 포함된 업데이트 모드에 관한 정보를 분석할 수 있다.
비휘발성 업데이트 모드는 전원이 꺼진 후에도 계속 수신한 디스크립터(Ds)에 따른 설정으로 스토리지 장치(200a)가 운영되는 업데이트 모드를 말할 수 있다. 휘발성 업데이트 모드는 전원이 켜진 상태에는 수신한 디스크립터(Ds)에 따른 설정으로 스토리지 장치(200a)를 운영하고, 전원이 꺼진 경우 이전 설정으로 스토리지 장치(200a)를 운영하는 업데이트 모드를 말할 수 있다. 검증 업데이트 모드는 디스크립터(Ds)에 따른 업데이트를 수행하고, 상기 업데이트로 인해 수행 능력이 개선되었는지 여부를 판단하는 업데이트 모드를 말할 수 있다.
업데이트 모드가 비휘발성 업데이트 모드인 경우, 켈리브레이션 매니저(210a)는 수신한 디스크립터(Ds)를 이용하여 비휘발성 메모리(220a)에 저장된 제2 켈리브레이션 데이터(CDat2)를 업데이트할 수 있다. 그 후 켈리브레이션 매니저(210a)는 업데이트한 제2 켈리브레이션 데이터(CDat2)를 이용하여 스토리지 장치(200a)의 설정을 변경할 수 있다.
업데이트 모드가 휘발성 업데이트 모드인 경우, 켈리브레이션 매니저(210a)는 수신한 디스크립터(Ds)를 이용하여 제1 켈리브레이션 데이터(CDat1)를 생성하고 휘발성 메모리(250a)에 저장할 수 있다. 그 후 켈리브레이션 매니저(210a)는 생성한 제1 켈리브레이션 데이터(CDat1)를 이용하여 스토리지 장치(200a)의 설정을 변경할 수 있다.
업데이트 모드가 검증 업데이트 모드인 경우, 켈리브레이션 매니저(210a)는 수신한 디스크립터(Ds)를 이용하여 제1 켈리브레이션 데이터(CDat1)를 생성하고 휘발성 메모리(250a)에 저장할 수 있다. 그 후 켈리브레이션 매니저(210a)는 생성한 제1 켈리브레이션 데이터(CDat1)를 이용하여 스토리지 장치(200a)의 설정을 변경하고, 스토리지 장치(200a)의 성능이 개선되었는지 확인할 수 있다. 성능이 개선된 경우, 켈리브레이션 매니저(210a)는 제1 켈리브레이션 데이터(CDat1)를 기초로 비휘발성 메모리 장치에 저장된 제2 켈리브레이션 데이터(CDat2)를 업데이트할 수 있다. 성능이 개선되지 않은 경우, 켈리브레이션 매니저(210a)는 호스트(100a)에 디스크립터(Ds)의 재전송을 요구하는 신호를 출력할 수 있다.
본 개시의 일 실시예에서, 스토리지 장치(200a)는 업데이트 모드 별 인증 레벨을 달리할 수 있다. 비휘발성 업데이트 모드는 잘못된 켈리브레이션 데이터(CDat)가 저장된 경우 비휘발성 메모리(220a)의 특성상 복구 불가능할 수 있다. 이에 따라서, 스토리지 장치(200a)는 스토리지 장치(200a)의 제조사에 의해 인증되고 암호화된 디스크립터(Ds)에 대응하는 제2 켈리브레이션 데이터(CDat2)를 비휘발성 메모리(220a)에 저장할 수 있다. 휘발성 업데이트 모드의 경우, 전원이 꺼지면 그 전 설정으로 복귀하기 때문에 스토리지 장치(200a)는 암호화 하지 않고 제1 켈리브레이션 데이터(CDat1)를 휘발성 메모리(250a)에 저장할 수 있다.
도 14는 본 개시의 예시적 실시예에 따른 켈리브레이션 매니저의 동작방법을 나타내는 순서도이다. 자세하게는, 도 14는 켈리브레이션 매니저의 업데이트 모드에 따른 동작방법을 나타내는 순서도이다.
도 13 및 도 14를 참조하면, 켈리브레이션 매니저(210a)는 호스트(100a)로부터 디스크립터(Ds)를 수신한 후 업데이트 모드에 대한 정보를 확인할 수 있다(S310). 업데이트 모드가 비휘발성 업데이트 모드인 경우(S320), 켈리브레이션 매니저(210a)는 디스크립터(Ds)를 이용하여 비휘발성 메모리(220a)에 저장된 제2 켈리브레이션 데이터(CDat2)를 업데이트할 수 있다(S331). 켈리브레이션 매니저(210a)는 업데이트된 제2 켈리브레이션 데이터(CDat2)를 이용하여 스토리지 장치(200a)의 설정을 변경할 수 있다(S332).
업데이트 모드가 비휘발성 업데이트 모드가 아닌 경우(S320), 켈리브레이션 매니저(210a)는 업데이트 모드가 휘발성 업데이트 모드인지 확인할 수 있다. 업데이트 모드가 휘발성 업데이트 모드인 경우(S340), 켈리브레이션 매니저(210a)는 디스크립터(Ds)를 이용하여 제1 켈리브레이션 데이터(CDat1)를 생성할 수 있다(S341). 켈리브레이션 매니저(210a)는 생성된 제1 켈리브레이션 데이터(CDat1)를 휘발성 메모리(250a)에 저장하고(S342), 제1 켈리브레이션 데이터(CDat1)를 이용하여 스토리지 장치(200a)의 설정을 변경할 수 있다(S343).
업데이트 모드가 비휘발성 업데이트 모드도 아니고, 휘발성 업데이트 모드도 아닌 경우(S340), 업데이트 모드는 검증 업데이트 모드일 수 있다. 검증 업데이트 모드의 경우, 켈리브레이션 매니저(210a)는 디스크립터(Ds)를 이용하여 제1 켈리브레이션 데이터(CDat1)를 생성한 후 휘발성 메모리(250a)에 저장할 수 있다(S351). 켈리브레이션 매니저(210a)는 생성된 제1 켈리브레이션 데이터(CDat1)를 이용하여 스토리지 장치(200a)의 설정을 변경할 수 있다(S352). 그 후 켈리브레이션 매니저(210a)는 스토리지 장치(200a)의 수행 능력이 개선되었는지 판단할 수 있다(S353). 본 개시의 일 실시예에서, 켈리브레이션 매니저(210a)는 설정 변경된 스토리지 장치(200a)의 이벤트를 수행시키고 평가함으로써 수행 능력이 개선되었는지 여부를 확인할 수 있다. 이 과정에서 호스트(100a)가 스토리지 장치(200a)에 대한 리드 및 라이트 동작을 수행할 수 있다.
수행 능력이 개선되었다고 판단되는 경우, 켈리브레이션 매니저(210a)는 제1 켈리브레이션 데이터(CDat1)를 이용하여 비휘발성 메모리(220a)에 저장된 제2 켈리브레이션 데이터(CDat2)를 업데이트할 수 있다(S354). 수행 능력이 개선되지 않았다고 판단되는 경우, 켈리브레이션 매니저(210a)는 호스트(100a)에 디스크립터(Ds)의 재전송을 요구하는 신호를 출력할 수 있다(S355). 켈리브레이션 매니저(210a)가 호스트(100a)로부터 디스크립터(Ds)를 재수신하면(S356), S351~S353 단계를 다시 수행할 수 있다.
도 15는 본 개시의 예시적 실시예에 따른 켈리브레이션 매니저의 동작방법을 나타내는 순서도이다.
도 2 및 도 15을 참조하면, 호스트(100)는 켈리브레이션 데이터(CDat)에 대한 업데이트가 더 이상 필요하지 않은 경우, 잠금(Lock) 신호를 켈리브레이션 매니저(210)에 출력할 수 있다. 호스트(100)는 새로운 커맨드를 통해서 잠금 신호를 출력하거나, 디스크립터(Ds)에 잠금 신호를 포함하여 전송할 수 있다. 켈리브레이션 매니저(210)는 호스트(100)로부터 잠금 신호를 수신하면(S210), 비휘발성 메모리(220)에 저장된 켈리브레이션 데이터(CDat)에 대해 잠금 상태로 설정할 수 있다. 본 개시의 일 실시예에 따르면, 켈리브레이션 데이터(CDat)는 잠금 여부에 대한 잠금 상태 정보를 포함하고, 켈리브레이션 매니저(210)는 잠금 상태 정보를 변경함으로써 잠금 상태로 설정할 수 있다(S220). 본 개시의 또 다른 실시예에 다르면, 켈리브레이션 매니저(210)는 해당 호스트(100)의 디스크립터(Ds) 인증 정보를 삭제함으로써 잠금 상태로 설정할 수 있다.
잠금 상태로 설정된 이후 호스트(100)가 디스크립터(Ds)를 송신하는 등의 동작으로 해당 켈리브레이션 데이터(CDat)에 대해 수정하려는 경우, 스토리지 장치(200)는 호스트(100)에 페일(Fail) 신호를 출력할 수 있다(S230).
도 16은 본 개시의 예시적 실시예에 따른 스토리지 시스템을 나타내는 블록도이다. 도 1과 중복되는 내용은 생략한다.
도 16을 참조하면, 스토리지 시스템(10b)은 제1 호스트(100_1b), 제2 호스트(100_2b), 제3 호스트(100_3b) 및 스토리지 장치(200b)를 포함할 수 있다. 제1 내지 제3 호스트(100_1~100_3b)는 각각 켈리브레이션 컨트롤러(110b)를 포함할 수 있고, 스토리지 장치(200b)는 켈리브레이션 매니저(210b) 및 비휘발성 메모리(220b)를 포함할 수 있다. 비휘발성 메모리(220b)는 디폴트 켈리브레이션 데이터(DefCDat), 제1 개별 켈리브레이션 데이터(CData’), 제2 개별 켈리브레이션 데이터(CDatb’) 및 제3 개별 켈리브레이션 데이터(CDatc’)를 포함할 수 있다. 도 16은 비휘발성 메모리(220b)가 도 1의 제1 켈리브레이션 데이터(CData), 제2 켈리브레이션 데이터(CDatb) 및 제3 켈리브레이션 데이터(CDatc) 대신 디폴트 켈리브레이션 데이터(DefCDat), 제1 개별 켈리브레이션 데이터(CData’), 제2 개별 켈리브레이션 데이터(CDatb’) 및 제3 개별 켈리브레이션 데이터(CDatc’)를 저장하는 차이점만 있으므로 이 외의 설명은 생략한다.
디폴트 켈리브레이션 데이터(DefCDat)는 제1 내지 제3 호스트(100_1b~100_3b)에 공통되는 설정 정보를 포함할 수 있다. 본 개시의 일 예시로서, 디폴트 켈리브레이션 데이터(DefCDat)는 스토리지 디바이스(200b)에 기본적인 설정일 수 있다. 제1 개별 켈리브레이션 데이터(CData’)는 제1 호스트(100_1b)에만 해당되는 설정이고, 제2 개별 켈리브레이션 데이터(CDatb’)는 제2 호스트(100_2b)에만 해당되는 설정이고, 제3 개별 켈리브레이션 데이터(CDatc’)는 제3 호스트(100_3b)에만 해당되는 설정일 수 있다. 즉, 켈리브레이션 매니저(210b)는 제1 호스트(100_1b)에 관한 스토리지 장치(200b)에 대한 설정에 대해서 디폴트 켈리브레이션 데이터(DefCDat) 및 제1 개별 켈리브레이션 데이터(CData’)를 종합하여 고려할 수 있다.
또한, 켈리브레이션 매니저(210b)는 켈리브레이션 컨트롤러(110b)로부터 디스크립터(Ds)를 수신하면 디폴트 켈리브레이션 데이터(DefCDat)는 업데이트하지 않고 제1 개별 켈리브레이션 데이터(CData’), 제2 개별 켈리브레이션 데이터(CDatb’) 및 제3 개별 켈리브레이션 데이터(CDatc’) 중 어느 하나만을 업데이트 할 수 있다.
도 17은 본 개시의 예시적 실시예에 따른 스토리지 시스템을 나타내는 블록도이다. 도 1과 중복되는 내용은 생략한다.
도 17을 참조하면, 스토리지 시스템(10c)은 제1 호스트(100_1c), 제2 호스트(100_2c), 제3 호스트(100_3c), 스토리지 장치(200c) 및 켈리브레이션 매니저(300c)를 포함할 수 있다. 제1 내지 제3 호스트(100_1~100_3c)는 각각 켈리브레이션 컨트롤러(110c)를 포함할 수 있고, 스토리지 장치(200c)는 제1 켈리브레이션 데이터(CData), 제2 켈리브레이션 데이터(CDatb) 및 제3 켈리브레이션 데이터(CDatc)를 저장하는 비휘발성 메모리(220b)를 포함할 수 있다.
켈리브레이션 매니저(300c)는 도 1 내지 도 16에서 상술한 켈리브레이션 매니저(210)의 역할을 수행할 수 있다. 본 개시의 일 실시예에 따르면, 켈리브레이션 매니저(300c)는 켈리브레이션 매니징 칩으로서 하드웨어로 구현되거나 특정 알고리즘을 갖는 소프트웨어로 구현될 수 있다. 즉, 켈리브레이션 매니저(300c)은 켈리브레이션 컨트롤러(110c)로부터 디스크립터(Ds)를 수신하여 제1 켈리브레이션 데이터(CData), 제2 켈리브레이션 데이터(CDatb) 및 제3 켈리브레이션 데이터(CDatc) 중 어느 하나를 업데이트하고, 업데이트된 켈리브레이션 데이터(CData, CDatb, CDatc)를 이용하여 스토리지 장치(200c)의 설정을 변경할 수 있다.
도 18은 본 개시의 예시적 실시예에 따른 컴퓨팅 시스템을 나타내는 도면이다.
본 개시의 일 실시예에 따른 컴퓨팅 시스템(5000)은 모바일 기기나 데스크 탑 컴퓨터 등일 수 있고, CPU 등을 포함하는 호스트(5100), 램(5200), 유저 인터페이스(5300) 및 장치 드라이버(5400)를 포함할 수 있으며, 이들 구성요소는 각각 버스(5600)에 전기적으로 연결되어 있을 수 있다. 스토리지 장치(5500)는 장치 드라이버(5500)와 연결될 수 있다.
호스트(5100) 및 스토리지 장치(5500) 각각은 도 1 등에 도시된 호스트(100) 및 스토리지 장치(200)가 될 수 있다. 호스트(5100)는 컴퓨팅 시스템(5000) 전체를 제어하고, 유저 인터페이스(5300)를 통해서 입력된 유저의 명령에 대응하는 연산 또는 데이터 처리를 수행할 수 있다. 램(5200)은 호스트(5100)의 데이터 메모리 역할을 할 수 있고, 호스트(5100)는 장치 드라이버(5400)를 통해서 스토리지 장치(5500)에 유저 데이터를 쓰거나 독출할 수 있다. 또한 도 18에서는 스토리지 장치(5500)의 동작 및 관리를 제어하기 위한 장치 드라이버(5400)가 호스트(5100)의 외부에 구비되는 것으로 도시되었으나, 장치 드라이버(5400)는 호스트(5400)의 내부에 구비되어도 무방하다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 호스트와 통신 가능하게 연결된 스토리지 장치에 있어서,
    상기 호스트와 상기 스토리지 장치 간의 설정 정보를 포함하는 켈리브레이션 데이터를 저장하는 비휘발성 메모리; 및
    상기 호스트로부터 변경된 설정 정보를 포함하는 디스크립터를 수신하고, 상기 디스크립터를 기초로 상기 설정 정보를 변경하도록 상기 켈리브레이션 데이터를 업데이트 하는 켈리브레이션 매니저;를 포함하는 스토리지 장치.
  2. 제1항에 있어서,
    상기 디스크립터는 상기 호스트로부터 수신한 커맨드에 포함되는 것을 특징으로 하는 스토리지 장치.
  3. 제1항에 있어서,
    상기 디스크립터는 설정 변경이 필요한 상기 호스트에 대한 호스트 아이디, 설정 변경이 필요한 이벤트, 설정 변경이 필요한 기능 블록의 어드레스, 상기 어드레스에 기입할 설정값 및 설정 변경이 수행되는 옵션 중 적어도 하나를 포함하는 것을 특징으로 하는 스토리지 장치.
  4. 제1항에 있어서,
    상기 켈리브레이션 매니저는,
    상기 호스트로부터 패스워드를 수신하고, 상기 패스워드가 미리 결정된 패스워드인 경우에만 상기 호스트로부터 수신한 디스크립터를 통해 상기 켈리브레이션 데이터를 업데이트 하는 것을 특징으로 하는 스토리지 장치.
  5. 제1항에 있어서,
    상기 켈리브레이션 매니저는 업데이트된 켈리브레이션 데이터를 상기 비휘발성 메모리에 저장하고,
    상기 켈리브레이션 매니저는 상기 업데이트된 켈리브레이션 데이터에 기초하여 상기 스토리지 장치의 설정 정보를 변경하는 것을 특징으로 하는 스토리지 장치.
  6. 제1항에 있어서,
    상기 켈리브레이션 매니저는,
    상기 디스크립터를 이용한 상기 스토리지 장치의 설정 변경을 통해 상기 스토리지 장치의 수행 능력 개선 여부를 확인하고,
    상기 수행 능력이 개선된 경우 상기 디스크립터를 이용하여 상기 켈리브레이션 데이터를 업데이트하고,
    업데이트된 켈리브레이션 데이터를 상기 비휘발성 메모리에 저장하는 것을 특징으로 하는 스토리지 장치.
  7. 제1항에 있어서,
    복수 개의 호스트와 데이터 및 신호를 주고 받을 수 있도록 연결된 장치 인터페이스를 더 포함하고,
    상기 비휘발성 메모리는 상기 복수 개의 호스트 별로 상기 켈리브레이션 데이터를 저장하는 것을 특징으로 하는 스토리지 장치.
  8. 제7항에 있어서,
    상기 켈리브레이션 매니저는,
    상기 복수 개의 호스트 중 어느 한 호스트로부터 잠금(Lock) 신호를 수신한 경우, 상기 호스트에 대응하는 상기 켈리브레이션 데이터를 더 이상 변경하지 못하도록 설정하는 것을 특징으로 하는 스토리지 장치.
  9. 스토리지 장치와 통신 가능하게 연결된 호스트 인터페이스; 및
    상기 스토리지 장치와 호스트 간의 설정 정보를 업데이트 하기 위한 디스크립터를 생성하고, 상기 디스크립터를 상기 스토리지 장치에 출력하는 켈리브레이션 컨트롤러;를 포함하고,
    상기 디스크립터는 설정 변경이 필요한 상기 호스트에 대한 호스트 아이디, 설정 변경이 필요한 이벤트, 설정 변경이 필요한 기능 블록의 어드레스, 상기 어드레스에 기입할 설정값 및 설정 변경이 수행되는 옵션 중 적어도 하나를 포함하는 것을 특징으로 하는 호스트.
  10. 제9항에 있어서,
    상기 켈리브레이션 컨트롤러는 상기 디스크립터를 커맨드에 포함시켜서 상기 스토리지 장치에 전송하는 것을 특징으로 하는 호스트.
KR1020170016850A 2016-09-01 2017-02-07 스토리지 장치 및 이의 호스트 KR20180025788A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US15/690,849 US10969960B2 (en) 2016-09-01 2017-08-30 Storage device and host for the same
US17/221,503 US11567663B2 (en) 2016-09-01 2021-04-02 Storage device and host for the same
US18/152,655 US12001676B2 (en) 2016-09-01 2023-01-10 Storage device and host for the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201662382393P 2016-09-01 2016-09-01
US62/382,393 2016-09-01

Publications (1)

Publication Number Publication Date
KR20180025788A true KR20180025788A (ko) 2018-03-09

Family

ID=61727837

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170016850A KR20180025788A (ko) 2016-09-01 2017-02-07 스토리지 장치 및 이의 호스트

Country Status (1)

Country Link
KR (1) KR20180025788A (ko)

Similar Documents

Publication Publication Date Title
KR102564563B1 (ko) 메모리 시스템 및 그 동작 방법
KR102512448B1 (ko) 메모리 시스템 및 그의 동작 방법
KR102083547B1 (ko) 플래시 메모리와 메모리 컨트롤러를 포함하는 데이터 저장 장치 및 그것의 배드 페이지 관리 방법
US11567663B2 (en) Storage device and host for the same
KR102517129B1 (ko) 메모리 시스템 및 그의 동작방법
KR20130037554A (ko) 불휘발성 메모리의 동작 방법 및 불휘발성 메모리를 제어하는 방법
JP2014038687A (ja) 多様なメモリセル状態定義を有する不揮発性メモリ装置とそのプログラミング方法及び動作方法並びにこれを備えたメモリシステム
KR20160073873A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
US12001676B2 (en) Storage device and host for the same
KR102050729B1 (ko) 메모리 시스템
KR20130117422A (ko) 프로그램 스케줄러를 포함하는 플래시 메모리 장치
KR20170050953A (ko) 메모리 시스템 및 그의 동작방법
KR20140020057A (ko) 키 제어 로직을 포함하는 플래시 메모리 장치 및 그것의 암호화 키 저장 방법
TWI720985B (zh) 記憶體系統及其操作方法
KR20160050393A (ko) 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법
KR20140001535A (ko) 스토리지 시스템 및 그것의 데이터 관리 방법
KR20210057355A (ko) 메모리 장치, 메모리 컨트롤러, 메모리 시스템 및 그 동작 방법
TWI716381B (zh) 資料處理系統
KR102271502B1 (ko) 메모리 장치 및 그 제어 방법
KR102632690B1 (ko) 비휘발성 메모리 장치 및 그 프로그램 방법
KR20180025788A (ko) 스토리지 장치 및 이의 호스트
KR20220064096A (ko) 메모리 시스템
KR20170070900A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
US12014059B2 (en) Storage devices, methods of operating storage devices, and methods of operating host devices
US9691494B2 (en) Semiconductor device and method of operating the same using lastly erased memory block

Legal Events

Date Code Title Description
E902 Notification of reason for refusal