KR100281432B1 - 플래쉬 메모리에 기초한 주메모리 - Google Patents

플래쉬 메모리에 기초한 주메모리 Download PDF

Info

Publication number
KR100281432B1
KR100281432B1 KR1019960706889A KR19960706889A KR100281432B1 KR 100281432 B1 KR100281432 B1 KR 100281432B1 KR 1019960706889 A KR1019960706889 A KR 1019960706889A KR 19960706889 A KR19960706889 A KR 19960706889A KR 100281432 B1 KR100281432 B1 KR 100281432B1
Authority
KR
South Korea
Prior art keywords
address
flash
signal
memory
nonvolatile memory
Prior art date
Application number
KR1019960706889A
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 피터 엔. 데트킨
Application granted granted Critical
Publication of KR100281432B1 publication Critical patent/KR100281432B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1045Read-write mode select circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)
  • Dram (AREA)

Abstract

4개의 상위한 판독 모드에서 스위칭될 수 있는 플래쉬 메모리 칩이 설명된다. 이들 모두를 채용하는 컴퓨터 시스템 및 계층들이 또한 설명된다. 제1판독모드(비동기식 플래쉬모드)에서, 플래쉬 메모리는 표준 플래쉬 메모리로서 판독된다. 이 모드에서, 제1어드레스의 내용에 대한 판독은 판독된 제2어드레스가 특정되기 전에 완료되어야 한다. 제2판독모드(동기식 플래쉬 모드)에서, 클록신호는 플래쉬 칩에 제공되고, 데이타 버스트에 속하는 일련의 어드레스는 매 클록당 일 어드레스로 특정된다. 다음에, 그 버스트에 대하여 특정된 어드레스에 저장된 내용은 계속적으로 그 어드레스가 제공되었던 순서로 다음 클록들 동안에 출력된다. 대체적으로, 만약 동기식 모드에서 단일 어드레스가 플래쉬 칩에 제공된다면, 그 버스트에 대한 후속하는 어드레스는 그 플래쉬 칩내에서 발생될 것이고, 그 다음에 그 데이타 버스트는 그 플래쉬 칩으로부터 출력으로서 제공될 것이다. 제3판독모드 비동기식 DRAM(동적 임의 접근 메모리) 모드 플래쉬 메모리는 DRAM을 에뮬레이트한다. 그래서, 행 및 열 어드레스는 행 및 열 어드레스 스트로브 신호를 이용하여 플래쉬 메모리내로 스트로브된다. 그 다음에, 플래쉬 메모리는 행 및 열 어드레스를 내부적으로 단일 어드레스로 변환시키고, 그 단일 어드레스에 저장된 데이타를 출력시킨다. 더 나아가, 비록 플래쉬 메모리가 연장된 선충전 주기 내지 재생될 것을 필요로 하지 않을지라도, 비동기식 DRAM 모드에서, 플래쉬 메모리는 DRAM처럼 선충전 주기 및 재생 사이클에 응답한다. 그래서, 비동기식 DRAM 모드에서, 플래쉬 메모리는 표준 DRAM 제어기에 의하여 제어될 수 있다. 제4판독모드(동기식 DRAM 모드)에서, 제2 및 제3모드의 특성이 동기식 DRAM을 에뮬레이트하는 플래쉬 메모리를 생성하도록 결합된다.

Description

[발명의 명칭]
플래쉬 메모리에 기초한 주메모리
[도면의 간단한 설명]
제1도는 고속버스에 의하여 플래쉬 주 메모리에 결합된 마이크로프로세서를 가진 컴퓨터 시스템을 나타내는 도.
제2도는 저전력 소모형이지만 고성능인 컴퓨터 시스템을 구현하기 위하여 플래쉬 주메모리와 정적 마이크로프로세서를 결합시킨 컴퓨터 시스템을 나타내는 도.
제3도는 동기식 백투백 데이타 버스트 판독 사이클을 지원하기 위하여 수개의 비동기식 플래쉬 메모리 장치를 인터레이스한 플래쉬 메모리 부시스템을 나타내는 도.
제4도는 비동기식 플래쉬 메모리에 대한 판독 사이클을 나타내는 타이밍 다이어그램.
제5도는 제3도의 플래쉬 메모리 부시스템에 대한 상태천이 다이어그램을 나타내는 도.
제6도는 플래쉬 배열의 내부 뱅크로부터 동기식 백투백 데이타 버스트 판독 사이클을 지원하기 위하여 동기식 플래쉬 인터페이스를 가진 플래쉬 메모리 집적회로를 나타내는 블록 다이어그램.
제7도는 동기식 플래쉬 인터페이스를 가진 플래쉬 메모리에 대한 백투백 데이타 버스트 판독 사이클을 나타내는 타이밍 다이어그램.
제8도는 고속 동기식 버스 및 버스 특정 글루(glue) 로직을 이용하는 마이크로프로세서에 결합된 일반적 동기식 플래쉬 인터페이스 플래쉬 메모리 장치를 나타내는 컴퓨터 시스템의 블록 다이어그램.
제9도는 비동기식 주 메모리 인터페이스를 가진 플래쉬 메모리 집적회로를 나타내는 블록 다이어그램.
제10도는 비동기식 주 메모리 인터페이스를 가진 플래쉬 메모리에 대한 행열 어드레스 멀티플렉싱 비동기식 판독 사이클을 나타내는 타이밍 다이어그램.
제11도는 비동기식 주 메모리 인터페이스를 가진 플래쉬 메모리에 대한 재생 사이클을 나타내는 타이밍 다이어그램.
제12도는 비동기식 주 메모리 인터페이스를 가진 플래쉬 메모리 집적회로에 대한 비동기식 주 메모리 인터페이스 단일 인-라인 메모리 모듈을 나타내는 블록 다이어그램.
제13도는 플래쉬 메모리에 기초한 비동기식 주 메모리 인터페이스 단일 인-라인 메모리 모듈에 억세스하기 위하여 동적 임의 접근 메모리 제어기를 사용하는 컴퓨터 시스템을 나타내는 블록 다이어그램.
제14도는 동기식 주 메모리를 가진 플래쉬 메모리 집적회로를 나타내는 블록 다이어그램.
제15도는 플래쉬 메모리에 기초한 동기식 주 메모리 인터페이스 단일 인-라인 메모리 모듈에 억세스하기 위하여 동기식 동적 임의 접근 메모리를 사용하는 컴퓨터 시스템을 나타내는 블록 다이어그램.
[발명의 상세한 설명]
[발명의 분야]
본 발명은 컴퓨터의 아키텍추어 분야에 관련된다. 특히 본 발명은 주메모리로서 거대블록 소거가능 비휘발성 반도체 메모리를 이용하는 컴퓨터 시스템에 관련된다.
[발명의 배경]
현재의 컴퓨터 프로그램이 점점 더 향상되어 감에 따라, 이들 컴퓨터 프로그램을 수용하기 위하여 현재의 개인용 컴퓨터 시스템 또한 더욱 더 향상되어야 한다. 컴퓨터 프로그램은 그것을 구성하는 코드명령의 수가 과거보다 평균적으로 더욱 많아지고 있으며, 그 프로그램을 수행할 때 기록되고 판독되는 더욱 큰 데이타 파일에 대한 접근을 요구한다.
전형적으로, 개인용 컴퓨터의 심장부로서의 중앙처리장치(CPU)는 마이크로프로세서 칩상에 존재한다. 증가하는 고속의 동작속도에서 운용되는 새로운 마이크로프로세서 칩은 개인용 컴퓨터가 거대한 프로그램을 정시에 실행하기 위하여 지속적인 발전을 하고있다. 통상, 이들 컴퓨터 칩은 CMOS(상보적 금속산화물 반도체) 기술을 이용하여 발전되어 왔다. CMOS에 대한 최대 전력소모는 클록펄스의 상승부와 하강부(즉, 클록 신호가 저전압상태에서 고전압상태로 천이할 때와 그 반대)에서 나타난다.
마이크로프로세서의 동작속도가 증가하면, 특정 시간주기내의 클록펄스수가 증가하고, 그것에 의하여 그 시간주기동안 마이크로프로세서의 전력소모도 증가한다. 더 나아가, 더욱 많은 열이 마이크로프로세서에 의하여 발생하고 컴퓨터 시스템내의 구성 장치들의 손상을 막기 위하여 그 열은 소모방출되어야 한다.
전력소모 및 열방출은 개인용 컴퓨터 시스템을 설계할 때 중요한 문제로 취급된다. 이것은 특히 전형적으로 전지에 의하여 전력공급되는 휴대용 컴퓨터인 경우에는 더욱 그러하다. 컴퓨터가 소모하는 전력이 증가함에 따라, 컴퓨터가 주어진 크기의 전지로써 컴퓨터가 동작할 수 있는 시간은 감소한다. 그래서, 컴퓨터의 동작속도가 증가하므로써, 설계자는 여러가지 어려운 상황에 직면하게 된다.
만약 동일한 크기의 전지가 사용된다면, 컴퓨터 시스템의 동작속도가 증가할 때 유효 동작시간은 감소하여야 한다. 한편, 유효한 동작시간이 일정하게 유지되도록 하려한다면, 부가적인 전지를 추가하거나(이것은 컴퓨터의 크기와 무게를 증가시킨다) 또는 특이한 그래서 고가의 전지기술 또는 그 둘 모두를 이용할 필요가 있다.
휴대용 컴퓨터의 경향은 소형화, 고속화, 저렴화 및 경량화이다. 그래서, 추가적인 전지를 부가하거나 더 고가의 전지를 이용하는 것은 커다란 불이익을 요구한다. 이러한 불이익은 고속 마이크로프로세서에 의하여 발생되는 추가적인 열을 방출하기 위하여 추가적인 냉각팬 또는 다른 냉각기술을 필요로 하므로써 더욱 커진다.
또한, 마이크로프로세서가 고속으로 동작하기 때문에, 그들은 주어진 시간에 더욱 많은 명령을 수행할 수 있고 그래서 그들은 또한 그 주기동안 더욱 많은 데이타를 처리할 수 있다. 일종의 병목이 고속 마이크로프로세서가 효과적으로 이동되도록 보호할 수 있는 고속 마이크로프로세서를 가진 컴퓨터 시스템에서 발전되어 왔다. 이러한 병목은 마이크로프로세서가 실행할 명령 및 명령을 실행할 때 마이크로프로세서가 이용할 데이타를 제공하는 버스(또는 버스들)이다.
만약 실행될 다음 명령이 마이크로프로세서가 그것을 필요로 할 때 그것이 가용하지 않다면, 마이크로프로세서는 요구된 명령이 검색되고 그 마이크로프로세서에 제공되기까지 유휴상태로 대기하여야 한다(즉 대기 사이클을 삽입한다). 더 나아가, 만약 실행될 다음 명령이 그 마이크로프로세서에 즉시 가용하지 않은 데이타를 요구한다면, 그 마이크로프로세서는 또한 그 데이타가 검색될 때까지 유휴상태로 되어야 한다. 이러한 유휴시간중에, 마이크로프로세서 클록은 계속되고, 그것에 의하여 불필요한 전력소모와 방출되어야 할 열을 발생시킨다.
마이크로프로세서가 이들 대기사이클을 만나게 되는 빈도수를 감소시키기 위하여, 많은 현재의 고성능 마이크로프로세서는 소형 내부캐쉬(소위, 일차 캐쉬)를 가지고 있다. 실행될 가능성이 높은 명령 및 명령을 실행하므로써 필요하게 된 가능성이 높은 데이타를 이러한 내부캐쉬에 저장하고 마이크로프로세서의 CPU에 의하여 즉시 억세스될 수 있도록 하게 한다.
컴퓨터 프로그램의 순차적인 특성때문에, 프로그램내의 어떤 특별한 명령이 실행될 때 다음에 실행될 명령은 현재 실행중인 명령을 뒤따라올 명령일 확률이 상당히 높다. 그래서, 어떤 명령이 실행될 때, 캐쉬는 요구된 명령의 복사된 것이 캐쉬내에서 즉시 가용인지 여부를 판단하기 위하여 검사된다. 만약 요구된 명령의 복사된 것이 캐쉬내에 저장되어 있으면(소위, 캐쉬히트), 그 명령의 복사된 것은 캐쉬로부터 직접 CPU에 제공될 수 있고, CPU는 그 명령이 그것이 컴퓨터 시스템 저장된 어떤 곳으로부터라도 마이크로 프로세서 칩으로 검색되는 동안 대기할 필요가 없다.
만약 요구된 명령의 복사된 것이 캐쉬내에 저장되어 있지 않으면(소위, 캐쉬미스), CPU는 그 명령이 그것이 컴퓨터 시스템 저장된 어떤 곳으로부터 마이크로프로세서 칩으로 검색되는 동안 대기하여야 한다.
사실상, 단지 다음 실행될 명령만을 검색하는 것보다는, 다음 실행될 명령 및 다음 실행될 명령에 후속하는 어떤 수의 명령을 검색하는 것에 의하여 캐쉬선(cache line)이 형성된다. 이러한 방식으로서, 만약 후속명령이 실제로 실행될 것이 요구된다면, 그들은 캐쉬의 캐쉬선내로부터 CPU로 즉시 가용될 것이다. 프로그램의 순차적 특성 때문에, 캐쉬의 이점은 또한 프로그램에 의해 사용되는 데이타에도 적용된다.
내부캐쉬는 어떤 시간에서 캐쉬선으로 채워져 있기 때문에, 많은 마이크로프로세서는 데이타를 일종의 버스트 모드로서 수용한다. 전형적인 버스트 판독에 있어서, 마이크로 프로세서는 캐쉬선내로 판독된 데이타 또는 명령의 제1어드레스를 특정한다. 그 다음에, 캐쉬선의 어드레스에 저장된 데이타 또는 명령은 그들이 컴퓨터내에 저장된 장소로부터 마이크로프로세서로 순차적으로 송신된다.
흔히 마이크로프로세서의 내부캐쉬는 정적(static) 임의 접근 메모리(SRAM)를 사용하여 만들어진다. 각각의 SRAM 셀은 6 내지 8개의 트랜지스터로 형성되기 때문에, 상대적으로 작은 SRAM 캐쉬에 의하여 마이크로프로세서 칩내에 여유공간이 존재한다. 더 나아가, 전력이 그 디바이스를 동작시키기에 충분하기만 하면 SRAM은 저장된 정보를 유지한다는 의미에서 SRAM은 휘발성이다. 만약 전력이 제거되면, SRAM 캐쉬의 내용은 사라진다.
어떤 마이크로프로세서는, 만약 전력이 그들로부터 제거된다면 전력이 복구되었을 때 그들이 전력이 제거될 당시에 있었던 상태로 직접 돌아갈 수 없다는 의미에서, 그것은 동적(dynamic)이다. 전력이 복구될 때, 마이크로프로세서는 다시 초기화되어야 하고, 이전에 만들어졌던 적어도 몇가지의 처리진행이 사라질 가능성이 있다.
다른 마이크로프로세서는, 그들이 에너지 절약형 전력 강하 모드에 있을 수 있고 그래서 상당히 빠르게 그들이 그 전력 강하모드로 들어가기 직전의 상태로 복귀할 수 있다는 의미에서, 정적(static)이다.
앞에서 언급한 바와 같이, 데이타 및 명령은 컴퓨터 시스템내에 저장되고 하나 또는 2이상의 버스 시스템에 의하여 마이크로프로세서로 제공된다. 비교적 고속의 RAM의 대부분은 휘발성이고 상당히 고가이기 때문에, 전형적인 컴퓨터 시스템은 코드와 데이타를 플로피디스크 내지 하드디스크와 같은 비교적 저가의 비휘발성 메모리 저장 장치에 저장한다.
또한 비휘발성 메모리가 상당히 늦은 억세스 속도를 갖고 있기 때문에 전형적인 컴퓨터 시스템은 메인메모리를 갖고 있다. 어떤 프로그램이 실행될 때, 컴퓨터 시스템은 쉐도우잉(shadowing)이라고 알려진 기법으로서 저속 비휘발성 메모리로부터 고속 휘발성 메모리로 그 프로그램 실행을 위하여 요구된 코드 및 데이타를 복사하는 것을 이용한다. 다음에 주 메모리에의 쉐도우 복사는 프로그램을 실행하기 위하여 이용된다. 만약 프로그램 실행 과정중에 쉐도우 복사에 어떤 변경이 생기면, 쉐도우 복사는 프로그램이 실행을 종료한 때에 다시 저속 비휘발성 메모리로 복사된다. 더 나아가, 예기치 않던 전력 고장은 휘발성 메모리의 내용을 사라지게 만들기 때문에, 통상 프로그램의 실행 과정중에 생성된 중간 결과를 저장한다.
주메모리의 대부분의 공통된 형식은 동적 임의 접근 메모리(DRAM)이다. 비록 그것이 SRAM보다 저속이지만 DRAM은 동일한 복잡도를 가지는 SRAM보다 약 4배 정도 많은 데이타를 저장할 수 있기 때문에 DRAM은 SRAM보다 더욱 일반적으로 이용된다.
DRAM은 커패시터를 포함하는 집적회로내에 정보를 저장한다. 커패시터는 시간이 경과함에 따라서 그들의 전하량을 손실하기 때문에, DRAM은 DRAM 칩이 계속적으로 “재생”(refresh; 재충전, recharge)되도록 하게 하는 로직에 의하여 제어되어야 한다. DRAM이 재생되고 있을 때에, 그것은 마이크로프로세서에 의하여 기록될 수도 판독될 수도 없다. 그래서, 만약 DRAM이 재생되는 동안에 마이크로프로세서가 DRAM을 억세스하여야 한다면, 하나 또는 그 이상의 대기상태가 일어난다.
어떤 컴퓨터에서는, DRAM 대신에 SRAM이 주메모리로 사용된다. SRAM을 주메모리로 사용하는 이점은 SRAM이 DRAM보다 억세스가 비교적 빠르다는 것이다. 더 나아가, SRAM은 재생될 필요가 없기 때문에 마이크로프로세서에 의한 억세스에 대하여 항상 가용상태이고, DRAM이 재생되고 있는 동안에 억세스가 시도되는 경우에 마이크로프로세서가 대기상태를 포함하도록 DRAM에 요구되었던 필요성을 제거한다. 더욱이, 재생 요구가 없으므로써 그 재생 사이클 제어에 관한 염려가 없기 때문에 SRAM에 기초한 주메모리를 가지는 컴퓨터 시스템의 설계를 단순화한다. 사실, 전력 고장이 일어난 경우에 단순한 전지 교환은 SRAM의 내용을 유지하면서 제공될 수 있다. 물론, 만약 전지 교환이 실패하면, SRAM 주메모리의 내용은 사라질 것이다.
주메모리를 SRAM으로 완전히 구성하기 보다는, DRAM을 이용하여 주메모리를 구현한 다음 SRAM에 기초한 외부 캐쉬메모리 즉 마이크로프로세서 칩의 외부에 있는 캐쉬메모리로써 DRAM에 기초한 주메모리를 보충하는 것이 보통이다. 외부 캐쉬는 마이크로프로세서내에 포함되지 않기 때문에, 전형적으로 그것은 내부 캐쉬에 저장될 수 있는 데이타 및 명령보다 더 많은 량을 저장하도록 만들어질 수 있다. 하지만, 외부 캐쉬는 마이크로프로세서내에 위치될 수 없기 때문에, 그것은 마이크로프로세서 칩으로 들어가고 나오는 데이타 및 명령에 대한 병목을 종종 형성하는 버스들중의 하나를 이용하여 마이크로프로세서에게 데이타 및 명령을 제공하여야 한다. 고속의 마이크로프로세서 칩은 전형적으로 하나 또는 두 개의 고속 버스를 이용하여 컴퓨터 시스템의 나머지 부분과 인터페이스한다. 이들 버스중 제1의 것은 주메모리버스라고 불리우는 상당한 고속의 비동기 버스이다. 이들 버스중 제2의 것은 로컬 버스라고 불리우는 상당한 고속의 동기 버스이다. 주메모리 버스 및 로컬 버스의 전형적인 동작 속도는 16 내지 33MHz의 범위에 있으며, 점점 더 고속의 버스로 되는 것이 경향이다.
비록 마이크로프로세서가 주메모리 버스와 직접 인터페이스할 수 있지만, 어떤 마이크로프로세서는 로컬버스와의 외부 인터페이스를 제공하지 않는다. 이들 마이크로프로세서는 전형적으로 확장버스라고 불리우는 비교적 저속의 동기버스와 인터페이스한다. 확장버스의 전형적인 동작속도는 8 내지 12MHz 범위에 있다.
주메모리(즉 DRAM) 버스는 주메모리에 억세스하기 위하여 마이크로프로세서 칩에 의하여 이용된다. 보통, DRAM 칩과 직접 인터페이스하기 보다는, 마이크로프로세서는 DRAM 칩 또는 복수의 칩에 차례로 결합된 DRAM 제어기 칩에 결합된다. DRAM 제어기는 마이크로프로세서에 의하여 초기화된 DRAM 칩에의 억세스를 제어한다. DRAM 제어기는 또한 DRAM 내용을 주기적으로 재생하기 위한 재생 사이클과 같은 오버헤드 유지를 제어한다. 어떤 마이크로프로세서는 그들내에 직접 내장된 DRAM 제어기를 가지고 있다. 종종, DRAM 또는 SRAM 칩은 표면장착 패키지에 포함되고, DRAM 또는 SRAM 칩은 단일 인-라인 메모리 모듈(SIMM)으로 불리우는 소형회로기판에 부착된다. 그래서 다른 것을 위한 일 타입의 SIMM을 단순히 교환하므로써 컴퓨터 시스템내의 주메모리의 전체량(즉 억세스속도)를 상당히 용이하게 변경 할 수 있다. SRAM에 기초한 외부 캐쉬는 또한 DRAM 버스를 통하여 마이크로프로세서에 결합된다. 만약 컴퓨터 시스템이 로컬버스를 가지면, 마이크로프로세서는 상당한 고속으로 로컬버스에 결합하는 디바이스에 억세스할 수 있다. 그래서, 그래픽 어댑터 카드와 같은 고대역폭 디바이스 및 고속 입/출력 디바이스는 전형적으로 로컬버스에 결합된다. 때때로, 외부캐쉬는 DRAM 버스보다는 로컬버스에 결합된다. 또한 로컬버스에 인터페이스하도록 설계된 DRAM 제어기를 이용하여 로컬버스에 DRAM을 결합시키므로써 주메모리 버스상에 주메모리를 보충(또는 대체)하는 것은 가능하다.
로컬버스에 결합된 각각의 디바이스는 대응하는 커패시터 부하를 갖는다. 로컬버스에 대한 부하가 증가함에 따라, 로컬버스의 동작속도는 감소하고 버스를 구동하기 위하여 필요로 하는 전력은 증가한다. 그래서, 로컬버스에 결합된 하나의 디바이스는 로컬버스로부터 고속주변장치 버스(예, 주변장치상호접속(PCI) 버스)라고 불리우는 다른 버스로의 주변장치 버스 브리지가 될 수 있다. 버스 브리지는 고속 로컬버스로부터 고속 주변장치에 결합된 디바이스 부하를 분리시킨다.
로컬버스에 결합되는 다른 디바이스는 전형적으로 저성능 확장버스에 고성능 로컬버스를 결합시키는 확장버스 브리지이다. 컴퓨터 시스템의 저대역폭 성분은 저성능 확장버스에 결합된다. 전형적으로 확장버스에 결합되는 일타입의 디바이스는 플래쉬 메모리를 사용한다. 플래쉬 메모리는 전형적으로 일종의 고밀도, 비휘발성, 기록/판독 메모리이다. 플래쉬 메모리에 기초한 디바이스의 예는 BIOS ROM 및 하드디스크 대체 장치이다.
플래쉬 메모리는 소거면에서 전통적인 EEPROM(전기적 소거 프로그램가능 판독 전용 메모리)과 다르다. 전통적인 EEPROM는 개별적인 바이트소거 제어를 위하여 선택 트랜지스터를 이용한다. 한편, 플래쉬 메모리는 단일 트랜지스터 셀을 가지고 고밀도를 실현한다. 전형적인 플래쉬 메모리 배열(array)에 대하여, 논리 “일”이라는 의미는 비트 셀에 대응하는 플로팅게이트에 전자가 거의 저장되지 않은 것이다. 논리 “영”이라는 의미는 비트 셀에 대응하는 플로팅게이트에 많은 전자가 저장되어 있는 것이다. 플래쉬 메모리 배열의 각각의 비트는 먼저 소거를 하지 않고는 논리 영 상태로부터 논리 일 상태로 중복기록될 수 없다. 플래쉬 소거 동작중에, 고전압이 블록 또는 전체 칩내의 모든 메모리 셀의 소스에게 동시에 제공된다. 그 결과 전체 배열 또는 전체 블록의 소거가 있게 된다.
플래쉬 메모리 배열이 소거된 후, 논리 일은 플래쉬 메모리 배열의 각각의 비트에 저장된다. 다음, 소거되는 상태와 관련하여 고유의 수 전자를 포함하는 플로팅 게이트에 간단히 전자를 추가하는 것이 수반된다면 플래쉬 메모리 배열의 각각의 단일 비트 셀은 논리 일로부터 논리 영으로 프로그래밍(중복기록)될 수 있다. 플래쉬 메모리에 대한 프로그램 동작은 또한 기록동작으로 불리운다.
전형적인 플래쉬 메모리 배열에 관련된 판독동작은 다른 ROM 디바이스에 관련된 판독동작과 유사하다. 전형적인 고속 플래쉬 메모리 배열에 대한 판독 동작은 80나노초(nS)의 차수에서 취해진다. 하지만, 플래쉬 메모리 배열에 대한 기록 및 소거 동작은 매우 느리다. 전형적으로 소거동작은 1초의 차수에서 취해진다. 플래쉬 메모리 배열의 단일 워드(word)에 대한 기록 동작은 10 마이크로초의 차수에서 취해진다.
1992년 7월 1일 발행된 영국 특허 공보(번호 GB2 251 324 A)에는 플래쉬 메모리를 이용한 컴퓨터 시스템이 개시되어 있다. 이 특허 공보는 플래쉬 메모리를 컴퓨터 시스템에서 구현하기 위한 다양한 아키텍추어를 개시하고 있다. 여기에 언급된 하나의 아키텍추어는 일종의 가변파일구조(variable file structure)이다. 가변파일구조에 있어서, 컴퓨터 코드는 플래쉬 메모리내에서 인접하여 저장되므로써, CPU가 RAM을 필요로 하지 않고 플래쉬 메모리로부터 직접 컴퓨터 코드를 실행할 수 있도록 허락한다. 직접 맵핑 가변파일 구조는 모든 플래쉬 메모리 배열로부터 직접 코드실행을 할 수 있도록 허용하는 것이다. 페이지 맵핑 가변파일구조는 플래쉬 메모리 배열의 일부분으로부터 직접 코드실행을 할 수 있도록 허용하는 것이다. 그래서 플래쉬 메모리는 휴대용 컴퓨터내에서 사용자에게 디스크에 기초한 시스템에 유사한 기능을 제공하면서 주메모리로서의 역할을 할 수 있다.
ROM-실행가능 DOS는 상업용으로 가능하고, 시스템 제조자와 고급 사용자에게 여러가지 이점을 제공한다. 첫째, 대부분의 운영체제가 고정코드로 구성되어 있기 때문에, DOS를 실행하기 위해서 요구되는 시스템 RAM의 용량은 50K에서 15K로 감소되고, 그로 인하여 시스템 공간과 전력을 절약할 수 있다. 둘째, DOS는 이제 플래쉬 메모리와 같은 단일 ROM 타입의 디바이스내에 영구저장되고 그로부터 실행될 수 있다. 이것은 시스템이 즉시 박스 밖으로 실행될 준비가 되어 있도록 하는 것을 제공한다. 마지막으로, 종래의 디스크-DRAM 부트기능 및 소프트웨어 다운로딩단계가 제거됨으로써, 사용자는 “즉시성”을 즐길 수 있게 된다.
예를 들면 응용프로그램 소프트웨어 및 운영체제코드를 상주 플래쉬 메모리(RFA)에 저장시켜 놓으므로써, 사용자는 가상적으로 즉시성 및 적소의 코드실행성을 즐기게 된다. RFA는 또한, ROM과는 달리 시스템내에서 갱신가능하기 때문에, 소프트웨어 낙후성을 방지할 수 있다. 디스크보다는 플래쉬 메모리에 저장된 상주 소프트웨어는 전지 수명을 연장시키고 시스템의 신뢰성을 증가시킨다.
플래쉬 메모리에 대한 데이타 소거 및 기록은 디스크에 대한 정보 재기록과는 분명히 다른 동작이기 때문에, 새로운 소프트웨어 기술은 플래쉬가 디스크 기능을 에뮬레이트(emulate)할 수 있도록 발전되어 왔다. 마이크로소프트사의 플래쉬 파일 시스템(FFS)과 같은 파일관리 소프트웨어는 플래쉬 메모리 구성 장치 및 플래쉬 카드가 다스크의 파일 저장능력을 에뮬레이팅하는 것을 허용한다. 마이크로소프트사의 FFS는 명백히 MS-DOS가 디스크 섹터간에서의 데이타 교체를 처리하는 방식과 유사하게, 플래쉬 블록간에서의 데이타 교체를 처리한다. FFS하에서, 사용자는 시스템내에 플래쉬 메모리 또는 자기 디스크가 설치되었는지에 관계없이 MS-DOS 또는 윈도우즈 명령어를 입력할 수 있다. 플래쉬 파일 시스템은 플래쉬 메모리 장치의 관리가 사용자에게는 보이지 않도록(transparent) 하게 한다. 마이크로소프트사의 FFS와 유사한 플래쉬 파일 시스템이 DOS 및 윈도우즈 이외의 다른 운영체제에 대해서도 가용하거나 개발되고 있는 중이다.
플래쉬 메모리는 예외적으로 고체상태 디스크 또는 DRAM 및 전지지원형 정적 RAM의 비용절약형 및 고신뢰성 대체물로서의 역할을 하는데 적합하다. 이러한 기술에 대한 그것의 본질적인 이점은 특히 저전력, 소형 및 내구성을 크게 요구하는 한편 고성능 및 완전 기능성을 유지하는 운반용 시스템에 유용한다. 하지만 플래쉬 메모리는 전형적으로 비동기식 인터페이스를 가지며, 판독될 어드레스가 특정되고 그 다음에 어떤 설정시간후에, 그 특정된 어드레스에 저장된 내용이 플래쉬 칩으로부터 출력된다. 그 다음의 판독될 어드레스가 플래쉬 칩으로 송신되는 것은 플래쉬 칩으로부터 데이타가 출력된 뒤에만 가능하다. 로컬버스와 같은 고속버스는 버스의 매 사이클이 약 30nS가 걸리는 것으로서 33MHz로 실행될 수 있다. 한편 전형적인 고성능 플래쉬 칩은 판독 억세스 시간이 약 80nS이다. 그래서 만약 플래쉬가 주메모리로 사용된다면, 플래쉬에 대한 매회의 단일 메모리 억세스는 플래쉬로부터 백-투-백 버스트 판독 사이클의 지원될 수 없는 대기상태 및 영-대기상태를 포함된다. 이것은 플래쉬 메모리에서와 비슷한 판독대기시간을 가지는 다른 디바이스의 경우에도 그러하다. 그래서, 종래 기술을 사용하면, 이들 메모리를 고속 마이크로프로세서에 대한 주메모리로서 사용하는 것은 실제적이지 못하다.
[발명의 요약 및 목적]
본 발명의 목적은 휘발성 메모리에 대하여 비휘발성 메모리에 기반을 둔 효율적인 메모리 계층을 제공하는 것으로써, 여기에는 데이타 및 응용프로그램 모두가 임의 접근 비휘발성 메모리에 저장되고, 더욱이 응용프로그램은 임의 접근 비휘발성 메모리로부터 직접 실행된다.
또한 본 발명의 목적은 플래쉬 메모리가 어떠한 동기식 버스를 가지고서도 최적의 동기식 형식으로 동작가능하도록 하게 하는 것이다.
또한 본 발명의 목적은 휘발성 주메모리의 대체로써 저비용 및 저출력을 제공하고, 하드디스크로부터 주메모리로의 코드 및 데이타의 전송을 위하여 요구되는 시간을 제고하도록 플래쉬 메모리가 어떠한 동기식 버스를 가지고서도 최적의 동기식 형식으로 동작 가능하도록 하게 하는 것이다.
또한 본 발명의 목적은 CPU가 휘발성 메모리에 기반을 둔 주메모리와 비교하여 성능면에서 어떠한 저하도 없이 프로그램을 플래쉬 메모리로부터 직접 실행할 수 있도록 플래쉬 메모리가 어떠한 동기식 버스를 가지고서도 최적의 동기식 형식으로 동작가능하도록 하게 하는 것이다.
또한 본 발명의 목적은 플래쉬 메모리가 어떠한 동기식 버스를 가지고서도 최적의 동기식 형식으로 동작가능하도록 하게 하고, 그로써 시스템내로의 인터리빙과 같은 고가의 메모리 부시스템 설계를 채용할 필요성을 없애는 것이다.
또한 본 발명의 목적은 플래쉬 메모리가 어떠한 동기식 버스를 가지고서도 최적의 동기식 형식으로 동작가능하도록 하게 하고, 그로써 백투백 버스트 사이클을 지원하고, 그리하여 캐쉬선 채우기가 신속하고 최적의 형식으로 수행될 수 있게 하는 것을 보장하는 것이다.
또한 본 발명의 목적은 플래쉬 메모리가 어떠한 비동기식 주메모리 버스를 가지고서도 최적의 비동기식 형식으로 동작가능하도록 하게 하는 것이다.
또한 본 발명의 목적은 휘발성 주메모리의 대체로써 저비용 및 저출력을 제공하고, 하드디스크로부터 주메모리로의 코드 및 데이타의 전송을 위하여 요구되는 시간을 제거하도록 플래쉬 메모리가 어떠한 비동기식 주메모리 버스를 가지고서도 최적의 비동기식 형식으로 동작가능하도록 하게 하는 것이다.
또한 본 발명의 목적은 CPU가 휘발성 메모리와 비교하여 성능면에서 어떠한 저하도없이 프로그램을 플래쉬 메모리로부터 직접 실행할 수 있도록 플래쉬 메모리가 어떠한 비동기식 주메모리 버스를 가지고서도 최적의 비동기식 형식으로 동작가능하도록 하게 하는 것이다.
또한 본 발명의 목적은 플래쉬 메모리가 어떠한 비동기식 주메모리 버스를 가지고서도 최적의 비동기식 형식으로 동작가능하도록 하게 하고, 주문형 제어기를 가질 필요성을 없애는 것이다.
또한 본 발명의 목적은 기존의 주메모리 제어기에 대한 글루없는(glueless) 인터페이스를 제공 하도록 어떠한 비동기식 주메모리 버스를 가지고서도 최적의 비동기식 형식으로 동작가능하도록 하게 하고, 그래서 로컬버스상에서의 비용과 부하를 줄이는 것이다.
4개의 상위한 판독 모드에서 스위칭될 수 있는 플래쉬 메모리 칩이 설명된다. 이들 모두를 채용하는 컴퓨터 시스템 및 계층 구조가 또한 설명된다. 제1판독모드(비동기식 플래쉬모드)에서, 플래쉬 메모리는 표준 플래쉬 메모리로서 판독된다. 이 모드에서, 제1어드레스의 내용에 대한 판독은 판독된 제2어드레스가 특정되기 전에 완료되어야 한다.
제2판독모드(동기식 플래쉬 모드)에서, 클록신호는 플래쉬 칩에 제공되고, 데이타 버스트에 속하는 일련의 어드레스는 매 클록당 일 어드레스로 특정된다. 다음에, 그 버스트에 대하여 특정된 어드레스에 저장된 내용은 순차적으로 그 어드레스가 제공되었던 순서로 다음 클록들 동안에 출력된다. 선택적으로, 만약 동기식 모드에서 단일 어드레스가 플래쉬 칩에 제공된다면, 그 버스트에 대한 후속하는 어드레스는 그 플래쉬 칩내에서 발생될 것이고, 그 다음에 그 데이타 버스트는 그 플래쉬 칩으로부터 출력으로서 제공될 것이다.
제3판독모드(비동기식 DRAM(동적 임의 접근 메모리) 모드)에서, 플래쉬 메모리는 DRAM을 에뮬레이트한다. 그래서, 행 및 열 어드레스는 행 및 열 어드레스 스트로브신호를 이용하여 플래쉬 메모리내로 스트로빙된다. 그 다음에, 플래쉬 메모리는 행 및 열 어드레스를 내부적으로 단일 어드레스로 변환시키고, 그 단일 어드레스에 저장된 데이타를 출력시킨다. 더 나아가, 비록 플래쉬 메모리가 연장된 선충전 주기 내지 재생될 것을 필요로 하지 않을지라도, 비동기식 DRAM 모드에서, 플래쉬 메모리는 DRAM처럼 선충전 주기 및 재생 사이클에 응답한다. 그래서, 비동기식 DRAM 모드에서, 플래쉬 메모리는 표준 DRAM 제어기에 의하여 제어될 수 있다.
제4판독모드(동기식 DRAM 모드)에서, 제2 및 제3모드의 특성이 동기식 DRAM을 에뮬레이트하는 플래쉬 메모리를 생성하도록 결합된다. 그래서, 데이타 버스트로서 판독될 어드레스는 RAS 및 CAS 신호를 이용하여 행 및 열 어드레스를 플래쉬 메모리로 스트로빙하므로써 측정된다. 그 다음에 데이타 버스트의 데이타는 후속하는 클록들 동안에 플래쉬 메모리로부터 출력으로서 순차적으로 제공된다.
본 발명의 다른 목적, 특성 및 이점은 첨부도면 및 상세한 설명으로부터 분명하여질 것이다.
[발명의 상세한 설명]
제1도는 고속버스(120)에 의하여 플래쉬 메모리(130)에 결합된 마이크로프로세서(110)가 내장된 컴퓨터 시스템(100)을 나타낸다. 컴퓨터 시스템(100)내에서, 플래쉬 메모리(130)는 휘발성 주메모리(도시되지 않음)의 전부 내지 일부를 대체하도록 사용된다. 그래서, 플래쉬 메모리(130)는 컴퓨터 시스템(100)에 고속 비휘발성 주메모리를 제공하기 위하여 동적 임의 접근 메모리(DRAM) 또는 정적 임의 접근 메모리(SRAM)과 같은 휘발성 주메모리를 대신하여 사용된다.
휘발성 주메모리에 기초한 컴퓨터 계층구조는 전력이 제거되었을 때 주메모리내의 모든 정보를 손실한다. 하지만 플래쉬에 기초한 비휘발성 주메모리는 전력이 켜진 때 디스크로부터 정보를 획득하는 긴 처리과정을 감소시키거나 제거한다. 그래서 플래쉬 주메모리에 기초한 컴퓨터 시스템(100)은 휘발성 주메모리에 기초한 컴퓨터 시스템보다 프로그램이 초기실행될 때에 더욱 높은 시스템 성능을 가진다.
더욱이, 플래쉬 메모리를 주메모리로 사용하므로써, 디스크 및 DRAM 상에 정보를 쉐도우잉하는 복사과정을 더 이상 필요없게 하고, 그로 인하여 메모리 복사과정을 제거하고 메모리 비용을 줄일 수 있게 된다.
더 나아가, 비휘발성 플래쉬 메모리내에 정보를 저장시키므로써, 휘발성 메모리의 전지 교환이 제거되고 디스크 억세스가 최소화 내지 제거되기 때문에, 전력 소모가 감소된다.
제2도는 고속버스(220)에 의하여 플래쉬 메모리(230) 및 전지지원형 SRAM(240)에 결합된 정적 마이크로프로세서를 내장한 컴퓨터 시스템(200)을 나타낸다. 버스 브리지(280)는 고속버스(220)를 저속버스(260)와 결합시킨다. 저속 비휘발성 메모리(250)는 저속버스(260)에 결합된다.
전형적인 현재의 휘발성 주 메모리에 기초한 컴퓨터 시스템에 있어서, 4 내지 8 메가바이트의 휘발성 주메모리가 있고, 여기서 약 절반은 운영체제를 응용프로그램을 위한 실행코드 및 비변경 데이타 파일을 저장하기 위하여 이용된다. 주메모리의 나머지부분은 전형적으로 빈번히 판독 및 기록되는 데이타 파일(및 응용프로그램에 자주 사용되지는 않는 실행코드)을 포함한다.
앞 타입의 정보는 통상 “대부분-판독” 파일로 불리우는 파일로 저장되고 그 다음 타입의 정보는 통상 “판독/기록” 파일로 불리우는 파일로 저장된다. 컴퓨터 시스템(200)내에서, 플래쉬 메모리(230)는 대부분-판독파일을 저장시키는데 사용되고, SRAM(240)은 현재 사용중인 판독/기록 파일을 저장하는데 사용된다.
시스템(200)의 플래쉬 주메모리에 기초한 아키텍추어를 가진 컴퓨터 시스템을 이용하여 얻는 이점은 예를 들면서 설명한다. 사용자가 컴퓨터를 가지고 있고 문서기록을 위하여 워드프로세서 응용프로그램을 실행하기 위하여 윈도우즈 운영체제 환경에서 컴퓨터를 자주 사용한다고 가정하자. 또한 사용자가 가끔은 비디오게임을 하기 위하여 컴퓨터를 사용한다고 가정하자.
대부분의 컴퓨터 운영체제(및 응용프로그램)은 임의 접근 메모리(즉 판독 및 기록가능한 메모리)로부터 실행되도록 설계되기 때문에, 그 메모리 어드레스 공간을 판독전용 영역과 판독/기록 영역으로 분할하려고 하는 노력은 전혀 없다. 사실, 매우 적은 메모리 어드레스 공간이 기록된다. 대부분의 메모리 어드레스 공간은 자주 변경되지 않는 코드명령 및 데이타를 저장하기 위하여 판독될 것이다.
ROM용 프로그램은 판독전용 메모리(ROM)로부터 실행될 수 있는 코드를 제공하기 위하여 기록된다. ROM용 프로그램에서, 판독전용 메모리 어드레스 공간이 판독 전용으로 되도록 보장하기 위하여 코드는 조심스럽게 기록된다. 만약 기록되어야 할 프로그램 메모리 어드레스 공간의 어떤 부분이 존재한다면, 그 부분은 분리된 판독/기록 메모리 어드레스 공간(이것은 판독/기록 메모리 장치에 저장될 수 있음)내에 포함된다. ROM용 윈도우즈 버전, 하부 디스크 운영체제(DOS) 및 워드프로세싱 프로그램과 같은 응용프로그램이 현재 상업용으로 나와 있다.
그래서 컴퓨터 시스템(200)의 사용자는 ROM용 DOS, ROM용 윈도우즈 및 ROM용 워드프로세싱 프로그램의 판독전용 부분을 플래쉬 메모리(230)내에 저장하므로써 이점을 얻을 수 있다. 이들 프로그램의 판독/기록 부분과 응용프로그램 및 파일의 나머지 부분은 저속 비휘발성 메모리(250)내에 저장된다.
다음, 사용자가 문서를 기록하기 위하여 컴퓨터 시스템(200)을 시작시켰을 때, DOS, 윈도우즈 및 워드프로세서의 판독전용부분은 플래쉬 메모리(230)내로 상주될 것이다.
만약 이들 프로그램이 어떤 판독/기록 파일(예, 시스템 구성 정보)을 필요로 한다면, 이들 파일(전형적으로 소형)은 저속 비휘발성 메모리(250)으로부터 버스브리지(280) 및 저속버스(260)을 통하여 전지지원형 SRAM(240)으로 신속히 로드될 것이다. 간단히 말하면, DOS, 윈도우즈 및 워드프로세서의 주요 부분은 비휘발성 메모리(230)에 상주하고 시스템의 전원이 들어오자 마자 비휘발성 메모리(230)로부터 적소에서 직접 적소로 실행될 수 있다. 그리하여, 사용자에게는 마치 컴퓨터 시스템(200)이 즉시 워드프로세서를 로드시키고 문서기록의 준비를 시작하는 것처럼 보일 것이다.
다음, 사용자는 변경하고자 하는 이전에 기록된 파일을 그것이 저장되었던 저속 비휘발성 메모리(250)내의 장소로부터 SRAM(240)내로 검색할 수 있다. 선택적으로, 사용자는 SRAM(240)의 메모리 어드레스 공간내에서 새로운 파일을 열고, 그 새로운 파일을 완전히 새로운 문서를 시작하기 위하여 사용할 수 있다.
얼마간 문서작업을 한 후에, 사용자가 저속 비휘발성 메모리(250)내에 저장된 컴퓨터게임을 하고자 한다고 가정하자. 이 경우, 선택된 게임에 관련되는 프로그램은 SRAM(250)내로 로드되고 게임이 시작될 것이다.
만약 사용자가 휴식하고 싶으면, 사용자는 게임을 중지하고 컴퓨터 시스템(200)은 실행중 상태로 놓아둔다. 사용자가 나가면, 정적 마이크로프로세서(210)는 사용자-비활성 상태임을 감지하고 전력강하신호를 전력강하신호선(270)을 통하여 플래쉬 메모리(230)에게 송신한다. 다음, 정적 마이크로프로세서(210) 및 플래쉬 메모리(230)는 저전력 소모 상태로 들어가게 될 것이다.
플래쉬 메모리(230) 및 저속 비휘발성 메모리(250)는 모두 비휘발성이다. 또한, 플래쉬 메모리는 그것이 에너지 절약 전력강하모드에 있을 때는 전력소모를 거의 하지 않고, 비휘발성 메모리(250)는 사용자가 나가 있는 동안에는 억세스되지 않을 것이다. 더 나아가, 마이크로프로세서(210)은 정적 마이크로프로세서이기 때문에, 그것은 전력소모를 거의 하지 않지만, 그것이 낮은 전력강하모드에 들어간 때에도 그것의 상태를 유지시킨다. 더욱이, 전지지원형 SRAM(240)에 저장된 판독/기록 파일(게임을 위한 실행코드를 포함함)도 손실되지 않을 것이다.
다음에 사용자가 다시 돌아올 때에, 그 게임은 거의 순간적으로 그것이 중지된 위치부터 시작될 것이다. 이것은, 사용자가 떠나 있을 때 매우 적은 전력이 소모되지만, 컴퓨터 시스템(200)의 상태가 유지되고 있기 때문이다.
더 나아가, 만약 사용자가 DOS 내지 윈도우즈 운영체제를 갱신하거나 플래쉬 메모리(230)에 저장된 프로그램을 갱신하려고 한다면, 플래쉬 메모리에 대한 기록가능성 때문에 그것은 용이할 것이다. 플래쉬 메모리에의 기록을 위하여 요구되는 소거 및 그 후 프로그래밍 동작은, 플래쉬 메모리(230)내에 프로그램을 저장하는 것이 DRAM과 같은 휘발성 메모리가 주메모리이었던 경우보다 더 시간이 오래 걸린다는 것을 의미한다. 하지만, 프로그램의 설치는 자주 실행되는 것이 아니고, 통상 비교적 긴 처리이다. 그래서, 시스템(200)이 시작될 때 비휘발성 플래쉬 메모리(230)로 즉시 실행가능한 프로그램을 가질 수 있는 이점과 비교하여 볼 때 프로그램을 비휘발성 플래쉬 메모리(230)내에 설치하기 위하여 요구되는 여분의 시간은 보통 중요하지 않다.
더욱이, 플래쉬 주메모리(230)에 대한 기록능력은, 사용자가 플래쉬 주메모리(230)내에 현재 저장된 워드프로세싱 프로그램을 대신하거나 그것에 추가하여 다른 프로그램을 설치할 수 있다는 것을 의미한다. 그래서, 사용자는 플래쉬 주메모리(230)내에 다른 워드프로세싱 프로그램을 설치하므로써 그 다른 워드프로세싱 프로그램으로 스위칭할 수 있다. 대체적으로, 사용자는 예를 들어 플래쉬 메모리(230)내에 현재 저장되어 있는 워드프로세싱 프로그램을 대신하여 스프레드시트 또는 그래픽 설계 프로그램을 설치할 수 있다.
더 나아가, 만약 플래쉬 메모리(230)내에 충분한 여유공간이 있다면, 사용자는 추가적인 응용프래그램을 설치할 수 있다. 그래서, 예를 들어 만약 사용자가 현재 좋아하는 특정의 컴퓨터 게임을 가지고 있다면, 그것은 플래쉬 메모리(230)내에 상주하도록 설치될 수도 있다.
주목할 것은, 프로그램이 ROM 용이 아니더라도, 어떤 프로그램이든지 플래쉬 메모리(230)내에 설치될 수 있다는 것이다. 앞에서 설명한 것처럼, 플래쉬 메모리는 그것에 기록가능하기 때문에, 어떠한 플래쉬 파일 시스템도 플래쉬 메모리(230)으로부터 적소에서 실행될 수 있는 표준적 응용프로그램을 허용할 것이다. 하지만 플래쉬의 비대칭 판독/기록 특성은, 표준적(즉, ROM용이 아닌) 프로그램이 플래쉬 메모리(230)으로부터 적소에서 실행될 때는, 성능저하가 일어나게 할 수 있다.
하지만, 이러한 성능상의 문제를 완화시키는데 사용하는 기술이 있다. 그 하나는 응용프로그램이 실행되는 동안에 운영체제가 응용프로그램의 메모리 어드레스 공간을 판독전용상태로 되도록 표시하는 것이다. 다음, 만약 응용프로그램이 플래쉬 메모리(230)에의 기록을 시도한다면, 인터럽트가 일어나고 오류처리기가 그 기록이 SRAM으로 재-방향성을 갖도록 하게 한다. 그 후, 프로세싱이 소강상태로 될 때, 정보는 배경동작으로서 SRAM(240)으로부터 플래쉬(230)로 기록될 수 있다. 사실, SRAM(240)의 일부분은 플래쉬 주메모리(230)를 위한 기록캐쉬로서 이용될 수 있다.
SRAM(240)의 일부분을 기록캐쉬로 이용하는데 따른 이점은, 플래쉬(230)내에 저장된 응용프로그램이 ROM용일 필요가 없다는 것이다. 다른 이점은, 응용프로그램 메모리 어드레스 공간의 기록영역이 상당히 국소화될 가능성이 높다는 것이다. 이렇게 되는 운좋은 경우에, 기록캐쉬에의 어떠한 후속판독 또는 기록동작도 SRAM(240)에의 신속한 억세스로부터 이익을 얻는다. 또한, 응용프로그램 메모리공간으로 역-기록될 정보가(즉, 응용프로그램의 하나의 실행에서 다음 실행으로 저장 되지 않는 것)되는 경우가 종종 있기 때문에, 기록캐쉬내의 정보는 응용프로그램이 종료될 때 플래쉬 메모리(230)로 역-기록될 필요가 없을 것이다.
상기 예로부터, 종래의 휘발성 주메모리에 기초한 아키텍추어를 가진 컴퓨터 시스템과 비교할 때, 컴퓨터 시스템(200)의 비휘발성 주메모리 컴퓨터 시스템 아키텍츄어는 많은 이점과 상승효과가 있다.
첫째로, 컴퓨터(200)는 전력이 인가되면 그 즉시 시작한다. 그래서, 운영체제 및 워드프로세서와 같은 자주 사용되는 응용프로그램을 주메모리에 로딩하는데 시간과 전력을 소비할 필요가 없다. 즉, 그들은 이미 그곳에 존재하고 가상적으로 즉시 사용가능 하다.
둘째로, 저속 비휘발성 메모리(250)상에 운영체제(예, DOS 및 윈도우즈)의 복사본을 저장하거나 자주 이용되는 응용프로그램(예, 워드프로세싱 프로그램)을 저장할 필요가 없다. 그래서, 저속 비휘발성 메모리(250)는, 만약 이들 파일의 쉐도우잉이 요구된다면 그 요구될 것보다 작아질 수 있다.
셋째로, 다음에 상세하게 설명된 기술을 사용하면, 비동기식(휘발성) DRAM과는 달리 버스트 판독이 플래쉬 메모리(230)에 대하여 이루어질 수 있다. 그래서, 마이크로프로세서(210)의 내부캐쉬(215)를 위한 캐쉬선은, 비동기식 DRAM에 기초한 주메모리가 사용되는 경우에서 보다 신속하게 플래쉬 메모리(230)로부터 채워질 수 있다.
넷째로, SRAM(240)은 휘발성 DRAM보다 신속하게 기록되고 판독될 수 있다. 그래서, 마이크로프로세서(210)의 내부캐쉬(215)의 캐쉬선은, DRAM에 기초한 주메모리가 사용되는 경우에서 보다 신속하게 SRAM(240)으로부터 채워질 수 있다. 또한 SRAM(240)으로부터 실행되는 프로그램은 DRAM에 기초한 메모리가 사용되는 경우에서 보다 신속하게 어드레싱될 수 있고 실행될 수 있다.
다섯째로, SRAM(240)의 일부분은 플래쉬 메모리(230)를 위한 외부캐쉬를 제공하도록 사용될 수 있고 그것에 의하여 실행속도가 더욱 향상된다.
여섯째로, 저성능 마이크로프로세서가, DRAM에 기초한 주메모리가 사용되는 경우와 동일한 수준의 성능을 제공하도록 사용될 수 있다. 그 이유는, 운영체제 및 프로그램을 로딩할 필요에 의해서 야기되는 휘발성 DRAM에 기초한 주메모리의 저대역폭 제약조건이 제거되기 때문이다. 운영체제 및 프로그램은 대신에 비휘발성 플래쉬 주메모리내에 저장된다. 또한 그 이유는, 시스템(200)내에서는 DRAM 주메모리 시스템의 경우에서 보다 마이크로프로세서(210)의 데이타 및 프로그램 명령의 요구사항과 그들을 제공할 플래쉬(230)/SRAM(240)에 기초한 주메모리의 능력과의 매칭이 더욱 양호하기 때문이다. 그 결과, 마이크로프로세서(210)에 대한 유휴대기상태가 더 적어진다. 종종, 마이크로프로세서(210)는 무-대기상태로 동작가능할 것이다. 그래서, 마이크로프로세서가 저성능이기 때문에 그것이 작업할 수 있는 사이클이 더욱 적을지라도, 마이크로프로세서가 코드나 데이타를 위하여 대기하고 있는 동안에 그 마이크로프로세서에 대하여 가용될 더욱 적은 사이클이 대기될 것이다.
일곱째로, 마이크로프로세서(210)는 주어진 수준의 성능을 위하여 더 저속의 클록속도를 가질 수 있기 때문에, 마이크로프로세서(210)는 고속 프로세서가 사용되도록 요구되는 DRAM에 기초한 주메모리의 경우보다 좀 더 저가로 되고, 열방출문제를 좀 더 줄이며, 전력을 좀 더 적게 사용할 것이다.
여덟 번째로, 마이크로프로세서(210) 및 플래쉬(230)는 그들을 필요로 할 때까지 전력 강하모드로 들어갈 수 있고 결국 에너지가 절약된다.
그래서, 비휘발성 판독/기록 범용 컴퓨터 계층구조는, 주(실행)메모리의 주요 부분이 플래쉬 메모리인 경우에 앞에서 설명한 아키텍추어에 의하여 성취될 수 있다.
시스템(200)의 요구사항에 따라서, 기록보관 저장장치(즉, 저속 비휘발성 메모리(250))는 시스템내에 존재할 수도 있고 그렇지 않을 수도 있다. 만약 그것이 존재한다면, 시스템(200)의 요구사항에 따라 그것을 제공하도록 사용되는 기술(즉, 역학적, 광학적 또 고체물리적 기술)이 결정된다. 또한, 시스템(200)의 특별한 요구사항에 따라서, 선택적으로 전지지원형 SRATM(240)은 비휘발성 RAM(NVRAM), 전기적 소거가능 프로그래밍가능 ROM(EEPROM), DRAM, SRAM 또는 전지지원형 DRAM에 의하여 대체될 수 있다.
시스템(200)을 위한 각각의 상기 구성의 기본적 주제는, 마이크로프로세서(210)의 CPU가 임의접근 비휘발성(플래쉬) 메모리(230)으로부터 코드 및/또는 데이타를 인출(fetch)하고 필요에 따라 다른 데이타 및/또는 프로그램을 재-기록한다. 앞에서 설명한 것처럼, 새로운 정보는 주메모리내의 동일장소에 기록되거나 되지 않을 수도 있다. RAM에 기초한 시스템은 본질적으로 휘발성이다. ROM에 기초한 주메모리 시스템은 비록 비휘발성이 아닐지라도 ROM에 재-기록할 수 있는 능력을 제공하지 않는다.
플래쉬는 DRAM과 같이 대칭적 기술이 아니다. 즉, 그것은 판독속도에서 바이트 가변성을 허락하지 않는다. 그래서, 일 실시예에서 파일 또는 프로그램을 수정하기 위하여, 변경될 부분은 바이트 가변 메모리(예, NVRAM, EEPROM, SRAM 또는 DRAM)로 이동되고, 수정되고, 그 다음에 플래쉬 메모리에 재기록된다. 이러한 가변 메모리는 CPU 또는 마이크로프로세서 상에 집적되거나 및/또는 개별적인 메모리 칩이 될 수도 있다. 변경되지 않은 데이타는 CPU에 의하여 플래쉬로부터 직접 판독된다. 이러한 구성은 본질적으로 디스크 기반 시스템보다 신속한 판독성능을 제공하기 위하여 판독 및 비변경 데이타를 위한 디스크 다운로드를 제거한다. 기록을 위하여, 재기록은 디스크에 대하여 성능면에서 비교할만하다. 하지만 판독 사이클은 빠르기 때문에, 더 높은 전체 시스템 성능이 제공된다.
각각의 이러한 구성에 대한 핵심사항은, 플래쉬 메모리가 주메모리로 사용되고 DRAM의 판독 억세스 속도와 비슷하거나 초월하는 속도로 판독된다는 것이다. 이것이 성취될 수 있는 방식은 기본적으로 4가지가 있다. 제1방식은 하나 이상의 종래의 비동기식 플래쉬 주메모리 칩에 판독동작을 인터리브시키는 하드웨어 제어기를 제공하는 것이다.
[비동기식 플래쉬 주 메모리를 위한 복수 칩 인터리브]
제3도는 4개의 플래쉬 메모리 집적회로(320#1 내지 320#4) 버스트 판독 능력을 제공하기 위하여 제어기 장치의 제어하에서 인터레이스(interlace)된다. 비록 제3도에는 4개의 플래쉬 집적회로(320)가 도시되어 있지만, 만약 각각의 개별적인 집적회로(320)의 데이타 폭이 2배 워드(double ward) 폭이 아니라면, 적절한 수의 플래쉬 집적회로(320)가 2배 워드 데이타 폭을 제공하기 위하여 제3도의 각각의 회로(320)에 병렬로 제공된다. 예를 들면, 제어기는 완전 프로그래밍가능 게이트배열(FPGA; Fully Programmable Gate Array, 310)를 이용하여 구현된다. 대체 실시예에서, 인터레이스 제어는 대체 기술들을 이용하여 제공된다.
제4도는 제3도의 플래쉬 메모리 집적회로(320)와 같은 전형적인 비동기식 플래쉬 메모리를 위한 판독 사이클을 나타낸다. 제4도에 의하면, 판독 사이클 전후에서 플래쉬 메모리의 데이타선(DOUT)은 3상태로 된다(도면에는 OPEN으로 표시됨). 이것의 의미는 데이타선이 고임피던스 상태로 된다는 것이다.
제4도의 판독 사이클은 출력 인에이블(OE#) 및 칩 인에이블(CE#) 신호의 로우전압(VL)로부터 하이전압(VH)으로의 천이로부터 시작한다. 다음, 만약 그것이 아직 하이가 아니면, 기록 인에이블(WE#) 신호는 판독동작을 나타내기 위하여 하이로 천이되고 판독되는 어드레스는 플래쉬 칩의 어드레스 핀(A0내지 A19)상에 위치된다. 다음 지정된 어드레스에 저장된 데이타는 플래쉬 배열로부터 내부적으로 검색된다. 판독 프로세스는 알려진 상수의 시간이 걸린다 그 시간이 경과하면, OE# 신호는 로우로 되고 지정된 어드레스로부터 판독될 데이타는 플래쉬 칩에 의하여 데이타선(DOUT)으로 보내어 진다. CE# 및 OE# 신호가 다시 하이로 된 때(통상, 다음 판독사이클을 시작하기 위함), 판독사이클은 종료한다.
제4도에서 주목할 것은, 판독될 새로운 어드레스는 이전의 판독사이클 완료될 때까지는 특정될 수 없다는 것이다. 그러므로, 단일 표준 비동기식 플래쉬 메모리장치는 신속한 백투백 판독사이클을 지원하기 위하여 인터레이스될 수 없다. 대신에 다음 판독사이클이 시작할 수 있기 전까지는 제1판독사이클이 완료되는 것을 대기하여야 한다.
표준동기식 플래쉬 성분의 전체 억세스시간(TACC)은 두 부분으로 나뉘어질 수 있다. 첫째는 어드레스 및 칩 인에이블을 디코딩하고, 판독될 플래쉬 배열내에서 교정비트를 선택하고, 그 다음에 저장된 데이타를 감지하는 시간(TACC-TOE)이 있다. 둘째는 이 정보를 출력버퍼를 통하여 데이타 버스상으로 보내는데 요구되는 시간(TOE)이 있다. 데이타 버스트 판독을 위한 단일 어드레스가 알려지면, 데이타 버스트 판독의 나머지 어드레스도 또한 알려진다. 그래서, 다시 제3도 참조하면, 인터레이싱은 향상된 평균 판독억세스 시간을 가지는 버스트를 제공하기 위하여 제1억세스시간(TACC-TOE)을 두 개이상의 플래쉬 칩에 대하여 배분하는 데이타의 이러한 성질을 이용한다.
20MHz 동기식 로컬버스(즉, 각 클록사이클이 약 50nS 걸림)의 경우를 고려하자. 이 속도에서, 전형적 마이크로프로세서는 최대 버스트 판독 능력으로 2-1-1-1 버스트를 가진 것이다. 이것은, 마이크로프로세서가 데이타의 버스트를 판독할 때 그 버스트가 동일 캐쉬선의 각 부분이 되는 데이타의 4개 2배 워드로 이루어진다는 것을 의미한다. 더 나아가, 마이크로프로세서가 버스트의 제1어드레스를 특정한 때 두 사이클(이 예에서는 약 100nS) 동안에 그 어드레스에 저장된 내용을 수용하는 것이 불가능하다. 다음, 마이크로프로세서는 다음 3 클록사이클 동안에 캐쉬선의 제2, 제3 및 제4어드레스의 각각의 내용을 수용할 수 있을 것이다.
만약 플래쉬 메모리 칩(320) 각각이 2 클록사이클 이내(약 85nS)에 (TACC-TOE)를 가지고 40nS 이내의 (TOE)를 가지면, 플래쉬 메모리 부시스템(300)은 마이크로프로세서에 의하여 얻을 수 있는 최대 버스트 판독과 매칭하는 버스트 판독을 제공할 수 있을 것이다. 그 이유는, FPGA(310)가 판독될 데이타 버스트의 제1어드레스를 수신하자마자, 그것은 4개 모두의 플래쉬 메모리 칩(320)을 인에이블하고 각각의 칩(320)에게 다른 칩(320)과 병렬로 데이타 버스트의 어드레스중의 하나를 판독하도록 지시할 것이다. 처음 두 사이클 후에, 데이타 버스트의 제1어드레스에 저장된 데이타는 플래쉬(320#1)로부터 가용될 것이다. 그 다음, 그 후 계속되는 각각의 사이클 동안에 데이타 버스트의 다음 어드레스에 저장된 데이타는 플래쉬(320#2, 다음 #3, 마지막으로 #4)로부터 가용하게 될 것이다.
이것은, 이 예에서 플래쉬 메모리 부시스템(300)이 5 클록사이클 주기(약 250nS) 동안 데이타의 4개의 2배 워드의 데이타 판독 버스트를 제공할 수 있을 것이고, 그것에 의하여 약 50nS의 평균 판독시간을 제공한다. 만약 인터리빙이 사용되지 않으면(예, 단하나의 플래쉬 메모리 칩(320)이 사용된다면, 각각의 어드레스에 대한 판독은 3 사이클(즉, TACC-TOE을 위하여 2개 사이클 TOE를 위하여 1개 사이클)이 걸리고, 각각의 판독은 어떠한 이전의 판독이 완료되기를 대기하여야 한다. 상기의 수를 사용하면서, 단일 비동기식 플래쉬(320)에 대한 데이타 “버스트”의 각각의 어드레스는 150nS가 걸린다. 그래서, 인터레이싱없이, 얻을 수 있는 최고의 버스트 속도는 완료하는데에 600nS(150nS의 4배)가 걸리는 3-3-3-3 데이타 버스트가 된다.
클록신호(CLK)는 플래쉬 메모리 부시스템(300)의 동작을 조정한다. 부시스템(300)내에서, 4개의 바이트 플래쉬 메모리 페이지는 AX 내지 A0 메모리 공간의 공통 어드레스(A21 내지 A2)에 의하여 선택된다. 고차의 어드레스(AX 내지 A22)는 시스템 메모리 맵내의 4Mbyte 플래쉬 배열을 디코딩한다. 어드레스(A1 및 A0)는, FPGA(310)에 입력되는 RD#(판독) 신호를 따라서, FPGA(310)가 플래쉬 메모리 성분(320#1 내지 320#3)을 위한 출력 인에이블 신호(OE#)를 발생시킨다. 그래서, 일 실시예에서, 플래쉬 부시스템(300)의 시스템 어드레스는 다음과 같은 플래쉬 메모리 성분(320)에 대응한다.
메모리 부시스템(300)으로부터의 판독 억세스의 데이타 버스트 열은 다음과 같이 진행된다.
첫째로, 프로세서는 그것이 시스템 어드레스(0)으로부터 데이타를 판독하려고 한다는 것을 신호한다. 신호(CE#)는 플래쉬 메모리(320#1 내지 320#4)를 인에이블링하고, 신호(ADDR)는 그들에게 어드레스(0)를 제공한다. FPGA(310)는 시스템 어드레스 비트(A1 및 A0)를 디코딩하고, 그들은 모두 0이기 때문에, 플래쉬 성분(320#1)을 위하여 OE# 신호를 인에이블링한다. 이것은 4개의 바이트 페이지에 대한 제1억세스이기 때문에, 이 억세스는 150nS(즉, 3개의 50nS 클록사이클)가 걸린다.
둘째로, 순서코드를 실행하는 프로세서는 시스템 어드레스(1)로부터 판독할 것이다. 성분(320#1 내지 320#4)은 인에이블링된 상태로 유지되고, 그들에 대한 어드레스(ADDR) 입력은 0으로 유지될 것이다. 다음 FPGA(310)는 시스템 어드레스 비트(A1 및 A0)상에 “01”을 디코딩하고, 성분(320#2)를 위한 OE# 선을 인에이블링할 것이다. 성분(320#2)에 대한 데이타는 이미 선택되고 감지되었기 때문에, 성분(320#2)에 대한 억세스 시간은 단지 50nS(즉, 1 클록사이클)의 지연을 가질 것이다.
다음, 마찬가지의 50nS의 억세스가 시스템 어드레스(2 및 3)에 대하여 후속되고, 각각 성분(#3 및 #4)로부터 판독한다. 만약 다음 데이타 버스트가 어드레스(4)로부터 시작하면, 프로세서는 그 다음 사이클중에 시스템 어드레스(4)로부터 판독할 것이다. 이것은 시스템 어드레스(A2)를 0으로부터 1로 변경할 것이고, 그것에 의하여 성분(320#1)로부터의 억세스에 대하여 또다른 완전 150nS의 지연을 일으킨다. 그 이유는, 새로운 4-바이트 페이지 및 그로 인한 각각의 플래쉬 메모리(320)부터의 새로운 데이타가 판독되기 때문이다. 하지만, 다시 한 번 시스템 어드레스(5, 6, 7)에 대한 후속하는 억세스는 각각 단지 50nS의 지속시간을 갖을 것이다.
FPGA(310)은 더욱 하위의 어드레스를 디코딩하고, 그에 대응하여 인터리빙 페이지내의 플래쉬 메모리 디바이스(320)에게 OE# 신호를 발생시킨다. 이전의 예는 4-바이트 페이지에 대한 것이고, 그래서 어드레스(A1 및 A0)는 디코딩된다. 2-바이트 페이지에 대하여, 오직 어드레스(A0)만이 조사되고, 반면에 8-바이트 페이지는 어드레스(A2 내지 A0)를 사용한다.
FPGA(310)는, 메모리 부시스템(300)이 억세스되고 있는지 그리고 동일 페이지에 대한 억세스가 일어나고 있는지를 판단하기 위하여 모든 상위 어드레스 비트(즉, 이 예에서는 AX에서 A22까지)를 조사하고, 그에 대응하여 준비신호출력을 통하여 프로세서로 복귀하는 대기상태를 조절한다. 이러한 기능은 제3도의 비교논리 부블록(340)에 의하여 성취된다.
더 나아가, FPGA(310)는 플래쉬 메모리(320)에 대한 판독 또는 기록을 구별할 것이고, 그에 대응하여 대기상태를 조절한다. 제5도는 FPGA 논리(310)내에서 구현되는 하드웨어 인터리빙을 위한 상태 천이 다이어그램을 나타낸다.
상태 천이 다이어그램(500)은 초기상태(510)에서 시작한다. 이 초기 상태에는 FPGA가 부시스템(300)의 플래쉬 메모리(320)에 대한 억세스를 위하여 대기한다. FPGA가 부시스템(300)의 플래쉬 메모리(320)에 대한 억세스의 개시를 검출한 때, 억세스가 이전 억세스와 동일한 4-바이트 페이지인지 여부를 판단하기 위하여 상태(520)에서 테스트가 실시된다. 만약 억세스가 이전 억세스와 동일한 4-바이트 페이지이라면, 천이(524)는 상태(530)에 대하여 취하여지고, 억세스가 판독동작인지 여부를 판단하기 위한 테스트가 실시된다.
만약 억세스가 판독동작이라고 상태(530)에서 판단되면, 판독될 정보는 이미 가용상태로 되고, 경로(534)상에서 준비상태(560)로의 천이가 있게 되고, 그 판독이 수행된다. 판독이 수행된 후, 준비상태(560)로부터 다시 초기상태(510)로의 천이가 있게 되고, 다음 억세스가 대기된다.
이제 상태(530)으로 복귀하면서, 만약 억세스가 판독동작이 아니라고 상태(530)에서 판단되면, 경로(532)상에서 대기상태 발생상태(550)로의 천이가 있게 되고, 적절한 수의 대기상태가 수행되고, 한편 필요하다면 소거가 수행되고, 그 정보가 프로그래밍된다.
이제 상태(520)으로 복귀하면서, 만약 억세스가 이전의 억세스와 같이 동일한 4-바이트 페이지에의 액세스가 아니면, 경로(522)상에서 상태(540)로의 천이가 있게 되고, 새로운 어드레스가 페이지 비교를 위하여 래치된다. 다음, 상태(550)에서, 적절한 수의 대기 상태가 수행되고, 한편 새로운 4-바이트 페이지가 억세스된다.
주목할 것은, 플래쉬 메모리 기록은 그 판독의 경우에서와 같은 인터리빙의 이점을 가질 수 없고, 그 이유는 기록동작을 위한 어떠한 TACC또는 TOE도 없기 때문이다. 비록 메모리 부시스템(300)이 백투백 판독 버스트를 지원하고 순차엑세스를 위한 평균 판독 억세스 시간을 줄인다고 하더라도, 그것은 종래의 비동기식 플래쉬 메모리 칩에의 억세스에 대하여 요구되는 시스템 하드웨어의 복잡성을 증가시킨다.
하지만 앞에서 설명한 것처럼, 판독캐쉬 또는 소프트웨어 인터리빙 기술은 메모리 부시스템(300)의 프로그램 및 소거성능을 최대화하는데 이용될 수 있다. 더 나아가, ROM용 프로그램이 플래쉬 메모리 부시스템(300)으로부터 적소에서 수행되고 있는 경우에는, 그 프로그램의 수행중에 플래쉬 메모리에 대한 어떠한 기록도 있지 않게 될 것이다. 이러한 경우에, 플래쉬 메모리의 저속 기록성능은 새로운 버전의 ROM용 프로그램이 설치되는 매우 회귀한 경우에서의 하나의 인자가 될 뿐이다.
[플래쉬 메모리에 대한 동기적 플래쉬 인터페이스(SFI)]
FPGA(310)의 부가적 시스템의 복잡성을 요구함에 부가하여, 부시스템(300)과 같은 메모리 부시스템은 서로 인터리브하는 적어도 2개(제3도의 예에서는 4개)의 플래쉬 메모리 칩(320)을 가져야 할 것이다. 더 나아가, 만약 부가적인 플래쉬 메모리 칩은 부시스템(300)에 부가된다면, 그들은 또한 쌍으로서 적어도 부가되어야 한다. 더 나아가, 부시스템(300)에 부가된 각각의 플래쉬 메모리 칩은 동시에 인에이블되고, 그래서 부시스템(300)은 많은 양의 전력을 소모한다. 대체적으로, 전체의 동기식 플래쉬 인터페이스는 단일 플래쉬 메모리 칩상에 채용될 수 있다.
제6도는 단일 플래쉬 메모리 칩내의 완전 동기식 플래쉬 인터페이스를 채용한 동기식 플래쉬 인터페이스(SFI; Synchronous Flash Interface) 플래쉬 메모리 집적회로(600)의 블록 다이어그램을 나타낸다. 동기식 플래쉬 인터페이스는, 제어기로부터 일어나는 동기식 사이클을 플래쉬가 이해하는 비동기식 프로토콜로 변환시키는 수단을 제공한다. 이 디바이스는 내부적으로는 두 개의 뱅크로 분할되고, 적어도 중요한 어드레스는 두뱅크를 구별하도록 사용된다. 간단히 말하면, 이 디바이스는 내부적으로 인터러빙된다는 것이다. 사용자는 백투백 사이클을 대체적 뱅크로 지시하고, 비동기식 플래쉬 억세스 시간과 동등한 초기지연시간 후에, 데이타는 비동기식 플래쉬 억세스 시간의 약 절반에 해당하는 속도로 출력버스상으로 출력된다. 그래서, 이러한 인터페이스를 이용하는 디바이스는, 비동기식 플래쉬 디바이스의 억세스시간보다 상당히 작은 순차 판독 억세스를 위한 평균 억세스 시간을 발생시킨다.
클록입력은 인터페이스의 일 부분이다. 어드레스 래치 인에이블 핀은 유효 어드레스가 어드레스 버스상에 존재하는지를 나타내기 위하여 존재한다. 디바이스의 모든 외부동작은 클록의 상승부에서 동기화된다. ALE#는 클록의 하강부에서 샘플링되고, 만약 그것이 유효하게 샘플링되면, 어드레스 버스상에 존재하는 어드레스는 그 부분으로 래치되며 억세스는 개시된다. 사용자는 선택적으로 매 클록사이클마다 어드레스를 디바이스로 스트로빙할 수 있다. 초기지연시간후, 이들 어드레스에 대응하는 데이타는 그 클록의 상승부와 동기적으로 데이타 버스상으로 출력된다. 사용자는 33MHz만큼 높은 주파수로 그 디바이스를 사이클링할 수 있고, 상호간에 어떠한 대기상태 없이도 백투백 버스트 사이클이 수행될 것으로 기대할 수 있다. 또한 설계의 일 부분으로서, 사용자가 어드레스 스트로브 및 유효 데이타 사이의 클록사이클 대기시간(latency)을 정의하도록 할 수 있게 하는 프로그래밍가능한 대기시간이 있다.
제6도에 있어서, SFI(600)의 플래쉬 배열은 두 개의 뱅크 즉 플래쉬 뱅크 A(610)와 플래쉬 뱅크 B(620)로 분할된다. 모드 레지스터(680)는 SFI 모드를 인에이블 또는 디스인에이블하도록 세트될 수 있다. 그래서, 모드 레지스터(680)가 세트된 때, 신호 인터레이스 인에이블(IE)은 인터레이스 제어논리 및 어드레스 천이검출(ATD) 논리(570), 트랜지스터-트랜지스터 논리(TTL) 스테이지(672), 뱅크선택논리(674) 및 버스논리(640)를 인에이블한다. SFI가 인에이블되었을 때, 인터레이스 제어(670) 및 뱅크선택논리(674)는 FPGA(310)가 제3도의 부메모리 시스템(300)내의 플래쉬 칩(320)에의 억세스를 인터레이스했던 방식과 유사한 방식으로 플래쉬 뱅크 A(610) 및 플래쉬 뱅크 B(620) 사이에서의 판독(및 기록) 동작을 인터레이스하도록 동작한다. 그래서, 단일 SFI 플래쉬 칩(600)은 모드 레지스터(680)가 SFI 모드에 세트되는 때에 백투백 판독 버스트를 지원할 수 있다.
SFI 모드에서, 억세스될 어드레스는 어드레스 버스(A19 내지 A0)상에서 클록펄스(CLK) 및 어드레스 래치 인에이블 신호(ALE#)와 함께 TTL 스테이지(672)에 존재한다. 출력 인에이블 및 기록 인에이블 신호는 또한 TTL 스테이지(672)에 제공된다. 다음, 어드레스(A19 내지 A1)는 TTL 스테이지(672)로부터 뱅크 A 어드레스 래치(630) 및 뱅크 B 어드레스 래치(632)로 제공된다. 신호(CLK, ALE# 및 A0)는 제어논리 및 ATD 논리(670)를 인터레이스하도록 제공된다.
어드레스(A0)의 하위비트에 기초하여, 인터페이스 제어논리(670)는 신호 어드레스 래치인에이블 A(ALEA) 및 어드레스 래치 인에이블 B(ALEB)를 각각 이용하여 뱅크 A 어드레스 래치(630) 및 뱅크 B 어드레스 래치(632)를 제어한다. 그래서, 그것에 의하여 인터페이스 제어논리(670)는 나머지 어드레스의 상위비트가 플래쉬 뱅크 A(510) 또는 플래쉬 뱅크 B(520)에 억세스되도록 조정한다. 인터레이스 제어논리 및 어드레스 천이 검출논리(670)로부터의 신호 어드레스 천이검출 A(ATDA) 및 신호 어드레스 천이검출 B(ATDB)의 출력은 플래쉬 배열 뱅크(A(610) 및 B(620))가 각각 판독되도록 준비한다.
데이타 멀티플렉서(MUX, 650)는 플래쉬 뱅크 A(610)가 판독되는 경우에 플래쉬 뱅크A(610)의 센스증폭기로부터 입력신호(S/A OUT A)를 수신한다. 데이타 MUX(650)는 또한 플래쉬 뱅크 B(620)가 판독되는 경우에 플래쉬 뱅크 B(620)의 센스중폭기로부터 입력신호로서 S/A OUT B를 수신한다. 뱅크 선택 논리(674)는 신호(CLK, ALE# 및 A0)를 입력신호로서 수신하고 출력신호 뱅크 선택(BS)을 제공한다. 신호(BS)는 데이타 MUX(650)를 제어하도록 이용되고, 그래서 그것은 뱅크 A(610) 및 뱅크 B(620)으로부터 데이타 판독을 인터레이스하고 그 데이타를 출력버퍼(660)으로 조정한다. 다음, 출력 버퍼(660)는 데이타를 SFI 플래쉬 칩(600)의 데이타 입력/출력(I/O) 패드(690)상으로 데이타 판독을 보낸다.
그래서, 만약 SFI 플래쉬(600)가 SFI 모드에 있을 때 판독 억세스가 수행된다면, 억세스될 다음 어드레스는 시작될 수 있고, 한편 선행 억세스는 수행중에 있다. 만약 판독될 다음 어드레스가 현재 판독되고 있지 않은 뱅크에 속한다면, 다음 어드레스는 적절한 뱅크(A(610) 또는 B(620))로 조정될 수 있고, 한편 이전 억세스로부터의 출력은 출력버퍼(660)으로 래치되고 데이타 I/O 패드(690)상으로 보내어진다. 또한 설계의 일부분으로서, 사용자가 어드레스 스트로브 및 데이타 I/O 패드(690)상의 유효 데이타의 존재사이에 클록사이클 대기시간을 정의할 수 있도록 하게 하는 프로그래밍 가능한 대기시간이 있다.
선택적으로, 만약 적절한 수의 어드레스 비트가 적절한 뱅크를 선택하도록 사용된다면 2개 이상의 플래쉬 뱅크가 SFI 칩(600)내에서 사용될 수 있다. 그래서, 만약 4개의 뱅크가 인터레이스된다면, 두 개의 어드레스 비트가 뱅크들중에서 선택되도록 사용될 것이다.
제7도는 제6도의 SFI 플래쉬(600)를 위한 지속적 판독 버스트 사이클을 나타내는 타이밍 다이어그램이다. 제7도에 있어서, 클록신호(CLK)의 동기화는 33MHz로 동작되고, 그래서 신호(CLK)의 매 펄스(T1 내지 T8)는 30nS의 길이를 갖는다. 판독 버스트는, 판독될 제1어드레스(ADDR0)가 어드레스 핀상에 위치되고 어드레스 래치 인에이블신호(ALE#)가 유효한 어드레스가 판독준비되었다는 것을 나타내도록 로우로 되었을 때, 클록펄스(T1)의 상승부에서 시작한다. 주목할 것은, 어드레스(ADDR0)의 하위비트(A0)는 클록펄스(T1)의 상승부에서 로우로 되어 있다는 것이다. 그러므로, 어드레스(ADDR0)는 뱅크 A에 속하고, 뱅크 A는 어드레스(ADDR0)에 저장된 데이타를 검색하기 위하여 판독될 것이다.
판독 버스트는 판독된 제2어드레스(ADDR1)가 어드레스 핀상에 위치되어 있을 때 클록펄스(T2)의 상승부에서 계속된다. 일 실시예에서, 어드레스 래치 인에이블 신호(ALE#)는 유효 어드레스가 판독될 준비가 되었다는 것을 나타내도록 하이로 가고 그 다음에 로우로 간다. 선택적으로, 어드레스 래치 인에이블 신호(ALE#)는 다른 유효 어드레스 판독될 준비가 되었다는 것을 나타내도록 단순히 로우를 유지한다. 주목할것은, 어드레스(ADDR1)의 하위비트(A0)는 클록펄스(T2)의 상승부에서 하이이라는 것이다. 그래서, 어드레스(ADDR1)는 뱅크 B에 속하고, 뱅크 B는 어드레스(ADDR1)에 저장된 데이타를 검색하기 위하여 판독될 것이다. 어드레스(ADDR0 및 ADDR1)는 서로 다른 플래쉬 뱅크에 속하기 때문에, 두 어드레스 위치는 동시에 판독될 수 있다.
판독 버스트는 판독될 제3어드레스(ADDR2)가 어드레스 핀에 위치지정된 때에 클록펄스(T3)의 상승부에서 계속되고, 어드레스 래치 인에이블 신호(ALE#)는 다른 유효 어드레스가 판독될 준비가 되어 있다는 것을 나타내기 위하여 로우로 유지된다. 주목할것은, 주기(T3) 동안에 뱅크(A)의 ADDR0으로부터의 데이타 판독(주기(T1) 동안 시작된것)이 완료된다. 그래서, 주기(T3) 동안에 뱅크선택신호(BS)는 ADDR0으로부터 그것이 래치되는 출력버퍼로의 데이타 판독을 조정하기 위하여 로우로 된다. 그 다음, ADDR0의 데이타는 펄스(T4)의 시작점에서 SFI 칩의 데이타 I/O 패드상으로 나가게 된다.
한편, 어드레스(ADDR2)의 하위비트(A0)가 펄스클록(T3)의 상승부에서 로우이기 때문에, 어드레스(ADDR2)는 뱅크(A)에 속하고, 뱅크(A)는 어드레스(ADDR2)에서 저장되는 데이타를 검색하기 위하여 판독될 것이다. 어드레스(ADDR0)로부터 출력된 뱅크(A)는 출력버퍼로 래치되고, 그래서 뱅크(A)의 ADDR2의 판독은 시작될 수 있다. 더 나아가, 어드레스(ADDR2, ADDR1)는 다른 뱅크에 속하고, 그래서 두 어드레스의 위치는 동시에 판독될 수 있다.
버스트 판독은 각각의 클록펄스에서 입력될 새로운 어드레스 및 두 펄스후에 출력될 어드레스를 위한 데이타와 함께 부정의 시간동안(즉, 적어도 SFI 플래쉬 칩(600)의 어드레스 공간이 비워질 때까지) 계속될 수 있다.
제6도를 다시 참조하면, SFI 플래쉬 칩(600)이 그것이 통신하는 고속 동기식 버스와 확실히 상응할 수 있도록 버스논리블록(640)은 SFI(600)를 위한 특정된 신호를 수신하고 제공한다. 그래서, 예를 들면 특별한 고속동기식 버스는 패리티 비트가 매 기록동작과 함께 수신되고 그 다음에 다신 핸드쉐이크로서 송신되도록 요구할 수도 있다. 일 실시예에서, 인터페이스 논리(600)는 기록동작 동안에 플래쉬 메모리에 기록되는 모든 비트를 래치하고 조사할 것이고, 기록후 “핸드쉐이크” 동안에 그 패리티 비트를 제공할 것이다. 선택적으로, 플래쉬 메모리(600)에 대한 기록시도 동안에 데이타를 조사하므로써, 인터페이스 논리(640)는 기록후 “핸드쉐이크”를 위한 요구된 패리티 정보를 발생시키기 위하여 고속 동기식 버스에 의해서 이용되는 동일한 패리티 알고리즘을 이용할 수 있다.
더 나아가, 버스 프로토콜은 데이타가 판독되는 때에 패리티 비트가 SFI(600)로부터 송신될 필요가 있도록 될 수도 있다. 플래쉬 메모리는 패리티 비트가 데이타와 함께 저장되는 것을 요구하지 않기 때문에, 버스논리(640)는 데이타가 판독되는 때에 필요한 패리티 정보를 발생시키기 위하여 고속 동기식 버스에 의해서 이용되는 동일한 패리티 알고리즘을 이용할 것이다. 그래서, 플래쉬 메모리(600)의 판독동작동안에 논리(640)는 플래쉬 메모리(600)의 출력으로부터 전송을 위하여 고속 동기식 버스로 패리티버스를 보낼 것이다. 그래서, 플래쉬 메모리(600)에 대한 기록시도 및 플래쉬 메모리(600)으로부터의 판독시도 동안 모두에서 데이타를 조사하므로써, 인터페이스 논리(640)는 요구된 패리티 정보를 발생시킬 것이다.
모드 레지스터(680)가 SFI 모드를 지시하도록 세트되지 않은 때에, 인터레이스 제어(670)의 제어기능을 인터레이싱하는 동기화된 뱅크는 디스에이블되고, SFI 플래쉬 칩(600)은 표준 비동기식 플래쉬 메모리 칩으로 기능할 것이다. 이 경우에, CLK 및 ALE# 신호는 버스특정입력신호가 버스논리(640)에 대하여 하여졌던 것처럼 무시될 수 있을 것이다. 대신에 신호(CE#, OE#)가 제4도에 도시된 타입의 비동기식 판독신호를 이용하여 SFI 플래쉬(600)에 억세스하는데에 이용된다.
일 실시예에서, 모드 레지스터(680)는 내용주소화 기억장치(content addressable memory)를 이용하여 구현된다. 대체적으로, 다른 실시예에서 어떠한 모드레지스터(680)도 없고, 칩(600)의 SFI 기능은 디스에이블될 수 없고, SFI 칩(600)은 표준 비동기식 플래쉬 메모리로서 기능하지 않을 것이다.
일 실시예에서, SFI 플래쉬 메모리(600)는 워드/바이트당 일 어드레스 바이트 판독을 요구한다. 한편 어떤 버스트 프로세서 버스는 시작 어드레스를 제공하므로써 복수판독 버스트 억세스를 초기화하고, 그 다음에 어떠한 부가적인 어드레스 정보의 제공도 없이 신호를 반복적으로 보낸다. 대체적으로, 이러한 프로세서를 수용하기 위하여 SFI 플래쉬 칩(600)은 버스트의 시작 어드레스를 래치할 것이고, 온-칩 카운터를 이용하여 버스트 판독 열의 나머지 전체에 대하여 계속적인 어드레스를 발생시킬 것이다. 이 경우에, SFI 칩(600)은 완전-어드레스 래치를 포함하고, SFI 플래쉬 메모리 배열(600)내의 어드레스 가능 공간에 매칭하는 복수-비트 카운터를 포함할 것이다. 시작 어드레스에 제공된 후, 카운터 논리는 자동증가(버스에 따라서 선형 내지 비선형 차수로)할 것이고, 어드레스를 SFI 플래쉬 메모리 뱅크로 보낼 것이다. 이것은 높은 시스템 성능을 일으키기 위하여 부정의 길이의 복수 버스트 억세스를 허용한다.
제8도는 선택적인 일반 SFI 칩 기술을 이용하는 컴퓨터 시스템(800)을 도시한다. 제8도에서, SFI 플래쉬 메모리(860)는 일반 동기식 플래쉬 메모리 인터페이스를 가진다. 글루 논리(830)는 고속 동기식 버스(820)에 SFI 칩(860)을 인터페이스하기 위하여 요구되는 회로를 제공하기 위하여 마이크로프로세서(810)와 SFI 플래쉬 칩(860) 사이에 위치한 별도의 집적회로 칩이다.
제8도의 방식의 이점은, SFI 플래쉬 칩(860)내에서 일반 인터페이스 제어(870)를 제공하는 것은 뱅크(A; 880, B; 890)의 버스트 판독을 허락한다는 것이다. 그래서, 인터레이싱을 수행하기 위하여 비동기식 플래쉬 칩의 쌍을 요구하기 보다는 플래쉬 주메모리 부시스템이 단일 칩의 장치내에서 확장될 수 있다. 동시에, 제3도의 FPGA(310)와 비교하는 경우에, SFI 글루논리(830)는 글루논리(830)가 어떠한 SFI 칩(860)에 대하여도 요구되는 일반 동기식 인터페이스 제어논리(870)을 포함할 필요가 없기 때문에 더욱 간단하다.
더 나아가, 단일 칩 SFI 칩(860)은 버스특정 제어논리(850)가 SFI 칩(860) 대신에 글루논리(830)내에서 구현되기 때문에 다수의 다른 동기식 버스와 인터페이스할 수도 있다.
이 방식의 부가적인 이점은, 표준 비동기식 플래쉬 칩과 비교할 때에, SFI 칩(860)은 단지 두 개의 부가적인 핀(즉 CLK, ALE#)만을 갖을 필요만 있다는 것이다. 동기식 버스(820)에 대하여 요구되는 어떠한 다른 신호도 SFI 칩(860)에 대해 투과적인 방식으로 글루논리(830)에 의하여 제공된다. 전형적으로, 플래쉬 칩은 얇고 작은 윤곽 패키지(TSOP)와 같은 작은 패키지내에 장착된다. 패키지의 크기가 작기 때문에, 표준 비동기식 플래쉬 칩은 그 패키지에 작용되는 거의 모든 핀을 이용할 것이다. 일반 동기식 플래쉬 인터페이스를 제공하는 경우에, 요구된 두 개의 부가적인 핀은 작은 패키지내에 SFI 플래쉬 칩(860)을 장착하므로써 부여되는 제약조건 안에서도 가용할 것이다.
주목할 것은, 글루논리(830)는 버스트 논리(840)를 포함한다는 것이다. 이것은 앞에서 언급한 것처럼 다른 마이크로프로세서(810)가 다른 버스트 오더링 열을 이용하기 때문이다.
공통 열은 선형 어드레싱 열이다. 선형 어드레싱 열내에서, 데이타 버스트는 버스트의 시작 어드레스로부터 계속 증가한다. 전형적으로, 이 열에서, 데이타 버스트는 판독하는 캐쉬선의 최하위 어드레스로부터 시작할 것이고, 캐쉬선의 어드레스를 통하여 증가할 것이다.
다른 버스트 열은 비선형 어드레싱 열이다. 이 열에서는, 버스트 판독은 캐쉬선의 최하위 어드레스로부터 시작해야할 필요는 없다. 만약 버스트가 캐쉬선의 최하위 어드레스로부터 시작한다면, 비선형 어드레싱 열은 선형 열처럼 행동한다. 한편 만약 버스트가 캐쉬선의 최하위 어드레스와 다른 어드레스로부터 시작한다면, 버스의 후속 어드레스는 캐쉬선의 모든 어드레스가 어드레스되고 우수와 기수 어드레스 뱅크 사이에 인터리브되는 방식으로 어드레싱될 것을 보장하는 방식으로 발생된다.
버스트 논리(840)는 데이타 버스트를 위하여 제1데이타 어드레스를 갖고, 어떠한 어드레스 열이 마이크로프로세서(810)에 의하여 요구되는지간에 그에 대응하여 버스트의 나머지 어드레스를 발생시킨다.
주목할 것은, 선형 및 비선형 버스트 열 모두 우수와 기수 뱅크 사이에 인터리브되기 때문에, SFI 칩(860)은 버스트 논리(840)에 의하여 발생되는 열(선형 또는 비선형)에 불구하고 뱅크 사이에 인터리브될 것이다.
[플래쉬 주메모리를 위한 비동기식 주메모리 인터페이스(AMMI)]
동기식 플래쉬 인터페이스(SFI)는 플래쉬 메모리가 주메모리로 이용되도록 허락하므로써 백투백 데이타 버스트를 지원한다. 하지만 때때로, 시스템의 제약 조건이 동기식 플래쉬 인터페이스를 고속 동기식 버스에 이용하는 것을 방해하는 경우가 있다. 이러한 하나의 경우는, 고속 동기식 버스에 결합된 여러 구성장치가 이미 존재하는 경우이다. 이 경우에, SFI 칩(또는 그것의 글루논리 제어기 칩)의 부가적인 결합은 그것이 더 이상 소망하는 레벨의 성능을 제공할 수 없는 점에서 고속 동기식 버스의 용량성 부하를 증가시킬 것이다. 다른 그러한 경우는, SFI 칩이 글루논리 제어기 및 시스템을 그 칩의 부가적 비용을 억제하도록 설계할 때 수반되는 비용 제약조건을 요구하는 경우이다.
더 나아가, 많은 이동식 시스템은 로컬버스를 가지지 않는다(즉, 고속 동기식 버스를 가지지 않음). 전형적으로, 이러한 시스템에서, CPU는 단일 마이크로프로세서 칩상에서 주변장치 제어기와 함께 집적된다. 이러한 시스템에서, 비동기식 주메모리 버스 및 상당한 저속의 확장버스(expansion bus)만이 그 시스템내에서 가용하다.
오늘날 존재하는 비동기식 플래쉬 메모리는 사용자 제어기를 통하여 이들 시스템내의 확정버스에 인터페이스하여야 한다. 확장버스상의 버스 사이클은 전형적으로 저속이다. 그래서, 각각의 확장버스 사이클은 전형적으로 플래쉬 메모리의 비동기식 억세스 시간보다 길기 때문에, 그 동기식 플래쉬 인터페이스는 확장버스와 인터페이싱할 때에 아무런 실제적인 이점을 주지 않는다.
비동기식 주메모리 인터페이스(AMMI; Asynchronous Main Memory Interface)는 어떠한 컴퓨터 시스템내에서도 플래쉬가 비동기식 고속 주메모리 버스에 인터페이스할 수 있도록 허락한다. 효과적으로, AMMI는 플래쉬 메모리가 비동기식 DRAM 칩을 에뮬레이트하는 것을 허락한다. 저비용, 저전력 플래쉬 메모리를 제공함과 더불어, AMMI는 또한 비휘발성 플래쉬 메모리가 휘발성 DRAM에 대신하여 주메모리로 이용될 수 있도록 허락하므로써, 프로그램 또는 데이타를 하드디스크로부터 DRAM으로 전달하는데 요구되는 시간을 제거할 수 있다. 그래서, SFI의 경우에와 같이, CPU는 휘발성 주메모리와 비교할 때에 성능면에서 저하됨이 없이 플래쉬 주메모리로부터 직접 프로그램을 실행할 수 있다.
AMMI는 플래쉬 칩이 DRAM 칩을 에뮬레이트하는 것을 허락하기 때문에, AMMI는 사용자 제어기를 가질 필요가 없다. 이것은 글루없는 인터페이스를 임의의 시스템의 기존의 제어기에 제공하고, 그래서 비용과 로컬버스의 부하는 감소시킨다.
AMMI는 시스템 성능을 향상시키고, 이동식 컴퓨터 시스템내의 하드디스크에 대체적으로 제공된다. 그것은 또한 시스템 아키텍추어의 최소한도의 변경으로 플래쉬로부터의 더욱 신속한 실행을 제공한다. 더 나아가, 시스템 성능은 어떠한 부가적인 주변 논리없이도 증가될 수 있다.
제9도는 비동기식 주메모리 인터페이스를 가지는 플래쉬 메모리의 일 실시예의 블록다이어그램을 도시한다. 제9도에 도시된 일 실시예에서, 플래쉬 칩(900)은 표준 비동기식 플래쉬 메모리로 동작하거나, DRAM을 에뮬레이트할 수 있다. 이용되는 특별한 어드레싱 모드는 모드 레지스터(910)가 세트되는지의 여부에 따라 결정되도록 이용될 수 있다. 그래서 만약 모드 레지스터(910)가 비동기식 주메모리 인터페이스가 소망되는 것을 지시하도록 세트되었다면, AMMI 플래쉬 칩(900)은 DRAM 칩을 에뮬레이트 할 것이다. 한편 만약 모드 레지스터(910)가 비동기식 주메모리 인터페이스가 소망되는 것을 지시하도록 세트되지 않았다면, AMMI 플래쉬 칩(900)은 DRAM 칩을 에뮬레이트하지 않을 것이다. 후자의 경우에, AMMI 칩(900)의 DRAM 에뮬레이션 회로는 디스에이블될 것이고, AMMI 플래쉬 칩(900)은 표준 비동기식 플래쉬 메모리 칩처럼 동작할 것이다. 일 실시예에서, 모드 레지스터(910)는 내용주소화 기억장치를 이용하여 구현된다.
제10도는 DRAM을 에뮬레이팅할 때의 AMMI 플래쉬 칩(900)의 판독 사이클을 도시한다. AMMI 플래쉬 칩(900)은 DRAM을 에뮬레이팅하기 때문에, 제10도는 또한 전형적인 DRAM 칩을 위한 판독 사이클을 도시한다.
비동기식 주메모리 인테페이스는 DRAM 사이클을 해석하고 그 사이클을 플래쉬 메모리 배열을 억세스하는데 사용될 수 있는 프로토콜로 변환시키는 수단을 제공한다. 전형적인 DRAM 장치에 대한 핀수를 줄이기 위하여, 플래쉬에서 처럼 단일 20비트 어드레스를 이용하는 것보다는, DRAM은 10비트 행 어드레스 및 10비트 열 어드레스를 멀티플렉싱한다. DRAM에 대한 어드레스 신호 멀티플렉싱은 종래 기술의 비동기식 플래쉬 디바이스에서는 보여지지 않는 두 개의 부가적인 핀을 제공하여 이룩된다.
그래서, DRAM내에서, 행 어드레스 스토로브(RAS#; Row Adress Strobe) 핀 및 열 어드레스 스토로브(CAS#) 핀은 스트로빙을 제어하고, 각각의 행 및 열 어드레스를 래칭하는데에 이용된다. 전형적으로, 이러한 어드레스는 이들 스트로브의 하강부에서 래치되고, DRAM 배열내에서 특정 비트를 억세스하는데 이용된다. AMMI 플래쉬 메모리 칩(900)은 DRAM 칩을 에뮬레이트할 수 있기 때문에 AMMI 플래쉬 메모리 칩(900)은 행 및 열 어드레스 스트로브 신호를 각각 수용하기 위한 행 및 열 핀을 가진다.
어떤 DRAM 디바이스는 10비트가 아닌 행 및 열 어드레스를 이용한다. 예를 들면, DRAM 디바이스의 행 및 열 어드레스는 8비트로 표현되도록 요구될 수도 있다. 다음 논의전체를 통하여, 10비트의 행 및 열 어드레스가 이용될 것이다. 하지만, AMMI 플래쉬(900)는 다른 크기의 행 및 열 어드레스를 이용하여 실시될 수 있다는 것은 이해될 수 있을 것이다.
제10도에는, DRAM을 에뮬레이팅하는 AMMI 플래쉬(900)을 위한 판독사이클이 RAS# 및 CAS# 모두 하이로부터 시작하고, 복수비트 데이타 출력신호(DOUT)가 3 상태로 개방된다. 다음에, 10 비트 행 어드레스는 플래쉬 칩(900)의 A0내지 A9어드레스 핀상에 위치되고, RAS# 신호는 유효 어드레스가 AMMI 플래쉬내로 스트로브될 수 있도록 지시하기 위하여 로우로 된다(주목할 것은, 8 비트 행 어드레스의 경우에, 8 비트 행 어드레스는 플래쉬 칩의 A0내지 A7어드레스 핀상에 위치될 것이라는 것이다).
행 어드레스가 AMMI 플래쉬 칩(900)내로 스트로브된 후에 RAS# 신호는 소정의 시간주기동안 로우를 계속하여 유지한다. 표준 DRAM에서, RAS# 신호는 선충전하기 위하여 다음 판독사이클 이전에 판독사이클의 끝에서 하이를 유지한다. 물론 플래쉬 메모리가 DRAM의 커패시터 기반 저장 기술에 근거하지 않기 때문에, 플래쉬 배열은 DRAM에 의하여 요구되는, 긴 선충전 시간을 필요로 하지 않는다. 한편, AMMI 플래쉬(900)는 DRAM을 에뮬레이팅하기 때문에, 그것은 DRAM처럼 반응하여야 한다.
일단 행 어드레스가 AMMI 플래쉬(900)내에서 래치된다면, 판독동작은 WRITE# 신호를 로우로부터 하이로 천이시키므로써 신호된다. 다음에, 10 비트 열 어드레스가 AMMI 플래쉬 칩(900)의 A0내지 A9어드레스 핀상에서 표명된다. 다음에, CAS# 신호는 표명되고, 열 어드레스는 AMMI 플래쉬 칩(900)내에서 래치된다. 다음에 10 비트 행 어드레스 및 10 비트 열 어드레스는 판독될 플래쉬 배열내에서 위치를 특정하기 위하여 사용되는 20 비트 어드레스를 형성하도록 AMMI 플래쉬 칩(900)내에서 결합된다. 한번 판독되면, 20 비트 어드레스의 위치의 내용은 AMMI 플래쉬 칩(900)의 데이타 핀상으로 복수비트 신호 데이타 출력(DOUT)으로서 보내어진다. 다음에, CAS#는 하이로 되고, 복수비트 신호 데이타 출력(DOUT)은 다시 3 상태로 된다.
한편, 행 어드레스가 AMMI 플래쉬 칩(900)으로 스트로브되고 RAS#가 행-선충전이 일어나기에 충분히 긴 시간동안 로우로 유지된 후(단 DRAM이 억세스된다면), RAS# 신호는 다시 하이로 천이한다. CAS# 신호는 또한 열 어드레스가 AMMI 플래쉬 칩(900)으로 스트로브된 후 다시 하이로 천이한다.
제9도를 다시 참조하면, 모드 레지스터(900)내에 저장된 모드값은 제어논리(920)에 제공된다. 제어논리(920)의 하나의 출력은 어드레스 멀티플렉서 선택(AMS) 신호이다. 신호(AMS)는 어드레스 멀티플렉서(먹스(MUX); 930)를 제어한다. 어드레스 먹스(930)는 차례로 AMMI 플래쉬 칩(900)의 어드레스 핀(A0내지 A9)상에서 표명된 10 비트 어드레스를 어드레스 래치(940)의 적절한 부분으로 조정한다.
어드레스 래치(940)는 플래쉬 어드레스(950)의 10 상위 및 하위 비트를 각각 조정하기 위하여 10 비트폭 상부(942) 및 10 비트폭 하부(944)로 나누어진다. 디멀티플렉싱된 어드레스(950)는 플래쉬 배열(950)을 어드레스하기 위하여 사용되는 20 비트 어드레스이다. 제어논리(920)로부터의 또 다른 출력은, 어드레스 래치(940)의 상부(942) 및 하부(944)내에서 어드레스의 래칭을 제어하는 복수비트 어드레스 래치 제어(ALC) 신호이다.
모드레지스터(910)내에 저장된 모드값은 또한 바이패스 멀티플렉서(MUX; 955)를 제공하기 위하여 이용된다. 바이패스 멀티플렉서(955)에의 입력은 어드레스 래치(940)로부터 어드레스(950) 및 플래쉬 칩(900)이 표준 비동기식 플래쉬 칩으로 동작할 때에 플래쉬 칩의 어드레스핀(A0내지 A9)상에서 표명된 20 비트 외부 플래쉬 어드레스에 디멀티플렉싱된다. 바이패스 멀티플렉서(900)로부터의 출력은 플래쉬 배열(960)에 제공되는 플래쉬 어드레스(957)이다.
그래서, AMMI 플래쉬 칩(900)이 표준 비동기식 플래쉬 칩으로 동작할 때에 20비트 플래쉬 어드레스는 플래쉬 칩(900)의 어드레스 핀(A0내지 A9)상에 표명될 것이다. 모드레지스터(910)로부터의 신호(915)는, 플래쉬 칩(900)의 어드레스 핀(A0내지 A9)상에서 플래쉬 어드레스(957)로서의 플래쉬 배열(960)에 표명될 20 비트 플래쉬 어드레스를 바이패스 멀티플렉서(955)가 조정하도록 세트할 것이다.
선택적으로, AMMI 칩(900)이 DRAM 칩을 에뮬레이팅할 때에 플래쉬 칩(900)의 어드레스 핀(A0내지 A9)은 멀티플렉싱될 것이다. 우선 10 비트 행 어드레스는 플래쉬 칩(900)의 어드레스 핀(A0내지 A9)상에 위치될 것이고 RAS# 신호는 행 어드레스가 플래쉬 칩으로 스트로브될 준비가 되어 있다는 것을 지시할 것이다. 다음, 10 비트 열 어드레스는 플래쉬 칩(900)의 어드레스 핀(A0내지 A9)상에 위치될 것이고, CAS# 신호는 열 어드레스가 플래쉬 칩으로 스트로브될 준비가 되어 있디는 것을 지시할 것이다.
주목할 것은, DRAM 에뮬레이션 모드에서, 어떠한 어드레스 신호도 플래쉬 칩(900)의 어드레스 핀(A0내지 A9)상에 위치되지 않을 것이라는 것이다. 그래서, 행 어드래스가 AMMI 플래쉬 디바이스(900)로 스트로브되는 때에, 제어논리(920)는 플래쉬 칩의 어드레스 핀(A0내지 A9)상에서 표명되는 10 비트 행 어드레스를 어드레스 래치(940)의 하부(944)로 조정하도록 어드레스 먹스(930)를 세트할 것이다. 다음에, 신호(ALC)는 플래쉬 칩의 어드레스 핀(A0내지 A9)상에서 표명되는 10 비트 행 어드레스가 어드레스 래치(940)의 하부(944)에 의하여 래치되도록 하게 할 것이다.
그 후, CAS# 신호가 열 어드레스가 AMMI 플래쉬 디바이스(900)로 스트로브되는 것을 지시하는 때에, 제어논리(920)는 플래쉬 칩의 어드레스 핀(A0내지 A9)상에서 표명되는 10 비트 열 어드레스를 어드레스 래치(940)의 상부(944)로 조정하도록 어드레스 먹스(930)를 세트할 것이다. 다음에, 신호(ALC)는 플래쉬 칩의 어드레스 핀(A0내지 A9)상에서 표명되는 10 비트 열 어드레스가 어드레스 래치(940)의 상부(944)에 의하여 래치되도록 하게 할 것이다. 이러한 방식으로, 10 비트 행 어드레스는 래치(940)내에 저장되고 플래쉬 배열(960)을 어드레스하기 위하여 이용될 수 있는 20 비트 디멀티플렉싱된 플래쉬 어드레스(950)를 형성하기 위하여 AMMI 플래쉬 메모리(900)내에 내부적으로 10 비트 열 어드레스와 결합될 것이다. 모드 레지스터(910)로부터의 신호(915)는 바이패스 멀티플렉서(955)가 플래쉬 어드레스(957)로서 플래쉬 배열(960)에 어드레스 래치(940)내에 저장된 20 비트 디멀티플렉싱된 플래쉬 어드레스(950)을 조정하도륵 세트할 것이다.
AMMI 플래쉬 칩(900)이 표준 플래쉬 칩으로 동작하거나 DRAM 칩을 에뮬레이팅하는 것에 불구하고, 일단 전체 20 비트 플래쉬 어드레스(950)가 플래쉬 배열(960)에 제공되면, 어드레스(950)에서 플래쉬 배열(960)내에 저장된 내용은 플래쉬 배열(960)로부터 검색되고, 버스(970)를 통하여 데이타 래치(980)로 송신된다. 제어논리(920)로부터의 데이타 래치 제어(DLC) 신호는 데이타 래치(990)를 제어한다. 적절한 시간에, 데이타 래치(980)는 플래쉬 배열(960)로부터 판독된 데이타를 데이타 버스(990)(및 AMMI 플래쉬(900)의 데이타 핀)로 보낸다. 다음에, 판독 사이클이 완료된 때에, 제어논리(920)는 데이타 래치(980)가 3 상태로 되도록 하게 한다. 지난 폐이지 모드와 같은 다른 DRAM 판독 억세스도 마찬가지로 처리된다.
대체 실시예에서, AMMI 플래쉬 칩(900)은 전용 DRAM 에뮬레이션 디바이스이고, 표준 플래쉬 칩으로 기능할 수 없다. 이러한 대체 실시예에서, 모드 레지스터(910) 및 플래쉬 칩의 어드레스 핀(A10내지 A19)은 요구되지 않는다. 이 실시예는 AMMI 칩(900)에의 더욱 하위의 핀 카운트 인터페이스를 인에이블하고, 특히 공간제약된 설계의 경우에 효과적이다.
부가적으로, 제어논리(920)는 DRAM을 에뮬레이팅한 때에 플래쉬(900)을 위하여 필요하지 않은 DRAM 사이클을 해석하기 위하여 이용된다. 앞에서 언급한 것처럼, DRAM과는 달리, 플래쉬 메모리는 DRAM에 의하여 요구되는 과도한 선충전이나 다양한 재생 사이클을 필요로 하지 않는다. 제11도는 DRAM을 에뮬레이팅하는 AMMI 플래쉬 칩을 위한 전형적인 재생 사이클을 도시한다. DRAM을 에뮬레이팅하는 AMMI 플래쉬 칩은 DRAM 칩처럼 행동한 것이기 때문에, 제11도는 DRAM을 위한 전형적인 재생 사이클을 도시한다.
주목할 것은, 제11도의 재생 사이클은 제10도의 판독사이클에서 처럼 시작한다. 그래서, 재생 사이클의 시작점에서, 열 어드레스 스트로브 신호(CAS#)는 하이로 되고, 행 어드레스는 AMMI 플래쉬 칩(900)의 어드레스 핀(A0내지 A9)상에 위치되고, 한편 행 어드레스 스트로브 신호(RAS#)는 로우로 된다.
하지만 제10도의 판독사이클과 달리, 제11도의 재생 사이클 동안에, 재생된 행의 행 어드레스가 AMMI 플래쉬 메모리 칩(900)으로 스트로브된 후에, 어떠한 열 어드레스도 그 플래쉬 칩으로 스트로브되지 않는다. 대신에, RAS# 신호는 (만약 DRAM이 재생 되었다면) 특정된 행이 재생되도록 허락하기에 충분히 긴 주기동안에 로우로 유지되고, CAS# 신호는 그 주기 전체 동안에 하이로 유지된다. 재생 사이클 동안에, AMMI 플래쉬 메모리 칩(900)의 데이타 핀은 다시 열린 상태(3 상태)로 남는다.
다시 제9도를 참조하면, DRAM 에뮬레이션 모드에 있는 때에, 제어논리(920)는 재생 사이클 패턴을 식별하고, 재생 사이클 전체를 통하여 데이타 래치(980)를 3 상태로 유지할 것이다. 다른 표준 재생 사이클(예, CAS후 RAS[CBR] 재생, 자체 재생 및 은닉 재생 사이클)은 종래 기술에 잘 알려져 있고, 마찬가지로 처리된다. 이같은 방식으로, AMMI 플래쉬 칩(900)으로부터 DRAM 제어기로의 글루없는 인터페이스가 성취된다.
선택적으로, DRAM의 에뮬레이션과 관련된 어떤 비효율성은 제거될 수 있고, DRAM의 에뮬레이션의 이점은, DRAM 제어기가 제어하고 있는 몇몇의 “DRAM”이 사실상 DRAM을 에뮬레이팅하는 AMMI 플래쉬(900)이라는 사실을 벌충하기 위하여 변경되었던 DRAM 제어기를 이용하여 AMMI 플래쉬 칩(900)에 대한 억세스를 제어하므로써 유지된다. 이 경우에, AMMI 플래쉬 칩(900)에 대한 행 및 열 어드레스의 멀티플렉싱은 유지될 수 있다. 하지만 DRAM 제어기는 변경되고, 그래서 DRAM 제어기는 AMMI 플래쉬 칩(900)이 긴(그리고 불필요한) 행-선충전 주기동안 대기하도록 강요하지 않을 것이다. DRAM 제어기는 또한 AMMI 플래쉬 칩(900)을 위하여 재생 사이클을 제거하도록 변경될 것이다. DRAM 제어기는 AMMI 플래쉬 칩(900)이 긴(그리고 불필요한) 행-선충전 주기동안 연결되도록 강요하지 않을 것이다. 그래서, 프로그래밍가능 DRAM 제어기의 경우에는, DRAM 제어기는 AMMI 플래쉬 칩(900)에 억세스하는 것을 최적화하도록 하는 DRAM 제어신호를 발생시키도록 프로그래밍될 수 있다. 적절한 프로그래밍가능 DRAM 제어기의 예는 미합중국 특허(번호 4,785,428; 프로그래밍 가능 메모리 배열 제어신호, 바자, 1988년 11월 15일 출원)에 개시되어 있다.
어떤 프로그래밍가능 DRAM 제어기는 하나 이상의 타입의 DRAM이 제어되는 각각의 DARM 타입이 다른 것들과 다른 타이밍 사이클을 갖는 경우에도 동일한 제어기에 의하여 동시에 제어되도록 허락한다. 이것은 하나 이상의 DRAM 뱅크를 가지고, 그 제어기가 각각의 뱅크를 위하여 프로그램된 다른 억세스 사이클 타이밍을 허락하도록 하므로써 성취된다. 다음 DRAM은 특별한 하나의 뱅크내에서 모든 DRAM이 동일 타입을 갖도록 그룹지워진다.
그래서, 프로그래밍가능 제어기가 뱅크마다 기초로 하여 프로그래밍될 수 있는 일 실시예에서, AMMI 플래쉬 메모리(900)는 하나의 뱅크내에 위치하고 표준 DRAM은 다른 뱅크내에 위치한다. 다음에, 프로그래밍가능 DRAM 제어기는 표준 DRAM 타이밍 사이클을 이용하여 DRAM 뱅크내에서 DRAM을 제어하도록 프로그래밍될 수 있다. 프로그래밍가능 제어기는 또한 AMMI 플래쉬 메모리(900)의 필요사항을 만족 시키도록 최적화되었던 방식으로 DRAM을 에뮬레이팅하는 AMMI 플래쉬 메모리(900)의 뱅크를 제어하도록 프로그래밍될 수 있다.
선택적으로, 프로그래밍가능 제어기를 이용하기 보다는, 특별한 프로그래밍 불가능 DRAM 제어기가 AMMI 플래쉬 메모리(900)에의 억세스를 위하여 최적화되도록 제공될 수 있다. 이러한 특별한 프로그래밍 불가능 제어기는 AMMI 플래쉬 메모리(900)만을 전적으로 제어하거나 또는 종래의 DRAM의 하나 이상의 뱅크를 제어할 수도 있다.
또다른 대체 실시예에서, 고속 동기식 버스(즉, 로컬버스)에 인터페이스하도록 설계된 DRAM 제어기는 AMMI 플래쉬 메모리(900)에의 억세스를 제어하도록 이용될 수 있다.
DRAM을 어뮬레이팅하는 AMMI 플래쉬 메모리(900)를 프로그래밍하는 것은 DRAM에의 기록에서와 마찬가지 방식으로 수행된다. 판독 동작의 경우에, 제어논리(920)는 플래쉬 칩의 제어핀 상의 명령어들을 해석하고, 비동기식 주메모리 플래쉬 디바이스(900)에 의해 요구되는 프로토콜에 대응하여 그들을 발송한다.
프로그래밍(및 소거) 플래쉬 메모리는 DRAM에 기록하는 것보다 시간이 더욱 걸리기 때문에, 앞에서 언급했던 방식들이 AMMI 플래쉬 디바이스(900)를 프로그래밍하는데 요구되는 임팩트 시간을 최소화시키는데 이용될 수 있다. 예를 들면, 플래쉬 파일 시스템 소프트웨어는 AMMI 플래쉬 디바이스(900)에 대한 기록이 요구되면 언제든지 기록상태를 삽입할 수 있다. AMMI 플래쉬(900) 메모리에 대한 기록의 수는, AMMI 플래쉬 디바이스(900)가 종종 변경되는 ROM용 프로그램 및 데이타를 저장하기 위하여 AMMI 플래쉬 디바이스(900)를 이용하므로써 그리고 신속히 기록될 수 있게 하는 메모리 기술을 AMMI 플래쉬 디바이스(900)에 보충하므로써, 상당히 감소될 수 있다. 선택적으로, 기록캐쉬는 AMMI 플래쉬 디바이스(900)로 프로그래밍될 정보를 저장하기 위하여 제공될 수 있다. 다음에 AMMI 플래쉬(900) 메모리의 프로그래밍은 그렇지 않으면 유휴주기가 되어 버릴 주기동안에 그 기초로써 수행될 수 있다.
제12도는 하나 이상의 AMMI 플래쉬 메모리 칩을 이용하여 DRAM 호환 SIMM을 생성하기 위한 기법을 도시한다. 이 기법은, AMMI 플래쉬 메모리 칩(900)을 포함하는 AMMI SIMM(1200)이 DRAM을 위하여 고안된 SIMM 소켓으로 직접 플러그될 수 있도록 허락한다. 그래서, 표준 DRAM 제어기는 AMMI SIMM(1200)를 제어할 수 있다. AMMI SIMM은 시스템이 플래쉬 메모리(900)내에 저장된 데이타 및 직접-실행코드를 그것이 마치 DRAM내에 저장된 것처럼 한편 어떠한 시스템 하드웨어의 변경도없이 억세스할 수 있도록 하게 한다.
제12도는 단일 AMMI 플래쉬 칩(900)과 함께 존재하는 AMMI SIMM(1200)을 도시한다. 대체 실시예에서, AMMI SIMM(1200)은 두 개 이상의 AMMI SIMM(1200)과 함께 존재한다.
AMMI SIMM(1200)의 이점은, 만약 DRAM 제어기가 시스템내에 존재한다면, AMMI 플래쉬 메모리 칩(900)에의 하드웨어 인터페이스가 AMMI 칩의 DRAM 에뮬레이팅 능력에 의하여 매우 간단하게 된다는 것이다. AMMI SIMM(1200)은 플래쉬 주메모리의 컴퓨터 시스템내로의 추가를 더욱 간단히 한다. 그 이유는 AMMI SIMM(1200)이 DRAM 제어기가 개별적인 플래쉬 메모리 구성성분 뿐만 아니라 하나 이상의 AMMI 플래쉬 디바이스(900)를 포함하는 산업표준 SIMM에도 인터페이스할 수 있도록 허락하기 때문이다. 플래쉬 메모리 호환성을 위한 모든 추가적인 회로는 AMMI SIMM(1200)상에 직접 포함된다.
비슷한 밀도의 DRAM 칩과 비교할 때, AMMI 플래쉬 메모리 칩(900)은 몇가지의 여분의 핀을 가질 수 있다. 예를 들면, AMMI 플래쉬 메모리 칩(900)은 칩이 억세스될 준비가 되어 있는 때 및 칩이 바쁘기 때문에 억세스될 수 없는 때(예, 플래쉬 배열이 프로그래밍되거나 플래쉬 블록이 소거되고 있는 때)를 지시하기 위한 RY/BY# 출력핀을 가질 수도 있다. 그래서, SIMM(1200)상의 AMMI 플래쉬 메모리 칩(900)의 RY/BY# 출력핀은 단순하게 결합되지 않는다(즉, “플로팅”됨). 칩이 억세스될 준비가 되어있는 때 또는 바쁜 때를 판단하기 위하여 RY/BY# 핀을 이용하는 대신에, 시스템 소프트 웨어가 칩의 프로그램/소거 상태를 판단하기 위하여 칩(900)내에서 구성성분 상태 레지스터를 조사하는 데에 이용되기도 한다.
DRAM을 에뮬레이팅하는 때에, AMMI 플래쉬 칩(900)은 행 및 열 어드레스를 어드레스 핀(A0내지 A9)상으로, 그들이 칩(900)내로 스트로브되는 때에 멀티플렉싱할 것이다. 그래서 어드레스 핀(A10내지 A19)은 AMMI 플래쉬 칩(900)이 AMMI SIMM(1200)의 일부분일 때에 그것에 의해 이용되지 않는다. 그래서, AMMI 플래쉬 칩(900)이 AMMI SIMM(1200)에 존재할 때에 AMMI 플래쉬 칩(900)의 어드레스 핀(A10내지 A19)은 결합되지 않는다.
RAS# 및 CAS# 신호는 모두 AMMI 플래쉬 칩(900)에 직접 제공된다. 그들은 또한 DRAM WRITE# 신호에 따라 판독/기록 논리(1210)에 제공된다. WRITE# 신호는 판독동작 또는 기록동작이 수행되는지의 여부를 지시한다. AMMI SIMM (1200)의 논리(1210)는, AMMI 플래쉬 칩(900)을 위하여 AMMI SIMM(1200)에 제공되는 RAS# 및 CAS# 및 WRITE# 신호를 적절히 시간조절된 출력 인에이블(OE#) 및 기록 인에이블(WE#) 신호로 번역한다.
비록 모든 플래쉬 메모리 칩이 외부 프로그래밍 전압(VPP) 전원을 요구하지는 않지만, 제12도의 실시예에서, AMMI 플래쉬 칩(900)은 외부 VPP(예, 12V)를 요구한다. VPP는 표준 SIMM 인터페이스의 일부로서 SIMM에 제공되지 않는다. 하지만 시스템 동작전압(Vcc; 예, 3.3V 또는 5V)은 표준 SIMM 인터페이스 일부로서 SIMM에 제공된다. 그래서, 제12도의 실시예에서, VPP컨버터(1220)는 Vcc 시스템 동작 전압을 취하고 AMMI 플래쉬 칩(900)을 위하여 그것을 VPP로 변환시키기 위한 AMMI SIMM(1200)의 일부로서 제공된다. 적절한 VPP전압 컨버터(1220)는 종래기술에서 잘 알려 있고 상용되고 있다. 이러한 전압 컨버터(1220)는 전형적으로 DC-DC 컨버터 내지 전압 펌 프로서 동작한다.
플래쉬 칩(900)의 WP# 입력은 플래쉬 메모리의 Vcc 입력에 연결된다. VCC는 또한 AMMI 칩(900)에 직접 제공된다.
AMMI 플래쉬 메모리(900)를 위한 PWD# 입력은 멕심 인티그레이티드 프로덕트사(미합중국, 캘리포니아, 서니베일)가 제조한 Maxim MAX705와 같은 SIMM상의 프로그래밍 전압 모니터 장치에 결합된다. VPP모니터 회로(1230)는 전원전압이 허용치내에 있지 않다면 AMMI 플래쉬 메모리(900)를 전력 강하 모드로 유지할 것이고, 그로 인하여 AMMI 플래쉬 메모리(900)를 의도하지 않은 기록 또는 소거로부터 보호한다.
이러한 기법은 AMMI 플래쉬 메모리(900)를 포함하는 AMMI SIMM(1200)이 표준 SIMM 인터페이스의 부분이 아닌 VPP프로그램/소거 전압을 사용하는 것과 또한 DRAM을 위하여 고안된 SIMM 소켓에 직접 플러그하는 것을 허용한다. 물론, AMMI 플래쉬 메모리(900)가 VPP의 외부전원을 요구하지 않는 대체 실시예에서, AMMI SIMM(1200)은 VPP컨버터(1220)를 요구하지 않을 것이다. 다음에, VPP모니터(1230)는 Vcc를 모니터하는데 이용될 것이다.
SIMM 핀출력이 일반적 측정의 입력/출력 신호를 부가하는 것을 허락하는 어떤 실시예에서, 프로그래밍 또는 소거되지 않을 때에 VPP를 스위치-오프하게 할 수 있다. 또한, 신호(RP#)를 제어하여 전력관리를 제공하고, WP#를 제어하여 블록의 록 및 언록을 제어한다.
제13도는 주메모리로서 AMMI 플래쉬 SIMM을 이용하는 컴퓨터 시스템의 주메모리의 편성을 도시한다. 컴퓨터 시스템(1300)에서, 마이크로프로세서(1310)는 보드상의 DRAM 제어기(1330)를 포함한다. DRAM 제어기(1330)는 차례로 주메모리 버스(1320)에 의하여 DRAM SIMM(1360) 및 AMMI 플래쉬 SIMM(1350)에 결합된다. DRAM SIMM(1360) 및 AMMI 플래쉬 SIMM(1350)은 함께 마이크로프로세서(1310)을 위한 주메모리의 일부분을 형성한다.
마이크로프로세서(1310)가 DRAM SIMM(1360) 또는 AMMI 플래쉬 SIMM(1350)내에 저장된 코드 또는 데이타에 억세스하는 때에, 마이크로프로세서(1310)의 DRAM 제어기(1330)는 주메모리 버스(1320)상에 억세스 요구를 올려놓을 것이다. 억세스 요구는 주메모리 버스(1320)의 비동기식 프로토콜에 대응하여 DRAM SIMM(1360) 또는 AMMI 플래쉬 SIMM(1350)에 만들어질 것이다. AMMI 플래쉬 SIMM(1350)가 비동기식 DRAM 디바이스를 에뮬레이팅하는 하나 이상의 AMMI 플래쉬 디바이스를 포함하기 때문에, DRAM 제어기(1330)는 DRAM 억세스 프로토콜을 이용하여(즉, 행 및 열 어드레스를 스트로빙하므로써) AMMI 플래쉬 SIMM(1350)에 억세스할 수 있을 것이다. DRAM 제어기(1330)는 또한, AMMI 플래쉬 SIMM(1350)이 그들을 필요로 하지 않을지라도, DRAM 재생 사이클을 제공하고 AMMI 플래쉬 SIMM(1350)을 위한 선충전 지연을 제공할 것이다.
더 나아가, 컴퓨터 시스템(1300)에서, 마이크로프로세서(1310)는 고속 동기식 로컬버스(1325)에 의하여 DRAM 제어기(1335)에 결합된다. DRAM 제어기(1335)는 차례로 주메모리 버스(1345)에 의하여 DRAM SIMM(1365) 및 AMMI 플래쉬 SIMM(1355)에 결합된다. DRAM SIMM(1365) 및 AMMI 플래쉬 SIMM(1355)는 함께 마이크로프로세서(1310)의 주메모리의 일부분을 형성한다.
마이크로프로세서(1310)가 DRAM SIMM(1365) 또는 AMMI 플래쉬 SIMM(1355)내에 저장된 코드 또는 데이타에 억세스하는 때에, 마이크로프로세서(1310)는 로컬버스(1325)상에 억세스 요구를 올려 놓을 것이다. 억세스 요구는 로컬버스(1325)의 동기식 프로토콜에 대응하여 만들어질 것이다. 다음에, DRAM 제어기(1335)는 억세스 요구를 해석할 것이고 그 다음에 주메모리 버스(1345)를 이용하여 DRAM SIMM(1365) 또는 AMMI 플래쉬 SIMM(1355)에의 억세스 요구를 만들 것이다. AMMI 플래쉬 SIMM(1355)는 비동기식 DRAM 디바이스를 에뮬레이팅하는 하나 이상의 AMMI 플래쉬 디바이스를 포함하기 때문에, DRAM 제어기(1330)는 DRAM 억세스 프로토콜을 이용하여(즉 행 및 열 어드레스를 스트로빙하므로써) AMMI 플래쉬 SIMM(1355)를 억세스할 수 있을 것이다. DRAM 제어기(1335)는 또한 DRAM 재생 사이클을 발생시키고 AMMI 플래쉬 SIMM(1355)내의 플래쉬 디바이스가 그들을 필요로 하지 않을 지라도 AMMI 플래쉬 SIMM(1350)을 위하여 선충전 지연을 제공할 것이다.
이차 캐쉬(1375)는 또한 로컬버스(1325)에 결합된다. 만약 마이크로프로세서(1310)가 캐쉬(1375)내에서 가용한 DRAM SIMM(1360 또는 1365) 또는 AMMI 플래쉬 SIMM(1350 또는 1355)로부터 데이타 내지 명령을 억세스하려고 시도한다면, 그 억세스는 대신에 캐쉬(1375)에서 만들어질 것이다.
주목할 것은, 컴퓨터 시스템(1300)이 제13도에 도시된 주메모리 능력의 서브세트를 이용하는 대체 실시예가 존재한다는 것이다. 그래서, 일 실시예에서, 마이크로프로세서(1300)는 주메모리 버스(1320)를 통하여 모든 주메모리를 어드레싱할 것이다. 대체적으로, 마이크로프로세서(1300)는 로컬버스(1325)를 통하여 모든 주메모리를 어드레싱할 것이다. 이러한 경우에, 마이크로프로세서(1310)는 보드상의 DRAM 제어기(1330)를 포함할 필요가 없다.
다른 실시예에서, 이차 캐쉬(1375)는 시스템(1300)내에서 가용하지 않는다. 더 나아가, DRAM 제어기(1330) 또는 DRAM 제어기(1335)에 의하여 제어되는 모든 메모리가 각각 AMMI 플래쉬 SIMM(1350 또는 1355)로 구성되는 대체 실시예가 존재한다. 또한, 또다른 실시예에서는 마이크로프로세서(1310)에 직접 결합되기 보다는, 로컬버스(1325)가 버스 브리지에 의하여 주메모리 버스(1320)에 결합된다.
[플래쉬 주메모리를 위한 동기식 주메모리 인터페이스(SMMI)]
마이크로프로세서의 속도가 빨라짐에 따라, 비동기식 DRAM은 프로세서에 의하여 유지될 수 있는 프로세싱 속도를 만족하기에 충분한 속도로 프로세서에 데이타 및 명령을 전달하는 것이 점차로 불가능하여지고 있다. 최근의 해결책은 동기식 DRAM을 도입하는 것이다. 동기식 DRAM은 DRAM 집적회로내에서 인터리빙을 동기화시키기 위하여 외부클록신호를 사용하고, 이로써 비동기식으로 제공될 때보다 더욱 빠른 버스트 억세스를 제공한다.
제14도는 동기식 DRAM 집적회로 칩을 에뮬레이팅할 수 있는 플래쉬 메모리 집적회로 칩의 블록 다이어그램을 도시한다. 제14도에 도시된 실시예에서, 동기식 주메모리 인터페이스(SMMI) 플래쉬 메모리 장치(1400)는 SFI 플래쉬(600)의 특성을 인터레이싱하는 내부 플래쉬 뱅크(제6도)와 AMMI 플래쉬 메모리(900)의 행 및 열 어드레스 멀티플렉싱(제9도)을 결합시킨다.
제14도에 도시된 SMMI 플래쉬(1400)의 실시예에서, SMMI 플래쉬(1400)는 모드 레지스터(1480)의 세팅에 의하여 4개의 모드중에 하나내에서 기능한다. 제1모드(비동기식 플래쉬 모드)에서, 플래쉬 메모리(1400)는 표준 플래쉬 메모리로서 판독된다. 모드에서, 제2어드레스의 내용을 판독하는 것은 판독될 어드레스가 특정되기 전에 완료되어야 한다.
제2모드(동기식 플래쉬 모드)에서, 클록신호(CLK)가 SMMI 플래쉬 칩(1400)에 제공되고, 데이타 버스트에 속하는 일련의 어드레스가 한 클록마다 하나의 어드레스씩 특정된다. 그 다음에, 버스트를 위하여 특정된 어드레스에 저장된 내용은 어드레스가 제공되었던 순서로 후속 클록동안에 계속적으로 출력된다. 선택적으로, 만약 단일 어드레스가 동기식 모드에 있는 때에 SMMI 플래쉬 칩(1400)에 제공된다면, 버스트를 위한 후속 어드레스는 SMMI 플래쉬 칩(1400)내에서 발생될 것이며, 그 다음 데이타 버스트는 플래쉬 칩으로부터의 출력으로서 제공될 것이다.
제3모드(비동기식 DRAM 모드)에서, SMMI 플래쉬 메모리(1400)는 비동기식 DRAM을 에뮬레이팅한다. 그래서, 행 및 열 어드레스는 행(RAS#) 및 열(CAS#) 어드레스 스트로브 신호를 이용하여 플래쉬 메모리(1400)로 스트로빙된다. 그 다음에, SMMI 플래쉬 메모리(1400)는 행 및 열 어드레스를 내부적으로 단일 어드레스로 변환하고 단일 어드레스에 저장된 데이타를 출력으로서 제공한다. 더 나아가, SMMI 플래쉬 메모리(1400)는 확장된 선충전 주기를 필요로 하거나 재생될 필요가 없을지라도, 비동기식 DRAM 모드에 있을 때에 비동기식 DRAM에서 처럼 선충전 주기 및 재생 사이클에 응답한다. 그래서 비동기식 DRAM 모드에 있을 때에, SMMI 플래쉬 메모리(1400)는 표준 DRAM 제어기에 의하여 제어될 수 있다.
제4모드(동기식 DRAM 모드)에서, 제2 및 제3모드의 특성이 동기식 DRAM을 에뮬레이팅하는 플래쉬 메모리를 만들기 위하여 결합된다. 그래서, 데이타 버스트로서 판독될 어드레스는 RAS# 및 CAS# 신호를 이용하여 행 및 열 어드레스를 플래쉬 메모리로 스트로빙하므로써 특정된다. 그 다음에, 데이타 버스트의 데이타는 후속클록에서 플래쉬 메모리로부터 출력으로써 계속하여 제공된다.
대체 실시예에서, SMMI 플래쉬(1400)는 하나의 모드, 즉 동기식 DRAM 에뮬레이션 모드만을 가지거나, 또는 동기식 DRAM 모드 및 단 하나 또는 두 개의 다른 모드를 갖는다.
제14도에 도시된 제4모드에서, 모드레지스터(1480)는 현재의 SMMI 플래쉬 모드를 반영하는 복수 비트 출력 모드 인에이블 신호(ME)를 가진다. 신호(ME)는 뱅크선택논리(1474), 버스논리(1440), TTL 스테이지(1472) 및 논리와 ATD 제어블록(1470)에 제공된다. 이들 회로는 SMMI 플래쉬(1400)의 기능을 SMMI 플래쉬 디바이스(1400)의 현재 모드에 대응하여 다양하게 제어한다.
그래서, 버스논리(1440)는 SMMI 플래쉬 디바이스(1400)가 동기식 플래쉬 모드에서 동작하는 때에 제6도의 버스논리(640)처럼 기능할 것이고, 다른 모드에서는 디스인에이블 될 것이다. 주목할 것은, SMMI 플래쉬 디바이스(1400)가 일반적 동기식 플래쉬 디바이스로서 동작하는 대체의 실시예에서, 버스 논리(1440)는 칩(1400)의 부분이 아닐 것이고, 그러나 오프칩으로 제공될 것이다.
SMMI 플래쉬 디바이스(1400)가 동기적으로 동작하는 때에, 동기식 플래쉬 또는 동기식 DRAM 에뮬레이션 모드에서, TTL 스테이지(1472), 뱅크선택논리(1474) 및 논리와 ATD회로(1470)는 플래쉬 뱅크(A: 1410, B: 1420)에의 억세스의 인터레이싱을 제어할 것이다. 대체 실시예에서, 인터레이싱은 이러한 동기식 모드에서 있을 때에, SMMI 플래쉬 디바이스(1400)내에서 2개 이상의 플래쉬 뱅크중에서 수행될 것이다.
마찬가지로, SMMI 플래쉬 디바이스(1400)가 DRAM을 에뮬레이팅하는 때에, 비동기식 플래쉬 또는 동기식 DRAM 에뮬레이션 모드에서, TTL 스테이지(1472), 뱅크선택논리(1474) 및 논리와 ATD 회로(1470)는 어드레스 멀티플렉서(1492, 1494) 및 3 상태 출력버퍼(1460)에 의하여 행 및 열 어드레스의 멀티플렉싱을 제어할 것이다.
SMMI 플래쉬 기반 동기식 SIMM은 제2도의 AMMI SIMM(1200)과 관련하여 상기에 설명한 기술을 이용하여 형성될 수 있다. 이것은 AMMI SIMM(1200)과 (AMMI 플래쉬 디바이스(900)보다는) 하나 이상의 SMMI 플래쉬 디바이스(1400)를 존재시키므로써 그리고 각각의 SMMI 플래쉬 디바이스에 클록신호를 제공하므로써 성취될 수도 있다.
제15도는 SMMI 플래쉬 SIMM을 주메모리로 사용하는 컴퓨터 시스템의 주메모리 편성을 도시하는 블록 다이어그램이다. 컴퓨터 시스템(1500)에서, 마이크로프로세서(1510)는 모드상 동기식 DRAM 제어기(1530)를 포함한다. 동기식 DRAM 제어기(1530)는 차례로 동기식 주메모리에 의하여 동기식 DRAM SIMM(1560) 및 SMMI 플래쉬 SIMM (1550)에 결합된다. 동기식 DRAM SIMM(1560) 및 SMMI 플래쉬 SIMM(1550)은 함께 마이크로프로세서(1510)을 위한 주메모리의 일부분을 형성한다.
마이크로프로세서(1510)가 DRAM SIMM(1560) 또는 SMMI 플래쉬 SIMM (1550)내에 저장된 코드 또는 데이타를 억세스하는 때에, SMMI 플래쉬 SIMM(1555)내의 플래쉬 디바이스가 그들을 필요로 하지 않을지라도 마이크로프로세서(1510)의 동기식 DRAM 제어기(1530)는 동기식 주메모리 버스(1520)에 억세스 요구를 올려 놓을 것이다. 억세스 요구는 동기식 주메모리 버스(1520)의 동기식 프로토콜에 대응하여 DRAM SIMM(1560) 또는 SMMI 플래쉬 SIMM(1550)에 만들어질 것이다. SMMI 플래쉬 SIMM(1550)가 동기식 DRAM 디바이스를 에뮬레이팅하는 하나 이상의 SMMI 플래쉬 디바이스를 포함하기 때문에, 동기식 DRAM 제어기(1530)는 동기식 DRAM 억세스 프로토콜을 이용하여(즉, 클록 신호를 제공하는 것과 함께 행 및 열 어드레스를 스트로빙하므로써) SMMI 플래쉬 SIMM(1550)에 억세스할 수 있을 것이다. DRAM 제어기(1530)는 또한 SMMI 플래쉬 SIMM(1550)이 그들을 필요로 하지 않을지라도 DRAM 재생 사이클을 제공하고 SMMI 플래쉬 SIMM(1550)을 위한 선충전 지연을 제공할 것이다.
더 나아가, 컴퓨터 시스템(1500)에서, 마이크로프로세서(1510)는 고속 동기식 로컬버스(1525)에 의하여 DRAM 제어기(1535)에 결합된다. 동기식 DRAM 제어기(1535)는 차례로 동기식 주메모리 버스(1545)에 의하여 DRAM SIMM(1565) 및 SMMI 플래쉬 SIMM(1555)에 결합된다. DRAM SIMM(1565) 및 SMMl 플래쉬 SIMM(1555)는 함께 마이크로프로세서(1510)의 주메모리의 일부분을 형성한다.
마이크로프로세서(1510)가 DRAM SIMM(1565) 또는 SMMI 플래쉬 SIMM(1555)내에 저장된 코드 또는 데이타에 억세스하는 때에, 마이크로프로세서(1510)는 로컬버스(1525)상에 억세스 요구를 올려 놓을 것이다. 억세스 요구는 로컬버스(1525)의 동기식 프로토콜에 대응하여 만들어질 것이다. 다음에, 동기식 DRAM 제어기(1535)는 억세스 요구를 해석할 것이고 그 다음에 동기식 주메모리 버스(1545)를 이용하여 DRAM SIMM(1565) 또는 SMMI 플래쉬 SIMM(1555)에의 억세스 요구를 만들 것이다. SMMI 플래쉬 SIMM(1555)는 동기식 DRAM 디바이스를 에뮬레이팅하는 하나 이상의 SMMI 플래쉬 디바이스를 포함하기 때문에, 동기식 DRAM 제어기(1530)는 DRAM 억세스 프로토콜을 이용하여(즉 행 및 열 어드레스를 스트로빙하고 클록신호를 제공하므로써) SMMI 플래쉬 SIMM(1555)를 억세스할 수 있을 것이다. 동기식 DRAM 제어기(1535)는 또한 DRAM 재생 사이클을 발생시키고 SMMI 플래쉬 SIMM(1555)내의 플래쉬 디바이스가 그들을 필요로 하지 않을 지라도 SMI 플래쉬 SIMM (1550)을 위하여 선충전 지연을 제공할 것이다.
이차 캐쉬(1575)는 또한 로컬버스(1525)에 결합된다. 만약 마이크로프로세서(1510)가 캐쉬(1575)내에서 가용한 DRAM SIMM(1560 또는 1565) 또는 AMMI 플래쉬 SIMM(1550 또는 1555)로부터 데이타 내지 명령을 억세스하려고 시도한다면, 그 억세스는 대신에 캐쉬(1575)에서 만들어질 것이다.
주목할 것은, 컴퓨터 시스템(1500)이 제15도에 도시된 주메모리 능력의 서브세트를 이용하는 대체 실시예가 존재한다는 것이다. 그래서, 일 실시예에서, 마이크로프로세서(1500)는 주메모리 버스(1520)를 통하여 모든 주메모리를 어드레싱할 것이다. 대체적으로, 마이크로프로세서(1500)는 로컬버스(1525)를 통하여 모든 주메모리를 어드레싱할 것이다. 이러한 경우에, 마이크로프로세서(1510)는 보드상의 DRAM 제어기(1530)를 포함할 필요가 없다.
다른 실시예에서, 이차 캐쉬(1575)는 시스템(1500)내에서 가용하지 않는다. 더 나아가, 동기식 DRAM 제어기(1530) 또는 동기식 DRAM 제어기(1535)에 의하여 제어되는 모든 주메모리가 각각 SMMI 플래쉬 SIMM(1550 또는 1555)로 구성되는 대체 실시예가 존재한다 또한, 또다른 실시예에서는 마이크로프로세서(1510)에 직접 결합되기 보다는, 로컬버스(1525)는 버스 브리지에 의하여 주메모리 버스(1520)에 결합된다.
상기 명세서에서, 본 발명은 특정된 예시적 실시예를 참조하며 설명되었다. 하지만 첨부된 청구의 범위에 개시된 발명의 사상과 범위를 벗어나지 않고, 많은 변형과 변경이 만들어질 수 있다는 것은 분명하다. 따라서 명세서 및 도면은 제한적 의미가 아닌 예시적으로 고려되어야 할 것이다.

Claims (44)

  1. 복수개의 개별 메모리 구성요소를 가진 비동기 비휘발성 메모리에서 버스트 판독동작을 수행하는 방법에 있어서, A) 현재 어드레스로서 제1어드레스를 상기 복수개의 개별 메모리 구성요소에 제공하는 단계로서, 연속되는 어드레스들은 동일한 메모리 구성요소에 위치하지 않는, 어드레스를 제공하는 단계; B) 현재 어드레스의 m 고위비트에 의해 식별되는 비동기 비휘발성 메모리의 현재 페이지를 선택하는 단계로서, 각각의 개별 메모리 구성요소는 현재 어드레스의 m 고위비트에 의해 식별된 위치를 거의 동시에 감지(sense)하는, 페이지를 선택하는 단계; C) 현재 어드레스와 관련한 데이터를 제공하기 위해, 현재 어드레스의 n 저위비트에 따라, 선택된 개별 메모리 구성요소의 출력을 인에이블하는 단계; D) 연속되는 다음 어드레스를 제공하는 단계로서, 상기 현재 어드레스는 선행하는 어드레스가 되며 연속되는 다음 어드레스가 현재 어드레스가 되는, 어드레스를 제공하는 단계; E) 만약 현재 및 선행 어드레스가 동일한 페이지를 식별한다면, 현재 어드레스와 관련한 데이터를 제공하기 위해, 대기상태를 발생시키지 않은채 현재 어드레스의 n 저위비트에 의해 식별된 또다른 선택된 개별 메모리 구성요소의 출력을 인에이블하는 단계; F) 현재 및 선행 어드레스가 동일 페이지를 식별하는 동안 상기 단계(D 내지 E)를 반복하는 단계;를 포함하는 것을 특징으로 하는 수행방법.
  2. 제1항에 있어서, G) 만약 현재 및 선행 어드레스가 동일 페이지를 식별하지 못한다면 1) 대기상태를 발생시키는 단계; 및 2) 현재 어드레스의 m 상위비트에 의해 식별된 또다른 페이지를 비동기 비휘발성 메모리의 현재 페이지로서 선택하는 단계;를 수행하는 단계; 및 H) 단계(C)로 복귀하는 단계;를 더 포함하는 것을 특징으로 하는 수행방법.
  3. 제1항에 있어서, 상기 단계(A)는 1) 복수개의 개별 메모리 구성요소에 칩 인에이블 신호를 제공하는 단계를 포함하는 것을 특징으로 하는 수행방법.
  4. 제1항에 있어서, 상기 단계(C)는 1) 선택된 개별 메모리 구성요소에 출력 인에이블 신호를 제공하는 단계를 포함하는 것을 특징으로 하는 수행방법.
  5. 제1항에 있어서, 비휘발성 메모리는 플래쉬 메모리인 것을 특징으로 하는 수행방법.
  6. 제1항에 있어서, 프로세서가 단계(D)를 수행하는 것을 특징으로 하는 수행방법.
  7. A) 만약 멀티플렉스된 어드레스 모드가 모드 레지스터에 저장된 값에 의해 표시된다면 디멀티플렉스된 어드레스를 발생하기 위해 복수의 멀티플렉스된 어드레스 신호를 디멀티플렉스하는 단계로서, 상기 값은 하나이상의 동기 및 비동기 동작모드 중의 하나를 표시하는, 디멀티플렉싱 단계; B) 디멀티플렉스된 어드레스에 따라서 비휘발성 메모리로부터 데이터를 판독하는 단계;및 C) 상기 데이터를 래치하는 단계;를 포함하는 것을 특징으로 하는 방법.
  8. 제7항에 있어서, 상기 비휘발성 메모리는 플래쉬 메모리로 구성되는 것을 특징으로 하는 방법.
  9. 제7항에 있어서, 상기 단계(A)는, 1) 제1 스트로브 신호 및 제2 스트로브 신호를 포함하는 제어신호 및 복수의 멀티플렉스된 어드레스를 수신하는 단계; 2) 선택된 멀티플렉스된 어드레스의 제1 부분을 래치하는 단계; 및 3) 선택된 멀티플렉스된 어드레스의 제2 부분을 래치하는 단계;를 더 포함하며, 상기 제1 및 제2 부분은 디멀티플렉스된 어드레스를 형성하는 것을 특징으로 하는 방법.
  10. 제9항에 있어서, 상기 제1 스트로브 신호는 행 어드레스 신호이며, 상기 단계 (A)의 (2)는 행 어드레스 스트로브 신호에 응답하여 수행되는 것을 특징으로 하는 방법.
  11. 제9항에 있어서, 상기 제2 스트로브 신호는 열 어드레스 신호이며, 상기 단계 (A)의 (3)은 열 어드레스 스트로브 신호에 응답하여 수행되는 것을 특징으로 하는 방법.
  12. 제9항에 있어서, D) 만약 제어 신호가 재충전(refresh) 사이클을 표시하면 3상태(tristated) 출력을 제공하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  13. 제12항에 있어서, 제1 및 제2 스트로브 신호의 시퀀스는 재충전 사이클을 표시하는 것을 특징으로 하는 방법.
  14. 제9항에 있어서, D) 만약 제어 신호가 선충전(precharge) 사이클을 표시하면 3상태 출력 메모리를 제공하는 것을 특징으로 하는 방법.
  15. A) 동작모드에 따라서 디멀티플렉스된 어드레스를 위한 소스로서 어드레스 버스 및 어드레스 래치 중의 하나를 선택하는 단계로서, 상기 어드레스 래치는 멀티플렉스된 어드레스를 출력으로서 수신하고, 상기 동작모드는 모드 레지스터에 저장된 값에 의해 결정되며, 상기 값은 하나이상의 동기 및 비동기 동작모드 중의 하나를 표시하는, 선택하는 단계; B) 디멀티플렉스된 어드레스에 따라서 비휘발성 메모리로부터 데이터를 판독하는 단계; 및 C) 상기 데이터를 래치하는 단계;를 포함하는 것을 특징으로 하는 방법.
  16. 제15항에 있어서, 상기 단계(A)는 1) 만약 동작모드가 멀티플렉스되지 않은(nonmultiplexed) 동작모드이면, 어드레스 버스를 소스로서 선택하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  17. 제15항에 있어서, 상기 단계(A)는 1) 만약 동작모드가 멀티플렉스된 동작모드이면, 어드레스 래치를 소스로서 선택하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  18. 제17항에 있어서, D) 디멀티플렉스된 어드레스의 제1 부분을 상기 어드레스 버스로부터 래치하는 단계; 및 E) 디멀티플렉스된 어드레스의 제2 부분을 상기 어드레스 버스로부터 래치하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  19. 컴퓨터 시스템에 있어서, 시작 어드레스 및 복수개의 다음의 연속되는 어드레스들에 의해 정의되는 메모리의 범위에 대해 버스트 판독을 개시하기 위한 프로세서; 상기 프로세서에 연결된 비동기 주메모리 버스; 복수개의 개별 메모리 구성요소를 포함하는 비휘발성 메모리로서, 상기 비휘발성 메모리내의 연속되는 어드레스들은 동일한 개별 메모리 구성요소에 위치하지 않는, 비휘발성 메모리; 및 비동기 주메모리 버스 및 비휘발성 메모리에 연결된 완전 프로그래밍가능 게이트 어레이(FPGA);를 포함하며, 상기 메모리 범위의 각 선택된 어드레스에 대해 상기 FPGA는 선택된 어드레스의 m 상위비트에 따라서 비휘발성 메모리의 페이지를 선택하며, 상기 FPGA는 선택된 어드레스의 n 하위비트에 따라서 프로세서에 데이터를 제공하도록 개별 메모리 구성요소중의 하나의 출력을 인에이블하며, 상기 선택된 어드레스 및 선행 어드레스가 비휘발성 메모리의 동일 페이지를 식별하는 동안 어떤 대기상태도 발생되지 않는 것을 특징으로 하는 컴퓨터 시스템.
  20. 제19항에 있어서, 상기 비휘발성 메모리는 플래쉬 비휘발성 메모리인 것을 특징으로 하는 컴퓨터 시스템.
  21. 제19항에 있어서, 상기 비동기 주메모리 버스는 16MHz 와 같거나 그이상의 속도로 동작하는 것을 특징으로 하는 컴퓨터 시스템.
  22. 제19항에 있어서, 상기 프로세서는 복수개의 다음의 연속되는 어드레스를 제공하는 것을 특징으로 하는 컴퓨터 시스템.
  23. 제19항에 있어서, 상기 프로세서는 정적(static) 마이크로 프로세서인 것을 특징으로 하는 컴퓨터 시스템.
  24. 컴퓨터 시스템에 있어서, 시작 어드레스 및 복수개의 다음의 연속되는 어드레스에 의해 정의되는 메모리의 범위에 대해 버스트 판독을 개시하기 위한 프로세서; 버스트 판독 시퀀스의 연속되는 어드레스를 발생시키기 위한 버스트 논리 회로; 상기 프로세서 및 상기 버스트 논리 회로에 연결되어 있으며, 클록신호 및 어드레스 래치 인에이블 신호를 포함하는 동기 제어신호 및 어드레스 신호를 제공하는 동기 주메모리 버스; 버스트 논리 회로에 연결된 비휘발성 메모리 장치로서, 비휘발성 메모리의 제1 뱅크; 비휘발성 메모리의 제2 뱅크로서, 상기 비휘발성 메모리 장치의 연속되는 어드레스는 제1 및 제2 뱅크간에 인터레이스(interlace)되는, 제2 뱅크; 클록신호를 포함한 동기 제어신호, 비동기 제어신호, 및 어드레스 신호를 수신할 수있는 인터페이스 제어 논리; 모드 레지스터로서, 상기 인터페이스 제어 논리는 어드레스 신호 및 동기 제어신호에 따라서 제1 및 제2 메모리 뱅크에 동기 억세스를 제공하여, 만약 모드 레지스터가 제1 값을 저장하면 동기 버스트 판독 데이터를 클록신호의 연속되는 사이클에 제공하며, 만약 모드 레지스터가 제2 값을 저장하면 어드레스 신호 및 비동기 제어신호에 따라서 인터페이스 제어 논리가 클록신호에 독립적인 제1 및 제2 메모리 뱅크에 비동기 억세스를 제공하는, 모드 레지스터; 및 비휘발성 메모리의 제1 및 제2 뱅크에 연결된 데이터 멀티플렉서로서, 상기 데이터 멀티플렉서는 어드레스 신호의 적어도 한 비트 및 동기 제어신호에 따라서 제1 및 제2 뱅크중의 하나로부터 데이터를 동기적으로 선택하여 만일 모드 레지스터가 제1 값을 저장하면 클록신호의 연속되는 사이클에 동기 버스트 판독 데이터를 제공하는 데이터 멀티플렉서;를 포함하는 비휘발성 메모리 장치;를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  25. 제24항에 있어서, 상기 버스트 판독 시퀀스는 비선형 시퀀스인 것을 특징으로 하는 컴퓨터 시스템.
  26. 제24항에 있어서, 상기 버스트 판독 시퀀스는 선형 시퀀스인 것을 특징으로 하는 컴퓨터 시스템.
  27. 제24항에 있어서, 상기 비휘발성 메모리는 플래쉬 메모리인 것을 특징으로 하는 컴퓨터 시스템.
  28. 제24항에 있어서, 상기 비휘발성 메모리 장치는 집적회로에 형성되는 것을 특징으로 하는 컴퓨터 시스템.
  29. 제24항에 있어서, 상기 비휘발성 메모리 장치 및 버스트 논리는 동일 집적회로에 형성되는 것을 특징으로 하는 컴퓨터 시스템.
  30. 비휘발성 메모리 장치에 있어서, 비휘발성 메모리의 제1 뱅크; 비휘발성 메모리의 제2 뱅크로서, 상기 비휘발성 메모리 장치의 연속되는 어드레스는 제1 및 제2 뱅크간에 인터레이스되는, 제2 뱅크; 클록신호를 포함하는 동기 제어신호, 비동기 제어신호, 및 어드레스 신호를 수신하는 인터레이스 제어 논리; 및 모드 레지스터로서, 상기 인터페이스 제어 논리는 어드레스 신호 및 동기 제어신호에 따라서 제1 및 제2 메모리 뱅크에 동기 억세스를 제공하여, 만약 모드 레지스터가 제1 값을 저장하면 동기 버스트 판독 데이터를 클록신호의 연속되는 사이클에 제공하며, 만약 모드 레지스터가 제2 값을 저장하면 어드레스 신호에 따라서 인터페이스 제어 논리가 클록신호에 독립적인 제1 및 제2 메모리 뱅크에 비동기 억세스를 제공하는, 모드 레지스터;를 포함하는 것을 특징으로 하는 비휘발성 메모리 장치.
  31. 제30항에 있어서, 상기 제1 및 제2 비휘발성 메모리 뱅크, 인터레이스 제어논리, 및 모드 레지스터는 동일한 집적회로내에 형성되는 것을 특징으로 하는 비휘발성 메모리 장치.
  32. 제30항에 있어서, 상기 모드 레지스터는 내용주소화 기억장치에 구현되는 것을 특징으로 하는 비휘발성 메모리 장치.
  33. 제30항에 있어서, 상기 동기 제어신호의 어드레스 래치 인에이블 신호에 따라서, 수신된 어드레스 신호의 적어도 한 부분을 제1 뱅크에 제공하도록 연결된 제1 어드레스 래치; 상기 어드레스 래치 인에이블 신호에 따라서, 수신된 어드레스 신호의 상기 부분을 제2 뱅크에 제공하도록 연결된 제2 어드레스 래치로서, 상기 인터페이스 제어 논리는 만약 모드 레지스터가 제1 값을 저장하면 적어도 한 비트의 어드레스 신호에 따라서 상기 제1 및 제2 어드레스 래치 중의 선택된 하나에 상기 어드레스 래치 인에이블 신호를 제공하는, 제2 어드레스 래치; 및 비휘발성 메모리의 제1 및 제2 뱅크에 연결된 데이터 멀티플렉서로서, 상기 데이터 멀티플렉서는 적어도 한 비트 및 클록 신호에 따라서 제1 및 제2 뱅크중의 하나로부터 데이터를 동기적으로 선택하여 만일 모드 레지스터가 제1 값을 저장하면 클록신호의 연속되는 사이클에 동기 버스트 판독 데이터를 제공하는 데이터 멀티플렉서;를 더 포함하는 것을 특징으로 하는 비휘발성 메모리 장치.
  34. 제33항에 있어서, 비휘발성 메모리의 제1 및 제2 뱅크, 인터레이스 제어논리, 모드 레지스터, 제1 및 제2 어드레스 래치, 및 데이터 멀티플렉서는 동일한 집적회로내에 형성되는 것을 특징으로 하는 비휘발성 메모리 장치.
  35. 비휘발성 메모리 장치에 있어서, 동작모드를 표시하는 값을 저장하는 모드 레지스터; 비동기 제어신호에 응답하여 어드레스 래치 신호 및 데이터 래치 신호를 발생시키는 제어논리; 상기 어드레스 래치 신호에 응답하여 디멀티플렉스된 어드레스를 어드레스 버스로부터 래치하는 어드레스 래치; 모드 레지스터에 연결되며, 동작모드에 따라서 디멀티플렉스된 어드레스를 어드레스 버스 및 어드레스 래치 중의 선택된 하나로부터 래치하는 멀티플렉서; 상기 멀티플렉서에 연결된 비휘발성 메모리 어레이; 및 상기 데이터 래치 제어신호에 응답하여 상기 디멀티플렉스된 어드레스에 대응하는 데이터를 비휘발성 메모리로부터 래치하는 데이터 래치;를 포함하는 것을 특징으로 하는 비휘발성 메모리 장치.
  36. 제35항에 있어서, 상기 멀티플렉서는 만약 상기 동작모드가 디멀티플렉스된 동작모드이면 상기 어드레스 버스를 선택하며, 만약 상기 동작모드가 멀티플렉스된 동작모드이면 상기 멀티플렉서는 상기 어드레스 래치를 선택하는 것을 특징으로 하는 비휘발성 메모리 장치.
  37. 제36항에 있어서, 상기 비동기 제어신호는 행 어드레스 스트로브 신호 및 열 어드레스 스트로브 신호를 포함하며, 상기 제어논리는 상기 행 어드레스 스트로브 신호에 응답하여 디멀티플렉스된 어드레스의 제1 부분을 래치하기 위한 제1 어드레스 래치를 발생시키며, 상기 제어논리는 상기 열 어드레스 스트로브 신호에 응답하여 디멀티플렉스된 어드레스의 제2 부분을 래치하기 위한 제2 어드레스 래치 신호를 발생시키는 것을 특징으로 하는 비휘발성 메모리 장치.
  38. 제36항에 있어서, 만약 비동기 제어신호가 재충전 사이클을 표시하면 데이터 래치의 출력이 3상태인 것을 특징으로 하는 비휘발성 메모리 장치.
  39. 제36항에 있어서, 만약 비동기 제어신호가 선충전 사이클을 표시하면 데이터 래치의 출력이 3상태인 것을 특징으로 하는 비휘발성 메모리 장치.
  40. 제36항에 있어서, 상기 데이터 래치, 비휘발성 메모리 어레이, 멀티플렉서, 어드레스 래치, 제어 논리, 및 모드 레지스터는 동일한 집적회로상에 형성되는 것을 특징으로 하는 비휘발성 메모리 장치.
  41. 비휘발성 메모리 장치에 있어서, 동작모드의 멀티플렉스된 어드레스를 표시하는 값을 저장하는 모드 선택 레지스터로서, 상기 값은 하나이상의 동기 및 비동기 동작모드 중의 하나를 표시하는, 모드 선택 레지스터; 제1 및 제2 스트로브 신호를 포함하는 비동기 제어신호 및 멀티플렉스된 어드레스 신호를 수신하며, 제1 스트로브 신호에 응답하여 제1 래치신호를 발생시키고, 제2 스트로브 신호에 응답하여 제2 래치신호를 발생시키며, 비동기 제어신호에 따라서 데이터 래치 제어신호를 발생시키는 제어 논리; 어드레스 래치로서, 상기 어드레스 래치는 제1 래치신호에 응답하여 선택된 멀티플렉스된 어드레스의 제1 부분을 래치하고 제2 래치신호에 응답하여 선택된 멀티플렉스된 어드레스의 제2 부분을 래치하며, 상기 제1 및 제2 부분은 디멀티플렉스된 어드레스를 형성하는, 어드레스 래치; 및 데이터 래치 제어신호에 응답하여 비휘발성 메모리로부터 상기 디멀티플렉스된 어드레스를 수신하도록 연결된 비휘발성 메모리 어레이;를 포함하는 것을 특징으로 하는 비휘발성 메모리 장치.
  42. 제41항에 있어서, 상기 제어논리, 어드레스 래치, 비휘발성 메모리 어레이, 및 데이터 래치는 동일한 집적회로내에 형성되는 것을 특징으로 하는 비휘발성 메모리 장치.
  43. 비휘발성 메모리 장치에 있어서, 비휘발성 메모리의 복수개의 뱅크로서, 상기 비휘발성 메모리 장치의 연속되는 어드레스는 비휘발성 메모리의 복수개의 뱅크 사이에 인터레이스되는, 복수개의 뱅크; 클록신호를 포함한 동기 제어신호, 비동기 제어신호, 및 수신된 멀티플렉스된 어드레스 신호에 따라서 뱅크 래치 인에이블 신호를 발생시키는 인터레이스된 제어 논리; 뱅크 래치 인에이블 신호에 따라서 복수개의 뱅크에 디멀티플렉스된 어드레스를 제공하기 위해, 멀티플렉스된 어드레스 신호를 디멀티플렉스하기 위한 복수개의 뱅크 래치; 및 모드 레지스터로서, 상기 인터페이스 제어 논리는 멀티플렉스된 어드레스 신호 및 동기 제어신호에 따라서 제1 및 제2 메모리 뱅크에 동기 억세스를 제공하여, 만약 모드 레지스터가 제1 값을 저장하면 동기 버스트 판독 데이터를 클록신호의 연속되는 사이클에 제공하는, 모드 레지스터;를 포함하는 것을 특징으로 하는 비휘발성 메모리 장치.
  44. 제43항에 있어서, 상기 제1 값은 동기식 동적 랜덤 억세스 메모리(DRAM) 동작모드를 표시하는 것을 특징으로 하는 비휘발성 메모리 장치.
KR1019960706889A 1994-06-03 1995-06-01 플래쉬 메모리에 기초한 주메모리 KR100281432B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/253,499 US5696917A (en) 1994-06-03 1994-06-03 Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
US8/253,499 1994-06-03
PCT/US1995/007062 WO1995034030A2 (en) 1994-06-03 1995-06-01 Flash memory based main memory

Publications (1)

Publication Number Publication Date
KR100281432B1 true KR100281432B1 (ko) 2001-02-01

Family

ID=22960536

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960706889A KR100281432B1 (ko) 1994-06-03 1995-06-01 플래쉬 메모리에 기초한 주메모리

Country Status (7)

Country Link
US (4) US5696917A (ko)
EP (1) EP0765498A4 (ko)
KR (1) KR100281432B1 (ko)
CN (2) CN1102772C (ko)
AU (1) AU2765895A (ko)
BR (1) BR9507911A (ko)
WO (1) WO1995034030A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100897601B1 (ko) * 2006-12-29 2009-05-14 삼성전자주식회사 시스템의 오작동 방지를 위한 비휘발성 메모리 모듈 및이를 구비한 시스템
KR101237005B1 (ko) 2007-11-09 2013-02-26 삼성전자주식회사 저항체를 이용한 비휘발성 메모리 장치, 이를 포함하는메모리 시스템, 및 이의 구동 방법

Families Citing this family (433)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW261687B (ko) 1991-11-26 1995-11-01 Hitachi Seisakusyo Kk
US6347051B2 (en) * 1991-11-26 2002-02-12 Hitachi, Ltd. Storage device employing a flash memory
US6078520A (en) * 1993-04-08 2000-06-20 Hitachi, Ltd. Flash memory control method and information processing system therewith
KR970008188B1 (ko) 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
US5696917A (en) 1994-06-03 1997-12-09 Intel Corporation Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
US5526320A (en) * 1994-12-23 1996-06-11 Micron Technology Inc. Burst EDO memory device
US6801979B1 (en) * 1995-07-31 2004-10-05 Lexar Media, Inc. Method and apparatus for memory control circuit
DE19539746A1 (de) * 1995-10-26 1997-04-30 Sel Alcatel Ag Rechner
US5835970A (en) * 1995-12-21 1998-11-10 Cypress Semiconductor Corp. Burst address generator having two modes of operation employing a linear/nonlinear counter using decoded addresses
US6209071B1 (en) * 1996-05-07 2001-03-27 Rambus Inc. Asynchronous request/synchronous data dynamic random access memory
JP3761635B2 (ja) * 1996-07-12 2006-03-29 株式会社ダックス メモリボード、メモリアクセス方法及びメモリアクセス装置
US6047361A (en) * 1996-08-21 2000-04-04 International Business Machines Corporation Memory control device, with a common synchronous interface coupled thereto, for accessing asynchronous memory devices and different synchronous devices
US5901298A (en) * 1996-10-07 1999-05-04 Intel Corporation Method for utilizing a single multiplex address bus between DRAM, SRAM and ROM
KR100229897B1 (ko) * 1997-01-10 1999-11-15 윤종용 직접 메모리 억세스 전송방법에 따른 타이밍 모드선택장치
US6067593A (en) * 1997-07-18 2000-05-23 Avido Systems, Inc. Universal memory bus and card
US6021478A (en) * 1997-06-30 2000-02-01 Ford Motor Company Method for operating a microprocessor and a burst memory using a chip enable and an output enable signal
US6108745A (en) * 1997-10-31 2000-08-22 Hewlett-Packard Company Fast and compact address bit routing scheme that supports various DRAM bank sizes and multiple interleaving schemes
JPH11143718A (ja) * 1997-11-05 1999-05-28 Nec Corp Bios格納並びに制御方法
US6266751B1 (en) * 1997-11-14 2001-07-24 Agere Systems Guardin Corp. Continuously sliding window method and apparatus for sharing single-ported memory banks between two agents
US6175893B1 (en) * 1998-04-24 2001-01-16 Western Digital Corporation High bandwidth code/data access using slow memory
US6073206A (en) * 1998-04-30 2000-06-06 Compaq Computer Corporation Method for flashing ESCD and variables into a ROM
JP4060442B2 (ja) 1998-05-28 2008-03-12 富士通株式会社 メモリデバイス
WO2000000887A1 (en) * 1998-06-30 2000-01-06 Intergraph Corporation Method and apparatus for transporting information to a graphic accelerator card
KR100285063B1 (ko) * 1998-08-13 2001-03-15 윤종용 동기형 램 장치와 시스템 버스를 공유하는 동기형 플래시 메모리 장치의 소거 및 쓰기 방법
JP2000181796A (ja) * 1998-12-14 2000-06-30 Nec Corp 情報処理装置
US6262596B1 (en) 1999-04-05 2001-07-17 Xilinx, Inc. Configuration bus interface circuit for FPGAS
US6255848B1 (en) * 1999-04-05 2001-07-03 Xilinx, Inc. Method and structure for reading, modifying and writing selected configuration memory cells of an FPGA
EP1052646B1 (en) * 1999-05-11 2004-07-14 Fujitsu Limited Non-volatile semiconductor memory device permitting data-read operation performed during data-write/erase operation
US6671769B1 (en) * 1999-07-01 2003-12-30 Micron Technology, Inc. Flash memory with fast boot block access
US6505259B1 (en) * 1999-08-27 2003-01-07 Intel Corporation Reordering of burst data transfers across a host bridge
US6327175B1 (en) * 1999-09-13 2001-12-04 Cypress Semiconductor Corporation Method and apparatus for controlling a memory array with a programmable register
US6425062B1 (en) * 1999-09-14 2002-07-23 Intel Corporation Controlling burst sequence in synchronous memories
US7098899B1 (en) * 1999-09-21 2006-08-29 Intel Corporation Dual form low power, instant on and high performance, non-instant on computing device
US6931474B1 (en) 1999-09-23 2005-08-16 Intel Corporation Dual-function computing system having instant-on mode of operation
US6550028B1 (en) * 1999-10-19 2003-04-15 Advanced Micro Devices, Inc. Array VT mode implementation for a simultaneous operation flash memory device
CN1088218C (zh) * 1999-11-14 2002-07-24 邓国顺 用于数据处理系统的快闪电子式外存储方法及其装置
EP1103977B1 (en) * 1999-11-25 2009-02-25 STMicroelectronics S.r.l. Method for reading data from a non-volatile memory device with autodetect burst mode reading and corresponding reading circuit
EP1103978B1 (en) 1999-11-25 2009-01-28 STMicroelectronics S.r.l. Non-volatile memory device with burst mode reading and corresponding reading method
EP1122737A1 (en) 2000-01-31 2001-08-08 STMicroelectronics S.r.l. Circuit for managing the transfer of data streams from a plurality of sources within a system
DE60019081D1 (de) * 2000-01-31 2005-05-04 St Microelectronics Srl Verschachtelter Burst-Speicher mit Burst-Zugriff bei synchronen Lesezyklen, wobei die beiden untergeordneten Speicherfelder unabhängig lesbar sind mit wahlfreiem Zugriff während asynchroner Lesezyklen
EP1122887A1 (en) 2000-01-31 2001-08-08 STMicroelectronics S.r.l. Pre-charging circuit of an output buffer
EP1122739A3 (en) 2000-01-31 2003-12-17 STMicroelectronics S.r.l. Accelerated carry generation.
EP1122733A1 (en) * 2000-01-31 2001-08-08 STMicroelectronics S.r.l. Internal regeneration of the address latch enable (ALE) signal of a protocol of management of a burst interleaved memory and relative circuit
EP1122735B1 (en) 2000-01-31 2010-09-01 STMicroelectronics Srl Interleaved data path and output management architecture for an interleaved memory and load pulser circuit for outputting the read data
US6452864B1 (en) 2000-01-31 2002-09-17 Stmicroelectonics S.R.L. Interleaved memory device for sequential access synchronous reading with simplified address counters
US6624679B2 (en) 2000-01-31 2003-09-23 Stmicroelectronics S.R.L. Stabilized delay circuit
EP1122736B1 (en) * 2000-01-31 2009-10-28 STMicroelectronics S.r.l. ATD generation in a synchronous memory
EP1130601B1 (en) * 2000-02-29 2005-01-26 STMicroelectronics S.r.l. Column decoder circuit for page reading of a semiconductor memory
EP1130517B1 (en) 2000-03-02 2004-05-26 STMicroelectronics S.r.l. Redundancy architecture for an interleaved memory
US7073014B1 (en) * 2000-07-28 2006-07-04 Micron Technology, Inc. Synchronous non-volatile memory system
KR100507589B1 (ko) * 2000-03-30 2005-08-10 마이크론 테크놀로지, 인크. 비휘발성 모드 레지스터를 이용한 동기 플래시 메모리
US6728161B1 (en) 2000-06-30 2004-04-27 Micron Technology, Inc. Zero latency-zero bus turnaround synchronous flash memory
US6615307B1 (en) * 2000-05-10 2003-09-02 Micron Technology, Inc. Flash with consistent latency for read operations
DE1269474T1 (de) * 2000-03-30 2003-08-14 Micron Technology Inc Symmetrisches schutzverfahren für erste und letzte sektoren eines synchronen flash-speichers
US6314049B1 (en) * 2000-03-30 2001-11-06 Micron Technology, Inc. Elimination of precharge operation in synchronous flash memory
US6654847B1 (en) 2000-06-30 2003-11-25 Micron Technology, Inc. Top/bottom symmetrical protection scheme for flash
ATE441927T1 (de) * 2000-03-30 2009-09-15 Micron Technology Inc Synchroner flash-speicher
KR100508041B1 (ko) * 2000-03-30 2005-08-17 마이크론 테크놀로지, 인크. 동기식 플래시 메모리에서의 인터페이스 커맨드 아키텍쳐
JP4524439B2 (ja) * 2000-03-30 2010-08-18 ラウンド ロック リサーチ、エルエルシー ゼロレイテンシ機能、ゼロバスターンアラウンド機能を有するシンクロナスフラッシュメモリ
US6785764B1 (en) 2000-05-11 2004-08-31 Micron Technology, Inc. Synchronous flash memory with non-volatile mode register
US6851026B1 (en) 2000-07-28 2005-02-01 Micron Technology, Inc. Synchronous flash memory with concurrent write and read operation
US6715091B1 (en) * 2000-04-10 2004-03-30 Intel Corporation System for rearranging plurality of memory storage elements in a computer process to different configuration upon entry into a low power mode of operation
EP1148508A1 (en) 2000-04-10 2001-10-24 STMicroelectronics S.r.l. Synchronization circuit for read paths of an electronic memory
DE10024880C1 (de) 2000-05-19 2001-09-06 Daimler Chrysler Ag Aktiv belüftbares Sitzmodul für einen Fahrzeugsitz
US6621761B2 (en) * 2000-05-31 2003-09-16 Advanced Micro Devices, Inc. Burst architecture for a flash memory
US6442076B1 (en) 2000-06-30 2002-08-27 Micron Technology, Inc. Flash memory with multiple status reading capability
US20050135180A1 (en) * 2000-06-30 2005-06-23 Micron Technology, Inc. Interface command architecture for synchronous flash memory
US6785765B1 (en) 2000-06-30 2004-08-31 Micron Technology, Inc. Status register to improve initialization of a synchronous memory
US6675255B1 (en) 2000-06-30 2004-01-06 Micron Technology, Inc. Device initialize command for a synchronous memory
US6304497B1 (en) 2000-06-30 2001-10-16 Micron Technology, Inc. Synchronous memory status register
US6278654B1 (en) 2000-06-30 2001-08-21 Micron Technology, Inc. Active terminate command in synchronous flash memory
US6697907B1 (en) 2000-06-30 2004-02-24 Micron Technology, Inc. Hardware initialization of a synchronous memory
US6396728B1 (en) 2000-07-28 2002-05-28 Micron Technology, Inc. Array organization for high-performance memory devices
US6366524B1 (en) 2000-07-28 2002-04-02 Micron Technology Inc. Address decoding in multiple-bank memory architectures
US6883044B1 (en) * 2000-07-28 2005-04-19 Micron Technology, Inc. Synchronous flash memory with simultaneous access to one or more banks
US6307779B1 (en) 2000-07-28 2001-10-23 Micron Technology, Inc. Method and circuitry for bank tracking in write command sequence
US6246626B1 (en) 2000-07-28 2001-06-12 Micron Technology, Inc. Protection after brown out in a synchronous memory
US6728798B1 (en) * 2000-07-28 2004-04-27 Micron Technology, Inc. Synchronous flash memory with status burst output
US6445603B1 (en) 2000-08-21 2002-09-03 Micron Technology, Inc. Architecture, package orientation and assembly of memory devices
US6496425B1 (en) 2000-08-21 2002-12-17 Micron Technology, Inc Multiple bit line column redundancy
US6504768B1 (en) 2000-08-25 2003-01-07 Micron Technology, Inc. Redundancy selection in memory devices with concurrent read and write
US6507525B1 (en) 2000-08-25 2003-01-14 Micron Technology, Inc. Differential sensing in a memory
US6496434B1 (en) 2000-08-25 2002-12-17 Micron Technology Inc. Differential sensing in a memory using two cycle pre-charge
US6327202B1 (en) 2000-08-25 2001-12-04 Micron Technology, Inc. Bit line pre-charge in a memory
US6580659B1 (en) * 2000-08-25 2003-06-17 Micron Technology, Inc. Burst read addressing in a non-volatile memory device
US6541849B1 (en) 2000-08-25 2003-04-01 Micron Technology, Inc. Memory device power distribution
US6877100B1 (en) * 2000-08-25 2005-04-05 Micron Technology, Inc. Adjustable timing circuit of an integrated circuit by selecting and moving clock edges based on a signal propagation time stored in a programmable non-volatile fuse circuit
US6275446B1 (en) 2000-08-25 2001-08-14 Micron Technology, Inc. Clock generation circuits and methods
US6711701B1 (en) * 2000-08-25 2004-03-23 Micron Technology, Inc. Write and erase protection in a synchronous memory
US6445625B1 (en) 2000-08-25 2002-09-03 Micron Technology, Inc. Memory device redundancy selection having test inputs
US6304488B1 (en) 2000-08-25 2001-10-16 Micron Technology, Inc. Current limiting negative switch circuit
US6359821B1 (en) 2000-08-25 2002-03-19 Micron Technology, Inc. Differential sensing in a memory with reference current
US6310809B1 (en) 2000-08-25 2001-10-30 Micron Technology, Inc. Adjustable pre-charge in a memory
US6691204B1 (en) * 2000-08-25 2004-02-10 Micron Technology, Inc. Burst write in a non-volatile memory device
US7152133B2 (en) * 2000-08-30 2006-12-19 Dearborn Group, Inc. Expanded functionality protocol adapter for in-vehicle networks
US6307790B1 (en) 2000-08-30 2001-10-23 Micron Technology, Inc. Read compression in a memory
US6410968B1 (en) * 2000-08-31 2002-06-25 Micron Technology, Inc. Semiconductor device with barrier layer
US6304510B1 (en) 2000-08-31 2001-10-16 Micron Technology, Inc. Memory device address decoding
JP4223667B2 (ja) * 2000-09-18 2009-02-12 株式会社日立グローバルストレージテクノロジーズ 磁気ディスク装置
US6704835B1 (en) * 2000-09-26 2004-03-09 Intel Corporation Posted write-through cache for flash memory
DE10052210B4 (de) * 2000-10-20 2004-12-23 Infineon Technologies Ag Integrierte Schaltung mit einer synchronen und asynchronen Schaltung sowie Verfahren zum Betrieb einer solchen integrierten Schaltung
US6774426B2 (en) 2000-12-19 2004-08-10 Micron Technology, Inc. Flash cell with trench source-line connection
US6948010B2 (en) * 2000-12-20 2005-09-20 Stratus Technologies Bermuda Ltd. Method and apparatus for efficiently moving portions of a memory block
US6862651B2 (en) * 2000-12-20 2005-03-01 Microsoft Corporation Automotive computing devices with emergency power shut down capabilities
US6801994B2 (en) * 2000-12-20 2004-10-05 Microsoft Corporation Software management systems and methods for automotive computing devices
US6449193B1 (en) * 2000-12-28 2002-09-10 Texas Instruments Incorporated Burst access memory system
TW539950B (en) * 2000-12-28 2003-07-01 Sony Corp Data recording device and data write method for flash memory
US6766413B2 (en) 2001-03-01 2004-07-20 Stratus Technologies Bermuda Ltd. Systems and methods for caching with file-level granularity
US6874102B2 (en) * 2001-03-05 2005-03-29 Stratus Technologies Bermuda Ltd. Coordinated recalibration of high bandwidth memories in a multiprocessor computer
US6564286B2 (en) * 2001-03-07 2003-05-13 Sony Corporation Non-volatile memory system for instant-on
US6452836B1 (en) 2001-03-09 2002-09-17 Micron Technology, Inc. Non-volatile memory device with erase cycle register
US6549467B2 (en) 2001-03-09 2003-04-15 Micron Technology, Inc. Non-volatile memory device with erase address register
US6400611B1 (en) 2001-03-23 2002-06-04 Atmel Corporation Independent asynchronous boot block for synchronous non-volatile memory devices
US6782435B2 (en) 2001-03-26 2004-08-24 Intel Corporation Device for spatially and temporally reordering for data between a processor, memory and peripherals
US6490202B2 (en) 2001-04-06 2002-12-03 Micron Technology, Inc. Non-volatile memory device with erase register
US6865702B2 (en) * 2001-04-09 2005-03-08 Micron Technology, Inc. Synchronous flash memory with test code input
KR100832222B1 (ko) * 2001-06-09 2008-05-23 자프 아게 메인 메모리 데이터베이스 시스템의 색인 구조를 위한캐쉬에 최적화된 동시성 제어방법
JP4049297B2 (ja) * 2001-06-11 2008-02-20 株式会社ルネサステクノロジ 半導体記憶装置
US7386653B2 (en) * 2001-08-06 2008-06-10 Sandisk Il Ltd Flash memory arrangement
JP3932166B2 (ja) * 2001-08-07 2007-06-20 シャープ株式会社 同期型半導体記憶装置モジュールおよびその制御方法、情報機器
TW539946B (en) * 2001-08-07 2003-07-01 Solid State System Company Ltd Window-based flash memory storage system, and the management method and the access method thereof
US6625081B2 (en) 2001-08-13 2003-09-23 Micron Technology, Inc. Synchronous flash memory with virtual segment architecture
CN100451914C (zh) * 2001-08-29 2009-01-14 联发科技股份有限公司 锁相环迅速加电方法和装置
US6741497B2 (en) * 2001-08-30 2004-05-25 Micron Technology, Inc. Flash memory with RDRAM interface
US6560161B1 (en) 2001-08-30 2003-05-06 Micron Technology, Inc. Synchronous flash memory command sequence
GB0123412D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Memory system sectors
GB0123416D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
US6760881B2 (en) 2001-10-16 2004-07-06 International Business Machines Corporation Method for combining refresh operation with parity validation in a DRAM-based content addressable memory (CAM)
US6870770B2 (en) * 2001-12-12 2005-03-22 Micron Technology, Inc. Method and architecture to calibrate read operations in synchronous flash memory
US6678205B2 (en) 2001-12-26 2004-01-13 Micron Technology, Inc. Multi-mode synchronous memory device and method of operating and testing same
US6772276B2 (en) * 2002-01-04 2004-08-03 Intel Corporation Flash memory command abstraction
JP4061272B2 (ja) * 2002-01-09 2008-03-12 株式会社ルネサステクノロジ メモリシステム及びメモリカード
JP2003223792A (ja) * 2002-01-25 2003-08-08 Hitachi Ltd 不揮発性メモリ及びメモリカード
US6721227B2 (en) 2002-02-11 2004-04-13 Micron Technology, Inc. User selectable banks for DRAM
US6799257B2 (en) 2002-02-21 2004-09-28 Intel Corporation Method and apparatus to control memory accesses
US7085879B2 (en) * 2002-02-27 2006-08-01 Microsoft Corporation Dynamic data structures for tracking data stored in a flash memory device
US7533214B2 (en) * 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
US7010662B2 (en) * 2002-02-27 2006-03-07 Microsoft Corporation Dynamic data structures for tracking file system free space in a flash memory device
US6901499B2 (en) * 2002-02-27 2005-05-31 Microsoft Corp. System and method for tracking data stored in a flash memory device
US6690606B2 (en) * 2002-03-19 2004-02-10 Micron Technology, Inc. Asynchronous interface circuit and method for a pseudo-static memory device
US20040078558A1 (en) * 2002-03-25 2004-04-22 Sprangle Eric A. Method and apparatus to process instructions in a processor
US7003684B2 (en) * 2002-03-27 2006-02-21 Via Technologies, Inc. Memory control chip, control method and control circuit
US6799256B2 (en) * 2002-04-12 2004-09-28 Advanced Micro Devices, Inc. System and method for multi-bit flash reads using dual dynamic references
ATE503229T1 (de) * 2002-04-30 2011-04-15 Dsp Group Switzerland Ag Verfahren zur ausholung von daten aus einem nichtflüchtigen speicher in einer integrierten schaltung und integrierte schaltung hierfür
US6833575B2 (en) * 2002-08-29 2004-12-21 Micron Technology, Inc. Dopant barrier for doped glass in memory devices
US20040054846A1 (en) * 2002-09-16 2004-03-18 Wen-Tsung Liu Backup device with flash memory drive embedded
US7146469B2 (en) * 2002-10-24 2006-12-05 Sony Corporation Method, apparatus, and system for improving memory access speed
US7093101B2 (en) * 2002-11-21 2006-08-15 Microsoft Corporation Dynamic data structures for tracking file system free space in a flash memory device
CN1324482C (zh) * 2003-01-31 2007-07-04 鑫创科技股份有限公司 窗口基底闪存储存系统的存取方法
US6920524B2 (en) * 2003-02-03 2005-07-19 Micron Technology, Inc. Detection circuit for mixed asynchronous and synchronous memory operation
US7127564B2 (en) * 2003-02-28 2006-10-24 Standard Microsystems Corporation Double buffered flash programming
US20040243284A1 (en) * 2003-05-28 2004-12-02 Caterpillar Inc. Methods and systems for modifying flash files
ITMI20031126A1 (it) * 2003-06-05 2004-12-06 St Microelectronics Srl Dispositivo di memoria di massa basato su una memoria
CA2479868A1 (en) * 2003-09-02 2005-03-02 Ronald E. Brick Light fixture
US7225318B2 (en) * 2003-10-08 2007-05-29 Intel Corporation Dynamic prefetch in continuous burst read operation
JP4114749B2 (ja) * 2003-11-07 2008-07-09 ローム株式会社 メモリ制御装置および電子装置
KR100564598B1 (ko) * 2003-12-22 2006-03-29 삼성전자주식회사 동기식 플래쉬 메모리장치 및 이를 동작시키는 방법
DE10361059A1 (de) * 2003-12-22 2005-07-28 Micronas Gmbh Verfahren und Vorrichtung zum Steuern eines Speicherzugriffs
US7081897B2 (en) * 2003-12-24 2006-07-25 Intel Corporation Unified memory organization for power savings
KR100598097B1 (ko) * 2003-12-29 2006-07-07 삼성전자주식회사 듀얼 칩 패키지
US8250295B2 (en) 2004-01-05 2012-08-21 Smart Modular Technologies, Inc. Multi-rank memory module that emulates a memory module having a different number of ranks
US7532537B2 (en) 2004-03-05 2009-05-12 Netlist, Inc. Memory module with a circuit providing load isolation and memory domain translation
US7289386B2 (en) 2004-03-05 2007-10-30 Netlist, Inc. Memory module decoder
US7916574B1 (en) 2004-03-05 2011-03-29 Netlist, Inc. Circuit providing load isolation and memory domain translation for memory module
US7095247B1 (en) * 2004-03-25 2006-08-22 Lattice Semiconductor Corporation Configuring FPGAs and the like using one or more serial memory devices
KR100620645B1 (ko) * 2004-04-13 2006-09-13 주식회사 하이닉스반도체 동기 및 비동기 병용 모드 레지스터 세트를 포함하는psram
US7975094B2 (en) * 2004-04-15 2011-07-05 Marvell International Technology Ltd. Programmable I/O interface
US20050232034A1 (en) * 2004-04-19 2005-10-20 Tatung Co., Ltd. Auxiliary device for operating M-DOC series flash memory and non-X86 system processor in synchronism
US8224649B2 (en) * 2004-06-02 2012-07-17 International Business Machines Corporation Method and apparatus for remote command, control and diagnostics of systems using conversational or audio interface
US8010734B2 (en) * 2004-06-04 2011-08-30 Broadcom Corporation Method and system for reading instructions from NAND flash memory and writing them into SRAM for execution by a processing device
US7151709B2 (en) * 2004-08-16 2006-12-19 Micron Technology, Inc. Memory device and method having programmable address configurations
US7123047B2 (en) * 2004-08-18 2006-10-17 Intel Corporation Dynamic on-die termination management
US7363397B2 (en) * 2004-08-26 2008-04-22 International Business Machines Corporation System and method for DMA controller with multi-dimensional line-walking functionality
US7558900B2 (en) * 2004-09-27 2009-07-07 Winbound Electronics Corporation Serial flash semiconductor memory
US8341371B2 (en) * 2005-01-31 2012-12-25 Sandisk Il Ltd Method of managing copy operations in flash memories
US7589648B1 (en) 2005-02-10 2009-09-15 Lattice Semiconductor Corporation Data decompression
US20060190757A1 (en) * 2005-02-22 2006-08-24 Wickeraad John A Monitoring multiple clock domains
KR100590388B1 (ko) * 2005-03-10 2006-06-19 주식회사 하이닉스반도체 멀티-플레인 타입 플래쉬 메모리 장치와, 그 프로그램 동작및 리드 동작 제어 방법
US7265578B1 (en) 2005-04-04 2007-09-04 Lattice Semiconductor Corporation In-system programming of non-JTAG device using SPI and JTAG interfaces of FPGA device
US7849253B2 (en) * 2005-04-04 2010-12-07 Standard Microsystems Corporation Method for fast access to flash-memory media
US7397274B1 (en) 2005-04-07 2008-07-08 Lattice Semiconductor Corporation In-system programming of a non-compliant device using multiple interfaces of a PLD
US7184327B2 (en) * 2005-04-14 2007-02-27 Micron Technology, Inc. System and method for enhanced mode register definitions
US8244958B2 (en) * 2005-05-09 2012-08-14 Sandisk Il Ltd. Method and system for facilitating fast wake-up of a flash memory system
ATE438254T1 (de) * 2005-06-10 2009-08-15 Sony Ericsson Mobile Comm Ab Prozessorgesteuertes gerät mit verschiedenen betriebsarten
US8077535B2 (en) 2006-07-31 2011-12-13 Google Inc. Memory refresh apparatus and method
US8244971B2 (en) 2006-07-31 2012-08-14 Google Inc. Memory circuit system and method
US8130560B1 (en) 2006-11-13 2012-03-06 Google Inc. Multi-rank partial width memory modules
US8089795B2 (en) 2006-02-09 2012-01-03 Google Inc. Memory module with memory stack and interface with enhanced capabilities
US8055833B2 (en) 2006-10-05 2011-11-08 Google Inc. System and method for increasing capacity, performance, and flexibility of flash storage
US7609567B2 (en) * 2005-06-24 2009-10-27 Metaram, Inc. System and method for simulating an aspect of a memory circuit
US8796830B1 (en) 2006-09-01 2014-08-05 Google Inc. Stackable low-profile lead frame package
US9507739B2 (en) 2005-06-24 2016-11-29 Google Inc. Configurable memory circuit system and method
US8327104B2 (en) 2006-07-31 2012-12-04 Google Inc. Adjusting the timing of signals associated with a memory system
US8041881B2 (en) 2006-07-31 2011-10-18 Google Inc. Memory device with emulated characteristics
US20080082763A1 (en) 2006-10-02 2008-04-03 Metaram, Inc. Apparatus and method for power management of memory circuits by a system or component thereof
US10013371B2 (en) 2005-06-24 2018-07-03 Google Llc Configurable memory circuit system and method
US8111566B1 (en) 2007-11-16 2012-02-07 Google, Inc. Optimal channel design for memory devices for providing a high-speed memory interface
US8060774B2 (en) * 2005-06-24 2011-11-15 Google Inc. Memory systems and memory modules
US20080028136A1 (en) 2006-07-31 2008-01-31 Schakel Keith R Method and apparatus for refresh management of memory modules
US8386722B1 (en) 2008-06-23 2013-02-26 Google Inc. Stacked DIMM memory interface
US9542352B2 (en) 2006-02-09 2017-01-10 Google Inc. System and method for reducing command scheduling constraints of memory circuits
US7386656B2 (en) 2006-07-31 2008-06-10 Metaram, Inc. Interface circuit system and method for performing power management operations in conjunction with only a portion of a memory circuit
US8438328B2 (en) 2008-02-21 2013-05-07 Google Inc. Emulation of abstracted DIMMs using abstracted DRAMs
US8335894B1 (en) 2008-07-25 2012-12-18 Google Inc. Configurable memory system with interface circuit
US8081474B1 (en) 2007-12-18 2011-12-20 Google Inc. Embossed heat spreader
US8090897B2 (en) 2006-07-31 2012-01-03 Google Inc. System and method for simulating an aspect of a memory circuit
US9171585B2 (en) 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
US8397013B1 (en) 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
US7392338B2 (en) 2006-07-31 2008-06-24 Metaram, Inc. Interface circuit system and method for autonomously performing power management operations in conjunction with a plurality of memory circuits
US8359187B2 (en) 2005-06-24 2013-01-22 Google Inc. Simulating a different number of memory circuit devices
US7560956B2 (en) * 2005-08-03 2009-07-14 Micron Technology, Inc. Method and apparatus for selecting an operating mode based on a determination of the availability of internal clock signals
US7426607B2 (en) 2005-08-05 2008-09-16 Infineon Technologies Ag Memory system and method of operating memory system
JP5242397B2 (ja) 2005-09-02 2013-07-24 メタラム インコーポレイテッド Dramをスタックする方法及び装置
KR100699268B1 (ko) * 2005-09-16 2007-03-28 삼성전자주식회사 하드 디스크 드라이브의 플래쉬 메모리를 메인 &비디오메모리로 사용 할 수 있는 컴퓨터
JP2007115099A (ja) * 2005-10-21 2007-05-10 Toshiba Corp メモリシステム、及び記録メディア
JP2007140733A (ja) * 2005-11-16 2007-06-07 Renesas Technology Corp 半導体処理装置及び半導体集積回路
US20070143547A1 (en) * 2005-12-20 2007-06-21 Microsoft Corporation Predictive caching and lookup
US7554357B2 (en) * 2006-02-03 2009-06-30 Lattice Semiconductor Corporation Efficient configuration of daisy-chained programmable logic devices
US9632929B2 (en) 2006-02-09 2017-04-25 Google Inc. Translating an address associated with a command communicated between a system and memory circuits
US7436708B2 (en) * 2006-03-01 2008-10-14 Micron Technology, Inc. NAND memory device column charging
US7512507B2 (en) * 2006-03-23 2009-03-31 Micron Technology, Inc. Die based trimming
US7849302B2 (en) * 2006-04-10 2010-12-07 Apple Inc. Direct boot arrangement using a NAND flash memory
US7366029B2 (en) 2006-04-24 2008-04-29 Sandisk Corporation High-performance flash memory data transfer
US7525855B2 (en) 2006-04-24 2009-04-28 Sandisk Corporation Method of high-performance flash memory data transfer
US7499369B2 (en) 2006-07-19 2009-03-03 Sandisk Corporation Method of high-performance flash memory data transfer
US7366028B2 (en) 2006-04-24 2008-04-29 Sandisk Corporation Method of high-performance flash memory data transfer
US7499339B2 (en) 2006-07-19 2009-03-03 Sandisk Corporation High-performance flash memory data transfer
JP5226669B2 (ja) * 2006-04-24 2013-07-03 サンディスク テクノロジィース インコーポレイテッド 高効率フラッシュメモリデータ転送
US7345926B2 (en) 2006-04-24 2008-03-18 Sandisk Corporation High-performance flash memory data transfer
US7447096B2 (en) * 2006-05-05 2008-11-04 Honeywell International Inc. Method for refreshing a non-volatile memory
US7292487B1 (en) * 2006-05-10 2007-11-06 Micron Technology, Inc. Independent polling for multi-page programming
US7570078B1 (en) 2006-06-02 2009-08-04 Lattice Semiconductor Corporation Programmable logic device providing serial peripheral interfaces
US7495970B1 (en) * 2006-06-02 2009-02-24 Lattice Semiconductor Corporation Flexible memory architectures for programmable logic devices
US7378873B1 (en) 2006-06-02 2008-05-27 Lattice Semiconductor Corporation Programmable logic device providing a serial peripheral interface
US7716411B2 (en) * 2006-06-07 2010-05-11 Microsoft Corporation Hybrid memory device with single interface
KR100765786B1 (ko) * 2006-06-12 2007-10-12 삼성전자주식회사 플래시 메모리 시스템, 그 프로그램을 위한 호스트 시스템및 프로그램 방법
US7521969B2 (en) * 2006-07-28 2009-04-21 Lattice Semiconductor Corporation Switch sequencing circuit systems and methods
US7724589B2 (en) 2006-07-31 2010-05-25 Google Inc. System and method for delaying a signal communicated from a system to at least one of a plurality of memory circuits
US7456672B1 (en) 2006-09-11 2008-11-25 Lattice Semiconductor Corporation Clock systems and methods
US7511641B1 (en) 2006-09-19 2009-03-31 Lattice Semiconductor Corporation Efficient bitstream compression
US7483334B2 (en) 2006-09-26 2009-01-27 Micron Technology, Inc. Interleaved input signal path for multiplexed input
US7558907B2 (en) * 2006-10-13 2009-07-07 Spansion Llc Virtual memory card controller
KR100791839B1 (ko) * 2006-10-31 2008-01-07 삼성전자주식회사 데이터 읽기 시 데이터 스트로브 신호를 발생할 수 있는비휘발성 메모리 장치와 그 방법
US20080131088A1 (en) * 2006-11-30 2008-06-05 Mitac Technology Corp. Image capture method and audio-video recording method of multi-media electronic device
US9116823B2 (en) 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
KR20090102789A (ko) * 2006-12-06 2009-09-30 퓨전 멀티시스템즈, 인크.(디비에이 퓨전-아이오) 프로그레시브 raid를 이용한 데이터 저장 장치, 시스템 및 방법
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US8266405B2 (en) * 2006-12-13 2012-09-11 Cypress Semiconductor Corporation Memory interface configurable for asynchronous and synchronous operation and for accessing storage from any clock domain
US7567471B2 (en) * 2006-12-21 2009-07-28 Intel Corporation High speed fanned out system architecture and input/output circuits for non-volatile memory
EP2097827A1 (en) * 2006-12-28 2009-09-09 Nokia Corporation Memory unit access
CN101617371B (zh) 2007-02-16 2014-03-26 莫塞德技术公司 具有多个外部电源的非易失性半导体存储器
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
US20080270811A1 (en) * 2007-04-26 2008-10-30 Super Talent Electronics Inc. Fast Suspend-Resume of Computer Motherboard Using Phase-Change Memory
KR100914265B1 (ko) * 2007-05-10 2009-08-27 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템 및그것의 읽기 방법
US7525870B2 (en) * 2007-05-21 2009-04-28 Sandisk Il, Ltd. Methods for optimizing page selection in flash-memory devices
US8904098B2 (en) 2007-06-01 2014-12-02 Netlist, Inc. Redundant backup using non-volatile memory
US8874831B2 (en) 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US20080306723A1 (en) * 2007-06-08 2008-12-11 Luca De Ambroggi Emulated Combination Memory Device
US8209479B2 (en) 2007-07-18 2012-06-26 Google Inc. Memory circuit system and method
JP5030698B2 (ja) * 2007-07-24 2012-09-19 株式会社リコー 半導体装置及びノイズ低減方法
US8080874B1 (en) 2007-09-14 2011-12-20 Google Inc. Providing additional space between an integrated circuit and a circuit board for positioning a component therebetween
US8402241B2 (en) * 2007-10-02 2013-03-19 Advanced Micro Devices, Inc. Method and apparatus to control access to device enable features
US8132040B1 (en) 2007-10-25 2012-03-06 Lattice Semiconductor Corporation Channel-to-channel deskew systems and methods
US7902865B1 (en) 2007-11-15 2011-03-08 Lattice Semiconductor Corporation Compression and decompression of configuration data using repeated data frames
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US8185685B2 (en) * 2007-12-14 2012-05-22 Hitachi Global Storage Technologies Netherlands B.V. NAND flash module replacement for DRAM module
EP2223301A4 (en) 2007-12-21 2012-04-04 Mosaid Technologies Inc NON-VOLATILE SEMICONDUCTOR ARRANGEMENT WITH POWER SAVING FEATURE
US8291248B2 (en) * 2007-12-21 2012-10-16 Mosaid Technologies Incorporated Non-volatile semiconductor memory device with power saving feature
US8775717B2 (en) * 2007-12-27 2014-07-08 Sandisk Enterprise Ip Llc Storage controller for flash memory including a crossbar switch connecting a plurality of processors with a plurality of internal memories
US20090259793A1 (en) * 2008-04-10 2009-10-15 Sony Corporation And Sony Electronics Inc. System and method for effectively implementing an erase mode for a memory device
US8154901B1 (en) 2008-04-14 2012-04-10 Netlist, Inc. Circuit providing load isolation and noise reduction
US20090273686A1 (en) * 2008-05-02 2009-11-05 Nokia Corporation Methods, computer program products and apparatus providing improved image capturing
TWI397855B (zh) * 2008-05-07 2013-06-01 Sunplus Mmedia Inc 減少接腳數之方法以及使用其之微處理器
US8219741B2 (en) 2008-10-24 2012-07-10 Microsoft Corporation Hardware and operating system support for persistent memory on a memory bus
KR101638764B1 (ko) * 2008-12-19 2016-07-22 휴렛 팩커드 엔터프라이즈 디벨롭먼트 엘피 균일한 판독 대기시간을 위한 중복 데이터 저장
KR101573047B1 (ko) * 2009-01-23 2015-12-02 삼성전자주식회사 복합 메모리 장치 및 이를 이용한 i/o 처리 방법
US20100228926A1 (en) * 2009-03-09 2010-09-09 Cypress Semiconductor Corporation Multi-port memory devices and methods
US9489326B1 (en) * 2009-03-09 2016-11-08 Cypress Semiconductor Corporation Multi-port integrated circuit devices and methods
WO2010144624A1 (en) 2009-06-09 2010-12-16 Google Inc. Programming of dimm termination resistance values
US9123409B2 (en) * 2009-06-11 2015-09-01 Micron Technology, Inc. Memory device for a hierarchical memory architecture
US9128632B2 (en) 2009-07-16 2015-09-08 Netlist, Inc. Memory module with distributed data buffers and method of operation
US8255733B1 (en) 2009-07-30 2012-08-28 Lattice Semiconductor Corporation Clock delay and skew control systems and methods
JP5999645B2 (ja) * 2009-09-08 2016-10-05 ロンギチュード エンタープライズ フラッシュ エスエイアールエル ソリッドステート記憶デバイス上にデータをキャッシングするための装置、システム、および方法
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
US8601222B2 (en) 2010-05-13 2013-12-03 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
EP2476079A4 (en) * 2009-09-09 2013-07-03 Fusion Io Inc APPARATUS, SYSTEM, AND METHOD FOR STORAGE ALLOCATION
US8289801B2 (en) 2009-09-09 2012-10-16 Fusion-Io, Inc. Apparatus, system, and method for power reduction management in a storage device
CN101706788B (zh) * 2009-11-25 2012-11-14 惠州Tcl移动通信有限公司 一种嵌入式文件系统的跨区访问方法
US8489803B2 (en) * 2009-12-14 2013-07-16 Smsc Holdings S.A.R.L. Efficient use of flash memory in flash drives
US8661184B2 (en) 2010-01-27 2014-02-25 Fusion-Io, Inc. Managing non-volatile media
US9245653B2 (en) 2010-03-15 2016-01-26 Intelligent Intellectual Property Holdings 2 Llc Reduced level cell mode for non-volatile memory
JP2010225161A (ja) * 2010-04-13 2010-10-07 Renesas Electronics Corp 半導体記憶装置
EP2598996B1 (en) 2010-07-28 2019-07-10 SanDisk Technologies LLC Apparatus, system, and method for conditional and atomic storage operations
US8725934B2 (en) 2011-12-22 2014-05-13 Fusion-Io, Inc. Methods and appratuses for atomic storage operations
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US8682639B2 (en) * 2010-09-21 2014-03-25 Texas Instruments Incorporated Dedicated memory window for emulation address
KR101113188B1 (ko) 2010-09-30 2012-02-16 주식회사 하이닉스반도체 동작 속도가 가변되는 비휘발성 메모리 장치 및 이를 위한 상보신호 제어 방법
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
WO2012082792A2 (en) 2010-12-13 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for auto-commit memory
WO2012083308A2 (en) 2010-12-17 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
US9213594B2 (en) 2011-01-19 2015-12-15 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for managing out-of-service conditions
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
WO2012116369A2 (en) 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
US8537613B2 (en) 2011-03-31 2013-09-17 Sandisk Technologies Inc. Multi-layer memory system
US9158546B1 (en) 2011-04-06 2015-10-13 P4tents1, LLC Computer program product for fetching from a first physical memory between an execution of a plurality of threads associated with a second physical memory
US8930647B1 (en) 2011-04-06 2015-01-06 P4tents1, LLC Multiple class memory systems
US9170744B1 (en) 2011-04-06 2015-10-27 P4tents1, LLC Computer program product for controlling a flash/DRAM/embedded DRAM-equipped system
US9176671B1 (en) 2011-04-06 2015-11-03 P4tents1, LLC Fetching data between thread execution in a flash/DRAM/embedded DRAM-equipped system
US9164679B2 (en) 2011-04-06 2015-10-20 Patents1, Llc System, method and computer program product for multi-thread operation involving first memory of a first memory class and second memory of a second memory class
US8656088B2 (en) 2011-05-20 2014-02-18 International Business Machines Corporation Optimized flash based cache memory
US9201794B2 (en) 2011-05-20 2015-12-01 International Business Machines Corporation Dynamic hierarchical memory cache awareness within a storage system
US10198350B2 (en) 2011-07-28 2019-02-05 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
US10838646B2 (en) 2011-07-28 2020-11-17 Netlist, Inc. Method and apparatus for presearching stored data
US10380022B2 (en) 2011-07-28 2019-08-13 Netlist, Inc. Hybrid memory module and system and method of operating the same
US8462561B2 (en) 2011-08-03 2013-06-11 Hamilton Sundstrand Corporation System and method for interfacing burst mode devices and page mode devices
US9417754B2 (en) 2011-08-05 2016-08-16 P4tents1, LLC User interface system, method, and computer program product
US8793543B2 (en) 2011-11-07 2014-07-29 Sandisk Enterprise Ip Llc Adaptive read comparison signal generation for memory systems
KR20130070251A (ko) * 2011-12-19 2013-06-27 에스케이하이닉스 주식회사 브릿지 칩셋 및 그것을 포함하는 데이터 저장 시스템
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
US8954672B2 (en) * 2012-03-12 2015-02-10 Advanced Micro Devices, Inc. System and method for cache organization in row-based memories
KR101429183B1 (ko) * 2012-05-09 2014-08-12 주식회사 디에이아이오 반도체 메모리 시스템 및 이의 동작 방법
US10387331B2 (en) * 2012-06-05 2019-08-20 Vmware, Inc. Process for maintaining data write ordering through a cache
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US9229829B2 (en) * 2012-07-25 2016-01-05 GlobalFoundries, Inc. Synchronous mode replication to multiple clusters
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US9013930B2 (en) * 2012-12-20 2015-04-21 Winbond Electronics Corp. Memory device with interleaved high-speed reading function and method thereof
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9348746B2 (en) 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations 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
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US8873284B2 (en) 2012-12-31 2014-10-28 Sandisk Technologies Inc. Method and system for program scheduling in a multi-layer memory
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
US9465731B2 (en) 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9734050B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9965397B2 (en) * 2013-02-26 2018-05-08 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast read in write-back cached memory
US8812744B1 (en) 2013-03-14 2014-08-19 Microsoft Corporation Assigning priorities to data for hybrid drives
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US20140278329A1 (en) * 2013-03-15 2014-09-18 Mentor Graphics Corporation Modeling Content-Addressable Memory For Emulation
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
TWI493569B (zh) * 2013-03-25 2015-07-21 Winbond Electronics Corp 記憶體裝置以及由記憶體裝置中讀取資料之方法
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US9626126B2 (en) 2013-04-24 2017-04-18 Microsoft Technology Licensing, Llc Power saving mode hybrid drive access management
US9946495B2 (en) 2013-04-25 2018-04-17 Microsoft Technology Licensing, Llc Dirty data management for hybrid drives
US9436600B2 (en) 2013-06-11 2016-09-06 Svic No. 28 New Technology Business Investment L.L.P. Non-volatile memory storage for multi-channel memory system
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
CN110428855B (zh) 2013-07-27 2023-09-22 奈特力斯股份有限公司 具有本地分别同步的内存模块
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
US9235509B1 (en) 2013-08-26 2016-01-12 Sandisk Enterprise Ip Llc Write amplification reduction by delaying read access to data written during garbage collection
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9440086B2 (en) 2013-09-11 2016-09-13 Medtronic, Inc. Optimized flash memory device for miniaturized devices
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
WO2015070110A2 (en) 2013-11-07 2015-05-14 Netlist, Inc. Hybrid memory module and system and method of operating the same
US10248328B2 (en) 2013-11-07 2019-04-02 Netlist, Inc. Direct data move between DRAM and storage on a memory module
US11182284B2 (en) 2013-11-07 2021-11-23 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
TWI553641B (zh) * 2013-12-09 2016-10-11 慧榮科技股份有限公司 資料儲存裝置及其模式偵測方法
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9368199B2 (en) * 2014-09-02 2016-06-14 Kabushiki Kaisha Toshiba Memory device
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
CN104391676B (zh) * 2014-11-10 2017-11-10 中国航天科技集团公司第九研究院第七七一研究所 一种低成本高带宽的微处理器取指方法及其取指结构
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
US10009438B2 (en) 2015-05-20 2018-06-26 Sandisk Technologies Llc Transaction log acceleration
CN106338423B (zh) 2015-07-10 2020-07-14 三斯坎公司 组织学染色的空间复用
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
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
US10331586B2 (en) 2015-10-30 2019-06-25 Samsung Electronics Co., Ltd. Nonvolatile memory device for providing fast booting and system including the same
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
CN106649136B (zh) * 2015-11-03 2022-09-23 西安中兴新软件有限责任公司 一种数据存储方法和存储装置
US9965017B2 (en) 2016-04-12 2018-05-08 International Business Machines Corporation System and method for conserving energy in non-volatile dual inline memory modules
US10679722B2 (en) * 2016-08-26 2020-06-09 Sandisk Technologies Llc Storage system with several integrated components and method for use therewith
CN109698002B (zh) * 2017-10-23 2020-11-10 北京兆易创新科技股份有限公司 存储阵列数据的锁存方法及装置
US10658047B1 (en) * 2018-10-31 2020-05-19 Micron Technology, Inc. Implementing sticky read using error control success rate associated with a memory sub-system
KR20220008428A (ko) * 2020-07-13 2022-01-21 삼성전자주식회사 고효율 입출력 인터페이스를 지원하는 불휘발성 메모리 장치
DE102021103872A1 (de) * 2020-07-13 2022-01-13 Samsung Electronics Co., Ltd. Nichtflüchtige speichervorrichtung, die eine hocheffiziente e/a-schnittstelle unterstützt

Family Cites Families (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4034354A (en) * 1975-11-21 1977-07-05 The Bendix Corporation Programmable interface controller for numerical machine systems
US4089052A (en) * 1976-12-13 1978-05-09 Data General Corporation Data processing system
US4307447A (en) * 1979-06-19 1981-12-22 Gould Inc. Programmable controller
JPS5654532A (en) * 1979-10-11 1981-05-14 Hitachi Ltd Initializing method for main memory device
US4630230A (en) * 1983-04-25 1986-12-16 Cray Research, Inc. Solid state storage device
US4596004A (en) * 1983-09-14 1986-06-17 International Business Machines Corporation High speed memory with a multiplexed address bus
US5357459A (en) * 1985-07-15 1994-10-18 Texas Instruments Incorporated Nonvolatile capacitor random access memory
JPS63138598A (ja) * 1986-11-28 1988-06-10 Mitsubishi Electric Corp 不揮発性半導体記憶装置
US5276812A (en) * 1987-01-29 1994-01-04 Kabushiki Kaisha Toshiba Address multiplexing apparatus
US4816814A (en) * 1987-02-12 1989-03-28 International Business Machines Corporation Vector generator with direction independent drawing speed for all-point-addressable raster displays
JPH0827662B2 (ja) * 1987-06-12 1996-03-21 沖電気工業株式会社 比較電圧発生回路及びそれを用いた電圧検出回路
NL8701392A (nl) * 1987-06-16 1989-01-16 Philips Nv In verschillende modes schakelbare geheugeninrichting.
US4785428A (en) * 1987-06-18 1988-11-15 Intel Corporation Programmable memory array control signals
JPS6454543A (en) * 1987-08-25 1989-03-02 Mitsubishi Electric Corp Information processor
CA1320276C (en) * 1987-09-04 1993-07-13 William F. Bruckert Dual rail processors with error checking on i/o reads
US4847758A (en) * 1987-10-30 1989-07-11 Zenith Electronics Corporation Main memory access in a microprocessor system with a cache memory
US4918587A (en) * 1987-12-11 1990-04-17 Ncr Corporation Prefetch circuit for a computer memory subject to consecutive addressing
JP2595314B2 (ja) * 1988-06-30 1997-04-02 三菱電機株式会社 誤書き込み防止機能を備えたicカ―ド
US5101490A (en) * 1989-01-10 1992-03-31 Bull Hn Information Systems Inc. Peripheral device controller with an EEPROM with microinstructions for a RAM control store
US5287457A (en) * 1989-01-13 1994-02-15 International Business Machines Corporation Computer system DMA transfer
US5043874A (en) * 1989-02-03 1991-08-27 Digital Equipment Corporation Memory configuration for use with means for interfacing a system control unit for a multi-processor system with the system main memory
JPH0812646B2 (ja) * 1989-03-03 1996-02-07 三菱電機株式会社 半導体集積回路
EP0617363B1 (en) * 1989-04-13 2000-01-26 SanDisk Corporation Defective cell substitution in EEprom array
US5251227A (en) * 1989-08-01 1993-10-05 Digital Equipment Corporation Targeted resets in a data processor including a trace memory to store transactions
US5261064A (en) * 1989-10-03 1993-11-09 Advanced Micro Devices, Inc. Burst access memory
US5193162A (en) * 1989-11-06 1993-03-09 Unisys Corporation Cache memory with data compaction for use in the audit trail of a data processing system having record locking capabilities
DE69123987T2 (de) * 1990-01-31 1997-04-30 Hewlett Packard Co Stossbetrieb für Mikroprozessor mit externem Systemspeicher
KR100214435B1 (ko) * 1990-07-25 1999-08-02 사와무라 시코 동기식 버스트 엑세스 메모리
WO1992007317A1 (en) * 1990-10-12 1992-04-30 Intel Corporation Slow memory refresh in a computer with a limited supply of power
JP2740063B2 (ja) * 1990-10-15 1998-04-15 株式会社東芝 半導体記憶装置
US5274763A (en) * 1990-12-28 1993-12-28 Apple Computer, Inc. Data path apparatus for IO adapter
GB2251324B (en) * 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
US5146546A (en) * 1991-04-29 1992-09-08 Monarch Marking Systems, Inc. Printer with hardware symbol data accessing scheme
US5197034A (en) * 1991-05-10 1993-03-23 Intel Corporation Floating gate non-volatile memory with deep power down and write lock-out
JPH04372030A (ja) * 1991-06-21 1992-12-25 Meidensha Corp プロセッサのメモリアクセス方式
US5307314A (en) * 1991-07-15 1994-04-26 Micron Technology, Inc. Split read/write dynamic random access memory
US5369748A (en) * 1991-08-23 1994-11-29 Nexgen Microsystems Bus arbitration in a dual-bus architecture where one bus has relatively high latency
US5291580A (en) 1991-10-04 1994-03-01 Bull Hn Information Systems Inc. High performance burst read data transfer operation
US5359569A (en) * 1991-10-29 1994-10-25 Hitachi Ltd. Semiconductor memory
US5263003A (en) * 1991-11-12 1993-11-16 Allen-Bradley Company, Inc. Flash memory circuit and method of operation
US5333276A (en) * 1991-12-27 1994-07-26 Intel Corporation Method and apparatus for priority selection of commands
US5471632A (en) * 1992-01-10 1995-11-28 Digital Equipment Corporation System for transferring data between a processor and a system bus including a device which packs, unpacks, or buffers data blocks being transferred
JP3275398B2 (ja) * 1992-02-18 2002-04-15 株式会社日立製作所 フラッシュメモリを用いた情報処理装置
US5428579A (en) * 1992-03-31 1995-06-27 Intel Corporation Flash memory card with power control register and jumpers
US5375222A (en) * 1992-03-31 1994-12-20 Intel Corporation Flash memory card with a ready/busy mask register
US5422855A (en) * 1992-03-31 1995-06-06 Intel Corporation Flash memory card with all zones chip enable circuitry
JP3152732B2 (ja) * 1992-03-31 2001-04-03 株式会社東芝 画像形成記憶装置
US5388224A (en) * 1992-04-24 1995-02-07 Digital Equipment Corporation Processor identification mechanism for a multiprocessor system
US5265218A (en) * 1992-05-19 1993-11-23 Sun Microsystems, Inc. Bus architecture for integrated data and video memory
US5379384A (en) * 1992-06-05 1995-01-03 Intel Corporation Configuration data loopback in a bus bridge circuit
US5306963A (en) * 1992-06-19 1994-04-26 Intel Corporation Address transition detection noise filter in pulse summation circuit for nonvolatile semiconductor memory
TW235363B (ko) * 1993-01-25 1994-12-01 Hitachi Seisakusyo Kk
JP3476231B2 (ja) * 1993-01-29 2003-12-10 三菱電機エンジニアリング株式会社 同期型半導体記憶装置および半導体記憶装置
US5331601A (en) * 1993-02-04 1994-07-19 United Memories, Inc. DRAM variable row select
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5302866A (en) * 1993-03-18 1994-04-12 Xilinx, Inc. Input circuit block and method for PLDs with register clock enable selection
KR970008188B1 (ko) * 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
US5450551A (en) * 1993-05-28 1995-09-12 International Business Machines Corporation System direct memory access (DMA) support logic for PCI based computer system
US5353256A (en) * 1993-06-30 1994-10-04 Intel Corporation Block specific status information in a memory device
US5453957A (en) * 1993-09-17 1995-09-26 Cypress Semiconductor Corp. Memory architecture for burst mode access
US5448521A (en) * 1993-11-12 1995-09-05 International Business Machines Corporation Connecting a short word length non-volatile memory to a long word length address/data multiplexed bus
US5729709A (en) 1993-11-12 1998-03-17 Intel Corporation Memory controller with burst addressing circuit
US5526311A (en) * 1993-12-30 1996-06-11 Intel Corporation Method and circuitry for enabling and permanently disabling test mode access in a flash memory device
US5491827A (en) * 1994-01-14 1996-02-13 Bull Hn Information Systems Inc. Secure application card for sharing application data and procedures among a plurality of microprocessors
US5438549A (en) * 1994-02-28 1995-08-01 Intel Corporation Nonvolatile memory with volatile memory buffer and a backup power supply system
US5721860A (en) 1994-05-24 1998-02-24 Intel Corporation Memory controller for independently supporting synchronous and asynchronous DRAM memories
US5696917A (en) 1994-06-03 1997-12-09 Intel Corporation Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
US5748914A (en) * 1995-10-19 1998-05-05 Rambus, Inc. Protocol for communication with dynamic memory

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100897601B1 (ko) * 2006-12-29 2009-05-14 삼성전자주식회사 시스템의 오작동 방지를 위한 비휘발성 메모리 모듈 및이를 구비한 시스템
US7733680B2 (en) 2006-12-29 2010-06-08 Samsung Electronics Co., Ltd. Non-volatile memory module for preventing system failure and system including the same
KR101237005B1 (ko) 2007-11-09 2013-02-26 삼성전자주식회사 저항체를 이용한 비휘발성 메모리 장치, 이를 포함하는메모리 시스템, 및 이의 구동 방법

Also Published As

Publication number Publication date
BR9507911A (pt) 1997-08-12
EP0765498A4 (en) 1999-04-14
US6026465A (en) 2000-02-15
US5696917A (en) 1997-12-09
US6385688B1 (en) 2002-05-07
WO1995034030A3 (en) 1996-01-18
CN1228715C (zh) 2005-11-23
CN1102772C (zh) 2003-03-05
US6564285B1 (en) 2003-05-13
AU2765895A (en) 1996-01-04
WO1995034030A2 (en) 1995-12-14
CN1430151A (zh) 2003-07-16
CN1155341A (zh) 1997-07-23
EP0765498A2 (en) 1997-04-02

Similar Documents

Publication Publication Date Title
KR100281432B1 (ko) 플래쉬 메모리에 기초한 주메모리
EP2025001B1 (en) Hybrid memory device with single interface
CN109154918B (zh) 自刷新状态机mop阵列
US5822251A (en) Expandable flash-memory mass-storage using shared buddy lines and intermediate flash-bus between device-specific buffers and flash-intelligent DMA controllers
KR101469512B1 (ko) 외부 컴퓨팅 디바이스의 성능 향상을 위한 어댑티브 메모리 시스템
US6795899B2 (en) Memory system with burst length shorter than prefetch length
US7907469B2 (en) Multi-port memory device for buffering between hosts and non-volatile memory devices
US5509138A (en) Method for determining speeds of memory modules
TWI776553B (zh) 具有晶片內執行能力的串列式反及閘快閃記憶體
US20110208900A1 (en) Methods and systems utilizing nonvolatile memory in a computer system main memory
JPH01251247A (ja) キヤツシユメモリサブシステム
KR100679370B1 (ko) 메모리 소자에서의 워드 순서지정 방법
JP2007183961A (ja) ハードディスクドライブキャッシュメモリ及び再生デバイス
EP1984827A1 (en) An electronic device having a memory element and method of operation therefor
US5434990A (en) Method for serially or concurrently addressing n individually addressable memories each having an address latch and data latch
JP2007328910A (ja) 複数のデータ経路を有するメイン・メモリ・システム
JP2006146817A (ja) メモリ制御システム及びメモリ制御装置
JP3956698B2 (ja) メモリ制御装置
JP2004272576A (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: 20091118

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee