KR100281432B1 - 플래쉬 메모리에 기초한 주메모리 - Google Patents
플래쉬 메모리에 기초한 주메모리 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1045—Read-write mode select circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- 복수개의 개별 메모리 구성요소를 가진 비동기 비휘발성 메모리에서 버스트 판독동작을 수행하는 방법에 있어서, A) 현재 어드레스로서 제1어드레스를 상기 복수개의 개별 메모리 구성요소에 제공하는 단계로서, 연속되는 어드레스들은 동일한 메모리 구성요소에 위치하지 않는, 어드레스를 제공하는 단계; B) 현재 어드레스의 m 고위비트에 의해 식별되는 비동기 비휘발성 메모리의 현재 페이지를 선택하는 단계로서, 각각의 개별 메모리 구성요소는 현재 어드레스의 m 고위비트에 의해 식별된 위치를 거의 동시에 감지(sense)하는, 페이지를 선택하는 단계; C) 현재 어드레스와 관련한 데이터를 제공하기 위해, 현재 어드레스의 n 저위비트에 따라, 선택된 개별 메모리 구성요소의 출력을 인에이블하는 단계; D) 연속되는 다음 어드레스를 제공하는 단계로서, 상기 현재 어드레스는 선행하는 어드레스가 되며 연속되는 다음 어드레스가 현재 어드레스가 되는, 어드레스를 제공하는 단계; E) 만약 현재 및 선행 어드레스가 동일한 페이지를 식별한다면, 현재 어드레스와 관련한 데이터를 제공하기 위해, 대기상태를 발생시키지 않은채 현재 어드레스의 n 저위비트에 의해 식별된 또다른 선택된 개별 메모리 구성요소의 출력을 인에이블하는 단계; F) 현재 및 선행 어드레스가 동일 페이지를 식별하는 동안 상기 단계(D 내지 E)를 반복하는 단계;를 포함하는 것을 특징으로 하는 수행방법.
- 제1항에 있어서, G) 만약 현재 및 선행 어드레스가 동일 페이지를 식별하지 못한다면 1) 대기상태를 발생시키는 단계; 및 2) 현재 어드레스의 m 상위비트에 의해 식별된 또다른 페이지를 비동기 비휘발성 메모리의 현재 페이지로서 선택하는 단계;를 수행하는 단계; 및 H) 단계(C)로 복귀하는 단계;를 더 포함하는 것을 특징으로 하는 수행방법.
- 제1항에 있어서, 상기 단계(A)는 1) 복수개의 개별 메모리 구성요소에 칩 인에이블 신호를 제공하는 단계를 포함하는 것을 특징으로 하는 수행방법.
- 제1항에 있어서, 상기 단계(C)는 1) 선택된 개별 메모리 구성요소에 출력 인에이블 신호를 제공하는 단계를 포함하는 것을 특징으로 하는 수행방법.
- 제1항에 있어서, 비휘발성 메모리는 플래쉬 메모리인 것을 특징으로 하는 수행방법.
- 제1항에 있어서, 프로세서가 단계(D)를 수행하는 것을 특징으로 하는 수행방법.
- A) 만약 멀티플렉스된 어드레스 모드가 모드 레지스터에 저장된 값에 의해 표시된다면 디멀티플렉스된 어드레스를 발생하기 위해 복수의 멀티플렉스된 어드레스 신호를 디멀티플렉스하는 단계로서, 상기 값은 하나이상의 동기 및 비동기 동작모드 중의 하나를 표시하는, 디멀티플렉싱 단계; B) 디멀티플렉스된 어드레스에 따라서 비휘발성 메모리로부터 데이터를 판독하는 단계;및 C) 상기 데이터를 래치하는 단계;를 포함하는 것을 특징으로 하는 방법.
- 제7항에 있어서, 상기 비휘발성 메모리는 플래쉬 메모리로 구성되는 것을 특징으로 하는 방법.
- 제7항에 있어서, 상기 단계(A)는, 1) 제1 스트로브 신호 및 제2 스트로브 신호를 포함하는 제어신호 및 복수의 멀티플렉스된 어드레스를 수신하는 단계; 2) 선택된 멀티플렉스된 어드레스의 제1 부분을 래치하는 단계; 및 3) 선택된 멀티플렉스된 어드레스의 제2 부분을 래치하는 단계;를 더 포함하며, 상기 제1 및 제2 부분은 디멀티플렉스된 어드레스를 형성하는 것을 특징으로 하는 방법.
- 제9항에 있어서, 상기 제1 스트로브 신호는 행 어드레스 신호이며, 상기 단계 (A)의 (2)는 행 어드레스 스트로브 신호에 응답하여 수행되는 것을 특징으로 하는 방법.
- 제9항에 있어서, 상기 제2 스트로브 신호는 열 어드레스 신호이며, 상기 단계 (A)의 (3)은 열 어드레스 스트로브 신호에 응답하여 수행되는 것을 특징으로 하는 방법.
- 제9항에 있어서, D) 만약 제어 신호가 재충전(refresh) 사이클을 표시하면 3상태(tristated) 출력을 제공하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제12항에 있어서, 제1 및 제2 스트로브 신호의 시퀀스는 재충전 사이클을 표시하는 것을 특징으로 하는 방법.
- 제9항에 있어서, D) 만약 제어 신호가 선충전(precharge) 사이클을 표시하면 3상태 출력 메모리를 제공하는 것을 특징으로 하는 방법.
- A) 동작모드에 따라서 디멀티플렉스된 어드레스를 위한 소스로서 어드레스 버스 및 어드레스 래치 중의 하나를 선택하는 단계로서, 상기 어드레스 래치는 멀티플렉스된 어드레스를 출력으로서 수신하고, 상기 동작모드는 모드 레지스터에 저장된 값에 의해 결정되며, 상기 값은 하나이상의 동기 및 비동기 동작모드 중의 하나를 표시하는, 선택하는 단계; B) 디멀티플렉스된 어드레스에 따라서 비휘발성 메모리로부터 데이터를 판독하는 단계; 및 C) 상기 데이터를 래치하는 단계;를 포함하는 것을 특징으로 하는 방법.
- 제15항에 있어서, 상기 단계(A)는 1) 만약 동작모드가 멀티플렉스되지 않은(nonmultiplexed) 동작모드이면, 어드레스 버스를 소스로서 선택하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제15항에 있어서, 상기 단계(A)는 1) 만약 동작모드가 멀티플렉스된 동작모드이면, 어드레스 래치를 소스로서 선택하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제17항에 있어서, D) 디멀티플렉스된 어드레스의 제1 부분을 상기 어드레스 버스로부터 래치하는 단계; 및 E) 디멀티플렉스된 어드레스의 제2 부분을 상기 어드레스 버스로부터 래치하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 컴퓨터 시스템에 있어서, 시작 어드레스 및 복수개의 다음의 연속되는 어드레스들에 의해 정의되는 메모리의 범위에 대해 버스트 판독을 개시하기 위한 프로세서; 상기 프로세서에 연결된 비동기 주메모리 버스; 복수개의 개별 메모리 구성요소를 포함하는 비휘발성 메모리로서, 상기 비휘발성 메모리내의 연속되는 어드레스들은 동일한 개별 메모리 구성요소에 위치하지 않는, 비휘발성 메모리; 및 비동기 주메모리 버스 및 비휘발성 메모리에 연결된 완전 프로그래밍가능 게이트 어레이(FPGA);를 포함하며, 상기 메모리 범위의 각 선택된 어드레스에 대해 상기 FPGA는 선택된 어드레스의 m 상위비트에 따라서 비휘발성 메모리의 페이지를 선택하며, 상기 FPGA는 선택된 어드레스의 n 하위비트에 따라서 프로세서에 데이터를 제공하도록 개별 메모리 구성요소중의 하나의 출력을 인에이블하며, 상기 선택된 어드레스 및 선행 어드레스가 비휘발성 메모리의 동일 페이지를 식별하는 동안 어떤 대기상태도 발생되지 않는 것을 특징으로 하는 컴퓨터 시스템.
- 제19항에 있어서, 상기 비휘발성 메모리는 플래쉬 비휘발성 메모리인 것을 특징으로 하는 컴퓨터 시스템.
- 제19항에 있어서, 상기 비동기 주메모리 버스는 16MHz 와 같거나 그이상의 속도로 동작하는 것을 특징으로 하는 컴퓨터 시스템.
- 제19항에 있어서, 상기 프로세서는 복수개의 다음의 연속되는 어드레스를 제공하는 것을 특징으로 하는 컴퓨터 시스템.
- 제19항에 있어서, 상기 프로세서는 정적(static) 마이크로 프로세서인 것을 특징으로 하는 컴퓨터 시스템.
- 컴퓨터 시스템에 있어서, 시작 어드레스 및 복수개의 다음의 연속되는 어드레스에 의해 정의되는 메모리의 범위에 대해 버스트 판독을 개시하기 위한 프로세서; 버스트 판독 시퀀스의 연속되는 어드레스를 발생시키기 위한 버스트 논리 회로; 상기 프로세서 및 상기 버스트 논리 회로에 연결되어 있으며, 클록신호 및 어드레스 래치 인에이블 신호를 포함하는 동기 제어신호 및 어드레스 신호를 제공하는 동기 주메모리 버스; 버스트 논리 회로에 연결된 비휘발성 메모리 장치로서, 비휘발성 메모리의 제1 뱅크; 비휘발성 메모리의 제2 뱅크로서, 상기 비휘발성 메모리 장치의 연속되는 어드레스는 제1 및 제2 뱅크간에 인터레이스(interlace)되는, 제2 뱅크; 클록신호를 포함한 동기 제어신호, 비동기 제어신호, 및 어드레스 신호를 수신할 수있는 인터페이스 제어 논리; 모드 레지스터로서, 상기 인터페이스 제어 논리는 어드레스 신호 및 동기 제어신호에 따라서 제1 및 제2 메모리 뱅크에 동기 억세스를 제공하여, 만약 모드 레지스터가 제1 값을 저장하면 동기 버스트 판독 데이터를 클록신호의 연속되는 사이클에 제공하며, 만약 모드 레지스터가 제2 값을 저장하면 어드레스 신호 및 비동기 제어신호에 따라서 인터페이스 제어 논리가 클록신호에 독립적인 제1 및 제2 메모리 뱅크에 비동기 억세스를 제공하는, 모드 레지스터; 및 비휘발성 메모리의 제1 및 제2 뱅크에 연결된 데이터 멀티플렉서로서, 상기 데이터 멀티플렉서는 어드레스 신호의 적어도 한 비트 및 동기 제어신호에 따라서 제1 및 제2 뱅크중의 하나로부터 데이터를 동기적으로 선택하여 만일 모드 레지스터가 제1 값을 저장하면 클록신호의 연속되는 사이클에 동기 버스트 판독 데이터를 제공하는 데이터 멀티플렉서;를 포함하는 비휘발성 메모리 장치;를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
- 제24항에 있어서, 상기 버스트 판독 시퀀스는 비선형 시퀀스인 것을 특징으로 하는 컴퓨터 시스템.
- 제24항에 있어서, 상기 버스트 판독 시퀀스는 선형 시퀀스인 것을 특징으로 하는 컴퓨터 시스템.
- 제24항에 있어서, 상기 비휘발성 메모리는 플래쉬 메모리인 것을 특징으로 하는 컴퓨터 시스템.
- 제24항에 있어서, 상기 비휘발성 메모리 장치는 집적회로에 형성되는 것을 특징으로 하는 컴퓨터 시스템.
- 제24항에 있어서, 상기 비휘발성 메모리 장치 및 버스트 논리는 동일 집적회로에 형성되는 것을 특징으로 하는 컴퓨터 시스템.
- 비휘발성 메모리 장치에 있어서, 비휘발성 메모리의 제1 뱅크; 비휘발성 메모리의 제2 뱅크로서, 상기 비휘발성 메모리 장치의 연속되는 어드레스는 제1 및 제2 뱅크간에 인터레이스되는, 제2 뱅크; 클록신호를 포함하는 동기 제어신호, 비동기 제어신호, 및 어드레스 신호를 수신하는 인터레이스 제어 논리; 및 모드 레지스터로서, 상기 인터페이스 제어 논리는 어드레스 신호 및 동기 제어신호에 따라서 제1 및 제2 메모리 뱅크에 동기 억세스를 제공하여, 만약 모드 레지스터가 제1 값을 저장하면 동기 버스트 판독 데이터를 클록신호의 연속되는 사이클에 제공하며, 만약 모드 레지스터가 제2 값을 저장하면 어드레스 신호에 따라서 인터페이스 제어 논리가 클록신호에 독립적인 제1 및 제2 메모리 뱅크에 비동기 억세스를 제공하는, 모드 레지스터;를 포함하는 것을 특징으로 하는 비휘발성 메모리 장치.
- 제30항에 있어서, 상기 제1 및 제2 비휘발성 메모리 뱅크, 인터레이스 제어논리, 및 모드 레지스터는 동일한 집적회로내에 형성되는 것을 특징으로 하는 비휘발성 메모리 장치.
- 제30항에 있어서, 상기 모드 레지스터는 내용주소화 기억장치에 구현되는 것을 특징으로 하는 비휘발성 메모리 장치.
- 제30항에 있어서, 상기 동기 제어신호의 어드레스 래치 인에이블 신호에 따라서, 수신된 어드레스 신호의 적어도 한 부분을 제1 뱅크에 제공하도록 연결된 제1 어드레스 래치; 상기 어드레스 래치 인에이블 신호에 따라서, 수신된 어드레스 신호의 상기 부분을 제2 뱅크에 제공하도록 연결된 제2 어드레스 래치로서, 상기 인터페이스 제어 논리는 만약 모드 레지스터가 제1 값을 저장하면 적어도 한 비트의 어드레스 신호에 따라서 상기 제1 및 제2 어드레스 래치 중의 선택된 하나에 상기 어드레스 래치 인에이블 신호를 제공하는, 제2 어드레스 래치; 및 비휘발성 메모리의 제1 및 제2 뱅크에 연결된 데이터 멀티플렉서로서, 상기 데이터 멀티플렉서는 적어도 한 비트 및 클록 신호에 따라서 제1 및 제2 뱅크중의 하나로부터 데이터를 동기적으로 선택하여 만일 모드 레지스터가 제1 값을 저장하면 클록신호의 연속되는 사이클에 동기 버스트 판독 데이터를 제공하는 데이터 멀티플렉서;를 더 포함하는 것을 특징으로 하는 비휘발성 메모리 장치.
- 제33항에 있어서, 비휘발성 메모리의 제1 및 제2 뱅크, 인터레이스 제어논리, 모드 레지스터, 제1 및 제2 어드레스 래치, 및 데이터 멀티플렉서는 동일한 집적회로내에 형성되는 것을 특징으로 하는 비휘발성 메모리 장치.
- 비휘발성 메모리 장치에 있어서, 동작모드를 표시하는 값을 저장하는 모드 레지스터; 비동기 제어신호에 응답하여 어드레스 래치 신호 및 데이터 래치 신호를 발생시키는 제어논리; 상기 어드레스 래치 신호에 응답하여 디멀티플렉스된 어드레스를 어드레스 버스로부터 래치하는 어드레스 래치; 모드 레지스터에 연결되며, 동작모드에 따라서 디멀티플렉스된 어드레스를 어드레스 버스 및 어드레스 래치 중의 선택된 하나로부터 래치하는 멀티플렉서; 상기 멀티플렉서에 연결된 비휘발성 메모리 어레이; 및 상기 데이터 래치 제어신호에 응답하여 상기 디멀티플렉스된 어드레스에 대응하는 데이터를 비휘발성 메모리로부터 래치하는 데이터 래치;를 포함하는 것을 특징으로 하는 비휘발성 메모리 장치.
- 제35항에 있어서, 상기 멀티플렉서는 만약 상기 동작모드가 디멀티플렉스된 동작모드이면 상기 어드레스 버스를 선택하며, 만약 상기 동작모드가 멀티플렉스된 동작모드이면 상기 멀티플렉서는 상기 어드레스 래치를 선택하는 것을 특징으로 하는 비휘발성 메모리 장치.
- 제36항에 있어서, 상기 비동기 제어신호는 행 어드레스 스트로브 신호 및 열 어드레스 스트로브 신호를 포함하며, 상기 제어논리는 상기 행 어드레스 스트로브 신호에 응답하여 디멀티플렉스된 어드레스의 제1 부분을 래치하기 위한 제1 어드레스 래치를 발생시키며, 상기 제어논리는 상기 열 어드레스 스트로브 신호에 응답하여 디멀티플렉스된 어드레스의 제2 부분을 래치하기 위한 제2 어드레스 래치 신호를 발생시키는 것을 특징으로 하는 비휘발성 메모리 장치.
- 제36항에 있어서, 만약 비동기 제어신호가 재충전 사이클을 표시하면 데이터 래치의 출력이 3상태인 것을 특징으로 하는 비휘발성 메모리 장치.
- 제36항에 있어서, 만약 비동기 제어신호가 선충전 사이클을 표시하면 데이터 래치의 출력이 3상태인 것을 특징으로 하는 비휘발성 메모리 장치.
- 제36항에 있어서, 상기 데이터 래치, 비휘발성 메모리 어레이, 멀티플렉서, 어드레스 래치, 제어 논리, 및 모드 레지스터는 동일한 집적회로상에 형성되는 것을 특징으로 하는 비휘발성 메모리 장치.
- 비휘발성 메모리 장치에 있어서, 동작모드의 멀티플렉스된 어드레스를 표시하는 값을 저장하는 모드 선택 레지스터로서, 상기 값은 하나이상의 동기 및 비동기 동작모드 중의 하나를 표시하는, 모드 선택 레지스터; 제1 및 제2 스트로브 신호를 포함하는 비동기 제어신호 및 멀티플렉스된 어드레스 신호를 수신하며, 제1 스트로브 신호에 응답하여 제1 래치신호를 발생시키고, 제2 스트로브 신호에 응답하여 제2 래치신호를 발생시키며, 비동기 제어신호에 따라서 데이터 래치 제어신호를 발생시키는 제어 논리; 어드레스 래치로서, 상기 어드레스 래치는 제1 래치신호에 응답하여 선택된 멀티플렉스된 어드레스의 제1 부분을 래치하고 제2 래치신호에 응답하여 선택된 멀티플렉스된 어드레스의 제2 부분을 래치하며, 상기 제1 및 제2 부분은 디멀티플렉스된 어드레스를 형성하는, 어드레스 래치; 및 데이터 래치 제어신호에 응답하여 비휘발성 메모리로부터 상기 디멀티플렉스된 어드레스를 수신하도록 연결된 비휘발성 메모리 어레이;를 포함하는 것을 특징으로 하는 비휘발성 메모리 장치.
- 제41항에 있어서, 상기 제어논리, 어드레스 래치, 비휘발성 메모리 어레이, 및 데이터 래치는 동일한 집적회로내에 형성되는 것을 특징으로 하는 비휘발성 메모리 장치.
- 비휘발성 메모리 장치에 있어서, 비휘발성 메모리의 복수개의 뱅크로서, 상기 비휘발성 메모리 장치의 연속되는 어드레스는 비휘발성 메모리의 복수개의 뱅크 사이에 인터레이스되는, 복수개의 뱅크; 클록신호를 포함한 동기 제어신호, 비동기 제어신호, 및 수신된 멀티플렉스된 어드레스 신호에 따라서 뱅크 래치 인에이블 신호를 발생시키는 인터레이스된 제어 논리; 뱅크 래치 인에이블 신호에 따라서 복수개의 뱅크에 디멀티플렉스된 어드레스를 제공하기 위해, 멀티플렉스된 어드레스 신호를 디멀티플렉스하기 위한 복수개의 뱅크 래치; 및 모드 레지스터로서, 상기 인터페이스 제어 논리는 멀티플렉스된 어드레스 신호 및 동기 제어신호에 따라서 제1 및 제2 메모리 뱅크에 동기 억세스를 제공하여, 만약 모드 레지스터가 제1 값을 저장하면 동기 버스트 판독 데이터를 클록신호의 연속되는 사이클에 제공하는, 모드 레지스터;를 포함하는 것을 특징으로 하는 비휘발성 메모리 장치.
- 제43항에 있어서, 상기 제1 값은 동기식 동적 랜덤 억세스 메모리(DRAM) 동작모드를 표시하는 것을 특징으로 하는 비휘발성 메모리 장치.
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)
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)
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)
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 |
-
1994
- 1994-06-03 US US08/253,499 patent/US5696917A/en not_active Expired - Lifetime
-
1995
- 1995-06-01 WO PCT/US1995/007062 patent/WO1995034030A2/en active Application Filing
- 1995-06-01 AU AU27658/95A patent/AU2765895A/en not_active Abandoned
- 1995-06-01 CN CN95193421A patent/CN1102772C/zh not_active Expired - Lifetime
- 1995-06-01 BR BR9507911A patent/BR9507911A/pt not_active IP Right Cessation
- 1995-06-01 KR KR1019960706889A patent/KR100281432B1/ko not_active IP Right Cessation
- 1995-06-01 EP EP95922954A patent/EP0765498A4/en not_active Withdrawn
-
1997
- 1997-06-18 US US08/877,840 patent/US6385688B1/en not_active Expired - Fee Related
- 1997-06-18 US US08/897,499 patent/US6026465A/en not_active Expired - Lifetime
-
2000
- 2000-06-14 US US09/595,327 patent/US6564285B1/en not_active Expired - Fee Related
-
2002
- 2002-12-25 CN CNB021605157A patent/CN1228715C/zh not_active Expired - Lifetime
Cited By (3)
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 |