KR920008456B1 - 다중버스 마이크로컴퓨터 시스템 - Google Patents

다중버스 마이크로컴퓨터 시스템 Download PDF

Info

Publication number
KR920008456B1
KR920008456B1 KR1019900007310A KR900007310A KR920008456B1 KR 920008456 B1 KR920008456 B1 KR 920008456B1 KR 1019900007310 A KR1019900007310 A KR 1019900007310A KR 900007310 A KR900007310 A KR 900007310A KR 920008456 B1 KR920008456 B1 KR 920008456B1
Authority
KR
South Korea
Prior art keywords
address
cache
cpu
bus
memory
Prior art date
Application number
KR1019900007310A
Other languages
English (en)
Other versions
KR900018821A (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 KR900018821A publication Critical patent/KR900018821A/ko
Application granted granted Critical
Publication of KR920008456B1 publication Critical patent/KR920008456B1/ko

Links

Images

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
    • 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/0886Variable-length word access
    • 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

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)
  • Memory System (AREA)

Abstract

내용 없음.

Description

다중버스 마이크로컴퓨터 시스템
제1도는 본 발명을 이용하는 전형적인 마이크로컴퓨터 시스템에 대한 3차 원도.
제2도는 본 발명을 이용하는 전형적인 마이크로컴퓨터 시스템의 주요 구성 요소들에 대한 상세 블록선도.
제3도는 82385형 캐시 컨트롤러의 내부구조에 대한 블록선도.
제4도는 종래 기술의 직접 매핑 캐시 조직에 있어서, 제3도의 캐시 디렉토리에서 전형적인 태그 레지스터의 내용을 보인 도면.
제5도는 본 발명을 이용할때의 직접 매핑 캐시 조직에 있어서, 제3도의 캐시 디렉토리의 디렉토리 A 및 디렉토리 B에서 전형적인 태그 레지스터의 내용을 보인 도면.
제6도는 종래 기술의 2-웨이 세트 연관 캐시 조직에 있어서, 제3도의 캐시 디렉토리의 디렉토리 A 및 디렉토리 B에서 전형적인 태그 레지스터의 내용을 보인 도면.
제7도는 본 발명을 이용하는 2-웨이 세트 연관 캐시 조직에 있어서, 제3도의 캐시 디렉토리의 디렉토리 A 및 디렉토리 B에 대한 전형적인 태그 레지스터의 내용을 보인 도면.
제8도는 CPU(225), 캐시 컨트롤러(260) 및 캐시 메모리(255)간의 상호 연결 및 시스템 버스와 그리고 가산 논리 C1, C2, G1-G7을 보인, 제2도 부분에 대한 상세 블록선도.
제9도는 본 발명의 원리를 이용할 때, CPU에 의해 실행되는 3개의 메모리 판독명령에 대한 예를 보인 도면.
*도면의 주요부분에 대한 부호의 설명
10 : 마이크로컴퓨터 시스템 20 : 모니터
30 : 시스템 유닛 70 : 디스크 드라이브
225 : 마이크로 프로세서 230 : CPU 로컬 버스
240, 253 : 버퍼 250 : 시스템 버스
275 : 디스플레이 어댑터 305 : 디스켓 어댑터
325 : DMA 컨트롤러 350 : 메모리
본 발명은 마이크로컴퓨터 시스템, 특히 82385 캐시 컨트롤러를 구비하며, 최소한 64KB 캐시 메모리를 포함하는 캐시 서브시스템(Cache Subsystem)을 사용하는 마이크로 컴퓨터 시스템에 관한 것이다.
본 출원은 다음에 나열하는 본 발명의 양도인에게 모두 양도되었으며, 현재 계류중인 출원들과 관계된다.
-발명자가 Ralph M. Begun, Patrick M. Bland 및 Mark E. Dean이고 발명의 명칭이 "Method and Apparatus for Selectively Posting Write Cycles Using the 82385 Cache Controller"로써 1988년 5월 26일자로 출원된 미합중국 특허 제198,893호, -발명자가 Patrick M. Bland, Mark E. Dean 및 Philip E. Milling이고 발명의 명칭이 " System Bus Preempt for 80386 when Running in an 80386/82385 Microcomputer System with Arbitration"로써 1988년 5월 26일자로 출원된 미합중국 특허 제198,895호, -발명자가 Patrick M. Bland, Ralph M. Begun 및 Mark E. Dean이고 발명의 명칭이 "Control 05 Pipelined Operation in a Microcomputer System Employing Dynamic Bus Sizing with 80386 Processor and 82385 Cache Controller"로써 1988년 5월 26일자로 출원된 미합중국 특허 제198,894호 및 -발명자가 Ralph M. Begun. Patrick M. Bland 및 Mark E. Dean이고 발명의 명칭이 "Delayed Cache Write Enable Circuit for a Dual Bus Microcomputer System with an 80386 and 82385"로써 1988년 5월 26일자로 출원된 미합중국 특허 제198,890호.
전기 사항들은 참조로써 여기에 게재한 것이다.
마이크로컴퓨터 시스템에서 캐시 서브시스템의 사용으로, 동작에 있어서 많은 매력적인 장점들을 얻을 수 있다. 캐시 서브시스템의 사용에 따라 얻어지는 장점들은 부분적으로 캐시 메모리의 싸이즈와 관계가 있기 때문에 캐시 메모리의 싸이즈를 증대시키는 것이 요망된다. 캐시 서브시스템을 사용하는 마이크로컴퓨터 시스템은 실질적으로 이중 버스(dual bus)마이크로컴퓨터이다. CPU 및 캐시 서브시스템은 소위 CPU 로컬버스를 통하여 서로 연결된다. 다른 장치들(I/O장치, 추가의 메모리에 연결될 수 있는 시스템 버스는 CPU 로컬 버스와 분리되어있다. 캐시 시스템의 존재는 요망 정보가 또한 캐시 서브시스템에서 발견되는 정도까지는 시스템 버스를 어떠한 판독 메모리 엑세스로부터 릴리브(relieve)한다. 캐시 서브시스템에서 모든 요망 정보가 발견되지는 않게 되고 그리고 기록동작이 직접 캐시 서브시스템 및 메모리에 가해지기 때문에, 물론 시스템 버스와 CPU 로컬 버스간에 몇몇의 연결부가 존재해야 한다.
소정의 CPU로부터 고속 엑세스 타임을 유지하기 위해 메모리 장치로부터의 데이터를 캐시하는 것은 신규한 아이디어가 아니다. 제1 및 제2레벨의 캐시를 포함하는 많은 시스템들이 개발되어 시장에 유통되고 있다. CPU의 클럭 속도가 증가하고, 이에 따라 최소 주기시간이 감소되기 때문에, 성능을 극대화하기 위한 퍼스널컴퓨터 시스템용의 캐시가 개발되고 있다. 많은 회사들(인텔, 히다찌, 니뽄전기, 도시바 등)이 캐시 컨트롤러칩 및 서브시스템을 개발하여 시판하고 있다. 대부분들은 이용 가능한 태그 RAM의 량에 의해 제한되며, 단지 최대 32KB 캐시 데이터 RAM만을 지원할 수 있다.
이중 버스 마이크로컴퓨터 중 대중적인 기종의 하나로써 82385 캐시 컨트롤러가 있다. 제조자에 의해 판매될 때, 82385 캐시 컨트롤러는 최고 32KB의 핸들링 캐시 메모리로 제한된다. Intel사의 "Microprocessor and Peripheral Handbook" 및 "82385 고성능 32-Bit Cache Controller"(1987)에서 82385 캐시 컨트롤러에 대한 스펙 및 기능적인 세부사항들을 찾아볼 수 있다. 또한 Intel사의 "Introduction to the 80386" 및 The 80386 Hardware Reference Manual (1986)에서도 상기 사항들을 찾아볼 수 있다.
따라서, 본 발명의 주목적은 82385 캐시 컨트롤러를 사용하는 이중 버스 마이크로컴퓨터 시스템을 제공하는 것으로써, 여기서 상기 캐시 메모리는 32KB를 초과한다. 본 발명의 또 하나의 주목적은 캐시 컨트롤러가 원래 그러한 증가된 캐시 메모리용량을 지원할 수 없는 곳에서 보조 캐시 메모리를 증가시키는 장치를 제공하는 것이다.
본 발명은 82385 캐시 컨트롤러로 지원 가능한 캐시 RAM을 최소한 64KB로 증대시키는 장치 및/또는 그 방법을 제공하는 것으로써, 이에 대해서 앞으로 상세히 설명하기로 한다. 이러한 장치는 또한 어떤 캐시 컨트롤러에 사용되어 소정량의 캐시 RAM을 지원하고 그리고 상기 캐시 RAM을 최소한 2배로 할 수 있는 성능을 제공하도록 되어 있다. 여기에 상술하는 캐시 RAM 싸이즈를 증대 또는 2배로 하는 기술에는 추가적인 태그 RAM을 필요로 하지않고 단지 최소량의 추가적인 지원 논리만을 필요로 한다.
82385 캐시 컨트롤러는 내부에 4개의 구성 요소를 포함하고 있다. 82385 캐시 컨트롤러는 마이크로컴퓨터 시스템 버스로 인터페이싱하는 82385 로컬 버스 인터페이스를 비롯하여, 80386 제어버스로 인터페이싱하는 프로세서 인터페이스와 80386 어드레스 버스로부터의 입력뿐만 아니라 "스누프(snoop)" 버스로부터의 입력을 갖는 캐시 디렉토리와, 실제적으로 캐시 메모리를 제어하는 캐시 컨트롤을 포함하고 있다. 캐시 메모리는 82385 캐시 컨트롤러의 외부에 있으므로, 캐시 디렉토리의 조직에 의해 메모리의 물리적 변화가 바로 금지되며, 이에 따라서 변경이 불가능하게 된다.
내부 캐시 디렉토리는 1024개의 태그에 공간을 제공한다. 32KB 캐시에서, 각각의 태그는 32바이트를 나타낸다. 32비트 데이터 버스 때문에, 단일의 주메모리 기준이 1바이트가 아닌 4바이트를 엑세스할 수 있는(하는)바, 엑세스된 4바이트는 1라인을 요청한다. 따라서, 각각의 태그는 8라인을 나타낸다. 캐시 디렉토리가 캐시 컨트롤러의 내부에 있고 그러므로써 변경될 수 없기 때문에, 본 발명에 있어서 캐시 메모리용량은 라인 싸이즈를 증대시킴으로써 증대된다. 바람직한 실시예에서, 라인 싸이즈는 4바이트에서 8바이트로 2배가 되어 64비트가 된다. 라인 싸이즈를 2배로 함으로써, 태그는 여전히 8라인을 나타내지만은 각각의 라인들은 4바이트가 아닌 8바이트가 된다.
태그 디렉토리용량이 증대될 수 없기 때문에, 각각의 태그는 32바이트가 아닌 64바이트를 나타내야만 한다. 이것은 태그 조직에 있는 유효 어드레스 라인들은 1비트 시프팅하므로써 성취된다.
제조자의 문서에서, 어드레스 버스 라인들은 CPU상의 대응 어드레스 출력 핀에 연결된 것으로 설명된다. 어드레스 라인들은 캐시 컨트롤러의 대응 어드레스 입력 핀에 연결되며, 이러한 방식으로 하여 CPU의 어드레스 출력 핀이 캐시 컨트롤러의 대응 어드레스 입력 핀에 연결된다. 본 발명을 정확하게 설명하기 위해서 서로 다른 전문어를 사용할 것인데, 이는 어드레스 라인의 시프트 때문이다. 더 특별하게, CPU의 어드레스 출력 핀은 프리픽스 "A"로 나타내기로 하는바, 어드레스 버스의 대응 어드레스 라인은 동일한 기준문자를 수반한다(이것은 통상적이다). 그러나, 캐시 컨트롤러의 어드레스 입력 핀은 "CC"프리픽스로 나타내기로 한다. 시스템 버스 어드레스 라인들은 "BA"프리픽스로 나타내는 한편 시스템 버스 데이터 라인은 "BD"프리픽스로 나타낸다.
더 특별히, 80386으로부터의 어드레스 핀 A3-A30는 82385에서의 어드레스 핀 CCA2-CCA29에 연결된다(82385의 CCA31은 82385의 어드레스 입력 CCA30은 접지되고 80386의 어드레스 출력 입력 A31에 연결된다). 동시에, 64KB 캐시 메모리의 라인 싸이즈는 4바이트에서 8바이트로 증대된다. 32비트의 단일 판독 주기용량(80386/82385기에서)을 고려해 볼 때, 모든 판독미스에 대한 추가의 판독 주기를 발생시킬 필요성이 야기된다. 추가의 판독 주기는 시스템에 80386 인터페이스를 유지시키기 위해서 필요로 된다. 다시 말해서, 80386 및 82385는 판독미스 주기당, 라인을 엑세스하도록 되어 있다. 새로운 라인이 8바이트이기 때문에, 이러한 인터페이스를 유지시키는 데에는 몇가지 변경이 필요로 된다. 이러한 변경이 일어남으로해서, 라인의 두 번째 4바이트를 엑세스하는 제2판독 주기(82385 및 80386에 투명함)가 발생된다. 제2판독 주기는 새로운 라인 싸이즈의 절반(4바이트)을 추출하는데 반해, 제2판독 주기는 새로운 라인 싸이즈의 다른 4바이트(나머지 32비트)를 추출한다. 두 개의 판독 주기중 한 주기에서, 가산논리에 의해 어드레스가 발생되는데, 이 어드레스는 CPU에 의해 지원되지 않는다. 더 특별히, 어드레스 라인 A2(80386으로부터 나옴)는 반전되어, 캐시 RAM에 기억된 처음의 4바이트를 인출하는데 이용된다.
그후에, 라인 A2(비반전됨)는 다시 두 번째 그룹의 32비트를 어드레스하기 위해 시스템에 들어가게 된다. 제2판독 주기에서 데이터 판독이 프로세서에 나타나며 또한 캐시 RAM에 기억된다. 제2주기는 교호 어드레스 스트로브 신호(/MISS1)를 발생시킴으로써 발생된다. /MISS1는 시스템 버스 인터페이스 유닛(Micro Channel(TM) 또는 다른 시스템 버스)과 로컬 버스 메모리 인터페이스에 의해 교호/BADS신호(82385 어드레스 스트로브)로 이용된다. 제2주기는 시스템 인터페이스로의 파이프라인 프로세서 주기와 같게 간주된다. 그러므로, /BADS 또는 /MISS1가 버스 주기를 초기화할 수 있다. 제2판독 주기의 발생에 있어서의 택일책으로써, 메모리 장치로의 데이터 인터페이스가 32비트에서 64비트로 증대될 수 있다. 그러나 이와 같은 택일책은 추가의 크로스-오버 버퍼가 80386에 데이터를 게이팅하는 것이 요구되기 때문에, 고속 DRAM 및 SRAM들을 필요로 하게 될 것이다. 이러한 변형은 82385 캐시 인터페이스의 전반적인 성능을 상당히 개선시킬 수 있다.
추가로 그리고 본 발명의 바람직한 실시예에 따라서, 82385 및 80386으로의 READY 신호는 제2판독미스 버스 주기가 끝날때까지 동작 상태에 있게 된다. 첫 번째 32비트(제1판독 주기)는 SRAMCS2칩 선택을 펄싱하므로써 캐시 RAM에 기억된다. 이 신호는 SRAM의 하이동작 칩 선택입력에 결합된다. SRAMCS2는 정상적으로 동작을 하다가 케시 또는 판독미스의 제1판독 주기가 끝날 때 비동작 상태에 이르게 되며, 하나의 CLK2 클럭 주기후에 다시 동작상태에 이르게 된다.
SNOOP동작을 조절하기 위해서, 스누프 어드레스는 또한 1비트 시프트되어야 한다. 이것은 시스템 버스 어드레스 신호 BA3-BA23를 82385 스누프 어드레스 단자에 각각연결시킴으로써 실행된다. 신호 ADRNABLE는 82385 스누프 어드레스 신호 SA23에 연결된다. ADRNABLE는 16메가바이트보다 적은 모든 스누프 어드레스에 대해서는 로우이며, 16메가바이트보다 크거나 같은 모든 스누프 어드레스에 대해서는 하이이다. 이것은 캐시의 무효 주기가 24비트 어드레싱 또는 32비트 어드레싱할 수 있는 시스템 마스터에 대해 바람직하게 작용할 수 있도록 한다. 스누프 어드레스로써의 ADRNABLE의 이용으로 최대로 스누프 가능한 메모리 공간이 32메가바이트로 제한되게 된다. ADRNABLE는 단지 24비트의 어드레스를 구동하는 시스템 마스터가 SA24-SA31을 구동하지 못하기 때문에 82385로의 입력으로써 필요로 되는데, 이렇게 해서 스누프 가능한 어드레스 공간이 16메가바이트로 제한된다. 82385에서 이들 입력(SA24-SA34)은 접지에 연결된다(또는 로우 상태가 된다).
CPU 어드레스 출력과 캐시 컨트롤러 어드레스 압력간의 관계를 옵셋하는 기술을 이용하여, 82385가 아닌 캐시 컨트롤러에 대한 피지원 캐시 메모리용량을 증대시킬 수 있음이 또한 분명해진다.
따라서, 하나의 양상과 관계하여 본 발명은 다중-버스 마이크로컴퓨터 시스템을 제공하는바, 이 다중-버스 마이크로컴퓨터 시스템은 CPU 로컬 버스에 의해 서로 연결되는 CPU와 캐시 서브시스템을 구비하고, 이 캐시 서브시스템은 캐시 컨트롤러 및 캐시 메모리를 포함하며, 시스템 버스 수단은 상기 캐시 컨트롤러를 랜덤 엑세스 메모리 및 다수의 어드레스 가능한 기능 유닛에 연결하며, 상기 CPU는 어드레스 출력을 갖고 있고 상기 캐시 컨트롤러는 어드레스 입력을 갖고 있으며, CPU 어드레스 출력이 상기 캐시 컨트롤러의 대응 어드레스 입력에 연결되지 않도록 하기 위해서, 상기 CPU 어드레스 출력 일부를 상기 캐시 컨트롤러의 상기 어드레스 입력 일부에 연결하는 수단과, 그리고 상기 CPU에 의해 발생되지 않는 어드레스 입력을 상기 랜덤 엑세스 메모리에 발생시키기 위해서, 상기 CPU의 어드레스 입력중 최소한 하나의 어드레스 입력을 어드레스 논리 발생기 수단에 연결하는 수단을 구비한다.
본 발명의 한 특정 실시예에 있어서, CPU 어드레스 출력 A3-A30는 캐시 컨트롤러의 어드레스 입력 A2-A29에 연결되고, CPU 어드레스 출력 A2는 어드레스 논리 발생기 수단에 연결된다.
본 발명의 한 특정 실시예에서, 캐시 컨트롤러 및 가산논리는 64KB 캐시를 지원하는 한 시스템을 제공한다.
제1도는 본 발명이 이용될 수 있는 전형적인 마이크로컴퓨터 시스템을 예시한 것이다. 예시한 바와 같이, 마이크로컴퓨터 시스템은 서로간에 연결되는 다수의 구성 요소들을 구비한다. 더 특별하게, 시스템 유닛(30)이 모니터(20)(통상의 비디오 디스플레이어와 같음)에 연결되어 이 모니터를 구동한다. 시스템 유닛(30)은 또한 키이보오드(40) 및 마우스(50)와 같은 입력장치에 연결된다. 프린터(60)와 같은 출력장치는 또한 시스템 유닛(30)에 연결될 수 있다. 마지막으로, 시스템 유닛(30)은 디스크 드라이브(70)와 같은 하나이상의 디스크 드라이브를 포함하고 있다. 시스템 유닛(30)은 키이보오드(40) 및 마우스(50)와 같은 입력장치 및 디스크 드라이브(70)와 같은 입/출력장치에 응답하여, 모니터(20) 및 프린터(60)와 같은 출력장치들을 구동하기 위한 신호들을 제공하는바, 이에 대해서는 하기에 상세히 설명하기로 한다. 물론, 본 기술 분야에 통상 지식을 가진자이면 다른 통상적인 구성 요소들도 또한 시스템 유닛(30)에 연결되어 상호 동작할 수 있음을 인식할 수 있을 것이다. 본 발명에 있어서, 마이크로컴퓨터 시스템(10)은 캐시 메모리 서브시스템을 포함하고 있는데, 이 캐시 메모리 서브시스템은 또한 프로세서, 캐시 컨트롤 및 캐시 메모리를 상호 연결하는 한편, 버퍼를 통해서 시스템 버스에 연결되는 CPU 로컬 버스를 포함한다.(이에 대해서는 하기에 보다 더 상세히 설명하기로 한다). 시스템 버스는 키이보오드(40), 마우스(50), 디스크 드라이브(70), 모니터(20) 및 프린터(60)와 같은 I/O장치들에 서로 연결되어 이들과 상호 동작한다. 더욱이, 본 발명에 있어서, 시스템 유닛(30)은 또한 시스템 버스와 다른(선택적인) 입력/출력장치 및 메모리등간의 상호 연결을 위한 Micro Channel(TM)을 구비하는 제3버스를 포함하고 있다.
제2도는 본 발명의 전형적인 마이크로컴퓨터 시스템의 여러 가지 구성 요소들을 예시한 상세 블록선도이다. CPU 로컬 버스(230)(데이타, 어드레스 및 제어성분을 구비함)는 마이크로프로세서(225)(80386형), 캐시 컨트롤(260)(82385 캐시 컨트롤러를 포함함) 및 랜덤 엑세스 캐시 메모리(255)의 연결을 제공한다. 또한 CPU 로컬 버스(230)를 통하여 버퍼(240)가 연결된다. 버퍼(240)는 또한 어드레스, 데이터 및 제어성분을 구비하는 시스템 버스(250)에 직접 연결된다. 시스템 버스(250)는 버퍼(240)와 또다른 버퍼(253) 사이에서 연장된다.
시스템 버스(250)는 또한 버스 제어겸 타이밍 요소(265)와 DMA 컨트롤러(325)에 연결된다. 중재제어버스(340)는 버스 제어겸 타이밍 요소(265)와 중앙중재요소(335)를 결합시킨다. 메모리(350)는 또한 시스템버스(250)에 연결된다. 메모리(350)는 메모리 제어요소(251), 어드레스 멀티플렉서(352) 및 데이터 버퍼(353)를 포함하고 있다. 이들 요소들은 제2도에 보인 바와 같이 메모리 요소들 (36 1-364)과 상호 연결된다.
또 다른 버퍼(267)가 시스템 버스(250)와 플래너 버스(270) 사이에서 연결되어 있다. 플래너 버스(270)는 각각 어드레스 데이터 및 제어성분을 포함한다. 플래너 버스(270)를 따라 다수의 I/O어댑터와 그리고 디스플레이 어댑터(275)(모니터(20)를 구동하는데 이용됨), 클럭(280), 추가의 랜섬 엑세스 메모리(285), RS232어댑터 2 0)(직렬 I/O 동작시 이용됨), 프린터 어댑터(295)(프린터(60)를 구동하는데 이용됨), 타이머(300), 디스켓 어댑터(305)(디스크 드라이브(70)와 상호 동작함), 인터럽트 컨트롤러(310) 및 판독 전송 메모리(315)와 같은 다른 구성 요소들이 연결된다. 버퍼(235)는 시스템 버스(250)와 Micro Channel(TM)소켓을 나타내지는 Micro Channel(TM)버스(320)와 같은 선택적인 특성 버스 사이에 인터페이스를 제공한다.
캐시 기록용 데이타가 메모리(350)로부터 이끌어질 수 있으며, 이러한 데이타는 또한 Micro Channel(TM)버스 상에 설치된 메모리와 같은 다른 메모리로부터도 이끌어질 수 있다.
제3도는 Intel사의 공보 "82385 고성능 32-비트 캐시 컨트롤러"(1987)에서 택한 블록선도이다. 제3도는 82385 컨트롤러가 내부에 4개의 구성 요소, 즉 로컬 버스 인터페이스, 프로세서 인터페이스, 캐시 컨트롤 및 캐시 디렉토리를 포함하고 있다. 본 발명의 목적에 중요한 사항으로써, 캐시 메모리의 용량을 증대시키기 위해 캐시 디렉토리가 82385내부에 있다. 이것은 캐시 디렉토리의 용량이 변화될 수 없음을 의미한다. 더욱이, 중요한 것으로써 디렉토리의 내용과 80386 어드레스 버스로부터 캐시 디렉토리에 인가되는 정보간에 변화가 있을 수 없다는 것이다.
종래 기술에는 캐시를 조직하고 캐시 메모리와 주 메모리간의 관계를 선택하는 많은 기술들이 나타나 있다. 하나의 일반적인 기술은 직접 매핑(direct mapping)으로써 언급이 되고 그리고 또다른 일반적인 기술은 2-웨이 세트 연관 매핑(two-way set associative mapping)으로써 언급된다. 80386 어드레스 버스는 32비트로 와이드하며 따라서 82385는 어드레스 입력 CCA0-CCA31을 갖는다. 직접 매핑 모드에서, 캐시 디렉토리는 1024 26-비트 레지스터를 포함한다. 각각의 1024레지스터는 제4도에 보인 바와 같이 분할된다. 비트 0-7(8비트)는 캐시 컨트롤 요소에 의해 발생된다. 캐시에서 각 라인에 대해 하나씩 라인-무효 비트가 있다. 32KB 캐시를 사용하는 82385에 대한 Intel의 권고(최대허용)는 직접 매핑된 태그 필드 디렉토리에서 1개의 엔트리를 8개의 데이타 라인과 연관시키는데, 여기서 데이타 라인 각각은 4바이트로 되어있다. 비트 8은 태그 무효 비트로써 역시 캐시 컨트롤에 의해 발생된다. 비트 9-25는 80386 어드레스 버스를 통해 제공될 때 직접 기억되는 어드레스 비트 A31-A15에 대응한다. Intel사가 권고하는 구조에서, 80386으로부터 나오는 어드레스 출력 비트 A2-A31는 82385의 대응 어드레스 입력, 즉 CCA2-CCA31에 직접 연결된다. 그러나, 본 발명에서는 상기 권고를 따르지 않고 있는바, 사실 일부의 80386 어드레스 출력 비트와 82385에서의 어드레스 버스 입력 단자사이에 "옵셋" 또는 시프트가 존재한다.
어드레스 비트 A14-A5는 태그 RAM 디렉토리를 어드레스하는데 이용된다. 본 기술 분야에 통상 지식을 가진자이면, 이 10비트로 1024레지스터로부터 한 개의 레지스터를 충분히 선택할 수 있음을 인지할 수 있을 것이다. 어드레스 비트 A4-A2(3비트)는 8라인중에 1라인을 선택하는데 사용된다.
제6도는 2-웨이 세트 연관 조직에 대한 캐시 디렉토리 조직을 예시한 것이다. 이 조직에서, 1024개의 레지스터들은 반으로 분리되어 디렉토리 A에 512개의 27-비트 레지스터를 제공하고, 디렉토리 B에 나머지 512개의 27-비트 레지스터를 제공한다. 처음으로 디렉토리 A에 해당하는 전형적인 레지스터에 관하여, 비트 0-7은 다시 8라인 유효 비트로써, 캐시 컨트롤러에 의해 생성되어 캐시 디렉토리에 기억된다. 각각의 라인 유효 비트 4바이트 라인을 나타낸다. 비트 8은 다시 태그 유효 비트가 되며, 비트 9-26은 선택된 페이지를 표시하도록 직접 기억되는 80386 어드레스 비트 A31-A14에 대응한다. 어드레스 비트 A31-A5(9비트)는 디렉토리에 있는 512개의 레지스터로부터 한 개의 레지스터를 선택하기에 충분하다. 디렉토리 B는 상기와 마찬가지의 방식으로 조직된다. 다시, 제4도를 참조하여 상세히 설명한 조직의 경우에서와 같이, 어드레스 비트 A2-A4(3비트)는 태그로 나타내지는 8개의 라인중 한 라인을 선택하기에 충분하다(다시, 한 라인은 4바이트이다). 마지막으로, 각각의 태그쌍에 대해 LRU(Least Recently Used)비트가 있다. 이 비트는 다음 엔트리가 디렉토리 A에 가해져야 되는지 아니면 디렉토리 B에 가해져야 되는지를 각각 표시하도록 캐시 컨트롤러에 의해 세트 또는 리세트된다.
캐시 디렉토리의 이러한 고정 조직 및 고정 용량과 그리고 80386어드레스 출력 비트와 주 메모리간의 불변경 관계를 유지하기 위한 필요성을 고려해볼 때, 본 발명의 목적은 64KB 캐시 유지 구조를 형성하는 것이다. 직접 매핑된 태그 구조에서 1024디렉토리 엔트리 각각은 8라인을 나타낸다. 각각의 라인이 4바이트이므로 본 발명에 통상 지식을 가진자이면, 이러한 구조를 이용하는 캐시 메모리의 최대용량이 어떻게 해서 32KB인가를 알 수 있을 것이다. 2-웨이 세트 연관 구조(제6도)는 같은 결과를 낳는다.
본 발명에 따르면, 라인 싸이즈는 4바이트에서 8바이트로 변경된다. 제5도는 직접 매핑된 태그 필드에 대한 대응 캐시 디렉토리 조직을 보인 것이다. 제5도에 보인 바와 같이, 비트 0-7는 여전히 8라인 유효비트로써, 이들 비트는 캐시 컨트롤에 의해 기록 및 재기록되는바, 이제 각각의 라인이 4바이트 대신에 8바트를 나타낸다는 사실이 명백해진다. 8비트는 여전히 태그 유효 비트이다. 이제, 라인을 선택하는데 있어서 비트 A2-A4를 사용하는 대신에, 비트 A3-A5를 사용한다. 결과적으로, 비트 A6-A15는 캐시 디렉토리에 있는 레지스터를 어드레스하는데 사용된다(제4도에서 비트 A5-A14를 사용하는 것과 대조를 이룸). 따라서, 디렉토리는 이제 16-비트 태그 필드, 즉 비트 A16-A31를 포함하게 된다. 따라서 상기 데이터는 비트 포지션 0-24를 점유하고 비트 포지션 25를 공백상태에 있게 한다.
제7도는 제5도가 제4도에 관계하는 바와 마찬가지로 제6도와의 관계를 예시한 것이다. 더 특별하게, 각각의 태그 레지스터는 비록 8라인 유효 비트가 각각 4바이트 라인과 대조되는 8바이트 라인을 나타낸다하더라도 여전히 8라인 유효 비트를 갖는다.
비트 A3-A5는 소정의 8바이트 라인을 선택하는데 사용된다. 8번 비트는 다시 태그 유효 비트이다. 비트 A6-A14는 이제 태그 레지스터를 어드레스하는데 사용된다(제6도에서 비트 A5-A13를 사용하는 경우와 대조됨). 따라서, 비트 A15-A31(A14-A31 대신에)이 직접 기억되어 선택된 페이지를 표시하게 된다.
제8도는 제2도 부분에 대한 상세 블록선도로써, 여러 구성 요소들간의 상호 연결 및 관련 신호의 관계를 예시한 것이다. 더 특별하게, 제8도는 CPU(225), 캐시 컨트롤러(260), 어드레스 래치 AL 및 데이타 래치 DL, 버퍼(240)부분들(제2도 참조), 캐시 메모리(255) 및 여러 가지 추가적인 논리 요소들을 나타내고 있다. 이들 추가의 논리 구성 요소들은 PAL C1, PAL C2, 2입력 AND 게이트 세트 G1-G7, OR 게이트 O1 및 래치 D1을 포함하고 있다.
비록 제8도가 이산논리 요소 C1, C2, O1 및 G1-G7을 나타내고 있을지라도, 본 기술 분야에 통상 지식을 가진자이면 서로 다른 이산 요소에서 서로 다른 논리 함수들을 팩케이지하는데 있어서 그 범위가 넓음을 인지할 수 있을 것이다. 제8도에서의 구체적인 나타냄은 서로 다른 이산 요소에서 논리 함수들을 팩케이지하기 위한 방법에 제8도에 보인 세부사항은 각기 다른 이산 요소에서 논리 함수들을 팩케이지하는 방법에 관한 지시보다는 상세한 설명을 목적으로 한 것이다. 제8도의 구조와 82385제조자가 권고하는 구조간의 두가지 주요한 차이점은 캐시 메모리(255)와 그리고 CPU(225) 및 캐시 컨트롤러(260)간의 관계에서 나타난다. 더 특별하게, 82385의 제조자가 캐시 메모리(255)의 최대용량이 32KB임을 분명히 하는데 반해, 캐시 메모리(255)(또는 동적 램덤 엑세스 메모리-SRAM)는 32KB의 뱅크 A와 역시 32KB뱅크 B로 양분되는 최소한 64K바이트의 용량을 가진다.
제8도 상단에 보인 바와 같이, CPU(225)의 어드레스 출력 비트 A3-A31은 캐시 컨트롤러(260)의 어드레스 입력 CCA2-CCA29 및 CCA31에 연결된다. 더 특별하게, 제8도는 비트 A3-A30이 단자 CCA2-CCA29에 연결되고 단자 A31이 단자 CCA31에 연결됨을 나타내고저 한 것이다. 제8도에 보인 바와 같이, 단자 CCA30은 접지된다. 어드레스 비트 A2는 PAL C2 및 래치 D1으로의 입력을 형성한다. PAL C2의 한 출력은 신호 NEWA2로써 어드레스 래치 AL에 입력되어 어드레스 래치 AL이 비트 BA2-BA31을 출력시킬 수 있는바, 여기서 출력 비트 BA3-BA31은 입력 비트 A3-A31에 동일하게 대응하고 출력 비트 B2는 입력 비트 NEWA2에 대응한다.
캐시 디렉토리와 마이크로컴퓨터 시스템 어드레스 구조간의 관계가 옵셋되기 때문에, 또한 스누프 버스에 관심을 기울여야 한다. 본 기술분야에 통상 지식을 가진자이면, 캐시 코히어런시(Cache Coherency)을 유지하기 위해서는 캐시 컨트롤러(260)가 가시성 메모리 기록 기능을 가져야 함을 인식할 수 있을 것이다. 물론 상기 캐시 컨트롤러는 CPU(225)의 어드레스 및 제어 출력에 연결됨으로 인하여 CPU(225)에서 발단되는 가시성 메모리 기록 기능을 갖는다. 그러나, 전형적인 마이크로컴퓨터 시스템에서, 다른 장치들이 또한 메모리에 기록을 할 수가 있어 따라서 다른 장치에 의해 주 메모리에 기록되는 것을 모니터할 수 있는 스누핑 기능(snopping function)이 캐시 컨트롤러(260)에 제공된다. 미리 옵셋 관계를 유지하도록 캐시 컨트롤러(260)의 스누프 입력 단자 SA2-SA22가 제8도에 보인 바와 같이 어드레스 비트 BA3-BA23에 연결된다.
지금까지의 도면 상에는 그렇게 명백하게 나타내지는 않았지만은, 32KB 캐시 메모리(4바이트 입력으로 구성됨)는 13어드레스 비트를 필요로 한다. 그러나, 64KB 캐시 메모리(255)는 14어드레스 비트를 필요로 한다. 제8도에 보인 어드레스 정보는 래치 D1(12비트, A3-A14)의 출력으로 제공된다. 추가로, 캐시 255 어드레스 입력 A0/(13번 비트)는 C2의 CACA2출력으로 제공된다. 마지막으로, 14번 비트는 캐시 인에이블 A(COEA 또는 CWEA) 또는 캐시 인에블 B(COEB 또는 CWEB)를 발생하는 캐시 컨트롤러에 의해 이루어지는 뱅크 선택에 영향을 미친다.
캐시 컨트롤러를 사용하는 전형적인 마이크로 컴퓨터 시스템은 데이타 버스의 폭, 즉 32비트로 인하여, 적어도 부분적으로 4바이트 라인 싸이즈를 이용한다. 데이타 버스의 폭은 소정 메모리 주기에서, 32비트가 메모리로부터 추출될 수 있으며 따라서 캐시의 판독미스에 응답하여 4바이트 또는 1라인의 새로운 정보가 소정 판독 주기에서 캐시에 기록될 수 있음을 의미한다. 본 발명의 경우에서와 같이 4바이트에서 8바이트로의 라인 싸이즈의 변경 결과는 캐시의 판독미스에서 새로운 1개의 완전 라인을 유지하기 위해서 다른 변경들이 행해져야 함을 암시한다. 본 발명의 바람직한 실시예에서, PAL C1 및 PAL C2로 제공되는 추가논리는 제2 또는 은폐(Ledden)메모리 주기를 제공한다. 이 메모리 주기는 CPU(225) 및 캐시 컨트롤러(260)에 가시불가능할 정도로 은폐된다. 따라서, 판독미스는 두 개의 메모리 주기를 발생시킨다. 두 개의 메모리 주기 중 한 주기에서, 어드레스 출력 A2는 반전되고(NEWA2), 32비트 메모리 인출에서 어드레스 비트 A3-A31과 함께 이용된다. 상기 메모리 주기에서 데이타는 캐시 메모리(225)에 기억된다. 그후, 출력 A2의 결과가 다시 시스템(NEWA2) 및 캐시 RAM(255)(비트 A3-A31을 따라)에 들어가게 된다. 그러나, 이 주기에서 A2의 결과는 메모리부터 두 번째 32비트 세트를 어드레스하기 위해서 반전되지 않는다. 제2주기동안 데이타 판독이 프로세서에 기억되며 또한 캐시(255)에 기억된다. 추가적인 주기는 교호 어드레스 스트로브 신호(MSS1)를 발생시킴으로써 형성된다. MSS1는 시스템 버스 인터페이스 유닛(Micro Channel(TM) 또는 다른 시스템 버스) 및 로컬 버스 메모리 인터페이스에 의해 교호 BADS(82385 어드레스 스트로브)신호로 이용된다. 이 추가적인 주기, 즉 은폐 주기는 시스템 인터페이스로의 파이프라인 프로세서 주기처럼 보이며, 그러므로서 BADS 또는 MISS1가 버스 주기를 초기화할 수 있다.
본 발명의 바람직한 실시예에 따라 MISS1이 추가적인 주기, 즉 은폐 주기를 형성하는데 사용된다 하더라도, 또다른 장치로 64비트의 와이들한 데이타 버스를 제공할 수 있어 추가적인 주기, 즉 은폐 주기가 불필요하게 될 수 있다. 다시 말해서 단일의 메모리 주기는 8바이트 라인에 대응하는 64비트의 데이타를 인출 할 수가 있다. 64바이트 메모리 인터페이스를 사용하는데 있어서의 단점으로써 추가의 크로스 오버 버퍼가 알맞은 데이타를 CPU(225)에 게이트하는 것을 필요로함으로 인하여 더욱 빠른 DRAM 및 SRAM이 요구된다.
은폐 주기를 CPU(225) 및 캐시 컨트롤러(260)에 투명하게 유지시키기 위해서, BREADY신호(시스템으로부터 나옴)는 제2판독미스 버스 주기(BADS로 이루어지는 주기 및 MISS1로 이루어지는 추가의 주기)가 끝날때까지 동작상태에 있게 된다. 제1판독 주기에서 데이타 판독의 첫 번째 32비트 세트는 PAL C2에서 전개될 때 SRAMCS2(칩 선택)를 펄싱하므로써 캐시 메모리(255)에 기억된다. 이 신호는 캐시 메모리(255)의 하이동작 칩 선택 입력에 결합된다. SRAMCS2는 정상적으로 동작하다가 캐시 판독미스의 제1판독 주기가 끝날때 비동작 상태에 들어간다. 이것은 다시 한번의 CLK2 클럭 주기후에 동작상태에 들어간다.
신호 NEWA2, /MISS1, /NEWLA2, /DPUNA, SRAMCS2, /CACA2 및 NACACHE들은 아래와 같이 8개의 논리식으로 명시된다
상기 논리식들은 아래와 같이 재생된다. 여기서, 심볼들은 이 심볼들과 관련되는 다음과 같은 의미를 갖는다.
Figure kpo00001
Figure kpo00002
여기서, /CASGATE는 동작(로우동작) 상태에 있는 주 메모리 주기를 나타내며 /CMD는 시스템 버스(Micro Channel 등과 같음)가 아닌 다른 버스 상에서의 동작(로우동작)상태를 나타낸다.
전술한 사항에서, BREADY는 시스템 버스(로우동작)로부터의 신호로써, 버스에서의 주기가 완료되었음을 나타낸다. CA2는 CPU 225의 A2 출력을 나타낸다. BADS는 Intel사가 명시한, 캐시 컨트롤러(260)로 부터 나오는 어드레스 스트로브(로우동작)이다. CLK는 Intel사가 명시한 클럭신호를 나타낸다. RESET는 Intel사가 명시한 리세트 신호(하이동작)이며, NCA는 공동계류중인 출원서에 명시된 비-캐시 엑세스(Non-Cacheable Access)를 나타낸다. BUSCYC385는 공동계류중인 출원서에 명시된 또다른 신호이다.
제9도는 여러 가지 CPU 판독명령, 캐시 디렉토리에서 생성된 결과, 그리고 특히 라인 유효 바이트 및 결과적인 동작의 예를 보인 것이다. 제9도의 예는 단계1에 앞서 캐시 메모리가 플러쉬(flush)되고 그러므로써 단계1에 앞서서 모든 디렉토리가 무효상태에 있다는 가설하에서 제공된 것이다.
단계1은 어드레스 0에서 판독명령을 실행하는 CPU(255)를 보인 것이다. 결과 컬럼에서 제9도는 두개의 메모리 팻치가 발생됨을 나타낸다. 하나의 메모리 팻치에서 dword 4(4바이트)가 인출되어 캐시에 기억된다. 그 후, 하나의 dword 4(4바이트)에 대한 메모리 인출이이루어져 캐시에 기억된다. 캐시 디렉토리(제2칼럼 참조)는 디렉토리 어드레스 0에서 태그 유효 비트를 세팅하며, 캐시 컨트롤러에 의한 갱신이 있은 후 라인 유효 바이트는 11111110이 된다.
단계2는 메모리 어드레스 4를 판독하도록 CPU에 의해 실행되는 명령을 보인 것이다. 종래 기술에 있어서, 이것은 초기 메모리 인출(단계1에서)이 단지 4바이트(0-3)만을 인출하기 때문에 캐시 미스가 있을 수 있다. 그러나, 본 발명에 따르면, 단계1의 결과로 실행되는 두개의 판독 메모리 주기에서, 어드레스된 메모리 위치의 내용이 메모리에 제공되게 된다. 따라서, 이 명령의 결과로 캐시 히트(Cache hit)가 일어나며, 캐시 디렉토리에 어떠한 변경도 이루어지지 않으며, 아울러 데이타가 캐시 메모리로부터 엑세스되기 때문에 어떠한 데이타도 주 메모리로부터 판독되지 않는다.
제3도는 어드레스 8에서 CPU의 판독을 보인 것이다. 이것의 결과로 또한 두개의 메모리 주기가 나타나게 되는데, 즉 첫 주기에서는 dword 8(4바이트)그리고 그 다음의 주기에서는 dword CH(또다른 4바이트)가 나타난다. 캐시 디렉토리는 제9도의 라인 유효 바이트 컬럼에 보인 바와 같이 라인 유효 바이트를 갱신한다.
제8도 및 NEWA2에 대한 논리식과 관계하여, 처음에 제8도로부터 어드레스 래치 AL로부터 나오는 어드레스 버스(BA2-BA31) 출력상의 신호들이 직접 CPU(225)로부터 나오는 어드레스 비트 A3-A31와 A2 컨덕터 상의 신호 NEWA2를 포함하고 있다. 신호 NEWA2는 PAL C2에서 발생되는데, 이 신호에 대한 식은 이미 전기한 식들중 첫번째 식으로 나타낸다. 본 기술 분야에 통상 지식을 가진자이면, 상기한 상세한 설명으로부터 신호 MISS1은 은폐 메모리 판독 주기동안에는 한 조건에 있고 그리고 은폐 메모리 판독 주기가 아닌 판독 주기에서는 다른 조건에 있게 됨을 알 수 있을 것이다. 결과적으로, 항 CA2가 일정할때, 신호 NEWA2가 은폐 판독 주기에서는 한 조건에 그리고 다른 판독 주기에서는 다른 조건에 있게 된다. 이렇게 해서 은폐 주기에서는 반전된 A2 비트가 그리고 다른 메모리 판독 주기에서는 비반전된 A2 비트가 제공된다. 다시 말해서, C2에 의한 NEWA2의 조작을 통해서, CPU(225)에 의해 발생되지 않는 어드레스가 시스템 어드레스 버스(AL의 BA2-BA31출력)에 인가된다.
전술한 사항으로부터, 데이타 버스가 새로운 라인 싸이즈(8바이트)를 수용할 수 있을 정도로 충분히 넓지 못하다는 사실의 결과로 캐시 미스에 의해 발생되는(그리고/MISS1로 실행되는) 은폐 판독 주기가 필요로 된다는 것이 분명하게 된다. 따라서, 데이타 버스가 라인 싸이즈를 충분히 수용할 수 있는 경우, 은폐 버스주기는 배제될 수 있다.
/MISS1에 대한 식에서 첫번째 두개의 항은 "은폐"주기를 발생시키기 위한 조건을 나타낸다. /NCA하이는 가정된 어드레스가 캐시 가능함을 나타낸다. /BADS 동작은 캐시 미스 또는 비캐시 주기를 나타낸다. 그러나, NCA 및 /BADS의 결합 동작은 캐시 미스에 특정적이다. 마지막으로, /(BW/R)동작은 판독을 나타낸다. 따라서 상기 3개의 신호들은 결합적으로 캐시 판독미스에 특정적인 "은폐"주기 발생의 조건이 된다. 이 항들 중 첫번째 항은 비-파이프라인 주기(CPUNA)동안 동작하고, 두번째 항은 파이프라인 주기(BREADY)동안 동작한다. 마지막 두개의 항은 적절한 시간에 /MISS1을 종결짓는 동작을 한다. CPU로부터의 소정의 판독미스에서 NEWA2가 토글되어 두개의 어드레스한 어드레스는 "은폐"주기에서 그리고 다른 한 어드레스는 CPU에 의해 초기화된 판독미스동안에-발생될때(한 어드레스는 NEWA2 하이로 발생되고, 다른 한 어드레스는 NEWA2 로우로 발생됨), 캐시(255)로의 어드레싱 역시 토글 되어야만 한다. 다시 말해서, 캐시 판독미스의 결과로 캐시 기록이 일어나게 될 것이다. CPU(225) 및 캐시 컨트롤러(260)는 단지 한 주기만을 알 수 있기 때문에 단지 하나의 캐시 어드레스를 발생시킬 것이다. CPU로부터의 A2 어드레스비트는 직접 캐시(255)의 어드레스 입력에 도달하지 않는다. 오히려 A2상에서의 효과는 CACA2비트로 재생된다. 그러나, 상기 비트는 NEWA2가 시스템 버스상에서 어드레스를 토글시킬때 또한 토글할 것이다.
NEWA2가 발생되어 CPU의 A2비트를 재생하게 된다. CACA2의 토글은 MISS1의 상태를 변화시킴으로써 발생한다. 마찬가지의 이유로 SRAMCS2가 또한 발생된다. 캐시로의 추가적인 어드레스 입력(CPU에 의해 발생되지 않음)을 발생시키는 것 이외에도, 캐시 컨트롤러에 의해 발생된 단일 주기로부터 캐시(255)에 두개의 제어 주기를 발생시키는 것이 또한 필요로 된다. 이것은 함수 SRAMCS2이다. SRAMCS2는 제1주기, 즉 "은폐"주기가 끝나는 시간에 토글하여, 캐시 메모리(255)로의 제2주기를 초기화한다.
공동 출원하여 계류중인 출원에 명시한 바와 같이, CPUNA는 가정(assertion)시에 CPU가 한 주기를 파이프라인하도록 하는 신호이다. CPUNA의 전개는 "은폐"주기가 완료된다 하더라도 CPUNA가 가정되지 않도록 하는 MISS1이 포함된다. 이 동작은 판독미스 시퀸스(두개의 주기로 이루어짐)의 제2반주기가 완료되기 전에 CPU가 파이프라인된 주기에서 멈추지 못하도록 한다.
본 발명의 바람직한 실시예는 비록 82385 캐시 컨트롤러와 관계하여 상술되었지만은 본 기술에 통상 지식을 가진자이면 본 발명의 원리를 이용하는 한편 다른 캐시 컨트롤러의 지원을 받는 캐시 메모리는 여기에 상술된, 다시 말해서 CPU 어드레스 출력과 캐시 어드레스 입력과의 관계를 시프팅하는 기술을 사용하므로써 증대될 수 있음을 알 수 있을 것이다. 피지원 캐시 메모리에서의 이러한 중대는 라인 싸이즈를 증대시켜 피지원 캐시 용량을 증대시키기 위해서 캐시 컨트롤러의 내부 캐시 디렉토리나 또는 다른 내부 구성 요소들을 변경시키는 그러한 과정을 필요로 하지 않는다. 데이타 버스를 지원할 수 있는 마이크로컴퓨터 시스템에서, 단일 주기는 새로운 라인 싸이즈로 전송을 하게 되어 따라서, 본 발명의 또다른 기술, 즉 은폐 판독 주기를 이용할 필요성이 없게 된다. 다른 한편으로, 만일 피지원 캐시 용량을 증대함으로써 데이타 폭 이상으로 라인 싸이즈의 증대가 불가피 할 경우, 여기에 상술한 은폐 판독 주기에 관한 기술을 이용하여 이 문제를 해결할 수 있다. 또한, 이론적으로 단지 하나만의 은폐 판독 주기가 이용되어야 하는 것이 당연함이 분명해 질 것이다. 다시 말해서, 적절한 어드레스 옵셋 및 다중 은폐 주기를 이용하여 상술한 피지원 캐시 용량을 100%(32KB에서 64KB로) 이상으로 증대시킬 수 있다.
지금까지 전술한 내용을 비추어 볼때, 본 발명의 정신 및 범주내에서, 소정 캐시 컨트롤러의 피지원 캐시용량을 증대시키는 여러가지 변경이 이루어질 수 있음이 분명해질 것이다. 따라서, 본 발명의 정신 및 범주는 여기에 상술한 실시예 뿐만 아니라 뒤에 첨부한 특허청구의 범위로 해석되어야 할 것이다.

Claims (10)

  1. CPU 로컬 버스에 의해 서로 연결되는 CPU 및 캐시 서브시스템과 시스템 버스 수단을 구비하고, 상기 캐시 서브시스템은 82385 캐시 컨트롤러 및 캐시 메모리를 포함하며, 시스템 버스 수단은 상기 82385 캐시 컨트롤러를 랜덤 엑세스 메모리 및 다수의 어드레스 가능한 기능 유닛에 연결하는 다중 버스 마이크로컴퓨터 시스템에 있어서, 상기 CPU는 어드레스 출력을 갖고 있고 상기 82385는 어드레스 입력을 갖고 있으며, CPU 어드레스 출력이 상기 82385 캐시 컨트롤러의 대응 어드레스 입력에 연결되지 않도록 하기 위해서 상기 CPU 어드레스 출력 일부를 상기 82385의 상기 어드레스 입력 일부에 연결하는 수단을 구비하는 다중 버스 마이크로컴퓨터 시스템.
  2. 제1항에 있어서, 상기 CPU에 의해 발생되지 않는 어드레스 입력을 상기 랜덤 엑세스 메모리에 발생시키는 어드레스 논리 발생기 수단과, 상기 CPU의 어드레스 출력중 최소한 하나의 어드레스 출력을 상기 어드레스 논리 발생기 수단에 연결시키는 수단을 더 구비하는 다중 버스 마이크로컴퓨터 시스템.
  3. 제1항에 있어서, 상기 CPU에 의해서 발생되지 않는 어드레스 입력을 상기 캐시 메모리에 발생시키는 어드레스 논리 발생기수단과, 상기 CPU의 어드레스 출력중 최소한 하나의 어드레스 출력을 상기 어드레스 논리 발생기 수단에 연결하는 수단을 더 구비하는 다중 버스 마이크로컴퓨터 시스템.
  4. CPU 로컬 버스에 의해 서로 연결되는 CPU 및 캐시 서브시스템을 구비하고, 상기 캐시 서브시스템은 캐시 컨트롤러 및 캐시 메모리를 포함하며, 시스템 버스 수단은 상기 캐시 컨트롤러를 랜덤 엑세스 메모리 및 다수의 어드레스 가능한 기능 유닛에 연결하며, 상기 CPU는 어드레스 출력을 갖고 있고 상기 캐시 컨트롤러는 어드레스 입력을 갖고 있으며, CPU 어드레스 출력이 상기 캐시 컨트롤러의 대응 어드레스 입력에 연결되지 않도록 하기 위해서 상기 CPU 어드레스 출력 일부를 상기 캐시 컨트롤러의 상기 어드레스 입력 일부에 연결하는 수단을 구비하는 다중 버스 마이크로컴퓨터 시스템.
  5. 제4항에 있어서, 상기 CPU에 의해서 발생되지 않은 어드레스 입력을 상기 랜덤 엑세스 메모리에 발생시키는 어드레스 논리 발생기 수단과, 상기 CPU의 어드레스 출력중 최소한 하나의 어드레스 출력을 상기 어드레스 논리 발생기 수단에 연결하는 수단을 더 구비하는 다중 버스 마이크로컴퓨터 시스템.
  6. 제4항 또는 제5항에 있어서, 상기 캐시 컨트롤러는 82385형이며, 상기 캐시 메모리는 최소한 64K바이트의 용량을 갖는 다중 버스 마이크로컴퓨터 시스템.
  7. 제2항 또는 제5항에 있어서, 캐시 판독미스에 응답하여, 은폐 메모리 판독 주기를 발생시키는 은폐 주기 초기화 수단을 더 구비하는 다중 버스 마이크로컴퓨터 시스템.
  8. 제2항 또는 제5항에 있어서, CPU 어드레스 출력 A3-A30이 상기 캐시 컨트롤러의 어드레스 입력 BA2-BA29에 연결되고, CPU 어드레스 출력 A2가 상기 어드레스 논리 발생기 수단에 연결되는 다중 버스 마이크로컴퓨터 시스템.
  9. 제4항에 있어서, 상기 CPU에 의해서 발생되지 않는 어드레스 입력을 상기 캐시 메모리에 발생시키는 어드레스 논리 발생기 수단과, 상기 CPU의 어드레스 출력중 최소한 하나의 어드레스 출력을 상기 어드레스 논리 발생기 수단에 연결시키는 수단을 더 구비하는 다중 버스 마이크로컴퓨터 시스템.
  10. 제9항에 있어서, 상기 어드레스 논리 발생기 수단이 또한 상기 CPU에 의해서 발생되지 않는 어드레스 입력을 상기 엑세스 메모리 수단에 발생시키는 다중 버스 마이크로컴퓨터 시스템.
KR1019900007310A 1989-05-31 1990-05-22 다중버스 마이크로컴퓨터 시스템 KR920008456B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US35880789A 1989-05-31 1989-05-31
US358807 1989-05-31

Publications (2)

Publication Number Publication Date
KR900018821A KR900018821A (ko) 1990-12-22
KR920008456B1 true KR920008456B1 (ko) 1992-09-30

Family

ID=23411123

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019900007310A KR920008456B1 (ko) 1989-05-31 1990-05-22 다중버스 마이크로컴퓨터 시스템

Country Status (12)

Country Link
US (1) US5450559A (ko)
EP (1) EP0400839A3 (ko)
JP (1) JPH0319050A (ko)
KR (1) KR920008456B1 (ko)
CN (1) CN1020005C (ko)
AU (1) AU627304B2 (ko)
BR (1) BR9002555A (ko)
CA (1) CA2016399C (ko)
GB (1) GB9008145D0 (ko)
NZ (1) NZ233539A (ko)
PH (1) PH30307A (ko)
SG (1) SG42806A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU664249B2 (en) * 1992-04-01 1995-11-09 Nec Corporation Memory device
US5655151A (en) * 1994-01-28 1997-08-05 Apple Computer, Inc. DMA controller having a plurality of DMA channels each having multiple register sets storing different information controlling respective data transfer
US5805927A (en) * 1994-01-28 1998-09-08 Apple Computer, Inc. Direct memory access channel architecture and method for reception of network information
US5828856A (en) * 1994-01-28 1998-10-27 Apple Computer, Inc. Dual bus concurrent multi-channel direct memory access controller and method
US5550543A (en) * 1994-10-14 1996-08-27 Lucent Technologies Inc. Frame erasure or packet loss compensation method
US6249845B1 (en) 1998-08-19 2001-06-19 International Business Machines Corporation Method for supporting cache control instructions within a coherency granule
FI121943B (fi) * 2007-11-21 2011-06-15 Outotec Oyj Jakelulaite
GB2547189A (en) * 2016-02-03 2017-08-16 Swarm64 As Cache and method

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4056845A (en) * 1975-04-25 1977-11-01 Data General Corporation Memory access technique
US4317168A (en) * 1979-11-23 1982-02-23 International Business Machines Corporation Cache organization enabling concurrent line castout and line fetch transfers with main storage
US4315312A (en) * 1979-12-19 1982-02-09 Ncr Corporation Cache memory having a variable data block size
US4332010A (en) * 1980-03-17 1982-05-25 International Business Machines Corporation Cache synonym detection and handling mechanism
US4381541A (en) * 1980-08-28 1983-04-26 Sperry Corporation Buffer memory referencing system for two data words
US4400774A (en) * 1981-02-02 1983-08-23 Bell Telephone Laboratories, Incorporated Cache addressing arrangement in a computer system
JPS5819970A (ja) * 1981-07-30 1983-02-05 Fujitsu Ltd メモリアクセス制御方式
JPS58147879A (ja) * 1982-02-26 1983-09-02 Toshiba Corp キヤツシユメモリ制御方式
US4493026A (en) * 1982-05-26 1985-01-08 International Business Machines Corporation Set associative sector cache
US4669043A (en) * 1984-02-17 1987-05-26 Signetics Corporation Memory access controller
US4577293A (en) * 1984-06-01 1986-03-18 International Business Machines Corporation Distributed, on-chip cache
JPS6113354A (ja) * 1984-06-28 1986-01-21 Nec Corp 分散情報キヤツシユ制御方式
JPS6120155A (ja) * 1984-07-06 1986-01-28 Nec Corp メモリアクセス制御装置
JPS61231641A (ja) * 1985-04-05 1986-10-15 Nec Corp キヤツシユ制御方式
JPS6261135A (ja) * 1985-09-11 1987-03-17 Nec Corp キヤツシユメモリ
JPS6267650A (ja) * 1985-09-19 1987-03-27 Nec Corp キヤツシユメモリ制御装置におけるストア処理方式
JPS62118456A (ja) * 1985-11-19 1987-05-29 Nec Corp キヤツシユメモリ
JPS62194563A (ja) * 1986-02-21 1987-08-27 Hitachi Ltd バツフア記憶装置
US4797814A (en) * 1986-05-01 1989-01-10 International Business Machines Corporation Variable address mode cache
JPS6324428A (ja) * 1986-07-17 1988-02-01 Mitsubishi Electric Corp キヤツシユメモリ
JPH0673114B2 (ja) * 1987-03-31 1994-09-14 日本電気株式会社 キヤツシユ制御装置
US5091850A (en) * 1987-09-28 1992-02-25 Compaq Computer Corporation System for fast selection of non-cacheable address ranges using programmed array logic
US4905188A (en) * 1988-02-22 1990-02-27 International Business Machines Corporation Functional cache memory chip architecture for improved cache access
US5034917A (en) * 1988-05-26 1991-07-23 Bland Patrick M Computer system including a page mode memory with decreased access time and method of operation thereof
US5045998A (en) * 1988-05-26 1991-09-03 International Business Machines Corporation Method and apparatus for selectively posting write cycles using the 82385 cache controller
US4947319A (en) * 1988-09-15 1990-08-07 International Business Machines Corporation Arbitral dynamic cache using processor storage
US5041962A (en) * 1989-04-14 1991-08-20 Dell Usa Corporation Computer system with means for regulating effective processing rates
EP0398191A3 (en) * 1989-05-19 1991-11-27 Compaq Computer Corporation Quadruple word, multiplexed, paged mode and cache memory

Also Published As

Publication number Publication date
CN1047741A (zh) 1990-12-12
KR900018821A (ko) 1990-12-22
BR9002555A (pt) 1991-08-13
NZ233539A (en) 1992-08-26
CA2016399C (en) 1996-04-09
CA2016399A1 (en) 1990-11-30
US5450559A (en) 1995-09-12
CN1020005C (zh) 1993-03-03
GB9008145D0 (en) 1990-06-06
EP0400839A2 (en) 1990-12-05
EP0400839A3 (en) 1991-12-11
AU5506090A (en) 1990-12-06
AU627304B2 (en) 1992-08-20
JPH0581941B2 (ko) 1993-11-16
PH30307A (en) 1997-03-06
SG42806A1 (en) 1997-10-17
JPH0319050A (ja) 1991-01-28

Similar Documents

Publication Publication Date Title
EP0192202B1 (en) Memory system including simplified high-speed data cache
US5469555A (en) Adaptive write-back method and apparatus wherein the cache system operates in a combination of write-back and write-through modes for a cache-based microprocessor system
US5276833A (en) Data cache management system with test mode using index registers and CAS disable and posted write disable
US5325499A (en) Computer system including a write protection circuit for preventing illegal write operations and a write poster with improved memory
US5303364A (en) Paged memory controller
US5210845A (en) Controller for two-way set associative cache
US6760819B2 (en) Symmetric multiprocessor coherence mechanism
US6192458B1 (en) High performance cache directory addressing scheme for variable cache sizes utilizing associativity
US6115791A (en) Hierarchical cache system flushing scheme based on monitoring and decoding processor bus cycles for flush/clear sequence control
US5249284A (en) Method and system for maintaining data coherency between main and cache memories
US6470429B1 (en) System for identifying memory requests as noncacheable or reduce cache coherence directory lookups and bus snoops
US6157980A (en) Cache directory addressing scheme for variable cache sizes
JPH11167524A (ja) コンピュータ・システム
US6219765B1 (en) Memory paging control apparatus
JPH09237223A (ja) バスブリッジを用いたコンピュータシステム
US5420994A (en) Method for reading a multiple byte data element in a memory system with at least one cache and a main memory
KR920008456B1 (ko) 다중버스 마이크로컴퓨터 시스템
US6219764B1 (en) Memory paging control method
JPH09179780A (ja) バースト可でキャッシュ不可のメモリアクセスを支援するマイクロプロセッサ装置
US5860113A (en) System for using a dirty bit with a cache memory
KR100322223B1 (ko) 대기행렬및스누프테이블을갖는메모리제어기
EP0535701A1 (en) Architecture and method for combining static cache memory and dynamic main memory on the same chip (CDRAM)
US5434990A (en) Method for serially or concurrently addressing n individually addressable memories each having an address latch and data latch
KR100218616B1 (ko) 현재의 트랜잭션동안 다음 어드레스를 제공하기 위한 전송방법 및 시스템
JPS6329297B2 (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: 20020715

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee