KR20200033985A - 논리적/물리적 매핑 - Google Patents

논리적/물리적 매핑 Download PDF

Info

Publication number
KR20200033985A
KR20200033985A KR1020207007961A KR20207007961A KR20200033985A KR 20200033985 A KR20200033985 A KR 20200033985A KR 1020207007961 A KR1020207007961 A KR 1020207007961A KR 20207007961 A KR20207007961 A KR 20207007961A KR 20200033985 A KR20200033985 A KR 20200033985A
Authority
KR
South Korea
Prior art keywords
update
cache
stored
updated
entry
Prior art date
Application number
KR1020207007961A
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 KR20200033985A publication Critical patent/KR20200033985A/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/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/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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • 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
    • 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
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices

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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 논리적/물리적(logical to physical) 매핑을 위한 장치 및 방법을 포함한다. 다수의 실시형태는 논리적/물리적(L2P) 업데이트 테이블, L2P 테이블 캐시 및 제어기를 포함한다. 제어기는 L2P 테이블에 적용될 업데이트의 리스트가 L2P 업데이트 테이블에 저장되도록 구성될 수 있다.

Description

논리적/물리적 매핑
본 발명은 일반적으로 반도체 메모리 및 방법에 관한 것으로, 더욱 특히 논리적/물리적 매핑(logical to physical mapping)에 관한 것이다.
메모리 디바이스는 일반적으로 컴퓨터 또는 다른 전자 디바이스의 내부 디바이스, 반도체 디바이스, 집적 회로 디바이스 및/또는 외부 착탈식 디바이스로서 제공된다. 휘발성 및 비-휘발성 메모리를 포함한 많은 다른 유형의 메모리가 있다. 휘발성 메모리는 데이터를 유지하기 위한 전력을 필요로 할 수 있으며, 랜덤 액세스 메모리(Random-Access Memory: RAM), 동적 램덤 액세스 메모리(Dynamic Random Access Memory: DRAM), 및 동기식 동적 랜덤 액세스 메모리(Synchronous Dynamic Random Access Memory: SDRAM)를 포함할 수 있다. 비-휘발성 메모리는 전력이 공급되지 않을 때 저장된 데이터를 유지할 수 있으며, 특히 NAND 플래시 메모리, NOR 플래시 메모리, 위상 변화 랜덤 액세스 메모리(PCRAM), 저항성 랜덤 액세스 메모리 (RRAM) 및, 자기 랜덤 액세스 메모리 (MRAM)와 같은 스토리지 메모리를 포함할 수 있다.
메모리 디바이스는 함께 결합되어 솔리드 스테이트 드라이브(Solid State Drive SSD)를 형성할 수 있다. SSD는 다양한 유형의 비-휘발성 및 휘발성 메모리 중에서, 비-휘발성 메모리(예를 들어, NAND 플래시 메모리 및/또는 NOR 플래시 메모리)를 포함할 수 있고, 및/또는 휘발성 메모리(예를 들어, DRAM 및/또는 SRAM)를 포함할 수 있다. 플래시 메모리 디바이스는, 예를 들어 플로팅 게이트와 같은 전하 저장 구조부에 데이터를 저장하는 메모리 셀을 포함할 수 있고, 광범위한 전자 애플리케이션을 위한 비-휘발성 메모리로서 이용될 수 있다. 플래시 메모리는 일반적으로 높은 메모리 밀도, 높은 신뢰성 및 낮은 전력 소비를 허용하는 하나의 트랜지스터 메모리 셀을 사용한다.
솔리드 스테이트 드라이브는 성능, 크기, 중량, 견고성, 동작 온도 범위 및 전력 소비의 측면에서 하드 드라이브에 비해 이점을 가질 수 있으므로, SSD는 컴퓨터용 주 저장 볼륨으로서 하드 디스크 드라이브를 대체하는 데 사용될 수 있다. 예를 들어, SSD는 이동 부품이 없기 때문에 자기 디스크 드라이브와 비교할 때 우수한 성능을 가질 수 있으며, 이는 자기 디스크 드라이브와 관련된 탐색 시간, 레이턴시, 및 다른 전기-기계 지연을 회피할 수 있다.
도 1은 본 발명의 다수의 실시형태에 따른 메모리 시스템을 포함하는 컴퓨팅 시스템 형태의 장치의 기능 블록도이다.
도 2는 본 발명의 다수의 실시형태에 따른 논리적/물리적 매핑 구조의 일례를 도시한다.
도 3은 본 발명의 다수의 실시형태에 따른 논리적/물리적 매핑과 관련하여 호스트 판독을 수행하기 위한 흐름도를 도시한다.
도 4는 본 발명의 다수의 실시형태에 따른 논리적/물리적 매핑과 관련하여 호스트 기입을 수행하기 위한 흐름도를 도시한다.
호스트 시스템은 논리 어드레스를 사용하여 SSD에 저장된 데이터의 블록을 처리할 것이다. 데이터는 비-휘발성 메모리의 물리 어드레스로 SSD에 저장될 것이다. SSD의 제어기는 종종 호스트에 의해 사용된 논리 어드레스로부터 데이터가 저장되는 물리 어드레스로 매핑하기 위한 테이블을 유지 관리한다. 이 테이블은 L2P 테이블이라고 지칭된다. 호스트가 데이터를 판독하려고 할 때, SSD는 요청된 데이터를 페치(fetch)하기 위해 L2P 테이블에서 물리 어드레스를 룩업(look up)할 것이다. 호스트가 SSD에 데이터를 기입하거나 업데이트할 때, L2P 테이블은 업데이트될 것이다. L2P 테이블은 그 자체가 SSD의 비-휘발성 메모리에 저장될 것이지만, SSD 제어기에 의해 사용되거나 업데이트되도록 우선 SSD 제어기 내에 있거나 그에 부착된 휘발성 메모리로 페치되어야 한다. L2P 테이블이 업데이트되면, 업데이트는 어느 시점에서 비-휘발성 메모리에 저장된 테이블에 다시 기입되어야 한다. SSD의 설계 프로세스 동안, 제어기 내에 있거나 그에 부착된 휘발성 메모리가 SSD의 전체 논리 어드레스 공간을 위한 완전한 L2P 테이블을 보유하도록 지정되는지, 또는 적은 휘발성 메모리가 지정되고 비-휘발성 메모리로부터 L2P 테이블의 부분만이 한번에 (즉, 제어기 비-휘발성 메모리를 L2P 테이블을 위한 캐시로서 사용하여) 제어기 메모리에 로딩될 수 있는지가 결정되어야 한다.
개선된 논리적/물리적 매핑을 위한 장치 및 방법이 본 명세서에 제공된다. 본 발명의 하나 이상의 실시형태에서, 장치는 논리적/물리적(L2P) 업데이트 테이블, L2P 테이블 캐시 및 제어기를 포함할 수 있다. 제어기는 L2P 테이블에 적용될 업데이트의 리스트가 L2P 업데이트 테이블에 저장되도록 구성될 수 있다.
논리 블록 어드레싱은 데이터의 논리 영역을 식별하기 위해 호스트에 의해 사용될 수 있는 체계(scheme)이다. 호스트로부터의 논리 어드레스는 L2P 테이블에 의해 관리되는 비-휘발성 메모리의 가장 작은 단위인 변환 단위(translation unit: TU)로 변환된다. L2P 테이블의 각각의 TU는 비-휘발성 메모리의 고유한 위치에 배치될 수 있다. 추가적으로, TU는 또한 물리 어드레스에 대응할 수도 있다. 데이터의 논리 영역은 다수의 데이터 바이트(예를 들어, 256바이트, 512바이트 또는 1,024바이트)일 수 있다. 그러나, 실시형태는 이들 예에 한정되지 않는다.
휘발성 메모리의 일부를 L2P 테이블을 위한 캐시로서 사용하는 것은, 전체 테이블을 한번에 로딩하기에 충분한 휘발성 메모리를 필요로 하는 것과 대조적으로, 적은 휘발성 메모리(예를 들어, DRAM 또는 SRAM)를 필요로 할 수 있게 한다. 그러나, 전체 테이블이 한번에 휘발성 메모리에 상주할 수 있는 경우보다 더 빈번하게 L2P 테이블의 영역이라고 지칭되는 부분을 캐시에 로딩하는 것과 업데이트된 부분을 휘발성 메모리로부터 비-휘발성 메모리로 다시 기입하는 것이 필요하기 때문에 전체 장치에 대한 성능 저하(performance penalty)가 있다.
휘발성 대 비-휘발성 메모리의 정확한 비율에 따라, L2P 캐싱의 시간 영향은, 예를 들어 캐시 적중(cache hit)으로 인해 수정될 수 있고; 그러나 대형 SSD의 경우, 캐시 적중률은 작을 수 있다. 본 발명의 다수의 실시형태는 (예를 들어, L2P 캐싱 체계의 캐시 적중률을 효과적으로 증가시킴으로써) L2P 캐싱의 효율을 증가시키는 것과 같은 이점을 제공할 수 있다.
본 명세서에 설명된 다양한 실시형태는 L2P 캐싱에 이용 가능한 휘발성 메모리(예를 들어, DRAM 또는 SRAM)의 양이 복수의 부분으로 분할되는 L2P 캐싱 접근법을 제공할 수 있다. 예를 들어, L2P 맵에 이용 가능한 휘발성 메모리의 양은 L2P 테이블 캐시(L2P Table Cache) 부분과 L2P 업데이트(L2P Update) 부분으로 분할될 수 있다. L2P 테이블 캐시 부분은 언제라도 전체 L2P 테이블의 서브세트를 캐시로서 보유한다. L2P 테이블의 영역은 판독되고 업데이트될 필요가 있는 캐시에 로딩되며, 업데이트된 때의 해당 영역은 비-휘발성 메모리의 L2P 테이블에 다시 기입될 것이다. L2P 업데이트 부분은, L2P 테이블(즉, 아직 캐시에 판독되지 않고, 수정된 후에 비-휘발성 메모리에 다시 기입되지 않은, 업데이트가 적용되는 테이블의 영역)에 적용되어야 하지만 아직 적용되지 않은 업데이트의 리스트를 포함한다.
또한, 본 명세서의 실시형태는, L2P 업데이트 부분에 저장되는 업데이트가 각 L2P 영역 단위로 해시 테이블(예를 들어, 버킷)에 정렬되는 것을 가능하게 할 수 있고, 이는 L2P 영역에 적용된 업데이트가 L2P 엔트리에 대한 업데이트가 위치되는 해시 테이블의 컨텐츠의 판독에 기초하여 결정되는 것을 가능하게 할 수 있다. 이것은, 적어도 하나의 실시형태에서, 관련하는 업데이트된 L2P 엔트리를 발견하기 위해 큰 데이터 구조를 검색할 필요가 있을 수 있는 일부 접근법과 대조적으로 업데이트된 L2P 엔트리가 위치되는 해시 테이블만이 판독될 수 있기 때문에, 업데이트된 L2P 엔트리의 더 빠른 프로세싱을 가능하게 할 수 있고 및/또는 L2P 업데이트 프로세스의 효율을 증가시킬 수 있다. 예를 들어, L2P 업데이트 프로세스는 이전의 일부 접근법보다 더 효율적일 수 있다. 적어도 하나의 실시형태에서, 업데이트된 L2P 엔트리는, 전체 L2P 영역이 비-휘발성 메모리로부터 휘발성 메모리로 판독되고, 그 후에 프로세서에 의해 휘발성 메모리로부터 판독되는 접근법과 대조적으로, 단일의 휘발성 메모리 판독만이 액세스될 필요가 있을 수 있다.
본 명세서에 사용된 바와 같이, "다수의(a number of)" 것은 하나 이상의 이러한 것을 지칭할 수 있다. 예를 들어, 다수의 메모리 셀은 하나 이상의 메모리 셀을 지칭할 수 있다. 추가적으로, 특히 도면에서 참조 번호와 관련하여 본 명세서에 사용된 지시자 "N"은 이렇게 지정된 다수의 특정 특징부가 본 발명의 다수의 실시형태에 포함될 수 있음을 나타낸다.
본 명세서의 도면은, 제1 숫자 또는 숫자들이 도면 번호에 대응하고 나머지 숫자가 도면의 요소 또는 구성 요소를 식별하는 번호 부여 규칙을 따른다. 상이한 도면들 간의 유사한 요소 또는 구성 요소는 유사한 숫자의 사용에 의해 식별될 수 있다. 예를 들어, 114는 도 1에서 요소 "14"를 언급할 수 있고, 유사한 요소가 도 2에서는 114로서 언급될 수 있다.
도 1은 본 발명의 다수의 실시형태에 따른 메모리 시스템(104)을 포함하는 컴퓨팅 시스템(101) 형태의 장치의 기능 블록도이다. 본 명세서에 사용된 바와 같이, "장치"는, 예를 들어 회로 또는 회로망, 다이 또는 다이스, 모듈 또는 모듈들, 디바이스 또는 디바이스들, 또는 시스템 또는 시스템들과 같은 다양한 구조 또는 구조들의 조합 중 임의의 것을 지칭할 수 있지만, 이에 한정되지 않는다.
메모리 시스템(104)은, 예를 들어 솔리드 스테이트 드라이브(SSD)일 수 있다. 도 1에 도시된 실시형태에서, 메모리 시스템(104)은 호스트 인터페이스(106), 시스템(104)의 저장 볼륨으로서 기능하는 메모리(예를 들어, 다수의 메모리 디바이스(110-1, 110-2, …, 110-N)), 및 호스트 인터페이스(106) 및 메모리 디바이스(110-1, 110-2, …, 110-N)에 결합된 제어기(108)(예를 들어, SSD 제어기)를 포함한다. 메모리 디바이스(110-1, 110-2, …, 110-N)는, 예를 들어 다수의 비-휘발성 메모리 어레이를 포함할 수 있다.
비-휘발성 어레이는, 예를 들어 NAND 아키텍처를 갖는 플래시 어레이, 위상 변화 어레이 등일 수 있다. 실시형태는 특정 유형의 메모리 어레이 또는 어레이 아키텍처에 한정되지 않는다.
동작 시, 데이터는, 예를 들어 데이터의 페이지로서 메모리 시스템의 메모리 디바이스(예를 들어, 메모리 시스템(104)의 메모리 디바이스(110-1, …, 110-N))에 기입되고 및/또는 그로부터 판독될 수 있다. 이와 같이, 데이터의 페이지는 메모리 시스템의 데이터 전송 크기라고 지칭될 수 있다. 데이터는 섹터(예를 들어, 호스트 섹터)라고 지칭되는 데이터 세그먼트에서 호스트(102)로/로부터 전송될 수 있다. 이와 같이, 데이터의 섹터는 호스트의 데이터 전송 크기라고 지칭될 수 있다. 일부 실시형태에서, NAND 블록은 소거 블록이라고 지칭될 수 있으며, 블록은 소거의 단위이고 페이지는 판독 및/또는 기입의 척도이다.
호스트 인터페이스(106)는 메모리 시스템(104)과 호스트(102)와 같은 다른 디바이스 사이에서 정보를 통신하는 데 사용될 수 있다. 호스트(102)는 메모리 액세스 디바이스(예를 들어, 프로세서)를 포함할 수 있다. 본 명세서에 사용된 바와 같이, "프로세서"는 병렬 프로세싱 시스템과 같은 다수의 프로세서, 다수의 코프로세서 등을 의도할 수 있다. 예시적인 호스트는 퍼스널 랩톱 컴퓨터, 데스크톱 컴퓨터, 디지털 카메라, 디지털 기록 및 재생 디바이스, 모바일(예를 들어, 스마트) 폰, PDA, 메모리 카드 리더, 인터페이스 허브 등을 포함할 수 있다.
호스트 인터페이스(106)는 표준화된 물리 인터페이스의 형태일 수 있다. 예를 들어, 메모리 시스템(104)이 컴퓨팅 시스템(101)에 정보 저장을 위해 사용될 때, 호스트 인터페이스(106)는 다른 물리 커넥터 및/또는 인터페이스 중에서도 SATA(Serial Advanced Technology Attachment) 물리 인터페이스, PCIe(Peripheral Component Interconnect Express) 물리 인터페이스, 또는 USB(Universal Serial Bus) 물리 인터페이스일 수 있다. 그러나, 일반적으로, 호스트 인터페이스(106)는 메모리 시스템(104)과 호스트 인터페이스(106)에 대한 호환 가능한 리셉터를 갖는 호스트(예를 들어, 호스트(102)) 사이에서 제어, 어드레스, 정보(예를 들어, 데이터) 및 다른 신호를 전달하기 위한 인터페이스를 제공할 수 있다.
제어기(108)는, 예를 들어 제어 회로 및/또는 로직(예를 들어, 하드웨어 및 펌웨어)을 포함할 수 있다. 제어기(108)는 메모리(110-1, 110-2, …, 110-N)와 동일한 물리 디바이스(예를 들어, 동일한 다이)에 포함될 수 있다. 예를 들어, 제어기(108)는 물리 호스트 인터페이스(106) 및 메모리(110-1, 110-2, …, 110-N)를 포함하는 인쇄 회로 기판에 결합된 ASIC(Application Specific Integrated Circuit)일 수 있다. 대안적으로, 제어기(108)는 메모리(110-1, 110-2, …, 110-N)를 포함하는 물리 디바이스에 통신 가능하게 결합되는 별개의 물리 디바이스에 포함될 수 있다. 다수의 실시형태에서, 제어기(108)의 구성 요소는 분산형 제어기로서 다수의 물리 디바이스(예를 들어, 메모리와 동일한 다이의 일부 구성 요소, 및 다른 다이, 모듈 또는 보드의 일부 구성 요소)에 걸쳐 분산될 수 있다.
제어기(108)는 다른 동작 중에서도 메모리 디바이스(110-1, 110-2, …, 110-N)와 통신하여 정보를 감지(예를 들어, 판독), 프로그램(예를 들어, 기입) 및/또는 소거할 수 있다. 제어기(108)는 다수의 집적 회로 및/또는 이산적 구성 요소일 수 있는 회로를 가질 수 있다. 다수의 실시형태에서, 제어기(108)의 회로는 메모리 디바이스(110-1, 110-2, …, 110-N) 및/또는 호스트(102)와 메모리 시스템(104) 사이에 변환 층(예를 들어, 플래시 변환 층)을 제공하기 위한 회로를 통한 액세스를 제어하기 위한 제어 회로를 포함할 수 있다.
시스템(104)은 또한 제어기(108)에 결합된 휘발성 메모리(113)를 포함한다. 휘발성 메모리(113)는 제어기의 내부에 있거나 또는 그 외부에 부착될 수 있다. 휘발성 메모리로서 설명되었지만, 일부 실시형태에서는 메모리(113)가 비-휘발성일 수도 있다. 이 휘발성 메모리(113) 내에는, L2P 테이블 캐시(114)를 위한 공간의 일부가 할당된다. 추가적으로, 휘발성 메모리(113)의 일부는 L2P 업데이트 테이블(115)에 할당된다.
휘발성 메모리(113)의 L2P 테이블 캐시(114) 부분은 메모리 디바이스(110-1, …, 110-N) 중 하나 이상으로부터 L2P 테이블(111-1, …, 111-N)의 영역을 로딩하기 위해 제어기에 의해 사용될 수 있다. L2P 테이블 캐시(114)에 로딩되는 동안 엔트리가 수정되면, 수정된 엔트리는 제어기(108)에 의해 결정된 빈도 및 비율로 비-휘발성 메모리(110-1 .. 110-N)의 L2P 테이블(110-1 .. 110-N)에 다시 기입될 것이다.
일부 실시형태에서, L2P 업데이트 테이블(115)은 해시 테이블의 세트로 분할될 것이다. 예를 들어, L2P 업데이트 테이블(115)은 L2P 테이블(111-1, …, 111-N)의 각 영역에 대한 해시 테이블을 유지할 수 있다.
호스트(102) 기입 동작의 결과로서, 제어기(108)가 L2P 테이블 캐시(114)에 현재 로딩된 영역에 포함되지 않은 L2P 테이블(110-1, …, 110-3)의 엔트리를 업데이트할 필요가 있을 때에는, L2P 영역을 로딩하는 것, 그것을 수정하는 것 및 그것을 비-휘발성 메모리(110-1, …, 110-3)의 L2P 테이블에 다시 즉시 기입하는 것의 즉각적인 오버 헤드를 회피하기 위해서, 간단히 L2P 업데이트 휘발성 메모리(113)의 엔트리를 L2P 테이블의 영역에 대응하는 해시 테이블에 삽입할 것이고, L2P 테이블은 이 정보로부터 나중에 업데이트된다.
L2P 업데이트 휘발성 메모리 해시 테이블을 사용하여 필요한 업데이트를 유지함으로써, 보류중인 L2P 테이블의 영역에 대해 다수의 업데이트가 있을 때까지 비-휘발성 메모리(110-1 .. 110-N)에 대한 실제 동작이 연기될 수 있다. 그 후, 이 L2P 테이블 영역이 L2P 테이블(110-1 .. 110-N)로부터 L2P 테이블 캐시(114)에 로딩될 때, L2P 영역이 L2P 테이블(111-1, …, 111-N)에 다시 기입되기 전에 모든 업데이트가 한번에 적용될 수 있다. 이것은 L2P 테이블(110-1, …, 110-N)를 업데이트하기 위해 비-휘발성 메모리(110-1 .. 110-N)에 필요한 판독 및 기입 동작의 수를 상당히 감소시킬 수 있다.
도 2는 본 발명의 다수의 실시형태에 따른 논리적/물리적 매핑 구조의 일례를 도시한다. 도 2에 도시된 바와 같이, 드라이브의 L2P 매핑에 할당된 총 공간은 캐싱을 용이하게 하기 위해 복수의 영역(243-1, …, 243-N)으로 분할된다. 영역의 수는 SSD의 총 크기에 기초할 수 있다. 예를 들어, 스토리지 용량이 큰 SSD(예를 들어, 16,000 테라바이트(TB))는 수천 개의 이러한 영역이 있을 수 있다.
전체 L2P 테이블(243-1, …, 243-N)은 NAND(240)에 저장된다. 임의의 시점에서, 이 테이블의 다수의 영역은 L2P 테이블 캐시(214)의 휘발성 메모리(예를 들어, 도 1에 도시된 휘발성 메모리(113))에 캐싱될 수 있다. 캐시에 저장된 특정 L2P 영역은 호스트 시스템으로부터 전송된 커맨드 및/또는 SSD 제어기의 내부 동작에 기초하여 시간 경과에 따라 달라질 것이다.
제어기 휘발성 메모리에는 또한 해시 테이블(245-1, …, 245-N)일 수 있는 L2P 업데이트 데이터 구조(215)가 저장될 것이다. 해당 영역이 현재 L2P 테이블 캐시에 로딩되는지의 여부에 상관없이 각 L2P 영역(243)에 대한 테이블이 있을 것이다. L2P 업데이트 구조의 해시 테이블은 고정된 크기를 갖거나 동적으로 할당될 수 있다.
L2P 엔트리가 업데이트되는 것에 응답하여, 예를 들어 L2P 엔트리에 대한 변환 단위(TU) 업데이트에 응답하여, TU는 새로운 위치와 함께 L2P 업데이트 부분(215)에 할당된 해시 테이블(245-1, …, 245-N)에 추가될 수 있다. L2P 엔트리에 대한 업데이트는 TU가 새로운 물리 비-휘발성 메모리 위치(예를 들어, 어드레스)에 기입됨으로써 야기될 수 있다. 일부 실시형태에서, TU 업데이트는 가비지(garbage) 수집 동작, 호스트 기입, 또는 L2P 엔트리에 대한 업데이트를 필요로 할 수 있는 다른 동작으로부터 발생할 수 있다.
일부 실시형태에서, 특정 NAND 영역(114-1, ..., 243-N)에 대응하는 해시 테이블(245-1, …, 245-N)의 크기, 각각의 특정 해시 테이블(245-1, …, 245-N)의 엔트리의 수는 다를 수 있다. 예를 들어, 각각의 해시 테이블(245-1, …, 245-N)의 엔트리만이 호스트 기입 또는 가비지 수집 동작에 의해 업데이트된 TU에 대응하는 엔트리이기 때문에, 각각의 해시 테이블(245-1, …, 245-N)의 크기는 발생된 TU 업데이트 수에 기초하여 달라질 수 있다. 일부 실시형태에서, 이것은, 각각의 해시 테이블(245-1, …, 245-N)이 그와 관련된 각각의 NAND 영역(243-1, …, 243-N)에 대응하는 업데이트된 TU만을 저장하기 때문에, 기입들을 병합할 가능성을 증가시킬 수 있다. 또한, TU가 일부 접근법보다 더 치밀한 방식으로 정보를 저장할 수 있기 때문에, 일부 접근법에 비해 더 큰 수의 L2P 업데이트가 휘발성 메모리에 저장될 수 있다. 또한, 휘발성 메모리에 더 큰 수의 업데이트를 저장함으로써, 데이터가 비-휘발성으로 플러싱되는 빈도가 일부 접근법에 비해 감소될 수 있다.
일부 실시형태에서는, 다수의 룩업이 해시 테이블(245-1, …, 245-N)에서 수행될 수 있다. 효율적인 방식으로 다수의 룩업을 용이하게 하기 위해서, 다양한 해싱 메커니즘이 사용될 수 있다. 예를 들어, 해시 테이블(245-1, …, 245-N)과 같은 테이블의 해시 함수의 값에 대해 해시 충돌이 해결되는 쿠쿠 해싱 메커니즘(cuckoo hashing mechanism)이 사용될 수 있다. 일부 실시형태에서는, 개시된 L2P 매핑과 함께 쿠쿠 해싱 메커니즘을 사용하여, 해시 테이블(245-1, …, 245-N)의 대략 91%의 이용을 가능하게 할 수 있다. 쿠쿠 해싱 메커니즘의 일례는 단일 테이블에서 3개의 해시를 사용하는 것을 포함할 수 있다. 예를 들어, 해시 테이블(245-1, …, 245-N)의 각 엔트리에 대해 3개의 가능한 위치가 있을 수 있다. 그러나, 실시형태는 쿠쿠 해싱 메커니즘을 사용하는 것에 한정되지 않고, 곱셈 해싱 메커니즘(multiplicative hashing mechanism)과 같은 다른 해싱 메커니즘이 사용될 수 있다.
도 3은 본 발명의 다수의 실시형태에 따른 논리적/물리적 매핑을 사용하여 호스트 판독을 수행하기 위한 흐름도(350)를 도시한다. 일부 실시형태에서, 본 발명에 따라 호스트 판독을 수행하는 것은 우선 L2P 업데이트 부분이 호스트가 요청하고 있는 데이터를 포함하는 TU의 물리 위치에 관한 정보를 포함하는지를 결정하기 위해 L2P 업데이트 부분을 점검하는 것을 포함한다. L2P 업데이트 부분에 저장된 최근에 업데이트된 TU가 없는 경우, L2P 테이블 캐시는 판독될 데이터가 그 안에 저장되어 있는지를 결정하기 위해 점검될 수 있다. 판독될 데이터가 현재 휘발성 메모리에 로딩된 L2P 테이블 캐시의 영역 내에 없으면, 비-휘발성 메모리 L2P 테이블로부터 로딩될 필요가 있을 것이다.
351에서, 본 발명에 따라 호스트 판독을 수행하는 프로세스는 블록 352에서 L2P 업데이트 테이블 룩업을 수행함으로써 시작된다. 업데이트 테이블 룩업을 수행하는 것(352)은 호스트에 의해 판독될 데이터에 대응하는 최근에 업데이트된 TU가 존재하는지를 결정하기 위해 L2P 업데이트 부분의 엔트리를 검색하는 것을 포함할 수 있다. 일부 실시형태에서, L2P 업데이트 부분의 엔트리를 검색하는 것은 호스트에 의해 판독될 데이터에 대응하는 최근에 업데이트된 TU가 존재하는지를 결정하기 위해 L2P 업데이트 부분에 포함된 해시 테이블을 검색하는 것을 포함한다. 호스트 판독을 위해 찾는 엔트리가 L2P 업데이트 부분에 위치되는 경우, 예를 들어, 찾는 엔트리가 "발견된(found)" 경우, 355에서 호스트 판독 동작이 수행되고 프로세스는 블록 356에서 종료된다.
호스트 판독을 위해 찾는 엔트리가 "발견되지 않은(not found)" 경우, 블록 353에서 L2P 테이블 캐시 룩업이 수행될 수 있다. 353에서 L2P 테이블 캐시 룩업을 수행하는 것은 호스트에 의해 판독될 엔트리가 L2P 테이블 캐시에 저장되어 있는지를 결정하기 위해 L2P 테이블 캐시의 엔트리를 검색하는 것을 포함할 수 있다. 엔트리가 발견된 경우, 블록 355에서 호스트 판독 동작이 L2P 테이블에 지정된 물리적 비-휘발성 위치에서 수행되고, 호스트 판독 동작을 수행하는 프로세스는 블록 356에서 종료된다.
그러나, 엔트리가 L2P 업데이트 부분 또는 L2P 테이블 캐시에서 발견되지 않은 경우, 로드 영역 동작이 블록 354에서 수행될 수 있다. 로드 영역 동작은 비-휘발성 메모리에 저장된 L2P 영역을 로딩하는 것을 포함할 수 있다. 로딩되면, 이어서 호스트 판독을 위해 찾는 엔트리를 위치 지정하기 위해 L2P 영역이 검색될 수 있다. 비-휘발성 메모리에 저장된 L2P 영역이 로딩된 후, 블록 355에서 L2P 테이블에 지정된 물리적 비-휘발성 위치에서 호스트 판독 동작이 수행될 수 있고, 호스트 판독 동작을 수행하는 프로세스는 블록 356에서 종료된다. 일부 실시형태에서, L2P 테이블 캐시에 추가 공간이 필요한 경우, 이전에 로딩된 영역은 업데이트가 없으면 폐기되고, 그렇지 않고 업데이트되었으면 비-휘발성 메모리에 다시 기입되어, L2P 영역 캐시에 추가 공간을 확보할 수 있다.
도 4는 본 발명의 다수의 실시형태에 따른 논리적/물리적 맵을 사용하여 호스트 기입을 수행하기 위한 흐름도(459)를 도시한다. 가비지 수집 동작은 도 4에 설명된 호스트 기입 프로세스와 유사한 방식으로 수행됨에 유의한다. 460에서, 본 발명에 따른 호스트 기입 동작을 수행하는 프로세스는 블록 461에서 호스트로부터 비-휘발성 메모리의 가용한 빈 위치로의 데이터의 기입을 수행함으로써 시작된다. 일부 구현예에서, 호스트 데이터에 대한 캐시의 사용으로 인해 호스트 데이터의 비-휘발성 메모리 어레이로의 이러한 실제 기입이 지연될 수 있음에 유의한다.
블록 462에서, L2P 테이블 캐시가 호스트 기입 데이터의 논리 어드레스를 어드레싱하는 필요한 영역을 포함하는지에 대한 결정이 이루어질 수 있다. 예를 들어, 블록 462에서 L2P 테이블 캐시가 이전에 L2P 테이블 캐시에 로딩되어 있는 필요한 영역을 미리 갖고 있는지에 대한 결정이 이루어질 수 있다. 영역이 미리 L2P 테이블 캐시에 로딩되어 있는 경우(예를 들어, 블록 462의 YES 분기), L2P 업데이트 테이블에 업데이트를 추가할 필요가 없고, 흐름은 이하에서 더욱 상세히 설명되는 블록 466으로 계속될 수 있다. 그러나, L2P 테이블 캐시가 필요한 영역을 포함하지 않는 경우(예를 들어, 블록 462의 NO 분기), 흐름은 블록 463으로 계속될 수 있다.
블록 463에서, L2P 업데이트 테이블에 공간이 있는지의 결정이 이루어질 수 있다. 예를 들어, 블록 463에서, L2P 업데이트 부분이 호스트 기입 동작으로부터 발생한 업데이트된 TU를 수신하기에 충분한 가용 공간을 포함하는지에 대한 결정이 이루어질 수 있다. L2P 업데이트 부분에 업데이트된 TU를 수신하기에 충분한 공간이 있는 경우, 468에서 엔트리가 L2P 업데이트 테이블에 삽입될 수 있고, 호스트 기입을 수행하는 프로세스는 블록 469에서 종료될 수 있다. 일부 실시형태에서, 엔트리는 블록 468에서 L2P 맵 부분에 포함된 해시 테이블에 삽입될 수 있다.
업데이트 테이블에 업데이트된 TU를 저장하기에 충분한 공간이 없는 경우, 블록 464에서 적절한 영역이 현재 캐시에 로딩되어 있는지를 결정하기 위해 L2P 테이블 캐시 룩업이 수행될 수 있다. 영역 캐시 룩업을 수행하는 것은 대응하는 엔트리가 저장되어 있는지를 결정하기 위해 L2P 테이블 캐시를 검색하는 것을 포함할 수 있다. 블록 464에서 대응하는 엔트리가 발견되지 않은 경우, 465에서 L2P 테이블 캐시 영역이 비-휘발성 메모리로부터 로딩될 것이다. 이를 위해 L2P 테이블의 비-휘발성 메모리의 다른 영역을 폐기하거나 그 영역에 다시 기입함으로써 휘발성 메모리에 공간이 생성되어야 할 수도 있음에 유의한다.
L2P 테이블의 적절한 영역이 L2P 테이블 캐시에 로딩되면, 466에서 이 호스트 기입 동작에 필요한 업데이트 이외에 L2P 업데이트 테이블의 해당 영역에 대한 모든 관련 엔트리가 업데이트될 수 있다. 업데이트되면, 467에서 영역이 비-휘발성 메모리에 저장된 L2P 테이블에 다시 기입될 것이다. 비-휘발성 메모리에 다시 기입하는 것은 즉각적이거나 지연될 수 있음에 유의한다. L2P 테이블 캐시의 영역이 업데이트되고 선택적으로 비-휘발성 메모리에 다시 기입되면, 호스트 기입에 필요한 테이블 업데이트는 469에서 종료될 수 있다.
특정 실시형태들이 본 명세서에 도시되고 설명되었지만, 이 기술 분야에 통상의 지식을 가진 자라면, 동일한 결과를 달성하도록 계산된 배열이 도시된 특정 실시형태 대신에 사용될 수 있다는 것을 이해할 수 있을 것이다. 본 발명은 본 발명의 다수의 실시형태의 적응 또는 변형을 포함하도록 의도되어 있다. 상기 설명은 제한적인 것이 아니라 예시적인 방식으로 이루어진 것으로 이해되어야 한다. 상기 실시형태 및 본 명세서에 구체적으로 설명되지 않은 다른 실시형태의 조합은 상기 설명을 검토할 때 이 기술 분야에 통상의 지식을 가진 자에게 명백할 것이다. 본 발명의 다수의 실시형태의 범위는 상기 구조 및 방법이 사용되는 다른 적용예를 포함한다. 따라서, 본 발명의 다수의 실시형태의 범위는 첨부된 청구범위를 참조하여 이러한 청구범위가 부여되는 균등물의 전체 범위와 함께 결정되어야 한다.
전술한 상세한 설명에서, 일부 특징은 본 발명을 간소화하기 위해 단일 실시형태에서 함께 그룹화되어 있다. 이 개시 방법은 본 발명의 개시된 실시형태가 각 청구항에 명시적으로 언급된 것보다 더 많은 특징을 사용해야 한다는 의도를 반영하는 것으로 해석되지 않아야 한다. 오히려, 이하의 청구범위가 반영하는 바와 같이, 본 발명의 주제는 단일의 개시된 실시형태의 모든 특징보다 적다. 따라서, 다음의 청구범위는 상세한 설명에 포함되며, 각 청구항은 그 자체가 별개의 실시형태로서 독립하고 있다.

