KR920005280B1 - 고속 캐쉬 시스템 - Google Patents

고속 캐쉬 시스템 Download PDF

Info

Publication number
KR920005280B1
KR920005280B1 KR1019860010922A KR860010922A KR920005280B1 KR 920005280 B1 KR920005280 B1 KR 920005280B1 KR 1019860010922 A KR1019860010922 A KR 1019860010922A KR 860010922 A KR860010922 A KR 860010922A KR 920005280 B1 KR920005280 B1 KR 920005280B1
Authority
KR
South Korea
Prior art keywords
memory
address
cache
page
direct access
Prior art date
Application number
KR1019860010922A
Other languages
English (en)
Other versions
KR870006471A (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 KR870006471A publication Critical patent/KR870006471A/ko
Application granted granted Critical
Publication of KR920005280B1 publication Critical patent/KR920005280B1/ko

Links

Images

Classifications

    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed

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

고속 캐쉬 시스템
제1도는 본 발명의 장치를 포함하는 다중처리시스템의 블럭선도.
제2도 및 제3도는, 각각 본 발명에 따라 구성된 데이타 캐쉬 메모리와 명령 캐쉬 메모리의 블럭선도.
제4a도 내지 제4e도 제2도 및 제3도의 캐쉬 메모리에 포함되는 다른 메모리들의 논리구성을 도시한 블럭선도.
제5a도 내지 제5d도는 제2도 및 제3도의 캐쉬 메모리에 사용되는 어드레스의 유형을 도시한 블럭선도.
제6a도 내지 제6c도는 제2도의 데이타 캐쉬 메모리의 동작을 설명하기 위한 흐름선도.
제7a도 내지 제7c도는 제3의 명령 캐쉬 메모리의 동작을 설명하기 위한 흐름선도.
* 도면의 주요부분에 대한 부호의 설명
10 : 다중처리시스템 12 : 시스템 버스
14-40 : 데이타 캐쉬 메모리 14-50 : 명령 캐쉬 메모리
14-400 : 가상메모리 관리 유니트 14-402 : 어드레스 레지스터
14-404 : 캐쉬 제어회로 14-432 : 오프셋 레지스터
14-436 : 데이타 입/출력 FIFO 14-442 : 메모리 어드레스 레지스터
14-450 : 스누프 레지스터 및 디코더 회로
본 발명은 컴퓨터 시스템, 보다 구체적으로 말하면, 컴퓨터 시스템내에 사용되는 캐쉬 시스템(cache system), 즉 고속도의 버퍼 기억시스템에 관한 것이다.
대다수의 컴퓨터 시스템들은 대용량 주메모리 시스템에 비해 훨씬 더 빠른 속도로 명령을 실행할 수 있는 프로세서, 즉 처리 유니트들을 포함하고 있으며, 이 명령실행속도를 더욱 증진시키기 위하여, 한정된 수의 명령이나 데이타 블럭들을 기억하는 소용량, 고속의 캐쉬 메모리, 즉 버퍼 기억장치들을 사용하고 있다. 각 메모리 판독동작시, 프로세서는 캐쉬 메모리를 검색하여 정보가 기억되어 있는지를 결정한다. 캐쉬 메모리에 정보가 기억되어 있는 상태를 히트(hit)상태라 하고 정보가 기억되어 있지 않는 상태를 미스(miss)상태라고 하는데, 히트상태인 경우에는 캐쉬 메모리로부터 정보가 독출되고 미스상태인 경우에는 주메모리로부터 정보가 독출된다.
프로세서의 명령실행속도가 고속화될수록 프로세서 및 시스템 기능실행면에 있어서 캐쉬의 히트율(hit rate)이 매우 중요시되고 있다. 즉, 이 히트율이 95%이하인 경우에는 전체 시스템 기능이 대체로 저하된다. 이러한 사항은 다중처리시스템인 경우에 있어서는 특히 중요시된다.
일반적으로 프로세서는, 실제 메모리 위치에 대한 상대 메모리 위치를 지정하는 가상 어드레스를 이용하여 주메모리와 캐쉬 메모리를 어드레스 한다. 실제 메모리 위치를 지정하는 실제 어드레스는 가상 어드레스를 변환함으로써 얻어진다. 가상 어드레스는 통상 세그먼트(segment) 어드레스 비트, 페이지(page) 어드레스 비트 및 워드(word) 어드레스 비트들로 이루어지는데, 이중에서 워드 어드레스 비트들은 변환되지 않고 세그먼트 어드레스 비트들과 페이지 어드레스 비트들만이 어드레스 변환 버퍼(ATB : address tanslation buffer)나 메모리 관리 유니트(MMU : memory management unit)에 의해 변환된다.
주메모리의 용량이 캐쉬 메모리의 용량보다 크기 때문에, 주메모리로부터의 정보를 캐쉬 메모리중에 효과적으로 사상(mapping)시키기 위해서는 몇가지 공통 사상기법이 이용된다. 1969년 3월에 발간된 IEEE Computer Group News에 게재되어 있는 C.J.Conti의 "Concepts for Buffer Storage"라는 제하의 논문에는 각종의 사상 기법이 개시되어 있다. 그 제1의 기법인 섹터(secotor)기법에서는, 캐쉬 메모리와 주메모리가, 다수의 블럭들을 각각 포함하는 다수의 섹션(section) 또는 페이지(page)들로 분할되고, 주메모리의 섹터 또는 페이지가 한번에 한 블럭씩 캐쉬 메모리의 임의의 섹터로 사상된다. 캐쉬 메모리내에 상주하는 각 블럭에는 히드(즉, 캐쉬 메모리내에 블럭이 존재하는)상태를 결정하기 위해 하나의 태그(tag)가 관련되어 있다. 캐쉬 메모리는 소수의 섹터만을 포함할 수 있을 뿐이고, 각 캐쉬 섹터는 언제든지 주메모리의 동일 섹터로 부터의 블럭들 밖에는 포함할 수 없다. 섹터로 구성된 캐쉬 메모리에 대한 탐색은 완전히 연상적(fully associative)이고, 임의의 블럭을 임의의 캐쉬 섹터내에서 잠정적으로 발견할 수 있을 뿐이다.
이러한 시스템에서는 1섹터당 하나의 태그 밖에는 필요없고 1블럭당 하나의 타당성 비트만 있으면 되지만, 캐쉬 메모리에 기억된 모든 블럭의 태그들을 전부 탐색하지 않으면 안되므로, 많은 탐색시간과 추가적인 하드웨어를 필요로 한다.
제2의 기법, 즉 세트 연상(set associative)기법에서는, 캐쉬 메모리와 주메모리가 다수의 블럭 세트들로 분할되고, 주메모리의 블럭이 한 세트씩 임의의 캐쉬 블럭으로 사상된다. 이러한 기법은 완전히 연상적인 제1의 기법에서 필요했던 많은 하드웨어를 경감시킬 수있지만, 여전히 각 기억 블럭에 대하여 하나의 태그가 필요하므로, 1세트당 엔트리(entry)의 수가 증가하고, 이로인해 비교 하드웨어가 계승(factorial)적으로 증가하게 된다.
제3의 기법, 즉 직접 사상(direct mapping)기법에서는, 주메모리와 각 블럭이 단지 하나의 캐쉬 블럭내에만 위치될 수 있다. 즉, 주메모리의 각 블럭은 특정의 캐수 메모리 위치내에 사전 지정된다. 따라서, 탐색 시간이 빨라지고 하드웨어 상으로도 효율적이다. 그러나, 이러한 시스템은 유연성을 결하고 있다는 단점이 있다. 그러므로, 근래에는 1세트당 한정된 수의 엔트리(entry)를 사용하는 세트 연상 기법이 채택되고 있다.
캐쉬 구성에 있어서 과잉의 데이타를 전송한다거나 다수의 태그를 필요로 한다는 극단적인 문제점들을 회피하기 위해, 세트연상 섹터 캐쉬를 채용한 시스템이 미합중국 특허 제4,493,026호에 기술되어 있다. 그런데, 이러한 시스템은 완전히 연상적인 기법을 통해 효율성은 달성하고 있지만, 여전히 1세트당 엔트리의 수와 기억될 수 있는 데이타 블럭의 양을 제한한다.
따라서, 본 발명의 주목적은 개선된 페이지 또는 섹터 유니트를 제공하는데 있다.
본 발명의 제2의 목적은 소수의 태그만을 필요로 하고, 이에따라 하드웨어회로 및 그 제조비용을 최소화할 수 있는, 처리 유니트용 캐쉬 유니트를 제공하는데 있다.
본 발명의 제3의 목적은 명령이나 데이타를 기억하는데 사용되고, 다중처리시스템내에 사용될 수 있는 캐쉬 유니트를 제공하는데 있다.
본 발명의 제4목적은 상당한 유연성을 갖고 데이타를 다수의 페이지에 기억시킬 수 있는 고속도의 캐쉬 유니트를 제공하는데 있다.
본 발명의 상술한 목적들은, 다수의 연상 메모리(Content addressable memory : CAM)와 다수의 직접 억세스 메모리(directly addressable memory : RAM)을 포함하되, 연상적인 기법 및 직접 사상기법을 결합하여 데이타나 명령을 페이지 방식으로 사상할 수 있도록 구성한 캐쉬 메모리에 의해 달성된다. 보다 구체적으로 발하면, 입력 CAM은 관련된 처리 유니트(CPU)에 의해 발생된 어드레스 응답하여, 규정된 페이지에 대한 요청을 처리하기 위한 다른 메모리들내에, 요청된 모든 정보가 존재함을 식별할 수 있도록 페이지 레벨번호를 포함하는 캐쉬 어드레스를 제공한다. 이러한 구성에 의해, 가상 어드레스나 실제 어드레스를 효과적으로 처리할 수 있을 뿐만 아니라, 명령실행속도를 증진시킬 수 있고, 하드웨어 구성상의 복잡성을 경감할 수 있으며, 데이타 일치(consistency) 및 중복현상(synonym)의 문제점들을 검출하여 제거할 수 있다.
데이타 일치의 문제점은, 전용 캐쉬 메모리와 주메모리내에 데이타 불일치가 존재하는 경우에 다중 캐쉬 메모리 시스템을 통해 발생할 수 있다. 즉, 주메모리의 동일 섹터로부터의 내용들이 잠정적으로 몇개의 캐쉬 메모리중에 동시에 나타날 수 있다. 충분한 과정을 거치지 않으면, 캐쉬 메모리중에 기억된 여러개의 사상 블럭들이 서로 달라질 수 있고, 주메모리의 블럭과도 상이하게 된다.
본 발명의 캐쉬 메모리는, 다른 처리 유니트에 의해 주메모리로 서입되는 데이타의 어드레스에 응답하도록 결합된 실제 어드레스 CAM을 사용한다. 이 CAM은 페이지 레벨번호를 발생시키도록 동작하며, 발생된 페이지 레벨번호는 블럭 어드레스 정보를 기억하는 나머지 메모리들중 하나의 메모리에 의해 캐쉬 메모리중에 기억된 가상 어드레스를 무효시키는데 사용될 수 있다.
가상 어드레스와 변환된 실제 어드레스 사이의 관계는 랜덤(random)하기 때문에, 두개의 가상 어드레스가 동일한 실제 어드레스로 사상될 가능성이 있다. 이로 인해 중복현상의 문제점이 발생한다. 잠재적인 중복현상의 문제점을 검출함에 있어서도 상기와 동일한 실세 어드레스 CAM이 사용된다. 즉, 실제 어드레스 CAM은 VMMU의 새로운 실제 어드레스와 이미 기억되어 있던 타당한 실제 어드레스 사이의 차이를 검출하도록 동작한다. 그 검출결과에 따라, 실제 어드레스 CAM에 의해 제공된 페이지 레벨번호는 새로운 가상 어드레스를 규정된 레벨로 입력 CAM에 기억시키는데 이용된다. 이로인해, 동일한 페이지를 다시 로드(load)시킬 필요가 없어지고, 또한 중복현상의 문제점이 제거된다.
페이지에 대해 요청된 모든 정보를 억세스하기 위한 공통 캐쉬 어드레스(페이지 레벨번호)를 사용하면, 캐쉬 메모리의 구성이 간단하게 되고, 그 전체적인 실행 기능은 증진된다. 또한 이러한 캐쉬 구성을 통해 입력 CAM의 감시와 중첩되도록 어드레스 변환을 행할 수있다. 본 발명의 실시예들에서 설명되는 바와 같이, 이와 동일한 구성이 명령 캐쉬 메모리 및 데이타 캐쉬 메모리에 대해 사용될 수 있다.
또한, 본 발명의 캐쉬 메모리는 가상 어드레스나 실제 어드레스를 처리하는데 사용될 수 있다. 공통 캐쉬 어드레스는 가상 어드레스나 실제 어드레스에 응답하여 동일한 방법으로 발생된다.
이러한 캐쉬 메모리의 구성에 있어서는 VLSI등의 메모리 소자를 사용할 수 있고, 따라서 제조비용을 절감할 수 있으며, 또한 동작속도를 증진시킬 수 있다.
구성 및 동작에 있어서 본 발명의 특징이라고 여겨지는 신규한 사상 및 기타의 목적들과 장점들에 대해서는 첨부된 도면을 참조로 한 이하의 설명으로부터 보다 명백히 이해될 것이다.
제1도는 다수의 서브 시스템(14) 내지 (38)을 포함하는 다중 처리 시스템(10)의 구성을 개략적으로 도시한 것이다. 다중 처리 시스템(10)의 서브 시스템으로서는 다수의 중앙서브시스템(14) 내지(16)과, 다수의 메모리 서브 시스템(20) 및 (28) 및 다수의 입/출력(I/O)주변 서브 시스템(30) 및 (38)들이 포함되고, 이러한 서브 시스템들은 시스텝 버스(12)에 공통 결합된다. 각 서브 시스템에는, 시스텝 버스(12)에 대해 데이타, 어드레스 및 지령(command) 형태의 요청(request)신호들을 송.수신하도록 관련 유니트를 인에이블 시키는 인터페이스 영역(도시하지 않음)이 포함된다.
각 중앙 서브 시스템의 구성은 동일한 것으로 한다. 각 중앙 서브 시스템은, 예를들면, (14-2)와 같은 중앙 처리 유니트(CPU)와, 이 CPU에 결합한, 예를들면, (14-4)와 같은 캐쉬 유니트로 구성된다. 본 발명의 목적상, 각 CPU는 가상 어드레스와 실제 어드레스를 처리할 수 있는 통상의 32비트 마이크로 프로세서 칩을 사용하여 설계 구성한다.
각 캐쉬 유니트는 데이타 캐쉬 메모리와 명령 캐쉬 메모리를 포함하는데, 이들의 구성에 대해서는 제2도 및 제3도에 상세히 도시되어 있다. 양 캐쉬 메모리는 동일한 방법으로 구성되고, 다만 그들의 실행 기능면에 있어서 제2도의 캐쉬 메모리는 데이타를 처리하는 반면에 제3도의 캐쉬 메모리는 명령을 처리한다는 차이점이 있을 뿐이다. 따라서, 제2도에 대한 동일한 설명은 제3도에 대해 반복하지 않겠다.
제2도를 참조로 하면, 데이타 캐쉬 메모리(14-40)는 CPU의 32비트 가상 어드레스를 실제 어드레스로 변환하기 위한 가상 메모리 관리 유니트(VMMU)(14-400)를 포함한다. CPU 어드레스가 수신되면, 우선 32비트 어드레스 레지스터(AR)(14-402)에 기억된다.
본 발명의 목적상, VMMU(14-404)는 통상의 집적회로 칩으로 구성될 수있다. VMMU(14-400)는 블럭(14-400)의 캐쉬 제어회로에 의해 제공되는 모드신호의 기능에 따라 가상 어드레스 모드와 실제 어드레스 모드로 동작할 수 있다. 가상 어드레스 모드 동작시, VMMU(14-400)는 제5a도의 가상 어드레스 세그먼트번호 및 가상 어드레스 페이지번호의 비트들을 제5b도의 실제 어드레스 페이지 프레임번호의 비트들로 변환한다. 실제 어드레스 모드 동작시, VMMU(14-400)는 변환을 금지하고, CPU 어드레스 비트들이 직접 사용되도록 전송된다.
변환회로 이외에, VMMU(14-400)는 다른 회로들도 포함하고 있다. 예를 들면, VMMU(14-400)는 캐쉬 서입 동작중에 워드 어드레스를 지정하는데 사용되는 4비트 워드 카운터를 포함한다.
블럭(14-404)의 캐쉬 제어회로는 CPU(14-2)로부터 캐쉬 요청을 수신하여 이를 디코드 하도록 동작한다. CPU(14-2)로부터의 캐쉬 요청에 응답하여, 캐쉬 제어회로(14-404)는 요청된 순서의 제어신호들과 함께 지령 신호들을 발생시키는데, 이 지령 신호들은, 이하에 설명하는 바와같이, CPU(14-2) 및 캐쉬메모리(14-40)내의 다른 유니트들로 부터의 입력 신호들에 따라 데이타 캐쉬 메모리(14-40)의 내부 및 외부로 데이타의 전송을 지시하기 위해 시스텝 버스(12)의 지령 부분을 통해 공급된다. 프로그램 작성을 용이하게 하기 위해, 제어회로는 마이크로 프로그램된 제어유니트 형태를 취한다.
도시된 바와 같이, 캐쉬 메모리(14-40)는 연상 메모리(Content addressable memory), 예를들면, 캐쉬어드레스 CAM(CAC)메모리(14-406) 및 실제 어드레스 CAM(PAC)메모리(14-408) 이외에 직접 억세스 메모리(directly addresable memory), 예를들면 페이지 RAM(PGR)메모리(14-410),실제 어드레스 RAM(PAR)메모리(14-412), 블럭 태그 어레이(BTA)메모리(14-414) 및 페이지 태그 어레이(PTA)메모리(14-416)를 포함한다. 본 발명의 원리에 따르면, 이러한 모든 메모리들은 도시된 바와 같이 내부 공통버스(14-420)에 공통적으로 연결된다. 블럭(14-404)의 캐쉬 제어회로는 다른 메모리들에 대해 인에이블신호를 인가함으로써, 페이지 레벨번호 신호원의 역할을 하게 되는 메모리를 설정한다.
이하에 설명되는 바와 같이, 이러한 구성을 통해, 소정 페이지에 관련된 정보가 기억되어 있는 각 메모리내에서 상기의 관련된 모든 정보가 동일 레벨로 직접 사상될 수 있다. 그리하여, 이러한 모든 정보에 대한 동시 직접 억세스는 단일 캐쉬 어드레스 페이지 레벨번호값을 버스(14-420)에 인가함으로써 용이하게 얻어진다. 이것은 구성 및 제조비용을 최소화하고, 동작속도를 증진시킬 뿐만 아니라 유연성을 제공한다.
PGR 메모리(14-410)에 대한 별도의 입력들로서는, 4위치 선택기 스윗치(14-430)의 출력, 버스(14-420)로부터의 페이지 레벨번호 및 제어회로(14-404)로부터의 소거 입력신호가 포함된다. 스윗치(14-430)는 코드화된 신호 SW1에 응답하는 캐쉬 제어회로(14-404)의 제어하에 선택된 4개의 신호원으로부터 어드레스신호들을 수신한다. 어드레스 레지스터(14-402)는 위치 3으로 블럭 및 워드번호 어드레스신호들을 인가하고, VMMU(14-400)는 위치 2로 PAL 및 CTR 어드레스 비트들을 인가하며, 또한 BTA 메모리(14-414)는 위치 1로 블럭번호 비트들을 인가하고, 10비트 오프셋 레지스터(14-432) 및 증분기(14-432) 및 증분기 (14-434)는 위치 0으로 블럭 및 워드번호 비트들을 인가한다. PGR 메모리(14-410)는 데이타 FIFO 어레이(14-436)을 거쳐 CPU(14-2)의 데이타 버스와 시스템 버스(12)의 데이타 라인들에 연결된다. FIFO 어레이(14-436)는 PGR 메모리(14-410)와 시스텝 버스(12)사이에 전송되는 데이타 워드들을 기억하기 위한 8개의 36비트 레지스터 위치를 포함한다. FIFO(14-436)는 통상의 구성으로 생각될 수 있고, 미합중국 특허 제4,195,340호에 기술된 FIFO회로의 형태를 택하면 좋다.
스윗치(14-430)에 연결된 4개의 신호원들은 제2스윗치(14-440)에도 연결된다. 코드화된 신호 SW2에 응답하여 선택된 신호원으로부터의 스윗치(14-440)를 통한 출력은 하나의 입력으로써 30비트 출력메모리 어드레스 레지스터 (14-442)에 인가된다. 레지스터(14-442)는 PAR 메모리(14-4412)로부터의 실제 어드레스 비트(20)들을 수신하고, 시스템 버스(12)의 어드레스 버스에 스윗치(14-440)로부터의 10개의 어드레스 비트들과 패리티 비트들을 인가한다.
2위치 선택기 스윗치(14-444)는 신호 SW3에 응답하여 선택된 어드레스 레지스터(14-402)및 오프셋 레지스터(14-432)로부터의 블럭번호(BN) 어드레스 신호들을 수신한다. 스윗치(14-444)의 출력은 BTA 메모리(14-414)의 입력으로 제공된다. BTA메모리(14-414)는 또한 버스 서입 지령에 응답하여 블럭(14-450)의 스누프(snoop) 레지스터 내에 미리 기억되어 있던 블럭번호(BN) 어드레스신호들을 시스텝 버스(12)의 어드레스 버스로부터 수신하도록 연결된다. BTA메모리(14-414)는 또한 PAC메모리(14-408)로부터 데이타 일치 페이지번호 레벨신호들과 히트신호를 수신한다.
도시된 바와같이, PAC메모리(14-408)는 블럭(14-450)의 "스누프"레지스터 및 디코드 회로를 통해 시스템 버스(12)의 지령 및 어드레스버스들에 결합한다. 이하에 설명되는 바와 같이, 시스템 버스(12)에 대한 이러한 결합들은 데이타 일치를 유지시킴에 있어서PAC메모리(14-408)의 사용을 허용한다. 또한, PAC메모리(14-408)는 VMMU(14-400)로부터 20개의 상위 실제 어드레스 비트(PAU)들을 수신한다.
지령 버스(14-420)에 연결한 다른 유니트는 레벨치환회로(LRU)(14-422)이다. 이 레벨치환회로(14-422)는 CAC(14-406)로부터의 미스 신호에 응답하여 버스(14-420)상에 새로운 페이지에 관한 관련 정보가 기억되어야 함을 규정하는 페이지 레벨 코드번호를 발생시킨다. LRU(14-422)는 치환에 대비하여 가장 최근에 사용된 페이지 레벨을 지정하기 위한 정보를 기억하는 치환 어레이를 포함한다. LRU(14-422)는 통상의 레지스터 첩을 이용하여 구성할 수 있다. LRU(14-422) 의 양호한 실시예에 대해서는 본 출원인에 의해 미합중국 동일자에서 출원된 "Least Recently Uesd Replacenent Level Generating Apparatus"의 특허출원 명세서에 기술되어 있다.
각종 CAM 및 RAM의 구성이 제4a도 내지 제4e도에 도시되어 있다. CAC메모리(14-406)는 32개의 기억장소를 갖는 21비트 연상메모리(CAM)어레이 이다. 즉, 그 기억장소들은 그들의 내용에 의해 어드레스, 즉 억세스된다. 32×21비트 레지스터의 기억장소를 갖는 CAC메모리(14-406)는 그외에도 32개의 비교회로들을 가지며, 그 출력들은 우선순위 인코더 회도들에 공급된다. 임의의 기억장소의 타당한 20비트 내용들과 제5c도의 20비트 유효페이지번호(EPN) 어드레스 사이의 동일 비교, 즉 일치에 의해 히트신호가 발생되고, 이 힌트신호는 우선순위 인코더 회로에 의해 5비트 페이지 레벨번호값으로 인코드된다. 세그먼트 및 페이지의 히트 발생을 검출하기 위해, 세그먼트와 페이지 어드레스 비트들은 개별적으로 비교된다. 우선순위 인코더 회로는 하나 이상의 히트신호가 잘못 발생하는 것을 검출하여 최고 우선순위 2진 '1'입력을 선택하는 데 사용된다. 제2도의 다른 CAM메모리들과 마찬가지로 CAC메모리(14-406)는 공지의 표준 집적 회로칩으로 구성할 수 있다.
제4a도로부터 알 수 있는 바와 같이, CAC메모리(14-406)의 각 20비트에는 20비트 유효 페이지 번호(EPN)값과 타당성 비트(VN)가 기억된다. EPN값은 소정 순간에 PGR메모리(14-410)내에서 가장 최근에 사용된 32개의 상주 어드레스와 그들의 타당성 스테이터스를 나타낸다. 즉, EPN값은 제5a도와 제5c의 비교에 의해 예시된 바와 같이 32비트 CPU 가상 어드레스로부터 유도된 10비트 세그먼트 번호값과 10비트 페이지 번호값으로 이루어진 가상 어드레스를 나타내는 것이다.
양호한 실시예에 따른 시스템에 있어서, 주메모리는 메모리 영역의 최대 할당 공간에 해당하는 다수의 동일 세그먼트로 논리적으로 분할된다. 각 세그먼트에는 처리실행과 관련된 정보의 수집을 지정하기 위해 사용자에 의하여 단일 표식이 주어진다. 주메모리는 210, 즉 1024개의 세그먼트를 가지며, 이것은 제5a도의 가상 어드레스의 세그먼트 번호 부분의 규격에 의해 설정된다.
각 세그먼트는 페이지라는 보다 작은 유니트들로 다시 분할된다. 세그먼트의 모든 페이지는 동일한 규격으로 되어 있다. 제5a도의 가상 어드레스의 페이지 번호 부분의 규격에 의해 설정되는 바와 같이 210,즉 1024개의 페이지가 존재한다. 각 페이지는 26, 즉 64개의 블럭을 가지며, 각 블럭은 24, 즉 16개의 워드, 또는 8개의 더블워드를 갖는다. 이러한 값들은 제5a의 가상 어드레스의 블럭 및 워드번호 부분들의 규격에 의해 설정된다. 각 워드는 2×8 비트 데이타 바이트에 해당하는 16개의 비트를 갖는다.
세그멘트들에 대한 억세스는 제5a도의 가상 어드레스의 2비트 링 번호 부분에 의해 설정되는 링 기구에 의해 제어된다. 세그멘트 및 페이지에 대한 어드레스 지정은 세그멘트 테이블이나 페이지 테이블을 사용하여 수행된다. 이러한 링 기구에 대한 정보는 1972년에 발간된 Elliott I. Organick의 "The Multics System : An Examination of Its Structure"에 상세히 기술되어 있다.
EPN값이 실제 어드레스를 나타낼때, 이 EPN값은, 제5b도 및 제5c도의 비교를 통해 알수 있는 바와 같이 30비트 CPU 실제 어드레스로부터 유도된 20비트 페이지 프레임번호를 포함한다. CAC메모리(14-406)의 관점에서 보면, 가상 어드레스의 것과 동작상의 차이점은 없다. 어떠한 경우든지, CAC메모리(14-406)는, 제5d도의 캐쉬 어드레스를 형성하기 위해 CPU 가상 어드레스로부터 유도된 블럭 및 워드 번호 값이나 CPU 실제 어드레스의 오프셋값을 결합한 페이지 레벨번호를 제공한다.
제4b도는 PAC메모리(14-408)와 PAR메모리(14-412)의 구성을 설명하고 있다. 양 메모리는 VMMU(14-400)에 의해 발생된 32개의 최근 사용된 페이지 프레임 번호 값(즉, 실제 어드레스의 상위 20비트)을 기억하기 위한 32개의 레지스터 기억장소를 포함한다. 그런데, PAC메모리(14-408)는 각 레지스터 기억장소내에 타당성 비트(VB)기억장소를 포함하고 있다. PAC메모리(14-408)의 내용들은 제1도의 다른 서브 시스템들중 하나의 서브시스템에 의해 시스템 버스(12)로 인가되는 서입 지령의 메모리 실제 어드레스의 20비트 페이지 프레임 번호(PFN)부분을 통해 억세스 할 수 있다.
메모리(14-408)내의 비교회로들은 페이지 프레임번호들내에서 동일 비교가 검출될 때 히트 신호를 발생시키도록 동작한다. 이것은 BTA메모리(14-414)를 통해 서브시스템들에 의해서 변경된 PGR메모리(14-410)내의 기억 블럭들이 무효화 시킬 수 있는 데이타 일치를 유지한다. 즉, PAC메모리(14-408)는 그 비교 우선순위 인코더 회로를 통해, 요청된 무효화를 달성하는데 사용되는 히트 신호 및 페이지 레벨번호값을 발생시킨다.
마찬가지의 방법으로, PAC메모리(14-408)는 VMMU(14-400)에 의해 발생된 새로운 페이지 프레임 번호에 응답하여 중복현상의 문제점을 검출한다. 가상 어드레스 페이지 번호 값이 동일한 실제 어드레스 프레임번호로 사상되었을때, PAC메모리(14-408)는 히트신호와 페이지 레벨번호값을 발생시키고, 히트 신호는 제어회로(14-404)에 인가되어, 페이지 레벨번호값은 시스템 버스(14-420)에 인가된다. 이것은 계속해서 CAC메모리(14-406)내의 적절한 가상 어드레스 페이지를 무효화 시킨다.
PAR메모리(14-412)는 사상 유니트의 기능을 하는데 이 경우 PAR메모리는 캐쉬 미스 상태인 경우에 요청된 실제 어드레스 페이지 프레임번호값을 제공한다. PAR메모리(14-412)는 PAC메모리(14-408)에 기억된 값과 동일한 페이지 프레임번호값을 기억하기 때문에, 두개의 메모리를 결합하여 일련의 공통메모리 레지스터들을 공유하도록 할 수 있다. 그러나, 보다 명료하고 간단히 이해할 수 있도록 하기 위하여 양 메모리를 별도로 도시하였다.
제4c도는 BTA메모리(14-414)의 구성을 도시한 것이다. BTA메모리(14-414)는, 각각 64×2 비트 직접 억세스 레지스터 기억장소를 갖는 32개의 레벨을 갖는다. 이 메모리는 PGR메모리(14-410)내에 기억된 32개의 페이지내에 각각 타당성 및 서입 블럭 스테이터스를 트랙하는데 이용된다. 서입 비트(WB)기억장소는 CPU(14-2)에 의해 변경된 블럭들을 나타내기 위해 서입 동작중에 사용된다. 이러한 목적을 위하여, BTA메모리(14-414)는 다수의 기억장소들이 병렬로 억세스될때, 2진 '1'값들로 표시된 서입 블럭들의 존재를 검출하기 위한 우선순위 인코더 회로를 포함한다. 타당성 비트(VB)기억장소는 전술한 바와 같이 데이타 일치를 유지시키는데 사용된다.
제4d도는 PGR메모리(14-410)의 구성을 도시한 것이다. 이 메모리는 각각 2×103바이트의 규격으로 32개의 페이지를 유지하는 데이타 기억으로 동작한다. 도시된 바와 같이, 각 페이지는 64개의 블럭으로 분할되고, 각 블럭은 8개의 더블워드 또는 16개의 워드 또는 32개의 바이트를 갖는다.
제4e도는 PTA메모리(14-416)의 구성을 도시하고 있다. 이 메모리는 PGR메모리(14-410)내에 기억된 32개의 각 페이지에 대해 스테이터스를 유지하고, 페이지에 관한 결정을 제어하도록 데이타 캐쉬(14-40)를 사용한다. 도시된 바와 같이, 이 메모리(14-416)는 32×2 비트 기억장소를 갖는다. 최초의 기억장소는 전용 비트를 기억하는 것이고, 제2의 기억장소는 변형된 비트를 기억하는 것이다. 전용 비트는 현재의 처리가 페이지를 사용하는 것을 나타내는 것이고, 변형된 비트는 가상 기억(즉, I/O디스크 기억)으로부터 추출된 주메모리내의 할당된 페이지가 변경되었음을 나타낸다.
제3도에 도시된 바와 같이, 명령 캐쉬 메모리(14-50)는 데이타 캐쉬 메모리(14-40)와 동일하게 구성된다. 제2도 및 제3도에서 동일하게 사용된 블럭들에 대해서는 동일한 참조번호를 병기한다(예를들면, 14-400, 14-500 및 14-410, 14-510등). 양 캐쉬 메모리의 차이점은 명령을 효율적이고 고속으로 처리할 수 있도록 변형시킨 것에 있다. 이 때문에, 페이지 레지스터(14-535A)(14-535B)와 명령 어드레스 레지스터(14-534A) 및 (14-534B)의 결합이, 페이지 레벨번호와 오프셋값들을 기억하기 위한 오프셋 레지스터(14-432) 위치에 사용된다.
도시된 바와 같이, 페이지 레지스터(14-535A) 및 (14-535B)의 출력들은 2위치 선택기 스윗치(14-533)의 각 위치에 연결한다. 명령 어드레스 레지스터(14-534A) 및 (14-534B)의 출력들은 선택기 스윗치 (14-530)의 0위치와 1위치에 연결한다. 명령 어드레스 레지스터(14-534A) 및(14-534B)는 또한 증분회로(14-534A) 및 (14-534B)를 포함한다.
페이지 및 명령 어드레스 레지스터 쌍을 통해 두개의 명령 블럭들의 처리가 가능하다. 간단히 말하면, 캐쉬메모리(14-50)에 의해 명령 독출요청이 수신되는 경우, 블럭번호와 더블워드번호로 이루어진 가상 어드레스 오프셋값은 사용되지 않는 명령 어드레스레지스트(예를들면, IAR2)에 로드된다. 동시에, 해당페이지 레지스터(예를들면, IAR1)에는 페이지레벨 번호값이 로드된다. 그후, 캐쉬 제어회로로 부터의 신호들의 제어하에, 선택기 스윗치회로(14-530) 및 (14-533)의 제1위치들이 인에이블 되어 오프셋 및 페이지 레벨번호값을 나타내는 신호들을 전송한다. 매번 CPU는 명령을 억세스하고, 명령을 명령 어드레스레지스너(예를 들면, IAR2)의 내용은 '1'씩 증분된후 레지스터로 복귀된다.
데이타 보다는 명령에 대한 CPU요청들을 처리하기 위한 캐쉬메모리(14-50)는 공용으로 제공되기 때문에, 몇가지 특징들에서 간단화 할 수있다. 즉, 제4c도에 도시된 BTA메모리(14-414)의 변형된 비트 위치들과 우선순위 인코드를 제거할 수 있다. 또한 PTA메모리(14-416)도 제거될 수 있다.
제1도, 제2도, 제4a도 내지 제4e도 및 제5a도 내지 제5d도에 도시된 캐쉬메모리(14-40)의 동작에 대해 제6a도 및 제6b도의 흐름선도를 참조하여 살펴보기로 한다. 여기서, 캐쉬메모리(14-40)는 데이타에 대한 요청을 수신하는 것으로 한다. 이 요청은 요청의 유형을 규정하는 신호들과 함께 제5a도의 포맷을 갖는 가상 어드레스를 포함한다. 제 6a도에 도시된 바와 같이, 요청을 처리하기에 앞서, 캐쉬메모리(14-40)는 제1도의 시스템에 전원을 인가한 후 공지된 상태로 우선 초기화된다(즉, 블럭 602).
제6b도로부터, 초기화 동안에 캐쉬제어회로(14-404)는 각 메모리의 소거 입력단자에 인가된 소거신호를 통해 CAC메모리(14-406), PAC메모리(14-408), BTA메모리(14-414) 및 PTA메모리(14-416)를 초기화 한다(블럭 602-2). 이로인해 제4a도 및 제4b도의 CAC메모리(14-406) 및 PAC메모리(14-408)내의 타당성비트(VB)위치들과, 제4c도의 BTA메모리(14-414)의 타당성 및 서입비트 위치들 및 제4e도의 PTA메모리(14-416)의 전용 및 변형된 비트 위치들은 모두 2진 '0'값으로 소거된다.
또한, 블럭 602-4에서 지시된 바와 같이, 치환제어회로(14-422)는 소거신호에 응답하여 그 어레이내의 32개의 기억장소를 초기 레벨값으로 고정한다. 이 기억장소들에는 0에서 31의 값이 주어지는데, 31의 값이 최상위이고 0값은 최하위이다. 이 기억장소들은 라운드로빈(ronud robin)방식으로 업 데이트(update)되어 최하위 페이지부터 치환한다. 다음에, 캐쉬 어드레스지스터(14-432) 및 (14-422)가 '0'값으로 소거된다(블럭 602-6). 이제 캐쉬메모리(14-40)는 CPU요청을 처리하고(블럭 604), 제1도의 다른 서브시스템으로 부터 수신된 버스서입 요청들을 감시하도록 준비한다(블럭 608).
전기에 언급한 바와같이, PAC메모리(14-408)는 블럭 608-2 내지 608-8에 예시된 방법으로 버스 감시기능을 수행한다. 보다 구체적으로, 스누프레지스터 및 디코더회로(14-405)는 다른 서브시스템에 의해 시스템버스(12)에 인가된 요청들을 감시한다. 메모리에 대한 서입을 검출함에 따라, 회로(14-405)는 출력 서입신호를 발생시키고, 이 신호는 PAC메모리(14-408)에 인가된다. 이 신호에 의해 요청의 20개의 실제 어드레스 페이지 프레임번호 비트들이 블럭(14-405)의 스누프 부분으로 로드된다. 또한, 이 서입신호에 의해, PAC메모리(14-408)는 페이지 프레임번호 비트들을 이용하여 그 내용을 감시한다. 히트가 검출되지 않으면, 상기한 동작이 반복된다.
히트가 검출되면, PAC메모리(14-408)는 히트신호를 발생시키고, 이 신호느 캐쉬제어회로(14-404)의 입력으로 제공된다. PAC메모리(14-408)는 또한 페이지 레벨번호값을 BTA메모리(14-414)의 입력으로 제공하고, 이와 함께 회로(14-450)에 이미 기억되어 있던 서입요청의 블럭번호를 BTA메모리(14-414)의 입력으로 제공한다. 회로(14-404)의 제어하에, 규정된 레벨로 지정된 블럭의 타당성 비트가 2진 '0'값으로 고정된다. 단지 서입요청이나 다른 서브시스템에 의해 발생된 지령만이 블럭(14-450)의 회로에 의해 검출된다. 블럭(608-8)에서 나타낸 바와같이, 무효화 동작후에 감시가 계속된다. 페이지 레벨번호 값의 사용을 통해 캐쉬메모리(14-40)는 고속으로 또한 효과적으로 데이타 일치를 유지할 수 있다.
버스 일치를 유지함과 아울러, 캐쉬메모리(14-40)는 CPU데이타 요청들을 처리한다. 데이타요청이 발생하면, 제6b도의 블럭(604-2) 내지(604-18)에 도시된 순서의 동작이 수행된다. 도시된 바와 같이, CPU데이타요청에 따라 , 가상 어드레스레지스터(14-402)에는 제5a도에 도시된 형태의 가상 어드레스가 로드된다. 20비트 유효 어드레스번호(EPN) 비트들(제5c도)을 이용하여 CAC메모리(14-406)의 내용들이 감시된다. CAC메모리(14-406)가 EPN비트들과 하나의 CAC메모리 기억장소의 페이지번호 비트내용들 사이에 동일함을 검출하면, 이 CAC메모리(14-406)는 내부버스(14-420)에 히트신호와 페이지 레벨번호값을 발생시키도록 동작한다.
캐쉬메모리(14-406)로 부터의 페이지 레벨번호와 레지스터(14-432)로 부터의 오프셋으로 구성된 캐쉬어드레스는 BTA메모리(14-414) 및 PGR메모리(14-410)의 어드레스레지스터들로 로드된다. 또한, 블럭값(BN) 및 워드값(WN)이 오프셋 레지스터(14-432)로 로드된다. 규정된 블럭에 대한 타당성비트(VB)는 BTA메모리(14-414)에 의해 검색된다. 타당성비트(VB)가 타당한 것이고(즉, 2진'1'값), CPU캐쉬 요청이 판독요청인 경우에, 캐쉬제어회로(14-404)는 요청된 36비트데이타 더블워드를 PGR메모리(14-410)로 부터 CPU(14-2)의 입력버스로 독출시키고, 또한 이것을 CPU실행유니트(E)데이타 레지스터에 로드시킨다. 동일한 캐쉬제어동작이 반복되는 동안에 오프셋 레지스터(14-432)의 내용은 '1'씩 증분된다.
도시된 바와같이, 캐쉬제어회로(14-404)에 의해 판독동작이 수행되고 있음이 결정되면(즉, 단지 하나의 더블워드가 요청됨), 캐쉬메모리(14-40)는 판독동작을 완료하고, 다른 CPU요청을 처리할 준비를 한다.
판독동작이 완료되지 않은 경우(즉, 하나이상의 더블워드가 요청된 경우), 캐쉬제어회로(14-404)는 오프셋 오버플로우 상태의 발생을 테스트한다. 오버플로우가 검출되면, 캐쉬메모리(14-40)는 다른 새로운 어드레스 순서를 시작한다. 오버플로우가 없는 경우에는, PGR메모리(14-410)로 부터의 다른 더블워드에 따른 판독동작이 계속된다.
블럭 604-4에 도시된 바와 가티, CAC미스 상태가 검출되면, 블럭(605-2)내지(605-22)의 동작순서가 수행된다. 보다 구체적으로, 캐쉬제어회로(14-404)는 LRU치환회로(14-422)를 통해 버스(14-420)에 페이지 레벨번호값을 제공한다. 오프셋값과 연쇄된 이 값은 블럭(614)의 페이지 순서에 의해 캐쉬어드레스로서 사용된다.
다음에, VMMU(14-400)는 제5b도의 포맷을 갖는 20비트 실제 어드레스를 발생시킨다. 가상 어드레스 중복현상의 존재를 검출하기 위해 사용되는 페이지 프레임 번호 비트(PAU)들이 PAC메모리(14-408)에 인가된다. PAC메모리(14-408)가 페이지 프레임번호들 사이의 동일비교를 검출하면, 히트신호 및 페이지 레벨신호들이 출력으로서 발생된다. 페이지 레벨번호와 오프셋값들은 버스(14-420)에 인가되는 캐쉬어드레스를 형성하도록 연쇄된다. 블럭 605-10으로 부터 알 수 있는 바와 같이, 캐쉬 제어회로(14-404)는 PAC페이지 레벨번호신호들에 의해 지정된 CAC기억장소를 AR레지스터(14-402)로부터의 EPN값으로 로드한다. 동시에, CAC기억장소 내의 타당성 비트(VB)는 2진 '1'값으로 고정된다. 이로 인해, 동일한 실제 어드레스중에 하나 이상의 가상 어드레스가 사상되는 것이 방지된다.
PAC메모리(14-408)에 의해 페이지 프레임히트가 검출되지 않으면, 블럭 605-12에 표시한 바와 같은 사이폰(siphon)동작이 수행된다. 즉, 블럭 614-12 내지 614-12의 동작순서들이 수행된다. 이에 따라, 그 페이지의 서입블럭들이 주 메모리로 재전송되고, 새로운 페이지의 블럭들이 동일페이지내에 서입될 수 있다.
블럭 614-2에서 알 수있는 바와 같이, LRU치환회로(14-422)에 의해 발생된 페이지 레벨번호값은 그 페이지내의 임의 서입블럭의 블럭번호값을 얻는데 이용된다. 일군의 서입비트(WB)기억장소들이 독출되고, BTA우선순위 인코더 회로는 2진 '1'값을 포함하는 최고 우선순위 기억장소에 대한 블럭번호(BN)값을 발생시킨다. 스윗치(14-403)의 위치 2를 통해 선택된 BTA블럭번호 값과 연쇄되어 있는 LRU회로(14-422)의 페이지 레벨번호는 PGR메모리(14-410)로 부터 워드들의 블럭을 한번에 한 더블워드씩 FIFO메모리(14-436)로 독출하기 위한 캐쉬어드레스로서 이용된다.
또한, LRU페이지 레벨번호값은 PAR메모리(14-412)로 부터 실제 어드레스 페이지 프레임번호를 돌출하는데 이용된다. BTA메모리 서입블럭번호와 연쇄된 PAR메모리 페이지 프레임번호와 스윗치(14-440)의 위치 1을 통해 선택된 VMMU워드 카운터는 메모리 어드레스 레지스터(14-422)에 로드된다. 이 어드레스는 VMMU(14-400)에 의해서 증분되고, PGR메모리(14-410)로 부터의 8개 더블워드들의 블럭을 주 메모리로 서입하는데 이용된다. 블럭 614-10으로 부터 알수 있는 바와 같이, 전체 블럭이 서입되었으면, 버스(14-420)에 인가된는 LRU페이지 레벨번호 및 BTA서입 블럭번호값들이 주 메모리로 서입되는 블럭의 서입 블럭비트들을 리세트시키는데 사용된다.
제6b도에 나타낸 바와같이, BTA우선순위 인코더회로에 의해 검출된 각 서입블럭에 대하여 블럭 614-2내지 614-12의 동작순서가 반복된다. 즉, 아무것도 검출되지 않을때까지, 동일한 그룹의 블럭 서입비트들이 억세스되고 2진 '1'값들에 대해 시험된다. 64개의 모든 블럭 서입비트들이 시험되고 리세트 될때까지, 상기와 동일한 동작이 다음 그룹의 블럭 서입비트들에 대해서 수행된다. 이때, 사이폰동작은 완료되고, 상기 순서는 계속된다.
블럭 605-16으로 부터 알 수 있는 바와 같이, 버스(14-420)에 인가된는 LRU페이지 레벨번호값은 VMMU의 새로운 페이지 프레임번호값(PAU)을 PAR 및 PAC메모리(14-412) 및(14-408)의 적절한 기억장소들로 서입시키는데 이용된다. 또한, AR레지스터(14-402)로 부터의 유효 페이지번호(ERN)어드레스 비트들이 동일한 LRU페이지 레벨번호값에 의해 규정된 CAC메모리 기억 장소중 2진 '1'값으로 고정도는 기억 장소의 타당성 비트 위치에 서입된다. 블럭 605-20에서 나타낸 바와 같이, VMMU(14-400)의 세그맨트 및 페이지 판별기로 부터의 전용 비트 및 변형비트를 나타내는 신호들이 LRU 페이지 레벨번호값으로 규정된 PTA메모리 기억장소에 서입된다. 이것으로 페이지미스 순서가 완료된다.
LRU회로(14-422)로 부터의 페이지 레벨번호와 레지스터(14-432)로 부터의 오프셋으로 구성된 캐쉬어드레스는, 블럭 604-6에서 나타낸 바와 같이, BTA 및 PGR어드레스레지스터에 로드된다. 타당성비트들이 다시 상술한 바와 같이 처리된다. 블럭 604-8으로 부터, 요청된 블럭의 블럭 타당성비트가 타당하지 않을때, 블럭 606-2 내지 606-8의 동작 순서가 수행됨을 알 수 있다. 이에 따라, 요청된 블럭이 주 메모리로 독출된다. 블럭 606-2에서 나타낸 바와 같이, CAC메모리(14-406)에의해 버스(14-420)에 인가되는 캐쉬어드레스의 페이지 레벨번호 값은 PAR메모리리(14-412)로 부터 페이지 프레임번호값을 메모리 어드레스레지스터(14-422)로 판독하는데 이용된다.
블럭 604-6에 있어서, 오프셋 레지스터(14-432)에 미리 기억되어 있던 블럭에서 얻어진 블러번호(BN)값과 연쇄된 페이지 레벨번호값은, 스윗치(14-440)의 위치 0을 통해 선택된 기본 어드레스로 사용되어, 주메모리로부터 미스블럭을 캐쉬메모리(14-40)에 전송한다. 주 메모리로 부터 FIFO메모리(14-436)에 전송된 더블워드들의 PGR메모리(14-410)에 서입되어, 스윗치(14-430)의 위치 1을 통해 인가되는 페이지 레벨번호, BTA블럭번호 및 워드 카운터값에 의해 규정된 기억장소에 기억된다. 8개의 더블워드 전송 완료시, CAC/LRU페이지 레벨번호에 의해 지정된 블럭의 BTA메모리(14-414)중의 타당성비트위치는 2진 '1'값으로 고정된다. 이로써 블럭미스 순서가 완료된다.
요청된 블럭이 타당한 것으로 가정하면, 블럭 604-10에 나타낸 바와 같이, 캐쉬제어회로(14-404)는 상기 요청이 서입임을 검출하여 블럭609-2 내지 609-10의 동작순서를 수행한다. 이에 따라. 더블워드가 CPU(14-2)의 출력 버스로부터 PGR메모리(14-410)로 서입된다. 보다 구체적으로 스윗치(14-430)의 위치 3을 통해 인가되는 AR레지스터(14-402)로 부터의 CAC/LRU페이지 레벨번호값과 유효 블럭번호값은 PGR메모리(14-410)내의 적절한 기억장소를 억세스하기 위한 캐쉬어드레스로서 이용된다. 상기 더블워드는 캐쉬제어회로(14-404)의 제어하에 상기 기억장소에 서입되다.
페이지 변형비트의 상태를 테스트하기 위해 PTA메모리(14-416)를 어드레스하는데 사용되는 CAC/LRU페이지 레벨번호값은 동일하다. 변형비트가 온(즉, 2진'1'상태)이면, 동일한 CAC/LRU페이지 레벨번호값을 이용하여 PTA메모리(14-416)로 부터 페이지 전용비트가 억세스 된다. 페이지 전용비트가 온(2진 '1')상태이면, 스윗치(14-444)의 위치 1을 통해 인가되는 AR레지스터(14-402)의 유효 블럭번호값과 연쇄된 페이지 레벨번호값이 BTA메모리(14-414)를 어드레스하는데 이용된다. 캐쉬제어회로(14-404)는 규정된 블럭 서입 비트를 2진 '1'값으로 고정시키도록 한다. 이때, 서입순서는 완료된다. CPU로부터의 각 서입요청은 개별적으로 개시되는 것으로 가정하였다. 그러므로 캐쉬제어회로(14-404)는 이제 블럭 602-8 에 도시된 바와 같은 새로운 캐쉬동작요청을 기다리게 된다.
제6b도로 부터 알 수 있는 바와 같이, 고정되는 변형비트 및 전용비트가 없으면, 세트 변형 및 글로우벌(global)순서가 수행된다. 블럭 61-2 내지 610-8의 세트변형 순서동작을 통해, VMMU(14-400)는 주 메모리로부터 독출된 페이지 판별에 대해 타당성테스트를 수행하고, 타당한 경우 그 페이지 판별을 업 데이타 시켜서 주 메모리에 다시 기억시킨다.
블럭 612-2 및 616-4의 글로우벌 순서동작을 통해 CPU(14-2)의해 PGR메모리(14-410)중에 서입되는 비전용, 즉 공유데이타가 주 메모리에도 서입된다.
블럭 612-2에 나타낸 바와 같이, PAR메모리(14-412)로 부터 페이지 프레임번호 어드레스를 얻기 위한 CAC페이지 레벨번호가 사용된다. 이 값은 스윗치(14-440)의 위치 0을 거쳐 인가되는 오프셋 레지스터(14-432)의 내용과 연쇄되고, MAR레지스터(14-442)에 로드되는 실제 어드레스를 형성한다. 캐쉬어드레스로서 스윗치(14-430)의 위치 0을 거쳐 인가되는 동일한 페이지 레벨번호와 오프셋 레지스터를 이용하면, CPU(14-2)에 의해 서입되는 기억장소의 데이타 내용들은 FIFO메모리(14-436)로 독출된다. 여기서, 데이타 MAR레지스터(14-442)내에 기억된 실제 어드레스에 의해 규정된 기억장소로 주 메모리중에 서입된다.
제6c도는, 본 발명의 캐쉬구성이 소정 페이지에 관련한 정보를 변경시키는데 필요한 특정의 동작 시스템기능(시스템지령)의 실행을 용이하게 할 수 있게 하는 실시예를 제공한다. 예를들면, 소정의 비유효 시간후에, 기존의 처리에 대한 데이타를 제거하는 것이 바람직하게 된다. 이것은 임의의 중앙 서브시스템에 의해 개시되는 시스템지령에 의해 실행된다. 상기 시스템지령은 시스템버스(12)의 공통 부분을 거쳐 제1도의 모든 중앙 서브시스템으로 분포된다. 이로써, 블럭 616-2 내지 616-8의 순서동작이 수행될 수 있다. 이 동작은 스누프레지스터(14-450)에 기억되어 있던 시스템지령으로 규정되는 페이지 프레임번호값을 소거하기 위한 것이다. 도시된 바와 같이, 이 값은 스누프레지스터(14-450)에 의해 PAC메모리(14-408)로 인가된다. 히트가 검출되면, PAC메모리(14-408)는 히트신호를 발생시키고, 페이지 레벨번호를 버스(14-420)에 인가한다. 이 페이지 레벨번호 값은 캐쉬제어회로(14-404)에 의해 관련된 타당성비트 위치들이 '0'으로 리세트 되도록 하여 CAC메모리(14-406)와 PAC메모리(14-408)내의 규정된 레벨로 페이지정보를 무효화 시키는데이용된다. 따라서, 이 페이지 레벨번호값을 사용하여, 규정된 동작이 급속히 실행될 수 있다.
제6a도 내지 제6c도와 제7a도 내지 제7c도 를 비교해보면 알 수 있는 바와 같이, 제2도의 데이타 캐쉬 메모리(14-40)와 제3의 명령 캐쉬메모리(14-50)는 동일한 방식으로 동작한다. 명령 캐쉬메모리(14-50)의 동작 방식에 대해 제6a도에 내지 제6c도에 사용된 동일한 참조부호를 사용하여 제7a도 내지 제7c도에 예시하였다. 캐쉬메모리(14-40)가 명령을 실행함으로 인해 특정의 순서동작(예를들면, 사이폰 및 서입순서)이 제거될 수 있다는 점을 주의할 필요가 있다. 그러므로, 제6b도의 순서는 간략화 된다.
CAC메모리의 히트 및 블럭 타당성 상태가 존재하면, CPU명령(I)유니트에는 ICR메모리(14-510)로 부터의 요청에 더블워드가 로드된다. 이때, 사용중인 명령어드레스 레지스터 오프셋 블럭번호와 IAR레지스터의 더블워드 내용은 1씩 증분된다. 명령어 드레스 및 페이지 레벨번호 레지스터의 구성에서는 캐쉬메모리(14-50)에의해 CPU(14-2)에 대한 명령 전송속도가 고속화 된다. 즉, CPU(14-2)는 동일 블럭으로 부터 명령을 계속 요청 할 것이고, ICR메모리(14-510)로 부터의 명령을 신속하게 억세스 및 전송하는 루프가 제공된다. 이 전송은 오버 플로우가 검출될때까지 계속되고, 오버블로우의 검출시 다른 페이지가 요청될 것이다.
상술한 바와 같이, 본발명의 동일한 캐쉬구성이 데이타 캐쉬메모리 및 명령 캐쉬메모리의 설계에 사용될 수 있다. 본 발명의 구성은 공통 캐쉬어드레스를 이용하여 모든 페이지 관련정보를 신속히 억세스 할 수 있다. 페이지에 대해 다른 동작(예를들면, 안전동작)의 수행이 적합하게 되는 겅우에는 언제든지, 관련된 정보를 억세스하기 위한 페이지 레벨번호 버스에 별도의 메모리를 추가하면 된다.
입력 CAM메모리가 단일 태그값에만 의존하여 가상 어드레스나 실제 어드레스의 비교를 수행하기 때문에, 페이지 레벨번호의 발생을 위한 동작속도가 증진된다. 더우기, 데이타 캐쉬 메모리(14-40)의 경우, 32개의 레벨만 도시하였지만, 동작속도에는 거의 영향을 미치지 않고 페이지의 수를 증가시킬 수 있다. 당 분야에 통상의지식을 가진자라면, 제6a도 내지 제6c도와 제7a도 내지 제7c도의 흐름선도를 참조로 한 이제까지의 설명은 실시예의 설명을 위한 것임을 이해할 수 있을 것이다. 예를 들면, 캐쉬제어싸이클의 단계를 경감하거나 또는 유지하도록 특정의 동작들을 결합하거나 그대로 수행하게 할 수 있을 것이다.
또한, 당분야에 통상의 지식을 가진자라면, 특허 청구의 범위에 기재된 본 발명의 특징에서 벗어나지 않는 범위내에서 본 발명의 실시에에 대해 여러가지로 변형시킬 수도 있을 것이다.

Claims (10)

  1. 각 세그멘트가 복수의 페이지를 포함하고, 각 페이지는 복수의 블럭을 포함하며, 각 블럭은 복수의 워드를 포함하도록 한 복수의 세그멘트로 분할된 주 메모리에, 이 주메모리를 공유하도록 복수의 처리 유니트를 연결시킨 다중 처리시스템내에 사용하기위한 것으로, 상기복수의 처리 유니트중에서 하나의 처리유니트로부터 수신된 정보에 대한 요청들에 응답하여, 상기 주 메모리로부터 독출된 고속 억세스 정보를 제공하기 위해 상기 하나의 처리 유니트에 결합되며, 상기 각 요청은 억세스 되어야할 정보 워드들을 식별하기 위한 입력 어드레스를 포함하도록 한 캐쉬 메모리에 있어서, 상기복수의 페이지의 각 소저번호에 관한 어드레스 정보를 기억하기 위한 복수의 기억장소를 각각 포함하되, 상기 하나의 처리유니트로부터 상기 입력어드레스를 수신 하도록 상기 하나의 처리 유니트에 그 제1의 연상 메모리가 연결되어 있는 복수의 연상메모리와 ; 상기 복수의 페이지의 각각에 관한 어드레스, 제어 및 데이타 정보를 기억하기 위한 복수의 기억장소를 각각 포함하는 복수의 직접 억세스 메모리와 ; 각각의 연상 메모리 및 각각의 직접 억세스 메모리를 공통적으로 접속한 공통 내부버스와 ; 상기 하나의 처리유니트로부터 상기 요청들을 수신하도록 결합된 캐쉬 제어수단을 구비하고, 상기 캐쉬 제어수단은 정보에 대한 각 요청에 응답하여 상기 입력 어드레수중 유효 어드레스에 상당하는 제1부분을 상기 복수의 연상 메모리중 상기 제1의 연상메모리에 인가하도록 동작하고, 상기 제1의 연상 메모리는 요청된 정보를 포함하는 페이지가 캐쉬 메모리중에 존재함을 나타내는 히트상태를 검출함에 따라 상기 복수의 연상 메모리 및 상기 복수의 직접 억세스 메모리내에 정보가 기억되어 있는 것을 식별하는 상기 버스상에 상기 페이지에 관한 페이지 레벨 번호값을 발생하도록 동작하며 상기 캐쉬 제어수단은 또한 상기 페이지레벨 번호 값과 함께 상기 입력 어드레스의 다른 부분들을 캐쉬 어드레스로서 상기 하나의 처리 유니트에 대해 요청된 정보 워드들을 독출하도록 요청된 상기 연상메모리 및 직접 억세스 메모리들 중 다른 메모리들에 인가하는 것을 특징으로 하는 캐쉬 메모리.
  2. 제1항에 있어서, 상기 입력 어드레스는 가상 어드레스이고, 상기 제1의 연상 메모리 기억장소들은 상기 주 메모리 세그멘트 페이지들 중에서 상기 캐쉬 메모리내의 기억장소들에 기억되어 있는 페이지들을 식별하는 섹스멘트 및 페이지 가상 어드레스들을 포함하며, 상기 캐쉬 메모리는 또한 상기 하나의 처리 유니트로부터 상기 입력 어드레스를 수신하도록 결합된 가상 메모리 어드레스 변환수단을 구비하되, 상기 가상 메모리 어드레스 변환수단은 상기 히트상태의 존재를 결정하기 위한 상기 입력 연상메모리의 감시와 요청된 정보 워드들을 억세스 하기 위한 상기 페이지 레벨번호 값의 발생을 중첩하도록 상기 가상 어드레스를 실제 어드레스로 변환시킬 수 있는 것을 특징으로 하는 캐쉬 메모리.
  3. 주 메모리가 복수의 페이지로 분리되고, 상기 각 페이지가 복수의 블럭을 포함하며, 각 블럭이 복수의 워드를 포함하도록 한 주 메모리에 연결된 처리유니트와 함께 사용하기위한 것으로, 상기 처리 유니트로부터 수신된 정보에 대한 요청들에 응답하여 상기 주 메모리로부터 독출된 고속 억세스 정보를 제공하고, 상기 각 요청은 억세스되어야할 정보 워드들을 식별하기 위한 입력 어드레스를 포함하도록한 것인 캐쉬 메모리에 있어서, 상기복수의 페이지의 각각에 관한 제1유형의 정보를 기억하기 위한 복수의 기억장소를 각각 포함하되, 상기 처리 유니트로부터 상기 입력 어드레스를 수신하도록 상기 처리 유니트에 그 제1의 연상 메모리가 연결되어 있는 복수의 연상메모리와 ; 상기 복수의 페이지의 각각에 다른 유형의 정보들을 기억하기 위한 복수의 기억장소를 각각 포함하는 복수의 직접억세스 메모리와 ; 각각의 연상 메모리 및 각각의 직접 억세스 메모리를 공통적으로 접속한 공통 내부버스와 ; 상기 하나의 처리 유니트로부터 상기 요청들을 수신 하도록 결합된 캐쉬 제어수단을 구비하고, 상기 캐쉬 제어수단은 정보에 대한 각 요청에 응답하여 상기 입력 어드레스중 유효 어드레스에 상당하는 제1부분을 상기 복수의 연상 메모리중 상기 제1의 연상메모리에 인가하도록 동작하고, 상기 제1의 연상메모리는 요청된 정보를 포함하는 페이지가 캐쉬 메모리중에 존재함을 나타내는 히트 상태를 검출함에 따라 상기 복수의 연상 메모리 및 상기 복수의 직접 억세스 메모리 내에 정보가 기억되어 있는 것을 식별하는 상기 버스상에 상기 페이지에 관한 페이지 레벨 번호값을 발생하도록 동작하며, 상기 캐쉬 제어수단은 또한 상기 페이지레벨번호값과 함께 상기 입력 어드레스의 다른 부분들을 캐쉬 어드레스로서 상기 하나의 처리 유니트에 대해 요청된 워드들을 독출하도록 요청된 상기 연상메모리 및 직접 억세스 메모리들 중 다른 메모리들에 인가하는 것을 특징으로 하는 캐쉬 메모리.
  4. 제3항에 있어서, 상기 입력 어드레스는 가상 어드레스이고, 상기 제1의 연상 메모리 기억장소들은 상기 주 메모리 세그멘트 페이지들 중에서 상기 캐쉬 메모리내의 기억장소들에 기억되어 있는 페이지들을 식별하는 세그먼트 및 페이지 가상 어드레스들을 포함하며, 상기 캐쉬 메모리는 또한 상기 하나의 처리유니트로부터 상기 입력 어드레스를 수신하도록 결합된 가상 메모리 어드레스 변환 수단을 구비하되, 상기 가상 메모리 어드레스 변환수단은 상기 히트상태의 존재를 결정하기 위한 상기 입력 연상 메모리의 감시와 요청된 정보 워드들을 억세스 하기 위한 상기 페이지레벨 번호값의 발생을 중첩하도록 상기 가상 어드레스를 실제어드레스로 변환시킬수 있는 것을 특징으로 하는 캐쉬 메모리.
  5. 제3항에 있어서, 상기 제1의 직접 억세스 메모리의 기억장소들은 상기 복수의 페이지들의 상기 복수의 블럭에 대한 타당성 비트들을 기억하고, 상기 캐쉬 제어수단은 상기 히트 상태를 나타내는 상기 제1직접 억세스 메모리로 부터의 신호에 응답하여 상기 제1의 직접 억세스 메모리를 인에이블시킴으로써, 요청된 정보 워드들을 포함하는 타당성 블럭이 상기 캐쉬 메모리중에 기억되어 있는 지의 여부를 결정하기 위해 상기 페이지 레벨 번호값으로 규정된 타당성 비트표시와 상기 입력 어드레스의 다른 부분들을 독출하도록 동작하는 것을 특징으로 하는 캐쉬 메모리.
  6. 제5항에 있어서, 상기 복수의 연상메모리중 제2의 연상 메모리는 상기 캐쉬 메모리내의 기억장소들에 기억된 상기 페이지들의 실제 어드레스들을 기억함과 동시에 상기 실제 어드레스들의 가상 스테이터스를 나타내기 위한 기억장소들을 갖되, 상기 제2의 연상 메모리는 각각의 새로운 실제 어드레스를 수신하기 위해 상기 가상 메모리 변환수단에 결합되고, 상기 제2의 연상 메모리는 또한 상기 새로운 실제 어드레스와 기억되어 있던 임의의 타당성 실제 어드레스 사이의 비교를 검출하여 상기 페이지레벨 번호에 의해 규정된 상기 제1연상 메모리의 상기 기억장소중 하나의 기억장소에 상기 새로운 가성 어드레스를 기억하고, 이에 따라 동일 페이지에 중복 로드하는 것을 방지하며, 더우기 동일한 실제 어드레스로 두개의 가상 어드레스를 사상하는 것을 방지하기 위해 상기 페이지 레벨 번호값을 상기 버스상에서 발생시키는 것을 특징으로 하는 캐쉬 메모리.
  7. 제6항에 있어서, 상기 캐쉬 메모리는 또한 상기 복수의 처리 유니트들중 다른 처리 유니트들로 부터의 서입 요청들을 수신하도록 상기 주 메모리에 공통 결합된 스누프 레지스터 및 디코드 수단을 구비하되, 상기 서입 요청들은 주 메모리내에서 정보가 서입될 실제 어드레스 들을 포함하고, 상기 스누프 레지스터 및 디코드 수단은 상기 제2의 연상 메모리에 결합되어, 수신된 서입요청 실제 어드레스와 기억된 임의의 실제 어드레스 사이의 비교 검출에 따라 페이지레벨 번호 값을 발생시키도록 하고, 이에 따라 상기 주 메모리와 상기 캐쉬 메모리 사이에 데이타 일치를 유지시키도록 하는 것을 특지으로 하는 캐쉬 메모리.
  8. 제7항에 있어서, 상기 복수의 직접 억세스 메모리중 제1의 직접 억세스 메모리의 상기 복수의 기억장소들은 블럭 타단성 비트 기억장소들을 포함하고, 상기 제1의 직접 억세스 메모리는 상기 스누프 레지스터 수단 및 상기 제2의 연상 메모리에 연결되며, 상기 제2의 연상 메모리는 상기 버스에 인가된 상기 페이지 레벨 번호에 의해 규정된 레벨로 기억되어 있는 상기 스누프 레지스터 수단으로 부터의 상기 실제 어드레스에 의해 규정된 블럭의 타당성 비트 표시를 무효화 시키도록 상기 제1의 직접 억세스 메모리를 조절하기 위해 상기 비교를 시호화한 히트 신호를 발생시키도록 동작하는 것을 특징으로 하는 캐쉬 메모리.
  9. 제3항에 있어서, 상기 캐쉬 메모리는 또한 페이지 레벨 번호 값들을 발생시키기 위한 치환수단을 구비하되 상기 치환 수단은 상기 제1연상 메모리 및 상기 공통 내부버스에 연결되며, 또한 상기 치환 수단은 히트 상태가 존재하지 않음을 나타내는 상기 제1연상 메로리로 부터의 신호에 응답하여 상기 연상 메모리와 상기 직접 억세스 메모리들중 다른 메모리들중에서 서입되어야할 새로운 어드레스에 관한 정보를 규정하기 위한 페이지레벨 번호 값을 상기 버스에 인가하도록 동작하는 것을 틀징으로 하는 캐쉬 메모리.
  10. 제9항에 있어서, 상기 직접 억세스 메모리들중 제2의 직접 억세스메모리는 상기 복수의 페이지들의 기억장소에 기억된 각 페이지의 상기 복수의 데이타 블럭중 적어도 하나의 블럭에 대한 데이타 워드들을 기억하고, 제3의 직접 억세스 메모리는 서입된 각 페이지의 임의의 블럭들을 지정하기 위한 서입 비트 표시를 포함하는 기억장소들을 가지며, 상기 캐쉬 제어수단은 상기 히트 상태가 존재하지 않는 경우에 상기 제2직접 억세스 메모리에 대해 상기 서입 비트 표시에 의해 지정된 서입블럭을 상기 주 메모리에 전송하여 새로운 페이지가 상기 제2메모리내의 동일한 기억 장소들내에 기억될 수 있도록 동작하는 것을 특징으로 하는 캐쉬 메모리.
KR1019860010922A 1985-12-19 1986-12-19 고속 캐쉬 시스템 KR920005280B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/811,044 US4785398A (en) 1985-12-19 1985-12-19 Virtual cache system using page level number generating CAM to access other memories for processing requests relating to a page
US811,044 1985-12-19

Publications (2)

Publication Number Publication Date
KR870006471A KR870006471A (ko) 1987-07-11
KR920005280B1 true KR920005280B1 (ko) 1992-06-29

Family

ID=25205385

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019860010922A KR920005280B1 (ko) 1985-12-19 1986-12-19 고속 캐쉬 시스템

Country Status (7)

Country Link
US (1) US4785398A (ko)
EP (1) EP0232526B1 (ko)
KR (1) KR920005280B1 (ko)
AU (1) AU595846B2 (ko)
CA (1) CA1278101C (ko)
DE (1) DE3688192T2 (ko)
ES (1) ES2039351T3 (ko)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4972338A (en) * 1985-06-13 1990-11-20 Intel Corporation Memory management for microprocessor system
US4783735A (en) * 1985-12-19 1988-11-08 Honeywell Bull Inc. Least recently used replacement level generating apparatus
US4953073A (en) * 1986-02-06 1990-08-28 Mips Computer Systems, Inc. Cup chip having tag comparator and address translation unit on chip and connected to off-chip cache and main memories
JPS62194563A (ja) * 1986-02-21 1987-08-27 Hitachi Ltd バツフア記憶装置
JPH0769868B2 (ja) * 1986-09-25 1995-07-31 松下電器産業株式会社 高速アドレス変換装置
US5123101A (en) * 1986-11-12 1992-06-16 Xerox Corporation Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
US5249276A (en) * 1987-06-22 1993-09-28 Hitachi, Ltd. Address translation apparatus having a memory access privilege check capability data which uses mask data to select bit positions of priviledge
US5119290A (en) * 1987-10-02 1992-06-02 Sun Microsystems, Inc. Alias address support
JPH0195347A (ja) * 1987-10-08 1989-04-13 Nec Corp アドレス変換方式
JPH01112450A (ja) * 1987-10-27 1989-05-01 Sharp Corp メモリ管理ユニット
GB8728494D0 (en) * 1987-12-05 1988-01-13 Int Computers Ltd Multi-cache data storage system
US5003459A (en) * 1988-04-01 1991-03-26 Digital Equipment Corporation Cache memory system
JPH0754484B2 (ja) * 1988-06-17 1995-06-07 株式会社日立製作所 複数のプロセッサを有する計算機システムの記憶制御装置
US5058006A (en) * 1988-06-27 1991-10-15 Digital Equipment Corporation Method and apparatus for filtering invalidate requests
GB8823077D0 (en) * 1988-09-30 1988-11-09 Int Computers Ltd Data processing apparatus
JPH0769865B2 (ja) * 1988-10-08 1995-07-31 日本電気株式会社 情報処理装置
US5224217A (en) * 1988-12-30 1993-06-29 Saied Zangenehpour Computer system which uses a least-recently-used algorithm for manipulating data tags when performing cache replacement
CA1325288C (en) * 1989-02-03 1993-12-14 Ricky C. Hetherington Method and apparatus for controlling the conversion of virtual to physical memory addresses in a digital computer system
JPH0348951A (ja) * 1989-07-18 1991-03-01 Fujitsu Ltd アドレスモニタ装置
US5077826A (en) * 1989-08-09 1991-12-31 International Business Machines Corporation Cache performance in an information handling system employing page searching
US5125085A (en) * 1989-09-01 1992-06-23 Bull Hn Information Systems Inc. Least recently used replacement level generating apparatus and method
US5148538A (en) * 1989-10-20 1992-09-15 International Business Machines Corporation Translation look ahead based cache access
CA2028085A1 (en) * 1989-11-03 1991-05-04 Dale J. Mayer Paged memory controller
GB2239724B (en) * 1990-01-05 1993-11-24 Sun Microsystems Inc Apparatus for maintaining consistency in a multi-processor computer system using virtual caching
US5123094A (en) * 1990-01-26 1992-06-16 Apple Computer, Inc. Interprocessor communications includes second CPU designating memory locations assigned to first CPU and writing their addresses into registers
US5450564A (en) * 1990-05-04 1995-09-12 Unisys Corporation Method and apparatus for cache memory access with separate fetch and store queues
US5317708A (en) * 1990-06-29 1994-05-31 Digital Equipment Corporation Apparatus and method for an improved content addressable memory
JPH04233642A (ja) * 1990-07-27 1992-08-21 Dell Usa Corp キャッシュアクセスと並列的にメモリアクセスを行なうプロセッサ及びそれに用いられる方法
US5283876A (en) * 1990-10-05 1994-02-01 Bull Hn Information Systems Inc. Virtual memory unit utilizing set associative memory structure and state machine control sequencing with selective retry
US5193170A (en) * 1990-10-26 1993-03-09 International Business Machines Corporation Methods and apparatus for maintaining cache integrity whenever a cpu write to rom operation is performed with rom mapped to ram
EP0488566A3 (en) * 1990-11-29 1992-10-21 Sun Microsystems, Inc. Method and apparatus for fast page mode selection
JP3015493B2 (ja) * 1991-04-26 2000-03-06 株式会社東芝 半導体連想記憶装置
JPH0520197A (ja) * 1991-07-09 1993-01-29 Hitachi Ltd 記憶管理システム及びマイクロプロセツサ
JP3065736B2 (ja) * 1991-10-01 2000-07-17 松下電器産業株式会社 半導体記憶装置
GB2260429B (en) * 1991-10-11 1995-05-24 Intel Corp Versatile cache memory
US5584017A (en) * 1991-12-19 1996-12-10 Intel Corporation Cache control which inhibits snoop cycles if processor accessing memory is the only processor allowed to cache the memory location
GB9205551D0 (en) * 1992-03-13 1992-04-29 Inmos Ltd Cache memory
US5428759A (en) * 1992-03-30 1995-06-27 Unisys Corporation Associative memory system having segment and page descriptor content-addressable memories
US5603011A (en) * 1992-12-11 1997-02-11 International Business Machines Corporation Selective shadowing and paging in computer memory systems
US5426602A (en) * 1993-03-31 1995-06-20 Mentor Graphics Corporation Detection of multiple hits within a device having multiple sense outputs
US5890221A (en) * 1994-10-05 1999-03-30 International Business Machines Corporation Method and system for offset miss sequence handling in a data cache array having multiple content addressable field per cache line utilizing an MRU bit
US5640534A (en) * 1994-10-05 1997-06-17 International Business Machines Corporation Method and system for concurrent access in a data cache array utilizing multiple match line selection paths
US5682495A (en) * 1994-12-09 1997-10-28 International Business Machines Corporation Fully associative address translation buffer having separate segment and page invalidation
US6006312A (en) * 1995-02-27 1999-12-21 Sun Microsystems, Inc. Cachability attributes of virtual addresses for optimizing performance of virtually and physically indexed caches in maintaining multiply aliased physical addresses
US5897651A (en) * 1995-11-13 1999-04-27 International Business Machines Corporation Information handling system including a direct access set associative cache and method for accessing same
US5995967A (en) * 1996-10-18 1999-11-30 Hewlett-Packard Company Forming linked lists using content addressable memory
US6148364A (en) * 1997-12-30 2000-11-14 Netlogic Microsystems, Inc. Method and apparatus for cascading content addressable memory devices
US6199140B1 (en) * 1997-10-30 2001-03-06 Netlogic Microsystems, Inc. Multiport content addressable memory device and timing signals
US6240485B1 (en) 1998-05-11 2001-05-29 Netlogic Microsystems, Inc. Method and apparatus for implementing a learn instruction in a depth cascaded content addressable memory system
US6219748B1 (en) 1998-05-11 2001-04-17 Netlogic Microsystems, Inc. Method and apparatus for implementing a learn instruction in a content addressable memory device
US6381673B1 (en) 1998-07-06 2002-04-30 Netlogic Microsystems, Inc. Method and apparatus for performing a read next highest priority match instruction in a content addressable memory device
US6892272B1 (en) 1999-02-23 2005-05-10 Netlogic Microsystems, Inc. Method and apparatus for determining a longest prefix match in a content addressable memory device
US6539455B1 (en) 1999-02-23 2003-03-25 Netlogic Microsystems, Inc. Method and apparatus for determining an exact match in a ternary content addressable memory device
US6499081B1 (en) 1999-02-23 2002-12-24 Netlogic Microsystems, Inc. Method and apparatus for determining a longest prefix match in a segmented content addressable memory device
US6574702B2 (en) 1999-02-23 2003-06-03 Netlogic Microsystems, Inc. Method and apparatus for determining an exact match in a content addressable memory device
US6460112B1 (en) 1999-02-23 2002-10-01 Netlogic Microsystems, Llc Method and apparatus for determining a longest prefix match in a content addressable memory device
US6137707A (en) * 1999-03-26 2000-10-24 Netlogic Microsystems Method and apparatus for simultaneously performing a plurality of compare operations in content addressable memory device
DE60045552D1 (de) * 1999-06-30 2011-03-03 Apptitude Inc Verfahren und gerät um den netzwerkverkehr zu überwachen
US7110407B1 (en) 1999-09-23 2006-09-19 Netlogic Microsystems, Inc. Method and apparatus for performing priority encoding in a segmented classification system using enable signals
US7272027B2 (en) 1999-09-23 2007-09-18 Netlogic Microsystems, Inc. Priority circuit for content addressable memory
US6934795B2 (en) 1999-09-23 2005-08-23 Netlogic Microsystems, Inc. Content addressable memory with programmable word width and programmable priority
US6944709B2 (en) 1999-09-23 2005-09-13 Netlogic Microsystems, Inc. Content addressable memory with block-programmable mask write mode, word width and priority
US7487200B1 (en) 1999-09-23 2009-02-03 Netlogic Microsystems, Inc. Method and apparatus for performing priority encoding in a segmented classification system
US6567340B1 (en) 1999-09-23 2003-05-20 Netlogic Microsystems, Inc. Memory storage cell based array of counters
US7143231B1 (en) 1999-09-23 2006-11-28 Netlogic Microsystems, Inc. Method and apparatus for performing packet classification for policy-based packet routing
US6763425B1 (en) * 2000-06-08 2004-07-13 Netlogic Microsystems, Inc. Method and apparatus for address translation in a partitioned content addressable memory device
US6751720B2 (en) 2000-06-10 2004-06-15 Hewlett-Packard Development Company, L.P. Method and system for detecting and resolving virtual address synonyms in a two-level cache hierarchy
US6784892B1 (en) * 2000-10-05 2004-08-31 Micron Technology, Inc. Fully associative texture cache having content addressable memory and method for use thereof
US6983318B2 (en) * 2001-01-22 2006-01-03 International Business Machines Corporation Cache management method and system for storing dynamic contents
US6556466B2 (en) * 2001-04-26 2003-04-29 International Business Machines Corporation Method and structure for a CAMRAM cache memory
KR100518576B1 (ko) * 2003-05-24 2005-10-04 삼성전자주식회사 버스 중재기 및 버스 중재방법
US7809888B1 (en) * 2004-09-29 2010-10-05 Emc Corporation Content-aware caching techniques
US20080189487A1 (en) * 2007-02-06 2008-08-07 Arm Limited Control of cache transactions
US7996534B2 (en) * 2008-10-09 2011-08-09 Axiometric, Llc File distribution in wireless networks
US10606591B2 (en) 2017-10-06 2020-03-31 International Business Machines Corporation Handling effective address synonyms in a load-store unit that operates without address translation
US10572256B2 (en) 2017-10-06 2020-02-25 International Business Machines Corporation Handling effective address synonyms in a load-store unit that operates without address translation
US10394558B2 (en) 2017-10-06 2019-08-27 International Business Machines Corporation Executing load-store operations without address translation hardware per load-store unit port
US11175924B2 (en) 2017-10-06 2021-11-16 International Business Machines Corporation Load-store unit with partitioned reorder queues with single cam port
US10417002B2 (en) 2017-10-06 2019-09-17 International Business Machines Corporation Hazard detection of out-of-order execution of load and store instructions in processors without using real addresses
US10606590B2 (en) 2017-10-06 2020-03-31 International Business Machines Corporation Effective address based load store unit in out of order processors

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3618040A (en) * 1968-09-18 1971-11-02 Hitachi Ltd Memory control apparatus in multiprocessor system
US3601812A (en) * 1969-01-22 1971-08-24 Rca Corp Memory system
US3723976A (en) * 1972-01-20 1973-03-27 Ibm Memory system with logical and real addressing
US3848234A (en) * 1973-04-04 1974-11-12 Sperry Rand Corp Multi-processor system with multiple cache memories
US4453230A (en) * 1977-12-29 1984-06-05 Tokyo Shibaura Electric Co., Ltd. Address conversion system
US4264953A (en) * 1979-03-30 1981-04-28 Honeywell Inc. Virtual cache
US4467414A (en) * 1980-08-22 1984-08-21 Nippon Electric Co., Ltd. Cashe memory arrangement comprising a cashe buffer in combination with a pair of cache memories
EP0212678B1 (en) * 1980-11-10 1990-05-16 International Business Machines Corporation Cache storage synonym detection and handling means
US4481573A (en) * 1980-11-17 1984-11-06 Hitachi, Ltd. Shared virtual address translation unit for a multiprocessor system
JPS5898893A (ja) * 1981-12-09 1983-06-11 Toshiba Corp 情報処理装置
US4493026A (en) * 1982-05-26 1985-01-08 International Business Machines Corporation Set associative sector cache
US4612612A (en) * 1983-08-30 1986-09-16 Amdahl Corporation Virtually addressed cache
US4669043A (en) * 1984-02-17 1987-05-26 Signetics Corporation Memory access controller

Also Published As

Publication number Publication date
CA1278101C (en) 1990-12-18
EP0232526A3 (en) 1989-08-30
DE3688192D1 (de) 1993-05-06
AU6647886A (en) 1987-06-25
KR870006471A (ko) 1987-07-11
ES2039351T3 (es) 1993-10-01
US4785398A (en) 1988-11-15
DE3688192T2 (de) 1993-11-04
EP0232526A2 (en) 1987-08-19
AU595846B2 (en) 1990-04-12
EP0232526B1 (en) 1993-03-31

Similar Documents

Publication Publication Date Title
KR920005280B1 (ko) 고속 캐쉬 시스템
EP0036110B1 (en) Cache addressing mechanism
US5230045A (en) Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus
KR960001946B1 (ko) 우선 변환 참조버퍼
US5412787A (en) Two-level TLB having the second level TLB implemented in cache tag RAMs
US5123101A (en) Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
US4797814A (en) Variable address mode cache
US3761881A (en) Translation storage scheme for virtual memory system
US4493026A (en) Set associative sector cache
US5133058A (en) Page-tagging translation look-aside buffer for a computer memory system
US6014732A (en) Cache memory with reduced access time
US5265227A (en) Parallel protection checking in an address translation look-aside buffer
US5018061A (en) Microprocessor with on-chip cache memory with lower power consumption
JP4065660B2 (ja) 機能が並列に分散された変換索引バッファ
US6493812B1 (en) Apparatus and method for virtual address aliasing and multiple page size support in a computer system having a prevalidated cache
JPH03142644A (ja) キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
US5809562A (en) Cache array select logic allowing cache array size to differ from physical page size
JPH08227380A (ja) データ処理システム
KR920001282B1 (ko) 버퍼메모리 제어장치
JP3210637B2 (ja) データ処理システム内のキャッシュ・メモリにアクセスするための方法およびシステム
JPH0371355A (ja) キヤツシユ検索装置および検索方法
JP2846697B2 (ja) キャッシュメモリ制御装置
JPH03211643A (ja) 並行例外検査及び更新バイパスを有する変換索引バッファ
US6216198B1 (en) Cache memory accessible for continuous data without tag array indexing
JPS623354A (ja) キヤツシユメモリ・アクセス方式

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: 19980323

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee