KR20220111303A - 관리되는 nand에 대한 rpmb 개선 - Google Patents

관리되는 nand에 대한 rpmb 개선 Download PDF

Info

Publication number
KR20220111303A
KR20220111303A KR1020227022529A KR20227022529A KR20220111303A KR 20220111303 A KR20220111303 A KR 20220111303A KR 1020227022529 A KR1020227022529 A KR 1020227022529A KR 20227022529 A KR20227022529 A KR 20227022529A KR 20220111303 A KR20220111303 A KR 20220111303A
Authority
KR
South Korea
Prior art keywords
memory
host
examples
memory device
subject matter
Prior art date
Application number
KR1020227022529A
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 마이크론 테크놀로지, 인크.
Publication of KR20220111303A publication Critical patent/KR20220111303A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0408Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/04Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/71Three dimensional array

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

지원되는 전압을 호스트에 공급하거나, 호스트에 온도 스로틀링 정보를 제공하거나 결과를 판독하려는 호스트가 결과 레지스터에 결과를 배치한 호스트가 아님을 표시하도록 구성된 메모리 디바이스 또는 메모리 제어기를 포함하는 장치 및 방법이 개시된다. 작동 방법 뿐만 아니라 기계 판독 가능한 매체 및 다른 실시예가 개시된다.

Description

관리되는 NAND에 대한 RPMB 개선 {RPMB IMPROVEMENTS TO MANAGED NAND}
우선권 주장
본 특허 출원은 Blodgett et al.의 07/07/2017일자로 출원된 “UFS 3.0 Improvements”이라는 제목의 미국 가특허 출원 일련 번호 62/529,910 및 Blodgett et al.의 04/05/2018일자로 출원된 “UFS 3.0 Improvements”이라는 제목의 미국 가특허 출원 일련 번호 62/653,382에 대한 35 U.S.C 섹션 119하에서 우선권의 이익을 주장하고, 이들의 각각은 그 전체가 본 출원에 참조로서 통합된다.
메모리 디바이스는 전형적으로 컴퓨터 또는 다른 전자 디바이스에서 내부 반도체 집적 회로로 제공된다. 휘발성 및 비 휘발성 메모리를 포함하여 많은 상이한 유형의 메모리가 있다. 휘발성 메모리는 데이터를 유지하기 위해 파워가 필요하고, RAM (Random-Access Memory), DRAM (Dynamic Random Access Memory) 또는 SDRAM (Synchronous Dynamic Random Access Memory)을 포함한다. 비 휘발성 메모리 (스토리지 디바이스)는 파워가 공급되지 않을 때 저장된 데이터를 보유할 수 있으며, 플래시 메모리, 판독 전용 메모리 (ROM), 전기적으로 소거 가능한 프로그램 가능 ROM(EEPROM), EPROM (erasable Programmable ROM), 저항 가변 메모리 예컨대, PCRAM (phase change random access memory), RRAM (resistive random access memory) 또는 MRAM (magnetoresistive random access memory)을 포함한다.
플래시 메모리는 광범위한 전자 애플리케이션들에서 비 휘발성 메모리로 사용된다. 플래시 메모리 디바이스들은 전형적으로 고 메모리 밀도, 고 신뢰성 및 저전력 소모를 허용하는 하나의 트랜지스터, 플로팅 게이트 메모리 셀, 또는 전하 트랩 메모리 셀의 하나 이상의 그룹들을 포함한다. 두 가지 흔한 유형의 플래시 메모리 어레이 아키텍처는 NAND 및 NOR 아키텍처를 포함하고, 각각의 기본 메모리 셀 구성이 배열되는 로직 형식의 이름을 따서 명명되었다. 메모리 어레이의 플로팅 게이트 또는 전하 트랩 메모리 셀은 전형적으로 매트릭스로 배열된다. 어레이의 행(row)에서 각각의 플로팅 게이트 메모리 셀의 게이트는 액세스 라인 (예를 들어, 워드 라인)에 결합된다. NOR 아키텍처에서, 어레이의 열(column)에서 각각의 메모리 셀의 드레인은 데이터 라인 (예를 들어, 비트 라인)에 결합된다. NAND 아키텍처에서, 어레이의 열에서 각각의 메모리 셀의 드레인은 소스 라인과 비트 라인 사이에서 직렬로 소스 내지 드레인에 함께 결합된다.
NOR 및 NAND 아키텍처 반도체 메모리 어레이는 게이트에 결합된 워드 라인을 선택함으로써 특정 메모리 셀을 활성화하는 디코더를 통해 액세스된다. NOR 아키텍처 반도체 메모리 어레이에서, 일단 활성화되면, 선택된 메모리 셀은 그것들의 데이터 값을 비트 라인 상에 배치시키고, 특정 셀이 프로그래밍되는 상태에 따라 상이한 전류가 흐르게 한다. NAND 아키텍처 반도체 메모리 어레이에서, 드레인 측 선택 게이트 (SGD) 라인에 높은 바이어스 전압이 인가된다. 각각의 그룹의 선택되지 않은 메모리 셀의 게이트에 결합된 워드 라인은 지정된 패스 전압(pass voltage) (예를 들어, Vpass)으로 구동되어 각각의 그룹의 선택되지 않은 메모리 셀을 패스 트랜지스터로서 동작시킨다 (예를 들어, 그것들의 저장된 데이터 값에 의해 제한되지 않는 방식으로 전류를 전달함). 그런 다음, 전류는 각각의 그룹의 선택된 메모리 셀에 의해서만 제한되는 각각의 직렬 결합 그룹을 통해 소스 라인으로부터 비트 라인으로 흐르고, 선택된 메모리 셀의 행의 현재 인코딩된 데이터 값을 비트 라인 상에 배치한다.
NOR 또는 NAND 아키텍처 반도체 메모리 어레이의 각각의 플래시 메모리 셀은 개별적으로 또는 총괄하여 하나 또는 다수의 프로그래밍된 상태로 프로그래밍될 수 있다. 예를 들어, 단일 레벨 셀 (SLC)은 1 비트의 데이터를 나타내는 2 개의 프로그래밍된 상태 (예를 들어, 1 또는 0) 중 하나를 나타낼 수 있다. 그러나, 플래시 메모리 셀은 또한 둘 초과의 프로그래밍된 상태 중 하나를 나타낼 수 있으며, 각각의 셀은 하나 초과의 이진수 (예를 들어, 하나 초과의 비트)를 나타낼 수 있기 때문에 메모리 셀의 수를 증가시키지 않고 고밀도 메모리를 제조할 수 있다. 이러한 셀은 멀티-상태 메모리 셀, 멀티-디지트 셀 또는 멀티-레벨 셀 (MLC)로 지칭될 수 있다. 특정 예에서, MLC는 셀 당 2 비트의 데이터 (예를 들어, 4 개의 프로그래밍된 상태 중 하나)를 저장할 수 있는 메모리 셀을 지칭할 수 있고, 트리플 레벨 셀 (TLC : triple-level cell)은 셀 당 3 비트의 데이터(예를 들어, 8 개의 프로그래밍된 상태 중 하나)를 저장할 수 있는 메모리 셀을 지칭할 수 있고, 쿼드 레벨 셀 (QLC : quad-level cell)은 셀 당 4 비트의 데이터를 저장할 수 있는 메모리 셀을 지칭할 수 있다. 다른 예에서, MLC는 셀 당 하나 초과의 비트의 데이터를 저장할 수 있는 임의의 메모리 셀을 지칭할 수 있다.
종래의 메모리 어레이는 반도체 기판의 표면 상에 배열된 2 차원 (2D) 구조이다. 특정 영역의 메모리 용량을 늘리고 비용을 줄이기 위해, 개별 메모리 셀의 크기가 축소되었다. 그러나, 개별 메모리 셀의 크기 감소, 따라서, 2D 메모리 어레이의 메모리 밀도에 대한 기술적 한계가 있다. 이에 응답하여, 메모리 밀도를 더 높이고 메모리 비용을 낮추기 위해 3D NAND 아키텍처 반도체 메모리 디바이스와 같은 3 차원 (3D) 메모리 구조가 개발되고 있다.
메모리 어레이 또는 디바이스는 예컨대, SSD (Solid State Drive), UFS (Universal Flash Storage) 디바이스, MMC (Multimedia Card) 솔리드 스테이트 저장 디바이스 및 임베디드 MMC (eMMC) 디바이스와 같은 메모리 시스템의 스토리지 볼륨(volume)을 형성하기 위해 함께 결합될 수 있다. 이러한 디바이스는 무엇보다도 컴퓨터의 메인 저장 디바이스로 사용될 수 있으며, 예를 들어, 성능, 크기, 중량, 내구성, 작동 온도 범위 및 전력 소모와 같은 움직이는 부품을 갖는 기존 하드 드라이브보다 장점이 있다. 예를 들어, 이러한 디바이스는 탐색 시간, 레이턴시(latency) 또는 자기 디스크 드라이브와 관련된 기타 전기 기계 지연을 줄일 수 있다. 이러한 디바이스는 비 휘발성 플래시 메모리 셀을 사용하여 내부 배터리 공급 요구 사항을 제거할 수 있으므로 드라이브를 보다 다양하고 콤팩트하게 만들 수 있다.
이들 솔리드 스테이트 디바이스는 다수의 다이 또는 로직 유닛 (LUN)을 포함하여 다수의 메모리 디바이스를 포함할 수 있다. 각각의 다이는 다수의 메모리 어레이 및 그 주변 회로부(circuitry)를 포함할 수 있고, 메모리 어레이는 다수의 물리적 페이지로 구성된 다수의 메모리 셀 블록을 포함할 수 있다. 솔리드 스테이트 디바이스는 메모리 디바이스로부터 데이터를 소거하기 위한 소거 동작 또는 호스트와 메모리 디바이스들 사이의 전송 데이터 (예를 들어, 에러 데이터 및 어드레스 데이터 등과 같은 사용자 데이터 및 연관된 무결성 데이터)에 대한 판독 또는 기록 동작과 같은 메모리 동작과 관련하여 호스트로부터 명령을 수신할 수 있다.
도면에서, 반드시 축척에 맞게 그려진 것은 아니지만, 동일한 도면 번호는 상이한 도면에서 유사한 컴포넌트를 나타낼 수 있다. 상이한 문자 접미사를 갖는 동일한 도면 번호는 유사한 컴포넌트의 상이한 경우를 나타낼 수 있다. 도면은 본 출원에서 논의된 다양한 실시예를 제한하는 방식이 아니라 예로서 일반적으로 예시된다.
도 1은 본 개시의 일부 실시예에 따른 UFS 시스템의 다이어그램을 예시한다.
도 2-4는 본 개시의 일부 실시예에 따른 예시의 디바이스 디스크립터 필드(descriptor field)를 예시한다.
도 5는 본 개시의 일부 실시예에 따른 두개의 대안적인 리플레이 보호된 메모리 블록 (RPMB : Replay Protected Memory Block) 결과 구조를 예시한다.
도면들 6-7은 일부 예에 따른 3D NAND 아키텍처 반도체 메모리 디바이스의 예시적인 3 차원 도면을 예시한다.
도면들 8-9는 본 개시의 일부 예에 따른 3D NAND 아키텍처 반도체 메모리 어레이의 예시적인 개략도를 예시한다.
도 10은 본 개시의 일부 예에 따른 메모리 디바이스의 예시적인 블록도를 예시한다.
도 11은 본 개시의 일부 예에 따른 메모리 제어기의 예시적인 블록도를 예시한다.
도 12는 본 개시의 일부 예에 따른 메모리 디바이스의 예시적인 블록도를 예시한다.
도 13은 본 개시의 일부 예에 따른 메모리 컴포넌트의 예시적인 블록도를 예시한다.
도 14는 본 개시의 일부 예에 따른 정보 핸들링 시스템의 예시적인 블록도를 예시한다.
도 15는 본 개시의 일부 예에 따른 성능 스로틀링(performance throttling) 방법의 흐름도를 예시한다.
도 16은 본 개시의 일부 예에 따른 성능 스로틀링을 발견 및 핸들링하는 호스트 디바이스의 방법의 흐름도를 예시한다.
도 17은 본 개시의 일부 예에 따른 예시적인 기계의 블록도를 예시한다.
도 18은 요청에 응답하여 메모리 디바이스가 디바이스 디스크립터를 제공하는 방법의 흐름도를 도시한다.
도 19는 호스트 디바이스가 메모리 디바이스의 디바이스 디스크립터를 판독하는 방법의 흐름도가 본 개시의 일부 예에 따라 도시된다.
도 20은 본 개시의 일부 예에 따른 RPMB 판독 요청의 간략화된 메시지 시퀀스 다이어그램을 예시한다.
도 21은 본 개시의 일부 예에 따른 UFS 디바이스가 RPMB 요청을 처리하는 방법의 흐름을 예시한다.
도 22는 본 개시의 일부 예에 따른 호스트 디바이스가 RPMB 명령을 발송하는 방법의 흐름도를 도시한다.
전자 디바이스 (예를 들어, 데스크탑, 랩탑, 스마트 폰, 태블릿 등)는 여러 주요 컴포넌트를 포함한다 : 하드웨어 프로세서 (예를 들어, 중앙 처리 유닛 (CPU) 또는 다른 메인 프로세서); 그래픽 처리 유닛 (GPU); 휘발성 메모리 (예를 들어, DRAM (Dynamic RAM), 모바일 또는 저전력 DDR RAM 등과 같은 RAM); 비 휘발성 메모리 (예를 들어, 저장 디바이스 예컨대, 비 휘발성 메모리(NVM) 디바이스 예컨대, 플래시 메모리, ROM (read-only memory), 솔리드 스테이트 드라이브 (SSD) 또는 기타 메모리 디바이스 등); 사용자 인터페이스 (예를 들어, 디스플레이, 터치 스크린, 키보드, 하나 이상의 버튼 등) 등. 상이한 전자 디바이스는 스토리지 요구에 따라 다른 저장 디바이스를 포함하여 기능에 따라 다른 하드웨어를 사용한다. 예시적인 전자 디바이스가 도 1, 도 14 및 17에 도시된다.
소프트웨어 (예를 들어, 프로그램), 명령, 운영 체제 (OS) 및 다른 데이터는 저장 디바이스에 저장된다. 전자 디바이스가 동작함에 따라, 명령 및 데이터는 저장 디바이스로부터 프로세서에 의해 사용하기 위해 휘발성 메모리 (예를 들어, DRAM)로 로딩된다. 랜덤 액세스 메모리 (예를 들어, DRAM)는 전형적으로 더 빠르지만, 휘발성이어서, 저장 디바이스가 "오프" 상태에 있는 동안을 포함하여 장기간 저장을 위해 적절하게 프로그램을 저장하는데 사용된다.
모바일 전자 디바이스 또는 모바일 스토리지에 최적화된 저장 디바이스는 전통적으로 이산 메모리 디바이스 및/또는 착탈식 저장 디바이스 (예를 들어, 멀티미디어 카드 (MMC) 솔리드 스테이트 저장 디바이스 (예를 들어, 마이크로 보안 디지털 (SD) 카드 등)를 포함한다. MMC 디바이스는 호스트 디바이스와의 하나 이상의 병렬 인터페이스 (예를 들어, 8 비트 병렬 인터페이스)를 포함하며, 종종 호스트 디바이스로부터 컴포넌트를 착탈할 수 있고 분리할 수 있다.
예컨대, 가상 또는 증강 현실 디바이스를 완전히 활성화하고 네트워크 속도를 높이는 등 모바일 디바이스 성능에 대한 요구가 계속 증가함에 따라 저장 디바이스는 병렬-직렬 통신 인터페이스로 시프트되었다. UFS (Universal Flash Storage) 디바이스 (제어기 및 펌웨어 포함)는 전용 판독/기록 경로를 갖는 저전압 차동 시그널링 (LVDS) 직렬 인터페이스를 사용하여 호스트 디바이스와 통신하여 더 빠른 판독/기록 속도를 향상시키는 플래시 디바이스이다. UFS 디바이스는 JEDEC (Joint Electron Device Engineering Council) 솔리드 스테이트 기술 협회에서 발표한 UFS 표준에 따라 통신한다.
이제 도 1을 참조하여, UFS 시스템 (100)의 다이어그램이 본 개시의 일부 실시예에 따라 예시된다. UFS 호스트 (110)는 하나 이상의 SCSI (Small Computer System Interface) 이니시에이터(initiator) 디바이스를 포함하는 컴퓨팅 디바이스(예를 들어,도 14 및 17에 도시된)의 특성을 갖는 엔티티 또는 디바이스이다. 일부 예에서, 호스트는 전자 디바이스의 애플리케이션 프로세서 (예를 들어, 도 17의 프로세서 (1702)) 일 수 있다. 이니시에이터 디바이스 (이니시에이터)는 타겟 디바이스에 대한 UFS 트랜잭션을 개시하고 이니시에이터 ID (IID)로 식별되는 디바이스 또는 프로세스이다. 예를 들어, 상이한 프로세스 (예를 들어, 운영 체제)는 각각 고유한 IID를 가질 수 있고, 전화기의 무선 부분은 고유한 IID 등을 가질 수 있다.
UFS 호스트 (110)는 UFS 디바이스(140)로 데이터를 판독하거나 기록하는 하나 이상의 애플리케이션 (115)을 실행할 수 있다. 애플리케이션 (115)은 레지스터 세트를 사용하여 UFS 호스트 제어기 인터페이스를 통해 UFS 호스트 제어기(125)를 관리하는 UFS 드라이버 (120)와 인터페이스한다. 레지스터는 휘발성 메모리, 비 휘발성 메모리, 또는 임의의 조합일 수 있으며, UFS 호스트 제어기 (125)에 의해 사용되는 일시적 저장 위치일 수 있다. UFS 호스트 제어기 (125)는 UFS 상호 접속부(interconnect) (130)를 이용하여 UFS 디바이스 (140)의 UFS 상호 접속부 (145)와 통신한다. UFS 디바이스는 타겟 디바이스 (예를 들어, UFS 명령을 수신)이다. 전자 디바이스는 호스트 및 UFS 디바이스 둘 모두를 포함할 수 있다. UFS 상호 접속부는 물리 계층으로 구성되며 상위 계층에 기본 전송 기능을 제공한다. UFS 상호 접속부(145)는 UFS 디바이스 (140)의 컴포넌트와 통신한다. 일부 예에서, UFS 호스트 (110) 및 UFS 디바이스 (140)는 도 14 및 17에 도시된 바와 같은 전자 디바이스의 부품일 수 있다. 다른 예들에서, UFS 호스트 (110)는 UFS 디바이스 (140)의 인터페이스로서 동작하도록 디자인된 ASIC(application specific integrated circuit), 또는 하나 이상의 다른 마이크로 프로세서일 수 있다. 일부 예들에서, 애플리케이션 (115), 드라이버 (120) UFS 호스트 제어기 (125) 및 UFS 상호 접속부 (130)는 하드웨어 또는 소프트웨어로 구현될 수 있다 (예를 들어, 도 17의 프로세서 (1702)와 같은 하드웨어 프로세서에 의해 수행되는 컴퓨터 판독 가능한 명령으로서 구현될 수 있다).
UFS 디바이스 (140)는 (도 10의 메모리 제어기 (1001)에 의해 실행될 수 있는) 파워 관리 등과 같은 디바이스 레벨 특징을 제공하는 디바이스 레벨 관리기(150)를 특징으로 한다. 디스크립터 (155)는 구성 관련 정보를 저장한다. 스토리지 (170)는 판독/기록 및 다른 저장 관련 명령을 핸들링하는 복수의 로직 유닛(LU)0-N (155, 160, 165)으로 세그먼트화된 하나 이상의 NAND 저장 셀 또는 저장 디바이스일 수 있다. 예를 들어, 16GB UFS 디바이스는 각각 4GB의 4 개의 LU로 구성될 수 있다. 일부 예에서, 메모리 디바이스 상의 각각의 다이는 LUN일 수 있다. 스토리지 (170)는 도 10의 메모리 셀 (1004)의 예시적인 구조화일 수 있다. 일부 실시예에서, 디바이스 레벨 관리기(150), 디스크립터(155) 및 UFS 상호 접속부 (145)는 하나 이상의 하드웨어 프로세서에 의해 구현될 수 있다.
본 출원의 개시는 UFS와 관련하여 설명될 수 있지만, 본 개시 내용의 이점을 갖는 당업자는 개시된 개선 사항이 저장 디바이스와 호스트 사이의 다른 인터페이스 및 eMMC 에도 적용될 수 있음을 인식할 것이다.
전압 레벨 지원 (Voltage Level Support)
UFS가 발전함에 따라 추가 특징이 추가되었다. 예를 들어, UFS 2.1은 UFS 3.0으로 마이그레이션(migration) 중이다. UFS 3.0으로 마이그레이션하는 동안, 디바이스 제조업체는 메모리 디바이스를 3.3볼트에서 2.5볼트 공칭 NAND 코어 서플라이로 전환할 것으로 예상된다. UFS 3.0은 결국 2.5V VCC 및 1.2V VCCQ 전압 서플라이를 사용할 것으로 예상된다. 또한 1.8V VCCQ2 서플라이가 제거될 것으로 예상된다. 이러한 파워에서의 변경으로 인해, UFS 3.0이 완전히 구축될 때까지 UFS 2.1 및 UFS 3.0 디바이스와 호환되는 호스트 시스템을 갖는 것이 바람직할 수 있다. 또한, 전압 레벨 지원은 만약 시스템의 적절한 디바이스가 제 2의 더 낮은 전압 레벨을 지원한다면 제 1 전압 레벨에서 전원을 켤 수 있고 레지스터를 판독한 다음 디바이스의 전압 레벨을 제 2 전압 레벨로 낮추어 파워를 절약할 수 있다는 추가적인 이점을 제공한다. 시스템의 디바이스가 제 2의, 더 낮은 전압 레벨을 지원하지 않으면 제 1 전압 레벨이 유지될 수 있다.
일부 예들에서, 호스트에 의해 액세스되거나 호스트에 제공될 수 있는 저장 디바이스에 의해 제공되는 디바이스 전압 호환성 표시를 제공하는 시스템, 방법, 메모리 디바이스 및 기계 판독 가능한 매체가 개시된다. 그런 다음 호스트는 적절한 서플라이 전압을 설정할 수 있다. 서플라이 전압은 요청에 따라 호스트에 제공될 수 있다. 예를 들어, 호스트가 지원되는 전압 레벨을 요청할 수 있게 하고 그런 다음 응답 메시지에 제공될 수 있는 새로운 UFS 메시지 (예를 들어, UFS 프로토콜 정보 유닛 메시지)가 정의될 수 있다. 다른 예들에서, 기존의 UFS 디바이스 디스크립터 프레임워크가 이용될 수 있고 새로운 디바이스 디스크립터는 디바이스에 의해 지원되는 서플라이 레벨을 제공할 수 있다. 후술하는 바와 같이, 호스트는 디바이스에 대한 정보를 디바이스 디스크립터에 쿼리할 수 있다.
이제 도면들 2-4로 가서, 이들 도면은 본 개시의 일부 예에 따른 예시적인 디바이스 디스크립터 필드를 예시한다. 도 2는 본 개시의 일부 예들에 따라 VCC 서플라이 가용 출력(capability) 필드의 다이어그램을 예시한다. 테이블은 디바이스 디스크립터에서 VCC 서플라이 가용 출력 필드에 대한 비트 레이아웃(bit layout)을 도시한다. 예를 들어, 비트(Bit) [1] 3.3V 필드의"1"은 디바이스가 3.3V VCC 서플라이를 지원함을 나타낸다. 비트 [0] 2.5V 필드의 "1"은 디바이스가 2.5V VCC 서플라이를 지원함을 나타낸다. 두 필드에서 "1"은 디바이스가 3.3V 및 2.5V를 모두 지원하는 것을 나타낸다.
도 3은 본 개시의 일부 예에 따른 VCCQ 및 VCCQ2 서플라이 가용 출력 필드의 다이어그램을 도시한다. 이 테이블은 VCCQ 및 VCCQ2 서플라이 가용 출력에 대한 비트 레이아웃을 도시한다. VCCQ 테이블은 디바이스가 지원하는 VCCQ 서플라이 및 서플라이 레벨을 나타낸다. 예를 들어, 비트[0] 1.2V 필드의 "1"은 디바이스가 1.2V VCCQ 서플라이를 지원함을 나타낸다. 값이 0이면 VCCQ에 대한 디바이스 지원이 없음을 나타낸다. VCCQ2 테이블은 디바이스가 지원하는 VCCQ2 서플라이 및 서플라이 레벨을 도시한다. 예를 들어, 비트[0] 1. 8 V 필드의 "1"은 디바이스가 1. 8 V VCCQ2 서플라이를 지원함을 나타낸다. 값이 0이면 VCCQ2에 대한 디바이스 지원이 없음을 나타낸다.
이 값들을 정리하면, 도 4는 본 개시의 일부 예에 따른 도 2 및 도 3의 가용 출력 필드를 사용하는 제안된 디바이스 디스크립터 필드 (예를 들어, 도 1의 디바이스 디스크립터 (155)에 저장됨)의 다이어그램을 도시한다. 예를 들어, 오프셋(offset) 31h에서, "SUPPLY_USAGE"라 불리는 3-바이트 필드는 디바이스에 의해 지원되는 전압을 나타낼 수 있다. 도면에서 언급된 바와 같이, 바이트 0은 도 2의 필드에 의해 점유되고 - 즉, 0 값은 리저브드(reserved), 1은 2.5V, 2는 3.3V, 3은 2.5V와 3.3V이다. 바이트 1은 VCCQ 지원을 나타낸다 - 지원되지 않으면 0, 1.2V가 지원되면 1이다. 바이트 3은 VCCQ2 지원을 나타낸다 - 지원되지 않으면 0, 1.8V가 지원되면 1이다. 도 1 내지 도 4는 이들 필드에 대한 특정 위치 및 값을 도시하였지만, 본 개시의 이점을 가진 당업자는 이들 필드의 다른 위치 및 다른 값 및 구조화가 이용될 수 있음을 이해할 것이다. "SIZE"로 라벨링된 열은 SUPPLY_USAGE 필드의 크기를 3 바이트 필드로 나타낸다. "MDV"로 라벨링된 열은 제조업체 디폴트 값을 나타내며 디폴트 값은 디바이스마다 다르다. 사용자 구성(User Conf.)은 사용자가 구성 디스크립터를 기록하여 구성할 수 있는 필드를 지정한다. 도 4의 "아니오(NO)"는 사용자가 값을 덮어쓸 수 없음을 나타낸다.
디바이스 디스크립터는 디바이스에 대해 설명하는 파라미터의 하나 이상의 블록 또는 페이지이다. 저장 디바이스의 UFS 디바이스 디스크립터는 쿼리 요청(Query Request) UPIU (UFS Protocol Information Unit)를 통해 호스트에 의해 쿼리되며 디바이스 디스크립터는 쿼리 응답(Query Response) UPIU를 통해 제공된다. 예를 들어, 도 4에서 제안된 디바이스 디스크립터 필드는 호스트에 의해 쿼리될 수 있는 디바이스 디스크립터이거나 그와 함께 포함될 수 있다. 도 18은 요청에 응답하여 디바이스 디스크립터를 제공하는 메모리 디바이스에 대한 방법 (1800)의 흐름도를 예시한다. 방법 (1800)은 일반적으로 모든 디바이스 디스크립터 요청에 적용되지만, 또한 전압 서플라이 사례를 참조하여 설명될 것이다. 동작 (1810)에서, 메모리 디바이스는 예를 들어, UPIU 요청 메시지를 통해 디바이스 디스크립터에 대한 호스트 쿼리를 수신한다. 일부 예들에서, 메시지는 디바이스 SUPPLY_USAGE 가용 출력을 포함하는 디바이스 디스크립터에 대한 것일 수 있다. 동작 (1820)에서, 디바이스는 요청된 디바이스 디스크립터를 검색한다. 요청된 디바이스 디스크립터가 발견되면, 요청된 디바이스 디스크립터 (예를 들어, SUPPLY_USAGE 가용 출력)를 갖는 쿼리 응답이 동작 (1840)에서 (예를 들어, 쿼리 응답 UPIU의 일부로서) 발송된다. 요청된 디바이스 디스크립터가 아직 위치되지 않으면, 동작 (1850)에서, 에러 코드와 함께 응답이 발송된다(예를 들어, 쿼리 응답 UPIU의 일부로서).
이제 도 19를 참조하여, 메모리 디바이스의 디바이스 디스크립터를 판독하는 호스트 디바이스의 방법 (1900)의 흐름도가 본 개시의 일부 예에 따라 도시된다. 방법 (1900)은 일반적으로 모든 디바이스 디스크립터 요청에 적용되지만, SUPPLY_USAGE 가용 출력 사례를 참조하여 또한 설명될 것이다. 동작 (1910)에서, 호스트는 디바이스 디스크립터의 값에 대한 호스트 쿼리를 발송할 수 있다. 예를 들어, 디바이스 디스크립터는 SUPPLY_USAGE 가용 출력을 가진다. 호스트는 응답이 수신되는 것을 보장하도록 타이머를 설정할 수 있다. 동작 (1915)에서, 타임 아웃 기간 내에 응답이 수신되지 않으면, 호스트는 동작 (1910)에서 메시지를 재 시도할 수 있다. 응답이 수신되면, 동작 (1920)에서 응답이 파싱되고 응답이 요청된 디스크립터를 포함하는지 결정이 이루어질 수 있다. 만약 그렇지 않다면, 동작 (1950)에서 다양한 에러 핸들링 절차가 채택될 수 있다. 응답이 디스크립터를 포함하면, (1940)에서 디스크립터는 호스트 디바이스의 메모리 (예를 들어, 호스트 디바이스의 RAM에)에 판독 및/또는 저장될 수 있다. 동작 (1960)에서, 호스트는 디스크립터를 이용할 수 있다. 예를 들어, 호스트는 SUPPLY_USAGE 가용 출력에 표시된 적절한 전압을 UFS 디바이스에 인가할 수 있다.
성능 스로틀링 통지(Performance Throttling Notification)
저장 디바이스 (예컨대, UFS 디바이스)는 저장 디바이스의 손상을 방지하고 저장 디바이스로부터 값을 판독할 때 에러를 방지하기 위해 성능 스로틀링을 트리거하는 하나 이상의 표시자(indicator)를 가질 수 있다. 예를 들어, 고온은 (주변 온도 또는 디바이스 온도) 저장 디바이스의 신뢰성에 영향을 줄 수 있으며, 고온에서 트랜지스터 누설이 증가하여 파워 소모가 증가할 수 있다. 저장 디바이스는 과도한 파워 소모를 방지하고 디바이스 온도 제어를 돕기 위해 성능을 스로틀링하여 자가 가열을 줄이는 능력을 가질 수 있다. 예를 들어, 메모리 디바이스의 제어기 내의 회로 및/또는 펌웨어는 온도를 너무 높은 예외 이벤트 레지스터를 설정하고 성능을 스로틀링함으로써 온도 임계값 (내부 또는 외부 주변 센서)의 교차를 나타내는 온도 센서 출력에 응답할 수 있다. 다른 실시예에서, 회로부 및/또는 펌웨어는 성능 스로틀링 예외 이벤트 레지스터 및 스로틀링 성능을 설정할 수 있다. 스로틀링(throttling)은 병렬로 더 적은 수의 NAND 메모리 셀에 액세스하고, 감소된 NAND 인터페이스 속도로 NAND 메모리 셀 (예를 들어, 페이지)에 액세스하고, 입력 및 출력 명령의 수용을 중지 또는 느리게 하는 것 등을 의미할 수 있다. 일부 예에서, 호스트가 이 성능 스로틀링이 발생했음을 인식하는 것이 유리할 수 있다.
일부 예들에서, 스로틀링은 디바이스가 데이터로 충전되는 것으로부터 또는 디바이스 마모의 천연 부산물일 수 있다. 예를 들어, SLC 캐시가 열화되기 시작할 때. SLC 캐시는 유입되는 기록을 드라이브 상의 어디 다른 곳 MLC (멀티 레벨 셀), TLC (트리플 레벨 셀) 또는 QLC (쿼드 레벨 셀) 스토리지로 옮기기 전에 유입되는 기록을 임시로 저장하는 캐시로 구성된 메모리 셀 그룹이다. SLC 셀이 더 빠른 기록을 허용하므로, SLC 셀을 캐시로 사용하면 추가 저장 용량 희생으로 기록 성능을 향상시킬 수 있다. 디바이스에 대한 모든 기록은 캐시의 SLC 셀에 대한 것이기 때문에, 이러한 셀은 많이 사용되며 다른 셀보다 빨리 마모되기 시작할 수 있다. 특정 시점에서, 캐시의 SLC 셀이 고장나기 시작한다. 충분한 셀에 고장이 발생하면 유입되는 기록들을 핸들링하는데 충분히 빠르게 SLC 캐시에서 MLC, TLC 및 QLC 스토리지로 데이터를 마이그레이션할 수 없어서 캐시 성능이 저하될 수 있다.
고온 SLC 캐시의 열화에 더하여, 디바이스 또는 디바이스의 풀(pool)이 공간상에서 부족할 때 UFS 디바이스는 성능을 스로틀링할 수 있다. 풀은 특정 기능을 위해 리저브된 메모리 셀 그룹 (예를 들어, NAND 블록) 일 수 있다. 일부 예에서, 각각의 풀은 자체가 오버 프로비저닝(over provisioning) 및 스페어 블록(spare block)을 가질 수 있다. 디바이스의 공간이 부족하면, 가비지 컬렉션과 같은 유지 관리를 위한 공간이 적어 성능이 저하될 수 있다. 일부 예에서, 이 성능 스로틀링은 디바이스 전체 또는 하나 이상의 풀에 대한 것일 수 있다. 일부 예에서, 디바이스는 하나 이상의 메모리 풀로 분할될 수 있다. 이러한 풀을 구성하는 메모리 셀이 마모되기 시작하면 풀 크기가 줄어든다. 풀이 독립적으로 관리될 수 있으므로 (예를 들어, 별도의 디바이스로 처리됨) 여유 공간이 감소함에 따라 풀에서 가지비 컬렉션과 같은 작업을 수행할 여유 공간이 적을수록 드라이브 동작이 더 오래 걸린다 (예를 들어, 제 1 풀로부터의 메모리는 제 2 풀에서 가비지 컬렉션을 수행하는데 사용되지 않다). 사용자가 너무 많은 데이터를 저장하거나 저장 디바이스에서 시간이 지남에 따라 성능이 저하되고 (오버 프로비저닝이 손실됨) 또는 둘 다로 인해 공간이 손실될 수 있다.
일부 예에서, 호스트에 저장 디바이스 성능 스로틀링 통지를 제공하는 방법, 시스템, 메모리 디바이스 및 기계 판독 가능한 매체가 개시된다. 또한 성능 스로틀링 조건을 고정시키기 위해 호스트가 취할 수 있는 방법이 개시된다. 일부 예들에서, 성능 스로틀링의 통지를 제공하기 위해, 문구(wording)가 기존 통지에 추가될 수 있다. 예를 들어, 현재 통지는 온도 통지 이벤트 같은 스로틀링 통지이고 오버로딩될 수 있다. 예를 들어, TOO_HIGH_TEMPERATURE 플래그가 참(true)인 동안, 디바이스는 성능 저하로 동작할 수 있음을 지정하는 문구가 추가될 수 있다. 일부 실시예에서, 문구는 사용자에게 호스트에 의해 디스플레이될 수 있거나 또는 고온에 대처하기 위해 호스트에 의해 사용될 수 있다 (예를 들어, 호스트에 냉각 활성화시키기, 사용자에게 경고하기 등). 일부 예에서, 하나 이상의 속성(attribute), 플래그 및 디스크립터는 호스트에게 성능 스로틀링 조건을 경고하기 위해 사용될 수 있다.
예를 들어, 이 성능 스로틀링을 구체적으로 호출할 수 있는 예외 이벤트(exception event)가 추가될 수 있다. 예를 들어, 예외 이벤트 : 과열 또는 다른 트리거링 환경을 방지하는 것을 돕기 위해 디바이스의 성능이 저하된 시점을 명시적으로 보여주는 “성능 스로틀링(Performance Throttling)”. 예외 이벤트 메커니즘은 세 가지 컴포넌트 : 상태 속성, 제어 속성 및 경고 플래그를 가질 수 있다. 호스트가 경고 수신에 관심이 있는 예외 이벤트로 호스트에 의해 제어 속성이 설정될 수 있다. 호스트가 관심있는 예외 이벤트 중 하나가 활성화되면 경고 플래그가 설정될 수 있다. 상태 속성은 NAND 메모리 디바이스에서 현재 활성화된 예외 이벤트를 표시할 수 있다. 예를 들어, 성능 스로틀링이 진행 중임을 나타내는 상태 속성에 비트가 설정될 수 있다. 다른 비트는 다른 예외 이벤트에 해당할 수 있다. 상태 속성들 중 적어도 하나가 설정되고 대응하는 제어 속성이 설정되면, 경고 플래그는 예외 이벤트가 존재함을 나타내도록 설정될 수 있다. 경고 플래그는 응답 UPIU 메시지 또는 통지와 같은 다른 방식으로 호스트에 전달될 수 있다. 호스트는 그런 다음 어느 예외가 활성화되어 있는 지를 결정하기 위해 상태 속성을 쿼리할 수 있다.
예로서, 속성이 정의될 수 있다 : 성능 스로틀링 이벤트를 포함하여 각각의 예외 이벤트에 할당된 비트를 포함하는 wExceptionEventStatus. 저장 디바이스는 대응하는 예외 이벤트가 활성화 될 때 (예를 들어, 성능 스로틀링이 있는 경우) wExceptionEventStatus (예를 들어, 비트)의 표시를 1로 설정할 수 있고, 그렇지 않으면 0으로 설정된다. EVENT_ALERT에 보고되는 이벤트를 지정하는 속성 wExceptionControl이 있을 수도 있다. EVENT_ALERT는 명령의 성공한 또는 실패한 실행을 나타내기 위해 생성된 응답 UFS 프로토콜 정보 유닛 (UPIU)의 디바이스 정보 필드의 서브 필드에서 통신될 수 있다. wExceptionEventControl 속성의 비트가 각각의 예외 이벤트에 지정된다. 해당 wExceptionEventcontrol 비트 세트가 있는 적어도 하나의 wExceptionEventStatus 비트 세트가 있는 경우 EVENT_ALERT 비트가 설정된다. wExceptionEventControl 속성은 호스트가 알고자 하는데 관심이 있는 이벤트를 커스터마이즈(customize)할 수 있다. 예를 들어, wExceptionEventControl 속성은 호스트에 의해 설정되거나 재설정될 수 있다. EVENT_ALERT 비트가 설정되면 호스트는 wExceptionEventStatus 속성을 판독하여 그것이 성능 스로틀링 이벤트인지, 그리고 이벤트 소스를 발견할 수 있다.
PERFORMANCE_THROTTLING 예외 이벤트 비트가 설정되어 있지만, 호스트는 디바이스로부터 성능 저하를 기대해야 한다. 호스트는 성능을 스로틀링하는 이유를 제공할 수 있는 속성을 판독하기 위해 판독 속성 opcode와 함께 쿼리 요청을 NAND 디바이스에 발송할 수 있다. 성능 스로틀링이 인에이블된 이유를 제공하기 위한 하나의 속성 예는 bThrottlingStatus 속성일 수 있다. bThrottlingStatus 속성은 조건이 존재하는 설정이 유지될 것이고 왜 성능이 스로틀링되어야 하는 지에 대한 이유를 나타낼 수 있다. 성능이 더 이상 스로틀링되지 않으면 bThrottlingStatus 속성이 지워질 수 있다. 성능이 스로틀링되는 한 가지 이유는 메모리 디바이스의 고온 때문이다.
예를 들어, 속성 테이블은 다음과 같이 정의될 수 있다 :
Figure pat00001
알 수 있는 바와 같이, wExceptionEventControl 및 wExceptionEventStatus 둘 다에서 PERFORMANCE_THROTTLING 예외 이벤트의 정확한 비트 위치는 구현에 따라 다를 수 있으며 3과 다를 수 있다.
일부 예들에서, bThrottlingStatus는 성능 스로틀링이 SLC 캐시의 성능 저하, 하나 이상의 풀이 공간이 부족하거나 NAND 자체가 공간이 부족한 결과임을 나타내는 비트를 포함할 수 있다. 추가하여, bThrottlingStatus 또는 다른 필드는 성능 스로틀링의 심각도를 나타낼 수 있다. 예를 들어, 온도 초과의 심각도, SLC 캐시 열화의 심각도 등.
도 15는 본 개시의 일부 예에 따른 성능 조절 방법(1500)의 흐름도를 예시한다. 동작 (1510)에서, 메모리 디바이스는 성능 스로틀링 동작에 대한 요구를 나타내는 상태가 발생하였는 지를 결정할 수 있다. 예를 들어, 고온 상황 예컨대, 임계값을 초과하는 메모리 디바이스의 센서에 의해 감지된 온도, SLC 캐시의 열화 (예를 들어, 양호한 SLC 캐시 셀의 수가 임계값 아래로 떨어짐), 또는 공간에서 더 적게 실행중인 하나 이상의 풀 (예를 들어, 풀에 할당된 여러 개의 양호한 셀이 임계값 아래로 떨어졌거나 풀에 할당된 비어 있는 여러 개의 양호한 셀이 임계값 아래로 떨어짐), 공간 상에 더 적게 실행중인 드라이브 (예를 들어, 다수의 양호 셀이 임계값 아래로 떨어졌거나, 자유 상태인 다수의 양호 셀이 임계값 아래로 떨어짐) 등. 동작 (1520)에서, 성능 스로틀링이 다른 조건 (예를 들어, 고온)에 대한 프로그래밍된 응답인 경우, 메모리 디바이스는 성능 스로틀링을 구현할 수 있다. 다른 예에서, 성능 스로틀링은 다른 조건의 결과일 수 있고 (예를 들어, SLC 캐시 열화) 및 동작 (1520)이 수행되지 않을 수 있다. 예시적인 성능 스로틀링은 메모리 디바이스가 동작하는 속도를 감소시키는 것, 제어기 속도를 감소시키는 것, NAND 메모리 셀이 액세스되는 속도를 감소시키는 것 등을 포함할 수 있다. 동작 (1530)에서, 메모리 디바이스는 예외 이벤트 상태 속성에서 성능 스로틀링 상태 표시자를 설정할 수 있다. 예를 들어, 메모리 디바이스의 wExceptionEventStatus 속성에서 비트를 설정한다. 동작 (1540)에서, 메모리 디바이스는 명령 메시지 (예컨대, UPIU)를 수신할 수 있다. 예시적인 명령은 판독 명령, 기록 명령, 쿼리 요청 등을 포함할 수 있다. 동작 (1550)에서, 메모리 디바이스는 명령을 수행할 수 있다. 동작 (1560)에서, 메모리 디바이스는 명령에 대한 응답 (예를 들어, UPIU 응답)을 제공할 수 있다. UPIU 응답은 임의의 예외 이벤트 (예를 들어, 성능 스로틀링 이벤트)가 속성 (예를 들어, wExceptionEventStatus 속성)에 표시되는지를 나타내는 응답에 플래그 (EVENT_STATUS)를 설정할 수 있다. 일부 예들에서, wExceptionEvent Control 속성과 같은 제어 속성에 대응 플래그를 갖는 적어도 하나의 예외 이벤트가 표시되는 경우에만 임의의 예외 이벤트가 속성 (예를 들어, wExceptionEventStatus 속성)에 표시되는지를 나타내는 응답에 UPIU 응답은 플래그 (EVENT_STATUS)를 설정할 수 있다.
일부 예에서, 호스트는 NAND가 스로틀링 중이 라는 통지의 결과로서 하나 이상의 조치를 취할 수 있다. 예를 들어, 스로틀링 이유가 고온인 경우, 호스트 디바이스는 고온을 완화시키기 위해 하나 이상의 조치를 취할 수 있다. 예시적인 조치는 팬을 켜고, 충전 속도를 낮추고 (전기 열을 감소시키기 위해), 하나 이상의 무선 라디오를 끄고, 프로세서를 스로틀링하고, 유입되는 요청의 서비스를 늦추는 것 등을 포함할 수 있다.
성능 스로틀링이 SLC 캐시에서의 셀 열화의 결과인 예에서, 호스트는 일반 TLC 스토리지로부터 SLC 캐시로 공간을 재할당함으로써 일반 스토리지의 크기를 감소시킬 수 있다. 성능 스로틀링이 메모리 풀의 공간이 부족한 예에서, 메모리 풀의 공간이 비워지거나 다른 풀의 메모리 셀이 스로틀링된 풀에 재할당될 수 있다. 메모리 디바이스 자체의 공간이 부족한 예에서, 호스트는 아이템을 삭제 (예를 들어, 브라우저 캐시, 불필요한 시스템 파일, 백업 파일 등 자동 삭제)하고 메모리 디바이스 유지 보수 활동을 지원하기 위해 해당 아이템에 대한 공간을 오버 프로비저닝 영역에 할당하여 응답할 수 있다.
도 16은 본 개시의 일부 예에 따른 성능 스로틀링을 발견하고 핸들링하기 위해 호스트 디바이스에 의해 수행되는 방법 (1600)의 흐름도를 예시한다. 동작 (1610)에서, 명령이 호스트 인터페이스를 통해 메모리 디바이스로 발송될 수 있다. 예를 들어, 판독, 기록, 또는 쿼리 명령. 명령은 호스트 디바이스에서 실행되는 프로세스에 의해 요청된 정상 명령(normal command)일 수 있다. 응답은 동작 (1620)에서 수신될 수 있다. 동작 (1630)에서, 호스트는 응답이 이벤트 경고 비트가 설정되었다는 것을 표시한다고 결정할 수 있고, 만약 그렇다면, 호스트는 wExceptionEventStatus 속성을 판독하여 성능 스로틀링 이벤트가 설정되었는지를 결정할 수 있다. 호스트는 상기에서 상술된 도 18에 설명된 구성 디스크립터 판독 동작을 이용할 수 있다. 일부 예들에서, 동작 (1610)에서의 명령 (또는 이전 명령)은 성능 스로틀링 이벤트들이 EVENT_ALERT에 보고되도록 지정하는 제어 속성 (예를 들어, wExceptionControl)을 설정할 수 있다. 동작 (1640)에서, 호스트는 성능 스로틀링의 원인을 결정할 수 있다. 이것은 (예를 들어, 도 18의 방법을 사용하여) bThorttlingStatus 속성을 판독함으로써 수행될 수 있다. 동작 (1650)에서, 성능 스로틀링 이유에 기초하여 호스트는 하나 이상의 조치를 취할 수 있다.
스로틀링 이유가 고온인 경우, 호스트 디바이스는 고온을 완화시키기 위해 하나 이상의 조치를 취할 수 있다. 예시적인 조치는 팬을 켜고, 충전 속도를 낮추고 (전기 열을 감소시키기 위해), 하나 이상의 무선 라디오를 끄고, 프로세서를 스로틀링하고, 유입되는 요청의 서비스를 늦추는 것 등을 포함할 수 있다. 성능 스로틀링이 SLC 캐시에서의 셀 열화의 결과인 예에서, 호스튼 일반 TLC 스토리지 로부터 SLC 캐시로 공간을 재할당함으로써 스토리지의 크기를 감소시킬 수 있다. 성능 스로틀링이 메모리 풀의 공간이 부족한 예에서, 메모리 풀의 공간이 비워지거나 다른 풀의 메모리 셀이 스로틀링된 풀에 재할당될 수 있다. 메모리 디바이스 자체의 공간이 부족한 예에서, 호스트는 아이템을 삭제하고 유지 보수 활동을 지원하기 위해 해당 아이템에 대한 공간을 오버 프로비저닝 영역에 할당하여 응답할 수 있다. 메모리 디바이스 또는 메모리 디바이스의 풀을 재구성하는 조치는 메모리 디바이스에 발송된 하나 이상의 구성 메시지를 사용하여 실행될 수 있다.
리플레이 보호된 메모리 블록 (RPMB : Replay Protected Memory Blocks)
NAND 메모리 디바이스와 같은 최신 메모리 디바이스는 보호된 메모리 영역을 포함할 수 있다. 영역은 하나 이상의 페이지, 블록, 평면, 다이 등을 포함할 수 있다. 이들 보호 영역은 보호 영역의 값을 판독하고, 기록하고, 및/또는 소거하기 위해 특정 비밀 값이 제공되도록 액세스 제한될 수 있다. 비밀은 전체 영역에 대한 것일 수 있거나, 영역의 서브 섹션에 특정될 수 있다 (예를 들어, 영역은 다이일 수 있고 서브 섹션은 페이지일 수 있다). 일부 예들에서, 비밀 값은 키(key)이고, 다른 예들에서, 비밀 값은 키의 해시(hash)인 메시지 인증 코드 (MAC) 및 판독 또는 기록 카운터와 같은 다른 값일 수 있다. MAC 값을 사용하면 메모리 영역이 리플레이 공격(replay attack)으로부터 보호된다. 일부 예에서, 키는 값을 기록 및/또는 판독하는데 필요하다. 다른 예들에서, 키들은 값들을 기록하기 위해 필요하고, 요청자가 판독 요청에서 논스(nonce) 값을 발송하는 것과 같은 값들을 판독하기 위해 다른 리플레이 보호가 구현된다. 그런 다음 논스 값은 전체 응답의 HMAC와 함께 판독 응답으로 발송된다. 논스 값은 판독 요청에 대한 리플레이 공격으로부터 보호한다. 이러한 예에서, 비밀 값은 논스를 포함할 수 있다. 이하의 섹션들은 보호 영역 - RPMB의 구현에 대한 개선을 설명하지만, 본 개시의 이점을 가진 당업자는 개시된 개선이 다른 구현에 적용될 수 있음을 인식할 것이다.
RPMB은 예컨대, 특정 메모리 영역에 데이터를 저장하는 DRM 키, 정부 자격 증명(government credential)의 디지털 사본, 가치가 높은 아이템 (예를 들어, 디지털 콘서트 티켓, 탑승권 등)과 같은 민감한 데이터를 안전하게 저장할 수 있다. 인증 및 리플레이 보호 방식으로. RPMB은 정상적인 수단을 통해 액세스될 수 없지만, 대신에 특정 명령 세트를 사용하여 액세스된다. RPMB에 기록은 디바이스에 프로그래밍된 보안 키에서 계산된 HMAC SHA-256 알고리즘과 같은 메시지 인증 코드 (MAC) 및 RPMB가 기록될 때마다 디바이스에 의해 증분되는 카운터 값을 사용하여 인증된다. MAC의 사용 및 카운터는 메시지가 공격자에 의해 캡처되어 그런 다음 나중에 리플레이될 수 없도록 보장한다 (카운터의 변경으로 인해 MAC이 일치하지 않기 때문에). 일부 예에서, 각각의 IID는 자신의 RPMB 영역을 가질 수 있고, 다른 예에서 일부 RPMB 영역은 IID간에 공유될 수 있다. 일부 예에서, 단일 IID는 다수의 RPMB 영역에 액세스할 수 있다.
전형적인 RPMB 시퀀스는 호스트의 이니시에이터 (IID)로부터의 RPMB 영역 액세스 뒤이어 동일한 이니시에이터에서 동일한 영역의 결과 레지스터 판독으로 구성된다. 따라서, RPMB 시퀀스는 일반적으로 호스트로부터 2 개의 요청 : 동작을 개시하기 위한 제 1 요청 및 결과를 검색하기 위한 제 2 요청을 필요로 한다. 전형적인 UFS 디바이스들은 동작을 개시하기 위한 요청이 완료된 후 결과를 저장하는 RPMB 영역 당 하나의 결과 레지스터를 유지한다. 레지스터에 저장된 값은 결과를 요청하는 임의의 IID에 제공된다. 영역 당 하나의 결과 레지스터만 있기 때문에, 제 1 개시 요청에 이어 RPMB 영역에 대한 제 2 개시 동작은 이니시에이터가 제 1 요청에서 결과 레지스터를 판독하였는지 여부에 관계없이 결과 레지스터를 덮어쓸 것이다. 제 2 이니시에이터가 해당 영역에서 다른 동작을 시작한 후 제 1 이니시에이터가 결과 레지스터를 판독하면, 결과가 제 1 동작에 대해 유효 하지 않다. 현재는, 결과 레지스터를 판독하는 이니시에이터의 IID가 RPMB 시퀀스를 시작한 이니시에이터의 IID와 동일하지 않다는 표시가 호스트에 없다. 레지스터는 휘발성 메모리, 비 휘발성 메모리 또는 임의의 조합일 수 있으며, 저장 디바이스에 의해 사용되는 임시 저장 위치일 수 있다.
디바이스가 명령의 요청자 (예를 들어, 이니시에이터 ID (IID)에 기초하여)에 기초하여 결과 레지스터의 판독을 금지하는 것은 바람직하지 않다. 예를 들어, 제 1 이니시에이터가 실제로 결과를 판독하지 않는 경우 (예를 들어, 응답하지 않거나 중단되는 경우) 호스트가 제 2 이니시에이터가 결과 레지스터를 판독하도록 허용하는 것이 실제로 바람직할 수 있다. 결과적으로, IID가 일치하지 않으면 에러가 발생하고 호스트는 에러의 원인을 이해하는데 어려움이 있고 에러를 해결하는데 어려움이 있을 수 있다. 재설정하지 않고 에러를 해결하기 위해, 호스트는 모든 IID를 사이클링하여 결과 레지스터를 판독하려고 시도할 수 있다. 이것은 시간 소모적이고, 에러의 기원이 불분명하기 때문에 호스트는 성공적으로 에러를 제거할 것이라는 확신이 없다
RPMB 액세스에서 에러 핸들링을 위한 방법, 시스템 및 기계 판독 가능한 매체가 일부 예에 개시되어 있다. 일부 예들에서, 이니시에이터 식별자 (예를 들어, IID) 정보 필드가 레지스터에 추가될 수 있다. 예를 들어, IID 정보 필드는 RPMB 시퀀스의 이니시에이터의 IID일 수 있다. 결과 레지스터를 판독하는 이니시에이터가 해당 IID가 결과의 IID와 다르다는 것을 발견하면 호스트에게 에러를 경고하고 적절한 에러 핸들링을 수행할 수 있다. 다른 예에서, IID 정보 필드는 액세스 요청을 제출한 IID와 현재 레지스터 컨텐츠를 요청하는 IID 사이의 IID 불일치를 나타내는 단일 비트일 수 있다.
도 5는 본 개시의 일부 예에 따른 2 개의 대안적인 리플레이 보호 메모리 블록 (RPMB) 결과 구조를 예시한다. 결과 구조 (500)의 제 1 종래 기술 버전에서, 비트 [15:12] 및 비트 [11:8]이 리저브되고, 비트 [7]은 기록 카운터 상태를 포함하고, 비트 [6:0]은 동작 상태를 포함한다. 제 2 버전 (510)에서, 비트 [15:12]는 요청자의 IID를 나타내기 위해 이용될 수 있다. 비트 [11:8]은 여전히 리저브드되어 있고 비트 [7]은 여전히 기록 카운터 상태로 사용되고 비트 [6:0]은 동작 상태로 사용될 수 있다. 다른 예들에서, IID는 대안적으로 응답 메시지 유형 레지스터 (예를 들어, 더 많은 자유 비트들)에 저장될 수 있다. 또 다른 예에서, 단일 비트는 시퀀스 이니시에이터의 전체 IID보다는 IID 불일치를 나타내기 위해 사용될 수 있다 (결과 레지스터 또는 응답 메시지 유형 레지스터에서 더 적은 비트를 사용함). 도 5의 결과 구조는 인증된 데이터 판독 응답 메시지와 같은 응답 메시지에 포함된다.
도 20은 본 개시의 일부 예에 따른 RPMB 판독 요청의 간략화된 메시지 시퀀스 다이어그램을 예시한다. 호스트 디바이스 (2005)는 인증된 데이터 판독 요청 (2015)을 UFS 저장 디바이스 (2010) (예를 들어, NAND 메모리 디바이스, SSD, SCSI 디바이스 등)에 발송한다. 본 개시의 예에서, 요청은 요청자의 이니시에이터 ID (IID)를 포함할 것이다. UFS 디바이스 (2010)는 해당 요청을 처리하고, 응답(2020)을 발송한다. UFS 디바이스(2010)는 일부 예들에서, 요청자의 IID를 포함하는 하나 이상의 레지스터에 요청 결과를 저장한다. 동작 (2025)에서, 호스트 디바이스 (2005)는 응답 메시지에 대한 요청을 UFS 디바이스 (2010)로부터 발송한다. 동작 (2030)에서, UFS 디바이스 (2010)는 도 5의 결과 구조를 포함하여 레지스터 (또는 다른 메모리 위치)로부터의 응답을 제공한다. 호스트 디바이스 (2005)의 이니시에이터는 수신한 결과가 응답의 IID에 기초하여 발송된 요청에 대응하는지 검증할 수 있다. 다른 예에서, 전용 필드가 아닌, 다른 필드가 재사용될 수 있다. 예를 들어, RPMB 메시지는 IID를 식별할 수 있는 하나 이상의 논스 값 (응답이 특정 요청에 응답하는지를 검증하기 위해 HMAC 계산에 이용됨)을 포함할 수 있다. 예를 들어, 논스는 IID에 기초하여 생성될 수 있다.
도 21은 본 개시의 일부 예에 따른 RPMB 요청을 처리하는 UFS 디바이스의 방법 (2100)의 흐름도를 예시한다. 동작 (2110)에서, 디바이스는 UFS 인터페이스를 통해 RPMB 요청을 수신한다. 요청은 요청자의 IID를 포함할 수 있다. 요청은 SCSCI 보안 프로토콜과 같은 하나 이상의 프로토콜에 따라 발송될 수 있다. 동작 (2115)에서, UFS 디바이스는 요청된 동작 (2115)을 수행한다 (또는 요청이 잘못되어 동작을 수행할 수 없다고 결정함). 동작 (2120)에서, 결과는 요청자의 IID와 함께 레지스터 (또는 다른 메모리 위치)에 저장된다. 일부 예에서, 응답이 호스트로 발송된다. 동작 (2124)에서, 결과에 대한 요청이 수신된다. 동작 (2130)에서, 결과 레지스터의 컨텐츠는 응답 메시지 (IID 포함)에 복사되어 호스트로 발송된다. 알 수 있는 바와 같이, 새로운 요청이 동작 (2120) 이후에 그리고 동작 (2125 및 2130) 이전에 유입되면, 결과 레지스터는 새로운 요청의 결과로 덮어 쓰여질 것이다. 동작 (2110)에서 요청을 발송한 동일한 이니시에이터가 (2125)에서 결과 레지스터를 요청하면, (2130)에서 발송된 결과의 IID 필드는 요청 (2110)을 발송한 요청자의 이니시에이터 ID와 일치하지 않을 것이다.
도 22는 본 개시의 일부 예에 따른 호스트 디바이스가 RPMB 명령을 발송하는 방법의 흐름도를 예시한다. 동작 (2210)에서, 호스트는 RPMB 명령을 UFS 디바이스로 발송할 수 있다. 일부 예에서, RPMB 명령은 SCSCI 보안 프로토콜을 따를 수 있다. 동작 (2215)에서 호스트는 응답을 수신할 수 있다. 응답이 성공을 표시하는 경우, 동작 (2220)에서 호스트는 응답 요청을 호스트에 발송할 수 있다. 동작 (2225)에서, 결과가 수신될 수 있다. 결과의 IID는 요청자의 IID와 비교될 수 있다. 이들이 동작 (2230) 단계에서 일치하면, 이니시에이터는 결과를 핸들링할 수 있다. 이들이 일치하지 않으면, 동작 (2235)에서 이니시에이터는 에러 핸들링 절차를 개시할 수 있다. 예를 들어, 이니시에이터는 메모리 영역을 다시 판독하려고 시도할 수 있다.
3D 낸드(NAND)
3 차원 (3D) 아키텍처 반도체 메모리 기술에서, 수직 구조가 적층되어, 티어(tier)의 수, 물리적 페이지, 및 따라서, 메모리 디바이스 (예를 들어, 전술한 저장 디바이스와 같은)의 밀도를 증가시킨다.
도 6은 액세스 라인 (예를 들어, 워드 라인) (604, 606, 608, 610), U 자형 필라 (612, 614), 선택 게이트 (620), 소스 라인 (622) 및 데이터 라인 (예를 들어, 비트 라인) (624)을 포함하여 아키텍처를 정의하는 기능적 구조를 도시하는 다양한 실시 예에 따른 기판 (602)상의 3D NAND 아키텍처 반도체 메모리 디바이스 (600)의 예시적인 3 차원 도면을 예시한다. 메모리 디바이스 (600)는 NAND 메모리의 블록, 디바이스 또는 다른 유닛에서 전형적으로 발견될 수 있는 더 많은 수의 유사한 구조의 일부를 나타낸다.
예시적인 메모리 디바이스 (600)는 소스, 드레인 및 제어 게이트를 각각 더 포함하는 전하 저장 트랜지스터 (예를 들어, 메모리 셀)의 개별 그룹의 전하 저장 구조 (도시된 예에서, 플로팅 게이트; 그러나 전하 트랩 구조가 사용될 수 있다)를 적어도 부분적으로 둘러싸는 제 1, 제 2, 제 3 및 제 4 액세스 라인 (604, 606, 608, 610)을 포함하는 다수의 티어의 메모리 구조를 포함한다. 도 6에 도시된 메모리 디바이스 (600)에서, 별개의 제 1, 제 2, 제 3 및 제 4 액세스 라인 (604, 606, 608, 610) 각각은 메모리 디바이스(600)의 별도의 티어에 위치된다. 예시의 목적으로, 도 6에는 4 개의 티어의 액세스 라인이 도시되어 있지만, 실제 디바이스의 다양한 예에서, 메모리 디바이스(600)는 8, 16, 32, 64 등과 같은 더 많은 수의 액세스 라인 티어를 포함할 수 있다.
메모리 디바이스(600)는 다수의 메모리 셀에 인접하여 연장되고 전하 저장 트랜지스터를 위한 채널로서 기능하는 복수의 반도체 구조를 포함할 수 있다. 예시의 목적으로, 제 1 및 제 2 U 자형 필라(612, 614)을 포함하는 도 6에 12 개의 U 자형 필라를 갖는 것으로 도시되어 있지만, 메모리 디바이스 (600)는 필요에 따라 더 크거나 적은 U 자형 필라를 포함할 수 있다. 제 1 및 제 2 U 자형 필라 (612, 614) 각각은 기판 (602) 내로 연장될 수 있고, 각각 제 1 또는 제 2 수직 슬롯 (616, 618)에 의해 개별적으로 분리될 수 있다. 제 1 및 제 2 U 자형 필라 (612, 614)는 폴리실리콘과 같은 반도체 재료를 포함할 수 있으며, 많은 예에서 중심 개구를 정의하는 폴리실리콘의 튜브 (중공 실린더)로서 형성될 것이며, 유전체 재료는 개구를 채운다.
메모리 디바이스 (600)는 제 1 및 제 2 U 자형 필라 (612, 614)의 각각의 단부에 형성된 선택 트랜지스터, 및 선택 트랜지스터를 둘러싸는 선택 게이트 (620)를 포함할 수 있다. 소스 라인 (622)은 제 1 및 제 2 U 자형 필라 (612, 614)의 제 1 단부에서 선택 트랜지스터 상에 형성될 수 있고, 데이터 라인 (예를 들어, 비트 라인) (624)은 제 1 및 제 2 U 자형 필라 (612, 614)의 제 2 단부의 선택 트랜지스터 상에 형성될 수 있다.
특정 예들에서, 반도체 재료의 하나 이상의 티어들은 메모리 디바이스 (600)에 대한 디코더 트랜지스터, 드라이버, 또는 하나 이상의 다른 주변 회로와 같은 주변 트랜지스터의 본체로서 기능할 수 있다.
비록 U 자형 필라 (612, 614)을 사용하여 도 6에 도시되어 있지만, 3D NAND 아키텍처 반도체 메모리 디바이스 (600)는 다른 예에서 개별 제 1 및 제 2 단부에서의 소스 및 데이터 라인을 갖는 실질적으로 수직인 (및 U 자형이 아닌) 필라를 포함하는 하나 이상의 다른 형상의 필라로 형성될 수 있다. 또한, 특정 예들에서, 메모리 디바이스 (600)는 적층된 메모리 셀 스트링 어레이 및 각각의 동작 방법의 개시를 포함하여 그 전문이 본원에 참조로 통합된 "Architecture for 3-D NAND Memory” 라는 제목으로 Midori Morooka et al. 등에게 발행되고 공통으로 양도된 미국 특허 번호 8,964,474에 예시된 바와 같이 서로 적층 된 다수의 수직 구조를 포함할 수 있다.
도 7은 제 2 및 제 3 필라(예를 들어, U 자형 필라) (716, 726), 제 1, 제 2 및 제 3 액세스 라인 (704, 706, 708) 및 메모리 셀 (728)의 부분을 포함하는 3D NAND 아키텍처 반도체 메모리 디바이스 (700)의 예시적인 3 차원 단면을 예시한다.
제 2 및 제 3 필라 (716, 726) 각각은 전도성 구조물 (730), 바람직하게는 폴리실리콘과 같은 반도체 재료를 포함한다. 많은 예에서, 폴리실리콘은 중심 개구를 정의할 것이며, 이는 전형적으로 유전체 재료로 채워질 것이다. 도 7에 도시된 제 2 및 제 3 필라 (716, 726)의 부분은 3 개의 개별 메모리 셀 (728)을 포함한다. 각각의 3D 메모리 셀 (728)은 반도체 재료의 볼륨 예컨대, 많은 예에서, 예를 들어, 제 1 이산화 규소 (SiO2) 계층 (736), 질화규소 (Si3N4) 계층 (738) 및 제 2 이산화물 계층 (740)을 포함하는 ONO (Oxide-nitride-oxide) 구조와 같은 하나 이상의 폴리-폴리 유전체 층에 의한 개별 제 1, 제 2 또는 제 3 액세스 라인 (704, 706, 708)으로부터 그리고 터널 유전체 (734)에 의한 필라 (716, 726)의 제 2 및 제 3의 폴리실리콘으로부터 분리된 플로팅 게이트로서 기능하는 부분 링 구조 (732) (예를 들어, p+ 형 폴리실리콘 등)를 포함한다. 각각의 메모리 셀 (728)은 추가의 티어의 유전체 재료(742)에 의해 서로 분리된다.
반면에, 도 7의 메모리 셀 (728)은 플로팅 게이트 저장 구조를 포함하고, 다른 예들에서, 전하 트래핑 구조 또는 다른 형태의 저장 구조와 같은 다른 전하 저장 메커니즘이 이용될 수 있다.
도 8은 복수의 메모리 셀 스트링을 포함하는 3D NAND 아키텍처 반도체 메모리 어레이 (800)의 예시적인 개략도를 도시하며, 각각의 스트링은 Z 방향으로 소스에서 드레인으로 소스 측 선택 게이트 (SGS)로부터 드레인 측 선택 게이트 (SGD)로 32 개의 티어 (TIER0-TIER31)의 전하 저장 트랜지스터를 포함한다. 3D 메모리 어레이의 각각의 메모리 셀 스트링은 Y 방향을 따라 데이터 라인 (예를 들어, 비트 라인 (BL))으로, X 방향을 따라 물리적 페이지 (P0-P15)로 배열될 수 있다. 물리적 페이지 (예를 들어, P0) 내에서, 각각의 티어는 메모리 셀의 행을 나타내고, 각각의 메모리 셀의 스트링은 열을 나타낸다. 메모리 셀 블록은 다수의 물리적 페이지 (예를 들어, 128, 384 등)를 포함할 수 있다. 다른 예들에서, 각각의 스트링의 메모리 셀들은 더 많거나 적은 티어 (예를 들어, 8, 16, 64, 128 등) 뿐만 아니라 원하는 대로 전하 저장 트랜지스터 (예를 들어, 선택 게이트, 데이터 라인 등) 위 또는 아래에 반도체 재료의 하나 이상의 추가 티어를 포함할 수 있다.
메모리 어레이 (800) 내의 각각의 메모리 셀은 액세스 라인 (예를 들어, 워드 라인)에 결합된 (예를 들어, 전기적으로 또는 다른 방식으로 동작 가능하게 연결된) 제어 게이트를 포함하며, 이는 제어 게이트를 원하는 특정 티어 또는 티어의 일부에 가로질러 총괄하여 결합시킨다. 3D 메모리 어레이의 특정 티어들, 따라서, 스트링 내의 특정 메모리 셀들은 개별 액세스 라인들을 사용하여 액세스되거나 제어될 수 있다. 예를 들어, 메모리 어레이 (800)는 TIER31에서 각 메모리 셀의 제어 게이트에 결합하는 제 1 레벨의 반도체 재료 (802) (예를 들어, 폴리실리콘 등) 및 어레이의 소스 측 선택 게이트(SGS)에 결합하는 제 2 레벨의 반도체 재료 (804)를 포함한다. 유사한 수준의 금속 또는 반도체 재료가 각각의 티어에 대한 제어 게이트에 결합할 수 있다. 어레이 내의 특정 메모리 셀 스트링은 비트 라인 (BL) 및 선택 게이트 등의 조합을 사용하여 액세스, 선택 또는 제어될 수 있고, 특정 스트링 내의 하나 이상의 티어에서의 특정 메모리 셀은 하나 이상의 액세스 라인 (예를 들어, 워드 라인)을 사용하여 액세스, 선택 또는 제어될 수 있다.
도 9는 티어 (예를 들어, TIER0-TIER7 (912-926)) 및 감지 증폭기 (960) 및 스트링 (예를 들어, 제 1, 제 2, 제 3 및 제 4 스트링 (904-910))의 2차원 어레이로 배열된 복수의 메모리 셀 (902)을 포함하는 3D NAND 아키텍처 반도체 메모리 어레이 (900)의 일부의 예시적인 개략도를 도시한다. 예를 들어, 메모리 어레이 (900)는 3D NAND 아키텍처 반도체 메모리 디바이스의 메모리 셀의 물리적 페이지의 일부의 예시적인 개략도를 예시할 수 있다. 각각의 메모리 셀 스트링은 각각의 소스 측 선택 게이트 (SGS)(예를 들어, 제 1, 제 2, 제 3 또는 제 4 SGS (952-958))를 사용하여 소스 라인 (SRC)에 결합되고, 개별 드레인-사이드 선택 게이트 (SGD) (예를 들어, 제 1, 제 2, 제 3 또는 제 4 SGD (936-942))를 사용하여 개별 데이터 라인 (예를 들어, 제 1, 제 2, 제 3 또는 제 4 비트 라인 (BL0-BL3) (928-934))에 결합된다. 도 9의 예에서 8 개의 티어 (TIER0-TIER7 (912-926), 예를 들어, 워드 라인 (WL) WL0-WL7을 사용) 및 4 개의 데이터 라인 (BL0-BL3 (928-934))으로 도시되어 있지만, 다른 예는 원하는 대로 더 많거나 적은 티어 (예를 들어, 16, 32, 64 등) 또는 데이터 라인을 갖는 메모리 셀의 스트링을 포함할 수 있다.
이러한 예시적인 메모리 어레이(900)와 같은 NAND 아키텍처 반도체 메모리 어레이에서, 선택된 메모리 셀의 상태는 선택된 메모리 셀을 포함하는 특정의 데이터 라인에 연결된 전류 또는 전압의 변화를 감지함으로써 액세스될 수 있다. 메모리 어레이 (900)는 하나 이상의 드라이버를 사용하여 액세스될 수 있다 (예를 들어, 제어 회로, 하나 또는 그 이상의 프로세서, 디지털 로직 등에 의해). 일 예에서, 하나 이상의 드라이버는 특정 메모리 셀 또는 메모리 셀 세트에 대해 수행하고자 하는 동작의 유형에 따라 하나 이상의 데이터 라인 (예를 들어, 비트 라인 BL0-BL3), 액세스 라인 (예를 들어, 워드 라인 WL0-WL7) 또는 선택 게이트에 특정 전위를 드라이빙으로써 특정 메모리 셀 또는 메모리 셀 세트를 활성화할 수 있다.
데이터를 메모리 셀에 프로그래밍 또는 기록하기 위해, 프로그래밍 전압 (Vpgm) (예를 들어, 하나 이상의 프로그래밍 펄스 등)이 선택된 워드 라인 (예를 들어, WL4)에 인가될 수 있고, 따라서 선택된 워드 라인들에 결합된 각각의 메모리 셀의 제어 게이트에 인가될 수 있다(예를 들어, WL4에 결합된 메모리 셀들의 제 1, 제 2, 제 3 또는 제 4 제어 게이트 (944-950)). 프로그래밍 펄스는 예를 들어, 15V 또는 그 근처에서 시작될 수 있으며, 특정 예들에서 각각의 프로그래밍 펄스 애플리케이션 동안 크기가 증가할 수 있다. 프로그램 전압이 선택된 워드 라인들에 인가되는 동안, 접지 전위 (예를 들어, Vss)와 같은 전위가 프로그래밍을 위해 타겟된 메모리 셀의 기판들 (따라서, 소스들과 드레인들 사이의 채널들) 및 데이터 라인들 (예를 들어, 비트 라인들)에 인가되어 채널로부터 타겟된 메모리 셀의 플로팅 게이트로 전하 전송 (예를 들어, 직접 주입 또는 FN (Fowler-Nordheim) 터널링 등)을 야기한다.
대조적으로, 패스 전압 (Vpass)은 프로그래밍 타겟이 아닌 메모리 셀을 갖는 하나 이상의 워드 라인에 인가될 수 있거나, 금지 전압 (예를 들어, Vcc)은 프로그래밍 타겟이 아닌 메모리 셀들을 갖는 데이터 라인 (예를 들어, 비트 라인)에 인가되어 예를 들어, 채널로부터 그러한 타겟이 아닌 메모리 셀의 플로팅 게이트로 전하가 전달되는 것을 금지할 수 있다. 패스 전압은, 예를 들어, 프로그래밍 타겟된 워드 라인에 인가된 패스 전압의 근접성에 따라 가변적일 수 있다. 금지 전압은 접지 전위 (예를 들어, Vss)에 대한 외부 소스 또는 서플라이 (예를 들어, 배터리, AC-DC 컨버터 등)으로부터의 전압과 같은 서플라이 전압(Vcc)을 포함할 수 있다.
예로서, 프로그래밍 전압 (예를 들어, 15V 이상)이 WL4와 같은 특정 워드 라인에 인가 되면, 10V의 패스 전압이 WL3, WL5 등과 같은 하나 이상의 다른 워드 라인에 인가되어 타겟이 아닌 메모리 셀의 프로그래밍을 금지시키거나, 또는 프로그래밍 타겟이 아닌 그러한 메모리 셀에 저장된 값을 보유할 수 있다. 인가된 프로그램 전압과 타겟이 아닌 메모리 셀 사이의 거리가 증가함에 따라, 타겟이 아닌 메모리 셀의 프로그래밍을 억제하는데 필요한 패스 전압이 감소될 수 있다. 예를 들어, WL4에 15V의 프로그래밍 전압이 인가되는 경우, WL3 및 WL5에 10V의 패스 전압이 인가될 수 있고, WL2 및 WL6에 8V의 패스 전압이 인가될 수 있으며, WL1 및 WL7에 7V의 패스 전압이 인가될 수 있다 다른 예들에서, 패스 전압들 또는 워드 라인들의 수 등은 더 크거나 더 낮거나 더 많거나 더 적을 수 있다.
하나 이상의 데이터 라인들 (예를 들어, 제 1, 제 2, 제 3 또는 제 4 비트 라인들 (BL0-BL3) (928-934))에 결합된 감지 증폭기들 (960)은 특정 데이터 라인에서 전압 또는 전류 감지에 의해 개별 데이터 라인들에서 각 메모리 셀의 상태를 검출할 수 있다.
하나 이상의 프로그래밍 펄스 (예를 들어, Vpgm)의 인가들 사이에서, 선택된 메모리 셀이 의도된 프로그래밍된 상태에 도달했는지를 결정하기 위해 검증 동작이 수행될 수 있다. 선택된 메모리 셀이 의도된 프로그래밍된 상태에 도달하면, 추가 프로그래밍이 금지될 수 있다. 선택된 메모리 셀이 의도된 프로그래밍된 상태에 도달하지 않으면, 추가 프로그래밍 펄스가 인가될 수 있다. 특정 수의 프로그래밍 펄스 (예를 들어, 최대 수) 후에 선택된 메모리 셀이 의도된 프로그래밍된 상태에 도달하지 않은 경우, 선택된 메모리 셀, 또는 그러한 선택된 메모리 셀과 연관된 스트링, 블록 또는 페이지가 결함인 것으로 마킹될 수 있다.
메모리 셀 또는 메모리 셀 그룹을 소거하기 위해 (예를 들어, 소거는 전형적으로 블록에서 수행됨), 소거 전압 (Vers) (예를 들어, 전형적으로 Vpgm)이 소거에 타겟된 메모리 셀의 기판 (및 따라서, 소스와 채널 사이의 채널)에 인가될 수 있고 (예를 들어, 하나 이상의 비트 라인, 선택 게이트 등을 사용하여), 반면 타겟 메모리 셀의 워드 라인은 접지 전위 (예를 들어, Vss)와 같은 전위로 유지되어, 예를 들어, 타겟 메모리 셀의 플로팅 게이트로부터 채널로 전하 전송 (예를 들어, 직접 주입 또는 FN (Fowler-Nordheim) 터널링 등)이 발생한다.
도 10은 메모리 제어기 (1001) 및 복수의 메모리 셀 (1004)을 갖는 메모리 어레이 (1002) 및 메모리 디바이스(1000) 외부에 호스트(1005)를 포함하는 메모리 디바이스 (1000) (예를 들어, 도 1의 UFS 디바이스(140)와 같은 저장 디바이스)의 예시적인 블록도를 도시한다. SATA (Serial Advanced Technology Attachment) 인터페이스, PCIe (Peripheral Component Interconnect Express) 인터페이스, USB (Universal Serial Bus) 인터페이스, UFS 용 M-PHY, 8 비트 병렬, eMMC 또는 하나 이상의 다른 물리적 커넥터 또는 인터페이스와 같은 하나 이상의 물리적 인터페이스를 사용하여 메모리 디바이스 (1000)와 호스트 (1005)간에 데이터를 전송할 수 있다. 호스트 (1005)는 개인용 컴퓨터, 디지털 카메라, 모바일 전자 디바이스, 메모리 카드 리더, 또는 메모리 디바이스 (1000) 외부의 하나 이상의 다른 전자 디바이스와 같은 호스트 시스템을 포함할 수 있다. 일부 예들에서, 메모리 제어기는 (1001)는 UFS 디바이스에 대한 도 1의 디바이스 레벨 관리기 (150)의 기능들을 구현할 수 있다. 도 1의 디스크립터 (155) 및 UFS 상호 접속부 (145)는 명확성을 위해 메모리 디바이스 (1000)에 도시되어 있지 않지만, 단독으로 또는 도시된 컴포넌트의 일부로서 존재할 수 있다.
메모리 제어기 (1001)는 호스트 (1005)로부터 명령을 수신할 수 있고, 메모리 어레이 (1002)의 메모리 셀들 (1004) 중 하나 이상의 메모리 셀로 데이터를 (예를 들어, 기록 또는 소거) 또는 그로부터 (예를 들어, 판독) 전송하기 위해 메모리 어레이 (1002)와 통신할 수 있다. 메모리 제어기 (1001)는 무엇보다도 많은 컴포넌트 또는 집적 회로와 같은 회로 또는 펌웨어를 포함할 수 있다. 예를 들어, 메모리 제어기 (1001)는 메모리 어레이 (1002)를 통한 액세스를 제어하고 호스트 (1005)와 메모리 디바이스 (1000) 사이에 변환 계층을 제공하도록 구성된 하나 이상의 메모리 제어 유닛, 회로 또는 컴포넌트를 포함할 수 있다. 메모리 제어기 (1001)는 메모리 어레이 (1002)와 데이터를 주고 받기 위한 하나 이상의 입력/출력 (I/O) 회로, 라인 또는 인터페이스를 포함할 수 있다.
메모리 어레이 (1002) (예를 들어, 3D NAND 아키텍처 반도체 메모리 어레이)는 예를 들어 다수의 디바이스, 평면, 블록 또는 물리적 페이지에 배열된 다수의 메모리 셀 (1004)을 포함할 수 있다. 일 예로서, TLC 메모리 디바이스는 페이지 당 18,592 바이트 (B)의 데이터, 블록 당 1536 페이지, 평면 당 548 블록 및 디바이스 당 4 평면을 포함할 수 있다. 다른 예로서, MLC 메모리 디바이스는 페이지 당 18,592 바이트 (B)의 데이터, 블록 당 1024 페이지, 평면 당 548 블록 및 디바이스 당 4 평면을 포함할 수 있지만, 대응하는 TLC 메모리 디바이스에 필요한 기록 시간의 절반 및 프로그램/소거의 두 배 (P/E)로 사이클링한다. 다른 예는 다른 숫자 또는 배열을 포함할 수 있다.
동작시에, 데이터는 전형적으로 메모리 디바이스 (1000)에 페이지로 기록되거나 판독되고 블록 단위로 소거된다. 그러나, 하나 이상의 메모리 동작들 (예를 들어, 판독, 기록, 소거 등)은 원하는 대로 더 크거나 더 작은 메모리 셀 그룹에서 수행될 수 있다. 메모리 디바이스의 데이터 전송 크기는 전형적으로 페이지라고 하며, 호스트의 데이터 전송 크기는 전형적으로 섹터라고 한다.
데이터 페이지는 다수의 바이트의 사용자 데이터 (예를 들어, 다수의 데이터 섹터를 포함하는 데이터 페이로드) 및 그에 대응하는 메타 데이터를 포함할 수 있지만, 페이지의 크기는 종종 사용자 데이터를 저장하는데 사용되는 바이트의 수만 나타낸다. 예로서, 4KB의 페이지 크기를 갖는 데이터의 페이지는 4KB의 사용자 데이터 (예를 들어, 섹터 크기가 512B라고 가정하는 8 개의 섹터) 뿐만 아니라 사용자 데이터에 대응하는 메타 데이터의 다수의 바이트 (예를 들어, 32B, 54B, 224B 등), 예컨대, 무결성 데이터 (예를 들어, 에러 검출 또는 정정 코드 데이터), 어드레스 데이터 (예를 들어, 로직 어드레스 데이터 등), 또는 사용자 데이터와 관련된 다른 메타 데이터를 포함할 수 있다.
상이한 유형의 메모리 셀 (1004) 또는 메모리 어레이 (1002)는 상이한 페이지 크기를 제공할 수 있거나 이와 연관된 상이한 양의 메타 데이터를 요구할 수 있다. 셀들 (1004) 또는 메모리 어레이들 (1002)은 도 1의 스토리지 (170)에 대응할 수 있다. 예를 들어, 상이한 메모리 디바이스 유형은 다른 비트 에러율을 가질 수 있으며, 이는 데이터 페이지의 무결성을 보장하기 위해 필요한 다른 양의 메타 데이터를 야기할 수 있다 (예를 들어, 높은 비트 에러율을 갖는 메모리 디바이스는 비트 에러율이 낮은 메모리 디바이스보다 더 많은 바이트의 에러 정정 코드 데이터를 요구할 수 있다). 예로서, MLC (Multi-Level Cell) NAND 플래시 디바이스는 대응하는 단일 레벨 셀 (SLC) NAND 플래시 디바이스보다 높은 비트 에러율을 가질 수 있다. 이와 같이, MLC 디바이스는 대응하는 SLC 디바이스보다 에러 데이터에 대해 더 많은 메타 데이터 바이트를 요구할 수 있다.
도 11은 메모리 관리 컴포넌트 (1106) 및 메모리 제어기 컴포넌트 (1112)를 포함하는 메모리 제어기 (1101)의 예시적인 블록도를 예시한다. 메모리 관리 컴포넌트 (1106)는 메모리 제어기(1001) 및/또는 도 1의 디바이스 레벨 관리기(150)의 예이거나 이를 포함할 수 있다.
메모리 관리 컴포넌트 (1106)는 무엇보다도, 마모 레벨링 (예를 들어, 가지비 컬렉션 또는 재생(reclamation)), 에러 검출 또는 정정, 블록 폐기(retirement) 또는 하나 이상의 다른 메모리 관리 기능을 포함하는 다양한 메모리 관리 기능과 관련된 다수의 컴포넌트 또는 집적 회로와 같은 회로부 또는 펌웨어를 포함할 수 있다. 메모리 관리 컴포넌트 (1106)는 호스트 명령들 (예를 들어, 호스트로부터 수신된 명령들)을 디바이스 명령들 (예를 들어, 메모리 어레이의 동작과 관련된 명령들 등)로 파싱 또는 포맷하거나, 또는 메모리 디바이스의 메모리 제어기 컴포넌트 (1112) 또는 하나 이상의 다른 컴포넌트에 대한 디바이스 명령들을 생성 (예를 들어, 다양한 메모리 관리 기능을 달성하기 위해)할 수 있다.
메모리 관리 컴포넌트 (1106)는 메모리 디바이스의 하나 이상의 컴포넌트와 관련된 다양한 정보 (예를 들어, 메모리 제어기 (1101)에 결합된 하나 이상의 메모리 셀 또는 메모리 어레이와 연관된 다양한 정보)를 유지하도록 구성된 관리 테이블 (1108)을 포함할 수 있다. 예를 들어, 관리 테이블 (1108)은 메모리 제어기 (1101)에 결합된 하나 이상의 메모리 셀 블록에 대한 블록 에이지, 블록 소거 카운트, 에러 이력 또는 하나 이상의 에러 카운트 (예를 들어, 기록 동작 에러 카운트, 판독 비트 에러 카운트, 판독 동작 에러 카운트, 소거 에어 카운트 등)에 관한 정보를 포함할 수 있다. 특정 예들에서, 하나 이상의 에러 카운트들에 대한 검출된 에러들의 수가 임계값을 초과하면, 비트 에러는 정정 불가능한 비트 에러로 지칭될 수 있다. 관리 테이블 (11008)은 무엇보다도 정정 가능하거나 정정 불가능한 비트 에러의 수를 유지할 수 있다.
메모리 관리 컴포넌트 (1106)는 RAID (Redundant Array of Independent Disk) 유닛 (1110)을 포함할 수 있다 ("디스크(disk)"라는 용어는 디스크 드라이브를 갖는 이전 구현으로부터의 이월(carrryover)이며, RAID 유닛 (1110)이 물리적 디스크를 포함할 필요는 없다). RAID 유닛 (1110)은 무엇보다도 중복(redundant) 메모리 동작을 통해 데이터 신뢰성을 제공할 수 있다.
메모리 관리 컴포넌트 (1106)는 호스트로부터의 요청을 핸들링하는 RPMB 컴포넌트 (1116)를 포함할 수 있다 : RPMB 메모리를 판독하거나 기록하거나; 인증 키를 프로그래밍; 기록 카운터를 판독; 결과 요청 핸들링 및 기타 기능. RPMB 컴포넌트 (1116)는 인증 키에 대한 요청을 인증한다. RPMB 컴포넌트 (1116)는 또한 요청의 결과를 IID 저장 및 호스트로 리턴된 결과에 IID를 포함하는 하나 이상의 레지스터에 저장할 수 있다. 예를 들어, RPMB 컴포넌트 (1116)는 도 21의 흐름도를 구현할 수 있다.
메모리 관리 컴포넌트 (1106)는 UFS 메시징 컴포넌트 (1118)를 포함할 수 있다. 예를 들어, UFS 메시징 컴포넌트 (1118)는 예를 들어 UFS 상호 접속부 (145)을 구현함으로써 UFS 메시지를 핸들링할 수 있다. UFS 메시징 컴포넌트는 UFS 인터페이스를 통해 하나 이상의 요청 및/또는 응답 UPIU 및 기타 메시지를 발송하고 수신할 수 있다. UFS 메시징 컴포넌트 (1118)는 요청될 때 UFS 디스크립터들 (명확성을 위해 도시되지 않았지만 도 1에 (155)로 도시됨)에 액세스할 수 있고 UFS 디스크립터들의 값으로 응답을 회신할 수 있다. 예를 들어, UFS 메시징 컴포넌트 (1118)는 도 18를 구현할 수 있다. 일부 예들에서, UFS 메시징 컴포넌트 (1118)는 호스트에 의해 요청된 UFS 디스크립터에서 하나 이상의 값을 설정할 수 있다.
메모리 관리 컴포넌트 (1106)는 성능 스로틀링 컴포넌트 (1122)를 포함할 수 있다. 성능 스로틀링 컴포넌트 (1122)는 성능 스로틀링 이벤트가 언제 발생했는지를 검출하고 그에 따라 하나 이상의 표시자를 설정할 수 있다. 예를 들어, 성능 스로틀링 컴포넌트 (1122)는 wExceptionEventStatus 디스크립터에 비트를 설정할 수 있다. UFS 메시징 컴포넌트 (1118)는 그런 다음 대응하는 비트가 wExceptionControl 플래그에 설정되면 UFS 메시지에서 경고 플래그를 활성화할 수 있다. 성능 스로틀링 컴포넌트 (1122)는 메모리 디바이스의 성능을 스로틀링하는 하나 이상의 성능 스로틀링 조치를 구현할 수 있다. UFS 메시징 컴포넌트 (1118)와 함께 성능 스로틀링 컴포넌트 (1122)는 도 15의 흐름도를 구현할 수 있다.
메모리 제어 컴포넌트 (1112)는 무엇보다도 메모리 제어기 (1101)에 결합된 메모리 디바이스의 하나 이상의 메모리 셀에 데이터를 기록하거나, 그로부터 데이터를 판독하거나 또는 소거하는 것과 관련된 메모리 동작을 제어하도록 구성된 회로부 또는 컴포넌트를 포함할 수 있다. 메모리 동작은 예를 들어 호스트로부터 수신된 호스트 명령에 기초하거나, 또는 메모리 관리 컴포넌트 (1106) 또는 메모리 제어 컴포넌트 (1112)에 의해 (예를 들어, 마모 레벨링, 에러 검출 또는 정정 등과 관련하여) 내부적으로 생성된 호스트 명령에 기초할 수 있다.
메모리 제어기 컴포넌트 (1112)는 ECC (error correction code) 컴포넌트 (1114)를 포함할 수 있으며, 이는 무엇보다도 메모리 제어기 (1101)에 결합된 메모리 디바이스의 하나 이상의 메모리 셀들에 데이터를 기록하거나 그로부터 데이터를 판독하는 것과 관련된 에러를 검출 또는 정정하도록 구성된 ECC 엔진 또는 다른 회로부를 포함할 수 있다. 메모리 제어기(1101)는 저장된 데이터의 무결성을 유지하거나 (예를 들어, RAID 유닛 (1110)에서 중복 RAID 스토리지를 사용하는 등), 또는 호스트와 메모리 디바이스 사이에서 전송되는 데이터의 무결성을 유지하면서, 다양한 동작 또는 데이터 저장과 관련된 에러 발생 (예를 들어, 비트 에러, 동작 에러 등)을 능동적으로 검출 및 복구하도록 구성될 수 있고, 향후 에러를 방지하기 위해 고장난 메모리 자원(예를 들어, 메모리 셀, 메모리 어레이, 페이지, 블록 등)를 제거 (예를 들어, 폐기)할 수 있다.
도 12는 메모리 어레이 (1202)상에서 하나 이상의 메모리 동작을 수행 하거나 또는 메모리 어레이와 통신하기 위한 하나 이상의 회로 또는 컴포넌트 및 복수의 메모리 셀 (1204)을 갖는 메모리 어레이 (1202)를 포함하는 메모리 디바이스 (1200)의 예시적인 블록도를 예시한다. 메모리 디바이스 (1200)는 행 디코더 (1212), 열 디코더 (1214), 감지 증폭기 (1220), 페이지 버퍼 (1222), 선택기 (1224), 입력/출력 (I/O) 회로 (1226) 및 메모리 제어 유닛 (1230)을 포함할 수 있다. 메모리 어레이 (1202)의 메모리 셀 (1204)은 행, 열, 페이지 및 블록으로 배열될 수 있고, 예를 들어 액세스 라인 (1206), 제 1 데이터 라인 (1210) 또는 하나 이상의 선택 게이트 등을 사용하여 액세스될 수 있다.
메모리 제어 유닛 (1230)은, 예를 들어, 어드레스 라인 (1216) 상에 수신된 어드레스 신호 (A0-AX) 또는 원하는 동작 (예를 들어, 기록, 판독, 소거 등)을 나타내는 하나 이상의 클록 신호 또는 제어 신호를 포함하는 제어 라인 (1232)상에서 수신된 하나 이상의 신호 또는 명령에 따라 메모리 디바이스 (1200)의 메모리 동작을 제어할 수 있다. 메모리 디바이스 (1200) 외부의 하나 이상의 디바이스는 제어 라인 (1232)상의 제어 신호 또는 어드레스 라인 (1216)상의 어드레스 신호의 값을 제어할 수 있다. 메모리 디바이스 (1200) 외부의 디바이스의 예는 호스트, 메모리 제어기, 프로세서, 또는 도 12에 도시되지 않은 하나 이상의 회로 또는 컴포넌트를 포함할 수 있지만, 이에 한정되지는 않는다.
메모리 디바이스 (1200)는 액세스 라인들 (1206) 및 제 1 데이터 라인들 (1210)을 사용하여 하나 이상의 메모리 셀들 (1204)로 데이터를 전송 (예를 들어, 기록 또는 소거) 또는 거기로부터 (예를 들어, 판독) 할 수 있다. 행 디코더 (1212) 및 열 디코더 (1214)는 어드레스 라인 (1216)으로부터 어드레스 신호 (A0-AX)를 수신 및 디코딩할 수 있고, 메모리 셀 (1204) 중 어느 것이 액세스될 지를 결정할 수 있고, 신호를 상술한 바와 같이 액세스 라인들 (1206) (예를 들어, 복수의 워드 라인들 (WL0-WLm) 중 하나 이상) 또는 제 1 데이터 라인들 (1210) (예를 들어, 복수의 비트 라인들 (BL0-BLn) 중 하나 이상) 중 하나 이상에 제공할 수 있다.
메모리 디바이스 (1200)는 제 1 데이터 라인(1210)를 이용하여 메모리 셀 (1204)상의 데이터의 값 (예를 들어, 판독)을 결정하거나, 또는 기록될 데이터의 값을 결정하도록 구성된 감지 증폭기 (1220)와 같은 감지 회로부를 포함할 수 있다. 예를 들어, 선택된 스트링의 메모리 셀에서, 하나 이상의 감지 증폭기 (1220)는 데이터 라인 (1210)으로 선택된 스트링을 통해 메모리 어레이에서 흐르는 판독 전류에 응답하여 선택된 메모리 셀의 로직 레벨을 판독할 수 있다.
메모리 디바이스 (1200) 외부의 하나 이상의 디바이스는 I/O 라인 (DQ0-DQN) (1208), 어드레스 라인 (1216) (A0-AX) 또는 제어 라인 (1232)을 사용하여 메모리 디바이스 (1200)와 통신할 수 있다. 입력/출력 (I/O) 회로 (1226)는 예를 들어, 제어 라인들 (1232) 및 어드레스 라인들 (1216)에 따라 I/O 라인 (1208)을 사용하여 페이지 버퍼 (1222) 또는 메모리 어레이 (1202)으로 또는 그로부터와 같은 메모리 디바이스 (1200)으로 또는 그로부터 데이터 값을 전송할 수 있다. 페이지 버퍼 (1222)는 데이터가 메모리 어레이 (1202)의 관련 부분으로 프로그래밍 되기 전에 메모리 디바이스 (1200) 외부의 하나 이상의 디바이스로부터 수신된 데이터를 저장할 수 있거나, 데이터가 메모리 디바이스 (1200) 외부의 하나 이상의 디바이스로 전송되기 전에 메모리 어레이 (1202)로부터 판독된 데이터를 저장할 수 있다.
열 디코더 (1214)는 하나 이상의 열 어드레스 신호 (CSEL1-CSELn)로 어드레스 신호 (A0-AX)를 수신하여 디코딩할 수 있다. 선택기 (1224) (예를 들어, 선택 회로)는 열 선택 신호를 수신하고 메모리 셀 (1204)로부터 판독되거나 메모리 셀로 프로그래밍될 데이터의 값을 나타내는 페이지 버퍼 (1222)에서 데이터를 선택할 수 있다. 선택된 데이터는 제 2 데이터 라인 (1218)을 사용하여 페이지 버퍼 (1222)와 I/O 회로 (1226) 사이에서 전송될 수 있다.
메모리 제어 유닛 (1230)은 외부 소스 또는 서플라이 (예를 들어, 내부 또는 외부 배터리, AC-DC 컨버터 등)로부터 서플라이 전압 (Vcc) (1234) 및 음의 서플라이 (Vss) (1236) (예를 들어, 접지 전위)와 같은 양 및 음의 서플라이 신호를 수신할 수 있다. 특정 예들에서, 메모리 제어 유닛 (1230)은 양 또는 음의 서플라이 신호를 내부적으로 제공하기 위해 레귤레이터 (1228)를 포함할 수 있다.
저장 디바이스(Storage Device)
도 13은 하나 이상의 메모리 디바이스 (1306) (예를 들어, 여기에 개시된) 및 옵션 회로부 (1308)를 포함하는 다양한 실시예에 따른 메모리 모듈 (1300) (예를 들어, 메모리 카드)의 예시적인 블록도를 예시한다. 이 예에서 메모리 카드로서 예시되었지만, 다른 예에서, 메모리 모듈 (1300)은 범용 직렬 버스 (USB) 플래시 드라이브, 솔리드 스테이트 드라이브 (SSD) 등과 같은 하나 이상의 다른 유형의 메모리 모듈을 포함할 수 있다.
특정 예에서, 메모리 모듈 (1300)은 하나 이상의 메모리 디바이스 (1306) 및 복수의 컨택 (1304)을 저장하도록 구성된 하우징 (1302)을 포함할 수 있다. 복수의 컨택 (1304)은 하나 이상의 표준 인터페이스 (예를 들어, USB, 콤팩트플래시(CompactFlash)TM, 메모리 스틱(Memory Stick)TM, UFS 카드, SD 시큐어 디지털(Secure Digital)TM 등)의 형태일 수 있고, 표준에 따라 하나 이상의 호스트 디바이스에 메모리 모듈 (1300)의 하나 이상의 메모리 디바이스 (1306)에 대한 액세스를 제공할 수 있다. 특정 애플리케이션들에 있어서, 하우징 (1302)은 필요하지 않다.
옵션의 회로부 (1308)는 원하는 대로 하나 이상의 메모리 디바이스 (1306)에 액세스 또는 관리를 보조하도록 구성된 펌웨어를 갖는 하나 이상의 회로, 이산 컴포넌트, 제어기 또는 프로세서를 포함할 수 있다.
시스템 컴포넌트
도 14는 본 발명의 실시예에 따른 메모리 디바이스 (1407)를 포함하는 적어도 하나의 칩 또는 칩 어셈블리 (1404)를 통합하는 정보 핸들링 시스템 (1400)의 예시적인 블록도를 예시한다. 예를 들어, 메모리 디바이스 (1407)는 복수의 적층된 메모리 셀 스트링 어레이를 포함할 수 있다.
도 14에 도시된 정보 핸들링 시스템 (1400)은 데스크탑 또는 랩탑 컴퓨터, 태블릿 컴퓨터, 모바일 전자 디바이스 또는 스마트 폰, 게임 콘솔, 차량 또는 항공기, 또는 하나 이상의 다른 전자 디바이스 또는 전자 디바이스 컴포넌트와 같은 전자 컴퓨팅 디바이스를 포함할 수 있다.
정보 핸들링 시스템 (1400)은 정보 핸들링 시스템 (1400)의 다양한 컴포넌트에 걸쳐 통신을 제공하도록 구성된 시스템 버스 (1402)를 포함한다. 시스템 버스 (1402)는 단일 버스 또는 버스의 조합으로 구현될 수 있다.
칩 어셈블리 (1404)는 프로세서 (1406), 하나 이상의 추가 로직 칩 (1408), 또는 하나 이상의 다른 컴포넌트들을 포함할 수 있다. 하나 이상의 추가 로직 칩들 (1408)은 무엇보다도 아날로그-디지털 컨버터 (ADC), 또는 ASIC (application-specific integrated circuit) 등과 같은 하나 이상의 다른 회로를 포함할 수 있다.
정보 핸들링 시스템 (1400)은 외부 메모리와 같은 하나 이상의 외부 컴포넌트(1411)를 포함할 수 있고, 이는 결국 하나 이상의 하드 드라이브 등과 같은 모듈식 메모리 (1412), 하나 이상의 착탈 가능한 매체 (1413) 또는 착탈 가능한 주변 기기 (1415) 예컨대, 콤팩트 디스크 (CD), 디지털 비디오 디스크 (DVD), 플래시 드라이브 등을 포함할 수 있다. 특정 예들에서, 본 출원에 설명된 하나 이상의 메모리 디바이스는 하나 이상의 외부 컴포넌트 (1411) 일 수 있다.
정보 핸들링 시스템 (1400)은 또한 디스플레이 (1409), 키보드/제어기 (1414) (예를 들어, 마우스, 터치 스크린, 터치 패드 또는 다른 사용자 입력 디바이스), 또는 하나 이상의 다른 주변기기 컴포넌트(1410) (예를 들어, 스피커, 마이크로폰, 카메라 등)를 포함할 수 있다.
도 17은 본 출원에서 논의된 기술들 (예를 들어, 방법론들) 중 임의의 하나 이상이 수행할 수 있는 예시적인 기계 (1700)의 블록도를 예시한다. 기계는 정보 핸들링 시스템(1400)의 다른 예일 수 있다. 대안적인 실시예에서, 기계 (1700)는 독립형 디바이스로서 작동할 수 있거나 다른 기계에 연결 (예를 들어, 네트워킹화된)될 수 있다. 기계 (1700)의 컴포넌트는 메모리 디바이스 (예를 들어, 프로세서, RAM, 스토리지, 버스 등)에 존재할 수 있다. 기계(1700)는 UFS 호스트 (110)를 구현할 수 있다. 네트워크 전개에서, 기계 (1700)는 서버-클라이언트 네트워크 환경에서의 서버 컴퓨터, 클라이언트 컴퓨터, 또는 이들의 용량에서 동작할 수 있다. 일 예에서, 기계 (1700)는 피어 투 피어 (P2P) (또는 다른 분산된) 네트워크 환경에서 피어 기계(peer machine)로서 작용할 수 있다. 기계(1700)는 개인용 컴퓨터 (PC), 태블릿 PC, 셋톱 박스 (STB), 개인 휴대 정보 단말기 (PDA), 휴대 전화, 사기 감지 서비스를 구현하는 서버, 스마트 폰, 웹 어플라이언스, 네트워크 라우터, 액세스 포인트, 스위치 또는 브리지 또는 해당 기계에서 취할 조치를 지정하는 명령 (순차적 또는 기타)을 실행할 수 있는 임의의 기계와 같은 컴퓨팅 디바이스일 수 있다. 또한, 단일 기계 만이 도시되어 있지만, "기계(machine)"이라는 용어는 또한 본 출원에서 논의된 하나 이상의 방법론 예컨대, 클라우드 컴퓨팅, SaaS (Software as a Service), 다른 컴퓨터 클러스터 구성 등을 수행하기 위해 명령 세트 (또는 다수의 세트)를 개별적으로 또는 공동으로 실행하는 임의의 기계 컬렉션을 포함하는 것으로 간주되어야 한다.
본 출원에 설명된 바와 같은 예는 로직 또는 다수의 컴포넌트, 모듈 또는 메커니즘 (이하 "모듈")을 포함하거나 동작할 수 있다. 모듈은 특정 동작을 수행할 수 있는 유형의 엔티티 (예를 들어, 하드웨어)이며 특정 방식으로 구성 또는 배열될 수 있다. 일 예에서, 회로는 모듈로서 지정된 방식으로 (예를 들어, 내부적으로 또는 다른 회로와 같은 외부 엔티티에 대하여) 배열될 수 있다. 일 예에서, 하나 이상의 컴퓨터 시스템 (예를 들어, 독립형, 클라이언트 또는 서버 컴퓨터 시스템) 또는 하나 이상의 하드웨어 프로세서의 전체 또는 일부는 지정된 동작을 수행하도록 작동하는 모듈로서 펌웨어 또는 소프트웨어 (예를 들어, 명령, 애플리케이션 부분 또는 애플리케이션)에 의해 구성될 수 있다. 일 예에서, 소프트웨어는 기계 판독 가능한 매체 상에 상주할 수 있다. 일 예에서, 소프트웨어는 모듈의 하지의(underlying) 하드웨어에서 실행될 때 하드웨어가 지정된 동작을 수행하게 한다.
따라서, 용어 "모듈"은 유형의 엔티티를 포함하는 것으로 이해되며, 지정된 방식으로 동작하거나 또는 본 출원에서 설명된 임의의 동작의 전부 또는 일부를 수행하기 위해 물리적으로 구성, 구체적으로 구성 (예를 들어, 하드웨어에 내장된) 또는 임시로(예를 들어, 일시적으로) 구성 (예를 들어, 프로그래밍)된 엔티티이어야 한다. 모듈이 임시로 구성되는 예를 고려하면 각각의 모듈을 임의의 한 순간에 인스턴스화할 필요는 없다. 예를 들어, 모듈이 소프트웨어를 사용하여 구성된 범용 하드웨어 프로세서를 포함하는 경우, 범용 하드웨어 프로세서는 상이한 시간에 각각 상이한 모듈로서 구성될 수 있다. 따라서, 소프트웨어는 예를 들어, 한 시점에서 특정 모듈을 구성하고 다른 시점에서 다른 모듈을 구성하도록 프로세서를 구성할 수 있다.
기계 (예를 들어, 컴퓨터 시스템) (1700)은 하드웨어 프로세서 (1702) (예를 들어, 중앙 처리 유닛 (CPU), 그래픽 처리 유닛 (GPU), 하드웨어 프로세서 코어, 또는 이들의 임의의 조합), 메인 메모리 (1704) 및 정적 메모리 (1706)를 포함할 수 있고, 이들의 일부 또는 전부는 인터링크 (예를 들어, 버스) (1708)를 통해 서로 통신할 수 있다. 기계 (1700)는 디스플레이 유닛 (1710), 알파벳-숫자 입력 디바이스 (1712) (예를 들어, 키보드) 및 사용자 인터페이스 (UI) 내비게이션 디바이스 (1714) (예를 들어, 마우스)를 더 포함할 수 있다. 일 예에서, 디스플레이 유닛 (1710), 입력 디바이스 (1712) 및 UI 내비게이션 디바이스 (1714)는 터치 스크린 디스플레이일 수 있다. 기계 (1700)는 저장 디바이스 (예를 들어, 드라이브 유닛) (1716), 신호 생성 디바이스(1718) (예를 들어, 스피커), 네트워크 인터페이스 디바이스 (1720), 및 하나 이상의 센서 (1721) 예컨대, GPS (global positioning system) 센서, 나침반, 가속도계 또는 기타 센서를 더 포함할 수 있다. 기계 (1700)는 하나 이상의 주변 디바이스 (예를 들어, 프린터, 카드 리더기 등)와 통신하거나 제어하기 위해 출력 제어기 (1728) 예컨대, 직렬 (예를 들어, 범용 직렬 버스 (USB), 병렬 또는 다른 유선 또는 무선 (예를 들어, 적외선 (IR), 근거리 무선 통신 (NFC) 등)) 연결을 포함할 수 있다.
저장 디바이스 (1716)는 본 출원에서 설명된 기술 또는 기능 중 임의의 하나 이상에 의해 구현되거나 이용되는 하나 이상의 데이터 구조 또는 명령 (1724) (예를 들어, 소프트웨어)의 세트가 저장되는 기계 판독 가능한 매체 (1722)를 포함할 수 있다. 명령(1724)은 또한 기계 (1700)에 의해 실행되는 동안 메인 메모리 (1704) 내에, 정적 메모리 (1706) 내에, 또는 하드웨어 프로세서 (1702) 내에 완전히 또는 적어도 부분적으로 상주할 수 있다. 일 예에서, 하드웨어 프로세서 (1702), 메인 메모리 (1704), 정적 메모리 (1706) 또는 저장 디바이스(1716)의 하나 또는 임의의 조합은 기계 판독 가능한 매체를 구성할 수 있다.
기계 판독 가능한 매체 (1722)가 단일 매체로서 도시되어 있지만, "기계 판독 가능한 매체"라는 용어는 하나 이상의 명령(1724)을 저장하도록 구성된 단일 매체 또는 다수의 매체 (예를 들어, 중앙 집중식 또는 분산 데이터베이스, 및/또는 관련 캐시 및 서버)를 포함할 수 있다.
"기계 판독 가능한 매체"라는 용어는 기계 (1700)에 의한 실행을 위한 명령을 저장, 인코딩 또는 운반할 수 있고 기계 (1700)가 본 개시의 기술 중 임의의 하나 이상을 수행하게 하거나 또는 이러한 명령에 의해 사용되거나 이와 관련된 데이터 구조를 저장, 인코딩 또는 운반할 수 있는 임의의 매체를 포함할 수 있다. 비 제한적인 기계 판독 가능한 매체 예는 솔리드 스테이트 메모리, 및 광 및 자기 매체를 포함할 수 있다. 기계 판독 가능한 매체의 특정 예는 비 휘발성 메모리 예컨대, 반도체 메모리 디바이스 (예를 들어, EPROM (Electrically Programmable Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory)) 및 플래시 메모리 디바이스; 내부 하드 디스크 및 착탈 가능한 디스크와 같은 자기 디스크; 광 자기 디스크; 랜덤 액세스 메모리 (RAM); 솔리드 스테이트 드라이브 (SSD); 및 CD-ROM 및 DVD-ROM 디스크를 포함할 수 있다. 일부 예들에서, 기계 판독 가능한 매체는 비 일시적 기계 판독 가능한 매체를 포함할 수 있다. 일부 예들에서, 기계 판독 가능한 매체는 일시적 전파 신호가 아닌 기계 판독 가능한 매체를 포함할 수 있다.
명령들 (1724)은 또한 네트워크 인터페이스 디바이스 (1720)를 통해 전송 매체를 사용하여 통신 네트워크 (1726)를 통해 전송되거나 수신될 수 있다. 기계 (1700)는 다수의 전송 프로토콜 (예를 들어, 프레임 릴레이, 인터넷 프로토콜 (IP), 전송 제어 프로토콜 (TCP), 사용자 데이터 그램 프로토콜 (UDP), 하이퍼 텍스트 전송 프로토콜 (HTTP) 등) 중 임의의 하나를 이용하여 하나 이상의 다른 기계들과 통신할 수 있다. 예시적인 통신 네트워크는 그 중에서도 근거리 통신망 (LAN), 광역 통신망 (WAN), 패킷 데이터 네트워크 (예를 들어, 인터넷), 이동 전화 네트워크 (예를 들어, 셀룰러 네트워크), POTS(Plain Old Telephone) 네트워크, 무선 데이터 네트워크 (예를 들어, Wi-Fi®로 알려진 IEEE (Institute of Electrical and Electronics Engineers) 802.11 표준 계열, WiMax®로 알려진 IEEE 802.16 표준 계열), IEEE 802.15.4 표준 계열, LTE (Long Term Evolution) 표준 계열, UMTS (Universal Mobile Telecommunications System) 표준 계열, P2P (Peer-to-Peer) 네트워크 등을 포함할 수 있다. 일 예에서, 네트워크 인터페이스 디바이스 (1720)는 통신 네트워크 (1726)에 연결하기 위한 하나 이상의 물리적 인 잭 (예를 들어, 이더넷, 동축 또는 전화 잭) 또는 하나 이상의 안테나를 포함할 수 있다. 예를 들어, 네트워크 인터페이스 디바이스 (1720)는 단일 입력 다중 출력 (SIMO), 다중 입력 다중 출력 (MIMO) 또는 다중 입력 단일 출력 (MISO) 기술 중 적어도 하나를 사용하여 무선으로 통신하기 위한 복수의 안테나를 포함할 수 있다. 일부 예에서, 네트워크 인터페이스 디바이스 (1720)는 다수의 사용자 MIMO 기술을 사용하여 무선으로 통신할 수 있다.
추가 사항
상기 상세한 설명은 상세한 설명의 일부를 형성하는 첨부 도면에 대한 참조를 포함한다. 도면은 예시로서 본 발명이 실행될 수 있는 특정 실시예를 도시한다. 이들 실시예는 본 출원에서”예(example)"라고도 지칭된다. 이러한 예는 도시되거나 설명된 것 외에 엘리먼트를 포함할 수 있다. 그러나, 본 발명자들은 또한 도시되거나 설명된 엘리먼트들 만이 제공되는 예들을 고려한다. 더욱이, 본 발명자들은 또한 본 출원에 도시되거나 기술된 특정 예 (또는 하나 이상의 양태)와 관련하여 또는 다른 예(또는 하나 이상의 양태)와 관련하여 도시되거나 설명된 엘리먼트 (또는 그 하나 이상의 양태)의 임의의 조합 또는 치환을 사용하는 예를 고려한다.
본 문서에서 지칭된 모든 간행물, 특허 및 특허 문서는 개별적으로 참조로 포함된 것처럼 본 출원에 그것들 전체가 참조로 통합된다. 이 문서와 참조로 통합된 문서 사이에 일관성이 없는 사용이 있는 경우, 통합된 참조 (들)의 사용법은 이 문서의 사용법을 보완하는 것으로 간주되어야 한다; 양립할 수 없는 불일치의 경우 이 문서의 사용법이 제어된다.
본 문서에서, "a” 또는 "an"이라는 용어는 특허 문서에서 전형적으로 사용되는 "적어도 하나” 또는 "하나 이상"의 사용 또는 다른 경우와 무관하게 하나 이상을 포함하는 것으로 사용된다. 본 문서에서, 용어 “또는"은 달리 지시되지 않는 한, 비 배타적이거나 "A 또는 B"가 "A이지만 B가 아닌", "B이지만 A가 아닌” 및 "A 및 B"를 포함하는 것으로 사용된다. 첨부된 청구 범위에서, "포함하는” 및 "포함하는"이라는 용어는 "포함하는” 및 "여기서"의 각각의 용어의 영어와 동등한 의미로 사용된다. 또한, 다음의 청구 범위에서, "포함하는” 및 "포함하는"이라는 용어는 개방형이며, 즉 청구 범위에서 그러한 용어 뒤에 열거된 것 외에 엘리먼트를 포함하는 시스템, 디바이스, 물품 또는 프로세스는 해당 청구 범위에 속하는 것으로 여전히 간주된다. 또한, 다음의 청구 범위에서, "제 1", "제 2” 및"제 3"등의 용어는 단지 라벨로서 사용되며, 이들의 목적에 수치적 요건을 부과하도록 의도되지 않는다.
다양한 예에서, 본 출원에서 설명된 컴포넌트, 제어기, 프로세서, 유닛, 엔진 또는 테이블은 무엇보다도 물리적 디바이스에 저장된 물리적 회로 또는 펌웨어를 포함할 수 있다. 본 출원에 사용된 "프로세서"는 임의 유형의 컴퓨터 회로 예컨대, 마이크로 프로세서, 마이크로컨트롤러, 그래픽 프로세서, 디지털 신호 프로세서 (DSP), 또는 프로세서 또는 멀티 코어 디바이스 그룹을 포함하는 임의의 다른 유형의 프로세서 또는 처리 회로를 의미한다.
본 출원에 사용된 용어 "수평"은 임의의 시점에서 기판의 실제 배향과 무관하게 웨이퍼 또는 다이 아래에 놓인 것과 같은 기판의 통상적인 평면 또는 표면에 평행한 평면으로 정의된다. "수직"이라는 용어는 상기 정의된 수평에 수직인 방향을 지칭한다. "상에 (on)", "위에 (over)” 및 "아래에 (under)"와 같은 전치사는 기판의 배향에 관계없이 기판의 상부 또는 노출된 표면 상에 있는 통상의 평면 또는 표면에 대하여 정의되며; "상에 (on)"은 "상에 (on)"있는 다른 구조물에 대한 하나의 구조물의 직접적인 컨택을 제안하도록 의도된 반면 (반대되는 표시가 없는 경우); "위에” 및 "아래에"라는 용어는 구체적으로 식별되지 않는 한, 식별된 구조물들 사이의 직접적인 컨택을 명시적으로 포함하지만 이에 한정되지 않는 구조물 (또는 층, 피처 등)의 상대적 배치를 식별하도록 의도된다. 따라서, 유사하게, 설사 이러한 구조는 수평 방향이 아니라 참조된 구조에 대해 수직으로 연장된다 하더라도 어떤 시점에서 논의중인 구조의 가장 바깥 부분 인 경우에도 구조가 참조된 구조를 "위에" 있을 수 있기 때문에, "위” 및 "아래"라는 용어는 수평 방향으로 제한되지 않는다.
용어 "웨이퍼” 및 "기판"은 본 출원에서 일반적으로 집적 회로가 형성되는 임의의 구조 및 다양한 집적 회로 제조 단계 동안의 이러한 구조를 지칭하기 위해 사용된다. 그러므로, 이하의 상세한 설명은 제한적인 의미로 취해지지 않아야 하며, 다양한 실시예의 범위는 그러한 청구 범위가 부여되는 등가물의 전체 범위와 함께 첨부된 청구 범위에 의해서만 정의된다.
본 개시에 따라 본 출원에 기술된 다양한 실시예는 메모리 셀의 수직 구조 (예를 들어, 메모리 셀의 NAND 스트링)를 이용하는 메모리를 포함한다. 본 출원에 사용되는, 방향성 형용사는 메모리 셀이 형성되는 기판의 표면에 대해 취해질 것이다 (즉, 수직 구조는 기판 표면으로부터 연장되는 것으로 취해질 것이고, 수직 구조의 바닥 단부는 기판 표면에 가장 가까운 단부로 취해질 것이고 및 수직 구조의 상단 단부는 기판 표면으로부터 가장 먼 단부로 취해질 것이다).
본 출원에서 사용되는, 수평, 수직, 법선, 평행, 직교 등과 같은 방향성 형용사는 상대적인 방향을 지칭할 수 있으며, 달리 지칭되지 않는 한 특정 기하학적 특성에 대한 엄격한 준수를 요구하지는 않는다. 예를 들어, 본 출원에서 사용되는, 수직 구조물은 기판의 표면에 수직일 필요는 없지만, 대신 전체적으로 기판의 표면에 수직일 수 있고, 기판의 표면과 예각을 형성할 수 있다 (예를 들어, 60 와 120도 사이 등).
본 출원에 설명된 일부 실시예에서, 상이한 도핑 구성이 선택 게이트 소스 (SGS), 제어 게이트 (CG) 및 선택 게이트 드레인 (SGD)에 적용될 수 있으며, 이들 각각은 이 예에서 또는 이러한 티어들 (예를 들어, 폴리실리콘 등)은 에칭 용액에 노출될 때 상이한 에칭 속도를 가질 수 있도록 폴리실리콘으로 형성되거나 또는 적어도 포함한다. 예를 들어, 3D 반도체 디바이스에서 모놀리식 필라를 형성하는 프로세스에서, SGS 및 CG는 리세스를 형성할 수 있는 반면, SGD는 덜 리세스되거나 리세스되지 않을 수 있다. 이러한 도핑 구성은 에칭 용액 (예를 들어, 테트라메틸암모늄 하이드록사이드 (TMCH))을 사용함으로써 3D 반도체 디바이스에서 별개의 티어 (예를 들어, SGS, CG 및 SGD)으로의 선택적 에칭을 가능하게 할 수 있다.
본 출원에서 사용되는 메모리 셀을 동작시키는 것은 메모리 셀로부터 판독, 기록 또는 소거를 포함한다. 메모리 셀을 의도된 상태로 배치하는 동작은 본 출원에서 "프로그래밍"으로 지칭되며, 메모리 셀에 기록하거나 소거하는 것을 포함할 수 있다 (즉, 메모리 셀은 소거된 상태로 프로그래밍될 수 있다).
본 개시의 하나 이상의 실시예들에 따르면, 메모리 디바이스의 내부 또는 외부에 위치된 메모리 제어기 (예를 들어, 프로세서, 제어기, 펌웨어 등)는 마모 사이클 또는 마모 상태 (예를 들어, 마모 사이클 기록, 발생하는 메모리 디바이스의 동작 카운트, 메모리 디바이스의 동작 추적, 마모 상태에 대응하는 메모리 디바이스 특성 평가 등)의 양을 결정 (예를 들어, 선택, 설정, 조정, 컴퓨팅, 변경, 클리어, 통신, 적응, 도출, 정의, 활용, 수정, 적용 등) 할 수 있다.
본 개시의 하나 이상의 실시예들에 따르면, 메모리 액세스 디바이스는 각각의 메모리 동작마다 마모 사이클 정보를 메모리 디바이스에 제공하도록 구성될 수 있다. 메모리 디바이스 제어 회로부 (예를 들어, 제어 로직)는 마모 사이클 정보에 대응하는 메모리 디바이스 성능 변화를 보상하도록 프로그래밍될 수 있다. 메모리 디바이스는 마모 사이클 정보를 수신하고, 마모 사이클 정보에 응답하여 하나 이상의 동작 파라미터 (예를 들어, 값, 특성)를 결정할 수 있다.
어떤 엘리먼트가 다른 엘리먼트에 "상에" 있거나 "연결되어" 있다거나 "결합되어" 있다고 지칭된 때에는, 다른 엘리먼트에 직접 연결되거나 다른 엘리먼트에 연결될 수 있거나, 중간에 다른 엘리먼트가 존재할 수 있음을 이해할 것이다. 대조적으로, 어떤 엘리먼트가 다른 엘리먼트에 "직접 상에" 있다거나 "직접 연결되어" 있다거나 "직접 결합되어" 있다고 지칭된 때에는, 중간에 다른 엘리먼트가 존재하지 않는 것으로 이해되어야 할 것이다. 두 개의 엘리먼트가 도면에 이들을 연결하는 선으로 도시되어 있는 경우, 달리 지시되지 않는 한, 두 개의 엘리먼트는 결합되거나 직접 결합될 수 있다.
상기 설명은 예시적인 것이며 한정적이지 않다. 예를 들어, 전술한 예 (또는 이의 하나 이상의 양태)는 서로 조합하여 사용될 수 있다. 상기 설명을 검토할 때 당업자와 같은 다른 실시예들이 사용될 수 있다. 요약은 독자가 기술 개시의 본질을 신속하게 확인할 수 있도록 37 C.F.R §1.72 (b)를 준수하도록 제공된다. 청구 범위의 범위 또는 의미를 해석하거나 한정하는데 사용되지 않을 것이라는 이해와 함께 제출된다. 또한, 상기 상세한 설명에서, 다양한 특징들이 함께 그룹화되어 본 개시를 간소화할 수 있다. 이는 청구되지 않은 개시된 특징이 임의의 청구항에 필수적임을 의도하는 것으로 해석되어서는 안 된다. 오히려, 본 개시의 주제는 특정 개시된 실시예의 모든 특징보다 적을 수 있다. 따라서, 이하의 청구 범위는 상세한 설명에 포함되며, 각각의 청구 범위는 그 자체가 별도의 실시예로서 있고, 이러한 실시예는 다양한 조합 또는 치환으로 서로 결합될 수 있는 것으로 고려된다. 본 개시의 범위는 첨부된 청구 범위를 참조하여 그러한 청구 범위가 부여되는 등가물의 전체 범위와 함께 결정되어야 한다.
다른 사항 및 예들
예 1은 호스트상에 구현된 방법으로서, 상기 방법은 : 상기 호스트 상에서 실행되는 이니시에이터(initiator)에 의해, 비 휘발성 메모리 어레이의 보호된 메모리 영역에 대한 액세스 요청을 메모리 디바이스로 호스트 인터페이스를 통해 발송하는 단계로서, 상기 요청은 상기 이니시에이터의 식별자를 포함하고, 상기 보호된 메모리 영역은 상기 보호된 메모리 영역에 기록하기 위해서 기록 카운터 및 키(key)로부터 도출된 비밀 값을 요구하는, 상기 발송하는 단계; 상기 호스트 인터페이스를 통해 결과를 수신하는 단계; 상기 결과가 상기 이니시에이터의 식별자와 상이한 제 2 식별자를 포함하는 지를 결정하는 단계; 및 상기 결과가 상기 제 2 식별자를 포함한다는 결정에 응답하여, 상기 결과가 상기 액세스 요청에 응답하지 않는지를 결정하는 단계를 포함한다.
예 2에서, 예 1의 주제에 있어서, 상기 결과가 상기 액세스 요청에 응답하지 않는다는 결정에 응답하여 다른 액세스 요청을 발송하는 단계를 포함한다.
예 3에서, 예 1-2의 주제에 있어서, 상기 결과는 기록 카운터 상태(count status) 및 동작 상태(operation status)를 포함한다.
예 4에서, 예 3의 주제에 있어서, 상기 기록 카운터 상태가 상기 결과의 제 1 영역에 위치되고, 상기 동작 상태가 상기 결과의 제 2 영역에 위치되고, 상기 이니시에이터의 식별자가 상기 결과의 제 3 영역에 위치된다.
예 5에서, 예 1-4의 주제에 있어서, 상기 보호된 메모리 영역은 리플레이 보호된 메모리 블록 (RPMB : Replay Protected Memory Block)이다.
예 6에서, 예 1-5의 주제에 있어서, 상기 호스트 인터페이스는 범용 플래시 스토리지 (UFS) 인터페이스이다.
예 7은 호스트 기계에 의해 실행될 때, 상기 기계로 하여금 이하의 동작을 수행하게 하는 명령을 저장하는 기계 판독 가능한 매체이고, 상기 동작은 : 상기 호스트 상에서 실행되는 이니시에이터(initiator)에 의해, 비 휘발성 메모리 어레이의 보호된 메모리 영역에 대한 액세스 요청을 메모리 디바이스로 호스트 인터페이스를 통해 발송하는 단계로서, 상기 요청은 상기 이니시에이터의 식별자를 포함하고, 상기 보호된 메모리 영역은 상기 보호된 메모리 영역에 기록하기 위해서 기록 카운터 및 키(key)로부터 도출된 비밀 값을 요구하는, 상기 발송하는 단계; 상기 호스트 인터페이스를 통해 결과를 수신하는 단계; 상기 결과가 상기 이니시에이터의 식별자와 상이한 제 2 식별자를 포함하는 지를 결정하는 단계; 및 상기 결과가 상기 제 2 식별자를 포함한다는 결정에 응답하여, 상기 결과가 상기 액세스 요청에 응답하지 않는지를 결정하는 단계를 포함한다.
예 8에서, 예 7의 주제에 있어서, 상기 결과가 상기 액세스 요청에 응답하지 않는다는 결정에 응답하여 다른 액세스 요청을 발송하는 단계를 포함한다.
예 9에서, 예 7-8의 주제에 있어서, 상기 결과는 기록 카운터 상태 및 동작 상태를 포함한다.
예 10에서, 예 9의 주제에 있어서, 상기 기록 카운터 상태가 상기 결과의 제 1 영역에 위치되고, 상기 동작 상태가 상기 결과의 제 2 영역에 위치되고, 상기 이니시에이터의 식별자가 상기 결과의 제 3 영역에 위치된다.
예 11에서, 예 7-10의 주제에 있어서, 상기 보호된 메모리 영역은 리플레이 보호된 메모리 블록 (RPMB : Replay Protected Memory Block)이다.
예 12에서, 예 7-11의 주제에 있어서, 상기 호스트 인터페이스는 범용 플래시 스토리지 (UFS) 인터페이스이다.
예 13은 호스트 컴퓨팅 디바이스이고, 상기 호스트 컴퓨팅 디바이스는 하나 이상의 하드웨어 프로세서들; 메모리로서, 상기 메모리는 상기 하나 이상의 하드웨어 프로세서에 의해 실행될 때, 상기 하나 이상의 하드웨어 프로세서들로 하여금 이하의 동작들을 수행하게 하는 명령들을 저장하는, 상기 메모리를 포함하고, 상기 동작은 : 상기 호스트 상에서 실행되는 이니시에이터(initiator)에 의해, 비 휘발성 메모리 어레이의 보호된 메모리 영역에 대한 액세스 요청을 메모리 디바이스로 호스트 인터페이스를 통해 발송하는 단계로서, 상기 요청은 상기 이니시에이터의 식별자를 포함하고, 상기 보호된 메모리 영역은 상기 보호된 메모리 영역에 기록하기 위해서 기록 카운터 및 키(key)로부터 도출된 비밀 값을 요구하는, 상기 발송하는 단계; 상기 호스트 인터페이스를 통해 결과를 수신하는 단계; 상기 결과가 상기 이니시에이터의 식별자와 상이한 제 2 식별자를 포함하는 지를 결정하는 단계; 및 상기 결과가 상기 제 2 식별자를 포함한다는 결정에 응답하여, 상기 결과가 상기 액세스 요청에 응답하지 않는지를 결정하는 단계를 포함한다.
예 14에서, 예 13의 주제에 있어서, 상기 결과가 상기 액세스 요청에 응답하지 않는다는 결정에 응답하여 다른 액세스 요청을 발송하는 단계를 포함한다.
예 15에서, 예 13-14의 주제에 있어서, 상기 결과는 기록 카운터 상태 및 동작 상태를 포함한다.
예 16에서, 예 15의 주제에 있어서, 상기 기록 카운터 상태가 상기 결과의 제 1 영역에 위치되고, 상기 동작 상태가 상기 결과의 제 2 영역에 위치되고, 상기 이니시에이터의 식별자가 상기 결과의 제 3 영역에 위치된다.
예 17에서, 예 13-16의 주제에 있어서, 상기 보호된 메모리 영역은 리플레이 보호된 메모리 블록 (RPMB : Replay Protected Memory Block)이다.
예 18에서, 예 13-17의 주제에 있어서, 상기 호스트 인터페이스는 범용 플래시 스토리지 (UFS) 인터페이스이다.
예 19는 호스트 디바이스이고, 상기 호스트 디바이스는 상기 호스트 상에서 실행되는 이니시에이터(initiator)에 의해, 비 휘발성 메모리 어레이의 보호된 메모리 영역에 대한 액세스 요청을 메모리 디바이스로 호스트 인터페이스를 통해 발송하기 위한 수단으로서, 상기 요청은 상기 이니시에이터의 식별자를 포함하고, 상기 보호된 메모리 영역은 상기 보호된 메모리 영역에 기록하기 위해서 기록 카운터 및 키(key)로부터 도출된 비밀 값을 요구하는, 상기 발송하기 위한 수단; 상기 호스트 인터페이스를 통해 결과를 수신하기 위한 수단; 상기 결과가 상기 이니시에이터의 식별자와 상이한 제 2 식별자를 포함하는 지를 결정하기 위한 수단; 및 상기 결과가 상기 제 2 식별자를 포함한다는 결정에 응답하여, 상기 결과가 상기 액세스 요청에 응답하지 않는지를 결정하기 위한 수단을 포함한다.
예 20에서, 예 19의 주제에 있어서, 상기 결과가 상기 액세스 요청에 응답하지 않는다는 결정에 응답하여 다른 액세스 요청을 발송하기 위한 수단을 포함한다.
예 21에서, 예 19-20의 주제에 있어서, 상기 결과는 기록 카운터 상태 및 동작 상태를 포함한다.
예 22에서, 예 21의 주제에 있어서, 상기 기록 카운터 상태가 상기 결과의 제 1 영역에 위치되고, 상기 동작 상태가 상기 결과의 제 2 영역에 위치되고, 상기 이니시에이터의 식별자가 상기 결과의 제 3 영역에 위치된다.
예 23에서, 예 19-22의 주제에 있어서, 상기 보호된 메모리 영역은 리플레이 보호된 메모리 블록 (RPMB : Replay Protected Memory Block)이다.
예 24에서, 예 19-23의 주제에 있어서, 상기 호스트 인터페이스는 범용 플래시 스토리지 (UFS) 인터페이스이다.
예 25는 메모리 제어기에 의해 구현되는 방법으로서, 상기 방법은,비 휘발성 메모리 어레이의 보호된 메모리 영역에 대한 액세스 요청을 호스트로부터 호스트 인터페이스를 통해 수신하는 단계로서, 상기 요청은 상기 요청의 소스의 식별자를 포함하고, 상기 보호된 메모리 영역은 상기 보호된 메모리 영역에 기록하기 위해서 기록 카운터 및 키(key)로부터 도출된 비밀 값을 요구하는, 상기 수신하는 단계; 결과 레지스터의 일부를 상기 소스의 식별자로 설정하는 단계; 상기 비 휘발성 메모리 어레이의 보호된 영역에 액세스하는 단계; 및 상기 보호된 영역 액세스의 결과를 상기 소스의 식별자와 함께 결과 레지스터에 배치하는 단계를 포함한다.
예 26에서, 예 25의 주제에 있어서, 상기 보호된 메모리 영역은 리플레이 보호된 메모리 블록 (RPMB : Replay Protected Memory Block)이다.
예 27에서, 예 25-26의 주제에 있어서, 상기 결과 레지스터는 기록 카운터 상태 및 동작 상태를 포함한다.
예 28에서, 예 27의 주제에 있어서, 상기 기록 카운터 상태는 상기 결과 레지스터의 제 1 영역에 배치되고, 상기 동작 상태는 상기 결과 레지스터의 제 2 영역에 배치되고, 상기 소스의 식별자는 상기 결과 레지스터의 제 3 영역에 배치된다.
예 29에서, 예 25-28의 주제에 있어서, 상기 호스트의 제 2 소스로부터 상기 호스트 인터페이스를 통해, 상기 리플레이 보호된 메모리 블록 (RPMB) 영역에 대한 제 2 액세스 요청을 수신하는 단계로서, 상기 요청은 제 2 소스의 제 2 식별자를 갖는, 상기 제 2 소스로부터 수신하는 단계; 상기 결과 레지스터의 일부를 상기 제 2 식별자로 설정하는 단계; 상기 비 휘발성 메모리 어레이의 보호된 영역에 액세스하는 단계; 상기 보호된 영역 액세스의 결과를 상기 제 2 식별자와 함께 상기 결과 레지스터에 배치하는 단계를 포함한다.
예 30에서, 예 29의 주제에 있어서, 상기 결과 레지스터의 일부를 상기 제 2 식별자로 설정한 이후에 상기 소스로부터 결과 요청을 수신하는 단계; 상기 제 2 식별자를 갖는 상기 결과 레지스터의 컨텐츠를 상기 소스에 제공하는 단계로서, 상기 소스는 상기 결과 레지스터가 상기 제 2 식별자를 포함하는 것을 검출하는 것에 응답하여 에러 핸들링을 수행하는, 상기 제공하는 단계를 포함한다.
예 31에서, 예 25-30의 주제에 있어서, 상기 결과 레지스터의 일부는 상기 결과 레지스터의 응답 메시지 유형 레지스터이다.
예 32는 메모리 제어기에 의해 실행될 때, 상기 메모리 제어기로 하여금 이하의 동작을 수행하게 하는 명령을 저장하는 기계 판독 가능한 매체이고, 상기 동작은 비 휘발성 메모리 어레이의 보호된 메모리 영역에 대한 액세스 요청을 호스트로부터 호스트 인터페이스를 통해 수신하는 단계로서, 상기 요청은 상기 요청의 소스의 식별자를 포함하고, 상기 보호된 메모리 영역은 상기 보호된 메모리 영역에 기록하기 위해서 기록 카운터 및 키(key)로부터 도출된 비밀 값을 요구하는, 상기 수신하는 단계; 결과 레지스터의 일부를 상기 소스의 식별자로 설정하는 단계; 상기 비 휘발성 메모리 어레이의 보호된 영역에 액세스하는 단계; 및 상기 보호된 영역 액세스의 결과를 상기 소스의 식별자와 함께 결과 레지스터에 배치하는 단계를 포함한다.
예 33에서, 예 32의 주제에 있어서, 상기 보호된 메모리 영역은 리플레이 보호된 메모리 블록 (RPMB : Replay Protected Memory Block)이다.
예 34에서, 예 32-33의 주제에 있어서, 상기 결과 레지스터는 기록 카운터 상태 및 동작 상태를 포함한다.
예 35에서, 예 34의 주제에 있어서, 상기 기록 카운터 상태는 상기 결과 레지스터의 제 1 영역에 배치되고, 상기 동작 상태는 상기 결과 레지스터의 제 2 영역에 배치되고, 상기 소스의 식별자는 상기 결과 레지스터의 제 3 영역에 배치된다.
예 36에서, 예 32-35의 주제에 있어서, 상기 동작들은, 상기 호스트의 제 2 소스로부터 상기 호스트 인터페이스를 통해, 상기 리플레이 보호된 메모리 블록 (RPMB) 영역에 대한 제 2 액세스 요청을 수신하는 단계로서, 상기 요청은 제 2 소스의 제 2 식별자를 갖는, 상기 제 2 소스로부터 수신하는 단계; 상기 결과 레지스터의 일부를 상기 제 2 식별자로 설정하는 단계; 상기 비 휘발성 메모리 어레이의 보호된 영역에 액세스하는 단계; 상기 보호된 영역 액세스의 결과를 상기 제 2 식별자와 함께 상기 결과 레지스터에 배치하는 단계를 더 포함한다.
예 37에서, 예 36의 주제에 있어서, 상기 동작들은, 상기 결과 레지스터의 일부를 상기 제 2 식별자로 설정한 이후에 상기 소스로부터 결과 요청을 수신하는 단계; 상기 제 2 식별자를 갖는 상기 결과 레지스터의 컨텐츠를 상기 소스에 제공하는 단계로서, 상기 소스는 상기 결과 레지스터가 상기 제 2 식별자를 포함하는 것을 검출하는 것에 응답하여 에러 핸들링을 수행하는, 상기 제공하는 단계를 더 포함한다.
예 38에서, 예 32-37의 주제에 있어서, 상기 결과 레지스터의 일부는 상기 결과 레지스터의 응답 메시지 유형 레지스터이다.
예 39는 메모리 디바이스이고, 상기 메모리 디바이스는 비 휘발성 메모리 어레이; 메모리 제어기로서, 이하의 동작들을 수행하도록 구성된, 상기 메모리 제어기를 포함하고, 상기 동작은; 상기 비 휘발성 메모리 어레이의 보호된 메모리 영역에 대한 액세스 요청을 호스트로부터 호스트 인터페이스를 통해 수신하는 단계로서, 상기 요청은 상기 요청의 소스의 식별자를 포함하고, 상기 보호된 메모리 영역은 상기 보호된 메모리 영역에 기록하기 위해서 기록 카운터 및 키(key)로부터 도출된 비밀 값을 요구하는, 상기 수신하는 단계; 결과 레지스터의 일부를 상기 소스의 식별자로 설정하는 단계로서, 상기 보호된 메모리 영역은 상기 보호된 메모리 영역에 기록하기 위해 기록 카운터 및 상기 키로부터 도출된 비밀 값을 요구하는, 상기 설정하는 단계; 상기 비 휘발성 메모리 어레이의 보호된 영역에 액세스하는 단계; 및 상기 보호된 영역 액세스의 결과를 상기 소스의 식별자와 함께 결과 레지스터에 배치하는 단계를 포함한다.
예 40에서, 예 39의 주제에 있어서, 상기 보호된 메모리 영역은 리플레이 보호된 메모리 블록 (RPMB : Replay Protected Memory Block)이다.
예 41에서, 예 39-40의 주제에 있어서, 상기 결과 레지스터는 기록 카운터 상태 및 동작 상태를 포함한다.
예 42에서, 예 41의 주제에 있어서, 상기 기록 카운터 상태는 상기 결과 레지스터의 제 1 영역에 배치되고, 상기 동작 상태는 상기 결과 레지스터의 제 2 영역에 배치되고, 상기 소스의 식별자는 상기 결과 레지스터의 제 3 영역에 배치된다.
예 43에서, 예 39-42의 주제에 있어서, 상기 제어기는 이하의 동작을 수행하도록 더 구성된다: 상기 호스트의 제 2 소스로부터 상기 호스트 인터페이스를 통해, 상기 리플레이 보호된 메모리 블록 (RPMB) 영역에 대한 제 2 액세스 요청을 수신하는 단계로서, 상기 요청은 제 2 소스의 제 2 식별자를 갖는, 상기 제 2 소스로부터 수신하는 단계; 상기 결과 레지스터의 일부를 상기 제 2 식별자로 설정하는 단계; 상기 비 휘발성 메모리 어레이의 보호된 영역에 액세스하는 단계; 상기 보호된 영역 액세스의 결과를 상기 제 2 식별자와 함께 상기 결과 레지스터에 배치하는 단계.
예 44에서, 예 43의 주제에 있어서, 상기 제어기는 이하의 동작을 수행하도록 더 구성된다 : 상기 결과 레지스터의 일부를 상기 제 2 식별자로 설정한 이후에 상기 소스로부터 액세스 요청을 수신하는 단계; 상기 제 2 식별자를 갖는 상기 결과 레지스터의 컨텐츠를 상기 소스에 제공하는 단계로서, 상기 소스는 상기 결과 레지스터가 상기 제 2 식별자를 포함하는 것을 검출하는 것에 응답하여 에러 핸들링을 수행하는, 상기 제공하는 단계.
예 45에서, 예 39-44의 주제에 있어서, 상기 결과 레지스터의 일부는 상기 결과 레지스터의 응답 메시지 유형 레지스터이다.
예 46는 메모리 디바이스이고, 상기 메모리 디바이스는 비 휘발성 메모리 어레이의 보호된 메모리 영역에 대한 액세스 요청을 호스트로부터 호스트 인터페이스를 통해 수신하기 위한 수단으로서, 상기 요청은 상기 요청의 소스의 식별자를 포함하고, 상기 보호된 메모리 영역은 상기 보호된 메모리 영역에 기록하기 위해서 기록 카운터 및 키(key)로부터 도출된 비밀 값을 요구하는, 상기 수신하기 위한 수단; 결과 레지스터의 일부를 상기 소스의 제 2 식별자로 설정하기 위한 수단; 상기 비 휘발성 메모리 어레이의 보호된 영역에 액세스하기 위한 수단; 및 상기 보호된 영역 액세스의 결과를 상기 소스의 식별자와 함께 결과 레지스터에 배치하기 위한 수단을 포함한다.
예 47에서, 예 46의 주제에 있어서, 상기 보호된 메모리 영역은 리플레이 보호된 메모리 블록 (RPMB : Replay Protected Memory Block)이다.
예 48에서, 예 46-47의 주제에 있어서, 상기 결과 레지스터는 기록 카운터 상태 및 동작 상태를 포함한다.
예 49에서, 예 48의 주제에 있어서, 상기 기록 카운터 상태는 상기 결과 레지스터의 제 1 영역에 배치되고, 상기 동작 상태는 상기 결과 레지스터의 제 2 영역에 배치되고, 상기 소스의 식별자는 상기 결과 레지스터의 제 3 영역에 배치된다.
예 50에서, 예 46-49의 주제에 있어서, 상기 호스트의 제 2 소스로부터 상기 호스트 인터페이스를 통해, 상기 리플레이 보호된 메모리 블록 (RPMB) 영역에 대한 제 2 액세스 요청을 수신하기 위한 수단으로서, 상기 요청은 제 2 소스의 제 2 식별자를 갖는, 상기 제 2 소스로부터 수신하기 위한 수단; 상기 결과 레지스터의 일부를 상기 제 2 식별자로 설정하기 위한 수단; 상기 비 휘발성 메모리 어레이의 보호된 영역에 액세스하기 위한 수단; 및 상기 보호된 영역 액세스의 결과를 상기 제 2 식별자와 함께 상기 결과 레지스터에 배치하기 위한 수단을 포함한다.
예 51에서, 예 50의 주제에 있어서, 상기 결과 레지스터의 일부를 상기 제 2 식별자로 설정한 이후에 상기 소스로부터 액세스 요청을 수신하기 위한 수단; 및 상기 제 2 식별자를 갖는 상기 결과 레지스터의 컨텐츠를 상기 소스에 제공하기 위한 수단으로서, 상기 소스는 상기 결과 레지스터가 상기 제 2 식별자를 포함하는 것을 검출하는 것에 응답하여 에러 핸들링을 수행하는, 상기 소스에 제공하기 위한 수단을 포함한다.
예 52에서, 예 46-51 주제에 있어서, 상기 결과 레지스터의 일부는 상기 결과 레지스터의 응답 메시지 유형 레지스터이다.
예 53는 메모리 디바이스의 메모리 제어기에 의해 구현되는 방법으로서, 상기 방법은, 호스트 인터페이스를 통해 호스트 디바이스로부터 메모리 디바이스의 디바이스 디스크립터에 대한 요청을 수신하는 단계; 및 상기 디바이스 디스크립터를 상기 호스트 인터페이스를 통해 상기 호스트에 발송하는 단계로서, 상기 디바이스 디스크립터는 상기 메모리 디바이스의 지원되는 전압을 표시하도록 설정된 전압 서플라이 가용 출력 필드(voltage supply capability field)를 포함하고, 상기 지원되는 전압은 복수의 이산 전압으로부터 선택되고, 상기 호스트 디바이스는 상기 지원되는 전압을 이용하여 상기 메모리 디바이스에 적절한 전압을 공급하는, 상기 발송하는 단계를 포함한다.
예 54에서, 예 53의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 VCC 전압 가용 출력 필드를 포함한다.
예 55에서, 예 53-54의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 VCCQ 전압 가용 출력 필드를 포함한다.
예 56에서, 예 53-55의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 VCCQ2 전압 가용 출력 필드를 포함한다.
예 57에서, 예 53-56의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 상기 메모리 디바이스가 UFS (Universal Flash Storage) 버전 2.1 전압 레벨에 부합함을 나타낸다.
예 58에서, 예 53-57의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 상기 메모리 디바이스가 UFS (Universal Flash Storage) 버전 3.0 전압 레벨에 부합함을 나타낸다.
예 59는 메모리 디바이스이고, 상기 메모리 디바이스는 메모리 셀들의 어레이; 제어기로서, 이하의 동작들을 수행하도록 구성된, 상기 제어기를 포함하고, 상기 동작은 : 호스트 인터페이스를 통해 호스트 디바이스로부터 메모리 디바이스의 디바이스 디스크립터에 대한 요청을 수신하는 단계; 및 상기 디바이스 디스크립터를 상기 호스트 인터페이스를 통해 상기 호스트에 발송하는 단계로서, 상기 디바이스 디스크립터는 상기 메모리 디바이스의 지원되는 전압을 표시하도록 설정된 전압 서플라이 가용 출력 필드(voltage supply capability field)를 포함하고, 상기 지원되는 전압은 복수의 이산 전압으로부터 선택되고, 상기 호스트 디바이스는 상기 지원되는 전압을 이용하여 상기 메모리 디바이스에 적절한 전압을 공급하는, 상기 발송하는 단계를 포함한다.
예 60에서, 예 59의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 VCC 전압 가용 출력 필드를 포함한다.
예 61에서, 예 59-60의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 VCCQ 전압 가용 출력 필드를 포함한다.
예 62에서, 예 59-61의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 VCCQ2 전압 가용 출력 필드를 포함한다.
예 63에서, 예 59-62의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 상기 메모리 디바이스가 UFS (Universal Flash Storage) 버전 2.1 전압 레벨에 부합함을 나타낸다.
예 64에서, 예 59-63의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 상기 메모리 디바이스가 UFS (Universal Flash Storage) 버전 3.0 전압 레벨에 부합함을 나타낸다.
예 65는 메모리 디바이스에 의해 실행될 때, 상기 메모리 디바이스로 하여금 이하의 동작을 수행하게 하는 명령을 저장하는 기계 판독 가능한 매체이고, 상기 동작들은, 호스트 인터페이스를 통해 호스트 디바이스로부터 메모리 디바이스의 디바이스 디스크립터에 대한 요청을 수신하는 단계; 및 상기 디바이스 디스크립터를 상기 호스트 인터페이스를 통해 상기 호스트에 발송하는 단계로서, 상기 디바이스 디스크립터는 상기 메모리 디바이스의 지원되는 전압을 표시하도록 설정된 전압 서플라이 가용 출력 필드(voltage supply capability field)를 포함하고, 상기 지원되는 전압은 복수의 이산 전압으로부터 선택되고, 상기 호스트 디바이스는 상기 지원되는 전압을 이용하여 상기 메모리 디바이스에 적절한 전압을 공급하는, 상기 발송하는 단계를 포함한다.
예 66에서, 예 65의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 VCC 전압 가용 출력 필드를 포함한다.
예 67에서, 예 65-66의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 VCCQ 전압 가용 출력 필드를 포함한다.
예 68에서, 예 65-67의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 VCCQ2 전압 가용 출력 필드를 포함한다.
예 69에서, 예 65-68의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 상기 메모리 디바이스가 UFS (Universal Flash Storage) 버전 2.1 전압 레벨에 부합함을 나타낸다.
예 70에서, 예 65-69의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 상기 메모리 디바이스가 UFS (Universal Flash Storage) 버전 3.0 전압 레벨에 부합함을 나타낸다.
예 71는 메모리 디바이스이고, 상기 메모리 디바이스는 호스트 인터페이스를 통해 호스트 디바이스로부터 메모리 디바이스의 디바이스 디스크립터에 대한 요청을 수신하기 위한 수단; 및 상기 디바이스 디스크립터를 상기 호스트 인터페이스를 통해 상기 호스트에 발송하기 위한 수단으로서, 상기 디바이스 디스크립터는 상기 메모리 디바이스의 지원되는 전압을 표시하도록 설정된 전압 서플라이 가용 출력 필드(voltage supply capability field)를 포함하고, 상기 지원되는 전압은 복수의 이산 전압으로부터 선택되고, 상기 호스트 디바이스는 상기 지원되는 전압을 이용하여 상기 메모리 디바이스에 적절한 전압을 공급하는, 상기 발송하기 위한 수단을 포함한다.
예 72에서, 예 71의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 VCC 전압 가용 출력 필드를 포함한다.
예 73에서, 예 71-72의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 VCCQ 전압 가용 출력 필드를 포함한다.
예 74에서, 예 71-73의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 VCCQ2 전압 가용 출력 필드를 포함한다.
예 75에서, 예 71-74의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 상기 메모리 디바이스가 UFS (Universal Flash Storage) 버전 2.1 전압 레벨에 부합함을 나타낸다.
예 76에서, 예 71-75의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 상기 메모리 디바이스가 UFS (Universal Flash Storage) 버전 3.0 전압 레벨에 부합함을 나타낸다.
예 77는 호스트 디바이스에 의해 구현되는 방법으로서, 상기 방법은, 호스트 인터페이스를 통해 메모리 디바이스로 메모리 디바이스의 디바이스 디스크립터에 대한 요청을 발송하는 단계; 및 상기 디바이스 디스크립터를 상기 호스트 인터페이스를 통해 상기 메모리 디바이스로부터 수신하는 단계로서, 상기 디바이스 디스크립터는 상기 메모리 디바이스의 지원되는 전압을 표시하도록 설정된 전압 서플라이 가용 출력 필드(voltage supply capability field)를 포함하고, 상기 지원되는 전압은 복수의 이산 전압으로부터 선택되고, 상기 수신하는 단계; 및 상기 지원되는 전압이 상기 메모리 디바이스에 공급되게 하는 단계를 포함한다.
예 78에서, 예 77의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 VCC 전압 가용 출력 필드를 포함한다.
예 79에서, 예 77-78의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 VCCQ 전압 가용 출력 필드를 포함한다.
예 80에서, 예 77-79의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 VCCQ2 전압 가용 출력 필드를 포함한다.
예 81에서, 예 77-80의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 상기 메모리 디바이스가 UFS (Universal Flash Storage) 버전 2.1 전압 레벨에 부합함을 나타낸다.
예 82에서, 예 77-81의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 상기 메모리 디바이스가 UFS (Universal Flash Storage) 버전 3.0 전압 레벨에 부합함을 나타낸다.
예 83은 호스트 디바이스에 의해 실행될 때, 상기 호스트 디바이스로 하여금 이하의 동작을 수행하게 하는 명령을 저장하는 기계 판독 가능한 매체이고, 상기 동작들은, 호스트 인터페이스를 통해 메모리 디바이스로 메모리 디바이스의 디바이스 디스크립터에 대한 요청을 발송하는 단계; 및 상기 디바이스 디스크립터를 상기 호스트 인터페이스를 통해 상기 메모리 디바이스로부터 수신하는 단계로서, 상기 디바이스 디스크립터는 상기 메모리 디바이스의 지원되는 전압을 표시하도록 설정된 전압 서플라이 가용 출력 필드(voltage supply capability field)를 포함하고, 상기 지원되는 전압은 복수의 이산 전압으로부터 선택되고, 상기 수신하는 단계; 및 상기 지원되는 전압이 상기 메모리 디바이스에 공급되게 하는 단계를 포함한다.
예 84에서, 예 83의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 VCC 전압 가용 출력 필드를 포함한다.
예 85에서, 예 83-84의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 VCCQ 전압 가용 출력 필드를 포함한다.
예 86에서, 예 83-85의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 VCCQ2 전압 가용 출력 필드를 포함한다.
예 87에서, 예 83-86의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 상기 메모리 디바이스가 UFS (Universal Flash Storage) 버전 2.1 전압 레벨에 부합함을 나타낸다.
예 88에서, 예 83-87의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 상기 메모리 디바이스가 UFS (Universal Flash Storage) 버전 3.0 전압 레벨에 부합함을 나타낸다.
예 89는 호스트 컴퓨팅 디바이스이고, 상기 호스트 컴퓨팅 디바이스는 하나 이상의 프로세서들; 메모리로서, 상기 메모리는 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금 이하의 동작들을 수행하게 하는 명령들을 저장하는, 상기 메모리를 포함하되, 상기 동작들은 : 호스트 인터페이스를 통해 메모리 디바이스로 메모리 디바이스의 디바이스 디스크립터에 대한 요청을 발송하는 단계; 및 상기 디바이스 디스크립터를 상기 호스트 인터페이스를 통해 상기 메모리 디바이스로부터 수신하는 단계로서, 상기 디바이스 디스크립터는 상기 메모리 디바이스의 지원되는 전압을 표시하도록 설정된 전압 서플라이 가용 출력 필드(voltage supply capability field)를 포함하고, 상기 지원되는 전압은 복수의 이산 전압으로부터 선택되고, 상기 수신하는 단계; 및 상기 지원되는 전압이 상기 메모리 디바이스에 공급되게 하는 단계를 포함한다.
예 90에서, 예 89의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 VCC 전압 가용 출력 필드를 포함한다.
예 91에서, 예 89-90의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 VCCQ 전압 가용 출력 필드를 포함한다.
예 92에서, 예 89-91의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 VCCQ2 전압 가용 출력 필드를 포함한다.
예 93에서, 예 89-92의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 상기 메모리 디바이스가 UFS (Universal Flash Storage) 버전 2.1 전압 레벨에 부합함을 나타낸다.
예 94에서, 예 89-93의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 상기 메모리 디바이스가 UFS (Universal Flash Storage) 버전 3.0 전압 레벨에 부합함을 나타낸다.
예 95는 호스트 디바이스이고, 상기 호스트 디바이스는 호스트 인터페이스를 통해 메모리 디바이스로 메모리 디바이스의 디바이스 디스크립터에 대한 요청을 발송하기 위한 수단; 및 상기 디바이스 디스크립터를 상기 호스트 인터페이스를 통해 상기 메모리 디바이스로부터 수신하기 위한 수단으로서, 상기 디바이스 디스크립터는 상기 메모리 디바이스의 지원되는 전압을 표시하도록 설정된 전압 서플라이 가용 출력 필드(voltage supply capability field)를 포함하고, 상기 지원되는 전압은 복수의 이산 전압으로부터 선택되고, 상기 수신하기 위한 수단; 및 상기 지원되는 전압이 상기 메모리 디바이스에 공급되게 하기 위한 수단을 포함한다.
예 96에서, 예 95의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 VCC 전압 가용 출력 필드를 포함한다.
예 97에서, 예 95-96의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 VCCQ 전압 가용 출력 필드를 포함한다.
예 98에서, 예 95-97의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 VCCQ2 전압 가용 출력 필드를 포함한다.
예 99에서, 예 95-98의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 상기 메모리 디바이스가 UFS (Universal Flash Storage) 버전 2.1 전압 레벨에 부합함을 나타낸다.
예 100에서, 예 95-99의 주제에 있어서, 상기 전압 서플라이 가용 출력 필드는 상기 메모리 디바이스가 UFS (Universal Flash Storage) 버전 3.0 전압 레벨에 부합함을 나타낸다.
예 101는 메모리 디바이스에서의 성능 스로틀링(performance throttling)의 방법으로서, 상기 방법은, 성능 스로틀링 동작을 나타내는 조건이 발생하였는 지를 결정하는 단계; 상기 결정된 조건에 응답하여 성능 스로틀링을 구현하는 단계; 상기 성능 스로틀링 구현에 응답하여, 예외 이벤트 상태 속성에 성능 스로틀링 상태 표시자를 설정하는 단계; 메모리 디바이스 인터페이스를 거쳐 호스트 디바이스로부터 명령을 수신하는 단계; 상기 명령을 수행하는 단계; 상기 명령에 대한 응답을 준비하는 단계로서, 상기 응답은 상기 예외 이벤트 상태 속성에 상기 성능 스로틀링 상태 표시자가 설정되었음을 나타내는 플래그를 포함하는, 상기 응답을 준비하는 단계; 및 상기 응답을 상기 호스트 디바이스로 발송하는 단계를 포함한다.
예 102에서, 예 101의 주제에 있어서, 상기 응답은 UPIU (Universal Flash Storage Protocol Information Unit) 메시지로 포맷된다.
예 103에서, 예 101-102의 주제에 있어서, 상기 호스트 디바이스 및 메모리 디바이스는 범용 플래시 스토리지 표준 계열을 사용하여 통신한다.
예 104에서, 예 101-103의 주제에 있어서, 상기 조건을 나타내는 값에 상기 스로틀링 상태 속성을 설정하는 단계를 포함한다.
예 105에서, 예 101-104의 주제에 있어서, 상기 성능 스로틀링 상태 표시자가 설정되었음을 나타내는 플래그가 제어 속성이 상기 성능 스로틀링 상태 표시자에 대응하는 표시 자 세트를 갖는 지를 결정하는 단계를 포함하고, 상기 제어 속성의 표시자는 상기 호스트에 의해 설정된다.
예 106에서, 예 101-105의 주제에 있어서, 상기 조건은 임계값을 넘는 상기 메모리 디바이스의 온도 센서의 온도 판독 값이다.
예 107에서, 예 101-106의 주제에 있어서, 상기 성능 스로틀링은 : 상기 메모리 디바이스의 메모리 셀에 대한 다수의 병렬 액세스를 감소 시키는 단계 또는 상기 메모리 셀이 액세스되는 속도를 감소시키는 단계를 포함한다.
예 108은 메모리 디바이스에 의해 실행될 때, 상기 메모리 디바이스로 하여금 이하의 동작을 수행하게 하는 명령을 저장하는 기계 판독 가능한 매체이고, 상기 동작들은, 성능 스로틀링 동작을 나타내는 조건이 발생하였는 지를 결정하는 단계; 상기 결정된 조건에 응답하여 성능 스로틀링을 구현하는 단계; 상기 성능 스로틀링 구현에 응답하여, 예외 이벤트 상태 속성에 성능 스로틀링 상태 표시자를 설정하는 단계; 메모리 디바이스 인터페이스를 거쳐 호스트 디바이스로부터 명령을 수신하는 단계; 상기 명령을 수행하는 단계; 상기 명령에 대한 응답을 준비하는 단계로서, 상기 응답은 상기 예외 이벤트 상태 속성에 상기 성능 스로틀링 상태 표시자가 설정되었음을 나타내는 플래그를 포함하는, 상기 응답을 준비하는 단계; 및 상기 응답을 상기 호스트 디바이스로 발송하는 단계를 포함한다.
예 109에서, 예 108의 주제에 있어서, 상기 응답은 UPIU (Universal Flash Storage Protocol Information Unit) 메시지로 포맷된다.
예 110에서, 예 108-109의 주제에 있어서, 상기 호스트 디바이스 및 메모리 디바이스는 범용 플래시 스토리지 표준 계열을 사용하여 통신한다.
예 111에서, 예 108-110의 주제에 있어서, 상기 조건을 나타내는 값에 상기 스로틀링 상태 속성을 설정하는 단계를 포함한다.
예 112에서, 예 108-111의 주제에 있어서, 상기 성능 스로틀링 상태 표시자가 설정되었음을 나타내는 플래그가 제어 속성이 상기 성능 스로틀링 상태 표시자에 대응하는 표시 자 세트를 갖는 지를 결정하는 단계를 포함하고, 상기 제어 속성의 표시자는 상기 호스트에 의해 설정된다.
예 113에서, 예 108-112의 주제에 있어서, 상기 조건은 임계값을 넘는 상기 메모리 디바이스의 온도 센서의 온도 판독 값이다.
예 114에서, 예 108-113의 주제에 있어서, 상기 성능 스로틀링은 : 상기 메모리 디바이스의 메모리 셀에 대한 다수의 병렬 액세스를 감소 시키는 단계 또는 상기 메모리 셀이 액세스되는 속도를 감소시키는 단계를 포함한다.
예 115는 메모리 디바이스이고, 상기 메모리 디바이스는 비 휘발성 메모리 어레이; 메모리 제어기로서, 이하의 동작들을 수행하도록 구성된, 상기 메모리 제어기를 포함하고, 상기 동작들은 : 성능 스로틀링 동작을 나타내는 조건이 발생하였는 지를 결정하는 단계; 상기 결정된 조건에 응답하여 성능 스로틀링을 구현하는 단계; 상기 성능 스로틀링 구현에 응답하여, 예외 이벤트 상태 속성에 성능 스로틀링 상태 표시자를 설정하는 단계; 메모리 디바이스 인터페이스를 거쳐 호스트 디바이스로부터 명령을 수신하는 단계; 상기 명령을 수행하는 단계; 상기 명령에 대한 응답을 준비하는 단계로서, 상기 응답은 상기 예외 이벤트 상태 속성에 상기 성능 스로틀링 상태 표시자가 설정되었음을 나타내는 플래그를 포함하는, 상기 응답을 준비하는 단계; 및 상기 응답을 상기 호스트 디바이스로 발송하는 단계를 포함한다.
예 116에서, 예 115의 주제에 있어서, 상기 응답은 UPIU (Universal Flash Storage Protocol Information Unit) 메시지로 포맷된다.
예 117에서, 예 115-116의 주제에 있어서, 상기 호스트 디바이스 및 메모리 디바이스는 범용 플래시 스토리지 표준 계열을 사용하여 통신한다.
예 118에서, 예 115-117의 주제에 있어서, 상기 제어기는 : 상기 조건을 나타내는 값에 상기 스로틀링 상태 속성을 설정하는 단계의 동작을 수행하도록 더 구성된다.
예 119에서, 예 115-118의 주제에 있어서, 상기 성능 스로틀링 상태 표시자가 설정되었음을 나타내는 플래그를 포함하는 동작은 제어 속성이 상기 성능 스로틀링 상태 표시자에 대응하는 표시 자 세트를 갖는 지를 결정하는 단계를 포함하고, 상기 제어 속성의 표시자는 상기 호스트에 의해 설정된다.
예 120에서, 예 115-119의 주제에 있어서, 상기 조건은 임계값을 넘는 상기 메모리 디바이스의 온도 센서의 온도 판독 값이다.
예 121에서, 예 115-120의 주제에 있어서, 상기 성능 스로틀링은 : 상기 메모리 디바이스의 메모리 셀에 대한 다수의 병렬 액세스를 감소 시키는 단계 또는 상기 메모리 셀이 액세스되는 속도를 감소시키는 단계를 포함한다.
예 122는 메모리 디바이스이고, 상기 메모리 디바이스는 성능 스로틀링 동작을 나타내는 조건이 발생하였는 지를 결정하기 위한 수단; 상기 결정된 조건에 응답하여 성능 스로틀링을 구현하기 위한 수단;; 상기 성능 스로틀링 구현에 응답하여, 예외 이벤트 상태 속성에 성능 스로틀링 상태 표시자를 설정하기 위한 수단; 메모리 디바이스 인터페이스를 거쳐 호스트 디바이스로부터 명령을 수신하기 위한 수단; 상기 명령을 수행하기 위한 수단; 상기 명령에 대한 응답을 준비하는 단계로서, 상기 응답은 상기 예외 이벤트 상태 속성에 상기 성능 스로틀링 상태 표시자가 설정되었음을 나타내는 플래그를 포함하는, 상기 응답을 준비하기 위한 수단; 및 상기 응답을 상기 호스트 디바이스로 발송하기 위한 수단을 포함한다.
예 123에서, 예 122의 주제에 있어서, 상기 응답은 UPIU (Universal Flash Storage Protocol Information Unit) 메시지로 포맷된다.
예 124에서, 예 122-123의 주제에 있어서, 상기 호스트 디바이스 및 메모리 디바이스는 범용 플래시 스토리지 표준 계열을 사용하여 통신한다.
예 125에서, 예 122-124의 주제에 있어서, 상기 조건을 나타내는 값에 상기 스로틀링 상태 속성을 설정하기 위한 수단을 포함한다.
예 126에서, 예 122-125의 주제에 있어서, 상기 성능 스로틀링 상태 표시자가 설정되었음을 나타내는 플래그를 포함하기 위한 수단은 제어 속성이 상기 성능 스로틀링 상태 표시자에 대응하는 표시 자 세트를 갖는 지를 결정하기 위한 수단을 포함하고, 상기 제어 속성의 표시자는 상기 호스트에 의해 설정된다.
예 127에서, 예 122-126의 주제에 있어서, 상기 조건은 임계값을 넘는 상기 메모리 디바이스의 온도 센서의 온도 판독 값이다.
예 128에서, 예 122-127의 주제에 있어서, 상기 성능 스로틀링을 위한 수단은 : 상기 메모리 디바이스의 메모리 셀에 대한 다수의 병렬 액세스를 감소 시키는 단계 또는 상기 메모리 셀이 액세스되는 속도를 감소시키는 단계를 포함한다.
예 129는 호스트에서 메모리 디바이스의 성능 스로틀링(performance throttling)을 핸들링하는 방법으로서, 상기 방법은, 메모리 디바이스 인터페이스를 거쳐 메모리 디바이스로 명령을 발송하는 단계; 상기 명령에 대한 응답을 수신하는 단계로서, 상기 응답은 상기 예외 이벤트가 진행 중(ongoing)인 지를 나타내는 플래그를 포함하는, 상기 응답을 수신하는 단계; 상기 예외 이벤트가 성능 스로틀링이 발생하는지 여부를 나타내는지를 결정하는 단계; 상기 성능 스로틀링에 대한 이유를 결정하는 단계; 및 상기 성능 스로틀링을 줄이기 위한 조치를 취하는 단계를 포함한다.
예 130에서, 예 129의 주제에 있어서, 상기 예외 이벤트가 상기 성능 스로틀링이 발생하는지 여부를 나타내는지를 결정하는 단계는, 상기 예외 이벤트가 상기 성능 스로틀링이 발생하고 있다는 표시에 대하여 상기 메모리 디바이스에 쿼리하는 단계를 포함한다.
예 131에서, 예 129-130의 주제에 있어서, 상기 성능 스로틀링에 대한 이유를 결정하는 단계는, 상기 메모리 디바이스의 성능 스로틀링 이유의 표시를 위해 상기 메모리 디바이스에 쿼리하는 단계를 포함한다.
예 132에서, 예 129-131의 주제에 있어서, 상기 이유가 SLC 캐시의 고갈이며, 상기 성능 스로틀링을 줄이는 조치는 다른 메모리를 상기 SLC 캐시에 재 할당하도록 상기 메모리 디바이스에 지시하는 단계를 포함한다.
예 133에서, 예 129-132의 주제에 있어서, 상기 이유는 고온이며, 상기 성능 스로틀링을 줄이는 조치는 팬을 켜는 단계를 포함한다.
예 134에서, 예 129-133의 주제에 있어서, 상기 이유는 상기 메모리 디바이스의 메모리 풀이 여유 공간이 부족한 것이고, 상기 성능 스로틀링을 줄이는 조치는 상기 풀(pool)에 저장된 파일을 삭제하도록 상기 메모리 디바이스에 지시하는 단계를 포함한다.
예 135에서, 예 129-134의 주제에 있어서, 상기 이유는 상기 메모리 디바이스가 여유 공간이 부족한 것이고, 상기 성능 스로틀링을 줄이는 조치는 파일을 삭제하도록 상기 메모리 디바이스에 지시하는 단계를 포함한다.
예 136은 호스트 기계에 의해 실행될 때, 상기 기계로 하여금 이하의 동작을 수행하게 하는 명령을 저장하는 기계 판독 가능한 매체이고, 상기 동작은 메모리 디바이스 인터페이스를 거쳐 메모리 디바이스로 명령을 발송하는 단계; 상기 명령에 대한 응답을 수신하는 단계로서, 상기 응답은 상기 예외 이벤트가 진행 중(ongoing)인 지를 나타내는 플래그를 포함하는, 상기 응답을 수신하는 단계; 상기 예외 이벤트가 성능 스로틀링이 발생하는지 여부를 나타내는지를 결정하는 단계; 상기 성능 스로틀링에 대한 이유를 결정하는 단계; 및 상기 성능 스로틀링을 줄이기 위한 조치를 취하는 단계를 포함한다.
예 137에서, 예 136의 주제에 있어서, 상기 예외 이벤트가 상기 성능 스로틀링이 발생하는지 여부를 나타내는지를 결정하는 동작은, 상기 예외 이벤트가 상기 성능 스로틀링이 발생하고 있다는 표시에 대하여 상기 메모리 디바이스에 쿼리하는 단계를 포함한다.
예 138에서, 예 136-137의 주제에 있어서, 상기 성능 스로틀링에 대한 이유를 결정하는 동작은, 상기 메모리 디바이스의 성능 스로틀링 이유의 표시를 위해 상기 메모리 디바이스에 쿼리하는 단계를 포함한다.
예 139에서, 예 136-138의 주제에 있어서, 상기 이유가 SLC 캐시의 고갈이며, 상기 성능 스로틀링을 줄이는 조치는 다른 메모리를 상기 SLC 캐시에 재 할당하도록 상기 메모리 디바이스에 지시하는 단계를 포함한다.
예 140에서, 예 136-139의 주제에 있어서, 상기 이유는 고온이며, 상기 성능 스로틀링을 줄이는 조치는 팬을 켜는 단계를 포함한다.
예 141에서, 예 136-140의 주제에 있어서, 상기 이유는 상기 메모리 디바이스의 메모리 풀이 여유 공간이 부족한 것이고, 상기 성능 스로틀링을 줄이는 조치는 상기 풀(pool)에 저장된 파일을 삭제하도록 상기 메모리 디바이스에 지시하는 단계를 포함한다.
예 142에서, 예 136-141의 주제에 있어서, 상기 이유는 상기 메모리 디바이스가 여유 공간이 부족한 것이고, 상기 성능 스로틀링을 줄이는 조치는 파일을 삭제하도록 상기 메모리 디바이스에 지시하는 단계를 포함한다.
예 143는 호스트 컴퓨팅 디바이스이고, 상기 호스트 컴퓨팅 디바이스는 하나 이상의 하드웨어 프로세서들; 메모리로서, 상기 메모리는 상기 하나 이상의 하드웨어 프로세서에 의해 실행될 때, 상기 하나 이상의 하드웨어 프로세서들로 하여금 이하의 동작들을 수행하게 하는 명령들을 저장하는, 상기 메모리를 포함하고, 상기 동작은 : 메모리 디바이스 인터페이스를 거쳐 메모리 디바이스로 명령을 발송하는 단계; 상기 명령에 대한 응답을 수신하는 단계로서, 상기 응답은 상기 예외 이벤트가 진행 중(ongoing)인 지를 나타내는 플래그를 포함하는, 상기 응답을 수신하는 단계; 상기 예외 이벤트가 성능 스로틀링이 발생하는지 여부를 나타내는지를 결정하는 단계; 상기 성능 스로틀링에 대한 이유를 결정하는 단계; 및 상기 성능 스로틀링을 줄이기 위한 조치를 취하는 단계를 포함한다.
예 144에서, 예 143의 주제에 있어서, 상기 예외 이벤트가 상기 성능 스로틀링이 발생하는지 여부를 나타내는지를 결정하는 동작은, 상기 예외 이벤트가 상기 성능 스로틀링이 발생하고 있다는 표시에 대하여 상기 메모리 디바이스에 쿼리하는 단계를 포함한다.
예 145에서, 예 143-144의 주제에 있어서, 상기 성능 스로틀링에 대한 이유를 결정하는 동작은, 상기 메모리 디바이스의 성능 스로틀링 이유의 표시를 위해 상기 메모리 디바이스에 쿼리하는 단계를 포함한다.
예 146에서, 예 143-145의 주제에 있어서, 상기 이유가 SLC 캐시의 고갈이며, 상기 성능 스로틀링을 줄이는 조치는 다른 메모리를 상기 SLC 캐시에 재 할당하도록 상기 메모리 디바이스에 지시하는 단계를 포함한다.
예 147에서, 예 143-146의 주제에 있어서, 상기 이유는 고온이며, 상기 성능 스로틀링을 줄이는 조치는 팬을 켜는 단계를 포함한다.
예 148에서, 예 143-147의 주제에 있어서, 상기 이유는 상기 메모리 디바이스의 메모리 풀이 여유 공간이 부족한 것이고, 상기 성능 스로틀링을 줄이는 조치는 상기 풀(pool)에 저장된 파일을 삭제하도록 상기 메모리 디바이스에 지시하는 단계를 포함한다.
예 149에서, 예 143-148의 주제에 있어서, 상기 이유는 상기 메모리 디바이스가 여유 공간이 부족한 것이고, 상기 성능 스로틀링을 줄이는 조치는 파일을 삭제하도록 상기 메모리 디바이스에 지시하는 단계를 포함한다.
예 150는 호스트 디바이스이고, 상기 호스트 디바이스는 메모리 디바이스 인터페이스를 거쳐 메모리 디바이스로 명령을 발송하기 위한 수단; 상기 명령에 대한 응답을 수신하기 위한 수단으로서, 상기 응답은 상기 예외 이벤트가 진행 중(ongoing)인 지를 나타내는 플래그를 포함하는, 상기 응답을 수신하기 위한 수단; 상기 예외 이벤트가 성능 스로틀링이 발생하는지 여부를 나타내는지를 결정하기 위한 수단; 상기 성능 스로틀링에 대한 이유를 결정하기 위한 수단; 및 상기 성능 스로틀링을 줄이기 위한 조치를 취하기 위한 수단을 포함한다.
예 151에서, 예 150의 주제에 있어서, 상기 예외 이벤트가 상기 성능 스로틀링이 발생하는지 여부를 나타내는지를 결정하기 위한 수단은, 상기 예외 이벤트가 상기 성능 스로틀링이 발생하고 있다는 표시에 대하여 상기 메모리 디바이스에 쿼리하기 위한 수단을 포함한다.
예 152에서, 예 150-151의 주제에 있어서, 상기 성능 스로틀링에 대한 이유를 결정하기 위한 수단은 상기 메모리 디바이스의 성능 스로틀링 이유의 표시를 위해 상기 메모리 디바이스에 쿼리하기 위한 수단을 포함한다.
예 153에서, 예 150-152의 주제에 있어서, 상기 이유가 SLC 캐시의 고갈이며, 상기 성능 스로틀링을 줄이는 조치는 다른 메모리를 상기 SLC 캐시에 재 할당하도록 상기 메모리 디바이스에 지시하는 단계를 포함한다.
예 154에서, 예 150-153의 주제에 있어서, 상기 이유는 고온이며, 상기 성능 스로틀링을 줄이는 조치는 팬을 켜는 단계를 포함한다.
예 155에서, 예 150-154의 주제에 있어서, 상기 이유는 상기 메모리 디바이스의 메모리 풀이 여유 공간이 부족한 것이고, 상기 성능 스로틀링을 줄이는 조치는 상기 풀(pool)에 저장된 파일을 삭제하도록 상기 메모리 디바이스에 지시하는 단계를 포함한다.
예 156에서, 예 150-155의 주제에 있어서, 상기 이유는 상기 메모리 디바이스가 여유 공간이 부족한 것이고, 상기 성능 스로틀링을 줄이는 조치는 파일을 삭제하도록 상기 메모리 디바이스에 지시하는 단계를 포함한다.
예 157은 처리 회로부에 의해 실행될 때 처리 회로부로 하여금 예 1 내지 156 중 어느 하나의 구현 동작을 수행하게 하는 명령을 포함하는 적어도 하나의 기계 판독 가능한 매체이다.
예 158은 예 1 내지 156 중 어느 하나를 구현하기 위한 수단을 포함하는 장치이다.
예 159는 예 1 내지 156 중 하나를 구현하기 위한 시스템이다.
예 160은 예 1 내지 156 중 하나를 구현하기 위한 방법이다.

Claims (1)

  1. 제1항에 기재된 장치.
KR1020227022529A 2017-07-07 2018-06-29 관리되는 nand에 대한 rpmb 개선 KR20220111303A (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201762529910P 2017-07-07 2017-07-07
US62/529,910 2017-07-07
US201862653382P 2018-04-05 2018-04-05
US62/653,382 2018-04-05
KR1020207003588A KR102417107B1 (ko) 2017-07-07 2018-06-29 관리되는 nand에 대한 rpmb 개선
PCT/US2018/040309 WO2019010084A1 (en) 2017-07-07 2018-06-29 IMPROVEMENTS IN IMPORTED RPMB BLOCKS ON MANAGED NAND DEVICES

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020207003588A Division KR102417107B1 (ko) 2017-07-07 2018-06-29 관리되는 nand에 대한 rpmb 개선

Publications (1)

Publication Number Publication Date
KR20220111303A true KR20220111303A (ko) 2022-08-09

Family

ID=64902866

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020207003588A KR102417107B1 (ko) 2017-07-07 2018-06-29 관리되는 nand에 대한 rpmb 개선
KR1020227022529A KR20220111303A (ko) 2017-07-07 2018-06-29 관리되는 nand에 대한 rpmb 개선

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020207003588A KR102417107B1 (ko) 2017-07-07 2018-06-29 관리되는 nand에 대한 rpmb 개선

Country Status (4)

Country Link
US (6) US11133075B2 (ko)
KR (2) KR102417107B1 (ko)
CN (1) CN111066007B (ko)
WO (1) WO2019010084A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111066007B (zh) * 2017-07-07 2023-10-31 美光科技公司 对受到管理的nand的rpmb改进
KR20190099693A (ko) * 2018-02-19 2019-08-28 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
CN112154408A (zh) * 2018-04-12 2020-12-29 美光科技公司 重放受保护存储器块命令队列
US11088845B2 (en) * 2018-07-03 2021-08-10 Western Digital Technologies, Inc. Non-volatile memory with replay protected memory block having dual key
US11095566B2 (en) * 2018-10-22 2021-08-17 Hewlett Packard Enterprise Development Lp Embedded device interaction restrictions
KR20200110547A (ko) * 2019-03-14 2020-09-24 삼성전자주식회사 스토리지 장치 및 스토리지 장치를 포함하는 컴퓨팅 장치
US11120167B2 (en) * 2019-03-25 2021-09-14 Micron Technology, Inc. Block chain based validation of memory commands
KR20200128825A (ko) * 2019-05-07 2020-11-17 삼성전자주식회사 분리된 rpmb 기능을 가지는 스토리지 시스템 및 그 구동 방법
US11307951B2 (en) * 2019-09-04 2022-04-19 Micron Technology, Inc. Memory device with configurable performance and defectivity management
US11334251B2 (en) * 2019-11-11 2022-05-17 Western Digital Technologies, Inc. SSD operation in a nonoptimal memory environment
CN111727477A (zh) * 2020-05-06 2020-09-29 长江存储科技有限责任公司 3d nand闪存的控制方法和控制器
US11714561B2 (en) 2020-07-17 2023-08-01 Samsung Electronics Co., Ltd. System, device and method for writing data to protected region
US11467750B2 (en) * 2020-08-21 2022-10-11 Micron Technology, Inc. Adjustable physical or logical capacity criteria for write cache replenishment based on temperature or program erase cycles of the memory device
US11893247B2 (en) 2020-09-22 2024-02-06 SK Hynix Inc. Data storage device and method of operating the same
EP3974954A1 (en) * 2020-09-29 2022-03-30 Samsung Electronics Co., Ltd. Storage device, operating method of storage device, and operating method of computing device including storage device
KR20220046948A (ko) 2020-10-08 2022-04-15 삼성전자주식회사 스토리지 컨트롤러, 스토리지 시스템 및 그 동작방법
KR102583244B1 (ko) * 2022-01-28 2023-09-26 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US11915764B2 (en) 2022-03-25 2024-02-27 Micron Technology, Inc. Apparatus and methods for thermal management in a memory
US11995328B2 (en) * 2022-08-18 2024-05-28 Micron Technology, Inc. Single-level cell block storing data for migration to multiple multi-level cell blocks

Family Cites Families (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5212778A (en) * 1988-05-27 1993-05-18 Massachusetts Institute Of Technology Message-driven processor in a concurrent computer
US5835950A (en) * 1996-07-12 1998-11-10 Samsung Electronics Co., Ltd. Self-invalidation method for reducing coherence overheads in a bus-based shared-memory multiprocessor apparatus
US7124170B1 (en) * 1999-08-20 2006-10-17 Intertrust Technologies Corp. Secure processing unit systems and methods
US6473849B1 (en) * 1999-09-17 2002-10-29 Advanced Micro Devices, Inc. Implementing locks in a distributed processing system
US6751721B1 (en) * 2000-08-31 2004-06-15 Hewlett-Packard Development Company, L.P. Broadcast invalidate scheme
US6813682B2 (en) * 2000-09-29 2004-11-02 Steven Bress Write protection for computer long-term memory devices
US6978459B1 (en) * 2001-04-13 2005-12-20 The United States Of America As Represented By The Secretary Of The Navy System and method for processing overlapping tasks in a programmable network processor environment
US6968447B1 (en) * 2001-04-13 2005-11-22 The United States Of America As Represented By The Secretary Of The Navy System and method for data forwarding in a programmable multiple network processor environment
US20020165976A1 (en) 2001-05-02 2002-11-07 Jean-Charles Gonthier Software deployment in a data communications network
US7171521B2 (en) * 2002-10-16 2007-01-30 Broadcom Corporation Coherent shared memory processing system
US20040199727A1 (en) * 2003-04-02 2004-10-07 Narad Charles E. Cache allocation
US7493618B2 (en) * 2003-09-19 2009-02-17 International Business Machines Corporation Fault tolerant mutual exclusion locks for shared memory systems
US7332832B2 (en) * 2004-02-27 2008-02-19 Hitachi Global Storage Technologies Netherlands B.V. Removable hard disk drive (HDD) that is hot-plug compatible with multiple external power supply voltages
WO2006057049A1 (ja) * 2004-11-26 2006-06-01 Kabushiki Kaisha Toshiba カードおよびホスト機器
US7984248B2 (en) * 2004-12-29 2011-07-19 Intel Corporation Transaction based shared data operations in a multiprocessor environment
US7472292B2 (en) 2005-10-03 2008-12-30 Hewlett-Packard Development Company, L.P. System and method for throttling memory power consumption based on status of cover switch of a computer system
US7603576B2 (en) * 2005-11-29 2009-10-13 International Business Machines Corporation Hysteresis in thermal throttling
US7797751B1 (en) * 2006-03-27 2010-09-14 Oracle America, Inc. Nonce structure for storage devices
US8122265B2 (en) 2006-12-29 2012-02-21 Intel Corporation Power management using adaptive thermal throttling
US8285942B2 (en) * 2009-01-27 2012-10-09 International Business Machines Corporation Region coherence array having hint bits for a clustered shared-memory multiprocessor system
US20100241760A1 (en) * 2009-03-18 2010-09-23 Microsoft Corporation Web Front-End Throttling
US8832354B2 (en) * 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8380852B2 (en) 2009-12-23 2013-02-19 International Business Machines Corporation Clearing SCSI reservations for non-detectable initiators for extended duration
US20120227045A1 (en) * 2009-12-26 2012-09-06 Knauth Laura A Method, apparatus, and system for speculative execution event counter checkpointing and restoring
JP5385220B2 (ja) * 2010-06-30 2014-01-08 ルネサスエレクトロニクス株式会社 不揮発性メモリ、データ処理装置、及びマイクロコンピュータ応用システム
US8954697B2 (en) * 2010-08-05 2015-02-10 Red Hat, Inc. Access to shared memory segments by multiple application processes
US8862806B2 (en) 2010-08-20 2014-10-14 Samsung Electronics Co., Ltd Semiconductor storage device and method of throttling performance of the same
US9037778B2 (en) * 2010-08-20 2015-05-19 Samsung Electronics Co., Ltd. Method and apparatus to interface semiconductor storage device and host to provide performance throttling of semiconductor storage device
US9619301B2 (en) * 2011-04-06 2017-04-11 Telefonaktiebolaget L M Ericsson (Publ) Multi-core memory model and speculative mode processor management
JP5694101B2 (ja) * 2011-09-20 2015-04-01 株式会社東芝 メモリ・デバイス、ホスト・デバイス
US8630054B2 (en) * 2011-09-21 2014-01-14 Western Digital Technologies, Inc. Systems and methods for data throttling during disk drive power down
US9448940B2 (en) * 2011-10-28 2016-09-20 The Regents Of The University Of California Multiple core computer processor with globally-accessible local memories
WO2013115818A1 (en) * 2012-02-02 2013-08-08 Intel Corporation A method, apparatus, and system for transactional speculation control instructions
US9274960B2 (en) * 2012-03-20 2016-03-01 Stefanos Kaxiras System and method for simplifying cache coherence using multiple write policies
US9710306B2 (en) * 2012-04-09 2017-07-18 Nvidia Corporation Methods and apparatus for auto-throttling encapsulated compute tasks
KR101991905B1 (ko) * 2012-07-19 2019-06-24 삼성전자주식회사 불휘발성 메모리, 불휘발성 메모리의 읽기 방법 및 불휘발성 메모리를 포함하는 메모리 시스템
KR101975409B1 (ko) * 2012-07-26 2019-05-08 삼성전자주식회사 시스템 온 칩 및 그것의 온도 제어 방법
WO2014081719A1 (en) * 2012-11-20 2014-05-30 Peddle Charles I Solid state drive architectures
US9348382B2 (en) * 2013-02-22 2016-05-24 Maxim Integrated Products, Inc. Method and apparatus for providing power to an electronic device
US10509725B2 (en) * 2013-03-08 2019-12-17 Oracle International Corporation Flushing by copying entries in a non-coherent cache to main memory
CN104111897B (zh) * 2013-04-16 2017-06-13 华为技术有限公司 一种数据处理方法、装置及计算机系统
US9178855B1 (en) * 2013-08-25 2015-11-03 Google Inc. Systems and methods for multi-function and multi-purpose cryptography
US9361233B2 (en) * 2013-12-20 2016-06-07 Intel Corporation Method and apparatus for shared line unified cache
KR102244618B1 (ko) * 2014-02-21 2021-04-26 삼성전자 주식회사 플래시 메모리 시스템 및 플래시 메모리 시스템의 제어 방법
CN104951240B (zh) * 2014-03-26 2018-08-24 阿里巴巴集团控股有限公司 一种数据处理方法及处理器
US9996402B2 (en) * 2014-04-07 2018-06-12 Oracle International Corporation System and method for implementing scalable adaptive reader-writer locks
US11030122B2 (en) * 2014-04-08 2021-06-08 Micron Technology, Inc. Apparatuses and methods for securing an access protection scheme
US10019368B2 (en) * 2014-05-29 2018-07-10 Samsung Electronics Co., Ltd. Placement policy for memory hierarchies
US10257192B2 (en) * 2014-05-29 2019-04-09 Samsung Electronics Co., Ltd. Storage system and method for performing secure write protect thereof
US9625983B2 (en) 2014-07-21 2017-04-18 Oracle International Corporation Power throttle mechanism with temperature sensing and activity feedback
US9678760B2 (en) * 2014-08-01 2017-06-13 Samsung Electronics Co., Ltd. Memory card and storage system having authentication program and method for operating thereof
KR102347657B1 (ko) * 2014-12-02 2022-01-06 삼성전자 주식회사 전자 장치 및 이의 공유 캐시 메모리 제어 방법
US10534538B2 (en) * 2015-02-23 2020-01-14 Oracle International Corporation Fine-grained hardware transactional lock elision
US20160254812A1 (en) * 2015-02-26 2016-09-01 Sandisk Technologies Inc. Apparatus for calibrating off-chip driver/on-die termination circuits
US10108557B2 (en) 2015-06-25 2018-10-23 Intel Corporation Technologies for memory confidentiality, integrity, and replay protection
US10353747B2 (en) * 2015-07-13 2019-07-16 Futurewei Technologies, Inc. Shared memory controller and method of using same
WO2017019769A1 (en) 2015-07-27 2017-02-02 Dmg Mori Seiki Usa Powder delivery systems and methods for additive manufacturing apparatus
KR102311916B1 (ko) 2015-08-17 2021-10-15 삼성전자주식회사 스토리지 장치
US9921953B2 (en) * 2015-09-09 2018-03-20 International Business Machines Corporation Dynamic detection and correction of incorrect lock and atomic update hint bits
US9697121B2 (en) * 2015-09-29 2017-07-04 International Business Machines Corporation Dynamic releasing of cache lines
FR3043222B1 (fr) * 2015-11-04 2018-11-16 Commissariat A L'energie Atomique Et Aux Energies Alternatives Procede de simulation parallele de niveau systeme electronique avec detection des conflits d'acces a une memoire partagee
US10095622B2 (en) * 2015-12-29 2018-10-09 Intel Corporation System, method, and apparatuses for remote monitoring
US10042679B2 (en) * 2016-02-01 2018-08-07 Oracle International Corporation System and method for promoting reader groups for lock cohorting
US10152436B2 (en) * 2016-03-30 2018-12-11 Oracle International Corporation Mutual exclusion in a non-coherent memory hierarchy
US9846652B2 (en) * 2016-03-31 2017-12-19 Intel Corporation Technologies for region-biased cache management
US10585809B2 (en) * 2016-04-01 2020-03-10 Intel Corporation Convolutional memory integrity
US9760311B1 (en) 2016-06-23 2017-09-12 Sandisk Technologies Llc Storage system and method for adaptive thermal throttling
US10042762B2 (en) * 2016-09-14 2018-08-07 Advanced Micro Devices, Inc. Light-weight cache coherence for data processors with limited data sharing
KR102669694B1 (ko) * 2016-09-28 2024-05-28 삼성전자주식회사 서로 직렬로 연결된 스토리지 장치들 중 애플리케이션 프로세서에 직접 연결되지 않는 스토리지 장치를 리셋시키는 전자 기기 및 그것의 동작 방법
US10114748B2 (en) * 2016-09-29 2018-10-30 Nxp Usa, Inc. Distributed reservation based coherency protocol
US11119923B2 (en) * 2017-02-23 2021-09-14 Advanced Micro Devices, Inc. Locality-aware and sharing-aware cache coherence for collections of processors
CN111066007B (zh) 2017-07-07 2023-10-31 美光科技公司 对受到管理的nand的rpmb改进
US20190050153A1 (en) * 2017-08-08 2019-02-14 Western Digital Technologies, Inc. Routing data blocks during thermal throttling
KR102501776B1 (ko) * 2018-01-31 2023-02-21 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR20190099693A (ko) * 2018-02-19 2019-08-28 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법

Also Published As

Publication number Publication date
US10790032B2 (en) 2020-09-29
US10916316B2 (en) 2021-02-09
US10418115B2 (en) 2019-09-17
US20200043559A1 (en) 2020-02-06
US20200411123A1 (en) 2020-12-31
CN111066007A (zh) 2020-04-24
US11727997B2 (en) 2023-08-15
KR102417107B1 (ko) 2022-07-05
US20200218672A1 (en) 2020-07-09
WO2019010084A1 (en) 2019-01-10
US20190013081A1 (en) 2019-01-10
US11133075B2 (en) 2021-09-28
CN111066007B (zh) 2023-10-31
US20210134376A1 (en) 2021-05-06
KR20200027982A (ko) 2020-03-13
US20190013079A1 (en) 2019-01-10
US11309040B2 (en) 2022-04-19

Similar Documents

Publication Publication Date Title
KR102417107B1 (ko) 관리되는 nand에 대한 rpmb 개선
US11385838B2 (en) Host accelerated operations in managed NAND devices
US11983106B2 (en) Host accelerated operations in managed NAND devices
TWI756603B (zh) 使用反及閘記憶體陣列之物理不可複製函數
CN111183481B (zh) 数据损坏的安全擦除
US11886339B2 (en) Secure logical-to-physical caching
KR20220066189A (ko) Nand 온도 데이터 관리
US11941268B2 (en) System using a restricted operation mode memory indicator

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right