KR20140008914A - 비휘발성 메모리 제어기 및 그 제어 방법 - Google Patents

비휘발성 메모리 제어기 및 그 제어 방법 Download PDF

Info

Publication number
KR20140008914A
KR20140008914A KR1020120076606A KR20120076606A KR20140008914A KR 20140008914 A KR20140008914 A KR 20140008914A KR 1020120076606 A KR1020120076606 A KR 1020120076606A KR 20120076606 A KR20120076606 A KR 20120076606A KR 20140008914 A KR20140008914 A KR 20140008914A
Authority
KR
South Korea
Prior art keywords
mapping table
mapping
data
information
size unit
Prior art date
Application number
KR1020120076606A
Other languages
English (en)
Other versions
KR101400506B1 (ko
Inventor
이성우
Original Assignee
주식회사 이에프텍
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 이에프텍 filed Critical 주식회사 이에프텍
Priority to KR1020120076606A priority Critical patent/KR101400506B1/ko
Publication of KR20140008914A publication Critical patent/KR20140008914A/ko
Application granted granted Critical
Publication of KR101400506B1 publication Critical patent/KR101400506B1/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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers

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 매핑 테이블;을 포함하는 것을 특징으로 한다.
본 발명의 바람직한 일실시예의 비휘발성 메모리 제어기 및 그 제어 방법에 따르면, 플래시 메모리 등의 비휘발성 메모리 사용시에 플래시 변환 계층의 자료 구조인 메모리 매핑 테이블에 사용되는 메모리 사용량을 줄일 수 있을 뿐만 아니라, 검색 속도를 향상시킬 수 있다.

Description

비휘발성 메모리 제어기 및 그 제어 방법{Non-volatile Memory Controller and Control Method Therefor}
본 발명은 비휘발성 메모리 제어기 및 그 제어 방법에 관한 것으로, 더욱 상세하게는 플래시 메모리 등의 비휘발성 메모리 사용시에 논리 주소에 대응하는 물리 주소의 매핑을 효율적으로 수행하기 위한 비휘발성 메모리 제어기 및 그 제어 방법에 관한 것이다.
비휘발성 메모리, 특히 대용량 데이터가 저장되는 저장 매체인 플래시 메모리는 성능과 안정성, 저전력 등의 강점을 앞세워 핸드헬드 컴퓨터, 이동전화, 스마트폰, 디지털 카메라, 휴대용 미디어 플레이어, 메모리 카드 등의 모바일 환경에서 널리 사용되고 있다.
일반적으로 플래시 메모리는 다른 메모리 소자와 비교할 때 비교적 낮은 단가로 빠른 읽기 속도를 제공할 수 있으며, 호스트와의 인터페이싱을 위하여 메모리 제어부와 연동한다. 메모리 제어부는 빠른 주소 매핑(Mapping)을 위해 호스트(예컨대 일반 하드디스크)의 파일 시스템(File System)과 플래시 메모리 사이에 플래시 변환 계층(FTL: Flash Translation Layer)을 사용한다.
일반적 하드디스크와 달리 플래시 메모리는 물리적 공간에 대한 덮어쓰기(Overwrite)가 되지 않는 약점이 있으므로, 이를 극복하기 위하여 플래시 변환 계층을 통해 논리적 섹터를 물리적 메모리에 매핑하기 위한 자료구조를 제공하는 것이다.
플래시 변환 계층의 자료 구조로는 해시 테이블이 가장 일반적이다. 그러나 매핑해야 할 주소들이 많아지면, 플래시 변환 계층의 구현을 위한 메모리 소모량이 증가하고 충돌로 인하여 검색 속도가 떨어진다. 특히 모바일 환경에서 활용도가 높은 플래시 메모리의 특성상 플래시 변환 계층을 구현하기 위한 RAM 등의 메모리 사이즈는 이를 탑재한 단말의 크기, 비용, 속도에 직접적으로 영향을 미치게 된다.
본 발명은 전술한 바와 같은 기술적 과제를 해결하는 데 목적이 있는 발명으로서, 플래시 메모리 등의 비휘발성 메모리 사용시에 플래시 변환 계층의 자료 구조인 메모리 매핑 테이블에 사용되는 메모리 사용량을 줄일 수 있을 뿐만 아니라, 검색 속도를 향상시킬 수 있는 비휘발성 메모리 제어기 및 그 제어 방법을 제공하는 것에 그 목적이 있다.
본 발명의 바람직한 일실시예의 비휘발성 메모리 제어기는, 논리 주소를 입력받아, 상기 논리 주소에 대응하는 비휘발성 메모리의 물리 주소를 매핑하는 메모리 제어기로, 제 1 크기 단위로 상기 비휘발성 메모리의 매핑 정보를 저장하는 제 1 매핑 테이블; 및 제 2 크기 단위로 상기 비휘발성 메모리의 매핑 정보를 저장하는 제 2 매핑 테이블;을 포함하는 것을 특징으로 한다. 또한, 본 발명의 비휘발성 메모리 제어기는, 상기 비휘발성 메모리에 저장된 데이터에 대해 상기 제 1 크기 단위로 읽기 요청을 받은 경우, 상기 제 1 매핑 테이블로부터 매핑 정보를 읽어 들이고, 상기 비휘발성 메모리에 저장된 데이터에 대해 상기 제 2 크기 단위로 읽기 요청을 받은 경우, 상기 제 2 매핑 테이블로부터 매핑 정보를 읽어 들인다.
아울러, 본 발명의 비휘발성 메모리 제어기는, 상기 제 1 크기 단위로 읽기 요청을 받은 데이터의 매핑 정보를 상기 제 1 매핑 테이블로부터 읽어 들일 수 없는 경우, 상기 제 2 매핑 테이블로부터 상기 읽기 요청을 받은 데이터의 매핑 정보를 읽어 들이는 것을 특징으로 한다.
구체적으로, 본 발명의 비휘발성 메모리 제어기는, 상기 제 1 매핑 테이블에 포함된 매핑 정보에 따라 상기 비휘발성 메모리에 저장된 데이터에 대해, 상기 제 2 크기 단위로 읽기 요청을 받은 경우, 상기 제 2 크기 단위의 읽기 요청에 사용된 정보를 상기 제 1 크기 단위로 정렬한 후, 상기 제 1 매핑 테이블을 이용하여 상기 읽기 요청받은 상기 비휘발성 메모리에 저장된 데이터에 대한 매핑 정보를 읽어 들이는 것을 특징으로 한다.
또한, 본 발명의 비휘발성 메모리 제어기는, 상기 비휘발성 메모리에 저장된 데이터에 대해 읽기 요청을 받은 경우, 상기 제 1 매핑 테이블 및 제 2 매핑 테이블을 동시 또는 순차적으로 검색하는 것에 의해 상기 읽기 요청받은 상기 비휘발성 메모리에 저장된 데이터에 대한 매핑 정보를 읽어 들일 수 있다. 본 발명의 비휘발성 메모리 제어기는, 상기 제 1 매핑 테이블 및 제 2 매핑 테이블을 동시 또는 순차적으로 검색하는 것에 의해 상기 읽기 요청받은 상기 비휘발성 메모리에 저장된 데이터에 대한 매핑 정보를 읽어 들일 수 없는 경우에는, 상기 비휘발성 메모리에 저장된 데이터에 대한 읽기 요청에 사용된 정보를 정렬하는 것에 의해 상기 제 1 매핑 테이블 및 제 2 매핑 테이블의 재검색을 실시하는 것이 바람직하다.
본 발명의 비휘발성 메모리 제어기는, 상기 제 1 크기 단위로 상기 비휘발성 메모리에 데이터의 쓰기 요청을 받은 경우, 상기 제 1 매핑 테이블을 이용하여 매핑 정보를 저장하고, 상기 제 2 크기 단위로 상기 비휘발성 메모리에 데이터의 쓰기 요청을 받은 경우, 상기 제 2 매핑 테이블을 이용하여 매핑 정보를 저장한다. 다만, 상기 제 1 크기 단위로 데이터의 쓰기 요청을 받았으나, 상기 제 1 크기 단위로 쓰기 요청에 사용된 정보가 상기 제 1 크기 단위로 정렬되지 않은 경우, 버퍼에 상기 쓰기 요청된 데이터를 저장하고, 상기 쓰기 요청에 사용된 정보를 정렬한 후, 상기 제 1 매핑 테이블 및 상기 제 2 매핑 테이블을 동시에 이용하여 매핑 정보를 저장하는 것이 바람직하다.
또한, 본 발명의 바람직한 일실시예의 비휘발성 메모리 제어기는, 상기 제 1 매핑 테이블에 포함된 매핑 정보에 따라 상기 비휘발성 메모리에 저장된 데이터가 불연속적으로 변경된 경우, 상기 비휘발성 메모리에 저장된 데이터의 매핑 정보를 상기 제 1 매핑 테이블로부터 제거하고, 상기 제 2 크기 단위로 제 2 매핑 테이블에 저장하는 것을 특징으로 한다. 아울러, 본 발명의 비휘발성 메모리 제어기는, 연속적인 논리 주소의 데이터에 대해 물리 주소가 불연속적으로 할당된 후, 연속적인 물리 주소로 정렬된 경우, 해당 매핑 정보를 상기 제 2 매핑 테이블로부터 상기 제 1 매핑 테이블로 이동하여 상기 제 1 크기 단위로 저장하는 것을 특징으로 한다.
바람직한 일실시예의 상기 제 1 크기는 상기 제 2 크기보다 큰 것을 특징으로 한다.
본 발명의 바람직한 일실시예의 비휘발성 메모리 제어기 및 그 제어 방법에 따르면, 플래시 메모리 등의 비휘발성 메모리 사용시에 플래시 변환 계층의 자료 구조인 메모리 매핑 테이블에 사용되는 메모리 사용량을 줄일 수 있을 뿐만 아니라, 검색 속도를 향상시킬 수 있다.
도 1은 일반적인 메모리 매핑 테이블에 의한 논리 주소와 물리 주소의 매핑 방법에 대한 설명도.
도 2는 본 발명의 바람직한 일실시예의 비휘발성 메모리 제어기의 구성도.
도 3은 본 발명의 바람직한 일실시예에 따른 쓰기 요청에 대한 비휘발성 메모리의 제어 방법의 흐름도.
도 4는 본 발명의 바람직한 일실시예에 따른 읽기 요청에 대한 비휘발성 메모리의 제어 방법의 흐름도.
이하, 첨부된 도면을 참조하면서 본 발명의 일실시예에 따른 비휘발성 메모리 제어기 및 그 제어 방법에 대해 상세히 설명하기로 한다.
본 발명의 하기의 실시예는 본 발명을 구체화하기 위한 것일 뿐 본 발명의 권리 범위를 제한하거나 한정하는 것이 아님은 물론이다. 본 발명의 상세한 설명 및 실시예로부터 본 발명이 속하는 기술 분야의 전문가가 용이하게 유추할 수 있는 것은 본 발명의 권리 범위에 속하는 것으로 해석된다.
논리 주소를 입력받아, 논리 주소에 대응하는 플래시 메모리 등과 같은 비휘발성 메모리의 물리 주소를 매핑하기 위해 메모리 매핑 테이블을 포함한 플래시 변환 계층이 사용된다. 메모리 매핑 테이블로는 해시 테이블(Hash Table)을 예로 들 수 있다.
먼저, 도 1은 일반적인 해시 테이블 등과 같은 메모리 매핑 테이블에 의한 논리 주소와 물리 주소의 매핑 방법에 대한 설명도이다. 도 1에서는 연속적인 논리적 공간상의 논리 주소 16, 17, 18, 19, 20, 21, 22, 23에 위치한 페이지들이 물리적 공간상에서 물리 주소 45 내지 52에 존재하게 된다.
일반적인 해시 테이블 경우, 페이지(Page) 단위로 사상 정보를 저장한다.
그러나, 최근의 플래시 메모리를 저장 매체로 이용한 경우의 접근 패턴을 분석해 보면, 큰 크기의 멀티 미디어 데이터로 채워져 있고, 데이터에 대한 읽기 및/또는 쓰기는 페이지 단위(혹은 섹터 단위, 512 바이트 혹은 1, 2, 4K 바이트)보다 훨씬 큰 단위로 발생하는 경우가 많다. 예를 들면, 리눅스를 이용한 파일 시스템의 경우, 멀티 미디어 등의 대용량 파일들에 대해서는 512K 바이트(Bytes) 단위의 읽기와 쓰기를 수행한다.
따라서, 일반적인 해시 테이블 등의 메모리 매핑 테이블을 이용한 논리 주소와 물리 주소의 매핑의 경우, 페이지 단위로 이루어지는 까닭에 메모리 매핑 테이블을 위한 메모리 사용량이 크고, 검색 속도가 낮아지는 문제점이 발생하게 된다.
도 2는 본 발명의 바람직한 일실시예의 비휘발성 메모리 제어기(100)의 구성도를 나타낸다. 도 2로부터 알 수 있는 바와 본 발명의 바람직한 일실시예의 비휘발성 메모리 제어기(100)는 논리 주소를 입력받아, 논리 주소에 대응하는 비휘발성 메모리(200)의 물리 주소를 매핑하기 위한 매핑 정보를 포함하는 제 1 매핑 테이블(10) 및 제 2 매핑 테이블(20)의 2개의 메모리 매핑 테이블을 포함한다.
비록 본 발명에서는 2개의 메모리 매핑 테이블을 예시하고 있으나, 필요에 따라 보다 많은 수의 메모리 매핑 테이블에 의해 구성될 수도 있을 것이다. 즉, 다단계로 구성 가능하며, 예를 들면 4K, 512K, 1M 바이트 크기 단위의 3단계 매핑 테이블이 구성될 수도 있다.
구체적으로, 제 1 크기 단위로 비휘발성 메모리(200)에 데이터의 쓰기 요청을 받은 경우, 제 1 매핑 테이블(10)은 제 1 크기 단위로 비휘발성 메모리(200)의 논리 주소의 시작 정보, 물리 주소의 시작 주소 정보 등의 매핑 정보를 저장하게 된다. 또한, 제 2 크기 단위로 비휘발성 메모리(200)에 데이터의 쓰기 요청을 받은 경우, 제 2 매핑 테이블(20)은 제 2 크기 단위로 비휘발성 메모리(200)의 매핑 정보를 저장하게 된다. 제 1 크기 단위는 제 2 크기 단위 보다 더 큰 것이 바람직하다. 본 발명에서의 매핑 정보는, 입력된 논리 주소 정보에 대응하는 데이터가 저장된 비휘발성 메모리 물리 주소 정보를 매칭하기 위한, 논리 주소 정보 및 물리 주소 정보를 포함하는 정보이다.
제 1 크기 단위 및 제 2 크기 단위의 설정 예로는 각각, 상술한 리눅스 시스템에서 사용되는 쓰기 및/또는 읽기의 최대 용량인 512K 바이트 및 페이지 단위(리눅스 파일 시스템의 단위 블록)인 4K 바이트를 들 수 있을 것이다.
즉, 제 1 매핑 테이블(10) 및 제 2 매핑 테이블(20)은 물리적 공간 상에 연속적으로 저장되는 시퀀셜 데이터(sequential data)에 대해, 해당 시퀀셜 데이터를 순차적으로 저장하는 연속된 물리 주소들과 대응하는 연속된 논리 주소들에 대하여 하나의 대표값(예를 들면, 제 1 크기 단위 또는 제 2 크기 단위로 정렬된, 논리 주소의 시작 주소 정보)을 설정하고, 설정된 대표값을 이용하여 논리 주소들과 물리 주소들 간의 매핑을 수행하게 된다. 이때, 제 1 매핑 테이블(10)은 제 1 크기 단위의 연속된 물리 주소들과 대응하는 연속된 논리 주소들에 대해 대표값 및 물리 주소의 시작 주소 정보가, 제 2 매핑 테이블(20)은 제 2 크기 단위의 연속된 물리 주소들과 대응하는 연속된 논리 주소들에 대해 대표값 및 물리 주소의 시작 주소 정보가 각각 저장되게 된다.
예를 들면, 제 1 크기를 512K 바이트라고 했을 경우, 제 1 매핑 테이블(10)에는 512K 바이트 단위로, 즉 512K 바이트 간격으로 물리 주소의 시작 주소 정보 등의 매핑 정보를 저장하게 된다. 이에 따라, 4K 바이트의 페이지 단위의 제 2 매핑 테이블(20) 하나로만 메모리 제어를 수행할 때와 비교하여, 512K 바이트 단위의 데이터의 경우, 매핑 테이블에 사용되는 메모리의 크기가 128배 줄어들 수 있게 된다.
즉, 본 발명의 기본 사상은 작은 크기 단위 및 큰 크기 단위의 데이터의 읽기 및 쓰기 요청에 대해, 메모리를 위한 매핑 테이블을 별도로 준비하는 것에 의해, 검색 속도 향상과 매핑 테이블에 사용되는 메모리 사용량을 줄이는 것에 있는 것이다.
구체적으로, 비휘발성 메모리(200)에 데이터의 쓰기 요청을 받은 경우, 본 발명의 비휘발성 메모리 제어기(100)는 다음과 같이 동작하게 된다.
먼저, 비휘발성 메모리(200)에 쓰기 요청을 받은 데이터의 크기가 제 1 크기 단위인 경우, 제 1 매핑 테이블(10)에 물리 주소의 시작 주소 정보 등의 매핑 정보를 저장하게 된다. 만약, 비휘발성 메모리(200)에 쓰기 요청을 받은 데이터의 크기가 제 2 크기 단위인 경우, 제 2 매핑 테이블(20)에 물리 주소의 시작 주소 정보 등의 매핑 정보를 저장하게 된다. 또한, 쓰기 요청이 제 1 크기 단위보다 큰 경우, 제 1 크기 단위로 나누어 제 1 매핑 테이블(10)에 저장한다. 이때 마지막 크기가 제 1 크기 단위보다 작다면, 제 2 크기 단위로 나누어 제 2 매핑 테이블(20)에 저장한다.
다음으로, 비휘발성 메모리(200)에 저장된 데이터에 대해 읽기 요청을 받은 경우, 본 발명의 비휘발성 메모리 제어기(100)의 동작에 대해 설명하기로 한다.
먼저, 제 1 크기 단위로 데이터의 읽기 요청을 받은 경우, 제 1 매핑 테이블(10)로부터 매핑 정보를 읽어 들인다. 만약, 제 1 크기 단위 미만 제 2 크기 단위 이상으로 데이터의 읽기 요청을 받은 경우, 제 2 매핑 테이블(20)을 이용하여 매핑 정보를 읽어 들이게 된다. 듀얼 시피유(dual cpu) 등에 의해 제 1 매핑 테이블(10) 및 제 2 매핑 테이블(20)을 동시에 검색하여, 해당 매핑 정보를 읽어 들이는 것도 가능하다.
다만, 제 1 크기 단위로 데이터의 읽기 요청을 받은 경우일지라도 제 1 매핑 테이블(10)로부터 매핑 정보를 읽어 들일 수 없거나, 제 1 크기 단위 미만 제 2 크기 단위 이상으로 데이터의 읽기 요청을 받은 경우일지라도 제 2 매핑 테이블(20)을 이용하여 매핑 정보를 읽어 들일 수 없는 몇몇 특수한 경우가 있을 수 있다.
하기에 읽기 요청의 특수한 경우의 대응 방법에 대해 예를 들어 설명하기로 한다.
읽기 요청의 특수한 제 1 경우
제 1 크기 단위로 데이터의 읽기 요청을 받았음에도, 제 1 매핑 테이블(10)로부터 검색되지 않는 경우에는 별도의 조치가 필요할 것이다. 이 경우에는, 먼저 제 2 매핑 테이블(20)로부터 읽기 요청을 받은 제 1 크기 단위를 제 2 크기 단위로 나누어 검색하는 것에 의해, 제 2 크기 단위별로 매핑 정보를 읽어 들일 수 있을 것이다.
다만, 제 2 매핑 테이블(20)로부터도 매핑 정보를 읽어 들일 수 없는 경우에는, 읽기 요청에 사용된 정보인 해당 논리 주소의 시작 주소가 정렬이 안되어 있는 경우로, 하기의 읽기 요청의 특수한 제 3 경우를 참조하길 바란다.
읽기 요청의 특수한 제 2 경우
본 경우는, 제 1 크기 단위로 비휘발성 메모리(200)에 저장되었고, 그 메모리(200)에 대한 매핑 정보가 제 1 매핑 테이블(10)에 저장되었으나, 제 2 크기 단위로 읽기 요청을 받은 경우이다. 즉, 제 1 매핑 테이블(10)에 포함된 매핑 정보에 따라 비휘발성 메모리(200)에 저장된 데이터에 대해, 제 2 크기 단위로 읽기 요청을 받은 경우, 제 2 매핑 테이블(20)로부터는 해당 매핑 정보를 읽어 들일 수 없다. 이 경우, 제 2 크기 단위의 읽기 요청에 사용된 정보를 제 1 크기 단위로 정렬을 수행한 후, 제 1 매핑 테이블(10)을 이용하여 매핑 정보를 읽어 들일 수 있다.
제 2 크기 단위의 읽기 요청에 사용된 정보를 제 1 크기 단위로 정렬을 수행하는 구체적인 일실시예에 대해 설명하기로 한다. 제 2 크기 단위를 4K 바이트라고 하고, 제 1 크기 단위를 512K 바이트라 하자. 만약 읽기 요청된 논리 주소의 시작 주소 정보가 1028K 바이트라고 하면, 512K 바이트 단위가 아니므로, 논리 주소의 시작 주소를 1024K 바이트로 하여 512K 바이트 단위로 정렬한 후, 제 1 매핑 테이블(10)을 이용하여 매핑 정보를 읽어 들인다.
읽기 요청의 특수한 제 3 경우
비휘발성 메모리(200)에 데이터가 저장되었고, 제 1 크기 단위로 읽기 요청을 받은 경우로, 먼저 제 1 매핑 테이블(10)로부터 해당 매핑 정보를 검색하였으나, 검색이 되지 않는 경우이다. 본 읽기 요청의 특수한 제 3 경우는, 논리 주소의 시작 주소가 정렬이 되어 있지 않았을 때 발생할 수 있다.
이 경우, 읽기 요청된 데이터가 제 1 매핑 테이블(10) 및 제 2 매핑 테이블(20)에 어느 곳에 존재할지 검색 전에는 알 수 없다. 따라서, 제 2 크기 단위로 나누어서 제 2 매핑 테이블(20)을 검색하고, 제 2 매핑 테이블(20)로부터 검색이 안되는 경우 제 1 매핑 테이블(10)을 검색한다. 다만, 듀얼 시피유(dual cpu) 등을 이용해 동시 검색하는 것도 가능하다.
제 1 매핑 테이블(10)로부터 해당 매핑 정보를 검색하기 위해서는 정렬되지 않은 논리 주소의 시작 주소 정보를 이용하여 물리 주소의 시작 주소 정보를 읽어 들일 필요가 있다.
예를 들면, 제 1크기 단위가 512K바이트 일 때, 읽기 요청이 논리 주소의 시작 주소가 513K 바이트이고 단위가 512K바이트라고 하자.
이때는 제 1 매핑 테이블(10)에 두 개의 엔트리(Entry)로 매핑 정보가 존재하게 된다. 즉, 논리 주소의 시작 주소가 512K 바이트인 엔트리를 이용해서 513K 바이트의 물리 주소의 시작 주소 정보를 얻을 수 있다. 그리고, 논리 주소의 시작 주소 1024K 바이트인 엔트리를 이용해 나머지 1K 바이트에 해당하는 물리 주소의 시작 주소 정보를 얻을 수 있다.
읽기 요청의 특수한 제 4 경우
비휘발성 메모리(200)에 데이터가 저장되었고, 제 2 크기 단위로 읽기 요청을 받은 경우로, 이 경우도 논리 주소의 시작 주소가 정렬이 되어 있지 않았을 때 발생할 수 있다.
이 경우에도 읽기 요청된 데이터의 매핑 정보가 제 1 매핑 테이블(10) 또는 제 2 매핑 테이블(20)에 어느 곳에 존재할지 알 수 없다. 우선 제 2 매핑 테이블(20)을 제 2 크기 단위로 나누어서 검색하고, 제 2 매핑 테이블(20)로부터 검색되지 않으면, 제 1 매핑 테이블(10)로부터 검색을 실시한다. 물론, 듀얼 시피유(dual cpu) 등을 이용해 제 1 매핑 테이블(10) 및 제 2 매핑 테이블(20)을 동시에 검색하는 것도 가능하다.
다만, 제 1 매핑 테이블(10)로부터 검색할 경우, 제 1 크기 단위로 시작 논리 주소를 정렬한 후(예를 들면, 읽기 요청된 논리 주소의 시작 주소가 513K 바이트이면, 512K바이트가 검색할 때의 논리 주소의 시작 주소가 된다.), 제 1 크기 단위의 물리 시작 주소를 찾은 후에, 요청 시작 주소와 검색에 사용된 시작 논리 주소의 차를 이용해 해당 물리 주소의 시작 주소 정보를 얻을 수 있다. 즉, 제 1 크기 단위로 시작 논리 주소를 정렬한 후, 이에 따라 해당 물리 주소의 시작 정보를 정렬하는 방법에 의해 검색이 가능하게 된다.
읽기 요청의 일반적인 경우 및 특수한 제 1 내지 제 4 경우를 정리하자면, 일단 읽기 요청을 받은 데이터의 크기 단위가 제 1 크기 단위인 경우, 제 1 매핑 테이블(10)로부터 물리 주소의 시작 주소 등의 매핑 정보를 검색한다. 다음으로, 제 1 매핑 테이블(10)로부터 매핑 정보가 검색되지 않으면, 제 2 매핑 테이블(20)을 제 2 크기 단위로 나누어서 매핑 정보를 검색한다. 만약, 제 2 매핑 테이블(20)로부터 읽기 요청된 데이터의 매핑 정보를 읽어 들일 수 없으면, 제 1 매핑 테이블(10)로부터 읽기 요청된 데이터의 논리 주소의 시작 주소 정보를 제 1 크기 단위로 정렬하고, 정렬된 논리 주소의 시작 주소 정보에 따라 정렬된 물리 주소의 시작 주소 정보에 따라 데이터를 읽어 들일 수 있다. 즉, 제 2 매핑 테이블(20)로부터 읽기 요청된 데이터의 매핑 정보를 읽어 들일 수 없으면, 읽기 요청에 사용된 정보를 제 1 크기 단위로 정렬한 후, 제 1 매핑 테이블(10)의 재검색을 실시하는 것에 의해 성공적으로 매핑 정보를 읽어 들일 수 있게 된다.
또한, 데이터의 읽기 요청을 받은 데이터의 크기 단위가 제 2 크기 단위인 경우, 제 2 매핑 테이블(20)로부터 물리 주소의 시작 주소 등의 매핑 정보를 검색한다. 다음으로, 제 2 매핑 테이블(20)로부터 매핑 정보가 검색되지 않으면, 제 1 매핑 테이블(10)을 이용하여, 읽기 요청에 사용된 정보를 제 1 크기 단위로 정렬한 후, 제 1 매핑 테이블의 검색을 실시하는 것에 의해 성공적으로 매핑 정보를 읽어 들일 수 있게 된다.
상술한 제 1 매핑 테이블(10)과 제 2 매핑 테이블(20)을 이용한 검색은 동시에 실시될 수도 있다. 즉, 제 1 매핑 테이블(10) 및 제 2 매핑 테이블(20)을 동시에 검색하는 것에 의해 매핑 정보를 읽어 들일 수 없는 경우에는, 읽기 요청에 사용된 정보를 정렬하여 재검색을 실시할 수 있다.
쓰기 요청의 특수한 경우
제 1 크기 단위로 쓰기 요청을 받았으나, 쓰기 요청된 논리 주소의 시작 주소 정보가 제 1 크기 단위로 정렬이 맞지 않는 경우, 버퍼에 데이터를 저장하고, 논리 주소의 시작 주소 정보, 즉 쓰기 요청에 사용된 정보를 정렬하는 것에 의해, 제 1 매핑 테이블(10) 및 제 2 매핑 테이블(20)에 나누어, 즉 제 1 매핑 테이블(10) 및 제 2 매핑 테이블(20)을 동시에 이용하여 물리 주소의 시작 주소 정보를 포함한 매핑 정보를 저장할 수 있다.
제 1 크기 단위로 쓰기 요청을 받았으나, 쓰기 요청에 사용된 정보, 즉 논리 주소의 시작 주소 정보가 제 1 크기 단위로 정렬이 맞지 않는 경우란, 구체적으로, 연속된 논리 주소의 시작 주소(바이트 단위)가 제 1 크기 단위의 배수가 아닌 경우, 즉 정렬(Align)이 맞지 않는 경우를 예로 들 수 있다. 즉, 제 1 크기 단위를 512K 바이트라고 할 때, 논리 주소의 시작 주소가 515K 바이트로부터 시작해서, 제 1 크기 단위인 512K 바이트로 쓰기 요청을 받았을 경우를 들 수 있다.
이러한 논리 주소의 시작 주소가 제 1 크기 단위로 정렬이 맞지 않는 경우, 첫 번째 요청을 버퍼에 저장하고 연속된 논리 주소를 가지는 다음 요청을 기다린다. 두 개의 연속된 논리 주소를 가지는 데이터에서 시작 주소가 제 1 크기 단위로 정렬된 제 1 크기 단위를 추출할 수 있다. 예를 들면, 제 1 크기 단위가 512K 바이트이고, 첫번째 요청이 시작 주소 513K 바이트, 다음 요청이 논리 주소의 시작 주소 1025K 바이트로 가정한 경우, 논리 주소의 시작 주소 513K 바이트에서 (1024K-1K) 바이트까지는 제 2 크기 단위로 나뉘어 제 2 매핑 테이블(20)에 들어가고, 1024K 바이트부터 (1536K-1K) 바이트 까지는 제 1 크기 단위로 하나가 제 1 매핑 테이블(10)에 들어간다. 나머지 1K 바이트는 제 2 매핑 테이블(20)에 저장되게 된다.
또한, 하나의 매핑 테이블을 이용한 비휘발성 메모리(200)에 저장된 데이터의 매핑 정보를 다른 매핑 테이블로 변경해야 하는 경우도 있을 수 있다. 하기에 매핑 테이블의 변경을 필요로 하는 예로 덮어쓰기(Overwrite) 및 데이터 정리의 경우에 대해 설명하기로 한다.
덮어쓰기의 경우
제 1 매핑 테이블(10)에 포함된 물리 주소의 시작 주소 정보 등의 매핑 정보에 따라 비휘발성 메모리(200)에 저장된 데이터의 일부분이 다른 데이터에 의해 덮어쓰기 된 경우, 비휘발성 메모리(200)에 저장된 데이터의 물리 주소의 시작 주소 등의 매핑 정보를 제 1 매핑 테이블(10)로부터 제거하고, 물리 주소의 시작 주소 정보 등의 매핑 정보를 제 2 크기 단위로 제 2 매핑 테이블(20)에 저장할 필요가 있다.
즉, 제 1 매핑 테이블(10)에 포함된 물리 주소의 시작 주소 정보에 따라 비휘발성 메모리(200)에 저장된 연속적인 데이터가, 나중에 불연속적으로 변경된 경우, 비휘발성 메모리(200)에 저장된 데이터의 물리 주소의 시작 주소 정보 등의 매핑 정보를 제 1 매핑 테이블(10)로부터 제거하고, 제 2 크기 단위로 제 2 매핑 테이블(20)에 저장하는 것에 의해 대응이 가능하다.
데이터 정리의 경우
연속적인 논리 주소의 데이터에 대해 물리 주소가 랜덤하게, 즉 불연속적으로 할당된 후, 데이터 정리 등에 의해 연속적인 물리 주소로 정렬된 경우, 해당 물리 주소의 시작 주소 정보를 제 2 매핑 테이블(20)로부터 제 1 매핑 테이블(10)로 이동하여 제 1 크기 단위로 저장할 필요가 있을 것이다. 즉, 제 2 매핑 테이블(20)로부터는 해당 정보를 제거하고, 제 1 매핑 테이블(10)에 해당 정보를 신규로 저장할 필요가 있다.
도 3은 본 발명의 바람직한 일실시예에 따른 비휘발성 메모리(200)의 제어 방법 중 쓰기 요청에 대한 흐름도이다.
도 3으로부터 알 수 있는 바와 같이 본 발명의 바람직한 일실시예에 따른 비휘발성 메모리(200)의 제어 방법 중 쓰기 요청은, 쓰기 요청을 받은 데이터의 크기 단위를 판단하는 단계(S110), 판단된 데이터의 크기 단위에 대응하는 매핑 테이블을 선택하는 단계(S120a, S120b), 선택된 매핑 테이블에 물리 주소의 시작 주소 정보를 포함한 매핑 정보를 저장하는 단계(S130a, S130b) 및 저장된 매핑 정보에 따라 쓰기 요청받은 데이터를 비휘발성 메모리(200)에 저장하는 단계(S140)을 포함한다.
또한, 제 1 크기의 데이터 크기 단위에 대응하는 제 1 매핑 테이블(10)에 포함된 매핑 정보에 따라 저장된 데이터의 제 1 부분이 다른 데이터에 의해 덮어쓰기 된 경우와 같이 불연속적으로 데이터가 변경된 경우, 저장된 데이터의 매핑 정보를 제 1 매핑 테이블(10)로부터 제거하고, 제 2 크기의 데이터 크기 단위에 대응하는 제 2 매핑 테이블(20)에 제 2 크기 단위로 저장한다.
다음으로, 연속적인 논리 주소의 데이터에 대해 물리 주소가 불연속적으로 할당되어 제 2 크기의 데이터 크기 단위에 대응하는 제 2 매핑 테이블(20)에 포함된 매핑 정보에 따라 저장된 후 연속적인 물리 주소로 정렬된 경우, 해당 매핑 정보를 제 2 매핑 테이블(20)로부터 제거하고, 제 1 크기의 데이터 크기 단위에 대응하는 제 1 매핑 테이블(10)로 이동하여 제 1 크기 단위로 저장한다.
도 4는 본 발명의 바람직한 일실시예에 따른 비휘발성 메모리(200)의 제어 방법 중 읽기 요청에 대한 흐름도이다.
먼저, 읽기 요청을 받은 데이터의 크기 단위를 판단(S210)하여 해당하는 크기 단위에 대응하는 메모리 매핑 테이블을 선택한다(S220a, S220b). 다음으로 선택된 매핑 테이블로부터 물리 주소의 시작 주소 정보를 포함한 매핑 정보를 검색한다(S230a, S230b). 해당 매핑 정보가 검색되면(S240a, S240b), 해당 매핑 정보를 읽어 들여, 읽기 요청받은 데이터를 비휘발성 메모리(200)로부터 읽어 들인다(S250).
만약 제 1 매핑 테이블(10)이 선택되었고(S220a), 제 1 매핑 테이블(10)로부터 매핑 정보가 검색되지 않는 경우, 읽기 요청을 받은 제 1 크기 단위를 제 2 크기 단위로 나누어, 제 2 매핑 테이블(20)로부터 제 2 크기 단위별로 매핑 정보를 검색한다. 마찬가지로, 해당 매핑 정보가 검색되면, 매핑 정보를 읽어 들여, 비휘발성 메모리(200)의 데이터를 읽어 들인다.
다음으로, 제 2 매핑 테이블이 선택되었으나(S220b), 제 2 매핑 테이블(20)에는 해당 물리 주소의 시작 정보 등의 매핑 정보가 검색되지 않는 경우이다. 이 경우, 제 2 크기 단위의 읽기 요청에 사용된 정보를 제 1 크기 단위로 정렬을 수행한 후, 제 1 매핑 테이블(10)을 이용하여 매핑 정보를 읽어 들일 수 있다.
상술한 바와 같이 제 1 매핑 테이블(10) 및 제 2 매핑 테이블(20)을 선택적으로 이용하는 것에 의해, 플래시 메모리 등의 비휘발성 메모리 사용시에 논리 주소에 대응하는 물리 주소의 매핑에 사용되는 메모리 매핑 테이블을 위한 메모리 사용량을 줄일 수 있을 뿐만 아니라, 검색 속도를 향상시킬 수 있음을 알 수 있다.
100 : 비휘발성 메모리 제어기 200 : 비휘발성 메모리
10 : 제 1 매핑 테이블 20 : 제 2 매핑 테이블

Claims (17)

  1. 논리 주소를 입력받아, 상기 논리 주소에 대응하는 비휘발성 메모리의 물리 주소를 매핑하는 메모리 제어기에 있어서,
    제 1 크기 단위로 상기 비휘발성 메모리의 매핑 정보를 저장하는 제 1 매핑 테이블; 및
    제 2 크기 단위로 상기 비휘발성 메모리의 매핑 정보를 저장하는 제 2 매핑 테이블;을 포함하는 것을 특징으로 하는 비휘발성 메모리 제어기.
  2. 제 1 항에 있어서,
    상기 비휘발성 메모리에 저장된 데이터에 대해 상기 제 1 크기 단위로 읽기 요청을 받은 경우, 상기 제 1 매핑 테이블로부터 매핑 정보를 읽어 들이고,
    상기 비휘발성 메모리에 저장된 데이터에 대해 상기 제 2 크기 단위로 읽기 요청을 받은 경우, 상기 제 2 매핑 테이블로부터 매핑 정보를 읽어 들이는 것을 특징으로 하는 비휘발성 메모리 제어기.
  3. 제 2 항에 있어서,
    상기 제 1 크기 단위로 읽기 요청을 받은 데이터의 매핑 정보를 상기 제 1 매핑 테이블로부터 읽어 들일 수 없는 경우, 상기 제 2 매핑 테이블로부터 상기 읽기 요청을 받은 데이터의 매핑 정보를 읽어 들이는 것을 특징으로 하는 비휘발성 메모리 제어기.
  4. 제 1 항에 있어서,
    상기 제 1 매핑 테이블에 포함된 매핑 정보에 따라 상기 비휘발성 메모리에 저장된 데이터에 대해, 상기 제 2 크기 단위로 읽기 요청을 받은 경우,
    상기 제 2 크기 단위의 읽기 요청에 사용된 정보를 상기 제 1 크기 단위로 정렬한 후, 상기 제 1 매핑 테이블을 이용하여 상기 읽기 요청받은 상기 비휘발성 메모리에 저장된 데이터에 대한 매핑 정보를 읽어 들이는 것을 특징으로 하는 비휘발성 메모리 제어기.
  5. 제 1 항에 있어서,
    상기 비휘발성 메모리에 저장된 데이터에 대해 읽기 요청을 받은 경우, 상기 제 1 매핑 테이블 및 제 2 매핑 테이블을 동시 또는 순차적으로 검색하는 것에 의해 상기 읽기 요청받은 상기 비휘발성 메모리에 저장된 데이터에 대한 매핑 정보를 읽어 들이는 것을 특징으로 하는 비휘발성 메모리 제어기.
  6. 제 5 항에 있어서,
    상기 제 1 매핑 테이블 및 제 2 매핑 테이블을 동시 또는 순차적으로 검색하는 것에 의해 상기 읽기 요청받은 상기 비휘발성 메모리에 저장된 데이터에 대한 매핑 정보를 읽어 들일 수 없는 경우에는,
    상기 비휘발성 메모리에 저장된 데이터에 대한 읽기 요청에 사용된 정보를 정렬하는 것에 의해 상기 제 1 매핑 테이블 및 제 2 매핑 테이블의 재검색을 실시하는 것을 특징으로 하는 비휘발성 메모리 제어기.
  7. 제 1 항에 있어서,
    상기 제 1 크기 단위로 상기 비휘발성 메모리에 데이터의 쓰기 요청을 받은 경우, 상기 제 1 매핑 테이블을 이용하여 매핑 정보를 저장하고,
    상기 제 2 크기 단위로 상기 비휘발성 메모리에 데이터의 쓰기 요청을 받은 경우, 상기 제 2 매핑 테이블을 이용하여 매핑 정보를 저장하는 것을 특징으로 하는 비휘발성 메모리 제어기.
  8. 제 7 항에 있어서,
    상기 제 1 크기 단위로 데이터의 쓰기 요청을 받았으나, 상기 제 1 크기 단위로 쓰기 요청에 사용된 정보가 상기 제 1 크기 단위로 정렬되지 않은 경우, 버퍼에 상기 쓰기 요청된 데이터를 저장하고, 상기 쓰기 요청에 사용된 정보를 정렬한 후, 상기 제 1 매핑 테이블 및 상기 제 2 매핑 테이블을 동시에 이용하여 매핑 정보를 저장하는 것을 특징으로 하는 비휘발성 메모리 제어기.
  9. 제 1 항에 있어서,
    상기 제 1 매핑 테이블에 포함된 매핑 정보에 따라 상기 비휘발성 메모리에 저장된 데이터가 불연속적으로 변경된 경우,
    상기 비휘발성 메모리에 저장된 데이터에 대한 매핑 정보를 상기 제 1 매핑 테이블로부터 제거하고, 상기 제 2 크기 단위로 제 2 매핑 테이블에 저장하는 것을 특징으로 하는 비휘발성 메모리 제어기.
  10. 제 1 항에 있어서,
    연속적인 논리 주소의 상기 비휘발성 메모리에 저장된 데이터에 대해 물리 주소가 불연속적으로 할당된 후, 연속적인 물리 주소로 정렬된 경우,
    상기 비휘발성 메모리에 저장된 데이터에 대한 매핑 정보를 상기 제 2 매핑 테이블로부터 상기 제 1 매핑 테이블로 이동하여 상기 제 1 크기 단위로 저장하는 것을 특징으로 하는 비휘발성 메모리 제어기.
  11. 제 1 항 내지 제 10 항 중 어느 한 항에 있어서,
    상기 제 1 크기는 상기 제 2 크기보다 큰 것을 특징으로 하는 비휘발성 메모리 제어기.
  12. (a1) 쓰기 요청을 받은 데이터의 크기 단위를 판단하는 단계;
    (b1) 상기 판단된 데이터의 크기 단위에 대응하는 매핑 테이블을 선택하는 단계;
    (c1) 선택된 매핑 테이블에 매핑 정보를 저장하는 단계; 및
    (d2) 상기 매핑 정보에 따라 상기 쓰기 요청받은 데이터를 비휘발성 메모리에 저장하는 단계;를 포함하는 비휘발성 메모리의 제어 방법.
  13. 제 12 항에 있어서,
    제 1 크기의 데이터 크기 단위에 대응하는 제 1 매핑 테이블에 포함된 매핑 정보에 따라 저장된 데이터가 불연속적으로 변경된 경우,
    상기 저장된 데이터의 매핑 정보를 제 1 매핑 테이블로부터 제거하고, 제 2 크기의 데이터 크기 단위에 대응하는 제 2 매핑 테이블에 상기 제 2 크기 단위로 저장하는 것을 특징으로 하는 비휘발성 메모리의 제어 방법.
  14. 제 12 항에 있어서,
    연속적인 논리 주소의 데이터에 대해 물리 주소가 불연속적으로 할당되어 제 2 크기의 데이터 크기 단위에 대응하는 제 2 매핑 테이블에 포함된 매핑 정보에 따라 저장된 후, 연속적인 물리 주소로 정렬된 경우,
    해당 매핑 정보를 제 2 매핑 테이블로부터 제 1 크기의 데이터 크기 단위에 대응하는 제 1 매핑 테이블로 이동하여 제 1 크기 단위로 저장하는 것을 특징으로 하는 비휘발성 메모리의 제어 방법.
  15. (a2) 읽기 요청을 받은 데이터의 크기 단위를 판단하는 단계;
    (b2) 상기 판단된 데이터의 크기 단위에 대응하는 매핑 테이블을 선택하는 단계;
    (c2) 선택된 매핑 테이블로부터 매핑 정보를 검색하는 단계; 및
    (d2) 매핑 정보를 읽어 들여, 상기 읽기 요청받은 데이터를 비휘발성 메모리로부터 읽어 들이는 단계;를 포함하는 비휘발성 메모리의 제어 방법.
  16. 제 15 항에 있어서,
    상기 (b2) 단계에서, 제 1 크기의 데이터 크기 단위에 대응하는 제 1 매핑 테이블이 선택되고, 상기 제 1 매핑 테이블로부터 매핑 정보가 검색되지 않는 경우,
    제 2 매핑 테이블로부터 제 2 크기 단위별로 매핑 정보를 검색하는 것을 특징으로 하는 비휘발성 메모리의 제어 방법.
  17. 제 15 항에 있어서,
    상기 (b2) 단계에서, 제 2 크기의 데이터 크기 단위에 대응하는 제 2 매핑 테이블이 선택되었고, 상기 제 2 매핑 테이블로부터 매핑 정보가 검색되지 않는 경우,
    상기 제 2 크기 단위의 읽기 요청에 사용된 정보를 제 1 크기 단위로 정렬한 후, 제 1 매핑 테이블의 매핑 정보를 검색하는 것을 특징으로 하는 비휘발성 메모리의 제어 방법.
KR1020120076606A 2012-07-13 2012-07-13 비휘발성 메모리 제어기 및 그 제어 방법 KR101400506B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120076606A KR101400506B1 (ko) 2012-07-13 2012-07-13 비휘발성 메모리 제어기 및 그 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120076606A KR101400506B1 (ko) 2012-07-13 2012-07-13 비휘발성 메모리 제어기 및 그 제어 방법

Publications (2)

Publication Number Publication Date
KR20140008914A true KR20140008914A (ko) 2014-01-22
KR101400506B1 KR101400506B1 (ko) 2014-05-27

Family

ID=50142556

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120076606A KR101400506B1 (ko) 2012-07-13 2012-07-13 비휘발성 메모리 제어기 및 그 제어 방법

Country Status (1)

Country Link
KR (1) KR101400506B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI563510B (en) * 2015-07-24 2016-12-21 Phison Electronics Corp Mapping table accessing method, memory control circuit unit and memory storage device
CN106406746A (zh) * 2015-07-31 2017-02-15 群联电子股份有限公司 映射表存取方法、存储器控制电路单元及存储器存储装置
KR20190016448A (ko) * 2017-08-08 2019-02-18 삼성전자주식회사 비휘발성 메모리 장치들 및 이를 제어하는 방법들
CN113835639A (zh) * 2021-09-26 2021-12-24 深圳大普微电子科技有限公司 一种i/o请求处理方法、装置、设备及可读存储介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102319189B1 (ko) 2017-06-21 2021-10-28 삼성전자주식회사 스토리지 장치, 이를 포함하는 스토리지 시스템 및 스토리지 장치의 동작 방법
KR20200088709A (ko) 2019-01-15 2020-07-23 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR20210142974A (ko) 2020-05-19 2021-11-26 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090047880A (ko) * 2007-11-08 2009-05-13 삼성전자주식회사 비휘발성 메모리의 관리 방법 및 관리 시스템

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI563510B (en) * 2015-07-24 2016-12-21 Phison Electronics Corp Mapping table accessing method, memory control circuit unit and memory storage device
US10013187B2 (en) 2015-07-24 2018-07-03 Phison Electronics Corp. Mapping table accessing method, memory control circuit unit and memory storage device
CN106406746A (zh) * 2015-07-31 2017-02-15 群联电子股份有限公司 映射表存取方法、存储器控制电路单元及存储器存储装置
KR20190016448A (ko) * 2017-08-08 2019-02-18 삼성전자주식회사 비휘발성 메모리 장치들 및 이를 제어하는 방법들
CN113835639A (zh) * 2021-09-26 2021-12-24 深圳大普微电子科技有限公司 一种i/o请求处理方法、装置、设备及可读存储介质
CN113835639B (zh) * 2021-09-26 2024-03-19 深圳大普微电子科技有限公司 一种i/o请求处理方法、装置、设备及可读存储介质

Also Published As

Publication number Publication date
KR101400506B1 (ko) 2014-05-27

Similar Documents

Publication Publication Date Title
KR101400506B1 (ko) 비휘발성 메모리 제어기 및 그 제어 방법
US11055230B2 (en) Logical to physical mapping
US11232041B2 (en) Memory addressing
TW201832086A (zh) 對混合記憶體模組進行存取元資料的方法及混合記憶體模組
US8621134B2 (en) Storage tiering with minimal use of DRAM memory for header overhead
US20110004720A1 (en) Method and apparatus for performing full range random writing on a non-volatile memory
JP2014523032A (ja) アライメントされていないデータの結合
US10108342B2 (en) Method for reducing use of DRAM in SSD and the SSD using the same
US20160170873A1 (en) Information processing device
US20190391756A1 (en) Data storage device and cache-diversion method thereof
KR102430198B1 (ko) 플래시 저장 장치의 어드레스 매핑 테이블 정리 방법
JP2009003934A (ja) データ管理システム及びデータ管理方法、並びにデータ管理方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
CN111966281B (zh) 数据储存装置与数据处理方法
US11669445B2 (en) Method for establishing hierarchical look-up tables and/or inquiring memory address according to hierarchical look-up tables
US8316210B2 (en) Dividing a logical memory space into ranges and sets for address translation
US8966159B2 (en) Flash storage device and data writing method thereof
KR20100022811A (ko) 플래시메모리 저장장치 및 그에 따른 관리 방법
CN109614349B (zh) 一种基于绑定机制的缓存管理方法
US20090055574A1 (en) NAND Flash Memory Device And Related Method Thereof
KR101270777B1 (ko) 블록 단위 입출력 디바이스에서 피램을 이용한 데이터 기록시스템 및 방법
US20110179216A1 (en) Data Storage Device and Data Access Method
KR20030095820A (ko) 메모리 억세스 제어장치 및 방법
KR20100078450A (ko) 플래시 메모리 장치 및 플래시 메모리 장치에서의 메모리 관리 방법
KR100688463B1 (ko) 물리 메모리의 데이터 기록 및 삭제 방법
JP2020149078A (ja) メモリシステム

Legal Events

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

Payment date: 20170508

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180710

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190509

Year of fee payment: 6

R401 Registration of restoration