KR100781517B1 - 비휘발성 메모리의 맵핑 정보 관리 장치 및 방법 - Google Patents
비휘발성 메모리의 맵핑 정보 관리 장치 및 방법 Download PDFInfo
- Publication number
- KR100781517B1 KR100781517B1 KR1020060015198A KR20060015198A KR100781517B1 KR 100781517 B1 KR100781517 B1 KR 100781517B1 KR 1020060015198 A KR1020060015198 A KR 1020060015198A KR 20060015198 A KR20060015198 A KR 20060015198A KR 100781517 B1 KR100781517 B1 KR 100781517B1
- Authority
- KR
- South Korea
- Prior art keywords
- logical
- physical
- unit
- mapping information
- sector
- Prior art date
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B41—PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
- B41F—PRINTING MACHINES OR PRESSES
- B41F15/00—Screen printers
- B41F15/14—Details
- B41F15/40—Inking units
- B41F15/42—Inking units comprising squeegees or doctors
- B41F15/423—Driving means for reciprocating squeegees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B41—PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
- B41F—PRINTING MACHINES OR PRESSES
- B41F15/00—Screen printers
- B41F15/14—Details
- B41F15/44—Squeegees or doctors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mechanical Engineering (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
본 발명은 비휘발성 메모리의 맵핑 정보 관리 장치 및 방법에 관한 것으로서, 더욱 상세하게는 비휘발성 메모리의 논리적 섹터에 대한 접근 요청에 걸리는 시간을 최소화시킬 수 있는 비휘발성 메모리의 맵핑 정보 관리 장치 및 방법에 관한 것이다.
본 발명의 실시예에 따른 비휘발성 메모리의 맵핑 정보 관리 장치는, 소정의 논리적 유니트에 맵핑된 물리적 유니트 내의 각 물리적 섹터에 맵핑된 논리적 섹터를 추출하는 추출부, 상기 추출된 논리적 섹터를 통해 상기 논리적 유니트에 속한 논리적 섹터에 대한 맵핑 정보를 생성하는 맵핑 정보 생성부, 및 상기 생성된 맵핑 정보를 저장하는 맵핑 정보 저장부를 포함한다.
비휘발성 메모리, 논리 유니트, 물리 유니트
Description
도 1은 일반적인 논리적 유니트와 물리적 유니트 간의 맵핑 관계가 도시된 도면.
도 2는 종래의 기술에 따른 물리적 유니트 내 물리적 섹터와 논리적 섹터의 맵핑 관계가 도시된 도면.
도 3은 종래의 기술에 따른 맵핑 정보가 도시된 도면.
도 4는 도 3에 의한 도 2의 맵핑 정보가 도시된 도면.
도 5는 종래의 기술에 따른 비휘발성 메모리의 읽기 요청을 처리하는 방법이 도시된 도면.
도 6은 종래의 기술에 따른 비휘발성 메모리의 쓰기 요청을 처리하는 방법이 도시된 도면.
도 7은 본 발명의 실시예에 따른 대블록 플래시 메모리의 구조가 도시된 도면.
도 8은 본 발명의 실시예에 따른 비휘발성 메모리의 맵핑 정보 관리 장치가 도시된 도면.
도 9는 본 발명의 실시예에 따른 논리 유니트에 맵핑된 물리 유니트가 도시 된 도면.
도 10은 도 9의 물리 유니트 3을 통해 생성된 맵핑 정보가 도시된 도면.
도 11은 도 10의 맵핑 정보가 물리 유니트 17을 통해 갱신된 맵핑 정보가 도시된 도면.
도 12는 도 11의 맵핑 정보가 물리 유니트 10을 통해 갱신된 맵핑 정보가 도시된 도면.
도 13은 본 발명의 실시예에 따른 맵핑 정보 생성 방법이 도시된 도면.
도 14는 본 발명의 실시예에 따른 읽기 요청 처리 방법이 도시된 도면.
도 15는 본 발명의 실시예에 따른 읽기 요청시 갱신되는 맵핑 정보가 도시된 도면.
도 16은 본 발명의 실시예에 따른 쓰기 요청 처리 방법이 도시된 도면.
도 17은 본 발명의 실시예에 따른 쓰기 요청시 갱신되는 맵핑 정보가 도시된 도면.
<도면의 주요 부분에 관한 부호의 설명>
110: 비휘발성 메모리 120: 추출부
130: 맵핑 정보 생성부 140: 맵핑 정보 저장부
150: 디바이스 드라이버
본 발명은 비휘발성 메모리의 맵핑 정보 관리 장치 및 방법에 관한 것으로서, 더욱 상세하게는 비휘발성 메모리의 논리적 섹터에 접근 요청에 걸리는 시간을 최소화시킬 수 있는 비휘발성 메모리의 맵핑 정보 관리 장치 및 방법에 관한 것이다.
일반적으로, 가전 기기, 통신 기기, 셋탑 박스 등의 내장형 시스템(Embedded System)에서는 데이터를 저장하고 처리하기 위한 저장 매체로 비휘발성 메모리가 많이 사용되고 있다.
일반적으로, 가전 기기, 통신 기기, 셋탑 박스 등의 내장형 시스템(Embedded System)에서는 데이터를 저장하고 처리하기 위한 저장 매체로 비휘발성 메모리가 많이 사용되고 있다.
비휘발성 메모리 중에서 주로 사용되는 플래시 메모리는 전기적으로 데이터를 삭제하거나 다시 기록할 수 있는 비휘발성 기억 소자로서, 마그네틱 디스크 메모리를 기반으로 하는 저장 매체에 비해 전력 소모가 적으면서도 하드 디스크와 같은 빠른 액세스 타임(Access Time)을 가지며 크기가 작기 때문에 휴대 기기의 저장 매체로 널리 사용되고 있다.
또한, 비휘발성 메모리는 하드웨어적 특성상 기존의 램(Random Access Memory, RAM)이나 마그네틱 저장 매체등과 마찬가지로 특정 위치에 저장된 데이터에 임의로 접근할 수 있지만, 데이터를 삭제할 경우에는 기존의 저장 매체와는 다르게 블록(Block) 단위로 삭제가 이루어진다. 또한, 비휘발성 메모리는 하드웨어적 특성상 이미 기록된 섹터에 쓰기 연산을 수행하기 위해서는 해당 섹터가 포함된 블 록 전체를 지우는 연산을 먼저 수행하여야 하는데 이것이 비휘발성 메모리의 성능을 저하시키는 주요한 이유가 된다.
따라서, 쓰기 전 지우기(Erase before write) 문제를 해결하기 위해 논리 주소(Logical Address)와 물리 주소(Physical Address)의 개념이 도입되었다. 다시 말해서, 호스트로부터 요청되는 논리 주소에 대한 읽기/쓰기 등의 데이터 연산은 다양한 맵핑 알고리즘에 의하여 실제 비휘발성 메모리의 물리 주소에 대한 읽기/쓰기 데이터 연산으로 변환된다.
한편, 비휘발성 메모리가 사용되는 시스템은, 시스템 부팅시 맵핑 알고리즘에 따라 논리적 데이터를 재구성하기 위해 맵핑 정보를 재구성하는 과정을 거치게 된다. 호스트는 재구성된 맵핑 정보를 참조하여 실시간으로 비휘발성 메모리에서 소정 논리 주소에 맵핑된 물리 주소의 위치를 찾아 해당 데이터에 접근하여 읽기/쓰기 등의 데이터 연산을 수행하게 된다.
일반적으로 비휘발성 메모리에 대한 데이터 연산의 성능을 최대화시키기 위해서는 2단계의 맵핑을 거치게 된다. 1단계는 하나의 논리적 유니트에 다수개의 물리적 유니트가 맵핑되는 논리적 유니트와 물리적 유니트의 맵핑이며, 2단계는 각각의 물리적 유니트 내에서 논리적 섹터와 물리적 섹터의 맵핑이다.
이와 같은 2단계의 맵핑은, 비휘발성 메모리가 사용되는 시스템이 부팅될 때 수행되며, 호스트는 비휘발성 메모리에 대한 데이터 연산이 요청될 때 2단계의 맵핑을 통해 재구성되는 맵핑 정보를 통하여 해당하는 데이터에 접근하게 된다. 또한, 2단계의 맵핑을 통해 재구성된 맵핑 정보는 비휘발성 메모리에 쓰기 연산이 요 청되거나 쓰기 연산이 수행된 후에 갱신된다.
도 1은 일반적인 논리적 유니트와 물리적 유니트 간의 맵핑 관계가 도시된 도면이다.
도시된 바와 같이, 논리적 유니트 0에 물리적 유니트 13, 7, 12, 15가 맵핑되어 있으며, 논리적 유니트 1에는 물리적 유니트 2가 맵핑되어 있고, 논리적 유니트 N에는 물리적 유니트10, 17, 3이 맵핑되어 있으며, 물리적 유니트 20, 1, 5는 맵핑되어 있지 않다. 이때, Depth는 사용한 시기를 나타내는 값으로써 Depth값이 클수록 최근에 사용된 물리 유니트가 된다.
도 2는 종래의 기술에 따른 물리적 유니트 내에서 물리적 섹터와 논리적 섹터의 맵핑 관계가 도시된 도면이다. 이때, 도 2는 전술한 도 1에서 논리적 유니트 N에 맵핑된 물리 유니트내에서의 맵핑 관계가 도시된 경우를 예를 들어 설명기로 하며, 논리적 유니트 N은 논리적 섹터 0, 1, 2, 3으로 구성된 경우를 예를 들어 설명하기로 한다.
도시된 바와 같이, Depth값이 가장 큰 물리적 유니트 10이 가장 최근에 사용된 물리적 유니트이며, Depth값이 가장 작은 물리적 유니트 3이 가장 처음에 맵핑된 물리적 유니트가 된다. 이때, 논리적 유니트 N의 논리적 섹터 0에 맵핑된 물리적 섹터는 물리적 유니트 3의 0, 3번째, 논리적 섹터 1에 맵핑된 물리적 섹터는 물리적 유니트 3의 1번째와 물리적 유니트 17의 0,2번째, 논리적 섹터 2에 맵핑된 물리적 섹터는 물리적 유니트 3의 2번째, 논리적 섹터 3에 맵핑된 물리적 섹터는 물리적 유니트 17의 3번째와 물리적 유니트 10의 3번째가 된다.
비휘발성 메모리를 사용하는 시스템은, 시스템 부팅시에 전술한 바와 같은 맵핑 관계를 통해 맵핑 정보를 재구성하게 된다. 이러한 맵핑 정보는 도 3과 같이, 논리적 섹터가 저장된 물리적 유니트 내의 물리적 섹터의 오프셋으로 구성된다. 이때, 논리적 유니트 N이 논리적 섹터 0, 1, 2, 3으로 이루어져 있으므로 맵핑 정보 또한 논리적 섹터 0, 1, 2, 3에 대한 물리적 섹터의 오프셋으로 이루어지게 된다. 따라서, 전술한 도 3에 의한 전술한 도 2의 맵핑 정보는 도 4와 같다. 이때, 동일한 논리적 섹터에 다수개의 물리적 섹터의 오프셋이 존재하는 경우에는 가장 최근에 업데이트된 물리적 섹터가 유효한 것으로 간주하게 된다.
도 5는 종래의 기술에 따른 비휘발성 메모리에 읽기 요청을 처리하는 방법이 도시된 도면이다. 이때, 도 5는 전술한 도 4에서 논리적 섹터 0에 대한 읽기 요청을 처리하는 경우를 예를 들어 설명하기로 한다.
도시된 바와 같이, 논리적 섹터 0은 물리적 유니트 3의 물리적 섹터 3에 저장되어 있다. 따라서, 논리적 섹터 0에 접근하기 위해서는 물리적 유니트 10, 17, 3에 대한 맵핑 정보를 순차적으로 검색해야 한다. 따라서, 논리적 섹터 0에 맵핑된 물리적 섹터를 찾기 위해서는 총 3회의 맵핑 정보를 검색해야 한다.
도 6은 종래의 기술에 따른 비휘발성 메모리의 쓰기 요청을 처리하는 방법이 도시된 도면이다. 이때, 도 6은 전술한 도 4에서 논리적 섹터 0에 대한 쓰기 요청을 처리하는 경우를 예를 들어 설명하기로 한다.
도시된 바와 같이, 논리적 섹터 0에 대한 쓰기는 가장 최근에 맵핑된 물리 유니트 10에서 논리적 섹터에 맵핑되지 않은 물리적 섹터 1에 이루어지게 된다. 이때, 물리적 유니트 10에 대한 맵핑 정보는 1번째 물리적 섹터에 쓰기가 이루어졌기 때문에 갱신된다. 또한, 물리적 유니트 10의 맵핑 정보가 갱신되었기 때문에 기존에 논리적 섹터 0에 맵핑된 물리적 유니트 3의 물리적 섹터 3에 대한 맵핑 정보를 갱신하는 과정을 거치게 되어 쓰기 연산이 완료된다.
그러나, 전술한 맵핑 정보는 물리 유니트마다 각각 유지 관리되기 때문에 읽기 요청 및 쓰기 요청에 대해서 해당 논리적 섹터에 맵핑된 물리적 섹터를 찾기 위해 모든 맵핑 정보를 검색해야 하고, 맵핑 정보를 갱신하는 경우에도 많은 메모리가 사용되어 오버헤드가 발생하는 문제점이 있다.
한국 공개 특허 1999-0075161은 메모리 어레이를 복수의 동작 블록으로 나누고, 각각의 블록마다 룩업 테이블을 갖게 함으로써, 논리 어드레스와 물리 어드레스간 엑세스 타임을 향상시켜주는 플래시 메모리 액세스 방법을 개시하고 있으나, 이는 각각의 물리 유니트마다 맵핑 정보를 유지 관리하는 것으로 읽기 요청 및 쓰기 요청을 처리하기 위한 맵핑 정보를 검색하고 업데이트하는 작업을 위한 많은 메모리가 사용되어 발생되는 오버헤드를 해결하는 방안은 제안되고 있지 않다.
본 발명은 논리 유니트별로 맵핑 정보를 관리하여 논리적 섹터 접근 요청에 걸리는 시간을 최소화할 수 있는 비휘발성 메모리의 맵핑 관리 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명의 목적은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해되어 질 수 있을 것이다.
상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 비휘발성 메모리의 맵핑 정보 관리 장치는, 소정의 논리적 유니트에 맵핑된 물리적 유니트 내의 각 물리적 섹터에 맵핑된 논리적 섹터를 추출하는 추출부, 상기 추출된 논리적 섹터를 통해 상기 논리적 유니트에 속한 논리적 섹터에 대한 맵핑 정보를 생성하는 맵핑 정보 생성부, 및 상기 생성된 맵핑 정보를 저장하는 맵핑 정보 저장부를 포함한다.
또한, 상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 비휘발성 메모리의 맵핑 정보 관리 방법은, 소정의 논리적 유니트에 맵핑된 물리적 유니트 내의 각 물리적 섹터에 맵핑된 논리적 섹터를 추출하는 단계, 상기 추출된 논리적 섹터를 통해 상기 논리적 유니트에 속한 논리적 섹터에 대한 맵핑 정보를 생성하는 단계, 및 상기 생성된 맵핑 정보를 저장하는 단계를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범수를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 본 발명의 실시예들에 의하여 비휘발성 메모리의 맵핑 정보 관리 장치 및 방법을 설명하기 위한 블록도 또는 처리 흐름도에 대한 도면들을 참고하여 본 발명에 대해 설명하도록 한다. 이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
일반적으로 플래시 메모리는 소블록 플래시 메모리와 대블록 플래시 메모리로 나뉘어진다. 이때, 소블록 플래시 메모리는 논리적 연산 단위와 물리적 연산 단위가 동일한 반면, 대블록 플래시 메모리는 논리적 연산 단위에 비하여 물리적 연산 단위가 큰 특징을 가진다. 여기서, 논리적 연산 단위는 호스트측의 연산 단위로 흔히 섹터라 칭하여지며, 물리적 연산 단위는 플래시 메모리에서 실제 단위로 흔히 페이지라 칭하여진다. 참고로, 논리적 연산 단위와 물리적 연산 단위는 섹터 및 페이지에 국한되지 않고 플래시 메모리가 사용되는 장치에 따라 다양한 크기로 이루어질 수 있다.
도 7은 본 발명의 실시예에 따른 대블록 플래시 메모리의 구조가 도시된 도면이다.
도시된 바와 같이, 본 발명의 실시예에 따른 대블록 플래시 메모리(110)는 다수의 페이지(112)로 이루어지는 다수의 블록(111)으로 이루어지고, 적어도 하나 이상의 블록이 모여 하나의 유니트(113)를 구성하며, 유니트(113)는 메타 정보 저장 영역(113a) 및 데이터 저장 영역(113b)를 포함할 수 있다. 본 발명의 실시예에 서 사용되는 용어 중 유니트는 플래시 변환 계층(Flash Translation Layer, FTL)에서 블록 관리를 효율적으로 하기 위해 연속되는 소정 개수의 블록 단위를 묶어 놓은 개념이며, 논리적 유니트는 연속된 소정 개수의 논리적인 블록 단위들의 집합을 의미하며, 물리적 유니트는 연속된 소정 개수의 물리적인 블록 단위들의 집합을 의미한다.
이때, 도 7에서 유니트(113)는 물리적 유니트인 경우를 예를 들어 설명하기로 하며, 메타 정보 영역(113a)은 해당 물리적 유니트가 맵핑된 논리적 유니트의 논리적 유니트 번호(Logical Unit Number, LUN)와 해당 물리적 유니트의 사용 시기를 나타내는 Depth를 저장할 수 있다. Depth값이 필요한 이유는, 하나의 논리적 유니트에 다수개의 물리적 유니트가 맵핑될 때 어느 물리적 유니트가 가장 최근에 업데이트된 유효한 데이터를 가지고 있는지를 판단하기 위해서이다. 한편, 각 페이지(112)는 실제 데이터가 저장되는 메인 영역과 저장된 데이터의 논리적 섹터 번호가 저장되는 스페어 영역으로 이루어진다.
일반적으로 하나의 논리 유니트에는 다수개의 물리 유니트가 맵핑되어 사용될 수 있다. 이는 FTL이 쓰기 성능의 최적화를 위해 유니트간의 1:n 맵핑을 지원하기 때문에 소정 시점에서 하나의 논리적 섹터에 대해 다수개의 물리적 섹터 맵핑이 존재할 수 있다. 유효한 데이터는 가장 최근의 쓰기 요청에 의해 쓰여진 섹터를 의미한다. 이때, 유효한 물리적 섹터의 위치를 나타내기 위해서는 물리적 섹터가 속한 물리적 유니트에 대한 정보와 물리적 유니트 내에서의 정확한 위치 정보가 필요하게 된다.
도 8은 본 발명의 실시예에 따른 비휘발성 메모리의 맵핑 정보 관리 장치가 도시된 도면이다. 이때, 본 발명의 실시예에서 비휘발성 메모리는 플래시 메모리인 경우로 이해될 수 있다.
도시된 바와 같이, 본 발명의 실시예에 따른 비휘발성 메모리의 맵핑 정보 관리 장치(100)는, 비휘발성 메모리(110), 소정의 논리 유니트에 맵핑된 물리 유니트 내의 각 물리적 섹터에 맵핑된 논리적 섹터를 추출하는 추출부(120), 소정 논리적 섹터에 맵핑된 물리적 섹터를 물리 유니트의 사용 순서에 따라 갱신하여 맵핑 정보를 생성하는 맵핑 정보 생성부(130), 생성된 맵핑 정보를 저장하는 맵핑 정보 저장부(140), 및 호스트로부터의 읽기/쓰기 요청에 따라 비휘발성 메모리(110)에 접근하는 디바이스 드라이버(150)를 포함할 수 있다.
비휘발성 메모리(110)는 전술한 도 7의 플래시 메모리로 이해될 수 있으며, 그 구성 또한 전술한 도 7의 플래시 메모리와 동일한 것으로 이해될 수 있다.
추출부(120)는 소정의 논리 유니트에 맵핑된 다수개의 물리적 유니트 내의 각 물리적 유니트에 포함된 물리적 섹터에 맵핑된 논리적 섹터를 추출할 수 있다. 이때, 논리적 섹터는 전술한 스페어 영역으로부터 추출될 수 있다. 이러한 논리적 섹터의 추출은, 다수개의 논리 유니트가 존재하는 경우에는 각 논리 유니트마다 맵핑된 모든 물리 유니트에 대해 이루어지게 된다.
맵핑 정보 생성부(130)는 소정의 논리적 유니트에서 추출된 논리적 섹터에 맵핑된 물리적 섹터를 해당 논리적 유니트에서 가장 처음에 사용된 물리적 유니트부터 갱신을 시작하여 가장 최근에 사용된 물리적 유니트의 순서로 갱신을 수행하 게 된다. 가장 최근에 사용된 물리적 유니트의 갱신까지 완료되면, 맵핑 정보 생성부(130)는 소정 논리적 섹터가 저장된 물리적 유니트의 번호와 해당 물리적 유니트에서 해당 논리적 섹터가 저장된 물리적 섹터 오프셋으로 이루어지는 맵핑 정보를 생성할 수 있다.
예를 들어, 도 9와 같이 논리적 유니트 N에 물리적 유니트 10, 17, 3이 맵핑된 경우, 추출부(120)는 물리적 유니트 10, 17, 3 내의 각 물리적 섹터에 맵핑된 논리적 섹터를 추출하게 된다. 이때, 논리적 섹터는 전술한 스페어 영역으로부터 추출될 수 있다. 다시 말해서, 물리적 유니트 10에서는 물리적 섹터 0에 논리적 섹터 3이 맵핑되고, 물리적 유니트 17에서는 물리적 섹터 0, 1, 2, 3에 각각 논리적 섹터 1, 논리적 섹터 2, 논리적 섹터 1, 논리적 섹터 3이 맵핑되며, 물리적 유니트 3에서는 물리적 섹터 0, 1, 2, 3에 각각 논리적 섹터 0, 논리적 섹터 1, 논리적 섹터 2, 논리적 섹터 0이 맵핑된 것을 알 수 있다.
이때, 맵핑 정보 생성부(130)는 가장 처음에 사용된 물리적 유니트부터 소정 논리적 섹터가 저장된 물리적 유니트의 번호와 해당 물리적 유니트에서 해당 논리적 섹터가 저장된 물리적 섹터 오프셋으로 이루어지는 맵핑 정보의 갱신을 수행하기 시작한다. 이때, 소정 물리적 유니트내에서의 갱신은 물리적 섹터 0부터 물리적 섹터 3의 순으로 이루어지게 된다.
예를 들어, 맵핑 정보 생성부(130)가 가장 처음에 사용된 물리적 유니트 3을 통해 맵핑 정보를 생성하면, 도 10과 같이 논리적 섹터 0 내지 논리적 섹터 3에 대한 맵핑 정보가 생성될 수 있다. 이때, 논리적 섹터 0에 대한 물리적 섹터가 3인 것은, 소정 물리적 유니트에서 데이터는 물리적 섹터 0부터 물리적 섹터 3의 순으로 순차적으로 쓰여지기 때문에 동일한 물리적 유니트에서는 가장 나중에 쓰여진 데이터가 가장 최근에 업데이트된 데이터로 간주되기 때문이다.
이후, 맵핑 정보 생성부(130)는 물리적 유니트 3 다음으로 사용된 물리적 유니트 17에서 추출된 논리적 섹터를 통해 맵핑 정보를 갱신할 수 있다. 예를 들어, 도 11과 같이 전술한 도 10의 맵핑 정보에서 논리적 섹터 1에 맵핑된 물리적 유니트 3의 물리적 섹터 1이 물리적 유니트 17의 물리적 섹터 2로 갱신될 수 있다. 또한, 전술한 도 10에서 논리적 섹터 2에 맵핑되었던 물리적 유니트 3의 물리적 섹터 2가 물리적 유니트 17의 물리적 섹터 1로 갱신될 수 있다. 또한, 전술한 도 10에서 물리적 섹터가 맵핑되지 않았던 논리적 섹터 3에 물리적 유니트 17의 물리적 섹터 3이 맵핑된 것을 알 수 있다.
이와 마찬가지로, 맵핑 정보 생성부(130)는 물리적 유니트 17에 대한 갱신이 완료되면, 물리적 유니트 10에 대한 갱신을 수행하여 결과적으로 도 12와 같은 모든 물리적 유니트에 대한 갱신을 완료한 맵핑 정보를 생성할 수 있다. 이러한 맵핑 정보를 생성하는 과정은 모든 논리적 유니트에 대해 반복적으로 수행될 수 있다.
맵핑 정보 생성부(130)에 의해 생성된 맵핑 정보는 맵핑 정보 저장부(140)에 저장되어 비휘발성 메모리(110)를 사용하는 시스템에서 저장된 맵핑 정보를 참조하여 비휘발성 메모리(110)에서의 읽기 요청 및 쓰기 요청을 처리할 수 있다. 이때, 해당하는 논리적 섹터에 접근하기 위해 소정 논리적 유니트별로 생성된 맵핑 정보 를 참조하기 때문에 물리적 유니트별로 맵핑 정보를 관리하는 것에 비하여 빠른 시간에 해당 섹터에 접근할 수 있게 된다.
도 13은 본 발명의 실시예에 따른 맵핑 정보 생성 방법이 도시된 도면이다.
도시된 바와 같이, 본 발명의 실시예에 따른 맵핑 정보 생성 방법은, 먼저 비휘발성 메모리(110)를 사용하는 시스템이 부팅할 때, 추출부(120)는 모든 논리 유니트를 검색하여 물리 유니트가 맵핑된 논리 유니트를 검색하게 된다(S110).
추출부(120)는 검색된 논리 유니트를 논리 유니트 번호에 따라 정렬한 다음(S120), 논리 유니트 번호에 따라 논리 유니트에 맵핑된 물리적 유니트 내 물리적 섹터에 맵핑된 논리적 섹터를 추출한다(S130).
맵핑 정보 생성부(130)는 추출된 논리적 섹터를 소정 논리적 유니트에서 가장 처음 사용된 물리적 유니트부터 맵핑 정보의 갱신을 시작하게 된다(S140). 이때, 갱신 순서는 소정 논리적 유니트에 맵핑된 다수개의 물리적 유니트들 중 가장 처음에 사용된 물리적 유니트부터 시작하며, 소정 물리적 유니트에서는 물리적 섹터의 순서에 따라 갱신을 수행하게 된다.
이후, 모든 물리적 유니트에 대한 갱신이 완료되었는지를 판단하고(S150), 판단 결과 완료되지 않은 경우 다음 순서의 물리적 유니트에 대한 갱신을 수행하게 된다(S160). 이때, 다음 순서의 물리적 유니트란, 가장 처음에 사용된 물리적 유니트 다음에 사용된 물리적 유니트를 의미한다.
모든 물리적 유니트에 대한 갱신이 완료되면, 맵핑 정보는 맵핑 정보 저장부(140)에 저장된다(S170).
도 14는 본 발명의 실시예에 따른 읽기 요청에 대한 처리 방법이 도시된 도면이다. 이때, 도 14는 호스트가 논리적 섹터 N의 읽기를 요청한 경우를 예를 들어 설명하기로 한다.
도시된 바와 같이, 본 발명의 실시예에 따른 읽기 요청에 대한 처리 방법은, 먼저 호스트로부터 논리 섹터 N에 대한 읽기 요청이 오면, 읽기 요청에 해당하는 논리 섹터 N이 속한 논리적 유니트 번호와 해당 논리적 유니트 내에서의 논리적 오프셋을 구한다(S210).
이때, 디바이스 드라이버(150)는 구해진 논리적 오프셋을 통해 맵핑 정보 저장부(140)에 저장된 맵핑 정보를 참조하여 해당 논리적 유니트 내에서 논리 섹터 N이 속한 물리적 유니트 및 물리적 섹터를 검색한다(S220).
이후, 디바이스 드라이버(150)는 검색된 물리적 유니트 및 물리적 섹터에 따라 논리적 섹터 N에 접근하게 된다(S230).
예를 들어, 논리적 섹터 0에 대한 읽기 요청시, 도 15에 도시된 바와 같이 논리적 섹터 0이 속한 논리적 유니트 번호와 해당 논리적 유니트 내에서의 논리적 오프셋을 구하고, 맵핑 정보를 참조하여 논리적 섹터 0에 맵핑된 물리적 섹터에 접근하는 것이다.
도 16은 본 발명의 실시예에 따른 쓰기 요청을 처리하는 방법이 도시된 도면이다. 이때, 도 16은 호스트가 논리적 섹터 N에 쓰기를 요청한 경우를 예를 들어 설명하기로 한다.
도시된 바와 같이, 본 발명의 실시예에 따른 쓰기 요청을 처리하는 방법은, 먼저 디바이스 드라이버(150)가 호스트로부터 쓰기가 요청된 논리적 섹터 N에 대해 가장 최근에 맵핑된 물리 유니트 내의 물리적 섹터에 데이터를 쓴다(S310).
이때, 본 발명의 실시예에서는 가장 최근에 맵핑된 물리 유니트 내의 물리적 섹터에 데이터를 쓰는 경우를 예를 들어 설명하고 있으나, 이는 본 발명의 이해를 돕기 위한 일 예에 불과한 것으로 가장 최근에 맵핑된 물리적 유니트에 빈 물리적 섹터가 없는 경우에는 맵핑되지 않은 물리 유니트를 새로 맵핑하여 데이터를 쓸수도 있다.
디바이스 드라이버(150)는 논리적 섹터 N이 쓰여진 물리 유니트 및 물리 유니트 내의 물리적 섹터 오프셋을 추출하게 된다(S320).
또한, 디바이스 드라이버(150)는 논리적 섹터 N이 속한 논리 유니트 및 논리적 섹터 오프셋을 추출하게 된다(S330).
이후, 맵핑 정보 생성부(130)는 해당하는 논리 유니트의 맵핑 정보에서 논리적 섹터 N에 해당하는 물리 유니트 및 물리적 섹터 오프셋을 갱신하게 된다(S340).
상기 '부'는 소프트웨어 또는 Field Programmable Gate Array(FPGA) 또는 주문형 반도체(Application Specific Integrated Circuit, ASIC)과 같은 하드웨어 구성요소를 의미하며, 부는 어떤 역할들을 수행한다. 그렇지만 부는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. 부는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 따라서, 일 예로서 부는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 부들에서 제공되는 기능은 더 작은 수의 구성요소들 및 부들로 결합되거나 추가적인 구성요소들과 부들로 더 분리될 수 있다.
이상과 같이 본 발명에 따른 비휘발성 메모리의 맵핑 정보 관리 장치 및 방법을 예시된 도면을 참조로 하여 설명하였으나, 본 명세서에 개시된 실시예와 도면에 의해 본 발명은 한정되지 않으며 그 발명의 기술사상 범위내에서 당업자에 의해 다양한 변형이 이루어질 수 있음은 물론이다.
상기한 바와 같은 본 발명의 비휘발성 메모리의 맵핑 정보 관리 장치 및 방법에 따르면, 비휘발성 메모리의 논리적 섹터 읽기 요청시 최소한의 오버 헤드로 논리적 섹터의 저장 위치를 파악할 수 있으며, 비휘발성 메모리의 쓰기 요청시 쓰기 수행 후 최소한의 오버헤드로 맵핑 정보를 갱신할 수 있는 효과가 있다.
Claims (16)
- 소정의 논리적 유니트에 맵핑된 물리적 유니트 내의 각 물리적 섹터에 맵핑된 논리적 섹터를 추출하는 추출부;상기 추출된 논리적 섹터를 통해 상기 논리적 유니트에 속한 논리적 섹터에 대한 맵핑 정보를 생성하는 맵핑 정보 생성부; 및상기 생성된 맵핑 정보를 저장하는 맵핑 정보 저장부를 포함하는 비휘발성 메모리의 맵핑 정보 관리 장치.
- 제 1 항에 있어서,상기 추출부는, 상기 물리적 유니트가 맵핑된 논리적 유니트를 검색하고, 상기 검색 결과에 따라 상기 물리적 유니트가 맵핑된 논리적 유니트에 대해서 상기 논리적 섹터 추출을 수행하는 비휘발성 메모리의 맵핑 정보 관리 장치.
- 제 2 항에 있어서,상기 맵핑 정보 생성부는, 상기 논리적 유니트에 맵핑된 물리적 유니트 중 맵핑된 순서에 따라 각 물리적 유니트에서 추출된 논리적 섹터에 따른 맵핑 정보를 갱신하는 비휘발성 메모리의 맵핑 정보 관리 장치.
- 제 3 항에 있어서,상기 맵핑 정보는, 상기 논리적 유니트의 각 논리적 섹터에 대해 해당 논리적 섹터가 저장된 물리 유니트 번호 및 상기 물리 유니트 번호에서 해당 논리적 섹터가 저장된 물리적 섹터 오프셋을 포함하는 비휘발성 메모리의 맵핑 정보 관리 장치.
- 제 1 항에 있어서,상기 맵핑 정보를 참조하여 소정 논리적 섹터에 대한 데이터 연산을 수행하는 디바이스 드라이버를 더 포함하는 비휘발성 메모리의 맵핑 정보 관리 장치.
- 제 5 항에 있어서,상기 맵핑 정보 생성부는, 상기 디바이스 드라이버에 의한 데이터 연산 수행시 상기 생성된 맵핑 정보를 갱신하는 비휘발성 메모리의 맵핑 정보 관리 장치.
- 제 6 항에 있어서,상기 추출부는, 상기 데이터 연산이 수행된 물리적 유니트 번호 및 물리적 섹터 오프셋을 추출하고,상기 맵핑 정보 생성부는, 상기 데이터 연산이 수행된 논리적 섹터가 속한 논리적 유니트 번호 및 논리적 섹터 오프셋을 구하여 해당하는 논리적 유니트에 대한 맵핑 정보에서 상기 논리적 섹터 오프셋에 해당하는 물리적 유니트 번호 및 물리적 섹터 오프셋을 갱신하는 비휘발성 메모리의 맵핑 정보 관리 장치.
- 제 6 항에 있어서,상기 디바이스 드라이버는, 소정의 논리적 섹터에 대한 읽기 요청시 상기 생성된 맵핑 정보를 참조하여 논리적 섹터가 저장된 물리적 유니트 번호 및 물리적 섹터 오프셋을 검색하는 비휘발성 메모리의 맵핑 정보 관리 장치.
- 소정의 논리적 유니트에 맵핑된 물리적 유니트 내의 각 물리적 섹터에 맵핑된 논리적 섹터를 추출하는 단계;상기 추출된 논리적 섹터를 통해 상기 논리적 유니트에 속한 논리적 섹터에 대한 맵핑 정보를 생성하는 단계; 및상기 생성된 맵핑 정보를 저장하는 단계를 포함하는 비휘발성 메모리의 맵핑 정보 관리 방법.
- 제 9 항에 있어서,상기 논리적 섹터를 추출하는 단계는, 상기 물리적 유니트가 맵핑된 논리적 유니트를 검색하는 단계; 및상기 검색 결과에 따라 상기 물리적 유니트가 맵핑된 논리적 유니트에 대해서 상기 논리적 섹터 추출을 수행하는 단계를 포함하는 비휘발성 메모리의 맵핑 정보 관리 방법.
- 제 10 항에 있어서,상기 맵핑 정보를 생성하는 단계는, 상기 논리적 유니트에 맵핑된 물리적 유니트 중 맵핑된 순서에 따라 각 물리적 유니트에서 추출된 논리적 섹터를 갱신하는 단계를 포함하는 비휘발성 메모리의 맵핑 정보 관리 방법.
- 제 11 항에 있어서,상기 맵핑 정보는, 상기 논리적 유니트의 각 논리적 섹터에 대해 해당 논리적 섹터가 저장된 물리 유니트 번호 및 상기 물리 유니트 번호에서 해당 논리적 섹터가 저장된 물리적 섹터 오프셋을 포함하는 비휘발성 메모리의 맵핑 정보 관리 방법.
- 제 9 항에 있어서,상기 맵핑 정보를 참조하여 소정 논리적 섹터에 대한 데이터 연산을 수행하는 단계를 더 포함하는 비휘발성 메모리의 맵핑 정보 관리 방법.
- 제 13 항에 있어서,상기 데이터 연산을 수행하는 단계는, 쓰기 연산 수행시 상기 생성된 맵핑 정보를 갱신하는 단계를 포함하는 비휘발성 메모리의 맵핑 정보 관리 방법.
- 제 14 항에 있어서,상기 맵핑 정보를 갱신하는 단계는, 상기 쓰기 연산이 수행된 물리적 유니트 번호 및 물리적 섹터 오프셋을 추출하는 단계; 및상기 쓰기 연산이 수행된 논리적 섹터가 속한 논리적 유니트 번호 및 논리적 섹터 오프셋을 구하여 해당하는 논리적 유니트에 대한 맵핑 정보에서 상기 논리적 섹터 오프셋에 해당하는 물리적 유니트 번호 및 물리적 섹터 오프셋을 갱신하는 단계를 포함하는 비휘발성 메모리의 맵핑 정보 관리 방법.
- 제 13 항에 있어서,상기 데이터 연산을 수행하는 단계는, 소정의 논리적 섹터에 대한 읽기 요청시 상기 생성된 맵핑 정보를 참조하여 논리적 섹터가 저장된 물리적 유니트 번호 및 물리적 섹터 오프셋을 검색하는 단계를 포함하는 비휘발성 메모리의 맵핑 정보 관리 방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060015198A KR100781517B1 (ko) | 2006-02-16 | 2006-02-16 | 비휘발성 메모리의 맵핑 정보 관리 장치 및 방법 |
US11/655,215 US7822940B2 (en) | 2006-02-16 | 2007-01-19 | Apparatus and method for managing mapping information of nonvolatile memory |
JP2007026525A JP2007220107A (ja) | 2006-02-16 | 2007-02-06 | 不揮発性メモリのマッピング情報管理装置及び方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060015198A KR100781517B1 (ko) | 2006-02-16 | 2006-02-16 | 비휘발성 메모리의 맵핑 정보 관리 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070082403A KR20070082403A (ko) | 2007-08-21 |
KR100781517B1 true KR100781517B1 (ko) | 2007-12-03 |
Family
ID=38370107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060015198A KR100781517B1 (ko) | 2006-02-16 | 2006-02-16 | 비휘발성 메모리의 맵핑 정보 관리 장치 및 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7822940B2 (ko) |
JP (1) | JP2007220107A (ko) |
KR (1) | KR100781517B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101226600B1 (ko) | 2011-03-09 | 2013-01-28 | 주식회사 이에프텍 | 메모리 시스템 및 그의 메모리 맵핑 방법 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100924021B1 (ko) * | 2007-10-02 | 2009-10-28 | 주식회사 휴원 | 플래시 메모리의 사상 관리 방법 |
US8732388B2 (en) * | 2008-09-16 | 2014-05-20 | Micron Technology, Inc. | Embedded mapping information for memory devices |
US8285965B2 (en) * | 2009-11-20 | 2012-10-09 | Western Digital Technologies, Inc. | Aligning data storage device partition to boundary of physical data sector |
US9063838B1 (en) | 2012-01-23 | 2015-06-23 | Western Digital Technologies, Inc. | Data storage device shifting data chunks of alignment zone relative to sector boundaries |
US8996839B1 (en) | 2012-01-23 | 2015-03-31 | Western Digital Technologies, Inc. | Data storage device aligning partition to boundary of sector when partition offset correlates with offset of write commands |
US20140244901A1 (en) * | 2013-02-26 | 2014-08-28 | Lsi Corporation | Metadata management for a flash drive |
KR102661020B1 (ko) | 2016-11-07 | 2024-04-24 | 삼성전자주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09282111A (ja) * | 1996-04-15 | 1997-10-31 | Internatl Business Mach Corp <Ibm> | 半導体メモリ装置及びその制御方法 |
KR19990063714A (ko) * | 1995-09-27 | 1999-07-26 | 데이비드 존 새비쥐, 알란 웰시 싱클레어 | 메모리 관리 |
US6191712B1 (en) | 1999-06-28 | 2001-02-20 | International Business Machines Corporation | Circuit for aligning logical sectors with physical sectors in a disk storage system |
KR20050070672A (ko) * | 2003-12-30 | 2005-07-07 | 삼성전자주식회사 | 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5907856A (en) | 1995-07-31 | 1999-05-25 | Lexar Media, Inc. | Moving sectors within a block of information in a flash memory mass storage architecture |
KR100319598B1 (ko) | 1998-03-18 | 2002-04-06 | 김영환 | 플래시메모리어레이액세스방법및장치 |
JP4315488B2 (ja) | 1998-06-30 | 2009-08-19 | ソニー株式会社 | データ記憶装置、データ処理装置、データ処理システム並びにデータ処理方法 |
KR100644602B1 (ko) * | 2000-10-11 | 2006-11-10 | 삼성전자주식회사 | 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조 |
KR20040072875A (ko) | 2003-02-11 | 2004-08-19 | 유비시스테크놀러지 주식회사 | 낸드 플래시 메모리를 이용한 저장장치 |
JP3766396B2 (ja) * | 2003-04-21 | 2006-04-12 | 株式会社東芝 | メモリ制御装置およびメモリ制御方法 |
KR100526190B1 (ko) | 2004-02-06 | 2005-11-03 | 삼성전자주식회사 | 플래시 메모리의 재사상 방법 |
-
2006
- 2006-02-16 KR KR1020060015198A patent/KR100781517B1/ko not_active IP Right Cessation
-
2007
- 2007-01-19 US US11/655,215 patent/US7822940B2/en active Active
- 2007-02-06 JP JP2007026525A patent/JP2007220107A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19990063714A (ko) * | 1995-09-27 | 1999-07-26 | 데이비드 존 새비쥐, 알란 웰시 싱클레어 | 메모리 관리 |
JPH09282111A (ja) * | 1996-04-15 | 1997-10-31 | Internatl Business Mach Corp <Ibm> | 半導体メモリ装置及びその制御方法 |
US6191712B1 (en) | 1999-06-28 | 2001-02-20 | International Business Machines Corporation | Circuit for aligning logical sectors with physical sectors in a disk storage system |
KR20050070672A (ko) * | 2003-12-30 | 2005-07-07 | 삼성전자주식회사 | 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101226600B1 (ko) | 2011-03-09 | 2013-01-28 | 주식회사 이에프텍 | 메모리 시스템 및 그의 메모리 맵핑 방법 |
Also Published As
Publication number | Publication date |
---|---|
US7822940B2 (en) | 2010-10-26 |
JP2007220107A (ja) | 2007-08-30 |
US20070192533A1 (en) | 2007-08-16 |
KR20070082403A (ko) | 2007-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100781517B1 (ko) | 비휘발성 메모리의 맵핑 정보 관리 장치 및 방법 | |
KR100855467B1 (ko) | 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑장치 및 방법 | |
US9684462B2 (en) | Method and apparatus utilizing non-uniform hash functions for placing records in non-uniform access memory | |
KR100843133B1 (ko) | 플래시 메모리에서 매핑 정보 재구성을 위한 장치 및 방법 | |
KR100781520B1 (ko) | 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 이를위한 맵핑 정보 복구 방법 | |
US10496334B2 (en) | Solid state drive using two-level indirection architecture | |
EP1909184B1 (en) | Mapping information managing apparatus and method for non-volatile memory supporting different cell types | |
US9292434B2 (en) | Method and apparatus for restoring flash translation layer (FTL) in non-volatile storage device | |
JP5709814B2 (ja) | 不揮発性メモリを有するシステムのための高速ツリー平坦化 | |
US20070094445A1 (en) | Method to enable fast disk caching and efficient operations on solid state disks | |
JP2013137770A (ja) | Lbaビットマップの使用 | |
JP2004127185A (ja) | メモリカード | |
KR20130030242A (ko) | 비휘발성 메모리를 갖는 시스템에 대한 비정상 셧다운의 핸들링 | |
US20080184006A1 (en) | Method and System for Preloading Page Using Control Flow | |
CN106557428B (zh) | 数据存储设备的映射系统选择 | |
US20180189144A1 (en) | Apparatus and method for memory storage to protect data-loss after power loss | |
US20240143219A1 (en) | Software-hardware combination method for internal mapping address query of zoned namespace | |
CN113253926A (zh) | 提升新型存储器的查询和存储性能的存储内索引构建方法 | |
KR100914646B1 (ko) | 멀티-플레인 구조의 플래시 메모리 관리 방법 | |
US11126624B2 (en) | Trie search engine | |
JP5036078B2 (ja) | 記憶装置 | |
KR100533683B1 (ko) | 플래시 메모리의 데이터 관리 장치 및 방법 | |
Gwak et al. | Reducing garbage collection overhead of log-structured file systems with GC journaling | |
KR100801072B1 (ko) | 플래시 메모리, 이를 위한 맵핑 장치 및 방법 | |
Hiep et al. | Timestamp-based hot/cold data identification scheme for solid state drives |
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: 20121031 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20131031 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20141031 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20151030 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |