KR20010093642A - 개선된 메모리 시스템 장치 및 방법 - Google Patents

개선된 메모리 시스템 장치 및 방법 Download PDF

Info

Publication number
KR20010093642A
KR20010093642A KR1020017000908A KR20017000908A KR20010093642A KR 20010093642 A KR20010093642 A KR 20010093642A KR 1020017000908 A KR1020017000908 A KR 1020017000908A KR 20017000908 A KR20017000908 A KR 20017000908A KR 20010093642 A KR20010093642 A KR 20010093642A
Authority
KR
South Korea
Prior art keywords
address
arrays
row
data
outputs
Prior art date
Application number
KR1020017000908A
Other languages
English (en)
Other versions
KR100385370B1 (ko
Inventor
프랭크와이. 유
Original Assignee
추후
시게이트 테크놀로지 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 추후, 시게이트 테크놀로지 엘엘씨 filed Critical 추후
Publication of KR20010093642A publication Critical patent/KR20010093642A/ko
Application granted granted Critical
Publication of KR100385370B1 publication Critical patent/KR100385370B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/04Arrangements for selecting an address in a digital store using a sequential addressing device, e.g. shift register, counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1018Serial bit line access mode, e.g. using bit line address shift registers, bit line address counters, bit line burst counters

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Security & Cryptography (AREA)
  • Dram (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

메모리 시스템 및 메모리 시스템의 동작 방법이 제공된다. 상기 메모리 시스템은 칼럼 어드레스를 갖는 칼럼 그룹 및 로우 어드레스를 갖는 로우들로 배열된 다수의 어레이를 포함한다. 상기 메모리 시스템의 동작 방법은 데이터 블록들을 데이터 블록들용의 연속적인 논리 어드레스들을 제공하는 방법으로 상기 어레이들에 저장하는 단계를 포함한다. 데이터 블록은 어레이에 있는 칼럼 그룹의 로우에 저장된다. 로우 어드레스는 증가되고, 상기 로우 어드레스가 로우 한계에 도달할 때 까지 상기 프로세스는 반복된다. 데이터 블록들이 어레이에서의 대응 칼럼 그룹의 모든 로우들에 저장될 때까지 다른 어레이들에 대해 상기 프로세스가 반복된다. 상기 칼럼 어드레스는 증가되고, 상기 로우 어드레스는 재설성되고, 상기 칼럼 어드레스가 칼럼 한계가 도달될 때 까지 상기 프로세스는 반복된다.

Description

개선된 메모리 시스템 장치 및 방법{IMPROVED MEMORY SYSTEM APPARATUS AND METHOD}
버퍼 메모리 시스템은 통상 호스트 컴퓨터 및 디스크 드라이브와 같은 대량 저장 장치를 결합하는 인터페이스로서 사용된다. 그러한 인터페이스에서의 한 어려움은 대량 저장 장치로부터 유출되거나 또는 대량 저장 장치로 유입되는 데이터 예컨대, 디스크 드라이브의 판독/기록 헤더에 유입 또는 유출되는 데이터가, 비록 컴퓨터내에서는 병렬 데이터 버스를 통해 유입 또는 유출되지만, 시리얼 포맷이라는 것이다. 따라서, 버퍼 메모리 시스템은 데이터를 병렬에서 시리얼 포맷으로 변환해야 하며, 컴퓨터 및 대량 저장 장치 사이에서 이동하는 데이터를 일시적으로 저장함으로써, 데이터의 대량 저장 장치로의 기록 또는 판독되는 속도를 컴퓨터의 보다 빠른 속도에 맞춰주어야 한다. 전형적인 버퍼 메모리 시스템은 데이터를 일시적으로 저장하기 위한 버퍼 메모리 및 컴퓨터의 중앙 처리 장치(CPU)에 의해 사용되는 논리적인 블록 어드레스들(logical block addresses)로부터의 데이터 블록들을 버퍼 메모리내의 대응하는 물리적인 어드레스들로 변환 또는 맵핑(mapping)하기 위한 제어 장치를 포함한다. 버퍼 메모리는 일반적으로 랜덤 액세스 메모리들 또는 메모리 칩들(RAM chips)과 같은 하나 이상의 임시 데이터 저장 장치들을 포함한다. RAM 칩들은 종횡으로 배치된 메모리 셀들의 어레이를 갖는 집적 회로 메모리 칩들이다. 도 1에는 그 각각이 4096 로우(row) 어드레스들에 256 칼럼 어드레스들을 갖는 한쌍의 어레이들을 갖는 통상의 버퍼 메모리가 도시되어 있다. 또한, 상기 칼럼 어드레스들은 16 칼럼들의 16 그룹들로 나눠진다. 각각의 그룹은 데이터를 그 각각이 16 비트들의 16워드들로 구성되는 단락들로서 알려진 데이터 블록들로 저장한다. 예컨대, 논리적인 어드레스 0을 갖는 제1 단락(PARA 0; 106)은 칼럼들(칼럼들 0 내지 15)의 제1 그룹내의 첫번째 로우(로우 0)에 맵핑되고, 제2 단락(PARA 1; 107)은 칼럼들 0 내지 15의 로우 1에 맵핑되며, 그 외 역시 그러하다. 칼럼들의 제1 그룹내의 마지막 로우가 이른 후 예컨대, 4096번째 단락(PARA 4095; 108)이 로우 4095에 맵핑된 후, 상기 로우 어드레스는 로우 0로 루프백(Loop-back)되며, 칼럼 어드레스는 칼럼들의 제2 그룹즉, 칼럼들 16 내지 31로 증가된다.
일반적으로, 상기 제어기는 디스크 드라이브로부터 디스크 드라이브로부터 복구 및 저장된 데이터의 완전성(integrity)을 점검하기 위한 기구를 포함한다. 그러한 기구에서, 컴퓨터로부터 수신된 데이터 단락내의 각 워드상에서 비트-방식(bit-wise) 배타적 논리 합(XOR)의 동작이 실행된다. 패리티 워드로서 알려진 XOR 동작의 결과가 버퍼 메모리에 저장된 단락에 부가되고 이어, 상기 대량 저장 장치에 전달된다. 이전에 저장된 데이터 단락이 상기 대량 저장 장치로부터 복구되는 경우, XOR 동작은 반복되어 그 결과는 저장된 패리티 워드와 비교된다. 만일, 그 결과가 동일하다면, 복구된 데이터는 유효한 것으로 간주되며, 만일 아니라면, 에러 비트 또는 비트들을 식별 및 정정하기 위한 에러 정정 루틴이 실행된다. 이러한 데이터 완전성 기구에 있어서의 한 문제점은 패리티 워드가 RAM 칩의 물리적인 어드레스를 차지함으로 인해, 대응하는 논리적 어드레스를 데이터 어드레싱에 용용할 수 없게 하며, 그에 따라 일련의 데이터 블록들에 대해 비연속적인 논리적인 어드레스들이 발생된다. 비연속 논리적인 어드레스들은 컴퓨터의 클럭의 사이클들의 수에 의해 측정되고, 컴퓨터의 CPU가 하나의 논리적인 어드레스로부터 다음의 비연속 논리적인 어드레스로 진전하는데에 필요로하는 시간을 증가시켜, CPU의 동작을 저하시킴으로, 이러한 것은 바람직하지 않다. 또한, 비연속 논리적인 어드레스들은 버퍼 메모리 시스템의 대역폭을 감소시키는 매핑 과정을 복잡하게 한다. 상기 대역폭이라는 용어는 주어진 시간내에 얼마나 많은 정보가 상기 버퍼 메모리로부터 또는 버퍼 메모리에 전달될 수 있는가를 나타내기 위해 컴퓨터 분야에서 공통적으로 사용된다.
도 1에 나타낸, 하나의 부분적인 해결책으로 세로 중복 코드(longitudinal redundancy code; LRC)로서 알려진 기구가 사용된다. 앞서 설명한 데이터 완전성 기구로서의 비트-방식 XOR 동작이 단락에 대해 LRC-워드로서 알려진 패리티 워드를 발생시키기 위해 그 단락내의 각 워드상에서 이행된다. 그러나, 상기 앞서의 데이터 완전성 기구와는 다르게, LRC-워드는 단락에 부가되지 않고, 칼럼들의 마지막 그룹 즉, 패리티 정보를 위해 배타적으로 남겨 둔 칼럼 241 내지 256에 개별적으로 저장된다. 바람직하게는, 단락을 위한 LRC-워드는 제어기가 명령어를 수행하는데에 필요로하는 명령 오버헤드를 감소시키기 위해 동일 로우내에 저장된다. 명령 오버헤드의 감소는 유용한 태스크(tasks)들을 위한 시스템의 유효 대역을 증가시킨다. LRC-워드의 동일 로우내로의 저장은 한 로우로부터의 다른 로우로 이동시키는데에 필요한 전형적으로 약 7 클럭 사이크의 시간을 절약한다. 이러한 기구를 이행하기 위한 예시적인 과정을 도 1을 참조하여 설명한다. 칼럼 241에서부터 시작하면, LRC-워드에 대한 칼럼 어드레스는 동일 로우내에서 각 단락에 대해 증가한다. 예컨대, 제1 단락(106)에 대한 LRC-워드는 로우 0, 칼럼 241에 저장되며, 제2 단락(107)에 대한 LRC-워드는 로우 1, 칼럼 241에 그리고 4097번째 단락(109)에 대한 LRC-워드는 로우 0, 칼럼 242에 저장된다. 따라서, LRC-워드들은 데이터 어드레싱에 대해 유효한 논리적인 어드레스들의 연속적인 블록을 떠나, 논리적인 어드레스들의 범위의 최상위단으로 이동한다.
위의 접근 방식은 단일의 RAM 칩과 같은, 단일의 임시 저장 장치들을 갖는 버퍼 메모리 시스템들에 대해서는 적절하게 작용한다. 그러나, 그들에 의해 처리되는 컴퓨터 프로그램 및 데이터 크기에서의 최근의 빠른 증가는 보다 큰 용량의 대량 저장 장치들에 대한 개발을 유도하고 있다. 이것은 차례로 그들과 인터페이스하기 위한 보다 많은 버퍼 메모리를 갖는 보다 빠른 버퍼 메모리 시스템에 대한 요청을 생성하게 되었다. 전형적으로, 버퍼 메모리를 늘리는 것은 RAM 칩들의 용량을증가시키거나 또는 버퍼 메모리에 보다 많은 RAM 칩들을 증가시킴으로써 성취된다. 불행하게도, 이들 해결책들의 어떠한 것도 완전히 만족시키지는 못한다. 상기 첫 번째 방안은 RAM 가격은 용량을 늘릴수록 극적으로 상승하기 때문에 불만족스러우며, 높은 경쟁의 컴퓨터 메모리 시장에서 보다 값비싼 높은 용량의 RAM을 이용하는 것은 바람직하지 않다.
유사하게, 두 번째 해결 방안 즉, 보다 많은 RAM 칩들을 부가하는 식의 방안에서의 문제점은 통상적인 버퍼 메모리 시스템들에 사용되는 비교적 값싸고 단순한 제어기들은 단일 제어기에 의해 어드레싱될 수 있는 RAM 칩들의 수가 일반적으로 하나 또는 두 개로 제한된다는 것이다. RAM 칩의 증가에 대한 다른 문제는, 칼럼들의 마지막 그룹의 모든 로우들이 LRC-워드들을 위해 남겨두는 위에서 설명한 데이터 완전성 기구를 사용하는 버퍼 메모리 시스템들에 대해, 보다 많은 RAM 칩들을 부가하는 것은 칩 경계를 교차시킬 때 비연속적인 논리적 어드레스들을 재도입시킨다는 것이다. 칩 경계를 교차시킴으로써, 제1 RAM 칩상에서 데이터를 위해 이용가능한 마지막 물리적인 어드레스로부터 제2 RAM 칩상의 첫 번째 이용가능한 물리적인 어드레스로의 전이를 의미한다. 제1 RAM(10)의 칼럼들 241 내지 256내의 모든 로우들은 제2 RAM(15)으로의 이동할 때 LRC-워드들을 위해 보존되기 때문에, 제어기는 이러한 영역들의 물리적인 어드레서들에 대응하는 논리적인 주소들을 건너뛰어야 하며, 그 결과 연속적인 데이터 블록에 대해 비연속적인 논리적인 어드레스들을 야기시킨다.
따라서, 보다 많은 버퍼 메모리를 갖으면서도 보다 빠른 버퍼 메모리 시스템이 필요하다. 다수의 RAM 칩들과 같은 다른 임의의 저장 장치들에 맵핑된 일련의 데이터 블록들에 대해 연속적인 논리적인 어드레스들을 제공하는 버퍼 메모리 시스템이 또한 필요하다. 대량 저장 장치로부터 복구 및 저장된 데이터의 완전성을 점검하기 위한 기구를 포함하는 버퍼 메모리가 또한 필요하다. 버퍼 메모리 시스템의 대역폭을 증가시키는 데이터 완성 기구 및 어드레싱을 포함하는 버퍼 메모리 시스템이 또한 더욱 필요하다. 최종적으로, 상업적으로 실행가능하도록, 보다 값싸고 보다 작은 용량의 RAM 칩들 및 현존하는 제어기들로써 실현할 수 있는 버퍼 메모리의 증가가 바람직한다.
본 발명은 이들 및 그 밖의 다른 문제점들에 해결책 및 종래 기술을 뛰어넘는 이점들을 제공한다.
본 출원은 1998년 7월 21일자로 출원된 미국 특허 가출원 번호 60/093,741 (United States Provisional Patent Application Serial Number 60/093,741)의 우선권을 주장한다.
본 발명은 일반적으로 컴퓨터 메모리 시스템 분야에 관한 것으로 특히, 디스크 드라이브 제어기용 버퍼 메모리 시스템에 관한 것이다.
도 1은 두 개의 메모리 어레이들을 갖는 통상의 버퍼 메모리의 도면이다.
도 2는 본 발명의 실시예에 따른 버퍼 메모리 시스템에 의해 대량 저장 장치에 결합된 컴퓨터의 블록도이다.
도 3은 어레이, 로우 디코더, 및 칼럼 디코더를 갖는 예시적인 SDRAM의 기능적인 블록도이다.
도 4는 본 발명에 따른 버퍼 메모리 시스템의 바람직한 실시예의 기능적인 블록도이다.
도 5는 본 발명에 따른 두 개의 수직 스택 메모리 어레이들을 갖는 버퍼 메모리 시스템의 바람직한 실시예의 버퍼 메모리의 도면이다.
도 6은 연속적인 논리적인 어드레스들을 다중 어레이들에 맵핑하기 위한 본 발명에 따른 버퍼 메모리 시스템의 실시예를 구동하는 방법의 처리 과정을 나타낸 흐름도이다.
본 발명은 상기 문제를 해결하기 위한 메모리 시스템 및 메모리 시스템의 동작 방법에 관한 것이다. 상기 메모리 시스템은 칼럼 어드레스를 갖는 칼럼 그룹 및 로우 어드레스를 갖는 로우들로 배열된 다수의 어레이를 포함한다. 상기 메모리 시스템의 동작 방법은 데이터 블록들을 데이터 블록들용의 연속적인 논리 어드레스들을 제공하는 방법으로 상기 어레이들에 저장하는 단계를 포함한다. 상기 데이터 블록은 어레이에 있는 칼럼 그룹의 로우에 저장된다. 로우 어드레스는 증가되고, 상기 로우 어드레스가 로우 한계에 도달할 때 까지 상기 프로세스는 반복된다. 상기 로우 한계에 도달한 후, 데이터 블록들이 어레이에서의 대응 칼럼 그룹의 모든 로우들에 저장될 때까지 다른 어레이들에 대해 상기 프로세스가 반복된다. 상기 칼럼어드레스는 증가되고, 상기 로우 어드레스는 재설정되고, 칼럼 한계에 도달될 때까지 상기 프로세스는 반복된다. 상기 메모리 시스템의 동작 방법은 또한 상기 어레이들로부터 복구된 데이터의 완전성을 검사하기 위하여 각 데이터 블록용 패리티 워드를 발생하는 단계를 포함하는 것이 바람직하다. 상기 메모리 시스템의 동작 방법은 최종 칼럼 그룹에 있는 모든 로우를 패리티 워드용 어레이에 저장된 데이터 블록용으로 발생된 상기 패리티 워드용 어레이에 비축하여, 상기 패리티 워드의 물리적인 어드레스들에 연관된 상기 논리 어드레스를 상기 논리 어드레스의 범위 상부 끝으로 이동시키는 단계를 포함한다.
본 발명의 일 실시예에 의하면, 본 발명은 데이터를 저장할 수 있는 다수의 어레이들을 갖는 버퍼 메모리 시스템을 구비하는 디스크 드라이브의 동작 방법에 관한 것이다. 상기 어레이들은 로우 어드레스를 갖는 로우들 및 칼럼 어드레스를 갖는 칼럼 그룹으로 분리된다. 상기 어레이들은 로우들 및 칼럼 그룹들로 분리된다. 칼럼 그룹의 각 로우는 물리적인 어드레스를 구비한다. 상기 데이터는 소정 크기의 블록들로 분리된다. (i) 제1 데이터 블록이 제1 어레이의 칼럼 그룹의 최종 로우에 저장되도록 하고, (ii) 상기 제1 데이터 블록의 논리 어드레스에 연속하는 논리 어드레스를 갖는 제2 데이터 블록이 제2 어레이의 대응 칼럼 그룹의 제1 로우에 저장되도록 상기 로우들 및 칼럼 그룹들의 물리적인 어드레스를 논리 어드레스와 연관시킨다. 제3 데이터 블록은 상기 제2 어레이의 상기 대응 칼럼 그룹의 최종 로우에 저장되고, 상기 제3 데이터 블록의 논리 어드레스에 연속하는 논리 어드레스를 갖는 제4 데이터 블록은 제1 어레이의 제2 칼럼 그룹의 제1 로우에 저장된다.
본 발명의 다른 양상에 의하면, 본 발명은 데이터를 저장할 수 있는 다수의 어레이를 구비한 메모리 시스템에 관한 것이다. 상기 어레이들 각각은 셀들로 분리되고 물리적인 어드레스들의 범위에 의해 식별되는 셀들로 분리된다. 제어기는 논리 어드레스들을 상기 물리적인 어드레스들과 연관시키고 상기 셀들에 액세스한다. 제어기는 여러 가지의 어레이들에 있는 셀들용 물리적인 어드레스들을 연속적인 논리 어드레스들과 연관시킨다. 상기 제어기는 각각 이진수의 일 비트를 나타내는 다수의 출력들을 포함하는 것이 바람직하다. 상기 다수의 출력들에서의 논리 어드레스를 나타내는 이진수를 제공하고 상기 논리 어드레스에 연관된 상기 물리적인 어드레스를 갖는 상기 셀에 액세스하여 상기 출력들이 상기 다수의 어레이들에 연결된다. 상기 출력들은 상기 어레이들 중의 하나를 선택하기 위한 적어도 하나의 출력을 포함하는 것이 더욱 바람직하다.
상기 메모리 시스템은 데이터를 저장하는 데이터 저장 장치를 구비한 데이터 저장 시스템에 특히 유용하다. 상기 데이터 저장 장치는 자기 디스크 드라이브, 광학 디스크 드라이브, 또는 자기 광학 디스크 드라이브일 수 있다.
본 발명의 목적, 구성, 작용 및 효과는 하기의 상세한 설명 및 첨부된 도면에 의해 더욱 명백해질 것이다.
도 2에는 버퍼 메모리 시스템(120)에 의해 광학적, 자기 광학적 또는 자기 디스크 드라이브와 같은, 대량 저장 장치(115)에 결합된 호스트 컴퓨터(110)의 블록도가 도시되어 있다. 상기 버퍼 메모리 시스템(120)는 상기 컴퓨터(110) 또는 상기 대량 저장 장치(115)의 일부일 수 있다. 일반적으로, 도 2에 도시된 바와 같이, 버퍼 메모리 시스템(120)은 상기 대량 저장 장치(115)와 함께 공통의 하우징(130)내에 설치된다. 상기 버퍼 메모리 시스템(120)은 상기 대량 저장 장치(115)로부터의 또는 상기 대량 저장 장치(115)로 이동하는 데이터를 일시적으로 저장하기 버퍼 메모리(125), 및 상기 버퍼 메모리(125)내에서의 논리적 어드레스들로부터 물리적인 어드레스들로의 변환 또는 맵핑을 위한 제어기(135)를 포함한다.
상기 버퍼 메모리(125)는 랜덤 액세스 메모리들 또는 메모리 칩들(RAMchips)과 같은, 다수의 임시 데이터 저장 장치들(140)을 포함한다. RAM 칩들은 로우들 및 칼럼들로 배치된 데이터 저장 메모리 셀들의 어레이를 갖는 집적 회로 메모리 칩들이다. 상기 메모리 셀들 각각은 로우 및 칼럼 번호를 포함하는 일정한 물리적인 어드레스에 의해 식별될 수 있다. 이것들에 제한되는 것은 아니지만, DRAM형 Ⅰ, DRAM 형 Ⅱ로서 또한 알려진 고속 페이지 모드(fast page mode) DRAM, SDRAM(synchronous DRAM), EDO DRAM(extended data out DRAM), 및 SRAM(static random access memory)을 포함하는 본 발명에 사용하기에 적합한 여러 형태의 RAM 칩들이 있다. DRAM 및 EDO DRAM의 어떠한 형들보다도 고속이고, SRAM보다도 저렴하기 때문에, 이들중 SDRAM이 바람직하다.
도 3을 참조하면, SDRAM(145)는 전형적으로 메모리 셀들(도시하지 않음)의 어레이(150), 칼럼 디코더(160), 로우 디코더(165), 데이터 입력 버퍼(170), 및 감지 증폭기(175)을 포함한다. 판독 또는 기록 동작을 위해 신호를 칩 인에이블(180)에 인가함으로써 상기 버퍼 메모리(125)내의 특정 SDRAM(145)이 선택된다. 몇몇 어드레스 라인들이 상기 로우 디코더(165)에 적용되고, RAS(185; row address strobe)와 래치되고 그 나머지 라인들이 상기 칼럼 디코더(160)에 적용되고 CAS(190; column address strobe)와 레치되어, 상기 제어기(135)로부터의 어드레스 버스(도시하지 않음)는 분리된다. 기록 인에이블 신호(195)는 상기 SDRAM(145)에 데이터가 기록되게 하며, 출력 인에이블(200)은 상기 SDRAM(145)로부터 데이터를 판독될 수 있게 한다. 또한, 본 발명이 불명료해지 않게 하기 위해, 도 3의 실시예에는 도시되어 있지 않거나 또는 설명의 단순화를 위해 본 상세한 설명에서는 설명자 않았지만 당업계에 알려진 다양한 다른 전압 신호들 및/또는 제어 신호들을 상기 SDRAM(145)는 또한 갖는다.
본 발명에 따른 버퍼 메모리 시스템의 바람직한 실시예의 기능적인 블록도인 도 4를 참조하여 본 발명의 실시예를 요약할 수 있다. 도면에 도시된 바와 같이, 상기 제어기(135)는 신호 버스들에 의해 마이크로프로세서 인터페이스(210), 시스템 인터페이스(215), 및 상기 대량 저장 장치(105)와의 인터페이스 예컨대, 디스크 드라이브(도시하지 않음)와의 포매터(220; formatter) 인터페이스를 포함하는 다양한 인터페이스들과 연결된 MCU(205; memory control unit)로 이루어진다. 상기 포매터(220)는 당업계에 널리 알려진 그런한 까닭에 도 4의 실시예에 도시되지 않았거나 또는 여기서는 설명하지 않은 다양한 신호 라인들을 갖는 신호 버스(205)에 의해 상기 대량 저장 장치(105)와 연결된다.
상기 시스템 인터페이스(215)는 상기 컴퓨터(10)내의 시스템 버스 및 상기 MCU(205) 사이의 통신을 위해 제공된다. 상기 시스템 인터페이스(215)로의 외부 신호 라인들은 다수의 데이터 라인들(도시하지 않음)을 갖는 양방향 데이터 버스(235)를 포함한다. 상기 다수의 데이터 라인들의 정확한 수는 일반적으로 상기 시스템 버스(230)의 아키텍처에 의존한다. 예컨대, SCSI(Small Computer System Interface) 아키텍처를 갖는 시스템(230)과의 통신을 위해, 상기 데이터 버스(235)는 전형적으로 16 비트들의 데이터를 동시에 이동시키기 위해 16 입력/출력 데이터 라인들 D<15:0>을 갖는다. 상기 시스템 인터페이스(215)는 신호 버스(240)을 통해 상기 MCU(205)와 연결된다.
상기 마이크로프로세서 인터페이스(210)는 일반적으로 데이터를 어드레싱하기 위해 상기 컴퓨터(110)내의 CPU(245)에 의해 사용되는 논리적인 블록 어드레스(LBA)들을 상기 MCU(205)에 의한 사용을 위한 가상 또는 논리적인 어드레스들로 변환시키는 하드웨어 및/또는 소프트웨어 프로토콜을 포함한다. 상기 논리적인 어드레스들은 양방향 다중화 어드레스/데이터 버스(260)에 의해 상기 마이크로프로세서 인터페이스(210)내의 논리적인 어드레스 레지스터(255; 형영으로 나타낸)에 연속적으로 저장된다. 다중화라는 것은 상기 버스(260)내의 라인들 모든 또는 일부가 교번 시간 주기들내에 데이터 및 어드레스들을 전송시킨다라는 것을 의미한다. 상기 마이크로프로세서 인터페이스(210)는 다른 양방향 다중화 어드레스/데이터 버스(265)에 의해 상기 CPU(245)와 연결된다. 칩-선택 신호와 함께, 신호 라인(280)상의 판독-데이터 신호는 데이터를 상기 MCU(205)를 통해 상기 대량 저장 장치(115)에서 상기 컴퓨터(110)로 이동시킨다. 칩-선택 신호와 함께, 신호 라인(285)상의 기록 데이터 신호는 데이터를 상기 MCU(205)로 이동 및 상기 버퍼 메모리(125)에 연속적으로 맵핑시킨다.
상기 MCU(205)는 명령 레지스터(도시하지 않음)를 갖는 일차 캐시(primary cache; 도시하지 않음) 및 그 곳에 내재된 누산기(도시하지 않음)를 갖는 국부 프로세서(290)을 포함한다. 상기 MCU(205)는 상기 마이크로프로세서 인터페이스(210) 및 상기 시스템 인터페이스(215)를 통해 상기 컴퓨터(110)으로부터, 논리적인 어드레스를 포함하여, 명령어들 및 데이터 블록을 받아들이며, 그리고 그들을 상기 명령 레지스터 및 어드레스 누산기내에 저장한다. 상기 MCU(205)는 상기 데이터를 소정 크기의 블록들 또는 단락들로 분할하며, 상기 논리적인 어드레스를 상기 버퍼 메모리(125)내의 물리적인 어드레스로 변환하기 위해 맵핑 프로그램을 실행시킨다. 이들 단락들은 상기 버퍼 메모리의 아키텍처에 의존하여 단일 비트에서 수천 바이트까지의 어떤 수의 데이터 비트들을 포함할 수 있다. 예컨대, 각각 16 칼럼들의 16 그룹들로 그룹화한 4096 로우들 및 256 칼럼들의 어레이를 갖는 16 메가비트 SDRAM에 대해서, 상기 데이터는 각각 16 비트들의 16 워드들의 단락드로 분리된다. 한 단락은 칼럼 그룹의 각 로우내에 저장된다. 선택적으로, 상기 MCU(205)는 상기 대량 저장 장치(115)로부터 기록 및 복구된 데이터의 완전성을 점검하기 위해 그곳에 저장된 컴퓨터 프로그램 제품을 갖는 컴퓨터 판독가능 매체를 포함한다. 예컨대, 바람직한 실시예에서, 상기 MCU(205)는 단락을 위한 패리티 워드를 생성하기 위해 상기 단락내의 각 워드상에서 비트-방식 배타적 논리합 동작을 이행한다. 특히, 단일 SDRAM내에 저장된 데이터에 연속적인 어드레싱을 제공하기 위해, 단락을 위한 패리티 워드는 위에서 설명한 바와 같이, 칼럼들의 마지막 그룹 즉, 칼럼들 241 내지 256내의 모든 로우들을 포함하는 LRC-영역(300)의 동일한 로우내에 저장된 LRC-워드이다.
도 4를 참조하면, 상기 MCU(205)는 다양한 신호 라인들을 통해 상기 버퍼 메모리(125)내의 제1 및 제2 SDRAM들(305 및 310)과 결합된다. 이들 신호 라인들은 다중화된 양방향 어드레스/데이터 버스(315), 칩 선택 라인(320), 및 위에서 설명한 RAS(185) 및 CAS(190)을 포함한다. 상기 어드레스/데이터 버스(315)는 각각이 하나 이상의 라인들의 3 그룹들로 분할되며, 각각의 그룹은 상기 MCU(205)상의 어드레스 출력들의 3세트들중의 하나와 연결된다. 각 세트의 어드레스 출력들은 하나 이상의 개별적인 어드레스 출력들을 갖을 수 있다. 본 발명에 따르면, 신호 라인들의 제1 그룹(325)는 어드레스 출력들의 제1 세트(330)를 제2 SDRAM(310)의 칩 인에이블(180) 및 만일 있다면, 아래의 다음 SDRAM(도시하지 않음)에 결합시킨다. 도 4에 도시된 본 실시예에서, 하나의 출력(330)은 하나의 신호 라인들(325)에 의해 상기 제2 SDRAM(310)과 결합된다. 신호 라인들(335)의 제2 그룹은 X어드레스 출력들의 제2 세트(340)를 병렬로 상기 SDRAM들(305, 310)의 칼럼 디코더들(160)에 결합시킨다. 여기서, X는 상기 SDRAM들내의 칼럼들의 그룹수와 동일한 이진수에서의 디지트(digits)들의 수를 나타내는 정수이다. Y신호 라인들(345)의 제3 그룹은 Y어드레스 출력들의 제3 세트를 병렬로 상기 로우 디코더(165)에 결합시킨다. 여기서, Y는 상기 SDRAM들(305, 310)내의 로우들의 수와 동일한 이진수에서의 디지트들의 수를 나타내는 정수이다. 따라서, 상기 어드레스/데이터 버스(315)내의 총 어드레스 출력들 및 신호 라인들의 특정 수 N은 상기 버퍼 메모리(125)내의 SDRAM(305, 310)의 수와 그 용량에 의존한다.
예컨대, 위에서 설명한 바와 같이, 두 개의 16 메가비트 SDRAM들을 갖는 버퍼 메모리(125)에 대해, 상기 어드레스/데이터 버스(315)내의 신호 라인들의 수는 21이다. 이들 신호 라인들(345)중 12개는 4096 로우들중 하나를 선택하기 위한 12-디지트 이진수를 제공하기 위해 사용된다. 상기 X신호 라인들(335)의 제2 그룹내의 신호 라인들중 4개는 칼럼들의 그룹내에서 16 그룹들중 하나를 선택하기 위해 사용되며, 다른 4개의 신호 라인들은 칼럼들의 그룹내의 16 워드들중 하나를 선택하기위해 사용된다. 나머지 신호 라인(325)은 어드레스 출력(330)을 상기 제2 SDRAM(310)의 칩 인에이블(180)에 결합시키기 위해 사용된다. 이러한 어드레스 출력(330)은 상기 MCU(205)로부터의 어드레스 출력들중의 어느 하나일 수 있으며, 다중화 또는 양방향일 필요는 없다. 또한, 상기 어드레스 출력(330)은 도 4에 도시된 바와 같이, 신호 라인(325)를 통한 제2 SDRAM(310)에 직접적으로 연결되거나 또는 메모리 인터페이스(도시하지 않음)을 통해 연결될 수 있다.
본 발명에 따르면, 상기 MCU(205)는 버퍼 메모리(125)내의 다른 SDRAM들에 맵핑된 연속적인 데이터 블록들에 연속적인 논리적인 어드레스들을 제공하는 상기 물리적인 어드레스들로 상기 논리적인 어드레스들을 변환할 때, 특별한 맵핑 기구를 이용한다. 도 5는 두 개의 스택 메모리 어레이들을 갖는 본 발명에 따른 버퍼 메모리(125)의 바람직한 실시예의 도면이다. 도 5를 참조하면, 위에서 설명한 바와 같이 16 메가비트 제1 및 제2 SDRAM들(305, 310)을 갖는 버퍼 메모리(125)에 대해, 각각 16비트의 16 워드들로 구성되는 제1 단락(355; PARA 0)은 제1 SDRAM(305)상의 로우 0 및 칼럼 0내지 15에 저장된다. 상기 로우 어드레스는 증가하고 제2 단락(360; PARA 1)은 동일한 SDRAM의 로우 1 및 칼럼들 0 내지 15에 저장되며, 나머지 또한 그러하다. 상기 로우의 한계 즉, 로우 4095에 도달한 후, 4096번째 단락(365; PARA 4096)은 제1 SDRAM(305)의 로우 4095 칼럼들 0 내지 15에 저장된다. 상기 로우 어드레스는 증가되며, 다음 단락(370; PARA 4097)은 제2 SDRAM(310)의 로우 0 카럼들 0 내지 15에 저장된다. 마지막 SDRAM의 마지막 로우 예컨대, 제2 SDRAM(310)의 로우 4095에 도달될 때까지 이러한 동작은 계속된다. 이어, 상기 칼럼 어드레스는 다음 칼럼들의 그룹 즉, 칼럼들 16 내지 31까지 증가하며, 상기 로우 어드레스는 제1 SDRAM(305)의 제1 로우(로우 0)로 루프-백하여, 이전과 같이 계속된다. 이러한 방식으로, LRC-영역(300)은 데이터 어드레싱을 위해 이용가능한 논리적인 어드레스들의 많은 비간섭 블록들을 남긴채로 논리적인 어드레스들의 범위 최상 또는 끝까지 효과적으로 이동하게 된다.
상기 맵핑 기구를 이행하기 위한 예시적인 과정의 단계들을 도 6을 참조하여 설명한다. 첫번째 단계(360)에서, 상기 어레이들은 위에서 설명한 바와 같이, 로우들 및 칼럼들의 그룹들로 분할된다. 어드레싱하는 단계(365)에서, 칼럼들의 그룹의 각 로우에는 로우 어드레스 및 칼럼 어드레스를 갖는 물리적인 물리적인 어드레스가 할당된다. 이어, 단계(370)에서, 상기 데이터는 소정 크기의 블록들로 분할된다. 상기 블록들 각각은 단일 칼럼의 단일 로우에 저장될 수 있다. 단계(375)에서, 데이터 블록은 어레이내의 칼럼들의 그룹의 로우내에 저장된다. 다음의 판단 단계(380)에서, 로우 한계에 도달 즉, 마지막 어드레스된 로우가 상기 어레이의 마지막 로우에 대응하는지를 판단한다. 만일, 상기 로우 한계에 도달하지 않았다면, 상기 로우 어드레스는 단계(385)에서 증분되고, 상기 단계들(375 및 380)은 반복된다. 만일, 상기 로우 한계에 도달했다면, 단계(390)에서 어레이 한계에 도달 즉, 데이터가 모든 어레이들내의 대응하는 칼럼들의 그룹들의 모든 로우들내에 저장되었는지를 판단한다. 만일, 상기 어레이 한계에 도달하지 않았다면, 단계(395)에서 상기 과정은 다음 어레이로 진행되며, 상기 단계들(375 내지 390)은 반복된다. 만일, 상기 어레이 한계에 도달했다면, 단계(400)에서 칼럼 한계에 도달 즉, 데이터가 모든 어레이들내의 칼럼들의 모든 그룹들내에 저장되었는지를 판단한다. 만일, 상기 칼럼 한계에 다달하지 않았다면, 단계(405)에서 상기 과정은 다음의 칼럼들의 그룹으로 진행하며, 단계들(375 내지 400)은 반복된다. 만일, 상기 칼럼 한계에 도달했다면, 상기 과정은 종료된다.
위의 맵핑 기구는 하드웨어 프로토콜, 소프트웨어 프로토콜, 또는 하이브리드 하드웨어/소프트웨어 프로토콜을 포함하여 몇몇 선택적인 방법들로 구현될 수 있다. 하나의 바람직한 실시예에서, 상기 제어기는 상기 논리적인 어드레스들을 물리적인 어드레스들에 직접적으로 맵핑하기 위해 채택된 하드웨어 아키텍처를 갖으며, 그에 따라 상기 버퍼 메모리 시스템(120)의 속도 및 능률은 개선된다. 특히, 상기 MCU(205)의 상기 어드레스 출력들(330, 340, 350)은 상기 어드레스 출력들상의 논리적인 어드레스를 나타내는 이진수를 제공하여 적절한 대응하는 물리적인 어드레스를 선택하는 방식으로 상기 버퍼 메모리(125)와 결합된다. 예컨대, 이진 제로들 또는 논리 로우들을 상기 어드레스 출력들에 제공함으로써, 0의 논리적인 어드레스를 갖는 데이터는 PARA 0의 첫 번째 워드에 밉핑되며, 65,536의 논리적인 어드레스를 갖는 데이터는 65,536의 이진 등가 즉, "1111111111111111"을 어드레스 출력들에 제공함으로써 PARA 4095의 마지막 워드에 맵핑된다.
위의 직접적인 맵핑 방법을 설명하기 위해, 두 개의 16메가비트 SDRAM들을 갖는 버퍼 메모리 시스템에 필요한 연결들을 이하에서 설명한다. 16메가비트 SDRAM은 4096 로우들 및 각각이 16 칼럼들의 16 그룹들로 그룹화된 256 칼럼들의 어레이를 갖는다. 따라서, 본 발명에 따라 두 개의 16메가비트 SDRAM들을 갖는 버퍼 메모리 시스템(120)은 다음과 같이 연결된 A20부터 A0까지(이하, A<20:0>라 함) 번호가 매겨진 21의 어드레스 출력들을 갖는 MCU(205)를 요구한다. 어드레스 출력들 A<3:0>은 칼럼들의 그룹내의 16 워드들중 하나를 선택하기 위해 칼럼 디코더들(160)의 4개의 최하위 비트들(LSB) C<3:0>에 병렬로 결합된다. 어드레스 출력들 A<15:4>은 SDRAM내의 4096 로우들중 하나를 선택하기 위해, 상기 SDRAM들(305, 310)의 상기 로우 디코더들(162)의 R<11:0>에 결합된다. 상기 어드레스 출력들의 다음의 최상위 비트(MSB) A16은 제2 SDRAM(310)을 선택하기 위해 상기 제2 SDRAM(310)의 칩 인에이블(180)에 결합된다. 어드레스 출력들 A<22:19>은 칼럼들의 16 그룹들중 하나를 선택하기 위해, 상기 SDRAM들(305, 310)의 칼럼 디코더들(160)의 4개의 MSB들 C<7:4>에 결합된다.
위의 예시적인 아키텍처가 본 발명의 맵핑 기구를 어떻게 성취하는지를 설명하기 위해 도 5를 참조하여 기록 동작을 이하에서 설명한다. 제1 SDRAM(240)의 로우 0 칼럼 0를 선택하기 위해 이진 제로들 또는 논리 로우들을 모든 어드레스 출력들 A<20:0>에 제공함으로써, 0의 논리적인 어드레스를 갖는 첫 번째 단락(PARA 0)의 첫 번째 워드는 버퍼 메모리(125)에 맵핑된다. 이어, RAS(185) 및 CAS(190), 및 상기 다중화된 어드레스 출력들을 통해 상기 제1 SDRAM(305)에 기록된 16 비트 데이터를 적용함으로써, 상기 로우 및 칼럼 어드레스들은 래치된다. 칼럼 1을 선택하기 위해 어드레스 출력들 A<3:0>에 1의 이진 등가 즉, 0001을 제공함으로써, 1의 논리적인 어드레스를 갖는 다음 워드은 버퍼 메모리(125)에 맵핑된다. 칼럼 15를 선택하기 위해 15의 이진 등가 즉, 1111을 어드레스 출력들 A<3:0>에 제공함으로써15의 논리적인 어드레스를 갖는 PARA 0의 마지막 워드가 버퍼 메모리(125)에 맵핑될 때까지, 이러한 과정은 계속된다. 1에 의한 상기 논리적인 어드레스의 증분은 10000을 어드레스 출력들 A<4:0>에 제공하게 되어 제2 단락(PARA 1)의 첫 번째 워드가 선택된다. 어드레스 출력들 A<15:0>상에 이진수 "1111111111111111"를 제공함으로써, 65,536의 논리적인 어드레스를 갖는 마지막 단락(PARA 4095)내의 마지막 워드가 상기 제1 SDRAM(305)상의 칼럼 15, 로우 4095에 기록될 때까지, 이러한 과정은 계속된다. 그 다음의 연속된 논리적인 어드레스 65,537은 상기 제2 SRAM(310)상의 첫 번째 단락(PARA 4096)의 첫 번째 워드를 선택하기 위해 모두 제로인 값을 어드레스 출력들 A<15:0>에 그리고 어드레스 출력 A16에 1을 제공한다. 이어, 이진수 "11111111111111111"를 어드레스 출력들 A<16:0>상에 제공하여 논리적인 어드레스 131, 071을 갖는 마지막 단락(PARA 8091)내의 마지막 워드가 기록될 때까지, 이러한 과정은 앞에서와 같이 계속된다. 1에 의한 상기 논리적인 어드레스의 증분, 131,072의 논리적인 어드레스는 모두 제로인 값을 어드레스 출력들 A<16:0>에 그리고, 상기 제1 SDRAM(305)상의 칼럼들 16 내지 31내의 상기 첫 번째 단락(PARA 8092)의 첫 번째 워드로 상기 물리적인 어드레스를 루프-백시키는 어드레스 출력 A17상에 1을 제공한다.
선택적으로, LRC-워드들을 상기 SDRAM들(305, 310)의 상기 LRC 영역(300)내의 물리적인 어드레스들에 맵핑시키기 위해 상기 MCU(205)로의 개별적인 연결들을 갖는 부가적인 회로(도시하지 않음)를 상기 제어기(135)는 포함한다. 일반적으로, 마지막 칼럼들의 그룹을 선택하기 위해 적절한 신호를 상기 칼럼 디코더(160)의 4개의 MSB들에 인가하고, 상기 MCU(205)보부터의 적절한 어드레스 출력들을 상기 로우 디코더(165) 및 상기 칩 인에이블(180)과 결합시켜 상기 SDRAM들중 한 SDRAM상의 로우를 선택하며, 그리고 칼럼을 선택하기 위해 상기 칼럼 디코더의 4개의 LSB들에 다음의 4개의 최상위 출력들을 결합시킴으로써, 이것은 성취된다. 예컨대, 한쌍의 16메가비트 SDRAM들(305, 310)을 갖는 버퍼 메모리(125)에 대해 위에서 설명한 바와 같이, 상기 회로는 다음과 같이 연결된다. 먼저, 상기 SDRAM들(305, 310)내의 마지막 칼럼들의 그룹 즉, 칼럼들 241 내지 256을 선택하기 위해 16의 이진 등가가 칼럼 디코더들(160)의 4개의 MSB들 C<7:4>에 적용된다. 다음으로, 어드레스 출력들 A<15:4>은 상기 로우 디코더(165)에 결합되며, 어드레스 출력 A16은 LCR-워드를 발생시킨 단락의 로우와 동일한 로우에서 선택하기 위해 위에서 설명한 바와 같이, 상기 제2 SDRAM 310의 상기 칩 인에이블(180)에 결합된다. 최종적으로, 칼럼들의 그룹을 선택하기 위해 위에서 이용했었던, 어드레스 출력들 A<20:17>은 상기 LRC-워드를 저장해야할 마지막 칼럼들의 그룹내의 적절한 칼럼을 선택하기위해 칼럼 디코더들(160)의 4개의 LSB들 C<3:0>와 결합된다. 선택적으로, 이러한 패러티 맵핑은 상기 MCU(205)의 어드레스 출력들을 내부적으로 변환시키는 소프트 프로토콜을 사용하여 구성할 수 있다. 즉, 어드레스 출력들의 출력 A<3:0> 및 A<20:17>은 스위치되며, 이어 1111이 A<20:17>상에 출력된다.
본 상세한 설명의 조명하에 당업자에게는 명백한 것이겠지만, 위의 기구는 다른 크기의 SDRAM들을 갖는 버퍼 메모리 시스템들(120)에 적용할 수 있다. 예컨대, 64메가비트 SDRAM은 8192 로우들 및 각각이 16칼럼들의 16그룹들로 그룹화된256 칼럼들의 어레이를 갖는다. 따라서, 본 발명에 따라 두 개의 64메가비트 SDRAM들을 갖는 버퍼 메모리 시스템(120)은 다음과 같이 결합되어, 23 어드레스 출력들 A<22:0>을 갖는 MCU(205)를 요구한다. 어드레스 출력들 A<3:0>은 16 칼럼들의 그룹들중 하나을 선택하기 위해 칼럼 디코더들(160)의 4개의 LSB들 C<3:0>와 결합된다. 어드레스 출력들 A<22:19>은 16 그룹들의 그룹들중 하나를 선택하기 위해 칼럼 디코더들(160)의 4개의 MSB들 C<7:4>와 결합된다. 어드레스 출력들 A<17:4>은 16384 로우들중 하나를 선택하기 위해 로우 디코더들(165) R<13:0>에 결합된다. 상기 로우 어드레스가 8091보다 큰 경우, 제2 SDRAM(310)을 인에이블시키기 위해 어드레스 출력 A18은 상기 제2 SDRAM(310)의 칩 인에이블(180)에 결합된다. 유사하게, 두 개의 4메가비트 SDRAM들을 갖는 버퍼 메모리 시스템(120)은 19개의 어드레스 출력들 A<18:0>을 갖는 MCU(205)를 요구한다. 어드레스 출력들 A<18:15> 및 A<3:0>는 그룹내의 칼럼들의 그룹 및 워드를 선택하기 위해 상기 칼럼 디코더(160)에 각각 결합되며, 어드레스 출력들 A<13:4>는 1024로우들중 하나를 선택하기 위해 상기 로우 디코더들(165)에 결합된다. 어드레스 출력 A14는 로우 어드레스가 1023보다 큰 경우 상기 제2 SDRAM(310)을 인에이블시키기 위해 제2 SDRAM(310)의 칩 인에이블(180)에 결합된다.
도시하지 않은 다른 실시예에서, 상기 버퍼 메모리 시스템(120)은 부가적인 SDRAM을 포함할 수 있도록 확장될 수 있으며, 단지 MCU(205)로부터의 활용가능한 어드레스 출력들, 및 RAS(185), CAS(190) 및 어드레스/데이터 버스(315)에 병렬로 결합된 다중의 SDRAM들에 의해 부가된 적재(loading)를 유지시키는 상기 MCU의 출력 드라이버들의 능력에 의해서만 제한된다. 이러한 확장된 버퍼 메모리 시스템(120)을 위한 상기 맵핑은 하드웨어 또는 소프트웨어 프로토콜 및 어떤 다른 비일반적인 어드레스 출력을 이용하여 성취할 수 있다. 따라서, 상기 구조 및 방법은 다수의 RAM 칩들을 포함하여, 어떤 수의 메모리 장치들에도 적용할 수 있다.
본 버퍼 메모리 방법 및 시스템은 통상의 디자인들을 뛰어넘는 몇몇 이점들을 갖는다. 본 버퍼 메모리 방법 및 시스템의 이점들중 하나는 단일 SDRAM내에 그리고 다른 SDRAM들내에 저장된 연속적인 데이터 블록들에 대한 인접하는 논리적인 어드레스들로 인해, 데이터를 빠르게 액세스할 수 있게 하는 보다 큰 용량의 버퍼 메모리(125) 및 데이터 완전성을 확실하게 하기 위한 기구를 제공한다는 것이다. 더욱이, 연속된 데이터 블록들사이의 논리적인 어드레스들을 뛰어넘어야 할 필요성을 제거함으로써, 본 발명은 상기 버퍼 메모리 시스템(120)의 대역을 증가시키고 CPU(245)의 동작을 단순화하여, 명령 오버헤드를 또한 감소시킨다.
검토하는 방식으로 본 발명의 실시예들의 관점들을 지금부터 설명한다. 본 발명은 메모리 시스템(120) 및 이들의 문제점들을 해결하는 그 시스템을 동작시키는 방법에 관한 것이다. 상기 메모리 시스템(120)은 칼럼 어드레스를 갖는 칼럼들의 그룹내에 배치된 몇몇 어레이들(150), 및 로우 어드레스를 갖는 로우들을 포함한다. 상기 시스템(120)을 동작시키는 방법은 데이터 블록들에 인접하는 논리적인 어드레스들을 제공하는 방식으로 상기 어레이들(150)내에 데이터 블록들을 저장하는 것을 포함한다. 데이터 블록은 어레이(150)내의 칼럼들의 그룹의 로우에 저장된다. 다음으로, 상기 로우 어드레스는 증분되며, 로우 한계에 도달할 때까지 상기과정은 반복된다. 상기 로우 한계에 도달된 이후, 상기 어레이(150)내의 대응하는 그룹의 모든 로우들내에 데이터 블록들이 저장될 때까지 상기 과정은 다른 어레이(150)가지고 반복된다. 상기 칼럼 어드레스는 증분되며 상기 로우 어드레스는 리세된다. 그리고, 칼럼 한계에 도달할 때까지 상기 과정은 반복된다. 바람직하게는, 상기 시스템(120)을 동작시는 방법은 상기 어레이들로부터 복원된 데이터의 완전성을 점점하기 위해 각각의 데이터 블록에 대한 패러티 워드의 발생을 포함한다. 보다 바람직하게는, 상기 과정은 상기 어레이(150)내에 저장된 데이터 블록들을 위해 발생된 패러티 워드들에 대한 어레이내의 마지막 칼럼들의 그룹내의 모든 로우들의 보존을 포함하며, 그에 따라, 상기 패러티 워드들의 물리적인 어드레스들과 연관된 상기 논리적인 어드레스들이 논리적인 어드레스들 범위의 최상위의 끝으로 이동된다. 패리티 워드를 발생시키는 단계는 세로 중복 코드 워드를 발생시키기 위해 각 데이터 블록상에서 비트-방식 배타적 EXCLUSIVE-OR를 이행하는 것을 포함할 수 있다.
일 실시예에서, 본 발명은 데이터를 저장할 수 있는 몇몇 어레이들(150)을 포함하는 버퍼 메모리 시스템(120)을 갖는 디스크 드라이브(도시하지 않음)을 작동시키는 방법에 관한 것이다. 상기 어레이들(150)은 로우들 및 칼럼들의 그룹들로 나눠지며, 칼럼들의 그룹의 각 로우는 물리적인 어드레스를 갖는다. 상기 데이터는 소정크기의 블록들로 분할되며, 상기 칼럼들의 블록들 및 로우들의 물리적인 어드레스들은 논리적인 어드레스들과 연관되며, 그 결과 (ⅰ) 첫 번째 데이터 블록은 첫 번째 어레이(150)내의 칼럼들의 그룹의 마지막 로우에 저장되고, (ⅱ) 상기 첫번째 데이터 블록의 논리적인 어드레스에 인접하는 논리적인 어드레스를 갖는 두 번째 데이터 블록은 두 번째 어레이(150)내의 대응하는 칼럼들의 그룹의 첫 번째 로우에 저장된다. 선택적으로, 3번째 데이터 블록은 상기 두 번째 어레이(150)내의 대응하는 칼럼들의 그룹의 마지막 로우에 저장되고, 상기 3번째 데이터 블록의 논리적인 어드레스에 인접하는 논리적인 어드레스를 갖는 4번째 데이터 블록이 상기 첫 번째 어레이(150)의 두 번째 칼럼들의 블록의 첫 번째 로우에 저장된다.
다른 관점에서, 본 발명은 데이터를 저장할 수 있는 몇몇 어레이들(150)을 갖는 메모리 시스템(120)과 연관된다. 상기 어레이들 각각은 물리적인 어드레스들의 범위에 의해 식별되는 셀들(도시하지 않음)으로 분할된다. 제어기(135)는 논리적인 어드레스들을 물리적인 어드레스들과 연관시키고, 상기 셀들을 액세스한다. 상기 제어기(135)는 다른 어레이들내의 셀들을 위한 물리적인 어드레스들을 인접하는 논리적인 어드레스들과 연관시키기 위해 변형된다. 바람직하게는, 상기 제어기(135)는 그 각각이 이진수의 일 비트를 나타내는 몇몇 출력들(330, 340, 및 350)을 포함한다. 보다 바람직하게는, 상기 어레이들(150)은 몇몇 랜덤 액세스 메모리들(145)를 포함하며, 상기 출력들(330, 340 및 35)은 상기 어레이들(150)에 결합되며, 그에 따라 상기 출력들상에 논리적인 어드드레스를 나타내는 이진 수를 제공하여 대응하는 물리적인 어드레스를 갖는 셀을 액세스하게 된다. 일 실시예에서, 상기 어레이들(150)은 로우들 및 칼럼들의 그룹들을 갖으며, 상기 출력들(330, 340, 및 350)은 상기 랜덤 액세스 메모리들을 선택하기 위한 상기 랜덤 액세스 메모리들(145)중의 한 메모리상의 칩 인에이블(180)에 결합된 적어도 한 출력의 제1세트(330)을 포함하는 출력들의 세트들로 분할된다. 바람직하게는, 상기 출력들은 칼럼들의 그룹을 선택하기 위한 X 출력들(340)의 제2 세트 및 로우를 선택하기 위한 Y 출력들(350)의 제3 세트를 포함한다. 보다 바람직하게는, 상기제1 세트의 출력들(330)은 출력들의 제3 세트의 출력들(350)에 의해 표현된 아웃렛(outlet) 다음의 이진수의 다음 최상위 비트를 표현하는 아웃렛을 포함한다. 상기 제어기(135)는 상기 어레이(150)내에 저장된 데이터의 완전성을 검검하기 위해 그곳에 저장된 컴퓨터 프로그램 제품(도시하지 않음)을 갖는 컴퓨터 판독가능한 매체를 또한 포함할 수 있다.
또 다른 관점에서, 본 발명은 데이터 저장 장치(115) 및 상기 데이터 저장 장치를 위해 데이터를 임시로 저장할 수 있는 몇몇 어레이들(150)을 갖는 데이터 저장 시스템(130)에 연관된다. 상기 어레이들(150) 각각은 물리적인 어드레스들의 범위에 의해 식별되는 셀들로 분할된다. 제어기(135)는 논리적인 어드레스들을 상기 물리적인 어드레스들과 연관시켜 상기 셀들을 액세스한다. 상기 제어기(135)는 다른 어레이들내의 셀들을 위해 물리적인 어드레스들을 인접하는 논리적인 어드레스들과 연관시키기 위해 변형된다. 상기 데이터 저장 장치(115)는 자기 디스크 장치(도시하지 않음), 광 디스크 장치(도시하지 않음), 또는 자기-광학 디스크 디장치(도시하지 않음)일 수 있다.
다른 관점에서, 본 발명은 물리적인 어드레스들의 범위에 의해 식별되는 셀들로 분할된 몇몇 어레이들(150) 및 논리적인 어드레스들을 상기 셀들의 물리적인 어드레스들과 연관시키기 위한 수단을 갖는 데이터 저장 시스템(130)과 연관된다.여기서, 상기 수단은 다른 어레이들내의 셀들을 위한 물리적인 어드레스들을 인접한 논리적인 어드레스들과 연관시키기 위해 개조된다. 선택적으로, 상기 논리적인 어드레스들을 물리적인 어드레스들과 연관시키는 수단은 상기 셀들을 액세스하기 위해 또한 개조된다. 바람직하게는, 상기 논리적인 어드레스들을 물리적인 어드레스들과 연관시키는 수단은 제어기(135)를 포함한다. 보다 바람직하게는, 상기 제어기(135)는 그 각각이 이진수의 한 비트를 표현하는 몇몇 출력들(330, 340 및 350)을 포함하며, 상기 출력들은 상기 어레이들(150)과 결합되어, 그에 따라 상기 출력들상에 논리적인 어드레스를 나타내는 이진수를 제공하여 상기 논리적인 어드레스와 연관된 물리적인 어드레스를 갖는 셀을 액세스한다.
본 발명의 다양한 실시예들의 다양한 특징들 및 이점들을 본 발명의 다양한 실시예들의 구조 및 기능의 상세한 설명과 함께 제시하였지만, 본 공개는 단지 설명적이며, 세부적으로, 특히 본 발명의 원리들내의 부분들의 구조 및 배치 문제에 있어 동봉된 청구항들을 표현하는 용어들의 넓고 일반적인 의미에 의해 지적되는 최대 넓이까지 변형들이 있을 수 있다라는 이해해야 할 것이다. 예컨대, 여기서 설명한 바람직한 실시예은 대량 저장 장치를 위한 버퍼 메모리 시스템에 연관되지만, 본 발명의 지적들이 본 발명의 범위 및 정신으로부터 벗어나는 것없이 컴퓨터를 프린터, 모뎀, 네트워크 아답터 또는 비디오 인터페이스와 같은 다른 주변 장치들과 결합하기 위해 적용될 수 있다라는 것을 당업자라면 인정할 것이다.

Claims (20)

  1. 연속적인 논리 어드레스들을 갖는 데이터 블록을 로우 어드레스를 갖는 로우들 및 칼럼 어드레스를 갖는 칼럼 그룹으로 배열된 다수의 어레이들에 저장하는 방법에 있어서,
    (a) 데이터 블록을 어레이의 칼럼 그룹의 로우에 저장하는 단계;
    (b) 상기 로우 어드레스를 증가시키고, 상기 로우 어드레스가 로우 한계에 도달할 때 까지 단계 (a)를 반복하는 단계;
    (c) 다음 어레이로 전진하고 데이터 블록이 상기 다수의 어레이들에 있는 대응하는 칼럼 그룹의 로우에 저장될 때 까지 단계 (a) 및 (b)를 반복하는 단계;
    (d) 상기 칼럼 어드레스를 증가시켜 상기 로우 어드레스를 재설정하는 단계; 및
    (e) 상기 칼럼 어드레스가 칼럼 한계에 도달할 때 까지 단계 (a), (b), 및 (c)를 반복하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1 항에 있어서, 상기 다수의 어레이들로부터 결과로서 복구된 데이터의 완전성을 검사하기 위하여 각 데이터 블록용 패리티 워드를 발생하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  3. 제1 항에 있어서, 상기 패리티 워드가 논리 어드레스의 범위 끝에 있는 논리어드레스들을 갖도록 최종 칼럼 그룹에 있는 모든 로우를 패리티 워드용 어레이에 저장된 데이터 블록용으로 발생된 상기 패리티 워드용 어레이에 비축하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  4. 데이터를 저장할 수 있는 다수의 어레이를 갖는 버퍼 메모리 시스템을 포함하는 디스크 드라이브를 동작시키는 방법에 있어서,
    (a) 상기 다수의 어레이를 로우들 및 칼럼 그룹들로 분리하는 단계;
    (b) 데이터를 각각 칼럼 그룹의 로우에 저장되는 소정 크기의 블록들로 분리하는 단계;
    (c) (i) 제1 데이터 블록이 제1 어레이의 칼럼 그룹의 최종 로우에 저장되도록 하고, (ii) 상기 제1 데이터 블록의 논리 어드레스에 연속하는 논리 어드레스를 갖는 제2 데이터 블록이 제2 어레이의 대응 칼럼 그룹의 제1 로우에 저장되도록 상기 로우들 및 칼럼 그룹들의 물리적인 어드레스를 논리 어드레스와 연관시키는 단계를 포함하고, 상기 칼럼 그룹의 각 로우는 물리적인 어드레스를 포함하는 것을 특징으로 하는 방법.
  5. 제4 항에 있어서, 단계 (c)는
    (c)(iii) 제3 데이터 블록을 상기 제2 어레이의 상기 대응 칼럼 그룹의 최종 로우에 저장하는 단계; 및
    (c)(iv) 상기 제3 데이터 블록의 논리 어드레스에 연속하는 논리 어드레스를갖는 제4 데이터 블록을 제1 어레이의 제2 칼럼 그룹의 제1 로우에 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 제4 항에 있어서, 각 데이터 블록용 패리티 워드를 발생시키는 단계를 더 포함하는 것을 특징으로 하는 방법.
  7. 제6 항에 있어서, 상기 패리티 워드들이 논리 어드레스의 범위 상부 끝에 있는 논리 어드레스들과 결합된 물리적인 어드레스들을 가지도록 최종 칼럼 그룹에 있는 모든 로우를 패리티 워드용 어레이에 저장된 데이터 블록용으로 발생된 상기 패리티 워드용 어레이에 비축하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  8. (a) 데이터를 저장하고, 셀들로 분리되고 상기 셀들을 식별하기 위한 물리적인 어드레스들의 범위를 갖는 다수의 어레이들; 및
    (b) 논리 어드레스들을 상기 물리적인 어드레스들과 연관시키고 상기 셀들에 액세스하고, 여러 가지의 어레이들에 있는 셀들용 물리적인 어드레스들을 연속적인 논리 어드레스들과 연관시키는 제어기를 포함하는 것을 특징으로 하는 메모리 시스템.
  9. 제8 항에 있어서, 상기 제어기는 각각 이진수의 일 비트를 나타내는 다수의 출력들을 포함하고, 상기 다수의 출력들에서의 논리 어드레스를 나타내는 이진수를제공하고 상기 논리 어드레스에 연관된 상기 물리적인 어드레스를 갖는 상기 셀에 액세스하여 상기 출력들이 상기 다수의 어레이들에 연결되는 것을 특징으로 하는 메모리 시스템.
  10. 제9 항에 있어서, 상기 다수의 어레이들은 다수의 램들을 포함하고, 상기 다수의 출력들중의 적어도 하나는 상기 램들 중의 하나에서 인에이블하는 칩에 연결되는 것을 특징으로 하는 메모리 시스템.
  11. 제9 항에 있어서, 상기 어레이들은 로우들 및 칼럼 그룹들을 포함하고, 상기 다수의 출력들은 상기 다수의 어레이들 중 하나를 선택하기 위한 제1의 적어도 하나의 출력 세트, 칼럼 그룹을 선택하기 위한 제2의 X 출력 세트, 및 로우를 선택하기 위한 제3의 Y 출력 세트를 갖는 출력 세트들로 분리되는 것을 특징으로 하는 메모리 시스템.
  12. 제11 항에 있어서, 상기 제1 출력 세트는 상기 제3 출력 세트에 의해 나타낸 아웃트렛 뒤에 상기 이진수의 다음 최상위 비트를 나타내는 아웃트렛을 포함하는 것을 특징으로 하는 메모리 시스템.
  13. 제8 항에 있어서, 상기 제어기는 상기 여러 가지의 어레이들에 저장된 데이터의 완전성을 검사하기 위하여 그 내부에 저장된 컴퓨터 프로그램 생성물을 갖는컴퓨터에 의해 판독가능한 매체를 포함하는 것을 특징으로 하는 메모리 시스템.
  14. (a) 데이터를 저장하는 데이터 저장 장치;
    (b) 상기 데이터 저장 장치용 데이터를 일시적으로 저장하고, 셀들로 분리되고 상기 셀들을 식별하기 위한 물리적인 어드레스들의 범위를 갖는 다수의 어레이들; 및
    (c) 논리 어드레스들을 상기 물리적인 어드레스들과 연관시키고 상기 셀들에 액세스하고, 여러 가지의 어레이들에 있는 셀들용 물리적인 어드레스들을 연속적인 논리 어드레스들과 연관시키는 제어기를 포함하는 것을 특징으로 하는 메모리 시스템.
  15. 제14 항에 있어서, 상기 제어기는 각각 이진수의 일 비트를 나타내는 다수의 출력들을 포함하고, 상기 다수의 출력들에서의 논리 어드레스를 나타내는 이진수를 제공하고 상기 논리 어드레스에 연관된 상기 물리적인 어드레스를 갖는 상기 셀에 액세스함으로써 상기 출력들이 상기 다수의 어레이들에 연결되는 것을 특징으로 하는 데이터 저장 시스템.
  16. 제15 항에 있어서, 상기 다수의 어레이들은 다수의 램들을 포함하고, 상기 다수의 출력들 중의 적어도 하나는 상기 램들의 하나에서 칩 인에이블에 연결되는 것을 특징으로 하는 데이터 저장 시스템.
  17. 제14 항에 있어서, 상기 데이터 저장 장치는 자기 디스크 드라이브들, 광학 디스크 드라이브들, 및 자기 광학 디스크 드라이브들로 구성된 그룹으로부터 선택되는 것을 특징으로 하는 데이터 저장 시스템.
  18. (a) 논리 어드레스들을 갖는 데이터 블록들을 저장하고, 셀들로 분리되고 상기 셀들을 식별하기 위한 물리적인 어드레스들의 범위를 갖는 다수의 어레이들; 및
    (b) 논리 어드레스들을 상기 어레이들의 물리적인 어드레스들과 연관시키고 상기 셀들에 액세스하고, 여러 가지의 어레이들에 있는 셀들용 물리적인 어드레스들을 연속적인 논리 어드레스들과 연관시키는 수단을 포함하는 것을 특징으로 하는 메모리 시스템.
  19. 제18 항에 있어서, 상기 논리 어드레스들을 상기 어레이들의 물리적인 어드레스들과 연관시키는 수단은 제어기를 포함하는 것을 특징으로 하는 메모리 시스템.
  20. 제19 항에 있어서, 상기 제어기는 각각 이진수의 일 비트를 나타내는 다수의 출력들을 포함하고, 상기 다수의 출력들에서의 논리 어드레스를 나타내는 이진수를 제공하고 상기 논리 어드레스에 연관된 상기 물리적인 어드레스를 갖는 상기 셀에 액세스하여 상기 출력들이 상기 다수의 어레이들에 연결되는 것을 특징으로 하는메모리 시스템.
KR10-2001-7000908A 1998-07-21 1999-07-20 개선된 메모리 시스템 장치 및 방법 KR100385370B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US9374198P 1998-07-21 1998-07-21
US60/093,741 1998-07-21

Publications (2)

Publication Number Publication Date
KR20010093642A true KR20010093642A (ko) 2001-10-29
KR100385370B1 KR100385370B1 (ko) 2003-05-27

Family

ID=22240449

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-7000908A KR100385370B1 (ko) 1998-07-21 1999-07-20 개선된 메모리 시스템 장치 및 방법

Country Status (4)

Country Link
US (1) US6125072A (ko)
KR (1) KR100385370B1 (ko)
GB (1) GB2368415B (ko)
WO (1) WO2001006371A1 (ko)

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US8686549B2 (en) * 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
US6618390B1 (en) * 1999-05-21 2003-09-09 Advanced Micro Devices, Inc. Method and apparatus for maintaining randomly accessible free buffer information for a network switch
JP2003505753A (ja) 1999-06-10 2003-02-12 ペーアーツェーテー インフォルマツィオーンステヒノロギー ゲゼルシャフト ミット ベシュレンクテル ハフツング セル構造におけるシーケンス分割方法
ATE476700T1 (de) 2000-06-13 2010-08-15 Richter Thomas Pipeline ct-protokolle und -kommunikation
US6785780B1 (en) * 2000-08-31 2004-08-31 Micron Technology, Inc. Distributed processor memory module and method
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) * 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
WO2003060747A2 (de) 2002-01-19 2003-07-24 Pact Xpp Technologies Ag Reconfigurierbarer prozessor
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US20110161977A1 (en) * 2002-03-21 2011-06-30 Martin Vorbach Method and device for data processing
WO2004021176A2 (de) 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
JP4388895B2 (ja) 2002-09-06 2009-12-24 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト リコンフィギュアラブルなシーケンサ構造
US8060774B2 (en) 2005-06-24 2011-11-15 Google Inc. Memory systems and memory modules
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
US8359187B2 (en) 2005-06-24 2013-01-22 Google Inc. Simulating a different number of memory circuit devices
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
US8244971B2 (en) 2006-07-31 2012-08-14 Google Inc. Memory circuit system and method
US9542352B2 (en) 2006-02-09 2017-01-10 Google Inc. System and method for reducing command scheduling constraints of memory circuits
US7609567B2 (en) 2005-06-24 2009-10-27 Metaram, Inc. System and method for simulating an aspect of a memory circuit
US8055833B2 (en) 2006-10-05 2011-11-08 Google Inc. System and method for increasing capacity, performance, and flexibility of flash storage
US10013371B2 (en) 2005-06-24 2018-07-03 Google Llc Configurable memory circuit system and method
US8397013B1 (en) 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
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
US8335894B1 (en) 2008-07-25 2012-12-18 Google Inc. Configurable memory system with interface circuit
US8111566B1 (en) 2007-11-16 2012-02-07 Google, Inc. Optimal channel design for memory devices for providing a high-speed memory interface
US8386722B1 (en) 2008-06-23 2013-02-26 Google Inc. Stacked DIMM memory interface
US8081474B1 (en) 2007-12-18 2011-12-20 Google Inc. Embossed heat spreader
US9171585B2 (en) 2005-06-24 2015-10-27 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
KR101303518B1 (ko) * 2005-09-02 2013-09-03 구글 인코포레이티드 Dram 적층 방법 및 장치
US20070165457A1 (en) * 2005-09-30 2007-07-19 Jin-Ki Kim Nonvolatile memory system
US7652922B2 (en) 2005-09-30 2010-01-26 Mosaid Technologies Incorporated Multiple independent serial link memory
EP1932158A4 (en) 2005-09-30 2008-10-15 Mosaid Technologies Inc MEMORY WITH OUTPUT CONTROL
WO2007082730A1 (de) 2006-01-18 2007-07-26 Pact Xpp Technologies Ag Hardwaredefinitionsverfahren
US9632929B2 (en) 2006-02-09 2017-04-25 Google Inc. Translating an address associated with a command communicated between a system and memory circuits
KR100764052B1 (ko) * 2006-08-03 2007-10-08 삼성전자주식회사 유동적 어드레스 바운더리를 갖는 플래시 메모리 장치 및그것의 프로그램 방법
WO2008070191A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a reconfigurable baseboard management controller
WO2009062496A1 (de) * 2007-11-17 2009-05-22 Pact Xpp Technologies Ag Rekonfiguri erbare fliesskomma- und bit- ebenen datenverarbeitungseinheit
US20110173596A1 (en) * 2007-11-28 2011-07-14 Martin Vorbach Method for facilitating compilation of high-level code for varying architectures
WO2009071329A1 (en) * 2007-12-07 2009-06-11 Pact Xpp Technologies Ag Using function calls as compiler directives
US8261158B2 (en) 2009-03-13 2012-09-04 Fusion-Io, Inc. Apparatus, system, and method for using multi-level cell solid-state storage as single level cell solid-state storage
US8266503B2 (en) 2009-03-13 2012-09-11 Fusion-Io Apparatus, system, and method for using multi-level cell storage in a single-level cell mode
WO2010144624A1 (en) 2009-06-09 2010-12-16 Google Inc. Programming of dimm termination resistance values
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
WO2011031899A2 (en) 2009-09-09 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for power reduction in a storage device
US8854882B2 (en) 2010-01-27 2014-10-07 Intelligent Intellectual Property Holdings 2 Llc Configuring storage cells
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
US9125068B2 (en) 2010-06-04 2015-09-01 Ixia Methods, systems, and computer readable media for simulating realistic movement of user equipment in a long term evolution (LTE) network
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
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
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
US9154979B2 (en) 2011-12-14 2015-10-06 Ixia Scalable architecture for long term evolution (LTE) multiple user equipment (multi-UE) simulation
US9204325B2 (en) 2011-12-20 2015-12-01 Ixia Methods, systems, and computer readable media for reducing the impact of false downlink control information (DCI) detection in long term evolution (LTE) physical downlink control channel (PDCCH) data
US9071995B2 (en) 2012-01-17 2015-06-30 Ixia Methods, systems, and computer readable media for long term evolution (LTE) uplink data processing
US8908535B2 (en) 2012-02-10 2014-12-09 Ixia Methods, traffic simulators, and computer readable media for validating long term evolution (LTE) code blocks and transport blocks
US8724498B2 (en) 2012-02-14 2014-05-13 Ixia Methods, systems, and computer readable media for performing long term evolution (LTE) channel delineation
US8892829B2 (en) * 2012-02-29 2014-11-18 Ixia Methods, systems, and computer readable media for integrated sub-block interleaving and rate matching
US9131000B2 (en) 2012-04-13 2015-09-08 Ixia Methods, systems, and computer readable media for heuristics-based adaptive protocol parsing
US9198065B2 (en) 2013-03-15 2015-11-24 Ixia Methods, systems, and computer readable media for utilizing adaptive symbol processing in a multiple user equipment (multi-UE) simulator
US10009438B2 (en) 2015-05-20 2018-06-26 Sandisk Technologies Llc Transaction log acceleration
US10354717B1 (en) * 2018-05-10 2019-07-16 Micron Technology, Inc. Reduced shifter memory system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3840863A (en) * 1973-10-23 1974-10-08 Ibm Dynamic storage hierarchy system
EP0257987B1 (en) * 1986-08-22 1991-11-06 Fujitsu Limited Semiconductor memory device
US5361339A (en) * 1992-05-04 1994-11-01 Xerox Corporation Circuit for fast page mode addressing of a RAM with multiplexed row and column address lines
US5561777A (en) * 1993-08-30 1996-10-01 Xerox Corporation Process for sequentially reading a page from an image memory in either of two directions
US5924111A (en) * 1995-10-17 1999-07-13 Huang; Chu-Kai Method and system for interleaving data in multiple memory bank partitions
US5761694A (en) * 1995-11-30 1998-06-02 Cirrus Logic, Inc. Multi-bank memory system and method having addresses switched between the row and column decoders in different banks

Also Published As

Publication number Publication date
US6125072A (en) 2000-09-26
KR100385370B1 (ko) 2003-05-27
GB2368415A (en) 2002-05-01
WO2001006371A8 (en) 2001-09-13
GB2368415B (en) 2002-10-30
GB0100786D0 (en) 2001-02-21
WO2001006371A1 (en) 2001-01-25

Similar Documents

Publication Publication Date Title
KR100385370B1 (ko) 개선된 메모리 시스템 장치 및 방법
US5822251A (en) Expandable flash-memory mass-storage using shared buddy lines and intermediate flash-bus between device-specific buffers and flash-intelligent DMA controllers
US6260127B1 (en) Method and apparatus for supporting heterogeneous memory in computer systems
US5864568A (en) Semiconductor memory device for mass storage block access applications
US5394541A (en) Programmable memory timing method and apparatus for programmably generating generic and then type specific memory timing signals
US8681552B2 (en) System and method for accessing and storing interleaved data
JP4317166B2 (ja) データを転送するインタフェースを有する光記憶システム
JPH11265315A (ja) 様々なdramバンクサイズと複数のインターリービング機構とをサポートする高速でコンパクトなアドレスビット経路指定機構
EP1415304B1 (en) Memory device having different burst order addressing for read and write operations
KR20040106303A (ko) 프리페치 길이보다 짧은 버스트 길이를 갖는 메모리 시스템
US5280601A (en) Buffer memory control system for a magnetic disc controller
US11449441B2 (en) Multi-ported nonvolatile memory device with bank allocation and related systems and methods
US8468433B2 (en) Optimizing the size of memory devices used for error correction code storage
US4513371A (en) Computer interface apparatus using split-cycle lookahead addressing for faster access to paged memory
JPH1198462A (ja) データ再生装置
US11842266B2 (en) Processing-in-memory (PIM) device, controller for controlling the PIM device, and PIM system including the PIM device and the controller
US6021482A (en) Extended page mode with a skipped logical addressing for an embedded longitudinal redundancy check scheme
US11513976B2 (en) Advanced CE encoding for bus multiplexer grid for SSD
US6148388A (en) Extended page mode with memory address translation using a linear shift register
US6433786B1 (en) Memory architecture for video graphics environment
JP3561502B6 (ja) 改良されたメモリシステムおよび方法
JP3561502B2 (ja) 改良されたメモリシステムおよび方法
KR20190035392A (ko) 데이터 다중 기록을 수행하는 메모리 장치, 메모리 장치의 동작방법 및 메모리 컨트롤러의 동작방법
JPH11126475A (ja) 半導体メモリ及びそのデータ割付方法

Legal Events

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

Payment date: 20130425

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20140425

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee