KR102099496B1 - 멀티-다이 기록 관리에서의 패턴 브레이킹 - Google Patents

멀티-다이 기록 관리에서의 패턴 브레이킹 Download PDF

Info

Publication number
KR102099496B1
KR102099496B1 KR1020167017242A KR20167017242A KR102099496B1 KR 102099496 B1 KR102099496 B1 KR 102099496B1 KR 1020167017242 A KR1020167017242 A KR 1020167017242A KR 20167017242 A KR20167017242 A KR 20167017242A KR 102099496 B1 KR102099496 B1 KR 102099496B1
Authority
KR
South Korea
Prior art keywords
die
memory
dies
data
pattern
Prior art date
Application number
KR1020167017242A
Other languages
English (en)
Other versions
KR20160114051A (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 KR20160114051A publication Critical patent/KR20160114051A/ko
Application granted granted Critical
Publication of KR102099496B1 publication Critical patent/KR102099496B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1647Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/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/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/12Programming voltage switching circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/18Circuits for erasing optically
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically

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)
  • Mathematical Physics (AREA)
  • Read Only Memory (AREA)

Abstract

다이 할당 스킴은, 데이터를, 그것이 수신되는 순서로, 소정의 랜덤성을 가지고 다수의 메모리 다이들에 할당한다. 다이들의 스킵 또는 방향 반전과 같은 랜덤화 이벤트들은 간격을 두고 발생하는데, 결정론적 할당 스킴이 랜덤화 이벤트들 사이에 사용된다. 랜덤화 이벤트들 사이의 간격들은 랜덤 길이이거나 또는 고정된 길이일 수 있다.

Description

멀티-다이 기록 관리에서의 패턴 브레이킹{PATTERN BREAKING IN MULTI-DIE WRITE MANAGEMENT}
본 발명은 일반적으로 비휘발성 반도체 메모리들과 그들의 동작에 관한 것이며, 구체적으로는 다수의 다이들을 포함하는 메모리 시스템들의 동작에 관한 것이다.
플래시 EEPROM 셀들의 어레이를 사용하는 오늘날 입수가능한 많은 상업적으로 성공적인 비휘발성 메모리 제품들이 존재한다. 플래시 메모리 시스템의 예가 도 1에 도시되어 있으며, 여기서 메모리 셀 어레이(1)는, 컬럼 제어 회로들(2), 로우 제어 회로들(3), 데이터 입력/출력 회로들(6) 등과 같은 다양한 주변 회로들과 함께, 메모리 칩(12) 상에 형성된다.
한가지 대중적인 플래시 EEPROM 아키텍처는 NAND 어레이를 이용하는데, 여기서 메모리 셀들의 다수의 스트링들은 개별 비트 라인들과 기준 전위 사이에서 하나 이상의 선택 트랜지스터들을 통해 접속된다. 도 2a 및 도 2b는 평면 NAND 플래시 메모리 어레이의 예를 예시한다. 다른 예들에서, NAND 스트링들은 수직 방향으로 연장되며, 이러한 점에서 3차원(3D) 메모리로 지칭될 수 있다.
플래시 메모리는 일반적으로 블록들로 배열되고, 블록은 소거의 유닛이다. 도 3a는 2개의 평면들로 배열되는 메모리 다이의 블록들을 예시한다. 평면 내의 블록들은 한번에 평면 내의 하나의 블록만이 액세스되도록 특정 회로들을 공유한다. 다수의 평면들은 다이 내의 다수의 블록들이 병렬로 액세스되는 것을 허용한다.
다수의 다이들은 도 3b에 도시된 바와 같이 메모리 버스에 의해 메모리 제어기에 접속될 수 있다. 메모리 제어기는 데이터를 수신하고, 그것을 다이들에 분배한다. 이러한 배열이 일부 조건들에서 높은 정도의 병렬성(parallelism)을 허용할 수 있지만, 하나 이상의 다이들이 사용 중(busy)으로 될 때 지연들이 발생할 수 있고, 따라서 기록 속도에 영향을 줄 수 있다.
메모리 제어기에 의해 구현되는 다이 할당 스킴은, 데이터를, 그것이 수신되는 순서로, 다이들에 대한 호스트 데이터 패턴들의 정렬을 단절(disrupt)하기 위한 소정의 패턴 브레이킹(예를 들어, 랜덤화)을 이용하여 (예를 들어, 공유된 메모리 버스에 의해) 메모리 제어기에 접속되는 다수의 메모리 다이들에 할당한다. 랜덤화는, 하나 이상의 다이들의 스킵 또는 할당의 순서(방향) 반전과 같은 랜덤화 이벤트들에 의해 도입될 수 있다. 다이들의 스킵은, 하나 이상의 다이들이 정상보다 더 오랫동안 사용 중으로 유지되게 하고, 따라서 이들이 스킵되게 하는 느린 기록 모드를 사용함으로써 구현될 수 있다. 랜덤화 이벤트들은 적절한 빈도로 도입되어, 적합한 패턴 브레이킹을 보장하면서, 적합한 기록 성능을 유지할 수 있다.
비휘발성 메모리 시스템에서 복수의 비휘발성 메모리 다이들을 동작시키는 방법의 예는: 데이터의 복수의 부분들을 복수의 메모리 다이들에 송신하는 것; 결정론적 방식으로 다이들에 데이터의 부분들을 할당하는 제1 할당 스킴에 따라 개별 메모리 다이들에 데이터의 부분들을 할당하는 것; 및 제1 할당 스킴에 따른 다이들에 대한 데이터의 정렬을 단절하는, 제1 할당 스킴과는 상반되는 패턴 브레이킹 방식으로 복수의 부분들 중 적어도 하나를 할당하는 제2 할당 스킴에 따라 개별 메모리 다이들에 데이터의 복수의 부분들 중 적어도 하나를 할당하는 것을 포함한다.
패턴 브레이킹 방식은 랜덤 방식일 수 있다. 제1 할당 스킴은 순환 패턴으로 개별 메모리 다이들에 데이터의 개별 부분들을 할당할 수 있고, 패턴 브레이킹 방식에서의 할당은 순환 패턴들에서 다음의 준비 상태 다이를 스킵하는 것을 포함한다. 제1 할당 스킴은 순환 패턴으로 개별 메모리 다이들에 데이터의 개별 부분들을 할당하여, 사용 중인 다이들을 스킵할 수 있고, 랜덤 방식에서의 할당은, 랜덤으로 선택된 다이가 스킵되는 연장된 기간 동안 랜덤으로 선택된 다이가 사용 중으로 유지되도록 랜덤으로 선택된 다이의 프로그래밍 시간을 증가시키는 것을 포함할 수 있다. 제1 할당 스킴은 순환 패턴으로 개별 메모리 다이들에 데이터의 개별 부분들을 할당할 수 있고, 랜덤 방식에서의 할당은 순환 패턴의 방향을 랜덤으로 반전시키는 것을 포함할 수 있다. 제1 할당 스킴은 순환 패턴으로 개별 메모리 다이들에 데이터의 개별 부분들을 할당할 수 있고, 랜덤 방식에서의 할당은 랜덤으로 선택된 다이에서 순환 패턴의 사이클을 시작하는 것을 포함할 수 있다. 순환 패턴은 난수의 다이들에 대해 랜덤으로 선택된 다이로부터 계속될 수 있고, 그 다음에 다른 사이클이 랜덤으로 선택된 다이에서 시작된다. 패턴 브레이킹 방식으로 메모리 다이에 데이터의 복수의 부분들 중 적어도 하나를 할당하는 것은 비-랜덤 패턴으로 할당하는 것보다 더 느린 기록 속도를 제공할 수 있다.
비휘발성 메모리 시스템을 동작시키는 방법의 예는: 마지막으로 어드레싱된 메모리 다이에 대해 순환 어드레싱 패턴에서 다음에 있는 메모리 다이가 사용 중일 때까지, 또는 패턴 브레이킹이 트리거될 때까지, 순환 어드레싱 패턴으로, 메모리 제어기를 복수의 메모리 다이들에 접속시키는 메모리 버스를 통해, 메모리 제어기로부터 데이터의 유닛들을 송신하는 것; 마지막으로 어드레싱된 메모리 다이에 대해 순환 어드레싱 패턴에서 다음에 있는 메모리 다이가 사용 중이라고 결정하는 것에 응답하여, 순환 어드레싱 패턴에서 다음에 있는 메모리 다이를 스킵하고, 준비 상태인 순환 어드레싱 패턴에서의 후속 메모리 다이를 어드레싱하는 것; 및 패턴 브레이킹이 트리거되는 것에 응답하여, 순환 어드레싱 패턴에서 다음 메모리 다이를 포함하지 않는 복수의 후보 메모리 다이들로부터 선택되는 메모리 다이를 어드레싱하는 것을 포함한다.
마지막으로 어드레싱된 메모리 다이는 랜덤 선택을 위한 복수의 후보 메모리 다이들로부터 배제될 수 있다. 하나 이상의 사용 중인 메모리 다이들은 랜덤 선택을 위한 복수의 후보 메모리 다이들에 포함될 수 있다. 하나 이상의 사용 중인 메모리 다이들의 포함은 하나 이상의 사용 중인 메모리 다이들이 준비 상태로 되기를 대기하는 것으로부터의 지연이 미리 결정된 한계 내에 있다는 결정에 응답할 수 있다. 패턴 브레이킹은 복수의 메모리 다이들 중 하나 이상에서 바람직하지 않은 데이터 패턴이 설정될 위험이 높다는 결정에 의해 트리거될 수 있다.
비휘발성 메모리 시스템의 예는: 복수의 비휘발성 메모리 다이들; 메모리 제어기; 결정론적 방식으로 복수의 메모리 다이들에서의 저장을 위한 데이터의 유닛들을 할당하도록 구성되는 메모리 제어기 내의 데이터 할당 회로; 및 메모리 다이들에 대한 데이터의 정렬을 단절하도록 구성되는 메모리 제어기 내의 패턴 브레이킹 회로를 포함한다. 난수 발생기는 패턴 브레이킹 회로에 대한 랜덤 입력을 발생시킬 수 있다. 프로그래밍 회로는 정상 프로그래밍 모드 및 느린 프로그래밍 모드를 가질 수 있고, 랜덤 입력은 느린 프로그래밍 모드로 프로그래밍하기 위한 메모리 다이를 랜덤으로 식별하기 위해 프로그래밍 회로에 제공된다. 비휘발성 메모리 다이들은 NAND 플래시 메모리 다이들일 수 있다. 복수의 비휘발성 메모리 다이들은 4개의 다이들로 구성될 수 있다. 메모리 버스는 메모리 제어기에 복수의 비휘발성 메모리 다이들을 접속시킬 수 있다.
본 발명의 추가적인 양태들, 장점들 및 특징들은 본 발명의 예들의 다음의 설명에 포함되고, 이러한 설명은 첨부 도면들과 함께 취해져야 한다. 본원에서 참조되는 모든 특허들, 특허 출원들, 논문들, 기술 문서들 및 다른 공개 공보들은 이로써 이러한 참조에 의해 본원에 완전히 포함된다.
도 1은 종래 기술의 메모리 시스템의 블록도이다.
도 2a는 종래 기술의 NAND 어레이의 평면도이다.
도 2b는 라인 A-A를 따라 취해진 도 2a의 종래 기술의 NAND 어레이의 단면도이다.
도 3a는 메모리 다이의 2개의 평면들에 배열되는 메모리 셀들의 블록들을 도시한다.
도 3b는 메모리 버스에 의해 메모리 제어기에 접속되는 4개의 다이들을 도시한다.
도 4는 미리 결정된 패턴에 따른 4개의 다이들에 대한 호스트 데이터의 할당을 도시한다.
도 5는 다이들에 대한 데이터의 결정론적 할당을 사용하는 4개의 다이들에 걸친 기록 동작들의 타이밍의 예를 도시한다.
도 6은 다이들에 대한 데이터의 적응적 할당을 사용하는 4개의 다이들에 걸친 기록 동작들의 타이밍의 다른 예를 도시한다.
도 7은 다이들에 대한 데이터의 적응적 할당을 사용하는 4개의 다이들에 걸친 기록 동작들의 타이밍의 다른 예를 도시한다.
도 8은 다이 할당의 랜덤화의 예들을 도시한다.
도 9는 다이 할당의 랜덤화의 다른 예를 도시한다.
도 10은 다이 할당의 랜덤화 및 사용 중인 다이들의 스킵을 예시한다.
도 11은 랜덤화 스킴의 예를 도시한다.
도 12는 랜덤화 스킴의 다른 예를 예시한다.
도 13은 랜덤화 스킴의 추가적인 예를 예시한다.
도 14a 및 도 14b는 랜덤화 스킴들의 추가적인 예들을 예시한다.
도 15는 랜덤화의 관리를 예시한다.
도 16은 본 발명의 양태들을 구현하기 위해 사용될 수 있는 하드웨어를 도시한다.
메모리 시스템
본 발명의 다양한 양태들을 포함하도록 수정될 수 있는 종래 기술의 메모리 시스템의 예가 도 1의 블록도에 의해 예시된다. 행렬로 배열되는 복수의 메모리 셀들(M)을 포함하는 메모리 셀 어레이(1)는 컬럼 제어 회로(2), 로우 제어 회로(3), c-소스 제어 회로(4) 및 c-p-웰 제어 회로(5)에 의해 제어된다. 메모리 셀 어레이(1)는, 이 예에서, 위에서 배경기술에서 그리고 참조로 본원에 포함된 참조문헌들에서 기술된 것과 유사한 NAND 타입이다. 제어 회로(2)는, 메모리 셀들(M)에 저장된 데이터를 판독하기 위해, 프로그램 동작 동안 메모리 셀들(M)의 상태를 결정하기 위해, 그리고 프로그래밍을 촉진하거나 프로그래밍을 억제하도록 비트 라인들(BL)의 전위 레벨들을 제어하기 위해 메모리 셀 어레이(1)의 비트 라인들(BL)에 접속된다. 로우 제어 회로(3)는 워드 라인들(WL)에 접속되어, 워드 라인들(WL) 중 하나를 선택하고, 판독 전압들을 인가하고, 컬럼 제어 회로(2)에 의해 제어되는 비트 라인 전위 레벨들과 결합된 프로그램 전압들을 인가하고, 메모리 셀들(M)이 형성되는 p형 영역의 전압과 결합된 소거 전압을 인가한다. c-소스 제어 회로(4)는 메모리 셀들(M)에 접속된 공통 소스 라인(도 1에서 "c-소스"로서 라벨링됨)을 제어한다. c-p-웰 제어 회로(5)는 c-p-웰 전압을 제어한다.
메모리 셀들(M)에 저장된 데이터는 컬럼 제어 회로(2)에 의해 판독되고, I/O 라인 및 데이터 입력/출력 버퍼(6)를 통해 외부 I/O 라인들에 출력된다. 메모리 셀들에 저장될 프로그램 데이터는 외부 I/O 라인들을 통해 데이터 입력/출력 버퍼(6)에 입력되고, 컬럼 제어 회로(2)에 전송된다. 외부 I/O 라인들은 제어기(9)에 접속된다. 제어기(9)는 다양한 타입들의 레지스터들, 및 휘발성 랜덤 액세스 메모리(RAM)(10)를 포함하는 다른 메모리를 포함한다.
도 1의 메모리 시스템은 호스트 시스템의 일부로서 임베딩될 수 있거나, 또는 메모리 카드, USB 드라이브, 또는 호스트 시스템의 정합 소켓 내로 착탈식으로 삽입가능한 유사한 유닛에 포함될 수 있다. 이러한 카드는 전체 메모리 시스템을 포함할 수 있거나, 또는 제어기 및 메모리 어레이가, 연관된 주변 회로들과 함께, 별도의 카드들에 제공될 수 있다. 수개의 카드 구현예들은, 예를 들어 미국 특허 제5,887,145호에 기술되어 있다. 도 1의 메모리 시스템은 또한 고체 상태 드라이브(SSD), 또는 태블릿, 랩톱 컴퓨터 또는 유사한 디바이스에서 대용량 데이터 저장을 제공하는 유사한 유닛에 사용될 수 있다.
어레이(1)로서 사용될 수 있는 메모리 어레이의 일부가 도 2a에 도시된다. BL0-BL4는 전역적인 수직 금속 비트 라인들(도시되지 않음)에 대한 확산된 비트 라인 접속들을 나타낸다. 4개의 플로팅 게이트 메모리 셀들이 각각의 스트링에 도시되어 있지만, 개별 스트링들은 통상적으로 컬럼 내에 16개, 32개 또는 그 이상의 메모리 셀 전하 저장 요소들, 예컨대 플로팅 게이트들을 포함한다. WL0-WL3으로 라벨링된 제어 게이트(워드) 라인들 및 스트링 선택 라인들(DSL 및 SSL)은 플로팅 게이트들의 로우들 위에서 다수의 스트링들에 걸쳐 연장된다. 제어 게이트 라인들 및 스트링 선택 라인들은 폴리실리콘(도 2a의 라인 A-A를 따른 단면인, 도 2b에서 P2라고 라벨링된 폴리실리콘 층 2 또는 "폴리 2")으로 형성된다. 플로팅 게이트들은 또한 폴리실리콘(P1이라 라벨링된 폴리실리콘 층 1 또는 "폴리 1")으로 형성된다. 제어 게이트 라인들은 자체-정렬된 스택으로서 플로팅 게이트들 위에 통상적으로 형성되고, 도 2b에 도시된 바와 같이, 중간 유전체 층(19)(또한 "인터-폴리 유전체(inter-poly dielectric)" 또는 IPD라고 지칭됨)을 통해 서로 용량성으로 결합된다. 플로팅 게이트와 제어 게이트 사이의 이러한 용량성 결합은 플로팅 게이트의 전압이 그것에 결합된 제어 게이트 상의 전압을 증가시킴으로써 상승되는 것을 허용한다. 컬럼 내의 개별 셀은, 이들 각각의 워드 라인들 상에 비교적 높은 전압을 배치함으로써 그리고 하나의 선택된 워드 라인 상에 비교적 더 낮은 전압을 배치함으로써, 스트링 내의 나머지 셀들이 힘들게 턴 온되도록 함으로써 프로그래밍 동안 판독 및 검증되고, 따라서 각각의 스트링을 통해 흐르는 전류는 선택된 워드 라인 아래의 어드레싱된 셀에 저장되는 전하의 레벨에만 주로 의존한다. 그 전류는 통상적으로 병렬로 된 다수의 스트링들에 대해 감지되고, 그에 의해 병렬로 된 플로팅 게이트들의 로우를 따라 전하 레벨 상태들을 판독한다. NAND 메모리 셀 어레이 아키텍처들 및 이들의 동작의 예들은 미국 특허 제5,570,315호, 제5,774,397호, 제6,046,935호 및 제7,951,669호에서 발견된다.
비휘발성 메모리 디바이스들은 또한 전하를 저장하기 위한 유전체 층을 갖는 메모리 셀들로부터 제조된다. 이전에 기술된 전도성 플로팅 게이트 요소들 대신에, 유전체 층이 사용된다. 유전체 저장 요소를 이용하는 이러한 메모리 디바이스들은 Eitan 등에 의해 "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell"(IEEE Electron Device Letters, vol. 21, no. 11, 2000년 11월, pp. 543-545)에 기술되어 있다. ONO 유전체 층은 소스와 드레인 확산들 사이의 채널에 걸쳐 연장된다. 하나의 데이터 비트에 대한 전하는 드레인에 인접한 유전체 층에서 국소화되고, 다른 데이터 비트에 대한 전하는 소스에 인접한 유전체 층에서 국소화된다. 예를 들어, 미국 특허 제5,768,192호 및 제6,011,725호는 2개의 실리콘 이산화물 층들 사이에 개재된 트래핑 유전체를 갖는 비휘발성 메모리 셀을 개시한다. 멀티-상태 데이터 저장은 유전체 내의 공간적으로 분리된 전하 저장 영역들의 이진 상태들을 별도로 판독함으로써 구현된다.
전술된 바와 같은 평면(2차원) 메모리 어레이들에 부가하여, 3차원 메모리 어레이들은 기판 상에서 서로 위에 적층된 메모리 셀들의 다수의 층들로 형성된다. 이러한 3차원 메모리 어레이들, 이들의 형성 및 이들의 동작의 예들이 미국 특허 공개 공보 제2012/0220088호 및 미국 특허 공개 공보 제2013/0107628호에 기술되며, 이러한 공개 공보들은 이로써 참조로 완전히 포함된다.
많은 비휘발성 메모리 어레이들(평면 메모리 및 3-D 메모리 모두를 포함함)에서, 메모리 셀들은 블록들이라 지칭되는 비교적 큰 유닛들로 소거된다. 블록들은 평면들에 배열될 수 있고, 평면의 모든 블록들은 비트 라인들의 세트를 공유하고, 평면 내의 메모리 셀들을 프로그래밍하고 판독하기 위해 사용되는 감지 증폭기들 및 데이터 래치들과 같은 특정 메모리 액세스 회로들을 공유한다. 2개 이상의 평면들이 동일한 다이 상에 위치될 수 있다.
도 3a는 다수의 블록들을 각각 포함하는 2개의 평면들, 즉 평면 0 및 평면 1을 갖는 다이의 예를 도시한다. 도 3b는 메모리 다이들이 어떻게 멀티-다이 메모리 시스템 내에 구성될 수 있는지를 도시한다. 도 3b는 메모리 버스를 통해 다수의 메모리 다이들과 통신하는 메모리 제어기를 도시한다. 일반적으로, 이러한 멀티-다이 배열은 병렬로 다이들을 동작시킴으로써 신속하게 데이터를 기록 및 판독하기 위해 사용될 수 있다. 호스트로부터 수신되는 데이터는, 메모리 제어기에 의해, 초기에 데이터를 데이터 래치들에 저장한 다음에 데이터를 메모리 셀들 내로 프로그래밍하는 메모리 다이들에 송신될 수 있다. 메모리 버스는 데이터가 한번에 하나의 다이에만 송신되는 것을 허용할 수 있지만, 데이터 전송 시간은, 데이터가 하나의 다이에 송신되고 있는 동안에 다른 다이들이 데이터를 프로그래밍할 수 있도록, 다이의 메모리 셀들에 대해 데이터를 프로그래밍하는 시간과 비교하여 상대적으로 짧다. 일부 경우들에서, 메모리 제어기는, 다수의 메모리 다이들을 각각 갖는 다수의 메모리 버스들(예를 들어, 2개의 버스들은 각각 2개의 다이들을 가짐)을 제어할 수 있다. 다른 경우들에서, 메모리 다이들은 공유된 메모리 버스 대신에 전용 통신 채널들을 가질 수 있다(예를 들어, 제어기에 대한 별도의 통신 채널을 각각 갖는 4개의 다이들). 이러한 배열들 중 임의의 것에서의 다이들의 개수는 4개로 제한되지는 않으며, 임의의 적합한 개수일 수 있다.
도 4는 메모리 다이들에 데이터를 할당하기 위한 스킴의 예를 도시한다. 호스트로부터 수신되는 데이터는 메모리 다이들(다이 0-다이 3)로의 전송을 위해 데이터 유닛들("DU")로 분할될 수 있다. 본 예에서, 호스트로부터 수신된 데이터는 그것이 수신된 순서로 동일한 크기의 데이터 유닛들로 단순히 분할되며, 각각의 데이터 유닛은 하나의 프로그래밍 동작에서 다이 내에 프로그래밍될 수 있는 데이터의 양과 크기가 동일하다(다이가 하나의 평면을 포함하는 경우에는 하나의 페이지, 다이가 2개의 페이지들을 포함하는 경우에는 2개의 페이지들 등). 데이터 유닛들은 이들이 수신된 순서로 DU0, DU1, DU2 등으로 넘버링된다. 넘버링은 데이터가 수신된 순서를 반영하며, 호스트에 의해 할당된 임의의 순서를 반드시 반영하지는 않는다는 것이 이해될 것이다. 호스트로부터 수신되는 데이터는 논리적으로 순차적일 수도 있고 비순차적일 수도 있다. 어느 경우에도, 이 데이터는 그것이 수신된 순서로 데이터 유닛들로 분할되어 도시된 바와 같이 다이들에 할당될 수 있다. 데이터는 높은 병렬성으로 기록이 수행되도록 모든 다이들에 걸쳐 스트라이핑된다(striped). 도 4는 DU0이 먼저 수신되어 저장되고, 다음에 DU1 등의 식으로 수직 축을 따른 시간을 도시한다.
데이터 유닛들은 도 4에서 순환 순서로 다이들에 할당된다. 순환 순서는 다이 0에서 시작하여, 다음에 다이 1, 다이 2, 다이 3, 그리고 다음에 사이클이 반복되는 다이 0으로 다시 돌아온다. 이러한 할당 스킴은 구현하기에 단순하다. 일부 경우들에서, 상이한 다이들의 블록들은 메타블록들을 형성하도록 링크되고, 따라서 데이터 유닛들의 그룹은 메타블록 내의 메타페이지에 할당된다. 메타블록들을 형성하기 위한 블록들의 링크는 동일한 블록들이 제품의 수명 주기 전반에 걸쳐 링크된 채로 유지될 수 있도록 정적일 수 있거나, 또는 더 유연한 동적 링크일 수 있고, 여기서 상이한 블록들은 상이한 시간들에 링크된다. 어느 경우에도, 동일한 블록들은 연속적인 소거 동작들 사이에 링크된 채로 유지되며, 블록들 내의 페이지들은 메타페이지로서 함께 프로그래밍된다. 따라서, 도 4의 예가 메타블록들을 사용하는 경우, 4개의 데이터 유닛들의 그룹은 모든 4개의 다이들에 걸쳐 연장하는 메타페이지에 할당될 것이며, 다이들로의 개별 데이터 유닛들의 할당은 미리 결정될 것이다(예를 들어, 도시된 바와 같이 스트라이핑됨). 각각의 데이터 유닛이 저장되는 위치는 그것의 넘버의 단순 함수이고, 따라서 이러한 스킴은 구현하기에 쉽다. 이 스킴은 또한 모든 다이들에 걸쳐 항상 기록함으로써 최대 병렬성을 제공한다. 이는 기록할 때 최대 병렬성을 보장할 뿐만 아니라, 데이터가 나중에 판독될 때에도 최대 병렬성을 보장한다. 그러나, 이러한 스킴은 모든 상황들에 대해 이상적이지는 않다.
많은 메모리 시스템들에서, 메모리 어레이는 단지 호스트 데이터를 저장하기 위해 사용되지 않는다. 메모리 제어기는 메모리 어레이에 다른 데이터를 저장할 수 있다. 예를 들어, 메모리 시스템의 동작을 위해 메모리 제어기에 의해 사용되는 특정 데이터는 하나 이상의 다이들에 저장될 수 있다. 이러한 시스템 제어 데이터는 제어기에 의해 저장되는 호스트 데이터의 위치 및 속성을 기록하기 위해 사용되는 정보, 예를 들어 파일 할당 테이블(File Allocation Table)(FAT) 데이터, 디렉토리 데이터, 및 논리-대-물리 어드레스 변환 데이터를 포함할 수 있다. 메모리 시스템의 데이터 관련 특성들, 예를 들어 불량 블록 리스트들, 메모리 액세스 파라미터들 및 핫 카운트들도 제어기에 의해 또한 저장될 수 있다. 메모리 다이들에 저장되는 제어기 데이터의 타입은 특정 메모리 시스템에 의존한다. 제어기는 임의의 시간에, 예를 들어 호스트 기록 동안, 이러한 데이터를 판독하거나 기록하기 위해 메모리 다이에 액세스할 필요가 있을 수 있다. 또한, 메모리 제어기는 메모리 다이에 저장되는 호스트 데이터를 수반하는 다양한 동작들을 수행할 수 있다. 예를 들어, 가비지 컬렉션(garbage collection) 동작들은, 블록들이 소거되고 새로운 데이터에 대해 이용가능해질 수 있도록, 일부 블록들로부터 유효 데이터를 복제하는 것을 포함할 수 있다. 특히 메모리가 비교적 가득찰 때, 수신되는 새로운 데이터를 수용하기 위해 호스트 기록들 동안 가비지 컬렉션 동작들을 수행하는 것이 필요할 수 있다. 제어기 액세스 동작들은, 이들이 시스템 제어 데이터에 관한 것인지 또는 호스트 데이터에 관한 것인지 간에, 호스트 데이터의 기록에 영향을 미칠 수 있다.
도 5는 전술된 바와 같이 데이터 유닛들이 전송되어 결정론적 패턴으로 기록되는 예를 도시한다. DU0이 먼저 전송되고("DU0 전송(Xfer DU0)"), 다음에 기록된다("DU0 기록(Write DU0)"). DU0과 같은 임의의 데이터의 전송 동안, 메모리 버스는 사용 중이다. 전송이 완료되고 기록이 시작되면, 메모리 버스는 후속 전송을 위해 이용가능하다. 따라서, DU1의 전송("DU1 전송")은 DU0의 전송이 종료되자마자 시작한다. 유사하게, 후속 데이터 유닛들의 전송은 이전 전송이 종료된 이후에 시작하며, 따라서 기록 동작들은 병렬로 다수의 다이들에서 발생할 수 있다. 소정의 시간 기간 동안 모든 다이들이 사용 중이다. 이후, 다이 0은 DU0의 기록을 완료한다. 그러나, 다이 0에 대한 제어기 액세스(501)가 이 시간에 발생한다. 제어기는 예를 들어 데이터를 기록할 필요가 있을 수 있다. 다른 예들에서, 제어기는 데이터를 복제하고, 스캔, 제어 테이블 판독 또는 업데이트, 또는 메모리 다이에 대한 액세스를 요구하는 일부 다른 동작을 수행할 수 있다. 따라서, 다이 0은 사용 중이며 호스트 데이터의 저장을 위해 이용가능하지 않은 채로 유지된다. 순환 패턴에서의 다음 다이인 다이 0이 사용 중이기 때문에, 호스트 데이터의 프로그래밍은, 제어기 액세스의 끝에서 이용가능해질 때까지 지연된다. 후속하여, 데이터의 전송 및 기록은, 제어기 액세스(501)에 대해 취해지는 시간만큼만 지연된 상태로, 다이들에 대한 데이터의 동일한 할당으로 이전과 같이 재개된다.
멀티-다이 기록 관리 방법에 따르면, 호스트로부터 수신되는 데이터는, 단순히 결정론적인 것이 아니라, 대신에 다이 이용가능성에 기반하여 데이터를 할당하는 방식으로 메모리 다이들에 할당될 수 있다. 순환 순서에서의 다음 다이가 사용 중일 때, 할당 스킴은 사용 중인 다이를 스킵함으로써 적응하여, 다음 다이로 진행한다. 따라서, 제어기가 주어진 다이에 액세스하는 동안, 호스트 데이터가 계속 다른 다이들에 전송되어 기록되기 때문에, 제어기 액세스 때문에 손실된 시간은 상당히 감소될 수 있다. 이러한 기법들의 예들은 2013년 12월 2일자로 출원되었으며 발명의 명칭이 "Multi-Die Write Management"인 미국 특허 출원 제14/094,550호에 기술되어 있으며, 이 특허 출원은 이로써 참조로 온전히 포함된다.
도 6은 임의의 사용 중인 다이가 스킵되는 적응적 할당 스킴의 예를 도시한다. DU0-DU3은 이전과 같이 순환 순서로 진행한다. 제어기가 다이 0에 데이터를 저장하기 때문에, 다이 0는 이후 사용 중이다. 이러한 액세스 동작은, 메모리 버스를 점유하는, 제어기로부터 다이 0으로의 데이터의 전송("Con. Xfer")(603), 및 그 다음에 메모리를 점유하지 않는 제어기 데이터의 기록("Con. Write")(605)으로서 도시된다. 일반적으로, 전송 시간은 임의의 주어진 데이터에 대한 기록 시간보다 훨씬 더 적다(수직 축은 도 6에서 시간을 나타내지만, 동작들은 축척에 맞는 것으로 의도되지 않는데, 즉 박스들의 수직 치수들은 동작들을 위한 실제 시간을 나타내는 것으로 의도되지는 않는다). 제어기 데이터가 전송되고 메모리 버스가 이용가능해지면, 스킴은 사용 중이지 않은 순환 순서에서의 다음 다이로 이동한다. 이러한 경우, 제어기 데이터의 전송(603)이 종료할 때 다이 1은 사용 중이지 않다. 따라서, 스킴은 다음 데이터인 DU4를 다이 1에 할당한다. 후속하여, 할당 스킴은 화살표로 표시된 바와 같이 순환 순서로 진행하며, 따라서 DU7은 다이 0에 기록된다(순서가 순환적이기 때문에, 그것은 다이 3으로부터 다이 0으로 순환된다(wrap around)). 따라서, 이 예에서, 다이들로의 데이터 유닛들의 할당은 하나의 다이만큼 시프트된다. 제어기 액세스의 효과가 상당히 감소되고, 따라서 단순히 지연은, 상대적으로 짧은, 제어기가 메모리 버스를 점유하는(Con. Xfer)(603) 시간이며, 훨씬 더 긴, (도 5에서와 같이) 제어기 기록(605)을 위한 시간을 포함하지는 않는다.
도 6의 예가 순환 패턴에서 첫번째 다이를 스킵하는 것을 도시하지만, 임의의 다이 또는 다이들의 임의의 그룹이 이러한 방식으로 스킵될 수 있다. 도 7은, DU4가 다이 0에 전송되고, 이후 다이 1 및 메모리 버스를 점유하는 다이 1에 대한 제어기 데이터 전송이 발생하는 예를 도시한다. 후속하여, 제어기 전송이 종료하고 메모리 버스가 이용가능할 때, 스킴은 제어기 기록으로 사용 중으로 유지되는 다이 1을 스킵하고, 다음의 준비 상태 다이인 다이 2로 진행한다. 후속하여, 스킴은 순환 순서로 다이 3으로 그리고 이후 다이 0으로 진행한다.
호스트 데이터 패턴들
호스트로부터 메모리 다이들로의 데이터의 결정론적 할당을 사용하는 일부 메모리 시스템들에서, 호스트에 의해 송신되는 데이터 내의 특정 패턴들은 데이터가 바람직하지 않은 물리적 배열로 저장되도록 할 수 있다. 예를 들어, 호스트는, 특정 데이터가 모든 다이들에 걸쳐 고르게 분배되는 것이 아니라 하나 이상의 다이들에 집중되도록 다이 할당 스킴으로 정렬되는 소정의 패턴을 가지고 데이터를 송신할 수 있다. 이는, 불균일한 마모(uneven wear), 데이터가 나중에 판독되거나 업데이트될 때의 열등한 액세스 시간들, 또는 다른 영향들을 초래할 수 있다. 다이 할당으로 정렬되는 데이터 패턴들은 실제 응용예들에서 소정의(일반적으로 낮은) 빈도로 발생할 수 있거나, 또는 테스트 상황들에서 생성되어, 이러한 테스트로부터의 임의의 결과들이 열등한 성능을 나타내게 할 수 있다. 주어진 결정론적 다이 할당 스킴에 있어서, 특정 메모리에서 열등한 성능을 생성하도록 다이 할당으로 데이터를 정렬하는 테스트를 설계하는 것이 가능할 수 있다.
본 발명의 양태에 따르면, 다이 할당 스킴은 다이들로의 데이터의 할당에 있어서 소정의 랜덤성을 도입하며, 따라서 할당은 순수하게 결정론적인 것이 아니라, 대신에 랜덤 요소를 가진다. 랜덤성은 호스트 데이터의 패턴을 붕괴시키기 위해 사용될 수 있고, 따라서 데이터는 더 이상 메모리 다이들과 정렬되지 않는다. 따라서, 결정론적 방식으로 다이들에 걸쳐 스트라이핑된 경우 메모리 다이들과 정렬되는 데이터는 이 데이터를 붕괴시키고 특정 다이 또는 다이들에 특정 데이터를 집중시키는 것을 회피할 만큼 충분히 랜덤화된다. 일반적으로, 모든 다이 할당을 랜덤화하는 것이 필요하지는 않다. 랜덤화는 필요한 경우 도입될 수 있고, 다이들은 랜덤화 이벤트들 사이에 결정론적 방식으로 할당된다. 일부 경우들에서, 비-랜덤 패턴 브레이킹 이벤트들, 예를 들어 다이들의 주기적 스킵(기본 스킴과는 상반되는 소정의 할당)이 도입될 수 있다. 예를 들어, 단순한 결정론적 할당 스킴은 제1 할당 스킴에 후속하여 발생할 수 있는 다이들에 대한 데이터의 정렬을 단절하도록 동작하는 제2 패턴 브레이킹 스킴(예를 들어, 주기적으로 다이들을 스킵하는 것 또는 방향을 반전시키는 것)을 이용하여 순환 순서로 다이들을 할당할 수 있다.
미국 특허 출원 제14/094,550호에 기술된 바와 같이, 일부 스킴들은, 다이 이용가능성에 기반하여 다이들을 할당하여, 사용 중인 다이들을 스킵한다. 제어기가 빈번하게 메모리 다이들에 액세스할 때 이것이 이러한 패턴을 붕괴시킬 수 있지만, 그것은 패턴들을 적절하게 붕괴시켜 양호한 성능을 보장하기에는 충분하지 않을 수 있다. 특히, 제어기 액세스는 충분히 빈번하지 않을 수 있고, 따라서 패턴은 소정의 성능 영향을 야기할 만큼 충분한 개수의 블록들에 걸쳐 설정될 수 있다. 본 발명의 양태들은 (도 6 및 도 7에서와 같이) 다이 이용가능성에 기반하여 다이들을 할당하는 스킴과 결합될 수 있거나, 또는 (도 5에서와 같이) 단순한 스트라이핑 스킴을 사용하는 스킴과 결합될 수 있거나, 또는 임의의 다른 적합한 스킴과 결합될 수 있다(즉, 랜덤화 이벤트들 사이에서, 일부 다른 비-랜덤 스킴이 적용될 수 있다).
도 8은 랜덤화를 포함하는 할당을 사용하여 할당되는 호스트로부터의 데이터의 예를 도시한다. 초기에, 데이터 유닛들(DU0-DU7)이 수신되고, 다이들에 걸쳐 스트라이핑되며, 각각의 새로운 데이터 유닛은 순환 패턴에서 다음의 준비 상태 다이에 기록된다. 후속하여, DU8이 기록된 이후, 랜덤화가 도입된다. 호스트로부터 수신되는 다음 데이터 유닛인 DU9를 다이 1에 할당하는 것 대신, 할당 스킴은 다이 1을 스킵하고, 대신 DU9를 다이 2에 기록한다. 후속하여, 할당 스킴은 다이 3에 기록하고, 이후 다이 1을 기록하는 것으로 순환함으로써, 순환 할당으로 리턴한다(다이 0은 여전히 사용 중임). 따라서, 다이들에 대한 데이터의 정렬이 브레이킹된다. 후속 기록들은, 순환 순서로, 그러나 다이 1의 스킵에 의해 도입된 오프셋을 가지고 계속될 수 있다. 따라서, DU11이 다이 1에 기록된 이후, 다음 기록(DU12)은 다이 2에, 이후 다이 3에, 이후 다이 1 등의 식으로 지향된다. 따라서, 데이터 내의 임의의 패턴은 다이의 랜덤 스킵의 결과로서 오프셋된다. 하나 초과의 다이가 이러한 방식으로 스킵되어 상이한 양만큼 패턴을 오프셋할 수 있다. 난수 발생기, 의사 난수 발생기, 또는 다른 랜덤 입력이 사용되어 다이 스킵을 트리거하고 그리고/또는 임의의 특정 다이 스킵 동작에서 스킵되는 다이들의 개수를 결정할 수 있다. 일반적으로, 단일 스킵은 단순히 패턴을 오프셋하지만, 패턴은 여전히 다이들과 정렬되고, 따라서 문제점들이 다시 발생할 수 있다(예를 들어, 하나의 다이로부터 다른 다이로의 마모 시프트(wear shifts)). 랜덤화는, 다이들과 정렬되는 경향이 있는 데이터 패턴이 충분히 붕괴되도록, 소정의 빈도로 수행될 수 있다.
랜덤화는 임의의 적합한 방식으로 수행될 수 있다. 도 8에 도시된 바와 같이 하나 이상의 다이들을 스킵하는 것은 단지 일 예이다. 다른 예는 순환 할당 패턴의 방향을 반전시키는 것이다. 예를 들어, 도 8에서, DU15가 다이 1에 기록된 이후, DU16이 다이 2에 기록되고, 이후 방향의 랜덤 반전이 발생하여, 따라서 다음으로 기록되는 다이는 다이 3이 아니라 대신 다이 2이다. 따라서, DU16이 다이 2에 기록되고, 그 다음에 DU17이 다이 1에 기록되고, 이후 DU18이 다이 0에 기록되고, 그 다음에 다이 3으로 순환된다. 순환 순서는 0-1-2-3-0-1-2-3-0...으로부터 0-3-2-1-0-3-2-1-0으로 변경된다. 상이한 랜덤화 단계들이 도 8에 도시된 것과 동일한 메모리에서 사용될 수 있다. 일부 경우들에서, 단일의 랜덤화 단계는 상이한 형태들의 랜덤화들을 결합시킬 수 있다. 예를 들어, 방향이 반전될 수 있고, 하나 이상의 다이들이 단일의 랜덤화 단계에서 스킵될 수 있다.
랜덤화 단계들은 가변 간격들로 트리거될 수 있다. 랜덤화 단계들 사이에서, 데이터의 할당은 단순한 순환 할당 스킴에 따를 수 있다. 데이터 할당은 특정 시간 동안 또는 특정 데이터 양에 대해 단순한 스킴을 따를 수 있고, 이후, 랜덤화 이벤트에 대한 트리거를 수신할 수 있다. 랜덤화 이벤트들 사이에 기록되는 데이터의 양이 비교적 작게 유지되는 한, 다이들과의 호스트 데이터 패턴의 상당한 전체 정렬이 존재하지 않아야 한다.
하나 이상의 다이들의 스킵은 다양한 방식들로 구현될 수 있다. 선택된 다이가 스킵되도록 하는 한가지 단순한 방식은 선택된 다이가 일반적인 것보다 더 오랜 시간 동안 사용 중으로 유지됨을 보장하는 것이다. 따라서, 할당 스킴이 순환하여, 사용 중인 다이들을 스킵하는 경우, 선택된 다이는 여전히 사용 중일 것이며, 할당 스킴은 그것을 스킵할 것이다. 예를 들어, 데이터를 기록할 때, (랜덤으로 선택될 수 있는) 데이터의 특정 부분은 (기록 시 브레이크가 없다고 가정하면) 그것이 후속 사이클에서 스킵되도록 하는 느린 방식으로 의도적으로 기록될 수 있다.
도 9는 다이 1이 스킵되도록 하는, 다이 1에 대한 DU1의 느린 기록의 예를 도시한다. 다이 1은 느린 기록을 위해 랜덤으로 선택될 수 있고, 따라서 다이 2(따라서 다음 다이로서 랜덤으로 선택되는 것으로 고려될 수 있음)로의 스킵을 야기한다. 일반적으로, 메모리 어레이에서 가능한 빨리 데이터를 기록하는 것이 바람직하다. 그러나, DU1은, 다른 데이터에 대해 사용되는 정상 모드보다 더 길고, 데이터를 프로그래밍하고 검증하기 위해 필요한 것보다 더 긴, 느린 기록 모드에서 기록된다. 따라서, DU4가 전송되고 DU5가 다이에 할당된 이후, 다이 1는 사용 중으로 유지되고, DU5는 대신 다이 2에 할당된다. 둘 이상의 다이들이 이러한 방식으로 스킵될 수 있고(즉, 느린 모드가 멀티-다이 스킵을 야기하도록 사용될 수 있음), 스킵된 다이들의 개수는, 이러한 스킵 이후의 다음 다이가 랜덤으로 선택된 다이가 되도록 랜덤으로 선택될 수 있다.
일부 경우들에서, 느린 기록 모드는 더 적은 에러를 제공하고, 마모를 감소시키거나, 또는 다른 방식으로 정상 기록 모드와 비교하여 이점들을 갖는 특수 프로그래밍 스킴을 사용할 수 있다. 예를 들어, 느린 모드로 프로그래밍하기 위해 사용되는 전압 펄스들은 더 작을 수 있거나, 또는 더 정밀한 제어가 달성되고 마모가 감소하도록 더 작은 양만큼 증분될 수 있다.
랜덤화는, 그것이 느린 기록 모드를 사용하여 구현되는지 또는 일부 다른 방식으로 구현되는지 간에, 호스트 데이터의 기록을 느리게 할 수 있다. 예를 들어, 도 9에서, DU4가 전송된 이후, 다이 2가 준비 상태로 되기 전에 소정의 지연이 존재할 수 있고, DU5가 전송된다(반면, 다이 1에서의 DU1의 기록이 정상 모드를 사용한 경우, 이러한 지연이 존재하지 않을 수 있는데, 즉 DU5는, DU4의 전송 직후에, 또는 이러한 전송 조금 지나서, 다이 1에 전송되었을 수 있다). 도 9의 경우, 다이 2는 DU4의 전송 이후 준비 상태로 되는 다음 다이이다. 그러나, 그것이 항상, 랜덤으로 선택된 다이가 단순히 준비 상태로 되는 다음 다이인 경우는 아닐 수도 있다. 다이 할당 스킴이 사용 중인 다이들을 스킵하지만, 사용 중인 다이가 랜덤으로 선택될 때 이러한 스킵 규칙에 대한 예외가 적용될 수 있다. 다음 다이가 랜덤으로 선택될 때, 이는, 랜덤으로 선택된 다이를 다음 다이로서 강제하도록, 사용 중인 다이 스킵을 오버라이드할 수 있다. 따라서, 메모리는 랜덤으로 선택된 다이가 준비 상태로 되기를 대기할 수 있지만, 이는 호스트 데이터 기록을 느리게 한다. 대기할지의 여부에 대한 결정은, 다이가 준비 상태로 되는 것으로 예상되기 이전에 남겨진 시간의 양에 기초할 수 있다. 나머지 시간이 임계양 미만인 경우, 메모리는 대기할 수 있다. 따라서, 랜덤으로 선택된 다이는, 지연이 수락가능한 한, 강제된다.
랜덤화는 사용 중인 다이들(예를 들어, 제어기 액세스 때문에 사용 중인 다이들)을 스킵하는 스킴을 포함하는 임의의 다이 할당 스킴에서 도입될 수 있다. 도 10은 "A"라고 라벨링된, 다이 2의 스킵에 의해 도시된 바와 같은 할당 스킴에 의해 사용 중인 다이가 스킵되는 메모리의 예를 도시한다. 도 10은 또한, "B"라고 라벨링된, 다이들의 랜덤 스킵, 예를 들어 다이 0을 스킵하고 다이 2로 진행하는 것을 도시한다. 사용 중인 다이들을 스킵하고 랜덤화를 사용하는 시스템에서, 제어기 액세스는 추가적인 패턴 브레이킹을 제공하는 랜덤화를 이용하여 소정의 패턴 브레이킹을 제공할 수 있다. 랜덤화 이벤트들 사이의 간격들은 제어기 액세스에 따라 조정될 수 있다. 예를 들어, 랜덤화 이벤트들 사이의 간격이 설정되는 경우(예를 들어, 순환 기록들의 소정의 최대 횟수), 제어기 액세스에 의해 야기되는 순환 기록들의 단절은 이러한 간격을 재시작할 수 있고, 따라서 다음 랜덤화 이벤트는 제어기 액세스가 발생할 때 연기될 수 있다. 다른 예들에서, 랜덤화 이벤트들은 제어기 액세스와 무관하게 진행된다.
다이 할당에서의 랜덤화는 임의의 적합한 방식으로 제공될 수 있다. 일부 예들은 예시를 위해 여기에 제공된다. 본 발명의 양태들이 이러한 예들에 그리고 다른 랜덤화 기법들에 적용될 수 있다는 것이 이해될 것이다.
도 11은 랜덤화 이벤트들에 의해 분리되는 윈도우들 전반에 걸쳐 순환 할당이 유지되는 4-다이 시스템에서의 할당의 예를 도시한다. 윈도우 크기는 랜덤이며, 주어진 윈도우에서의 첫번째 다이는 랜덤이다. 다이들은 1-4로 넘버링되고, 제1 윈도우(110)는 10개의 데이터 유닛들에 대해 연장되어, 다이 2로 끝난다. 후속하여, 랜덤 길이(이 경우 6개의 데이터 유닛들)의 제2 윈도우(112)는 랜덤으로 선택된 다이(다이 4)로 시작한다. 이후, 랜덤 길이(이 경우 11개의 데이터 유닛들)의 제3 윈도우(114)는 랜덤으로 선택된 다이(다이 4)로 시작하고, 그 다음에 랜덤 길이(5개의 데이터 유닛들)의 제4 윈도우(116)는 랜덤으로 선택된 첫번째 다이(다이 2)를 갖는다. 이 경우, 다이 2는 여전히 사용 중인데, 왜냐하면 그것이 이전 윈도우의 마지막 다이었기 때문이다. 따라서, 다이 2가 랜덤 선택에 의해 선택되었더라도, 그것은 이 스킴에서 스킵된다. 최대 윈도우 크기는, 호스트 데이터와 다이들 사이의 임의의 정렬이 작은 수의 블록들로 제한되도록 설정될 수 있다. 예를 들어, 4개의 다이들에 대해, 12개 또는 16개의 데이터 유닛들의 최대 윈도우 크기가 충분할 수 있다.
도 12는 새로운 윈도우에 대한 시작 다이가 가장 빈번하게 사용되는 다이를 배제한 후보 다이들의 풀(pool)로부터 선택되는 예를 예시한다. 이는 동일한 다이에 대한 즉각적인 순차적 기록들을 회피할 수 있으며, 이는 판독 성능에 영향을 줄 수 있다. 따라서, 제1 윈도우(110)의 마지막 다이는 다이 2이다. 제2 윈도우의 첫번째 다이가 랜덤으로 선택될 때, 그것은, 다이 1, 3 및 4로 구성되는 후보 다이들의 풀(120)(다이 2를 배제함)로부터 선택된다. 다이 4는 제2 윈도우(112)의 첫번째 다이로서 랜덤으로 선택된다. 유사하게, 제2 윈도우(112)(랜덤 길이임)가 다이 1로 끝난 이후, 제3 윈도우(114)에 대한 첫번째 다이는 다이 1을 배제한 풀(122)로부터 선택된다. 유사하게, 제3 다이가 다이 2로 끝난 이후, 제4 윈도우(116)의 첫번째 다이는 다이 2를 배제한 풀(124)로부터 선택된다. 일부 경우들에서, 이전 윈도우의 마지막 다이는, 다음 윈도우의 첫번째 다이를 선택할 때, 사용 중으로 유지되며, 따라서 그것은 도 11에서와 같은 이유로 스킵될 수 있다. 그러나, 이는 연속적인 기록들이 동일한 다이에 대해 발생하지 않음을 보증하지는 않는다(예를 들어, 이전 윈도우의 마지막 다이의 기록에 있어서 브레이크가 존재하는 경우). 연속적인 기록이 발생하지 않음을 보장하기 위해, 다이는 후보 다이들의 풀로부터 배제될 수 있다. 풀 내의 후보 다이들은 준비 상태이거나 사용 중일 수 있다. 후보 풀로부터 랜덤으로 선택된 다이는, 그것이 일부 경우들에서 사용 중인 경우라도 스킵되지 않을 수 있다(예를 들어, 메모리는 적어도 지연이 임계 지연보다 더 작은 경우에 이러한 다이들이 준비 상태로 되기를 대기할 수 있다).
도 11 및 도 12의 예들이 윈도우 크기 및 각각의 윈도우에서의 첫번째 다이의 랜덤화를 도시하지만, 랜덤화는 또한 고정된 크기의 윈도우들에 대한 첫번째 다이 선택을 랜덤화함으로써 달성될 수 있다. 도 13은 모든 4개의 기록들 이후마다 랜덤화가 발생하는 예를 도시한다. 따라서, 데이터는 4개의 다이들에 걸쳐 스트라이핑되고, 랜덤화는 다른 사이클을 시작한다. 제1 윈도우(130)는 다이 1로 시작하여 다이 4로 끝난다. 이후, 다이 2는 다이 1에서 끝나는 제2 윈도우(132)의 첫번째 다이로서 랜덤으로 선택된다. 이후, 다이 1은 제3 윈도우(134)의 첫번째 다이로서 랜덤으로 선택되지만, 그것이 사용 중으로 유지되기 때문에 스킵되고, 따라서 다이 2가 제3 윈도우의 첫번째 기록 다이가 된다.
도 14a는 마지막 기록 다이를 배제한 후보 다이들의 풀로부터의 첫번째 다이가 선택되는 고정된 크기의 윈도우들을 도시한다. 따라서, 제1 윈도우(140)가 다이 4로 끝나기 때문에, 제2 윈도우(142)의 첫번째 다이의 랜덤 선택을 위한 후보들의 풀은 다이 1, 2 및 3으로 구성된다(다이 4를 배제함). 도 14b는 마지막 기록 다이를 배제한 풀로부터 랜덤 선택되는 고정된 길이의 윈도우들의 다른 예를 도시한다. 이러한 경우, 윈도우 길이는 8개의 기록들(8개의 데이터 유닛들)로 고정된다. 윈도우 길이가 임의의 적합한 길이일 수 있으며, 반드시 다이들의 개수의 배수일 필요는 없다(즉, 그것은 7개의 기록들 또는 10개의 기록들일 수 있다)는 것이 이해될 것이다.
일부 경우들에서, 호스트 데이터 패턴들이 다이들과 정렬되는 것에 대한 위험은 전혀 또는 거의 존재하지 않는다. 예를 들어, 호스트는 다이들과 정렬될 가능성이 없는 것으로서 식별가능한 특정 타입들의 데이터를 송신할 수 있다. 따라서, 랜덤화를 선택적으로 적용하는 것이 바람직할 수 있다. 도 15는 랜덤화가 패턴 브레이킹을 제공하기 위해 선택적으로 사용되고, 필요한 패턴 브레이킹에 대해 랜덤화가 교정되는 예를 도시한다. 패턴 브레이킹이 요구되는지에 대한 결정이 이루어진다(151). 이는 호스트가 어떻게 데이터를 기록하는지 그리고 제어기 액세스 또는 다른 영향들이 충분한 패턴 브레이킹을 제공할 가능성이 있는지를 체크하는 것을 포함할 수 있다. 패턴 브레이킹이 요구되지 않는다고 결정되는 경우, 단순한 결정론적(비-랜덤) 할당 스킴이 사용될 수 있다(153). 패턴 브레이킹이 요구되는 경우, 랜덤화의 적절한 정도가 결정될 수 있다(155). 일반적으로, 다이들에 걸친 데이터의 결정론적 스트라이핑은 빠르고 단순하다. 랜덤화의 추가는 기록 속도를 감소시킬 수 있다. 랜덤화의 적절한 정도는 랜덤화의 이점들 및 기록 속도의 밸런싱에 기초하여 적용될 수 있다(157)(즉, 기록 속도에 대한 소정의 영향은 그것이 이점들을 제공하는 경우에 수락가능할 수 있다). 증가된 랜덤화는 더 빈번한 랜덤화 이벤트들(이러한 이벤트들 사이의 더 작은 윈도우들)을 의미할 수 있다. 랜덤화 이벤트들(또는 다른 패턴 브레이킹 이벤트들)은 다이 스킵, 방향 반전, 또는 결정론적 할당 패턴을 단절하는 다른 이벤트들을 포함할 수 있다.
도 16은 본 발명의 양태들을 구현하기 위해 사용될 수 있는 하드웨어의 예를 도시한다. 메모리 시스템(441)은 호스트 인터페이스(445)를 통해 호스트와 통신하는 메모리 제어기(443)를 포함한다. 메모리 제어기(443)는 메모리 버스(447)를 통해 4개의 메모리 다이들(다이 0-다이 3)과 통신한다. 명료성을 위해 단 하나의 이러한 버스가 도시되어 있지만, 메모리 제어기가 다수의 메모리 다이들을 각각 갖는 다수의 메모리 버스들을 가질 수 있다는 것이 이해될 것이다. 메모리 제어기(443)는 적어도 소정의 랜덤화를 포함하는 방식으로 다이들에 데이터를 할당하는 데이터 할당 회로(449)를 포함한다. 특히, 데이터 할당 회로(449)는 랜덤 간격으로, 다이들을 스킵하고, 그리고/또는 방향을 반전시킨다. 난수 발생기(451)는 데이터 할당 회로(449)에 대한 입력을 제공하여, 랜덤화 이벤트들을 트리거하고 그리고/또는 랜덤 이벤트들에 대한 랜덤 입력(예를 들어, 스킵할 다이들의 개수)을 제공한다. 일부 경우들에서, (예를 들어, 메모리 제어기 내의) 패턴 브레이킹 회로는 데이터의 정렬을 단절하도록 구성될 수 있다.
본 발명의 양태들이 위의 예들에 의해 예시되지만, 예들은 단지 예들에 지나지 않으며, 모든 가능한 실시예들을 나타내도록 의도되지 않는다는 것이 이해될 것이다. 예를 들어, 위의 예들이 메모리 버스 당 4개의 다이들을 도시하지만, 상이한 개수의 다이들이 제공될 수 있다. 일부 예들에서, 메모리 버스 상에 8개, 16개 또는 그 이상의 다이들이 존재할 수 있다. 이러한 다이들 중 소정의 개수(예를 들어, 4개)는 임의의 주어진 시간에 활성일 수 있고, 나머지 다이들은 비활성이다. 또한, 본 예시가 순환 패턴(0, 1, 2, 3, 0, 1... 등)을 도시하지만, 사이클은 임의의 다이로 시작할 수 있고(반드시 다이 0은 아님), 다이에서 다이로 임의의 순서로(반드시 다이 번호가 증가하는 것은 아님) 진행할 수 있다. 제어기 기록이 위의 예들의 방식으로의 제어기 액세스 동작의 예로서 도시되어 있지만, 임의의 제어기 액세스 동작은 호스트 데이터의 기록에 유사하게 영향을 줄 수 있다.
결론
본 발명의 다양한 양태들이 본 발명의 예시적인 실시예들과 관련하여 기술되었지만, 본 발명은 첨부 청구항들의 전체 범위 내의 보호를 받는다는 것이 이해될 것이다. 또한, 본 발명이 특정의 종래 기술의 구조들과 관련하여 구현을 위한 방법을 교시하지만, 본 발명은 기술된 것들 외의 아키텍처들을 갖는 메모리 어레이들에서 구현될 때 보호를 받는다는 것이 이해될 것이다.

Claims (19)

  1. 비휘발성 메모리 시스템에서 복수의 비휘발성 메모리 다이들을 동작시키는 방법으로서,
    결정론적 방식으로 다이들에 데이터의 부분들을 할당하는 제1 할당 스킴에 따라 개별 메모리 다이들에 메모리 제어기로부터의 데이터의 부분들을 할당 및 송신하는 단계; 및
    패턴 브레이킹(pattern-breaking)이 트리거되는 것에 응답하여, 제1 할당 스킴에 상반되는 랜덤 패턴 브레이킹 방식으로 복수의 부분들 중 적어도 하나를 할당하는 제2 할당 스킴에 따라 개별 메모리 다이에 데이터의 복수의 부분들 중 적어도 하나를 할당 및 송신함으로써 제1 할당 스킴에 따른 다이들에 대한 데이터의 정렬을 단절(disrupting)하는 단계 - 제2 할당 스킴은 난수 발생기 또는 의사 난수 발생기로부터 데이터 할당 회로에 대한 입력에 기초함 -
    를 포함하는, 방법.
  2. 제1항에 있어서,
    제1 할당 스킴은 순환 패턴으로 개별 메모리 다이들에 데이터의 개별 부분들을 할당하고, 랜덤 패턴 브레이킹 방식에서의 할당은 순환 패턴에서의 다음의 준비 상태 다이(next ready die)를 스킵하는 것을 포함하는, 방법.
  3. 제1항에 있어서,
    제1 할당 스킴은 순환 패턴으로 개별 메모리 다이들에 데이터의 개별 부분들을 할당하여 사용 중인 다이들(busy dies)을 스킵하고, 랜덤 방식에서의 할당은 랜덤으로 선택된 다이가 스킵되는 연장된 기간 동안 랜덤으로 선택된 다이가 사용 중으로 유지되도록 랜덤으로 선택된 다이의 프로그래밍 시간을 증가시키는 것을 포함하고, 연장된 기간은 증가된 프로그래밍 시간을 위해 선택되지 않은 다이의 연장되지 않은 프로그래밍 시간보다 긴, 방법.
  4. 제1항에 있어서,
    제1 할당 스킴은 순환 패턴으로 개별 메모리 다이들에 데이터의 개별 부분들을 할당하고, 랜덤 방식에서의 할당은 랜덤으로 순환 패턴의 방향을 반전시키는 것을 포함하는, 방법.
  5. 제1항에 있어서,
    제1 할당 스킴은 순환 패턴으로 개별 메모리 다이들에 데이터의 개별 부분들을 할당하고, 랜덤 방식에서의 할당은 랜덤으로 선택된 다이에서 순환 패턴의 사이클을 시작하는 것을 포함하는, 방법.
  6. 제5항에 있어서,
    순환 패턴은 난수의 다이들에 대해 랜덤으로 선택된 다이로부터 계속되고, 그 후에 다른 사이클이 랜덤으로 선택된 다이에서 시작되는, 방법.
  7. 제1항에 있어서,
    랜덤 패턴 브레이킹 방식으로 메모리 다이에 데이터의 복수의 부분들 중 적어도 하나를 할당하는 단계는 비-랜덤 패턴으로 할당하는 것보다 느린 기록 속도를 제공하는, 방법.
  8. 비휘발성 메모리 시스템을 동작시키는 방법으로서,
    마지막으로 어드레싱된 메모리 다이에 대해 순환 어드레싱 패턴에서 다음에 있는 메모리 다이가 사용 중일 때까지 또는 패턴 브레이킹이 트리거될 때까지 순환 어드레싱 패턴으로 메모리 제어기를 복수의 메모리 다이들에 접속시키는 메모리 버스를 통해 메모리 제어기로부터 데이터의 유닛들을 송신하는 단계;
    마지막으로 어드레싱된 메모리 다이에 대해 순환 어드레싱 패턴에서 다음에 있는 메모리 다이가 사용 중이라고 결정하는 것에 응답하여, 순환 어드레싱 패턴에서 다음에 있는 메모리 다이를 스킵하고, 준비 상태인 순환 어드레싱 패턴에서의 후속 메모리 다이를 어드레싱하는 단계; 및
    패턴 브레이킹이 트리거되는 것에 응답하여, 순환 어드레싱 패턴에서 다음 메모리 다이를 포함하지 않는 복수의 후보 메모리 다이들로부터 선택되는 메모리 다이를 어드레싱하는 단계 - 복수의 후보 메모리 다이들로부터 메모리 다이를 선택하는 것은 난수 발생기로부터의 입력에 기초하는 랜덤 선택이고, 마지막으로 어드레싱된 메모리 다이는 랜덤 선택을 위한 복수의 후보 메모리 다이들로부터 배제됨 -
    를 포함하는, 방법.
  9. 제8항에 있어서,
    하나 이상의 사용 중인 메모리 다이들이 랜덤 선택을 위한 복수의 후보 메모리 다이들에 포함되는, 방법.
  10. 제9항에 있어서,
    하나 이상의 사용 중인 메모리 다이들의 랜덤 선택을 위한 복수의 후보 메모리 다이들에의 포함은 하나 이상의 사용 중인 메모리 다이들이 준비 상태로 되기를 대기하는 것으로부터의 지연이 미리 결정된 한계 내에 있다고 결정하는 것에 응답하여 이루어지는, 방법.
  11. 제8항에 있어서,
    패턴 브레이킹은 바람직하지 않은 데이터 패턴이 복수의 메모리 다이들 중 하나 이상에서 설정될 위험이 높다는 결정에 의해 트리거되는, 방법.
  12. 비휘발성 메모리 시스템으로서,
    복수의 비휘발성 메모리 다이들;
    복수의 비휘발성 메모리 다이들에 접속된 메모리 제어기;
    결정론적 방식으로 복수의 비휘발성 메모리 다이들에서의 저장을 위해 데이터의 유닛들을 할당하도록 구성되어 있는, 메모리 제어기 내 데이터 할당 회로;
    난수 또는 의사 난수 발생기 입력부; 및
    패턴 브레이킹 트리거에 응답하여 난수 또는 의사 난수 발생기로부터의 입력에 응답하여 메모리 다이들에 대한 데이터의 정렬을 단절하도록 구성되어 있는, 메모리 제어기 내 패턴 브레이킹 회로
    를 포함하는, 비휘발성 메모리 시스템.
  13. 제12항에 있어서,
    정상 프로그래밍 모드 및 느린 프로그래밍 모드를 갖는 프로그래밍 회로를 더 포함하고, 랜덤 입력은 느린 프로그래밍 모드에서 프로그래밍하기 위한 메모리 다이를 랜덤으로 식별하기 위해 프로그래밍 회로에 제공되는, 비휘발성 메모리 시스템.
  14. 제12항에 있어서,
    비휘발성 메모리 다이들은 NAND 플래시 메모리 다이들인, 비휘발성 메모리 시스템.
  15. 제12항에 있어서,
    복수의 비휘발성 메모리 다이들은 4개의 다이들로 구성되는, 비휘발성 메모리 시스템.
  16. 제12항에 있어서,
    복수의 비휘발성 메모리 다이들을 메모리 제어기에 접속시키는 메모리 버스를 더 포함하는, 비휘발성 메모리 시스템.
  17. 제13항에 있어서,
    정상 프로그래밍 모드는 제1 전압 펄스를 이용하고, 느린 프로그래밍 모드는 제2 전압 펄스를 이용하고, 제2 전압 펄스는 제1 전압 펄스보다 작거나 제1 전압 펄스보다 작은 양만큼 증분되는, 비휘발성 메모리 시스템.
  18. 삭제
  19. 삭제
KR1020167017242A 2014-01-30 2015-01-21 멀티-다이 기록 관리에서의 패턴 브레이킹 KR102099496B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/153,480 2014-01-30
US14/153,480 US9508437B2 (en) 2014-01-30 2014-01-30 Pattern breaking in multi-die write management
PCT/US2015/012295 WO2015116453A1 (en) 2014-01-30 2015-01-21 Pattern breaking in multi-die write management

Publications (2)

Publication Number Publication Date
KR20160114051A KR20160114051A (ko) 2016-10-04
KR102099496B1 true KR102099496B1 (ko) 2020-04-09

Family

ID=52440926

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167017242A KR102099496B1 (ko) 2014-01-30 2015-01-21 멀티-다이 기록 관리에서의 패턴 브레이킹

Country Status (5)

Country Link
US (2) US9508437B2 (ko)
EP (1) EP3074871B8 (ko)
KR (1) KR102099496B1 (ko)
CN (1) CN105874438B (ko)
WO (1) WO2015116453A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160007972A (ko) * 2014-07-10 2016-01-21 삼성전자주식회사 불 휘발성 메모리 장치 및 메모리 컨트롤러, 그리고 그것의 동작 방법
US9952779B2 (en) 2016-03-01 2018-04-24 Apple Inc. Parallel scheduling of write commands to multiple memory devices
US10976957B2 (en) * 2018-07-10 2021-04-13 ScaleFlux, Inc. Reducing multi-stream data write collision in solid-state data storage devices
KR20200059936A (ko) 2018-11-22 2020-05-29 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US11295053B2 (en) * 2019-09-12 2022-04-05 Arm Limited Dielet design techniques
US11281405B2 (en) 2020-06-08 2022-03-22 Western Digital Technologies, Inc. Controlled die asymmetry during MLC operations for optimal system pipeline
US11422888B2 (en) 2020-10-14 2022-08-23 Western Digital Technologies, Inc. Data integrity check for writing data in memory

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100057979A1 (en) 2008-08-27 2010-03-04 Phison Electronics Corp. Data transmission method for flash memory and flash memory storage system and controller using the same
US8095577B1 (en) 2008-03-31 2012-01-10 Emc Corporation Managing metadata
US20130019052A1 (en) 2011-07-14 2013-01-17 Vinay Ashok Somanache Effective utilization of flash interface
US8443136B2 (en) 2009-08-11 2013-05-14 International Business Machines Corporation Method and apparatus for protecting data using variable size page stripes in a FLASH-based storage system
US20130265838A1 (en) 2012-03-19 2013-10-10 Sandisk Technologies Inc. Immunity Against Temporary and Short Power Drops in Non-Volatile Memory: Pausing Techninques
US20130290619A1 (en) 2012-04-30 2013-10-31 Netapp, Inc. Apparatus and Method for Sequential Operation on a Random Access Device
US20130336039A1 (en) 2012-06-05 2013-12-19 Rambus Inc. Memory bandwidth aggregation using simultaneous access of stacked semiconductor memory die

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5555204A (en) 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
US5887145A (en) 1993-09-01 1999-03-23 Sandisk Corporation Removable mother/daughter peripheral card
KR0169267B1 (ko) 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
US5903495A (en) 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
US5768192A (en) 1996-07-23 1998-06-16 Saifun Semiconductors, Ltd. Non-volatile semiconductor memory cell utilizing asymmetrical charge trapping
US6768165B1 (en) 1997-08-01 2004-07-27 Saifun Semiconductors Ltd. Two bit non-volatile electrically erasable and programmable semiconductor memory cell utilizing asymmetrical charge trapping
US6320812B1 (en) 2000-09-20 2001-11-20 Agilent Technologies, Inc. Error catch RAM for memory tester has SDRAM memory sets configurable for size and speed
US6798696B2 (en) * 2001-12-04 2004-09-28 Renesas Technology Corp. Method of controlling the operation of non-volatile semiconductor memory chips
US7652922B2 (en) * 2005-09-30 2010-01-26 Mosaid Technologies Incorporated Multiple independent serial link memory
US7951669B2 (en) 2006-04-13 2011-05-31 Sandisk Corporation Methods of making flash memory cell arrays having dual control gates per memory cell charge storage element
DE102007036984A1 (de) 2007-07-06 2009-01-08 Austriamicrosystems Ag Messverfahren, Sensoranordnung und Messsystem
US8341335B2 (en) * 2007-12-05 2012-12-25 Densbits Technologies Ltd. Flash memory apparatus with a heating system for temporarily retired memory portions
KR101014149B1 (ko) 2008-11-13 2011-02-14 (주)인디링스 메모리 뱅크로의 접근을 제어하는 고체 상태 디스크를 위한컨트롤러
ATE530308T1 (de) 2009-07-31 2011-11-15 Groz Beckert Kg Stanzwerkzeug mit schwimmend gelagertem stempel
US9092340B2 (en) * 2009-12-18 2015-07-28 Sandisk Technologies Inc. Method and system for achieving die parallelism through block interleaving
US8198672B2 (en) 2010-06-30 2012-06-12 SanDisk Technologies, Inc. Ultrahigh density vertical NAND memory device
WO2012048444A1 (en) * 2010-10-14 2012-04-19 Freescale Semiconductor, Inc. Are Memory controller and method for accessing a plurality of non-volatile memory arrays
US8634241B2 (en) 2010-12-13 2014-01-21 Aplus Flash Technology, Inc. Universal timing waveforms sets to improve random access read and write speed of memories
US8897070B2 (en) 2011-11-02 2014-11-25 Sandisk Technologies Inc. Selective word line erase in 3D non-volatile memory
US9032177B2 (en) * 2012-12-04 2015-05-12 HGST Netherlands B.V. Host read command return reordering based on time estimation of flash read command completion
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9329991B2 (en) * 2013-01-22 2016-05-03 Seagate Technology Llc Translation layer partitioned between host and controller
KR102114112B1 (ko) * 2013-11-19 2020-05-22 에스케이하이닉스 주식회사 데이터 저장 장치

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8095577B1 (en) 2008-03-31 2012-01-10 Emc Corporation Managing metadata
US20100057979A1 (en) 2008-08-27 2010-03-04 Phison Electronics Corp. Data transmission method for flash memory and flash memory storage system and controller using the same
US8443136B2 (en) 2009-08-11 2013-05-14 International Business Machines Corporation Method and apparatus for protecting data using variable size page stripes in a FLASH-based storage system
US20130019052A1 (en) 2011-07-14 2013-01-17 Vinay Ashok Somanache Effective utilization of flash interface
US20130265838A1 (en) 2012-03-19 2013-10-10 Sandisk Technologies Inc. Immunity Against Temporary and Short Power Drops in Non-Volatile Memory: Pausing Techninques
US20130290619A1 (en) 2012-04-30 2013-10-31 Netapp, Inc. Apparatus and Method for Sequential Operation on a Random Access Device
US20130336039A1 (en) 2012-06-05 2013-12-19 Rambus Inc. Memory bandwidth aggregation using simultaneous access of stacked semiconductor memory die

Also Published As

Publication number Publication date
CN105874438A (zh) 2016-08-17
WO2015116453A1 (en) 2015-08-06
EP3074871B1 (en) 2018-02-28
US9508437B2 (en) 2016-11-29
US20150213893A1 (en) 2015-07-30
EP3074871B8 (en) 2018-04-11
EP3074871A1 (en) 2016-10-05
CN105874438B (zh) 2019-02-15
KR20160114051A (ko) 2016-10-04
US9153324B2 (en) 2015-10-06
US20150212732A1 (en) 2015-07-30

Similar Documents

Publication Publication Date Title
KR102099496B1 (ko) 멀티-다이 기록 관리에서의 패턴 브레이킹
US9218283B2 (en) Multi-die write management
US11287992B2 (en) Controller and storage device including controller and nonvolatile memory devices
US10929285B2 (en) Storage system and method for generating a reverse map during a background operation and storing it in a host memory buffer
KR102501751B1 (ko) 메모리 콘트롤러, 불휘발성 메모리 시스템 및 그 동작방법
US10467133B2 (en) Storage device including nonvolatile memory device and garbage collection method thereof
US20060161724A1 (en) Scheduling of housekeeping operations in flash memory systems
US9633738B1 (en) Accelerated physical secure erase
KR20160008365A (ko) 저장 매체, 메모리 시스템 및 메모리 시스템에서의 저장 영역 관리 방법
JP2009503726A (ja) 状況依存メモリ性能
US10553285B2 (en) Single-port memory with opportunistic writes
TWI699770B (zh) 記憶體系統及其操作方法
KR102012740B1 (ko) 복수의 불휘발성 메모리 칩들을 포함하는 저장 장치 및 그것의 제어 방법
KR102254099B1 (ko) 메모리 스와핑 처리 방법과 이를 적용하는 호스트 장치, 스토리지 장치 및 데이터 처리 시스템
JP2008108418A (ja) マルチページプログラムの方法、及びこれを行うためのフラッシュメモリ装置
US9355732B2 (en) Latch initialization for a data storage device
CN112114740A (zh) 存储装置及其操作方法
US20160094339A1 (en) Scrambling schemes for scrambling and descrambling data
US10365834B2 (en) Memory system controlling interleaving write to memory chips
US20110302355A1 (en) Mapping and writting method in memory device with multiple memory chips
CN112435705A (zh) 存储器系统
CN118245402A (zh) 提高多逻辑单元(lun)操作效率的总线间插协议
KR20130110153A (ko) 다이 인터리브를 향상시키기 위해 프로그래밍 시퀀스를 구현하기 위한 시스템들 및 방법들

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right