KR19990063715A - 메모리 시스템 - Google Patents
메모리 시스템 Download PDFInfo
- Publication number
- KR19990063715A KR19990063715A KR1019980702182A KR19980702182A KR19990063715A KR 19990063715 A KR19990063715 A KR 19990063715A KR 1019980702182 A KR1019980702182 A KR 1019980702182A KR 19980702182 A KR19980702182 A KR 19980702182A KR 19990063715 A KR19990063715 A KR 19990063715A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- memory
- erasable
- memory device
- storage means
- Prior art date
Links
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
- 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
-
- 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
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Semiconductor Memories (AREA)
- Oscillators With Electromechanical Resonators (AREA)
- Table Devices Or Equipment (AREA)
- Polishing Bodies And Polishing Tools (AREA)
- Inorganic Insulating Materials (AREA)
Abstract
본 발명은 로직 어드레스를 블록단위로 소거가능한 비휘발성 메모리 셀로 구성된 메인 메모리로 로직 섹터 어드레스를 번역하는 번역 수단을 포함하는 디스크 드라이브를 에뮬레이팅하기 위한 고체 메모리를 제공하며, 상기 고체 메모리는, 상기 메인 메모리내의 기록되지 않은 위치를 포인팅하기 위한 제 1포인터와 상기 기록되지 않은 위치를 포함하는 소거가능한 블록과 순차적으로 다음의 소거되지 않은 소거가능한 블록을 포인팅하는 제 2포인터; 및 상기 제 1 및 제 2포인터사이의 소거 상태에서 항상 적어도 하나의 소거가능한 블록이 존재하도록 하는 제어 수단을 포함한다.
Description
컴퓨터용의 많은 일반 메모리 저장 장치는 자기 디스크 드라이브와 같은 회전 저장 매체를 기초로 한다. 그러나, 회전 저장 매체는 몇 가지 단점이 있다. 이들은 상대적으로 큰 파워를 요구하는데, 이는 회전 원반으로 구성되었기 때문이다. 또한 이들은 검색 시간(헤드를 정확한 위치로 이동시키는데 걸리는 시간) 및 회전 시간(트랙의 정확한 부분에 배치하는데 걸리는 시간) 때문에 기록 및 판독이 상대적으로 느리다. 자기 디스크는 또한 상대적으로 무겁지만 튼튼하지는 않다(충격에 민감함). 반대로, 반도체 메모리는 가볍고 튼튼하며 파워 소모가 적으며, 동작이 빠르다. 이러한 이유들 때문에, 자기 디스크와 등가의 고체 메모리를 사용하는 것이 바람직하다. 고체 메모리로서 선택된 특정 반도체는 바람직하게 고밀도의 비휘발성이며 비트당 비용이 낮다. 이러한 조건에 플래시 메모리가 이상적이다.
고체 디스크 드라이브용 저장 매체로서 플래시 메모리를 사용한 많은 종래기술이 존재한다. 이들 종래 기술은 다음의 특허를 포함한다: EP 0 392 895, EP 0424 191, EP 0 522 780, EP 0 597 706, EP 0 617 363, EP 0 618 535, EP 0 619 541, GB 2 251 323, WO 93 02418, WO 94 19746, WO 94 20906, WO 94 23369, WO 94 23432, WO 95 14272, WO 95 10083, US 4 511 964, WO 84 00628, WO 95 10083, WO 95 14272. 상기 많은 기술들은 공통적으로 특징을 가지고 있다. 예를 들어, 대부분의 기술들은 호스트 컴퓨터로부터의 로직 어드레스(일반적으로, 실린더, 헤드 및 섹터 포맷(CHS))를 플래시 메모리의 물리적 어드레스 또는 플래시 메모리에 물리적 어드레스를 발생시키는 중간 어드레스로 변환하기 위한 테이블을 이용한다. 또한 대부분의 이들 기술은 한 블록이 다른 블록보다 더 많은 횟수로 기록되지 않도록 하는 수단을 가진다. 플래시 고체 디스크 에뮬레이터에서 세 번째 공통 특징은 반도체의 기록 속도를 증가시키기 위한 버퍼를 가진다는 것이다. 버퍼는 일반적으로 SRAM과 같은 고속 메모리로 만들어진다.
저장 매체로서 플래시 메모리를 이용하는 고체 디스크 에뮬레이션 시스템은 또한 셀 소거 및 셀 기록을 제어하기 위한 방법을 가진다. 이는 셀이 상대적으로 긴 소거시간을 가지며 셀이 소거되기 전 한번만 기록될 수 있기 때문이다. 본 발명은 메모리 셀의 소거 및 기록을 제어하기 위한 고체 디스크 에뮬레이션 시스템에 이용될 수 있는 알고리듬을 이용한다.
EP 0 522 780은 각각의 셀이 소거되는 횟수, 각각의 메모리 블록의 상태 및 메모리에 기록될 데이터를 유지하는 버퍼의 상태를 기록하는 메모리 관리 테이블을 이용하는 고체 디스크의 제어 방법을 개시한다. 상기 방법은 초기 블록을 소거하기 전에 소거될 섹터를 다른 블록에 복사하는 것을 포함한다.
EP 0 392 895는 메모리 동작 속도를 증가시키기 위하여 플래시 메모리에 대한 기록을 버퍼링하기 위한 캐쉬 메모리의 사용에 관한 것이다. 상기 메모리 시스템은 "각각의 데이터 파일이 마지막으로 기록된 시간"을 결정하기 위한 수단을 이용한다. 상기 메모리 시스템은 또한 에러 및 결함 치환을 위한 교정에 관련되지만, 이들은 이하에 설명되는 분할 출원의 주제이다.
EP 0 618 535는 결함 치환을 가진 고체 디스크 에뮬레이터에 관한 것이다.
EP 0 617 363은 메모리내의 결함 위치로부터 여분 위치를 포인팅하는 포인터를 이용함으로써 플래시 메모리내의 결함 셀을 교정하는 방법에 관한 것이다.
EP 0 424 191은 미리 설정한 순서로 액세스가능한 메모리에서 순차적 데이터를 저장하는 방법에 관한 것이다. 메모리내의 결함은 순서가 정해진 디렉토리에 저장되어 메모리가 기록될 때 이들 결함 위치가 스킵되도록 한다.
EP 0 619 541은 중앙 처리 유니트로부터 무작위 액세스를 허용하는 고체 디스크 에뮬레이팅 시스템을 제공하는 것이다. 이는 또한 각각의 메모리 블록에 대한 소거 카운트를 측정하여 만약 블록이 대단히 많은 횟수로 기록된 블록은 회피될 수 있도록 한다.
EP 0 597 706은 반도체 메모리의 물리적 어드레스에 호스트에 의하여 제공된 로직 섹터 어드레스를 맵핑하는 MAP ROM을 이용하는 고체 주변 저장 소자를 개시한다. 반도체 메모리내의 어떤 불량 섹터의 어드레스는 MAP ROM에 기록된다. 마이크로시퀀서가 맵핑을 제어하기 위하여 이용된다.
GB 2 251 323은 플래시 메모리용 디스크 에뮬레이션 시스템을 개시한다. 상기 발명에 기술된 소거 동작은 소정 조건이 만족될 때 백그라운드 처리로서 발생한다는 의미에서 단지 자동적이다. 이는 소거를 위한 무작위 블록 선택을 야기한다.
WO 94 20906은 디스크 드라이브 동작을 에뮬레이터하기 위하여 이용되는 플래시 파일 시스템을 개시한다. 이는 기록될 수 있는 플래시 메모리내의 블록에 정보를 저장하기 위하여 블록 할당 맵을 사용한다. 블록이 갱신될 때 할당 맵은 자유 블록의 위치가 정해질 때까지 스캐닝된다. 시스템의 메모리 재이용을 용이하게 하기 위하여 대체(transfer) 유니트가 이용된다. 대체 유니트는 기록되지 않은 소거된 메모리 블록이다. 올드(old) 데이터(올드 블록)를 포함하는 메모리 블록의 액티브(현재 유효한) 데이터는 대체 유니트(새로운 블록)내의 동일 위치에 기록되며 올드 블록은 소거된다. 따라서 올드 블록은 대체 유니트가 된다.
WO 94 23432는 플래시 메모리 대용량 저장 기술을 개시한다. 변형된 데이터 파일을 비여 있는 대용량 저장 블록으로 프로그래밍 함으로써 소거 사이클이 회피된다. 주기적으로 저장부는 다중 섹터 소거에 의하여 소거된다. 카운터는 어떠한 블록도 최대 횟수이상 소거되지 않도록 하기 위하여 이용된다.
WO 94 23369는 WO 94 23432에 개시된 것과 매우 유사한 플래시 메모리 대용량 저장 기술을 개시한다. 이들은 모두 동일인이 출원인이다.
WO 94 19746은 동시에 두 개의 바이트를 저장하는 플래시 고체 드라이브를 개시한다. 섹터가 플래시 메모리에 기록되는 각각의 시간은 헤더 역시 기록된다. 올드 섹터가 메모리에 존재하면 무효한 것으로 표시된다. 저장 공간이 소정 임계치이하로 내려오면, 소거 동작이 수행된다. 섹터로부터의 유효한 데이터는 버퍼로 복사되고, 섹터는 소거되고 유효한 데이터는 다시 섹터로 복사된다.
WO 84 00628은 저장 매체내의 결함을 관리하는 방법을 개시한다. 상기 방법에서는 호스트로부터의 어드레스를 수신하고, 상기 어드레스이하의 결함 위치 수에 대한 수신 어드레스를 보상하고, 보상된 어드레스를 액세스한다. 기록 매체내의 결함 위치의 순차적으로 순서가 정해진 리스트가 형성된다.
WO 95 10083은 각각의 블록에 발생되는 소거 사이클 수를 카운팅하는 카운터를 사용하여 새로운 위치에 데이터 파일의 갱신된 버전을 복사한다. 주기적으로, 블록은 소거된다. 반도체 메모리의 블록은 상용되는 하드 디스크 섹터 사이즈에 맞게 크기가 정해진다.
WO 95 14272는 어드레스될 로직 블록 번호로부터 정확한 물리적 시작 어드레스를 발생시키는 방법을 제공한다.
본 발명은 메모리 시스템에 관한 것이며, 특히 블록 구조 데이터를 저장하기 위한 메모리 시스템에 관한 것이다. 본 발명은 비휘발성 메모리 셀이 저장 매체로 이용되는 분야에 관한 것이다. 본 발명에서 이용되는 특정 종류의 비휘발성 메모리 셀은 개별적인 셀의 소거는 허용하지 않지만 메모리 셀 블록의 소거는 허용하는 메모리 셀이다. 플래시(FLASH) EPROM 셀, 칼코제니드 메모리 셀 및 강광학성 셀과 같은 여러 가지 메모리 셀이 이용될 수 있다.
도 1은 자기 디스크 드라이브를 에뮬레이팅하는 메모리 시스템의 블록도이다.
도 2는 플래시 메모리내의 계층 구조를 도시한다.
도 3a 및 3b는 메인 플래시 메모리에서 소거 및 기록 동작의 위치 및 주파수를 기록/소거 알고리듬이 관리하는 방법을 도시하는데, 도 3a는 소거/기록 알고리듬이 수행되기 이전의 플래시 메모리를 도시하며, 도 3b는 기록/소거 알고리듬이 수행된 후의 동일 플래시 메모리를 도시한다.
본 발명의 바람직한 실시예는 전체 메모리를 통하여 소거/기록 사이클을 자동적으로 균등하게(자동 균등화) 하는 것이다. 이러한 자동 균등화는 다소 지연된 시간에 백그라운드 처리되는 것이 아니고 데이터가 기록될 때 균등화가 발생한다는 의미에서 자동적이라는 뜻이다. 이는 또한 저장 데이터의 자동 압축을 제공한다. 이는 가용 플래시 메모리 용량의 사용시 100%효율을 달성할 수 있다. 즉 모든 가용 플래시 메모리가 이용된다. 이는 또한 플래시 메모리가 소정의 소거가능한 블록 크기를 가지도록 하는 것을 허용하는바; 즉 소거가능한 블록 크기가 512바이트만 될 필요가 없음을 나타낸다. 이는 에러 보정 코드가 각각의 저장된 데이터 세그먼트에 포함되도록 한다. 본 발명은 또한 물리적 어드레스 공간으로부터 플래시 어드레스 공간으로의 변이를 용이하게 한다.
본 발명은 로직 어드레스를 블록에서 소거가능한 비휘발성 메모리 셀로 구성된 저장부에 액세스하기 위한 제 2 어드레스로 번역하는 번역 수단을 포함하는 디스크 드라이브를 에뮬레이팅하기 위한 고체 메모리를 제공하며, 상기 고체 메모리는: 상기 저장부내의 기록되지 않은 위치를 포인팅하기 위한 제 1포인터와 상기 기록되지 않은 위치를 포함하는 소거가능한 블록과 순차적으로 다음의 소거되지 않은 소거가능한 블록을 포인팅하는 제 2포인터; 및 상기 제 1 및 제 2포인터사이의 소거 상태에서 항상 적어도 하나의 소거가능한 블록이 존재하도록 하는 제어 수단을 포함한다. 고체 메모리에서 상기 저장부의 기록되지 않은 위치는 저장부에서 최하위의 기록되지 않은 위치이다.
고체 메모리에서 상기 저장부의 기록되지 않은 위치는 저장부의 최상위 위치이다.
고체 메모리에서 상기 기록되지 않은 메모리 위치를 포함하는 소거가능한 블록과 순차적으로 정렬된 상기 다음의 소거되지 않은 소거가능한 블록은 상기 제 1포인터 위에 있는 최하위 물리적 어드레스를 가진 소거되지 않은 소거가능한 블록이다.
고체 메모리에서 상기 기록되지 않은 메모리 위치를 포함하는 소거가능한 블록과 순차적으로 정렬된 상기 다음의 소거되지 않은 소거가능한 블록은 상기 제 1포인터 아래에 있는 최상위 물리적 어드레스를 가진 소거되지 않은 소거가능한 블록이다.
상기 기록되지 않은 메모리 위치를 포함하는 소거가능한 블록과 순차적으로 정렬된 상기 다음의 소거되지 않은 소거가능한 블록은 소정의 알고리듬에 의하여 결정된다. 고체 메모리에서 저장부에 데이터를 기록하는 속도를 증가시키기 위하여 버퍼가 이용된다.
고체 메모리에서 상기 버퍼는 SRAM 버퍼이다.
고체 메모리에서 상기 버퍼는 DRAM 버퍼이다.
고체 메모리에서 상기 저장부는 플래시 메모리이다.
고체 메모리에서 상기 저장부는 칼코제니드 셀로 구성된다.
고체 메모리에서 상기 저장부를 강광학성 메모리이다.
고체 메모리에서 상기 제어 수단은 마이크로프로세서, 마이크로컨트롤러 또는 상태 머쉰이다.
본 발명에서 기록되지 않은 메모리 위치는 한번도 기록되지 않았던 메모리 위치를 말하는 것이 아니고 소거된 상태에 있는 위치를 말한다.
본 발명에서 제 2어드레스는 물리적 어드레스, 물리적 블록 어드레스 또는 중간 어드레스일 수 있다.
이하 첨부된 도면을 참조로 본 발명을 설명한다.
도 1에 따르면, 플래시 메모리(10)는 호스트로부터 수신된 데이터를 위한 주 저장부로서 이용된다. 플래시 메모리(10)는 메모리 제어기(12)에 의하여 제어된다. 메모리 제어기(12)는 플래시 메모리(10)와 인터페이스(14)사이에서 동작한다. 메모리 제어기(12)는 물리적 메모리(플래시 메모리(10))내의 고레벨 기능을 저레벨로 수행하는 것을 제어한다. 메모리 제어기(12)는 메모리 기술에 의존한다.
인터페이스(14)는 시스템 제어기(16)와 메모리 제어기(12)를 연결시킨다. 시스템 제어기(16)는 메인 플래시 메모리(10) 및 플래시 메모리(10)의 데이터 기록 속도를 증가시키기 위하여 포함된 기록 버퍼(18)에서 블록 구조 데이터의 저장 및 액세스를 관리한다. 시스템 제어기(16)는 다음의 기능을 수행한다. 시스템 제어기(16)는 호스트로부터의 로직 어드레스를 플래시 메모리(10)와 함께 사용하기에 적합한 어드레스로 번역하는데, 이하에서는 이를 로직의 물리적 어드레스 번역이라고 한다. 상기 번역에 의하여 하나이상의 중간 어드레스가 발생할 수 있다. 제어기는 필요한 어드레스 룩업 테이블을 유지한다. 제어기는 플래시 메모리(10)내의 결함 저장 위치를 관리한다. 제어기는 기록 버퍼(18)를 관리한다. 제어기는 플래시 메모리(10)의 블록 소거를 관리한다. 제어기는 전원이 공급 및 제거된 후에 시스템의 시동 및 종료를 관리한다.
호스트로부터의 모든 섹터 기록은 기록 버퍼(18)와 관련된다. 이는 늦은 플래시 메모리 기록 속도의 영향을 최소화한다. 섹터 데이터는 백그라운드 처리에 의하여 기록 버퍼(18)에서 플래시 메모리(10)로 전달된다. 기록 속도가 중요하지 않은 응용분야에서, 기록 버퍼(18)는 생략될 수 있다.
시스템 제어기(16)는 보조 메모리(20)와 호스트 인터페이스(22)에 연결된다. 보조 메모리(20)는 플래시 메모리(10)에 대한 결함 블록 및 소거가능한 블록 테이블, 어드레스 번역 테이블 에러 로그 및 마이크로컨트롤러 펌웨어와 같은 정보를 저장하기 위하여 이용된다. 보조 메모리는 호스트 인터페이스(22)로부터 직접 액세스가능할 수 있어 직접 맵핑된 메모리 어드레스 공간을 호스트에 제공하도록 한다. 도 2에 따르면, 메인 플래시 메모리(10)는 다음의 계층 분할 구조에 배열된다. 플래시 메모리는 하나 이상의 반도체칩(30)으로 구성된다. 반도체칩(30)은 로직적으로 중요하지 않은 물리적 분할 부분이다. 소거 블록(32)은 반도체칩(30)의 분할 부분이다. 이는 소거 동작에서 제거되는 최소한의 셀 수이다. 반도체칩에서 소거 블록 수는 칩 사이즈 및 칩 구조에 따라 가변한다. 사각의 워드 위치 그룹이 플래시 블록으로서 할당된다. 플래시 블록(34)은 결함 관리를 위한 최소한의 마스크가능 블록 사이즈이다. 셀이 불량이면 마스크되고 대체될 수 있는 최소 영역은 플래시 블록(34)이다. 결함 맵핑은 낟알 모양의 플래시 블록(34)을 가진다. 섹터는 디스크 에뮬레이터 프로토콜에 따른 하나의 데이터 유니트이다. 플래시 메모리에 저장된 데이터(일반적으로 512바이트+ECC바이트 및 헤더)는 이하에서 플래시 섹터라고 하며; 호스트 동작 시스템에 의하여 보내지는 데이터(일반적으로 512바이트)는 이하에서 호스트 섹터라고 한다. 호스트 섹터는 호스트에 의한 데이터 전송 기본 유니트이다. 가장 공통적인 호스트 섹터 사이즈는 512바이트이다. 프레임(36)은 예를 들어 사각 플래시 블록(34)내의 행(row)과 같은 플래시 블록(34)의 어드레스가능한 서브-유니트이다. 각각의 워드(38)는 인터페이스(14)에서 최소 어드레스가능 유니트로서 무작위로 액세스가능하다. 워드 사이즈는 메모리 시스템에 대한 데이터I/O의 폭에 의하여 설정되며; 이는 하나, 둘 또는 4바이트일 수 있다.
워드내의 비트의 실제 물리적 위치는 본 발명에서 사용되는 알고리듬에 따른다. 플래시 메모리는 단순히 사각 어래이의 워드 위치로서 처리된다.
플래시 블록(34)은 호스트 섹터 사이즈(대부분의 경우 호스트 섹터 사이즈는 512바이트임), 프레임 사이즈 또는 워드 사이즈와 동일하게 설정될 수 있다. 메모리 용량(데이터를 저장할 수 있는 전체 메모리 부분)은 소정값의 플래시 블록 사이즈이하의 평탄성을 가지며, 따라서 플래시 블록 사이즈의 추가 감소는 메모리 용량에 영향을 미치지 못한다. 그러나, 작은 사이즈의 플래시 블록은 단점을 가진다. 플래시 블록 사이즈가 작아지면 작아질수록, 더많은 저장 관리 공간이 요구된다. 따라서 소자 테스트가 더 복잡해진다. 따라서, 플래시 블록 사이즈에 대한 최적 범위가 존재한다.
여러 가지 어드레싱 포맷이 본 발명의 사상으로부터 벗어나지 않고 본 발명과 함께 이용될 수 있다.
100% 메모리 이용을 위하여 섹터에 대한 시작 어드레스는 처리중인 섹터의 종료 어드레스를 즉시 추종하는 워드이여야 한다. 이를 위하여, 시작 어드레스는 단일 워드의 분해능으로 한정되어야 한다. 플래시 섹터는 어떠한 중간 갭없이 저장되기 때문에, 플래시 섹터는 플래시 블록 및 소거 블록을 범람(overflow)시킬 것이다. 이 경우, 플래시 섹터는 분할 섹터로 인식되고 플래시 섹터의 연속 영역은 다음의 플래시 블록 또는 소거 블록의 시작부에 배치된다. 따라서 플래시 블록내의 플래시 섹터의 시작 어드레스는 각각의 플래시 블록에 대하여 차이를 가질 것이다. 이를 용이하게 관리하기 위하여, 소거 블록이 기록되는 순서가 물리적 어드레싱 순서와 정확하게 대응하도록 할 것이 요구된다. 플래시 블록내의 결함 셀이 존재하면, 블록은 마스크로 씌워져 제거된다. 이는 플래시 섹터의 일부가 하나의 플래시 블록에 저장되도록 하고, 다음 플래시 블록은 마스크로 씌워져 제거되고 나머지 플래시 섹터는 마스크로 씌워져 제거된 플래시 블록 바로 위의 플래시 블록에 저장되도록 한다. 따라서 플래시 메모리 공간은 불연속이 될 수 있다.
도 3a 및 3b는 메인 플래시 메모리에서 소거 및 기록 동작의 위치 및 주파수를 기록/소거 알고리듬이 관리하는 방법을 도시한다. 도 3a는 소거/기록 상태 전의 플래시 메모리를 도시하며, 도 3b는 기록/소거 상태이후의 동일 플래시 메모리를 도시한다.
상기 알고리듬은 현재의 기록 및 소거 위치를 지정하는 두 개의 포인터(기록 포인터 및 소거 포인터)의 존재에 근거한다. 상기 위치들은 물리적 섹터 어드레스 및 물리적 섹터 어드레스 공간 전체에 대한 포인터 사이클로서 지정된다. 기록 포인터는 다음 섹터 기록 동작이 지시되어야 하는 물리적 섹터 번호를 지정한다. 상기 섹터의 물리적 위치는 메모리 시스템내의 시스템 제어기(16)에 의하여 데이터를 기록하기 위하여 이전에 미리 확실히 소거되도록 한다. 기록될 섹터 데이터는 소거 블록 소거 동작을 위하여 미리 호스트의 섹터 기록 다음의 기록 버퍼 또는 메인 플래시 메모리내의 다른 섹터로부터 발생된다. 섹터 기록 동작 다음에, 기록 포인터는 다음의 가장 높은 물리적 섹터 어드레스에 포인팅하기 위하여 하나씩 증분된다. 기록 포인터가 최상위의 사용가능한 물리적 섹터 어드레스에 도달할 때, 기록 포인터는 최하위의 사용가능한 물리적 어드레스를 감싸고 이를 포인팅한다.
소거 포인터는 소거하기로 예정된 다음 소거 블록의 플래시 메모리 공간내의 소거 블록 어드레스를 지정한다. 소거 포인트내의 제 2필드는 소거 블록 하부에 위치한 제 1완성 섹터의 물리적 섹터 번호를 지정한다. 소거 블록 소거 동작 다음에, 소거 블록 번호는 하나씩 증분된다. 룩업 테이블(이하에서는 소거 블록 테이블이라고 함)은 소거 포인터가 포인팅하는 소거 블록 내에 제 1섹터의 물리적 섹터 어드레스를 제공한다. 소거 블록이 전체적으로 결함을 가지고 있으며 기록될 수 있는 섹터를 가지고 있지 않으면(소거 블록 테이블에서 특정 엔트리에 의하여 구별됨), 소거 포인터는 다시 증분된다. 소거 포인터가 최상위 사용가능한 소거 블록에 도달하면, 소거 포인트는 다시 메모리의 최하위 부분으로 복귀하고 최하위의 사용가능한 소거 블록을 포인팅한다. 소거 블록은 현재 기록 위치 바로 위의 소거된 섹터 위치가 동일한 수를 유지하도록 하는 비율로 소거된다. 따라서 소거 포인터와 기록 포인터에서 지정된 섹터 번호사이의 차이가 소정 임계값이하로 될 때 소거 동작이 수행된다. 소거 블록을 소거하기 전에, 상기 소거 블록 내에 유효 데이터를 포함하는 섹터는 재배치되어야 한다. 이러한 유효 데이터의 재배치는 재배치 버퍼(이하에서 변환 버퍼라고 한다)로 유효 데이터를 가진 섹터를 판독하고 이들을 다시 기록 포인터에 의하여 지정된 위치로 기록함으로써 이루어진다. 로직 대 물리적 어드레스 번역 테이블은 섹터에 대한 새로운 물리적 섹터 어드레스를 포인팅하기 위하여 갱신된다. 유효 섹터만이 이러한 방식에 의하여 재배치되고 유효하지 않은 데이터를 가진 섹터는 자동적으로 소거되기 때문에, 저장된 데이터의 자동 압축이 이루어진다.
러한 알고리듬에 의하여 수행되는 프로세스는 전체 플래시 메모리 공간을 통하여 순환하는 소거된 메모리의 인접하는 작은 영역에 대하여 균등하게 될 수 있다. 분할된 섹터의 제거는 상부 영역에서 발생되고 이들의 압축 및 재배치는 하부 영역에서 발생한다.
상기 실시예에 대한 여러 가지 변형이 본 발명의 범위 내에서 이루어질 수 있다. 예를 들어, 선택적으로, 소거된 메모리 셀의 인접 영역은 다른 방향으로 제거될 수 있다. 즉, 하부 영역이 제거되면, 하부 영역 바로 밑에 있는 분할 섹터 및 유효 데이터는 상부 영역 바로 하부의 위치에 기록된다.
Claims (13)
- 각각 미리 지정된 물리적 어드레스를 가지며 블록 단위로 소거가능한 비휘발성 메모리 셀로 구성된 다수의 저장 수단 및 상기 미리 지정된 물리적 어드레스중 특정한 하나의 어드레스로 로직 어드레스를 번역하는 번역 수단을 포함하는 메모리 장치에 있어서,비어 있는 저장 수단을 포인팅하는 제 1포인터를 저장하는 수단 및 상기 기록되지 않은 메모리 위치를 포함하는 소거가능한 블록과 순차적으로 정렬된 다음의 소거되지 않은 소거가능한 블록을 포인팅하는 제 2포인터를 저장하는 수단; 및제 1포인터에 의하여 표시된 저장 수단과 제 2포인터에 의하여 표시된 저장 수단사이에 항상 적어도 하나의 비어 있는 소거가능한 블록이 존재하도록 하는 제어 수단을 포함하는 것을 특징으로 하는 메모리 장치.
- 제 1항에 있어서, 상기 저장 수단내의 기록되지 않은 위치는 상기 저장 수단내의 최하위의 기록되지 않은 위치인 것을 특징으로 하는 메모리 장치.
- 제 1항에 있어서, 상기 저장 수단내의 기록되지 않은 위치는 상기 저장 수단내의 최상위의 기록되지 않은 위치인 것을 특징으로 하는 메모리 장치.
- 제 1 또는 2항에 있어서, 상기 기록되지 않은 메모리 위치를 포함하는 소거가능한 블록과 순차적으로 정렬된 다음의 소거되지 않은 소거가능한 블록은 상기 제 1포인터 위의 최하위 물리적 어드레스를 가진 소거되지 않은 블록인 것을 특징으로 하는 메모리 장치.
- 제 1 또는 3항에 있어서, 상기 기록되지 않은 메모리 위치를 포함하는 소거가능한 블록과 순차적으로 정렬된 다음의 소거되지 않은 소거가능한 블록은 상기 제 1포인터 아래의 최하위 물리적 어드레스를 가진 소거되지 않은 블록인 것을 특징으로 하는 메모리 장치.
- 제 1항에 있어서, 상기 기록되지 않은 메모리 위치를 포함하는 소거가능한 블록과 순차적으로 정렬된 다음의 소거되지 않은 소거가능한 블록은 알고리듬에 의하여 결정되는 것을 특징으로 하는 메모리 장치.
- 전술한 항중 어느 한항에 있어서, 상기 저장 수단에 대한 데이터 기록 속도를 증가시키기 위하여 버퍼가 사용되는 것을 특징으로 하는 메모리 장치.
- 제 7항에 있어서, 상기 버퍼는 SRAM 버퍼인 것을 특징으로 하는 메모리 장치.
- 제 7항에 있어서, 상기 버퍼는 DRAM 버퍼인 것을 특징으로 하는 메모리 장치.
- 전술한 항중 어느 한항에 있어서, 상기 저장 수단은 플래시 EPROM인 것을 특징으로 하는 메모리 장치.
- 전술한 항중 어느 한항에 있어서, 상기 저장 수단은 칼코제니드 셀로 구성되는 것을 특징으로 하는 메모리 장치.
- 전술한 항중 어느 한항에 있어서, 상기 저장 수단은 강광학성 메모리인 것을 특징으로 하는 메모리 장치.
- 전술한 항중 어느 한항에 있어서, 상기 제어 수단은 마이크로프로세서, 마이크로프로세서, 마이크로컨트롤러 또는 상태 머쉰에 의하여 제공되는 것을 특징으로 하는 메모리 장치.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9519670A GB2291991A (en) | 1995-09-27 | 1995-09-27 | Disk drive emulation with a block-erasable memory |
GB9519670.5 | 1995-09-27 | ||
PCT/GB1996/000250 WO1997012325A1 (en) | 1995-09-27 | 1996-02-06 | Memory systems |
Publications (1)
Publication Number | Publication Date |
---|---|
KR19990063715A true KR19990063715A (ko) | 1999-07-26 |
Family
ID=10781332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019980702182A KR19990063715A (ko) | 1995-09-27 | 1996-02-06 | 메모리 시스템 |
Country Status (9)
Country | Link |
---|---|
US (1) | US6069827A (ko) |
EP (1) | EP0852766B1 (ko) |
JP (3) | JPH11511879A (ko) |
KR (1) | KR19990063715A (ko) |
CN (1) | CN1139031C (ko) |
AT (1) | ATE201105T1 (ko) |
DE (1) | DE69612752T2 (ko) |
GB (1) | GB2291991A (ko) |
WO (1) | WO1997012325A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8159889B2 (en) | 2005-01-11 | 2012-04-17 | Samsung Electronics Co., Ltd. | Solid state disk controller apparatus |
Families Citing this family (151)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7190617B1 (en) * | 1989-04-13 | 2007-03-13 | Sandisk Corporation | Flash EEprom system |
EP0675502B1 (en) * | 1989-04-13 | 2005-05-25 | SanDisk Corporation | Multiple sector erase flash EEPROM system |
US6347051B2 (en) * | 1991-11-26 | 2002-02-12 | Hitachi, Ltd. | Storage device employing a flash memory |
US5845313A (en) | 1995-07-31 | 1998-12-01 | Lexar | Direct logical block addressing flash memory mass storage architecture |
US5838614A (en) * | 1995-07-31 | 1998-11-17 | Lexar Microsystems, Inc. | Identification and verification of a sector within a block of mass storage flash memory |
US6728851B1 (en) | 1995-07-31 | 2004-04-27 | Lexar Media, Inc. | Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices |
US8171203B2 (en) * | 1995-07-31 | 2012-05-01 | Micron Technology, Inc. | Faster write operations to nonvolatile memory using FSInfo sector manipulation |
US6978342B1 (en) | 1995-07-31 | 2005-12-20 | Lexar Media, Inc. | Moving sectors within a block of information in a flash memory mass storage architecture |
GB9606928D0 (en) | 1996-04-02 | 1996-06-05 | Memory Corp Plc | Memory devices |
KR0185954B1 (ko) * | 1996-09-30 | 1999-05-15 | 삼성전자주식회사 | 휴대형 단말기기의 메모리 관리방법 |
JP3519913B2 (ja) * | 1997-06-10 | 2004-04-19 | 三洋電機株式会社 | ディジタルスチルカメラ |
JPH1196775A (ja) * | 1997-09-26 | 1999-04-09 | Daikin Ind Ltd | データ格納方法、データ格納装置及びコンテナ用冷凍装置 |
US6029237A (en) * | 1997-10-08 | 2000-02-22 | Dell Usa, L.P. | Method for simulating the presence of a diskette drive in a NetPC computer that contains only a hard disk drive |
JP2000067574A (ja) * | 1998-08-21 | 2000-03-03 | Mitsubishi Electric Corp | 半導体記憶装置 |
JP4046877B2 (ja) | 1998-12-14 | 2008-02-13 | 株式会社ルネサステクノロジ | 一括消去型不揮発性メモリおよび携帯電話 |
FR2787601A1 (fr) * | 1998-12-22 | 2000-06-23 | Gemplus Card Int | Systeme de memorisation comprenant des moyens de gestion d'une memoire avec anti-usure et procede de gestion anti-usure d'une memoire |
GB9903490D0 (en) * | 1999-02-17 | 1999-04-07 | Memory Corp Plc | Memory system |
EP1046996B1 (en) * | 1999-03-23 | 2005-04-13 | International Business Machines Corporation | Memory defragmentation in chipcards |
US6427186B1 (en) * | 1999-03-30 | 2002-07-30 | Frank (Fong-Long) Lin | Memory, interface system and method for mapping logical block numbers to physical sector numbers in a flash memory, using a master index table and a table of physical sector numbers |
US6148354A (en) | 1999-04-05 | 2000-11-14 | M-Systems Flash Disk Pioneers Ltd. | Architecture for a universal serial bus-based PC flash disk |
US6535949B1 (en) * | 1999-04-19 | 2003-03-18 | Research In Motion Limited | Portable electronic device having a log-structured file system in flash memory |
JP4105819B2 (ja) * | 1999-04-26 | 2008-06-25 | 株式会社ルネサステクノロジ | 記憶装置およびメモリカード |
KR100577380B1 (ko) * | 1999-09-29 | 2006-05-09 | 삼성전자주식회사 | 플래시 메모리와 그 제어 방법 |
US6643754B1 (en) * | 2000-02-15 | 2003-11-04 | International Business Machines Corporation | System and method for dynamically allocating computer memory |
US7991917B1 (en) | 2000-07-05 | 2011-08-02 | Mcafee, Inc. | High performance packet processing using a general purpose processor |
US7167944B1 (en) | 2000-07-21 | 2007-01-23 | Lexar Media, Inc. | Block management for mass storage |
US6742140B2 (en) | 2000-12-01 | 2004-05-25 | Jason R. Caulkins | Method for using volatile memory for long-term storage |
US6473355B2 (en) | 2000-12-01 | 2002-10-29 | Genatek, Inc. | Apparatus for using volatile memory for long-term storage |
JP4282989B2 (ja) * | 2000-12-20 | 2009-06-24 | エヌエックスピー ビー ヴィ | Womメモリーを備えたデータ処理装置 |
US6421276B1 (en) * | 2001-08-09 | 2002-07-16 | Tower Semiconductor Ltd. | Method and apparatus for controlling erase operations of a non-volatile memory system |
GB0123410D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Memory system for data storage and retrieval |
GB0123422D0 (en) * | 2001-09-28 | 2001-11-21 | Memquest Ltd | Improved memory controller |
GB0123421D0 (en) * | 2001-09-28 | 2001-11-21 | Memquest Ltd | Power management system |
GB0123416D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Non-volatile memory control |
GB0123415D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Method of writing data to non-volatile memory |
GB0123417D0 (en) * | 2001-09-28 | 2001-11-21 | Memquest Ltd | Improved data processing |
US6772276B2 (en) * | 2002-01-04 | 2004-08-03 | Intel Corporation | Flash memory command abstraction |
US7231643B1 (en) | 2002-02-22 | 2007-06-12 | Lexar Media, Inc. | Image rescue system including direct communication between an application program and a device driver |
US7085879B2 (en) | 2002-02-27 | 2006-08-01 | Microsoft Corporation | Dynamic data structures for tracking data stored in a flash memory device |
US6901499B2 (en) | 2002-02-27 | 2005-05-31 | Microsoft Corp. | System and method for tracking data stored in a flash memory device |
US20030163633A1 (en) * | 2002-02-27 | 2003-08-28 | Aasheim Jered Donald | System and method for achieving uniform wear levels in a flash memory device |
US7010662B2 (en) | 2002-02-27 | 2006-03-07 | Microsoft Corporation | Dynamic data structures for tracking file system free space in a flash memory device |
US7533214B2 (en) | 2002-02-27 | 2009-05-12 | Microsoft Corporation | Open architecture flash driver |
GB0205751D0 (en) | 2002-03-12 | 2002-04-24 | James Barry E | Improvements relating to memory devices |
US6587383B1 (en) * | 2002-03-19 | 2003-07-01 | Micron Technology, Inc. | Erase block architecture for non-volatile memory |
JP2003280979A (ja) * | 2002-03-20 | 2003-10-03 | Toshiba Corp | 情報記憶装置 |
US20050036387A1 (en) * | 2002-04-24 | 2005-02-17 | Seal Brian K. | Method of using flash memory for storing metering data |
US6798353B2 (en) | 2002-04-24 | 2004-09-28 | Itron Electricity Metering, Inc. | Method of using flash memory for storing metering data |
EP1523711A1 (en) * | 2002-06-19 | 2005-04-20 | Tokyo Electron Device Limited | Memory device, memory managing method and program |
JP4483582B2 (ja) * | 2002-10-15 | 2010-06-16 | 旭硝子株式会社 | 撥水撥油剤組成物 |
US7082512B2 (en) | 2002-11-21 | 2006-07-25 | Microsoft Corporation | Dynamic data structures for tracking file system free space in a flash memory device |
KR100490603B1 (ko) * | 2002-12-06 | 2005-05-27 | (주) 라모스테크놀러지 | 플래시 메모리 동작 제어 방법 및 장치 |
US7293203B1 (en) * | 2003-04-23 | 2007-11-06 | Network Appliance, Inc. | System and method for logging disk failure analysis in disk nonvolatile memory |
JP4567966B2 (ja) * | 2003-12-22 | 2010-10-27 | 株式会社東芝 | エミュレーションシステムおよびエミュレーション方法 |
KR100526190B1 (ko) * | 2004-02-06 | 2005-11-03 | 삼성전자주식회사 | 플래시 메모리의 재사상 방법 |
US7725628B1 (en) | 2004-04-20 | 2010-05-25 | Lexar Media, Inc. | Direct secondary device interface by a host |
CN100437517C (zh) * | 2004-04-28 | 2008-11-26 | 松下电器产业株式会社 | 非易失性存储装置和数据写入方法 |
US7370166B1 (en) | 2004-04-30 | 2008-05-06 | Lexar Media, Inc. | Secure portable storage device |
JP2006048585A (ja) * | 2004-08-09 | 2006-02-16 | Fujitsu Ltd | フラッシュメモリのアクセス方法 |
US7594063B1 (en) | 2004-08-27 | 2009-09-22 | Lexar Media, Inc. | Storage capacity status |
US7464306B1 (en) | 2004-08-27 | 2008-12-09 | Lexar Media, Inc. | Status of overall health of nonvolatile memory |
KR100725390B1 (ko) * | 2005-01-06 | 2007-06-07 | 삼성전자주식회사 | 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법 |
US7187583B2 (en) * | 2005-01-25 | 2007-03-06 | Phison Electronics Corp. | Method for reducing data error when flash memory storage device using copy back command |
US20060184719A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct data file storage implementation techniques in flash memories |
US7877539B2 (en) * | 2005-02-16 | 2011-01-25 | Sandisk Corporation | Direct data file storage in flash memories |
US9104315B2 (en) | 2005-02-04 | 2015-08-11 | Sandisk Technologies Inc. | Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage |
US20060184718A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct file data programming and deletion in flash memories |
US7627733B2 (en) * | 2005-08-03 | 2009-12-01 | Sandisk Corporation | Method and system for dual mode access for storage devices |
US7949845B2 (en) * | 2005-08-03 | 2011-05-24 | Sandisk Corporation | Indexing of file data in reprogrammable non-volatile memories that directly store data files |
US7984084B2 (en) * | 2005-08-03 | 2011-07-19 | SanDisk Technologies, Inc. | Non-volatile memory with scheduled reclaim operations |
US7480766B2 (en) * | 2005-08-03 | 2009-01-20 | Sandisk Corporation | Interfacing systems operating through a logical address space and on a direct data file basis |
US7669003B2 (en) * | 2005-08-03 | 2010-02-23 | Sandisk Corporation | Reprogrammable non-volatile memory systems with indexing of directly stored data files |
US7558906B2 (en) | 2005-08-03 | 2009-07-07 | Sandisk Corporation | Methods of managing blocks in nonvolatile memory |
US7552271B2 (en) | 2005-08-03 | 2009-06-23 | Sandisk Corporation | Nonvolatile memory with block management |
US7814262B2 (en) * | 2005-10-13 | 2010-10-12 | Sandisk Corporation | Memory system storing transformed units of data in fixed sized storage blocks |
US7529905B2 (en) * | 2005-10-13 | 2009-05-05 | Sandisk Corporation | Method of storing transformed units of data in a memory system having fixed sized storage blocks |
US7877540B2 (en) * | 2005-12-13 | 2011-01-25 | Sandisk Corporation | Logically-addressed file storage methods |
US7747837B2 (en) * | 2005-12-21 | 2010-06-29 | Sandisk Corporation | Method and system for accessing non-volatile storage devices |
US7793068B2 (en) * | 2005-12-21 | 2010-09-07 | Sandisk Corporation | Dual mode access for non-volatile storage devices |
US7769978B2 (en) * | 2005-12-21 | 2010-08-03 | Sandisk Corporation | Method and system for accessing non-volatile storage devices |
CN101292229B (zh) * | 2005-12-28 | 2012-05-30 | 富士通株式会社 | 用于控制存储器的方法和设备 |
US8745315B2 (en) | 2006-11-06 | 2014-06-03 | Rambus Inc. | Memory Systems and methods supporting volatile and wear-leveled nonvolatile physical memory |
US8935302B2 (en) | 2006-12-06 | 2015-01-13 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume |
US9495241B2 (en) | 2006-12-06 | 2016-11-15 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for adaptive data storage |
CN101715575A (zh) | 2006-12-06 | 2010-05-26 | 弗森多系统公司(dba弗森-艾奥) | 采用数据管道管理数据的装置、系统和方法 |
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 |
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 |
US7669092B2 (en) * | 2007-02-26 | 2010-02-23 | Micron Technology, Inc. | Apparatus, method, and system of NAND defect management |
US8429677B2 (en) | 2007-04-19 | 2013-04-23 | Microsoft Corporation | Composite solid state drive identification and optimization technologies |
US8429352B2 (en) * | 2007-06-08 | 2013-04-23 | Sandisk Technologies Inc. | Method and system for memory block flushing |
US8339865B2 (en) * | 2007-11-01 | 2012-12-25 | Spansion Israel Ltd | Non binary flash array architecture and method of operation |
US20090271562A1 (en) * | 2008-04-25 | 2009-10-29 | Sinclair Alan W | Method and system for storage address re-mapping for a multi-bank memory device |
US9772936B2 (en) * | 2008-07-10 | 2017-09-26 | Micron Technology, Inc. | Data collection and compression in a solid state storage device |
US8213229B2 (en) * | 2008-08-22 | 2012-07-03 | HGST Netherlands, B.V. | Error control in a flash memory device |
DE102008054627A1 (de) * | 2008-12-15 | 2010-06-17 | Robert Bosch Gmbh | Steuergerät mit dem Verfahren zum Manipulationsschutz Computerprogramm, Computerprogrammprodukt |
US8281227B2 (en) | 2009-05-18 | 2012-10-02 | Fusion-10, Inc. | Apparatus, system, and method to increase data integrity in a redundant storage system |
US20110035540A1 (en) * | 2009-08-10 | 2011-02-10 | Adtron, Inc. | Flash blade system architecture and method |
US8473669B2 (en) * | 2009-12-07 | 2013-06-25 | Sandisk Technologies Inc. | Method and system for concurrent background and foreground operations in a non-volatile memory array |
US8285946B2 (en) * | 2009-12-15 | 2012-10-09 | International Business Machines Corporation | Reducing access contention in flash-based memory systems |
US10360143B2 (en) | 2010-07-01 | 2019-07-23 | Qualcomm Incorporated | Parallel use of integrated non-volatile memory and main volatile memory within a mobile device |
US8452911B2 (en) | 2010-09-30 | 2013-05-28 | Sandisk Technologies Inc. | Synchronized maintenance operations in a multi-bank storage system |
JP5468184B2 (ja) | 2010-10-29 | 2014-04-09 | エンパイア テクノロジー ディベロップメント エルエルシー | ソリッドステートドライブのための消去カウントを軽減した高機能データ符号化 |
US20120239860A1 (en) | 2010-12-17 | 2012-09-20 | Fusion-Io, Inc. | Apparatus, system, and method for persistent data management on a non-volatile storage media |
US8918578B2 (en) | 2011-08-02 | 2014-12-23 | General Electric Company | Method and system of a timer based buffer used for metrology |
US9098399B2 (en) | 2011-08-31 | 2015-08-04 | SMART Storage Systems, Inc. | Electronic system with storage management mechanism and method of operation thereof |
US9021231B2 (en) | 2011-09-02 | 2015-04-28 | SMART Storage Systems, Inc. | Storage control system with write amplification control mechanism and method of operation thereof |
US9021319B2 (en) | 2011-09-02 | 2015-04-28 | SMART Storage Systems, Inc. | Non-volatile memory management system with load leveling and method of operation thereof |
US8762627B2 (en) | 2011-12-21 | 2014-06-24 | Sandisk Technologies Inc. | Memory logical defragmentation during garbage collection |
US9239781B2 (en) | 2012-02-07 | 2016-01-19 | SMART Storage Systems, Inc. | Storage control system with erase block mechanism and method of operation thereof |
US10019353B2 (en) | 2012-03-02 | 2018-07-10 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for referencing data on a storage medium |
US9671962B2 (en) | 2012-11-30 | 2017-06-06 | Sandisk Technologies Llc | Storage control system with data management mechanism of parity and method of operation thereof |
US9734050B2 (en) | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for managing background operations in a multi-layer memory |
US9348746B2 (en) | 2012-12-31 | 2016-05-24 | Sandisk Technologies | Method and system for managing block reclaim operations in a multi-layer memory |
US8873284B2 (en) | 2012-12-31 | 2014-10-28 | Sandisk Technologies Inc. | Method and system for program scheduling in a multi-layer memory |
US9465731B2 (en) | 2012-12-31 | 2016-10-11 | Sandisk Technologies Llc | Multi-layer non-volatile memory system having multiple partitions in a layer |
US9734911B2 (en) | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for asynchronous die operations in a non-volatile memory |
US9336133B2 (en) | 2012-12-31 | 2016-05-10 | Sandisk Technologies Inc. | Method and system for managing program cycles including maintenance programming operations in a multi-layer memory |
US9223693B2 (en) | 2012-12-31 | 2015-12-29 | Sandisk Technologies Inc. | Memory system having an unequal number of memory die on different control channels |
CN104919433B (zh) | 2013-01-11 | 2017-10-31 | 英派尔科技开发有限公司 | 用于闪存的页面分配 |
US9123445B2 (en) | 2013-01-22 | 2015-09-01 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
US9329928B2 (en) | 2013-02-20 | 2016-05-03 | Sandisk Enterprise IP LLC. | Bandwidth optimization in a non-volatile memory system |
US9214965B2 (en) | 2013-02-20 | 2015-12-15 | Sandisk Enterprise Ip Llc | Method and system for improving data integrity in non-volatile storage |
US9183137B2 (en) | 2013-02-27 | 2015-11-10 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
WO2014133490A1 (en) | 2013-02-27 | 2014-09-04 | Empire Technology Development Llc | Linear programming based decoding for memory devices |
US8812744B1 (en) | 2013-03-14 | 2014-08-19 | Microsoft Corporation | Assigning priorities to data for hybrid drives |
US9043780B2 (en) | 2013-03-27 | 2015-05-26 | SMART Storage Systems, Inc. | Electronic system with system modification control mechanism and method of operation thereof |
US10049037B2 (en) | 2013-04-05 | 2018-08-14 | Sandisk Enterprise Ip Llc | Data management in a storage system |
US9170941B2 (en) | 2013-04-05 | 2015-10-27 | Sandisk Enterprises IP LLC | Data hardening in a storage system |
US9543025B2 (en) | 2013-04-11 | 2017-01-10 | Sandisk Technologies Llc | Storage control system with power-off time estimation mechanism and method of operation thereof |
US10546648B2 (en) | 2013-04-12 | 2020-01-28 | Sandisk Technologies Llc | Storage control system with data management mechanism and method of operation thereof |
US9626126B2 (en) | 2013-04-24 | 2017-04-18 | Microsoft Technology Licensing, Llc | Power saving mode hybrid drive access management |
US9946495B2 (en) | 2013-04-25 | 2018-04-17 | Microsoft Technology Licensing, Llc | Dirty data management for hybrid drives |
US9898056B2 (en) | 2013-06-19 | 2018-02-20 | Sandisk Technologies Llc | Electronic assembly with thermal channel and method of manufacture thereof |
US9367353B1 (en) | 2013-06-25 | 2016-06-14 | Sandisk Technologies Inc. | Storage control system with power throttling mechanism and method of operation thereof |
US9244519B1 (en) | 2013-06-25 | 2016-01-26 | Smart Storage Systems. Inc. | Storage system with data transfer rate adjustment for power throttling |
US9146850B2 (en) | 2013-08-01 | 2015-09-29 | SMART Storage Systems, Inc. | Data storage system with dynamic read threshold mechanism and method of operation thereof |
US9448946B2 (en) | 2013-08-07 | 2016-09-20 | Sandisk Technologies Llc | Data storage system with stale data mechanism and method of operation thereof |
US9361222B2 (en) | 2013-08-07 | 2016-06-07 | SMART Storage Systems, Inc. | Electronic system with storage drive life estimation mechanism and method of operation thereof |
US9431113B2 (en) | 2013-08-07 | 2016-08-30 | Sandisk Technologies Llc | Data storage system with dynamic erase block grouping mechanism and method of operation thereof |
US9880926B1 (en) * | 2013-08-20 | 2018-01-30 | Seagate Technology Llc | Log structured reserved zone for a data storage device |
US9152555B2 (en) | 2013-11-15 | 2015-10-06 | Sandisk Enterprise IP LLC. | Data management with modular erase in a data storage system |
US9859925B2 (en) | 2013-12-13 | 2018-01-02 | Empire Technology Development Llc | Low-complexity flash memory data-encoding techniques using simplified belief propagation |
US20150186257A1 (en) * | 2013-12-26 | 2015-07-02 | Anand S. Ramalingam | Managing a transfer buffer for a non-volatile memory |
JP5981477B2 (ja) * | 2014-04-04 | 2016-08-31 | Necプラットフォームズ株式会社 | フラッシュメモリ制御装置、フラッシュメモリ内蔵機器、フラッシュメモリ制御方法、及びそのためのプログラム |
US9653184B2 (en) | 2014-06-16 | 2017-05-16 | Sandisk Technologies Llc | Non-volatile memory module with physical-to-physical address remapping |
US9613715B2 (en) | 2014-06-16 | 2017-04-04 | Sandisk Technologies Llc | Low-test memory stack for non-volatile storage |
US10042553B2 (en) | 2015-10-30 | 2018-08-07 | Sandisk Technologies Llc | Method and system for programming a multi-layer non-volatile memory having a single fold data path |
US9778855B2 (en) | 2015-10-30 | 2017-10-03 | Sandisk Technologies Llc | System and method for precision interleaving of data writes in a non-volatile memory |
US10133490B2 (en) | 2015-10-30 | 2018-11-20 | Sandisk Technologies Llc | System and method for managing extended maintenance scheduling in a non-volatile memory |
US10120613B2 (en) | 2015-10-30 | 2018-11-06 | Sandisk Technologies Llc | System and method for rescheduling host and maintenance operations in a non-volatile memory |
US10567460B2 (en) * | 2016-06-09 | 2020-02-18 | Apple Inc. | Managing data using a time-based directory structure |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4498146A (en) * | 1982-07-30 | 1985-02-05 | At&T Bell Laboratories | Management of defects in storage media |
US4511964A (en) * | 1982-11-12 | 1985-04-16 | Hewlett-Packard Company | Dynamic physical memory mapping and management of independent programming environments |
EP0675502B1 (en) * | 1989-04-13 | 2005-05-25 | SanDisk Corporation | Multiple sector erase flash EEPROM system |
US5200959A (en) * | 1989-10-17 | 1993-04-06 | Sundisk Corporation | Device and method for defect handling in semi-conductor memory |
FR2665791B1 (fr) * | 1990-08-13 | 1994-11-10 | Didier Mazingue | Procede de mise a jour d'une memoire eeprom. |
GB2251323B (en) * | 1990-12-31 | 1994-10-12 | Intel Corp | Disk emulation for a non-volatile semiconductor memory |
GB2251324B (en) * | 1990-12-31 | 1995-05-10 | Intel Corp | File structure for a non-volatile semiconductor memory |
JP2582487B2 (ja) * | 1991-07-12 | 1997-02-19 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 半導体メモリを用いた外部記憶システム及びその制御方法 |
US5291584A (en) * | 1991-07-23 | 1994-03-01 | Nexcom Technology, Inc. | Methods and apparatus for hard disk emulation |
JPH05151097A (ja) * | 1991-11-28 | 1993-06-18 | Fujitsu Ltd | 書換回数制限型メモリのデータ管理方式 |
US5359570A (en) * | 1992-11-13 | 1994-10-25 | Silicon Storage Technology, Inc. | Solid state peripheral storage device |
US5459850A (en) * | 1993-02-19 | 1995-10-17 | Conner Peripherals, Inc. | Flash solid state drive that emulates a disk drive and stores variable length and fixed lenth data blocks |
US5404485A (en) * | 1993-03-08 | 1995-04-04 | M-Systems Flash Disk Pioneers Ltd. | Flash file system |
US5479638A (en) * | 1993-03-26 | 1995-12-26 | Cirrus Logic, Inc. | Flash memory mass storage architecture incorporation wear leveling technique |
US5388083A (en) * | 1993-03-26 | 1995-02-07 | Cirrus Logic, Inc. | Flash memory mass storage architecture |
US5485595A (en) * | 1993-03-26 | 1996-01-16 | Cirrus Logic, Inc. | Flash memory mass storage architecture incorporating wear leveling technique without using cam cells |
KR970008188B1 (ko) * | 1993-04-08 | 1997-05-21 | 가부시끼가이샤 히다찌세이사꾸쇼 | 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치 |
JP2971302B2 (ja) * | 1993-06-30 | 1999-11-02 | シャープ株式会社 | Eepromを使用した記録装置 |
US6173385B1 (en) * | 1993-11-19 | 2001-01-09 | Disk Emulation Systems, Inc. | Address generator for solid state disk drive |
JPH07210468A (ja) * | 1994-01-18 | 1995-08-11 | Hitachi Ltd | 半導体補助記憶装置 |
US5473765A (en) * | 1994-01-24 | 1995-12-05 | 3Com Corporation | Apparatus for using flash memory as a floppy disk emulator in a computer system |
-
1995
- 1995-09-27 GB GB9519670A patent/GB2291991A/en not_active Withdrawn
-
1996
- 1996-02-06 EP EP96901895A patent/EP0852766B1/en not_active Expired - Lifetime
- 1996-02-06 WO PCT/GB1996/000250 patent/WO1997012325A1/en not_active Application Discontinuation
- 1996-02-06 AT AT96901895T patent/ATE201105T1/de not_active IP Right Cessation
- 1996-02-06 DE DE69612752T patent/DE69612752T2/de not_active Expired - Lifetime
- 1996-02-06 KR KR1019980702182A patent/KR19990063715A/ko not_active Application Discontinuation
- 1996-02-06 JP JP8532831A patent/JPH11511879A/ja not_active Withdrawn
- 1996-02-06 CN CNB961972408A patent/CN1139031C/zh not_active Expired - Lifetime
-
1998
- 1998-03-24 US US09/046,518 patent/US6069827A/en not_active Expired - Lifetime
-
2006
- 2006-07-14 JP JP2006194636A patent/JP2006277775A/ja not_active Withdrawn
-
2007
- 2007-07-23 JP JP2007191427A patent/JP4511576B2/ja not_active Expired - Lifetime
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8159889B2 (en) | 2005-01-11 | 2012-04-17 | Samsung Electronics Co., Ltd. | Solid state disk controller apparatus |
US8917565B2 (en) | 2005-01-11 | 2014-12-23 | Samsung Electronics Co., Ltd. | Solid state disk controller apparatus |
US9223650B2 (en) | 2005-01-11 | 2015-12-29 | Samsung Electronics Co., Ltd. | Solid state disk controller apparatus |
US9652324B2 (en) | 2005-01-11 | 2017-05-16 | Samsung Electronics Co., Ltd. | Solid state disk controller apparatus |
Also Published As
Publication number | Publication date |
---|---|
JPH11511879A (ja) | 1999-10-12 |
JP2007317224A (ja) | 2007-12-06 |
JP2006277775A (ja) | 2006-10-12 |
GB2291991A (en) | 1996-02-07 |
DE69612752T2 (de) | 2002-02-28 |
EP0852766B1 (en) | 2001-05-09 |
GB9519670D0 (en) | 1995-11-29 |
DE69612752D1 (de) | 2001-06-13 |
JP4511576B2 (ja) | 2010-07-28 |
US6069827A (en) | 2000-05-30 |
CN1198226A (zh) | 1998-11-04 |
EP0852766A1 (en) | 1998-07-15 |
CN1139031C (zh) | 2004-02-18 |
WO1997012325A1 (en) | 1997-04-03 |
ATE201105T1 (de) | 2001-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4511576B2 (ja) | メモリシステム | |
US6772274B1 (en) | Flash memory system and method implementing LBA to PBA correlation within flash memory array | |
EP0852765B1 (en) | Memory management | |
JP4695801B2 (ja) | 不揮発性メモリ上で実行されるブロック書き込み動作時間を低減させる方法および装置 | |
US8797798B2 (en) | Flash EEPROM system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks | |
EP1739683B1 (en) | Space management for managing high capacity nonvolatile memory | |
US7634624B2 (en) | Memory system for data storage and retrieval | |
US6145051A (en) | Moving sectors within a block of information in a flash memory mass storage architecture | |
US6327639B1 (en) | Method and apparatus for storing location identification information within non-volatile memory devices | |
US5924113A (en) | Direct logical block addressing flash memory mass storage architecture | |
JP3997130B2 (ja) | メモリ管理方法 | |
EP1228510A1 (en) | Space management for managing high capacity nonvolatile memory | |
US20090210612A1 (en) | Memory controller, nonvolatile memory device, and nonvolatile memory system | |
US5860103A (en) | Method and apparatus using address and read head location information to provide optimal operation of a disk system | |
US20050204115A1 (en) | Semiconductor memory device, memory controller and data recording method | |
JPH05150913A (ja) | フラツシユメモリを記憶媒体としたシリコンデイスク |
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 |