KR20180131468A - 다시쓰기 가능한 인-플레이스 메모리를 구비한 데이터 저장 디바이스 - Google Patents

다시쓰기 가능한 인-플레이스 메모리를 구비한 데이터 저장 디바이스 Download PDF

Info

Publication number
KR20180131468A
KR20180131468A KR1020180061878A KR20180061878A KR20180131468A KR 20180131468 A KR20180131468 A KR 20180131468A KR 1020180061878 A KR1020180061878 A KR 1020180061878A KR 20180061878 A KR20180061878 A KR 20180061878A KR 20180131468 A KR20180131468 A KR 20180131468A
Authority
KR
South Korea
Prior art keywords
layers
data
group
data storage
volatile memory
Prior art date
Application number
KR1020180061878A
Other languages
English (en)
Other versions
KR102095428B1 (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 KR20180131468A publication Critical patent/KR20180131468A/ko
Application granted granted Critical
Publication of KR102095428B1 publication Critical patent/KR102095428B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • 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/0656Data buffering arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/785Masking faults in memories by using spares or by reconfiguring using programmable devices with redundancy programming schemes
    • G11C29/789Masking faults in memories by using spares or by reconfiguring using programmable devices with redundancy programming schemes using non-volatile cells or latches
    • 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
    • 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/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0638Organizing or formatting or addressing of data
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders
    • 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/7202Allocation control and policies
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/10Aspects relating to interfaces of memory device to external buses
    • G11C2207/102Compression or decompression of data before storage
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2245Memory devices with an internal cache buffer
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/025Geometric lay-out considerations of storage- and peripheral-blocks in a semiconductor storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/18Bit line organisation; Bit line lay-out
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/14Word line organisation; Word line lay-out

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Mram Or Spin Memory Techniques (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Semiconductor Memories (AREA)
  • Computer Hardware Design (AREA)

Abstract

비휘발성 메모리는 데이터 저장 디바이스에 상주할 수 있다.
비휘발성 메모리는 읽기-쓰기 비대칭을 갖는 다시쓰기 가능한(rewritable) 인-플레이스(in-place) 메모리 셀로 구성될 수 있다. 비휘발성 메모리를 제2 그룹의 계층들로 변경함으로써 이벤트에 적응하기 전에, 비휘발성 메모리는 데이터 저장 디바이스의 선택 모듈을 이용해 제1 그룹의 계층들로 분할될 수 있다. 제1 및 제2 그룹의 계층들은 상이하다.

Description

다시쓰기 가능한 인-플레이스 메모리를 구비한 데이터 저장 디바이스{DATA STORAGE DEVICE WITH REWRITABLE IN-PLACE MEMORY}
다양한 실시예들에 따른 데이터 저장 디바이스는 읽기-쓰기 비대칭을 갖는 다시쓰기 가능한(rewritable) 인-플레이스(in-place) 메모리 셀로 구성되는 비휘발성 메모리를 갖는다. 비휘발성 메모리를 제2 그룹의 계층들로 변경함으로써 이벤트에 적응하기 전에, 비휘발성 메모리는 데이터 저장 디바이스의 선택 모듈을 이용해 제1 그룹의 계층들로 분할된다. 제1 및 제2 그룹의 계층들은 상이하다.
도 1은 다양한 실시예들이 실행될 수 있는 예시적인 데이터 저장 시스템의 블록 표현을 나타낸다.
도 2a 및 도 2b는 각각 도 1의 데이터 저장 시스템에 채용될 수 있는 예시적인 데이터 저장 디바이스의 일부분들을 나타낸다.
도 3a 내지 도 3c는 각각 도 1의 데이터 저장 시스템에서 활용될 수 있는 예시적인 메모리 셀의 일부분들을 도시한다.
도 4는 도 1의 데이터 저장 시스템과 연관된 예시적인 동작 데이터를 플롯화한다.
도 5a 및 도 5b는 각각 다양한 실시예들에 따라 동작되는 예시적인 데이터 저장 디바이스의 일부분들을 도시한다.
도 6은 일부 실시예들에 따라 배열된 예시적인 데이터 저장 디바이스의 일부분들의 블록 표현을 예시한다.
도 7은 다양한 실시예들에 따라 구성된 예시적인 데이터 저장 디바이스의 일부분들의 블록 표현이다.
도 8은 도 1의 데이터 저장 시스템에 채용될 수 있는 예시적인 데이터 저장 디바이스의 일부분의 블록 표현을 나타낸다.
도 9는 일부 실시예들에 따라 배열된 예시적인 데이터 저장 디바이스의 일부분의 블록 표현을 도시한다.
도 10a 내지 도 10d는 각각 다양한 실시예들에 따라 형성된 예시적인 리소그래피 조립체의 일부분을 나타낸다.
도 11은 일부 실시예들에 따라 도 1의 데이터 저장 시스템을 이용해 실행되는 예시적인 인-플레이스 메모리 활용 루틴의 흐름도이다.
데이터가 생성, 전송 및 저장되는 양이 증가함에 따라 데이터 저장소의 속도, 비용, 크기 및 수명은 압박을 받는다. 회전하는 자기 매체를 채용하는 하드 디스크 드라이브(HDD)는 장시간 동안 데이터를 신뢰성 있게 저장할 수 있지만, 비교적 큰 물리적 크기 및 느린 데이터 액세스 속도는 많은 컴퓨팅 디바이스에서 HDD의 채택을 제한해 왔다. NAND 플래시 메모리를 채용하는 솔리드 스테이트 드라이브는 빠른 데이터 액세스 속도와 더 작은 물리적 크기를 제공할 수 있지만 HDD보다 비용이 더 높고 수명이 더 낮다.
플래시 메모리의 상대적으로 짧은 수명은 데이터 액세스 레이턴시(latency)를 줄이고자 데이터를 반복적으로 쓰고, 이동하고, 삭제하는 데이터 관리 구조들과 스킴들에 의해 더욱 악화되었다. 플래시 메모리가 비트 또는 바이트 어드레스가능(addressable)하지 않고 대신에 단순히 페이지/섹터 어드레스가능하다는 사실은 메모리의 짧은 수명을 악화시키며, 비트/바이트 어드레스가능한 휘발성 메모리에 비해 복잡한 데이터 관리 및 상대적으로 긴 데이터 액세스 시간을 초래한다. 그러나, 휘발성 메모리가 데이터를 보유하도록 계속적으로 전력을 유지할 것을 요구하는 것은 이러한 유형의 메모리가 데이터 저장 디바이스에 적용될 가능성을 제한하게 된다.
따라서, 다양한 실시예들은 일반적으로 플래시 메모리보다 더 빠른 데이터 액세스 속도, HDD보다 더 작은 물리적 크기 및 비휘발성 데이터 보유를 선호하는 다시쓰기 가능한 인-플레이스 메모리를 활용하는 데이터 저장 구조 및 동작에 관한 것이다. 상대적으로 빠른 데이터 액세스 속도로 비휘발성 메모리에 데이터를 저장하는 능력은 데이터 보유, 읽기 및 쓰기를 최적화할 수 있는 다양한 데이터 관리 구조들 및 스킴들을 허용한다. 한편, 다시쓰기 가능한 인-플레이스 메모리의 상대적으로 작은 물리적 크기는 데이터 저장 디바이스가 스마트폰 및 태블릿 컴퓨터와 같은 최신 컴퓨팅 디바이스에서 구현될 수 있을 만큼 충분히 소형이면서도, 대용량 데이터 센터들에 채용될 수 있을 만큼 충분히 견고하도록 허용한다.
도 1은 본 발명의 다양한 실시예들이 실시될 수 있는 예시적인 데이터 저장 시스템(100)을 나타낸다. 시스템(100)은 임의의 수의 데이터 저장 디바이스(102)를 유선 및/또는 무선 네트워크를 통해 임의의 수의 호스트(104)에 연결할 수 있다. 하나 이상의 네트워크 제어기(106)는 하드웨어 또는 소프트웨어 기반일 수 있고, 데이터 요청 처리 및 다양한 연결된 데이터 저장 디바이스(102)로의 분배를 제공할 수 있다. 다수의 데이터 저장 디바이스(102)는 상이한 데이터 용량, 동작 파라미터 및 데이터 액세스 속도를 갖는 유사하거나 상이한 메모리 유형일 수 있다는 것에 주목한다.
일부 실시예들에서, 시스템(100)의 적어도 하나의 데이터 저장 디바이스(102)는 정적 랜덤 액세스 메모리(SRAM)와 같은 온-칩 버퍼(110) 및 동적 랜덤 액세스 메모리(DRAM)와 같은 오프-칩 버퍼(112)에 연결된 마이크로프로세서 또는 프로그래머블 제어기와 같은 로컬 프로세서(108), 및 비휘발성 메모리 어레이(114)를 갖는다. 도 1의 비제한적인 실시예는 부분적으로 개략적으로 도시된 NAND 플래시 메모리를 포함하는 비휘발성 메모리 어레이(114)를 제공하며, 제1(BL1) 및 제2(BL2) 비트 라인들은 제1(116), 제2(118), 제3(120) 및 제4(122) 플래시 메모리 셀에 저장된 데이터를 쓰기 및 읽기하기 위해 제1(WL1) 및 제2(WL2) 워드 라인들 및 제1(SL1) 및 제2(SL2) 소스 라인들과 동작한다.
각각의 비트 라인들은 메모리 어레이(114)의 최소 해상도인 메모리의 제1(124) 및 제2(126) 페이지에 대응된다는 것에 주목한다. 즉, 플래시 메모리의 구성은 플래시 셀이 개별적으로 인-플레이스(in-place) 다시쓰기 가능하지 않고 대신에 페이지 단위(page-by-page)로 다시쓰기 가능하다. 이러한 낮은 데이터 해상도는 플래시 메모리가 많은 쓰기/다시쓰기 사이클 후에 마모된다는 사실과 더해져 비트 어드레스가능하면서도 개별적으로 액세스 가능하고 개별적으로 인-플레이스 다시쓰기 가능한 셀들을 갖는 메모리와 비교할 때, 수많은 성능 병목현상 및 동작 비효율성에 대응된다. 따라서, 다양한 실시예들은 비트 어드레스가능하고 다시쓰기 가능한 인-플레이스 메모리를 분산형 네트워크 데이터 저장 시스템(100)의 부분일 수 있는 데이터 저장 디바이스(102) 내에 구현하는 것에 관한 것이다.
도 2a 및 도 2b는 다양한 실시예들에 따른 데이터 저장 디바이스에서 활용될 수 있는 예시적인 메모리 어레이(140)의 일부분들을 나타낸다. 메모리 어레이(140)는 3차원 어레이의 일부로서 Z 축을 따라 수직으로 적층된 복수의 별개의 메모리 셀(142)을 갖는다. 메모리 셀(142)들의 단일 다이가 활용될 수 있는 것으로 고려되지만, 그러한 구성은 데이터 용량을 감소시키고 모든 이용가능한 공간을 활용하지 못한다. 따라서, 다양한 실시예들은 각각 X-Y 평면에 상주하는(reside) 메모리 셀(142)들의 다수의 다이를 수직으로 적층한다. 그러나 수직으로 적층된 셀(142)은 반드시 도 2a에 도시된 방식으로 수직 정렬될 필요는 없다.
NAND 플래시 메모리 및 다른 솔리드 스테이트 데이터 저장 셀들을 사용하면, 트랜지스터 또는 다른 별개의 선택 컴포넌트가 각각의 셀에 통합되어 귀중한 공간을 차지하고 추가 전력을 소비하며 데이터 액세스 동작에 레이턴시를 부가한다. 메모리 어레이(140)의 각각의 메모리 셀(142)은 트랜지스터 또는 다른 물리적 별개의 선택 컴포넌트 없이 구성되며 대신에 저항 유닛(146)과 접촉하는 선택 층(144)을 갖는다. 선택 층(144)은 미리결정된 시간들에 저항 유닛(146)으로의 전기 흐름을 방지하고 다른 미리결정된 시간들에 저항 유닛(146)으로의 전기 흐름을 허용하는 상이한 재료들의 단일 재료 또는 라미네이션일 수 있다. 비제한적인 예로서, 선택 층(144)은 금속-절연체 전이(metal-insulator transition, MIT) 재료, 오보닉 임계 스위치(OTS) 또는 다른 전압 조절 구조일 수 있다.
도 1에 도시된 바와 같이, 트랜지스터 또는 다른 선택 컴포넌트의 포함은 각각의 선택 컴포넌트를 활성화하는 소스 라인에 대응된다. 선택 층(144)을 위해 임의의 선택 컴포넌트를 제거하는 것은 수직으로 적층된 메모리 셀(142)로 하여금, 비트 라인(BL)들이 워드 라인(WL)들과 동작하여 하나 이상의 셀(142)들을 액세스하는 크로스-포인트 상호접속 구성에 의해 개별적으로 액세스가능하도록 허용한다. 라인(148)에 의해 예시된 바와 같이, 비트 라인과 워드 라인 사이의 유도된 전위차는 단일 메모리 셀(142)을 통한 전기적 흐름을 유도한다. 단일 비트를 선택하는 능력, 따라서 비트 어드레스가능한 것은 메모리 셀(142)들의 의도하지 않은 액세스에 대한 염려없이 메모리 어레이(140)에 셀들이 밀집하게 패키징되도록 허용한다.
메모리 셀(142)들의 상기 구성은 비교적 낮은 전력 소모를 제공하여서, 읽기 및/또는 쓰기 동작 중에 비선택된 물리적으로 인접한 셀(142)들의 교란에 대한 낮은 위험도에 대응되는 것에 주목한다. 도 2b의 평면도는 메모리 셀(142)들이 다양한 비트 및 워드 라인들에 대해 단일 다이를 따라 위치될 수 있는 방식을 제공한다. 수직으로 적층된 메모리 셀(142)들 사이의 비트 라인들을 활용함으로써, 제어 상호접속부들의 전체 수는 감소될 수 있으며, 이는 보다 밀집하게 패키지된 메모리 어레이(140)를 제공한다.
도 3a 내지 도 3c는 각각 메모리 어레이(140)에서 활용될 수 있는 예시적인 비휘발성 저항 유닛들의 라인 표현들을 전달한다. 도 3a는 비정질(166) 저저항 상태와 결정질 고저항 상태 사이에서 전이하도록 전류에 반응하는 칼코겐화물 유리 재료(164)가 저항성 영역(162)을 점유하는 상변화형 저항 유닛(160)을 나타낸다. 다결정 상태와 비정질 상태 사이의 전환은 신뢰성 있게 효율적으로 순환될 수 있다. 그러나, 쓰기/스위칭 전류는 상변화 저항 유닛(160)에 비해 비교적 높을 수 있다.
도 3b는 필라멘트 유형 저항 유닛(170)을 나타내며, 여기서 저항 구역(162)은 영역(162)을 통과하는 쓰기 전류의 흐름에 의해 하나 이상의 전기 전도성 필라멘트(172)가 유도될 때까지 높은 저항성을 갖는 재료를 포함한다. 필라멘트들의 형성은 간단하고 효율적일 수 있지만, 필라멘트(들)가 유전체 재료(174)에 박히고(engrained) 고저항 상태와 저저항 상태 사이의 마진을 감소시킬 수 있다고 고려된다.
상변화(160) 및 필라멘트(170) 유형 유닛들에서의 도전 경로의 형성은 일부 데이터 저장 배열들에서는 효율적일 수 있지만, 반드시 모든 메모리 어레이들에서 그런 것은 아니다. 따라서, 저항 유닛은 상대적인 자기 배향(magnetic orientation)을 통해 상이한 저항 상태들을 생성할 수 있다. 도 3c의 자기 유형 저항 유닛(180)은 유전체 스페이서 층(182)이 자기 프리(free) 층(184)과 자기 기준 층(186) 사이에 배치되는 방식을 도시한다. 기준 층(186)은 고정된 자화(188)로 설정되는 한편, 프리 층(184)은 고정된 자화(188)에 대하여 유닛(180)으로 상이한 저항 상태들을 제공하는 다수의 상이한 자기 배향(190)으로 설정될 수 있다. 저항 유닛(180)은 프리 자화(188)의 스위칭을 보다 효율적으로 만드는 기능을 하는 추가적인 스핀 분극 층들을 스핀 토크 배열과 같이 가질 수 있다.
메모리 어레이에서 상이한 유형의 저항 유닛들을 활용하는 능력은 데이터 저장 디바이스가 데이터 저장 디바이스의 동작 및 데이터 저장 능력을 최적화하도록 허용한다. 비제한적인 예로서, 메모리 어레이는 상이한 유형의 저항 유닛들을 상이한 다이에 채용할 수 있으며, 이는 동작 조건 및 데이터 저장 파라미터들의 선택가능한 다양성을 제공할 수 있다. 메모리 어레이 내의 저항 유닛의 유형 또는 다양성과 관계없이, 메모리 셀은 쓰기 동작을 완료하기 위해 드는 시간량이 읽기 동작보다 상이하게 되는 비대칭 액세스를 겪을 수 있다. 즉, 선택 층(144)에 대한 트랜지스터 또는 다이오드와 같은 개별적인 선택 컴포넌트의 교체는 비대칭 액세스를 초래할 수 있다. 이러한 비대칭 액세스는 이전의 읽기 또는 쓰기 동작이 완료되었는지에 대한 고려 또는 평가없이 많은 양의 데이터 쓰기 및 읽기가 수행될 수 있는 데이터 저장 디바이스에서 문제가 될 수 있다.
상변화형 저항 유닛(160)을 채용하는 메모리 어레이의 경우, 예컨대 읽기에 대해 7마이크로초의 레이턴시이고 쓰기에 대해 10+마이크로초의 레이턴시인 것과 같이, 읽기보다 쓰기 액세스를 완료하는 데 훨씬 더 많은 시간이 들 수 있다는 것에 주목한다. 심지어 읽기/쓰기 비대칭은 읽기 동작과 비교하여 쓰기 동작을 완료하는 데 2배 또는 심지어 한 자릿수(order of magnitude) 더 긴 것과 같이 더 클 수 있다. 이러한 문제들은 휘발성 메모리, HDD 저장 또는 NAND 플래시 저장에서 다루어지지 않은 흥미로운 데이터 관리 상황들을 일으킨다.
도 4는 다양한 실시예들에 따라 비대칭 메모리 셀들을 채용하는 메모리 어레이와 연관된 시간 경과에 따른 전압의 예시적인 동작 데이터를 플롯화한다. 메모리 어레이의 메모리 셀들의 구성은 메모리 셀의 저항 상태 및 연관 바이너리 상태에 각각 액세스하거나 수정하기 위한 상이한 읽기(VREAD) 및 쓰기(VWRITE) 임계 전압들에 대응된다.
읽기 및 쓰기 둘 모두의 임계 전압 미만인 제1 전압(202)이 하나 이상의 메모리 셀에 의해 수신되는 경우, 각각의 메모리 셀의 선택 층은 전압이 셀을 통과하는 것을 방지하며, 이는 의도하지 않은 저항 변화가 데이터 액세스 동작을 저하시키는 것을 방지한다. 전압(204/206)이 읽기 임계 전압보다 큰 경우, 메모리 셀의 선택 층은 전압이 셀을 통과하도록 허용한다. 저항 유닛의 저항 상태를 변경하기에 충분히 크지 않은 전압(204)에 대해, 직교 배향 비트 및 워드 라인들을 통한 신호를 통해 기존의 저항 상태가 읽기될 것이다.
메모리 셀을 통한 쓰기 전압(206)의 통과는 저항 유닛의 저항 상태를 변화시킬 것이다. 그러나, 쓰기 전압이 저항 유닛을 통과한 후에 메모리 셀이 읽기 전압(210)으로 액세스될 수 있는 저항 상태로 설정되기까지 안정화 시간(settle time)(208)이 존재한다. 도 4에 예시된 바와 같이, 안정화 시간(208)은 메모리 셀의 읽기/쓰기 비대칭에 직접적인 원인이 된다. 따라서, 메모리 어레이(140)와 연관된 상대적으로 높은 데이터 용량 및 빠른 읽기 레이턴시는 데이터 저장 디바이스가 셀이 쓰여지는 모든 경우마다 각각의 메모리 셀에 대해 비교적 긴 안정화 시간을 모니터링하고 고려하도록 요구하는 쓰기 비대칭에 의해 저하될 수 있다.
따라서, 다양한 실시예들은 비대칭 읽기/쓰기 동작을 겪는 도 2의 비휘발성의 비트 어드레스가능하고 다시쓰기 가능한 인-플레이스 메모리의 사용을 최적화하는 구조 및 방법들에 관한 것이다.
도 5a 및 도 5b는 각각 도 2의 메모리 어레이를 갖는 데이터 저장 디바이스(220)에 대한 예시적인 쓰기 및 읽기 동작들의 블록 표현들을 전달한다. 쓰기 동작은 도 5a에 도시되며, 웨이퍼 칩(222) 상의 SRAM 버퍼(110) 및/또는 오프-칩(222)으로 위치된 DRAM 버퍼(112)로 흐르는 쓰기 요청의 데이터로 시작한다. 이어서, 쓰기 데이터는 펌웨어, 소프트웨어 또는 하드웨어 동작을 실행하는 로컬 제어기에 의해 지시받은 대로 순차적으로 압축(224) 및 암호화된다(226).
압축 및 암호화된 쓰기 데이터는 데이터의 다수의 페이지 및/또는 섹터로 구성될 수 있는 메모리 유닛(MU)(230)들로서 쓰기 캐시(228)에 컴파일링된다. 다시쓰기 가능한 인-플레이스 비휘발성 메모리들의 경우 페이지 접근 가능한 플래시 메모리와 대조적으로 개별 비트가 액세스 가능하기 때문에 MU(230)들의 컴파일링은 요구되지 않는 것에 주목한다. 쓰기 데이터가 맵 유닛(230)들로 구성되는지 여부에 관계없이, 쓰기 캐시(228)는 데이터가 비휘발성 메모리(NV MEMORY)(232)에 쓰기될 때까지 일시적으로 쓰기 데이터를 저장할 수 있으며, 메모리(232)의 적어도 일부분은 도 2의 비대칭 메모리 셀(142)들을 갖는다.
비휘발성 메모리(232)의 비대칭 셀들에 쓰여진 데이터로 인해, 읽기 동작은 안정화 시간(208) 이후까지 비휘발성 메모리(232)로부터의 데이터에 신뢰성 있게 액세스할 수 없다. 따라서, 일부 실시예들에서, 읽기 동작은 도 5b에 도시된 바와 같이, 쓰기 캐시(228) 또는 비휘발성 메모리(232)로부터 데이터를 검색하기 위한 데이터 저장 디바이스의 선택 모듈(234)을 포함한다. 쓰기 캐시(228)는 DRAM 또는 NAND 플래시와 같이 비휘발성 메모리(232)와 상이한 유형의 메모리이고, 읽기 동작은 호스트에 전송되기 전에 복호화 및 압축 해제를 수반할 것이라는 것에 주목한다. 따라서, 선택 모듈(234)은 도 2의 비휘발성 메모리 셀(142)들의 고속 읽기 속도의 장점을 취하면서 셀(142)들의 안정화 시간으로 인해 연장된 쓰기 레이턴시를 겪지 않도록 다수의 상이한 유형의 메모리를 지능적으로 관리한다.
제한 또는 필수는 아니지만, 선택 모듈(234)은 하나 이상의 호스트로부터의 데이터 액세스의 만족도를 최적화하기 위해 다양한 지능적 평가를 수행할 수 있다.
도 6은 도 2의 메모리 어레이(140)를 채용하는 예시적인 데이터 저장 디바이스(240)의 일부분의 블록 표현이다. 선택 모듈(234)은 서비스될 쓰기 또는 읽기 요청에 대한 최적의 목적지 및 조건을 평가하기 위해 적어도 타이머(242), 활동 로그(244), 센서(246) 및 예측 회로(248)에 대한 액세스를 갖는다.
호스트로부터의 쓰기 또는 읽기 요청을 수신한 후의 임의의 시간에, 선택 모듈(234)은 단일 데이터 저장 디바이스뿐만 아니라 전체 데이터 저장 시스템의 현재 상태를 액세스할 수 있다. 임의의 유형 및 개수의 입력이 선택 모듈(234)에 의해 동시적 및/또는 순차적으로 평가될 수 있지만, 일부 실시예들은 특히 쓰기 큐에 대기중인 쓰기의 상태를 수신하는데, 이는 대기중인 쓰기 요청들과 연관된 데이터의 체적, 크기 및 버퍼 특성들일 수 있다. 선택 모듈(234)은 전력 소비, 평균 데이터 액세스 레이턴시 및 비트 에러율과 같은 시스템 성능 메트릭들을 더 수신할 수 있다.
대기중인 쓰기의 지정된 쓰기 위치는 데이터의 버전과 함께 선택 모듈(234)로 대기중인 데이터 쓰기에 관한 이력 정보를 제공한다. 잠재적으로 불리한 데이터 액세스 상황을 식별하기 위해 임의의 수 및 유형의 환경 조건들이 센서(246)로 폴링(poll)되고/되거나 검출될 수 있다. 예를 들어, 온도 센서(246)는 원격 호스트로부터 수신된 폴링된 주변 온도와 비교하여 데이터 저장 디바이스 내부의 온도를 확인하는 데 사용될 수 있다. 습도, 진동 및 기류와 같은 다른 환경 조건들도 또한 데이터 저장 디바이스 및 시스템의 보다 포괄적인 상태를 제공하기 위해 폴링 및/또는 감지될 수 있다.
선택 모듈(234)은 서비스 데이터 액세스 요청과 연관된 실행 및 시스템 조건들을 로그(log)할 수 있다. 이전에 서비스된 데이터 액세스 요청들에 관한 정보의 수집은 선택 모듈(234)이 시스템 조건들에 보다 지능적으로 반응하고 미래의 데이터 액세스 요청들의 서비스를 최적화하기 위한 동작들을 사전적으로(proactively) 개시하도록 허용한다. 즉, 선택 모듈(234)은 현재의 디바이스/시스템 조건들과 함께 로그(244)로부터의 데이터를 취하여, 반응적 동작과 대기중인 읽기 및 쓰기 요청들의 서비스를 최적화할 수 있는 사전적 동작을 지능적으로 식별할 수 있다. 결과적으로, 선택 모듈(234)은 휘발성 버퍼와 비휘발성 메모리 간에 반응적으로 그리고 사전적으로 데이터를 이동하고, 쓰기 위치를 변경하고, 읽기 위치를 변경할 수 있다.
대기중인 데이터 액세스 요청들을 서비스하도록 동작을 지능적으로 실행하기 위해 데이터 저장 디바이스 및 시스템의 동작 상태를 평가 및 결정하는 능력은 데이터 저장 디바이스가 변화하는 조건들에 신속히 적응하고 요청들을 서비스하도록 허용한다. 비대칭 다시쓰기 가능한 인-플레이스 메모리와 관련하여, 선택 모듈(234)은 지능적으로, 안정화 시간 내에 데이터에 대한 읽기 요청의 위험이 낮을 때 비휘발성 메모리에 쓰기하고, 버퍼/캐시 메모리에 데이터를 보유하여 읽기 요청을 서비스하고, 상이한 버퍼들/캐시 위치들로 데이터를 이동하여 최저의 읽기 레이턴시를 제공할 수 있다.
선택 모듈(234)이 대기중인 데이터 요청의 서비스를 최적화하기 위해 반응적이고 사전적으로 동작을 수행하면, 유효한 데이터의 현재 위치는 강건한(robust) 매핑 스킴 없이는 식별하기가 어려울 수 있다. 논리 블록 주소(logical block address, LBA)를 물리 블록 주소(physical block address, PBA)로 매핑하는 것은 물론 LBA를 LBA로 매핑하는 것은 처리 및 데이터 용량 측면에서, 특히 온-칩 SRAM 버퍼에서 비용이 클 수 있다. 안정화 시간 중에 데이터에 대한 읽기 요청들을 서비스하기 위해 2개의 서로 상이한 위치에 데이터를 중복으로 보유하면 매핑이 더욱 복잡해 질 수 있다. 따라서, 일부 실시예들은 LBA-대-PBA 및 LBA-대-LBA 매핑 동작들에 대한 저장 위치 및 처리 시간을 지정하기 위해 선택 모듈(234)을 활용한다.
도 7은 도 2의 메모리 어레이(140)를 채용하는 데이터 저장 디바이스에서 구현될 수 있는 예시적인 매핑 스킴(250)의 블록 표현을 예시한다. 데이터 저장 디바이스 내의 다수의 상이한 유형의 메모리의 존재는 선택 모듈(234)이 각각의 유형의 메모리의 성능 및 현재 상태를 최적화하도록 복수의 상이한 데이터 맵을 생성하도록 허용한다.
도 7에 도시된 비제한적인 예에서, 선택 모듈(234)은 휘발성 DRAM, SRAM 또는 비휘발성 플래시 메모리와 같은 제1 유형의 메모리(254)에 제1 레벨 맵(252)을 생성할 수 있다. 일부 실시예들에서, 제1 레벨 맵(252)은 12개 엔트리의 그래뉼(granule)을 지시하는 엔트리들을 포함하는 적어도 하나의 LBA-대-PBA의 부트 맵(boot map)을 포함한다. 제1 레벨 맵(252)은 일반적으로 제1 레벨 맵(252)보다 큰 해상도로 LBA-대-PBA의 변환이 포함되는 제2 레벨 맵(256)의 논리적 또는 물리적 위치로 제어기를 지향시킬 수 있다. 즉, 제2 레벨 맵(256)은 호스트 제공 데이터 섹터를 보유하는 제1 그래뉼을 가리키는 로컬 엔트리들을 포함할 수 있다. 제1(252) 및 제2(256) 레벨 맵의 결과로 데이터 읽기, 쓰기 및 업데이트를 효율적으로 처리할 수 있다.
선택 모듈(234)은 섀도우 데이터의 임시 위치들에 관한 정보를 포함하는 제1 유형의 메모리(254)에 별개의 섀도우 맵(258)을 생성할 수 있다. 섀도우 데이터는 데이터가 비휘발성 메모리에 영구적으로 상주할 때까지 단기간 동안 중복 저장되는 데이터인 것으로 이해된다. 섀도우 맵(258)은 단순하거나 정교할 수 있고, 데이터의 하나 이상의 버전이 식별될 수 있다. 예를 들어, 최신 버전의 데이터가 데이터에 대한 읽기 요청에 의해 검색되는 것을 보장하도록 섀도우(258), 제1 레벨(252), 및 제2 레벨(256)에 의해 연속적인 데이터의 버전들이 추적될 수 있다. 섀도우(258) 및 레벨 맵들(252/256)은 공통되거나 상이한 제어기들에 의해 동시에 쓰기, 읽기 및 업데이트될 수 있다는 것에 주목한다.
섀도우(258) 및 레벨 맵들(252/256)에 의해 추적되는 데이터는 결국 비트 어드레스가능하고 다시쓰기 가능한 인-플레이스 메모리(262)인 주 데이터 저장소(260)에 쓰여진다. 도시된 바와 같이, 주 데이터 저장소(260) 및 제2 레벨 맵(256)은 각각 비휘발성 다시쓰기 가능한 인-플레이스 메모리(262)에 저장된다. 그러나, 임의의 수 및 유형의 메모리가 각각의 맵들(252/256/258)에 활용될 수 있기 때문에 그러한 구성은 필수적이거나 제한적이지 않다. 예를 들어, 제1 레벨 맵(252)은 직렬 NOR 플래시에 저장될 수 있고, 섀도우 맵(258)은 클러스터 SRAM에 저장될 수 있고, 제2 레벨 맵(256)은 DDR DRAM에 저장될 수 있다. 적어도 2개의 상이한 유형의 메모리(254/262)의 사용은 선택 모듈(234)이 메모리 내의 다양한 맵들(252/256/258)을 지능적으로 생성 및 유지하도록 허용하고, 이는 데이터 읽기 및 쓰기 요청들의 서비스가 가장 효율적이 되도록 허용한다.
선택 모듈(234)은 변화하는 시스템 및 디바이스 조건들을 수용하도록 다양한 맵들(252/256/258)의 크기, 목적 및 메모리 위치를 변경할 수 있는 것으로 고려된다. 선택 모듈(234)은 가상화를 통해 메모리 및/또는 맵을 추가로 변경할 수 있다. 즉, 선택 모듈(234)은 공통 메모리(254/256) 내에 위치됨에도 불구하고 소프트웨어/펌웨어에서 독립적으로 동작하는 가상 머신(virtual machine)들을 생성할 수 있다.
이러한 가상화 능력은 검출되고/되거나 예측된 시스템과 디바이스 조건들에 선택 모듈(234)이 실시간으로 적응하도록 허용하여 데이터 읽기 및 쓰기 레이턴시들을 최적화할 수 있게 한다.
도 8은 다양한 실시예들에 따라 메모리의 가상화를 채용하는 예시적인 데이터 저장 디바이스(270)의 일부분의 블록 표현을 예시한다. 하나 이상의 상이한 쓰기 캐시(272)는 어레이(140)와 같은 비트 어드레스가능하고 다시쓰기 가능한 인-플레이스 메모리를 포함하는 비휘발성 메모리(274) 내에 공급될 수 있다. 데이터 저장 디바이스(270)는 다수의 별개의 비휘발성 메모리(274)로 구성될 수 있지만, 일부 실시예들은 상이한 메모리 계층(tier)들로 논리적으로 분리된 단일 비휘발성 메모리(274) - 가상화된 저장소로 특징지어질 수 있음 - 를 포함한다.
메모리(274)는 적어도 하나의 레벨 맵(252/256) 및 잠재적으로 섀도우 맵(258)에 의해 맵핑되는 임의의 수의 계층들로 가상화될 수 있다. 필수적이거나 제한적이지는 않지만, 도 8에 도시된 가상화된 저장 스킴은 본질적으로 계층적이며, 제1 PBA 범위에 할당된 제1 계층(276), 제2 PBA 범위에 할당된 제2 계층(278), 제3 PBA 범위에 할당된 제3 계층(280) 및 제4 PBA 범위에 할당된 제4 계층(282)을 갖는다. 각각의 계층들(276/278/280/282)의 중첩되지 않는 범위는 대안적으로, LBA들에 할당될 수 있다.
실선 화살표로 도시된 바와 같이, 데이터는 선택 모듈 및/또는 로컬 제어기에 의해 지시받은 대로 임의의 가상화된 계층들 사이에서 흐를 수 있다. 예를 들어, 데이터는 업데이트 활동량에 의존하여 각각의 계층들(276/278/280/282)을 통해 연속적으로 이동할 수 있고, 그 결과 가장 덜 액세스된 데이터가 제4 계층(282)에 상주하는(resident) 한편, 가장 빈번하게 업데이트된 데이터가 제1 계층(276)에 상주한다. 다른 비제한적인 예는 다른 잠재적인 비연속적 계층들로 데이터를 이동하기 전에 데이터를 제1 계층(276)에 초기에 배치하여 데이터 크기, 보안 및/또는 호스트 원점에 기초하여 보다 효율적인 저장 및 검색을 허용하는 것을 포함한다.
비휘발성 메모리(274)의 다시쓰기 가능한 인-플레이스 메모리는 각각의 계층들(276/278/280/282)의 적응적 가상화를 허용한다는 것이 이해될 수 있다. 즉, 공통 페이지의 비-선택된 데이터는 저장할 필요 없이 특정 비트, 바이트 및 섹터에 데이터를 쓰는 능력은 가상화된 계층들이 선택 모듈(234)에 의해 결정된 시스템 및 디바이스 필요사항(needs)에 기초하여 진화하는 크기, 할당 콘텐츠 및 존재여부를 갖도록 허용한다. 따라서, 도 8의 가상화된 스킴은 데이터 저장 시스템 및 디바이스의 실시간 조건들에 대한 데이터 저장을 최적화하기 위해 선택 모듈(234)에 의해 시간에 걸쳐 어떠한 방식으로든 변경될 수 있다.
비휘발성 메모리(274)의 일부분들의 가상화는 예측된 데이터 저장 활동 및/또는 동작 이벤트들을 충족시키기 위해 사전적 동작들을 취할 수 있는 선택 모듈(234)의 능력에 의해 보완된다. 도 9는 다양한 실시예들에 따라 동작되는 예측 회로(248)를 갖는 선택 모듈(234)을 채용하는 예시적인 데이터 저장 디바이스(290)의 일부분의 블록 표현을 도시한다. 이러한 동작 중에 예측 회로(248)는 환경 조건들 뿐만 아니라 현재 및 과거의 데이터 저장 동작들에 관한 여러 가지 다양한 정보를 검출 및/또는 폴링할 수 있다. 예측 회로(248)는 선택 모듈(234)의 하나 이상의 실시간 센서(246)를 활용하여 디바이스 동작 온도, 주변 온도 및 전력 소비와 같은 하나 이상의 상이한 환경 조건을 검출할 수 있다는 것에 주목한다.
도 9에 도시된 바와 같이, 하나 이상의 파라미터의 동시적 및/또는 순차적 입력으로, 예측 회로(248)는 선택 모듈(234)에 의해 지시받은 대로 수용될 수 있는 미래 이벤트들의 발생을 예측할 수 있다. 예를 들어, 선택 모듈(234)은 예측된 이벤트를 수용하기 위한 데이터 크기, 위치 및 보안과 같은 데이터를 수정할 수 있다. 다른 비제한적인 예에서, 선택 모듈(234)은 섀도우 데이터의 중복 쓰기를 비휘발성 메모리 이외의 하나 이상의 위치로 지시할 수 있으며, 이는 비휘발성 메모리가 그의 안정화 시간 내에 있는 동안 데이터의 효율적인 읽기를 제공할 수 있다.
포괄적(exhaustive)인 것은 아니지만, 예측 회로(248)는 큐 내의 각각의 대기중인 쓰기 요청의 분량(volume) 및 크기와 같은 쓰기 큐의 현재 상태에 관한 정보를 수신할 수 있다. 예측 회로(248)는 또한 쓰기 레이턴시, 읽기 레이턴시 및 에러율과 같은 임의의 수의 시스템/디바이스 성능 메트릭들을 폴링하거나 결정할 수 있다. 대기중이거나 쓰기중인 데이터의 버전은 예측 회로(248)에 의해 평가되어 데이터가 얼마나 자주 업데이트되는지를 구축할 수 있다. 대기중이고 이전에 완료된 데이터 쓰기의 할당된 쓰기 위치는 비휘발성 메모리의 마모 레벨링 동작을 수행하기 위해 예측 회로(248)에 의해 활용될 수 있다.
하나 이상의 환경 조건이 실시간 감지되고/되거나 예측 회로(248)에 의해 폴링되어 미래의 데이터 저장 활동을 나타낼 가능성이 있는 추세 및 상황을 결정한다. SRAM 또는 NOR 플래시와 같은 하나 이상의 섀도우 버퍼 내의 공간의 가용성은 예측 회로(248)에게 버퍼(들)의 성능을 식별하며, 이와 함께 미래의 대기중인 쓰기 요청들을 처리하기 위한 시스템의 용량을 나타낼 수 있다. 예측 회로(248)는 하나 이상의 알고리즘(292) 및 이전 데이터 저장 활동의 적어도 하나의 로그(294)를 채용하여 이벤트들 및 읽기 및 쓰기 요청들의 서비스를 최적화할 수 있는 수용 동작들을 예측할 수 있다.
로그(294)는 이벤트들, 동작들 및 시스템 조건들 - 이전에 기록된 것들과 외부에서 모델링된 것들 둘 모두임 - 로 구성되는 것으로 고려된다. 로그화된 정보는 예측된 이벤트들의 정확도 및 사전적으로 취해진 동작들의 유효성을 결정함에 있어서 선택 모듈(234)에 유용할 수 있다. 이러한 자체-평가는 알고리즘(들)(292)을 업데이트하여 예측된 이벤트들의 정확도를 개선시키는데 사용될 수 있다. 이전에 예측된 이벤트들의 정확도를 결정함으로써, 예측 모듈(248)은 예측된 동작이 발생할 위험 및/또는 동작들을 수용하는 것이 시스템 성능을 최적화할 가능성을 평가할 수 있다. 이러한 능력은 예측 모듈(248)이 예를 들어, 이벤트가 발생할 것이 95% 신뢰도이거나 사전적 동작이 시스템 성능을 향상시킬 확률이 90%인 것과 같이, 시스템 성능을 증가시킬 가능성이 낮은 예측된 이벤트들 및 사전적 동작들을 무시하도록 선택 모듈(234)에 의해 설정된 임계값들에 대해 동작하도록 허용한다.
가능성이 낮은 예측된 이벤트 및 사전적 동작을 무시할 수 있는 능력을 이용해, 선택 모듈(234)은 상이한 알고리즘(292)들 및/또는 로그(294)들과 같은 다수의 상이한 시나리오들을 동시에 그리고 순차적으로 생성할 수 있다. 비제한적인 예로서, 예측 회로(248)는 모델링된 로그들 단독, 실시간 시스템 조건들 단독, 및 모델링된 정보 및 실시간 정보의 조합에 기초하여, 예측된 이벤트 및 대응되는 수정 동작들을 태스크로 할당받을 수 있다. 따라서, 예측 회로(248) 및 선택 모듈(234)은 시스템 조건들을 액세스하여 현재 및 미래의 데이터 액세스 요청들을 데이터 저장 디바이스로 서비스하는 것을 개선할 확률이 높은 반응적 동작 및 사전적 동작을 생성할 수 있다.
도 10a 내지 도 10d는 각각 시간에 걸쳐 선택 모듈(234)의 지능적인 동작으로 얻어진 예시적인 동작 스킴들을 전달한다. 도 10a는 대기중인 쓰기 요청(302)이 단계(304)에서 비휘발성 메모리에 쓰여지고 단계(306)에서 적어도 하나의 쓰기 버퍼에 동시에 쓰여지는 스킴(300)을 도시한다. 단계(308)의 실제 이벤트 또는 예측된 이벤트는 단계(312)에서 타이머가 만료될 때까지 단계(310)에서 버퍼로부터 데이터를 읽기하도록 선택 모듈(234)을 트리거할 수 있다. 다시 말해, 데이터의 중복 쓰기는 비휘발성 메모리가 안정화 시간에 있는 동안, 데이터의 읽기를 단계(310)에서 버퍼로부터 허용하고, 후속적으로 단계(314)에서 비휘발성 메모리로부터 허용한다.
스킴(300)에서, 단계(308)의 이벤트는 아마도 디바이스 온도 또는 비휘발성 메모리의 안정화 시간 중에 데이터의 읽기를 요구하는 다른 동작 조건으로 인해 평균 안정화 시간보다 더 길 수 있다. 예를 들어, 단계(308)에서 다중-레벨 비휘발성 메모리 셀에 쓰기, 또는 호스트가 최근에 쓰여진 데이터를 요청할 예측 우도는 임시 버퍼로부터 데이터 검색을 지시하도록 선택 모듈(234)에 촉구할 수 있다. 단계(312)의 타이머는 비휘발성 메모리의 안정화 시간 또는 선택 모듈(234)에 의해 결정된 지정된 지연 시간이, 지연이 존재하지 않는 경우보다 데이터 액세스 요청들을 보다 효율적으로 서비스하기 위함일 수 있는 것으로 고려된다.
도 10b는 단계(302)의 쓰기 요청 및 비휘발성 메모리 및 버퍼 둘 모두에 대한 데이터 쓰기가 스킴(300)과 동일한 예시적인 스킴(320)을 나타낸다. 그러나, 실제 이벤트 또는 예측된 이벤트는 발생하지 않으며 대신에 데이터는 단계(322)에서 플래시 메모리에 쓰여지고 후속적으로 단계(312)에서 타이머가 만료될 때까지 단계(324)에서 메모리로부터 읽혀지고, 이어서, 단계(314)에서 비휘발성 메모리로부터 데이터가 읽혀진다. 단계들(322 및 324)에서 플래시 메모리의 활용은 쓰기 버퍼를 부분적으로 또는 완전히 비울 수 있으며, 이는 더 빠른 쓰기 버퍼가 다른 대기중인 시스템 활동들을 서비스하도록 허용할 수 있다.
도 10c의 스킴(330)은 데이터 저장 디바이스에 대기중인 쓰기 요청을 수신한 후에 단계(332)에서 실제 이벤트 또는 예측된 이벤트가 발생할 수 있는 방식을 도시한다. 이벤트는 선택 모듈(234)이 비휘발성 메모리에 데이터를 쓰기하는 것을 중지하고 대신에 단계(306)에서 쓰기 버퍼에만 쓰기하고, 단계(310)에서 버퍼로부터 읽기하는 한편, 단계(304)에서는 비휘발성 메모리에 데이터를 쓰기하도록 트리거한다. 먼저 데이터를 버퍼에 쓰기한 다음 비휘발성 메모리에 쓰기함으로써 고속 데이터 읽기 액세스 시간 중과 같은 때에 시스템 리소스가 더 효율적으로 사용될 수 있다. 단계(312)에서 타이머의 만료에 의해 나타낸 바와 같이, 비휘발성 메모리의 안정화 시간의 종료 시에, 데이터는 단계(314)에서 비휘발성 메모리로부터 읽혀진다.
일부 실시예들은 데이터 저장 디바이스/시스템에 대한 전력의 예정되지 않은 손실 또는 감소를 예측하며, 이는 선택 모듈이 모든 데이터를 휘발성 버퍼로부터 비휘발성 메모리로 전송하도록 트리거한다. 다른 실시예들은 모든 데이터를 다시쓰기 가능한 인-플레이스 비휘발성 메모리에 전송함으로써 디바이스/시스템의 셧다운과 같은 예정된 전력 감소에 대응한다. 셧다운 중에는 비휘발성 메모리의 안정화 시간이 고려될 필요가 없기 때문에, 선택 모듈은 피해없이 대량의 데이터를 비휘발성 메모리에 처분(dump)할 수 있다.
다시쓰기 가능한 인-플레이스 메모리의 비교적 빠른 읽기 시간은 하나 이상의 부트 맵을 비휘발성 메모리에 저장함으로써 예정된 셧다운 중에 지능적으로 채용될 수 있다. 선택 모듈(234)은 현재와 최근의 시스템 활동에 기초하여 새로운 부트 맵을 생성하여 비휘발성 메모리로부터 부트 맵이 독점적으로 로딩되고, 보다 효율적으로 업데이트가 수행되는 다른 메모리로 부트 맵이 후속적으로 이동되는 거의 즉각적인 부트 프로세스를 제공할 수 있다는 것에 주목한다. 데이터 저장 디바이스/시스템은 보안 정보, 레벨 맵들 및 펌웨어와 같은 기존의 또는 새로 생성된 부팅 데이터를 전송함으로써 전원 초기화 시간으로부터 1초 미만에 새로운 데이터 액세스 요청들을 수신할 준비가 될 수 있다.
도 10d를 참조하면, 스킴(340)은 단계(304)에서 비휘발성 메모리에 동시에 중복하여 쓰기하고 단계(306)에서 버퍼에 쓰기함으로써 단계(302)로부터의 쓰기 요청을 처리한다. 비휘발성 메모리에 대한 쓰기가 안정화되는 동안, 단계(310)는 단계(312)에서 선택 모듈(234) 타이머가 만료될 때까지 버퍼로부터의 임의의 읽기를 서비스한다. 단계(342)에서 예측 또는 발생된 이벤트는 비휘발성 메모리에 대한 데이터 쓰기가 안정화되더라도 비휘발성 메모리 대신에 버퍼로부터의 데이터 읽기 요청들을 계속 서비스하도록 선택 모듈(234)을 트리거한다. 단계(342)의 이벤트는 제한되지 않지만, 에러, 높은 디바이스/시스템 처리 동작 또는 채널 가용성과 같이, 비휘발성 메모리로부터의 데이터 읽기를 억제 또는 열화시킬 수 있는 임의의 동작 조건일 수 있다.
선택 모듈(234)은 메모리 셀의 안정화 시간 중에 겹쳐쓰기 상황들을 처리할 수 있는 것으로 고려된다. 이러한 상황에서, "Dirty" 및 "WriteInProgress" 플래그가 캐시 엔트리에 추가된다. 필수 또는 제한은 아니지만, Dirty 플래그는 캐시의 데이터가 비휘발성 메모리에 아직 쓰여지지 않았음을 나타내며, WriteInProgress 플래그는 캐시의 데이터가 비휘발성 메모리에 쓰여졌지만, 쿨다운(cool down) 기간은 완료되지 않았음을 나타내다. 결과적으로, 선택 모듈(234)은 데이터가 현재 안정화 단계에 있는지 여부를 지능적으로 평가할 수 있으며, 이는 중복 동작을 감소시키고 시스템 성능을 증가시킨다.
도 10a 내지 도 10d의 예시적인 스킴들을 통해, 선택 모듈(234)이 예측된 이벤트 및/또는 실제 이벤트에 적응하여 데이터 액세스 요청들의 서비스를 최적화하기 위해 다양한 동작을 취할 수 있다는 것이 이해될 수 있다. 이러한 지능적인 적응은 선택 모듈이 데이터 액세스들의 분량에 관계없이 높은 데이터 액세스 대역폭과 낮은 데이터 액세스 레이턴시를 유지하도록 허용한다. 지능형 적응은 선택 모듈이 데이터 저장 위치들, 매핑 스킴들 및 섀도우 데이터의 쓰기를 변경하여 데이터 우선 순위 및 보안 상의 변화들을 수용하도록 허용하고, 따라서 중요도가 높은 데이터를 비휘발성 데이터로 보다 신속하게 전송할 수 있다.
도 11은 도 1 내지 도 10d의 다양한 실시예들에 의해 수행될 수 있는 인-플레이스 메모리 활용 루틴(350)의 흐름도이다. 하나 이상의 데이터 저장 디바이스는 단계(352)에서 활성화될 수 있으며, 각각의 데이터 저장 디바이스는 선택 모듈, 버퍼 메모리 및 다시쓰기 가능한 인-플레이스 비휘발성 메모리로 구성된다. 데이터 저장 디바이스는 데이터 저장 시스템의 분산 네트워크의 일부로 임의의 시간량 동안 동작될 수 있다. 적어도 하나의 데이터 저장 디바이스가 단계(354)에서 호스트로부터 하나 이상의 데이터 쓰기 요청을 수신하면, 단계(356)에서 선택 모듈은 대기중인 데이터 요청과 연관된 데이터를 적어도 하나의 버퍼 메모리 및 비휘발성 메모리에 쓰기할 수 있다.
단계(356)에서의 쓰기 데이터의 프로그래밍은 버퍼 및 비휘발성 메모리에 동시에 또는 순차적으로 수행될 수 있다. 그러나, 데이터가 비휘발성 메모리에 쓰여질 때, 선택 모듈은 메모리 셀들이 안정화를 완료하고 읽기 요청을 서비스하기 위해 이용 가능할 때를 결정하기 위해 타이머를 시작한다. 일부 실시예들에서, 단계(356)는 높은 디바이스 온도 및/또는 데이터 목적지의 물리적 위치 주변의 활동에 대한 반응과 같은 기존의 디폴트 안정화 시간과 상이한 안정화 시간의 예측을 포함한다.
단계(356)에서 비휘발성 메모리로의 데이터의 쓰기 중과 그 후의 임의의 시간에, 결정(358)은 선택 모듈을 이용하여 그 데이터에 대한 읽기 요청들을 필드화할 수 있다. 즉, 비휘발성 메모리가 그의 안정화 시간에 있는 동안 선택 모듈에 의해 읽기 요청이 수신되면, 단계(360)가 진행되어 버퍼에 저장된 데이터로부터 읽기 요청을 서비스한다. 단계(360)에서 서비스되는 임의의 읽기 요청들의 종료시에, 또는 결정(358)으로부터 어떠한 읽기 요청도 수신되지 않은 경우, 결정(362)이 진행되어 선택 모듈 타이머가 만료되었는지를 평가한다.
만료된 선택 모듈 타이머가 단계(364)에서 비휘발성 메모리로부터의 읽기 요청을 서비스하도록 허용하는 한편, 활성 타이머는 임의의 읽기 요청에 대해 버퍼 위치가 사용되는 단계(360)로 다시 진행한다. 단계들 및 결정들(354 내지 364)은 데이터 읽기 및 쓰기 요청들을 처리하기 위해 임의의 횟수로 주기적으로 반복될 수 있다는 것에 주목한다. 단계(354)에서 데이터가 쓰여진 이후의 임의의 시간에서, 단계(366)는 비휘발성 메모리 내의 실제 또는 가상화된 계층들 사이에서 데이터를 이동할 수 있다. 그러나 이러한 데이터 전송이 요구되는 것은 아니다. 단계(368)에서 최종 비휘발성 메모리 위치는 순차적으로 매핑되어 임의의 읽기 동작들을 비휘발성 메모리에 저장된 최신 버전의 데이터로 지향시킨다. 단계(368)에서 데이터의 맵핑은 각각의 버퍼로부터, 그리고 버퍼로 데이터 액세스를 지향시키는 섀도우 맵으로부터의 데이터의 제거 또는 예정된 제거에 대응될 수 있다는 것에 주목한다.
본 개시의 다양한 실시예들을 통해, 비휘발성의 다시쓰기 가능한 인-플레이스 메모리가 데이터 액세스 요청들의 서비스를 최적화하기 위해 활용될 수 있다. 그러나 다시쓰기 가능한 인-플레이스 메모리와 연관된 비대칭적 쓰기 시간으로 인해, 선택 모듈은 현재의 시스템 활동 및 로그된 시스템 활동을 지능적으로 평가하여 비휘발성 메모리에 데이터를 안정화하기 위한 읽기 요청을 서비스할 수 있게 한다. 선택 모듈은 실제의 이벤트 및 예측된 이벤트에 대한 응답으로 시스템 성능을 유지 및 최적화하기 위한 반응적 동작 및 사전적 동작을 허용한다. 결과적으로 데이터 저장 시스템은 낮은 데이터 읽기 레이턴시, 감소된 부팅 시간, 및 변화하는 시스템 조건들에 적응하는 정교한 가상화 스킴들을 누릴 수 있다.

Claims (20)

  1. 데이터 저장 디바이스에 상주하는 비휘발성 메모리를 포함하는 장치로서, 상기 비휘발성 메모리는 읽기-쓰기 비대칭을 갖는 다시쓰기 가능한(rewritable) 인-플레이스(in-place) 메모리 셀을 포함하며, 상기 비휘발성 메모리는 이벤트에 앞서 상기 데이터 저장 디바이스의 선택 모듈에 의해 제1 그룹의 계층들로 분할되고, 상기 이벤트 후에 제2 그룹의 계층들로 분할되며, 상기 제1 및 제2 그룹의 계층들은 상이한, 장치.
  2. 제1항에 있어서, 상기 다시쓰기 가능한 인-플레이스 메모리 셀은 트랜지스터 없이 저항 유닛과 접촉하는 선택 층을 포함하는, 장치.
  3. 제1항에 있어서, 상기 데이터 저장 디바이스는 상기 비휘발성 메모리와 상이한 유형의 메모리인 버퍼 메모리를 갖는, 장치.
  4. 제1항에 있어서, 상기 읽기-쓰기 비대칭은 상기 다시쓰기 가능한 인-플레이스 메모리 셀로의 데이터 쓰기 후의 안정화 시간(settle time)에 대응되는, 장치.
  5. 제1항에 있어서, 상기 제1 그룹의 계층들은 상기 제2 그룹의 계층들과 상이한 수의 계층들을 갖는, 장치.
  6. 제1항에 있어서, 상기 제1 및 제2 그룹의 계층들은 각각 가상화되는, 장치.
  7. 제1항에 있어서, 상기 제2 그룹의 계층들의 각각의 계층은 물리 블록 주소(physical block address)의 범위에 할당되는, 장치.
  8. 제7항에 있어서, 상기 제2 그룹의 계층들의 상기 각각의 계층들의 상기 범위들은 상이하고 중첩되지 않는, 장치.
  9. 방법으로서,
    데이터 저장 디바이스에 상주하는(resident) 비휘발성 메모리를 활성화하는 단계 - 상기 비휘발성 메모리는 읽기-쓰기 비대칭을 갖는 다시쓰기 가능한 인-플레이스 메모리 셀을 포함함 -;
    상기 데이터 저장 디바이스의 선택 모듈에서, 상기 비휘발성 메모리를 제1 그룹의 계층들로 분할하는 단계; 및
    상기 비휘발성 메모리를 제2 그룹의 계층들로 변경함으로써 이벤트에 적응하는 단계를 포함하며, 상기 제1 및 제2 그룹의 계층들은 상이한, 방법.
  10. 제9항에 있어서, 상기 이벤트는 상기 데이터 저장 디바이스의 동작 성능의 검출된 변화인, 방법.
  11. 제9항에 있어서, 상기 제2 그룹의 계층들은 계층적 구조(hierarchical structure)로 배열되는, 방법.
  12. 제11항에 있어서, 상기 제2 그룹의 계층들의 제1 계층은 캐시이며, 데이터는 상기 제2 그룹의 계층들의 다른 계층들로 이동되기 전에 초기에 저장되는, 방법.
  13. 제11항에 있어서, 상기 제2 그룹의 계층들의 상기 각각의 계층들은 상기 제2 그룹의 계층들의 상기 각각의 계층들에 저장된 데이터의 액세스 주파수에 대응되는, 방법.
  14. 제9항에 있어서, 상기 선택 모듈은 상기 데이터를 이동시키지 않고 상기 제2 그룹의 계층들의 상기 각각의 계층들 내의 데이터를 업데이트하는, 방법.
  15. 방법으로서,
    데이터 저장 디바이스에 상주하는 비휘발성 메모리를 활성화하는 단계 - 상기 비휘발성 메모리는 읽기-쓰기 비대칭을 갖는 다시쓰기 가능한 인-플레이스 메모리 셀을 포함함 -;
    상기 데이터 저장 디바이스의 선택 모듈에서, 상기 비휘발성 메모리를 제1 그룹의 계층들로 분할하는 단계;
    상기 데이터 저장 디바이스의 선택 모듈에서, 이벤트를 예측하는 단계; 및
    상기 비휘발성 메모리를 제2 그룹의 계층들로 변경함으로써 상기 이벤트에 사전적으로(proactively) 적응하는 단계를 포함하며, 상기 제1 및 제2 그룹의 계층들은 상이한, 방법.
  16. 제15항에 있어서, 상기 예측된 이벤트는 상기 선택 모듈에 의해 상기 데이터 저장 디바이스의 성능 파라미터를 방해하는 것으로 예측되는, 방법.
  17. 제15항에 있어서, 상기 선택 모듈은 상기 예측된 이벤트에 응답하여 데이터를 상기 제2 그룹의 계층들의 다수의 상이한 계층들로 분할하는, 방법.
  18. 제15항에 있어서, 상기 선택 모듈은 상기 예측된 이벤트에 응답하여 데이터를 상기 제2 그룹의 계층들의 다수의 상이한 계층들에 걸쳐 스트라이핑하는(stripe), 방법.
  19. 제15항에 있어서, 상기 선택 모듈은 상기 데이터 저장 디바이스의 버퍼 메모리에 데이터의 섀도우 카피(shadow copy)를 쓰기하고 이는 상기 비휘발성 메모리의 안정화 시간 전반에 걸쳐 읽혀지는, 방법.
  20. 제15항에 있어서, 상기 제2 그룹의 계층들의 맵 계층은 상기 비휘발성 메모리에 상주하는 데이터의 맵으로 구성되는, 방법.
KR1020180061878A 2017-05-30 2018-05-30 제자리에 다시쓰기 가능한 메모리를 구비한 데이터 저장 디바이스 KR102095428B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/607,801 2017-05-30
US15/607,801 US10068663B1 (en) 2017-05-30 2017-05-30 Data storage device with rewriteable in-place memory

Publications (2)

Publication Number Publication Date
KR20180131468A true KR20180131468A (ko) 2018-12-10
KR102095428B1 KR102095428B1 (ko) 2020-04-01

Family

ID=63295391

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180061878A KR102095428B1 (ko) 2017-05-30 2018-05-30 제자리에 다시쓰기 가능한 메모리를 구비한 데이터 저장 디바이스

Country Status (5)

Country Link
US (1) US10068663B1 (ko)
JP (1) JP6752843B2 (ko)
KR (1) KR102095428B1 (ko)
CN (1) CN108984111B (ko)
TW (1) TWI684861B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10942677B2 (en) * 2019-01-24 2021-03-09 Silicon Motion, Inc. Method for performing access management of memory device, associated memory device and controller thereof, associated host device and associated electronic device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090257292A1 (en) * 2008-04-15 2009-10-15 Samsung Electronics Co., Ltd. Semiconductor device having resistance based memory array, method of reading, and writing, and systems associated therewith
US20140095775A1 (en) * 2012-01-12 2014-04-03 Fusion-io-Inc. Systems and methods for cache endurance
KR20140100899A (ko) * 2013-02-07 2014-08-18 시게이트 테크놀로지 엘엘씨 스케줄링된 검증을 보류하는 비휘발성 기록 버퍼 데이터 유지
US9043530B1 (en) * 2012-04-09 2015-05-26 Netapp, Inc. Data storage within hybrid storage aggregate

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438670B1 (en) 1998-10-02 2002-08-20 International Business Machines Corporation Memory controller with programmable delay counter for tuning performance based on timing parameter of controlled memory storage device
KR100331542B1 (ko) * 1998-10-09 2002-06-20 윤종용 불량메모리셀어레이블락들을스킵할수있는어드레스디코더를구비하는반도체메모리장치및이를사용하는복합반도체장치
US6374323B1 (en) 1998-11-16 2002-04-16 Infineon Technologies Ag Computer memory conflict avoidance using page registers
KR100330164B1 (ko) * 1999-04-27 2002-03-28 윤종용 무효 블록들을 가지는 복수의 플래시 메모리들을 동시에 프로그램하는 방법
US6795338B2 (en) 2002-12-13 2004-09-21 Intel Corporation Memory having access devices using phase change material such as chalcogenide
JP3795875B2 (ja) 2003-05-22 2006-07-12 東芝マイクロエレクトロニクス株式会社 磁気ランダムアクセスメモリ及びそのデータ読み出し方法
JP4956922B2 (ja) * 2004-10-27 2012-06-20 ソニー株式会社 記憶装置
US8200887B2 (en) * 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
US7835170B2 (en) 2005-05-09 2010-11-16 Nantero, Inc. Memory elements and cross point switches and arrays of same using nonvolatile nanotube blocks
US7606111B2 (en) * 2007-04-26 2009-10-20 Super Talent Electronics, Inc. Synchronous page-mode phase-change memory with ECC and RAM cache
JP4558054B2 (ja) * 2008-03-11 2010-10-06 株式会社東芝 メモリシステム
US8225031B2 (en) 2008-10-30 2012-07-17 Hewlett-Packard Development Company, L.P. Memory module including environmental optimization
US8239613B2 (en) * 2008-12-30 2012-08-07 Intel Corporation Hybrid memory device
US8144506B2 (en) 2009-06-23 2012-03-27 Micron Technology, Inc. Cross-point memory devices, electronic systems including cross-point memory devices and methods of accessing a plurality of memory cells in a cross-point memory array
KR20110024147A (ko) * 2009-09-01 2011-03-09 삼성전자주식회사 저항성 메모리 장치의 저항 드리프트를 보상할 수 있는 메모리 시스템 및 메모리 시스템의 데이터 처리 방법
US9208071B2 (en) * 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
JP2012203936A (ja) 2011-03-24 2012-10-22 Toshiba Corp 半導体記憶装置
CN103946812B (zh) * 2011-09-30 2017-06-09 英特尔公司 用于实现多级别存储器分级体系的设备和方法
KR101915073B1 (ko) 2011-12-20 2018-11-06 인텔 코포레이션 2-레벨 메모리 계층구조에서 메모리측 캐쉬의 동적인 부분적 전원 차단
CN103257830A (zh) * 2012-02-17 2013-08-21 联想(北京)有限公司 存储单元的访问方法和存储单元
US8675423B2 (en) 2012-05-07 2014-03-18 Micron Technology, Inc. Apparatuses and methods including supply current in memory
US9245926B2 (en) 2012-05-07 2016-01-26 Micron Technology, Inc. Apparatuses and methods including memory access in cross point memory
WO2014008261A1 (en) * 2012-07-03 2014-01-09 Violin Memory, Inc. Synchronization of a dispersed raid group
US9395924B2 (en) * 2013-01-22 2016-07-19 Seagate Technology Llc Management of and region selection for writes to non-volatile memory
JP2014203405A (ja) * 2013-04-09 2014-10-27 富士通株式会社 情報処理装置、メモリ制御装置、データ転送制御方法及びデータ転送制御プログラム
GB2513377A (en) * 2013-04-25 2014-10-29 Ibm Controlling data storage in an array of storage devices
US9202578B2 (en) * 2013-10-02 2015-12-01 Conversant Intellectual Property Management Inc. Vertical gate stacked NAND and row decoder for erase operation
KR102254392B1 (ko) * 2014-05-12 2021-05-25 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 장치 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템
KR102292172B1 (ko) * 2014-06-23 2021-08-25 삼성전자주식회사 불휘발성 메모리 장치 및 메모리 컨트롤러의 동작 방법
US9471227B2 (en) * 2014-07-15 2016-10-18 Western Digital Technologies, Inc. Implementing enhanced performance with read before write to phase change memory to avoid write cancellations
KR102148889B1 (ko) * 2014-08-18 2020-08-31 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템
GB2530043A (en) * 2014-09-10 2016-03-16 Ibm Device and method for storing data in a plurality of multi-level cell memory chips
CN105653199B (zh) * 2014-11-14 2018-12-14 群联电子股份有限公司 数据读取方法、存储器存储装置及存储器控制电路单元
CN105607861A (zh) * 2014-11-24 2016-05-25 中兴通讯股份有限公司 数据处理方法及装置
US20160232112A1 (en) 2015-02-06 2016-08-11 Futurewei Technologies, Inc. Unified Memory Bus and Method to Operate the Unified Memory Bus
US20160259732A1 (en) 2015-03-04 2016-09-08 Cavium, Inc. Managing reuse information for memory pages
US9965408B2 (en) * 2015-05-14 2018-05-08 Micron Technology, Inc. Apparatuses and methods for asymmetric input/output interface for a memory
CN105094709A (zh) * 2015-08-27 2015-11-25 浪潮电子信息产业股份有限公司 一种固态盘存储系统的动态数据压缩方法
US9601193B1 (en) 2015-09-14 2017-03-21 Intel Corporation Cross point memory control
US20170139826A1 (en) * 2015-11-17 2017-05-18 Kabushiki Kaisha Toshiba Memory system, memory control device, and memory control method
US20170235681A1 (en) * 2016-02-12 2017-08-17 Kabushiki Kaisha Toshiba Memory system and control method of the same

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090257292A1 (en) * 2008-04-15 2009-10-15 Samsung Electronics Co., Ltd. Semiconductor device having resistance based memory array, method of reading, and writing, and systems associated therewith
US20140095775A1 (en) * 2012-01-12 2014-04-03 Fusion-io-Inc. Systems and methods for cache endurance
US9043530B1 (en) * 2012-04-09 2015-05-26 Netapp, Inc. Data storage within hybrid storage aggregate
KR20140100899A (ko) * 2013-02-07 2014-08-18 시게이트 테크놀로지 엘엘씨 스케줄링된 검증을 보류하는 비휘발성 기록 버퍼 데이터 유지

Also Published As

Publication number Publication date
TW201911050A (zh) 2019-03-16
JP6752843B2 (ja) 2020-09-09
JP2018206377A (ja) 2018-12-27
KR102095428B1 (ko) 2020-04-01
CN108984111B (zh) 2021-09-14
CN108984111A (zh) 2018-12-11
US10068663B1 (en) 2018-09-04
TWI684861B (zh) 2020-02-11

Similar Documents

Publication Publication Date Title
KR102095438B1 (ko) 다시쓰기 가능한 인-플레이스 메모리를 구비한 데이터 저장 디바이스
US10740242B2 (en) Sensing device data caching
US20200285391A1 (en) Retention-aware data tiering algorithm for hybrid storage arrays
US11449431B2 (en) Data storage device with rewritable in-place memory
US10235049B2 (en) Device and method to manage access method for memory pages
KR20230142795A (ko) Zns 디바이스들에서의 상이한 기입 우선순위화
CN114730250A (zh) 根据存储设备中的分区对读取命令加权
KR102138767B1 (ko) 제자리에 다시쓰기 가능한 메모리를 갖는 데이터 저장 디바이스
US11481119B2 (en) Limiting hot-cold swap wear leveling
KR102095428B1 (ko) 제자리에 다시쓰기 가능한 메모리를 구비한 데이터 저장 디바이스
KR20100105127A (ko) Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법
US20180349036A1 (en) Data Storage Map with Custom Map Attribute
US11899590B2 (en) Intelligent cache with read destructive memory cells

Legal Events

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