KR20070046864A - 플래쉬 화일 시스템에서 가상-물리 주소 변환 방법 및시스템 - Google Patents

플래쉬 화일 시스템에서 가상-물리 주소 변환 방법 및시스템 Download PDF

Info

Publication number
KR20070046864A
KR20070046864A KR1020077003815A KR20077003815A KR20070046864A KR 20070046864 A KR20070046864 A KR 20070046864A KR 1020077003815 A KR1020077003815 A KR 1020077003815A KR 20077003815 A KR20077003815 A KR 20077003815A KR 20070046864 A KR20070046864 A KR 20070046864A
Authority
KR
South Korea
Prior art keywords
virtual
physical
address
flash memory
units
Prior art date
Application number
KR1020077003815A
Other languages
English (en)
Other versions
KR100946286B1 (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 엠시스템스 리미티드
Publication of KR20070046864A publication Critical patent/KR20070046864A/ko
Application granted granted Critical
Publication of KR100946286B1 publication Critical patent/KR100946286B1/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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Read Only Memory (AREA)

Abstract

호스트로부터 데이터를 액세싱하기 위한 메모리를 위한 플래쉬 메모리 관리 시스템으로서, 상기 시스템은 메모리의 가상 유닛 및 물리 유닛을 포함하고 각각의 가상 유닛을 물리 유닛으로 매핑하는 매핑 매커니즘을 포함하고, 각각의 가상 유닛을 액세싱하는데에 필요한 이진비트의 수는 각각의 물리 유닛을 액세싱하는데에 필요한 이진비트의 수 보다 적다.
Figure 112007014583215-PCT00001
플래쉬 메모리, 가상 유닛, 물리 유닛, 매핑, 가상 물리 주소 공간

Description

플래쉬 화일 시스템에서 가상-물리 주소 변환 방법 및 시스템{VIRTUAL-TO-PHYSICAL ADDRESS TRANSLATION IN A FLASH FILE SYSTEM}
본 발명은 플래쉬 메모리를 주소지정하기 위한 개선된 시스템에 고나한 것으로, 특히, 가상 주소 지정에 필요한 비트의 수를 감소시키는 플래쉬 파일 시스템에서의 주소 변환에 관한 것이다.
플래쉬 디바이스는 플래쉬 유형, 부동 게이트 트랜지스터로 이루어 지고, 인-서킷 프로그램가능 동작이 메모리의 일부분을 소거할 수 있게 하는 추가의 기능을 갖춘, EPROM 메모리에 대해 기능 및 성능이 유사한 비휘발성 메모리인, 전기적으로 소거가능하고 프로그램가능한 판독전용 메모리(EEPROMs)를 포함한다. 플래쉬 디바이스는 종래의 자기 저장 디스크에 비해 비교적 저렴하고 상대적으로 저전력을 소모하는 이점을 갖는다. 그러나, 플래쉬 디바이스는 물리 주소에서 그것들을 사용하는 데 있어서 약간의 문제점을 갖는 일정한 제약을 갖는다. 플래쉬 디바이스에서, 기입된 영역을 미리 제거하지 않고는 메모리의 이전 기입된 영역을 재기입하는 것이 물리적이지 못하다. 즉, 플래쉬 셀들은 그것들이 프로그램되기 이전에 반드시 소거되어야 한다(예로서, "1"로 프로그램되어야 함). 소거는 단지 통상적으로 "소거블록"(NOR 디바이스에서 더욱 큰 사이즈이고, 현재 상용 NAND 디바이스에서 전형적으로 16 내지 128 K바이트인 사이즈)으로 일컫는 비교적 큰 셀 그룹에 대해서만 행해질 수 있다. 그러므로, 단일 바이트 또는 1킬로바이트의 덩어리의 내용을 갱신하는 것은 "보관" 동작-갱신되지 않은 소거 블록 부분이 다른 곳으로 이동되어야 하고 이에따라 소거 동안 보존되고, 저장 장소로 이동된다-을 필요로 한다.
더욱이, 디바이스의 몇몇 블록은 신뢰성이 없고 사용되지 말아야 할, "불량 블록"이다. 블록들은 디바이스를 초기에 테스팅하는 경우 제작자에 의해 또는, 필드에서 사용 중 블록의 고장을 검출한 경우 애플리케이션 소프트웨어에 의해 "불량 블록"으로서 선언된다.
배경기술의 상기와 같은 제약사항을 극복하기 위해, 플래쉬 파일 시스템(FFS)은, 본원의 양수인에게 양도되고 본 명세서에 그 전부가 참조문헌으로서 통합된 미국 특허 제5,404,485호가 개시되었다. FFS는 플래쉬 디바이스가 자기 디스크를 에뮬레이팅할 수 있게하는 플래쉬 디바이스상에서의 데이터 저장 및 조작 시스템을 제공한다. 종래기술에서, 애플리케이션 또는 운영체제는 물리 주소가 아닌 가상 주소를 사용하여 플래쉬 저장 서브시스템과 상호작용한다. 가상 주소로부터 물리 주소로의 매핑을 제공하는 물리적 디바이스와 소프트웨어 애플리케이션간에 중간층이 있다. 소프트웨어는 어떠한 제약없이 무작위로 판독 또는 기입될 수 있는 연속적인 결함없는 매체를 가짐에 따라 저장 시스템을 뷰잉하는 반면에, 물리 주소지정 체계는 그 주소 범위에 "홀"을 가지며(예로서, 불량 블록으로 인해), 가상 주소 범위에서의 서로 이웃한 데이타편들은 물리 주소 범위에서 상당히 떨어져 있을 수 있다. 상기 매핑을 수행하는 중간층은 애플리케이션이 실행하는 동일 CPU상에서 구동하는 소프트웨어 드라이버일 수 있다. 대안으로, 중간층은 플래쉬 디바 이스를 제어하는 제어기 내부에 내장될 수 있고 호스트 컴퓨터가 저장장소를 액세스하는 경우 호스트 컴퓨터의 주 CPU를 위한 인터페이스 포인트로서의 역할을 한다. 이것은 예를들어, 카드가 다른 기능중에서 펌웨어 프로그램을 실행하는 온-보드 제어기를 갖는 경우에, 보안 디지털(SD)카드 또는 멀티미디어 카드(MMC)와 같은 소거가능 메모리 카드에서의 상황이고, 상기한 바와 같은 매핑 유형을 구현한다.
그러한 주소 매핑을 행하는 소프트웨어 또는 펌웨어 구현은 통상적으로 "플래쉬 관리 시스템" 또는 "플래쉬 파일 시스템"으로 칭해진다. 후자 용어는 구현이 반드시 "파일"을 지지할 필요는 없음에 따라, 파일이 운영체제 또는 개인 컴퓨터에서 사용되고, 하드 디스크 소프트웨어 드라이버에 의해 수출되는 것과 유사한 블록 디바이스를 지지한다는 점에서, 틀린 용어이다. 그러나 여전히 용어는 본원 명세서에서 "플래쉬 파일 시스템" 또는 "플래쉬 관리 시스템"이 서로 교환사용되어진다.
가상-물리 주소 매핑을 구현하는 기타 종래 기술 시스템은 Ban에 의해 개시된 미국특허 제5,937,425호 및 Lasser에 의해 개시된 미국특허 제6,591,330호에서 발견될 수 있고, 이들 문헌 모두는 본원에 전부가 개시된 것을 목적으로 참조문헌으로서 통합된다.
NAND-유형 플래쉬 디바이스에 특히 적합한, 미국특허 제5,937,425호에서, 도 1(종래 기술)에서 참조되는 바와 같이 매핑이 행해진다. 물리 주소 공간(13)은 소거될 수 있는 최소 덩어리인 소거 블록들인 유닛(111)으로 구성된다. 각각의 물리유닛(111)은 하나이상의 물리 페이지(113)를 포함하고, 이 페이지는 기입될 수 있는 최소 덩어리이다. 가상 주소 공간(11)은 물리 유닛과 동일 크기를 갖는 가상 유 닛(121)으로 구성된다. 각각의 가상유닛은 물리 페이지(113)와 동일 크기를 갖는 가상 페이지(123)로 구성된다. 가상 주소가 기입 또는 판독을 위해 애플리케이션에 의해 제공되는 경우, 그 주소가 속하는 가상 유닛 수는 가상 주소로부터 추출된다. 각각의 가상 유닛(12)은 하나의 물리 유닛(111) 또는 하나 이상의 물리 유닛(111)의 체인에 할당되는 매핑이 있다. 그러면 요구된 가상 유닛(121)내의 가상 페(123)에 대응하는 물리 페이지(113)는 가상 페이지(123)를 물리 페이지(113)에 연관시키는 "로컬" 매핑을 이용하여, 또는 물리 페이지(113)에 저장된 제어 정보를 사용하여, 대응하는 물리 유닛(11)내에 위치된다.
미국특허 제5,937,425호에 개시된 방법의 한 이점은 주 매핑이 페이지 보단 유닛에 대해 행해짐에 따라, 변환 테이블은, 페이지 보다 적은 수의 유닛이 있으므로, 더욱 작아지게된다는 것이다. 다른 이점은 하나이상의 물리 유닛(111)을 한 가상 유닛(121)에 할당할 수 있음으로 해서 생기는 기입 성능면에서의 개선이다.
몇몇 이유로, 유효 가상 주소 범위의 전형적인 사이즈는 물리 주소 범위에 매핑된 사이즈 보다 약간 작다. 그 이유로는: (1) 가상 공간(11)은 불량 블록을 포함할 수 없고 따라서 가상 공간(11)은, 불량 블록이 물리 공간(13)에 있을 수 잇는 동안, 그 주소 범위로부터 불량 블록을 배제하도록 하기 위해 "스퀴즈"된다.
(2) US 제5,937,425호에 개시된 바와 같은, 일-대-다수 매핑을 지지하는 플래쉬 파일 시을 위해, 가상 공간(11)은 물리 공간(13)보다 작아야 한다.
종래 기술의 플래쉬 관리 시스템에서 가상 주소를 표현하는 데 필요한 비트의 수는 물리 주소를 표현하는 데 필요한 비트의 수와 같다. 예를들어 NAND 플래쉬 디바이스는 각각이 512 바이트의 32개 페이지(113)을 포함하는 1,024 물리 유닛으로 구성된다고 가정한다. (통상적으로 에러 보정 코드와 같은 시스템 정보를 저장하지만 사용자 데이터는 저장하지 않는 NAND 디바이스에서 "여분"의 바이트를 무시하고) 물리적 레벨에서 플래쉬 주소 범위는 제로 내지 16-1 메가바이트 범위이고, 전체 표현에 24비트를 필요로 한다. 유닛 주소만을 직접 매핑하는 US 제5,937,425호의 방법의 사용으로, 1,024 물리 유닛을 가지며 10비트를 필요로 한다. 가상 공간(11)이 24 유닛 만큼 더 작다고 가정하면, 각각이 512 바이트인 페이지를 각각 32 페이지를 포함하는 1,000 가상 유닛(121)을 얻는다. 전체 바이트 주소를 표현하기 위한 비트의 수는 다시 24이고, 가상 유닛을 표현하기 위한 비트의 수는 여전히 10이다. 가상 주소를 표현하기 위한 비트의 수를 가능한한 적게하는 것이 때때로 매우 바람직하다. 플래쉬 파일 시스템 및 소프트웨어 애플리케이션 모두는 테이블 및 다양한 데이터 구조에 주소를 유지하고 있고, 주소가 더 많은 비트를 필요로 할수록 더 많은 RAM 메모리를 소비한다.
따라서, 가상 주소지정을 위해 필요한 비트의 수를 감소시키는 플래쉬 파일 시스템에서 가상주소를 물리 주소로 변환하는 방법이 요구되고 또한 이 방법을 갖는 것이 매우 유익하게 될 것이다.
본 발명에 따라 호스트로부터 데이터를 액세스하기 위한 플래쉬 메모리를 위한 플래쉬 메모리 관리방법이 제공된다. 본 방법은 물리 주소로 주소지정가능한, 플래쉬 메모리의 물리 주소 공간을 제공하는 단계; 가상 주소로 주소지정가능한, 플래쉬 메모리의 가상 주소 공간을 제공하는 단계; 및 각각의 가상 주소를 액세스하기 위해 필요한 이진 비트의 수가 각각의 물리 주소를 액세스하기 위해 필요한 이진 비트의 수보다 작도록 가상 주소를 물리 주소로 매핑하는 단계를 포함한다.
본 발명에 따라, 호스트로부터 데이터를 액세스하기 위한 플래쉬 메모리를 위한 플래쉬 메모리 관리방법이 제공되고, 이 방법은 플래쉬 메모리의 물리 유닛을 제공하는 단계; 플래쉬 메모리의 가상 유닛을 제공하는 단계; 및, 각각의 가상 유닛을 주소지정하기 위해 필요한 이진 비트의 수가 각각의 물리 유닛을 주소지정하기 위해 필요한 이진 비트의 수보다 작도록 각각의 가상 유닛을 하나 이상의 물리 유닛으로 매핑하는 단계를 포함한다.
본 발명에 따라, 호스트로부터 데이터를 액세스하기 위한 플래쉬 메모리를 위한 플래쉬 메모리 관리 시스템이 제공되고, 이 시스템은 물리 주소 및 가상 주소로 액세스가능한 플래쉬 메모리; 및 가상 주소를 물리 주소로 매핑하는 매핑 매커니즘을 포함하고, 여기서 각각의 가상 주소를 액세스하기 위해 필요한 이진 비트의 수가 각각의 물리 주소를 액세스하기 위해 필요한 이진 비트의 수보다 작다.
본 발명에 따라, 호스트로부터 데이터를 액세스하기 위한 플래쉬 메모리를 위한 플래쉬 메모리 관리 시스템이 제공되고, 이 시스템은 플래쉬 메모리의 물리 및 가상 유닛; 및 가상 유닛을 물리 유닛으로 매핑하는 매핑 매커니즘을 포함하고, 여기서 가상 유닛의 각각을 주소지정하기 위해 필요한 이진 비트의 수가 물리 유닛의 각각을 주소지정하기 위해 필요한 이진 비트의 수보다 작다.
본 발명에 따라, 호스트로부터 데이터를 액세스하는데 있어서 플래쉬 메모리를 관리하는 방법이 제공된다. 이 방법은 물리 주소 공간을 통해 플래쉬 메모리를 주소지정하는 단계; 및 호스트로부터 물리 주소 공간 보다 작은 가상 주소 공간으로부터의 주소만 수신하는 단계를 포함하고, 여기서 가상 주소 공간의 주소는 물리 주소 공간의 물리 주소 보다 더 적은 비트를 갖는다.
본 발명에 따라, 플래쉬 메모리; 및 플래쉬 메모리를 액세스하는 데 있어서, 물리 주소 공간을 사용하여 플래쉬 메모리를 주소 지정하고, 메모리 디바이스를 주소지정하는 호스트로부터 가상 주소 공간으로부터의 주소만을 수신하는제어기를 포함하는 메모리 디바이스가 제공되고, 여기서 가상 주소 공간의 주소는 물리 주소 공간의 주소 보다 더 적은 이진 비트를 갖는다.
본 발명에 따라, 물리 플래쉬 메모리 유닛을 포함하는 플래쉬 메모리; 및 플래쉬 메모리를 액세스하는 데 있어서, 물리 유닛을 채용하는 물리 주소 공간으로부터의 주소를 사용하여 플래쉬 메모리를 주소지정하고, 메모리 디바이스를 주소지정하는 호스트로부터 가상 유닛을 채용하는 가상 주소 공간으로부터의 주소만을 수신하는 제어기를 포함하는 메모리 디바이스가 제공되고, 여기서 가상 메모리 유닛을 주소지정하는 것은 물리 메모리 유닛을 주소지정하기 위해 필요한 것 보다 더 적은 이진 비트를 필요로 한다.
도 1은 플래쉬 화일 시스템에서의 종래의 가상-물리 주소 변환(종래기술) 을 개략적으로 나타낸 도.
도 2는 본 발명의 실시예에 따라, 플래쉬 화일 시스템에서의 가상-물리 주소 변환을 개략적으로 나타낸 도.
본 발명은 가상 주소지정을 위해 필요한 비트의 수를 감소시키는 플래쉬 파일 시스템에서 가상 주소를 물리 주소로 매핑하는 방법이다.
본 발명에 따른 시스템 및 방법의 원리 및 동작은 첨부 도면 및 하기 설명으로부터 더욱 잘 이해될 것이다.
본 발명의 상세한 설명을 설명하기 이전에, 하기의 설명에 나타나거나 도면에 예시된 컴포넌트의 장치 및 디자인의 상세사항은 그 응용분야가 제한되지 않는 것으로 이해되어야 한다. 본 발명은 다른 실시형태로 될 수 있고 다양한 방식으로 실시 또는 수행될 수 있다. 또한, 본원에 채용된 어구 또는 용어는 설명을 위한 목적이며 본 발명을 제한하는 것으로 간주되어서는 안된다는 것이 이해되어져야 한다.
본원에 사용된 용어 "유닛" 및 "페이지"는 종래 기술에서 사용된것과 일관되도록 사용되지는 않는다. US 특허 제5,937,425호는 용어 "블록"을 본원에서의 용어"페이지" 대신 사용하고 기타 종래 기술의 시스템은 본원에서 사용된 "유닛"에 대해 용어 "블록"을 사용한다. 용어 "유닛"은 본원에서 소거될 수 있는 메모리의 가장 작은 덩어리로서 정의된다. 용어 "페이지"는 본원에서 기입될 수 있는 메모리의 가장 작은 덩어리로서 정의된다. 용어 "비트" 및 "이진 비트"는 본원에서 상호교환되어 사용된다.
여러 상이한 종래 기술 시스템은 "가상" 주소지정에 대해 상이한 용어를 사 용하고-일부는 "가상"을, 일부는 "논리"를 사용하고, 그밖의 시스템들은, 애플리케이션-레벨 주소와 디바이스-레벨 주소간에, 맨처음엔 "가상"에서 "논리"로 그후 "논리"에서 "물리"로 매핑하거나 혹은 그 반대로 매핑하는, 2-층 매핑을 구현하는, 동일 시스템에서 두 용어를 채용한다. 그러한 매핑은 모두 본발명의 적용가능 범위에 속한다. 본발명의 매핑은 물리 디바이스가 예로서, 물리주소와 같은 주소 공간을 사용하는 반면 디바이스를 사용하는 소프트웨어는 예로서, 가상주소와 같은 상이한 주소 공간을 알 것만을 필요로 한다. 주소 공간은 본원에서 데이터의 일정 편이 두 주소공간에서 상이한 주소를 가질 수 있다면 "상이"한 것으로 정의된다. 용어 "물리 공간" 및 "물리 주소 공간"은 본원에서 상호교환되어 사용된다. 용어 "가상 공간" 및 "가상 주소 공간"은 본원에서 상호교환되어 사용된다. 용어 "메모리:를 액세싱하는 것은 메모리를 "판독 또는 기입"하는 것을 일컫는다. 메모리를 주소지정하기 위해 필요한 "비트의 수"는 리딩 비트 예로서 00000001를 포함하도록 정의되고, 주소지정을 위해 여덟 비트를 필요로 한다.
본원에선 모든 물리적 플래쉬 디바이스가 매핑에 참여하지 않는 경우를 언급하는 것이 아님을 알아야 한다. 물리 디바이스의 일부분은 때때로 물리 주소에 의해 직접 액세스된 특정한 목적(부팅 또는 운영체제 코드 이미지)을 위해 남아있어야 함이 공지되어 있다. 디바이스의 나머지 부분만이 매핑에 참여하고 대응하는 가상 공간은 명백히 감소된다. 그러한 경우 본원에선, 마치 그것이 디바이스에 존재하는 부분만인 것처럼 단지 물리 주소부분에 매핑되는 것만을 의미한다.
본 발명은 물리 주소에서의 비트의 수에 비해 가상 주소의 비트의 수를 감소 시키는 주소 매핑이다. 예를들어 US 특허 제5,937,425호의 방법을 사용하고 펌웨어에서 플래쉬 파일 시스템을 구현하는 저비용 플래쉬 제어기를 고려한다. 매핑은 물리 유닛 번호에 의해 인덱싱된 변환 테이블을 사용하여 그리고 가상 유닛 번호를 저장하여 구현될 수 있다. 예로서, 상기한 디바이스에서, 테이블은 1,024 x 10=10,240 비트를 소모하게된다. 가상 주소가 9 비트 이상을 절대 필요로 하지 않음을 보장한다면, 소모된 메모리는 단지 1,024 x 9 = 9,216 비트가 될 것이다. 더욱이, 제어기의 펌웨어가 단일 비트를 할당할 수 없지만 전체 바이트를 할당한다면, 9비트주소로부터 8비트 주소로의 하강은, 각각의 테이블 엔트리가 2바이트로부터 일바이트로 감소함에 따라, 상당한 메모리 절약이 되어지게 한다. 따라서, 가상 주소로부터 물리 주소로의 매핑의 일부분으로서, 가상 주소를 표현하기 위해 필요한 비트의 수를 감소시키는 플래쉬 파일 시스템을 사용하는 상당한 이점이 있다.
본 발명의 모든 실시예에서 가상 주소의 비트 카운트를 감소시키는 플래쉬 파일 시스템은 사용가능한 저장 용량을 감소시키지만, 많은 경우에 고 용량을 필요로 하지 않으며 더 적은 디바이스의 이용불가능성으로 인해 더 큰 디바이스만이 사용된다. 또한, US특허 5,937,425호 유형의 플래쉬 파일 시스템은 가상 유닛(121)의 수가 물리상 유닛(111)의 수에 비해 더 적음에 따라 양호하게 수행되는 데 이는 일-대-다 가상-물리 유닛 할당이 존재하기 때문이고, 그러므로 평균 기입 성능은 더 효과적인 소거로 인해 개선된다. 따라서 가상 저장 공간의 손실을 정당화할 고려사항이 있고 그러므로 매핑에서 가상 주소 비트 공간을 감소시키는 본 발명은 유익하다.
현재 플래쉬 파일 시스템은 주소 매핑을 하면서 주소 비트의 수를 감소시킨다. 그 이유는 일반적인 사용에서 플래쉬 디바이스는 전형적으로 2의 정확한 거듭제곱인 물리 유닛의 수를 포함하는 사실과 밀접하게 관련되어 있다. 예를들어 1,024 유닛의 디바이스는 2의 십승(210)과 같은 유닛의 수를 갖는다. 결과적으로,가상 범위와 물리 범위간의 차이인, 수 퍼센트만큼 가상 주소 범위를 감소시키는 것은, 하위-비트-카운트 주소 범위로의 "경계를 넘기"엔 불충분하다.
그러나, 플래쉬 디바이스가 2의 거듭제곱 사이즈를 갖는 것은 강제적인 것은 아니다. 물리 유닛(111)의 수가 600 또는 700과 같은 2의 거듭제곱이 아닌, 플래쉬 디바이스를 구축하는 데에 전혀 물리적 장애가 없다. 2의 거듭제곱 보다 약간 큰 물리 유닛(111)의 수를 갖는 이점은 불량 블록과 관련있다. 플래쉬 제조자들은 디바이스 테스팅 동안 불량 블록의 검출을 예상하는, 플래쉬 실리콘 다이에서 몇몇 예비 블록을 포함한다. 테스팅에 뒤이어, 검출된 불량 블록이 양호한 블록에 의해 대체되는 교체 스테이지가 있고, 따라서 디바이스는 더 적은 수 바람직하게는 제로 불량 블록으로 선적될 수 있다. 이 방법의 단점은 교체를 위해 필요한 임의의 양호한 여유 블록이 사용자에게 손실된다는 것이다.
도 2를 참조하면, 본 발명의 실시예에 따른 가상-물리 메모리 매핑(20)에 대한 개략 표현이 도시되어 있다. 도 2는 가상 공간(21)을 물리 공간(23)에 매핑하는 메모리 매핑을 도시한다.
메모리 매핑(20)은 플래쉬 메모리 제어기(207)를 갖춘 호스트(205)에 의해 본 발명에 따라 메모리 관리 동안 달성된다.
물리 공간(23)은 2의 거듭제곱인 다수의 "정상" 유닛(201)을 제공하고, 정상" 유닛을 바로 뒤따르는 주소를 갖춘 추가 유닛으로서 여유 유닛(203)을 제공한다. 플래쉬 디바이스는 그러면 예로서, 0.5%만큼인, 2의 거듭제곱 보다 약간 큰, 정상 유닛(201)에 여유 유닛(203)을 더한, 전체 유닛의 수를 갖는다. 플래쉬 파일 시스템은 가상 공간(21)에서 다수의 유닛(121)을 희생시킴이 없이 본 발명에 따라, 가상 공간(21)에서 주소 비트의 수를 감소시킨다. 예를들어, 플래쉬 디바이스가 여분의 10개 여유 유닛(203)을 제공한다면, 물리 공간(23)은, 11 주소 비트를 필요로 하는, 제로 내지 1,024 + 10 - 1 = 1,033까지의 번호로 된, 정상 유닛(201)에 여유 유닛(203)을 더한, 유닛을 포함한다. 본 발명에 따른 개선된 플래쉬 파일 시스템은, 물리 주소 범위와 가상 주소 범위간의 사이즈의 차이를 비교적 적게 유지하면서, 단지 10 비트를 필요로 하는, 제로 내지 1,099 까지 번호가 매겨진 가상 유닛(121)에 대한 가상 공간을 감소시킨다.
그러므로 상기 설명들은 단지 본 발명의 원리를 예시하는 것으로 고려된다. 더욱이, 다양한 수정 및 변경이 당업자에게 용이하게 행해질 수 있으므로, 설명되고 도시된 디자인 및 동작에 대해 본 발명을 제한하는 것은 바람직하지 않으며, 따라서 모든 적절한 수정 및 등가물이 본 발명의 범위에 속하게 된다.
따라서, 당업자는 본원의 개실물을 기초로 하여, 본 발명의 여러 목적을 수행하는 기타 방법 및 시스템을 설계함에 있어서 기본으로서 용이하게 이용될 수 있음을 인식할 것이다. 그러므로 청구범위는 그러한 등가 구성등이 본 발명의 정신 및 범위에서 벗어나지 않는 한 포함하는 것으로 간주되는 것이 중요하다.
본 발명이 제한된 수의 실시예에 대해 설명되었을 지라도, 본 발명의 다양한 변형, 수정 및 기타 응용이 행해질 수 있음이 인식될 것이다.

Claims (7)

  1. 호스트로부터 데이터를 액세싱하기 위한 플래쉬 메모리를 위한 플래쉬 메모리 관리 방법에 있어서, 상기 방법은;
    (a) 복수의 물리 주소로 주소지정가능한, 플래쉬 메모리의 물리 주소 공간을 제공하는 단계;
    (b) 복수의 가상 주소로 주소지정가능한, 플래쉬 메모리의 가상 주소 공간을 제공하는 단계; 및
    (c) 상기 가상 주소를 상기 물리 주소로 매핑하는 단계를 포함하고, 상기 가상 주소의 각각을 액세스하기 위해 필요한 이진 비트의 수가 상기 물리 주소의 각각을 액세스하기 위해 필요한 이진 비트의 수보다 작은 것을 특징으로 하는 플래쉬 메모리 관리 방법.
  2. 호스트로부터 데이터를 액세싱하기 위한 플래쉬 메모리를 위한 플래쉬 메모리 관리 방법에 있어서, 상기 방법은;
    (a) 플래쉬 메모리의 복수의 물리 유닛을 제공하는 단계;
    (b) 플래쉬 메모리의 복수의 가상 유닛을 제공하는 단계; 및,
    (c) 상기 가상 유닛의 각각을 하나 이상의 물리 유닛으로 매핑하는 단계를 포함하고, 상기 가상 유닛의 각각을 주소지정하기 위해 필요한 이진 비트의 수가 상기 물리 유닛의 각각을 주소지정하기 위해 필요한 이진 비트의 수보다 적은 것을 특징으로 하는 플래쉬 메모리 관리 방법.
  3. 호스트로부터 데이터를 액세싱하기 위한 플래쉬 메모리를 위한 플래쉬 메모리 관리 시스템에 있어서, 상기 시스템은;
    (a) 복수의 물리 주소로 주소지정가능한, 플래쉬 메모리;
    (b) 복수의 가상 주소; 및
    (c) 상기 가상 주소를 물리 주소로 매핑하는 매핑 매커니즘을 포함하고, 상기 가상 주소의 각각을 액세스하기 위해 필요한 이진 비트의 수가 상기 물리 주소의 각각을 액세스하기 위해 필요한 이진 비트의 수보다 적은 것을 특징으로 하는 플래쉬 메모리 관리 시스템.
  4. 호스트로부터 데이터를 액세싱하기 위한 플래쉬 메모리를 위한 플래쉬 메모리 관리 시스템에 있어서, 상기 시스템은;
    (a) 플래쉬 메모리의 복수의 물리 유닛;
    (b) 복수의 가상 유닛; 및
    (c) 상기 가상 유닛을 물리 물리 유닛으로 매핑하는 매핑 매커니즘을 포함하고, 상기 가상 유닛의 각각을 주소지정하기 위해 필요한 이진 비트의 수가 상기 물리 유닛의 각각을 주소지정하기 위해 필요한 이진 비트의 수보다 적은 것을 특징으로 하는 플래쉬 메모리 관리 시스템.
  5. 호스트로부터 플래쉬 메모리를 액세스하는 데 있어, 플래쉬 메모리를 관리하는 방법에 있어서,
    (a) 물리 주소 공간을 통해 플래쉬 메모리를 주소지정하는 단계; 및
    (b) 상기 호스트로부터, 상기 물리 주소 공간 보다 작은 가상 주소 공간으로부터의 주소만 수신하는 단계를 포함하고,
    상기 가상 주소 공간의 주소는 상기 물리 주소 공간의 물리 주소 보다 더 적은 비트를 갖는 것을 특징으로 하는 플래쉬 메모리 관리 방법.
  6. 메모리 디바이스로서,
    (a) 플래쉬 메모리; 및
    (b) 상기 플래쉬 메모리를 액세싱함에 있어, 물리 주소 공간을 사용하여 상기 플래쉬 메모리를 주소지정하고, 메모리 디바이스를 주소지정하는 호스트로부터가상주소 공간으로부터의 주소만을 수신하는 제어기를 포함하고,
    상기 가상 주소 공간의 주소는 상기 물리 주소 공간의 주소 보다 더 적은 이진 비트를 갖는 것을 특징으로 하는 메모리 디바이스.
  7. 플래쉬 메모리 디바이스로서,
    (a) 복수의 플래쉬 메모리 유닛을 포함하는 플래쉬 메모리; 및
    (b) 상기 플래쉬 메모리를 액세싱함에 있어, 물리 유닛을 채용하는 물리 주소 공간으로부터의 주소를 사용하여 상기 플래쉬 메모리를 주소지정하고, 메모리 디바이스를 주소지정하는 호스트로부터 가상 유닛을 채용하는 가상주소 공간으로부터의 주소만을 수신하는 제어기를 포함하고,
    상기 가상 메모리 유닛을 주소지정하는 것은 상기 물리 메모리 유닛을 주소지정하는 데에 필요한 것보다 더 적은 이진 비트를 필요로 하는 것을 특징으로 하는 플래쉬 메모리 디바이스.
KR1020077003815A 2004-07-30 2005-07-18 플래시 파일 시스템에서 가상-물리 주소 변환 방법 및 시스템 KR100946286B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US59216204P 2004-07-30 2004-07-30
US60/592,162 2004-07-30
US11/025,982 US7386700B2 (en) 2004-07-30 2005-01-03 Virtual-to-physical address translation in a flash file system
US11/025,982 2005-01-03

Publications (2)

Publication Number Publication Date
KR20070046864A true KR20070046864A (ko) 2007-05-03
KR100946286B1 KR100946286B1 (ko) 2010-03-08

Family

ID=35733728

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077003815A KR100946286B1 (ko) 2004-07-30 2005-07-18 플래시 파일 시스템에서 가상-물리 주소 변환 방법 및 시스템

Country Status (7)

Country Link
US (1) US7386700B2 (ko)
EP (1) EP1779246A4 (ko)
JP (1) JP5089385B2 (ko)
KR (1) KR100946286B1 (ko)
CN (1) CN101288054B (ko)
HK (1) HK1122620A1 (ko)
WO (1) WO2006011131A2 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005121959A2 (en) * 2004-06-08 2005-12-22 Dartdevices Corporation Architecture, apparatus and method for device team recruitment and content renditioning for universal device interoperability platform
US7634494B2 (en) * 2005-05-03 2009-12-15 Intel Corporation Flash memory directory virtualization
US8151082B2 (en) * 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
CN101681282A (zh) 2006-12-06 2010-03-24 弗森多系统公司(dba弗森-艾奥) 用于共享的、前端、分布式raid的装置、系统和方法
US8161353B2 (en) 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
US8219749B2 (en) * 2007-04-27 2012-07-10 Netapp, Inc. System and method for efficient updates of sequential block storage
KR101473344B1 (ko) * 2007-08-24 2014-12-17 삼성전자 주식회사 플래시 메모리를 스토리지로 사용하는 장치 및 그 동작방법
US8301912B2 (en) 2007-12-31 2012-10-30 Sandisk Technologies Inc. System, method and memory device providing data scrambling compatible with on-chip copy operation
US20090282267A1 (en) * 2008-05-09 2009-11-12 Ori Stern Partial scrambling to reduce correlation
CN101676882B (zh) * 2008-09-16 2013-01-16 美光科技公司 存储器装置的内嵌映射信息
US8612718B2 (en) * 2009-08-19 2013-12-17 Seagate Technology Llc Mapping alignment
US8688894B2 (en) * 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
CN102754086B (zh) * 2009-09-25 2015-09-16 凯姆莱西甘地 页面大小可变的虚拟内存系统
US8171253B2 (en) * 2009-10-30 2012-05-01 Brocade Communications Systems, Inc. Virtual disk mapping
US9170929B2 (en) * 2011-01-31 2015-10-27 Mitsubishi Electric Corporation Memory controller
CN102736981B (zh) * 2011-04-08 2016-02-03 航天信息股份有限公司 提高nor flash擦写寿命的方法
US9323662B2 (en) 2012-12-31 2016-04-26 SanDisk Technologies, Inc. Flash memory using virtual physical addresses
CN103914409B (zh) * 2013-01-06 2017-05-10 北京忆恒创源科技有限公司 用于具有多处理器的存储设备的方法
WO2015047266A1 (en) 2013-09-26 2015-04-02 Intel Corporation Block storage apertures to persistent memory
CN105808453B (zh) * 2014-12-31 2018-09-28 晨星半导体股份有限公司 嵌入式装置及其存储器管理方法
CN104598170B (zh) 2015-01-30 2017-12-05 华为技术有限公司 确定读写路径的方法和装置
CN106294187B (zh) * 2015-05-15 2019-11-08 比亚迪股份有限公司 位存取操作功能的控制方法及装置
TWI571740B (zh) * 2016-03-18 2017-02-21 華邦電子股份有限公司 記憶體裝置及記憶體區塊使用方法
US10452561B2 (en) 2016-08-08 2019-10-22 Raytheon Company Central processing unit architecture and methods for high availability systems
CN111414248B (zh) * 2019-01-04 2023-03-21 阿里巴巴集团控股有限公司 内存管理方法、装置及计算设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3854126A (en) 1972-10-10 1974-12-10 Digital Equipment Corp Circuit for converting virtual addresses into physical addresses
US4774652A (en) * 1987-02-18 1988-09-27 Apple Computer, Inc. Memory mapping unit for decoding address signals
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5943692A (en) 1997-04-30 1999-08-24 International Business Machines Corporation Mobile client computer system with flash memory management utilizing a virtual address map and variable length data
US5937425A (en) * 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
KR100305679B1 (ko) * 1999-02-24 2001-09-26 윤종용 반도체 메모리 장치의 테스터의 테스터 방법 및 그 장치
KR100703680B1 (ko) * 1999-10-14 2007-04-05 삼성전자주식회사 플래시 파일 시스템
JP2001256793A (ja) * 2000-03-09 2001-09-21 Toshiba Corp 半導体集積回路装置
US6510488B2 (en) * 2001-02-05 2003-01-21 M-Systems Flash Disk Pioneers Ltd. Method for fast wake-up of a flash memory system
US6591330B2 (en) * 2001-06-18 2003-07-08 M-Systems Flash Disk Pioneers Ltd. System and method for flexible flash file
US6625081B2 (en) * 2001-08-13 2003-09-23 Micron Technology, Inc. Synchronous flash memory with virtual segment architecture
KR100449708B1 (ko) * 2001-11-16 2004-09-22 삼성전자주식회사 플래시 메모리 관리방법
US6807610B2 (en) * 2002-11-01 2004-10-19 Silicon Storage Technology, Inc. Method and apparatus for virtually partitioning an integrated multilevel nonvolatile memory circuit
FI117489B (fi) * 2003-02-07 2006-10-31 Nokia Corp Menetelmä muistikortin osoittamiseksi, muistikorttia käyttävä järjestelmä, ja muistikortti
US8041878B2 (en) * 2003-03-19 2011-10-18 Samsung Electronics Co., Ltd. Flash file system

Also Published As

Publication number Publication date
JP5089385B2 (ja) 2012-12-05
CN101288054B (zh) 2012-04-18
HK1122620A1 (en) 2009-05-22
KR100946286B1 (ko) 2010-03-08
EP1779246A4 (en) 2008-11-05
WO2006011131A3 (en) 2007-02-15
WO2006011131A2 (en) 2006-02-02
CN101288054A (zh) 2008-10-15
EP1779246A2 (en) 2007-05-02
US7386700B2 (en) 2008-06-10
JP2008508589A (ja) 2008-03-21
US20060026341A1 (en) 2006-02-02

Similar Documents

Publication Publication Date Title
KR100946286B1 (ko) 플래시 파일 시스템에서 가상-물리 주소 변환 방법 및 시스템
US7426623B2 (en) System and method for configuring flash memory partitions as super-units
JP5728672B2 (ja) ハイブリッドメモリ管理
US8332576B2 (en) Data reading method for flash memory and controller and storage system using the same
EP1891529B1 (en) Flash memory with programmable endurance
US8904092B2 (en) Identifying a location containing invalid data in a storage media
KR100441587B1 (ko) 블록 얼라인먼트 기능을 갖는 반도체 기억 장치
US8645613B2 (en) Data writing method for flash memory and control circuit and storage system using the same
US8312204B2 (en) System and method for wear leveling in a data storage device
JP5823875B2 (ja) 固体メモリフォーマッティング
US7389397B2 (en) Method of storing control information in a large-page flash memory device
US9785384B2 (en) Semiconductor storage device and method for controlling nonvolatile semiconductor memory
US20130275655A1 (en) Memory management method and memory controller and memory storage device using the same
US11513949B2 (en) Storage device, and control method and recording medium thereof
US8037236B2 (en) Flash memory writing method and storage system and controller using the same
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
KR100845552B1 (ko) Ftl의 어드레스 매핑 방법
JP2007334413A (ja) 記憶装置
US9778862B2 (en) Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus
CN110162493B (zh) 存储器管理方法及使用所述方法的储存控制器
TWI808011B (zh) 資料處理方法及對應之資料儲存裝置
TWI808010B (zh) 資料處理方法及對應之資料儲存裝置
TW202414223A (zh) 資料處理方法及對應之資料儲存裝置
TW202414217A (zh) 資料處理方法及對應之資料儲存裝置
TW202414222A (zh) 資料處理方法及對應之資料儲存裝置

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: 20130201

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140204

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150130

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160127

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170201

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180201

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190129

Year of fee payment: 10