KR20070102507A - 온-칩 데이터 그룹화 및 정렬 - Google Patents

온-칩 데이터 그룹화 및 정렬 Download PDF

Info

Publication number
KR20070102507A
KR20070102507A KR1020077015726A KR20077015726A KR20070102507A KR 20070102507 A KR20070102507 A KR 20070102507A KR 1020077015726 A KR1020077015726 A KR 1020077015726A KR 20077015726 A KR20077015726 A KR 20077015726A KR 20070102507 A KR20070102507 A KR 20070102507A
Authority
KR
South Korea
Prior art keywords
data
register
memory
sectors
page
Prior art date
Application number
KR1020077015726A
Other languages
English (en)
Other versions
KR101060089B1 (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 쌘디스크 코포레이션
Publication of KR20070102507A publication Critical patent/KR20070102507A/ko
Application granted granted Critical
Publication of KR101060089B1 publication Critical patent/KR101060089B1/ko

Links

Images

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
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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
    • 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
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

발명은 메모리 칩 내에 복수-섹터 페이지들로부터 독출되는 데이터를 재그룹화하는 방법을 기술한다. 결국, 가비지 수거 동작 시간은 크게 감소하고 전체 시스템 수행이 증가한다. 구조적 특징들은 온-칩 레지스터들간에 페이지의 개개의 데이터 섹터들을 선택적으로 전송하는 능력과 레지스터 내 데이터 섹터들을 재정렬하는 능력을 포함한다.

Description

온-칩 데이터 그룹화 및 정렬{ON-CHIP DATA GROUPING AND ALIGNMENT}
이 발명은 반도체 비휘발성 데이터 저장 시스템 구조 및 이들의 동작방법 분야에 관한 것으로, 플래시 전기적 소거가능 및 프로그램가능 독출전용 메모리들(EEPROM) 및 그외 다른 유형들의 메모리 시스템에 기초하여 데이터 저장 시스템들에 응용될 수 있다.
플래시 EEPROM 디바이스들의 공통되는 애플리케이션은 전자 디바이스들용의 대량 데이터 저장 서브시스템으로서이다. 이러한 서브시스템들은 일반적으로 복수 호스트 시스템들에 삽입될 수 있는 착탈가능 메모리 카드들로서 혹은 호스트 시스템 내 비-착탈가능 내장 저장장치로서 구현된다. 두 구현들에서, 서브시스템은 하나 이상의 플래시 디바이스들과 대부분 서브시스템 제어기를 포함한다.
플래시 EEPROM 디바이스들은 하나 이상의 어레이들의 트랜지스터 셀들로 구성되고, 각 셀은 1비트 이상의 데이터의 비휘발성 저장을 할 수 있다. 이에 따라 플래시 메모리는 이에 프로그램된 데이터를 보존하기 위해 파워를 요하지 않는다. 그러나 일단 프로그램되면, 셀은 새로운 데이터 값으로 프로그램될 수 있기 전에 소거되어야 한다. 이들 어레이들의 셀들은 독출기능, 프로그램 기능 및 소거기능의 효율적 구현을 제공하기 위해 그룹들로 분할된다. 대량 저장을 위한 전형적인 플래 시 메모리 구조는 큰 그룹들의 셀들을 소거가능한 블록들로 구성되며, 한 블록은 한 번에 소거될 수 있는 가장 작은 수의 셀들(소거단위)을 내포한다.
한 상업적 형태에서, 각 블록은 한 섹터의 사용자 데이터 및 이에 더하여 사용자 데이터 및/또는 이것에 저장되는 블록에 관계된 어떤 오버헤드 데이터를 저장하기에 충분한 셀들을 내포한다. 섹터 내 포함되는 사용자 데이터의 량은 이러한 메모리 시스템의 한 분류에 표준 512바이트이나 어떤 다른 크기일 수도 있다. 개개의 블록들의 셀들을 개별적으로 소거할 수 있게 하는데 요구되는 이들 셀들의 서로간에 분리가 집적회로 칩에서 행해지기 때문에, 또 다른 부류의 플래시 메모리들은 블록들을 현저히 커지게 하므로 이러한 분리에 필요한 공간이 적다. 그러나 훨씬 작은 섹터들에서 사용자 데이터를 취급하는 것이 요망되기 때문에, 각각의 큰 블록은 흔히 사용자 데이터를 독출 및 프로그램 하기 위한 기본단위인 개별적으로 어드레싱될 수 있는 페이지들로 더욱 분할되는데; 기입 페이지의 크기는 독출 페이지의 크기와 같을 필요는 없을지라도, 다음에서 이들은 논의를 단순화시키기 위해서 동일한 것으로 취급된다. 각 페이지는 통상 한 섹터의 사용자 데이터를 저장하는데, 그러나 한 페이지는 부분적 섹터 혹은 복수의 섹터들을 저장할 수도 있다. "섹터"는 여기에서는 한 단위로서 호스트에 및 이로부터 전송되는 사용자 데이터량을 지칭하는데 사용된다.
큰 블록 시스템 내 서브시스템 제어기는 호스트로부터 메모리 서브-시스템에 의해 수신된 논리 어드레스들(LBA)와 메모리 셀 어레이 내 물리적 블록 번호들(PBN)과 페이지 어드레스들간의 변환을 포함한 다수의 기능들을 수행한다. 이 변 환은 흔히 논리 블록 번호(LBN)와 논리 페이지를 위한 중간 텀(term)의 사용을 수반한다. 제어기는 또한, 인터페이스 버스를 통해 플래시 메모리 디바이스들에 발행하는 일련의 명령들을 통해 로우 레벨 플래시 회로 동작을 관리한다. 제어기가 수행하는 또 다른 기능은 이를테면 오류정정 코드(ECC)를 사용함으로써, 여러 수단을 통해 서브시스템에 저장된 데이터의 무결성을 관리하는 것이다.
도 1은 플래시 메모리 디바이스(131)용의 전형적인 내부 구조를 도시한 것이다. 주요 특징들은 외부 제어기와 인터페이스하는 입력/출력(I/O) 버스(411) 및 제어신호들(412), 명령, 어드레스 및 상태 신호들용의 레지스터들을 구비하여 내부 메모리 동작들을 제어하는 메모리 제어회로(450)를 포함한다. 플래시 EEPROM 셀들의 하나 이상의 어레이들(400)이 포함되고, 각 어레이는 그 자신의 행 디코더(XDEC)(401)와 열 디코더(YDEC)(402), 일 그룹의 감지 증폭기들와 프로그램 제어회로(SA/PROG)(454), 및 데이터 레지스터(404)를 구비한다. 현재, 메모리 셀들은 통상적으로 저장소자들로서 하나 이상의 도전성 플로팅 게이트들을 포함하나 다른 롱-텀(long-term) 전자 전하 저장소자들도 대신에 사용될 수도 있다. 메모리 셀 어레이는 각 저장소자마다 정의된 2레벨들의 전하로 동작되어 이에 따라 1비트 데이터를 각 소자에 저장할 수 있다. 대안적으로, 3이상 저장상태들이 각 저장소자마다 정의될 수 있는데, 이 경우 2비트 이상 데이터가 각 소자에 저장된다.
요구된다면, 예를 들면, 이 출원의 양수인인 샌디스크사에 양도되고 참조문헌으로 여기 포함시키는 1999년 3월 30일 발행된 미국특허 5,890,192에 교시된 바와 같이, 관계된 X 디코더들, Y 디코더들, 프로그램/검증회로, 데이터 레지스터들, 등과 함께, 복수의 어레이들(400)이 제공된다. 관계된 메모리 시스템 특징들은 이 출원의 양수인인 샌디스크사에 양도되고 참조문헌으로 여기 포함시키는 2002년 7월 30일 발행된 미국특허 6,426,893에 기술되어 있다. 이들 특허들은 단일 메모리 칩에 플레인들 혹은 "쿼드"라고 하는, 복수의 반-자율적 어레이들을 구비한 것을 기술한다.
외부 인터페이스 I/O 버스(411) 및 제어신호들(412)은 다음을 포함할 수 있다.
CS - 칩 선택. 플래시 메모리 인터페이스를 활성화시키는데 사용된다.
RS - 독출 스트로브. 메모리 어레이로부터 데이터를 전송하기 위해 I/O 버스가 사용중임을 나타내는데 사용된다.
WS - 기입 스트로브. 메모리 어레이에 데이터를 전송하기 위해 I/O버스가 사용중임을 나타내는데 사용된다.
AS - 어드레스 스트로브. 어드레스 정보를 전송하기 위해 I/O 버스가 사용중임을 나타낸다.
AD[7:0]-어드레스/데이터 버스. 이 I/O 버스는 제어기와 메모리 제어기(450)의 플래시 메모리 명령, 어드레스 및 데이터 레이스터들간의 데이터를 전송하는데 사용된다.
이들 신호들 외에도, 메모리가 어떤 타스크를 수행하여 비지상태인 것으로 저장 서브시스템 제어기가 판정할 수 있게 하는 수단을 메모리가 구비하는 것이 일 반적이다. 이러한 메모리는 메모리가 비지상태에 있는 동안 액세스될 수 있는 내부 메모리 레지스터에 전용의 신호 혹은 상태 비트를 포함할 수도 있을 것이다.
이 인터페이스는 다른 신호 구성들이 동일 기능을 부여하는데 사용될 수 있는 예로서만 주어진다. 도 1은 단지 하나의 플래시 메모리 어레이(400)를 이의 관계된 성분들과 함께 도시한 것인데, 그러나 복수의 이러한 어레이들은 공통의 인터페이스 및 메모리 제어회로를 공유하지만 병렬 독출 및 프로그램 동작들을 가능하게 하기 위해서 별도의 XDEC(401), YDEC(402), SA/PROG(454) 및 DATA REG(404) 회로를 구비하는 단일 플래시 메모리 칩 상에 존재할 수 있다. 보다 일반적으로, 여기 참조로 포함시키는 미국특허 6,560,143에 더욱 개발된 일종의 마스터 슬레이브 구성들에 통상적으로 배열되는 하나 혹은 2개의 추가의 이러한 레지스터들이 있을 수 있다.
데이터는 데이터 레지스터(404)를 통해 메모리 어레이로부터 I/O 버스 AD[7:0](411)에의 데이터 레지스터의 결합을 통해 외부 제어기에 전송된다. 데이터 레지스터(404)는 또한 감지 증폭기/프로그래밍 회로(454)에 결합된다. 각 감지 증폭기/프로그래밍 회로소자에 결합된 데이터 레지스터의 소자들의 수는, 플래시 EEPROM 셀들 각각은 저장소자들로서 하나 이상의 플로팅 게이트들을 내포하는 것으로 메모리 셀들의 각 저장소자에 저장된 비트 수에 따를 수 있다. 각각의 저장소자는 메모리 셀들이 복수상태 모드에서 동작된다면 2 혹은 4와 같은 복수의 비트들을 저장할 수 있다. 대안적으로, 메모리 셀들은 저장소자당 1비트의 데이터를 저장하기 위해 바이너리 모드에서 동작될 수 있다.
행 디코더(401)는 액세스할 물리적 페이지를 선택하기 위해서 어레이(400)에 대한 행 어드레스들을 디코딩한다. 행 디코더(401)는 메모리 제어 로직(450)으로부터 내부 행 어드레스 라인들(419)를 통해 행 어드레스들을 수신한다. 열 디코더(402)는 메모리 제어 로직(450)으로부터 내부 열 어드레스 라인들(429)을 통해 열 어드레스들을 수신한다.
도 2는 전형적인 비휘발성 저장 시스템의 구조를 도시한 것으로 이 경우 저장 매체로서 플래시 메모리 셀들을 채용한다. 한 형태에서, 이 시스템은 호스트의 리셉터클에 삽입되었을 때 호스트 인터페이스를 제공하기 위해 일측을 따라 확장하는 전기적 컨넥터를 구비하는 착탈가능 카드 내에 엔캡슐레이트된다. 대안적으로, 도 2의 시스템은 영속적으로 설치된 내장된 회로 혹은 그외의 형태로 호스트 시스템에 내장될 수도 있다. 시스템은 하이 레벨 호스트 및 메모리 제어 기능들을 수행하는 단일 제어기(101)를 이용한다. 플래시 메모리 매체는 하나 이상의 플래시 메모리 디바이스들로 구성되고, 각각의 이러한 디바이스는 흔히 자신의 집적회로 칩 상에 형성된다. 시스템 제어기 및 플래시 메모리는 제어기(101)가 명령, 어드레스를 로딩하게 하고 데이터를 플래시 메모리 어레이에 및 이로부터 데이터를 전송하게 하는 버스(121)에 의해 연결된다(버스(121)는 도 1의 412 및 411을 포함한다). 제어기(101)는 사용자 데이터가 플래시 메모리 어레이에 및 이로부터 전송되는 호스트 시스템(도시생략)과 인터페이스한다. 도 2의 시스템이 카드 내 포함되는 경우에, 호스트 인터페이스는 카드 및 호스트 장비 상에 메이팅 플러그 및 소켓 어셈블리(도시생략)를 포함한다.
제어기(101)는 특정의 논리 어드레스에서 시작하는 사용자 데이터의 하나 이상의 섹터들을 독출 혹은 기입하기 위해 호스트로부터 명령을 수신한다. 이 어드레스는 한 블록의 메모리 셀들 내 제1 물리적 페이지에 정렬될 수도 있고 정렬되지 않을 수도 있다.
복수 페이지들로 분할되는 대용량 메모리 셀 블록들을 구비하는 어떤 종래 기술의 시스템들에서, 업데이트되고 있지 않은 블록으로부터의 데이터는 호스트에 의해 기입되는 새로운 업데이트된 데이터를 또한 내포하는 새로운 블록으로 원 블록으로부터 카피될 필요가 있다. 다른 종래 기술의 시스템들에서, 플래그들은 페이지들 내 사용자 데이터와 함께 기록되고 새로이 기입된 데이터에 의해 교체되고 있는 원 블록 내 페이지들의 데이터가 무효함을 표시하는데 사용된다. 현존 블록 내 저장된 데이터를 부분적으로 교체하는 데이터가 현존 블록으로부터 변경되지 않은 데이터를 카피함이 없이 혹은 이전에 프로그램된 페이지들에 플래그들을 프로그램함이 없이 기입될 수 있게 하는 메커니즘이 여기 참조로 포함시키는 Keven Conley의 2001년 1월 19일 출원된 "Partial Block Data Programming and Reading Operations in a Non- Volatile Memory" 명칭의 출원번호 09/766,436의 특허출원에 기술되어 있다.
이러한 유형의 비휘발성 메모리 시스템들은 다수의 애플리케이션들에, 특히 호스트 시스템에 착탈가능하게 접속되는 엔클로즈된 카드에 패키지될 때 적용되고 있다. 현 상업적 메모리 카드 포맷들은 PCMCIA(Personal Computer Memory Card International Association), CF(CompactFlash), MMC(MultiMediaCard) 및 SD(Secure Digital)의 포맷을 포함한다. 이들 카드들의 한 공급자는 이 출원의 양수인인 샌디스크사이다. 이러한 카드들이 사용되는 호스트 시스템들은 개인용 컴퓨터들, 노트북 컴퓨터들, 휴대 계산 디바이스들, 카메라들, 오디오 재생 디바이스들 등을 포함한다. 플래시 EEPROM 시스템들은 호스트 시스템들 내 내장된 벌크 대량 저장장치로서 이용된다.
이러한 비휘발성 메모리 시스템들은 하나 이상의 어레이들의 플로팅-게이트 메모리 셀들 및 시스템 제어기를 포함한다. 제어기는 사용자 데이터를 저장 및 가져오기 위해서 호스트 시스템과의 통신 및 메모리 셀 어레이의 동작을 관리한다. 메모리 셀들은 다수 블록들이 셀들로 함께 그룹으로 나뉘어 지고, 한 블록의 셀들은 동시에 소거될 수 있는 가장 작은 그룹의 셀들이다. 데이터를 하나 이상의 블록들의 셀들에 기입하기 전에, 이들 블록들의 셀들은 소거된다. 사용자 데이터는 통상적으로 호스트와 섹터들 내 메모리 어레이간에 전송된다. 한 섹터의 사용자 데이터는 취급하기 편리한, 바람직하게는 메모리 블록 용량미만으로, 흔히 표준 디스크 드라이브 섹터 크기인 512바이트인 임의의 량일 수 있다. 한 상업적 구조에서, 메모리 시스템 블록은 한 섹터의 사용자 데이터와 이에 더하여 오버헤드 데이터를 저장하는 크기이며, 오버헤드 데이터는 블록에 저장된 사용자 데이터에 대한 오류정정 코드(ECC), 블록의 사용 이력, 결함들과 같은 정보 및 메모리 셀 블록의 그외 물리적 정보를 포함한다. 이러한 유형의 비휘발성 메모리 시스템의 각종 구현들은 다음의 미국특허들 및 샌디스크사에 양도된 계류중의 출원들에 기재되어 있고 그 각각은 전체를 참조로 여기 포함시킨다: 특허 5,172,338, 5,602,987, 5,315,541, 5,200,959, 5,270,979, 5,428,621, 5,663,901, 5,532,962, 5,430,859, 5,712,180, 및 1997년 8월 7일에 출원된 출원번호 08/910,947, 및 1999년 6월 30일에 출원된 09/343,328. 또 다른 유형의 비휘발성 메모리 시스템은 복수 섹터들의 사용자 데이터를 저장하는 보다 큰 메모리 셀 블록 크기를 이용한다.
메모리 셀 어레이의 한 구조는 편리하게 서브-어레이 혹은 다른 한 유닛의 셀들 내에 있고 공통 소거 게이트를 공유하는 하나 혹은 두 행들의 메모리 셀들로부터 한 블록을 형성한다. 전체를 여기 포함시키는 샌디스크사의 미국특허 5,677,872 및 5,712,179는 이 구조의 예들을 제공한다. 단지 2개의 프로그램되는 임계 레벨들을 정의함으로써 각 플로팅 게이트 셀에 1비트의 데이터를 저장하는 것이 현재 가장 일반적일지라도, 경향은 3이상 플로팅 게이트 트랜지스터 임계 범위들을 수립함으로써 각 셀에 2비트 이상의 데이터를 저장하는 것이다. 플로팅 게이트당 2비트의 데이터(4개의 임계레벨 범위들 혹은 상태들)를 저장하는 메모리 시스템이 현재 사용가능하고, 셀당 3비트(8개의 임계 레벨 범위들 혹은 상태들 및 셀 당 4비트(16 임계 레벨 범위들)이 향후 시스템들용으로 고찰되고 있다. 물론, 한 섹터의 데이터를 저장하는데 요구되는 메모리 셀의 수는 각 셀에 저장되는 비트수가 높아짐에 따라 작아진다. 셀 구조의 개선 및 일반적인 반도체 처리에 개선에 의한 어레이의 스케일링과 더불어 이러한 경향은, 한 행의 셀들의 세그먼트화된 부분에 메모리 셀 블록을 형성하는 것을 현실화한다. 블록구조는 참조로 여기 전부를 포함시키는 샌드스크사의 미국특허 5,930,167에 기술된 바와 같이, 메모리 셀들의 각각의 동작을 2 상태들(셀 당 1 데이터 비트)로 혹은 4상태들(셀 당 2 데이터 비 트들)과 같은 어떤 복수 개에서 선택할 수 있게 형성될 수도 있다.
이러한 비휘발성 메모리들의 용량을 증가시키는 것 외에도, 이들의 성능을 증가시키고 이들의 오류 유발성을 감소시킴으로써 이러한 메모리들을 개선하려는 것도 있다. 큰 블록 관리 기술들을 이용하는 위에 기술된 것들과 같은 메모리들은 메모리 면적을 보다 효율적으로 이용하기 위해 가비지(garbage) 수거를 포함하여, 메모리의 파일 시스템에 관한 다수의 데이터 관리 기술들을 수행한다. 이러한 가비지 수거 방법들은 메모리 내 한(혹은 그 이상) 위치들로부터 데이터를 독출하고 이를 또 다른 메모리 위치에 재기입하는 것을 포함한 데이터 재배치 프로세스를 수반한다(위에 포함된 대부분의 참조문헌들 외에도, 가비지 수거는 예를 들면 여기 참조로 포함시키는 "A 125-mm2 1-Gb NAND Flash Memory With 10-MByte/s Program Speed", by K. Imamiya, et al., IEEE Journal of Solid-State Circuits, Vol. 37, No. 11, November 2002, pp. 1493-1501에 더 다루어져 있다). 이 데이터 재배치 시간은 모든 가비지 수거 루틴들에의 주된 기여자이다. 종래 기술의 방법들은 데이터를 새로운 위치에 기입하기 전에, 연속적인 데이터 독출로서 데이터 재배치 동작, 이어서 데이터 무결성 체크 및 필요하다면, 오류정정을 기술한다. 따라서 데이터 전송 및 검증의 큰 일정한 수행 페널티가 있다. 데이터 오류의 경우에, 기입전에 데이터를 정정하기 위해 추가의 시간이 소비되어야 한다.
다른 종래 기술의 방법들은 한 위치에서 또 다른 위치로 데이터 무결성의 사전-체크 없이 기입하는 온-칩 카피 특징을 활용한다. 이러한 방법은 예를 들면, 여기 참조로 포함시키는 "High Performance 1-Gb NAND Flash Memory With 0.12μm Technology", by J. Lee, et al., IEEE Journal of Solid-State Circuits, Vol. 37, No. 11, November 2002, pp. 1502-1509에 기술되어 있다. 무결정 체크는 데이터 기입과 동시에 행해지므로 오류의 경우에 수행에 큰 페널티 및 타임-아웃/레이턴시를 갖고 전체 블록을 재기입할 필요성의 큰 확률이 있다.
도 3에 도시된 특정한 온-칩 카피 메커니즘이 미국특허 6,266,273에 보다 상세히 제공되어 있다. 도 3에 단계(1)에 나타낸 바와 같이, 데이터 세트가 소스 위치에서 독출/프로그램 슬레이브 데이터 레지스터로 읽혀진다. 도 3에 도시된 구조는 이의 데이터 레지스터들용의 마스터-슬레이브 구성을 이용하고 데이터 세트의 독출 카피는 단계(2)에서 마스터 레지스터로 전송된다. 단계(3)에서, 카피된 데이터 세트는 요구된다면, 이를 마스터 데이터 레지스터에 제어기로 전송함과 함께, 목적지 위치에 재배치된다. 이 기술은 데이터 카피가 체크될 수 있는 제어기에 이 데이터의 카피를 전송하면서 온-칩 재배치를 할 수 있게 한다.
복수-플레인의 소(small) 블록 혹은 대(big) 블록의 메모리의 구조는 복수-섹터 독출들 및 프로그램들을 할 수 있게 하며, 독출 및 프로그래밍 단위, 혹은 "페이지"는 복수 섹터들의 데이터로 구성된다. 이들 섹터들의 일부 내 데이터가 업데이트될 때, 이것은 페이지의 어떤 섹터들이 현재의 것으로 되게 하고 다른 것들은 폐용이 되게 할 수 있다. 현 기술들에서, 온-칩 카피 동작이 수행될 때, 전체 페이지가 독출되고 이어서 재기입된다. 결국, 종래 기술의 방법들은 메모리 내에 랜덤하게흩어져 있거나 오정렬되어 있는 데이터를 통합하고 이 데이터를 또 다른 위치에 재배치하는데(가비지 수거 동작) 그다지 도움을 주지 못하며, 재배치될 데 이터가 재그룹화될 필요가 있다면, 어떤 이러한 데이터 재그룹화를 위해 제어기에 다시 전송되어야 한다. 결국, 이러한 메모리 시스템들의 동작은 온-칩 데이터 재배치 동작들이 이러한 데이터 재정렬을 포함하게 개선될 수도 있었다면 크기 개선될 수도 있었을 것이다.
<발명의 요약>
본 발명의 한 주된 면에 따라서, 간략하고 일반적으로, 본 발명은 메모리 칩 내 복수-섹터 페이지들로부터 독출되는 데이터를 재그룹화하는 방법을 기술한다. 메모리 내 랜덤하게 흩어져 있거나 오정렬된 데이터를 메모리 상에 데이터 레지스터들 내에서 결합하고 이 데이터를 또 다른 위치에 재배치함으로써, 가비지 수거 동작 시간이 크기 감소되고 전체 시스템 성능이 증가한다.
제1 면에서, 메모리 구조는 페이지의 개개의 데이터 섹터들이 마스킹 메커니즘을 사용하여 선택적으로 전송될 수 있는 데이터 레지스터들(이를테면 마스터-슬레이브 구성)에 특징이 있다. 또다른 면에서, 메모리 구조는 메모리의 레지스터들 중 한 레지스터 내에서 데이터 섹터들의 재정렬을 할 수 있게 하는데, 예를 들면, 레지스터에 저장된 한 페이지의 데이터 내에서 섹터들의 순환 회전을 할 수 있게 한다. 제3 면에서, 데이터 재정렬과 동시에, 데이터는 제어기에 전송될 수 있고, 오류검출 및 정정동작이 수행될 수 있다.
여기 기술된 방법은 복수의 페이지들로부터 데이터가 메모리 레지스터들에 독출될 수 있게 하며, 재정렬되고 이들 내에서 결합되어, 단일 페이지로서 다시 메모리에 기입된다. 결과는 복수-섹터 단위들로 데이터를 조작하는 메모리 시스템 들에서 성능을 향상시키기 위해 단독으로 혹은 다른 기술들과 조합되어 사용될 있는 온-칩 가비지 수거기술이다.
몇몇의 대안적 실시예들은 페이지의 개개의 데이터 섹터들이 복수-어레이 구현들로 선택적으로 전송될 수 있게 하는 메모리 구조를 확장한다. 오프-칩 데이터 카피 기술들 혹은 링 버스 구조의 사용을 통해, 데이터는 데이터 페이지의 성분들 간에 재정렬될 수 있다.
본 발명의 추가의 면들, 특징들 및 이점들은 다음의 실시예의 설명에 포함되고 이 설명은 첨부한 도면과 함께 읽어야 할 것이다.
도 1은 메모리 제어 로직,데이터 및 어르데스 레지스터들을 구비한 전형적인 종래 기술의 EEPROM 메모리 어레이의 블록도이다.
도 2는 시스템 제어기를 가진 도 1의 메모리들을 이용한 구조를 도시한 것이다.
도 3은 종래 기술에서 온-카피 시퀀스의 예를 도시한 것이다.
도 4는 메모리의 실시예를 도시한 블록도이다.
도 5는 도 4에 도시한 메모리의 동작의 예를 도시한 것이다.
도 6은 대안적 복수-칩 메모리 시스템 구조를 도시한 것이다.
도 7은 도 6의 구조에 구현된 본 발명의 주요 면을 도시한 것이다.
도 8은 도6 및 도 7에 도시된 메모리의 동작의 예를 도시한 것이다.
도 9는 또 다른 대안적 복수-칩 메모리 시스템 구조를 도시한 것이다.
도 10은 도 9에 도시된 메모리의동작의 예를 도시한 것이다.
본 발명은 몇몇의 페이지들로부터 칩 유효 섹터들에 대해 결합할 수 있게 하는 방법들 및 구조들을 제공한다. 배경기술에서 언급한 바와 같이, 복수-평면 소 블록 혹은 대 블록 메모리의 구조는 복수-섹터 독출 및 프로그램을 할 수 있게 한다. 그러나, 종래 기술에서 발견된 바와 같이, 기비지 수거에서 메모리 내에 랜덤하게 흩어져 있거나 오정렬된 데이터의 결합 및 이러한 데이터를 또 다른 위치에의 재배치는 온-칩으로 수행될 수 있다. 재배치될 데이터가 재그룹화될 필요가 있다면, 제어기로 다시 데이터의 전송들이 데이터 재그룹화를 위해 필요하다. 본 발명의 방법들은 온 칩으로 이러한 데이터 재그룹화를 행함으로써 가시비 수거 동작들을 현저하게 가속화할 수 있다. 발명은 메모리 칩 내 복수-섹터 페이지들로부터 독출된 데이터를 재그룹화하는 방법을 기술한다. 결국, 가비지 수거 동작 시간이 크게 감소하고 전체 시스템 성능이 증가한다.
본 발명의 여러 면들과 조합될 수 있는 데이터 재배치 동작들에 관계된 많은 기술들은 2004년 5월 13일에 출원된 미국특허 출원번호 10/846,289; 2004년 12월 21일에 출원된 Andy Tomlin의 "Method for Copying Data in Reprogrammable Non- Volatile Memory" 명칭의 특허; 2004년 12월 21일에 출원된 Peter Smith 및 Kevin Conley의 "Off-Chip Data Relocation" 명칭의 특허; 및 특허 6,266,273에서 볼 수 있고, 이들 모두는 참조로 여기 포함시킨다. 특히, 미국특허출원번호 10/846,289는 후술하는 바와 같이, 본 발명에 이점이 있게 조합될 수 있는 다수의 구조적 개선들 을 제공한다.
방법의 기본적 실시예는 도 4에 관하여 기술된 바와 같은 메모리 구조에 기초한다. 개략도는 본 발명의 몇몇의 면들이 2-레지스터 셋업으로 쉽게 예시되므로, 데이터 레지스터들에 대한 마스터-슬레이브 구성을 갖는 메모리를 도시한 것이다. 메모리 어레이(133)가 각 페이지가 각 기입단위에서 복수(여기에서는 4개)의 섹터들을 유지하게 조직되고 예시된 실시예는 비휘발성 플래시 메모리 기술에 기초하나, 방법들은 본 발명이 저장소자들에 대한 단일 기술에 특히 특정한 것은 아니므로 다른 메모리 유형들에 쉽게 확장한다. 섹터 크기의 부분들은 133a, 133b, 133c, 133d로서 나타내었다. 다음의 설명은 페이지의 분할로서 섹터를 사용하는데, 이것은 메모리 시스템과 호스트간에 데이터 전송 단위이나, 페이지의 다른 세분할들도 사용될 수도 있을 것이다(페이지는 독출 및 기입 단위이며, 여기에서 독출 및 기입 페이지는 동일 크기인 것으로 취해진다).
독출시, 데이터가 어레이(133)로부터 슬레이브 레지스터(135)로 전송될 때, 페이지를 포함하는 섹터들은 감지 증폭기들(137)에 의해 슬레이브 데이터 레지스터(135)로 독출된다. 메모리의 부분(133a)에 대응하는 섹터는 137a에 의해 슬레이브 레지스터의 세그먼트(135a)로 전송되고, 페이지의 다른 섹터들은 유사하게 슬레이브 데이터 레지스터의 대응 부분들로 간다. 이어서 섹터들은 슬레이브 레지스터(135)에서 마스터 데이터 레지스터로 전송될 수 있고, 이로부터 플래시 메모리 인터페이스를 통해 제어기 및 호스트로 141을 따라 교환될 수 있다. 유사하게, 데이터의 기입동안, 데이터는 버스(141)로 수신되고 마스터 데이터 레지스터(131)에 축적되며 슬레이브 레지스터(135)에 전송되고, 이어서 호스트에서 프로그램된다. 도 3에 관하여 배경기술에서 기술된 바와 같이, 온-칩 데이터 재배치에서 데이터는 대신에 독출동작에서 어레이(133)에서 발원될 수도 있다.
복수-섹터 페이지들을 사용하는 이전 구성들에서, 페이지가 기입 프로세스에서 마스터 데이터 레지스터(131)에서 슬레이브 데이터 레지스터(135)로 그리고 어레이(133)에 전송될 때, 전체 페이지가 단위로서 이동하고 고정된 관계를 유지하는데, 131a로부터의 섹터는 135a로 가고 133a에 프로그램되며, 유사하게 b, c, d 섹터들에서도 유사하다. 유사하게, 독출 프로세스에서 전체 페이지는 a, b, c, d 섹터들이 정렬을 유지하면서, 어레이(133)에서 감지 증폭기(137)로 그리고 슬레이브 및 마스터 레지스터들로 단위로서 전송된다. 본 발명의 주 면들은 하나 이상의 이들 소자들간에 섹터-레벨에서 선택적 전송을 할 수 있게 하고 다른 레지스터에 관하여 한 레지스터 내 섹터 순서를 재정렬할 수 있게 함으로써 이러한 고정된 링크를 없앤다. 이들 변화들은 가비지 수거 동작의 일부로부터 메모리 내 랜덤하게 흩어져 있거나 오정렬된 데이터의 결합과 이 데이터를 또 다른 위치로의 재배치를 위해 섹터들의 온-칩 데이터 정렬을 할 수 있게 한다. 다음의 논의는 각 성분은 섹터로서, 성분들로 구성되는 페이지에 기초할 것이다. 보다 일반적으로, 페이지 당 다른 수의 성분들 및 다른 크기들의 성분들로 쉽게 확장된다. 예를 들면, 메모리 플레인 당 단일 섹터를 저장하는 대신에, 복수 섹터들이 각 플레인에 저장될 수 있다.
보다 구체적으로, 메모리 구조는 여기에서는 a, b, c, d로서 식별되는 4개의 섹터들로서 취해진 것으로서 복수-섹터 페이지들을 독출 및 프로그램하는 능력의 특징이 있다. 메모리는 복수-섹터 슬레이브 레지스터(135)와 마스터 데이터 레지스터(131)간의 개개의 섹터 데이터 전송 채널들을 탑재하고, 여기서 서로 다른 채널들로 전송들은 병렬로 행해질 수 있고 모든 개개의 채널에서 전송동작은 선택적으로 비활성화/활성화될 수 있다. 예시된 실시예에서, 선택적 전송은 두 개의 레지스터들간에 데이터 전송 채널들(145)로 구현되나, 다른 실시예는 이것을 다른 어떤 곳의 독출-기입 경로, 예를 들면 143에서 구현할 수도 있을 것이다.
구조는 적어도 한 데이터 레지스터에서 섹터들이 시프트 어라운드되게 한다. 실시예에서, 마스터 데이터 레지스터(131)는 화살표로 나타낸 바와 같이 데이터를 고정된 수의 섹터들(섹터 데이터 길이들)만큼 순환적으로 시프트 어라운드할 수 있다. 이것은 마스터 레지스터(131) 내 섹터들(a, b, c, d)의 내용을 슬레이브 데이터 레지스터(135)에 관하여 정렬할 수 있게 한다. 선택적 특징으로서, 메모리는 데이터 회전/시프트와 병렬로 플래시 메모리 인터페이스를 통해 데이터가 메모리에 및 이로부터 전송될 수 있게 한다.
이들 특징들은 슬레이브 데이터 레지스터로 소스 페이지들을 독출하는 것과, 개별적으로 선택된 섹터들에 대해 마스터 데이터 레지스터로 데이터 전송과, 마스터 데이터 레지스터 내에서 회전에 의해 데이터의 재그룹화 및 정렬과, 이어서, 목적지 페이지로 데이터를 프로그램하는 것을 할 수 있게 한다. 선택적으로, 데이터는 프로그래밍 동작에 앞서 오류검출/정정 또는/ 및 수정을 위해 제어기/호스트로 전송되고 이어서 다시 메모리로 다시 전송될 수 있다.
도 5는 온-칩 가비지 수거 동작의 예를 도시한 것으로, 여기서는 4개의 섹터들(A, B, C, D)이 2개의 서로 다른 페이지들로부터 수집되고, 재그룹화되어 다른 페이지에 프로그램된다. 예에서, 제1 소스 페이지는 섹터들(A, B)를 내포하고, 제2 소스 페이지는 유효 섹터(C)를, 제3 페이지는 유효 섹터(C)를 내포한다. x는 폐용된(혹은 아니면 목적지 섹터에 기입되지 않는) 섹터를 나타낸다. 목적은 이들 4개의 섹터들을 A-B-C-D로 정렬되어 동일 페이지에 결합하고 그 페이지의 각각의 위치들(133a-d)에 특정된 목적지 페이지에 이들을 기입하는 것이다. 종래 기술에서, 이것은 동일 페이지에 이들의 정렬 및 조합을 위해 메모리로부터 소스 페이지들의 전송을 요구한다.
단계 1에서, 소스 페이지 1이 슬레이브 데이터 레지스터(135)에 독출된다. 실시예에서, 모든 소스 페이지는 슬레이브 레지스터에 독출되나, 섹터들(A, B)만이 도시되었다. 변형예에서, 페이지의 섹터들은 선택적으로 독출될 수도 있을 것이다. 다음에 137a 및 137b에서 마스터 데이터 레지스터(131)의 부분들(131a, 131b)로 섹터들(A, B)가 전송된다. 이어서 마스터 데이터 레지스터 내 데이터는 소스 페이지 2 내 섹터(C)의 원 위치에 섹터들(A, B)를 정렬시키기 위해서 회전된다(마스터 데이터 레지스터 내 섹터들(A, B)의 회전 순서 및 제2 소스 페이지의 독출은 전환될 수 있고, 혹은 구조가 허용한다면 동시에 행해질 수 있다). 옵션으로, 섹터들(A, B) 데이터는 오류검출/정정을 위한 회전과 동시에 제어/호스트에 전송될 수 있다.
단계 2에서, 소스 페이지 2는 슬레이브 데이터 레지스터에 독출되고 이어서 마스터 데이터 레지스터에 전송되며, 여기서 섹터들(A, B)는 이전에 정렬되어 있 다. 마스터 데이터 레지스터 내 데이터는 이의 소스 페이지에서 섹터(D)의 원 위치에 섹터(A, B, C)를 정렬시키기 위해 회전된다. 옵션으로, 섹터(C) 데이터는 오류검출/정정을 위한 회전과 병렬로 제어기/호스트에 전송될 수 있다. 또한, 섹터들(A, B)이 변질된 것으로 발견되어 소스 페이지 2 독출과 병렬로 정정되었다면, 이들의 데이터는 마스터 데이터 레지스터로 다시 전송될 수 있다.
단계 3에서, 소스 페이지 3이 슬레이브 데이터 레지스터로 독출되고 섹터(D)의 데이터가 마스터 데이터 레지스터로 전송된다. 일단 마스터 데이터 레지스터가 충만되면(혹은 충만 페이지 미만으로 기입되어야 하는 경우에, 의도된 만큼 충만되면), 마스터 데이터 레지스터 내 데이터는 목적지 페이지 내 섹터들의 요구된 위치에 섹터(A, B, C, D)를 정렬시키기 위해서 회전된다. 옵션으로, 섹터(D)의 데이터는 오류검출/정정을 위한 회전과 병렬로 제어기/호스트에 전송될 수 있다. 또한, 섹터(C)가 변질되고 소스 페이지 3 독출과 병렬로 정정되었다면, 이의 데이터는 마스터 데이터 레지스터로 다시 전송될 수 있다. 섹터 D 데이터는 정정/수정되었다면 플래시 메모리로 다시 전송될 수도 있다.
단계 4에서, 목적지 페이지 데이터의 내용들이 슬레이브 데이터 레지스터에 프로그램되고 그로부터 목적지 페이지 자신으로 프로그램된다.
위에 언급한 바와 같이, 데이터 회전 메커니즘 및 데이터 페이지의 부분들을 선택적으로 전송시키는 능력은 본 발명의 독립적인 면들이다. 함께, 이들은 오정렬된 데이터의 그룹화 및 정렬을 할 수 있게 한다. 데이터가 정렬되었으나(따라서 섹터(A)가 항시 플레인 0에 있고 B는 플레인 1에 C는 2에 D는 3이 있게 된다) 몇몇의 행들에 걸쳐 흩어져 있다면, -흔한 경우임- 데이터 회전 메커니즘의 필요성은 없으며 마스킹 메커니즘만으로 온-칩 데이터 수거를 할 수 있을 것이다.
다수의 서로 다른 마스킹 방법들이, 특히 섹터들이 재정렬될 필요가 없을 때, 사용될 수 있다. 예를 들면, 매우 간단한 마스킹 제어를 할 수 있게 하는 일 실시예는 기입될 데이터가 좌에서 우로만 수집될 때이고, 먼저, 섹터(A)를 내포하는 행은 슬레이브 레지스터(135)로 전송되고, 다른 섹터들은 마스킹되며, 섹터(A)만이 마스터 레지스터(131)(135a 내지 131a)로 전송되고, 다음에, 섹터(B)를 내포하는 행이 슬레이브 레지스터(135)로 전송되고, 다른 섹터들은 마스킹되며, 섹터(B)만이 마스터 레지스터(131)(135b 내지 131b)로 전송되고, 등등으로, 전체 페이지가 마스터 레지스터(131)로 모여질 때까지 좌에서 우로 작업된다. 2이상의 이웃한 섹터들, 예를 들면 A, B가 동일 행에 있다면, 이들은 모드 함께 전송되거나, 한번에 하나씩 전송될 수 있다.
다수의 추가의 특징들이 대안적 실시예들에서 본 발명에 더해질 수 있는데, 이 중 몇몇은 위에 참조로 포함된 미국특허출원번호 10/846,289에 제공된 구조적 개선들을 포함할 수 있다. 이들 구조적 특징들은 슬레이브 데이터 레지스터(135)가 데이터를 직접 메모리 인터페이스에 전송할 수 있게 하는 능력(먼저 마스터 데이터 레지스터(131)에 전송함이 없이), 슬레이브 데이터 레지스터(135)의 내용들을 마스터 데이터 레지스터(131)의 내용들과 교환하는 스와핑 동작, 마스터 데이터 레지스터(131)와 메모리 어레이(133)간에 직접적으로 데이터를 전송하는 능력(슬레이브 데이터 레지스터(135)를 통한 전송없이), 및 이들의 조합들을 포함한다.
보다 구체적으로, 사용가능한 보다 많은 데이터 레지스터들이 있다면, 선택적 단일 섹터 데이터 전송 혹은/또는 회전에 의한 스와핑 메커니즘이 있을 때, 방법은 병렬로 2이상 페이지에 대해 재그룹화를 행하기 위해 쉽게 업그레이드될 수 있다. 또한, 메모리가 복수 페이지들의 독출 또는/ 및 프로그램을 허용한다면, 방법은 복수 페이지들에 대한 동시적 온-칩 가비지 수거를 행하기 위해 쉽게 업그레이드될 수 있다.
메모리가 추가의 데이터 레지스터들간 데이터 스와핑 메커니즘이 있는 이들 레지스터들을 포함하거나, 슬레이브 독출/프로그램 레지스터로서 2이상 데이터를 사용하는 것이 가능하다면, 온-칩 가비지 수거를 위한 온-칩 데이터 정렬의 방법들은 특허출원번호 10/846,289의 파이프라인 데이터 재배치 방법과 조합될 수 있다. 이것은 오류체크들 및 정정의 대부분을 백그라운드에서, 데이터 프로그래밍과 병렬로 행해질 수 있게 한다. 이 조합은 데이터가 새로운 위치에 프로그램 전에 수정되어야 할 때, 백그라운드 데이터 업데이트 혹은 리레벨링(relabeling)을 위해 사용될 수도 있다.
지금까지 논의된 실시예들은 페이지를 형성하는 모든 섹터들을 동일 메모리 칩 상에 동일 셀 어레이의 일부인 것으로 은연중에 취하였다. 다른 가능한 실시예들은 위에 언급된 기술들의 이점과 복수-칩 병렬 시스템 구성의 이점을 조합할 수 있게 한다. 이 경우, 예를 들면 두 칩에 걸쳐 있는 메타-블록에 대해 데이터 페이지를 수거하기 위해 두 칩들에 마스킹 기술이 사용될 수 있다. 회전 기술은 데이터 재정렬이 필요하다면 사용될 수도 있다. 가장 간단한 예는 좌측의 두 플레인들이 제1 칩을 형성하고 우측의 두 플레인들이 제2 칩을 형성한다고 하면, 도 5에 도시된 것일 수도 있을 것이다. 따라서, 데이터는 두 칩들의 두 플레인들에 걸쳐 있는 메타-페이지들에 걸쳐 있게 된다.
한 칩에서 다른 칩으로 데이터 전송을 할 수 있게 하는 한 방법은 참조로 여기 포함시키는 2004년 12월 21에 출원된 Peter Smith 및 Kevin Conley의 "Off-Chip Data Relocation" 명칭의 미국특허출원에 기술된 오프-칩 카피 기술들이다. 그에 보다 상세히 기술된 바와 같이, 데이터 세트는 온 칩 내 데이터 레지스터에서 또 다른 칩 내 데이터 레지스터로 제어기 상의 데이터를 임시 저장할 필요없이 공유 데이터 버스를 통해 전송될 수 있다. 도 6은 이러한 구성을 구비하는 메모리 시스템(601)을 도시한 것이다. 제1 메모리 칩(611) 및 제2 메모리 칩(613)은 이들이 제어기(603)에도 연결될지라도, 공통 데이터 버스(605)에 의해 접속된다. 예로서 각 메모리 칩으로부터의 두 개의 플레인들을 고려하여, 도 7에 데이터 그룹화 및 재정렬을 할 수 있게 하는 메모리 조직이 도 7에 도시되었다.
도 7은 도 4와 유사하나 페이지는 메타-페이지로서 복수의 칩들에 걸쳐 확산하여 있다. 각 섹터(611a, 611b, 613a, 613b)는 대응 감지 증폭기(621a, 621b, 623a, 623b)를 통해 대응 슬레이브 데이터 레지스터(631a, 631b, 633a, 633b)로 독출된다. 본 발명의 제1 원리에 따라, 슬레이브 레지스터들(631a, 631b, 633a, 633b) 각각은 도 4에 관하여 위에서 논의된, 여러 마스킹 메커니즘들에 따라서, 그리고 다양한 일반화들로, 대응 마스터 데이터 레지스터(641a, 641b, 643a, 643b)에 선택적으로 전송될 수 있다.
도 5에서처럼 동일 초기 데이터 구성에 대해서, 그러나 오프-칩 카피 메커니즘의 2-칩 구성에 대해서 데이터 재그룹화의 예가 도 8에 도시되었다. 이것은 흔히 내부 데이터 시프트 필요성없이 공통 데이터 버스(605)의 사용에 의해 달성될 수 있다. 대부분의 경우들에 있어 이것은 공통 버스의 수단에 의해 행해질 수 있고 어떠한 내부 시프트 메커니즘도 요구되지 않는다. 예에서, 섹터(C)는 다른 칩으로 전송에 의해 재정렬되고 다시, 그리나 다른 위치로 전송된다.
보다 상세히, 도 5에서처럼 관계된 섹터들이 분산된 4개의 플레이들이 도시되었는데, 차이는 4개의 플레인들이 도 6에 도시된 바와 같이 접속된 2개의 어레이들간에 분할된다는 것이다. 도 6의 칩 대 칩 전송 메커니즘을 사용하여, 섹터들은 레지스터(131)에 대해 도 4 및 도 5에 도시된 마스터 데이터 레지스터 내 섹터들의 순환 회전의 사용없이 그룹화 및 정렬될 수 있다. 제1 단계는 섹터(C)를 내포하는 행을 슬레이브 레지스터(633)에 전송하고, 원하지 않는 섹터를 완전히 마스킹하고 선택적으로 C를 마스터 레지스터(643b)에 전송하고, 섹터(C)를 다른 칩의 슬레이브 레지스터(여기에서는 641a이지만 641b가 대신에 사용될 수도 있을 것이다)에의 전송을 통해 643a의 원하는 위치로 이동시키는 성분들을 구비한다. 칩들간의 스와핑은 양방향 전송을 요구하며, 이는 서로 다른 방향들로 데이터 전송들을 인터리빙함으로써 달성될 수 있다.
단계 2에서, D를 내포하는 행은 슬레이브 레지스터(631)에 전송되고, 섹터(D)는 641b로 이동되고, 이것으로의 버스(605)를 통해 6443a의 그의 원하는 위치로 이동된다. 섹터들(A, B)는 이미 정렬되어 있어, 이들은 슬레이브 레지스터(631) 를 통해 마스터 레지스터(641)로 어떠한 마스킹도 없이 전송될 수 있다. 단계 3의 끝에서, 페이지의 데이터가 마스터 데이터 레지스터에서 정렬되어 함께 그룹화되었다. 단계 4에서, 이것은 다시 슬레이브 레지스터로 옮겨지고 목적지 페이지에 기입된다.
어떤 경우에, 오프-칩 카피 메커니즘 단독으로 데이터를 재배열하는 것은 불편하고 혹은 쉽게 가능하지 않을 수도 있다. 예를 들면, 예에서, A 및 B가 제2 칩에 저장되고 C 및 D가 제1 칩에 저장된다면, 이들을 다른 칩에 재배치하기 위해서, 추가의 임시 데이터 저장버퍼 혹은 칩들간 데이터를 스와핑하는 메커니즘(실제로 적어도 1비트의 별도의 임시 데이터 저장을 필요로 한다)이 필요하게 된다.
임시 저장버퍼는 예를 들면 제어기에 혹은 메모리 칩 자체에 메모리 칩들 밖에 위치할 수 있다. 예를 들면, 슬레이브 데이터 레지스터(631 혹은 633)는 이러한 임시 데이터 저장 소자로서 사용될 수 있다. 미국특허출원번호 10/846,289에 기술된 기술들 중 하나는, 슬레이브 데이터 레지스터와 IO 포트간의 데이터 전송, 혹은 슬레이브 레지스터와 마스터 데이터 레지스터간 데이터 스와핑처럼, 다른 칩으로 데이터 전송을 할 수 있게 하는데 사용될 수 있다.
효율적 데이터 재그룹화를 할 수 있게 하는 또 다른 실시예는 참조로 여기 포함시키는 2004년 8월 9일 출원된 미국특허출원번호 10/915,039에 기술된 링 버스 구조에 기초할 수 있다. 이에 보다 상세히 기술된 바와 같이, 이 구조는 서로 다른 칩들의 레지스터들간에 순환적으로 데이터가 시프트될 수 있게 한다. 도 9는 관계된 특징들 일부를 간략하게 예시하는데 사용될 수 있다. 도 9에 도시된 바와 같이, 제어기(911) 및 메모리 칩들(913, 915)는 세그먼트들(917, 919, 921, 923, 925, 927)로 구성된 링 버스를 따라 순환 구조로 접속된다. "링 버스 노드들"은 마스터 데이터 레지스터들에 대응하게 취해질 수 있다. 2칩 구성을 고찰하면, 각 칩으로부터 2개의 플레인들이 취해지는 것으로, 도 10에 도시된 결과는 단일 칩 경우의 도 4에 도시된 것과 매우 유사하다. 여기서, 메타-페이지에 대한 조합된 마스터 데이터 레지스터의 두 부분들은 링 버스 세그먼트(919)에 의해 접속되고 루프 백은 세그먼트들(917, 923, 927)로 구성된다. 따라서, 동작은 도 4 및 도 5에 도시된 것과 유사하게 된다.
위에 언급된 바와 같이, 지금까지의 논의는 플래시 EEPROM 메모리 셀들에 기초한 실시예들을 주로 참조하였고 전하 저장 소자들로서 도전성 플로팅 게이트들을 이용하는 셀의 유형에 관하여 기술되었다. 그러나, 본 발명의 여러 면들은 참조로 여기 포함시키는 2004년 5월 7일 출원된 미국특허출원번호 10/841,379에 기술된 여러 대안적 비휘발성 메모리 기술들(이를테면 박막, MRAM, FRAM, NMOS 등)과 함께 사용될 수 있다. 예를 들면, 발명은 플로팅 게이트들 대신에 개개의 메모리 셀들에 저장소자들로서 전하 트랩핑 유전체를 사용하는 시스템에 구현될 수 있다. 유전체 저장소자들은 참조로 여기 포함시키는 2002년 10월 25일 출원된 미국특허출원번호 10/280,352에 더욱 논의되어 있다.
발명을 여러 실시예들에 관하여 기술하였지만, 첨부된 청구항들의 전체 범위 내에서 발명이 보호되게 한 것임을 알 것이다.

Claims (37)

  1. 메모리 어레이를 포함하는 메모리 시스템을 동작시키는 방법에 있어서,
    상기 메모리 어레이로부터 제1 복수-섹터 페이지의 데이터를 제1 데이터 레지스터로 독출하는 단계;
    상기 제1 데이터 레지스터로부터 제2 데이터 레지스터로 상기 제1 페이지의 데이터의 모든 섹터들 미만을 선택적으로 전송하는 단계; 및
    상기 레지스터들 중 하나 내에 상기 제1 페이지의 데이터의 섹터들을 재정렬하는 단계;
    를 포함하는, 방법.
  2. 제1항에 있어서, 상기 제1 페이지의 데이터의 섹터들을 상기 재정렬하는 단계와 동시에, 상기 메모리로부터 상기 제1 페이지의 데이터의 섹터들을 전송하는 단계를 더 포함하는, 방법.
  3. 제2항에 있어서, 상기 메모리 시스템은 메모리 제어기를 포함하며 상기 제1 페이지의 데이터의 상기 전송된 섹터들은 상기 메모리 제어기로 전송되고, 상기 방법은
    상기 제어기에서 상기 제1 페이지의 데이터의 상기 전송된 섹터들에 대해 오류검출 및 정정동작을 수행하는 단계를 더 포함하는, 방법.
  4. 메모리 어레이를 포함하는 메모리 시스템을 동작시키는 방법에 있어서,
    상기 메모리 어레이로부터 제1 복수-섹터 페이지의 데이터를 제1 데이터 레지스터로 독출하는 단계;
    상기 제1 데이터 레지스터로부터 제2 데이터 레지스터로 상기 제1 페이지의 데이터의 모든 섹터들 미만을 선택적으로 전송하는 단계
    상기 제2 데이터 레지스터에 상기 제1 페이지의 데이터를 전송하는 단계에 이어, 상기 메모리 어레이로부터 제2 복수-섹터의 페이지의 데이터를 상기 제1 레지스터로 독출하는 단계; 및
    상기 제2 데이터 레지스터 내 상기 제1 페이지의 데이터의 상기 선택적으로 전송된 섹터들을 유지하면서 상기 제1 페이지의 데이터로부터 데이터를 내포하지 않는 상기 제2 데이터의 부분들에 상기 제1 데이터 레지스터로부터 상기 제2 페이지의 데이터의 모든 섹터들 미만을 선택적으로 전송하는 단계;
    를 포함하는, 방법.
  5. 제4항에 있어서, 상기 제2 데이터 레지스터에 상기 제2 페이지의 데이터의 섹터들을 상기 선택적으로 전송하는 단계에 앞서, 상기 레지스터들 중 하나 내에 상기 제1 페이지의 데이터의 섹터들을 재정렬하는 단계를 더 포함하는, 방법.
  6. 제4항에 있어서, 상기 제1 페이지의 데이터의 상기 선택적으로 전송된 섹터 들 및 상기 제2 페이지의 데이터의 상기 선택적으로 전송된 섹터들을 상기 메모리 어레이에 동시에 기입하는 단계를 더 포함하는, 방법.
  7. 메모리 어레이를 포함하는 메모리 시스템을 동작시키는 방법에 있어서,
    상기 메모리 어레이로부터 제1 복수-섹터 페이지의 데이터에 액세스하는 단계;
    상기 액세스된 제1 페이지로부터 상기 제1 페이지의 데이터의 모든 섹터들 미만을 제1 데이터 레지스터에 선택적으로 전송하는 단계; 및
    상기 레지스터들 중 하나 내에 상기 제1 페이지의 데이터의 섹터들을 재정렬하는 단계;
    를 포함하는 방법.
  8. 제7항에 있어서, 상기 제1 페이지의 데이터의 섹터들을 상기 재정렬하는 단계와 동시에, 상기 메모리로부터 상기 제1 페이지의 데이터의 섹터들을 전송하는 단계를 더 포함하는, 방법.
  9. 제8항에 있어서, 상기 메모리 시스템은 메모리 제어기를 포함하며 상기 제1 페이지의 데이터의 상기 전송된 섹터들은 상기 메모리 제어기로 전송되고, 상기 방법은
    상기 제어기에서 상기 제1 페이지의 데이터의 상기 전송된 섹터들에 대해 오 류검출 및 정정동작을 수행하는 단계를 더 포함하는, 방법.
  10. 메모리 어레이를 포함하는 메모리 시스템을 동작시키는 방법에 있어서,
    상기 메모리 어레이로부터 제1 복수-섹터 페이지의 데이터에 액세스하는 단계;
    상기 액세스된 제1 페이지로부터 상기 제1 페이지의 데이터의 모든 섹터들 미만을 제1 데이터 레지스터에 선택적으로 전송하는 단계
    상기 제1 데이터 레지스터로부터 상기 제1 페이지의 데이터의 부분들을 제2 데이터 레지스터에 전송하는 단계;
    상기 제2 데이터 레지스터에 상기 제1 페이지의 부분들을 전송하는 단계에 이어, 상기 메모리 어레이로부터 제2 복수-섹터의 페이지의 데이터를 액세스하는 단계; 및
    상기 액세스된 제2 데이터로부터 상기 제2 페이지의 데이터의 모든 섹터들 미만을 상기 제1 데이터 레지스터에 선택적으로 전송하는 단계; 및
    상기 제2 데이터 레지스터 내 상기 제1 페이지의 데이터의 상기 선택적으로 전송된 섹터들을 유지하면서 상기 제1 페이지의 데이터로부터 데이터를 내포하지 않는 상기 제2 데이터의 부분들에 상기 제1 데이터 레지스터로부터 상기 제2 페이지의 부분들을 선택적으로 전송하는 단계;
    를 포함하는 방법.
  11. 제10항에 있어서, 상기 제1 페이지의 데이터의 상기 선택적으로 전송된 섹터들 및 상기 제2 페이지의 데이터의 상기 선택적으로 전송된 섹터들을 상기 메모리 어레이에 동시에 기입하는 단계를 더 포함하는, 방법.
  12. 제10항에 있어서, 상기 제2 데이터 레지스터에 상기 제2 페이지의 데이터의 섹터들을 상기 선택적으로 전송하는 단계에 앞서, 상기 레지스터들 중 하나 내에 상기 제1 페이지의 데이터의 섹터들을 재정렬하는 단계를 더 포함하는, 방법.
  13. 메모리 어레이 및 복수의 데이터 레지스터들을 구비하는 메모리 디바이스와 제어기를 포함하는 메모리 시스템을 동작시키는 방법에 있어서,
    상기 어레이로부터 상기 복수의 페이지들로부터의 데이터를 상기 레지스터들로 독출하는 단계;
    상기 레지스터들 내에서 상기 복수의 페이지들 중 복수의 페이지들로부터 데이터들을 상기 레지스터들 중 한 레지스터 내 단일 페이지에 결합하는 단계; 및
    결합된 섹터들의 페이지를 상기 메모리 어레이에 기입하는 단계;
    를 포함하는, 방법.
  14. 제13항에 있어서, 상기 방법은 상기 데이터 독출에 이어서 그리고 상기 페이지의 결합된 섹터들을 상기 기입하는 단계에 앞서, 하나 이상의 상기 복수의 페이지들로부터 데이터를 오류정정 및 검출동작을 수행하기 위해 상기 제어기에 전송하 는 단계를 더 포함하는, 방법.
  15. 각각이 메모리 어레이와 제1 및 제2 데이터 레지스터들을 포함하는 복수의 메모리들을 포함하는 메모리 시스템을 동작시키는 방법에 있어서,
    상기 제1 메모리의 어레이로부터 복수-섹터 부분의 제1 페이지 데이터를 상기 대응하는 제1 데이터 레지스터로 독출하는 단계; 상기 제1 데이터 레지스터로부터 상기 제1 페이지의 데이터의 상기 독출된 모든 섹터들 미만을 상기 대응하는 제2 데이터 레지스터에 선택적으로 전송하는 단계를 포함하는, 상기 메모리들 중 제1 메모리에서 프로세스를 수행하는 단계;
    상기 제1 메모리에서 상기 프로세스를 수행하는 단계에 이어, 상기 제1 페이지의 선택적으로 전송된 부분을 상기 제1 메모리의 상기 제2 데이터 레지스터로부터 상기 메모리들 중 제2 메모리의 상기 제2 데이터 레지스터에 이동시키는 단계;
    상기 제1 페이지의 데이터의 부분을 선택적으로 전송하고, 상기 제1 혹은 제2 메모리의 어레이 중 하나로부터 제2 페이지의 데이터의 부분을 상기 대응하는 제1 데이터 레지스터로 독출하는 단계; 및
    상기 제2 데이터 레지스터들 중 한 레지스터 내 상기 제1 페이지의 데이터의 상기 선택적으로 전송된 섹터들을 유지하면서 상기 대응하는 제1 데이터 레지스터로부터 상기 대응하는 제2 데이터로 상기 제2 페이지의 데이터의 적어도 일부를 전송하는 단계;
    를 포함하는, 방법.
  16. 제15항에 있어서, 상기 제1 페이지의 상기 선택적으로 전송된 부분을 이동시키는 단계와 함께, 상기 메모리로부터 상기 제1 페이지의 데이터의 섹터들을 전송하는 단계를 더 포함하는, 방법.
  17. 제16항에 있어서, 상기 메모리 시스템은 메모리 제어기를 더 포함하고 상기 제1 페이지의 데이터의 상기 전송된 섹터들은 상기 메모리 제어기로 전송되고, 상기 방법은
    상기 제어기에서 상기 제1 페이지의 데이터의 상기 전송된 섹터들에 대해 오류검출 및 정정동작을 수행하는 단계를 더 포함하는, 방법.
  18. 제15항에 있어서, 상기 제1 페이지의 데이터의 상기 선택적으로 전송된 섹터들 및 상기 제2 페이지의 데이터의 상기 선택적으로 전송된 섹터들을 메타-페이지의 데이터로서 상기 제1 및 제2 메모리에 동시에 기입하는 단계를 더 포함하는, 방법.
  19. 제15항에 있어서, 상기 메모리들 각각은 복수의 반-자율적 어레이들로서 구성되고, 상기 반-자율적 어레이들 각각은 상기 페이지들 각각의 단일 섹터를 저장하는, 방법.
  20. 제15항에 있어서, 상기 메모리들 각각은 복수의 반-자율적 어레이들로서 구성되고, 상기 반-자율적 어레이들 각각은 상기 페이지들 각각의 복수의 섹터를 저장하는, 방법.
  21. 각각이 대응하는 복수의 데이터 레지스터들을 구비하는 복수의 메모리 어레이들을 갖는 메모리 디바이스와 제어기를 포함하는 메모리 시스템을 동작시키는 방법에 있어서,
    상기 어레이로부터 상기 복수의 페이지들로부터의 데이터를 상기 레지스터들로 독출하는 단계;
    상기 레지스터들 내에서 상기 복수의 페이지들 중 복수의 페이지들로부터 데이터들을 상기 레지스터들 내 단일 메타-페이지에 결합하는 단계; 및
    결합된 섹터들의 메타-페이지를 상기 메모리 어레이에 기입하는 단계;
    를 포함하는, 방법.
  22. 제21항에 있어서, 상기 방법은 상기 데이터 독출에 이어서 그리고 상기 메타-페이지의 결합된 섹터들을 상기 기입하는 단계에 앞서, 하나 이상의 상기 복수의 페이지들로부터 데이터를 오류정정 및 검출동작을 수행하기 위해 상기 제어기에 전송하는 단계를 더 포함하는, 방법.
  23. 메모리 시스템에 있어서,
    메모리 어레이;
    복수의 데이터 섹터들은 제1 레지스터와 어레이간에 병렬로 전송될 수 있는 것으로서, 제1 복수-섹터 레지스터;
    제2 레지스터와 메모리 외부간에 데이터가 전송될 수 있고 복수의 데이터 섹터들은 상기 제1 레지스터와 상기 제2 레지스터간에 병렬로 전송될 수 있는 것으로서, 제2 복수-섹터 레지스터를 포함하고;
    상기 레지스터들 한 레지스터 내 데이터 섹터들의 정렬은 재정렬될 수 있는 것인, 메모리 칩을 포함하는, 메모리 시스템.
  24. 제23항에 있어서, 상기 레지스터들 중 한 레지스터 내에서 데이터 섹터들을 재정렬시킴과 병렬로 상기 제2 레지스터와 상기 제어기간에 데이터가 전송될 수 있는 제어기를 더 포함하는, 메모리 시스템.
  25. 제24항에 있어서, 상기 제어기는 상기 메모리에서 상기 제어기로 전송된 데이터에 대해 오류검출 및 정정동작을 수행할 수 있는, 메모리 시스템.
  26. 메모리 시스템에 있어서
    메모리 어레이;
    복수의 데이터 섹터들은 제1 레지스터와 어레이간에 병렬로 전송될 수 있는 것으로서, 제1 복수-섹터 레지스터;
    제2 레지스터와 메모리 외부간에 데이터가 전송될 수 있고 복수의 데이터 섹터들은 상기 제1 레지스터와 상기 제2 레지스터간에 병렬로 전송될 수 있는 것으로서, 제2 복수-섹터 레지스터를 포함하고;
    상기 개개의 데이터 섹터들은 상기 제1 레지스터와 상기 제2 레지스터간에 선택적으로 전송될 수 있는 것인, 제1 메모리를 포함하는, 메모리 시스템.
  27. 제26항에 있어서, 상기 레지스터들 중 한 레지스터 내 데이터 섹터들의 정렬은 재정렬될 수 있는, 메모리 시스템.
  28. 제27항에 있어서, 제어기를 더 포함하고, 데이터는 상기 레지스터들 중 한 레지스터 내 데이터 섹터들의 재정렬하는 단계와 병렬로 상기 제2 레지스터와 상기 제어기간에 전송될 수 있는, 메모리 시스템.
  29. 제28항에 있어서, 상기 제어기는 상기 메모리에서 상기 제어기로 전송된 데이터에 대해 오류검출 및 정정동작을 수행할 수 있는, 메모리 시스템.
  30. 제26항에 있어서, 상기 메모리는 복수의 반-자율적 어레이들로서 구성되고, 상기 반-자율적 어레이들 각각은 상기 페이지들 각각의 단일 섹터를 저장하는, 메모리 시스템.
  31. 제26항에 있어서, 상기 메모리는 복수의 반-자율적 어레이들로서 구성되고, 상기 반-자율적 어레이들 각각은 상기 페이지들 각각의 복수의 섹터를 저장하는, 메모리 시스템.
  32. 제26항에 있어서, 복수-섹터 레지스터를 포함하는 제2 메모리를 더 포함하고, 상기 선택적으로 전송된 데이터는 상기 제1 메모리의 상기 제2 레지스터와 상기 제2 메모리의 상기 레지스터간에 교환될 수 있는, 메모리 시스템.
  33. 제26항에 있어서,
    메모리 어레이;
    복수의 데이터 섹터들은 제1 레지스터와 상기 어레이간에 병렬로 전송될 수 있는 것으로서, 제1 복수-섹터 레지스터;
    제2 레지스터와 메모리 외부간에 데이터가 전송될 수 있고 복수의 데이터 섹터들은 상기 제1 레지스터와 상기 제2 레지스터간에 병렬로 전송될 수 있는 것으로서, 제2 복수-섹터 레지스터를 포함하고;
    상기 개개의 데이터 섹터들은 상기 제1 레지스터와 상기 제1 메모리의 상기 제2 레지스터간의 개별적 데이터 섹터들을 선택적으로 전송하는 단계와 병렬로 상기 제1 레지스터와 상기 제2 메모리의 상기 제2 레지스터간에 선택적으로 전송될 수 있는 것인, 제2 메모리를 더 포함하는, 메모리 시스템.
  34. 메모리 시스템에 있어서
    메모리 어레이;
    복수의 데이터 섹터들은 제1 레지스터와 어레이 간에 병렬로 전송될 수 있으며, 개개의 데이터 섹터들은 상기 메모리 어레이와 제1 레지스터 간에 선택적으로 전송될 수 있는, 제1 복수-섹터 레지스터;
    제2 레지스터와 메모리 외부 간에 데이터가 전송될 수 있고 복수의 데이터 섹터들은 상기 제1 레지스터와 상기 제2 레지스터 간에 병렬로 전송될 수 있는, 제2 복수-섹터 레지스터를 포함하고;
    상기 레지스터들 중 한 레지스터 내에서 데이터 섹터들의 정렬은 재정렬될 수 있는, 제1 메모리를 포함하는, 메모리 시스템.
  35. 제34항에 있어서, 제어기를 더 포함하고, 데이터는 상기 레지스터들 중 한 레지스터 내 데이터 섹터들의 재정렬하는 단계와 병렬로 상기 제2 레지스터와 상기 제어기간에 전송될 수 있는, 메모리 시스템.
  36. 제35항에 있어서, 상기 제어기는 상기 메모리에서 상기 제어기로 전송된 데이터에 대해 오류검출 및 정정동작을 수행할 수 있는, 메모리 시스템.
  37. 메모리 시스템에 있어서
    메모리 어레이;
    복수의 데이터 섹터들은 제1 레지스터와 어레이 간에 병렬로 전송될 수 있으며, 개개의 데이터 섹터들은 상기 메모리 어레이와 제1 레지스터 간에 선택적으로 전송될 수 있는, 제1 복수-섹터 레지스터;
    제2 레지스터와 메모리 외부 간에 데이터가 전송될 수 있고 복수의 데이터 섹터들은 상기 제1 레지스터와 상기 제2 레지스터 간에 병렬로 전송될 수 있는, 제2 복수-섹터 레지스터를 포함하고;
    복수-섹터 레지스터를 포함하는 제2 메모리를 더 포함하고, 상기 선택적으로 전송된 데이터는 상기 제1 메모리의 상기 제2 레지스터와 상기 제2 메모리의 상기 레지스터간에 교환될 수 있는, 메모리 시스템.
KR1020077015726A 2004-12-30 2005-12-27 온-칩 데이터 그룹화 및 정렬 KR101060089B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/026,549 US7212440B2 (en) 2004-12-30 2004-12-30 On-chip data grouping and alignment
US11/026,549 2004-12-30
PCT/US2005/047456 WO2006074086A2 (en) 2004-12-30 2005-12-27 On-chip data grouping and alignment

Publications (2)

Publication Number Publication Date
KR20070102507A true KR20070102507A (ko) 2007-10-18
KR101060089B1 KR101060089B1 (ko) 2011-08-29

Family

ID=36215818

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077015726A KR101060089B1 (ko) 2004-12-30 2005-12-27 온-칩 데이터 그룹화 및 정렬

Country Status (8)

Country Link
US (2) US7212440B2 (ko)
EP (2) EP1839155A2 (ko)
JP (1) JP2008527586A (ko)
KR (1) KR101060089B1 (ko)
CN (1) CN101142564B (ko)
IL (1) IL184301A0 (ko)
TW (1) TW200629280A (ko)
WO (1) WO2006074086A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100137156A (ko) * 2009-06-22 2010-12-30 삼성전자주식회사 데이터 저장 시스템 및 그것의 채널 구동 방법
KR20130087935A (ko) * 2012-01-30 2013-08-07 삼성전자주식회사 메모리, 메모리 시스템, 및 메모리에 대한 에러 검출/정정 방법
US8626987B2 (en) 2009-10-27 2014-01-07 Samsung Electronics Co., Ltd. Flash memory system and defragmentation method

Families Citing this family (117)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100714873B1 (ko) * 2005-09-06 2007-05-07 삼성전자주식회사 비휘발성 메모리에서 데이터 갱신 방법 및 이를 위한 장치
US20070143567A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Methods for data alignment in non-volatile memories with a directly mapped file storage system
US20070143566A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with data alignment in a directly mapped file storage system
US7423915B2 (en) * 2006-01-17 2008-09-09 Spansion Llc Random cache read using a double memory
US9052826B2 (en) * 2006-07-28 2015-06-09 Condusiv Technologies Corporation Selecting storage locations for storing data based on storage location attributes and data usage statistics
US7870128B2 (en) 2006-07-28 2011-01-11 Diskeeper Corporation Assigning data for storage based on speed with which data may be retrieved
JP5019567B2 (ja) * 2006-08-04 2012-09-05 ソニーモバイルコミュニケーションズ株式会社 メモリ管理方法および携帯端末装置
JP2008090519A (ja) * 2006-09-29 2008-04-17 Toshiba Corp 記憶装置
KR100843218B1 (ko) * 2006-12-18 2008-07-02 삼성전자주식회사 어드레스 쉬프팅을 이용하여 블럭 사이즈를 변경하는플래시 메모리 장치 및 방법
US7861139B2 (en) 2007-01-26 2010-12-28 Micron Technology, Inc. Programming management data for NAND memories
KR100877609B1 (ko) * 2007-01-29 2009-01-09 삼성전자주식회사 버퍼 메모리의 플래그 셀 어레이를 이용하여 데이터 오류 정정을 수행하는 반도체 메모리 시스템 및 그 구동 방법
WO2008146475A1 (ja) * 2007-06-01 2008-12-04 Panasonic Corporation 記録装置
US8296498B2 (en) * 2007-11-13 2012-10-23 Sandisk Technologies Inc. Method and system for virtual fast access non-volatile RAM
US8959307B1 (en) 2007-11-16 2015-02-17 Bitmicro Networks, Inc. Reduced latency memory read transactions in storage devices
US8762620B2 (en) 2007-12-27 2014-06-24 Sandisk Enterprise Ip Llc Multiprocessor storage controller
KR101067457B1 (ko) * 2008-03-01 2011-09-27 가부시끼가이샤 도시바 메모리 시스템
JP4498426B2 (ja) * 2008-03-01 2010-07-07 株式会社東芝 メモリシステム
US20100180182A1 (en) * 2009-01-09 2010-07-15 Seagate Technology Llc Data memory device and controller with interface error detection and handling logic
US8102705B2 (en) * 2009-06-05 2012-01-24 Sandisk Technologies Inc. Structure and method for shuffling data within non-volatile memory devices
US20110002169A1 (en) 2009-07-06 2011-01-06 Yan Li Bad Column Management with Bit Information in Non-Volatile Memory Systems
US8665601B1 (en) 2009-09-04 2014-03-04 Bitmicro Networks, Inc. Solid state drive with improved enclosure assembly
US8447908B2 (en) 2009-09-07 2013-05-21 Bitmicro Networks, Inc. Multilevel memory bus system for solid-state mass storage
US8560804B2 (en) 2009-09-14 2013-10-15 Bitmicro Networks, Inc. Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device
KR20110046243A (ko) * 2009-10-27 2011-05-04 삼성전자주식회사 사용자 장치 및 그것의 맵핑 데이터 관리 방법
US20110153912A1 (en) * 2009-12-18 2011-06-23 Sergey Anatolievich Gorobets Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory
US8468294B2 (en) * 2009-12-18 2013-06-18 Sandisk Technologies Inc. Non-volatile memory with multi-gear control using on-chip folding of data
US8144512B2 (en) 2009-12-18 2012-03-27 Sandisk Technologies Inc. Data transfer flows for on-chip folding
US8725935B2 (en) 2009-12-18 2014-05-13 Sandisk Technologies Inc. Balanced performance for on-chip folding of non-volatile memories
US9141538B2 (en) 2010-07-07 2015-09-22 Marvell World Trade Ltd. Apparatus and method for generating descriptors to transfer data to and from non-volatile semiconductor memory of a storage drive
US8868852B2 (en) * 2010-07-07 2014-10-21 Marvell World Trade Ltd. Interface management control systems and methods for non-volatile semiconductor memory
US9135168B2 (en) 2010-07-07 2015-09-15 Marvell World Trade Ltd. Apparatus and method for generating descriptors to reaccess a non-volatile semiconductor memory of a storage drive due to an error
US9342446B2 (en) 2011-03-29 2016-05-17 SanDisk Technologies, Inc. Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache
US9898402B2 (en) * 2011-07-01 2018-02-20 Micron Technology, Inc. Unaligned data coalescing
US9372755B1 (en) 2011-10-05 2016-06-21 Bitmicro Networks, Inc. Adaptive power cycle sequences for data recovery
US20130103889A1 (en) * 2011-10-25 2013-04-25 Ocz Technology Group Inc. Page-buffer management of non-volatile memory-based mass storage devices
KR101942272B1 (ko) 2011-12-27 2019-01-28 삼성전자주식회사 비휘발성 메모리의 제어방법, 이를 구현한 비휘발성 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US8842473B2 (en) 2012-03-15 2014-09-23 Sandisk Technologies Inc. Techniques for accessing column selecting shift register with skipped entries in non-volatile memories
US8681548B2 (en) 2012-05-03 2014-03-25 Sandisk Technologies Inc. Column redundancy circuitry for non-volatile memory
US8984247B1 (en) 2012-05-10 2015-03-17 Western Digital Technologies, Inc. Storing and reconstructing mapping table data in a data storage system
US8966205B1 (en) 2012-05-10 2015-02-24 Western Digital Technologies, Inc. System data management using garbage collection and hybrid self mapping
US9977612B1 (en) 2012-05-11 2018-05-22 Western Digital Technologies, Inc. System data management using garbage collection and logs
US9043669B1 (en) 2012-05-18 2015-05-26 Bitmicro Networks, Inc. Distributed ECC engine for storage media
US9170932B1 (en) 2012-05-22 2015-10-27 Western Digital Technologies, Inc. System data storage mechanism providing coherency and segmented data loading
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US8897080B2 (en) 2012-09-28 2014-11-25 Sandisk Technologies Inc. Variable rate serial to parallel shift register
US9490035B2 (en) 2012-09-28 2016-11-08 SanDisk Technologies, Inc. Centralized variable rate serializer and deserializer for bad column management
US9076506B2 (en) 2012-09-28 2015-07-07 Sandisk Technologies Inc. Variable rate parallel to serial shift register
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9423457B2 (en) 2013-03-14 2016-08-23 Bitmicro Networks, Inc. Self-test solution for delay locked loops
US10489318B1 (en) 2013-03-15 2019-11-26 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9672178B1 (en) 2013-03-15 2017-06-06 Bitmicro Networks, Inc. Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system
US9430386B2 (en) 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
US10120694B2 (en) 2013-03-15 2018-11-06 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9720603B1 (en) 2013-03-15 2017-08-01 Bitmicro Networks, Inc. IOC to IOC distributed caching architecture
US9842024B1 (en) 2013-03-15 2017-12-12 Bitmicro Networks, Inc. Flash electronic disk with RAID controller
US9400617B2 (en) 2013-03-15 2016-07-26 Bitmicro Networks, Inc. Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained
US9971524B1 (en) 2013-03-15 2018-05-15 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9798688B1 (en) 2013-03-15 2017-10-24 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9734067B1 (en) 2013-03-15 2017-08-15 Bitmicro Networks, Inc. Write buffering
US9916213B1 (en) 2013-03-15 2018-03-13 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9875205B1 (en) 2013-03-15 2018-01-23 Bitmicro Networks, Inc. Network of memory systems
US9501436B1 (en) 2013-03-15 2016-11-22 Bitmicro Networks, Inc. Multi-level message passing descriptor
US9934045B1 (en) 2013-03-15 2018-04-03 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9588882B2 (en) * 2013-12-02 2017-03-07 Intel Corporation Non-volatile memory sector rotation
US20150186257A1 (en) * 2013-12-26 2015-07-02 Anand S. Ramalingam Managing a transfer buffer for a non-volatile memory
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US10025736B1 (en) 2014-04-17 2018-07-17 Bitmicro Networks, Inc. Exchange message protocol message transmission between two devices
US9811461B1 (en) 2014-04-17 2017-11-07 Bitmicro Networks, Inc. Data storage system
US10055150B1 (en) 2014-04-17 2018-08-21 Bitmicro Networks, Inc. Writing volatile scattered memory metadata to flash device
US9952991B1 (en) 2014-04-17 2018-04-24 Bitmicro Networks, Inc. Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation
US10078604B1 (en) 2014-04-17 2018-09-18 Bitmicro Networks, Inc. Interrupt coalescing
US10042792B1 (en) 2014-04-17 2018-08-07 Bitmicro Networks, Inc. Method for transferring and receiving frames across PCI express bus for SSD device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US8988946B1 (en) 2014-07-07 2015-03-24 Sandisk Technologies Inc. Selective sense amplifier enablement
CN104182358B (zh) * 2014-08-21 2017-07-14 飞天诚信科技股份有限公司 一种优化数据读写的方法及装置
US9740607B2 (en) 2014-09-03 2017-08-22 Micron Technology, Inc. Swap operations in memory
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
US9678832B2 (en) 2014-09-18 2017-06-13 Sandisk Technologies Llc Storage module and method for on-chip copy gather
US10147480B2 (en) * 2014-10-24 2018-12-04 Micron Technology, Inc. Sort operation in memory
US9934872B2 (en) 2014-10-30 2018-04-03 Sandisk Technologies Llc Erase stress and delta erase loop count methods for various fail modes in non-volatile memory
US9880760B2 (en) 2014-10-30 2018-01-30 Sandisk Technologies Llc Managing data stored in a nonvolatile storage device
US9224502B1 (en) 2015-01-14 2015-12-29 Sandisk Technologies Inc. Techniques for detection and treating memory hole to local interconnect marginality defects
US10032524B2 (en) 2015-02-09 2018-07-24 Sandisk Technologies Llc Techniques for determining local interconnect defects
US9564219B2 (en) 2015-04-08 2017-02-07 Sandisk Technologies Llc Current based detection and recording of memory hole-interconnect spacing defects
US9269446B1 (en) 2015-04-08 2016-02-23 Sandisk Technologies Inc. Methods to improve programming of slow cells
US10579377B2 (en) 2017-01-19 2020-03-03 International Business Machines Corporation Guarded storage event handling during transactional execution
US10496311B2 (en) 2017-01-19 2019-12-03 International Business Machines Corporation Run-time instrumentation of guarded storage event processing
US10725685B2 (en) 2017-01-19 2020-07-28 International Business Machines Corporation Load logical and shift guarded instruction
US10732858B2 (en) 2017-01-19 2020-08-04 International Business Machines Corporation Loading and storing controls regulating the operation of a guarded storage facility
US10452288B2 (en) 2017-01-19 2019-10-22 International Business Machines Corporation Identifying processor attributes based on detecting a guarded storage event
US10496292B2 (en) 2017-01-19 2019-12-03 International Business Machines Corporation Saving/restoring guarded storage controls in a virtualized environment
US10552050B1 (en) 2017-04-07 2020-02-04 Bitmicro Llc Multi-dimensional computer storage system
TWI641988B (zh) * 2017-07-21 2018-11-21 慧榮科技股份有限公司 用來於一記憶裝置中進行編程管理之方法以及記憶裝置及其控制器
US10372603B2 (en) 2017-11-27 2019-08-06 Western Digital Technologies, Inc. Handling of unaligned writes
KR20210016191A (ko) * 2019-08-01 2021-02-15 삼성전자주식회사 스토리지 장치

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE246857C (ko)
GB1524850A (en) * 1975-12-23 1978-09-13 Ferranti Ltd Data processing apparatus
CA2045705A1 (en) * 1990-06-29 1991-12-30 Richard Lee Sites In-register data manipulation in reduced instruction set processor
US5233616A (en) * 1990-10-01 1993-08-03 Digital Equipment Corporation Write-back cache with ECC protection
US5274646A (en) * 1991-04-17 1993-12-28 International Business Machines Corporation Excessive error correction control
US5267242A (en) * 1991-09-05 1993-11-30 International Business Machines Corporation Method and apparatus for substituting spare memory chip for malfunctioning memory chip with scrubbing
TW231343B (ko) * 1992-03-17 1994-10-01 Hitachi Seisakusyo Kk
JP3323869B2 (ja) 1992-03-31 2002-09-09 株式会社東芝 不揮発性半導体メモリ装置
JP3078946B2 (ja) * 1993-03-11 2000-08-21 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置
KR970008188B1 (ko) * 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
JP2922116B2 (ja) * 1993-09-02 1999-07-19 株式会社東芝 半導体記憶装置
EP0895167A3 (en) 1994-03-24 1999-03-10 Discovision Associates Method and apparatus for interfacing with ram
US5606532A (en) * 1995-03-17 1997-02-25 Atmel Corporation EEPROM array with flash-like core
US5873126A (en) * 1995-06-12 1999-02-16 International Business Machines Corporation Memory array based data reorganizer
US6081878A (en) 1997-03-31 2000-06-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
AU3832297A (en) * 1996-02-29 1997-09-16 Hitachi Limited Semiconductor memory device having faulty cells
US5777923A (en) * 1996-06-17 1998-07-07 Aplus Integrated Circuits, Inc. Flash memory read/write controller
US5890192A (en) * 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
US5822245A (en) * 1997-03-26 1998-10-13 Atmel Corporation Dual buffer flash memory architecture with multiple operating modes
JPH113290A (ja) 1997-06-11 1999-01-06 Hitachi Ltd メモリ制御方式
US5930167A (en) * 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
US6021463A (en) * 1997-09-02 2000-02-01 International Business Machines Corporation Method and means for efficiently managing update writes and fault tolerance in redundancy groups of addressable ECC-coded sectors in a DASD storage subsystem
JPH11203191A (ja) * 1997-11-13 1999-07-30 Seiko Epson Corp 不揮発性記憶装置、不揮発性記憶装置の制御方法、および、不揮発性記憶装置を制御するプログラムを記録した情報記録媒体
US6101624A (en) * 1998-01-21 2000-08-08 International Business Machines Corporation Method and apparatus for detecting and correcting anomalies in field-programmable gate arrays using CRCs for anomaly detection and parity for anomaly correction
CN1298514A (zh) 1998-02-26 2001-06-06 太阳微系统公司 确定性散列识别远程方法的方法和系统
US6040997A (en) * 1998-03-25 2000-03-21 Lexar Media, Inc. Flash memory leveling architecture having no external latch
JP2000200842A (ja) * 1998-11-04 2000-07-18 Sony Corp 不揮発性半導体記憶装置、製造方法および書き込み方法
US6490649B2 (en) * 1998-11-10 2002-12-03 Lexar Media, Inc. Memory device
US6374337B1 (en) * 1998-11-17 2002-04-16 Lexar Media, Inc. Data pipelining method and apparatus for memory control circuit
EP1008940A3 (en) 1998-12-07 2001-09-12 Network Virtual Systems Inc. Intelligent and adaptive memory and methods and devices for managing distributed memory systems with hardware-enforced coherency
US6469955B1 (en) * 2000-11-21 2002-10-22 Integrated Memory Technologies, Inc. Integrated circuit memory device having interleaved read and program capabilities and methods of operating same
GB9903490D0 (en) 1999-02-17 1999-04-07 Memory Corp Plc Memory system
US6449625B1 (en) * 1999-04-20 2002-09-10 Lucent Technologies Inc. Use of a two-way stack approach to optimize flash memory management for embedded database systems
DE60043805D1 (de) 1999-04-29 2010-03-25 Nxp Bv Chtung und als slave-gerät in einem bussystem
WO2001008015A1 (fr) * 1999-07-28 2001-02-01 Sony Corporation Systeme d'enregistrement, dispositif d'enregistrement de donnees, dispositif a memoire et procede d'enregistrement de donnees
KR100584175B1 (ko) 1999-10-18 2006-05-26 엘지전자 주식회사 기록매체에의 데이터 기록 및 재생방법
JP4923318B2 (ja) * 1999-12-17 2012-04-25 ソニー株式会社 不揮発性半導体記憶装置およびその動作方法
US6426893B1 (en) * 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
US6532201B1 (en) 2000-04-03 2003-03-11 Hewlett-Packard Company Copy protection for optical discs
US6396744B1 (en) * 2000-04-25 2002-05-28 Multi Level Memory Technology Flash memory with dynamic refresh
US6266273B1 (en) * 2000-08-21 2001-07-24 Sandisk Corporation Method and structure for reliable data copy operation for non-volatile memories
US6581142B1 (en) * 2000-09-01 2003-06-17 International Business Machines Corporation Computer program product and method for partial paging and eviction of microprocessor instructions in an embedded computer
US6725343B2 (en) * 2000-10-05 2004-04-20 Hewlett-Packard Development Company, L.P. System and method for generating cache coherence directory entries and error correction codes in a multiprocessor system
JP4151229B2 (ja) * 2000-10-26 2008-09-17 ソニー株式会社 不揮発性半導体記憶装置およびその製造方法
US6664143B2 (en) * 2000-11-22 2003-12-16 North Carolina State University Methods of fabricating vertical field effect transistors by conformal channel layer deposition on sidewalls
US6684289B1 (en) 2000-11-22 2004-01-27 Sandisk Corporation Techniques for operating non-volatile memory systems with data sectors having different sizes than the sizes of the pages and/or blocks of the memory
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US6456528B1 (en) * 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
GB0123410D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Memory system for data storage and retrieval
GB0123416D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
GB0123412D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Memory system sectors
US6977847B2 (en) 2001-11-23 2005-12-20 M-Systems Flash Disk Pioneers Ltd. Detecting partially erased units in flash devices
US6542407B1 (en) * 2002-01-18 2003-04-01 Sandisk Corporation Techniques of recovering data from memory cells affected by field coupling with adjacent memory cells
US6836432B1 (en) 2002-02-11 2004-12-28 Advanced Micro Devices, Inc. Partial page programming of multi level flash
US6657252B2 (en) * 2002-03-19 2003-12-02 International Business Machines Corporation FinFET CMOS with NVRAM capability
JP3947135B2 (ja) * 2003-05-30 2007-07-18 株式会社東芝 不揮発性半導体記憶装置
US6830963B1 (en) * 2003-10-09 2004-12-14 Micron Technology, Inc. Fully depleted silicon-on-insulator CMOS logic
US7350044B2 (en) * 2004-01-30 2008-03-25 Micron Technology, Inc. Data move method and apparatus
EP1569124A1 (en) 2004-02-26 2005-08-31 Matsushita Electric Industrial Co., Ltd. Memory interface and data processing
US7138681B2 (en) * 2004-07-27 2006-11-21 Micron Technology, Inc. High density stepped, non-planar nitride read only memory
US7280398B1 (en) * 2006-08-31 2007-10-09 Micron Technology, Inc. System and memory for sequential multi-plane page memory operations

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100137156A (ko) * 2009-06-22 2010-12-30 삼성전자주식회사 데이터 저장 시스템 및 그것의 채널 구동 방법
US8626987B2 (en) 2009-10-27 2014-01-07 Samsung Electronics Co., Ltd. Flash memory system and defragmentation method
KR20130087935A (ko) * 2012-01-30 2013-08-07 삼성전자주식회사 메모리, 메모리 시스템, 및 메모리에 대한 에러 검출/정정 방법

Also Published As

Publication number Publication date
WO2006074086A2 (en) 2006-07-13
WO2006074086A3 (en) 2006-10-26
US7212440B2 (en) 2007-05-01
IL184301A0 (en) 2007-10-31
EP2256637A1 (en) 2010-12-01
CN101142564B (zh) 2011-12-14
EP1839155A2 (en) 2007-10-03
WO2006074086B1 (en) 2007-01-18
KR101060089B1 (ko) 2011-08-29
US20070159885A1 (en) 2007-07-12
JP2008527586A (ja) 2008-07-24
US7502259B2 (en) 2009-03-10
TW200629280A (en) 2006-08-16
CN101142564A (zh) 2008-03-12
US20060149890A1 (en) 2006-07-06

Similar Documents

Publication Publication Date Title
KR101060089B1 (ko) 온-칩 데이터 그룹화 및 정렬
KR101152283B1 (ko) 파이프라인 데이터 재배치 및 개선된 칩 구조
US8316177B2 (en) Partial block data programming and reading operations in a non-volatile memory
US7461199B2 (en) Pipelined parallel programming operation in a non-volatile memory system
US7409473B2 (en) Off-chip data relocation
KR101040961B1 (ko) 온-칩 비휘발성 메모리 기록 캐쉬를 사용하기 위한 시스템및 방법
KR100626393B1 (ko) 불휘발성 메모리 장치 및 그것의 멀티-페이지 카피백 방법
KR20030043934A (ko) 비-휘발성 메모리에 대해 신뢰성이 높은 데이터 복사작동을 위한 신규 방법 및 구조

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated 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: 20140808

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150716

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160720

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170719

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180730

Year of fee payment: 8