KR101017358B1 - 복수의 플래시 메모리 유닛을 포함하는 휴대용 데이터 저장장치 - Google Patents
복수의 플래시 메모리 유닛을 포함하는 휴대용 데이터 저장장치 Download PDFInfo
- Publication number
- KR101017358B1 KR101017358B1 KR1020087019155A KR20087019155A KR101017358B1 KR 101017358 B1 KR101017358 B1 KR 101017358B1 KR 1020087019155 A KR1020087019155 A KR 1020087019155A KR 20087019155 A KR20087019155 A KR 20087019155A KR 101017358 B1 KR101017358 B1 KR 101017358B1
- Authority
- KR
- South Korea
- Prior art keywords
- flash memory
- data
- memory
- level cell
- blocks
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
호스트 컴퓨터와 함께 데이터 전송을 위해 사용되는, 휴대용 데이터 저장 장치를 작동하기 위한 USB 인터페이스(3), 상기 USB 인터페이스(3)를 제어하기 위한 인터페이스 제어 장치(7)를 포함하는 휴대용 데이터 저장 장치를 개시한다. 비휘발성 메모리로 데이터 쓰기와 이에서 데이터 읽기 동작을 제어하기 위한 마스터 제어 유닛(9)을 또한 포함한다. 상기 비휘발성 메모리는 적어도 하나의 싱글 레벨 셀 플래시 메모리(11)와 적어도 하나의 멀티 레벨 셀 플래시 메모리(13)를 포함한다. 상기 마스터 제어 유닛(9)이 쓰기 명령을 수신하면, 상기 명령에 포함된 데이터를 플래시 메모리들(11) 또는 (13) 중에 어느 것에 쓰기를 수행해야할지 결정하여 적절하게 데이터 쓰기를 수행한다. 이와 유사하게, 상기 마스터 제어 유닛(9)이 읽기 명령을 수신하면, 플래시 메모리들(11) 또는 (13) 중에 적합한 하나로부터 데이터를 읽고 상기 장치 밖으로 데이터를 전송한다.
Description
본 발명은 복수의 플래시 메모리 유닛을 포함하는 휴대용 데이터 저장 장치 및 그것의 데이터 저장 방법에 관한 것이다.
최근에 내장된 플래시 메모리를 포함하는 휴대용 저장 장치가 대중화되어 왔다. 이런 장치의 예는 PCT/SG00/00029, "휴대용 데이터 보관 장치"에 개시되어 있다. 여기에는 컴퓨터 (또는 다른 장치)의 USB 소켓에 연결하는 USB 플러그 일체를 갖는 휴대용 저장 장치를 설명하고 있다. 상기 휴대용 데이터 저장 장치는 사용자 데이터의 저장을 하기 위한 플래시 메모리를 포함한다. 시중에 나와 있는 상기 장치 내의 메모리의 크기는 일반적으로 최소 8MB이나, 보통 더 큰 크기를 갖는다. 상기 장치의 전체 크기는 한 주먹에 들어갈 정도로 작은 것이 일반적이다.
일반적으로, 상기 장치의 시중 제품들은 NAND 플래시 메모리를 포함한다. NAND 플래시 메모리에는 2가지 종류가 있는데, 그 하나는 싱글 레벨 셀("SLC") 플래시 메모리이고, 다른 하나는 멀티 레벨 셀 ("MLC") 플래시 메모리이다. SLC는 현재 높은 읽기/쓰기 속도와 더 긴 수명을 갖지만, MLC는 셀 당 1비트(일반적으로 2비트) 이상을 저장할 수 있으므로 비트 저장 단위로 보면 더 저렴하다.
본 발명은 복수의 플래시 메모리 장치를 포함하는 휴대용 데이터 저장 장치에 데이터를 저장하고 불러오는 새롭고 유용한 방법을 제공하기 위한 것이다. 특히, 본 발명의 플래시 메모리 장치는 SLC와 MLC 플래시 메모리 장치를 모두 포함하는 것을 제안한다.
이것은 SLC와 MLC의 상대적인 장점들을 모두 살릴 수 있는 장치를 제공하는 것을 가능하게 한다. 예를 들면, 상기 장치의 메모리의 실질적인 절반이 SLC에 의해 제공된다면, 상기 장치의 속도는 SLC와 MLC의 속도의 중간 정도가 될 것이고, 동시에 장치에 MLC만을 사용하는 것보다 비용이 저렴할 것이다.
원칙적으로, 휴대용 데이터 저장 장치에 일차적으로 SLC 만을 배치하는 것이 가능하다 (예를 들어, 장치가 저장해야 하는 데이터의 양이 SLC의 용량을 초과할 때까지). 이것은 처음에는 휴대용 저장 장치가 전체 데이터 저장 기능이 SLC로 구성된 것과 같이 높은 성능을 보인다는 것을 의미한다. 그러나, SLC가 소진되는 즉시 성능이 급격히 떨어지며, 장치는 MLC를 사용해야 한다. 따라서, 본 발명의 바람직한 실시 예들은 처음부터 SLC와 MLC를 함께 사용한다.
본 발명의 일 측면에서, 논리적 어드레스들(즉, 호스트 컴퓨터에 의해 휴대용 데이터 저장 장치에 전송되는 명령의 어드레스)은 일련의 논리적 어드레스들이 하나 이상의 SLC 어드레스의 블록에 대응하고, 다음 하나 이상의 MLC 어드레스의 블록에, 그 다음 하나 이상의 SLC 어드레스의 블록에, 이런 방식으로 대응하도록 할당된다. 따라서, 많은 양의 데이터(많은 블록)가 휴대용 저장 장치 내의 일련의 논리적 어드레스들에 쓰일 때에는, SLC 메모리와 MLC 메모리 모두에 쓰일 것이다. 상기 일련의 논리적 어드레스들은 특히, 예정된 수의 SLC 어드레스 블록과 예정된 수의 MLC 어드레스 블록의 수에 번갈아 대응한다.
예를 들어, 어떤 MLC 메모리의 구체화에 있어서, MLC 블록의 크기는 SLC 메모리의 블록의 2배 가량이다. 그러므로 일련의 논리적 어드레스들은 2개의 SLC 블록들에 대응하고, 다음으로 1개의 MLC 블록에, 다음으로 2개의 SLC 블록에, 이런 방식으로 대응할 수 있다. 이것은 많은 양의 데이터가 SLC와 MLC 메모리에 동등한 양으로 쓰일 수 있다는 것을 의미한다.
논리적 메모리 어드레스와 물리적 메모리 어드레스 간의 대응은 맵핑 테이블(mapping table)에 나타나 있다. 전형적인 플래시 메모리 쓰기 구성에서 상기 대응은 시간이 지나면서, 물리적 어드레스 블록의 순서가 마스터 제어 유닛의 통제 하에있는 각 논리적 어드레스와 연관되면서 변화한다. 그러나, 주어진 일련의 논리적 어드레스가 항상 SLC 메모리 블록과 연관되도록 하거나 또는 항상 MLC 메모리 블록과 연관되도록 맵핑 테이블이 변화되도록 마스터 제어 유닛을 조정할 수 있다.
본 발명의 바람직한 측면은, 설명을 위한 목적으로, 다음 번호를 참조하여 설명된다:
도 1은 본 발명의 실시예의 블록 회로도이다.
도 2(a),도 2(b), 및 도 2(c)로 구성된 도 2는 도 1의 실시예의 동작의 흐름도이다.
본 발명의 일 실시 예인 휴대용 데이터 저장 장치가 도 1에 개략적으로 도시되어 있다. 상기 휴대용 저장 장치는 USB 인터페이스(3)를 갖는 하우징(1)을 포함한다. 상기 USB 인터페이스는, 호스트 컴퓨터(5)와 같은, 외부 장치의 직렬 버스(보통 USB 소켓)에 전기적으로 연결될 수 있다. 상기 USB 인터페이스(3)는 하우징(1)의 구성요소로서 USB 플러그일 수 있고, 호스트 컴퓨터(5)의 소켓에 삽입하기 위한 것이다. 또는, 다른 실시 예에서는, 상기 USB 인터페이스(3)는 USB 케이블의 플러그를 수용하기 위한 소켓일 수 있다.
상기 휴대용 저장 장치는 상기 USB 인터페이스(3)를 제어하는 USB 제어 장치(7)를 더 포함할 수 있다. 사용 시에, 상기 호스트 컴퓨터(5)는 상기 휴대용 데이터 저장 장치와 서로 데이터 전송을 교환한다. 호스트 컴퓨터(5)로부터 상기 USB 인터페이스(3)로 전송된 데이터는 상기 USB 제어 장치(7)를 통과하여 데이터 패킷 형태로 마스터 제어 유닛(9)으로 이송된다. 이와 유사하게, 상기 인터페이스 제어 장치(7)는 마스터 제어 유닛(9)에서 수신한 데이터를 USB 인터페이스(3)를 통하여 전송하도록 한다. 상기 데이터 패킷은 512비트의 배수인 크기를 갖는다.
상기 마스터 제어 유닛(9)은, 예를 들어 8-비트 버스 등의 버스(10)에 연결된다. 상기 버스(10)는 SLC 플래시 메모리(11)와 MLC 플래시 메모리(13)에 연결된다. 상기 2개의 메모리 각각은 하나 이상의 물리적으로 분리된 집적 회로를 포함할 수 있다. 상기 플래시 메모리들(11, 13)은 페이지 블록으로 배열된다. 전형적으로, 데이터의 물리적 페이지는 2048비트로 구성된다. 전형적으로, 상기 SLC 플래시 메 모리(11)의 데이터 블록은 64 페이지로 구성되고, MLC 플래시 메모리(13)의 데이터 블록은 128 페이지로 구성된다.
추가로, 상기 마스터 제어 유닛(9)은 각각의 제어 배선들(15)에 의해 플래시 메모리들(11, 13)에 각각 연결된다. 각 제어 배선들은 여기에 ENABLE, ALE, WRITE 및 READ 신호로 표시되는 제어 신호를 전송한다.
상기 마스터 제어 유닛(9)은 데이터를 메모리에 쓰기 위한 것으로, ENABLE 신호를 2개의 메모리(11, 13) 중에 하나에 전송함으로써 작동시킨다 (따라서, 2개의 메모리(11, 13) 중에 많아도 하나는 항상 작동된다). 이와 동시에, 상기 마스터 제어 유닛(9)은 ALE 신호 및 WRITE 신호를 상기 작동된 메모리에 전송한다. 그 후, 상기 마스터 제어 유닛(9)은 어드레스 데이터와 저장될 데이터를 8비트 버스를 통하여 상기 작동된 메모리에 기록한다. 상기 작동된 플래시 메모리 (11, 13)는 어드레스 데이터에 의해 지정된 위치에 데이터를 저장한다. 작동되지 않은 플래시 메모리 (11, 13)는 아무 동작도 하지 않는다.
이와 유사하게, 상기 마스터 제어 유닛은 상기 메모리들 (11, 13) 중 하나에서 데이터를 읽을 때, 이것은 그 메모리로 ENABLE 신호를 전송하기 위해서 제어 배선들 중 하나를 사용하여 그 플래시 메모리(11, 13) 중 하나를 작동시킨다. 그 후, 상기 메모리 제어 유닛은 나머지 다른 제어 배선들을 사용하여 ALE 신호와 READ 신호를 상기 작동된 메모리로 전송하고, 8비트 버스를 사용하여 상기 작동된 메모리로 어드레스 데이터를 전송한다. 상기 작동된 플래시 메모리 (11, 13)는 상기 버스(10)를 통하여 어드레스 데이터에 대응하는 물리적 위치에 데이터를 전송한다.
상기 실시예에서 수행된 알고리즘을 설명한다. 편의상, SLC 플래시 메모리 (11)와 MLC 플래시 메모리(13)는 각각 다른 어드레스 맵핑 테이블을 가진다고 가정한다. 맵핑 테이블은 각각의 메모리 (11, 13) 내의 물리적 어드레스들을 논리적 어드레스들에 각각 맵핑한다. 상기 어드레스 맵핑 테이블은 일반적으로 휴대용 데이터 저장 장치 내의 RAM(미도시)에 저장되어, 일체로서 단일의 마스터 맵핑 테이블을 구성한다.
전형적인 일 실시예에서, 상기 USB 인터페이스(3)에서 수신되거나 USB 인터페이스(3)로 전송된 데이터는 512비트 크기의 논리 페이지에 배치된다. 그러나, 상기 언급한 바와 같이, 일반적인 데이터의 물리적 페이지는 2048비트로 구성된다. 전형적으로, SLC 플래시 메모리 (11) 내의 데이터 블록은 54 페이지로 구성되고, MLC 플래시 메모리 내의 데이터 블록은 128 페이지로 구성된다.
도 2(a)를 참조하면, 휴대용 데이터 저장 장치가 상기 호스트 컴퓨터(5)에 접속되면, 마스터 제어 유닛(9) 및 USB 제어 장치(7)를 초기화하고 호스트 컴퓨터(5)가 플래시의 ID, 위치 및 용량을 결정하는 초기화 과정이 작동된다(단계 21). 초기화 과정 후에, 상기 마스터 제어 유닛(9)은 상기 호스트 컴퓨터(5)로부터 명령(데이터 패킷)을 수신할 준비가 된다 (단계 23). 호스트 컴퓨터(5)에서 명령을 수신하면, 마스터 제어 유닛(9)은 수신된 패킷이 읽기 패킷인지 또는 쓰기 패킷인지 결정한다 (단계 25).
상기 데이터 패킷이 읽기 패킷이면, 상기 마스터 제어 유닛(9)은, 패킷에 의해 특정되는 논리적 어드레스를 바탕으로 연산을 수행하여(단계 26), 플래시 메모 리들(11, 13) 중에 어느 것이 논리적 어드레스에 대응하는지 결정한다. 다음에 상기 마스터 제어 유닛(9)은 각 어드레스 맵핑 테이블에 의해 특정된 어드레스에 위치하는 상기 결정된 플래시 메모리(11, 13)로부터 데이터를 읽는다 (단계 27). 다음으로 다음 패킷이 수신되면 상기 방법은 종료된다 (이것은 단계 23에 피드백되는 도 2의 박스 "5"에 도시되어 있다).
또는, 데이터 패킷이 쓰기 패킷일 경우, 상기 마스터 제어 유닛(9)은 연산(단계 28)를 수행하여 페이지 1을 플래시 메모리(11, 13) 중 어느 것에 쓸 것인지 결정한다.
플래시 메모리 (11, 13)의 종류가 선택된 후, 마스터 제어 유닛(9)은 RAM으로부터 대응하는 어드레스 맵핑 테이블을 불러오고(단계 29), 이것을 사용하여 논리적 어드레스에 대응하는 물리적 어드레스의 위치를 추적한다.
그 후에, 상기 마스터 제어 유닛은 물리적 어드레스에서 페이지가 삭제되었는지 결정한다 (단계 30). 삭제되지 않았으면, 마스터 제어 유닛은, 새로운 블록이 선택되고, 논리적 어드레스에 대응하는 페이지 이전의 이전 블록의 페이지를 새 블록으로 복사하고, 쓰기 패킷의 데이터가, 논리적 어드레스에 대응하는 새 블록의 페이지에 쓰이는 동작을 수행한다 (단계 31).
상기 방법의 다음 단계는 도 2(c)의 흐름도의 부분으로 넘어간다. 단계 36 에서 금방 쓰인 페이지가 새 블록의 마지막 페이지에 해당하는지 결정한다. '예'로 판단된다면 (즉 마지막 페이지에 해당하면), 상기 메모리 맵핑 어드레스 테이블은 업데이트 되고, 이전 블록은 삭제되어 (단계 37) 상기 방법은 종료된다. 반대로, 단계 36에서 '아니오'로 판단된다면 (즉, 마지막 페이지에 해당하지 않으면), 상기 방법은 다음 페이지와 관련된 다른 쓰기 패킷이 예정된 구간 내로 도달하는지 모니터링한다 (단계 38). 도달한다면, 그 페이지의 데이터는 동일한 새 블록에 쓰이고 (단계 39), 다음 단계는 단계 36로 다시 되돌아간다. 도달하지 않는다면, 단계 40에서, 마스터 제어 유닛(9)은 이전 블록의 다음 페이지를 새 블록에 복사한 후, 맵핑 테이블을 업데이트하고 이전 블록을 삭제하는 단계 37로 넘어간다. 이로써 다시 상기 방법은 종료된다.
다시 도 2(a)를 참조하면, 단계 30에서 '예'라고 판단되면(즉, 페이지가 삭제되었다면), 쓰여질 플래시의 종류에 따라서 SLC 또는 MLC 명령을 사용하여 쓰기 동작을 수행한다 (단계 32). 상기 동작 시에, 플래시 메모리 (11, 13)가 읽기 동작을 준비하도록 부분적으로 작동하기 위하여, 마스터 제어 유닛(9)은 선택된 플래시 메모리(11, 13)으로 ENABLE 제어 신호를 전송한다. 다음으로, 상기 마스터 제어 유닛(9)은 물리적 어드레스를 특정하는 데이터를 플래시 메모리 (11, 13)으로 전송하고, 그곳에 쓰일 데이터를 전송한다.
상기 플래시 메모리 (11, 13)에 페이지가 쓰인 후에, 마스터 제어 유닛(9)은 호스트 컴퓨터(5)로부터 수신되는 읽기 패킷들을 모니터링한다 (단계 33). 일정 시간 동안 읽기 패킷이 수신되지 않으면, 기록된 데이터를 플래시로 프로그램하는 단계가 수행된다 (단계 34). (쓰기 단계 32는 데이터가 플래시 메모리 내에 존재하는 것을 의미하지만, 프로그램 단계 34가 없다면, 전원이 꺼졌을 시에 데이터는 손실될 것이다. 프로그램 단계 34를 거치면 전원이 꺼졌을 때에도 데이터는 저장될 수 있다).
그러나, 단계 33에서 새로운 패킷이 수신된 것으로 판단되면, 상기 방법은 도 2(b)의 흐름도의 부분으로 넘어간다. 단계 45에서, 새로운 패킷이 쓰기 패킷인지 결정된다. 아니라면, 단계는 단계 34로 되돌아가고, 쓰기 패킷이 맞다면, 단계 32에서 수행된 쓰기 동작이 물리적 페이지의 마지막 부분인지 결정한다 (단계 46 ). 마지막 부분이 맞다면, 단계 47에서 새로운 페이지가 선택된다.
어떤 경우라도, 새로운 쓰기 패킷에 대응하는 물리적 어드레스는 단계 48의 적절한 어드레스 맵핑 테이블로부터 결정된다. 단계 49에서, 상기 물리적 어드레스를 갖는 페이지가 삭제되었는지 결정된다. 삭제되지 않았다면, 도 2(a)의 단계 31에 대응하는 단계 51가 수행되고, 그 후, 도 2(c)의 단계로 넘어간다. 또는, 삭제되었다면, 쓰기 동작(단계 50)이 수행되고 (도 2(a)의 단계 32에 대응된다), 다시 단계 33으로 되돌아간다.
위에서 설명한 바와 같이, 마스터 맵핑 테이블(즉, 2개의 어드레스 맵핑 테이블들)은 논리적 어드레스와 물리적 어드레스 사이의 맵핑을 결정한다. 위 설명과 같이, SLC 플래시 메모리(11)의 큰 블록은 64 페이지를 갖고, MLC 플래시 메모리(13)의 큰 블록은 128 페이지를 갖는다. 이런 경우, 마스터 맵핑 테이블은 일련의 논리적 어드레스들이 2개의 SLC 플래시 메모리(11) 블록에 대응되고, 다음 1개의 MLC 플래시 메모리(13) 블록에, 다음으로 2개의 SLC 메모리 블록, 등에 대응하는 방식이다. 따라서, 데이터가 연속적인 논리적 어드레스들에 써지면, 마스터 제어 유닛(9)은 SLC 플래시 메모리(11)를 작동시키고 SLC 플래시 메모리(11)로 하나의 데이터 블록을 전송한다. 그 후, 상기 마스터 제어 유닛(9)은 상기 MLC 플래시 메모리(13)를 작동시키고 2개의 데이터 블록을 MLC 플래시 메모리(13)로 전송한다. 상기 과정은 모든 원하는 데이터의 블록들이 각 플래시 메모리 장치들에 전송될 때까지 반복된다. 요약하면,
i. SLC 플래시 메모리(11)에 데이터를 쓸 때, 마스터 제어 유닛(9)은, MLC 메모리(13)으로 넘어가기 전에, SLC 플래시 메모리(11)에 2개의 블록들을 쓸 것이다.
ii. MLC 플래시 메모리(13)에 데이터를 쓸 때, 마스터 제어 유닛(9)은 1개의 블록만을 쓴다. 금방 써진 페이지가 블록의 마지막 페이지임이 결정되면, 마스터 제어 유닛(9)은 다음 쓰기 동작을 위하여 SLC 플래시 메모리(11)를 작동시킨다.
단계 31 및 단계 51에서, 새로운 물리적 블록이 일련의 논리적 어드레스들과 연관되면, 주어진 일련의 논리적 어드레스들이 이전에 SLC 메모리에 대응했다면 이번에도 계속 이에 대응할 것이고, 주어진 일련의 논리적 어드레스들이 이전에 MLC 메모리에 대응했다면 이번에도 계속 이에 대응하도록 동작한다. 다시 말하면, 각 어드레스 맵핑 테이블들은, 논리적 어드레스들이 서로 교환되지 않고, 개별적으로 업데이트 된다.
본 발명의 일 실시예 만이 구체적으로 설명되었으나, 당업자가 알 수 있듯이, 청구항의 범위 내에서 여러 변형이 가능하다.
Claims (9)
- (a) 호스트 컴퓨터와 데이터 전송을 위해 사용되는 휴대용 데이터 저장 장치를 작동하기 위한 인터페이스;(b) 상기 인터페이스를 제어하기 위한 인터페이스 제어 장치;(c) 적어도 하나의 싱글 레벨 셀 플래시(SLC) 메모리 및 적어도 하나의 멀티 레벨 셀(MLC) 플래시 메모리를 포함하는 비휘발성 메모리; 및(d) 상기 비휘발성 메모리에 데이터 쓰기 및 이로부터 데이터 읽기를 제어하기 위한 마스터 제어 유닛을 포함하되,상기 마스터 제어 유닛은:상기 인터페이스가 상기 호스트 컴퓨터로부터 쓰기 명령을 수신하면, 상기 플래시 메모리들 중에서 하나의 플래시 메모리를 식별하고, 상기 쓰기 명령에 의해 특정된 데이터를 상기 식별된 플래시 메모리에 쓰도록 구성되고;상기 인터페이스가 상기 호스트 컴퓨터로부터 읽기 명령을 수신하면, 상기 플래시 메모리들 중에서 하나의 플래시 메모리를 식별하고, 상기 식별된 플래시 메모리로부터 데이터를 읽도록 구성되고;상기 명령에 포함된 논리적 어드레스를 바탕으로, 그리고 맵핑 테이블을 사용하여, 플래시 메모리를 식별하도록 구성되고, 상기 맵핑 테이블은 일련의 논리적 어드레스들이 예정된 수의 SLC 어드레스 블록들과 예정된 수의 MLC 어드레스 블록들에 교대로 대응되는, 물리적 및 논리적 어드레스들 사이에 맵핑을 저장하도록 구성되는 휴대용 데이터 저장 장치.
- 제 1 항에 있어서,상기 싱글 레벨 셀 플래시 메모리의 블록들의 예정된 수는 상기 멀티 레벨 셀 플래시 메모리의 블록들의 예정된 수보다 많은 숫자인 휴대용 데이터 저장 장치.
- 제 2 항에 있어서,상기 싱글 레벨 셀 플래시 메모리의 블록들의 예정된 수는 2개이고, 상기 멀티 레벨 셀 플래시 메모리의 블록들의 예정된 수는 1개인 휴대용 데이터 저장 장치.
- 휴대용 저장 장치의 데이터 저장 방법에 있어서:상기 휴대용 저장 장치는(a) 호스트 컴퓨터와 데이터 전송을 위해 사용되는 휴대용 데이터 저장 장치를 작동하기 위한 인터페이스;(b) 상기 인터페이스를 제어하기 위한 인터페이스 제어 장치;(c) 적어도 하나의 싱글 레벨 셀 플래시(SLC) 메모리 및 적어도 하나의 멀티 레벨 셀(MLC) 플래시 메모리를 포함하는 비휘발성 메모리; 및(d) 상기 비휘발성 메모리에 데이터 쓰기 및 이로부터 데이터 읽기를 제어하기 위한 마스터 제어 유닛을 포함하고,상기 휴대용 저장 장치의 데이터 저장 방법은(i) 상기 호스트 컴퓨터로부터 쓰기 명령을 수신하는 단계,(ii) 상기 플래시 메모리들 중에서 하나의 플래시 메모리를 식별하는 단계, 및(iii) 상기 쓰기 명령에 의해 특정된 데이터를 상기 식별된 플래시 메모리에 쓰는 단계를 포함하고,플래시 메모리를 식별하는 단계 (ii)는 상기 쓰기 명령으로부터 논리적 어드레스를 추출하는 단계와 맵핑 테이블로부터 상기 비휘발성 메모리 내의 물리적 어드레스를 획득하는 단계를 포함하고, 상기 맵핑 테이블은, 일련의 논리적 어드레스들이 예정된 수의 LSC 어드레스들의 블록들과 예정된 수의 MLC 어드레스들의 블록들에 교대로 대응하는 물리적 및 논리적 어드레스들 간의 맵핑을 저장하는 데이터 저장 방법.
- 제 4 항에 있어서,상기 싱글 레벨 셀 플래시 메모리의 블록들의 예정된 수는 상기 멀티 레벨 셀 플래시 메모리의 블록들의 예정된 수보다 많은 숫자인 데이터 저장 방법.
- 제 5 항에 있어서,상기 싱글 레벨 셀 플래시 메모리의 블록들의 예정된 수는 2개이고, 상기 멀티 레벨 셀 플래시 메모리의 블록들의 예정된 수는 1개인 데이터 저장 방법.
- 제 4 항 내지 제 6 항 중 어느 한 항에 있어서,데이터를 쓰는 상기 단계 (iii)는,상기 획득된 물리적 어드레스를 갖는 비휘발성 메모리가 삭제되었는지 결정하는 단계,상기 비휘발성 메모리가 삭제된 경우, 데이터를 상기 획득된 물리적 어드레스에 쓰는 단계; 및상기 비휘발성 메모리가 삭제되지 않은 경우, 상기 논리적 어드레스에 새로운 블록을 할당하는 단계를 포함하고, 상기 획득된 물리적 어드레스 및 상기 할당된 블록은 둘 다 싱글 레벨 셀 플래시 메모리이거나 또는 둘 다 멀티 레벨 셀 플래시 메모리인 데이터 저장 방법.
- 삭제
- 삭제
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SG200600513-6 | 2006-01-18 | ||
SG200600513-6A SG130988A1 (en) | 2005-09-29 | 2006-01-18 | Portable data storage device incorporating multiple flash memory units |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080091203A KR20080091203A (ko) | 2008-10-09 |
KR101017358B1 true KR101017358B1 (ko) | 2011-02-28 |
Family
ID=38287926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020087019155A KR101017358B1 (ko) | 2006-01-18 | 2006-12-13 | 복수의 플래시 메모리 유닛을 포함하는 휴대용 데이터 저장장치 |
Country Status (9)
Country | Link |
---|---|
US (1) | US7962685B2 (ko) |
EP (1) | EP1977307A1 (ko) |
JP (1) | JP2009524145A (ko) |
KR (1) | KR101017358B1 (ko) |
CN (1) | CN101384984B (ko) |
BR (1) | BRPI0621722A2 (ko) |
RU (1) | RU2008132970A (ko) |
SG (1) | SG130988A1 (ko) |
WO (1) | WO2007084079A1 (ko) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7852654B2 (en) * | 2006-12-28 | 2010-12-14 | Hynix Semiconductor Inc. | Semiconductor memory device, and multi-chip package and method of operating the same |
US7646636B2 (en) | 2007-02-16 | 2010-01-12 | Mosaid Technologies Incorporated | Non-volatile memory with dynamic multi-mode operation |
KR101498673B1 (ko) * | 2007-08-14 | 2015-03-09 | 삼성전자주식회사 | 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템 |
JP4746598B2 (ja) * | 2007-09-28 | 2011-08-10 | 株式会社東芝 | 半導体記憶装置 |
WO2009074686A2 (en) * | 2007-12-13 | 2009-06-18 | Thomson Licensing | Copy-protected software cartridge |
US8001316B2 (en) * | 2007-12-27 | 2011-08-16 | Sandisk Il Ltd. | Controller for one type of NAND flash memory for emulating another type of NAND flash memory |
TWI425523B (zh) * | 2008-03-25 | 2014-02-01 | Asmedia Technology Inc | 混合型快閃儲存裝置及其操作方法 |
TWI388986B (zh) * | 2008-06-19 | 2013-03-11 | Silicon Motion Inc | 快閃記憶體裝置的運作方法及快閃記憶體裝置 |
US8838876B2 (en) * | 2008-10-13 | 2014-09-16 | Micron Technology, Inc. | Translation layer in a solid state storage device |
TWI385527B (zh) * | 2009-02-10 | 2013-02-11 | Phison Electronics Corp | Mlc nand型快閃記憶體儲存系統及其控制器與存取方法 |
TWI440044B (zh) * | 2010-03-01 | 2014-06-01 | Phison Electronics Corp | 記憶體管理與寫入方法、記憶體控制器與記憶體儲存系統 |
US9268701B1 (en) | 2011-11-21 | 2016-02-23 | Western Digital Technologies, Inc. | Caching of data in data storage systems by managing the size of read and write cache based on a measurement of cache reliability |
US8977803B2 (en) | 2011-11-21 | 2015-03-10 | Western Digital Technologies, Inc. | Disk drive data caching using a multi-tiered memory |
US8977804B1 (en) | 2011-11-21 | 2015-03-10 | Western Digital Technologies, Inc. | Varying data redundancy in storage systems |
US8904091B1 (en) | 2011-12-22 | 2014-12-02 | Western Digital Technologies, Inc. | High performance media transport manager architecture for data storage systems |
KR20140033964A (ko) * | 2012-09-11 | 2014-03-19 | 삼성전자주식회사 | 단말기의 데이터 저장장치 및 방법 |
US9489148B2 (en) | 2013-03-13 | 2016-11-08 | Seagate Technology Llc | Selecting between non-volatile memory units having different minimum addressable data unit sizes |
CN107391389B (zh) | 2013-08-05 | 2020-11-24 | 慧荣科技股份有限公司 | 用来管理一记忆装置的方法以及记忆装置与控制器 |
CN107741913B (zh) | 2013-08-05 | 2021-09-07 | 慧荣科技股份有限公司 | 用来管理一记忆装置的方法、记忆装置与控制器 |
US10140067B1 (en) | 2013-12-19 | 2018-11-27 | Western Digital Technologies, Inc. | Data management for data storage device with multiple types of non-volatile memory media |
CN103942151A (zh) * | 2014-04-10 | 2014-07-23 | 深圳市硅格半导体有限公司 | 闪存的数据存储方法及装置 |
JP6166476B2 (ja) * | 2014-07-09 | 2017-07-19 | 株式会社日立製作所 | メモリモジュールおよび情報処理システム |
US9530491B1 (en) * | 2015-11-16 | 2016-12-27 | Sandisk Technologies Llc | System and method for direct write to MLC memory |
TWI621017B (zh) * | 2017-03-06 | 2018-04-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
CN108509355A (zh) * | 2018-03-31 | 2018-09-07 | 北京联想核芯科技有限公司 | 一种用于SSD的SLC Cache的方法和装置 |
US11099779B2 (en) | 2018-09-24 | 2021-08-24 | Micron Technology, Inc. | Addressing in memory with a read identification (RID) number |
CN111367465A (zh) * | 2018-12-26 | 2020-07-03 | 深圳市江波龙电子股份有限公司 | 一种存储设备的控制方法及存储设备、电子设备 |
CN111949197B (zh) * | 2019-05-16 | 2024-03-29 | 兆易创新科技集团股份有限公司 | 一种3d tlc闪存存储器及其数据写入方法和装置 |
JP2021043678A (ja) * | 2019-09-10 | 2021-03-18 | キオクシア株式会社 | メモリシステム及び方法 |
CN114327240A (zh) * | 2020-09-29 | 2022-04-12 | 慧荣科技股份有限公司 | 计算机可读存储介质、闪存存储器的数据存储方法及装置 |
US11907539B2 (en) * | 2020-11-20 | 2024-02-20 | Samsung Electronics Co., Ltd. | System and method for stream based data placement on hybrid SSD |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE20022935U1 (de) * | 2000-02-21 | 2002-07-11 | Trek 2000 International Ltd., Singapur/Singapore | Tragbare Datenspeicherungs-Einrichtung |
US20050223158A1 (en) | 2004-04-05 | 2005-10-06 | Sun-Teck See | Flash memory system with a high-speed flash controller |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02148148A (ja) * | 1988-11-29 | 1990-06-07 | Fanuc Ltd | メモリ回路 |
JP2000173281A (ja) * | 1998-12-04 | 2000-06-23 | Sony Corp | 半導体記憶装置 |
US8078794B2 (en) * | 2000-01-06 | 2011-12-13 | Super Talent Electronics, Inc. | Hybrid SSD using a combination of SLC and MLC flash memory arrays |
DE60132229T2 (de) * | 2000-10-26 | 2008-12-18 | Matsushita Electric Industrial Co., Ltd., Kadoma | Speichervorrichtung, speichersteuerverfahren und programm |
CN1323359C (zh) * | 2003-05-20 | 2007-06-27 | 群联电子股份有限公司 | 以共用汇流排方式启动外部只读存储器的单晶片快闪存储器控制系统 |
US7372731B2 (en) * | 2003-06-17 | 2008-05-13 | Sandisk Il Ltd. | Flash memories with adaptive reference voltages |
JP2005092923A (ja) * | 2003-09-12 | 2005-04-07 | Renesas Technology Corp | 半導体記憶装置 |
US20050138288A1 (en) * | 2003-12-23 | 2005-06-23 | Horng-Yee Chou | Dual mode USB and PCI express device |
CN2676291Y (zh) * | 2004-01-02 | 2005-02-02 | 创惟科技股份有限公司 | 提升闪存存取效能的装置 |
TWI267864B (en) | 2004-05-06 | 2006-12-01 | Samsung Electronics Co Ltd | Method and device for programming control information |
KR100809320B1 (ko) * | 2006-09-27 | 2008-03-05 | 삼성전자주식회사 | 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑정보 관리 장치 및 방법 |
KR100833188B1 (ko) * | 2006-11-03 | 2008-05-28 | 삼성전자주식회사 | 데이터의 특성에 따라 싱글 레벨 셀 또는 멀티 레벨 셀에데이터를 저장하는 불휘발성 메모리 시스템 |
-
2006
- 2006-01-18 SG SG200600513-6A patent/SG130988A1/en unknown
- 2006-12-13 US US12/161,438 patent/US7962685B2/en not_active Expired - Fee Related
- 2006-12-13 RU RU2008132970/09A patent/RU2008132970A/ru not_active Application Discontinuation
- 2006-12-13 EP EP06824656A patent/EP1977307A1/en not_active Withdrawn
- 2006-12-13 JP JP2008551232A patent/JP2009524145A/ja active Pending
- 2006-12-13 BR BRPI0621722A patent/BRPI0621722A2/pt not_active Application Discontinuation
- 2006-12-13 CN CN2006800514352A patent/CN101384984B/zh not_active Expired - Fee Related
- 2006-12-13 KR KR1020087019155A patent/KR101017358B1/ko not_active IP Right Cessation
- 2006-12-13 WO PCT/SG2006/000388 patent/WO2007084079A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE20022935U1 (de) * | 2000-02-21 | 2002-07-11 | Trek 2000 International Ltd., Singapur/Singapore | Tragbare Datenspeicherungs-Einrichtung |
US20050223158A1 (en) | 2004-04-05 | 2005-10-06 | Sun-Teck See | Flash memory system with a high-speed flash controller |
Non-Patent Citations (1)
Title |
---|
A Dual-Mode NAND Flash Memory: 1Gb Multilevel and High-Performance 512Mb Single-Level Modes, November 2001, IEEE Journal of Solid State Circuit, Vol.36, No.11, pp.1700-1706. |
Also Published As
Publication number | Publication date |
---|---|
CN101384984A (zh) | 2009-03-11 |
EP1977307A1 (en) | 2008-10-08 |
CN101384984B (zh) | 2011-11-02 |
KR20080091203A (ko) | 2008-10-09 |
RU2008132970A (ru) | 2010-02-27 |
BRPI0621722A2 (pt) | 2019-10-01 |
JP2009524145A (ja) | 2009-06-25 |
SG130988A1 (en) | 2007-04-26 |
WO2007084079A1 (en) | 2007-07-26 |
US20090089486A1 (en) | 2009-04-02 |
US7962685B2 (en) | 2011-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101017358B1 (ko) | 복수의 플래시 메모리 유닛을 포함하는 휴대용 데이터 저장장치 | |
US8521945B2 (en) | Portable data storage using SLC and MLC flash memory | |
EP2319047B1 (en) | Multiple performance mode memory system | |
US8316176B1 (en) | Non-volatile semiconductor memory segregating sequential data during garbage collection to reduce write amplification | |
KR100300250B1 (ko) | 반도체기억장치및그데이터관리방법 | |
US7702846B2 (en) | Memory controller, nonvolatile storage device, nonvolatile storage system, and data writing method | |
US7185146B2 (en) | Memory card device, and memory card control method for controlling the device | |
KR100816761B1 (ko) | 낸드 플래시 메모리 및 에스램/노어 플래시 메모리를포함하는 메모리 카드 및 그것의 데이터 저장 방법 | |
JP4956068B2 (ja) | 半導体記憶装置およびその制御方法 | |
JP2009503729A (ja) | 論理アドレス空間と直接データファイル方式で動作するインターフェイスシステム | |
US6965963B1 (en) | Continuous arrangement of data clusters across multiple storages | |
US8521947B2 (en) | Method for writing data into flash memory | |
KR20080017982A (ko) | 플래시 메모리 시스템 및 그 프로그램 방법 | |
CN102332290A (zh) | 用来管理和存取闪存模块的控制器 | |
US20130304974A1 (en) | System and method for storing data using a flexible data format | |
CN102422271A (zh) | 用于非易失性存储器系统的多页准备命令 | |
WO1999030239A1 (fr) | Memoire et procede d'acces | |
JPH05204561A (ja) | フラッシュメモリを記憶媒体とした半導体ディスク | |
JP2009503744A (ja) | 予定再生操作を伴う不揮発性メモリ | |
JP2010515162A (ja) | 連続論理アドレス空間インターフェイスを備えるダイレクトデータファイルシステムの使用 | |
CN117015766A (zh) | 在分区命名空间ssd中的快速垃圾收集 | |
US8516203B2 (en) | Methods and apparatus for passing information to a host system to suggest logical locations to allocate to a file | |
CN111813326B (zh) | 具多数据流写入的固态存储装置及其相关写入方法 | |
CN106354651B (zh) | 平均磨损方法、存储器控制电路单元及存储器储存装置 | |
JP4794949B2 (ja) | メモリコントローラ、不揮発性記憶装置及び不揮発性記憶システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |