KR19990063715A - 메모리 시스템 - Google Patents

메모리 시스템 Download PDF

Info

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
Application number
KR1019980702182A
Other languages
English (en)
Inventor
알란 웰시 싱클레어
Original Assignee
데이비드 존 새비쥐, 알란 웰시 싱클레어
메모리 코포레이션 피엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 데이비드 존 새비쥐, 알란 웰시 싱클레어, 메모리 코포레이션 피엘씨 filed Critical 데이비드 존 새비쥐, 알란 웰시 싱클레어
Publication of KR19990063715A publication Critical patent/KR19990063715A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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. 각각 미리 지정된 물리적 어드레스를 가지며 블록 단위로 소거가능한 비휘발성 메모리 셀로 구성된 다수의 저장 수단 및 상기 미리 지정된 물리적 어드레스중 특정한 하나의 어드레스로 로직 어드레스를 번역하는 번역 수단을 포함하는 메모리 장치에 있어서,
    비어 있는 저장 수단을 포인팅하는 제 1포인터를 저장하는 수단 및 상기 기록되지 않은 메모리 위치를 포함하는 소거가능한 블록과 순차적으로 정렬된 다음의 소거되지 않은 소거가능한 블록을 포인팅하는 제 2포인터를 저장하는 수단; 및
    제 1포인터에 의하여 표시된 저장 수단과 제 2포인터에 의하여 표시된 저장 수단사이에 항상 적어도 하나의 비어 있는 소거가능한 블록이 존재하도록 하는 제어 수단을 포함하는 것을 특징으로 하는 메모리 장치.
  2. 제 1항에 있어서, 상기 저장 수단내의 기록되지 않은 위치는 상기 저장 수단내의 최하위의 기록되지 않은 위치인 것을 특징으로 하는 메모리 장치.
  3. 제 1항에 있어서, 상기 저장 수단내의 기록되지 않은 위치는 상기 저장 수단내의 최상위의 기록되지 않은 위치인 것을 특징으로 하는 메모리 장치.
  4. 제 1 또는 2항에 있어서, 상기 기록되지 않은 메모리 위치를 포함하는 소거가능한 블록과 순차적으로 정렬된 다음의 소거되지 않은 소거가능한 블록은 상기 제 1포인터 위의 최하위 물리적 어드레스를 가진 소거되지 않은 블록인 것을 특징으로 하는 메모리 장치.
  5. 제 1 또는 3항에 있어서, 상기 기록되지 않은 메모리 위치를 포함하는 소거가능한 블록과 순차적으로 정렬된 다음의 소거되지 않은 소거가능한 블록은 상기 제 1포인터 아래의 최하위 물리적 어드레스를 가진 소거되지 않은 블록인 것을 특징으로 하는 메모리 장치.
  6. 제 1항에 있어서, 상기 기록되지 않은 메모리 위치를 포함하는 소거가능한 블록과 순차적으로 정렬된 다음의 소거되지 않은 소거가능한 블록은 알고리듬에 의하여 결정되는 것을 특징으로 하는 메모리 장치.
  7. 전술한 항중 어느 한항에 있어서, 상기 저장 수단에 대한 데이터 기록 속도를 증가시키기 위하여 버퍼가 사용되는 것을 특징으로 하는 메모리 장치.
  8. 제 7항에 있어서, 상기 버퍼는 SRAM 버퍼인 것을 특징으로 하는 메모리 장치.
  9. 제 7항에 있어서, 상기 버퍼는 DRAM 버퍼인 것을 특징으로 하는 메모리 장치.
  10. 전술한 항중 어느 한항에 있어서, 상기 저장 수단은 플래시 EPROM인 것을 특징으로 하는 메모리 장치.
  11. 전술한 항중 어느 한항에 있어서, 상기 저장 수단은 칼코제니드 셀로 구성되는 것을 특징으로 하는 메모리 장치.
  12. 전술한 항중 어느 한항에 있어서, 상기 저장 수단은 강광학성 메모리인 것을 특징으로 하는 메모리 장치.
  13. 전술한 항중 어느 한항에 있어서, 상기 제어 수단은 마이크로프로세서, 마이크로프로세서, 마이크로컨트롤러 또는 상태 머쉰에 의하여 제공되는 것을 특징으로 하는 메모리 장치.
KR1019980702182A 1995-09-27 1996-02-06 메모리 시스템 KR19990063715A (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (4)

* Cited by examiner, † Cited by third party
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