Claims (20)

  1. 장치에 있어서,
    논리적/물리적(L2P) 업데이트 테이블 및 L2P 테이블 캐시; 및
    제어기를 포함하고, 상기 제어기는 L2P 테이블에 적용될 업데이트의 리스트가 상기 L2P 업데이트 테이블에 저장되도록 구성되는, 장치.
  2. 제1항에 있어서, 상기 L2P 업데이트 테이블 및 상기 L2P 테이블 캐시는 상기 제어기에 결합된 휘발성 메모리의 일부를 포함하는, 장치.
  3. 제1항에 있어서, 상기 L2P 테이블 캐시는 상기 L2P 테이블의 일부를 저장하도록 구성되는, 장치.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 제어기는,
    업데이트된 L2P 엔트리에 대응하는 데이터가 상기 L2P 업데이트 테이블에 저장되도록 구성되고;
    상기 제어기에 의해 상기 L2P 테이블의 룩업 및 업데이트 동작을 용이하게 하기 위해 비-휘발성 메모리의 상기 L2P 테이블로부터의 L2P 영역에 대응하는 데이터가 상기 L2P 테이블 캐시에 저장되도록 구성되는, 장치.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 제어기는 또한,
    업데이트된 변환 단위(translation unit: TU)가 상기 L2P 업데이트 테이블에 상기 TU 업데이트를 수신하기 위한 공간이 있다는 결정에 응답하여 상기 L2P 업데이트 테이블에 추가되도록 구성되고;
    상기 L2P 업데이트 테이블에 상기 업데이트된 TU를 수신하기 위한 공간이 없다는 결정에 응답하여 상기 업데이트된 TU가 상기 L2P 테이블 캐시에 저장되어 있는지의 여부를 결정하기 위해 영역 캐시 룩업이 상기 L2P 테이블 캐시에서 수행되도록 구성되는, 장치.
  6. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 제어기는 또한 상기 L2P 테이블 캐시가 상기 L2P 테이블의 비-휘발성 메모리 스토리지로부터 L2P 영역을 판독하기 위한 버퍼로서 사용되도록 구성되는, 장치.
  7. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 제어기는 또한 상기 데이터 엔트리가 상기 L2P 업데이트 테이블에 저장되어 있지 않다는 결정에 응답하여 호스트에 의해 요청된 데이터 엔트리의 위치에 대해 상기 L2P 테이블 캐시에서 검색이 수행되도록 구성되는, 장치.
  8. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 L2P 업데이트 테이블은 복수의 해시 테이블을 포함하며, 상기 복수의 해시 테이블 중 각각의 해시 테이블은 특정 L2P 영역에 대응하는, 장치.
  9. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 제어기는 상기 L2P 업데이트 테이블에 저장된 상기 L2P 엔트리가 단일의 동적 랜덤 액세스 메모리 액세스 커맨드를 사용하여 기입되도록 구성되는, 장치.
  10. 방법에 있어서,
    논리적/물리적(L2P) 업데이트 테이블에 호스트 기입 동작으로부터 발생한 업데이트된 변환 단위(TU)를 수신하기 위한 공간이 있는지의 여부를 결정하는 단계;
    상기 L2P 업데이트 테이블에 상기 TU 업데이트를 수신하기 위한 공간이 있다는 결정에 응답하여 상기 업데이트된 TU를 상기 L2P 업데이트 테이블에 추가하는 단계를 포함하는, 방법.
  11. 제10항에 있어서, 상기 L2P 업데이트 테이블에 상기 업데이트된 TU를 수신하기 위한 공간이 없다고 결정하는 것에 응답하여 상기 업데이트된 TU가 L2P 테이블 캐시에 저장되어 있는지의 여부를 결정하기 위해 상기 L2P 테이블 캐시에서 영역 캐시 룩업을 수행하는 단계를 더 포함하는, 방법.
  12. 제11항에 있어서, 상기 업데이트된 TU가 상기 L2P 테이블 캐시에 저장되어 있지 않다고 결정하는 것에 응답하여 L2P 테이블로부터의 영역을 상기 L2P 테이블 캐시에 로딩하는 단계를 더 포함하는, 방법.
  13. 제10항 또는 제11항에 있어서,
    상기 업데이트된 TU가 상기 L2P 테이블 캐시에 저장되어 있지 않다고 결정하는 것에 응답하여 L2P 테이블로부터의 영역을 상기 L2P 테이블 캐시에 로딩하는 단계; 및
    상기 L2P 업데이트 테이블에 로딩된 엔트리로 L2P 테이블 캐시를 업데이트하는 단계를 더 포함하는, 방법.
  14. 제13항에 있어서, 저장된 엔트리를 업데이트하기 위해 상기 업데이트된 L2P 업데이트 테이블을 상기 L2P 테이블 캐시에 기입하는 단계를 더 포함하는, 방법.
  15. 방법에 있어서,
    특정 엔트리가 논리적/물리적(L2P) 업데이트 테이블에 저장되어 있는지의 여부를 결정하는 단계; 및
    상기 특정 엔트리가 상기 L2P 업데이트 테이블에 저장되어 있다는 결정에 응답하여 상기 특정 엔트리와 관련된 데이터를 판독하는 단계를 포함하는, 방법.
  16. 제15항에 있어서,
    상기 특정 엔트리가 상기 L2P 업데이트 테이블에 저장되어 있지 않다고 결정하는 것에 응답하여 상기 특정 엔트리가 L2P 테이블 캐시에 저장되어 있는지의 여부를 결정하는 단계; 및
    상기 특정 엔트리가 상기 L2P 테이블 캐시에 저장되어 있다는 결정에 응답하여 상기 특정 엔트리와 관련된 데이터를 판독하는 단계를 더 포함하는, 방법.
  17. 제15항에 있어서,
    상기 특정 엔트리가 상기 L2P 업데이트 테이블 또는 상기 L2P 테이블 캐시에 저장되어 있지 않다는 결정에 응답하여 L2P 캐시 테이블 영역을 로딩하는 단계; 및
    상기 L2P 캐시 테이블로부터 상기 특정 엔트리와 관련된 데이터를 판독하는 단계를 더 포함하는, 방법.
  18. 제15항 내지 제17항 중 어느 한 항에 있어서, 상기 특정 엔트리는 임계 기간 내에 업데이트되는, 방법.
  19. 제15항 내지 제17항 중 어느 한 항에 있어서, 상기 특정 엔트리가 상기 L2P 업데이트 테이블에 저장되어 있다는 결정의 일부로서 상기 특정 엔트리가 상기 L2P 업데이트 테이블과 관련된 해시 테이블에 저장되어 있는지의 여부를 결정하는 단계를 더 포함하는, 방법.
  20. 제15항 내지 제17항 중 어느 한 항에 있어서, 상기 특정 엔트리는 최종 가비지(garbage) 수집 동작이 수행된 이후에 업데이트되는, 방법.
KR1020207007961A 2017-08-21 2018-08-14 논리적/물리적 매핑 KR20200033985A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/681,619 US10628326B2 (en) 2017-08-21 2017-08-21 Logical to physical mapping
US15/681,619 2017-08-21
PCT/US2018/046657 WO2019040320A1 (en) 2017-08-21 2018-08-14 LOGICAL MAPPING TO PHYSICS

Publications (1)

Publication Number Publication Date
KR20200033985A true KR20200033985A (ko) 2020-03-30

Family

ID=65361435

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207007961A KR20200033985A (ko) 2017-08-21 2018-08-14 논리적/물리적 매핑

Country Status (5)

Country Link
US (2) US10628326B2 (ko)
EP (1) EP3673377B1 (ko)
KR (1) KR20200033985A (ko)
CN (1) CN111033477B (ko)
WO (1) WO2019040320A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10628326B2 (en) * 2017-08-21 2020-04-21 Micron Technology, Inc. Logical to physical mapping
JP2019057074A (ja) * 2017-09-20 2019-04-11 東芝メモリ株式会社 メモリシステム
JP2019057194A (ja) * 2017-09-22 2019-04-11 東芝メモリ株式会社 メモリシステム、及び不揮発性メモリの制御方法
US10970226B2 (en) * 2017-10-06 2021-04-06 Silicon Motion, Inc. Method for performing access management in a memory device, associated memory device and controller thereof, and associated electronic device
CN111610930B (zh) 2019-02-26 2023-05-02 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN111610931B (zh) 2019-02-26 2023-05-02 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN111611178B (zh) 2019-02-26 2023-05-26 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN111610929B (zh) * 2019-02-26 2023-04-14 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
US11768613B2 (en) 2019-06-25 2023-09-26 Micron Technology, Inc. Aggregation and virtualization of solid state drives
US11055249B2 (en) * 2019-06-25 2021-07-06 Micron Technology, Inc. Access optimization in aggregated and virtualized solid state drives
US11762798B2 (en) 2019-06-25 2023-09-19 Micron Technology, Inc. Aggregated and virtualized solid state drives with multiple host interfaces
KR20220048871A (ko) * 2020-10-13 2022-04-20 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
US11379367B2 (en) * 2020-11-19 2022-07-05 Micron Technology, Inc. Enhancement for activation and deactivation of memory address regions
US11409665B1 (en) * 2021-05-10 2022-08-09 Innogrit Technologies Co., Ltd. Partial logical-to-physical (L2P) address translation table for multiple namespaces
US11921641B1 (en) 2022-08-31 2024-03-05 Western Digital Technologies, Inc. Address translation for zoned namespace nonvolatile memory using a compacted logical-to-physical table
US11934704B1 (en) 2022-09-27 2024-03-19 Western Digital Technologies, Inc. Control table set determination in storage devices

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7251653B2 (en) 2004-06-30 2007-07-31 Microsoft Corporation Method and system for mapping between logical data and physical data
US8321652B2 (en) 2008-08-01 2012-11-27 Infineon Technologies Ag Process and method for logical-to-physical address mapping using a volatile memory device in solid state disks
US20100274961A1 (en) 2009-04-22 2010-10-28 Golla Robert T Physically-indexed logical map table
WO2012014140A2 (en) * 2010-07-27 2012-02-02 International Business Machines Corporation Logical to physical address mapping in storage systems comprising solid state memory devices
US8909851B2 (en) 2011-02-08 2014-12-09 SMART Storage Systems, Inc. Storage control system with change logging mechanism and method of operation thereof
US8793429B1 (en) * 2011-06-03 2014-07-29 Western Digital Technologies, Inc. Solid-state drive with reduced power up time
US9009396B2 (en) 2011-09-23 2015-04-14 Avalanche Technology, Inc. Physically addressed solid state disk employing magnetic random access memory (MRAM)
US9165005B2 (en) 2012-02-24 2015-10-20 Simplivity Corporation Method and apparatus utilizing non-uniform hash functions for placing records in non-uniform access memory
US9268682B2 (en) 2012-10-05 2016-02-23 Skyera, Llc Methods, devices and systems for physical-to-logical mapping in solid state drives
US9575844B2 (en) * 2013-03-15 2017-02-21 Skyera, Llc Mass storage device and method of operating the same to back up data stored in volatile memory
US9229876B2 (en) 2013-12-17 2016-01-05 Sandisk Technologies Inc. Method and system for dynamic compression of address tables in a memory
US10915256B2 (en) * 2015-02-25 2021-02-09 SK Hynix Inc. Efficient mapping scheme with deterministic power transition times for flash storage devices
TWI575374B (zh) 2015-08-04 2017-03-21 群聯電子股份有限公司 映射表格更新方法、記憶體儲存裝置及記憶體控制電路單元
US9880939B2 (en) * 2015-09-04 2018-01-30 Toshiba Memory Corporation Memory system and information processing system
US10503653B2 (en) * 2015-09-11 2019-12-10 Toshiba Memory Corporation Memory system
KR102501751B1 (ko) * 2015-09-22 2023-02-20 삼성전자주식회사 메모리 콘트롤러, 불휘발성 메모리 시스템 및 그 동작방법
CN106776376B (zh) * 2015-11-24 2019-08-06 群联电子股份有限公司 缓冲存储器管理方法、存储器控制电路单元及存储装置
US20170235681A1 (en) * 2016-02-12 2017-08-17 Kabushiki Kaisha Toshiba Memory system and control method of the same
US10528463B2 (en) * 2016-09-28 2020-01-07 Intel Corporation Technologies for combining logical-to-physical address table updates in a single write operation
US10459644B2 (en) * 2016-10-28 2019-10-29 Western Digital Techologies, Inc. Non-volatile storage system with integrated compute engine and optimized use of local fast memory
US10359955B2 (en) * 2017-02-23 2019-07-23 Western Digital Technologies, Inc. Data storage device configured to perform a non-blocking control update operation
US10628326B2 (en) * 2017-08-21 2020-04-21 Micron Technology, Inc. Logical to physical mapping

Also Published As

Publication number Publication date
CN111033477A (zh) 2020-04-17
EP3673377B1 (en) 2024-05-01
US10628326B2 (en) 2020-04-21
EP3673377A4 (en) 2021-06-16
US20190057038A1 (en) 2019-02-21
US11055230B2 (en) 2021-07-06
EP3673377A1 (en) 2020-07-01
CN111033477B (zh) 2024-02-02
WO2019040320A1 (en) 2019-02-28
US20200183855A1 (en) 2020-06-11

Similar Documents

Publication Publication Date Title
US11055230B2 (en) Logical to physical mapping
US11822790B2 (en) Cache line data
US8938601B2 (en) Hybrid memory system having a volatile memory with cache and method of managing the same
CN110998550B (zh) 存储器寻址
US10740251B2 (en) Hybrid drive translation layer
US20110231598A1 (en) Memory system and controller
US9195579B2 (en) Page replacement method and memory system using the same
US10108342B2 (en) Method for reducing use of DRAM in SSD and the SSD using the same
US9122586B2 (en) Physical-to-logical address map to speed up a recycle operation in a solid state drive
US20190391756A1 (en) Data storage device and cache-diversion method thereof
US11210226B2 (en) Data storage device and method for first processing core to determine that second processing core has completed loading portion of logical-to-physical mapping table thereof
US20090132757A1 (en) Storage system for improving efficiency in accessing flash memory and method for the same
CN113535605A (zh) 存储装置及其操作方法
CN110597742A (zh) 用于具有持久系统存储器的计算机系统的改进存储模型
US11061598B2 (en) Optimized handling of multiple copies in storage management
US11126624B2 (en) Trie search engine
KR102589609B1 (ko) 분할된 저장장치에서의 스냅샷 관리
US11954350B2 (en) Storage device and method of operating the same
US20140281157A1 (en) Memory system, memory controller and method
US11409665B1 (en) Partial logical-to-physical (L2P) address translation table for multiple namespaces
US20240143512A1 (en) Write buffer linking for easy cache reads
US11989431B2 (en) Write updates sorting during BKOPS idle
CN113391760B (zh) 分区存储中的快照管理
CN111033482A (zh) 高速缓存缓冲器

Legal Events

Date Code Title Description
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)