KR20070060080A - 링 버스 구조와 플래시 메모리 시스템에서의 그의 용법 - Google Patents

링 버스 구조와 플래시 메모리 시스템에서의 그의 용법 Download PDF

Info

Publication number
KR20070060080A
KR20070060080A KR1020077003495A KR20077003495A KR20070060080A KR 20070060080 A KR20070060080 A KR 20070060080A KR 1020077003495 A KR1020077003495 A KR 1020077003495A KR 20077003495 A KR20077003495 A KR 20077003495A KR 20070060080 A KR20070060080 A KR 20070060080A
Authority
KR
South Korea
Prior art keywords
data
bus
node
memory
command
Prior art date
Application number
KR1020077003495A
Other languages
English (en)
Inventor
알란 웰시 신클레어
Original Assignee
쌘디스크 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 쌘디스크 코포레이션 filed Critical 쌘디스크 코포레이션
Publication of KR20070060080A publication Critical patent/KR20070060080A/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/40Bus structure
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Read Only Memory (AREA)
  • Bus Control (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

시스템과 상기 시스템에 이용된 집적 회로 칩이 그들 사이의 데이터와 명령 전송을 위해 개별 소자의 노드(node)를 상호 연결하는 링(ring)의 형태로 버스를 이용한다. 기술된 예를 든 시스템은, 링 버스에 의해 시스템 제어기에 연결되고 서로 연결된 하나 이상의 재-프로그램 가능한 비-휘발성 메모리 셀 어레이(cell array)를 구비한 메모리이다.
링 버스, 데이터 온(오프) 명령, 목적지 노드, ECC, 상태 머신

Description

링 버스 구조와 플래시 메모리 시스템에서의 그의 용법{RING BUS STRUCTURE AND ITS USE IN FLASH MEMORY SYSTEMS}
본 발명은 전자 시스템의 구성들간에 통신하기 위한 버스 구조 및 그 동작에 관한 것으로, 더 상세하게는, 특히 플래시 메모리 시스템의 링 버스의 용법에 관한 것이다.
현재 사용되는, 특히 소형의 팩터(factor) 카드 형태인 재-프로그램가능한 비휘발성 메모리 제품이 절찬리에 다수 시판중이고, 그것은 하나 이상의 집적된 회로 칩상에 형성된 플래시 EEPROM(Electrically Erasable and Programmable Read Only Memory)의 어래이를 사용한다. 분리된 집적 회로 칩상에 반드시는 필요로 하지 않는 메모리 제어기는 그 카드를 삭제가능하게 연결시킨 호스트와 인터페이스하고 그 카드 내에서 메모리 어래이의 동작을 제어한다. 그런 제어기는 하나의 마이크로프로세서, 몇 개의 비휘발성 판독 전용 메모리(ROM), 휘발성 랜덤 액세스 메모리(RAM) 및 하나 이상의 특정 회로를 통상 포함하고, 데이터가 프로그래밍 및 판독하는 동안 제어기를 통해 통과할 때 그 특정 회로는 그 데이터로부터 에러 정정 코드(ECC)를 계산한다.
플래시 메모리를 이용하는 시판중인 이용가능한 카드는 CompactFlashTM(CF)카드, 멀티미디어 카드(MMC), SD(Secure Digital) 카드, miniSD 카드, 스마트미디어 카드, xD-픽쳐(Picture) 카드, 트랜스플래시 카드 및 메모리 스틱 카드이다. 호스트들은 퍼스널 컴퓨터, 노트북 컴퓨터, PDAs(personal digital assistants), 각종 데이터 통신 장치, 디지털 카메라, 셀룰러 폰, 휴대용 오디오 플레이어, 자동 음성 시스템, 및 이와 유사한 형태의 장치를 포함한다. 다수의 호스트들은 하나 이상의 시판중인 메모리 카드 형태를 수납하기 위해 하나 이상의 슬롯을 구비하고, USB(Universal Serial Bus) 리셉터클 등을 통해 카드 판독기에 연결할 수 있다. USB 플래시 드라이브에서는 호스트의 USB 리셉터클로의 직접 플러그에 의해 호스트를 드라이브 내의 메모리에 연결하는 것이 가능하게 된다. 메모리 카드 및 플래시 드라이브를 구현시킨 것 외에도, 플래시 메모리 시스템은 여러 형태의 호스트 시스템으로 대안적으로 실장될 수 있다. 그것 및 추가의 플래시 메모리 제품이 본 발명 출원의 양수인인 SanDisk Corporation에서 시판중이다.
일반적인 2개의 메모리 셀 어래이 구조는 시판중인 NOR 및 NAND로 기본적으로 구현되었다. 통상적인 NOR 어래이에서, 메모리 셀은 인접한 비트 라인 소스 및 드레인 확산간에 연결되고, 그 드레인 확산은 셀의 행을 따라 확장하는 워드 라인에 연결된 제어 게이트와 열 방향으로 확장한다. 메모리 셀은 소스 및 드레인간의 셀 채널 영역중 최소한 일부에 위치된 적어도 하나의 저장 소자를 포함한다. 그 저장 소자상의 프로그램된 전하 레벨은 셀의 동작 특성을 제어하여, 적정한 전압을 어드레스된 메모리 셀로 인가함으로써 판독될 수 있다. 메모리 시스템의 그 셀, 그들의 사용 방법의 예 및 그들을 제조하는 방법은 미국 특허 제 5,070,032호, 제 5,095,344호, 제 5,313,421호, 제 5,315,541호, 제 5,343,063호, 제 5,661,053호 및 제 6,222,762호로 허여되어 있다.
NAND 어래이는 개별 비트 라인 및 기준 전위 간에 하나 이상의 선택 트랜지스터와 함께 연결된 2개 이상의 메모리 셀(16 또는 32)의 직렬 스트링을 이용하여 셀의 열을 형성한다. 워드 라인은 대다수의 열 내의 셀에 걸쳐 확장한다. 열 내의 개별 셀은 스트링 내의 나머지 셀을 확실하게 터언 온 되게 함으로써 프로그래밍시 판독되고 검사되어 스트링을 통해 흐르는 전류가 어드레스된 셀에 저장된 전하 레벨에 따른다. 메모리 시스템의 일부로서의 NAND 구조 어래이 및 그 동작의 예는 미국 특허 제 5,570,315호, 제 5,774,397호, 제 6,046,935호, 제 6,522,580호 및 미국 특허 출원 공개 제 2003/014278호에 개시되어 있다.
앞서 참고로 된 특허에서 개시된 전류 플래시 EEPROM 어래이의 전하 저장 소자들은 대다수의 공통 전기 전도성 플로팅 게이트이다. 플래시 EEPROM 시스템 내에서 사용하는 대안 형태의 메모리 셀은 전도성 플로팅 게이트를 대신해서 비-전도성 유전 재료를 이용하여 전하를 비-휘발성 방식으로 저장한다. 유전 저장 소자를 사용하는 몇 개의 특정한 셀 구조 및 어래이가 미국 특허 출원 공개 제 2003/0109093호에서 Harari 등에 의해 설명된다. 모든 집적 회로 응용에서처럼, 집적 회로 기능을 구현하는 데 필요한 실리콘 기판 면적을 개별화할 필요성이 플래시 메모리 어래이에서 존재한다. 패키지의 주어진 크기의 메모리 카드 및 다른 형태의 저장 용량 을 증가시키거나 용량을 증가시키고 크기를 감소시키기 위해, 주어진 실리콘 기판 면적에 저장될 수 있는 디지털 데이터량을 증가시키는 것이 계속해서 원해오고 있다. 데이터의 저장 밀도를 증가시키는 하나의 방법은 메모리 셀당 및/또는 저장 유닛 또는 소자당 데이터 중 하나 이상의 비트를 저장한다. 그것은 저장 소자 전하 레벨 전압 범위의 윈도우를 2개 이상의 상태로 분할해서 수행된다. 플로팅 게이트 및 그 동작을 사용하는 다수 상태의 플래시 EEPROM 구조는 미국 특허 제 5,043,940호 및 제 5,172,338호에서 설명되고 상기 언급된 미국 특허 출원 공개 제 2003/0109093호에서 유전 플로팅 게이트를 사용하는 구조에 대해 설명된다. 다수 상태의 메모리 셀 어래이중 선택된 일부가 미국 특허 제 5,930,167호 및 제 6,456,528호에서 설명된 방식으로 여러 이유로 2개 상태(2진)로 또한 동작 될 수 있다.
플래시 메모리 셀이 재-프로그래밍 전에 삭제된다. 통상적인 플래시 메모리 셀 어래이의 메모리 셀이 함께 삭제되는 셀의 개별 블럭으로 분할된다. 즉, 그 블럭이 동시에 삭제할 수 있는 최소 셀 수인 삭제 유닛이다. 각 블럭이 데이터 중 하나 이상의 페이지를 통상 저장하고, 그 페이지는 프로그래밍 및 판독의 최소 단위이나, 하나 이상의 페이지가 메모리 셀 중 다른 보조-어래이 또는 플레인(plane)에서 프로그램되거나 판독될 수 있다. 각 페이지는 데이터 중 하나 이상의 섹터를 통상 저장하고, 호스트 시스템에 의해 그 섹터의 크기가 형성된다. 예시적인 섹터는 사용자 데이터인 512 바이트, 그 뒤에 자기 디스크 드라이브에 의해 설정된 표준 바이트 수, 플러스 그 사용자 데이터의 오버헤드 정보인 몇 개의 바이트 수 및/또 는 그 오버 헤드 정보를 저장하는 블럭이 있다. 그 메모리는 각 블럭 내에서 16, 32 또는 그 이상의 페이지로 통상적으로 구성되고, 데이터 중 하나 이상의 호스트 섹터를 각 페이지가 저장한다.
사용자 데이터를 메모리 어래이로 프로그래밍하고 사용자 데이터를 그 메모리 어래이로부터 판독하는 동안 병렬성의 정도(degree of parallelism)를 증가시키기 위해, 그 어래이가 자체의 데이터 레지스터 및 다른 회로를 포함하는, 플레인으로 일반적으로 불리우는, 보조-어래이로 통상 분할되어 병렬 동작으로 되므로 데이터의 섹터가 몇 개 또는 모든 플레인 각각으로 또는 그 플레인 각각으로부터 동시에 프로그램될 수 있다. 단일 집적 회로 상의 어래이가 플레인들로 물리적으로 분할되거나, 각 평면이 분리된 하나 이상의 집적 회로 칩으로부터 형성될 수 있다. 그런 메모리를 구현한 예가 미국 특허 제 5,798,968호 및 제 5,890,192호에서 설명된다.
그 메모리를 더 효율적으로 관리하기 위해, 블럭들은 가상 블럭 또는 메타블럭을 형성하기 위해 함께 링크될 수 있다. 즉, 각 메타블럭은 몇 개 또는 모든 플레인 각각으로부터 하나의 블럭을 포함하도록 형성된다. 그 메타블럭의 사용은 미국 특허 출원 공개 제 2002/0099904호에서 설명된다. 그 메타블럭이 데이터를 프로그래밍하고 판독하는 목적지로서 호스트의 논리 블럭 어드레스에 의해 식별된다. 유사하게, 메타블럭의 모든 블럭이 통상적으로 함께 삭제된다.
그 큰 블럭 및/또는 메타블럭으로써 동작된 메모리 시스템의 제어기는 호스트에 의해 그것에 부과된 다수의 기능을 수행하여 효율적인 동작을 유지한다. 반복 데이터 통합("가비지 수집")은 수행되어 메모리의 저장 용량을 효율적으로 이용한다. 제어기는 가비지 수집을 수행할 때 데이터를 메모리 내외로 이송하는 그 기본 기능을 잠시 보류하여, 잠재적으로 시스템 성능에 악영향을 미친다. 메모리 어래이 칩 자체의 데이터에 대한 제한된 복제가 미국 특허 출원 제 6,266,273호에 개시된다.
통상적인 플래시 메모리 시스템은 메모리 셀의 어래이 및 관련된 주변 회로를 각기 포함하는 하나 이상의 집적 회로 칩 및, 그 제어기를 포함하는 다른 직접 회로 칩을 포함한다. 어떤 응용에서, 제어기 및 메모리 어래이가 단일 칩 상에 포함된다. 어느 경우에는, 데이터, 어드레스, 명령 및 상태 정보는 모든 메모리 시스템 구성을 동작되게 연결하는 공통 양방향 시스템 버스를 통해 제어기 및 하나 이상의 플래시 메모리 셀 어래이, 보조-어래이, 플레인 또는 집적 회로 칩간에 전달된다.
플래시 메모리 시스템의 동작 속도가 그 버스의 사용으로 인해 제한된다. 단일 버스가 오히려 길게 되므로, 시스템 동작 주파수가 버스에 원래 존재하는 대용량성 부하 및 왕복 지연으로 제한된다. 제어기 및 플래시 메모리칩들 중 하나 간의 버스만을 통해 전달이 이루어진다. 그 버스가 시스템의 소정의 위치들 간에 데이터중 하나의 유닛을 송신할 때, 시스템의 다른 구성은 데이터 이송용 버스를 사용할 수 없다. 메모리 셀의 분리된 유닛들간에는(즉, 분리된 어래이들, 보조-어래이들, 플레인들 또는 칩들간에는) 데이터를 직접적으로 이송하지 못한다. 오히려, 그러한 데이터 이송에서는 버퍼 메모리 내의 일시적인 저장을 위해 공통 버스를 통해 데이터를 제어기에 통과하는 단계가 이송의 일부로서 통상적으로 포함된다.
그러므로, 본 발명에서 설명되는 종래의 버스에 대한 개선점을 설명하면, 제어기, 및 메모리 시스템의 모든 메모리 셀 어래이, 보조-어래이, 플레인 및 집적 회로 칩들이 루프 또는 링에서 개별 버스 인터페이스 회로(노드들)를 통해 서로에 대해 연결된다는 것이다. 노드들간의 링 버스의 세그먼트는 개별적으로 구동되어, 각 구동된 세그먼트의 전기용량을 상당히 감소시켜서 허여가능한 버스 동작 주파수를 증가시킨다. 메모리 셀 어래이들, 보조-어래이들, 플레인들 및 칩들간에 뿐만아니라 그들중 일부 및 제어기간에 직접적으로 데이터가 전달될 수 있다. 그러나, 전달되는 데이터가 제어기를 통해 먼저 송신할 필요는 없다. 그 버스는 루프 주위의 단일 방향으로 이송된 폐쇄된 루프 및 데이터, 명령 및 상태 정보를 양호하게 형성한다. 데이터는 그것이 발생한 노드로의 링 주위로 완전히 이송되고, 그 지점에서 이송 후의 데이터의 유효성이 선택적으로 확인된다. 본 발명에서 설명된 링 버스가 상기 배경 기술에서 설명된 것과 같은 종래의 메모리 시스템에서 사용된 종래의 버스에 대해 대체된다.
양호한 구현예에서, 시스템 제어기의 단일 매스터 노드는 링 버스에 의해 연결된 모든 다른 노드의 동작을 제어한다. 제어기에 의해 생성된 특정한 명령은 그 명령으로 하여금 어드레스된 노드만에 의해 동작되게 하는 추가된 노드 어드레스에 의해 하나 이상의 노드로 어드레스된다. 초기화 및 환경 설정 명령과 같은 일반적인 명령은 모든 노드에 의해 수락된다. 노드들간에 버스 주위로 이송된 데이터에 앞서서, 노드들이 특정한 이송을 수용하기 위해 셋 업 된다. 예를 들어, 하나의 메모리 유닛으로부터 데이터를 다른 것으로 이송하는 경우에, 그 데이터는 소스 유닛으로부터 그 노드에 연결된 레지스터로 판독되고 그 목적지 노드는 그 데이터를 수신하기 위해 구성된다. 연속된 이송 명령에 의해 계획된 이송이 그 명령에 의해 조건붙여진 소스 및 목적지 노드간에 발생한다. 그 시스템 및 동작의 이점은 메모리의 유닛들 간에 뿐만 아니라 메모리 및 제어기 노드의 유닛 간에 데이터를 직접 이송하게 하는 능력을 갖는다는 것이다.
링 버스의 동작에서 포함될 수 있는 다른 특성은 시분할 다중화이다. 즉, 데이터가 할당된 시간 슬롯 또는 프레임으로 버스 주위로 이송된다. 데이터의 다수의 프레임은 동시에 이송될 수 있다. 사용된 시간 슬롯수가 동시 이송되는 데이터 프레임수와 같도록 동적으로 조절된다. 데이터 프레임이 링 주위에서 같은 소스 또는 목적지 노드를 가질 필요는 없다. 버스 노드로 연결된 메모리 시스템 구성의 데이터 대역폭 요건은 버스만큼 높을 필요는 없는 데, 왜냐하면 데이터가 링 버스의 데이터 전송율의 일부인 개별 프레임율에서 특수한 구성으로 또는 그 구성으로부터 이송되기 때문이다. 특정한 예에서, 데이터 이송용 노드를 셋 업하는 데 사용된 명령이 시분할 다중화없이 부착된 의도적인 노드의 어드레스로써 버스 주위로 전달된다. 그 계획된 데이터 이송은 다수의 시간 슬롯을 사용해서 이루어진다. 상태 정보가 시간 슬롯중 하나를 사용해서 버스 주위로 또한 전달된다.
부가적인 특성으로서, 메모리로부터 판독된 데이터의 보전성은 제어기에 의해, 즉 가장 편리하게는 에러 정정 코드(ECC)를 실행하는 것에 전용화된 회로에 의해, 통상 제공된 에러 정정 기능을 통해 데이터를 통과시켜 쉽게 확인될 수 있다. 그 데이타가 링 주위로 완전히 이송되는 경우에, 소스 및 목적지 노드가 제어기의 그것에 대해 어디에 위치되든 간에, 그들은 제어기 노드를 통해 항시 통과한다. 데이터 이송을 발생하는 노드는, 그 데이터가 전달로 오류로 되지 않도록 하는 것을 확정하기 위해, 버스상에 위치된 데이터에 의해 버스 주위로 이동한 후 수신된 데이터를 또한 선택적으로 확인할 수 있다.
또 다른 특성으로서, 제어기의 각종 기능 및 구성은 노드를 통해 시스템 링 버스에 개별적으로 또한 연결될 수 있고, 프로세서, 버퍼 메모리 및 ECC 회로를 포함한다. 노드 대 노드 명령 및 데이터 이송의 유연성 및 병렬 계산이 더 증가된다. 종래의 제어기 버스는, 메모리 시스템의 다른 구성이 포함되지 않을 때, 그 효율적인 동작을 위해 제어기 구성중에 명령 및 데이터의 이송용으로 직접적으로 또한 포함될 수 있다.
기존의 종래의 제어기와 백워드 호환성을 제공하기 위해, 메모리 셀 어래이로 집적된 회로 칩은, 링 버스를 사용하기 위해 적응된 제어기를 사용할 때, 상기 설명된 링 버스가 또한 연결할 수 있는 종래의 버스와 연결하기 위한 인터페이스를 갖는다. 그 이중 모드 버스 인터페이스에 의해 플래시 메모리 칩이 어떤 제어기 형태를 갖는 메모리 시스템에서도 사용될 수 있다.
집적 회로 메모리 칩의 하나의 구현예에서, 하나 이상의 메모리 데이터 노드가 외부 입력 및 출력 버스 접촉부 간에 직렬로 연결된다. 하나 이상의 메모리 칩이 그 버스 접촉부들을 함께 연결함에 의해 제어기 칩과 직렬로 연결해서 그들을 폐쇄 루프에 연결한다. 다수의 메모리 칩이 하나의 칩의 버스 출력에 연결되고 그 버스 출력이 다른 메모리 칩의 버스 입력에 연결된다. 단일 인쇄 회로 기판(PCB)을 사용해서 다른 수의 메모리 칩을 갖는 메모리 카드를 편리하게 제조하기 위해, 개별 메모리 칩이 2세트의 버스 출력 패드로 설치되고, 그 중 하나는 메모리 칩과 직렬로 바로 옆과 연결되고 나머지 하나는 제어기 칩으로 복귀하는 버스 경로에 연결된다. 그런후, PCB에 부착된 각 메모리 칩의 버스 복귀 출력 패드가 복귀 버스 경로를 제어기에 1대 최대수의 메모리 칩으로 얼마든지 제공하는 PCB상에 단일 세트의 전도체에 연결된다. 복귀 버스 출력 패드는 메모리 칩 시리즈의 마지막에서 동작가능하게 되어 PCB상에서 복귀 경로 전도체와 동작되게 연결되는 반면에, 모든 다른 메모리 칩의 복귀 버스 출력 패드가 동작불능으로 된다. 오히려, 그 나머지 메모리 칩이 다른 메모리 칩의 버스 입력과 연결된 그 나머지 출력을 가지므로 메모리 칩 및 링 버스를 직렬연결되게 한다.
본 발명의 부가적인 특징, 장점 및 특성은 다음의 예시예의 설명에 포함되고, 첨부 도면을 참고로 설명된다. 본 발명의 각종 특징은 그 구성들간의 데이터 이송을 위해 고주파수 버스를 필요로 하는 광범위하고 다양한 메모리 시스템에서 구현될 수 있다. 또한, 본 발명의 다수의 특징 및 특성은 내부 버스를 이용하는 다른 형태의 전자 시스템에서 유사한 장점으로 구현될 수 있다.
본원에서 참고로 되는 모든 특허, 특허 출원, 논문 및 다른 형태의 공보는 본 발명에서 참고용으로만 사용된다.
도 1은 통상적인 버스 구조를 이용하는 대표적인 기존의 플래시 메모리 시스템의 블록도;
도 2는 링 버스 구조를 이용하는 플래시 메모리 시스템의 제1 실시예의 블록도;
도 3A, 3B 및 3C는 도 2의 시스템의 링 버스의 시분할 다중화 동작의 상이한 특징을 예시하는 타이밍 도;
도 4는 도 2의 시스템의 링 버스 데이터 인터페이스 블록의 회로도;
도 5는 도 2의 시스템의 링 버스 명령 인터페이스 블록의 회로도;
도 6A-6I는 도 2의 버스 시스템에서 그들의 이용을 예시하는 데 따른 하나의 대안과 8개의 다른 명령을 도시 한다;
도 7은 도 6A-6I의 명령을 이용함으로서 도 2의 링 버스 시스템의 동작을 예시하는 흐름도;
도 8은 도 2의 시스템에서 특정 데이터 전송의 예를 도시;
도 9는 도 8에 예시된 데이터 전송의 예를 실행하도록 도 6A-6I에 확인된 일련의 명령을 목록으로 기재;
도 10은 링 버스 구조(ring bus architecture)를 이용한 플래시 메모리 시스템의 제2 실시예의 블록도;
도 11은 링 버스 구조를 이용한 플래시 메모리 시스템의 제3 실시예의 블록도;
도 12는 링 버스 구조를 이용한 플래시 메모리 시스템의 제4 실시예의 블록 도;
도 13은 링 버스 구조를 이용한 플래시 메모리 시스템의 제5 실시예의 블록도;
도 14는 링 버스 구조를 이용한 플래시 메모리 시스템의 제6 실시예의 블록도;
도 15는 링 버스 구조를 이용한 플래시 메모리 시스템의 제7 실시예의 블록도이다.
통상적인 버스 시스템의 배경 기술
도 1에 대해, 종래의 버스를 구비한 대표적인 플래시 메모리 시스템이 예시되어 본 발명의 여러 특징과 양상의 다음의 내용에 대한 배경을 제공한다. 시스템 제어기는 도 1에 도시된 단일의 그러한 메모리 칩(15), 시스템 버스(13) 상에 하나 이상의 집적회로 메모리칩을 구비한 단일 집적 회로 칩(11) 위에서 보통 구현된다. 예시된 특별한 버스(13)는 데이터를 운반할 개별 세트의 전도체(17), 메모리 어드레스 세트(19), 제어와 상태 신호용 세트(21)를 포함한다. 대안으로, 단일 세트의 전도체는 이러한 세 개 기능 사이에 시간 공유(time shared)된다.
대표적인 제어기 칩(11)이 인터페이스 회로(25)를 통해 시스템 버스(13)와 인터페이스 하는 그 자체의 내부의 통상적인 버스(23)를 구비한다. 버스에 정상적으로 접속된 중 기능은 프로세서(27): 마이크로프로세서나 마이크로-제어기 같은), 시스템을 초기화(“부팅”)하는 코드를 포함하는 판독 전용 메모리(ROM: 29), 메모 리와 호스트 사이에 전송되는 버퍼 데이터에 주로 이용된 판독 전용 메모리(RAM: 31), 호스트와 메모리 사이에 제어기를 통과하는 데이터에 대한 에러 정정 코드(“ECC")를 계산하고 체크하는 회로(33)이다. 제어기 버스(23)는 회로(35)를 통해 호스트 시스템과 인터페이스하고 이것은 메모리 카드 내에 포함되는 도 1의 시스템의 경우에, 상기 카드의 외부 접점(37)을 통한다. 클록(39)이 접속되어 제어기(11)의 각각의 다른 소자에 의해 이용된다.
메모리 칩(15) 뿐만 아니라 시스템 버스(13)와 접속된 어떤 다른 것도 통상적으로 다중 서브-어레이(sub-array) 또는 플레인(plain)으로 조직된 일련의 메모리 셀을 포함하고, 그러한 두 개의 플레인(41, 43)이 간략화 되어 예시되지만 그러한 4 혹은 8개의 플레인이 더욱 대표적이다. 대안으로, 메모리 칩(15)이 플레인 으로 분할되지 않는 메모리 셀 어레이를 포함한다. 그러나 그렇게 분할될 때, 각각의 플레인은 각각에 독립적으로 작동 가능한 그 자체의 열 제어 회로(45, 47)를 구비한다. 상기 회로(45, 47)는 시스템 버스(13)의 어드레스 부분(19)으로부터 그들 각각의 메모리 셀 어레이의 어드레스를 수신하여 특정한 하나 이상의 각각의 비트 라인(49, 51)을 어드레스 하도록 그들을 디코딩한다. 플레인(41, 43)이 어드레스 버스(19) 위에서 수신된 어드레스에 응답하여 행 제어 회로(55)를 통해 어드레스 된 공통 워드 라인(word line: 53)을 갖는다. 메모리 셀 어레이(41, 43)의 NAND 구조가 현재 바람직하다. 소스 전압 제어회로(57, 59)가 역시 각각의 플레인에 연결되고, 이것은 p-층 전압 제어회로(61, 63)이다.
시스템 버스(13)의 데이터 부분(17)에 연결된 각각의 데이터 입력/출력 회 로(65, 67)를 통해 데이터가 플레인(41, 43)의 안과 밖으로 전달된다. 회로(65, 67)는 메모리 셀로의 양 쪽의 프로그래밍 데이터를 제공하고 각각의 열 제어 회로(45, 47)를 통해 플레인에 연결된 라인(69, 71)을 통해 그들 각각의 플레인의 메모리 셀로부터 데이터를 판독한다. 데이터를 프로그램하고, 판독하고 여러 가사(housekeeping) 일을 삭제 및 참여하도록 제어기(11)가 메모리 칩(15)의 작동을 제어하지만, 각각의 메모리 칩은 역시 그러한 기능을 실행하도록 제어기(11)로부터 명령을 실행하는 어떤 제어 회로를 포함한다. 인터페이스 회로(73)는 시스템 버스(13)의 제어 및 상태 부분(21)에 연결된다. 제어기로부터의 명령이 이러한 명령을 실행하기 위해 다른 회로의 특정 제어를 제공하는 상태 머신(state machine: 75)으로 제공된다. 제어 라인(77-81)이 도 1에 도시된 이러한 다른 회로와 상태 머신(75)을 연결한다. 상태 머신(75)으로부터의 상태 정보가 버스 부분(21)상에 제어기(11)로의 전송을 위해 인터페이스(73)로 라인(83)상에 통신한다.
제어기 칩(11)과 메모리 칩(15)의 여러 소자 사이의 통신이, 제어기와 메모리 칩이 병렬로 연결되는 단일 시스템 버스(13)상의 통신의 제한에 좌우되는 것을 도 1의 메모리 시스템에서 알 수 있다.
예를 든 링 버스(Ring Bus) 실시예의 상세한 설명
상기의 통상적인 버스(15) 대신에 링 버스(ring bus)를 이용한 메모리 시스템의 제 1 실시예가 도 2-9에 예시된다. 최초에 도2에 대해, 부가적인 메모리 칩 이외의 메모리 시스템으로부터의 제어기 집적 회로 칩(101)과 단일 메모리 칩(103)이 역시 포함될 수 있다. 메모리 칩(103)이 예시되어, 4개의 플레인(105-108)의 메 모리 셀을 갖지만 더 작은 하나 이상의 4개 메모리 플레인이 대신에 사용되기도 한다. 열 제어 회로(110-113)가 각각의 플레인(105-108)에 접속된다. 데이터가 두 개 데이터 레지스터(A 또는 B)중 하나를 선택하는 각각의 다중화 회로(115-118)를 통해 메모리 플레인(105-108)으로 및 로부터 프로그램 된다. 데이터 프로그램 동안에, 그의 다중화기(multiplexer)에 의해 선택된 특정 플레인 중 레지스터 A 또는 B의 하나에 저장된 데이터가 그 플레인으로 프로그램 된다. 유사하게, 데이터 판독 동안에 플레인으로부터 판독된 데이터가 그의 다중화기에 의해 선택된 레지스터 A나 B중 하나에 기록된다. 이러한 두 개 레지스터의 이용을 요하지 않고, 대신에 단일 레지스터가 사용될 수 있지만, 메모리 시스템의 동작에 어느 정도의 유연성과 병렬을 부가한다. 병렬 및 제어회로(121)는 도 1의 시스템의 제어 회로와 상태 머신(75)에 유사한 기능을 제공한다.
도 2의 예에서, 메모리 어레이 플레인(105-108)의 각각이 링 버스 인터페이스 노드(123-126)의 각각을 통해 플레인으로 프로그램 되도록 하거나 플레인 으로부터 판독된 데이터를 통신한다. 각 플레인의 양 쪽 데이터 레지스터(A, B)가 그 플레인에 대해 노드(node)와 전송된다. 제어기(101)로부터의 명령이 링 버스 인터페이스 노드(127)에 의해 수신되고 상태 신호(state signals)가 동일 노드를 통해 제어기로 다시 보내진다. 상기 노드(127)는 메모리 집적 회로 칩(103)의 제어 회로(121)와 접속한다. 부가적인 메모리 칩이 시스템(도 2에 미도시)에 포함된다면, 이러한 특정 예에서 각각의 그 자체의 명령 및 인터페이스 노드를 갖는다.
유사하게, 제어기 칩(101)이 커트롤러(130)와 접속된 링 버스 노드(128)를 포함한다. 노드 인터페이스(128: 도2)가 메모리 인터페이스(25)를 대체하는 것을 제외하고, 도 2의 제어기(130)가 도 1의 제어기(11)와 비슷하다.
데이터, 어드레스, 그들 사이의 명령 및 상태 정보를 전달하기 위해 노드(123-128)가 루프(loop)에서 함께 연결된다. 상기 루프는 제어기(130)로부터 명령을 운반한 다른 라인(135)과 데이터를 나르는 하나의 라인(133)을 갖는 링 버스에 의해 형성된다. 대안으로, 정보 전달 대역(bandwidth)을 늘리기 위해 두 개 이상의 데이터 라인이 사용되거나/되고 두 개 이상의 명령 라인이 링 버스에 포함될 수 있지만, 이것은 좀 더 복잡한 버스 노드 회로와 동작을 희생하여 나온다. 노드에 클록 신호를 나르도록 다른 라인(137)이 버스에 포함된다. 대안으로, 자체-시간의(self-timed) 방식이 명령 라인(135)과 데이터 라인(133) 위의 정보에 대해 적용된다면 클록 라인이 생략된다.
도 2의 시스템이 파이프 라인(pipelined) 방식으로 링 버스 상에 데이터와 명령을 전달하도록 구동되고, 각각의 노드에서 바람직하게 유입된 하나 혹은 오직 몇 개의 클록 사이클이 지연된다. 데이터 라인, 명령 라인(135) 및 클록 라인(137)은 집적 회로 칩(101과 103) 위에 동일한 통로를 따르고, 동일한 지연이 3개 라인에서의 신호에 각각의 노드에서 유입된다. 정보는 오직 통상의 버스로 발생할 때 전체 버스 상에 존재하기 보다는 인접한 노드 사이에 버스의 세그먼트(segment)를 따라 지점마다 오직 전달되고, 그리하여 링 버스의 매우 높은 주파수 동작을 가능하게 한다. 버스 상의 신호는 가용한 전원 전압에 의해 설정된 크기로 완전히 계수적(디지털)이다. 그러나 더 높은 동작 주파수와 감소된 전원 소모는 대신에 적절한 고속 시그널링(신호 처리) 기술을 이용하여 얻어지고, 상기 기술은 낮은 전압 스윙 시그널링(swing signaling), 완전한 차등 시그널링, 의사(pseudo) 차등 시그널링, 이중 데이터 비율 또는 현재 모드의 드라이버의 이용 같은 것이다.
명령이 오직 제어기 노드(128)에서 발원하여 이것이 링 버스 상에서 단일 마스터(single master)를 만드는 것이 바람직하다. 명령 코드(command code)가 명령 라인(135)상에 제어기 노드(128)로부터 통신하여 하나 이상의 다른 노드(123-127)에 의해 실행된다. 명령의 실행을 위해 오직 단일 노드가 목표가 될 때(targeted), 노드의 해당 식별 코드가 동시에 데이터 라인(133)상에 전송된다. 다음에 목표가 되는 노드는 실행에 대한 명령을 수용하는 유일한 노드이다.
데이터 라인(133)상에서 전달된 데이터가 노드(123-128: 소스 노드: source node)의 어느 하나에서 발원하여 다른 노드(목적지 노드)의 어느 하나 혹은 그 이상으로 향한다. 그러한 데이터 전달 전에, 소스 및 목적지 노드가 그에 대해 구현된다. 다음에 링 버스 주위에 데이터의 전달이 일어난다. 전송되고 있는 데이터는 전체 링 버스 주위를 여행하여 다시 원래 노드로 복귀한다. 이것은 전달되는 데이터가 그렇게 하도록 구현되는 어떤 다른 노드에 의해 판독될 수 있다는 것을 의미하고, 이것은 노드가 ECC의 이용으로 데이터의 유효성(validity)을 체크한다. 이것은 역시 원래의 노드가 링 버스 주위에 전송하는 동안에 일어나는 에러에 대해 수신된 데이터의 체크를 가능하게 하고, 이것은 원래 전송된 데이터와의 비교나 용장성 패리티 비트의 사용으로 이루어진다.
대부분의 경우에 바람직한 도 2의 시스템의 하나의 특정한 동작에서, 데이터 가 프레임 또는 데이터 라인(133)상의 링 버스 주위에서 전달되고, 시분할 다중화를 이용한다. 이것은 두 개 이상의 다른 채널의 데이터의 링 버스 주위에 동시 전송을 허용하고, 다른 데이터 섹터 같은 것은 다른 소스 및/또는 목적지 노드를 갖는다. 데이터의 각각의 전달에 대해 이용되는 시간 슬롯(time slots)의 번호가 선택되어 동시 데이터 전송이 일어나도록 한다. 이것은 완전히 링 버스의 대역을 이용하여 개별 노드의 일정 기능이 더 작은 대역으로 동작하도록 할 뿐 아니라 메모리 데이터 프로그래밍과 개별 노드와 접속된 회로의 기록을 허용한다.
도 3A의 타이밍 도표에 대해, 3개 채널(0-2)의 시간 다중화 데이터 전송이 동시에 예시된다. 단일 사이클 “핍(pip)”이 데이터 라인(133) 위에서 시작하는 프레임이 명백한(valid) 데이터를 포함하는 것을 나타내는 표시자(marker)로서, 명령 라인(135) 위에 전송된다. 동일한 클록 사이클 동안에 핍으로서 시작하는 데이터 라인(133)위에 시간 프레임(time frame)에 삽입되고 있는 데이터의 소스인 어떤 노드에 의해 하나의 핍이 대부분 공통으로 공통 라인(135)상에 삽입된다. 이렇게 링 버스의 데이터 라인(133)과 명령 라인(135)이 유사하게 발송(routed)되어 동상으로 동작한다. 데이터 시간 슬롯의 타이밍과 정의가 핍을 이용하지 않는 아래 기술된 방식으로 제어된다.
도 3A의 예에서 데이터 프레임 A, B 및 C가 각각 채널 0, 1 및 2에서 전송된다. 채널 1은 두 개 사이클에 대해 명백한 데이터를 운반하지 않고, 그 시간후에 초기의 데이터 프레임 B가 링 버스상의 전송에 대해 가용하게 된다. 하나의 데이터 채널이 이런 식으로 메모리 프레임 노드(123-127) 사이에 전달되어, 제어기(130)를 통과하지 않고 메모리 칩 (13)내에 플레인 사이에 데이터를 전송하거나 하나 이상의 플레인과 제어기 노드(128) 사이에 데이터를 전송하고, 이때는 데이터가 메모리와 호스트 시스템 사이에 전달될 때이다.
D개의 노드를 갖는 링 버스 주위에 데이터 전송을 위한 두 개의 특정한 시분할 다중화의 구현이 도 3B 및 3C의 타이밍 도표에 의해 개념적으로 예시된다. 하기의 특정 예의 데이터 버스 시간 슬롯이 4개 클록 사이클인 경우에, 숫자 A는 하나만큼 작을 수 있고 8, 16, 32이상으로 올라갈 수 있다. 그것이 통과하는 노드에 의한 데이터의 지연이 B클록 사이클로 나타난다. 각각의 변수 A 및 B는 보통 메모리 시스템으로 설계되어서, 시스템이 동작하는 동안에 변경 가능하지 않다. 숫자 C의 시간 슬롯이 사용되고 있다.
도 3B에 도시된 링 버스 동작에서, 채널의 숫자 C(시간 슬롯)가 버스 상에서 노드의 숫자 D와 같게 된다. 또한, 프레임 길이 A는 노드 사이에 버스 지연 B와 같게 되고, 양 쪽은 클록 사이클의 개수로 측정된다. 통상적으로 B 저장 레지스터 단계를 갖으므로서, 각각의 노드는 지연 B와 동일한 것을 통과하는 다수의 비트를 저장한다. 이러한 변수의 이용은 데이터가 버스 상에서 각각의 데이터 노드로 동시에 전달되도록 한다. 모든 시간 슬롯에서 각각의 데이터 비트 위치에 대한 버스 주위에 하나의 저장 레지스터가 있다. 이것은 C 할당된 데이터 시간 슬롯이 각 노드를 통해 연속으로 순환되도록 한다. 대표적인 데이터 전달 동작에 대해 최대수의 채널이 이용될 수 있다. 참으로, 채널이 보통 데이터를 수신하거나 전송하지 않는 각각의 제어 노드에 대해 포함되기에, 하나 이상의 여분 채널이 된다. 이것은 제어기로 다시 상태 정보를 보낼 수 있다. 시스템에서 각각의 메모리 칩에 대한 상태 정보를 하나의 채널이 보통 보낸다.
그러나 도 3B에 도시된 방식으로 시분할 다중화를 구현하기가 편리하지만, 이러한 최대의 데이터 채널이 거의 필요하지 않다. 그러므로 데이터 버스 대역폭을 최대로 이용하기 위해서 어떤 특정의 데이터 전송 동작에 대해 필요한 시간 슬롯 C를 사용하는 것이 바람직하다. 도 3C의 타이밍 도는 동적으로 선택된 수 C의 채널로 버스의 동작을 예시하고, 이것은 주어진 데이터 전송에 대해 필요한 것으로 만들어질 수 있지만 도 3B에 도시된 대로 동작할 때 일어날 수 있는 많은 빈 시간 슬롯을 포함할 필요가 없다.
도 3C에서, 버스 상에서 노드의 수 D보다 더 작은 수의 채널 C가 이용되는 경우를 도시한 것이다. 이 예에서, 노드로부터의 데이터의 순차적인 프레임이 동시에 동일한 채널 일치(identity)를 갖는 적어도 두 개 시간 슬롯에서 링 버스 주위에 순환되고 있다. 예를 들어, 버스 상에서 D = 12 노드가 있고 동시에 전송되도록 동적으로 표시된 C = 6 채널의 데이터를 다중화가 갖는다면, 각 채널이 버스 주위에 두 번 나타난다. D/C가 정수이기에, 이 예에서 정수는 2와 같고 이것은 비교적 똑바로 나간다. 그러나 더 빈번한 경우는 D/C가 정수가 아닌 경우로 도 3C에 도시된다. 그러한 경우에 하나 이상의 사용되지 않은 시간 슬롯이 삽입되어, 사용되지 않은 시간 슬롯이 “0 슬롯(Nul slot)"으로 불린다. 시간 슬롯 C의 개수로 나뉠 때 노드 D의 수 - 0슬롯의 수는 정수가 되도록 많은 슬롯이 삽입된다. 즉, (D -[0슬롯])/C는 정수와 같게 된다.
데이터 버스 상에 전송되고 있는 일련의 모든 C프레임(시간슬롯)의 데이터가 도 3C에 나타나서 하나의 “사이클”을 형성한다. 전체 개수 N의 사이클이 반복되어 데이터가 통과하는 버스 상에서 노드의 개수 D보다 더 작은 버스 주위에 한 그룹의 시간 슬롯을 형성한다. 노드 D의 개수와 같은 일련의 시간 슬롯을 만들기 위해, 0슬롯이 부가되어 효과적으로 N 사이클 플러스 0슬롯으로의 그룹으로 확장된다. 도 3C의 예에서, N=D-1이고 빠진 1에 대한 보상이 도시된 0슬롯의 삽입으로 실행된다. 예를 들어, N=D-2인 경우에, 두 개 0슬롯이 삽입된다. 이것은 전체 개수의 필요한 클록 사이클이 링 주위의 전체 개수의 일-비트 저장 장소와 같은 버스 주위에 완전히 데이터의 그룹으로 이동하도록 한다. 양 N과 C가 주어진 데이터 전달 동작에 대해 선택되어 링 주위에 순환되는 안 쓰는 슬롯의 개수를 최소화하고, 이는 그들의 이용이 버스의 데이터 전송 대역폭을 얼마간 줄이기 때문이다. 필요할 때 0 슬롯은 그것과 연관된 데이터 채널을 갖지 않고, 그것이 링 주위에 노드마다 연속으로 운반한다. “돈 캐어(don't care)" 값을 갖는 0 데이터(Nul data)가 0 슬롯에서 노드마다 통과된다.
도 2의 각각의 데이터 노드(123-126)에 대한 예를 든 회로 구현이 도 4에 도시된다. 링 버스의 데이터 라인(133) 상에서 일 비트의 데이터의 신호가 레지스터 스테이지(151)에 의해 수신되고, 연속적인 레지스터(152, 154, 156)를 통해 연속으로 시프트(shift)된다. 4개의 레지스터 스테이지(stage)가 예시되어 4개 클록 사이클의 시간 슬롯 길이(A)와 매칭한다. 마지막 스테이지(156)의 출력과 제1 스테이지(151)의 출력 양 쪽이 입력으로서 스위칭 회로(153)에 연결된다. 이것은 회 로(153)가 하나 혹은 4개의 사이클의 지연으로 동작되도록 한다. 스위치회로(153)의 출력이 드라이버(155: driver)를 통해 데이터 라인(133)으로 다시 접속된다. 스위칭 회로(153)가 접속된 레지스터(156)로부터 그의 출력 드라이버(155)로 그의 입력 단을 가질 때, 링 버스의 다른 세그먼트 상에 다음 데이터 노드로의 전송을 위해, 가장 공통적인 구조, 데이터 노드의 레지스터(151)에 의해 수신된 일 비트의 데이터가 4클록 사이클 뒤에 데이터 라인(133)상에 다시 위치한다. 유사하게, 스위칭 회로(153)가 접속된 레지스터(151)로부터 그의 출력 드라이버(155)로 그의 입력 단을 가질 때, 지연은 하나의 클록 사이클이다. 데이터 라인 상에 데이터가 위치하는 시간 슬롯동안에 그의 출력 단에 접속된 이러한 데이터 버스 입력단을 스위칭 회로(153)는 갖지 않는다.
예시된 단일 라인보다는 도리어 데이터 버스가 두 개 이상의 병렬 데이터 라인을 이용한다면, 개별 레지스터 스테이지가 각각의 라인에 대응하고 스위칭 회로(153)가 함께 그들을 스위칭 한다. 예를 들어, 데이터 버스가 4개 라인을 포함한다면, 데이터 노드는 각 라인에서 단일 레지스터 스테이지를 포함한다. 그러한 경우에, 그것을 통해 4비트의 하나의 시간 슬롯을 전송하도록 각 노드에 대한 전체 지연은 4개의 사이클 대신에 단일 클록 사이클이다. 이러한 장점이 버스의 대역폭을 늘리지만, 상기 시스템의 회로와 동작은 더욱 복잡해진다.
데이터 노드로 입력된 명령 라인(135)은 유사하게 다른 일련의 4개 레지스터(157, 158, 160, 162)에 연결된다. 명령이 데이터 라인(133) 위에서 데이터와 동기하여 명령 라인(135)상에, 즉 부가된 같은 지연으로 발송된다. 마지막 레지스 터(162)의 출력이 스위칭 회로(153)에 연결되고, 이것은 데이터 레지스터 통로와 유사한, 제1 레지스터 스테이지(158)의 출력 단이다. 이러한 입력단이 스위칭(153)에 의해 드라이버(159)오 접속되어 하나 혹은 4개 클록 사이클의 지연으로 명령 정보를 링 버스의 다음 세그먼트로 위치시킨다. 상기 노드가 명령 라인(135)으로 핍(pip)을 위치시킬 필요가 있을 때는 이러한 입력 단의 어느 것도 드라이버(159)에 접속되지 않고, 이것은 명백한 데이터가 시간 블록에서 노드에 의해 데이터 버스(133) 상에 위치하는 것을 나타낸다. 데이터 버스가 두 개 이상의 라인을 포함한다면, 명령 버스가 바람직하게 구축되어 두 개 버스가 동상으로 동작하도록 병렬 레지스터의 이용을 포함한다.
클록 신호라인(137)이 드라이버(136)와 직접 연결되어 데이터와 명령 레지스터 스테이지에 대한 클럭킹(clocking) 뿐만 아니라 데이터 노드의 나머지 회로에 대한 클록 신호를 제공한다.
디코더(163)는 레지스터(157)의 출력 단에서 명령 라인(135)으로부터의 제어기 명령과 레지스터(151)의 출력 단에서 데이터 라인(133) 상의 연관된 데이터를 수신한다. 디코더(decoder)의 기능 중에는 계속되는 데이터 전송에서 데이터를 수신하거나 송신하도록 그의 노드를 구현하는 명령의 실행이 있다. 데이터 라인(133)상에 공급되는 상기 명령과 관련된 데이터는 명령이 지향하는 노드 식별 번호, 어떤 데이터가 전송되거나 수신되는 채널 번호, 레지스터 A 또는 B가 이용되는 지의 여부, 전달되고 있는 데이터의 길이 및 다른 구조 정보를 포함할 수 있다.
메모리 시스템의 전원 업 또는 다른 초기화시에 그것에 저장된 노드에 대한 독특한 식별 번호를 레지스터(165)가 포함한다. 시스템 제어기에 대해 제기된 글로벌 초기화 명령(global initialization command)이 바람직하게 이것을 실행한다. 노드에 대해 지향하는 제어기로부터의 명령에 대한 어드레스로서의 동작 동안에 식별 번호가 이용된다. 링 버스(ring bus) 상의 모든 노드가 명령을 수신하지만, 상기 명령이 지향하는 노드의 식별 번호로 버스 상에 명령이 전송된다. 그러므로 그들의 식별 번호로 어드레스 된 유일한 노드 혹은 노드들이 저장하도록 응답하여 명령을 실행한다. 다른 레지스터(167)는 특정 노드가 통신하는 다수 채널의 시간 다중화 된 데이터 버스를 포함한다. 이러한 채널 번호는 데이터 버스(133)상에 노도로 혹은 노드로부터 데이터의 전송을 하기 전에 노드의 구조의 일부로서 대표적으로 재기록 된다. 데이터 전송 동안에, 저장된 채널 번호는 노드가 데이터를 송신하거나 수신하도록 할당된 채널의 시간 슬롯의 발생을 식별하는 데 이용된다. 현재의 전송 동작에서 전송될 데이터의 길이는 다른 레지스터(168)에 저장되고, 레지스터 A 혹은 B중에 어느 것의 목적지가 레지스터(170)에서 전송을 위해 사용되고 있다. 레지스터(165)에 저장된 노드 식별 번호를 포함하는 명령 라인(135)상에서 버스 주위에 보내진 명령에 의해 디코더(163)를 통해 레지스터(167, 168, 170)의 변수가 그들 속으로 적재된다.
도 4의 스위칭 회로(153)가 각각의 데이터 라인(169, 171)의 하나를 통해 레지스터(A와 B: 도 2에 도시)의 하나와 데이터 버스 라인(133) 사이에 연결을 설정한다. 제어 회로는 노드를 구현하여 레지스터 A혹은 B중의 하나와 데이터 라닝(133) 사이의 데이터를 전송한다. 노드의 메모리 플레인(memory plane)에 저장을 위한 버스로부터 데이터를 정송할 때, 회로(153)는 라인(102)상에 디코딩된 제어 신호에 의해 선택된 데로 레지스터(151) 혹은 레지스터(156)의 출력 단에서 버스 라인(133)으로부터의 데이터를 라인(177)상에 제어 신호에 의해 선택된 데로 레지스터 A와 B중 하나로 지향한다. 노드에 할당된 시간 슬롯 동안에 레지스터 A혹은 B중 선택된 하나로부터 데이터 버스 라인(133)까지 역방향으로 데이터를 전송할 때, 그러나 스위칭 회로(153)가 드라이버(155)로 선택된 레지스터의 출려 간을 접속하는 반면에 레지스터(151)와 드라이버(155) 사이에 데이터 버스 라인(133)의 세그먼트로 분리한다. 다른 시간동안에, 하나 혹은 4개의 클록 사이클의 지연을 부과하는 것을 제외하고는, 스위칭 회로(153)가 연결되어 데이터로 어떤 것을 하지 않고서 노드를 통해 데이터를 통과한다. 노드가 데이터 레지스터 A나 B중 하나와 데이터 버스(133) 사이에 데이터를 전달하지 않을 때, 레지스터(151)나 레지스터(156)와 드라이버(155) 사이의 데이터 버스 라인(133)의 통과 연결이 유지된다.
적절한 시기에 이러한 연결을 할 스위칭 회로(153)의 제어는 제어 라인 (175-179 및 182)상에서 디코더 (163)로부터 신호에서 나오고, 다른 제어 라인(180)상에서 채널 카운터(181)의 출력 단에서 나온다. 상기 카운터(181)는 라인(183-186)상에서 4개 신호와 함께 디코더(163)에 의해 제어된다. 라인(183)은 노드와 함께 데이터 전송 동작의 초기에 카운터(181)를 리세트하는 초기화 신호를 운반한다. 라인(185)이 전류 데이터 전송에 대해 사용되는 채널의 수의 데이터를 운반하고, 이것이 데이터 전송을 위한 노드를 설정하는 부분으로서 제어기에 의해 통신한다. 링 버스 상에서 노드 D의 번호가 역시 라인(186)상에 카운터(181)에 공급 되고, 사이클 N의 번호(도 3C를 보라)는 회로(184) 상에 통신한다. 상기 카운터(181)는 가장 높은 채널 번호 까지 카운트하고서 다음에 가장 낮은 채널 번호로 리세트되고, 중지되어 다시 카운트를 시작하여 계속된다. 현재의 카운트와 이러한 현재의 채널 번호가 라인(180)상에 스위칭 회로(153)에 입력된다. 레지스터(167)로부터 상기 회로(153)는 노드에 할당된 채널 번호와 상기 번호를 비교한다. 이러한 번호가 같을 때, 레지스터(168)로부터 제어 라인(176)상에 제공된 데이터 전송의 길이로부터 결정되듯이 전송이 완료될 때까지 회로(153)는 노드를 스위칭하여 데이터 버스(133)로부터 혹은 버스로 송신하거나 수신한다.
라인(177)상의 제어 신호는 데이터가 노드의 레지스터 A 혹은 레지스터 B로 전송되는지의 여부를 명시한다. 라인(178, 179)은 데이터 버스 라인(133)으로부터의 데이터를 수신하도록(1), 회로(153)를 스위칭하는 신호를 운반하고, 이런 경우에 데이터 버스는 노드를 통과하고 제어 라인(177)에 의해 식별된 레지스터가 그것에 연결되고 상기 노드에 할당된 시간 슬롯 동안에 식별된 레지스터로부터 버스 라인(133)에 데이터를 송신하고(2), 버스 라인(133)이 상기 노드를 통과하지 않는 시간 슬롯 동안에 레지스터 A 혹은 B중 어느 것에 연결되지 않고 노드를 통해 데이터 버스 라인(133)을 통과한다(3).
도 4에 대해 기술된 데이터 인터페이스 노드는 버스(133)와 레지스터 A및 B 사이에 데이터 전달을 제어한다. 버스(133)로의 전송을 위한 메모리 셀 어레이 플레인으로부터 레지스터 A 혹은 B로의 데이터 판독이나 버스(133)로부터 얻어진 레지스터 A 혹은 B로부터 메모리 셀 어레이로 데이터 프로그래밍은 명령 링 버스 인 터페이스 노드(127: 도2)를 통해 제어된다. 명령 노드 회로의 예가 도 5에 주어지고, 여기서 도 4에 대응하는 소자가 그들에 프라임(‘)이 부가된 동일 부재 번호로 식별된다. 디코더(197)로부터의 라인(195)에서 제어 신호에 의해 레지스터(193)가 명령 버스(135)로부터 수신된 명령 데이터를 저장한다. 유사하게, 디코더로부터의 라인(201)에서의 신호에 의해 구동될 때, 레지스터(199)가 데이터 버스(133)로부터 수신된 데이터를 저장한다. 상기 레지스터(19)의 주요 이용이 판독 혹은 프로그래밍을 위해 액세스되고 있는 메모리 셀 어레이 내에 어드레스를 저장하는 것이다.
레지스터(193, 199)에서의 데이터가 각각의 라인(203 205)상에 출력되고 이것은 상태 신호 라인(207)을 따라서, 신호 통로(109)상에 메모리 어레이 제어 회로(121:도 2)가 접속된다. 라인(203에 의해 운반된 주요 명령이 라인(205)상에서 어드레스에 의해 명시된 위치에서 하나 이상의 메모리 플레인(105-108)으로/로부터 데이터를 프래그램하고 판독하도록 하는 것이다. 라인(203)상에서 운반된 명령 코드가 메모리 칩(103)내에 명령 및 제어 회로(121:도 2)에 대한 프로토콜에 의해 명시된 것이다. 이러한 프로토콜은 링 버스 내에 사용된 명령 코드의 것과 동일할 필요가 없다. 예를 들어, 링 버스 명령 코드가 메모리 셀 어레이에 사용된 명령 코드로부터의 다른 길이의 것이다. 이런 경우에, 코드 변환기(미 도시)가 명령 레지스터(193:도 5)의 출력 단에 위치한다. 하나의 프로토콜을 다른 것으로 변환하는 매핑(mapping) 정보는 시스템 구조 명령에 의해 변환기로 적재된다. 노드 사이에 데이터 전달을 위해 메모리 시스템을 설정할 때 표시된 시간다중화 채널의 하나에서, 상태 라인(207)이 스위칭 회로(211)를 통해 데이터 버스 라인(133)으로 제어 회 로(121)로부터의 상태 신호를 제공한다.
도 5의 스위칭 회로(211)가 도 4의 스위칭 회로(153)보다 기능에서 더 간단하다. 데이터 라인(133)이 라인(214)에서 제어 신호에 의해 선택된 데로 레지스터 151’ 혹은 156’ 사이를 통과하고, 시산 슬롯동안 라인(207)으로부터의 상태 정보를 제외한 모든 시간에서 드라이버(155’)가 라인 위에 위치한다. 구현된 시간 슬롯의 발생이 도 4의 스위칭 회로(153)와 같은 방식으로 라인(213)상의 제어 신호뿐만 아니라 라인(175’)에서의 할당된 채널 번호와 채널 카운터(181’)로부터 스위칭 회로(211)에 의해 결정된다. 상태 정보가 노드사이의 데이터 전송동안에 버스(133)상에 위치하는 반면 시스템 제어기로부터 레지스터(193, 199)로의 명령과 어드레스의 수신이 데이터 전송 전에 혹은 후에 발생하고, 다른 노드로부터 이러한 레지스터로 전달된 플래시 메모리 데이터로 나중에 프로그램하거나 다른 노드로 전달되도록 레지스터 A와 B의 양 쪽 혹은 하나로 플레시 메모리로부터 데이터를 읽는다.
도 2-5의 메모리 시스템을 동작시키는 한 세트의 명령이 도 6A-6I에 도시되고 모든 것이 그의 링 버스노드(128: 도 2)를 통해 제어기(130)에 의해 제기된다. 링 버스의 3개 노드를 통한 각각의 버스 라인(135:CMND)와 (133:DATA)상의 명령과 데이터의 전송이 편의상 도시되고, 그것들은 시간 순으로 발생한다. 물론, 메모리 시스템은 3개 링 버스 노드보다 더 많이 구비할 것 같고, 여기서 도 6A-6I에 도시된 패턴이 확장되어 각 노드에서의 신호를 보여 주고, 한 개 노드의 신호가 즉시 선행하는 노드의 것에서 한 클록 사이클만큼 지연된다. 이러한 특정 예에서, 핍(pip)이 각 명령을 바로 선행하는 클록 사이클에서 명령 라인 상으로 보내지는 것을 알 것이고, 역시 데이터 라인 상에 보내진 데이터로 시작을 표시하는 것이다. 도시된 단일 사이클 핍보다는 도리어, 각 명령 앞의 핍이 여러 클록 사이클을 점유하여 후속 명령을 구동하도록 요하는 유일한 코드로서 정의된다. 이것은 전송된 명령의 여러 에러 검출에 더 큰 면제를 제공한다.
도 6A, B 및 6C의 명령이 구조 명령으로 이것은 링 버스 상에서 각각의 노드(every node)에 의해 실행된다. 도 6A 혹은 6B의 택일적인 명령에 의해, 유일한 노드 식별(ID)번호가 각 노드의 레지스터(165, 165’:도 4와 5)에 저장된다. 도 6A에서, 세트 ID 명령이 명령 버스 라인(135)상에서 보내지고, 그것의 시작은 핍에 의해 표시된다. 다음에 독특한 식별 번호(ID)가 데이터 라인(133)을 따르고, 그것의 시작이 역시 명령 라인 위에서 핍에 의해 표시된다. 제어기 노드 뒤에 버스 상엣 제1 노드에 의해 수신된 ID 번호가 노드 스위칭 회로(153 혹은 211: 도 4와 5)의 부분인 회로에 의해 증가하고, 증가된 번호는 링 버스 주위에 차례로 다음 노도로 전송된다.
도 6B에서, 링 버스의 연속 노드에 의해 이용된 일련의 ID번호는 선행 노드의 증가하는 회로에 의한 대신에 제어기 회로(130: 도 2)에 의해 결정된다. 이것은 ID 번호를 노드에 할당하는데 더 큰 유연성을 허용한다. 제어기(130)는 링 버스 상에서 제1의 인접한 노드에 대해 단일 ID 번호를 바로 전송하지 않지만, 버스 상에서 각각의 노드에 대해 ID 번호의 스트링을 전송한다. 각 노드는 링 버스 상에서 순서대로 다음 노드에 나머지를 수신하고 재전송하는 제1 ID 번호를 벗긴다. 리셋 채널 명령이 도 6C에 예시되고, 상기 제어기는 시스템 상에서 각 노드에 의해 명령 버스 라인(135)상에 명령을 보낸다. 이러한 명령이 노드에 의해 수신될 때, 그의 할당된 채널 번호 레지스터(167, 167’: 도 4와5)가 리세트된다.
도 6D, 6E 및 6F의 3개 명령이 명령 노드(127; 도2와5)같은 링 버스 시스템 상의 식별된 명령 노드에 의해 지향되어 수신된다. 도 6D의 어드레스 입력 명령이 액세스될 때 플래시 메모리 어드레스를 식별한다. 그것이 명령 라인(135)상에 버스 주위에 보내지는 반면에 명령을 수신하려는 명령 노드의 ID 번호가 데이터 라인(133)상에 보내진다. 노드 ID의 뒤를 잇는 것은 어떤 동작이 계속되는 단계에서 실행하게 되어 있는 메모리 셀 어레이의 어드레스이다. 상기 제어기에 의해 보내진 ID에 매칭되는 그의 레지스터(165’)내 ID를 갖는 하나의 노드가 이러한 어드레스를 그의 어드레스 레지스터(199: 도5)로 적재한다. 같은 ID와 어드레스가 노드마다 버스 주위에 지나가지만 매칭되는 ID를 갖는 오직 하나의 명령 노드 그 자체가 어드레스를 수용하여 저장하도록 한다.
도 6D의 하나 이상의 어드레스 입력 명령에 의해 어드레스 된 플래시 메모리의 일부에서 동작하는 한 세트의 관련된 명령이 도 6E에 도시된다. 도 6E에 기재된 명령중 하나에 대한 유일한 코드가 명령 라인(135)상에 보내지는 반면에, 명령이 지향하는 하나의 명령 노드의 ID가 데이터 라인(13)상에 보내진다. 다음에 명령이 식별된 명령 노드의 명령 레지스터(193: 도5)로 적재되어 즉시 실행된다. 도 6E의 판독 모드(Read Mode) 명령이 도 6d의 명령에 의해 적재된 어드레스나 어드레스들에서 플래시 메모리에서의 데이터가 링 버스에 의해 전송되도록 데이터에 대한 준 비로서 레지스터로 및 플래시 메모리로부터 판독되도록 한다. 유사하게, 도 6e의 다중 블록(Multi-Block) 프로그램 명령이 도 6d의 어드레스 명령에 의해 이전에 공급된 어드레스들에서 병렬로 플래시 메모리의 두 개 이상의 플레인 속으로 레지스터로부터의 데이터를 프로그램하는 데 이용될 수 있다. 하나의 명령 노드 이상이 도 6E의 명령중 하나를 실행하도록 메모리 시스템에 나타난다면, 도 6D와 6E의 명령이 각각에 개별적으로 보내진다.
판독, 프로그램 혹은 다른 동작을 하는 동안에 명령 노드에 의해 상태 신호가 보내지길 요한다면, 도 6F의 상태 판독 명령(Status Read command)이 그렇게 하도록 명령 노드(command node)를 설정한다. 독특한 명령이 명령 라인(135)상에 보내지는 반면에, 상기 명령으로 설정되길 요하는 하나의 명령 노드의 ID가 데이터 라인(133)상에 보내진다. 상태 정보가 보내질 예정인 채널 번호가 데이터 라인 상에 노드 ID를 따른다. 다음에 이러한 채널 번호가 할당된 채널 번호 레지스터(167‘: 도5)에 적재된다.
도 6G는 계속되는 데이터 명령에 응답하여 레지스터 A 혹은 B중 하나와 링 버스의 데이터 라인(133) 사이에 데이터를 전달할 데이터 노드를 조절하는 연관된 입력 및 출력 명령을 보여준다. 상기 입력 또는 출력 명령은 제어기에 의해 명령 버스 라인(135)상에 위치하고, 지향하는 노드의 ID와, 데이터가 전달될 예정인 채널 번호(시간 슬롯)와, 데이터가 전달될 예정인 레지스터 A혹은 B및 데이터 전달의 길이가 상기 입력/출력 명령 뒤에 따른다. 보내지는 채널 번호는 다음에 데이터 노드의 레지스터(167: 도4)로 적재되고, 선택된 레지스터 A 혹은 B와 데이터 전달의 길이가 임시로 디코더(163)내에 저장되고 각각의 디코더 출력 단(177, 176)에 의해 제공된다.
도 6G의 명령을 수신하여 실행함으로서 데이터 전달이 일어나도록 포함된 모든 데이터 노드가 구현되면, 한 번에 하나로 도 6H의 데이터 온 명령(Data On command) 전송이 일어나도록 한다. 데이터 온 명령이 링 버스의 명령 라인(135)상에서 커트롤러에 의해 보내지고, 전송을 실행하는 데 필요한 구조 변수가 데이터 라인(133)상에 보내진다. 도 3C이 타이밍 도에 의해 예시된 그룹의 채널 전송을 따라서, 링 버스 상의 노드의 수 D와 한 그룹의 시간 슬롯에서의 사이클의 수 N, 데이터 전달에 사용되고 있는 채널(시간 슬롯)의 수 C를 이러한 변수(파라미터)가 포함한다. 이러한 변수는 데이터 노드(도 4)에 저장되고 데이터 전달 동안에 라인 184, 185, 186상의 채널 카운터(181)에 제공된다. 상기 명령에 의해 명시된 각 노드에 대한 독특한 채널 상에서, 명령에 의해 제시된 데로 도 6G의 입력 혹은 출력 명령을 수신한 각 노드의 레지스터 A혹은 B의 하나의 안이나 밖으로 데이터가 전달된다.
할당된 시간-다중화 된 채널에서 링 버스 주위에 원으로 데이터가 전달되고 있도록 도 6H의 데이터 온-명령이 촉진한다. 채널의 폭 즉, 각각에 할당된 시간의 길이에 좌우하여 각각의 데이터 채널에 제한된 양의 데이터가 전송된다. 도 6H에서, 개별 채널(데이터 프레임)이 설명의 편의를 위해 길이가 4클록 사이클로 도시되고, 그리하여 4비트의 데이터를 운반하지만, 실제로 그것보다 더 크게 만들어진다. 도 3C에 도시된 그룹화된 채널 사이클 기술에 따라, 이전에 전송된 프레임이 링 버스 주위에 회로를 완료하여 노드로 복귀하기 전에, 각각의 데이터 노드가 다른 프레임의 데이터를 전송한다. 이것은 노드로부터 전송될 모든 데이터가 이런 방식으로 전송될 때까지 계속된다.
링 버스 상에서 데이터 노드 명령이나 다른 명령 노드를 커트롤러가 전송하기 전에, 데이터가 데이터 온 명령을 실행하는 데이터가 전달되고 있는 동안에 전송이 먼저 중지될 필요가 있다. 도 6I에 도시된 데이터 오프 명령(Data Off command)이 이것을 한다. 데이터 오프 명령이 데이터 전송 동안에 소스 데이터 노드(source data node)에 의해 수신될 때, 데이터 온 명령이 뒤에 수신될 때까지 노드는 데이터 전송을 일시 중지한다. 그러나 전달되고 있는 데이터에 대한 목적지 노드는 어떤 관련된 데이터를 계속하여 수신하고, 데이터 오프 명령에 후속으로 다른 채널 상에 명백한(valid) 데이터가 있다. 그들을 통해 단순히 데이터를 통과하는 구조의 그러한 노드는 그렇게 계속한다. 데이터 오프 명령으로 데이터 전달을 일시 중지하는 이유는 채널을 부가할 수 있는 것이고, 데이터를 송신 혹은 수신하도록 부가적인 노드를 구성하고, 이것은 데이터 오프 명령 이후와 재구성된 데이터 전송이 뒤의 데이터 온 명령에 의해 추구되기 전에 출력 및 입력 명령의 이용으로 이루어질 수 있다. 재구성된 데이터 전송에 대한 새로운 변수가 뒤의 데이터 온 명령의 일부로서 명시된다.
도 6I의 데이터 오프 명령은 그것이연관된 명령 코드를 갖지 않는 점에서 다른 모든 명령과는 상이하다. 선행 명령이 데이터 온 명령이었을 때 상기 명령이 오직 사용된다. 데이터 오프 명령이 어떤 채널 상에서 명령 라인 위의 연장된 핍으로 서 제어기에 의해 신호 처리된다. 데이터 라인은 상기 채널에 적절한 데이터를 운반하고, 이것은 데이터 오프 명령과 관련이 없다.
방금 기술된 명령의 이용으로 노드 상이에 데이터 전송의 전체 과정이 E 7에 도시된다. 전송될 플래시 메모리 플레인 내의 데이터가 먼저 레지스터로 이용되고, 본 예에서 하나 이상의 플레인의 각각의 레지스터 A 혹은 B중에 하나이다. 제1 단계(221)는 플래시 메모리 어드레스가 하나 이상의 메모리 플레인과 연관된 각각이 순서대로 개별 명령 노드로 보내지도록 한다. 다음에, 그의 연관된 레지스터 A 혹은 B중 하나로 플레인의 어드레스 된 위치로부터 데이터를 읽는 단계(222)가 뒤따른다.
이러한 데이터 소스 노드는 단계 223에 나타난 데로 각각의 노드가 구성되도록 도 6G의 출력 명령의 이용으로 데이터를 전송하도록 역시 구성된다. 단계 224에서, 데이터 목적지 노드가 구성되어 각 노드가 구성되도록 입력 명령의 이용으로 이러한 데이터를 수신한다. 단계 223과 224가 단계 222와 동시에 실행될 수 있다. 노드 사이에 버스 주위의 데이터 전송이 시작되기 전에 노드 내에 단계 222의 전송이 완료된 것을 확인하도록, 단계 222가 초기화된 후에 상태 판독 명령(도 6F)이 제기된다.
데이터 전송을 위한 소스와 목적지 노드를 설정하는 단계 223과 224의 완료 이후에, 단계 222가 완료되었다고 확인되면, 도 6H의 데이터 온 명령이 단계 225에서 시작된다. 이것은 데이터가 소스 노드의 레지스터에서 링 버스 상에 목적지 노드의 레지스터로 이동하도록 한다. 소스와 목적지 노드 레지스터가 제어기 노 드(128: 도2)의 것을 포함하고, 이것은 제어기(130)를 통해 호스트로 데이터를 보내거나 호스트로부터 데이터를 수신한다.
다음에, 목적지 노드의 레지스터에 저장된 데이터가 플래시 메모리로 프로그램 된다. 단계 226에서 명령 노드에 의해 제어되는 플래시 메모리내의 어드레스가 도 6D의 어드레스 입력 명령에 의해 명령 노드로 보내진다. 다중 명령 노드가 있다면, 이러한 단계는 각각의 명령 노드에 대해 개별적으로 실행된다. 다음에 도 6E의 프로그래밍 명령중 하나가 보내져서 레지스터에서 플래시 메모리로 프로그래밍을 하도록 하여 가능한 최대의 병렬성(parallelism)이 일어난다. 이러한 기술에 의해, 데이터가 플래시 메모리에서의 위치와 제어기에서 레지스터를 통해 호스트 사이(1)를 이동하거나 플래시 메모리 내에 위치 사이(2)를 이동하거나 위의 두 가지 사이 전부로 이동한다.
단계 226의 시작은 단계 225나 완료에 대해 기다릴 필요가 없지만 단계 225와 동시에 실행될 수 있다. 동시 동작은 제어 노드 동작과 데이터 노드 동작에 대해 가능하거나 개별 레지스터 상에서 두 개의 데이터 노드 동작에 대해 가능하다.
도 6A-6I의 명령을 이용한 데이터 전달의 예시는 도 8과 9에 주어지고, 여기서 도 8은 예에 사용된 특정한 데이터 소스와 목적지를 갖는 도 2-5의 메모리 시스템을 도시하고, 도 9는 필요한 전송을 하는 명령을 수서대로 기재한다. 데이터의 섹터 19, 20 및 21은 제어기 버퍼 RAM으로부터 전송되어, 호스트 시스템에 의해 거기에 기록되고, 플래시 메모리에 기술되도록 메모리 시스템이 제어기를 통해 연결된다. 이러한 데이터 섹터는 각각 메모리 플레인 A, B 및 C로 전송된다. 동시에, 플레인 C의 데이터의 섹터 R6이 플레인 D로 전송된다.
도 8과 9의 예는 역시 아직 논의되지 않은 종료 명령(도 6E)의 이용을 도시한다. 여기서 그것은 ADFUD #10(도 9)로 이용되어 명령 #4에 의해 시작된 상태 판독 명령(Status Read command)을 종료한다. 역시, 데이터 오프 명령이 명령 ##9와 14로서 두 번 사용되어, 각각의 데이터 온 명령 ##8과 13의 실행을 중지한다. 데이터 오프 명령에 대한 이유는 섹터 R6의 전송을 위한 소스와 목적지 노드를 구성하도록 데이터 전송은 일시 중지하는 것으로, 이것은 각각의 입력과 출력명령 ##11과 12에 의해 이루어진다. 명령 #4-8이 제어기에 의해 제기될 수 있는 시간동안에, 플래시 메모리 판독 명령 #3의 실행이 상대적으로 긴 시간을 갖기에 이것이 필요하다. 다음에 다른 데이터 온 명령 #13이 제기되고, 이것은 채널 0에서 섹터 R6을 전송되고 있는 데이터에 부가하는 반면, 채널 1, 2, 및 3 위에서 데이터 섹터 19, 20, 21의 전달이 이루어진다. 데이터 섹터 19, 20, 21의 전송이 완료된 후에, 나중에 시작된 데이터 섹터 R6의 전송이 완료되기 전에 이것이 발생하고, 계속되는 데이터 온 명령 #15가 섹터 R6의 전송을 종료시키는 채널의 수를 감소하도록 다른 데이터 오프 명령 #14가 제기된다. 거의 대부분의 시간에 일어나는 어떤 데이터 전송에 필요한 채널의 수를 오직 명시하는 것이 바람직하고, 그리하여 데이터의 빈 시간 슬롯을 피하여 역으로 메모리 성능에 영향을 미친다.
도 8, 9에 예시된 예인 데이터 전송은 단일 링 버스 상에서 일정한 동작을 동시에 실행하는 것을 알 수 있고, 이것은 상기의 명령 조직과 구조의 특성이다. 예를 들어, 데이터 온 명령 #8에 응답하여 데이터의 3개 섹터 19, 20 및 21이 시분 할 다중화(time division multiplexing)의 결과로서 동시에 전송되고, 각각의 섹터는 다른 소스와 목적지 노드를 갖는다. 데이터 온 명령 #13에 응답하여, 4개 데이터 섹터 19, 20, 21 및 R6이 버스 주위에 함께 전송된다. 명령 #4 동안에 역시 상태 판독 명령이 채널 0 위에서 실행되는 동시에 데이터 섹터 19, 20, 21의 전달이 채널 1, 2 및 3에서 일어난다. 더욱이, 위에 언급되듯이 명령 #4-7과 명령 #8의 부분이 실행되는 동안에 플래시 메모리 판독 명령 #3이 실행되고 있다. 게다가, 링 버스 주위에 전송되는 데이터는 제어기의 ECC 회로에 의해 제어기 노드를 통과할 때 체크되고, 이것은 데이터 전달과 동시에 일어난다.
도 2의 많은 다양한 메모리 시스템 구조가 이루어질 수 있는 반면, 상기 방식으로의 명령으로 시스템을 구동한다. 4개 메모리 플레인을 갖는 메모리 칩 대신에, 도 10에 도시된 데로 메모리 칩은 단일의 분할 안 된 메모리 셀 어레이를 구비한다. 두 개 메모리 칩(231, 233)이 도시되어 링 버스에서 제어기 칩(101)과 연결된다. 메모리 칩(231, 233)의 각각이 이전에 기술된 링에서 버스에 의해 연결된 단일 명령노드와 단일 데이터 노드를 포함한다. 2 개이상의 메모리 칩이 특정 시스템에서 이용된다.
도 11은 가능한 한 다양한 변화가 도시되고, 여기서 두 개의 메모리 칩(235, 237)의 각각이 링 버스 위에서 제어기 칩(101)과 역시 연결되지만 각각의 메모리 칩은 각각 데이터 노드(239, 241)와 단일 결합된 명령을 포함한다. 상기 노드(239, 241)는 개별적으로 한 개의 회로로 결합된 도 4와 5의 개별 노드 회로를 구비한다. 이에 대한 장점은 스위칭 회로, 명령 디코더, 채널 카운터, 여러 저장 레지스터 등 같은 이중 소자를 제거하므로서 노드 회로가 감소될 수 있는 것이다.
단일의 병렬 버스 상으로 메모리 칩과 통신하는 통상의 제어기와 뒤로 양립 가능한 메모리 집적 회로 칩을 제공하기 위해, 메모리칩은 통상의 버스 인터페이스뿐 아니라 링 버스 노드와 외부 연결을 포함한다. 그러한 메모리 칩이 도 12에 도시된다. 그것은 4개 링 버스 노드(245-248)를 포함하여서 각각이 4개 멀티플렉서 (251-254)중 하나의 입력 단에 접속된다. 상기 멀티플렉서(251-254)의 각각의 다른 입력 단이 공통 버스(257)를 통해 통상의 버스 인터페이스 회로(259)와 연결되고, 이것은 메모리칩의 외부 접속 패드(pad)에서 마감되는 통상의 버스(261)를 제공한다. 다음에 이러한 버스 패드는 시스템 제어기와 선택적으로 다른 메모리칩과 접속된다. 도 1의 제어기(11)와 유사한, 통상의 제어기(263), 혹은 도 2의 제어기(101)와 유사한, 링 버스 노드를 구비한 제어기(265)가 이러한 버스 패드에 접속된다.
메모리 어레이의 부분과 그의 명령 및 제어 회로(도 12에 미 도시)를 통상의 버스(257)에 병렬인 각각의 링 버스 노드(245-248)에 개별적으로 접속하기 위해 주어진 칩의 멀티플렉서(251-254)가 메모리 시스템에 설치될 때 바람직하게 영원히 설정된다. 메모리 시스템에 사용되고 있는 것에 따라 제어기(263혹은 265)의 유형의 것에 칩을 접속하도록 멀티플렉서(251-254)를 설정하기 위해 메모리칩의 외부 핀(pin)이 부가된다. 칩의 링 버스의 입력 단(267)이 한 세트의 통상적인 버스 인터페이스(261)의 입력 라인에 연결되고, 이 경우에는 한 세트의 3개 라인이다. 링 버스의 출력 단(269)이 다른 세트의 통상의 버스(269)의 3개 다른 전도체에 연결된다. 그러므로 제어기(265)가 메모리 시스템에 사용될 때, 버스가 종래의 방법으로 사용되지 않기에 통상의 외부 버스의 일한 두 개 세트의 라인에 접속된다. 그러므로 양 쪽 유형의 제어기와 접속하기 위해 메모리칩의 외부 패드의 수를 증가시킬 필요가 있다.
멀티플렉서(251-254)를 세팅하기 위한 메모리칩의 부가적인 외부 핀의 이용에 대한 대안은, 링 버스의 입력 또는 출력 라인으로서 이용되지 않는 종래의 버스(257)의 핀을 이용하는 것이다. 이러한 핀은 링 버스 노드(245-248)를 선택하기 위한 멀티플렉서(251-254)를 설정하는 데 소정의 상태의 조합으로 영원히 설정된다. 종래 버스(257)의 정상 동작에서 일어나지 않는 불법적인 조합이 되도록 상태의 조합이 선택된다.
도 2, 10 및 11에 도시된 시스템 예에서, 링 버스 노드 인터페이스가 메모리 인터페이스(25)로 대치되었다는 것을 제외하고는, 제어기(130)가 도 1의 나타난 제어기(11)와 매우 유사하다. 그러나 단일 버스 노드 인터페이스를 통해 제어기의 기능과 많은 소자 각각을 액세스하기 보다는, 그 자체의 노드를 개별적으로 갖음으로서 이러한 소자와 기능이 링 버스 주위에 분배된다. 이러한 것의 예가 도 13에 도시된다. 이전에 예시되고 기술된 것을 포함하여, 다수의 가능한 구조의 어느 것으로 개별 칩 위에서나 단일 집적 회로 칩 위에 메모리 어레이나 어레이들의 명령과 데이터 노드를 나타내는 여러 링 버스 노드(275-279)가 도시된다. 도 13의 시스템에서 다른 것은 단일 제어기 노드 대신에, 모든 제어기 회로와 기능보다 더 작게 개별적으로 접속된 다수의 그러한 노드로 교체한 것이다. 이러한 특정 예에서, 7개의 제어기 링 버스 노드(281-287)가 포함된다. 이것들은 개별적으로 각각 비-휘발 성 메모리 캐시(289), 휘발성 메모리 캐시(291), ECC 회로(293), 메모리와 호스트 사이에 전송되고 있는 데이터의 임시 저장을 주로 하는 휘발성 데이터 버퍼 메모리(295), 프로세서(29)에 의해 실행되고 있는 펌웨어(firmware) 코드를 저장하는 휘발성 메모리(29) 및 호스트 인터페이스 회로(301)에 접속된다. 부가적인 제어기 노드의 이용으로 다른 기능이 부가될 수 있거나, 도 13에 도시된 하나 이상의 제어기 기능이 제거될 수 있거나, 단일의 공유 버스 노드를 통해 링 버스로의 접속을 위해 소자와 기능의 특정 부분이 결합된다.
링 버스가 제어기 동작에 내부적인 명령과 데이터의 전송으로 압박되지 않도록, 도 13에 도시된 것과 같은 어떤 일정한 제어기 기능과 프로세서(299)사이에 직접 통신을 허용하는, 개별 병렬 제어기 버스(303)를 포함하는 것이 바람직하다. 시스템의 플래시 메모리로부터 메모리(297)속으로 펌웨어를 프로세서(299)가 적재하도록 하는 시스템의 초기화동안에 사용된 부팅 코드(boot code)의 저장을 위한 부가적인 비-휘발성 메모리(305)가 역시 제어기 버스(303)에 접속된다. 이것은 데이터나 명령이 플래시 메모리 노드(275-279)에 접속된 플래시 메모리 소자와 그들 중 하나 사이에 전송되고 있을 때 주로 사용되는 링 버스와 어떤 제어기 소자가 접속되도록 한다. 이전에 언급한 하나의 예가 버스 주위에 전송되고 있는 데이터의 ECC 회로(293)를 통과하는 것으로, 특히 그들의 유효성(validity)을 검증하기 위해 플래시 메모리로부터 판독된다. 정정하는 데 사용되는 ECC 알고리즘의 능력 내에 ECC 회로(293)에 의해 검증된 에러는 다음에 바람직하게 프로세서(299)에 의해 정정된다. 다른 예는 버퍼 메모리(295)와 캐시 메모리(289 및 291)에 링 버스의 직접 연 결을 포함한다.
제어기 그 자체와 접속하거나 또한 하나, 둘 이상의 다른 메모리 칩에 연결하도록 메모리 칩을 쉽게 만드는 것이 바람직하다. 메모리 카드의 제조에서, 제어기와 하나 이상의 메모리 칩이 카드의 외부 접점과 칩을 상호 연결하도록 전기적인 전도체를 제공하는 소형 인쇄회로 기판(PCB)에 물리적으로 부착된다. 통상적인 병렬 버스가 PCB상에 이용될 때, 다른 저장 능력을 갖는 카드를 제조할 수 있기 위해서, 하나에서 어떤 제한된 수로 가변적인 수의 메모리 칩을 포함하는 능력으로 PCB를 제공하는 것이 비교적 간단하다. 그러나 하나 이상의 메모리 칩이 링 버스에 연결될 때, 메모리 칩(들)을 연결하는 PCB상의 링 버스의 부분과 제어기 칩이 함께 가변적인 수의 연속으로 연결된 칩을 조합할 필요가 있다. 연속적인 메모리 칩의 마지막 단의 출력이 제어기에 다시 연결되기에, 다른 수의 메모리 칩으로 이것을 쉽게 하는 어떤 방법이 바람직하다.
그렇게 하는 하나의 기술이 도 14에 도시된다. 제어기 칩(311)과 두 개의 메모리 칩(313, 315)이 단일 PCB 상에 메모리 제어기의 일부로서 함께 연결된다. 제어기(311)는 적어도 하나의 버스 노드를 포함하고, 메모리 칩 각각은 여러 버스 노드를 포함한다. 메모리 칩(313)은 제어기 칩(311)의 버스 출력 단과 접속된 버스 입력 단(317)과 제2 메모리 칩(315)의 버스 입력 단에 접속된 제1 출력 단(319)을 구비한다. 일련의 마지막 메모리칩의 출력이 커트롤러 칩(311)의 입력 단으로 복귀하도록 칩 사이에 PCB 위에 포함되는 버스의 부분(323)에 연결되고 메모리칩(313)위에 제2 출력(321)이 역시 제공된다. 그렇지만 메모리칩(313)이 시리즈에서 마지 막이 아니기에, 그의 복귀 출력(321)은 칩 상에서 디세이블되는 반면, 출력(319)이 인에이블로 남는다 모든 메모리칩이 대부분 쉽게 동일하게 만들어지기에 유사하게 제2 메모리 칩(315)이 두 개의 버스 출력(325, 327)을 갖고, 칩(315)이 시리즈에서 마지막이기에 복귀 출력(327)은 인에이블로 남는다.
상기 칩(315)의 제2 출력(325)가 다음에 칩(315)상에서 디세이블되어 어느 것에 연결될 필요가 없다.
도 14의 장치가 연속인 가변적인 수의 칩을 비교적 쉽게 연결하지만, PCB상에서 버스 부분(323)의 길이가 여러 경우에 칩 위의 버스 세그먼트의 것 보다 분명히 더 높은 레벨의 용량을 가질 수 있다. 이것이 전체 링 버스의 동작 주파수를 제한할 수 있기에, 이러한 효과를 최소화할 수 있는 방식으로 복귀 버스 통로를 제공하는 것이 더욱 바람직하다. 도 15의 카드 시스템에서 이것은 메모리 칩(331, 333)위에 대부분의 복귀 통로를 형성하고 개별적으로 구동되는 복귀 통로를 더 짧은 부분으로 부시므로서 이루어진다. 링 버스의 어느 부분의 최대 용량은 다음에 낮은 레벨로 유지된다.
메모리 칩(331)을 예로서 들면, 그것은 하나라면(도 15에 나타나듯이) 연속인 다음의 메모리 칩으로의 연결을 위해 링 버스 입력 단(335)과 출력 단(337)을 구비한다. 상기 제어기로의 복귀를 위해 제2 출력(339)는 메모리 칩 내에 유지된다. 복귀 통로의 부분(341)이 PCB 상에서 보다는 메모리 칩에 포함된다. 이미 기술된 상기 노드와 유사한, 복귀 출력(345)을 구도하는 드라이버와 그의 입력과 출력 버스 부분을 분리하도록 하나의 클록 사이클 지연을 포함하는 스테이지(343)가 복귀 통로(341)에 연결된다. 예를 들어, 메모리 칩이 연속에서 마지막이 아닐 때, 칩(331)이 도 5에 없듯이, 메모리 칩이 그의 복귀 버스 출려단에 연결되도록 복귀 버스 입력단(347)이 다음에 대해 제공된다.
도 15의 두개-메모리 칩의 예에서, 제1 칩(331)의 출력단(337)이 구동하게 되어 연속인 다음의 메모리 칩(333)의 입력단에 연결되는 반면에, 그이 복귀 출력단(339)이 디세이블된다. 제2 메모리 칩(333)의 복귀 출력단(349)이 연속의 마지막 칩이기에 구동하게 된다. 다음에 상기 회로(343)와 동일한 드라이버 회로(251)와 레지스터를 통해, 상기 버스가 칩(333) 상에서 제1 칩(331)의 입력단(347)으로의 복귀 통로를 따른다. 참으로, 연속 스트링(string)내에 여러 위치중에 접속될 수 있는 하나의 메모리 집적회로 칩을 오직 만드는 것이 아주 바람직하다. 마지막 메모리 칩(333)의 제2 출력(353)이 디세이블되어 연결되지 않은 채로 남는다. 그리고, 물론 마지막 칩(3330의 복귀 버스 입력단(355)에는 아무 것도 연결되지 않는다.
본 발명의 여러 특징이 예를 든 실시예를 참고하여 기술되었지만, 본 발명이 첨부된 특허 청구 범위의 전체 범위내에서 보호받는다는 것을 이해할 것이다.

Claims (47)

  1. 제어기와 함께 다수의 노드(node)를 연결하는 링 버스(ring bus) 주위에 데이터를 전송하는 방법에 있어서,
    전달될 데이터의 소스로서 노드의 적어도 하나와, 전달될 데이터의 목적지로서 노드의 적어도 다른 하나를 설정하기 위해, 제어기에서 노드까지 링 버스 주위에 주어진 방향으로 명령을 보내고,
    상기 적어도 하나의 소스 노드(source node)에 접속된 메모리로부터 상기 적어도 하나의 소스 노드에 제공된 임의의 데이터 저장 장치로 전송되도록 데이터를 읽고;
    그후에 적어도 하나의 소스 노드에서 임의의 데이터 저장장치(storage)로부터 링 버스 주위에 주어진 방향으로 오직 판독 데이터를 전송하고,
    그후에 상기 적어도 하나의 목적지 노드에 제공된 임의의 데이터 저장장치로 전송된 데이터를 기입하고; 및
    상기 적어도 하나의 목적지 노드에서 임의의 데이터 저장장치로부터 전송된 데이터를 그와 연결된 메모리로 기입하는 단계를 포함하는, 데이터 전송방법.
  2. 제1항에 있어서, 링 버스 주위에 명령은 통과시키는 것은 제어기로부터 링 버스에 접속된 제어기 노드를 통해 명령을 통과시키는 것을 포함하는, 데이터 전송방법.
  3. 제2항에 있어서, 제어기 노드와 제어기 내에 포함된 버퍼 메모리를 통해 호스트로/로부터 데이터를 전송하는 것을 부가적으로 포함하는, 데이터 전송방법.
  4. 제1항에 있어서, 데이터 전송은 접속된 다른 노드를 통해 호스트로/로부터 링 버스로 부가적으로 이루어지는, 데이터 전송방법.
  5. 제1항에 있어서, 명령 통과는 전송될 데이터의 소스로서 적어도 두 개의 노드와 전송될 목적지로서 적어도 두 개의 노드를 설정하고, 판독 데이터의 전송은 적어도 두 개의 순차적인 시간 슬롯(time slot)에서 적어도 두 개의 소스 노드로부터 링 버스 주위에 데이터 전송을 포함하고, 전송된 데이터의 기입은 적어도 두 개 순차적인 시간 슬롯중 다른 것에서 적어도 두 개 목적지 노드로 전송되고 있는 데이터를 기입하는, 데이터 전송방법.
  6. 제5항에 있어서, 판독 데이터의 전송은, 어떤 사용되지 않은 다수의 시간 슬롯을 줄이는 데 상기 적어도 두 개의 순차적인 시간 슬롯의 개수 조절을 부가적으로 포함하는, 데이터 전송방법.
  7. 제5항에 있어서, 링 버스 주위의 명령 통과는 순차적인 시간 슬롯의 이용을 포함하지 않는, 데이터 전송방법.
  8. 제1항에 있어서, 링 버스 주위에 판독 데이터 전송은, 상기 적어도 하나의 소스 노드로부터 그리고 상기 적어도 하나의 소스 노드로 링 주위에 판독 데이터를 완전히 전송하는 것을 포함하는, 데이터 전송방법.
  9. 제8항에 있어서, 링 주위에 완전히 전송된 후에 상기 적어도 하나의 소스 노드에서 판독 데이터의 유효성(validity)을 검증하는 단계를 부가적으로 포함하는 데이터 전송방법.
  10. 제9항에 있어서, 판독 데이터의 유효성 검증은, 링 주위에 완전히 전송된 후에 판독 데이터와 상기 적어도 하나의 소스에서 링 버스상에 위치한 판독 데이터를 비교하는, 데이터 전송방법.
  11. 제8항에 있어서, 링 버스상의 위치에서 에러 정정 체계(error correction scheme)를 갖는 판독 데이터를 체크하는 단계를 부가적으로 포함하는, 데이터 전송방법.
  12. 제11항에 있어서, 에러 정정 체계를 갖는 판독 데이터의 체크는 제어기에서 발생하는, 데이터 전송방법.
  13. 제11항에 있어서, 에러 정정 체계를 갖는 판독 데이터의 체크는, 상기 적어도 하나의 소스 노드와 상기 적어도 하나의 목적지 노드에 부가하여 노드를 통해 링 버스에 접속된 에러 정정 회로를 통해 데이터를 통과시키는, 데이터 전송방법.
  14. 제1항에 있어서, 전송될 소스의 데이터로서 노드의 적어도 하나와 전송될 데이터의 목적지로서 노드의 적어도 다른 하나를 설정하도록 링 버스 주위를 통과한 명령이 오직 제어기로 발원하는, 데이터 전송방법.
  15. 제1항에 있어서, 링 버스 주위에 판독 데이터를 전송하기 전에, 복수의 노드를 구현하는데 제어기로부터 링 버스 주위에 명령과 데이터를 보내는 단계를 부가적으로 포함하는, 데이터 전송방법.
  16. 제1항에 있어서, 링 버스 주위에 판독 데이터의 전송은, 전송되는 판독 데이터가 동기화하는 시스템 클록 소스의 하나 이상의 사이클의 복수의 노드중 개별 노드에서의 지연을 부과하는, 데이터 전송방법.
  17. 제1항에 있어서, 링 버스 주위에 명령 전송은 링 버스의 적어도 제1 전도체상에서 그렇게 되고, 링 버스 주위에 판독 데이터의 전송은 제1 전도체와 다른 링 버스의 적어도 제2 전도체 상에서 그렇게 되는, 데이터 전송방법.
  18. 제1항에 있어서, 링 버스 주위에 명령 전송은, (1) 명령을 수신하는 복수의 노드중 적어도 다른 하나에 의해 한 소스의 데이터로서 상기 적어도 하나의 노드를 설정하여 상기 적어도 하나의 노드를 한 소스의 데이터로서 구현하고, (2) 명령을 수신하는 복수의 노드중 적어도 다른 하나에 의해 한 목적지의 데이터로서 상기 적어도 하나의 노드를 설정하여 상기 적어도 하나의 노드를 한 목적지의 데이터로서 구현하는, 데이터 전송방법.
  19. 제1항에 있어서, 상기 적어도 하나의 소스 노드의 접속된 메모리로부터 전송될 데이터 판독은, 상기 적어도 하나의 소스 노드에 접속되는 적어도 제1 유닛의 재프로그래밍 가능한 비-휘발성 메모리 셀로부터 데이터의 판독을 포함하는, 데이터 전송방법.
  20. 제1항에 있어서, 상기 적어도 하나의 목적지 노드에 접속된 메모리로 전송된 데이터의 기입은, 상기 적어도 하나의 목적지 노드에 접속되는 적어도 제2 유닛의 재프로그래밍 가능한 비-휘발성 메모리 셀로 전송된 데이터의 기입을 포함하는, 데이터 전송방법.
  21. 제19항 또는 제20항에 있어서, 제1 및 제2 유닛의 메모리 셀은 단일 집적 회로 칩 위에서 모든 메모리 셀보다 적은 각각의 제1 및 제2 플레인(planes)을 포함하는, 데이터 전송방법.
  22. 제19항 또는 제20항에 있어서, 제1 및 제2 유닛의 메모리 셀은 각각의 제1 및 제2 집적회로 칩 위에서 전체 메모리 셀 어레이를 포함하는, 데이터 전송방법.
  23. 제2항에 있어서, 제어기 노드와, 상기 적어도 하나의 소스 노드 및 상기 적어도 하나의 목적지 노드와 상이한 복수의 노드중 다른 것에 접속된 버퍼 메모리에 판독 데이터를 임의로 저장하는 단계를 부가적으로 포함하는, 데이터 전송방법.
  24. 제1항에 있어서, 임의의 데이터 저장장치로의 데이터 판독은, 적어도 하나의 소스 노드에 제공된 적어도 두 개의 데이터 레지스터중 하나로 판독 데이터를 전송하는, 데이터 전송방법.
  25. 제1항에 있어서, 임의의 데이터 저장장치로의 데이터 기입은, 적어도 하나의 목적지 노드에 제공된 적어도 두 개의 데이터 레지스터중 하나로 전송된 데이터를 기입하는, 데이터 전송방법.
  26. 제1항에 있어서, 복수의 노드중 적어도 하나에서 링버스로부터 임의의 데이터 저장장치의 다른 부분으로 제3 세트의 데이터 기입과, 복수의 노드중 적어도 하나에서 복수의 노드중 하나에 접속된 메모리로부터 임의의 데이터 저장장치의 한 부분으로 제2 세트의 데이터 기입을 동시에 부가적으로 포함하는, 데이터 전송방 법.
  27. 메모리 시스템에 있어서,
    데이터 통신 노드를 포함하는 적어도 하나의 재프로그램 가능한 비-휘발성 메모리 유닛와;
    다른 데이터 통신 노드를 구비한 호스트 데이터 입력/출력 회로와;
    링에서 함께 개별 데이터 통신 노드를 연결하는 버스; 및
    전송되고 있는 다중 채널의 데이터를 포함하도록 적용된 다수의 시간-다중화된 데이터 프레임상에 단일 방향으로 링 버스 주위에 하나 이상의 데이터 통신 노드로부터 완전히 다중 채널의 데이터의 동시 전송이 일어나도록 하는 링 버스에 구동가능하게 접속되는 마이크로-제어기를 포함하는 제어기를 포함하는, 메모리 시스템.
  28. 제27항에 있어서, 거기를통한 데이터의 전송을 위해 통신 노드중 선택된 노드로 링 버스상에 구조 명령(configuration command)을 보내도록 상기 제어기가 링 버스를 통해 구동 가능하게 더 연결되는, 메모리 시스템.
  29. 제28항에 있어서, 적어도 하나의 메모리 유닛은 구조 회로와 링 버스에 연결된 명령 노드 및 상기 제어기로부터의 구조 명령을 수신하여 실행하는 구조 회로를 더 포함하는, 메모리 시스템.
  30. 제27항에 있어서, 적어도 하나의 메모리 유닛중 적어도 데이터 통신 노드는 메모리 서브-시스템과 링 버스 사이에 전송되고 있는 적어도 두 조각의 데이터를 동시에 저장하도록 접속된 적어도 두 개의 레지스터를 포함하는, 메모리 시스템.
  31. 제27항에 있어서, 상기 제어기는 호스트 데이터 입력/출력 회로를 포함하고, 상기 제어기는 상기 다른 데이터 통신 노드를 통해 링 버스에 접속하는, 메모리 시스템.
  32. 제27항에 있어서, 상기 제어기는 명령 신호 노드를 통해 링 버스에 연결되는, 메모리 시스템.
  33. 제27항에 있어서, 상기 적어도 하나의 메모리 유닛은 개별적으로 데이터 통신 노드를 포함하는 복수의 두 개 이상의 재프로그래밍 가능한 비-휘발성 메모리 유닛을 포함하는, 메모리 시스템.
  34. 제33항에 있어서, 상기 두 개 이상의 메모리 유닛이 단일 집적 회로 칩 위에 두 개 이상의 메모리 플레인을 포함하는, 메모리 시스템.
  35. 제33항에 있어서, 상기 두 개 이상의 메모리 유닛은 각각의 두 개 이상의 개 별 집적회로 칩 위에 형성되는, 메모리 시스템.
  36. 제27항에 있어서, 다수 채널의 데이터가 링 버스 주위에 전송될 때다수 채널의 데이터가 통과 기능하도록 링 버스에 구동 가능하게 접속된 에러 정정 회로를 부가적으로 포함하는, 메모리 시스템.
  37. 제 36항에 있어서, 상기 제어기는 에러 정정 회로를 포함하는 메모리 시스템.
  38. 플래시 메모리 시스템에 있어서,
    데이터 노드와 어레이 사이에 연결된 적어도 하나의 데이터 저장 레지스터와 데이터 노드, 플래시 메모리 셀의 어레이를 개별적으로 포함하는 복수의 플래시 메모리 데이터 저장 유닛과;
    그사이에서 어드레스와 상세 정보의 통신을 위해 데이터 저장장치와 접속되고 명령 노드에 접속된 적어도 하나의 명령 유닛과:
    인터페이스 노드를 구비한 제어기와;
    링에서 데이터, 명령 및 인터페이스 노드를 함께 접속하는 버스; 및
    버스 상으로 명령 유닛에 명령을 제기하므로서 제어기와 데이터 저장 유닛 사이와 데이터 저장 유닛 사이에 데이터를 전송하도록 구동하는 제어기를 포함하고, 상기 적어도 하나의 레지스터는 전송된 데이터의 소스 혹은 목적지인, 플래시 메모리 시스템.
  39. 제38항에 있어서, 상기 적어도 하나의 레지스터는 두 개 이상의 레지스터를 포함하고, 상기 제어기는 전송된 데이터의 소스 혹은 목적지가 되도록 버스를 통해 어드레스된 저장 유닛중 적어도 두 개의 저장 유닛중 하나를 선택하도록 더 구동하는, 플래시 메모리 시스템.
  40. 재프로그램 가능한 비-휘발성 메모리 셀중 적어도 두 개 서브-어레이와;
    상기 적어도 두개 서브-어레이 각각이 데이터 저장 레지스터중 하나와 데이터를 전송하도록 구동가능하게 접속되고, 적어도 두 개의 데이터 저장 레지스터와;
    상기 적어도 두 개의 버스 노드의 각각이 데이터를 전송하도록 데이터 저장 레지스터중 적어도 하나와 구동가능하게 접속되고, 적어도 두 개의 버스 노드와;
    집적 회로 칩에 버스 입력을 제공하는 제1 세트의 복수의 외부 접점과;
    집적 회로 칩으로부터 출력된 버스를 제공하는 제2 세트의 복수의 외부접점; 및
    연속인 상기 적어도 두 개의 버스 노드와 상기 제1 및 제2 세트의 외부 접점을 연결하는 버스를 포함하고, 상기 집적 회로 칩이 연속인 제1 및 제2 세트의 접점을 통해 다른 집적회로 칩과 접속 가능한 것을 특징으로 하는, 집적회로 칩.
  41. 제40항에 있어서, 상기 적어도 두개의 버스 노드는 상기 적어도 두개의 서브 -어레이와 상기 적어도 두개의 레지스터를 구성하여 상기 적어도 두 개 서브-어레이와 상기 적어도 두개 버스 노드 사이에 선택된 데이터를 전송하도록 명령을 수신하는데 적용된 명령 노드를 포함하는, 집적회로 칩.
  42. 제40항에 있어서, 상기 적어도 두 개의 데이터 저장 레지스터는, 데이터를 전송하도록 상기 적어도 두 개 서브-어레이중 상이한 것과 구동 가능하게 접속된 적어도 두개의 상기 레지스터를 포함하는, 집적회로 칩.
  43. 적어도 하나의 어레이의 재프로그래밍 가능한 비-휘발성 메모리 셀과;
    데이터를 전송하도록 상기 적어도 하나의 어레이와 구동 가능하게 접속된 적어도 하나의 버스 노드와;
    집적회로 칩에 버스 입력을 제공하는 제1 세트의 복수의 외부 접점과;
    적어도 하나의 어레이의 재프로그래밍 가능한 비-휘발성 메모리 셀을 포함하는 다른 집적회로 칩의 입력버스 접점과의 연결을 위해, 집적회로 칩으로부터 제1 버스 출력을 제공하는 제2 세트의 복수의 외부 접점과;
    복귀 버스 접속을 설정하도록 기능하게하는 집접회로 칩으로부터 제2 버스 출력을 제공하는 제3 세트의 복수의 외부접점; 및
    연속인 상기 적어도 하나의 버스 노드와 외부 접점의 버스 입력단과 버스 출력단을 구동가능하게 연결시키는 버스를 포함하는, 집적회로 칩.
  44. 제43항에 있어서, 상기 제2 세트의 접점이 적어도 하나의 어레이의 재프로그래밍 가능한 비-휘발성 메모리 셀을 포함하는 다른 집적회로 칩의 입력 버스 접점과 접속되지 않을 때, 제3 세트의 접점이 구동되어 제2 버스 출력을 제공하는, 집적회로 칩.
  45. 제43항에 있어서, 회로 칩 상에서 임의의 저장장치에 접속된 제4 세트의 복수의 외부 접점과, 제3 세트의 접점으로 그 속에 저장된 데이터를 위치키도록 제3 세트의 접점에 임의의 저장장치를 접속하는 드라이버와 버스 데이터의 임의의 저장장치를 포함하는 회로를 부가적으로 포함하는, 집적회로 칩.
  46. 적어도 하나의 어레이의 재프로그래밍 가능한 비-휘발성 메모리 셀과;
    데이터를 전송하도록 상기 적어도 하나의 어레이와 구동 가능하게 접속되는 적어도 하나의 버스 노드와;
    집적회로 칩에 버스 입력을 제공하는 제1 세트의 복수의 외부 접점과;
    상기 집적회로 칩으로부터 버스 출력을 제공하는 제2 세트의 복수의 외부 접점과;
    제1 및 제2 세트의 외부 접점과 연속인 상기 적어도 하나의 버스 노드를 연결하는 버스를 포함하고,
    상기 집적회로 칩이 연속인 링으로 제1 및 제2 세트의 접점을 통해 다른 집적회로 칩과 연결 가능하고, 적어도 하나의 버스 노드는 버스상에서 수신된 데이터 의 임의 저장장치와 버스상으로 저장된 데이터를 출력하는 드라이버를 포함하는, 집적회로 칩.
  47. 제46항에 있어서, 상기 적어도 하나의 노드는 상기 적어도 하나의 노드의 식별 번호를 저장하는 제1 레지스터와 상기 적어도 하나의 노드로 지향하는 버스 상에서 데이터용 채널 번호를 저장하는 제2 레지스터를 부가적으로 포함하고, 그리하여 버스와의 인터페이스가 시간 다중화하는 모드로 동작하는, 집적회로 칩.
KR1020077003495A 2004-08-09 2005-08-03 링 버스 구조와 플래시 메모리 시스템에서의 그의 용법 KR20070060080A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/915,039 2004-08-09
US10/915,039 US8375146B2 (en) 2004-08-09 2004-08-09 Ring bus structure and its use in flash memory systems

Publications (1)

Publication Number Publication Date
KR20070060080A true KR20070060080A (ko) 2007-06-12

Family

ID=35695695

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077003495A KR20070060080A (ko) 2004-08-09 2005-08-03 링 버스 구조와 플래시 메모리 시스템에서의 그의 용법

Country Status (7)

Country Link
US (1) US8375146B2 (ko)
EP (1) EP1787208B1 (ko)
JP (1) JP5192233B2 (ko)
KR (1) KR20070060080A (ko)
CN (1) CN101036132B (ko)
TW (1) TWI439866B (ko)
WO (1) WO2006017725A2 (ko)

Families Citing this family (287)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7373561B2 (en) * 2002-10-29 2008-05-13 Broadcom Corporation Integrated packet bit error rate tester for 10G SERDES
US7490283B2 (en) * 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
US8375146B2 (en) 2004-08-09 2013-02-12 SanDisk Technologies, Inc. Ring bus structure and its use in flash memory systems
US7158421B2 (en) * 2005-04-01 2007-01-02 Sandisk Corporation Use of data latches in multi-phase programming of non-volatile memories
US7420847B2 (en) * 2004-12-14 2008-09-02 Sandisk Corporation Multi-state memory having data recovery after program fail
US7849381B2 (en) * 2004-12-21 2010-12-07 Sandisk Corporation Method for copying data in reprogrammable non-volatile memory
US7877539B2 (en) * 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US20060184719A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US9104315B2 (en) * 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US7293212B2 (en) * 2005-03-22 2007-11-06 Arm Limted Memory self-test via a ring bus in a data processing apparatus
US7389459B2 (en) * 2005-03-22 2008-06-17 Arm Limited Provision of debug via a separate ring bus in a data processing apparatus
US7206230B2 (en) 2005-04-01 2007-04-17 Sandisk Corporation Use of data latches in cache operations of non-volatile memories
US7463521B2 (en) * 2005-04-01 2008-12-09 Sandisk Corporation Method for non-volatile memory with managed execution of cached data
US7457910B2 (en) * 2005-06-29 2008-11-25 Sandisk Corproation Method and system for managing partitions in a storage device
US7558906B2 (en) 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
US7627733B2 (en) * 2005-08-03 2009-12-01 Sandisk Corporation Method and system for dual mode access for storage devices
US7409489B2 (en) * 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
US7949845B2 (en) 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
US7552271B2 (en) 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
US7669003B2 (en) * 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7480766B2 (en) * 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
US7652922B2 (en) 2005-09-30 2010-01-26 Mosaid Technologies Incorporated Multiple independent serial link memory
US20070165457A1 (en) * 2005-09-30 2007-07-19 Jin-Ki Kim Nonvolatile memory system
TWI543185B (zh) 2005-09-30 2016-07-21 考文森智財管理公司 具有輸出控制之記憶體及其系統
US11948629B2 (en) 2005-09-30 2024-04-02 Mosaid Technologies Incorporated Non-volatile memory device with concurrent bank operations
US20070076502A1 (en) 2005-09-30 2007-04-05 Pyeon Hong B Daisy chain cascading devices
US7814262B2 (en) * 2005-10-13 2010-10-12 Sandisk Corporation Memory system storing transformed units of data in fixed sized storage blocks
US7529905B2 (en) 2005-10-13 2009-05-05 Sandisk Corporation Method of storing transformed units of data in a memory system having fixed sized storage blocks
US7877540B2 (en) * 2005-12-13 2011-01-25 Sandisk Corporation Logically-addressed file storage methods
US7769978B2 (en) * 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US20070156998A1 (en) * 2005-12-21 2007-07-05 Gorobets Sergey A Methods for memory allocation in non-volatile memories with a directly mapped file storage system
US7793068B2 (en) * 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US20070143566A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with data alignment in a directly mapped file storage system
US20070143561A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Methods for adaptive file data handling in non-volatile memories with a directly mapped file storage system
US20070143378A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with adaptive file handling in a directly mapped file storage system
US7747837B2 (en) * 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7802064B2 (en) * 2006-03-31 2010-09-21 Mosaid Technologies Incorporated Flash memory system control scheme
TWI427637B (zh) * 2006-05-05 2014-02-21 Sandisk Technologies Inc 在程式執行期間具有背景資料鎖存快取的非揮發性記憶體及方法
EP2016590B1 (en) 2006-05-05 2011-10-26 SanDisk Corporation Non-volatile memory with background data latch caching during read operations and methods therefor
US7849256B2 (en) * 2006-07-11 2010-12-07 Advanced Micro Devices, Inc. Memory controller with ring bus for interconnecting memory clients to memory devices
US7904639B2 (en) * 2006-08-22 2011-03-08 Mosaid Technologies Incorporated Modular command structure for memory and memory system
EP2487794A3 (en) * 2006-08-22 2013-02-13 Mosaid Technologies Incorporated Modular command structure for memory and memory system
EP2074623A4 (en) * 2006-08-22 2010-01-06 Mosaid Technologies Inc MODULAR CONTROL STRUCTURE FOR A MEMORY AND A MEMORY SYSTEM
CA2659828A1 (en) * 2006-08-22 2008-02-28 Mosaid Technologies Incorporated Scalable memory system
US8407395B2 (en) 2006-08-22 2013-03-26 Mosaid Technologies Incorporated Scalable memory system
US7885112B2 (en) * 2007-09-07 2011-02-08 Sandisk Corporation Nonvolatile memory and method for on-chip pseudo-randomization of data within a page and between pages
US7734861B2 (en) 2006-09-08 2010-06-08 Sandisk Corporation Pseudo random and command driven bit compensation for the cycling effects in flash memory
US7606966B2 (en) * 2006-09-08 2009-10-20 Sandisk Corporation Methods in a pseudo random and command driven bit compensation for the cycling effects in flash memory
US20080130667A1 (en) * 2006-11-30 2008-06-05 International Business Machines Corporation Distributed arbitration mechanism for ring networks
US7818464B2 (en) * 2006-12-06 2010-10-19 Mosaid Technologies Incorporated Apparatus and method for capturing serial input data
KR101441280B1 (ko) * 2006-12-06 2014-09-17 컨버전트 인텔렉츄얼 프로퍼티 매니지먼트 인코포레이티드 혼합된 유형의 메모리 장치를 동작시키는 시스템 및 방법
US8271758B2 (en) 2006-12-06 2012-09-18 Mosaid Technologies Incorporated Apparatus and method for producing IDS for interconnected devices of mixed type
US8010709B2 (en) * 2006-12-06 2011-08-30 Mosaid Technologies Incorporated Apparatus and method for producing device identifiers for serially interconnected devices of mixed type
US8433874B2 (en) * 2006-12-06 2013-04-30 Mosaid Technologies Incorporated Address assignment and type recognition of serially interconnected memory devices of mixed type
US7925854B2 (en) * 2006-12-06 2011-04-12 Mosaid Technologies Incorporated System and method of operating memory devices of mixed type
US7627718B2 (en) * 2006-12-13 2009-12-01 Intel Corporation Frozen ring cache
US8984249B2 (en) * 2006-12-20 2015-03-17 Novachips Canada Inc. ID generation apparatus and method for serially interconnected devices
US7739444B2 (en) 2006-12-26 2010-06-15 Sandisk Corporation System using a direct data file system with a continuous logical address space interface
US7917686B2 (en) 2006-12-26 2011-03-29 Sandisk Corporation Host system with direct data file interface configurability
US8166267B2 (en) * 2006-12-26 2012-04-24 Sandisk Technologies Inc. Managing a LBA interface in a direct data file memory system
US8209461B2 (en) 2006-12-26 2012-06-26 Sandisk Technologies Inc. Configuration of host LBA interface with flash memory
US20080155175A1 (en) * 2006-12-26 2008-06-26 Sinclair Alan W Host System That Manages a LBA Interface With Flash Memory
US8046522B2 (en) * 2006-12-26 2011-10-25 SanDisk Technologies, Inc. Use of a direct data file system with a continuous logical address space interface and control of file address storage in logical blocks
US8122202B2 (en) * 2007-02-16 2012-02-21 Peter Gillingham Reduced pin count interface
US7796462B2 (en) * 2007-02-22 2010-09-14 Mosaid Technologies Incorporated Data flow control in multiple independent port
US8046527B2 (en) 2007-02-22 2011-10-25 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
US8429352B2 (en) * 2007-06-08 2013-04-23 Sandisk Technologies Inc. Method and system for memory block flushing
US20090063786A1 (en) * 2007-08-29 2009-03-05 Hakjune Oh Daisy-chain memory configuration and usage
US8825939B2 (en) * 2007-12-12 2014-09-02 Conversant Intellectual Property Management Inc. Semiconductor memory device suitable for interconnection in a ring topology
US8594110B2 (en) 2008-01-11 2013-11-26 Mosaid Technologies Incorporated Ring-of-clusters network topologies
US8131913B2 (en) * 2008-02-04 2012-03-06 Mosaid Technologies Incorporated Selective broadcasting of data in series connected devices
US7430584B1 (en) * 2008-03-12 2008-09-30 Gene Fein Data forwarding storage
US7636760B1 (en) * 2008-09-29 2009-12-22 Gene Fein Selective data forwarding storage
US7631051B1 (en) * 2008-09-29 2009-12-08 Gene Fein Geolocation assisted data forwarding storage
US7636758B1 (en) * 2008-07-10 2009-12-22 Gene Fein Advertisement forwarding storage and retrieval network
US9203928B2 (en) 2008-03-20 2015-12-01 Callahan Cellular L.L.C. Data storage and retrieval
US7673009B2 (en) * 2008-07-10 2010-03-02 Gene Fein Media delivery in data forwarding storage network
US7599997B1 (en) 2008-08-01 2009-10-06 Gene Fein Multi-homed data forwarding storage
US8458285B2 (en) * 2008-03-20 2013-06-04 Post Dahl Co. Limited Liability Company Redundant data forwarding storage
US7636759B1 (en) * 2008-09-29 2009-12-22 Gene Fein Rotating encryption in data forwarding storage
US7636761B1 (en) * 2008-09-29 2009-12-22 Gene Fein Measurement in data forwarding storage
US7877456B2 (en) * 2008-04-08 2011-01-25 Post Dahl Co. Limited Liability Company Data file forwarding storage and search
US7809873B2 (en) * 2008-04-11 2010-10-05 Sandisk Il Ltd. Direct data transfer between slave devices
US20090271562A1 (en) * 2008-04-25 2009-10-29 Sinclair Alan W Method and system for storage address re-mapping for a multi-bank memory device
US8386585B2 (en) * 2008-04-25 2013-02-26 Tajitshu Transfer Limited Liability Company Real-time communications over data forwarding framework
US7668926B2 (en) * 2008-04-25 2010-02-23 Gene Fein Real-time communications over data forwarding framework
US7668927B2 (en) * 2008-05-07 2010-02-23 Gene Fein Deletion in data file forwarding framework
US8452844B2 (en) * 2008-05-07 2013-05-28 Tajitshu Transfer Limited Liability Company Deletion in data file forwarding framework
KR101431760B1 (ko) * 2008-06-25 2014-08-20 삼성전자주식회사 Ecc 알고리즘을 이용한 플래시 메모리 장치 및 그구동방법
US8139390B2 (en) * 2008-07-08 2012-03-20 Mosaid Technologies Incorporated Mixed data rates in memory devices and systems
US8370446B2 (en) 2008-07-10 2013-02-05 Tajitshu Transfer Limited Liability Company Advertisement forwarding storage and retrieval network
US8599678B2 (en) 2008-07-10 2013-12-03 Tajitshu Transfer Limited Liability Company Media delivery in data forwarding storage network
US7636762B1 (en) * 2008-09-29 2009-12-22 Gene Fein Disassembly/reassembly in data forwarding storage
US7636763B1 (en) * 2008-09-29 2009-12-22 Gene Fein Mixed network architecture in data forwarding storage
US7685248B1 (en) * 2008-09-29 2010-03-23 Gene Fein User interface in data forwarding network
US8478823B2 (en) * 2008-09-29 2013-07-02 Tajitshu Transfer Limited Liability Company Selective data forwarding storage
US8352635B2 (en) * 2008-09-29 2013-01-08 Tajitshu Transfer Limited Liability Company Geolocation assisted data forwarding storage
US8181056B2 (en) * 2008-09-30 2012-05-15 Mosaid Technologies Incorporated Serial-connected memory system with output delay adjustment
US8161313B2 (en) * 2008-09-30 2012-04-17 Mosaid Technologies Incorporated Serial-connected memory system with duty cycle correction
US8549209B2 (en) 2008-11-04 2013-10-01 Mosaid Technologies Incorporated Bridging device having a configurable virtual page size
US8880970B2 (en) * 2008-12-23 2014-11-04 Conversant Intellectual Property Management Inc. Error detection method and a system including one or more memory devices
TWI517174B (zh) * 2008-12-18 2016-01-11 諾瓦晶片加拿大公司 錯誤檢測方法及包含一或更多個記憶體裝置之系統
US8832353B2 (en) * 2009-04-07 2014-09-09 Sandisk Technologies Inc. Host stop-transmission handling
US8132045B2 (en) * 2009-06-16 2012-03-06 SanDisk Technologies, Inc. Program failure handling in nonvolatile memory
US8307241B2 (en) * 2009-06-16 2012-11-06 Sandisk Technologies Inc. Data recovery in multi-level cell nonvolatile memory
US8521980B2 (en) 2009-07-16 2013-08-27 Mosaid Technologies Incorporated Simultaneous read and write data transfer
US8473669B2 (en) * 2009-12-07 2013-06-25 Sandisk Technologies Inc. Method and system for concurrent background and foreground operations in a non-volatile memory array
US8582382B2 (en) * 2010-03-23 2013-11-12 Mosaid Technologies Incorporated Memory system having a plurality of serially connected devices
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
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US8452911B2 (en) 2010-09-30 2013-05-28 Sandisk Technologies Inc. Synchronized maintenance operations in a multi-bank storage system
US8645588B2 (en) * 2010-11-01 2014-02-04 Advanced Micro Devices, Inc. Pipelined serial ring bus
KR101841622B1 (ko) * 2010-11-04 2018-05-04 삼성전자주식회사 온-다이 터미네이션 회로를 가지는 불휘발성 메모리 장치 및 그것의 제어 방법
US8472280B2 (en) 2010-12-21 2013-06-25 Sandisk Technologies Inc. Alternate page by page programming scheme
US8843693B2 (en) 2011-05-17 2014-09-23 SanDisk Technologies, Inc. Non-volatile memory and method with improved data scrambling
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
CN102346726A (zh) * 2011-09-20 2012-02-08 四川卫士通信息安全平台技术有限公司 板载多芯片高速环形互联方法
US8825967B2 (en) 2011-12-08 2014-09-02 Conversant Intellectual Property Management Inc. Independent write and read control in serially-connected devices
US8762627B2 (en) 2011-12-21 2014-06-24 Sandisk Technologies Inc. Memory logical defragmentation during garbage collection
KR20140006344A (ko) * 2012-07-04 2014-01-16 에스케이하이닉스 주식회사 메모리 시스템 및 그것에 포함된 메모리 장치의 동작 방법
US9471484B2 (en) 2012-09-19 2016-10-18 Novachips Canada Inc. Flash memory controller having dual mode pin-out
US8873284B2 (en) 2012-12-31 2014-10-28 Sandisk Technologies Inc. Method and system for program scheduling in a multi-layer memory
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9734050B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US9465731B2 (en) 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9348746B2 (en) 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9336133B2 (en) 2012-12-31 2016-05-10 Sandisk Technologies Inc. Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
KR20150115752A (ko) 2013-01-31 2015-10-14 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 적응성 입도 로우 버퍼 캐시
JP2014179141A (ja) * 2013-03-14 2014-09-25 Toshiba Corp 半導体記憶装置
US9037902B2 (en) 2013-03-15 2015-05-19 Sandisk Technologies Inc. Flash memory techniques for recovering from write interrupt resulting from voltage fault
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US9691452B2 (en) 2014-08-15 2017-06-27 Micron Technology, Inc. Apparatuses and methods for concurrently accessing different memory planes of a memory
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
CN106068644B (zh) * 2014-09-26 2019-03-01 奥林巴斯株式会社 传送系统和处理装置
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10042553B2 (en) 2015-10-30 2018-08-07 Sandisk Technologies Llc Method and system for programming a multi-layer non-volatile memory having a single fold data path
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
US9778855B2 (en) 2015-10-30 2017-10-03 Sandisk Technologies Llc System and method for precision interleaving of data writes in a non-volatile memory
US10120613B2 (en) 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
US9910594B2 (en) 2015-11-05 2018-03-06 Micron Technology, Inc. Apparatuses and methods for concurrently accessing multiple memory planes of a memory during a memory access operation
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US9760297B2 (en) * 2016-02-12 2017-09-12 Pure Storage, Inc. Managing input/output (‘I/O’) queues in a data storage system
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
JP6178909B1 (ja) * 2016-09-15 2017-08-09 ウィンボンド エレクトロニクス コーポレーション 不揮発性半導体記憶装置
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
US10860552B2 (en) * 2017-03-10 2020-12-08 Schweitzer Engineering Laboratories, Inc. Distributed resource parallel-operated data sorting systems and methods
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
CN107239363B (zh) * 2017-05-27 2020-04-24 北京东土军悦科技有限公司 一种ecc信息上报方法及系统
CN107134294B (zh) * 2017-05-27 2020-04-24 北京东土军悦科技有限公司 一种ecc信息获取方法及系统
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
CN109947605A (zh) * 2017-12-21 2019-06-28 北京比特大陆科技有限公司 故障诊断方法
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US12001688B2 (en) 2019-04-29 2024-06-04 Pure Storage, Inc. Utilizing data views to optimize secure data access in a storage system
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
TWI738135B (zh) * 2019-04-07 2021-09-01 新唐科技股份有限公司 監控系統開機之安全裝置及其方法
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
CN112286842B (zh) * 2019-07-22 2023-07-04 苏州库瀚信息科技有限公司 用于存储器控制器与存储器设备互连的总线
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US12001684B2 (en) 2019-12-12 2024-06-04 Pure Storage, Inc. Optimizing dynamic power loss protection adjustment in a storage system
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
TWI759703B (zh) * 2020-03-20 2022-04-01 群聯電子股份有限公司 電路布局結構與記憶體儲存裝置
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
CN114064527A (zh) * 2020-07-30 2022-02-18 苏州库瀚信息科技有限公司 无单一失败点的存储装置
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
CN113722770B (zh) * 2021-08-18 2024-06-18 上海励驰半导体有限公司 基于分级的数据完整性的端到端的保护方法及系统
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus
US11994723B2 (en) 2021-12-30 2024-05-28 Pure Storage, Inc. Ribbon cable alignment apparatus

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3190530A (en) 1961-05-10 1965-06-22 Illinois Tool Works Thin wall container with thickened rim structure
US4034036A (en) 1975-10-31 1977-07-05 Consupak, Inc. Parison control in longitudinal stretch
US4406004A (en) * 1980-11-05 1983-09-20 Anaconda-Ericsson, Inc. Ring scheduling apparatus for a digital multiplexed telecommunication system
US4527270A (en) * 1983-05-04 1985-07-02 Allen-Bradley Company Communications network with stations that detect and automatically bypass faults
JPS60141049A (ja) 1983-12-28 1985-07-26 Hitachi Ltd ル−プネツトワ−ク制御方式
US5072424A (en) 1985-07-12 1991-12-10 Anamartic Limited Wafer-scale integrated circuit memory
GB8606695D0 (en) 1986-03-18 1986-04-23 Sinclair Res Ltd Random chip addressing algorithm for wsi
US5043940A (en) 1988-06-08 1991-08-27 Eliyahou Harari Flash EEPROM memory systems having multistate storage cells
US5095344A (en) 1988-06-08 1992-03-10 Eliyahou Harari Highly compact eprom and flash eeprom devices
US5070032A (en) 1989-03-15 1991-12-03 Sundisk Corporation Method of making dense flash eeprom semiconductor memory structures
US5172338B1 (en) 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
JPH03179952A (ja) 1989-12-08 1991-08-05 Nec Corp 時分割多重ループ型バスシステム
JPH03262234A (ja) 1990-03-13 1991-11-21 Nec Corp パケット交換装置の転送制御方式
US5255371A (en) * 1990-04-02 1993-10-19 Unisys Corporation Apparatus for interfacing a real-time communication link to an asynchronous digital computer system by utilizing grouped data transfer commands
GB2244826A (en) 1990-06-08 1991-12-11 Anamartic Ltd Linking circuit modules
JPH04156741A (ja) 1990-10-19 1992-05-29 Nec Corp ループ・バス転送方式
US5343063A (en) 1990-12-18 1994-08-30 Sundisk Corporation Dense vertical programmable read only memory cell structure and processes for making them
US6222762B1 (en) 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5313421A (en) 1992-01-14 1994-05-17 Sundisk Corporation EEPROM with split gate source side injection
US5315541A (en) 1992-07-24 1994-05-24 Sundisk Corporation Segmented column memory array
US5444695A (en) * 1993-01-11 1995-08-22 Forte Networks, Inc. Token ring local area network testing apparatus providing station history information
US5689678A (en) * 1993-03-11 1997-11-18 Emc Corporation Distributed storage array system having a plurality of modular control units
US5555204A (en) 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
KR0169267B1 (ko) 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
US5414762A (en) * 1994-01-18 1995-05-09 Q.Sys International, Inc. Telephony controller with functionality command converter
US5661053A (en) 1994-05-25 1997-08-26 Sandisk Corporation Method of making dense flash EEPROM cell array and peripheral supporting circuits formed in deposited field oxide with the use of spacers
DE4423372A1 (de) 1994-07-04 1996-01-11 Ruppert Hans Peter Verfahren und Vorrichtung zum Anformen von Flanschen an Rohre aus teilkristallinen Thermoplasten
US5570425A (en) * 1994-11-07 1996-10-29 Digisonix, Inc. Transducer daisy chain
WO1997007464A1 (de) 1995-08-11 1997-02-27 Siemens Nixdorf Informationssysteme Ag Anordnung zum anschluss peripherer speichergeräte
US6459425B1 (en) * 1997-08-25 2002-10-01 Richard A. Holub System for automatic color calibration
US5903495A (en) 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
US5798968A (en) 1996-09-24 1998-08-25 Sandisk Corporation Plane decode/virtual sector architecture
US5890192A (en) 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
JP3455040B2 (ja) 1996-12-16 2003-10-06 株式会社日立製作所 ソースクロック同期式メモリシステムおよびメモリユニット
US5908468A (en) 1997-10-24 1999-06-01 Advanced Micro Devices, Inc. Data transfer network on a chip utilizing a multiple traffic circle topology
US6237791B1 (en) 1997-04-09 2001-05-29 Dtl Technology Limited Partnership Wide mouth hot fill container
US6611537B1 (en) * 1997-05-30 2003-08-26 Centillium Communications, Inc. Synchronous network for digital media streams
US6115756A (en) 1997-06-27 2000-09-05 Sun Microsystems, Inc. Electro-optically connected multiprocessor and multiring configuration for dynamically allocating time
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
US6700899B1 (en) * 1998-02-03 2004-03-02 Broadcom Corporation Bit slice arbiter
IL130796A (en) 1999-07-05 2003-07-06 Brightcom Technologies Ltd Packet processor
KR100363884B1 (ko) * 1999-12-27 2002-12-11 한국전자통신연구원 파장분할다중 기반 인터넷 프로토콜 망 구조와, 이러한 망구조에서의 패킷 송수신 시스템 및 방법
US6697373B1 (en) * 2000-01-18 2004-02-24 Mark Henrik Sandstrom Automatic method for dynamically matching the capacities of connections in a SDH/SONET network combined with fair sharing of network resources
US6640322B1 (en) 2000-03-22 2003-10-28 Sun Microsystems, Inc. Integrated circuit having distributed control and status registers and associated signal routing means
US6842769B1 (en) * 2000-05-05 2005-01-11 Interland, Inc. Automatically configured network server
US6266273B1 (en) 2000-08-21 2001-07-24 Sandisk Corporation Method and structure for reliable data copy operation for non-volatile memories
US6625687B1 (en) 2000-09-18 2003-09-23 Intel Corporation Memory module employing a junction circuit for point-to-point connection isolation, voltage translation, data synchronization, and multiplexing/demultiplexing
US6658509B1 (en) 2000-10-03 2003-12-02 Intel Corporation Multi-tier point-to-point ring memory interface
JP2002164941A (ja) * 2000-11-28 2002-06-07 Toshiba Corp 半導体装置及びデータ伝送システム
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
JP3631463B2 (ja) 2001-12-27 2005-03-23 株式会社東芝 不揮発性半導体記憶装置
US6522580B2 (en) 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
US6574719B2 (en) 2001-07-12 2003-06-03 International Business Machines Corporation Method and apparatus for concurrently communicating with multiple embedded dynamic random access memory devices
US7239606B2 (en) * 2001-08-08 2007-07-03 Compunetix, Inc. Scalable configurable network of sparsely interconnected hyper-rings
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6925007B2 (en) 2001-10-31 2005-08-02 Sandisk Corporation Multi-state non-volatile integrated circuit memory systems that employ dielectric storage elements
JP2003186822A (ja) * 2001-12-19 2003-07-04 Canon Inc モジュール間通信方法および装置
US7099922B2 (en) 2002-01-23 2006-08-29 International Business Machines Corporation Method and system for simultaneous management of multiple tokens on a communication ring
US7485499B2 (en) * 2004-07-29 2009-02-03 Sandisk Corporation Customized non-volatile memory device packages
US8375146B2 (en) 2004-08-09 2013-02-12 SanDisk Technologies, Inc. Ring bus structure and its use in flash memory systems

Also Published As

Publication number Publication date
CN101036132A (zh) 2007-09-12
US20060031593A1 (en) 2006-02-09
CN101036132B (zh) 2010-05-12
WO2006017725A3 (en) 2006-08-24
WO2006017725A2 (en) 2006-02-16
JP5192233B2 (ja) 2013-05-08
US8375146B2 (en) 2013-02-12
EP1787208A2 (en) 2007-05-23
JP2008509499A (ja) 2008-03-27
TWI439866B (zh) 2014-06-01
TW200627174A (en) 2006-08-01
EP1787208B1 (en) 2015-03-18

Similar Documents

Publication Publication Date Title
KR20070060080A (ko) 링 버스 구조와 플래시 메모리 시스템에서의 그의 용법
US7212440B2 (en) On-chip data grouping and alignment
CN1329924C (zh) 非易失性存储器中可靠的数据拷贝操作的新颖方法和结构
KR100663738B1 (ko) 동시 다중 데이터 섹터 프로그래밍 및 다른 지정 블럭들에대한 물리적 블럭 특성들의 저장기능을 갖는 플래시이이피롬 시스템
US7409473B2 (en) Off-chip data relocation
JP3979486B2 (ja) 不揮発性記憶装置およびデータ格納方法
KR100320360B1 (ko) 원격재프로그램이가능한마이크로콘트롤러용프로그램메모리
CN101373449B (zh) Ecc控制电路、多通道存储器系统以及相关操作方法
KR101638764B1 (ko) 균일한 판독 대기시간을 위한 중복 데이터 저장
US7937523B2 (en) Memory system with nonvolatile semiconductor memory
US20110072201A1 (en) Novel NAND-based hybrid NVM design that integrates NAND and NOR in 1-die with serial interface
KR20120135327A (ko) 출력 제어 메모리
KR20080068835A (ko) 복수 개의 독립적인 직렬 링크 메모리
CN103650054A (zh) 包含存储器系统控制器的设备和相关方法
CN103635969A (zh) 包含存储器系统控制器的设备和相关方法
US8769217B2 (en) Methods and apparatus for passing information to a host system to suggest logical locations to allocate to a file
CN113010093A (zh) 存储器系统以及存储器控制器
JP7510012B2 (ja) メモリデバイスのページバッファ内のデータ読取り用クロック信号返還スキーム
KR101398403B1 (ko) 레거시 호스트들을 위한 방법 및 메모리 시스템
US8037231B2 (en) Memory architecture for separation of code and data in a memory device

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid