KR100322367B1 - 선택 가능 비트 폭 캐시 메모리 시스템 및 그 방법 - Google Patents

선택 가능 비트 폭 캐시 메모리 시스템 및 그 방법 Download PDF

Info

Publication number
KR100322367B1
KR100322367B1 KR1019997006038A KR19997006038A KR100322367B1 KR 100322367 B1 KR100322367 B1 KR 100322367B1 KR 1019997006038 A KR1019997006038 A KR 1019997006038A KR 19997006038 A KR19997006038 A KR 19997006038A KR 100322367 B1 KR100322367 B1 KR 100322367B1
Authority
KR
South Korea
Prior art keywords
cache
words
data
group
processor
Prior art date
Application number
KR1019997006038A
Other languages
English (en)
Other versions
KR20000069855A (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 KR20000069855A publication Critical patent/KR20000069855A/ko
Application granted granted Critical
Publication of KR100322367B1 publication Critical patent/KR100322367B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/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/0877Cache access modes
    • G06F12/0879Burst mode

Landscapes

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

Abstract

캐시 메모리와 프로세서 사이의 데이타의 캐시 라인을 효율적으로 전송하기 위한 시스템 및 방법이 제공된다. M개 워드의 제1 그룹은 제1 캐시 전송 사이클에서 캐시 메모리와 프로세서 사이에서 전송되는데, 여기서 M개 워드의 제1 그룹은 태그 워드 및 캐시 라인내의 복수의 데이타 워드로부터의 태그 워드 및 M-1개 워드를 포함한다. M개 워드의 제2 그룹은 제2 캐시 전송 사이클에서 캐시 메모리와 프로세서 사이에서 전송되는데, 여기서 M개 워드의 제2 그룹은 복수의 데이타 워드로부터 M개의 부가 워드를 포함한다. 프로세서는 전체 캐시 라인이 캐시 메모리와 프로세서 사이에서 전송될 때까지 계속된다.

Description

선택 가능 비트 폭 캐시 메모리 시스템 및 그 방법{SELECTABLE BIT WIDTH CACHE MEMORY SYSTEM AND METHOD}
프로세서가 데이타에 억세스하는 속도는 그 성능에 중요한 영향을 미친다. 동시에, 균일한 고속 메모리 억세스를 제공하는 것은 가격면에서 제약이 따른다. 이 문제를 극복하기 위해서는, 컴퓨터 아키텍쳐는 고속 저집적 메모리와 저속 고용량 메모리를 혼용하는 것에 의존해왔다. 실제로, 많은 컴퓨터 아키텍쳐는 멀티레벨 메모리 아키텍쳐를 가져서 최고속 메모리에서 정보를 검색하는 것으로 되어 있다. 정보가 그 메모리에 없다면, 다음 고속 메모리가 검사된다. 이러한 프로세스는 정보가 발견될 때까지 메모리 하부 계층으로 진행된다. 그러한 메모리 계층 구조의 주요 구성 요소는 캐시 메모리이다.
캐시 메모리는 프로세서가 찾고자 하는 정보를 캐시 메모리내에서 발견하는 가능성을 증가시키려고 시도하는 국부성 원칙(principle of locality)에 따른다. 이를 위해서는, 캐시 메모리는 일반적으로 연속 데이타 블록을 기억한다. 또한, 캐시 메모리는 프로세서가 찾고자 하는 정보가 캐시 메모리내에 존재하는지를 결정하기 위해 어드레스와 비교되는 태그(tag)를 기억한다. 마지막으로, 캐시 메모리는 상태 또는 에러 보정 코드(ECC)를 함유할 것이다. 캐시 메모리는 일반적으로 정적 랜덤 억세스 메모리(SRAM)와 같은 고속 메모리 장치로 구성된다.
프로세서가 롱워드(예를 들면, 4개의 16-비트 워드)로 동작하는 경우, 프로세서 캐시 인터페이스는 데이타에 대하여 64-비트 버스를, 태그에 대하여 부가 버스를 이용하도록 기술된다. 태그 버스 폭은 변화하지만, 일반적으로 총 80비트에 대해 16-비트이다. 그러한 접근법에 대한 문제는 캐시 블록(소위 라인) 크기가 데이타 버스 폭의 4배인 경우, 매 4 버스 사이클 중 3개에 대한 태그 버스에서 유용한 정보가 나타나지 않는다는 점이다.
또한, 종래의 캐시 메모리는 캐시 라인내의 제1 워드에서 시작하고 최종 워드까지 진행되는 연속 데이타 블록으로서 캐시 라인을 전송한다. 이 캐시 라인 전송 방법은 프로세서가 캐시 라인내의 제1 워드를 필요로 하지 않아서, 찾고자 하는 워드가 전송될 때까지 수 사이클 동안 대기해야만 한다는 사실을 고려하지 않았다.
프로세서 캐시 인터페이스에서 유용한 대역폭의 이용도를 증가시키는 캐시 데이타를 기억하고 검색하는 시스템 및 방법이 필요하다. 또한, 프로세서 캐시 인터페이스 대역폭을 증가시킬 뿐만 아니라 다수의 상이한 데이타 버스 폭에 대해 이용될 수도 있는 신규한 SRAM 아키텍쳐가 필요하다. 또한, 유용한 데이타가 제1 전송 사이클에서 전송될 확률을 증가시키는 캐시 메모리로부터 프로세서까지 전송된 데이타를 순서 정렬(ordering)하는 방법이 필요하다.
본 발명은 메모리 아키텍쳐, 특히 캐시 메모리 아키텍쳐에 관한 것이다.
도 1은 프로세서가 어드레스 버스 및 데이타 버스를 통해 캐시 메모리 및 다른 메모리와 통신하는 다중 메모리 레벨 컴퓨터 시스템도.
도 2는 본 발명에 따른 캐시 메모리의 논리적 표현도.
도 3은 도 2에 따른 캐시 메모리의 실시예의 논리적 표시.
도 4a 및 4b는 본 발명에 따른 데이타, 태그 및 ECC 전송을 도시하는 도면.
도 5는 캐시 메모리의 제1 실시예의 블록도.
도 6은 캐시 메모리의 다른 실시예의 블럭도.
본 발명은 캐시 메모리로부터 프로세서로 캐시 라인 크기의 데이타를 효율적으로 전송하는 시스템 및 방법이다. M개 워드의 제1 그룹은 제1 캐시 전송 사이클 내에서 캐시 메모리와 프로세서 사이에서 전송되는데, 여기서 M개 워드의 제1 그룹은 태그 워드와 캐시 라인내의 복수의 데이타 워드 중의 M-1 워드를 포함한다. M개 워드의 제2 그룹은 제1 캐시 전송 사이클내에서 캐시 메모리와 프로세서 사이로 전송되는데, 여기서 M개 워드의 제2 그룹은 복수의 데이타 워드로부터 M개의 부가 워드를 포함한다. 프로세스는 전체 캐시 라인이 캐시 메모리와 프로세서 사이에서 전송될 때까지 계속된다.
본 발명의 다른 특성에 따르면, 선택 제어 로직이 제1 및 다음 캐시 전송 사이클 동안 전송될 최적의 데이타 워드 세트를 선택하는데 이용될 수 있다.
양호한 실시예에 대한 아래의 설명에서, 첨부된 도면이 참조되며, 본 발명이 구현되는 특정 실시예가 도시된다. 본 발명의 범위에서 벗어나지 않는 다른 실시예가 이용될 수 있고 구조 변경이 가능할 것이다.
도 1은 다중 메모리 레벨 컴퓨터 시스템(10)을 도시하는데, 프로세서(12)는 어드레스 버스(18) 및 캐시 버스(20)를 통해 캐시 메모리(14)와 메모리(16)와 통신한다. 제1 실시예에서, 프로세서(12)는 64-비트 마이크로프로세서로서, 데이타를 롱워드(예를 들면, 4개의 16-비트 워드)로서 전송한다. 그러한 실시예에서, 캐시 메모리(14)는 등가 폭 데이타 버스를 통해 사전에 얻어진 것보다 데이타 버스(20)를 통해 훨씬 높은 유용한 데이타 처리량을 제공하는 데이타 전송 방법을 이용한다. 이는 태그, ECC 및 데이타를 정보의 순서화된 블록으로 혼합하여 버스 활용도를 최대화함에 의해 성취된다.
캐시 메모리(14)는 메모리 어레이(30) 및 프로세서 캐시 인터페이스(32)를 포함한다. 캐시 메모리(14)의 논리적 표현이 도 2에 도시된다. 도 2의 시스템에서, 프로세서 캐시 인터페이스(32)는 M-워드 폭 버스를 통해 프로세서(12)에 접속된다. 캐시 메모리(14)는 N 라인 캐시로서 구성되는데, 여기서 각각의 캐시 라인은 태그 워드 및 P 워드 데이타를 포함한다. 도 2에 도시된 것과 같은 한 실시예에서, P 워드 데이타는 또한 하나 또는 그 이상의 에러 보정 코드(ECC) 워드를 포함한다. 도 2에 도시된 시스템에서, 메모리 어레이(30)는 데이타 메모리 어레이(34)와 태그ECC 어레이(36)로 논리적으로 분할될 수 있다. 그러한 논리 분할 중 하나가 도 3에 도시되는데, 여기서 캐시 라인은 태그 워드, ECC 워드 및 4개의 롱워드(각각의 롱워드는 4개의 워드로 구성됨)로 구성된다.
도 3에 도시된 시스템에서, 메모리 어레이(34)내의 데이타는 4a×64 비트 어레이로서 어드레싱되고, 태그ECC 어레이(36)내의 데이타는 a×y 어레이(y는 태그와 ECC 워드를 결합한 폭)로서 논리적으로 어드레싱된다. 그러한 실시예에서, 태그ECC 어레이(36)는 어드레스 버스(18)의 2개의 최하위 비트를 무시한다.
도 2에서 알 수 있듯이, 프로세서 캐시 인터페이스(32)는 M-워드 폭 데이타 버스(20)를 통해 메모리 어레이(30)로부터 프로세서(12)로 캐시 라인을 전송한다. 전송될 각각의 캐시 라인에 대해, 인터페이스(32)는 제1 캐시 전송 사이클에서 M개 워드의 제1 그룹을 전송한다. M개 워드의 제1 그룹은 캐시 라인으로부터 태그 워드 및 M-1개의 P 데이타를 포함한다. 제2 캐시 전송 사이클에서, 인터페이스(32)는 M개 워드의 제2 그룹을 전송한다. M개 워드의 제2 그룹은 P 데이타 워드로부터 M개의 추가 워드를 포함한다. 이 프로세스는 전체 P 데이타 워드가 데이타 버스(20)로 전송될 때까지 계속된다. P 데이타 워드가 에러 보정 코드 워드를 포함하는 한 실시예에서, 인터페이스(32)는 제1 캐시 전송 사이클내에서 전송된 M-1개 워드 중 하나로서 에러 보정 코드 워드를 전송한다.
상술한 방법은 예를 통해 이해될 수 있다. 예를 들면, 도 3에 도시된 실시예에서, M이 6인 경우 캐시 라인은 3개의 캐시 전송 사이클 40.1-3에서 전송된다. 도 4a에 도시된 것과 같은 그러한 실시예에서, 제1 M 워드 전송은 태그 워드, ECC 워드 및 4개의 롱워드 중 하나를 포함한다. 제2 M 워드 전송은 제2 롱워드 및 제3 롱워드 중 하나의 1/2를 포함하며, 제3 M 워드 전송은 제3 롱워드의 나머지와 마지막 롱워드 전체를 포함한다. 그 결과는 16-비트 워드를 기초로 한 시스템에 있어서, 80-비트 데이타 버스(20)를 통해 일반적으로 전송될 캐시 라인은 96-비트 데이타 버스(20)를 통해 3 사이클내에 전송될 수 있다.
(어드레싱된 워드 및 캐시 라인 태그 워드를 프로세스내에서 가능한 빨리, 양호하게는 제1 전송 사이클내에서 전송하는 것은 중요하다. 반대로, ECC는 전체 캐시 라인이 수신될 때까지 이용될 수 없다; 그러므로 이는 전송될 데이타 중 가장 덜 중요하다. 도 4a에 도시된 실시예에서, ECC는 제1 전송 사이클내에서 전송된다. 이러한 순서는 캐시 라인 데이타 워드를 전송하는데 필요한 로직을 간략하게 하고 필요한 기록 경로(pathway)의 수를 감소시킨다. 또한, ECC는 반드시 필요한 구성 요소는 아니고 이것이 구현되는 공간을 고려하는데 유용하다. ECC가 바람직하지 않다면, 슬롯은 캐시 스누핑과 같은 제어 기능을 위해 이용될 수 있다.)
반면에, 도 3을 기초로 한 시스템에서, M이 5로 선택되는 경우, 캐시 라인 전송은 4개의 캐시 전송 사이클 50. 1-4을 필요로 할 것이다. 그러한 실시예에서, 도 4b에 도시된 것처럼, 제1 M-워드 전송은 태그 워드 및 4개의 롱워드 중 하나를 포함한다. 제2 M-워드 전송은 ECC 워드 및 제2 롱워드를 포함한다. 제3 M-워드 전송은 제3 롱워드 및 임의의 부가 ECC 워드(필요한 경우)를 포함하며, 제4 M-워드 전송은 마지막 롱워드를 포함한다.
일실시예에서, 캐시 메모리(14)는 M이 5인 경우와 M이 6인 경우 모두를 기초로 한 아키텍쳐를 지원할 수 있는 메모리 어레이를 이용하여 수행된다. 그러한 캐시 메모리(14)가 도 5에 도시된다. 캐시 메모리(14)는 캐시 메모리 어레이(61), 라우팅 회로(routing circuit; 64) 및 프로세서 캐시 인터페이스(66)를 포함한다. 캐시 메모리 어레이(61)는 데이타 메모리 어레이(60), 태그ECC 메모리 어레이(62) 및 센스 회로(68)를 포함한다. 데이타 메모리 어레이(60) 및 태그ECC 메모리 어레이(62)는 센스 회로(68) 및 라우팅 회로(64)를 통해 프로세서 캐시 인터페이스(66)로 접속된다. 라우팅 회로(64)는 선택 회로(65) 및 선택 제어 로직(67)을 포함한다. 선택 제어 로직(67)은 워드를 선택 회로(65)를 통해 어레이(60 및 62)로부터 워드 프로세서-클라이언트 인터페이스(66)내의 특정 워드까지 전송하는 것을 제어한다. 도시된 실시예에서, 결합된 데이타 메모리 어레이(60)과 태그ECC 메모리 어레이(62)의 각각의 라인은 캐시 메모리(14)내의 캐시 라인이다.
16-비트 워드에 대해, 도 5에 도시된 아키텍쳐는 데이타 주문 방식을 채용하여 80-비트 버스로 이전에 얻어진 것보다 96-비트 버스를 통해 더욱 유용한 데이타 처리가 가능하도록 한다. 이를 수행하기 위해서, 아키텍쳐는 데이타, 태그, 상태(status) 및 ECC를 집적한다. 도시한 예에서 (이 예는 4개의 롱워드 데이타 연산자(롱워드 1-4), 태그, 선택적 상태 및/또는 ECC로 구성됨) 전체 블록은 적절한 폭에서(라우팅 회로(64)를 통해) 외부 라우팅으로 한 번에 조작된다.
도 5의 데이타 메모리(60), 태그ECC 어레이(62) 및 센스 회로(68)용으로 이용되는 아키텍쳐의 장점은 80(+) 또는 96-비트 데이타 주문 개념에 따라 메모리 어레이 내용을 프로세서 캐시 인터페이스로 또는 프로세서 캐시 인터페이스로부터 라우트(route)할 수 있다는 점이다. 도 5에서, 6 워드 폭 동작을 이행하도록 라우팅 회로(64)내에서 필요한 경로는 화살표로 도시된다. 각각의 캐시 메모리 전송 사이클에서, 선택 제어 로직(67)은 복합 6 워드 폭 버스 트랜잭션(transaction)을 제공하기 위해 34개의 가용 경로(available pathway) 중 6개를 인에이블한다. 16-비트 워드가 이용되는 실시예 중 한 그룹에서, 데이타 메모리 어레이(60)는 256-비트 폭이며 tag+ECC+status 어레이(62)는 16 내지 32 비트 폭이다. tag+ECC+status 어레이가 16-비트 폭 또는 그 미만인 경우, 하나 적은 경로가 필요하다(즉, tag/ECC 어레이로부터 도면내의 출력 워드수(2)까지의 경로 제거). 이러한 아키텍쳐를 이용하여, 데이타 트랜잭션의 밀집(compactness)으로 인해 80-비트에서의 4개의 사이클내에 존재하는 동수의 데이타 및 태그 정보를 공급하도록 충분한 대역폭이 3개의 96-비트 사이클내에 있다.
도 6은 80(+) 비트 디바이스 데이타 라우팅 이행을 하는 캐시 메모리(14)의 물리적 구조를 도시한다. 도 5에서 같이, 캐시 메모리(14)는 캐시 메모리 어레이(61)를 포함한다. 캐시 메모리 어레이(61)는 데이타 메모리 어레이(60), 태그ECC 메모리 어레이(62) 및 센스 회로(68)를 포함한다. 또한, 도 6의 캐시 메모리(14)는 라우팅 회로(74) 및 프로세서 캐시 인터페이스(76)를 포함한다. 데이타 메모리 어레이(60) 및 태그ECC 메모리 어레이(62)는 센스 회로(68) 및 라우팅 회로(74)를 통해 프로세서 캐시 인터페이스(76)로 접속된다. 라우팅 회로(74)는 선택 회로(65)를 통해 어레이(60 및 62)로부터 프로세서-클라이언트 인터페이스(76)내의 특정 워드로 워드를 전송하는 것을 제어한다. 도 5에 도시된 실시예와 같이, 도 6에 도시된 아키텍쳐는 데이타, 태그, 상태 및 ECC를 집적한다. 이 예에서, 도시된 전체 블록(이 예에서는 4개의 롱워드 데이타 연산자(롱워드 1-4), 태그, 선택적으로 상태 및/또는 ECC로 구성됨)은 적절한 폭에서 (라우팅 회로(74)를 통해) 외부 라우팅으로 한 번에 조작된다.
도 6에 도시된 실시예에서, 5개의 워드 폭 동작을 이행하기 위해 라우팅 회로(74)내에서 필요한 경로는 화살표로 도시된다. 각각의 캐시 메모리 전송 사이클에서, 선택 제어 로직(77)은 5개의 복합 워드 폭 버스 트랜잭션을 제공하기 위해 17-20개의 가용 경로 중 5개를 인에이블시킨다. 도 5에 도시된 것처럼, 16-비트 워드가 이용되는 실시예의 한 그룹에서, 데이타 메모리 어레이(60)는 256-비트 폭이며 tag+ECC+status 어레이(62)는 16 내지 32-비트 폭이다. tag+ECC+status 어레이(62)가 16-비트 폭 또는 그 이하인 경우, 하나 작은 경로가 필요하다(즉, 17개의 경로만이 필요함). 반면에, tag+ECC+status 어레이(62)는 4개의 워드 폭까지 가능하고 모든 필요한 전송은 단지 4개의 전송 사이클로 가능하다(그러한 한 실시예에서, tag+ECC+status 어레이(62)는 80-비트로 최대 64-비트 폭이 될 수 있어서 20개의 필요한 경로가 되어, 전체는 출력 블록 수(1)로 피딩된다). ECC 및 상태 정보는 과거 태그 사용만으로 제한된 비트에 대해 처리를 하므로, 이러한 아키텍쳐는 일반적으로 태그만으로 정의된 비트를 더 이용하도록 하는 능력면에서 종래의 이행보다 우수하다.
도 5 및 6을 통해 알 수 있듯이, 도 6의 라우팅 회로(74) 및 프로세서 캐시 인터페이스(76)는 기본적으로 도 5의 라우팅 회로(64) 및 프로세서 캐시 인터페이스(66)의 서브 세트이다(도 5의 블록 1 및 2는 도 6의 블록 1로 병합됨). 그러므로, 동일한 캐시 메모리(14) 아키텍쳐는 필요한 선택 로직 변경한 6 워드 폭(예를 들면, 96-비트) 또는 5 워드 폭(예를 들면, 80(+) 비트) 디바이스로서 기능할 수 있다.
실시예의 한 그룹에서, 선택 제어 로직(67) 및 선택 제어 로직(77)은 데이타 메모리 어레이(60)내에 기억되는 순서로 어레이(60)로부터 데이타 워드를 전송한다(예를 들면, 롱워드 1은 롱워드 2-4 다음의 제1로 전송된다). 그러한 접근법은 제1 워드 또는 전송된 최종 워드가 프로세서(12)에 의해 검색된 것인지를 고려하지 않는다. 이에 대한 이유로는, 전체 블록 데이타에 대한 동작 과정에서, 데이타를 이용하는 최고 확률은 초기 어드레스에 대해 100%이고, 각 다음 어드레스에 대해선 낮다. 이전 어드레스에 대해서는 확률은 훨씬 낮다. 그러므로, 데이타 전송을 최적화하기 위해 설계된 시스템 - 예를 들면 초기 어드레스가 01인 경우 - 에서, 그 이전의 어드레스 즉 00은 가장 낮은 필요성을 가지고 그러므로 최하위 우선도를 가져야 한다.
이를 고려하여 선택 제어 로직(67 및 77)은 캐시 라인의 내용을 프로세서(12)로 보다 효율적으로 전송하도록 설계될 수 있다. 한 실시예에서, 제어 로직(67 및 77)은 프로세서가 특정 워드를 필요로 할 확률의 결정에 따라 순서대로 캐시 라인 데이타 워드를 프로세서로 전송한다. 이러한 접근법은 도 4a 및 4b를 참조로 잘 이해된다. 그러한 실시예에서, 워드 A, B, C, 및 D자체의 순서는 프로세서로의 데이타 순서의 엄격성을 표시한다. 엄격히 순서화된 것으로 간주되는 실제 물리적 어드레스는 실제 이행에서는 프로세서마다 상이하며, 모듈러-4 선형 버스트, 모듈러-4 인터리브 순서 등을 포괄한다. 일반적인 선형 어드레싱 마이크로프로세서(예를 들면, PowerPC 또는 Cyrix M1)에 대해, 최적 전송 순서는 모듈러-4 선형 버스트이다. 이러한 순서는 표 1에 도시된다. 이러한 유형의 프로세서에 대한 다른 순서는 캐시 메모리와 프로세서 사이의 전송 대역폭의 최대 이용을 방지한다. 그러므로, A, B, C, D는 2진수 형태로 표시된 아래의 순서를 도시하는데 여기서 x는 "임의의"를 의미한다.
4 항목 캐시 라인의 선형 버스트 데이타 순서
초기 어드레스 A B C D
x00 x00 x01 x10 x11
x01 x01 x10 x11 x00
x10 x10 x11 x00 x01
x11 x11 x00 x01 x11
4개의 항목 캐시 라인의 항목들은 워드, 롱워드 등이 될 수 있음에 유의해야 한다.
인터리빙된 버스 순서를 요구하는(예를 들면, Intel Pentium) 프로세서에 대해서는, 모듈러-4 인터리브된 순서가 이용될 수 있다. 이러한 순서는 표 2에 도시된다.
4 항목 캐시 라인의 인터리빙된 버스트 데이타 순서
초기 어드레스 A B C D
x00 x00 x01 x10 x11
x01 x01 x00 x11 x10
x10 x10 x11 x00 x01
x11 x11 x10 x01 x00
실시예에서, 캐시 라인 데이타 워드가 전송되는 순서는 프로그램 가능하다. 그러한 디바이스는 예를 들면 동일한 캐시 디바이스와 순서화되는 인터리빙 버스트 데이타 및 선형 버스트 데이타 모두를 가능하게 한다. 다른 실시예에서, 데이타 순서는 프로그램 또는 수행되는 프로그램(예를 들면, 메모리를 통해 특정 간격에서 동작하는 프로그램)의 특징을 반영하도록 변경될 수 있다.
데이타 순서는 이행의 복잡성을 최소화하고 한 메모리 어레이 설계가 96 또는 80-비트 버스 디바이스로서 동작하도록 설계된다. 도 4a에 도시된 실시예에서, 4 연산자, 태그 및 ECC의 전체 블록은 3 버스 사이클에서 전송된다. 태그 및 ECC 데이타는 제1 사이클 동안만 나타나고, 사이클 2 및 3 동안 데이타 전송을 위한 이들 입력/출력 라인을 자유롭게 한다. 도시된 실시예에서, 태그 및 ECC는 임의 방식으로 유용한 2 워드 중에서 분할(partition)될 수 있다.
반면에, 도 4b에 도시된 실시예에서, 4개의 버스 사이클은 여전히 모든 필요한 데이타를 전송할 것을 요청한다. 그러나, 상술한 것처럼 도 4a 및 6에 도시된 접근법은 가능한 것 이상의 큰 태그 및/또는 ECC를 허용하여, 80 입력/출력 라인의 이용을 한층 개선한다. 태그 및 ECC는 제1 내지 제4 캐시 전송 사이클(50) 교차하여 제1 슬롯을 공유할 수 있다. 그러나, 모든 태그 정보가 제1 사이클 내에서 공급될 수 있고 비-시간-중요 정보가 다음 사이클에서 나타난다면 성능은 최대화된다(TAG/ECC로 분류된 항목은 ECC, 범용 상태 정보 또는 시스템(10)에 의해 필요한 임의의 태그 확장의 임의의 조합이 될 수 있음).
ECC는 필수 구성 요소는 아니나, 이가 이행되기 위한 공간을 허용하는데는 있어서는 중요하다. 한 실시예에서, 이행은 완전 블록(태그 플러스 데이타 A, B, C 및 D)의 단일 데이타 검사로 구성된다. 이는 21 비트 태그/상태 정보까지의 256비트의 데이타 가산에 대한 ECC의 11 비트를 요구한다. 21 비트는 96-비트 디바이스에 부과된 제한이다.
80-비트 동작에 대해서는, 성능을 최대화하기 위해서, 태그 제한은 16비트이다. 더 이상의 태그 비트가 필요한 경우, 80-비트는 추가 필요 비트를 수용하기 위해 합리적으로 확장된다. 예를 들면, 16-비트 폭 데이타 워드를 기초로 한 시스템(10)에서, 2-비트 태그가 필수인 경우, 이는 84-비트 데이타 버스(20)를 포괄할 것이다. ECC의 11비트는 합리적으로 태그 크기와 무관하게 충분하다.
본 발명이 선택된 실시예를 참조로 설명되었지만, 당업자라면 본 발명의 기술 사상 및 범위로부터 벗어나지 않고 형태와 세부에 대한 변경이 가능함을 인지할 것이다. 특히, 상세한 설명에서는 16-비트 워드에 관하여 기술되었지만, 프로세서를 캐시에 접속하는 버스의 폭과 같이 데이타, 태그 또는 ECC 워드의 폭도 증가 또는 감소될 수 있으며, 청구 범위 범위 내에서 그 이상도 가능하다.

Claims (19)

  1. 프로세서 및 캐시 메모리를 갖는 컴퓨터 시스템 - 상기 캐시 메모리는 프로세서 캐시 인터페이스 및 복수의 캐시 라인을 포함하며, 각각의 캐시 라인은 복수의 데이타 워드를 포함하며, 상기 프로세서 및 상기 프로세서 캐시 인터페이스는 M-워드 폭 데이타 버스(M은 2보다 큼)에 의해 접속됨 - 에서, 상기 복수의 캐시 라인으로부터의 단일 캐시 라인을 상기 캐시 메모리로부터 상기 프로세서로 전송하는 방법에 있어서,
    제1 캐시 전송 사이클에서 M개 워드의 제1 그룹을 전송하는 단계 - 상기 M 워드의 제1 그룹은 캐시 태그 워드 및 상기 복수의 데이타 워드 중 M-1개 워드를 포함함 - ;
    제2 캐시 전송 사이클에서 M개 워드의 제2 그룹을 전송하는 단계 - 상기 M개 워드의 제2 그룹은 상기 복수의 데이타 워드로부터의 M개 부가 워드를 포함함 - ; 및
    제3 캐시 전송 사이클에서 M개 워드의 제3 그룹을 전송하는 단계 - 상기 M개 워드의 제3 그룹은 상기 복수의 데이타 워드로부터의 M개 부가 워드를 포함함 -
    를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 각 캐시 라인내의 상기 복수의 데이타 워드는 에러 보정 코드 워드를 포함하며, 상기 M개 워드의 제1 그룹을 전송하는 상기 단계는 상기 캐시라인에 대한 에러 보정 코드를 전송하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서, 상기 M은 6인 것을 특징으로 하는 방법.
  4. 제1항에 있어서, 상기 M개 워드의 제1 그룹을 전송하는 상기 단계는 캐시 라인 데이타 워드의 전송을 위한 최적 전송 순서를 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제4항에 있어서, 각각의 캐시 라인내의 상기 복수의 데이타 워드는 에러 보정 코드 워드를 포함하며, 상기 M개 워드의 제2 그룹을 전송하는 상기 단계는 상기 캐시 라인에 대한 에러 보정 코드 워드를 전송하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 제5항에 있어서, 상기 M은 5인 것을 특징으로 하는 방법.
  7. 캐시 메모리에 있어서,
    복수의 캐시 라인을 갖는 캐시 메모리 어레이 - 상기 캐시 라인 각각은 태그 워드 및 복수의 데이타 워드를 포함함 - ;
    M-워드 폭 버스를 포함하는 프로세서 캐시 인터페이스 - 상기 M은 2 이상임 - ; 및
    상기 메모리 어레이 및 상기 프로세서 캐시 인터페이스 버스에 접속된 라우팅 회로(routing circuit)를 포함하되, 상기 라우팅 회로는 제1 캐시 전송 사이클에서 M개 워드의 제1 그룹을 전송하기 위한 제1 사이클 전송 수단 - 상기 제1 그룹은 캐시 태그 워드 및 상기 복수의 데이타 워드로부터의 M-1 워드를 포함함 - , 제2 캐시 전송 사이클에서 M개 워드의 제2 그룹을 전송하기 위한 제2 사이클 전송 수단, 및 제3 캐시 전송 사이클에서 M개 워드의 제3 그룹을 전송하기 위한 제3 사이클 전송 수단을 포함하는 것을 특징으로 하는 캐시 메모리.
  8. 제7항에 있어서, 상기 라우팅 회로는 선택 제어 로직을 더 포함하되, 상기 선택 제어 로직은 상기 제1 캐시 전송 사이클 동안 전송될 최적의 데이타 워드 세트를 선택하는 것을 특징으로 하는 캐시 메모리.
  9. 제8항에 있어서, 상기 최적의 데이타 워드 세트는 최적 전송 순서의 함수로서 결정되는 것을 특징으로 하는 캐시 메모리.
  10. 제7항에 있어서, 각각의 캐시 라인내의 상기 복수의 데이타 워드는 에러 보정 코드 워드를 포함하며, 상기 제1 캐시 전송 사이클에서 전송된 상기 M-1개 워드는 상기 캐시 라인에 대한 에러 보정 코드 워드를 포함하는 것을 특징으로 하는 캐시 메모리.
  11. 제10항에 있어서, 상기 M은 6인 것을 특징으로 하는 캐시 메모리.
  12. 제10항에 있어서, 상기 라우팅 회로는 선택 제어 로직을 더 포함하되, 상기 선택 제어 로직은 상기 제1 캐시 전송 사이클 동안 전송될 최적의 데이타 워드 세트를 선택하고, 상기 최적의 데이타 워드 세트는 최적 전송 순서의 함수로써 결정되는 것을 특징으로 하는 캐시 메모리.
  13. 제12항에 있어서, 상기 각각의 캐시 라인내의 복수의 데이타 워드는 에러 보정 코드 워드를 포함하며, 상기 제2 캐시 전송 사이클에서 전송된 상기 M개 워드는 에러 보정 코드 워드를 포함하는 것을 특징으로 하는 캐시 메모리.
  14. 제13항에 있어서, 상기 M은 5인 것을 특징으로 하는 캐시 메모리.
  15. 컴퓨터 시스템에 있어서,
    어드레스 버스 및 M-워드 폭 데이타 버스를 갖는 프로세서 - 상기 M은 2보다 큼 - ;
    상기 어드레스 버스 및 상기 데이타 버스에 의해 상기 프로세서에 접속된 메모리; 및
    캐시 메모리를 포함하되, 상기 캐시 메모리가
    복수의 캐시 라인을 갖는 메모리 어레이 - 상기 캐시 라인 각각은 태그 워드 및 복수의 데이타 워드를 포함함 - ,
    상기 어드레스 버스 및 상기 데이타 버스에 의해 상기 프로세서 및 상기 메모리에 접속된 프로세서 캐시 인터페이스, 및
    상기 메모리 어레이 및 상기 프로세서 캐시 인터페이스 버스에 접속된 라우팅 회로 - 상기 라우팅 회로는 제1 캐시 전송 사이클에서 M개 워드의 제1 그룹을 전송하기 위한 제1 사이클 전송 수단 - 상기 제1 그룹은 캐시 태그 워드 및 상기 복수의 데이타 워드로부터의 M-1개 워드를 포함함 - , 제2 캐시 전송 사이클에서 M개 워드의 제2 그룹을 전송하기 위한 제2 사이클 전송 수단, 및 제3 캐시 전송 사이클에서 M개 워드의 제3 그룹을 전송하기 위한 제3 사이클 전송 수단을 포함함 -
    를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  16. 제15항에 있어서, 상기 라우팅 회로는 선택 제어 로직을 더 포함하되, 상기 선택 제어 로직은 상기 제1 캐시 전송 사이클 동안 전송될 최적의 데이타 워드 세트를 선택하는 것을 특징으로 하는 컴퓨터 시스템.
  17. 제16항에 있어서, 각각의 캐시 라인내의 상기 복수의 데이타 워드는 에러 보정 코드 워드를 포함하며, 상기 제1 캐시 전송 사이클에서 전송된 상기 M-1개 워드는 상기 캐시 라인에 대한 상기 에러 보정 코드 워드를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  18. 제17항에 있어서, 상기 M은 6인 것을 특징으로 하는 컴퓨터 시스템.
  19. 제16항에 있어서, 상기 M은 5이고, 상기 제2 캐시 전송 사이클에서 전송된 상기 M개 워드는 에러 보정 코드 워드를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
KR1019997006038A 1997-01-03 1997-12-30 선택 가능 비트 폭 캐시 메모리 시스템 및 그 방법 KR100322367B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/778,886 US5862154A (en) 1997-01-03 1997-01-03 Variable bit width cache memory architecture
US08/778,886 1997-01-03
US8/778,886 1997-01-03

Publications (2)

Publication Number Publication Date
KR20000069855A KR20000069855A (ko) 2000-11-25
KR100322367B1 true KR100322367B1 (ko) 2002-02-07

Family

ID=25114686

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019997006038A KR100322367B1 (ko) 1997-01-03 1997-12-30 선택 가능 비트 폭 캐시 메모리 시스템 및 그 방법

Country Status (6)

Country Link
US (2) US5862154A (ko)
EP (1) EP0950221A1 (ko)
JP (1) JP2000509862A (ko)
KR (1) KR100322367B1 (ko)
AU (1) AU5811898A (ko)
WO (1) WO1998029812A1 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5825788A (en) * 1996-05-20 1998-10-20 Micron Technology Inc. Data ordering for cache data transfer
US5862154A (en) * 1997-01-03 1999-01-19 Micron Technology, Inc. Variable bit width cache memory architecture
US6449679B2 (en) * 1999-02-26 2002-09-10 Micron Technology, Inc. RAM controller interface device for RAM compatibility (memory translator hub)
US6360297B1 (en) 1999-11-09 2002-03-19 International Business Machines Corporation System bus read address operations with data ordering preference hint bits for vertical caches
US6874063B1 (en) * 1999-11-09 2005-03-29 International Business Machines Corporation System bus read data transfers with data ordering control bits
US6535957B1 (en) 1999-11-09 2003-03-18 International Business Machines Corporation System bus read data transfers with bus utilization based data ordering
US6349360B1 (en) * 1999-11-09 2002-02-19 International Business Machines Corporation System bus read address operations with data ordering preference hint bits
US6463506B1 (en) * 2000-04-29 2002-10-08 Hewlett-Packard Company Arrangement of data within cache lines so that tags are first data received
DE10041377A1 (de) * 2000-08-23 2002-03-14 Infineon Technologies Ag Integrierte Halbleiterschaltung mit in einem Halbleiterchip eingebetteter Halbleiterspeicheranordnung
DE60329380D1 (de) * 2002-04-10 2009-11-05 Nxp Bv Datenverarbeitungssystem mit mehreren registerbänke
US7123521B1 (en) 2005-04-27 2006-10-17 Micron Technology, Inc. Random cache read
US7810017B2 (en) 2006-03-20 2010-10-05 Micron Technology, Inc. Variable sector-count ECC
EP2487794A3 (en) * 2006-08-22 2013-02-13 Mosaid Technologies Incorporated Modular command structure for memory and memory system
US7529149B2 (en) * 2006-12-12 2009-05-05 Mosaid Technologies Incorporated Memory system and method with serial and parallel modes
WO2008098342A1 (en) * 2007-02-16 2008-08-21 Mosaid Technologies Incorporated Semiconductor device and method for reducing power consumption in a system having interconnected devices
US8134852B2 (en) * 2008-10-14 2012-03-13 Mosaid Technologies Incorporated Bridge device architecture for connecting discrete memory devices to a system
US7957173B2 (en) * 2008-10-14 2011-06-07 Mosaid Technologies Incorporated Composite memory having a bridging device for connecting discrete memory devices to a system
US20100115172A1 (en) * 2008-11-04 2010-05-06 Mosaid Technologies Incorporated Bridge device having a virtual page buffer
US8549209B2 (en) * 2008-11-04 2013-10-01 Mosaid Technologies Incorporated Bridging device having a configurable virtual page size
US20120297256A1 (en) * 2011-05-20 2012-11-22 Qualcomm Incorporated Large Ram Cache
US8775904B2 (en) * 2011-12-07 2014-07-08 International Business Machines Corporation Efficient storage of meta-bits within a system memory
US8793721B1 (en) * 2012-02-23 2014-07-29 The Directv Group, Inc. System and method for providing multiple rating versions in media programming
US10534642B2 (en) * 2017-09-25 2020-01-14 International Business Machines Corporation Application restore time from cloud gateway optimization using storlets
US10990472B2 (en) 2018-07-24 2021-04-27 Micron Technology, Inc. Spare substitution in memory system
FR3089317A1 (fr) * 2018-12-03 2020-06-05 Stmicroelectronics (Rousset) Sas Procédé de gestion de l’espace mémoire d’un dispositif de mémoire et système correspondant

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3848234A (en) * 1973-04-04 1974-11-12 Sperry Rand Corp Multi-processor system with multiple cache memories
US4084234A (en) * 1977-02-17 1978-04-11 Honeywell Information Systems Inc. Cache write capacity
US4386402A (en) * 1980-09-25 1983-05-31 Bell Telephone Laboratories, Incorporated Computer with dual vat buffers for accessing a common memory shared by a cache and a processor interrupt stack
US4885680A (en) * 1986-07-25 1989-12-05 International Business Machines Corporation Method and apparatus for efficiently handling temporarily cacheable data
US5053951A (en) * 1986-12-23 1991-10-01 Bull Hn Information Systems Inc. Segment descriptor unit for performing static and dynamic address translation operations
US5091850A (en) * 1987-09-28 1992-02-25 Compaq Computer Corporation System for fast selection of non-cacheable address ranges using programmed array logic
US5184320A (en) * 1988-02-12 1993-02-02 Texas Instruments Incorporated Cached random access memory device and system
US5109497A (en) * 1989-01-27 1992-04-28 Hughes Aircraft Company Arithmetic element controller for controlling data, control and micro store memories
US5155824A (en) * 1989-05-15 1992-10-13 Motorola, Inc. System for transferring selected data words between main memory and cache with multiple data words and multiple dirty bits for each address
US5015883A (en) * 1989-10-10 1991-05-14 Micron Technology, Inc. Compact multifunction logic circuit
JPH03219345A (ja) 1990-01-25 1991-09-26 Toshiba Corp 多ポートキャッシュメモリ制御装置
US5164944A (en) * 1990-06-08 1992-11-17 Unisys Corporation Method and apparatus for effecting multiple error correction in a computer memory
JPH0484253A (ja) * 1990-07-26 1992-03-17 Mitsubishi Electric Corp バス幅制御回路
US5293603A (en) * 1991-06-04 1994-03-08 Intel Corporation Cache subsystem for microprocessor based computer system with synchronous and asynchronous data path
US5228134A (en) * 1991-06-04 1993-07-13 Intel Corporation Cache memory integrated circuit for use with a synchronous central processor bus and an asynchronous memory bus
WO1993013481A1 (en) * 1991-12-23 1993-07-08 Intel Corporation Interleaved cache for multiple accesses per clock in a microprocessor
US5586303A (en) * 1992-02-12 1996-12-17 Integrated Device Technology, Inc. Structure and method for providing a cache memory of selectable sizes
US5423016A (en) * 1992-02-24 1995-06-06 Unisys Corporation Block buffer for instruction/operand caches
US5235221A (en) * 1992-04-08 1993-08-10 Micron Technology, Inc. Field programmable logic array with speed optimized architecture
EP0567707A1 (en) * 1992-04-30 1993-11-03 International Business Machines Corporation Implementation of column redundancy in a cache memory architecture
US5300830A (en) * 1992-05-15 1994-04-05 Micron Semiconductor, Inc. Programmable logic device macrocell with an exclusive feedback and exclusive external input lines for registered and combinatorial modes using a dedicated product term for control
US5287017A (en) * 1992-05-15 1994-02-15 Micron Technology, Inc. Programmable logic device macrocell with two OR array inputs
US5220215A (en) * 1992-05-15 1993-06-15 Micron Technology, Inc. Field programmable logic array with two or planes
US5298803A (en) * 1992-07-15 1994-03-29 Micron Semiconductor, Inc. Programmable logic device having low power microcells with selectable registered and combinatorial output signals
US5361238A (en) * 1993-05-12 1994-11-01 Hughes Aircraft Company Optical cache memory for magnetic and optical disk storage
US5553263A (en) * 1993-07-16 1996-09-03 Unisys Corporation Cache memory system with fault tolerance having concurrently operational cache controllers processing disjoint groups of memory
US5553259A (en) * 1993-07-16 1996-09-03 Unisys Corporation Apparatus and method for synchronizing the simultaneous loading of cache program word addresses in dual slice registers
US5432804A (en) * 1993-11-16 1995-07-11 At&T Corp. Digital processor and viterbi decoder having shared memory
US5701503A (en) 1994-01-04 1997-12-23 Intel Corporation Method and apparatus for transferring information between a processor and a memory system
US5590352A (en) * 1994-04-26 1996-12-31 Advanced Micro Devices, Inc. Dependency checking and forwarding of variable width operands
US5406525A (en) * 1994-06-06 1995-04-11 Motorola, Inc. Configurable SRAM and method for providing the same
US5809530A (en) 1995-11-13 1998-09-15 Motorola, Inc. Method and apparatus for processing multiple cache misses using reload folding and store merging
US5781926A (en) 1996-05-20 1998-07-14 Integrated Device Technology, Inc. Method and apparatus for sub cache line access and storage allowing access to sub cache lines before completion of line fill
US5825788A (en) * 1996-05-20 1998-10-20 Micron Technology Inc. Data ordering for cache data transfer
US5781923A (en) 1996-05-28 1998-07-14 Hewlett-Packard Company Adding a field to the cache tag in a computer system to indicate byte ordering
US5960453A (en) * 1996-06-13 1999-09-28 Micron Technology, Inc. Word selection logic to implement an 80 or 96-bit cache SRAM
US5862154A (en) * 1997-01-03 1999-01-19 Micron Technology, Inc. Variable bit width cache memory architecture
US5809514A (en) 1997-02-26 1998-09-15 Texas Instruments Incorporated Microprocessor burst mode data transfer ordering circuitry and method

Also Published As

Publication number Publication date
WO1998029812A1 (en) 1998-07-09
US6175942B1 (en) 2001-01-16
KR20000069855A (ko) 2000-11-25
JP2000509862A (ja) 2000-08-02
AU5811898A (en) 1998-07-31
US5862154A (en) 1999-01-19
EP0950221A1 (en) 1999-10-20

Similar Documents

Publication Publication Date Title
KR100322367B1 (ko) 선택 가능 비트 폭 캐시 메모리 시스템 및 그 방법
US6526474B1 (en) Content addressable memory (CAM) with accesses to multiple CAM arrays used to generate result for various matching sizes
US6732236B2 (en) Cache retry request queue
US5363484A (en) Multiple computer system with combiner/memory interconnection system employing separate direct access link for transferring information packets
US4041472A (en) Data processing internal communications system having plural time-shared intercommunication buses and inter-bus communication means
US4866603A (en) Memory control system using a single access request for doubleword data transfers from both odd and even memory banks
US5638516A (en) Parallel processor that routes messages around blocked or faulty nodes by selecting an output port to a subsequent node from a port vector and transmitting a route ready signal back to a previous node
EP0380855B1 (en) Memory configuration for use with means for interfacing a system control unit for a multi-processor system with the system main memory
US7342816B2 (en) Daisy chainable memory chip
CN86107763B (zh) 具有相邻地址空间的存贮器系统
KR100322366B1 (ko) Sram캐시용워드폭선택
JP2648548B2 (ja) コンピュータ・メモリ
JPH0728764A (ja) プロセツサ−メモリ間のトラフイツク径路指定装置及び方法
US6321359B1 (en) Data ordering for cache data transfer
US20080028175A1 (en) Self Timed Memory Chip Having an Apportionable Data Bus
US4796222A (en) Memory structure for nonsequential storage of block bytes in multi-bit chips
US7620763B2 (en) Memory chip having an apportionable data bus
US4992979A (en) Memory structure for nonsequential storage of block bytes in multi bit chips
US7844769B2 (en) Computer system having an apportionable data bus and daisy chained memory chips
US20080028126A1 (en) Memory System Having an Apportionable Data Bus and Daisy Chained Memory Chips
US9146874B2 (en) Dual access for single port cache
JPH0438014B2 (ko)
US7660942B2 (en) Daisy chainable self timed memory chip
US6397291B2 (en) Method and apparatus for retrieving data from a data storage device
US7617350B2 (en) Carrier having daisy chained memory chips

Legal Events

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

Payment date: 20101222

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee