KR20240070704A - 펌웨어 상태에 기초한 자동 전력 차단 - Google Patents

펌웨어 상태에 기초한 자동 전력 차단 Download PDF

Info

Publication number
KR20240070704A
KR20240070704A KR1020247015261A KR20247015261A KR20240070704A KR 20240070704 A KR20240070704 A KR 20240070704A KR 1020247015261 A KR1020247015261 A KR 1020247015261A KR 20247015261 A KR20247015261 A KR 20247015261A KR 20240070704 A KR20240070704 A KR 20240070704A
Authority
KR
South Korea
Prior art keywords
memory device
memory
firmware
protect
elapsed time
Prior art date
Application number
KR1020247015261A
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 KR20240070704A publication Critical patent/KR20240070704A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • 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/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • 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
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • 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
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • 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
    • 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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • 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/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)
  • Stored Programmes (AREA)
  • Power Sources (AREA)

Abstract

펌웨어가 성공적으로 로딩되었는지 여부 및 펌웨어 버전이 유효하고 작동 가능한지 여부를 결정하는 동작, 펌웨어가 성공적으로 로딩되지 않았거나 펌웨어가 유효하지 않고 작동 불가능인 경우, 펌웨어 로딩에 실패한 시도 횟수 또는 펌웨어 로딩에 실패한 시도들의 경과 시간을 추적하는 동작, 및 실패한 시도 횟수 또는 경과 시간이 프로그래밍 가능 임계값에 도달한 경우, 메모리 디바이스를 절전 상태로 진입시키는 동작을 포함하는 장치 및 방법이 개시된다.

Description

펌웨어 상태에 기초한 자동 전력 차단{AUTOMATED POWER DOWN BASED ON STATE OF FIRMWARE}
(우선 출원)
본 출원은 2018년 12월 13일자로 출원된 미국 특허 출원 제16/219,292호의 우선권의 이익을 주장하며, 그 전체 내용을 본원에 참조로 포함한다.
메모리 디바이스들은 호스트 시스템(예컨대, 컴퓨터 또는 다른 전자 디바이스)에 대한 데이터의 전자 스토리지를 제공하는 반도체 회로들이다. 메모리 디바이스들은 휘발성 또는 비휘발성일 수 있다. 휘발성 메모리는 데이터를 유지하기 위해 전력이 필요하고, 그 중에서도 랜덤 액세스 메모리(RAM: Random-Access Memory), 정적 램(SRAM: Static RAM), 동적 램(DRAM: Dynamic RAM) 또는 동기식 동적 램(SDRAM: Synchronization DRAM)과 같은 디바이스들을 포함한다. 비휘발성 메모리는 전원이 공급되지 않을 때에도 저장된 데이터를 유지할 수 있으며, 그 중에서도 플래시 메모리, 판독 전용 메모리(ROM: read-only memory), 전기적 소거 가능 판독 가능 메모리(EEPROM: electrically erasable programmable ROM), 소거 가능 판독 가능 메모리(EPROM: erasable programmable ROM), 상변화 램(PCRAM: Phase Change RAM), 저항성 램(RRAM: Resistive RAM) 또는 자기 저항성 램(MRAM: Magnetoresistive RAM)과 같은 가변 저항 메모리와 같은 디바이스들을 포함한다.
호스트 시스템들은 일반적으로 호스트 프로세서, 호스트 프로세서를 지원하기 위한 주메모리의 제1 양(예컨대, 종종 DRAM과 같은 휘발성 메모리) 및 주메모리에 추가하거나 주메모리와는 별개로 데이터를 보관하기 위한 추가 스토리지를 제공하는 하나 이상의 저장 시스템(예컨대, 종종 플래시 메모리와 같은 비휘발성 메모리)을 포함한다.
고체 상태 드라이브(SSD: Solid-State Drive)와 같은 저장 시스템에는 다수의 다이(die) 또는 로직 유닛(LUN: logical unit)을 포함하는 하나 이상의 메모리 디바이스와 메모리 제어기가 포함될 수 있다. 특정예들에서, 각각의 다이는 다수의 메모리 어레이, 및 그 위에 다이 로직(die logic)이나 다이 프로세서(die processor)와 같은 주변 회로망을 포함할 수 있다. 메모리 제어기는 통신 인터페이스(예컨대, 양방향 병렬 또는 직렬 통신 인터페이스)를 통해 호스트 디바이스(예컨대, 호스트 프로세서 또는 인터페이스 회로망)와 통신하도록 구성된 인터페이스 회로망을 포함할 수 있다. 메모리 제어기는 메모리 디바이스들과 호스트 디바이스 사이에서 데이터(예컨대, 사용자 데이터 및 오류 데이터 또는 어드레스 데이터 등과 같은 연관 무결성 데이터)를 전송하기 위한 판독 또는 기록 동작, 메모리 디바이스들로부터 데이터를 소거하기 위한 소거 동작, 드라이브 관리 동작(예컨대, 데이터 이주(data migration), 가비지 수집(garbage collection), 블록 폐기(block retirement)) 등의 수행과 같은 메모리 동작들이나 명령어들과 관련하여 호스트 시스템으로부터 명령들 또는 동작들을 수신할 수 있다.
반드시 축척대로 그려지지 않은 도면에서, 유사한 도면 번호는 상이한 도면에서 마찬가지의 구성요소들을 설명할 수 있다. 서로 다른 문자 접미사들을 가진 동일한 도면 번호는 마찬가지의 구성요소들의 서로 다른 예를 나타낼 수 있다. 도면들은 일반적으로 본 명세서에서 설명된 다양한 실시예들을 한정하는 것이 아닌 예로서 도시한다.
도 1은 호스트 디바이스와 저장 시스템을 포함하는 호스트 시스템의 예를 도시한다.
도 2a 및 도 2b는 펌웨어의 상태에 기초하여 메모리 디바이스를 절전 상태로 자동 진입시키는 예시적인 방법들을 도시한다.
도 3은 디바이스 펌웨어의 상태에 기초하여 관리되는 전력 소비에 대한 메모리 디바이스 처리의 예시적인 흐름도를 도시한다.
도 4는 3D NAND 아키텍처 반도체 메모리 어레이의 예시적인 개략도를 도시한다.
도 5는 메모리 모듈의 예시적인 블록도를 도시한다.
도 6은 정보 처리 시스템의 예시적인 블록도를 도시한다.
소프트웨어(예컨대, 프로그램들), 명령어들, 운영 체제(OS)들 및 기타 데이터는 일반적으로 저장 시스템들에 저장되고, 호스트 프로세서가 사용할 수 있도록 주메모리에 액세스된다. 주메모리(예컨대, RAM)는 일반적으로 저장 시스템의 대부분의 메모리 디바이스들(예컨대, SSD 등과 같은 비휘발성)보다 더 빠르고, 더 고가이며, 상이한 유형의 메모리 디바이스(예컨대, 휘발성)이다. 주메모리에 추가하여, 호스트 시스템들은 특정예들에서 호스트 프로세서의 속도에 가깝거나 초과하는 속도로 작동하도록 구성되지만, 밀도가 낮고 고가인 주메모리보다 종종 더 빠른 정적 메모리 그룹(예컨대, 캐시, 종종 SRAM)과 같은 상이한 레벨의 휘발성 메모리를 포함할 수 있다. 다른 예들에서, 원하는 호스트 시스템 성능 및 비용에 따라, 더 많거나 적은 레벨이나 양의 주메모리 또는 정적 메모리가 사용될 수 있다.
SSD와 같은 플래시 메모리 디바이스들은 일반적으로 게이트 메모리 셀들을 플로팅하는 하나 이상의 단일 트랜지스터의 그룹을 포함한다. 두 가지의 일반적인 유형의 플래시 메모리 어레이 아키텍처에는 NAND 및 NOR 아키텍처들이 포함된다. 메모리 어레이의 플로팅 게이트 메모리 셀들은 일반적으로 매트릭스로 배열된다.
대부분의 관리형 NAND 시스템(eMMC, UFS, SSD)들의 경우, NOR 또는 NAND와 같은 비휘발성 매체의 시스템 내의 다른 곳에 저장된 펌웨어를 로딩하는, 제한된 목적으로 구성된 ROM이 존재한다. 펌웨어의 성공적인 로딩은 메모리 디바이스의 작동을 위한 전제 조건이다. 현재 펌웨어가 없거나 손상된 펌웨어를 가진 디바이스들은 중간 전원 상태에 있으며, 펌웨어가 손상된 경우에도, 펌웨어를 성공적으로 로딩하기 위해 무제한으로 시도하여 펌웨어가 로딩될 때까지 무기한 대기한다.
로딩되지 않은 펌웨어, 또는 손상되었거나 공격을 받거나 로딩되려고 시도하는 펌웨어로 디바이스들을 보호하기 위해, 본 주제는 제한된 횟수의 시도와 타임아웃을 재시도한 다음 클록들 및 전원 도메인들을 종료하도록 구현되어 시스템을 최소 전력으로 보호 상태로 만드는 ROM 기반 피처(여기서는 펌웨어 활동 트랙커(firmware activity tracker) 또는 펌웨어 활동 모듈이라고 함)를 제공한다.
예를 들어, 제조 환경에서는 펌웨어가 로딩되지 않을 수 있다. 대규모 병렬 처리(massive parallelism)를 사용하는 제조 단계들의 경우, 디바이스들이 사용할 수 있는 전력량은 제한된다. 일부 예들에서, 펌웨어는 스로틀링(throttling), 클록 주파수들의 변경, 실리콘 영역들에 대한 전력 차단 또는 동적으로 전압들을 변경하는 것에 의해 전력을 관리할 수 있다. 이러한 보호 단계들은 현재 펌웨어 코드를 성공적으로 로딩하지 않고는 시작될 수 없다. 본 주제는, 펌웨어를 성공적으로 로딩할 수 없음을 감지한 다음 제한된 전원 상태를 구현함으로써, 펌웨어 없이도 유사한 기능을 제공한다.
일반적으로, 저전력 상태는 고가속 스트레스 테스트(HAST: highly accelerated stress testing) 및 패키징 자격들에 사용된다. 연소 오븐(burn oven)에서와 같이 병렬로 많은 유닛을 사용하는 로딩 보드들을 제조하는 경우, 다이(die)는 동시에 고전력을 끌어낼 수는 없다. 예를 들어, 펌웨어가 손상되거나 공격받는 경우, 본 주제는 이러한 테스트 상황들에서 디바이스에 대해 보호 상태나 보호 모드를 제공한다.
본 주제는 메모리 디바이스를 보호 상태나 보호 모드로 유지하기 위해 ROM 코드 또는 하드웨어 블록을 제공한다. 카운터, 레지스터 및/또는 타이머는 펌웨어를 부팅하거나 로딩하려는 시도들을 추적하거나 카운팅하고, 또한 성공적으로 로딩되거나, 로딩이 실패되거나, 또는 손상된 펌웨어 코드로 로딩되는 것과 같은 펌웨어 로딩 상태를 추적하거나 카운팅하는 데 사용된다. 본 방법은 또한 펌웨어 유효성의 검출 방법을 제공한다. 펌웨어가 성공적으로 로딩되지 않았거나, 또는 손상되거나 비기능적인(non-functioning) 상태로 로딩되는 경우, 본 주제는 저 드롭 아웃(LDO: low dropout) 조절 또는 전력 게이팅(power gating)을 위한 전압 제어를 사용하는 것과 같이 디바이스를 절전 상태로 진입시키는 것을 제공한다. 본 주제는 부가적으로 또는 대안적으로 클록들, 클록 도메인들 및 오실레이터들을 느려지게 하거나 종료시킬 수 있다. 본 주제의 이점은, 특정 상태들의 펌웨어에 대한 전력을 자동으로 낮추어 전력 소비를 제한하는 것, 및 특정 상태들의 펌웨어에 대한 디바이스에의 액세스를 내부적으로 방지하여 디바이스를 보호하는 것을 포함한다.
본 개시의 양태들은 펌웨어가 성공적으로 로딩되었는지 여부 및 펌웨어 버전이 유효하고 작동 가능한지 여부를 결정하고, 펌웨어가 성공적으로 로딩되지 않았거나 펌웨어가 유효하지 않고 작동 불가능인 경우, 펌웨어 로딩에 실패한 시도 횟수 또는 펌웨어 로딩에 실패한 시도들에 대한 경과 시간을 추적하며, 실패한 시도 횟수 또는 경과 시간이 프로그래밍 가능 임계값에 도달한 경우, 메모리 디바이스를 절전 상태로 진입시키도록 구성된 메모리 시스템에 관한 것이다.
도 1은 통신 인터페이스(I/F)(115)(예컨대, 양방향 병렬 또는 직렬 통신 인터페이스)를 통해 통신하도록 구성된 호스트 디바이스(105) 및 저장 시스템(110)을 포함하는 예시적인 시스템(예컨대, 호스트 시스템)(100)을 도시한다. 호스트 디바이스(105)는 호스트 프로세서(106)(예컨대, 호스트 중앙 처리 유닛(CPU) 또는 다른 프로세서나 프로세싱 디바이스) 또는 다른 호스트 회로망(예컨대, 메모리 관리 유닛(MMU: memory management unit), 인터페이스 회로망, 평가 회로망(107), 등)을 포함할 수 있다. 특정예들에서, 호스트 디바이스(105)는 호스트 프로세서(106)의 동작을 지원하기 위해 주메모리(108)(예컨대, DRAM 등) 및 선택적으로 정적 메모리(109)를 포함할 수 있다.
저장 시스템(110)은 범용 플래시 저장(UFS: universal flash storage) 디바이스, 내장형 MMC(eMMCTM) 디바이스, 또는 하나 이상의 다른 메모리 디바이스를 포함할 수 있다. 예를 들어, 저장 시스템(110)이 UFS 디바이스를 포함하는 경우, 통신 인터페이스(115)는 하나 이상의 합동 전자 디바이스 엔지니어링 협의회(JEDEC: Joint Electron Device Engineering Council) 표준(예컨대, JEDEC 표준 D223D(JESD223D), 일반적으로 JEDEC UFS 호스트 컨트롤러 인터페이스(UFSHCI) 3.0 등으로 지칭됨)에 정의된 것과 같은 직렬 양방향 인터페이스를 포함할 수 있다. 또 다른 예에서, 저장 시스템(110)이 eMMC 디바이스를 포함하는 경우, 통신 인터페이스(115)는 다수의 병렬 양방향 데이터 라인(예컨대, DAT[7:0]), 및 하나 이상의 JEDEC 표준(예컨대, JEDEC 표준 D84-B51(JESD84-A51), 일반적으로 JEDEC eMMC 표준 5.1 등이라고 지칭됨)으로 정의된 바와 같은 하나 이상의 명령 라인을 포함할 수 있다. 다른 예들에서, 저장 시스템(110)은 하나 이상의 다른 메모리 디바이스를 포함할 수 있거나, 통신 인터페이스들(115)은 호스트 디바이스(105) 및 저장 시스템(110)에 따라 하나 이상의 다른 인터페이스를 포함할 수 있다.
저장 시스템(110)은 메모리 제어기(111) 및 비휘발성 메모리(112)를 포함할 수 있다. 일 예에서, 비휘발성 메모리는 하나 이상의 플래시 메모리 디바이스 등과 같은 다수의 메모리 디바이스(예컨대, 다이들(dies) 또는 LUN들)를 포함할 수 있으며, 이들 각각은 주변 회로망을 포함하고, 메모리 제어기(111)에 의해 제어된다.
플래시 메모리 디바이스들은 일반적으로 게이트 메모리 셀들을 플로팅하는 하나 이상의 단일 트랜지스터의 그룹을 포함한다. 두 가지 일반적인 유형의 플래시 메모리 어레이 아키텍처에는 NAND 및 NOR 아키텍처들이 포함된다. 메모리 어레이의 플로팅 게이트 메모리 셀들은 일반적으로 매트릭스로 배열된다. 어레이의 행 내의 각 메모리 셀의 게이트들은 액세스 라인(예컨대, 워드 라인)에 연결된다. NOR 아키텍처에서, 어레이의 컬럼에 있는 각 메모리 셀의 드레인들은 데이터 라인(예컨대, 비트 라인)에 연결된다. NAND 아키텍처에서, 어레이의 컬럼에 있는 각 메모리 셀의 드레인들은 소스 라인과 비트 라인 사이에서 소스와 직렬로 함께 연결된다.
NOR, NAND, 3D 크로스 포인트(3D Cross Point)(Xpoint), 홀로그래픽 RAM(HRAM: Holographic RAM), MRAM 또는 하나 이상의 다른 아키텍처 반도체 메모리 어레이 내의 각 메모리 셀은, 개별적으로 또는 집합적으로, 하나 또는 다수의 프로그래밍된 상태로 프로그래밍될 수 있다. 단일 레벨 셀(SLC: single-level cell)은 2개의 프로그래밍된 상태(예컨대, 1 또는 0) 중 하나로 셀당 1비트의 데이터를 나타낼 수 있다. 다중 레벨 셀(MLC: Multi-Level Cell)은 다수의 프로그래밍된 상태(예컨대, 2 n , 여기서, n은 데이터의 비트 수임)에서 셀당 2비트 이상의 데이터를 나타낼 수 있다. 특정예들에서, MLC는 4개의 프로그래밍된 상태 중 하나에서 2비트의 데이터를 저장할 수 있는 메모리 셀을 지칭할 수 있다. 트리플 레벨 셀(TLC: triple-level cell)은 8개의 프로그래밍된 상태 중 하나에서 셀당 3비트의 데이터를 나타낼 수 있다. 쿼드 레벨 셀(QLC: quad-level cell)은 16개의 프로그래밍된 상태 중 하나에서 셀당 4비트의 데이터를 나타낼 수 있다. MLC는, TLC 및 QLC 등을 포함하여, 셀당 1비트 초과의 데이터를 저장할 수 있는(즉, 2개 초과의 프로그래밍된 상태를 나타낼 수 있는) 임의의 메모리 셀을 나타내기 위해 더 넓은 맥락에서 본원에 사용된다.
저장 시스템(110)은 멀티미디어 카드(MMC) 고체 상태 저장 디바이스(예컨대, 마이크로 보안 디지털(SD) 카드 등)를 포함할 수 있다. MMC 디바이스들은 호스트 디바이스(105)와의 다수의 병렬 인터페이스(예컨대, 8비트 병렬 인터페이스)를 포함하고, 종종 호스트 디바이스로부터 제거 가능하고 분리된 구성요소들이다. 반대로, 임베디드 MMC(eMMC: embedded MMC) 디바이스들은 회로 기판에 부착되며, SATA(Serial ATA) 기반 SSD 디바이스들에 필적하는 판독 속도를 가진 호스트 디바이스의 구성요소로 간주된다. 가상 또는 증강 현실 디바이스들을 완전히 활성화하고, 증가하는 네트워크 속도를 활용하는 등과 같은 모바일 장치 성능에 대한 수요가 계속 증가함에 따라, 저장 시스템은 병렬에서 직렬 통신 인터페이스로 전환되었다. 제어기들 및 펌웨어를 포함하는 UFS 디바이스들은 전용 판독/기록 경로들을 가진 저전압 차동 시스널링(LVDS: low-voltage differential signaling) 직렬 인터페이스를 사용하는 호스트 디바이스와 통신하여 호스트 디바이스와 저장 시스템 간의 판독/기록 속도를 더욱 향상시킨다.
3차원(3D) 아키텍처 반도체 메모리 디바이스 기술에서, 수직 플로팅 게이트 또는 전하 트래핑 저장 구조체를 적층하여, 층수, 물리적 페이지를 증가시킴에 따라 메모리 디바이스의 메모리 셀들의 밀도를 높일 수 있다.
데이터는 종종 작은 유닛들로 저장 시스템에 임의로 저장된다. 단일 유닛으로 액세스하더라도, 데이터를 작은 4~16k 단일 파일 판독으로 무작위 수신할 수 있다(예컨대, 작업의 60%~80%가 16k보다 작음). 사용자와 커널 애플리케이션(kernel application)들도 데이터가 하나의 순차적 응집 유닛(sequential cohesive unit)으로 저장되어야 한다는 것을 나타내기는 어렵다. 파일 시스템들은 일반적으로 순차 검색 공간이 아니라 공간 활용을 최적화하도록 설계된다.
메모리 제어기(111)는 호스트 디바이스(105)로부터 명령어들을 수신할 수 있고, 비휘발성 메모리 어레이(112)의 하나 이상의 메모리 셀로(예컨대, 기록 또는 삭제) 또는 하나 이상의 메모리 셀로부터(예컨대, 판독) 데이터를 전송하는 것과 같이, 비휘발성 메모리(112)와 통신할 수 있다. 메모리 제어기(111)는, 무엇보다도, 다수의 구성요소 또는 집적 회로와 같은 회로망 또는 펌웨어를 포함할 수 있다. 예를 들어, 메모리 제어기(111)는 메모리 어레이를 통한 액세스를 제어하고 호스트 디바이스(105)와 저장 시스템(100) 사이에 변환층(translation layer)을 제공하도록 구성된 하나 이상의 메모리 제어 유닛, 회로 또는 구성요소를 포함할 수 있다.
비휘발성 메모리 어레이(112)(예컨대, 3D NAND 아키텍처 반도체 메모리 어레이)는, 예를 들어, 다수의 디바이스, 평면, 블록 또는 물리적 페이지에 배열된 다수의 메모리 셀을 포함할 수 있다. 일 예로, TLC 메모리 디바이스는 페이지당 18,592바이트(B)의 데이터, 블록당 1,536페이지, 평면당 548블록, 디바이스당 4평면을 포함할 수 있다. 또 다른 예로, MLC 메모리 디바이스는 페이지당 18,592바이트(B)의 데이터, 블록당 1,024 페이지, 평면당 548블록, 디바이스당 4평면을 포함할 수 있지만, 해당 TLC 메모리 디바이스로서, 절반의 필요한 기록 시간과 2배의 프로그램/삭제(P/E) 사이클을 갖는다. 다른 예들은 다른 숫자들이나 배열들이 포함될 수 있다.
도 2a는 펌웨어의 상태에 기초하여 메모리 디바이스를 절전 상태로 자동 진입시키는 예시적인 방법(200)을 도시한다. 다양한 예들에서, 메모리 디바이스를 작동하는 방법(200)은, 단계 202에서, 펌웨어의 제1 인스턴스가 성공적으로 로딩되지 않았거나, 로딩되었지만, 유효하지 않고 작동 가능하지 않음을 나타내는 하나 이상의 로딩 입력을 펌웨어 활동 트랙커(firmware activity tracker)로부터 수신하는 것을 포함한다. 단계 204에서, 하나 이상의 로딩 입력을 수신한 후, 방법은 펌웨어를 로딩하기 위해 실패한 시도 횟수를 나타내는 하나 이상의 재로딩 상태 입력을 펌웨어 활동 트랙커로부터 수신하는 것을 포함한다. 단계 206에서, 실패한 시도 횟수가 프로그래밍 가능 임계값에 도달했음을 하나 이상의 재로딩 상태 입력이 나타내는 경우, 방법은 메모리 디바이스를 절전 상태로 진입시키는 것을 포함한다.
도 2b는 펌웨어의 상태에 기초하여 메모리 디바이스를 절전 상태로 자동 진입시키는 예시적인 방법(250)을 도시한다. 다양한 예들에서, 메모리 디바이스를 작동하는 방법(250)은, 단계 252에서, 펌웨어의 제1 인스턴스가 성공적으로 로딩되지 않았거나, 로딩되었지만, 유효하지 않고 작동 가능하지 않음을 나타내는 하나 이상의 로딩 입력을 펌웨어 활동 트랙커(firmware activity tracker)로부터 수신하는 것을 포함한다. 단계 254에서, 하나 이상의 로딩 입력을 수신한 후, 방법은 펌웨어를 로딩하기 위해 실패한 시도에 대한 경과 시간을 나타내는 하나 이상의 재로딩 상태 입력을 펌웨어 활동 트랙커로부터 수신하는 것을 포함한다. 단계 256에서, 실패한 시도에 대한 경과 시간이 타임아웃 임계값에 도달했음을 하나 이상의 재로딩 상태 입력이 나타내는 경우, 방법은 메모리 디바이스를 절전 상태로 진입시키는 것을 포함한다.
다양한 예들에서, 펌웨어 활동 트랙커는 ROM이나 하드웨어를 포함한다. 예를 들어, 포함된 예들 중 어느 하나를 수행하기 위한 임계값들이나 코드는 퓨즈, 금속 마스크, 본딩 옵션(bonding option), 기판 와이어링 옵션, 부트스트랩(bootstrap) 하드웨어(HW) 선택 핀, 또는 ROM 설정에 저장될 수 있다. 일 예에서, 부트스트랩 버튼을 누르면, 하드와이어드 프로그램(hardwired program)이 입력 유닛으로부터 부트스트랩 프로그램을 판독하도록 한다. 본 주제는 프로그래밍 가능 동작들 및 프로그래밍 가능 임계값들에 관련되고, 이는 다양한 예에서 동작들 및 임계값들이 선택되거나 구성된 하드웨어를 포함할 수 있다. 일부 예들에서, 프로그래밍 가능 코드, 설정들 또는 임계값들은 끊어진 퓨즈들, ROM 마스크 변경들, 와이어 본드들, 기판 연결들, 구성 핀들 또는 구성 신호들을 통해 구성된 설정들을 의미한다. 본 주제의 범주를 벗어나지 않고 추가 프로그램 저장 방법들이 사용될 수 있다.
도 3은 디바이스 펌웨어의 상태에 기초하여 관리되는 전력 소비에 대한 메모리 디바이스 처리의 예시적인 흐름도를 도시한다. 방법은 단계 301에서 시작하고, 단계 302에서, 메모리 디바이스에 펌웨어를 로딩하려고 시도한다. 단계 304에서, 메모리 제어기는 펌웨어가 성공적으로 로딩되었는지 여부를 결정한다. 펌웨어가 성공적으로 로딩되면, 단계 306에서, 메모리 제어기는 펌웨어 버전이 유효하고 작동 가능한 지 여부를 결정한다. 펌웨어 버전이 유효하고 작동 가능한 경우, 방법은 단계 311에서 종료된다. 펌웨어가 성공적으로 로딩되지 않았거나 펌웨어 버전이 유효하지 않고 작동할 수 없는 경우, 메모리 제어기는 펌웨어 로딩 시도 횟수가 임계값보다 큰지를 확인한다. 펌웨어 로딩 시도 횟수가 임계값보다 크지 않으면, 단계 302에서, 메모리 제어기는 펌웨어 로딩을 시도한다. 펌웨어 로딩 시도 횟수가 임계값보다 크면, 단계 310에서, 메모리 제어기는 메모리 디바이스를 절전 상태로 전환하고, 방법은 단계 311에서 종료된다. 다양한 예에서, 임계값은 프로그래밍 가능하다. 다양한 예에서, 펌웨어를 로딩하기 위한 타이머는 시도 임계값에 추가하거나 그 값 대신으로 사용될 수 있다. 다양한 예들에서, 타이머는 프로그래밍 가능하다.
도 4는 다수의 메모리 셀 스트링(예컨대, 제1 내지 제3 A0 메모리 스트링(405A0~407A0), 제1 내지 제3 An 메모리 스트링(405An~407An), 제1 내지 제3 B0 메모리 스트링(405B0~407B0), 제1 내지 제3 Bn 메모리 스트링(405Bn~407Bn) 등), 체계화된 블록들(예컨대, 블록 A(401A), 블록 B(401B) 등), 및 서브블록들(예컨대, 서브블록 A0(401A0), 서브블록 An(401An), 서브블록 B0(401B0), 서브블록 Bn(401Bn) 등)을 포함하는 3D NAND 아키텍처 반도체 메모리 어레이(400)의 예시적인 개략도를 도시한다. 메모리 어레이(400)는 일반적으로 블록, 디바이스 또는 메모리 디바이스의 다른 유닛에서 발견되는 더 많은 유사한 구조의 일부를 나타낸다.
메모리 셀들의 각 스트링은 소스 라인(SRC)(435)이나 소스 측 선택 게이트(SGS)(예컨대, 제1 내지 제3 A0 SGS(431A0~433A0), 제1 내지 제3 An SGS(431An~433An), 제1 내지 제3 B0 SGS(431B0~433B0), 제1 내지 제3 Bn SGS(431Bn~433Bn) 등)와 드레인 측 선택 게이트(SGD)(예컨대, 제1 내지 제3 A0 SGD(426A0~428A0), 제1 내지 제3 An SGD(426An~428An), 제1 내지 제3 B0 SGD(426B0~428B0), 제1 내지 제3 Bn SGD(426Bn~428Bn) 등) 사이에서 Z 방향으로, 소스에서 드레인으로 적층된 전하 저장 트랜지스터들(예컨대, 플로팅 게이트 트랜지스터들, 전하 트래핑 구조체들 등)의 여러 층(tier)을 포함한다. 3D 메모리 어레이 내의 메모리 셀들의 각 스트링은 X 방향을 따라 데이터 라인들(예컨대, 비트 라인들(BL) BL0~BL6(420~422))로 배열될 수 있고, Y 방향을 따라 물리적 페이지들로 배열될 수 있다.
물리적 페이지 내에서, 각 층은 메모리 셀들의 로우(row)를 나타내고, 메모리 셀들의 각 스트링은 컬럼(column)을 나타낸다. 서브블록은 하나 이상의 물리적 페이지를 포함할 수 있다. 블록은 다수의 서브블록(또는 물리적 페이지들)(예컨대, 128, 256, 384 등)을 포함할 수 있다. 본원에서는 2개의 블록을 갖는 것으로 도시되어 있지만, 각 블록은 2개의 서브블록을 가지며, 각 서브블록은 단일의 물리적 페이지를 가지며, 각 물리적 페이지는 3개의 메모리 셀 스트링을 가지며, 각 스트링은 8층의 메모리 셀을 가지며, 다른 예들에서, 메모리 어레이(400)는 더 많거나 더 적은 블록들, 서브블록들, 물리적 페이지들, 메모리 셀들의 스트링들, 메모리 셀들, 또는 층들을 포함할 수 있다. 예를 들어, 메모리 셀의 각 스트링은 필요에 따라 전하 저장 트랜지스터들의 위 또는 아래에 반도체 재료의 하나 이상의 추가 층(예컨대, 게이트들, 데이터 라인들 등의 선택)뿐만 아니라, 더 많거나 더 적은 층(예컨대, 16, 32, 64, 128 등)을 포함할 수 있다. 일 예로, 48GB TLC NAND 메모리 디바이스에는 페이지당 18,592 바이트(B)의 데이터(16,384+2,208바이트), 블록당 1,536페이지, 평면당 548블록, 디바이스당 4개 이상의 평면이 포함될 수 있다.
메모리 어레이(400) 내의 각 메모리 셀은 액세스 라인(예컨대, 워드 라인들(WL)WL00~WL70(410A~417A), WL01~WL71(410B~417B) 등)에 연결된(예컨대, 전기적으로 또는 다른 방식으로 작동 가능하게 연결된) 제어 게이트(CG)를 포함하고, 이는 필요에 따라 특정 층 또는 층의 일부에 걸쳐 제어 게이트(CG)들을 집합적으로 연결한다. 3D 메모리 어레이의 특정 층들과 그에 따른 스트링 내의 특정 메모리 셀들은 각각의 액세스 라인을 사용하여 액세스되거나 제어될 수 있다. 다양한 선택 라인을 사용하여 선택 게이트들의 그룹들에 액세스할 수 있다. 예를 들어, 제1 내지 제3 A0 SGD(426A0~428A0)는 A0 SGD 라인 SGDA0(425A0)을 사용하여 액세스될 수 있고, 제1 내지 제3 An SGD(426An~428An)는 SGD 라인 SGDAn(425An)을 사용하여 액세스될 수 있고, 제1 내지 제3 B0 SGD(426B0~428B0)는 B0 SGD 라인 SGDB0(425B0)을 사용하여 액세스될 수 있으며, 제1 내지 제3 Bn SGD(426Bn~428Bn)는 Bn SGD 라인 SGDBn(425Bn)을 사용하여 액세스될 수 있다. 제1 내지 제3 A0 SGS(431A0~433A0) 및 제1 내지 제3 An SGS(431An~433An)는 게이트 선택 라인 SGS0(430A)을 사용하여 액세스될 수 있고, 제1 내지 제3 B0 SGS(431B0~433B0) 및 제1 내지 제3 Bn SGS(431Bn~433Bn)는 게이트 선택 라인 SGS1(430B)을 사용하여 액세스될 수 있다.
일 예에서, 메모리 어레이(400)는 각 메모리 셀의 제어 게이트(CG)들을 연결하거나 어레이의 각 층의 게이트(또는 CG들이나 선택 게이트들의 일부)를 선택하도록 구성된 다수 레벨의 반도체 재료(예컨대, 폴리실리콘 등)를 포함할 수 있다. 어레이 내의 메모리 셀들의 특정 스트링들은 비트 라인(BL)들과 선택 게이트들 등의 조합을 사용하여 액세스되거나, 선택되거나, 또는 제어될 수 있으며, 특정 스트링들의 하나 이상의 층에 있는 특정 메모리 셀들은 하나 이상의 액세스 라인들(예컨대, 워드 라인들)을 사용하여 액세스되거나, 선택되거나, 또는 제어될 수 있다.
NAND 아키텍처 반도체 메모리 어레이에서, 선택된 메모리 셀의 상태는 선택된 메모리 셀을 포함하는 특정 데이터 라인에 대한 전류 또는 전압 변화를 감지함으로써 액세스될 수 있다. 메모리 어레이(400)는 하나 이상의 드라이버를 사용하여 액세스될 수 있다(예컨대, 제어 회로, 하나 이상의 프로세서, 디지털 로직 등에 의함). 일 예에서, 하나 이상의 드라이버는 특정 메모리 셀이나 메모리 셀들의 세트에서 수행되기를 원하는 작업 유형에 따라 특정 전위를 하나 이상의 데이터 라인(예컨대, 비트 라인들 BL0~BL2), 액세스 라인(예컨대, 워드 라인들 WL0~WL7) 또는 선택 게이트로 구동함으로써 특정 메모리 셀 또는 메모리 셀 세트를 활성화할 수 있다.
메모리 셀에 데이터를 프로그래밍하거나 기록하기 위해, 프로그래밍 전압(Vpgm)(예컨대, 하나 이상의 프로그래밍 펄스 등)은 선택된 워드 라인들(예컨대, WL40)에 인가될 수 있고, 따라서 선택된 워드 라인들에 연결된 각 메모리 셀의 제어 게이트에 인가될 수 있다. 프로그래밍 펄스들은, 예를 들어, 15V 또는 그 부근에서 시작할 수 있으며, 특정예에서는 각 프로그래밍 펄스 적용 동안 크기가 증가할 수 있다. 프로그램 전압이 선택된 워드 라인들에 인가되는 동안, 접지 전위(예컨대, Vss)와 같은 전위가 프로그래밍 대상 메모리 셀의 데이터 라인들(예컨대, 비트 라인들) 및 기판들(및 따라서 소스 및 드레인 사이의 채널들)에 인가될 수 있으며, 그 결과 채널들로부터 대상 메모리 셀들의 플로팅 게이트들로 전하가 전달된다(예컨대, 직접 주입 또는 파울러 노다임 터널링(Fowler-Nordheim(FN) tunneling) 등).
대조적으로, 통과 전압(Vpass)은 프로그래밍 대상이 아닌 메모리 셀들을 가진 하나 이상의 워드 라인들에 인가될 수 있거나, 또는 금지 전압(예컨대, Vcc)은 프로그래밍 대상이 아닌 메모리 셀을 갖는 데이터 라인들(예컨대, 비트 라인들)에 인가될 수 있으며, 이는, 예를 들어, 전하가 채널들로부터 그러한 대상이 아닌 메모리 셀들의 플로팅 게이트들로 전달되는 것을 방지할 수 있다. 통과 전압은, 예를 들어, 프로그래밍 대상 워드 라인에 인가된 통과 전압들의 근접성에 따라 가변적일 수 있다. 금지 전압에는 접지 전위(예컨대, Vss)에 상대적인 외부 소스 또는 전원(예컨대, 배터리, AC-DC 변환기 등)의 전압과 같은 공급 전압(Vcc)이 포함될 수 있다.
일 예로, WL40과 같은 특정 워드 라인에 프로그래밍 전압(예컨대, 15V 이상)이 인가되는 경우, 10V의 통과 전압이 WL30, WL50 등과 같은 하나 이상의 다른 워드 라인에 인가되어 대상이 아닌 메모리 셀들의 프로그래밍을 방지하거나 프로그래밍을 위해 대상이 아닌 메모리 셀들에 저장된 값을 유지할 수 있다. 인가된 프로그램 전압과 대상이 아닌 메모리 셀들 사이의 거리가 멀어짐에 따라, 대상이 아닌 메모리 셀들의 프로그래밍을 억제하는 데 필요한 통과 전압이 감소될 수 있다. 예를 들어, 15V의 프로그래밍 전압이 WL40에 인가되는 경우, 10V의 통과 전압이 WL30 및 WL50에 인가될 수 있고, 8V의 통과 전압이 WL20 및 WL60에 인가될 수 있으며, 7V의 통과 전압이 WL10 및 WL70 등에 인가될 수 있다. 다른 예들에서, 통과 전압들, 또는 워드 라인들의 개수 등은 더 높거나 더 낮거나, 더 많거나 더 적을 수 있다.
감지 증폭기들은 하나 이상의 데이터 라인(예컨대, 제1, 제2 또는 제3비트 라인들(BL0~BL2)(420~422))에 연결될 수 있으며, 특정 데이터 라인의 전압 또는 전류를 감지함으로써 각 데이터 라인에서 각 메모리 셀의 상태를 감지할 수 있다.
하나 이상의 프로그래밍 펄스(예컨대, Vpgm)의 애플리케이션들 사이에서, 선택된 메모리 셀이 의도된 프로그래밍 상태에 도달했는지를 결정하기 위해 검증 동작이 수행될 수 있다. 선택한 메모리 셀이 의도된 프로그래밍 상태에 도달하면, 추가 프로그래밍이 금지될 수 있다. 선택된 메모리 셀이 의도된 프로그래밍 상태에 도달되지 않는 경우, 추가 프로그래밍 펄스가 인가될 수 있다. 선택된 메모리 셀이 특정 수의 프로그래밍 펄스(예컨대, 최대 수) 이후에 의도된 프로그래밍 상태에 도달하지 않는 경우, 선택된 메모리 셀, 또는 그러한 선택된 메모리 셀과 연관된 스트링, 블록 또는 페이지가 결함으로 마킹될 수 있다.
메모리 셀 또는 메모리 셀들의 그룹을 소거하기 위해(예컨대, 소거는 일반적으로 블록들이나 서브블록들에서 수행됨), 소거 전압(Vers)(예컨대, 일반적으로 Vpgm)은 (예컨대, 하나 이상의 비트 라인, 선택 게이트들 등을 사용하여) 소거 대상 메모리 셀들의 기판들(및 그에 따른 채널들, 소스들과 드레인들 사이)에 인가될 수 있으며, 대상 메모리 셀의 워드 라인들은 접지 전위(예컨대, Vss)와 같은 전위로 유지되는 동안, 결과적으로 대상 메모리 셀들의 플로팅 게이트들에서 채널들로 전하를 전송한다(예컨대, 직접 주입 또는 파울러 노다임 터널링(Fowler-Nordheim(FN) tunneling) 등).
도 5는 복수의 메모리 셀(504)을 갖는 메모리 어레이(502), 및 메모리 어레이(502)와의 통신을 제공하거나 메모리 어레이에서 하나 이상의 메모리 동작을 수행하기 위한 하나 이상의 회로 또는 구성요소를 포함하는 메모리 디바이스(500)의 예시적인 블록도를 도시한다. 단일 메모리 어레이(502)로 도시되었지만, 다른 예들에서는, 하나 이상의 추가 메모리 어레이, 다이 또는 LUN이 여기에 포함될 수 있다. 특정예들에서, 다수의 다이나 LUN을 갖는 저장 시스템에서, 메모리 디바이스(500)는 각 다이나 LUN에 대한 회로들 및 구성요소들의 블록도를 나타낼 수 있다. 메모리 디바이스(500)는 로우 디코더(512), 컬럼 디코더(514), 감지 증폭기들(520), 페이지 버퍼(522), 선택기(524), 입/출력(I/O) 회로(526) 및 메모리 제어 유닛(530)을 포함할 수 있다.
메모리 어레이(502)의 메모리 셀들(504)은 제1 및 제2 블록(502A, 502B)과 같은 블록들로 배열될 수 있다. 각 블록에는 서브블록들이 포함될 수 있다. 예를 들어, 제1 블록(502A)은 제1 및 제2 서브블록(502A0, 502An)을 포함할 수 있고, 제2 블록(502B)은 제1 및 제2 서브블록(502B0, 502Bn)을 포함할 수 있다. 각 서브블록은 다수의 물리적 페이지를 포함할 수 있으며, 각 페이지는 다수의 메모리 셀(504)을 포함한다. 본원에서는 2개의 블록을 갖고, 각각의 블록은 2개의 서브블록을 갖고, 각각의 서브블록은 다수의 메모리 셀(504)을 갖는 것으로 도시되어 있지만, 다른 예들에서, 메모리 어레이(502)는 더 많거나 적은 블록, 서브블록, 메모리 셀 등을 포함할 수 있다. 다른 예들에서, 메모리 셀(504)은 다수의 로우, 컬럼, 페이지, 서브블록, 블록 등으로 배열될 수 있고, 예를 들어, 액세스 라인들(506), 제1 데이터 라인들(510), 또는 하나 이상의 선택 게이트, 소스 라인 등을 사용하여 액세스될 수 있다.
메모리 제어 유닛(530)은, 예를 들어, 원하는 동작(예컨대, 기록, 판독, 소거 등), 또는 하나 이상의 어드레스 라인(516)에서 수신된 어드레스 신호들(A0~AX)을 나타내는 하나 이상의 클록 신호 또는 제어 신호를 포함하는 제어 라인(532) 상에서 수신된 하나 이상의 신호 또는 명령어에 따라 메모리 디바이스(500)의 메모리 동작을 제어할 수 있다. 메모리 디바이스(500) 외부의 하나 이상의 디바이스는 제어 라인들(532) 상의 제어 신호들의 값들 또는 어드레스 라인(516) 상의 어드레스 신호들을 제어할 수 있다. 메모리 디바이스(500) 외부의 디바이스들의 예들은 호스트, 메모리 제어기, 프로세서, 또는 도 5에 도시되지 않은 하나 이상의 회로나 구성요소를 포함할 수 있지만, 이것으로 한정되는 것은 아니다.
메모리 디바이스(500)는 액세스 라인들(506) 및 제1 데이터 라인들(510)을 사용하여 하나 이상의 메모리 셀(504)로 데이터를 전송(예컨대, 기록 또는 소거)하거나 메모리 셀로부터 데이터를 전송(예컨대, 판독)할 수 있다. 로우 디코더(512) 및 컬럼 디코더(514)는 어드레스 라인(516)으로부터의 어드레스 신호들(A0~AX)을 수신 및 디코딩할 수 있고, 메모리 셀들(504) 중 어느 것이 액세스될 것인지를 결정할 수 있으며, 전술한 바와 같이, 액세스 라인들(506)(예컨대, 복수의 워드 라인(WL0~WLm) 중 하나 이상) 또는 제1 데이터 라인들(510)(예컨대, 복수의 비트 라인(BL0~BLn) 중 하나 이상)에 신호를 제공할 수 있다.
메모리 디바이스(500)는 제1 데이터 라인들(510)을 사용하여 메모리 셀들(504)에 대한 데이터 값을 결정하거나(예컨대, 판독), 메모리 셀들에 기록될 데이터 값을 결정하도록 구성된 감지 증폭기들(520)과 같은 감지 회로망을 포함할 수 있다. 예를 들어, 메모리 셀들(504)의 선택된 스트링에서, 감지 증폭기들(520) 중 하나 이상은, 메모리 어레이(502)에서, 선택된 스트링을 통해 데이터 라인(510)으로 흐르는 판독 전류에 응답하여 선택된 메모리 셀(504) 내의 로직 레벨을 판독할 수 있다.
메모리 디바이스(500) 외부의 하나 이상의 디바이스는 I/O 라인들(DQ0~DQN)(508), 어드레스 라인들(516)(A0~AX) 또는 제어 라인(532)을 사용하여 메모리 디바이스(500)와 통신할 수 있다. 입/출력(I/O) 회로(526)는, 예를 들어, 제어 라인들(532) 및 어드레스 라인들(516)에 따라, I/O 라인들(508)을 사용하여 페이지 버퍼(522)나 메모리 어레이(502)의 내부 또는 외부와 같은 메모리 디바이스(500)의 내부 또는 외부로 데이터 값들을 전송할 수 있다. 페이지 버퍼(522)는, 데이터가 메모리 어레이(502)의 관련 부분들에 프로그래밍되기 전에, 메모리 디바이스(500) 외부의 하나 이상의 디바이스로부터 수신된 데이터를 저장할 수 있거나, 데이터가 메모리 디바이스(500) 외부의 하나 이상의 디바이스로 전송되기 전에, 메모리 어레이(502)로부터 판독된 데이터를 저장할 수 있다.
컬럼 디코더(514)는 어드레스 신호들(A0~AX)을 수신하고 하나 이상의 컬럼 선택 신호(CSEL1~CSELn)로 디코딩할 수 있다. 선택기(524)(예컨대, 선택 회로)는 컬럼 선택 신호들(CSEL1~CSELn)을 수신하고, 메모리 셀들(504)로부터 판독되거나 메모리 셀(504)에 프로그래밍될 데이터의 값을 나타내는 페이지 버퍼(522)에서 데이터를 선택할 수 있다. 선택된 데이터는 제2 데이터 라인들(518)을 사용하여 페이지 버퍼(522)와 I/O 회로(526) 사이에서 전송될 수 있다.
메모리 제어 유닛(530)은 외부 소스나 전원(예컨대, 내부 또는 외부 배터리, AC-DC 컨버터 등)으로부터 공급 전압(Vcc)(534) 및 네거티브 전원(Vss)(536)(예컨대, 접지 전위)과 같은 포지티브 및 네거티브 공급 신호들을 수신할 수 있다. 특정예들에서, 메모리 제어 유닛(530)은 포지티브 또는 네거티브 공급 신호들을 내부적으로 제공하는 레귤레이터(528)를 포함할 수 있다.
도 6은 본원에서 설명된 임의의 하나 이상의 기술(예컨대, 방법론들(methodologies))이 수행될 수 있는 예시적인 머신(예컨대, 호스트 시스템)(600)의 블록도를 도시한다. 대안적인 실시예들에서, 머신(600)은 독립형 디바이스로서 작동하거나 다른 머신들에 연결될 수 있다(예컨대, 네트워킹됨). 네트워킹된 배치에서, 머신(600)은 서버 머신의 용량, 클라이언트 머신의 용량, 또는 서버-클라이언트 네트워크 환경에서 양쪽 모두의 용량으로 동작할 수 있다. 일 예에서, 머신(600)은 피어-투-피어(P2P: peer-to-peer)(또는 다른 분산형) 네트워크 환경에서 피어 머신(peer machine)으로서 작동할 수 있다. 머신은 PC(personal computer), 태블릿 PC, 셋톱 박스(STB: set-top box), PDA(Personal Digital Assistant), 이동 전화, 웹 어플라이언스, IoT 디바이스, 자동차 시스템, 또는 머신이 수행할 작업을 특정하는 명령어들을 (순차적으로 또는 다른 방식으로) 실행할 수 있는 임의의 머신일 수 있다. 또한, 단일 머신만이 도시되어 있지만, "머신"이라는 용어는, 클라우드 컴퓨팅, 서비스형 소프트웨어(SaaS: Software as a Service), 다른 컴퓨터 클러스터 구성들과 같이, 본원에 설명된 방법론들 중 임의의 하나 이상을 수행하기 위해 명령어들의 세트(또는 복수의 세트)를 개별적으로 또는 공동으로 실행하는 임의의 머신들의 콜렉션을 포함하는 것으로 간주된다.
본원에 설명된 바와 같은 예들은 로직, 구성요소들, 디바이스들, 패키지들 또는 메커니즘들을 포함하거나 이들에 의해 작동될 수 있다. 회로망은 하드웨어(예컨대, 단순 회로들, 게이트들, 로직 등)를 포함하는 유형의 엔티티들에서 구현된 회로의 콜렉션(예컨대, 세트)이다. 회로망 멤버십은 시간이 지남에 따라 유연해지고 하드웨어의 근본적인 변동성이 있을 수 있다. 회로들에는, 작동 시, 특정 작업들을 단독으로 또는 조합하여 수행할 수 있는 멤버들이 포함된다. 일 예에서, 회로망의 하드웨어는 특정 동작(예컨대, 하드와이어드(hardwired))을 수행하도록 불변적으로 설계될 수 있다. 일 예에서, 회로망의 하드웨어는 특정 동작의 명령어들을 인코딩하기 위해 물리적으로 수정된 컴퓨터 판독 가능 매체(예컨대, 불변의 질량 입자들의 자기적, 전기적, 이동 가능한 배치 등)를 포함하는 가변적으로 연결된 물리적 구성요소들(예컨대, 실행 유닛들, 트랜지스터들, 단순 회로들 등)을 포함할 수 있다. 물리적 구성요소들을 연결할 때, 예를 들어, 절연체로부터 도체로 또는 그 반대로 하드웨어 구성 요소의 기본적인 전기적 특성이 변경된다. 명령어들은 참여 하드웨어(예컨대, 실행 유닛들 또는 로딩 메커니즘)가, 작동 중일 때, 특정 작업들의 일부를 수행하기 위해 가변 연결들을 통해 하드웨어에 회로망의 멤버들을 생성할 수 있도록 한다. 따라서, 컴퓨터 판독 가능 매체는, 디바이스가 작동할 때, 회로망의 다른 구성요소들에 통신 가능하게 연결된다. 일 예에서, 물리적 구성요소들 중 임의의 것은 둘 이상의 회로망의 둘 이상의 멤버에서 사용될 수 있다. 예를 들어, 작동 중에, 실행 유닛들은 한 시점에서 제1 회로망의 제1 회로에서 사용될 수 있고, 제1 회로망의 제2 회로에 의해 재사용되거나 다른 시간에 제2 회로망의 제3 회로에 의해 재사용될 수 있다.
머신(예컨대, 컴퓨터 시스템, 호스트 시스템 등)(600)은 처리 디바이스(602)(예컨대, 하드웨어 프로세서, 중앙 처리 디바이스(CPU), 그래픽 처리 디바이스(GPU), 하드웨어 프로세서 코어, 또는 이들의 임의의 조합 등), 주메모리(604)(예컨대, 롬(ROM: read-only memory), 동기식 디램(SDRAM: synchronous DRAM) 또는 램버스 디램(RDRAM: Rambus DRAM) 등과 같은 동적 램(DRAM: dynamic random-access memory) 등), 정적 메모리(606)(예컨대, 정적 램(SRAM) 등) 및 저장 시스템(618)을 포함할 수 있고, 이들 중 일부 또는 전부는 통신 인터페이스(예컨대, 버스)(630)를 통해 서로 통신할 수 있다.
처리 디바이스(602)는 마이크로프로세서, 중앙 처리 유닛 등과 같은 하나 이상의 범용 처리 디바이스를 나타낼 수 있다. 보다 구체적으로, 처리 디바이스는 복잡한 명령어 세트 컴퓨팅(CISC: complex instruction set computing) 마이크로프로세서, 축소 명령어 세트 컴퓨팅(RISC: reduced instruction set computing) 마이크로프로세서, 매우 긴 명령어(VLIW: very long instruction word) 마이크로프로세서 또는 다른 명령어 세트들을 구현하는 프로세서, 또는 명령어 세트들의 조합을 구현하는 프로세서들일 수 있다. 처리 디바이스(602)는 또한 주문형 집적 회로(ASIC: application specific integrated circuit), 필드 프로그래밍 가능 게이트 어레이(FPGA: field programmable gate array), 디지털 신호 프로세서(DSP: digital signal processor), 네트워크 프로세서 등과 같은 하나 이상의 특수 목적 처리 디바이스일 수 있다. 처리 디바이스(602)는 본원에 설명된 동작들 및 단계들을 수행하기 위한 명령어들(626)을 실행하도록 구성될 수 있다. 컴퓨터 시스템(600)은 네트워크(620)를 통해 통신하기 위한 네트워크 인터페이스 디바이스(608)를 더 포함할 수 있다.
저장 시스템(618)은 하나 이상의 명령어 세트(626) 또는 본원에 설명된 방법론들 또는 기능들 중 임의의 하나 이상을 구현하는 소프트웨어가 저장된 머신 판독 가능 저장 매체(컴퓨터 판독 가능 매체라고도 함)를 포함할 수 있다. 명령어들(626)은 또한 머신 판독 가능 저장 매체를 구성하는 컴퓨터 시스템(600), 주메모리(604) 및 처리 디바이스(602)에 의한 실행 동안 주메모리(604) 내에 또는 처리 디바이스(602) 내에 완전히 또는 적어도 부분적으로 상주할 수 있다.
"머신 판독 가능 저장 매체"라는 용어는 하나 이상의 명령어 세트를 저장하는 단일 매체나 다중 매체, 또는 머신에 의한 실행을 위한 명령어 세트를 저장하거나 인코딩할 수 있고, 머신으로 하여금, 본 개시의 방법론 중 임의의 하나 이상을 수행하게 하는 임의의 매체를 포함하는 것으로 간주되어야 한다. 따라서 "머신 판독 가능 저장 매체"라는 용어는 고체 상태 메모리, 광학 매체 및 자기 매체를 포함하지만, 이들로 한정되지 않는 것으로 간주된다. 일 예에서, 대량 머신 판독 가능 매체는 불변 질량(예컨대, 잔량)을 갖는 복수의 파티클(particle)을 갖는 머신 판독 가능 매체를 포함한다. 따라서, 대량의 머신 판독 가능 매체는 일시적인 전파 신호(transitory propagating signal)들이 아니다. 대량 머신 판독 가능 매체의 특정예는 반도체 메모리 디바이스들(예컨대, EPROM(Electrically Programmable Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory)) 및 플래시 메모리 디바이스들과 같은 비휘발성 메모리; 내부 하드 디스크들 및 이동식 디스크들과 같은 자기 디스크들; 광 자기 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들을 포함할 수 있다.
머신(600)은 디스플레이 유닛, 영숫자 입력 디바이스(예컨대, 키보드) 및 사용자 인터페이스(UI: user interface) 내비게이션 디바이스(예컨대, 마우스)를 더 포함할 수 있다. 일 예에서, 디스플레이 유닛, 입력 디바이스 또는 UI 내비게이션 디바이스 중 하나 이상은 터치 스크린 디스플레이일 수 있다. 머신은 신호 생성 디바이스(예컨대, 스피커), 또는 GPS(Global Positioning System) 센서, 나침반, 가속도계 또는 하나 이상의 다른 센서와 같은 하나 이상의 센서일 수 있다. 머신(600)은 직렬(예컨대, 범용 직렬 버스(USB: universal serial bus), 병렬 또는 기타 유선 또는 무선(예컨대, 적외선(IR), 근거리 통신(NFC: near field communication) 등) 연결과 같은 출력 제어기를 포함하여, 하나 이상의 주변 디바이스(예컨대, 프린터, 카드 리더기 등)와 통신하거나 제어할 수 있다.
저장 시스템(618)에 저장된 명령어들(626)(예컨대, 소프트웨어, 프로그램들, 운영 체제(OS) 등) 또는 다른 데이터는 처리 디바이스(602)를 통해 사용하기 위해 주메모리(604)에 의해 액세스될 수 있다. 주메모리(604)(예컨대, DRAM)는 일반적으로 빠르지만, 휘발성이므로 "오프" 상태에 있는 동안을 포함하여 장기 저장에 적합한 저장 시스템(618)(예컨대, SSD)과는 다른 유형의 스토리지이다. 사용자 또는 머신(600)에 의해 사용중인 명령어들(626) 또는 데이터는 일반적으로 처리 디바이스(602)를 통해 사용하기 위해 주메모리(604)에 로딩된다. 주메모리(604)가 가득 채워지면, 저장 시스템(618)으로부터의 가상 공간은 주메모리(604)를 보충하는 데 할당될 수 있지만; 저장 시스템(618) 디바이스가 일반적으로 주메모리(604)보다 느리고, 기록 속도가 일반적으로 판독 속도보다 적어도 2배 느리기 때문에, 가상 메모리의 사용은 저장 시스템 레이턴시로 인해 (예컨대, DRAM과 같은 주메모리(604)와는 대조적으로) 사용자 경험을 크게 감소시킬 수 있다. 또한, 가상 메모리용 저장 시스템(618)의 사용은 저장 시스템(618)의 사용 가능한 수명을 크게 감소시킬 수 있다.
명령어들(624)은 또한 다수의 전송 프로토콜(예컨대, 프레임 릴레이, 인터넷 프로토콜(IP: internet protocol), 전송 제어 프로토콜(TCP: transmission control protocol), 사용자 데이터그램 프로토콜(UDP: user datagram protocol), 하이퍼텍스트 전송 프로토콜(HTTP: hypertext transfer protocol) 등) 중 어느 하나를 이용하는 네트워크 인터페이스 디바이스(608)를 통해 전송 매체를 사용하여 네트워크(620)를 거쳐 전송 또는 수신될 수 있다. 예시적인 통신 네트워크들은, 특히, 근거리 통신망(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 네트워크들을 포함할 수 있다. 일 예에서, 네트워크 인터페이스 디바이스(608)는 네트워크(620)에 연결하기 위한 하나 이상의 물리적 잭(예컨대, 이더넷, 동축 또는 전화 잭들) 또는 하나 이상의 안테나를 포함할 수 있다. 일 예에서, 네트워크 인터페이스 디바이스(608)는 단일 입력 다중 출력(SIMO: single-input multiple-output), 다중 입력 다중 출력(MIMO: multiple-input multiple-output) 또는 다중 입력 단일 출력(MISO: multiple-input single-output) 기술 중 적어도 하나를 사용하여 무선 통신하기 위한 복수의 안테나를 포함할 수 있다. "전송 매체"라는 용어는 머신(600)에 의해 실행하기 위한 명령어를 저장, 인코딩 또는 전달할 수 있는 임의의 무형 매체(intangible medium)를 포함하는 것으로 간주되며, 이러한 소프트웨어의 통신을 용이하게 하는 디지털 또는 아날로그 통신 신호 또는 기타 무형 매체를 포함한다.
이상의 상세한 설명은 상세한 설명의 일부를 형성하는 첨부 도면들에 대한 참조를 포함한다. 도면들은 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시한다. 이러한 실시예들은 본원에서 "예들"이라고도 지칭된다. 이러한 예들은 도시되거나 설명된 소자 외의 소자들이 포함될 수 있다. 그러나, 본 발명자는 또한 도시되거나 설명된 소자들만 제공되는 예들을 고려한다. 더욱이, 본 발명자는 또한 특정예(또는 이것의 하나 이상의 양태)에 대해 또는 본원에 도시되거나 설명된 다른 예(또는 이것의 하나 이상의 양태)에 대해 도시되거나 설명된 이들 소자들(또는 이것의 하나 이상의 양태)의 임의의 조합 또는 순열을 사용하는 예들을 고려한다.
본 명세서에서 언급된 모든 간행물, 특허 및 특허 문서는 개별적으로 참조에 의해 통합된 바와 같이, 그 전체 내용이 본원에 참조로 통합된다. 이 문서와 참조에 의해 통합된 문서들 사이에 일관되지 않은 사용이 발생하는 경우, 통합된 참조(들)의 사용은 이 문서의 사용에 대해 보완하는 것으로 간주되어야 하며, 불일치를 조정할 수 없는 경우, 이 문서에서의 사용이 통제된다.
본 명세서에서, "a" 또는 "an"의 단수 표현은, 특허 문서들에서 일반적으로 사용되는 바와 같이, "적어도 하나" 또는 "하나 이상"의 임의의 다른 인스턴스나 사용과는 별개로 또는 둘 하나 이상을 포함하는 데 사용된다. 본 명세서에서, "또는"이라는 용어는 비배타적인 의미로 사용되어, 달리 명시되지 않는 한, "A 또는 B"에는 "A이지만 B는 아님", "B이지만 A는 아님" 및 "A 및 B"가 포함된다. 첨부된 특허 청구 범위에서, 용어 "포함하는(including)" 및 "하는(in which)"은 각각의 용어 "구성하는(comprising)" 및 "여기서(wherein)"의 평이한 영어 등가물로 사용된다. 또한, 이하의 특허 청구 범위에서, "포함하는(including)" 및 "구성하는(comprising)"이라는 용어는 개방형, 즉, 특허 청구 범위에서 이러한 용어 뒤에 나열된 요소 외의 요소들이 포함되는 시스템, 디바이스, 물품 또는 프로세스는 여전히 해당 특허 청구 범위의 범주에 속하는 것으로 간주된다. 또한, 이하의 특허 청구 범위에서, 용어 "제1", "제2" 및 "제3" 등은 단지 라벨들로 사용되며, 그 대상들에 수치적 요건을 부여하려는 것은 아니다.
다양한 예들에서, 본원에 설명된 구성요소들, 제어기들, 프로세서들, 유닛들, 엔진들 또는 테이블들은 무엇보다도 물리적 디바이스에 저장된 물리적 회로망이나 펌웨어를 포함할 수 있다. 본원에서 사용된 바와 같이, "프로세서"는 마이크로프로세서, 마이크로컨트롤러, 그래픽 프로세서, 디지털 신호 프로세서(DSP: digital signal processor), 또는 프로세서들이나 멀티 코어 디바이스들의 그룹을 포함하는 임의의 다른 유형의 프로세서나 처리 회로와 같은 임의 유형의 계산 회로를 의미하지만, 이들로 한정되는 것은 아니다.
본 명세서에서 사용되는 용어 "수평"은 임의의 시점에서 기판의 실제 방향에 관계없이 웨이퍼나 다이의 기저에 있는 것과 같은 기판의 기존 평면 또는 표면에 평행한 평면으로 정의된다. 용어 "수직"은 위에서 정의한 바와 같은 수평에 수직인 방향을 의미한다. "on", "over" 및 "under"와 같은 전치사는, 기판의 배향에 관계없이, 기판의 상부나 노출 표면상의 통상적인 평면이나 표면에 대해 정의되며; 여기서, "on"은 하나의 구조가 그것의 "위(on)"(반대에 대한 명시적인 표시가 없는 경우)에 놓여있는 다른 구조에 대한 직접적인 접촉을 제안하기 위한 것이고, 용어 "over" 및 "under"는 구조들(또는 레이어들, 피처들 등)의 상대적 배치를 식별하기 위한 것으로, 그 자체로 특별히 식별되지 않는 한, 식별된 구조들 간의 직접적인 접촉을 명시적으로 포함하지만, 이것으로 한정되는 것은 아니다. 마찬가지로, 용어 "over" 및 "under"는, 이러한 구조체가 수평 방향이 아닌 참조된 구조체에 대해 수직으로 확장되더라도, 특정 시점에서 설명 중인 구조체의 최외측 부분인 경우, 구조체가 참조된 구조체의 "위에(over)" 있을 수 있으므로, 수평 방향으로 국한되지 않는다.
용어 "웨이퍼" 및 "기판"은 일반적으로 집적 회로들이 형성되는 임의의 구조체 및 집적 회로 제조의 다양한 단계 동안 이러한 구조체를 지칭하기 위해 본원에 사용된다. 따라서, 다음의 상세한 설명은 제한적인 의미로 받아들여지지 않아야 하며, 다양한 실시예들의 범주는 첨부된 특허 청구 범위에 의해서만 정의되며, 그러한 특허 청구 범위의 자격이 부여되는 등가물의 전체 범위와 함께 정의된다.
본 개시에 따라 본원에 설명된 다양한 실시예는 메모리 셀들의 수직 구조체(예컨대, 메모리 셀의 NAND 스트링들)를 이용하는 메모리를 포함한다. 본원에서 사용되는 바와 같이, 방향성 형용사들은 메모리 셀이 형성되는 기판의 표면에 대응하여 취해질 것이다(즉, 수직 구조체는 기판 표면에서 연장되는 것으로 간주되고, 수직 구조체의 하단은 기판 표면에 가장 가까운 단부로 취해질 것이며, 수직 구조체의 상단은 기판 표면에서 가장 먼 단부로 취해질 것임).
본원에서 사용되는 바와 같이, 수평, 수직, 법선, 평행, 수직 등과 같은 방향성 형용사들은 상대적인 방향을 나타낼 수 있으며, 달리 언급되지 않는 한, 특정한 기하학적 특성들을 엄격히 준수하도록 의도되는 것은 아니다. 예를 들어, 본원에서 사용되는 수직 구조체는 기판 표면에 정확하게 수직일 필요는 없지만, 대신 대체적으로 기판 표면에 수직일 수 있으며, 기판 표면과 예각(예컨대, 60도 내지 120도 등)을 형성할 수도 있다.
본원에 설명된 일부 실시예에서, 상이한 도핑 구성들은 선택 게이트 소스(SGS: select gate source), 제어 게이트(CG: control gate) 및 선택 게이트 드레인(SGD: select gate drain)에 적용될 수 있으며, 이들 각각은, 본 예에서, 폴리실리콘으로 형성되거나 적어도 폴리실리콘을 포함할 수 있고, 그 결과, 이들 층(예컨대, 폴리실리콘 등)이, 에칭 용액에 노출될 때, 상이한 에칭 레이트를 가질 수 있다. 예를 들어, 3D 반도체 디바이스에서 모놀리식 필러(monolithic pillar)를 형성하는 과정에서, SGS와 CG는 리세스를 형성할 수 있지만, SGD는 덜 리세싱되거나 심지어 리세싱되지 않을 수 있다. 따라서, 이러한 도핑 구성들은 에칭 용액(예컨대, 테트라메틸암모늄 하이드록사이드(TMCH: tetramethylammonium hydroxide))를 사용하여 3D 반도체 디바이스에서 별개의 층(예컨대, SGS, CG 및 SGD)에 선택적 에칭을 가능하게 할 수 있다.
본원에서 사용되는 메모리 셀을 동작시키는 것은 메모리 셀로부터의 판독, 기록 또는 소거를 포함한다. 의도된 상태에 메모리 셀을 배치하는 동작은 본원에서 "프로그래밍"으로 지칭되며, 메모리 셀에의 기록이나 메모리셀로부터의 소거(즉, 메모리 셀이 소거된 상태로 프로그래밍될 수 있음)의 양쪽 모두를 포함할 수 있다.
소자가 다른 소자의 "위"나 다른 소자에 "연결된" 또는 이와 "커플링된" 것으로 언급될 때, 다른 소자 상에 직접 연결되거나 결합될 수 있거나 개재된 소자가 존재할 수 있음을 이해할 것이다. 대조적으로, 소자가 다른 소자의 "위에 직접" 또는 다른 소자에 "직접 연결"되거나 "직접 커플링"되어 있다고 언급된 경우에는, 중간 소자들이나 층들이 존재하지 않는다. 두 소자들을 연결하는 선으로 도면에 도시하는 경우, 별도로 명시하지 않는 한, 두 소자는 커플링되거나 직접 커플링될 수 있다.
본원에 설명된 방법 예들은 적어도 부분적으로 머신 또는 컴퓨터로 구현될 수 있다. 일부 예들은, 위의 예들에서 설명된 바와 같이, 방법들을 수행하기 위해 전자 디바이스를 구성하도록 동작 가능한 명령어로 인코딩된 컴퓨터 판독 가능 매체 또는 머신 판독 가능 매체를 포함할 수 있다. 이러한 방법들의 구현은 마이크로코드, 어셈블리 언어 코드, 상위 레벨 언어 코드 등과 같은 코드를 포함할 수 있다. 이러한 코드는 다양한 방법들을 수행하기 위한 컴퓨터 판독 가능 명령어를 포함할 수 있다. 코드는 컴퓨터 프로그램 제품들의 일부를 형성할 수 있다. 또한, 코드는 실행 동안 또는 다른 시간에서와 같이 하나 이상의 휘발성 또는 비휘발성 유형의 컴퓨터 판독 가능 매체에 명백하게 저장될 수 있다. 이러한 유형의 컴퓨터 판독 가능 매체의 예들에는 하드 디스크들, 이동식 자기 디스크들, 이동식 광학 디스크들(예컨대, 컴팩트 디스크들 및 디지털 비디오 디스크들), 자기 카세트들, 메모리 카드들이나 스틱들, 램들(RAMs), 롬들(ROMs) 등을 포함할 수 있지만, 이들로 한정되는 것은 아니다.
예 1은 메모리 디바이스로서, 메모리 어레이; 및 메모리 제어기를 포함하고, 상기 메모리 제어기는, 펌웨어의 제1 인스턴스가 성공적으로 로딩되지 않았거나, 로딩되었지만, 유효하지 않고 작동할 수 없음을 나타내는 하나 이상의 로딩 입력을 수신하는 동작; 하나 이상의 로딩 입력을 수신한 후, 펌웨어 로딩에 실패한 시도 횟수를 나타내는 하나 이상의 재로딩 상태 입력을 수신하는 동작; 및 실패한 시도 횟수가 프로그래밍 가능 임계값에 도달했음을 하나 이상의 재로딩 상태 입력이 나타내는 경우, 메모리 디바이스를 절전 상태로 진입시키는 동작을 수행하도록 프로그래밍된다.
예 2에서, 예 1의 주제는 메모리 디바이스를 절전 상태로 진입시키는 동작이 메모리 디바이스의 클록을 정지시키는 동작을 포함하도록 선택적으로 구성된다.
예 3에서, 예 1의 주제는 메모리 디바이스를 절전 상태로 진입시키는 동작이 메모리 디바이스의 클록을 스로틀링(throttling)하는 동작을 포함하도록 선택적으로 구성된다.
예 4에서, 예 1의 주제는 메모리 디바이스를 절전 상태로 진입시키는 동작이 메모리 디바이스를 보호 상태로 진입시키는 동작을 포함하도록 선택적으로 구성된다.
예 5에서, 예 1의 주제는 메모리 디바이스를 절전 상태로 진입시키는 동작이 메모리 디바이스의 선택된 전력 도메인들에 대한 전력을 차단하는 동작을 포함하도록 선택적으로 구성된다.
예 6에서, 예 1의 주제는 메모리 디바이스를 절전 상태로 진입시키는 동작이 메모리 디바이스에 대한 전압 제어를 사용하는 동작을 포함하도록 선택적으로 구성된다.
예 7에서, 예 1 내지 예 6 중 어느 하나의 주제는 펌웨어 활동 트랙커(firmware activity tracker)가 판독 전용 메모리(ROM: read-only memory)의 일부를 포함하도록 선택적으로 구성된다.
예 8에서, 예 1 내지 예 7 중 어느 하나의 주제는 메모리 디바이스가 펌웨어를 로딩하는 데 실패한 시도 횟수를 추적하도록 구성된 카운터(counter)를 포함하도록 선택적으로 구성된다.
예 9에서, 예 1 내지 예 8 중 어느 하나의 주제는 하나 이상의 재로딩 상태 입력이 펌웨어를 로딩하는 데 실패한 시도들에 대한 경과 시간을 나타내며, 여기서, 경과 시간이 타임아웃 임계값에 도달했음을 하나 이상의 재로딩 상태 입력이 나타내면, 메모리 디바이스가 절전 상태로 진입되도록 선택적으로 구성된다.
예 10에서, 예 9의 주제는 메모리 디바이스가 펌웨어를 로딩하는 데 실패한 시도들에 대한 경과 시간을 추적하도록 구성된 타이머를 포함하도록 선택적으로 구성된다.
예 11은 메모리 디바이스로서, 메모리 어레이; 및 메모리 제어기를 포함하고, 상기 메모리 제어기는, 펌웨어의 제1 인스턴스가 성공적으로 로딩되지 않았거나, 로딩되었지만, 유효하지 않고 작동할 수 없음을 나타내는 하나 이상의 로딩 입력을 수신하는 동작; 하나 이상의 로딩 입력을 수신한 후, 펌웨어 로딩에 실패한 시도에 대한 경과 시간을 나타내는 하나 이상의 재로딩 상태 입력을 수신하는 동작; 및 경과 시간이 타임아웃 임계값에 도달했음을 하나 이상의 재로딩 상태 입력이 나타내는 경우, 메모리 디바이스를 절전 상태로 진입시키는 동작을 수행하도록 프로그래밍된다.
예 12에서, 예 11의 주제는 메모리 디바이스를 절전 상태로 진입시키는 동작이 메모리 디바이스의 클록을 정지시키는 동작을 포함하도록 선택적으로 구성된다.
예 13에서, 예 11의 주제는 메모리 디바이스를 절전 상태로 진입시키는 동작이 메모리 디바이스의 클록을 스로틀링(throttling)하는 동작을 포함하도록 선택적으로 구성된다.
예 14에서, 예 11의 주제는 선택적으로 메모리 제어기가 부트스트랩 프로그램(bootstrap program)을 사용하여 프로그래밍되도록 하는 것이다.
예 15에서, 예 11의 주제는 메모리 디바이스가 펌웨어를 로딩하는 데 실패한 시도들에 대한 경과 시간을 추적하도록 구성된 타이머를 포함하도록 선택적으로 구성된다.
예 16은, 프로세서에 의해 실행될 때, 프로세서로 하여금, 펌웨어의 제1 인스턴스가 성공적으로 로딩되지 않았거나, 로딩되었지만, 유효하지 않고 작동할 수 없음을 나타내는 하나 이상의 로딩 입력을 수신하는 동작; 하나 이상의 로딩 입력을 수신한 후, 펌웨어 로딩에 실패한 시도 횟수들을 나타내는 하나 이상의 재로딩 상태 입력을 수신하는 동작; 및 실패한 시도 횟수가 프로그래밍 가능 임계값에 도달했음을 하나 이상의 재로딩 상태 입력이 나타내는 경우, 메모리 디바이스를 절전 상태로 진입시키는 동작을 수행하게 하는 명령어를 제공하는 디바이스 판독 가능 저장 매체이다.
예 17에서, 예 16의 주제는 펌웨어 활동 트랙커가 판독 전용 메모리(ROM: read-only memory)의 일부를 포함하도록 선택적으로 구성된다.
예 18에서, 예 16 또는 예 17의 주제는 펌웨어 활동 트랙커가 펌웨어를 로딩하는 데 실패한 시도 횟수를 추적하도록 구성된 카운터를 포함하도록 선택적으로 구성된다.
예 19에서, 예 16 내지 예 18 중 어느 하나의 주제는 메모리 디바이스를 절전 상태로 진입시키는 동작이 메모리 디바이스의 선택된 전력 도메인들에 대한 전력을 차단하는 동작을 포함하도록 선택적으로 구성된다.
예 20에서, 예 19의 주제는 메모리 디바이스를 절전 상태로 진입시키는 동작이 메모리 디바이스에 대한 전압 제어를 사용하는 동작을 포함하도록 선택적으로 구성된다.
예 21은, 처리 회로망에 의해 실행될 때, 처리 회로망이 예 1 내지 예 20 중 어느 하나를 구현하는 동작들을 수행하게 하는 명령어들을 포함하는 적어도 하나의 머신 판독 가능 매체이다.
예 22는 예 1 내지 예 20 중 어느 하나를 구현하는 수단을 포함하는 장치이다.
예 23은 예 1 내지 예 20 중 어느 하나를 구현하는 시스템이다.
예 24는 예 1 내지 예 20 중 어느 하나를 구현하는 방법이다.
위의 상세한 설명은 예시를 위한 것일 뿐 한정하려는 것은 아니다. 예를 들어, 전술한 예들(또는 이의 하나 이상의 양태)은 서로 조합하여 사용될 수 있다. 위의 상세한 설명을 검토하면, 예를 들어, 당업자에 의해 다른 실시예들이 사용될 수 있다. 요약은 37 C.F.R. §1.72(b)를 준수하여, 독자가 기술적 개시의 성격을 신속하게 확인할 수 있도록 제공된다. 특허 청구 범위의 범주 또는 의미를 해석하거나 한정하는 데 사용되지 않는다는 이해와 함께 제출된다. 또한, 위의 상세한 설명에서, 본 개시를 간소화하기 위해 다양한 피처들이 함께 그룹화될 수 있다. 이것은 청구되지 않은 공개 피처가 모든 청구항에 필수적이라는 의도로 해석되어서는 안된다. 오히려, 본 발명의 주제는 특정한 개시 실시예의 모든 피처보다 작을 수 있다. 따라서, 다음의 특허 청구 범위는 상세한 설명에 통합되고, 각 특허 청구 범위는 별도의 실시예 자체로 존재하며, 이러한 실시예는 다양한 조합 또는 순열로 서로 결합될 수 있는 것으로 고려된다. 본 발명의 범주는 첨부된 특허 청구 범위를 참조하여, 그러한 특허 청구 범위가 부여되는 등가물의 전체 범주와 함께 결정되어야 한다.

Claims (20)

  1. 메모리 디바이스를 동작시키는 방법으로서,
    메모리 제어기에서, 펌웨어의 제1 인스턴스가 성공적으로 로딩되지 않았음을 나타내는 하나 이상의 로딩 입력을 판독 전용 메모리(ROM)로부터 수신하는 단계;
    상기 메모리 제어기에서, 상기 펌웨어를 로딩하기 위한 경과 시간을 나타내는 재로딩 상태 정보를 수신하는 단계;
    상기 메모리 제어기에 의해, 상기 경과 시간이 타임아웃 임계값을 충족하는지 결정하는 단계; 및
    상기 경과 시간이 상기 타임아웃 임계값을 충족했다고 결정하는 것에 응답하여, 상기 메모리 제어기에 의해, 상기 메모리 디바이스를 보호하기 위한 하나 이상의 작업을 수행하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 재로딩 상태 정보는 상기 펌웨어를 로딩하는 데 실패한 시도 횟수를 나타내고, 상기 방법은,
    상기 재로딩 상태 정보가 상기 실패한 시도 횟수가 프로그래밍 가능 임계값에 도달했음을 나타내는 것에 응답하여 상기 하나 이상의 작업을 수행하는 단계를 포함하는, 방법.
  3. 제1항에 있어서,
    상기 펌웨어를 로딩하는 데 실패한 시도들에 대한 경과 시간을 추적하기 위해 타이머를 사용하는 단계를 포함하는, 방법.
  4. 제1항에 있어서,
    상기 메모리 디바이스를 보호하기 위한 하나 이상의 작업을 수행하는 단계는, 상기 메모리 디바이스를 절전 상태로 진입시키는 단계를 포함하는, 방법.
  5. 제4항에 있어서,
    상기 메모리 디바이스를 절전 상태로 진입시키는 단계는, 상기 메모리 디바이스의 선택된 전력 도메인들에 대한 전력을 차단하는 단계를 포함하는, 방법.
  6. 제1항에 있어서,
    상기 메모리 디바이스를 보호하기 위한 하나 이상의 작업을 수행하는 단계는, 상기 메모리 디바이스에 대한 전압 제어를 사용하는 단계를 포함하는, 방법.
  7. 제1항에 있어서,
    상기 메모리 디바이스를 보호하기 위한 하나 이상의 작업을 수행하는 단계는, 상기 메모리 디바이스에 대한 액세스를 방지하는 단계를 포함하는, 방법.
  8. 메모리 디바이스로서,
    판독 전용 메모리(ROM); 및
    메모리 제어기를 포함하되,
    상기 메모리 제어기는,
    펌웨어의 제1 인스턴스가 성공적으로 로딩되지 않았음을 나타내는 하나 이상의 로딩 입력을 상기 ROM으로부터 수신하는 동작;
    상기 펌웨어를 로딩하기 위한 경과 시간을 나타내는 재로딩 상태 정보를 수신하는 동작;
    상기 경과 시간이 타임아웃 임계값을 충족하는지 결정하는 동작; 및
    상기 경과 시간이 상기 타임아웃 임계값을 충족했다고 결정하는 것에 응답하여, 상기 메모리 디바이스를 보호하기 위한 하나 이상의 작업을 수행하는 동작
    을 포함하는 동작들을 수행하도록 프로그래밍된, 메모리 디바이스.
  9. 제8항에 있어서,
    상기 펌웨어의 제1 인스턴스가 성공적으로 로딩되지 않았음을 나타내는 하나 이상의 로딩 입력을 상기 ROM으로부터 수신하는 동작은, 상기 로딩된 인스턴스가 작동 불가능하다는 표시를 수신하는 동작을 포함하는, 메모리 디바이스.
  10. 제8항에 있어서,
    상기 펌웨어의 제1 인스턴스가 성공적으로 로딩되지 않았음을 나타내는 하나 이상의 로딩 입력을 상기 ROM으로부터 수신하는 동작은, 상기 로딩된 인스턴스가 유효하지 않다는 표시를 수신하는 동작을 포함하는, 메모리 디바이스.
  11. 제8항에 있어서,
    상기 ROM은 비휘발성 매체로부터 상기 펌웨어를 로딩하는 것을 보조하도록 구성되는, 메모리 디바이스.
  12. 제8항에 있어서,
    상기 펌웨어를 로딩하는 데 실패한 시도들에 대한 경과 시간을 추적하도록 구성되는 타이머를 더 포함하는, 메모리 디바이스.
  13. 제8항에 있어서,
    상기 메모리 제어기는 상기 메모리 디바이스를 보호하기 위해 호스트 디바이스와 통신하도록 구성되는 인터페이스 회로를 포함하는, 메모리 디바이스.
  14. 비일시적 컴퓨터 판독 가능 매체로서,
    메모리 디바이스의 메모리 제어기에 의해 실행될 때, 상기 메모리 제어기로 하여금,
    펌웨어의 제1 인스턴스가 성공적으로 로딩되지 않았음을 나타내는 하나 이상의 로딩 입력을 수신하는 동작;
    상기 펌웨어를 로딩하기 위한 경과 시간을 나타내는 재로딩 상태 정보를 수신하는 동작;
    상기 경과 시간이 타임아웃 임계값을 충족하는지 결정하는 동작; 및
    상기 경과 시간이 상기 타임아웃 임계값을 충족했다고 결정하는 것에 응답하여, 상기 메모리 디바이스를 보호하기 위한 하나 이상의 작업을 수행하는 동작
    을 포함하는 동작들을 수행하도록 하는 명령어들을 포함하는, 비일시적 컴퓨터 판독 가능 매체.
  15. 제14항에 있어서,
    상기 메모리 디바이스를 보호하기 위한 하나 이상의 작업을 수행하는 동작은, 상기 메모리 디바이스를 절전 상태로 진입시키는 동작을 포함하는, 비일시적 컴퓨터 판독가능 매체.
  16. 제14항에 있어서,
    상기 메모리 디바이스를 보호하기 위한 하나 이상의 작업을 수행하는 동작은, 상기 메모리 디바이스의 클록을 정지시키는 동작을 포함하는, 비일시적 컴퓨터 판독가능 매체.
  17. 제14항에 있어서,
    상기 메모리 디바이스를 보호하기 위한 하나 이상의 작업을 수행하는 동작은, 상기 메모리 디바이스의 클록을 스로틀링(throttling)하는 동작을 포함하는, 비일시적 컴퓨터 판독가능 매체.
  18. 제14항에 있어서,
    상기 메모리 디바이스를 보호하기 위한 하나 이상의 작업을 수행하는 동작은, 상기 메모리 디바이스를 보호 상태로 진입시키는 동작을 포함하는, 비일시적 컴퓨터 판독가능 매체.
  19. 제14항에 있어서,
    상기 메모리 디바이스를 보호하기 위한 하나 이상의 작업을 수행하는 동작은, 상기 메모리 디바이스의 선택된 전력 도메인들에 대한 전력을 차단하는 동작을 포함하는, 비일시적 컴퓨터 판독가능 매체.
  20. 제14항에 있어서,
    상기 메모리 디바이스를 보호하기 위한 하나 이상의 작업을 수행하는 동작은, 상기 메모리 디바이스에 대한 전압 제어를 사용하는 동작을 포함하는, 비일시적 컴퓨터 판독가능 매체.
KR1020247015261A 2018-12-13 2019-11-01 펌웨어 상태에 기초한 자동 전력 차단 KR20240070704A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US16/219,292 2018-12-13
US16/219,292 US10795746B2 (en) 2018-12-13 2018-12-13 Automated power down based on state of firmware
PCT/US2019/059432 WO2020123059A1 (en) 2018-12-13 2019-11-01 Automated power down based on state of firmware
KR1020217020934A KR102665475B1 (ko) 2018-12-13 2019-11-01 펌웨어 상태에 기초한 자동 전력 차단

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020217020934A Division KR102665475B1 (ko) 2018-12-13 2019-11-01 펌웨어 상태에 기초한 자동 전력 차단

Publications (1)

Publication Number Publication Date
KR20240070704A true KR20240070704A (ko) 2024-05-21

Family

ID=71071657

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217020934A KR102665475B1 (ko) 2018-12-13 2019-11-01 펌웨어 상태에 기초한 자동 전력 차단
KR1020247015261A KR20240070704A (ko) 2018-12-13 2019-11-01 펌웨어 상태에 기초한 자동 전력 차단

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020217020934A KR102665475B1 (ko) 2018-12-13 2019-11-01 펌웨어 상태에 기초한 자동 전력 차단

Country Status (5)

Country Link
US (3) US10795746B2 (ko)
JP (2) JP7137708B2 (ko)
KR (2) KR102665475B1 (ko)
CN (1) CN113396374B (ko)
WO (1) WO2020123059A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10795746B2 (en) 2018-12-13 2020-10-06 Micron Technology, Inc. Automated power down based on state of firmware
CN114816024B (zh) * 2022-05-31 2023-07-14 苏州浪潮智能科技有限公司 对服务器主板负载端进行保护的方法、系统、设备及介质

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6347276B1 (en) 2000-09-13 2002-02-12 Detroit Diesel Corporation Method and system for reducing the time required to power down engine controller with faulty EEPROM
WO2002057904A1 (fr) 2001-01-19 2002-07-25 Fujitsu Limited Controleur dote d'un fonction de telechargement
JP2002288150A (ja) 2001-03-28 2002-10-04 Matsushita Electric Ind Co Ltd 半導体集積回路装置
JP3768967B2 (ja) 2003-03-24 2006-04-19 株式会社東芝 ディスク制御装置及びディスク装置用制御プログラムの更新方法
US20070234028A1 (en) * 2005-09-15 2007-10-04 Rothman Michael A Method and apparatus for quickly changing the power state of a data processing system
JP4868216B2 (ja) * 2006-01-19 2012-02-01 日本電気株式会社 ファームウェア更新回路およびファームウェア更新方法
JP2008090408A (ja) 2006-09-29 2008-04-17 Nec Electronics Corp マイクロコンピュータ、データ書込み装置およびその書込み方法
US20080168435A1 (en) * 2007-01-05 2008-07-10 David Tupman Baseband firmware updating
JP4882807B2 (ja) 2007-03-07 2012-02-22 セイコーエプソン株式会社 Sdram制御回路及び情報処理装置
JP2009110034A (ja) 2007-10-26 2009-05-21 Sharp Corp 電気機器
JP2012027964A (ja) 2010-07-20 2012-02-09 Panasonic Corp メモリ装置及びcpuの制御方法
CN103946765B (zh) 2011-11-22 2017-11-17 英特尔公司 协同处理器以及系统性能和功率管理
JP5821640B2 (ja) 2012-01-06 2015-11-24 株式会社リコー 情報処理装置
US9001584B2 (en) * 2013-02-28 2015-04-07 Micron Technology, Inc. Sub-block decoding in 3D memory
WO2014175864A1 (en) * 2013-04-23 2014-10-30 Hewlett-Packard Development Company, L.P. Event data structure to store event data
US9880908B2 (en) * 2013-04-23 2018-01-30 Hewlett-Packard Development Company, L.P. Recovering from compromised system boot code
US9594910B2 (en) * 2014-03-28 2017-03-14 Intel Corporation In-system provisioning of firmware for a hardware platform
KR102147970B1 (ko) 2014-08-05 2020-08-25 삼성전자주식회사 비휘발성 메모리 기반의 스토리지 디바이스의 복구 방법 및 상기 스토리지 디바이스를 포함하는 전자 시스템의 동작 방법
US20160232057A1 (en) 2015-02-11 2016-08-11 Sandisk Technologies Inc. Safe mode boot loader
US9620216B2 (en) * 2015-02-17 2017-04-11 Silicon Storage Technology, Inc. Flash memory device configurable to provide read only memory functionality
KR20160109207A (ko) * 2015-03-10 2016-09-21 삼성전자주식회사 메모리의 초기화 및 펌 웨어의 업데이트를 위한 방법 및 전자 장치
CN105159713A (zh) 2015-09-02 2015-12-16 Tcl移动通信科技(宁波)有限公司 一种显示屏固件升级方法及系统
US20170168725A1 (en) * 2015-12-10 2017-06-15 Kabushiki Kaisha Toshiba Memory system that updates firmware in response to predetermined events
US10025522B2 (en) 2016-04-15 2018-07-17 Sandisk Technologies Llc Memory interface command queue throttling
US11182148B2 (en) * 2018-03-13 2021-11-23 Dell Products L.P. System and method for automated BIOS recovery after BIOS corruption
US11468170B2 (en) * 2018-12-07 2022-10-11 Intel Corporation Techniques for processor boot-up
US10795746B2 (en) 2018-12-13 2020-10-06 Micron Technology, Inc. Automated power down based on state of firmware

Also Published As

Publication number Publication date
KR20210089257A (ko) 2021-07-15
JP2022513462A (ja) 2022-02-08
US20210011796A1 (en) 2021-01-14
US10795746B2 (en) 2020-10-06
JP2022172270A (ja) 2022-11-15
WO2020123059A1 (en) 2020-06-18
KR102665475B1 (ko) 2024-05-13
JP7137708B2 (ja) 2022-09-14
US11397631B2 (en) 2022-07-26
US20200192740A1 (en) 2020-06-18
CN113396374B (zh) 2023-12-19
US11847014B2 (en) 2023-12-19
US20220327014A1 (en) 2022-10-13
CN113396374A (zh) 2021-09-14

Similar Documents

Publication Publication Date Title
US11288149B2 (en) Flash memory block retirement policy
TWI696077B (zh) 記憶體裝置,裝置可讀儲存媒體及用於執行先佔式閒置時間讀取掃描之方法
US10121551B1 (en) Detecting power loss in NAND memory devices
US10522229B2 (en) Secure erase for data corruption
US10685731B2 (en) Erase page check
JP7167164B2 (ja) 訂正不可能なecc
US11688473B2 (en) SLC page read
US20210073070A1 (en) Methods and system with dynamic ecc voltage and frequency
US11847014B2 (en) Automated power down based on state of firmware
KR20210099184A (ko) 저장 디바이스의 순차적 데이터 최적화 서브 영역
WO2019089350A1 (en) Nand flash thermal alerting
TW201923554A (zh) 用於快閃記憶體之日誌資料儲存
WO2019140074A1 (en) Read retry scratch space

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination