KR100454441B1 - 전폭캐쉬를가진집적프로세서/메모리장치 - Google Patents

전폭캐쉬를가진집적프로세서/메모리장치 Download PDF

Info

Publication number
KR100454441B1
KR100454441B1 KR1019970030446A KR19970030446A KR100454441B1 KR 100454441 B1 KR100454441 B1 KR 100454441B1 KR 1019970030446 A KR1019970030446 A KR 1019970030446A KR 19970030446 A KR19970030446 A KR 19970030446A KR 100454441 B1 KR100454441 B1 KR 100454441B1
Authority
KR
South Korea
Prior art keywords
cache
bank
data cache
line
cache line
Prior art date
Application number
KR1019970030446A
Other languages
English (en)
Other versions
KR980010781A (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 KR980010781A publication Critical patent/KR980010781A/ko
Application granted granted Critical
Publication of KR100454441B1 publication Critical patent/KR100454441B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory

Landscapes

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

Abstract

본 발명은 주기억장치, CPU, 그리고 전폭 캐쉬를 포함하는 집적 프로세서/메모리 장치에 관한 것이다. 주기억장치는 주기억장치 뱅크(bank)들을 포함한다. 주기억장치 뱅크 각각은 하나 또는 그 이상의 워드의 행(rows)을 저장한다. 각 캐쉬 라인은 대응하는 주기억장치 뱅크에 대응하는 행을 가진다. 캐쉬 라인들은 미리 결정된 워드 수만큼 넓다. CPU가 대응하는 주기억장치 뱅크의 주소 공간에 주소를 발하면, 캐시 뱅크는 캐쉬 라인의 태그들 및 주소들로부터 캐쉬 뱅크 적중(hit) 또는 캐쉬 미스(miss)가 캐쉬 뱅크에서 발생하였는지의 여부를 결정한다. 캐쉬 뱅크 미스가 일어나면, 캐시 뱅크는 캐쉬 라인의 빅팀(victim) 캐쉬 라인을 이슈된 주소에 의하여 특정된 대응하는 메모리 뱅크의 대응하는 행을 포함하는 새로운 캐쉬 라인과 교체한다.

Description

전폭 캐쉬를 가진 집적 프로세서/메모리 장치{INTEGRATED PROCESSOR/MEMORY DEVICE WITH FULL WIDTH CACHE}
전통적으로, 프로세서와 메모리 장치의 개발은 별개로 진행되어 왔다. 공정 기술, 회로 설계, 그리고 집적 칩(IC) 아키텍쳐에서의 진보는 프로세서 속도 및 메모리 용량의 거의 지수적 증가를 유도해 왔다. 그러나, 메모리 장치의 지연시간(latency)을 극적으로 개선하지 못했으며 액세스 타임은 점점 프로세서 성능의 제약요소로 되고 있다. 이것은 메모리 장벽(Memory wall)이라고 알려진 문제이며 1995년 3월 ACM computer Architecture News, Vol.23, No.1에서 발행된 William A.Wulf 그리고 Sally A. Mckee의 "Hitting the Memory Wall: Implication of the Obvious"에 더 완전하게 설명되어 있으며, 그것은 여기에서 참조에 의하여 명백히 일체화된다. 캐쉬의 계층적 구조를 통하여 외부 오프칩(off-chip) 주기억장치와 인터페이스 하는 복잡한 슈퍼스칼라 중앙처리장치(CPU)들을 사용하는 현행의 고성능 프로세서들은 메모리 장벽 문제에 의하여 영향을 받는다. 사실상, 이 CPU 중심의 설계 접근방식은 CPU와 메모리 속도의 갭(gap)을 줄이기 위하여 많은 양의 전력 및 칩 영역을 요한다.
메모리 장벽 문제는 일반적으로 작고 고속인 정적 랜덤 액세스 메모리(SRAM) 장치들이 CPU에 적은 지연시간을 주도록 메모리 시스템에 여러 레벨의 캐쉬를 부가하는 것으로 진전되고 있다. 프리페칭(prefetching) 및 적절한 코드 스케쥴링과 같은 지연시간 숨김 기법과 결합되어, 캐쉬들의 충분한 지역성(locality)을 가진 애플리케이션들에 대해 합리적인 효율성으로 고성능 프로세서를 수행시키는 것이 가능하다. 그러나, 그들의 캐쉬에 훌륭하게 적합한 애플리케이션들에서 좋은 성능을 얻게되는 반면, 이 프로세서들은 애플리케이션에 더욱 민감해져 왔다. 예를 들어, CAD 프로그램, 데이터베이스 애플리케이션, 또는 과학적 애플리케이션과 같은 큰 규모의 애플리케이션들은 큰 차이로 CPU 기반의 속도 예측치와 차이를 보인다.
더구나, CPU 중심의 설계 접근방식은 깊은 파이프라인들을 갖는 매우 복잡한 슈퍼스칼라 프로세서들을 야기했다. 무질서 실행(out-of-order execution) 및 레지스터 스코어보딩(register scoreboarding)과 같은 많은 이런 복잡성은 메모리 시스템 지연에 몰두하게 했다. 또한, 이 프로세서들은 캐쉬, 제어기 그리고 외부 주기억장치와 교신하기 위한 데이터 경로 등 많은 양의 지원 로직(logic)을 요한다. 이것은 막대한 비용, 전력 소비, 그리고 설계의 복잡성을 초래한다.
슈퍼스칼라 프로세서를 충분히 활용하기 위해서는, 큰 메모리 시스템이 요구된다. 이 효과는 CPU와 주기억장치 사이의 거리를 증가시키는 병목현상을 야기하는 것이다. 특히, 패키징 및 연결상의 제약 때문에 사용 가능한 메모리 대역폭을 감소시키는 인터페이스 및 칩 경계들을 추가시킨다.
그러나, 프로세서와 메모리 장치의 통합은 CPU 중심의 설계 접근방식의 대부분의 문제점을 피할 수 있게 한다. 그리고, 그렇게 하는 것이 단일 칩 설계의 기술적 제약들을 효과적으로 보충해주는 많은 이점들을 제공한다.
특히, CPU 중심의 프로세서 설계에 있어서, 명령어 및 데이터 캐쉬 라인들은 주기억장치의 폭보다 훨씬 적은 폭을 가진다. 이것은 주로 오프칩 주기억장치로부터 이 캐쉬라인들을 채우는 시간이 프로세서의 메모리 인터페이스에서 심각한 2차 경합(second order contention) 효과를 야기하기 때문이다. 결과적으로, 전폭(full width) 캐쉬보다 적은 것들이 종종 명령어 및 데이터 스트림들의 높은 공간적 지역성을 이용할 수 없다.
그러므로, 많은 애플리케이션에서 높은 공간적 지역성을 이용하는 전폭 명령어 및 캐쉬들에 대한 요구가 있다. 더욱이, "INTEGRATED PROCESSOR/MEMORY DEVICE WITH VICTIM DATA CACHE"의 명칭을 가진 관련 미국 특허출원 제 675,272호(1996년 7월 1일 출원되고 Attorney Docket No.는 A-63500/GSW/SMK 이며 Ashley Saulsbury, Andreas Nowatzyk, Fong Pong이 발명)는 여기에서 명시적으로 참조에 의하여 일체화되는데, 그것은 그런 전폭 데이터 캐쉬의 미스율(miss rate)을 더 개선하기 위하여 빅팀 데이터 캐쉬(victim data cache)의 사용을 설명하였고 청구범위에 포함시켰다.
본 발명은 프로세서와 메모리 장치의 통합을 통하여 CPU 중심의 설계 접근방식의 대부분의 문제점을 해결하고 또 단일 칩 설계의 기술적 제약들을 효과적으로보충하도록 한다. 특히, CPU 중심의 프로세서 설계에 있어서 캐쉬 라인들이 주기억장치의 폭보다 훨씬 적은 폭을 가지기 때문에 프로세서의 메모리 인터페이스에서 심각한 2차 경합(second order contention) 효과를 야기하는 것을 해결하기 위하여 높은 공간적 지역성을 이용하는 전폭 명령어 및 캐쉬들을 인출한다.
도 1은 본 발명에 따른 집적 프로세서/메모리(P/M)에 관한 블록도.
도 2는 P/M 장치의 각 메모리 블록의 주기억장치 뱅크, 기본 데이터 캐쉬 뱅크, 그리고 명령어 캐쉬 뱅크에 관한 블록도.
도 3은 각 명령어 캐쉬 뱅크의 명령어 캐쉬 뱅크 논리(logic)에 관한 블록도.
도 4는 각 명령어 캐쉬 뱅크의 명령어 캐쉬 뱅크 논리(logic)의 상태에 관한 상태도.
도 5는 각 기본 데이터 캐쉬 뱅크의 기본 데이터 캐쉬 뱅크 논리(logic)에 관한 블록도.
도 6은 각 기본 데이터 캐쉬 뱅크의 기본 데이터 캐쉬 뱅크 논리(logic)의 상태에 관한 상태도.
도 7은 P/M 장치의 빅팀 캐쉬에 관한 블록도.
도 8은 빅팀 캐쉬 논리의 상태에 관한 상태도.
* 도면의 주요 부분에 대한 부호의 설명 *
100 : 집적 P/M 장치 102 : CPU
103 : 온칩 메모리 시스템 104 : 메모리 블록
110 : 데이터 주소 버스 116 : 제어 버스
118 : 주기억장치 뱅크 120 : 명령어 캐쉬 뱅크
122 : 데이터 캐쉬 뱅크 128: 명령어 캐쉬 뱅크 라인 저장장치
요약하여 본 발명은 집적 프로세서/메모리 장치에 관한 것이다. 그것은 주기억장치, CPU, 그리고 전폭 캐쉬를 포함한다.
주기억장치는 미리 정의된 주소 공간을 가지며 주기억장치 뱅크(bank)들을 포함한다. 주기억장치 뱅크 각각은 주소공간의 해당 부분을 점유하며 주소 공간의 해당 부분에 있는 주소들과 함께 메모리 위치에 워드의 행(rows of words)을 저장한다. 상기 행은 미리 정해진 워드 수만큼 넓다.
캐쉬는 캐쉬 뱅크들로 구성된다. 각 캐쉬 뱅크는 CPU 및 주기억장치 뱅크들중에 대응하는 주기억장치 뱅크와 결합된다. 각 캐쉬 뱅크는 캐쉬 뱅크 라인 저장장치, 캐쉬 뱅크 태그 저장장치, 그리고 캐쉬 뱅크 논리를 포함한다. 캐쉬 뱅크 라인 저장장치는 대응하는 주기억장치와 연결되고 하나 또는 그 이상의 워드들의 캐쉬 라인들을 저장한다. 각 캐쉬 라인은 대응하는 주기억장치 뱅크에 있는 대응하는 행(row)을 가진다. 캐쉬 라인들은 미리 결정된 워드 수만큼 넓다. 캐쉬 뱅크 태그 저장장치는 각 캐쉬 라인에 대한 대응하는 태그를 저장한다. 각 태그는 대응하는 캐쉬 라인의 대응하는 메모리 뱅크에 있는 행(row)을 식별한다. 캐쉬 뱅크 논리는 CPU, 대응하는 메모리 뱅크, 그리고 캐쉬 저장장치와 결합된다. CPU가 대응하는 주기억장치 뱅크의 주소 공간에 주소를 발하면, 캐쉬 뱅크 논리는 캐쉬 라인의 태그들 및 주소들로부터 캐쉬 뱅크 적중(hit) 또는 캐쉬 미스(miss)가 캐쉬 뱅크 라인 저장장치에서 발생하였는지의 여부를 결정한다. 캐쉬 뱅크 미스가 일어나면, 캐쉬 뱅크 논리는 캐쉬 라인의 빅팀(victim) 캐쉬 라인을 이슈된 주소에 의하여 특정된 대응하는 메모리 뱅크의 대응하는 행을 포함하는 새로운 캐쉬 라인과 교체한다. 본 발명의 부가적인 목적 및 특징들은 첨부된 도면들과 결합된 상세한 설명 및 청구범위로부터 더욱 명백해 질 것이다.
도 1과 관련하여, 본 발명에 따른 집적 P/M 장치(100)의 구현 예가 도시되어 있다. P/M 장치의 집적 부품들은 CPU(102), 온칩(on-chip) 메모리 시스템(103), 64비트 데이터 버스(108), 25 비트 데이터 주소 버스(110), 32 비트 명령어 버스(112), 25 비트 명령어 주소 버스(114), 그리고 제어 버스(116)를 포함한다. 메모리 시스템은 16개의 메모리 블록(104) 및 빅팀 캐쉬(106)를 포함한다.
각 메모리 블록(104)은 대응하는 주기억장치 뱅크(118), 대응하는 명령어 캐쉬 뱅크(120), 그리고 대응하는 데이터 캐쉬 뱅크(122)를 포함한다. 아래의 설명에 의하여 명백해지겠지만, 16개의 메모리 뱅크들은 함께 P/M 장치의 주기억장치를 형성한다. 그리고, 16개의 명령어 캐쉬 뱅크들은 함께 직접 사상 명령어 캐쉬(direct-mapped instruction cache)를 형성하는 반면 16개의 데이터 캐쉬 뱅크들은 함께 2-웨이 집합 연관 데이터 캐쉬(two-way set-associative data cache)를 형성한다. 또한, 빅팀 캐쉬는 16-웨이 완전 연관 캐쉬(16-way fully-associative cache)이다.
이하 주기억장치에 관하여 설명한다.
도 2와 관련하여, 각 메모리 뱅크(104)의 주기억장치 뱅크(118)는 4096(4K)개 메모리 셀(123)의 행(row)을 갖는 16M 비트 DRAM을 포함한다. 각 행은 4096개의 메모리 셀을 가지고 있다. 또한 주기억장치 뱅크는 12개의 주소 비트로 주소지정된(즉, 식별된) 행의 위치를 결정하기 위하여 12개의 주소 비트를 디코드하는 행 디코더(124)를 포함한다. 그리고, 주기억장치 뱅크는 주소지정된 행의 메모리 셀로부터 또는 그 셀로 한번에 4096 비트의 주소지정된 행을 집단적으로 읽거나 쓰는 4096 개의 센스 증폭기(sense amplifier)(126)를 포함한다. 구현 예에서 주기억장치 뱅크는 DRAM을 포함하기 때문에, 주기억장치 뱅크에 대한 액세스 타임은 6 사이클(예, 30 ns)이다.
각 주기억장치 뱅크(118)의 행들은 4096 비트 또는 512 바이트 넓이를 갖기 때문에, 각 주기억장치 뱅크는 2M 바이트를 포함하며 16개의 주기억장치 뱅크들은 함께 32M 바이트를 포함하는 주기억장치를 형성한다. 그러므로, 각 주기억장치 뱅크는 32M 바이트 주기억장치 주소 공간의 2M 바이트 부분을 점유한다. 더욱이, 각 바이트는 25 비트 주소(A24-A0)로 주소지정이 가능한데, 4개의 최상위 주소 비트 (A24-A21)는 주기억장치 뱅크를 식별하고, 9개의 최하위 주소 비트(A0-A8)는 행의 바이트를 식별한다.
다음으로 명령어 캐쉬에 관하여 설명한다.
도 2와 관련하여, 각 메모리 블록(104)의 명령어 캐쉬 뱅크(120)는 명령어 캐쉬 뱅크 라인 저장장치(128)를 포함한다. 명령어 캐쉬 뱅크 라인 저장장치는4096개의 래치들(latches)을 가진 단일의 긴 버퍼(130)를 포함한다. 버퍼의 래치들은 메모리 블록의 주기억장치 뱅크(118)의 각 행과 같이 4096 비트 또는 512 바이트 넓이인 단일의 긴 명령어 캐쉬 라인 (또는 블록)을 집단적으로 저장한다. 그리고, 명령어 캐쉬 라인은 주기억장치 뱅크의 각 행만큼 넓기 때문에, 각 명령어 워드는 32 비트 또는 4 바이트의 길이를 갖는다. 결과적으로, 명령어 캐쉬 라인은 128 명령어 워드의 넓이를 가지며 명령어 워드들을 저장하는 주기억장치 뱅크의 각 행도 그러하다.
더욱이, 각 메모리 블록(104)에서, 주기억장치 뱅크(118)의 각 행은 명령어 캐쉬 뱅크 라인 저장장치(128)의 단일의 명령어 캐쉬 라인에 인덱스 된다(즉, 맵된다). 그러므로, 주기억장치 뱅크의 행을 특정하는 25 비트 명령어 주소들(A24-A0)은 명령어 캐쉬 뱅크 라인 저장장치에 대한 동일한 인덱스를 포함한다. 이 인덱스는 이 주소들의 최상위 비트(A24-A21)이며 또한 주기억장치 뱅크를 식별한다.
각 메모리 블록(104)의 명령어 캐쉬 뱅크(120)는 또한 명령어 캐쉬 뱅크 태그 저장장치(132)를 포함한다. 명령어 캐쉬 뱅크 태그 저장장치는 현재 명령어 캐쉬 뱅크 라인 저장장치(128)에 의하여 저장된(즉, 캐쉬된) 명령어 캐쉬 라인에 의하여 일반적으로 점유된 대응하는 주기억장치 뱅크(118) 내의 행을 식별하는 12 비트 명령어 캐쉬 라인 태그를 저장한다. 간단히 설명되겠지만, 명령어 캐쉬 뱅크 논리(134)는 이 태그(tag)와 주기억장치 주소 공간의 대응하는 주기억장치 뱅크 부분에 있으며 이슈된 각 25 비트 명령어 주소(A24-A0)의 12개의 주소 비트(A20-A9)를 비교한다.
각 메모리 블록(104)의 명령어 캐쉬 뱅크(120)의 동작은 명령어 캐쉬 뱅크 논리(134)에 의하여 제어된다. 도 3과 관련하여, 각 명령어 캐쉬 뱅크의 명령어 캐쉬 뱅크 논리는 명령어 캐쉬 뱅크 제어 상태 머신(136), 명령어 뱅크 주소/태그 비교 회로(138), 그리고 명령어 캐쉬 뱅크 선택 회로(140)를 포함한다. 도 4는 명령어 캐쉬 뱅크 논리 제어 상태 머신의 동작 상태들을 보여준다.
도 2내지 4와 관련하여, CPU가 CPU의 명령어 파이프라인을 위한 새로운 명령어 워드를 인출(fetch)하기를 원할 때, 명령어 워드를 인출하기 위하여 명령어 주소 버스(114) 위에 25 비트의 명령어 주소(A24-A0)를 이슈한다(issue). 이슈된 명령어 주소는 주기억장치의 주소 공간 내의 명령어 워드의 메모리 위치를 특정한다.
각 명령어 캐쉬 뱅크(120)에서, 명령어 캐쉬 뱅크 논리(134)의 명령어 캐쉬 뱅크 선택 회로(140)는 명령어 주소 버스(114)로부터 4개의 최상위 비트(A24-A21)의 이슈된 명령어 주소를 받아들인다. 응답으로써, 그것은 그들이 대응하는 주기억장치 뱅크(118)를 식별하는지(즉, 주기억장치 주소 공간의 대응하는 주기억장치의 부분에 있는 이슈된 주소인가의 여부)를 결정하기 위하여 이 4개의 주소 비트를 디코드한다. 만약, 그들이 대응하는 주기억장치 뱅크를 식별한다면, 명령어 캐쉬 뱅크 선택 회로는 뱅크 선택 신호를 명령어 캐쉬 뱅크 제어 상태 머신(136) 및 명령어 캐쉬 뱅크 주소/태그 비교 회로(138)로 보내어 대응하는 주기억장치 뱅크가 선택되었다는 것을 나타낸다. 그렇지 않으면, 뱅크 선택 신호는 대응하는 주기억장치 뱅크가 아직 선택되지 아니하였다는 것을 나타내며 명령어 캐쉬 뱅크 제어 상태 머신은 휴식 상태에 있게 된다 (도 4의 137 상태).
각 명령어 캐쉬 뱅크(120)에서, 뱅크 선택 신호가 대응하는 주기억장치 뱅크(118)가 선택되었다는 것을 나타낼 때, 명령어 캐쉬 뱅크 주소/태그 비교 회로(138)는 명령어 캐쉬 뱅크 태그 저장장치(132)에 현재 저장된 명령어 캐쉬 라인 태그와 명령어 주소 버스(114) 위의 이슈된 명령어 주소의 12개 주소 비트(A20-A0)를 비교한다. 앞에서 암시하였듯이, 이 12개의 주소 비트는 명령어 워드가 저장된 대응하는 주기억장치 뱅크 내의 행의 메모리 위치를 식별한다.
만약 일치한다면, 명령어 캐쉬 뱅크 주소/태그 비교 회로(138)는 뱅크 선택 신호와 함께 명령어 캐쉬 뱅크 적중이 발생했다는 것을 나타내는 명령어 캐쉬 뱅크 적중/미스 신호를 이슈한다. 이것은 이슈된 명령어 주소에 의하여 특정된 메모리 위치가 현재 명령어 캐쉬 뱅크 라인 저장장치(128)에 의하여 현재 저장된 명령어 캐쉬 라인에 현재 접근 가능하다는 것을 의미한다.
각 명령어 캐쉬 뱅크(120)로부터의 명령어 캐쉬 뱅크 적중/미스 신호 및 뱅크 선택 신호들은 제어 버스(116)를 통하여 CPU(102)에게로 주어진다. 명령어 캐쉬 뱅크로부터의 명령어 캐쉬 적중/미스 및 뱅크 선택 신호는 명령어 캐쉬 뱅크에서 명령어 캐쉬 뱅크 적중이 발생했다는 것을 의미하며, 이것은 CPU로 하여금 명령어 워드가 명령어 캐쉬 뱅크(120)으로부터 직접 인출될 것이라는 것을 알게 한다. 결과적으로, 명령어 캐쉬 뱅크 미스가 발생했을 때 일어날 수 있는 것과 같이 CPU가 기억장치 뱅크에서 명령어 캐쉬 뱅크로 명령어가 읽혀지기를 기다리기 위하여 멈추어야 하고 그 다음에 인출되어야 할 필요성이 없다.
각 명령어 캐쉬 뱅크(120)에서, 명령어 캐쉬 뱅크 적중/미스 신호는 또한 명령어 캐쉬 뱅크 제어 상태 머신(136)에게 제공된다. 명령어 캐쉬 뱅크 제어 상태 머신은 부가적으로 명령어 주소 버스(114)로부터 이슈된 명령어 주소의 7 개의 주소 비트(A8-A2) 및 명령어 캐쉬 뱅크 라인 저장장치(128)에 의하여 현재 저장된 명령어 캐쉬 라인을 받아들인다.
명령어 캐쉬 뱅크(120)로 부터의 뱅크 선택 신호 및 명령어 캐쉬 뱅크 적중/미스는 명령어 캐쉬 뱅크 적중이 명령어 캐쉬 뱅크에서 발생했다는 것을 나타낼 때, 명령어 캐쉬 뱅크의 명령어 캐쉬 뱅크 제어 상태 머신(136)은 그 휴지(idle) 상태에 머무르며(도 4의 상태 137) 이슈된 명령어 주소에 의하여 특정된 명령어 캐쉬 라인의 액세스 가능한 메모리 위치를 결정하기 위하여 받아들여진 7개의 주소 비트들을 디코드한다. 그리고 이 위치에서 명령어 워드를 인출하며 그것을 CPU(102)에게로 제공한다(도 4의 상태 139). 이것은 명령어 워드를 명령어 버스(112)로 라우팅(즉, 멀티플렉싱) 하여 CPU(102)에 의하여 받아들여지게 함으로써 행해진다. 결과적으로, 명령어 워드의 인출이 완성된다. 구현 예에서, 이것은 단일 사이클(예, 5ns)에서 행해진다.
그러나, 각 명령어 캐쉬 뱅크(120)에서, 명령어 캐쉬 뱅크 주소/태그 비교 회로(138)가 비교되는 명령어 캐쉬 라인 태그와 이슈된 명령어 주소의 12개 주소 비트(A20-A9)가 일치하지 아니한다고 결정하면, 뱅크 선택 신호와 함께 명령어 캐쉬 뱅크 미스가 발생했다는 것을 나타내는 명령어 캐쉬 뱅크 적중/미스 신호를 이슈한다. 이것은 이슈된 명령어 주소에 의하여 특정된 위치가 현재 명령어 캐쉬 뱅크 라인 저장장치(128)에 의하여 저장된 명령어 캐쉬 라인에 현재 액세스가 불가능하다는 것을 의미한다.
그러므로, 명령어 캐쉬 뱅크(120)으로부터 CPU(102)에 의하여 받아들여진 뱅크 선택 신호들 및 명령어 캐쉬 뱅크 적중/미스가 명령어 캐쉬 뱅크 미스가 발생했다는 것을 나타내면, 이 경우, 명령어 캐쉬 뱅크 제어 상태 머신(136)은 이 명령어 캐쉬 뱅크 적중/미스 및 뱅크 선택 신호들을 받아들이며, 주기억장치 뱅크(118)에게 읽기 동작이 발생하리라는 것을 나타내는 W/R 제어 신호 및 명령어 주소 버스(114)로부터 받아들여진 12개의 주소 비트(A20-A9)를 이슈한다. 12개의 주소 비트에 대한 응답으로, 행(row) 디코더는 12개 주소 비트에 의하여 식별된 주기억장치 뱅크의 행의 위치를 지정한다. 그리고 W/R 제어 신호에 대한 응답에서, 센스 증폭기(126)들은 새로운 명령어 캐쉬 라인처럼 이 행을 읽어 낸다. 이것이 발생하는 중에, 명령어 캐쉬 뱅크 제어 상태 머신(136)은 명령어 캐쉬 뱅크 라인 저장장치(128)의 버퍼(130)에게 버퍼 제어 신호들을 이슈한다. 응답으로서, 센스 증폭기(126)으로부터 받은 새로운 명령어 캐쉬 라인을 래치하고(latch) 그렇게 함으로써 버퍼에 의하여 래치되었던 이전의 명령어 캐쉬 라인을 교체한다. 구현 예에서, 이것은 6 사이클을 요하는데, 1 사이클은 명령어 캐쉬 뱅크 미스가 발생했는지를 결정하기 위한 것이고, 4 사이클은 센스 증폭기의 프리차징(pre-charging) 및 행 디코더에 의한 주소 비트 디코딩을 위한 것이고, 그리고 1 사이클은 센스 증폭기에 의하여 읽혀진 새로운 명령어 캐쉬 라인을 버퍼로 래치하기 위한 것이다.
각 명령어 캐쉬 뱅크에서, 일단 새로운 명령어 캐쉬 라인이 명령어 캐쉬 뱅크 라인 저장장치(128)에 저장되면, 명령어 캐쉬 뱅크 제어 상태 머신(136)은 명령어 워드를 새로운 명령어 캐쉬 라인에 위치시키기 위하여 이슈된 명령어 주소의 7개의 주소 비트(A8-A2)를 디코드한다. 명령어 캐쉬 라인으로부터 위치된 명령어 워드를 인출하고 그것을 앞에서 설명한 방식으로 CPU(102)로 라우트한다(도 4의 단계 139). 앞에서 나타났듯이, 구현 예에서, 이것은 단일의 사이클에서 수행된다. 이것이 행해진 후, 휴지 상태로 돌아가고 (도 1의 단계 137) 다음의 이슈된 명령어를 기다린다.
앞의 관점에서, 16개의 명령어 캐쉬 뱅크(120)는 함께 8K 바이트를 포함하는 직접 사상된 온칩 명령어 캐쉬 메모리를 형성한다. 각 명령어 캐쉬 뱅크에 의하여 저장된 명령어 캐쉬 라인은 전폭(full-width)이기 때문에, 캐쉬 미스율은 전폭보다 적은 명령어 캐쉬 라인을 가진 종래의 프로세서 보다 훨씬 줄어든다. 이 낮은 캐쉬 미스율은 긴 명령어 캐쉬 라인의 선인출(prefetching) 및 명령어 스트림에서 발견되는 높은 공간적 지역성 때문이다.
더욱이, 오프칩 주기억장치 및 온칩 명령어 캐쉬들을 가지는 종래의 프로세서들은 전폭 명령어 캐쉬 라인의 이점을 얻을 수가 없다. 이것은 주기억장치로부터 명령어 캐쉬로 그런 전폭 캐쉬 라인을 읽을 때 메모리 인터페이스에서 발생되는 2차 경합 효과 때문이다. 그러나, 본 발명에서는, 이 경합 효과는 제거되는데 이것은 명령어 캐쉬 및 주기억장치 뱅크(118,120) 모두가 온칩이기 때문이다. 그러므로, 구현 예에서, 전체의 전폭 명령어 캐쉬 라인은 주기억장치 뱅크로부터 대응하는 명령어 캐쉬 뱅크로 6 사이클 내에 읽혀질 수 있다.
다음으로는 데이터 캐쉬 및 빅팀 데이터 캐쉬에 관하여 설명한다.
도 2와 관련하여, 각 메모리 블록(104)의 기본(Primary) 데이터 캐쉬 뱅크(122)는 두 개의 버퍼(146)를 포함하는 기본 데이터 캐쉬 뱅크 라인 저장장치를 포함한다. 각 명령어 캐쉬 뱅크 라인 저장장치(128)의 버퍼(130)와 같이, 기본 데이터 캐쉬 뱅크 라인 저장장치의 각 버퍼는 4096 비트 또는 512 바이트의 넓이를 가지는 기본 데이터 캐쉬 라인을 함께 저장하는 4096개의 래치를 포함한다. 더욱이, 구현 예에서, 각 기본 데이터 캐쉬 라인은 데이터 워드가 64 비트 또는 8 바이트 길이를 가지는 64개 데이터 워드의 넓이를 가진다.
각 메모리 블록(104)에서, 주기억장치 뱅크(118)의 각 행은 명령어 캐쉬 뱅크 라인 저장장치(128)의 명령어 캐쉬 라인에 대하여 인덱스될 뿐만 아니라 기본 데이터 캐쉬 뱅크 라인 저장장치(144)의 기본 데이터 캐쉬 라인들 모두에 대하여 인덱스 된다. 그러므로, 주기억장치 뱅크의 행을 특정하는 모든 25 비트 데이터 주소(A24-A0)들은 기본 데이터 캐쉬 뱅크 라인 저장장치에 대한 동일한 인덱스를 포함할 것이다. 명령어 주소와 비슷하게, 이 인덱스는 데이터 주소의 최상위 비트(A24-A21)이며 주기억장치 뱅크를 식별한다.
각 메모리 블록(104)의 기본 데이터 캐쉬 뱅크(122)도 기본 데이터 캐쉬 뱅크 태그/플래그(148)를 포함한다. 기본 데이터 캐쉬 뱅크 태그/플래그 저장장치는 기본 데이터 캐쉬 뱅크 라인 저장장치(144)에 의하여 현재 저장된 두 개의 기본 데이터 캐쉬 라인들의 각각에 대한 대응하는 더티 플래그 및 대응하는 12 비트 기본 데이터 캐쉬 라인 태그를 저장한다. 각 태그는 일반적으로 대응하는 기본 데이터 캐쉬 라인에 의하여 점유되는 대응하는 주기억장치 뱅크(118) 내의 행을 식별한다.이 태그들은 기본 데이터 캐쉬 뱅크 논리(150)에 의해, 주기억장치 주소 공간의 대응하는 주기억장치 뱅크의 부분에 있으며 이슈된 25 비트 데이터 주소(A24-A0) 중의 12개의 주소 비트(A20-A9)와 비교된다. 각 더티 플래그는 대응하는 기본 데이터 캐쉬 라인이 더티인지(즉, 기본 데이터 캐쉬 라인에 쓰여져 있으나 주기억장치 뱅크에는 쓰여지지 아니한 하나 또는 그 이상의 데이터 워드들을 포함하는지)의 여부를 식별한다. 또한 기본 데이터 캐쉬 뱅크 태그/플래그 저장장치는 어떤 기본 데이터 캐쉬 라인들이 가장 적게 사용되었는가(즉, 액세스 되었는가)를 식별하는 최근에 가장 적게 사용된 플래그(LRU)를 저장한다.
각 메모리 블록(104)의 기본 데이터 캐쉬 뱅크(122)의 동작은 기본 데이터 캐쉬 뱅크 논리(150)에 의하여 제어된다. 도 5에 보여진 바와 같이, 각 기본 데이터 캐쉬 뱅크의 기본 데이터 캐쉬 뱅크 논리는 기본 데이터 캐쉬 뱅크 제어 상태 머신(152), 기본 데이터 캐쉬 뱅크 주소/태그 비교 회로(154), 그리고 기본 데이터 캐쉬 뱅크 선택 회로(156)를 포함한다. 도 6은 기본 데이터 캐쉬 뱅크 논리 제어 상태 머신의 동작 상태를 보여준다.
도 7과 관련하여, 그리고 뒤에서 자세히 설명되는 것과 같이, 빅팀(victim) 데이터 캐쉬는 최근에 기본 데이터 캐쉬 뱅크(122)에 있는 새로운 기본 데이터 캐쉬 라인들과 교체된 기본 데이터 캐쉬 라인들(즉, 교체 빅팀들)의 빅팀 데이터 캐쉬 서브라인(sub-line)들(즉, 서브 블록들)을 저장하기 위하여 사용된다. 빅팀 데이터 캐쉬는 16개의 버퍼들(162)을 포함하는 빅팀 데이터 캐쉬 라인 저장장치(160)를 포함한다. 빅팀 데이터 캐쉬 라인 저장장치의 각 버퍼는 256 비트 또는 32 바이트 넓이를 가지는 빅팀 데이터 캐쉬 서브 라인을 함께 저장하는 256개의 래치를 포함한다. 그러므로, 구현 예에서, 각 빅팀 데이터 캐쉬 서브라인은 4 데이터 워드의 넓이를 가진다.
또한 빅팀 데이터 캐쉬(106)는 빅팀 데이터 캐쉬 태그/플래그 저장장치(164)를 포함한다. 빅팀 데이터 캐쉬 태그/플래그 저장장치는 빅팀 데이터 캐쉬 라인 저장장치(160)에 의하여 현재 저장된 16개의 빅팀 데이터 캐쉬 서브라인들 각각을 위한 대응하는 22 비트 태그를 저장한다. 각 태그는 대응하는 빅팀 데이터 캐쉬 서브라인을 식별하며 주기억장치에서 그것이 일반적으로 점유하는 메모리 위치를 나타낸다. 빅팀 데이터 캐쉬 논리(166)는 이 태그들과 이슈된 25 비트 데이터 주소(A24-A0) 각각의 19개 주소 비트(A24-A6)를 비교한다. 또한, 빅팀 데이터 캐쉬 태그/플래그 저장장치는 새로운 빅팀 데이터 캐쉬 서브라인이 빅팀 데이터 캐쉬에 쓰여진 다음에 어떤 빅팀 데이터 캐쉬 서브라인이 플러쉬(flushed)될 것인가를 식별하는 플러쉬 플래그를 저장한다.
빅팀 데이터 캐쉬(106)의 동작은 빅팀 데이터 캐쉬 논리(166)에 의하여 제어된다. 도 8에서와 같이, 빅팀 데이터 캐쉬 논리는 빅팀 데이터 캐쉬 제어 상태 머신(168) 및 빅팀 데이터 캐쉬 주소/태그 비교 회로(170)를 포함한다. 도 9는 빅팀 데이터 캐쉬 논리 제어 상태 머신의 동작을 보여준다.
도 1과 관련하여, CPU는 주기억장치로 또는 주기억장치로부터 데이터 워드를 읽거나 쓰기를 원할 때 데이터 주소 버스(110) 상에 25 비트 데이터 주소(A24-A0)를 이슈한다. 이슈된 데이터 주소는 주기억장치의 주소 공간에서의 메모리 위치를식별하는데 거기에서 데이터 워드는 읽혀지거나 쓰여진다. CPU는 또한 읽기 또는 쓰기가 발생할 것인지를 나타내는 읽기/쓰기(W/R) 신호를 제어 버스(116)에 이슈한다.
도 7 내지 도 9와 관련하여, 데이터 주소가 CPU(102)에 의해 이슈될 때마다, 빅팀 데이터 캐쉬(106)의 빅팀 데이터 캐쉬 주소/태그 비교 회로(170)는 데이터 주소 버스(110) 상의 이슈된 데이터 주소의 19개 주소 비트(A24-A6)를 현재 빅팀 데이터 캐쉬 태그/플래그 저장장치(164)에 저장된 태그들과 비교한다. 만약 일치한다면, 빅팀 데이터 캐쉬 주소/태그 비교 회로는 빅팀 데이터 캐쉬 적중이 발생했다는 것을 나타내는 빅팀 데이터 캐쉬 적중/미스 신호를 이슈한다. 이것은 이슈된 데이터 주소에 의하여 주소지정된 메모리 위치가 빅팀 데이터 캐쉬 라인 저장장치(160)에 저장된 빅팀 데이터 캐쉬 서브라인 중의 하나에 현재 액세스 가능하다는 것을 의미한다. 또한 빅팀 데이터 캐쉬 적중/미스 신호는 빅팀 데이터 캐쉬 적중이 발생하는 빅팀 데이터 캐쉬 서브라인을 식별한다. 그러나 만약 일치하는 것이 없다면, 이것은 이슈된 데이터 주소에 의하여 주소지정된 메모리 위치가 빅팀 데이터 캐쉬 라인 저장장치에 저장된 빅팀 데이터 캐쉬 서브라인들 중의 하나에 현재 액세스가 불가능하다는 것을 의미하며 빅팀 데이터 캐쉬 주소/태그 비교 회로는 빅팀 데이터 캐쉬 미스가 발생했다는 것을 나타내는 빅팀 데이터 캐쉬 적중/미스 신호를 이슈한다.
종래의 빅팀 데이터 캐쉬들과 달리, 본 구현 예에서의 빅팀 데이터 캐쉬(106)는 기본 데이터 캐쉬 뱅크들(122)에 빅팀 데이터 캐쉬 서브라인들을 되쓰기위하여 사용되지 아니한다. 즉, 빅팀 데이터 캐쉬는 데이터 워드를 빅팀 데이터 캐쉬 서브라인에 쓰지 아니하며 더티 빅팀 데이터 캐쉬 서브라인을 대응하는 기본 데이터 캐쉬 뱅크에 되쓴다. 이것은 뒤에서 설명될 구조적 제약들 및 타이밍 때문이다.
빅팀 데이터 캐쉬 제어 상태 머신(168)은 제어 버스 상에서 CPU(102)로부터 W/R 신호를, 빅팀 데이터 캐쉬 주소/태그 비교 회로(170)로부터 빅팀 데이터 캐쉬 적중/미스 신호를, 데이터 버스(110) 상에서 이슈된 데이터 주소의 6개 주소 비트(A8-A3)를, 그리고 빅팀 데이터 캐쉬 라인 저장장치(160)에 의하여 현재 저장된 빅팀 데이터 캐쉬 서브라인들을 받아들인다. W/R 신호가 읽기가 발생할 것이라는 것을 나타낼 때 그리고 빅팀 데이터 캐쉬 적중/미스 신호가 빅팀 데이터 캐쉬 적중이 발생했다는 것을 나타낼 때, 빅팀 데이터 캐쉬 제어 상태 머신은 휴지(idle) 상태에 있게 되며(도 9의 단계 171) 데이터 워드가 읽혀질 식별된 빅팀 데이터 캐쉬 서브라인에 있는 데이터 워드의 메모리 위치에 액세스가능한가를 결정하기 위하여 받아들인 6개의 주소 비트를 디코드한다. 그리고 빅팀 데이터 캐쉬 제어 상태 머신은 인식된 빅팀 데이터 캐쉬 서브라인으로부터 데이터 워드를 읽으며 그것을 CPU(102)에게 제공한다(도 9의 단계 173). 이것은 인식된 빅팀 데이터 캐쉬 서브라인에 있는 데이터 워드를 데이터 버스(108) 상으로 라우팅(routing) 하여 CPU에 의하여 받아들여지게 함으로써 행해진다. 본 구현 예에서, 빅팀 데이터 캐쉬에 액세스 하기 위하여 그리고 빅팀 데이터 캐쉬 서브라인을 CPU로 읽기 위하여 오로지 단일의 사이클만이 요구된다.
그러나, CPU(102)로부터 받아들여진 W/R 신호가 쓰기가 발생할 것이라는 것을 나타낼 때 또는 빅팀 데이터 캐쉬 미스가 발생했다는 것을 나타내는 빅팀 데이터 캐쉬 적중/미스 신호가 이슈될 때, 빅팀 데이터 캐쉬 제어 상태 머신(168)은 휴지의 상태에 있게 된다(도 9의 상태 171). 이 경우, 이슈된 데이터 주소에 의하여 특정된 메모리 주소에서 읽히거나 쓰여질 데이터 워드는 이슈된 데이터 주소에 의하여 특정된 메모리 주소를 가지는 대응하는 주기억장치 뱅크(118)와 함께 메모리 블록(104)에 있는 기본 데이터 캐쉬 뱅크(122)로 쓰여지거나 또는 읽혀져야만 한다.
또한 CPU(102)는 빅팀 데이터 캐쉬 적중/미스 신호를 받는다. 그러므로, 읽기 동작 중에 빅팀 데이터 캐쉬 적중이 발생했다는 것을 나타내는 빅팀 데이터 캐쉬 적중/미스 신호를 CPU가 받아들일 때, 이슈된 데이터 주소에 의하여 특정된 메모리 위치에 있는 데이터 워드가 데이터 버스(108)를 통하여 빅팀 데이터 캐쉬(106)에 의하여 제공되기를 기다려야 한다. 그러나, CPU가 쓰기 동안 빅팀 데이터 캐쉬 적중이 발생했다는 것을 나타내는 빅팀 데이터 캐쉬 적중/미스 신호를 받거나, 빅팀 데이터 캐쉬 미스가 발생했다는 것을 나타내는 빅팀 데이터 캐쉬 적중/미스 신호를 받아들일 때, 그것은 기본 데이터 캐쉬 뱅크 적중 또는 미스 신호가 이슈된 데이터 주소에 의하여 특정된 메모리 위치와 함께 주기억장치 뱅크(118)에 대응하는 기본 데이터 캐쉬 뱅크(122)에 의하여 이슈되었는지 여부를 결정한다.
도 2, 5, 그리고 6과 관련하여, 각 기본 데이터 캐쉬 뱅크(122)에서, 기본 데이터 캐쉬 뱅크 논리(150)의 기본 데이터 캐쉬 뱅크 선택 회로(156)는 각 명령어캐쉬 뱅크(120)의 명령어 캐쉬 뱅크 논리(134)의 명령어 캐쉬 뱅크 선택 회로(140)와 같은 방식으로 동작한다. 그러므로, 데이터 주소 버스(110)으로부터 이슈된 데이터 주소의 4개의 최상위 비트(A24-A21)를 받아들인다. 응답으로써, 그것은 이 4개의 주소 비트를 디코드하여 그들이 대응하는 주기억장치 뱅크(118)를 식별하는 지의 여부를 결정한다. 만약 그들이 대응하는 주기억장치 뱅크를 식별한다면, 기본 데이터 캐쉬 뱅크 선택 회로는 대응하는 주기억장치 뱅크가 선택되었다는 것을 나타내는 뱅크 선택 신호를 기본 데이터 캐쉬 뱅크 주소/태그 비교 회로(154) 및 기본 데이터 캐쉬 뱅크 제어 상태 머신(152)을 보낸다. 그렇지 않으면, 뱅크 선택 신호는 대응하는 주기억장치가 선택되지 아니하였다는 것과 기본 데이터 캐쉬 뱅크 제어 상태 머신이 휴지 상태에 있다는 것을 나타낸다(도 6의 단계 157).
각 기본 데이터 캐쉬 뱅크(122)에서, 뱅크 선택 신호가 대응하는 주기억장치 뱅크(118)가 선택되었다는 것을 나타내면, 기본 데이터 캐쉬 뱅크 주소/태그 비교 회로(154)는 현재 기본 데이터 캐쉬 뱅크 태그/플래그 저장장치(148)에 저장된 기본 데이터 캐쉬 라인 태그들을 데이터 주소 버스(110) 상의 이슈된 데이터 주소 중의 12개 주소 비트(A20-A9)와 비교한다. 이 12개의 주소 비트들이 식별하는 것은 대응하는 주기억장치에 있는 행의 메모리 위치인데 거기에서 데이터 워드는 현재 읽기를 위하여 저장되어 있거나 또는 쓰기를 위하여 저장되어야 한다.
만약 일치한다면, 기본 데이터 캐쉬 뱅크 주소/태그 비교 회로(154)는 뱅크 선택 신호와 함께 기본 데이터 캐쉬 뱅크 적중이 발생했다는 것을 나타내는 기본 데이터 캐쉬 뱅크 적중/미스 신호를 이슈한다. 이것은 이슈된 데이터 주소에 의하여 주소지정된 메모리 위치가 현재 기본 데이터 캐쉬 뱅크 라인 저장장치(144)에 의하여 현재 저장된 기본 데이터 캐쉬 라인 중의 하나에 현재 접근 가능하다는 것을 의미한다. 기본 데이터 캐쉬 뱅크 적중/미스 신호는 또한 이 기본 데이터 캐쉬 라인을 인식한다. 한편, 일치하지 않는다면, 이것은 이슈된 데이터 주소에 의하여 주소지정된 메모리 위치가 기본 데이터 캐쉬 뱅크 라인 저장장치(144)에 저장된 기본 데이터 캐쉬 라인들 중의 하나에 현재 액세스 불가능하다는 것을 의미하며 기본 데이터 캐쉬 뱅크 주소/태그 비교 회로는 뱅크 선택 신호와 함께 기본 데이터 캐쉬 뱅크 미스가 발생했다는 것을 나타내는 기본 데이터 캐쉬 뱅크 적중/미스 신호를 이슈한다.
각 기본 데이터 캐쉬 뱅크(122)에서, 기본 데이터 캐쉬 뱅크 적중/미스 신호는 기본 데이터 캐쉬 뱅크 제어 상태 머신(152)에게 제공된다. 빅팀 데이터 캐쉬(106)로 부터의 빅팀 데이터 캐쉬 적중/미스 신호는 또한 CPU로부터의 W/R 신호와 함께 제어 신호 버스(116) 상의 기본 데이터 캐쉬 뱅크 제어 상태 머신으로 제공된다.
앞에서 설명되었듯이, 빅팀 데이터 캐쉬 적중을 나타내는 빅팀 데이터 캐쉬 적중/미스 신호가 읽기 동작동안 이슈되면, 빅팀 데이터 캐쉬(106)는 CPU에게 이슈된 데이터 주소에 의하여 주소지정된 메모리 위치에 있는 데이터 워드를 제공한다. 그러므로, 각 기본 데이터 캐쉬 뱅크(122)에서, 기본 데이터 캐쉬 뱅크 제어 상태 머신(152)은 빅팀 데이터 캐쉬 적중을 나타내는 빅팀 데이터 캐쉬 적중/미스 신호 및 읽기를 나타내는 W/R 신호를 받아들이면, 그것은 휴지 상태에 있게 된다(도 6의상태 157). 이것은 그것이 기본 데이터 캐쉬 뱅크 주소/태그 비교 회로(154)로부터 받아들인 기본 데이터 캐쉬 뱅크 적중/미스 신호가 기본 데이터 캐쉬 뱅크 적중이 발생했다는 것을 나타낼 때에도 적용된다.
그러나, 빅팀 데이터 캐쉬 적중을 나타내는 빅팀 데이터 캐쉬 적중/미스 신호가 쓰기 동작 중에 이슈되거나 또는 빅팀 데이터 캐쉬 미스를 나타내는 빅팀 데이터 캐쉬 적중/미스 신호가 이슈될 때, 빅팀 데이터 캐쉬(106)는 이슈된 데이터 주소에 의하여 주소지정된 위치를 액세스하기 위하여 사용되지 아니한다. 그러므로, 각 기본 데이터 캐쉬 뱅크(122)에서, 앞에서 나열된 두 가지의 조건 중 어느 것에서, 기본 데이터 캐쉬 뱅크 제어 상태 머신(152)은 기본 데이터 캐쉬 뱅크 적중/미스 및 뱅크 선택 신호가 기본 데이터 캐쉬 뱅크 적중/미스가 발생했다는 것을 나타내는 어느 경우에 있어서도 이슈된 데이터 주소에 의하여 특정된 메모리 주소에 있는 데이터 워드의 쓰기 또는 읽기를 제어한다.
각 기본 데이터 캐쉬 뱅크(122)로부터의 기본 데이터 캐쉬 뱅크 적중/미스 및 뱅크 선택 신호들은 또한 제어 버스(116)를 통하여 CPU(102)에게 제공된다. 기본 데이터 캐쉬 뱅크로부터의 이 신호들이 기본 데이터 캐쉬 뱅크 적중이 발생했다는 것을 나타내고 또한 빅팀 데이터 캐쉬 적중이 발생하였다는 것을 나타내는 빅팀 데이터 캐쉬 적중/미스 신호가 쓰기 동작 중에 받아들여지거나 또는 빅팀 데이터 캐쉬 미스가 발생했다는 것을 나타내는 빅팀 데이터 캐쉬 적중/미스 신호가 받아들여진 때, CPU는 읽히거나 쓰여져야 할 데이터 워드가 기본 데이터 캐쉬 뱅크(122)로 또는 뱅크로부터 직접 그런 동작이 수행될 수 있다는 것을 안다. 그러면 CPU는, 기본 데이터 캐쉬 뱅크 미스가 발생했을 경우와 같이, 이슈된 데이터 주소에 의하여 특정된 액세스 가능한 메모리 위치와 함께 기본 데이터 캐쉬 라인이 주기억장치 뱅크에서 기본 데이터 캐쉬 뱅크로 명령어가 읽혀지기를 기다리기 위하여 명령어 파이프라인을 멈추지 아니한다.
각 기본 데이터 캐쉬 뱅크(122)에서, 기본 데이터 캐쉬 뱅크 제어 상태 머신(152)은 기본 데이터 캐쉬 뱅크 적중/미스, 뱅크 선택, 그리고 W/R 신호에 더하여, 기본 데이터 캐쉬 뱅크 라인 저장장치(144)에 의하여 현재 저장된 기본 데이터 캐쉬 뱅크 라인들 및 이슈된 데이터 주소의 6개 주소 비트(A8-A3)를 데이터 주소 버스(110)로부터 받아들인다. 뱅크 선택 신호 및 기본 데이터 캐쉬 뱅크 적중/미스 신호가 기본 데이터 캐쉬 뱅크 적중이 발생했다는 것을 나타내면, 기본 데이터 캐쉬 뱅크 제어 상태 머신(152)은 기본 데이터 캐쉬 뱅크 적중이 발생한 기본 데이터 캐쉬 라인과 같이 기본 데이터 캐쉬 뱅크 적중/미스 신호에 의하여 식별된 기본 데이터 캐쉬 라인에 있는 이슈된 데이터 주소에 의하여 특정된 메모리 위치에 액세스가능한가를 결정하기 위하여 받아들인 6개의 주소 비트를 디코드한다. 만약 W/R 신호가 읽기를 나타내면, 기본 데이터 캐쉬 뱅크 제어 상태 머신은 인식된 데이터 캐쉬 라인에 있는 결정된 위치부터 데이터 워드를 읽으며 그것을 CPU(102)에게 제공한다(도 6의 단계 159). 이것은 인식된 데이터 캐쉬 라인에 있는 데이터 워드를 데이터 버스(108) 상으로 라우팅 하여 CPU에 의하여 받아들여지게 함으로써 행해진다. 본 구현 예에서, 기본 데이터 캐쉬 뱅크에 액세스 하기 위하여 그리고 데이터 워드를 CPU로 읽기 위하여 오로지 단일의 사이클만이 요구된다. 일단 읽기 동작이완료되면, 기본 데이터 캐쉬 뱅크 제어 상태 머신은 휴지상태로 돌아간다(도 6의 단계 157).
그러나, 만약 W/R 신호가 쓰기를 나타내면, 기본 데이터 캐쉬 뱅크 제어 상태 머신(152)은 데이터 워드를 CPU로부터 식별된 데이터 캐쉬 라인의 결정된 위치로 쓴다. 이것은 데이터 워드를 데이터 버스(108)로부터 인식된 기본 데이터 캐쉬 라인을 저장하는 기본 데이터 캐쉬 뱅크 라인 저장장치(144)에 있는 버퍼(146)로 라우팅 함으로써 그리고 버퍼로 하여금 데이터 워드를 래치하도록 하는 버퍼 제어 신호를 이슈(도 6의 단계159) 함으로써 행해진다. 만약 식별된 기본 데이터 캐쉬 라인에 대한 대응하는 더티 플래그가 기본 데이터 캐쉬 라인이 더티(dirty)라는 것을 이미 나타내지 아니하였다면, 기본 데이터 캐쉬 뱅크 제어 상태 머신은 이제 더티라는 것을 나타내기 위해 그성을 갱신한다(도 6의 서브 단계 161). 이것은 갱신된 더티 플래그를 기본 데이터 캐쉬 뱅크 태그/플래그 저장장치(148)에게 제공함으로써 그리고 기본 데이터 캐쉬 뱅크 태그/플래그 저장장치가 갱신된 더티 플래그를 저장하도록 하는 저장장치 제어 신호를 이슈함으로써 행해진다. 일단 쓰기 동작이 완료되면, 기본 데이터 캐쉬 뱅크 제어 상태 머신은 휴지상태로 돌아간다(도 6의 단계 157).
그러나, CPU가 기본 데이터 캐쉬 뱅크 미스가 발생했다는 것을 나타내는 뱅크 선택 신호들 및 기본 데이터 캐쉬 뱅크 적중/미스를 기본 데이터 캐쉬 뱅크(122)로부터 받아들이고 또한 빅팀 데이터 캐쉬 적중이 발생했다는 것을 나타내는 빅팀 데이터 캐쉬 적중/미스 신호를 쓰기 동작 중에 받았거나 빅팀 데이터 캐쉬 미스가 발생했다는 것을 나타내는 빅팀 데이터 캐쉬 적중 신호를 받았을 때, 이슈된 명령어 주소에 의하여 특정된 메모리 위치와 함께 새로운 기본 데이터 캐쉬 라인이 대응하는 주기억장치 뱅크(118)로부터 기본 데이터 캐쉬 뱅크로 읽혀지는 동안 멈춘다. 또한 이것은 만약 빅팀 기본 데이터 캐쉬 라인을 위한 대응하는 더티 플래그가 그것이 더티 하다는 것을 나타낸다면 새로운 기본 데이터 캐쉬 라인에 의하여 교체될 빅팀 기본 데이터 캐쉬 라인을 빅팀 데이터 캐쉬 주기억장치 뱅크에 써야만 한다. 이 경우 CPU는 부가적으로 멈출 것이다.
각 기본 데이터 캐쉬 뱅크(122)에서, 기본 데이터 캐쉬 뱅크 제어 상태 머신(152)은 또한 기본 데이터 캐쉬 뱅크 라인 저장장치(144)에 의하여 저장된 기본 데이터 캐쉬 라인을 위하여 더티 플래그들을 기본 데이터 캐쉬 뱅크 태그/플래그 저장장치(148)로부터 받아들여서 그들이 더티인지의 여부를 결정한다. 앞에서도 설명했듯이, 각 더티 플래그는 갱신되어 데이터 워드가 대응하는 기본 데이터 캐쉬 라인에 쓰여지고 더티 플래그가 아직 기본 데이터 캐쉬 라인이 더티라는 것을 나타내지 아니할 때마다 대응하는 기본 데이터 캐쉬 라인이 더티라는 것을 나타내기 위하여 갱신된다. 각 기본 데이터 캐쉬 뱅크(122)의 기본 데이터 캐쉬 뱅크 제어 상태 머신(152)은 또한 기본 데이터 캐쉬 뱅크의 기본 데이터 캐쉬 뱅크 태그/플래그 저장장치(148)로부터 LRU 플래그를 받아들인다. 앞에서 언급했듯이, LRU 플래그는 최근에 가장 적게 사용된 기본 데이터 캐쉬 라인을 식별한다. LRU 플래그는 다른 기본 데이터 캐쉬 라인이 읽기 또는 쓰기를 위하여 액세스될 때마다 기본 데이터 캐쉬 뱅크 제어 상태 머신에 의하여 갱신된다. 그리고 갱신된 LRU 플래그는기본 데이터 캐쉬 뱅크 태그/플래그 저장장치로 제공되며 기본 데이터 캐쉬 뱅크 제어 상태 머신에 의하여 이슈된 저장장치 제어 신호들과 함께 그곳에 저장된다.
각 기본 데이터 캐쉬 뱅크(122)에서, 기본 데이터 캐쉬 뱅크의 기본 데이터 캐쉬 뱅크 제어 상태 머신(152)이 기본 데이터 캐쉬 뱅크 미스가 발생했다는 것을 나타내는 선택 신호들 및 기본 데이터 캐쉬 뱅크 적중/미스 신호를 받아들이고 또한 빅팀 데이터 캐쉬 적중이 발생했다는 것을 나타내는 빅팀 데이터 캐쉬 적중/미스 신호 및 쓰기가 발생했다는 것을 나타내는 W/R 신호를 받아들이거나 아니면 빅팀 데이터 캐쉬 미스가 발생했다는 것을 나타내는 빅팀 데이터 캐쉬 적중/미스 신호를 받아들일 때, 이것이 의미하는 것은 이슈된 데이터 주소에 의하여 특정된 메모리 위치와 함께 새로운 기본 데이터 캐쉬 라인이 대응하는 주기억장치 뱅크(118)로부터 읽혀져야 한다는 것이다. 그러나, 이렇게 하기 이전에, 기본 데이터 캐쉬 뱅크 제어 상태 머신은 LRU 플래그로부터 어떤 저장된 기본 데이터 캐쉬 라인이 가장 적게 사용되었나를 결정하며 따라서 그것이 새로운 기본 데이터 캐쉬 라인으로 교체될 빅팀 기본 데이터 캐쉬라인이 될 것이다.
그러나, 기본 데이터 캐쉬 뱅크(122)에서, 빅팀 데이터 캐쉬 라인을 새로운 데이터 캐쉬 라인으로 교체하기 전에, 기본 데이터 캐쉬 뱅크 제어 상태 머신(152)은 만약 그것이 더티라면, 빅팀 기본 데이터 캐쉬 라인을 대응하는 주기억장치 뱅크(118)로 다시 쓰기를 한다(도 6의 단계 163). 기본 데이터 캐쉬 뱅크 제어 상태 머신은 기본 데이터 캐쉬 뱅크 태그/플래그 저장장치(148)에 의하여 제공된 대응하는 더티 플래그로부터 빅팀 기본 데이터 캐쉬 라인이 더티인지의 여부를 먼저 결정함으로써 그것을 수행한다. 만약 그것이 더티이면, 기본 데이터 캐쉬 뱅크 제어 상태 머신은 제어 버스(116) 상에 더티 캐쉬 라인 쓰기 신호를 이슈하여 더티 빅팀 기본 데이터 캐쉬 라인을 다시 써야한다는 것을 나타낸다. 이 신호는 CPU(102)에 의하여 받아들여지고 응답으로써 CPU는 더티 빅팀 기본 데이터 캐쉬 라인이 대응하는 주기억장치 뱅크에 다시 쓰여지도록 그리고 새로운 기본 데이터 캐쉬 라인이 기본 데이터 캐쉬 뱅크에 읽혀지도록 멈추게 된다.
기본 데이터 캐쉬 뱅크 제어 상태 머신(152)은 대응하는 주기억장치 뱅크(118)에게 쓰기 동작이 발생할 것이라는 것을 나타내는 W/R 제어 신호 및 기본 데이터 캐쉬 뱅크 태그/플래그 저장장치(148)에 의하여 제공된 더티 빅팀 기본 데이터 캐쉬 라인을 위한 대응하는 태그로부터 받아들여진 12개의 주소 비트(A20-A9)를 이슈함으로써 더티 빅팀 기본 데이터 캐쉬 라인을 다시 쓴다. 더욱이, 기본 데이터 캐쉬 뱅크 제어 상태 머신은 대응하는 주기억장치 뱅크의 센스 증폭기(126)들에게 더티 빅팀 기본 데이터 캐쉬라인을 보내기 위해 다시 쓰이는 더티 빅팀 기본 데이터 캐쉬 라인을 저장하도록 버퍼(146)에 버퍼 제어 신호들을 이슈한다. 12개 주소 비트에 대한 응답으로써, 행 디코더(124)는 12개의 주소 비트에 의하여 식별된 대응하는 주기억장치 뱅크의 행의 위치를 지정한다. 그리고, W/R 제어 신호에 대한 응답으로써, 센스 증폭기(126)는 제공된 더티 빅팀 기본 데이터 캐쉬 라인을 대응하는 주기억장치 뱅크의 식별된 행에 쓰게된다. 구현 예에서, 이것은 더티 빅팀 기본 데이터 캐쉬 라인을 되쓰기 위하여 6 사이클을 요하는데, 1 사이클은 기본 데이터 캐쉬 뱅크 미스가 발생했는지를 결정하고 더티 빅팀 기본 데이터 캐쉬 라인을식별하기 위한 것이고, 4 사이클은 센스 증폭기의 프리차징(pre-charging) 및 행 디코더에 의한 주소 비트 디코딩을 위한 것이고, 그리고 1 사이클은 더티 빅팀 기본 데이터 캐쉬 라인을 주기억장치 뱅크에 쓰기 위한 것이다.
더욱이, 더티 빅팀 기본 데이터 캐쉬 라인이 다시 쓰이고 있는 동안 CPU는 멈추어 있으므로, 만약 그것이 적어도 하나의 더티 기본 데이터 캐쉬 라인을 저장한다면 다른 기본 데이터 캐쉬 뱅크들(122)은 더티 기본 데이터 캐쉬 라인을 대응하는 주기억장치 뱅크(118)에 다시 쓴다(도 6의 단계 163). 이 다른 기본 데이터 캐쉬 뱅크들 각각에 있어서, 이것은 제어 버스(118) 상의 더티 캐쉬 라인 쓰기 신호가 더티 빅팀 기본 데이터 캐쉬 라인이 다시 쓰여지고 있다는 것 그리고 뱅크 선택 신호가 대응하는 주기억장치 뱅크가 아직 선택되지 아니하였다는 것을 나타낼 때 이루어진다. 이 되쓰기는 이 다른 기본 데이터 캐쉬 뱅크들 각각의 기본 데이터 캐쉬 뱅크 제어 상태 머신(152)에 의하여 바로 앞에서 설명된 것과 비슷한 방식으로 제어된다. 그러나, 만약 기본 데이터 캐쉬 뱅크에 의하여 저장된 오로지 하나의 더티 기본 데이터 캐쉬 라인만이 있다면, 그것은 다시 쓰인다. 그러나, 만약 두 개의 더티 기본 데이터 캐쉬 라인이 있다면, LRU 플래그에 의하여 LRU 기본 데이터 캐쉬 라인으로서 식별된 더티 기본 데이터 캐쉬 라인은 다시 쓰인 것이다. 일단 이 되쓰는 동작이 완료되면, 기본 데이터 캐쉬 뱅크 제어 상태 머신은 휴지 상태로 돌아간다(도 6의 상태 157).
각 기본 데이터 캐쉬 뱅크(122)에서, 일단 더티 빅팀 기본 데이터 캐쉬 라인이 대응하는 주기억장치 뱅크(118)로 다시 쓰여지면 또는 빅팀 기본 데이터 캐쉬라인을 위한 대응하는 더티 플래그가 그것이 더티가 아니라는 것을 나타내면, 기본 데이터 캐쉬 뱅크 제어 상태 머신(152)은 이슈된 데이터 주소에 의하여 특정된 위치와 함께 새로운 기본 데이터 캐쉬 라인을 대응하는 주기억장치 뱅크(118)로부터 기본 데이터 캐쉬 뱅크로 읽기를 한다(도 6의 단계 163). 이것은 대응하는 주기억장치 뱅크(118)에게 쓰기 동작이 발생할 것이라는 것을 나타내는 W/R 제어 신호 및 데이터 주소 버스(110) 상의 이슈된 데이터 주소의 12개의 주소 비트(A20-A9)를 이슈함으로써 행해진다. 12개 주소 비트에 대한 응답으로써, 행 디코더(124)는 12개의 주소 비트에 의하여 식별된 대응하는 주기억장치 뱅크의 행의 위치를 지정한다. 그리고, W/R 제어 신호에 대한 응답으로써, 센스 증폭기(126)는 새로운 기본 데이터 캐쉬 라인을 대응하는 주기억장치 뱅크의 식별된 행으로부터 읽는다. 더욱이 기본 데이터 캐쉬 뱅크 제어 상태 머신은 교체될 빅팀 기본 데이터 캐쉬 라인을 저장하고 있는 버퍼(146)에게 버퍼 제어 신호를 이슈하여 버퍼에 의해 새로운 기본 데이터 캐쉬 라인을 래치되도록하고 빅팀 기본 데이터 캐쉬 라인을 교체한다. 구현 예에서, 이것은 5 사이클을 요하는데, 4 사이클은 센스 증폭기의 프리차징(pre-charging) 및 행 디코더에 의한 주소 비트 디코딩을 위한 것이고, 그리고 1 사이클은 센스 증폭기에 의하여 주기억장치 뱅크로 읽혀진 새로운 기본 데이터 캐쉬 라인을 주기억장치 뱅크로 래치하기 위한 것이다.
그러나, 새로운 기본 데이터 캐쉬 라인을 읽어내기 위하여 주기억장치 뱅크(118)를 액세스 하는 것은 행 디코더(124)에 의하여 주소 비트 디코딩을 위하여 그리고 센스 증폭기(126)의 프리차징(pre-charging)을 위하여 시간을 요구하기 때문에, 이 시간은 최근에 가장 많이 사용된(MRU) 빅팀 기본 데이터 캐쉬 라인의 기본 데이터 캐쉬 서브-라인을, 새로운 기본 데이터 캐쉬 라인이 버퍼(146)에 래치되기 이전에, 빅팀 데이터 캐쉬(106)에 쓰는데 효과적으로 사용될 수 있다. 빅팀 기본 데이터 캐쉬 라인에 있는 어떤 기본 데이터 캐쉬 서브라인이 MRU 서브라인 인지를 결정하기 위하여, 각 기본 데이터 캐쉬 뱅크(122)의 기본 데이터 캐쉬 뱅크 태그/플래그 저장장치(148)는 MRU 플래그를 저장하는데 그것은 기본 데이터 캐쉬 뱅크 라인 저장장치(144)에 의하여 저장된 각 기본 데이터 캐쉬 라인에 있는 MRU 빅팀 데이터 캐쉬 서브라인을 식별한다. 또한, 데이터 버스(108)은 이 시간 동안 사용되지 않기 때문에, 그것은 MRU 빅팀 데이터 캐쉬 서브라인을 빅팀 데이터 캐쉬에 쓰기 위하여 효과적으로 사용된다.
그러므로, 센스 증폭기가 프리차지되고 있고 행 디코더가 주소 비트를 디코딩하고 있는 동안에, 기본 데이터 캐쉬 뱅크 제어 상태 머신(152)은 기본 데이터 캐쉬 뱅크 태그/플래그 저장장치(148)로부터 받은 대응하는 MRU 플래그로부터 MRU 빅팀 데이터 캐쉬 서브라인을 식별한다. 그리고 MRU 빅팀 데이터 캐쉬 서브라인을 데이터 버스(108)를 사용하여 빅팀 데이터 버스(106)(도 6의 서브 상태 165)로 라우트한다. 구현 예에서, 이것은 4개의 사이클로 수행되는데 이것은 데이터 버스가 64 비트 넓이 또는 1 데이터 워드 넓이이며 MRU 빅팀 데이터 캐쉬 서브라인이 256 비트 또는 4 데이터 워드 넓이이기 때문이다. 그러므로, 기본 데이터 캐쉬 뱅크 제어 상태 머신은 MRU 빅팀 데이터 캐쉬 서브라인의 64 비트 또는 1 데이터 워드 넓이를 매 사이클마다 이 시간 간격동안 데이터 버스로 라우트한다.
도 7 내지 9와 관련하여, 빅팀 데이터 캐쉬 제어 상태 머신(168)은 제어버스(116)으로부터 기본 데이터 캐쉬 뱅크 적중/미스 그리고 기본 데이터 캐쉬 뱅크(122)로부터 뱅크 선택 신호 그리고 더티 캐쉬 라인 쓰기 신호를 받는다. 기본 데이터 캐쉬 뱅크 적중/미스 그리고 기본 데이터 캐쉬 뱅크로부터의 뱅크 선택 신호가 기본 데이터 캐쉬 뱅크 미스가 발생했다는 것을 나타내고 더티 캐쉬 라인 쓰기 신호가 더티 기본 데이터 캐쉬 라인이 되쓰여지지 않고 있다는 것을 나타내면, 빅팀 데이터 캐쉬 제어 상태 머신은 데이터 버스(108) 상의 기본 데이터 캐쉬 뱅크에 의하여 제공된 MRU 빅팀 데이터 캐쉬 서브라인을 빅팀 데이터 캐쉬 라인 저장장치(160)에 쓴다(도 9의 단계 175).
빅팀 데이터 캐쉬 제어 상태 머신(168)은 어떤 빅팀 데이터 캐쉬 서브라인이 MRU 빅팀 데이터 캐쉬 서브라인과 교체되어야 하는가를 먼저 결정함으로써 이것을 행한다. 읽기 동작 중에 빅팀 데이터 캐쉬 적중이 있는 경우에, 빅팀 데이터 캐쉬 제어 상태 머신(168)은 적중이 발생한 빅팀 데이터 캐쉬 서브라인을 MRU 빅팀 데이터 캐쉬 서브라인과 교체한다. 이것은 응답으로서 대응하는 주기억장치 뱅크에서 기본 데이터 캐쉬 뱅크로 읽히고 있는 기본 데이터 캐쉬 라인 및 MRU 빅팀 데이터 캐쉬 서브라인을 제공하는 기본 데이터 캐쉬 뱅크(122)에서 발생한 기본 데이터 캐쉬 뱅크 미스가 교체될 빅팀 데이터 캐쉬 서브라인을 포함하기 때문이다. 이것은 교체될 빅팀 데이터 캐쉬 서브라인에서 발생한 빅팀 데이터 캐쉬 적중의 사실로부터 나타내진다.
그러나, 빅팀 데이터 캐쉬 미스가 있을 경우에는, 빅팀 데이터 캐쉬 제어 상태 머신(168)은 LRU 빅팀 데이터 캐쉬 서브라인을 MRU 빅팀 데이터 캐쉬 서브라인과 교체한다. LRU 빅팀 데이터 캐쉬 서브라인은 빅팀 데이터 캐쉬 태그/플래그 저장장치(164)에 의하여 저장된 LRU 플래그에 의하여 식별된다. LRU 플래그는 빅팀 데이터 캐쉬 서브라인이 읽기를 위하여 액세스될 때마다 빅팀 데이터 캐쉬 제어 상태 머신에 의하여 갱신된다. 갱신된 LRU 플래그는 빅팀 데이터 캐쉬 태그/플래그 저장장치에 제공되고 빅팀 데이터 캐쉬 제어 상태 머신에 의하여 이슈된 저장장치 제어 신호들과 함께 거기에 저장된다.
빅팀 데이터 캐쉬 제어 상태 머신(168)은 MRU 빅팀 데이터 캐쉬 서브라인을 현재 교체될 빅팀 데이터 캐쉬 서브라인을 저장한 버퍼(162)에 저장한다. 이것은 MRU 빅팀 데이터 캐쉬 서브라인을 전송하기 위하여 요구되는 4 사이클 동안 데이터 버스 상에서 받아진 64 비트 블록들을 버퍼의 대응하는 래치들에게 라우팅 하는 것으로써 가능하다. 동시에 4 사이클 동안 버퍼의 64 비트 블록들을 래치하기 위해 대응하는 래치로 버퍼 제어 신호들이 이슈된다.
도 2, 5, 그리고 6과 관련하여, 각 기본 데이터 캐쉬 뱅크(122)에 있어서, 새로운 데이터 캐쉬 라인이 기본 데이터 캐쉬 뱅크로 읽혀진 후 그리고 MRU 빅팀 데이터 캐쉬 서브라인이 빅팀 데이터 캐쉬(106)로 읽혀진 후, 데이터 워드는 앞에서 설명한 것과 같이 새로운 기본 데이터 캐쉬 라인에게로 쓰여지거나 거기로부터 읽혀진다(도 6의 단계 159,161).
그러므로, 앞의 설명으로부터, 16개의 기본 데이터 캐쉬 뱅크(122)는 함께 16K 바이트를 포함하는 2-웨이 연관(set associative)데이터 캐쉬를 형성하며 빅팀데이터 캐쉬(106)은 16-웨이 완전 연관(fully-associative) 빅팀 데이터 캐쉬이다. 더욱이, 집단적으로, 그들은 P/M 장치의 데이터 캐쉬 시스템(100)을 형성한다. 각 데이터 캐쉬 뱅크에 의하여 저장된 기본 데이터 캐쉬 라인들은 전폭이며 온칩이기 때문에, 전폭(full-width)보다 적은 데이터 캐쉬 라인을 저장하는 종래의 데이터 캐쉬보다 캐쉬 미스율(miss rate)이 훨씬 감소한다. 명령어 캐쉬 뱅크(120)에 의하여 형성된 명령어 캐쉬에서와 같이, 이 적은 캐쉬 미스율은 높은 공간적 지역성을 가진 액세스 대하여 긴 데이터 캐쉬라인을 선인출(prefetching)하는 이점 때문이다. 더욱이, 이 미스율은 적은 공간적 지역성을 가진 액세스들을 흡수하는 온칩 빅팀 데이터 캐쉬의 사용에 의하여 훨씬 감소된다. 또한, 오프칩 주기억장치 및 온칩 데이타 캐쉬들에 대하여 앞에서 설명한 것과 같은 종류의 심각한 2차 경합의 효과 때문에, 오프칩 주기억장치 및 온칩 데이타 캐쉬들을 가지는 종래의 프로세서들은 전폭 데이터 캐쉬 라인의 이점을 이용할 수 없다.
당업자들은 도 1내지 9의 구현 예에 대한 많은 대안적 구현 예들을 인식할 수 있을 것이다. 예를 들어, 주기억장치 뱅크들(118) 내의 행 그리고 데이터 및 명령어 캐쉬 뱅크 라인 저장장치 내의 버퍼들(130,146)은 예에서의 4096 비트와 다른 넓이를 가질 수 있으나, 바람직하게는 동일한 사이즈의 넓이를 가질 것이다. 그리고, 각 명령어 캐쉬 뱅크 및 각 데이터 캐쉬 뱅크는 하나 또는 그 이상의 버퍼들을 포함할 수 있다. 더욱이, 기본 데이터 캐쉬 뱅크를 위하여 사용되는 빅팀 데이터 캐쉬처럼, 빅팀 데이터 캐쉬는 명령어 캐쉬 뱅크를 위하여 사용될 수 있다. 마지막으로, 빅팀 데이터 캐쉬 라인을 결정하기 위한 LRU 정책을 사용하거나 빅팀데이터 캐쉬에 쓰여질 빅팀 데이터 캐쉬 서브라인을 결정하기 위하여 MRU 정책을 사용하는 대신, 다른 정책들이 사용될 수 있다.
본 발명이 몇 개의 실시 예와 관련하여 설명되었지만, 그 표현은 본 발명의 예시적인 것이며 본 발명을 제한하는 것으로 해석되어서는 아니된다. 첨부되는 청구항들에 의하여 정의된 대로의 본 발명의 범위 및 진정한 정신으로부터 일탈하지 아니하고 다양한 변형이 당해 기술 분야의 당업자들에게 일어날 수 있다.
본 발명은 프로세서와 메모리 장치의 통합을 통하여 CPU 중심의 설계 접근방식의 문제점을 해결하고 또 단일 칩 설계의 기술적 제약들을 효과적으로 보충하도록 한다. 특히, 종래의 프로세서 구조에서 명령어 및 데이터 캐쉬 라인들이 주기억장치의 폭보다 훨씬 적은 폭을 가지기 때문에 오프칩 주기억장치로부터 이 캐쉬라인들을 채우는 시간이 프로세서의 메모리 인터페이스에서 심각한 2차 경합(second order contention) 효과를 야기하던 것을 해결하고 명령어 및 데이터 스트림들의 높은 공간적 지역성을 이용할 수 있게 하여 전폭 데이터 캐쉬의 적중률을 더 개선하였다.

Claims (10)

  1. 집적 프로세서/메모리 장치에 있어서,
    미리 정의된 주소 공간을 가지며 주기억장치 뱅크들을 포함하는 주기억장치로서, 상기 각 주기억장치 뱅크는 주소 공간의 대응하는 부분을 점유하며 상기 주소 공간의 대응하는 부분에 있는 주소들과 함께 메모리 위치에 워드의 행(row)들을 저장하며, 상기 행들은 미리 정해진 워드 수만큼 넓은 주기억장치;
    상기 각 메모리 뱅크들과 결합된 중앙처리장치(CPU); 그리고
    캐쉬 뱅크들을 포함하는 캐쉬로서, 상기 각 캐쉬 뱅크는 CPU 및 주기억장치 뱅크들 중에 대응하는 주기억장치 뱅크와 결합되어 있으며, 상기 각 캐쉬 뱅크는
    상기 대응하는 주기억장치와 결합되는 캐쉬 뱅크 라인 저장장치, 상기 캐쉬 라인 저장장치는 하나 또는 그 이상의 워드들의 캐쉬 라인들을 저장하며, 상기 각 캐쉬 라인은 대응하는 주기억장치 뱅크에 있는 대응하는 행(row)을 가지며, 상기 캐쉬 라인들은 미리 결정된 워드 수만큼 넓으며,
    상기 각 캐쉬 라인에 대한 대응하는 태그를 저장하는 캐쉬 뱅크 태그 저장장치, 상기 각 태그는 대응하는 상기 캐쉬 라인의 대응하는 메모리 뱅크에 있는 행을 식별하며, 그리고
    상기 CPU, 상기 대응하는 메모리 뱅크, 그리고 상기 캐쉬 저장장치와 결합된 캐쉬 뱅크 논리, 상기 캐쉬 뱅크 논리는, 상기 CPU가 대응하는 주기억장치 뱅크의 주소 공간에 주소를 이슈할 때, 상기 캐쉬 라인의 태그들 및 주소들로부터캐쉬 뱅크 적중(hit) 또는 캐쉬 미스(miss)가 상기 캐쉬 뱅크 라인 저장장치에서 발생하였는지의 여부를 결정하며, 상기 캐쉬 뱅크 논리는, 캐쉬 뱅크 미스가 일어나면, 상기 캐쉬 라인들 중 빅팀(victim) 캐쉬 라인을 상기 이슈된 주소에 의하여 특정된 대응하는 메모리 뱅크의 대응하는 행을 포함하는 새로운 캐쉬 라인과 교체하는 것을 포함하는 것을 특징으로 하는 집적 프로세서/메모리 장치.
  2. 제 1항에 있어서,
    상기 캐쉬 뱅크 라인 저장장치가, 상기 각 캐쉬 라인에 대하여, 대응하는 캐쉬 라인을 저장하는 대응하는 버퍼를 포함하는 것을 특징으로 하는 집적 프로세서/메모리 장치.
  3. 제 1항에 있어서,
    상기 캐쉬는 데이터 캐쉬이며 상기 워드는 데이터 워드이며;
    각 캐쉬 뱅크에 있어서,
    상기 캐쉬 뱅크 태그 저장장치는 각 캐쉬 라인에 대한 대응하는 더티 플래그도 저장하며, 상기 각 더티 플래그는 대응하는 캐쉬 라인이 더티인지의 여부를 식별하며,
    상기 캐쉬 뱅크 논리는, 상기 캐쉬 뱅크 저장장치에서 캐쉬 뱅크 미스가 발생하며 상기 빅팀 캐쉬 라인의 더티 플래그는 상기 빅팀 캐쉬 라인이 더티라는 것을 나타낼 때, 상기 빅팀 캐쉬 라인을 교체하기 전에 상기 빅팀 캐쉬 라인의태그에 의하여 특정된 상기 상응하는 메모리 뱅크의 행에 상기 빅팀 캐쉬 라인을 쓰는 것을 특징으로 하는 집적 프로세서/메모리 장치.
  4. 중앙처리장치 및 주기억장치와 함께 사용하기 위한 캐쉬에 있어서,
    상기 주기억장치는 미리 정의된 주소 공간을 가지며 주기억장치 뱅크들을 포함하며, 상기 각 주기억장치 뱅크는 주소 공간의 대응하는 부분을 점유하며 상기 주소 공간의 대응하는 부분에 있는 주소들과 함께 메모리 위치에 워드의 행들을 저장하며, 상기 행들은 미리 정해진 워드 수만큼의 넓이를 가지며, 상기 캐쉬는
    캐쉬 뱅크들을 포함하며, 상기 각 캐쉬 뱅크는 상기 주기억장치 뱅크들 중에 어느 주기억장치 뱅크와 대응하며, 상기 각 캐쉬 뱅크는
    하나 또는 그 이상의 워드들의 캐쉬 라인들을 저장하는 캐쉬 뱅크 라인 저장장치, 상기 각 캐쉬 라인은 대응하는 주기억장치 뱅크에 있는 대응하는 행을 가지며, 상기 캐쉬 라인들은 미리 결정된 워드 수만큼 넓으며,
    상기 각 캐쉬 라인에 대한 대응하는 태그를 저장하는 캐쉬 뱅크 태그 저장장치, 각 태그는 상기 대응하는 캐쉬 라인의 대응하는 메모리 뱅크에 있는 행을 식별하며, 그리고
    상기 CPU가 상기 대응하는 주기억장치 뱅크의 주소 공간에 주소를 이슈할 때, 상기 캐쉬 라인의 태그들 및 주소들로부터 캐쉬 뱅크 적중(hit) 또는 캐쉬 미스(miss)가 상기 캐쉬 뱅크 저장장치에서 발생하였는지의 여부를 결정하는 캐쉬 뱅크 논리, 상기 캐쉬 뱅크 논리는, 캐쉬 뱅크 미스가 일어나면, 상기 캐쉬 라인들 중 빅팀 캐쉬 라인을 상기 이슈된 주소에 의하여 특정된 대응하는 메모리 뱅크의 대응하는 행을 포함하는 새로운 캐쉬 라인과 교체하는 것을 포함하는 것을 특징으로 하는 캐쉬.
  5. 제 4항에 있어서,
    상기 캐쉬 뱅크 라인 저장장치가, 상기 각 캐쉬 라인에 대하여, 상기 대응하는 캐쉬 라인을 저장하는 대응하는 버퍼를 포함하는 것을 특징으로 하는 캐쉬.
  6. 제 4항에 있어서,
    상기 캐쉬는 데이터 캐쉬이며 상기 워드는 데이터 워드이며;
    각 캐쉬 뱅크에 있어서,
    상기 캐쉬 뱅크 태그 저장장치는 각 캐쉬 라인에 대한 대응하는 더티 플래그도 포함하며, 상기 각 더티 플래그는 대응하는 캐쉬 라인이 더티인지의 여부를 식별하며,
    상기 캐쉬 뱅크 논리는, 상기 캐쉬 뱅크 저장장치에서 캐쉬 뱅크 미스가 발생하며 상기 빅팀 캐쉬 라인의 더티 플래그는 상기 빅팀 캐쉬 라인이 더티라는 것을 나타낼 때, 상기 빅팀 캐쉬 라인을 교체하기 전에 상기 빅팀 캐쉬 라인의 태그에 의하여 특정된 상기 상응하는 메모리 뱅크의 행에 상기 빅팀 캐쉬 라인을 쓰는 것을 특징으로 하는 캐쉬.
  7. 중앙처리장치 및 주기억장치와 함께 사용하기 위한 캐쉬를 제공하는 방법에 있어서,
    상기 주기억장치는 미리 정의된 주소 공간을 가지며 주기억장치 뱅크들을 포함하며, 상기 각 주기억장치 뱅크는 주소 공간의 대응하는 부분을 점유하며 상기 주소 공간의 대응하는 부분에 있는 주소들과 함께 메모리 위치에 워드의 행들을 저장하며, 상기 행들은 미리 정해진 워드 수만큼의 넓이를 가지며, 상기 방법은
    캐쉬 뱅크들을 제공하는 단계를 포함하며, 상기 각 캐쉬 뱅크는 상기 주기억장치 뱅크들 중 어느 주기억장치 뱅크와 대응하며,
    상기 각 캐쉬 뱅크에 있어서,
    하나 또는 그 이상의 워드들의 캐쉬 라인들을 저장하는 단계, 상기 각 캐쉬 라인은 대응하는 주기억장치 뱅크에 있는 대응하는 행을 가지며, 상기 캐쉬 라인들은 미리 결정된 워드 수만큼 넓으며,
    상기 각 캐쉬 라인에 대응하는 태그를 저장하는 단계, 상기 각 태그는 상기 대응하는 캐쉬 라인의 대응하는 메모리 뱅크에 있는 행을 식별하며,
    상기 CPU가 상기 대응하는 주기억장치 뱅크의 주소 공간에 주소를 이슈할 때, 상기 캐쉬 라인의 태그들 및 주소들로부터 캐쉬 뱅크 적중(hit) 또는 캐쉬 미스(miss)가 상기 캐쉬 뱅크에서 발생하였는지의 여부를 결정하는 단계, 그리고
    캐쉬 뱅크 미스가 일어날 때, 상기 캐쉬 라인의 빅팀 캐쉬 라인을 상기 이슈된 주소에 의하여 특정된 대응하는 메모리 뱅크의 대응하는 행을 포함하는새로운 캐쉬 라인과 교체하는 단계를 포함하는 것을 특징으로 하는 캐쉬를 제공하는 방법.
  8. 제 7항에 있어서,
    상기 캐쉬 라인 저장 단계가, 상기 각 캐쉬 라인에 대하여, 대응하는 버퍼에 캐쉬 라인을 저장하는 단계를 포함하는 것을 특징으로 하는 캐쉬를 제공하는 방법.
  9. 제 7항에 있어서,
    상기 캐쉬는 명령어 캐쉬이며 상기 워드는 명령어 워드인 것을 특징으로 하는 캐쉬를 제공하는 방법.
  10. 제 7항에 있어서,
    상기 캐쉬는 데이터 캐쉬이며 상기 워드는 데이터 워드이며;
    상기 방법은 각 캐쉬 뱅크에서,
    상기 각 캐쉬 라인에 대한 대응하는 더티 플래그를 저장하는 단계, 상기 각 더티 플래그는 상기 대응하는 캐쉬 라인이 더티인지의 여부를 식별하며,
    상기 캐쉬 저장장치에서 캐쉬 뱅크 미스가 발생하며 상기 빅팀 캐쉬 라인의 더티 플래그는 상기 빅팀 캐쉬 라인이 더티라는 것을 나타낼 때, 상기 빅팀 캐쉬 라인을 교체하기 전에 상기 빅팀 캐쉬 라인의 태그에 의하여 특정된 상기 상응하는 메모리 뱅크의 행에 상기 빅팀 캐쉬 라인을 쓰는 것을 특징으로 하는 캐쉬를 제공하는 방법.
KR1019970030446A 1996-07-01 1997-07-01 전폭캐쉬를가진집적프로세서/메모리장치 KR100454441B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/675,254 1996-07-01
US08/675,254 US6199142B1 (en) 1996-07-01 1996-07-01 Processor/memory device with integrated CPU, main memory, and full width cache and associated method

Publications (2)

Publication Number Publication Date
KR980010781A KR980010781A (ko) 1998-04-30
KR100454441B1 true KR100454441B1 (ko) 2004-12-17

Family

ID=24709688

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970030446A KR100454441B1 (ko) 1996-07-01 1997-07-01 전폭캐쉬를가진집적프로세서/메모리장치

Country Status (4)

Country Link
US (1) US6199142B1 (ko)
EP (1) EP0817066A3 (ko)
JP (1) JPH10177519A (ko)
KR (1) KR100454441B1 (ko)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000022543A1 (en) * 1998-10-09 2000-04-20 Aztech Systems Limited Method and system for interrogating the internet
US6311280B1 (en) * 1999-02-22 2001-10-30 Nband Communications Low-power memory system with incorporated vector processing
US6484237B1 (en) * 1999-07-15 2002-11-19 Texas Instruments Incorporated Unified multilevel memory system architecture which supports both cache and addressable SRAM
US6460114B1 (en) * 1999-07-29 2002-10-01 Micron Technology, Inc. Storing a flushed cache line in a memory buffer of a controller
US6757784B2 (en) * 2001-09-28 2004-06-29 Intel Corporation Hiding refresh of memory and refresh-hidden memory
WO2004059491A1 (en) * 2002-12-30 2004-07-15 Intel Corporation Cache victim sector tag buffer
US7254681B2 (en) * 2003-02-13 2007-08-07 Intel Corporation Cache victim sector tag buffer
US6990036B2 (en) * 2003-12-30 2006-01-24 Intel Corporation Method and apparatus for multiple row caches per bank
US7050351B2 (en) * 2003-12-30 2006-05-23 Intel Corporation Method and apparatus for multiple row caches per bank
US8250295B2 (en) 2004-01-05 2012-08-21 Smart Modular Technologies, Inc. Multi-rank memory module that emulates a memory module having a different number of ranks
US7418582B1 (en) 2004-05-13 2008-08-26 Sun Microsystems, Inc. Versatile register file design for a multi-threaded processor utilizing different modes and register windows
KR101014413B1 (ko) 2004-06-14 2011-02-15 삼성전자주식회사 데이터 캐쉬가 내장된 반도체 집적회로 및 그것의앳-스피드-테스트 방법
US7509484B1 (en) 2004-06-30 2009-03-24 Sun Microsystems, Inc. Handling cache misses by selectively flushing the pipeline
US7290116B1 (en) 2004-06-30 2007-10-30 Sun Microsystems, Inc. Level 2 cache index hashing to avoid hot spots
US7571284B1 (en) 2004-06-30 2009-08-04 Sun Microsystems, Inc. Out-of-order memory transactions in a fine-grain multithreaded/multi-core processor
FR2872879B1 (fr) * 2004-07-07 2008-05-30 Hutchinson Sa Support antivibratoire hydraulique a commande pneumatique
US8904098B2 (en) 2007-06-01 2014-12-02 Netlist, Inc. Redundant backup using non-volatile memory
US8301833B1 (en) 2007-06-01 2012-10-30 Netlist, Inc. Non-volatile memory module
US8874831B2 (en) 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US10838646B2 (en) 2011-07-28 2020-11-17 Netlist, Inc. Method and apparatus for presearching stored data
US10380022B2 (en) 2011-07-28 2019-08-13 Netlist, Inc. Hybrid memory module and system and method of operating the same
US10198350B2 (en) 2011-07-28 2019-02-05 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
US9256502B2 (en) * 2012-06-19 2016-02-09 Oracle International Corporation Method and system for inter-processor communication
US10372551B2 (en) 2013-03-15 2019-08-06 Netlist, Inc. Hybrid memory system with configurable error thresholds and failure analysis capability
US9436600B2 (en) 2013-06-11 2016-09-06 Svic No. 28 New Technology Business Investment L.L.P. Non-volatile memory storage for multi-channel memory system
US10248328B2 (en) 2013-11-07 2019-04-02 Netlist, Inc. Direct data move between DRAM and storage on a memory module
US11086526B2 (en) * 2018-06-07 2021-08-10 Micron Technology, Inc. Adaptive line width cache systems and methods
US11327891B2 (en) 2019-09-20 2022-05-10 Samsung Electronics Co., Ltd. Prefetching operations in storage devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5345576A (en) * 1991-12-31 1994-09-06 Intel Corporation Microprocessor simultaneously issues an access to an external cache over an external cache bus and to an internal cache, cancels the external cache access on an internal cache hit, and reissues the access over a main memory bus on an external cache miss
US5510934A (en) * 1993-12-15 1996-04-23 Silicon Graphics, Inc. Memory system including local and global caches for storing floating point and integer data
KR960015576A (ko) * 1994-10-07 1996-05-22 채터 무케시 기존의 다이나믹 랜덤 액세스 메모리(dram) 장치에 대해 증가된 데이타 대역폭 및 어드레싱 범위를 제공하고 및/또는 더 소형의 dram 장치에 대해 등가의 대역폭 및 어드레싱 범위를 제공하는 방법 및 그 dram 장치

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4577293A (en) * 1984-06-01 1986-03-18 International Business Machines Corporation Distributed, on-chip cache
US4899275A (en) * 1985-02-22 1990-02-06 Intergraph Corporation Cache-MMU system
US5184320A (en) 1988-02-12 1993-02-02 Texas Instruments Incorporated Cached random access memory device and system
US5353429A (en) * 1991-03-18 1994-10-04 Apple Computer, Inc. Cache memory systems that accesses main memory without wait states during cache misses, using a state machine and address latch in the memory controller
US5652723A (en) * 1991-04-18 1997-07-29 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device
US5649154A (en) * 1992-02-27 1997-07-15 Hewlett-Packard Company Cache memory system having secondary cache integrated with primary cache for use with VLSI circuits
JPH06110781A (ja) * 1992-09-30 1994-04-22 Nec Corp キャッシュメモリ装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5345576A (en) * 1991-12-31 1994-09-06 Intel Corporation Microprocessor simultaneously issues an access to an external cache over an external cache bus and to an internal cache, cancels the external cache access on an internal cache hit, and reissues the access over a main memory bus on an external cache miss
US5510934A (en) * 1993-12-15 1996-04-23 Silicon Graphics, Inc. Memory system including local and global caches for storing floating point and integer data
KR960015576A (ko) * 1994-10-07 1996-05-22 채터 무케시 기존의 다이나믹 랜덤 액세스 메모리(dram) 장치에 대해 증가된 데이타 대역폭 및 어드레싱 범위를 제공하고 및/또는 더 소형의 dram 장치에 대해 등가의 대역폭 및 어드레싱 범위를 제공하는 방법 및 그 dram 장치

Also Published As

Publication number Publication date
EP0817066A3 (en) 1998-02-04
KR980010781A (ko) 1998-04-30
JPH10177519A (ja) 1998-06-30
EP0817066A2 (en) 1998-01-07
US6199142B1 (en) 2001-03-06

Similar Documents

Publication Publication Date Title
KR100454441B1 (ko) 전폭캐쉬를가진집적프로세서/메모리장치
US6128702A (en) Integrated processor/memory device with victim data cache
EP0795820B1 (en) Combined prefetch buffer and instructions cache memory system and method for providing instructions to a central processing unit utilizing said system.
JP4486750B2 (ja) テンポラリ命令及び非テンポラリ命令用の共用キャッシュ構造
US5091851A (en) Fast multiple-word accesses from a multi-way set-associative cache memory
US6212602B1 (en) Cache tag caching
US7822911B2 (en) Memory device and method with on-board cache system for facilitating interface with multiple processors, and computer system using same
US7073026B2 (en) Microprocessor including cache memory supporting multiple accesses per cycle
JP2006517040A (ja) キャッシュラインサイズが異なる第一レベルキャッシュと第二レベルキャッシュを備えたマイクロプロセッサ
US6560679B2 (en) Method and apparatus for reducing power consumption by skipping second accesses to previously accessed cache lines
JPH08328958A (ja) 命令キャッシュ、キャッシュメモリ装置及びその方法
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
EP1869557B1 (en) Global modified indicator to reduce power consumption on cache miss
JP4218820B2 (ja) ダイレクトマップドキャッシュとフルアソシアティブバッファとを含んだキャッシュシステム、その制御方法及び記録媒体
US20100318741A1 (en) Multiprocessor computer cache coherence protocol
US6240489B1 (en) Method for implementing a pseudo least recent used (LRU) mechanism in a four-way cache memory within a data processing system
US5761714A (en) Single-cycle multi-accessible interleaved cache
US6240487B1 (en) Integrated cache buffers
US5926841A (en) Segment descriptor cache for a processor
US6976130B2 (en) Cache controller unit architecture and applied method
US7949833B1 (en) Transparent level 2 cache controller
JP3295728B2 (ja) パイプラインキャッシュメモリの更新回路
US20040030835A1 (en) Efficient cache organization for way-associativity and high refill and copy-back bandwidth
US7124236B1 (en) Microprocessor including bank-pipelined cache with asynchronous data blocks

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee