KR20180123192A - 직접 판독 액세스를 갖는 메모리 장치 - Google Patents

직접 판독 액세스를 갖는 메모리 장치 Download PDF

Info

Publication number
KR20180123192A
KR20180123192A KR1020187032345A KR20187032345A KR20180123192A KR 20180123192 A KR20180123192 A KR 20180123192A KR 1020187032345 A KR1020187032345 A KR 1020187032345A KR 20187032345 A KR20187032345 A KR 20187032345A KR 20180123192 A KR20180123192 A KR 20180123192A
Authority
KR
South Korea
Prior art keywords
memory
mapping table
host device
mapping
controller
Prior art date
Application number
KR1020187032345A
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 KR20180123192A publication Critical patent/KR20180123192A/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
    • 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
    • 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)

Abstract

직접 판독 액세스를 갖는 메모리 장치들의 몇몇 실시 예들이 여기에 설명된다. 일 실시 예에서, 메모리 장치는 메모리를 형성하는 복수의 메모리 영역들에 동작 가능하게 결합된 제어기를 포함한다. 제어기는 제1 맵핑 테이블을 메모리 장치에 저장하고 또한 제1 맵핑 테이블을 제2 맵핑 테이블로서 호스트 장치에 저장하기 위해 호스트 장치에 제공하도록 구성된다. 제어기는 호스트 장치로부터 전송된 직접 판독 요청을 수신하도록 더 구성된다. 판독 요청은 호스트 장치가 호스트 장치에서 저장된 제2 메모리 테이블로부터 선택한 메모리 어드레스를 포함한다. 직접 판독 요청에 응답하여, 제어기는 메모리 장치에서 저장된 제1 맵핑 테이블을 사용하지 않고 판독 요청의 선택된 메모리 어드레스에 기초하여 메모리의 메모리 영역을 식별한다.

Description

직접 판독 액세스를 갖는 메모리 장치
개시된 실시 예는 메모리 장치에 관한 것으로, 특히, 호스트 장치가 어드레스 맵핑 테이블(address mapping table)을 국부적으로 저장하고 직접 액세스할 수 있게 하는 메모리 장치에 관한 것이다.
메모리 장치는 플래시 매체(flash media)를 사용하여 모바일 장치, 퍼스널 컴퓨터 또는 서버와 같은 호스트 장치에 대한 대용량 데이터를 지속적으로 저장할 수 있다. 플래시 매체는 "NOR 플래시" 및 "NAND 플래시" 매체를 포함한다. NAND-기반 매체는 일반적으로 NOR 매체보다 저장 용량이 높고, 비용이 저렴하며, 기록 속도가 빠르기 때문에 대용량 데이터 저장에 적합하다. 그러나 NAND-기반 매체에는 직렬 인터페이스(serial interface)가 필요하므로, 메모리 컨트롤러가 메모리의 컨텐츠를 호스트 장치에 판독하는 데 걸리는 시간이 크게 늘어난다.
솔리드 스테이트 드라이브들(solid state drives, SSDs)은 NAND-기반 저장 매체, 및 동적 랜덤 액세스 메모리(DRAM)와 같은 랜덤 액세스 메모리(RAM) 매체를 모두 포함할 수 있는 메모리 장치이다. NAND-기반 매체는 대량 데이터를 저장한다. RAM 매체는 동작 중에 제어기에 의해 자주 액세스되는 정보를 저장한다.
일반적으로 RAM에 저장된 정보의 일 유형은 어드레스 맵핑 테이블이다. 판독 동작 동안, SSD는 맵핑 테이블을 액세스하여, 컨텐츠가 NAND 메모리로부터 판독될 적절한 메모리 위치를 찾는다. 맵핑 테이블은 메모리 영역의 네이티브 어드레스(native address)를 호스트 장치에 의해 구현된 대응하는 논리적 어드레스(logical address)와 연관시킨다. 일반적으로, 호스트-장치 제조업체는 고유한 논리 블록 어드레싱(logical block addressing, LBA) 규약(convention)을 사용한다. 호스트 장치는 SSD 제어기를 사용하여 NAND 메모리로부터 판독할 때(또는 NAND 메모리에 기록할 때) 논리적 어드레스를 네이티브 어드레스로 변환한다(그리고 반대의 경우도 마찬가지임).
범용 플래시 저장 장치(universal flash storage, UFS) 및 내장 멀티매체 카드(embedded MultiMediaCards, eMMC)와 같은 기존 SSD에 대한 저렴한 대안 중 일부는 RAM을 생략한다. 이러한 장치에서, 맵핑 테이블은 RAM이 아닌 NAND 매체에 저장된다. 그 결과, 메모리 장치 제어기는 NAND 인터페이스를 통해(즉, 순차적으로) 맵핑 테이블로부터 어드레싱 정보를 검색해야 한다. 이는, 제어기가 판독 동작 중 맵핑에 자주 액세스하기 때문에, 판독 속도를 저하시킨다.
도 1은 본 기술의 일 실시 예에 따라 구성된 메모리 장치를 갖는 시스템의 블록도이다.
도 2a 및 도 2b는 본 기술의 실시 예들에 따른 메모리 장치와의 다양한 데이터 교환을 나타내는 메시지 흐름도이다.
도 3a 및 도 3b는 본 기술의 실시 예들에 따른 호스트 장치에 저장된 어드레스 맵핑 테이블들을 도시한다.
도 4a 및 4b는 본 기술의 실시 예들에 따른 메모리 장치를 동작시키기 위한 루틴(routine)을 나타내는 흐름도이다.
도 5는 본 기술의 실시 예들에 따른 메모리 장치를 포함하는 시스템의 개략도이다.
아래에서 보다 상세히 기술되는 바와 같이, 본 명세서에 기술된 기술은 메모리 장치, 메모리 장치를 갖는 시스템, 및 호스트 장치가 메모리 장치의 메모리로부터 직접 판독할 수 있게 하는 관련 방법에 관한 것이다. 그러나, 당업자는 기술이 부가적인 실시 예를 가질 수 있고, 기술이 도 1 내지 도 5를 참조하여 아래에서 설명되는 실시 예들의 몇몇 세부 사항 없이 실시될 수 있다는 것을 이해할 것이다. 아래에 설명된 실시 예에서, 메모리 장치는 NAND-기반 저장 매체(예를 들어, NAND 플래시)를 통합하는 장치와 관련하여 설명된다. 그러나, 본 기술의 다른 실시 예들에 따라 구성된 메모리 장치들은 자기 저장 매체와 같은 NAND-기반 저장 매체에 더하여 또는 이를 대신하여 다른 유형의 적절한 저장 매체를 포함할 수 있다.
도 1은 본 기술의 일 실시 예에 따라 구성된 메모리 장치(100)를 갖는 시스템(101)의 블록도이다. 도시된 바와 같이, 메모리 장치(100)는 메인 메모리(102)(예컨대, NAND 플래시) 및 메인 메모리(102)를 호스트 장치(108)(예를 들어, 업스트림 중앙 프로세서(CPU))에 동작 가능하게 연결하는 제어기(106)를 포함한다. 아래에서 보다 상세히 설명되는 일부 실시 예들에서, 메모리 장치(100)는 NAND-기반 메인 메모리(102)를 포함할 수 있지만, RAM 매체와 같은, 다른 유형의 메모리 매체를 생략할 수 있다. 예를 들어, 일부 실시 예들에서, 그러한 장치는 전력 요구 및/또는 제조 비용을 감소시키기 위해 NOR-기반 메모리(예를 들어, NOR 플래시) 및 DRAM을 생략할 수 있다. 이들 실시 예들 중 적어도 일부에서, 메모리 장치(100)는 UFS 장치 또는 eMMC로서 구성될 수 있다.
다른 실시 예들에서, 메모리 장치(100)는 NOR 메모리와 같은 추가 메모리를 포함할 수 있다. 그러한 일 실시 예에서, 메모리 장치(100)는 SSD로서 구성될 수 있다. 또 다른 실시 예에서, 메모리 장치(100)는 슁글링된 자기 기록(shingled magnetic recording, SMR) 토폴로지로 배열된 자기 매체를 사용할 수 있다.
메인 메모리(102)는 각각이 복수의 메모리 셀들(122)을 포함하는 복수의 메모리 영역들, 또는 메모리 유닛들(120)을 포함한다. 메모리 셀들(122)은, 예를 들어, 플로팅 게이트(floating gate), 강유전성(ferroelectric), 자기 저항성(magnetoresitive), 및/또는 데이터를 지속적으로 또는 반-지속적으로 저장하도록 구성된 다른 적절한 저장 요소들을 포함할 수 있다. 메인 메모리(102) 및/또는 개별 메모리 유닛들(120)은 또한 메모리 셀들(122) 및 정보 처리 및/또는 제어기(106)와 통신하기 위한 것과 같은 다른 기능을 액세스 및/또는 프로그래밍(예를 들어, 기록)하기 위한 멀티플렉서들, 디코더들, 버퍼들, 판독/기록 드라이버들, 어드레스 레지스터들, 데이터 아웃/데이터 인 레지스터들(data out/data in registers) 등과 같은 다른 회로 구성 요소들(미 도시)을 포함할 수 있다. 일 실시 예에서, 메모리 유닛들(120) 각각은 반도체 다이(die)로부터 형성될 수 있고, 단일 장치 패키지(미 도시) 내의 다른 메모리 유닛 다이들과 정렬될 수 있다. 다른 실시 예들에서, 하나 이상의 메모리 유닛들(120)은 단일 다이 상에 동일 위치에 배치될 수 있고 및/또는 다수의 장치 패키지들에 걸쳐 분산될 수 있다.
메모리 셀들(122)은 그룹들 또는 "메모리 페이지들"(124)로 배열될 수 있다. 차례로, 메모리 페이지들(124)은 더 큰 그룹들 또는 "메모리 블록들"(126)로 그룹화될 수 있다. 다른 실시 예들에서, 메모리 셀들(122)은 도시된 실시 예에 도시된 것과 다른 그룹들의 유형 및/또는 계층들(hierarchies)로 배열될 수 있다. 또한, 도시된 실시 예에서 설명을 위한 목적으로 특정 개수의 메모리 셀들, 페이지들, 블록들 및 유닛들로 도시되었지만, 다른 실시 예들에서는 셀들, 페이지들, 블록들 및 메모리 유닛들의 개수가 다양할 수 있으며, 도시된 예들에 도시된 것보다 규모가 클 수 있다. 예를 들어, 일부 실시 예들에서, 메모리 장치(100)는 8, 10 또는 그 이상의(예를 들어, 16, 32, 64, 또는 그 이상의) 메모리 유닛들(120)을 포함할 수 있다. 이러한 실시 예들에서, 각각의 메모리 유닛(120)은 예를 들어 211 개의 메모리 블록들(126)을 포함할 수 있고, 각각의 블록(126)은 예를 들어 215 개의 메모리 페이지들(124)을 포함할 수 있고, 블록 내의 각각의 메모리 페이지(124)는 예를 들어 215 개의 메모리 셀들(122)을 포함할 수 있다.
제어기(106)는 마이크로 제어기(microcontroller), 특수 목적 논리 회로(예를 들어, FPGA(field programmable gate array), ASIC(application specific integrated circuit) 등), 또는 다른 적절한 프로세서일 수 있다. 제어기(106)는 메모리에 저장된 명령을 실행하도록 구성된 프로세서(130)를 포함할 수 있다. 도시된 예에서, 제어기(106)의 메모리는, 메인 메모리(102)를 관리하고 메모리 장치(100)와 호스트 장치(108) 사이의 통신을 처리하는 것을 포함하여 메모리 장치(100)의 동작을 제어하기 위한 다양한 프로세스들, 논리 흐름들 및 루틴들을 수행하도록 구성된 내장 메모리(embedded memory)(132)를 포함한다. 일부 실시 예들에서, 내장 메모리(132)는 예를 들어, 메모리 포인터들(memory pointers), 패치된 데이터(fetched data) 등을 저장하는 메모리 레지스터들을 포함할 수 있다. 내장 메모리(132)는 또한 마이크로-코드를 저장하기 위한 판독-전용 메모리(ROM)를 포함할 수 있다.
동작 시, 제어기(106)는, 페이지들(124)의 그룹들 및/또는 메모리 블록들(126)에 기록하는 것과 같은 종래의 방법으로 메인 메모리(102)의 다양한 메모리 영역들을 직접 기록하거나 그렇지 않으면 프로그램(예를 들어, 소거) 할 수 있다. 제어기(106)는 네이티브 또는 소위 "물리적" 메모리 어드레스들에 기초하여 메모리 영역들이 인식되는 네이티브 어드레싱 스킴(native addressing scheme)을 사용하여 메모리 영역들에 액세스한다. 도시된 예들에서, 물리적 메모리 어드레스들은 참조 문자 "P"(예를 들어, Pe, Pm, Pq 등)로 표시된다. 각각의 물리적 메모리 어드레스는 예를 들어 선택된 메모리 유닛(120), 선택된 유닛(120) 내의 메모리 블록(126), 및 선택된 블록(126)의 특정 메모리 페이지(124)에 대응할 수 있는 다수의 비트들(미 도시)을 포함한다. NAND-기반 메모리에서, 기록 동작은 종종 특정 데이터 값들(예를 들어, 논리 "0" 또는 논리 "1"의 값을 갖는 데이터 비트들의 스트링)로 선택된 메모리 페이지들(124) 내의 메모리 셀들(122)을 프로그래밍하는 것을 포함한다. 소거 동작은 전체 메모리 블록(126) 또는 다수의 메모리 블록들(126)을 동일한 데이터 상태(예를 들어, 논리 "0")로 재-프로그램하는 것을 제외하고는, 기록 동작과 유사하다.
제어기(106)는 호스트-장치 인터페이스(미 도시)를 통해 호스트 장치(108)와 통신한다. 일부 실시 예에서, 호스트 장치(108) 및 제어기(106)는 SAS(Serial Attach SCSI), 직렬 ATA(Serial AT attachment) 인터페이스, PCIe(peripheral component interconnect express)와 같은 직렬 인터페이스(serial interface) 또는 다른 적절한 인터페이스(예를 들어, 병렬 인터페이스)를 통해 통신할 수 있다. 호스트 장치(108)는 제어기(106)에 다양한 요청들을 (예를 들어, 패킷들 또는 패킷들의 스트림의 형태로) 전송할 수 있다. 통상적인 요청(conventional request)(140)은 정보를 기록, 소거, 반환, 및/또는 특정 동작(예를 들어, TRIM 동작)을 수행하기 위한 명령을 포함할 수 있다. 요청(140)이 기록 요청일 때, 요청은 논리적 메모리 어드레싱 스킴에 따라 호스트 장치(108)에 의해 구현되는 논리적 어드레스를 더 포함할 것이다. 도시된 예들에서, 논리적 어드레스는 참조 문자 "L"(예를 들어, Lx, Lg, Lr 등)으로 표시된다. 논리적 어드레스들은 호스트-장치 유형 및/또는 제조업체에 고유할 수 있는 어드레싱 규약들을 가지고 있다. 예를 들어, 논리적 어드레스들은 메인 메모리(102)와 관련된 물리적 메모리 어드레스와 상이한 수 및/또는 배열의 어드레스 비트들을 가질 수 있다.
제어기(106)는 메인 메모리(102)에 저장된 제1 맵핑 테이블(134a) 또는 유사한 데이터 구조를 사용하여 요청(140)의 논리적 어드레스를 적절한 물리적 메모리 어드레스로 변환한다. 일부 실시 예들에서, 변환은 플래시 변환 층을 통해 발생한다. 일단 논리적 어드레스가 적절한 물리적 메모리 어드레스로 변환되면, 제어기(106)는 변환된 어드레스에 위치한 메모리 영역을 액세스(예를 들어, 기록)한다.
이 기술의 일 양태에서, 호스트 장치(108)는 또한 로컬 메모리(105)(예를 들어, 메모리 캐시)에 저장된 제2 맵핑 테이블(134b) 또는 유사한 데이터 구조를 사용하여 논리적 어드레스를 물리적 메모리 어드레스로 변환할 수 있다. 일부 실시 예에서, 제2 맵핑 테이블(134b)은 제1 맵핑 테이블(134a)과 동일하거나 실질적으로 동일할 수 있다. 사용 시에, 제2 맵핑 테이블(134b)은 호스트 장치로부터 메모리 장치로 전송된 종래의 판독 요청과 대조적으로 호스트 장치(108)가 직접 판독 요청(160)(본 명세서에서 "직접 판독 요청(160)"이라고 함)을 수행할 수 있게 한다. 후술되는 바와 같이, 직접 판독 요청(160)은 논리적 어드레스 대신에 물리적 메모리 어드레스를 포함한다.
본 기술의 일 양태에서, 제어기(106)는 직접 판독 요청(160) 동안 제1 맵핑 테이블(134a)을 참조하지 않는다. 따라서, 직접 판독 요청(160)은 제어기(106)가 메인 메모리(102)에 저장된 제1 맵핑 테이블(134a)을 검색할 필요가 없으므로 프로세싱 오버헤드(processing overhead)를 최소화할 수 있다. 본 기술의 또 다른 양태에서, 호스트 장치(108)의 로컬 메모리(105)는 상술한 바와 같이 그 직렬 인터페이스에 의해 제한되는 NAND-기반 메모리(102)보다 빠른 액세스 시간을 갖는 DRAM 또는 다른 메모리일 수 있다. 관련된 양태에서, 호스트 장치(108)는 로컬 메모리(105)의 상대적으로 빠른 액세스 시간을 활용하여 메모리 장치(100)의 판독 속도를 증가시킬 수 있다.
도 2a 및 도 2b는 본 발명의 실시 예에 따른 호스트 장치(108), 제어기(106) 및 메모리 장치(100)(도 1)의 메인 메모리(102) 간의 다양한 데이터 교환을 나타내는 메시지 흐름도이다. 도 2a는 직접 판독을 수행하기 위한 메시지 흐름을 도시한다. 직접 판독 요청(160)을 전송하기 전에, 호스트 장치(108)는 메인 메모리(102)에 저장된 제1 맵핑 테이블(134a)에 대한 요청(261)을 전송할 수 있다. 요청(261)에 응답하여, 제어기(106)는 제1 맵핑 테이블(134a)을 포함하는 응답(251)(예를 들어, 패킷들의 스트림)을 호스트 장치(108)에 전송한다.
일부 실시 예들에서, 제어기(106)는 양면 화살표(271)로 나타낸 교환의 시퀀스로 메인 메모리(102)로부터 제1 맵핑 테이블(134a)을 검색할 수 있다. 교환하는 동안, 물리적 어드레스의 논리적 어드레스 맵핑들의 부분 또는 영역은 메인 메모리(102)에 저장된 제1 맵핑 테이블(134a)로부터 내장 메모리(132)(도 1)로 판독된다. 각각의 영역은 하나 또는 메모리 영역들(예를 들어, 다수의 메모리 블록들(126); 도 1)과 관련된 물리적 메모리 어드레스들의 범위에 대응할 수 있다. 일단 영역이 내장 메모리(132)에 판독되면, 영역은 응답(251)의 일부로서 호스트 장치(108)에 연속적으로 전송된다. 제1 맵핑 테이블(134a) 내의 다음 영역은 판독되어 유사한 방식으로 호스트 장치(108)에 전송된다. 따라서, 영역들은 응답(251)의 일부로서 일련의 대응하는 패킷들로 전송될 수 있다. 본 실시 예의 일 양태에서, 영역들의 형태로 제1 맵핑 테이블(134a)을 분할하고 전송하는 것은 점유 대역폭을 감소시킬 수 있다.
호스트 장치(108)는 제어기(106)로부터 응답(251)에서 수신하는 영역들에 기초하여 제2 맵핑 테이블(134b)을 구축한다. 일부 실시 예들에서, 제어기(106)는 OP 공간 유지 보수와 같은 메모리 유지 보수를 위한 특정 영역들을 제한하거나 예비할 수 있다. 이러한 실시 예들에서, 제한된 영역들 및/또는 예비된 영역들은 호스트 장치(108)에 전송되지 않고, 호스트 장치(108)에 의해 저장된 제2 맵핑 테이블(134b)의 일부를 형성하지 않는다.
호스트 장치(108)는 제2 맵핑 테이블(134b)을 로컬 메모리(105)(도 1)에 저장한다. 호스트 장치(108)는 또한 제2 맵핑 테이블(134b)을 검증(validate)한다. 호스트 장치(108)는 (예를 들어, 기입 동작 후에) 업데이트될 필요가 있을 때 제2 맵핑 테이블(134b)을 주기적으로 무효화(invalidate)할 수 있다. 호스트 장치(108)는 제2 맵핑 테이블(134b)이 무효화될 때 제2 맵핑 테이블(134b)을 사용하여 메모리로부터 판독하지 않을 것이다.
일단 호스트 장치(108)가 제2 맵핑 테이블(134b)을 검증하면, 호스트 장치(108)는 제2 맵핑 테이블(134b)을 사용하여 직접 판독 요청(160)을 메인 메모리(102)에 전송할 수 있다. 직접 판독 요청(160)은 제2 맵핑 테이블(134b)로부터 선택된 물리적 메모리 어드레스 및 판독 명령을 포함하는 페이로드 필드(payload field)(275)를 포함할 수 있다. 물리적 메모리 어드레스는 메인 메모리(102)로부터 판독될 메모리 영역에 대응하고, 제2 맵핑 테이블(134b)로부터 호스트 장치(108)에 의해 선택된다. 직접 판독 요청(160)에 응답하여, 메모리(102)의 선택된 영역의 컨텐츠는 하나 이상의 판독 응답(252)(예를 들어, 판독 패킷들)에서 중간 제어기(106)를 통해 판독될 수 있다.
도 2b는 종래의 기록 요청(241)을 사용하여 메인 메모리(102)의 영역(예를 들어, 메모리 페이지)을 기록하거나 그렇지 않으면 프로그래밍(예를 들어, 소거)하기 위한 메시지 흐름을 도시한다. 기록 요청(241)은 논리적 어드레스, 기록 명령, 및 기록될 데이터(도시되지 않음)를 포함하는 페이로드 필드(276)를 포함할 수 있다. 기록 요청(241)은 도 2a를 참조하여 전술한 바와 같이, 호스트 장치(108)가 제2 맵핑 테이블(134b)을 저장한 후에 전송될 수 있다. 호스트 장치(108)가 메인 메모리(102)에 기록할 때 어드레스를 식별하기 위해 제2 맵핑 테이블(134b)을 사용하지 않더라도, 호스트 장치는 기록 요청을 전송할 때 이 테이블(134b)을 무효화할 것이다. 이는 제어기(106)가 통상적으로 기록 동작 동안 제1 맵핑 테이블(134a)의 적어도 일부를 재-맵핑할 것이며, 제2 맵핑 테이블(134b)을 무효화함으로써 호스트 장치(108)가 자신의 로컬 메모리(105)(도 1)에 저장된 오래된 맵핑 테이블(outdated mapping table)을 사용하는 것을 방지하기 때문이다.
제어기(106)가 기록 요청(241)을 수신할 때, 제어기(106)는 먼저 논리적 어드레스를 적절한 물리적 메모리 어드레스로 변환한다. 제어기(106)는 양면 화살표(272)에 의해 표현된 다수의 교환을 통해 종래의 방식으로 메인 메모리(102)에 요청(241)의 데이터를 기록한다. 메인 메모리(102)가 기록(또는 재-기록)되면, 제어기(106)는 제1 맵핑 테이블(134a)을 업데이트한다. 업데이트 동안, 제어기(106)는 통상적으로 데이터가 NAND 기반-메모리에 기록되는 직렬 특성(serial nature)으로 인해 제1 맵핑 테이블(134a)의 적어도 서브 세트를 재-맵핑할 것이다.
제2 맵핑 테이블(134b)을 재-검증하기 위해, 제어기는 업데이트된 어드레스 맵핑으로 업데이트(253)를 호스트 장치(108)에 전송하고, 호스트 장치(108)는 제2 맵핑 테이블(134b)을 재-검증한다. 도시된 실시 예에서, 제어기(106)는 재-맵핑에 의해 영향을 받은 제1 맵핑 테이블(134a)의 영역들만을 호스트 장치(108)에 전송한다. 이는 전체 제1 맵핑 테이블(134a)이 호스트 장치(108)에 재-전송될 필요가 없기 때문에 대역폭을 보존하고 프로세싱 오버 헤드를 감소시킬 수 있다.
도 3a 및 3b는 도 2b의 호스트 장치(108)에 의해 사용되는 제2 맵핑 테이블(134b)의 일부를 도시한다. 도 3a는 도 2b에서 업데이트되기 전(즉, 제어기(106)가 업데이트(253)를 전송하기 전에)에 제2 맵핑 테이블(134b)의 제1 및 제2 영역들(Z1, Z2)을 각각 도시한다. 도 3b는 업데이트되는(즉, 제어기(106)가 업데이트(253)를 전송한 후에) 제2 영역(Z2)을 도시한다. 제1 영역(Z1)은 도 2b의 재-맵핑에 의해 영향을 받지 않기 때문에 업데이트를 요구하지 않는다. 예시의 목적으로도 3a 및 3b에는 2 개의 영역들만이 도시되어 있지만, 제1 및 제2 맵핑 테이블들(134a 및 134a)은 더 많은 영역들을 포함할 수 있다. 일부 실시 예들에서, 영역들의 수는 맵핑 테이블의 크기, 메인 메모리(102)(도 1)의 용량, 및/또는 페이지들(124), 블록들(126) 및/또는 유닛들(120)의 수에 의존할 수 있다.
도 4a 및 도 4b는 본 기술의 실시 예에 따라 메모리 장치를 동작시키기 위한 루틴들(410 및 420)을 각각 도시하는 흐름도이다. 루틴들(410, 420)은 예컨대 메모리 장치(100)(도 1)의 제어기(106)(도 1), 호스트 장치(108)(도 1), 또는 제어기(106)와 호스트 장치(108)의 조합에 의해 수행될 수 있다. 도 4a를 참조하면, 루틴(410)은 직접 판독 동작을 실행하는데 사용될 수 있다. 루틴(410)은 도 1에 도시된 하나 이상의 메모리 블록들(126) 및/또는 메모리 유닛들(120)에서와 같이, 메모리 장치(100)에 제1 맵핑 테이블(134a)을 저장함으로써 시작한다(블록 411). 루틴(410)은 메모리 장치(100)가 처음 시작할 때(예를 들어, 메모리 장치(100) 및/또는 호스트 장치(108)가 오프에서 온으로 전력 공급될 때) 제1 맵핑 테이블(134a)을 생성할 수 있다. 일부 실시 예들에서, 루틴(410)은 전원이 꺼질 때 메모리 장치(100)에 저장된 이전 맵핑 테이블을 검색할 수 있고, 블록(411)에서 제1 맵핑 테이블(134a)로서 저장하기 전에 이 테이블을 검증할 수 있다.
블록(412)에서, 루틴(410)은 맵핑 테이블에 대한 요청을 수신한다. 요청은, 예를 들어, 제어기(106)가 맵핑 테이블에 대한 요청으로 인식하는 고유 명령을 포함하는 페이로드 필드를 갖는 메시지를 포함할 수 있다. 요청에 응답하여, 루틴(410)은 호스트 장치에 제1 맵핑 테이블(134a)을 전송한다(블록들(413 내지 415)). 도시된 예에서, 루틴(410)은 응답들의 스트림(예를 들어, 응답 패킷들의 스트림)으로 맵핑 테이블의 부분들(예를 들어, 영역들)을 호스트 장치(108)에 전송한다. 예를 들어, 루틴(410)은 제1 맵핑 테이블(134a)로부터 제1 영역을 판독할 수 있고(블록(413)), 이 영역을 호스트 장치(108)에 전송하고(블록(414)), 전체 맵핑 테이블(134a)이 호스트 장치(108)에 전송될 때까지 후속적으로 다음 영역을 판독하고 전송한다(블록 415). 그 다음, 제2 맵핑 테이블(134b)은 구축되고 호스트 장치(108)에서 저장된다(블록 416). 일부 실시 예들에서, 루틴(410)은 맵핑 테이블을 개별 영역들로 전송하기보다는 전체 맵핑 테이블을 한 번에 호스트 장치(108)에 전송할 수 있다.
블록(417)에서, 루틴(410)은 호스트 장치(108)로부터 직접 판독 요청을 수신하고, 메인 메모리(102)로부터 직접 판독하도록 진행한다. 루틴(410)은 전술한 바와 같이 직접 판독 요청에 포함된 물리적 메모리 어드레스를 사용하여 호스트 장치(108)에 판독하기 위해 메인 메모리(102)의 적절한 메모리 영역을 위치시킨다. 일부 실시 예들에서, 루틴(410)은 직접 판독 요청을 메인 메모리(102)의 저-레벨 장치 프로토콜로 부분적으로 처리(예를 들어, 비-패킷화 또는 포맷)할 수 있다.
블록(418)에서, 루틴(410)은 판독 동작 동안 제1 맵핑 테이블(134a)에 액세스하지 않고 메인 메모리(102)를 판독한다. 일부 실시 예들에서, 루틴(410)은 메모리(102)의 선택된 영역으로부터 제어기(106)에서 메모리 레지스터에 컨텐츠를 판독할 수 있다. 다양한 실시 예들에서, 루틴(410)은 컨텐츠를 전송 계층 프로토콜을 통해 호스트 장치(108)에 전송하기 위해 컨텐츠를 부분적으로 처리(예를 들어, 패킷화 또는 포멧)할 수 있다.
도 4b를 참조하면, 루틴(420)은 기록 동작과 같은 프로그래밍 동작을 수행하도록 수행될 수 있다. 블록(421)에서, 루틴(420)은 호스트 장치(108)로부터 기록 요청을 수신한다. 루틴(420)은 또한 호스트 장치(108)가 기록 요청을 송신하는 것에 응답하여 제2 맵핑 테이블(134b)을 무효화한다(블록 422).
블록(423)에서, 루틴은 호스트 장치(108)로부터 전송된 기록 요청에 포함된 논리적 어드레스를 사용하여 제1 맵핑 테이블(134a)에서 물리적 메모리 어드레스를 찾는다. 그 다음, 루틴(424)은 변환된 물리적 어드레스에서 메모리 장치(102)에 데이터를 기록 요청으로 기록한다 (블록 424).
블록(425)에서, 루틴(420)은 메인 메모리(102)에 기록하는 것에 응답하여 제1 맵핑 테이블(134a)의 적어도 일부를 재-맵핑한다. 그 다음, 루틴(420)은 호스트 장치(108)에 저장된 제2 맵핑 테이블(134b)을 재-검증하도록 진행한다(블록(426)). 도시된 예에서, 루틴(420)은 재-맵핑에 의해 영향을 받는 제1 맵핑 테이블(134a)의 부분들(예를 들어, 영역들)을 호스트 장치(108)에 전송하지만, 전체 맵핑 테이블(134a)을 전송하지 않는다. 그러나, 다른 실시 예들에서, 루틴(420)은 제1 맵핑 테이블(134a)이 광범위하게 재-맵핑된 경우, 전체 제1 맵핑 테이블(134a)을 전송할 수 있다.
다양한 실시 예들에서, 루틴(420)은, (예를 들어, 동작 속도를 증가시키기 위해) TRIM 동작을 수행하기 위한 요청에 응답하는 것과 같이, 호스트 장치로부터 전송된 다른 요청에 응답하여 제1 맵핑 테이블(134a)을 재-맵핑할 수 있다. 이러한 및 다른 실시 예들에서, 루틴(420)은 호스트 장치(108)로부터 전송된 요청에 의해 그렇게 하도록 촉구되지 않고 제1 맵핑 테이블(134a)의 부분들을 재-맵핑할 수 있다. 예를 들어, 루틴(420)은 웨어-레벨링 프로세스(wear-levelling process)의 일부로서 제1 맵핑 테이블(134a)의 부분들을 재-맵핑할 수 있다. 그러한 경우에, 루틴(420)은 제1 맵핑 테이블(134a)에서 영향을 받고 업데이트될 필요가 있는 특정 영역을 갖는 호스트 장치(108)에 업데이트를 주기적으로 전송할 수 있다.
선택적으로, (예를 들어, 웨어-레벨링 동작 후) 업데이트된 영역(들)을 호스트 장치(108)에 자동으로 전송하기보다는, 루틴(420)은 제2 맵핑 테이블(134b)을 무효화하도록 호스트 장치(108)에 지시할 수 있다. 이에 응답하여, 호스트 장치(108)는 제2 맵핑 테이블(134b)을 재-검증하기 위해 그 시점 또는 나중 시간에 업데이트된 맵핑 테이블을 요청할 수 있다. 일부 실시 예들에서, 통지는 호스트 장치(108)가 메모리 장치(100)에 의해 지시되는 업데이트 타이밍보다는 업데이트를 스케줄링 할 수 있게 한다.
도 5는 본 기술의 실시 예에 따른 메모리 장치를 포함하는 시스템의 개략도이다. 도 1 내지 도 4b를 참조하여 상술한 전술한 메모리 장치들 중 임의의 하나는 무수한 더 큰 시스템 및/또는 보다 복잡한 시스템 중 임의의 시스템에 통합될 수 있으며, 그 대표적인 예는 도 5에 개략적으로 도시된 시스템(580)이다. 시스템(580)은 메모리 장치(500), 전원(582), 드라이버(584), 프로세서(586) 및/또는 다른 서브 시스템들 또는 구성 요소들(588)을 포함할 수 있다. 메모리 장치(500)는 도 1 내지 도 4를 참조하여 전술한 메모리 장치의 특징과 대체로 유사한 특징을 포함할 수 있으며, 따라서 호스트 장치로부터 직접 판독 요청을 수행하기 위한 다양한 특징을 포함할 수 있다. 최종 시스템(580)은 메모리 저장, 데이터 처리 및/또는 다른 적절한 기능들과 같은 다양한 기능들 중 임의의 것을 수행할 수 있다. 따라서, 대표 시스템(580)은 핸드-헬드(hand-held) 장치(예를 들어, 이동 전화, 테블릿, 디지털 판독기 및 디지털 오디오 플레이어), 컴퓨터, 차량, 가전 제품 및 기타 제품을 제한 없이 포함할 수 있다. 시스템(580)의 구성 요소들은 단일 유닛 내에 하우징되거나 또는 다수의, 상호 연결된 유닛들(예를 들어, 통신 네트워크를 통해) 상에 분산될 수 있다. 시스템(580)의 구성 요소는 또한 원격 장치 및 임의의 다양한 컴퓨터 판독 가능 매체를 포함할 수 있다.
전술한 내용으로부터, 본 기술의 특정 실시 예가 설명의 목적으로 본 명세서에 기재되었지만, 본 개시 내용을 벗어나지 않고 다양한 수정이 이루어질 수 있다는 것을 이해할 것이다. 또한, 특정 실시 예들의 문맥에서 설명된 새로운 기술의 특정 양태들은 다른 실시 예들에서 결합되거나 제거될 수 있다. 또한, 새로운 기술의 특정 실시 예와 관련된 이점이 이들 실시 예와 관련하여 설명되었지만, 다른 실시 예도 이러한 이점을 나타낼 수 있으며, 모든 실시 예가 반드시 기술의 범위 내에 속하는 그러한 이점을 반드시 나타낼 필요는 없다. 따라서, 개시 및 관련 기술은 여기에 명시적으로 도시되거나 기술되지 않은 다른 실시 예를 포함할 수 있다.

Claims (24)

  1. 메모리 장치(memory device)에 있어서,
    대응하는 제1 메모리 어드레스들에 할당된 복수의 메모리 영역들을 갖는 메모리; 및
    상기 메모리에 동작 가능하게 결합된 제어기를 포함하고, 상기 제어기는:
    상기 메모리 장치에서, 상기 제1 메모리 어드레스들을 상기 메모리 영역들에 기록하기 위해 호스트 장치에 의해 구현된 제2 메모리 어드레스들에 맵핑하는 제1 맵핑 테이블을 저장하고,
    상기 제1 메모리 어드레스들을 상기 제2 메모리 어드레스들에 맵핑하는 제2 맵핑 테이블로서 상기 호스트 장치에 저장하기 위해 상기 제1 맵핑 테이블을 상기 호스트 장치에 제공하고,
    상기 호스트 장치로부터 송신된 판독 요청으로서, 상기 호스트 장치에 저장된 상기 제2 맵핑 테이블로부터 상기 호스트 장치에 의해 선택된 제1 메모리 어드레스를 포함하는 상기 판독 요청을 수신하고, 및
    상기 판독 요청에 응답하여, (1) 상기 판독 요청에서 상기 제1 메모리 어드레스를 사용하고 상기 제1 맵핑 테이블에서 상기 제1 메모리 어드레스를 찾지 않고 상기 메모리 영역들 중 하나를 식별하고, (2) 상기 식별된 메모리 영역의 컨텐츠를 상기 호스트 장치에 판독하도록 구성된, 메모리 장치.
  2. 청구항 1에 있어서, 상기 제어기는:
    상기 호스트 장치로부터, 상기 제2 맵핑 테이블로부터 상기 호스트 장치에 의해 선택된 제2 메모리 어드레스를 포함하는 기록 요청을 수신하고; 및
    상기 기록 요청에 응답하여, 상기 기록 요청의 상기 제2 메모리 어드레스를 변환하기 위해 상기 제1 맵핑 테이블을 사용하여 메모리 영역을 식별하고 및 상기 메모리 영역에 기록하도록 더 구성되는, 메모리 장치.
  3. 청구항 2에 있어서, 상기 제어기는:
    상기 기록 요청에 응답하여 상기 제1 맵핑 테이블을 재-맵핑하고; 및
    상기 호스트 장치에, 재-맵핑된 상기 제1 맵핑 테이블의 적어도 일부를 포함하는 업데이트를 전송하도록 더 구성된, 메모리 장치.
  4. 청구항 1에 있어서, 상기 제어기는, 상기 제1 맵핑 테이블을 제-맵핑하고 상기 제1 맵핑 테이블이 재-맵핑되었다는 것을 상기 호스트 장치에 통지하도록 더 구성된, 메모리 장치.
  5. 청구항 4에 있어서, 상기 제어기는 상기 재-맵핑된 상기 제1 맵핑 테이블의 적어도 일부를 포함하는 업데이트를 상기 호스트 장치에 전송하도록 더 구성된, 메모리 장치.
  6. 청구항 1에 있어서, 상기 제어기는, 상기 제1 맵핑 테이블을 재-맵핑하고, 전체 맵핑 테이블이 아닌, 재-맵핑된 상기 제1 맵핑 테이블의 일부를 포함하는 업데이트를 상기 호스트 장치에 전송하도록 더 구성된, 메모리 장치.
  7. 청구항 1에 있어서, 상기 제어기는, 상기 메모리의 상기 메모리 영역들의 하나 이상에 상기 제1 맵핑 테이블을 저장하도록 더 구성된, 메모리 장치.
  8. 청구항 7에 있어서, 상기 메모리 영역들은 NAND-플래시 메모리 매체를 포함하는, 메모리 장치.
  9. 청구항 1에 있어서, 상기 제어기는 내장 메모리를 포함하고, 상기 제어기는:
    상기 하나 이상의 메모리 영역들로부터 상기 내장 메모리에 상기 맵핑 테이블의 제1 부분을 판독하고;
    상기 맵핑 테이블의 상기 제1 부분을 상기 내장 메모리로부터 상기 호스트 장치에 전송하고;
    상기 제1 맵핑 테이블의 상기 제1 부분이 상기 호스트 장치에 전송되면, 상기 제1 맵핑 테이블의 제2 부분을 상기 하나 이상의 메모리 영역들로부터 상기 내장 메모리에 판독하고; 및
    상기 맵핑 테이블의 상기 제2 부분을 상기 내장 메모리로부터 상기 호스트 장치에 전송하도록 더 구성된, 메모리 장치.
  10. 청구항 1에 있어서, 상기 제어기는:
    상기 호스트 장치로부터 상기 제1 맵핑 테이블에 대한 요청을 수신하고; 및
    상기 제1 맵핑 테이블에 대한 상기 요청에 응답하여 상기 제1 맵핑 테이블을 상기 호스트 장치에 전송하도록 더 구성된, 메모리 장치.
  11. 청구항 1에 있어서, 상기 제어기는:
    상기 호스트 장치로부터 상기 제1 맵핑 테이블에 대한 요청을 수신하고; 및
    상기 맵핑 테이블에 대한 상기 요청에 응답하여, (1) 제1 응답으로 상기 제1 맵핑 테이블의 제1 부분을 전송하고, (2) 제2 응답으로 상기 제2 맵핑 테이블의 상기 제2 부분을 전송하도록 더 구성되어, 상기 호스트 장치는 상기 맵핑 테이블의 상기 제1 부분 및 제2 부분을 사용하여 상기 제2 맵핑 테이블을 구축할 수 있는, 메모리 장치.
  12. 제어기 및 복수의 메모리 영역들을 갖는 메모리 장치의 동작 방법으로서, 상기 메모리 영역들은 상기 메모리 영역들을 판독하고 상기 메모리 영역들에 기록하기 위해 상기 제어기에 의해 구현되는 대응하는 네이티브(native) 메모리 어드레스들을 갖고, 상기 방법은:
    상기 메모리 장치에 기록할 때 상기 네이티브 메모리 어드레스들을 호스트 장치에 의해 구현되는 논리적 어드레스들에 맵핑하는 단계;
    상기 맵핑을 상기 메모리 장치에서 제1 맵핑 테이블에 저장하는 단계;
    상기 제1 맵핑 테이블을 상기 호스트 장치에서 제2 맵핑 테이블로서 저장하기 위해 상기 제1 맵핑 테이블을 상기 호스트 장치에 제공하는 단계;
    상기 호스트 장치로부터, 상기 호스트 장치에 저장된 상기 제2 맵핑 테이블로부터 상기 호스트 장치에 의해 선택된 네이티브 메모리 어드레스를 포함하는 판독 요청을 수신하는 단계; 및
    상기 호스트 장치에 의해 선택된 상기 네이티브 메모리 어드레스에 대응하는 상기 메모리 영역들 중 하나로부터 상기 호스트 장치에 컨텐츠를 판독하는 단계를 포함하는, 방법.
  13. 청구항 12에 있어서,
    네이티브 메모리 어드레스들을 상이한 논리적 어드레스들에 재-맵핑하는 단계;
    상기 재-맵핑을 반영하도록 상기 제1 맵핑 테이블의 일부분을 업데이트하는 단계; 및
    상기 제1 맵핑 테이블의 상기 업데이트된 부분을 상기 호스트 장치에 제공하는 단계를 더 포함하는, 방법.
  14. 청구항 12에 있어서, 재-맵핑 단계 전에 상기 제2 맵핑 테이블을 무효화하는 단계를 더 포함하는, 방법.
  15. 청구항 12에 있어서, 재-맵핑 단계는 상기 메모리 장치에 의해 수행되는 웨어-레벨링(wear-leveling) 프로세스의 일부인, 방법.
  16. 청구항 12에 있어서,
    기록 요청을 수신하는 단계;
    상기 기록 요청에 응답하여 상기 제1 맵핑 테이블의 개별 부분들을 업데이트하는 단계; 및
    상기 제1 맵핑 테이블의 전체가 아닌, 상기 제1 맵핑 테이블의 상기 업데이트된 개별 부분들을 상기 호스트 장치에 제공하는 단계를 더 포함하는, 방법.
  17. 시스템에 있어서:
    대응하는 제1 메모리 어드레스들을 갖는 복수의 메모리 영역들을 갖는 메모리 장치로서, 상기 제1 메모리 어드레스들의 제2 메모리 어드레스들에의 맵핑을 포함하는 제1 맵핑 테이블을 저장하도록 구성된, 상기 메모리 장치; 및
    상기 메모리 장치에 동작 가능하게 결합되고 메모리를 갖는 호스트 장치를 포함하고, 상기 호스트 장치는,
    상기 메모리 장치에 저장된 상기 제1 맵핑 테이블을 통해 상기 메모리 장치에 기록하고,
    상기 제1 맵핑 테이블의 상기 맵핑을 포함하는 상기 호스트 장치의 상기 메모리에 제2 맵핑 테이블을 저장하고, 및
    상기 제1 맵핑 테이블 대신에 상기 제2 맵핑 테이블을 통해 상기 메모리 장치로부터 판독하도록 구성된, 시스템.
  18. 청구항 17에 있어서, 상기 메모리 장치는 상기 제1 맵핑 테이블의 일부분을 업데이트하도록 더 구성되고, 상기 호스트 장치는 상기 제1 맵핑 테이블의 상기 업데이트된 일부분을 수신하고, 상기 제1 맵핑 테이블의 상기 업데이트된 일부분에 기초하여 상기 제2 맵핑 테이블을 업데이트하도록 더 구성된, 시스템.
  19. 청구항 18에 있어서, 상기 메모리 장치는 상기 업데이트에 응답하여 상기 제2 맵핑 테이블을 검증하도록 상기 호스트 장치에 지시하도록 더 구성된, 시스템.
  20. 청구항 18에 있어서, 상기 호스트 장치는, 상기 메모리 장치에 기록할 때 상기 제2 맵핑 테이블을 무효화하도록 더 구성된, 시스템.
  21. 청구항 17에 있어서, 상기 호스트 장치는 상기 메모리 장치로부터 상기 제1 맵핑 테이블을 요청하도록 더 구성된, 시스템.
  22. 청구항 17에 있어서, 상기 메모리 장치는 상기 제1 맵핑 테이블의 개별 부분들을 상기 호스트 장치에 전송하도록 더 구성되며, 상기 호스트 장치는 상기 호스트 장치에 전송된 상기 개별 부분들로부터 상기 제2 맵핑 테이블을 구축하도록 더 구성된, 시스템.
  23. 청구항 17에 있어서, 상기 메모리 장치의 상기 메모리 영역들은 NAND-기반 메모리 영역들이고, 상기 호스트 장치의 상기 메모리는 랜덤 액세스 메모리인, 시스템.
  24. 청구항 23에 있어서, 상기 메모리 장치는 상기 메모리 영역들의 하나 이상에 상기 제1 맵핑 테이블을 저장하도록 더 구성된, 시스템.
KR1020187032345A 2016-04-14 2017-03-29 직접 판독 액세스를 갖는 메모리 장치 KR20180123192A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/099,389 2016-04-14
US15/099,389 US20170300422A1 (en) 2016-04-14 2016-04-14 Memory device with direct read access
PCT/US2017/024790 WO2017180327A1 (en) 2016-04-14 2017-03-29 Memory device with direct read access

Publications (1)

Publication Number Publication Date
KR20180123192A true KR20180123192A (ko) 2018-11-14

Family

ID=60038197

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187032345A KR20180123192A (ko) 2016-04-14 2017-03-29 직접 판독 액세스를 갖는 메모리 장치

Country Status (6)

Country Link
US (1) US20170300422A1 (ko)
EP (1) EP3443461A4 (ko)
KR (1) KR20180123192A (ko)
CN (1) CN109074307A (ko)
TW (1) TWI664529B (ko)
WO (1) WO2017180327A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11237976B2 (en) 2019-06-05 2022-02-01 SK Hynix Inc. Memory system, memory controller and meta-information storage device
US11256615B2 (en) 2019-04-17 2022-02-22 SK Hynix Inc. Apparatus and method for managing map segment using map miss ratio of memory in a memory system
US11294825B2 (en) 2019-04-17 2022-04-05 SK Hynix Inc. Memory system for utilizing a memory included in an external device
US11294597B2 (en) 2019-06-28 2022-04-05 SK Hynix Inc. Apparatus and method for transferring internal data of memory system in sleep mode

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10542089B2 (en) * 2017-03-10 2020-01-21 Toshiba Memory Corporation Large scale implementation of a plurality of open channel solid state drives
US10445195B2 (en) 2017-08-07 2019-10-15 Micron Technology, Inc. Performing data restore operations in memory
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
US11010233B1 (en) 2018-01-18 2021-05-18 Pure Storage, Inc Hardware-based system monitoring
US10809942B2 (en) * 2018-03-21 2020-10-20 Micron Technology, Inc. Latency-based storage in a hybrid memory system
US11048597B2 (en) 2018-05-14 2021-06-29 Micron Technology, Inc. Memory die remapping
WO2020024151A1 (zh) * 2018-08-01 2020-02-06 华为技术有限公司 信息处理方法及装置、设备、系统
KR20200050169A (ko) * 2018-11-01 2020-05-11 삼성전자주식회사 스토리지 장치, 스토리지 시스템 및 스토리지 장치의 동작 방법
TWI709854B (zh) * 2019-01-21 2020-11-11 慧榮科技股份有限公司 資料儲存裝置及用於存取邏輯至物理位址映射表之方法
CN109800179B (zh) * 2019-01-31 2021-06-22 维沃移动通信有限公司 获取数据的方法、发送数据的方法、主机和内嵌式存储器
KR20200099897A (ko) * 2019-02-15 2020-08-25 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
KR20200142393A (ko) * 2019-06-12 2020-12-22 에스케이하이닉스 주식회사 저장 장치, 호스트 장치 및 그들의 동작 방법
US11720692B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Hardware token based management of recovery datasets for a storage system
US11941116B2 (en) 2019-11-22 2024-03-26 Pure Storage, Inc. Ransomware-based data protection parameter modification
US11625481B2 (en) 2019-11-22 2023-04-11 Pure Storage, Inc. Selective throttling of operations potentially related to a security threat to a storage system
US20210382992A1 (en) * 2019-11-22 2021-12-09 Pure Storage, Inc. Remote Analysis of Potentially Corrupt Data Written to a Storage System
US11341236B2 (en) 2019-11-22 2022-05-24 Pure Storage, Inc. Traffic-based detection of a security threat to a storage system
US11520907B1 (en) 2019-11-22 2022-12-06 Pure Storage, Inc. Storage system snapshot retention based on encrypted data
US11675898B2 (en) 2019-11-22 2023-06-13 Pure Storage, Inc. Recovery dataset management for security threat monitoring
US11500788B2 (en) * 2019-11-22 2022-11-15 Pure Storage, Inc. Logical address based authorization of operations with respect to a storage system
US11615185B2 (en) 2019-11-22 2023-03-28 Pure Storage, Inc. Multi-layer security threat detection for a storage system
US11687418B2 (en) 2019-11-22 2023-06-27 Pure Storage, Inc. Automatic generation of recovery plans specific to individual storage elements
US11651075B2 (en) 2019-11-22 2023-05-16 Pure Storage, Inc. Extensible attack monitoring by a storage system
US11755751B2 (en) 2019-11-22 2023-09-12 Pure Storage, Inc. Modify access restrictions in response to a possible attack against data stored by a storage system
US11657155B2 (en) 2019-11-22 2023-05-23 Pure Storage, Inc Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system
US11720714B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Inter-I/O relationship based detection of a security threat to a storage system
US11645162B2 (en) 2019-11-22 2023-05-09 Pure Storage, Inc. Recovery point determination for data restoration in a storage system
US11249896B2 (en) * 2019-12-20 2022-02-15 Micron Technology, Inc. Logical-to-physical mapping of data groups with data locality
US11615022B2 (en) * 2020-07-30 2023-03-28 Arm Limited Apparatus and method for handling accesses targeting a memory
US11449244B2 (en) * 2020-08-11 2022-09-20 Silicon Motion, Inc. Method and apparatus for performing access management of memory device in host performance booster architecture with aid of device side table information
JP2023135390A (ja) * 2022-03-15 2023-09-28 キオクシア株式会社 情報処理装置
US20240012579A1 (en) * 2022-07-06 2024-01-11 Samsung Electronics Co., Ltd. Systems, methods, and apparatus for data placement in a storage device

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8429352B2 (en) * 2007-06-08 2013-04-23 Sandisk Technologies Inc. Method and system for memory block flushing
US8977805B2 (en) * 2009-03-25 2015-03-10 Apple Inc. Host-assisted compaction of memory blocks
US8601202B1 (en) * 2009-08-26 2013-12-03 Micron Technology, Inc. Full chip wear leveling in memory device
JP2012128815A (ja) * 2010-12-17 2012-07-05 Toshiba Corp メモリシステム
TWI480733B (zh) * 2012-03-29 2015-04-11 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置
KR20140057454A (ko) * 2012-11-02 2014-05-13 삼성전자주식회사 비휘발성 메모리 장치 및 이와 통신하는 호스트 장치
US9164888B2 (en) * 2012-12-10 2015-10-20 Google Inc. Using a logical to physical map for direct user space communication with a data storage device
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
KR20150002297A (ko) * 2013-06-28 2015-01-07 삼성전자주식회사 스토리지 시스템 및 그의 동작 방법
KR20150015764A (ko) * 2013-08-01 2015-02-11 삼성전자주식회사 스토리지 디바이스 및 이를 포함하는 스토리지 시스템
US9626331B2 (en) * 2013-11-01 2017-04-18 International Business Machines Corporation Storage device control
US9507722B2 (en) * 2014-06-05 2016-11-29 Sandisk Technologies Llc Methods, systems, and computer readable media for solid state drive caching across a host bus
KR20160027805A (ko) * 2014-09-02 2016-03-10 삼성전자주식회사 비휘발성 메모리 장치를 위한 가비지 컬렉션 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11256615B2 (en) 2019-04-17 2022-02-22 SK Hynix Inc. Apparatus and method for managing map segment using map miss ratio of memory in a memory system
US11294825B2 (en) 2019-04-17 2022-04-05 SK Hynix Inc. Memory system for utilizing a memory included in an external device
US11237976B2 (en) 2019-06-05 2022-02-01 SK Hynix Inc. Memory system, memory controller and meta-information storage device
US11294597B2 (en) 2019-06-28 2022-04-05 SK Hynix Inc. Apparatus and method for transferring internal data of memory system in sleep mode

Also Published As

Publication number Publication date
WO2017180327A1 (en) 2017-10-19
EP3443461A4 (en) 2019-12-04
CN109074307A (zh) 2018-12-21
EP3443461A1 (en) 2019-02-20
TWI664529B (zh) 2019-07-01
US20170300422A1 (en) 2017-10-19
TW201802687A (zh) 2018-01-16

Similar Documents

Publication Publication Date Title
KR20180123192A (ko) 직접 판독 액세스를 갖는 메모리 장치
CN107015920B (zh) 存储设备和存储设备的操作方法
CN111684417B (zh) 用以存取异质存储器组件的存储器虚拟化
US10924552B2 (en) Hyper-converged flash array system
US10678476B2 (en) Memory system with host address translation capability and operating method thereof
EP3436953B1 (en) Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device
US10965751B2 (en) Just a bunch of flash (JBOF) appliance with physical access application program interface (API)
US9779022B2 (en) Methods for caching and reading data to be programmed into a storage unit and apparatuses using the same
KR102652694B1 (ko) 서브 블록 모드를 사용한 구역 네임스페이스 제한 완화
JP2023514307A (ja) 順次的にプログラムするメモリサブシステムにおける順次読み出し最適化
US20220171532A1 (en) Electronic system including host, memory controller and memory device and method of operating the same
US20230418485A1 (en) Host device, storage device, and electronic device
US11029854B2 (en) Memory controller for concurrently writing host data and garbage collected data and operating method thereof
US11954350B2 (en) Storage device and method of operating the same
TWI724483B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
US20240070033A1 (en) Storage device including nonvolatile memory device and operating method of storage device
CN110968527B (zh) Ftl提供的缓存
US20240078027A1 (en) Storage device including nonvolatile memory device and operating method of storage device
KR20220127067A (ko) 저장 장치 및 그 동작 방법
CN110968525A (zh) Ftl提供的缓存、其优化方法与存储设备

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E90F Notification of reason for final refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
E601 Decision to refuse application
E801 Decision on dismissal of amendment