KR20210086991A - 재생 보호 메모리 블록을 위한 보안 키 업데이트 - Google Patents

재생 보호 메모리 블록을 위한 보안 키 업데이트 Download PDF

Info

Publication number
KR20210086991A
KR20210086991A KR1020200187729A KR20200187729A KR20210086991A KR 20210086991 A KR20210086991 A KR 20210086991A KR 1020200187729 A KR1020200187729 A KR 1020200187729A KR 20200187729 A KR20200187729 A KR 20200187729A KR 20210086991 A KR20210086991 A KR 20210086991A
Authority
KR
South Korea
Prior art keywords
memory
memory device
security key
value
request
Prior art date
Application number
KR1020200187729A
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 KR20210086991A publication Critical patent/KR20210086991A/ko

Links

Images

Classifications

    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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
    • 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
    • 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
    • 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
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • 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
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/08Address circuits; Decoders; Word-line control 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/24Bit-line control circuits
    • 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
    • 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/145Protection 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 virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Read Only Memory (AREA)

Abstract

일부 예시에서, 키를 재프로그램, 수정, 및/또는 소거하기 위한 명령을 포함하는 메모리 디바이스로 로딩되는 특수 펌웨어 객체(키-수정 펌웨어)를 이용함으로써 메모리 디바이스의 보호 영역에 대한 보안 키를 수정, 소거, 또는 업데이트하는 보안 방법을 제공하기 위한 방법, 시스템, 메모리 디바이스, 및 기계-판독형 매체가 개시된다. 이 키-수정 펌웨어가 보안 위험이 되지 않음을 보장하기 위해, 다양한 방식으로 키-수정 펌웨어 객체는 차후 사용에서 보호될 수 있다.

Description

재생 보호 메모리 블록을 위한 보안 키 업데이트{SECURE KEY UPDATE FOR REPLAY PROTECTED MEMORY BLOCKS}
우선권 주장
이 특허 출원은, 35 U.S.C 섹션 119 하에서, 2019년12월30일에 출원된 Cariello외의 미국 가특허 출원 번호 62/955,135, 발명의 명칭 "Configuring Access to Protected Memory"의 우선권의 이익을 주장하며, 상기 가특허 출원은 그 전체가 본 명세서에 참조로서 포함된다.
발명의 분야
실시예는 메모리 디바이스와 관련된다. 일부 실시예는 보호되는 영역, 가령, 재생 보호 메모리 블록(replay protected memory block)으로의 액세스를 위한 키를 보안 방식으로 업데이트하는 것과 관련된다.
컴퓨터 또는 그 밖의 다른 전자 디바이스를 위한 메모리 디바이스가 휘발성 메모리와 비휘발성 메모리로 분류될 수 있다. 휘발성 메모리는 저장된 데이터를 유지하기 위한 전력을 필요로 한다. 휘발성 메모리는 RAM(random-access memory), DRAM(dynamic random-access memory), 또는 SDRAM(synchronous dynamic random-access memory) 등을 포함한다. 비휘발성 메모리는 전력이 공급되지 않을 때 저장된 데이터를 유지할 수 있고, 예를 들어, 플래시 메모리, ROM(read-only memory), EEPROM(electrically erasable programmable ROM), SRAM(static RAM), EPROM(erasable programmable ROM), 저항 가변 메모리, 상-변화 메모리, 저장 클래스 메모리, RRAM(resistive random-access memory), 및 MRAM(magnetoresistive random-access memory) 등이 있다.
플래시 메모리는 다양한 전자 응용분야를 위한 비휘발성 메모리로서 사용된다. 일반적으로 플래시 메모리 디바이스는 높은 메모리 밀도, 높은 신뢰성, 및 낮은 전력 소비를 가능하게 하는 트랜지스터, 가령, 부동 게이트 또는 전하 트랩 메모리 셀의 하나 이상의 그룹을 포함한다.
반드시 실제 비율로 그려진 것은 아닌 도면에서, 상이한 도시에서 유사한 번호가 유사한 구성요소를 기술할 수 있다. 상이한 접미문자를 갖는 유사한 번호가 유사한 구성요소의 상이한 사례를 나타낼 수 있다. 도면은, 일반적으로 본 명세서에서 언급된 다양한 실시예를 비제한적 예시로서 도시한다.
도 1은 본 개시의 일부 예시에 따라 메모리 디바이스, 가령, 저장 디바이스의 다이어그램을 도시한다.
도 2는 본 개시의 일부 예시에 따라 NAND 아키텍처 반도체 메모리 어레이의 일부분의 예시적 개략도를 도시한다.
도 3은 본 개시의 일부 예시에 따르는 3D NAND 아키텍처 반도체 메모리의 예시적 개략도를 도시한다.
도 4는 본 개시의 일부 예시에 따르는 메모리 다이의 예시적 블록도를 도시한다.
도 5는 본 개시의 일부 예시에 따르는 매칭된 동작 펌웨어와 키-수정 펌웨어를 이용해 보안 키의 비인가 수정을 제한하기 위한 제1 예시를 도시한다.
도 6은 본 개시의 일부 예시에 따르는 매칭된 펌웨어를 이용해 메모리 디바이스의 보호되는 부분의 보안 키를 업데이트하는 방법의 흐름도를 도시한다.
도 7은 본 개시의 일부 예시에 따르는 구성 설정을 이용해 보안 키의 비인가 수정을 제한하기 위한 제1 예시적 흐름을 도시한다.
도 8은 키-소거 펌웨어가 활성화될 때와 활성화될 조건을 제어하기 위한 메모리 제어기의 예시적 상태 전환 다이어그램을 도시한다.
도 9는 본 개시의 일부 예시에 따르는 키-수정 펌웨어를 활성화하는 방법의 흐름도를 도시한다.
도 10은 본 개시의 일부 예시에 따르는 구성 값을 이용해 메모리 디바이스의 보호 부분의 보안 키를 업데이트하는 방법의 흐름도를 도시한다.
도 11은 본 명세서에서 언급되는 기법(가령, 방법론) 중 임의의 하나 이상이 수행될 수 있는 예시적 기계의 블록도를 도시한다.
메모리 디바이스, 가령, 플래시 메모리 디바이스는, 요청자가 요청에 대해 올바른 메시지 인증 코드(HMAC SHA-256)를 제공하지 않는 한, 특정 메모리 어드레스의 메모리 액세스를 막는 "재생 보호 메모리 블록(Replay Protected Memory Block)" 즉, RPMB을 이용할 수 있다. 메시지 인증 코드는 쓰기 카운터(write counter) 및 논스(nonce)와 함께 암호 보안 키로부터 계산된다. 쓰기 카운터 및 논스는 재생 공격을 막는다. 보안 키는 시스템 제조 중에 메모리 장치와 호스트에 프로그래밍되어 영구적으로 연결된다.
보안 키가 메모리 디바이스와 호스트 디바이스 모두에 프로그램된 후, 호스트 디바이스의 구성요소 내 제조 결함에 의해 하나 이상의 구성요소가 호스트 디바이스 상에서 교체되거나 재수행될 수 있다. 이로 인해 보안 키를 저장하는 저장 디바이스 상의 구성요소의 교체 또는 메모리 디바이스의 제거 및 상이한 호스트 디바이스에서의 사용이 야기할 수 있다. 이들 경우, 호스트 디바이스와 메모리 디바이스는 매칭되는 보안 키를 더는 갖지 않는다. 메모리 디바이스 상의 키의 교체는 보안상 이유로 JEDEC(Joint Electron Device Engineering Council)에 의해 허용되지 않는다.
더 일반적으로, RPMB가 아닌 다른 유형의 보호 스킴이 또한 사용되어 RPMB의 절차 및 액세스 제어와 상이할 수 있는 메모리 디바이스의 하나 이상의 보호 영역으로의 액세스를 보안할 수 있다. 이들 보호 스킴은 또한 일반적으로 요청자가 이들 보호 영역을 액세스(읽기, 쓰기 및/또는 수정)하기 위한 비밀 값을 제공할 것을 요구한다. 빈번하게, 비밀 값은, 호스트와 메모리 디바이스 모두로 프로그래밍되는 보안 키이거나 상기 보안 키를 이용해 계산된다. 이들 그 밖의 다른 스킴이 또한 제조 후 키를 변경 및 교체하는 것에 대한 유사한 문제를 가질 수 있다.
일부 예시에서, 키를 재프로그램, 수정, 및/또는 소거하기 위한 명령을 포함하는 메모리 디바이스로 로딩되는 특수 펌웨어 객체(키-수정 펌웨어)를 이용함으로써 메모리 디바이스의 보호 영역에 대한 보안 키를 수정, 소거, 또는 업데이트하는 보안 방법을 제공하기 위한 방법, 시스템, 메모리 디바이스, 및 기계-판독형 매체가 개시된다. 이 키-수정 펌웨어가 보안 위험이 되지 않음을 보장하기 위해, 다양한 방식으로 키-수정 펌웨어 객체는 차후 사용에서 보호될 수 있다.
제1 예시에서, 디바이스 또는 디바이스 그룹(가령, 호스트 디바이스의 각각의 주문자 상표 부착 생산(OEM, original equipment manufacturer)으로 제공된 디바이스)에 상기 디바이스 또는 디바이스 그룹에 특정적인 커스텀 펌웨어 객체가 제공될 수 있다. 이들 커스텀 펌웨어 객체는 메모리 디바이스 제조사에 의해 로딩되거나 디바이스의 수신자(가령, OEM)에게 제공되며 수신자에 의해 수행되는 FFU(field-firmware update)를 이용해 메모리 디바이스로 로딩될 수 있다. 이들 펌웨어 객체는 디바이스에 대해 제공되는 커스텀 펌웨어 객체와만 작업하는 대응하는 커스텀 키-수정 펌웨어 객체를 가질 수 있다. 그런 다음 키-수정 펌웨어 객체는, 매칭되는 커스텀 펌웨어와 함께 디바이스에 대한 보호 영역(가령, RPMB 영역)에 대한 보안 키를 비우거나, 수정하거나, 및/또는 업데이트하도록 사용될 수 있지만 상이한 커스텀 펌웨어를 갖는 다른 고객에 대한 보안 디바이스를 비우거나, 수정하거나 및/또는 업데이트하는 데는 사용될 수 없다.
또 다른 예시에서, 커스텀 펌웨어 객체와 커스텀 키-수정 펌웨어 객체를 연결하는 것 대신, 특수 펌웨어 객체의 비인가 사용을 막기 위해, 범용 펌웨어가 모든 메모리 디바이스로 로딩될 수 있다. 메모리 디바이스는 메모리 디바이스의 동작 메트릭이 활성화 잠금 조건을 충족하기 전에(가령, 디바이스로 써진 바이트의 수가 임계값을 초과하기 전에) 메모리 디바이스의 구성 변수가 정의된 보안 키-수정 값으로 설정되는 경우 키-수정 펌웨어 객체를 활성화한다. 예를 들어, 디바이스가 써진 특정 바이트 수(0 바이트일 수 있음)를 초과하기 전에 정의된 스트링이 구성 변수에 써진 경우 키-수정 펌웨어 객체가 활성화된다. 구성 변수를 또 다른 값으로 수정함으로써 키-수정 기능이 비활성화될 수 있다. 일부 예시에서, 사용자 데이터가 메모리 디바이스에 써지기 전에 구성 변수는 보안 키 수정 값으로 설정되어야 하기 때문에, 디바이스가 일단 사용되면, 나중에 키-수정 펌웨어가 활성화될 수 없다.
이는 OEM 제조사에게 키-수정 기능을 제어하기 위한 방법을 제공하면서 디바이스 그룹에 걸친 표준 펌웨어 객체의 사용을 가능하게 한다. 일부 예시에서, 구성 변수는 일반적으로 다양한 디바이스 정보, 가령, OEM을 식별하는 벤더 명칭을 나타내는 값으로 설정되며 JEDEC 표준에 의해 정의된 메모리 디바이스의 "OEM 스트링 속성"일 수 있다. 앞서 언급된 바와 같이, 커스텀 키-수정 펌웨어 객체는 보안 키가 업데이트될 수 있도록 하는 전제조건으로서 구성 변수가 잠금 조건을 충족하는 동작 메트릭 전에 사전에 명시된 특정 값으로 설정되었음을 검증할 수 있다. 보안 키 수정 값은 메모리 디바이스의 특정 그룹에 고유할 수 있다(가령, 보안 키 수정 값이 각각의 OEM에 고유할 수 있다). 보안 키 수정 값이 오염되는 경우, 이는 특정 디바이스 그룹 내 디바이스와 고객에게 배송되기 전 잠금 설정되지 않은 디바이스에만 영향을 미칠 것이다.
동작 메트릭이 잠금 조건을 충족하기 전에 보안 키 수정 값이 구성 셋팅에 설정될 것을 요구하는 것에 추가로, 구성 셋팅은 상이한 값으로 설정될 수 있으며 구성 모드를 잠금으로써 추가 수정으로부터 봉쇄될 수 있다. 이는 구성 셋팅의 추가 수정을 막음으로써, 또 다른 보호 레이어를 제공한다. 앞서 언급된 바와 같이, 키-수정 펌웨어를 활성화하기 위해, 동작 메트릭이 잠금 조건을 충족하기 전에 구성 셋팅이 보안 키 수정 값으로 설정될 필요가 있다. 이는 제조사가 구성 셋팅을 덮어쓰는 것을 간과하거나 구성 모드를 잠그는 것을 간과하는 것에 대해 보호조치이다. 예를 들어, 써진 데이터 양이 0보다 클 때가 있다. 따라서, 제조사가 구성 값을 건드리거나 구성을 잠그지 않는 경우라도, 일단 메모리 디바이스에 써지면, 보안 키가 변경될 수 없으며, 이는 최종 사용자의 손 안에 있는 대부분의 메모리 디바이스에 대한 경우일 것이다.
일부 예시에서, 보안 키 수정 값의 값이 각각의 디바이스에 대해 상이하거나(가령, 디바이스 특정 정보, 가령, 일련 번호이거나 이를 포함할 수 있음), 각각의 호스트 디바이스 OEM에 대해 상이하거나(가령, OEM 특정 식별자이거나 이를 포함할 수 있음), 디바이스 그룹에 대해 상이할 수 있다(가령, 그룹 특정 식별자이거나 이를 포함할 수 있음). 이는, 각각의 커스텀 키-수정 펌웨어 객체가 상이한 보안 키 수정 값을 찾도록 프로그램될 수 있기 때문에 상이한 디바이스 그룹에서의 커스텀 키-수정 펌웨어 객체의 사용을 막을 수 있다.
일부 예시에서, 커스텀 키-수정 펌웨어 객체는 제조사에 의해 (가령, FFU(field firmware update)프로세스를 이용하여) 보안 키를 업데이트할 필요가 있는 디바이스 상으로 로딩될 수 있다. 또 다른 예에서, 키-수정 펌웨어는 메모리 디바이스 제조사에 의해 모든 디바이스로 로딩될 수 있다.
앞서 언급된 기법은 보안 키가 수정될 수 있고 그런 다음 추가 수정을 막도록 잠가질 수 있음을 보장함으로써 인가된 사용자에 의해 보안 키를 교체하는 보안 방식을 제공한다. 이는 매칭되는 펌웨어와 키-수정 펌웨어 객체 또는 구성 셋팅 및 동작 메트릭의 사용을 이용함으로써, 보안 키를 수정할 수 있는 능력을 보안하기 위한 기술적 해결책을 이용하는 보안 방식으로 보안 키 수정의 기술적 문제를 해결한다.
메모리 디바이스 개관
앞서 언급된 바와 같이, 플래시 메모리는 다양한 전자 응용분야를 위한 비휘발성 메모리로서 사용된다. 일반적으로 플래시 메모리는 높은 메모리 밀도, 높은 신뢰성, 및 낮은 전력 소비를 가능하게 하는 트랜지스터, 가령, 부동 게이트 또는 전하 트랩 메모리 셀의 하나 이상의 그룹을 포함한다. 두 가지 일반적인 유형의 플래시 메모리 어레이 아키텍처는 각각의 기본 메모리 셀 구성이 배열되는 논리 형태를 따라 명명된 NAND 및 NOR 아키텍처를 포함한다. 메모리 어레이의 메모리 셀이 일반적으로 매트릭스로 배열된다. 예를 들어, 어레이의 하나의 로우 내 각각의 메모리 셀의 게이트는 액세스 라인(가령, 워드 라인)에 연결된다. NOR 아키텍처에서, 어레이의 하나의 컬럼 내 각각의 메모리 셀의 드레인이 데이터 라인(가령, 비트 라인)에 연결된다. NAND 아키텍처에서, 어레이의 하나의 스트링 내 각각의 메모리 셀의 드레인이 소스 라인과 비트 라인 사이에서, 함께 직렬로, 소스에서 소스로 연결된다.
NOR와 NAND 아키텍처 반도체 메모리 어레이 모두, 이들의 게이트에 연결된 워드 라인을 선택함으로써 특정 메모리 셀을 활성화하는 디코더를 통해 액세스된다. NOR 아키텍처 반도체 메모리 어레이에서, 활성화되면, 선택된 메모리 셀이 자신의 데이터 값을 비트 라인 상에 둠으로써, 특정 셀이 프로그램되는 상태에 따라 상이한 전류가 흐르게 한다. NAND 아키텍처 반도체 메모리 어레이에서, 하이 바이어스 전압이 드레인-측 선택 게이트(SGD) 라인에 인가된다. 각각의 그룹의 비선택 메모리 셀의 게이트에 연결된 워드 라인이 특정된 패스 전압(가령, Vpass)에서 구동되어, 패스 트랜지스터로서 각각의 그룹의 비선택 메모리 셀을 동작시킬 수 있다(가령, 이들의 저장된 데이터 값에 의해 제한되지 않는 방식으로 전류를 전달할 수 있다). 그런 다음 전류가 소스 라인으로부터 각각의 직렬 연결 그룹을 통해 비트 라인으로 흐르며, 선택 메모리 셀의 현재 인코딩된 데이터 값을 비트 라인 상에 두는 각각의 그룹의 비선택 메모리 셀에 의해서만 제한된다.
NOR 또는 NAND 아키텍처 반도체 메모리 어레이 내 플래시 메모리 셀이 하나 또는 다수의 프로그램된 상태로 개별적으로 또는 집합적으로 프로그램될 수 있다. 예를 들어, SLC(single-level cell)가 데이터의 하나의 비트를 나타내는 두 개의 프로그램된 상태 중 하나(가령, 1 또는 0)를 나타낼 수 있다. 그러나 플래시 메모리 셀은 2개 보다 많은 프로그램된 상태 중 하나를 나타낼 수 있으며, 이는 각각의 셀이 1보다 큰 이진 디지트(가령, 1보다 큰 비트)를 나타낼 수 있기 때문에 메모리 셀의 수를 증가시키지 않고 더 높은 밀도의 메모리의 제조를 가능하게 한다. 이러한 셀은 멀티-상태 메모리 셀, 멀티-디지트 셀, 또는 멀티-레벨 셀(MLC)로 지칭될 수 있다. 특정 예시에서, MLC는 셀 당 2개의 데이터 비트(가령, 4개의 프로그램된 상태 중 하나)를 저장할 수 있는 메모리 셀을 지칭할 수 있고, TLC(triple-level cell)는 셀 당 3개의 데이터 비트(가령, 8개의 프로그램된 상태 중 하나)를 저장할 수 있는 메모리 셀을 지칭할 수 있으며, QLC(quad-level cell)은 셀 당 4개의 데이터 비트를 저장할 수 있다. 본 명세서에서 MLC는 더 넓은 맥락에서 사용되는데, 1보다 큰 데이터 비트를 저장할 수 있는(즉, 2개보다 많은 프로그램된 상태를 나타낼 수 있는) 임의의 메모리 셀을 지칭할 수 있다.
전통적인 메모리 어레이는 반도체 기판의 표면 상에 배열되는 2-차원(2D)구조이다. 주어진 면적에 대한 메모리 용량을 증가시키고 비용을 감소시키기 위해, 개별 메모리 셀의 크기가 감소되어왔다. 그러나 개별 메모리 셀의 크기를 감소시키고, 따라서 2D 메모리 어레이의 메모리 밀도를 감소시키는 데 기술적 한계가 있다. 이에 따라, 3차원(3D) 메모리 구조, 가령, 3D NAND 아키텍처 반도체 메모리 디바이스가 메모리 밀도를 더 증가시키고 메모리 비용을 낮추기 위해 개발되고 있다.
이러한 3D NAND 디바이스는 종종 소스에 근접한 하나 이상의 SGS(source-side select gate)와 비트 라인에 근접한 하나 이상의 SGD(drain-side select gate) 사이에 직렬로 연결된(가령, 드레인에서 소스로 연결된) 저장 셀의 스트링을 포함한다. 예를 들어, SGS 또는 SGD는 하나 이상의 FET(field-effect transistor) 또는 MOS(metal-oxide semiconductor) 구조 디바이스 등을 포함할 수 있다. 일부 예시에서, 스트링은 각자의 워드 라인을 포함하는 복수의 수직으로 이격된 티어(tier)를 통해 수직으로 뻗어 있을 것이다. 반도체 구조(가령, 폴리실리콘 구조)는 저장 셀의 스트링에 인접하여 뻗어서 스트링의 저장 셀에 대한 채널을 형성할 수 있다. 수직 스트링의 예시에서, 폴리실리콘 구조는 수직으로 뻗어 있는 필라(pillar)의 형태를 가질 수 있다. 일부 예시에서, 스트링은 "접힐" 수 있고 따라서 U자 형태 필라에 대해 배열될 수 있다. 또 다른 예시에서, 복수의 수직 구조물이 하나씩 위 아래로 적층되어, 저장 셀 스트링의 적층 어레이를 형성할 수 있다.
메모리 어레이 또는 디바이스는 함께 조합되어 메모리 시스템의 저장 볼륨, 가령, SSD(solid-state drive), 또는 다양한 형태의 관리되는 메모리 디바이스 중 하나를 형성할 수 있다. 관리되는 메모리 디바이스는 알려진 산업 표준에 따라 구성 및 동작될 수 있다. 예를 들어, 관리되는 NAND 디바이스는 (비제한적 예시로서), UFS(Universal Flash Storage)™ 디바이스 또는 eMMC(embedded MMC)™ 디바이스 등일 수 있다. 예를 들어, 상기 예시의 경우, UFS 디바이스는 JEDEC(Joint Electron Device Engineering Council) 표준, 가령, JEDEC 표준 JESD223D, 명칭 "JEDEC UFS Flash Storage 3.0" 및/또는 이러한 표준의 업데이트 또는 후속 버전에 따라 구성될 수 있다. 마찬가지로, 식별된 eMMC 디바이스는 다시 JEDEC 표준 JESD84-A51, 명칭 "JEDEC eMMC standard 5.1" 및/또는 이러한 표준의 업데이트 또는 후속 버전에 따라 구성될 수 있다.
SSD는 예를 들어, 성능, 크기, 중량, 강건성, 동작 온도 범위, 및 전력 소비율의 측면에서 이동 부분을 갖는 전통적인 하드 드라이브에 비해 이점을 갖는 컴퓨터의 메인 저장 디바이스 등으로서 사용될 수 있다. 예를 들어, SSD에서는 자기 디스크 드라이브(가령, 전기기계 등)와 연관된 탐색 시간, 레이턴시, 또는 그 밖의 다른 딜레이가 감소될 수 있다. SSD는 비휘발성 메모리 셀, 가령, 플래시 메모리 셀을 이용해, 내부 배터리 공급 요건을 완화시킴으로써, 드라이브가 더 범용적(versatile)이고 컴팩트해지게 할 수 있다.
SSD는 다수의 메모리 디바이스, 가령, 다수의 다이 또는 논리 유닛(가령, 논리 장치 번호(logical unit number) 즉 LUN)을 포함할 수 있으며, 메모리 디바이스를 동작시키거나 외부 시스템과 인터페이싱하기 위한 논리 기능을 수행하는 하나 이상의 프로세서 또는 그 밖의 다른 제어기를 포함할 수 있다. 이러한 SSD는 그 상에 다수의 메모리 어레이 및 주변 회로를 포함하는 하나 이상의 플래시 메모리 다이를 포함할 수 있다. 플래시 메모리 어레이는 다수의 물리 페이지로 조직되는 메모리 셀의 다수의 블록을 포함할 수 있다. 많은 예시에서, SSD는 DRAM 또는 SRAM(또는 그 밖의 다른 형태의 메모리 다이 또는 그 밖의 다른 메모리 구조)를 또한 포함할 것이다. SSD는 메모리 동작, 가령, 메모리 디바이스와 호스트 간에 데이터(가령, 사용자 데이터 및 연관된 무결성 데이터, 가령, 에러 데이터 및 어드레스 데이터 등)를 전송하기 위한 읽기 또는 쓰기 동작 또는 메모리 디바이스로부터 데이터를 소거하기 위한 소거 동작과 연관된 호스트로부터 커맨드를 수신할 수 있다.
메모리 디바이스는 예를 들어, 하나(이상의) 선택 저장 기법을 구현하는, 하나 이상의 메모리 셀 어레이를 포함하는 저장 영역을 포함할 수 있는 개별 메모리 다이를 포함한다. 이러한 메모리 다이는 종종 메모리 어레이(들)을 동작시키기 위한 보조 회로를 포함할 것이다. "관리되는 메모리 디바이스"로서 일반적으로 알려진 또 다른 예시로는, 하나 이상의 메모리 다이의 동작을 제어하도록 구성된 제어기 기능과 연관된 하나 이상의 메모리 다이의 조립체가 있다. 이러한 제어기 기능은 외부 디바이스, 가령, 본 명세서의 차후 언급될 바와 같이 "호스트"와의 상호운용성을 단순화할 수 있다. 이러한 관리되는 메모리 디바이스에서, 제어기 기능은 메모리 어레이를 포함하는 하나 이상의 다이 또는 개별 다이 상에서 구현될 수 있다. 또 다른 예를 들면, 하나 이상의 메모리 디바이스는 제어기 기능과 조합되어 SSD(solid-stage drive) 저장 볼륨을 형성할 수 있다. 용어 "메모리 시스템"은, 본 명세서에서 사용될 때, 하나 이상의 메모리 다이 및 존재한다면 이러한 메모리 다이를 위한 임의의 제어기 기능부를 포함하며, 따라서 개별 메모리 디바이스, 관리되는 메모리 디바이스, 및 SSD를 포함한다.
본 기재의 목적으로, 예시적 실시 형태는 "관리되는 NAND" 디바이스라 명명되는 NAND 플래시 메모리 셀을 구현하는 관리된 메모리 디바이스를 포함한다. 이러한 관리되는 NAND 디바이스는 일반적으로, 본 명세서에서 기재된 구조 및 기능부를 포함하도록 적절하게 수정될 수 있는, 기재된 JEDEC UFS Flash Storage 3.0 규격에 따라 구성 및 동작될 수 있다. 그러나 기재된 기능부는 앞서 기재된 바와 같이 다른 저장 기법을 포함할 수 있는 다른 유형의 메모리 디바이스로 구현될 수 있는데, 이의 몇몇 비제한적 예시가 본 명세서에서 앞서 언급된 바 있으며, 앞서 언급된 다른 사업 표준 또는 비산업 표준 프로토콜에 따라 동작하도록 구성될 수 있다.
전자 디바이스, 가령, 모바일 전자 디바이스(가령, 스마트 폰, 태블릿 등), 자동차 응용분야에서 사용되기 위한 전자 디바이스(가령, 자동차 센서, 제어 유닛, 운전자-보조 시스템, 승객 안전 또는 안락 시스템 등), 및 인터넷-연결 기기 또는 디바이스(가령, IoT(internet-of-things) 디바이스 등)가 전자 디바이스의 유형, 사용 환경, 성능 기대치 등에 따라 변하는 저장 수요를 가진다.
전자 디바이스는 다음의 몇 가지 메인 구성요소로 나뉠 수 있다: 프로세서(가령, CPU(central processing unit) 또는 그 밖의 다른 메인 프로세서), 메모리(가령, 하나 이상의 휘발성 또는 비휘발성 랜덤-액세스 메모리(RAM) 메모리 디바이스, 가령, 동적 RAM(DRAM), 모바일 또 저전력 DDR SDRAM(double-data-rate synchronous DRAM) 등), 및 저장 디바이스(가령, NVM(non-volatile memory), 가령, 플래시 메모리, ROM(read-only memory), SSD, MMC, 또는 그 밖의 다른 메모리 카드 구조 또는 조립체 등). 특정 예시에서, 전자 디바이스는 사용자 인터페이스(가령, 디스플레이, 터치-스크린, 키보드, 하나 이상의 버튼 등), GPU(graphics processing unit), 전력 관리 회로, 기저대역 프로세서 또는 하나 이상의 트랜시버 회로 등을 포함할 수 있다.
도 1은 본 개시의 일부 예시에 따라 메모리 디바이스(100), 가령, 저장 디바이스의 다이어그램을 도시한다. 메모리 디바이스(100)는 하나 이상의 프로토콜, 가령, SATA(Serial Advanced Technology Attachment) 인터페이스, PCIe(Peripheral Component Interconnect Express) 인터페이스, USB(Universal Serial Bus) 인터페이스, UFS(Universal Flash Storage) 인터페이스, eMMC™ 인터페이스 또는 호스트 디바이스(135)와 통신하기 위한 하나 이상의 기타 커넥터 또는 인터페이스를 이용할 수 있는 하나 이상의 호스트 인터페이스(123)를 포함할 수 있다. 호스트(135)는 호스트 인터페이스(123)를 통해 하나 이상의 커맨드, 가령, 읽기 커맨드, 쓰기 커맨드, 소거 커맨드 등을 메모리 디바이스(100)로 전송할 수 있다. 호스트 인터페이스(123)는 제어기(105)의 일부이거나 개별 회로에 의해 구현될 수 있다. 메모리 디바이스(100)는 호스트 버스(137)를 통해 호스트 인터페이스를 통해 데이터, 커맨드 응답 등을 호스트 디바이스(135)로 전송할 수 있다.
메모리 디바이스(100)는 하나 이상의 메모리 제어기(105)를 포함할 수 있다. 제어기(105)는 하나 이상의 하드웨어 프로세서(115)를 포함할 수 있는 처리 회로(110)를 포함할 수 있다. 프로세서(115)는 메모리 디바이스의 동작을 수행, 가령, 호스트 인터페이스(123), 보호 영역 로직(122), 및 메모리 다이 인터페이스(125)를 구현하기 위한 펌웨어 또는 그 밖의 다른 소프트웨어 명령을 실행하는 범용 하드웨어 프로세서일 수 있다. 또 다른 예시에서, 프로세서(들)(115)는 하드웨어 로직 및/또는 소프트웨어 명령의 실행을 통해 메모리 디바이스(100)의 동작을 수행하도록 특정하게 설계된 특수 목적 하드웨어 프로세서일 수 있다. 처리 회로(110)는 또한, 다양한 제어 기능 및 메모리 관리 동작 및 이의 일부분을 수행하도록 구성된 로직 회로 및 그 밖의 다른 회로 구성요소를 포함할 수 있으며, 그 예시가 이하에서 기재된다.
도시된 예시에서, 메모리 디바이스(100)는 호스트 디바이스(135) 외부의 호스트 버스(137)를 통한 통신을 제공하는 호스트 인터페이스(123)를 포함한다. 호스트 인터페이스(123)의 구성은 메모리 디바이스(100)("메모리 시스템"이라고도 명명될 수 있음)의 특정 구성에 따라 다양한 형태를 가질 수 있다. 예를 들어, 메모리 디바이스(100)가 UFS 디바이스인 예시에서, 호스트 인터페이스는 적용 가능한 UFS 표준에 따를 것이다.
메모리 디바이스(100)는 또한 제어기(105)의 처리 회로(110)와 메모리 디바이스(100) 내 메모리 다이(130-A - 130N+1) 중 적어도 일부 부분 사이에 하나 이상의 메모리 다이 인터페이스(125)를 더 포함한다. 메모리 다이 인터페이스(125)는 제어기(105)의 일부이거나 개별 회로에 의해 구현될 수 있다. 예를 들어, UFS 디바이스의 예시에서, 메모리 다이 인터페이스(125) 중 하나 이상이 적절한 메모리 인터페이스, 가령, ONFI(Open NAND Flash Interface), 가령, ONFI 4.0 규격, 또는 그 이후 버전 또는 개정에 의해 정의된 것일 것이다.
메모리 디바이스(100)의 구성요소, 가령, 제어기(105)는 메모리 디바이스(100)의 동작을 수행하기 위한 RAM(random-access memory)(120)을 포함할 수 있다. 랜덤-액세스 메모리(120)는 제어기(105)와 별도이거나 도시된 바와 같이 제어기(105)에 일체 구성될 수 있다.
제어기(105)는 하나 이상의 메모리 다이(130-A - 130N+1)의 일부분인 메모리 디바이스의 메모리 셀과 인터페이싱함으로써 메모리의 하나 이상의 기능을 핸들링할 수 있다. 메모리 다이(130)의 예시적 구현예의 개략도가 도 4에 도시되어 있다. 제어기(105)는 메모리 다이 버스(127)를 가로질러 메모리 다이 인터페이스(125)를 통해 이들 메모리 다이와 통신할 수 있다. 일부 예에서, 메모리 다이는 자신 고유의 디바이스 제어기, 가령, 처리 회로 및 프로세서를 가져서 각자의 메모리 다이에 대한 동작을 제어할 수 있다. 이러한 디바이스 제어기는 디바이스 저장 어레이와 공통 다이 상에서 형성되거나 다이 저장 어레이를 포함하는 것과 다른 다이 상에 있을 수 있다. 두 가지 구성 모두 본 명세서에 기재된 식별된 "메모리 다이" (130A-N+1)에 의해 포함된다. 메모리 다이는 NAND 다이, 3-차원 NAND 다이, 상 변화 메모리 다이 등일 수 있다.
호스트 디바이스(135)는 개인용 컴퓨터, 스마트폰, 태블릿, 집적 회로의 일부분, IoT(Internet of Things) 디바이스(가령, 냉장고 또는 그 밖의 다른 가전기기, 센서, 모터 또는 액추에이터, 모바일 통신 디바이스, 자동차, 드론 등) 등일 수 있다.
설명 목적으로 예시적 메모리 동작 및 관리 기능이 NAND 메모리의 맥락에서 기재될 수 있다. 해당 분야의 통상의 기술자라면, 그 밖의 다른 형태의 비휘발성 메모리가 유사한 메모리 동작 또는 관리 기능을 가질 수 있음을 알 것이다. 이러한 NAND 관리 기능은 마모 레벨링(wear leveling)(가령, 가비지 수집 또는 교정), 에러 검출 또는 수정, 블록 은퇴 또는 하나 이상의 그 밖의 다른 메모리 관리 기능을 포함한다.
메모리 다이(130-A-130-N+1)는 예를 들어 다수의 플레인, 서브-블록, 블록 또는 페이지로 배열된 다수의 메모리 셀을 포함할 수 있다. 예를 들어, 48GB TLC NAND 메모리 디바이스는 페이지 당 18,592 바이트(B)의 데이터(16,384 + 2208 바이트), 블록 당 1536개의 페이지, 평면 당 548개의 블록, 디바이스 당 4개 이상의 평면을 포함할 수 있다. 또 다른 예로, 32GB MLC 메모리 디바이스(셀 당 2개의 비트 데이터(즉, 4개의 프로그래밍 가능 상태)를 저장)는 페이지 당 18,592 바이트(B)의 데이터(16,384 + 2208 바이트), 블록 당 1024개의 페이지, 평면 당 548개의 블록, 및 디바이스 당 4개의 평면을 포함할 수 있지만, 대응하는 TLC 메모리 디바이스로서 요구되는 쓰기 시간이 절반이고 프로그램/소거(P/E) 사이클이 두 배이다. 또 다른 예시가 그 밖의 다른 숫자 또는 배열을 포함할 수 있다. 일부 예에서, 메모리 디바이스 또는 그 일부는 SLC 모드 또는 원하는 MLC 모드(가령, TLC, QLC 등)에서 선택적으로 동작할 수 있다. 메모리 셀의 예시적 배열이 도 2-3과 관련하여 도시되고 기재된다.
동작 중에, 데이터는 일반적으로 페이지로 메모리 디바이스(100)에 써지거나 메모리 디바이스로부터 읽히고 블록으로 소거된다. 그러나, 하나 이상의 메모리 동작(예를 들어, 읽기, 쓰기, 소거 등)은 필요에 따라 더 크거나 더 작은 메모리 셀 그룹에서 수행될 수 있다. 메모리 디바이스(100)의 데이터 전송 크기는 일반적으로 페이지라고 지칭되며, 반면에 호스트의 데이터 전송 크기는 일반적으로 섹터라고 지칭된다.
데이터의 페이지는 다수의 바이트의 사용자 데이터(가령, 다수의 데이터 섹터를 포함하는 데이터 페이로드) 및 이에 대응하는 메타 데이터를 포함할 수 있지만, 페이지의 크기는 종종 사용자 데이터를 저장하는 데 사용되는 바이트 수만 일컫는다. 예를 들어, 페이지 크기가 4KB인 데이터 페이지는 4KB의 사용자 데이터(가령, 512B를 섹터 크기로 가정 한 8개의 섹터)와 사용자 데이터에 대응하는 바이트 수(가령, 32B, 54B, 224B 등)의 메타데이터, 가령, 무결성 데이터(가령, 에러 검출 또는 정정 코드 데이터), 어드레스 데이터(가령, 논리 어드레스 데이터 등), 또는 사용자 데이터와 연관된 그 밖의 다른 메타데이터를 포함할 수 있다.
상이한 유형의 메모리 셀은 상이한 페이지 크기를 제공할 수 있거나 이와 연관된 상이한 양의 메타데이터를 필요로 할 수 있다. 예를 들어, 상이한 메모리 디바이스 유형은 데이터의 페이지의 무결성을 보장하는 데 필요한 상이한 양의 메타데이터를 도출할 수 있는 상이한 비트 에러 율을 가질 수 있다(가령, 더 높은 비트 에러 율을 갖는 메모리 디바이스가 더 낮은 비트 에러 율을 갖는 메모리 디바이스보다 더 많은 바이트의 에러 정정 코드 데이터를 필요로 할 수 있다). 예를 들어, MLC(multi-level cell) NAND 플래시 디바이스는 대응하는 SLC(single-level cell) NAND 플래시 디바이스보다 높은 비트 에러율을 가질 수 있다. 따라서 MLC 디바이스는 대응하는 SLC 디바이스보다 에러 데이터에 대한 더 많은 메타데이터 바이트를 필요로 할 수 있다.
메모리 다이(130)의 하나 이상의 메모리 셀은 액세스 인증을 필요로 하는 보호 영역일 수 있다. 언급한 바와 같이, 인증은 보호 영역 내 하나 이상의 메모리 셀을 액세스하기 위한 요청과 함께 비밀 값을 제공하는 것을 통한 것일 수 있다. 보호 영역 로직(122)은 메모리 다이(130A-N+1)에 의해 제공되는 저장소의 하나 이상의 보호되는 영역, 가령, RPMB로의 액세스 보호를 구현한다. 보호 영역 로직(122)은 보호 영역으로의 액세스에 대한 요청이 인증됨을 검증할 수 있다. 보호 영역 로직(122)은 보호 영역에 대한 액세스 요청을 수신할 수 있으며 가령, 보안 키의 저장된 카피를 이용함으로써 요청(가령, MAC 값)에 포함된 비밀이 올바름을 검증할 수 있다.
보안 키는 메모리 다이(130A-N+1) 내 한 위치에 저장되거나 메모리 디바이스(100) 내 특수 메모리 칩에 저장될 수 있다. 보호 영역 로직(122)은 키를 교체 또는 수정하기 위해 키-수정 펌웨어 객체에 포함된 명령을 포함할 수 있다. 이 기능이 활성화되는지 여부는 하나 이상의 구성 셋팅, 동작 메트릭, 및 활성화 잠금 조건(가령, 임계값) 또는 호환 가능한 범용 펌웨어의 존재 여부에 따라 달라질 수 있다. 이들 구성 셋팅, 동작 메트릭, 및 활성화 잠금 조건은 키-수정 펌웨어 객체로 인코딩되거나, 메모리 다이(130A-N+1)의 메모리 셀에 저장될 수 있거나, 메모리 디바이스의 다른 메모리(가령, 정적 메모리)에 저장될 수 있다. 예를 들어, 보호 영역 로직(122)은 도 6 및 9의 흐름도를 구현할 수 있으며, 도 8의 상태도를 구현할 수 있다. 언급한 바와 같이, 보호 영역 로직(122)은 정규 펌웨어 객체 및/또는 키-수정 펌웨어 객체에 의해 제공되는 명령을 포함할 수 있다. 보호 영역 로직(122)은 하나 이상의 표준, 가령, JEDEC 표준에 의해 문서화된 바와 같이 RPMB 프로세스를 구현할 수 있다.
호스트(135)는 호스트(135)가 읽기, 쓰기 및 그 밖의 다른 동작을 보호 메모리 영역으로 요청하는 액세스 요청을 전송하기 위한 명령을 구현할 수 있는 호스트 보호 영역 로직(138)을 가질 수 있다. 호스트 보호 영역 로직(138)은 보호 메모리 영역에 대한 요청의 포맷(가령, JEDEC 표준에 따르는 RPMB 요청)을 정할 수 있는데, 가령, (호스트 상에 저장된 비밀 키에 기초하여 MAC을 계산함으로써) 요청에 비밀 값을 넣을 수 있다. 호스트 보호 영역 로직(138)은 또한 메모리 디바이스(100) 상의 하나 이상의 구성 셋팅, 가령, 보안 키 교체를 활성화하는 구성 셋팅의 셋팅을 요청하기 위한 하나 이상의 동작을 실행할 수 있다. 또한, 호스트 보호 영역 로직(138)은 보호 영역 로직(122)과 통신함으로써 보안 키를 교체, 소거, 또는 그 밖의 다른 방식으로 (가령, 요청 메시지 및 응답 메시지를 통해) 변경하기 위한 로직을 가질 수 있다.
도 2는 본 개시의 일부 예시에 따라, 2차원 스트링 어레이(가령, 스트링(205-207)) 및 티어(가령, 각자의 워드 라인(WL)(WL0-WL7)(210-217), 드레인-측 선택 게이트(SGD) 라인(225), 소스-측 선택 게이트(SGS) 라인(230) 등)로 배열된 복수의 메모리 셀(202) 및 감지 증폭기 또는 디바이스(260)를 포함하는 NAND 아키텍처 반도체 메모리 어레이(200)의 일부분의 예시적 개략도를 도시한다. 메모리 어레이(200)는 도 1로부터 메모리 다이(130)의 메모리 셀의 하나의 물리 페이지의 일부분의 예시적 개략도를 도시할 수 있다.
메모리 셀의 각각의 스트링은 각자의 소스-측 선택 게이트(SGS)(가령, SGS(231-233))를 이용해 소스 라인(SRC)(235)에 연결되고, 각자의 드레인-측 선택 게이트(SGD)(가령, SGD(226-228))를 이용해 각자의 데이터 라인(가령, 비트 라인(BL)(BL0-BL2 (220-222))으로 연결된다. 도 2의 예시에서 8개의 티어(가령, 워드 라인(WL) WL0-WL7(210-217)) 및 3개의 데이터 라인(BL0-BL2(226-228))이 도시되어 있지만, 그 밖의 다른 예시가 필요에 따라 더 많거나 더 적은 티어 또는 데이터 라인을 갖는 메모리 셀의 스트링을 포함할 수 있다.
NAND 아키텍처 반도체 메모리 어레이, 가령, 예시적 메모리 어레이(200)에서, 선택된 메모리 셀을 포함하는 특정 데이터 라인과 연관된 전류 또는 전압 변동을 감지함으로써 선택된 메모리 셀(202)의 상태가 액세스될 수 있다. 메모리 어레이(200)는 하나 이상의 드라이버를 사용하여 (예를 들어, 제어 회로, 하나 이상의 프로세서, 디지털 로직 등에 의해) 액세스될 수 있다. 예를 들어, 하나 이상의 드라이버는, 특정 메모리 셀 또는 메모리 셀 세트 상에서 수행되는 것이 바람직한 동작의 유형에 따라, 하나 이상의 데이터 라인(가령, 비트 라인(BL0-BL2)), 액세스 라인(가령, 워드 라인(WL0-WL7)), 또는 선택 게이트로 특정 전위를 구동함으로써 특정 메모리 셀 또는 메모리 셀 세트를 활성화할 수 있다.
메모리 셀에 데이터를 프로그램하거나 쓰기 위해, 프로그래밍 전압(Vpgm)(가령, 하나 이상의 프로그래밍 펄스 등)이 선택된 워드 라인(가령, WL4)에 인가될 수 있으며 따라서 선택된 워드 라인(가령, WL4에 연결된 메모리 셀의 제어 게이트(CG)(241-243))에 연결된 각각의 메모리 셀의 제어 게이트에 인가될 수 있다. 프로그래밍 펄스는 예를 들어 15V 또는 그 근처에서 시작할 수 있으며, 특정 예에서는 각각의 프로그래밍 펄스 인가 동안 크기가 증가할 수 있다. 프로그램 전압이 선택된 워드 라인에 인가되는 동안, 전위, 가령, 접지 전위(가령, Vss)가 프로그램 타깃 메모리 셀의 데이터 라인(가령, 비트 라인) 및 기판(및 따라서 소스와 드레인 사이의 채널)에 인가되어, 상기 채널에서 타깃 메모리 셀의 전하 저장 구조로의 전하 이동(가령, 직접 주입 또는 FN(Fowler-Nordheim) 터널링 등)을 도출할 수 있다. 이러한 전하 저장 구조는 예를 들어, 각자의 메모리 셀의 부동 게이트 또는 전하 트랩 영역을 포함할 수 있다. 부동 게이트 메모리 셀에서는 전하가 절연 폴리실리콘 구조에 저장되며, 반면에 전하 트랩 메모리 셀에서는 전하가 일반적으로 유전체 구조에 저장된다.
이와 달리, 패스 전압(pass voltage)(Vpass)이 프로그래밍 타깃이 아닌 메모리 셀을 갖는 하나 이상의 워드 라인에 인가되거나, 억제 전압(inhibit voltage)(가령, Vcc)이 프로그램 타깃이 아닌 메모리 셀을 갖는 데이터 라인(가령, 비트 라인)에 인가되어, 가령, 전하가 채널로부터 이러한 비-타깃 메모리 셀의 전하 저장 구조로 이동되지 않게 할 수 있다. 패스 전압은 예를 들어 인가되는 패스 전압의 프로그램 타깃 워드 라인에 대한 근접성에 따라 가변적일 수 있다. 억제 전압은 공급 전압(Vcc), 가령, 접지 전위(가령, Vss)에 대한, 외부 소스 또는 서플라이(가령, 배터리, AC-DC 변환기 등)로부터의 전압을 포함할 수 있다.
예를 들어, 프로그래밍 전압(가령, 15V 이상)이 특정 워드 라인, 가령, WL4에 인가되는 경우, 10V의 패스 전압이 하나 이상의 다른 워드 라인, 가령, WL3, WL5 등에 인가되어, 비-타깃 메모리 셀의 프로그래밍을 억제하거나, 프로그램 타깃이 아닌 메모리 셀 상에 저장된 값을 유지할 수 있다. 인가된 프로그램 전압과 비-타깃 메모리 셀 사이의 거리가 증가함에 따라, 비-타깃 메모리 셀의 프로그래밍을 억제하는 데 필요한 패스 전압이 감소할 수 있다. 예를 들어, 15V의 프로그래밍 전압이 WL4에 인가되는 경우, 10V의 패스 전압이 WL3 및 WL5에 인가될 수 있고, 8V의 패스 전압이 WL2 및 WL6에 인가될 수 있으며, 7V의 패스 전압이 WL1 및 WL7에 인가되는 등일 수 있다. 다른 예에서, 패스 전압, 또는 워드 라인의 수 등이 더 높거나 낮을 수 있다.
하나 이상의 데이터 라인(예를 들어, 제1, 제2 또는 제3 비트 라인(BL0-BL2)(220-222))에 연결된 감지 증폭기(260)는, 특정 데이터 라인 상의 전압 또는 전류를 감지함으로써, 각자의 데이터 라인 내 각각의 메모리 셀의 상태를 검출할 수 있다.
하나 이상의 프로그래밍 펄스(예를 들어, Vpgm)의 인가들 사이에, 검증 동작이 선택된 메모리 셀이 의도된 프로그래밍 상태에 도달했는지 여부를 결정하도록 수행될 수 있다. 선택한 메모리 셀이 의도된 프로그래밍 상태에 도달하는 경우, 추가 프로그래밍되지 않도록 억제될 수 있다. 선택한 메모리 셀이 이의 의도된 프로그래밍 상태에 도달하지 않은 경우, 추가 프로그래밍 펄스가 인가될 수 있다. 선택된 메모리 셀이 특정 개수(가령, 최대 개수)의 프로그래밍 펄스 후에 이의 의도된 프로그래밍된 상태에 도달하지 않은 경우, 선택된 메모리 셀, 또는 이러한 선택된 메모리 셀과 연관된 스트링, 블록, 또는 페이지가 결함 있는 것으로 마킹될 수 있다.
단일 레벨 셀(SLC)의 경우, 셀로 프로그래밍되는 두 개의 가능한 전압 레벨이 존재하며, 하나의 전압 레벨은 이진수 '1'을 나타내고 또 다른 전압 레벨은 이진수 '0'을 나타낸다 멀티-레벨 셀(MLC)의 경우, 셀로 프로그래밍되는 네 개의 가능한 전압 레벨이 존재한다. 네 개의 가능한 전압 레벨은 '00', '01','10', 및 '11'을 나타낸다. MLC 셀을 프로그래밍하기 위해, 다수의 프로그래밍 펄스가 적용된다. 제1 펄스가 셀의 최상위 비트 또는 최하위 비트를 나타내는 데이터의 제1 "페이지"를 프로그래밍한다. 제2 펄스는 제1 펄스에 의해 프로그래밍되지 않은 셀의 다른 비트를 나타내는 데이터의 제2 "페이지"를 프로그래밍한다. 마찬가지로, 트리플 레벨 셀(TLC)이 8개의 가능한 전압 레벨을 저장하며 쿼드 레벨 셀(QLC)이 16개의 가능한 전압 레벨을 저장한다.
하나 이상의 메모리 셀에 저장된 값을 읽기 위해, 읽기 전압이 선택된 셀의 워드라인에 인가된다. 워드라인의 셀에 저장된 전압이 읽기 전압보다 큰 경우, 셀은 전압을 감지 증폭기로 전달한다. SLC 셀의 경우, '1'과 '0'을 나타내는 두 개의 전압 중에 읽기 전압이 선택된다. MLC, TLC, 및 QLC의 경우, 다수의 읽기 동작이 셀에 저장된 각각의 비트를 읽는 데 사용되는데 - 각각의 읽기 동작은 상이한 읽기 전압을 이용한다.
메모리 셀 또는 메모리 셀 그룹을 소거하기 위하여(가령, 소거는 일반적으로 블록 또는 서브-블록 단위로 수행됨), 타깃 메모리 셀의 워드 라인이 전위, 가령, 접지 전위(가령, Vss)로 유지되면, 소거 전압(Vers)이 (가령, 하나 이상의 비트 라인, 선택 게이트 등을 이용해) 소거 타깃인 메모리 셀의 기판(그리고 따라서 소스와 드레인 간 채널)에 인가되어, 타깃 메모리 셀의 전하 저장 구조물로부터 채널로의 전하 이동(가령, 직접 주입 또는 FN(Fowler-Nordheim) 터널링 등)을 도출할 수 있다.
도 3은 블록(가령, 블록 A(301A), 블록 B(301B) 등) 및 서브-블록(가령, 서브-블록 A0(301A0), 서브-블록 An(301An), 서브-블록 B0(301B0), 서브-블록 Bn(301Bn) 등)으로 구성되는 메모리 셀의 다수의 스트링(가령, A0 메모리 스트링(305A0-307A0), An 메모리 스트링(305An-307An), B0 메모리 스트링(305B0-307B0), Bn 메모리 스트링(305Bn-307Bn) 등)을 포함하는 3D NAND 아키텍처 반도체 메모리 어레이(300)의 예시적 개략도를 도시한다. 메모리 어레이(300)는 일반적으로 블록, 디바이스 또는 메모리 디바이스의 그 밖의 다른 유닛에서 발견될 더 많은 개수의 유사한 구조의 일부를 나타낸다. 메모리 어레이(300)는 도 1의 메모리 다이(130)를 구성하는 메모리 셀의 일부분의 예시적 개략도를 도시할 수 있다.
메모리 셀의 각각의 스트링은 소스 라인(SRC)(335) 또는 소스-측 선택 게이트(SGS)(가령, A0 SGS(331A0-333A0), An SGS(331An-333An), B0 SGS(331B0-333B0), Bn SGS(231Bn-233Bn) 등)와 드레인-측 선택 게이트(SGD)(가령, A0 SGD(326A0-328A0), An SGD(326An-328An), B0 SGD(326B0-328B0), Bn SGD(326Bn-328Bn) 등) 사이에서, Z 방향으로, 소스에서 드레인으로 적층되는 전하 저장 트랜지스터(가령, 부동 게이트 트랜지스터, 전하-트랩 구조물 등)의 다수의 티어를 포함한다. 3D 메모리 어레이의 메모리 셀의 각각의 스트링은 X 방향을 따라 데이터 라인(가령, 비트 라인(BL) BL0-BL2(320-322))으로 배열될 수 있고 Y 방향을 따라 물리 페이지로 배열될 수 있다.
물리 페이지 내에서, 각각의 티어는 메모리 셀의 로우(row)를 나타내고, 메모리 셀의 각각의 스트링은 컬럼을 나타낸다. 서브-블록은 하나 이상의 물리 페이지를 포함할 수 있다. 블록은 다수의 서브-블록(또는 물리 페이지)(가령, 128, 256, 384 등)을 포함할 수 있다. 본 명세서에서 두 개의 블록을 갖고, 각각의 블록이 두 개의 서브-블록을 가지며, 각각의 서브-블록이 단일 물리 페이지를 가지며, 각각의 물리 페이지가 메모리 셀의 세 개의 스트링을 가지며, 각각의 스트링이 메모리 셀의 8개의 티어를 갖는 것으로 나타나지만, 또 다른 예에서, 메모리 어레이(300)는 더 많거나 더 적은 블록, 서브-블록, 물리 페이지, 메모리 셀의 스트링, 메모리 셀 또는 티어를 포함할 수 있다. 예를 들어, 메모리 셀의 각각의 스트링은 더 많거나 더 적은 티어(예를 들어, 16, 32, 64, 128 등)뿐 아니라 원하는 대로 전하 저장 트랜지스터 위 또는 아래의 반도체 물질의 하나 이상의 추가 티어(가령, 선택 게이트, 데이터 라인 등)까지 포함할 수 있다. 예를 들어, 48GB TLC NAND 메모리 디바이스는 페이지 당 18,592 바이트(B)의 데이터(16,384 + 2208 바이트), 블록 당 1536 페이지, 평면 당 548 블록, 디바이스 당 4개 이상의 평면을 포함할 수 있다.
메모리 어레이(300) 내 각각의 메모리 셀은 액세스 라인(가령, 워드 라인(WL) WL00-WL70(310A-317A), WL01-WL71(310B-317B) 등))에 연결된(가령, 전기적으로 또는 그 밖의 다른 방식으로 연결된) 제어 게이트(CG)를 포함하며, 이는 필요에 따라 제어 게이트(CG)를 특정 티어, 또는 티어의 일부분에 걸쳐 집합적으로 연결한다. 3D 메모리 어레이 내 특정 티어 및 이에 따른 스트링 내 특정 메모리가 각자의 액세스 라인을 이용해 액세스 또는 제어될 수 있다. 선택 게이트의 그룹은 다양한 선택 라인을 이용하여 액세스될 수 있다. 예를 들어, A0 SGD(326A0-328A0)이 A0 SGD 라인 SGDA0(325A0)을 이용해 액세스될 수 있고, An SGD(326An-328An)이 SGD 라인 SGDAn(325An)를 이용해 액세스될 수 있고, B0 SGD(326B0-328B0)이 B0 SGD 라인 SGDB0(325B0)를 이용해 액세스될 수 있으며, Bn SGD(326Bn-328Bn)는 Bn SGD 라인 SGDBn(325Bn)를 이용해 액세스될 수 있다. A0 SGS(331A0-333A0) 및 An SGS(331An-333An)이 게이트 선택 라인 SGS0(330A)를 이용해 액세스될 수 있으며, B0 SGS(331B0-333B0) 및 Bn SGS(331Bn-333Bn)이 게이트 선택 라인 SGS1(330B)을 이용해 액세스될 수 있다.
하나의 예에서, 메모리 어레이(300)는 어레이의 각자의 티어의 각각의 메모리 셀의 제어 게이트(CG) 또는 선택 게이트(또는 CG 또는 선택 게이트의 일부분)을 연결하도록 구성되는 반도체 물질(가령, 폴리실리콘 등)의 다수의 레벨을 포함할 수 있다. 어레이 내 메모리 셀의 특정 스트링이 비트 라인(BL)과 선택 게이트 등의 조합을 이용해 액세스, 선택, 또는 제어될 수 있으며, 특정 스트링 내 하나 이상의 티어에서의 특정 메모리 셀이 하나 이상의 액세스 라인(가령, 워드 라인)을 이용해 액세스, 선택, 또는 제어될 수 있다.
도 4는 본 개시의 일부 예시에 따르는 메모리 다이(400)의 예시적 블록도를 도시한다. 메모리 다이(400)는 도 1의 메모리 다이(130A-130N+1)의 하나의 예시일 수 있다. 메모리 다이(400)는 복수의 메모리 셀(404)을 갖는 메모리 어레이(402), 및 메모리 어레이(402)와의 통신을 제공하거나 메모리 어레이에 대한 하나 이상의 메모리 동작을 수행하기 위한 하나 이상의 회로 또는 구성요소를 포함할 수 있다. 메모리 다이(400)는 로우 디코더(412), 컬럼 디코더(414), 감지 증폭기(420), 페이지 버퍼(422), 선택기(424), 입/출력(I/O) 회로(426) 및 메모리 제어 유닛(430)의 형태를 가지며 앞서 기재된 바와 같이 하나 이상의 프로세서를 포함할 수 있는 처리 회로를 포함하는 전용 메모리 제어기를 포함할 수 있다.
메모리 어레이(402)의 메모리 셀(404)은 블록, 가령, 제1 및 제2 블록(402A, 402B)으로 배열될 수 있다. 각각의 블록은 서브-블록을 포함할 수 있다. 예를 들어, 제1 블록(402A)은 제1 및 제2 서브-블록(402A0, 402An)을 포함할 수 있고, 제2 블록(402B)은 제1 및 제2 서브-블록(402B0, 402Bn)을 포함할 수 있다. 각각의 서브-블록은 다수의 물리 페이지를 포함할 수 있으며, 각각의 페이지는 다수의 메모리 셀(404)을 포함한다. 본 명세서에 두 개의 블록을 갖고, 각각의 블록은 두 개의 서브-블록을 가지며, 각각의 서브-블록은 다수의 메모리 셀(404)을 갖는 것이 도시되어 있지만, 또 다른 예시에서, 메모리 어레이(402)는 더 많거나 더 적은 블록, 서브-블록, 메모리 셀 등을 포함할 수 있다. 또 다른 예에서, 메모리 셀(404)은 다수의 로우, 컬럼, 페이지, 서브-블록, 블록 등으로 배열될 수 있으며, 예를 들어, 액세스 라인(406), 제1 데이터 라인(410), 또는 하나 이상의 선택 게이트, 소스 라인 등을 이용해 액세스될 수 있다.
메모리 제어 유닛(430)은 (도 1의 메모리 디바이스(100)의 제어기(105) 및 호스트 인터페이스(123)에 대해 기재된) 메모리 제어기와의 메모리 인터페이스에서 제어 라인(432) 상에서 수신되는 하나 이상의 신호 및/또는 명령/커맨드에 따라 메모리 다이(400)의 메모리 동작을 제어할 수 있다. 이러한 신호 및/또는 명령은, 예를 들어, 희망 동작(가령, 쓰기, 읽기, 소거 등)을 가리키는 하나 이상의 클록 신호 및/또는 제어 신호, 또는 하나 이상의 어드레스 라인(416) 상에서 수신되는 어드레스 신호(A0-AX)를 포함할 수 있다. 메모리 다이(400) 외부의 하나 이상의 디바이스는 제어 라인(432) 상의 제어 신호, 또는 어드레스 라인(416) 상의 어드레스 신호의 값을 제어할 수 있다. 메모리 다이(400) 외부의 디바이스의 비제한적 예로는, 호스트, 메모리 제어기, 프로세서, 또는 도 4에 도시되지 않는 하나 이상의 회로 또는 구성요소가 있을 수 있다.
메모리 다이(400)는 액세스 라인(406) 및 제1 데이터 라인(410)을 이용해 메모리 셀(404) 중 하나 이상으로 데이터를 전송(가령, 쓰기 또는 소거)하거나 메모리 셀 중 하나 이상으로부터 데이터를 전송(가령, 읽기)할 수 있다. 로우 디코더(412) 및 컬럼 디코더(414)는 어드레스 라인(416)으로부터 어드레스 신호(A0-AX)를 수신 및 디코딩할 수 있고, 액세스될 메모리 셀(404)을 결정할 수 있으며, 가령, 앞서 기재된 바와 같이 액세스 라인(406) 중 하나 이상(가령, 복수의 워드 라인(WL0-WLm) 중 하나 이상) 또는 제1 데이터 라인(410)(가령, 복수의 비트 라인(BL0-BLn) 중 하나 이상)에 신호를 제공할 수 있다.
메모리 다이(400)는 제1 데이터 라인(410)을 이용해 메모리 셀(404) 상의 데이터의 값을 결정(가령, 읽기)하거나 여기에 써질 데이터의 값을 결정하도록 구성된 감지 회로, 가령, 감지 증폭기(420)를 포함할 수 있다. 예를 들어, 메모리 셀(404)의 선택된 스트링에서, 감지 증폭기(420) 중 하나 이상은 메모리 어레이(402)에서 선택된 스트링을 통해 데이터 라인(410)으로 흐르는 읽기 전류에 응답하여 선택된 메모리 셀(404)에서 논리 레벨을 읽을 수 있다.
메모리 다이(400) 외부의 하나 이상의 디바이스, 가령, 제어기(105)는 I/O 라인(DQ0-DQN)(408), 어드레스 라인(416)(A0-AX), 또는 제어 라인(432)을 사용하여 메모리 다이(400)와 통신할 수 있다. 입/출력(I/O) 회로(426)는 예를 들어, 제어 라인(432) 및 어드레스 라인(416)에 따라, I/O 라인(408)을 이용해 메모리 디바이스(400) 안팎으로, 가령, 페이지 버퍼(422) 또는 메모리 어레이(402) 안팎으로 데이터의 값을 전송할 수 있다. 페이지 버퍼(422)는 데이터가 메모리 어레이(402)의 관련 부분으로 프로그래밍되기 전에 메모리 다이(400) 외부의 하나 이상의 디바이스로부터 수신된 데이터를 저장할 수 있거나, 데이터가 메모리 디바이스(400) 외부의 하나 이상의 디바이스로 전송되기 전에 메모리 어레이(402)로부터 읽힌 데이터를 저장할 수 있다.
컬럼 디코더(414)는 어드레스 신호(A0-AX)를 수신하고 하나 이상의 컬럼 선택 신호(CSEL1-CSELn)로 디코딩할 수 있다. 선택기(424)(예를 들어, 선택 회로)는 컬럼 선택 신호(CSEL1-CSELn)를 수신하고 메모리 셀(404)로부터 읽히거나 메모리 셀로 프로그램될 데이터의 값을 나타내는 페이지 버퍼(422)에서 데이터를 선택할 수 있다. 선택된 데이터는 제2 데이터 라인(418)을 사용하여 페이지 버퍼(422)와 I/O 회로(426) 사이에서 전송된다. 일부 예시에서, 플래시 변환 층(도시되지 않음)이 호스트에 의해 제공되는 어드레스를 로우 디코더(412) 및 컬럼 디코더(414)에 의해 사용되는 물리 메모리 어드레스로 매핑하여, 메모리 어레이(402) 내 데이터를 읽을 수 있다.
메모리 제어 유닛(430)은 양 및 음의 공급 신호, 가령, 공급 전압(Vcc)(434) 및 음의 서플라이(Vss)(436)(가령, 접지 전위)을 외부 소스 또는 서플라이(가령, 내부 또는 외부 배터리, AC-DC 변환기 등)으로부터 수신할 수 있다. 특정 예에서, 메모리 제어 유닛(430)은 양 또는 음의 공급 신호를 내부적으로 제공하기 위해 조정기(428)를 포함할 수 있다.
메모리 제어 유닛(430)은 RAM(Random Access Memory), 가령, SRAM(431)을 이용해 메모리 다이(400)의 메모리 동작을 제어하기 위한 동작을 수행하는 것을 보조할 수 있다. 예를 들어, SRAM(431)은 하나 이상의 명령, 작업 값, 및 그 밖의 다른 계산을 저장할 수 있다. 메모리 제어 유닛(430)은 소프트웨어 명령 세트, 가령, SRAM(431) 상에서 완전히 또는 부분적으로 존재할 수 있는 마이크로코드를 메모리 제어 유닛(430)(가령, 전용 레지스터, ROM, 플래시 또는 그 밖의 다른 전용 메모리) 내에서, 하나 이상의 메모리 셀(가령, 메모리 셀(404)) 내 등에서 실행시킬 수 있다. SRAM(431)은 메모리 제어 유닛(430)에 의해 사용되는 하나 이상의 페이지 버퍼를 저장하여, 메모리 셀(가령, 메모리 셀(404))로부터 읽히거나 메모리 셀에 써지는 데이터를 임시 저장할 수 있다.
키 교체
언급한 바와 같이, 호스트 디바이스의 OEM 또는 그 밖의 다른 방식으로 인가된 사용자가 회로 기판 또는 그 밖의 다른 구성요소에서의 결함을 재작업하는 것을 가능하게 하도록 보안 키를 리셋(가령, 소거, 삭제 및/또는 재프로그래밍)하기를 원할 수 있다. 메모리 디바이스 제조사는 OEM 고객 및 기타 인가된 사용자에게 키를 소거하는 특수 키-수정 펌웨어를 제공할 수 있다. 이들 펌웨어 객체는 FFU(field firmware update)(현장 펌웨어 업데이트) 메커니즘과 같은 메커니즘을 통해 메모리 디바이스에 로딩될 수 있다. 앞서 기재된 바와 같이 이 키-수정 펌웨어는 비인가 사용자가 키-수정 펌웨어로의 액세스 권한을 얻고 이를 이용해 경쟁자의 메모리 디바이스에 맬웨어를 배치하거나, 보안 키를 스푸핑하거나, 그 밖의 다른 악의적 조치를 수행하는 경우 보안 위험이 될 수 있다.
앞서 언급한 바와 같이, 이러한 보안 위험을 피하는 한 가지 방법은 각각의 고유 고객에 대해 생산 및 키-수정 펌웨어의 고유한 쌍을 생성하는 것이다. 각각의 고객은 특정 동작 펌웨어 객체 및 쌍을 이루는 키-수정 펌웨어를 가질 수 있다. 키-수정 펌웨어는 매칭되는 동작 펌웨어로만 디바이스 상의 보안 키를 수정한다. 따라서 제1 OEM에 대한 키-수정 펌웨어의 누출이 제2 OEM에 영향을 미치지 않을 것이다. 이는 커스텀 동작 펌웨어가 메모리 디바이스 제조사에 의해 로딩될 필요가 있기 때문에 메모리 디바이스를 제조하는 비용 및 복잡도를 추가한다. 일부 예시에서, 이러한 부담을 완화하기 위해, 범용 동작 펌웨어가 메모리 디바이스 제조사에 의해 로딩될 수 있다. 그런 다음 커스텀 동작 펌웨어가 고객 OEM으로 제공되고 현장 펌웨어 업데이트(FFU: Field Firmware Update) 프로세스를 사용하여 고객 OEM에 의해 로딩될 수 있다.
도 5는 본 개시의 일부 예시에 따르는 매칭된 동작 펌웨어와 키-수정 펌웨어를 이용해 보안 키의 비인가 수정을 제한하기 위한 제1 예시적 흐름도(500)를 도시한다. 예시적인 흐름도(500)는 FFU 업데이트 프로세스를 사용하여 커스텀 동작 펌웨어 및 키-수정 펌웨어를 메모리 디바이스에 로딩한다.
흐름도(500)는 메모리 디바이스 제조사(505), OEM, 또는 그 밖의 다른 인가된 사용자에 의해 구현될 수 있다. 특정 조직(가령, 메모리 디바이스 제조사, OEM, 디바이스 그룹 등)이 도 5에서 특정 동작을 수행하는 것으로 나타나 있지만, 해당 분야의 통상의 기술자라면 그 밖의 다른 조직이 도 5의 동작 중 일부 또는 전부를 수행할 수 있음을 알 것이다. 예시적인 흐름도(500)에서, 범용 생산 펌웨어 객체(generic production firmware object)가 메모리 디바이스(510)로 로딩된다. 범용 생산 펌웨어 객체는 제1 그룹(540) 및 제2 그룹(570)으로 표현되는 다수의 고객에게 제공하도록 구성된다. 그룹(540 및 570)은 OEM 고객 또는 디바이스의 그 밖의 다른 논리적 그룹(가령, 디바이스 개정, 배포 지역 등)을 나타낸다.
예시적인 흐름도(500)는 특수 기능 또는 키-수정 기능을 필요로 하는 고객에게 커스텀화된 펌웨어를 제공하는 것을 더 포함한다. 예를 들어, 제1 커스텀 펌웨어 객체가 제1 그룹(540)에 제공(515)되고, 제2 커스텀 펌웨어 객체가 제2 그룹(570)에 제공(530)되어, 제1 그룹(540) 및 제2 그룹(570) 각각이 고객-특정 기능을 구현하도록 할 수 있다. 일부 예에서, 펌웨어 객체는 예를 들어 컴퓨터 네트워크를 통해 하나의 개체에서 다른 개체로 전송될 수 있다.
제1 커스텀화된 펌웨어 객체는 (예를 들어, 제1 그룹(540)에 의해) 현장 펌웨어 업데이트(FFU) 기법(545)을 사용하는 메모리 디바이스로 로딩될 수 있다. 이는 제1 커스텀 펌웨어(547)를 갖는 메모리 디바이스를 생성한다. 제2 커스텀 펌웨어 객체는 현장 펌웨어 업데이트(FFU) 기법(575)을 이용해 (가령, 제2 그룹(570)에 의해) 로딩될 수 있다. 이는 제2 커스텀 펌웨어(577)를 갖는 메모리 디바이스를 생성한다. 보안 키 소거를 위해 키-소거 펌웨어가 제공된다면, FFU 프로세스(560)를 이용해 (가령, 제1 그룹(540)에 의해) 메모리 디바이스로 로딩될 수 있는 제1 커스텀 키-수정 펌웨어가 제공(520)되어 제1 커스텀 펌웨어 및 제1 키-수정 펌웨어(562)를 갖는 메모리 디바이스를 생성할 수 있다. FFU 프로세스(560)는 제1 커스텀 펌웨어 객체를 덮어 쓰지 않고 커스텀 키-수정 펌웨어를 메모리 디바이스로 로딩할 수 있다. FFU 기법(590)을 이용해 (가령, 제2 그룹(570)에 의해) 제2 그룹(570)의 메모리 디바이스로 로딩될 수 있는 제2 커스텀 키-수정 펌웨어가 제공(535)되어 제2 커스텀 펌웨어 및 제2 키-수정 펌웨어(592)를 갖는 메모리 디바이스를 생성할 수 있다.
그 다음, 사용자는 하나 이상의 보호 영역의 하나 이상의 보안 키를 수정하기 위해 커스텀 키-수정 펌웨어를 사용할 수 있다. 키가 수정되면 일부 예에서 커스텀 키-수정 펌웨어가 메모리 디바이스에서 제거될 수 있다.
일부 예에서, 제1 커스텀 펌웨어 객체 및 제2 커스텀 펌웨어 객체는 메모리 디바이스에 대한 구성 셋팅을 사용함으로써 더 커스터마이징될 수 있다. 예를 들어 OEM 스트링 값이 특정 값으로 설정될 수 있다. 펌웨어는 이 값을 읽어 메모리 디바이스의 하나 이상의 셋팅 및/또는 커스텀화된 동작 파라미터를 결정할 수 있다.
도 6은 본 개시의 일부 예에 따라 매칭되는 펌웨어를 사용하여 메모리 디바이스의 보호 부분의 보안 키를 업데이트하는 방법(600)의 흐름도를 도시한다. 방법(600)을 실행하기 전에, 커스텀 키-수정 펌웨어가 FFU 프로세스를 사용하여 메모리 디바이스로 로딩된다. 동작(610)에서, 메모리 디바이스는 하나 이상의 보호 영역의 하나 이상의 보안 키를 수정하기 위한 요청을 수신한다. 동작(615)에서 메모리 디바이스는 키-수정 펌웨어가 실행중인 펌웨어와 매칭되는지 여부를 결정할 수 있다.
일부 예에서, 동작(615)은 키-수정 펌웨어를 로딩하려고 시도할 때 FFU에 의해 수행된다. 이 예에서 키-수정 펌웨어가 동작 펌웨어와 매칭하지 않는 경우 FFU 프로세스가 키-수정 펌웨어를 메모리 디바이스로 로딩하지 못할 수 있다. 키-수정 펌웨어가 동작 펌웨어와 매칭하는 경우 보안 키가 (620)에서 수정될 수 있다. 일부 예에서, 매칭은 하나 이상의 펌웨어 버전을 기반으로 체크된다, 예를 들어, 키-수정 펌웨어는 동작 펌웨어의 펌웨어 버전을 체크한다. 다른 예에서, 키-수정 펌웨어는 동작 펌웨어의 해시(hash), 동작 펌웨어의 크기, 동작 펌웨어 내에 저장된 값 등을 체크한다.
보안 키를 수정하는 것(620)은 보안 키를 소거하는 것(625) 및/또는 보안 키를 교체하는 것(630)을 포함할 수 있다. 키-수정 펌웨어가 동작 펌웨어와 매칭되지 않는 경우, 동작(640)에서, 보안 키는 수정되지 않는다. 이는 요청을 거절하는 것 또는 요청에 대해 어떠한 조치도 취하지 않는 것을 포함할 수 있다. 일부 예에서, 방법(600)의 동작들 중 하나 이상은 키-수정 펌웨어 및/또는 동작 펌웨어에 의해 수행된다. 언급된 바와 같이, 일부 예에서, 동작(615)은 FFU 동안 수행될 수 있다. 이러한 예에서, 작동화 및/또는 로딩된 키-수정 펌웨어는 보안 키를 수정(620)함으로써 요청에 응답할 수 있다.
도 5 및 6의 예시적인 흐름도는 현장 펌웨어 업데이트를 사용하기 때문에 출시된 디바이스의 재고 관리에 적합할 수 있다. 그러나 필드 펌웨어 업데이트를 사용하는 것은 OEM 고객을 위한 디바이스 제조(가령, 전화기 제조) 작업에서, 가외적 단계를 도입시킴으로 비효율적일 수 있다. 또한 현장 펌웨어 업데이트 자체가 공격에 노출될 수 있으며, 이는 악의적 측이 커스텀화된 펌웨어를 변경하게 할 수 있다. 예를 들어, 제1 그룹(540)의 디바이스로 제2 맞춤 펌웨어를 로딩하고 제2 커스텀 키-수정 펌웨어를 사용하여 보안 키를 재설정한다.
도 7은 본 개시의 일부 예에 따른 구성 셋팅을 사용하여 보안 키의 비인가 수정을 제한하기 위한 제1 예시적인 흐름도(700)를 도시한다. 특정 조직(가령, 메모리 디바이스 제조사(705), OEM, 디바이스 그룹 등)이 도 7에서 특정 동작을 수행하는 것으로 나타나 있지만, 해당 분야의 통상의 기술자라면 그 밖의 다른 조직이 도 7의 동작 중 일부 또는 전부를 수행할 수 있음을 알 것이다. 예시적인 흐름도(700)는 FFU 업데이트 프로세스를 이용하여 키-수정 펌웨어를 메모리 디바이스로 로딩할 수 있다. 도 6에, 각각의 그룹에 대한 펌웨어의 커스텀 기능이 커스텀 펌웨어 객체에 의해 활성화되었지만, 도 7에서 이들 기능은 구성 값의 사용을 통해 범용 펌웨어에서 이들 기능을 활성화/작동화/또는 비활성화함으로써 이들 기능이 제공된다. 이는 보안 키 교체 또는 수정을 활성화하기 위한 기능을 포함한다.
흐름도(700)는 메모리 디바이스 제조사 및/또는 OEM 또는 사용자 중 하나 이상에 의해 구현될 수 있다. 예시적인 흐름도(700)에서, 범용 생산 펌웨어 객체(generic production firmware object)가 메모리 디바이스(712)를 생성하기 위해 다수의 그룹, 가령, 제1 그룹(740) 및 제2 그룹(770)으로 제공되도록 구성된 메모리 디바이스(710)로 로딩될 수 있다. 그룹(740 및 770)은 OEM 고객 또는 디바이스의 그 밖의 다른 논리적 그룹(가령, 디바이스 개정, 배포 지역 등)을 나타낸다. 공통 생산 펌웨어를 제공함으로써, 예시적인 흐름도(700)는 생산 펌웨어의 상이한 버전을 추적할 필요성을 줄이거나 제거할 수 있다(도 5의 경우에서 그랬듯이).
보안 키 수정을 위해 키-수정 펌웨어가 제공되는 경우, FFU 프로세스(745)를 사용하여 (가령, 제1 그룹(730)에 의해) 메모리 디바이스로 로딩될 수 있는 제1 커스텀 키-수정 펌웨어가 제공(715)되어 범용 펌웨어 및 제1 키-수정 펌웨어(747)를 갖는 메모리 디바이스를 생성할 수 있다. 일부 예에서, 키-수정 펌웨어 객체는 예를 들어, 컴퓨터 네트워크를 통해 하나의 개체에서 다른 개체로 이들을 전송함으로써 제공될 수 있다.
FFU 프로세스(745)는 제1 커스텀 펌웨어 객체를 덮어 쓰지 않고 커스텀 키-수정 펌웨어를 메모리 디바이스로 로딩할 수 있다. (가령, 제2 그룹(770)에 의해) FFU 기법(750)을 이용해 제2 그룹(770)의 메모리 디바이스로 로딩될 수 있는 제2 커스텀 키-수정 펌웨어가 제공(725)되어 범용 펌웨어 및 제2 키-수정 펌웨어(752)를 갖는 메모리 디바이스를 생성할 수 있다.
키-수정 펌웨어는 구성 값을 특정 식별 값으로 설정함으로써 활성화될 수 있다. 값은 제2 그룹(740)과 제1 그룹(730)에 대해 동일한 값일 수 있지만, 또 다른 예에서, 보안 강화를 위해 제2 그룹(740)과 다른 값이 제1 그룹(730)에 사용될 수 있다. 제1 및 제2 키-수정 펌웨어의 각각의 버전에서 값이 특정될 수 있으며 보안 키의 수정을 허용하기 전에 키-수정 펌웨어에 의해 체크될 수 있다.
앞서 언급된 바와 같이, 일부 예시에서, 기존 JEDEC 속성이 구성 셋팅을 위해 사용될 수 있다. 이러한 속성은 메모리 디바이스용 비 휘발성 메모리에 저장될 수 있다. 키-수정 펌웨어를 활성화하는 것 외에도 이들 속성은 추가 용도를 가질 수 있다. 메모리 디바이스가 제조사 또는 고객에 의해 구성되었는지 여부에 따라 이들 값을 변경함으로써 메모리 디바이스 동작에 대한 상이한 옵션이 구현될 수 있다. 예를 들어, 현재 JEDEC 표준은 해당 OEM을 고유하게 식별하는 지정된 벤더 명칭으로 구성된 디폴트 값을 갖는 속성(가령, "OEM(Original Equipment Manufacturer) 스트링 속성")을 정의한다. 그러나 OEM은 비휘발성 메모리의 각자의 영역에 상이한 값을 씀으로써 이 디폴트 값을 변경할 수 있다. 예시적인 실시예에 따르는 방법은 OEM 문자열 속성에 대해 써진 값에 기초하여 키-수정 펌웨어를 활성화 및 비활성화한다. 마찬가지로 OEM 스트링 속성이 사용되어 메모리 디바이스 상의 다른 커스텀화된 펌웨어를 활성화할 수 있다.
도 8은 키-소거 펌웨어가 활성화될 때와 활성화될 조건을 제어하기 위한 메모리 제어기(105)의 예시적 상태 전환 다이어그램(800)을 도시한다. 도 8을 참조하면, 일부 실시예에서, 메모리 디바이스(가령, 메모리 디바이스(100)(도 1))가, 초기 상태(805), 가령, 동작 메트릭이 활성화 잠금 조건을 충족하지 않음, 구성이 잠금해제됨(가령, 구성이 수행되도록 허용될 것임), 구성 셋팅에 대한 값이 블랭크(또는 디폴트 상태 또는 써지지 않은 상태)임, 및 적어도 보안 키가 메모리 디바이스(100) 상에서 지워질 수 없음을 의미하는 키-수정 펌웨어가 비활성화됨으로 고객(가령, 모바일 디바이스 제조사)에게 제공될 수 있다.
앞서 기재된 바와 같이, 보안 키는 메모리 디바이스 제조사 또는 OEM/고객에 의해 더 이른 시간 주기에서 설정될 수 있다. 키-수정 펌웨어는 펌웨어 이진 코드 세트(가령, 그 밖의 다른 관련 없는 기능을 포함 할 수 있음)의 한 기능으로 구성되거나, 키-수정 펌웨어는 다른 관련 없는 기능 없이 개별적인 전용 전용 펌웨어 이진 코드로 구성될 수 있다.
고객은 구성 셋팅에 값(예를 들어, 보안 키 수정 값)을 씀으로써 상태(805)에서 상태(810)(예를 들어, "활성화된 상태")로 메모리 디바이스를 변경할 수 있다. 동작 메트릭(가령, 쓰기 카운터)이 잠금 조건을 충족하지 않고(가령, 동작 메트릭, 가령, 쓰기 카운터가 임계값 미만임) 구성 셋팅이 보안 키 수정 값으로 설정되어 있을 때, 키-수정 펌웨어가 활성화된다. 키-수정 펌웨어가 활성화되면 사용자는 키-수정 펌웨어에 요청을 제출하여 보안 키를 소거하거나, 보안 키를 교체하거나, 일부 예에서는 둘 다를 수행할 수 있다. 일부 실시예에서, 메모리 디바이스는 상태(805)가 아닌 상태(810)에서 메모리 제조사에 의해 제조될 수 있다(그리고 고객에게 제공될 수 있다). 보안 키 수정 값은 메모리 디바이스의 고객 또는 제조사에 의해 지정될 수 있다. 보안 키 수정 값이 비밀로 유지될 때 외부 측이 키-수정 펌웨어를 활성화하여 보안 키를 변경하고 보호된 메모리를 액세스하는 것이 방지될 수 있다. 일부 예에서, 구성 셋팅이 특정 값(가령, 상태(815))으로 설정될 때 다른 고객-특정 펌웨어 기능이 활성화될 수 있다. 예를 들어 보안 키 수정 값은 OEM 특정적일 수 있으며 OEM 특정 기능을 활성화하도록 또한 역할 할 수 있다. 또 다른 예에서, 특정 기능을 활성화하기 위한 보안 키 수정 값 후에 다른 값이 구성 셋팅으로 설정될 수 있다.
메모리 디바이스는, 예를 들어, 동작 메트릭이 잠금 조건을 충족하도록 메모리 디바이스를 이용함으로써(가령, 써진 바이트 수가 0보다 크도록 메모리 디바이스로 데이터를 씀으로써), 보안 키 수정 값이 아닌 다른 값을 구성 셋팅으로 씀으로써, 또는 두 동작 모두를 수행함으로써, 상태(805)에서 상태(815)(예를 들어, "사용된 상태")로 전환될 수 있다. 메모리 디바이스가 상태(815)에 있는 동안 추가 구성 동작이 메모리 디바이스 상에서 수행될 수 있다. 그러나, 키-수정 펌웨어는 비활성화된 상태로 유지될 수 있다.
메모리 디바이스(100)가 상태(810)인 경우, 메모리 디바이스는, 가령, 동작 메트릭이 잠금 조건을 충족하게 하는 동작을 수행함으로써, 가령, 써진 바이트의 수가 임계값을 초과하도록 데이터를 메모리 디바이스(100)로 씀으로써, 상태(820)(가령, "제조된 상태")로 전환될 수 있다. 상태(820)는 키-수정 펌웨어(및/또는 일부 실시예에서 그 밖의 다른 커스텀 펌웨어)가 상태(820)에서 활성화된 상태로 유지된다는 점을 제외하고는 상태(815)와 유사하다.
메모리 디바이스가 상태(815)이고 구성 셋팅의 값이 (외부 행위자에 의해 악의적으로 또는 고객에 의해) 변경되면, 메모리 디바이스는 키-수정 펌웨어가 비활성화된 "배포된 상태"(825)로 전환된다. 이는 구성 값이 보안 키 수정 값으로 변경될 때에도 발생할 것인데, 왜냐하면, 구성 값이 보안 키 수정 값으로 변경된 때 동작 메트릭이 잠금 조건(가령, 써진 총 바이트>주어진 임계값)을 충족하기 때문이다. 이는 메모리 디바이스 배송 후, 모바일 디바이스 배송 후 성을 잠그지 않는 고객에 대해서라도 키-수정 펌웨어의 활성화를 막는다. 상태(825)에서 구성은 잠금 또는 잠금 해제될 수 있다.
메모리 디바이스가 상태(820)이고 구성 설정의 값이 (외부 행위자에 의해 악의적으로 또는 고객에 의해) 변경되면 메모리 디바이스는 상태(815)로 전환되고 키-수정 펌웨어는 비활성화된다. 메모리 디바이스가 상태(820)이고 메모리 디바이스의 구성이 잠겨 있다면, 메모리 디바이스는 상태(830)( "배포된 상태")에 돌입한다. 배포된 상태(830)는 키-수정 펌웨어가 활성화된 상태로 유지되고 보안 키를 변경할 수 있다는 점에서 배포된 상태(825)와 상이하다. 또 다른 예에서, 상태(830)는 구성의 잠금에 응답하여 또는 동작 메트릭이 잠금 조건을 충족하는 것에 응답하여 키-수정 펌웨어를 비활성화할 수 있다. 또 다른 예에서, 구성이 잠기면 키-수정 펌웨어는 보안 키를 변경하려는 어떠한 일도 거부할 수 있다.
도 8에 도시 된 바와 같이 키-수정 펌웨어를 활성화하기 위해, 작동 메트릭이 임계값을 초과하기 전에 구성 셋팅이 보안 키 수정 값으로 설정되어야 한다. 키-수정 펌웨어가 활성화되면, 사용자는 구성 셋팅을 변경함으로써 키-수정 펌웨어가 비활성화될 때까지 보안 키를 수정할 수 있다. 도 8은 다수의 상태 전환을 도시하지만, 해당 분야의 통상의 기술자라면 그 밖의 다른 전환 및/또는 상태가 가능할 수 있음을 알 것이다. 예를 들어, 상태(810)와 상태(815) 간 전환 등이 있다.
본 명세서에서 사용될 때, 동작 메트릭이라는 용어는 메모리 디바이스의 하나 이상의 메트릭을 포함할 수 있다. 예시적인 메트릭은 써진 바이트 수, 읽힌 바이트 수, 수행된 읽기 동작의 수, 수행된 쓰기 동작의 수, 파워 사이클의 수 등을 포함할 수 있다. 잠금 조건의 예는 읽기 또는 쓰기 동작의 임계 횟수, 읽기 또는 쓰기된 바이트의 임계 수 등을 포함할 수 있다. 하나의 예에서, 동작 메트릭은 써진 바이트 수일 수 있고 잠금 조건은 써진 바이트 수가 0보다 큰 것일 수 있다. 따라서 데이터가 메모리 디바이스에 써지면, 동작 메트릭이 조건을 충족하고(써진 바이트의 수가 0을 초과하기 때문에) 이미 활성화되어 있지 않는 경우 키-교체 펌웨어는 더는 활성화될 수 없다.
도 9는 본 개시의 일부 예시에 따르는 키-수정 펌웨어를 활성화하는 방법(900)의 흐름도를 도시한다. 동작(910)에서, 메모리 디바이스는 구성 셋팅을 제1 값으로 설정하기 위한 요청을 수신할 수 있다. 일부 예에서 구성 셋팅은 OEM 스트링일 수 있다. 동작(915)에서 디바이스의 구성이 잠겨 있는지 여부에 대한 결정이 내려진다. 동작(915)에서 구성이 잠겨 있는 경우 흐름도는 종료되고 구성은 변경되지 않는다. 구성이 잠겨 있지 않는 경우, 구성 셋팅은 동작(920)에서 제1 값으로 설정된다. 동작(925)에서 동작 메트릭이 잠금 조건을 충족하는지 여부가 결정된다. 예를 들어, 읽기 또는 쓰기된 비트 또는 바이트 수가 임계값을 충족하는지 또는 초과하는지가 결정된다. 하나의 예에서 임계값은 0일 수 있다. 즉, 데이터가 메모리 디바이스에 써지면, 이전에 수행되지 않은 경우 키-수정 펌웨어를 활성화하는 기능이 종료된다. 또 다른 예에서 동작 메트릭은 읽기, 쓰기 또는 기타 동작의 횟수이다. 동작 메트릭이 잠금 조건을 충족하는 경우, 흐름이 종료되고 키-수정 펌웨어가 활성화되지 않는다.
동작 메트릭이 잠금 조건을 충족하지 않는 경우, 메모리 디바이스는 동작(927)에서 제1 값이 보안 키 수정 값인지 여부를 결정하도록 체크한다. 그렇지 않은 경우, 키-수정 펌웨어를 활성화하지 않고 흐름이 종료된다. 제1 값이 보안 키 수정 값인 경우, 동작(930)에서 키-수정 펌웨어가 활성화되고 보안 키 수정이 활성화된다. 도 9는 동작(927) 이전에 발생하는 동작(925)을 도시하지만, 또 다른 예에서 동작(927)은 동작(925) 전에 수행될 수 있다.
도 10은 본 개시의 일부 예시에 따르는 구성 값을 이용해 메모리 디바이스의 보호 부분의 보안 키를 업데이트하는 방법(1000)의 흐름도를 도시한다. 방법(1000)을 실행하기 전에, 키-수정 펌웨어가 FFU 프로세스를 사용하여 메모리 디바이스로 로딩된다. 동작(1010)에서, 메모리 디바이스는 하나 이상의 보안 키를 수정하기 위한 요청을 수신한다. 동작(1015)에서, 메모리 디바이스는 키-수정 펌웨어가 활성화되었는지 여부를 결정할 수 있다. 예를 들어, 방법(900)으로부터 결정할 수 있다. 키-수정 펌웨어는 도 8의 상태(810, 820 및 830)에서 활성화될 수 있다.
키-수정 펌웨어가 활성화된 경우, 하나 이상의 보안 키(들)가 (1020)에서 수정될 수 있다. 이는 보안 키를 소거하는 것(1030) 및/또는 보안 키를 교체하는 것(1025)을 포함할 수 있다. 키-수정 펌웨어가 활성화되지 않은 경우, 동작(1022)에서, 보안 키가 수정되지 않는다. 이는 요청을 거절하는 것 또는 요청에 대해 어떠한 조치도 취하지 않는 것을 포함할 수 있다. 일부 예에서, 방법(1000)의 동작들 중 하나 이상이 키-수정 펌웨어 및/또는 동작 펌웨어에 의해 수행된다.
도 11은 본 명세서에서 언급되는 기법(가령, 방법론) 중 임의의 하나 이상이 수행될 수 있는 예시적 기계(1100)의 블록도를 도시한다. 기계(1100) 또는 기계(1100)의 하나 이상의 구성요소가 본 명세서에 기재된 메모리 디바이스 또는 메모리 디바이스의 구성요소 중 하나 이상을 구현할 수 있다. 예를 들어, 기계(1100) 또는 기계(1100)의 하나 이상의 구성요소는 메모리 디바이스(100)를 구현할 수 있다. 일부 예에서, 기계(1100)는 호스트 디바이스(135)일 수 있다. 일부 예에서, 메인 메모리(1104), 정적 메모리(1106) 및/또는 대용량 저장장치(1121)가 메모리, 가령, 본 명세서의 도 1-10과 관련하여 언급된 메모리를 통해 구현될 수 있다.
대안 실시예에서, 기계(1100)는 독립형 디바이스로서 동작할 수 있거나 다른 기계에 연결(예를 들어, 네트워킹)될 수 있다. 네트워크 배치에서, 기계(1100)는 메모리 디바이스, 호스트 디바이스, 서버 기계, 클라이언트 기계, 또는 서버-클라이언트 네트워크 환경에서 둘 모두의 기능으로 동작할 수 있다. 예를 들어, 기계(1100)는 피어-투-피어(P2P)(또는 그 밖의 다른 분산) 네트워크 환경에서 피어 기계로서 동작할 수 있다. 기계(1100)는 개인용 컴퓨터(PC), 태블릿 PC, 셋톱 박스(STB), 개인용 디지털 비서(PDA), 모바일 전화기, 웹 가전기기, IoT 디바이스, 자동차 시스템, 호스트 디바이스 또는 그 기계가 취할 조치를 특정하는 명령을(순차적으로 또는 그 밖의 다른 방식으로) 실행할 수 있는 기계일 수 있다. 또한, 단일 기계만이 예시되어 있지만, 용어 "기계"는 본 명세서에서 논의되는 방법 중 임의의 하나 이상을 수행하기 위한 명령의 세트(또는 복수의 세트)를 개별적으로 또는 공동으로 실행하는 기계의 임의의 집합, 가령, 클라우드 컴퓨팅, SaaS(software as a service), 그 밖의 다른 컴퓨터 클러스터 구성을 포함하는 것으로 간주되어야 한다.
본 명세서에 기재된 바와 같이, 예시는, 로직, 다수의 구성요소, 모듈, 또는 메커니즘(본 명세서에서 "모듈")을 포함하거나, 여기서 동작할 수 있다. 모듈은 특정 동작을 수행할 수 있는 유형의 개체(tangible entity)(가령, 하드웨어)이고 특정 방식으로 구성 또는 배열될 수 있다. 예를 들어, 회로가 특정 방식으로 모듈로서 (가령, 외부 개체, 가령, 카 회로 내부에 또는 이와 관련되어) 배열될 수 있다. 예를 들어, 하나 이상의 컴퓨터 시스템(가령, 독립형, 클라이언트 또는 서버 컴퓨터 시스템) 또는 하나 이상의 하드웨어 프로세서의 전체 또는 일부가 펌웨어 또는 소프트웨어(가령, 명령, 애플리케이션 부분, 또는 애플리케이션)에 의해 특정 동작을 수행하도록 동작하는 모듈로서 구성될 수 있다. 예를 들어, 소프트웨어는 기계 판독형 매체 상에 상주할 수 있다. 예를 들어, 소프트웨어는, 모듈의 기저 하드웨어에 의해 실행될 때, 상기 하드웨어로 하여금 특정 동작을 수행하게 한다.
따라서, 용어 "모듈"은 유형의 개체를 포함하는 것으로 이해되며, 특정 방식으로 동작하도록 또는 본 명세서에 기재된 임의의 모든 또는 부분 동작을 수행하도록 물리적으로 구성되거나, 특정하게 구성(가령, 하드와이어링)되거나, 임시로(가령, 일시적으로) 구성(가령, 프로그래밍)되는 개체를 의미한다. 모듈이 임시로 구성되는 예시를 고려할 때, 모듈 각각이 임의의 한 순간에 인스턴스화될 필요는 없다. 예를 들어, 모듈이 소프트웨어를 이용해 구성되는 범용 하드웨어 프로세서를 포함하는 경우, 범용 하드웨어 프로세서는 상이한 순간에 각자 상이한 모듈로서 구성될 수 있다. 따라서 소프트웨어는 하드웨어 프로세서를, 예를 들어, 한 순간에 특정 모듈이고, 다른 순간에 다른 모듈이도록 구성할 수 있다.
기계(가령, 컴퓨터 시스템)(1100)(가령, 호스트 디바이스(135), 메모리 디바이스(100) 등)은 하드웨어 프로세서(1102)(가령, 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU), 하드웨어 프로세서 코어, 또는 이들의 임의의 조합) 등, 메인 메모리(1504) 및 정적 메모리(1106)를 포함할 수 있으며, 이들 중 일부 또는 전부는 인터링크(예를 들어, 버스)(1108)를 통해 서로 통신할 수 있다. 기계(1100)는 디스플레이 유닛(1110), 문숫자 입력 디바이스(1112)(가령, 키보드), 및 사용자 인터페이스(UI) 내비게이션 디바이스(1114)(가령, 마우스)를 더 포함할 수 있다. 예를 들어, 디스플레이 유닛(1110), 입력 디바이스(1112) 및 UI 내비게이션 디바이스(1114)는 터치 스크린 디스플레이일 수 있다. 기계(1100)는 저장 디바이스(가령, 대용량 저장장치(1121)), 신호 생성 디바이스(1118)(가령, 스피커), 네트워크 인터페이스 디바이스(1120) 및 하나 이상의 센서(1116), 가령, GPS(global positioning system) 센서, 나침반, 가속도계 또는 그 밖의 다른 센서를 더 포함할 수 있다. 기계(1100)는 출력 제어기(1128), 가령, 직렬(가령, USB(universal serial bus), 병렬 또는 그 밖의 다른 유선 또는 무선(가령, 적외선(IR), 근거리 통신(NFC) 등) 연결을 포함하여, 하나 이상의 주변 디바이스(가령, 프린터, 카드 리더 등)과 통신하거나 이를 제어할 수 있다.
저장 디바이스(1121)는 본 명세서에 기재된 기술 또는 기능 중 임의의 하나 이상을 구현하거나 이에 의해 사용되는 데이터 구조 또는 명령의 하나 이상의 세트(1124)(가령, 소프트웨어)가 저장된 기계 판독형 매체(1122)를 포함할 수 있다. 명령(1124)은 또한 기계(1100)에 의해 실행되는 동안 메인 메모리(1104) 내에, 정적 메모리(1106) 내에, 또는 하드웨어 프로세서(1102) 내에 완전히 또는 적어도 부분적으로 상주할 수 있다. 하나의 예에서, 하드웨어 프로세서(1102), 메인 메모리(1104), 정적 메모리(1106), 또는 저장 디바이스(1121) 중 하나 또는 임의의 조합이 기계 판독형 매체(1122)를 구성할 수 있다.
기계 판독형 매체(1122)가 단일 매체로 도시되어 있지만, "기계 판독형 매체"라는 용어는 하나 이상의 명령(1124)을 저장하도록 구성된 단일 매체 또는 다중 매체(예를 들어, 중앙 집중형 또는 분산형 데이터베이스 또는 관련 캐시 및 서버)를 포함할 수 있다.
"기계 판독형 매체"라는 용어는 기계(1100)에 의해 실행되기 위한 명령을 저장, 인코딩 또는 반송할 수 있고 기계(1100)로 하여금 본 개시의 기술 중 임의의 하나 이상을 수행하게 하거나, 이러한 명령에 의해 사용되거나 이러한 명령과 연관된 데이터 구조를 저장, 인코딩, 또는 반송할 수 있는 임의의 매체를 포함할 수 있다. 비제한적 기계 판독형 매체 예시가 솔리드-스테이트 메모리, 및 광학 및 자기 매체를 포함할 수 있다. 예를 들어, 매스드 기계 판독형 매체(massed machine-readable media)는 불변(예를 들어, 휴지) 질량을 갖는 복수의 입자를 갖는 기계 판독형 매체를 포함한다. 따라서, 매스드 기계 판독형 매체는 일시적인 전파 신호가 아니다. 매스드 기계-판독형 매체의 특정 예시는 비휘발성 메모리, 가령, 반도체 메모리 디바이스(가령, EPROM(Electrically Programmable Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory)) 및 플래시 메모리 디바이스, 자기 디스크, 가령, 내부 하드 디스크 및 이동식 디스크, 자기-광학 디스크, 및 CD-ROM 및 DVD-ROM 디스크를 포함할 수 있다.
명령(1124)(예를 들어, 소프트웨어, 프로그램, 운영 체제(OS) 등) 또는 그 밖의 다른 데이터는 저장 디바이스(1121)에 저장되고, 프로세서(1102)에 의해 사용하기 위해 메모리(1104)에 의해 액세스될 수 있다. 메모리(1104)(예를 들어, DRAM)는 일반적으로 빠르지만 휘발성이므로, "오프(off)" 상태에 있는 동안을 포함해 장기 저장에 적합한 저장 디바이스(storage device)(1121)(가령, SSD)와 상이한 유형의 저장장치이다. 사용자 또는 기계(1100)에 의해 사용중인 명령(1124) 또는 데이터는 일반적으로 프로세서(1102)에 의해 사용되기 위해 메모리(1104)에 로드된다. 메모리(1104)가 가득 찰 때, 저장 디바이스(1121)로부터의 가상 공간이 메모리(1104)를 보충하기 위해 할당될 수 있지만, 저장장치(1121)는 일반적으로 메모리(1104)보다 느리고 쓰기 속도가 읽기 속도의 적어도 두 배인 것이 일반적이기 때문에, (메모리(1104), 가령, DRAM과 달리) 가상 메모리의 사용이 저장 디바이스 레이턴시로 인해 사용자 경험을 크게 감소시킬 수 있다. 또한, 가상 메모리용 저장 디바이스(1121)의 사용이 저장 디바이스(1121)의 사용 수명을 크게 줄일 수 있다.
가상 메모리와 달리, 가상 메모리 압축(예를 들어, Linux® 커널 기능 "ZRAM")은 저장 디바이스(1121)로의 페이징을 피하기 위해 메모리의 일부를 압축된 블록 저장소로 사용한다. 이러한 데이터를 저장 디바이스(1121)에 쓰는 것이 필요할 때까지 압축된 블록에서 페이징이 발생한다. 가상 메모리 압축은 메모리(1104)의 사용 가능한 크기를 증가시키면서 저장 디바이스(1121)상의 마모를 감소시킨다.
모바일 전자 디바이스를 위해 최적화된 저장 디바이스, 또는 모바일 저장장치는, 전통적으로, MMC 솔리드-스테이트 저장 디바이스(예를 들어, microSD™(micro Secure Digital) 카드 등)를 포함한다. MMC 디바이스는 호스트 디바이스와 함께 다수의 병렬 인터페이스(가령, 8-비트 병렬 인터페이스)를 포함하며, 종종 호스트 디바이스로부터 분리가능하고 이와 별개인 구성요소이다. 대조적으로, eMMC™ 디바이스는 회로 기판에 부착되고 호스트 디바이스의 구성요소로 간주되며 직렬 ATA™(Serial AT(Advanced Technology) Attachment 또는 SATA) 기반 SSD 디바이스에 필적하는 읽기 속도를 가진다. 그러나 가령, 가상 또는 증강 현실 디바이스를 완전히 가능하게 하거나, 증가된 네트워크 속도를 이용하는 등까지 모바일 디바이스 성능에 대한 수요가 계속 증가한다. 이러한 요구에 응답하여 저장 디바이스는 병렬에서 직렬 통신 인터페이스로 전환되었다. 제어기 및 펌웨어를 포함한 UFS(Universal Flash Storage) 디바이스는 전용 읽기/쓰기 경로가 있는 LVDS(low-voltage differential signaling) 직렬 인터페이스를 사용하여 호스트 디바이스와 통신하여 읽기/쓰기 속도를 더욱 향상시킨다.
명령(1124)은 전송 매체를 이용해 다수의 전송 프로토콜(예를 들어, 프레임 릴레이, IP(internet protocol), TCP(transmission control protocol), UDP(user datagram protocol), HTTP(hypertext transfer protocol) 등) 중 임의의 하나를 이용하는 네트워크 인터페이스 디바이스(1120)를 통해 통신 네트워크(1126)를 통해 더 전송되거나 수신될 수 있다. 예시적인 통신 네트워크는 LAN(local area network), WAN(wide area network), 패킷 데이터 네트워크(예를 들어, 인터넷), 이동 전화 네트워크(예를 들어, 셀룰러 네트워크), POTS(Plain Old Telephone) 네트워크, 및 무선 데이터 네트워크(가령, Wi-Fi®로 알려진 IEEE(Institute of Electrical and Electronics Engineers) 802.11 표준 제품군, WiMax®로 알려진 IEEE 802.16 표준 제품군), IEEE 802.15.4 표준 제품군, P2P(peer-to-peer) 네트워크 등이 있다. 하나의 예에서, 네트워크 인터페이스 디바이스(1520)는 통신 네트워크(1126)에 연결하기 위한 하나 이상의 물리적 잭(가령, 이더넷, 동축 또는 전화 잭) 또는 하나 이상의 안테나를 포함할 수 있다. 하나의 예에서, 네트워크 인터페이스 디바이스(1120)는 SIMO(single-input multiple-output), MIMO(multiple-input multiple-output) 또는 MISO(multiple-input single-output) 기법 중 적어도 하나를 사용하여 무선으로 통신하기 위한 복수의 안테나를 포함할 수 있다. "전송 매체"라는 용어는 기계(1100)에 의해 실행되기 위한 명령을 저장, 인코딩 또는 반송할 수 있는 임의의 무형 매체를 포함하며, 이러한 소프트웨어의 통신을 촉진하기 위한 디지털 또는 아날로그 통신 신호 또는 그 밖의 다른 무형 매체를 포함하는 것으로 여겨져야 한다.
상기 상세한 설명은 상세한 설명의 일부를 형성하는 첨부 도면에 대한 참조를 포함한다. 도면은 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시한다. 이들 실시예는 본 명세서에서 "예"라고도 한다. 이러한 예는 도시되거나 설명된 요소에 추가하여 요소를 포함할 수 있다. 그러나, 본 발명자는 도시되거나 기술 된 요소만이 제공되는 예도 고려한다. 덧붙여, 본 발명자는 특정 예시(또는 이들의 하나 이상의 양태)와 관련하여, 또는 본 명세서에 도시되거나 기재된 또 다른 예시(또는 이들의 하나 이상의 양태)와 관련하여, 도시되거나 기술된 요소들(또는 이들의 하나 이상의 양태)의 임의의 조합 또는 순열을 이용하는 예시를 고려한다.
본 명세서에서, 용어 "a" 또는 "an"가, 특허 문서에서 흔히 그렇듯이, "적어도 하나(at least one)" 또는 "하나 이상(one or more)"의 그 밖의 다른 임의의 사례 또는 용례에 독립적으로, 하나 또는 둘 이상을 포함할 때 사용된다. 본 명세서에서, 용어 "또는"은 비배타적 또는을 지칭하는 데 사용되어, 달리 지시되지 않는다면, "A 또는 B"가 "B는 제외하고 A만", "A는 제외하고 B만" 및 "A와 B 모두"를 포함하도록 할 수 있다. 이하의 청구항에서, 용어 "포함하는(including)" 및 "여기서(in which)"는 "포함하는(comprising)" 및 "여기서(wherein)"의 평문 등가물로서 사용된다. 또한 다음의 청구항에서, 용어 "포함하는(including)" 및 "포함하는(comprising)"은 개방형이다, 즉, 청구항에서 이러한 단어 다음에 나열된 것들에 추가로 요소들을 포함하는 시스템, 디바이스, 물품, 또는 프로세스가 여전히 상기 청구항의 범위 내에 속한다고 여겨진다. 덧붙여, 다음의 청구항에서, 용어 "제1", "제2" 및 "제3" 등은 단지 라벨로서 사용되는 것에 불과하며, 이들의 목적어에 수치적 요건을 부가하려는 의도가 아니다.
다양한 예에서, 본 명세서에 설명된 구성요소, 제어기, 프로세서, 유닛, 엔진 또는 테이블은 무엇보다도 물리 디바이스에 저장된 물리적 회로 또는 펌웨어를 포함할 수 있다. 본 명세서에서 사용될 때, "프로세서"는 임의의 유형의 계산 회로, 비제한적 예를 들면 마이크로프로세서, 마이크로 제어기, 그래픽 프로세서, 디지털 신호 프로세서(DSP), 또는 그 밖의 다른 임의의 유형의 프로세서 또는 처리 회로, 가령, 프로세서 또는 멀티-코어 디바이스의 그룹을 의미한다.
본 개시에 따라 그리고 여기에 설명된 다양한 실시예는 메모리 셀의 수직 구조(예를 들어, 메모리 셀의 NAND 스트링)를 이용하는 메모리를 포함한다. 본 명세서에서 사용될 때, 방향 형용사는 메모리 셀이 형성되는 기판의 표면에 대해 취해질 것이다(즉, 수직 구조는 기판 표면에서 멀어지는 방향으로 확장될 것이며, 수직 구조물의 하부 단부는 기판 표면에 가장 가까운 단부로서 여겨질 것이고 수직 구조물의 상부 단부는 기판 표면으로부터 가장 먼 단부로서 여겨질 것이다).
본 명세서에서 사용될 때, 방향 형용사, 가령, 수평, 수직, 법선, 평행, 수직 등은 상대적 배향을 지칭할 수 있으며, 달리 지시되지 않는 한, 특정 기하학적 특성에 대한 엄격한 준수를 요구하지 않는다. 예를 들어, 본 명세서에서 사용될 때 수직 구조는 기판의 표면에 엄격하게 수직일 필요는 없고, 기판의 표면에 대체로 수직일 수 있으며, 기판의 표면과 예각(가령, 60도 내지 120도 등)을 형성할 수 있다.
본 명세서에 기재된 일부 실시예에서, 상이한 도핑 구성이 SGS(source-side select gate), CG(control gate) 및 SGD(drain-side select gate)에 적용될 수 있으며, 이들 각각은, 이 예시에서, 에칭 용액에 노출될 때 이들 티어(가령, 폴리실리콘 등)가 상이한 에칭 속도를 가질 수 있도록 하는 결과를 갖도록, 폴리실리콘으로 형성되거나 적어도 폴리실리콘을 포함할 수 있다. 예를 들어, 3D 반도체 디바이스에서 모놀리식 필라(monolithic pillar)를 형성하는 과정에서 SGS 및 CG는 오목부를 형성할 수 있지만, SGD는 덜 오목하게 유지되거나 심지어 오목해지지 않을 수 있다. 따라서 이들 도핑 구성은 에칭 용액(가령, 테트라메틸암모늄 히드록사이드(TMCH))을 사용함으로써 3D 반도체 디바이스에서 별개의 티어(가령, SGS, CG 및 SGD)로의 선택적 에칭을 가능하게 할 수 있다.
본 명세서에서 사용되는 바와 같이, 메모리 셀을 동작시키는 것은 메모리 셀로부터 읽기, 쓰기 또는 소거를 포함한다. 의도된 상태로 메모리 셀을 두는 동작이 본 명세서에서 "프로그래밍"이라고 지칭되며, 메모리 셀에 쓰거나 메모리 셀로부터 소거하는 것(가령, 메모리 셀이 소거된 상태로 프로그램될 수 있다)을 모두 포함할 수 있다.
본 개시의 하나 이상의 실시예에 따르면, 메모리 디바이스 내부 또는 외부에 위치하는 메모리 제어기(가령, 프로세서, 제어기, 펌웨어 등)가 마모 사이클의 양을 결정(가령, 선택, 설정, 조절, 계산, 변경, 삭제, 통신, 적응, 도출, 이용, 수정, 적용 등)하거나, 마모 상태를 결정할 수 있다(가령, 마모 사이클을 기록, 메모리 디바이스의 동작을 발생할 때 카운팅, 메모리 디바이스의 동작을 개시될 때 추적, 마모 상태에 대응하는 메모리 디바이스 특성을 평가 등).
본 개시의 하나 이상의 실시예에 따르면, 메모리 액세스 디바이스는 각각의 메모리 동작과 함께 메모리 디바이스로 마모 사이클 정보를 제공하도록 구성될 수 있다. 메모리 디바이스 제어 회로(예를 들어, 제어 로직)는 마모 사이클 정보에 대응하는 메모리 디바이스 성능 변화를 보상하도록 프로그램될 수 있다. 메모리 디바이스는 마모 사이클 정보를 수신하고 마모 사이클 정보에 응답하여 하나 이상의 동작 파라미터(예를 들어, 값, 특성)를 결정할 수 있다.
한 요소가 다른 요소 "상에 위치", "에 연결", 또는 "와 결합"되는 것으로 지칭될 때, 직접 상기 다른 요소 상에 위치, 연결, 또는 결합될 수 있거나, 중간 삽입 요소가 존재할 수 있다. 이와 달리, 요소가 또 다른 요소 "상에 바로", "에 바로 연결 " 또는 "와 바로 연결"되는 것으로 언급 될 때, 개재된 요소나 층이 존재하지 않는다. 두 요소를 연결하는 선과 함께 두 요소가 도면에 표시하는 경우 별도의 표시가 없는 한 두 요소를 결합하거나 직접 결합할 수 있다.
본 명세서에 설명된 방법 예는 적어도 부분적으로 기계 또는 컴퓨터로 구현될 수 있다. 일부 예는 앞선 예시에서 기재되는 방법을 수행하도록 전자 디바이스를 구형하도록 동작 가능한 명령으로 인코딩된 컴퓨터 판독형 매체 또는 기계 판독형 매체를 포함할 수 있다. 이러한 방법의 구현은 코드, 가령, 마이크로코드, 어셈블리어 코드, 하이 레벨 언어 코드 등을 포함할 수 있다. 이러한 코드는 다양한 방법을 수행하기 위한 컴퓨터 판독형 명령을 포함할 수 있다. 코드는 컴퓨터 프로그램 제품의 일부를 형성 할 수 있다. 또한, 코드는 하나 이상의 휘발성 또는 비휘발성 유형의 컴퓨터 판독형 매체 상에, 가령, 실행 동안 또는 그 밖의 다른 시간 동안, 유형적으로 저장될 수 있다. 이들 유형의 컴퓨터 판독형 매체의 비제한적 예로는 하드 디스크, 이동식 자기 디스크, 이동식 광 디스크(가령, 콤팩트 디스크 및 디지털 비디오 디스크), 자기 카세트, 메모리 카드 또는 스틱, RAM(random access memory), ROM(read only memory), SSD(Solid State Drive), UFS(Universal Flash Storage) 디바이스, eMMC(embedded MMC) 디바이스 등이 있다.
상기 기재는 설명에 불과하며, 한정이 아니다. 예를 들어, 앞서 기재된 예시(또는 이들의 하나 이상의 양태)가 서로와 조합되어 사용될 수 있다. 상기 설명을 검토할 때 해당 분야의 통상의 기술자에 의해 다른 실시예가 사용될 수 있다. 이 요약서는 청구항의 범위 또는 의미를 해석하거나 제한하도록 사용되지 않을 것이라는 이해 하에 제출된다. 또한 상기의 상세한 설명에서, 다양한 특징이 함께 그룹지어져 본 개시를 간소화할 수 있다. 이는 청구되지 않은 개시 특징이 임의의 청구항에 필수라는 의도로 해석되어서는 안 된다. 오히려, 본 발명은 특정 개시된 실시예의 모든 특징보다 적게 포함한다. 따라서 다음의 청구범위는 발명의 설명에 포함되며, 이때 각각의 청구항이 개별 실시예로서 독립적으로 존재하며, 이러한 실시예는 다양한 조합 또는 순열로 서로 조합될 수 있음이 고려된다. 본 발명의 범위가 이하의 청구항과 이러한 청구항의 법정 균등물의 전체 범위를 참조하여 결정되어야 한다.
그 밖의 다른 개시 및 예시
예시 1은 메모리 디바이스이며, 상기 메모리 디바이스는 메모리 어레이 - 상기 메모리 어레이는 복수의 메모리 셀을 포함하고, 상기 메모리 어레이의 일부분이 보안 키를 이용해 액세스되는 보호 부분임 - , 제어기 - 상기 제어기는 상기 메모리 디바이스의 구성 셋팅(configuration setting)을 제1 값으로 설정하기 위한 요청을 수신하는 것, 상기 메모리 디바이스의 구성 셋팅을 상기 제1 값으로 설정하는 것, 동작 메트릭이 임계값 미만인지 여부를 결정하는 것, 상기 메모리 디바이스의 구성 셋팅을 상기 제1 값으로 설정하고 상기 동작 메트릭이 임계값 미만이라는 결정에 응답하여, 보안 키 수정 기능을 활성화하는 것, 보호 부분에 대해 보안 키를 수정하기 위한 요청을 수신하는 것, 상기 요청을 수신하는 것에 응답하여, 보안 키 수정 기능이 활성화되는지 여부를 결정하는 것, 및 보안 키 수정 기능이 활성화되어 있다는 결정에 응답하여, 상기 보호 부분에 대한 보안 키를 수정하는 것을 포함하는 동작을 수행하도록 구성됨 - 를 포함한다.
예시 2에서, 예시 1의 주제 사항은, 상기 구성 셋팅은 주문자 상표 부착 생산(Original Equipment Manufacturer) 스트링 속성인 것을 포함한다.
예시 3에서, 예시 1-2의 주제사항은, 상기 보호 부분은 RPMB(replay protected memory block)를 포함하고, 동작은 상기 보안 키를 수정한 후, RPMB의 위치에서 메모리 동작을 수행하기 위한 요청을 수신하는 것 - 상기 요청은 비밀 값을 포함함 - , 상기 비밀 값이 상기 요청 및 수정된 보안 키에 기초하는 기대 비밀 값인지 여부를 결정하는 것, 및 상기 비밀 값이 기대 비밀 값이라는 결정에 응답하여, RPMB의 위치에서 메모리 동작을 수행하는 것을 더 포함하는 것을 포함한다.
예시 4에서, 예시 1-3의 주제 사항은 동작은 상기 보안 키 수정 기능이 활성화되어 있지 않다는 결정에 응답하여, 상기 보호 부분에 대한 보안 키를 수정하지 않는 것을 더 포함하는 것을 포함한다.
예시 5에서, 예시 1-4의 주제 사항은, 동작은 메모리 디바이스의 구성 셋팅을 제2 값으로 설정하기 위한 요청을 수신하는 것, 상기 메모리 디바이스의 구성 셋팅을 제2 값으로 설정하는 것, 동작 메트릭이 임계값 미만인지 여부를 결정하는 것, 동작 메트릭이 임계값 미만이 아니고, 구성 셋팅이 제2 값으로 설정되었다는 결정에 응답하여, 보안 키 수정 기능을 비활성화하는 것, 상기 보호 부분에 대한 보안 키를 수정하기 위한 제2 요청을 수신하는 것, 상기 제2 요청을 수신하는 것에 응답하여, 보안 키 수정 기능이 활성화되는지 여부를 결정하는 것, 및 상기 보안 키 수정 기능이 비활성화되어 있다는 결정에 응답하여, 상기 보호 부분에 대한 보안 키를 수정하지 못하게 막는 것을 더 포함하는 것을 포함한다.
예시 6에서, 예시 1-5의 주제 사항은, 상기 동작은 메모리 디바이스의 구성(configuration)을 잠그기 위한 요청을 수신하는 것, 상기 메모리 디바이스의 구성을 잠그는 것, 상기 구성 셋팅을 상기 제1 값과 상이한 제2 값으로 수정하기 위한 요청을 수신하는 것, 상기 메모리 디바이스의 구성이 잠가져 있는지 여부를 결정하는 것, 및 메모리 디바이스의 구성이 잠가져 있다는 결정에 응답하여, 상기 구성 셋팅의 제1 값을 제2 값으로 변경하지 못하게 막는 것을 더 포함하는 것을 포함한다.
예시 7에서, 예시 1-6의 주제 사항은, 복수의 메모리 셀은 NAND 메모리 셀인 것을 포함한다.
예시 8은 방법이며, 상기 방법은 메모리 디바이스에서, 상기 메모리 디바이스의 구성 셋팅을 제1 값으로 설정하기 위한 요청을 수신하는 단계, 상기 메모리 디바이스의 구성 셋팅을 상기 제1 값으로 설정하는 단계, 동작 메트릭이 임계값 미만인지 여부를 결정하는 단계, 상기 메모리 디바이스의 구성 셋팅을 상기 제1 값으로 설정하고 상기 동작 메트릭이 임계값 미만이라고 결정하는 것에 응답하여, 보안 키 수정 기능을 활성화하는 단계, 상기 메모리 디바이스의 메모리 어레이의 보호 부분에 대한 보안 키를 수정하기 위한 요청을 수신하는 단계, 상기 요청을 수신하는 것에 응답하여, 상기 보안 키 수정 기능이 활성화되는지 여부를 결정하는 단계, 및 상기 보안 키 수정 기능이 활성화되어 있다는 결정에 응답하여, 상기 보호 부분에 대한 보안 키를 수정하는 단계를 포함한다.
예시 9에서, 예시 8의 주제 사항은, 상기 구성 셋팅은 주문자 상표 부착 생산(Original Equipment Manufacturer) 스트링 속성인 것을 포함한다.
예시 10에서, 예시 8-9의 주제사항은, 상기 보호 부분은 RPMB(replay protected memory block)를 포함하고, 동작은 상기 보안 키를 수정한 후, RPMB의 위치에서 메모리 동작을 수행하기 위한 요청을 수신하는 것 - 상기 요청은 비밀 값을 포함함 - , 상기 비밀 값이 상기 요청 및 수정된 보안 키에 기초하는 기대 비밀 값인지 여부를 결정하는 것, 및 상기 비밀 값이 기대 비밀 값이라는 결정에 응답하여, RPMB의 위치에서 메모리 동작을 수행하는 것을 더 포함하는 것을 포함한다.
예시 11에서, 예시 8-10의 주제 사항은 동작은 상기 보안 키 수정 기능이 활성화되어 있지 않다는 결정에 응답하여, 상기 보호 부분에 대한 보안 키를 수정하지 않는 것을 더 포함하는 것을 포함한다.
예시 12에서, 예시 8-11의 주제 사항은, 동작은 메모리 디바이스의 구성 셋팅을 제2 값으로 설정하기 위한 요청을 수신하는 것, 상기 메모리 디바이스의 구성 셋팅을 제2 값으로 설정하는 것, 동작 메트릭이 임계값 미만인지 여부를 결정하는 것, 동작 메트릭이 임계값 미만이 아니고, 구성 셋팅이 제2 값으로 설정되었다는 결정에 응답하여, 보안 키 수정 기능을 비활성화하는 것, 상기 보호 부분에 대한 보안 키를 수정하기 위한 제2 요청을 수신하는 것, 상기 제2 요청을 수신하는 것에 응답하여, 보안 키 수정 기능이 활성화되는지 여부를 결정하는 것, 및 상기 보안 키 수정 기능이 비활성화되어 있다는 결정에 응답하여, 상기 보호 부분에 대한 보안 키를 수정하지 못하게 막는 것을 더 포함하는 것을 포함한다.
예시 13에서, 예시 8-12의 주제 사항은, 상기 동작은 메모리 디바이스의 구성(configuration)을 잠그기 위한 요청을 수신하는 것, 상기 메모리 디바이스의 구성을 잠그는 것, 상기 구성 셋팅을 상기 제1 값과 상이한 제2 값으로 수정하기 위한 요청을 수신하는 것, 상기 메모리 디바이스의 구성이 잠가져 있는지 여부를 결정하는 것, 및 메모리 디바이스의 구성이 잠가져 있다는 결정에 응답하여, 상기 구성 셋팅의 제1 값을 제2 값으로 변경하지 못하게 막는 것을 더 포함하는 것을 포함한다.
예시 14에서, 예시 8-13의 주제 사항은, 복수의 메모리 셀은 NAND 메모리 셀인 것을 포함한다.
예시 15는 명령을 포함하는 비일시적 기계 판독형 매체이며, 상기 명령은 메모리 디바이스의 제어기에 의해 실행될 때 상기 메모리 디바이스로 하여금, 상기 메모리 디바이스의 구성 셋팅(configuration setting)을 제1 값으로 설정하기 위한 요청을 수신하는 것, 상기 메모리 디바이스의 구성 셋팅을 상기 제1 값으로 설정하는 것, 동작 메트릭이 임계값 미만인지 여부를 결정하는 것, 상기 메모리 디바이스의 구성 셋팅을 상기 제1 값으로 설정하고 상기 동작 메트릭이 임계값 미만이라는 결정에 응답하여, 보안 키 수정 기능을 활성화하는 것, 보호 부분에 대해 보안 키를 수정하기 위한 요청을 수신하는 것, 상기 요청을 수신하는 것에 응답하여, 보안 키 수정 기능이 활성화되는지 여부를 결정하는 것, 및 보안 키 수정 기능이 활성화되어 있다는 결정에 응답하여, 상기 보호 부분에 대한 보안 키를 수정하는 것 을 포함하는 동작을 수행하게 한다.
예시 16에서, 예시 15의 주제 사항은, 상기 구성 셋팅은 주문자 상표 부착 생산(Original Equipment Manufacturer) 스트링 속성인 것을 포함한다.
예시 17에서, 예시 15-16의 주제사항은, 상기 보호 부분은 RPMB(replay protected memory block)를 포함하고, 동작은 상기 보안 키를 수정한 후, RPMB의 위치에서 메모리 동작을 수행하기 위한 요청을 수신하는 것 - 상기 요청은 비밀 값을 포함함 - , 상기 비밀 값이 상기 요청 및 수정된 보안 키에 기초하는 기대 비밀 값인지 여부를 결정하는 것, 및 상기 비밀 값이 기대 비밀 값이라는 결정에 응답하여, RPMB의 위치에서 메모리 동작을 수행하는 것을 더 포함하는 것을 포함한다.
예시 18에서, 예시 15-17의 주제 사항은 동작은 상기 보안 키 수정 기능이 활성화되어 있지 않다는 결정에 응답하여, 상기 보호 부분에 대한 보안 키를 수정하지 않는 것을 더 포함하는 것을 포함한다.
예시 19에서, 예시 15-18의 주제 사항은, 동작은 메모리 디바이스의 구성 셋팅을 제2 값으로 설정하기 위한 요청을 수신하는 것, 상기 메모리 디바이스의 구성 셋팅을 제2 값으로 설정하는 것, 동작 메트릭이 임계값 미만인지 여부를 결정하는 것, 동작 메트릭이 임계값 미만이 아니고, 구성 셋팅이 제2 값으로 설정되었다는 결정에 응답하여, 보안 키 수정 기능을 비활성화하는 것, 상기 보호 부분에 대한 보안 키를 수정하기 위한 제2 요청을 수신하는 것, 상기 제2 요청을 수신하는 것에 응답하여, 보안 키 수정 기능이 활성화되는지 여부를 결정하는 것, 및 상기 보안 키 수정 기능이 비활성화되어 있다는 결정에 응답하여, 상기 보호 부분에 대한 보안 키를 수정하지 못하게 막는 것을 더 포함하는 것을 포함한다.
예시 20에서, 예시 15-19의 주제 사항은, 상기 동작은 메모리 디바이스의 구성(configuration)을 잠그기 위한 요청을 수신하는 것, 상기 메모리 디바이스의 구성을 잠그는 것, 상기 구성 셋팅을 상기 제1 값과 상이한 제2 값으로 수정하기 위한 요청을 수신하는 것, 상기 메모리 디바이스의 구성이 잠가져 있는지 여부를 결정하는 것, 및 메모리 디바이스의 구성이 잠가져 있다는 결정에 응답하여, 상기 구성 셋팅의 제1 값을 제2 값으로 변경하지 못하게 막는 것을 더 포함하는 것을 포함한다.
예시 21에서, 예시 15-20의 주제 사항은, 복수의 메모리 셀은 NAND 메모리 셀인 것을 포함한다.
예시 22는 메모리 디바이스이며, 상기 메모리 디바이스는 메모리 어레이 - 상기 메모리 어레이는 복수의 메모리 셀을 포함하고, 상기 메모리 어레이의 일부분이 보안 키를 이용해 액세스되는 보호 부분임 - , 제어기 - 상기 제어기는 상기 메모리 디바이스의 구성 셋팅(configuration setting)을 제1 값으로 설정하기 위한 요청을 수신하는 수단, 상기 메모리 디바이스의 구성 셋팅을 상기 제1 값으로 설정하는 수단, 동작 메트릭이 임계값 미만인지 여부를 결정하는 수단, 상기 메모리 디바이스의 구성 셋팅을 상기 제1 값으로 설정하고 상기 동작 메트릭이 임계값 미만이라는 결정에 응답하여, 보안 키 수정 기능을 활성화하는 수단, 보호 부분에 대해 보안 키를 수정하기 위한 요청을 수신하는 수단, 상기 요청을 수신하는 것에 응답하여, 보안 키 수정 기능이 활성화되는지 여부를 결정하는 수단, 및 보안 키 수정 기능이 활성화되어 있다는 결정에 응답하여, 상기 보호 부분에 대한 보안 키를 수정하는 수단을 포함하는 동작을 수행하도록 구성됨 - 를 포함한다.
예시 23에서, 예시 22의 주제 사항은, 상기 구성 셋팅은 주문자 상표 부착 생산(Original Equipment Manufacturer) 스트링 속성인 것을 포함한다.
예시 24에서, 예시 22-23의 주제사항은, 상기 보호 부분은 RPMB(replay protected memory block)를 포함하고, 동작은 상기 보안 키를 수정한 후, RPMB의 위치에서 메모리 동작을 수행하기 위한 요청을 수신하는 수단 - 상기 요청은 비밀 값을 포함함 - , 상기 비밀 값이 상기 요청 및 수정된 보안 키에 기초하는 기대 비밀 값인지 여부를 결정하는 수단, 및 상기 비밀 값이 기대 비밀 값이라는 결정에 응답하여, RPMB의 위치에서 메모리 동작을 수행하는 수단을 더 포함하는 것을 포함한다.
예시 25에서, 예시 22-24의 주제 사항은 동작은 상기 보안 키 수정 기능이 활성화되어 있지 않다는 결정에 응답하여, 상기 보호 부분에 대한 보안 키를 수정하지 않는 수단을 더 포함하는 것을 포함한다.
예시 26에서, 예시 22-25의 주제 사항은, 동작은 메모리 디바이스의 구성 셋팅을 제2 값으로 설정하기 위한 요청을 수신하는 수단, 상기 메모리 디바이스의 구성 셋팅을 제2 값으로 설정하는 수단, 동작 메트릭이 임계값 미만인지 여부를 결정하는 수단, 동작 메트릭이 임계값 미만이 아니고, 구성 셋팅이 제2 값으로 설정되었다는 결정에 응답하여, 보안 키 수정 기능을 비활성화하는 수단, 상기 보호 부분에 대한 보안 키를 수정하기 위한 제2 요청을 수신하는 수단, 상기 제2 요청을 수신하는 것에 응답하여, 보안 키 수정 기능이 활성화되는지 여부를 결정하는 수단, 및 상기 보안 키 수정 기능이 비활성화되어 있다는 결정에 응답하여, 상기 보호 부분에 대한 보안 키를 수정하지 못하게 막는 수단을 더 포함하는 것을 포함한다.
예시 27에서, 예시 22-26의 주제 사항은, 상기 동작은 메모리 디바이스의 구성(configuration)을 잠그기 위한 요청을 수신하는 수단, 상기 메모리 디바이스의 구성을 잠그는 수단, 상기 구성 셋팅을 상기 제1 값과 상이한 제2 값으로 수정하기 위한 요청을 수신하는 수단, 상기 메모리 디바이스의 구성이 잠가져 있는지 여부를 결정하는 수단, 및 메모리 디바이스의 구성이 잠가져 있다는 결정에 응답하여, 상기 구성 셋팅의 제1 값을 제2 값으로 변경하지 못하게 막는 수단을 더 포함하는 것을 포함한다.
예시 28에서, 예시 22-27의 주제 사항은, 복수의 메모리 셀은 NAND 메모리 셀인 것을 포함한다.
예시 29은 명령을 포함하는 적어도 하나의 기계-판독형 매체로서, 상기 명령은, 처리 회로에 의해 실행될 때, 처리 회로로 하여금 예시 1 내지 28 중 어느 한 예시를 구현하기 위한 동작을 수행하게 한다.
예시 30은 예시 1 내지 28 중 어느 한 예시를 구현하기 위한 수단을 포함하는 장치이다.
예시 31는 예시 1 내지 28 중 어느 한 예시를 구현하기 위한 시스템이다.
예시 32은 예시 1 내지 28 중 어느 한 예시를 구현하기 위한 방법이다.

Claims (20)

  1. 메모리 디바이스로서, 상기 메모리 디바이스는
    메모리 어레이 - 상기 메모리 어레이는 복수의 메모리 셀을 포함하고, 상기 메모리 어레이의 일부분이 보안 키를 이용해 액세스되는 보호 부분임 - ,
    제어기 - 상기 제어기는
    상기 메모리 디바이스의 구성 셋팅(configuration setting)을 제1 값으로 설정하기 위한 요청을 수신하는 것,
    상기 메모리 디바이스의 구성 셋팅을 상기 제1 값으로 설정하는 것,
    동작 메트릭이 임계값 미만인지 여부를 결정하는 것,
    상기 메모리 디바이스의 구성 셋팅을 상기 제1 값으로 설정하고 상기 동작 메트릭이 임계값 미만이라는 결정에 응답하여, 보안 키 수정 기능을 활성화하는 것,
    보호 부분에 대해 보안 키를 수정하기 위한 요청을 수신하는 것,
    상기 요청을 수신하는 것에 응답하여, 보안 키 수정 기능이 활성화되는지 여부를 결정하는 것, 및
    보안 키 수정 기능이 활성화되어 있다는 결정에 응답하여, 상기 보호 부분에 대한 보안 키를 수정하는 것
    을 포함하는 동작을 수행하도록 구성됨 -
    를 포함하는, 메모리 디바이스.
  2. 제1항에 있어서, 상기 구성 셋팅은 주문자 상표 부착 생산(Original Equipment Manufacturer) 스트링 속성인, 메모리 디바이스.
  3. 제1항에 있어서, 상기 보호 부분은 RPMB(replay protected memory block)을 포함하며, 상기 동작은
    상기 보안 키를 수정한 후, RPMB의 위치에서 메모리 동작을 수행하기 위한 요청을 수신하는 것 - 상기 요청은 비밀 값을 포함함 - ,
    상기 비밀 값이 상기 요청 및 수정된 보안 키에 기초하는 기대 비밀 값인지 여부를 결정하는 것, 및
    상기 비밀 값이 기대 비밀 값이라는 결정에 응답하여, RPMB의 위치에서 메모리 동작을 수행하는 것
    을 더 포함하는, 메모리 디바이스.
  4. 제1항에 있어서, 상기 동작은
    비밀 키 수정 기능이 활성화되어 있지 않다는 결정에 응답하여, 상기 보호 부분에 대한 보안 키를 수정하지 않는 것
    을 더 포함하는, 메모리 디바이스.
  5. 제1항에 있어서, 상기 동작은
    상기 메모리 디바이스의 구성 셋팅을 제2 값으로 설정하기 위한 요청을 수신하는 것,
    상기 메모리 디바이스의 구성 셋팅을 제2 값으로 설정하는 것,
    동작 메트릭이 임계값 미만인지 여부를 결정하는 것,
    상기 동작 메트릭이 임계값 미만이 아니고, 상기 구성 셋팅이 상기 제2 값으로 설정된다는 결정에 응답하여, 보안 키 수정 기능을 비활성화하는 것,
    상기 보호 부분에 대한 상기 보안 키를 수정하기 위한 제2 요청을 수신하는 것,
    상기 제2 요청을 수신한 것에 응답하여, 상기 보안 키 수정 기능이 활성화되어 있는지 여부를 결정하는 것, 및
    상기 보안 키 수정 기능이 비활성화되어 있다는 결정에 응답하여, 상기 보호 부분에 대한 보안 키를 수정하지 못하게 막는 것
    을 더 포함하는, 메모리 디바이스.
  6. 제1항에 있어서, 상기 동작은
    메모리 디바이스의 구성(configuration)을 잠그기 위한 요청을 수신하는 것,
    상기 메모리 디바이스의 구성을 잠그는 것,
    상기 구성 셋팅을 상기 제1 값과 상이한 제2 값으로 수정하기 위한 요청을 수신하는 것,
    상기 메모리 디바이스의 구성이 잠가져 있는지 여부를 결정하는 것, 및
    메모리 디바이스의 구성이 잠가져 있다는 결정에 응답하여, 상기 구성 셋팅의 제1 값을 제2 값으로 변경하지 못하게 막는 것
    을 더 포함하는, 메모리 디바이스.
  7. 제1항에 있어서, 복수의 메모리 셀은 NAND 메모리 셀인, 메모리 디바이스.
  8. 방법으로서,
    메모리 디바이스에서,
    상기 메모리 디바이스의 구성 셋팅을 제1 값으로 설정하기 위한 요청을 수신하는 단계,
    상기 메모리 디바이스의 구성 셋팅을 상기 제1 값으로 설정하는 단계,
    동작 메트릭이 임계값 미만인지 여부를 결정하는 단계,
    상기 메모리 디바이스의 구성 셋팅을 상기 제1 값으로 설정하고 상기 동작 메트릭이 임계값 미만이라고 결정하는 것에 응답하여, 보안 키 수정 기능을 활성화하는 단계,
    상기 메모리 디바이스의 메모리 어레이의 보호 부분에 대한 보안 키를 수정하기 위한 요청을 수신하는 단계,
    상기 요청을 수신하는 것에 응답하여, 상기 보안 키 수정 기능이 활성화되는지 여부를 결정하는 단계, 및
    상기 보안 키 수정 기능이 활성화되어 있다는 결정에 응답하여, 상기 보호 부분에 대한 보안 키를 수정하는 단계
    를 포함하는, 방법.
  9. 제8항에 있어서, 상기 구성 셋팅은 주문자 상표 부착 생산(Original Equipment Manufacturer) 스트링 속성인, 방법.
  10. 제8항에 있어서, 상기 보호 부분은 RPMB(replay protected memory block)를 포함하고, 동작은
    상기 보안 키를 수정한 후, RPMB의 위치에서 메모리 동작을 수행하기 위한 요청을 수신하는 것 - 상기 요청은 비밀 값을 포함함 - ,
    상기 비밀 값이 상기 요청 및 수정된 보안 키에 기초하는 기대 비밀 값인지 여부를 결정하는 것, 및
    상기 비밀 값이 기대 비밀 값이라는 결정에 응답하여, RPMB의 위치에서 메모리 동작을 수행하는 것
    을 더 포함하는, 방법.
  11. 제8항에 있어서, 동작은
    상기 보안 키 수정 기능이 활성화되어 있지 않다는 결정에 응답하여, 상기 보호 부분에 대한 보안 키를 수정하지 않는 것을 더 포함하는, 방법.
  12. 제8항에 있어서, 동작은
    메모리 디바이스의 구성 셋팅을 제2 값으로 설정하기 위한 요청을 수신하는 것,
    상기 메모리 디바이스의 구성 셋팅을 제2 값으로 설정하는 것,
    동작 메트릭이 임계값 미만인지 여부를 결정하는 것,
    동작 메트릭이 임계값 미만이 아니고, 구성 셋팅이 제2 값으로 설정되었다는 결정에 응답하여, 보안 키 수정 기능을 비활성화하는 것,
    상기 보호 부분에 대한 보안 키를 수정하기 위한 제2 요청을 수신하는 것,
    상기 제2 요청을 수신하는 것에 응답하여, 보안 키 수정 기능이 활성화되는지 여부를 결정하는 것, 및
    상기 보안 키 수정 기능이 비활성화되어 있다는 결정에 응답하여, 상기 보호 부분에 대한 보안 키를 수정하지 못하게 막는 것
    을 더 포함하는, 방법.
  13. 제8항에 있어서, 상기 동작은
    메모리 디바이스의 구성(configuration)을 잠그기 위한 요청을 수신하는 것,
    상기 메모리 디바이스의 구성을 잠그는 것,
    상기 구성 셋팅을 상기 제1 값과 상이한 제2 값으로 수정하기 위한 요청을 수신하는 것,
    상기 메모리 디바이스의 구성이 잠가져 있는지 여부를 결정하는 것, 및
    메모리 디바이스의 구성이 잠가져 있다는 결정에 응답하여, 상기 구성 셋팅의 제1 값을 제2 값으로 변경하지 못하게 막는 것
    을 더 포함하는, 방법.
  14. 제8항에 있어서, 복수의 메모리 셀은 NAND 메모리 셀인, 방법.
  15. 명령을 포함하는 비일시적 기계 판독형 매체로서, 상기 명령은 메모리 디바이스의 제어기에 의해 실행될 때 상기 메모리 디바이스로 하여금,
    상기 메모리 디바이스의 구성 셋팅(configuration setting)을 제1 값으로 설정하기 위한 요청을 수신하는 것,
    상기 메모리 디바이스의 구성 셋팅을 상기 제1 값으로 설정하는 것,
    동작 메트릭이 임계값 미만인지 여부를 결정하는 것,
    상기 메모리 디바이스의 구성 셋팅을 상기 제1 값으로 설정하고 상기 동작 메트릭이 임계값 미만이라는 결정에 응답하여, 보안 키 수정 기능을 활성화하는 것,
    보호 부분에 대해 보안 키를 수정하기 위한 요청을 수신하는 것,
    상기 요청을 수신하는 것에 응답하여, 보안 키 수정 기능이 활성화되는지 여부를 결정하는 것, 및
    보안 키 수정 기능이 활성화되어 있다는 결정에 응답하여, 상기 보호 부분에 대한 보안 키를 수정하는 것
    을 포함하는 동작을 수행하게 하는, 비일시적 기계 판독형 매체.
  16. 제15항에 있어서, 상기 구성 셋팅은 주문자 상표 부착 생산(Original Equipment Manufacturer) 스트링 속성인, 비일시적 기계 판독형 매체.
  17. 제15항에 있어서, 상기 보호 부분은 RPMB(replay protected memory block)이며, 상기 동작은
    상기 보안 키를 수정한 후, RPMB의 위치에서 메모리 동작을 수행하기 위한 요청을 수신하는 것 - 상기 요청은 비밀 값을 포함함 - ,
    상기 비밀 값이 상기 요청 및 수정된 보안 키에 기초하는 기대 비밀 값인지 여부를 결정하는 것, 및
    상기 비밀 값이 기대 비밀 값이라는 결정에 응답하여, RPMB의 위치에서 메모리 동작을 수행하는 것
    을 더 포함하는, 비일시적 기계 판독형 매체.
  18. 제15항에 있어서, 상기 동작은
    상기 보안 키 수정 기능이 활성화되어 있지 않다는 결정에 응답하여, 보호 부분에 대한 보안 키를 수정하지 않는 것을 더 포함하는, 비일시적 기계 판독형 매체.
  19. 제15항에 있어서, 상기 동작은
    상기 메모리 디바이스의 구성 셋팅을 제2 값으로 설정하기 위한 요청을 수신하는 것,
    상기 메모리 디바이스의 구성 셋팅을 제2 값으로 설정하는 것,
    동작 메트릭이 임계값 미만인지 여부를 결정하는 것,
    상기 동작 메트릭이 임계값 미만이 아니고, 상기 구성 셋팅이 상기 제2 값으로 설정된다는 결정에 응답하여, 보안 키 수정 기능을 비활성화하는 것,
    상기 보호 부분에 대한 상기 보안 키를 수정하기 위한 제2 요청을 수신하는 것,
    상기 제2 요청을 수신한 것에 응답하여, 상기 보안 키 수정 기능이 활성화되어 있는지 여부를 결정하는 것, 및
    상기 보안 키 수정 기능이 비활성화되어 있다는 결정에 응답하여, 상기 보호 부분에 대한 보안 키를 수정하지 못하게 막는 것
    을 더 포함하는, 비일시적 기계 판독형 매체.
  20. 제15항에 있어서, 상기 동작은
    메모리 디바이스의 구성(configuration)을 잠그기 위한 요청을 수신하는 것,
    상기 메모리 디바이스의 구성을 잠그는 것,
    상기 구성 셋팅을 상기 제1 값과 상이한 제2 값으로 수정하기 위한 요청을 수신하는 것,
    상기 메모리 디바이스의 구성이 잠가져 있는지 여부를 결정하는 것, 및
    메모리 디바이스의 구성이 잠가져 있다는 결정에 응답하여, 상기 구성 셋팅의 제1 값을 제2 값으로 변경하지 못하게 막는 것
    을 포함하는, 비일시적 기계 판독형 매체.
KR1020200187729A 2019-12-30 2020-12-30 재생 보호 메모리 블록을 위한 보안 키 업데이트 KR20210086991A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962955135P 2019-12-30 2019-12-30
US62/955,135 2019-12-30

Publications (1)

Publication Number Publication Date
KR20210086991A true KR20210086991A (ko) 2021-07-09

Family

ID=76545697

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200187729A KR20210086991A (ko) 2019-12-30 2020-12-30 재생 보호 메모리 블록을 위한 보안 키 업데이트

Country Status (3)

Country Link
US (1) US20210203496A1 (ko)
KR (1) KR20210086991A (ko)
CN (1) CN113126905A (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11481141B1 (en) * 2021-04-26 2022-10-25 Micron Technology, Inc. Secure self-purging memory partitions
US20240020426A1 (en) * 2022-07-15 2024-01-18 Samsung Electronics Co., Ltd. Storage device having an rpmb reset function and rpmb management method thereof
US11954505B2 (en) * 2022-08-11 2024-04-09 Seagate Technology Llc Distributed data storage system with dormant hardware activation
CN115469801B (zh) * 2022-08-16 2023-06-06 上海江波龙数字技术有限公司 存储设备的格式化方法及相关设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8290150B2 (en) * 2007-05-11 2012-10-16 Validity Sensors, Inc. Method and system for electronically securing an electronic device using physically unclonable functions
GB2490875A (en) * 2011-05-11 2012-11-21 Future Upgrades Ltd Controlling access to data storage means using a one-time-programmable memory device
US9203609B2 (en) * 2011-12-12 2015-12-01 Nokia Technologies Oy Method and apparatus for implementing key stream hierarchy
KR20140073384A (ko) * 2012-12-06 2014-06-16 삼성전자주식회사 보안 부팅을 수행하는 칩 시스템과 이를 이용하는 화상형성장치 및 그 보안 부팅 방법
US20150089245A1 (en) * 2013-09-26 2015-03-26 Asher M. Altman Data storage in persistent memory
US9659191B2 (en) * 2014-04-09 2017-05-23 Seagate Technology Llc Encryption key storage and modification in a data storage device
US10715340B2 (en) * 2016-08-04 2020-07-14 Macronix International Co., Ltd. Non-volatile memory with security key storage
US10606773B2 (en) * 2017-01-04 2020-03-31 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Systems and methods for low latency access of memory between computing devices
KR102436485B1 (ko) * 2017-11-20 2022-08-26 삼성전자주식회사 전자 장치 및 전자 장치에서 보안 운영체제 기반 데이터 송수신 방법
US10404454B1 (en) * 2018-04-25 2019-09-03 Blockchain Asics Llc Cryptographic ASIC for derivative key hierarchy

Also Published As

Publication number Publication date
CN113126905A (zh) 2021-07-16
US20210203496A1 (en) 2021-07-01

Similar Documents

Publication Publication Date Title
US11385838B2 (en) Host accelerated operations in managed NAND devices
US11237737B2 (en) SLC cache management
US11409651B2 (en) Host accelerated operations in managed NAND devices
US11722323B2 (en) Physical unclonable function with NAND memory array
CN111539043B (zh) 提供对受保护存储器的存取的系统
US10950310B2 (en) Secure erase for data corruption
US20210203496A1 (en) Secure key update for replay protected memory blocks
US11610632B2 (en) NAND temperature data management
US11556481B2 (en) Increased efficiency obfuscated logical-to-physical map management
US20230205628A1 (en) Read retry scratch space
US20200210106A1 (en) Memory device policy enforcement using firmware

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right