KR101087419B1 - 비휘발성 메모리용 고속 인터페이스 - Google Patents

비휘발성 메모리용 고속 인터페이스 Download PDF

Info

Publication number
KR101087419B1
KR101087419B1 KR1020097012859A KR20097012859A KR101087419B1 KR 101087419 B1 KR101087419 B1 KR 101087419B1 KR 1020097012859 A KR1020097012859 A KR 1020097012859A KR 20097012859 A KR20097012859 A KR 20097012859A KR 101087419 B1 KR101087419 B1 KR 101087419B1
Authority
KR
South Korea
Prior art keywords
data
controller
receiving
command
issuing
Prior art date
Application number
KR1020097012859A
Other languages
English (en)
Other versions
KR20090080568A (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 KR20090080568A publication Critical patent/KR20090080568A/ko
Application granted granted Critical
Publication of KR101087419B1 publication Critical patent/KR101087419B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)

Abstract

NAND 플래시 메모리 디바이스들은 통상적으로 큰 블록으로 판독되는 데이터(예를 들면, 디지털 이미지 또는 음악)를 저장하는 데 이용된다. NAND 플래시의 느린 액세스 시간 때문에, 몇 개의 디바이스들이 병렬로 공통 버스에 배치되고 대략 동시에 액세스될 수 있다. 각각의 디바이스로부터의 데이터가 이용 가능할 경우, 그것은 한번에 하나의 디바이스를 판독할 수 있다. 그러나, 모든 입력/출력(I/O) 핀들을 병렬로 배치하는 것으로 인해 용량성 부하(capacitive loading)가 생길 수 있고, 이는 버스 상의 신호 품질을 열화시키고 그에 의해 버스 상의 최대 유용 처리율(maximum useful throughput)을 저하시킨다. 다르게는, 한번에 하나의 디바이스만을 액세스하는 것으로 인해 액세스 시간들이 누적될 수 있고, 이 또한 버스의 전체 처리율을 저하시킨다.
비휘발성 메모리, NAND 플래시 메모리, 데이지-체인(daisy-chain)

Description

