KR960009659B1 - 멀티프로세서 시스템의 스누프회로 - Google Patents

멀티프로세서 시스템의 스누프회로 Download PDF

Info

Publication number
KR960009659B1
KR960009659B1 KR1019940007531A KR19940007531A KR960009659B1 KR 960009659 B1 KR960009659 B1 KR 960009659B1 KR 1019940007531 A KR1019940007531 A KR 1019940007531A KR 19940007531 A KR19940007531 A KR 19940007531A KR 960009659 B1 KR960009659 B1 KR 960009659B1
Authority
KR
South Korea
Prior art keywords
address
cache
snoop
memory
signal
Prior art date
Application number
KR1019940007531A
Other languages
English (en)
Other versions
KR950029941A (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 김광호
Priority to KR1019940007531A priority Critical patent/KR960009659B1/ko
Priority to JP6326220A priority patent/JPH07281955A/ja
Publication of KR950029941A publication Critical patent/KR950029941A/ko
Application granted granted Critical
Publication of KR960009659B1 publication Critical patent/KR960009659B1/ko
Priority to US08/839,346 priority patent/US5829040A/en

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
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units

Abstract

요약 없음

Description

멀티프로세서 시스템의 스누프회로
제 1 도는 본 발명에 의한 스누프회로의 기능을 설명하기 위하여 도시한 멀티프로세서 시스템의 일예이고,
제 2 도는 본 발명에 의한 스누프회로를 도시한 블럭도이고,
제 3 도는 제 2 도에 도시된 스누프 제어기가 수행하는 라이트백 과정을 도시한 흐름도이다.
* 도면의 주요부분에 대한 부호의 설명
10-1, 10-2, 10-3 : 프로세서 보드
20-1, 20-2, 20-3 : 메인 메모리30 : 시스템 버스
40 : 입출력 프로세서 보드50 : 스누프 회로
51 : 멀티플랙서52 : 어드레스 태그 메모리
53 : 상태 태그 메모리54 : 제 1 비교기
55 : 제 2 비교부56 : 스누프 제어기
60 : 로칼 아비터65 : 버스인터페이스부
본 발명은 멀티 프로세서 시스템에 있어서 캐시(Cache) 메모리와 메인 메모리간에 데아타의 일관성(cache coherency)을 유지하기 위한 스누프(snoop)회로에 관한 것으로, 특히 변형된 일리노이즈 프로토콜(Modified Illinois Protocol)에 따라 고속의 프로그래머블디바이스(EPLD)로 구현한 스누프회로에 관한 것이다.
일반적으로, 컴퓨터 시스템에서는 시스템의 성능향상을 위하여 계층구조의 메모리를 사용한다. 즉, 계층적인 구조의 메모리는 중앙처리장치(CPU)로부터 캐시, 메인 메모리, 하드 디스크 및 마그네틱데이프 등으로 순서적으로 위치하여 CPU에 가까울수록 속도가 빠르나 단위 메모리 용량당 비용(cost)이 증가하고, 멀수록 속도는 느리나 대용량의 저장능력을 갖는다. 따라서 효율적인 메모리 사용 즉, 저렴한 비용으로 고속의 메모리를 사용하기 위하여 대부분의 컴퓨터 시스템에서 캐시 메모리를 사용한다. 이러한 캐시 메모리를 사용하는 경우, 캐시 메모리와 메인 메모리간에 데아타의 일관성(cache coherency)을 유지하는 것이 요구된다. 특히, 멀티프로세서 시스템에서는 이와 같이 캐시 메모리들과 메인 메모리간에 데이타의 일관성을 유지하기 위하여 스누프회로가 사용된다. 이러한 캐시 메모리에 있어서, 데이타의 일관성을 유지하는 종래의 기술로는 시냅스(Synaps) 프로토콜, 버클리(Berkeley) 프로토콜, 일리노이즈(Illinois) 프로토콜 및 Firefly와 Dragon 프로토콜 등이 알려져 있다. 이러한 종래의 프로토콜들은 J.Archibald J.L. Baer에 의해 논문(Cache Coherence Protocols: Evaluation Using a Multiprocessor Simulation Model, ACM Trans. on Computer Systems, 1986)에 기술된 바있는데, 시냅스 프로토콜이란 메인 메모리에 캐시 데이타블럭과 관련된 1비트의 태그을 두어 캐시 미스가 발생하였을때 메인 메모리에 데이타를 공급하는지 여부를 결정하는 것이고, 버클리 프로토콜은 캐시 메모리들 사이에 직접 데이타 전송이 일어나고, 메인 메모리와 다른 내용의 데이타 블럭이 캐시 메모리들 사이에 공유되는 방식이다. 또한, 일리노이즈 프로토콜은 데이타를 캐시 메모리로 읽어올때, 다른 캐시 메모리와 공유되는지 여부를 결정하고, 그것을 이용하여 캐시 메모리에 저장된 데이타가 변경되지 않은 상태에서 쓰기(Write)를 할 경우 발생할 무효화(Invalidation)를 피함으로써 버스사용을 줄이는 방법이다.
한편, 기따하라 다께시외 2인이 고안한 메인메모리, 외부캐시메모리 및 내부 캐시메모리에 저장된 데이타의 코히어런스를 유지하기 위한 데이타 처리방법과 그 장치가 대한민극 특허 공고번호 93-7672호(1993. 8.18, 출원인 후지쓰사)로 공고되었는데, 그에 따르면 메인 메모리, 외부캐시 메모리 및 내부캐시 메모리에 저장된 데이타의 일관성을 유지하기 위하여 블록 데이타를 페치하기 위한 블록인 유니트, 버스릴리즈 유니트, 블록인 유니트의 페칭을 중단시키는 블록-인 브레이크 유니트 및 페칭동작의 상태를 외부캐시 메모리에 통지하는 통지 유니트로 구성되었다.
이러한 종래의 장치들은 각기 그 나름의 장점이 있음에도 불그하고 멀티프로세서 시스템에 있어서, 시스템버스의 사양 및 개별적인 컴퓨터 구조에 따라 최적의 방법을 제공하는 것은 아니었다.
따라서 본 발명의 목적인 타이컴 컴퓨터 구조에 적합하도록 변형된 일리노이즈 프로토콜을 적용하여 고속의 프로그래머블 로직으로 구현한 스누프회로를 제공하는데 있다.
상기와 같은 본 발명의 목적을 달성하기 위하열 본 발명의 장치는 로칼버스를 통해 연결되는 중앙처리장치(CPU)와 캐시 메모리와, 이를 제어하는 캐시 제어기와 스누프 제어기를 가지는 복수의 프로세서보드와, 메인 메모리와, 이들을 연결하는 시스템 버스를 포함하는 멀티프로세서 시스템에서 상기 프로세서 보드상에 위치하며 상기 메인 메모리와 상기 캐시 메모리들간에 캐시 코히어런스를 유지하는 멀티프로세서 시스템의 스누프회로에 있어서, 상기 캐시 메모리상에 존재하는 어드레스를 저장하고, 상기 시스템버스상에 구동되는 어드레스를 입력한 후 상기 저장된 어드레스와 비교하여 매치되면 에스 시매치(SCMATCH)신호를 출력하는 어드레스 태그 메모리 : 상기 매치된 어드레스의 데이타 상태를 저장하는 상태의 태그 메모리 : 상기 캐시 제어기 및 상기 중앙처리장치가 구동하는 어드레스와 상기 스누프 제어기가 구동하는 어드레스를 비교하는 제 1 비교기 : 상기 중앙처리장치가 버스 동작을 하는 초기에 구동되는 어드레스를 래치하여 저장하고, 소정 시간 간격으로 시스템 버스상의 어드레스를 모니터하여 상기 레치된 어드레스와 비교하는 제 2 비교부 : 및 상기 제 1 비교기의 출력을 입력하여 시에스 매치(CSMATCH)를 판단하고, 제 2 비교부의 출력을 입력하여 피피 매치(PPMATCH)를 판단하고, 상기 판단된 결과 및 상기 에스시매체(SCMATCH)신호에 따라 상기 시트템 버스상에 소정의 캐시 코히어런스신호를 출력하고, 라이트백을 위한 제 1 제어신호, 상태 갱신을 위한 제 2 제어신호, 데이타버퍼를 제어하기 위한 제 3 제어신호 및 상기 중앙처리장치의 재시도를 위한 제 4 제어신호를 로칼버스상에 출력하며 상기 상태 태그 메모리의 데이타를 참조 혹은 갱신하는 상기 스누프 제어기를 구비한 것을 특징으로 한다.
이하, 첨부한 도면을 참조하여 본 발명을 상세히 설명하기로 한다.
본 발명은 타이콤 컴퓨터 시스템의 시스템 버스(TICOM BUS)에서 제공되는 소정의 코히어런스신호를 이용하여 신호선 추가없이 캐시 제어기와 스누프 제어기의 동작을 보다 지능적으로 제어하도록 일리노이즈 프로토콜을 변경하여 구현한 것이다. 특히, 상태 전이에 다른 시스템 성능저하를 방지하기 위하여 매우 빠른 프로그래머블 디바이스(예를 들면, PAL, EPLD 등)를 이용하여 스누프 제어기를 구현한 것이다. 이러한 타이컴 컴퓨터를 구조에 관해서는 기발표된 자료 SSH 7000 설명서(삼성전자) 등에 기술된 바 있다. 또한 본 발명과 관련된 주별기술들이 본 발명의 출원인 이 기출원한 특허출원 제 3 202호(1993. 3. 4) 캐쉬제어방식 및 장치와 특허출원 제 3 207호(1993. 3. 4.) 멀티프로세서 시스템의 캐쉬상태 관리의 방법 등에 기술되어 있다.
제 1 도는 본 발명을 설명하기 위하여 타이콤 컴퓨터 시스템의 구성을 개략적으로 도시한 도면이다. 본 발명을 적용할 수 있는 컴퓨터 시스템(예를 들면, 타이콤 시스템 등)은 복수의 프로세서 보드들(10-1, 10-2, 10-3)과, 메모리 보드(20-1, 20-2, 20-3)와, 입출력 프로세스보드(40)와, 이들을 상호 연결하는 시스템버스(30)와, 입출력 프로세서(40)와 입출력장치(미도시)를 연결하는 입출력력버스를 포함하여 구성된다. 제 1 도에 있어서, 프로세서 보드(10-1, 10-2, 10-3)는 내부에 소정 크기(예를 들면, 256K Byte)의 캐시 메모리를 가지고 있고, 다른 프로세스의 캐시 메모리 및 메인 메모리(20-1, 20-2, 20-3)와 캐시 코히어런스를 유지하기 위하여 본 발명에 따른 스누프회로(50)를 각각 구비한다. 또한 각각의 프로세서 보드(10-1, 10-2, 10-3)는 중앙처리장치(CPU : 예를 들면, 모토롤라사의 MC68040 등)를 가지고, 내부의 로칼버스를 통해 각 기능블럭을 제어하며 시스템 버스(30)와 인터페이스한다. 따라서 프로세서 보드(10-1, 10-2, 10-3)가 입출력장치(미도시)를 억세스하기 위해서는 시스템 버스(30)를 통해 입출력 프로세서 보드(40)와 통신하고, 입출력 프로세서보드(40)는 입출력버스에 연결된 입출력장치(미도시)를 프로세서 보드 및 메인 메모리에 인터페이스시킨다. 메인 메모리(20-1, 20-2, 20-3)는 필요에 따라 메모리 용량을 확장하기 위하열 복수의 모듈로 구성될 수 있으며, 모든 프로세서 보드(10-1, 10-2, 10-3)와 입출력 프로세서 보드(40)들에 의해 공유된다. 따라서 공유되는 메인 메모리(20-1, 20-2, 20-3)와 각 프로세서 보드들(10-1, 10-2, 10-3)에 위치한 캐시 메모리간에 데이타를 일치시킬 필요가 있다. 이와 같이 데이타의 일관성을 유지하는 기법은 전술한 바와 같이 시냅스 프로토콜, 버클리 프로토콜, 일리노이즈 프로토콜 등이 있는데, 본 발명에서는 일리노이즈 프로토콜을 개량하여 적용한다. 여기서, 프로세서 보드(10-1, 10-2, 10-3) 및 입출력 프로세서 보드(40)와 같이 시스템 버스(30)를 사용하여 능동적으로 데이타를 처리하는 마스터가 될 수 있는 것을 리퀘스터(RQC)라 한다. 또한, 시스템 버스(30)상의 전송 형태(TT : Transper Type)는 리드 포리드(RFR:Read For Read), 리드 포 라이트(RFW:Read For Write) 노말리드(NWR:Normal Write), 록리드(LCR:Lock Read), 록 라이트(LWR:Lock Write), 라이트백(WRB:Write Back)등과 같이 7가지가 있으며, 특히 캐시 동작과 관련되는 것은 RFR, RWR, WRB등이 있다.
제 2 도는 본 발명에 의한 멀터프로세서 시스템의 스누프회로를 도시한 블럭도이다. 본 발명에 의한 스누프 회로(50)는 멀터플랙서(51), 어드레스 태그 메모리(52), 상태 태그(state tag) 메모리(53), 제 1 비교기(54), 제 2 비교부(55) 및 스누프 제어기(56)를 구비하여 버스인터페이스부(65)를 거쳐 시스템 버스(30)상의 각종 신호와 자신이 속한 프로세서 보드의 캐시 제어기(미도시)로부터 정보를 입력하여 캐시 메모리(미도시)의 상태를 변경하거나, 로칼 아비터(60)로 재시도를 위한 제 4 제어신호(/SNRETRY)를 출력한다.
멀티플랙서(51)는 제 1 및 제 2 멀터플랙서(51-1, 51-2)로 구성되어 로칼버스로부터 캐시 어드레스(CA)와 CPU어드레스(SA)와 인터페이스를 거친 시스템어드레스(SBA)를 입력하여 하나의 어드레스(STA)를 출력한다. 즉, 캐시 어드레스(CA)의 변동이 있으면 이를 입력하여 어드레스 태그 메모리(52)에 저장하도록 하고, 시스템 버스로부터 다른 리퀘스터들이 구동하는 어드레스를 어드레스 버퍼를 통해 입력하여 어드레스 태그 메모리(52)로 출력한다.
어드레스 태그 메모리(52)는 자신이 속한 프로세서 보드 내의 캐시 메모리에 해당하는(저장된) 어드레스를 저장하고 있는 소정 크기(16KByte)의 스터틱램(SRAM)으로 구성되며, 비교기를 내장하여 캐시의 어드레스(CA)와 다른 리퀘스터들에 의해 버스상에 구동되는 어드레스(SBA)를 비교하여 그 어드레스가 자신의 캐시 메모리에 이미 존재하고 있는지를 판정한다. 즉, 멀티플랙서(51)로부터 입력되는 버퍼를 통핸 시스템버스상의 어드레스(SBA)를 저장된 캐시상의 어드레스와 비교하여 일치(MATCH)하면 에스시매치(SCMATCH) 신호를 스누프 제어기(56)로 출력한다.
상태 태그 메모리(35)는 어드레스 태그 메모리(52)에서 매치된 어드레스에 해당하는 데이타의 상태를 저장하는 소정 크기(16KByte)의 스터틱램(SRAM)으로 상태 태그(state tag)를 위하여 2비트를 사용한다. 즉, 캐시 메모리에 저장된 데이타는 4가지 상태, 공유(SHARED), 더티(DIRTY), 유효(VALID) 및 뮤효(INVALID)로 존재하게 되는데, 이를 구분하기 위하여 2비트를 사용한다. 여기서, 공유(SHARED)란 동일한 어드레스의 데이타를 2개 이상의 캐시 메모리가 공유하고 있으며, 그 데이타는 메인 메모리의 데이타와 일치하는 상태에 있다는 것을 나타낸다. 더티(DIRTY)는 캐시 메모리의 데이타가 공유되지 않고, 자신만이 가지며 CPU의 라이트 동작에 의해 캐시 데이타가 변경되어 그 어드레스에 해당하는 메인 메모리의 데이타와 일치하는 상태를 나타낸다. 유효(VALID)란 캐시 메모리의 데이타가 공유되지 않으며 메인 메모리와 일치하는 상태이고, 무효(INVALID)란 데이타의 사용이 불가함을 의미한다. 이와 같이 상태 태그는 4가지 상태로 데이타를 관리하며 스누프 제어기(56)의 제어에 따라 상태를 변경하거나 제공한다. 이러한 태그용 메모리들은 74ACT2164 등으로 구현하여 고속처리를 가능하게 한다.
제 1 비교기는(54) 캐시 어드레스(CA)와 시스템 버스상에서 구동된 어드레스(SBA)를 비교하여 출력(/PEQ) 신호를 스누프 제어기(56)로 출력한다. 이러한 제 1 비교기(54)는 74F521 등을 이용하여 구현하며, 이들 어드레스는 매 버스 사이클 혹은 CPU의 클럭(BCLK)에 따라 변경된다. 또한, /PEQ 신호는 시에스 매치(CSMATCH)를 판단하기 위하여 사용되는 신호이다. 여기서, 시에스 매치(CSMATCH)란 CPU(혹은 캐시 제어기)와 스누프 제어기가 같은 캐시 라인을 억세스하는 경우에 구동신호이다. 이 경우는 캐시 제어기와 스누프 제어기(56)가 같은 캐시 라인을 억세스하는 경우이며, 두 제어기를 독립적으로 동작하게 허용하면, 서로 다른 상태로 천이될 수 있으므로 이를 고려해야 한다. 즉, 캐시의 상태가 유효로 존재하는 경우 CPU가 라이트를 요구하는 스누프 제어기(56)가 무효화(Invalidation) 를 요구하는 경우에, 캐시 제어기와 스누프 제어기(56)가 동시에 캐시의 상태를 참조하여 둘 다 유효임을 확인하고 동작하였으나 두 제어기의 동작이 완료될 때는 캐시 제어기에 의하여 더티(dirty)로, 스누프 제어기(56)에 의하여 무효(INVALID)로 천이되어야 한다. 따라서 결과적으로 상태의 천이가 이중으로 발생하는 효과가 발생하여 캐시 코히어런스가 유지되지 못한다. 스누프 제어기(56)는 이 경우를 판단하여 캐시 코히어런스를 보장하기 위한 동작을 다음과 같이 실시한다. 첫째로, CPU가 먼저 동작을 시작한 경우에는 스낵(SNACK)을 구동하여 다른 리퀘스터들을 재시도(Retry)시키고, 둘재로 CPU가 나중에 동작하여 스낵(SNACK)을 구동하지 못한 경우에는 CPU를 재시도(Retry) 시킨다.
제 2 비교부(55)는 시스템 버스상에 구동된 어드레스를 버스 동작 초기에 래치하여 저장하는 래치(55-1)와, 소정 시간간격으로 시스템 버스930)상의 어드레스를 입력하여 래치된 어드레스를 비교하는 제 2 비교기(55-2)로 구성된다. 이러한 제 2 비교부(55)는 소정 시간간격으로 어드레스를 비교하여 출력(/PPM) 신호를 스누프 제어기(56)로 출력한다. 이러한 제 2 비교부(55)는 74F521, 74F377 등을 사용하여 구현할 수 있으며, CPU가 버스 동작을 시작할 때 어드레스를 래치하여 두고, 소정 시간마다 버스에서 래치하여 온 어드레스와 비교한다. 이러한, /PPM신호를 피피매치(PPMATCH)를 판단하기 위한 신호이다. 여기서, 피피매치(PPMATCH)란 CPU(혹은, 캐시 제어기)가 요구한 버스 동작의 수행이 완료되기 이전에 다른 리퀘스터에서 같은 어드레스에 대한 버스 동작(operation)을 수행하는 경우에 구동된다. 이 경우에는 캐시 제어기의 버스동작에 의하여 상태가 천이되어야 하는 경우에 해당하며, 이는 'RFR' 혹은 'RFW'의 동작에만 국한된다. 즉 CPU의 요구에 의하여 캐시 제어기에 의하여 캐시 상태가 참조되어 동작을 시작한 다음, 버스 동작의 완료 후 캐시 상태가 변경되는 사이의 정보는 불확실한 정보이므로, 버스 동작이 완료되어 상태가 변경될 때까지 스낵(SNACK)을 구동하여 재시도(Retry)시켜야 한다.
스누프 제어기(56)는 감지된 버스정보(어드레스, 전송형태(TT))와 캐시 제어기가 제공하는 정보, 상태 및 어드레스 태그로부터의 정보를 받아들여 다음과 같은 기능을 수행한다.
1) 상태 갱신기능(STATE UPDATE)
스누프 제어기(56)는 버스로부터 전송형태(TT)를 감지하고, 어드레스 태그, 메모리(52)로부터는 'SCMATCH' 신호를, 상태 태그 메모리(53)로부터는 'STATE'신호를 받아들여 다음 표 〈1〉과 같이 라이트백(Writeback)을 위한 제 1 제어신호(/SWRBABUF) 또는 상태 갱신을 위한 제 2 제어신호(/SNUPREQ)를 발생시켜 상태를 갱신한다.
[표 1]
상기 표〈1〉에 있어서, 현재 상태가 공유(SHARED)일 때 버스 전송형태가 'RFR'이면 공유(SHARED)상태를 유지하고, 전송형태가 'RFW'이면 무효(INVALID)로 상태를 갱신한다. 또한, 현재 상태가 더티(DIRTY)일 때 버스 전송형태가 'RFR'이면 라이트백(Writeback)을 수행한 후 공유(SHARED)로 상태를 갱신하고, 'RFW'이면 라이트백 후에 무효(INVALID)로 상태를 갱신한다. 또한 현재 상태가 유효(VALID)일 때 전송형태가 'RFR'이면 공유(SHARED)로 상태를 갱신하고, 전송형태가 'RFW'이면 무효(IMVALID)로 상태를 갱신한다.
2) 더티(DIRTY) 상태인 데이타에 대한 라이트백 기능
캐시 메모리에 더티(DIRTY) 상태로 존재하는 데이타에 대해 다른 리퀘스터로부터 요구가 있는 경우 라이트백(writeback)을 수행하고, 상태 갱신을 요구한다. 이를 위하여 스누프 제어기(56)는 상태 갱신을 이한 제 2 제어신호(/SWRBREQ)와 데이타 버퍼제어를 위한 제 3 제어신호(/SWRBDEN)를 발생시킨다. 이와 같이 라이트백(Writeback)을 수행하는 흐름을 제 3 도에 도시한다.
제 3 도를 참조하면, 라이트백 과정에서는 어드레스의 매치여부를 판단하여 매치되면(100), 버스 사용이 허락(BUS GRANT)되었나를 판단한다(101). 버스 사용이 허락되면, 어드레스 버퍼와 데이타 버퍼를 구동하여 메인 메모리에 데이타를 라이트하고(102), 결과를 확인한다(103). 결과를 확안하여 완료되었으면 상태를 갱신하고(104), 실패하였으면 에러루틴을 구동한다(105).
3) 다른 리퀘스터의 버스사용을 통제하는 기능
스누프 제어기(56)는 캐시 메모리에 저장되어 있는 데이타의 상태에 관한 정보나 자신의 CPU보드내에서 수행중인 동작에 따른 정보를 버스상에 구동하여 버스를 통해 메인 메모리에 접근하려는 모든 리퀘스터들의 버스사용을 통제하게 되며, 이를 위해 시스템 버스상에 다음 표〈2〉와 같이 소정의 코히어런스신호(DIRTY, SHARD, SNACK)를 발생시킨다.
[표 2]
상기 표〈2〉에 있어서, 현재 자신의 상태가 더티(DIRTY)이면 모든 전송 형태에서 시스템 버스상에서 더티(DIRTY)신호를 구동하여 다른 리퀘스터가 재시도(Retry)를 하도록 하고, 자신의 현재 상태가 공유(SHARD) 또는 유효(VALID)일 때 전송 형태가 'RFR'이면 시스템 버스상에 공유(SHARD) 신호를 구동하여 다른 리퀘스터가 계속 동작을 진행하도록 한다.
한편, 스누프 제어기(56)가 시스템 버스상에 스낵(SNACK)신호를 구동하여 다른 리퀘스터를 재시도시키는 경우는 다음과 같이 세가지이다. 첫째의 경우는 자신의 보드가 현재 'RFR' 이나 'RFW'를 수행하기 위하여 어떤 어드레스를 버스에 구동한 후 그 동작이 완료되기 전에 다른 리퀘스터의 요구가 발생할 때이고, 두번째 경우는 다른 리퀘스터가 구동한 어드레스와 전송 형태에 따라 상태 갱신이 필요하게 될 때이다. 이러한 두번째 경우에 스낵(SNACK)을 구동하지 않으면, 상태 갱신전에 또 다른 리퀘스터의 요구가 있을 때 데이타의 일관성이 깨어질 위험이 있다. 세번째 경우는 동일 프로세서 보드에 속하는 CPU가 구동하는 어드레스에 대해 캐시 메모리에서 미스가 발생하여 버스를 요구하는 경우로서, 스누프회로(50)에 의해 감지되는 어드레스 중 SBA[4 : 17]가 CPU가 구동하는 CA[4 : 17]와 일치하는 경우(즉, CSMATCH)에 스낵(SNACK)을 발생시킨다. 이 때 스낵(SNACK)이 발생하지 않게 되면, 스누프회로(50)에 의한 라이트백(writeback)이 블럭은 같으나 실제 어드레스가 다른 데이타에 대해 라이트백이 되는 경우가 발생하여 다른 리퀘스터들이 잘못된 데이타를 가져가는 경우가 발생하게 된다.
4) CPU를 재시도(Retry)시키는 기능
스누프 제어기(56)가 CPU의 동작을 재시도(Retry)시키는 경우는 첫째로, 스누프회로(50)와 해당 CPU가 라이트(Write) 동작을 수행하여 그 어드레스가 캐시 메모리에 유효(VALID)하게 존재할 때, 스누프회로(50)가 같은 어드레스에 대해 상태 갱신이 필요한 경우로서 CPU 동작을 재시도(Retry)시킨다. 둘째로, CPU가 필요로 하는 어드레스에 대해 스누프회로(50)에서 상태 갱신의 필요성이 있을 경우(단, 캐시 제어기의 상태 머신이 스타트하기 전에)이다. 셋째로, CPU가 넌캐서블(noncachable) 동작을 캐시 제어시에 요구하고 있을 대, 스누프회로(50)에 의한 상태 갱신이 필요한 경우이다. 상기 두번째 및 세번째 경우에는 스낵(SNACK)을 발생시켜 다른 리퀘스터들을 재시도(Retry)시킬 수 있으나 성능 측면에서 CPU를 재시도(Retry)시키는 것이 훨씬 유리한다.
이상에서 살펴 본 바와 같이 본 발명에 따라 멀티프로세서 시스템을 구성하면 각 프로세서에 위치한 메모리와 메인 메모리간의 캐시코히어런스를 보장하여 신뢰성을 향상시키고, 변경된 일리노이즈 프로토콜과 고속의 디바이스로 구현하여 시스템의 성능을 향상시키는 효과가 있다.

Claims (3)

  1. 로칼버스를 통해 연결되는 중앙처리장치(CPU)와 캐시 메모리와 이를 제어하는 캐시 제어기와 스누프 제어기를 가지는 복수의 프로세서보드와, 메인 메모리와, 이들을 연결하는 시스템 버스를 포함하는 멀티프로세서 시스템에서 상기 프로세서 보드당에 위치하며 상기 메인 메모리와 상기 캐시 메모리들간에 캐시 코히어런스를 유지하는 멀티프로세서 시스템의 스누프회로에 있어서, 상기 캐시 메모리상에 존재하는 어드레스를 저장하고, 상기 시스템버스상에 구동되는 어드레스를 입력한 후 상기 저장된 어드레스와 비교하여 매치되면 에스 시매치(SCMATCH)신호를 출력하는 어드레스 태그 메모리 : 상기 매치된 어드레스의 데이타 상태를 저장하는 상태의 태그 메모리 : 상기 캐시 제어기 및 상기 중앙처리장치가 구동하는 어드레스와 상기 스누프 제어기가 구동하는 어드레스를 비교하는 제 1 비교기 : 상기 중앙처리장치가 버스 동작을 하는 초기에 구동되는 어드레스를 래치하여 저장하고, 소정 시간 간격으로 시스템 버스상의 어드레스를 모니터하여 상기 레치된 어드레스와 비교하는 제 2 비교부 : 및 상기 제 1 비교기의 출력을 입력하여 시에스 매치(CSMATCH)를 판단하고, 제 2 비교부의 출력을 입력하여 피피 매치(PPMATCH)를 판단하고, 상기 판단된 결과 및 상기 에스시매체(SCMATCH)신호에 따라 상기 시트템 버스상에 소정의 캐시 코히어런스신호를 출력하고, 라이트백을 위한 제 1 베어신호, 상태 갱신을 위한 제 2 제어신호, 데이타버퍼를 제어하기 위한 제 3 제어신호 및 상기 중앙처리장치의 재시도를 위한 제 4 제어신호를 로칼버스상에 출력하며 상기 상태 태그 메모리의 데이타를 참조 혹은 갱신하는 상기 스누프 제어기를 구비한 것을 특징으로 하는 멀티프로세서 시스템의 스누프 회로.
  2. 제 1 항에 있어서, 상기 소정의 코히어런스신호는 상기 복수의 프로세서간에 캐시 데이타가 공유되어 있음을 나타내는 공유(SHARD) 신호와, 메인 메모리와 캐시 메모리의 데이타가 일치하제 않음을 나타내는 더티(DIRTY) 신호와, 다른 프로세서보드의 스누프제어기에 현시스템 버스상의 동작 수행을 처리할 수 없음을 알려주는 스낵(SNACK) 신호인 것을 특징으로 하는 멀티프로세서 시스템의 스누프 회로.
  3. 제 1 항에 있어서, 상시 상태는 공유(SHARD), 더티(DIRTY), 유효(VALID) 및 무효(INVALID)인 것을 특징으로 하는 멀티프로세서 시스템의 스누프 회로.
KR1019940007531A 1994-04-11 1994-04-11 멀티프로세서 시스템의 스누프회로 KR960009659B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1019940007531A KR960009659B1 (ko) 1994-04-11 1994-04-11 멀티프로세서 시스템의 스누프회로
JP6326220A JPH07281955A (ja) 1994-04-11 1994-12-27 マルチプロセッサーシステムのスヌープ回路
US08/839,346 US5829040A (en) 1994-04-11 1997-04-18 Snooper circuit of a multi-processor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019940007531A KR960009659B1 (ko) 1994-04-11 1994-04-11 멀티프로세서 시스템의 스누프회로

Publications (2)

Publication Number Publication Date
KR950029941A KR950029941A (ko) 1995-11-24
KR960009659B1 true KR960009659B1 (ko) 1996-07-23

Family

ID=19380773

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019940007531A KR960009659B1 (ko) 1994-04-11 1994-04-11 멀티프로세서 시스템의 스누프회로

Country Status (3)

Country Link
US (1) US5829040A (ko)
JP (1) JPH07281955A (ko)
KR (1) KR960009659B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100348100B1 (ko) * 1998-07-31 2002-11-07 하나제약 주식회사 2-[(2,6-디클로로페닐)아미노]페닐아세톡시아세트산의제조방법

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100387576B1 (ko) * 1995-12-29 2003-09-22 엘지엔시스(주) 멀티프로세서시스템의캐쉬응집프로토콜처리방법
US6038644A (en) * 1996-03-19 2000-03-14 Hitachi, Ltd. Multiprocessor system with partial broadcast capability of a cache coherent processing request
US6018791A (en) * 1997-04-14 2000-01-25 International Business Machines Corporation Apparatus and method of maintaining cache coherency in a multi-processor computer system with global and local recently read states
US6314495B1 (en) 1998-01-07 2001-11-06 International Business Machines Corporation Method and apparatus for executing multiply-initiated, multiply-sourced variable delay system bus operations
US6108753A (en) * 1998-03-31 2000-08-22 International Business Machines Corporation Cache error retry technique
US6141714A (en) * 1998-07-13 2000-10-31 International Business Machines Corporation Method and apparatus for executing self-snooped unresolvable system bus operations
US6178485B1 (en) * 1998-07-13 2001-01-23 International Business Machines Corporation Method and apparatus for executing singly-initiated, singly-sourced variable delay system bus operations of differing character
US6192453B1 (en) * 1998-07-13 2001-02-20 International Business Machines Corporation Method and apparatus for executing unresolvable system bus operations
JP3525771B2 (ja) * 1998-11-30 2004-05-10 日本電気株式会社 バス・スヌープ制御回路
KR100544871B1 (ko) * 1998-12-29 2006-03-31 매그나칩 반도체 유한회사 듀얼 라이트 백 버퍼_
US6434641B1 (en) * 1999-05-28 2002-08-13 Unisys Corporation System for reducing the number of requests presented to a main memory in a memory storage system employing a directory-based caching scheme
US6275909B1 (en) * 1999-08-04 2001-08-14 International Business Machines Corporation Multiprocessor system bus with system controller explicitly updating snooper cache state information
US6321305B1 (en) 1999-08-04 2001-11-20 International Business Machines Corporation Multiprocessor system bus with combined snoop responses explicitly cancelling master allocation of read data
US6353875B1 (en) 1999-08-04 2002-03-05 International Business Machines Corporation Upgrading of snooper cache state mechanism for system bus with read/castout (RCO) address transactions
US6343344B1 (en) 1999-08-04 2002-01-29 International Business Machines Corporation System bus directory snooping mechanism for read/castout (RCO) address transaction
US6343347B1 (en) 1999-08-04 2002-01-29 International Business Machines Corporation Multiprocessor system bus with cache state and LRU snoop responses for read/castout (RCO) address transaction
US6502171B1 (en) 1999-08-04 2002-12-31 International Business Machines Corporation Multiprocessor system bus with combined snoop responses explicitly informing snoopers to scarf data
US6324617B1 (en) 1999-08-04 2001-11-27 International Business Machines Corporation Method and system for communicating tags of data access target and castout victim in a single data transfer
US6338124B1 (en) 1999-08-04 2002-01-08 International Business Machines Corporation Multiprocessor system bus with system controller explicitly updating snooper LRU information
US6349367B1 (en) 1999-08-04 2002-02-19 International Business Machines Corporation Method and system for communication in which a castout operation is cancelled in response to snoop responses
US6996645B1 (en) * 2002-12-27 2006-02-07 Unisys Corporation Method and apparatus for spawning multiple requests from a single entry of a queue
US7127562B2 (en) * 2003-06-11 2006-10-24 International Business Machines Corporation Ensuring orderly forward progress in granting snoop castout requests
US7363427B2 (en) * 2004-01-12 2008-04-22 Hewlett-Packard Development Company, L.P. Memory controller connection to RAM using buffer interface
US8301844B2 (en) * 2004-01-13 2012-10-30 Hewlett-Packard Development Company, L.P. Consistency evaluation of program execution across at least one memory barrier
US7376794B2 (en) * 2004-01-13 2008-05-20 Hewlett-Packard Development Company, L.P. Coherent signal in a multi-processor system
US7409503B2 (en) * 2004-01-13 2008-08-05 Hewlett-Packard Development Company, L.P. Register file systems and methods for employing speculative fills
US7380107B2 (en) * 2004-01-13 2008-05-27 Hewlett-Packard Development Company, L.P. Multi-processor system utilizing concurrent speculative source request and system source request in response to cache miss
US7409500B2 (en) * 2004-01-13 2008-08-05 Hewlett-Packard Development Company, L.P. Systems and methods for employing speculative fills
US7340565B2 (en) * 2004-01-13 2008-03-04 Hewlett-Packard Development Company, L.P. Source request arbitration
US7360069B2 (en) * 2004-01-13 2008-04-15 Hewlett-Packard Development Company, L.P. Systems and methods for executing across at least one memory barrier employing speculative fills
US7383409B2 (en) 2004-01-13 2008-06-03 Hewlett-Packard Development Company, L.P. Cache systems and methods for employing speculative fills
US7406565B2 (en) * 2004-01-13 2008-07-29 Hewlett-Packard Development Company, L.P. Multi-processor systems and methods for backup for non-coherent speculative fills
US8281079B2 (en) * 2004-01-13 2012-10-02 Hewlett-Packard Development Company, L.P. Multi-processor system receiving input from a pre-fetch buffer
US7856534B2 (en) 2004-01-15 2010-12-21 Hewlett-Packard Development Company, L.P. Transaction references for requests in a multi-processor network
US7962696B2 (en) * 2004-01-15 2011-06-14 Hewlett-Packard Development Company, L.P. System and method for updating owner predictors
US7240165B2 (en) * 2004-01-15 2007-07-03 Hewlett-Packard Development Company, L.P. System and method for providing parallel data requests
US7149852B2 (en) * 2004-01-20 2006-12-12 Hewlett Packard Development Company, Lp. System and method for blocking data responses
US20050160238A1 (en) * 2004-01-20 2005-07-21 Steely Simon C.Jr. System and method for conflict responses in a cache coherency protocol with ordering point migration
US8176259B2 (en) * 2004-01-20 2012-05-08 Hewlett-Packard Development Company, L.P. System and method for resolving transactions in a cache coherency protocol
US7395374B2 (en) * 2004-01-20 2008-07-01 Hewlett-Packard Company, L.P. System and method for conflict responses in a cache coherency protocol with ordering point migration
US8468308B2 (en) * 2004-01-20 2013-06-18 Hewlett-Packard Development Company, L.P. System and method for non-migratory requests in a cache coherency protocol
US8090914B2 (en) * 2004-01-20 2012-01-03 Hewlett-Packard Development Company, L.P. System and method for creating ordering points
US7620696B2 (en) * 2004-01-20 2009-11-17 Hewlett-Packard Development Company, L.P. System and method for conflict responses in a cache coherency protocol
US7143245B2 (en) * 2004-01-20 2006-11-28 Hewlett-Packard Development Company, L.P. System and method for read migratory optimization in a cache coherency protocol
US8145847B2 (en) * 2004-01-20 2012-03-27 Hewlett-Packard Development Company, L.P. Cache coherency protocol with ordering points
US7769959B2 (en) * 2004-01-20 2010-08-03 Hewlett-Packard Development Company, L.P. System and method to facilitate ordering point migration to memory
US7177987B2 (en) * 2004-01-20 2007-02-13 Hewlett-Packard Development Company, L.P. System and method for responses between different cache coherency protocols
US7818391B2 (en) * 2004-01-20 2010-10-19 Hewlett-Packard Development Company, L.P. System and method to facilitate ordering point migration

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4959777A (en) * 1987-07-27 1990-09-25 Motorola Computer X Write-shared cache circuit for multiprocessor system
US4928225A (en) * 1988-08-25 1990-05-22 Edgcore Technology, Inc. Coherent cache structures and methods
US5119485A (en) * 1989-05-15 1992-06-02 Motorola, Inc. Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation
JP2509344B2 (ja) * 1989-09-19 1996-06-19 富士通株式会社 デ―タ処理装置
JP2820752B2 (ja) * 1990-01-19 1998-11-05 日本電信電話株式会社 密結合マルチプロセッサシステムにおけるキャッシュメモリ一致制御方法
JPH0477097U (ko) * 1990-11-20 1992-07-06
KR920009441A (ko) * 1990-11-21 1992-06-25 김덕환 정수제및 경화제로 유용한 무기 응집제
GB2256512B (en) * 1991-06-04 1995-03-15 Intel Corp Second level cache controller unit and system
US5335335A (en) * 1991-08-30 1994-08-02 Compaq Computer Corporation Multiprocessor cache snoop access protocol wherein snoop means performs snooping operations after host bus cycle completion and delays subsequent host bus cycles until snooping operations are completed
US5522058A (en) * 1992-08-11 1996-05-28 Kabushiki Kaisha Toshiba Distributed shared-memory multiprocessor system with reduced traffic on shared bus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100348100B1 (ko) * 1998-07-31 2002-11-07 하나제약 주식회사 2-[(2,6-디클로로페닐)아미노]페닐아세톡시아세트산의제조방법

Also Published As

Publication number Publication date
US5829040A (en) 1998-10-27
KR950029941A (ko) 1995-11-24
JPH07281955A (ja) 1995-10-27

Similar Documents

Publication Publication Date Title
KR960009659B1 (ko) 멀티프로세서 시스템의 스누프회로
US5426765A (en) Multiprocessor cache abitration
US5802577A (en) Multi-processing cache coherency protocol on a local bus
KR100371845B1 (ko) 데이타처리시스템
CN101593161B (zh) 确保微处理器的快取存储器层级数据一致性的装置与方法
US5561779A (en) Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system
KR100371844B1 (ko) 데이타처리시스템
US5249284A (en) Method and system for maintaining data coherency between main and cache memories
US5913021A (en) Memory state recovering apparatus
JPH0628254A (ja) ライトスルーキャッシュおよびパイプラインスヌープサイクルを備えたメモリシステムを有するパーソナルコンピュータ
JPH10320283A (ja) マルチプロセッサ・データ処理システム内でキャッシュ・コヒーレンシを維持するキャッシュ・コヒーレンシ・プロトコルを提供する方法及び装置
US5611074A (en) Efficient polling technique using cache coherent protocol
US5485592A (en) Write back cache controller method and apparatus for use in a system having a CPU with internal cache memory
JPH09237223A (ja) バスブリッジを用いたコンピュータシステム
JP3092566B2 (ja) パイプライン方式のバスを用いたメモリ制御方式
US7464227B2 (en) Method and apparatus for supporting opportunistic sharing in coherent multiprocessors
JPH06318174A (ja) キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
JP2571670B2 (ja) メモリ・コヒーレンシィ保持システム及びその方法
WO1997004392A1 (en) Shared cache memory device
US5557622A (en) Method and apparatus for parity generation
JP3202943B2 (ja) 処理装置及びルックアサイド・キャッシュをスヌープする改善された装置及び方法
US20080320237A1 (en) System controller and cache control method
US5781925A (en) Method of preventing cache corruption during microprocessor pipelined burst operations
JPH10222423A (ja) キャッシュメモリ制御方式
KR950003877B1 (ko) 캐쉬 업데이트(Cache Update)장치 및 방법

Legal Events

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

Payment date: 20120628

Year of fee payment: 17

LAPS Lapse due to unpaid annual fee