KR20040105805A - 파괴 독출 메모리 캐쉬로 버퍼되는 파괴 독출 ram 시스템 - Google Patents

파괴 독출 메모리 캐쉬로 버퍼되는 파괴 독출 ram 시스템 Download PDF

Info

Publication number
KR20040105805A
KR20040105805A KR10-2004-7015299A KR20047015299A KR20040105805A KR 20040105805 A KR20040105805 A KR 20040105805A KR 20047015299 A KR20047015299 A KR 20047015299A KR 20040105805 A KR20040105805 A KR 20040105805A
Authority
KR
South Korea
Prior art keywords
data
cache
bank
dram
buffer
Prior art date
Application number
KR10-2004-7015299A
Other languages
English (en)
Other versions
KR100772998B1 (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 KR20040105805A publication Critical patent/KR20040105805A/ko
Application granted granted Critical
Publication of KR100772998B1 publication Critical patent/KR100772998B1/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/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4093Input/output [I/O] data interface arrangements, e.g. data buffers
    • 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/1039Read-write modes for single port memories, i.e. having either a random port or a serial port using pipelining techniques, i.e. using latches between functional memory parts, e.g. row/column decoders, I/O buffers, sense amplifiers
    • 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/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/106Data output latches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/304In main memory subsystem
    • G06F2212/3042In main memory subsystem being part of a memory device, e.g. cache DRAM
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2245Memory devices with an internal cache buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Dram (AREA)

Abstract

메모리 기억 장치 시스템(10)이 개시된다. 전형적인 실시예로, 메모리 기억 장치 시스템은 그들과 통신하는 다수의 메모리 기억 장치 뱅크(12) 및 캐쉬(14)를 포함한다. 다수의 메모리 기억 장치 뱅크(12) 및 캐쉬(14) 모두는 파괴 독출 메모리 기억 장치 소자를 더 포함한다.

Description

파괴 독출 메모리 캐쉬로 버퍼되는 파괴 독출 RAM 시스템{DESTRUCTIVE-READ RANDOM ACCESS MEMORY SYSTEM BUFFERED WITH DESTRUCTIVE-READ MEMORY CACHE}
서브마이크론 CMOS 기술의 진화로 인하여 마이크로프로세서 속도가 상당히 향상되었다. 마이크로프로세서 속도는 매 3년마다 대략 4배씩 증가하여 현재 1 GHz를 초과하였다. 마이크로프로세서에 있어서의 이러한 진보와 함께, 더 진보된 소프트웨어 및 멀티미디어 애플리케이션들이 등장하였으며, 이들은 대규모의 메모리를 요구한다. 따라서, 고밀도 및 고성능의 대규모 DRAM(Dynamic Random Access Memory)에 대한 요구가 증가하고 있다.
DRAM 아키텍쳐는 수년에 걸쳐 진화하였고, 이는 대규모 메모리 용량을 필요로 하는 시스템 요구조건에 의한 것이다. 그러나 tRAC(random access time) 및 tRC(random access cycle time)으로 특징지워지는 DRAM의 속도는 유사한 형태로 향상되지 않았다. 결과적으로 CPU의 클록 속도는 시간에 걸쳐 향상되므로, DRAM 및 CPU간의 속도 차이가 넓어지고 있다.
DRAM 어레이의 tRC(random access cycle time)은 일반적으로 어레이 시상수에 의해 결정되며, 이는 모든 랜덤 액세스 동작들을 완료하는 시간의 양을 표현한다. 이러한 동작들에는 워드라인 활성화, 비트라인 상의 신호 전개, 비트라인 감지, 신호 재기록(signal write back), 워드라인 비활성화 및 비트라인 프리차징(bitline precharging)이 포함된다. 종래 DRAM 아키텍쳐에서 이러한 동작들은 순차적으로 수행되기 때문에, DRAM의 전송 속도(또는 대역폭)을 증가시키는 것이 문제이다.
일정한 애플리케이션에 대해 DRAM 시스템의 행 액세스 싸이클 시간(row access cycle time)을 향상시키는 한가지 방법은 DRAM 셀에 저장된 데이터의 파괴 독출을 실행한 후, 동일한 로컬 메모리 어레이의 감지 증폭기에 연결되는 버퍼 셀로 파괴 독출 데이터를 임시적으로 저장하는 것이다. (예를 들어, Wakayama 등에 대한 미국 특허 제6,205,076호 및 제6,333,883호를 참조한다. ) 이러한 해결 방법에 있어서, 공통 감지 증폭기 블록에 연결되는 로컬 메모리의 상이한 워드라인들은 많은 회수 동안 순차적으로 파괴 독출될 수 있으며, 이러한 회수는 감지 증폭기당 버퍼 셀의 수에 1을 더한 값으로 설정된다. 그러나, 버퍼 셀 및 각 로컬 DRAM 어레이에 대한 관련된 제어 논리를 위해 대규모 영역이 필요하기 때문에, 이러한 해결 방법으로 실제로 구현될 수 있는 버퍼 셀들의 수는 작다. 또한, 버퍼 셀들의 수가 원래 셀 어레이들의 워드라인의 수보다 작은 한, 이러한 시스템은 일반적인 애플리케이션에서 요구되는 랜덤 액세스 싸이클 시간 보다는, 제한된 회수 동안의 데이터 액세스 경우에 대한 액세스 싸이클 시간을 향상시킨다.
DRAM 시스템의 랜덤 액세스 싸이클 시간을 향상시키는 더 실용적인 방법은 DRAM 셀에 저장된 데이터의 파괴 독출을 실행한 후, 주메모리 어레이 밖의 SRAM 기반 캐쉬로 파괴 독출 데이터를 임시적으로 저장하는 것이다. SRAM 기반 캐쉬는 하나, 단일 뱅크 DRAM 어레이와 적어도 같은 수의 워드라인을 갖는다. (본 명세서에서 설명되는 "뱅크"라는 용어는 동일한 감지 증폭기들을 공유하는 메모리 셀들의 어레이를 언급한다. ) 이러한 기술은 미국 특허출원 제09/843,504호(발명의 명칭, "A Destructive Read Architecture for Dynamic Random Access Memories", 2001년 4월 26일 출원, 본 출원의 양수인에게 공동으로 양도됨)에서 설명된다. 이러한 기술에서는, 나중에 적절한 DRAM 메모리 위치에 데이터를 복구하기 위해 지연된 재기록 동작(delayed write back operation)이 스케쥴된다. 지연된 재기록 동작의 스케줄링은 SRAM 기반 캐쉬 내 공간의 이용 가능성에 의존한다. 이러한 해결 방법이 랜덤 액세스 싸이클 시간을 감소시키는데 효과적이기 때문에, SRAM 기반 캐쉬의 사용으로 인하여 원하지 않는 양의 칩 영역을 점유할 수 있을 뿐만 아니라, DRAM 및 캐쉬간 데이터를 전송하는데 있어 더 복잡한 상호 연결 와이어링을 초래할 수도 있다. 그러므로, 칩 영역이 특별히 관심 있는 상황에서, SRAM 기반 캐쉬를 이용함으로써 상대적으로 큰 장치 영역을 점유하지 않고 랜덤 액세스 싸이클 시간을 감소시키는 것이 바람직하다.
본 발명은 일반적으로 집적 회로 메모리 장치들에 관한 것으로, 보다 구체적으로는 파괴 독출 메모리에 의해 캐쉬되는 파괴 독출 메모리의 RAM 시스템에 관한 것이다.
도 1은 본 발명의 실시예에 따라, 파괴 독출 DRAM(dynamic access memory) 시스템의 개략적인 블록 다이어그램.
도 2는 DRAM 시스템에 포함된 캐쉬 태그의 구조를 예시하는 테이블.
도 3은 DRAM 시스템에 포함된 버퍼 태그의 구조를 예시하는 테이블.
도 4(a)는 DRAM 시스템에 포함된 버퍼 구조의 일실시예를 예시하는 개략적인 다이어그램.
도 4(b)는 도 4(a)에 도시된 데이터 라인에 대한 전형적인 접속을 예시하는 개략적인 다이어그램.
도 5(a)는 DRAM 시스템 구성 하에서 허용되는 가능한 데이터 전송 동작들의예들을 예시하는 테이블.
도 5(b)는 도 4에 도시되는 버퍼 구조의 동작을 예시하는 타이밍 다이어그램.
도 5(c)는 도 4에 도시되는 버퍼 구조의 대안의 실시예의 개략적인 다이어그램.
도 5(d)는 도 5(c)의 버퍼 구조와 관련되는 파이프라인 체계를 예시하는 테이블.
도 6(a)-6(f)는 DRAM 시스템과 함께 이용되는 강형(strong form) 알고리즘 항에서 다양한 데이터 전송 동작들을 표현하는 상태 다이어그램.
도 7은 강형 알고리즘에서 이용되는 초기 과정을 예시하는 상태 다이어그램.
도 8은 강형 알고리즘에서 임의적 데이터 전송 동작을 예시하는 상태 다이어그램.
도 9는 강형 알고리즘 항에서 허용 가능한 상태들을 예시하는 상태 테이블.
도 10(a)-10(d)은 DRAM 시스템과 함께 대안으로 이용될 수 있는 일반형 알고리즘 항에서 허용 가능한 상태들을 예시하는 상태 테이블.
도 11(a)-11(f)는 DRAM 시스템과 함께 이용되는 일반형 알고리즘 항에서 다양한 데이터 전송 동작들을 표현하는 상태 다이어그램.
종래 기술의 상술한 것 및 다른 결점 및 결함들은 메모리 기억 장치 시스템에 의해 극복되거나 완화된다. 전형적인 실시예에서, 메모리 기억 장치 시스템은다수의 메모리 기억 장치 뱅크 및 이들과 통신하는 캐쉬를 포함한다. 다수의 메모리 기억 장치 뱅크 및 캐쉬는 또한 파괴 독출 메모리 기억 장치 소자들을 포함한다.
바람직한 실시예에서, 파괴 독출 메모리 기억 장치 소자들은 DRAM(dynamic random access memory) 기억 장치 셀들이다. 또한, 시스템은 다수의 메모리 기억 장치 뱅크 및 캐쉬와 통신하는 라인 버퍼 구조를 더 포함한다. 버퍼 태그는 라인 버퍼 구조와 관련되고, 캐쉬 태그는 캐쉬와 관련된다. 라인 버퍼 구조는 한 쌍의 레지스터 어레이를 포함하고, 이들 각각은 DRAM 어레이에서처럼 워드라인 데이터의 완전한 페이지를 저장할 수 있다. 다시 말하면, 라인 버퍼 구조는 데이터 I/O당 두개의 레지스터를 포함한다.
다수의 메모리 기억 장치 뱅크는 DRAM 기억 장치 뱅크의 수(n)를 더 포함하며, 각 DRAM 기억 장치 뱅크는 관련된 워드라인의 수(m)를 갖는다. 캐쉬는 한 쌍의 DRAM 캐쉬 뱅크를 더 포함하며, DRAM 캐쉬 각각은 관련된 워드라인의 동일한 수(m)를 갖는다. 또한, 각 버퍼는 내부에 데이터 페이지를 저장할 수 있고, 데이터 페이지는 선택된 DRAM 기억 장치 뱅크의 워드라인 또는 선택된 DRAM 캐쉬 뱅크의 선택된 워드라인으로부터의 데이터 비트 파괴 독출을 포함한다. DRAM 기억 장치 뱅크 중 하나에 원래 포함된 데이터는 DRAM 캐쉬 뱅크 중 하나에 저장될 수 있다. DRAM 기억 장치 뱅크와 원래 관련되는 한 쌍의 DRAM 캐쉬 뱅크에 포함된 임의의 데이터는 직접 맵핑 체계(direct mapping scheme)를 통해 그 내부에 저장되며, DRAM 기억 장치 뱅크 중 하나 내에 주어진 워드라인 어드레스와 관련된 데이터는 DRAM캐쉬 뱅크 중 하나 내의 그 워드라인 어드레스 내에 저장된다.
다른 측면으로, DRAM(dynamic random access memory) 시스템 내의 데이터의 이동을 제어하는 방법은 DRAM 기억 장치 뱅크의 수(n), 라인 버퍼 구조 및 캐쉬를 갖는다. 전형적인 실시예에서, 그 방법은 기억 장치 뱅크 내에 존재하는 유효한 데이터에 대한 허용 가능한 상태들의 집합, 버퍼 구조, 및 캐쉬를 정의하는 것을 포함한다. DRAM 시스템은 DRAM 기억 장치 뱅크 내에 저장된 데이터에 대한 제1 랜덤 액세스 요청 이전에 초기화되며, 초기화는 허용 가능한 상태들의 정의된 집합에 따른다. 데이터에 대한 제1 랜덤 액세스 요청 이후 , 후속 데이터에 대한 임의의 차후 랜덤 액세스 요청 이후, 요청된 데이터는 버퍼 구조에서 이용 가능하게 되고, 허용 가능한 상태들의 집합은 유지된다.
본 명세서에는 파괴 독출 메모리(destructive read memory)에 의해 또한 캐쉬되는 파괴 독출 메모리에 기초한 RAM(random access memory) 시스템이 개시된다.파괴 독출 메모리는 독출 동작이 수행된 후에 그 데이터를 잃는 메모리 구조를 설명하고, 따라서, 이후의 재기록 동작(write-back operation)이 수행되어 메모리 셀에 데이터를 반환한다. DRAM 셀 내의 데이터가 DRAM으로의 즉각적인 재기록 없이 독출되는 경우, 그 데이터는 이후 더 이상 그 셀에 상주하지 않을 것이다. 상술한 바와 같이, 랜덤 액세스 싸이클 시간을 향상시키는 한가지 방법은 SRAM 데이터 캐쉬를 이용하여 지연된 재기록의 스케줄링과 결합되어 파괴 독출 모드에서 메모리 어레이를 동작시키는 것이었다. 그러나 또한 전술한 바와 같이 종래의 SRAM 장치들은 더 많은 장치 영역을 점유하고, 단일 액세스 트랜지스터 및 기억 장치 커패시터를 갖는 DRAM 셀과 대비할 때, 보통 셀당 네개 이상의 트랜지스터를 포함한다. 따라서, 본 발명의 실시예는 파괴 독출 DRAM 뱅크가 캐쉬와 동일하게 기능하도록 함으로써 이하에서 논의될 다른 이점들 중에서 장치 영역을 절약할 수 있다.
본 실시예에서 간략하게 진술되는, 다수의 DRAM 뱅크로부터 독출됨으로써 파괴되는 데이터는, 파괴 독출 모드에서 또한 동작되는 이중 뱅크 DRAM 데이터 캐쉬에 의해 이제 캐쉬된다(즉, 여기에 기록된다). DRAM 뱅크 및 이중 뱅크 캐쉬 외에도 한 쌍의 레지스터 라인 버퍼들이 포함되어 있고, 각 레지스터 라인 버퍼는 데이터의 단일 페이지 저장용이다. 캐쉬 태그는 캐쉬의 각 워드라인을 위해 뱅크 정보를 저장할 뿐만 아니라, 이중 뱅크 캐쉬의 특정 뱅크가, 존재하는 유효한 데이터를 갖는지를 나타내기 위해 표시한다. 또한, 각 버퍼에 대해, 데이터와 관련되는 뱅크 및 행 정보 뿐만 아니라 유효한 데이터가 그 내부에 존재하는지를 나타내는 플래그 를 포함하는 버퍼 태그가 있다. 다른 플래그는 두개의 버퍼들 중 어느 하나가 이전의 싸이클로부터 임의적으로 요청된 데이터를 포함할 수 있는지를 표시한다.
"허용 가능한 상태들의 규칙(rules of allowable states)"의 개념에 기초하여 더 상술되는 바와 같이, 하나 이상의, 경로에 독립적인 알고리즘들이 고안되어 다음 클록 싸이클에 대비하여 실행될 데이터 전송 동작을 결정한다. 데이터 전송 동작들(즉, moves)은 현재 상태에 선행하는 이력보다는 DRAM 뱅크에서 데이터, 캐쉬 및 버퍼들의 현재 상태에만 의존한다. 이해를 더 쉽게 하기 위해서 이하의 상세한 설명은 두개의 주요 부분들로 체계화된다:(1) 시스템 아키텍쳐 및 (2) 아키텍쳐를 위해 구현되는 스케줄링 알고리즘.
I. 시스템 아키텍쳐
처음에 도 1을 참조하면, 파괴 독출 DRAM(dynamic random access memory) 시스템(10)의 개략적인 블록 다이어그램이 도시된다. DRAM 시스템(10)은 다수의 n DRAM 기억 장치 뱅크(12)(각각 BANK 0에서 BANK n-1로 지정되어 있음), 이중 캐쉬 뱅크(16)를 포함하는 파괴 독출 DRAM 캐쉬(14), 캐쉬 태그(18), 한 쌍의 레지스터 라인 버퍼(20)(각각 버퍼 0 및 버퍼 1로 지정됨), 버퍼 태그(22), 및 관련된 논리 회로(24)를 포함한다. 본 명세서에서 이용되는 "뱅크" 또는 "BANK"라는 용어는 감지 증폭기의 공통 셋을 공유하는 메모리 셀 어레이를 언급한다.
관련된 논리 회로(24)는 수신기/데이터 인(data in) 소자, OCD/데이터 아웃(data out) 소자, 및 다른 논리 소자들을 더 포함한다. 종래의 캐쉬와는 달리, 두개의 DRAM 캐쉬 뱅크(16)는 n 보통의 DRAM 뱅크(12)와 (구성 및 성능에 있어서) 동일할 수 있다. 따라서, 시스템(10)은 또한 n+2 뱅크 아키텍쳐를 갖는 것으로 간주될 수 있으며, 여기에서 n DRAM 뱅크는 종래의 메모리 기억 장치를 위해 이용되고 2 DRAM 뱅크는 캐쉬로 이용된다. 이후 캐쉬(14)를 위해 이용되는 두개의 DRAM 뱅크(16)는 "캐쉬 뱅크"로서 언급될 것이고, CBANK A 및 CBANK B로 각각 지정되어 있다.
각각의 DRAM 뱅크(12)(BANK 0에서 n-1) 및 캐쉬 뱅크(16)(CBANK A, B)는 동일한 수의 워드라인 및 비트라인을 갖는다. 바람직한 실시예에서, 동일한 어레이 지원 회로(예를 들면, 워드라인 드라이버 및 감지 증폭기 구성)는 DRAM 뱅크(12) 및 캐쉬 뱅크(16)를 지원할 수 있다. 다른 대안으로 각 캐쉬 뱅크(16)(CBANK A, B)가 DRAM 뱅크(12)(BANK 0 에서 n-1)와 적어도 동일한 수의 워드라인 및 비트라인을 포함하는 한, 각 DRAM 뱅크(12)(BANK 0 에서 n-1) 및 각 캐쉬 뱅크(16)(CBANK A, B)를 위한 상이한 어레이 구성들이 이용될 수 있다.
양 캐쉬 뱅크(16)는 직접 맵핑 캐쉬 체계에서 캐쉬 태그(18)를 공유한다. DRAM 뱅크(12) 중 하나의 특정 워드라인 어드레스(예를 들면, 워드라인 0)와 관련되는 데이터는 두개의 캐쉬 뱅크(16) 중 하나(A 또는 B 중 하나)의 특정 워드라인에 저장될 수 있으나 양쪽 모두에는 저장될 수 없다. 이로 인하여 캐쉬(14)는 DRAM 뱅크(12) 중 하나로부터 데이터를 독출하면서 새로운 데이터를 다른 DRAM 뱅크(12)에 기록할 수 있다. 캐쉬 태그(18)의 구조는 도 2에 도시된다. 보이는 바와 같이 각 워드라인(0에서 m으로 번호가 붙음)에 대해 캐쉬 태그(18)는 DRAM 뱅크 어드레스 정보(3 비트의 암호화된 뱅크 어드레스로서 이 예에서 도시됨) 뿐만 아니라 캐쉬 뱅크 CBANK A 및 CBANK B의 워드라인에서 데이터 존재의 표시를 저장한다. "A" 및 "B" 플래그는 유효한 데이터가 CBANK A, CBANK B에 존재하는지 또는 어디에도 존재하지 않는지를 표시한다. 예시된 예에서, CBANK A의 워드라인 0은 (DRAM)BANK 0, 워드라인 0로부터의 유효한 데이터를 포함한다. 또한 CBANK B의 워드라인 2는 BANK 7, 워드라인 2로부터의 유효한 데이터를 포함하는 한편, CBANK A의 워드라인 3은 BANK 3, 워드라인 3으로부터의 유효한 데이터를 포함한다.
두개의 라인 버퍼(20) 각각은 데이터의 단일 페이지(즉, 워드)를 저장할 수 있다. 라인 버퍼(20)는 레지스터 어레이로 이루어질 수 있고, 각각은 별개의 입력 및 출력 포트를 갖는다. 도 3은 버퍼 태그(22)의 구조를 예시하며, 이는 각 버퍼(20)에 대한 요청 어드레스, 유효한 플래그, 행 어드레스(이 예에서 8 비트의 암호화된 어드레스) 및 뱅크 어드레스를 포함한다. 그러나 후에 논의될 것처럼, 각 버퍼(20)와 관련되는 행 어드레스는 바람직한 실시예에서 동일하여야 하고, 따라서, 두개의 버퍼들간에 공유된다. 유효한 플래그는 버퍼에 있는 데이터가 유효한지를 표시한다. 요청 플래그는 버퍼(20)(버퍼 0 또는 버퍼 1 중 하나)가 특정 뱅크에 대하 이전에 요청된 데이터, 및 데이터 아웃으로의 독출(OCD) 또는 데이터 인으로부터의 기록(수신기) 중 어느 하나에 대한 행 어드레스를 포함하는지를 표시한다.
이제 도 4를 참조하면, 각 데이터 인/아웃 핀에 대한 두개의 버퍼(20)(버퍼 0 및 버퍼 1)의 구조를 예시하는 개략적인 다이어그램이 도시된다. 버퍼(20)를 이용하여 DRAM 뱅크(BANK 0에서 n-1) 및 캐쉬(14)(CBANK A, B)간의 데이터 전송의 트래픽을 처리하는 한편, 데이터 라인 상의 임의의 잠재적인 데이터 경합을 회피한다. (data_in 라인(30a) 및 data_out 라인(30b)을 포함하여) data_in/data_out 버스(30)는 각각 독출/기록 신호 gw0/gr0 및 gw1/gr1에 의해 제어되는 다수의 대웅하는 전송 게이트(32)를 통해 버퍼 0 및 버퍼 1 양쪽 모두에 연결된다. data_in/data_out 버스(30)는 DRAM 시스템(10) 및 그 시스템으로부터 독출하거나 그 시스템에 기록하는 임의의 외부 장치(커스터머)들간의 외부 인터페이스를 제공한다.
독출 2차 데이터 라인(RSDL)(34)은 DRAM 뱅크 어레이에 있는 감지 증폭기(SA) 또는 2차 감지 증폭기(SSA)(도시되지 않음)의 출력을 신호 r0에 의해 제어되는 전송 게이트(36)를 통해 버퍼 0에 연결하는 단방향 신호 버스이다. 다시 말하면, DRAM 뱅크(12) 중 하나로부터 버퍼(20)로의 임의의 데이터 독출은 RSDL(34)를 통해 버퍼 0에 전송된다. 마찬가지로, CRSDL(캐쉬 독출 2차 데이터 라인)(38)은 캐쉬(14)와 관련되는 감지 증폭기 또는 2차 감지 증폭기(SSA)(도시되지 않음)를 신호 r0에 의해 제어되는 전송 게이트(40)를 통해 버퍼 1에 연결하는 단방향 신호 버스이다. 다시 말하면, 캐쉬 뱅크(16) 중 하나로부터 버퍼(20)로의 임의의 데이터 독출은 CRSDL(38)을 통해 버퍼 1로 전송된다.
또한, 기록 2차 데이터 라인(WSDL)(42)은 버퍼 0 또는 버퍼 1로부터의 발신 데이터를 DRAM 뱅크(12)에 연결하는 단방향 신호 버스이다. 이는 신호 w00 및 w10에 의해 제어되는 다중화된 전송 게이트(44)를 통해 행하여진다. 대응하여, 캐쉬 기록 2차 데이터 라인(CWSDL)(46)은 버퍼 0 또는 버퍼 1 중 어느 하나로부터의 발신 데이터를 캐쉬 뱅크(16)에 연결하는 단방향 신호 버스이다. 이는 신호 w01 및w11에 의해 제어되는 다중화된 전송 게이트(48)를 통해 행하여진다.
도 4(b)는 n DRAM 뱅크들, 두개의 DRAM 캐쉬 뱅크 및 두개의 버퍼간의 데이터 라인 WSDL, RSDL, CWSDL 및 CRSDL에 대한 전형적인 연결을 예시하는 개략적인 다이어그램이다. 예시의 방법으로 데이터 라인의 폭은 128 비트인 것으로 가정된다.
버퍼 구조는 도 4(a)에 도시되는 레벨 센서티브 래치(level sensitive latch)를 이용함으로써 구현되지만, 후술하는 바와 같이 에지 트리거 래치(edge triggered latch) 및 파이프라인 태그 비교에 기초한 대안의 체계가 구현될 수도 있다. 또한, 본 실시예 하에서, 도 4(a)의 버퍼 구조는 다음과 같이 정의됨에 주목한다: DRAM 뱅크(12)로부터의 수신 데이터는 항상 버퍼 0에 저장된다; 캐쉬 뱅크(16)로부터의 수신 데이터는 항상 버퍼 1에 저장된다; 버퍼 0 및 버퍼 1로부터의 발신 데이터는 DRAM 뱅크(12) 또는 캐쉬 뱅크(16) 중 어느 하나로 갈 수 있다. 그러나 구조가 전환되어, DRAM 뱅크(12) 또는 캐쉬 뱅크(16)로부터 버퍼로의 수신 데이터가 두개의 버퍼 중 어느 하나에 저장될 수 있는 반면, 특정 버퍼 외의 기록된 데이터는 DRAM 뱅크 또는 캐쉬 뱅크(16) 중 어느 하나로 단지 갈 것이다.
DRAM 시스템(10)의 동작을 이해하기 위해, 단일 클록 싸이클 동작이 커맨드의 1/4 클록 설정 시간으로 이후에서 논의되고, 어드레스 신호는 태그 비교를 위해 이용되는 것으로 가정된다. 단일 싸이클 동작은 (캐쉬 뱅크를 포함하는) 각 DRAM 뱅크가 하나의 클록 싸이클에서 독출 또는 기록 동작을 끝낼 수 있음을 의미한다. 각 클록 싸이클에서, DRAM 뱅크로부터 단지 하나의 독출 동작, 캐쉬 뱅크로부터 단지 하나의 독출 동작, DRAM 뱅크에 대한 단지 하나의 기록 동작, 및 캐쉬 뱅크에 대한 단지 하나의 기록 동작이 있을 것이다. 그러므로 각 싸이클 동안 DRAM 뱅크 및 캐쉬간의 네개의 개별적인 독출 및 기록 동작들까지 발생할 수 있는 한편, 여전히 두개의 버퍼와의 성공적인 통신이 가능하다. 각 데이터 전송 동작과 함께, 두개의 버퍼들 중 하나를 통해 통신이 가능하게 된다.
도 5(a)는 본 시스템 구성 하에서 허용되는 네개의 가능한 데이터 전송 동작 각각의 예들을 도시하는 테이블이다. 예를 들면, BANK 2, 워드라인 4(bank2_wl4로 축약됨)에 저장되는 데이터에 대한 랜덤 액세스 요청 동안, 다음의 동작들이 발생할 수 있다.
(1) 이전에 버퍼 0에 있는(예를 들면 bank0_wl12로부터의) 데이터를 BANK 0로 이동한다;
(2) bank2_wl4로부터의 데이터를 버퍼 0로 이동한다;
(3) 이전에 버퍼 1에 있는(예를 들면 bank3_wl2로부터의) 데이터를 캐쉬 뱅크(예를 들면 CBANK A)로 이동한다;
(4) CBANK B에 있는 워드라인 4(예를 들면 bank0_wl4)로부터의 데이터를 버퍼 1로 이동한다.
적어도 두개의 DRAM 뱅크, 두개의 버퍼, 및 두개의 캐쉬 뱅크가 있기 때문에, 상기 데이터 전송 동작 네가지 모두 동시에 인에이블될 수 있다.
후에 상술될 바와 같이, 클록 싸이클 동안의 상기 일련의 전형적인 동작들은 일반적으로 (만약 있다면) 요청되는 커맨드 및 데이터의 종래 상태에 기초하여 결정된다. 일련의 허용 가능한 상태들이 정의될 것이고, 허용 가능한 상태들의 규칙들을 유지하는 알고리즘이 구현될 것이다. 도 5(a)의 상기 예의 정황으로, bank2_wl4에 있는 데이터에 대한 요청 이전에 즉시, 버퍼 0는 초기에 DRAM 뱅크 0(bank0_wl2)에 있는 제2 워드라인과 관련된 셀들로부터의 이전에 독출된 데이터 비트를 포함한다. 또한, 버퍼 1은 초기에 DRAM 뱅크 3(bank3_wl2)에 있는 제2 워드라인과 관련된 셀들로부터 이전에 독출된 데이터 비트를 포함한다. 캐쉬 태그(18)는 캐쉬 뱅크의 각 워드라인과 관련된 뱅크 어드레스 정보 뿐만 아니라, 임의의 유효한 데이터가 A 또는 B 뱅크 내에 있는지를 유지한다. 특히, 상기 예는 캐쉬 뱅크 B가 초기에 DRAM 뱅크 0(bank0_wl4)의 제4 워드라인으로부터의 이전에 독출된 데이터 비트를 포함한다. 이러한 모든 초기 상태는 이전의 클록 싸이클로부터 알려진다.
새로운 커맨드(Request bank2_wl4)가 설정 시간 동안 수신될 때, 태그 비교가 행하여진다. 태그 비교는 요청된 데이터가 버퍼 히트, 캐쉬 히트, 또는 버퍼&캐쉬 미스(즉, DRAM 뱅크 히트)인지를 결정한다. 이 예에 있어서, 요청되는 데이터는 버퍼나 캐쉬 어디에도 있지 않고, 따라서 비교 결과는 DRAM 뱅크 히트로 간주된다. 다시 말하면, 요청된 데이터는 실제로 지정된 DRAM 뱅크 위치에 있다. 요청되는 데이터를 위치시키는 것 외에 태그 비교는 또한 요청(예를 들면, wl4)에서와 동일한 워드라인 어드레스에서 캐쉬 뱅크 중 어느 하나에 임의의 유효한 데이터가 있는지를 알아보기 위해 체크한다. 이러한 예에서의 결과는 캐쉬 뱅크 B에서 발견되는 DRAM 뱅크 0, 워드라인 4(bank0_wl4)로부터의 유효한 데이터이다.
본 시스템은 직접 맵핑 스케줄링을 채택하기 때문에, bank0_wl4로부터의 데이터 비트는 장래의 스케줄링을 위한 캐쉬 뱅크에는 저장되어서는 안된다. 그러므로, bank0_wl4로부터의 데이터 비트는 버퍼 1에 전송되어야 한다. 동시에, 요청되는 데이터 bank2_wl4는 버퍼 0에 전송되어 결과적으로 커스터머에 의해 검색되도록 할 필요가 있다. 그러나 버퍼 0(bank0_wl2)에 초기에 있는 데이터는 우선 DRAM 뱅크에서의 위치(즉, 뱅크 0, 워드라인 2)에 반환되어야 하며, DRAM 뱅크는 요청에 있어서 뱅크와 상이하다. 양 버퍼가 유효한 데이터를 포함하기 때문에, 그 중 하나는 요청되는 DRAM 뱅크와 동일한 번호가 아닌 DRAM 뱅크 번호와 관련될 것이다. 버퍼 0는, 우선 체크되고, 태그 비교를 통해, 요청에 있어서와 통일한 DRAM 뱅크 번호와 관련되지 않는 지가 결정되어, 버퍼 0에서의 데이터가 DRAM 뱅크 0에 전송되도록 한다. 다른 버퍼에 있어서의 데이터, 즉 버퍼 1에 있어서의 bank3_wl2로부터의 데이터 비트들은 캐쉬 뱅크 A로 전송될 것이다.
기본적인 데이터 전송 원리 또는 본 시스템은 두개의 버퍼에 있는 동일한 워드라인 번호를 쌍으로 갖는 두개의 데이터 페이지까지 저장하는 것이다. 하나는 요청되는 데이터 페이지에 이용되는 한편, 나머지 다른 하나는 필요하다면 캐쉬 밖의 (요청되는 데이터와 동일한 워드라인 어드레스에 대응하는 특정 워드라인 어드레스를 갖는) 유효한 데이터 페이지를 전송하는데 이용되어 장래 싸이클에 있어서의 데이터 오버플로우를 회피하도록 한다. 이러한 페어링 규칙(paring rule)을 따르는 한, 어떠한 뱅크 데이터도 잃지 않고 데이터 전송 무결성이 완전히 유지된다.
이제 도 5(b)를 참조하면, 도 4(a)에 도시되는 버퍼 구조의 동작을 예시하는타이밍 다이어그램이 도시된다. 또한, 새로운 요청에 대응하는 커맨드, 어드레스 및 데이터에 대한 가정된 설정 시간이 있다. 관련된 논리가 상대적으로 단순하기 때문에, 작은 양의 시간(예를 들면, 0.13 마이크로 기술에서 대략 0.5 ns)이면 충분할 수도 있다. 그렇지 않으면, 내부 DRAM 동작에 대해 지연된 클록이 실행될 수도 있다. 설정 시간 동안 어드레스 정보(add)가 태그 비교에 이용되고, 데이터 전송을 위한 요청이 존재하는지를 알아보는데 커맨드(cmd)가 이용된다. 또한, 커맨드는 다음 클록에 파이프라인되어, 독출(또는 기록) 커맨드가 독출(기록) 레이턴시 1 동작에서와 같이 이후 데이터 버퍼로부터(또는 데이터 버퍼에) 수행될 수 있도록 한다. 이러한 레벨 센서티브 래치 방식에서, 도 4(a)에서의 "w" 게이트(44)는 클록 싸이클의 제1 절반 동안 턴온되고, 클록 싸이클의 제2 절반 동안 턴오프됨으로써, 데이터가 WSDL(42)에 전송되고 한 클록 동안 래치될 수 있도록 한다. "r" 게이트(36, 40)는 클록 싸이클의 제2 절반 동안 턴온되어, 매크로 독출 레이턴시가 한 클록 싸이클 미만이라고 가정되는 경우, DRAM 뱅크로부터의 유효한 데이터가 올 수 있도록 한다. 이후 데이터는 다음 싸이클의 라이징 에지(rising edge)에서 레지스터 버퍼로 래치된다. 독출 커맨드가 수신되는 경우, 데이터는 (요청되는 어드레스와 관련되는) 버퍼로부터 data_out 라인(30b)으로 독출된다. 기록 커맨드가 수신되는 경우, 데이터는 data_in 라인(30a)으로부터 요청되는 어드레스와 관련되는 버퍼에 기록된다.
요청이 독출, 기록 또는 비트 마스킹을 갖는 기록인지 여부에 관계 없이, 제안된 RAM 시스템에 대해, 내부 동작은 우선 요청되는 워드라인에 관련되는 데이터페이지를 버퍼들 중 하나로 가져올 것이며, 버퍼에서는 독출(데이터 아웃을 data_out(30b)에 카피함) 또는 기록(data_in(30a) 상의 입력으로 데이터 페이지를 갱신함)이 수행된다. data_in 및 data_out 라인 상의 동작 및 제어 게이트 gw0, gw1, rw0, rw1을 제외하고는 DRAM 뱅크, 캐쉬, 및 버퍼에 대한 스케줄링 알고리즘 및 데이터 이동은 독출 및 기록 요청에 대해 동일하다.
양의 클록 에지 트리거 래치(52)에 기초한 다른 대안의 버퍼 체계(50)가 도 5(c)에 도시된다. 여기에서 태그 독출 및 비교를 위해 한 클록 싸이클을 이용함으로써 ASIC 방법론과 더 일관될 수 있다. 한 클록 태그 비교를 이용하여, 도 5(d)는 도 5(c)의 클록 에지 트리거 설계와 일관된 타이밍 흐름을 예시한다. 이 실시예에서 독출 레이턴시는 2개의 클록이다. 두개의 연속적인 커맨드(요청 1 및 요청 2)는 도 5(d)에 도시되는 바와 같이 심리스 파이프라인 형태(seamless pipeline fashion)로 순차적으로 스택되고 실행됨에 주목한다. 다음 설명부에서, 특히 DRAM 시스템(10)용으로 설계된, 경로에 독립적인 알고리즘을 구현함으로써 임의의 랜덤 순서에 대한 심리스 스태킹(seamless stacking)이 가능함이 보여질 것이다.
II. 스케줄링 알고리즘
파괴 독출 캐쉬를 갖는 파괴 독출 DRAM 어레이의 상술한 아키텍쳐를 성공적으로 이용하기 위하여, 임의의 새로운 랜덤 액세스 요청 이후 허용 가능한 상태에서 시스템을 유지할 수 있도록 적절한 스케줄링 체계가 위치해 있어야 한다. 일반적인 접근 방법은, 우선 허용 가능한 상태를 정의하고, 허용 가능한 상태에 합치하도록 시스템을 초기화하며(즉, 초기화), 이 후 임의의 주어진 데이터 전송 동작 후에 허용 가능한 상태가 유지되는 것을 보장하는 것이다(즉, 시스템 연속성).
허용 가능한 상태의 규칙(강형)(Rules of allowable states(strong form))
바람직한 실시예에서, 허용 가능한 상태의 "강형" 규칙은 양 버퍼에서 유효한 데이터를 유지하는 대칭 알고리즘에 의해 특징지워지고 정의되며, 그 데이터는 동일한 워드라인 어드레스를 갖지만 상이한 DRAM 뱅크로부터의 것이다. 따라서, 매 클록 싸이클의 라이징 에지에서 다음의 규칙이 충족되어야 한다.
규칙 #1 - 서로 공통의 워드라인을 갖는 두개의 버퍼 각각에 데이터 워드가 저장된다. 버퍼 내의 두개의 데이터 워드 중 하나는 선행하는 랜덤 액세스 요청으로부터의 뱅크 어드레스 및 워드라인 어드레스에 대응하는 특정 데이터이다.
이러한 규칙의 일예는 버퍼 0가 (이전 싸이클로부터 요청된 바와 같이) DRAM 뱅크 2, 워드라인 3으로부터의 데이터를 포함하는 한편, 버퍼 1은 캐쉬(캐쉬 뱅크 A 또는 캐쉬 뱅크 B 중 어느 하나)의 워드라인 3으로부터 이전에 독출되고 뱅크 4, 워드라인 3에 관련되는 데이터를 포함하는 것일 수 있다.
규칙 #2 - 캐쉬 내에 상기 워드라인 어드레스(즉, 버퍼 내 데이터와 관련된 특정 워드라인 어드레스)와 현재 관련된 유효한 데이터가 없다.
상기 예와 계속하여, 캐쉬 뱅크 A 또는 캐쉬 뱅크 B 어느 것도 유효한 데이터가 워드라인 어드레스 3에 저장되도록 하지 않는다. 즉, 캐쉬 태그의 워드라인 3에서 A=0 및 B=0이다.
규칙 #3 - 버퍼들의 워드라인 어드레스에 대응하는 하나의 것 이외의 모든 워드라인 어드레스에 대해, 하나의 캐쉬 뱅크에 하나의 유효한 워드만이 저장된다.
그러므로 상기 예에서, 워드라인 어드레스 3 이외의 모든 워드라인 어드레스에 대해, (A=1 및 B=0) 또는 (A=0 및 B=1) 중 어느 하나이다.
또한, 규칙 #1 하에서, (독출 또는 기록용) 요청된 뱅크 및 워드라인 어드레스와 관련된 데이터 페이지는 적절한 독출 및 기록 동작을 위해 다음 클록 싸이클에서 버퍼에 도달할 것임에 주목한다. 임의의 랜덤 액세스 요청(독출/기록)에 대해, 상기 약술된 허용 가능한 상태들의 규칙이 주어지면, 미리 정의된 과정을 실행하는 것이 가능하며, 이러한 미리 정의된 과정 하에서, 제안된 시스템은 임의의 클록 싸이클 동안 허용 가능한 상태에서 초기화되고 순차적으로 유지될 것이다.
초기화(INITIALIZATION)
강형 알고리즘의 제1 부분은 초기화 과정으로 시작한다. 시스템 파워업 이후, 앞에서 논의된 바와 같이 도 3으로부터의) 버퍼 태그(22)는 다음과 같이 설정된다: (1) 버퍼 0 및 버퍼 1에 대한 유효한 플래그는 "1"로 설정된다; (2) 행 어드레스는 워드라인 0에 대응한다; (3) 버퍼 0에 대한 뱅크 어드레스는 뱅크 1이다; (4) 버퍼 1에 대한 뱅크 어드레스는 뱅크 0이다; (5) 이전의 요청이 없기 때문에, 양 버퍼에 대한 요청 플래그는 0이다.
또한, 시스템 파워업 이후, 워드라인 0을 제외하고는, 캐쉬 태그(18)의 캐쉬 뱅크 A레 대한 각 태그는 A=1로 초기화되는 한편, 캐쉬 태그(18)이 모든 뱅크 어드레스는 뱅크 0으로 설정된다. 캐쉬 뱅크 B에 대한 각 플래그는 B=0으로 초기화된다. 상술한 바와 같이 버퍼 및 캐쉬 태그를 설정함으로써, 버퍼 0는 bank1_wordline0와 관련된 유효한 데이터 워드에 대응하는 한편, 버퍼 1은bank0_wordline0와 관련된 유효한 데이터 워드에 대응한다. 마지막으로 워드라인 0가 유효한 데이터에 대응하지 않는다는 것을 제외하고는, 이중 뱅크 캐쉬의 모든 다른 워드라인은 캐쉬 뱅크 A의 뱅크 0와 관련된 유효한 데이터를 갖는다. 그러므로 상술된 강형 규칙은 초기에 충족된다.
연속성(CONTINUITY)
초기화 이후, 클록 싸이클의 라이징 에지 바로 이전에 랜덤 독출 또는 기록 요청이 이루어진다고 가정할 것이다. 클록 싸이클의 라이징 에지에서 랜덤 액세스 요청(독출 또는 기록)은 이후 Xj로 지정될 것이며, 여기에서 "X"는 뱅크 어드레스이고, "j"는 워드라인 번호(어드레스)이다. Di라는 용어는 버퍼 0에 초기에 저장되는 데이터 페이지를 표현할 것이며, 여기에서 "D"는 뱅크 어드레스이고 "i"는 워드라인 번호이다. Qi라는 용어는 버퍼 1에 초기에 저장된 데이터 페이지를 표현할 것이고, 여기에서 "Q"는 뱅크 어드레스이고 "i"는 워드라인 번호이다. 상술된 규칙 #1에 따라, 모든 경우에 D≠Q이고, 워드라인 번호(i)는 버퍼 0 및 버퍼 1에 대해 동일함에 주목한다.
또한, 임의의 주어진 워드라인 번호 k≠i에 대해, 규칙 #2 및 규칙 #3 하의 경우에서와 같이, 캐쉬에 저장된 워드라인 k와 관련된 단지 하나의 유효한 데이터 페이지가 있다. 이로써 C(k)라는 용어는 캐쉬 태그의 워드라인 k에 대한 대응하는 뱅크 어드레스로서 지정된다. 그러므로 임의의 주어진 요청 Xj에 대해, 관련된 DRAM 뱅크, 두개의 버퍼 중 하나, 또는 캐쉬 중 어느 하나에서 데이터가 발견될 것이다. 다음은 세개의 일반적인 가능한 시나리오 각각에 대해 실행되는 처리 결과데이터 전송 동작들을 예시한다:
케이스 1 - 버퍼 히트
이 경우에 있어, j=i이고, X=D 또는 X=Q 중 하나이다. 즉, 요청된 데이터는 이미버퍼 0 또는 버퍼 1 중 어느 하나에 저장된다. 허용 가능한 상태에 대한 규칙이 이미 충족되어 있기 때문에, 이번 클록 싸이클에서는 데이터 전송이 더 이상 실행되지 않는다. 이는 도 6(a)의 상태 다이어그램에 있어서의 변화의 결여로 반영된다.
케이스 2 - 캐쉬 히트
요청된 데이터 Xj가 캐쉬에 포함되는 경우, j≠i(규칙 #2하에서)이다. 즉, 요청된 데이터의 워드라인 번호는 버퍼 내 데이터의 워드라인에 대응하지 않는다. 또한, 데이터의 단일 페이지는 두개의 뱅크 어드레스에 대응할 수 없기 때문에, X≠D 또는 X≠Q 중 어느 하나이거나, 양쪽 모두이다.
X≠D인 경우, Dj에 대한 데이터는 (앞 문단으로부터의) 버퍼 또는 (규칙 #3 하에서의) 캐쉬에 있지 않고, 따라서 Dj에 대한 데이터는 대응하는 DRAM 뱅크에 있다. 이 후, 허용 가능한 상태에 대한 상기 규칙에 합치하도록 다음의 단계들이 실행된다:
Xj는 (A 또는 B 중) 하나의 캐쉬 뱅크로부터 버퍼 1로 이동된다;
Di는 버퍼 0으로부터 나머지 다른 뱅크(B 또는 A)로 이동된다;
Qi는 버퍼 1로부터 DRAM 뱅크 Q로 이동된다;
Dj는 DRAM 뱅크 D로부터 버퍼 0로 이동된다.
이러한 일련의 데이터 이동은 도 6(b)에 도시된다. 다른 한편으로, X=D인 경우, X≠Q이어야 하고, Qj에 대한 데이터는 대응하는 DRAM 뱅크에서 발견된다. 따라서, 다음의 단계들이 이후 실행된다:
Xj는 (A 또는 B 중) 하나의 캐쉬 뱅크로부터 버퍼 1로 이동된다;
Qi는 버퍼 1로부터 나머지 다른 캐쉬 뱅크(B 또는 A)로 이동된다;
Di는 버퍼 0로부터 DRAM 뱅크 D로 이동된다;
Qj는 DRAM 뱅크 Q로부터 버퍼 0로 이동된다.
이러한 일련의 데이터 이동은 도 6(c)에 도시된다.
케이스 3a - 버퍼 미스, 캐쉬 미스, j=i
요청된 데이터 Xj가 버퍼 나 캐쉬에 있지 않은 경우, Xj는 대응하는 DRAM 뱅크 내에 있다. j=i이므로, 또한 X≠D임은 사실이다. 그러므로 합치하는 동작은 도 6(d)에서 예시하는 바와 같이 두개의 단계로 수행될 수 있다.
Xj는 DRAM 뱅크 X로부터 버퍼 0으로 이동된다;
Di는 버퍼 0으로부터 DRAM 뱅크 D로 이동된다.
케이스 3b - 버퍼 미스, 캐쉬 미스, j≠i, X≠D
이 경우에 있어서, 요청된 데이터는 다시 대응하는 DRAM 뱅크에 위치된다. 그러나 요청된 데이터의 워드라인 어드레스는 버퍼 내 데이터의 워드라인 어드레스와는 상이하다. 허용 가능한 상태의 규칙 하에서, 캐쉬 뱅크 중 하나에 저장된 행 어드레스 j에 대해 유효한 Cj가 존재한다. X≠D이므로, 요청된 데이터에 대한 뱅크 어드레스는 버퍼 0 내 데이터의 뱅크 어드레스와는 상이하고, 다음의 단계들이실행된다:
Xj는 DRAM 뱅크 X로부터 버퍼 0으로 이동된다;
Cj는 (A 또는 B 중) 하나의 캐쉬 뱅크로부터 버퍼 1로 이동된다;
Qi는 버퍼 1로부터 나머지 다른 캐쉬 뱅크(B 또는 A)로 이동된다;
Di는 버퍼 0으로부터 DRAM 뱅크 D로 이동된다.
이러한 일련의 데이터 이동은 도 6(e)에 예시된다.
케이스 3c - 버퍼 미스, 캐쉬 미스, j≠i, X=D, X≠Q
이 경우와 상기 케이스 3b간의 유일한 차이점은 요청된 데이터의 뱅크 어드레스가 이제는 버퍼 0에 포함된 데이터의 뱅크 어드레스와 동일(즉, X=D)하다는 것이다. 그러나, 요청된 데이터의 뱅크 어드레스가 버퍼 1에 포함된 데이터의 뱅크 어드레스와 상이(즉, X≠Q)하여야 한다. 그러므로 다음의 단계들이 도 6(f)에 도시된 바와 같이 실행된다.
Xj는 DRAM 뱅크 X로부터 버퍼 0으로 이동된다;
Cj는 (A 또는 B 중) 하나의 캐쉬 뱅크로부터 버퍼 1로 이동된다;
Di는 버퍼 0으로부터 나머지 다른 캐쉬 뱅크(B 또는 A)로 이동된다;
Qi는 버퍼 1로부터 DRAM 뱅크 Q로 이동된다.
초기화 과정의 대안의 실시예는 장시간동안 버퍼 내에 데이터를 저장하지 않음으로써 시스템이 SER(soft error rate)를 감소시키는데 유용하게 도움을 줄 수 있다. 이러한 실시예에서, 시스템 파워업 이후, 캐쉬 태그(18)의 캐쉬 뱅크 A에 대한 각 플래그는 A=1로 초기화되는 한편, 캐쉬 태그(18)의 모든 뱅크 어드레스는동일한 어드레스(예를 들면, 000)로 설정되며, 태그 버퍼(22)에 대한 유효한 플래그는 모두 "0"으로 설정된다.
이제 도 7을 참조하면, 또한 상술한 초기화 과정에 대한 상태 다이어그램이 도시되며, 여기에서, 제1 요청에 대한 캐쉬 히트(Ci)에 대해, 데이터는 캐쉬로부터 버퍼 1로 이동된다; 캐쉬 및 버퍼 미스(Di)에 대해, 데이터는 DRAM 뱅크 D로부터 버퍼 0으로 이동된다.
마지막으로 도 8은 주어진 클록 싸이클 동안 요청이 수신되지 않는 경우 수행될 수 있는 임의적인 데이터 이동 동작의 상태 다이어그램이다. SER(soft error rate)의 가능성 때문에, 커스터머(외부 장치)로부터 요청이 없는 경우 데이터가 버퍼에 저장되도록 유지하지 않는 것이 바람직하다. 이 경우에 있어서, 버퍼 0의 데이터 Di는 DRAM 뱅크 D에 반환되는 한편, 버퍼 1의 데이터 Qi는 캐쉬 뱅크 중 하나에 전송된다.
허용 가능한 상태의 "강형" 규칙 하에서의 상술된 데이터 이동 알고리즘은, 양 버퍼가 유효한 데이터를 항상 포함하도록 함으로써, 허용 가능한 상태에서 시스템을 여전히 유지하면서 요청된 데이터가 한 클록 싸이클 동안 버퍼 중 하나에 전송될 수 있도록 한다는 점에서 이점이 있다. 상기 약술된 다양한 가능한 것들로부터 보여질 수 있듯이, 많아야 단지 4개의 데이터 전송 동작들만이 있어 데이터 전송 논리는 상대적으로 구현하기 쉽다. 그러나 강형 규칙은 시스템 구현에 있어서 논리 게이트의 수, 전력 및 성능간의 트레이드오프에 대해 일반화될 수 있다. 따라서, "일반형" 알고리즘이 또한 제공된다.
간략히 진술된 "일반형"은 버퍼에서 더 허용 가능한 상태를 고려함으로써 요구되는 데이터 전송 동작의 수를 감소시킨다. 이는 차례로, 장치에서 전력이 덜 소비될 수 있도록 한다. 다른 한편으로 트레이드오프는 추가적인 논리를 이용하여 허용 가능한 상태에 있어서의 증가를 다루는 것이다. 비교하면, 도 9는 강형 규칙 하의 허용 가능한 상태를 예시하는 테이블인 반면, 도 10(a)-(d)는 강형 규칙 하의 허용 가능한 상태를 예시한다. 보여지는 바와 같이 유효한 데이터를 포함하는 버퍼 0 및 1 외에도 버퍼 중 하나 또는 양 버퍼는 또한 비어 있을 수도 있다. 일반형을 위한 허용 가능한 상태에 대한 규칙은 다음과 같이 요약될 수 있다:
허용 가능한 상태의 규칙(일반형):
규칙 #1 - 두개의 버퍼 내에 두개 이하의 유효한 데이터 페이지가 위치할 수 도 있다. 각 버퍼가 유효한 데이터를 포함하게 되는 경우, 각 버퍼 내 데이터는 동일한 워드라인 어드레스를 갖는다. 그러나 이전 싸이클 동안 랜덤 액세스 요청이 이루어진 경우, 버퍼 중 하나는 이전의 랜덤 액세스 요청에 대응하는 데이터를 포함하여야 한다.
규칙 #2 - 버퍼 중 하나 또는 양쪽 모두가 (특정 워드라인 어드레스와 관련된) 임의의 유효한 데이터 페이지를 그 내부에 포함하는 경우, 유효한 데이터는 캐쉬 내에 저장된 그 동일한 워드라인 어드레스가 캐쉬에 저장되도록 하지 않는다.
규칙 #3 - 규칙 #2에서 진술된 특정 워드라인 어드레스 이외의 모든 워드라인 어드레스에 대해, 단지 하나의 캐쉬 뱅크에 저장된 워드라인 어드레스와 관련된 유효한 데이터 워드가 많아야 하나이다. 즉, 유효한 플래그(도 3)로 버퍼 태그에저장된 워드라인 어드레스 이외의 모든 워드라인 어드레스에 대해, A 및 B(도 2)는 동시에 1로 설정될 수 없다.
상술된 일반형 규칙 하에서, 강형 방법과 대비하여 필요한 이동의 수를 감소시키도록 하는 저전력 방법이 구현된다. 예를 들면, 앞에서 논의된 캐쉬 히트 케이스(케이스2)에서는, 허용 가능한 상태의 강형 규칙 하에서 DRAM 뱅크로부터 버퍼로의 데이터 전송은 허용 가능한 상태의 일반형 규칙 하에서는 불필요하다. 또한, 허용 가능한 상태의 일반형 규칙 하에서는, 이전에 설명된 몇몇 데이터 이동의 시작점인 일정한 유효 데이터 워드(예를 들면, Di, Qi 및 Cj)가 랜덤 액세스 요청 동안 초기 시스템 상태에서 존재하지 않을 수도 있다. 그러므로 나머지 다른 버퍼로의 이동 및 이로부터의 이동은 더 이상 요구되지 않는다.
일반형 규칙으로, 각 특정 싸이클에 대해, 필요한 데이터 이동의 최소 수가 결정된다. 버퍼 중 단지 하나만이 초기에 유효한 데이터 페이지를 포함하는 경우에 있어서, 캐쉬 또는 DRAM 뱅크 중 어느 하나에 그 페이지가 전송될 수 있다. 그러나 바람직한 실시예에 있어서, 선택된 동작은 DRAM 뱅크에 데이터를 이동하는 것이다. 데이터가 대신 캐쉬로 이동되는 경우, 동일한 워드라인 어드레스를 갖는 이후의 DRAM 뱅크 히트로 인하여 그 데이터는 캐쉬로부터 버퍼로 이동된다. DRAM 뱅크 히트(버퍼 및 캐쉬 미스)는 랜덤 액세스 요청시에 통계적으로 가장 가능성 있는 이벤트이므로, 이동 동작의 수를 감소시키는 것이 가능할 때마다 데이터는 버퍼로부터 DRAM 뱅크로 이동되어야 한다. n이 시스템 내 DRAM 뱅크의 총 수를 표현하고, m이 DRAM 뱅크당 워드라인의 수를 표현하는 경우, 요청 동안 버퍼 히트에 대한가능성은 2/(n*m) 미만인 반면, 캐쉬 히트의 가능성은 1/n 미만이다. 역으로 DRAM 뱅크 히트(버퍼 및 캐쉬 미스)의 가능성은 대략 (n-1)/n이다. 따라서, n 및 m의 값이 더 커질수록, 랜덤 액세스 동작에 대한 DRAM 뱅크 히트의 가능성은 더 커진다. 일반형 하에서의 초기화 과정은 더 종래의 시스템으로 실현될 수 있다. 예를 들면, 모든 유효한 데이터는 캐쉬 및 버퍼에 대한 모든 유효한 플래그를 "0"으로 설정함으로써 보통의 DRAM 뱅크로 입력된다.
다음의 방법론은 일반형 규칙에 의해 제어되는 데이터 전송 동작을 약술한다. 랜덤 액세스 요청이 수신되지 않는 경우, (버퍼 0 또는 버퍼 1에 존재하는 경우) Di 또는 Qi 중 하나는 각각의 DRAM 뱅크(DRAM 뱅크 D 또는 DRAM 뱅크 Q)로 이동된다. 랜덤 액세스 요청 Xj이 수신되는 경우, 초기에 버퍼 0에는 유효한 Di, 버퍼 1에느 유효한 Qi, 및 캐쉬에는 유효한 Cj, 또는 일반형 규칙에서 약술한 바와 같이 이들의 임의의 조합이 있을 수 있다. 가능한 케이스는 다음과 같다:
케이스 1 - 버퍼 히트
일반형 규칙에 따라, j=i이고, X=D 또는 X=Q 중 어느 하나이다. 즉, 요청된 데이터는 정의에 의해 이미 버퍼 0 또는 버퍼 1에 저장되어 있다. 허용 가능한 상태에 대한 일반형 규칙은 이미 충족되어 있기 때문에, 이번 클록 싸이클에서는 더 이상의 데이터 전송이 실행되지 않는다. 이는 도 11(a)의 상태 다이어그램에서의 변화의 결여로 반영된다.
케이스 2 - 캐쉬 히트
캐쉬 뱅크 중 하나의 현재 위치로부터 버퍼 1로, 요청된 데이터 Xj를 이동시키는 것이 요구된다. 어느 하나 또는 양쪽 버퍼에 임의의 유효한 데이터가 있는 경우, 데이터는 가능할 때마다 바람직하게는 대응하는 DRAM 뱅크로 이동될 것이다. 두개의 버퍼의 상태에는 무관하다:
Xj는 (A 또는 B 중) 하나의 캐쉬 뱅크로부터 버퍼 1로 이동된다;
이제, 양 버퍼가 유효한 데이터를 포함하는 경우, 또 다른 동작이 있다:
Di는 버퍼 0으로부터 나머지 다른 캐쉬 뱅크(B 또는 A)로 이동되고;
Qi는 버퍼 1로부터 DRAM 뱅크 Q로 이동된다.
그렇지 않으면, 두개의 버퍼 중 단지 하나만이 유효한 데이터인 경우:
Di는 버퍼 0으로부터 나머지 다른 캐쉬 뱅크(A 또는 B)로 이동되거나;
Qi는 버퍼 1로부터 나머지 다른 캐쉬 뱅크(B 또는 A)로 이동된다.
자연히, 버퍼가 유효한 데이터를 초기에 포함하지 않는 경우, Xj를 캐쉬로부터 버퍼 1로 이동시키는 것외에 추가적인 동작이 수행되지 않는다. 상기 일련의 데이터 이동은 도 11(b) 및 11(c)에서 예시된다.
케이스 3a - 버퍼 미스, 캐쉬 미스, j=i, 적어도 하나의 버퍼는 유효한 데이터를 갖음
요청된 데이터가 버퍼나 캐쉬에 없는 경우, Xj는 대응하는 DRAM 뱅크에 있다. 적어도 하나의 버퍼가 초기에 유효한 데이터를 갖고, j=i라고 가정하면, Di 또는 Qi가 존재하는 경우, X≠D 및 X≠Q 또한 사실이다. 그러므로 합치하는 동작은 도 11(d)에서 예시되는 바와 같이 두개의 이동으로 수행될 수 있으며, 여기에서 Di는 존재하는 것으로 가정된다.
Xj는 DRAM 뱅크 X로부터 버퍼 0로 이동된다;
Di는 버퍼 0으로부터 DRAM 뱅크 D로 이동된다.
케이스 3b - 버퍼 미스, 캐쉬 미스, j≠i, 적어도 하나의 버퍼는 유효한 데이터를 갖음
이 경우에, 요청되는 데이터는 다시 대응하는 DRAM 뱅크에 위치하게 된다. 그러나, 요청되는 데이터의 워드라인 어드레스는 버퍼 중 하나 또는 양쪽 내 데이터의 워드라인 어드레스와는 상이하다. 허용 가능한 상태의 일반 규칙 하에서, 캐쉬 뱅크 중 하나에 저장된 행 어드레스 j에 대해 유효한 Cj가 존재할 수 있다. 우선, Cj, Di 및 Qi 각각이 초기에 존재한다고 가정할 것이다. X≠D 또는 X≠Q, 또는 양쪽 모두에 해당함은 사실임에 틀림없다. X≠D인 경우, 다음의 단계들이 실행된다.
Xj는 DRAM 뱅크 X로부터 버퍼 0으로 이동된다;
Cj는 (A 또는 B 중) 하나의 캐쉬 뱅크로부터 버퍼 1로 이동된다;
Qi는 버퍼 1로부터 나머지 다른 캐쉬 뱅크(B 또는 A)로 이동된다;
Di는 버퍼 0으로부터 DRAM 뱅크 D로 이동된다.
그러나, X=D인 경우, X≠Q이고, 다음의 단계들이 실행된다.
Xj는 DRAM 뱅크 X로부터 버퍼 0으로 이동된다;
Cj는 (A 또는 B 중) 하나의 캐쉬 뱅크로부터 버퍼 1로 이동된다;
Di는 버퍼 0으로부터 나머지 다른 캐쉬 뱅크(B 또는 A)로 이동된다;
Qi는 버퍼 1로부터 DRAM 뱅크 Q로 이동된다.
Cj가 존재하고 Di 및 Qi 중 단지 하나만이 존재하는 경우, 이동의 시작점이 존재하지 않을 때에는, 대응하는 이동은 이루어지지 않는다. 최종 결과는 여전히 일반형 규칙에 합치할 것이다.
다음으로, Cj는 존재하지 않지만, Di 및 Qi는 모두 존재한다고 가정할 것이다. 이 후, X≠D인 경우, 다음의 단계들이 실행될 것이다.
Xj는 DRAM 뱅크 X로부터 버퍼 0으로 이동된다;
Qi는 버퍼 1로부터 (A 또는 B 중) 어느 하나의 캐쉬 뱅크로 이동된다;
Di는 버퍼 0으로부터 DRAM 뱅크 D로 이동된다.
그렇지 않으면, X=D인 경우, X≠Q이고, 다음의 단계들이 실행된다:
Xj는 DRAM 뱅크 X로부터 버퍼 0으로 이동된다;
Di는 버퍼 0으로부터 (A 또는 B 중) 어느 하나의 캐쉬 뱅크로 이동된다.
Qi는 버퍼 1로부터 DRAM 뱅크 Q로 이동된다.
이제, Cj는 존재하지 않고 버퍼 내에 단지 하나의 유효한 데이터 페이지가 존재하는 경우(Di 또는 Qi 중 어느 하나가 존재하고, 양쪽 모두가 존재하지는 않는다), 및 X가 버퍼 데이터에 대응하지 않는 경우(X≠D 또는 X≠D), 다음의 단계가 실행된다.
Xj는 DRAM 뱅크로부터 버퍼 0으로 이동된다.
유효한 버퍼 데이터가 대응하는 DRAM 뱅크로 이동된다.
그렇지 않으면, 버퍼의 하나의 유효한 데이터 페이지가 X에 대응하는 경우(X=D 또는 X=Q), 다음의 단계들이 실행된다.
Xj는 DRAM 뱅크로부터 버퍼 0으로 이동된다.
유효한 버퍼 데이터는 캐쉬 뱅크(B 또는 A)로 이동된다.
마지막으로 Cj, Di 또는 Qi의 어떤 것도 존재하지 않는 경우, 수행되는 유일한 동작은 Xj를 버퍼 0으로 이동시키는 것이다.
일련의 데이터 이동은 도 11(e) 및 11(f)에 예시된다.
따라서, 파괴 독출 DRAM 기반 캐쉬가, 어레이에 대한 랜덤 액세스 싸이클 시간을 감소시키기 위해 파괴 독출 판독 DRAM 어레이와 관련하여 이용될 수 있는 방법이 도시되었다.
다른 이점들 중에, 본 시스템은 상당한 정도의 영역 절감, 프로세스 통합에 있어서의 호환성, SRAM 기반 캐쉬를 이용하는 것과 같은 다른 시스템에 비하여 감소된 소프트 에러에 관심을 갖는 것을 포함한다. 시스템 아키텍쳐의 한가지 특징적인 키는 이중 뱅크 캐쉬 구조를 포함하며, 여기에서, 동시 독출 및 기록 액세스 동작들이 실행될 수 있다. 또한, 아키텍쳐는 데이터 전송의 방향을 바꾸는데 이용되는 두개의 버퍼를 포함한다. 캐쉬 태그 및 버퍼 태그는 현재 상태에 저장된 데이터 페이지와 관련된 모든 정보를 포함함으로써, 다음 클록 싸이클 동안 데이터 이동에 대해 결정적으로 결론짓기에 충분한 정보를 표현한다. 그러므로 어떠한 기록 데이터도 임의의 태그 내에 저장될 필요가 없다.
(강형 규칙 및 일반형 규칙에 의해 예시되는 바와 같이) 허용 가능한 상태의 개념을 정의함으로써, 경로에 독립적인 알고리즘을 설계하여, 모든 장래의 데이터이동이 현재 상태에 선행하는 기록 보다는 현재 상태에만 의존하도록 할 수 있다. 임의의 순서의 연속적인 동작들은 함께 스택될 수 있고, 따라서 모든 랜덤 액세스는 심리스로 수행될 수 있다. 게다가, 요청되는 데이터는 제한된 수의 싸이클에 최종 상태에 도달한다(즉, 요청되는 데이터는 설정 시간이 이용되는 경우 한 클록 싸이클에, 태그 비교를 위해 한 클록 파이프가 이용되는 경우 두 클록 싸이클에 버퍼에 도달한다). 랜덤 액세스 요청이 제한된 싸이클 동안 완료된다는 사실 뿐만 아니라 경로에 독립적인 성질이 주어지는 경우, 단지 제한된 수의 테스트 케이스만이 존재한다. 그러므로, DRAM 캐쉬 시스템은 테스트 벤치 설계로 완전히 확인될 수 있다.
이전에 진술된 바와 같이, 강형 규칙 하의 허용 가능한 상태는 일반형 규칙 하의 허용 가능한 상태의 서브셋이다. 따라서, 강형 규칙과 관련하여 이용되는 "대칭 알고리즘"은 일반적으로 더 단순한 논리를 포함할 것이나 더 높은 전력 소비를 초래할 것이다. "저전력" 알고리즘은 더 적은 전력 소비를 갖지만, 일반적으로는 관련된 더 많은 태그 비교 시간을 갖는 더 많은 논리 컴포넌트를 갖는다. 그러나 본 발명의 실시예는, 경로에 독립이 유지되는 한, 허용 가능한 상태에 대한 다른 가능한 규칙 및 관련된 알고리즘도 예상하고 있음에 주목한다.
파괴 독출 메모리에 의해 캐쉬되는 본 발명의 파괴 독출 RAN 시스템에 대해, 캐쉬로서 이용되는 DRAM 뱅크의 수는 두개보다 많을 수 있음이 또한 예상된다. 버퍼의 수는 또한 두개보다 많을 수 있다. 임의의 부가적인 캐쉬 뱅크 및 버퍼는 코어로부터의 멀티 싸이클 레이턴시와 같은 상이한 오퍼레이팅 구성에서 또한 대안의아키텍쳐와 연결하여 이용될 수 있다. 캐쉬 뱅크의 수는 또한, 두배 더 빠른 싸이클 시간의 캐쉬를 이용하는 시스템에 대해서, 하나로 감축될 수도 있다. 래칭 기능이 로컬 DRAM 어레이 또는 글로벌 데이터 리 드라이버(re-driver)와 같은 곳에서 제공되는 경우, 버퍼는 멀티플렉서로 대치될 수도 있다. 칩 영역에 관심이 덜 한 겨우, 상기 아키텍쳐 및/또는 알고리즘은 또한 SRAM 캐쉬 기반 시스템에 적용될 수도 있다. 캐쉬 레이턴시의 관점에서 동작의 더 많은 마진을 위해, 또는 가능한 더 좋은 리던던시(redundancy) 처리를 위해, 또는 다른 성능 또는 타이밍 발행을 위해, 상기 아키텍쳐 및/또는 알고리즘은 또한 단일 포트 또는 이중 포트 SRAM 캐쉬 기반 시스템에 적용될 수도 있다. 본 발명이 바람직한 실시예를 참조하여 설명되었지만, 다양한 변화들이 이루어질 수 있고 본 발명의 범위를 이탈하지 않고 구성 요소를 대응하는 것으로 대체할 수 있음은 당업자에게 자명하다. 또한 본 발명의 본질적인 범위를 이탈하지 않고 본 발명의 교시에 따라 특정 상황 또는 요소를 적응시키도록 많은 변경이 이루어질 수 있다. 그러므로 본 발명은 본 발명을 수행하는데 예정된 가장 좋은 모드로 개시된 특정 실시예에 한정되지 않고, 첨부된 청구항의 범위 내에 해당하는 모든 실시예들을 포함할 것이다.

Claims (32)

  1. 메모리 기억 장치 시스템에 있어서,
    다수의 메모리 기억 장치 뱅크와;
    상기 다수의 메모리 기억 장치 뱅크와 통신하는 캐쉬를 포함하고,
    상기 다수의 메모리 기억 장치 뱅크 및 상기 캐쉬 모두는 파괴 독출 메모리 기억 장치 소자들을 더 포함하는 것인 메모리 기억 장치 시스템.
  2. 제1항에 있어서,
    상기 파괴 독출 메모리 기억 장치 소자들은 DRAM(dynamic random access memory) 기억 장치 셀들을 포함하는 것인 메모리 기억 장치 시스템.
  3. 제1항에 있어서,
    상기 캐쉬는 상기 다수의 메모리 기억 장치 뱅크 중 일부를 포함하는 것인 메모리 기억 장치 시스템.
  4. 제1항에 있어서,
    상기 다수의 메모리 기억 장치 뱅크 및 상기 캐쉬와 통신하는 라인 버퍼 구조체와;
    상기 라인 버퍼 구조체와 관련된 버퍼 태그와;
    상기 캐쉬와 관련된 캐쉬 태그를 더 포함하는 메모리 기억 장치 시스템.
  5. 제4항에 있어서,
    상기 라인 버퍼 구조체는 한 쌍의 버퍼를 포함하는 것인 메모리 기억 장치 시스템.
  6. 제5항에 있어서,
    상기 다수의 메모리 기억 장치 뱅크는 n개의 DRAM 기억 장치 뱅크를 더 포함하고, 상기 n개의 DRAM 기억 장치 뱅크 각각은 m개의 관련된 워드라인을 가지며, 상기 캐쉬는 한 쌍의 DRAM 캐쉬 뱅크를 더 포함하고, 상기 한 쌍의 DRAM 캐쉬 뱅크 각각은 상기 m개의 관련된 워드라인을 갖는 것인 메모리 기억 장치 시스템.
  7. 제6항에 있어서,
    상기 한 쌍의 버퍼 각각은 그 내부에 데이터 페이지를 저장할 수 있고, 상기 데이터 페이지는 선택된 DRAM 기억 장치 뱅크의 선택된 워드라인, 또는 선택된 DRAM 캐쉬 뱅크의 선택된 워드라인으로부터 파괴적으로 독출된 데이터 비트들을 포함하는 것인 메모리 기억 장치 시스템.
  8. 제7항에 있어서,
    상기 n개의 DRAM 기억 장치 뱅크 중 하나에 처음 포함된 데이터는 상기 한쌍의 DRAM 캐쉬 뱅크 중 하나에 저장될 수 있는 것인 메모리 기억 장치 시스템.
  9. 제8항에 있어서,
    상기 n개의 DRAM 기억 장치 뱅크와 처음 관련되는 상기 한 쌍의 DRAM 캐쉬 뱅크에 포함된 임의의 데이터가 직접 맵핑 방식을 통해 내부에 저장되고,
    상기 DRAM 기억 장치 뱅크 중 하나 내의 주어진 워드라인 어드레스와 관련된 데이터는 상기 한 쌍의 DRAM 캐쉬 뱅크 중 하나 내의 상기 주어진 워드라인 어드레스 내에 저장되는 것인 메모리 기억 장치 시스템.
  10. 제7항에 있어서,
    상기 한 쌍의 버퍼 각각은 레벨 센서티브 래치(level sensitive latch)를 포함하는 것인 메모리 기억 장치 시스템.
  11. DRAM(dynamic random access memory) 시스템에 있어서,
    각각 m개의 관련된 워드라인을 갖는 n개의 DRAM 기억 장치 뱅크와;
    상기 m개의 관련된 워드라인을 갖는, 제1 DRAM 캐쉬 뱅크 및 제2 DRAM 캐쉬 뱅크를 포함하는 캐쉬와;
    상기 DRAM 기억 장치 뱅크 및 상기 제1 및 제2 DRAM 캐쉬 뱅크로부터 독출된 데이터를 저장할 수 있는 한 쌍의 버퍼를 포함하는 라인 버퍼 구조체와;
    상기 DRAM 기억 장치 뱅크, 상기 한 쌍의 버퍼 및 상기 DRAM 캐쉬 뱅크들간의 데이터의 전송을 제어하는 제어 알고리즘을 포함하고,
    상기 DRAM 기억 장치 뱅크 및 상기 DRAM 캐쉬 뱅크로부터 독출된 데이터는 파괴적으로 독출되는 것인 DRAM 시스템.
  12. 제11항에 있어서,
    상기 DRAM 캐쉬 뱅크의 주어진 워드라인 내에 포함된 데이터의 DRAM 기억 장치 뱅크 어드레스 정보를 저장하는 캐쉬 태그와;
    상기 한 쌍의 버퍼 내에 저장된 데이터의 DRAM 기억 장치 뱅크 어드레스 정보를 저장하는 버퍼 태그를 더 포함하는 DRAM 시스템.
  13. 제12항에 있어서,
    상기 버퍼 태그는,
    유효한 데이터가 상기 한 쌍의 버퍼 내에 존재하는지 여부를 표시하는 제1 플래그와;
    무작위로 요청된 데이터가 상기 한 쌍의 버퍼 중 어느 하나에 포함되어 있는지 여부를 표시하는 제2 플래그를 더 포함하는 DRAM 시스템.
  14. 제11항에 있어서,
    상기 버퍼 구조체를 통해 외부 발신 데이터를 DRAM 시스템으로 수신하는 데이터 인 버스(data-in bus)와;
    내부에 저장된 데이터를 DRAM 시스템 밖으로 전송하는 데이터 아웃 버스(data-out bus)와;
    상기 DRAM 기억 장치 뱅크로부터의 데이터를 상기 한 쌍의 버퍼 중 하나에 전송하는 독출 2차 데이터 라인(read secondary data line)과;
    상기 DRAM 캐쉬 뱅크로부터의 데이터를 상기 한 쌍의 버퍼 중 나머지 다른 하나에 전송하는 캐쉬 2차 데이터 라인(cache secondary data line)과;
    상기 한 쌍의 버퍼 중 어느 하나로부터의 데이터를 상기 DRAM 기억 장치 뱅크에 전송하는 기록 2차 데이터 라인(write secondary data line)과;
    상기 한 쌍의 버퍼 중 어느 하나로부터의 데이터를 상기 DRAM 캐쉬 뱅크에 전송하는 캐쉬 기록 2차 데이터 라인(cache write secondary data line)을 더 포함하는 DRAM 시스템.
  15. 제14항에 있어서,
    상기 한 쌍의 버퍼는 레벨 센서티브 기억 장치 래치를 포함하는 것인 DRAM 시스템.
  16. 제14항에 있어서,
    상기 한 쌍의 버퍼는 에지 트리거 래치(edge triggered latch)들을 더 포함하는 것인 DRAM 시스템.
  17. 제11항에 있어서,
    상기 제어 알고리즘은,
    상기 DRAM 기억 장치 뱅크, 상기 한 쌍의 버퍼, 및 상기 DRAM 캐쉬 뱅크들 내에 존재하는 유효한 데이터에 대한 허용 가능한 상태들의 집합을 정의하는 단계와;
    상기 DRAM 기억 장치 뱅크 내에 저장된 데이터에 대한 제1 랜덤 액세스 요청 이전에 DRAM 시스템을 초기화하는 단계 - 상기 초기화 단계는 상기 허용 가능한 상태들의 정의된 집합에 합치하는 것임 - 와;
    데이터에 대한 상기 제1 랜덤 액세스 요청 이후 및, 후속 데이터에 대한 임의의 차후 랜덤 액세스 요청 이후에, 상기 요청된 데이터가 상기 라인 버퍼 구조체에서 이용 가능하게 되는 것을 보장하는 단계 - 상기 보장 단계 또한 상기 허용 가능한 상태들의 정의된 집합에 합치하는 것임 - 를 포함하는 것인 DRAM 시스템.
  18. 제17항에 있어서,
    상기 요청된 데이터가 상기 버퍼 구조체에서 이용 가능하게 되는 것을 보장하는 상기 단계는, 상기 DRAM 기억 장치 뱅크 및 라인 버퍼 구조체 사이, 및 상기 DRAM 캐쉬 뱅크 및 상기 라인 버퍼 구조체 사이에서 실행되는 소정의 일련의 데이터 전송 동작을 더 포함하고,
    상기 소정의 일련의 데이터 전송 동작은 경로에 독립적이고, 상기 DRAM 기억 장치 뱅크, 상기 라인 버퍼 구조체, 및 상기 캐쉬에 저장된 데이터의 이전의 위치에 의존하지 않는 것을 특징으로 하는 것인 DRAM 시스템.
  19. n개의 DRAM 기억 장치 뱅크, 라인 버퍼 구조체 및 캐쉬를 갖는 DRAM(dynamic random access memory) 시스템 내에서 데이터의 이동을 제어하는 방법으로서,
    상기 기억 장치 뱅크, 상기 버퍼 구조체, 및 상기 캐쉬 내에 존재하는 유효한 데이터에 대한 허용 가능한 상태들의 집합을 정의하는 단계와;
    상기 DRAM 기억 장치 뱅크 내에 저장된 데이터에 대한 제1 랜덤 액세스 요청 이전에 상기 DRAM 시스템을 초기화하는 단계 - 상기 초기화 단계는 상기 허용 가능한 상태들의 정의된 집합에 합치하는 것임 - 와;
    데이터에 대한 상기 제1 랜덤 액세스 요청 이후 및, 후속 데이터에 대한 임의의 차후 랜덤 액세스 요청 이후에, 상기 요청된 데이터가 상기 버퍼 구조체에서 이용 가능하게 되는 것을 보장하는 단계를 포함하고,
    상기 요청된 데이터가 상기 버퍼 구조체에서 이용 가능하게 되는 것을 보장하는 상기 단계 이후, 상기 허용 가능한 상태들의 집합은 유지되는 것인 데이터 이동 제어 방법.
  20. 제19항에 있어서,
    상기 요청된 데이터가 상기 버퍼 구조체에서 이용 가능하게 되는 것을 보장하는 상기 단계는 상기 DRAM 기억 장치 뱅크 및 상기 버퍼 사이, 및 상기 캐쉬 및 상기 버퍼 사이에서 소정의 일련의 데이터 전송 동작을 실행하는 단계를 포함하고,
    상기 소정의 일련의 데이터 전송 동작은 경로에 독립적이고, 상기 DRAM 기억 장치 뱅크, 상기 버퍼 구조체, 및 상기 캐쉬에 저장된 데이터의 이전의 위치에 의존하지 않는 것을 특징으로 하는 것인 데이터 이동 제어 방법.
  21. 제20항에 있어서,
    상기 n개의 DRAM 기억 장치 뱅크 각각은 m개의 관련된 워드라인, 및 관련된 기억 장치 뱅크 어드레스를 갖고,
    상기 캐쉬는, m개의 관련된 워드라인을 갖는, 제1 캐쉬 뱅크 및 제2 캐쉬 뱅크를 포함하고,
    상기 버퍼 구조체는 제1 버퍼 및 제2 버퍼를 포함하고, 상기 제1 및 제2 버퍼는 각각 그 내부에 데이터워드를 저장할 수 있고, 상기 데이터워드는 상기 DRAM 기억 장치 뱅크 중 하나 또는 상기 제1 및 제2 캐쉬 뱅크 중 하나로부터 독출된 특정 워드라인으로부터의 데이터를 포함하는 것인 데이터 이동 제어 방법.
  22. 제20항에 있어서,
    허용 가능한 상태들의 집합을 정의하는 상기 단계는 주어진 클록 싸이클의 시작점에서,
    상기 제1 및 제2 버퍼 각각이 그 내부에 유효한 데이터를 포함하고, 상기 제1 버퍼 내의 유효한 데이터는 상기 제2 버퍼 내의 유효한 데이터와 동일한 워드라인 어드레스 i(i는 0과 m 사이의 임의의 수임)를 가지며,
    상기 제1 또는 상기 제2 캐쉬 뱅크 중 어디에도 i와 동일한 워드라인 어드레스를 갖는 유효한 데이터가 없고,
    i 이외의 모든 다른 워드라인 어드레스에 대해, 하나의 데이터 워드가 상기 제1 캐쉬 뱅크 또는 상기 제2 캐쉬 뱅크 중 어느 하나의 대응하는 워드라인에 저장되는 것을 보장하는 단계를 더 포함하는 것인 데이터 이동 제어 방법.
  23. 제22항에 있어서,
    상기 요청된 데이터가 상기 버퍼 구조체에서 이용 가능하게 되는 것을 보장하는 상기 단계는 상기 주어진 클록 싸이클의 종료점까지,
    기억 장치 뱅크 어드레스 X(X는 0과 n-1 사이의 임의의 수) 및 워드라인 어드레스 j(j는 0과 m 사이의 임의의 수)에 대응하는 상기 요청된 데이터가 상기 제1 및 제2 버퍼 중 하나에 포함되고,
    상기 제1 및 제2 버퍼 중 나머지 다른 하나는 워드라인 어드레스 j와, X와는 상이한 기억 장치 뱅크 어드레스를 갖는 데이터를 포함하고,
    상기 제1 또는 상기 제2 캐쉬 뱅크 중 어디에도 j와 동일한 워드라인 어드레스를 갖는 유효한 데이터가 없고,
    j 이외의 모든 다른 워드라인 어드레스에 대해, 하나의 데이터 워드가 상기 제1 캐쉬 뱅크 또는 상기 제2 캐쉬 뱅크 중 어느 하나의 대응하는 워드라인에 저장되는 것을 보장하는 단계를 포함하는 것인 데이터 이동 제어 방법.
  24. 제23항에 있어서,
    상기 요청된 데이터가 상기 버퍼 구조체에서 이용 가능하게 되는 것을 보장하는 상기 단계는,
    상기 요청된 데이터가, 대응하는 DRAM 뱅크, 상기 제1 및 제2 버퍼 중 하나, 또는 상기 제1 및 제2 캐쉬 뱅크 중 하나에서 초기에 발견되는지 여부를 결정하는 단계를 더 포함하고,
    상기 소정의 일련의 데이터 전송 동작을 실행하는 단계는 상기 요청된 데이터의 초기 위치에 의존하는 것인 데이터 이동 제어 방법.
  25. n개의 DRAM 기억 장치 뱅크, 라인 버퍼 구조체 및 파괴 독출 DRAM 캐쉬를 갖는 파괴 독출 DRAM 시스템 내에서 데이터의 이동을 제어하는 방법으로서,
    상기 기억 장치 뱅크, 상기 버퍼 구조체, 및 상기 캐쉬 내에 존재하는 유효한 데이터에 대해 허용 가능한 상태들의 집합을 정의하는 단계와;
    상기 DRAM 기억 장치 뱅크 내에 저장된 데이터에 대해 제1 랜덤 액세스 요청 이전에 상기 DRAM 시스템을 초기화하는 단계 - 상기 초기화 단계는 상기 허용 가능한 상태들의 정의된 집합에 합치하는 것임 - 와;
    데이터에 대한 상기 제1 랜덤 액세스 요청 이후 및, 후속 데이터에 대한 임의의 차후 랜덤 액세스 요청 이후, 상기 요청된 데이터가 상기 버퍼 구조체에서 이용 가능하게 되는 것을 보장하는 단계를 포함하고,
    상기 요청된 데이터가 상기 버퍼 구조에서 이용 가능하게 되는 것을 보장하는 상기 단계 이후, 상기 허용 가능한 상태들의 집합은 유지되는 것인 데이터 이동 제어 방법.
  26. 제25항에 있어서.
    상기 요청된 데이터가 상기 버퍼 구조체에서 이용 가능하게 되는 것을 보장하는 상기 단계는, 상기 DRAM 기억 장치 뱅크 및 상기 버퍼 사이, 및 상기 캐쉬 및 상기 버퍼 사이에서 결정된 일련의 데이터 전송 동작을 실행하는 단계를 더 포함하고,
    상기 결정된 일련의 데이터 전송 동작은 경로에 독립적이고, 상기 DRAM 기억 장치 뱅크, 상기 버퍼 구조체, 및 상기 캐쉬에 저장된 데이터의 이전의 위치에 의존하지 않는 것을 특징으로 하는 것인 데이터 이동 제어 방법.
  27. 제26항에 있어서,
    n개의 DRAM 기억 장치 뱅크 각각은 m개의 관련된 워드라인, 및 관련된 기억 장치 뱅크 어드레스를 가지고,
    상기 캐쉬는 m개의 관련된 워드라인을 갖는, 제1 캐쉬 뱅크 및 제2 캐쉬 뱅크를 포함하고,
    상기 버퍼 구조체는 각각 내부에 데이터 워드를 저정할 수 있는 제1 버퍼 및 제2 버퍼를 포함하고, 상기 데이터 워드는 상기 DRAM 기억 장치 뱅크 중 하나 또는 상기 제1 및 제2 캐쉬 뱅크 중 하나로부터 독출된 특정 워드라인으로부터의 데이터를 포함하는 것인 데이터 이동 제어 방법.
  28. 제27항에 있어서,
    상기 허용 가능한 상태들의 집합을 정의하는 단계는 주어진 클록 싸이클의 시작점에서,
    상기 제1 및 제2 버퍼 각각이 그 내부에 유효한 데이터를 포함하고, 상기 제1 버퍼의 유효한 데이터는 상기 제2 버퍼 내의 유효한 데이터와 동일한 워드라인 어드레스 i(i는 0과 m 사이의 임의의 수)를 가지며,
    상기 제1 또는 상기 제2 캐쉬 뱅크 중 어디에도 i와 동일한 워드라인 어드레스를 갖는 유효한 데이터가 없고,
    i 이외의 모든 다른 워드라인 어드레스에 대해, 하나의 데이터 워드가 상기 제1 캐쉬 뱅크 또는 상기 제2 캐쉬 뱅크 중 어느 하나의 대응하는 워드라인에 저장되는 것을 보장하는 단계를 더 포함하는 것인 데이터 이동 제어 방법.
  29. 제28항에 있어서,
    상기 요청된 데이터가 상기 버퍼 구조체에서 이용 가능하게 되는 것을 보장하는 상기 단계는 상기 주어진 클록 싸이클의 종료점까지,
    기억 장치 어드레스 X(X는 0과 n-1 사이의 임의의 수) 및 워드라인 어드레스 j(j는 0과 m 사이의 임의의 수)에 대응하는 상기 요청된 데이터가 상기 제1 및 제2 버퍼 중 하나에 포함되고;
    상기 제1 및 제2 버퍼 중 나머지 다른 하나는 워드라인 어드레스 j와, X와는 상이한 기억 장치 뱅크 어드레스를 갖는 데이터를 포함하고;
    상기 제1 또는 상기 제2 캐쉬 뱅크 중 어디에도 j와 동일한 워드라인 어드레스를 갖는 유효한 데이터가 없고;
    j 이외의 모든 다른 워드라인 어드레스에 대해, 하나의 데이터 워드가 상기 제1 캐쉬 뱅크 또는 상기 제2 캐쉬 뱅크 중 어느 하나의 대응하는 워드라인에 저장되는 것을 보장하는 단계를 포함하는 것인 데이터 이동 제어 방법.
  30. 제29항에 있어서,
    상기 요청된 데이터가 상기 버퍼 구조체에서 이용 가능하게 되는 것을 보장하는 상기 단계는,
    상기 요청된 데이터가, 대응하는 DRAM 뱅크, 상기 제1 및 제2 버퍼 중 하나, 또는 상기 제1 및 제2 캐쉬 뱅크 중 하나에서 초기에 발견되는지 여부를 결정하는 단계를 더 포함하고,
    상기 결정된 일련의 데이터 전송 동작을 실행하는 단계는 상기 요청된 데이터의 초기 위치에 의존하는 것인 데이터 이동 제어 방법.
  31. 제27항에 있어서,
    상기 허용 가능한 상태들의 집합을 정의하는 단계는 주어진 클록 싸이클의 시작점에서,
    상기 제1 및 제2 버퍼 양쪽 각각이 그 내부에 유효한 데이터를 포함하는 경우, 상기 제1 버퍼의 유효한 데이터는 상기 제2 버퍼의 유효한 데이터와 동일한 워드라인 어드레스 i(i는 0과 m 사이의 임의의 수)를 가지고,
    상기 제1 및 제2 버퍼 양쪽이 그 내부에 유효한 데이터를 포함하는 경우, 또는 상기 제1 및 제2 버퍼 중 하나가 그 내부에 워드라인 어드레스 i를 갖는 유효한 데이터를 포함하는 경우, 상기 제1 또는 상기 제2 캐쉬 뱅크 중 어디에도 i와 동일한 워드라인 어드레스를 갖는 유효한 데이터가 없고;
    상기 제1 및 제2 버퍼 중 하나 또는 양쪽 버퍼 모두가 워드라인 어드레스 i를 갖는 유효한 데이터를 포함하는 경우, i 이외의 모든 다른 워드라인 어드레스에 대해, 하나의 데이터 워드가 상기 제1 캐쉬 뱅크 또는 상기 제2 캐쉬 뱅크 중 어느 하나의 대응하는 워드라인에 저장되는 것을 보장하는 단계를 더 포함하는 것인 데이터 이동 제어 방법.
  32. 제31항에 있어서,
    상기 요청된 데이터가 상기 버퍼 구조체에서 이용 가능하게 되는 것을 보장하는 상기 단계는 상기 주어진 클록 싸이클의 종료점까지,
    기억 장치 뱅크 어드레스 X(X는 0과 n-1 사이의 임의의 수) 및 워드라인 어드레스 j(j는 0과 m 사이의 임의의 수)에 대응하는 상기 요청된 데이터가 상기 제1 및 제2 버퍼 중 하나에 포함되고;
    상기 제1 또는 상기 제2 캐쉬 뱅크 중 어디에도 j와 동일한 워드라인 어드레스를 갖는 유효한 데이터가 없고;
    j 이외의 모든 다른 워드라인 어드레스에 대해, 하나의 데이터 워드가 상기 제1 캐쉬 뱅크 또는 상기 제2 캐쉬 뱅크 중 어느 하나의 대응하는 워드라인에 저장되는 것을 보장하는 단계를 포함하는 것인 데이터 이동 제어 방법.
KR1020047015299A 2002-04-25 2003-04-07 파괴 독출 메모리 캐쉬로 버퍼되는 파괴 독출 ram 시스템 KR100772998B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/063,466 2002-04-25
US10/063,466 US6801980B2 (en) 2002-04-25 2002-04-25 Destructive-read random access memory system buffered with destructive-read memory cache
PCT/US2003/010746 WO2003091883A1 (en) 2002-04-25 2003-04-07 Destructive-read random access memory system buffered with destructive-read memory cache

Publications (2)

Publication Number Publication Date
KR20040105805A true KR20040105805A (ko) 2004-12-16
KR100772998B1 KR100772998B1 (ko) 2007-11-05

Family

ID=29248086

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047015299A KR100772998B1 (ko) 2002-04-25 2003-04-07 파괴 독출 메모리 캐쉬로 버퍼되는 파괴 독출 ram 시스템

Country Status (10)

Country Link
US (3) US6801980B2 (ko)
EP (1) EP1497733B1 (ko)
JP (1) JP4150718B2 (ko)
KR (1) KR100772998B1 (ko)
CN (1) CN1296832C (ko)
AT (1) ATE513264T1 (ko)
AU (1) AU2003234695A1 (ko)
IL (1) IL164726A0 (ko)
TW (1) TW594740B (ko)
WO (1) WO2003091883A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100541366B1 (ko) * 2002-07-19 2006-01-16 주식회사 하이닉스반도체 고속 데이터 억세스를 위한 디램
DE10317162B4 (de) * 2003-04-14 2010-02-11 Qimonda Ag Speichervorrichtung mit kurzer Wortleitungszykluszeit und Leseverfahren hierzu
US20040221117A1 (en) * 2003-05-02 2004-11-04 Shelor Charles F. Logic and method for reading data from cache
US20050114588A1 (en) * 2003-11-26 2005-05-26 Lucker Jonathan C. Method and apparatus to improve memory performance
JP2006190402A (ja) * 2005-01-07 2006-07-20 Renesas Technology Corp 半導体装置
KR100672029B1 (ko) * 2005-05-27 2007-01-19 삼성전자주식회사 Dram히든 리프레쉬 동작 시 발생되는 동작 시간 지연을감소시킬 수 있는 장치와 방법
KR100970946B1 (ko) 2008-02-05 2010-07-20 부경대학교 산학협력단 플래시 메모리 기반 임베디드 데이터베이스 시스템의지연쓰기 방법 및 그를 위한 시스템
US8433880B2 (en) 2009-03-17 2013-04-30 Memoir Systems, Inc. System and method for storing data in a virtualized high speed memory system
US9442846B2 (en) 2009-03-17 2016-09-13 Cisco Technology, Inc. High speed memory systems and methods for designing hierarchical memory systems
US8266408B2 (en) * 2009-03-17 2012-09-11 Memoir Systems, Inc. System and method for storing data in a virtualized high speed memory system
WO2011075167A1 (en) * 2009-12-15 2011-06-23 Memoir Systems,Inc. System and method for reduced latency caching
CN102939590B (zh) * 2010-06-11 2016-09-14 飞思卡尔半导体公司 为在存储器元件内存储的数据提供数据保护的方法及其集成电路器件
WO2012106332A1 (en) 2011-01-31 2012-08-09 Everspin Technologies, Inc. Method of writing to a spin torque magnetic random access memory
US8675442B2 (en) 2011-10-04 2014-03-18 Qualcomm Incorporated Energy efficient memory with reconfigurable decoding
CN104484239B (zh) * 2014-12-05 2019-02-26 深圳市华宝电子科技有限公司 一种车载视频文件修复方法及装置
US10866897B2 (en) * 2016-09-26 2020-12-15 Samsung Electronics Co., Ltd. Byte-addressable flash-based memory module with prefetch mode that is adjusted based on feedback from prefetch accuracy that is calculated by comparing first decoded address and second decoded address, where the first decoded address is sent to memory controller, and the second decoded address is sent to prefetch buffer
US10650899B2 (en) * 2017-04-27 2020-05-12 Everspin Technologies, Inc. Delayed write-back in memory with calibration support
JP2019079377A (ja) 2017-10-26 2019-05-23 東芝メモリ株式会社 半導体記憶装置
KR20200091184A (ko) 2019-01-22 2020-07-30 에스케이하이닉스 주식회사 반도체 메모리 장치
US11899590B2 (en) * 2021-06-18 2024-02-13 Seagate Technology Llc Intelligent cache with read destructive memory cells

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4725945A (en) 1984-09-18 1988-02-16 International Business Machines Corp. Distributed cache in dynamic rams
US5434530A (en) * 1990-05-02 1995-07-18 Microelectronics & Computer Technology Corporation Superconducting semiconducting cross-bar circuit
US5544306A (en) 1994-05-03 1996-08-06 Sun Microsystems, Inc. Flexible dram access in a frame buffer memory and system
US6161208A (en) 1994-05-06 2000-12-12 International Business Machines Corporation Storage subsystem including an error correcting cache and means for performing memory to memory transfers
JPH08278916A (ja) * 1994-11-30 1996-10-22 Hitachi Ltd マルチチャネルメモリシステム、転送情報同期化方法及び信号転送回路
US5629889A (en) * 1995-12-14 1997-05-13 Nec Research Institute, Inc. Superconducting fault-tolerant programmable memory cell incorporating Josephson junctions
US5838943A (en) * 1996-03-26 1998-11-17 Advanced Micro Devices, Inc. Apparatus for speculatively storing and restoring data to a cache memory
US5809528A (en) 1996-12-24 1998-09-15 International Business Machines Corporation Method and circuit for a least recently used replacement mechanism and invalidated address handling in a fully associative many-way cache memory
JP3816110B2 (ja) 1997-02-17 2006-08-30 株式会社ルネサステクノロジ 半導体集積回路装置
US5801996A (en) * 1997-02-26 1998-09-01 Micron Technology, Inc. Data path for high speed high bandwidth DRAM
US6018763A (en) 1997-05-28 2000-01-25 3Com Corporation High performance shared memory for a bridge router supporting cache coherency
US6081872A (en) 1997-07-07 2000-06-27 International Business Machines Corporation Cache reloading performance improvement through the use of early select techniques with and without pipelining
KR100329024B1 (ko) 1998-03-27 2002-03-18 아끼구사 나오유끼 파괴 읽기형 메모리 회로, 이를 위한 리스토어 회로 및 감지 증폭기
US6378110B1 (en) * 1998-03-31 2002-04-23 Synopsys, Inc. Layer-based rule checking for an integrated circuit layout
JP3786521B2 (ja) * 1998-07-01 2006-06-14 株式会社日立製作所 半導体集積回路及びデータ処理システム
JP3374967B2 (ja) 1998-10-26 2003-02-10 日本電気株式会社 半導体集積回路
US6178479B1 (en) 1999-02-22 2001-01-23 Nband Communications Cycle-skipping DRAM for power saving
KR100326939B1 (ko) 1999-09-02 2002-03-13 윤덕용 고속 열 사이클이 가능한 메모리의 파이프라인 구조
JP3863330B2 (ja) * 1999-09-28 2006-12-27 株式会社東芝 不揮発性半導体メモリ
JP4427847B2 (ja) * 1999-11-04 2010-03-10 エルピーダメモリ株式会社 ダイナミック型ramと半導体装置
JP4535563B2 (ja) 2000-04-28 2010-09-01 ルネサスエレクトロニクス株式会社 半導体記憶装置
US6697909B1 (en) * 2000-09-12 2004-02-24 International Business Machines Corporation Method and apparatus for performing data access and refresh operations in different sub-arrays of a DRAM cache memory
EP1220226B1 (en) * 2000-12-20 2005-08-17 Fujitsu Limited Multi-port memory based on DRAM core
US6829682B2 (en) * 2001-04-26 2004-12-07 International Business Machines Corporation Destructive read architecture for dynamic random access memories
US6587388B2 (en) * 2001-04-27 2003-07-01 International Business Machines Corporation Method and apparatus for reducing write operation time in dynamic random access memories
US6711078B2 (en) * 2002-07-01 2004-03-23 International Business Machines Corporation Writeback and refresh circuitry for direct sensed DRAM macro

Also Published As

Publication number Publication date
KR100772998B1 (ko) 2007-11-05
US20040221097A1 (en) 2004-11-04
US6948028B2 (en) 2005-09-20
EP1497733A4 (en) 2008-04-30
TW200305882A (en) 2003-11-01
US6801980B2 (en) 2004-10-05
IL164726A0 (en) 2005-12-18
ATE513264T1 (de) 2011-07-15
AU2003234695A1 (en) 2003-11-10
US7203794B2 (en) 2007-04-10
CN1296832C (zh) 2007-01-24
WO2003091883A1 (en) 2003-11-06
EP1497733A1 (en) 2005-01-19
US20030204667A1 (en) 2003-10-30
JP2005524146A (ja) 2005-08-11
US20050226083A1 (en) 2005-10-13
JP4150718B2 (ja) 2008-09-17
CN1650270A (zh) 2005-08-03
TW594740B (en) 2004-06-21
EP1497733B1 (en) 2011-06-15

Similar Documents

Publication Publication Date Title
US7203794B2 (en) Destructive-read random access memory system buffered with destructive-read memory cache
US6647478B2 (en) Semiconductor memory device
US6829682B2 (en) Destructive read architecture for dynamic random access memories
KR100260683B1 (ko) 캐쉬 내장 동기적 동적 랜덤 액세스 메모리 소자 및 프로그래밍가능한 캐쉬 저장 정책 구현 방법
KR100257430B1 (ko) 캐쉬 내장 동기적 동적 랜덤 액세스 메모리 소자 및 프로그래밍가능한 캐쉬 저장 정책 구현 방법
US5999474A (en) Method and apparatus for complete hiding of the refresh of a semiconductor memory
US6370073B2 (en) Single-port multi-bank memory system having read and write buffers and method of operating same
US7573753B2 (en) Semiconductor device
US20060190678A1 (en) Static random access memory (SRAM) compatible, high availability memory array and method employing synchronous dynamic random access memory (DRAM) in conjunction with a single DRAM cache and tag
JP3789998B2 (ja) メモリ内蔵プロセサ
US5778428A (en) Programmable high performance mode for multi-way associative cache/memory designs
US6941414B2 (en) High speed embedded DRAM with SRAM-like interface
US6839807B2 (en) Multi-way set associative cache memory
US6252818B1 (en) Apparatus and method for operating a dual port memory cell
US7340560B2 (en) Methods and devices for accessing a memory using multiple separate address mapped temporary storage areas
JP2004355810A (ja) 半導体記憶装置
KR100335587B1 (ko) 다이나믹 랜덤 액세스 기억 장치

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
G170 Re-publication after modification of scope of protection [patent]
FPAY Annual fee payment

Payment date: 20100824

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee