KR101507194B1 - 직렬 인터페이스 nand - Google Patents

직렬 인터페이스 nand Download PDF

Info

Publication number
KR101507194B1
KR101507194B1 KR1020107010753A KR20107010753A KR101507194B1 KR 101507194 B1 KR101507194 B1 KR 101507194B1 KR 1020107010753 A KR1020107010753 A KR 1020107010753A KR 20107010753 A KR20107010753 A KR 20107010753A KR 101507194 B1 KR101507194 B1 KR 101507194B1
Authority
KR
South Korea
Prior art keywords
data
nand memory
cache
memory device
address
Prior art date
Application number
KR1020107010753A
Other languages
English (en)
Other versions
KR20100077026A (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 KR20100077026A publication Critical patent/KR20100077026A/ko
Application granted granted Critical
Publication of KR101507194B1 publication Critical patent/KR101507194B1/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating

Landscapes

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

Abstract

SPI 인터페이스(16)를 통해 NAND 메모리 장치(14)를 조작하는 단계를 포함하는 실시예들이 제공된다. 그러한 하나의 방법(30)은 NAND 메모리 장치(14)의 캐시(20) 내에 데이터를 로딩하는 단계를 포함하는, NAND 메모리 장치(14)를 캐시 로딩하는 단계(32), NAND 메모리 장치(14)의 캐시(20)로부터 NAND 메모리 장치(14)의 메모리 어레이(22)의 어드레스에 데이터를 기입하는 단계(34), 및 기입되는 데이터의 상태를 결정하기 위하여 폴링하는 단계(36)를 포함한다. 또한, 그러한 하나의 방법(106)은 NAND 메모리 장치(14)의 캐시(20)에 제1 데이터를 로딩하는 단계(108), NAND 메모리 장치(14)의 NAND 메모리 어레이(22)의 제1 어드레스(88)에 제1 데이터를 기입하는 단계(110), 캐시(20)의 상태를 폴링하는 단계(112, 114), 폴링이 캐시(20)가 준비되어 있음을 지시하는 경우, 캐시(20)의 일부에 제2 데이터를 로딩하는 단계(116), 캐시(20) 및 NAND 메모리 장치(14)의 상태를 폴링하는 단계(118, 120), 폴링이 캐시(20)가 준비되어 있고 장치(14)가 준비되어 있음을 지시하는 경우, NAND 메모리 장치(14)의 NAND 메모리 어레이(22)의 제2 어드레스(90)에 제2 데이터를 기입하는 단계(124)를 포함하는, SPI 인터페이스(16)를 통한 NAND 메모리 장치(14) 내의 데이터의 캐싱을 포함한다.

Description

직렬 인터페이스 NAND{SERIAL INTERFACE NAND}
본 발명의 실시예들은 일반적으로 메모리 장치 분야에 관한 것으로서, 구체적으로는 NAND 메모리 장치들에 대한 직렬 주변 장치 인터페이스(SPI)에 관한 것이다.
직렬 주변장치 인터페이스(SPI)는 2개의 장치 사이의 비교적 간단한 접속을 제공하는 통신 인터페이스이다. SPI는 마스터 장치가 하나 이상의 슬레이브 장치와 통신할 수 있게 하는 4 와이어 직렬 버스를 포함한다. 데이터가 SPI를 통해 동시에 전송되고 수신되어, 전이중 프로토콜이 되게 한다. 이 프로토콜은 프로세서들과 다른 장치들 사이에 낮은/중간 대역폭(1 메가보(megabaud))의 네트워크 접속을 제공한다.
SPI는 일반적으로 2개의 제어 라인과 2개의 데이터 라인을 포함하는 4개의 와이어를 갖는다. 제어 라인들은 직렬 클럭(SCLK) 라인과 칩 선택(CS) 라인을 포함한다. SCLK 라인은 장치들 사이의 비트들의 흐름을 조절하기 위한 디지털 클럭 신호로 구동된다. CS는 마스터 장치에 의해 제어되고 있는 슬레이브 장치를 인에이블 또는 디스에이블하는 신호로 구동된다. 데이터 라인들은 마스터 출력/슬레이브 입력(MOSI) 라인과 마스터 입력/슬레이브 출력(MISO) 라인을 포함한다. MOSI 라인은 마스터 장치의 출력에서 슬레이브 장치의 입력으로 데이터를 전송하는 데 사용된다. MISO 라인은 슬레이브 장치의 출력에서 마스터 장치의 입력으로 데이터를 전송하는 데 사용된다.
SPI의 제어 및 데이터 라인들의 간단한 구성은 SPI가 낮은 비용으로 비교적 높은 보드 밀도를 가질 수 있게 한다. 즉, 4개의 제어 라인은 컴포넌트들 사이에서 라우팅하기에 수월하며, 인쇄 회로 보드(PCB) 상의 많은 양의 표면 영역을 차지하지 않을 수 있다. 따라서, SPI 인터페이스는 컴퓨터와 같이 작고 간단한 레이아웃들을 원하는 응용들에 사용하기에 유리할 수 있다.
컴퓨터 시스템들 및 다른 전기 시스템들은 일반적으로 하나 이상의 메모리 장치를 포함한다. 예컨대, 컴퓨터들은 종종 NOR 플래시 메모리와 NAND 플래시 메모리를 사용한다. NOR 및 NAND 플래시 각각은 다른 하나보다 나은 소정의 이익들을 갖는다. 예를 들어, NOR 플래시 메모리는 통상적으로 NAND 플래시보다 느린 기입 및 소거 속도를 갖는다. 또한, NAND 플래시 메모리는 통상적으로 NOR 플래시 메모리보다 큰 내구력을 갖는다. 그러나, NOR 플래시 메모리는 통상적으로 메모리 장치들 내에 저장된 데이터에 대한 랜덤 액세스를 가능하게 하는 반면, NAND 플래시 메모리는 일반적으로 더 큰 그룹들에서 데이터에 액세스하고 기입하는 것을 필요로 한다. 예를 들어, NAND 플래시 메모리는 일반적으로 복수의 페이지를 각각 포함하는 복수의 블록을 포함하며, 각각의 페이지는 많은 수의 데이터 바이트를 포함한다. 동작에 있어서, 데이터는 한 번에 한 블록씩 소거되고, 한 번에 한 페이지씩 기입된다.
일반적으로, 프로세서와 같은 장치와 NAND 메모리 장치 사이의 통신은 병렬 인터페이스들을 이용하여 달성된다. 즉, 장치들과 NAND 플래시 메모리 장치 사이에 복수의 접속이 이루어져, 장치와 NAND 메모리 사이에서 데이터의 직렬 전송이 아니라 동시(병렬) 전송을 가능하게 한다. 불행하게도, 추가적인 수의 접속들은 인터페이스들의 복잡성을 증가시키고, 인쇄 회로 보드 상에서 사용되는 표면적의 양을 증가시키며, 라인들 사이의 잡음(크로스토크)을 증가시킬 수 있다.
본 발명의 실시예들은 전술한 문제들 중 하나 이상에 관한 것이다.
도 1은 본 발명의 하나 이상의 실시예에 따른 메모리 장치의 일 실시예를 나타내는 블록도.
도 2는 본 발명의 하나 이상의 실시예에 따른 NAND 메모리 어레이를 캐시 로딩하는 방법을 나타내는 블록도.
도 3은 본 발명의 하나 이상의 실시예에 따른 NAND 메모리 어레이를 캐시 로딩하는 방법을 더 나타내는 흐름도.
도 4는 본 발명의 하나 이상의 실시예에 따른 SPI 신호들을 나타내는 타이밍도.
도 5는 본 발명의 하나 이상의 실시예에 따른 NAND 메모리 장치의 캐시 내에 랜덤 데이터를 로딩하는 방법을 나타내는 블록도.
도 6은 본 발명의 하나 이상의 실시예에 따른 NAND 메모리 장치의 캐시 내에 랜덤 데이터를 로딩하는 방법을 더 나타내는 흐름도.
도 7은 본 발명의 하나 이상의 실시예에 따른 NAND의 캐시 내에 랜덤 데이터를 로딩하는 것과 관련된 SPI 신호들을 나타내는 타이밍도.
도 8은 본 발명의 하나 이상의 실시예에 따른 NAND 메모리 장치 내의 데이터를 이동시키는 방법을 나타내는 블록도.
도 9는 본 발명의 하나 이상의 실시예에 따른 NAND 메모리 장치 내의 데이터를 이동시키고 수정하는 방법을 나타내는 블록도.
도 10은 본 발명의 하나 이상의 실시예에 따른 NAND 메모리 장치 내의 데이터를 이동시키고 수정하는 방법을 더 나타내는 흐름도.
도 11은 본 발명의 하나 이상의 실시예에 따른 NAND 메모리 장치 내의 데이터를 동시에 캐시 로딩하고 실행하는 방법을 나타내는 흐름도.
도 1은 참조 번호 10에 의해 전반적으로 지시되는 NAND 메모리 시스템을 나타내는 블록도를 포함한다. NAND 메모리 시스템(10)은 컴퓨터, 페이저, 셀룰러 전화, 퍼스널 오거나이저, 제어 회로 등에서 사용되는 것들과 같은 임의의 다양한 타입일 수 있다. 시스템(10)은 마스터 장치(12)와 슬레이브 장치(14)를 포함한다. 일 실시예에서, 마스터 장치(12)는 마이크로컨트롤러를 포함할 수 있으며, 슬레이브 장치(14)는 NAND 메모리 장치를 포함할 수 있다.
마스터 장치(12)는 다양한 전송 라인을 통해 슬레이브 장치(14)와 통신한다. 도시된 실시예에서, 마스터 장치(12) 및 슬레이브 장치(14)는 직렬 주변 장치 인터페이스(SPI)를 통해 신호들을 전송하고 수신한다. 도시된 실시예에서, SPI는 SPI 버스(16)를 포함한다. SPI 버스(16)는 전이중 모드로 동작하는 동기 직렬 데이터 링크 표준이다. SPI 버스(16) 상의 장치들은 마스터 장치(12)가 하나 이상의 슬레이브 장치(14)에 대해 데이터 프레임들을 개시하는 것을 가능하게 하는 마스터/슬레이브 모드로 동작한다. 마스터 장치(12) 및 슬레이브 장치(14)는 일반적으로 이들이 데이터 값들을 교환하고 저장할 수 있게 하는 시프트 레지스터들을 포함한다. 동작에 있어서, 마스터 장치(12) 및 슬레이브 장치(14)는 데이터를 메모리에 저장하는 것과 같이 레지스터들에 저장된 데이터에 대해 다양한 것들을 행할 수 있다. SPI 버스(16)는 마스터 출력/슬레이브 입력(MOSI) 라인, 마스터 입력/슬레이브 출력(MISO) 라인, 직렬 클럭(SCLK) 라인 및 칩 선택(CS) 라인을 포함한다.
MOSI 라인은 마스터 장치(12)의 출력에서 슬레이브 장치(14)의 입력으로 데이터를 전송하는 데 사용되는 제1 통신 라인을 포함한다. MISO 라인은 슬레이브 장치(14)의 출력에서 마스터 장치(12)의 입력으로 데이터를 전송하는 데 사용되는 제2 통신 라인을 포함한다.
SCLK 라인은 장치들 사이의 비트들의 흐름을 조절하기 위해 디지털 클럭 신호로 구동되는 제1 제어 라인을 포함한다. 도시된 실시예에서, SCLK 라인은 마스터 장치(12)에 의해 구동된다. 실시예들은 또한 마스터 장치(12)는 물론, 시스템(10) 내의 다른 장치들을 조절하는 외부에서 제공되는 SCLK 신호를 포함할 수 있다. 출력 라인 상의 데이터는 SCLK 라인 상의 신호의 하강 에지에서 변경될 수 있으며, 입력에서의 데이터는 예를 들어 SCLK 라인 상의 신호의 상승 에지에서 래칭될 수 있다. 즉, 라인의 상태는 SCLK 라인 상의 클럭 신호의 하강 에지에서 변경되고 상승 에지에서 판독될 수 있다.
CS 신호는 슬레이브 장치(14)를 인에이블 또는 디스에이블하는 제2 제어 라인을 포함한다. 슬레이브 장치(14)의 인에이블링 및 디스에이블링은 슬레이브 장치가 언제 마스터 장치(12)와 통신할지(예를 들어, 마스터 장치에 의해 제어될지)를 결정할 수 있다. 즉, CS 라인은 슬레이브 장치(14)를 마스터 장치(12)와 통신하도록 인에이블하는 데 사용될 수 있다. CS 라인은 통상적으로 액티브 로우 신호이다. 따라서, 마스터 장치(12)는 슬레이브 장치(14)를 인에이블하도록 CS 라인을 로우로 구동할 수 있다.
일 실시예에서, 시스템(10)은 복수의 슬레이브 장치(14)를 포함할 수 있다. 예컨대, 시스템(10)은 복수의 슬레이브 장치(14)의 각각에 접속되는 단일 SCLK 라인, 단일 MOSI 라인 및 단일 MISO 라인을 포함할 수 있다. 마스터 장치(12)는 또한 복수의 슬레이브 장치(14) 중 하나에 각각 접속되는 복수의 CS 라인을 포함할 수 있다. 동작에 있어서, 마스터 장치(12)는 복수의 슬레이브 장치(14) 중 특정 슬레이브 장치를 활성화하기 위해 각각의 CS 라인들의 상태를 SCLK 라인, MOSI 라인 및 MISO 라인에 출력할 수 있으며, 개별적으로 토글링할 수 있다.
도시된 실시예에서, 슬레이브 장치(NAND 메모리 장치)(14)는 SPI 제어기(18), 캐시(20), NAND 메모리 어레이(22) 및 ECC(24) 상태 레지스터를 포함한다. SPI 제어기(18)는 SPI 버스(16)를 통해 데이터를 수신하고 송신한다. SPI 버스(16)를 통해 전송되는 데이터는 SPI 제어기(18)의 입력들에서 수신된다. SPI 제어기(18)는 또한 NAND 메모리 장치(14)의 내부에 있는 데이터 전송 입력/출력 라인들(DT I/O) 및 제어 라인들(26, 28, 30)을 통해 신호들을 송신하고 수신한다. DT I/O 라인들은 캐시(20)와의 통신을 가능하게 한다. 제어 라인(26)은 SPI 제어기(18)가 캐시(20)에 제어 신호들을 전송하고 캐시로부터 제어 신호들을 수신할 수 있게 한다. 제어 라인(28)은 SPI 제어기가 NAND 메모리 어레이(22)에 제어 신호들을 전송하고 NAND 메모리 어레이(22)로부터 제어 신호들을 수신할 수 있게 한다. 제어 라인(30)은 SPI 제어기가 에러 정정 코드(ECC) 상태 레지스터(24)에 제어 신호들을 전송하고 그로부터 제어 신호들을 수신하는 것을 가능하게 한다.
동작에 있어서, SPI 제어기(18)는 SPI 버스(16)를 통해 전송되는 데이터를 수신하며, NAND 메모리(14)의 다른 컴포넌트들 사이의 데이터(DT I/O) 및 제어 신호들의 흐름을 동기화한다. 예를 들어, SPI 제어기(18)는 MOSI 라인을 통해 직렬 포맷으로 데이터 및 명령들을 수신하고, 데이터 및 명령들에 대해 착신 직렬 신호를 분석한다. SPI 제어기(18)는 SPI 제어기(18)에 의해 전송되고 수신되는 신호들의 적절한 타이밍을 제공하는 시프트 레지스터들을 포함할 수 있다. 또한, SPI 제어기(18)는 명령들, 어드레스들, 데이터 등을 포함하는 착신 신호들을 해석하기 위해 보드 상에서 실행되는 알고리즘들을 포함할 수 있다. 알고리즘들은 또한 어드레스 스킴들, 에러 정정들, NAND 메모리 어레이(22) 내에서의 데이터의 이동들 등을 포함하는 SPI 제어기(18)의 적절한 출력들을 결정하기 위한 루틴들을 포함할 수 있다. 유사하게, SPI 제어기(18)는 SPI 제어기(18)에서 MISO 라인을 통해 마스터 장치(12)로의 데이터 전송을 동기화하기 위한 회로를 포함할 수 있다. 일 실시예에서, SPI 제어기(18)는 제어 신호들 및 데이터의 NAND 포맷으로의 변환 없이 수신 데이터를 캐시(20), NAND 메모리 어레이(22) 및/또는 ECC 상태 레지스터(24)로 전송한다.
동작에 있어서, 데이터(DT I/O)는 캐시(20)를 통해 바이트 단위로 NAND 메모리 어레이(22)로 또는 그로부터 전송된다. 캐시(20)는 SPI 제어기(18)에서 NAND 메모리 어레이(22)로 전송되는 데이터에 대한 데이터 버퍼로서 작용한다. 데이터는 캐시(20) 내에 기입되고, 이어서 NAND 메모리(22)에 기입될 수 있다. 마찬가지로, 데이터는 NAND 메모리 어레이(22)로부터 캐시(20) 내로 판독된 후, 캐시(20)에서 SPI 제어기(18) 및 MISO 라인을 통해 마스터 장치(12)로 전송될 수 있다. 캐시(20)는 다양한 크기를 가질 수 있다. 예컨대, 캐시(20)는 2048 바이트, 4096 바이트, 8192 바이트 또는 이들의 배수를 포함할 수 있다. 캐시(20)는 또한 256 바이트 또는 512 바이트 등의 더 작은 크기를 가질 수 있다. 소정 실시예에서는 캐시(20)와 NAND 메모리 어레이(22) 사이의 데이터 전송을 위한 경로를 제공하기 위해 캐시(20) 또는 NAND 메모리 어레이(22) 내에 데이터 레지스터가 존재할 수 있다. 즉, 복수의 데이터 비트가 NAND 메모리 어레이(22)의 어드레스에 기입되기 전에 데이터 레지스터로 시프트될 수 있다.
NAND 메모리 어레이(22)는 블록들로 분할되는 메모리 셀 어레이를 포함한다. 블록은 고정 수의 페이지를 포함한다. NAND 메모리 어레이(22)는 페이지 기반 동작들(예를 들어, 한 번에 한 페이지)에서 프로그래밍되고 판독되며, 블록 기반 동작들(예를 들어, 한 번에 한 블록)에서 소거된다. NAND 메모리 어레이(22)는 페이지로서 순차 액세스되므로, 바이트들의 랜덤 데이터 액세스는 가능하지 않을 수 있다. 즉, 판독 및 기입 기능이 한 번에 다수의 바이트씩(예를 들어, 바이트들의 페이지) 수행되므로 NAND 메모리 어레이(22)로부터 단일 바이트가 판독될 수 없다.
NAND 메모리 어레이(22)는 임의 수 및 크기의 블록들 및 페이지들을 포함할 수 있다. NAND 메모리 장치(14)가 4 기가바이트(Gb)의 용량을 갖는 일 실시예에서, NAND 메모리 어레이(22)는 2048 블록을 포함할 수 있으며, 각각의 블록은 각각 2112 바이트의 64 페이지를 포함한다. 다른 실시예들은 8192 블록 및 8 Gb 용량, 16384 블록 및 16 Gb 용량 등을 갖는 NAND 메모리 장치(14)를 포함할 수 있다.
NAND 메모리 셀들은 제한된 수의 기입/소거 사이클(예를 들어, 100,000 프로그램/소거 사이클)을 갖는다. NAND 메모리 장치(14)의 수명을 연장하기 위하여, "마모 레벨링(wear leveling)"이 메모리의 다양한 물리적 위치들에 걸쳐 데이터를 확산시키는 데 적용될 수 있다. 마모 레벨링은 일반적으로 다양한 위치들에 데이터를 기입하여 셀들의 균일한 사용을 보장함으로써 NAND 메모리 어레이(22)의 소정 부분들이 너무 빨리 고장나는 것을 방지하는 것을 포함한다. 마모 레벨링은 NAND 메모리 어레이(22) 내의 다양한 위치들 중 하나에 데이터를 최초 기입하는 것을 포함하거나, NAND 메모리 어레이(22) 내의 하나의 물리적 위치(예를 들어, 어드레스)로부터 데이터를 이동시키고, 동일 데이터를 NAND 메모리 어레이(22) 내의 다른 물리적 위치에 기입하는 것을 포함할 수 있다. SPI 제어기(18)는 데이터가 어디에 기입될지를 결정하는 데 사용되는 마모 레벨링 루틴들을 관리할 수 있다. 예컨대, SPI 제어기(18) 상의 알고리즘들 및/또는 회로는 메모리 사용을 모니터링하고, NAND 메모리 어레이(22) 내에 데이터를 기입할 적절한 어드레스를 결정할 수 있다.
ECC 상태 레지스터(24)는 정상 동작 동안에 발생할 수 있는 비트 에러들은 물론, 시간 경과에 따라 나타나는 전하 손실/이득으로 인해 발생하는 비트 에러들을 검출 및/또는 정정하는 데 사용된다. 예를 들어, ECC 상태 레지스터(24)는 NAND 메모리 어레이(22)로부터 데이터를 판독할 때 에러들을 검출하고 정정하는 데 사용되는 회로를 포함할 수 있다. ECC 상태 레지스터(24)는 SPI 제어기(18) 상에서 사용되는 알고리즘들을 보완할 수 있다. ECC 상태 레지스터(24)는 또한 서브 레지스터들의 그룹을 포함할 수 있다. 이러한 서브 레지스터들은 메모리 장치 데이터에 대해 옵션인 ECC를 인에이블하는 ECC 인에이블/디스에이블 레지스터, 발견되는 에러들의 전체 수를 저장하는 ECC 타입 레지스터, 임의의 정정 불가능한 에러들의 위치를 저장하는 ECC 위치 레지스터, NAND 메모리 어레이(22) 상에서의 임의의 에러 정정 프로세스의 결과에 관한 정보를 저장하는 ECC NAND 메모리 결과 레지스터, 또는 캐시(20) 상에서의 임의의 에러 정정 프로세스의 결과에 관한 정보를 저장하는 ECC 캐시 메모리 결과 레지스터를 포함할 수 있다. ECC 상태 레지스터(24)는 이전 ECC 서브 레지스터들의 모두 또는 이전 서브 레지스터들의 임의 조합을 포함할 수 있다. ECC 상태 레지스터(24)가 SPI 제어기(18)의 외부에 있는 것으로 도시되지만, ECC 상태 레지스터(24)는 SPI 제어기(18)와 일체일 수 있다.
이제, 도 2를 참조하면, 데이터를 SPI 인터페이스를 통해 NAND 메모리 어레이(22)에 캐시 로딩하는 프로세스(26)의 블록도가 도시되어 있다. 프로세스(26)는 일반적으로 SPI 입력(28)을 캐시(20) 및 NAND 메모리 어레이(22)에 로딩하는 단계를 포함한다. SPI 입력(28)은 SPI 버스(16)를 통해 전송되고 SPI 제어기(18)를 통과하는 직렬 데이터를 포함한다. 캐시(20)가 채워지고 그리고/또는 원하는 양의 데이터가 캐시(20) 내에 로딩되면, 데이터는 NAND 메모리 어레이(22)에 기입(실행)된다.
도 3은 데이터를 SPI 인터페이스를 통해 NAND 메모리 어레이(22)에 캐시 로딩하는 방법(30)을 더 설명하는 흐름도이다. 일반적으로, 방법(30)은 캐시 내에 데이터를 로딩하는 단계(32), 데이터를 NAND 메모리 어레이(22) 내로 실행하는 단계(34) 및 실행의 상태를 판독하는 단계(36)를 포함한다.
블록 32에서, 방법(30)은 데이터를 캐시에 로딩하는 단계를 포함한다. 캐시 내로의 데이터 로딩(블록 32)은 SPI 버스(16)를 통해 직렬 입력 신호를 제공하는 단계를 포함할 수 있으며, 직렬 신호는 명령, 어드레스, 데이터 등을 나타낸다. 예컨대, 데이터 로딩 시퀀스는 프로그램 로드 명령, 이어서 열 어드레스 및 일련의 데이터를 제공하는 단계를 포함할 수 있다. 일 실시예에서, 프로그램 로드 시퀀스는 1 바이트 명령, 이어서 캐시를 로딩하기 위한 시작 열 어드레스(2 바이트), 이어서 캐시에 로딩할 데이터를 포함한다.
프로그램 로드 시퀀스의 일 실시예의 타이밍도가 도 4에 도시되어 있다. 도시된 실시예에서, CS 라인은 통신(38)의 기간 동안 로우로 구동된다. 즉, CS 라인은 마스터 장치(12)가 슬레이브 장치(14)로 직렬 데이터를 전송하거나 그로부터 수신하고 있는 동안에 로우로 구동된다. 처음 8개의 클럭 사이클 동안, 1 바이트 명령(40)이 전송된다. 일 실시예에서, SPI 제어기(18)는 명령(40)에 기초하여 그리고 착신 데이터를 예상하여 캐시(20)의 모든 비트를 1 또는 0으로 초기화하기 위한 시퀀스를 개시할 수 있다. 도시된 실시예에서, 1 바이트 명령(40) 뒤에는 다음 4개의 클럭 사이클 동안에 전송되는 4개의 더미 비트(42)가 바로 이어진다. 더미 비트들(42)은 명령 및/또는 12비트 열 어드레스(44)를 바이트 포맷으로 정렬하는 데 사용되거나 사용되지 않을 수 있다. 즉, 직렬 로드 명령 및/또는 열 어드레스(44)가 8비트의 증분들에서 전송되는 것이 요구되는 경우, 더미 비트들은 착신 직렬 데이터를 8의 증분으로 정렬하는 데 사용될 수 있다. 예를 들어, 4개의 더미 비트(42)는 12비트 열 어드레스와 결합될 때 8의 배수인 16비트를 제공하는 데 사용될 수 있다. 더미 비트들(42)은 직렬 데이터 내의 다양한 위치에 포함되거나, 전혀 포함되지 않을 수 있다. 더미 비트들(42)에 이어서, 다음 12개의 클럭 사이클 동안에 12비트 열 어드레스(44)가 전송된다. 전술한 바와 같이, 열 어드레스(44)는 캐시(20) 내의 어느 곳에 후속 데이터를 저장할지를 지시할 수 있다. 열 어드레스(44)는 캐시(20)의 크기에 기초하여 변할 수 있다. 최상위 비트(MSB) 포맷의 제1 데이터 바이트(46)가 다음 8개의 클럭 사이클 동안에 전송된다. 도시된 실시예에서, 직렬 신호는 2048 바이트를 포함한다. 데이터 바이트들(46)의 총 수는 페이지 크기 또는 캐시(20)의 크기에 기초하여 변할 수 있다. 예를 들어, 일 실시예에서, 페이지 크기는 ECC를 위한 추가 64 바이트(여분 영역)를 포함할 수 있으며, 직렬 신호는 3012 바이트(2048 바이트 + 64 바이트)를 포함한다. 최종 데이터 바이트에 이어서, CS 라인은 슬레이브 장치(14)의 제어를 그만두기 위하여 하이로 구동된다. CS 라인이 하이인 기간 동안, SPI 제어기는 다양한 알고리즘을 실행하고, 어드레스를 주어진 위치에 맵핑하고, 에러 정정 코드를 실행하는 것 등을 행할 수 있다.
이제, 도 3을 다시 참조하면, 블록 34에서, 방법(30)은 데이터를 실행하는 단계를 포함한다. 데이터의 실행(블록 34)은 SPI 버스(16)를 통해 직렬 입력 신호를 제공하는 단계를 포함할 수 있으며, 직렬 신호는 명령, 어드레스, 데이터 등을 나타낸다. 예를 들어, 프로그램 실행 시퀀스는 행 어드레스가 이어지는 프로그램 실행 명령을 제공하는 단계를 포함할 수 있다. 일 실시예에서, 프로그램 실행 시퀀스는 1 바이트 명령, 이어서 데이터를 로딩할 NAND 메모리 어레이(22)의 블록 및 페이지 어드레스(3 바이트)를 포함한다.
프로그램 실행 시퀀스의 일 실시예의 타이밍도가 도 4에 또한 도시되어 있다. 타이밍도에 도시된 바와 같이, 프로그램 실행 시퀀스는 전술한 프로그램 로드 시퀀스와 직렬로 실행될 수 있다. 도시된 실시예에서, CS 라인은 통신(48)의 기간 동안에 로우로 구동된다. 즉, CS 라인은 마스터 장치(12)가 슬레이브 장치(14)로 직렬 데이터를 전송하거나 그로부터 수신하고 있는 동안에 로우로 구동된다. 처음 8개의 클럭 사이클 동안에, 1 바이트 명령(50)이 전송된다. 도시된 실시예에서, 1 바이트 명령(50) 뒤에는 다음 7개의 클럭 사이클 동안에 전송되는 7개의 더미 비트(52)가 바로 이어진다. 7개의 더미 비트(52)는 17비트 행 어드레스(54)와 결합될 때 8의 배수인 24 비트를 제공하는 데 사용된다. 더미 비트들(52)에 이어서, 다음 17개의 클럭 사이클 동안에 17비트 행 어드레스(54)가 전송된다. 전술한 바와 같이, 행 어드레스(54)는 데이터가 NAND 메모리 어레이(22) 내에 저장될 블록 및 페이지 어드레스를 나타낼 수 있다. 행 어드레스(54) 내의 최종 데이터 비트에 이어서, CS 라인은 슬레이브 장치(14)의 제어를 그만두기 위하여 하이로 구동된다. 이 기간 동안, SPI 제어기(18)는 다양한 알고리즘을 실행하고, 어드레스들을 주어진 위치에 맵핑하고, 코드를 실행하는 것 등을 행할 수 있다. 또한, 캐시(20)는 에러 정정 코드를 사용하고 그리고/또는 데이터를 NAND 메모리 어레이(22) 내로 이동시킬 수 있다.
다시 도 3을 참조하면, 블록 36에서, 방법(30)은 상태를 판독하는 단계를 포함한다. 상태의 판독은 마스터(12)가 실행 시퀀스(블록 34)의 결과를 지시하는 직렬 신호를 수신하는 단계를 포함할 수 있다. 즉, 마스터 장치(12)는 실행 명령(50)과 연관된 알고리즘이 완료 및/또는 성공되었는지의 여부를 조회하기 위한 명령을 SPI 버스(16)를 통해 발행할 수 있다. 예를 들어, 상태 판독 시퀀스는 MISO 라인 상에 제공되는 상태 레지스터 데이터 출력이 이어지는 상태 레지스터 판독 명령을 MOSI 라인 상에 제공하는 단계를 포함할 수 있다. 일 실시예에서, 상태 판독 시퀀스는 1 바이트 명령, 이어서 상태 레지스터 데이터 출력(1 바이트)를 포함한다.
상태 판독 시퀀스의 일 실시예의 타이밍도가 도 4에 또한 도시되어 있다. 타이밍도에 도시된 바와 같이, 상태 판독 시퀀스는 전술한 프로그램 로드 시퀀스 및 프로그램 실행 시퀀스와 직렬로 실행될 수 있다. 도시된 실시예에서, CS 라인은 통신(56)의 기간 동안에 로우로 구동된다. 즉, CS 라인은 마스터 장치(12)가 슬레이브 장치(14)로 직렬 데이터를 전송하고 그로부터 수신하고 있는 동안에 로우로 구동된다. 처음 8개의 클럭 사이클 동안, 1 바이트 명령(58)이 전송된다. 도시된 실시예에서, 1 바이트 명령(58) 뒤에는 다음 8개의 클럭 사이클 동안에 MISO 라인 상에서 전송되는 상태 레지스터 데이터 출력(60)이 즉시 이어진다. 전술한 바와 같이, 상태 레지스터 데이터 출력(60)은 실행 명령(50)과 연관된 알고리즘이 완료 및/또는 성공되었는지의 여부를 지시할 수 있다. 따라서, 마스터 장치(12)는 상태 레지스터 데이터 출력(60)을 수신하고 해석하여, 동작이 성공 및/또는 완료되었는지를 결정하고, 마스터 장치(12)에 의해 취해지는 후속 명령들 및 액션들을 그러한 결정에 기초할 수 있다. ECC는 CS 라인이 하이로 구동되는(디스에이블되는) 동안 임의의 시간에 실행될 수 있다는 점에 유의해야 한다.
이제, 도 5를 참조하면, 랜덤 데이터 바이트가 SPI 인터페이스를 통해 캐시(20)의 선택된 열 어드레스(64) 내에 로딩되는 것을 가능하게 하는 프로세스(62)의 블록도가 도시되어 있다. 프로세서(62)는 일반적으로 캐시(20) 내의 모든 비트를 초기화하지 않고 캐시(20)의 특정 어드레스(64)에 SPI 입력(28)을 로딩하는 단계를 포함한다. 즉, 프로세서(62)는 캐시(20) 내에 저장된 다른 바이트들의 값을 변경하지 않고 어드레스(64)에서의 캐시(20)의 단일 바이트 또는 그 이상의 바이트의 수정을 가능하게 한다. SPI 입력(28)은 SPI 버스(16)를 통해 전송되고 SPI 제어기(18)를 통과하는 직렬 데이터를 포함할 수 있다. 전술한 실시예들과 마찬가지로, 특정 데이터가 캐시(20) 내에 로딩되면, 데이터는 NAND 메모리 어레이(22)에 기입(실행)된다.
도 6은 캐시(20) 내에 랜덤 데이터를 로딩하고, 캐시로부터 SPI 인터페이스를 통해 NAND 메모리 어레이(22)로 데이터를 실행하는 방법(66)을 더 설명하는 흐름도이다. 일반적으로, 방법(66)은 캐시 내에 데이터를 로딩하는 단계(블록 68), 랜덤 데이터 입력을 캐시 내에 로딩하는 단계(블록 70), 데이터를 NAND 메모리 어레이(22) 내로 실행하는 단계(블록 72) 및 실행의 상태를 판독하는 단계(블록 74)를 포함한다.
블록 68에서, 방법(66)은 데이터를 캐시 내에 로딩하는 단계를 포함한다. 전술한 실시예들과 마찬가지로, 캐시 내의 데이터 로딩은 SPI 버스(16)를 통해 직렬 입력 신호를 제공하는 단계를 포함할 수 있는데, 직렬 데이터는 명령, 어드레스, 데이터 등을 나타낸다. 예컨대, 데이터의 로딩은 열 어드레스 및 일련의 데이터가 이어지는 프로그램 로드 명령을 제공하는 단계를 포함할 수 있다. 일 실시예에서, 프로그램 로드 시퀀스는 1 바이트 명령, 이어서 캐시를 로딩하기 위한 시작 열 어드레스(2 바이트), 이어서 캐시 내에 로딩할 데이터를 포함할 수 있다. 프로그램 로드 시퀀스의 일 실시예의 타이밍도는 도 4와 관련하여 앞에서 설명되었다.
블록 70에서, 방법(66)은 랜덤 데이터를 캐시 내에 로딩하는 단계를 포함한다. 캐시(20) 내의 랜덤 데이터의 로딩은 캐시(20)의 특정 어드레스에 데이터를 로딩하는 단계를 포함할 수 있다. 데이터는 1 바이트 이상일 수 있다. 예를 들어, 바이트들의 수는 캐시(20)의 크기에 의해서만 제한될 수 있다(예를 들어, 2048 바이트, 4096 바이트, 8192 바이트 또는 그 이상). 프로그램 로드 명령과 달리, 캐시(20) 내의 랜덤 데이터의 로딩은 캐시(20) 내의 비트들 각각을 초기화하지 않는 대신에, 타겟 어드레스(64)에 데이터를 단지 겹쳐서 기입한다. 일 실시예에서, 랜덤 데이터 입력을 갖는 프로그램 로드 시퀀스는 랜덤 데이터 입력을 갖는 1 바이트 프로그램 로드 명령, 이어서 캐시를 로딩하기 위한 시작 열 어드레스(2 바이트), 이어서 캐시(20) 내에 로딩할 데이터를 포함한다.
랜덤 데이터 입력을 갖는 프로그램 로드 시퀀스의 일 실시예의 타이밍도가 도 7에 도시되어 있다. 도 4와 관련하여 설명된 프로그램 로드 시퀀스의 실시예와 마찬가지로, 도시된 실시예에서, CS 라인은 통신(76)의 기간 동안에 로우로 구동된다. 처음 8개의 클럭 사이클 동안, 1 바이트 명령(78)(예를 들어, 랜덤 데이터 입력을 갖는 프로그램 로드 명령)이 전송된다. 일 실시예에서, SPI 제어기(18)는 명령에 기초하여 그리고 착신 데이터를 예상하여 캐시(20)의 모든 비트를 1 또는 0으로 초기화하기 위한 시퀀스를 개시하지 않는다. 도시된 실시예에서, 1 바이트 명령(78) 뒤에는 다음 4개의 클럭 사이클 동안에 전송되는 4개의 더미 비트(80)가 바로 이어진다. 더미 비트들(80)은 명령 및/또는 열 어드레스(82)를 바이트 포맷으로 정렬하는 데 사용되거나 사용되지 않을 수 있다. 더미 비트들(80)은 직렬 데이터 내의 다양한 위치에 포함되거나 전혀 포함되지 않을 수 있다. 더미 비트들(80)에 이어서, 12비트 열 어드레스(84)가 다음 12개의 클럭 사이클 동안에 전송된다. 전술한 바와 같이, 열 어드레스(84)는 캐시(20) 내의 어느 곳에 후속 데이터를 저장할지를 지시할 수 있다. 열 어드레스(84)는 캐시(20)의 크기 및 데이터를 캐시(20)에 기입할 원하는 위치에 기초하여 변할 수 있다. 다음 8개의 클럭 사이클 동안에 제1 데이터 바이트(84)가 전송된다. 도시된 실시예에서, 직렬 신호는 2048 바이트를 포함한다. 데이터 바이트들(84)의 총 수는 캐시(20)의 크기에 따라 다를 수 있다. 최종 데이터 바이트에 이어서, CS 라인은 슬레이브 장치(14)의 제어를 그만두기 위해 하이로 구동된다. CS 라인이 하이인 기간 동안, SPI 제어기(18)는 다양한 알고리즘을 실행하고, 어드레스들을 주어진 위치에 맵핑하고, 에러 정정 코드를 실행하는 것 등을 행할 수 있다.
이제, 도 6을 다시 참조하면, 블록 72에서, 방법(66)은 데이터를 실행하는 단계를 포함한다. 데이터의 실행은 SPI 버스(16)를 통해 직렬 입력 신호를 제공하는 단계를 포함할 수 있으며, 직렬 신호는 명령, 어드레스, 데이터 등을 지시한다. 예를 들어, 데이터 실행 시퀀스는 행 어드레스가 이어지는 실행 명령을 제공하는 단계를 포함할 수 있다. 일 실시예에서, 프로그램 실행 시퀀스는 1 바이트 명령, 이어서 데이터를 로딩할 NAND 메모리 어레이(22)의 블록 및 페이지 어드레스(3 바이트)를 포함한다. 프로그램 실행 시퀀스의 일 실시예의 타이밍도는 도 4와 관련하여 위에서 설명되었다.
다시 도 6을 참조하면, 블록 74에서, 방법(66)은 상태를 판독하는 단계를 포함한다. 상태의 판독은 마스터(12)가 실행 시퀀스(블록 72)의 결과를 나타내는 직렬 신호를 수신하는 단계를 포함할 수 있다. 즉, 마스터 장치(12)는 실행 명령과 관련된 알고리즘이 완료 및/또는 성공하였는지의 여부를 조회하기 위한 명령을 SPI 버스(16)를 통해 발행할 수 있다. 예를 들어, 상태 판독 시퀀스는 MISO 라인 상에서 제공되는 상태 레지스터 데이터 출력이 이어지는 명령을 MOSI 라인 상에 제공하는 단계를 포함할 수 있다. 일 실시예에서, 상태 판독 명령은 1 바이트 명령, 이어서 상태 레지스터 데이터 출력(1 바이트)을 포함한다. 프로그램 판독 시퀀스의 일 실시예의 타이밍도는 도 4와 관련하여 앞에서 설명되었다.
이제, 도 8을 참조하면, 이 블록도는 SPI 인터페이스를 통해 NAND 메모리 어레이(22) 내의 데이터를 이동시키는 단계(예를 들어, 내부 데이터 이동)를 포함하는 프로세스(86)를 나타낸다. 즉, NAND 메모리 어레이(22) 내에 저장된 데이터는 SPI 시퀀스/명령에 따라 제2 위치로 이동될 수 있다. 프로세스는 일반적으로 데이터를 NAND 메모리 어레이(22) 내의 제1 어드레스(88)로부터 캐시(20)로 로딩하는 단계를 포함한다. 이어서, 캐시(20) 내에 현재 로딩된 데이터는 NAND 메모리 어레이(22) 내의 제2 어드레스(90)로 실행된다. 그러한 기술은 데이터를 NAND 메모리 어레이(22) 내의 하나의 물리적 위치에서 다른 물리적 위치로 이동시키는 단계를 포함하는 마모 레벨링 루틴에서 특히 유용할 수 있다. 또한, 이러한 기술은 불량 셀들을 갖는 NAND 메모리 어레이(22) 내의 제1 위치로부터의 데이터를 양호한 셀들을 갖는 NAND 메모리 어레이(22) 내의 제2 위치로 이동시키는 데 유용할 수 있다.
이제, 도 9를 참조하면, 이 블록도는 SPI 인터페이스를 통해 NAND 메모리 어레이(22) 내의 데이터를 이동시키고 수정하는 단계(예를 들어, 내부 데이터 수정 이동)를 포함하는 프로세스(92)를 나타낸다. 즉, NAND 메모리 어레이(22)에 저장된 데이터는 SPI 명령/시퀀스에 따라 제2 위치로 이동될 수 있으며, 데이터는 이동 동안에 수정될 수 있다. 일반적으로, 프로세스는 데이터를 NAND 메모리 어레이(22) 내의 제1 어드레스(88)로부터 캐시(20) 내로 로딩하는 단계를 포함한다. 이어서, 캐시(20) 내에 현재 로딩된 데이터(예를 들어, 오리지널 데이터)가 수정된다. 예를 들어, 캐시(20)의 단일 바이트 또는 그 이상이 새로운 데이터(94)로 교체될 수 있다. 새로운 데이터(94)는 예를 들어 직렬 데이터로서 SPI 입력(28)으로부터 수신되는 데이터를 포함할 수 있다. 이어서, 새로운 데이터(94)를 포함하는 캐시 데이터(예를 들어, 수정된 캐시 데이터)는 NAND 메모리 어레이(22) 내의 제2 어드레스(90)로 실행될 수 있다. 도 8과 관련하여 설명된 기술과 유사하게, 그러한 기술은 마모 레벨링 루틴에서 그리고 NAND 메모리 어레이(22) 내의 제1 위치로부터 NAND 메모리 어레이(22) 내의 제2 위치로 데이터를 이동시키고 수정하는 데에 특히 유용할 수 있다. 에러 정정 코드는 CS 라인이 하이로 구동되는(디스에이블되는) 동안 임의의 시간에 실행될 수 있다는 점에 유의해야 한다. 따라서, 데이터가 캐시(20) 내에 로딩되고, 수정되고, 이어서 NAND 메모리 어레이(22) 내로 실행되는 경우, 데이터가 캐시(20) 내에 로딩된 후 제1 시간에 ECC가 실행되고, 데이터가 수정되고, 데이터를 NAND 메모리 어레이(22) 내로 실행하기 전에 제2 시간에 ECC가 실행될 수 있다.
도 10은 SPI 인터페이스를 통해 지시되는 내부 데이터 이동 및/또는 내부 데이터 수정 이동의 방법(96)을 더 설명하는 흐름도이다. 일반적으로, 방법(96)은 NAND 메모리 어레이(22) 내의 제1 위치에서 캐시 내로 데이터를 판독하는 단계(98), 랜덤 데이터 입력을 캐시 내로 로딩하는 단계(100)(방법이 내부 데이터 수정 이동을 포함하는 경우), NAND 메모리 어레이(22)의 제2 위치로 데이터를 실행하는 단계(102), 및 실행의 상태를 판독하는 단계(104)를 포함한다.
블록 98에서, 방법(96)은 제1 위치로부터 캐시 내로 데이터를 판독하는 단계를 포함한다. 전술한 실시예들과 유사하게, 캐시(20) 내로의 데이터의 판독은 SPI 버스(16)를 통해 직렬 입력 신호를 제공하는 단계를 포함할 수 있는데, 직렬 신호는 명령, 어드레스, 데이터 등을 나타낸다. 예를 들어, 캐시 내로의 데이터 판독은 NAND 메모리 어레이(22)로부터 검색될 데이터에 대한 블록 및 페이지 어드레스가 이어지는 페이지 판독 명령을 포함하는 페이지 판독 시퀀스를 제공하는 단계를 포함할 수 있다. 블록 및 페이지 어드레스는 예를 들어 제1 어드레스(88)에 대응할 수 있다. 지정된 블록 및 어드레스의 데이터는 캐시(20)로 전송된다.
방법(96)은 랜덤 데이터를 캐시 내로 로딩하는 단계(100)를 포함하거나 포함하지 않을 수 있다. 예를 들어, 방법의 일 실시예가 데이터가 캐시(20) 내에 위치하는 동안에 데이터를 수정하는 단계를 포함하는 경우, 랜덤 데이터를 캐시(20) 내에 로딩하는 단계(100)가 수행될 수 있다. 그렇지 않은 경우, 방법(96)의 일 실시예는 랜덤 데이터를 캐시 내에 로딩하는 단계(100)를 포함하지 않을 수 있다. 랜덤 데이터를 캐시(20) 내에 로딩하는 단계(100)는 데이터를 캐시(20)의 특정 어드레스에 로딩하는 단계를 포함한다. 랜덤 데이터는 1 바이트 이상을 포함할 수 있다. 예를 들어, 바이트들의 수는 캐시(20)의 크기에 의해서만 제한될 수 있다(예를 들어, 2048 바이트, 4096 바이트, 8192 바이트 또는 그 이상). 프로그램 로드 명령과 달리, 프로그램 로드 랜덤 데이터 입력 명령은 캐시(20) 내의 비트들 각각을 초기화하지 않는 대신에, 단지 타겟 어드레스(64)에 데이터를 겹쳐서 기입한다. 일 실시예에서, 랜덤 데이터 입력을 갖는 프로그램 로드 시퀀스는 1 바이트 명령, 이어서 캐시를 로딩하기 위한 시작 열 어드레스(2 바이트), 이어서 캐시(20)에 로딩할 데이터를 포함한다. 프로그램 로드 랜덤 데이터 입력 시퀀스의 일 실시예의 타이밍도는 도 7과 관련하여 앞에서 설명되었다.
도 10의 블록 102에서, 방법(96)은 데이터를 실행하는 단계를 또한 포함한다. 전술한 실시예와 유사하게, 데이터의 실행은 SPI 버스(16)를 통해 직렬 입력 신호를 제공하는 단계를 포함할 수 있으며, 직렬 신호는 명령, 어드레스, 데이터 등을 나타낸다. 예를 들어, 데이터 실행 시퀀스는 행 어드레스가 이어지는 프로그램 실행 명령을 제공하는 단계를 포함할 수 있다. 일 실시예에서, 프로그램 실행 시퀀스는 1 바이트 명령, 이어서 데이터를 로딩할 NAND 메모리 어레이(22)의 블록 및 페이지 어드레스(3 바이트)를 포함한다. 프로그램 실행 명령의 일 실시예의 타이밍도는 도 4와 관련하여 앞에서 설명되었다.
블록 104에서, 방법(96)은 상태를 판독하는 단계를 포함한다. 상태의 판독은 마스터(12)가 실행 명령(블록 102)의 결과를 나타내는 직렬 신호를 수신하는 단계를 포함할 수 있다. 즉, 마스터 장치(12)는 실행 명령과 관련된 알고리즘이 완료 및/또는 성공하였는지의 여부를 조회하기 위한 명령을 SPI 버스(16)를 통해 발행할 수 있다. 예를 들어, 상태 판독 시퀀스는 MISO 라인 상에서 제공되는 상태 레지스터 데이터 출력이 이어지는 상태 판독 명령을 MOSI 라인 상에서 제공하는 단계를 포함할 수 있다. 일 실시예에서, 상태 판독 시퀀스는 1 바이트 상태 판독 명령, 이어서 상태 레지스터 데이터 출력(1 바이트)을 포함한다. 프로그램 판독 명령의 일 실시예의 타이밍도는 도 4와 관련하여 위에서 설명되었다.
따라서, 방법(96)은 NAND 메모리 어레이(22)의 제1 어드레스(88)로부터 캐시(20) 내로 데이터를 판독하고, NAND 메모리 어레이(22) 내의 제2 어드레스(90)로 데이터를 이동시키는 데 사용될 수 있다(도 8 참조). 대안 실시예에서, 방법(96)은 NAND 메모리 어레이(22)의 제1 어드레스(88)로부터 캐시(20) 내로 데이터를 판독하고, 캐시(20)에 저장된 데이터의 적어도 일부를 수정하고, NAND 메모리 어레이(22) 내의 제2 어드레스(90)로 데이터를 이동시키는 데 사용될 수 있다(도 9 참조).
이제, 도 11을 참조하면, 캐시(20)를 동시에 로딩 및 언로딩하기 위한 방법(106)(예를 들어, 캐시 프로그래밍 특징)의 흐름도가 도시되어 있다. 방법(106)은 캐시(20) 또는 데이터 레지스터로부터의 페이지 프로그램(예를 들어, 실행)이 발생하는 동안에 새로운 데이터가 캐시(20) 내에 로딩될 수 있도록 캐시(20)가 자유로워지는 것을 가능하게 한다. 이것은 캐시 프로그래밍 특징을 사용하지 않는 페이지 프로그래밍과 비교할 때 더 빠른 데이터 처리량을 제공한다. 예를 들어, 2 KB 페이지에 대해, SPI NAND에 대한 통상적인 페이지 프로그램 시간은 약 200-300 마이크로초(μs)일 수 있으며, 캐시 로드 시간은 25 ns 주기 SCLK 신호를 이용하는 경우 약 410 μs이다. 캐시 로딩의 제1 방법에서, 캐시 로딩 및 페이지 프로그램은 직렬로 수행될 수 있다. 즉, 캐시 로딩이 완료되면, 페이지가 프로그래밍되며, 캐시 로딩의 다음 사이클은 페이지가 프로그래밍될 때까지 시작되지 않는다. 이것은 캐시를 로딩하고 페이지를 프로그래밍하는 데에 610-710 μs의 대략적인 총 시간을 제공할 수 있다. 캐시 프로그램 특징 및 방법(106)을 사용하는 경우, 데이터 처리량은 통상적으로 캐시 로드 시간에 의해서만 제한된다. 즉, 페이지 프로그래밍 및 캐시 로딩은 병렬로 수행될 수 있으며, 따라서 캐시가 로딩되는 410 μs 동안에 페이지가 프로그래밍된다. 캐시(20)는 페이지 프로그램이 완료되고 있는 동안에 제2 세트의 데이터로 로딩될 수 있으며, 따라서 캐시를 로딩하고 페이지를 프로그래밍하기 위한 총 시간은 약 410 μs이다.
방법(106)을 이용하기 위해 사용되는 시스템(10)에서는, 2개의 추가 상태 비트가 사용될 수 있다. 제1 상태 비트는 캐시가 분주하거나 준비가 되어 있다는 지시를 제공하는 데 사용될 수 있다. 제2 상태 비트는 장치(예를 들어, 데이터 레지스터 및/또는 NAND 메모리 어레이(22))가 분주한지 또는 준비가 되어 있는지의 지시를 제공하는 데 사용될 수 있다. 예를 들어, 상태 판독 명령에 응답하여 생성되는 사태 레지스터 바이트는 캐시 및/또는 데이터 레지스터의 상태를 지시하는 제1 비트 및/또는 제2 비트를 포함할 수 있다.
동작에 있어서, 시스템(10)은 데이터를 캐시(20)에 로딩하고, NAND 메모리 어레이(22)에 대해 데이터의 페이지 프로그램(예를 들어, 실행)을 개시하고, 캐시(20)가 준비될 때까지 캐시(20) 및 데이터 레지스터/NAND 메모리 어레이(22)의 상태를 폴링하고, 새로운 데이터를 캐시에 로딩하고, 캐시(20) 및 데이터 레지스터/NAND 메모리 어레이(22)가 준비될 때까지 캐시(20) 및 데이터 레지스터/NAND 메모리 어레이(22)의 상태를 폴링하고, 이어서 새로운 데이터를 NAND 메모리 어레이(22) 내로 실행할 수 있다.
도 11에서, 제1 단계는 블록 108에 도시된 바와 같이 제1 데이터를 캐시(20) 내에 로딩하는 단계를 포함한다. 이전 설명들과 유사하게, 캐시로의 데이터 로딩(블록 108)은 일반적으로 프로그램 로드 시퀀스(예컨대, SPI 버스(16)를 통한 마스터 장치(12)에서 슬레이브 장치(14)로의 프로그램 로드 명령, 열 어드레스 및 데이터)를 발행하는 단계를 포함한다.
이어서, 블록 110에 도시된 바와 같이, 제1 데이터가 실행된다. 데이터의 실행은 도 4의 실행 명령의 타이밍도와 관련하여 설명된 바와 같이 캐시(20)에서 데이터 레지스터 및 NAND 메모리 어레이(22)로의 데이터 로딩의 시퀀스를 개시한다. 이전 설명들과 마찬가지로, 캐시(20)에서 NAND 메모리 어레이(22)로 데이터를 실행하는 단계는 일반적으로 프로그램 실행 시퀀스(예를 들어, SPI 버스(16)를 통한 마스터 장치(12)에서 슬레이브 장치(14)로의 프로그램 실행 명령, 열 어드레스)를 발행하는 단계를 포함한다.
프로그램 실행 시퀀스를 발행한 후에(블록 110), 방법(106)은 블록 112에 도시된 바와 같이, 상태를 판독하는 단계를 포함한다. 이전 설명들과 마찬가지로, 상태를 판독하는 단계는 일반적으로 슬레이브 장치(14)가 MISO 라인 상에서 상태 레지스터 바이트를 출력하고, 마스터 장치(12)가 상태 레지스터 바이트(들)를 판독하여 실행 시퀀스 또는 다른 명령들의 상태를 결정하는 단계를 포함한다. 방법(106)에서, 상태를 판독하는 단계(블록 112)는 블록 114에 도시된 바와 같이 캐시가 준비되어 있는지의 여부를 결정하는 데 사용된다. 상태 레지스터 바이트 내의 캐시 상태 비트가 캐시(20)가 준비되지 않았음을 지시하는 경우, 마스터(12)는 상태 레지스터를 계속 폴링한다.
상태 판독 단계(블록 112)에서 판독된 상태 레지스터가 캐시가 준비되었음을 지시하는 경우 또는 지시하면(블록 114), 방법은 블록 118에 도시된 바와 같이 제2(새로운) 데이터를 캐시에 로딩하기 시작한다. 제2 데이터를 캐시에 로딩하는 단계(블록 116)는 제1 데이터의 적어도 일부의 데이터 레지스터/NAND 메모리 어레이(22) 내로의 실행과 병렬로(예를 들어, 동시에) 달성될 수 있다. 즉, 캐시(20)가 실행이 발생하고 있는 동안에 준비되는 경우, 제2 데이터는 데이터가 여전히 NAND 메모리 어레이(22) 내로 실행되고 있는 동안에 캐시(20) 내로 로딩되기 시작할 수 있다.
이어서, 방법(106)은 블록 118에 도시된 바와 같이 상태를 판독하는 단계를 포함한다. 블록 112의 프로세스와 유사하게, 상태를 판독하는 단계(블록 118)는 일반적으로 슬레이브 장치(14)가 MISO 라인 상에서 상태 레지스터 바이트를 출력하고, 마스터 장치(12)가 상태 레지스터 바이트(들)를 판독하여 실행 시퀀스 또는 다른 명령들의 상태를 결정하는 단계를 포함한다. 방법(106)에서 상태를 판독하는 단계(블록 112)는 블록 120에 도시된 바와 같이 캐시가 준비되어 있는지의 여부, 및 블록 122에 도시된 바와 같이 장치(예를 들어, 데이터 레지스터/NAND 메모리 어레이(22))가 준비되어 있는지의 여부를 결정하는 데 사용된다. 상태 레지스터 바이트 내의 캐시 상태 비트 및 장치 상태 비트가 캐시(20) 및 데이터 레지스터/NAND 메모리 어레이(22)가 준비되어 있지 않음을 지시하는 경우, 마스터(12)는 상태 레지스터 바이트를 계속 폴링한다.
상태 판독 단계(블록 118)에서 판독된 상태 레지스터 바이트가 캐시(20)가 준비되어 있고(블록 120), 데이터 레지스터/NAND 메모리 어레이(22)가 준비되어 있음(블록 122)을 지시하는 경우 또는 지시하면, 방법(106)은 블록 124에 도시된 바와 같이 제2(새로운) 데이터를 캐시 내로 실행하기 시작한다.
방법(106)의 도시된 실시예에서, 캐시(20)에 로딩될 추가 데이터가 존재하는 경우, 방법(106)은 로딩될 데이터(예를 들어, 제3 세트의 데이터)가 더 존재하는 것으로 결정하고, 블록 112에서의 상태 판독으로 복귀하여 전술한 방법을 반복할 수 있다. 즉, 방법(106)은 상태 레지스터를 폴링하고, 캐시(20)가 준비된 때 제3 세트의 데이터를 캐시(20) 내에 로딩하는 것을 반복한 후, 캐시(20) 및 데이터 레지스터/NAND 메모리 어레이 모두가 준비된 때 제3 세트의 데이터를 실행한다. 그러나, 로딩될 추가 데이터 세트가 존재하지 않는 경우, 방법(106)은 블록 128에 도시된 바와 같이 상태를 판독하기 시작할 수 있다. 상태에 기초하여, 방법(106)은 마스터 장치(12)가 다른 기능들 및 명령들을 진행하는 것을 종료, 반복 또는 개시할 수 있다. 방법(106) 내의 다양한 단계들은 유사한 기능을 제공하도록 다양한 순서로 완료되거나, 생략되거나, 반복될 수 있다는 점에 유의해야 한다. 예를 들어, 블록 126에서의 더 많은 데이터에 대한 검사는 블록 128에서의 상태 판독 후에 수행될 수 있다.
전술한 바와 같이, 캐시 로딩 및 프로그램 실행 명령을 갖는 데이터의 시퀀스의 실행의 하나의 이익은 시퀀스 내의 각각의 프로그램 실행 명령의 특정 어드레스를 지정할 수 있는 유연성을 포함한다. 예를 들어, 실행 명령들 각각 내에 특정 어드레스를 제공하는 것은 각각의 프로그램 실행이 각각의 데이터 세트를 저장할 곳을 지정할 수 있게 한다. 이와 달리, 각각의 명령 내에 어드레스를 포함하지 않는 방법들은 단지 다음의 이용 가능한 어드레스(예를 들어, 시퀀스 페이지 + 1 어드레싱)에 데이터를 배치할 수 있을 뿐이다. 달리 말하면, 프로그램 실행 명령은, 시퀀스 내의 각각의 데이터 세트를 다음 순차 어드레스에 단순히 할당하는 방법과 달리, 시퀀스 내의 각각의 데이터 세트가 어드레싱될 장소를 지정함에 있어서의 유연성을 가능하게 한다.
본 발명은 다양한 변경들 및 대안 형태들이 가능할 수 있지만, 특정 실시예들이 도면들에 예시적으로 도시되었고, 본 명세서에 상세히 설명되었다. 그러나, 본 발명은 개시된 특정 형태들로 한정되는 것을 의도하지 않는다는 것을 이해해야 한다. 오히려, 본 발명은 아래에 첨부된 청구항들에 의해 정의되는 바와 같은 본 발명의 사상 및 범위 내에 있는 모든 변경, 균등물 및 대안들을 포함한다.

Claims (25)

  1. SPI 인터페이스를 통해 NAND 메모리 장치를 캐시 로딩하는 방법으로서,
    상기 NAND 메모리 장치의 캐시의 지정된 어드레스 내에 데이터를 로딩하는 단계;
    상기 NAND 메모리 장치의 상기 캐시의 상기 지정된 어드레스로부터 상기 NAND 메모리 장치의 메모리 어레이의 지정된 어드레스에 데이터를 기입하는 단계; 및
    기입되는 상기 데이터의 상태를 결정하기 위해 폴링하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 NAND 메모리 장치의 캐시의 어드레스 내에 데이터를 로딩하는 단계는 상기 캐시 내에 데이터를 로딩하기 위한 프로그램 로드 시퀀스를 SPI 제어기에 발행하는 단계를 포함하는 방법.
  3. 제2항에 있어서, 상기 프로그램 로드 시퀀스는 1 바이트 명령, 상기 캐시의 어드레스에 대응하는 2 바이트 열 어드레스 및 적어도 1 데이터 바이트를 포함하는 방법.
  4. 제1항에 있어서, 상기 NAND 메모리 장치의 캐시로부터 상기 NAND 메모리 장치의 메모리 어레이의 어드레스에 데이터를 기입하는 단계는 상기 NAND 메모리 장치의 어드레스에 데이터를 기입하기 위한 프로그램 실행 시퀀스를 SPI 제어기에 발행하는 단계를 포함하는 방법.
  5. 제1항에 있어서, 칩 선택 신호가 디스에이블된 상태로 구동될 때 에러 정정 코드를 실행하는 단계를 포함하는 방법.
  6. 제1항에 있어서, 기입되는 상기 데이터의 상태를 결정하기 위해 폴링하는 단계는 상기 NAND 메모리 장치의 어드레스에 기입되는 데이터의 상태를 폴링하기 위한 상태 판독 명령을 SPI 제어기에 발행하는 단계를 포함하는 방법.
  7. NAND 메모리 장치의 캐시에 데이터를 랜덤하게 입력하는 방법으로서,
    상기 NAND 메모리 장치의 캐시의 복수의 열 어드레스 중 하나 내에 새로운 데이터를 로딩하기 위한 프로그램 로드 랜덤 데이터 입력 시퀀스를 SPI 제어기에 발행하는 단계
    를 포함하고,
    상기 새로운 데이터를 포함하는 상기 캐시 내에 저장되는 데이터는 상기 NAND 메모리 장치의 NAND 메모리 어레이에 기입되는 방법.
  8. 제7항에 있어서, 상기 프로그램 로드 랜덤 데이터 입력 시퀀스는 1 바이트 명령, 12 비트 열 어드레스 및 적어도 1 데이터 바이트를 포함하는 방법.
  9. 제7항에 있어서, 상기 프로그램 로드 랜덤 데이터 입력 시퀀스는 상기 어드레스를 바이트 포맷으로 정렬하기 위한 더미 비트를 포함하는 방법.
  10. 삭제
  11. NAND 메모리 장치 내에서 데이터를 이동시키는 방법으로서,
    SPI 버스를 통해 SPI 제어기와 통신하는 단계
    를 포함하고,
    상기 통신하는 단계는,
    상기 NAND 메모리 장치의 NAND 메모리 어레이의 제1 어드레스로부터 상기 NAND 메모리 장치의 지정된 캐시 어드레스 내로 데이터를 판독하기 위한 제1 시퀀스를 생성하는 단계; 및
    상기 NAND 메모리 장치의 상기 지정된 캐시 어드레스로부터 상기 NAND 메모리 장치의 NAND 메모리 어레이의 제2 어드레스에 상기 데이터를 기입하기 위한 제2 시퀀스를 생성하는 단계
    를 포함하는 방법.
  12. 제11항에 있어서, 상기 제1 시퀀스는 페이지 판독 명령을 포함하고, 상기 제2 시퀀스는 프로그램 실행 명령을 포함하는 방법.
  13. 제11항에 있어서, 상기 NAND 메모리 장치의 NAND 메모리 어레이에 기입되는 상기 데이터의 상태를 폴링하는 단계를 포함하는 방법.
  14. 제11항에 있어서, 상기 NAND 메모리 장치의 NAND 메모리 어레이의 제2 어드레스에 기입되는 상기 데이터의 상태를 폴링하기 위한 상태 판독 명령을 생성하는 단계를 포함하는 방법.
  15. 제11항에 있어서, 상기 NAND 메모리 장치 내에서의 상기 데이터의 이동은 마모 레벨링 알고리즘(wear-leveling algorithm)에 기초하여 이용되는 방법.
  16. NAND 메모리 장치에서 내부 데이터를 수정하는 방법으로서,
    상기 NAND 메모리 장치의 메모리 어레이의 제1 어드레스로부터 데이터를 판독하고, 상기 데이터를 상기 NAND 메모리 장치의 지정된 캐시 어드레스 내에 로딩하기 위한 페이지 판독 시퀀스를 SPI 제어기에 발행하는 단계;
    상기 NAND 메모리 장치의 상기 지정된 캐시 어드레스와 연관된 복수의 열 어드레스 중 하나의 어드레스 내에 새로운 데이터를 로딩하기 위한 프로그램 로드 랜덤 데이터 입력 시퀀스를 상기 SPI 제어기에 발행하는 단계; 및
    상기 NAND 메모리 장치의 상기 지정된 캐시 어드레스로부터 상기 NAND 메모리 장치의 메모리 어레이의 제2 어드레스에 데이터를 기입하기 위한 프로그램 실행 시퀀스를 상기 SPI 제어기에 발행하는 단계
    를 포함하는 방법.
  17. 제16항에 있어서, 상기 프로그램 로드 랜덤 데이터 입력 시퀀스를 발행하기 전에 그리고 후에 에러 정정 코드를 실행하는 단계를 포함하는 방법.
  18. 제16항에 있어서, 상기 프로그램 로드 랜덤 데이터 입력 시퀀스는 상기 새로운 데이터에 의해 겹쳐서 기입된 데이터만을 수정하는 방법.
  19. 제16항에 있어서, 마모 레벨링 알고리즘에 기초하여 상기 NAND 메모리 장치의 메모리 어레이의 제1 어드레스와 제2 어드레스 사이에서 상기 데이터를 이동시키는 단계를 포함하는 방법.
  20. SPI 인터페이스를 통해 NAND 메모리 장치에서 데이터를 캐싱하는 방법으로서,
    제1 프로그램 로드 시퀀스를 SPI 제어기에 발행함으로써 상기 NAND 메모리 장치의 캐시에 제1 데이터를 로딩하는 단계;
    제1 프로그램 실행 시퀀스를 상기 SPI 제어기에 발행함으로써 상기 캐시로부터 상기 NAND 메모리 장치의 NAND 메모리 어레이의 제1 어드레스에 상기 제1 데이터를 기입하는 단계;
    제1 판독 상태 시퀀스를 상기 SPI 제어기에 발행함으로써 상기 캐시의 상태를 폴링하는 단계;
    폴링이 상기 캐시가 준비되어 있음을 지시하는 경우, 제2 프로그램 로드 시퀀스를 상기 SPI 제어기에 발행함으로써 상기 캐시의 일부에 제2 데이터를 로딩하는 단계;
    제2 판독 상태 시퀀스를 상기 SPI 제어기에 발행함으로써 상기 캐시 및 상기 NAND 메모리 장치의 상태를 폴링하는 단계; 및
    폴링이 상기 캐시가 준비되어 있고 상기 장치가 준비되어 있음을 지시하는 경우, 제2 프로그램 실행 시퀀스를 상기 SPI 제어기에 발행함으로써 상기 캐시의 일부로부터 상기 NAND 메모리 장치의 NAND 메모리 어레이의 제2 어드레스에 상기 제2 데이터를 기입하는 단계
    를 포함하는 방법.
  21. 삭제
  22. 제20항에 있어서, 상기 방법은 상기 NAND 메모리 장치의 메모리 어레이에 기입될 추가적인 데이터 세트들에 대해 반복되는 방법.
  23. 제20항에 있어서, 상기 NAND 메모리 장치의 캐시의 상태를 폴링하는 단계는 상기 SPI 제어기가 캐시 상태 비트를 포함하는 상태 레지스터 바이트를 출력하는 단계를 포함하는 방법.
  24. 제20항에 있어서, 상기 NAND 메모리 장치의 상태를 폴링하는 단계는 상기 SPI 제어기가 장치 상태 비트를 포함하는 상태 레지스터 바이트를 출력하는 단계를 포함하는 방법.
  25. 제20항에 있어서, 상기 캐시 및 상기 NAND 메모리 장치의 상태를 폴링하여, 상기 NAND 메모리 장치의 NAND 메모리 어레이의 제2 어드레스에의 상기 제2 데이터의 기입이 완료되었는지를 결정하는 단계를 포함하는 방법.
KR1020107010753A 2007-10-17 2008-09-30 직렬 인터페이스 nand KR101507194B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/873,816 2007-10-17
US11/873,816 US8429329B2 (en) 2007-10-17 2007-10-17 Serial interface NAND
PCT/US2008/078313 WO2009051955A1 (en) 2007-10-17 2008-09-30 Serial interface nand

Publications (2)

Publication Number Publication Date
KR20100077026A KR20100077026A (ko) 2010-07-06
KR101507194B1 true KR101507194B1 (ko) 2015-03-30

Family

ID=40070671

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107010753A KR101507194B1 (ko) 2007-10-17 2008-09-30 직렬 인터페이스 nand

Country Status (6)

Country Link
US (2) US8429329B2 (ko)
EP (1) EP2201462A1 (ko)
KR (1) KR101507194B1 (ko)
CN (1) CN101828172B (ko)
TW (1) TWI391820B (ko)
WO (1) WO2009051955A1 (ko)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USD589322S1 (en) 2006-10-05 2009-03-31 Lowe's Companies, Inc. Tool handle
US8103936B2 (en) 2007-10-17 2012-01-24 Micron Technology, Inc. System and method for data read of a synchronous serial interface NAND
US8102710B2 (en) 2007-10-17 2012-01-24 Micron Technology, Inc. System and method for setting access and modification for synchronous serial interface NAND
US8090955B2 (en) 2007-10-17 2012-01-03 Micron Technology, Inc. Boot block features in synchronous serial interface NAND
US8843692B2 (en) 2010-04-27 2014-09-23 Conversant Intellectual Property Management Inc. System of interconnected nonvolatile memories having automatic status packet
US9021182B2 (en) 2010-10-03 2015-04-28 Winbond Electronics Corporation Flash memory for code and data storage
US20120117303A1 (en) * 2010-11-04 2012-05-10 Numonyx B.V. Metadata storage associated with flash translation layer
KR101293223B1 (ko) 2011-04-01 2013-08-05 (주)아토솔루션 비휘발성 메모리 소자, 전자제어 시스템, 및 비휘발성 메모리 소자의 동작방법
CN102279820A (zh) * 2011-08-24 2011-12-14 四川和芯微电子股份有限公司 基于spi接口的数据存储装置及控制方法
TWI490863B (zh) * 2011-11-21 2015-07-01 Winbond Electronics Corp 用於代碼和資料存儲的快閃記憶體
TWI474169B (zh) * 2012-12-22 2015-02-21 Himax Tech Ltd 記憶體資料存取方法及記憶體資料存取控制器
US9852090B2 (en) * 2013-12-11 2017-12-26 Adesto Technologies Corporation Serial memory device alert of an external host to completion of an internally self-timed operation
TWI646537B (zh) * 2013-12-11 2019-01-01 美商愛德斯托科技有限公司 序列記憶體裝置通知外部主機內部自計時操作已完成
KR102165231B1 (ko) * 2013-12-30 2020-10-14 에스케이하이닉스 주식회사 스큐를 보정하는 리시버 회로, 이를 포함하는 반도체 장치 및 시스템
JP2015176309A (ja) * 2014-03-14 2015-10-05 株式会社東芝 半導体記憶装置
WO2015176040A1 (en) 2014-05-15 2015-11-19 Adesto Technologies Corporation Memory devices and methods having instruction acknowledgement
US9830087B2 (en) * 2014-11-13 2017-11-28 Micron Technology, Inc. Memory wear leveling
CN104461401A (zh) * 2014-12-25 2015-03-25 珠海煌荣集成电路科技有限公司 Spi闪速存储器的数据读写管理方法及数据读写管理装置
US9594629B2 (en) 2015-06-03 2017-03-14 King Abdulaziz City For Science And Technology Data error correction from cached error correction information
CN106326138B (zh) * 2015-07-03 2019-11-05 比亚迪股份有限公司 闪存及闪存内部数据的存取控制方法
JP2017045388A (ja) * 2015-08-28 2017-03-02 株式会社東芝 メモリシステム
JP6542075B2 (ja) * 2015-08-28 2019-07-10 東芝メモリ株式会社 メモリシステム
US10539989B1 (en) 2016-03-15 2020-01-21 Adesto Technologies Corporation Memory device alert of completion of internally self-timed power-up and reset operations
JP2018073438A (ja) * 2016-10-24 2018-05-10 東芝メモリ株式会社 半導体記憶装置
US10120604B1 (en) * 2017-06-13 2018-11-06 Micron Technology, Inc. Data programming
TW201915818A (zh) * 2017-10-05 2019-04-16 香港商印芯科技股份有限公司 光學識別模組
CN108038064B (zh) * 2017-12-20 2021-01-15 北京兆易创新科技股份有限公司 一种PairBlock擦除出错的处理方法及装置
DE102018102386A1 (de) * 2018-02-02 2019-08-08 Infineon Technologies Ag Verfahren zum Senden von Daten, Verfahren zum Empfangen von Daten, Master-, Slave-, und Master-Slave-System
US10817430B2 (en) * 2018-10-02 2020-10-27 Micron Technology, Inc. Access unit and management segment memory operations
TWI687815B (zh) * 2018-12-10 2020-03-11 大陸商北京集創北方科技股份有限公司 資料發送方法、具有序列周邊介面之從屬裝置及資訊處理裝置
US10803926B2 (en) * 2018-12-31 2020-10-13 Micron Technology, Inc. Memory with on-die data transfer
US10936234B2 (en) * 2019-05-22 2021-03-02 Macronix International Co., Ltd. Data transfer between memory devices on shared bus
CN110445578B (zh) * 2019-07-29 2020-06-23 广芯微电子(广州)股份有限公司 一种spi数据传输方法及装置
US11663081B2 (en) * 2021-05-10 2023-05-30 Western Digital Technologies, Inc. Storage system and method for data recovery after detection of an uncorrectable error

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434648B1 (en) * 1998-12-10 2002-08-13 Smart Modular Technologies, Inc. PCMCIA compatible memory card with serial communication interface
US20070115743A1 (en) 2005-09-09 2007-05-24 Stmicroelectronics S.R.I. Memory architecture with serial peripheral interface

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5907856A (en) * 1995-07-31 1999-05-25 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US6418506B1 (en) * 1996-12-31 2002-07-09 Intel Corporation Integrated circuit memory and method for transferring data using a volatile memory to buffer data for a nonvolatile memory array
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
US6965963B1 (en) * 1999-07-28 2005-11-15 Sony Corporation Continuous arrangement of data clusters across multiple storages
US6732221B2 (en) * 2001-06-01 2004-05-04 M-Systems Flash Disk Pioneers Ltd Wear leveling of static areas in flash memory
US7073099B1 (en) * 2002-05-30 2006-07-04 Marvell International Ltd. Method and apparatus for improving memory operation and yield
US7093071B2 (en) * 2002-10-09 2006-08-15 Intel Corporation Queued copy command
JP2004348818A (ja) * 2003-05-20 2004-12-09 Sharp Corp 半導体記憶装置の書込制御方法及びシステム並びに携帯電子機器
US7447950B2 (en) * 2003-05-20 2008-11-04 Nec Electronics Corporation Memory device and memory error correction method
US20060036817A1 (en) * 2004-08-10 2006-02-16 Oza Alpesh B Method and system for supporting memory unaligned writes in a memory controller
JP2006139556A (ja) * 2004-11-12 2006-06-01 Toshiba Corp メモリカード及びそのカードコントローラ
TWI263229B (en) * 2005-03-17 2006-10-01 Sunplus Technology Co Ltd Memory device with interface for serial transmission and error correction method for serial transmission interface
FR2887848B1 (fr) 2005-06-29 2008-08-22 Patrick Orti Dispositif de securite pour plongeur sous-marin
JP4751163B2 (ja) 2005-09-29 2011-08-17 株式会社東芝 メモリシステム
US7657699B2 (en) * 2005-11-09 2010-02-02 Sandisk Il Ltd. Device and method for monitoring operation of a flash memory
US8102710B2 (en) 2007-10-17 2012-01-24 Micron Technology, Inc. System and method for setting access and modification for synchronous serial interface NAND
US8090955B2 (en) 2007-10-17 2012-01-03 Micron Technology, Inc. Boot block features in synchronous serial interface NAND
US8103936B2 (en) 2007-10-17 2012-01-24 Micron Technology, Inc. System and method for data read of a synchronous serial interface NAND

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434648B1 (en) * 1998-12-10 2002-08-13 Smart Modular Technologies, Inc. PCMCIA compatible memory card with serial communication interface
US20070115743A1 (en) 2005-09-09 2007-05-24 Stmicroelectronics S.R.I. Memory architecture with serial peripheral interface

Also Published As

Publication number Publication date
US8429329B2 (en) 2013-04-23
WO2009051955A1 (en) 2009-04-23
KR20100077026A (ko) 2010-07-06
EP2201462A1 (en) 2010-06-30
CN101828172A (zh) 2010-09-08
CN101828172B (zh) 2013-02-27
US20090103364A1 (en) 2009-04-23
TWI391820B (zh) 2013-04-01
US20130238846A1 (en) 2013-09-12
US8850119B2 (en) 2014-09-30
TW200935219A (en) 2009-08-16

Similar Documents

Publication Publication Date Title
KR101507194B1 (ko) 직렬 인터페이스 nand
KR101507628B1 (ko) 동기 직렬 인터페이스 nand의 데이터 판독을 위한 시스템 및 방법
US6792501B2 (en) Universal serial bus flash memory integrated circuit device
US7814264B2 (en) Memory card, semiconductor device, and method of controlling semiconductor memory
US7239547B2 (en) Memory device
EP2126919B1 (en) Memory system and method having volatile and non-volatile memory devices at same hierarchical level
US7392343B2 (en) Memory card having a storage cell and method of controlling the same
US8386699B2 (en) Method for giving program commands to flash memory for writing data according to a sequence, and controller and storage system using the same
US20020147882A1 (en) Universal serial bus flash memory storage device
KR101397229B1 (ko) 메모리 시스템 및 메모리를 위한 모듈러 커맨드 스트럭처
US7245539B2 (en) Memory card, semiconductor device, and method of controlling semiconductor memory
KR20070118533A (ko) 불휘발성 메모리
US7590027B2 (en) Nonvolatile semiconductor memory device
US20110022777A1 (en) System and method for direct memory access in a flash storage
CN114201106A (zh) 电子装置、存储器***及传送方法
KR100298904B1 (ko) 플래쉬메모리의 인터페이스 방법
JP2008090408A (ja) マイクロコンピュータ、データ書込み装置およびその書込み方法
JP4747535B2 (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
FPAY Annual fee payment

Payment date: 20180302

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190305

Year of fee payment: 5