KR20220041936A - 구성 가능 매체 구조 - Google Patents

구성 가능 매체 구조 Download PDF

Info

Publication number
KR20220041936A
KR20220041936A KR1020227008732A KR20227008732A KR20220041936A KR 20220041936 A KR20220041936 A KR 20220041936A KR 1020227008732 A KR1020227008732 A KR 1020227008732A KR 20227008732 A KR20227008732 A KR 20227008732A KR 20220041936 A KR20220041936 A KR 20220041936A
Authority
KR
South Korea
Prior art keywords
memory
boot
memory array
boot image
memory device
Prior art date
Application number
KR1020227008732A
Other languages
English (en)
Other versions
KR102488816B1 (ko
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 KR20220041936A publication Critical patent/KR20220041936A/ko
Application granted granted Critical
Publication of KR102488816B1 publication Critical patent/KR102488816B1/ko

Links

Images

Classifications

    • 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/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/102Error in check bits
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C14/00Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/20Initialising; Data preset; Chip identification
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/20Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
    • 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/1417Boot up procedures
    • 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/7201Logical to physical mapping or translation of blocks or pages
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

구성 가능 매체 구조물과 관련된 시스템, 장치, 및 방법이 기재된다. 메모리 디바이스는 다양한 구성(configuration)으로 부트 업하도록 구성될 수 있다. 다양한 구성은 영구 메모리 저장소, 비-영구 메모리 저장소 등을 위해 메모리 디바이스를 이용하는 것을 포함할 수 있다. 예를 들어, 장치가 제1 메모리 어레이 및 제2 메모리 어레이를 포함할 수 있다. 장치는 제1 메모리 어레이 및 제2 메모리 어레이에 연결된 메모리 제어기를 포함할 수 있다. 제2 메모리 어레이는 적어도 두 개의 부트 이미지를 저장하도록 구성될 수 있다. 제1 메모리 어레이는 적어도 두 개의 부트 이미지 중 어느 것이 사용되는지에 기초하여 동작하도록 구성될 수 있다.

Description

구성 가능 매체 구조
본 개시 내용은 일반적으로 반도체 메모리 및 방법과 관련되며, 더 구체적으로 구성 가능 매체 구조(configurable media structure)를 포함하는 장치, 시스템, 및 방법과 관련된다.
메모리 디바이스는 일반적으로 컴퓨터 또는 그 밖의 다른 전자 시스템의 내부, 반도체, 집적 회로로서 제공된다. 여러 다른 유형의 메모리, 가령, 휘발성 및 비휘발성 메모리가 존재한다. 휘발성 메모리는 자신의 데이터(가령, 호스트 데이터, 에러 데이터 등)를 유지하기 위해 전력을 필요로 할 수 있으며 랜덤 액세스 메모리(RAM: random-access memory), 동적 랜덤 액세스 메모리(DRAM: dynamic random access memory), 정적 랜덤 액세스 메모리(SRAM: static random access memory), 동기식 동적 랜덤 액세스 메모리(SDRAM: synchronous dynamic random access memory), 및 사이리스터 랜덤 액세스 메모리(TRAM: thyristor random access memory) 등을 포함한다. 비휘발성 메모리는 전력이 공급되지 않을 때 저장된 데이터를 보유함으로써 영구 데이터를 제공할 수 있으며 예시로서 NAND 플래시 메모리, NOR 플래시 메모리, 및 가변 저항 메모리, 가령, 상 변화 랜덤 액세스 메모리(PCRAM: phase change random access memory), 저항 랜덤 액세스 메모리(RRAM: resistive random access memory), 및 자기저항 랜덤 액세스 메모리(MRAM: magnetoresistive random access memory), 가령, 스핀 토크 전달 랜덤 액세스 메모리(STT RAM: spin torque transfer random access memory) 등을 포함할 수 있다.
메모리 디바이스는 호스트(가령, 호스트 컴퓨팅 디바이스)에 연결되어, 컴퓨터 또는 전자 시스템이 동작 중인 동안 호스트 및/또는 호스트 상에서 실행되는 애플리케이션에 의해 사용되기 위한 데이터, 커맨드 및/또는 명령을 저장할 수 있다. 예를 들어, 호스트 상에서 실행되는 애플리케이션, 컴퓨팅, 또는 그 밖의 다른 전자 시스템의 동작 동안 데이터, 커맨드 및/또는 명령이 호스트와 메모리 디바이스(들) 간에 전송될 수 있다.
도 1은 본 개시 내용의 다수의 실시예에 따르는 메모리 장치를 포함하는 컴퓨팅 시스템의 형태를 한 기능 블록도이다.
도 2a-2b는 본 개시 내용의 다수의 실시예에 따르는 구성 가능 메모리 장치를 포함하는 컴퓨팅 시스템의 형태를 한 기능 블록도이다.
도 3은 본 개시 내용의 다수의 실시예에 따르는 구성 가능 메모리 장치를 포함하는 컴퓨팅 시스템의 형태를 한 기능 블록도이다.
도 4는 본 개시 내용의 다수의 실시예에 따르는 메모리 장치를 구성하기 위한 예시적 방법을 나타내는 흐름도이다.
구성 가능 매체 구조와 관련된 시스템, 장치, 및 방법이 기재된다. 메모리 디바이스는 다양한 구성(configuration)으로 부트 업하도록 구성될 수 있다. 다양한 구성은 영구 메모리 저장소, 비-영구 메모리 저장소 등을 위해 메모리 디바이스를 이용하는 것을 포함할 수 있다. 예를 들어, 장치가 제1 메모리 어레이 및 제2 메모리 어레이를 포함할 수 있다. 장치는 제1 메모리 어레이 및 제2 메모리 어레이에 연결된 메모리 제어기를 포함할 수 있다. 제2 메모리 어레이는 적어도 두 개의 부트 이미지를 저장하도록 구성될 수 있다. 제1 메모리 어레이는 적어도 두 개의 부트 이미지 중 어느 것이 사용되는지에 기초하여 동작하도록 구성될 수 있다.
메모리 디바이스, 가령, 플래시 메모리 디바이스는 컴퓨팅 시스템에 데이터를 저장하는 데 사용될 수 있고 이러한 데이터를 컴퓨팅 시스템과 연관된 호스트 간에, 및/또는 컴퓨팅 시스템과 연관된 호스트 상에서 실행되는 애플리케이션 간에 전송할 수 있다. 메모리 디바이스에 저장된 데이터가 컴퓨팅 시스템 및/또는 호스트 상에서 실행되는 애플리케이션(들)의 동작에 중요하거나 심지어 핵심적일 수 있다. 컴퓨팅 시스템 및/또는 애플리케이션(들)의 동작이 현장 프로그램 가능 게이트 어레이(FPGA: field programmable gate array) 구조에 의해 구성 가능할 수 있다. 일부 이전 접근 방식에서, 메모리 시스템은 메모리 요소의 구조 및 결합이 설정됨에 따라 메모리 시스템의 구성이 설정되기 때문에 단일 부트 이미지를 사용하여 부트 업하도록 설계될 수 있다. 이하에서 기재되는 실시예에서, 메모리 디바이스의 구성요소는 FPGA를 이용해 배열됨으로써 메모리 디바이스의 구성요소가 구성 가능해질 수 있다. 메모리 디바이스의 FPGA 구성요소를 구성함으로써, 메모리 디바이스는 다양한 방식으로, 가령, 영구 메모리 대 비-영구 메모리로서 사용될 수 있다. 이 구성 가능성은 사용자에 의해 결정될 수 있다.
예를 들어, FPGA의 유연성이 복수의 논리-물리 매핑 데이터를 FPGA의 메모리 어레이에 저장함으로써 메모리 장치를 영구 메모리로서 사용할 옵션을 제공할 수 있다. 이러한 방식으로, 메모리 어레이는 메모리 장치에 결합된 메모리 디바이스(가령, NAND 메모리, 가변 저항 메모리 디바이스, 가령, 3차원(3D) 크로스-포인트 메모리, 상 변화 메모리 디바이스, 자기-선택 메모리 디바이스, 및/또는 NOR 플래시 메모리 등)에 저장된 데이터의 매핑을 추적할 수 있다. 대안으로, FPGA의 유연성이 다른 데이터를 저장하기 위해 논리-물리 매핑 데이터를 달리 저장할 메모리 어레이를 사용함으로써 메모리 장치를 비-영구 메모리로서 사용할 옵션을 제공할 수 있다. 이렇게 함으로써, 메모리 디바이스에 저장된 데이터의 영구성이 FPGA의 메모리 어레이의 위치에서 유지되지 않을 수 있지만 대신 추가 메모리 처리 능력이 메모리 어레이에서 구현될 수 있다.
또한, 예를 들어, FPGA의 유연성이 개선된 레이턴시 대 보안성, 강력한 에러 정정 대 디바이스 마모 등의 균형을 이룰 옵션을 제공할 수 있다. 예를 들어, 증가된 암호화가 증가된 레이턴시를 야기하고 감소된 암호화 능력이 감소된 레이턴시를 야기할 수 있도록 암호화가 구성 가능할 수 있다. 유사한 방식으로, 메모리 장치의 라이프 사이클의 시작부분에서 에러 정정이 최소화될 수 있고 메모리 장치가 사용 상태가 될 때 시간에 따라 증가하도록 구성될 수 있다. 이러한 방식으로, 에러 정정은 메모리 장치의 메모리 셀의 마모로 인한 시간에 따른 에러 정정 증가에 대한 필요성에 반응하도록 구성될 수 있다.
일부 실시예에서, 플래시 메모리가 메모리 장치에 의해 사용될 수 있다. 플래시 메모리가 부트 이미지를 저장하는 것을 포함해 다양한 전자 응용분야에서 비휘발성 메모리로서 사용될 수 있다. 플래시 메모리 디바이스는 일반적으로 높은 메모리 밀도, 높은 신뢰도, 및 저 전력 소모를 가능하게 하는 1-트랜지스터 메모리 셀을 사용한다. 두 가지 일반적인 유형의 플래시 메모리 어레이 아키텍처는 각각이 기본 메모리 셀 구성이 배열되는 논리적 형태로 지칭되는 "NAND" 및 "NOR" 아키텍처이다. NOR 어레이 아키텍처에서, 메모리 어레이의 플로팅 게이트 메모리 셀은 일반적으로 행렬로 배열된다.
어레이 행렬의 각각의 플로팅 게이트 메모리 셀의 게이트는 일반적으로 행으로 워드 선택 라인에 연결되고 이들의 드레인이 열 비트 라인에 연결된다. NOR 아키텍처 플로팅 게이트 메모리 어레이는 이들의 게ㅣ트에 연결된 워드 선택 라인을 선택함으로써 플로팅 게이트 메모리 셀의 행을 활성화하는 행 디코더에 의해 액세스된다. 그런 다음 선택된 메모리 셀의 행은 특정 셀이 프로그램된 상태에 있는지 또는 소거 상태에 있는지에 따라 상이한 전류를 흘림으로써 이들 데이터 값을 열 비트 라인 상에 위치시킨다.
플래시 메모리 NOR 어레이는 메모리 디바이스를 부트 업하는 데 사용되는 부트 이미지를 저장할 수 있다. 부트 이미지는 컴퓨터 저장 매체의 완전한 콘텐츠 및/또는 구조를 포함하는 컴퓨터 파일인 일종의 디스크 이미지일 수 있다. 이하에서 더 기재될 바와 같이, 상이한 부트 이미지가 저장 매체의 각각의 상이한 구조를 위해 사용될 수 있다. 예를 들어, 복수의 상이한 구조적 구성으로 구성될 수 있는 현장 프로그램 가능 게이트 어레이(FPGA)를 이용함으로써, 저장 매체의 구조가 구성될 수 있다. 각각의 구성은 메모리 디바이스를 특정 구조에 대해 부트 업하는 데 사용되는 부트 이미지와 연관될 수 있다.
FPGA는 사용자에 의해 및/또는 제조시에 구성될 수 있는 집적 회로이다. 주문형 집적 회로(ASIC)에 대해 사용된 것과 유사한 하드웨어 기술 언어(HDL: hardware description language)를 이용해 FPGA의 구성이 특정될 수 있다. FPGA는 프로그램 가능 로직 블록의 어레이 및 상이한 구성으로 연결될 수 있는 로직 게이트와 유사한 방식으로 블록들이 함께 연결될 수 있게 하는 재구성 가능한 인터커넥트의 계층구조를 포함한다. 로직 블록은 복잡한 조합적 기능을 수행하거나, 단순한 로직 게이트, 가령, AND, XOR 등만 수행하도록 구성될 수 있다. 일부 FPGA에서, 로직 블록은 단순한 플립-플립 또는 더 완전한 메모리 블록일 수 있는 메모리 요소를 포함할 수 있다. 이하에서 더 기재될 바와 같이, 이들 메모리 요소는 메모리 제어기, 휘발성 메모리 어레이(가령, DRAM, SRAM 등), ECC 정정 유닛, 영구성과 연관된 로직(가령, 논리 대 물리 매핑 테이블 등), 및/또는 다수의 큐잉 동작을 수행하기 위한 큐 로직을 포함할 수 있다. 이들 메모리 요소의 구성 각각은 상이한 부트 이미지와 연관되어, 메모리 장치를 부트 업하는 데 어느 부트 이미지가 사용되는지에 기초하여 메모리 요소가 구성될 수 있도록 한다.
또한, 상이한 로직 기능을 구현하기 위해 다수의 FPGA가 재프로그램되어, 예를 들어 컴퓨터 소프트웨어에서 수행될 때 유연한 재구성 가능한 컴퓨팅을 가능하게 할 수 있다. 예를 들어, 재구성 가능한 FPGA가 데이터 처리의 레이턴시를 증가 및/또는 감소시켜, 이에 따라 에러 정정, 보안 등을 감소 및/또는 증가시키도록 구성될 수 있다. 예를 들어, 에러 정정을 증가시킴으로써, 레이턴시가 증가될 수 있고, 그 반대도 가능한데 에러 정정을 감소시키는 것이 레이턴시를 감소시킬 수 있다. 또한, 메모리 디바이스를 실행시키기 위한 희망 특성에 따라, 특정 구조가 영구 메모리 또는 비-영구 메모리에 대해 메모리 디바이스를 이용하는 것과 연관될 수 있으며, 이는 이하에서 더 기재될 것이다. 이러한 방식으로, FPGA를 메모리 장치에 통합시키는 것이 응용분야 특정적 유연성을 허용할 수 있다.
본 개시내용의 다음의 상세한 설명에서, 본 개시내용의 일부를 형성하고 본 개시 내용의 하나 이상의 실시예가 어떻게 실시될 수 있는지를 예시적으로 나타내는 첨부 도면이 참조된다. 이들 실시예는 해당 분야의 통상의 기술자가 본 개시 내용의 실시예를 실시할 수 있기에 충분히 상세하게 기재되어 있으며, 그 밖의 다른 실시예가 사용될 수 있고, 프로세스, 전기, 및 구조적 변화가 본 개시 내용의 범위 내에서 이뤄질 수 있음이 이해될 것이다.
본 명세서에서 사용될 때, 특히 도면에서 참조 번호와 관련하여 본 명세서에서 사용되는 지시자, 가령, "N"은 그렇게 지시된 다수의 특정 특징부가 포함될 수 있음을 나타낸다. 본 명세서에서 사용되는 용어는 특정 실시예를 설명할 목적만 가지며, 한정을 의도하지 않는다. 본 명세서에 사용될 때, 단수 형태 "a", "an" 및 "the"는 맥락상 명백하게 달리 지시하지 않는 한 단수 및 복수 지시 대상을 포함한다. 또한, "다수의(a number of)", "적어도 하나의", 및 "하나 이상의" (가령, 다수의 메모리 디바이스)는 하나 이상의 메모리 디바이스를 지칭할 수 있으며, 반면에 "복수의"는 둘 이상의 이러한 것을 지칭하는 의도를 가진다. 또한, "~ 일 수 있다(can 및 may)"라는 단어는 본 출원 전반에 걸쳐 의무적인 의미(즉, 이어야 함)가 아니라 허용적인 의미(즉, ~일 가능성을 가짐, ~일 수 있음)로 사용된다. "포함한다"라는 용어와 그 파생어는 "포함하지만 이에 국한되지 않는"을 의미한다. "결합된" 및 "결합하는"이라는 용어는 물리적으로 또는 맥락에 따라 커맨드 및/또는 데이터의 액세스 및 이동(전송)을 위해 직접 또는 간접적으로 연결되는 것을 의미한다. "데이터" 및 "데이터 값"이라는 용어는 본 명세서에서 상호 교환 가능하게 사용되며 맥락에 따라 동일한 의미를 가질 수 있다.
본 명세서의 도면은 첫 번째 숫자 또는 숫자들이 도면 번호에 대응하고 나머지 숫자가 도면의 요소 또는 구성요소를 식별하는 번호 지정 규칙을 따른다. 상이한 도면들 간 유사한 요소 또는 구성요소가 유사한 숫자의 사용으로 식별될 수 있다. 예를 들어, 104는 도 1에서 요소 "04"를 지칭할 수 있고, 유사한 요소가 도 2에서 204로 지칭될 수 있다. 본 명세서에서 일반적으로 그룹 또는 복수의 유사한 요소 또는 구성요소가 단일 요소 번호로 지칭될 수 있다. 예를 들어, 복수의 참조 요소(112-1, ..., 112-N)(가령, 112-1 내지 112-N)가 일반적으로 112로 지칭될 수 있다. 이해될 바와 같이, 본 명세서의 다양한 실시예에서 도시된 요소는 본 개시 내용의 다수의 추가 실시예를 제공하기 위해 추가, 교환 및/또는 제거될 수 있다. 또한, 도면에 제공된 요소의 비율 및/또는 상대적 축척은 본 개시내용의 특정 실시예를 설명하기 위한 것이며 한정의 의미로 사용되도록 의도된 것이 아니다.
도 1은 본 개시 내용의 다수의 실시예에 따르는 메모리 장치(104)를 포함하는 컴퓨팅 시스템(100)의 형태를 한 기능 블록도이다. 본 명세서에서 사용될 때, "장치"는 다양한 구조 또는 구조의 조합 중 임의의 것, 가령, 회로 또는 회로군, 하나 또는 복수의 다이, 하나 또는 복수의 모듈, 하나 또는 복수의 디바이스, 또는 하나 또는 복수의 시스템을 지칭할 수 있지만, 이에 한정되지 않는다. 메모리 장치(104)는 예를 들어 비-영구 메모리 디바이스, 가령, DRAM 및/또는 SRAM 메모리 어레이를 포함하는 현장 프로그램 가능 게이트 어레이(FPGA)일 수 있고, 인터페이스(108), 제어기(110), 가령, 프로세서 및/또는 또 다른 제어 회로, 및 메모리 장치(104)에 대한 저장 볼륨을 제공하는 메모리 어레이(111), 가령, 솔리드 스테이트 메모리 디바이스, 가령, NAND 플래시 디바이스를 포함할 수 있다. 다수의 실시예에서, 제어기(110), 메모리 디바이스(120), 및/또는 인터페이스(108)가 가령, 관리 NAND 응용분야에서 단일 다이 상에 또는 단일 패키지 내에 물리적으로 위치할 수 있다. 또한, 다수의 실시예에서, 메모리, 가령, 메모리 디바이스(120)는 단일 메모리 디바이스 또는 복수의 메모리 디바이스를 포함할 수 있다.
메모리 장치(104)는 복수의 메모리 디바이스(112-1 내지 112-N)(본 명세서에서 메모리 디바이스(112)로 총칭)에 연결될 수 있다. 메모리 디바이스(112)는 영구 메모리 디바이스, 가령, NAND 플래시 메모리, 가변 저항 메모리, 3차원(3D) 크로스-포인트 메모리, NOR 플래시 메모리 등을 포함할 수 있다. 메모리 디바이스(112)는 데이터 버스 또는 그 밖의 다른 유형의 데이터 전송 방법(제어기(110)와 메모리 디바이스(112) 간 화살표로 지시됨)을 통한 제어기(110)의 제어에 의해 메모리 장치(104)에 의해 액세스될 수 있다. 메모리 장치(104)는 로직 구성요소(114) 및 에러 정정 코드(ECC) 구성요소(116)를 포함할 수 있다. 로직 유닛(114)은 메모리 디바이스(112) 및 메모리 장치(104)에 저장된 데이터에 의해 메모리 영구성을 유지하는 데 사용될 수 있다.
ECC 구성요소(116)는 BCH(Bose, Chaudhuri, and Hocquenghem) 에러 정정 방식, 저-밀도 패리티 체크(LDPC) 에러 정정 방식, 해밍(Hamming) 에러 정정 방식, 분류 코드 에러 정정 스킴, 및/또는 메모리 장치(104)와 메모리 디바이스(112) 간에 전송되는 데이터에 대한 에러 정정을 촉진시킬 수 있는 그 밖의 다른 유형의 에러 정정 스킴에 따라 에러 정정 동작을 수행하기 위한 하드웨어 및/또는 펌웨어를 포함할 수 있다. 일부 실시예에서, ECC 구성요소(116)는 메모리 디바이스(112)로부터 데이터를 수신할 수 있다. 데이터는 메모리 디바이스(112)로부터 메모리 장치(104)로 또는 메모리 장치(104)로부터 메모리 디바이스(112)로 전송되기 전에 하나 이상의 ECC 스킴에 따라 인코딩될 수 있다. 그러나 실시예는 이에 한정되지 않으며 일부 실시예에서 ECC 구성요소(116)는 메모리 디바이스(112)로부터 인코딩되지 않은 데이터를 수신하고 하나 이상의 ECC 스킴에 따라 데이터를 인코딩 및/또는 차후 디코딩할 수 있다. 따라서, ECC 구성요소(116)는 컴퓨팅 시스템(100)에 대한 모든 (또는 적어도 일부분의) 에러 정정 동작을 수행할 수 있다.
일부 실시예에서, 인터페이스(108)는 표준화된 인터페이스의 형태를 가질 수 있다. 예를 들어, 메모리 장치(104)가 컴퓨팅 시스템(100)에 데이터 저장을 위해 사용될 때, 인터페이스(108)는 SATA(serial advanced technology attachment), PCIe(peripheral component interconnect express), 또는 USB(universal serial bus), DDR(double data rate) 인터페이스, 그 밖의 다른 커넥터 및 인터페이스일 수 있다. 그러나, 일반적으로, 인터페이스(108)는 메모리 장치(104)와 인터페이스(108)에 대한 호환 가능한 리셉터를 갖는 호스트(102) 간에 제어, 주소, 데이터, 및 그 밖의 다른 신호를 전달하기 위한 인터페이스를 제공할 수 있다.
호스트(102)는 호스트 시스템, 가령, 개인 랩톱 컴퓨터, 데스크톱 컴퓨터, 디지털 카메라, 모바일 전화기, 사물 인터넷(IoT) 가능 디바이스, 또는 메모리 카드 리더, 그래픽 처리 유닛(가령, 비디오 카드), 그 밖의 다른 다양한 유형의 호스트일 수 있다. 호스트(102)는 시스템 마더보드 및/또는 백플레인을 포함할 수 있고 다수의 메모리 액세스 디바이스, 가령, 다수의 프로세싱 자원(가령, 하나 이상의 프로세서, 마이크로프로세서, 또는 일부 다른 유형의 제어 회로)를 포함할 수 있다. 해당 분야의 통상의 기술자는 "프로세서"가 하나 이상의 프로세서, 가령, 병렬 처리 시스템, 다수의 코프로세서 등을 의도할 수 있음을 알 것이다. 호스트(102)는 메모리 장치(104)의 인터페이스(108)에 연결될 수 있다.
일부 실시예에서, 호스트(102)는 메모리 장치(104)를 포함하는 컴퓨팅 시스템(100)에 대한 운영 체제를 실행할 수 있다. 따라서 일부 실시예에서, 호스트(102)는 메모리 장치(104)의 동작을 제어할 수 있다. 예를 들어, 호스트(102)는 (가령, 운영 체제의 형태로) 컴퓨팅 시스템(100)의 하드웨어를 관리, 가령, 작업을 스케줄링, 하나 이상의 애플리케이션을 실행, 주변장치를 제어 등을 하는 명령을 실행할 수 있다.
컴퓨팅 시스템(100)은 호스트(102), 메모리 장치(104), 인터페이스(108), 제어기(110), 및/또는 메모리 디바이스(112-1 내지 112-N) 상에 개별 집적 회로를 포함하거나 동일한 집적 회로 상에 있을 수 있다. 컴퓨팅 시스템(100)은 가령 서버 시스템 및/또는 고성능 컴퓨팅(HPC) 시스템 및/또는 그 일부일 수 있다. 일부 실시예에서, 메모리 장치(104)의 메모리 요소의 전부 또는 일부가 FPGA 상에 포함될 수 있다. 예를 들어, 메모리 어레이(111), 제어기(110), 호스트 인터페이스(108), 로직 구성요소(114) 및/또는 ECC 구성요소(116)는 FPGA 상에 포함될 수 있다. 이하에서 기재될 바와 같이, 추가 메모리 요소가 메모리 장치(104)에 포함될 수 있지만, FPGA의 일부(가령, 도 2a의 NOR 플래시 메모리(220-1, 220-2, 220-3))가 아닐 수 있다. 도 1에 도시된 예가 폰 노이만 아키텍처를 갖는 시스템을 예시하지만, 본 개시 내용의 실시예는 종종 폰 노이만 아키텍처와 연관된 하나 이상의 구성요소(가령, CPU, ALU 등)를 포함하지 않을 수 있는 비(non)-폰 노이만 아키텍처에서 구현될 수 있다.
일부 접근법에서, 메모리 장치(104)(가령, 제어기(110))는 애플리케이션의 실행을 위해, 메모리 디바이스(112)에 저장된 데이터(가령, 메모리 셀 및/또는 셀 그룹, 가령, 데이터 워드, 또는 섹터)를 액세스하기 위해 채널을 사용할 수 있다. 메모리 디바이스(112)에 저장된 데이터를 이용해 애플리케이션이 호스트(102) 상에서 실행될 수 있다. "~상에서 실행된"이라는 용어는 본 명세서에서 다른 용어, 가령, "~상에 상주하는", "~상에 배포된", 또는 "~상에 위치하는"와 상호 교화 가능하게 사용될 수 있다. 제어기(110)에 의해 채널이 활성화되어 메모리 디바이스(112)에 저장된 데이터를 애플리케이션에 제공할 수 있다. 애플리케이션은 특정 방식으로 수행되도록 맞춰질 수 있다. 예를 들어, 애플리케이션은 비-영구적인 방식으로 메모리 디바이스(112)를 사용하고 데이터의 영구성을 유지하는 것이 아닌 다른 데이터 동작을 위해, 메모리 장치(104)의 일부분, 가령, 메모리 어레이(111)를 사용하도록 동작될 수 있다. 대안으로, 애플리케이션은 영구적인 방식으로 메모리를 사용하도록 동작될 수 있으며, 이로써 메모리 어레이(111)를 이용해 메모리 디바이스(112)에서의 데이터의 영구성을 유지함으로써, 다른 경우라면 데이터 동작을 위해 사용될 메모리 어레이(111)의 일부분을 이용할 수 있다.
일부 실시예에서, 본 명세서에서 기재될 때, 제어기(110)는 애플리케이션이 메모리 디바이스(112)를 영구 방식으로 또는 비-영구 방식으로 사용할 것을 요청하는지 여부를 결정할 수 있다. 이러한 요청은 서비스 품질(QoS: Quality of Service) 파라미터에 기초할 수 있다. 예를 들어, 특정 환경 하에서 메모리 장치의 오버프로비저닝(overprovisioning)을 가능하게 하는 것이 유리할 수 있다. 또한, 구성 가능한 매체 구조물에 의해, 엄중한 QoS 요건이 요청될 때 충족될 수 있고 요청되지 않을 때 감소될 수 있다. 이는 QoS 지침을 여전히 충족하면서 자원 대화 및/또는 전력 소비의 보존을 가능하게 할 수 있다.
요청에 응답하여, 제어기(110)는, 메모리 장치(104)를 리부팅하거나 그 밖의 다른 일부 방식으로, 메모리 장치(104)의 동작을 위해 어느 부트 이미지가 사용되고 있는지를 수정할 수 있다. 부트 이미지의 수정이 사용되면, 메모리 디바이스(112)는 애플리케이션에 의해 요청되는 대로(가령, 영구 방식으로 또는 비-영구 방식으로) 사용될 수 있다. 마찬가지로, 레이턴시 및/또는 보안의 레벨이 결정될 수 있고 특정 레이턴시 및/또는 보안과 연관된 부트 이미지가 선택될 수 있다. 예를 들어, 애플리케이션이 높은 보안 레벨을 갖고 이에 따라 메모리 장치(104)의 레이턴시를 증가시킬 것을 요청할 수 있다. 또는, 애플리케이션은 낮은 보안 레벨을 갖고 메모리에서의 레이턴시를 감소시킬 것을 요청할 수 있다. FPGA는 요청된 이러한 및 그 밖의 다른 기준을 충족하도록 구성될 수 있다.
그러나 일부 실시예에서, 기준은 요청에 기초하여 구현되지 않고, 임계값의 변화, 메모리 장치(104)의 특성의 변화 등에 기초하여 구현될 수 있다. 예를 들어, 데이터의 에러의 증가가 임계값을 초과하여 도달할 수 있고 이에 응답하여 에러 정정의 증가가 발생할 수 있다. FPGA는 에러 정정을 증가시키고 이와 마찬가지로 메모리 장치(104)의 그 밖의 다른 동작 능력을 감소시키도록 재구성될 수 있다. 마찬가지로, 해킹 시도의 증가 또는 보안 문제의 증가가 FPGA의 재구성이 보안을 증가시키고 이에 따라 레이턴시를 증가시키게 할 수 있다.
제어기(110)는 데이터를 제어하고 읽기, 쓰기, 소거 동작, 그 밖의 다른 동작을 수행하기 위해 메모리 디바이스(112-1 내지 112-N)와 통신할 수 있다. 제어기(110)는 예를 들어 하드웨어 및/또는 펌웨어의 형태로 된 다수의 구성요소, 가령, 하나 이상의 집적 회로, 가령, 주문형 집적 회로(ASIC), 현장 프로그램 가능 게이트 어레이(FPGA) 및/또는 다수의 메모리 디바이스(112-1 내지 112-N)에 대한 액세스를 제어 및/또는 호스트(102)와 메모리 디바이스(112-1 내지 112-N) 간 데이터 전송을 용이하게 하기 위한 소프트웨어를 포함할 수 있다. 제어기(110)는 데이터 읽기, 쓰기, 소거 등의 동작을 제어하기 위한 다양한 구성요소를 포함할 수 있으며, 이들은 본 개시 내용의 실시예를 모호하게 하지 않도록 나타내지 않았다. 일부 실시예에서 이러한 구성요소는 제어기(110)의 구성요소가 아닐 수 있는데, 가령, 데이터 읽기, 쓰기, 소거 등의 동작을 제어하기 위한 구성요소가 메모리 장치(104) 내에 위치하는 독립적인 구성요소일 수 있다.
메모리 디바이스(112)는 메모리 셀의 다수의 어레이를 포함할 수 있다. 어레이는 예를 들어 NAND 아키텍처, 3D 크로스-포인트 아키텍처(3D XPTM), 및/또는 NOR 아키텍처를 갖는 플래시 어레이일 수 있다. 그러나 실시예는 특정 유형의 메모리 어레이 또는 어레이 아키텍처에 한정되지 않는다. 메모리 셀은, 예를 들어, 다수의 물리적 페이지를 포함하는 다수의 블록으로 그룹지어질 수 있다. 다수의 블록은 메모리 셀의 평면에 포함될 수 있고 어레이는 다수의 평면을 포함할 수 있다.
메모리 디바이스(112)는 휘발성 메모리 및/또는 비휘발성 메모리를 포함할 수 있다. 다수의 실시예에서, 메모리 디바이스(112)는 멀티-칩 디바이스를 포함할 수 있다. 멀티-칩 디바이스는 여러 다른 메모리 유형 및/또는 메모리 모듈을 포함할 수 있다. 예를 들어, 메모리 시스템은 임의의 유형의 모듈에 비휘발성 또는 휘발성 메모리를 포함할 수 있다. 메모리 디바이스(112)가 비휘발성 메모리를 포함하는 실시예에서, 메모리 디바이스(112)는 플래시 메모리 디바이스, 가령, NAND 또는 NOR 플래시 메모리 디바이스일 수 있다. 그러나 실시예는 이에 한정되지 않고, 메모리 디바이스(112)는 그 밖의 다른 비휘발성 메모리 디바이스, 가령, 비휘발성 랜덤-액세스 메모리 디바이스(가령, NVRAM, ReRAM, FeRAM, MRAM, PCM), "신흥" 메모리 디바이스, 가령, 가변 저항(가령, 3-D 크로스포인트(3D XP) 메모리 디바이스), 자기-선택 메모리(SSM) 셀의 어레이 등을 포함하는 메모리 디바이스, 또는 이들의 조합을 포함할 수 있다. 가변 저항 메모리 디바이스는 적층 가능한 크로스-그리드형 데이터 액세스 어레이와 함께 벌크 저항의 변화에 기초하여 비트 저장을 수행할 수 있다. 또한, 다수의 플래시 기반 메모리와 달리, 가변 저항 비휘발성 메모리는 제위치 쓰기(write in-place) 작업을 수행할 수 있는데, 여기서 비휘발성 메모리 셀은 비휘발성 메모리 셀이 이전에 소거되지 않고 프로그램될 수 있다. 플래시 기반 메모리 및 가변 저항 메모리와 달리, 자기-선택 메모리 셀이 메모리 셀에 대한 스위치 및 저장 요소 모두로서 기능하는 단일 칼코게나이드 물질을 갖는 메모리 셀을 포함할 수 있다.
메모리 디바이스(112)는 컴퓨팅 시스템(100)에 대한 메인 메모리를 제공할 수 있거나 컴퓨팅 시스템(100)을 통해 추가 메모리 또는 저장소로서 사용될 수 있다. 각각의 메모리 디바이스(112)는 메모리 셀, 가령, 휘발성 및/또는 비휘발성 메모리 셀의 하나 이상의 어레이를 포함할 수 있다. 어레이는 예를 들어 NAND 아키텍처를 갖는 플래시 어레이일 수 있다. 실시예는 특정 유형의 메모리 디바이스로 한정되지 않는다. 예를 들어, 메모리 디바이스는 RAM, ROM, DRAM, SDRAM, PCRAM, RRAM 및 플래시 메모리 등을 포함할 수 있다.
도 1의 실시예는 본 개시 내용의 실시예들을 모호하게 하지 않도록 도시되지 않은 추가 회로를 포함할 수 있다. 예를 들어, 메모리 장치(104)는 I/O 회로를 통해 I/O 연결을 통해 제공된 어드레스 신호를 래칭하기 위한 어드레스 회로를 포함할 수 있다. 주소 신호는 행 디코더 및 열 디코더에 의해 수신 및 디코딩되어 메모리 디바이스(112)를 액세스할 수 있다. 해당 분야의 통상의 기술자라면 주소 입력 연결의 개수가 메모리 디바이스(112)의 밀도 및 아키텍처에 따라 달라질 수 있음을 알 것이다.
도 2a는 본 개시 내용의 다수의 실시예에 따라 구성 가능한 메모리 장치(204)를 포함하는 컴퓨팅 시스템(201)의 형태를 한 기능 블록도이다. 컴퓨팅 시스템(201)은 호스트(202), 메모리 장치(204), 및 메모리 디바이스(212-1 내지 212-N)(본 명세서에서 메모리 디바이스(212)로 총칭됨)를 포함할 수 있다. 메모리 장치(204)는 단순히 "로직"으로 지칭될 수도 있으며, 호스트(202)에 위치할 수 있는 메모리 제어기와 구별되고 버스(203)를 통해 호스트 인터페이스(208)를 통해 호스트(202)와 통신하는 메모리 제어기(210)를 포함할 수 있다. 예를 들어, 일부 실시예에서, 로직 또는 메모리 제어기는 호스트(202) 외부에 그리고 메모리 장치(204) 상에 위치할 수 있다. 일부 실시예에서, 로직 또는 메모리 제어기는 호스트(202) 상에 위치할 수 있다.
메모리 어레이(211)는 휘발성 메모리, 가령, DRAM 메모리 어레이, SRAM 메모리 어레이, RRAM 메모리 어레이 등일 수 있다. 메모리 어레이(211)는 메모리 디바이스(212)로부터 전송된 데이터의 영구성을 유지하기 위한 논리-물리(L2P) 테이블(가령, 딥 스토리지 홀딩 테이블)을 저장하는 데 사용될 수 있다. 대안으로, L2P 테이블을 저장할 부분이 보조 캐시 저장소로서 사용되게 하도록 메모리 어레이(211)가 보조 캐시로서 사용될 수 있다.
메모리 장치(204)는 다양한 에러 정정 및 암호화 동작을 각각 수행하기 위해 ECC 구성요소(216) 및 암호화 구성요소(218)를 포함할 수 있다. 암호화 구성요소(218)는 전자 데이터의 암호화를 위한 규격을 참조할 때 AES(Advanced Encryption Standard) 기반 구성요소일 수 있다. ECC 구성요소(218)는 암호화의 레벨의 증가 또는 감소 요청에 기초하여 암호화의 레벨을 증가 또는 감소시키도록 구성 가능할 수 있다. 마찬가지로, 레이턴시 증가 또는 감소 요청에 기초하여 각각 암호화의 레벨이 증가 또는 감소될 수 있다. 이러한 방식으로, 암호화 증가 요청이 레이턴시를 증가시킬 수 있고 레이턴시 증가 요청이 암호화를 증가시킬 수 있다. 또한, 레이턴시 감소 요청이 암호화를 감소시킬 수 있고 레이턴시 증가 요청이 암호화를 증가시킬 수 있다.
메모리 장치는 로직 구성요소(214) 및 큐 구성요소(222)를 더 포함할 수 있다. 로직 구성요소(214)는 메모리 디바이스(212)에 저장된 데이터의 영구성을 유지하는 데 사용될 수 있다. 큐 구성요소(222)는 애플리케이션의 동작을 조화시키기 위해 컴퓨팅 자원 및 회로를 프로비저닝할 수 있다. 큐 구성요소(222)는 애플리케이션으로부터의 데이터에 대한 요청을 큐잉할 수 있다. 일부 실시예에서, 메모리 제어기(210)는 애플리케이션의 우선순위 레벨을 결정할 수 있고 제어기의 결정에 기초하여 요청의 우선순위를 촉진시킬 수 있다. 저 우선순위 애플리케이션이 고 우선순위 애플리케이션에 비해 데이터를 덜 빈번하게 요청하거나 및/또는 실행될 때 호스트에 대해 중요한 목적을 수행하지 않는 애플리케이션을 포함할 수 있다. 고 우선순위 애플리케이션은 저 우선순위 애플리케이션에 비해 데이터를 빈번하게 요청하거나 및/또는 실행될 때 중요한 목적을 수행하는 애플리케이션을 포함할 수 있다. 일부 고 우선순위 애플리케이션이 메모리 디바이스(212)로부터 데이터를 빈번하지 않게 요청할 수 있지만 실행될 때 데이터는 호스트에게 중요할 수 있다.
메모리 장치(204)는 복수의 비휘발성 메모리 어레이(가령, NOR 플래시 메모리 어레이, 플래시 메모리 어레이 등)(220-1, 220-2, 220-3)(본 명세서에서 비휘발성 메모리 어레이(220)라고 총칭됨)를 포함할 수 있다. 복수의 비휘발성 메모리 어레이(220) 각각은 부트 이미지를 저장하거나 및/또는 부트 이미지를 실행하도록 구성되어 메모리 장치(204)를 부트 업할 수 있다. 예를 들어, 제1 부트 이미지 "I1"(224-1)는 제1 비휘발성 메모리 어레이(220-1)와 연관될 수 있고, 제2 부트 이미지 "I2"(224-2)는 제2 비휘발성 메모리 어레이(220-2)와 연관될 수 있으며, 제3 부트 이미지 "I3"(224-3)는 제3 비휘발성 메모리 어레이(220-3)와 연관될 수 있는 등이다. 세 개의 비휘발성 메모리 어레이가 세 개의 부트 이미지와 함께 예시되지만, 실시예는 이에 한정되지 않는다. 임의의 개수의 비휘발성 메모리 어레이 및/또는 부트 이미지가 사용될 수 있다. 일부 이전 방식에서, 부트 이미지 각각을 검증하는 과도한 처리 비용 때문에 다수의 부트 이미지가 피해졌다. 또한, 메모리 시스템의 하드웨어 및/또는 구조를 변경하지 않고 메모리 시스템이 둘 이상의 부트 이미지를 사용하도록 구성 가능하지 않는 한, 둘 이상의 부트 이미지는 작동 불가능할 수 있다. 도 2a에 예시된 부트 이미지(224) 각각이 FPGA의 상이한 구성을 부트 업하는 데 사용될 수 있다. FPGA는 다수의 메모리 요소, 가령, 호스트 인터페이스(208), 메모리 제어기(210), 메모리 어레이(211), ECC 구성요소(216), 암호화 구성요소(218), 로직 구성요소(214) 및/또는 큐 구성요소(222)를 포함할 수 있다. 비휘발성 메모리 어레이(220)는 FPGA의 일부가 아니거나 외부에 있을 수 있다.
도 2b는 본 개시 내용의 다수의 실시예에 따라 구성 가능한 메모리 장치(204)를 포함하는 컴퓨팅 시스템(205)의 형태를 한 기능 블록도이다. FPGA가 유사한 메모리 요소, 가령, 호스트 인터페이스(208), 메모리 제어기(210), ECC 구성요소(216), 암호화 구성요소(218), 로직 구성요소(214) 및/또는 큐 구성요소(222)를 포함한다는 점에서 도 2b는 도 2a와 유사한 구성요소를 가질 수 있다. 그러나 도 2b는 세 개의 부트 이미지("I1" 224-1, "I2" 224-2, "I3" 224-3)를 포함하는 단일 비휘발성(가령, NOR 플래시) 메모리 어레이(220)를 포함하는 실시예를 예시한다. 이러한 방식으로, 단일 비휘발성 메모리 어레이는 복수의 부트 이미지(224)를 저장하고 메모리 장치(204)를 동작시키기 위해 복수의 부트 이미지(224) 중 하나를 처리할 수 있다. 앞서 기재된 바와 같이, 각각의 부트 이미지(224)가 메모리 장치(204)의 특정 구성 가능한 구조에 대응하여, 특정 방식으로 특정 동작을 수행할 수 있다. 예를 들어, 제1 부트 이미지(224-1)가 메모리 장치(204)를 영구 메모리를 이용해 동작시키는 데 사용될 수 있고, 제2 부트 이미지(224-2)가 메모리 장치(204)를 비-영구 메모리를 이용해 동작시키는 데 사용될 수 있으며, 제3 부트 이미지(224-3)가 메모리 장치를 증가 보안 및 증가 레이턴시 모드 등에서 동작시키는 데 사용될 수 있다.
도 3은 본 개시 내용의 다수의 실시예에 따르는 메모리 장치(304)를 포함하는 컴퓨팅 시스템(307)의 형태를 한 기능 블록도이다. FPGA에 포함된 메모리 요소가 유사하다는 점에서 메모리 장치(304)는 도 2a-2b와 유사할 수 있다. 그러나 메모리 어레이는 RRAM/SRAM(326)를 포함하는 특정 메모리 어레이일 수 있다. RRAM/SRAM(326)는 메모리 장치(304)의 수행의 요청된 선호에 따라, 논리-물리(L2P) 테이블을 포함하는 영구 데이터를 저장하거나 보조 캐시로서 데이터를 저장하도록 구성 가능할 수 있다. 마찬가지로, 휘발성 메모리 어레이, 가령, DRAM(328)은 FPGA 외부에 있을 수 있으며 L2P 테이블을 저장하거나 보조 캐시로서 데이터를 저장할 수 있다. 이러한 방식으로, 구성 가능한 FPGA의 상이한 기능을 위해 사용되는 메모리 어레이는 FPGA 내부 또는 외부에 있을 수 있다. 그러나 실시예는 이에 한정되지 않는데 FPGA를 이용함에 따른 이 셋업의 유연성이 도 1-3에 예시된 것보다 많은 실시예를 가능하게 하기 때문이다.
도 4는 본 개시 내용의 다수의 실시예에 따르는 메모리 장치를 구성하기 위한 예시적 방법(409)을 나타내는 흐름도이다.블록(440)에서, 방법(409)은 복수의 부트 이미지(boot image)(가령, 본 명세서에서 도 2a 및 2b에 예시된 부트 이미지(224))를 생성하는 단계를 포함할 수 있다. 복수의 부트 이미지 중 제1 부트 이미지는 메모리 어레이를 영구 메모리로서 사용하는 것과 연관될 수 있다. 복수의 부트 이미지 중 제2 부트 이미지는 메모리 어레이를 비-영구 메모리로서 사용하는 것과 연관될 수 있다. 메모리 장치는 메모리 장치가 동작을 수행하기 위해 요청된 구성에 어느 부트 이미지가 대응하는지를 이용해 부트 업될 수 있다.
블록(442)에서, 방법(409)은 메모리 장치를 제1 구성으로 부트 업할지 또는 제2 구성으로 부트 업할지 여부를 결정하는 단계를 포함할 수 있다. 결정은 호스트, 사용자 등으로부터 수신된 특정 구성을 요청하는 데이터에 기초할 수 있다. 제1 구성으로 부트 업할지 또는 제2 구성으로 부트 업할지의 결정은 메모리 장치에서 충족되는 임계 값 및/또는 메모리 장치의 특정 메트릭에 기초할 수 있다. 예를 들어, 메모리 장치의 메모리 셀이 마모됨에 따라, 이들의 작동이 영향 받을 수 있고 메모리 장치는 이러한 마모를 보상하기 위해 특정 구성으로 메모리 장치를 동작시킬 것을 결정할 수 있다. 특정 구성은 예를 들어 메모리 장치 내 에러 정정의 양을 증가시키는 것을 포함할 수 있다.
블록(444)에서, 방법은 결정에 기초하여 제1 이미지 또는 제2 이미지를 이용해 메모리 장치를 부트 업하는 단계를 포함할 수 있다. 메모리 장치를 부트 업하는 것은 메모리 장치의 현장 프로그램 가능 게이트 어레이(FPGA)를 부트 업하는 것을 포함할 수 있다. 도 1-3과 관련하여 기재된 메모리 요소가 사용되는 부트 이미지와 연관된 구성으로 동작하도록 FPGA의 유연성을 이용해 재프로그램될 수 있다. 이러한 방식으로, 상이한 부트 이미지가 메모리 장치가 부트 업될 때마다 사용되어, 메모리 장치가 부트 업될 때마다 상이한 구성이 사용되게 한다.
일부 실시예에서, 방법은 제1 이미지 및 제2 이미지를 NOR 플래시 어레이에 저장하는 단계를 더 포함할 수 있다. 일부 실시예에서, 방법은 제1 이미지를 제1 NOR 플래시 어레이에 저장하고 제2 이미지를 제2 NOR 플래시 어레이에 저장하는 단계를 더 포함할 수 있다. 상기 방법은 제1 이미지를 이용해 메모리 장치를 부트 업하는 것에 응답하여, 논리-물리 매핑 데이터를 메모리 장치의 휘발성 메모리 어레이에 저장하는 단계를 더 포함할 수 있다. 상기 방법은 제2 이미지를 이용해 메모리 장치를 부트 업하는 것에 응답하여, 논리-물리 매핑 데이터를 메모리 디바이스에 저장하지 않는 단계를 더 포함할 수 있다.
본 명세서에 특정 실시예가 도시되고 기재되었지만, 해당 분양의 통상의 기술자라면 동일한 결과를 얻기 위해 계산된 배열이 도시된 특정 실시예를 대체할 수 있음을 알 것이다. 본 개시 내용은 본 개시 내용의 하나 이상의 실시예의 변형 또는 수정을 포함하도록 의도된다. 상기 기재는 한정이 아니라, 설명을 위한 것으로 이뤄졌음이 이해되어야 한다. 본 명세서에 특정하게 기재된 상기 실시예 및 그 밖의 다른 실시예의 조합이 상기 기재를 읽은 해당 분야의 통상의 기술자에게 자명할 것이다. 본 개시 내용의 하나 이상의 실시예의 범위는 상기 구조 및 프로세스가 사용되는 다른 응용분야를 포함한다. 따라서, 본 개시 내용의 하나 이상의 실시예의 범위는 이하의 청구 범위 및 이러한 청구범위에 수반되는 전체 등가물을 참조하여 결정되어야 한다.
상기의 상세한 설명에서, 일부 특징은 개시 내용을 간소화하기 위한 목적으로 단일 실시예로 함께 그룹 지어진다. 이 개시 방법은 본 개시 내용의 개시된 실시예가 각각의 청구항에서 명시적으로 언급된 것보다 더 많은 특징을 사용해야 한다는 의도를 반영하는 것으로 해석되어서는 안 된다. 오히려, 이하의 청구항이 반영하는 바와 같이, 발명의 주제는 하나의 개시된 실시예의 모든 특징보다 적다. 따라서, 이하의 청구 범위는 상세한 설명에 포함되며, 각각의 청구 범위는 개별 실시예로서 그 자체로 존재한다.

Claims (22)

  1. 방법으로서,
    복수의 부트 이미지를 생성하는 단계 -
    상기 복수의 부트 이미지 중 제1 부트 이미지는 메모리 어레이를 영구 메모리 구성으로 이용하기 위한 명령을 포함하고,
    상기 복수의 부트 이미지 중 제2 부트 이미지는 상기 메모리 어레이를 비-영구 메모리 구성(non-persistent memory configuration)으로 이용하기 위한 명령을 포함함 - ,
    메모리 장치를 메모리 어레이가 영구 메모리 구성을 갖는 제1 구성으로 부트 업할지 또는 메모리 어레이가 비-영구 메모리 구성을 갖는 제2 구성으로 부트 업할지를 결정하는 단계, 및
    상기 결정에 기초하여 제1 부트 이미지 또는 제2 부트 이미지를 이용해 메모리 장치를 부트 업하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, NOR 플래시 어레이에 상기 제1 부트 이미지 및 제2 부트 이미지를 저장하는 단계를 더 포함하는, 방법.
  3. 제1항에 있어서, 제1 NOR 플래시 어레이에 제1 부트 이미지를 저장하고 제2 NOR 플래시 어레이에 제2 부트 이미지를 저장하는 단계를 더 포함하는, 방법.
  4. 제1항에 있어서, 제1 부트 이미지를 이용해 메모리 장치를 부트 업하는 것에 응답하여, 논리-물리 매핑 데이터를 메모리 장치의 휘발성 메모리 어레이에 저장하는 단계를 더 포함하는, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 제2 부트 이미지를 이용해 메모리 장치를 부트 업하는 것에 응답하여, 논리-물리 매핑 데이터를 메모리 디바이스에 저장하지 않는 단계를 더 포함하는, 방법.
  6. 장치로서,
    제1 메모리 어레이,
    제2 메모리 어레이, 및
    상기 제1 메모리 어레이 및 제2 메모리 어레이에 연결된 로직을 포함하며,
    제2 메모리 어레이는 적어도 두 개의 부트 이미지를 저장하도록 구성되고 제1 메모리 어레이는 상기 적어도 두 개의 부트 이미지 중 어느 것이 사용되는지에 기초하여 동작하도록 구성되는, 장치.
  7. 제6항에 있어서, 상기 로직은 적어도 두 개의 부트 이미지 중 어느 하나로 장치를 부트 업하도록 구성되는, 장치.
  8. 제6항에 있어서, 상기 제1 메모리 어레이는 휘발성 메모리 어레이이고 상기 제2 메모리 어레이는 비휘발성 메모리 어레이인, 장치.
  9. 제6항 내지 제8항 중 어느 한 항에 있어서, 상기 장치는 메모리 디바이스에 연결 가능한, 장치.
  10. 제9항에 있어서,
    상기 메모리 디바이스는 가변 저항 메모리 디바이스이며,
    상기 로직은
    상기 가변 저항 메모리 디바이스를 비-영구 메모리 구성으로 이용하고,
    제1 메모리 어레이의 저장 테이블 부분을 비-주소 추적 동작을 위한 보조 캐시로서 이용하도록 구성되는, 장치.
  11. 제9항에 있어서,
    상기 메모리 디바이스는 가변 저항 메모리 디바이스이며,
    상기 로직은 제1 메모리 어레이에 저장 테이블 데이터를 저장함으로써 가변 저항 메모리 디바이스를 영구 저장소로서 이용하도록 구성되는, 장치.
  12. 제6항 내지 제8항 중 어느 한 항에 있어서, 상기 제2 메모리 어레이는 NOR 플래시 어레이를 포함하는, 장치.
  13. 제6항 내지 제8항 중 어느 한 항에 있어서, 상기 로직은
    상기 적어도 두 개의 부트 이미지 중 제1 부트 이미지를 이용한 제1 부트 업을 수행하고,
    상기 적어도 두 개의 부트 이미지 중 제2 부트 이미지를 이용한 제2 부트 업을 수행하도록 구성된, 장치.
  14. 장치로서,
    휘발성 메모리 어레이,
    복수의 비휘발성 메모리 어레이, 및
    휘발성 메모리 어레이 및 복수의 비휘발성 메모리 어레이에 연결된 로직을 포함하며,
    복수의 비휘발성 메모리 어레이는 각각 부트 이미지를 저장하도록 구성되며 휘발성 메모리 어레이는 어느 저장된 부트 이미지가 사용되는지에 기초하여 구성되는, 장치.
  15. 제14항에 있어서, 복수의 부트 이미지 각각은 장치를 부트 업하도록 사용되도록 구성되는, 장치.
  16. 제14항에 있어서, 상기 복수의 비휘발성 메모리 어레이는 복수의 NOR 플래시 어레이인, 장치.
  17. 제14항 내지 제16항 중 어느 한 항에 있어서, 상기 장치는 복수의 비휘발성 메모리 어레이에 저장된 부트 이미지 중 적어도 하나를 이용해 부팅 가능한, 장치.
  18. 제14항 내지 제16항 중 어느 한 항에 있어서, 상기 장치는 상기 복수의 비휘발성 메모리 어레이 중 하나에 저장된 추가 부트 이미지를 이용해 부팅 가능한, 장치.
  19. 장치로서,
    구성 가능한 휘발성 메모리 어레이 - 구성 가능한 휘발성 메모리 어레이는
    영구 메모리 구성 또는 비-영구 메모리 구성으로 사용되며,
    에러 정정 율 및 레이턴시 율을 조정하도록 구성 가능함 - , 및
    부트 이미지를 저장하도록 각각 구성된 복수의 플래시 메모리 어레이 -
    부트 이미지들 중 제1 부트 이미지가 영구 메모리 구성으로 사용되도록 구성된 구성 가능한 휘발성 메모리 어레이와 연관되며
    부트 이미지들 중 제2 부트 이미지가 비-영구 메모리 구성으로 사용되도록 구성된 구성 가능한 휘발성 메모리 어레이와 연관됨 - 를 포함하는, 장치.
  20. 제19항에 있어서, 로직을 더 포함하며, 상기 로직은
    제1 부트 이미지 또는 제2 부트 이미지를 이용해 장치를 부트 업하며,
    장치가 제1 부트 이미지를 이용해 부팅되는지 또는 제2 부트 이미지를 이용해 부팅되는지에 기초하여, 에러 정정 율을 감소시키고 레이턴시 율을 증가시키도록 구성되는, 장치.
  21. 제19항에 있어서, 로직을 더 포함하며, 상기 로직은
    제1 부트 이미지 또는 제2 부트 이미지를 이용해 장치를 부트 업하며,
    장치가 제1 부트 이미지를 이용해 부팅되는지 또는 제2 부트 이미지를 이용해 부팅되는지에 기초하여 에러 정정 율을 증가시키고 레이턴시 율을 감소시키도록 구성되는, 장치.
  22. 제19항 내지 제21항 중 어느 한 항에 있어서, 제2 부트 이미지와 연관된 구성 가능한 휘발성 메모리 어레이는 에러 정정 율을 감소시키고 레이턴시 율을 증가시키도록 구성되는, 장치.
KR1020227008732A 2019-08-21 2020-07-29 구성 가능 매체 구조 KR102488816B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/546,416 US11237841B2 (en) 2019-08-21 2019-08-21 Configurable media structure
US16/546,416 2019-08-21
PCT/US2020/044036 WO2021034464A1 (en) 2019-08-21 2020-07-29 Configurable media structure

Publications (2)

Publication Number Publication Date
KR20220041936A true KR20220041936A (ko) 2022-04-01
KR102488816B1 KR102488816B1 (ko) 2023-01-18

Family

ID=74645864

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227008732A KR102488816B1 (ko) 2019-08-21 2020-07-29 구성 가능 매체 구조

Country Status (5)

Country Link
US (2) US11237841B2 (ko)
EP (1) EP4018447A4 (ko)
KR (1) KR102488816B1 (ko)
CN (1) CN114270320B (ko)
WO (1) WO2021034464A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11237841B2 (en) * 2019-08-21 2022-02-01 Micron Technology, Inc. Configurable media structure
US11436160B2 (en) * 2019-10-03 2022-09-06 Microsoft Technology Licensing, Llc Protection of data in memory of an integrated circuit using a secret token

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130040637A (ko) * 2011-10-14 2013-04-24 삼성전자주식회사 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치
KR20140058281A (ko) * 2012-11-06 2014-05-14 삼성전자주식회사 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치
US20150039876A1 (en) * 2013-07-31 2015-02-05 Marvell World Trade Ltd. Parallelizing Boot Operations
US20150149144A1 (en) * 2013-11-26 2015-05-28 Lenovo (Singapore) Pte. Ltd. Simulating non-volatile memory
US9983889B1 (en) * 2016-05-13 2018-05-29 Xilinx, Inc. Booting of integrated circuits
KR20180063128A (ko) * 2015-10-06 2018-06-11 자일링크스 인코포레이티드 멀티스테이지 부트 이미지 로딩 및 프로그램가능 로직 디바이스들의 구성

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6421777B1 (en) 1999-04-26 2002-07-16 International Business Machines Corporation Method and apparatus for managing boot images in a distributed data processing system
US8190714B2 (en) 2004-04-15 2012-05-29 Raytheon Company System and method for computer cluster virtualization using dynamic boot images and virtual disk
GB2455106B (en) 2007-11-28 2012-08-01 Icera Inc Memory errors
KR101799292B1 (ko) 2011-04-19 2017-11-20 삼성전자주식회사 전자 장치 및 그 부팅 방법
US9141394B2 (en) 2011-07-29 2015-09-22 Marvell World Trade Ltd. Switching between processor cache and random-access memory
US9389787B2 (en) * 2014-05-15 2016-07-12 Netapp, Inc. System and method for simulating a persistent byte addressable storage device on a persistent block addressable storage device
US9652252B1 (en) * 2014-10-29 2017-05-16 Xilinx, Inc. System and method for power based selection of boot images
TWI588657B (zh) * 2016-03-25 2017-06-21 晨星半導體股份有限公司 雙處理器系統及其控制方法
US10289544B2 (en) * 2016-07-19 2019-05-14 Western Digital Technologies, Inc. Mapping tables for storage devices
US11237841B2 (en) * 2019-08-21 2022-02-01 Micron Technology, Inc. Configurable media structure

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130040637A (ko) * 2011-10-14 2013-04-24 삼성전자주식회사 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치
KR20140058281A (ko) * 2012-11-06 2014-05-14 삼성전자주식회사 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치
US20150039876A1 (en) * 2013-07-31 2015-02-05 Marvell World Trade Ltd. Parallelizing Boot Operations
US20150149144A1 (en) * 2013-11-26 2015-05-28 Lenovo (Singapore) Pte. Ltd. Simulating non-volatile memory
KR20180063128A (ko) * 2015-10-06 2018-06-11 자일링크스 인코포레이티드 멀티스테이지 부트 이미지 로딩 및 프로그램가능 로직 디바이스들의 구성
US9983889B1 (en) * 2016-05-13 2018-05-29 Xilinx, Inc. Booting of integrated circuits

Also Published As

Publication number Publication date
CN114270320B (zh) 2023-03-10
EP4018447A1 (en) 2022-06-29
CN114270320A (zh) 2022-04-01
KR102488816B1 (ko) 2023-01-18
US20210055935A1 (en) 2021-02-25
US20220137980A1 (en) 2022-05-05
US11748112B2 (en) 2023-09-05
WO2021034464A1 (en) 2021-02-25
US11237841B2 (en) 2022-02-01
EP4018447A4 (en) 2023-09-27

Similar Documents

Publication Publication Date Title
TWI756297B (zh) 記憶體系統及其操作方法
US10250281B2 (en) ECC decoder having adjustable parameters
US20190042147A1 (en) Data storage device and data processing system having the same
CN107168886B (zh) 数据存储装置及其操作方法
US9767053B2 (en) Memory controller and memory system including the same
US10528506B2 (en) Uniform performance monitor for a data storage device and method of operation
US20170075824A1 (en) Systems and methods of command authorization
US11966329B2 (en) Address map caching for a memory system
US10114743B2 (en) Memory erase management
US11748112B2 (en) Configurable media structure
US11048625B2 (en) Memory system and operating method thereof
US11409440B2 (en) Systems, methods and apparatus for memory access and scheduling
CN110751972A (zh) 存储器系统及该存储器系统的操作方法
CN113703663A (zh) 支持多租户的存储装置及其操作方法
US11194507B2 (en) Controller and operation method thereof
US10521340B2 (en) Memory system and operating method thereof
TWI798630B (zh) 用以存取快閃記憶體模組的方法、快閃記憶體控制器與電子裝置
KR102645786B1 (ko) 컨트롤러, 메모리 시스템 및 그것의 동작 방법
US9652172B2 (en) Data storage device performing merging process on groups of memory blocks and operation method thereof
US20200250082A1 (en) Controller, memory system, and operating method thereof
US10474366B2 (en) Non-volatile storage system with in-drive data analytics
US11360666B2 (en) Reconfigurable storage controller, storage device, and method of operating storage device
US11450394B2 (en) Controller and operating method thereof
WO2021034597A1 (en) Hierarchical memory apparatus

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant