KR100212361B1 - 캐시 메모리의 내용을 플러시하는 장치 및 방법 - Google Patents

캐시 메모리의 내용을 플러시하는 장치 및 방법 Download PDF

Info

Publication number
KR100212361B1
KR100212361B1 KR1019960021796A KR19960021796A KR100212361B1 KR 100212361 B1 KR100212361 B1 KR 100212361B1 KR 1019960021796 A KR1019960021796 A KR 1019960021796A KR 19960021796 A KR19960021796 A KR 19960021796A KR 100212361 B1 KR100212361 B1 KR 100212361B1
Authority
KR
South Korea
Prior art keywords
cache
tag
data
bus
address
Prior art date
Application number
KR1019960021796A
Other languages
English (en)
Other versions
KR970002652A (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 KR970002652A publication Critical patent/KR970002652A/ko
Application granted granted Critical
Publication of KR100212361B1 publication Critical patent/KR100212361B1/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

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)
  • Retry When Errors Occur (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

버스 인터페이스는 데이타가 프로세서의 캐시 메모리에서 갱신되었는지를 나타내는 버스 명령을 제어하기 위한 시스템 버스에 접속된다. 만일 데이타가 캐시 메모리에서 갱신되었다면, 외부 태그 저장 장치는 갱신된 데이타에 대응하는 실제 어드레스와 데이타의 갱신을 나타내는 상태 정보를 저장한다. 외부 태그 판독 장치는 캐시 메모리에 있는 갱신 데이타가 주 기억장치에 저장되면, 외부 태그 저장 장치에 저장된 상태 정보를 판독한다. 외부 태그 저장 장치로부터 판독된 태그의 상태에 기초하여, 캐시 메모리로부터 주 기억장치로 갱신 데이타를 플러시하는 버스 명령이 생성된다. 무효화 버스 명령 생성 장치는 무효화 버스 명령을 FIFO를 통해 시스템 버스로 출력한다.

Description

캐시 메모리의 내용을 플러시하는 장치 및 방법
제1도는 종래 기술의 캐시 플러시 동작을 설명하기 위한 일실시예를 나타내는 프로그램.
제2도는 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타내는 블록도.
제3도는 컴퓨터 시스템이 정상적으로 동작할 때의 본 발명의 캐시 플러시 장치의 동작을 설명하는 흐름도.
제4도는 프로세서의 명령에 따라 본 발명의 캐시 플러시 장치의 동작을 설명하는 흐름도.
제5도는 본 발명의 캐시 플러시 동작을 설명하는 흐름도.
제6도는 본 발명의 캐시 플러시 장치에서의 파이프라인 동작을 설명하는 블록도.
제7도는 본 발명의 다른 실시예에 따른 컴퓨터 시스템의 블록도.
제8도 및 제9도는 본 발명의 다른 실시예에 따라, 컴퓨터 시스템이 정상적으로 동작할 때의 캐시 플러시 장치의 동작을 설명하는 흐름도.
제10도는 본 발명의 다른 실시예에 따른 컴퓨터 시스템의 블록도.
제11도 및 제12도는 본 발명의 또 다른 실시예에 따라, 컴퓨터 시스템이 정상적으로 동작할 때의 캐시 플러시 장치의 동작을 설명하는 흐름도.
* 도면의 주요부분에 대한 부호의 설명
10 : 프로세서 11 : 캐시 제어기
12 : 주기억 장치 16 : 캐시 메모리
18 : 시스템 버스 24 : 외부 태그 제어기
26 : 외부 태그 저장 장치 28 : 외부 태그 판독 장치
30 : 멀티플렉서 32 : 외부 태그 검사 장치
본 발명은 캐시 메모리(cache memory)가 있는 컴퓨터 시스템, 특히 캐시 메모리의 내용을 플러시(flush)할 수 있는 컴퓨터 시스템에 관한 것이다.
프로세서에 의해 사용되는 데이타를 일시적으로 저장하는 캐시 메모리는 일반적으로 컴퓨터 시스템의 속도를 향상시키기 위해 광범위하게 사용된다. 최근에, 고속 프로세서는 카피-백(copy-back) 타입의 대용량 캐시 메모리를 구비하고 있다.
카피-백 타입의 캐시 메모리는 다음과 같은 메카니즘에 의해 특정된다. 프로세서가 스토어(store) 명령을 실행할 때, 갱신된 데이타는 주기억 장치에 기록되지 않고 캐시 메모리에만 저장된다. 갱신된 데이타는 다음의 3가지 경우에 주기억 장치에 재기록된다.
제1유형은 갱신된 데이타가 있는 캐시 메모리 블록에 새로운 데이타가 저장되어야 하는 경우이다. 이것을 교체(replacement)라고 부른다. 제2유형은 일관성(coherent) 판독 명령이 타 캐시 메모리나 I/O 장치에 접속된 시스템 버스상에 발행되는 경우이다. 제3유형은 갱신된 데이타가 어떤 이유에 의해 재기록되어야 하는 경우이다. 재기록 동작은 캐시 플러시 동작이라고도 부른다.
예컨대, 일관성 판독 명령을 지원하지 않은 I/O 장치가 많이 있다. 이러한 I/O 장치들은 갱신된 데이타가 현재 캐시 메모리에 있는 경우에도, 주기억 장치로부터만 데이타를 가져올 수 있는 비일관성(non-coherent) 판독 명령만을 사용한다. 따라서, 프로세서가 이러한 종류의 I/O 장치가 타당한 데이타를 판독하도록 하기 전에, 프로세서는 갱신된 데이타를 캐시 메모리로부터 주기억 장치로 재기록하여야 한다.
일부 체크 포인트(check point)/롤백(roll back) 컴퓨터 시스템도 제3유형의 재기록 동작을 필요로 한다. 이러한 시스템들은 체크 포인트를 주기억 장치에 주기적으로 기록한다. 체크 포인트는 컴퓨터 시스템에 고장이 발생했을 때 데이타 처리를 재시작할 수 있는 상태를 말한다.
고장이 발생하면, 컴퓨터 시스템은 주기억 장치를 마지막 체크 포인트로 롤백하여, 주기억 장치에 기록된 정보를 이용하여 데이타 처리를 재시작한다. 이러한 종류의 컴퓨터에 있어서, 캐시 메모리에 있는 모든 갱신된 데이타는 각 체크 포인트마다 주기억 장치로 재기록되어야 한다.
종래 기술에 있어서, 제3유형의 재기록 동작을 캐시 메모리에 영향을 주는 프로세서의 명령에 의해 실행된다.
예컨대, 제1도는 MIPS사의 R4000 프로세서에서의 재기록 동작의 메인 루프를 나타낸다. 루프가 1회 실행되면, 캐시 메모리의 하나의 캐시 블록이 무효화(invalidate)된다. 갱신된 데이타(가령 있다면)는 주기억 장치에 재기록되고, 캐시 블록은 무효(invalid) 상태로 된다.
만일 캐시 블록이 갱신된 데이타를 포함하고 있지 않으면 루프의 1회 실행시 6개의 프로세서 사이클 또는 3개의 버스 사이클이 소요되며, 캐시 블록이 갱신된 데이타를 포함하고 있으면 더 많은 사이클을 필요로 한다.
캐시 메모리의 모든 캐시 블록에 대한 캐시 플러시 동작은 캐시 메모리의 용량이 매우 크기 때문에 장시간을 요한다. 프로세서는 이러한 캐시 플러시 동작 동안에는 어떠한 데이타 처리도 실행할 수 없다.
본 발명의 목적은 컴퓨터 시스템의 프로세서에 의한 캐시 플러시 동작을 처리하는 데 요구되는 시간을 단축시키는 것이다.
본 발명의 또 다른 목적은 시스템 성능을 향상시키기 위한 캐시 플러시 장치를 제공하는 것이다.
본 발명에 따르면, 상기 목적들은 캐시 메모리의 내용을 플러시하는 컴퓨터 시스템을 제공함으로써 달성되는데, 이 컴퓨터 시스템은 카피-백 타입의 캐시 메모리 및 버스 스누프(snoop) 기능이 있는 프로세서, 주기억 장치, 상기 프로세서를 주기억 장치에 접속시키는 시스템 버스, 이 시스템 버스에 접속되어 시스템 버스상의 버스 명령을 감시하는 감시 수단, 이 감시 수단에 응답하여 데이타가 캐시 메모리에서 갱신될 때 저장하는 저장 수단, 캐시 메모리에 있는 데이타가 갱신된 상태에 있다는 것을 나타내는 상태 정보와 갱신된 데이타에 대응하는 물리적 어드레스, 캐시 메모리에 있는 갱신된 정보가 주기억 장치에 저장될 때 저장 수단에 저장된 상태 정보를 판독하는 판독 수단 및 시스템 버스에 접속되며 캐시 메모리에 있는 데이타가 프로세서에 의해 변경되었다는 것이 상태 정보에 의해 표시되면 캐시 메모리로부터 주기억 장치로 갱신된 데이타의 전송을 요구하기 위해 무효 버스 명령을 출력하는 명령 출력 수단을 구비한다.
본 발명의 다른 특징에 따르면, 캐시 메모리의 내용을 플러시하는 방법은 시스템 버스상의 버스 명령을 감시하는 단계, 데이타가 캐시 메모리에서 저장될 때 캐시 메모리에 있는 데이타가 갱신된 상태에 있다는 것을 나타내는 상태 정보와 갱신된 데이타에 대응하는 물리적 어드레스를 저장 수단에 저장하는 단계, 캐시 메모리에 있는 갱신된 데이타가 주기억 장치에 저장될 때 저장된 상태 정보를 판독하는 단계 및 캐시 메모리에 있는 데이타가 변경된 경우 캐시 메모리로부터 주기적 장치로 갱신된 데이타의 전송을 요구하기 위해 무효 버스 명령을 시스템 버스에 출력하는 단계를 포함한다.
본 발명의 다른 목적과 장점은 첨부한 도면을 참조한 이하의 실시예의 설명을 통해 더욱 명확해질 것이다.
이하, 도면을 참조하여 본 발명의 하나의 실시예를 설명할 것이다. 본 발명의 컴퓨터 시스템은 제2도에 도시된 프로세서를 구비한다. 프로세서(10)는 주기억 장치(12)의 내용의 특정 부분을 일시적으로 저장하며 복수 개의 캐시 블록(17)을 포함하는 캐시 메모리(16), 캐시 메모리(16)의 모든 캐시 블록(17)의 상태를 나타내는 정보를 저장하는 캐시 태그(tag)(14) 및 캐시 메모리와 캐시 태그를 제어하며 더티(dirty) 캐시 블록을 주기억 장치로 재기록하는 것을 제어하는 제어기(11)를 구비한다. 더티 캐시 블록이란 갱신된 데이타를 갖는 캐시 블록을 말한다.
프로세서(10)는 캐시 태그(14), 캐시 메모리(16) 및 시스템 버스(18)를 통해 주기억 장치(12)에 접속된 캐시 제어기(11)를 구비한다. 캐시 플러시 장치(20)는 시스템 버스(18)에 접속된다.
프로세서(10)가 캐시 메모리(16)에 있는 데이타의 상태를 변경하면, 프로세서(10)는 변경된 상태와 캐시 메모리(16)에 있는 데이타의 물리적 어드레스를 시스템 버스(18)에 접속된 기타의 장치에 알린다. 또한, 다른 캐시 메모리에 있는 데이타의 변경된 상태가 다른 장치로부터 통지되고, 통지된 어드레스와 일치되는 캐시된 데이타가 있다면, 프로세서(10)는 캐시 데이타에 대해 어떤 필요한 동작을 실행한다. 예컨대, 캐시 메모리에 있는 데이타의 일관성(coherency)은 스누프 기능에 의해 유지될 수 있다.
프로세서(10)는 카피-백 타입의 스누프 기능을 갖는다. 캐시 메모리(16)에 저장된 데이타가 프로세서(10)에 의해 변경되면, 프로세서는 다른 프로세서의 캐시 메모리에 저장된 공유 데이타를 무효화하기 위해 버스 명령을 발생한다.
프로세서(10)가 다른 프로세서로부터의 무효 버스 명령을 수신하고 타겟 데이타가 캐시 메모리(16)에 존재하는 경우, 프로세서(10)가 타겟 어드레스에 대응하는 데이타를 포함한다면 프로세서(10)는 캐시 메모리에 저장된 공유 데이타를 무효화한다. 본 명세서에서 사용되는 타켓데이타라는 용어는 다른 프로세서에 의해 지시된 공유 데이타를 말한다. 또한, 프로세서(10)는 타겟 어드레스에 대응하는 캐시 데이타가 프로세서(16)에 의해 변경되면, 다른 프로세서 또는 주기억 장치(12)에 데이타를 출력한다.
본 발명의 캐시 플러시 장치(20)는 제2도에 도시된 것과 같이, 주 제어기(38), 버스 인터페이스 회로(22), 외부 태그 제어기(24), 외부 태그 저장 장치(26), 외부 태그 판독 장치(28), 멀티플렉서(30), 외부 태그 검사 장치(32), 무효 버스 명령 생성 장치(34) 및 FIFO(선입선출:first-in first-out)버퍼(36)를 구비한다.
캐시 플러시 장치(20)내의 버스 인터페이스 회로(22)는 시스템 버스(18)에 사용되는 인터페이스이며, 다음의 3가지 기능을 갖는다. 제1기능은, 버스 인터페이스 회로(22)가 캐시 데이타의 상태 변경을 무효화하는 시스템 버스상의 무효 버스 명령을 수신하여, 이 무효 버스 명령을 외부 태그 제어기(24)로 전송한다. 무효 버스 명령은 타겟 데이타의 물리적 어드레스와 실행 명령을 갖는다. 제2기능은, 버스 인터페이스 회로(22)가 캐시 플러시 장치(20)로부터 명령을 수신하여, 주 제어기(38)로 전송하는 것이다. 캐시 플러시 장치(20)로부터의 버스 명령은 주 제어기(38)의 내부 레지스터에 판독 및 기록을 위한 액세스 명령을 포함한다. 예컨대, 내부 레지스터는 개시 어드레스 레지스터와 루프 카운트 레지스터를 포함한다. 제3기능으로는, 버스 인터페이스 회로(22)는 FIFO 버퍼(36)를 통해 무효 버스 명령 생성 장치(34)에 의해 생성된 무효 버스 명령(fsh-cmd)을 수신하여, 시스템 버스(18)에 무효 버스 명령을 출력한다.
외부 태그 제어기(24)는 캐시 메모리(16)의 캐시 태그를 시뮬레이트하기 위한 다음 3가지 기능을 갖는다. 제1기능으로는, 외부 태그 제어기(24)는 멀티플렉서(30)를 통해 외부 태그 저장 장치(26)에 태그 어드레스(w-addr)를 제공한다. 제2기능으로는, 외부 태그 제어기(24)는 버스 인터페이스(22)에 의해 제공된 버스 명령을 해독한다. 외부 태그 제어기(24)는 외부 태그 저장 장치(26)으로부터 판독한 종전의(old) 태그를 해독하여, 새로운 태그를 생성한다. 제3기능으로는, 외부 태그 제어기(24)는 외부 태그 저장 장치(26)에 태그 어드레스(w-addr)를 출력하고, 외부 태그 저장 장치에 새로운 태그(w-tag)를 저장한다. 이 새로운 태그는 프로세서(10)에 접속된 캐시 태그(14)에 저장된 태그와 동일하다. 외부 태그 제어기(24)는 프로세서 캐시에 따라, 외부 캐시 태그 저장 장치(26)내에서 캐시 태그(14)에 있는 동일한 태그 정보를 유지하기 위해, 외부 태그 저장 장치(26)의 내용과 버스 명령의 내용으로부터 새로운 태그를 생성한다.
외부 태그 저장 장치(26)는 외부 태그 제어기(24)에 의해 생성된 태그(w-tag)를 저장한다. 태그의 내용 변화는 프로세서 캐시 제어 구조에 따른다. 예컨대, 태그의 내용은 물리적 어드레스, 갱신(Modified)/배타(Exclusive)/공유(Shared)/무효(Invalid)를 나타내는 2 또는 3비트 상태 및 에러를 검출 및 교정하는 ECC(에러 정정 코드)로 구성된다.
여기서, ECC에 대한 장치의 설명은 본 발명과 관련이 없기 때문에 생략하기로 한다. 본 발명에 있어서, 캐시 블록이 더티 상태(갱신)를 가지는지 그렇지 않은지는 중요하지 않다. 따라서, 외부 태그 저장 장치(26)는 더티 상태를 나타내기 위해 1비트만을 저장한다. 여기서, 본 발명의 실시예에서 가장 쉽게 설명하기 위해, 더티 상태를 나타내는 1비트만이 외부 태그 저장 장치(26)에 저장된다는 것을 가정할 수 있다. 그러나, 여러 비트로 이루어진 완전한 상태도 외부 태그 저장 장치(26)에 저장될 수 있다.
MESI 프로토콜이 사용되는 경우, 프로세서(10)는 E(베타) 상태로부터 M(갱신) 상태로의 상태 정보를 통지하는 버스 명령을 발행하지 않는다. 이것은 시스템 버스(18)에 접속된 다른 캐시 메모리에 동일 어드레스를 갖는 캐시 블록이 없기 때문이다. 이 경우, 캐시 플러시 장치(20)는 캐시 블록의 태그가 변경되었는지를 알 수 없다. 이러한 상황을 회피하기 위해, 프로세서(10)로부터의 판독 버스 명령이 시스템 버스(18)로 출력되면, 버스 인터페이스 회로(22)는 데이타가 다른 캐시 메모리에 의해 공유되고 있다는 것을 나타내는 응답을 하게 된다. 프로세서(12)는 이러한 응답에 의해 캐시 블록을 공유 상태(S)로 한다. 그 결과, 프로세서가 캐시브록의 상태를 S(공유) 상태에서 M(갱신) 상태로 변경하면, 프로세서(10)는 시스템 버스(18)에 무효 버스 명령을 출력한다. 캐시 플러시 장치(20)는 무효 버스 명령을 수신하고, S(공유) 사태로부터 M(갱신) 상태로 변경되었다는 것을 인식하여, 이 상태를 외부 태그 저장 장치(26)에 기록한다.
외부 태그 저장 장치(26)는 다음의 2가지 동작을 주로 실행한다. 제1동작은 외부 태그 저장 장치(26)가 외부 태그 제어기(24)로부터 어드레스(w-addr)와 태그(w-tag)를 수신하여 외부 태그 저장 장치(26)에 기록한다. 제2동작은 외부 태그 저장 장치(26)가 멀티플렉서(30)를 통해 외부 태그 판독 장치(28)로부터 어드레스(r-addr)를 수신하고, 외부 태그 저장 장치(26)로부터 태그(r-tag)를 판독하여 외부 태그 검사 장치(32)에 출력한다.
외부 태그 저장 장치(26)의 메모리 용량은 시스템 버스(18)에 접속된 캐시 메모리의 모든 태그의 크기이다. 캐시 플러시 장치(20)가 캐시 데이타를 저장할 필요가 없기 때문에, 외부 태그 저장 장치(26)의 메모리 용량은 캐시 메모리(16)의 용량에 비해 훨씬 적게 기록될 것이다.
외부 태그 판독 장치(28)는 외부 태그 저장 장치(26)로부터 태그를 판독하기 위해 태그 어드레스(r-addr)를 생성하여, 멀티플렉서(30)를 통해 외부 태그 저장 장치(26)에 출력한다. 외부 태그 판독 장치(28)는 주 제어기(38)를 통해 캐시 플러시 동작의 개시 어드레스 및 루프 카운트를 수신한다.
외부 태그 판독 장치(28)는 다음 동작들을 실행한다. 제1동작으로는, 외부 태그 판독 장치(28)는 개시 어드레스와 루프 카운트를 판독한다. 만일, 판독된 루프 어드레스가 0이면, 외부 태그 판독 장치(28)는 주 제어기(38)의 플러시 개시 비트에 0을 저장하고, 캐시 플러시 동작을 종료한다. 만일, 루프 카운트의 수가 0이 아니면, 외부 태그 판독 장치(28)는 멀티플렉서(30)를 통해 외부 태그 저장 장치(26)에 개시 어드레스(r-addr)를 출력한다. 외부 태그 판독 장치(28)는 캐시 블록의 크기만큼 개시 어드레스를 증가시키고, 주 제어기(38)의 개시 어드레스 레지스터에 이 어드레스를 저장한다. 이 개시 어드레스는 외부 태그 저장 장치(26)의 캐시 블록의 수의 계수(modulus)로서 제공된다. 즉, 개시 어드레스가 외부 태그 저장 장치(26)의 최대 어드레스로부터 증가하면, 개시 어드레스는 외부 태그 저장 장치(26)의 최소 어드레스로 복귀(순환)된다. 외부 태그 판독 장치(28)는 루프 카운트의 수를 감소시킨다. 만일 루프 카운트가 0이면, 동작 개시전의 원래의 루프 카운트는 루프 카운트 레지스터에 기록되며, 플러시 개시 비트내에 기록된다. 그리고나서, 캐시 플러시 동작은 종료된다. 만일 감소된 루프 카운트가 0이 아니면, 외부 태그 판독 장치(28)는 주 제어기(38)의 루프 카운트 레지스터에 감소 루프 카운트를 기록한다.
멀티플렉서(30)는 외부 태그 제어기(24)에 의해 태그를 기록하기 위한 요구(request)와 외부 태그 판독 장치(28)에 의해 태그를 판독하기 위한 요구중에서 하나를 선택한다. 멀티플렉서(30)는 2개의 요구가 동시에 나타나면, 외부 태그 제어기(24)에 의해 기록 요구된 태그에 우선 순위를 부여한다.
외부 태그 검사 장치(32)는 외부 태그 저장 장치(26)로부터 판독된 태그(r-tag)를 참조하여 대응하는 캐시 블록이 더티한지를 검사한다. 외부 태그 검사 장치(32)는 캐시 플러시 명령 생성 요구(r-fsh)와 외부 태그 저장 장치(26)로부터 판독된 태그(r-tag) 중 더티 상태의 태그에 대응하는 물리적 어드레스 태그를 출력한다. 태그가 더티 상태를 나타내지 않는다면, 외부 태그 검사 장치(32)는 캐시 플러시 명령 생성 요구(r-fsh)를 출력하지 않는다.
무효 버스 명령 생성 장치(34)는 외부 태그 검사 장치(32)로부터 출력된 물리적 어드레스 태그(r-fsh)를 갖는 캐시 플러시 명령 요구를 수신하여, 이 수신된 물리적 어드레스 태그를 이용하여 대응하는 캐시 블록을 플러시하는 캐시 플러시 명령을 출력한다. 예컨대, 캐시 플러시 명령은 일관성 버스 무효 명령이 될 수 있다.
FIFO 버퍼(36)는 파이프라인에 의해 무효 버스 명령 생성 장치(34)로부터 거의 매 사이클마다 입력되는 캐시 플러시 명령(flush)과 수 사이클마다 시스템 버스(18)상에 출력되는 캐시 플러시 명령(fsh-cmd) 사이의 시간차를 완충하는 장치이다. FIFO 버퍼(36)는 축적하고 있는 캐시 플러시 명령이 일정 용량을 초과한 경우, 외부 태그 판독 장치(28)의 동작을 일시 정지시켜 캐시 플러시 명령의 생성을 억제한다. 이 후, FIFO 버퍼(36)가 축적하고 있는 캐시 플러시 명령이 일정량 보다 적어진 경우, 외부 태그 판독 장치(28)의 동작을 재기시킨다.
주 제어기(38)는 시스템 버스(18)를 통해 프로세서(10)에 의해 제공된 명령(cmd)에 따라, 캐시 플러시 장치(20)의 각 부분을 제어한다. 주 제어기(38)는 개시 어드레스 레지스터, 루프 카운트 레지스터 및 플러시 개시 비트(도시 생략)를 포함한다. 주 제어기(38)는 다음의 기능들을 갖는다. 제1기능으로는, 주 제어기(38)는 외부 태그 판독 장치(28), 외부 태그 검사 장치(32), 무효 버스 명령 생성 장치(34) 및 FIFO 버퍼(36)를 초기화시킨다. 제2기능으로는, 주 제어기(38)는 외부 태그 판독 장치(28)에 공급된 태그 어드레스(r-addr)의 초기값(개시 어드레스)을 설정하고, 루프 카운트를 개시 어드레스 레지스터와 루프 카운트 레지스터 각각에 설정한다. 제3기능으로는, 플러시 개시 비트가 프로세서(10)에 의해 1로 설정되면, 주 제어기(38)는 캐시 플러시 동작이 시작될 수 있도록 외부 태그 판독 장치(28)를 개시한다. 제4기능으로는, 주 제어기(38)는 캐시 플러시 명령의 생성을 중단시키기 위해 외부 태그 판독 장치(28)를 제어한다. 이러한 경우에 있어서, 플러시 개시 비트는 외부 태그 판독 장치(28)가 동작을 멈추기 전에, 외부 태그 판독 장치(28)에 의해 0으로 설정된다. 제5기능으로서는, 주 제어기(38)는 개시 어드레스 레지스터와 루프 카운트 레지스터로부터 개시 어드레스 및 루프 카운트를 판독한다. 판독된 값은 프로세서(10)로 보내진다. 전술한 것과 다른 기능으로는, 주 제어기(38)는 프로세서(10)에 생성된 플러시 명령의 수를 알려주는 기능 및 버스 클록 분주기에 의해 수 사이클마다 외부 태그 판독 장치(28)를 개사하는 기능을 가질 수도 있다.
이하에서는, 실시예의 동작을 설명한다. 제3도를 참조하면, 컴퓨터 시스템이 정상적으로 동작하는 동안, 버스 인터페이스 회로(22)는 시스템 버스(18)상의 버스 명령을 스누프하여, 외부 태그 제어기(24)로 스누프된 결과를 제공한다(단계 A1).
외부 태그 제어기(24)는 버스 인터페이스 회로(22)로부터 제공된 버스 명령의 종류를 구분한다(단계 A2). 캐시 메모리의 상태를 나타내는 버스 명령이 변경되면(단계 A3), 외부 태그 제어기(24)는 새로운 태그(w-tag)를 생성한다. 외부 태그 제어기(24)는 태그 어드레스(w-addr)에 따라 외부 태그 저장 장치(26)에 새로운 태그를 저장한다.(단계 A4). 외부 태그 제어기(24)는 캐시 블록 및 캐시의 상태에 대응하는 물리적 어드레스를 외부 태그 저장 장치(26)에 저장한다. 캐시의 상태 변화는 프로세서의 구조에 따라 상이하다. 그러나, 예컨대, 다음과 같은 R4000에서의 캐시의 상태를 정의하는 것이 가능하다.
상기 일관성 판독 무효화에서, 프로세서가 캐시 블록에 데이타를 기록할 때 캐시 블록에 대응하는 데이타가 없으면, 프로세서는 주기억 장치로부터 데이타를 판독하여 캐시 메모리에 저장하고 캐시 블록에 있는 데이타를 변경시킨다. 프로세서는 일관성 무효 명령을 다른 프로세서에 알린다. 만일 다른 프로세서가 다른 캐시 메모리내에 대응하는 데이타를 가지고 있으면, 다른 프로세서는 캐시 블록의 데이타를 무효화한다.
일관성 무효화에서, 만일 프로세서가 캐시 메모리내의 데이타를 변경하면, 그 프로세서는 다른 프로세서에게 통지하여 그 다른 프로세서가 자신의 캐시 메모리내의 대응 데이타를 무시하도록 한다.
일관성 판독에서, 만일 대응하는 데이타가 갱신된 상태로 캐시 메모리내에 저장되면, 프로세서는 주기억 장치로부터 또는 다른 프로세서의 캐시 메모리로부터 데이타를 판독한다.
(캐시 플로시 장치로부터의) 일관성 무효는 R4000의 일예이다. 본 발명의 캐시 플러시 장치는 프로세서의 캐시 제어기에 캐시 플러시 명령을 출력한다. 만일 캐시 메모리가 갱신 상태의 대응하는 데이타를 유지한다면, 데이타는 주기억 장치에 재기록된다.
(read with write forcecoming) 카피-백 기록에서, 캐시 메모리의 내용은 메모리에 기록된다.
이하에서는, 캐시 플러시 동작을 실행하는 캐시 플러시 장치(20)의 동작을 제4도를 참조하여 설명할 것이다.
먼저, 캐시 플러시 장치(20)가 리셋되면, 주 제어기(38)는 개시 어드레스 레지스터와 루프 카운트 레지스터를 디폴트 값(default value)으로 세트한다. 그렇게 함으로써, 주 제어기(38)는 캐시 블록의 최소 어드레스를 개시 어드레스로 세트하고, 캐시 블록의 수를 루프 카운트로 세트한다.
프로세서(10)는 주 제어기(38)의 내부 레지스터의 값을 세팅하기 위한 버스 명령을 출력한다. 만일, 버스 인터페이스 회로(22)로부터 수신된 버스 명령이 주제어기(38)에 있는 내부 레지스터의 세팅 동작에 대한 것이라면(단계 A5), 주 제어기(38)는 버스 명령의 내용에 따라 그 값을 내부 레지스터에 저장한다(단계 A7). 따라서, 주 제어기(38)는 프로세서(10)로부터의 버스 명령에 따라, 개시 어드레스 레지스터와 루프 카운트 레지스터를 세트한다(단계 B1-B2).
한편, 만일 수신된 버스 명령이 캐시 플러시 장치에 관한 것이고, 단계 A5에서의 내부 레지스터에 대한 세팅 동작이 아니라면, 주 제어기(38)의 내부 레지스터로부터 판독된 데이타는 시스템 버스(18)로 출력된다.
프로세서(10)는 캐시 플러시 동작을 나타내기 위해, 주 제어기(38)의 플러시 개시 비트에 1을 저장한다(단계 B3). 만일, 플러시 개시 비트에 1이 저장되어 있으면, 주 제어기(38)는 캐시 플러시 동작을 개시한다(단계 B4, A8-A9).
만일, 캐시 플러시 동작이 언터럽트될 필요가 있다면, 프로세서(10)는 플러시 개시 비트에 0을 저장한다. 캐시 플러시 장치(20)의 처리 과정은 제3도의 단계 A1로 복귀한다(단계 B5-B7).
제5도는 본 발명의 캐시 플러시 동작을 설명하기 위한 흐름도이다. 캐시 플러시 동작은 다음의 사이클을 반복한다.
캐시 플러시 동작의 속도를 높이기 위해, 본 실시예는 파이프라인 처리를 채택한다. 즉,제6도에 도시된 4개의 동작이 병렬로 실행된다.
먼저, 주 제어기(38)는 파이프라인 동작이 준비 상태에 있는지를 판단한다(단계 C1).
만일 파이프라인 동작이 준비되었으면, 외부 태그 판독 장치(28)는 플러시 개시비트의 값을 판독하여, 루프 카운트 레지스터와 주 제어기(38)의 개시 어드레스 레지스터에 그 값을 설정한다(단계 C2, C3 및 C4).
외부 태그 판독 장치(28)는 플러시 개시 비트가 1로 세트되어 있는지를 판정한다(단계 C4, C16). 만일, 플러시 개시 비트가 1로 세트되어 있으면, 캐시 플러시 동작이 계속된다.
또한, 외부 태그 판독 장치(28)는 외부 태그 저장 장치(26)에 개시 어드레스(r-addr)를 출력한다. 외부 태그 판독 장치(28)는 주 제어기(38)의 개시 어드레스 레지스터에 증가된 개시 어드레스를 저장한다(단계 C5).
또한, 외부 태그 판독 장치(28)는 루프 카운트 레지스터에 감소된 루프 카운트를 저장한다(단계 C3 및 C13). 만일 감소된 루프 카운트가 0이 아니면, 캐시 플러시 동작은 계속된다(단계 C14).
한편, 외부 태그 저장 장치(26)는 외부 태그 판독 장치(28)로부터의 어드레스(r-addr) 출력에 대응하는 태그(r-tag)를 판독한다. 판독된 값은 외부 태그 검사 장치(32)에 출력된다(단계 C6-C7). 만일 태그 판독이 준비되지 않았다면, 파이프라인 동작은 일시적으로 중단된다.
외부 태그 검사 장치(32)는 태그에 대응하는 캐시 블록의 개시가 더티 상태인지를 판정하여(단계 C8), 만일 더티 상태이면, 외부 태그 검사 장치(32)는 무효 버스 명령 생성 장치(34)에 r-fsh 명령을 출력한다.
무효 버스 명령 생성 장치(34)는 대응하는 캐시 블록을 플러시하기 위해 태그의 물리적 어드레스를 갖는 일관성 무효 명령(캐시 플러시 명령:flush)을 생성하여, FIFO 버퍼(36)에 출력한다(단계 C9). 이때, FIFO 버퍼(36)가 꽉 차있는 경우, FIFO에 공간이 생길 때까지 파이프라인 동작은 중단된다(단계 C10).
캐시 플러시 명령이 FIFO 버퍼(36)에 저장되어 있으면, 버스 인터페이스 회로(22)는 시스템 버스(18)의 사용권을 획득하여(단계 C11), FIFO 버퍼(36)에 저장된 캐시 플러시 명령을 시스템 버스(18)로 출력한다(단계 C12).
이상의 사이클이 캐시 플러시 장치(20)로부터 1개의 캐시 플러시 명령을 발행하기 위한 동작이다. 이 사이클은 루프 카운트 레지스터에 의해 지시된 회수만큼 반복하여 실행된다. 만일 루프 카운트 레지스터의 값이 0으로 감소되면(단계 C14), 외부 태그 판독 장치(28)는 주 제어기(38)의 플러시 개시 비트를 리셋한다(단계 C15). 그 결과, 주 제어기(38)는 캐시 플러시 동작을 중단한다.
제6도에는 캐시 플러시 장치(20)에 대한 파이프라인의 각 단계의 처리를 도시하였다. 이 동작은 다음과 같이 진행한다. (1) 캐시 태그 어드레스가 외부 태그 판독 장치(28)에 의해 판독된다(단계 C2). (2) r-tag가 외부 태그 저장 장치(26)로부터 판독되고, 캐시의 상태가 판정된다(단계 C7 및 C8). (3) 캐시의 상태가 더티 상태이면, 캐시 플러시 명령이 무효 버스 명령 생성 장치(34)에 의해 생성된다(단계 C9). (4) 캐시 플러시 명령이 출력된다(단계 C11).
일반적으로, 버스 명령은 수 회의 버스 사이클을 필요로 한다. 외부 태그 저장 장치(26)가 하나의 버스 사이클내에서 액세스될 수 있다면, 외부 태그 판독 장치(28)로부터 무효 버스 명령 생성 장치(34)까지의 파이프라인 동작은 매 버스 사이클마다 실행될 수 있다.
따라서, 파이프라인 동작으로 인해 캐시 블록 태그가 매 버스 사이클마다 판독될 수 있는 반면, 캐시 플러시 명령은 수 회의 버스 사이클을 필요로 한다.
필요로 하는 버스 사이클의 시간차는 FIFO 버퍼(36)에 의해 완충된다. 더티 블록의 수가 적으면, FIFO 버퍼(36)가 꽉 차는 일은 없으므로, 캐시 플러시 동작에 필요한 시간은 태그 판독 시간과 동일하게 된다.
캐시 플리시 시간 = 캐시 블록의 수(버스 사이클)
따라서, 본 발명의 제1실시예는 캐시 플러시 명령을 반복하는 프로세서와 비교하여, 캐시 플러시 동작을 실행하는 데 많은 시간을 절약할 수 있다. 전술한 캐시 플러시 동작은 본 발명의 제1실시예에서 시스템 버스(18)에 접속된 캐시 플러시 장치(20)를 제어함으로써 실행된다. 정상적인 동작시에는, 시스템 버스(18)상에 발행된 버스 명령은 캐시 플러시 장치(20)에 의해 감시된다. 캐시 플러시 장치(20)는 외부 태그 저장 장치(26)에 저장된 캐시 태그(14)와 동일한 태그를 저장한다.
캐시 플러시 동작이 실행되면, 캐시 플러시 장치(20)는 태그의 상태를 검사하고, 캐시의 더티 블록을 주기억 장치(12)에 재기록하기 위하여 캐시 플러시 명령을 캐시 제어기에 발행한다.
본 발명의 가장 효과적인 장점 중 하나는 주기억 장치에서 체크 포인트를 획득할 수 있다는 것이다. 체크 포인트는 고장이 발생할 때 데이타 처리가 개시되는 컴퓨터 시스템 상태이다. 주기억 장치내에서 체크 포인트를 획득하기 위해, 캐시 메모리는 반드시 플러시되어야 한다. 캐시 플러시 장치(20)가 프로세서(10)에 의해 컴퓨터 시스템의 체크 포인트에서 개시되면, 프로세서는 자기 자신이 캐시 플러시 명령을 실행할 필요가 없다.
게다가, 캐시 플러시가 실행되면, 캐시 플러시 장치(20)는 캐시 플러시 동작, 어드레스 증가 및 카운터 감소를 동시에 실행할 수 있다. 연속하는 캐시 블록의 캐시 플러시 동작은 파이프라인 동작에 의해 실행될 수 있다. 따라서, 캐시 플러시 동작에 필요한 시간을 크게 감소시킬 수 있다.
다음으로, 본 발명의 제2실시예를 설명하도록 하겠다.
제7도는 컴퓨터 시스템의 주요 구성 요소를 나타내고 있다. 제2실시예는 제1실시예의 구성 요소에 두 개 이상의 태그를 동시에 검사하는 수단을 부가한 것이다. 두 개의 외부 태그 검사 장치(46, 48) 및 이 장치의 출력(r-fsh1, r-fsh2)을 선택하는 멀티플렉서(MUX)(49)가 부가되어 구성된다. 외부 태그 검사 장치의 수는 임의(2 내지 4)로 선택될 수 있지만, 일반적으로 캐시 블록 어드레스가 이진수에 의해 표현되므로, 외부 태그 검사 장치의 수는 2승 개가 좋다.
버스 인터페이스 회로(버스 I/F)(22), 외부 태그 제어기(24), 멀티플렉서(MUX)(30), 무효 버스 명령 생성 장치(34), 주 제어기(38) 및 FIFO 버퍼(36)는 제1실시예에서와 같은 동작으로 실행되므로, 동일 부호를 붙이고, 설명은 생략한다. 외부 태그 검사 장치(46, 48)는 제2도에 있는 외부 태그 검사 장치(32)와 동일한 기능을 한다.
외부 태그 판독 장치(42)는 제1실시예와 같은, 주 제어기(38)로부터 개시 어드레스와 루프 카운트와 플러시 개시 비트 값을 수신한다. 외부 태그 판독 장치(42)는 멀티플렉서(30)를 통해 외부 태그 저장 장치(44)에 개시 어드레스를 출력하고, 다음의 개시 어드레스와 감소된 루프 카운트를 계산한다. 여기서, 개시 어드레스의 증가분은 캐시 블록의 크기와 외부 태그 검사 장치의 개수를 승산한 수이다. 루프 카운트의 감소분은 외부 태그 검사 장치의 개수이다.
외부 태그 저장 장치(44)는 외부 태그 판독 장치(42)로부터 수신된 어드레스(r-addr)에 따라, 2개의 외부 태그 검사 장치(46, 48)에 대한 태그(r-tag1, r-tag2)를 동시에 출력한다.
예컨대, 제7도에 도시된 것과 같이, 외부 태그 검사 장치의 수가 2개이면, 외부 태그 저장 장치(44)는 캐시 블록 어드레스의 최하위 비트를 무시한다. 외부 태그 저장 장치(44)는 짝수 어드레스와 홀수 어드레스를 동시에 판독하여, 외부 태그 검사 장치(46, 48)로 출력한다.
멀티플렉서(MUX)(49)는 외부 태그 검사 장치(46, 48)의 출력을 수신한다. 만일 멀티플렉서(MUX)(49)가 복수 개의 캐시 플러시 명령을 수신한다면, 임의로 1개를 선택한다. 다음 사이클에서, 멀티플렉서는 나머지 캐시 플러시 명령을 출력한다.
멀티플렉서(49)는 입력값을 일시적으로 저장하는 버퍼(도시 생략)을 구비하는 것이 좋다. 만일 버퍼가 꽉 찬 경우, 멀티플렉서(49)는 외부 태그 판독 장치(42)의 처리를 일시적으로 정지시킨다.
다음으로, 제2실시예의 동작을 설명하도록 하겠다. 버스 인터페이스 회로(22), 외부 태그 제어기(24) 및 외부 태그 저장 장치(44)의 동작은 정상적인 동작 상태의 전술한 제1실시예에서와 동일하기 때문에 설명을 생략한다.
제8도 및 제9도는 캐시 플러시의 제2실시예에서의 동작을 설명한 흐름도이다. 캐시 플러시 동작은 이하의 사이클을 반복한다. 제8도에 도시된 단계 D1-D7 및 D17-D21은 제5도에 도시된 단계 C1-C7 및 C13-C17과 동일하다. 캐시 플러시 장치(40)는 제1실시예에서와 동일한 파이프라인 동작을 실행할 수 있다.
프로세서(10)가 주 제어기(38)의 플러시 개시 비트에 1을 기록하면, 캐시 플러시 장치(20)는 캐시 플러시 동작을 실행한다. 외부 태그 판독 장치(42)는 루프 카운트 레지스터와 개시 어드레스 레지스터의 내용을 판독하여, 파이프라인 동작을 실행한다. 외부 태그 판독 장치(42)는 멀티플렉서(30)를 통해 외부 태그 저장 장치(44)에 개시 어드레스를 출력한다. 증가된 개시 어드레스는 개시 어드레스 레지스터에 동시에 기록된다. 감소된 루프 카운트는 루프 카운트 레지스터에 기록된다(단계 D1-D5).
외부 태그 저장 장치(44)는 태그 판독 어드레스(r-addr)의 최하위 비트를 무시한다. 태그(r-tag1, r-tag2)는 홀수 어드레스와 짝수 어드레스에서 동시에 판독된다. 판독된 태그는 외부 태그 검사 장치(46, 48)에 출력된다(단계 D6-D7).
또한, 여기서는 2개의 외부 태그 검사 장치(46, 48)가 있는 경우에 대하여 설명하고 있지만, 예컨대 4개의 외부 태그 검사 장치를 설치한 경우, 외부 태그 저장 장치(44)는 태그 판독 어드레스(r-addr)의 최하위 2비트를 무시하여, 동시에 4개의 태그를 판독하여 각각 외부 태그 검사 장치로 출력한다.
외부 태그 검사 장치(46, 48)는 외부 태그 저장 장치(44)로부터의 태그가 더티 상태인지를 판정하여(단계 D8-D9), 더티 상태이면, 태그는 멀티플렉서(49)로 출력된다.
멀티플렉서(49)는 수신된 태그를 무효 버스 명령 생성 장치(34)로 출력한다. 멀티플렉서(49)가 두 개 이상의 태그를 동시에 수신하면, 수신된 태그 중 하나가 멀티플렉서(49)에 의해 선택된다. 나머지 하나의 태그는 다음 버스 사이클에 무효 버스 명령 생성 장치(34)로 출력된다(단계 D10-D12).
무효 버스 명령 생성 장치(34)는 태그의 물리적 어드레스 부분을 이용하여 캐시 플러시 명령을 생성한다(단계 D13-D14).
캐시 플러시 명령이 FIFO 버퍼(36)에 저장되면, 버스 인터페이스 회로(22)는 시스템 버스(18)의 사용권을 획득한다(단계 D15). FIFO 버퍼(36)에 저장된 캐시 플러시 명령은 시스템 버스(18)로 출력된다(단계 D16).
이 사이클은 루프 카운트가 0이 될 때까지 반복된다.
전술한 바와 같이, 제2실시예의 캐시 플러시 동작에 있어서 특히 시간이 걸리는 캐시 태그 검사에 대하여, 동시에 복수 개의 태그를 외부 태그 저장 장치(44)로부터 판독하여 복수 개의 외부 태그 검사 장치(46, 48)를 검사함으로써 1버스 블록마다 복수 개의 캐시 블록의 태그에 대하여 더티 상태인지의 여부를 검사할 수 있다. 따라서, 캐시 태그 검사 시간을 대폭 감소시킬 수 있다. 예컨대, 캐시 블록의 태그 판독 시간은 제1실시예에 비해 반으로 단축시킬 수 있다.
더티 상태의 캐시 블록의 수가 적은 경우, 캐시 플러시 시간은 태그 판독 시간과 거의 동일하게 된다.
캐시 플러시 시간은 캐시 블록의 수에서 외부 태그 검사 장치의 수(버스 사이클)를 나눈 값이다.
제7도에는 외부 태그 검사 장치(46, 48)를 도시하였지만, 본 발명은 이러한 구성에만 한정되는 것은 아니다. 예컨대, 캐시 플러시 장치는 외부 태그 검사 장치와 동일한 수의 무효 버스 명령 생성 장치를 갖는 것이 가능하다. 두 개 이상의 무효 버스 명령 생성 장치 중의 출력은 멀티플렉서에 의해 선택된다. 또한, FIFO 버퍼(36)의 수는 외부 태그 검사 장치의 수와 동일할 수 있다. FIFO 버퍼(36)로부터 출력된 값은 멀티플렉서에 의해 선택된다.
다음으로, 본 발명의 제3실시예를 설명하도록 하겠다.
제10도는 컴퓨터 시스템의 주요 구성 요소를 나타낸 블록도이다. 제3실시예에 있어서, 외부 태그 고속 저장 장치(58), FIFO 버퍼(62) 및 멀티플렉서(63)가 제2실시예의 구성 요소에 부가된다. 제3실시예는 2개의 외부 태그 검사 장치(46, 48)를 갖는 구성 요소를 나타내고 있지만, 본 발명은 이러한 구성에 한정되지 않는다.
제3실시예에 있어서, 외부 태그 판독 장치(42), 주 제어기(38), FIFO 버퍼(36), 버스 인터페이스 회로(버스 I/F)(22), 무효 버스 명령 생성 장치(60) 및 멀티플렉서(49)는 제2실시예에서와 유사하기 때문에 생략한다. 멀티플렉서(49)는 2개의 외부 태그 검사 장치(46, 48)의 출력을 선택한다. 그 선택된 결과는 FIFO 버퍼(62)로 출력된다. 멀티플렉서(64)는 제2실시예에 대하여 설명된 멀티플렉서(30)와 동일한 기능을 갖는다. 선택된 출력은 외부 태그 고속 저장 장치(58)로 출력된다.
외부 태그 제어기(54)는 버스 인터페이스 회로(22)를 통해 시스템 버스(18)의 스누프 상태에 따라 획득된 태그를 물리적 어드레스에 대한 부분(w-tag-a)과 캐시 블록의 상태를 나타내는 부분(w-tag-d)으로 나눈다. 외부 태그 저장 장치(56)는 외부 태그 제어기(56)에 의해 출력된 태그의 캐시 블록을 아나태는 물리적 어드레스인 w-tag-a를 수신한다. 이것은 외부 태그 저장 장치(56)에 저장된다. 또한, 외부 태그 저장 장치(56)는 FIFO 버퍼(62)로부터 멀티플렉서(63)를 통해 획득된 더티 상태의 캐시 블록 어드레서(r-addr-f)를 수신한다. 외부 태그 저장 장치(56)는 대응하는 캐시 블록을 나타내는 물리적 어드레스(r-addr-f)를 판독하여, 무효 버스 명령 생성 장치(60)로 출력한다.
외부 태그 고속 장치(58)는 캐시 블록의 상태를 나타내는 태그(w-tag-d)를 수신한다. 이 값은 외부 태그 고속 저장 장치에 저장된다. 외부 태그 고속 저장 장치(58)에 의해 저장된 캐시 블록의 수는 외부 태그 저장 장치(56)의 캐시 블록의 수와 동일하다. 제3실시예에 있어서, 외부 태그 고속 저장 장치(58)는 제1 및 제2실시예에서 설명한 것과 같이, 캐스의 상태로서 대응하는 캐시 블록이 더티 상태인지의 여부를 나타내는 1비트를 저장한다. 외부 태그 고속 저장 장치(58)는 다음 2가지 동작을 행한다. 제1동작은, 외부 태그 고속 저장 장치(58)가 외부 태그 제어기(54)로부터 출력된 태그 어드레스(w-addr)에 따라 태그(w-addr-d)를 저장하는 것이다. 제2동작은, 외부 태그 고속 저장 장치(58)가 외부 태그 판독 장치(42)로부터 출력된 어드레스(r-addr)에 따라 2개의 태그(r-tag1, r-tag2)를 동시에 판독하는 것이다. 판독된 태그는 외부 태그 검사 장치(46, 48)로 출력된다.
외부 태그 검사 장치(46, 48)는 외부 태그 고속 저장 장치로부터 판독된 태그(r-tag1, r-tag2)가 더티 상태인지를 판정한다. 판독된 태그가 더티 상태이면, 외부 태그 검사 장치(46, 48)는 주 제어기(38)에 있는 개시 어드레스 레지스터의 값으로부터의 캐시 블록 어드레스와 r-tag1 및 r-tag2에 의해 결정된 하위 어드레스를 생성한다. 예컨대, 개시 어드레스 레지스터 값을 10으로 하여, r-tag1을 홀수측 태그, r-tag2를 짝수측 태그로 한 경우, 양쪽 모두 더티상태이면, 외부 태그 검사 장치(46)로부터의 출력 r-fsh1에는 11이, 외부 태그 검사 장치(48)로부터의 출력 r-tag2에는 10이 캐시 블록 어드레스로서 출력된다.
FIFO 버퍼(62)는 외부 태그 저장 장치(56)를 액세스하는 사이클 시간과 멀티플렉서(49)가 어드레스(r-flush)를 출력하는 시간 사이의 차를 완충하는 장치이다. FIFO 버퍼(62)는 플러시 동작이 실행될 때의 캐시 블록의 어드레스(r-flush)를 수신한다. 캐시 블록 어드레스(r-addr-f)는 외부 태그 저장 장치(56)가 정보를 수신할 수 있는 타아밍에 기초하여, 멀티플렉서(63)를 통해 외부 태그 저장 장치(56)로 출력한다.
멀티플렉서(63)는 r-addr-f 및 r-addr-w 중 하나를 선택한다. r-addr-f는 외부 태그 저장 장치(56)로부터 r-data-f를 판독하기 위한 어드레스이다. w-addr은 외부 태그 제어기(56)에 태그(w-tag-a)를 기록하기 위한 어드레스이다. 선택된 캐시 블록 어드레스는 외부 태그 저장 장치(56)로 출력된다. 멀티플렉서(63)가 동시에 2개의 요구를 수신하면, 외부 태그 제어기(56)의 캐시 블록 어드레스를 선택하기 위한 우선 순위를 제공하고, 외부 태그 저장 장치(56)로 출력한다.
이하에서는, 제3실시예의 동작을 설명하도록 하겠다. 버스 인터페이스 회로(22)의 동작은 전술한 제1실시예에서와 유사하므로, 상세한 설명은 생략한다. 외부 태그 제어기(54)는 버스 인터페이스 회로(22)에 의해 스누프된 버스 명령을 수신한다. 외부 태그 제어기(54)는 외부 태그 저장 장치(56)에 물리적 어드레스(w-tag-a)를 출력하여, 외부 태그 고속 저장 장치(58)에 캐시의 상태(w-tag-d)를 출력한다. 외부 태그 고속 저장 장치(58)는 어드레스(w-addr)에 있는 상태를 저장한다.
제11도 및 제12도는 제3실시예에 있어서의 캐시 플러시 동작을 설명하는 흐름도이다. 캐시 플러시 동작은 다음의 사이클을 반복한다. 제11도에 도시된 단계 E1-E6 및 E18-E22는 제5도에 도시된 C1-C6 및 C13-C17과 유사하다. 또한, 캐시 플러시 장치(50)는 제1실시예에서와 동일한 방식으로 파이프라인 동작을 실행한다.
프로세서(10)가 주 제어기(38)에 있는 플러시 개시 비트에 1을 저장하면, 캐시 플러시 장치(50)는 캐시 플러시 동작을 개시한다
외부 태그 판독 장치(42)는 파이프라인 동작이 준비되었으면, 루프 카운트 레지스터와 개시 어드레스 레지스터의 내용을 판독한다. 외부 태그 판독 장치(42)는 개시 어드레스 레지스터에 있는 증가된 개시 어드레스를 저장함과 동시에 멀티플렉서(64)를 통해 외부 태그 고속 저장 장치(58)로 판독된 개시 어드레스(r-addr)를 출력한다. 감소된 루프 카운트는 루프 카운트 레지스터에 저장된다(단계 E1-E5).
외부 태그 고속 저장 장치(58)는 태그 판독 어드레스(r-addr)의 최하위 비트를 무시한다. 홀수 어드레스(r-tag1)(최하위 비트가 1)와 짝수 어드레스(r-tag2)(최하위 비트가 0)는 외부 태그 고속 저장 장치(58)에 의해 동시에 판독된다. 판독된 태그는 외부 태그 검사 장치(46, 48)로 출력된다(단계 E6-E7).
외부 태그 검사 장치(46, 48)는 외부 태그 고속 저장 장치(58)로부터 판독된 태그가 더티 상태인지를 판정한다(단계 E8-E9). 태그가 더티 상태이면, 외부 태그 검사 장치(46, 48)는 태그의 캐시 블록의 어드레스를 생성하여, 멀티플렉서(49)로 출력한다.
멀티플렉서(49)는 수신된 캐시 블록의 어드레스를 FIFO 버퍼(62)로 출력한다. 두 개 이상의 캐시 블록 어드레스가 동시에 수신되면, 그들 중 하나가 멀티플렉서(49)에 의해 선택된다. 나머지 어드레스는 다음 버스 사이클에 FIFO 버퍼(62)로 출력된다(단계 E10-E12).
FIFO 버퍼(62)는 외부 태그 저장 장치(56)가 판독하는 시간에 기초하여, 멀티플렉서를 통해 외부 태그 저장 장치(56)에 캐시 블록 어드레스를 출력한다(단계 E13).
캐시 블록 어드레스가 FIFO 버퍼(62)로부터 수신된 경우, 외부 태그 저장 장치(56)는 캐시 블록의 물리적 어드레스(r-data-f)를 판독하여, 무효 버스 명령 생성 장치(60)로 출력한다. 무효 버스 명령 생성 장치(60)는 캐시 블록의 물리적 어드레스로부터 캐시 플러시 명령을 생성하여 FIFO(60)로 출력한다(단계 E14-E15).
캐시 플러시 명령이 FIFO 버퍼(36)에 저장된 경우, 버스 인터페이스 회로(22)는 시스템 버스(18)의 사용권을 획득한다(단계 E16). FIFO 버퍼(36)에 저장된 캐시 플러시 명령은 시스템 버스(18)로 출력된다(단계 E17).
이 사이클은 루프 카운트가 0이 될 때까지 반복된다(단계 E18-E22).
전술한 바와 같이, 캐시 플러시 장치(50)에 있는 캐시 태그를 저장하는 장치는 물리적 어드레스를 저장하는 외부 태그 저장 장치(56)와 본 발명의 제3실시예에 있는 캐시의 상태를 저장하는 외부 태그 고속 저장 장치(58)로 구분된다. 그 결과, 하드웨어 설계는 각 장치가 상이한 용량과 상이한 액세스 시간 저장 장치를 구비할 수 있기 때문에, 더욱 유연성(flexible)이 있게 된다.
즉, 외부 태그 고속 저장 장치의 용량은 매우 작지만(각 캐시 블록에 대해 1비트), 전체 장치가 검사되어야 한다. 그와 비교해 볼 때, 외부 태그 저장 장치는 크지만(통상적으로 각 캐시 블록에 대해 20비트), 대응하는 캐시 블록이 더티 상태일 때만 판독하면 된다.
또한, 캐시 플러시 동작은 특정 물리적 범위에 대해 실행될 수 있다. 예컨대, 무효 버스 명령 생성 장치(60)에 특정 범위를 갖는 명령을 생성하는 기능부를 부가하는 것은 용이한 일이다.

Claims (20)

  1. 캐시 메모리의 내용을 플러시하는 컴퓨터 시스템에 있어서, 캐시 메모리와 이 캐시에 대응하는 갱신된 상태 정보를 저장하는 태그 메모리를 갖는 프로세서와, 주기억 장치와, 상기 프로세서를 상기 주기억 장치에 접속하는 시스템 버스와, 상기 시스템 버스에 접속되며, 상기 시스템 버스상의 버스 명령을 감시하는 감시 수단과, 상기 감시수단에 응답하여, 상기 갱신된 상태 정보를 저장하는 저장 수단과, 상기 저장 수단에 저장된 상태 정보를 판독하는 판독 수단과, 상기 시스템 버스에 접속되며, 상기 저장 수단내의 상기 갱신된 상태 정보가 상기 캐시 메모리에 있는 데이타가 상기 프로세서에 의해 변경되었음을 나타내고 있으면 상기 캐시 메모리로부터 상기 주기억 장치로 상기 갱신된 데이타의 전송을 요구하는 무효 버스 명령을 시스템 버스상에 출력하는 명령 출력수단을 구비하는 것을 특징으로 하는 컴퓨터 시스템.
  2. 제1항에 있어서, 하나의 프로세서에 의해 출력되어 하나의 캐시 메모리에 저장된 데이타와 다른 하나의 프로세서에 의해 출력되어 다른 하나의 캐시 메모리에 저장된 데이타 사이의 일관성을 유지하기 위해, 일관성 판독 명령에 의해 상기 주기억 장치로부터 상기 캐시 메모리로 데이타 전송이 일어났는지를 검사하는 수단과, 상기 일관성 판독 명령에 의한 타겟 데이타가 상기 검사 수단에 의해 공유상태에 있다는 것을 나타내는 응답을 실행하는 수단을 추가로 구비하는 것인 컴퓨터 시스템.
  3. 제1항에 있어서, 상기 판독 수단은 상기 저장 수단으로부터 여러 개의 상태 정보를 판독하는 제2판독 수단을 포함하며, 상기 제2판독 수단에 의해 판독된 여러개의 상태 정보에 기초하여, 판독된 데이타가 갱신된 상태에 있는지를 판정하는 수단과, 상기 판정 수단에 의해 판정된 상태 정보에 대응하는 물리적 어드레스에 기초하여, 상기 시스템 버스에 캐시 플러시 명령을 생성하는 명령 생성 수단을 추가로 구비하는 것인 컴퓨터 시스템.
  4. 제3항에 있어서, 갱신된 상태에 있는 상기 판독 데이타의 캐시 플러시 명령을 생성하기 위해 캐시 플러시 요구를 발행하는 수단과, 상기 캐시 플러시 요구중 하나를 선택하고, 이 선택된 요구를 상기 명령 생성 수단에 출력하는 멀티플렉서 수단을 추가로 구비하는 것인 컴퓨터 시스템.
  5. 제3항에 있어서, 상기 명령 생성 수단에 의해 생성된 상기 캐시 플러시 명령을 저장 및 출력하는 버퍼 수단을 추가로 구비하는 것인 컴퓨터 시스템.
  6. 제5항에 있어서, 상기 버퍼수단은 선입 선출 버퍼인 것인 컴퓨터 시스템.
  7. 제1항에 있어서, 상기 저장 수단은 상기 갱신된 데이타에 대응하는 물리적 어드레스를 저장하는 제1저장 수단과 상기 캐시 메모리에 있는 데이타가 갱신된 상태에 있는지를 나타내는 상태 정보를 저장하는 제2저장 수단을 포함하고, 상기 판독 수단은 상기 제2저장 수단으로부터 여러 개의 정보를 판독하는 수단을 포함하며, 상기 판독 수단에 의해 판독된 상태 정보에 따라, 판독된 데이타가 갱신된 상태에 있는지를 판정하는 수단과, 상기 판정 수단에 의해 판정된 상태 정보에 기초하여, 상기 상태 정보가 상기 캐시 메모리에 있는 데이타가 변경되었음을 나타내면 상기 시스템 버스상에 캐시 플러시 명령을 생성하는 명령 생성 수단을 추가로 구비하는 것인 컴퓨터 시스템.
  8. 제7항에 있어서, 상기 판정 수단은 상기 제2저장 수단으로부터 판독된 상태 정보가 상기 캐시 메모리에 있는 데이타가 갱신된 상태에 있음을 나타내면, 두 개 이상의 캐시 플러시 요구를 생성하는 수단을 포함하고, 상기 생성된 캐시 플러시 요구중 하나를 선택하는 멀티플렉서 수단과, 상기 선택된 캐시 플러시 요구를 저장하고, 상기 판정 수단에 의해 판정된 상태 정보에 대응하는 물리적 어드레스를 판독하도록 판독 어드레스를 출력하는 제1버퍼 수단을 추가로 구비하는 것인 컴퓨터 시스템.
  9. 제8항에 있어서, 상기 제1저장 수단은 상기 명령 생성 수단에 의해 캐시 플러시 명령을 생성하기 위해, 출력된 판독 어드레스에 대응하는 물리적 어드레스를 판독하는 수단을 포함하는 것인 컴퓨터 시스템.
  10. 제1항에 있어서, 상기 판독 수단에 의해 판독된 상태 정보에 기초하여, 데이타가 갱신된 상태에 있는지를 판정하는 수단과, 상기 판정 수단에 의해 판정된 상태 정보에 대응하는 물리적 어드레스에 기초하여, 캐시 플러시 명령을 상기 시스템 버스에 생성하는 명령 생성 수단을 추가로 구비하는 것인 컴퓨터 시스템.
  11. 제1항에 있어서, 상기 감시 수단은 물리적 어드레스와 상태 정보를 상기 저장 수단에 저장하기 위해 기록 어드레스를 출력하는 수단을 포함하는 것인 컴퓨터 시스템.
  12. 제11항에 있어서, 상기 판독 수단은 상기 저장 수단으로부터 상태 정보를 판독하기 위해 판독 어드레스를 출력하는 수단을 포함하는 것인 컴퓨터 시스템.
  13. 제12항에 있어서, 상기 기록 어드레스와 판독 어드레스가 동시에 수신되면 상기 기록 어드레스에 우선 순위를 부여하는 것으로서, 상기 기록 어드레스와 판독 어드레스중 하나를 선택하는 멀티플렉서 수단을 추가로 구비하는 것인 컴퓨터 시스템.
  14. 제12항에 있어서, 상기 감시 수단은 상기 시스템 버스상에 발행된 버스 명령을 전송하는 버스 인터페이스를 포함하고, 상기 버스 인터페이스에 접속되며, 캐시 플러시 동작을 실행할 플러시 개시 비트의 값과 상기 캐시 플러시 동작을 실행할 제어 데이타가 상기 프로세서에 의해 세트될 때 판독 어드레스의 반복된 시간에 대응하는 루프 카운트의 수를 저장하는 주 제어기 수단을 추가로 구비하는 것인 컴퓨터 시스템.
  15. 캐시 메모리와 이 캐시에 대응하는 갱신된 상태 정보를 저장하는 태그 메모리를 갖는 시스템에서의 캐시 메모리를 플러시하는 방법에 있어서, 시스템 버스상의 버스 명령을 감시하는 단계와, 상기 갱신된 상태 정보를 저장 수단에 저장하는 단계와, 상기 저장된 상태 정보를 판독하는 단계와, 상기 캐시 메모리에 있는 데이타가 갱신되었으면, 상기 캐시 메모리로부터 주기억 장치로 갱신된 데이타의 전송을 요구하기 위해 시스템 버스에 무효 버스 명령을 출력하는 단계를 포함하는 것을 특징으로 하는 캐시 메모리 플러시 방법.
  16. 제15항에 있어서, 상기 감시 단계에 따라 제어 데이타가 프로세서에 의해 세트되면, 제어 레지스터에 있는 판독 어드레스의 반복된 시간에 대응하는 루프 카운트와 캐시 플러시 동작을 실행하기 위해 플러시 개시 비트를 저장하는 단계를 추가로 포함하는 것인 캐시 메모리 플러시 방법.
  17. 제16항에 있어서, 제어 레지스터에 세트된 루푸 카운트와 플러시 개시 비트에 기초하여 태그 판독 어드레스를 생성하는 단계와, 상기 루프 카운트에 따라 상기 저장 수단으로부터 상기 태그 판독 어드레스에 대응하는 상태 정보를 판독하는 단계를 추가로 포함하는 것인 캐시 메모리 플러시 방법.
  18. 제15항에 있어서, 물리적 어드레스와 상태 정보를 상기 저장 수단에 저장하기 위해 태그 기록 어드레스를 생성하는 단계를 추가로 포함하는 것인 캐시 메모리 플러시 방법.
  19. 제16항에 있어서, 상기 제어 레지스터에서 캐시 플러시 동작을 중단시키기 위해 비트를 세팅하는 단계를 추가로 포함하는 것인 캐시 메모리 플러시 방법.
  20. 제17항에 있어서, 태그 판독 어드레스가 생성되면, 상기 제어 레지스터로부터 판독된 루프 카운트를 감소시키는 단계와, 상기 태그 판독 어드레스에 대한 개시 어드레스를 증가시키는 단계를 추가로 포함하는 것인 캐시 메모리 플러시 방법.
KR1019960021796A 1995-06-19 1996-06-17 캐시 메모리의 내용을 플러시하는 장치 및 방법 KR100212361B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP95-151732 1995-06-19
JP7151732A JP2902976B2 (ja) 1995-06-19 1995-06-19 キャッシュフラッシュ装置

Publications (2)

Publication Number Publication Date
KR970002652A KR970002652A (ko) 1997-01-28
KR100212361B1 true KR100212361B1 (ko) 1999-08-02

Family

ID=15525088

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960021796A KR100212361B1 (ko) 1995-06-19 1996-06-17 캐시 메모리의 내용을 플러시하는 장치 및 방법

Country Status (6)

Country Link
US (1) US5745730A (ko)
EP (1) EP0750262B1 (ko)
JP (1) JP2902976B2 (ko)
KR (1) KR100212361B1 (ko)
CN (1) CN1084896C (ko)
DE (1) DE69614779T2 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2916420B2 (ja) * 1996-09-04 1999-07-05 株式会社東芝 チェックポイント処理加速装置およびデータ処理方法
JP2916421B2 (ja) * 1996-09-09 1999-07-05 株式会社東芝 キャッシュフラッシュ装置およびデータ処理方法
TW379298B (en) * 1996-09-30 2000-01-11 Toshiba Corp Memory updating history saving device and memory updating history saving method
JPH10320274A (ja) * 1997-03-19 1998-12-04 Toshiba Corp キャッシュフラッシュ装置及び同装置を備えた計算機システム、記録媒体
US6295581B1 (en) * 1998-02-20 2001-09-25 Ati Technologies, Inc. Method and apparatus for assuring cache coherency
JP4303803B2 (ja) * 1998-04-22 2009-07-29 株式会社東芝 キャッシュフラッシュ装置
JP2000010810A (ja) 1998-06-22 2000-01-14 Toshiba Corp トランザクション処理のコミット制御方法および同方法が適用される計算機システム
US6629212B1 (en) 1999-11-09 2003-09-30 International Business Machines Corporation High speed lock acquisition mechanism with time parameterized cache coherency states
US6629209B1 (en) 1999-11-09 2003-09-30 International Business Machines Corporation Cache coherency protocol permitting sharing of a locked data granule
US6629214B1 (en) 1999-11-09 2003-09-30 International Business Machines Corporation Extended cache coherency protocol with a persistent “lock acquired” state
US6625701B1 (en) 1999-11-09 2003-09-23 International Business Machines Corporation Extended cache coherency protocol with a modified store instruction lock release indicator
US6549989B1 (en) * 1999-11-09 2003-04-15 International Business Machines Corporation Extended cache coherency protocol with a “lock released” state
US6658532B1 (en) * 1999-12-15 2003-12-02 Intel Corporation Cache flushing
GB2401227B (en) * 1999-12-30 2005-03-16 Intel Corp Cache line flush micro-architectural implementation method and system
US6546462B1 (en) * 1999-12-30 2003-04-08 Intel Corporation CLFLUSH micro-architectural implementation method and system
US6868481B1 (en) * 2000-10-31 2005-03-15 Hewlett-Packard Development Company, L.P. Cache coherence protocol for a multiple bus multiprocessor system
US6745294B1 (en) * 2001-06-08 2004-06-01 Hewlett-Packard Development Company, L.P. Multi-processor computer system with lock driven cache-flushing system
US6675262B1 (en) * 2001-06-08 2004-01-06 Hewlett-Packard Company, L.P. Multi-processor computer system with cache-flushing system using memory recall
US7082551B2 (en) * 2001-06-29 2006-07-25 Bull Hn Information Systems Inc. Method and data processing system providing checkpoint/restart across multiple heterogeneous computer systems
JP3804823B2 (ja) * 2001-07-03 2006-08-02 日本電気株式会社 障害回復機能を備えたキャッシュシステムとそのキャッシュ制御方法
US7114038B2 (en) * 2001-12-28 2006-09-26 Intel Corporation Method and apparatus for communicating between integrated circuits in a low power mode
US7062612B2 (en) * 2002-12-12 2006-06-13 International Business Machines Corporation Updating remote locked cache
US7099995B2 (en) * 2004-02-17 2006-08-29 International Business Machines Corporation Metadata access during error handling routines
CN100437499C (zh) * 2005-09-26 2008-11-26 英业达股份有限公司 计算机平台快取资料备援处理方法及系统
US8019947B2 (en) * 2005-10-19 2011-09-13 Intel Corporation Technique for thread communication and synchronization
CN101800521B (zh) * 2010-02-09 2013-01-23 上海山景集成电路股份有限公司 用于对数增益放大器的电阻控制网络

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8814077D0 (en) * 1988-06-14 1988-07-20 Int Computers Ltd Data memory system
US5025365A (en) * 1988-11-14 1991-06-18 Unisys Corporation Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors
US5072369A (en) * 1989-04-07 1991-12-10 Tektronix, Inc. Interface between buses attached with cached modules providing address space mapped cache coherent memory access with SNOOP hit memory updates
EP0412353A3 (en) * 1989-08-11 1992-05-27 Hitachi, Ltd. Multiprocessor cache system having three states for generating invalidating signals upon write accesses
DE4136729C2 (de) * 1990-11-05 1995-07-20 Mitsubishi Electric Corp Cache-Steuereinrichtung
US5479630A (en) * 1991-04-03 1995-12-26 Silicon Graphics Inc. Hybrid cache having physical-cache and virtual-cache characteristics and method for accessing same
US5414827A (en) * 1991-12-19 1995-05-09 Opti, Inc. Automatic cache flush
US5375216A (en) * 1992-02-28 1994-12-20 Motorola, Inc. Apparatus and method for optimizing performance of a cache memory in a data processing system
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
US5636374A (en) * 1994-01-04 1997-06-03 Intel Corporation Method and apparatus for performing operations based upon the addresses of microinstructions
US5553264A (en) * 1994-06-24 1996-09-03 Digital Equipment Corporation Method and apparatus for efficient cache refilling by the use of forced cache misses

Also Published As

Publication number Publication date
DE69614779T2 (de) 2002-03-07
EP0750262A2 (en) 1996-12-27
JPH096680A (ja) 1997-01-10
US5745730A (en) 1998-04-28
EP0750262B1 (en) 2001-08-29
CN1084896C (zh) 2002-05-15
JP2902976B2 (ja) 1999-06-07
DE69614779D1 (de) 2001-10-04
EP0750262A3 (en) 1998-01-21
KR970002652A (ko) 1997-01-28
CN1142634A (zh) 1997-02-12

Similar Documents

Publication Publication Date Title
KR100212361B1 (ko) 캐시 메모리의 내용을 플러시하는 장치 및 방법
EP0828217B1 (en) Cache flush apparatus and computer system having the same
US7085955B2 (en) Checkpointing with a write back controller
US8688951B2 (en) Operating system virtual memory management for hardware transactional memory
US6366984B1 (en) Write combining buffer that supports snoop request
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
US6418515B1 (en) Cache flush unit
US6148416A (en) Memory update history storing apparatus and method for restoring contents of memory
CN106897230B (zh) 用于处理原子更新操作的装置和方法
JPH11506852A (ja) 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減
JPH1078918A (ja) チェックポイント処理加速装置および同装置を適用した計算機システム
US6748496B1 (en) Method and apparatus for providing cacheable data to a peripheral device
US5386546A (en) Block substitution method in a cache memory of a multiprocessor system
JPH11506850A (ja) 多重レベルキャッシュシステムにおけるキャッシュ・スヌーピング・オーバヘッドを減少するための方法および装置
US5590310A (en) Method and structure for data integrity in a multiple level cache system
US6434665B1 (en) Cache memory store buffer
EP1030243B1 (en) Optimized hardware cleaning function for virtual index virtual tag data cache
EP1725938A1 (en) System and method for canceling write back operation during simultaneous snoop push or snoop kill operation in write back caches
EP0624845A1 (en) Information processing system comprising one or more cached devices
US8166226B2 (en) Apparatus and related method for maintaining read caching data of south bridge with north bridge
JPH06348593A (ja) データ転送制御装置
CN101013399A (zh) 用于将数据线写入l2高速缓存的方法
JPH0744459A (ja) キャッシュ制御方法およびキャッシュ制御装置
JP2002007212A (ja) キャッシュ・メモリ・システム及びキャッシュ・メモリ制御方法
JPH10320274A (ja) キャッシュフラッシュ装置及び同装置を備えた計算機システム、記録媒体

Legal Events

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

Payment date: 20080428

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee