KR100188438B1 - 멀티프로세서시스템의 교체 라이트백 사이클 처리장치 및 방법 - Google Patents

멀티프로세서시스템의 교체 라이트백 사이클 처리장치 및 방법 Download PDF

Info

Publication number
KR100188438B1
KR100188438B1 KR1019960031550A KR19960031550A KR100188438B1 KR 100188438 B1 KR100188438 B1 KR 100188438B1 KR 1019960031550 A KR1019960031550 A KR 1019960031550A KR 19960031550 A KR19960031550 A KR 19960031550A KR 100188438 B1 KR100188438 B1 KR 100188438B1
Authority
KR
South Korea
Prior art keywords
address
cycle
data
processor
writeback
Prior art date
Application number
KR1019960031550A
Other languages
English (en)
Other versions
KR980013130A (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 KR1019960031550A priority Critical patent/KR100188438B1/ko
Publication of KR980013130A publication Critical patent/KR980013130A/ko
Application granted granted Critical
Publication of KR100188438B1 publication Critical patent/KR100188438B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 멀티프로세서 시스템에서의 교체 라이트백 사이클 처리장치 및 처리방법에 관한 것으로서, 본 발명의 장치는 2차캐쉬 읽기미스에 의해 발생된 교체 라이트백 사이클의 어드레스를 저장하는 어드레스 저장수단; 저장된 어드레스를 출력하는 출력수단; 2차캐쉬 읽기미스에 의해 발생된 교체 라이트백 사이클의 데이터를 저장하는 데이터 저장수단; 데이터를 출력하는 데이터 출력수단; 어드레스 저장수단에 저장된 어드레스와, 프로세서가 새로운 캐쉬라인채움 사이클에서 구동한 어드레스를 비교하는 제1비교기; 어드레스 저장수단에 저장된 어드레스와 스누우프 어드레스를 비교하는 제2비교기; 및 스누우프 라이트백 사이클 또는 리플레이스 라이트백 사이클을 진행과정을 제어하는 버스사이클 제어기를 포함한다.
본 발명에 의하면 프로세서가 사이클에 소요되는 시간을 단축시키고 필요한 경우에만 시스템버스를 사용하도록 버스 사용을 효율화 시키는 효과가 있어 전체 시스템의 성능을 현저히 향상시킬 수 있다

Description

멀티프로세서시스템의 교체 라이트백 사이클 처리장치 및 방법
본 발명은 멀티프로세서 시스템에서의 캐쉬에 관련한 버스 사이클에 관한 것으로서, 특히 2차 캐쉬가 프로세서 외부에 장착된 프로세서 보드가 적어도 2개 장착되는 버스를 기반으로한 멀티프로세서 시스템에서의 교체 라이트백 사이클 처리 장치 및 방법에 관한 것이다.
일반적으로 버스를 기반으로 하고 공유메모리(shared memory)에 기초한 멀티프로세서(multiprocessor) 시스템에서 각각의 프로세서 (processor)는 시스템 버스를 통해 공유메모리 자원을 접근하게 된다. 이 때 시스템을 구성하는 프로세서의 수가 많을수록, 상기 프로세서는 버스를 요구하는 마스터(master) 역할을 하게 되므로 시스템 버스사용권에 대한 경쟁은 심화된다. 마이크로프로세서(microprocessor) 의 처리속도가 혁신적으로 빨라짐으로 인해 마이크로프로세서와 시스템 버스의 처리속도 차이는 더욱 크게 나타나는 양상을 보이고 있다.
따라서 오늘날 멀티프로세서 시스템에서 각각의 프로세서 내에 속도가 빠른 캐쉬(cache) 메모리를 탑재하는 것은 거의 일반화된 현상이 되었다. 캐쉬메모리는 프로세서가 시스템 버스를 통해 공유메모리 자원을 접근하는 대신 각각의 프로세서 자신이 최근에 가장 자주 접근하는 데이터를 프로세서 보드(board) 내의 속도가 빠른 메모리에 담아두고 사용함으로써 시스템 성능향상을 도모할 수 있게 하는 속도가 빠른 메모리이다. 캐쉬메모리의 채택으로 버스 마스터들의 시스템 버스 사용권에 대한 경쟁은 완화되어 버스의 사용효율은 증대된다.
한편 각각의 처리기 보드내의 캐쉬메모리의 데이터와 시스템 버스상의 공유메모리 데이터 간의 데이터 일치성(consistency)을 보장하기 위해서는 이를 지원할 시스템 버스의 프로토콜(protocol)이 다소 복잡해지는 것은 불가피하다.
본 발명의 적용될 수 있는 프로세서 보드에 탑재된 마이크로프로세서는 미국 인텔(Intel)사의 펜티엄 P54C로서 1차 케쉬메모리를 내장하고 있고, 2차 캐쉬메모리로는 인텔사의 캐쉬/스누우프/사이클(cache/snoop/cycle) 제어기인 C5C와 캐쉬메모리인 C8C를 사용하여 512KB로 구성되어 있다. 물론 다른 디바이스(device)를 사용하면 1MB 또는 2MB의 2차 캐쉬메모리도 구현이 가능하지만 편의상 512KB인 경우를 예로 들어 본 발명에 관련된 내용을 설명하기로 한다. 1차 캐쉬메모리와는 달리 2차 캐쉬메모리는 데이터와 코드(code)의 구분이 없이 단일(unified) 캐쉬의 형태를 띠고 있으며 데이터의 일치성을 보장하기 위해 1차 캐쉬메모리의 데이터를 2차 캐쉬 메모리가 전부 포함하는 구조로 되어 있어 내포특성(inclusion property)을 준수하고 있다.
좀더 세부적으로 살펴보면 상기 캐쉬메모리는 특정 데이터에 해당하는 어드레스를 담아두는 2-웨이 집합연관(2-way set associative) 태그메모리(tag memory)와 2-웨이 데이터메모리(data memory)로 구성되어 있다. 캐시 동작(operation)의 기본단위라 할 수 있는 캐쉬 라인크기(line size)의 경우 2차 캐쉬메모리는 64바이트로 설정되어 있다. 여기서 512KB의 2차 캐쉬 메모리라 함은 데이터 캐쉬메모리 크기의 관점에서 이야기하는 것으로 기계적으로 설명한다면 2-웨이 캐쉬 구조에서는 2개의 256KB의 데이터 캐쉬메모리로 구성된다고 할 수 있다. 펜티엄 프로세서 P54C는 32비트의 어드레스 신호(A31-A0)를 사용하여 총 4GB의 메모리 영역을 억세스할 수 있으므로, 2차 캐쉬메모리는 총 4GB 중의 어느 라인의 데이터라도 담아둘 수 있는 형태로 구성되어 있다. 즉 4GB:512KB의 매핑(mapping) 구조가 구현되어 있는 것이다. 이를 위해 상기 캐쉬/스누우프/사이클 제어기 C5C는 어드레스 신호중 A17-A6(set address)를 사용하여 4096개의 배당장소(location)를 가지고 있는 2-웨이 태그 메모리를 억세스할 수 있다. 여기서 2-웨이라 함은 4096개의 각 태그 메모리 배당장소(location)가 2개의 태그정보(태그 어드레스: A31-A18)를 담아둘 수 있는 이중 구조로 되어 있음을 의미한다. 따라서 512KB의 산출식은 512KB = 집합 배당장소(set location) 수(4096 즉 4K 개) X 2-웨이 X 64바이트(캐쉬 라인크기)로 표현될 수 있는 것이다.
다음에는 프로세서의 데이터 억세스 사이클들을 설명하기로 한다. 도 1은 본 발명과 종래의 프로세서 보드가 적용이 되는 공유메모리에 기반한 대칭적 구조를 갖는 멀티프로세서 시스템의 블록도를 도시한 것이다.
그리고 데이터 일치성을 유지하기 위해 사용되는 M.E.S.I 프로토콜(protocol)은 인텔 펜티엄 프로세서에서 사용하는 캐시관련 프로토콜로서, 상기 M.E.S.I는 캐쉬 라인의 상태를 나타낸다. 상기 M은 Modified의 약자로서, 캐시라인의 상태가 M이란 뜻은 하나의 캐쉬에서만 M을 사용할 수 있으며, 캐시 라인의 데이터가 주(main)메모리와는 다른 데이터임을 나타낸다. 상기 E는 Exclusive의 약자로서, 하나의 캐쉬에서만 사용할 수 있으며 캐시라인이 E라는 뜻은 주메모리에 있는 데이터와 같은 데이터임을 나타내고, 만일 상기 E상태의 캐쉬라인에 데이터를 기록하면 상기 캐쉬 라인의 상태는 M으로 바뀐다. 그리고 상기 S는 Shared의 약자로서, 적어도 두 개 이상의 캐쉬에서 동일한 어드레스에 동일한 데이터를 가지고 있음을 나타낸다. 상기 S상태의 캐쉬라인에 데이터를 기록하면 상기 캐쉬라인의 상태는 M으로 바뀌고, 다른 캐쉬라인의 데이터는 무효화(invalidate)되어야 한다. 마지막으로 상기 I는 Invalid의 약자로서, 캐쉬라인의 상태가 I이면 상기 캐쉬라인의 데이터는 유효하지 않음을 나타낸다. 즉 프로세서가 더 이상 사용할 수 없음을 나타낸다.
도 2는 종래의 프로세서 보드의 블록도를 도시한 것이다. 참조번호 200은 프로세서(CPU)로서, 1차 캐쉬 메모리를 내장하고 있는 인텔 펜티엄(Pentium) 프로세서라고 가정한다. 205는 스누우프 제어기로서, 상기 M.E.S.I 프로토콜에 기초하여 다른 프로세서 보드의 공유메모리 억세스를 감시(snooping)하고, 필요한 경우 그에 응답하여 공유메모리를 억세스하기 위한 시스템 버스 사이클을 개시한다. 210은 캐쉬제어기로서, 프로세서의 2차 캐쉬메모리(215) 억세스 및 시스템 버스 공유메모리의 읽기/쓰기 억세스, 스누우프 제어기(205)의 스누우핑 등에 따라 2차 캐쉬 메모리(215)의 어드레스 태그를 상기 M.E.S.I 프로토콜에 기초하여 관리하고 필요한 경우 시스템 버스 사이클을 개시하고 버스사이클 제어기(235)의 도움을 받아 이를 진행 및 종료한다. 그리고 215는 2차 캐쉬메모리이다.
220은 캐쉬가 가능하지 않은(non-cacheable) 단일쓰기, 라이트-쓰루(write-through) 단일쓰기와 스누우프 라이트백 버스터 (burst) 쓰기를 위한 데이터를 로드(load)해 두기 위한 다중레벨 (multi-level) 파이프라인된 레지스터이다. 그리고 225는 캐쉬가 가능하지 않은 단일 쓰기, 라이트-쓰루 및 캐쉬 가능한 버스트읽기를 위한 데이터 버퍼로서 설계에 따라 단일레벨(single-level) 또는 다중레벨 레지스터로 구현될 수 있다. 230은 어드레스 래치 및 삼-상태(tri-state) 버퍼로서, 캐쉬 가능한 또는 캐쉬 가능하지 않은 읽기 사이클 어드레스, 단일 쓰기 사이클 어드레스와 스누우프 라이트백 사이클 어드레스를 래치한다.
235는 버스 사이클 제어기로서, 프로세서(200)으로부터 사이클 형태 및 명령(cycle type command) 신호들을 전달받고 그에 따른 시스템 버스 억세스 사이클을 준비하며, 시스템버스 중재에 참가하여 버스의 사용권을 획득한 후 공유메모리에 대한 읽기/쓰기 억세스를 수행하고 프로세서(200)의 버스 사이클을 종료시킨다. 이러한 일련의 버스 사이클 처리 과정에서 어드레스 래치/버퍼, 데이터 레지스터/버퍼 및 각종 시스템 버스 인터페이스 버스 트랜시버(transceiver) 로직 등의 개폐와 로드/언로드(load/unload)를 총괄적으로 제어한다.
240은 다른 프로세서 보드의 공유메모리 읽기/쓰기 억세스를 감시(snooping)하고 그에 따른 스누우프 응답을 전달하기 위한 시스템 버스 인터페이스 트랜시버 로직이다. 스누우프 응답을 한 프로세서 보드(스누우프 제어기)는 그에 따라 자신의 캐쉬라인의 태그상태를 바꾸거나 필요한 경우 스누우프 라이트백 사이클을 수행하며, 스누우프 응답을 받은 프로세서 보드는 그에 따라 자신의 사이클 종료시의 캐시 라인 태그상태를 적절한 값으로 설정하게 하므로써 전체적인 시스템 차원의 데이터 일치성을 보장하게 된다.
245는 자신의 프로세서 보드의 시스템 버스 사이클을 위한 어드레스를 시스템 버스로 전달하고 또한 다른 프로세서 보드의 공유메모리 억세스를 위한 시스템 버스 어드레스를 감시하기 위해 그 어드레스 즉 자신의 관점에서 볼 때 스누우프 어드레스를 전달받는 데 사용되는 시스템버스 인터페이스 트랜시버 로직이다.
250은 자신의 시스템 버스 억세스를 위해 시스템 버스의 사용을 요청하고 중재에 참가하고 버스의 사용권을 획득하는데 까지에 필요한 일련의 신호들을 주고받기 위한 시스템 버스 인터페이스 트랜시버 로직이다.
255는 자신의 시스템 버스 억세스 사이클 형태(읽기/쓰기)에 따라 시스템 버스와 데이터를 주고 받기 위한 시스템 버스 인터페이스 트랜시버 로직이다.
한편 신호3은 정규 사이클 즉 읽기 사이클, 단일 쓰기 사이클, 스누우프 라이트백 사이클의 어드레스 래치 삼상태(tri-state)버퍼의 출력 인에이블 신호이고, 신호4는 상기 정규사이클의 어드레스 래치 삼상태(tri-state)버퍼의 래치 인에이블 신호이다.
신호7은 단일 쓰기, 스누우프 라이트백 사이클의 쓰기 데이터 출력 인에이블 신호이고, 신호8은 단일 쓰기, 스누우프 라이트백 사이클의 쓰기 데이터 로드(load) 인에이블 신호이다. 신호11은 읽기 데이터 로드 인에이블 신호이고, 신호12는 읽기 데이터 출력 인에이블 신호이다.
한편 2차 캐쉬메모리의 경우는 4096개의 2-웨이 태그 메모리 배당장소(location) 각각에 상기 M.E.S.I 정보를 저장해 두기 위해 별도의 영역인 태그상태 배당장소(location)가 부가적으로 존재한다.
다음은 상기 도 1 및 도 2를 참조하여 프로세서의 데이터 억세스 사이클들을 설명한다.
1) 데이터 읽기 사이클(data read cycle)
프로세서(200)가 요구하는 데이터가 1차 캐쉬메모리에 없을 경우 즉 1차 캐쉬 읽기 미스(read miss)일 경우, 프로세서(200)는 2차 캐쉬/스누우프/사이클 제어기(205,210)에게 데이터 읽기 억세스 사이클을 요청하고, 상기 제어기(205,210)는 프로세서 어드레스 중 A17-A6에 해당하는 2개의 태그 메모리 배당장소(location)를 열어보고 그 안에 원하는 데이터의 어드레스(프로세서의 A31-A18과 동일한 값)가 있을 경우 즉 2차 캐쉬 읽기 히트(hit)일 경우, 그에 해당하는 데이터를 2차 캐쉬 데이터 메모리(215)로부터 프로세서(200)로 공급한다. 원하는 어드레스가 없을 경우에는 즉 2차 캐쉬 읽기 미스일 경우, 상기 제어기(205,210)는 도 2에 도시된 버스사이클 제어기(235)에게 시스템 버스를 통해 공유메모리를 억세스하여 읽기 데이터를 공급하도록 요청한다. 상기 버스사이클 제어기(235)는 시스템 버스의 사용을 요청하는 신호들을 구동하고 시스템 버스의 중재(arbitration)를 거쳐 버스의 사용권을 획득한 후 읽기 사이클을 요청하는 정보의 신호들(어드레스, 사이클형태 등)을 버스 프로토콜에 입각하여 공유메모리에게 전달하는 어드레스(명령)사이클을 수행하는데 이 싯점에 시스템 버스 상에 위치한 다른 처리기(프로세서 구성요소 보드)로부터의 스누우프 응답에 따라 이 어드레스 사이클을 재시도(retry)하거나 또는 스누우프 응답내용을 기억해둔다. 이후 공유메모리로부터 데이터 응답이 오면 상기 버스사이클 제어기(235)는 이를 2차 캐쉬 메모리(215)로 전달하는데 이 때 앞서의 기억해둔 스누우프 응답에 따라 M.E.S.I 중 하나로 그 태그 상태 배당장소(location)를 표시(marking)해둘 것을 함께 요청한다. 스누우프 응답이 없었을 경우의 태그상태는 E로, 스누우프 응답이 공유인 경우에는 태그상태를 S로 표시하도록 요청한다. 이와 같은 방식으로 프로세서(200)가 요구하는 읽기 데이터는 1차 또는 2차 캐쉬 메모리(215)에 저장되어 이후에 다시 그 데이터를 읽으려 할 경우 읽기히트(read hit)가 되어 별도의 시스템 버스 억세스 요청없이 모든 동작이 캐쉬 메모리 내에서 빠르게 처리될 수 있는 것이다.
2) 데이터 쓰기 사이클(data write cycle)
프로세서(200)가 쓰려고 하는 라인이 이미 1차 캐쉬에 존재하는 경우 즉 1차 캐쉬쓰기히트(cache write hit)인 경우에는 2차 캐쉬에 대한 별도의 데이터 억세스 요청없이 바로 1차 캐쉬의 캐쉬 데이터 라인을 갱신(update)하게 되는데 해당하는 1차 태그 상태 배당장소(location)는 E인 경우는 M으로, M인 경우는 M으로 변경하고, S인 경우는 E로 변경함과 동시에 2차 캐쉬메모리(215)로의 라이트-쓰루(write-through) 사이클이 요청되며 후속하여 시스템 버스 억세스를 요청하여 공유메모리에도 그 데이터를 기록(write)한다.
프로세서(200)의 1차 캐쉬에 대한 쓰기(write) 사이클 요청이 미스(miss)이고 2차 캐쉬메모리(215)에 대한 쓰기 사이클 요청은 히트(2차 캐쉬 write hit)가 되는 경우, 상기 제어기(205,210)는 그 해당하는 데이터 캐쉬 메모리 배당장소(location)에 데이터를 기록하고 그 태그 상태 배당장소는 E인 경우 M으로 , M인 경우는 M으로 변경하고 S인 경우에는 E로 변경함과 동시에 시스템 버스 억세스를 요청하여 공유메모리에도 그 데이터를 단일 데이터 라이트-쓰루(single data write-through) 사이클로 기록한다.
프로세서(200)의 쓰기 요구가 1차 및 2차 캐쉬 모두에 미스인 경우 상기 제어기(205,210)는 버스사이클 제어기(235)에게 시스템 버스 억세스 사이클을 요청하며 상기 버스사이클 제어기(235)는 시스템 버스 사용권을 획득한 후 쓰기 사이클 대신 배타읽기(exclusive read) 사이클을 수행하여 공유 메모리로부터 라인 단위의 데이터인 캐쉬가능한 버스터 데이터(cacheable burst data)를 공급받은 후 이를 2차 캐쉬(215)로 전달하는데, 이 때 필요한 적절한 신호를 구동하여 상기 제어기(205,210)로 하여금 읽기(read)는 라인 데이터의 필요한 부분에 프로세서로 부터의 원래의 쓰기 데이터를 기록하는 방식으로 합성(merge)하여 2차 캐쉬(210)의 해당하는 데이터 캐쉬 메모리 배당위치에 기록하게 한다. 또한 그 2차 태그상태 배당위치(location) 에는 M으로 표시하도록 한다. 이 때 어떤 데이터도 1차 캐쉬로는 들어가지 않는다.
3) 교체 라이트백(replacement write back) 사이클
상기에서 캐쉬 메모리의 구조를 살펴본 바와 같이 일반적인 캐쉬가능한 읽기(cachable read) 사이클 및 캐쉬가능한 배타읽기(cachable exclusive read) 사이클의 경우 프로세서 어드레스 A17-A6에 해당하는 2차 캐쉬 메모리의 배당장소(location)에 그 데이터를 채우게(cache line fill)되는데, 4GB라는 전 영역의 메모리 데이터가 상대적으로 아주 작은 크기인 512KB로 매핑되는 구조로 되어 있으므로 2-웨이 구조의 2차 캐쉬 메모리에는 일정 싯점에 A17-A6가 동일한 라인크기(line size)의 데이터가 최대 2개만 저장될 수 밖에 없다. 따라서 이미 해당 배당장소가 이전의 캐쉬라인 채움(fill) 데이터로 대체될 수 밖에 없다. 따라서 이미 해당 배당장소가 이전의 캐쉬라인 채움에 의해 채워져 있을 경우 그 배당장소에 또다시 새로운 캐쉬라인 채움이 일어나야 하는 경우 그 배당장소는 새로운 캐쉬라인 채움 데이터로 교체(replacement)될 수밖에 없다. 교체되어야 할 라인 배당장소에 해당하는 태그상태 배당장소(location)가 E,S 또는 I인 경우에는 그냥 교체해 버리면 되지만 M인 경우에는 데이터 일치성(consistency)를 보장하기 위해 그 데이터를 공유메모리(shared memory)로 전달하는 과정이 뒤따라야 하는데 이를 가리켜 '교체 라이트백 사이클'이라 하며 하나의 교체된 라인전부가 시스템 버스를 통하여 버스트 쓰기(burst write) 사이클(라인 크기의 데이터를 시스템 버스의 데이터 버스 폭에 맞도록 나누어 하나의 쓰기 사이클 내에서 순차적으로 연속하여 기록하는 동작)로 공유메모리로 데이터를 전달한다.
4) 스누우프 라이트백 사이클(snoop write back cycle)
캐쉬/스누우프/사이클 제어기(205,210)와 프로세서 보드 내에 스누우프(snoop)를 위해 부가적으로 존재하는 스누우프 제어 로직들을 총괄하여 스누우프 제어기(205)라 부르기로 한다. M.E.S.I 프로토콜을 사용하는 다중처리기 시스템에서 하나의 프로세서 보드 내의 스누우프 제어기는 다른 모든 처리기의 시스템 버스 억세스를 항상 감시(snooping)하는 기능을 담당하는데 이는 다른 처리기의 시스템 버스 억세스 어드레스 A17-A6에 해당하는 캐쉬 태그 배당장소 내에 저장되어 있는 어드레스 값과 그 어드레스 A31-A18을 비교하고 그 태그 상태 배당장소의 M.E.S.I 표시(marking)되어 있는 상태에 따라 다른 처리기의 시스템 버스 억세스 어드레스 사이클의 끝에 적절한 스누우프 응답을 하므로써 스누우프 동작은 이루어진다. 이와 같은 어드레스의 비교를 통해 히트(즉 어드레스가 동일)이고 태그상태 배당장소의 상태가 M인 경우 스누우프 제어기(205)는 스누우프 응답(dirty)을 통해 다른 처기기의 공유메모리 억세스를 지연시키고 즉시 저장하고 있던 데이터를 공유메모리로 기록하기 위한 버스트 라이트백 사이클을 버스 사이클 제어기(235)에게 요청하여 수행시킨다. 이를 가리켜 '스누우프 라이트백 사이클'이라 부른다. 지연되었던 다른 처리기의 공유메모리 억세스 사이클은 이 스누우프 라이트백 사이클이 종료된 후에야 비로소 재개된다.
5) 캐쉬가능하지 않은 읽기/쓰기 사이클(non cachable read/write cycle)
프로세서(200)는 총 4GB의 메모리 영역중 일부를 캐쉬가능하지 않은 영역(non-cachable area)으로 선언하여 읽기/쓰기할 수 있는데, 이 때에는 1차 및 2차 캐쉬 메모리로의 어떠한 캐쉬 라인 채움도 발생하지 않고 또한 캐쉬 태그상태도 절대 변경됨이 없이 단지 상기 제어기(205,210)와 버스사이클 제어기(235)를 거쳐 시스템 버스를 통한 단일 데이터 읽기/쓰기 사이클만 수행될 뿐이다.
도 3에 도시된 바와 같이 프로세서의 모든 시스템 버스 억세스 사이클들의 어드레스는 모두 하나의 어드레스 래치 삼-상태(tri-state) 버퍼(230)를 경유하여 버스사이클 제어기(235)가 공유메모리를 억세스하는데 사용되도록 되어 있다. 또한 모든 쓰기 사이클의 데이터는 단일 쓰기, 교체 라이트백 구분없이 하나의 파이프라인된 쓰기 데이터 레지스터(220)를 거치도록 되어 있고, 읽기 데이터는 단일한 경로인 데이터 버퍼(225)를 거치도록 되어 있다. 상술한 바와 같이 시스템 버스 억세스를 통해 수행되는 캐쉬 라인 채움이 기존에 M상태로 존재하던 캐쉬 라인에 대한 교체를 유발하는 경우 후속하여 교체 라이트백 사이클을 수반하게 된다. 문제는 이 교체 라이트백 사이클을 수행한 프로세서 보드의 프로세서는 이 사이클이 정상적으로 종료되기 전까지는 더 이상의 후속 시스템 버스 억세스 사이클을 유보 또는 지연할 수밖에 없다.
하나의 프로세서가 시스템 버스를 통해 공유메모리로부터 데이터를 읽어들여 캐쉬 라인 채움을 할 때 태그 상태가 M인 기존의 캐쉬 데이터 라인의 배당장소를 대체해야할 경우 후속하여 교체 라이트백 사이클이 시스템 버스로 나올 수밖에 없다는 것이다. 이로 인해 그 프로세서는 새로이 시스템 버스를 억세스하기 위한 요구가 내부적으로 발생했다 할지라도 교체 라이트백 사이클이 정상적으로 종료될 때 까지 기다려야 한다. 이를 프로그램을 샐행하는 프로세서의 관점에서 살펴본다면 공유메모리에 비해 상대적으로 아주 작은 크기의 캐쉬 메모리를 전체 공유메모리 영역에 매핑하여 사용하는 구조로 인해 실제로 프로세서는 하나의 읽기(read)만을 요구하였는데 시스템 버스 억세스 사이클 측면에서는 2개의 사이클이 필연적으로 발생할 수밖에 없다고 하겠다. 이처럼 발생하는 교체 라이트백 사이클은 시스템 버스 상의 어느 누구도 당장 그 데이터를 요구하지 않는 즉 긴급히 공유메모리로 기록될 필요가 전혀없는 사이클로서 궁극적으로 언젠가 필요로 할 때 공유메모리 또는 다른 프로세서 보드로 전달되기만 하면 데이터 일치성이 보장될 수 있다. 이와 같은 당장 수행될 필요가 없는 사이클을 위해 시스템 버스를 사용하게 되므로써 시스템 버스의 사용은 효율적이지 못하게 되고 이는 전체 시스템의 성능을 저하시키는 요인의 하나가 된다.
본 발명은 상술한 문제점을 해결하기 위해 창출된 것으로서, 캐쉬메모리를 사용하는 멀티프로세서 시스템에 있어서 데이터의 일치성을 보장하면서 시스템 버스를 보다 효과적으로 사용하고 프로세서의 처리속도를 향상시켜 시스템의 성능을 높일 수 있는, 멀티프로세서 시스템의 교체 라이트백 처리 장치 및 방법을 제공함에 그 목적이 있다.
도 1은 본 발명과 종래의 프로세서 보드가 적용이 되는 공유메모리에 기반한 대칭적 구조를 갖는 멀티프로세서 시스템의 블록도를 도시한 것이다.
도 2는 종래의 프로세서 보드의 블록도를 도시한 것이다.
도 3은 본 발명의 기본 블록도를 도시한 것이다.
도 4는 도 3의 확장된 구성도를 도시한 것이다.
상기의 목적을 달성하기 위한 본 발명에 의한, 2차 캐쉬가 프로세서 외부에 장착된 프로세서 보드가 적어도 2개 있으며, 상기 프로세서 보드는 버스를 기반으로하여 연결되어 있는 멀티프로세서 시스템에서의 교체 라이트백 사이클 처리장치는 프로세서의 2차캐쉬 읽기미스에 의해 발생된 교체 라이트백 사이클의 어드레스를 저장하는 어드레스 저장수단; 상기 어드레스 저장수단에 저장된 어드레스를 출력하는 출력수단; 프로세서의 2차캐쉬 읽기미스에 의해 발생된 교체 라이트백 사이클의 데이터를 저장하는 데이터 저장수단; 상기 데이터 저장수단의 교체 라이트백 데이터를 출력하는 데이터 출력수단; 상기 어드레스 저장수단에 저장된 어드레스와, 프로세서가 새로운 캐쉬 라인 채움 사이클에서 구동한 어드레스를 비교하는 제1비교기; 상기 어드레스 저장수단에 저장된 어드레스와 시스템 버스상의 다른 프로세서에 의해 구동된 어드레스(스누우프 어드레스)를 비교하는 제2비교기; 및 상기 제1비교기 및 제2비교기의 비교결과에 따라, 시스템버스의 중재를 거쳐 스누우프 라이트백 사이클 또는 리플레이스 라이트백 사이클을 진행하기 위한 일련의 과정을 제어하는 버스사이클 제어기를 포함하는 것이 바람직하다.
그리고 상기 버스사이클 제어기는 상기 제1비교기의 비교결과 비교한 어드레스가 서로 같으면 저장되어 있는 교체 라이트백 데이터를 프로세서에게 공급하고, 비교한 어드레스가 서로 다르면 상기 새로운 교체 라이트백 사이클의 어드레스를 저장할 기억장소가 있으면 기억장소에 상기 어드레스와 데이터를 저장하고, 없으면 저장된 교체 라이트백 어드레스와 데이터를 공유메모리로 교체 라이트백 사이클을 수행하도록 하는 일련의 제어를 하고, 상기 제2비교기의 비교결과 어드레스가 서로 같으면, 상기 저장된 리플레이스 라이트백 사이클을 스누우프 라이트백 사이클로 진행하도록 제어함을 특징으로 한다.
한편 본 발명의 다른 목적을 달성하기 위한, 2차 캐쉬가 프로세서 외부에 장착된 프로세서 보드가 적어도 2개 있으며, 상기 프로세서 보드는 버스를 기반으로하여 연결되어 있는 멀티프로세서 시스템에서의 교체 라이트백 사이클 처리방법은
프로세서의 2차캐쉬 읽기 미스에 의해 발생된 교체 라이트백 사이클의 어드레스와 데이터를 자신의 프로세서 보드 내에 저장하는 단계; 및 상기 저장된 교체 라이트백 사이클의 어드레스와 다른 프로세서 보드에 의해 구동된 시스템 버스상에 어드레스를 비교하여, 어드레스가 서로 같으면 상기 저장된 교체 라이트백 사이클의 어드레스와 데이터를 스누우프 라이트백 사이클로 공유메모리에 저장하고, 만일 프로세서가 다시 새로운 캐쉬라인 채움을 요구할 경우, 상기 새로운 캐쉬라인 채움 어드레스 및 데이터를 저장할 기억장소가 있는지 검사하여, 기억장소가 있으면 저장하고 기억장소가 없으면 상기 저장해둔 교체 라이트백 사이클을 리오드링하여 시스템버스 사이클을 진행하여 상기 저장해둔 교체 라이크백 어드레스와 데이터를 공유메모리로 라이트백하는 단계로 이루어지는 것이 바람직하다.
이하에서 첨부된 도면을 참조하여 본 발명을 상세히 설명한다. 도 3은 본 발명의 기본 블록도를 도시한 것으로서, 상기 도 2와 기본적인 구성은 유사하나 상기 도 2와 비교할 때 교체라이트백 어드레스래치어드레스비교기 블록(300)과 교체라이트백을 위한 레지스터(320)가 추가되고, 버스 사이클 제어기(310)가 약간 수정되었다.
상기 교체라이트백 어드레스래치어드레스비교기(300)은 교체 라이트백 어드레스를 래치해 두기 위한 래치 삼상태(tri-state) 버퍼로서, 자신의 프로세서(200)의 공유메모리 읽기 사이클 어드레스와 이미 래치되어 있는 교체 라이트백 어드레스를 비교하기 위한 비교기(302) 및 다른 프로세서 보드의 공유 메모리 억세스 사이클 어드레스인 스누우프 어드레스와 이미 래치되어 있는 교체 라이트백 어드레스를 비교하기 위한 스누우프 비교기(304)를 포함한다.
그리고 상기 교체라이트백을 위한 레지스터(320)은 교체 라이트백 즉 버스터(burst) 쓰기를 위한 데이터를 로드해 두기 위한 다중레벨 파이프라인된 레지스터이다. 상기 버스 사이클 제어기(310)는 본 발명의 목적을 달성하기 위해 도 2의 버스 사이클 제어기(235)에 신호1, 신호2, 신호5, 신호6, 신호9, 신호10을 더한 버스 사이클 제어기이다.
상기 신호1은 교체 라이트백 사이클 어드레스 래치 및 삼상태 버퍼의 출력 인에이블 신호이고, 신호2는 교체 라이트백 사이클 어드레스 래치 및 삼상태 버퍼의 래치 인에이블 신호이다.
신호5는 읽기 히트신호 즉 상기 교체라이트백 어드레스 래치어드레스비교기(300)의 출력신호로서, 자신의 프로세서(200)의 공유메모리 읽기 사이클 어드레스와 이미 래치되어 있는 교체 라이트백 어드레스를 비교하기 위한 CPU(200)-어드레스 비교기(302)에서 두 어드레스가 일치할 경우 구동되는 신호이다. 이처럼 히트일 경우 버스 사이클 제어기(310)는 자신의 읽기 사이클을 위해 시스템 버스를 사용하지 않고 그 대신 상기 교체라이트백을 위한 레지스터(320)로부터 데이터를 출력하고 상기 데이터버퍼(225)를 경유하여 데이터를 프롯세서(200)으로 전달한다.
신호6은 상기 교체라이트백 어드레스 래치어드레스비교기(300)의 출력신호로서, 다른 프로세서 보드의 공유메모리 억세스 사이클 어드레스인 스누우프 어드레스 비교기(304)에서 두 어드레스가 일치(hit)할 경우 구동되는 신호이다. 이처럼 히트일 경우 버스 사이클 제어기(310)는 스누우프 라이트백을 위한 시스템 버스 쓰기 사이클을 구동하고 그 데이터를 상기 레지스터(320)으로부터 출력하여 시스템버스 인터페이스 트랜시버(255)를 거쳐 시스템 버스로 출력한다.
신호9는 교체라이트백 사이클의 쓰기 데이터 출력 인에이블 신호이고, 신호10은 교체라이트백 사이클의 쓰기 데이터 로드(load) 인에이블 신호이다.
한편 도 4는 상기 도 3의 확장된 구성도를 도시한 것으로서, 기본적인 사항은 상기 도 3과 같으나 교체라이트백 어드레스 래치어드레스비교기(300)와 레지스터(320)를 확장하였다. 이로인해 상기 교체라이트백 어드레스래치 어드레스비교기(300)와 레지스터(320)에 어드레스 및 데이터를 로드해 두는데 사용되는 신호인 신호2, 신호10이 각각 1개가 아닌 다수의 신호들로 구성되고, 상기 교체 라이트백 어드레스래치어드레스비교기(400)의 구성요소인 비교기가 더욱 복잡하며, 상기 확장된 교체라이트백 어드레스래치어드레스 비교기(400)와 레지스터(410)의 크기 및 비교기의 구현 방식에 따라 비교기를 제어하고 그 결과를 버스사이클 제어기(420)에게 알리기 위한 신호들이 추가된다. 상기 확장된 교체라이트백 어드레스래치어드레스 비교기(400)와 확장된 레지스터(410)에서 볼 수 있듯이 기능적 측면에서 보면 그 내부에 다중화기(MUX,402,412) 로직이 필요하며, 이를 제어하기 위한 신호도 필요하다.
상기의 도면을 기초로 본 발명의 동작을 설명하기 전에 먼저 본 발명의 기본 개념을 설명하면 다음과 같다. 본 발명은 교체 라이트백 사이클이 지니는 특성에 착안한 것으로서, 프로세서의 캐쉬라인 채움(fill)에 후속하여 발생하는 교체 라이트백 사이클에서 라이트백 데이터를 프로세서 보드 내에 있는 래치(300,400) 및 레지스터(320,410)에 저장하고 별도의 시스템 버스 억세스 요청없이 조속히 프로세서의 사이클을 종료시켜 프로세서(200)가 필요한 경우 새로이 시스템 버스 억세스를 위한 사이클을 구동할 수 있도록한다.
저장된 상기 어드레스와 데이터는 다음과 같이 사용될 수 있다. 다른 프로세서 보드가 그것을 요구할 때 스누핑(snooping)을 통해 이를 확인하고 교체라이트백 어드레스래치어드레스비교기(300,400)가 히트이면 스누우프 라이트백 사이클로 변형하여 시스템 버스 억세스 사이클을 구동하는데 사용될 수 있다. 그리고 자신의 프로세서(200)가 다시 이 데이터를 요구할 때는 별도의 시스템버스 억세스 요청없이 저장해둔 데이터를 즉시 공급함으로써 프로세서의 사이클을 조속히 종료시켜 프로세서의 성능을 향상시킨다. 적합한 시스템 버스 중재 프로토콜이 존재한다고 할 때 자신의 프로세스의 캐쉬 라인 채움을 위한 새로운 시스템버스 억세스 요구가 발생하면 시스템 버스의 중재를 거쳐 사용권을 획득하고 읽기 사이클인 캐쉬 라인 채움 보다 저장해둔 교체 라이트백 어드레스를 먼저 구동하고 뒤이어 캐쉬 라인 채움 어드레스를 구동하는 방식으로(이를 사이클 리오더링(reordering)이라 함) 하나의 시스템 버스 사용권으로 2개의 시스템 버스 사이클을 수행할 수도 있다. 이는 공유메모리 보드내에 어드레스/명령 큐(queue)와 쓰기(write) 데이터를 위한 별도의 버퍼 큐가 존재하고 펜디드(pended) 프로토콜을 채택하는 시스템 버스의 경우 특히 효과적인데 쓰기 사이클의 경우는 어드레스와 데이터가 함께 시스템 버스로 전달되지만 읽기 사이클의 경우는 어드레스가 처리기로부터 시스템 버스로 전달된 후 일정 시간이 지연이 있고 나서 공유메모리가 그 데이터가 준비되면 시스템버스로 데이터를 내보내게 되므로 하나의 버스 사용권으로 2개의 사이클을 리오더링(reordering)하여 처리하는 것이 가능하며 결국 단위시간에 2개의 사이클이 겹치게(overlap) 되어 처리되는 효과를 볼 수 있는 것이다.
본 발명의 기본 구성에 대한 블록도를 도시한 도 3의 동작을 설명하기로 한다. 프로세서(200)가 2차 캐쉬 읽기 미스에 의해 시스템 버스 읽기 사이클을 요구하고 버스사이클제어기(310)는 버스 사용권을 획득한 후 시스템 버스로부터 데이터를 전달받고 캐쉬 라인 채움을 종료한다. 이 캐쉬라인 채움에 의해 기존에 태그 상태가 M이었던 캐쉬 데이터 라인이 교체되고, 이는 프로세서(200)로 하여금 교체 라이트백 사이클을 요구하게 한다.
상기 버스사이클 제어기(310)는 상기 교체 라이트백 사이클 어드레스와 데이터를 상기 어드레스래치어드레스비교기(300)와 레지스터(320)에 각각 저장하고 즉시 프로세서(200)의 사이클을 종료시켜 프로세서(200)가 다음 일을 할 수 있도록 하며 교체 라이트백을 위한 별도의 시스템버스 사이클은 수행하지 않는다.
프로세서가 다시 새로운 캐쉬 라인 채움을 요구할 경우 상기 버스사이클 제어기(310)는 상기 저장해둔 교체 라이트백 사이클과 캐쉬 라인 채움 사이클을 리오더링(reordering)하여 시스템 버스 사이클을 수행한다.
한편 상기 버스사이클 제어기(310)는 다른 프로세서 보드의 시스템 버스 억세스 어드레스를 어드레스래치어드레스비교기(300)에서 감시(snooping)한 결과가 히트일 경우, 즉 상기 스누우프 비교기(304)에서 다른 프로세서 보드가 구동한 시스템 버스상의 어드레스와 상기 어드레스래치어드레스비교기(300) 내의 어드레스 저장수단인 어드레스 래치에 저장된 어드레스가 같을 경우, 상기 어드레스 래치에 저장해둔 교체 라이트백 어드레스와 상기 레지스터(320) 내의 데이터 저장수단인 레지스터에 저장된 데이터 등을 사용하여 스누우프 라이트백 사이클을 위한 시스템 버스 억세스 사이클을 수행한다.
그리고 상기 버스사이클 제어기(310)는 프로세서(200)로부터의 새로운 캐쉬 라인 채움 요구 어드레스가 저장해둔 교체 라이트백 어드레스와 일치할 경우, 즉 상기 비교기(302)에서 상기 어드레스 래치에 저장된 어드레스와 프로세서(200)로부터의 새로운 캐쉬라인채움 요구 어드레스를 비교하여 서로 같을 경우, 별도의 시스템버스 사이클을 수행할 필요없이 상기 레지스터(320)에 저장되어 있는 교체 라이트백 데이터를 상기 레지스터(320) 내의 데이터 출력수단인 삼상태 버퍼를 통해 프로세서(200)에게 공급하므로써 사이클을 신속히 종료시킬 수 있다.
한편 본 발명의 기본 구성에 대한 블록도를 확장한 도 4의 동작을 설명하면 다음과 같다. 먼저 프로세서(200)가 2차 캐쉬 읽기 미스에 의해 시스템 버스 읽기 사이클을 요구하고 버스사이클제어기(420)는 버스 사용권을 획득한 후 시스템 버스로부터 데이터를 전달받고 캐쉬 라인 채움을 종료한다. 이 캐쉬라인 채움에 의해 기존에 태그 상태가 M이었던 캐쉬 데이터 라인이 교체되고, 이는 프로세서(200)로 하여금 교체 라이트백 사이클을 요구하게 한다. 이 때 상기 버스사이클 제어기(420)는 상기 교체 라이트백 사이클 어드레스와 데이터를 상기 확장된 어드레스래치어드레스비교기(400)와 확장된 레지스터(410)에 각각 저장하고 즉시 프로세서(200)의 사이클을 종료시켜 프로세서(200)가 다음 일을 할 수 있도록 하며 교체 라이트백을 위한 별도의 시스템버스 사이클은 수행하지 않는다. 상기 확장된 어드레스래치어드레스비교기 (400) 및 상기 확장된 레지스터(410)의 크기가 허용하는 한도내에서 교체 라이트백을 위한 별도의 시스템 버스 억세스가 필요없이 순조롭게 또한 신속하게 프로세서 사이클이 수행된다.
한편 상기 확장된 어드레스래치어드레스비교기(400) 및 상기 확장된 레지스터(410)가 단일한 구조가 아닌 '다수'로 구성되어 있으므로, 상기 버스사이클 제어기(420)가 다른 프로세서 보드의 시스템 버스 억세스 어드레스를 확장된 어드레스래치어드레스비교기(400)에서 감시(snooping)한 결과가 히트일 경우가 많아지고 따라서 저장해둔 교체 라이트백 어드레스와 데이터 등을 사용하여 스누우프 라이트백 사이클을 위한 시스템 버스 억세스 사이클을 수행하는 빈도가 커진다.
또한 확장된 구조에서는 상기 버스사이클 제어기(420)가 프로세서(200)로부터의 새로운 캐쉬 라인 채움 요구 어드레스가 저장해둔 교체 라이트백 어드레스와 일치할 경우도 많아지고, 별도의 시스템 버스 사이클을 수행할 필요없이 저장되어 있는 교체 라이트백 데이터를 프로세서(200)에게 공급하므로써 사이클을 신속히 종료시킬 수 있다.
그리고 사이클 리오더링(reordering)은 확장된 어드레스래치 어드레스비교기(400) 및 상기 확장된 레지스터(410)가 기존의 교체 라이트백으로 다 채워져 있을 경우에 한해 발생하게 되므로 확장된 어드레스래치어드레스비교기(400) 및 상기 확장된 레지스터(410)의 크기기 클수록 사이클 리오더링의 발생 빈도는 줄어들 것이다.
상술한 바와 같이 도 3 및 도 4의 구성상의 차이로 인해 본 발명의 동작 원리는 동일하지만 그 세부 동작 및 효과는 상당한 차이를 갖는다. 예를 들어 도 3의 버스사이클 제어기(310) 및 도 4의 버스사이클 제어기(420)가 교체 라이트백 사이클을 새로운 읽기 사이클과 리오더링할 것을 결정하는 싯점이 서로 다를 수 있다. 도 3의 기본 구성에서는 교체 라이트백 사이클이 기존에 래치되어 있는 상황에서 다른 프로세서 보드에서 시스템 버스를 통해 상기 기존의 래치되어 어드레스를 억세스할 경우 언제나 리오더링을하여 교체 라이트백을 위한 시스템 버스 억세스 사이클을 수행하므로써 새로운 읽기에 의해 발생할지도 모르는 새로운 교체 라이트백을 위해 상기 어드레스래치어드레스비교기(400) 및 상기 레지스터(410)의 자리를 비워둬야만 하는데 이는 하나의 래치 및 하나의 파이프라인 레지스터로만 구성되어 있는 단일 구조이기 때문에 어쩔 수 없는 현상이다.
한편 도 4의 확장된 구조에서는 확장된 어드레스래치어드레스 비교기(400) 및 상기 확장된 레지스터(410)가 다 찼을 때에만 새로운 읽기 사이클 요구가 발생했을 경우에 한해 상기 버스사이클 제어기(420)는 그것을 리오더링하여 시스템 버스 사이클을 수행한다. 이런한 리오더링이 필요한 상황이 도래하기 전까지는 확장된 어드레스래치어드레스비교기(400)에서 감시(snooping)만 잘하고 그에 따른 동작만 하면 된다. 여기서 상기 '다수'를 실제로 '몇 개'로 할 것인지는 전체 시스템의 설계사양, 즉 '가격:성능비', 상기 확장된 어드레스래치 어드레스비교기(400) 등의 구현에 있어서의 복잡도 등을 고려하여 결정한다. 교체 라이트백 데이터는 캐쉬 데이터 라인의 대체에 의해 어쩔 수 없이 대체되는 데이터로서 가까운 시간내에 프로세서가 다시 요구할 가능성이 아주 높은 데이터 임을 고려한다면 적절한 규모의 확장을 갖는 구성은 시스템에 있어서 상대적으로 큰 3차 캐쉬 메모리를 두는 것 이상의 효과를 낼 수 있다.
본 발명에 의하면, 당장 시스템 버스 사이클이 필요하지 않은 교체 라이트백 사이클의 어드레스/명령어/데이터 (address/command/data) 정보를 저장해 두고 필요한 경우, 즉 자신의 프로세서가 다시 그 데이터를 요구할 때나 다른 프로세서보드가 시스템 버스 억세스를 통해 그 데이터를 필요로 하고 있음이 감시(snooping)를 통해 감지되었을 경우, 사용하거나 그와 같은 정보를 저장해두는 장소가 완전히 채워져 있을 때(full일 때) 프로세서로부터 새로이 요구되는 캐쉬 라인 채움을 위한 사이클과 리오더링하여 시스템버스 억세스 사이클을 수행하도록 함으로써, 프로세서가 사이클에 소요되는 시간을 단축시킴과 동시에 시스템버스의 사용빈도를 줄여주고 또한 꼭 필요한 경우에만 시스템버스를 사용하도록 버스 사용을 효율화 시키는 효과가 있어 전체 시스템의 성능을 현저히 향상시킬 수 있다.

Claims (5)

  1. 2차 캐쉬가 프로세서 외부에 장착된 프로세서 보드가 적어도 2개 있으며, 상기 프로세서 보드는 버스를 기반으로하여 연결되어 있는 멀티프로세서 시스템에서의 교체 라이트백 사이클 처리장치에 있어서,
    프로세서의 2차캐쉬 읽기미스에 의해 발생된 교체 라이트백 사이클의 어드레스를 저장하는 어드레스 저장수단;
    상기 어드레스 저장수단에 저장된 어드레스를 출력하는 출력수단;
    프로세서의 2차캐쉬 읽기미스에 의해 발생된 교체 라이트백 사이클의 데이터를 저장하는 데이터 저장수단;
    상기 데이터 저장수단의 교체 라이트백 데이터를 출력하는 데이터 출력수단;
    상기 어드레스 저장수단에 저장된 어드레스와, 프로세서가 새로운 캐쉬 라인 채움 사이클에서 구동한 어드레스를 비교하는 제1비교기;
    상기 어드레스 저장수단에 저장된 어드레스와 시스템 버스상의 다른 프로세서에 의해 구동된 어드레스(스누우프 어드레스)를 비교하는 제2비교기; 및
    상기 제1비교기 및 제2비교기의 비교결과에 따라, 시스템버스의 중재를 거쳐 스누우프 라이트백 사이클 또는 리플레이스 라이트백 사이클을 진행하기 위한 일련의 과정을 제어하는 버스사이클 제어기를 포함함을 특징으로 하는 멀티프로세서 시스템의 교체 라이트백 사이클 처리장치.
  2. 제1항에 있어서, 상기 버스사이클 제어기는
    상기 제1비교기의 비교결과 비교한 어드레스가 서로 같으면 저장되어 있는 교체 라이트백 데이터를 프로세서에게 공급하고, 비교한 어드레스가 서로 다르면 상기 새로운 교체 라이트백 사이클의 어드레스를 저장할 기억장소가 있으면 기억장소에 상기 어드레스와 데이터를 저장하고, 없으면 저장된 교체 라이트백 어드레스와 데이터를 공유메모리로 교체 라이트백 사이클을 수행하도록 하는 일련의 제어를 하고,
    상기 제2비교기의 비교결과 어드레스가 서로 같으면, 상기 저장된 리플레이스 라이트백 사이클을 스누우프 라이트백 사이클로 진행하도록 제어함을 특징으로 하는 멀티프로세서 시스템의 교체 사이클 처리장치.
  3. 제1항에 있어서, 상기 어드레스 출력수단 및 상기 데이터 출력수단은
    삼상태 버퍼임을 특징으로 하는 멀티프로세서 시스템의 교체 라이트백 사이클 처리장치.
  4. 제1항에 있어서, 상기 어드레스 저장수단 및 상기 데이터 저장 수단은
    복수의 레지스터로 이루어지고,
    상기 어드레스 출력수단 및 상기 데이터 출력수단은
    상기 복수의 래치로부터 출력되는 어드레스 또는 데이터를 입력으로하여 하나의 어드레스 또는 데이터를 출력하는 다중화기; 및
    상기 다중화기에서 출력되는 어드레스 또는 데이터를 입력으로 받아 들여 상기 버스사이클 제어기로부터의 소정의 제어신호에 의해 출력하는 삼상태 버퍼임을 특징으로 하는 멀티프로세서 시스템의 교체 라이트백 사이클 처리장치.
  5. 2차 캐쉬가 프로세서 외부에 장착된 프로세서 보드가 적어도 2개 있으며, 상기 프로세서 보드는 버스를 기반으로하여 연결되어 있는 멀티프로세서 시스템에서의 교체 라이트백 사이클 처리방법에 있어서,
    프로세서의 2차캐쉬 읽기 미스에 의해 발생된 교체 라이트백 사이클의 어드레스와 데이터를 자신의 프로세서 보드 내에 저장하는 단계; 및
    상기 저장된 교체 라이트백 사이클의 어드레스와 다른 프로세서 보드에 의해 구동된 시스템 버스상에 어드레스를 비교하여, 어드레스가 서로 같으면 상기 저장된 교체 라이트백 사이클의 어드레스와 데이터를 스누우프 라이트백 사이클로 공유메모리에 저장하고,
    만일 프로세서가 다시 새로운 캐쉬라인 채움을 요구할 경우, 상기 새로운 캐쉬라인 채움 어드레스 및 데이터를 저장할 기억장소가 있는지 검사하여, 기억장소가 있으면 저장하고 기억장소가 없으면 상기 저장해둔 교체 라이트백 사이클을 리오드링하여 시스템버스 사이클을 진행하여 상기 저장해둔 교체 라이크백 어드레스와 데이터를 공유메모리로 라이트백하는 단계를 포함함을 특징으로 하는 멀티프로세서 시스템에서의 교체 라이트백 사이클 처리방법.
KR1019960031550A 1996-07-30 1996-07-30 멀티프로세서시스템의 교체 라이트백 사이클 처리장치 및 방법 KR100188438B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960031550A KR100188438B1 (ko) 1996-07-30 1996-07-30 멀티프로세서시스템의 교체 라이트백 사이클 처리장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960031550A KR100188438B1 (ko) 1996-07-30 1996-07-30 멀티프로세서시스템의 교체 라이트백 사이클 처리장치 및 방법

Publications (2)

Publication Number Publication Date
KR980013130A KR980013130A (ko) 1998-04-30
KR100188438B1 true KR100188438B1 (ko) 1999-06-01

Family

ID=19468178

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960031550A KR100188438B1 (ko) 1996-07-30 1996-07-30 멀티프로세서시스템의 교체 라이트백 사이클 처리장치 및 방법

Country Status (1)

Country Link
KR (1) KR100188438B1 (ko)

Also Published As

Publication number Publication date
KR980013130A (ko) 1998-04-30

Similar Documents

Publication Publication Date Title
US5355467A (en) Second level cache controller unit and system
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
US6295582B1 (en) System and method for managing data in an asynchronous I/O cache memory to maintain a predetermined amount of storage space that is readily available
US5247648A (en) Maintaining data coherency between a central cache, an I/O cache and a memory
US5155824A (en) System for transferring selected data words between main memory and cache with multiple data words and multiple dirty bits for each address
US6408345B1 (en) Superscalar memory transfer controller in multilevel memory organization
US6014728A (en) Organization of an integrated cache unit for flexible usage in supporting multiprocessor operations
US6519685B1 (en) Cache states for multiprocessor cache coherency protocols
US7032074B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US20020053004A1 (en) Asynchronous cache coherence architecture in a shared memory multiprocessor with point-to-point links
JPH07168763A (ja) ライトスルーキャシュ設計のシステムでのライトバックキャシュのコヒーレンシ
US11816032B2 (en) Cache size change
US5829027A (en) Removable processor board having first, second and third level cache system for use in a multiprocessor computer system
US6535958B1 (en) Multilevel cache system coherence with memory selectively configured as cache or direct access memory and direct memory access
US5551000A (en) I/O cache with dual tag arrays
US5724550A (en) Using an address pin as a snoop invalidate signal during snoop cycles
US5987544A (en) System interface protocol with optional module cache
KR100322223B1 (ko) 대기행렬및스누프테이블을갖는메모리제어기
EP0681241A1 (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
US6484237B1 (en) Unified multilevel memory system architecture which supports both cache and addressable SRAM
KR100188438B1 (ko) 멀티프로세서시스템의 교체 라이트백 사이클 처리장치 및 방법
US7035981B1 (en) Asynchronous input/output cache having reduced latency
KR950012735B1 (ko) 이단(Two Level) 캐쉬 메모리의 동질성 보장장치 및 방법
KR0145454B1 (ko) 분산된 공유 메모리를 갖는 다중 프로세서
Guher Physical Design of Snoop-Based Cache Coherence on Multiprocessors

Legal Events

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

Payment date: 20051227

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee