KR20100042455A - 플래시 메모리 시스템 및 그것의 플래시 변환 계층 설계 방법 - Google Patents

플래시 메모리 시스템 및 그것의 플래시 변환 계층 설계 방법 Download PDF

Info

Publication number
KR20100042455A
KR20100042455A KR1020080101610A KR20080101610A KR20100042455A KR 20100042455 A KR20100042455 A KR 20100042455A KR 1020080101610 A KR1020080101610 A KR 1020080101610A KR 20080101610 A KR20080101610 A KR 20080101610A KR 20100042455 A KR20100042455 A KR 20100042455A
Authority
KR
South Korea
Prior art keywords
address
physical
μtree
bitmap
information
Prior art date
Application number
KR1020080101610A
Other languages
English (en)
Other versions
KR101533744B1 (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 KR1020080101610A priority Critical patent/KR101533744B1/ko
Priority to US12/588,198 priority patent/US8495280B2/en
Publication of KR20100042455A publication Critical patent/KR20100042455A/ko
Application granted granted Critical
Publication of KR101533744B1 publication Critical patent/KR101533744B1/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/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
    • 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
    • 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/7205Cleaning, compaction, garbage collection, erase control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

본 발명에 따른 플래시 변환 계층의 설계 방법은, 외부의 요청에 따라 논리 주소를 입력받고, 상기 논리 주소에 대응하는 물리 주소를 매핑하되, 상기 주소 매핑은 연속한 논리 주소들 및 상기 논리 주소들에 대응하는 물리 주소들이 하나의 쌍으로 관리된다.
FTL, 트리 키, 트리 레코드, 연속 주소

Description

플래시 메모리 시스템 및 그것의 플래시 변환 계층 설계 방법{FLASH MEMORY SYSTEM AND METHOD OF FLASH TRANSLATION LAYER DESIGN THEREOF}
본 발명은 플래시 메모리 시스템 및 그것의 플래시 변환 계층 설계 방법에 관한 것이다.
일반적으로, 플래시 메모리는 전기적으로 셀의 데이터를 일괄적으로 소거하는 기능이 있기 때문에, 컴퓨터 및 메모리 카드 등에 널리 사용되고 있다. 최근 들어서는, 휴대폰, PDA, 디지털카메라 등과 같은 휴대용 정보기기의 사용이 급증함에 따라, 하드디스크 대신 플래시 메모리가 저장 장치로서 널리 사용되고 있다. 상술한 모바일 기기들은 다양한 기능들(예를 들면, 동영상 재생, 고음질의 음악 재생 기능 등)을 제공하기 위해서 점차 대용량의 저장 장치들을 필요로 하고 있다.
도 1은 일반적인 메모리 시스템을 보여주는 블록도이다. 도 1을 참조하면, 플래시 메모리 장치(112)를 저장수단으로 사용하는 시스템(100)은 메모리 카드(110), 중앙처리장치(120) 및 램(130)을 포함한다. 상술한 구성들 각각은 데이터의 전달을 위한 시스템 버스(140)에 전기적으로 연결된다. 메모리 카드(110)는 호스트 측과 플래시 메모리 장치(112) 간의 인터페이싱 동작을 수행하는 플래시 제어 기(111)를 포함한다.
메모리 카드(110)는 대용량 데이터가 저장되는 저장 매체로써 불휘발성인 플래시 메모리(112)를 포함한다. 특히, 메모리 카드(110)는 플래시 메모리(112)와 호스트와의 인터페이싱을 위한 플래시 제어기(111)를 포함한다. 플래시 제어기(111)의 역할들 중 핵심적인 것이 플래시 변환 계층(Flash Translation Layer : 이하 FTL)이다.
플래시 메모리(112)는 다른 메모리 소자와 비교할 때, 비교적 낮은 단가로 빠른 읽기 속도를 제공할 수 있는 장점이 있다. 그러나 플래시 메모리(112)에 데이터를 기입하기 위해서는 소거 동작이 반드시 선행되어야 하며, 기입되는 데이터의 단위보다 소거되는 데이터의 단위가 크다는 특징이 있다. 이러한 특징은 플래시 메모리(112)를 메인 메모리로 사용하는데 장애로 작용한다. 뿐만 아니라 플래시 메모리(112)가 보조기억장치로 사용되는 경우, 상술한 소거 특성은 일반 하드디스크용 파일 시스템(File System)을 그대로 활용하는 것을 저해하는 요인이 된다.
따라서, 플래시 메모리(112)의 삭제 연산을 감추기 위해, 파일 시스템과 플래시 메모리 사이에 플래시 변환 계층(FTL)이 사용된다. FTL은, 플래시 메모리(112)의 기입 동작시, 파일 시스템이 생성한 논리주소(Logical address)를 삭제 연산이 수행된 플래시 메모리의 물리 주소(Physical address)로 매핑(Mapping)시켜 주는 역할을 수행한다. FTL은 빠른 주소 매핑이 이루어질 수 있도록 주소 매핑 테이블(Address Mapping Table)을 사용한다. 일반적으로, 주소 매핑 테이블은 고속의 SRAM 상에서 구성된다. 그런데, 하드디스크와 달리, 플래시 메모리(112)는 물리적 블록에 대한 덮어쓰기(Overwrite)가 되지 않는다는 약점을 갖고 있으며, 따라서 이를 극복하기 위한 효과적인 FTL 알고리즘이 필수적이다.
본 발명의 목적은 효율적인 메모리 사용을 위한 플래시 변환 계층 설계 방법을 제공하는데 있다.
본 발명의 목적은 비용 절감 및 전력 소모를 줄이면서도 성능을 향상시킬 수 있는 새로운 메모리 시스템을 구현하는데 있다.
본 발명에 따른 플래시 변환 계층의 설계 방법은: 외부의 요청에 따라 논리 주소를 입력받고, 상기 논리 주소에 대응하는 물리 주소를 매핑하되, 상기 주소 매핑은 연속한 논리 주소들 및 상기 논리 주소들에 대응하는 물리 주소들이 하나의 쌍으로 관리된다.
실시 예에 있어서, 상기 플래시 변환 계층은 μ트리를 이용하여 상기 주소 매핑을 수행한다.
실시 예에 있어서, 상기 주소 매핑의 엔트리는, 상기 연속한 논리 주소들 중에서 첫번째 논리 주소를 저장하는 트리 키와, 상기 물리 주소들 중에서 첫번째 물리 주소 및 연속한 페이지들의 개수를 저장하는 트리 레코드를 포함한다.
실시 예에 있어서, 상기 주소 매핑의 엔트리는, 두 개의 주소 매핑 엔트리가 연속될 경우에는 하나의 주소 매핑 엔트리로 병합된다.
실시 예에 있어서, 상기 플래시 변환 계층은 μ트리를 이용하여 비트맵 정보를 관리한다.
실시 예에 있어서, 상기 비트맵 정보의 엔트리는, 물리 블록 번호를 저장하는 트리 키와, 상기 물리 블록 번호에 속하는 페이지들의 유효 및 무효 정보의 저장하는 트리 레코더를 포함한다.
실시 예에 있어서, 적어도 하나의 무효 페이지를 갖는 물리 블록에 대해서만 상기 비트맵 정보가 상기 비트맵 μ트리에 저장된다.
실시 예에 있어서, 상기 플래시 변환 계층은 μ트리를 이용하여 주소 매핑 정보 및 비트맵 정보를 관리하고, 상기 비트맵 정보는 쓰기 요청시 마다 μ트리에 갱신되지 않고, 해시 테이블을 이용하여 비트맵 캐시에서 사전에 모아준다.
실시 예에 있어서, 상기 해시 테이블의 엔트리는 연속적으로 무효화된 복수의 물리 페이지들에 대한 정보를 저장하고, 상기 파일 변환 계층은 상기 비트 맵 캐시의 크기가 소정의 값 이상이 될 때 상기 비트맵 캐시에 있는 모든 상기 해시 테이블의 엔트리들을 삭제하고, 상기 비트 맵 정보를 μ트리에 갱신한다.
실시 예에 있어서, 상기 파일 변환 계층은 가비지 컬렉션 대상이 되는 블록이 결정될 때 상기 결정된 블록의 해시 테이블의 엔트리들을 삭제하고, 상기 비트 맵 정보를 μ트리에 갱신한다.
실시 예에 있어서, 상기 파일 변환 계층은, 전체 논리 주소 영역을 복수의 파티션들로 구분하고, 상기 구분된 각 파티션마다 고유의 갱신 블록을 할당하는 것을 특징으로 한다.
본 발명에 따른 메모리 시스템은: 비휘발성 메모리; 및 상기 비휘발성 메모리를 제어하는 메모리 제어기를 포함하되, 상기 메모리 제어기는, 외부의 요청에 따라 논리 주소를 입력받고 상기 논리 주소에 대응하는 물리 주소를 매핑하되, 상기 주소 매핑은 연속한 논리 주소들 및 상기 논리 주소들에 대응하는 물리 주소들이 하나의 쌍으로 관리되는 파일 변환 계층을 포함한다.
상술한 바와 같이 본 발명에 따른 플래시 변환 계층은 다양한 매핑 단위로 주소를 관리함으로써, 매핑과 관련된 메모리 사용량을 크게 줄일 수 있게 된다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 본 발명의 실시예를 첨부된 도면을 참조하여 설명한다.
본 발명에 따른 플래시 변환 계층은 연속적인 논리 주소들 및 대응하는 물리 주소들을 하나의 매핑 단위로 관리한다. 특히, 본 발명의 플래시 변환 계층은 μ트리(tree)을 이용하여 매핑 정보를 관리하도록 구현된다. 이로써, 본 발명의 플래시 변환 계층은 매핑 단위를 다양하게 함으로써 매핑 정보의 양을 크게 줄일 수 있게 된다. 그 결과로써, 본 발명의 플래시 변환 계층을 이용하는 메모리 시스템은 메모리의 사용량이 크게 줄어들며 또한 그에 따른 비용 절감을 꾀할 수 있게 된다.
플래시 변환 계층에서 관리해야 할 정보에는 크게 주소 매핑 정보 및 가비지 컬렉션 정보가 있다. 여기서 주소 매핑 정보는 호스트가 바라보는 논리 주소와 플 래시 메모리의 물리 주소를 매핑해 주는 역할을 하고, 가비지 컬렉션 정보는 무효 페이지들을 회수하여 자유 페이지로 변경해 주는 역할을 한다. 아래에서는 μ트리를 이용한 주소 매핑 방법 및 가비지 컬렉션 방법을 설명하도록 하겠다.
먼저 주소 매핑 방법을 설명하도록 하겠다. 일반적인 플래시 변환 계층에서는 대부분 테이블을 이용하여 논리 주소를 물리 주소롤 매핑하였다. 이 때문에 매핑 단위가 블록 단위 혹은 페이지 단위로 고정되었다. 그런데 전체 논리 주소 영역을 하나의 매핑 단위로 관리하는 것은 비효율적이다. 왜냐하면 작은 매핑 단위를 필요로 하는 논리 주소 영역이 있는 반면에, 큰 매핑 단위를 필요로 하는 논리 주소 영역이 있기 때문이다. 예를 들어, 영화를 다운 받거나, 응용 프로그램을 설치하는 것과 같이 큰 크기의 쓰기 요청에 의해 쓰여진 논리 주소 영역은 큰 매핑 단위를 사용하더라도 성능상의 저하가 별로 없으면섣 매핑 정보의 양을 줄일 수 있다. 반면에, 파일 시스템 메타 데이터나 인터넷 임시 파일과 같은 경우 쓰기 요청의 크기가 작기 때문에 작은 매핑 단위를 사용해야 큰 성능 저하를 막을 수 있다. 이에 본 발명에 따른 플래시 변환 계층의 주소 매핑 방법은 μ트리를 이용하여 다양한 매핑 단위로 관리된다.
도 2는 주소 매핑에서 다중 매핑을 보여주는 실시 예를 보여주는 도면이다. 도 1을 참조하면, 논리 페이지 번호(Logical Page Number; 이하, 'LPN'이라고 함) 0~3는 물리 페이지 번호(Physicak Page Number; 이하, 'PPN'이라고 함) 100~103에 연속적으로 매핑되고, LPN 4 및 LPN 5는 각각 PPN 105 및 PPN 104로 매핑되고, LPN 6~7은 PPN 106~107에 연속적으로 매핑되어 있다.
도 3은 도 2에 도시된 다중 매핑을 μ트리를 이용하여 구현된 예를 보여주는 도면이다. 도 2를 참조하면, μ트리 매핑에서 트리 키(tree key)는 연속적으로 매핑된 논리 페이지 번호들 중 첫 논리 페이지 번호이고, 각 트리 키와 쌍을 이루는 트리 레코드(tree record)는 연속적으로 매핑된 물리 페이지 번호들 중 첫 물리 페이지 번호 및 연속적으로 매핑된 페이지의 개수이다.
예를 들어, 트리 키(0)에 연결된 트리 레코드(100,4)는 LPN 0~3이 PPN 100~103에 연속적으로 매핑됨을 나타낸다. 즉, 트리 키 및 트리 레코드 쌍인 트리 엔트리(tree entry)는 연속적으로 매핑되어 있는 논리 페이지 및 물리 페이지를 나타내는 하나의 매핑 단위가 된다. 본 발명에서는 이러한 다양한 크기의 매핑 엔트리를 '익스턴트'(extent)라고 부르겠다.
도 4는 본 발명에 따른 익스턴트에 대한 실시 예를 보여주는 도면이다. 도 4를 참조하면, 익스턴트는 하나의 트리 키 및 하나의 트리 레코드로 구성된다. 트리 키 및 트리 레코드는 모두 32 비트로 설정되어 있다. 본 발명의 트리 키 및 트리 레코드가 32비트로 설정되어 있지만, 반드시 여기에 국한될 필요는 없다. 트리 키 및 트리 레코드의 크기는 낸드 플래시 메모리의 크기에 따라 가변이 가능하다.
트리 키의 가장 왼쪽의 하나의 비트는 가비지 컬럭션에 사용되는 비트맵 정보와 구분하기 위한 정보를 저장한다. 본 발명에서는 이러한 비트에 항상 '0'을 저장한다. 그리고 트리 키의 나머지 31비트들에는 연속적으로 매핑되어 있는 논리 페이지 번호들 중 첫번째 논리 페이지 번호가 저장된다.
트리 레코드의 왼쪽에서부터 25비트들은 연속적으로 매핑된 물리 페이지 번 호들 중 첫번째 물리 페이지 번호를 저장하고, 나머지 7비트들에는 연속적으로 매핑된 논리 페이지 및 물리 페이지의 개수를 저장한다. 즉, 연속된 페이지들의 개수는 7비트로 표현된다.
본 발명에서는 연속된 페이지들의 개수를 7비트로 표현하는 것은, 최근 출시되는 낸드 플래시 메모리의 경우에 한 블록이 128개의 페이지들을 포함하고 있기 때문이다. 즉, 128개의 페이지들을 표현하기 위해서는 적어도 7비트가 필요하다. 따라서, 이러한 설정은 낸드 플래시 메모리의 특성에 따라 변경될 수 있다.
상술 된 바와 같이, 본 발명의 매핑 정보인 익스턴트는 <L,P,N>의 순서쌍으로 표현된다. 여기서 L은 첫 논리 페이지 번호, P는 첫 물리 페이지 번호, N은 연속된 페이지들의 개수이다. 따라서 익스턴트 <L,P,N>은 논리 페이지 번호 L~(L+N-1)이 물리 페이지 번호 P~(P+N-1)에 연속적으로 매핑된다는 의미이다.
종래의 플래시 변환 계층은 블록 단위로 매핑하거나 혹은 페이지 단위로 매핑하였다. 블록 매핑 방식의 플래시 변환 계층은 성능이 떨어지지만 메모리 사용량이 적다. 한편, 페이지 매핑 방식의 플래시 변환 계층은 성능이 좋지만 메모리 사용량이 많다.
반면에 본 발명의 플래시 변환 계층은 연속적으로 매핑되어 있는 논리 페이지 및 물리 페이지를 하나의 매핑 단위로 이용하고 있다. 즉, 플래시 변환 계층은 다양한 크기의 매핑 단위로 매핑 동작을 수행한다. 이로써, 본 발명의 플래시 변환 계층은 적은 양의 메모리를 사용하면서 성능이 저하되지 않는다.
상술 된 바와 본 발명의 플래시 변환 계층은 μ트리를 이용하여 매핑 정보를 관리한다. 그러나 본 발명의 플래시 변환 계층이 반드시 μ트리를 이용하여 매핑 정보를 관리한다고 한정할 필요는 없다. 본 발명의 플래시 변환 계층은 연속적으로 매핑되어 있는 논리 페이지 및 물리 페이지를 하나의 매핑 단위로 사용하는 알고리즘를 이용하여 매핑 정보를 관리하면 된다.
다음으로 가비지 컬렉션 방법에 대하여 설명하도록 하겠다. 낸드 플래시 메모리에서 자유 페이지의 개수가 부족하면, 플래시 변환 계층은 가비지 컬렉션이라는 과정을 통해 무효 페이지들을 수거하여 새로운 자유 페이지로 만든다. 가장 손쉬운 가비지 컬렉션 방법 중 하나는 가장 많은 수의 무효 페이지를 갖는 블록을 수거 대상으로 선정하고 블록 안에 있는 유효 페이지들을 다른 곳으로 복사하고 그 블록을 소거하는 것이다. 이를 위해서, 각 물리 페이지에 쓰인 데이터가 유효한지 혹은 무효한지를 알고 있어야 하는데, 이를 가비지 컬렉션 정보라고 한다. 혹은 각 물리 페이지마다 유효한지 혹은 무효한지를 구분하는데 한 비트로 충분하기 때문에, 이를 비트맵 정보라고 부리기도 한다.
이러한 미트맵 정보 전체를 메모리(낸드 플래시 메모리 아님)에 저장하면, 메모리 사용량이 너무 많아진다. 이에 본 발명은 비트맵 정보를 주소 매핑 정보와 마찬가지로 μ트리를 이용하여 관리한다. 본 발명의 플래시 변환 계층은 비트맵 정보는 기본적으로 플래시 메모리에 저장되고, 자주 사용되는 일부의 비트맵 정보는 메모리에 있는 μ트리 캐시에 저장되도록 구현된다.
도 5는 본 발명에 따른 비트맵 정보를 저장하기 위한 μ트리 키 및 레코드 구조에 대한 실시 예를 보여주는 도면이다. 도 5을 참조하면, 트리 키 및 트리 레 코드는 각각 32비트로 설정된다. 트리 키는 가비지 컬렉션 정보임을 나타내는 '1'을 저자하는 1 비트, 물리 블록 번호를 저장하는 29비트, 서브 블록 번호를 저장하는 2비트를 포함한다. 본 발명에서는 한 블록 당 128개의 페이지들을 갖는 낸드 플래시 메모리에 적합하도록 구현되었다. 한 블록의 비트맵 정보를 저자하기 위해서는 총 4개의 μ트리 엔트리들이 필요하다. 따라서 본 발명에서는 한 블록이 4개의 하위 블록들로 나뉘고, 각 하위 블록마다 하나씩의 μ트리 엔드리가 할당되어 비트맵 정보가 저장된다. 이러한 하위 블록의 개수는 낸드 플래시 메모리의 블록의 크기가 변경되면 그에 따라 변경가능하다.
도 5을 다시 참조하면, 트리 키는 가장 왼쪽의 1 비트는 항상 '1'로 저장된다. 이는 비트맵 정보를 익스턴트와 구분하기 위한 것이다. 또한 트리 키의 가운데 29 비트들에는 비트맵 정보를 저장한 물리 블록 번호가 저장되고, 가장 오른쪽의 2 비트들에는 물리 블록 내의 하위 블록 번호가 저장된다. 트리 레코드의 32비트에는 각 하위 블록에 포함된 32개의 페이지들의 유효 혹은 무효 정보가 저장된다.
일반적으로 대부분의 물리 블록은 유효한 페이지만을 갖고 있다. 반면에 소수의 물리 블록만이 무효 페이지를 갖는다. 따라서 본 발명은 μ트리의 비트맵 엔트리 개수를 줄이기 위해서 모든 페이지가 유효한 하위 블록의 경우에는 비트맵 엔트리가 μ트리에 갱신되지 않도록 한다. 다른 말로, 최소한 한 개 이상의 무효 페이지를 갖는 하위 블록의 경우에만 비트맵 엔트리가 μ트리에 갱신된다. 만약, 어던 하위 블록에 대한 비트맵 정보를 얻기 위해 μ트리가 검색될 때, 대응하는 하위 블록의 비트맵 엔트리가 없을 경우에 대응하는 하위 블록의 모든 페이지는 유효하 다.
본 발명의 플래시 변환 계층은 쓰기 요청시마다 주소 매핑 정보와 비트맵 정보를 μ트리에서 갱신한다. 이러한 갱신 작업은 μ트리 캐시에서 일차적으로 이루어 진다. 그런데, 일반적으로 메모리 사용량을 줄이기 위해서 μ트리 캐시의 크기가 작게 설정된다. 이 때문에 μ트리 캐시의 오버헤드가 굉장히 클 수 있다. 여기서 트리 캐시의 오버헤드는 μ트리 쓰기 캐시가 꽉 차서 쓰기 캐시가 있는 μ트리 엔트리들을 플래시 메모리에 저장하거나 혹은 μ트리 읽기 캐시에서 원한느 μ트리 엔트리를 찾지 못하여 플래시 메모리에서도 이를 읽는 것을 말한다.
이러한 성능 저하를 해결하기 위하여, 본 발명은 추가적으로 비트맵 캐시라는 해시 테이블 구조를 도입하였다. 여기서 비트맵 캐시는 매번 쓰기 요청을 처리할 때마다 발생되는 비트맵 갱신 정보를 곧바로 μ트리에 갱신하지 않고, 사전에 모아주는 역할을 한다. 이로써, μ트리 캐시의 부담이 줄어든다.
도 6은 본 발명의 비트맵 캐시의 실시 예를 보여주는 도면이다. 도 6을 참조하면, 비트맵 캐시는 해시 테이블 및 버킷들을 포함한다. 각각의 해시 테이블 엔트리는 연속적으로 무효화된 복수의 물리 페이지들에 대한 정보를 저장하고 있다. 이를 무효 익스턴트(invalid extent)라고 부르겠다. 무효 익스턴트의 왼쪽 25 비트에는 연속적으로 무효화된 물리 페이지 번호들 중 첫번째 물리 페이지 번호가 저장되고, 나머지 7비트에는 연속적으로 무효화된 물리 페이지의 개수가 저장된다. 본 발명의 무효 익스턴트에는 물리적으로 연속된 무효 페이지의 개수가 저장된다.
여기서 해시 키는 무효 익스턴트의 물리 페이지 번호를 해시 테이블의 크기 로 나눈 나머지가 사용된다. 비트맵 캐시의 크기가 사전에 결정된 메모리 한계에 다다르면, 비트맵 캐시에 있는 모든 무효 익스턴트가 삭제되고, 동시에 그곳에 저장된 비트맵 갱신 정보가 모두 μ트리에 갱신된다.
만약 가비지 컬렉션의 수거 대상 블록이 결정된 경우에는, 해당 블록 번호에 대응하는 해시 버킷 체인에 있는 무효 익스턴트만 삭제되고, 그곳에 저장된 비트맵 갱신 정보는 μ트리에 갱신된다.
본 발명의 낸드 플래시 메모리에 있는 물리 블록은 크게 데이터 블록, 자유 블록, 및 갱신 블록으로 구분된다. 데이터 블록은 블록의 모든 페이지가 한번씩 쓰여진 것으로 자유 페이지를 전혀 갖고 있지 않다. 이러한 데이터 블록은 유효 페이지 및 무효 페이지로 구성된다. 자유 블록은 자유 페이지들로만 구성된 블록이다. 갱신 블록은 쓰기 요청시 전달되는 새로운 데이터를 저장하는 곳으로, 유효 페이지, 무효 페이지, 및 자유 페이지를 포함하고 있다.
일반적으로 페이지 매핑 방식의 플래시 변환 계층은 시스템 전체에 하나의 갱신 블록만을 두었다. 하지만 이 경우에는 쓰기 요청이 빈번한 논리 주소 영역의 데이터와 쓰기 요청이 거의 없는 논리 주소 영역의 데이터가 한 물리 블록 안에서 섞인다. 따라서 시스템 전체적으로 성능 저하가 발생된다.
반면에 본 발명은 이러한 문제를 해결하기 위하여 전체 논리 주소 영역을 복수의 파티션으로 구분하고, 각 파티션마다 고유의 갱신 블록을 두었다. 여기서 갱신 블록은 대응하는 각 파티션의 쓰기 요청만을 처리한다. 이렇게 각 피티션에 귀속되는 갱신 블록은 실제로 해당 파디션으로 쓰기 요청이 왔을 때만 할당되고, 또 한 쓰기 요청이 오지 않는 파티션에 대해서는 할당되지 않는다. 따라서, 자유 블록의 낭비가 줄어든다.
아래에서는 본 발명에 따른 플래시 변환 계층에서의 읽기 요청 처리 과장에 대하여 설명하도록 하겠다.
도 7은 본 발명의 플래시 변환 계층에 따른 읽기 요청 처리 과정을 보여주는 흐름도이다. 도 7을 참조하면, 읽기 요청 처리는 아래와 같이 진행된다. 호스트로부터 플래시 변환 계층으로 읽기 요청한다. 이때 전달된 읽기 요청은 r=<L,N> 이다. 여기서, L는 읽기를 시작하는 논리 페이지 번호이고, N은 읽어야 할 논리 페이지의 개수이다(S110). 읽기 요청이 올 경우에, 본 발명에서는 해당 논리 페이지에 위치하는 물리 페이지의 위치를 알아내기 위하여 μ트리에서 익스턴트 e=<l,p,n>을 찾게 된다(S120). 여기서 익스턴트 e는 아래와 같은 조건을 만족해야 한다.
(l=L) ∨ (l<L ∧ L<(l+n))
이러한 조건을 만족하는 익스턴트 e을 통해 읽기 요청에 대응하는 데이터가 플래시 메모리로부터 읽혀진다(S130). 만약 이렇게 찾은 익스턴트 e의 범위가 읽기 요청의 범위를 모두 포함하지 못할 경우가 있다. 이를 위해, (l+n) < (L+N)인지가 판별된다(S140). 만약 (l+n) < (L+N)이 아니라면, 읽기 요청이 완료된다. 반면에, (l+n) < (L+N)이면, 나머지 부분을 읽기 위해 다음 익스턴트를 찾아 S120 단계로 진입한다.
아래에서는 본 발명에 따른 플래시 변환 계층에서의 쓰기 요청 처리 과정에 대하여 설명하도록 하겠다.
플래시 변환 계층으로 전달되는 쓰기 요청은 w=<L,N,D>와 같이 3개의 파라미터를 갖는다. 여기서 L은 논리 페이지 번호이고, N은 페이지의 개수이고, D는 쓰여질 데이터이다. 쓰기 요청은 읽기 요청보다 조금 더 복잡한 과정을 거쳐 처리되는데, 이는 쓰기 요청시 μ트리에 있는 엔트리들의 변경이 필요하기 때문이다.
도 8은 본 발명에 따른 쓰기 요청시 전체적인 플래시 변환 계층의 구조를 보여주는 도면이다. 도 8을 참조하면, 본 발명에서 쓰기 요청은 아래와 같이 처리된다. 쓰기 요청이 논리 주소에 해당하는 파티션의 갱신 블록으로 데이터가 쓰여진다(S1). 그 다음으로 익스턴트가 변경, 삭제, 및 삽입됨으로써 주소 매핑 정보가 최신으로 갱신된다(S2). 그 다음으로 무효 익스턴트를 비트맵 캐시에 삽입함으로써 비트맵 정보가 갱신된다(S3). 비트맵 캐시에 있는 비트맵 갱신 정보가 꽉 차거나 혹은 가비지 컬렉션 대상 블록으로 선정되면, 비트맵 캐시에 있는 비트맵 갱신 정보가 μ트리에 반영된다(S4). μ트리 쓰기 캐시가 꽉 찰 경우에는 쓰기 캐시에 있는 μ트리 엔트리들이 낸드 플래시 메모리에 저장된다(S5). μ트리 읽기 캐시에서 원하는 μ트리 엔트리를 찾지 못할 경우에는 낸드 플래시로부터 이를 읽는다(S6).
구체적으로 본 발명의 플래시 변환 계층에서 쓰기 요청 과정은 아래의 4가지 과정에 따라 진행된다.
(1) 데이터 쓰기
쓰기 요청 w=<L,N,D>이 전달되면, 본 발명에서는 가장 먼저 논리 주소 L이 속하는 파티션에 할당된 갱신 블록으로 요청된 데이터 D를 쓴다. 예를 들어, 도 8에 도시된 바와 같이 제 1 파티션의 갱신 블록에 데이터 D가 쓰여진다.
만약, 갱신 블록에 남아있는 자유 페이지의 개수가 적어서 요청된 데이터를 모두 쓸 수 없으면, 새로운 자유 블록을 해당 파티션의 갱신 블록으로 할당하고, 나머지 데이터를 계속해서 써나간다. 이 과정은 요청된 데이터 D가 모두 쓰여질 때까지 반복됨으로, 경우에 따라서는 많은 수의 자유 블록이 소모될 수 있다. 이러한 과정에서 자유 블록이 부족해지면, 앞에서 언급된 바와 같이 가비지 컬렉션이 일어난다.
(2) 익스턴트의 무효화
새로운 데이터가 쓰여지면, 이전 데이터를 갖고 있던 물리 페이지들은 무효화된다. 이에 따라 이들을 매핑하고 있던 익스턴트도 무효화된다. 이렇게 무효화된 익스턴트는 μ트리에서 삭제되거나 변경된다. 구체적으로 새로운 쓰기 요청 w=<L,N,D>와 기존의 존재하던 익스턴트 e=<l,p,n>의 관계에 따라 무효과 과정은 아래의 4가지 경우가 있을 수 있다.
첫째로, 도 9와 같이 익스턴트 e의 범위가 쓰기 요청 w의 범위 안에 포함되는 경우이다. 이 경우는 아래의 수식을 만족한다.
(L≤l ∧ (L+N)<(l+n))
이때 무효화 과정은 익스턴트 e를 μ트리에서 완전히 삭제한다.
둘째로, 도 10과 같이 익스턴트 e의 범위 안에 쓰기 요청이 포함된 경우이다. 이 경우 아래의 수식을 만족한다.
(l<L ∧ (L+N)<(l+n))
이때, 무효화 과정은 익스턴트 e의 가운데 부분만 무효화된다. 따라서, 익스 턴트 e는 2개의 익스턴트 e1=<l,p,L-1> 및 e2=<(L+N),(p+L+N-1),(l+n-L-N)>으로 나뉘게 된다.
세째로, 도 11과 같이 익스턴트의 오른쪽 부분이 쓰기 요청 w의 범위가 겹친 경우이다. 이 경우는 아래의 수식을 만족한다.
(l<L ∧ (l+n)≤(L+N))
이때 무효화 과정은 익스턴트 e의 오른쪽 부분만 무효화된다. 따라서, 익스턴트 e는 새로운 익스턴트 el=<l,p,(L-1)>로 변경된다.
네째로, 도 12와 같이 익스턴트 e의 왼쪽 부분이 쓰기 요청 w의 범위와 겹친 경우이다. 이 경우는 아래의 수식을 만족한다.
(L≤l ∧ (L+N)<(l+n))
이때 무효화 과정은 익스턴트 e의 왼쪽 부분만 무효화된다. 따라서, 익스턴트 e는 새로운 익스턴트 er=<(L+N),(p+L+N-1),(l+n-L-N)>으로 변경된다.
도 13 및 도 14는 본 발명에 따른 익스턴트 무효화 과정에 대한 실시 예를 보여주는 도면이다.
도 13을 참조하면, 익스턴트 A=<0,100,4>가 쓰기 요청 w1=<1,2,D1>에 의해 2개의 익스턴트로 나뉘어진다.
도 14을 참조하면, 익스턴트 A=<4,105,1>, 익스턴트 B=<5,104,1>, 및 익스턴트(6,106,2> 이 쓰기 요청 w2=<4,3,D2>에 의해 왼쪽 부분이 무효화된다.
(3) 새로운 익스턴트 갱신
새로운 데이터가 쓰여지면, 그 데이터를 매핑해줄 새로운 익스턴트가 필요하 다. 따라서 기존의 익스턴트를 무효화 다음에 최신의 매핑 정보를 가진 익스턴트가 갱신된다. 이때 갱신되는 익스턴트의 수는 쓰기 요청을 처리하기 위해 사용된 갱신 블록의 개수와 동일하다.
만약 새롭게 갱신하려는 익스턴트와 기존에 μ트리에 있던 익스턴트가 서로 논리적, 물리적으로 연속된다면, 새로운 익스턴트를 갱신하는 대신에 기존의 익스턴트가 연장된다. 이를 익스턴트의 병합이라고 한다. 구체적으로 새로운 μ트리에 갱신하려는 익스턴트 e=<L,P,N>과 기존의 μ트리에 있던 익스턴트 ep=<l,p,n> 사이에 ((l+n)=L ∧ (p+n)=P)인 관계가 성립한다면, 새로운 익스턴트 e을 갱신하는 대신에 기존의 익스턴트 ep의 길이를 n에서 (n+N)으로 변경한다. 그 결과로써, 도 15에 도시된 바와 같이 병합된 익스턴트 ec=<l,p,n+N>이 된다. 이렇게 함으로써, 본 발명에서는 μ트리에 있는 익스턴트의 개수를 줄인다.
(4) 비트맵 정보 갱신
익스턴트의 변경, 삭제, 및 갱신 과정이 끝나면, 그 다음으로 비트맵 정보의 갱신 동작이 수행된다. 이를 위해, 무효 익스턴트를 비트맵 캐시에 갱신하게 된다. 변경 및 삭제되는 각각의 익스턴트 마다 하나씩의 무효화 익스턴트가 생성된다. 또한, 무효 익스턴트의 경우에도 두 익스턴트들이 물리적으로 연속될 경우에는 두 익스턴들은 병합된다.
도 16은 본 발명에 따른 메모리 시스템(10)을 보여주는 도면이다. 도 16을 참조하면, 메모리 시스템(10)는 낸드 플래시 메모리(12) 및 낸드 플래시 메모리(12)를 제어하는 메모리 제어기(14)를 포함한다. 본 발명의 메모리 제어기(14)는 μ트리를 이용하여 주소 정보가 매핑되거나 혹은 가비지 컬렉션 동작이 수행된다. 이러한 메모리 시스템(10)은 낸드 플래시 메모리(12)에 데이터를 저장하는 다다양한 저장 장치로써 사용될 수 있다.
도 17은 본 발명에 따른 메모리 카드(20)를 보여주는 도면이다. 도 17을 참조하면, 메모리 카드(20)는 낸드 플래시 메모리(22) 및 낸드 플래시 메모리(22)를 제어하는 메모리 제어기(24)를 포함한다. 본 발명의 메모리 제어기(22)는 μ트리를 이용하여 주소 정보가 매핑되거나 혹은 가비지 컬렉션 동작이 수행된다. 이러한 메모리 카드(20)는 멀티미디어 카드(Multimedia Card:MMC) 혹은 SD 카드 등에 적용가능하다.
도 18은 본 발명에 따른 SSD 시스템(200)을 보여주는 도면이다. 도 18를 참조하면, SSD 시스템(200)은 SSD 제어기(210)와 플래시 메모리들(220~223)을 포함한다. SSD 제어기(210)는 μ트리를 이용하여 주소 정보가 매핑되거나 혹은 가비지 컬렉션 동작이 수행된다.
본 발명에 따른 메모리 시스템은 SSD(Solid State Drive)에도 적용될 수 있다. 최근 하드디스크 드라이브(HDD)를 교체해 나갈 것으로 예상되는 SSD 제품이 차세대 메모리 시장에서 각광을 받고 있다. SSD는 일반적인 하드 디스크 드라이브에서 사용되는 회전 접시 대신에 데이터를 저장하는데 플래시 메모리와 같은 메모리 칩들을 사용한 데이터 저장 장치이다. SSD는 기계적으로 움직이는 하드디스크 드라이브에 비해 속도가 빠르고 외부 충격에 강하며, 소비전력도 낮다는 장점을 가진다.
다시 도 18을 참조하면, 중앙처리장치(211)는 호스트로부터 명령어를 전달받아 호스트로부터의 데이터를 플래시 메모리에 저장할지 혹은 플래시 메모리의 저장 데이터를 독출하여 호스트로 전송할지의 여부를 결정하고 제어한다. ATA 인터페이스(212)는 상술한 중앙처리장치(211)의 제어에 따라 호스트 측과 데이터를 교환한다. ATA 인터페이스(212)는 호스트 측으로부터 명령어 및 주소를 패치하여 CPU 버스를 통해서 중앙처리장치(211)로 전달한다. ATA 인터페이스(212)를 통해 호스트로부터 입력되는 데이터나 호스트로 전송되어야 할 데이터는 중앙처리장치(211)의 제어에 따라 CPU 버스를 경유하지 않고 SRAM 캐시(213)를 통해 전달된다.
SRAM 캐시(213)는 호스트와 플래시 메모리들(220~223) 간의 이동 데이터를 일시 저장한다. 또한 SRAM 캐시(213)는 중앙처리장치(211)에 의해서 운용될 프로그램을 저장하는 데에도 사용된다. SRAM 캐시(213)는 일종의 버퍼 메모리로 간주할 수 있으며, 반드시 SRAM으로 구성할 필요는 없다. 플래시 인터페이스(214)는 저장 장치로 사용되는 불 휘발성 메모리들과 데이터를 주고받는다. 플래시 인터페이스(214)는 낸드 플래시 메모리, One-NAND 플래시 메모리, 혹은 멀티-레벨 플래시 메모리를 지원하도록 구성될 수 있다.
본 발명에 따른 메모리 시스템은 이동형 저장 장치로서 사용될 수 있다. 따라서, MP3, 디지털 카메라, PDA, e-Book의 저장 장치로서 사용될 수 있다. 또한, 디지털 TV나 컴퓨터 등의 저장 장치로서 사용될 수 있다.
본 발명에 따른 메모리 시스템 또는 저장 장치는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 메모리 시스템 또는 저장 장 치는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장될 수 있다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지로 변형할 수 있다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위 뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
도 1은 일반적인 메모리 시스템을 보여주는 블록도이다.
도 2는 주소 매핑에서 다중 매핑을 보여주는 실시 예를 보여주는 도면이다.
도 3은 도 2에 도시된 다중 매핑을 μ트리를 이용하여 구현된 예를 보여주는 도면이다.
도 4는 본 발명에 따른 익스턴트에 대한 실시 예를 보여주는 도면이다.
도 5는 본 발명에 따른 비트맵 정보를 저장하기 위한 μ트리 키 및 레코드 구조에 대한 실시예를 보여주는 도면이다.
도 6은 본 발명의 비트맵 캐시의 실시 예를 보여주는 도면이다.
도 7은 본 발명의 플래시 변환 계층에 따른 읽기 요청 처리 과정을 보여주는 흐름도이다.
도 8은 본 발명에 따른 쓰기 요청시 전체적인 플래시 변환 계층의 구조를 보여주는 도면이다.
도 9는 익스턴트의 범위가 쓰기 요청 w의 범위 안에 포함되는 경우를 보여주는 도면이다.
도 10은 익스턴트의 범위 안에 쓰기 요청이 포함된 경우를 보여주는 도면이다.
도 11은 익스턴트의 오른쪽 부분이 쓰기 요청 w의 범위가 겹친 경우를 보여주는 도면이다.
도 12은 익스턴트의 왼쪽 부분이 쓰기 요청 w의 범위와 겹친 경우를 보여주 는 도면이다.
도 13 및 도 14는 본 발명에 따른 익스턴트 무효화 과정에 대한 실시 예를 보여주는 도면들이다.
도 15은 익스턴트의 병합과정을 보여주는 도면이다.
도 16은 본 발명에 따른 메모리 시스템을 보여주는 도면이다.
도 17은 본 발명에 따른 메모리 카드를 보여주는 도면이다.
도 18은 본 발명에 따른 SSD 시스템을 보여주는 도면이다.
*도면의 주요부분에 대한 부호의 설명*
메모리 시스템:100,10 SSD 시스템: 200
메모리 카드: 20

Claims (12)

  1. 플래시 변환 계층의 설계 방법에 있어서:
    외부의 요청에 따라 논리 주소를 입력받고,
    상기 논리 주소에 대응하는 물리 주소를 매핑하되,
    상기 주소 매핑은 연속한 논리 주소들 및 상기 논리 주소들에 대응하는 물리 주소들이 하나의 쌍으로 관리되는 방법.
  2. 제 1 항에 있어서,
    상기 플래시 변환 계층은 μ트리를 이용하여 상기 주소 매핑을 수행하는 방법.
  3. 제 2 항에 있어서,
    상기 주소 매핑의 엔트리는,
    상기 연속한 논리 주소들 중에서 첫번째 논리 주소를 저장하는 트리 키와,
    상기 물리 주소들 중에서 첫번째 물리 주소 및 연속한 페이지들의 개수를 저장하는 트리 레코드를 포함하는 방법.
  4. 제 3 항에 있어서,
    상기 주소 매핑의 엔트리는, 두 개의 주소 매핑 엔트리가 연속될 경우에는 하나의 주소 매핑 엔트리로 병합되는 방법.
  5. 제 2 항에 있어서,
    상기 플래시 변환 계층은 μ트리를 이용하여 비트맵 정보를 관리하는 방법.
  6. 제 5 항에 있어서,
    상기 비트맵 정보의 엔트리는,
    물리 블록 번호를 저장하는 트리 키와,
    상기 물리 블록 번호에 속하는 페이지들의 유효 및 무효 정보의 저장하는 트리 레코더를 포함하는 방법.
  7. 제 5 항에 있어서,
    적어도 하나의 무효 페이지를 갖는 물리 블록에 대해서만 상기 비트맵 정보가 상기 비트맵 μ트리에 저장되는 방법.
  8. 제 1 항에 있어서,
    상기 플래시 변환 계층은 μ트리를 이용하여 주소 매핑 정보 및 비트맵 정보를 관리하고, 상기 비트맵 정보는 쓰기 요청시 마다 μ트리에 갱신되지 않고, 해시 테이블을 이용하여 비트맵 캐시에서 사전에 모아주는 방법
  9. 제 8 항에 있어서,
    상기 해시 테이블의 엔트리는 연속적으로 무효화된 복수의 물리 페이지들에 대한 정보를 저장하고,
    상기 파일 변환 계층은 상기 비트 맵 캐시의 크기가 소정의 값 이상이 될 때 상기 비트맵 캐시에 있는 모든 상기 해시 테이블의 엔트리들을 삭제하고, 상기 비트 맵 정보를 μ트리에 갱신하는 방법.
  10. 제 9 항에 있어서,
    상기 파일 변환 계층은 가비지 컬렉션 대상이 되는 블록이 결정될 때 상기 결정된 블록의 해시 테이블의 엔트리들을 삭제하고, 상기 비트 맵 정보를 μ트리에 갱신하는 방법.
  11. 제 1 항에 있어서,
    상기 파일 변환 계층은, 전체 논리 주소 영역을 복수의 파티션들로 구분하고, 상기 구분된 각 파티션마다 고유의 갱신 블록을 할당하는 것을 특징으로 하는 방법.
  12. 비휘발성 메모리; 및
    상기 비휘발성 메모리를 제어하는 메모리 제어기를 포함하되,
    상기 메모리 제어기는,
    외부의 요청에 따라 논리 주소를 입력받고 상기 논리 주소에 대응하는 물리 주소를 매핑하되, 상기 주소 매핑은 연속한 논리 주소들 및 상기 논리 주소들에 대응하는 물리 주소들이 하나의 쌍으로 관리되는 파일 변환 계층을 포함하는 메모리 시스템.
KR1020080101610A 2008-10-16 2008-10-16 플래시 메모리 시스템 및 그것의 플래시 변환 계층 설계 방법 KR101533744B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080101610A KR101533744B1 (ko) 2008-10-16 2008-10-16 플래시 메모리 시스템 및 그것의 플래시 변환 계층 설계 방법
US12/588,198 US8495280B2 (en) 2008-10-16 2009-10-07 Flash memory system and designing method of flash translation layer thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080101610A KR101533744B1 (ko) 2008-10-16 2008-10-16 플래시 메모리 시스템 및 그것의 플래시 변환 계층 설계 방법

Publications (2)

Publication Number Publication Date
KR20100042455A true KR20100042455A (ko) 2010-04-26
KR101533744B1 KR101533744B1 (ko) 2015-07-10

Family

ID=42109523

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080101610A KR101533744B1 (ko) 2008-10-16 2008-10-16 플래시 메모리 시스템 및 그것의 플래시 변환 계층 설계 방법

Country Status (2)

Country Link
US (1) US8495280B2 (ko)
KR (1) KR101533744B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101114398B1 (ko) * 2010-01-25 2012-02-22 인하대학교 산학협력단 삭제 그룹 플래시 변환 계층을 이용한 퓨전 플래시 메모리의 주소 변환 방법 및 다중 블록 삭제 방법
KR101278591B1 (ko) * 2011-05-30 2013-06-25 성균관대학교산학협력단 플래시 메모리 시스템 및 그 동작 방법
KR20170048738A (ko) * 2015-10-27 2017-05-10 삼성전자주식회사 전자 장치 및 이의 메모리 관리 방법
KR20200025822A (ko) * 2018-08-31 2020-03-10 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
US11126552B2 (en) 2019-04-23 2021-09-21 SK Hynix Inc. Memory system, memory controller and method for operating memory controller

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8375162B2 (en) * 2009-06-03 2013-02-12 Ocz Technology Group Inc. Method and apparatus for reducing write cycles in NAND-based flash memory devices
US8412881B2 (en) * 2009-12-22 2013-04-02 Intel Corporation Modified B+ tree to store NAND memory indirection maps
GB2496798B (en) * 2010-07-27 2016-10-12 Ibm Logical to physical address mapping in storage systems comprising solid state memory devices
US9069657B2 (en) * 2011-12-12 2015-06-30 Apple Inc. LBA bitmap usage
KR102050732B1 (ko) * 2012-09-28 2019-12-02 삼성전자 주식회사 컴퓨팅 시스템 및 컴퓨팅 시스템의 데이터 관리 방법
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US8898410B1 (en) * 2013-02-20 2014-11-25 Google Inc. Efficient garbage collection in a data storage device
CN103324578A (zh) * 2013-06-20 2013-09-25 深圳市瑞耐斯技术有限公司 一种nand闪存设备及其随机写入方法
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
US10552085B1 (en) 2014-09-09 2020-02-04 Radian Memory Systems, Inc. Techniques for directed data migration
US10049042B2 (en) 2014-09-22 2018-08-14 Hitachi, Ltd. Storage device, semiconductor memory device, and method for controlling same
KR20170015760A (ko) * 2015-07-31 2017-02-09 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10055162B2 (en) * 2015-10-30 2018-08-21 Netapp, Inc. Using a tree-based data structure to map logical addresses to physical addresses on a storage device
US10095413B2 (en) * 2016-01-28 2018-10-09 Toshiba Memory Corporation Memory system with address translation between a logical address and a physical address
US10810132B1 (en) * 2016-03-30 2020-10-20 EMC IP Holding Company, LLC Object based extent mapping for flash memory
WO2017196315A1 (en) * 2016-05-11 2017-11-16 Hitachi, Ltd. Data storage system and process for reducing read and write amplifications
CN108268380A (zh) * 2016-12-30 2018-07-10 北京兆易创新科技股份有限公司 一种读写数据的方法和装置
KR20180083023A (ko) 2017-01-11 2018-07-20 에스케이하이닉스 주식회사 메모리 시스템의 어드레스 맵핑 방법
KR20180087925A (ko) 2017-01-25 2018-08-03 삼성전자주식회사 논리 어드레스와 물리 어드레스 사이에서 해싱 기반 변환을 수행하는 스토리지 장치
CN107329904A (zh) * 2017-06-30 2017-11-07 湖南国科微电子股份有限公司 数据读取方法及装置
US10606760B2 (en) 2017-08-23 2020-03-31 Samsung Electronics Co., Ltd. Nonvolatile memory devices and methods of controlling the same
US10725930B2 (en) * 2018-08-27 2020-07-28 Micron Technology, Inc. Logical to physical memory address mapping tree
US11119940B2 (en) * 2019-08-26 2021-09-14 Micron Technology, Inc. Sequential-write-based partitions in a logical-to-physical table cache
US11366756B2 (en) * 2020-04-13 2022-06-21 EMC IP Holding Company LLC Local cached data coherency in host devices using remote direct memory access
US11544107B2 (en) * 2020-04-17 2023-01-03 Western Digital Technologies, Inc. Storage system and method for multiprotocol handling
US11586385B1 (en) 2020-05-06 2023-02-21 Radian Memory Systems, Inc. Techniques for managing writes in nonvolatile memory
KR20220075945A (ko) 2020-11-30 2022-06-08 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20220080273A (ko) 2020-12-07 2022-06-14 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
KR20220111566A (ko) 2021-02-02 2022-08-09 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이를 포함하는 저장 장치
US11960757B2 (en) 2021-10-04 2024-04-16 Samsung Electronics Co., Ltd. Flash translation layer with rewind
CN116010298B (zh) * 2023-03-24 2023-09-22 温州市特种设备检测科学研究院(温州市特种设备应急处置中心) Nand型闪存地址映射的方法、装置、电子设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2760109B1 (fr) * 1997-02-25 1999-05-28 Sextant Avionique Procede et dispositif pour l'execution par un processeur unique de plusieurs fonctions de niveaux de criticite differents, avec une grande securite de fonctionnement
US6282605B1 (en) * 1999-04-26 2001-08-28 Moore Computer Consultants, Inc. File system for non-volatile computer memory
US7457909B2 (en) * 2005-01-14 2008-11-25 Angelo Di Sena Controlling operation of flash memories
US7509474B2 (en) * 2005-06-08 2009-03-24 Micron Technology, Inc. Robust index storage for non-volatile memory
TW200823923A (en) * 2006-11-23 2008-06-01 Genesys Logic Inc Caching method for address translation layer of flash memory

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101114398B1 (ko) * 2010-01-25 2012-02-22 인하대학교 산학협력단 삭제 그룹 플래시 변환 계층을 이용한 퓨전 플래시 메모리의 주소 변환 방법 및 다중 블록 삭제 방법
KR101278591B1 (ko) * 2011-05-30 2013-06-25 성균관대학교산학협력단 플래시 메모리 시스템 및 그 동작 방법
KR20170048738A (ko) * 2015-10-27 2017-05-10 삼성전자주식회사 전자 장치 및 이의 메모리 관리 방법
KR20200025822A (ko) * 2018-08-31 2020-03-10 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
US11126552B2 (en) 2019-04-23 2021-09-21 SK Hynix Inc. Memory system, memory controller and method for operating memory controller

Also Published As

Publication number Publication date
KR101533744B1 (ko) 2015-07-10
US20100100667A1 (en) 2010-04-22
US8495280B2 (en) 2013-07-23

Similar Documents

Publication Publication Date Title
KR101533744B1 (ko) 플래시 메모리 시스템 및 그것의 플래시 변환 계층 설계 방법
US11893238B2 (en) Method of controlling nonvolatile semiconductor memory
US8738882B2 (en) Pre-organization of data
US8364931B2 (en) Memory system and mapping methods using a random write page mapping table
KR101522402B1 (ko) 반도체 디스크 장치 및 그것의 데이터 관리 방법
US20170139825A1 (en) Method of improving garbage collection efficiency of flash-oriented file systems using a journaling approach
Lee et al. HFTL: hybrid flash translation layer based on hot data identification for flash memory
KR20100021868A (ko) 플래시 메모리 장치를 위한 버퍼 캐쉬 관리 방법
Seo et al. Recently-evicted-first buffer replacement policy for flash storage devices
KR20100079654A (ko) 실시간 시스템을 위한 로그 블록 연관성 분산 방법 및 이를수행하는 플래시 메모리 장치
JP2008192154A (ja) メモリマッピング方法およびメモリマッピングシステム
KR20070096429A (ko) 빠른 마운팅을 지원하는 낸드 플래시 메모리에 적용되는파일시스템
Park et al. A pattern adaptive NAND flash memory storage structure
KR102430198B1 (ko) 플래시 저장 장치의 어드레스 매핑 테이블 정리 방법
US20100318726A1 (en) Memory system and memory system managing method
US20170139616A1 (en) Method of decreasing write amplification factor and over-provisioning of nand flash by means of diff-on-write approach
Yim A novel memory hierarchy for flash memory based storage systems
KR20090107098A (ko) 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
Lee et al. An efficient buffer management scheme for implementing a B-tree on NAND flash memory
KR101191650B1 (ko) 낸드 플래시 메모리에서 데이터의 주소를 사상시키는 장치 및 방법
JP6482322B2 (ja) メモリ装置及びプログラム
Ryu A flash translation layer for NAND flash-based multimedia storage devices
JP6320322B2 (ja) キャッシュメモリ装置及びプログラム
JP6378111B2 (ja) 情報処理装置及びプログラム
Kumar et al. A survey on flash translation layer for NAND flash memory

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
FPAY Annual fee payment

Payment date: 20190530

Year of fee payment: 5