KR0173854B1 - 캐시메모리제어 방법 및 장치 - Google Patents

캐시메모리제어 방법 및 장치 Download PDF

Info

Publication number
KR0173854B1
KR0173854B1 KR1019900017412A KR900017412A KR0173854B1 KR 0173854 B1 KR0173854 B1 KR 0173854B1 KR 1019900017412 A KR1019900017412 A KR 1019900017412A KR 900017412 A KR900017412 A KR 900017412A KR 0173854 B1 KR0173854 B1 KR 0173854B1
Authority
KR
South Korea
Prior art keywords
address
cache memory
array
entry
logical
Prior art date
Application number
KR1019900017412A
Other languages
English (en)
Other versions
KR910008576A (ko
Inventor
도시오 도이
다께시 다께모또
야스히로 나까쯔까
Original Assignee
미다 가쓰시게
가부시끼가이샤 히다찌세이사꾸쇼
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 미다 가쓰시게, 가부시끼가이샤 히다찌세이사꾸쇼 filed Critical 미다 가쓰시게
Publication of KR910008576A publication Critical patent/KR910008576A/ko
Application granted granted Critical
Publication of KR0173854B1 publication Critical patent/KR0173854B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/10Address translation

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)
  • Guiding Agricultural Machines (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

멀티프로세서시스템에 대한 집적회로구조의 연산처리장치는 가상기억방식에 따라 동작하는 연산부와 상기 연산부에서의 논리어드레스에 의해 지정된 엔트리를 갖는 캐시메모리를 포함한다. 캐시메모리를 제어하기 위해, 엔트리에 캐시메모리와 같은 논리어드레스에 의해 지정된 엔트리를 포함하고 캐시메모리의 대응하는 엔트리에 대한 제어정보를 기억하는 제1의 어드레스어레이와 물리어드레스에 의해 지정된 엔트리를 갖고 물리어드레스를 논리어드레스로 변환하기위한 변환정보를 기억하는 제2의 어드레스어레이가 마련된다. 무효화가 실행되는 물리어드레스가 외부로부터의 캐시메모리무효화요구에 따라 입력될 경우에, 물리어드레스를 사용하여 제2의 어드레스어레이를 액세스하고 제2의 어드레스어레이에서 변환정보를 얻어 무효화될 논리어드레스를 생성한다. 제1의 어드레스어레이는 생성된 논리어드레스 사용하여 액세스되어 제어정보에 대한 무효화처리를 실행한다.

Description

캐시메모리 제어 방법 및 장치
제1도는 본 발명의 1실시예에 따른 연산처리장치 또는 프로세서의 일반적인 구성을 도시한 블록도.
제2도 a 및 제2도 b는 각각 제1도에 도시한 프로세서를 포함하는 2개의 컴퓨터시스템의 개략적인 일반구성을 도시한 블록도.
제3도 a 및 제3도 b는 각각 제1도에 도시한 프로세서에 사용된 논리어드레스와 물리어드레스의 어드레스 구조를 도시한 도면.
제4도 a 및 제4도 b는 각각 제1도에 도시된 프로세서에 사용된 논리어드레스어레이와 물리어드레스어레이의 내부구조를 도시한 도면.
제5도는 제1도에 도시된 프로세서에 의해 실행된 캐시메모리무효화처리동작을 설명한 플로우챠트.
제6도는 본 발명의 다른 실시예에 따른 정보처리 장치나 프로세서의 일반적인 구성을 도시한 블록도.
제7도는 a 및 제7도 b는 각각 제1도 및 제6도에 도시된 프로세서의 구조를 비교해서 설명하는 개략적인 도면.
제8도 a 및 제8도 b는 제6도에 도시된 프로세서에 사용된 논리어드레스와 물리어드레스의 어드레스 구조를 설명하는 도면.
제9도 a 및 제9도 b는 각각 제6도에 도시된 프로세서에 사용된 논리어드레스어레이와 물리어드레스어레이의 내부구조를 도시한 도면.
제10도는 제6도에 도시된 프로세서에 의해 실행된 캐시메모리무효화처리동작을 설명하는 플로우챠트.
제11도는 제2층 캐시메모리와 논리어드레스어레이를 제외한 부분이 1개의 반도체칩내에 집적된 멀티프로세서 시스템에 적용된 것으로서, 제6도에 도시된 프로세서의 수정을 도시한 블록도.
제12도는 주지의 캐시메모리무효화처리를 설명하는 기능블럭도.
* 도면의 주요부분에 대한 부호의 설명
11,61 : 연산처리장치 12,62 : 연산부
13 : 캐시메모리 63 : 제1층 캐시 메모리
68 : 제2층 캐시 메모리 18,69 : 논리어드레스어레이
19,70 : 물리어드레스어레이 26 : 주메모리
27 : 입출력처리장치 14,64 : 어드레스변환부
15,65 : 논리어드레스레지스터 16,66 : 어드레스출력레지스터
17,67 : 어드레스입력레지스터 63 : 셀렉터
본 발명은 각각의 프로세서에 공통인 주메모리와 다수의 프로세서를 포함하는 멀티프로세서시스템과 같은 데이터처리시스템에 관한 것이다. 특히 본 발명은 캐시메모리나 메모리들을 무효화 또는 제거하는 처리를 제어하는 캐시메모리제어방법 및 장치에 관한 것이다.
주메모리내에 기억된 데이터는 블록단위로 캐시메모리에 맵(map)된다. 이 경우에, 캐시메모리에는 대응하는 주메모리블럭의 어드레스를 유지하는 어드레스어레이 또는 디렉토리 라고도 함)가 마련된다.
연산처리장치나 프로세서에 의해 주메모리를 참조하는 경우에, 우선 어드레스어레이에 등록된 어드레스와 참조 어드레스를 비교한다. 비교하여 일치하면, 캐시메모리내의 대응블럭을 참조한다. 그래서 액세스시간을 단축할 수 있다. 또한, 주어진 또는 임의의 주메모리 블록이나 칼럼을 주어진 또는 임의의 캐시메모리블럭에 랩핑하는 방식을 풀 어소시에이티브(full associative)방식이라 하며, 1대1 대응관계로 캐시메모리블럭에 주메모리컬럼을 맵핑하는 방식을 다이렉트 맵핑(direct mapping) 방식이라 한다. 또한 캐시메모리 블록의 1개 세트에 주메모리상의 칼럼을 맵핑하는 것을 세트 어소시에이티브 맵핑(set associative mapping)이라 한다.
다수의 프로세서가 주메모리를 공유하는 멀티프로세서 시스템에서는 각각의 프로세서와 관련된 캐시메모리의 내용이 항상 최신이 되도록 제어할 필요가 있다.
따라서 1개의 캐시메모리의 내용을 갱신(리라이트)하는 경우에는, 모든 다른 캐시메모리를 관련블럭에 대해 무효화시켜야 한다. 따라서, 무효화될 블록은 최신 데이터를 가질 수 있다. 이 경우에 캐시메모리의 무효화에 앞서 이 블록을 주메모리에 라이트 백(back)할 필요가 있다.
종래의 캐시메모리 무효화 제어시스템에서는,
예를들면 일본국 특허 공개공보소화 62-214453에 기재된 방식이 있다. 제12도에 따르면 종래시스템 경우에, 캐시메모리를 제어하기 위해 논리어드레스로 액세스되는 논리태그메모리(또는 논리 어드레스어레이) (71)과 물리리태그메모리(또는 물리 어드레스어레이) (72)가 마련되어 이들을 사용하여 무효화 처리의 고속화를 도모하고 있다.
또, 캐시메모리 자체는 제12도의 설명에서 생략되어 있다.
제12도에 따라서, 상기 태그메모리(71, 72)로의 어드레스 등록동작을 설명한다. 임의의 논리어드레스에서의 액세스가 캐시메모리내에서 미스히트(mishit)로 된 경우에, 새로운 블록은 주메모리에서 리드되어 프로세서로 전송된다. 동시에, 상기 어드레스를 포함한 새로운 블록은 캐시메모리내에 등록된다. 이를 위해 논리태그메모리(71)에는 페이지내 어드레스 8비트+페이지어드레스 1비트로 구성된 제4내지 제12비트(9비트)의 세트(어드레스)에 대응하여 논리어드레스레지스터(15)내의 논리어드레스(32비트)중 제13내지 제31비트(19비트)가 등록되어 있다. 반면에 물리태그메모리(72)에는 동일세트 어드레스에 대응하여 어드레스 변환(75)에 의한 어드레스 변환후의 물리어드레스(24비트)의 제12-제23비트(합계 12비트)가 등록되어 있다. 동일 세트어드레스로의 등록은 멀티플렉서(73)을 거쳐 논리어드레스 레지스터(15)에서 태그메모리(71), (72)에 동일논리어드레스를 공급하면 좋다.
다음에, 무효화처리의 제어를 설명한다. 다른 프로세서에서 전송된 무효화어드레스가 어드레스입력레지스터(17)에 세트된다. 이 세트어드레스의 제4-제11비트는 물리어드레스와 논리어드레스가 서로 동일한 페이지내 오프세트어드레스를 나타내기 때문에, 제4-제11비트는 멀티프렉서(73)을 거쳐 물리태그메모리(72)에 입력된다. 또, 제12비트는 물리어드레스의 제12비트에 따라 결정될 수 없는 값이다. 이러한 이유 때문에 0은 카운터(73)에 의해 제12비트의 값으로서 발생되고 물리태그메모리(72)는 리드되어, 비교기(77)에 의해 어드레스입력레지스터(17)의 제12-제23비트(12비트)와 비교된다. 비교해서 일치가 될 경우에 제어장치(76)은 논리태그메모리(71)의 관련블럭의 플래그를 0으로 리세트한후 무효화처리를 실행한다. 반면에 비교해서 불일치가 검색되는 경우에는, 값 1이 카운터(73)에 의해 발생되어 제12비트를 1로 하여 물리태그메모리(72)를 액세스한다. 이 경우에 논리어드레스와 세트어드레스는 서로 1비트 오버랩되므로, 카운터에 의한 2회의 카운트 동작 및 액세스 동작이 요구된다. 그러나 논리어드레스와 세트어드레스 사이의 오버랩이 2비트 이상으로 되는 경우에는, 카운터의 비트수를 오버랩의 비트수와 같게 설정하여 여러회의 카운트동작을 실행하는 것에 비해 몇번의 액세스동작을 실행할 필요가 있다. 특히 2비트의 오버랩에서는 최대 4회의 액세스(22=4)동작이 요구된다.
유사하게, 3비트의 오버랩에서는 최대 8회의 액세스(23=8)동작이 실행되어야 한다. 4비트의 오버랩에서는 최대 16회(24=16)의 액세스 동작이 실행될 필요가 있다.
상술한 바와 같이 종래의 시스템에서는 캐시메모리의 용량이 증가하여 논리어드레스내의 페이지어드레스와 세트어드레스와의 오버랩의 비트의 수가 증가될 경우에 캐시메모리의 블록무효화처리에 수반하여 물리태그메모리의 액세스 회수가 증가된다. 즉, 캐시메모리의 엔트리 지정 비트수가 1비트 증가하는 것은 캐시메모리의 엔트리 수가 2배로 되는 것이다.
이 경우에 액세스되어야 할 물리태그메모리의 최대회수는 2회에서 4회로 증가된다. 좀더 상세히 말하면, 캐시메모리의 용량이 2배가 될 경우에 물리태그메모리의 액세스 회수도 역시 2배로 된다. 그러므로, 캐시메모리의 블록무효화처리에 요하는 시간이 바람직하지 못하게 증가하는 문제가 발생한다. 또, 본 출원인과 동일한 출원인에 의해 1990년 5월 17일 출원된 u.s. 출원 No. 07/525080과 JP-A 62-80742(1987. 4. 14.)에는, 캐시메모리의 제어에 포함된 오버헤드를 태그메모리(즉, 캐시메모리의 어드레스어레이)의 회수를 감소시켜 저감하는 개론이 세트어소시에이티브 맵핑형의 캐시메모리 제어시스템에 액세스된 것에 대해 기재하고 있다.
본 발명의 목적은 캐시메모리의 용량이 증가하여도 태그메모리(즉, 어드레스어레이) 회수를 감소시키는 것에 의해 블록 무효화처리에 요하는 시간을 줄일 수 있는 캐시메모리 제어방법 및 장치를 제공하는 것이다.
본 발명의 또다른 목적은 캐시메모리가 계층적인 다층구조내에서 실행되고 적어도 CPU를 포함하는 연산처리 장치와 제1층 캐시메모리가 1개의 반도체 칩상의 집적된 구조내에서 실행되는 멀티프로세서시스템을 제공하는 것이다.
상기 목적을 달성하기 위해 본 발명의 캐시메모리제어방식은 캐시메모리와 같은 논리어드레스에 의해 지시되는 엔트리를 갖고 대응하는 캐시메모리의 엔트리의 제어정보를 기억하는 제1의 어드레스어레이, 물리어드레스에 의해 지정되는 엔트리를 갖고 물리어드레스를 논리어드레스로 변환하기 위한 변환정보를 각 엔트리에 기억하는 제2의 어드레스어레이, 캐시메모리의 무효화 요구에 따라 무효화를 실행할 물리어드레스를 입력하는 입력수단, 입력수단에서 출력된 물리어드레스로 액세스하는 것에 의해 제2의 어드레스어레이의 상기 변환정보에 따라 무효화될 논리어드레스르르 생성하는 논리어드레스 생성수단과 생성된 논리어드레스에 따라 제1의 어드레스어레이를 액세스하는 것에 의해 제어 정보상의 무효화 처리를 실행하는 수단을 포함하는 것을 특징으로 한다.
본 발명의 제2의 특징에 따르면, 제2의 어드레스어레이는 제1의 어드레스어레이에 등록 가능한 엔트리 수보다 더많은 수의 등록 가능한 엔트리 수가 마련되어 있다.
또한, 본 발명의 제3의 특징에 따르면 물리어드레스를 논리어드레스로 어드레스 변환하기 위해 제2의 어드레스어레이에 기억된 변환정보는 제1의 어드레스어레이의 엔트리를 지정하기 위해 논리어드레스의 일부에 의해 구성되며, 이 일부는 물리어드레스와의 공통 부분을 뺀 논리어드레스의 나머지 부분에 해당한다.
본 발명의 제4의 특징에 따르면, 멀티프로세서시스템내에서 사용하기 위한 캐시메모리 제어장치는 제1층 캐시메모리와 같은 논리어드레스에 의해 지정된 엔트리를 갖고 대응하는 제1층 캐시메모리의 엔트리의 제어정보를 기억하는 제1의 어드레스어레이, 제2층 캐시메모리와 같은 물리어드레스에 의해 지정된 엔트리를 갖고 각 엔트리에 제1의 어드레스어레이의 엔트리에 대응한 제2층 캐시메모리의 카피(copy)가 제1층 캐시메모리내에 존재하는지의 여부를 나타내는 정보와 물리어드레스를 논리어드레스로 변환하기 위한 추가변환정보를 기억하는 제2의 어드레스어레이, 무효화가 외부로부터의 캐시메모리 무효화 요구에 따라 무효화가 실행될 물리어드레스가 입력되면, 물리어드레스를 사용하여 제2의 어드레스어레이를 액세스하고, 제2의 어드레스어레이로부터 얻은 추가 변환정보에 따라 무효화될 논리어드레스를 발생하는 논리어드레스 생성수단, 논리어드레스를 사용하여 제1의 어드레스어레이를 액세스하고, 제1층 캐시메모리내의 관련 제어정보에 대해 무효화처리를 실행하는 무효화 수단을 포함한다.
본 발명의 제4의 특징에 따른 제어시스템과 관련하여, 또한 제2의 어드레스어레이가 제1의 어드레스어레이에 등록 가능한 엔트리의 수보다 많은 등록가능한 엔트리를 마련하고 적어도 논리어드레스 생성수단과 무효화수단을 포함하는 연산부와 제1층 캐시메모리가 1개 기판의 칩상에서 집적회로서 실행된다.
본 발명의 구성과 동작을 일반적으로 설명하면 논리어드레스어레이에 부가하여 물리어드레스어레이(즉, 물리태그메모리)가 마련되어 있다. 이러한 경우, 종전의 방식에서는 물리어드레스어레이가 논리어드레스에 의해 어드레스되고, 물리페이지 어드레스태그와 제어플래그는 각 엔트리에 등록되어 있다. 이에 대해 본 발명에 따르면, 물리어드레스어레이가 물리어드레스에 의해 액세스되고, 논리어드레스로의 역변환을 실행한다. 이를위해 본 발명의 물리어드레스어레이에는, 각 엔트리에 물리어드레스를 논리어드레스로 변환하기 위한 변환정보(논리페이지어드레스태그)를 기억하고 있다. 이러한 구성으로, 물리어드레스에 의해 무효화될 엔트리를 나타내는 무효화 또는 제거 요구는 물리어드레스로 물리어드레스어레이를 액세스하여 처리 가능하고, 관련 엔트리의 논리페이지어드레스태그를 리드하여 무효화가 실행되는 캐시메모리의 논리어드레스는 무효화될 엔트리를 지정하는 물리어드레스의 페이지내 오프세트어드레스와 논리페이지어드레스태그를 리드함으로써 생성할 수 있다.
생성된 논리어드레스를 사용하여 논리어드레스어레이를 액세스하는 것에 의해 논리어드레스어레이의 대응하는 제어플래그는 off로 리세트되어 무효화처리가 완료된다.
이러한 방법으로, 캐시메모리의 용량이 아무리 클지라도 무효화 처리에 대한 어드레스어레이의 액세스 회수는 1회만으로 충분하다.
어드레스어레이의 엔트리충돌빈도를 줄이기 위하여, 논리어드레스에 의해 지정된 어드레스어레이의 엔트리의 수보다 물리어드레스에 의해 지정된 어드레스어레이의 엔트리의 수를 크게 하는 것이 유효하다. 이러한 결합으로, 논리어드레스어레이에서 충돌이 발생한 경우에는, 논리어드레스어레이에서 충돌이 발생한 경우에는 등록하지 않은 것만으로 끝나지만 물리어드레스어레이에서 충돌이 발생한 경우에는 캐시메모리에 등록 가능한 영역이 무효로 된다는 것을 알 수 있다.
또한 본 발명의 또다른 특징에 의하면 2개층의 캐시메모리를 마련한 프로세서에 있어서, 제2층 캐시메모리를 제어하는 어드레스어레이에, 엔트리에 대응하는 카피가 제1층 캐시메모리내에 존재하는지의 여부를 지시하는 플래그를 기억하는 것이 제안되어 있다.
이하 본 발명의 실시예를 도면에 따라 상세히 설명한다. 제1도는 본 발명을 적용한 연산 처리장치나 프로세서의 일반적인 구성을 도시하는 블록도이다.
제1도에서 (11)은 캐시메모리무효화처리를 포함하는 캐시재어처리를 실행하는데 적합한 연산처리장치, (12)는 프로그램을 실행하여 동작이나 처리를 실행하는 연산부, (13)은 주메모리에 기억된 데이터블럭의 카피를 기억하는 세트 어소시에이티브형의 캐시메모리, (14)는 논리어드레스를 물리어드레스로 변환하는 변환룩어사이드(Look aside) 버퍼와 같은 어드레스변환부, (15)는 캐시메모리(13)내에 관련 데이터블럭이 기억되어 있는가 없는가를 판별하기 위해, 논리어드레스어레이를 참조하는 논리어드레스를 세트하는 논리어드레스레지스터, (16)은 어드레스변환에 따른 물리어드레스를 세트하는 어드레스출력레지스터, (17)은 캐시메모리 무효화처리를 실행하기 위해 참조용의 물리어드레스를 세트하는 어드레스입력레지스터, (18)은 논리어드레스에 의해 액세스 가능하며, 어소시에이트 블록이 유효한지 아닌지를 지시하는 제어플래그와 캐시메모리(13)에 기억된 데이터블럭의 선두의 물리페이지어드레스를 엔트리로 기억하는 논리어드레스어레이(LAA),(19)는 물리어드레스에 의해 액세스되고, 어소시에이트블럭이 유효한지 아닌지를 지시하는 제어플래그, 캐시메모리(13)에 기억된 데이터블럭의 물리페이지어드레스태그, 이에 대응하는 논리페이지어드레스태그를 엔트리로 기억하는 물리어드레스어레이(PAA), SEL(11)은 등록 또는 참조시에 논리 어드레스레지스터(15)로부터 캐시메모리(13)으로의 액세스, 또는 무효 처리시에 어드레스 입력 레지스터(17)로부터 물리어드레스어레이(PAA) (19)로의 액세스중 어느 한쪽을 선택하는 셀렉터, SEL(12)는 어드레스 출력레지스터(16)으로부터 물리어드레스어레이(19)로의 액세스 또는 어드레스입력레지스터(17)로부터의 액세스중 하나를 선택하는 셀렉터, SEL(13)은 참조시에 어드레스출력레지스터에서의 액세스나 어드레스입력레지스터에서의 액세스중 하나를 선택하는 셀렉터, CMP(11)은 어드레스변환에 따른 물리페이지어드레스와 물리어드레스어레이(PAA)(19)의 내용을 나타내는 물리페이지어드레스태그를 비교하는 비교기, CMP(12)는 어드레스출력레지스터(16) 또는 어드레스입력레지스터(17)의 물리페이지어드레스태그와 물리어드레스어레이(PAA) (19)의 내용을 나타내는 물리페이지어드레스태그를 비교하는 비교기, A-BUS는 어드레스버스, D-BUS는 데이터버스를 나타낸다.
제1도에 도시된 연산 처리장치나 프로세서의 실시예를 설명함에 있어서 다른것들 사이에서 가장 중요한 특징은 다음과 같다.
(a) 논리페이지어드레스태그를 기억하는데 사용되고 물리어드레스에 의해 어드레스되는 물리어드레스어레이(PAA)(19)를 마련한다.
(b) 캐시메모리무효화처리의 실행시에 어드레스입력레지스터에 배치된 페이지내오프세트어드레스를 출력하는 라인 a와 물리어드레스어레이(19)내에 배치된 논리페이지어드레스태그를 출력하는 라인 b를 마련하며, 셀렉터 SEL(11)을 거쳐 논리어드레스어레이(18)에 액세스를 인에이블하기 위해 페이지내 오프세트어드레스와 논리페이지어드레스태그를 머지(merge) 한다.
제2도 a와 제2도 b는 제1도에 설명된 연산처리장치를 포함하는 컴퓨터시스템의 개략적인 구조를 도시한 것이다.
제2도 a 및 제2도 b에서 (21)-(25)은 각각 연산처리장치, (26)은 주메모리(MM), (27)은 입출력처리장치(Iop), (28)은 어드레스버스, (29)는 데이터버스를 나타낸다.
제2도 a에서 연산처리장치(21), 주메모리(26), 입출력처리장치(27)은 어드레스버스(28)과 데이터버스(29)를 거쳐 서로 접속되어 있다. 연산처리장치(21)는 주메모리에 엑세스하는데 걸리는 시간을 단축하기 위한 캐시메모리(도시되지 않음)를 내부에 포함한다. 이를 위해 주메모리(26)의 내용의 일부의 카피를 캐시메모리가 유지한다. 한편 입출력처리장치(27)은 주변처리장치(도시되지 않음)와 주메모리(26)사이의 데이터 전송을 행한다.
연산처리장치(21)내의 캐시메모리에 내용의 카피가 존재하는 영역의 주메모리에 기억된 내용을 입출력처리장치(27)이 변경하는 경우에는, 주메모리의 내용과 캐시메모리의 내용 사이에 불일치가 나타난다. 따라서 메모리 내용 사이의 불일치에 의한 오동작을 방지하기 위하여 주메모리의 내용을 변경함과 동시에 주메모리(26)의 내용일부를 카피하여 유지하는 캐시메모리의 내용을 무효화할 필요가 있다. 이러한 이유 때문에 입출력처리장치(27)은 주메모리(26)의 내용을 변경한 주메모리의 영역의 어드레스(물리어드레스)를 A-Bus를 거쳐 프로세서나 연산처리장치(22)에 통지한다. 연산처리장치(21)은 상기 물리어드레스를 받아서(제1도에 도시된 어드레스입력레지스터(17)에 배달됨) 주메모리의 관련영역의 카피가 캐시메모리에 존재하는지 여부를 체크한다. 캐시메모리에 존재하는 경우에는 카피부분을 무효화한다. 다른 방법으로는, 제1도에 도시한 논리어드레스어레이(18)에 대한 대응하는 제어플래그를 OFF 상태로 설정한다.
다음 제2도 b에 있어서, 다수의 연산처리장치 또는 프로세서를 포함하는 멀티프로세서구조의 컴퓨터시스템을 도시하고 있다. 상기 컴퓨터시스템의 경우에 제2도 a에 설명한 동작(입출력처리장치(27)을 거쳐 주메모리(26)의 내용변경의 통지)에 부가하여 연산처리장치 프로세서(22-25)가 주메모리의 내용을 변경한 경우에 변경된 내용의 어드레스를 다른 프로세서에 통지하여 다른 프로세서의 캐시메모리의 대응하는 카피부분을 무효화할 필요가 있다.
제3도 a 및 3도 b는 각각 제1도에 도시한 연산처리장치에 사용된 논리어드레스와 물리어드레스의 비트구성을 도시한 것이다.
제3도 a에 있어서, 논리어드레스는 32비트로 구성되고 제12-제31비트(합계20비트)의 논리페이지어드레스와 제10-제11비트(합계12비트)의 페이지내 오프세트어드레스를 포함한다. 그리고 논리어드레스와 물리어드레스의 페이지내오프세트 어드레스의 비트내용은 각각 동일하다.
논리어드레스어레이 또는 LAA(18)을 액세스하기 위한 LAA(논리어드레스어레이) 엔트리지정어드레스는 제4-제14비트(합계 11비트)로 구성되고 8비트의 페이지내 오프세트어드레스와 3비트의 논리페이지어드레스를 포함한다. 그러므로 논리어드레스내의 페이지어드레스와 세트어드레스 사이의 오버랩의 비트수는 제12-제14비트 사이의 3비트이다.
물리어드레스어레이 또는 PAA(19)에 기억된 PAA(물리어드레스어레이) 논리페이지어드레스태그는 제12-제14비트(3비트)로 구성되고 논리어드레스의 페이지어드레스와 세트어드레스 사이의 오버랩 부분에 대응한다.
물리어드레스어레이(19)에 논리페이지어드레스태그를 기억하는 것에 의해 내부 페이지오프세트어드레스와 태그를 머지하면 논리어드레스를 완성할 수 있다.
다음에 제3도 b에서 물리어드레스는 24비트로 구성되고 제12-제23비트(합계12비트)의 물리페이지어드레스와 제10-제11(합계 12비트)의 페이지내 오프세트어드레스를 포함한다. 물리어드레스어레이 또는 PAA(19)를 액세스하기 위한 PAA 엔트리지정어드레스는 제4-제14비트(11비트)로 구성되고 18비트의 페이지내오프세트어드레스와 3비트의 물리페이지어드레스를 포함한다. PAA엔트리지정어드레스의 내용은 오버랩부분의 3비트만이 LAA엔트리지정어드레스의 내용과 다르다. 물리어드레스어레이(19)에 기억된 PAA물리페이지어드레스태그는 제15-제23비트(9비트)로 구성되고 물리페이지어드레스의 일부를 구성한다. 또한 무효화처리의 실행에 사용된 무효화블럭지정어드레스는 제4-제23비트(20비트)로 구성되고 제1도에 도시된 어드레스입력레지스터(17)에 배치된 무효화블럭지정어드레스의 PAA엔트리지정어드레스부분은 물리어드레스어레이(19)를 액세스하여 관련 엔트리의 PAA물리페이지어드레스태그를 리드한다. 물리어드레스어레이 또는 PAA(19)에서 리드된 PAA물리페이지어드레스캐그는 무효화블럭지정어드레스중의 대응하는 제15-제23비트(9비트)와 비교기 CMP(12)에서 비교된다. 비교가 일치되고 이 엔트리의 제어플래그가 세트되면, 논리페이지어드레스태그는 물리어드레스어레이(19)에서 리드된다. 그리고 상기 태그는 논리어드레스어레이(18)을 액세스하도록 무효화블럭지정어드레스의 페이지내 오프세트어드레스 부분과 머지된다. 관련엔트리에 대한 제어플래그를 OFF로 바꾸는 것에 의해 캐시메모리(13)에 기억된 관련 데이터블럭을 무효화할 수 있다.
다음에는 제1도를 사용하여 본 발명을 적용한 연산처리장치의 동작을 상세히 설명한다.
연산부(실행부) (12)가 처리중에 메모리를 액세스할 경우, 연산부는 메모리의 논리어드레스(이하 대상메모리라 함)를 논리어드레스레지스터(15)에 출력한다. 다음에 대상 메모리의 카피가 캐시메모리(13)내에 존재하는지의 여부를 체크하기 위하여 논리어드레스 레지스터(15)의 출력을 셀렉터 SEL(11)이 선택하고, 논리어드레스레지스터(15)에서 출력된 논리어드레스에 의해 논리어드레스어레이(18)을 액세스하여 관련 엔트리를 검색한다.
제3도 A에 있어서 논리어드레스어레이(18)과 캐시메모리(13)의 엔트리의 지정은 페이지내 오프세트어드레스의 상위 8비트와 하위 3비트(합계11비트)를 사용하여 실행된다. 동시에 캐시메모리(13)은 상술한 지정어드레스에도 역시 액세스된다. 논리어드레스어레이(18)과 캐시메모리(13)의 액세스에 병행하여 논리페이지어드레스를 물리페이지어드레스로 변환한다. 이를 위해 예를들면 일본국 문헌 정보처리(Information Processing) VOL.21,NO.4 (1980년 4월) p332-p340에 설명된 TLB(Translation Lookaside Buffer) 등을 사용할 수 있다.
논리어드레스어레이(18)에 액세스되어 관련엔트리에서 리드된 물리페이지어드레스는 어드레스변환부(14)에 의해 실행된 변환에 의해 물리페이지어드레스와 비교기 CMP(11)에서 비교된다.
비교기 CMP(11)에 의한 비교가 상술한 어드레스의 양사이에서 일치할 경우와 논리어드레스어레이(18)의 제어 플래그가 관련엔트리가 유효함을 지시할 경우에, 이것은 대상메모리의 카피가 캐시메모리(13)내에 존재함을 나타낸다. 그러므로 연산부(12)가 캐시메모리(13)에서 리드된 데이터블럭을 사용하기 위해 캐시메모리(13)을 액세스한다.
제4도 a 및 제4도 b는 각각 제1도에 도시된 논리어드레스어레이와 물리어드레스어레이에 기억된 데이터의 내부구조를 설명한 것이다.
제4도 a에 도시된 논리어드레스어레이(18)의 경우 각 엔트리는 LAA엔트리지정어드레스로 지정된다.
논리어드레스어레이(18)의 각 엔트리의 내용은 캐시메모리으 대응하는 엔트리의 물리페이지어드레스와 제어플래그로 구성되어 있다. 제어플래그는 캐시메모리의 대응하는 엔트리가 유효인지 무효인지를 지시한다.
예를들면 관련 엔트리가 유효하면 논리 1을, 무효이면 0을 각각 기억하면 좋다.
한편 제4도 b에 도시된 물리어드레스어레이(19)의 경우, 각 엔트리는 PAA 엔트리지정어드레스로 지정된다. 물리어드레스어레이의 각 엔트리의 내용은 엔트리지정에 사용되지 않은 물리페이지어드레스의 일부를 기억한 페이지어드레스태그, LAA 엔트리지정어드레스로 지정된 캐시메모리(13)의 대응하는 엔트리에 필요한 논리페이지어드레스태그와 대응하는 엔트리가 캐시메모리내에 존재하는지의 여부를 지시하는 제어플래그를 포함한다.
상술한 태그중 논리페이지어드레스태그는 본 발명에 따라 새롭게 기억된 내용을 나타낸다.
제5도는 제1도에 도시된 장치내에서 실행된 캐시메모리무효화처리를 설명하는 플로우챠트이다.
제1도에 도시된 연산 처리장치에 대해서 제2도 a 및 제2도 b에 도시된 입출력처리장치(27) 및 제2도 b에 도시된 연산처리장치와는 다른 연산처리장치에서 캐시메모리무효화 요구가 나온다고 가정한다.
제1도에 있어서 무효화도리 영역의 물리어드레스가 어드레스버스 A-BUS를 거쳐 물리어드레스입력레지스터(17)에 의해 페치된다(스텝 51). 어드레스입력레지스터(17)은 제3도 b에 도시된 구조이다. 물리어드레스어레이(19)의 엔트리의 지정은 제3도 b에 설명된 바와 같이 페이지내 오프세트어드레스의 상위 8비트와 물리페이지어드레스 하위 3비트로 실행된다.
무효화처리에서는 셀렉터 SEL(12)를 제어하여 어드레스입력레지스터(17)의 출력에 의해 물리어드레스어레이(19)의 엔트리가 지정될 수 있다. 이것에 의해 물리어드레스어레이(19)를 액세스하여 관련엔트리의 물리페이지어드레스태그를 리드한다(스텝 52).
리드된 물리페이지어드레스태그를 비교기 CMP(12)에서 어드레스입력레지스터(17)의 출력과 비교한다.
비교결과가 일치하고 대응하는 엔트리가 캐시메모리(13)에 존재하는 것을 제어 플래그가 나타내는 경우(스텝 53)에 무효화될 엔트리가 캐시메모리(13)내에 존재하게 된다(즉 캐시메모리가 히트된다). 캐시메모리가 히트하지 않는 경우에는 무효화될 엔트리가 캐시메모리내에 존재하지 않음을 의미한다. 이 경우에, 처리는 완료된다(스텝 54). 캐시메모리가 히트한 경우에 물리어드레스어레이(19)의 엔트리를 무효화함과 공시에, 어드레스입력레지스터(17)의 페이지내 오프세트어드레스와 물리어드레스어레이(19)의 논리페이지어드레스태그를 사용하여, 대응하는 물리어드레스를 논리어드레스로 변환하고, 이에 의해 논리어드레스를 어드레스입력레지스터(17)의 페이지내 오프세트어드레스와 머지하여 LAA 엔트리지정어드레스를 생성한다(스텝 55).
이러한 방법으로 신호선 a를 거쳐 어드레스입력레지스터의 페이지내 오프세트어드레스를 송출함과 동시에, 신호선 b를 거쳐 물리어드레스어레이(19)의 논리페이지 어드레스태그를 송출하고, 신호선 a와 b의 결합점에서 페이지내 오프세트어드레스와 논리페이지어드레스태그를 머지하는 것에 의해 LAA 엔트리지정어드레스를 생성할 수 있다. 생성된 LAA 엔트리지정어드레스를 사용하여, 논리어드레스어레이(18)을 액세스하고 플래그가 무효화를 지시하도록 LAA 제어플래그의 내용을 갱신(리라이트)하는 것에 의해, 관련 엔트리를 무효화한다(스텝 56). 이것에 의해 무효화처리는 완성된다.
이와같이 본 발명에 있어서는 캐시메모리(13)의 용량에 관계없이 즉 캐시메모리(13)의 용량이 아무리 증가하여도 입출력처리장치 또는 다른 처리장치에서의 무효화요구에 대하여 무효화처리에 수반하는 논리어드레스어레이(18)의 액세스가 1회만 실행된다. 그 결과 무효화처리에 필요한 시간 및 논리어드레스어레이(18)에 의한 연산부(12)에서 및 외부에서의 액세스의 충돌빈도를 저감할 수 있어서, 연산처리 또는 동작의 고속화를 도모할 수 있다.
상기 설명에서는 논리어드레스어레이(18)과 물리어드레스어레이(19)의 어레이의 수는 같다고 가정하였다.
그러나 본 발명에서는 이 조건이 꼭 필요한 것은 아니다. 즉 물리어드레스어레이(19)에 기억된 엔트리의 수는 논리어드레스어레이(18)에 기억된 엔트리의 수보다 많아도 된다. 좀더 자세히 설명하면, 다수의 논리어드레스가 논리어드레스어레이(18)의 동일 엔트리에 대해 맵핑되는 경우에 나중에 맵핑된 엔트리가 유효하게 된다. 그러나 캐시메모리(13)의 엔트리가 쓸모없게 됨을 의미하지는 않는다. 반대로 논리어드레스어레이(18)에서는 충돌하지 않은 논리어드레스가 물리어드레스어레이(19)에 대해 충돌한 경우에는 캐시메모리(13)과 논리어드레스어레이(18)에 이용가능한 여유가 있음에도 불구하고 등록할 수 없기 때문에 캐시메모리(13)의 영역은 이용할 수 없다.
따라서 이와같은 경우는 어떻게 해서라도 회피해야 한다. 이러한 관점에서 물리어드레스어레이(19)의 엔트리의 수는 논리어드레스어레이(18)의 엔트리수보다 적당히 커져서 상술한 바와 같이 충돌빈도를 줄여야 한다.
지금까지 설명한 본 발명의 실시예의 경우에 연산부(12)에서 본 메모리의 계층을 캐시메모리와 주메모리의 2계층으로 나타낸다. 이와 관련해서 최근에 연산부(12)의 고속화에 수반하여 캐시메모리도 고속화가 도모되고 있다. 예를들면 고성능 캐시메모리는 10ns이하의 액세스시간을 갖는다. 한편 사실상 더큰 용량을 갖도록 요구되는 주메모리에서 고속이행의 경향은 캐시메모리만큼 강한 것은 아니다. 일반적으로 예를들면, 100ns 정도의 액세스 시간을 갖는 다이나믹램(랜덤액세스메모리)가 주메모리로 사용된다. 실제적으로 캐시메모리와 주메모리 사이의 동작속도의 차이는 점점 증가하는 경향이 있다.
따라서 종래로부터 상술한 캐시메모리와 주메모리 사이에 양자의 중간의 액세스 시간을 갖는 제2의 캐시메모리를 삽입하여 메모리를 3계층으로 하는 방법이 제안되어 있다.
제7조 a 및 제7도 b는 2계층과 3계층의 메모리방식을 비교하여 설명한 것이다.
좀더 상세히 설명하면 제7도 a는 2계층 메모리방식을 도시한 것이고, 반면에 제7도 b는 3계층메모리방식을 도시한 것이다. 제7도에 따르면, 연산부(12)와 관련하여 2계층의 캐시메모리(13)과 주메모리(MM)이 마련되어 있다. 한편 제7도 b에 따르면 연산부(62)와 관련하여 제1의 캐시메모리(63), 제2의 캐시메모리(68)과 주메모리(MM)이 마련되어 있다. 여기에서 제2의 캐시메모리 168내에는 주메모리(MM)내의 내용의 일부의 카피가 존재하고, 제1의 캐시메모리(63)내에는 제2의 캐시메모리(68)의 내용의 일부의 카피가 존재한다.
제6도는 본 발명의 다른 실시예에 따른 연산처리장치의 일반적인 구성을 도시한 것으로 제7도 b에 도시한 바와 같이 3계층 메모리방식을 채용한 것이다.
제6도에서 (61)은 연산처리장치, (62)는 연산부, (63)은 제1층 캐시메모리, (64)는 어드레스변환부, (65)는 논리어드레스레지스터, (66)은 어드레스출력레지스터, (67)은 어드레스입력레지스터, (68)은 제2층 캐시메모리, (69)는 논리어드레스어레이, (70)은 물리어드레스어레이 SEL 61, SEL 62 와 SEL 63은 각각 셀렉터, CMP 61 과 CMP 62 는 각각 비교기를 나타낸다.
본 실시예에서 제1층 캐시메모리(63)은 논리어드레스를 사용하여 액세스되고, 제2층 캐시메모리(68)은 물리어드레스를 사용하여 액세스된다.
본 발명의 제2실시예의 특징은 제2층 캐시메모리(68)에 카피된 물리어드레스어레이(70)내의 엔트리의 카피가 제1층 캐시메모리(63)내에 기억된 것을 나타내는 카피플래그를, 물리어드레스어레이(70)내에 가지고 있고, 물리어드레스(70)내의 논리페이지어드레스태그를 전송하는 신호선 b1이 어드레스입력레지스터(67)의 페이지내오프세트어드레스를 전송하는 신호선 a1과 함께 마련되며, 두신호를 도중에서 머지하여 논리어드레스어레이(69)를 액세스하는 LAA 엔트리지정어드레스를 생성하는 것이다.
제8도 a 및 제8도 b는 각각 제6도에 도시된 연산처리장치를 적용한 논리어드레스와 물리어드레스의 비트구성을 설명하는 개략도이다.
제8도 a에서 논리어드레스는 제12-제31비트(합계 20비트)로 구성된 논리페이지어드레스와 제10-제11비트(합계 12비트)로 구성된 페이지내 오프세트어드레스로 된다. 논리어드레스어레이(69)와 제1층 캐시메모리(63)에 대한 엔트리지정어드레스는 제4-제14비트(합계 11비트)로 구성된다. 여기에서 논리페이지어드레스와 세트어드레스 사이의 오버랩 부분의 비트수는 3이다. 물리어드레스어레이(70)에 기억된 PAA 논리페이지어드레스태그는 상기 오버랩비트(즉, 제12-제14비트의 3비트)로 구성된다.
한편 제8도 b에서, 물리어드레스는 제12-제23비트(합계12비트)로 구성된 물리페이지어드레스와 제10-제11비트(합계 12비트)로 구성된 페이지내 오프세트어드레스로 된다. 물리어드레스어레이(70)과 제2층 캐시메모리(68)에 대한 엔트리지정어드레스는 제5-제17비트(합계 13비트)로 구성된다. 또한 물리어드레스어레이(70)에 기억된 PAA 물리페이지어드레스태그는 제18-제23비트(6비트)로 구성된다. 마지막으로 무효화처리를 위해 물리어드레스어레이를 액세스하는 무효화블럭지정어드레스는 제5-제23비트(합계 19비트)로 구성된다.
제9도 a 및 제9도 b는 각각 제6도에 도시된 논리어드레스어레이와 물리어드레스어레이의 내부구성을 도시한 것이다.
제9도 a에 있어서, 논리어드레스어레이(69)의 엔트리는 LAA 엔트리지정어드레스에 의해 지정된다. 각 엔트리의 내용은 지정된 논리어드레스에 대응하는 물리페이지어드레스와 제1층 캐시메모리(63)에 기억된 엔트리가 유효한지 무효한지를 지시하는 제어플래그이다. 제9도 b에 도시된 물리어드레스어레이(70)의 엔트리는 PAA 엔트리지정어드레스에 의해 지정된다. 각 엔트리의 내용은 엔트리를 지정하는데 사용되지 않는 물리페이지어드레스의 일부를 기억하는 물리페이지어드레스태그, 논리페이지어드레스와 세트어드레스 사이의 오버랩 부분에 의해 구성된 논리페이지어드레스태그, 제1층 캐시메모리(63)내에 관련된 엔트리의 카피가 존재하는지 안하는지를 지시하는 카피플래그와 제2층 캐시메모리(68) 내에 대응하는 엔트리가 존재하는지 안하는지를 지시하는 제어플래그이다. 카피플래그를 제외하면 상술한 태그와 제어플래그는 제4도에 도시한 것과 같은 내용이다.
다시 제6도를 참조하여 연산처리장치의 동작을 상세히 설명한다.
연산부(62)가 처리동작중에 주메모리를 액세스할 경우 관련된 메모리(이하 대상메모리라 함)의 논리어드레스가 논리어드레스레지스터(65)로 출력된다. 그리고 이 논리어드레스의 내용의 카피가 제1층 캐시메모리(63)에 존재하는지의 여부를 논리어드레스어레이(69)를 검색하는 것에 의해 체크한다. 상기 동작은 제1도에 도시된 제1의 실시예와 같은 동작이다. 카피가 제1층 캐시메모리(63)에 존재하지 않으면, 물리어드레스어레이(70)을 검색하는 것에 의해 제2층 캐시메모리(68)에 관련 카피가 존재하는지의 여부를 체크한다. 물리어드레스어레이(70)의 엔트리지정어드레스(물리어드레스)를 생성하기 위하여, 논리어드레스레지스터(65)의 내용을 어드레스변환부(64)를 거쳐 물리어드레스로 변환하여, 어드레스출력레지스터(66)에 물리어드레스를 배치한다. 셀렉터 SEL 62를 어드레스출력레지스터(66)으로 변환함으로써 PAA 엔트리지정어드레스로 물리어드레스어레이(70)을 액세스한다. 물리어드레스어레이(70)의 각 엔트리는 제2의 캐시메모리(68)의 각 엔트리에 대응된다. 물리어드레스어레이(70)에서 히트하면, 물리어드레스어레이(70)의 카피플래그를 논리1로 세트함과 동시에, 대응하는 제2층 캐시메모리(68)의 엔트리를 제1층 캐시메모리(63)에 카피 또는 맵핑하는 것에 의해, 이 엔트리가 제1층 캐시메모리(63)에 존재하는 것을 나타낸다. 또한 엔트리가 제2층 캐시메모리(68)에서 제1층 캐시메모리(63)으로 카피 또는 맵핑될 경우에, 관련 엔트리는 제어부(도시되지 않음)에 의해 제2층 캐시메모리(68)에서 리드되어 그것을 제1층 캐시메모리(63)의 공간 또는 아이들(idle)영역에 전송하여, 리드된 엔트리를 제1층 캐시메모리(63)의 아이들 영역에 기억한다.
제10도는 제6도에 도시된 캐시메모리를 무효화하는 동작을 설명하는 플로우챠트이다.
입출력처리장치나 다른 연산처리장치에서 제6도에 도시된 연산처리장치에 캐시메모리무효화 요구가 입력되는 경우에, 캐시메모리가 무효화될 영역의 물리어드레스는 어드레스 버스 A-BUS에서 어드레스입력레지스터(67)로 페치된다(스텝 101). 다음에 셀렉터 SEL 62를 어드레스입력레지스터(67)로 변환하여 어드레스입력레지스터((67)의 제5-제17비트를 PAA 엔트리지정어드레스로써 사용하여 물리어드레스어레이(70)을 액세스한다(스텝 102). 물리어드레스어레이(70)에서 리드된 물리페이지어드레스어레이태그는 비교기 CMP(62)를 거쳐 어드레스입력레지스터(67)의 출력과 비교되어 서로가 일치하는가의 여부와 관련 엔트리가 유효한가의 여부를 제어플래그가 지시하는가를 체크한다(스텝 103). 히트가 발생하지 않으면 무효화될 엔트리가 존재하지 않는 것으로 판단하여 처리를 완료한다(스텝 104).
한편, 히트가 생기면 물리어드레스어레이(70)의 관련 엔트리는 무효화된다(제어플래그를 OFF)(스텝 105). 그후 상기 엔트리의 카피플래그가 세트되는지의 여부를 체크한다(스텝 106). 카피플래그가 세트되지 않으면(NO), 카피가 제1층 캐시메모리(63)에 존재하지 않음을 의미한다. 그러므로 처리가 완성된다(스텝 107). 한편 카피플래그가 세트되면 논리페이지어드레스태그는 물리어드레스어레이(70)에서 리드되어 신호선 b를 거쳐 셀렉터 SEL(61)에 전송됨과 동시에 어드레스입력레지스터(67)의 페이지내 오프세트어드레스가 리드되어 신호선 a를 거쳐 셀렉터 SEL 61에 전송된다. 도중에 상술한 태그와 어드레스는 머지되어 LAA 엔트리지정어드레스를 생성한다(스텝 108). 셀렉터 SEL 61을 물리어드레스어레이(70)으로 변환함으로써 LAA 엔트리지정어드레스를 사용하여 논리어드레스어레이(69)를 액세스하고, 관련 엔트리에 대한 제어플래그를 OFF 로 리세트 한다. 그러므로 무효화 처리는 완료된다(스텝 109).
상기 설명으로부터 이해될 수 있는 바와 같이, 본 발명이 적용된 3계층의 메모리를 갖는 연산처리장치에 있어서는, 제2층 캐시메모리(68)에만 무효화될 엔트리가 존재하는 경우, 무효화처리는 물리어드레스어레이(70)을 액세스하여 완성할 수 있다. 또한 제1층 캐시메모리(63)에도 무효화될 엔트리가 존재하는 경우, 무효화처리는 물리어드레스어레이(70)에 부가하여 논리어드레스어레이(69)를 액세스하는 것만으로 완성된다.
이러한 방법에 의해, 무효화처리를 실행하는데 따르는 어드레스어레이의 액세스 회수를 최소로 억제할 수 있으므로, 무효화처리를 고속화할 수 있다.
제1도는 제1도의 연산처리장치가 집적회로에서 부분적으로 실행되는 본 발명의 수정된 실시예를 도시한 것이다.
제11도에서 블록(61A)는 제6도에 도시된 구성소자중에서 제2층 캐시메모리(68)과 물리어드레스어레이(70)를 뺀 구성 소자를 1개의 집적회로내에 마련한 것이다. 이 1 칩장치에는 데이터버스 D-BUS와 제2층 캐시메모리(68) 사이에 캐시 메모리(68)을 제어하는 제2층 캐시메모리 콘트롤러(68A)가 마련되어 있다. CPU의 기능을 돕는 연산부(62)와 고속으로 동작하는 제1층 캐시메모리(63)이 서로 물리적으로 가깝게 마련되고 반도체집적화를 통해 서로 접속되었기 때문에, 응답의 지연과 배선층에 기인하는 신호의 열화를 효과적으로 억제할 수 있다. 결과적으로 무효화처리속도의 증가뿐만 아니라, 수많은 연산처리장치를 포함하는 멀티프로세서시스템의 처리속도는 대체로 증가될 수 있다. 이러한 멀티프로세서시스템의 구성에서 CPU 기능을 돕는 연산부(62)와 고속의 제1층 캐시메모리 사이의 데이터연산처리의 상호작용은 논리어드레스공간에서 실행된다. 반면에 중간속도의 제2층 캐시메모리와 다른 연산장치와 주메모리에 접속된 데이터버스 사이의 데이터전송처리는 물리어드레스 공간에서 실행된다. 이것은 본 시스템 구성에서의 또 다른 잇점이다.
본 실시예에서 도시한 것 이외의 구성과 어드레스 공간을 갖는 논리어드레스로 캐시메모리를 액세스하는 연산처리장치에 대해서도 본 발명을 적용할 수 있고 동일한 효과를 얻을 수 있다.
이상 설명한 바와 같이, 본 발명에 의하면, 캐시메모리를 갖고, 입출력 처리장치나 다른 연산처리장치로 주메모리를 공유하는 연산처리장치를 포함하는 계산기 시스템에 있어서 주메모리의 내용을 변경하는 경우의 캐시메모리의 무효화처리에 따르는 메모리액세스의 회수를 종래의 방식에 비교하여 저감할 수 있으므로, 무효화처리를 고속화하여 계산기 시스템의 성능을 향상시킬 수 있다.

Claims (9)

  1. 가상기억방식에 따라 동작하는 연산부와 상기 연산부에서의 논리어드레스에 의해 지정된 엔트리를 갖는 캐시메모리를 포함하는 연산처리장치에 있어서, 상기 캐시메모리와 같은 논리어드레스에 의해 지정된 엔트리를 갖고 상기 캐시메모리의 대응하는 엔트리의 제어정보를 기억하는 제1의 어드레스어레이, 물리어드레스에 의해 지정된 엔트리를 갖고 물리어드레스를 논리어드레스로 변환하기 위한 변환정보를 각 엔트리에 기억하는 제2의 어드레스어레이와 상기 캐시메모리의 무효화 요구에 따라 무효화될 물리어드레스가 입력되면 상기 물리어드레스를 사용하여 상기 제2의 어드레스어레이를 액세스하고, 상기 변환정보에 따라 상기 제2의 어드레스어레이에서 무효화될 논리어드레스를 생성하는 논리어드레스생성수단을 포함하며, 상기 생성된 논리어드레스는 액세스를 위해 상기 제1의 어드레이어레이로 공급되어 상기 제어정보에 대해 무효화처리를 실행하는 연산처리장치.
  2. 특허청구의 범위 제1항에 있어서, 상기 제2의 어드레스어레이는 상기 제1의 어드레스어레이에 등록 가능한 엔트리의 수보다 더많은 수의 등록 가능한 엔트리를 갖는 연산처리장치.
  3. 특허청구의 범위 제1항에 있어서, 물리어드레스는 논리어드레스로 어드레스 변환하는 상기 제2의 어드레스어레이에 기억된 변환정보는 상기 제1의 어드레스어레이의 엔트리를 지정하는 논리어드레스 중에서, 상기 물리어드레스와의 공통부분을 제외한 상기 논리어드레스의 부분인 연산처리장치.
  4. 가상기억방식에 따라 동작하는 연산부, 상기 연산부에서의 물리어드레스에 의해 지정된 엔트리를 갖는 제2층 캐시메모리, 상기 연산부에서의 논리어드레스에 의해 지정된 엔트리를 갖고 상기 제2층 캐시메모리의 내용의 카피를 유지하는 제1층 캐시메모리, 상기 제1층 캐시메모리와 같은 논리어드레스에 의해 지정된 엔트리를 갖고, 상기 제1층 캐시메모리의 대응하는 엔트리에 대한 제어정보를 기억하는 제1의 어드레스어레이, 상기 제2층 캐시메모리와 같은 물리어드레스에 의해 지정된 엔트리를 갖고, 물리어드레스를 논리어드레스로 변환하는 변환정보와 상기 제1의 어드레스어레이의 상기 엔트리에 대응하는 상기 제2층 캐시메모리의 엔트리의 카피가 상기 제1층 캐시메모리에 존재하는가의 여부를 지시하는 정보를 각 엔트리에 기억하는 제2의 어드레스어레이와 외부에서 캐시메모리무효화요구에 따라 무효화를 실행할 물리어드레스가 입력되면 상기 물리어드레스를 사용하여 상기 제2의 어드레스어레이를 액세스하고, 상기 제2의 어드레스어레이에서 이용가능한 상기 변환정보에 따라 무효화될 논리어드레스를 생성하는 논리어드레스생성 수단을 포함하며, 상기 제1의 오드레스어레이를 상기 생성된 논리어드레스를 사용하여 액세스하여 상기 제1층 캐시메모리의 상기 제어정보에 따라 무효화처리를 실행하는 정보처리장치.
  5. 특허청구의 범위 제4항에 있어서, 상기 제2의 어드레스어레이는 상기 제1의 어드레스어레이에 등록가능한 엔트리의 수보다 더 많은 수의 등록가능한 엔트리를 포함하는 정보처리장치.
  6. 가상기억방식에 따라 동작되는 연산부와 상기 연산부에서의 논리어드레스에 의해 지정된 엔트리를 갖는 캐시메모리를 포함하는 연산처리장치의 캐시메모리제어방법에 있어서, 상기 캐시메모리와 같은 논리어드레스에 의해 지정된 엔트리를 갖고 상기 캐시메모리의 대응하는 엔트리의 제어정보를 기억하는 제1의 어드레스어레이와 물리어드레스에 의해 지정된 엔트리를 갖고 물리어드레스를 논리어드레스로 변환하기 위한 변환정보를 각 엔트리에 기억하는 제2의 어드레스어레이를 마련하는 스텝, 외부에서 공급된 캐시메모리 무효화요구에 따라 무효화를 실행할 물리어드레스를 입력하는 스텝, 상기 물리어드레스를 사용하여 상기 제2의 어드레스어레이를 액세스하여 상기 제2의 어드레스어레이에서 상기 변환정보를 얻는 것에 의해 상기 제2의 어드레스어레이에서 무효화된 논리어드레스를 생성하는 스텝과 상기 논리어드레스를 사용하여 상기 제1의 어드레스어레이를 액세스하여 상기 제어정보상의 무효화처리를 실행하는 스텝을 포함하는 캐시메모리제어방법.
  7. 특허청구의 범위 제6항에 있어서, 상기 제2의 어드레스어레이에는 상기 제1의 어드레스어레이에 등록가능한 엔트리의 수보다 더 많은 등록가능한 엔트리수가 마련되어 있는 캐시메모리제어방법.
  8. 특허청구의 범위 제6항에 있어서, 상기 논리어드레스로의 상기 어드레스변환을 위해 상기 제2의 어드레스어레이에 기억된 상기 변환정보는 상기 제1의 어드레스어레이의 엔트리를 지정하기 위해 논리어드레스의 일부에 의해 구성되고, 상기 일부는 상기 물리어드레스에 공통인 부분을 제외한 상기 논리어드레스의 나머지 부분에 대응하는 캐시메모리제어방법.
  9. 가상기억방식에 따라 동작하는 연산부, 상기 연산부에서의 물리어드레스에 의해 지정된 엔트리를 갖는 제2층 캐시메모리, 상기 연산부에서의 논리어드레스에 의해 지정된 엔트리를 갖고 상기 제2층 캐시메모리의 내용의 카피를 유지하는 제1층 캐시메모리, 상기 제1층 캐시메모리와 같은 논리어드레스에 의해 지정된 엔트리를 갖고, 상기 제1층 캐시메모리의 대응하는 엔트리에 대한 제어정보를 기억하는 제1의 어드레스어레이, 상기 제2층 캐시메모리와 같은 물리어드레스에 의해 지정된 엔트리를 갖고, 논리어드레스로의 변환을 위한 변환정보와 상기 제1의 어드레스어레이의 상기 엔트리에 대응한 상기 제2층 캐시메모리의 엔트리의 카피가 상기 제1층 캐시메모리내에 존재하는지의 여부를 지시하는 정보를 각 엔트리에 기억하는 제2의 어드레스어레이와 상기 제1 및 제2의 어드레스어레이와 상기 제1 및 제2의 캐시메모리를 결합하는 것에 의해 상기 캐시메모리를 제어하는 제어실행수단을 포함하고, 상기 연산부, 상기 제1층 캐시메모리, 상기 제1의 어드레스어레이와 상기 캐시메모리제어실행수단은 1개의 반도체칩에 집적된 멀티프로세서시스템에 사용되는 프로세서.
KR1019900017412A 1989-10-30 1990-10-30 캐시메모리제어 방법 및 장치 KR0173854B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP1282644A JPH03142607A (ja) 1989-10-30 1989-10-30 自動走行作業車の自己位置検出装置
JP1-282644 1989-10-30
JP1-282664 1989-10-30

Publications (2)

Publication Number Publication Date
KR910008576A KR910008576A (ko) 1991-05-31
KR0173854B1 true KR0173854B1 (ko) 1999-04-01

Family

ID=17655202

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019900017412A KR0173854B1 (ko) 1989-10-30 1990-10-30 캐시메모리제어 방법 및 장치

Country Status (2)

Country Link
JP (1) JPH03142607A (ko)
KR (1) KR0173854B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108873885B (zh) * 2018-04-25 2021-12-10 珠海市杰理科技股份有限公司 车辆控制方法、装置和系统

Also Published As

Publication number Publication date
JPH03142607A (ja) 1991-06-18
KR910008576A (ko) 1991-05-31

Similar Documents

Publication Publication Date Title
US5257361A (en) Method and apparatus for controlling one or more hierarchical memories using a virtual storage scheme and physical to virtual address translation
US6453385B1 (en) Cache system
US7437514B2 (en) Cache system
US5586283A (en) Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer
US6772316B2 (en) Method and apparatus for updating and invalidating store data
EP0408058B1 (en) Microprocessor
US4905141A (en) Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification
US6092172A (en) Data processor and data processing system having two translation lookaside buffers
US5940872A (en) Software and hardware-managed translation lookaside buffer
US6138226A (en) Logical cache memory storing logical and physical address information for resolving synonym problems
EP0175091B1 (en) Fast two-level dynamic address translation method and means
US5510934A (en) Memory system including local and global caches for storing floating point and integer data
US4825412A (en) Lockout registers
US6349362B2 (en) Scheme to partition a large lookaside buffer into an L2 cache array
US6766434B2 (en) Method for sharing a translation lookaside buffer between CPUs
US7269825B1 (en) Method and system for relative address translation
EP0284751B1 (en) Cache memory
JP2930071B2 (ja) 情報処理装置およびプロセッサ
US5603008A (en) Computer system having cache memories with independently validated keys in the TLB
US20050027960A1 (en) Translation look-aside buffer sharing among logical partitions
JP3210637B2 (ja) データ処理システム内のキャッシュ・メモリにアクセスするための方法およびシステム
JPH0727492B2 (ja) 緩衝記憶装置
KR0173854B1 (ko) 캐시메모리제어 방법 및 장치
US6134699A (en) Method and apparatus for detecting virtual address parity error for a translation lookaside buffer
JPH1027134A (ja) アドレス変換装置およびこれを用いたプロセッサ

Legal Events

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

Payment date: 20031031

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee