KR100278035B1 - 다중처리기 컴퓨터시스템에서 캐시태그 메모리의 단일 카피를 사용하는 캐시일관성 개량장치 및 방법 - Google Patents

다중처리기 컴퓨터시스템에서 캐시태그 메모리의 단일 카피를 사용하는 캐시일관성 개량장치 및 방법 Download PDF

Info

Publication number
KR100278035B1
KR100278035B1 KR1019930006974A KR930006974A KR100278035B1 KR 100278035 B1 KR100278035 B1 KR 100278035B1 KR 1019930006974 A KR1019930006974 A KR 1019930006974A KR 930006974 A KR930006974 A KR 930006974A KR 100278035 B1 KR100278035 B1 KR 100278035B1
Authority
KR
South Korea
Prior art keywords
bus
cache
buffer
coupled
providing
Prior art date
Application number
KR1019930006974A
Other languages
English (en)
Other versions
KR930023805A (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 KR930023805A publication Critical patent/KR930023805A/ko
Application granted granted Critical
Publication of KR100278035B1 publication Critical patent/KR100278035B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means

Landscapes

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

Abstract

다중처리기 컴퓨터시스템에서, 복수의 우수한 동작을 지원하는 동시에 캐시태그의 단일 카피를 갖는 캐시메모리의 구조에 캐시일관성을 보전하는 캐시제어기용 장치 및 방법이 개시된다. CPU는 소형 내부 캐시메모리 구조를 포함한다.
거의가 대형인 외부 캐시배열은 CPU와 제1의 통합된 번지 및 자료버스를 통하는 CC에 결합된다.
CC는 다른 장치들중에서 처리기, I/O 장치, 및 주메모리에 상호접속하는 제2버스에 차례로 결합된다. 외부 캐시는 서브블럭된다. CC의 캐시디렉토리는 외부 캐시의 사용을 추적한다. CC의 입력버퍼는 CPU들에 의해 송신된 명령의 버퍼링을 제공하는 제1버스에 접속된다. CC의 출력버퍼는 제2버스에 대해 동작하는 장치로 CC에 의해 지시된 명령을 버퍼링하도록 제2버스에 결합된다.
가상버스 인터페이스(VBI)는 입력버퍼에서 형성된 엔트리를 수신하며, 따라서 입력버퍼가 다른 명령을 수용하도록 경감된다. 캐시무효화 큐(CIQ) 레지스터는 수입무효화 동작으로 향하는 캐시서브블럭의 번지를 기억한다. 수신지 장치의 번지로 또한 출력버퍼에 독출된다. 출력버퍼에 기억된 수신지 장치의 번지가 CIQ 레지스터의 번지를 정합하면, CC는 판독-무효화 명령을 교부한 것이며, 다시 캐시의 무효한 블럭이 우선-접근 처리기에 해당하는 자료에 채위지므로, 이후에 접근하는 CPU에 의해 교부된 개입하는 중복을 무효화 한다. 배회 요청에 대한 응답시간은 바운드 되고, 캐시 및 처리기 사이의 자료일관성을 보전된다.

Description

다중처리기 컴ㅍ터시스템에서 캐시태그 메모리의 단일 카피를 사용하는 캐시 일관성 개량장치 및 방법
제1도는 본 발명의 기숭를 일체로 구성하는 외부 캐시메모리 및 캐시 제어기의 전체 블럭도,
제2도는 캐시제어기의 기능 블럭도,
제3도는 캐시제어기 내부에 통합된 번지 및 자료버스 인터페이스 및 제어유닛의 기능 블럭도.
제4도는 색인에 의해 선택된 디렉토리 엔트리를 예시적으로 나타낸 캐시디렉토리의 기능 블럭도.
제5도는 캐시무효화 접근동작을 예시적순서로 나타낸 시간선 도면.
* 도면의 주요부분에 대한 부호의 설명
2 : CPU 3 : 내부캐시배열
4 : CPU 버스 5 : 외부캐시배열
6 : 캐시제어기(CC) 8 : 다중처리기(MP)버스
9 : 주메모리배열 10 : 처리기모듈
[1] 발명의 분야 :
본 발명은 컴퓨터시스템 및 연관된 캐시메로리 구조에 관한 것이다.
보다 구체적으로 말하자면, 본 발명은 복수의 병행하는 캐시접근 동작중에 캐시일관성을 보전하는 캐시제어기 및 연관레지스터에 관한 것이다.
[2] 배경기술 :
통상, 컴퓨터시스템의 중앙처리장치(CPU)는 주메모리 보다 실제적 고속으로 동작한다. 명령을 실행하는 CPU가 명령을 지원할 수 있는 메모리 보다 고속인 경우, CPU는 명령이 동작될때 다음의 명령자료가 이용될 수 있을 때까지 대기하여야 한다.
경우, CPU는 명령이 동작될때 다음의 명령자료가 이용될 수 있을 때까지 대기하여야 한다.
CPU 대기 시간은 시스템 성능에 부정의 효과를 미친다.
자료 또는 명령어가 대형 주메모리에서 대기하는 동안 불필요한 CPU 대기 시간을 피하기 위해, 주메모리 보다 고속으로 동작할 수 있는 소형 캐시메모리는 주메모리 및 CPU 사이에서 자료 및 명령어를 버퍼하도록 흔히 사용된다.
주메모리의 메모리 위치에서 자료 및 명령은 블럭프레임의 캐시메모리로 사상된다.
각 블럭프레임은 그 블럭과 연관된 자료 및 명령을 기억하는 복수의 메모리 위치에 대응되는 블럭오프셋으로 구성된다. 캐시의 블럭프레임에 대한 접근은 각 블럭 프레임에 대응하는 물리적 번지 태그 및 상태 비트를 기억한 캐시메모리를 통해 전형적으로 형성된다.
캐시판독실패(miss)가 발생할 경우, 즉 CPU에 의해 요구된 자료 혹은 명령이 캐시 메모리에 없을 경우, 캐시메모리는 그 자료 혹은 명령을 주메모리에서 검색하여야 한다. 그렇게 하기 위해, 전형적으로는 요청된 자료 혹은 명령을 포함하는 자료 혹은 명령들의 전체적 블럭프레임이 검색되고, 그 전체 블럭프레임 검색이 완료될때까지 CPU가 대기하게 된다.
다수의 다른 캐시성능 문제 및 개량된 기술은, 예를들면, 제이. 엘. 헤네시이와 디.에이. 패터슨( J. L. Hennessy 와 D. A. Patterson)의 "컴퓨터기술-정량적 접근(Computer Architecture-A Ouantitative Approsch)", pp.454-61,(Morgan Kaufmann, 1990)을 참고할 수 있다.
최근, 다중처리기를 갖는 컴퓨터 시스템은 처리속도를 증가시키는 방향으로 일반화 되고 있다. 다중처리기 시스템에서, 얼마간 또는 모든 수개의 처리기는 판독 또는 독출목적을 위해서, 캐시에 기억된 블럭프레임의 접근을 동시에 시도할 수 있으며, 다양한 입력/출력(I/O)장치중 어느하나로 또는 하나로 부터 자료가 순환되도록 지시한다. 다중처리기(MP)시스템에서, 적절한 시스템 동작은 수개의 처리기중 하나가 캐시기억된 자료를 접근 및 선택할 수 있는 해당 처리기를 갖는 캐시에 기억된 적절한 해당자료를 보전하는데 좌우된다. 적절한 처리기에 해당하는 자료는 캐시일관성("cache consistency")이라고 한다.
예비적으로, MP시스템의 캐시일관성은 캐시디렉토리의 중복카피를 제공함으로서 전형적으로 보장된다. 중복디렉토리는 캐시디렉토리 자체에 대한 접근을 요구하지 않고 배회(snoop)동작 동안 캐시디렉토리를 중복시킬때 정보를 접근하는 다중처리기에 상호 접속된 버스상에 처리기를 정상적으로 사용가능하게 한다. 그러나, 캐시 크기가 증가함에 따라 캐시디렉토리 크기가 증가하여, 디렉토리의 중복 카피를 보존하는 것은 컴퓨터시스템의 실제적 코스트 및 성능의 면에서 부담이 클 수 있다.
따라서, 복수의 우수한 판독 및 독출 동작을 병행처리, 실질적으로는 일시적인 방식로 부여하는 다중처리기를 갖는 컴퓨터시스템에서 캐시일관성을 보전하기 위해 캐시 메모리 구조를 제어하는 새로운 방법을 제공하는 것이 바람직하다. 특히 캐시 실패의 불리한 조건이 감소될 경우에 바람직하다. 또한, 캐시제어기 및 연관된 제어레지스터를 구현하는데 필요한 하드웨어 조건이 최소화될 수 있을 경우에 바람직하다.
다음 상세한 실시예의 설명란에 기재된 바와같이, 이들 목적 및 바람직한 결과는 종래기술의 단점을 극복하는 본 발명의 목적 및 바람직한 결과 가운데에 있으며, 복수의 CPU컴퓨터시스템을 자료를 페치하기 위해 캐시메모리 시스템을 구현하는 캐시 메모리 제어기 및 방법을 제공한다. 본 발명은 SRAM-집중 캐시구조를 감소하며, 동시에 캐시 및 CPU들 사이의 자료일관성을 보존한다.
[발명의 개요]
복수의 처리기 컴퓨터시스템에서 복수의 우수한 동작을 지원하는 동시에 캐시태그의 단일 카피를 갖는 캐시메모리 구조에 캐시일관성을 보전하는 캐시제어기용 장치 및 방법이 개시된다.
컴퓨터시스템은 내부 캐시메모리 구조를 가진 중앙처리장차(CPU)를 포함한다.
적절한 수의 블럭을 갖는 실제적으로 대형의 외부 캐시배열은 고속의 통합번지 및 자료버스(CPU버스)를 통해 CPU및 캐시제어기(CC)에 결합된다. CC는 처리기를 상호접속하는 제2의 고속버스(MP버스), 캐시제어기, I/O 장치, 및 다중처리기 시스템을 형성하는 메모리장치에 차례로 결합된다. 외부 캐시는 블럭당 4개의 서브블럭을 제공함으로써 CC내에서 캐시디렉토리의 버스교통 및 크기를 감소하기 위해 서브블럭된다. CC의 캐시디렉토리는 외부 캐시의 사용을 추적하고, 그 CC를 주메모리에 상호결합 하는 버스에 대한 버스프로토골의 선택을 지원하도록 편성될 수 있다. 캐시디렉토리는 태그엔트리로 구성되며, 각각의 태그엔트리는 각각의 서브블럭에 대해 하나의 상태 비트필드로 되며, 번지필드 및 복수의 상태 비트필드를 갖는다.
태그엔트리의 번지필드는 그 태그엔트리의 색인으로서 사용된 비트가 없이 완전한 물리적 번지를 포함한다.
각각의 상태 비트필드는 분배된-비트, 소유자-비트, 및 유효-비트를 갖는다.
더욱이, 각각의 상태 비트필드는 설정될때 서브블럭에 대해 보류하는 비완성된 우수한 동작을 지시하는 보류 -비트를 갖는다. 설정되 보류-비트는 CPU가 해당 서브 블럭에 현재 기억된 자료를 접근하지 않도록 한다.
단지 캐시디렉토리의 단일 카피만이 제공된다.
캐시디렉토리에서 엔트리에 대한 접근을 CPU의 물리적 번지내에 포함된 색인 필드를 통해 형성된다. CPU 물리적 번지는 또한 물리적 번지의 태그필드, 서브블럭색인, 및 서브블럭 오프셋 필드를 갖는다. 색인의 충분한 비트는 캐시디렉토리의 각 엔트리에 일정하게 접근하는 것으로 제공된다.
CC의 출력버퍼는 CPU에 의해 송신된 명령의 버퍼림을 제공하기 위해 CPU명령 모듈을 통해 CPU버스에 접속된다.
또 CPU의 출력버퍼는 MP 버스상에서 동작하는 장치에 대한 CC 및 CPU에 의해 지시된 명령을 버퍼한다. 마찬가지로, CC의 입력버퍼는 MP 버스에 결합되고 CC 및 CPU로 향하는 수입명령을 기억한다. 추가로, 가상버스 인터페이스(VBI)는 MP에 버스에 대해 동작하는 장치로 부터 부여되고, 통합된 번지 및 자료 CPU버스에 대해 동작하는 CPU로 향하는 명령을 서어비스하는 대기시간을 감소하기 위해 CC내에서 구현된다.
VBI 는 CPU로 향하는 입력버퍼 명령으로 부터 수신되며 그에 따라 입력버퍼는 수입 명령어, 특히 MP버스에 대해 동작하는 장치로 부터의 버스배회 요청을 재차 자유로이 수용한다. 무효화 큐레지스터 구조는 단일 캐시디렉토리 연관된 분배된-독출, 독출-무효화, 및 독출-실패 동작을 위한 일관성을 보전하는 CC에 구현된다.
우선 접근 CPU가 분배된 -독출 명령을 캐시내의 목표블럭으로 교부한 후에, 그러나 명령이 제2버스상의 수신지 장치에 송신되거전의 시간에, 무효명령을 동일블럭에 교부 하는 순차적으로 접근하는 CPU는 영향받는 캐시블럭의 번지가 무효화 큐에 독출되도록 한다. 분배된-돌출 명령을 수신하는 캐시블럭의 번지는 또한 보류성 수출 명령을 유지하는 출력버퍼에 독출된다. 제2버스가 우선 접근 CPU에 이용될 수 있게 형성될 경우, 무효화 큐레지스터 구조에서 수신지 장치의 번지는 출력버퍼에 기억된 보류명령을 위한 번지를 정합할 것이다. 따라서 CC는 판독-무효화 명령를 교부하여, 서브블럭 목표에 기억된 자료의 최근 카피를 얻게된다. 판독-무효화 동작은 목표된 서브블럭의 모든 유효카피를 무효화하므로, 캐시일관성 프로토콜로 분배하는 다중처리기 시스템에서 모든 캐시들사이의 일관성을 보전한다.
[발명의 상세한 설명]
다중처리기 컴퓨터시스템에서 복수의 우수한 동작을 지원하는 동시에 캐시태그 메모리의 단일 카피를 갖는 캐시메모리 구조에 캐시일관성을 보전하기 위한 캐시제어기 장치 및 방법이 캐시된다.
본 명세서에서는 설명, 특정번호, 시간, 신호등이 설명을 위해 본 발명의 전체적 이해를 제공하도록 기재된다. 그러나, 이 분야에 숙련된 기술자라면 본 발명이 이들의 특별한 설명이 없이도 실시할 수 있음을 알 수 있다. 어떤 경우에 있어서는 공지된 회로 및 장치가 본 발명을 불필요하게 명료하게 하지 않도록 블럭도 형태로 도시된다.
제1도의 구성에 있어서, 본 발명의 기술을 구체화 하는 다중처리기의 고성능 컴퓨터 시스템에서 외부캐시 메모리 및 캐시제어기(CC)의 개략적 블럭도가 도시된다.
제1도에서, 중앙처리장치(CPU:2)는 CPU버스(4)를 통해 외부캐시배열(5)에 상호접속된다. 캐시배열(5)은 캐시제어기(CC; 6)에 의해 제어되며, CPU(22), CPU버스(4), 캐시배열(5) 및 CC(6)는 처리기 모듈(10)을 형성한다. 처리기 모듈(10)은 다중처리기 (MP) 버스(8)를 통해 주메모리 배열(9) 및 다른 처리기 모듈(10)에 차례로 상호결합된다. CPU(2)는 내부캐시배열(3)을 더욱이 구비한다. 내부캐시배열(3)은 CPU(2)용의 집적된 온-칩 캐시구조이며, 외부캐시배열(5) 보다 비교적 크기가 실제로 작다. 본 발명이 외부캐시메모리(5) 및 주메모리(9)를 형성하는 메모리장치에 대한 소정의 속도조건이 부과되지 않을지라도, 일반적으로는 캐시배열(5)을 형성하는 장치가 주메모리(9)를 형성하는 소자보다 소형이고 고속이다고 가정된다. CPU버스(4)는 고성능 처리기를 적합하게 수용하기 위한 소정의 형태로 가정될 수 있지만, 본 발명의 경우에서와 같이, 특별한 처리기 아키텍쳐, 이경우는 선 마이크로시스템조사(미국, 캘리포니아 94043, 마운틴 뷰우)에 의한 바이킹처리기(Viking processor)이다,를 가지고 동작하도록 최적화 된다.
제2도를 참조하면, CC(6)의 배열을 예시하는 블럭도가 예시됨을 알수 있다.
제2도에서 통합된 번지 및 자료 CPU버스(4)는 CPU버스 인터페이스 및 제어유닛(11)에 접속되며 내부의 아비터(도시안됨)에 따라 버스(4)에 대한 접근을 제어한다. CPU 버스 인터페이스 및 제어유닛(11)은 CPU 명령 모듈(13) 및 다중처리기(MP)명령 모듈(12)과 함께 2방향 통신으로 접속된다. MP 명령 모듈(12)은 MP 버스 (8) 요청 및 회답을 처리하고, 어떤 경우에는 요청을 배회하고, MP버스(8)로부터 소오스되며 회답한다. 배회요청은 이하에서 보다 상세히 논의될 것이다. CPU명령 모듈(13)은 전체 수입명령을 CPU(2)로 부터 처리하고, 필요할 경우 CPU(2)가 MP버스(8)의 제어를 얻도록 적절한 명령을 발생한다.
캐시디렉토리(15)는 지역내부 캐시디렉토리 버스(15)를 통해 MP 명령 모듈(12) 및 CPU 명령 모듈(13)에 상호 접속된다.
캐시메모리(15)의 구조 및 동작은 이하에서 상셍히 기술될 것이다.
CC(6) 의 버스입력 버퍼(BIBUF)(6)는 MP버스 인터페이스 및 제어유닛(19)에 접속되어, CPU 머스(4)에 대해 동작하는 CPU(2)와 MP버스(8)에 대해 캐시디렉토리(15)로 동작하는 장치에 의해 송신된 명령의 버퍼링을 제공한다. BIBUF(16)는 MP명령 모듈(12)에도 역시 접속되어 CPU(2) 및/또는 캐시디렉토리(15)로 향하는 명령을 전송한다. 유사하게는, CC(6)의 버스출력버퍼(BOBUF)(17)는 CPU버스 인터페이스 및 제어유닛(11)을 통해 통합된 번지 및 자료 CPU버스(4)에 결합되어, CPU(2)내지 CC(6)의 의해 제2버스, 예를들면 주메모리(9)에 대해 동작하는 장치로 명령의 버퍼링을 제공한다.
BOBUF(17)도 역시 MP명령 모듈(12)에 결합되어, MP명령 모듈(12)에 의해 교부되고 MP 버스(8)에 대해 동작하는 장치로 향하는 회답을 전송한다. BOBUF(17)는 2개의 버퍼구조; 입력 및 출력을 갖는 요청버퍼(REQ)(17a)와, 입력 출력을 갖는 회답버퍼(RPY)(17b)로 구성된다.
MP 버스 인터페이스 및 제어유닛(9)은 버퍼(16)와 (17)에 상호접속되어, MP버스(8)를 거쳐 CC(6)에 상호결합된 외부장치와 함께 자료(데이타)통신을 통제한다. MP버스 인터페이스 및 제어유닛(9)은 CPU버스 인터페이스 및 제어유닛(9)은 CPU버스 인터페이스 및 제어유닛(11)에 의해 수행된 기능과 유사한 기능으로 수행된다. MP버스 인터페이스 및 제어유닛(19) 버스인터페이스 유닛(도시안됨), CC(6)로 부터 MP버스(8)에 의해 상호결합된 장치까지의 신호를 송신 및 수신하는데 필요한 구동기 및 수신기(도시안됨), 및 특히 주메모리(9)를 포함한다. MP버스 인터페이스 및 제어유닛(19)과 관련하여 도시되지 않은 구성은 이 기술에서는 널리 주지되어 있으며, 더욱이 여기서 논의도리 필요가 없는 것이다.
자료선(60)은 MP버스 안터페이스 및 제어유닛(19)으로 부터 BIBUF(16)의 입력까지 순환된다. 더욱이, 제2자료선(61)은 BIBUF(16)근방의 MP 버스 인터페이스 및 제어유닛(19)으로 부터 MP명령 모듈(12)까지 순환된다. 유사성있게도, 제3자료선(67)은 CPU 버스 인터페이스 및 제어유닛(11)으로 부터 BOBUF(17)의 입력, 특히 REQ버퍼(17a)까지 순환된다. 추가로, 제4자료선(68)은 REQ버퍼(17a) 근방의 CPU버스 인터페이스 및 제어유닛(11)으로 부터 BOBUF(17)에 대한 지역자료버스(69)내부가지 순환된다.
제5자료선(65)는 MP 명령 모듈(12)에서 RPY버퍼(17b)의 입력으로 연장되며, 제6자료선(66)은 RPY버퍼(17b)근방에서 지역자료버스(69)로 연장한다. 자료선(66)의 목적은 배회 요청을 명령(자료의 자료경로로 제약하지 않고, 버스배회 요청이 CC(6)를 통해 REQ버퍼(17b)로 부터 외부로 순환되도록 하는 것이다. 캐시(5),(제1도)는 분배된 메모리 환경에서 동작하기 때문에, CC(6)는 분배된 불럭과 관련된 것으서 캐시상태 정보에 접근할 필요가 있다.
종래의 설계기술에서와 같이, CC(6)는 본 발명에서 구성된 것으로서 버스(4) 또는 (8)에 대해 동작하는 장치가 캐시일관성을 보전하기 위해 각 버스로 부터의 자료를 감시, 배회 또는 접근하도록 한다.
또한 제2도에 있어서, CC(6)는 CPU(2)에 의해 교부된 판독-무효화 및 독출-무효화 동작중에 영향을 받는 캐시서브블럭의 물리적 번지를 기억하기 위해 MP버스 인터페이스 및 제어유닛(19)에 결합된 캐시무효화 큐(CIQ) 버퍼(20)를 포함한다.
캐시 무효화 큐버퍼(20)의 기능은 주지된 설계원리에 따라 구성되며, 이하에서 상세히 설명될 것이다. 또한 제2도에서 예시된 바와같이, 바람직한 실시예의 CC(6)는 CPU 버스(4) 및 MP 버스(8)사이의 비동기 인터페이스(점선(70)으로표시)를 통해 2개의 상이한 클럭 주파수를 지원한다. 비동기 인터페이스(70)는 버스(4) 및 (5)가 상이한 클럭 주파수에서 동작되게 한다. 동작 클럭의 결합해제는 처리기(2)가 고속의 클럭, 즉 시스템버스(예컨대 MP버스(8))에서 가능하도록 한다. 특히, 본 발명의 바람직한 실시예에 있어서, CPU버스(4)는 고성능 처리기(2)의 고속자료, 전송률은 수용하도록, MP버스(8)보다 고주파수에서 동작한다. 버퍼(16)및 (17)는 CPU 버스(4)에 대해 동작하는 장치와 MP 버스(8)에 대해 동작하는 장치사이에서 통신 가능하게 한다.
본 발명이 수개의 선택적 실시예로 실현될 수 있을지라도, 본 발명 버퍼(16) 및 (17)의 바람직한 실시예는 이중-포트 레지스터파일로 설치되고, 2개의 클럭 영역 CLK1 및 CLK2사이에서 동작하는 선입선출형 장치임을 주목하자.
BIBUF 버퍼(16)가 16×73비트의 크기인 반면, REQ 요청 버퍼(17a)는 2개의 10×65비트 구조로 구성된다.
RPY 요청 버퍼(17b) 는 3개의 10×65비트 버퍼로 구성된다.
제3도의 구성을 참조한다. 본 발명은 통합된 번지 및 자료 CPU버스(4)에 대해 동작하는 CPU(2)로 향하는 명령의 지연을 감소하기 위하여 CC(6)내에서 가상 버스인터페이스(VBI)(22)를 구현한다. VBI 는 입력버퍼에 형성된 엔트리를 수신하여, 그 입력버퍼가 수입명령, 특히 MP버스(8)에 대해 동작하는 장치로 부터의 요청을 배회하는 버스를 다시 자유로이 수용한다.
MP 버스(8)용 일관성 프로토콜에 따르도록, 배회요청은 특정된 시간 범위내에서 서어비스 되어야 한다. 제3도에는 가상 버스인터페이스(VBI)(22)를 포함한 CPU 버스인터페이스 및 제어유닛(11)의 보다 상세한 예시를 도시한다. 제3도에서, CPU 버스인터페이스 및 제어유닛(11)은 CPU버스 입력/출력 (I/O)프레임 유닛(21)을 포함한다. CPU 버스 I/O프레임 유닛(21)은 모든 구동기, 수신기 및 버스(4)로 부터의 신호를 수출 및 수입하는 래치, 가상 버스인터페이스(22), CPU 버스 아비터(23), 및 CPU 버스인터페이스(24)를 포함한다. 가상 인터페이스(22)는 MP 명령 모듈(12)이 임의성을 요구함이 없이 외부 캐시배열(5)(제1도에 도시됨)로 자유로이 독출되도록 한다.
VBI(22)는 항상 자유로운 CPU버스(4)의 환영을 얼마간 제공하고, CPU버스(4)의 임의성 프로토콜과 연관된 복합성을 취급하는 것으로 부터 MP 명령 모듈(12)을 수신한다. 바람직한 실시예의 VBI(22)는 CPU버스(4)의 9사이클이 접근될때까지 MP명령 모듈(12)에 의해 VBI(22)를 통해 형성된 버퍼에 대한 9×107 비트 버퍼로 구성된다. 버스(8)로 부터 소오스된 배회요청을 7클럭 사이클에서 VBI(22)에 의해 처리된다. CPU 버스 아비터(23)는 처리기(2) CPU 버스인터페이스 (24) 또는 VBI(22)에 의한 CPU버스 (4)에 접근용 요청을 제어 및 부여한다. 또한 CPU버스 아비터(23)는 CPU버스(4)를 위해 사용된 바스프로토콜을 조정한다. 결국, CPU 버스인터페이스(24)는 CC(6) 내에서 신호가 다른 장치로 통과되기전에 CPU버스(4)로 부터 수신된 모든 입력 신호를 내부적으로 래치한다.
제1,2 및 제3도와 관련하여 기술된 바와같이, CC(6)는 복수의 CPU(2), 즉 MP 버스(8)에 상호접속된 수개의 처리기 모듈(10)내에 포함된 CPU를 일체화 하는 컴퓨터시스템용 외부의 캐시배열(5)을 제어한다. CC(6)는 컴퓨터시스템의 복수의 CPU(2)와 그 나머지 사이의 통신 인터페이스를 추가로 제공한다. 본 발명의 바람직한 실시예에 있어서, CC(6)는 외부의 캐시메모리 구조를 사용하는 2개의 상이한 버스시스템 ; M 버스-베이스 시스템 및 Dyna 버스-베이스 시스템을 지원한다.
M버스-베이스 시스템이 있어서, CC(6)는 M버스 구성(제1도 및 제2도에 버스(8)로서 도시됨)에 직접 접속된다.
선택적으로, Dyna 버스-베이스 시스템에서, CC(6)는 X버스 구성에 접속된다. M버스 시스템이 주지되어 있으며, 또한 Dyna버스 시스템이 패킷교환동작 및 특성을 갖는 패킷-교환 MP버스인 것으로 주지되어 있기 때문에, 이들 버스 시스템은 더이상 논의도지 않을 것이다.
외부캐시배열(5)은 직접-맵 캐시로서 편성된다. 그 크기는 1메가바이트(MB), 또는 Dyna 버스-페이스 시스템의 경우에 선택적으로 2MB로할 수 있다. 외부캐시배열의 크기는 Dyan버스의 버스구현에서 보다 큰 서브블럭 크기를 사용하므로서, M버스 배열보다 Dyan 버스 배열에서의 크기가 더 크다. 그러나, 본 발명의 특정적 속성은 선택된 버스시스템에 좌우되며, 따라서 본 명세서의 균형을 위한 M버스 구성만이 기술될 것이다. 게다가, 캐시의 편성은 크기를 제외하면 양 버스구현이 동일하므로, 본 명세서의 균형은 1MB캐시 구성을 사용할 것이다.
바람직한 실시예에서 1MB캐시를 구현하기 위해, 8개의 128K×9(또는 128K×8)정적 임의 접근메모리(SRAM)칩이 사용된다. 서브블럭킹은 일반적으로 주지된 바와같이, CC(6)내에서 캐시디렉토리(15)의 크기를 감소하기 위해 사용된다. 서브블럭킹은 대형 블럭의 커다란 대역폭 조건을 극복하고, 또한 소형 캐시블럭내의 태그기억 조건을 감소 하기 위해 개발되었다.
바람직하게는 서브블럭 크기가 M버스-베이스 시스템용 32 바이트(B)이다. 서브블럭 베이스에 대해 기억된 자료는 전달되고, 캐시일관성 프로토콜은 보존된다.
CC(6)는, 미국특허출원 제호 "캐시일관성 다중처리기 컴퓨터시스템에서 복수의 우수한 동작을 제공하는 장치 및 방법")(출원일)과 관련된 상기 인용문헌의 기술과 병합하여 참고한다. 본 발명은 CPU버스(4)를 통해 CC(6)에 상호 접속된 소정의 처리기로 부터 외부캐시배열(5)에 병렬 접근을 자원할 수 있다.
바람직한 실시예에 있어서, 판독 및 독출동작에 대하여 명령사이클당 하나의 더블-워드(DW)의 피이크 자료 전송률이 기대된다. 판독접근 또는 독출접근 동작이 실패된 경우, 즉, 자료 혹은 명령탐색이 캐시배열(4)에 기억된 블럭내에 있지않을 경우, CPU(2)는 독출(혹은 판독)동작용 캐시배열을 또다른 실패기 발생할때까지 더욱이 접근될 수 있다.
캐시디렉토리(15)의 보다 상세한 도해가 도시된 제4도의 구성을 참조한다.
제4도에서, 캐시디렉토리(15)는 통상적으로 주지된 기술에서와 같이 복수의 태그엔트리(30)를 갖는 구성이다.
각각의 블럭에 대해 하나의 엔트리가 캐시배열(5)에 있다.
예시된 바와같이, 바람직한 실시예의 캐시배열(5)은 크기가 각각 128B인 8K블럭이 명목적으로 구성된다. 따라서, 캐시디렉토리(15)는 8K 태그엔트리(30)를 갖는 것이 유사하다.
각각의 태그엔트리(30)는 번지태그(31)및 복수의 상태 비트필드(32)로 구성된다. 번지태그(31)는 태그엔트리(30)에 의해 식별된 특별한 블럭으로 참조되는 데이타에 대한 번지태그를 기억한다. 서브블럭에 해당하는 상태 비트필드(32)는 엔트리(30)에 의해 참조된 블럭에 존재한다. 특히, 블럭을 포함하는 각각의 서브블럭에 대하여 하나의 상태 비트필드(32)가 있으며, 그 블럭에서 수개의 서브블럭을 식별하는 하나의 번지태그(31)만이 있게된다.
각각의 상태 비트필드(32)는 4개의 상태 비트(33) : p-비트(34) , S-비트(35), O-비트(36), 및 V-비트(37)를 기억한다.
S-비트(35), O-비트(36), V-비트(37) 및 p-비트(34)는 각각 해당서브블럭이 분배됨을 지시하는 설정값일때 분배된-비트, 소유자-비트, 유효-비트 및 보류-비트로 된다.
S-비트(35)는 해당 서브블럭이 분배되었음을 지시할때 설정된다. O-비트(36)는 특별한 CPU(2)가 최근 독출동작을 실행함을 지시할때 설정된다. V-비트는 해당 서브블럭이 유효임을 지시할때 설정된다. p_비트(34)는 CPU(2)에 의해 배정된 동작이 색인(42)으로 참조된 블럭의 서브블럭과 서브블럭색인(42)에 대해 보류상태임을 지시할때 설정 된다. 또한, p-비트(34)는 프리페치 동작이 초기화될때 설정된다. p-비트(34)는 복수의 동작이 이전에 부여된 명령의 완료를 대기하고 심지어는 동시에 모든 서브블럭을 식별하는 하나의 번지태그를 요구함이 없이 서브블럭으로 되도록 한다. p-비트(34)는 버스(4)를 포기하도록 접근성 CPU를 요구하는 CC(6)를 사용가능하게 함으로써 p-비트(34)를 설정하여 후에 접근을 재시도(retry)하기 위한 서브블럭에의 접근을 방지한다. p-비트(34)를 감시하는 CC(6)를 가짐으로써, CC(6)는 이전동작이 완료되어 p-비트(34)가 클리어될 경우에만 설정된 p-비트(34)를 갖는 서브블럭에 대한 순차동작을 허용할 것이다. CPU(2)가 p-비트(34)를 설정하지 않아 접근이 실패된 서브블럭을 접근한 경우, p-비트(34)는 첫번째로 설정되고, 메모리 접근은 캐시배열(5)에 대한 검색자료를 형성하며, 따라서 번지태그비트(31)는 갱신된다. 캐시배열(5)내의 캐시블럭 프레임은 번지(40)의 부분을 형성하는 색인(41)을 통해 접근된다. 이로써 번지(40)는 공지된 방법 ; 색인(41)은 색인(41)의 비트패턴에 따라 특별한 태그엔트리(30)를 반드시 가리킨다. 으로 캐시배열(5)에 접근을 사용가능하게 한다.
추가적으로, 블럭 및 서브블럭내의 오프셋은 오프셋필드(42) 및 (43)에 의해 지시된다.
본 발명의 동작에 있어서, 버스배회요청은 CPU버스(4) 및 MP버스(8)에서 부여된 명령과 전체가 독립적으로 표명 및 처리될 수 있다. 버스 명령이 MP 명령 모듈(12) 및 CPU 명령 모듈(13)에 의해 단지 실행적으로 처리될 수 있을지라도, BIBVF(16) 및 BOBUF(17)는 수신된 명령이 즉시 버퍼될 수 있도록 한다. 더욱이, 가상 버스 인터페이스(22)는, CPU버스(4)용 CPU버스 아비터(23)와 상호작용하지 않고, 캐시배열(5)에 대하여 MP 명령 모듈(12)이 필수적으로 자유로이 독출될 수 있도록 하여, 버스배회 요청이 MP 명령 모둘(12)에 의해 보장된 시간에서 처리되도록 한다. 따라서 캐시접근은 실제적으로 병렬방식으로 처리되는데, 접근요청이 동시에 교부되기는 하나, 순차적 용청은 이전에 교부된 캐시메모리 접근의 완료 이전에 교부될 수 있다.
본 발명을 실현하는 CC(6)의 동작은 제5도에 도시된 예시적 실시예와 관련하여 설명될 수 있다. 제5도에서 예컨대 CPU버스(4)에 대해 동작하는 CPU(2)는 시간 T1에서 독출동작을 교부하는 것을 도시하며, 상기 동작을 서브블럭 A에 접근하는 분배된 -독출 캐시메모리로 되는데, 이는 교부된 동작이 독출동작이며 분배-비트(S-비트)(35)가 서브블럭A에 대해 설정되기 때문이다. 설정되는 보류비트(p-비트)(34)는 캐시배열(5)의 서브블럭 A이 동작 보류상태를 갖는 것을 지시한다.
따라서, 분배된-독출명령 및 결합된 서브블럭 번지는 BOBUF(17)로 독출될 것이다. 그러나, T1에서 개시된 CPU독출 동작과 결합된 메모리 접근의 완료를 보류하는 것은 동일 블럭내에서 다른 서브블럭에 대한 추가의 동작이 T1에 연속하는 시간에서 더욱이 처리될 수 있다.
또한, 얼마간의 시간 T2후를 가장하면 MP버스(8)에 대해 동작하는 장치가 임으로 되어 버스(8)의 제어를 얻게되고, 그에 따라 서브블럭 A로 향하는 일부의 캐시무효화 동작을 교부한다. 시간 T2에서 장치된 버스(8)에 의해 교부되는 캐시무효환 동작은 서브블럭 A로 이전에 독출된 자료를 무효화할 것이다.
시간 T3에서는 캐시배열(5)에 대한 분비된 -독출 동작이 완료된다. 그러나, T1에서 독출된 자료는 서브블럭 A에 다시 재기억 되어야 한다. 한편, 그자료는 버스(8)가 무효화된 T2에서 접근하는 서브블럭A 때문에 재판독 되어야 한다. 따라서, 선택명령 "응집성-판독-무효화"(CRI)는 서브블럭A에 대해 자료를 재판독하도록 교부된다. 검색된 명령이 캐시배열(5)로 재판독 및 독출될때, p-비트(35)는 클리어되고 CPU(2)는 독출동작으로 처리된다.
제2도를 차조하면, 캐시무효화 큐(CIQ) 버퍼(20)는 무선-발생 캐시무효 명령이 특별한 캐시서브블럭에서 자료를 부효화할때, 그리고 캐시무효동작이 버스무효화 동작에 따른 동일한 서브블럭으로 MP버스(8)상에 교부될때를 결정하는 것을 가능하게 한다. CIQ 버퍼(20)는 버스무효화 동작이 지시하는 캐시블럭의 번지를 기억한다. 우선-부여된 동작이 보류됨과 아울러 완성되지 않기 때문에, 해당 블럭번지와 함게 보류(비-완료)명령은 필요한 수신지 장치 번지가 캐시디렉토리(15)로 부터 폐치될때 까지 BOBUF REQ버퍼(17a)에 또한 기억될 것이다.
BOBUF REQ버퍼(17a)에 기억된 엔트리는 정합 논리유닛(75)을 통해 CIQ버퍼(2)에 기억된 엔트리에 비교된다.
CIQ버퍼(2)의 번지가 BOBUF REQ 버퍼(17a)에 기억된 번지와 정합된다면, CC(6)는 개입하는 캐시-무효화, 동작이 서브블럭 A상에서 발생되고, MP버스(8)장치로 향하는 동작이 표준무효화 동작이라기 보다는 서브블럭 A에 대한 응집성-판독-무효화(CRI) 동작을 포함하여, 자료를 재판독한다.
CIQ버퍼(20)의 엔트리는 엔트리가 캐시디렉토리(15)에서 무효로 됨을 표시하는 MP명령 모듈(12)일때까지 유효하게 유지된다.
본 명세서는 다수의 명확한 동작을 캐시메모리 구조에서 보전하는 장치 및 방법을 기술한다. 이 분야에 숙련된 통상의 기술자에 의해 이루어질 수 있는 변경 및 수정은 본 발명의 사상 및 범위를 이탈함이 없이 본 발명의 장치소자 및 요소의 배열에 대해 예측 가능함을 알 수 있다.

Claims (20)

  1. 중앙처리장치(CPU)및 주메모리를 포함한 처리기 모듈을 구비하는 컴퓨터시스템에 있어서,
    제1버스에 의해 상기 CPU에 상호결합되고, 복수의 서브블럭을 더 포함한 복수의 블럭을 포함하는 캐시, 및
    상기 제1버스 및 상기 캐시에 결합된 캐시제어기를 포함하고, 상기 캐시제어기는 :
    상기 제1버스에 의해 상기 캐시 및 상기 CPU에 결합되고, 상기 주 메모리가 제2버스에 의해 상기 캐시제어기에 결합되는 캐시 디렉토리 ;
    번지태그를 포함하며, 상기 서브블럭에 해당하는 복수의 상태 비트필드를 더 포함하고, 물리적 번지의 캐시디렉토리색인 필드를 포함하는 캐시 디렉토리색인에 의해 지정되는 복수의 태그엔트리 ;
    상기 제1버스에 결합되어 상기 제1버스상에 자료전송을 제어하는 제1버스 인터페이스 및 제어수단 ;
    상기 제2버스에 결합되어 상기 제2버스상에 자료전송을 제어하는 제1버스 인터페이스 및 제어수단 ;
    상기 제1버스 인터페이스 및 제어수단에 결합되며, 상기 제2버스로 향하는 상기 제1버스로부터 발생된 복수의 제2버스 접근요청을 라우팅하는 제1버스명령 모듈 ;
    상기 제1버스로 향하는 상기 제2버스로 부터 발생된 복수의 제1버스 접근요청을 라우팅하는 제2버스명령 모듈 ;
    상기 제1및 제2버스명령 모듈과 상기 제2버스 인터페이스 및 제어수단과 결합되어 상기 CC로 부터 상기 제2버스로 향하는 명령을 버퍼하는 제1버퍼 수단 ; 및
    상기 제2버스명령 모듈과 상기 제2버스 인터페이스 수단에 결합되며 상기 제2 버스로 부터 상기 제1버스로 향하는 명령을 버퍼하는 제2버퍼 수단을 더 포함한 것을 특징으로 하는 단일카피 캐시태그 캐시메모리 구조.
  2. 제1항에 있어서, 상기 제1버퍼 수단은 :
    상기 주 메모리를 포함하고, 상기 제1버스 명령모듈에 연결되어 상기 제1버스로부터 상기 제2버스에 대해 동작하는 장치로 향하는 요청명령을 수신하는 제1버퍼 ; 및
    상기 주메모리를 포함하고, 상기 제2버스명령 모듈에 결합되어 상기 CC에 의해 상기 제2버스에 대해 동작하는 장치로 향하는 회답 명령을 수신하는 제2버퍼를 포함하는 것을 특징으로 하는 단일카피 캐시태그 캐시메모리 구조.
  3. 제2항에 있어서, 상기 제1버퍼 수단은, 상기 주메모리를 포함하고, 상기 제1 및 제2버퍼에 의해 버퍼된 상기 요청 및 회답명령을 수신하도록 결합된 지역 자료버스를 더 포함하며, 상기 지역 자료버스가 상기 제2버스명령 모듈에 더욱이 결합되어 상기 제2버스에 대해 동작하는 장치로 상기 회답명령을 전송하는 것을 특징으로 하는 단일카피 캐시태그 캐시메모리 구조.
  4. 제3항에 있어서, 상기 제2버퍼 수단은, 상기 주메모리를 포함하고, 상기 제2버스명령 모듈에 결합되어 상기 제2버스에 대해 동작하는 장치에 의해 상기 CPU들 및 상기 CC로 향하는 상기 요청명령을 수신하는 제3버퍼를 더 포함하는 것을 특징으로 하는 단일카피 캐시태그 캐시메모리 구조.
  5. 제4항에 있어서,
    상기 제1버퍼는 2개의 10×65비트 레지스터를 포함하고,
    상기 제2버퍼는 2개의 10×65비트 레지스터를 포함하고,
    상기 제3버퍼는 10개의 73 비트 레지스터를 포함한 것을 특징으로 하는 단일카피 캐시태그 캐시메모리 구조.
  6. 제5항에 있어서, 상기 제1버스명령 모듈은 :
    상기 제1버퍼 명령 모듈에 결합되어 상기 제1버스와 통신하는 제1버스 인터페이스 수단 ;
    상기 제1버스에 결합되어 상기 제1버스에 대한 접근을 제어하는 제1버스중재수단 ; 및
    상기 제1버스와 상기 제1 및 제2버스명령 모듈에 결합되어 상기 CPU로 향하는 상기 제1명령의 대기 시간을 감소시키는 가상버스 인터페이스 수단을 더 포함하는 것을 특징으로 하는 단일카피 캐시태그 캐시메모리 구조.
  7. 제6항에 있어서, 상기 가상버스 인터페이스 수단은 상기 제2버스명령 모듈에 결합된 제4버퍼를 구비하고 ;
    상기 제4버퍼는, 상기 제2버스에 대해 동작하는 상기 장치에 의해 상기 CPU로 향하는 복수의 제1 명령을 수신하고 ;
    상기 CPU로 향하는 복수의 상기 제1명령을 수신한수, 상기 제4버퍼가, 상기 제1버스의 제어가 상기 제1버스 중재 수단에 의해 상기 제1버스명령 모듈에 허가될때까지 상기 제1명령을 버퍼하고, 그에 따라 상기 제1명령을 상기 CPU로 재전송하는 것을 특징으로 하는 단일카피 캐시태그 캐시메모리 구조.
  8. 제7항에 있어서, 상기 가상버스 인터페이스 수단은 9개으 107비트 레지스터를 구비한 것을 특징으로 하는 단일카피 캐시태그 캐시메모리 구조.
  9. 제8항에 있어서,
    우선-발생 캐시무효화 명령이 특별한 서브블럭에서 무효된 자료를 가질 경우를 결정하는 캐시무효화 큐수단 ; 및
    상기 큐무효화 수단과 상기 제2버퍼 수단에 결합되어 상기 캐시무효화 큐수단과 상기 제2버퍼 수단에서의 엔트리를 비교하는 정합 논리유닛을 더 포함하며,
    상기 캐시무효화 큐수단이 상기 제2버퍼 인터페이스 및 제어수단에 결합되어 복수의 분배된-접근 동작으로 향하는 서브블럭의 번지를 기억하고 ;
    상기 캐시무효화 큐수단이 상기 제2버퍼 수단에 더욱이 결합되고 ;
    상기 제2버퍼에서, 상기 제2버퍼 수단이 상기 분배된-접근 동작에 연관된 상기 제2버스에 대해 동작하는 복수의 수신지 장치 번지를 기억하며 ;
    상기 수신지 장치의 상기 번지가 상기 특별한 서브블럭의 상기 번지와 정합될 경우, 상기 캐시무효화 큐수단이 상기 분배된-접근 동작을 상기 수신지 장치로 완료하기전에 자료를 재판독하는 상기 캐시제어기를 상기 특별한 서브블럭으로 신호를 송신하는 것을 특징으로 하는 단일카피 캐시태그 캐시메모리 구조.
  10. 제9항에 있어서, 상기 캐시무효화 큐수단은 제5버퍼를 구비한 것을 특징으로 하는 단일카피 캐시태그 캐시메모리 구조.
  11. 중앙처리장치(COU) 및 주메모리를 포함한 처리기 모듈을 구비하는 컴퓨터시스템에 있어서, 단일 카피 캐시태그 캐시메모리 구조를 사용하고 ;
    복수의 서브블럭을 더 포함한 복수의 블럭을 포함하며, 제1 버스에 의해 상기 CPU에 상호 결합된 캐시를 제공하는 단계 , 및
    상기 제1버스 및 상기 캐시에 결합된 캐시제어기를 제공하는 단계를 포함하며;
    상기 캐시제어기 제공단계는,
    제2버스에 의해 상기 주메모리를 상기 캐시제어기에 결합하는 단계 ;
    캐시디렉토리를 제공하는 단계 ;
    번지태그를 포함하고, 상기 서브블럭이 해당하는 복수의 상태 비트필드를 더 포함하는 복수의 태그엔트리를 형성하는 단계 ;
    가상번지의 캐시디렉토리 색인 필드를 포함하는 캐시디렉토리 색인에 의해 상기 태그엔트리를 지정하는 단계 ;
    상기 제1버스에 연결되어 상기 제1버스 상에서 자료전송을 제어하는 제1버스 인터페이스 및 제어수단을 제공하는 단계 ;
    상기 제2버스에 연결되어 상기 제2버스 상에서 자료전송을 제어하는 제2버스 인터페이스 및 제어수단을 제공하는 단계 ;
    상기 제1버스 인터페이스 및 제어수단을 결합되며, 상기 제1버스로 부터 발생된 상기 제2버스로 향하는 복수의 제2버스 접근요청을 라우팅하는 제1버스명령 모듈을 제공하는 단계 ;
    상기 제2버스 인터페이스 및 제어수단에 결합되며, 상기 제2버스로 부터 발생된 상기 제2버스로 향하는 복수의 제2버스, 접근요청을 라우팅하는 제2버스명령 모듈을 제공하는 단계 ;
    상기 제1 및 제2버스명령 모듈과 상기 제2버스 인터페이스 및 제어수단에 연결되어, 상기 CC로 부터 상기 제2버스로 향하는 명령을 버퍼하는 제1버퍼 수단을 제공하는 단계 ; 및
    상기 제1 및 제2버스명령 모듈과 상기 제2버스 인터페이스 및 제어수단에 연결되어, 상기 제2버스로부터 상기 제1버스로 향하는 명령을 버퍼하는 제2버포 수단을 제공하는 단계를 더 포함한 것을 특징으로 하는 단일카피 캐시티그 캐시메모리 구조의 사용방법.
  12. 제11항에 있어서, 상기 제1버퍼 수단제공 단계는,
    상기 주메모리를 포함하며, 상기 제1버스명령 모듈에 연결된 제1버퍼를 결합하고 상기 제1버스로 부터 상기 제2버스에 대해 동작하는 장치로 향하는 요청명령을 수신하는 단계 ; 및
    상기 주메모리를 포함하며, 상기 제2버스명령 모듈에 연결된 제2버퍼를 결합하고 상기 CC에 의해 상기 제2버스에 대해 동작하는 장치로 향하는 회답명령을 수신하고 단계를 더 포함한 것을 특징으로 하는 단일카피 캐시태그 캐시메모리 구조의 사용방법.
  13. 제12항에 있어서, 상기 제1버퍼수단 제공단계는,
    상기 제1 및 제2버퍼에 의해 버퍼된 상기 요청 및 회답명령을 수신하도록 결합된 지역 자료버스를 제공하는 단계와 ;
    상기 주메모리를 포함하며, 상기 제2버스에 대해 동작하는 장치로 상기 회답명령을 전송하고 상기 지역 자료버스를 상기 제2버스명령 모듈로 더욱이 결합하는 단계를 더 포함한 것을 특징으로 하는 단일카피 캐시태그 캐시메모리 구조의 사용방법.
  14. 제13항에 있어서, 상기 제2버퍼수단 제공단계는, 상기 주메모리를 포함하고, 상기 제2버스에 대해 동작하는 장치에 의해 상기 CPU 및 상기 CC로 향하는 상기 요청명령을 수신하도록 상기 제2버스명령모듈에 제3버퍼를 결합하는 단계를 더 포함한 것을 특징으로 하는 단일카피 캐시태그 캐시메모리 구조의 사용방법.
  15. 제14항에 있어서,
    상기 제1버퍼 제공단계는 2개의 10×65비트 레지스터 제공단계를 포함하고 ;
    상기 제2버퍼 제공단계는 3개의 10×65비트 레지스터 제공단계를 포함하고 ;
    상기 제3버퍼 제공단계는 10개의 73비트 레지스터 제공단계를 구비한 것을 특징으로 하는 단일카피 캐시태그 캐시메모리 구조의 사용방법.
  16. 제15항에 있어서, 상기 제1버스명령 모듈 제공단계는,
    상기 제1버스명령 모듈에 결합되어 상기 제1버스와 통신하는 제1버스 인터페이스 수단제공 단계 ;
    상기 제1버스에 결합되어 상기 제1버스에 대한 접근을 제어하는 제1버스중재 수단제공 단계 ; 및
    상기 제1버스와 상기 제 1 및 제2버스명령 모듈에 결합되어 상기 CPU로 향하는 상기 제1명령의 대기 시간을 감소시키는 가상버스 인터페이스 수단제공 단계를 더 포함하는 것을 특징으로 하는 단일카피 캐시태그 캐시메모리 구조의 사용방법.
  17. 제16항에 있어서, 상기 가상버스 인터페이스 수단제공 단계는,
    상기 제2버스명령 모듈에 결합된 제4버퍼를 제공하는 단계 ;
    상기 제2버스에 대해 동작하는 상기 장치에 의해 상기 CPU로 향하는 복수의 제1명령을 상기 제4버퍼에서 수신하는 단계 ; 및
    상기 CPU로 향하는 복수의 제1명령을 수신한후, 상기 제1버스의 제어가 상기 제1버스 중재 수단에 의해 상기 제1버스명령 모듈로 보장될때까지 상기 제4버퍼의 상기 제1명령을 버퍼하는 단계를 포함하고, 그에 따라 상기 제4버퍼는 상기 제1명령을 상기 CPU로 방향지정하는 것을 특징으로 하는 단일카피 캐시태그 캐시메모리 구조의 사용방법.
  18. 제17항에 있어서, 상기 가상버스 인터페이스 수단 제공단계는 9개의 107비트 레지스터 제공단계를 포함한 것을 특징으로 하는 단일카피 캐시태그 캐시메모리 구조의 사용방법.
  19. 제18항에 있어서, 우선-발생 캐시무효화 명령이 특별한 서브브럭에 자료를 중복 기록한 경우를 결정하는 캐시무효화 큐수단을 제공하는 단계 ;
    상기 캐시무효화 큐수단을 상기 캐시디렉토리에 결합하고 복수의 분배된 -접근 동작으로 향하는 서브블럭의 번지를 기억하는 단계 ;
    상기 캐시무효화 큐수단이 상기 제2버퍼 수단에 더 결합되는 단계와 ;
    상기 제2버퍼에서, 상기 분배된-접근 동작에 연관된 상기 제2버스에 대해 동작하는 복수의 수신지 장치의 번지를 기억하는 단계 ; 및
    상기 캐시무효화 큐수단과 상기 제2버퍼 수단에 결합되어 상기 캐시무효화 큐수단과 상기 제2버퍼 수단에서의 엔트리를 비교하는 정합 논리유닛을 제공하는 단계를 더 포함하고 ;
    상기 수신지 장치의 상기 번지가 상기 특별한 서브블럭의 상기 번디와 정합될 경우, 상기 캐시무효화 큐수단이 상기 분배된-접근 동작을 상기 수신지 장치로 완료하기전에 자료를 재판독하는 상기 캐시제어기를 상기 특별한 서브블럭으로 신호전송하는 것을 특징으로 하는 단일카피 캐시태그 캐시메모리 구조의 사용방법.
  20. 제19항에 있어서, 상기 캐시무효화 큐수단제공 단계는 제5버퍼를 제공하는 단계를 포함한 것을 특징으로 하는 단일카피 캐시태그 캐시메모리의 사용방법.
KR1019930006974A 1992-05-07 1993-04-26 다중처리기 컴퓨터시스템에서 캐시태그 메모리의 단일 카피를 사용하는 캐시일관성 개량장치 및 방법 KR100278035B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/879,611 US5398325A (en) 1992-05-07 1992-05-07 Methods and apparatus for improving cache consistency using a single copy of a cache tag memory in multiple processor computer systems
US879,611 1992-05-07

Publications (2)

Publication Number Publication Date
KR930023805A KR930023805A (ko) 1993-12-21
KR100278035B1 true KR100278035B1 (ko) 2001-01-15

Family

ID=25374500

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930006974A KR100278035B1 (ko) 1992-05-07 1993-04-26 다중처리기 컴퓨터시스템에서 캐시태그 메모리의 단일 카피를 사용하는 캐시일관성 개량장치 및 방법

Country Status (3)

Country Link
US (1) US5398325A (ko)
JP (1) JP3365433B2 (ko)
KR (1) KR100278035B1 (ko)

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5509122A (en) * 1992-02-20 1996-04-16 International Business Machines Corporation Configurable, recoverable parallel bus
US5502828A (en) * 1992-12-18 1996-03-26 Advanced Micro Devices, Inc. Reducing memory access in a multi-cache multiprocessing environment with each cache mapped into different areas of main memory to avoid contention
US5524233A (en) * 1993-03-31 1996-06-04 Intel Corporation Method and apparatus for controlling an external cache memory wherein the cache controller is responsive to an interagent communication for performing cache control operations
US5519847A (en) * 1993-06-30 1996-05-21 Intel Corporation Method of pipelining sequential writes in a flash memory
US5642486A (en) * 1993-07-15 1997-06-24 Unisys Corporation Invalidation queue with "bit-sliceability"
US5689680A (en) * 1993-07-15 1997-11-18 Unisys Corp. Cache memory system and method for accessing a coincident cache with a bit-sliced architecture
US5598551A (en) * 1993-07-16 1997-01-28 Unisys Corporation Cache invalidation sequence system utilizing odd and even invalidation queues with shorter invalidation cycles
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
US5526512A (en) * 1993-09-20 1996-06-11 International Business Machines Corporation Dynamic management of snoop granularity for a coherent asynchronous DMA cache
JPH0793219A (ja) * 1993-09-20 1995-04-07 Olympus Optical Co Ltd 情報処理装置
JPH0793216A (ja) * 1993-09-27 1995-04-07 Hitachi Ltd キャッシュ記憶制御装置
US5845310A (en) * 1993-12-15 1998-12-01 Hewlett-Packard Co. System and methods for performing cache latency diagnostics in scalable parallel processing architectures including calculating CPU idle time and counting number of cache misses
CA2148028A1 (en) * 1994-05-25 1995-11-26 Deborah L. Mcguinness Knowledge base management system with dependency information for procedural tests
JP3360933B2 (ja) * 1994-06-01 2003-01-07 富士通株式会社 情報処理システムにおける記憶制御方法および記憶制御装置
US5634043A (en) * 1994-08-25 1997-05-27 Intel Corporation Microprocessor point-to-point communication
US5809550A (en) * 1994-09-30 1998-09-15 Intel Corporation Method and apparatus for pushing a cacheable memory access operation onto a bus controller queue while determining if the cacheable memory access operation hits a cache
US5893147A (en) * 1994-12-22 1999-04-06 Intel Corporation Method and apparatus for distinguishing system memory data from alternative memory data in a shared cache memory
US5692153A (en) * 1995-03-16 1997-11-25 International Business Machines Corporation Method and system for verifying execution order within a multiprocessor data processing system
US5655100A (en) * 1995-03-31 1997-08-05 Sun Microsystems, Inc. Transaction activation processor for controlling memory transaction execution in a packet switched cache coherent multiprocessor system
US5657472A (en) * 1995-03-31 1997-08-12 Sun Microsystems, Inc. Memory transaction execution system and method for multiprocessor system having independent parallel transaction queues associated with each processor
US5737756A (en) * 1995-04-28 1998-04-07 Unisys Corporation Dual bus computer network using dual busses with dual spy modules enabling clearing of invalidation queue for processor with store through cache while providing retry cycles for incomplete accesses to invalidation queue
US5696937A (en) * 1995-04-28 1997-12-09 Unisys Corporation Cache controller utilizing a state machine for controlling invalidations in a network with dual system busses
US5787476A (en) 1995-05-05 1998-07-28 Silicon Graphics, Inc. System and method for maintaining coherency of virtual-to-physical memory translations in a multiprocessor computer
US5539878A (en) * 1995-06-16 1996-07-23 Elonex Technologies, Inc. Parallel testing of CPU cache and instruction units
US5778437A (en) * 1995-09-25 1998-07-07 International Business Machines Corporation Invalidation bus optimization for multiprocessors using directory-based cache coherence protocols in which an address of a line to be modified is placed on the invalidation bus simultaneously with sending a modify request to the directory
US6223260B1 (en) * 1996-01-25 2001-04-24 Unisys Corporation Multi-bus data processing system in which all data words in high level cache memories have any one of four states and all data words in low level cache memories have any one of three states
US5822755A (en) * 1996-01-25 1998-10-13 International Business Machines Corporation Dual usage memory selectively behaving as a victim cache for L1 cache or as a tag array for L2 cache
US5717900A (en) * 1996-01-26 1998-02-10 Unisys Corporation Adjusting priority cache access operations with multiple level priority states between a central processor and an invalidation queue
US5900020A (en) * 1996-06-27 1999-05-04 Sequent Computer Systems, Inc. Method and apparatus for maintaining an order of write operations by processors in a multiprocessor computer to maintain memory consistency
US5875469A (en) * 1996-08-26 1999-02-23 International Business Machines Corporation Apparatus and method of snooping processors and look-aside caches
US5809548A (en) * 1996-08-30 1998-09-15 International Business Machines Corporation System and method for zeroing pages with cache line invalidate instructions in an LRU system having data cache with time tags
US6049847A (en) * 1996-09-16 2000-04-11 Corollary, Inc. System and method for maintaining memory coherency in a computer system having multiple system buses
US5897656A (en) * 1996-09-16 1999-04-27 Corollary, Inc. System and method for maintaining memory coherency in a computer system having multiple system buses
US6631454B1 (en) * 1996-11-13 2003-10-07 Intel Corporation Processor and data cache with data storage unit and tag hit/miss logic operated at a first and second clock frequencies
US6052762A (en) * 1996-12-02 2000-04-18 International Business Machines Corp. Method and apparatus for reducing system snoop latency
US5809536A (en) * 1996-12-09 1998-09-15 Intel Corporation, Inc. Method for reducing the number of coherency cycles within a directory-based cache coherency memory system uitilizing a memory state cache
US5848434A (en) * 1996-12-09 1998-12-08 Intel Corporation Method and apparatus for caching state information within a directory-based coherency memory system
US6006309A (en) * 1996-12-16 1999-12-21 Bull Hn Information Systems Inc. Information block transfer management in a multiprocessor computer system employing private caches for individual center processor units and a shared cache
US5963973A (en) * 1996-12-16 1999-10-05 Bull Hn Information Systems Inc. Multiprocessor computer system incorporating method and apparatus for dynamically assigning ownership of changeable data
US5829029A (en) * 1996-12-18 1998-10-27 Bull Hn Information Systems Inc. Private cache miss and access management in a multiprocessor system with shared memory
US6018465A (en) * 1996-12-31 2000-01-25 Intel Corporation Apparatus for mounting a chip package to a chassis of a computer
US6137688A (en) * 1996-12-31 2000-10-24 Intel Corporation Apparatus for retrofit mounting a VLSI chip to a computer chassis for current supply
US5809514A (en) * 1997-02-26 1998-09-15 Texas Instruments Incorporated Microprocessor burst mode data transfer ordering circuitry and method
US6029204A (en) * 1997-03-13 2000-02-22 International Business Machines Corporation Precise synchronization mechanism for SMP system buses using tagged snoop operations to avoid retries
US6105112A (en) * 1997-04-14 2000-08-15 International Business Machines Corporation Dynamic folding of cache operations for multiple coherency-size systems
US6662216B1 (en) * 1997-04-14 2003-12-09 International Business Machines Corporation Fixed bus tags for SMP buses
US6145057A (en) * 1997-04-14 2000-11-07 International Business Machines Corporation Precise method and system for selecting an alternative cache entry for replacement in response to a conflict between cache operation requests
US6049849A (en) * 1997-04-14 2000-04-11 International Business Machines Corporation Imprecise method and system for selecting an alternative cache entry for replacement in response to a conflict between cache operation requests
US6073212A (en) * 1997-09-30 2000-06-06 Sun Microsystems, Inc. Reducing bandwidth and areas needed for non-inclusive memory hierarchy by using dual tags
EP1454253A4 (en) * 1997-12-19 2010-12-29 Bull Hn Information Syst SYSTEM FOR MANAGING LOST AND PRIVATE CACHING ACCESS IN A MULTIPROCESSOR COMPUTER SYSTEM EMPLOYING PRIVATE CACES FOR SHARED INDIVIDUAL AND SHARED CENTRAL CONTROL UNITS
US6622224B1 (en) * 1997-12-29 2003-09-16 Micron Technology, Inc. Internal buffered bus for a drum
US6170030B1 (en) * 1998-01-23 2001-01-02 Intel Corporation Method and apparatus for restreaming data that has been queued in a bus bridging device
US6163830A (en) * 1998-01-26 2000-12-19 Intel Corporation Method and apparatus to identify a storage device within a digital system
US6253291B1 (en) 1998-02-13 2001-06-26 Sun Microsystems, Inc. Method and apparatus for relaxing the FIFO ordering constraint for memory accesses in a multi-processor asynchronous cache system
US6336169B1 (en) * 1999-11-09 2002-01-01 International Business Machines Corporation Background kill system bus transaction to optimize coherency transactions on a multiprocessor system bus
US6493809B1 (en) 2000-01-28 2002-12-10 International Business Machines Corporation Maintaining order of write operations in a multiprocessor for memory consistency
US7099998B1 (en) * 2000-03-31 2006-08-29 Intel Corporation Method for reducing an importance level of a cache line
US6463506B1 (en) * 2000-04-29 2002-10-08 Hewlett-Packard Company Arrangement of data within cache lines so that tags are first data received
US6745369B1 (en) * 2000-06-12 2004-06-01 Altera Corporation Bus architecture for system on a chip
US7177211B2 (en) * 2003-11-13 2007-02-13 Intel Corporation Memory channel test fixture and method
US20050108481A1 (en) * 2003-11-17 2005-05-19 Iyengar Arun K. System and method for achieving strong data consistency
US20050228926A1 (en) * 2004-04-05 2005-10-13 Smith Zachary S Virtual-bus interface and associated system and method
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US9727468B2 (en) 2004-09-09 2017-08-08 Intel Corporation Resolving multi-core shared cache access conflicts
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US7689745B2 (en) * 2005-06-23 2010-03-30 Intel Corporation Mechanism for synchronizing controllers for enhanced platform power management
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
JP4373485B2 (ja) * 2006-02-28 2009-11-25 富士通株式会社 情報処理装置及び該制御方法
US8069294B2 (en) * 2006-03-30 2011-11-29 Intel Corporation Power-optimized frame synchronization for multiple USB controllers with non-uniform frame rates
US8631203B2 (en) * 2007-12-10 2014-01-14 Microsoft Corporation Management of external memory functioning as virtual cache
US9032151B2 (en) * 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US8032707B2 (en) 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
GB2521227B (en) * 2013-12-16 2020-11-25 Advanced Risc Mach Ltd Invalidation of index items for a temporary data store

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5148536A (en) * 1988-07-25 1992-09-15 Digital Equipment Corporation Pipeline having an integral cache which processes cache misses and loads data in parallel
US5201041A (en) * 1988-12-29 1993-04-06 International Business Machines Corporation Cache bypass apparatus
US5222223A (en) * 1989-02-03 1993-06-22 Digital Equipment Corporation Method and apparatus for ordering and queueing multiple memory requests
JPH03219345A (ja) * 1990-01-25 1991-09-26 Toshiba Corp 多ポートキャッシュメモリ制御装置
US5265233A (en) * 1991-05-17 1993-11-23 Sun Microsystems, Inc. Method and apparatus for providing total and partial store ordering for a memory in multi-processor system

Also Published As

Publication number Publication date
JPH06131263A (ja) 1994-05-13
KR930023805A (ko) 1993-12-21
US5398325A (en) 1995-03-14
JP3365433B2 (ja) 2003-01-14

Similar Documents

Publication Publication Date Title
KR100278035B1 (ko) 다중처리기 컴퓨터시스템에서 캐시태그 메모리의 단일 카피를 사용하는 캐시일관성 개량장치 및 방법
EP0568231B1 (en) Methods and apparatus for providing multiple outstanding operations in a cache consistent multiple processor computer system
US5537575A (en) System for handling cache memory victim data which transfers data from cache to the interface while CPU performs a cache lookup using cache status information
US5642494A (en) Cache memory with reduced request-blocking
US7047374B2 (en) Memory read/write reordering
US5247648A (en) Maintaining data coherency between a central cache, an I/O cache and a memory
US5263142A (en) Input/output cache with mapped pages allocated for caching direct (virtual) memory access input/output data based on type of I/O devices
JP3765586B2 (ja) 多重プロセッサコンピューターシステムのアーキテクチャ
EP0817073B1 (en) A multiprocessing system configured to perform efficient write operations
US5870625A (en) Non-blocking memory write/read mechanism by combining two pending commands write and read in buffer and executing the combined command in advance of other pending command
EP0834816B1 (en) Microprocessor architecture capable of supporting multiple heterogenous processors
US7281092B2 (en) System and method of managing cache hierarchies with adaptive mechanisms
US7284102B2 (en) System and method of re-ordering store operations within a processor
US5893153A (en) Method and apparatus for preventing a race condition and maintaining cache coherency in a processor with integrated cache memory and input/output control
US6453388B1 (en) Computer system having a bus interface unit for prefetching data from system memory
EP0598535A1 (en) Pending write-back controller for a cache controller coupled to a packet switched memory bus
US6993630B1 (en) Data pre-fetch system and method for a cache memory
US5765196A (en) System and method for servicing copyback requests in a multiprocessor system with a shared memory
US5909697A (en) Reducing cache misses by snarfing writebacks in non-inclusive memory systems
US5269009A (en) Processor system with improved memory transfer means
US5446844A (en) Peripheral memory interface controller as a cache for a large data processing system
US20080307169A1 (en) Method, Apparatus, System and Program Product Supporting Improved Access Latency for a Sectored Directory
US5815675A (en) Method and apparatus for direct access to main memory by an I/O bus
US6553473B1 (en) Byte-wise tracking on write allocate
US5701422A (en) Method for ensuring cycle ordering requirements within a hierarchical bus system including split-transaction buses

Legal Events

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

Payment date: 20061011

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee