KR20110084926A - 고체 저장 디바이스에서의 핫 메모리 블록 테이블 - Google Patents

고체 저장 디바이스에서의 핫 메모리 블록 테이블 Download PDF

Info

Publication number
KR20110084926A
KR20110084926A KR1020117010864A KR20117010864A KR20110084926A KR 20110084926 A KR20110084926 A KR 20110084926A KR 1020117010864 A KR1020117010864 A KR 1020117010864A KR 20117010864 A KR20117010864 A KR 20117010864A KR 20110084926 A KR20110084926 A KR 20110084926A
Authority
KR
South Korea
Prior art keywords
memory block
lookup table
priority position
block lookup
hot
Prior art date
Application number
KR1020117010864A
Other languages
English (en)
Inventor
트로이 매닝
Original Assignee
마이크론 테크놀로지, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크론 테크놀로지, 인크. filed Critical 마이크론 테크놀로지, 인크.
Publication of KR20110084926A publication Critical patent/KR20110084926A/ko

Links

Images

Classifications

    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • 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
    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)

Abstract

핫 메모리 블록 룩업 테이블(HBLT)를 상주시키기 위한 고체 저장 디바이스 및 방법이 개시된다. 그러한 방법으로, 비휘발성 메모리 블럭의 메모리 맵 또는 액세스된 페이지 테이블에 대한 지시가 HBLT 내에 저장된다. 페이지 테이블 또는 메모리 맵이 이미 HBLT 내에 존재하면, 페이지 테이블 또는 메모리 맵의 우선순위 위치는 다음 우선순위 위치로 증가된다. 만약, 페이지 테이블 또는 메모리 맵이 HBLT 내에 저장되어 있지 않으면, 페이지 테이블 또는 메모리 맵은 중간-지점 같은 어느 우선순위 위치에서 HBLT 내에 저장되고, 상기 우선순위 위치는 그 페이지 테이블 또는 메모리 맵으로의 각각의 후속 접근으로 증가된다.

Description

고체 저장 디바이스에서의 핫 메모리 블록 테이블{HOT MEMORY BLOCK TABLE IN A SOLID STATE STORAGE DEVICE}
본 발명은 일반적으로 메모리 디바이스들에 관한 것이고, 특정 실시예에서 본 발명은 비휘발성 메모리 디바이스들에 관한 것이다.
메모리 디바이스들은 내부, 반도체, 집적 회로들을 컴퓨터들 또는 다른 전자 디바이스들 내에 포함할 수 있다. 랜덤 액세스 메모리 (RAM), 판독 전용 메모리(ROM), 동적 랜덤 액세스 메모리(DRAM), 정적 RAM (SRAM), 동기식 동적 RAM (SDRAM), 및 비휘발성 메모리 (예를 들면, 플래시 메모리)를 포함하는 많은 상이한 형태들의 메모리들이 존재한다.
플래시 메모리 디바이스들은 광범위한 전자 응용들을 위해 비휘발성 메모리의 인기있는 소스로 개발되었다. 플래시 메모리 디바이스들은 통상적으로 고 메모리 밀도들, 고신뢰성 및 저전력 소비를 허용하는 원-트랜지스터 메모리 셀(one-transistor memory cell)을 이용한다. 플래시 메모리에 대한 공용 사용들은 개인용 컴퓨터들, 개인 휴대 정보 단말기들(PDA들), 디지털 카메라들 및 셀룰러 폰들을 포함한다. 기본 입력/출력 시스템(BIOS)과 같은 프로그램 코드 및 시스템 데이터는 통상적으로 개인용 컴퓨터 시스템들에 이용하기 위한 플래시 메모리 디바이스들에 저장된다.
플래시 메모리 디바이스들은 고체 드라이브들과 같은 고체 저장 디바이스들에 통합될 수 있다. 고체 드라이브들은, 각각의 패키지가 많은 메모리 다이들로 구성될 수 있는 다중 플래시 패키지들로 구성된다. 고체 드라이브들은 컴퓨터들에서 이용되어, 통상적으로 대량의 데이터를 저장하기 위해 자기 또는 광 디스크들을 이용한 하드 디스크 드라이브들을 대체한다. 고체 드라이브는 가동부들을 이용할 필요는 없는 반면, 하드 디스크 드라이브는 자기/광 디스크와 상호작용하기 위한 복잡하고 민감한 드라이브 및 판독/기록 헤드 조립체를 필요로 한다. 따라서, 고체 드라이브들은 진동 및 충격들을 통한 데이터의 손상 및 손실에 더욱 잘 견딘다.
고체 드라이브의 플래시 변환층(FTL: Flash Translation Layer)은 고체 드라이브가 오퍼레이팅 시스템에서 디스크 드라이브로서 나타나게 하기 위해 오퍼레이팅 시스템과 함께 동작한다. 이것은 플래시 소거 블록들로부터의 섹터들로도 또한 알려진 가상의 소형 블록들의 데이터를 생성하는 FTL에 의해 달성된다. FTL은 또한, 실제로 데이터가 오랜 사용을 위해 플래시 메모리 전반의 상이한 위치들에 저장되고 있을 때 이것이 시스템에서 특정 위치에 기록되게 나타나도록 고체 드라이브 상에서 데이터를 관리 및 맵핑한다.
FTL은 고체 드라이브의 플래시 메모리 다이들에서 데이터의 실제 위치에 디스크 드라이브의 한 섹터에 대한 호스트 요청들을 맵핑하기 위해 메모리 내의 대형 테이블들을 생성 및 유지함으로써 이들 작업들을 수행한다. 이들 테이블들은, 시스템 RAM이 이들 테이블들을 유지할 수 없고 플래시 메모리가 테이블들의 부분들을 유지하기 위해 오버플로 메모리로서 이용되어야 할 만큼 클 수 있다. 플래시 메모리에서 이들 테이블들을 액세싱하는 것은 플래시 메모리에 대한 판독 및 기록 동작들이 RAM에 대한 판독 및 기록 동작들보다 더 많은 시간을 요구할 수 있으므로 시스템 성능을 저하시킬 수 있다. 상술된 이유들로, 및 본 명세서를 판독하고 이해할 때 본 기술분야의 통상의 기술자들에게 명백해질 하기의 다른 이유들로, 본 기술분야에는 더욱 효율적인 플래시 변환층이 필요하다.
도 1은 플래시 변환층을 통합하는 고체 드라이브를 도시한 도면.
도 2는 플래시 메모리 어레이 및 메모리 통신 채널을 통합하는 도 1의 고체 드라이브에 따른 비휘발성 메모리 디바이스의 일 실시예의 블록도를 도시한 도면.
도 3은 도 1 및 도 2의 비휘발성 메모리 디바이스들에 따른 비휘발성 메모리 어레이의 일부의 일 실시예의 개략도를 도시한 도면.
도 4는 핫 메모리 블록 룩업 테이블을 상주시키기 위한 방법의 일 실시예의 흐름도를 도시한 도면.
도 5는 도 4의 상주 방법에 따른 핫 메모리 블록 룩업 테이블의 일 실시예를 도시한 도면.
본 발명의 다음의 상세한 기술에서, 본 기술의 일부를 형성하고 본 발명이 실시될 수 있는 특정 실시예들이 예시의 방식으로 도시된 첨부 도면들에 대한 참조가 이루어진다. 도면들에서 동일한 참조번호들은 여러 도면들 전반에서 유사한 구성요소들을 실질적으로 기술한다. 이들 실시예들은 본 기술분야의 통상의 기술자들이 본 발명을 실시할 수 있게 하기 위해 충분히 상세하게 기술된다. 다른 실시예들이 활용될 수 있고, 본 발명의 범주를 벗어나지 않고 구조적, 논리적 및 전기적 변경들이 이루어질 수 있다. 따라서, 다음의 상세한 기술은 제한하는 관점으로 취해져서는 안 되고, 본 발명의 범주는 첨부된 특허청구범위들 및 그 등가물들에 의해서만 규정된다.
도 1은, 핫 메모리 블록 룩업 테이블을 이용하는 플래시 변환층(FTL)(120)을 통합하는 고체 드라이브의 일 실시예의 블록도를 도시한다. 일 실시예에서, 핫 메모리 블록 룩업 테이블은 FTL의 일부이다.
도 1의 드라이브는, FTL(120)을 실행하는 8개의 통신 채널들(101 - 108)을 구비한 제어기(130)로 이루어진다. 각 채널(101 - 108)은 4개의 적층된 메모리 패키지들에 접속된다. 이들 디바이스들은 NAND 메모리 패키지들로서 도시된다. 대안적인 실시예들은 다른 형태들의 고체 메모리를 이용할 수 있다.
논리적 유닛(LUN)이라고도 칭해지는 각각의 적층된 NAND 메모리 패키지는 병렬 방식으로 액세스될 수 있고, 결과로서 병렬 유닛(PU)이라고도 칭해진다. 각각의 PU에는 고유 번호 또는 어떤 다른 고유한 식별자가 할당될 수 있다. 도 4 및 도 5를 참조하여 후속적으로 기술되는 바와 같이, 각각의 PU 또는 다른 메모리 유닛에는 그 자신의 핫 메모리 블록 룩업 테이블이 할당된다.
각각의 논리적 유닛은 각각의 논리적 유닛이 패키지에서 다수의 다이들을 구별하기 위해 어드레스 비트에 의해 액세스되도록, 동일한 칩 선택(CE) 신호를 공유할 수 있다. 다수의 다이들은 동시에 상이한 명령들에 대해 병렬로 동작할 수 있다. 달리 말하면, 하나의 다이는 기록 동작을 경험하고 있는 동안 다른 다이는 판독 동작을 경험하고 있다. 패키지의 각각의 메모리 다이는 패키지 내의 상이한 평면에 할당될 수 있다.
도 2는 집적된 회로 다이 상에서 통합될 수 있는 비휘발성 메모리 디바이스(200)의 기능적 블록도를 도시한다. 비휘발성 메모리 디바이스(200)는 일 실시예에서 플래시 메모리이다.
비휘발성 메모리 디바이스(200)는, 도 3에 도시되고 후속 논의되는 플로팅 게이트 메모리 셀들과 같은 비휘발성 메모리 셀들의 어레이(230)를 포함한다. 메모리 어레이(230)는 액세스 라인(예를 들면, 워드 라인) 로우들 및 데이터 라인(예를 들면, 비트 라인) 컬럼들의 뱅크들로 구성된다. 일 실시예에서, 메모리 어레이(230)의 컬럼들은 메모리 셀들의 일련의 스트링들로 이루어진다. 본 기술분야에 잘 알려진 바와 같이, 비트 라인들에 대한 셀들의 접속들은 어레이가 NAND 아키텍처, AND 아키텍처, 또는 NOR 아키텍처인지를 결정한다.
메모리 어레이(230)는 메모리 블록들로 구성될 수 있다. 메모리 블록들의 양은 통상적으로 메모리 디바이스의 크기(즉, 512 MB, 1GB)에 의해 결정된다. 일 실시예에서, 각각의 메모리 블록은 64 페이지들로 구성된다.
어드레스 버퍼 회로(240)는 I/O 회로(260)를 통해 제공되는 어드레스 신호들을 래칭하기 위해 제공된다. 어드레스 신호들이 수신되어, 메모리 어레이(230)에 액세스하기 위해 로우 디코더(244) 및 컬럼 디코더(246)에 의해 디코딩된다. 본 기술분야의 통상의 기술자는 본 기술의 이점을 취할 때 어드레스 입력 접속들의 수는 메모리 어레이(230)의 밀도 및 아키텍처에 의존하는 것임을 알 것이다. 즉, 어드레스들의 수는 증가된 메모리 셀 카운트들 및 증가된 뱅크 및 블록 카운트들 둘다에 따라 증가한다. 데이터는 또한, 제어 신호들(272)의 타이밍에 기초하여 I/O 회로(260)를 통해 입력 및 출력된다.
비휘발성 메모리 디바이스(200)는, 감지 증폭기 회로(250)를 이용하여 메모리 어레이 컬럼들에서 전압 및 전류 변화들을 감지함으로써 메모리 어레이(230)에서 데이터를 판독한다. 감지 증폭기 회로(250)는 일 실시예에서, 메모리 어레이(230)로부터 데이터의 로우를 판독 및 래칭하기 위해 결합된다. I/O 회로(260)는 외부 제어기와의 복수의 데이터 접속들(262)을 통한 양방향 데이터 통신 및 어드레스 통신을 위해 포함된다. 기록 회로(255)는 메모리 어레이에 데이터를 기록하기 위해 제공된다.
메모리 제어 회로(270)는 외부 제어기로부터 제어 버스(272) 상에 제공된 신호들을 디코딩한다. 이들 신호들은 판독/기록(R/
Figure pct00001
), 칩 인에이블(CE), 명령 래치 인에이블(CLE), 어드레스 래치 인에이블(ALE), 및 메모리 어레이(230)뿐만 아니라 메모리 디바이스(200)의 다른 회로에 대한 동작을 제어하기 위해 이용되는 다른 제어 신호들을 포함할 수 있다. 일 실시예에서, 이들 신호들은 활성 로우이지만, 대안적인 실시예들에서는 활성 하이 신호들을 이용할 수 있다. 메모리 제어 회로(270)는 상태 머신, 시퀀서, 또는 메모리 제어 신호들을 생성하기 위한 어떤 다른 형태의 제어기일 수 있다.
비휘발성 메모리 디바이스(200)는, 도 1에 도시된 바와 같이, 통신 채널(290)을 통해 외부 제어기와 통신한다. 일 실시예에서, 채널(290)은 고체 드라이브 제어기와 메모리 디바이스(200) 사이의 메모리 어드레스, 데이터 및 제어 신호들로 이루어진다. 도 2의 실시예는 I/O 회로(260)에 대한 하나의 버스로서 결합된 어드레스 및 데이터를 도시한다. 대안적인 실시예에서, 어드레스 및 데이터 버스들은 메모리 디바이스(200)와 입력들/출력들이 분리된다.
도 3은 비휘발성 메모리 셀들의 일련의 스트링들을 포함하는 NAND 아키텍처 메모리 어레이의 일부의 개략도를 도시한다. 후속 논의들은 NAND 메모리 디바이스를 참조하지만, 본 실시예들은 그러한 아키텍처에 제한되지 않는다.
메모리 어레이는 일련의 스트링들(304, 305)과 같이 컬럼들에 배열된 비휘발성 메모리 셀들(301)(예를 들면, 플로팅 게이트)의 어레이로 구성된다. 셀들(301)의 각각은 각각의 일련의 스트링(304, 305)에서 소스에 드레인이 결합된다. 다수의 일련의 스트링들(304, 305)에 미치는 워드 라인(WLO - WL31)은 로우의 메모리 셀들의 제어 게이트들에 바이어싱하기 위해 로우의 각각의 메모리 셀의 제어 게이트들에 접속된다. 비트 라인들(BL1, BL2)은 특정 비트 라인 상에서 전류를 감지함으로써 각각의 셀의 상태를 검출하는 증폭기들(도시되지 않음)을 감지하기 위해 최종적으로 접속된다.
메모리 셀들의 일련의 스트링(304, 305)은 소스 선택 게이트(316, 317)에 의한 소스 라인(306)에 및 드레인 선택 게이트(312, 313)에 의한 개별적인 비트 라인(BL1, BL2)에 결합된다. 소스 선택 게이트(316, 317)는 그들 제어 게이트들에 결합된 소스 선택 게이트 제어 라인 SG(S)(318)에 의해 제어된다. 드레인 선택 게이트(312, 313)는 드레인 선택 게이트 제어 라인 SG(D)(314)에 의해 제어된다.
각각의 메모리 셀은 단일 레벨 셀(SLC) 또는 다중 레벨 셀(MLC)로서 프로그래밍될 수 있다. 각각의 셀의 임계 전압(Vt)은 셀에 저장된 데이터를 나타낸다. 예를 들면, SLC에서 0.5V의 Vt는 프로그래밍된 셀을 나타낼 수 있고, -0.5V의 Vt는 소거된 셀을 나타낼 수 있다. MLC는 각각이 상이한 상태를 나타내는 다수의 Vt 윈도우들을 가질 수 있다. 다중 레벨 셀들은 셀 상에 저장된 특정 전압 범위에 비트 패턴을 할당함으로써 통상적인 플래시 셀의 아날로그 특성의 이점을 취할 수 있다. 이 기술은 셀에 할당된 전압 범위들의 양에 의존하여, 셀마다 2개 이상의 비트들의 저장을 허용한다.
도 4는 도 1의 고체 드라이브와 같은 고체 메모리 디바이스에 대한 핫 메모리 블록 룩업 테이블을 상주시키기 위한 방법의 일 실시예의 흐름도를 도시한다. 테이블은 연관된 병렬 유닛의 어떤 메모리 블록들이 "핫(hot)"(즉, 다른 블록들보다 더 빈번히 이용됨)으로 간주되는지를 추적하기 위해 이용된다. FTL이 수신된 디스크 드라이브 섹터를 메모리 소거 블록에 맵핑하기 위해 이용하는 메모리 맵의 "핫" 부분들은 비휘발성 메모리 내이 오버플로 영역으로부터 RAM으로 이동된다. 이것은 더 느린 속도의 플래시 메모리로부터 보다 높은 속도의 RAM으로부터 더욱 고속으로 액세스되도록 매우 빈번히 이용되는 맵들을 가능하게 한다.
FTL에 의해 변환되는 데이터의 섹터들(예를 들면, 논리적 블록 어드레스들)의 위치를 포함하는 플래시 메모리 블록의 메모리 맵 또는 페이지 테이블은 FTL에 의해 초기에 액세스된다(401). 이러한 특정 페이지 테이블에 대한 포인터는 그 후에 핫 메모리 블록 룩업 테이블(403)에 저장된다. 후속 논의를 위해, 핫 메모리 블록 룩업 테이블이 0에서 A까지의 "A" 엔트리들의 양으로 구성되고, A는 최고 우선순위를 가진 테이블이고, 0은 최저 우선순위를 가진 테이블임을 가정한다.
액세스된 테이블이 핫 메모리 블록 룩업 테이블(405)에 아직 존재하지 않는다면, 핫 메모리 블록 룩업 테이블에 A/2의 초기 우선순위를 가지고 저장된다(407). 대안적인 실시예들은 A/2 외의 어떤 다른 초기 우선순위를 가지고 액세스된 테이블을 저장할 수 있다. 그 후에, 핫 메모리 블록 룩업 테이블에 A/2보다 낮은 우선순위를 가지고 이미 저장된 테이블들은 우선순위(409)가 감소된다. 그 후에 우선순위 0에 있던 테이블은 핫 메모리 블록 룩업 테이블(413)로부터 드롭핑된다. 본 방법을 이용하여, 핫 메모리 블록 룩업 테이블은 끊임없이 더 높은 우선순위 테이블들/맵들로 업데이트되고, 더 낮은 우선순위 테이블들/맵들은 드롭핑되고, 대응하는 맵/페이지 테이블은 더 높은 속도의 RAM 영역을 벗어나도록 이동된다. FTL에 의해 변환될 데이터의 섹터들의 위치를 포함하는 플래시 메모리 블록의 메모리 맵 또는 페이지 테이블은 더 느린 비휘발성 메모리의 오버플로 영역으로부터 더 고속의 RAM(417)으로 이동된다.
액세스된 테이블이 핫 메모리 블록 룩업 테이블(405)에 이미 존재한다면, 이 테이블의 우선순위는 증가된다(411). 액세스된 테이블이 우선순위가 위로 이동될 때, A/2 위의 최저 우선순위 테이블은 그 후에 아래로 이동된다(415). 예를 들면, 액세스된 테이블이 우선순위 A/2에 있고 두 번째 액세스되었다면, 그것은 현재 우선순위 위치 A/2 + 1에 존재하고, 우선순위 위치 A/2 + 1을 이전에 점유한 테이블은 그 후에 위치 A/2로 우선순위가 감소된다. 이것은 액세스된 테이블이 핫 메모리 블록 룩업 테이블의 최고 우선순위 위치인 위치 A에 있을 때까지 계속된다. 이 경우, 새로운 테이블들이 추가되지 않았으므로, 그것이 여전히 위치 0에 있을 수 있으므로 이전 우선순위 위치 0 테이블을 드롭핑할 필요가 없다.
도 5는 도 4의 방법에 의해 생성된 핫 메모리 블록 룩업 테이블의 일 실시예를 도시한다. 핫 메모리 블록 룩업 테이블의 각각의 엔트리는 연관된 병렬 유닛 또는 다른 메모리 유닛에 플래시 메모리 블록에 대한 페이지 테이블 또는 메모리 맵 포인터를 포함한다. 엔트리들은 0 우선순위 위치의 최저 우선순위에서 A 우선순위 위치의 최고 우선순위까지 순서화된다. 이전에 기술된 바와 같이, 초기 엔트리 지점은 테이블의 중간(즉, A/2) 우선순위 위치이다.
요약하면, 고체 메모리 디바이스에 대한 핫 메모리 블록 룩업 테이블의 하나 이상의 실시예들은, 핫 메모리 블록 룩업 테이블과 연관된 병렬 유닛에서 NAND 플래시 메모리 블록의 페이지 테이블들 또는 메모리 맵들에 대한 신속한 액세스를 제공한다. 처음 액세스된 메모리 맵은 테이블의 A/2의 중간에 들어가고, 액세스될 때마다 테이블 우선순위 위치들이 위로 이동된다. 룩업 테이블 엔트리에 의해 포인팅된 맵의 부분은 더 낮은 속도의 비휘발성 메모리로부터 더 높은 속도의 RAM으로 이동된다.
특정 실시예들이 본 명세서에 예시되고 기술되었지만, 본 기술분야의 통상의 기술자에 의해 동일한 목적을 달성하기 위해 계산된 임의의 배치가 도시된 특정 실시예들을 대체할 수 있음을 알 것이다. 본 발명의 많은 적응들은 본 기술분야의 통상의 기술자들에게 명백할 것이다. 따라서, 이 출원은 본 발명의 임의의 적응들 또는 변형들을 커버하도록 의도된다. 명백하게, 본 발명이 다음의 특허청구범위들 및 그 균등물들에 의해서만 제한되는 것이 의도된다.
230; 메모리 어레이
240; 어드레스 회로
244; 로우 디코드
246; 컬럼 디코드
250; 감지 증폭기
255; 기록
260; I/O 회로
262; 데이터/어드레스
270; 제어 회로
272; 제어
290; 채널

Claims (19)

  1. 핫 메모리 블록 룩업 테이블(hot memory block look-up table)을 상주시키기 위한 방법에 있어서:
    페이지 테이블이 액세스될 때를 결정하는 단계;
    상기 액세스된 페이지 테이블의 표시가 상기 핫 메모리 블록 룩업 테이블의 제 1 우선순위 위치에 이미 존재한다면, 상기 제 1 우선순위 위치를 상기 제 1 우선순위 위치보다 높은 우선순위를 갖는 제 2 우선순위 위치로 증가시키는 단계;
    상기 액세스된 페이지 테이블의 표시가 상기 핫 메모리 블록 룩업 테이블에 존재하지 않는다면, 상기 표시를 상기 핫 메모리 블록 룩업 테이블의 초기 우선순위 위치에 저장하는 단계를 포함하는, 핫 메모리 블록 룩업 테이블을 상주시키기 위한 방법.
  2. 청구항 1에 있어서,
    상기 초기 우선순위 위치는 A/2이고, A는 상기 핫 메모리 블록 룩업 테이블의 최고 우선순위 위치인, 핫 메모리 블록 룩업 테이블을 상주시키기 위한 방법.
  3. 청구항 1에 있어서,
    상기 액세스된 페이지 테이블의 표시는 상기 액세스된 페이지 테이블에 대한 포인터인, 핫 메모리 블록 룩업 테이블을 상주시키기 위한 방법.
  4. 청구항 1에 있어서,
    상기 핫 메모리 블록 룩업 테이블은 플래시 변환층(flash translation layer)의 일부이고, 상기 플래시 변환층에 의해 실행되도록 구성되는, 핫 메모리 블록 룩업 테이블을 상주시키기 위한 방법.
  5. 청구항 1에 있어서,
    상기 액세스된 페이지 테이블이 상기 핫 메모리 블록 룩업 테이블에 존재한다면, 상기 액세스된 페이지 테이블의 우선순위 위치를 증가시키고 상기 액세스된 페이지 테이블보다 높은 우선순위 위치를 갖는 페이지 테이블의 우선순위 위치를 감소시키고, 상기 페이지 테이블이 상기 핫 메모리 블록 룩업 테이블에 존재하지 않는다면, 상기 액세스된 페이지 테이블의 표시를 상기 핫 메모리 블록 룩업 테이블의 중간 우선순위 위치에 저장하고, 상기 핫 메모리 블록 룩업 테이블의 최저 우선순위 위치로부터 상기 액세스된 페이지 테이블의 표시를 제거하는, 핫 메모리 블록 룩업 테이블을 상주시키기 위한 방법.
  6. 청구항 5에 있어서,
    고체 드라이브(solid state drive)가 각각의 병렬 유닛과 연관된 핫 메모리 블록 룩업 테이블로 이루어지고, 상기 각각의 병렬 유닛은 고체 드라이브를 포함하는, 핫 메모리 블록 룩업 테이블을 상주시키기 위한 방법.
  7. 청구항 5에 있어서,
    상기 액세스 페이지 테이블을 더 느린 액세스 시간을 가진 메모리 위치에서 더 빠른 액세스 시간을 가진 메모리 위치로 이동시키는 단계를 더 포함하는, 핫 메모리 블록 룩업 테이블을 상주시키기 위한 방법.
  8. 청구항 5에 있어서,
    상기 액세스된 페이지 테이블의 우선순위 위치를 증가시키는 것은 상기 액세스된 페이지 테이블의 우선순위 위치를 한 우선순위 위치만큼 증가시키는 단계 및 상기 더 높은 우선순위 위치를 갖는 상기 페이지 테이블의 우선 순위 위치를 한 우선순위 위치만큼 감소시키는 단계를 포함하는, 핫 메모리 블록 룩업 테이블을 상주시키기 위한 방법.
  9. 청구항 5에 있어서,
    상기 페이지 테이블이 상기 핫 메모리 블록 룩업 테이블에 존재하지 않는다면, 상기 중간 우선순위 위치보다 낮은 상기 핫 메모리 블록 룩업 테이블에서의 우선순위 위치를 갖는 페이지 테이블 표시들의 우선순위 위치를 감소시키는 단계를 더 포함하는, 핫 메모리 블록 룩업 테이블을 상주시키기 위한 방법.
  10. 청구항 5에 있어서,
    상기 액세스된 페이지 테이블을 비휘발성 메모리 위치에서 RAM 위치로 이동시키는 단계를 더 포함하는, 핫 메모리 블록 룩업 테이블을 상주시키기 위한 방법.
  11. 청구항 5에 있어서,
    상기 핫 메모리 블록 룩업 테이블에 저장된 각각의 새로운 엔트리에 대해 상기 핫 메모리 블록 룩업 테이블로부터 엔트리를 제거하는 단계를 더 포함하는, 핫 메모리 블록 룩업 테이블을 상주시키기 위한 방법.
  12. 청구항 1에 있어서,
    메모리 맵의 적어도 일부가 액세스된다면, 상기 핫 메모리 블록 룩업 테이블의 우선순위 위치에 상기 메모리 맵의 일부를 저장하는 단계; 및
    상기 메모리 맵의 일부에 대한 각각의 후속 액세스에 대해 상기 핫 메모리 블록 룩업 테이블의 최고 우선순위 위치쪽으로 상기 우선순위 위치를 증가시키는 단계를 더 포함하는, 핫 메모리 블록 룩업 테이블을 상주시키기 위한 방법.
  13. 청구항 12에 있어서,
    상기 고체 드라이브 내의 각각의 병렬 유닛에는 상이한 핫 메모리 블록 룩업 테이블이 할당되는, 핫 메모리 블록 룩업 테이블을 상주시키기 위한 방법.
  14. 고체 메모리 디바이스에 있어서:
    복수의 메모리 어레이들; 및
    적어도 하나의 통신 채널을 통해 상기 복수의 메모리 어레이들에 결합된 제어기를 포함하고, 상기 제어기는 상기 복수의 메모리 어레이들 각각에 대해 메모리 맵에 대한 액세스 동작들을 추적하도록 구성되고, 메모리 맵이 액세스될 때, 상기 액세스된 메모리 맵의 표시가 상기 핫 메모리 블록 룩업 테이블의 우선순위 위치에 아직 존재하지 않는다면, 상기 표시는 상기 핫 메모리 블록 룩업 테이블에 저장되고, 상기 제어기는 또한, 상기 표시가 상기 핫 메모리 블록 룩업 테이블에 이미 존재한다면, 상기 액세스된 메모리 맵의 우선순위 위치를 증가시키도록 구성되는, 고체 메모리 디바이스.
  15. 청구항 14에 있어서,
    상기 제어기는 상기 표시가 상기 핫 메모리 블록 룩업 테이블에 아직 존재하지 않을 때, 상기 표시를 상기 핫 메모리 블록 룩업 테이블의 A/2의 우선순위 위치에 저장하도록 구성되고, A는 상기 핫 메모리 블록 룩업 테이블에서 최고 우선순위이고 0은 최저 우선순위인, 고체 메모리 디바이스.
  16. 청구항 14에 있어서,
    상기 복수의 메모리 어레이들은 NAND 아키텍처로 구성되는, 고체 메모리 디바이스.
  17. 청구항 14에 있어서,
    상기 제어기는 또한, 수신된 디스크 구동 섹터 표시기를 메모리 맵 위치로 변환하는 플래시 변환층을 실행하도록 구성되는, 고체 메모리 디바이스.
  18. 청구항 14에 있어서,
    상기 룩업 테이블은 연관된 메모리 어레이의 어떤 메모리 블록들이 다른 블록들보다 더욱 빈번히 이용되는지를 추적하는, 고체 메모리 디바이스.
  19. 청구항 14에 있어서,
    상기 제어기는 또한, 상기 표시를 상기 핫 메모리 블록 룩업 테이블의 중간의 모든 위치들 이외의 우선순위 위치에 저장하도록 구성되는, 상기 고체 메모리 디바이스.
KR1020117010864A 2008-10-15 2009-09-25 고체 저장 디바이스에서의 핫 메모리 블록 테이블 KR20110084926A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/251,640 US8725927B2 (en) 2008-10-15 2008-10-15 Hot memory block table in a solid state storage device
US12/251,640 2008-10-15

Publications (1)

Publication Number Publication Date
KR20110084926A true KR20110084926A (ko) 2011-07-26

Family

ID=42099927

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117010864A KR20110084926A (ko) 2008-10-15 2009-09-25 고체 저장 디바이스에서의 핫 메모리 블록 테이블

Country Status (7)

Country Link
US (2) US8725927B2 (ko)
EP (1) EP2335246A4 (ko)
JP (1) JP2012506093A (ko)
KR (1) KR20110084926A (ko)
CN (1) CN102187398B (ko)
TW (1) TW201022936A (ko)
WO (1) WO2010045000A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170111196A (ko) * 2016-03-25 2017-10-12 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI450271B (zh) * 2009-09-02 2014-08-21 Silicon Motion Inc 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器
US9021185B2 (en) * 2009-11-23 2015-04-28 Amir Ban Memory controller and methods for enhancing write performance of a flash device
US9514838B2 (en) 2011-05-31 2016-12-06 Micron Technology, Inc. Apparatus including memory system controllers and related methods for memory management using block tables
TWI521343B (zh) * 2011-08-01 2016-02-11 Toshiba Kk An information processing device, a semiconductor memory device, and a semiconductor memory device
US10152423B2 (en) 2011-10-31 2018-12-11 International Business Machines Corporation Selective population of secondary cache employing heat metrics
CN102789427B (zh) * 2012-07-17 2015-11-25 威盛电子股份有限公司 数据储存装置与其操作方法
US9336133B2 (en) 2012-12-31 2016-05-10 Sandisk Technologies Inc. Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
US9734050B2 (en) * 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US9465731B2 (en) 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9348746B2 (en) 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9158678B2 (en) * 2013-03-13 2015-10-13 Kabushiki Kaisha Toshiba Memory address management system and method
CN106293493A (zh) * 2015-05-18 2017-01-04 广明光电股份有限公司 固态硬盘模块动态储存转换层的方法
US10120613B2 (en) 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
US10042553B2 (en) 2015-10-30 2018-08-07 Sandisk Technologies Llc Method and system for programming a multi-layer non-volatile memory having a single fold data path
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
US9778855B2 (en) 2015-10-30 2017-10-03 Sandisk Technologies Llc System and method for precision interleaving of data writes in a non-volatile memory
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US9928907B1 (en) * 2017-01-27 2018-03-27 Western Digital Technologies, Inc. Block erase schemes for cross-point non-volatile memory devices
US10579288B2 (en) 2017-08-31 2020-03-03 Micron Technology, Inc. Prioritized security
US11030132B2 (en) 2018-02-05 2021-06-08 Micron Technology, Inc. Synchronous memory bus access to storage media
US10592427B2 (en) * 2018-08-02 2020-03-17 Micron Technology, Inc. Logical to physical table fragments
KR20200085522A (ko) * 2019-01-07 2020-07-15 에스케이하이닉스 주식회사 이종 메모리를 갖는 메인 메모리 장치, 이를 포함하는 컴퓨터 시스템 및 그것의 데이터 관리 방법
WO2020258062A1 (zh) * 2019-06-26 2020-12-30 深圳市大疆创新科技有限公司 地址扩展装置、系统和可移动平台
US11494311B2 (en) 2019-09-17 2022-11-08 Micron Technology, Inc. Page table hooks to memory types
US11650742B2 (en) * 2019-09-17 2023-05-16 Micron Technology, Inc. Accessing stored metadata to identify memory devices in which data is stored
US10963396B1 (en) 2019-09-17 2021-03-30 Micron Technology, Inc. Memory system for binding data to a memory namespace
US11269780B2 (en) 2019-09-17 2022-03-08 Micron Technology, Inc. Mapping non-typed memory access to typed memory access
US11922034B2 (en) 2021-09-02 2024-03-05 Samsung Electronics Co., Ltd. Dual mode storage device

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6122195A (en) * 1997-03-31 2000-09-19 Lexar Media, Inc. Method and apparatus for decreasing block write operation times performed on nonvolatile memory
US6408371B1 (en) * 1999-01-29 2002-06-18 Micron Technology, Inc. Device to access memory based on a programmable page limit
JP2001142774A (ja) 1999-11-11 2001-05-25 Toshiba Corp メモリカード及び同カードに適用されるアドレス変換方法
US6377500B1 (en) * 1999-11-11 2002-04-23 Kabushiki Kaisha Toshiba Memory system with a non-volatile memory, having address translating function
JP2001243110A (ja) * 1999-12-20 2001-09-07 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリへのアクセス方法
US6515598B2 (en) * 2000-12-22 2003-02-04 Cilys 53, Inc. System and method for compressing and decompressing data in real time
US6961821B2 (en) * 2002-10-16 2005-11-01 International Business Machines Corporation Reconfigurable cache controller for nonuniform memory access computer systems
US6912641B2 (en) * 2003-04-30 2005-06-28 Intelitrac, Inc. Invariant memory page pool and implementation thereof
US7139892B2 (en) * 2003-05-02 2006-11-21 Microsoft Corporation Implementation of memory access control using optimizations
US7853760B2 (en) * 2003-08-07 2010-12-14 Siemens Corporation Advanced memory management architecture for large data volumes
KR100562906B1 (ko) * 2003-10-08 2006-03-21 삼성전자주식회사 시리얼 플래시 메모리에서의 xip를 위한 우선순위기반의 플래시 메모리 제어 장치 및 이를 이용한 메모리관리 방법, 이에 따른 플래시 메모리 칩
JP4034271B2 (ja) * 2004-01-16 2008-01-16 シャープ株式会社 転写装置
US7496722B2 (en) * 2005-04-26 2009-02-24 Hewlett-Packard Development Company, L.P. Memory mapped page priorities
JP5130646B2 (ja) * 2005-06-06 2013-01-30 ソニー株式会社 記憶装置
US7424577B2 (en) * 2005-08-26 2008-09-09 Network Appliance, Inc. Dynamic optimization of cache memory
JP5076411B2 (ja) * 2005-11-30 2012-11-21 ソニー株式会社 記憶装置、コンピュータシステム
US8046557B2 (en) * 2005-12-05 2011-10-25 Intelitrac Inc. Apparatus and method for on-demand in-memory database management platform
KR100874702B1 (ko) * 2006-10-02 2008-12-18 삼성전자주식회사 플래시 메모리 파일 시스템을 효율적으로 관리하기 위한장치 드라이버 및 방법
US7631147B2 (en) * 2006-12-06 2009-12-08 Microsoft Corporation Efficient flushing of translation lookaside buffers in a multiprocessor environment
US7685399B2 (en) * 2007-01-07 2010-03-23 International Business Machines Corporation Method, system, and computer program products for data movement within processor storage
US20080189495A1 (en) * 2007-02-02 2008-08-07 Mcbrearty Gerald Francis Method for reestablishing hotness of pages
KR101396831B1 (ko) * 2007-03-30 2014-05-21 삼성전자주식회사 메모리 접근 제어 방법
US20090049272A1 (en) * 2007-08-13 2009-02-19 International Business Machines Corporation Method for improving the performance of software-managed tlb
US7793049B2 (en) * 2007-10-30 2010-09-07 International Business Machines Corporation Mechanism for data cache replacement based on region policies
US7761740B2 (en) * 2007-12-13 2010-07-20 Spansion Llc Power safe translation table operation in flash memory
US7472226B1 (en) * 2008-03-20 2008-12-30 International Business Machines Corporation Methods involving memory caches

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170111196A (ko) * 2016-03-25 2017-10-12 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템

Also Published As

Publication number Publication date
TW201022936A (en) 2010-06-16
CN102187398B (zh) 2015-04-29
US20140237169A1 (en) 2014-08-21
US8725927B2 (en) 2014-05-13
US9418017B2 (en) 2016-08-16
EP2335246A2 (en) 2011-06-22
JP2012506093A (ja) 2012-03-08
US20100095049A1 (en) 2010-04-15
WO2010045000A3 (en) 2010-07-01
EP2335246A4 (en) 2013-01-02
WO2010045000A2 (en) 2010-04-22
CN102187398A (zh) 2011-09-14

Similar Documents

Publication Publication Date Title
US9418017B2 (en) Hot memory block table in a solid state storage device
US8832360B2 (en) Solid state storage device controller with expansion mode
US9405679B2 (en) Determining a location of a memory device in a solid state device
EP2335247B1 (en) Solid state storage device controller with parallel operation mode
US20180211707A1 (en) Semiconductor memory device and method of controlling semiconductor memory device
US11568921B2 (en) Read-time overhead and power optimizations with command queues in memory device

Legal Events

Date Code Title Description
A201 Request for examination
E601 Decision to refuse application