비휘발성 메모리용 고속 인터페이스{HIGH SPEED INTERFACE FOR NON-VOLATILE MEMORY}
NAND 플래시 메모리 디바이스들은 통상적으로 큰 블록으로 판독되는 데이터(예를 들면, 디지털 이미지 또는 음악)를 저장하는 데 이용된다. NAND 플래시의 느린 액세스 시간 때문에, 몇 개의 디바이스들이 병렬로 공통 버스에 배치되고 대략 동시에 액세스될 수 있다. 각각의 디바이스로부터의 데이터가 이용 가능할 경우, 그것은 한번에 하나의 디바이스를 판독할 수 있다. 그러나, 모든 입력/출력(I/O) 핀들을 병렬로 배치하는 것으로 인해 용량성 부하(capacitive loading)가 생길 수 있고, 이는 버스 상의 신호 품질을 열화시키고 그에 의해 버스 상의 최대 유용 처리율(maximum useful throughput)을 저하시킨다. 다르게는, 한번에 하나의 디바이스만을 액세스하는 것으로 인해 액세스 시간들이 누적될 수 있고, 이 또한 버스의 전체 처리율을 저하시킨다.
본 발명의 일부 실시예들은 본 발명의 실시예들을 설명하기 위해 이용되는 다음의 설명 및 첨부 도면들을 참조함으로써 이해될 수 있다. 도면들에 있어서,
도 1은 본 발명의 실시예에 따른, 비휘발성 메모리 시스템의 블록도를 나타낸다.
도 2는 본 발명의 실시예에 따른, 메모리 디바이스의 블록도를 나타낸다.
도 3A, 3B, 및 3C는 본 발명의 실시예에 따른, 메모리 디바이스에 의해 수행되는 방법의 흐름도를 나타낸다.
도 4는 본 발명의 실시예에 따른, 호스트 컨트롤러에 의해 수행되는 방법의 흐름도를 나타낸다.
다음의 설명에서는, 다수의 특정 상세들이 설명된다. 그러나, 본 발명의 실시예들은 이들 특정 상세들 없이 실시될 수도 있다는 것은 말할 것도 없다. 다른 사례들에서, 잘 알려진 회로들, 구조들 및 기법들은 이 설명의 이해를 어렵게 하지 않기 위해 상세히 제시 않았다.
"일 실시예", "실시예", "예시 실시예", "다양한 실시예" 등의 언급들은 그렇게 기술된 본 발명의 실시예(들)가 특정한 특징들, 구조들, 또는 특성들을 포함할 수 있지만, 모든 실시예마다 반드시 그 특정한 특징들, 구조들, 또는 특성들을 포함하지는 않는다는 것을 나타낸다. 또한, 일부 실시예들은 다른 실시예들에 대하여 기술된 특징들을 일부 또는 전부를 가질 수도 있고, 전혀 갖지 않을 수도 있다.
다음의 설명 및 청구항들에서, 용어 "연결된"(coupled) 및 "접속된"(connected)과 함께, 그들의 파생어들이 사용될 수 있다. 이들 용어들은 서로에 대한 동의어로서 의도되지 않는다는 것을 이해해야 한다. 오히려, 특정 실시예들에서, "접속된"은 2개 이상의 엘리먼트들이 서로 직접 물리적으로 또는 전기적으로 접촉하는 것을 나타내기 위해 사용된다. "연결된"은 2개 이상의 엘리먼트들이 서로 협력하거나 상호 작용하지만, 그것들이 직접 물리적으로 또는 전기적으로 접촉할 수도 있고 그렇지 않을 수도 있다는 것을 나타내기 위해 사용된다.
청구항들에서 사용될 때, 다르게 명기되지 않는 한 서수 형용사 "제1", "제2", "제3" 등을 사용하여 공통의 엘리먼트를 기술하는 것은, 같은 엘리먼트들의 상이한 사례들이 언급되고 있는 것임을 나타내는 것에 불과하고, 그렇게 기술된 엘리먼트들이 시간적으로, 공간적으로, 순위에서, 또는 임의의 다른 방식으로, 주어진 순서로 있어야 한다는 것을 암시하고자 하는 것은 아니다.
본 발명의 다양한 실시예들은 하드웨어, 펌웨어, 및 소프트웨어 중 하나로 또는 그의 임의의 조합으로 구현될 수 있다. 본 발명은 또한, 여기에 설명된 동작들의 수행을 가능하게 하기 위해 하나 이상의 프로세서들에 의해 판독 및 실행될 수 있는, 머신 판독 가능한 매체(machine-readable medium)에 또는 그러한 매체 상에 포함된 명령어들로서 구현될 수 있다. 머신 판독 가능한 매체는 머신(예를 들면, 컴퓨터)에 의해 판독 가능한 형태로 정보를 저장, 송신, 및/또는 수신하기 위한 임의의 메커니즘을 포함할 수 있다. 예를 들면, 머신 판독 가능한 매체는, 예를 들면, ROM(read only memory); RAM(random access memory); 자기 디스크 저장 매체; 광학 저장 매체; 플래시 메모리 디바이스 등의 저장 매체를 포함할 수 있지만, 열거한 것들에 제한되는 것은 아니다. 머신 판독 가능한 매체는 또한, 예를 들면, 전자기, 광학, 또는 음향 반송파 신호들 등의, 명령어들을 인코딩하도록 변조된 전파 신호(propagated signal)를 포함할 수 있지만, 열거한 것들에 제한되는 것은 아니다.
본 발명의 다양한 실시예들은 복수의 플래시 메모리 컨트롤러들을 데이지 체인(daisy chain) 방식으로 접속함으로써, 디바이스 핀들을 병렬로 접속하는 것에 의해 야기되는 버스 부하 및 고유의 신호 열화 없이 복수의 메모리 디바이스들이 함께 접속될 수 있도록 할 수 있다. 신호들은 또한, 디바이스들이 다른 디바이스에 대한 통과 스테이션(pass-through station)으로서 사용되는 것에 불과하다면, 각 컨트롤러를 통하여 신속히 통과될 수도 있고, 또는 관련 메모리 어레이에 대한 판독 및 기입을 위해 버퍼링될 수도 있다. 일부 실시예들에서, 각 메모리 디바이스는 메모리 어레이 및 그 메모리 어레이의 동작들을 제어하는 관련 메모리 컨트롤러를 포함하는 단일 집적 회로를 포함하고, 상기 관련 메모리 컨트롤러는 또한 다른 메모리 디바이스들의 사용을 위해 그 다른 메모리 디바이스들에 어드레싱되는 명령 또는 데이터가 상기 컨트롤러를 통과하는 통과 동작들을 제어한다. 일부 실시예들은 상기 메모리 디바이스들과는 별개의 호스트 컨트롤러를 포함하고, 이 호스트 컨트롤러는 상기 메모리 디바이스들로의 명령 및 기입 데이터를 개시하고, 또한 상기 메모리 디바이스들로부터의 판독 데이터를 수신할 수 있다. 주: 비록 설명들 및 도면에서는 플래시 메모리, 특히 NAND 플래시 메모리를 종종 언급하지만, 설명된 원리들은, 연속된 데이터의 블록을 위해 복수의 메모리 디바이스들 각각을 순차적으로 액세스하는 것을 보증할 만큼 액세스 시간들이 길고, 이들 디바이스들을 공통 버스에 병렬로 배치하는 것으로 인해 허용 불가의 버스 부하가 생길 수 있는, 다른 종류의 비휘발성 메모리에서도 이용될 수 있다.
도 1은 본 발명의 실시예에 따른, 비휘발성 메모리 시스템을 나타낸다. 도시된 시스템(100)에서, 호스트 컨트롤러(110)는 120 내지 12n으로 번호가 매겨진, #0, #1, ..., #n이라는 라벨이 붙은 n+1개의 플래시 메모리 디바이스들에 대한 전체 제어를 제공할 수 있다. 호스트 컨트롤러에 의해 클록 신호 CLK가 발신되어 제1 메모리 디바이스(120)에 전달되고, 제1 메모리 디바이스(120)는 다음 메모리 디바이스(121)에 CLK를 전달하고, 그렇게 CLK가 체인 내의 마지막 메모리 디바이스인 메모리 디바이스(12n)에 도달할 때까지 계속된다. 데이터는 도면에서 집합적으로 DATA라는 라벨이 붙은 복수의 병렬 데이터 라인들을 통하여 양쪽 방향으로 전달된다. 병렬 데이터 라인들의 수는 4, 8, 16, 32 등의 임의의 실행 가능한 양일 수 있지만, 열거한 것들에 제한되는 것은 아니다. 기입 데이터는 호스트 컴퓨터에서 발신되어 그것이 지정된 메모리 디바이스에 도달할 때까지 메모리 디바이스에서 메모리 디바이스로 전달될 수 있고, 지정된 메모리 디바이스에서 그것은 그 디바이스의 내부 메모리 어레이에 기입된다. 판독 데이터는 선택된 메모리 디바이스에서 발신되어, 그것이 호스트 컴퓨터에 도달할 때까지 복수의 메모리 디바이스들을 통하여 전달될 수 있고, 호스트 컴퓨터는 그 데이터를 처리할 수 있다. 도면을 어지럽게 하는 것을 피하기 위해 다양한 디바이스들에의 전력 접속들은 도시되어 있지 않다.
도 2는 본 발명의 실시예에 따른, 메모리 디바이스의 블록도를 나타낸다. 도시된 실시예에서, 클록, 데이터, 및 데이터 유효(data valid; DV) 라인들은 도 1의 그들의 대응물들에 대응한다. 플래시 메모리 디바이스는 120으로 번호가 매겨져 있지만, 도 1에 도시된 플래시 메모리 디바이스들 중 임의의 것에 대응할 수 있다. 플래시 어레이(230)는 플래시 메모리 디바이스에 있어서, 다른 디바이스들에 의해 사용하기 위한 데이터가 저장될 수 있는, 실제 메모리 부분을 포함한다. 도면에 도시된 바와 같이, 호스트 컨트롤러에서 발신하는 클록 신호 CLK는 clkin 입력을 통하여 도입되어 명령 상태 머신(240)을 클로킹하는 데 이용될 수 있고, 또한 모든 메모리 디바이스들이 동일한 클록 라인에 직접 결합될 경우 발생할 부하를 감소시키기 위해 버퍼(210)를 이용하여, clkin으로부터 clkout으로 통과될 수도 있다. 명령 상태 머신(240)은 data1 라인들을 통하여 도입된 명령들에 기초하여, 플래시 메모리 디바이스에서의 모든 동작들을 제어하는 데 이용될 수 있다.
설명의 편의를 위하여, 이 문서의 문맥 내에서 '업스트림'(upstream)은 호스트 컨트롤러를 향하여 이동하는 데이터를 나타내고, '다운스트림'(downstream)은 호스트 컨트롤러로부터 멀리 이동하는 데이터를 나타낸다. 예를 들면, 도 1에서 디바이스(121)는 디바이스(120)로부터 다운스트림일 것이고, 디바이스(120)는 디바이스(121)로부터 업스트림일 것이다. 호스트 컨트롤러(110)는 모든 메모리 디바이스들(12x)로부터 업스트림일 것이다.
도 2를 참조하면, 데이터 신호들은 업스트림 또는 다운스트림으로 이동중일 수 있고, 메모리 디바이스를 통하여 전달되거나, 메모리 디바이스에서 발신하거나, 메모리 디바이스로 향할 수 있다. 멀티플렉서/디멀티플렉서(mux/demux)(271)는 이 디바이스와 다음 업스트림 디바이스 사이의 어느 한쪽 방향으로 이동하는 데이터에 대하여, 명령 상태 머신(240)의 제어 하에, 적당한 데이터 경로를 제공하는 데 이용될 수 있다. mux/demux(271)는 data1로부터의 다운스트림 데이터를 레지스터(262)로 라우팅할 수 있고, 레지스터(262)에서 그것은 래칭되어 data2에서 다음 다운스트림 디바이스에게 이용 가능하게 될 수 있다. 유사하게, 레지스터(261)에 래칭된 data2로부터의 업스트림 데이터는 다음 업스트림 디바이스로의 통과를 위하여 data1에서 mux/demux(271)에 의해 이용 가능하게 될 수 있다. 비록 mux/demux(271)는 단일 기능 회로로서 도시되어 있지만, 일부 실시예들에서 그것은 멀티플렉서 및 별개의 디멀티플렉서로서 구현될 수 있다.
통과 데이터에 대한 적당한 타이밍을 제공하기 위해, 데이터 유효(DV) 신호도 어느 한쪽 방향으로 통과될 수 있고, 다운스트림 신호는 레지스터(263)에 래칭되고 업스트림 신호는 레지스터(264)에 래칭된다. 메모리 디바이스가 다른 메모리 디바이스로부터의 데이터를 통과시키는 대신에 그 자신의 메모리 어레이로부터 데이터를 제공하고 있는 경우와 같은 특정 상황에서는, mux/demux(272)는 다운스트림 디바이스로부터의 DV 신호를 통과시키는 대신에 DV1에서 타이밍 신호를 제공하도록 설정될 수 있다. 일부 실시예들에서 신호 fclk는 clkin으로부터 파생되는 클록 신호로서, 명령 상태 머신(240)의 제어 하에서 특정 시간들에서만 액티브인 클록 신호일 수 있다.
호스트 컨트롤러가 이 특정 플래시 메모리 디바이스로부터 데이터를 판독하려고 시도중인 경우, 플래시 어레이(230)로부터 판독된 데이터는 선입선출(first-in-first-out) 버퍼(FIFO)(251)에 배치될 수 있고, 그곳으로부터 mux/demux(271)는 다음 업스트림 디바이스에 의한 판독을 위해 data1에서 제공하기 위해 그것을 선택할 수 있다. 호스트 컨트롤러가 이 특정 메모리 디바이스에 데이터를 기입하려고 시도중인 경우, data1에서의 데이터는 mux/demux(271)에 의해 FIFO(252)로 라우팅될 수 있고, 그곳으로부터 그것은 플래시 어레이에 기입될 수 있다.
상기 FIFO들은 비교적 느린 데이터 전송 레이트를 가질 수 있는 어레이와, 비교적 빠른 데이터 전송 레이트를 가질 수 있는 데이지-체인 버스 간의 데이터 전송 레이트의 차이들을 허용하기 위해 사용될 수 있다. 일부 실시예들에서, 한 페이지(또는 다른 블록 사이즈)의 데이터가 data1을 통하여 업스트림으로 전달되기 전에, 어레이(230)에 의해 FIFO(251)에 완전히 기입될 수 있다. 유사하게, 전체 블록의 데이터가 FIFO(252)로부터 어레이(230)에 기입되기 전에, data1을 통하여 FIFO(252)에 기입될 수 있다.
FIFO들에서 버퍼링하는 이 기법은 다른 메모리 디바이스가 그의 FIFO와 내부 전송을 행하고 있는 동안에 하나의 메모리 디바이스와 동작을 수행함으로써 메모리 시스템의 전체 처리율을 증가시키도록 유리하게 이용될 수 있다. 예를 들면, 메모리 디바이스 #0는 그의 어레이로부터 데이터를 판독하도록 명령받을 수 있다. 그것이 그 데이터를 그의 어레이로부터 그의 FIFO로 이동시키는 동안에, 메모리 디바이스 #1은 그 자신의 어레이로부터 데이터를 판독하도록 명령받을 수 있다. 그때 유사한 판독 동작들이 다른 메모리 디바이스들에서 시작될 수 있다. 모든 판독 동작들이 시작되었을 때에는, 메모리 디바이스 #0는 그의 FIFO를 채웠을 수 있고, 그 데이터를 호스트 컨트롤러에 전송할 수 있다. 그 전송이 완료되면, 메모리 디바이스 #0는 그의 어레이로부터 다른 블록의 데이터를 판독하도록 명령받을 수 있고, 그것은 그 데이터를 그의 FIFO에 배치하기 시작할 것이다. 지금쯤은 이미, 메모리 디바이스 #1은 그의 FIFO를 채웠을 수 있고, 그 데이터를 호스트 컨트롤러에 송신할 수 있고 다른 블록의 데이터를 그의 FIFO 내에 판독하도록 명령받을 수 있다. 이 프로세스는 나머지 메모리 디바이스들이 모두 그들의 데이터를 호스트 컨트롤러에 전송할 때까지 그 나머지 메모리 디바이스들에서 계속될 것이다. 그때까지는, 메모리 디바이스 #0는 그의 제2 블록의 데이터를 그의 FIFO로부터 호스트 컨트롤러로 전송하도록 명령받을 수 있고, 프로세스는 반복될 수 있다. 상이한 메모리 디바이스들 간에 교대하는 이 프로세스는 모든 필요한 데이터가 전송될 때까지 계속될 수 있다. 기입 동작에 대해서도, 각 메모리 디바이스의 FIFO 내에 차례차례로 데이터를 기입하고, 다른 디바이스들이 호스트 컨트롤러로부터 그들의 데이터를 수신하고 있는 동안에 하나의 디바이스가 그의 FIFO로부터 그의 어레이 내에 데이터를 기입하게 함으로써 유사한 프로세스가 수행될 수 있다. 비록 이 프로세스는 메모리 디바이스들이 함께 데이지-체인된 순서로 그것들을 선택하는 것으로 기술되었지만, 어떤 동작들은 그 디바이스들을 다른 순서로 선택할 수 있다.
모든 내부 데이터 경로들은, 비록 도면에서는 단일 라인으로서 표시되어 있지만, 실제로는 복수의 병렬 라인들을 포함할 수 있고, 그 복수의 병렬 라인들은 일부 실시예들에서는 그 수가 메모리 디바이스들 사이의 병렬 데이터 라인들의 수와 같을 것이라는 것에 주목해야 한다. 유사하게, FIFO들(251 및 252), 레지스터들(261 및 262), 및 mux/demux(271)는 모두 필요한 수의 병렬 신호들을 처리하도록 구성될 수 있다.
도 3A, 3B, 및 3C는 본 발명의 실시예에 따른, 메모리 디바이스에 의해 수행되는 방법의 흐름도를 나타낸다. 도시된 흐름도(300)의 실시예에서, 메모리 디바이스는 310에서 명령을 수신한다. 그 명령은 몇 개의 상이한 종류의 명령들 중 하나일 수 있다. 만일 그 명령이, 315에서 판정되는 바와 같이, 다른 메모리 디바이스에 어드레싱되는 판독 명령이라면, 현재의 메모리 디바이스는 316에서 판독 통과 동작을 위해 그의 내부 멀티플렉서/디멀티플렉서(예를 들면, 도 2의 mux/demux(271))를 구성할 수 있다. 선택된 다운스트림 메모리 디바이스로부터의 판독 데이터가, 직접 또는 다른 다운스트림 디바이스를 통하여 간접적으로, 수신되면, 이 판독 데이터는 317에서 현재의 메모리 디바이스의 제어 회로를 통하여 업스트림으로 전달될 수 있다.
만일 그 명령이 320에서 판정되는 바와 같이 다른 디바이스에 대한 기입 명령이었다면, 현재의 메모리 디바이스는 321에서 통과 기입 동작을 위해 그의 mux/demux를 구성할 수 있다. 호스트 컨트롤러로부터의 기입 데이터가, 직접 또는 다른 업스트림 디바이스를 통하여 간접적으로, 수신되면, 이 기입 데이터는 322에서 현재의 메모리 디바이스의 제어 회로를 통하여 다운스트림으로 전달될 수 있다.
만일 그 명령이 325에서 판정되는 바와 같이 이 메모리 디바이스에 어드레싱되는 판독 명령이었다면, 프로세스는 도 3B에서 계속될 수 있다. 메모리 디바이스는 340에서 내부 판독을 위해 그의 mux/demux를 구성할 수 있다. 만일 345에서 판정되는 바와 같이 이전에 요청된 데이터가 FIFO에서 이용 가능하다면, 그 데이터는 350에서 그 FIFO로부터 다음 업스트림 디바이스로 송신될 수 있고, 그곳으로부터 그것은 호스트 컨트롤러에 통과될 수 있다. 만일 FIFO가 비어 있다면, 메모리 디바이스는 355에서 그 판독 명령을 이용하여 그 자신의 어레이로부터 그의 FIFO로 데이터의 전송을 트리거할 수 있다. 일단 메모리 디바이스가 350에서 그의 FIFO 데이터를 업스트림으로 전송하는 것을 완료하였거나, 355에서 그의 어레이로부터 그의 FIFO로 데이터를 전송하기 시작하였다면, 그것은 다음 명령을 대기하기 위해 도 3A의 'A'로 되돌아갈 수 있다. 355에서의 동작은 메모리 디바이스가 A로 되돌아간 후에도 완료까지 계속될 수 있다.
도 3A를 참조하여, 만일 310에서 표시된 명령이, 330에서 판정되는 바와 같이, 이 메모리 디바이스에 어드레싱된 기입 명령이었다면, 프로세스는 도 3C에서 계속될 수 있다. 메모리 디바이스는 360에서 내부 기입을 위해 그의 mux/demux를 구성할 수 있다. 만일 FIFO가 365에서 판정되는 바와 같이 여전히 이전 기입 동작으로부터의 데이터를 포함하고 있기 때문에 더 많은 데이터를 수신할 준비가 되어 있지 않다면, 메모리 디바이스는 (남아 있는 데이터를 FIFO로부터 어레이로 계속해서 기입하는 것 외에) 아무것도 하지 않고, 다른 명령을 대기하기 위해 A로 되돌아갈 수 있다. 만일 FIFO가, 365에서 판정되는 바와 같이, 데이터를 수신할 준비가 되어 있다면, 그 데이터는 375에서 업스트림으로부터 수신되어 FIFO에 기입될 수 있다. 일단 데이터가 FIFO에 있다면, 그 데이터는 380에서 어레이에 기입되기 시작할 수 있다. 일단 375에서 FIFO로의 새로운 데이터의 전송이 완료되었고, 380에서 어레이로의 데이터의 전송이 시작되었다면, 메모리 디바이스가 다른 명령을 대기하기 위해 A로 되돌아간 후에도, 어레이로의 데이터의 전송은 완료까지 계속될 수 있다.
만일 310에서 방금 설명한 4개의 명령들 이외의 어떤 것인 명령이 수신되었다면, 메모리 디바이스는 어떤 것이든 335에서 요구되는 다른 처리(설명되지 않음)로 이동할 수 있다. 일부 실시예들에서, 메모리 디바이스는 호스트 컨트롤러로부터 명령을 수신할 때 상기 설명된 옵션들 중 어떤 것도 수행할 준비가 되어 있지 않다면 '비지'(busy) 또는 '에러'(error) 상태를 반환할 수 있다.
도 4는 본 발명의 실시예에 따른, 호스트 컨트롤러에 의해 수행되는 방법의 흐름도를 나타낸다. 일부 실시예들에서, 이것은 도 1의 호스트 컨트롤러(110)일 수 있다. 도시된 흐름도(400)에서, 호스트 컨트롤러는 410에서 복수의 메모리 디바이스들 중 제1 메모리 디바이스를 선택하고 420에서 그 메모리 디바이스에 어드레싱되는 명령을 데이지-체인 버스를 통하여 송신한다. 설명의 단순성을 위하여, 여기서는 다양한 디바이스들 0 내지 n을 순차적으로 어드레싱하는 것을 나타내기 위해 X=0 내지 X=n의 증가하는 값들이 사용되지만, 다른 실시예들은 다양한 메모리 디바이스들을 식별 및 선택하기 위해 다른 절차들을 이용할 수 있다. 만일 선택된 메모리 디바이스가 430에서 판정되는 바와 같이 데이터를 전송할 준비가 되어 있다면, 호스트 컨트롤러는 440에서 데이터 전송을 수행할 수 있다. '데이터를 전송할 준비가 되어 있다'(ready to transfer data)는 것은 (판독 명령의 경우에) 선택된 메모리 디바이스가 호스트 컨트롤러에 전송할 준비가 되어 있는 그의 FIFO 안에 데이터를 갖고 있거나, 또는 (기입 명령의 경우에) 선택된 메모리 디바이스가 호스트 컨트롤러로부터 데이터를 수신할 준비가 되어 있는 이용 가능한 FIFO를 갖고 있다는 것을 의미한다. 데이터 전송 후에(또는 아무런 데이터도 전송되지 않았다면 즉시), 호스트 컨트롤러는 450에서 다음 메모리 디바이스(X=X+1)를 선택하고 그 새로이 선택된 메모리 디바이스에 대하여 프로세스를 반복한다. 460에서 판정되는 바와 같이, 모든 의도된 메모리 디바이스들과 이런 식으로 통신한 후에, 호스트 컨트롤러는 제1 메모리 디바이스와 동작들을 계속하고 더 많은 판독 또는 기입 데이터에 대하여 시퀀스를 반복할 수 있다. 470에서 판정되는 바와 같이 모든 전송들이 완료되면, 호스트 컨트롤러는 다른 처리에서 계속할 수 있다. 일부 실시예들에서, 판독 동작의 경우에, 호스트 컨트롤러로의 데이터 전송들로부터의 모든 데이터는 480에서 단일 블록의 데이터로 정확히 어셈블될 수 있다. 미래의 데이터 전송들은 410에서 나중에 다시 시작될 수 있다. 유사하게, 기입 동작의 경우에, 한 블록의 데이터는 처음에 다양한 부분들로 분리될 수 있고, 그 각각은 다양한 메모리 디바이스들 내의 다양한 FIFO들에 개별적으로 송신된다.
전술한 설명은 제한이 아니라 설명을 위한 것으로 의도되어 있다. 이 기술의 숙련자들은 다양한 변형들을 머리에 떠올릴 것이다. 그러한 변형들은 본 발명의 다양한 실시예들에 포함될 것이고, 그 다양한 실시예들은 다음의 청구항들의 정신 및 범위에 의해서만 제한된다.

Claims (19)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 데이지-체인 방식으로 접속된 제1 및 제2 비휘발성 메모리 디바이스들의 동작들을 제어하는 컨트롤러를 포함하는 장치로서,
    상기 컨트롤러는,
    제1 데이터를 상기 컨트롤러에 전송하도록 상기 제1 디바이스에 제1 명령을 발행하고;
    상기 제1 명령을 발행한 이후에, 제2 데이터를 상기 컨트롤러에 전송하도록 상기 제2 디바이스에 제2 명령을 발행하고;
    상기 제2 명령을 발행한 이후에, 상기 제1 디바이스로부터 상기 제1 데이터의 제1 부분을 수신하고;
    상기 제1 데이터의 상기 제1 부분을 수신한 이후에, 상기 제2 디바이스로부터 상기 제2 데이터의 제1 부분을 수신하고;
    상기 제2 데이터의 상기 제1 부분을 수신한 이후에, 상기 제1 디바이스로부터 상기 제1 데이터의 제2 부분을 수신하고;
    상기 제1 데이터의 상기 제2 부분을 수신한 이후에, 상기 제2 디바이스로부터 상기 제2 데이터의 제2 부분을 수신하는 장치.
  12. 제11항에 있어서,
    상기 제1 및 제2 명령들로서 판독 명령들을 발행한 이후에, 상기 제1 데이터의 상기 제1 및 제2 부분들 및 상기 제2 데이터의 상기 제1 및 제2 부분들을 단일 블록의 데이터로 어셈블하는 것을 더 포함하는 장치.
  13. 제11항에 있어서,
    상기 제1 및 제2 명령들로서 기입 명령들을 발행하기 전에, 단일 블록의 데이터를 상기 제1 및 제2 데이터의 상기 제1 및 제2 부분들로 분리하는 것을 더 포함하는 장치.
  14. 메모리 인터페이싱 방법으로서,
    제1 데이터를 컨트롤러에 전송하도록 상기 컨트롤러로부터 제1 메모리 디바이스로 제1 명령을 발행하는 단계;
    상기 제1 명령을 발행한 이후에, 제2 데이터를 상기 컨트롤러에 전송하도록 상기 컨트롤러로부터 제2 디바이스로 제2 명령을 발행하는 단계;
    상기 제2 명령을 발행한 이후에, 상기 컨트롤러에 의해, 상기 제1 디바이스로부터 상기 제1 데이터의 제1 부분을 수신하는 단계;
    상기 제1 데이터의 상기 제1 부분을 수신한 이후에, 상기 컨트롤러에 의해, 상기 제2 디바이스로부터 상기 제2 데이터의 제1 부분을 수신하는 단계;
    상기 제2 데이터의 상기 제1 부분을 수신한 이후에, 상기 컨트롤러에 의해, 상기 제1 디바이스로부터 상기 제1 데이터의 제2 부분을 수신하는 단계; 및
    상기 제1 데이터의 상기 제2 부분을 수신한 이후에, 상기 컨트롤러에 의해, 상기 제2 디바이스로부터 상기 제2 데이터의 제2 부분을 수신하는 단계
    를 포함하는 메모리 인터페이싱 방법.
  15. 제14항에 있어서,
    상기 제1 및 제2 명령들로서 판독 명령들을 발행한 이후에, 상기 컨트롤러에서, 상기 제1 데이터의 상기 제1 및 제2 부분들 및 상기 제2 데이터의 상기 제1 및 제2 부분들을 단일 블록의 데이터로 어셈블하는 단계를 더 포함하는 메모리 인터페이싱 방법.
  16. 제14항에 있어서,
    상기 제1 및 제2 명령들로서 기입 명령들을 발행하기 전에, 상기 컨트롤러에서, 단일 블록의 데이터를 상기 제1 및 제2 데이터의 상기 제1 및 제2 부분들로 분리하는 단계를 더 포함하는 메모리 인터페이싱 방법.
  17. 하나 이상의 프로세서들에 의해 실행될 경우,
    제1 데이터를 컨트롤러에 전송하도록 상기 컨트롤러로부터 제1 메모리 디바이스로 제1 명령을 발행하는 단계;
    상기 제1 명령을 발행한 이후에, 제2 데이터를 상기 컨트롤러에 전송하도록 상기 컨트롤러로부터 제2 디바이스로 제2 명령을 발행하는 단계;
    상기 제2 명령을 발행한 이후에, 상기 컨트롤러에 의해, 상기 제1 디바이스로부터 상기 제1 데이터의 제1 부분을 수신하는 단계;
    상기 제1 데이터의 상기 제1 부분을 수신한 이후에, 상기 컨트롤러에 의해, 상기 제2 디바이스로부터 상기 제2 데이터의 제1 부분을 수신하는 단계;
    상기 제2 데이터의 상기 제1 부분을 수신한 이후에, 상기 컨트롤러에 의해, 상기 제1 디바이스로부터 상기 제1 데이터의 제2 부분을 수신하는 단계; 및
    상기 제1 데이터의 상기 제2 부분을 수신한 이후에, 상기 컨트롤러에 의해, 상기 제2 디바이스로부터 상기 제2 데이터의 제2 부분을 수신하는 단계
    를 포함하는 방법을 수행하게 하는 명령어들을 포함하는 컴퓨터 판독 가능한 기록 매체.
  18. 제17항에 있어서,
    상기 방법은, 상기 제1 및 제2 명령들로서 판독 명령들을 발행한 이후에, 상기 컨트롤러에서, 상기 제1 데이터의 상기 제1 및 제2 부분들 및 상기 제2 데이터의 상기 제1 및 제2 부분들을 단일 블록의 데이터로 어셈블하는 단계를 더 포함하는 컴퓨터 판독 가능한 기록 매체.
  19. 제17항에 있어서,
    상기 방법은, 상기 제1 및 제2 명령들로서 기입 명령들을 발행하기 전에, 상기 컨트롤러에서, 단일 블록의 데이터를 상기 제1 및 제2 데이터의 상기 제1 및 제2 부분들로 분리하는 단계를 더 포함하는 컴퓨터 판독 가능한 기록 매체.
KR1020097012859A 2006-12-21 2007-11-21 비휘발성 메모리용 고속 인터페이스 KR101087419B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/644,270 US7650459B2 (en) 2006-12-21 2006-12-21 High speed interface for non-volatile memory
US11/644,270 2006-12-21
PCT/US2007/024346 WO2008079189A1 (en) 2006-12-21 2007-11-21 High speed interface for non-volatile memory

Publications (2)

Publication Number Publication Date
KR20090080568A KR20090080568A (ko) 2009-07-24
KR101087419B1 true KR101087419B1 (ko) 2011-11-25

Family

ID=39544599

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097012859A KR101087419B1 (ko) 2006-12-21 2007-11-21 비휘발성 메모리용 고속 인터페이스

Country Status (5)

Country Link
US (1) US7650459B2 (ko)
KR (1) KR101087419B1 (ko)
CN (2) CN102156682B (ko)
TW (1) TWI379302B (ko)
WO (1) WO2008079189A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070165457A1 (en) * 2005-09-30 2007-07-19 Jin-Ki Kim Nonvolatile memory system
EP1932158A4 (en) 2005-09-30 2008-10-15 Mosaid Technologies Inc MEMORY WITH OUTPUT CONTROL
US7652922B2 (en) 2005-09-30 2010-01-26 Mosaid Technologies Incorporated Multiple independent serial link memory
WO2008101316A1 (en) * 2007-02-22 2008-08-28 Mosaid Technologies Incorporated Apparatus and method for using a page buffer of a memory device as a temporary cache
US8086785B2 (en) 2007-02-22 2011-12-27 Mosaid Technologies Incorporated System and method of page buffer operation for memory devices
US8683126B2 (en) * 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
KR101412524B1 (ko) * 2008-01-31 2014-06-25 삼성전자주식회사 메모리 장치, 메모리 카드 시스템 및 그것의 카드 인식방법
US20110047318A1 (en) * 2009-08-19 2011-02-24 Dmitroca Robert W Reducing capacitive load in a large memory array
WO2011070747A1 (ja) * 2009-12-07 2011-06-16 パナソニック株式会社 不揮発性記憶装置、ホスト装置、記憶システム、データ通信方法およびプログラム
US8208484B2 (en) * 2010-01-11 2012-06-26 Telefonaktiebolaget L M Ericsson (Publ) Forwarding a packet within a router using fragments over an interconnect
US8843692B2 (en) 2010-04-27 2014-09-23 Conversant Intellectual Property Management Inc. System of interconnected nonvolatile memories having automatic status packet
US8463959B2 (en) 2010-05-31 2013-06-11 Mosaid Technologies Incorporated High-speed interface for daisy-chained devices
US8856482B2 (en) 2011-03-11 2014-10-07 Micron Technology, Inc. Systems, devices, memory controllers, and methods for memory initialization
US9021178B2 (en) * 2011-05-02 2015-04-28 Western Digital Technologies, Inc. High performance path for command processing
TW201347051A (zh) 2012-01-27 2013-11-16 Mosaid Technologies Inc 連接記憶體晶粒形成記憶體系統的方法與設備
US9471484B2 (en) 2012-09-19 2016-10-18 Novachips Canada Inc. Flash memory controller having dual mode pin-out
CN104937577B (zh) * 2013-03-15 2018-11-30 慧与发展有限责任合伙企业 支持扩展写入的存储器模块控制器
CN104216850B (zh) * 2013-05-31 2018-06-19 鸿富锦精密电子(天津)有限公司 接口传输设备
US10216685B1 (en) * 2017-07-19 2019-02-26 Agiga Tech Inc. Memory modules with nonvolatile storage and rapid, sustained transfer rates
CN115801541B (zh) * 2022-11-18 2024-03-22 湖南长银五八消费金融股份有限公司 全链路追踪平台中慢访问告警方法、装置和计算机设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050120163A1 (en) 2003-12-02 2005-06-02 Super Talent Electronics Inc. Serial Interface to Flash-Memory Chip Using PCI-Express-Like Packets and Packed Data for Partial-Page Writes

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860080A (en) * 1996-03-19 1999-01-12 Apple Computer, Inc. Multicasting system for selecting a group of memory devices for operation
CN1188279A (zh) * 1996-11-26 1998-07-22 村田机械株式会社 主机和信息处理装置
US6378018B1 (en) * 1997-10-10 2002-04-23 Intel Corporation Memory device and system including a low power interface
US6317352B1 (en) * 2000-09-18 2001-11-13 Intel Corporation Apparatus for implementing a buffered daisy chain connection between a memory controller and memory modules
US6658509B1 (en) * 2000-10-03 2003-12-02 Intel Corporation Multi-tier point-to-point ring memory interface
US6996644B2 (en) * 2001-06-06 2006-02-07 Conexant Systems, Inc. Apparatus and methods for initializing integrated circuit addresses
US20050086413A1 (en) * 2003-10-15 2005-04-21 Super Talent Electronics Inc. Capacity Expansion of Flash Memory Device with a Daisy-Chainable Structure and an Integrated Hub
US20060129701A1 (en) * 2004-12-15 2006-06-15 Shekoufeh Qawami Communicating an address to a memory device
US20070165457A1 (en) * 2005-09-30 2007-07-19 Jin-Ki Kim Nonvolatile memory system
US20070076502A1 (en) * 2005-09-30 2007-04-05 Pyeon Hong B Daisy chain cascading devices

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050120163A1 (en) 2003-12-02 2005-06-02 Super Talent Electronics Inc. Serial Interface to Flash-Memory Chip Using PCI-Express-Like Packets and Packed Data for Partial-Page Writes

Also Published As

Publication number Publication date
US20080155207A1 (en) 2008-06-26
US7650459B2 (en) 2010-01-19
CN102156682A (zh) 2011-08-17
WO2008079189A1 (en) 2008-07-03
CN102156682B (zh) 2013-03-06
TW200832415A (en) 2008-08-01
TWI379302B (en) 2012-12-11
KR20090080568A (ko) 2009-07-24
CN101606137A (zh) 2009-12-16
CN101606137B (zh) 2015-01-14

Similar Documents

Publication Publication Date Title
KR101087419B1 (ko) 비휘발성 메모리용 고속 인터페이스
KR100633828B1 (ko) 프리페치 길이보다 짧은 버스트 길이를 갖는 메모리 시스템
US7567471B2 (en) High speed fanned out system architecture and input/output circuits for non-volatile memory
KR101145784B1 (ko) 반도체 메모리 장치 및 그를 포함하는 메모리 시스템
KR100765786B1 (ko) 플래시 메모리 시스템, 그 프로그램을 위한 호스트 시스템및 프로그램 방법
JP4805351B2 (ja) Dramの並列処理を向上するシステム及び方法
CN103811080B (zh) 存储器测试系统以及存储器测试方法
CN108475518B (zh) 存储器装置
JP2007087388A (ja) メモリコントローラ及びそれを含んだデータ処理システム
EP3507803B1 (en) Memory component with input/output data rate alignment
CN104425041A (zh) 能够对多个存储器进行独立控制的测试装置
CN105023617A (zh) 存储器件、存储系统和操作存储器件的方法
US20130275628A1 (en) High speed interface for daisy-chained devices
CN102467953B (zh) 半导体存储装置及包括半导体存储装置的半导体系统
KR100761374B1 (ko) 플래시 메모리 제어 방법 및 장치
CN110874190A (zh) 闪存控制器及方法
KR100438736B1 (ko) 어드레스 라인을 이용해 데이터 쓰기를 수행하는 메모리제어 장치
TW202223671A (zh) 記憶體系統
KR102433013B1 (ko) 메모리 모듈 및 이를 갖는 솔리드 스테이트 디스크
CN102522113A (zh) 一种sdram桥接电路
US20240111449A1 (en) Cascaded memory system
JP2012018639A (ja) メモリシステムおよび不揮発性半導体メモリ
JP2022002164A (ja) 非順次的ページ連続リード
JP2013069362A (ja) 半導体記憶装置及びその制御方法

Legal Events

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

Payment date: 20141031

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151030

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161028

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171027

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee