KR950013261B1 - 캐쉬의 보전성 유지 장치 및 방법. 메모리 콘트롤러 및 그의 동작 방법과 컴퓨터 시스템 - Google Patents

캐쉬의 보전성 유지 장치 및 방법. 메모리 콘트롤러 및 그의 동작 방법과 컴퓨터 시스템 Download PDF

Info

Publication number
KR950013261B1
KR950013261B1 KR1019910017954A KR910017954A KR950013261B1 KR 950013261 B1 KR950013261 B1 KR 950013261B1 KR 1019910017954 A KR1019910017954 A KR 1019910017954A KR 910017954 A KR910017954 A KR 910017954A KR 950013261 B1 KR950013261 B1 KR 950013261B1
Authority
KR
South Korea
Prior art keywords
rom
cpu
cache
ram
memory
Prior art date
Application number
KR1019910017954A
Other languages
English (en)
Other versions
KR920008601A (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 KR920008601A publication Critical patent/KR920008601A/ko
Application granted granted Critical
Publication of KR950013261B1 publication Critical patent/KR950013261B1/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
    • 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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting 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

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

내용 없음.

Description

캐쉬의 보전성 유지 장치 및 방법. 메모리 콘트롤러 및 그의 동작 방법과 컴퓨터 시스템
제 1 도는 본 발명에 따른 퍼스널 컴퓨터의 투시도.
제 2 도는 제 1 도에 도시된 퍼스널 컴퓨터의 특정 구성요소의 분해도.
제 3 도는 제 1 도 및 제 2 도에 도시된 퍼스널 컴퓨터의 블록도로서, 본 발명을 유리하게 이용될 수 있는 컴퓨터 아키텍쳐의 한가지 형태를 상세히 도시한 도면.
제 4 도는 본 발명의 원리를 설명하는데 유용한, 제 3 도에 도시된 것과 같은 컴퓨터 시스템이 특정 부분의 간략화된 블록도로서, 특히 CPU와, 관련된 캐쉬 메모리, RAM 및 ROM 사이의 협동 작용을 관리하기 위하여 로컬 메모리 콘트롤러가 이용된 경우에, CPU와 상기 메모리들 사이의 상호접속을 도시한 도면.
제 5 도는 본 발명에 따른 스누프 사이클의 수행시에, 본 발명에 따라 작성된 로컬 메모리 콘트롤러에 의해 수행되는 판정 기능을 나타내는 흐름도로서, ROM이 RAM에 대해 맵되어 있는 경우, CPU의 ROM에 대한 기입 동작이 수행될 때마다, 메모리 콘트롤러가 CPU로 무효화 신호를 제공하는 것을 나타내는 도면.
제 6 도는 선행기술에 따른 로컬 메모리 콘트롤러가 캐쉬 데이터의 보전성을 유지하기 위해 스누프 데이터를 실시 및 이용할 경우 발생되는 예시적인 일련의 단계들을 나타낸 타이밍도.
제 7 도는 ROM이 RAM에 대해 맵되어 있는 경우, CPU의 ROM에 대한 기입 동작이 수행되는 동안 태쉬 데이터의 보전성을 유지하기 위하여 로컬 메모리 콘트롤러가 이용되었을 때, 본 발명의 일 실시예에 따라 발생되는 예시적인 일련의 단계들을 나타낸 타이밍도.
* 도면의 주요 부분에 대한 부호의 설명
420∼422, 480, 482, 483, 485, 490 : 버스
432 : CPU 434 : 로컬 버스
438 : 메인 메모리 452 : 마이크로 채널 버스
459 : 메모리 콘트롤러 461 : 데이터 버퍼
464 : ROM 481 : BIU
484 : 버퍼
본 발명은 전반적으로 중앙 처리 장치(central processing unit : CPU) 및 그에 관련되는 캐쉬 메모리(cache memory), 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM) 및 이들 메모리와 CPU 사이의 협동 작용을 제어하는 로컬 메모리 콘트롤러(local memory controller)를 포함하는 컴퓨터 시스템에서 캐쉬 메모리의 데이터 보전성(integrity)을 유지하는 방법 및 장치에 관한 것으로, 특히, RAM에 대한 ROM의 맵핑이 실시되는 동작 모드(ROM mapped to RAM mode of operation)가 지원되고, RAM에 대한 ROM의 맵핑 모드가 인에이블되어 있는 동안에, CPU의 ROMDP 대한 기입 동작이 실시되는 컴퓨터 시스템에서 캐쉬의 보전성을 유지하는 방법 및 장치에 관한 것이다.
IBM PS/2 모델 70 퍼스널 컴퓨터 시스템과 같은 공지된 퍼스널 컴퓨터 시스템은 RAM에 대한 ROM의 맵핑을 지원하여 시스템의 동작 속도(operating speed)를 향상시키고 있다. IBM 및 IBM PS/2라고 하는 용어는 INTERNATIONAL BUSINESS MACHINES CORPORATION의 등록상표이다.
본 명세서에 정의된 바와 같이, 컴퓨터 시스템에서 소정의 신호 또는 신호 세트의 유(presence)(또는, 무(absence))를 검출하려고 할 때, 시스템 장치에 의해 수행되는 동작인 "스누프(snoop)" 동작을 수행하는 것도 잘 알려져 있다. 예를 들면, 캐쉬 메모리를 포함하는 컴퓨터 시스템에서, 스누프 사이클(snoop cycles)은, 로컬 메모리 콘트롤러에 의해, 특정 메모리 콘트롤러의 제어하에 캐쉬내의 데이터와 관련되는 메인 메모리(main memory)에 대한 외부의 기입 동작(예를 들면, 외부 버스 마스터(external bus master)에 의해 수행되는 기입)을 검출함으로써 실시되어 왔다. 이러한 기입 동작이 로컬 메모리 콘트롤러 스누프 사이클동안에 검출되는 경우, 콘트롤러에 의한 잘 알려진 응답은, 로컬 CPU에 무효 신호 및 캐쉬 어드레스 신호를 제공하여 적합한 캐쉬 엔트리(entry)가 로컬 CPU에 무효 신호 및 캐쉬 어드레스 신호를 제공하여 적합한 캐쉬 엔트리(entry)가 로컬 CPUDP 의해 무효화 될 수 있도록 하는 것이다.
그러나, (1) RAM에 대한 ROM의 맵핑을 지원하고, (2) 전술한 맵핑이 인에이블되어 있을때에, CPU의 ROM에 대한 기입 동작이 수행되는 경우, 캐쉬 메모리내의 데이터가 파괴되지 않도록 보호하는 컴퓨터 시스템은 알려져 있지 않다. ROM 기입 동작으로 ROM의 내용을 수정하는 것은 불가능하지만, ROM의 데이터가 RAM에 대해 맵되 있고 ROM에 대한 CPU의 기입 동작에 선행하여 페치(fetch)시에 캐쉬가 이용된 경우, CPU의 ROM에 대한 기입 동작이 수행될 때, 무효 캐쉬 데이타가 생성될 가능성이 분명히 존재한다. 이러한 가능성은 각 CPU가 통상의 프로세서와 연관된 캐쉬 메모리의 데이터를 갱신하고, 이전의 캐쉬 데이터 값 등을 무효화 할 책임이 있으므로, 존재한다.
따라서, ROM이 RAM에 대해 맵되 있고, CPU의 ROM에 대한 기입 동작이 수행될 때마다 캐쉬 메모리의 데이터의 보전성을 보증하는 방법 및 장치가 제공되는 것이 바람직하다. 또, 이와 같은 방법 및 장치를 컴퓨터 시스템에 하드웨어를 추가하지 않고, 기존의 시스템 구성요소(메모리 콘트롤러, CPU 등)를 이용하여 실현하는 것이 바람직하다.
또한, 의도된 방법 및 장치가 CPU의 ROM에 대한 기입 동작의 수행과 병행하여, 캐쉬의 보전성을 유지하는데 필요한 기능을 수행하는 것이 바람직하다.
또한, 스누프 사이클은, (RAM에 대해 맵되어 있는 ROM을 가지고) 소정의 CPU에 의해 수행되는 ROM 기입 동작이 검출되는 동안에, CPU와 협동해야 하는 메모리 콘트롤러에서 실시될 수 있는 것이 바람직하다.
또한, 캐쉬 엔트리를 무효화 하는 기존의 신호 프로토콜(existing singnalling protocols)이 (캐쉬의 보전성을 유지하기 위해) CPU의 ROM에 대한 기입 동작을 검출하는 전술한 스누프 사이클과 관련하여 이용되므로, 소망하는 캐쉬 무효화 공정을 수행하기 위해, 컴퓨터 시스템의 전체적인 설계 및 복잡성을 변경할 필요가 없는 것이 바람직하다.
따라서, 본 발명의 주된 목적은, RAM에 대해 맵되어 있는 ROM으로 CPU의 ROM에 대한 기입 동작이 수행될 때마다. 캐쉬 메모리내의 데이터의 보전성을 보장하기 위한 방법 및 장치를 제공하는 것이다.
본 발명의 다른 목적은, 컴퓨터 시스템에 의해 RAM에 대한 ROM의 맵 모드가 지원되고 상기 모드가 인에이블될 때마다, CPU의 ROM에 대한 기입동작을 검출하기 위한 방법 및 장치를 제공하는 것이다.
본 발명의 또 다른 목적은, ROM이 RAM에 대해 맵되어 있는 경우, CPU의 ROM에 대한 기입 동작이 수행될 때마다, 캐쉬의 보전성을 유지하기 위하여 기존의 캐쉬 입력 무효화 신호 프로토콜을 이용하는 방법 및 장치를 제공하는 것이다.
본 발명의 또 다른 목적은, 본 발명에 의해 의도되는 기능을 수행하기 위해 로컬 메모리 콘트롤러를 이용하여, 이러한 콘트롤러에서 ROM이 RAM에 대해 맵될 때마다 CPU의 ROM에 대한 기입 동작을 검출하는 스누프 사이클을 실시할 수 있게 하는 것이다.
본 발명에 따르면, CPU가 ROM 공간에 대한 기입을 수행하고 RAM에 대한 ROM의 맵모드가 인에이블될 때마다, 로컬 버스에 의해 CPU에 결합된 로컬 메모리 콘트롤러는, (1) 스누프 사이클을 수행하여 ROM에 대한 CPU의 기입 동작을 검출하고 ; 이러한 동작이 검출되면, (2) CPU로 캐쉬 무효화 신호를 제공한다. CPU는 로컬 버스상의 기존의 무효 어드레스(CPU에 의해 지정된 ROM의 기입 어드레스)와 함께, 무효화 신호를 이용하여, CPU의 ROM에 대한 기입 동작이 목표로 하는 메인 메모리 어드레스에 대응하는 소정 캐쉬 데이터 엔트리를 무효화 한다. 이러한 무효화는 기입 동작의 진행중에 발생한다.
본 발명은, RAM에 대한 ROM의 맵 동작 모드를 지원하는 컴퓨터 시스템에서, RAM에 대한 ROM의 맵 모드가 인에이블 되었을 때 ROM에 대한 CPU의 기입이 수행된 경우, 캐쉬의 보전성을 유지하는 방법 및 장치를 특징으로 한다.
본 발명의 다른 특징은, RAM에 대한 ROM의 맵 모드가 인에이블 되었을 때, CPU의 ROM에 대한 기입 동작을 검출하기 위하여 메모리 콘트롤러의 스누프 사이클을 실시 및 이용하고 ; ROM이 RAM에 맵되어 있는 경우, CPU의 ROM에 대한 기입 동작을 검출하였을 때 캐쉬 엔트리 무효화 신호를 제공하기 위하여 상기한 메모리 콘트롤러를 이용하며 ; 로컬 메모리 콘트롤러에 의해 CPU로 상기 무효화 신호가 제공될때마다, 무효화되어야 할 어떤 연관된 캐쉬 메모리 엔트리의 어드레스를 결정하기 위하여, CPU가 로컬 버스상의 어드레스 신호(ROM에 대한 기입 동작을 수행하는 CPU에 의해 로컬 버스상으로 전송된다)를 이용하는 것을 포함한다.
이들 및 다른 목적과 특징은, 본 기술 분야에 숙련된 자에 의해, 이후의 첨부 도면과 관련한 상세한 설명을 참조함으로써 인식될 것이다.
이하 본 발명이, 본 발명에 따른 실시예가 도시된 첨부 도면을 참조하면서 더욱 상세하게 설명되며, 본 기술 분야에 숙련된 자라면, 본 발명이 의도하는 바람직한 결과가 얻어지도록 하면서 본 명세서에 설명된 본 발멸명에 대한 수정이 가능함을 이해할 것이다. 따라서, 이후에 계속되는 설명은 적합한 기술분야에서의 숙련자를 대상으로 한 일반적인 교육을 위한 개시이지, 본 발명의 범위를 제한하는 것을 의도한 것은 아님을 이해해야 한다.
첨부 도면을 참조하면, 본 발명을 구체화할 수 있는(그리고 지원할 수 있는)마이크로컴퓨터의 일예가 도시되며, 전체적으로(10)으로 도시되어 있다.(제 1 도 참조) 컴퓨터 시스템(10)은 연관된 모니터(11), 키보드(12) 및 프린터 또는 플로터(14)를 구비할 수 있다. 이 컴퓨터 시스템(10)은, 디지털 데이터를 처리하고 저장하는 전동식 데이터 처리 구성요소 및 저장 구성요소를 수용하기 위하여, 새시(chassis)와 함께 협동하여 밀폐형 실드 용적(enclosed, shielded volume)을 한정하는, 외측 장식용 부재(16) 및 내측 실드 부재(18)에 의해 형성된 덮개(15)를 구비한다.(제 2 도 참조) 이들 구성요소중 적어도 몇 개는 새시(19)상에 탑재되어, 앞서 언급된 구성요소 및 그 밖에, 플로피 디스크 드라이브, 각종 형태의 직접 액세스 저장 장치. 부속 카드(accessory card)또는 보드 등과 같은 관련된 요소를 포함하는 컴퓨터(10)의 구성요소들을 전기적으로 상호 접속하기 위한 수단을 제공하는 플레너(20)상에 장착된다.
새시(19)는 (22)로 표시된 베이스와, (24)로 표시된 전면 패널 및 (25)로 표시된 후면 패널을 구비한다(제 2 도 참조). 전면 패널(24)은 자기 또는 광 디스크용 디스크 드라이브, 또는 테이프 백업 드라이브 등과 같은 데이터 저장 장치를 수용하기 위한 적어도 하나의 개방 베이(open bay)(도시된 형태의 경우, 4개의 베이)를 형성하고 있다. 도시된 형태에는, 한쌍의 상부 베이(26), (28) 및 한 쌍의 하부 베이 (29), (30)가 제공되어 있다. 한쌍의 상부 베이중 하나(26)는 제 1 사이즈의 주변 드라이브(3.5인치 드라이브로서 알려짐)를 수용하도록 되어 있고, 다른 하나(28)는 2개의 사이즈(예를 들면, 3.5인치 및 5.25인치)중 선택된 사이즈의 드라이브를 수용하도록 되어 있으며, 한 쌍의 하부 베이는 오직 한 사이즈(3.5인치)의 장치만을 수용하도록 되어 있다.
상기한 구조와 본 발명을 관련시키기에 앞서, 퍼스널 컴퓨터 시스템(10)의 일반적인 동작을 개략적으로 살펴볼 가치가 있다고 생각된다. 제 3 도를 참조하면, 컴퓨터 시스템(10)의 각종 구성요소를 나타내는 퍼스널 컴퓨터 시스템의 블록도가 도시되어 있다. 제 3 도에 도시된 시스템은 플레너(20)상에 장착된 구성요소 및 퍼스널 컴퓨터 시스템의 I/O 슬롯 및 다른 하드웨어에 대한 플레너의 접속을 포함한다.
플레너에는, 버스 제어 타이밍 유닛(35)을 통해 고속의 CPU 로컬 버스(34)에 의해 접속된, 마이크로프로세서(예를 들면, 제 3 도에 도시된 80486 마이크로프로세서)로 이루어진 시스템 프로세서(32)가 접속되며, 상기 고속의 CPU 로컬 버스는 또한 휘발성 랜덤 액세스 메모리(RAM)(38)에 접속된다.
이후 본 발명은 제 3 도에 도시된 시스템 블록도중 일부(특히, 제 4 도에서 실선으로 도시한 제 3 도의 부분)에 관련하여 설명되겠지만, 설명을 시작하는데에 있어서, 본 발명은 다른 하드웨어 구성과 함께 이용될수도 있음이 이해되어야 한다. 예를 들면, 제 3 도에는 도시만을 목적으로, CPU(32)가 80486 마이크로프로세서로서 도시되어 있다. 이 80486 마이크로프로세서는 캐쉬 메모리(CPU(32)내에서 점선과 참조 부호(99)에 의해 표시됨)를 포함한다. 그러나, 다른 하드웨어 구성에서, 캐쉬 메모리는, 80386 등과 같이, (프로세서와 연관되어 있음에도 불구하고) 프로세서의 외부에 위치될 수 있으며, 본 명세서에 설명된 본 발명의 사상 및 범위를 벗어나지 않는다.
제 3 도를 재참조하면, CPU 로컬 버스(34)(데이타, 어드레스 및 제어 구성요소 (34D, 34A, 34C)를 포함함)는 마이크로프로세서(32)와 산술 코프로세서(선택정)(39)의 접속을 제공한다. CPU 로컬 버스(34)에는 버퍼(51)가 또한 결합된다. 버퍼(51) 자체는 마이크로 채널(Micro Channel)버스(52)에 접속된다. 마이크로 채널은 IBM사의 등록 상표이다. 이 버스(34)는 또한 중앙 중재 유닛(central arbitration unit)(49) 및 DMA 콘트롤러 (50)를 포함하는 DMA 유닛(48)에 접속된다. 버퍼(51)는 로컬 버스(34)와, 마이크로 채널버스(52)와 같은 선택 특징을 갖는 버스 사이의 인터페이스를 제공한다. 버스(52)에는, I/O 장치 또는 메모리에 또한 각각 접속될 수도 있는 어댑터 카드를 수용하는 복수의 I/O 슬롯(54)이 접속된다.
중재 제어 버스(57)는 DMA 콘트롤러(50) 및 중앙 중재 유닛(49)을 I/O 슬롯(56) 및 디스켓 어댑터(56)에 결합한다. 로컬 버스(34)에는 메모리 콘트롤러(59), 어드레스 멀티플렉서(60) 및 데이터 버퍼(61)를 포함하는 메모리 제어 유닛(36)이 또한 접속된다. 메모리 제어 유닛(36)은 또한 버스(120)-(122)를 경유하여 RAM 모듈(38)로 나타내어진 랜덤 액세스 메모리에 접속된다. 버스(120)는 메모리 데이터를 전송하고, 버스(121)는 제어 신호를 전송하고, 버스(122)는 어드레스 신호를 전송한다.
메모리 제어 유닛(36)은 마이크로프로세서(32)로/로부터의 어드레스를 RAM(38)의 특정한 영역에 대해 맵하기 위한 논리 회로를 포함한다. 이 논리는, 예를 들면, 이전에 기본 입출력 시스템(BIOS)에 의해 점유되었던 RAM을 재사용하는데에 이용될 수 있다. BIOS는, 컴퓨터 시스템(10)에 장착된 I/O 장치와 마이크로프로세서(32)의 오퍼레이팅 시스템 사이의 인터페이스에 이용되는 잘 알려진 시스템이다. BIOS는 전형적으로 ROM(64)에 저장되며, RAM에 대한 ROM의 맵 모드가 인에이블되어 컴퓨터 시스템(10)에 의해 지원되는 경우, BIOS의 실행 시간을 단축하기 위하여 RAM(38)에 복사될 수 있다. 이러한 상태(즉, RAM에 대해 ROM이 맵되어 있는 상태)는, CPU(32)와 연관된 캐쉬 메모리내의 데이터 보전성을 보장하기 위해 본 발명이 유리하게 사용될 수도 있는 경우의 대표적인 예를 제공한다.
제 3 도에 도시된 컴퓨터 시스템에서, 메모리 제어 유닛(36)은 ROM (64)을 인에이블(enable) 또는 디스에이블(disable)시키는데 사용될 수도 있는 ROM 선택 신호(ROMSEL)를 발생한다. ROM(64)이 인에이블되면, ROM으로부터 BIOS가 판독되어 실행된다. ROM(64)이 디스에이블되면, ROM은 마이크로프로세서(32)로부터의 어드레스 조회에 응답하지 않는다.(즉, BIOS가 RAM으로부터 판독되어 실행된다.)
단지 예시를 목적으로, 본 발명은, 기본적인 IMB(메가 바이트)의 RAM 모듈(38)을 갖는 것으로 도시된 마이크로컴퓨터 시스템(10)에 관련하여 설명되었다. 본 기술 분야에 숙련된 자는, 제 3 도에서 선택적인 메모리 모듈(65-67)로 나타낸 바와 같이 추가의 메모리가 상호 접속될 수 있음을 이해할 것이다. 유의할 것은, RAM(38)은 종종 본 명세서에서 "메인 메모리"라고 언급된다는 것이다.
제 3 도에 버스(52)와 플레너 I/O 버스(69) 사이에 결합되는 또 하나의 버퍼(68)가 도시된다. 이 버퍼(68)는 마이크로 채널 버스(52)와 플레너 I/O 버스(69) 사이를 효과적으로 인터페이스한다. 플레너 I/O 버스(69)는 어드레스, 데이터 및 제어 요소를 각각 포함한다.
이 플레너 I/O 버스(69)를 따라 각종 I/O 어댑터 및 디스플레이 어댑터(70)(모니터(11)를 구동하는데 사용됨), 클럭(72), 비휘발성 RAM(이하 NVRAM이라 함)(74), RS232 어댑터(76), 병렬 어댑터(78), 복수의 타이머(80), 앞서 언급된 디스켓 어댑터(56), 인터럽터 콘트롤러(84) 및 앞서 언급된 ROM(64) 등과 같은 다른 구성요소가 결합된다. 전술한 바와 같이, ROM(64)은 BIOS뿐만 아니라, IBM PS/2 Model 70의 시스템 초기화 프로그램 "포스트(POST)"와 같은 다른 중요한 프로그램 및 데이터 세트를 저장하는데 사용될 수도 있다.
제 3 도에 도시된 클럭(72)은 날짜 계산에 이용될 수도 있다. NVRAM은 시스템 구성 데이터를 저장하는 데 사용될 수도 있다. 예를 들면, 본발명을 지원하는 컴퓨터 아키텍쳐의 한 예에서, NVRAM은 고정 디스크 또는 디스켓의 용량, 디스플레이의 형태, 메모리량, 시간, 날짜 및, 시스템(10)이 RAM에 대한 ROM의 맵 동작 모드를 지원할 수 있는지의 유무 등을 설명하는 정보를 포함하는데 이용될 수 있다.
NVRAM 데이터 비트는, 예를들면, 메모리 콘트롤러(59)에 의해, ROM이 RAM에 대해 맵되었는지(모드 인에이블 비트에 의해)의 여부 ; BIOS가 ROM으로부터 판독되어 실행되는가 또는 RAM으로부터 판독되어 실행되는가의 여부 ; BIOS RAM에 의해 이용될 예정인 RAM을 재이용할지의 여부를 판정하기 위해 이용될 수 있다. 또한, 이러한 정보는 메모리 콘트롤러에 국부적으로 저장될 수 있다.
전술한 바와 같이, 본 발명은, 메모리 콘트롤러가, 메모리 콘트롤러와 마이크로 채널 버스 사이의 인터페이스로서 작용하는 버스 인터페이스 유닛(BIU)을 통해, 마이크로 채널 버스(2)에 결합되고 ; 메모리 콘트롤러가 이후에 참조하게 되는 모드 비트를 포함하는 등과 같이, 제 3 도에 도시된 것 이외의 컴퓨터 아키텍쳐에서 이용될 수도 있다. 따라서, 본 기술 분야에 숙련된 자는, 이하의 설명을 참조하여, 본 발명이 유리하게 사용될 수도 있는 특정 컴퓨터 아키텍쳐가 본질적으로 본 발명의 범위를 제한하려고 하는 것은 결코 아님을 용이하게 이해할 수 있을 것이다.
본 발명이 유리하게 이용 될 수 있는 컴퓨터 아키텍쳐에 대해서 설명했지만, 이러한 컴퓨터 시스템중 본발명의 원리를 설명하는데 유용한 부분을 간략화된 형태로 제 4 도에 도시한다.
특히, 제 4 도의 간략화된 블록도는 CPU, 그와 관련된 캐쉬 메모리, RAM 및 ROM 사이의 상호 접속에 집중하며 ; 이 경우 CPU와 상기한 메모리들 사이의 협동작용을 관리하기 위하여 로컬 메모리 콘트롤러가 이용된다.
제 3 도 및 제 4 도에 도시된 장치와 버스들 사이의 대응 관계는 다음과 같다. (제 4 도의) CPU(432)는 (제 3 도의) CPU(32)에 대응하고, 메모리 콘트롤러(459)는 메모리 콘트롤러(59)에 대응하고, 데이터 버퍼(461)는 데이터 버퍼(61)에 대응하며, RAM(438)은 RAM(38)에 대응하고, ROM(464)은 ROM(64)에 대응하고, 마이크로 채널 버스(452)는 마이크로 채널 버스(52)에 대응하고, 로컬 버스(434)는 로컬 버스(34)에 대응하며, 로컬 버스(434)의 어드레스, 제어 및 데이터 요소(434A, 434C 및 434D)는 각각 로컬 버스(34)의 요소(34A, 34C 및 34D)에 대응하고 버스(420-422)는 각각 버스 (120-122)에 대응한다.
제 4 도에는 또한 마이크로 채널 버스(452)를 통해 ROM(464)에 결합된 메모리 콘트롤러(459) 및 CPU(432)가 도시된다. 마이크로 채널 버스(452), 버스 인터페이스 유닛(BIU)(481) 및 버퍼(484)와 (버스(480, 482, 483 및 485)를 통한) 이들의 접속은, (1) 본 발명이 BIU 등을 필요로 하지 않는, 제 3 도에 도시된 바와 같은, (즉, ROM이 플레너 버스, 래치/버퍼 디코더 등을 경유하여 마이크로 채널 버스(52)에 결합된)컴퓨터 아키텍쳐로 실시가능하며 ; 또는, (2) 본 발명이, 제 4 도에 도시된 모든 구성요소(점선을 이용하여 도시된 것을 포함함)를 사용하는 것과 같은 몇몇 다른 컴퓨터 아키텍쳐, 즉, 메모리 콘트롤러(459)가 BIU(481)를 경유하여 ROM(464)에 결합되고, 데이터가 마이크로 채널 버스(452)와 CPU(432) 사이에서 버퍼(484)에 의해 버퍼링되는 것과 같은 컴퓨터 아키텍쳐에서 실시가능하며 ; (3) 본 발명이 마이크로 채널 버스(52)를 전혀 이용하지 않는 예를 들면 ROM이 로컬 버스를 통해 메모리 콘트롤러에 결합된 컴퓨터 아키텍쳐에서 실시가능하며 ; 또한, (4) 본 발명의 사상 또는 범위로부터 이탈하지 않고 모든 다른 컴퓨터 아키텍쳐에서 실시가능하다는 것을 표시하기 위해 모두 점선으로 도시되어 있다.
중요한 것은, 본 발명이, 각종 컴퓨터 아키텍쳐중 어떤 환경에서도 그 컴퓨터 시스템의 RAM에 대한 ROM의 맵 모드가 인에이블되었을 때, 특수목적 메모리 콘트롤러 스누프 사이클(이후 제 5 도 및 제 7 도를 참조하여 상세히 설명됨)을 실행시킴으로써 실시될 수도 있다는 것을 이해하는 것이다. 전술한 바와 같이, 제 3 도에 도시된 NVRAM(RAM(74))은 RAM에 대해 ROM이 맵되어 있는지의 여부를 판정하기 위해 메모리 콘트롤러에 의해 이용되는, 앞서 언급된 모드 인에이블 비트를 저장하는데 이용될 수도 있는 유일한 장치이다. 또한, 앞서 지적된 바와 같이, 메모리 콘트롤러 자체가 모드 정보등을 저장하는데 이용될 수도 있다.
본 발명의 일 실시예에 따르면, 본 발명에 의해 의도된 특수 목적 스누프 사이클은, 제 5 도에 도시된 흐름도에 나타낸 방식으로 동작하는데, 이것에 대해서는 이제부터 제 4 도 및 제 5 도를 참조하여 설명한다.
우선, 메모리 콘트롤러(459)는 메모리 기입 사이클이 개시되었는지의 여부를 판정하고(제 5 도의 블록(501)), 개시했으면, ROM 어드레스가 로컬 버스(434)상에 존재하는지의 유무를 판정한다.(제 5 도의 블록(502)). 이것은, 본 발명을 실시하기 위해, 메모리 콘트롤러(459)에 의해 실행될 수 있는 스누핑의 한가지 형태이다. 제 5 도의 블록(501) 및 (502)에서 행해지는 판정(그 순서는 중요하지 않음)은, 로컬 버스(434)(로컬 버스 구성요소(434A 및 434C)를 통해)상으로 메모리 콘트롤러(459)에 제공되는 제어 및 어드레스 신호에 의거하여 실행될 수 있다.
제 5 도의 블록(501, 502 또는 503)에서 행해진 판정 결과가 "아니오(no)"이면, 메모리 콘트롤러(459)가 본 발명의 전술한 목적을 지원하여 캐쉬의 보전성을 유지하기 위해 더 이상의 판정을 행할 필요가 없음이 명확하다. 예를 들면, ROM 판독 동작이 진행중이어서, 블록(501)에서 행해지는 판정이 "아니오"로 될 수도 있다. 주목해야 할 것은 ROM이 RAM에 대해 맵되어 있고, ROM이, 예를 들면, RAM의 128K(예를들면, RAM의 896K∼1024K의 어드레스범위)를 점유하는 경우, 어드레스 공간 896K~1024K 로부터의 페치는 전형적으로 CPU의 ROM 판독시에 캐쉬를 이용할 수 있다. 즉, CPU의 ROM 판독시, 목표 데이타가 아직 캐쉬에 존재하지 않는 경우에는, 그 데이타가 어드레스 공간 896K∼1024K로부터 직접 판독되지만, 존재하는 경우는 데이터가 캐쉬로부터 페치된다.
본 기술 분야의 숙련자라면, 캐쉬 데이터의 보전성이 ROM 판독동작에 의해서는 악영향을 받을 가능성이 전혀 없지만, CPU의 ROM에 대한 기입 동작에 대해서는 적합하지 않음을 쉽게 알 것이다.
상술한 바와 같이, CPU의 ROMDP 대한 기입 동작이 행해질리 없다. 그러나, 만약 이러한 동작이 수행되면, 메모리 콘트롤러(459)는 CPU 사이클(ROM이 제 4 도에 도시된 마이크로 채널 버스를 통해 메모리 콘트롤러에 결합되어 있는 경우)을 마이크로 채널 버스(52)로 이동시킨다. 마이크로 채널 버스가 없는 아키텍쳐의 경우, CPU 사이클은, 예를 들면, 로컬 버스등으로 이동된다. 본 명세서의 상세한 설명중 나머지부분에 대해서는, 단지 설명을 위해, 컴퓨터 아키텍쳐내에 마이크로 채널 버스가 포함되어 있는 것으로 가정한다.
메모리 콘트롤러(459)가 CPU 사이클을 마이크로 채널 버스(452)로 이동하는 것과 거의 동시에(ROM에 대해 맵된 ROM으로 기입 동작을 행하는 경우), CPU(432)는 목표 ROM 데이터가 이미 캐쉬내에 존재하는 경우, 관련되는 캐쉬 데이터를 수정하게 된다. 이와 같이 CPU(432)와 관련된 캐쉬내의 데이터를 수정하는 것은 캐쉬내에 저장되어 있는 ROM 데이터의 파괴를 초래할 수도 있다.
이러한 문제를 해결하기 위하여, 본 발명은 ROM이 RAM에 대해서 맵되어 있을 때 CPU의 ROM에 대한 기입 동작을 검출할 경우, 메모리 콘트롤러(459)가 CPU(432)에 대해 캐쉬 엔트리 무효화 신호를 인가할 것을 요구한다. CPU(432)는 이러한 신호를 응답하여, ROM 기입 동작이 수행되는 동안, 이 ROM 기입 동작의 목표에 대응하는 캐쉬 엔트리를 무효화시킨다.
이러한 동작이 어떻게 이루어지는가를 이해하기 위하여, 다시 한번 제 5 도에 도시된 흐름도를 참조하는 것이 바람직하다. 메모리 기입 사이클의 개시여부 및 로컬 버스상의 ROM 어드레스 존재 유무에 대한 회답이 모두 "예"인 경우, 메모리 콘트롤러(459)는, 본 발명의 한 실시예에 따라, RAM에 대해 ROM의 맵모드가 인에이블되었는지를 체크하여 확인할 수 있다. 상술한 바와 같이, 이것을 행하는 방법중 하나는 모드 인에이블 비트의 값을 체크하는 것이다.
제 5 도에 도시된 블록(503)의 질문에 대한 답이, 또한 "예"(즉, RAM에 대한 ROM의 맵 모드가 인에이블된 경우)이면, 메모리 콘트롤러(459)는 로컬 버스(434)를 통해 CPU(432)로 무효화 신호를 간단히 구동할 수 있다. 이것은 실제상 CPU 사이클이 마이크로채널 버스(52)로 이동됨과 동시에 행해진다.
제 4 도에 도시된 컴퓨터 시스템에서, 메모리 콘트롤러(459)는 또한, 버스(480)상으로 시스템 어드레스 상태 신호(system address status signal ; SADS)를 전송한다. BIU가 버스(482)상으로 마이크로 채널 버스(452)와 인터페이스한다고 가정하면, 마이크로 채널 버스(452)는 메모리 콘트롤러(459)에 의해 (BIU를 통해)공급되는 어드레스 및 제어 신호에 응답하여, ROM 공간에 대한 기입이 불가능하게 한다.
동시에, CPU(432)는 로컬 버스를 통한 무효화 신호의 수신에 응답하여, 로컬 버스상에 이미 존재하는 (CPU에 의해 송출된) 어드레스에 대응하는 캐쉬 엔트리를 무효화 시킨다. 이것은, 프로세서가 특정한 캐쉬 엔트리를 무효화 시키는데 필요한 것은 무효화 어드레스 및 무효화 신호라고 하는, 기존의 캐쉬 무효화 신호 프로토콜과 마찬가지의 방법으로 실시될 수 있다.
이러한 프로토콜은 IBM PS/2 Model 70에 채택되어, 특정의 로컬 메모리 콘트롤러의 제어하에서, 캐쉬의 데이터를 포함하는 메인 메모리에 대한 외부의 기입 동작 (예를 들면, 외부의 버스 마스터(52)터에 의해 수행되는 기입)을 검출한다. 로컬 메모리 콘트롤러의 스누프 사이클 동안에 이러한 기입 동작이 검출되면, 메모리 콘트롤러는 이미 알려진 바와 같이 응답하여(전술한 바와 같이), 무효화 신호 및 캐쉬 어드레스 신호를 로컬 CPU에 제공하고, 따라서 로컬 CPU에 의해 적절한 캐쉬 엔트리를 무효화될 수 있게 된다.
제 6 도는 이러한 종래의 로컬 메모리 콘트롤러가 캐쉬데이타의 보전성을 유지하기 위하여, 스누프 사이클을 실시하여 이용할 때 발생하는 예시적인 일련의 단계들을 도시한 타이밍도이다.
제 6 도의 라인(1)("ADD_BUS"라고 표시됨)에서 사이클 2의 개시 직후까지, CPU(432)에 의해 로컬 버스상으로 전송되는 해당 CPU의 어드레스, 즉, "AAAAR태"(제 4 도의 로컬 버스(432)상으로 출력됨)가 도시되어 있고, 제 6 도에는 예시적인 사이클 1-7이 도시되어 있다.
"A_HOLD"로 표시된 제 6 도의 라인(2)는 CPU(432)가 로컬 버스를 해제시키도록 하기 위해, 제 4 도의 메모리 콘트롤러(459)(예를 들면 PS/2 Model 70에 내장된 형태의 메모리 콘트롤러)에 의해 출력되는 신호이다. 이런형태의 메모리 콘트롤러의 신호 전송은, 예를 들면 선행 기술의 스누프 기법을 이용하여, 캐쉬로서 이용가능한 메모리 공간에 대한 버스 마스터의 기입(앞서 언급한 바 있음) 동작의 검출시에 실행되는 것으로 알려져 있다.
또한 종래의 메모리 콘트롤러는 마이크로 채널 버스(52)상으로 다른 마이크로프로세서(예를 들면, 다른 80486)에 의한 캐쉬로서 이용가능한 메모리 공간에 대한 기입, 혹은 심지어 로컬 버스상으로 다른 마이크로프로세서에 의한 캐쉬로서 이용가능한 메모리 공간에 대한 기입을 인식하도록 설계될 수 있다..
본 기술 분야의 숙련자라면 바로 알 수 있는 바와 같이, 캐쉬로서 이용가능한 메모리 공간에 대한 기입을 포함하는 (RAM에 맵되어 있는 ROM 공간에 대한 기입을 제외함)앞서 언급된 상황중 어느것에서도, 메모리 콘트롤러는(제 6 도의 두번째 라인에 도시된 A_HOLD 형태 신호에 의해)로컬 버스를 제어하여, 관련된 CPU에 의해 무효화 되어야 할 캐쉬 메모리 엔트리의 어드레스와 무효화시키기 위한 로컬 버스를 통해 관련된 CPU로 발생되는 무효화 신호를 함께 전송하는 것으로 알려져 있다.
이런 일련의 사건들이, 제 6 도에서, 사이클 1 동안에 A_HOLD 사이클이 하이가 되고 (메모리 콘트롤러가 로컬 버스를 지배하기를 원하고 있음을 알려준다.) ; 사이클 2 동안에 CPU가 로컬 버스를 해제하고 ; 메모리 콘트롤러가 로컬 버스의 어드레스 구성요소로 무효화 어드레스를 송출하고(제 6 도의 첫 번째 라인의 사이클 3 동안에) ; 이것에 계속하여 메모리 콘트롤러가 사이클 4 동안에 무효화 신호를 인가하여 진행하는 것으로 나타내어져 있다. IBM PS/2 Model 70에서 채택된 무효화 신호 프로토콜에 의해 이용되는 무효화 신호는 외부의 어드레스 상태 신호(external address status signal ; EADS)이다. 따라서, 제 6 도의 라인(3)의 신호는 EADS라고 표시도니다.
CPU가 로컬 버스를 통해 무효화 어드레스 및 무효화 신호를 수신하면(양쪽다 메모리 콘트롤러에 의해서 인가된다). 다음으로 적절한 캐쉬엔트리를 무효화시키도록 진행될 수 있다.
비교를 위해, 제 7 도에는 본 발명의 일실시예에 따라서, ROM 에 대해 ROM이 맵되어 이T는 경우 ROM에 대한 CPU의 기입 동작이 수행되고 있는 동안에, 캐쉬 데이터의 보전성을 유지하기 위하여 로컬 메모리 콘트롤러가 이용될 때 발생하는 예시적인 일련의 사건들을 나타내는(8 사이클 기간에 걸친) 타이밍도가 도시된다.
즉, 제 7 도의 라인(1)에는 로컬 버스의 어드레스 부분(ADD_BUS)이 또한 도시되어 있다. 그러나 이예에서는 사이클 1의 개시로부터 약간의 시간이 경과하면서, CPU의 ROM에 대한 기입 동작이, 로컬 버스상으로 예를 들면 ROM 어드레스 FFFFFOH를 발생시키면서 수행된다. 제 7 도의 라인(2), (3) 및 (4)는 ROM에 대한 기입 동작의 실행시에, CPU에 의해 인가되는 다른 신호를 도시한다.
즉, 라인(2)에는, 예시를 위해, 로우일 경우 I/O 사이클을 표시하고 하이일 경우 메모리 사이클을 나타내는 것으로 가정되는 "M/IO"신호가 도시되어 있다. 따라서, 제 7 도를 참조하면, 라인(2)의 신호가 ROM에 대한 기입동작의 개시와 동시에 하이가 됨을 알 수 있다.
제 7 도의 라인(3)의 신호는 어드레스 상태 신호("ADS")로서, 로우일 경우, 전형적으로 메모리 콘트롤로에게 사이클(메모리 또는 I/O 사이클)이 개시되었음을 알려주는데 이용된다. 이 신호는 또한 ROM에 대한 기입 동작의 수행 동안에, CPU에 의해 인가되는 것임을 알 수 있다.
제 7 도의 라인(4)의 신호(역시 CPU 에 의해 인가됨)는 기입/판독 신호(write/read signal ; "W/R")로서, 예시를 위해, 기입 사이클 동안에는 하이인 것으로 가정한다. 제 7 도를 참조하면, W/R 신호가 ROM에 대한 CPU의 기입 동작 동안에는 하이임을 알 수 있다.
제 7 도에서 그 다음 두 개의 (라인(5) 및 라인(6)은, CPU의 ROM에 대한 기입 동작을 검출시에, 본 발명에 따라서, 메모리 콘트롤러에 의해 구동되는 신호를 나타낸다.
제 7 도에서 라인(5) 및 라인(6)의 목적을 설정하기 전에, 주목해야 할 것은, 본 발명에 의해 의도되는 스누프 동작은 (1) ADD_BUS 신호(제 7 도의 라인(1)에 도시됨)가 ROM 공간내에 있는지(ROM이 ROM에 대해 맵되어 있을 때)의 여부 ; (2) 메모리 기입 사이클이 진행중인지(제 7 도의 라인(2) 및 (4)에 도시된 CPU 출력 신호로부터 판정될 수 있음)의 여부를 첵크하여 확인하기 위하여, 메모리 콘트롤러에 의해 수행될 수있다는 점이다. 이러한 판정은 제 5 도의 블록(501) 및 (502)에 도시된 것에 대응한다.
제 7 도의 라인(5) 및 라인(6)에 관련하여, 전술한 SADS 신호(본 발명의 실시예의 경우, CPU 사이클을 마이크로 채널 버스(52)로 이동시키는데 이용됨)는 (라인(5)에) 도시된 바와 같이, 사이클 4 동안에 메모리 콘트롤러에 의해 구동되고, 무효화 신호 "EADS"는 (라인(6)에) 도시된 바와 같이, 또한 사이클 4 동안에 메모리 콘트롤러에 의해 구동된다. 제 4 도에 관련하여, 주의해야 할 것은, SADS 신호는 버스(480) 상으로 송출되고, EADS 신호는 로컬 버스(434)상으로 송출된다는 것이다.
또, 주의해야 할 것은, CPU에 의해 요구되는 무효화 어드레스가 이미 로컬 버스의 어드레스 요소에 존재한다(ROM에 대한 기입 동작의 수행 동안에, CPU 자체에 의해 송출됨)는 것이다. 따라서, 제 6 도에 도시된 일련의 사건들과는 대조적으로, 제 7 도에 도시된 일련의 사건들에 의해 바람직한 결과를 달성하기 위해, 메모리 콘트롤러가 A_HOLD 신호를 발생할 필요가 없다.
마지막으로, 제 7 도의 라인(7)은, 기입 사이클이 완료되었음을 표시하기 위해, 메모리 콘트롤러에 의해 출력되는 "READY" 신호를 도시한다.
이상에서 설명한 것은 앞서 언급된 모든 목적을 만족시키는 방법, 장치 및 컴퓨터 시스템이다. 이미 나타내어진 바와 같이, 본 기술 분야의 숙련자라면, 이상의 설명이 단지 예시 및 설명을 위한 것임을 알 것이다. 본 발명은 여기에 개시된 정확한 형태에만 철저히 한정된 것은 아니며, 이상의 교시로부터 많은 수정 및 변경이 가능할 것이 명백하다.
본 명세서에 개시된 실시예 및 예들은 본 발명의 원리 및 그의 실질적인 응용을 가장 잘 설명하여, 본 기술 분야에 숙련된 자가 의도되는 특정의 사용에 적합한 다양한 실시예 및 다양한 변경으로 본 발명을 가장 잘 이용할 수 있도록 나타내어졌다.

Claims (18)

  1. 중앙 처리 장치(central process unit ; CPU). 상기 CPU와 연관된 캐쉬 메모리 (cache memory), 랜덤 액세스 메모리(random access momory ; RAM), 판독 전용 메모리(read only memory ; ROM)와, 상기 CPU, 상기 캐쉬 메모리, 상기 RAM 및 상기 ROM 사이의 동작을 제어하기 위한 로컬 메모리 콘트롤러(local memory controller), 및 상기 로컬 메모리 콘트롤러와 상기 CPU를 상호접속하기 위한 로컬 버스(local bus)를 포함하되, 캐쉬로서 이용가능한 ROM의 RAM에 대한 맵 동작 모드를 지원할 수 있는 컴퓨터 시스템에서 캐쉬의 보전성을 유지하는 방법에 있어서, (a) 상기 캐쉬로서 이용가능한 ROM의 RAM에 대한 맵 모드가 인에이블될 때마다, ROM에 대한 CPU의 기입 동작을 검출하기 위하여 로컬 메모리 콘트롤러 스누프 사이클을 실행하는 단계와 ; (b) 캐쉬로서 이용가능한 ROM이 RAM에 대해 맵되어 있는 경우, ROM에 대한 CPU의 기입 동작이 검출될 때만, 상기 CPU로 캐쉬 엔트리 무효화 신호를 제공하는 단계를 포함하는 캐쉬의 보전성 유지 방법.
  2. 제 1 항에 있어서, 상기 캐쉬엔트리 무효화 신호는 상기 로컬 버스를 통해 상기 CPU에 제공되는 캐쉬의 보전성 유지 방법.
  3. 제 1 항에 있어서, 상기 무효화 신호에 응답하여, 상기 CPU의 ROM에 대한 기입 동작의 목표 어드레스에 위치된 데이터 엔트리에 대응하는 상기 캐쉬 메모리내의 소정의 캐쉬 엔트리를 무효화시키기 위하여 상기 CPU를 이용하는 단계를 더 포함하는 캐쉬의 보전성 유지 방법.
  4. 제 1 항에 있어서, (a) 상기 CPU의 ROM에 대한 기입 동작의 목표 어드레스를 상기 로컬 버스상으로 송출하는 단계와 ; (b) 상기 무효화 신호가 상기 CPU에 제공될 때마다, 상기 로컬 버스상의 어드레스에 대응하는 소정의 캐쉬 엔트리를 무효화시키기 위하여 상기 CPU를 이용하는 단계를 더 포함하는 캐쉬의 보전성 유지 방법.
  5. 제 1 항에 있어서, 상기 로컬 메모리 콘트롤러 스누프 사이클을 실행하는 단계는, (a) 메모리 기입 사이클이 상기 CPU에 의해 개시되었는지의 여부를 판정하는 단계와 ; (b) ROM 공간 어드레스가 상기 로컬 버스상에 존재하는지의 유무를 판정하는 단계와 ; (c) 상기 컴퓨터 시스템에서 캐쉬로서 이용가능한 ROM의 RAM에 대한 맵 동작 모드가 인에이블되었는지의 여부를 판정하는 단계를 더 포함하는 캐쉬의 보전성 유지 방법.
  6. CPU, 상기 CPU와 연관된 캐쉬 메모리, RAM, ROM과 메모리 콘트롤러와 상기 CPU를 상호접속하기 위한 로컬 버스를 포함하되, 캐쉬로서 이용가능한 ROM의 RAM에 대한 맵동작 모드를 지원할 수 있는 컴퓨터 시스템에서, 캐쉬의 보전성을 유지하기 위해 메모리 콘트롤러를 동작시키는 방법에 있어서, (a) 상기 로컬 버스를 감시하여, 상기 CPU에 의해 메모리 기입 사이클이 개시되었는지의 여부를 판정하는단계와 ; (b) ROM 공간 어드레스가 상기 로컬 버스상에 존재하는지의 유무를 판정하는 단계와 ; (c) 상기 컴퓨터 시스템에서 캐쉬로서 이용가능한 ROM의 RAM에 대한 맵 동작 모드가 인에이블되었는지의 여부를 판정하는 단계와 ; (d) 상기 메모리 콘트롤러가, 상기 컴퓨터 시스템에서 상기 캐쉬로서 이용가능한 ROM의 RAM에 대한 맵 동작 모드가 인에이블된 동안, ROM 어드레스 공간에 존재하는 상기 로컬 버스상의 어드레스로 메모리 기입 사이클이 개시되었음을 판정할 때마다, 상기 CPU로 캐쉬 엔트리 무효화 신호를 제공하는 단게를 포함하는 캐쉬의 보전성을 유지하기 위한 메모리 콘트롤러의 동작 방법.
  7. CPU, 상기 CPU와 연관된 캐쉬 메모리, RAM, ROM와, 상기 CPU, 상기 캐쉬 메모리, 상기 RAM 및 상기 ROM 사이의 동작을 제어하는 로컬 메모리 콘트롤러, 및 상기 로컬 메모리 콘트롤러와 상기 CPU를 상호접속하는 로컬 버스를 포함하며, 캐쉬로서 이용가능한 ROM의 RAM에 대한 맵 동작 모드를 지원할 수 있는 컴퓨터 시스템에서 캐쉬의 보전성을 유지하는 장치에 있어서, (a) 상기 로컬 버스를 통해 상기 CPU에 결합되어, 상기 컴퓨터 시스템에서에서 캐쉬로서 이용가능한 ROM의 RAM에 대한 맵동작 모드가 인에이블되었을 때, ROM에 대한 CPU의 기입 동작을 검출하는 검출 수단과 ;(b) 상기 로컬 버스를 통해 상기 CPU에 결합되어, 상기 검출 수단에 의한 CPU의 ROM에 대한 기입 동작의 검출에 응답하여, ROM에 대해 맵되어 있는 ROM의 공간이 캐쉬로서 이용가능한 경우 CPU의 ROM에 대한 기입 동작이 행해질 때마다, 상기 CPU로 캐쉬 엔트리 무효화 신호를 제공하기 위한 신호 수단을 포함하는 캐쉬의 보전성 유지 장치.
  8. 제 7 항에 있어서, 상기 CPU는 상기 캐쉬 엔트리 무효화 신호에 응답하여, ROM에 대한 상기 CPU의 기입 동작의 목표 어드레스에 위치된 데이터 엔트리에 대응하는 상기 캐쉬 메모리내의 소정의 캐쉬 엔트리를 무효화시키도록 도악하는 캐쉬의 보전성 유지 장치.
  9. 제 7 항에 있어서, 상기 CPU는 상기 무효화 신흥 응답하여, ROM에 대한 CPU의 기입 동작의 목표 어드레스를 상기 로컬 버스상으로 송출하여, 상기 로컬 버스상의 어드레스에 대응하는 소정의 캐쉬 엔트리를 무효화 시키도록 동작하는 캐쉬의 보전성 유지 장치.
  10. 제 7 항에 있어서, 상기 검출 수단은, (a) 메모리 기입 사이클이 진행중인지의 여부를 판정하는 수단과, (b) ROM 공간 어드레스가 상기 로컬 버스상에 존재하는지의 유무를 판정하는 판정 수단과 ; (c) 상기 컴퓨터 시스템에서 상기 캐쉬로서 이용가능한 ROM의 RAM에 대한 맵동작 모드가 인에이블되었는지의 여부를 판정하는 판정 수단을 더 포함하는 캐쉬의 보전성 유지 장치.
  11. CPU, 상기 CPU와 연관된 캐쉬 메모리, RAM, ROM과, 메모리 콘트롤러와 상기 CPU를 상호접속하기 위한 로컬 버스를 포함하되, 캐쉬로서 이용가능한 ROM의 RAM에 대한 맵 동작 모드를 포함하는 복수의 동작 모드를 지원할 수 있는 컴퓨터 시스템에서, 캐쉬 데이터의 보전성을 유지하기 위한 메모리 콘트롤러에 있어서, (a) 상기 로컬 버스에 결합되어, 메모리 기입 사이클이 상기 CPU에 의해 개시되었는지의 여부를 판정하는 메모리 기입 사이클 검출 수단과 ; (b) 상기 로컬 버스에 결합되어, ROM 공간 어드레스가 상기 로컬 버스상에 존재하는지의 유무를 판정하는 ROM 어드레스 공간 검출 수단과 ; (c) 상기 컴퓨터 시스템에서 캐쉬로서 이용가능한 ROM의 RAM에 대한 맵 동작 모드가 인에이블되었는지의 여부를 판정하는 모드 판정 수단과 ; (d) 상기 메모리 콘트롤러가, 상기 컴퓨터 시스템에서 상기 캐쉬로서 이용가능한 ROM의 RAM에 대한 맵 동작 모드가 인에이블되어 있는 동안, ROM 어드레스 공간내에 존재하는 상기 로컬 버스상의 어드레스로 메모리 기입 사이클이 개시되었음을 판정할 때마다, 상기 CPU로 캐쉬 엔트리 무효화 신호를 제공하는 수단을 포함하는 메모리 콘트롤러.
  12. 제 11 항에 있어서, 상기 컴퓨터 시스템의 상기 복수의 동작 모드중 어느 것이 인에이블되었는지를 표시하기 위하여 적어도 하나의 모드 인에이블 비트를 저장 수단을 더 포함하는 메모리 콘트롤러.
  13. 캐쉬로서 이용가능한 ROM의 RAM에 대한 맵 동작 모드를 지원하고, 상기 모드가 인에이블된 경우에 ROM에 대한 CPU의 기입 동작이 수행될 때마다 캐쉬의 보전성을 유지하는 캐쉬 메모리를 구비한 컴퓨터 시스템에 있어서, (a) CPU와 ; (b) 상기 CPU와 연관된 캐쉬 메모리와 ; (c) RAM과 ; (d) ROM과 ; (e) 상기 CPU, 상기 캐쉬 메모리, 상기 RAM 및 상기 ROM 사이의 동작을 제어하는 로컬 베모리 콘트롤러와 ; (f) 상기 로컬 메모리 콘트롤러의 상기 CPU를 상호 접속하는 로컬 버스와 ; (g) 상기 로컬 버스를 통해 상기 CPU에 결합되어, 상기 컴퓨터 시스템에서 캐쉬로서 이용가능한 ROM의 RAM에 대한 맵 동작 모드가 인에이블되었을 때, CPU의 ROM에 대한 기입 동작을 검출하는 검출 수단과 ; (h) 상기 로컬 버스를 통해 CPU에 결합되어, 상기 검출 수단에 의한 ROM에 대한 CPU의 기입 동작의 검출에 응답하여, ROM에 대해 맵되어 있는 ROM 공간이 캐쉬로서 이용가능한 경우에 ROM에 대한 CPU의 기입 동작이 행해질 때마다, 상기 CPU로 캐쉬 엔트리 무효화 신호를 제공하는 신호 수단을 포함하는 컴퓨터 시스템.
  14. 제 13 항에 있어서, 상기 CPU는, 상기 캐쉬 엔트리 무효화 신호에 응답하여, CPU의 ROM에 대한 기입 동작의 목표 어드레스에 위치된 캐쉬 엔트리를 무효화시키도록 도악하는 컴퓨터 시스템.
  15. 제 13 항에 있어서, 상기 CPU는, 상기 무효화 신호에 응답하여, 상기 CPU의 ROM에 대한 기입 동작의 목표 어드레스를 상기 로컬 버스상으로 송출하여, 상기 로컬 버스상의 어드레스에 대응하는 소정의 캐쉬 엔트리를 무효화시키도록 동작하는 컴퓨터 시스템.
  16. 제 13 항에 있어서, 상기 검출 수단은, (a)메모리 기입 사이클의 진행중인지의 여부를 판정하는 수단과, (b) ROM 공간 어드레스가 상기 로컬 버스상에 존재하는지의 유무를 판정하는 판정 수단과 ; (c)상기 컴퓨터 시스템에서 캐쉬로서 이용가능한 ROM의 RAM에 대한 맵 동작 모드가 인에이블되었는지의 여부를 판정하는 판정 수단을 더 포함하는 컴퓨터 시스템.
  17. CPU, 상기 CPU와 연관된 캐쉬 메모리, RAM, ROM 및 상기 메모리 콘트롤러와 상기 CPU를 상호접속하는 로컬 버스를 포함하되, 캐쉬로서 이용가능한 ROM의 RAM에 대한 맵 동작 모드를 지원할 수 있는, 캐쉬 데이터의 보정성을 유지하는 메모리 콘트롤러를 구비한 컴퓨터 시스템에 있어서, (a) 메모리 기입 사이클이 상기 CPU에 의해 개시되었는지의 여부를 판정하는 메모리 기입 사이클 검출 수단과, (b) ROM 공간 어드레스가 상기 로컬 버스상에 존재하는지의 유무를 판정하는 ROM 공간 어드레스 검출 수단과 ; (c) 상기 컴퓨터 시스템에서 캐쉬로서 이용가능한 ROM의 RAM에 대한 맵 동작 모드가 인에이블되었는지의 여부를 판정하는 모드 판정 수단과, (d) 상기 컴퓨터 시스템에서 상기 캐쉬로서 이용가능한 ROM의 ROM에 대한 맵 동작 모드가 인에이블된 동안 상기 로컬 버스상의 ROM 공간 어드레스로 메모리 기입 사이클이 개시될 때만 상기 CPU로 캐쉬 엔트리 무효화 신호를 제공하는 수단을 포함하는 컴퓨터 시스템.
  18. 제 17 항에 있어서, 상기 메모리 기입 사이클 검출 수단, 상기 ROM 공간 어드레스 검출 수단, 상기 모드 판정 수단 및 상기 캐쉬 엔트리 무효화 신호를 제공하는 수단은, 모두 상기 메모리 콘트롤러내에 내장되는 컴퓨터 시스템.
KR1019910017954A 1990-10-26 1991-10-12 캐쉬의 보전성 유지 장치 및 방법. 메모리 콘트롤러 및 그의 동작 방법과 컴퓨터 시스템 KR950013261B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US604,837 1990-10-26
US07/604,837 US5193170A (en) 1990-10-26 1990-10-26 Methods and apparatus for maintaining cache integrity whenever a cpu write to rom operation is performed with rom mapped to ram

Publications (2)

Publication Number Publication Date
KR920008601A KR920008601A (ko) 1992-05-28
KR950013261B1 true KR950013261B1 (ko) 1995-10-26

Family

ID=24421248

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019910017954A KR950013261B1 (ko) 1990-10-26 1991-10-12 캐쉬의 보전성 유지 장치 및 방법. 메모리 콘트롤러 및 그의 동작 방법과 컴퓨터 시스템

Country Status (9)

Country Link
US (1) US5193170A (ko)
EP (1) EP0482752B1 (ko)
JP (1) JPH0797353B2 (ko)
KR (1) KR950013261B1 (ko)
CN (1) CN1024599C (ko)
AU (1) AU652178B2 (ko)
CA (1) CA2052766C (ko)
DE (1) DE69109803T2 (ko)
HK (1) HK24196A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100368085B1 (ko) * 1999-08-31 2003-01-15 인터내셔널 비지네스 머신즈 코포레이션 신호 처리 소자를 갖는 메모리 카드

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0510242A2 (en) * 1991-04-22 1992-10-28 Acer Incorporated System and method for managing the routing execution in a computer system
US5319768A (en) * 1991-05-01 1994-06-07 Sgs-Thomson Microelectronics, Inc. Control circuit for resetting a snoop valid bit in a dual port cache tag memory
US5341487A (en) * 1991-12-20 1994-08-23 International Business Machines Corp. Personal computer having memory system with write-through cache and pipelined snoop cycles
US5966728A (en) * 1992-01-02 1999-10-12 International Business Machines Corp. Computer system and method for snooping date writes to cacheable memory locations in an expansion memory device
US5724549A (en) * 1992-04-06 1998-03-03 Cyrix Corporation Cache coherency without bus master arbitration signals
US5313593A (en) * 1992-09-17 1994-05-17 International Business Machines Corp. Personal computer system with bus noise rejection
US5603011A (en) * 1992-12-11 1997-02-11 International Business Machines Corporation Selective shadowing and paging in computer memory systems
US5526512A (en) * 1993-09-20 1996-06-11 International Business Machines Corporation Dynamic management of snoop granularity for a coherent asynchronous DMA cache
CN1052550C (zh) * 1993-09-20 2000-05-17 国际商业机器公司 对高速缓冲存储器探测粒度的动态管理
DE69429777T2 (de) * 1993-09-30 2002-10-17 Apple Computer, Inc. System zur dezentralen massenspeichersteuerung eines rechners mit virtuellem speicher
US5526503A (en) * 1993-10-06 1996-06-11 Ast Research, Inc. Virtual addressing buffer circuit
US6421776B1 (en) * 1994-10-14 2002-07-16 International Business Machines Corporation Data processor having BIOS packing compression/decompression architecture
US5617557A (en) * 1994-11-14 1997-04-01 Compaq Computer Corporation Using an address pin as a snoop invalidate signal during snoop cycles
EP0735481B1 (en) * 1995-03-31 2003-05-14 Sun Microsystems, Inc. System level mechanism for invalidating data stored in the external cache of a processor in a computer system
US5652859A (en) * 1995-08-17 1997-07-29 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues
US5940850A (en) * 1996-10-31 1999-08-17 International Business Machines Corporation System and method for selectively enabling load-on-write of dynamic ROM data to RAM
US5900017A (en) * 1997-05-14 1999-05-04 International Business Machines Corporation Snooping a variable number of cache addresses in a multiple processor system by a single snoop request
US6003103A (en) * 1997-09-30 1999-12-14 Micron Electronics, Inc. Method for attachment or integration of a bios device into a computer system using a local bus
US6009522A (en) * 1997-09-30 1999-12-28 Micron Electronics, Inc. Attachment or integration of a BIOS device into a computer system using the system memory data bus
US6076118A (en) * 1997-09-30 2000-06-13 Micron Electronics, Inc. Attachment or integration of a BIOS device into a computer system using the system memory address and data bus
US6182213B1 (en) 1997-09-30 2001-01-30 Micron Electronics, Inc. Method for attachment of a bios device into a computer system using the system memory data bus
JP4097883B2 (ja) * 2000-07-04 2008-06-11 松下電器産業株式会社 データ転送装置および方法
EP1320035A1 (en) * 2001-12-11 2003-06-18 Thomson Licensing S.A. Storage device cache management
US20130124800A1 (en) * 2010-07-27 2013-05-16 Freescale Semiconductor, Inc. Apparatus and method for reducing processor latency

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4392200A (en) * 1980-01-28 1983-07-05 Digital Equipment Corporation Cached multiprocessor system with pipeline timing
JPS59121677A (ja) * 1982-12-28 1984-07-13 Mitsubishi Electric Corp 記憶装置
JPS6115252A (ja) * 1984-06-29 1986-01-23 Mitsubishi Electric Corp 主記憶デイスク装置
US4785398A (en) * 1985-12-19 1988-11-15 Honeywell Bull Inc. Virtual cache system using page level number generating CAM to access other memories for processing requests relating to a page
US5091846A (en) * 1986-10-03 1992-02-25 Intergraph Corporation Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency
JPS63308653A (ja) * 1987-06-10 1988-12-16 Fujitsu Ltd ブロック・イン方式
US5091850A (en) * 1987-09-28 1992-02-25 Compaq Computer Corporation System for fast selection of non-cacheable address ranges using programmed array logic
CA1315011C (en) * 1987-09-28 1993-03-23 Paul R. Culley System for fast selection of non-cacheable address ranges using programmed array logic
JPH083803B2 (ja) * 1987-12-25 1996-01-17 株式会社日立製作所 Nmi処理方法
JPH01303546A (ja) * 1988-05-31 1989-12-07 Nec Corp メモリ制御方式
JP2613258B2 (ja) * 1988-06-08 1997-05-21 株式会社日立製作所 情報処理方法及び装置
US5119485A (en) * 1989-05-15 1992-06-02 Motorola, Inc. Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100368085B1 (ko) * 1999-08-31 2003-01-15 인터내셔널 비지네스 머신즈 코포레이션 신호 처리 소자를 갖는 메모리 카드

Also Published As

Publication number Publication date
CN1024599C (zh) 1994-05-18
JPH0581128A (ja) 1993-04-02
DE69109803T2 (de) 1995-11-30
DE69109803D1 (de) 1995-06-22
JPH0797353B2 (ja) 1995-10-18
EP0482752A3 (en) 1992-07-08
CN1060916A (zh) 1992-05-06
HK24196A (en) 1996-02-16
CA2052766C (en) 1996-01-02
EP0482752B1 (en) 1995-05-17
KR920008601A (ko) 1992-05-28
AU8482491A (en) 1992-04-30
EP0482752A2 (en) 1992-04-29
US5193170A (en) 1993-03-09
AU652178B2 (en) 1994-08-18
CA2052766A1 (en) 1992-04-27

Similar Documents

Publication Publication Date Title
KR950013261B1 (ko) 캐쉬의 보전성 유지 장치 및 방법. 메모리 콘트롤러 및 그의 동작 방법과 컴퓨터 시스템
KR960009659B1 (ko) 멀티프로세서 시스템의 스누프회로
US5778433A (en) Computer system including a first level write-back cache and a second level cache
JP3289661B2 (ja) キャッシュメモリシステム
US5987536A (en) Computer system having flash memory bios which can be accessed while protected mode operating system is running
EP0777183B1 (en) Computer cache system
PL182192B1 (pl) Karta rozszerzen w systemie komputerowym PL PL PL
US5347643A (en) Bus system for coordinating internal and external direct memory access controllers
CA2127081A1 (en) Processor interface chip for dual-microprocessor processor system
US5408636A (en) System for flushing first and second caches upon detection of a write operation to write protected areas
US5832285A (en) Battery powered computer capable of switching to a suspend mode based on the connection status of an external device
JP3431850B2 (ja) 同期化するための処理を行う方法およびデータ処理システム
US5649212A (en) Information processing system having a floppy disk drive with disk protection during a resume mode
JP3195303B2 (ja) 命令キャッシュとデータ・キャッシュ間のコヒーレンシを維持する方法および装置
JP2642064B2 (ja) 非同期dmaキャッシュ
US5999721A (en) Method and system for the determination of performance characteristics of a cache design by simulating cache operations utilizing a cache output trace
JPH0744418A (ja) ワンチップマイクロコンピュータ
US5960456A (en) Method and apparatus for providing a readable and writable cache tag memory
JPH07210464A (ja) キャッシュ記憶装置および方法
JP2540959B2 (ja) 情報処理装置
JP3525771B2 (ja) バス・スヌープ制御回路
JP3061818B2 (ja) マイクロ・プロセッサ用アクセス・モニタ装置
JPH0644261B2 (ja) マルチプロセッサシステムにおけるキャッシュ制御方式
CA1313422C (en) Cache memory control system
EP0661638A1 (en) Method and apparatus for transferring data in a computer

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20050929

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee