KR20080033649A - 머지 빈도를 줄일 수 있는 플래쉬 메모리 시스템 및 그관리 방법 - Google Patents
머지 빈도를 줄일 수 있는 플래쉬 메모리 시스템 및 그관리 방법 Download PDFInfo
- Publication number
- KR20080033649A KR20080033649A KR1020060099415A KR20060099415A KR20080033649A KR 20080033649 A KR20080033649 A KR 20080033649A KR 1020060099415 A KR1020060099415 A KR 1020060099415A KR 20060099415 A KR20060099415 A KR 20060099415A KR 20080033649 A KR20080033649 A KR 20080033649A
- Authority
- KR
- South Korea
- Prior art keywords
- flash memory
- flag
- host
- data
- updated
- Prior art date
Links
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
플래쉬 메모리 시스템은 호스트, 플래쉬 메모리 및 플래쉬 메모리 컨트롤러를 포함한다. 상기 호스트는 업데이트된 데이터를 출력하고, 특정 데이터가 다른 데이터에 비해 상대적으로 자주 업데이트된다고 판단되면 상기 특정 데이터가 자주 업데이트됨을 나타내는 플래그를 생성하여 출력한다. 상기 플래쉬 메모리 컨트롤러는 상기 호스트로부터 상기 데이터 및 플래그를 수신하고, 상기 플래쉬 메모리의 일부를 제1 로그 블록 및 머지 동작이 상기 제1 로그 블록에 비해 상대적으로 적게 수행되는 제2 로그 블록으로 구획하며, 상기 플래그에 따라 상기 수신된 데이터를 상기 제1 로그 블록 또는 제2 로그 블록에 할당한다.
Description
도 1은 종래의 파일 시스템 인식 기능을 가진 플래쉬 메모리 장치에서 머지 동작을 억제하는 방법을 설명하기 위한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 플래쉬 메모리 시스템을 예시한 블록도이다.
도 3a, 3b 및 3c는 본 발명의 일 실시예에 따른 플래쉬 메모리 시스템을 플래그의 전송 방법에 따라 예시한 블록도이다.
도 4는 본 발명의 일 실시예에 따른 플래쉬 메모리 관리 방법을 예시한 순서도이다.
<도면의 주요 부분에 대한 부호의 설명>
20, 30a, 30b, 30c : 플래쉬 메모리 시스템
21, 31 : 호스트
22, 32 : 플래쉬 메모리 장치
221, 321 : 플래쉬 컨트롤러
222, 322 : 플래쉬 메모리
본 발명은 플래쉬 메모리 장치에 관한 것으로, 더욱 상세하게는 플래쉬 변환 레이어를 이용하는 플래쉬 메모리 장치에 관한 것이다.
플래쉬 메모리는 저전력, 비휘발성, 물리적 안정성 등의 특징을 가지며, 반도체 공정이 발전함에 따라 용량이 점점 커지는 반면 가격은 점점 낮아지고 있다. 지금까지 대용량 저장장치로 널리 사용되던 디스크 저장매체는 비용면에서 가장 효과적인 대용량 저장장치이지만, 충격에 취약하고 모터와 암(arm) 등 움직이는 기계 파트가 있어 물리적 안정성이 낮고 그러한 기계 파트를 위한 정교한 컨트롤러가 필요하며 소형화에 한계가 있고, 데이터의 신뢰성이 비교적 떨어진다. 플래쉬 메모리는 움직이거나 마모되는 부분이 없어 물리적 충격에 강하고 컨트롤러가 간단하며 갈수록 소형화되고 있기 때문에 이러한 디스크 저장 매체를 대체할 유력한 매체가 되고 있다. 이를 위해 플래쉬 메모리에 최적화된 파일 관리 기법들도 개발되고 있지만, 종래의 시스템의 파일 관리 기법의 설계 변경없이 종래의 디스크 저장매체 대신 플래쉬 메모리가 사용될 수 있도록 플래쉬 메모리의 컨트롤러를 설계하는 것이 더 좋은 접근 방법일 것이다.
종래의 디스크 저장매체는 섹터(sector) 단위로 읽고 쓰이는데, 대부분의 플래쉬 메모리는 섹터 단위로 읽을 수 있고, 초기화된 빈 섹터라면 섹터 단위로 쓸 수도 있다. 그러나, 디스크 저장매체는 직접 덮어쓰기(overwrite)를 할 수 있는 반 면, 플래쉬 메모리는 그 물리적인 구조적 제약 때문에 바로 덮어쓰는 동작이 어렵다. 플래쉬 메모리는 덮어쓰기 동작 시에 먼저 페이지 또는 블록 전체를 소거(erase)한 후에 새로운 데이터로 업데이트된 페이지 또는 블록 전체를 새로 프로그램해야 한다. 한편, 소거 동작은 읽기 동작이나 쓰기 동작에 비해 상대적으로 매우 긴 시간을 필요로 하는데, 각 동작마다 걸리는 시간이 큰 차이가 있는 것은 디스크 저장매체를 대체하는 데에 큰 걸림돌이다. 이에 따라, 디스크 저장매체를 사용하듯이 플래쉬 메모리를 섹터 단위로 사용하기 위해, 호스트(플래쉬 메모리를 저장매체로 이용하는 시스템)와 플래쉬 메모리를 중계할 수 있는 플래쉬 변환 계층(flash translation layer, FTL)이 도입되었다.
FTL은 플래쉬 메모리에 대해 섹터 단위로 데이터를 입출력할 수 있도록 하고, 내부적으로는 동작마다 큰 시간차가 있지만 외부적으로 그러한 점들이 드러나지 않도록 관리한다. 플래쉬 메모리의 소거 동작은 한 블록당 10만회 정도의 제한적인 회수만 가능하기 때문에, 소거 동작 자체가 최소화되도록 관리되어야 할뿐 아니라, 어느 특정 블록에서 반복적으로 소거 동작이 일어나지 않도록 관리되여야 한다. 따라서, 어떤 블록의 일부 데이터를 업데이트해야 할 때에, 그 블록을 소거하고 재기록하는 것보다는 비어있는 다른 블록에 업데이트된 데이터를 기록하는 것이 동작 속도나 수명 관리 측면에서 훨씬 유리하다.
FTL는 매핑 기법(mapping method)을 이용하여, 호스트가 논리적으로 참조하는 블록, 페이지 또는 섹터의 어드레스를 실제로 플래쉬 메모리 내부에서 물리적으로 접근되는 블록, 페이지 또는 섹터의 어드레스에 매핑한다. FTL이 사용하는 매핑 기법에는 블록 매핑, 페이지 매핑, 섹터 매핑 및 로그 매핑 등이 있다. 이러한 FTL을 이용하는 플래쉬 메모리에서는 업데이트 전의 블록과 업데이트 후의 블록이 물리적으로는 서로 다르고 연속적이지 않을 수 있는 물리적 어드레스를 가지지만, 논리적으로는 같거나 연속적인 논리적 어드레스 공간을 가질 수 있다. 이런 상황에서 업데이트가 반복되면 일부만 서로 다른 유사한 블록들이 많이 생성될 수 있다. 플래쉬 메모리는 이러한 저장 공간 활용의 비효율성 또는 물리적 어드레스의 비연속성이 어느 한계에 다다르면 물리적으로 상이한 위치에 비연속적으로 분산되어 있는 데이터를 어떤 동일한 어드레스 공간, 예를 들어 어떤 한 빈 블록에 정리하여 모으는 작업이 필요하며, 이러한 과정을 머지(merge) 동작이라 한다.
블록 매핑에서는 블록 전체가 업데이트되기 때문에 업데이트될 때마다 머지 동작이 이뤄진다. 페이지 매핑 또는 섹터 매핑에서는 어느 블록에 빈 페이지(또는 섹터)가 더 이상 남아있지 않을 때에 머지 동작이 이뤄진다.
로그 매핑 기법은 블록들을 데이터 블록과 로그 블록으로 구분한다. 각 구분된 블록들은 FTL에 의해 소정의 규칙에 따라 지정된다. 쓰기(프로그램) 동작은 데이터 블록 내에서 수행된다. 덮어쓰기 동작이 요구되면, FTL은 그 데이터 블록에 미리 연계해 놓은 로그 블록의 빈 공간에 덮어쓸 데이터를 순차적으로 프로그램하고, 기존의 데이터를 무효 데이터로 지정한다. 로그 블록에 빈 공간이 더 이상 없을 때에는 다른 빈 로그 블록에 대해 머지 동작이 수행되고, 머지시킨 로그 블록은 데이터 블록으로 지정된다. 종전의 로그 블록은 소거되고 FTL에 의해 로그 블록 또는 데이터 블록으로 지정될 수도 있다. 로그 매핑 기법의 세부 동작은 미리 설정된 FTL의 매핑 정책에 따라 조금씩 차이가 있을 수 있으나, 일반적으로 업데이트 빈도가 높을수록, 그리고 예측하지 못한 전원 차단 등에 대비하기 위해 기록 단위를 줄일수록 머지 동작은 자주 발생하게 된다.
머지 동작은 FTL이 필요에 따라 자체적으로 수행하며, 호스트는 플래쉬 메모리 내부에서 어떤 동작이 수행되고 있는지를 인식하지 않는다. 일반적으로 호스트는 플래쉬 메모리와 같은 외부 대용량 저장장치에 어떤 명령을 출력하고 소정의 시간 내에 응답이 올 것이라 기대한다. 만약 상기 소정의 시간 내에 플래쉬 메모리로부터 소정의 응답이 없으면 호스트는 외부 저장 장치와의 연결을 초기화하는 등의 동작을 취하며, 이를 타임아웃이라 한다. 플래쉬 메모리에서 머지 동작이 수행되는 동안에도 호스트는 그러한 사정을 알지 못하고 플래쉬 메모리로부터 응답이 오기를 기다리게 되므로 전체적인 성능이 저하될 수 있다.
호스트는 파일 시스템을 사용할 수도 있고, 사용하지 않을 수도 있다. 호스트가 파일 시스템을 사용할 경우에는, 일반적으로 파일의 내용에 해당하는 유저 데이터가 쓰기 또는 업데이트될 때에 또는 그 전후에 그 파일 자체의 속성을 담은 작은 크기의 메타 데이터도 업데이트된다. 심지어 파일의 컨텐츠는 업데이트되지 않더라도 그 파일이 자주 참조되는 것만으로도 그 파일의 메타 데이터가 잦은 빈도로 업데이트될 수 있다. 따라서, 작은 크기의 유저 데이터가 자주 업데이트되는 로그 블록이나, 메타 데이터를 저장하는 로그 블록에서 머지 동작이 빈번하게 일어날 수 있다.
호스트가 파일 시스템을 사용하지 않더라도 어플리케이션에서 플래쉬 메모리 의 동일한 어드레스에 데이터를 주기적으로 업데이트하는 경우나 갑작스런 전원 차단을 대비하기 위해 데이터를 작은 단위로 쓰거나 업데이트하는 등의 경우에 머지 동작이 빈번하게 일어날 수 있다.
도 1은 종래의 파일 시스템 인식 기능을 가진 플래쉬 메모리 장치에서 머지 동작을 억제하는 방법을 설명하기 위한 개념도이다.
도 1을 참조하면, 플래쉬 메모리 시스템(10)에서 플래쉬 메모리 장치(12)는 머지 동작(merge)의 빈도를 줄이기 위해, 호스트(11)가 파일 시스템(file system)을 이용하는지 여부를 판단하는 인식 기능을 갖추고 있다. 예를 들어, 호스트(11)가 FAT(file allocation table)과 같은 파일 시스템을 이용하는 경우에, FAT 데이터는 끊임없이 자주 업데이트되기 때문에 머지 동작이 자주 일어나게 하는 주요 원인이다. FAT 인식 기능(FAT awareness)을 가진 플래쉬 메모리 장치(12)는 인가되는 데이터가 FAT 데이터인지 여부를 먼저 판단하고, FAT 데이터로 인식되면 그 데이터를 FAT 데이터 로그 블록에 따로 저장한다. FAT 데이터 로그 블록은 다른 로그 블록보다 머지 동작이 자주 일어나지 않도록 FTL에 의해 관리되는 블록이다. 이렇게 FAT 데이터를 인식하고 별도로 관리하는 방식을 FAT 인식 방식이라고 한다.
FAT 인식을 위한 알고리즘은 플래쉬 메모리 장치(12)의 플래쉬 컨트롤러(121)에 탑재되는데, 플래쉬 컨트롤러(121)의 제한된 성능이나 용량을 고려하면 상기 알고리즘을 충분히 정교하게 만들기가 쉽지 않다. 또한 FAT 인식 방식은 FAT 데이터가 아닌 유저 데이터가 자주 업데이트되는 경우에 대해서는 효과가 없다. 호스트(11)가 파일 시스템을 사용하지 않거나, 또는 예상과 다른 파일 시스템을 이용 하는 경우에는 머지 동작을 전혀 줄일 수 없고, 그럼에도 인가되는 데이터가 FAT 데이터인지 판단하지 않을 수는 없으므로 플래쉬 컨트롤러(121)의 작업량은 늘어난 결과가 된다. 또한, 호스트(11)는 플래쉬 메모리 장치(12)가 FAT을 인식하는지 여부에 상관없이 플래쉬 메모리 장치(12)에 데이터를 출력하기 때문에 전체적으로는 기대만큼의 효과를 얻기 어렵다.
본 발명의 목적은 플래쉬 메모리 장치를 저장장치로 사용할 경우 머지 동작의 빈도를 줄일 수 있는 플래쉬 메모리 시스템을 제공하는 것이다.
본 발명의 다른 목적은 플래쉬 메모리 장치를 저장장치로 사용하는 시스템에서 머지 동작의 빈도를 줄이는 플래쉬 메모리 관리 방법을 제공하는 것이다.
본 발명의 일 실시예에 따른 플래쉬 메모리 시스템은 호스트, 플래쉬 메모리 및 플래쉬 메모리 컨트롤러를 포함한다. 상기 호스트는 업데이트된 데이터를 출력하고, 특정 데이터가 다른 데이터에 비해 상대적으로 자주 업데이트된다고 판단되면 상기 특정 데이터가 자주 업데이트됨을 나타내는 플래그를 생성하여 출력한다. 상기 플래쉬 메모리 컨트롤러는 상기 호스트로부터 상기 데이터 및 플래그를 수신하고, 상기 플래쉬 메모리의 일부를 제1 로그 블록 및 머지 동작이 상기 제1 로그 블록에 비해 상대적으로 적게 수행되는 제2 로그 블록으로 구획하며, 상기 플래그에 따라 상기 수신된 데이터를 상기 제1 로그 블록 또는 제2 로그 블록에 할당한다.
이때, 상기 호스트는 소정의 프로토콜을 통해 상기 플래그를 상기 플래쉬 메모리 컨트롤러로 전송하도록 구성될 수 있다. 실시예에 따라, 상기 프로토콜은 커맨드 내의 유보 비트에 상기 플래그를 할당하거나, 플래그를 전송하는 벤더 커맨드를 이용하는 규격을 가질 수 있다.
실시예에 따라, 상기 호스트는 다목적 입출력 포트를 통해 상기 플래그를 상기 플래쉬 메모리 컨트롤러로 전송하도록 구성될 수 있다.
실시예에 따라, 상기 호스트는 파일 시스템을 탑재할 수 있고, 이 경우 상기 파일 시스템이 이용하는 메타 데이터에 대해서 상기 플래그를 설정할 수 있다.
실시예에 따라 상기 호스트는 파일 시스템을 사용하지 않을 수 있고, 이 경우 동일한 주소에 주기적으로 업데이트되는 데이터에 대해 상기 플래그를 설정할 수 있다.
실시예에 따라, 상기 플래쉬 컨트롤러는 상기 플래쉬 메모리의 일부를 동적으로 상기 제1 및 제2 로그 블록으로 구획할 수 있다.
본 발명의 다른 실시예에 따른 플래쉬 메모리, 플래쉬 컨트롤러 및 호스트로 이뤄진 플래쉬 메모리 시스템의 플래쉬 메모리 관리 방법은 상기 호스트에서 업데이트된 데이터를 생성하는 단계; 상기 호스트에서 특정 데이터가 다른 데이터에 비해 상대적으로 자주 업데이트된다고 판단되면 상기 특정 데이터가 자주 업데이트됨을 나타내는 플래그를 생성하는 단계; 상기 호스트에서 상기 업데이트된 데이터 및 플래그를 상기 플래쉬 컨트롤러에 전송하는 단계; 상기 플래쉬 컨트롤러에서 상기 플래쉬 메모리의 일부를 제1 로그 블록 및 머지 동작이 상기 제1 로그 블록에 비해 상대적으로 적게 수행되는 제2 로그 블록으로 구획하는 단계; 및 상기 플래쉬 컨트롤러에서 상기 플래그에 따라 상기 업데이트된 데이터를 상기 제1 로그 블록 또는 제2 로그 블록에 할당하는 단계를 포함한다.
실시예에 따라, 상기 호스트에서 상기 업데이트된 데이터 및 플래그를 플래쉬 컨트롤러에 전송하는 단계는 커맨드 내의 유보 비트 공간에 상기 플래그를 할당할 수도 있고, 벤더 커맨드(vendor command)를 이용하여 상기 플래그를 상기 플래쉬 메모리 컨트롤러에 전송할 수도 있다.
실시예에 따라, 상기 플래그는 다목적 입출력 포트를 통해 상기 플래그를 상기 플래쉬 메모리 컨트롤러로 전송될 수도 있다.
실시예에 따라, 상기 호스트는 파일 시스템을 탑재할 수 있는데, 이 경우 상기 호스트에서 플래그를 생성하는 단계는 상기 파일 시스템이 이용하는 메타 데이터에 대해서 상기 플래그를 생성하는 단계를 포함할 수 있다.
실시예에 따라, 상기 호스트는 파일 시스템을 사용하지 않을 수도 있는데, 이 경우, 상기 호스트에서 플래그를 생성하는 단계는 동일한 주소에 주기적으로 업데이트되는 데이터에 대해 상기 플래그를 설정하는 단계를 포함할 수 있다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 구성요소에 대해 사용하였다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지 다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 2는 본 발명의 일 실시예에 따른 플래쉬 메모리 시스템을 예시한 블록도이다. 도 2를 참조하면, 플래쉬 메모리 시스템(20)은 호스트(21)와 플래쉬 메모리 장치(22)로 구성된다. 상기 호스트(21)는 사용자 응용 프로그램(user application)과 호스트 드라이버(host driver)를 탑재하며, 상기 플래쉬 메모리 장치(22)는 플래쉬 메모리(222)와 이를 관리하는 플래쉬 컨트롤러(221)를 포함한다.
상기 호스트(21)는 플래쉬 메모리 장치(22)를 대용량 저장장치로 이용하기는 장치로서, 예를 들어 개인용 컴퓨터, 디지털 카메라, PDA, 휴대용 미디어 재생장치 등을 말한다. 상기 호스트(21)는 사용자 응용 프로그램과 호스트 드라이버를 실행할 수 있다. 상기 사용자 응용 프로그램은 사용자가 지시하는 특정 기능을 수행하며, 상기 호스트 드라이버는 상기 사용자 응용 프로그램이 플래쉬 메모리 장치(22)에 어떤 데이터를 쓰고나 읽고자 할 때 상기 데이터를 소정의 프로토콜을 따르도록 만든다.
상기 호스트(21)가 파일 시스템을 이용하는 경우도 있고 이용하지 않는 경우도 있다. 파일 시스템을 이용하는 호스트(21)라면 상기 사용자 응용 프로그램은 파일 시스템을 통해 플래쉬 메모리 장치(22)에 파일의 형태로 저장된 데이터를 읽고, 쓰거나, 삭제 또는 갱신할 수 있다. 이때, 파일 시스템이 이용하는 파일 메타 데이터는 자주 갱신되기 때문에, 머지 동작이 그만큼 자주 요구된다. 사용자 응용 프로그램이 작은 크기의 유저 데이터를 랜덤 액세스(random access)하는 경우에도 머지 동작이 자주 요구된다.
파일 시스템을 이용하지 않는 호스트(21)라면 상기 사용자 응용 프로그램은 단순히 어드레스만 참고하여 플래쉬 메모리 장치(22)에 데이터를 읽고, 쓰거나, 삭제 또는 갱신할 수 있다. 이때, 예를 들어 사용자 응용 프로그램이 특정 어드레스에서 데이터를 주기적으로 갱신하는 경우나, 갑작스런 전원 차단에 대비하여 데이터를 더 작은 크기 단위로 기록하는 경우에 머지 동작이 자주 요구된다.
상술하였듯이, 플래쉬 메모리(222)의 머지 동작은 빈 블록에 데이터들을 재정렬하여 기록하고, 머지되는 전체 블록을 소거하기 때문에 다른 동작에 비해 시간이 매우 오래 걸린다. 상기 호스트(21)는 상술한 몇몇 경우들과 같이 머지 동작이 자주 요구될 가능성이 있는 경우에는 해당 데이터 또는 해당 어드레스가 머지 동작을 자주 요구함을 나타내는 플래그(flag)를 생성한다. 실시예에 따라, 상기 플래그는 뒤따르는 데이터가 자주 갱신되는 데이터임을 나타내거나, 데이터가 자주 갱신되는 특정 어드레스를 나타내도록 설정될 수 있다. 어느 정도의 빈도로 업데이트가 될 때 플래그가 설정되는지에 관한 기준은 사용자가 설정할 수도 있고, 상황에 따라 동적으로 설정될 수도 있다. 실시예에 따라, 상기 호스트 드라이버는 상기 플래그를 상기 소정의 프로토콜(memory card protocol)에 맞게 데이터 또는 커맨드 등과 통합하여 상기 플래쉬 메모리 장치(22)에 전송할 수 있고, 또는 상기 플래그를 통상적으로 호스트가 가지고 있는 다목적 입출력 포트(general purpose input/output port)를 통해 상기 플래쉬 메모리 장치(22)로 출력할 수도 있다.
상기 플래그는 종래의 프로토콜에 통합되기 때문에 상기 호스트(21)는 종래의 플래쉬 메모리 장치(22)와의 호환성을 유지할 수 있다. 다시 말해, 본 발명의 일 실시예에 따른 호스트(21)가 종래의 플래쉬 메모리 장치에 연결되거나, 또는 본 발명의 일 실시예에 따른 플래쉬 메모리 장치(22)가 종래의 호스트에 연결되더라도 상기 플래그 때문에 오동작이 일어나는 일은 없다.
상기 플래쉬 메모리 장치(22)는 비휘발성인 플래쉬 메모리(222)와, 상기 플래쉬 메모리를 관리하는 플래쉬 컨트롤러(221)로 구성된다. 상기 플래쉬 컨트롤러(221)는 플래쉬 메모리 관리 펌웨어(management firmware)인 플래쉬 변환 계층(FTL)을 구동한다.
상기 플래쉬 컨트롤러(221)는 호스트(21)가 플래쉬 메모리 장치(22)를 대용 량 디스크 저장매체처럼 인식할 수 있도록 하는 매핑 알고리즘 외에도, 머지 동작 관리, 배드 블록 관리, 셀 수명 관리, 전원 차단 후 복구(Power off recovery) 관리 등의 기능을 수행하는 플래쉬 변환 계층을 탑재하고, 실행할 수 있다.
상기 플래쉬 컨트롤러(221)는 로그 매핑 기법을 사용하며, 업데이트된 데이터를 기록하기 위해 플래쉬 메모리(222) 중 일부를 로그 블록(log block)으로 설정한다. 이때, 상기 플래쉬 컨트롤러(221)는 상기 로그 블록들을 머지 동작의 정책을 달리하여 적어도 두 가지 종류로 구분하여 설정한다. 구체적으로, 상기 플래쉬 컨트롤러(221)는 통상 로그 블록(general purpose log block)과 저빈도 로그 블록(low freq. log block)으로 구분한다.
상기 통상 로그 블록은 머지 정책이 통상의 수준인 로그 블록으로서, 여기에 할당되는 업데이트 데이터는 그 업데이트의 빈도가 통상적이기 때문에 머지 동작도 통상적인 빈도로 발생한다. 상기 플래쉬 컨트롤러(221)는 플래그가 설정되지 않는 경우에(w/o flag) 업데이트 데이터를 상기 통상 로그 블록에 할당한다.
상기 저빈도 로그 블록은 머지 동작이 덜 일어나도록 하는 머지 정책이 적용되는 로그 블록으로서, 여기에 할당되는 업데이트 데이터는 그 업데이트 빈도가 통상적인 경우보다 훨씬 많지만, 머지 정책이 달라 결과적으로 머지 동작은 통상적인 빈도로 발생할 수 있다. 상기 플래쉬 컨트롤러(221)는 플래그가 설정된 경우에(w/ flag) 플래그가 지시하는 업데이트 데이터를 상기 저빈도 로그 블록에 할당한다.
통상적으로 머지 동작은 로그 블록들이 모두 사용되어 빈 로그 블록이 없을 경우에 수행되거나, 또는 어느 로그 블록 내의 페이지(page)나 섹터가 모두 사용되 고 있어 비연속적으로 섞여있는 페이지 또는 섹터들을 재정렬할 필요가 있을 때에 수행된다. 비슷한 업데이트 빈도에서 전자의 경우에 따른 머지 동작이 후자의 경우에 따른 머지 동작보다 더 자주 일어나게 된다. 만약, 파일 시스템의 메타 데이터와 같이 데이터가 자주 업데이트되는 경우에, 전자의 조건에 따른 머지 동작은 후자의 조건에 따른 머지 동작보다 훨씬 많을 것이다. 따라서, 전자의 조건에서는 머지 동작이 일어나지 않도록 한다면 전체적으로 머지 동작의 빈도도 크게 줄어들 것이다.
상기 저빈도 로그 블록은 빈 로그 블록이 없을 때에는 머지 동작이 일어나지 않고, 어느 로그 블록 내에 모든 페이지 또는 섹터가 사용되었을 때에 머지 동작이 일어나도록 하는 머지 정책을 가진다. 상기 통상 로그 블록은 빈 로그 블록이 없을 때에나, 어느 로그 블록 내에 모든 페이지 또는 섹터가 사용되고 있을 때에나 머지 동작이 일어나도록 하는 머지 정책을 가진다. 따라서, 저빈도 로그 블록은 통상 로그 블록에 비해 같은 업데이트 빈도에서 머지 동작의 빈도가 훨씬 줄어든다. 다만, 저빈도 로그 블록에는 업데이트 빈도가 높은 데이터가 할당되므로, 전체적으로 머지 동작의 빈도는 비슷할 수 있다.
도 3a, 3b 및 3c는 본 발명의 일 실시예에 따른 플래쉬 메모리 시스템을 플래그의 전송 방법에 따라 예시한 블록도이다.
도 3a를 참조하면, 상기 플래쉬 메모리 시스템(30a)은 호스트(31)와 플래쉬 메모리 장치(32)로 구성된다. 상기 호스트(31)는 자주 업데이트되는 데이터임을 지시하는 플래그를 생성한다. 호스트(31)에 탑재된 호스트 드라이버는 커맨 드(command)를 통해 플래쉬 메모리 장치(32)를 제어하는데, 상기 커맨드는 추후 기능의 확장, 호환성 유지 등을 위해 용도가 유보된 비트 공간을 포함할 수 있다. 상기 호스트 드라이버는 커맨드를 생성할 때 커맨드의 상기 유보된 비트 공간에 상기 플래그를 할당한다. 상기 플래그는 데이터의 목적지 어드레스일 수도 있고, 현재 플래그 이후에 전달되는 데이터가 저빈도 로그 블록에 할당됨을 알리는 단순한 지시일 수도 있다.
상기 플래쉬 메모리 장치(32)의 플래쉬 변환 계층(FTL)은 상기 커맨드를 전송받아 안에 포함되어 있는 플래그를 추출하고, 상기 플래그를 참조하여 전송되는 데이터를 저빈도 로그 블록에 할당한다.
도 3b를 참조하면, 상기 플래쉬 메모리 장치(32)는 제조사가 편의상 또는 특유의 기능을 위해 설정하는 벤더 커맨드(vendor command)를 수행할 수 있다. 상기 벤더 커맨드는 상기 플래그를 포함하도록 설정될 수 있다. 상기 호스트(31)에 탑재된 호스트 드라이버는 이러한 벤더 커맨드를 이용해 상기 플래그를 상기 플래쉬 메모리 장치(32)에 전달한다. 상기 플래그는 데이터의 목적지 어드레스일 수도 있고, 현재 플래그 이후에 전달되는 데이터가 저빈도 로그 블록에 할당됨을 알리는 단순한 지시일 수도 있다. 실시예에 따라, 상기 플래그는 상기 벤더 커맨드와 커맨드의 유보 비트들을 함께 이용할 수도 있다.
상기 플래쉬 메모리 장치(32)의 플래쉬 변환 계층(FTL)은 도 3a와 마찬가지로, 상기 벤더 커맨드에 따라 플래그를 추출하고, 상기 플래그를 참조하여, 전송되는 데이터를 저빈도 로그 블록에 할당한다.
도 3c를 참조하면, 상기 플래쉬 메모리 시스템(30c)도 역시 호스트(31)와 플래쉬 메모리 장치(32)로 구성된다. 상기 호스트(31)는 자주 업데이트되는 데이터임을 지시하는 플래그를 생성한다. 호스트(31)는 일반적으로 다목적 입출력 포트(general purpose input/output port, GPIO)를 가질 수 있는데, 상기 호스트(31) 내의 호스트 드라이버는 상기 다목적 입출력 포트를 통해 상기 플래그를 전송할 수 있다. 상기 플래그는 데이터의 목적지 어드레스일 수도 있고, 현재 플래그 이후에 전달되는 데이터가 저빈도 로그 블록에 할당됨을 알리는 단순한 지시일 수도 있다. 도 3a 및 3b와 달리, 상기 호스트 드라이버는 상기 플래그를 소정의 프로토콜에 통합하는 절차없이 그대로 플래쉬 메모리 장치(32)에 전달할 수 있다.
상기 플래쉬 메모리 장치(32)의 플래쉬 변환 계층(FTL)은 상기 커맨드를 전송받아 안에 포함되어 있는 플래그를 추출하고, 상기 플래그를 참조하여, 전송되는 데이터를 저빈도 로그 블록에 할당한다.
도 3a, 3b 및 3c에서 호스트는 종래의 프로토콜을 기반으로 플래쉬 메모리 장치에 플래그를 전달한다. 다만, 도 3a 및 3b에서는 플래쉬 메모리 시스템은 종래의 시스템과 호환성을 유지하는 범위 내에서 종래의 프로토콜을 변형하는 것에 비해, 도 3c에서는 플래쉬 메모리 시스템은 종래의 프로토콜을 그대로 사용된다.
도 4는 본 발명의 일 실시예에 따른 플래쉬 메모리 관리 방법을 예시한 순서도이다. 도 4를 참조하면, 상기 플래쉬 메모리 관리 방법에서는, 먼저 상기 호스트에서 업데이트된 데이터를 생성한다(S41). 상기 플래쉬 컨트롤러는 미리 상기 플래쉬 메모리의 일부를 통상 로그 블록과, 머지 동작이 상기 통상 로그 블록에 비해 상대적으로 적게 수행되는 저빈도 로그 블록으로 구획한다.
상기 호스트에서 상기 업데이트된 데이터가 자주 업데이트된다고 판단하며(S42), 만약에 자주 업데이트되지 않는다고 판단되면, 플래그 없이 상기 플래쉬 컨트롤러로 전송한다(S43). 상기 플래쉬 컨트롤러는 상기 업데이트 데이터를 통상 로그 블록에 할당한다(S44).
상기 호스트에서 특정 데이터가 다른 데이터에 비해 상대적으로 자주 업데이트된다고 판단되면 상기 특정 데이터가 자주 업데이트됨을 나타내는 플래그를 생성하고, 상기 호스트에서 상기 업데이트된 데이터 및 플래그를 상기 플래쉬 컨트롤러에 전송한다(S45). 이때, 실시예에 따라, 종래의 프로토콜을 이용한다면 커맨드(command) 내의 유보 비트(reserved bits)에 결합시키거나, 벤더 커맨드(vendor command)를 이용하여 플래그를 상기 플래쉬 메모리 컨트롤러에 전송할 수 있다. 또 실시예에 따라, 상기 호스트와 플래쉬 메모리 장치가 다목적 입출력 포트를 포함하는 경우에는 상기 다목적 입출력 포트를 이용하여 상기 플래그를 전송할 수 있다.
상기 플래쉬 컨트롤러는 상기 플래그와 업데이트 데이터를 인가받아서, 상기 플래그에 따라 상기 업데이트 데이터를 상기 저빈도 로그 블록에 할당한다(S46).
본 발명의 일 실시예에 따른 플래쉬 메모리 시스템 및 플래쉬 메모리 관리 방법은 데이터들이 자주 업데이트되는 경우에도 머지 동작을 억제할 수 있다. 따라서, 머지 동작의 빈도를 줄이고 전체적으로 플래쉬 메모리 시스템의 성능을 올릴 수 있다. 머지 동작은 소거 동작과 기록 동작을 수행하기 때문에 자주 일어나면 플 래쉬 메모리 셀의 수명을 단축시킬 수 있는데, 본 발명에 따르면 머지 동작의 빈도가 줄어들므로 플래쉬 메모리의 수명이 줄어드는 것을 방지할 수 있다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
Claims (18)
- 업데이트된 데이터를 출력하고, 특정 데이터가 다른 데이터에 비해 상대적으로 자주 업데이트된다고 판단되면 상기 특정 데이터가 자주 업데이트됨을 나타내는 플래그를 생성하여 출력하는 호스트;플래쉬 메모리; 및상기 호스트로부터 상기 데이터 및 플래그를 수신하고, 상기 플래쉬 메모리의 일부를 제1 로그 블록 및 머지 동작이 상기 제1 로그 블록에 비해 상대적으로 적게 수행되는 제2 로그 블록으로 구획하며, 상기 플래그에 따라 상기 수신된 데이터를 상기 제1 로그 블록 또는 제2 로그 블록에 할당하는 플래쉬 메모리 컨트롤러를 포함하는 플래쉬 메모리 시스템.
- 제1항에 있어서, 상기 호스트는 소정의 프로토콜을 통해 상기 플래그를 상기 플래쉬 메모리 컨트롤러로 전송하도록 구성된 것을 특징으로 하는 플래쉬 메모리 시스템.
- 제2항에 있어서, 상기 호스트는 커맨드(command) 내의 유보 비트(reserved bits)에 상기 플래그를 할당하는 규격을 가지는 프로토콜을 이용하여 상기 플래쉬 메모리 컨트롤러로 전송하도록 구성된 것을 특징으로 하는 플래쉬 메모리 시스템.
- 제2항에 있어서, 상기 호스트는 상기 플래그를 포함하는 벤더 커맨드(vendor command)에 상기 플래그를 할당하는 규격을 가지는 프로토콜을 이용하여 상기 플래쉬 메모리 컨트롤러로 전송하도록 구성된 것을 특징으로 하는 플래쉬 메모리 시스템.
- 제1항에 있어서, 상기 호스트는 다목적 입출력 포트(general purpose input/output port)를 통해 상기 플래그를 상기 플래쉬 메모리 컨트롤러로 전송하도록 구성된 것을 특징으로 하는 플래쉬 메모리 시스템.
- 제5항에 있어서, 상기 호스트는 파일 시스템을 탑재하도록 구성된 것을 특징으로 하는 플래쉬 메모리 시스템.
- 제6항에 있어서, 상기 호스트는 적어도 상기 파일 시스템이 이용하는 메타 데이터에 대해서 상기 플래그를 설정하여 출력하도록 구성된 것을 특징으로 하는 플래쉬 메모리 시스템.
- 제5항에 있어서, 상기 호스트는 파일 시스템을 사용하지 않는 것을 특징으로 하는 플래쉬 메모리 시스템.
- 제8항에 있어서, 상기 호스트는 동일한 주소에 주기적으로 업데이트되는 데 이터에 대해 상기 플래그를 설정하여 출력하도록 구성된 것을 특징으로 하는 플래쉬 메모리 시스템.
- 제2항, 제3항 또는 제5항 중 어느 한 항에 있어서, 상기 플래쉬 컨트롤러는 상기 플래쉬 메모리의 일부를 동적으로 상기 제1 및 제2 로그 블록으로 구획하도록 구성된 것을 특징으로 하는 플래쉬 메모리 시스템.
- 플래쉬 메모리, 플래쉬 컨트롤러 및 호스트로 이뤄진 플래쉬 메모리 시스템의 플래쉬 메모리 관리 방법은,상기 호스트에서 업데이트된 데이터를 생성하는 단계;상기 호스트에서 특정 데이터가 다른 데이터에 비해 상대적으로 자주 업데이트된다고 판단되면 상기 특정 데이터가 자주 업데이트됨을 나타내는 플래그를 생성하는 단계;상기 호스트에서 상기 업데이트된 데이터 및 플래그를 상기 플래쉬 컨트롤러에 전송하는 단계;상기 플래쉬 컨트롤러에서 상기 플래쉬 메모리의 일부를 제1 로그 블록 및 머지 동작이 상기 제1 로그 블록에 비해 상대적으로 적게 수행되는 제2 로그 블록으로 구획하는 단계; 및상기 플래쉬 컨트롤러에서 상기 플래그에 따라 상기 업데이트된 데이터를 상기 제1 로그 블록 또는 제2 로그 블록에 할당하는 단계를 포함하는 플래쉬 메모리 관리 방법.
- 제11항에 있어서, 상기 호스트에서 상기 업데이트된 데이터 및 플래그를 플래쉬 컨트롤러에 전송하는 단계는 커맨드(command) 내의 유보 비트(reserved bits)를 이용하여 상기 플래그를 상기 플래쉬 컨트롤러에 전송하는 단계를 포함하는 것을 특징으로 하는 플래쉬 메모리 관리 방법.
- 제11항에 있어서, 상기 호스트에서 상기 업데이트된 데이터 및 플래그를 플래쉬 컨트롤러에 전송하는 단계는 벤더 커맨드(vendor command)를 이용하여 상기 플래그를 상기 플래쉬 메모리 컨트롤러에 전송하는 단계를 포함하는 것을 특징으로 하는 플래쉬 메모리 관리 방법.
- 제11항에 있어서, 상기 호스트에서 상기 업데이트된 데이터 및 플래그를 플래쉬 컨트롤러에 전송하는 단계는 다목적 입출력 포트(general purpose input/output port)를 통해 상기 플래그를 상기 플래쉬 메모리 컨트롤러로 전송하는 단계를 포함하는 것을 특징으로 하는 플래쉬 메모리 관리 방법.
- 제11항에 있어서, 상기 호스트는 파일 시스템을 탑재한 것을 특징으로 하는 플래쉬 메모리 관리 방법.
- 제15항에 있어서, 상기 호스트에서 플래그를 생성하는 단계는 상기 파일 시스템이 이용하는 메타 데이터에 대해서 상기 플래그를 생성하는 단계를 포함하는 것을 특징으로 하는 플래쉬 메모리 관리 방법.
- 제11항에 있어서, 상기 호스트는 파일 시스템을 사용하지 않는 것을 특징으로 하는 플래쉬 메모리 관리 방법.
- 제17항에 있어서, 상기 호스트에서 플래그를 생성하는 단계는 동일한 주소에 주기적으로 업데이트되는 데이터에 대해 상기 플래그를 설정하는 단계를 포함하는 것을 특징으로 하는 플래쉬 메모리 관리 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060099415A KR20080033649A (ko) | 2006-10-12 | 2006-10-12 | 머지 빈도를 줄일 수 있는 플래쉬 메모리 시스템 및 그관리 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060099415A KR20080033649A (ko) | 2006-10-12 | 2006-10-12 | 머지 빈도를 줄일 수 있는 플래쉬 메모리 시스템 및 그관리 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20080033649A true KR20080033649A (ko) | 2008-04-17 |
Family
ID=39573508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060099415A KR20080033649A (ko) | 2006-10-12 | 2006-10-12 | 머지 빈도를 줄일 수 있는 플래쉬 메모리 시스템 및 그관리 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20080033649A (ko) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8438195B2 (en) | 2011-02-15 | 2013-05-07 | Samsung Electronics Co., Ltd. | File system operating method and devices using the same |
US8595412B2 (en) | 2009-04-15 | 2013-11-26 | Samsung Electronics Co., Ltd. | Data storage device and data storage system including the same |
US9304905B2 (en) | 2011-08-12 | 2016-04-05 | Ajou University Industry-Academic Cooperation Foundation | Memory controller and data management method thereof |
US9891865B2 (en) | 2014-02-24 | 2018-02-13 | Samsung Electronics Co., Ltd. | Command issue method for issuing command to memory and command processing method of memory |
KR20200092019A (ko) * | 2019-01-24 | 2020-08-03 | 성균관대학교산학협력단 | 비휘발성 메모리 장치의 데이터 관리 시스템 및 그 방법 |
CN112433889A (zh) * | 2016-06-29 | 2021-03-02 | 北京忆恒创源科技有限公司 | 基于ftl表的日志生成方法与装置 |
-
2006
- 2006-10-12 KR KR1020060099415A patent/KR20080033649A/ko not_active Application Discontinuation
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8595412B2 (en) | 2009-04-15 | 2013-11-26 | Samsung Electronics Co., Ltd. | Data storage device and data storage system including the same |
US8438195B2 (en) | 2011-02-15 | 2013-05-07 | Samsung Electronics Co., Ltd. | File system operating method and devices using the same |
US9304905B2 (en) | 2011-08-12 | 2016-04-05 | Ajou University Industry-Academic Cooperation Foundation | Memory controller and data management method thereof |
US9891865B2 (en) | 2014-02-24 | 2018-02-13 | Samsung Electronics Co., Ltd. | Command issue method for issuing command to memory and command processing method of memory |
CN112433889A (zh) * | 2016-06-29 | 2021-03-02 | 北京忆恒创源科技有限公司 | 基于ftl表的日志生成方法与装置 |
CN112433889B (zh) * | 2016-06-29 | 2024-04-12 | 北京忆恒创源科技股份有限公司 | 基于ftl表的日志生成方法与装置 |
KR20200092019A (ko) * | 2019-01-24 | 2020-08-03 | 성균관대학교산학협력단 | 비휘발성 메모리 장치의 데이터 관리 시스템 및 그 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109725847B (zh) | 存储器系统及控制方法 | |
KR100946286B1 (ko) | 플래시 파일 시스템에서 가상-물리 주소 변환 방법 및 시스템 | |
EP2319047B1 (en) | Multiple performance mode memory system | |
JP4931810B2 (ja) | 最適化されたシーケンシャルなクラスタの管理のためのfat分析 | |
US9753847B2 (en) | Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping | |
US8291155B2 (en) | Data access method, memory controller and memory storage system | |
JP4991320B2 (ja) | ホスト装置およびメモリシステム | |
KR100877448B1 (ko) | 비휘발성 기억 시스템 | |
KR100975178B1 (ko) | 데이터 기억 장치 | |
US8051268B2 (en) | Memory controller, nonvolatile storage device, nonvolatile storage system, and nonvolatile memory address management method | |
KR102252419B1 (ko) | 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법 | |
US20060020744A1 (en) | Method and apparatus for maintaining data on non-volatile memory systems | |
US9785384B2 (en) | Semiconductor storage device and method for controlling nonvolatile semiconductor memory | |
US20080082774A1 (en) | Methods of Managing File Allocation Table Information | |
JP2004288150A (ja) | フラッシュファイルシステム | |
CN114442914B (zh) | 存储器系统 | |
US8661186B2 (en) | Nonvolatile memory device, access device, and nonvolatile memory system | |
KR20080021684A (ko) | 프로그램 가능한 내구력을 가진 플래시 메모리 | |
EP2156299A1 (en) | Method and system for storage address re-mapping for a memory device | |
TWI772466B (zh) | 資料儲存裝置及其操作方法 | |
US20130275655A1 (en) | Memory management method and memory controller and memory storage device using the same | |
US8954692B2 (en) | File protecting method and system, and memory controller and memory storage apparatus thereof | |
KR20080033649A (ko) | 머지 빈도를 줄일 수 있는 플래쉬 메모리 시스템 및 그관리 방법 | |
CN111949206A (zh) | 存储器系统、控制器以及控制器的操作方法 | |
KR20080045833A (ko) | 플래쉬 메모리 관리 방법 및 이를 이용하는 플래쉬 메모리시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |