KR100274327B1 - 캐시가 일관된 다중 처리기 컴퓨터 시스템에서 다중 미결동작을 제공하기 위한 장치 및 그 방법 - Google Patents

캐시가 일관된 다중 처리기 컴퓨터 시스템에서 다중 미결동작을 제공하기 위한 장치 및 그 방법 Download PDF

Info

Publication number
KR100274327B1
KR100274327B1 KR1019930007171A KR930007171A KR100274327B1 KR 100274327 B1 KR100274327 B1 KR 100274327B1 KR 1019930007171 A KR1019930007171 A KR 1019930007171A KR 930007171 A KR930007171 A KR 930007171A KR 100274327 B1 KR100274327 B1 KR 100274327B1
Authority
KR
South Korea
Prior art keywords
cache
subblock
cpu
miss
block
Prior art date
Application number
KR1019930007171A
Other languages
English (en)
Other versions
KR930022222A (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 KR930022222A publication Critical patent/KR930022222A/ko
Application granted granted Critical
Publication of KR100274327B1 publication Critical patent/KR100274327B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch

Landscapes

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

Abstract

고성능 CPU를 지원하는 캐시메모리 구조에서 캐시 일관성을 유지하고, 다른 미결동작을 제공하는 캐시 제어기에 대한 장치 및 방법이 개시된다.
외부 캐시어레이가 CPU와 캐시제어기(CC) 둘 모두에 접속되며, 미스 비율을 줄이기 위해 서브블록화된다. 캐시제어기는 고속의 버스를 통해 주기억 장치에 접속된다. 캐시 제어기내의 캐시 디렉토리는 외부 캐시의 이용을 추적하며, 캐시 제어기를 주기억 장치에 상호 접속시키는 버스에 대해서 버스 프로토콜의 선택을 지원하도록 구성된다.
캐시 디렉토리는 태그 엔트리로 구성되며, 각 태그 엔트리는 어드레스 필드와 각 서브블록당 1상태 비트 필드씩 다중 상태 비트 필드를 구비한다.
공유- 비트, 소유- 비트, 타당-비트를 추가해서 상태 비트 필드는 설정시 서브블록 상에서 대기중인 완결되지 않는 미결 동작을 표시하는 대기- 비트를 구비하며, CPU 로 하여금 해당 서브블록을 중복 기재하는 것을 방지한다.
CPU 내의 2개의 블록 미스 레지스터는 서브블록 미스시 일련의 서브블록을 프리페치하는데 도움을 준다. 블록 미스 레지스터는 대기하는 것으로 알려져 있지만 실제 설정된 대기-비트에 의해서는 식별되지 않은 동작을 추가로 식별한다. 하나의 블록 미스 레지스터는 판독시 미스를 식별하고 나머지 하나의 블록 미스 레지스터는 기록시 미스를 판독한다. 캐시 제어기내 I/O 계수 레지스터는 미결이지만 아직 완결되지 못한 I/O 기록동작의 수를 추적하며 I/O 버스 및 버퍼공간의 포화를 방지한다. 모든 미결의 기록동작은 단일 레지스터를 이용하여 추적될수 있다. 캐시 제어기는 캐시제어기로부터 CPU로 보내진 PEND 신호를 지원하여 CPU에 대하여 미결의 기록 동작이 존재함을 알려주며, 다중 처리환경내에서 기억순서를 유지시킨다.

Description

캐시가 일관된 다중 처리기 컴퓨터 시스템에서 다중 미결동작을 제공하기 위한 장치 및 그 방법
제1도는 본발명의 가르침을 담고있는 외부캐시메모리 및 캐시제어기의 전체 블록도이며,
제2도는 캐시제어기의 기능적 블록도이며,
제2a도는 캐시제어기내의 다중 처리기 버스 인터페이스와 제어장치의 기능적 블록도이며,
제3도는 색인에 의해 선택된 예시적인 디렉토리 엔트리를 보여주는 외부 캐시 디렉토리의 기능적 블록도이며,
제4도는 캐시 액세스 동작의 예시적인 시켄스를 보여주는 타임라인이며,
제5도는 캐시 액세스 동작의 예시적인 시켄스를 보여주는 동작흐름도이다.
[기술분야]
본발명은 컴퓨터 시스템과 관련 캐시메모리 구조에 관한 것이다. 좀더 상세히는 다중 오버래핑 캐시 액세스 동작을 허용하는 캐시 제어기와 관련 레지스터에 관한 것이다.
[배경기술]
통상 컴퓨터 시스템내의 중앙처리장치(CPU) 는 주기억장치 보다 훨씬 빠른 속도로 동작한다. 따라서 CPU가 주기억장치가 제공하는 명령보다 더 빠르게 명령을 수행할때 이 CPU 는 명령이 수행될 다음 명령 데이타가 이용가능할때까지 유휴상태가 있어야만 한다.
큰 용량의 주기억장치로부터 데이타 혹은 명령을 기다리며 과도한 CPU 유휴시간을 배제하기 위해 주기억 장치보다 더 빠른 속도로 동작할수 있는 저용량의 캐시 메모리가 주기억장치와 CPU사이에서 데이타와 명령을 버퍼를 위해 종종 이용되고 있다.
주기억장치의 메모리 위치내의 데이타 및 명령은 블록 프레임 형태로 캐시메모리 내로 사상된다. 각 블록 프레임은 이 블록과 관련된 데이타와 명령을 기억하고 있는 메모리 위치에 해당 블록 오프셋으로 구성된다.
전체적인 CPU의 성능을 더욱 향상시키기 위해 어떤 컴퓨터 시스템은 데이타와 명령에 각각 하나씩인 분리된 캐시 메모리를 채용한다.
그러나 이러한 분리 캐시 메모리를 이용해서는 상기 성능문제를 완전히 해결할수는 없었다.
캐시 판독 "미스(miss)" 가 발생할때, 즉 CPU에 의해 요구되는 데이타나 명령이 캐시 메모리내에 없을때 캐시메모리는 주기억장치로부터 데이타와 명령을 검색해만 한다. 이렇게 하기 위해서는 통상 요구된 데이타나 명령을 포함해서 모든 데이타와 명령어의 블록 프레임을 검색해야하고 따라서 CPU는 전체 블록 프레임의 검색이 끝날때까지 유휴상태에 있게 된다.
한편 예를들어, J.L. Hennessy 와 D.A. Patterson의 "컴퓨터 아키텍쳐-정량적 접근(Computer Architecture - A Quantitative Approach)" (pp. 454-61, Morgan Kaufmann, 1990)를 참조해보면 또다른 많은 캐시 성능 문제 및 그 향상 기술이 존재함을 알수 있다.
대체 블록 프레임을 이용해서 캐시 메모리를 채우는데 필요한 시간은 블록크기와 캐시 메모리-주기억장치 계층간의 전송속도에 의존한다.
예를들어, 블록크기가 8 단어이고 주기억장치의 속도가 3클록 사이클당 2단어일 경우 대체 블록프레임으로서 캐시 메모리를 채우는데는 11 클록 사이클이 소요된다.
그러나 캐시판독미스가 발생할때 블록 프레임을 줄이거나 불완전한 블록을 채움으로써 항상 CPU의 유휴시간을 줄일수 있는 것은 아닌데 그 이유는 더 작은 블록크기가 앞으로의 캐시 판독미스를 증가시키기 때문이다.
캐시판독미스가 발생하여 캐시 메모리를 위해 대기하고 있는 CPU의 유휴시간과 주기억장치의 액세스의 완결을 위해 대기하고 있는 호출시간을 줄이기 위해 여러가지 기술이 이용되어 오고 있다.
한가지 관행이 "조기 재시작(early restart)"; 즉, 주기억장치로 부터 요구된 데이타 또는 명령이 캐시내에 도착하자마자 이들을 완결될 전체블록의 검색을 위해 대기하는 일없이 CPU로 보내는 것이다.
이러한 조기 재시작을 이용함으로써 CPU는 대기된 명령을 수신하자마자 명령의 실행을 개시하며 한편 대체 블록 프레임의 나머지가 주기억장치로부터 캐시로 기록된다.
조기 재시작 기술의 또다른 향상은 주기억 장치로 요구가 만들어져서 요구된 데이타나 명령을 우선 검색하고 대체 블록 프레임내의 요구된 데이타 혹은 명령 전에 모든 데이타 혹은 명령을 스킵하는 "순서외 인출(out of order fetch)" 기술이다. 조기 재시작의 경우와 같이 검색되자마자 순서외 인출에 의해 검색된 데이타나 명령은 CPU로 보내지며 CPU는 대체 블록 프레임의 나머지가 검색되고 있는 중에 실행을 개시한다.
요구된 데이타 혹은 명령을 검색한후 주기억장치는 대체 블록프레임내의 남아있는 데이타와 명령을 요구된 데이타나 명령후의 데이타와 명령부터 계속해서 검색한다. 그후 주기억장치는 블록 프레임의 시작 주위에서 순환되어 전체 블록 프레임이 캐시로 기록될때까지 앞서의 스킵된 데이타와 명령을 검색한다.
따라서 CPU는 제1 데이타나 명령이 주기억 장치로부터 검색되자마자 실행을 개시할수 있다.
통상의 캐시 메모리는 동일 클록 사이클내에서는 그들에 대항해서 실행되는 판독 및 기록동작을 허용하지 않는다.
따라서, 대체 블록 프레임의 나머지를 채우면서 CPU로부터 또다른 요구에 응답하는 캐시는 금방 복잡해진다. 그 결과 CPU는 데이타나 명령이 실행된후 또다시 유휴상태에 있게되며 남아있는 검색이 완결될때까지 대기하게 된다.
비록 CPU에 의해 요구된 일련의 데이타나 명령이 이미 캐시메모리내에 존재할지라도 CPU 는 검색될 남아있는 데이타나 명령을 대기하며 유휴상태에 있게 된다.
따라서 조기 재시작과 순서의 인출로부터의 장점들이 CPU가 대체 블록 프레이의 나머지가 기록되기전에 그 실행을 완결하게되는 경우에는 제한된다.
이것은 통상의 명령을 실행하는데 요구되는 클록 사이클 수가 작을 경우, 예를들어 RISC(reduced instruction set computing) 축소 명령세트 연산] 컴퓨터인 경우 컴퓨터 시스템내에서 특히 발생하기 쉽다.
그러나 좀더 근대적인 캐시 메모리 구조는 동일 클록사이클내에서 그들이 대항해서 수행될 판독 및 기록동작을 허용한다.
따라서 캐시미스(특히 CPU 유휴시간) 에 관련된 단점을 더욱 줄이게 되며 캐시와 전체 시스템 성능을 향상시킨다. 예를들어, 캐시 메모리내에 존재하는 데이타와 명령에 대한 일련의 요구들이 제2 반주기동안 만족될 수 있다.
문제는 언제 데이타나 명령이 캐시메모리내에 존재하는 가를 결정하고 실제 하드웨어를 추가로 제공하는 일없이 그들의 전송을 반주기 동안 캐시메모리로부터 CPU로 동기화 시키는 것이다. 마찬가지로 동일한 문제가 주기억 장치로 부터 데이타나 명령에 대한 일련의 요구를 만족시키는데 있어 존재한다.
더욱이 최근들어 다른 처리기를 구비한 컴퓨터 시스템이 보편화되고 있다.
다중 처리기 시스템에서 몇몇 처리기의 일부 혹은 전체가 판독이나 기록목적으로 캐시내에 기억된 블록 프레임의 액세스를 동시에 시도할수 있으며 컴퓨터 시스템 내에서 데이타가 여러 소오스나 수신지 쪽으로 혹은 부터 경로가 지정되도록 지시할수 있다. 다중 처리기 시스템에서 적절한 시스템 동작은 캐시내에 기억된 데이타를 임의의 처리기가 캐시에 기억된 데이타를 액세스한 변경하는 해당 처리기와 적절히 대응시키는 가에 달려있다.
적정 처리기에 대한 데이타의 대응성은 "캐시 일관성(cache consistency)"라 일컫는다.
따라서 CPU의 유휴시간과 주기억 장치로의 액세스간의 대기시간과 요구된 명령 혹은 데이타의 전달을 더욱 줄이는 고성능 CPU 에서와 실제 동일하게 중첩연산 중에 다글 판독 및 기록동작을 허용하기 위해 캐시메모리를 제어하는 새로운 접근방법이 소망된다.
또한 캐시 제어기와 관련 제어 레지스터를 구현하는데 필요가 하드웨어를 줄이는 것이 요구된다.
앞으로의 상세한 설명에서 자세히 설명되겠지만, 이러한 목적 및 소망되는 결과는 종래 기술의 단점을 극복한 본발명의 목적 및 소망되는 결과중에 있게 된다.
따라서 다중 처리기 컴퓨터 시스템에 대한 데이타를 인출하고 다중의 미결 연산을 지원함으로써 CPU의 유휴시간을 줄이는 캐시메모리를 구현하기 위한 캐시메모리 제어기 및 그 방법을 개시한다.
[발명의 개요]
고성능 중앙처리장치(CPU) 를 지원하는 캐시 메모리 구조내에서 캐시 제어기가 다중의 미결 연산을 제공하고 캐시 일관성을 유지하도록 하기 위한 장치 및 그 방법에 관한 것이다.
CPU 는 내부 캐시 메모리 구조를 포함한다.
적정수의 블록을 갖는 실제 더 큰 용량의 외부 캐시어레이가 고속 통합 어드레스와 데이타 버스(CPU 버스) 를 통해 CPU와 캐시제어기(CC) 모두에 접속된다.
캐시 제어기는 차례대로 다중 처리기 시스템을 형성하는 제2 고속버스(MP 버스) 상호접속처리기, 캐시제어기, I/O 장치 및 메모리장치에 접속된다.
외부 캐시는 서브 블록화되어 블록당 4서브블록을 제공함으로서 캐시 디렉토리의 크기를 줄이게 된다.
캐시제어기내 캐시 디렉토리는 외부 캐시의 이용을 추적하며, 캐시메모리를 주기억장치에 상호접속시키는 버스에 대해서 버스 프로토클의 선택을 지원하도록 구성된다. 캐시 디렉토리는 어드레스 필드과 각 서브블록에 대해 1상태 비트 필드를 갖는 다중 상태 비트 필드를 각각 구비하는 태그 엔트리로 구성된다.
태그 엔트리의 어드레스 필드는 캐시 메모리의 블록에 대해 물리적 어드레스 태그를 포함한다. 각 상태 비트 필드는 공유- 비트(shared-bit), 소유-비트(owner-bit), 및 타당-비트(valid-bit) 를 갖는다. 또한 각 상태 비트 필드는 설정될때 서브 블록상에서 보류중인 완결되지 않는 미결의 연산을 표시하는 보류-비트(pending-bit)를 갖는다. 설정된 보류-비트는 CPU가 해당 서브블록내에 기억된 데이타를 액세스 하는 것을 방지하게 된다.
캐시 디렉토리내에서 엔트리로의 액세스는 CPU의 물리적 어드레스에 포함된 색인 필드를 통해 이루어진다. CPU 의 물리적 어드레스는 또한 물리적 어드레스 태그 필드, 서브블록 색인, 및 서브블록 오프셋 필드를 구비한다.
캐시 디렉토리내에 각 엔트리를 독특하게 액세스하도록 색인에는 충분한 비트가 제공된다.
한쌍의 블록 미스 레지스터는 대기는 하지만 설정된 서브블록 대기-비트에 의해 특별하게 식별되지는 않는 것으로 알려진 연산의 식별을 용이하게 된다.
하나의 블록 미스 레지스터가 판독시 미스를 식별하는 한편 나머지 하나의 블록 미스 레지스터는 기록시 미스를 식별한다.
각 블록 미스 레지스터는 물리적 어드레스 태그와 캐시 디렉토리 색인 모두를 기억하도록 크기가 정해진다.
본발명의 캐시 제어기는 요구되어 프리페치된 서브블록에 대해 도착 순서를 부여하지는 않는다. 블록 미스가 발생하면 캐시 제어기는 그 다음 일련의 서브 블록은 프리페치하여 그후 물리적 어드레스 태그와 캐시 색인이 블록 미스 레지스터 내로 로드된다. 또한 캐시 제어기는 블록 미스와 프리페치 동작으로 인해 발생한 서브블록 둘 모두에 대해 대기 비트를 설정한다.
검색된 제1 서브블록이 도착하면 이 서브블록과 관련된 어드레스 태그는 캐시 디렉토리내 어드레스 태그 필드내의 어드레스와는 매치되지 않는다.
그러나 서브블록에 대한 어드레스는 블록 미스 레지스터내에 기억된 어드레스와는 매치된다. 따라서 블록에 대한 모든 서브블록의 타당-비트는 클리어되며, 어드레스 태그는 갱신되고, 데이타를 갖는 적당한 서브블록에 대해서만 타당-비트가 설정되며 대기-비트가 클리어된다.
검색될 제2 서브블록이 도착하면 이 서브블록에 대한 캐시 디렉토리내 어드레스 태그 필드내의 어드레스와 매치되며, 그후 데이타를 갖는 그 서브블록에 대한 타당-비트는 설정되고 대응하는 대기-비트는 클리어된다.
만약 검색된 서브블록에 대한 어드레스가 블록 미스 레지스터내에 기억된 어드레스 혹은 캐시 디렉토리내의 어드레스 태그 필드와 매치되지 않는다면 에러조작을 위해 에러는 운영체계로 플래그된다.
캐시 제어기내 I/O 계수 레지스터는 아직 완결되지 않은 미결의 I/O 기록연산의 수를 추적하여 I/O 버스와 시스템 버퍼 공간의 포화를 방지한다.
모든 미결의 기록연산은 단일 레지스터를 이용해서 추적될수 있다.
물리적 I/O 장치는 개별 페이지에 각 I/O 장치가 할당됨으로서 I/O 페이지에 할당된다. 미결의 I/O 동작은 커런트(current) I/O 페이지에 한정된다.
커런트 페이지가 아닌 I/O 페이지에 대해 발해진 I/O 동작은 개시전에 커런트 페이지에 대한 모든 미결의 동작이 완결될때까지 대기해야 한다.
캐시 제어기는 I/O 장치에 대해 I/O 연산을 발할때 I/O 계수 레지스터를 증가시키며 I/O 동작이 완결되었다는 사실이 캐시 제어기에 의해 수신될때 I/O 계수 레지스터를 감소시킨다. 만약 커런트 페이지가 아닌 I/O 페이지에 할당된 I/O 장치에 I/O 동작이 액세스를 시도한다면 그후 CPU는 커런트 I/O 페이지에 대한 I/O 계수가 영이될때까지 I/O 동작을 재시도하게 된다. I/O 계수 레지스터에서 이용가능한 최대계수 및 설계, 즉 비록 캐시 제어기에 대해서는 내부적이지만 어떠한 외부캐시 배열이든 캐시제어기와 I/O 버스간의 버퍼공간의 적당한 설계에 필요한 최대 I/O 계수를 알아야만 한다.
외부버스 감시자 장치에 접속된 I/O 페이지 어드레스 레지스터는 미결의 I/O 동작과 관련된 페이지 어드레스를 추적하며, I/O 동작이 I/O 페이지에 대해 실패했다는 타임 아웃 표시를 말한다.
개별 페이지 어드레스가 각 I/O 장치에 할당되는 이유로 인해 어떠한 I/O 장치에 의해서 보내진 타임- 아웃이든지 I/O 장치에 할당된 I/O 페이지에 기록된다.
마찬가지로 공유 기록 계수 레지스터는 주기억 장치에 기록된 캐시기능 데이타에 대해 미결인 미결기록동작의 수를 추적하는 것을 허용한다.
캐시 제어기는 또한 캐시제어기로부터 CPU로 보내진 PEND 신호를 지원해서 다중 처리기 환경내에는 미결의 기록동작이 존재함을 표시한다.
PEND신호를 지원하는 것은 CPU로 하여금 일련의 I/O 기록동작에 대해 총 기억순서 혹은 부분기억순서를 구현하는 것을 허용한다.
PEND 신호를 표명하는 것은 순서적으로 발한 기록동작을 포함하여 이미 발한 기록 동작의 완결은 기다리는 것이다.
그에 따라 완벽한 성능은 줄어들지만 기억순서는 유지된다.
고성능 중앙처리장치(CPU) 를 지원하는 캐시메모리 구조에서 캐시 제어기가 캐시 일관성을 유지하고 다중의 미결 연산을 제공하기 위한 장치 및 그 방법이 개시 된다. 아래의 설명중에 설명의 목적으로 특정 수, 시간, 신호등이 본발명의 완벽한 이해를 제공하기 위해 제공된다.
그러나 당업자라면 이러한 상세없이도 본발명을 실시할수 있음은 명백한다.
어떤 경우에는 본발명을 불필요하게 모호하게 하지 않기 위해서 공지의 회로 및 장치가 블록 다이어그램 형태로 도시된다.
제1 도를 참조하면, 다중처리기 고성능 컴퓨터시스템에서 본발명의 가르침을 담고 있는 캐시제어기 및 외부캐시메모리의 전체 블록도가 도시된다.
CPU(2)는 CPU버스(4) 를 통해서 외부캐시배열(5) 에 상호 접속된다.
캐시 배열(5) 는 캐시 제어기(6)에 의해 제어되며, 여기서 CPU(2), CPU버스(4), 캐시배열(5) 및 캐시제어기(6) 는 처리기 모듈(10)을 형성한다.
처리기모듈(10)은 차례대로 다중 처리기 버스(MP 버스)(8)을 통해서 주기억 장치 배열(9)과 다른 처리기 모듈(10)에 상호 접속된다.
내부 캐시배열(3)은 CPU(2) 에 대해서 칩위에 집적된 캐시구조(intergrated on-chip cache structure) 이며, 외부 캐시배열(5) 에 비해 실제 더 작은 크기이다.
그러나 본발명은 외부 캐시배열(5) 을 형성하는 메모리 장치와 주기억장치(9) 에 대해서 어떤 특정한 속도를 요구하지 않기 때문에 외부 캐시배열(5) 을 형성하는 메모리장치는 주기억장치(9) 를 형성하는 구성요소 보다 더 작고 빠르다고 일반적으로 가정한다. CPU 버스(4) 는 고성능 처리기에 적합한 임의 형태라고 가정되지만 본발명의 경우에 있어서는 특정 처리기 아키텍쳐, 즉 캘리포니아주 마운틴 뷔우에 소재한 선 마이크로시스템즈사에 의해 설계된 바이킹(Viking) 처리기와 최적으로 동작한다고 가정한다.
제2 도에는 캐시제어기(6) 의 블록도가 도시된다.
CPU 버스(4) 는 CPU버스 인터페이스 및 제어장치(11)에 접속되며, 이 장치는 내부 아비터(도시안됨) 에 따라 CPU 버스(4) 로의 액세스를 제어한다.
CPU 버스 인터페이스 및 제어장치(11)는 CPU 명령모듈(13)과 MP 명령 모듈(12)과 2-웨이 통신방식으로 접속된다. MP 명령모듈(12)은 버스요구와 응답을 처리하며, 어떤 경우에는 버스(8) 로 부터 보내진 탐지 요구를 처리한다.
CPU 명령모듈(13)은 처리시(2) 로부터 도래하는 모든 명령을 처리하며, 만약 필요하다면 처리기(2) 로 하여금 버스(8) 를 제어하도록 허용하는 적절한 명령을 발생한다. 캐시 디렉토리(15)는 국부적인 내부캐시 디렉토리버스(15a)를 통해 MP명령 모듈(12)과 CPU 명령모듈에 상호 접속된다.
캐시 디렉토리에 관해선 아래에서 자세히 설명한다.
제2a도를 잠시 살펴보면 좀더 자세히 도시된 CPU버스 인터페이스 및 제어장치(11)가 보여진다.
CPU버스 인터페이스 및 제어장치(11)는 버스(4) 로부터 신호를 송수신하기 위한 모든 드라이버, 수신기, 및 래치를 포함하는 CPU버스 입/출(I/O) 프레임장치(21)로 이루어진다. CPU 버스 인터페이스 및 제어장치(11)는 또한 가상버스 인터페이스(22), CPU 버스아비터(23)및 CPU버스 인터페이스(24)를 포함한다.
가상버스 인터페이스(22)는 MP 명령모듈(12)로 하여금 아비트레이션을 요구함이 없이 외부 캐시배열(5)(제1 도에 도시됨) 에 자유롭게 기록되는 것을 허용한다.
또한 가상버스 인터페이스(22)는 계속해서 자유로운 CPU버스(4) 에 대해 허상을 제공하며 MP 명령 모듈(12)이 CPU버스(4) 아비트레이션 프로토콜과 관련된 복잡함을 다루는 것을 덜어준다. 바람직한 서브블록에서 가상버스 인터페이스(22)는 MP 명령모듈(12)로 부터 가상버스 인터페이스(22)에 의해 만들어진 9사이클의 CPU 버스(4) 액세스를 버퍼-업 하기 위해 9×107 비트 버퍼를 구비한다.
CPU 버스 아비터(23)는 CPU버스(4) 로의 액세스에 대한 요구를 제어하고 받아들인다. CPU 버스 아비터(23)는 또한 버스(4) 에 대해 이용되는 버스 프로토콜을 제어한다. 마지막으로 CPU버스 인터페이스(24)는 신호들을 캐시제어기(6) 내 다른 장치로 전달하기전에 버스(4) 로부터 수신된 모든 입력신호를 내부적으로 래치한다.
도시되고 있지는 않지만 바람직한 서브블록에서 캐시 제어기(6) 는 2개의 상이한 클록 주파수를 지원한다. 특히 바람직한 서브블록에서 CPU버스(4) 는 고성능 처리기(2) 의 고속데이타 전달속도에 맞추기 위해서 MP버스(8) 보다 더 높은 주파수에서 동작한다. 한쌍의 버퍼(16,17) 는 CPU버스(4) 상에서 동작하는 CPU(2) 와 MP 버스(8) 상에서 동작하는 장치간의 통신을 가능하게 한다.
버퍼(16,17) 는 2중-포트 레지스터 파일이 구현된 선입 선출(first-in-first-out)장치이며 두개의 클록 도메인 사이에서 동작한다.
MP버스 인터페이스 및 제어장치(19)는 버퍼(16,17) 에 상호 접속되며, MP버스(8) 을 통해 캐시제어기(6) 에 상호 접속된 외부 장치와의 데이타 통신을 제어한다.
MP버스 인터페이스 및 제어장치(19)는 CPU버스 인터페이스 및 제어장치(11)에 의해 수행되는 기능과 유사한 기능을 수행한다.
이 장치(19)는 아비터( 도시안됨), 버스 인터페이스장치( 도시안됨), 캐시제어기(6) 로부터의 신호를 버스(8) 에 의해 상호 접속된 장치로 신호를 송수신하는데 필요한 드라이버 및 수신기( 도시안됨) 및 특히 주기억장치(9) 를 포함한다.
버스 인터페이스 및 제어장치(19)에 관한 여기서 설명되지 않은 특징들은 본 기술분야에서 널리 알려져 있으므로 더 이상의 논의를 요하지 않는다.
제1,2, 및 2a 도를 참조해서 설명되겠지만 캐시제어기(6)는 다른 처리기(12)를 포함하는 컴퓨터 시스템의 외부 캐시배열(5) 을 제어한다.
또한 캐시제어기(6) 는 다중 처리기들 간의 통신 인터페이스와 컴퓨터 시스템의 균형을 제공한다. 캐시제어기(6) 는 외부캐시 메모리 구조를 이용하는 두개의 상이할 버스상호접속을 지원한다. M 버스-베이스드 시스템에서 캐시제어기(6) 는 M 버스( 제1 도 및 제2 도에서 버스(8) 로 도시됨) 에 직접 접속된다.
대신에 다이나버스-베이스드(Dynalbus-based) 시스템에서는 캐시 제어기(6) 는 X버스 구성에 접속된다.
외부 캐시 배열의 크기는 M버스 배열에서 보다는 다이나버스 배열에서 더 큰데, 그 이유는 더큰 서브블록 크기를 이용하기 때문이다.
그러나 본발명의 속성은 선택되는 버스 시스템에는 상관이 없으며 앞으로의 설명에서도 M버스 구성과 다이나버스 구성사이에는 아무런 구별이 없다.
또한 제1,2 및 2a 도에 관련해서 설명되었지만 외부캐시배열(5) 은 직접-사상(diret-map)캐시로서 구성된다. 그 크기는 1메가바이트(MB)이며 다이나버스-베이스드 시스템인 경우에는 선택적으로 2MB 가 된다.
또한 캐시의 구성은 그 크기와 서브블록크기를 제외하고 버스 구현에 있어서는 동일하므로 앞으로의 설명에서 1MB캐시 구조를 사용한다.
바람직한 서브블록에서 1MB캐시를 구현하기 위해서는 8개의 128K ×9 (혹은 128K ×8) 스태택 랜덤 액세스 메모리(SRAM)칩을 이용한다.
캐시 제어기(6) 내의 캐시 디렉토리(15)의 크기를 줄이기 위해 서브브로킹이 이용된다. 서브브로킹은 큰 블록의 큰 미스 페널티를 극복하고 또한 작은 캐시 디렉토리 구조에서 태그 기억 요구를 줄이기 위해 개발되었다.
현재 바람직한 것으로는 서브블록 크기는 M버스-베이스드 시스템에 대해서 32-바이트(B)이다. 서브블록 기저상에서 기억된 데이타는 전달되며, 캐시 일관성 프로토콜은 유리된다. 또한 캐시제어기(6) 는 상기 언급된 "다중 처리기 컴퓨터 시스템내에 다중 미결 동작을 지원하면서 태그 메모리의 싱글 카피를 이용해서 캐시 일관성을 유지를 향상시키기 위한 장치 및 방법(Methods and Apparatus for Improving Maintaining Cashe Consistency Using a Single Copy of a Tag Memory While Supporting Multiple Outstanding Operations in a Multiple Processor Computer System)"란 제목의 미국 특허출원에 개시된 가르침에 따라 싱글-카피 캐시 태그 디렉토리를 포함한다.
아래에서 더욱 자세히 설명하겠지만 본발명의 가르침을 포함하는 캐시 제어기(6)는 버스(4) 를 캐시제어기(6) 에 상호 접속된 처리기(2) 로부터 외부 캐시 배열로의 파이프라인된 액세스를 지원할수 있다.
본 바람직한 서브블록에서 판독 및 기록동작에 있엇 명령 사이클당 1더블워드(DW)의 피크 데이타 전송 속도가 예상된다.
판독(혹은 기록) 액세스가 미스의 결과를 낳으면, 즉 발견된 데이타 혹은 명령이 캐시 배열(4) 내에 기억된 블록내에 있지 못하면, 처리기(2)는 또다른 미스가 발생할때까지 계속해서 기록(또는 판독) 동작에 대한 캐시 배열을 액세스할수 있다.
제3 도를 살펴보면, 좀더 자세한 캐시 디렉토리(15)가 도시된다.
캐시 디렉토리(15)는 당해 기술에서 공지되어 있는 바와같이 다수의 태그 엔드리(30)를 구비하여 일반적으로 구성되며 캐시 배열(5) 내의 각 블록에 대해 1 엔트리씩 존재한다.
앞서 설명한 바와같이 바람직한 서브블록에서 캐시 배열(5) 은 명목상 8K 블록으로 구성되며 각각은 그 크기가 128B 이다.
그러므로 캐시 디렉토리(15)도 마찬가지로 8K 태그 엔트리(30)를 구비한다.
각 태그 엔트리(30)는 어드레스 태그(31)와 다수의 상태 비트 필드(32)로 구성된다. 어드레스 태그(31)는 엔트리(30)에 의해 식별된 특정 블록에 의해 참조된 데이타에 대해 전체 물리적 어드레스를 기억하지만 색인 비트를 기억하지는 못한다.
상태 비트 필드(32)는 엔트리(30)에 의해 참조되는 블록내에 존재하는 서브블록에 해당한다. 특히 블록을 구성하는 각 서브블록에 대해 1상태 비트 필드(32)가 존재하며, 그 블록에는 몇몇 서브블록을 식별하는 단일 어드레스 태그만이 존재한다.
각 상태 비트 필드(32)는 4상태 비트(33), 즉 p- 비트(34), s-비트(35), o-비트(36), 및 v- 비트(37)를 기억한다.
s-비트(35), o-비트(36), 및 v-비트(37)는 각각 공유-비트, 소유-비트, 및 타당-비트이며, 모든 기능은 메모리 시스템 기술에서 공지되어 있다.
s-비트(35)가 설정되면 이것은 해당 서브블록이 공유되었음은 표시한다.
o-비트(36)가 설정되면 이것은 해당 서브블록이 최신 기록동작을 실행함을 표시한다.
v-비트가 설정되면 이것은 해당 서브블록이 타당하는 것을 표시한다.
캐시 배열(5) 내 캐시 블록 프레임은 어드레스(40)의 일부를 형성하는 색인(41)을 통해 액세스된다.
그러므로 어드레스(40)는 공지된 방법으로 캐시배열(5) 에 대해 액세스를 인네이블시킨다. 즉 색인(41)은 색인(41)의 비트 패턴에 따라 특정 태그 엔트리(30)를 가르킨다.
따라서 블록 및 서브블록내 오프셋은 오프셋 필드(42,43) 에 의해 표시된다.
본발명은 공지된 상태 비트, 즉 대기-비트인 p-비트(34)에 대해 추가 상태 비트를 추가한다.
p-비트(34)가 설정되면 이것은 CPU(2) 에 의해 할당된 동작이 어드레스(40)내의 색인(41)과 서브블록 색인에 의해 참조된 블록의 서브블록상에서 미결인체 계속적으로 대기중임을 표시한다.
p-비트(34)는 앞서 발한 명령이 완결되기를 기다리는 일이 없이 다중 동작이 상이한 블록 혹은 상이한 서브블록에 조차 할당되는 것을 허용하면, 한편 계속해서 싱글 어드레스태그(31)가 모든 서브블록을 식별하도록 요구만 한다.
p-비트(34)가 설정되면 이것은 캐시 제어기(6) 로 하여금 CPU(2) 를 액세싱하도록 요구하여 CPU버스(4) 를 포기하고 나중에 그 액세스를 "재시도"하도록 인네이블시킴으로써 해당 서브블록을 액세싱하는 것을 방지한다.
캐시제어기(6)가 p-비트(34)를 모니터함으로서 캐시 제어기(6) 는 이전동작이 완결되고 p-비트(34)가 클리어될때만 설정되는 p-비트(34)를 구비하는 서브블록상에 연속동작을 허용한다. CPU(2)가 서브블록을 액세스하고 그 액세스가 미스의 결과를 낳으면 p-비트(34)는 우선 설정되며 그후 메모리 액세스는 캐시 배열(5) 에 대해 데이타를 검색하도록 만들어지며 어드레스 태그 비트(31)는 갱신되고 p-비트(34)는 클리어된다.
블록 미스 레지스터(28)는 대기는 하지만 설정된 서브 블록 대기 비트에 의해서는 특별히 식별되지는 않는 것으로 알려진 동작의 식별을 용이하게 한다.
블록미스 레지스터(28)는 판독시 미스와 기록시 미스 둘다를 식별한다.
블록미스 레지스터(28)는 물리적 어드레스 태그와 캐시 디렉토리 색인 둘 모두를 기억하도록 그 크기가 정해진다.
본발명의 캐시제어기(6) 는 요구되고 프리페치된 서브블록에 대해서 도착 순서를 부가하지 않는다. 블록미스가 발생하면 캐시 제어기는 그 다음의 일련의 서브 블록을 프리페치하고 그후 물리적 어드레스 태그(44)및 캐시 색인(41)이 블록 미스 레지스터내로 로드된다.
또한 캐시 제어기(6)는 블록미스 및 프리페치 동작으로 부터 생긴 요구된 두 서브블록 모두에 대해 대기 비트(34)를 설정하게 된다.
검색된 제1 서브블록이 도달하면 이 서브블록과 관련된 어드레스 태그(44)는 캐시 디렉토리(15)내 어드레스 태그 필드(31)내의 값과는 매치가 되지 않는다.
그러나 서브블록에 대한 어드레스 태그(44)는 블록 미스 레지스터(28)에 기억된 어드레스와는 매치될 것이다.
그러므로 블록에 대한 모든 서브블록에 대한 타당-비트(37)는 클리어 되고, 어드레스 태그(31)는 갱신되며, 데이타를 갖는 적당한 서브블록에 대해서만 타당-비트(37)가 설정되고, 그리고 대기-비트(34)가 클리어된다.
검색된 제2 서브블록이 도달하면 서브블록에 대한 어드레스 태그(44)는 캐시 디렉토리(15)내 어드레스 태그 필드(31)내의 어드레스와 매치되며, 그후 데이타를 갖는 그 서브블록에 대한 타당비트(37)가 설정되며, 해당 대기-비트(34)가 클리어된다.
만약 검색된 서브블록에 대한 어드레스(44)가 블록 미스 레지스터(28)내에 기억된 어드레스 혹은 캐시 디렉토리(15)내의 어드레스 태그필드(31)와 매치되지 않으면 에러를 조정하기 위해서 에러는 운영 시스템으로 플래그된다.
본발명의 동작에서 데이타 획득은 실제 동시에 진행될수 있다.
즉 액세스 요구가 한번에 발해지지만 이미 발해진 캐시 메모리의 완결전에 그 다음 요구가 발해지는 실제 파이프라인된 형태로 진행된다.
CPU 가 색인(41)을 통해 캐시 배열(5) 을 액세스할때 어드레스 태그(31)의 비트는 제어 공간 기준(Control space reference) 의 어드레스 비트와 매치되는가를 결정하기위해 즉시 검사한다.
본발명을 담고있는 캐시 제어기(6) 의 동작은 제4 도에 도시된 예와 제5 도에 도시된 예시적인 동작 순서도에 관련시켜 더욱 잘 설명될수 있다.
제4 도에서 예를들어 CPU는 시간 T1에서 캐시 메모리 동작, 예컨대 돌발판독(burst read) 을 발하며 그 결과 외부캐시배열(5) 의 서브블록(A) 상에서 미스가 나타난다.
대기-비트(p-비트)(34)가 설정되고, 요구데이타가 시간 T2후에 주기억장치(9) 로부터 캐시(5) 의 서브블록(A) 으로 검색되고, 그후 p-비트(34)는 클리어된다.
처리기는 서브블록A 와 관련된 메모리 액세스의 완결을 대기시키며 서브블록(A) 을 액세스할수 없는데, 그 이유는 캐시제어기(6) 는 p-비트(34)에 의해 표시되는 바와같이 서브블록(A) 이 바쁜지를 항상 결정해야 하기 때문이다.
그러나 만약 해당 p-비트(34)가 설정되지 않고 스브블록(A혹은 B) 로의 캐시액세스 시도가 블록 미스의 결과를 낳지 않다고 가정하면 동일한 블록내에 다른 서브블록 예컨대 서브블록(B) 상의 또다른 동작이 시간 T1에 뒤이어 즉 시간 T1+에서 계속 진행될수 있다.
예컨대 시간 T1에서 서브블록(B) 상에서 만약 블록미스가 발생하면 CPU(2) 은 비록 서브블록(B)에 대한 p-비트(34)가 설정되지 않더라도 재시도하도록 지시된다.
이 경우 본발명은 종래 캐시배열과 같이 동작하면, 이때 블록미스는 다른 액세스 전에 주기억 액세스 사이클을 요구한다.
그렇지 않으면 만약 어드레스(40)의 색인(41)에 의해 지적된 어드레스 태그(31)가 어드레스(40)내 어드레스 태그(44)와 매치된다면 액세싱 CPU는 해당 p-비트(34)에 의해 바쁘다고 표시되지 않은 어떠한 서브블록이든지 액세스할수 있다.
만약 어드레스 태그(31)가 어드레스 태그(44)와 매치되면, 즉 블록 히트가 존재하면 서브블록 미스는 바로 뒤이은 서브블록을 포함해서 그 서브블록을 페치하는 결과를 낳는다.
제5 도에서 다중 처리기가 타겟 서브블록을 취득하는 동안에 순서도가 도시된다. 캐시 액세스 시도중 캐시 제어기(6) 의 동작에서 대기-비트(34)의 효과는 다음과 같이 요약될수 있다.
1. 만약 그의 p-비트(34)가 설정되는 서브블록상에서 어떤 동작이 발해지면 CPU는 재시도하도록 지시된다.
2. 만약 임의 서브블록에 대해 설정된 p-비트(34)를 갖는 블록상에서 동작이 블록 미스의 결과를 낳는다면 CPU는 재시도하도록 지시된다.
캐시 액세스 동작이 CPU(2) 에 의해 개시된다고 가정한다.
캐시제어기(6) 는 먼저 블록 미스 레지스터(28)와 캐시 디렉토리를 액세스한다(블록 51).
그다음 캐시 제어기(6) 는 대기-비트(34)가 타겟 서브블록에 대해 설정되었는지를 결정한다( 블록 52).
만약 대기-비트(34)가 설정되었으면 그후 캐시 제어기(6) 는 액세싱 CPU(2) 에 대해 액세스를 재시도하도록 명령한다( 블록 52a).
그렇지 않으면 만약 대기-비트(34)가 클리어되면 캐시제어기(6) 는 어드레스된 서브블록의 어드레스가 블록 미스 레지스터(28)내에 기억된 어드레스와 매치되는가를 결정한다( 블록 53). 만약 매치가 존재한다면 CPU(2) 는 재시도하도록 명령되며 (53a) 어드레스된 서브블록을 포함하는 블록에 대해 대기동작이 존재한다.
그후 캐시제어기(6) 는 어드레스된 서브블록의 어드레스가 캐시 디렉토리(15)내의 어드레스 태그(31)와 매치되는가 그리고 해당 서브블록이 타당한가를 결정한다 (블록 54). 만약 그렇다면 그후 타당 비트는 CPU(2) 로 전달되면 캐시기준이 완결된다( 블록 61). 만약 블록 54 에서 아무런 매치도 발견되지 않으면(54b) 그후 캐시제어기(6) 는 어드레스된 서브블록의 어드레스가 캐시 디렉토리(15)내의 어드레스 태그와 매치되는가 결정한다( 블록 55).
만약 그렇다면 캐시 제어기(6) 는 액세스된 타겟 서브블록에 대해 대기- 비트(34)를 설정하며, 그후 데이타가 서브블록으로부터 검색된다( 블록 89).
그후 대기 비트(34)는 클리어되며( 블록 59a), 데이타는 CPU(2) 로 전달된다( 블록 60). 만약 블록 55 에서 아무런 매치도 발견되지 않으면 캐시 제어기(6) 는 어드레스된 캐시 블록내의 어떠한 서브블록에 대해서든 대기 비트(34)가 설정되었는지 결정한다( 블록 56). 만약 어떠한 대기 비트(34)든 설정되면 CPU(2) 는 재시도 하도록 명령된다(56a).
만약 블록 56 에서 아무런 대기비트도 설정되지않으면 캐시제어기(6) 는 어드레스된 서브블록의 어드레스를 블록미스 레지스터(28)내에 기록하게 된다( 블록 57).
그후 캐시 제어기(6) 는 액세스된 타겟 서브블록에 대해 대기-비트(34)를 설정하며( 블록 58) 그후 데이타는 서브블록으로 부터 검색된다( 블록 59).
대기 비트(34)는 그후 클리어되며( 블록 59a), 데이타가 CPU(2) 로 전달된다(60). 메모리 기준이 그후 블록 61 에서 종료된다.
통상 어떠한 대기-비트(34)든 설정이 되고 한후 캐시제어기(6) 는 그 서브블록으로 향하는 어떠한 캐시동작이든지 재시도하도록 명령된다.
캐시 제어기(6) 는 그후 가상 어드레스(40)내에 주어진 물리적 메모리 어드레스(44)와 캐시 디렉토리(15)내의 어드레스 태그(31)와 비교함으로써 타겟 서브블록이 타겟 데이타를 포함하는지를 확인한다.
만약 타겟 데이타가 발견되면 CPU(2) 가 재시도할때 CPU(2) 로 전달된다.
그렇지 않으면 캐시 제어기(6) 는 주기억장치 액세스 사이클을 개시하여 타겟 데이타를 검색하게 된다. 일단 타겟 데이타가 CPU(2) 로 전달되면 대기-비트(34)는 클리어되며 서브블록은 어떠한 CPU에 대해서든 다시 액세스 가능하게 된다.
캐시 배열(5) 및 캐시 제어기(6) 는 또한 앞서 언급한 프리페치 형상을 인레이블시키고 어떤것이 대기되지만 특히 식별되지는 않는 것인지를 결정하기 위해 블록 미스 레지스터( 도시안됨) 를 채택하게 된다.
프리페치 형상은 만약 연속된 서브블록에 대한 타당 비트가 클리어되면 서브블록으로의 돌발 판독 액세스시 블록 경계에 의해 정해진 그 다음 서브블록을 프리페치하기 위해 메모리 잠복을 줄이도록 동작한다.
바람직하게는 블록미스 기능은 오직 두개의 기준 레지스터만을 통해서 구현된다.
즉 하나의 블록미스 레지스터는 판독시 미스를 식별하고 나머지 블록미스 레지스터는 기록시 미스를 식별한다. 각 블록미스 레지스터는 물리적 어드레스 및 캐시 디렉토리 색인 둘다를 기억하도록 크기가 정해진다.
앞서 설명한 바와같이 본발명의 캐시 제어기(6) 는 서브블록을 요구하고 프리페치 할때 도착순서를 정하지 않는다.
블록미스가 발생하면 캐시제어기(6) 는 그 다음 서브블록을 프리페치하며 그후 물리적 어드레스(44)및 캐시색인(41)둘다는 블록미스 레지스터내로 로드된다.
검색된 서브블록이 미스후에 수신되면, 서브블록을 포함하는 블록에 대한 어드레스 필드(31)는 갱신되며 그 서브블록에 대한 타당 비트(37)는 설정된다.
만약 프리페치된 서브블록의 어드레스 필드(31)가 블록 미스가 발생하는 블록 미스 레지스터내에 기억된 어드레스와 매치되면 프리페치된 서브블록은 첫번째로 복귀하는 것으로 알려져 있다. 검색된 제1 서브블록이 서브블록 페치 혹은 프리페치에 따라 도달하면 블록에 대한 모든 서브블록의 타당-비트(37)는 클리어되며 그후 데이타를 구비한 오직 적당한 서브블록에 대해서 대기-비트(34)는 각각 설정되어 클리어된다. 남아있는 서브블록에 대해서는 대기-비트(34)가 클리어 되지 않는데 그 이유는 프리페치 동작이 계속해서 스스로 미결일수 있기 때문이란 사실에 주목해야 한다. 이 경우에 검색된 프리페치 데이타는 서브블록 미스로써 나타나며, 그후 p-비트(34)는 클리어되고 타당-비트(37)은 설정된다.
블록미스 레지스터의 중요할 점은 대기블록 미스를 갖는 블록의 서브블록에 대해 액세스를 막는다는 점이다.
I/O 계수 레지스터( 도시안됨) 은 미결이지만 아직까지 완결되지 않은 I/O 기록 동작의 수를 추적하며, I/O 버스(8) 와 관련 버퍼공간의 포화를 방지한다.
모든 미결의 기록동작은 단일 레지스터로써 추적될수 있다.
물리적 I/O 장치는 객별 페이지에 할당됨으로써 I/O 페이지에 할당된다.
I/O 페이지는 물리적 페이지는 아니지만 그 구현이 요구될때 각 I/O 장치에 대해 단순히 할당된 어드레스 공간의 편리한 장치란 사실에 주목해야 한다.
이들 I/O 장치에 대한 I/O 동작은 I/O 페이지를 임의로 액세스 하는 것이 허용되기 보다는 현 I/O 페이지에 제한된다.
캐시 제어기(6) 는 I/O 장치에 대해 I/O 동작을 발할때 I/O 계수 레지스터를 증가시키며, I/O 동작이 완결되었다는 인식이 CPU(2) 에 의해 수신되면 계수 레지스터를 감소시킨다. 만약 I/O 동작이 현 페이지가 아닌 I/O 페이지에 할당된 I/O 장치로의 액세스를 시도하면, 그후 CPU(2) 는 I/O 계수 레지스터에 의해 표시된 현 페이지에 대한 계수가 영일때까지 그 동작을 재시도하도록 명령된다.
I/O 계수 레지스터내에서 이용가능하지만 캐시 제어기(6) 내에 포함된 설계 및 최대계수는 캐시 제어기와 I/O 버스 사이의 버퍼공간의 적당한 설계를 위해 필요하다. 외부 버스 감시자 장치에 접속된 I/O 물리 어드레스 레지스터는 미결의 I/O 동작과 관련된 장치의 물리적 어드레스를 추적하며 I/O 동작이 I/O 물리적 어드레스에 대해 실패할때 타임- 아웃 표시를 발해진다.
개별 물리적 어드레스가 각 I/O 장치에 할당되기 때문에 어떠한 I/O 장치에 의해서든 보내진 타임- 이웃은 그 I/O 장치에 할당된 I/O 페이지에 등재된다.
마찬가지로 공유- 기록 계수 레지스터 및 공유-기록 물리적 어드레스 레지스터는 주기억 장치에 기록되는 캐시가능할 데이타에 대해 미결인 미결 기록 동작의 수를 추적하는 것을 허용한다.
캐시 제어기(6) 와 캐시 배열(5) 은 CPU(2) 에 대하여 다른 처리기 환경내에 미결의 기록 동작이 남아 있다는 사실은 알리기 위해 캐시 제어기(6) 로부터 CPU(2) 로 보내진 PEND 신호를 또한 지원한다.
PEND 신호를 지원하는 것은 CPU(2) 로 하여금 이용자의 선택에 따라서 연속된 I/O 기록동작에 대해 총기억 순서 혹은 부분기억순서를 구현하는 것을 허용한다. PEND 신호를 주장하는 것은 연속해서 발해진 기록동작이 앞서 발해진 기록동작의 완결을 대기하도록 하는 것이다.
그러나 그렇게함으로써 완벽한 성능은 줄어들지만 기억순서는 유지될수 있다.
지금까지 캐시 메모리 구조에서 다중 미결 동작을 유지하는 장치 및 방법에 대해서 기술하였다. 당해 기술자에 의해 본발명의 취지와 영역으로 부터 벗어남 없이 본발명의 장치의 구성성분 및 요소들의 배열에 대해서 변화와 수정이 있을 수 있음을 알수 있다.

Claims (20)

  1. 중앙처리장치(CPU) 및 주기억 장치로 구성된 처리기 모듈을 포함하는 컴퓨터 시스템에 있어서, 제1 버스에 의해 상기 CPU에 접속되며, 다수의 서브블록을 더 포함한 다수의 블록을 포함하는 캐시; 제2버스에 의해 상기 주기억장치가 접속되고, 상기 제1 버스에 의해 상기 캐시와 상기 CPU에 접속된 캐시 디렉토리를 포함하는 캐시제어기; 및 앞서 발생된 캐시동작이 타겟 서브블록에 대해 미해결 상태일때, 상기 캐시 제어기를 인네이블시켜 상기 타겟 서브블록으로 캐시 엑세스를 발생하는 상기 CPU로 하여금 상기 캐시 액세스를 재시도하도록 명령하기 위해 상기 캐시 디렉토리에 접속된 동작 대기 통보수단;을 포함하고, 상기 캐시 디렉토리는 어드레스 태그로 구성되는 다수의 태그 엔트리를 포함하고, 이 다수의 태그 엔트리는 상기 서브블록에 해당하는 다수의 상태 비트 필드를 더 포함하며, 캐시 디렉토리 색인에 의해 지정되는 상기 태그 엔트리는 물리적 어드레스의 캐시 디렉토리 색인 필드를 포함하는 것을 특징으로 하는 캐시 메모리 구조.
  2. 제1항에 있어서, 상기 상태 비트 필드는 상기 상태 비트 필드와 관련된 상기 서브 블록내에 기억된 다수의 타겟 데이타의 스테이트를 표시하는 다수의 스테이트 상태 비트를 포함하는 것을 특징으로 하는 캐시 메모리 구조.
  3. 제2항에 있어서, 상기 스테이트를 표시하기 위한 상기 다수의 스테이트 상태 비트는, 설정시 상기 타겟 서브블록에 기억된 상기 데이타가 CPU들 사이에서 공유되는 것을 표시하는 공유 스테이트 상태 비트; 설정시 상기 타겟 서브블록내에 기억된 상기 데이타가 상기 CPU들 중의 오직 하나에 의해서만 점유는 것을 표시하는 점유자 스테이트 상태 비트; 설정시 상기 타겟 서브블록내에 기억된 상기 데이타가 유효함을 표시하는 유효 스테이트 상태 비트; 및 상기 서브블록에 해당하는 상기 상태 비트 필드내의 대기 스테이트 상태 비트; 를 포함하고, 상기 대기 스테이트 상태 비트는, 설정시 상기 타겟 서브블록이 상기의 이전에 발생된 캐시 동작내에서 액세스됨을 표시하며, 설정시 상기 캐시동작은 계속 대기중이며 미결이며, 상기 타겟 서브블록내에 기억된 상기 데이타가 액세스 가능하지 않음을 더 표시하는 것을 특징으로 하는 캐시 메모리 구조.
  4. 제3항에 있어서, 상기의 이전에 발생된 캐시동작이 상기 타겟 서브블록에 대해 미결상태에 있는 동안, 상기 캐시 액세스가 제2 타겟 서브블록에 대해서 상기 캐시 제어기에 의해 허용되도록 하는 것을 특징으로 하는 캐시 메모리 구조.
  5. 제4항에 있어서, 만약 상기 캐시 액세스 시도가 블록 미스의 결과를 낳으면, 그후 상기 캐시 제어기는 상기 캐시 액세스를 시도하는 상기 CPU가 상기 캐시 액세스 시도를 재 시도 하도록 명령하는 것을 특징으로 하는 캐시 메모리 구조.
  6. 제5항에 있어서, 상기 캐시 액세스 시도가 상기 타겟 서브블록에 대해서 서브 블록 미스의 결과를 낳을 때, 상기 캐시 제어기는 오직 상기 대기 상태 비트가 설정될때만 상기 캐시 액세스 시도를 발하는 상기 CPU로 하여금 상기 캐시 액세스 시도를 재시도하도록 명령하며, 만약 상기 대기 스테이트 상태 비트가 설정되지 않으면, 그후 상기 캐시 제어기는 상기 캐시 엑세스를 시도하는 상기 CPU로 하여금 그 대기 스테이트 상태 비트가 클리어되는 블록내에서 남아있는 어떠한 서브블록이든 액세스하도록 명령하는 것을 특징으로 하는 캐시 메모리 구조.
  7. 제6항에 있어서, 상기 캐시 제어기에 연결되고, 상기 캐시 액세스 시도가 블록미스의 결과를 낳을때 검색되는 상기 타겟 서브블록을 선택하는 블록 미스 식별 수단을 추가로 포함하며, 상기 캐시 디렉토리 색인과 상기 물리적 어드레스를 기억하는 상기 블록 미스 식별 수단은, 상기 주기억장치내에 기억되고 블록 미스를 일으키는 타겟 서브블록에 의해 참조된 타겟 데이타를 식별하는 상기 물리적 어드레스를 포함하고, 상기 블록 미스 식별 수단이, 상기 타겟 서브블록에 대한 대기 스테이트 상태 비트가 설정될때 일련의 서브블록을 검색하기 위해 프리페치 수단에 추가로 접속되며, 상기 일련의 서브블록이 상기 타겟 서브블록전에 검색되었는지를 식별하는 것을 특징으로 하는 캐시 메모리 구조.
  8. 제7항에 있어서, 상기 캐시 액세스 시도가 상기 서브블록 미스의 결과를 낳을때, 상기 캐시 제어기는 상기 프리페치 수단으로 하여금 상기 일련의 서브 블록을 프리페치하도록 신호를 보내고, 그후 상기 캐시 제어기는 상기 블록 미스 레지스터내로 상기 캐시 디렉토리 색인 및 물리적인 어드레스를 로드시키며, 상기 일련의 서브블록이 검색될때, 그후 상기 캐시 제어기는 캐시 디렉토리색인의 어드레스 태그를 갱신시키며, 상기 일련의 서브블록의 상태 비트 필드내에 대기 스테이트 상태 비트를 클리어 하는 것을 특징으로 하는 캐시 메모리 구조.
  9. 제8항에 있어서, 상기 블록 미스 식별수단은 블록 미스 레지스터를 포함하고, 상기 블록 미스 레지스터는 상기 CPU및 상기 캐시 제어기에 접속되고 판독동작 동안 블록 미스를 식별하고, 기록동작동안 블록 미스를 추가로 식별하는 것을 특징으로 하는 캐시 메모리 구조.
  10. 제9항에 있어서, 상기 CPU에 접속되어 대기중인 입/ 출력(I/O) 기록 동작의 수를 식별하는 I/O 계수 레지스터를 더 포함하며, 상기 CPU는 I/O 동작이 발생할때 상기 I/O 계수 레지스터를 증가시키며, I/O 동작이 완결될때 상기 I/O 계수 레지스터를 감소시키는 것을 특징으로 하는 캐시 메모리 구조.
  11. CPU 와 주기억 장치로 구성된 처리기 모듈을 포함하는 컴퓨터 시스템에 있어서, 캐시 메모리를 동작 방법은, 제1 버스에 의해 상기 CPU에 접속되고, 다수의 서브블록을 더 포함한 다수의 블록을 포함하는 캐시를 제공하는 단계; 상기 제1 버스에 의해 상기 캐시와 상기 CPU에 접속된 캐시 디렉토리를 포함하며, 제2 버스에 의해 상기 주기억 장치가 접속되는 캐시 제어기를 제공하는 단계; 어드레스 태그를 포함하고,추가로 상기 서브블록에 해당하는 다수의 상태 비트 필드를 포함하며, 캐시 디렉토리 색인에 지정되며 물리적 어드레스의 캐시 디렉토리 색인필드를 포함하는 다수의 태그 엔트리를 제공하는 단계; 및 이전에 발생된 캐시 동작이 상기 타겟 서브블록에 대해 미해결상태일때, 상기 캐시 제어기를 인네이블시켜 상기 타겟 서브블록으로 캐시 액세스 시도를 발생하는 상기 CPU로 하여금 상기 캐시 액세스 시도를 재시도하도록 명령하기 위해 상기 캐시 디렉토리에 접속된 동작 대기 통보수단을 제공하는 단계; 로 구성되는 것을 특징으로 하는 방법.
  12. 제11항에 있어서, 상기 다수의 상태 비트를 제공하는 단계는 상기 서브블록내에 기억된 다수의 스테이트의 타겟데이타 상태가 상기 상태 비트 필드와 관련되어 있음을 표시하기 위해 다수의 스테이트 상태 비트를 제공하는 단계를 포함하는 것을 특징으로 하는 방법.
  13. 제12항에 있어서, 상기 다수의 스테이트 상태 비트를 제공하는 단계가, 설정시 상기 타겟 서브블록내에 기록된 상기 데이타가 CPU들 사이에서 공유되었음을 표시하는 공유스테이트 상태 비트를 제공하는 단계; 설정시 상기 타겟 서브블록내에 기록된 상기 데이타가 상기 CPU들 중의 오직 하나에 의해서만 점유됨을 표시하는 점유자 스테이트 상태 비트를 제공하는 단계; 설정시 상기 타겟 서브블록내에 기억된 상기 데이타가 유효함을 표시하는 유료스테이트 상태 비트를 제공하는 단계; 및 대기 스테이트 상태 비트를 제공하는 단계; 를 포함하며, 상기 대기상태 비트는, 설정시, 상기 타겟 서브블록이 상기의 앞서 발생된 캐시동작내에서 액세스됨을 표시하며, 추가로 상기 캐시동작이 계속해서 대기중이고 미해결상태이며, 상기 타겟 서브블록내에 기억된 상기 데이타가 변경가능하지 않음을 표시하는 것을 특징으로 하는 방법.
  14. 제13항에 있어서, 상기 캐시 액세스 시도는 제2 타겟 서브블록에 대해서 상기 캐시 제어기에 의해 받아들여지는 한편, 상기 이전에 발생된 캐시동작이 상기 타겟 서브블록에 대해서는 미해결 상태인 것을 특징으로 하는 방법.
  15. 제14항에 있어서, 만약 상기 캐시 액세스 시도가 블록 미스의 결과를 낳으면, 그후 상기 캐시 제어기가 상기 캐시 액세스를 시도하는 상기 CPU에 대해서 상기 캐시 액세스를 재시도 하도록 명령하는 것을 특징으로 하는 방법.
  16. 제15항에 있어서, 상기 캐시 액세스 시도가 상기 타겟 서브블록에 대해서 서브블록 미스의 결과를 낳을 때, 오직 상기 대기 스테이트 상태 비트가 설정될때에만 상기 캐시 제어기는 상기 캐시 액세스 시도를 발생하는 상기 CPU로 하여금 상기 캐시 액세스를 재시도하도록 명령하며, 만약 상기 대기 스테이트 상태 비트가 설정되지 않으면, 그후 상기 캐시 제어기는 상기 캐시 액세스를 시도하는 상기 CPU로 하여금 그 대기 스테이트 상태 비트가 설정되지 않은 블록내 남아있는 어떠한 서브 블록이든 액세스하도록 명령하는 것을 특징으로 하는 방법.
  17. 제16항에 있어서, 상기 캐시 액세스 시도가 블록미스의 결과를 낳을때 검색될 상기 타겟 서브블록을 선택하기 위해 상기 캐시 제어기에 접속된 블록 미스 식별 수단을 제공하는 단계; 상기 블록 미스 식별수단에 접속되어 일련의 서브블록을 검색하는 프리페치 수단을 추가로 제공하는 단계; 상기 주기억 장치에 기억되고 블록 미스를 일으키는 타겟 서브블록에 의해 조회되는 타겟 데이타는 식별하기 위해 상기 블록 미스 레지스터내에 상기 캐시 디렉토리 색인과 상기 물리적 어드레스에 기억시키는 단계; 를 더 포함하며, 상기 타겟 서브블록에 대한 대기 스테이트 상태 비트가 설정될때, 상기 블록 미스 식별 수단은 상기 일련의 서브블록이 상기 타겟 서브블록전에 검색되었는지를 식별하는 것을 특징으로 하는 방법.
  18. 제17항에 있어서, 상기 캐시액세스 시도가 상기 서브블록 미스의 결과를 낳을때, 상기 프리페치 수단이 상기 일련의 서브블록을 프리페치하도록 신호를 보내고, 그후 상기 캐시 제어기는 상기 캐시 디렉토리 색인 및 물리적 어드레스를 상기 블록 미스 레지스터내로 로드시키며, 상기 일련의 서브블록이 검색될때, 캐시 디렉토리 색인의 어드레스 태그를 갱신하고 상기 일련의 서브블록의 상태 비트 필드내의 유효 스테이트 상태 비트를 설정하는 것을 특징으로 하는 방법.
  19. 제18항에 있어서, 상기 블록 미스 식별 수단을 제공하는 단계는 블록 미스 레지스터를 제공하는 단계를 포함하며, 상기 블록 미스 레지스터는 상기 CPU 및 상기 캐시 제어에 접속되고 판독동작중에 블록미스를 식별하며, 기록 동작중에는 블록미스를 추가로 식별하는 것을 특징으로 하는 방법.
  20. 제19항에 있어서, 상기 CPU에 접속되어 대기중인 입/ 출력(I/O) 기록 동작의 수를 식별하는 I/O 계수 레지스터를 제공하는 단계를 더 포함하고, I/O 동작이 발생될때 상기 I/O 계수 레지스터를 증가시키는 단계와 I/O 동작이 완료되면 I/O 계수 레지스터를 감소시키는 단계를 포함하는 것을 특징으로 하는 방법.
KR1019930007171A 1992-04-29 1993-04-28 캐시가 일관된 다중 처리기 컴퓨터 시스템에서 다중 미결동작을 제공하기 위한 장치 및 그 방법 KR100274327B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US87635992A 1992-04-29 1992-04-29
JP876,359 1992-04-29
US7/875,907 1992-04-29
US876,359 1992-04-29

Publications (2)

Publication Number Publication Date
KR930022222A KR930022222A (ko) 1993-11-23
KR100274327B1 true KR100274327B1 (ko) 2000-12-15

Family

ID=25367523

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930007171A KR100274327B1 (ko) 1992-04-29 1993-04-28 캐시가 일관된 다중 처리기 컴퓨터 시스템에서 다중 미결동작을 제공하기 위한 장치 및 그 방법

Country Status (5)

Country Link
US (1) US5377345A (ko)
EP (1) EP0568231B1 (ko)
JP (1) JPH0744458A (ko)
KR (1) KR100274327B1 (ko)
DE (1) DE69323790T2 (ko)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06149669A (ja) * 1992-11-04 1994-05-31 Fujitsu Ltd キャッシュデータ転送方式およびキャッシュデータ転送装置
JP3490742B2 (ja) * 1993-09-08 2004-01-26 松下電器産業株式会社 メモリ管理装置
KR970010368B1 (ko) * 1994-01-18 1997-06-25 삼성전자 주식회사 캐시라인 리프레이스장치 및 방법
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 富士通株式会社 情報処理システムにおける記憶制御方法および記憶制御装置
US5787465A (en) * 1994-07-01 1998-07-28 Digital Equipment Corporation Destination indexed miss status holding registers
US5717895A (en) * 1994-12-01 1998-02-10 Cray Research, Inc. Associative scalar data cache with write-through capabilities for a vector processor
US5642494A (en) * 1994-12-21 1997-06-24 Intel Corporation Cache memory with reduced request-blocking
US5860127A (en) * 1995-06-01 1999-01-12 Hitachi, Ltd. Cache memory employing dynamically controlled data array start timing and a microcomputer using the same
US5778434A (en) * 1995-06-07 1998-07-07 Seiko Epson Corporation System and method for processing multiple requests and out of order returns
US5761712A (en) * 1995-06-07 1998-06-02 Advanced Micro Devices Data memory unit and method for storing data into a lockable cache in one clock cycle by previewing the tag array
JP2964926B2 (ja) * 1995-08-29 1999-10-18 富士ゼロックス株式会社 データベース管理装置及び方法
KR100387576B1 (ko) * 1995-12-29 2003-09-22 엘지엔시스(주) 멀티프로세서시스템의캐쉬응집프로토콜처리방법
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
US5937431A (en) * 1996-07-12 1999-08-10 Samsung Electronics Co., Ltd. Multi- node, multi-level cache- only memory architecture with relaxed inclusion
JP2919376B2 (ja) * 1996-08-23 1999-07-12 日本電気アイシーマイコンシステム株式会社 読出し専用記憶媒体の読出し方法
US5860158A (en) * 1996-11-15 1999-01-12 Samsung Electronics Company, Ltd. Cache control unit with a cache request transaction-oriented protocol
US6052762A (en) * 1996-12-02 2000-04-18 International Business Machines Corp. Method and apparatus for reducing system snoop latency
US6085288A (en) * 1997-04-14 2000-07-04 International Business Machines Corporation Dual cache directories with respective queue independently executing its content and allowing staggered write operations
US6785888B1 (en) * 1997-08-29 2004-08-31 International Business Machines Corporation Memory allocator for a multiprocessor computer system
US6625694B2 (en) * 1998-05-08 2003-09-23 Fujitsu Ltd. System and method for allocating a directory entry for use in multiprocessor-node data processing systems
US6237067B1 (en) 1998-08-31 2001-05-22 International Business Machines Corporation System and method for handling storage consistency conflict
US6449697B1 (en) 1999-04-23 2002-09-10 International Business Machines Corporation Prestaging data into cache in preparation for data transfer operations
AUPQ486599A0 (en) * 1999-12-23 2000-02-03 Zentronix Pty Ltd A method of storing and retrieving miniaturised data
US6564229B1 (en) * 2000-06-08 2003-05-13 International Business Machines Corporation System and method for pausing and resuming move/copy operations
US6732234B1 (en) * 2000-08-07 2004-05-04 Broadcom Corporation Direct access mode for a cache
US6848024B1 (en) * 2000-08-07 2005-01-25 Broadcom Corporation Programmably disabling one or more cache entries
US6748492B1 (en) * 2000-08-07 2004-06-08 Broadcom Corporation Deterministic setting of replacement policy in a cache through way selection
US6748495B2 (en) 2001-05-15 2004-06-08 Broadcom Corporation Random generator
US6832279B1 (en) * 2001-05-17 2004-12-14 Cisco Systems, Inc. Apparatus and technique for maintaining order among requests directed to a same address on an external bus of an intermediate network node
JP2002368850A (ja) * 2001-06-05 2002-12-20 Sony Corp 携帯無線端末装置
KR100617663B1 (ko) * 2001-09-14 2006-08-28 썬 마이크로시스템즈, 인코포레이티드 캐시 메모리 내 태그 액세스 및 데이터 액세스의 분리방법 및 장치
US7000081B2 (en) * 2002-02-12 2006-02-14 Ip-First, Llc Write back and invalidate mechanism for multiple cache lines
US7266587B2 (en) * 2002-05-15 2007-09-04 Broadcom Corporation System having interfaces, switch, and memory bridge for CC-NUMA operation
JP2010033480A (ja) * 2008-07-31 2010-02-12 Sony Corp キャッシュメモリおよびキャッシュメモリ制御装置
US8504774B2 (en) 2010-10-13 2013-08-06 Microsoft Corporation Dynamic cache configuration using separate read and write caches
US9311251B2 (en) 2012-08-27 2016-04-12 Apple Inc. System cache with sticky allocation
US20140089600A1 (en) * 2012-09-27 2014-03-27 Apple Inc. System cache with data pending state
US9286318B2 (en) * 2013-04-22 2016-03-15 Hitachi, Ltd. Edge server and storage control method
CN104331352B (zh) * 2014-11-19 2018-03-09 浪潮(北京)电子信息产业有限公司 cache一致性芯片地址带外读取检测方法及装置
US10558462B2 (en) * 2018-05-23 2020-02-11 Arm Limited Apparatus and method for storing source operands for operations
CN111104166B (zh) * 2019-12-13 2022-09-06 北京新忆科技有限公司 寄存器的写入方法和写入装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE280954C (ko) *
JPS55146682A (en) * 1979-05-01 1980-11-15 Nec Corp Data transfer system
US4315310A (en) * 1979-09-28 1982-02-09 Intel Corporation Input/output data processing system
US4370710A (en) * 1980-08-26 1983-01-25 Control Data Corporation Cache memory organization utilizing miss information holding registers to prevent lockup from cache misses
US4493026A (en) * 1982-05-26 1985-01-08 International Business Machines Corporation Set associative sector cache
US4794521A (en) * 1985-07-22 1988-12-27 Alliant Computer Systems Corporation Digital computer with cache capable of concurrently handling multiple accesses from parallel processors
EP0280954B1 (de) * 1987-02-16 1991-04-24 Siemens Aktiengesellschaft Verfahren zur Steuerung des Datenaustausches zwischen Verarbeitungseinheiten und einem Speichersystem mit Cachespeicher in Datenverarbeitungsanlagen, sowie ein entsprechend arbeitender Cachespeicher
US5025366A (en) * 1988-01-20 1991-06-18 Advanced Micro Devices, Inc. Organization of an integrated cache unit for flexible usage in cache system design
US4977498A (en) * 1988-04-01 1990-12-11 Digital Equipment Corporation Data processing system having a data memory interlock coherency scheme
US5025365A (en) * 1988-11-14 1991-06-18 Unisys Corporation Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors
US5018063A (en) * 1988-12-05 1991-05-21 International Business Machines Corporation Method for reducing cross-interrogate delays in a multiprocessor system
US5197146A (en) * 1989-06-21 1993-03-23 Hewlett-Packard Company Method for maintaining cache coherence in a multiprocessor computer system
US5230070A (en) * 1989-09-08 1993-07-20 International Business Machines Corporation Access authorization table for multi-processor caches
US5136700A (en) * 1989-12-22 1992-08-04 Digital Equipment Corporation Apparatus and method for reducing interference in two-level cache memories
JPH061463B2 (ja) * 1990-01-16 1994-01-05 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法
US5163140A (en) * 1990-02-26 1992-11-10 Nexgen Microsystems Two-level branch prediction cache
US5210845A (en) * 1990-11-28 1993-05-11 Intel Corporation Controller for two-way set associative cache
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

Also Published As

Publication number Publication date
JPH0744458A (ja) 1995-02-14
KR930022222A (ko) 1993-11-23
US5377345A (en) 1994-12-27
EP0568231B1 (en) 1999-03-10
DE69323790T2 (de) 1999-10-07
DE69323790D1 (de) 1999-04-15
EP0568231A1 (en) 1993-11-03

Similar Documents

Publication Publication Date Title
KR100274327B1 (ko) 캐시가 일관된 다중 처리기 컴퓨터 시스템에서 다중 미결동작을 제공하기 위한 장치 및 그 방법
US11803486B2 (en) Write merging on stores with different privilege levels
KR100278328B1 (ko) 캐시 미스 버퍼
US6185660B1 (en) Pending access queue for providing data to a target register during an intermediate pipeline phase after a computer cache miss
KR100278035B1 (ko) 다중처리기 컴퓨터시스템에서 캐시태그 메모리의 단일 카피를 사용하는 캐시일관성 개량장치 및 방법
US8725987B2 (en) Cache memory system including selectively accessible pre-fetch memory for pre-fetch of variable size data
JP3218317B2 (ja) 集積キャッシュユニットおよびその構成方法
US5903911A (en) Cache-based computer system employing memory control circuit and method for write allocation and data prefetch
EP0695996A1 (en) Multi-level cache system
US6718839B2 (en) Method and apparatus for facilitating speculative loads in a multiprocessor system
US20130080709A1 (en) System and Method for Performing Memory Operations In A Computing System
US6993630B1 (en) Data pre-fetch system and method for a cache memory
US5269009A (en) Processor system with improved memory transfer means
JP2008510258A (ja) メモリへの様々なタイプのアクセスを予測するため、およびキャッシュメモリに関連付けられた予測を管理するための、システム、装置、および方法
JPH06318174A (ja) キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
US20060179173A1 (en) Method and system for cache utilization by prefetching for multiple DMA reads
JPH08314802A (ja) キャッシュシステム、キャッシュメモリアドレスユニット、およびキャッシュメモリを動作させる方法
JPH0743671B2 (ja) キャッシュ・メモリ制御方式
US6934810B1 (en) Delayed leaky write system and method for a cache memory
JP2001249846A (ja) キャッシュメモリ装置及びデータ処理システム
JPH0516061B2 (ko)
JPH0477344B2 (ko)
JPH0773035A (ja) 複数プロセツサ・システム
JP3260566B2 (ja) 情報処理システムにおける記憶制御方法および記憶制御装置
JPS62226348A (ja) 主記憶装置兼主記憶制御装置

Legal Events

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

Payment date: 20060824

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee