KR940005769B1 - 캐쉬 메모리를 포함하는 멀티프로세서 시스템 및 그들사이의 데이타의 코히어런스를 유지하기 위한 캐쉬 메모리를 제어하는 방법 - Google Patents
캐쉬 메모리를 포함하는 멀티프로세서 시스템 및 그들사이의 데이타의 코히어런스를 유지하기 위한 캐쉬 메모리를 제어하는 방법 Download PDFInfo
- Publication number
- KR940005769B1 KR940005769B1 KR1019910013593A KR910013593A KR940005769B1 KR 940005769 B1 KR940005769 B1 KR 940005769B1 KR 1019910013593 A KR1019910013593 A KR 1019910013593A KR 910013593 A KR910013593 A KR 910013593A KR 940005769 B1 KR940005769 B1 KR 940005769B1
- Authority
- KR
- South Korea
- Prior art keywords
- cache memory
- memory
- address
- write
- cache
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
내용 없음.
Description
제1a도 내지 제1e도는 종래 캐쉬 메모리 제어의 방법을 시간 순서대로 나타낸 도.
제2a도 내지 제2d도는 종래 캐쉬 메모리 제어의 다른 방법을 시간 순서대로 나타낸 도.
제3a도 및 제3b도는 제1a도 내지 제1e도 및 제2a도 내지 제2d도에 각각 보인 카피-백(copy-back) 캐쉬 메모리(A)의 상태 천이도.
제4a도 및 제4b도는 본 발명에 의한 캐쉬 메모리 제어의 원리를 설명하는 도.
제 5 도는 본 발명에 의한 캐쉬 메모리 제어가 적용된 멀티 프로세서 시스템에 인접하게 접속된 구성을 나타낸 블록도.
제 6 도는 제 5 도에 보인 카피-백 캐쉬 메모리 제어(1A)의 내부 구성을 도시한 회로도.
제7a도 내지 제7e도는 제 5 도의 시스템의 캐쉬 메모리 제어의 방법을 시간 순서대로 나타낸 도.
제8a도 내지 제8e도는 제 5 도의 시스템의 캐쉬 메모리 제어의 다른 방법을 시간 순서대로 나타낸 도.
제 9 도는 제 5 도에 보인 카피-백 캐쉬 메모리(1A)의 상태 천이도.
제10도는 종래의 캐쉬 메모리 제어의 문제를 설명하기 위한 도.
제11도는 제10도에 보인 캐쉬 메모리의 상태 천이도.
제12a도 및 제12b도는 본 발명의 한 양상에 따른 버퍼 무효화 제어(buffer invalidation control)의 원리를 설명하기 위한 도.
제13도는 본 발명에 따른 버퍼 무효화 제어가 적용되는 멀티 프로세서 시스템에 가까이 접속된 구성을 도시한 도.
제14a도 및 제14b도는 제13도에 도시한 캐쉬 메모리(1A, 1B')의 내부 구성을 도시한 회로도.
제15a도 및 제15b도는 제13도의 시스템의 캐쉬 메모리 제어방법을 시간 순서대로 나타낸 도.
제16도는 제13도에 보인 캐쉬 메모리(1A, 1B')의 상태 천이도.
제17a도 내지 제17c도는 종래 캐쉬 메모리 제어의 문제를 설명하기 위한 도.
제18도는 제17a도 내지 제17c도에 보인 캐쉬 메모리의 동작을 나타내는 타이밍도.
제19도는 본 발명의 다른 양상에 따른 버퍼 무효화 제어의 원리를 설명하기 위한 도.
제20도는 제13도에 보인 캐쉬 메모리(1A, 1B')의 다른 내부 구성을 나타내는 회로도.
제21a도 내지 제21c도는 제13도의 시스템에 캐쉬 메모리 제어의 또 다른 방법을 시간 순서대로 도시한 도.
제22도는 제13도에 보인 캐쉬 메모리(1A, 1B')의 다른 상태 천이도.
본 발명은 다수의 캐쉬 메모리 및 적어도 한 공통 메모리가 시스템 버스를 경유하여 연결되어 있는 멀티프로세서 시스템에 관한 것으로, 특히 라이트 요구(write request)가 캐쉬 메모리 사이에 있는 데이타의 코히어런스를 유지하기 위해 각각의 캐쉬 메모리에 대응하는 영역에 대해 동시에 발생될 때 다른 캐쉬 메모리에서 해당하는 영역을 무효화하기 위한 버퍼 무효화 처리를 제어하는 기술에 관한 것이다.
상기 멀티 프로세서 시스템에서, 그들 사이의 데이타의 코히어런스를 유지하기 위하여 캐쉬 메모리를 제어하기 위한 다양한 방법이 개발되어 왔다.
예를들어, 카피-백 캐쉬 메모리와 라이트-쓰루(write-through) 캐쉬 메모리를 혼합하여 포함하는 시스템의 공지의 캐쉬 메모리 제어에서, 카피-백 캐쉬 메모리에 다시 쓰여진 데이타가 오직 라이트-쓰루 캐쉬 메모리에만 기록된후에 관련된 데이타가 카피-백 캐쉬 메모리로부터 사라진다.
이러한 단점을 극복하기 위해 어드레스 액세스에 의해 대상영역에 대응하는 엔트리(entry)가 라이트-쓰루 캐쉬 메모리에 전송되는 동안 공통 메모리로 또한 관련된 데이타를 쓰는 방법을 적용할 수 있다.
그러나 이 방법은 최대로 카피-백 캐쉬 메모리의 이점(버스 액세스의 주파수를 감소시키는)을 이용하는 것이 불가능하게 된다는 단점을 갖고 있다. 이것은 전체 시스템의 동작을 저하시키므로 따라서 바람직하지 못하다.
또다른 공지의 캐쉬 메모리 제어에서, 카피-백 캐쉬 메모리안으로 새로이 쓰여진 데이타는 라이트-쓰루 캐쉬 메모리안에 나타나지 않는다. 따라서 라이트-쓰루 캐쉬 메모리에 해당하는 CPU가 동작 대상으로서 이전의 또는 오래된 데이타를 받아들이는 단점이 생겨서 전체 시스템의 동작이 저하된다.
또한, 각 라이트 요구가 다수의 캐쉬 메모리에 동시에 각각 발생되는 캐쉬 메모리 제어에서 또다른 문제점이 있다. 예를들어 라이트 요구의 타이밍이 서로 완전히 일치하는 곳에, 버퍼 무효화 요구 명령이 각각의 캐쉬 메모리로부터 시스템 버스에 보내어져서 각각의 쓰기 데이타가 없어져 버린다. 결과적으로 각 메모리 사이의 데이타의 코히어런스를 유지하는 것이 불가능하다.
종래 기술에서의 문제점들이 본 발명의 바람직한 실시예들과 비교하여 이후에 상세히 설명한다.
본 발명의 목적은 다른 캐쉬 메모리에 엔트리를 전송한후에 셀프 캐쉬 메모리에서 데이타가 대응하는 엔트리안에 다시 쓰여질 때라도 다른 캐쉬 메모리상에 새로운 데이타가 나타나도록 가능하게 하는 캐쉬 메모리 제어 시스템을 제공해서 전체 시스템의 동작을 개선시키는 것이다.
본 발명의 다른 목적은 최대한도로 카피-백 캐쉬 메모리의 특성(고속동작)을 이용하고 또 그러한 캐쉬 메모리에 다시 쓰여진 데이타의 손실없이도 다른 캐쉬 메모리에서 해당하는 영역을 무효화시키는 것을 가능하게 하는 버퍼 무효화 제어 시스템을 제공해서 전체 시스템의 특성을 개선시키는 것이다.
본 발명의 한 양상에 따라, 다수의 캐쉬 메모리중 적어도 하나는 카피-백 캐쉬 메모리인 다수의 캐쉬 메모리 및 최소한 하나의 공통 메모리가 시스템 버스를 경유하여 연결된 멀티 프로세서 시스템을 제공한다. 카피-백 캐쉬 메모리는 데이타영역, 어드레스영역, 셀프 캐쉬 메모리에 액세스 어드레스로 표시된 영역이 존재하는지의 여부를 지시하는 유효(validation) 지시 플래그, 데이타를 다시 쓸 것인지에 대한 여부를 지시하는 수정된 상태 지시 플레그 및 동일한 데이타가 다른 캐쉬 메모리와 공유되는 것의 여부를 지시하는 공유 상태 지시 플래그를 포함하는 메모리 소자 ; 메모리 소자에 연결되어 있고, 셀프 캐쉬 메모리에 의해 소유되며 이미 다시 쓰여지고 공통 메모리상에 아직 나타나지 않은 영역에 다른 캐쉬 메모리로부터 액세스를 검출할 때 엑세스에 공통 메모리의 응답을 방해하기 위한 제 1 소자 ; 메모리 소자 및 제 1 소자에 연결되어 있으며, 다른 캐쉬 메모리로부터 액세스 어드레스에 의해 지시된 영역에 해당하는 엔트리를 다른 캐쉬 메모리에 전송하고, 공유 상태 지시 플래그를 ON이 되게 하는 제 2 소자 ; 메모리 소자 및 제 2 소자에 연결되어 있고, 라이트 어드레스를 시스템 버스에 보내어 그라이트 어드레스를 근거로 다른 캐쉬 메모리에 해당하는 엔트리를 무효화시키기 위해서 공유 및 수정 엔트리안에 쓰기가 행해지는 공유 상태 지시 플래그를 OFF하기 위한 제 3 소자를 포함한다.
본 발명의 다른 양상에 따라,다수의 카피-백 캐쉬 메모리 및 적어도 한 공통 메모리가 시스템 버스를 경유하여 연결되는 멀티 프로세서 시스템을 제공한다. 각 캐쉬 메모리는 데이타영역, 어드레스영역, 액세스 어드레스에 의해 지시된 영역이 셀프 캐쉬 메모리에 존재하는지 안하는지를 지시하는 유효 지시 플래그 및 데이타를 다시 쓸 것인가의 여부를 지시하는 수정된 상태 지시 플래그 ; 대응하는 CPU로부터 라이트 요구를 근거로 데이타 및 어드레스를 저장하는 레지스터 소자 ; 메모리 소자 및 레지스터 소자에 연결되어 있고, 수정된 상태 지시 플래그를 ON이 되게 하기 위해 레지스터 소자 및 대상 엔트리에서 해당하는 CPU로 부터 라이트 요구에 의해 라이트 데이타를 저장하고, 대상영역이 셀프 캐쉬 메모리에 나타나고 수정된 상태 지시 플래그가 대응하는 CPU로부터 라이트 요구가 생겼을 때 OFF인 경우 라이트 어드레스의 일부를 포함하는 버퍼 무효 요구 명령을 시스템 버스에 보내기 위한 소자 ; 메모리 소자에 연결되어 있고, 시스템 버스상의 커맨드(command)를 감시하고, 커맨드에 포함된 어드레스와 라이트 어드레스를 비교하기 위한 소자 ; 및 메모리 소자, 레지스터 소자 및 비교소자에 연결되어 있고, 버퍼 무효 요구 명령의 송부 대기 상태(send-out wait status)를 취소하고, 시스템 버스상의 커맨드가 다른 캐쉬 메모리로부터 버퍼 무효 요구 명령을 지시하고 그 안에 포함된 어드레스가 버퍼 무효 요구 명령의 송부 대기 상태에서 동일 영역을 지시할 때 라이트-쓰루방법으로 공통 메모리안의 레지스터 소자의 내용을 저장하기 위한 소자를 포함한다.
본 발명의 또다른 양상에 따라, 다수의 카피-백 캐쉬 메모리 및 적어도 한 공통 메모리가 시스템 버스를 경유하여 연결되는 멀티 프로세서 시스템을 제공한다. 각 캐쉬 메모리는 데이타영역, 어드레스영역, 액세스 어드레스에 의해 지시된 영역이 셀프 캐쉬 메모리에 존재하는지의 여부를 지시하는 유효 지시 플래그 및 데이타를 다시 쓸 것인지에 대한 여부를 지시하는 수정된 상태 지시 플래그를 포함하는 메모리 소자 ; 메모리 소자에 연결되어 있고, 대상영역이 셀프 캐쉬 메모리에 나타나고 수정된 상태 지시 플래그가 대응하는 CPU로부터 라이트 요구가 생겼을 경우에 OFF가 될 때 대응하는 CPU로부터 라이트 어드레스의 일부를 포함하는 버퍼 무효 요구 명령을 시스템에 송부하기 위한 소자 ; 메모리 소자 및 송부소자에 연결되어 있고, 시스템 버스와 커맨드가 다른 캐쉬 메모리로부터의 버퍼 무효 요구 명령인 곳에 커맨드를 감시하며, 셀프 캐쉬 메모리의 커맨트 아웃에 포함된 어드레스영역을 취소하기 위한 소자 ; 셀프 캐쉬 메모리에 의해 송부된 버퍼 무효연구 명령의 어드레스를 보유하기 위한 레지스터 소자 ; 및 메모리 소자 및 레지스터 소자에 연결되어 있고, 버퍼 무효요구 명령이 셀프 캐쉬 메모리로부터 보내진후에 소정의 주기내에 검출되는 동일 내용과 다른 캐쉬 메모리로부터의 버퍼 무효요구 명령을 무시하기 위한 제어를 하기 위해 레지스터 소자의 내용과 다른 캐쉬 메로리로부터의 버퍼 무효요구 명령에 포함된 어드레스를 비교하기 위한 소자를 포함한다.
본 발명의 다른 목적 및 양상들은 수반된 도면과 참조하여 바람직한 실시예를 통해 상세히 설명한다.
[제 1 실시예]
본 발명의 바람직한 제 1 실시예의 이해를 위해 종래 기술의 문제점이 제1a도 내지 제3b도와 참조하여 설명된다.
제1a도 내지 제1e도는 시간 순서대로 종래 캐쉬 메모리 제어의 방법을 설명한다. 도면에서, 캐쉬 메모리 "A"는 카피-백 캐쉬 메모리이고 캐쉬 메모리 "B"는 라이트-쓰루 캐쉬 메모리라고 가정한다.
참조기호 "V"는 액세스 어드레스에 의해 지시된 영역이 셀프 캐쉬 메모리(이 경우에는 캐쉬 메모리 "A")내부에 존재(V=1)하는지 존재하지 않는지(V=0)를 지시하는 유효지시 플래그를 나타내고, 참조기호 "M"은 데이타가 다시 쓰여지는지(M=1) 아닌지(M=0)를 지시하는 수정된 상태 지시 플래그를 나타낸다.
(제1a도 참조)
① 캐쉬 메모리 "B"는 데이타를 독출하기 위한 공통 메모리 "C"를 요구한다.
(제1b도 참조)
② 캐쉬 메모리 "A"는 캐쉬 메모리 "B"에 의해 액세스의 대상영역을 보유하고, 캐쉬 메모리 "B"로 공통 메모리 "C"응답을 방해하여 대상영역이 이미 다시 쓰여졌으나 공통 메모리 "C"에 아직 나타나지 않은 것을 검출한다[방해].
(제1c도 참조)
③ 캐쉬 메모리 "A"는 캐쉬 메모리 "B"에 액세스의 대상영역에 대응하는 라이트를 전송한다[캐쉬에서 캐쉬로 전송].
(제1d도 참조)
④ 캐쉬 메모리 "A"는 엔트리를 클리어하여 V=0, M=0인 상태로 설정한다.
(제1e도 참조)
⑤ 캐쉬 메모리 "B"에 관련된 엔트리가 교환에 의해 무효화된다[라이트-쓰루].
제2a도 내지 제2d도는 시간 순서대로 종래 캐쉬 메모리 제어의 다른 방법을 나타낸다. 사용된 참조기호는 제1a도 내지 제1e도에 사용한 것과 같다.
동작 ①, ② 및 ③(제2a도 내지 제2c도 참조)은 제1a도 내지 제1c도와 같으므로 그에 대한 설명은 생략한다.
(제2d도 참조)
④ 캐쉬 메모리 "A"(캐쉬 메모리 "B"에 관련된 엔트리를 전송한후에)는 대응하는 CPU(도시하지 않음)로부터의 라이트 명령을 근거로 관련된 엔트리 안으로 새로운 라이트를 발생한다.
게다가, 제3(a)도 및 제3(b)도는 각각 제 1 및 제 2 도에서 캐쉬 메모리 "A"의 상태 천이 상황을 보여준다.
제3a도 및 제3b도는 제1a도 내지 제1e도 및 제2a도 내지 제2d도에 각각 도시한 캐쉬 메모리 "A"의 상태 천이의 방법을 나타낸다.
도면에서, 참조기호 "1"는 무효상태(V=0) ; 참조기호 "U"는 유효 및 수정하지 않은 상태(V=1 및 M=0) ; 참조기호 "M"은 유효 및 수정된 상태(V=1 및 M=1) ; 참조기호 "(R)"은 리이드 동작 ; 참조기호 "(W)"는 라이트 동작 ; 그리고 참조기호 "AH"는 어드레스 일치 상태를 나타낸다. 어드레스 일치 상태에서 [방해] 및 [캐쉬에서 캐쉬로 전송]이 수행된다.
상기 제어에서 캐쉬 메모리 "A"에 다시 쓰여진 데이타는 오직 라이트-쓰루 캐쉬 메모리 "B"에만 남아 있다.(제1c도 참조) 그후에 관련 데이타가 없어진다.(제1d도 및 제1e도 참조)
이러한 문제를 없애기 위해서, 제1c도의 동작동안 공통 메모리 "C"안에 관련 데이타를 써넣기 위한 방법을 적용할 수 있다. 그러나, 이 방법에서는 카피-백 캐쉬 메모리에 의한 장점(버스 액세스의 주파수 감소)이 시스템 버스에 연결된 모든 캐쉬 메모리가 카피-백 캐쉬 메모리일 경우에는 최대로 발휘될 수 없다. 결과적으로, 전체 시스템의 특징이 저하되는 문제점이 있다.
반면에 제2a도 내지 제2d도에 보인 제어 방법에서, 제2d도의 처리에 의해 캐쉬 메모리 "A"안으로 새로이 쓰여진 데이타가 라이트-쓰루 캐쉬 메모리 "B"에는 나타나지 않는다. 결과적으로 캐쉬 메모리 "B"에 해당하는 CPU가 동작대상으로 이전의 또는 오래된 데이타를 받아들이는 문제가 생긴다. 이것이 시스템의 특성을 저하시키므로 바람직하지 않다.
제4a도 및 제4b도는 본 발명에 의한 캐쉬 메모리 제어의 원리를 나타내었다.
제4a도 및 제4b도에 보인 바와같이, 본 캐쉬 메모리 제어를 다수의 캐쉬 메모리 M1 내지 Mn가 적어도 한 공통 메모리 CM이 시스템 버스를 경유하여 연결되는 멀티 프로세서 시스템에 적용한다. 다수의 캐쉬 메모리중의 적어도 하나(M1)가 카피-백 캐쉬 메모리이다. 카피-백 캐쉬 메모리 M1은 데이타영역, D, 어드레스영역 A, 액세스 어드레스에 의해 지시되는 영역이 셀프 캐쉬 메모리에 존재하는지의 여부를 지시하는 유효 지시 플래그 V, 데이타가 다시 쓰여지는지의 여부를 지시하는 수정된 상태 지시 플래그 M 및 동일 데이타가 다른 캐쉬 메모리와 함께 공유되는지의 여부를 지시하는 공유 상태 지시 플래그 S를 포함하는 메모리 소자 ; 메모리 소자에 연결되어 있고, 다른 캐쉬 메모리로부터 셀프 캐쉬 메모리에 의해 소유되고 이미 쓰여졌으나 아직 공통 메모리 상에 나타나지 않는 영역으로 액세스를 검출할 때, 액세스에 공통 메모리의 응답을 방해하기 위한 제 1 소자 P1 ; 메모리 소자 및 제 1 소자에 연결되어 있고, 또다른 캐쉬 메모리로부터의 액세스 어드레스에 의해 지시되는 영역에 대응하는 엔트리를 다른 캐쉬 메모리에 전송하고, 공유 상태 지시 플래그를 ON이 되게 하는 제 2 소자 P2 ; 및 메모리 소자 및 제 2 소자에 연결되어 있고, 라이트 어드레스를 시스템 버스에 보내고, 라이트 어드레스를 근거로 다른 캐쉬 메모리에 해당하는 엔트리를 무효화하기 위해서 공유 및 수정된 엔트리안에 라이트 동작이 수행되는 공유 샹태 지시 플래그를 OFF되게 하는 제 3 소자 P3을 포함한다.
다른 캐쉬 메모리로부터의 액세스가 셀프 메모리(캐쉬 메모리 M1)를 소유하고 이미 다시 쓰여졌으나 아직 공통 메모리 CM에 나타나지 않는 영역에 있다. 카피-백 캐쉬 메모리 M1은 액세스에 공통 메모리의 응답을 방해해서 다른 캐쉬 메모리의 연관된 엔트리를 전송한다. 결과적으로, 캐쉬 메모리 M1및 다른 캐쉬 메모리는 동일 데이타를 공유하므로 공유 상태 지시 플래그 "S"가 ON이 된다.
이 상태에서, 관련된 엔트리 안으로 데이타를 쓰는 곳에 캐쉬 메모리 M1이 시스템 버스로 라이트 어드레스를 보낸다. 따라서 다른 캐쉬 메모리가 그전에 즉시 전송되었던 관련 엔트리 안으로 새로운 데이타가 쓰여지는 것을 검출할 수 있고, 관련 엔트리를 클리어(무효화)할 수 있다. 반면에, 관련된 엔트리에서 갱신된 데이타(라이트후의 데이타)가 라이트하기전에 전송되었던 데이타와 일치하지 않기 때문에, 캐쉬 메모리 M1은 공유 상태 지시 플래그 "S"를 OFF한다.
따라서, 관련된 엔트리의 전송후에 다른 캐쉬 메모리로부터의 액세스 요구에 응답하여 관련된 엔트리안에 데이타를 새로 쓸지라도, 다른 캐쉬 메모리가 관련된 엔트리를 무효화할 수 있다. 그러므로 오래된 데이타가 동작의 대상으로서 채택되는 단점을 없앨 수 있다. 이 경우에, 필요할 때 액세스를 실행하여 다른 캐쉬 메모리상에서 캐쉬 메모리 M1에 있는 갱신된 데이타를 나타나도록 하는 것이 가능하다. 이것은 전체 시스템의 동작을 개선시킬 수 있다.
제 5 도는 본 발명에 따른 캐쉬 메모리가 적용된 멀티 프로세서 시스템의 구성이다.
이 시스템에서, 카피-백 캐쉬 메모리 1A와 라이트-쓰루 캐쉬 메모리 1B를 혼합하여 포함하는 다수의 캐쉬 메모리(이 실시예에서는 오직 한 카피-백 캐쉬 메모리 및 한 라이트-쓰루 캐쉬 메모리만을 도시하였음)가 시스템 버스 4 를 경유하여 적어도 한 공통 메모리 3(하나만 도시하였음)에 연결된다. 또한 대응하는 캐쉬 메모리 및 데이타의 리이드/라이트에 어드레스 정보의 공급을 제어하기 위한 중앙처리장치(CPU) 2A 및 2B가 각각 캐쉬 메모리 1A 및 1B에 연결되어 있다.
제 6 도는 카피-백 캐쉬 메모리 1A의 내부 구성을 도시하였다.
도면에서, 참조번호 31은 액세스 데이타의 실 어드레스(physical address) 및 세개의 상태 플래그, 즉 셀프 캐수 메모리에 액세스 어드레스에 의해 표시되는 영역의 존재 여부를 지시하는 유효 지시 플래그(V), 데이타의 다시 쓰기의 여부를 지시하는 수정된 상태 지시 플래그(M), 및 다른 캐쉬 메모리와 동일 데이타를 공유할 것인지의 여부를 지시하는 공유상태 지시 플래그(S)를 기억시키기 위해 어드레스 영역을 갖는 태그(tag) 영역(태그 메모리)이다. 각각의 조언이 확인되었을 때 각각의 플래그 "V", "M" 및 "S"는 "ON" 또는 "1"을 지시하고, 조건이 거부되었을 때는 "OFF" 또는 "0"을 지시한다.
참조번호 32는 대응하는 CPU로부터 어드레스 ADD1을 디코우드하는 디코우더(DEC) ; 참조번호 32는 태그영역 31에 나타나는 어드레스와 CPU로 부터의 어드레스 ADD1 사이의 일치 또는 불일치를 검출하는 비교장치 ; 참조번호 34는 비교장치의 유효지시 플래그 "V" 및 출력에 응답하는 AND 게이트 ; 참조번호 35는 시스템 버스 4에서의 어드레스 ADD2를 디코우드하는 디코우더(DEC) ; 참조번호 36은 태그영역 31에 나타났던 어드레스와 시스템 버스 4 상의 어드레스 ADD2 사이의 일치 또는 불일치를 검출하는 비교장치 ; 그리고 참조번호 37은 비교장치 36의 유효 지시 플래그 V 및 출력에 응답하는 AND 게이트이다.
태그 영역 31은 어드레스가 CPU 액세스 어드레스 ADD1)외부 액세스 어드레스 ADD2)과 일치할 때, 비교장치 33(36)은 그의 출력을 "1"이 되게 해서 대응하는 AND 게이트 34(37)을 "유효"하게 한다.
참조번호 38은 AND 게이트 37의 출력과 AND 게이트 37의 수정된 상태 지시 플래그 "M"에 응답하는외부 액세스 슈퍼 바이저를 지시하며, 시스템 버스 4에 방해 신호 "INT"(공통 메모리 3으로의 응답 방해 신호)를 간단히 보내는 기능뿐만 아니라 공유 상태 지시 플래그 "S"를 ON이 되도록 캐쉬 메모리들 사이의 데이타 전송을 하도록 하는 기능을 갖는다. 반면에, 참조번호 39는 AND 게이트 34의 출력 및 CPU로부터의 리이드/라이트 제어신호 R/W뿐만 아니라 보통의 처리 즉, 캐쉬의 히트/미스(hit/miss) 처리 및 플래그 "V" 및 "M"의 비트 재생 처리를 수행하기 위해 수정된 상태 지시 플래그 "M" 및 공유 상태 지시 플래그 "S"에 응답하는 기능뿐만 아니라 시스템 버스 4 에 라이트 어드레스 "WADD"를 보내기 위한 기능과 공유상태 지시 플래그 "S"를 OFF하는 기능을 갖는 CPU 액세스 제어장치이다.
다음은, 캐쉬 메모리 제어방법을 7a 내지 7e도를 참조하여 설명한다.
(제7a도 참조)
① 캐쉬 메모리 1B는 데이타를 독출하기 위해 공통 메모리 3을 요구한다.
(제7b도 참조)
② 캐쉬 메모리 1A는 캐쉬 메모리 1B에 의해 액세스의 대상영역을 유지하고, 관련된 영역이 이미 다시 쓰여졌으나 아직 공통 메모리 3상에 나타나지 않는 영역을 검출하고, 캐쉬 메모리 1B에 공통 메모리 3의 응답을 방해한다[방해].
(제7c도 참조)
③ 캐쉬 메모리 1A는 액세스의 대상이 되는 영역과 대응하는 엔트리를 캐쉬 메모리 1B에 전송한다[캐쉬에서 캐쉬로 전송]. 동시에, 공유상태 지시 플래그 "S"는 ON(S=1)이 된다.
(제7d도 참조)
④ 캐쉬 메모리 1A는 대응하는 CPU 2A로부터 라이트 명령에 의거하여 관련된 엔트리 안에 다시 라이트한다.
동시에, 캐쉬 메모리 1A 공유 상태 지시 플래그 "S"가 ON이 되기 때문에 시스템 버스 4 에 라이트 어드레스를 보낸다. 라이트 어드레스를 라이트-쓰루 방법이나 버퍼 무효화 요구 명령의 형태로 보낸다.
(제7e도 참조)
⑤ 캐쉬 메모리 1B는 라이트 어드레스가 시스템 버스 4 에 보내졌는지를 검출해서 대응하는 CPU 2B로부터의 라이트 명령에 의해 관련된 엔트리를 클리어(무효화)한다.
동시에, 캐쉬 메모리 1A는 공유상태 지시 플래그 "S"(S=0)를 OFF한다.
게다가, 공통 메모리 3에 액세스를 갖는 캐쉬 메모리가 카피-백 캐쉬 메모리일지라도, 상기 캐쉬 메모리 제어가 같은 방법에도 적용될 수 있다. 그것의 일예가 제8a 내지 8e도에 나타나 있다. 도면에서, 참조번호 1B는 카피-백 캐쉬 메모리이다.
제 9 도는 제 5 도에 도시한 카피-백 캐쉬 메모리 1A의 상태 천이 방법을 나타낸다.
이 실시예는 "유효, 공유 및 수정된 상태" SM(V=1, M=1, S=1)뿐만 아니라 종래 형태(제3a 및 3b도 참조)에 적용된 세개의 상태, 즉 "I", "V", "M"도 새롭게 받아들일 수 있다. 이 경우에 방해 및 캐쉬에서 캐쉬로의 전송법은 상태 "M"으로부터 상태 "SM"까지 천이되는 동안 수행되고, 라이트 어드레스는 상태 "SM"으로부터 상태 "M"으로 천이되는 동안 보내어진다.
따라서, 이 실시예의 캐쉬 메모리에 의해서, 캐쉬 메모리 1A에 의해 엔트리가 전송된 후에 캐쉬 메모리 1B로부터의 액세스 요구에 응답하여 관련된 엔트리 안에 다시 데이타가 쓰여질지라도 캐쉬 메모리 1B는 관련된 엔트리를 무효화할 수 있다. 따라서 오래된 데이타가 동작의 대상으로서 선택되는 단점을 제거할 수 있다. 이 경우에 필요할 때 엑세스를 행하여서 캐쉬 메모리 1B상에 있는 캐쉬 메모리 1A의 ; 갱신화된 데이타를 나타나도록 하는 것이 가능하다.
[제 2 실시예]
본 발명의 바람직한 제 2 실시예의 이해를 돕기 위해 종래 기술의 문제점들이 제10 및 제11도와 참조하여 설명한다.
제10도는 종래 캐쉬 메모리의 일예이다.
도면에서, 캐쉬 메모리 "A" 및 "B"는 모두 카피-백 캐쉬 메모리라고 가정한다. 참조기호 "V"는 액세스 어드레스에 의해 표시된 영역이 셀프 캐쉬 메모리에 존재하는지의 여부를 지시하는 유효 지시 플래그이고, 참조기호 "M"은 데이타를 다시 라이트 할것인지의 여부를 지시하는 수정된 상태 지시 플래그이다.
데이타 라이트 요구가 대응하는 CPU로부터 각각 캐쉬 메모리 "A" 및 "B"에 주어지는 곳에서 각 캐쉬 메모리 "A" 및 "B"는 대상영역이 셀프 메모리에 나타나고(V=1), 수정된 상태 지시 플래그가 OFF됐을때 (M=0) 각각의 수정된 상태 지시 플래그 "M"은 ON이 된다(M=1).
데이타가 수정되지 않은 상태영역에 쓰여질때, 캐쉬 메모리 "A"(또는 "B")는 버퍼 무효화 요구 명령 "BICMD"를 시스템 버스에 보내고(라이트 동작), 그리하여 캐쉬 메모리 "B"(또는 "A")에서 대응하는 영역을 클리어(무효화)한다.
종래 시스템에서, 라이트 동작이 한번 시작되면 캐쉬 메모리 "A"나 "B"도 버퍼 무효화 요구 명령이 완전히 종료될때까지 해당하는 CPU로 쓰기가 끝났다는 것을 지시하는 응답을 보내지 않는다.
내부의 수정된 엔트리의 어드레스와 외부 액세스 어드레스가 일치하는 곳에서도 관련된 캐쉬 메모리가 외부 액세스를 행했었던 캐쉬 메모리로 방해 신호를 보내서 외부 액세스의 일시적인 방해를 요구해서 한 엔트리의 데이타를 바꾼다(카피백한다).
게다가, 라이트 동작의 실행시 외부 장치로부터 방해 신호를 수신하는 경우에, 관련된 캐쉬 메모리는 방해 신호를 출력하는 장치(다른 캐쉬 메모리)에 의해 액세스가 종료된 후에 다시 라이트 동작(버퍼 무효화 요구 명령의 송부)을 실행한다.
더우기, 제11도는 제10도에 도시한 캐쉬 메모리의 상태 천이 방법을 나타낸다.
도면에서, 참조기호 I는 무효상태(V=0), "V"는 무효 및 수정되지 않은 상태(V=1 및 M=0) ; "M"은 유효 및 수정된 상태(V=1 및 M=1) ; (1)은 리이드 동작에 의한 새로운 기록 ; (2)는 수정되지 않은 영역으로 라이트하고 버퍼 무효화 요구 명령 송부하기 ; (3)은 카피-백 ; (4)는 클리어 ; 및 (5)는 라이트 동작에 의한 새로운 기록을 각각 지시한다. 상태 "U"로부터 상태 "I"로의 천이 및 상태 "M"으로부터 상태 "I"로의 천이가 다른 캐쉬 메모리로부터의 버퍼 무효화 요구 명령에 의거한 클리어 동작에 의해 실행된다.
상기 종래의 제어 시스템에서는 라이트 동작이 어떤 방해없이 끝날때까지 아무런 응답도 CPU로 보내지 않기 때문에, 카피-백 캐쉬 메모리에 의한 장점(버스 액세스의 주파수를 감소하고 고속으로 처리하는 점)을 최대로 이용하는 것이 불가능해서 전체 시스템의 동작이 저하되는 문제가 발생한다.
또한 한 엔트리의 데이타를 바꾸는 동작에서도 관련 캐쉬 메모리와 공통 메모리 사이의 통신을 하는데 비교적 오랜시간이 걸리는 문제가 생긴다.
게다가 라이트 동작을 다시 수행하는 방법에 있어서도, 라이트 및 방해 동작은 두 캐쉬 메모리 모두가 각각의 라이트 동작을 요구하는 경우에 반복되어 수행되어 라이트 동작 및 방해 동작이 때때로 저하될 가능성이 있고 고속 처리가 실행될 수 없다는 문제점이 생긴다.
또한 라이트 동작을 다시 실행하는 방법에서 라이트 동작 및 방해 동작은 두 캐쉬 메모리 모두가 각각의 라이트 동작을 필요로 하는 경우에 반복해서 수행되고, 때때로 라이트 및 방해 동작이 저하되는 문제점과 고속 처리가 실현될 수 없다는 문제가 발생한다.
게다가 데이타 라이트가 다수의 캐쉬 메모리(제10도의 예에서는 두 캐쉬 메모리)가 동시에 발생됐을때, 타이밍이 서로 완전히 일치하지 않게 되는 문제점이 생기고, 버퍼 무효화 요구 명령이 두 캐쉬 메모리로부터 시스템 버스로 보내져서 두 캐쉬 메모리에 있는 라이트 데이타가 사라져 버린다.
이러한 문제점들을 없애기 위해 단 한 CPU(카피-온-라이트 시스템)에 대해 공통 영역으로 다시 쓰기가 행해지는 방법을 제안할 수 있다. 그러나 이것은 캐쉬 메모리 제어가 매우 복잡해져서 실용적이지 않다.
제12a도 및 제12b도는 본 발명의 한 양상에 따른 버퍼 무효화 제어의 원리를 나타낸다.
제12a도 및 제12b도에 도시한 바와같이, 이 버퍼 무효화 제어가 다수의 카피-백 캐쉬 메모리 M1내지 Mn및 적어도 한 공통 메모리 CM이 시스템 버스를 경유하여 연결되는 멀티 프로세서 시스템에 적용한다 각 캐쉬 메모리 M1은 데이타영역 D, 어드레스영역 A, 셀프 캐쉬 메모리에 액세스 어드레스에 의해 지시된 영역의 존재여부를 표시하는 유효 지시 플래그 V 및 데이타를 다시 라이트 할것인가의 여부를 지시하는 수정된 상태 지시 플래그 M을 포함하는 메모리 소자 ; 대응하는 CPU Ci로부터의 라이트 요구에 의거한 데이타와 어드레스를 저장하는 레지스터 소자 PO ; 메모리 소자 및 레지스터 소자에 연결되어 있고, 수정된 상태 지시 플래그를 ON이 되도록 대상 엔트리 및 레지스터 소자에서 대응하는 CPU로부터의 라이트 요구에 의해 라이트 데이타를 저장하고, 대응하는 CPU로부터 라이트 요구가 발생한 경우 수정된 상태 지시 플래그가 OFF되고 대상 영역이 셀프 캐쉬 메모리에 나타냈을때 일부의 라이트 어드레스를 포함하는 버퍼 무효화 요구 명령을 시스템 버스에 보내는 소자 P11 ; 메모리 소자에 연결되어 있고, 시스템 버스상의 명령을 감시하고, 라이트 어드레스와 그안에 포함된 어드레스를 비교하는 소자 P12 ; 및 메모리 소자에 연결되어 있고, 대기시 버퍼 무효화 요구 명령을 취소하고, 시스템 버스상의 명령이 다른 캐쉬 메모리로부터의 버퍼 무효화 요구 명령을 지시하고 거기에 포함된 어드레스가 대기시 버퍼 무효화 요구 명령의 동일 영역을 지시할때 라이트-쓰루 방법으로 공통 메모리에 있는 레지스터의 내용을 저장하는 소자 P13을 포함한다.
설명의 간단화를 위해 두개의 캐쉬 메모리(M1및 M2)에서 각각의 라이트 요구가 대응하는 영역으로 동시에 주어지고, 한 캐쉬 메모리(M1)은 다른 캐쉬 메모리(M2)보다 빨리 데이타를 실행시킨다.
이 경우, 캐쉬 메모리 M1으로부터의 버퍼 무효화 요구 명령이 시스템 버스에 보내어져서 캐쉬 메모리 M2가 보류상태(송부하기 위한 대기상태)에서 버퍼 무효화 요구 명령을 취소하고 공통 메모리 CM에서 레지스터 소자 PO에 데이타를 저장(라이트 데이타의 사라짐을 방지)한다.
반면에, 셀프 메모리(캐쉬 메모리 M1)로부터 버퍼 무효화 요구 명령을 보냈을때, 캐쉬 메모리 M1은 대응하는 CPU로부터 라이트 요구를 받아들일 수 없어서 라이트 요구의 끝을 지시하는 응답을 보낸다. 또한 캐쉬 메모리 M2로부터 버퍼 무효화 요구 명령이 취소 되었기 때문에 대상영역의 데이타가 캐쉬 메모리 M1으로부터 없어지는 것을 막아준다.
상기 설명한대로, 내부 대응하는 영역으로 각각의 라이트 요구가 다수의 캐쉬 메모리에 동시에 발생되는 경우에서 버퍼 무효화 요구 명령이 보내질때, 각각의 캐쉬 각각의 캐쉬 메모리가 내부 관련된 엔트리를 새롭게 할 수 있고 셀프 라이트 동작이 종료된 후에 해당하는 CPU에 라이트 동작이 끝남을 알린다.
반면에, 버퍼 무효화 요구를 받았을때, 각 캐쉬 메모리는 라이트-쓰루 방법으로 공통 메모리 CM상에 레지스터 소자 PO의 내용을 나타낼 수 있다. 따라서 다시 라이트한 데이타가 사라지지 않고 다른 캐쉬 메모리에서 대응하는 영역을 무효화 시켜서 카피-백 캐쉬 메모리의 장점인 고속성을 이용하는 것이 가능하며, 그것에 의해 전체 시스템의 효율을 증가시킬 수 있다.
제13도는 본 발명에 따른 버퍼 무효화 제어가 적용되는 멀티프로세서 시스템의 구성을 도시하였다.
이 시스템에서, 다수의 카피-백 캐쉬 메모리(도면에서는 두 캐쉬 메모리 1A 및 1B'만 도시함)가 시스템 버스 4를 경유하여 적어도 한 공통 메모리 3(도면에서는 하나만 도시함)에 연결된다. 또한 대응하는 캐쉬 메모리 및 데이타 리이드/라이트에 어드레스 정보의 공급을 제어하는 중앙처리장치(CPU) 2A 및 2B가 각 캐쉬 메모리 1A 및 1B에 연결된다.
제14a도 및 제14b도는 제13도에 도시한 캐쉬 메모리 1A, 1B'의 내부 구성을 도시하였다.
제14a도에서, 참조번호 31은 액세스 데이타의 실 어드레스를 기억하는 어드레스 영역, 셀프 캐쉬 메모리에 액세스 어드레스에 의해 지시되는 영역의 존재여부를 지시하는 무효 지시 플래그 "V" 및 데이타를 다시 라이트할 것인지의 여부를 지시하는 수정된 상태 지시 플래그 "M"을 갖는 태그영역(태그 메모리)을 나타낸다. 각각의 플래그 "V" 및 "M"은 각 조건이 확정되었을때 "ON" 또는 "1"이고, 각 조건이 거부되었을때 "OFF" 또는 "0"이 된다.
참조번호 32는 대응하는 CPU로부터 어드레스 ADD1을 디코우드하는 디코우더(DEC) ; 33은 태그영역 31에 나타난 어드레스에 응답하여 CPU로부터의 어드레스 ADD1과 플래그 "V"의 비트를 비교하는 비교장치 ; 34는 CPU로부터 리이드/라이트 제어신호 "R/W"에 응답하는 인버터 ; 35는 플래그 "M"의 비트에 응답하는 인버터 ; 36은 비교장치 33의 출력 및 인버터 34의 출력(CPU 라이트신호 "CWRT")에 응답하여 상태(신호 "MSET")를 설정하도록 플래그 "M"의 비트를 만드는 AND 게이트 ; 37은 비교장치 33의 출력, 인버터 34의 출력 "CWRT" 및 인버터 35의 출력에 응답하는 AND 게이트 ; 38은 대응하는 CPU로부터 어드레스 ADD1을 저장하는 저장버퍼 ; 그리고 39는 저장버퍼로부터 공급되어지는 무효 어드레스 "IAD", AND 게이트의 취소신호 CNL(이후에 서술함) 및 출력 WU에 응답하는 기능 그리고 시스템 버스 4로 송부되는 버퍼 무효화 요구 명령의 준비, 명령의 송부 취소 및 명령의 송부 끝을 나타내는 신호 "CIEND"를 출력하는 기능을 하는 버퍼 무효화 제어장치이다.
참조번호 40은 시스템 버스 4의 어드레스 ADD2를 디코우드하는 디코우더(DEC) ; 41은 태그영역 31에 나타난 어드레스 및 시스템 버스 4의 어드레스 "ADD2" 및 플래그 "V"의 비트에 응답하는 비교장치 ; 42는 저장버퍼 38로부터 공급되어지는 무효 어드레스 "IAD"(30비트), 시스템 버스 4의 어드레스 "ADD2"(이 경우 다른 캐쉬 메모리로부터의 버퍼 무효화 요구 명령의 어드레스 "BIAD") ; 43은 대응하는 CPU로부터 라이트 데이타 "WDT"를 저장하는 저장버퍼 ; 그리고 44는 저장버퍼 38로부터 공급되어지는 저장 어드레스 "SA"(32비트), 저장버퍼 43으로부터 공급되어지는 저장 데이타 "SD" 및 비교장치 42로부터 출력되어지는 저장 명령시작 신호 "SCS"(이후에 서술함)에 응답하는 기능과, 저장명령의 준비, 시스템 버스 4로 송부 및 저장동작의 끝을 알리는 신호 "SEND"를 출력하는 기능을 갖는 저장동작 제어장치를 나타낸다.
태그영역 31의 어드레스가 ON 상태(V=1)가 되는 유효 지시 플래그 "V"로 CPU 어드레스 "ADD1"과 일치할때, 비교장치 33은 그의 출력을 "1"로 설정해서 대응하는 AND 게이트 36을 "유효"가 되게한다. 만약 이 상태("1"이 되는 비교장치 33의 출력)에서 수정된 상태 지시 플래그 "M"이 OFF(M=0)이면, 인버터 35의 출력은 "1"이 되고 AND 게이트 37은 "유효"가 된다. 반면에, 비교장치 41은 태그영역 31의 어드레스가 ON(V=1) 상태가 되는 유효 지시 플래그 "V"와 함께 시스템 버스 4의 어드레스 "ADD2"와 일치할때 플래그 "V"의 비트를 클리어(신호 VCLR)시킨다. 또한, 시스템 버스 4상의 다른 캐쉬 메모리로부터의 버퍼 무효화 요구 명령의 어드레스 "BIAD"가 저장버퍼 38로부터의 무효 어드레스 "IAD"와 일치할때, 비교장치 42는 취소신호 "CNL"을 버퍼 무효화 제어장치 39에 공급하고, 저장명령 시작신호 "SCS"를 저장 동작 제어장치 44에 공급한다.
제14b도에 도시한 회로는 버퍼 무효화 요구 명령의 송부/종료 지시신호 "CIEND" 및 저장동작 종료 지시 신호 "SEND"에 응답하는 OR 게이트 51 ; CPU 라이트 신호 "CWRT"를 수신하여 Q-출력단자에 저장버퍼 통화중 신호 "SBB"를 출력하고, OR 게이트 51의 출력 및 외부 클록을 J-단자, K-단자 및 클록-단자 "CLK"에 각각 출력하는 J-K형 플립-플롭 52 ; 저장버퍼 38의 무효 어드레스 "IAD"와 CPU로부터의 어드레스 "ADD1"의 일치 또는 불일치를 검출하는 비교장치 53 ; 비교장치의 출력 및 CPU 라이트신호 "CWRT"에 응답하는 AND 게이트 54 ; AND 게이트의 출력 및 저장버퍼 통화중 신호 "SBB"에 응답하는 AND 게이트 55 ; 및 AND 게이트 37의 출력 "WU"(제14a도 참조) 및 저장버퍼 통화중 신호 "SBB"에 응답하는 AND 게이트 56과 AND 게이트 55 및 56의 출력에 응답하여 CPU 웨이트(weight)신호 "CWT"를 발생하는 OR 게이트 56으로 구성된다.
다음은 버퍼 무효화 제어방법을 제15a 및 15b도와 참조하여 설명한다.
(제15a도 참조)
① 대응하는 CPU 2A, 2B로부터 각각의 라이트 요구가 셀프 메모리(V=1)에 나타나고 수정된 상태 지시 플래그가 OFF(M=0)되는 영역에 주어질때, 각 캐쉬 메모리 1A, 1B'가 대상 엔트리 및 저장버퍼 43 및 38에 라이트 요구에 의한 데이타 및 어드레스를 유지하고 대응하는 CPU에 라이트 종료 응답을 보낸다. 이때에, 다시 라이트한 대상 엔트리가 수정된 상태로부터 수정된 상태로 천이되서 각 캐쉬 메모리 1A, 1B'가 수정된 상태 지시 플래그 "M"을 ON(M=1)이 되게 한다.
② 캐쉬 메모리 1A가 버퍼 무효화 요구 명령을 시스템 버스 4에 보낸다(라이트 동작).
③ 캐쉬 메모리 1A와 같은 방법으로 캐쉬 메모리 1B'가 버퍼 무효화 요구 명령을 보낼 예정이나 캐쉬 메모리 1A가 우연히 더 빠른 동작을 갖기 때문에 시스템 버스의 사용권리를 얻을 수가 없다. 그 결과 캐쉬 메모리 1B'는 버퍼 무효와 요구 명령의 대기상태를 송부 상태가 되게 한다.
(제15b도 참조)
④ 캐쉬 메모리 1B'가 캐쉬 메모리 1A로부터 버퍼 무효화 요구 명령을 응답하여 대응하는 영역의 기록을 지운다.
버퍼 무효화 요구 명령의 송부 대기상태에서, 캐쉬 메모리 1B'가 CPU 2B로부터의 새로운 라이트 요구를 해당하는 영역에 착신하지 않는다.
⑤ 셀프 메모리로부터 버퍼 무효화 요구 명령의 송부가 종료되었기 때문에, 캐쉬 메모리 1A는 대응하는 CPU 2A로부터 라이트 요구를 받아들여서 라이트 요구의 종료를 지시하는 응답을 보낸다.
⑥ 버퍼 무효화 요구 명령이 캐쉬 메모리 1A로부터 같은 영역에 송부 대기상태에 있는 버퍼 무효화 요구 명령으로서 송부되기 때문에, 캐쉬 메모리 1B'는 송부 대기상태를 취소하고 라이트 명령을 사용하는 라이트-쓰루 방법으로 단계 ①에서 유지된 저장버퍼의 내용을 공통 메모리 3(V=1→0)에서 저장한다. 결과적으로 라이트 데이타 또는 쓰여진 데이타가 없어지는 것을 방지할 수 있다.
제16도는 제13도에 도시한 캐쉬 메모리 1A, 1B'의 상태 천이 방법을 도시한다.
도면에서, 참조기호 "I", "U", "M", (1), (3), (4) 및 (5)는 제11도와 같으므로 그 설명은 생략한다. 참조번호 "ST"는 공통 메모리에 저장하기 위한 대기상태이고, "BI"는 버퍼 무효화 요구 명령을 송부하기 위한 대기상태이다. 또한 참조번호 (2a)는 수정되지 않은 영역으로의 라이트를 나타내고 ; (2b)는 버퍼 무효화 요구 명령의 송부 ; (6)은 버퍼 무효화 요구 명령을 송부하기 위한 대기상태 ; (7)은 대응하는 영역으로 버퍼 무효화 요구 명령의 검출 ; (8)은 저장하기 위한 대기상태 ; 그리고 (9)는 저장완료를 나타낸다.
전술한 바와같이, 이 실시예의 버퍼 무효화 제어에 따라 내부의 대응하는 영역으로 라이트 요구가 캐쉬 메모리 1A 및 1B'에서 동시에 발생되는 곳에서, 한 캐쉬 메모리 1A(1B')가 버퍼 무효화 요구 명령을 송부할 수 있고 라이트 동작의 종료후에 관련된 엔트리를 다시 써서 CPU에 라이트 종료 응답을 보낸다. 반면에, 또다른 캐쉬 메모리 1B'(1A)가 셀프 메모리에서 버퍼 무효화 요구 명령의 송부 대기상태를 취소하고, 한 캐쉬 메모리 1A(1B')로부터 버퍼 무효화 요구 명령을 수신하여 라이트-쓰루 방법으로 공통 메모리 3으로 저장버퍼 38 및 43의 내용을 라이트한다.
그러므로, 다시 쓴 데이타가 없어지지 않고서도 다른 캐쉬 메모리에서 대응하는 영역을 무효화하는 것이 가능해서 카피-백 캐쉬 메모리의 장점인 고속성을 사용할 수 있고, 그로인해 전체 시스템의 효율성을 개선한다.
비록 상기 실시예에서 두 캐쉬 메모리 사이의 버퍼 무효화 제어방법이 설명되었지만 세개 또는 그 이상의 카피-백 캐쉬 메모리 사이에서도 상기 제어방법이 적용된다는 것이 명백하다.
[제 3 실시예]
본 발명의 발마직한 제 3 실시예를 보다 쉽게 이해하기 위해 제17a 내지 17c 및 18도와 참조하여 설명한다.
제17a도 내지 제17c도는 종래 캐쉬 메모리 제어의 일예이다.
도면에서, 두 캐쉬 메모리 "A" 및 "B"는 모두 카피-백 캐쉬 메모리라고 가정한다. 참조기호 "V"는 셀프 캐쉬 메모리에서 액세스 어드레스에 의해 표시된 영역의 존재여부를 지시하는 유효 지시 플래그를 나타내고, "M"은 데이타를 다시 라이트할 것인지의 여부를 지시하는 수정된 상태 지시 플래그이다.
(제17a도 참조)
대응하는 CPU로부터 각각 캐쉬 메모리 "A" 및 "B"에 데이타 라이트 요구가 주어지는 곳에서, 각 캐쉬 메모리 "A", "B"는 대상 영역(엔트리)에 라이트 데이타를 써넣고 셀프 메모리에서 대상 영역이 나타나고 (V=1) 수정된 상태 지시 플래그 "M"이 OFF(M=0)였을때 각각의 수정된 상태 지시 플래그 "M"(M=1)을 ON이 되게 한다.
도면에서, 수정되지 않은 상태 영역에서 데이타가 라이트될때, 캐쉬 메모리 "A"는 시스템 버스에 버퍼 무효화 요구 명령을 보낸다(→①).
비록 캐쉬 메모리 "B"가 버퍼 무효화 요구 명령을 송부할 예정이었으나 캐쉬 메모리 "A"가 우연히 더 빠른 동작을 갖기 때문에 시스템 버스를 차지할 수 없다. 결과적으로, 캐쉬 메모리 "B"가 버퍼 무효화 요구 명령을 송부하기 위한 "대기"상태가 된다(→②).
(제17b도 참조)
캐쉬 메모리 "B"가 캐쉬 메모리 "B"로부터 버퍼 무효화 요구 명령에 의해 "저장" 대기상태가 된다. "저장" 대기상태는 공통 메모리 "C"안으로 대응하는 영역의 데이타를 저장하기 위한 상태를 나타낸다. 반면에, 캐쉬 메모리 "A"가 버퍼 무효화 요구 명령의 송부를 종료했기 때문에, CPU에 라이트 종료를 알리는 응답을 보낸다.
캐쉬 메모리 "A"로부터 버퍼 무효화 요구 명령을 송부 대기상태에 있는 버퍼 무효화 요구 명령으로서 같은 영역에 송부했기 때문에, 캐쉬 메모리 "B"는 송부 대기상태를 취소할 예정이었으나 제18도의 타이밍도에 도시한 바와같이 취소를 행할 수 없다.
결과적으로, 캐쉬 메모리 "B"에서 송부 대기상태에 있었던 버퍼 무효화 요구 명령을 시스템 버스에 보낸다(→③).
(제17c도 참조).
캐쉬 메모리 "B"가 공통 메모리 "C"에 저장 대기상태에 있었던 데이타를 저장한다(→④).
반면에, 캐쉬 메모리 "A"의 대응하는 영역이 캐쉬 메모리 "B"로부터 송부되었던 버퍼 무효화 요구 명령에 의해 클리어되므로 데이타가 없어진다.
상기 종래 제어 시스템에서는, 다수의 카피-백 캐쉬 메모리(제17a도 내지 제17c도의 예에서는 두 캐쉬 메모리 "A" 및 "B")의 각각 대응하는 영역에 라이트 요구가 동시에 발생되는 곳에, 버퍼 무효화 요구 명령을 두 부분으로부터 시스템 버스상에 송부한다. 즉, 제18도의 타이밍도에 보인 바와같이, 다른 캐쉬 메모리로부터 버퍼 무효화 요구 명령이 검출된 직후 캐쉬 메모리로부터 버퍼 무효화 요구 명령의 송부 취소가 때맞춰 되지 않는다. 그 결과 버퍼 무효화 요구 명령이 두 캐쉬 메모리로부터 송부되서 라이트 데이타가 없어지는 문제가 생긴다.
이 문제를 없애기 위해 단 하나의 CPU(카피-온-라이트 시스템)에 대해 공통 영역으로 다시 라이트를 행한다. 그러나, 이것은 캐쉬 콘트롤을 복잡하게 하므로 실용적이지 않다.
또한 다른 해결책으로서 항복 (1)의 단계 ①에서 공통 메모리 "C"안으로 대상영역에 데이타를 동시에 라이트하기 위한 시스템을 제안할 수 있다. 그러나 이 시스템에서는 카피-백 캐쉬 메모리의 장점(버스 액세스의 주파수를 감소시키고 그로인해 고속처리를 행하는 점)을 최대로 사용하는 것이 어려워서 전체 시스템의 동작이 저하되는 문제점이 생긴다.
제19도는 본 발명의 다른 양상에 따른 버퍼 무효화 제어의 원리를 보인다.
제19도에서 보인 바와같이, 이 버퍼 무효화 제어는 다수의 카피-백 캐쉬 메모리 M1 내지 Mn과 적어도 한공통 메모리 CM이 시스템 버스를 경유하여 연결되는 멀티 프로세서 시스템에 적용된다. 각 캐쉬 메모리 Mi는 데이타 영역 D, 어드레스 영역 A, 셀프 캐쉬 메모리에서 액세스 어드레스로 표시한 영역의 존재 여부를 표시하는 유효 지시 플래그 V 및 데이타를 다시 쓸것인지의 여부를 지시하는 수정된 상태 지시 플래그 M을 포함하는 메모리 소자 ; 메모리 소자에 연결되어 있고, 대상 영역이 셀프 캐쉬 메모리에 나타나고 대응하는 CPU로부터 라이트 요구가 송부되는 경우에 수정된 상태 지시 플래그가 OFF일때 대응하는 CPU로부터 라이트 어드레스의 일부를 포함하는 버퍼 무효화 요구 명령을 시스템 버스에 송부하는 소자 P21 ; 메모리 소자 및 송부 소자에 연결되어 있고, 명령이 다른 캐쉬 메모리로부터 버퍼 무효화 요구 명령인 곳에서 시스템 버스의 명령을 감시하고, 셀프 캐쉬 메모리로부터의 명령에 포함된 어드레스 영역을 취소하는 소자 P22 ; 셀프 캐쉬 메모리에 의해 송부된 버퍼 무효화 요구 명령의 어드레스를 유지하는 레지스터 소자 P23 ; 및 메모리 소자와 레지스터 소자에 연결되어 있고, 레지스터 소자의 내용과 다른 캐쉬 메모리로부터 무효화 요구 명령에 포함된 어드레스를 비교하고, 그로인해 버퍼 무효화 요구 명령이 셀프 캐수 메모리로부터 송부되어진후에 다른 캐쉬 메모리로부터 소정의 기간내에 검출되는 동일영역으로 버퍼 캐쉬 메모리를 무시하기 위해 제어를 하는 소자 P24를 포함한다.
대응하는 CPU로부터의 라이트 요구에 의거한 수정되지 않은 영역으로 각 캐쉬 메모리가 데이타를 써넣어서 시스템 버스에 버퍼 무효화 요구 명령을 송부한다. 이 경우에 버퍼 무효화 요구 명령이 송부되었기 대문에 다른 캐쉬 메모리로부터 동일 영역으로 버퍼 무효화 요구 명령이 일정한 기간내에 검출되서, 관련된 명령이 무시되도록 제어가 수행된다.
즉, 버퍼 무효화 요구 명령이 다수의 캐쉬 메모리로부터 어떤 캐쉬 메모리안의 동일영역으로 순서대로 송부되어져서 제2 및 다음의 버퍼 무효화 명령이 무시된다. 그러므로, 대상영역에서 데이타가 없어지지 않고 공통 메모리와 일치하도록 제어를 실행할 수 있다. 또한 카피-백 캐쉬 메모리의 장점을 최대로 이용할 수 있으므로 전체 시스템의 성능을 개선할 수 있다.
제20도는 제13도에 보인 캐쉬 메모리(1A, 1B')의 다른 내부 구성도를 나타낸다. 점선으로 표시한 부분은 본 발명의 특성을 보인 부분이다.
도면에서, 참조번호 31은 액세스 데이타의 실 어드레스를 기억하는 어드레스 영역, 셀프 캐쉬 메모리에 액세스 어드레스로 표시한 영역의 존재 여부를 지시하는 유효 지시 플래그 "V" 및 데이타를 다시 라이트할 것인지의 여부를 지시하는 수정된 상태 지시 플래그 "M"을 갖는 태그영역(태그 메모리)을 지시한다. 각각의 조건이 확정됐을때 각각의 플래그 "V" 및 "M"은 "ON" 또는 "1"을 나타내고, 조건이 거부됐을때는 "OFF" 또는 "0"이 된다.
참조번호 32는 대응하는 CPU로부터 어드레스 "ADD1"을 디코드하는 디코우더(DEC) ; 33은 태그영역 31안에 기록된 어드레스, CPU로부터의 어드레스 "ADD1" 및 플래그 "V"의 비트에 응답하는 비교장치 ; 34는 CPU로부터 라이드/라이트 제어신호 "R/W"를 응답하는 인버터 ; 35는 플래그 "M"의 비트에 응답하는 인버터 ; 36은 비교장치 33의 출력 및 인버터 34의 출력(CPU 라이트 신호 "CWRT")에 응답하여 상태(신호 "MSET")를 설정하도록 플래그 M의 비트를 만들기 위한 AND 게이트 ; 37은 비교장치 33의 출력, 인버터 34의 출력 "CWRT" 및 인버터 35의 출력에 응답하는 AND 게이트 ; 38은 대응하는 CPU로부터 어드레스 "ADD1"을 저장하는 저장버퍼 ; 그리고 39는 회로를 제어하고, 저장버퍼 38로부터 제공되어 있는 버퍼 무효화 요구 명령의 어드레스(무효화 어드레스) "IAD" 및 AND 게이트 37의 출력(무효화 명령 송부 요구) "WU"에 응답하는 기능을 갖고 버퍼 무효화 요구 명령을 준비하여 그것을 시스템 버스 4에 보내기 위한 기능을 갖는 버퍼 무효화 제어회로를 나타낸다.
또한 참조번호 40은 시스템 버스 4상의 어드레스 "ADD2"를 디코우드하는 디코우더(DEC) ; 41은 태그영역 31안으로 기록된 어드레스 시스템 버스 4의 어드레스 "ADD2" 및 플래그 "V"의 비트에 응답하는 비교 장치 ; 42는 저장버퍼 38로부터 공급되어지는 무효화 어드레스 "IAD"를 주어진 시간에 의해 지연하는 지연버퍼 ; 43은 지연 버퍼의 출력 어드레스 및 시스템 버스 4상의 어드레스 "ADD2"(이 경우 다른 캐쉬 메모리로부터 버퍼 무효화 요구 명령의 어드레스 "BIAD"에 응답하는 비교장치 43 ; 44는 비교장치 43의 출력에 응답하는 인버터 44 ; 그리고 45는 인버터의 출력 및 비교장치 41의 출력에 응답하여 플래그 "V"의 비트를 클리어(신호 "VCLR")하는 AND 게이트를 지시한다.
태그영역 31은 어드레스가 ON(V=1)인 유효화 지시 플래그 "V"와 함께 CPU 어드레스 "ADD1"과 일치할때, 비교장치 33은 그의 출력을 "1"로 설정해서 대응하는 AND 게이트를 "유효"가 되게 만든다. 만약 수정된 상태 플래그 "M"이 이 상태(비교장치 33의 출력이 "1"이 되는)에서 OFF(M=0)이 되야 한다면 인버터 35의 출력은 "1"이 되고 AND 게이트 37의 출력은 "유효"가 된다. 반면에, 시스템 버스 4의 다른 캐쉬 메모리로부터 버퍼 무효화 요구 명령의 어드레스 "BIAD"가 주어진 시간의 지연후에 무효화 어드레스 "IAD"와 일치할때 비교회로 43은 그의 출력을 "1"로 설정해서 인버터 44의 출력을 "0"으로 AND 게이트 45를 "무효화"되게 만든다. 다시 말해서 두 어드레스 "IAD" 및 "BIAD" 모두가 불일치할때, AND 게이트 45는 "유효화"된다. 태그영역 31의 어드레스가 ON(V=1)이 되는 유효 지시 플래그 "B"와 함께 시스템 버스 4상의 어드레스 "ADD2"와 일치할때, 이 상황(비교장치의 출력이 "0"이 되는)하에서 비교장치 41은 그의 출력을 "1"로 설정해서, AND 게이트 45를 경유하여 플래그 "V"의 비트를 클리어한다.
다음은 버퍼 무효화 제어가 제21a도 내지 제21c도와 참조하여 설명한다.
(제21a도 참조)
① 대응하는 CPU 2A, 2B로부터 라이트 요구가 셀프 메모리(V=1)에 기록된 영역 및 수정된 상태 지시 플래그 OFF(M=0) 되는 곳으로 주어져서 각 캐쉬 메모리 1A,1B'가 대상 엔트리 및 저장버퍼 38내에 라이트 요구에 의한 어드레스(제20도에 도시하지 않음) 및 데이타를 유지해서 대응하는 CPU에 라이트 종료 응답을 보낸다. 이때에, 다시 라이트한 대상 엔트리가 수정되지 않은 상태로부터 수정된 상태로 천이되기 때문에 각 캐쉬 메모리 1A,1B'가 수정된 상태 지시 플래그 "M"(M=1)을 ON이 되게 한다.
② 캐쉬 메모리 1A가 버퍼 무효화 요구 명령을 시스템 버스 4에 보낸다(라이트 동작).
③ 캐쉬 메모리 1B'가 버퍼 무효화 요구 명령을 송부할 예정이었으나 캐쉬 메모리 1A가 더 빠른 동작을 갖기 때문에 시스템 버스의 사용 권리를 얻지 못한다. 그 결과 캐쉬 메모리 1B'는 버퍼 무효화 요구 명령의 송부 대기상태로 주어진다.
(제21b도 참조)
④ 캐쉬 메모리 1B'가 캐쉬 메모리 1A로부터 버퍼 무효화 요구 명령에 의한 대응하는 영역의 기록을 취소한다(V=1→0).
버퍼 무효화 요구 명령의 송부 대기상태에서, 캐쉬 메모리 1B'가 CPU 2B로부터 동일 영역으로 새로운 라이트 요구를 받지 못한다.
⑤ 셀프 메모리로부터 버퍼 무효화 요구 명령의 송부가 종료되었기 때문에, 캐쉬 메모리 1A가 해당하는 CPU 2A로부터 라이트 요구를 받아 라이트 종료 응답을 보낸다.
⑥ 버퍼 무효화 요구 명령이 송부 대기상태에 있었던 버퍼 무효화 요구 명령으로서 캐쉬 메모리 1A로부터 같은 영역까지 송부되기 때문에, 캐쉬 메모리 1B'가 송부 대기상태를 취소하고 단계 ①에서 유지되었던 저장버퍼의 내용을 라이트 명령의 사용으로 공통 메모리 3에 반영하도록 시도한다.
⑦ 시스템 버스 4상에 라이트 요구의 대상영역이 캐쉬 메모리 1A 이내에서 이미 수정되었기 때문에 캐쉬 메모리 1A는 일시적인 방해신호가 나타난다.
⑧ 공통 메모리 3은 단계 ⑥에서 라이트 명령에 대해 재시도 요구(re-try request)에 응답한다.
(제21c도 참조)
⑨ 캐쉬 메모리 1A는 단계 ⑦에서 일치되었던 엔트리를 공통 메모리 3에 라이트한다(V=1→0).
⑩ 캐쉬 메모리 1B'는 단계 ⑧에서 다시 라이트 하는 것이 요구되는 단계 ⑦의 라이트 명령을 보낸다(M=1→0).
CPU 2B로부터 캐쉬 메모리 1B'로의 라이트 요구가 연속적인 동작(①~⑩)의 종료후에 보통의 라이트 동작을 시작한다. 즉 오직 한 엔트리만이 공통 메모리 3으로부터 관련된 캐쉬 메모리에 받아들여져서 그의 내용만이 수정된다.
제22도는 제13도에 도시한 캐쉬 메모리 1A, 1B'의 또 다른 상태 천이방법을 나타낸다.
도면에서, 참조기호 "I"는 무효상태(V=0) ; "U"는 유효 및 수정하지 않은 상태(V=1, M=0) ; "M'은 유효 및 수정된 상태(V=1, M=1) ; BI는 버퍼 무효화 요구 명령을 송부하는 대기상태 ; ST는 공통 메모리안으로 저장하는 대기상태 ; (1)은 리이드 동작으로 새로운 기록 ; (2)는 수정되지 않은 영역안에 라이트 ; (3)은 버퍼 무효화 요구 명령을 송부하기 위한 대기상태 ; (4)는 버퍼 무효화 요구 명령의 송부 ; (5)는 라이트 동작에 의해 새로이 기록 ; (7)은 카피-백 ; (8)은 동일 영역에 버퍼 무효화 요구 명령의 검출 ; (9)는 저장하기 위한 대기상태 ; 그리고 (10)은 저장 종료상태를 나타낸다. 상태 "U"로부터 상태 "I"로의 천이(6) 및 상태 "M"으로부터 상태 "I"로의 천이(7)은 다른 캐쉬 메모리로부터의 버퍼 무효화 요구 명령에 의한 클리어 동작으로 실행된다.
본 실시예의 캐쉬 메모리 제어에 따라 캐쉬 메모리 1A 및 1B'내에 있는 대응하는 영역으로 라이트 요구를 발생하는 경우에 각 캐쉬 메모리 1A(1B')는 시스템 버스로 버퍼 무효화 요구 명령을 송부한 후에, 다른캐쉬 메모리 1B'(1A)로부터 대응하는 영역에 버퍼 무효화 요구 명령이 소정의 기간내에 검출될때 관련된 명령을 무시하는 기능을 갖는다. 즉, 일반적으로 말해서 버퍼 무효화 요구 명령이 다수의 캐쉬 메모리로부터 어떤 캐쉬 메모리내에 있는 동일한 영역으로 차례로 보내서 제2 및 그 다음의 버퍼 무효화 요구 명령이 무시되도록 제어된다.
그러므로 라이트된 데이타가 없어지지 않고 다른 캐쉬 메모리내에 해당하는 영역을 무효화하는 것이 가능하므로 공통 메모리와 일치하는 제어를 실현하는 것이 가능하다. 또한 카피-백 캐쉬 메모리의 장점을 이용하는 것이 가능해서 전체 시스템의 기능을 개선시킬 수 있다.
본 발명이 비록 세가지 실시예로 설명되었지만 본 발명의 필수적인 양상 및 취지에서 벗어나지 않는한 본 발명의 수정을 가할 수 있다.
Claims (13)
- 다수의 캐쉬 메모리 중의 하나(M1)는 카피-백(Copy-back) 캐쉬 메모리인 다수의 캐쉬 메모리(M1내지 Mn) 및 적어도 한 공통메모리(CM)가 시스템 버스를 경유하여 연결되는 멀티프로세서 시스템에 있어서, 카피-백 캐쉬 메모리는 데이타 영역(D), 어드레스 영역(A), 셀프 캐쉬 메모리에 액세스 어드레스로 지시된 영역이 존재하는지의 여부를 지시하는 유효 지시 플래그(V), 데이타를 다시 라이트 할것인지의 여부를 지시하는 수정된 상태 지시 플래그(M) 및 다른 캐쉬 메모리와 함께 동일한 데이타가 공유되는지의 여부를 지시하는 수정된 상태 지시 플래그(S)를 포함하는 메모리 수단 ; 메모리 수단에 연결되어 있고, 다른 캐쉬 메모리로부터 셀프 캐쉬 메모리에 의해 소유되고 이미 다시 라이트되었으나 아직 공통메모리에 기록되지 않은 영역으로 액세스를 검출할때 액세스에 공통메모리의 응답을 방해하는 제 1 수단(P1) ; 메모리 수단 및 제 1 수단에 연결되어 있고, 다른 캐쉬 메모리로부터 액세스 어드레스에 의해 지시된 영역에 해당하는 엔트리를 다른 캐쉬 메모리로 전송하고, 공유상태 지시 플래그를 ON이 되게 하는 제 2 수단(P2) ; 및 메모리 수단 및 제 2 수단에 연결되어 있고, 시스템 버스에 라이트 어드레스를 송부하고, 공유 및 수정된 엔트리안으로 라이트가 수행되는 공유상태 지시 플래그를 OFF시켜서 그로인해 라이트 어드레스에 의거한 다른 캐쉬 메모리의 해당하는 엔트리를 무효화시키는 제 3 수단(P3)을 포함하는 멀티프로세서 시스템.
- 다수의 카피-백 캐쉬 메모리(M1내지 Mn)와 적어도 한 공통메모리가 시스템 버스를 경유하여 연결되는 멀티프로세서 시스템에 있어서, 각각의 캐쉬 메모리(Mi)는 데이타 영역(D), 어드레스 영역(A), 셀프 캐쉬 메모리에 액세스 어드레스로 지시된 영역이 존재하는지의 여부를 지시하는 유효 지시 플래그(V) 및 데이타를 다시 라이트 할것인지의 여부를 지시하는 수정된 상태 지시 플래그(M)을 포함하는 메모리 수단 ; 대응하는 CPU(Ci)로부터의 라이트 요구에 의거한 데이타 및 어드레스를 저장하는 레지스터 수단(PO) ; 메모리 수단 및 레지스터 수단에 연결되어 있고, 수정된 상태 지시 플래그를 ON이 되도록 대상 엔트리 및 레지스터 수단에 있는 대응하는 CPU로부터의 라이트 요구에 의해 라이트 데이타를 저장하고, 대상영역이 셀프 캐쉬 메모리내에 나타나고 대응하는 CPU로부터 라이트 요구가 나타난 경우에 수정된 상태 지시 플래그가 OFF일때 라이트 어드레스의 일부를 포함하는 버퍼 무효화 요구 명령을 시스템 버스에 송부하는 수단(P11) ; 메모리 수단에 연결되어 있고, 시스템 버스상의 명령을 감시하고, 명령에 포함된 어드레스와 라이트 어드레스를 비교하는 수단(P12) ; 및 메모리 수단, 레지스터 수단 및 비교수단에 연결되어 있고, 버퍼 무효화 요구 명령을 송부하는 대기상태를 취소하고, 시스템 버스상의 명령이 다른 캐쉬 메모리로부터의 버퍼 무효화 요구 명령을 지시하고 거기에 포함된 어드레스가 송부하도록 대기중인 버퍼 무효화 요구 명령의 동일한 영역을 지시할때 라이트-쓰루 방법으로 공통메모리에 있는 레지스터 수단의 내용을 저장하는 수단(P13)을 포함하는 멀티프로세서 시스템.
- 제 2 항에 있어서, 각 캐쉬 메모리가 버퍼 무효화 명령이 종료되었을때 레지스터 수단을 복귀된 상태가 되게 하는 멀티프로세서 시스템.
- 제 2 항에 있어서, 각 캐쉬 메모리가 시스템 버스상의 다른 캐쉬 메모리로부터 버퍼 무효화 요구 명령을 감시하고, 셀프 캐쉬 메모리로부터의 명령에 포함된 어드레스 영역을 취소하는 멀티프로세서 시스템.
- 제 2 항에 있어서, 각 캐쉬 메모리가 버퍼 무효화 요구 명령을 송부하기 전에 대응하는 CPU로부터 라이트 요구에 종료응답을 보내는 멀티프로세서 시스템.
- 제 3 항에 있어서, 각 캐쉬 메모리가 대응하는 CPU로부터의 새로운 라이트 요구에 의한 어드레스와 레지스터 수단의 어드레스의 일부를 비교하는 수단을 포함하며, 그로인해 각 캐쉬 메모리는 레지스터 수단이 복귀된 상태가 될때까지 버퍼 무효화의 대상인 영역으로 새로운 라이트 요구에 대한 종료응답을 보내지 않는 멀티프로세서 시스템.
- 제 3 항에 있어서, 레지스터 수단이 복귀된 상태가 될때까지 각 캐쉬 메모리는 대응하는 CPU로부터 유효 지시 플래그가 ON이고 수정된 상태 지시 플래그가 OFF인 영역으로 새로운 라이트 요구에 대한 종료 응답을 보내지 않는 멀티프로세서 시스템.
- 다수의 카피-백 캐쉬 메모리(M1내지 Mn) 및 적어도 한 공통메모리(CM)가 시스템 버스를 경유하여 연결되는 멀티프로세서 시스템에 있어서, 각 캐쉬 메모리(Mi)가 데이타 영역(D), 어드레스 영역(A), 셀프 캐쉬 메모리에 액세스 어드레스에 의해 지시된 영역이 존재하는지의 여부를 지시하는 유효 지시 플래그(V) 및 데이타를 다시 라이트 할것인지의 여부를 지시하는 수정된 상태까지 플래그(M)을 포함하는 메모리 수단 ; 메모리 수단에 연결되어 있고, 대상영역이 셀프 캐쉬 메모리에 나타나고 수정된 상태 지시 플래그가 대응하는 CPU로부터 라이트 요구가 생겼을 경우 OFF될때 대응하는 CPU부터 라이트 어드레스의 일부를 포함하는 버퍼 무효화 요구 명령을 시스템 버스에 송부하는 수단(P21) ; 메모리 수단 및 송부 수단에 연결되어 있고, 시스템 버스상의 명령을 감시하고, 다른 캐쉬 메모리로부터의 버퍼 무효화 요구 명령인 명령안에 포함된 어드레스 영역을 셀프 캐쉬 메모리로부터 취소하는 수단(P22) ; 셀프 캐쉬 메모리에 의해 송부된 버퍼 무효화 요구 명령의 어드레스를 보유하기 위한 레지스터 수단(P23) ; 및 메모리 수단 및 레지스터 수단에 연결되어 있고, 다른 캐쉬 메모리로부터 버퍼 무효화 요구 명령에 포함된 어드레스와 레지스터 수단의 내용을 비교하고, 그로인해 다른 캐쉬 메모리로부터 버퍼 무효화 요구 명령이 셀프 캐쉬 메모리로부터 송부된 후에 소정의 기간내에 검출되는 동일한 영역으로 버퍼 무효화 요구 명령을 무시하기 위해 제어를 하는 수단(P24)을 포함하는 멀티프로세서 시스템.
- 제 8 항에 있어서, 상기 캐쉬 메모리가 소정의 시간에 의해 레지스터 수단에 보유된 버퍼 무효화 요구 명령의 어드레스를 지연하는 수단을 더 포함하는데, 지연된 어드레스가 다른 캐쉬 메모리로부터 버퍼 무효화 요구 명령에 포함된 어드레스와 비교되는 멀티프로세서 시스템.
- 다수의 캐쉬 메모리를 포함하는 데이타 프로세서에 있어서, 각 캐쉬 메모리가 캐쉬에서 캐쉬로의 데이타 전송방법에 의해 카피 데이타가 다른 캐쉬 메모리에 의해 소유되는 것을 지시하는 정보를 보유하는 플래그 수단 ; 및 플래그 수단에 연결되어 있고, 다른 캐쉬 메모리 안으로의 라이트가 캐쉬에서 캐쉬로의 데이타 전송 후에 요구될때 대응하는 카피 데이타의 무효화를 지시하는 신호를 출력하는 수단을 포함하는 데이타 프로세서.
- 그들 사이의 데이타의 코히어런스를 유지하기 위해 다수의 캐쉬 메모리를 제어하는 방법에 있어서, 캐쉬 메모리가 시스템 버스를 경유하여 공통메모리에 연결되어 있고, 셀프 캐쉬 메모리에 액세스 어드레스로 지시된 영역이 존재하는지의 여부를 지시하는 유효 지시 플래그, 데이타를 다시 라이트 할것이지의 여부를 지시하는 수정된 지시 플래그 및 다른 캐쉬 메모리와 동일한 데이타가 공유되는지의 여부를 지시하는 공유상태 지시 플래그를 갖는 카피-백 형 제 1 캐쉬 메모리와 제 2 캐쉬 메모리를 포함하는 제어방법이 제 2 캐쉬 메모리에서, 데이타를 독출하기 위해 공통메모리를 요구하는 단계 ; 제 1 캐쉬 메모리에서, 제 2 캐쉬 메모리에 의해 액세스의 대상 영역을 유지하고, 유효 지시 플래그 및 수정된 상태 지시 플래그가 ON이 되고 공유상태 지시 플래그가 OFF인 것을 검출해서 제 2 캐쉬 메모리로의 공통메모리의 응답을 방해하는 단계 ; 제 1 캐쉬 메모리에서, 제 2 캐쉬 메모리로 액세스의 대상인 영역에 해당하는 엔트리를 전송하고 동시에 공유 상태 지시 플래그를 ON이 되게 하는 단계 ; 제 1 캐쉬 메모리에서, 대응하는 제어장치로부터 라이트 명령에 의거하여 관련된 엔트리안으로 새로이 라이트를 하여 라이트 어드레스를 시스템 버스에 송부하는 단계 ; 제 2 캐쉬 메모리에서, 라이트 어드레스를 검출하여 대응하는 제어장치로부터 라이트 명령에 의거하여 관련된 엔트리를 무효화하는 단계 ; 및 제 1 캐쉬 메모리에서, 공유상태 지시 플래그를 OFF되게 하는 단계로 이루어진 제어방법.
- 그들 사이의 데이타의 코히어런스를 유지하기 위해 다수의 캐쉬 메모리를 제어하는 방법에 있어서, 캐쉬 메모리가 시스템 버스를 경유하여 공통메모리에 연결되어 있고, 셀프 캐쉬 메모리에 액세스 어드레스에 의해 지시되는 영역이 존재하는지의 여부를 지시하는 유효 지시 플래그 및 데이타를 다시 라이트 할것인지의 여부를 지시하는 수정된 상태 지시 플래그를 갖는 카피 백 형 제1 및 제 2 캐쉬 메모리를 포함하는 제어방법이 각각의 제1 및 제 2 캐쉬 메모리에서, 대응하는 제어장치로부터 라이트 요구에 의거하여 어드레스 및 데이타를 유지하고, 유효 지시 플래그가 ON이고 수정된 상태 지시 플래그가 OFF인 영역에 라이트 요구가 주어지는 대응하는 제어장치에 라이트 종료응답을 보내고 나서 수정된 상태 지시 플래그를 ON이 되게 하는 단계 ; 제 1 캐쉬 메모리에서, 버퍼 무효화 요구 명령을 시스템 버스에 송부하는 단계 ; 버퍼 무효화 요구 명령을 거기로부터 송부하도록 제 2 캐쉬 메모리를 대기상태가 되게하는 단계 ; 제 2 캐쉬 메모리에서, 제 1 캐쉬 메모리로부터 버퍼 무효화 요구 명령을 응답하여 그로인해 대응하는 영역의 기록을 취소해서, 유효 지시 플래그를 OFF하는 단계 ; 제 1 캐쉬 메모리에서, 대응하는 제어장치로부터 다른 라이트 요구를 받아들여서 대응하는 제어장치에 라이트 송부 응답을 보내는 단계 ; 및 제 2 캐쉬 메모리에서, 송부 대기상태를 취소하고 공통메모리에서 유지된 데이타를 저장하는 단계로 이루어진 제어방법.
- 그들 사이의 데이타의 코히어런스를 유지하기 위해 다수의 캐쉬 메모리를 제어하는 방법에 있어서, 캐쉬 메모리가 시스템 버스를 경유하여 공통메모리에 연결되어 있고, 셀프 캐쉬 메모리에 액세스 어드레스에 의해 지시되는 영역이 존재하는지의 여부를 지시하는 유효 지시 플래그 및 데이타를 다시 라이트 할것이지의 여부를 지시하는 수정된 상태 지시 플래그를 갖는 카피-백 형 제1 및 제 2 캐쉬 메모리를 포함하는 제어방법이 각각의 제1 및 제 2 캐쉬 메모리에서, 대응하는 제어장치로부터 라이트 요구에 의거하여 어드레스 및 데이타를 유지하고, 유효 지시 플래그가 ON이고 수정된 상태 지시 플래그가 OFF인 영역에 라이트 요구가 주어지는 대응하는 제어장치에 라이트 종료응답을 보내고나서 수정된 상태 지시 플래그를 ON이 되게 하는 단계 ; 제 1 캐쉬 메모리에서, 버퍼 무효화 요구 명령을 시스템 버스에 보내는 단계 ; 제 2 캐쉬 메모리에서, 제 1 캐로부터 버퍼 무효화 요구 명령을 응답하여 그로인해 대응하는 영역의 기록을 취소해서 유효 지시 플래그를 OFF하는 단계 ; 제 1 캐쉬 메모리에서, 대응하는 제어장치로부터 다른 라이트 요구를 받아서 대응하는 제어장치에 라이트 종료응답을 보내는 단계 ; 제 2 캐쉬 메모리에서, 버퍼 무효화 요구 명령을 취소하여 라이트 명령에 의해 공통메모리 상에 유지된 데이타를 나타나도록 하는 단계 ; 제 1 캐쉬 메모리에서, 제 2 캐쉬 메모리로부터 일시적인 방해신호가 나타나도록 하는 단계 ; 공통메모리에서, 재시도 요구가 라이트 명령에 응답하는 단계 ; 제 1 캐쉬 메모리에서, 이미 나타났던 엔트리를 라이트 하고, 공통메모리에서, 유효 지시 플래그를 OF되게 하는 단계 ; 및 제 2 캐쉬 메모리에서, 라이트 명령을 송부해서 그로인해 수정된 상태 지시 플래그를 OFF하는 단계로 이루어진 제어방법.
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP?2-206851 | 1990-08-06 | ||
JP2206851A JPH0492937A (ja) | 1990-08-06 | 1990-08-06 | キャッシュメモリ制御方式 |
JP2210511A JPH0498339A (ja) | 1990-08-10 | 1990-08-10 | バッファ無効化制御方式 |
JP2210512A JPH0498352A (ja) | 1990-08-10 | 1990-08-10 | バッファ無効化制御方式 |
JP?2-210512 | 1990-08-10 | ||
JP?2-210511 | 1990-08-10 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR940005769B1 true KR940005769B1 (ko) | 1994-06-23 |
Family
ID=27328692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019910013593A KR940005769B1 (ko) | 1990-08-06 | 1991-08-06 | 캐쉬 메모리를 포함하는 멀티프로세서 시스템 및 그들사이의 데이타의 코히어런스를 유지하기 위한 캐쉬 메모리를 제어하는 방법 |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP0470574A3 (ko) |
KR (1) | KR940005769B1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5724549A (en) * | 1992-04-06 | 1998-03-03 | Cyrix Corporation | Cache coherency without bus master arbitration signals |
JP3489967B2 (ja) | 1997-06-06 | 2004-01-26 | 松下電器産業株式会社 | 半導体記憶装置及びキャッシュメモリ装置 |
US7296259B2 (en) * | 2002-09-11 | 2007-11-13 | Agere Systems Inc. | Processor system with cache-based software breakpoints |
JP5012016B2 (ja) * | 2006-12-28 | 2012-08-29 | 富士通株式会社 | キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0198574A3 (en) * | 1985-02-05 | 1989-11-29 | Digital Equipment Corporation | Apparatus and method for data copy consistency in a multi-cache data processing system |
-
1991
- 1991-08-05 EP EP19910113197 patent/EP0470574A3/en not_active Withdrawn
- 1991-08-06 KR KR1019910013593A patent/KR940005769B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP0470574A3 (en) | 1992-07-08 |
EP0470574A2 (en) | 1992-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5682516A (en) | Computer system that maintains system wide cache coherency during deferred communication transactions | |
KR0163231B1 (ko) | 입/출력 채널 제어기, 멀티 프로세싱 시스템 및 데이타 프로세싱 방법 | |
US4858111A (en) | Write-back cache system using concurrent address transfers to setup requested address in main memory before dirty miss signal from cache | |
EP0748481B1 (en) | Highly pipelined bus architecture | |
KR19990045059A (ko) | 캐시 메모리 시스템 | |
US5509133A (en) | Data processing system with an enhanced cache memory control | |
JP2708943B2 (ja) | キャッシュメモリ制御装置 | |
WO1997004392A1 (en) | Shared cache memory device | |
KR940005769B1 (ko) | 캐쉬 메모리를 포함하는 멀티프로세서 시스템 및 그들사이의 데이타의 코히어런스를 유지하기 위한 캐쉬 메모리를 제어하는 방법 | |
CN106126450A (zh) | 一种应对多核处理器监听访问冲突的Cache设计结构及方法 | |
US6021472A (en) | Information processing device and control method thereof | |
JP3757768B2 (ja) | ベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式 | |
JPH03230238A (ja) | キャッシュメモリ制御方式 | |
JP3039391B2 (ja) | メモリシステム | |
JP3340047B2 (ja) | マルチプロセッサシステムおよび複製タグの制御方法 | |
JP4091171B2 (ja) | キャッシュフラッシュ方法および装置 | |
JP3145479B2 (ja) | マルチプロセッサシステムとそのキャッシュメモリ制御方法および装置 | |
JPH10222423A (ja) | キャッシュメモリ制御方式 | |
KR20040047398A (ko) | 캐쉬 메모리를 이용한 데이터 억세스 방법 | |
JP2791319B2 (ja) | データ処理装置 | |
JP2680293B2 (ja) | データ処理装置及びキャッシュメモリ制御方法 | |
JP3287239B2 (ja) | 階層キャッシュメモリとそのステート遷移制御方法 | |
JPH0644261B2 (ja) | マルチプロセッサシステムにおけるキャッシュ制御方式 | |
JP2923273B2 (ja) | データ処理システム | |
KR0155532B1 (ko) | 멀티프로세서 시스템에서의 되쓰기 중에 있는 데이터에 대한 캐쉬 일치성 보장장치 |
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: 20070608 Year of fee payment: 14 |
|
LAPS | Lapse due to unpaid annual fee |