KR100330164B1 - 무효 블록들을 가지는 복수의 플래시 메모리들을 동시에 프로그램하는 방법 - Google Patents

무효 블록들을 가지는 복수의 플래시 메모리들을 동시에 프로그램하는 방법 Download PDF

Info

Publication number
KR100330164B1
KR100330164B1 KR1019990015073A KR19990015073A KR100330164B1 KR 100330164 B1 KR100330164 B1 KR 100330164B1 KR 1019990015073 A KR1019990015073 A KR 1019990015073A KR 19990015073 A KR19990015073 A KR 19990015073A KR 100330164 B1 KR100330164 B1 KR 100330164B1
Authority
KR
South Korea
Prior art keywords
blocks
block
memory device
state information
last
Prior art date
Application number
KR1019990015073A
Other languages
English (en)
Other versions
KR20000067341A (ko
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 윤종용
Priority to KR1019990015073A priority Critical patent/KR100330164B1/ko
Priority to JP2000124728A priority patent/JP3842519B2/ja
Priority to US09/558,561 priority patent/US6236593B1/en
Publication of KR20000067341A publication Critical patent/KR20000067341A/ko
Application granted granted Critical
Publication of KR100330164B1 publication Critical patent/KR100330164B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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

Abstract

플래시 메모리들을 프로그램하는 방법이 개시되어 있고, 각 플래시 메모리는 복수의 블록들로 분할된 메모리 셀 어레이를 가진다. 각 블록은 유효한 블록인지의 여부를 나타내는 블록 상태 정보를 저장하고 있다. 본 발명의 프로그램 방법에 따르면, 먼저, 플래시 메모리들 모두의 유효 블록들에 대한 병렬-프로그램이 수행된다. 다음에, 무효 블록들을 가지는 플래시 메모리들에 대한 직렬-프로그램이 수행된다. 본 발명의 프로그램 방법에 의하면, 하나 또는 그 보다 많은 무효 블록들을 가지는 플래시 메모리들을 프로그램하는 데 필요한 시간이 단축될 수 있다.

Description

무효 블록들을 가지는 복수의 플래시 메모리들을 동시에 프로그램하는 방법{A METHOD FOR SIMULTANEOUSLY PROGRAMMING PLURAL FLASH MEMORIES HAVING INVALID BLOCKS}
본 발명은 집적 회로 메모리 장치를 프로그램하는 방법에 관한 것으로서, 구체적으로는 적어도 하나의 무효 블록 (invalid block)를 가지는 복수 개의 플래시 메모리들을 동시에 프로그램하는 방법에 관한 것이다.
이 분야에 숙련된 자들에게 잘 알려진 바와 같이, 플래시 메모리는 복수의 블록들 (또는 섹터라 칭함)로 나눠진 메모리 셀 어레이를 포함하며, 상기 각 블록은 복수 개의 메모리 셀들을 포함한다. 그러한 플래시 메모리에 있어서, 소거는 블록 단위로 이루어진다.
플래시 메모리는, 예를 들면, 최대 20개의 무효 블록들 (또는 배드 블록들 (bad blocks))을 포함할 것이다. 무효 블록들은 하나 또는 그 보다 많은 무효 비트들 (또는 메모리 셀들)을 포함하는 블록들로 정의된다. 하나 또는 그 보다 많은 무효 블록들을 가지는 플래시 메모리들은 모두 유효 블록들 (또는 굿 블록들 (good blocks))을 가지는 플래시 메모리와 동일한 품질 및 AC/DC 특성을 가진다. 무효 블록들은 유효 블록들의 성능에 영향을 미치지 않으며, 이는, 비록 도면에 도시되지 않았지만, 비트 라인 및 공통 소오스 라인 (common source line : CSL)이 선택 트랜지스터에 의해서 전기적으로 절연되기 때문이다.
플래시 메모리의 모든 블록들은 출하 이전에 (ffh)로 소거된다. 하지만, 하나 또는 그 보다 많은 무효 블록들을 가지는 플래시 메모리는 무효 블록들의 첫번째 페이지, 두번째 페이지, 또는 모든 페이지 내에, 예를 들면, 00h 데이터 (이후 '블록 상태 정보' (block status information)라 칭함)로 프로그램될 것이다. 그러한 페이지들은 무효 메모리 셀들을 포함하거나 포함하지 않을 것이다. 블록 상태 정보는 무효 메모리 셀들을 포함하고 데이터 정보를 저장할 수 없는 블록을 표시하기 위한 것이다.
도 1을 참조하면, 시스템, 예를 들면, PROM 라이터 (writer)의 구조 그리고 시스템과 플래시 메모리들 간의 신호 흐름을 보여주는 블록도가 도시되어 있다. PROM 라이터의 일예가 USP No. 4,783,737에PROM WRITER ADAPTED TO ACCEPT NEW WRITING ALGORITHM이라는 제목으로 게재되어 있으며, 레퍼런스로 포함된다. '737 특허는 시스템 프로그램의 변화없이 메모리 내에 저장된 것과 다른 쓰기 알고리즘 (writing algorithm)에 의해서 PROM에 데이터를 기입할 수 있는 PROM 라이터를 개시하고 있다.
도 1에 도시된 시스템 (10) (이후 PROM 라이터라 칭함)는 컨트롤 유니트 (20), 예를 들면, 중앙 처리 유니트, 시스템 프로그램과 프로그램 알고리즘을 저장하는 롬 (ROM) 유니트 (30), 플래시 메모리들 (60a)-(60d)에 프로그램될 데이터를 저장하는 램 (RAM) 유니트 (40), 그리고 인터페이스 유니트 (50)로 구성된다. 컨트롤 유니트 (20)는 롬 유니트 (30)에 저장된 시스템 프로그램 및 프로그램 알고리즘을 읽고, 인터페이스 유니트 (50)를 통해서 램 유니트 (40)에 저장된 데이터를 플래시 메모리들 (60a)-(60d)에 기입한다. 데이터 (D0)-(Di)를 전달하기 위한 데이터 버스는 플래시 메모리들 (60a)-(60d)에 의해서 공유된다. 마찬가지로, 어드레스 신호들 (A0)-(Ai)을 전달하기 위한 어드레스 버스는 플래시 메모리들 (60a)-(60d)에 의해서 공유된다.
도 1에 나타낸 바와 같이, PROM 라이터 (10)로부터 공급되는 읽기 인에이블 신호 ()와 쓰기 인에이블 신호 ()는 4개의 플래시 메모리들 (60a)-(60d)에 공통으로 제공되는 반면에, 플래시 메모리들 (60a)-(60d)은 대응하는 칩 선택 신호들 (), (), () 그리고 ()이 각각 활성화될 때 서로 독립적으로 선택된다.
도 2는 도 1에 도시된 PROM 라이터 (10)의 제어하에 복수의 플래시 메모리들 (60a)-(60d) 각각에 동일한 데이터를 쓰는 과정을 보여주는 종래 기술의 흐름도이다. 도 3은 도 1에 도시된 각 플래시 메모리의 메모리 맵을 나타내고 있다. 도 3에서, 램 유니트 (40)에 저장된 데이터는 각 플래시 메모리 (60a)-(60d)의 첫번째 그리고 두번째 블록들 (BLK1) 및 (BLK2)을 제외한 나머지 블록들 (BLK3)-(BLKn)에 쓰여질 것이다.
종래 기술에 따른 프로그램 과정이 참조 도면들에 의거하여 이하 설명된다.
단계 (S11)에서는, DEVICE 값을 '1'로 설정함으로써 제 1 플래시 메모리 (60a)가 선택된다. 즉, PROM 라이터 (10)로부터의 제 1 칩 선택 신호 ()가 로우가 된다. 단계 (S12)에서는, BLOCK 값을 '3'으로 설정함으로써 선택된 플래시 메모리 (60a)의 복수의 블록들 (BLK3)-(BLKn) 중 하나의 블록 (BLK3)이 선택된다. 계속해서, 상기 선택된 플래시 메모리 (60a)의 선택 블록 (BLK3)이 유효한 지의 여부를 판별하기 위해서, 선택된 플래시 메모리 (60a)의 선택 블록 (BLK3)으로부터 블록 상태 정보가 독출된다 (단계 S13).
상기 선택 블록 (BLK3)이 PROM 라이터 (10)의 컨트롤 유니트 (20)에 의해서 유효 블록으로 결정될 때, 선택된 플래시 메모리 (60a)의 선택 블록 (BLK3)에 대응하는 블록 상태 정보는 상기 PROM 라이터 (10), 예를 들면, PROM 라이터 (10)의 램 유니트 (40)에 저장된다 (단계 S14). 그 다음에, 램 유니트 (40)에 저장된 데이터는 인터페이스 유니트 (50)를 통해 선택된 플래시 메모리 블록 (60a)의 선택 블록 (BLK3)에 프로그램된다. 선택 블록 (BLK3)이 상기 컨트롤 유니트 (20)에 의해서 무효 블록으로 결정될 때, 프로세스는 선택 블록 (BLK3)의 블록 상태 정보를 저장한 후 상기 선택 블록 (BLK3)의 프로그램없이 단계 (S16)로 진행한다. 즉, 무효한 선택 블록 (BLK3)에 대한 프로그램 동작은 생략된다.
단계 (S16)에서, 상기 PROM 라이터 (10)의 컨트롤 유니트 (20)는 선택 블록 (BLK3)이 프로그램될 마지막 블록인지의 여부를 판별한다. 만약 마지막 블록이 아니면, 단계 (S18)로 진행하며, 상기 단계 (S18)에서는 상기 BLOCK 값이 다음 블록을 지정하도록 '1' 만큼 증가된다. 단계 (S13)에서 단계 (S18)까지의 과정은 선택 블록이 프로그램될 마지막 블록으로 결정될 때까지 반복된다.
선택 블록이 마지막 블록으로 판별될 때, 램 유니트 (30)에 임시적으로 저장된 블록 상태 정보에 따른 파일 할당 테이블 (file allocation table : FAT) 데이터가 상기 선택된 플래시 메모리 (60a)의 첫번째 또는 두번째 블록 (BLK1) 또는 (BLK2)에 프로그램된다 (단계 S19).
'파일 할당 테이블'이라는 용어는 '플래시 파일 시스템(flash file system)'이라는 용어로 대체되어 사용될 수 있을 것이다. 플래시 파일 시스템의 적절한 예가 USP No. 5,404,485에FLASH FILE SYSTEM이라는 제목으로 게재되어 있으며, 레퍼런스로서 포함된다.
단계 (S12)에서 단계 (S19)까지의 과정은 나머지 플래시 메모리들 (60b)-(60d)이 상기 램 유니트 (30)에 저장된 데이터로 프로그램될 때까지 단계들 (S20) 및 (S21)의 과정을 통해서 반복된다.
프로그램 과정이 종료될 때, 각 플래시 메모리 (60a)-(60d)의 메모리 맵이 도 4에 도시되어 있다. 도 4에서 알 수 있듯이, 무효 블록에 프로그램될 데이터는 다음의 유효 블록에 저장된다.
앞서 설명된 바와 같이, 적어도 하나의 무효 블록을 가지는 플래시 메모리들 (60a)-(60d)은 시리얼 프로그램 과정에 의해서 프로그램되며, 그 결과 종래 기술에 따른 프로그램 과정에 필요한 시간이 증가된다.
본 발명의 목적은 적어도 하나의 무효 블록을 가지는 복수의 플래시 메모리들을 동시에 프로그램함으로써 프로그램 과정에 필요한 시간을 단축시킬 수 있는 프로그램 방법을 제공하는 것이다.
도 1 시스템 구성 및 시스템과 플래시 메모리들 사이의 신호 흐름을 보여주는 블록도;
도 2는 도 1에 도시된 시스템의 제어하에 복수의 플래시 메모리들 각각에 동일한 데이터를 쓰기 위한 과정을 보여주는 종래 기술의 흐름도;
도 3은 도 1에 도시된 각 플래시 메모리의 메모리 맵;
도 4는 종래 기술의 프로그램 과정이 종료될 때 플래시 메모리 각각에 대한 메모리 맵;
도 5는 본 발명에 따른 프로그램 알고리즘을 보여주는 흐름도; 그리고
도 6은 본 발명의 프로그램 과정이 종료될 때 플래시 메모리들 각각에 대한 메모리 맵이다.
* 도면의 주요 부분에 대한 부호 설명
10 : 시스템 20 : 컨트롤 유니트
30 : 롬 유니트 40 : 램 유니트
50 : 인터페이스 유니트 60a-60d : 플래시 메모리
(구성)
본 발명의 특징에 따르면, 하나 또는 그 보다 많은 무효 블록들을 가지는 복수의 플래시 메모리들을 프로그램하는 방법이 제공된다. 각 플래시 메모리는 복수의 메모리 셀들의 블록들로 분할된 메모리 셀 어레이를 포함한다. 블록들 각각은 유효한 블록인지의 여부를 나타내는 블록 상태 정보를 저장하고 있다. 본 발명에 따른 플래시 메모리들에 대한 프로그램은 시스템의 제어하에 수행되며, 상기 시스템은 컨트롤 유니트, 상기 플래시 메모리들에 기입될 데이터를 저장하기 위한 램 유니트, 시스템 프로그램과 프로그램 알고리즘을 저장하기 위한 롬 유니트, 그리고 인터페이스 유니트를 포함한다.
본 발명에 따른 프로그램 알고리즘에 있어서, 먼저, 각 메모리 장치로부터 블록 상태 정보가 독출되고, 상기 램 유니트에 저장된다. 각 메모리 장치의 블록들은 저장된 블록 상태 정보에 따라 제 1, 제 2, 그리고 제 3 저장 영역들로 분할된다. 각각의 메모리 장치들의 제 2 저장 영역들의 블록들은 시스템에 의해서 먼저 임의의 위치로 지정된 후 선택된다. 유효한 선택 블록들을 가지는 메모리 장치들을 선택한 후, 상기 선택된 메모리 장치들의 선택된 유효 블록들이 동시에 프로그램된다. 만약 상기 선택 블록들이 각각의 제 2 저장 영역들의 마지막 블록들이 아니면, 각 메모리 장치의 다음 위치가 상기 시스템에 의해서 지정된다. 앞서 설명된 과정은 상기 선택 블록들이 각각의 제 2 저장 영역들의 마지막 블록들로 결정될 때까지 반복된다.
이후, 하나 또는 그 보다 많은 무효 블록들을 가지는 플래시 메모리들을 프로그램하는 과정이 수행된다. 상기 과정은 적어도 하나의 무효 블록을 가지는 메모리 장치들 중 하나를 선택하는 단계와; 상기 선택된 메모리 장치의 상기 적어도하나의 무효 블록 대신에 제 3 저장 영역의 적어도 하나의 블록을 프로그램하는 단계와; 상기 선택된 메모리 블록의 상기 저장된 블록 상태 정보를 상기 선택된 메모리 블록의 제 1 저장 영역에 프로그램하는 단계와; 상기 선택된 메모리 장치가 마지막이 아닐 때 다음 메모리 장치를 선택하는 단계와; 그리고 상기 선택된 메모리 장치가 마지막 메모리 장치로 결정될 때까지 상기 앞서 언급된 단계들을 반복적으로 수행하는 단계로 이루어져 있다.
(작용)
본 발명의 프로그램 방법에 따르면, 먼저, 플래시 메모리들 모두의 유효 블록들에 대한 병렬-프로그램이 수행된다. 다음에, 무효 블록들을 가지는 플래시 메모리들에 대한 직렬-프로그램이 수행된다. 이로 인해서, 하나 또는 그 보다 많은 무효 블록들을 가지는 플래시 메모리들을 프로그램하는 데 필요한 시간이 단축될 수 있다.
(실시예)
본 발명의 바람직한 실시예가 첨부 도면들에 의거하여 이하 상세히 설명된다. 본 발명의 프로그램 과정은 도 1에 도시된 시스템 (10), 예를 들면, PROM 라이터의 제어하에 수행될 것이다. 중복 설명을 피하기 위해서, 시스템 (10)의 설명은 그러므로 생략된다. 하지만, 상기 시스템 (10)의 롬 유니트 (30)에는, 종래 기술에 따른 프로그램 알고리즘 대신에 본 발명에 따른 프로그램 알고리즘이 저장된다.
도 1에서 설명된 종래 기술과 마찬가지로, 데이터 (D0)-(Di)를 전송하기 위한 데이터 버스는 플래시 메모리들 (60a)-(60d)에 의해서 공유되고, 어드레스 신호들 (A0)-(Ai)을 전송하기 위한 어드레스 버스 역시 플래시 메모리들 (60a)-(60d)에 의해서 공유된다. 더욱이, 도 1의 시스템 (10)으로부터 공급되는 읽기 인에이블 신호 ()와 쓰기 인에이블 신호 ()는 플래시 메모리들 (60a)-(60d)에 공통으로 제공된다. 플래시 메모리들 (60a)-(60d)은 대응하는 칩 선택 신호들 (), (), () 그리고 ()이 각각 활성화될 때 개별적으로 선택되고, 대응하는 칩 선택 신호들 (), (), () 그리고 ()이 동시에 활성화될 때 동시에 선택된다.
본 발명의 프로그램 알고리즘을 보여주는 흐름도가 도 5에 도시되어 있다. 이후, 본 발명의 프로그램 과정이 도 1, 도 5 및 도 6에 의거하여 상세히 설명된다.
단계 (S101)에서는, 각 플래시 메모리 (60a)-(60d)의 모든 블록들 (BLK0)-(BLKn)로부터 블록 상태 정보가 독출되고, 상기 시스템 (10)의 램 유니트 (40)에 저장된다.
단계 (S102)에서는, 각 플래시 메모리 (60a)-(60d)의 블록들 (BLK0)-(BLKn) 모두는 상기 램 유니트 (40)에 저장된 블록 상태 정보에 따라 3개의 저장 영역들로 분할된다. 구체적으로, 첫번째 저장 영역은 파일 할당 테이블 (FAT) 정보를 저장하기 위한 영역으로 지정되고, 두번째 저장 영역은 플래시 메모리들 (60a)-(60d)에 쓰여질 데이터 정보, 예를 들면, 응용 프로그램을 저장하기 위한 영역으로 지정되며, 세번째 저장 영역은 여분의 영역으로 지정된다. 두번째 저장 영역 각각의 소정의 위치가 블록을 선택하기 위해서 상기 컨트롤 유니트 (20)에 의해서 지정된다 (단계 S102).
예를 들면, 각 플래시 메모리 (60a)-(60d)의 첫번째 그리고 두번째 블록들 (BLK1) 및 (BLK2)은 첫번째 저장 영역으로 설정되고, 각 플래시 메모리 (60a)-(60d)의 세번째 블록 (BLK3) 내지 m번째 블록 (BLKm)은 두번째 저장 영역으로 설정되고, 각 플래시 메모리 (60a)-(60d)의 나머지 블록들 (BLK(m+1))-(BLKn) (m<n)은 세번째 저장 영역으로 설정되며, 이는 이후 상세히 설명될 도 6에 도시되어 있다. 결과적으로, 플래시 메모리들 (60a)-(60d)이 동일한 메모리 용량을 가지는 조건하에서, 각 플래시 메모리들 (60a)-(60d)의 첫번째, 두번째 그리고 세번째 저장 영역들은 동일한 수의 블록들을 갖도록 분할된다. 하지만, 서로 다른 메모리 용량을 가지는 플래시 메모리들 역시 적용될 수 있음은 자명하다.
그 다음에, 각 플래시 메모리 (60a)-(60d)의 두번째 저장 영역들의 블록들은, 단계 (S102)에서 지정되며, 상기 시스템 (10)으로부터의 칩 선택 신호들 (), (), () 그리고 ()을 순차적으로 활성화시킴으로써 선택된다 (단계 (S103)). 플래시 메모리들 (60a)-(60d)의 선택 블록들 (BLK3)이 유효한 블록인 지의 여부가 상기 램 유니트 (40)에 저장된 블록 상태 정보에 따라 상기 시스템 (10)의 컨트롤 유니트 (20)에 의해서 판별된다.
예를 들면, 첫번째 플래시 메모리 (60a)의 선택 블록 (BLK3)이 유효한 블록이면, 첫번째 플래시 메모리 (60a)는 프로그램될 디바이스로 결정된다. 그렇지 않으면, 첫번째 플래시 메모리 (60a)는 프로그램되지 않은 디바이스로 결정된다. 프로그램될 디바이스들을 결정하는 과정은 나머지 플래시 메모리들 (60b)-(60d)의 선택 블록들 (BLK3)이 유효한 블록인지의 여부가 판별될 때까지 계속해서 수행된다.
단계 (S104)에서 프로그램될 디바이스로 결정된 플래시 메모리들 즉, 선택된 유효 블록들 (BLK3)을 가지는 플래시 메모리들을 선택한 후, 상기 선택된 플래시 메모리들의 선택된 유효 블록들은 단계 (S104)에서 동시에 프로그램된다. 구체적으로, 단계 (S104)에서는, 선택된 유효 블록들 (BLK3)을 가지는 플래시 메모리들, 예를 들면, (60b) 및 (60c)에 대응하는 칩 선택 신호들 () 그리고 ()이 활성화된다. 반면에, 무효 블록들 (BLK3)을 가지는 플래시 메모리들, 예를 들면, 60a 그리고 60d에 대응하는 칩 선택 신호들 () 그리고 ()은 활성화되지 않는다. 결과적으로, 램 유니트 (40)에 저장된 데이터는 시스템 (10)의 제어하에 두 번째 그리고 세 번째 플래시 메모리들 (60b) 및 (60c)의 선택 블록들 (BLK3)에 동시에 프로그램된다 (병렬-프로그램된다). 첫 번째 그리고 세 번째 플래시 메모리들 (60a) 및 (60d)의 무효 블록들은 대응하는 칩 선택 신호들 () 그리고 ()가 비활성화되기 때문에 프로그램되지 않는다.
단계 (S105)에서는, PROM 라이터 (10)는 선택 블록들이 두 번째 저장 영역 각각의 마지막 블록인지의 여부를 판별한다. 선택 블록들이 마지막 블록들이 아닐 때, 단계 (S106)로 진행하며, 상기 단계 (S106)에서는 다음 블록에 대응하는 위치가 컨트롤 유니트 (20)에 의해서 지정된다. 단계 (S103)에서 단계 (S106)까지의과정은 선택 블록들이 각 두 번째 저장 영역들의 마지막 블록들로 결정될 때까지 반복된다. 도 6에는, 유효 블록들에 대한 프로그램 과정이 종료될 때 플래시 메모리들 (60a)-(60d) 각각의 메모리 맵이 도시되어 있다.
도 6에서 알 수 있듯이, 첫 번째 그리고 네 번째 플래시 메모리들 (60a) 및 (60d)의 블록들 (BLK3)이 무효 블록들이기 때문에, 두 번째 그리고 세 번째 플래시 메모리들 (60b) 및 (60c)의 블록들 (BLK3)에는 데이터 (DATA1)가 동시에 프로그램된다. 반면에, 첫 번째 그리고 네 번째 플래시 메모리들 (60a) 및 (60d)에 대응하는 블록들 (BLK3)에는 데이터가 프로그램되지 않는다. 마찬가지로, 두 번째 그리고 세 번째 플래시 메모리들 (60b) 및 (60c)의 블록들 (BLK5)의 무효 블록들이기 때문에, 첫 번째 그리고 네 번째 플래시 메모리들 (60a) 및 (60d)의 블록들 (BLK5)에는 데이터 (DATA1)가 동시에 프로그램된다. 그리고, 두 번째 그리고 세 번째 플래시 메모리들 (60b) 및 (60c)에 대응하는 블록들 (BLK5)에는 데이터가 프로그램되지 않는다. 플래시 메모리들 (60a)-(60d)의 블록들 (BLK4)이 무효 블록들이 때문에, 플래시 메모리들 (60A)-(60D)의 블록들 (BLK4)에는 데이터 (DATA2)가 동시에 프로그램된다.
이후 플래시 메모리들 (60a)-(60d) 각각의 무효 블록들을 프로그램하는 과정이 도 5에 의거하여 상세히 설명한다.
단계 (S107)에서, 시스템 (10)은 램 유니트 (40)에 저장된 블록 상태 정보에 따라 하나 또는 그 보다 많은 무효 블록들을 가지는 플래시 메모리들 (60a)-(60d) 중 하나를 선택한다. 상기 하나 또는 그 보다 많은 무효 블록들에 기입될 데이터는 상기 선택된 플래시 메모리의 세번째 저장 영역에 프로그램된다 (단계 S108). 예컨대, 도 6으로 돌아가 보면, 상기 선택된 플래시 메모리 (60a)의 무효 블록 (BLK3)에 기입될 데이터 (DATA1)는 선택된 플래시 메모리 (60a)의 (m+1)번째 블록 (BLK(m+1))에 프로그램된다.
단계 (S109)에서는, 램 유니트 (40)에 저장된 블록 상태 정보 데이터가 상기 선택된 플래시 메모리 (첫 번째 플래시 메모리) (60a)의 첫 번째 저장 영역에 파일 할당 테이블 (FAT) 데이터로서 프로그램된다.
단계 (S110)에서, 상기 시스템 (10)은 상기 선택된 플래시 메모리가 마지막 플래시 메모리인지의 여부를 점검한다. 선택된 플래시 메모리가 마지막 플래시 메모리가 아닐 때, 단계 (S111)로 진행하며, 상기 단계 (S111)에서는 다음의 플래시 메모리가 선택된다. 단계 (S108)에서 단계 (S111)까지의 과정은 하나 또는 그 보다 많은 무효 블록들을 가지는 플래시 메모리들 (60a)-(60d) 모두가 선택될 때까지 계속해서 수행된다. 앞서 설명된 직렬-프로그램 과정에 따르면, 다른 플래시 메모리들 (60b)-(60d)의 무효 블록들에 대응하는 데이터는 도 6에 도시된 바와 같이 세 번째 저장 영역들의 대응하는 블록들에 프로그램된다.
본 발명의 실시예에 따르면, 먼저, 모든 플래시 메모리들 (60a)-(60d)의 유효 블록들에 대한 프로그램이 병렬-프로그램 과정에 의해서 수행된다. 복수의 플래시 메모리들에 관련하여 앞서 설명된 병렬-프로그램 과정에 필요한 시간은 단지 하나의 플래시 메모리를 프로그램하는 과정에 필요한 시간과 동일하거나 적을 것이다. 그 다음에, 하나 또는 그 보다 많은 무효 블록들을 가지는 복수의 플래시 메모리들이 순차적으로 선택되고, 선택된 플래시 메모리의 무효 블록들이 프로그램된다 (직렬-프로그램). 결과적으로, 하나 또는 그 보다 많은 무효 블록들을 가지는 복수의 플래시 메모리들을 프로그램하는 데 필요한 시간이 단축될 수 있다.

Claims (8)

  1. 각각이 유효한 블록인지의 여부를 나타내는 블록 상태 정보를 저장하고 메모리 셀들을 가지는 복수의 블록들로 분할된 메모리 셀 어레이를 구비한 복수 개의 전기적으로 프로그램 가능한 메모리 장치들을 프로그램하는 방법에 있어서:
    상기 각 메모리 장치로부터 상기 블록 상태 정보를 읽고 데이터 저장 유니트에 상기 블록 상태 정보를 저장하는 단계(a)와;
    상기 각 메모리 장치의 복수의 블록들을 상기 저장된 블록 상태 정보에 따라 제 1, 제 2 그리고 제 3 저장 영역들로 분할하고 제 2 저장 영역 각각의 첫 번째 위치를 지정하는 단계(b)와;
    상기 지정된 위치에 있는 상기 각 메모리 장치들의 제 2 저장 영역들의 블록들을 선택하는 단계(c)와;
    유효한 상기 선택 블록들을 가지는 메모리 장치들을 선택한 후, 상기 선택된 메모리 장치들의 유효한 선택 블록들을 동시에 프로그램하는 단계(d)와;
    상기 선택 블록들이 각각의 제 2 저장 영역들의 마지막 블록들이 아닐 때 각 메모리 장치의 다음 위치를 지정하는 단계(e)와; 그리고
    상기 선택 블록들이 각각의 제 2 저장 영역들의 마지막 블록들로 결정될 때까지 상기 단계들(c)-(e)를 반복적으로 수행하는 단계(f)를 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서,
    적어도 하나의 무효 블록을 가지는 메모리 장치들 중 하나를 선택하는 단계(g)와;
    상기 선택된 메모리 장치의 상기 적어도 하나의 무효 블록 대신에 제 3 저장 영역의 적어도 하나의 블록을 프로그램하는 단계(h)와;
    상기 선택된 메모리 블록의 상기 저장된 블록 상태 정보를 상기 선택된 메모리 블록의 제 1 저장 영역에 프로그램하는 단계(i)와;
    상기 선택된 메모리 장치가 마지막이 아닐 때 다음 메모리 장치를 선택하는 단계(j)와; 그리고
    상기 선택된 메모리 장치가 마지막 메모리 장치로 결정될 때까지 상기 단계들(h)-(j)를 반복적으로 수행하는 단계(k)를 부가적으로 포함하는 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서,
    상기 데이터 저장 유니트는 상기 복수의 메모리 장치들에 대한 프로그램을 제어하는 시스템의 랜덤 액세스 메모리인 것을 특징으로 하는 방법.
  4. 컨트롤 유니트, 인터페이스 유니트, 램 유니트, 그리고 롬 유니트를 포함하는 시스템의 제어 하에 수행되며, 각각이 유효한 블록인지의 여부를 나타내는 블록 상태 정보를 저장하고 메모리 셀들을 가지는 복수의 블록들로 분할된 메모리 셀 어레이를 구비하며, 데이터 및 어드레스 버스들을 공유하는 복수 개의 전기적으로 프로그램 가능한 메모리 장치들을 프로그램하는 방법에 있어서:
    상기 각 메모리 장치로부터 상기 블록 상태 정보를 읽고 상기 램 유니트에 상기 블록 상태 정보를 저장하는 단계(a)와;
    상기 각 메모리 장치의 복수의 블록들을 상기 저장된 블록 상태 정보에 따라 제 1, 제 2 그리고 제 3 저장 영역들로 분할하고 제 2 저장 영역 각각의 첫 번째 위치를 지정하는 단계(b)와;
    상기 지정된 위치에 있는 상기 각 메모리 장치들의 제 2 저장 영역들의 블록들을 선택하는 단계(c)와;
    유효한 상기 선택 블록들을 가지는 메모리 장치들을 선택한 후, 상기 선택된 메모리 장치들의 유효한 선택 블록들을 동시에 프로그램하는 단계(d)와;
    상기 선택된 블록들이 각각의 제 2 저장 영역들의 마지막 블록들인지의 여부를 판별하는 단계(e)와;
    상기 선택 블록들이 각각의 제 2 저장 영역들의 마지막 블록들이 아닐 때 각 메모리 장치의 다음 위치를 지정하는 단계(f)와;
    상기 선택 블록들이 각각의 제 2 저장 영역들의 마지막 블록들로 결정될 때까지 상기 단계들(c)-(f)를 반복적으로 수행하는 단계(g)와; 그리고
    하나 또는 그 보다 많은 무효 블록들을 가지는 플래시 메모리들을 순차적으로 프로그램하는 단계(h)를 포함하는 것을 특징으로 하는 방법.
  5. 제 4 항에 있어서,
    상기 단계(h)는,
    적어도 하나의 무효 블록을 가지는 메모리 장치들 중 하나를 선택하는 단계(i)와;
    상기 선택된 메모리 장치의 상기 적어도 하나의 무효 블록 대신에 제 3 저장 영역의 적어도 하나의 블록을 프로그램하는 단계(j)와;
    상기 선택된 메모리 블록의 상기 저장된 블록 상태 정보를 상기 선택된 메모리 블록의 제 1 저장 영역에 프로그램하는 단계(k)와;
    상기 선택된 메모리 장치가 마지막이 아닐 때 다음 메모리 장치를 선택하는 단계(l)와; 그리고
    상기 선택된 메모리 장치가 마지막 메모리 장치로 결정될 때까지 상기 단계들(j)-(l)를 반복적으로 수행하는 단계(k)를 부가적으로 포함하는 것을 특징으로 하는 방법.
  6. 각각이 유효한 블록인지의 여부를 나타내는 블록 상태 정보를 저장하고 메모리 셀들을 가지는 복수의 블록들로 분할된 메모리 셀 어레이를 구비한 복수 개의 플래시 메모리 장치들을 프로그램하는 방법에 있어서:
    상기 각 플래시 메모리 장치로부터 상기 블록 상태 정보를 읽고 데이터 저장 유니트에 상기 블록 상태 정보를 저장하는 단계(a)와;
    상기 각 플래시 메모리 장치의 복수의 블록들을 상기 저장된 블록 상태 정보에 따라 제 1, 제 2 그리고 제 3 저장 영역들로 분할하고 제 2 저장 영역 각각의 첫 번째 위치를 지정하는 단계(b)와;
    상기 지정된 위치에 있는 상기 각 플래시 메모리 장치들의 제 2 저장 영역들의 블록들을 선택하는 단계(c)와;
    유효한 상기 선택 블록들을 가지는 플래시 메모리 장치들을 선택한 후, 상기 선택된 플래시 메모리 장치들의 유효한 선택 블록들을 동시에 프로그램하는 단계(d)와;
    상기 선택된 블록들이 각각의 제 2 저장 영역들의 마지막 블록들인지의 여부를 판별하는 단계(e)와;
    상기 선택 블록들이 각각의 제 2 저장 영역들의 마지막 블록들이 아닐 때 각 플래시 메모리 장치의 다음 위치를 지정하는 단계(f)와;
    상기 선택 블록들이 각각의 제 2 저장 영역들의 마지막 블록들로 결정될 때까지 상기 단계들(c)-(f)를 반복적으로 수행하는 단계(g)와;
    적어도 하나의 무효 블록을 가지는 플래시 메모리 장치들 중 하나를 선택하는 단계(h)와;
    상기 선택된 플래시 메모리 장치의 상기 적어도 하나의 무효 블록 대신에 제 3 저장 영역의 적어도 하나의 블록을 프로그램하는 단계(i)와;
    상기 선택된 메모리 블록의 상기 저장된 블록 상태 정보를 상기 선택된 메모리 블록의 제 1 저장 영역에 프로그램하는 단계(j)와;
    상기 선택된 플래시 메모리 장치가 마지막인지의 여부를 판별하는 단계(k)와;
    상기 선택된 플래시 메모리 장치가 마지막이 아닐 때 다음의 플래시 메모리 장치를 선택하는 단계(l)와; 그리고
    상기 선택된 플래시 메모리 장치가 마지막 플래시 메모리 장치로 결정될 때까지 상기 단계들(i)-(l)를 반복적으로 수행하는 단계(m)를 부가적으로 포함하는 것을 특징으로 하는 방법.
  7. 제 6 항에 있어서,
    상기 플래시 메모리 장치들은 데이터 및 어드레스 버스들을 공유하는 것을 특징으로 하는 방법.
  8. 제 6 항에 있어서,
    상기 플래시 메모리 장치들을 프로그램하는 방법은 컨트롤 유니트, 램 유니트, 롬 유니트, 그리고 인터페이스 유니트를 포함하는 시스템의 제어 하에서 수행되며, 상기 블록 상태 정보는 상기 시스템의 램 유니트에 저장되는 것을 특징으로 하는
    방법.
KR1019990015073A 1999-04-27 1999-04-27 무효 블록들을 가지는 복수의 플래시 메모리들을 동시에 프로그램하는 방법 KR100330164B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1019990015073A KR100330164B1 (ko) 1999-04-27 1999-04-27 무효 블록들을 가지는 복수의 플래시 메모리들을 동시에 프로그램하는 방법
JP2000124728A JP3842519B2 (ja) 1999-04-27 2000-04-25 メモリ装置のプログラム方法
US09/558,561 US6236593B1 (en) 1999-04-27 2000-04-26 Method for simultaneously programming plural flash memories having invalid blocks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990015073A KR100330164B1 (ko) 1999-04-27 1999-04-27 무효 블록들을 가지는 복수의 플래시 메모리들을 동시에 프로그램하는 방법

Publications (2)

Publication Number Publication Date
KR20000067341A KR20000067341A (ko) 2000-11-15
KR100330164B1 true KR100330164B1 (ko) 2002-03-28

Family

ID=19582471

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990015073A KR100330164B1 (ko) 1999-04-27 1999-04-27 무효 블록들을 가지는 복수의 플래시 메모리들을 동시에 프로그램하는 방법

Country Status (3)

Country Link
US (1) US6236593B1 (ko)
JP (1) JP3842519B2 (ko)
KR (1) KR100330164B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9640264B2 (en) 2013-04-01 2017-05-02 Samsung Electronics Co., Ltd. Memory system responsive to flush command to store data in fast memory and method of operating memory system

Families Citing this family (127)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100577380B1 (ko) * 1999-09-29 2006-05-09 삼성전자주식회사 플래시 메모리와 그 제어 방법
US6584553B2 (en) * 2000-07-31 2003-06-24 Exatron, Inc. Method and system for sequentially programming memory-containing integrated circuits
US8103496B1 (en) 2000-10-26 2012-01-24 Cypress Semicondutor Corporation Breakpoint control in an in-circuit emulation system
US7765095B1 (en) 2000-10-26 2010-07-27 Cypress Semiconductor Corporation Conditional branching in an in-circuit emulation system
US8149048B1 (en) 2000-10-26 2012-04-03 Cypress Semiconductor Corporation Apparatus and method for programmable power management in a programmable analog circuit block
US7185162B1 (en) * 2000-10-26 2007-02-27 Cypress Semiconductor Corporation Method and apparatus for programming a flash memory
US6724220B1 (en) 2000-10-26 2004-04-20 Cyress Semiconductor Corporation Programmable microcontroller architecture (mixed analog/digital)
US8160864B1 (en) 2000-10-26 2012-04-17 Cypress Semiconductor Corporation In-circuit emulator and pod synchronized boot
US8176296B2 (en) 2000-10-26 2012-05-08 Cypress Semiconductor Corporation Programmable microcontroller architecture
US6570785B1 (en) * 2000-10-31 2003-05-27 Sandisk Corporation Method of reducing disturbs in non-volatile memory
US6717851B2 (en) * 2000-10-31 2004-04-06 Sandisk Corporation Method of reducing disturbs in non-volatile memory
FR2825812B1 (fr) * 2001-06-12 2003-12-05 St Microelectronics Sa Procede de programmation/reprogrammation parallele de memoire flash embarquee par bus can
JP2003036681A (ja) * 2001-07-23 2003-02-07 Hitachi Ltd 不揮発性記憶装置
JP3822081B2 (ja) 2001-09-28 2006-09-13 東京エレクトロンデバイス株式会社 データ書込装置、データ書込制御方法及びプログラム
US7406674B1 (en) 2001-10-24 2008-07-29 Cypress Semiconductor Corporation Method and apparatus for generating microcontroller configuration information
US8078970B1 (en) 2001-11-09 2011-12-13 Cypress Semiconductor Corporation Graphical user interface with user-selectable list-box
US8042093B1 (en) 2001-11-15 2011-10-18 Cypress Semiconductor Corporation System providing automatic source code generation for personalization and parameterization of user modules
US7774190B1 (en) 2001-11-19 2010-08-10 Cypress Semiconductor Corporation Sleep and stall in an in-circuit emulation system
US8069405B1 (en) 2001-11-19 2011-11-29 Cypress Semiconductor Corporation User interface for efficiently browsing an electronic document using data-driven tabs
US7844437B1 (en) 2001-11-19 2010-11-30 Cypress Semiconductor Corporation System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit
US6971004B1 (en) 2001-11-19 2005-11-29 Cypress Semiconductor Corp. System and method of dynamically reconfiguring a programmable integrated circuit
US7770113B1 (en) 2001-11-19 2010-08-03 Cypress Semiconductor Corporation System and method for dynamically generating a configuration datasheet
US8103497B1 (en) 2002-03-28 2012-01-24 Cypress Semiconductor Corporation External interface for event architecture
US7308608B1 (en) 2002-05-01 2007-12-11 Cypress Semiconductor Corporation Reconfigurable testing system and method
US7761845B1 (en) 2002-09-09 2010-07-20 Cypress Semiconductor Corporation Method for parameterizing a user module
US7526599B2 (en) * 2002-10-28 2009-04-28 Sandisk Corporation Method and apparatus for effectively enabling an out of sequence write process within a non-volatile memory system
KR20030000017A (ko) * 2002-11-29 2003-01-03 (주) 라모스테크놀러지 플래시 메모리 제어 장치 및 플래시 메모리 제어 방법
US7353323B2 (en) * 2003-03-18 2008-04-01 American Megatrends, Inc. Method, system, and computer-readable medium for updating memory devices in a computer system
US20050144516A1 (en) * 2003-12-30 2005-06-30 Gonzalez Carlos J. Adaptive deterministic grouping of blocks into multi-block units
JP4850720B2 (ja) * 2004-02-03 2012-01-11 ネクステスト システムズ コーポレイション メモリデバイスのテストおよびプログラミングの方法並びにそのシステム
JP3924568B2 (ja) * 2004-02-20 2007-06-06 Necエレクトロニクス株式会社 フラッシュメモリにおけるデータアクセス制御方法、データアクセス制御プログラム
US7295049B1 (en) 2004-03-25 2007-11-13 Cypress Semiconductor Corporation Method and circuit for rapid alignment of signals
US8069436B2 (en) 2004-08-13 2011-11-29 Cypress Semiconductor Corporation Providing hardware independence to automate code generation of processing device firmware
US8286125B2 (en) 2004-08-13 2012-10-09 Cypress Semiconductor Corporation Model for a hardware device-independent method of defining embedded firmware for programmable systems
KR100684887B1 (ko) 2005-02-04 2007-02-20 삼성전자주식회사 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법
US8122193B2 (en) 2004-12-21 2012-02-21 Samsung Electronics Co., Ltd. Storage device and user device including the same
KR100703727B1 (ko) * 2005-01-12 2007-04-05 삼성전자주식회사 비휘발성 메모리, 이를 위한 사상 제어 장치 및 방법
US7332976B1 (en) 2005-02-04 2008-02-19 Cypress Semiconductor Corporation Poly-phase frequency synthesis oscillator
JP2006223598A (ja) * 2005-02-17 2006-08-31 Daiman:Kk 遊技機
US7348667B2 (en) * 2005-03-22 2008-03-25 International Business Machines Corporation System and method for noise reduction in multi-layer ceramic packages
TW200636471A (en) * 2005-04-01 2006-10-16 Mediatek Inc Method of parallel programmable memory and the system thereof
US7400183B1 (en) 2005-05-05 2008-07-15 Cypress Semiconductor Corporation Voltage controlled oscillator delay cell and method
US8089461B2 (en) 2005-06-23 2012-01-03 Cypress Semiconductor Corporation Touch wake for electronic devices
JP4859402B2 (ja) * 2005-07-04 2012-01-25 株式会社アドバンテスト 試験装置、及び製造方法
WO2007044250A2 (en) * 2005-09-28 2007-04-19 Wisconsin Alumni Research Foundation Computer storage device providing implicit detection of block liveness
KR100804647B1 (ko) * 2005-11-15 2008-02-20 삼성전자주식회사 병렬형 플래시 인터페이스를 지원하는 직렬형 플래시메모리 장치를 이용한 시스템 부팅 방법 및 장치
US8085067B1 (en) 2005-12-21 2011-12-27 Cypress Semiconductor Corporation Differential-to-single ended signal converter circuit and method
CN100485681C (zh) * 2006-03-23 2009-05-06 北京握奇数据系统有限公司 智能卡存储系统及该系统中文件创建管理的方法
US8067948B2 (en) 2006-03-27 2011-11-29 Cypress Semiconductor Corporation Input/output multiplexer bus
FI120220B (fi) * 2006-06-08 2009-07-31 Tellabs Oy Menetelmä ja järjestely transaktioiden käsittelemiseksi flash-tyyppisessä muistivälineessä
US9262326B2 (en) * 2006-08-14 2016-02-16 Qualcomm Incorporated Method and apparatus to enable the cooperative signaling of a shared bus interrupt in a multi-rank memory subsystem
KR100764747B1 (ko) * 2006-09-15 2007-10-08 삼성전자주식회사 플래시 메모리 장치 및 그것의 프로그램 방법
US7593279B2 (en) * 2006-10-11 2009-09-22 Qualcomm Incorporated Concurrent status register read
US8019940B2 (en) 2006-12-06 2011-09-13 Fusion-Io, Inc. Apparatus, system, and method for a front-end, distributed raid
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
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
KR100816763B1 (ko) * 2007-02-13 2008-03-25 삼성전자주식회사 플래시 메모리 모듈을 주기억장치로 사용하는 전자 시스템및 그것의 부팅 방법
US9564902B2 (en) 2007-04-17 2017-02-07 Cypress Semiconductor Corporation Dynamically configurable and re-configurable data path
US8026739B2 (en) 2007-04-17 2011-09-27 Cypress Semiconductor Corporation System level interconnect with programmable switching
US8040266B2 (en) 2007-04-17 2011-10-18 Cypress Semiconductor Corporation Programmable sigma-delta analog-to-digital converter
US8130025B2 (en) 2007-04-17 2012-03-06 Cypress Semiconductor Corporation Numerical band gap
US7737724B2 (en) 2007-04-17 2010-06-15 Cypress Semiconductor Corporation Universal digital block interconnection and channel routing
US8516025B2 (en) 2007-04-17 2013-08-20 Cypress Semiconductor Corporation Clock driven dynamic datapath chaining
US8092083B2 (en) 2007-04-17 2012-01-10 Cypress Semiconductor Corporation Temperature sensor with digital bandgap
US9207876B2 (en) * 2007-04-19 2015-12-08 Microsoft Technology Licensing, Llc Remove-on-delete technologies for solid state drive optimization
US8266575B1 (en) 2007-04-25 2012-09-11 Cypress Semiconductor Corporation Systems and methods for dynamically reconfiguring a programmable system on a chip
US9720805B1 (en) 2007-04-25 2017-08-01 Cypress Semiconductor Corporation System and method for controlling a target device
US8065653B1 (en) 2007-04-25 2011-11-22 Cypress Semiconductor Corporation Configuration of programmable IC design elements
KR101336258B1 (ko) * 2007-05-29 2013-12-03 삼성전자 주식회사 비휘발성 메모리의 데이터 처리 장치 및 방법
US8049569B1 (en) 2007-09-05 2011-11-01 Cypress Semiconductor Corporation Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US8161310B2 (en) * 2008-04-08 2012-04-17 International Business Machines Corporation Extending and scavenging super-capacitor capacity
US8219740B2 (en) * 2008-06-25 2012-07-10 International Business Machines Corporation Flash sector seeding to reduce program times
US8040750B2 (en) * 2008-06-25 2011-10-18 International Business Machines Corporation Dual mode memory system for reducing power requirements during memory backup transition
US8037380B2 (en) 2008-07-08 2011-10-11 International Business Machines Corporation Verifying data integrity of a non-volatile memory system during data caching process
US8093868B2 (en) * 2008-09-04 2012-01-10 International Business Machines Corporation In situ verification of capacitive power support
JP4720891B2 (ja) * 2008-09-30 2011-07-13 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US9448964B2 (en) 2009-05-04 2016-09-20 Cypress Semiconductor Corporation Autonomous control in a programmable system
EP2476055B1 (en) * 2009-09-08 2020-01-22 SanDisk Technologies LLC Apparatus, system, and method for caching data on a solid-state storage device
US8289801B2 (en) 2009-09-09 2012-10-16 Fusion-Io, Inc. Apparatus, system, and method for power reduction management in a storage device
EP2476079A4 (en) * 2009-09-09 2013-07-03 Fusion Io Inc APPARATUS, SYSTEM, AND METHOD FOR STORAGE ALLOCATION
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
US8601222B2 (en) 2010-05-13 2013-12-03 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
WO2012016089A2 (en) 2010-07-28 2012-02-02 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
US8725934B2 (en) 2011-12-22 2014-05-13 Fusion-Io, Inc. Methods and appratuses for atomic storage operations
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US9792104B2 (en) 2010-11-05 2017-10-17 FedEx Supply Chain Logistics & Electronics, Inc. System and method for flashing a wireless device
US10387135B2 (en) * 2010-11-05 2019-08-20 FedEx Supply Chain Logistics & Electronics, Inc. System and method for remotely flashing a wireless device
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
WO2012082792A2 (en) 2010-12-13 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for auto-commit memory
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
WO2012083308A2 (en) 2010-12-17 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
US9213594B2 (en) 2011-01-19 2015-12-15 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for managing out-of-service conditions
US8966184B2 (en) 2011-01-31 2015-02-24 Intelligent Intellectual Property Holdings 2, LLC. Apparatus, system, and method for managing eviction of data
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US9141527B2 (en) 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
JP5165081B2 (ja) * 2011-05-09 2013-03-21 株式会社大一商会 遊技機
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
US10133662B2 (en) 2012-06-29 2018-11-20 Sandisk Technologies Llc Systems, methods, and interfaces for managing persistent data of atomic storage operations
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
US10019352B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for adaptive reserve storage
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
US10169225B2 (en) * 2015-01-23 2019-01-01 Silicon Motion, Inc. Memory system and memory-control method with a programming status
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
US10009438B2 (en) 2015-05-20 2018-06-26 Sandisk Technologies Llc Transaction log acceleration
US10068663B1 (en) * 2017-05-30 2018-09-04 Seagate Technology Llc Data storage device with rewriteable in-place memory

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62110797U (ko) 1985-12-25 1987-07-15
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
KR100359414B1 (ko) * 1996-01-25 2003-01-24 동경 엘렉트론 디바이스 주식회사 데이타독출/기록방법및그를이용한메모리제어장치및시스템
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9640264B2 (en) 2013-04-01 2017-05-02 Samsung Electronics Co., Ltd. Memory system responsive to flush command to store data in fast memory and method of operating memory system

Also Published As

Publication number Publication date
JP2000330876A (ja) 2000-11-30
JP3842519B2 (ja) 2006-11-08
KR20000067341A (ko) 2000-11-15
US6236593B1 (en) 2001-05-22

Similar Documents

Publication Publication Date Title
KR100330164B1 (ko) 무효 블록들을 가지는 복수의 플래시 메모리들을 동시에 프로그램하는 방법
EP0818731B1 (en) Memory board, memory access method and memory access device
US6381685B2 (en) Dynamic configuration of memory module using presence detect data
KR100884429B1 (ko) 불휘발성 반도체 메모리를 구비하는 메모리 시스템
US9025376B2 (en) Nonvolatile memory device and related method of operation
US8918584B2 (en) Refresh algorithm for memories
US6798696B2 (en) Method of controlling the operation of non-volatile semiconductor memory chips
JP3822081B2 (ja) データ書込装置、データ書込制御方法及びプログラム
US5390317A (en) Technique to support progressively programmable nonvolatile memory
DE60012081T2 (de) Nichtflüchtige Halbleiterspeicheranordnung, die eine Datenleseoperation während einer Datenschreib/lösch-Operation erlaubt
US6161195A (en) EEPROM memory card device having defect relieving means
KR20000035627A (ko) 반도체 기억 장치
US6965527B2 (en) Multibank memory on a die
CN101957798B (zh) 具有存储器集成电路的装置
US6493260B2 (en) Nonvolatile memory device, having parts with different access time, reliability, and capacity
US6414885B2 (en) Semiconductor integrated circuit and integrated circuit system
US7552273B2 (en) Memory circuit and method for writing into a target memory area
EP0231041A1 (en) Non-volatile, programmable semiconductor memory
KR19980021002A (ko) 비휘발성 메모리 소자의 데이터 기입 장치 및 방법
US6496428B2 (en) Semiconductor memory
US6587383B1 (en) Erase block architecture for non-volatile memory
US5226015A (en) Semiconductor memory system
US6038175A (en) Erase verifying apparatus in serial flash memory having redundancy and method thereof
JP3792435B2 (ja) 半導体記憶装置
JPH10177799A (ja) 不揮発性半導体記憶装置およびメモリシステム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130228

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20140228

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20150302

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20170228

Year of fee payment: 16

FPAY Annual fee payment

Payment date: 20180228

Year of fee payment: 17

LAPS Lapse due to unpaid annual fee