KR100322366B1 - Sram캐시용워드폭선택 - Google Patents
Sram캐시용워드폭선택 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1064—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0879—Burst mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0886—Variable-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
컴퓨터 시스템 특히 개인용 컴퓨터의 성능은 컴퓨터 아키텍쳐 설계의 고속 성장으로 인해 특히 컴퓨터 메모리의 성능면에서 극적으로 개선되었다.
그러나 컴퓨터 프로세서 및 메모리는 동일한 속도로 개발되지는 않는다. 메모리는 프로세서에 충분한 응답 속도를 제공할 수 없다. 프로세서와 메모리간의 속도 차이를 줄이기 위해서, 메모리 계층 구조의 개념이 도입되었다. 메모리 계층 구조는 다수의 상이한 메모리 레벨, 크기 및 속도를 포함한다. 프로세서 주위 또는 내부에 위치한 메모리는 일반적으로 소형 및 고속이며, 통상적으로 캐시 메모리(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, 제2, 제3 및 제4 롱워드- 각 롱워드는 복수의 워드를 포함함 -를 포함한 복수의 롱워드를 포함하는 데이타 메모리 영역을 갖는 메모리 어레이(110);상기 캐시 메모리를 데이타 버스에 접속시키기 위한 캐시 인터페이스(160); 및상기 메모리 어레이와 상기 캐시 인터페이스 사이에 접속되고, 제1 데이타 버스 폭 구성과 제2 데이타 버스 폭 구성 중에서 선택하도록 동작 가능하며, 또한 상기 캐시 인터페이스와 상기 메모리 어레이 사이의 데이타 전송을 위해 동작 가능한 입력/출력 경로를 포함하되,상기 메모리 어레이는 복수의 테그 워드를 포함하는 테그 메모리 영역을 더 포함하며,상기 입력/출력 경로는복수의 공통 입력 선택 로직 및 복수의 선택적 입력 선택 로직을 갖는 입력 선택 로직(106) - 상기 복수의 선택적 입력 선택 로직은 제1 및 제2 선택적 입력 선택 로직을 포함함 - ;복수의 공통 출력 선택 로직 및 제1 및 제2 선택적 출력 선택 로직을 포함하는 복수의 선택적 출력 선택 로직을 갖는 출력 선택 로직(108); 및상기 입력 선택 로직 및 상기 출력 선택 로직에 접속되며, 상기 제1 및 제2 선택적 입력 선택 로직과 상기 제1 및 제2 선택적 출력 선택 로직을 사이클 카운트 및 데이타 버스 폭의 함수로서 제어하는 버스 사이클 카운터(102)를 포함하고,상기 입력/출력 경로가 제1 데이타 버스 폭 구성용으로 구성되는 경우 상기 버스 사이클 가운터가 3개 버스 사이클을 카운트하고, 상기 입력/출력 경로가 제2 데이타 버스 폭 구성용으로 구성되는 경우 상기 버스 사이클 카운터가 4개 버스 사이클을 카운트하는것을 특징으로 하는 캐시 메모리.
- 제1항에 있어서, 상기 입력 선택 로직 및 상기 출력 선택 로직은 논리적으로 동일하며 상기 데이타는 선형 버스트 순서 또는 인터리빙된 순서로 상기 데이타 버스 상에 존재하는 것을 특징으로 하는 캐시 메모리.
- 제2항에 있어서, 상기 공통 로직은 항상 동작하고, 상기 제1 선택적 로직은 상기 캐시 메모리가 제1 데이타 버스 폭 구성인 경우에만 동작하며, 상기 제2 선택적 로직은 상기 캐시 메모리가 제2 데이타 버스 폭 구성인 경우에만 동작하는 방식으로 상기 입력 및 출력 선택 로직이 동작하는 것을 특징으로 하는 캐시 메모리.
- 제3항에 있어서, 상기 제1 및 제2 선택적 입력 선택 로직 및 제1 및 제2 선택적 출력 선택 로직은 상기 롱워드의 초기 어드레스의 2개의 최하위 디지트의 함수로서 또한 제어되는 것을 특징으로 하는 캐시 메모리.
- 제4항에 있어서, 상기 버스 사이클 카운터는 상기 데이타 버스가 96-비트 폭 데이타 버스인 경우에는 제1, 제2 및 제3 카운트 사이클을 카운팅한 후에 0으로 리셋되며, 상기 데이타 버스가 80-비트 폭 데이타 버스인 경우에는, 제1, 제2, 제3 및 제4 카운트 사이클을 카운팅한 후에 0으로 리셋되는 것을 특징으로 하는 캐시 메모리.
- 제5항에 있어서, 상기 모든 테그 워드는 상기 데이타 버스가 96-비트 폭 데이타 버스인 경우에 상기 제1 버스 사이클 상에서 전송되며, 상기 테그 워드는 상기 데이타 버스가 80-비트 폭 데이타 버스인 경우에 하나 이상의 버스 사이클에 존재하는 것을 특징으로 하는 캐시 메모리.
- 제6항에 있어서, 상기 입력 및 출력 선택 로직은 상기 메모리 어레이로부터 관련 출력 블록까지 데이타를 전송하도록 34개의 데이타 루팅 경로(pathway) 중 6개까지 인에이블링시키는 것을 특징으로 하는 캐시 메모리.
- 제7항에 있어서, 상기 입력 선택 로직 및 상기 출력 선택 로직은 동일하게 구성되는 것을 특징으로 하는 캐시 메모리.
- 캐시 메모리(100) 동작 방법에 있어서,프로세서-캐시 인터페이스(160)를 제공하는 단계 - 상기 프로세서-캐시 인터페이스는 복수의 버스 데이타 폭들 중에서 선택하기 위한 워드 선택 로직(106, 108)을 포함함 - ;상기 복수의 버스 데이타 폭으로부터 하나의 버스 데이타 폭을 선택하는 단계;캐시 라인 요청을 수신하는 단계;상기 선택된 버스 데이타 폭으로 상기 데이타를 포맷(format)하는 단계; 및상기 데이타를 상기 프로세서로 전송하는 단계 - 상기 전송 단계는 상기 데이타 버스의 폭이 96-비트와 일치하는 경우 3개의 버스 사이클 내에 상기 데이타를 완전히 전송하고 상기 데이타 버스의 폭이 80-비트와 일치하는 경우 4개의 버스 사이클 내에 상기 데이타를 완전히 전송하는 단계를 포함함 -를 포함하는 것을 특징으로 하는 캐시 메모리 동작 방법.
- 제9항에 있어서, 상기 전송 단계는 제1 사이클에서 모든 테그 워드를 전송하는 단계를 포함하는 것을 특징으로 하는 캐시 메모리 동작 방법.
- 프로세서(150);입력/출력 경로 및 메모리 어레이(110)를 갖는 캐시 메모리(100); 및상기 프로세서와 상기 캐시 메모리의 상기 입력/출력 경로 사이에 접속된 프로세서-캐시 인터페이스(160)를 포함하는 컴퓨터 시스템에 있어서,상기 프로세서-캐시 인터페이스는 데이타 버스 및 복수의 데이타 버스 폭 중에서 선택하기 위한 선택 로직(ADS#)을 포함하며;상기 메모리 어레이(110)는 복수의 캐시 라인 및 복수의 테그 워드를 위한 저장체(storage)를 포함하며;상기 입력/출력 경로는복수의 공통 입력 선택 로직 및 복수의 선택적 입력 선택 로직을 갖는 입력 선택 로직(106) - 상기 복수의 선택적 입력 선택 로직은 제1 및 제2 선택적 입력 선택 로직을 포함함 - ;복수의 공통 출력 선택 로직 및 제1 및 제2 선택적 출력 선택 로직을 포함하는 복수의 선택적 출력 선택 로직을 갖는 출력 선택 로직(108); 및상기 입력 선택 로직 및 상기 출력 선택 로직에 접속되며, 상기 제1 및 제2 선택적 입력 선택 로직 및 상기 제1 및 제2 선택적 출력 선택 로직을 선택 로직 및 사이클 카운트의 함수로서 제어하는 버스 사이클 카운터(102)를 포함하고,상기 입력/출력 경로가 제1 데이타 버스 폭 구성용으로 구성되는 경우 상기 버스 사이클 가운터가 3개 버스 사이클을 카운트하고, 상기 입력/출력 경로가 제2 데이타 버스 폭 구성용으로 구성되는 경우 상기 버스 사이클 카운터가 4개 버스 사이클을 카운트하는것을 특징으로 하는 컴퓨터 시스템.
- 제11항에 있어서, 상기 캐시 라인은 복수의 롱워드를 포함하되, 각각의 상기 롱워드는 복수의 워드를 포함하며, N-비트 버스의 사용을 최적화하기 위한 순서 계획에 의해, 상기 복수의 테그 워드 중 하나와 함께 순서화된 정보 블록으로 병합되는 것을 특징으로 하는 컴퓨터 시스템.
- 제12항에 있어서, 상기 출력 선택 로직은 상기 순서화된 블록으로 병합되도록 상기 워드 및 상기 테그 워드를 병합시키는데 사용되는 복수의 데이타 루팅 경로를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
- 제13항에 있어서, 상기 선택 로직은 상기 복수의 데이타 루팅 경로로 데이타의 루팅에 논리적 제어를 제공하는 것을 특징으로 하는 컴퓨터 시스템.
- 제14항에 있어서, 상기 입력 선택 로직 및 상기 출력 선택 로직은 논리적으로 동일한 것을 특징으로 하는 컴퓨터 시스템.
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)
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)
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 |
-
1996
- 1996-06-13 US US08/663,386 patent/US5960453A/en not_active Expired - Lifetime
-
1997
- 1997-06-13 AU AU33896/97A patent/AU3389697A/en not_active Abandoned
- 1997-06-13 EP EP97929956A patent/EP0978041A1/en not_active Withdrawn
- 1997-06-13 EP EP00204405A patent/EP1087296B1/en not_active Expired - Lifetime
- 1997-06-13 WO PCT/US1997/010184 patent/WO1997048048A1/en active IP Right Grant
- 1997-06-13 KR KR1019980710264A patent/KR100322366B1/ko not_active IP Right Cessation
- 1997-06-13 JP JP50182798A patent/JP3569735B2/ja not_active Expired - Lifetime
-
1999
- 1999-04-26 US US09/299,799 patent/US6223253B1/en not_active Expired - Lifetime
-
2001
- 2001-04-24 US US09/841,643 patent/US6493799B2/en not_active Expired - Lifetime
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 |