KR100322366B1 - Sram캐시용워드폭선택 - Google Patents

Sram캐시용워드폭선택 Download PDF

Info

Publication number
KR100322366B1
KR100322366B1 KR1019980710264A KR19980710264A KR100322366B1 KR 100322366 B1 KR100322366 B1 KR 100322366B1 KR 1019980710264 A KR1019980710264 A KR 1019980710264A KR 19980710264 A KR19980710264 A KR 19980710264A KR 100322366 B1 KR100322366 B1 KR 100322366B1
Authority
KR
South Korea
Prior art keywords
selection logic
bus
cycle
data
input
Prior art date
Application number
KR1019980710264A
Other languages
English (en)
Other versions
KR20000034787A (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 KR20000034787A publication Critical patent/KR20000034787A/ko
Application granted granted Critical
Publication of KR100322366B1 publication Critical patent/KR100322366B1/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • 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
    • 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/0886Variable-length word access

Landscapes

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

Abstract

본 발명에 따른 로직은 동일 메모리 어레이를 이용하여 80-비트 폭 또는 96-비트 폭 캐시 SRAM의 실행을 인에이블링한다. 로직 실행은 테그 및 데이타를 순서화된 정보 블록으로 병합함으로써 구현되어 버스 활용도를 최대화한다. 로직은 버스 사이클을 80-비트용의 4개 사이클에서 96-비트용의 3개 사이클로 감소시킨다.

Description

SRAM 캐시용 워드 폭 선택{WORD WIDTH SELECTION FOR SRAM CACHE}
컴퓨터 시스템 특히 개인용 컴퓨터의 성능은 컴퓨터 아키텍쳐 설계의 고속 성장으로 인해 특히 컴퓨터 메모리의 성능면에서 극적으로 개선되었다.
그러나 컴퓨터 프로세서 및 메모리는 동일한 속도로 개발되지는 않는다. 메모리는 프로세서에 충분한 응답 속도를 제공할 수 없다. 프로세서와 메모리간의 속도 차이를 줄이기 위해서, 메모리 계층 구조의 개념이 도입되었다. 메모리 계층 구조는 다수의 상이한 메모리 레벨, 크기 및 속도를 포함한다. 프로세서 주위 또는 내부에 위치한 메모리는 일반적으로 소형 및 고속이며, 통상적으로 캐시 메모리(cache memory)로 칭한다. 캐시 메모리는 프로세서의 요구를 수용하기 위해서는 고속이어야 하므로, 일반적으로 스태틱 메모리 또는 스태틱 랜덤 억세스 메모리(SRAM)으로 구성된다. 그러한 메모리 계층 구조중의 한 예가 Osaki 등에게 1994년 1월 18일자로 허여된 미국 특허 번호 제5,280,598호(아래부터, "Osaki"로 칭함)에 개시되어 있다.
캐시 메모리는 컴퓨터 메모리 계층 구조에서 중요한 역할을 한다. 재이용될 가능성이 높은 컴퓨터 명령어 및 데이타는 캐시 메모리내에 일시적으로 저장되는데, 이는 프로세서가 컴퓨터 주 메모리로부터 이들에 억세스하는 것보다 훨씬 고속으로 이들 명령어 또는 데이타에 억세스할 수 있기 때문이다.
거의 모든 캐시 메모리는 하드웨어에 의해 관리되는데, 이는 캐시 동작은 로직 회로에 의해 물리적으로 제어됨을 의미한다. 이러한 로직 회로의 설계는 프로세서의 유형 및 데이타 버스 또는 버스들의 폭에 따라 상이하다. 예를 들면, Osaki는 프로세서 버스 및 시스템 버스 모두로 데이타를 구동할 수 있는 컴퓨터 시스템을 기술한다. 프로세서 버스 및 이에 따른 캐시 메모리는 32-비트 워드로서 구성된다. 시스템 버스는 8-비트 또는 32-비트 워드를 처리하도록 구성된다. 데이타가 8-비트 버스로서 구동되는 경우, 3 바이트는 중간 버퍼 레지스터내에 저장되고, 최종 바이트는 버스에 기록된다. 다음으로 각각의 나머지 바이트는 순서대로 구동된다. 유사하게, Nicholes에게 1995년 4월 11일자로 허여된 미국 특허 제5,406,525호에는 8-비트의 비트 열내의 비트를 선택적으로 어드레싱함에 의해 상이한 워드 폭으로 구성될 수 있는 완전 확산 SRAM(full diffused SRAM)을 개시한다. 마지막으로, 1월 11일자 IBM 기술 공개 공보 Vol 33, No 8의 118-120페이지, XP000107015, "마이크로프로세서용 고속 TTL 버스트 제어기"는 4바이트 사이클 라인내에서 데이타를 버스트-필링(burst-filling)하는 방법을 개시한다.
일부 실행(예를 들면에 의해 설계된 마이크로프로세서)에서, 프로세서-캐시 인터페이스는 64-비트 버스 데이타 및 테그를 위한 추가 버스를 이용한다. 테그 버스 폭은 가변하지만 테그를 추가한 데이타가 총 80 비트 폭인 경우에는 테그 버스 폭은 16비트를 갖는다. 캐시 블록(또는 캐시 라인) 크기가 데이타 버스 폭의 4배인 경우, 매 4개의 버스 사이클 중 3개의 테그 버스에는 유용 정보가 없고, 그러므로 버스는 효율적으로 이용되지 못한다.
데이타 및 테그 버스가 더욱 효율적으로 이용되도록 캐시 SRAM을 실행하기 위한 로직이 필요하다. 이러한 로직은 64 비트 데이타 버스 더하기 16 비트 또는 그 이상의 테그 버스를 실행할 수 있지만, 동일한 로직이 96-비트 버스 실행에도 또한 이용가능하다.
본 발명은 일반적으로 디지털 컴퓨터에 관한 것으로, 특히 컴퓨터 메모리에 관한 것이다. 더욱 상세하게는, 본 발명은 캐시 메모리의 로직 수행에 관한 것이다.
도 1은 마이크로프로세서 및 80-비트 또는 96-비트 캐시 SRAM을 포함하는 간략한 컴퓨터 시스템의 블록도.
도 2는 도 1의 80-/ 96-비트 캐시 SRAM의 블록도.
도 3은 96-비트 실행의 경우 메모리 어레이로부터 출력 블록까지의 데이타 전송을 위한 유용한 루트의 블록도.
도 4a 내지 4d는 96-비트 실행의 경우 초기 어드레스가 각각 00, 01, 10, 및 11일 때의 가능한 출력 블록 선택 조합을 도시하는 도면.
도 5a 내지 5e는 본 발명에 따른 96-비트 실행의 경우에 대한 로직 조합을 도시하는 도면.
도 6은 80-비트 실행의 경우 메모리 어레이로부터 출력 블록까지의 데이타 전송에 대한 유용한 루트의 블록도.
도 7a 내지 7d는 80-비트 실행의 경우에 대한 가능한 출력 블록 선택 조합을 도시하는 도면.
도 8a 내지 8e는 본 발명에 따른 80-비트 실행의 경우에 대한 로직의 조합을 도시하는 도면.
도 9a 내지 9e는 본 발명에 따른 80-비트 및 96-비트 실행의 경우 모두에 대한 로직의 조합을 도시하는 도면.
본 발명은 마이크로프로세서 및 캐시 메모리를 포함하는 컴퓨터 시스템내에서 80 비트 폭 또는 96 비트 폭 SRAM의 실행을 가능하게 하는 선택 로직을 설명한다. 한 실시예에서, 로직은 80 비트 또는 96 비트 폭 캐시 SRAM의 실행을 가능하게 한다. 이러한 로직은 또한 그 폭이 절반인 2개의 SRAM 즉, 2개의 40-비트 또는 48-비트 캐시 SRAM을 실행시키는데 이용될 수 있다. 본 발명은 80-비트 버스 폭으로 기존에 얻어진 것보다 더 유용한 데이타 출력을 80 또는 96-비트 버스로 가능하게 한다. 이러한 로직 실행은 버스 활용도를 최대로 하기 위해 테그, 에러 검사와 보정(ECC), 및 데이타를 순서화된 정보 블록으로 병합함에 의해 성취된다.
이러한 로직 실행의 중요한 장점은 80 비트 버스의 경우에 대해서는 매 버스 사이클 마다 유용한 정보를 이용한다는 점과 96 비트 버스의 경우에 대해서는 4에서 3으로 버스 사이클의 수를 감소시킨다는 점이다.
양호한 실시예의 아래의 상세한 설명에서, 그 일부를 형성하는 첨부된 도면이 참조되어, 본 발명의 행해질 수 있는 특정 실시예를 도해한다. 이러한 실시예들은 당업자가 본 발명을 구현할 수 있을 정도로 상세히 설명되며, 다른 실시예들이 이용될 수 있으며 그 구조적 변환이 본 발명의 기술 사상 및 범위로부터 벗어나지 않고 가능함이 이해되어야 할 것이다. 그러므로, 아래의 상세한 설명은 제한적 의미로 이해되어서는 안되며, 본 발명의 범위는 첨부된 청구 범위에 의해서만 한정된다.
도 1은 프로세서-캐시 인터페이스(160)를 통해 80-/96-비트 캐시 SRAM(100)에 접속되는 마이크로프로세서(150)를 포함하는 간략한 컴퓨터 시스템을 도시한다. 프로세서-캐시 인터페이스(160)는 시스템 클럭(CLK), 어드레스 데이타 스트로브(ADS#), 판독 또는 기입 요청(RW#), 어드레스 버스, 테그 버스 및 데이타 버스를 포함한다.
도 2는 도 1의 80-/96-비트 캐시 SRAM(100)의 블록도이다. 캐시 SRAM(100)은 80 내지 96 비트 데이타 버스를 지원할 수 있다. 80비트 또는 96비트 동작은 데이타 순서 계획과 입력 선택 로직(106) 및 출력 선택 로직(108)의 로직 선택에 의해 성취된다. 입력 및 출력 로직(106 및 108)은 논리적으로 동일하다. 데이타는 96-비트 시스템의 경우에는 3개의 버스 사이클로, 80-비트 시스템의 경우에는 4개의 버스 사이클로 데이타 및 테그 메모리 어레이(110)로/로부터 전송된다. 버스 사이클의 순서는 버스 사이클 카운터(102)에 의해 모니터된다. 사이클 카운터(102)는 ADS#이 로우(low)일 때 시작해서 0으로 리셋되고 카운트 3 동안(96비트 시스템에서의 사이클 1, 사이클 2, 다음의 사이클 3) 또는 카운트 4 동안(80 비트 시스템의 사이클 1, 사이클 2, 사이클 3, 다음의 사이클 4) 이를 유지한다. 데이타는 기록 동작 또는 판독 동작에 의해 각각 메모리 어레이(110)로 기록되거나 또는 메모리 어레이(110)로부터 판독된다. 도면에서, RW#은 판독 또는 기록 동작이 요청된지를 표시하며, # 표시는 신호가 로우인 경우에 이를 기록함을 표시한다. 어드레스는 메모리 어레이(110)내의 검색된 메모리 위치를 표시한다. 데이타는 데이타 및 테그 비트의 복합 모임을 표시한다.
도 3은 96비트 실행의 경우 메모리 어레이로부터 출력 블록까지 전송될 데이타에 대한 유용한 루트(route)의 블록도이다. 이 실시예는 4개의 64비트 롱워드(longword) A, B, C 및 D와 총 32비트로서 tag. 1 및 tag. 2로 표시되는 2개의 테그 워드를 포함하는 메모리 어레이(210)의 일부를 도시한다. 이 실시예 및 다른 실시예에서 테그는 상태(status), ECC, 테그 등과 같은 부가 정보를 표시한다. 4개의 64-비트 롱워드 각각은 4개의 16-비트 워드로 분할된다. 롱워드 A는 1.1, 1.2, 1.3 및 1.4로서 표시되는 4개의 16-비트 워드를 갖는다. 롱워드 B는 2.1, 2.2, 2.3 및 2.4로서 표시되는 4개의 16-비트 워드를 갖는다. 롱워드 C는 3.1, 3.2, 3.3 및 3.4로서 표시되는 4개의 16-비트 워드를 갖는다. 롱워드 D는 4.1, 4.2, 4.3 및 4.4로서 표시되는 4개의 16-비트 워드를 갖는다. 이 실시예에서, 1.1은 데이타 1; 워드 1을 표시하고, 1.2는 데이타 1; 워드 2를 표시하며, 1.3은 데이타 1; 워드 3을 표시한다.
워드 A, B, C 및 D의 순서는 프로세서로의 엄격한 데이타 순서(order ofdata criticality)를 표시한다. 엄격하게 순서화된 것으로 간주되는 실제 물리적 어드레스는 기존의 실행면에서 프로세서마다 상이하며, 모듈로-4 선형 버스트, 모듈로-4 인터리빙된 순서 등을 포함한다. 종래의 라인 어드레싱 마이크로프로세서(예를 들면, PowerPC 또는 Cyrix M1)에서, 최적 순서는 모듈로-4 선형 버스트이다. 이 순서는 표 A에 도시된다. 이러한 유형의 프로세서에 대한 어떠한 다른 순서도 96-비트 동작을 이용하도록 설계된 프로세서 성능을 최대화하는 것을 방해할 것이다. 이에 대한 이유는 데이타의 전체 블록을 동작시키는 과정에서 초기 어드레스에 대한 블록 단위로 데이타를 이용하는 최대 확률은 100%이지만, 각각의 순차 어드레스에 대해서는 확률이 낮다는 점이다. 이전 어드레스에 대해서는 확률은 훨씬 낮다. 그러므로, 초기 어드레스가 01인 경우, 그 이전 어드레스 즉, 00은 아마도 확률이 가장 낮으며 그러므로 낮은 우선 순위를 가질 것이다. 그러므로, A, B, C, 및 D는 2진수 형태로 표시된 아래의 순서를 가질 것인데, 여기서 x는 "임의의"를 나타낸다.
표 A: 4 엔트리 캐시 라인의 선형 버스트 데이타 순서
초기어드레스 A B C Dx00 x00 x01 x10 x11x01 x01 x10 x11 x00x10 x10 x11 x00 x01x11 x11 x00 x01 x10
인터리빙된 버스트 순서를 필요로 하는 프로세서(예를 들면, Intel Pentium)에는 모듈로-4 인터리빙 버스트 순서가 이용될 수 있다. 이러한 순서는 표 B에 도시된다.
표 B: 4 엔트리 캐시 라인의 인터리빙된 버스트 데이타 순서
초기어드레스 A B C Dx00 x00 x01 x10 x11x01 x01 x00 x11 x10x10 x10 x11 x00 x01x11 x11 x10 x01 x00
한 실시예에서, 캐시 라인 데이타 워드가 전송되는 순서는 프로그램 가능하다. 그러한 장치는 동일 캐시 장치에 대해 예를 들면, 인터리빙 버스트 데이타 및 선형 버스트 데이타 모두를 허용할 것이다. 다른 실시예에서, 데이타 순서는 프로그램 또는 수행되고 있는 프로그램(예를 들면, 메모리를 통해 특정 스트라이드로 동작하는 프로그램)의 특성을 반영하도록 변경될 수 있다.
다시 도 3을 참조하면, 데이타는 복수의 경로(pathway; 220)로부터의 로직 선택에 의해 메모리 어레이(210)로부터 출력 블록(230)으로 전송된다. 경로(220)는 각각 OB1 내지 OB6로 표시된 각각의 16-비트 출력 블록(231 내지 236)에서 출력 블록(230)에 접속된다. 출력 블록은 출력 버퍼 및 선택적으로 데이타 레지스터 또는 래치로 구성된다. 이들 34개의 유효 루트 중 6개를 인에이블링하는 로직이 아래에 설명된다.
도 4a 내지 4d는 96-비트 실행의 경우의 초기 어드레스가 각각 00, 01, 10 및 11인 경우의 가능한 출력 블록 선택 조합이다. 이들 도면은 96-비트 버스가 3개의 버스 사이클 만을 이용하여 실행될 수 있음을 명백하게 도시한다. 테그는 제1 버스 사이클(사이클 1)에만 나타나고, 제2 사이클(사이클 2) 및 제3 사이클(사이클 3) 동안 데이타 전송을 위해 입력/출력 라인을 자유롭게 한다. 이러한 순서는 캐시 라인 데이타 워드를 전송하는데 필요한 로직을 단순하게 하고 유효 경로의수를 줄인다. 이러한 가능한 출력 블록 선택 조합을 가능하게 하는 로직이 도 5a 내지 5e를 참조로 설명된다.
도 5a 내지 5e는 96-비트 실행의 경우에 대한 로직 조합이다. 이러한 96-비트의 경우, 3개의 버스 사이클만이 필요하고 데이타 처리 순서는 사이클 1 그 다음은 사이클 2, 최종적으로 사이클 3이다. 이 실시예에서, 로직은 입력(410), 로직 게이트(420) 및 복수의 출력(430)의 조합을 포함한다. 로직 게이트(420)는 복수의 로직 AND 및 로직 OR를 포함한다. 로직을 구동하는 입력(410)은 사이클 1, 사이클 2, 사이클 3, A0 및 A1을 포함한다. A0 및 A1은 초기 어드레스의 2개의 최하위 비트를 표시한다. 사이클 1, 사이클 2 또는 사이클 3는 버스 사이클 카운터(102)에 의해 결정되는 현재 버스 사이클이다. 이 로직으로부터의 출력(430)은 데이타가 출력 블록(230)의 적절한 블록(OB1 내지 OB6)으로 전송되도록 한다. 출력(430)에서의 로직 인에이블링의 상세한 조합이 표 1에 설명된다. 이 표에서, OB는 출력 블록을 표시하고, IA는 초기 어드레스의 2개의 최하위 비트를 표시하며, tag. 1 및 tag. 2는 상태, ECC, 테그 등과 같은 갖가지 부가 정보를 표시하며, 1.1은 현재 캐시 라인에서의 데이타 1; 워드 1을 표시하고, 1.2는 데이타 1; 워드 2를 표시한다.
표 1: 96-비트 선형 버스트 데이타 순서 실행에 대한 로직
tag.1을 OB1로 인에이블 = 사이클 1
tag.2을 OB2로 인에이블 = 사이클 1
1.1을 OB3로 인에이블 = 사이클 1 AND (IA=00) OR 사이클 2 AND(IA=11)
OR 사이클 3 AND(IA=10)
1.2을 OB4로 인에이블 = 사이클 1 AND (IA=00) OR 사이클 2 AND(IA=11)
OR 사이클 3 AND(IA=10)
1.3을 OB5로 인에이블 = 사이클 1 AND (IA=00) OR 사이클 2 AND(IA=11)
OR 사이클 3 AND(IA=10)
1.4을 OB6로 인에이블 = 사이클 1 AND (IA=00) OR 사이클 2 AND(IA=11)
OR 사이클 3 AND(IA=10)
1.1을 OB1로 인에이블 = 사이클 2 AND (IA=01)
1.2을 OB2로 인에이블 = 사이클 2 AND (IA=01)
1.3을 OB1로 인에이블 = 사이클 3 AND (IA=01)
1.4을 OB2로 인에이블 = 사이클 3 AND (IA=01)
2.1을 OB3로 인에이블 = 사이클 1 AND (IA=01) OR 사이클 2 AND(IA=00)
OR 사이클 3 AND(IA=11)
2.2을 OB4로 인에이블 = 사이클 1 AND (IA=01) OR 사이클 2 AND(IA=00)
OR 사이클 3 AND(IA=11)
2.3을 OB5로 인에이블 = 사이클 1 AND (IA=01) OR 사이클 2 AND(IA=00)
OR 사이클 3 AND(IA=11)
2.4을 OB6로 인에이블 = 사이클 1 AND (IA=01) OR 사이클 2 AND(IA=00)
OR 사이클 3 AND(IA=11)
2.1을 OB1로 인에이블 = 사이클 2 AND (IA=10)
2.2을 OB2로 인에이블 = 사이클 2 AND (IA=10)
2.3을 OB1로 인에이블 = 사이클 3 AND (IA=10)
2.4을 OB2로 인에이블 = 사이클 3 AND (IA=10)
3.1을 OB3로 인에이블 = 사이클 1 AND (IA=10) OR 사이클 2 AND(IA=01)
OR 사이클 3 AND(IA=00)
3.2을 OB4로 인에이블 = 사이클 1 AND (IA=10) OR 사이클 2 AND(IA=01)
OR 사이클 3 AND(IA=00)
3.3을 OB5로 인에이블 = 사이클 1 AND (IA=10) OR 사이클 2 AND(IA=01)
OR 사이클 3 AND(IA=00)
3.4을 OB6로 인에이블 = 사이클 1 AND (IA=10) OR 사이클 2 AND(IA=01)
OR 사이클 3 AND(IA=00)
3.1을 OB1로 인에이블 = 사이클 2 AND (IA=11)
3.2을 OB2로 인에이블 = 사이클 2 AND (IA=11)
3.3을 OB1로 인에이블 = 사이클 3 AND (IA=11)
3.4을 OB2로 인에이블 = 사이클 3 AND (IA=11)
4.1을 OB3로 인에이블 = 사이클 1 AND (IA=11) OR 사이클 2 AND(IA=10)
OR 사이클 3 AND (IA=01)
4.2을 OB4로 인에이블 = 사이클 1 AND (IA=11) OR 사이클 2 AND(IA=10)
OR 사이클 3 AND (IA=01)
4.3을 OB5로 인에이블 = 사이클 1 AND (IA=11) OR 사이클 2 AND(IA=10)
OR 사이클 3 AND (IA=01)
4.4을 OB6로 인에이블 = 사이클 1 AND (IA=11) OR 사이클 2 AND(IA=10)
OR 사이클 3 AND (IA=01)
4.1을 OB1로 인에이블 = 사이클 2 AND(IA=00)
4.2을 OB2로 인에이블 = 사이클 2 AND(IA=00)
4.3을 OB1로 인에이블 = 사이클 3 AND(IA=00)
4.4을 OB2로 인에이블 = 사이클 3 AND(IA=00)
당업자라면 96-비트 버스 실행에 대한 상술한 설명이 2개의 48-비트 폭 장치들을 이용하는 96-비트 폭 장치에도 또한 이용될 수 있음을 용이하게 인지할 것이다. 2개의 48-비트 폭 장치에 대한 96-비트 실행은 모든 짝수 워드가 한 장치내에 있고, 모든 홀수 워드가 다른 장치내에 있도록 실행될 수 있다. 예를 들면, 워드 1.4, 2.4, 3.4, 4.4, 1.2, 2.2, 3.2, 4.2(x.4, x.2), OB6, OB4, OB2가 한 장치내에 있고, x.3, x.1, OB5, OB3, OB1는 다른 장치내에 있다. 설명된 로직은 상술한 그대로 동작하며 장치들은 단속없이(seamlessly) 함께 동작하고, 한번의 설계만이 필요하며; 실행에서 2개의 동일한 장치가 이용된다.
도 6은 80-비트 실행의 경우에 대한 메모리 어레이로부터 출력 블록으로 전송될 데이타에 대한 유용한 루트의 블록도이다. 이 실시예에서, 롱워드 A, B, C 및 D는 96-비트 수행의 경우에 대한 도 3에서처럼 메모리 어레이(510) 부분내에 동일 구조로 배치되지만, tag. 1, tag. 2, tag. 3 및 tag. 4로 표시된 4개의 테그 워드가 이용될 수 있다. 이 실시예의 출력 블록(530)은 각각 OB1, OB3, OB4, OB5 및OB6으로서 표시된 5개의 16-비트 출력 블록(531, 533, 534, 535 및 536)을 포함한다. 데이타는 복수의 경로(520)로부터의 로직 선택에 의해 메모리 어레이(510)로부터 출력 블록(530)으로 전송된다. 경로(520)는 20까지의 루트를 포함하는데, 5개의 루트(521, 523, 524, 525 및 526)은 출력 블록(530)으로 접속된다.
도 7a 내지 7d는 초기 어드레스가 80-비트 실행의 경우에 대해 각각 00, 01, 10, 및 11일 때의 가능한 출력 블록 선택 조합이다. 이들 도면은 데이타 전송에 4개의 버스 사이클이 필요함을 도시한다. 이 경우, 테그 또는 유용한 정보가 매 사이클(사이클 1 내지 사이클 4) 마다 나타나므로, 이는 버스의 효율적인 이용이라고 할 수 있다. 이러한 80-비트 실행에 있어서, 성능을 최대화하기 위해서, 테그 한계는 16비트이다. 더 많은 테그 비트가 필요한 경우, 80비트는 필요한 추가 비트를 실장하도록 바람직하게 확장될 것이다. 예를 들면, 20-비트 테그가 필수인 경우, 이는 84-비트 버스를 포함할 것이다. 바람직하게는 테그 크기와는 무관하게 ECC는 11비트로 충분하다. 이러한 가능한 출력 블록 선택 조합을 가능하게 하는 로직이 도 8a 내지 8e에 설명된다.
도 8a 내지 8e는 80-비트 실행의 경우에 대한 로직의 조합을 도시한다. 이러한 80-비트 조합에서, 4개의 버스 사이클이 필요하고 데이타 처리의 순서는 사이클 1, 사이클 2, 사이클 3, 마지막으로 사이클 4이다. 이 실시예에서, 로직은 입력(710), 로직 게이트(720) 및 복수의 출력(730)의 조합을 포함한다. 로직 게이트(720)는 복수의 로직 AND 및 로직 OR 게이트를 포함한다. 로직을 구동하는 입력(710)은 사이클 1, 사이클 2, 사이클 3, 사이클 4, A0 및 A1을 포함한다. A0및 A1은 초기 어드레스의 2개의 최하위 비트를 표시한다. 사이클 1, 사이클 2 또는 사이클 3은 버스 사이클 카운터(102)에 의해 결정되는 현재 버스 사이클이다. 이러한 로직으로부터의 출력(730)은 데이타가 출력 블록(530) 중의 적절한 블록으로 전송되도록 인에이블링된다. 출력(730)에서의 로직 인에이블링의 상세한 조합이 표 2에서 설명된다. 이 표에서, OB는 출력 블록을 표시하고, IA는 초기 어드레스의 2개의 최하위 비트를 표시하며, tag. 1 및 tag. 2는 상태, ECC, 테그 등과 같은 갖가지 부가 정보를 표시하며, 1.1은 현재 캐시 라인내의 데이타 1;워드 1를 표시하고, 1.2는 데이타 1; 워드 2를 표시한다.
표 2: 80-비트 선형 버스트 데이타 순서 실행에 대한 로직
tag.1을 OB1로 인에이블 = 사이클 1
tag.2을 OB1로 인에이블 = 사이클 2
tag.3을 OB1로 인에이블 = 사이클 3
tag.4을 OB1로 인에이블 = 사이클 4
1.1을 OB3로 인에이블 = 사이클 1 AND (IA=00) OR 사이클 2 AND(IA=11) OR
사이클 3 AND(IA=10) OR 사이클 AND 4(IA=01)
1.2을 OB4로 인에이블 = 사이클 1 AND (IA=00) OR 사이클 2 AND(IA=11) OR
사이클 3 AND(IA=10) OR 사이클 4 AND(IA=01)
1.3을 OB5로 인에이블 = 사이클 1 AND (IA=00) OR 사이클 2 AND(IA=11) OR
사이클 3 AND(IA=10) OR 사이클 4 AND(IA=01)
1.4을 OB6로 인에이블 = 사이클 1 AND (IA=00) OR 사이클 2 AND(IA=11) OR
사이클 3 AND(IA=10) OR 사이클 4 AND(IA=01)
2.1을 OB3로 인에이블 = 사이클 1 AND (IA=01) OR 사이클 2 AND(IA=00) OR
사이클 3 AND(IA=11) OR 사이클 4 AND(IA=10)
2.2을 OB4로 인에이블 = 사이클 1 AND (IA=01) OR 사이클 2 AND(IA=00) OR
사이클 3 AND(IA=11) OR 사이클 4 AND(IA=10)
2.3을 OB5로 인에이블 = 사이클 1 AND (IA=01) OR 사이클 2 AND(IA=00) OR
사이클 3 AND(IA=11) OR 사이클 4 AND(IA=10)
2.4을 OB6로 인에이블 = 사이클 1 AND (IA=01) OR 사이클 2 AND(IA=00) OR
사이클 3 AND(IA=11) OR 사이클 4 AND(IA=10)
3.1을 OB3로 인에이블 = 사이클 1 AND (IA=10) OR 사이클 2 AND(IA=01) OR
사이클 3 AND(IA=00) OR 사이클 4 AND(IA=11)
3.2을 OB4로 인에이블 = 사이클 1 AND (IA=10) OR 사이클 2 AND(IA=01) OR
사이클 3 AND(IA=00) OR 사이클 4 AND(IA=11)
3.3을 OB5로 인에이블 = 사이클 1 AND (IA=10) OR 사이클 2 AND(IA=01) OR
사이클 3 AND(IA=00) OR 사이클 4 AND(IA=11)
3.4을 OB6로 인에이블 = 사이클 1 AND (IA=10) OR 사이클 2 AND(IA=01) OR
사이클 3 AND(IA=00) OR 사이클 4 AND(IA=11)
4.1을 OB3로 인에이블 = 사이클 1 AND (IA=11) OR 사이클 2 AND(IA=10) OR
사이클 3 AND (IA=01) OR 사이클 4 AND(IA=00)
4.2을 OB4로 인에이블 = 사이클 1 AND (IA=11) OR 사이클 2 AND(IA=10) OR
사이클 3 AND (IA=01) OR 사이클 4 AND(IA=00)
4.3을 OB5로 인에이블 = 사이클 1 AND (IA=11) OR 사이클 2 AND(IA=10) OR
사이클 3 AND (IA=01) OR 사이클 4 AND(IA=00)
4.4을 OB6로 인에이블 = 사이클 1 AND (IA=11) OR 사이클 2 AND(IA=10) OR
사이클 3 AND (IA=01) OR 사이클 4 AND(IA=00)
당업자라면 상술한 80-비트 폭 장치에 대한 실행이 하나 이상의 장치를 이용하는 메모리 장치내에서 80-비트 버스 폭을 실행하는데도 이용될 수 있음을 용이하게 인지할 것이다. 예를 들면, 80-비트 버스가 2개의 장치로 분할되는 경우, OB1은 1/2인 2개의 8-비트로 분할될 것이며 그래서 그러한 2개의 동일한 장치는 80-비트 버스 장치를 포함할 것이다. 그러므로 하나의 장치 유형만이 필요하며, 이 장치가 2번 이용된다. 동일한 원리가 4개의 장치 실행에도 적용된다. 이러한 경우, 테그 및 OB1은 4개의 장치로 균등 분할된다.
도 3 내지 도 8e의 도시 및 설명으로부터, 유효 경로 및 80-비트와 96-비트 실행 사이의 로직 선택에 있어서 공통성이 있음이 명백하다. 도 3(96-비트 실행에 대해 유효한 루트) 및 도6(80-비트 실행에 대해 유효한 루트)을 더 조사해보면, 도 6은 도 3에 속한다는 결론이 유도될 것이다. 도 5a 내지 5e(96-비트 실행에 대한 로직) 및 도 8a 내지 8e(80-비트 실행에 대한 로직) 및 표 1과 표 2를 더 조사해보면, 동일한 메모리 어레이로부터 80-비트 및 96-비트 실행 모두를 실행할 수 있도록 로직을 변경할 수 있다. 그러므로 도 3내의 루트의 블록도는 80-비트 및 96-비트 실행의 두 경우에 대해 이용될 수 있으며, 두 경우 모두를 실행하기 위한 변경된 로직이 도 9a 내지 9e에 도시된다.
도 9a 내지 9e는 본 발명에 따른 80-비트 및 96-비트 실행의 두 경우에 대한 로직의 조합을 도시한다. 이 실시예는 80-비트와 96-비트 실행 사이의 논리적 차이를 도시하고, 각 실행에서 공통인 로직과 특수한 로직을 확인시켜준다. 도 9a 내지 9e에서, 각 도면내에서 공통인 로직은 96으로 표시되는 선택적인 로직과 80으로 표시되는 선택적인 로직을 제외한 전체 로직이다. 공통 로직과 선택적인 로직(96)은 96-비트 실행의 경우에만 동작한다. 공통 로직과 선택적인 로직(80)은 80-비트 실행의 경우에만 동작한다.
본 발명의 상세한 설명으로부터, 80-비트 실행은 4개의 버스 사이클에 의해 수행되고, 매 사이클마다 유용한 정보가 있으므로, 버스 이용도는 더욱 효율적이다. 96-비트 실행은 4개의 사이클 대신에 3개만을 필요로하므로 데이타 처리 공정을 가속한다. 이들 실시예에서 블록 선택은 출력 기준으로 설명되었지만, 입력 순서도 동일하며 동일 로직이 수반된다. 또한, 동일 메모리 어레이를 이용하는 80-비트 및 96-비트 장치의 실행이 본 발명에서 설명된 로직에 의해 얻어질 수 있음은 명백하다.

Claims (15)

  1. 캐시 메모리에 있어서,
    제1, 제2, 제3 및 제4 롱워드- 각 롱워드는 복수의 워드를 포함함 -를 포함한 복수의 롱워드를 포함하는 데이타 메모리 영역을 갖는 메모리 어레이(110);
    상기 캐시 메모리를 데이타 버스에 접속시키기 위한 캐시 인터페이스(160); 및
    상기 메모리 어레이와 상기 캐시 인터페이스 사이에 접속되고, 제1 데이타 버스 폭 구성과 제2 데이타 버스 폭 구성 중에서 선택하도록 동작 가능하며, 또한 상기 캐시 인터페이스와 상기 메모리 어레이 사이의 데이타 전송을 위해 동작 가능한 입력/출력 경로
    를 포함하되,
    상기 메모리 어레이는 복수의 테그 워드를 포함하는 테그 메모리 영역을 더 포함하며,
    상기 입력/출력 경로는
    복수의 공통 입력 선택 로직 및 복수의 선택적 입력 선택 로직을 갖는 입력 선택 로직(106) - 상기 복수의 선택적 입력 선택 로직은 제1 및 제2 선택적 입력 선택 로직을 포함함 - ;
    복수의 공통 출력 선택 로직 및 제1 및 제2 선택적 출력 선택 로직을 포함하는 복수의 선택적 출력 선택 로직을 갖는 출력 선택 로직(108); 및
    상기 입력 선택 로직 및 상기 출력 선택 로직에 접속되며, 상기 제1 및 제2 선택적 입력 선택 로직과 상기 제1 및 제2 선택적 출력 선택 로직을 사이클 카운트 및 데이타 버스 폭의 함수로서 제어하는 버스 사이클 카운터(102)
    를 포함하고,
    상기 입력/출력 경로가 제1 데이타 버스 폭 구성용으로 구성되는 경우 상기 버스 사이클 가운터가 3개 버스 사이클을 카운트하고, 상기 입력/출력 경로가 제2 데이타 버스 폭 구성용으로 구성되는 경우 상기 버스 사이클 카운터가 4개 버스 사이클을 카운트하는
    것을 특징으로 하는 캐시 메모리.
  2. 제1항에 있어서, 상기 입력 선택 로직 및 상기 출력 선택 로직은 논리적으로 동일하며 상기 데이타는 선형 버스트 순서 또는 인터리빙된 순서로 상기 데이타 버스 상에 존재하는 것을 특징으로 하는 캐시 메모리.
  3. 제2항에 있어서, 상기 공통 로직은 항상 동작하고, 상기 제1 선택적 로직은 상기 캐시 메모리가 제1 데이타 버스 폭 구성인 경우에만 동작하며, 상기 제2 선택적 로직은 상기 캐시 메모리가 제2 데이타 버스 폭 구성인 경우에만 동작하는 방식으로 상기 입력 및 출력 선택 로직이 동작하는 것을 특징으로 하는 캐시 메모리.
  4. 제3항에 있어서, 상기 제1 및 제2 선택적 입력 선택 로직 및 제1 및 제2 선택적 출력 선택 로직은 상기 롱워드의 초기 어드레스의 2개의 최하위 디지트의 함수로서 또한 제어되는 것을 특징으로 하는 캐시 메모리.
  5. 제4항에 있어서, 상기 버스 사이클 카운터는 상기 데이타 버스가 96-비트 폭 데이타 버스인 경우에는 제1, 제2 및 제3 카운트 사이클을 카운팅한 후에 0으로 리셋되며, 상기 데이타 버스가 80-비트 폭 데이타 버스인 경우에는, 제1, 제2, 제3 및 제4 카운트 사이클을 카운팅한 후에 0으로 리셋되는 것을 특징으로 하는 캐시 메모리.
  6. 제5항에 있어서, 상기 모든 테그 워드는 상기 데이타 버스가 96-비트 폭 데이타 버스인 경우에 상기 제1 버스 사이클 상에서 전송되며, 상기 테그 워드는 상기 데이타 버스가 80-비트 폭 데이타 버스인 경우에 하나 이상의 버스 사이클에 존재하는 것을 특징으로 하는 캐시 메모리.
  7. 제6항에 있어서, 상기 입력 및 출력 선택 로직은 상기 메모리 어레이로부터 관련 출력 블록까지 데이타를 전송하도록 34개의 데이타 루팅 경로(pathway) 중 6개까지 인에이블링시키는 것을 특징으로 하는 캐시 메모리.
  8. 제7항에 있어서, 상기 입력 선택 로직 및 상기 출력 선택 로직은 동일하게 구성되는 것을 특징으로 하는 캐시 메모리.
  9. 캐시 메모리(100) 동작 방법에 있어서,
    프로세서-캐시 인터페이스(160)를 제공하는 단계 - 상기 프로세서-캐시 인터페이스는 복수의 버스 데이타 폭들 중에서 선택하기 위한 워드 선택 로직(106, 108)을 포함함 - ;
    상기 복수의 버스 데이타 폭으로부터 하나의 버스 데이타 폭을 선택하는 단계;
    캐시 라인 요청을 수신하는 단계;
    상기 선택된 버스 데이타 폭으로 상기 데이타를 포맷(format)하는 단계; 및
    상기 데이타를 상기 프로세서로 전송하는 단계 - 상기 전송 단계는 상기 데이타 버스의 폭이 96-비트와 일치하는 경우 3개의 버스 사이클 내에 상기 데이타를 완전히 전송하고 상기 데이타 버스의 폭이 80-비트와 일치하는 경우 4개의 버스 사이클 내에 상기 데이타를 완전히 전송하는 단계를 포함함 -
    를 포함하는 것을 특징으로 하는 캐시 메모리 동작 방법.
  10. 제9항에 있어서, 상기 전송 단계는 제1 사이클에서 모든 테그 워드를 전송하는 단계를 포함하는 것을 특징으로 하는 캐시 메모리 동작 방법.
  11. 프로세서(150);
    입력/출력 경로 및 메모리 어레이(110)를 갖는 캐시 메모리(100); 및
    상기 프로세서와 상기 캐시 메모리의 상기 입력/출력 경로 사이에 접속된 프로세서-캐시 인터페이스(160)
    를 포함하는 컴퓨터 시스템에 있어서,
    상기 프로세서-캐시 인터페이스는 데이타 버스 및 복수의 데이타 버스 폭 중에서 선택하기 위한 선택 로직(ADS#)을 포함하며;
    상기 메모리 어레이(110)는 복수의 캐시 라인 및 복수의 테그 워드를 위한 저장체(storage)를 포함하며;
    상기 입력/출력 경로는
    복수의 공통 입력 선택 로직 및 복수의 선택적 입력 선택 로직을 갖는 입력 선택 로직(106) - 상기 복수의 선택적 입력 선택 로직은 제1 및 제2 선택적 입력 선택 로직을 포함함 - ;
    복수의 공통 출력 선택 로직 및 제1 및 제2 선택적 출력 선택 로직을 포함하는 복수의 선택적 출력 선택 로직을 갖는 출력 선택 로직(108); 및
    상기 입력 선택 로직 및 상기 출력 선택 로직에 접속되며, 상기 제1 및 제2 선택적 입력 선택 로직 및 상기 제1 및 제2 선택적 출력 선택 로직을 선택 로직 및 사이클 카운트의 함수로서 제어하는 버스 사이클 카운터(102)
    를 포함하고,
    상기 입력/출력 경로가 제1 데이타 버스 폭 구성용으로 구성되는 경우 상기 버스 사이클 가운터가 3개 버스 사이클을 카운트하고, 상기 입력/출력 경로가 제2 데이타 버스 폭 구성용으로 구성되는 경우 상기 버스 사이클 카운터가 4개 버스 사이클을 카운트하는
    것을 특징으로 하는 컴퓨터 시스템.
  12. 제11항에 있어서, 상기 캐시 라인은 복수의 롱워드를 포함하되, 각각의 상기 롱워드는 복수의 워드를 포함하며, N-비트 버스의 사용을 최적화하기 위한 순서 계획에 의해, 상기 복수의 테그 워드 중 하나와 함께 순서화된 정보 블록으로 병합되는 것을 특징으로 하는 컴퓨터 시스템.
  13. 제12항에 있어서, 상기 출력 선택 로직은 상기 순서화된 블록으로 병합되도록 상기 워드 및 상기 테그 워드를 병합시키는데 사용되는 복수의 데이타 루팅 경로를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  14. 제13항에 있어서, 상기 선택 로직은 상기 복수의 데이타 루팅 경로로 데이타의 루팅에 논리적 제어를 제공하는 것을 특징으로 하는 컴퓨터 시스템.
  15. 제14항에 있어서, 상기 입력 선택 로직 및 상기 출력 선택 로직은 논리적으로 동일한 것을 특징으로 하는 컴퓨터 시스템.
KR1019980710264A 1996-06-13 1997-06-13 Sram캐시용워드폭선택 KR100322366B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US08/663,386 1996-06-13
US8/663,386 1996-06-13
US08/663,386 US5960453A (en) 1996-06-13 1996-06-13 Word selection logic to implement an 80 or 96-bit cache SRAM
PCT/US1997/010184 WO1997048048A1 (en) 1996-06-13 1997-06-13 Word width selection for sram cache

Publications (2)

Publication Number Publication Date
KR20000034787A KR20000034787A (ko) 2000-06-26
KR100322366B1 true KR100322366B1 (ko) 2002-03-08

Family

ID=24661575

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980710264A KR100322366B1 (ko) 1996-06-13 1997-06-13 Sram캐시용워드폭선택

Country Status (6)

Country Link
US (3) US5960453A (ko)
EP (2) EP0978041A1 (ko)
JP (1) JP3569735B2 (ko)
KR (1) KR100322366B1 (ko)
AU (1) AU3389697A (ko)
WO (1) WO1997048048A1 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US6385687B2 (en) * 1999-05-14 2002-05-07 Micron Technology, Inc. Method and apparatus for simultaneously accessing the tag and data arrays of a memory device
US6446169B1 (en) 1999-08-31 2002-09-03 Micron Technology, Inc. SRAM with tag and data arrays for private external microprocessor bus
US6717577B1 (en) * 1999-10-28 2004-04-06 Nintendo Co., Ltd. Vertex cache for 3D computer graphics
JP2004240713A (ja) * 2003-02-06 2004-08-26 Matsushita Electric Ind Co Ltd データ転送方法及びデータ転送装置
US7844767B2 (en) * 2004-05-21 2010-11-30 Intel Corporation Method for identifying bad lanes and exchanging width capabilities of two CSI agents connected across a link
US7123521B1 (en) * 2005-04-27 2006-10-17 Micron Technology, Inc. Random cache read
US7444579B2 (en) * 2005-04-28 2008-10-28 Micron Technology, Inc. Non-systematic coded error correction
US7653785B2 (en) * 2005-06-22 2010-01-26 Lexmark International, Inc. Reconfigurable cache controller utilizing multiple ASIC SRAMS
US7457901B2 (en) * 2005-07-05 2008-11-25 Via Technologies, Inc. Microprocessor apparatus and method for enabling variable width data transfers
US7502880B2 (en) 2005-07-11 2009-03-10 Via Technologies, Inc. Apparatus and method for quad-pumped address bus
US7441064B2 (en) * 2005-07-11 2008-10-21 Via Technologies, Inc. Flexible width data protocol
US7444472B2 (en) * 2005-07-19 2008-10-28 Via Technologies, Inc. Apparatus and method for writing a sparsely populated cache line to memory
US7590787B2 (en) * 2005-07-19 2009-09-15 Via Technologies, Inc. Apparatus and method for ordering transaction beats in a data transfer
US20070061669A1 (en) * 2005-08-30 2007-03-15 Major Karl L Method, device and system for detecting error correction defects
US7453723B2 (en) * 2006-03-01 2008-11-18 Micron Technology, Inc. Memory with weighted multi-page read
US7810017B2 (en) 2006-03-20 2010-10-05 Micron Technology, Inc. Variable sector-count ECC
US7369434B2 (en) * 2006-08-14 2008-05-06 Micron Technology, Inc. Flash memory with multi-bit read
KR100881196B1 (ko) 2007-05-29 2009-02-05 삼성전자주식회사 선택 가능한 두개의 비트 구조를 갖는 메모리 장치 및 이를구비하는 시스템
KR20220031776A (ko) * 2020-09-03 2022-03-14 삼성전자주식회사 반도체 메모리 장치 및 그것의 동작 방법

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
JPS5918745B2 (ja) 1978-02-15 1984-04-28 富士通株式会社 メモリ共有アクセス方式
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
US4953073A (en) 1986-02-06 1990-08-28 Mips Computer Systems, Inc. Cup chip having tag comparator and address translation unit on chip and connected to off-chip cache and main memories
US4885680A (en) * 1986-07-25 1989-12-05 International Business Machines Corporation Method and apparatus for efficiently handling temporarily cacheable data
US5091846A (en) * 1986-10-03 1992-02-25 Intergraph Corporation Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency
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
US5255378A (en) * 1989-04-05 1993-10-19 Intel Corporation Method of transferring burst data in a microprocessor
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
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 バス幅制御回路
JP2646854B2 (ja) * 1990-12-18 1997-08-27 三菱電機株式会社 マイクロプロセッサ
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
JP2836321B2 (ja) * 1991-11-05 1998-12-14 三菱電機株式会社 データ処理装置
US5469555A (en) * 1991-12-19 1995-11-21 Opti, Inc. Adaptive write-back method and apparatus wherein the cache system operates in a combination of write-back and write-through modes for a cache-based microprocessor system
GB2277181B (en) * 1991-12-23 1995-12-13 Intel Corp 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
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
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
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
US5581734A (en) * 1993-08-02 1996-12-03 International Business Machines Corporation Multiprocessor system with shared cache and data input/output circuitry for transferring data amount greater than system bus capacity
US5432804A (en) * 1993-11-16 1995-07-11 At&T Corp. Digital processor and viterbi decoder having shared memory
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
US5603041A (en) * 1994-12-13 1997-02-11 International Business Machines Corporation Method and system for reading from a m-byte memory utilizing a processor having a n-byte data bus
US5960453A (en) * 1996-06-13 1999-09-28 Micron Technology, Inc. Word selection logic to implement an 80 or 96-bit cache SRAM

Also Published As

Publication number Publication date
JP3569735B2 (ja) 2004-09-29
WO1997048048A1 (en) 1997-12-18
EP1087296A3 (en) 2002-04-17
AU3389697A (en) 1998-01-07
EP1087296A2 (en) 2001-03-28
US6493799B2 (en) 2002-12-10
KR20000034787A (ko) 2000-06-26
US20010023475A1 (en) 2001-09-20
JPH11513156A (ja) 1999-11-09
US6223253B1 (en) 2001-04-24
US5960453A (en) 1999-09-28
EP1087296B1 (en) 2011-08-03
EP0978041A1 (en) 2000-02-09

Similar Documents

Publication Publication Date Title
KR100322366B1 (ko) Sram캐시용워드폭선택
US6175942B1 (en) Variable bit width cache memory architecture
US6496902B1 (en) Vector and scalar data cache for a vector multiprocessor
US5522065A (en) Method for performing write operations in a parity fault tolerant disk array
US4298932A (en) Serial storage subsystem for a data processor
EP0380853A2 (en) Write back buffer with error correcting capabilities
JPS624745B2 (ko)
KR970011208B1 (ko) 파이프라인된 기록버퍼 레지스터
US6381686B1 (en) Parallel processor comprising multiple sub-banks to which access requests are bypassed from a request queue when corresponding page faults are generated
US5761714A (en) Single-cycle multi-accessible interleaved cache
US5825788A (en) Data ordering for cache data transfer
JP2716350B2 (ja) 電子データ記憶システム
JPH0282330A (ja) ムーブアウト・システム
JP2002024085A (ja) ディスクキャッシュシステム、及びその制御方法
US4737908A (en) Buffer memory control system
JPS6194159A (ja) メモリ装置
JP3201635B2 (ja) 記憶制御装置
JPH05158793A (ja) 並列キャッシュメモリ
JPH06301600A (ja) 記憶装置
JPH09282231A (ja) ライトバック型キャッシュ装置
EP0376253A2 (en) Information processing apparatus with cache memory
JPH06324999A (ja) マルチプロセッサシステム
EP0460852A2 (en) System for maintaining data coherency between main and cache memories
JPH1063569A (ja) 主メモリデータ書込み装置
EP0369935A2 (en) Multiple posting cache memory

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: 20121227

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20131218

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20141230

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20151217

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20161221

Year of fee payment: 16

EXPY Expiration of term