KR20110107857A - 솔리드 스테이트 메모리 포멧팅 - Google Patents

솔리드 스테이트 메모리 포멧팅 Download PDF

Info

Publication number
KR20110107857A
KR20110107857A KR1020117019230A KR20117019230A KR20110107857A KR 20110107857 A KR20110107857 A KR 20110107857A KR 1020117019230 A KR1020117019230 A KR 1020117019230A KR 20117019230 A KR20117019230 A KR 20117019230A KR 20110107857 A KR20110107857 A KR 20110107857A
Authority
KR
South Korea
Prior art keywords
memory
data
physical
file allocation
memory arrays
Prior art date
Application number
KR1020117019230A
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 KR20110107857A publication Critical patent/KR20110107857A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies

Abstract

본 발명은 솔리드 스테이트 드라이브 포멧팅을 위한 방법들 및 디바이스들을 포함한다. 하나의 디바이스 실시예는 다수의 메모리 어레이들에 결합된 제어 회로를 포함하고, 여기서 각 메모리는 메모리 셀들의 다수의 물리적 블록들을 갖는다. 메모리 어레이들은 시스템 데이터를 다수의 메모리 어레이들에 기록하고-시스템 데이터가 물리적 블록 경계에서 끝남-; 및 사용자 데이터를 다수의 메모리 어레이들에 기록-사용자 데이터는 물리적 블록 경계에서 시작함-하도록 구성되는 제어 회로에 의해 포멧팅된다.

Description

솔리드 스테이트 메모리 포멧팅{SOLID STATE MEMORY FORMATTING}
본 발명은 일반적으로 반도체 메모리 디바이스들, 방법들, 및 시스템들에 관한 것으로서, 보다 구체적으로는 솔리드 스테이트 드라이브 포멧팅에 관한 것이다.
메모리 디바이스들은 통상적으로 컴퓨터들 또는 다른 전자 디바이스들에서 인터널(internal), 반도체, 집적 회로들로서 제공된다. 휘발성 및 비-휘발성 메모리를 포함하는 다수의 상이한 형태들의 메모리가 존재한다. 휘발성 메모리는 그 데이터를 유지하는데 전력을 필요로 할 수 있고, 특히 랜덤-액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 및 동기식 동적 랜덤 액세스 메모리(SDRAM)를 포함한다. 비-휘발성 메모리는 전력 공급되지 않을 때 저장된 정보를 보유함으로써 영구적인 데이터를 제공할 수 있고 특히, NAND 플래시 메모리, NOR 플래시 메모리, 판독 전용 메모리(ROM), 전기적으로 삭제 가능한 프로그래밍 가능 ROM(EEPROM), 삭제 가능한 프로그래밍 가능 ROM(EPROM), 및 상변화 랜덤 액세스 메모리(PCRAM)를 포함한다.
메모리 디바이스들은 솔리드 스테이트 드라이브(SSD)를 형성하도록 서로 조합될 수 있다. 솔리드 스테이트 드라이브는 비-휘발성 및 휘발성 메모리의 다양한 다른 형태들 중에서 예를 들어, NAND 플래시 메모리 및 NOR 플래시 메모리와 같은 비-휘발성 메모리를 포함할 수 있고, 및/또는 예를 들어, DRAM 및 SRAM과 같은 휘발성 메모리를 포함할 수 있다.
SSD는 솔리드 스테이트 드라이브가 성능, 크기, 무게, 견고성, 동작 온도 범위, 및 전력 소비 견지에서 하드 드라이브들에 비해 이점을 가질 수 있기 때문에, 컴퓨터용 주요 저장 디바이스로서 하드 디스크 드라이브들을 대체하기 위해 사용될 수 있다. 예를 들어, SSD들은 이동부들(moving part)이 없기 때문에 자기 디스크 드라이브들에 비하면 우월한 성능을 가질 수 있고, 이는 탐색 시간, 지연, 및 자기 디스크 드라이브와 연관된 다른 전자-기계적 지연들을 향상시킬 수 있다. SSD 제조자들은 내부 배터리 전원을 이용하지 않을 수 있는 플래시 SSD들을 생성하기 위해 비-휘발성 플래시 메모리를 이용할 수 있고, 따라서, 드라이브가 더욱 다 기능적이고 간결하게 되는 것을 허용한다.
SSD는 다수의 메모리 디바이스들 예를 들어, 다수의 메모리 칩들(본 명세서에서 사용된 "다수의" 어떤 것(something)은 하나 이상의 이러한 사물들을 지칭할 수 있고 예를 들어, 다수의 메모리 디바이스들은 하나 이상의 메모리 디바이스들을 지칭할 수 있음)을 포함할 수 있다. 이 기술 분야의 숙련자가 이해할 수 있는 바와 같이, 메모리 칩은 다수의 다이들을 포함할 수 있다. 각 다이는 다수의 메모리 어레이들 및 그 주변 회로들을 포함할 수 있다. 메모리 어레이들은 다수의 물리적 블록들로 편성된(organized) 다수의 메모리 셀들을 포함할 수 있고, 물리적 블록들은 다수의 페이지들로 편성될 수 있다.
일부 저장 응용들을 위해, SSD들은 하드(디스크) 드라이브들에 대한 대체물 또는 컴플라이먼트(compliment)로서 사용될 수 있다. 이 사례들에서, SSD는 하드 디바이스의 기능들을 수용하도록 설계되었던 환경에 배치된다. SSD들과 하드 드라이브들 간의 최소 삭제 가능한 단위의 입도(granularity) 또는 양자화에서의 차이들로 인해(예를 들어, 하드 드라이브에 대해 512 바이트 섹터 대 SSD들의 128k 또는 256k), 계산 디바이스에서 하드 드라이브에 대한 대체물 또는 컴플라이먼트로서 사용되는 SSD는 최대 성능 레벨들에서 동작하지 않을 수 있다.
도 1은 본 발명의 하나 이상의 실시예에 따라 동작될 수 있는 전자 메모리 시스템의 기능적 블록도.
도 2는 본 발명의 하나 이상의 실시예들에 따라 메모리 어레이의 일부의 다이어그램을 예시하는 도면.
도 3은 본 발명의 하나 이상의 실시예들에 따라 다수의 메모리 어레이들의 파일 시스템의 다이어그램을 예시하는 도면.
도 4는 본 발명의 하나 이상의 실시예들에 따라 사용자 데이터가 블록도 경계에 정렬된 다수의 메모리 어레이들에 대한 파일 시스템의 다이어그램을 예시하는 도면.
도 5는 본 발명의 하나 이상의 실시예들에 따라 파일 할당 테이블 및 사용자 데이터가 블록 경계에 정렬된 다수의 메모리 어레이들에 대한 파일 시스템의 다이어그램을 예시하는 도면.
본 발명은 솔리드 스테이트 드라이브 포멧팅을 위한 방법들 및 디바이스들을 포함한다. 하나의 디바이스 실시예는 각 메모리 어레이가 메모리 셀들의 다수의 물리적 블록들을 갖는 다수의 메모리 어레이들에 결합된 제어 회로를 포함한다. 메모리 어레이들은 시스템 데이터는 물리적 블록 경계에서 종료하도록 시스템 데이터를 다수의 메모리 어레이들에 기록하고, 및 사용자 데이터가 물리적 블록 경계에서 시작하도록 사용자 데이터를 다수의 메모리 어레이들에 기록하도록 구성된 제어 회로에 의해 포멧팅될 수 있다.
본 발명의 이하의 상세한 설명에서, 명세서의 일부를 형성하고 본 발명의 하나 이상의 실시예들이 어떻게 실시될 수 있는지에 관한 예시로서 도시되는 첨부 도면들이 참조된다. 이 실시예들은 이 기술 분야의 숙련자가 본 발명의 실시예들을 실시하는 것을 가능하도록 충분히 상세하게 기술되고, 본 발명의 범위로부터 벗어남 없이 프로세스, 전기적 및/또는 구조적 변경들이 행해질 수 있는 다른 실시예들이 활용될 수 있다는 것을 이해한다. 여기서 사용된 바와 같이, 구체적으로 도면들에서 참조 번호들에 대해 지정자들 "N", "M", "R", 및 "S"은 이렇게 지정된 다수의 특별한 특징이 본 발명의 하나 이상의 실시예들과 함께 포함될 수 있다는 것을 표시한다.
본 명세서의 도면들은 첫 번째 숫자 또는 숫자들이 도면 번호에 대응하고 나머지 숫자들은 도면에서 엘리먼트 또는 구성요소를 식별한다는 번호 규칙을 따른다. 상이한 도면들 사이에서 유사한 엘리먼트들 또는 구성요소들은 유사한 숫자들을 사용하여 식별될 수 있다. 예를 들어, 130은 도면 1의 엘리먼트 "30"을 참조할 수 있고, 도 2에서 유사한 엘리먼트는 230으로서 참조될 수 있다. 이해될 것처럼, 본 명세서의 다양한 실시예들에 도시된 엘리먼트는 본 발명의 다수의 부가적인 실시예들을 제공하도록 부가, 교환, 및/또는 제거될 수 있다. 또한, 이해될 것처럼, 도면들에서 제공된 엘리먼트들의 비율 및 상대적 크기(scale)는 본 발명의 실시예들을 예시하기 위해 의도되었으며, 제한적인 의미로 받아들여져선 안 된다.
도 1은 본 발명의 하나 이상의 실시예들에 따라 동작될 수 있는 전자 메모리 시스템(120)의 기능적 블록도이다. 도 1에서 예시된 실시예에서, 메모리 시스템(120)은 예를 들어, 솔리드 스테이트 드라이브(SSD)일 수 있다. 도 1에서 예시되는 바와 같이, 시스템(120)은 메모리 제어기(101), 호스트 인터페이스 커넥터(103), 및 다수의 메모리 어레이들(130-1,...,130N), 예를 들어, 다수의 플래시 어레이들과 같은 다수의 솔리드 스테이트 메모리 어레이들을 포함할 수 있다.
인터페이스(103)는 메모리 시스템(120)과, 호스트 시스템(102)과 같은 다른 디바이스 사이에서 정보를 통신하는데 이용될 수 있다. 호스트 시스템(102)은 메모리 액세스 디바이스, 예를 들어, 처리기를 포함할 수 있다. 이 기술 분야의 숙련자는 "처리기"가 병렬 처리 시스템, 보조처리기들(coprocessors) 등과 같이 하나 이상의 처리기들을 의도할 수 있다는 것을 이해할 것이다. 호스트 시스템들의 예들로는 랩톱 컴퓨터들, 개인용 컴퓨터들, 디지털 카메라들, 디지털 레코딩 및 재생 디바이스들, PDA들, 메모리 카드 리더들, 인터페이스 허브들 등을 포함한다. 하나 이상의 실시예들에 있어서, 인터페이스(103)는 표준화된 인터페이스의 형태일 수 있다. 예를 들어, 호스트 인터페이스 커넥터(103)는 다른 커넥터들 및 인터페이스 중에서 직렬 고급 기술 연결(SATA), 주변 구성요소 상호접속 익스프레스(peripheral component interconnect express; PCIe), 또는 범용 직렬 버스(USB)일 수 있다. 그러나 일반적으로, 인터페이스(103)는 인터페이스(103)에 대해 호환 가능한 수용기들(receptors)을 구비한 호스트 시스템(102)과 메모리 시스템(120) 사이에서 제어, 어드레스, 데이터, 및 다른 신호들을 통과시키기 위한 인터페이스를 제공할 수 있다.
메모리 제어기(101)는 다른 동작들 중에서 데이터를 감지, 프로그래밍, 및 삭제하기 위해 어레이들(130-1,..., 130-N)과 통신할 수 있다. 메모리 제어기(101)는 하나 이상의 집적 회로들 및/또는 이산 컴포넌트들일 수 있는 회로를 가질 수 있다. 하나 이상의 실시예들에 있어서, 메모리 제어기(101)의 회로는 다수의 메모리 어레이들에 대한 액세스를 제어하기 위해 및/또는 외부 호스트와 메모리 시스템(120) 간의 번역층(translation layer)을 제공하기 위한 제어 회로를 포함할 수 있다. 따라서, 메모리 제어기는 적절한 I/O 연결시에 적절한 시간에 적절한 신호를 수신하도록 메모리 어레이의 I/O 연결(도 1에서 도시되지 않음)을 선택적으로 결합할 수 있다. 유사하게, 호스트(102)와 메모리 시스템(120) 간의 통신 프로토콜은 어레이들(130-1 내지 130-N)과 같은 메모리 어레이의 액세스를 위해 요구되는 것과 상이할 수 있다. 그 후 메모리 제어기(101)는 호스트 예를 들어, 102로부터 수신된 명령들을 적절한 명령들로 번역하여 메모리 어레이의 소정의 액세스를 달성할 수 있다.
메모리 어레이들(130-1,..., 130-N)은 예를 들어, NAND 아키텍처를 갖는 플래시 메모리 셀들일 수 있는 비-휘발성 메모리 셀들의 어레이일 수 있다. NAND 아키텍처에서, "로우(row)"의 메모리 셀들의 제어 게이트들은 워드 라인과 결합될 수 있고, 반면에 "컬럼(column)"의 메모리 셀들의 드레인 영역들은 비트 라인들에 결합될 수 있다. 메모리 셀들의 소스 영역들은 소스 라인들에 결합될 수 있다. 이 기술 분야의 숙련자가 이해할 수 있는 바와 같이, 비트 라인들 및 소스 라인들로의 메모리 셀들의 연결 방식은 어레이가 NAND 아키텍처인지, NOR 아키텍처인지, AND 아키텍처인지, 또는 몇몇 다른 메모리 어레이 아키텍처인지 여부에 의존한다.
도 1의 실시예는 본 발명의 실시예들을 모호하게 하지 않기 위해 예시되지 않은 부가적인 회로를 포함할 수 있다. 예를 들어, 메모리 시스템(120)은 I/O 회로를 통한 I/O 연결들을 통해 제공된 어드레스 신호들을 래치(latch)하기 위한 어드레스 회로를 포함할 수 있다. 어드레스 신호들은 메모리(130-1,..., 130-N)를 액세스하도록 로우 디코더 및 컬럼 디코더에 의해 수신 및 디코딩될 수 있다. 어드레스 입력 연결들의 수는 메모리((130-1,..., 130-N)의 밀도 및 아키텍처에 의존하고, 어드레스들의 수는 메모리 셀들의 증가한 수들 및 메모리 블록들 및 어레이들의 증가한 수들에 따라 증가한다는 것은 이 기술 분야의 숙련자라면 이해할 것이다.
도 2는 본 발명의 하나 이상의 실시예들에 따라 메모리 어레이(230)의 일부의 다이어그램을 예시한다. 도 2에서 도시되지 않았지만, 이 기술 분야의 숙련자는 메모리 어레이(230)가 그 동작들과 연관된 다양한 주변 회로들과 함께 특정 반도체 다이 상에 위치될 수 있다는 것을 이해할 것이다.
도 2에서 도시된 바와 같이, 어레이(230)는 메모리 셀들의 다수의 물리적인 블록들(240-0(블록 0), 240-1(블록 1),..., 240-M(블록 M))을 가진다. 도 1에 도시된 예에서, 표시자 "M"은 다수의 물리적인 블록들을 어레이(230)가 포함할 수 있다는 것을 표시하는데 이용된다. 메모리 셀들은 단일 레벨 셀들 및/또는 멀티레벨 셀들일 수 있다. 예로서, 어레이(230)의 다수의 물리적인 블록들은 128블록들, 512블록들, 또는 1,024블록들일 수 있지만, 실시예들은 128의 특정 배수 또는 어레이(230)내의 임의의 특정수의 물리적 블록들로 국한되지 않는다. 또한, 실시예들은 어레이에서 이용되는 메모리의 형태들, 예를 들어, 비-휘발성, 휘발성 등으로 국한되지 않는다. 도 2에서 예시된 실시예에서, 메모리 어레이(230)는 예를 들어, NAND 플래시 메모리 어레이(230)일 수 있다.
이 예에서, 각 물리적 블록(240-0, 240-1,..., 240-M)은 단위로서 함께 삭제될 수 있는 메모리 셀들을 포함할 수 있는데, 예를 들어, 각 물리적 블록의 셀들은 실질적으로 동시성 방식으로 삭제될 수 있다. 예를 들어, 각 물리적 블록의 셀들은 단일의 동작에서 함께 삭제될 수 있다. 각 물리적 블록, 예를 들어, 240-0, 240-1,..., 240-M은 액세스 라인, 예를 들어, 워드 라인에 결합된 메모리 셀들의 다수의 물리적 로우들 예를 들어, 250-0, 250-1,..., 250-R을 포함한다. 표시자 "R"은 물리적 블록, 예를 들어, 240-0, 240-1,..., 240-M이 다수의 로우들을 포함할 수 있다는 것을 표시하는데 이용된다. 일부 실시예들에서, 각 물리적 블록의 로우들의 수, 예를 들어, 워드 라인들은 32일 수 있지만, 실시예들에서 물리적 블록당 특정수의 로우들(250-0, 250-1,..., 250-R)로 국한되지 않는다.
이 기술 분야의 숙련자가 이해할 수 있는 바와 같이, 각 로우(250-0, 250-1,..., 250-R)는 하나 이상의 데이터의 페이지들을 저장할 수 있다. 페이지는 프로그래밍 및/또는 판독의 단위 예를 들어, 메모리 셀들의 기능적 그룹으로서 또는 함께 프로그래밍 및/또는 판독되는 셀들의 수를 지칭한다. 도 1에서 도시된 실시예에서, 각 로우(250-0, 250-1,..., 250-R)는 하나의 데이터 페이지를 저장한다. 그러나 본 발명의 실시예들은 이렇게 국한되지 않는다. 예를 들어, 본 발명의 일부 실시예들에서, 각 로우는 다수의 데이터의 페이지들을 저장할 수 있다. 예를 들어, 로우의 각 셀은 비트를 데이터의 상위 페이지에 기부(contribute)하고, 및 비트를 데이터의 하위 페이지에 기부할 수 있다. 하나 이상의 실시예들에서, 메모리 어레이는 메모리 셀들의 다수의 물리적 블록들을 포함할 수 있고, 각 물리적 블록은 다중 페이지들로 편성될 수 있다.
본 발명의 하나 이상의 실시예들에서, 및 도 2에서 도시된 바와 같이, 로우(250-0)와 같은 로우는 다수의 물리적 섹터들(252-0, 252-1,..., 252-S)에 따라 데이터를 저장할 수 있다. 표시자 "S"는 로우, 예를 들어, 250-0, 250-1,..., 250-R가 다수의 물리적 섹터들을 포함할 수 있다는 것을 표시하는데 이용된다. 각 물리적 섹터(252-0, 252-1,..., 252-S)는 논리적 섹터에 대응하는 데이터를 저장할 수 있고, 에러 보정 코드(ECC) 정보 및 논리적 블록 어드레스(LBA) 정보와 같은 오버헤드 정보와, 사용자 데이터를 포함할 수 있다. 이 기술 분야의 숙련자가 이해하는 바와 같이, 논리적 블록 어드레싱은 정보의 논리적 섹터를 식별하기 위해 호스트에서 종종 사용되는 스킴이다. 예로서, 데이터의 논리적 섹터는 다수의 데이터의 바이트들, 예를 들어, 256바이트, 512바이트, 또는 1,024바이트일 수 있다. 실시예들은 이 예들로 국한되지 않는다.
물리적 블록들(240-0, 240-1,..., 240-M), 로우들(250-0, 250-1,..., 250-R), 섹터들(252-0, 252-1,..., 252-S), 및 페이지들에 대한 다른 구성들이 가능하다는 것에 주의한다. 예를 들어, 물리적 블록들(240-0, 240-1,..., 240-M)의 로우들(250-0, 250-1,..., 250-R)은 예를 들어, 512 바이트의 데이터 이상 또는 이하를 포함할 수 있는 단일의 논리적 섹터에 대응하는 데이터를 각각 저장할 수 있다.
도 3은 본 발명의 하나 이상의 실시예들에 따라 다수의 메모리 어레이들(330)에 대한 파일 시스템의 다이어그램을 예시한다. 하나 이상의 실시예들에서, 다수의 물리적 블록들은 시스템 데이터를 저장하는데 이용될 수 있고, 다수의 물리적 블록들은 사용자 데이터를 저장하는데 이용될 수 있다. 도 3에서 예시된 실시예에서, 시스템 데이터는 PBR(partition boot record; 364), 보존 데이터(366), 제 1 파일 할당표(368), 및 제 2 파일 할당표(370)를 포함할 수 있다. 시스템 데이터는 다수의 메모리 어레이들(330)에 대한 파일 시스템의 구조 및 동작과 관련되는 데이터를 포함할 수 있다. 예로서, 파일 할당표, 예를 들어, 368 및 370은 데이터를 저장한 메모리 어레이, 예를 들어, 330의 영역들이 자유로운지(free) 또는 가능하게는 사용불가(unusable)인지, 및 메모리 어레이에서 데이터가 저장된 곳에 관한 정보를 중앙화(centralize)하는 파일 할당 데이터를 포함할 수 있다. 다양한 실시예들에서, 2개의 파일 할당표들이 이용될 수 있으며, 파일 할당표들 중 하나는 파일 할당표들 중 하나의 잠재적 장애에 대한 백업으로서 기능한다. 보존 데이터(366)는 예를 들어, 메모리 어레이에 관한 정보를 포함한 데이터를 포함할 수 있고, 메모리 어레이들의 동작을 가능하게 하도록 메모리 어레이들에 의해 이용될 수 있다.
도 3에서 예시된 실시예에서, 사용자 데이터는 예를 들어, 도 1에서 도시된 호스트(102)와 같은 호스트 디바이스로부터 수신되는 데이터일 수 있다. 사용자 데이터(362)는 다수 회 기록, 판독, 및 삭제될 수 있다.
하나 이상의 실시예들에서, 호스트(102)와 같은 호스트 디바이스, 및/또는 제어기(101)와 같은 제어기의 제어 회로는 예를 들어, 데이터가 소정의 방식으로 메모리 어레이에 기록되도록 메모리 어레이에 명령들을 통신할 수 있다. 호스트 디바이스 및/또는 제어 회로로부터의 명령들은 각 명령과 연관되는 데이터의 페이지의 선두에 데이터를 기록하도록 구성될 수 있다. 또한, 하나 이상의 실시예들에서, 호스트 디바이스 및/또는 제어 회로로부터의 명령들은 삭제된 블록에 데이터를 기록할 때 물리적 블록의 제 1 페이지, 예를 들어, 물리적 블록 경계에 데이터를 기록하도록 구성될 수 있다. 하나 이상의 실시예들에서, 포멧팅된 메모리 디바이스는 페이지의 제 1 메모리 셀, 예를 들어, 메모리 어레이의 페이지 경계에 데이터를 기록하도록 및/또는 비어있는(empty) 예를 들어, 삭제된 페이지의 선두에 데이터를 기록하도록 호스트 디바이스 및/또는 제어 회로로부터의 명령을 이용할 수 있다.
하나 이상의 실시예들에서, 메모리 어레이들의 포멧팅은 PBR 데이터를 기록하는 것을 포함할 수 있는데, 여기서 PBR이 시스템 및 사용자 데이터에 대해 메모리 어레이의 공간을 할당할 수 있다. PBR 데이터 구조들은 사용자 및 시스템 데이터가 물리적 블록의 선두에서 시작하도록 구조 및/또는 구성될 수 있다. 기록 명령이 메모리 어레이들에 의해 수신될 때, PBR은 명령이 모듈러스(modulus)에 대응하는 메모리 셀들의 다음 이용 가능한 위치에 데이터를 기록하게 하는데, 상기 모듈러스는 메모리 어레이의 각 모듈러스 증분이 물리적 블록 및/또는 페이지의 선두에 있다는 것을 보장하기 위해 계산된다.
하나 이상의 실시예들에서, 포멧팅은 메모리 어레이들에서 시스템 데이터 및 사용자 데이터의 위치를 결정하도록 메모리 어레이들에 대한 메타데이터 및/또는 시스템 데이터를 이용하는 것을 포함한다. 하나 이상의 실시예들에서, 시스템 데이터 및/또는 메타데이터는 다른 파라미터들 중에서 메모리 어레이 크기, 페이지 크기, 블록 크기, 파일 시스템 형태, 미디어 형태, 및 메모리 셀 형태와 같은 물리적 파라미터들을 포함할 수 있다. 사용자 데이터를 저장하는데 이용 가능한 저장 공간, 예를 들어, 섹터들은 할당 단위들로 양자화될 수 있다. 할당 단위, 예를 들어, 클러스터는 다수의 섹터들을 포함할 수 있다. 할당 단위의 섹터들의 수는 메모리 어레이들에 대한 메타데이터 및/또는 시스템 데이터에 의해 특정될 수 있다. 예를 들어, 메모리 어레이들의 섹터는 512 바이트로 구성될 수 있고, 할당 단위는 8개의 섹터들을 가질 수 있어서 결과적으로 4096 바이트를 갖는 할당 단위를 발생시킨다. 그러므로 이 예에서, 4096 바이트를 각각 포함하는 연속적인 할당 단위들은 이전의 할당 단위의 논리적 어드레스에 8을 더함으로써 호스트에 의해 어드레싱될 수 있다.
하나 이상의 실시예들에서, 페이지의 섹터들의 수, 예를 들어, 페이지 크기인 기록 동작을 위한 섹터들의 최소량 및/또는 블록의 페이지들의 수, 예를 들어, 블록 크기인 삭제 동작을 위한 페이지들의 최소량은 메모리 어레이들에 대한 모듈러스를 결정하기 위해, 메모리 어레이 메타데이터 및/또는 시스템 데이터에 의해 정의된 바와 같은 할당 단위에 따라 사용될 수 있다. 모듈러스는 시스템 데이터 및 사용자 데이터의 컴포넌트들에 대한 시작 위치를 결정하기 위해 메모리 어레이를 포멧팅하는데 이용될 수 있다.
예를 들어, SSD는 페이지에서 4, 8, 또는 16 섹터들을 가질 수 있고, 여기서 섹터는 512 바이트일 있고, SSD는 물리적 블록 당 128, 256, 또는 512 페이지들을 가질 수 있고, 그러므로 물리적 블록 크기들은 131072바이트, 262144바이트, 및 524288 바이트이다. 본 발명의 실시예들은 이 예들로 국한되지 않고, 섹터들, 페이지들, 및 물리적 블록들은 임의의 수의 바이트들로 구성될 수 있다.
하나 이상의 실시예들에서, 메모리 어레이들의 포멧팅은 시스템 데이터 및 사용자 데이터의 컴포넌트들에 대한 시작 위치를 결정할 때 사용할 모듈러스를 결정하기 위해 페이지 크기, 블록 크기, 및 할당 유닛을 이용하는 것을 포함할 수 있다. 포멧팅 동안, 호스트는 메모리 어레이들의 SSD의 구조의 지식, 특히 기록 또는 삭제 동작의 최소 크기에 영향을 미치는 요건들과, 예를 들어, 메모리 어레이들에 대한 시스템 데이터 및 사용자 데이터의 컴포넌트들의 위치와 같이, 포멧을 결정하기 위해 이용되는 FAT1 및 FAT2의 크기와 같은 선택된 파일 시스템의 메타데이터 구조들의 호스트의 지식을 이용할 수 있다. 예를 들어, PBR에 대한 시작 위치, 보존 데이터, FAT1, FAT2, 및 사용자 데이터는 메모리 어레이들에 대한 메타데이터 및/또는 시스템 데이터 및 모듈러스를 이용하여 정의될 수 있다. 이 포멧팅은 물리적 위치의 선두에 이 부분들 각각을 정렬시킬 것이다.
디바이스가 포멧팅되면, 사용자 데이터를 판독 또는 기록하기 위한 호스트 요청들은 모듈러스 및 할당 단위들과 정렬될 것이다. 예를 들어, FAT 형태 파일 시스템은 소용량 디바이스들을 위해 1:1 할당 단위 대 논리적 블록 맵핑으로 시작하여 할당 단위당 최대 64 섹터들까지 할당 단위들을 2 멱들(powers)로 증가하는 512바이트 섹터들의 그룹들로 편성하는 것이 가장 일반적일 것이다. 예를 들어, 할당 단위당 64 섹터들의 경우에, 호스트는 프리시딩 또는 인터레이싱된 시스템 엔트리의 크기 예를 들어, 메타데이터에 의존하는 어드레스에 부가된 고정된 오프셋을 갖는, 모듈러스 64인 어드레스들에서 액세스되는 것으로 보여질 것이다.
SSD가 페이지 경계로 정렬되지 않은 기록 명령을 수신할 때, 기록 명령의 시작 논리적 블록에 의해 표시된 섹터에 선행하는 페이지 내의 해당 섹터들은 기록 명령에 의해 액세스되는 페이지에 복사되고, 이 섹터들의 구 위치가 또한 삭제될 필요가 있을 것이므로 결과적으로 추가의 오버헤드 및 메모리 어레이들로의 더욱 많은 기록들을 발생시킨다. 포멧팅된 SSD는 비-정렬된 포멧에 의해 초래되는 추가의 기록들을 감소시킴으로써 성능을 증가시킬 수 있고 SSD의 수명을 연장시킬 수 있다.
하나 이상의 실시예들에서, 최소량의 추가의 오버헤드 및/또는 새로운 데이터가 기록될 때 디바이스가 수행해야만 하는 최소량의 추가의 판독/기록 동작들을 발생시키는 포멧이 바람직하다.
하나 이상의 실시예에서, SSD의 페이지 크기 및/또는 삭제 블록 크기, 예를 들어, 메타데이터 및/또는 시스템 데이터에 관한 어떠한 지식도 갖지 않는 호스트는 메모리 어레이 용량들이 2의 멱들로 양자화될 수 있다는 사실에 기초하여 메모리 어레이들을 포멧할 수 있다. 메모리 어레이들은 2의 멱들에 기초하여 예를 들어, 할당 단위들과 같이 시스템 데이터 및 사용자 데이터의 컴포넌트들의 논리적 어드레스들을 정렬함으로써 포멧팅될 수 있다. 2의 멱들에 기초하여 시스템 데이터와 할당 단위들을 정렬시키는 하나 이상의 실시예들에서, 호스트 명령에서 수신된 논리적 어드레스의 메모리 어레이 번역은 수신된 논리적 어드레스에 부가적인 오프셋을 부가할 수 있고, 또는 오프셋이 이용되는 경우, 부가적인 오프셋 또한 반드시 2의 멱이 되어야 한다.
본 발명의 실시예들에 따라 데이터 기록에 의한 메모리 어레이들의 포멧팅은 메모리 어레이들 상에 새로운 데이터를 기록하는 것과 연관되는 동작 오버헤드의 양을 감소시킬 수 있다. 오버헤드는 하드 드라이브와 SSD 사이에서 최소 기록 가능한 또는 삭제 가능한 단위의 크기의 차이로 인해, 플래시(페이지 또는 블록) 어드레스에 대한 기록 명령 어드레스의 비-정렬에 기인하여 기록 명령에 의해 어드레싱되는 메모리 셀들 외에 복사 또는 이동되어야 하는 부가적인 메모리 셀들의 수를 지칭할 수 있다. 오버헤드에 있어서의 감소는, 메모리 어레이의 포멧팅이 데이터가 비어있는, 예를 들어, 삭제된 페이지의 선두에 기록되게 할 것이기 때문에 페이지 상에 새로운 데이터 스트링을 기록하기 위해 부분적으로 기록된 페이지들을 이동시킬 필요가 없다는 것에 적어도 부분적으로 기초할 수 있다.
또한, 논리적 및/또는 물리적 블록들 및/또는 페이지들은 메모리 어레이들이 포멧팅될 때보다 효율적으로 사용될 수 있다. 할당 단위들과 시스템 데이터를 논리적 페이지 경계들 및/또는 논리적 블록 경계들, 예를 들어, 삭제 블록에 정렬시키는 포멧은 호스트 기록 명령들의 논리적 어드레스가 물리적 블록들 또는 페이지들의 경계들과 일치하게 할 수 있다. 포멧팅은 비어있는, 예를 들어, 삭제된 물리적 블록의 선두에, 예를 들어, 물리적 블록의 경계에 데이터가 기록되게 할 수 있다. 물리적 블록들 및/또는 페이지들의 데이터는, 호스트 기록 명령의 논리적 어드레스가 논리적 및/또는 물리적 페이지 및/또는 블록의 선두에서 시작할 것이기 때문에(-비정렬된 포멧의 경우에서와 같이 기록 명령에 표시되는 논리적 어드레스에 선행하는 페이지 및/또는 물리적 블록의 섹터들을 이동 또는 복사할 필요가 없음-) 포멧팅된 메모리 어레이에서 종종 더 적게 삭제 및 재기록될 수 있다.
하나 이상의 실시예들에서, 메모리 어레이의 포멧팅은 메모리 어레이들(예를 들어, 도 1의 130-1…130-N)의 마모율(wear rate)을 제어하도록 구현될 수 있는 마모 레벨링(wear leveling)을 보완할 수 있다. 이 기술 분야의 숙련자가 이해할 수 있는 바와 같이, 마모 레벨링은 솔리드 스테이트 메모리 어레이가 다수의 프로그램 및/또는 삭제 사이클들 이후에 장애를 경험할 수 있으므로 솔리드 스테이트 메모리 어레이의 수명을 증가시킬 수 있다.
다양한 실시예들에서, 마모 레벨링은 블록을 재이용(reclaim)하기 위해 이동되는 유효 블록들의 양을 최소화하기 위한 동적 마모 레벨링을 포함할 수 있다. 동적 마모 레벨링은 다수의 무효한(invalid) 페이지들(즉, 다른 페이지에 재기록되는 및/또는 더 이상 해당 무효한 페이상에서 필요로 되지 않는 데이터를 갖는 페이지들)을 갖는 블록들이 블록들을 삭제함으로써 재이용되는 이른바 가비지 컬렉션(garbage collection)이라 칭하는 기술을 포함할 수 있다. 정적 마모 레벨링은 블록의 수명을 늘리기 위해 높은 삭제 카운트들을 갖는 블록들에 정적 데이터를 기록하는 것을 포함한다.
하나 이상의 실시예들에서, 다수의 블록들은 메모리 어레이에 데이터를 기록하는 것과 연관된 기록 증폭(write amplification)의 양을 감소시키도록 스페어 블록들(spare blocks)로서 지정될 수 있다. 스페어 블록은 데이터가 재기록될 수 없는 블록으로서 지정될 수 있는 메모리 어레이 내의 블록일 수 있다. 기록 증폭은 솔리드 스테이트 메모리 어레이들에 데이터를 기록할 때 발생할 수 있는 프로세스이다. 메모리 어레이에 데이터를 무작위로 기록할 때, 메모리 어레이는 어레이 내의 자유 공간을 스캔한다. 메모리 어레이 내의 자유 공간은 프로그래밍되지 않는 메모리 셀들 개별적인 셀들, 페이지들, 및/또는 블록들일 수 있다. 데이터를 기록하기에 충분한 자유 공간이 존재하는 경우, 데이터는 메모리 어레이내의 자유 공간에 기록된다. 일 위치에서 자유 공간이 충분히 존재하지 않는 경우, 메모리 어레이 내의 데이터는 삭제, 이동, 및 메모리 어레이에 이미 존재하는 데이터를 새로운 위치로 재기록함으로써 재배치되어 메모리 어레이에 기록될 새로운 데이터를 위한 자유 공간을 확보한다. 메모리 어레이내의 구 데이터의 재배치는, 메모리 어레이들이 새로운 데이터를 기록하기 위해 해야 하는 기록의 양이 메모리 어레이내의 자유 공간의 양 및 메모리 어레이 상에 기록될 새로운 데이터의 크기에 기초하여 증폭되기 때문에 이른바 기록 증폭이라 칭해질 수 있다. 기록 증폭은 자유 공간(즉, 정적 데이터가 기록되지 않을 곳)으로서 지정되는 메모리 어레이 상의 공간의 양을 증가시킴으로써 감소될 수 있고, 따라서 더 적은 데이터가 재배치될 것이므로 기록되어야 하는 데이터의 양의 더 적은 증폭을 허용한다.
하나 이상의 실시예들에서, 메모리 어레이의 포멧팅은 기록 증폭의 양을 감소시키고 기록 증폭을 원하는 레벨들로 제어하는데 필요한 지정된 자유 공간의 양을 또한 감소시키기 위해 이용될 수 있다. 포멧팅된 메모리 어레이들은 물리적 블록 및 페이지들의 경계들에서 시작하는 효율적인 방식으로 데이터를 채우고, 그러므로 포멧팅된 메모리 어레이의 데이터 스트링은 물리적 블록 및/또는 페이지의 중간에서 시작하지 않을 것이고, 이에 따라 데이터 스트링이 새로운 데이터를 위해 메모리 어레이내의 공간을 자유롭게 하도록 다른 위치로 재기록될 기회를 감소시킨다.
도 4는 본 발명의 하나 이상의 실시예들에 따라 사용자 데이터가 블록 경계에 정렬되는 다수의 메모리 어레이들(430)에 대한 파일 시스템의 다이어그램을 예시한다. 도 4에서, 다수의 메모리 어레이들(430)에 대한 파일 시스템은 파티션 부트 레코드(partition boot record; 464), 보존 데이터(466), 제 1 파일 할당표(468)(파일 할당표 1), 및 제 2 파일 할당표(470)(파일 할당표 2)를 포함한다. 도 4에 예시된 실시예에서, 보존 데이터(466) 및 제 1 파일 할당표(468)는 패딩(padding; 472)에 의해 분리된다. 패딩(472)은 시스템 데이터 또는 사용자 데이터를 저장하는데 사용되지 않는 다수의 메모리 셀들일 수 있으며, 예를 들면 패딩(472)의 셀들은 삭제된 상태로 남아있을 수 있다. 패딩(472)은 제 2 파일 할당표(470)가 블록 경계, 예를 들어, 474에서 끝나도록 메모리 어레이들(430)내에 위치될 수 있다. 또한, 패딩(472)은 사용자 데이터(462)가 블록 경계, 예를 들어, 474에서 시작하도록 메모리 어레이(430) 내에 위치될 수 있다. 사용자 데이터(462)는 블록 경계와 정렬될 수 있고, 사용자 데이터는 메모리 어레이들(430)내의 물리적 블록 경계에서 시작될 수 있다.
하나 이상의 실시예들에서, 솔리드 스테이트 드라이브에 기록되는 시스템 데이터 및 사용자 데이터는 솔리드 스테이트 드라이브의 물리적 구조와 정렬될 수 있다. 즉, 데이터는 삭제된 블록에 기록될 때 물리적 블록의 선두에서 기록되고, 데이터가 삭제된 페이지에 기록될 때 페이지의 선두에 기록된다. 또한, 일부 실시예들에서, 데이터는 부분적으로 기록된 페이지에 기록되지 않고, 데이터는 다음 이용 가능한 삭제된 페이지에 기록될 것이다.
하나 이상의 실시예들에서, 솔리드 스테이트 드라이브의 메모리 어레이들과 연관된 다양한 물리적 파라미터들은, 솔리드 스테이트 드라이브 상에서 다른 메모리 형태들 중에서 랜덤 액세스 메모리(RAM)와 같은 메모리에 저장될 수 있고 솔리드 스테이트 드라이브 상의 메모리를 통해 솔리드 스테이트 드라이브의 회로를 제어하도록 통신될 수 있다. 하나 이상의 실시예들에서, 다양한 물리적 파라미터들은 솔리드 스테이트 드라이브 상의 메모리로부터 물리적 파라미터들을 수신하는 호스트 디바이스로부터 통신될 수 있다. 물리적 파라미터들은 다른 파라미터들 중에서 메모리 어레이 크기, 페이지 크기, 블록 크기, 파일 시스템 형태, 미디어 형태 및 메모리 셀 형태를 포함할 수 있다.
하나 이상의 실시예들에서, 물리적 파라미터들이 제어 회로 또는 호스트 디바이스에 의해 알려지면, 데이터를 메모리 어레이들에 기록하기 위한 모듈러스는 호스트 디바이스상의 제어 회로에 의해 계산될 수 있다. 모듈러스는 데이터를 기록할 때 사용되는 메모리 셀들의 최소 증분 번호(minimum incremental number)일 수 있다. 모듈러스는 메모리 셀들의 총 수, 블록 크기, 페이지 크기, 및 메모리 어레이들의 메모리 셀 형태에 기초하여 계산될 수 있다.
하나 이상의 실시예들에서, 솔리드 스테이트 드라이브의 각 부분은 솔리드 스테이트 드라이브의 물리적 파라미터들과 정렬될 수 있다. 다양한 실시예들에서, 패딩, 예를 들어, 패딩(472)은 솔리드 스테이트 드라이브 상의 데이터의 각 부분 사이에 제공될 수 있다. 패딩은 사용되지 않은 채로 남아있는 다수의 셀들, 예를 들어, 삭제된 상태로 남아있고 데이터를 기록하는데 사용되지 않는 셀들일 수 있다. 일부 실시예들에서, 패딩은 솔리드 스테이트 드라이브의 보존 데이터 및 파일 할당표 사이에 제공될 수 있다. 예를 들어, 도 4에 예시된 실시예에서, 패딩(472)은 보존 데이터(466)와 파일 할당표(468) 사이에 제공된다. 패딩은 파일 할당표들이 블록 경계, 예를 들어, 474에서 끝나도록 위치될 수 있고, 이에 따라 파일 할당표가 끝나는 블록 경계에 이어지는 블록의 선두에 사용자 데이터의 시작을 정렬시킬 수 있다.
하나 이상의 실시예들에서, 패딩은 보존 데이터와 제 1 파일 할당표 사이에 제공되어 제 1 파일 할당표의 시작이 블록 경계와 정렬되게 할 수 있다. 다양한 실시예들에서, 패딩은 제 1 파일 할당표와 제 2 파일 할당표 사이에 제공되어 제 2 파일 할당표가 블록 경계에 정렬되게 할 수 있다. 다양한 실시예들에서, 패딩은 제 2 파일 할당표와 사용자 데이터 사이에 제공되어 사용자 데이터가 블록 경계와 정렬되게 할 수 있다. 하나 이상의 실시예들에서, 패딩은 솔리드 스테이트 드라이브의 일부가 블록 경계와 정렬하도록 메모리 어레이들 내의 다양한 다른 위치들에 사용, 예를 들어, 위치될 수 있다.
도 5는 본 발명의 하나 이상의 실시예들에 따라 동작될 수 있는, 블록 경계에 정렬된 사용자 데이터 및 파일 할당표들을 갖는 다수의 메모리 어레이들(530)에 대한 파일 시스템의 다이어그램이다. 도 5에서, 다수의 메모리 어레이들(530)의 파일 시스템은 파티션 부트 레코드(564), 보존 데이터(566), 제 1 파일 할당표(568)(파일 할당표 1), 및 제 2 파일 할당표(570)(파일 할당표 2)를 갖는다. 보존 데이터(566)와 제 1 파일 할당표(568)는 패딩(576)에 의해 분리된다. 패딩(576)은 도 4와 연계하여 기술된 패딩(472)과 같은 패딩일 수 있다. 예를 들어, 패딩(576)은 데이터를 저장하는데 사용되지 않는 다수의 메모리 셀들일 수 있는데, 예를 들면, 데이터는 이 셀에 기록되거나, 또는 이로부터 판독되지 않는다. 패딩(576)의 일부인 메모리 셀들은 블록 경계(578)에서 끝나서, 제 1 파일 할당표(568)는 블록 경계(578)에서 시작한다. 제 1 파일 할당표(568)에 기록되는 파일 할당 데이터는 도 5에 예시된 바와 같이 경계(578) 이후의 블록의 선두와 정렬될 수 있다.
도 5에서, 제 1 파일 할당표(568) 및 제 2 파일 할당표(570)는 패딩(580)에 의해 분리된다. 패딩(580)의 일부인 메모리 셀들은 블록 경계(582)에서 끝나서, 제 2 파일 할당표(570)는 블록 경계(582)에서 시작한다.
도 5에서, 제 2 파일 할당표(570)와 사용자 데이터(562)는 패딩(584)에 의해 분리된다. 패딩(584)의 일부인 메모리 셀들은 사용자 데이터(562)가 블록 경계(586)에서 시작하도록 위치된다. 사용자 데이터(562)는 블록 경계와 정렬될 수 있고 사용자 데이터는 메모리 어레이(530)내의 물리적 블록 경계에서 시작될 수 있다.
결론
본 발명은 솔리드 스테이트 드라이브 포멧팅을 위한 방법들 및 디바이스들을 포함한다. 하나의 디바이스 실시예는 다수의 메모리 어레이들에 결합된 제어 회로를 포함하고, 여기서 각 메모리는 메모리 셀들의 다수의 물리적 블록들을 갖는다. 메모리 어레이들은 시스템 데이터를 다수의 메모리 어레이들에 기록하고―시스템 데이터가 물리적 블록 경계에서 끝남―; 사용자 데이터를 다수의 메모리 어레이들에 기록―사용자 데이터는 물리적 블록 경계에서 시작함―하도록 구성되는 제어 회로에 의해 포멧팅된다.
특정 실시예들이 여기서 예시 및 기술되었지만, 이 기술 분야의 숙련자라면 동일한 경과들을 달성하도록 계산된 장치가 도시된 특정 실시예들을 대체할 수 있다는 것을 이해할 것이다. 이 발명은 본 발명의 하나 이상의 실시예들의 개조물들 또는 변동물들을 포함하도록 의도한다. 위의 설명은 예시적인 방식으로 기술되었으며 제한적인 것은 아니란 것을 이해한다. 위의 실시예들 및 여기서 구체적으로 기술되지 않은 다른 실시예들의 조합은 위의 설명을 복습하면 이 기술 분야의 숙련자에게 명백해질 것이다. 본 발명의 하나 이상의 실시예들의 범위는 위의 구조들 및 방법들이 사용되는 다른 응용들을 포함한다. 그러므로 본 발명의 하나 이상의 실시예들의 범위는 첨부된 청구범위와 이러한 청구범위의 자격을 갖춘 등가물들 전체 영역을 참조하여 결정되어야 한다.
앞선 상세한 설명에서, 일부 특징들은 본 발명을 능률적으로 하기 위해 하나의 실시예들에 함께 그룹핑되었다. 본 발명의 이러한 방법은 본 발명의 개시된 실시예들이 각 청구항에서 명시적으로 기재된 것보다 많은 특징을 이용해야 한다는 의미를 반영하는 것으로 해석되어선 안 된다. 오히려, 이하의 청구범위가 반영하는 것처럼, 신규성 있는 주제는 단일의 개시된 실시예의 모든 특징들보다 적은 특징들에 달려있다. 따라서, 이하의 청구범위는 상세한 설명내로 통합되고, 각 청구항은 개별의 실시예들로서 그 자신을 주장한다.

Claims (30)

  1. 메모리 제어기로서,
    다수의 메모리 어레이들에 결합된 제어 회로를 포함하고, 각 메모리 어레이는 메모리 셀들의 다수의 물리적 블록들을 갖고, 각 메모리 어레이는 제어 회로에 의해 포멧팅되고, 상기 제어 회로는,
    시스템 데이터를 상기 다수의 메모리 어레이들에 기록―상기 시스템 데이터는 물리적 블록 경계에서 끝남―;하고; 및
    사용자 데이터를 상기 다수의 메모리 어레이들에 기록-상기 사용자 데이터는 물리적 블록 경계에서 시작함-하도록 구성되는, 메모리 제어기.
  2. 제 1 항에 있어서,
    상기 다수의 메모리 어레이들은 시스템 데이터부 및 사용자 데이터부를 포함하는, 메모리 제어기.
  3. 제 1 항에 있어서,
    상기 제어 회로는 데이터를 포함하지 않은 메모리 셀들의 패딩(padding)에 의해 분리되도록 시스템 데이터 및 사용자 데이터를 기록하도록 구성되는, 메모리 제어기.
  4. 제 3 항에 있어서,
    메모리 셀들의 상기 패딩은 시스템 데이터가 다수의 메모리 어레이들의 물리적 경계 블록에서 끝나고, 사용자 데이터가 다수의 메모리 어레이들의 물리적 블록 경계에서 시작하도록 구성되는, 메모리 제어기.
  5. 제 3 항에 있어서,
    상기 다수의 메모리 어레이들의 하나 이상의 물리적 파라미터들의 표시는 상기 제어 회로 내의 메모리에 저장되는, 메모리 제어기.
  6. 제 5 항에 있어서,
    상기 다수의 메모리 어레이들의 상기 하나 이상의 물리적 파라미터들은 어레이 크기, 페이지 크기, 블록 크기, 및 메모리 셀 형태를 포함하는, 메모리 제어기.
  7. 메모리 제어기로서,
    다수의 메모리 어레이들에 결합된 제어 회로를 포함하고,
    상기 다수의 메모리 어레이들 각각은 메모리 셀들의 다수의 물리적 블록들을 갖고, 상기 제어 회로는,
    사용자 데이터가 상기 다수의 물리적 블록들 중 하나의 선두에서 시작하도록 파일 할당 데이터를 상기 다수의 메모리 어레이들에 기록하도록 구성되는, 메모리 제어기.
  8. 제 7 항에 있어서,
    상기 제어 회로는 파일 할당표가 물리적 블록 경계에서 끝나도록 상기 파일 할당 데이터를 기록하도록 구성되는, 메모리 제어기.
  9. 제 8 항에 있어서,
    상기 제어 회로는 상기 파일 할당표가 물리적 블록 경계에서 끝나도록 보존 데이터와 상기 파일 할당표 사이에 삭제된 메모리 셀들의 패딩을 제공하도록 구성되는, 메모리 제어기.
  10. 제 9 항에 있어서,
    상기 제어 회로는 제 1 파일 할당표와 제 2 파일 할당표 사이에 삭제된 메모리 셀들의 패딩을 제공하도록 구성되는, 메모리 제어기.
  11. 제 7 항에 있어서,
    호스트 디바이스는, 사용자 데이터가 상기 다수의 물리적 블록들 중 하나의 선두에서 시작하도록 상기 제어 회로가 상기 파일 할당 데이터를 상기 다수의 메모리 어레이들에 기록하도록 구성되게 하기 위해 상기 제어 회로에 결합되는, 메모리 제어기.
  12. 제 7 항에 있어서,
    상기 제어 회로는 사용자 데이터가 상기 다수의 물리적 블록들 중 하나의 선두에서 시작하도록 상기 제어 회로가 상기 파일 할당 데이터를 상기 다수의 메모리 어레이들에 기록하도록 구성되게 하기 위해 메모리 및 처리기를 갖는, 메모리 제어기.
  13. 제 7 항에 있어서,
    상기 다수의 메모리 어레이들은 하나인, 메모리 제어기.
  14. 메모리 시스템에서 다수의 메모리 어레이들을 포멧팅하는 방법으로서,
    상기 다수의 메모리 어레이들과 연관된 물리적 파라미터를 표시하는 단계;
    상기 다수의 메모리 어레이들의 다수의 메모리 셀들을 저장 시스템 데이터(storing system data)로서 할당하는 단계;
    상기 다수의 메모리 어레이들의 다수의 메모리 셀들을 저장 사용자 데이터로서 할당하는 단계; 및
    사용자 데이터가 상기 다수의 메모리 어레이들의 상기 다수의 메모리 셀들의 물리적 블록의 선두에서 시작하도록 상기 사용자 데이터를 기록하는 단계를 포함하는, 다수의 메모리 어레이들을 포멧팅하는 방법.
  15. 제 14 항에 있어서,
    상기 시스템 데이터는 파티션 부트 레코드(partition boot record), 보존 데이터, 제 1 파일 할당표, 및 제 2 파일 할당표를 포함하는, 다수의 메모리 어레이들을 포멧팅하는 방법.
  16. 제 14 항에 있어서,
    제 2 파일 할당표가 물리적 블록 경계에서 끝나도록 보존 데이터와 제 1 파일 할당표 사이에 다수의 삭제된 메모리 셀들을 제공하는 단계를 포함하는, 다수의 메모리 어레이들을 포멧팅하는 방법.
  17. 제 14 항에 있어서,
    질의 명령(inquiry command)을 통해 상기 다수의 메모리 어레이들과 연관된 하나 이상의 물리적 파라미터들을 표시하는 단계를 포함하는, 다수의 메모리 어레이들을 포멧팅하는 방법.
  18. 제 14 항에 있어서,
    메모리 제어기의 메모리로부터 상기 물리적 파라미터들을 수신함으로써 상기 다수의 메모리 어레이들과 연관된 하나 이상의 물리적 파라미터들을 표시하는 단계를 포함하는, 다수의 메모리 어레이들을 포멧팅하는 방법.
  19. 제 14 항에 있어서,
    상기 표시된 물리적 파라미터들에 기초하여 상기 다수의 메모리 어레이들에 대한 모듈러스(modulus)를 계산하는 단계를 포함하는, 다수의 메모리 어레이들을 포멧팅하는 방법.
  20. 메모리 시스템에서 솔리드 스테이트 드라이브를 포멧팅하는 방법으로서,
    솔리드 스테이트 드라이브의 다수의 메모리 어레이들의 특정 메모리 어드레스의 공개 부트 레코드(public boot record)에 데이터를 기록―상기 특정 메모리 어레이들은 메모리 셀들의 다수의 물리적 블록들을 포함함―하는 단계;
    상기 특정 메모리 어레이의 제 1 파일 할당 데이터 및 상기 특정 메모리 어레이의 제 2 파일 할당 데이터를 기록하는 단계; 및
    상기 제 2 파일 할당 데이터가 물리적 블록 경계에서 끝나고, 사용자 데이터가 물리적 블록 경계에서 시작하도록 저장 보존 데이터와 상기 제 1 파일 할당 데이터 사이의 다수의 메모리 셀들에 데이터를 기록하지 않음으로써 상기 특정 메모리 어레이의 일부를 패딩(padding)하는 단계를 포함하는, 솔리드 스테이트 드라이브를 포멧팅하는 방법.
  21. 제 20 항에 있어서,
    상기 제 2 파일 할당 데이터가 물리적 블록 경계에서 끝나고 사용자 데이터가 물리적 블록 경계에서 시작하도록 상기 제 1 파일 할당 데이터와 상기 제 2 파일 할당 데이터 사이의 다수의 메모리 셀들에 데이터를 기록하지 않음으로써 상기 특정 메모리 어레이의 일부를 패딩하는 단계를 포함하는, 솔리드 스테이트 드라이브를 포멧팅하는 방법.
  22. 제 20 항에 있어서,
    상기 제 2 파일 할당 데이터가 물리적 블록 경계에서 끝나고 사용자 데이터가 물리적 블록 경계에서 시작하도록 상기 제 2 파일 할당 데이터와 상기 사용자 데이터 사이의 다수의 메모리 셀들에 데이터를 기록하지 않음으로써 기 특정 메모리 어레이의 일부를 패딩하는 단계를 포함하는, 솔리드 스테이트 드라이브를 포멧팅하는 방법.
  23. 제 20 항에 있어서,
    상기 사용자 데이터를 기록할 때 페이지의 선두에 데이터를 기록하는 단계를 포함하는, 솔리드 스테이트 드라이브를 포멧팅하는 방법.
  24. 제 20 항에 있어서,
    상기 특정 메모리 어레이의 하나 이상의 물리적 파라미터들 및 상기 특정 메모리 어레이에 대한 기록용 모듈러스에 적어도 부분적으로 기초하여 사용자 데이터를 물리적 블록 경계에서 기록하는 단계를 포함하는, 솔리드 스테이트 드라이브를 포멧팅하는 방법.
  25. 제 24 항에 있어서,
    상기 하나 이상의 물리적 파라미터들은 메모리 어레이 크기, 블록 크기, 페이지 크기, 및 셀 형태를 포함하는 그룹으로부터 선택되는, 솔리드 스테이트 드라이브를 포멧팅하는 방법.
  26. 솔리드 스테이트 메모리 시스템으로서,
    다수의 메모리 어레이들―상기 다수의 메모리 어레이들 각각은 다수의 물리적 블록들을 형성하는 다수의 메모리 셀들을 포함하고, 상기 물리적 블록들 각각은 다수의 페이지들로 편성(organize)됨―;
    메모리 제어기―상기 메모리 제어기는 상기 다수의 메모리 어레이에 결합되는 제어 회로를 포함함―;
    상기 메모리 제어기에 결합되고 메모리 액세스 디바이스 및 메모리를 포함하는 호스트 디바이스를 포함하고,
    상기 메모리 액세스 디바이스는,
    상기 다수의 물리적 블록들로부터 선택되는 삭제된 물리적 블록에 데이터를 기록할 때 물리적 블록의 선두에 사용자 데이터를 기록하고,
    삭제된 페이지에 데이터를 기록할 때 페이지의 선두에 사용자 데이터를 기록하도록 상기 메모리 상에 저장된 지시들(instructions)을 실행하도록 구성되는, 솔리드 스테이트 메모리 시스템.
  27. 제 26 항에 있어서,
    상기 다수의 메모리 어레이들의 다수의 물리적 파라미터들은 질의 명령에 응답하여 상기 메모리 제어기로부터 상기 메모리 액세스 디바이스로 송신되는, 솔리드 스테이트 메모리 시스템.
  28. 제 27 항에 있어서,
    상기 다수의 물리적 파라미터들은 상기 다수의 메모리 어레이들에 대한 모듈러스를 계산하도록 상기 메모리 액세스 디바이스에 의해 사용되는, 솔리드 스테이트 메모리 시스템.
  29. 제 27 항에 있어서,
    상기 물리적 파라미터들은 상기 시스템 데이터를 기록할 논리적 블록 어드레스들 계산하도록 상기 메모리 액세스 디바이스에 의해 사용되는, 솔리드 스테이트 메모리 시스템.
  30. 제 26 항에 있어서,
    상기 물리적 파라미터들은 상기 사용자 데이터를 기록할 논리적 블록 어드레스를 계산하도록 상기 메모리 액세스 디바이스에 의해 사용되는, 솔리드 스테이트 메모리 시스템.
KR1020117019230A 2009-01-21 2010-01-15 솔리드 스테이트 메모리 포멧팅 KR20110107857A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/356,725 2009-01-21
US12/356,725 US8392687B2 (en) 2009-01-21 2009-01-21 Solid state memory formatting

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020147001824A Division KR20140016440A (ko) 2009-01-21 2010-01-15 솔리드 스테이트 메모리를 포멧팅하기 위한 메모리 제어기, 방법, 및 솔리드 스테이트 메모리 시스템

Publications (1)

Publication Number Publication Date
KR20110107857A true KR20110107857A (ko) 2011-10-04

Family

ID=42337852

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020117019230A KR20110107857A (ko) 2009-01-21 2010-01-15 솔리드 스테이트 메모리 포멧팅
KR1020157015649A KR101759811B1 (ko) 2009-01-21 2010-01-15 솔리드 스테이트 메모리를 포멧팅하기 위한 메모리 제어기, 방법, 및 솔리드 스테이트 메모리 시스템
KR1020147001824A KR20140016440A (ko) 2009-01-21 2010-01-15 솔리드 스테이트 메모리를 포멧팅하기 위한 메모리 제어기, 방법, 및 솔리드 스테이트 메모리 시스템

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020157015649A KR101759811B1 (ko) 2009-01-21 2010-01-15 솔리드 스테이트 메모리를 포멧팅하기 위한 메모리 제어기, 방법, 및 솔리드 스테이트 메모리 시스템
KR1020147001824A KR20140016440A (ko) 2009-01-21 2010-01-15 솔리드 스테이트 메모리를 포멧팅하기 위한 메모리 제어기, 방법, 및 솔리드 스테이트 메모리 시스템

Country Status (7)

Country Link
US (3) US8392687B2 (ko)
EP (1) EP2389631B1 (ko)
JP (1) JP5823875B2 (ko)
KR (3) KR20110107857A (ko)
CN (1) CN102292711B (ko)
TW (1) TWI418980B (ko)
WO (1) WO2010090697A2 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8988800B1 (en) 2009-09-15 2015-03-24 Marvell International Ltd. Error correction for storage devices
US8402217B2 (en) 2009-09-15 2013-03-19 Marvell International Ltd. Implementing RAID in solid state memory
US20120089765A1 (en) * 2010-10-07 2012-04-12 Huang Shih-Chia Method for performing automatic boundary alignment and related non-volatile memory device
JP5395824B2 (ja) * 2011-02-16 2014-01-22 株式会社東芝 メモリシステム
JP2014513484A (ja) * 2011-04-29 2014-05-29 エルエスアイ コーポレーション 暗号化トランスポート・ソリッドステート・ディスク・コントローラ
JP2013077209A (ja) * 2011-09-30 2013-04-25 Nintendo Co Ltd プログラム、情報処理システム、情報処理装置、および情報処理方法
TWI467379B (zh) * 2012-04-23 2015-01-01 Phison Electronics Corp 系統運作方法、記憶體控制器與記憶體儲存裝置
CN103383663B (zh) * 2012-05-04 2016-06-29 群联电子股份有限公司 系统运作方法、存储器控制器与存储器
US9645917B2 (en) * 2012-05-22 2017-05-09 Netapp, Inc. Specializing I/O access patterns for flash storage
JP2015191336A (ja) * 2014-03-27 2015-11-02 キヤノン株式会社 メモリ制御装置、情報処理装置とその制御方法、及びプログラム
US9431052B2 (en) 2014-06-26 2016-08-30 Marvell World Trade Ltd. Two dimensional magnetic recording systems, devices and methods
US10338817B2 (en) * 2014-12-30 2019-07-02 Sandisk Technologies Llc Systems and methods for storage recovery
KR102322084B1 (ko) * 2015-04-30 2021-11-04 삼성디스플레이 주식회사 터치 센서 장치 및 그 제조 방법
JP2017004146A (ja) * 2015-06-08 2017-01-05 富士通株式会社 ストレージ制御装置
TWI554885B (zh) 2015-08-18 2016-10-21 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
CN106484307B (zh) * 2015-08-25 2019-05-21 群联电子股份有限公司 存储器管理方法、存储器控制电路单元及存储器存储装置
KR102502569B1 (ko) * 2015-12-02 2023-02-23 삼성전자주식회사 시스템 리소스 관리를 위한 방법 및 장치
US10261876B2 (en) * 2016-11-08 2019-04-16 Micron Technology, Inc. Memory management
US10795836B2 (en) * 2017-04-17 2020-10-06 Microsoft Technology Licensing, Llc Data processing performance enhancement for neural networks using a virtualized data iterator
US20190227957A1 (en) * 2018-01-24 2019-07-25 Vmware, Inc. Method for using deallocated memory for caching in an i/o filtering framework
US11842046B2 (en) 2018-06-30 2023-12-12 Huawei Technologies Co., Ltd. Storage fragment management method and terminal
KR20200057473A (ko) * 2018-11-16 2020-05-26 삼성전자주식회사 스토리지 장치 및 이를 포함하는 스토리지 시스템
KR20200069889A (ko) 2018-12-07 2020-06-17 에스케이하이닉스 주식회사 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법
KR20200086143A (ko) * 2019-01-08 2020-07-16 삼성전자주식회사 저장 장치 및 그것의 데이터 처리 방법
IT201900000973A1 (it) 2019-01-23 2019-04-23 Cosimo Romano Sistema di riscaldamento a induzione
TWI738308B (zh) * 2020-04-27 2021-09-01 宇瞻科技股份有限公司 基於分頁模式備份資料的固態硬碟以及基於分頁模式的固態硬碟資料備份方法

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6125435A (en) 1995-09-13 2000-09-26 Lexar Media, Inc. Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory
US5799168A (en) 1996-01-05 1998-08-25 M-Systems Flash Disk Pioneers Ltd. Standardized flash controller
JP3588231B2 (ja) * 1997-08-04 2004-11-10 東京エレクトロンデバイス株式会社 データ処理システム及びブロック消去型記憶媒体
JP2007293917A (ja) * 1997-08-08 2007-11-08 Toshiba Corp メモリシステムの制御方法
JP4079506B2 (ja) 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
KR100716576B1 (ko) * 1999-02-22 2007-05-11 가부시키가이샤 히타치세이사쿠쇼 메모리 카드, 논리 어드레스의 할당방법 및 데이터 기록방법
US6191712B1 (en) * 1999-06-28 2001-02-20 International Business Machines Corporation Circuit for aligning logical sectors with physical sectors in a disk storage system
CN100442393C (zh) * 1999-10-21 2008-12-10 松下电器产业株式会社 半导体存储卡的访问装置、初始化方法和半导体存储卡
US7085914B1 (en) 2000-01-27 2006-08-01 International Business Machines Corporation Methods for renaming stack references to processor registers
JP3942807B2 (ja) * 2000-06-06 2007-07-11 株式会社ルネサステクノロジ ブロックアラインメント機能付き半導体記憶装置
US6745266B1 (en) * 2001-12-21 2004-06-01 Unisys Corporation Method and apparatus for disk cache translation between systems
JP4238514B2 (ja) * 2002-04-15 2009-03-18 ソニー株式会社 データ記憶装置
CN100422956C (zh) * 2003-08-06 2008-10-01 松下电器产业株式会社 半导体存储卡、存取装置和存取方法
US20050041453A1 (en) 2003-08-22 2005-02-24 Brazis Paul W. Method and apparatus for reading and writing to solid-state memory
US7383375B2 (en) 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
JP4130808B2 (ja) * 2004-01-30 2008-08-06 松下電器産業株式会社 フォーマット方法
JP4566621B2 (ja) * 2004-05-14 2010-10-20 富士通セミコンダクター株式会社 半導体メモリ
JP4177292B2 (ja) * 2004-05-31 2008-11-05 Tdk株式会社 メモリンコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4157501B2 (ja) 2004-06-30 2008-10-01 株式会社東芝 記憶装置
JP4177301B2 (ja) * 2004-07-29 2008-11-05 Tdk株式会社 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US7395404B2 (en) 2004-12-16 2008-07-01 Sandisk Corporation Cluster auto-alignment for storing addressable data packets in a non-volatile memory array
US7509474B2 (en) * 2005-06-08 2009-03-24 Micron Technology, Inc. Robust index storage for non-volatile memory
US20070143566A1 (en) 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with data alignment in a directly mapped file storage system
US7802232B2 (en) 2006-03-31 2010-09-21 Microsoft Corporation Software robustness through search for robust runtime implementations
JP2008009919A (ja) * 2006-06-30 2008-01-17 Toshiba Corp カードコントローラ
WO2008016081A1 (fr) * 2006-08-04 2008-02-07 Panasonic Corporation Contrôleur de mémoire, dispositif de mémoire non-volatile, dispositif d'accès et système de mémoire non-volatile
JP2008112285A (ja) * 2006-10-30 2008-05-15 Toshiba Corp 不揮発性メモリシステム
US7791952B2 (en) * 2007-01-30 2010-09-07 Micron Technology, Inc. Memory device architectures and operation
US7774525B2 (en) 2007-03-13 2010-08-10 Dell Products L.P. Zoned initialization of a solid state drive
TWI362667B (en) * 2007-12-31 2012-04-21 Phison Electronics Corp Data writing method for flash memory and controller thereof

Also Published As

Publication number Publication date
TW201040719A (en) 2010-11-16
TWI418980B (zh) 2013-12-11
JP5823875B2 (ja) 2015-11-25
EP2389631A4 (en) 2012-08-22
WO2010090697A3 (en) 2010-10-28
JP2012515955A (ja) 2012-07-12
EP2389631B1 (en) 2018-08-08
US20100185802A1 (en) 2010-07-22
KR20150070448A (ko) 2015-06-24
CN102292711B (zh) 2016-01-27
KR101759811B1 (ko) 2017-07-19
US8392687B2 (en) 2013-03-05
KR20140016440A (ko) 2014-02-07
WO2010090697A2 (en) 2010-08-12
US20130254465A1 (en) 2013-09-26
US9626287B2 (en) 2017-04-18
US20170199702A1 (en) 2017-07-13
EP2389631A2 (en) 2011-11-30
CN102292711A (zh) 2011-12-21

Similar Documents

Publication Publication Date Title
KR101759811B1 (ko) 솔리드 스테이트 메모리를 포멧팅하기 위한 메모리 제어기, 방법, 및 솔리드 스테이트 메모리 시스템
KR101528714B1 (ko) 메모리 유닛 동작 방법 및 메모리 제어기
JP5585919B2 (ja) 電源遮断管理
US8489805B2 (en) Memory devices operated within a communication protocol standard timeout requirement
KR101566849B1 (ko) 메모리 장치 관리 방법, 그 관련 메모리 장치 및 그 관련 제어기
KR101561546B1 (ko) 메모리 장치 관리 방법, 그 관련 메모리 장치 및 그 관련 제어기
KR20190102781A (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
US20130275655A1 (en) Memory management method and memory controller and memory storage device using the same
CN112463647A (zh) 使用散列来减小前向映射表的大小
KR20200074464A (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
US20100042798A1 (en) Methods and Apparatus for Passing Information to a Host System to Suggest Logical Locations to Allocate to a File
CN111583976B (zh) 数据写入方法、存储器控制电路单元以及存储器存储装置

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
E801 Decision on dismissal of amendment
A107 Divisional application of patent
WITB Written withdrawal of application