KR970007271B1 - 캐시 일관성 유지 방법 및 캐시 일관성 유지 데이타 처리 시스템 - Google Patents

캐시 일관성 유지 방법 및 캐시 일관성 유지 데이타 처리 시스템 Download PDF

Info

Publication number
KR970007271B1
KR970007271B1 KR1019940023766A KR19940023766A KR970007271B1 KR 970007271 B1 KR970007271 B1 KR 970007271B1 KR 1019940023766 A KR1019940023766 A KR 1019940023766A KR 19940023766 A KR19940023766 A KR 19940023766A KR 970007271 B1 KR970007271 B1 KR 970007271B1
Authority
KR
South Korea
Prior art keywords
data
address
sector
cache
snoop
Prior art date
Application number
KR1019940023766A
Other languages
English (en)
Other versions
KR950009444A (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 KR950009444A publication Critical patent/KR950009444A/ko
Application granted granted Critical
Publication of KR970007271B1 publication Critical patent/KR970007271B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)

Abstract

내용없음

Description

캐시 일관성 유지 방법 및 캐시 일관성 유지 데이타 처리 시스템
제1도는 본 발명을 이용할 수 있는 데이타 처리 시스템의 블럭도.
제2도는 입/출력 버스상의 버스마스터 장치로부터 입/출력 제어칩으로 데이타를 기록하는 동작의 비동기 특성을 예시하는 클럭 신호를 도시한 도면.
제3도는 스누핑 프로토콜을 사용하는 시스템에서 캐시 일관성을 제공하기 위해 본 발명이 사용하는 논리요소의 개략도.
제4도는 각각 입/출력 버스마스터 DMA 장치에 의해 기록될 수 있는 다수의 섹터를 갖는 메모리 페이지를 도시한 도면.
제5도는 메모리 장소(memory location)의 페이지, 섹터 및 바이트 오프셋을 식별하기 위해 필요한 메모리 어드레스를 도시한 도면.
제6도는 예시된 바와 같이 변할 수 있으며, 본 발명이 해결하고자 하는 문제점을 설명해 주는 섹터 어드레스의 실제적인 비트들의 일예를 도시한 도면.
제7도는 다수의 32바이트 메모리 섹터의 개별 4바이트 워드 오프셋 부분을 도시한 도면.
* 도면의 주요부분에 대한 부호의 설명
1 : 중앙 처리 장치(CPU) 5 : 시스템 버스
7 : 입/출력 채널 제어기(IOCC) 9 : L1 캐시
11 : 메모리 서브시스템 15 : 래치
22 : 게이트 논리회로 29 : 섹터 비교기
19,30 : 페이지 전용 비교기
본 발명은 스누핑(snooping)에 의해 시스템 버스(system bus)를 감시하는 중앙 처리 장치(central processing unit : CPU) 및 기타 장치(other device)를 포함하는 컴퓨터 시스템에서 캐시 일관성(cache coherency)을 제공하는 것에 관한 것으로, 특히, 제1장치에 의해 소유되고 다른 장치에 의해 요구되는 데이타의 메모리 어드레스(memory addressr of data)를 비교 및 식별하기 위해 사용되는 기준(criteria)을 변경하므로써 비동기 버스들(asynchronous buses)사이에서 캐시 일관성을 유지하는 것에 관한 것이다.
비동기 버스 및 스누핑 프로토콜(snooping protocol)를 사용하는 종래의 다중-캐시 시스템(multi-cache systems)은 캐시(cache)에 기록되고 있는 캐시의 어드레스가 무효(invalid)인 시간 간격 또는 주기(time period)가 존재한다는 점에서 문제점이 발생한다. 스누프 비교(snoop comparison)가 이러한 시간 주기동안 발생한다면(갱신 및 스누프 비교간의 비동기에 기인하여) 잘못된 응답이 발생하여 시스템의 성능 저하(performance degradation) 또는 부정확한 데이타(incorrect data)의 원인이 될 수 있다. 이러한 잘못된 응답은 거짓 스누프 적중(false snoop hit), 또는 식별되지 않은 실제 스누프 적중(actual snoop hit)을 포함할 수 있다. 특히, 입/출력 채널 제어기(input/output channel controller : IOCC)에 포함된 캐시 메모리(cache memory)로 기록(writing)하거나, 또는 캐시 메모리로부터 판독(reading)하는 입/출력 장치의 비동기 특성으로 인하여, 입/출력 장치가 하나의 메모리 섹터(memory sector)와의 상호 작용을 끝마치고 다른 메모리 섹터(another memory sector)와 상호 작용을 시작할 때 시간 간격 또는 주기가 존재하게 된다. 따라서, 스누프 비교를 위해 사용되는 섹터 어드레스는 전이 상태(state of transition)에 있게 되며 존재하게 되어 시스템 버스(system bus)의 스누프가 어드레스 전이 시간 주기동안 발생한다면, 잘못된 스누프 적중(erroneous snoop hit) 또는 스누프 적중의 검출 실패가 발생할 수 있다.
캐시 일관성을 유지하기 위한 종래의 해결 방안이, 캐시 버스 스누핑(enable data bus snooping)을 선택적으로 이네이블(enable)시키기 위해 다른 버스마스터(alternate busmaster)로부터 버스 인터페이스 제어회로(bus interface control circuit)로 인코드된 제어 신호를 커플링(coupling)하는 것을 포함하는 미합중국 특허 제5,119,485호에 기술되어 있다. 또한, 미합중국 특허 제5,072,369호에는 일관성을 보장하기 위해 상이한 버스를 가로질러 어드레스를 맵핑(mapping)하는 것이 개시되어 있다. 즉, 인터페이스 회로(interface circuit)가 선택된 버스 어드레스를 다른 버스상의 대응하는 어드레스로 맵핑하여, 제1버스상의 버스마스터(busmaster)가 판독 또는 기록을 시도할 때, 버스 인터페이스 회로가 제2버스의 메모리에서 대응하는 어드레스를 액세스하므로써 응답하도록 하는 것이다.
상이한 시간 주기에서 각각의 캐시 메모리가 갱신되도록 허용하는 분산 디렉토리(distributed directories)를 갖는 캐시 일관성 방법이 미합중국 특허 제5,025,365호에 기술되어 있다. 이 방법에 의하면 캐시 메모리의 갱신 사이에 디렉토리 불일치(directory inconsistencies)가 발생할 수 있다. 시스템 버스 프로토콜(system bus protocol)은 분산 디렉토리를 갱신하므로써 캐시 일관성(data coherency) 유지하는 주기적 교정 동작(periodic correct operation)을 제공한다. 미합중국 특허 제5,193,170호에는 CPU, RAM 및 ROM이 개시되어 있다. ROM-RAM 맵핑 모드(ROM mapped to RAM mode)동안 스누프 사이클(snoop cycle)이 구현되어 CPU 기록 동작을 검출하며, CPU 기록 동작이 검출되면, 캐시 무효화 신호(cache invalidation signal)가 CPU로 전송된다. 미합중국 특허 제4,945,486호에는 각각 동기화 요구 신호(synchronization request signal)를 발생하며 공유 캐시 버스(shared data bus)를 통해 연결된 일련의 프로세서가 개시되어 있다. 동기화 제어기(synchronization controller)가 동기화 버스상에 프로세서 상태를 방송(broadcast)하므로, 버스를 스누핑하여 통신을 감시할 수 있다.
종래의 시스템은 캐시 일관성을 유지하기 위해 맵핑(mapping), 분산 디렉토리(distributed directories), 동기화 프로세서(synchronization processor), 이네이블링 비트(enabling bits)등과 같은 다양한 기법을 사용하는 것을 알 수 있다. 이들 종래의 시스템은 동기화 시스템의 캐시 일관성 문제를 해결하지만, 시스템의 적어도 두개의 버스가 비동기일 때 직면하는 추가적인 문제를 해결하지는 못한다. 따라서, 추가적인 복잡한 논리를 사용하지 않고서 시스템의 기본 파리미터(parameter)를 재정의(redefines)하여 비동기 버스들간의 캐시 일관성을 제공하는 시스템이 극히 유리할 것이라는 것을 알 수 있다.
종래 기술과는 달리, 본 발명은 스누프 적중을 식별하기 위해 동적으로 재정의된 상세 레벨(level of detail)[세분성(granularity)]을 사용하므로써 비동기 버스들간의 캐시 일관성을 유지한다.
본 발명은, 소정 시기에, 스누프 비교를 위해, 즉, 스누프 적중이 일어났는지를 결정하기 위해 섹터 어드레스(sector address)가 아닌 페이지 어드레스(page address)를 사용한다.
본 명세서에 사용된 바와 같은 메모리 페이지(a page of memory)는 메모리 섹터의 세트이며, 페이지는 4K 바이트이고, 섹터는 32바이트이며, 따라서 페이지당 128섹터가 존재할 수 있다. 메모리 어드레스는 페이지 어드레스 및 섹터 어드레스이다. 본 발명에 따르면, 를 포함한다. 통상적으로, 시스템은 섹터 레벨(sector level)에서 캐시 일관성을 유지한다. 즉, 페이지 및 섹터 어드레스가 동일하면, 스누프 적중이 일어난 것으로 간주된다. 그러나, 본 발명은, CPU 클럭에 대해 비동기적으로 발생하는 직접 메모리 액세스(direct memory access : DMA) 동작의 상태(활성 또는 비활성)에 따라, 스누프 비교 단위 또는 세분성(snoop comparison granularity)을 섹터와 페이지 사이에서 변경시킨다. 페이지 어드레스 세분성을 사용하므로써, 잠재적으로 무효일 가능성이 있는 섹터 어드레스(potentially invalid sector addresses)가 스누프 비교동안 사용되지 않기 때문에, 본 발명은 잘못된 스누프 적중이 일어나지 않을 것이라는 것을 보장할 수 있다.
버스마스터가 페이지 어드레스 변경을 요구할때, DMA 동작은 버스마스터를 보류(hold off)시키므로써 비활성적으로 되고, IOCC 스누프 비교 어드레스는 CPU 클럭에 동기적으로 갱신된다. 따라서, 버스마스터장치가, IOCC가 현재 사용중인 페이지 어드레스가 아닌 다른 페이지 어드레스에서, 데이타를 요구하면, 본발명의 데이타 처리 시스템(data processing system)은 자동적으로 버스마스터를 비활성 상태로 배치(place) 한다.
DMA 동작이 활성일 때, 버스마스터 장치는 IOCC와 같은 장치에 포함된 레벨 1(L1) 캐시와 비동기적으로 상호작용한다. 이때 IOCC는 스누프 비교를 위해 사용되는 어드레스를 비동기적으로 갱신하게 되는데 그 이유는 버스마스터에 의해 제어되는 커맨드 클럭(command clock)이 CPU 클럭에 독립적으로 작동하기 때문이다. 본 발명에 따르면, IOCC는, 단지 이와 같은 DMA 활성 주기동안에만, 페이지 어드레스 베이스(page address basis)로 시스템 버스를 스누핑한다.
페이지 세분성(ppage granularity)을 사용하는 경우, 다른 장치가 DMA 버스마스터가 현재 액세스하고 있는 섹터와 동일한 페이지상의 메모리 섹터로부터 데이타를 요구하면, 스누프 적중이 발생할 수 있다. 이경우, IOCC는 DMA 동작이 종료될 때까지 ARTRY 신호를 발생하여 다른 장치를 지연시킨다. 일단 DMA 동작이 종료되거나 일시적으로 비활성화되면, 요구된 메모리 액세스가 진행(proceed)된다. 버스마스터가 메모리로 기록하는 경우, 요구 장치(requesting device)는 갱신된 사본(updated copy)을 액세스한다. 또한, DMA 동작이 비활성인 경우, IOCC가 소유한 데이타의 어드레스는 정적(static)이 되므로, 섹터 어드레스를 무효로 할 수 있는 전이 단계(transitional phase)가 존재하지 않고, 따라서 스누프 비교 세분성(snoopcomparison granularity)은 섹터 어드레스 레벨(sector address level)로 복귀한다.
특히, 입/출력 버스마스터(input/output busmaster) 가 IOCC 캐시로부터 데이타를 판독한다고 가정하면, 버스마스터는 모든 데이타가 판독될 때까기 또는 소정 유형의 정지 상태(cessation condition)가 발생할 때까지 다수의 메모리 어드레스를 요구한다. 이와 같은 DMA 동작 주기동안, 버스마스터는 스누프 비교 어드레스의 섹터 부분이, 다른 장치가 버스마스터에 의해 액세스되고 있는 데이타와 동일한 페이지상에 존재하는 섹터 어드레스에서 데이타를 요구할 때 발생하는 스누프 비교 동작동안 갱신되도록 할 수도 있다. 이와같은 경우에는, ARTRY 신호가 발생하여 버스마스터 동작이 종료될 때까지 상기 요구중인 장치를 지연시키며, 이에 의해 일관성을 유지한다.
따라서, 메모리 어드레스 비교가 섹터 어드레스가 아닌 페이지 어드레스간에 이루어지기 때문에, 본 발명의 데이타 처리 시스템은 발생 가능한 모든 스누프 적중을 검출할 수 있다. 이러한 방식으로 메모리 섹터들 간의 전이(transition)동안 메모리 어드레스의 섹터 부분의 잠재적인 무효성(potential invalidity)이 방지되고 캐시 일관성이 보장된다.
전술한 바와 같이, DMA 버스마스터에 의해 요구된 메모리 어드레스가 페이지 경계(page boundary)를 넘어서면, 처리는 인터럽트되고, 스누프 비교는 리세트(reset)되어 CPU 클럭과 동기화되며, 이에 의해 일관성을 유지한다.
본 발명의 전술한 목적, 특징 및 장점은 첨부도면을 참조한 본 발명의 상세한 설명 및 특허청구범위로부터 이하 명확하게 이해될 것이다.
제1도를 참조하면, 본 발명을 이용할 수 있는 데이타 처리 시스템(data processing system)의 블럭도가 도시되어 있으며, 참조번호(1)는 내부에 레벨 1(L1) 캐시(3)를 갖는 중앙처리장치(central processing unit : CPU)를 도시한다. CPU는 파워피씨 601 마이크로프로세서(PowerPC 601 Microprocessor) (PowerPC는 IBM사의 등록 상표임)와 같은 몇몇 상업적으로 이용 가능한 프로세서들중의 하나일 수 있다. 시스템 버스(5)는 CPU(1)와 입/출력 채널 제어기(7) 및 메모리 서브시스템(memory subsystem)(11)을 연결하여 메모리 서브 시스템(11)은 메모리 제어칩 및 랜덤 액세스 메모리의 실제 물리적인 장소(actual physical locations of random access memory)를 포함한다. IOCC(7)는 각각 32바이트의 스누프를 저장할 수 있는 다수의 메모리 섹터(10)를 갖는 L1 캐시(9)를 포함한다. 또한, 입/출력 버스(13)가 IOCC(7)에 연결된 도시되며, 키보드(keyboard), 마우스(mouse), 디스플레이(display), 스카시(small computer system interface : SCSI), 통신 장치(communication devices), 버스 메모리(bus memory) 및 아마도 하나 이상의 추가적인 입/출력 버스마스터 장치(M,N)를 포함하는 다수의 입/출력 주변 장치(I/O peripheral devices)가 모두 IOCC(7)를 경유하여 CPU(1) 및 메모리(11)에 연결될 수 있도록 한다. 시스템 버스(5) 및 입/출력 버스(13)는 데이타 전송의 타이밍에 대해 비동기적 관계를 갖는다는 것을 주목해야 한다. 즉, 시스템 버스(5)는 제1속도를 갖는 클럭을 포함하는 CPU(1)에 의해 구동되는 반면에, 입/출력 버스(13)는 자신의 독립적인 클럭을 갖고 자신과 IOCC 캐시(9)간의 데이타 전송을 제어하는 특별한 입/출력 버스마스터 장치에 의해 구동된다. 따라서, 두 버스상의 어드레스 샘플링 주기(address sampling periods)는 비동기적일 것이다. 또한, 제1도에 도시된 데이타 처리 시스템은, 주어진 메모리 섹터의 유효한 또는 아마도(변경된) 사본(copy)을 소유하는 장치가 시스템 버스(5)를 스누핑하여 시스템 버스(5)에 연결된 다른 어떤 장치가 그 데이타에 대한 약세스를 요구하고 있는지를 결정하는 스누핑 프로토콜(snooping protocol)을 포함한다. 스누핑 비교(snooping comparison)에 의해 다른 장치가 데이타를 요구하고 있다고 판정되면, 스누프 적중이 발생하며, 그 데이타를 소유한 장치는 일관성을 유지하기 위해 필요한 모든 조치를 취할 것이다. 이러한 조치는 그 데이타를 소유한 장치의 캐시에서 그 데이타를 무효로하는 것과, 수정된 데이타를 메모리로 되기록(write back)하는 것과, 수정되지 않은 데이타를 다른 장치와 공유하는 것 등을 포함할 것이다. 따라서, IOCC(7)는 또한 시스템 버스(5)를 감시하여 L1 캐시(9)내에 포함된 데이타의 어드레스가 발생하였는지를 살펴봄으로써 스누프 적중이 일어났는지를 결정하는 스누핑 기능(snooping function)을 포함한다. 본 발명의 바람직한 실시예에 있어서, 메모리 서브 시스템(memory subsystem)(11)은 페이지, 섹터 및 바이트 오프셋 계층시스템(byte offset hierarchical system)으로 조직화된다. 즉, 각각의 메모리 어드레스는 페이지 어드레스(page address), 섹터 어드레스(sector address) 및 바이트 오프셋(byte offset)을 나타내는 부분을 포함한다. 예로서 파워피씨 메모리 어드레스 맵핑 방안(PowerPC memory address mapping scheme)을 사용하면, 각각의 메모리 어드레스는 32비트 길이로서, 특정 페이지(specific page)를 식별하기 위해 20비트가 사용되고, 섹터를 식별하기 위해 7비트가 사용되며, 섹터내의 바이트 오프셋을 식별하기 위해 5비트가 사용된다. 각각의 페이지는 4K 바이트의 메모리를 포함하고 각각의 섹터는 32바이트를 저장하며, 따라서 각각 32바이트의 128섹터가 각각의 4K 바이트 페이지에 존재한다. 바이트 오프셋 양착(byte offset a mount)은 변할 수 있지만, 1,4 또는 8바이트의 양이 바람직하다. 제5도는 메모리 어드레스 및 각각의 부분, 즉, 페이지, 섹터 및 바이트 오프셋을 위해 할당된 비트의 수를 도시한다. 통상의 스누핑 상태(snooping conditions)하에서, 제5도에 도시된, 전체 메모리 어드레스는 이와 같은 어드레스를 갖는 데이타를 액세스하고자 하는 장치에 의해 시스템 버스상에 배치된다. 그후, 현재 원하는 데이타를 소유하고 있는 장치는 시스템 버스를 스누핑하고, 버스상의 어드레스를 송유한 데이타의 어드레스와 비교하며, 페이지 및 섹터가 동일하면 스누프적중이 발생한다. 이러한 비교는 페이지 및 섹터 페이지로 행하여지므로 일관성 유지 동작(coherency maintenance actions)은 스누프 적중이 발생한 개별의 섹터에 대해 취해진다.
제4도에는 어드레스를 분할하여 데이타를 저장하는, 본 발명의 메모리 서브 시스템에 의해 이용되는 두개의 대표적인 4K 바이트 페이지가 도시되었다. 이를 페이지(21 및 23)는 0에서 N까지 참조 번호가 부여된 다수의 32바이트 메모리 섹터(10)를 포함하는 것으로 도시되고, 바람직한 실시예에서 N은 128이다. 각각의 32바이트 섹터는 다수의 바이트 오프셋 부분(12)(바람직한 실시예에서 8개의 4바이트 섹션과 동일함)을 갖는 것으로 도시되었다. 각각의 개별 바이트 오프셋 부분들(12)은 제5도에 도시된 32비트 메모리 어드레스와 같은 상이한 어드레스(distinct address)를 가질 수 있다. 전술한 바와 같이, 통상의 스누핑 동작(normalsnooping operation)은 스누프 적중이 발생하였는지를 판정하기 위해 32비트 어드레스의 페이지와 섹터 부분을 비교할 것이다.
제7도는 각각 8개의 4바이트 오프셋 부분(12A,1B2 및 12L)을 갖는 대표적인 32바이트 섹터(10A,10B 및 10L)를 더욱 상세히 도시한 도면이다. 이들 바이트 오프셋 부분(12)은 0에서 7까지의 숫자로 표시되었다.
본 발명의 데이타 처리 시스템은 IOCC(7)를 통해 입/출력 장치(20,22,24 및 26)와 메모리(11)간에 직접 메모리 액세스(DMA)를 제공한다. 이것은 CPU(1)의 간섭(intervention)없이 데이타가 이들 입/출력 장치 및 메모리(11)사이에 전송될 수 있다는 것을 의미한다. 따라서, 입/출력 장치가 메모리 서브 시스템(11)으로부터 데이타를 판독하도록 프로그램된 경우, 입/출력 장치(24)는 먼저 버스(13)를 중재(arbitrate)하여 소유권(ownership)을 회득한 후, 데이타가 판독될 메모리(11)내의 장소에 대응하는 어드레스를 IOCC(7)에 제공한다. IOCC는 원하는 섹터의 사본을 자신의 캐시(9)로 로드(load)한 후 입/출력 장치가 버스(13)를 사용하여 사본을 액세스하도록 허용한다.
특정 예에 있어서, 스카시 장치[제1도의 참조번호(22)]등과 같은 DMA 입/출력 버스마스터 장치가 메모리(11)로부터의 판독과 같은 데이타 전송 동작(data transfer operation)을 개시할 것이다. 이 버스마스터장치는 입/출력 버스(13)를 중재하여 소유권을 획득한다. 그후, 버스마스터 장치는 판독될 데이타에 대한 어드레스를 IOCC(7)에 제공하고, 내부 커맨드 클럭(internal command clock)을 사용하여 IOCC(7)가 언제 그 어드레스를 사용하여 메모리(11)로부터 데이타를 얻어야 하는지를 신호한다. 버스마스터 장치가 제공된 어드레스에 대응하는 메모리 섹터로부터 데이타 판독을 완료하였을 때, 판독될 데이타가 더 존재한다면, 다른 어드레스가 IOCC(7)에 제공되고 커맨드 클럭(command clock)은 데이타가 회득될 시기를 정의한다. 전술한 바와 같이, 이러한 커맨드 클럭은 IOCC가 스누프 비교를 수행할 시기를 나타내는 CPU 클럭과는 비동기적으로 동작한다. 그후, 버스마스터 장치는 주기적으로 새로운 메모리 어드레스를 제공하고, 메모리 어드레스가 데이타의 다음 부분이 판독되기에 앞서 변하여야 할 때마다 커맨드 클럭으로부터의 신호를 활성화시킨다. 이러한 커맨드 클럭 타이밍(command clock timing)은 DMA 버스마스터 장치에 의해 선택되고, CPU(1)에 의해 발생되거나 다른 목적을 위해 IOCC에 의해 사용되는 임의의 클럭 신호와 비동기적이다.
제7도를 참조하면, 버스마스터 장치가 메모리 섹터(10A)의 바이트 오프셋 부분(2)에 데이타 판독을 요구하는 방식이 예시되어 있다. 버스마스터 장치는 이러한 어드레스를 IOCC(7)에 제공하고, 커맨트 클럭을 펄스화하여 데이타의 소유권이 획득되도록 한다. 그후, 커맨드 클럭을 펄스화하여 데이타의 소유권이 획득되도록 한다. 그후, 판독 동작이 일어나고, 그후 버스마스터 장치는 다른 섹터 어드레스(sector address), 예를들어, 메모리 섹터(10L)의 바이트 오프셋(5)을 제공할 수 있다. 섹터 어드레스 전이(sector address transition)가 32바이트 섹터(10A 및 10L)사이에서 발생하며, 따라서 제5도에 도시된 바와 같은 섹터 어드레스는 32바이트 섹터(10A)의 바이트 오프셋(2)으로부터 판독되는 데이타에 후속하여 발생하는 DMA 버스마스터 장치로부터의 커맨드 클럭 신호에 의해 변경됨을 알 수 있다. 또한, 본 발명은, 버스마스터 장치가 IOCC(7)에 초기 섹터 어드레스(initial sector address)를 제공하면, IOCC(7)는 그 버스마스터 장치에 의해 제공된 스트로브 신호(srobe signal)의 각 펄스마다 그 어드레스를 증가시키는 스트리밍(streaming) 데이타 전송에 적용할 수 있음을 이해하여야 한다. 버스마스터가 섹터(10A)의 바이트 오프셋(7)을 요구했고 IOCC(7)가 섹터(10B)의 바이트 오프셋(0)으로 어드레스를 증가시키므로써 섹터 어드레스 전이를 발생시킬때의 스트리밍 데이타의 예가 제7도에 도시되었다.
제2도는 IOCC(7)의 캐시(9)를 액세스하는 DMA 버스마스터 장치에 의해 사용될 수 있는 커맨드 클럭신호의 예이다. 각각의 사이클에 대해, 버스마스터 장치는 새로운 섹터 메모리 어드레스(a new sector memory address)를 IOCC(7)에 제공하고, 각각의 하강 엣지(trailing edge)(1-6)에서, 버스마스터는 새로운 어드레스 장소로부터 판독을 시작한다. IOCC(7)가 메모리 어드레스를, 예를들어, 32바이트 섹터(10A)의 바이트 오프셋 부분(2)으로부터 메모리 어드레스를 메모리 섹터(10L)의 바이트 오프셋 부분(5)으로 변경시킬 때(제7도), 전이 단계(transitional phase)가 발생하고 7비트 섹터 어드레스(제5도)가 변할 것이다.
제6도에는 발생 가능한 어드레스 전이(address transition)의 예시적인 형태가 도시되었다. 예를들어, 32바이트 섹터(10A)에 대한 섹터 어드레스를 0111111로 가정한다. 버스마스터 장치가 섹터(10L)와 같은 새로운 섹터로부터 데이타의 판독을 요구할 때, 예를들어, 클럭 신호의 하강 엣지(1-6)가 IOCC(7)에 의해 수신될 때 섹터(10A)에 대한 어드레스는 11(2진수 1011)만큼 섹터(10L)에 대한 어드레스까지 증가될 수 있다. 따라서, 32바이트 섹터(10L)에 대한 7비트 섹터 어드레스는 2진수 덧셈에 의해 얻어지는 1001010일 것이다. 그러나, 섹터 어드레스의 상태가 섹터(10A)로부터 아직 섹터(10L)에 대한 정확한 값에 도달하지 않은 시간주기가 존재한다. 즉, IOCC(7)가 32바이트 섹터(10L)에 대한 정확한 섹터 어드레스(accurate sector address)를 포함하도록 모든 비트가 아직 정정되지 않았을 수 있다. 제6도에는 섹터(10A)에 대한 교정 어드레스(0111111)가 아직 정확한 섹터(10L)의 어드레스(1001010)로 완전히 변하지 않은 몇몇의 잠재적인 전이 단계(potential transition stages)가 도시되었다. 이러한 전이 단계는 주기(A 및 B)로서 제2도의 스트로브 신호와 나란히 도시되었으며 이들 주기(A 및 B)는, 제7도와 관련하여 기술한 바와 같이, 포인트(1및 4)에서의 하강 엣지가 잠재적으로 메모리 섹터의 변경을 야기할 수 있음을 나타낸다.
이러한 전이 주기(transition period)는 IOCC(7) 논리회로의 고유한 잠재 타이밍 지연(latent timing delays)에 기인한다는 것을 주목해야 한다. 예를들어, 버스마스터 커맨드 클럭이 메모리 섹터 변경을 요구할때, 새로운 어드레스가 요구될 때와 IOCC 논리회로가 새로운 어드레스를 계산하여 래치(latch)에서 이전 섹터 어드레스를 대체하는 시간 사이에 전이 주기가 존재한다.
따라서, 스누프 동작이 제6도에 도시된 전위 단계동안 CPU(1)클럭과 동기적으로 발생한다면(즉, CPU클럭이 스누프 비교를 위한 어드레스 샘플링 주기를 제2도의 주기(A) 또는 (B)에 정합하도록 정의하는 경우), 잘못된 스누프 적중이 발생하거나 유효한 스누프 적중이 생략될 수 있다. 즉, 시스템 버스(5)를 스누핑하는 장치는, 실제로 IOCC(7)가 전이 섹터 어드레스중의 하나에 대응하는 데이타를 소유하더라도, IOCC(7)가 이러한 데이타를 소유한다고 판정하지 못할 것이며, 따라서 캐시(9), 캐시(3) 및 메모리(11)는 전이 단계동안 주어진 부적절한 응답으로 인해 일관성을 상실할 수 있는 상황이 발생한다. IOCC(7)가 메모리 섹터를 소유하는 동안, IOCC(7)는 시스템 버스에 대한 스누핑을 수행한다. CPU 버스 프로토콜 신호(CPUbus protocol signal)는 특정 버스 사이클(particular bus cycle)이 스누프 윈도우(snoop window) 인지를 판정하기 위해 사용된다.
제3도에는 스누프 적중이 발생하였는지를 판정하기 위해, 본 발명에 의해 이용되는, IOCC(7)에 포함된 하드웨어 논리(hardware logic)가 도시되었다. 래치(latch)(15)는 데이타 전송 동작(data transfer operations)동안 입/출력 버스마스터에 의해 제공된 어드레스를 수신한다. 또한, 버스마스터 장치는 메모리 어드레스가 래치될 때를 나타내는 제2도의 커맨드 클럭을(논리(22)의 게이트에 의해 적절한 상태가 되게하여) 래치(15)에 입력한다. 스누프 적중이 발생하였는지를 판정하기 위해 IOCC(7)는 또한 페이지 비교기(page comparator)(19) 및 섹터 비교기(sector comparator)(29)를 포함하며, 이들은 시스템 버스(5)로부터 시스템 버스(5)에 연결되고 메모리(11)를 액세스할 수 있는 다른 장치에 의해 요구되는 데이타 장소(data location)에 대응하는 어드레스를 수신한다. 래치(15)의 어드레스는 또한 페이지 비교기(19) 및 섹터비교기(29)에 제공되고 입/출력 버스마스터 장치에 의해 액세스되고 있는 입/출력 캐시(9)내의 데이타의 메모리 어드레스를 포함한다.
또한, 페이지 전용 비교기(page only comparator)(30)가 제공되고, 이 비교기는 버스마스터 장치가 다른 페이지상의 데이타에 대한 액세스를 요구했는지를 판정하여, 시스템으로 하여금 버스마스터를 비활성화시키도록 하며 CPU 클럭과 동기적으로 버스마스터 어드레스 래치(busmaster address latch)를 리세트 하도록한다. 버스마스터에 의해 제공된 메모리 어드레스와 시스템 버스로부터의 메모리 어드레스가 비교된다. 페이지가 동일하면, 페이지 적중(page hit)이 발생하고, 대응하는 신호가 AND 게이트(31 및 35)로 출력된다. 섹터 어드레스가 동일하다면, 섹터 적중이 발생하고 신호가 비교기(29)로부터 AND 게이트(31)로 출력된다. 페이지 적중 신호 및 섹터 적중 신호가 모두 유효하다면, AND 게이트(31)로부터 AND 게이트(33)로 신호가 출력된다. 이어서, DMA 동작의 상태를 나타내는 신호가 AND 게이트(33 및 35)로 입력된다. DMA 버스마스터 활성 신호(DMA busmaster active signal)는 AND 게이트(33)로 입력되기에 앞서 반전(invert)된다. AND 게이트(33 및 35)의 출력은 OR 게이트(37)로 입력되며, OR 게이트(37)는 AND 게이트(40)로 신호를 출력하고, AND 게이트(40)는 또한 스누프 비교가 발생하여야 함을 나타대는 CPU 클럭(제2도)에 의해 정의되는 신호를 수신한다.
따라서, 본 발명이 DMA 버스마스터 장치의 상태를 기초로 하여, 어떻게 스누프 비교 어드레스 세분성(snoop comparison address granulartiy)이 동적이 되도록 허용하는지를 제3도로부터 알 수 있다. 즉, 제3도의 DMA 신호가 비활성이면, 유효 신호(valid signal)가 AND 게이트(33)로 입력된다. AND 게이트(31)로부터의 신호에 의해 알수 있듯이, 페이지 및 섹터 적중이 발생하면, 게이트(33)는 OR 게이트(37)로 유효 신호를 출력할 것이다. 그후, OR 게이트(37)로부터의 신호가 입력될때 스누프 윈도우 신호(snoop window signal)가 존재한다면, AND 게이트(40)는 스누프 적중이 발생하였음을 나타내는 신호를 출력할 것이다. 따라서, IOCC(7)는 스누프 적중이 발생하였는지를 판정하기 위해 자신의 내부 논리(internal logic)를 샘플(sample)해야 할 시기를 CPU 버스 클럭(bus clock)을 사용하여 결정한다. 이러한 방식으로, DMA버스마스터 장치가 비활성일 때, 스누프 비교는 섹터 세분성 베이스(sector granularity basis)로 구현된다. 그러나, DMA 활성 신호가 활성이면, 유효 신호는 AND 게이트(33)가 아닌 AND 게이트(35)로 입력될 것이다. 따라서, 비교기(19)로부터의 페이지 적중 신호(page hit signal) 및 DMA 활성 신호에 의해 OR 게이트(37) 및 AND 게이트(40)로 신호가 입력된다. 이러한 방식으로, 페이지 적중이 존재하는 동안 스누프 적중 신호(snoop hit signal)가 입력된다면, 게이트(40)는 스누프 적중을 표시할 것이다. 따라서, DMA 신호가 토글(활성과 비활성 사이에서 변화)됨에 따라, 시스템이 페이지 어드레스 및 섹터 어드레스간의 스누프 비교 세분성(snoop comparison granularity)을 동적으로 변경시킴을 알 수 있다.
따라서, 본 발명은 IOCC(7)의 스누프 비교 논리(snoop comparison logic of IOCC(7))를 수정하므로써 스누프 비교 세분성이 페이지 어드레스 부분과 섹터 어드레스 부분 사이에서 동적으로 변하도록 한다. 이러한 방식으로, DMA 버스마스터 장치가 스누프 비교를 위해 사용되는 어드레스를 비동기적으로 갱신할 수 있는 DMA 버스마스터의 활성 주기동안 섹터 어드레스는 완전히 무시된다.
스누핑 동작에 페이지 어드레스 세분성이 사용되면, 활성 DMA 버스마스터 장치(active DMA busmaster device)와, 시스템 버스(5)상의(CPU(1)와 같은) 다른 장치가 동일한 페이지상에 존재하는 상이한 메모리 어드레스 섹터(different memory address sectors)의 데이타를 액세스하기를 원할 수도 있다. 이러한 경우, 페이지 어드레스 세분성으로 인해 스누프 적중이 발생할 것이다. 스누프 적중이 발생하였을 때 DMA 버스마스터 장치가 캐시(9)의 데이타를 액세스하고 있으면, IOCC(7)는 데이타를 요구하고 있는 장치에 ARTRY 신호를 발생하여 DMA 버스마스터 동작이 중단될 때까지 대기하도록 알려준다. DMA 버스마스터 동작이 중단되면 IOCC(7)는 데이타 소유권의 전송을 방지하기 위한 간섭을 멈출 것이다(즉, ARTRY발생을 중지할 것이다) 이러한 경우, 본 발명은, 시스템 버스(5)에 연결된 다른 장치가 DMA 버스마스터장치에 의해 액세스되고 있는 메모리 섹터 어드레스(memory sector address)와 동일한 페이지상의 메모리 섹터 어드레스를 요구할때, 데이타 처리 시스템내의 각중 메모리 위치들(L1 캐시 및 시스템 메모리) 사이에서 비일관성 데이타가 존재하는 것을 방지한다.
다른 경우에 있어서, 활성 DMA 버스마스터 장치는, IOCC가 다른 장치에 의해 소유된 메모리 섹터 어드레스로부터 인출(fetch)해야 하는 데이타를 요구하므로써, 스누프 적중을 야기할 수 있다. 다른 장치는 스누프 적중을 검출할 것이고, IOCC가 요구된 섹터의 수정된 사본을 메모리에 기록하는 등의 요구된 일관성 유지 동작(required coherency maintenance actions)을 수행하는 동안 IOCC를 오프상태로 유지할 것이다. IOCC(7)가 입/출력 버스마스터에 의해 요구되는 데이타를 제공할 수 없을 때, IOCC는 상기 버스마스터를 오프상태로 유지시키고 자신의 DMA 활성 신호를 비활성화 시킨다. DMA가 비활성일 때, IOCC는 섹터 세분성(sector granularity)을 사용하여 CPU 버스를 스누핑하고, 또한, 요구된(수정되지 않은) 섹터사본을 무효화 시키므로써 응답한다. 즉, IOCC(7)의 캐시(9)내의 섹터의 수정되지 않은 사본은 무효화 된다.
전술한 경우에 있어서, DMA 버스마스터 장치가 활성이고 스누프 비교 세분성이 페이지 어드레스 레벨(page address level)이기 때문에, 메모리 섹터 어드레스에 무관하게 스누프 적중이 발생할 것이다. 그러나, (버스마스터 장치가 새로운 페이지 어드레스를 제공할 때 제3도의 비교기(30)에 의해 판정되는 바와 같이)DMA 버스마스터가 현재 액세스되고 있는 데이타로와는 다른 페이지 어드레스를 갖는 데이타를 요구하였기 때문에, 전술한 리세트 동작이 발생하여, DMA 버스마스터는 비활성으로 되며, 제3도의 래치(15)는 CPU 클럭을 기초로 하여 동기적으로 새로운 어드레스로 갱신된다.
이러한 방식으로, 입/출력 버스마스터 장치는 캐시(9)와의 사이에서 데이타를 비동기적으로 전송할 수 있고, 페이지 어드레스 세분성이 사용되므로, CPU 클럭에 근거하여 개시된 임의의 스누프 동작은 스누프 비교에 유효한 어드레스가 사용됨을 보장받는다. 따라서, 새로운 페이지가 버스마스터 장치에 의해 어드레스될때, 입/출력 버스(13)상의 동작을 잠시 지연시키므로써 시스템 성능의 저하는 거의 일어나지 않는다는 것을 알수 있다.
비록 본 발명은 버스마스터 장치와 IOCC간의 데이타 전송에 관해 기술되었지만, 본 발명은, 시스템 버스와 동기적으로 시스템 메모리의 데이타를 액세스하되, 그의 L1 캐시는 시스템 버스와 비동기적으로 갱신되는 임의의 장치 사이에서 캐시 일관성을 제공한다는 사실은 당업자라면 이해할 수 있을 것이다.
비록 소정의 바람직한 실시예가 도시되고 설명되었지만, 첨부된 특허청구범위의 사상을 벗어남이 없이 많은 변경 및 수정이 가하여질 수 있음을 이해하여야 한다.

Claims (12)

  1. CPU 클럭(a CPU clock)에 의해 결정되는 한 시점에서 스누프 비교(snoop comparison)가 발생하는 스누핑 프로토콜(a snooping protocol)을 사용하는 시스템에서 캐시 일관성(cache coherency)을 유지하는 방법에 있어서, 상기 방법은 : 페이지 부분 및 섹터 부분(a page portion and a sector portion)을 갖는 어드레스(an address)를 제공하므로써 메모리로부터 데이타의 소유권(ownership of data)을 요구(request)하는 단계와 ; 상기 CPU 클럭과 비동기적으로 제1장치의 내부 캐시(an internal cache)에서 상기 데이타를 활성적으로 액세스(actively access)하는 단계와 ; 상기 내부 캐시가 활성적으로 액세스되는 시간동안 상기 스누프 비교를 구현하기 위해 오직 상기 어드레스의 상기 페이지 부분만을 사용하는 단계를 포함하는 캐시일관성 유지 방법.
  2. 제1항에 있어서, 상기 데이타가 활성적으로 액세스되고 있을 때, 다른 장치가 상기 데이타에 대한 액세스를 획득하는 것을 방지하는 단계를 더 포함하는 캐시 일관성 유지 방법.
  3. 제2항에 있어서, 상기 내부 캐시가 활성적으로 액세스되고 있지 않는 시간동안, 상기 스누프 비교를 구현하기 위해 상기 어드레스의 상기 페이지 부분 및 상기 섹터 부분을 사용하는 단계를 더 포함하는 캐시 일관성 유지 방법.
  4. 제3항에 있어서, 상기 내부 캐시가 활성적으로 액세스되고 있지 않는 시간동안, 다른 장치가 상기 데이타를 요구했다고 판정시 상기 제1장치내의 상기 데이타를 무효로 하는 단계를 더 포함하는 캐시 일관성 유지 방법.
  5. CPU 클럭에 의해 결정되는 한 시점에서 스누프 비교가 발생하는 스누핑 프로토콜을 사용하여 캐시 일관성을 유지하는 데이타 처리 시스템에 있어서, 상기 데이타 처리 시스템은 : 페이지 부분과 섹터 부분을 갖는 어드레스를 제공하므로써 메모리로부터 데이타의 소유권을 요구하는 수단과 ; 상기 CPU 클럭과 비동기적으로 제1장치의 내부 캐시에서 상기 데이타에 활성적으로 액세스하는 수단과 ; 상기 내부 캐시가 활성적으로 액세스되는 시간동안 상기 스누프 비교를 구현하기 위해 오직 상기 어드레스의 상기 전용 페이지 부분만을 사용하는 수단을 포함하는 캐시 일관성 유지 데이타 처리 시스템.
  6. 제5항에 있어서, 상기 데이타가 활성적으로 액세스되고 있을 때, 다른 장치가 상기 데이타에 대한 액세스를 획득하는 것을 방지하는 수단을 더 포함하는 캐시 일관성 유지 데이타 처리 시스템.
  7. 제6항에 있어서, 상기 내부 캐시가 활성적으로 액세스되고 있지 않는 시간동안, 상기 스누프 비교를 구현하기 위해 상기 어드레스의 상기 페이지 부분 및 상기 섹터 부분을 사용하는 수단을 더 포함하는 캐시 일관성 유지 데이타 처리 시스템.
  8. 제7항에 있어서, 상기 내부 캐시가 활성적으로 액세스되고 있지 않는 시간동안, 다른 장치가 상기 데이타를 요구했다고 판정시 상기 제1장치내의 상기 데이타를 무효로 하는 수단을 더 포함하는 캐시 일관성 유지 데이타 처리 시스템.
  9. 제8항에 있어서, 상기 제1장치는 시스템 버스와 입/출력 버스간에 인터페이스(an interface)를 제공하는 입/출력 제어기인 캐시 일관성 유지 데이타 처리 시스템.
  10. 제9항에 있어서, 상기 활성적으로 액세스하는 수단은 상기 입/출력 제어기에 연결할 수 있고 상기 메모리 사이에서 데이타의 직접 메모리 액세스(a direct memory access of data)를 구현할 수 있는 입/출력장치인 캐시 일관성 유지 데이타 처리 시스템.
  11. 제10항에 있어서, 오직 상기 페이지 부분만을 사용하는 수단은, 상기 입/출력 장치의 상태에 따라, 상기 페이지 부분 및 상기 섹터 부분 사이에서 상기 스누프 비교를 구현하기 위해 사용되는 세분성(the granularity)을 동적으로 변경시키기 위한 수단을 포함하는 캐시 일관성 유지 데이타 처리 시스템.
  12. 제11항에 있어서, 상기 세분성을 동적으로 변경시키기 위한 수단은 상기 입/출력 제어기에 포함된 논리회로(a logic circuit)를 포함하는 캐시 일관성 유지 데이타 처리 시스템.
KR1019940023766A 1993-09-20 1994-09-17 캐시 일관성 유지 방법 및 캐시 일관성 유지 데이타 처리 시스템 KR970007271B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/123,820 1993-09-20
US123,820 1993-09-20
US08/123,820 US5526512A (en) 1993-09-20 1993-09-20 Dynamic management of snoop granularity for a coherent asynchronous DMA cache

Publications (2)

Publication Number Publication Date
KR950009444A KR950009444A (ko) 1995-04-24
KR970007271B1 true KR970007271B1 (ko) 1997-05-07

Family

ID=22411087

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019940023766A KR970007271B1 (ko) 1993-09-20 1994-09-17 캐시 일관성 유지 방법 및 캐시 일관성 유지 데이타 처리 시스템

Country Status (8)

Country Link
US (1) US5526512A (ko)
EP (1) EP0644491B1 (ko)
JP (1) JP2642064B2 (ko)
KR (1) KR970007271B1 (ko)
AT (1) ATE191803T1 (ko)
CA (1) CA2125218A1 (ko)
DE (1) DE69423938T2 (ko)
ES (1) ES2144488T3 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781763A (en) * 1995-04-07 1998-07-14 International Business Machines Corporation Independent control of DMA and I/O resources for mixed-endian computing systems
US6128711A (en) * 1996-11-12 2000-10-03 Compaq Computer Corporation Performance optimization and system bus duty cycle reduction by I/O bridge partial cache line writes
US5809528A (en) * 1996-12-24 1998-09-15 International Business Machines Corporation Method and circuit for a least recently used replacement mechanism and invalidated address handling in a fully associative many-way cache memory
US5937167A (en) * 1997-03-31 1999-08-10 International Business Machines Corporation Communication controller for generating four timing signals each of selectable frequency for transferring data across a network
US5958011A (en) * 1997-03-31 1999-09-28 International Business Machines Corporation System utilizing mastering and snooping circuitry that operate in response to clock signals having different frequencies generated by the communication controller
US6173371B1 (en) * 1997-04-14 2001-01-09 International Business Machines Corporation Demand-based issuance of cache operations to a processor bus
KR100455116B1 (ko) * 1997-10-23 2004-12-30 엘지전자 주식회사 내장시스템의메모리액세스방법
US6792424B1 (en) 1999-04-23 2004-09-14 International Business Machines Corporation System and method for managing authentication and coherency in a storage area network
US7062612B2 (en) * 2002-12-12 2006-06-13 International Business Machines Corporation Updating remote locked cache
FR2864730B1 (fr) * 2003-12-26 2006-03-17 Temento Systems Dispositif de memorisation
US7395448B2 (en) * 2006-07-26 2008-07-01 International Business Machines Corporation Directly obtaining by application programs information usable in determining clock accuracy
WO2015195076A1 (en) * 2014-06-16 2015-12-23 Hewlett-Packard Development Company, L.P. Cache coherency for direct memory access operations

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3638947C2 (de) * 1986-11-14 1995-08-31 Bosch Gmbh Robert Verfahren zur Synchronisation von Rechnern eines Mehrrechnersystems und Mehrrechnersystem
JPH01118944A (ja) * 1987-10-31 1989-05-11 Toshiba Corp キャッシュメモリ制御装置
US4928225A (en) * 1988-08-25 1990-05-22 Edgcore Technology, Inc. Coherent cache structures and methods
JPH0778765B2 (ja) * 1988-09-08 1995-08-23 富士通株式会社 キャッシュ内蔵プロセッサ
US5025365A (en) * 1988-11-14 1991-06-18 Unisys Corporation Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors
US5287482A (en) * 1989-01-13 1994-02-15 International Business Machines Corporation Input/output cache
EP0377970B1 (en) * 1989-01-13 1995-08-16 International Business Machines Corporation I/O caching
US5133074A (en) * 1989-02-08 1992-07-21 Acer Incorporated Deadlock resolution with cache snooping
JPH0630094B2 (ja) * 1989-03-13 1994-04-20 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセツサ・システム
US5072369A (en) * 1989-04-07 1991-12-10 Tektronix, Inc. Interface between buses attached with cached modules providing address space mapped cache coherent memory access with SNOOP hit memory updates
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
JPH0348951A (ja) * 1989-07-18 1991-03-01 Fujitsu Ltd アドレスモニタ装置
JPH03219345A (ja) * 1990-01-25 1991-09-26 Toshiba Corp 多ポートキャッシュメモリ制御装置
US5263142A (en) * 1990-04-12 1993-11-16 Sun Microsystems, Inc. Input/output cache with mapped pages allocated for caching direct (virtual) memory access input/output data based on type of I/O devices
US5202973A (en) * 1990-06-29 1993-04-13 Digital Equipment Corporation Method of controlling a shared memory bus in a multiprocessor system for preventing bus collisions and for ensuring a full bus
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
JPH04132550U (ja) * 1991-05-23 1992-12-08 横河電機株式会社 マルチプロセツサシステム
GB2256512B (en) * 1991-06-04 1995-03-15 Intel Corp Second level cache controller unit and system
US5228134A (en) * 1991-06-04 1993-07-13 Intel Corporation Cache memory integrated circuit for use with a synchronous central processor bus and an asynchronous memory bus
US5293603A (en) * 1991-06-04 1994-03-08 Intel Corporation Cache subsystem for microprocessor based computer system with synchronous and asynchronous data path
GB2272315B (en) * 1991-07-02 1995-10-04 Intel Corp Asynchronous modular bus architecture with burst capability
JPH05189359A (ja) * 1992-01-16 1993-07-30 Hitachi Ltd キャッシュメモリ制御方式
US5325503A (en) * 1992-02-21 1994-06-28 Compaq Computer Corporation Cache memory system which snoops an operation to a first location in a cache line and does not snoop further operations to locations in the same line
DE69319763T2 (de) * 1992-03-04 1999-03-11 Motorola Inc Verfahren und Gerät zur Durchführung eines Busarbitrierungsprotokolls in einem Datenverarbeitungssystem
US5398325A (en) * 1992-05-07 1995-03-14 Sun Microsystems, Inc. Methods and apparatus for improving cache consistency using a single copy of a cache tag memory in multiple processor computer systems

Also Published As

Publication number Publication date
KR950009444A (ko) 1995-04-24
JPH07105090A (ja) 1995-04-21
EP0644491B1 (en) 2000-04-12
ES2144488T3 (es) 2000-06-16
US5526512A (en) 1996-06-11
CA2125218A1 (en) 1995-03-21
ATE191803T1 (de) 2000-04-15
EP0644491A1 (en) 1995-03-22
DE69423938D1 (de) 2000-05-18
DE69423938T2 (de) 2000-10-12
JP2642064B2 (ja) 1997-08-20

Similar Documents

Publication Publication Date Title
US5485594A (en) Apparatus and method using an atomic fetch and add for establishing temporary ownership of a common system resource in a multiprocessor data processing system
US5913224A (en) Programmable cache including a non-lockable data way and a lockable data way configured to lock real-time data
US4959777A (en) Write-shared cache circuit for multiprocessor system
US5426765A (en) Multiprocessor cache abitration
US5659710A (en) Cache coherency method and system employing serially encoded snoop responses
JP3067112B2 (ja) 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法
KR100228940B1 (ko) 메모리 일관성 유지 방법
JP2002163148A (ja) キャッシュメモリー付マルチ処理システム
KR970007271B1 (ko) 캐시 일관성 유지 방법 및 캐시 일관성 유지 데이타 처리 시스템
KR19990072600A (ko) 재실행스누프히트시의순방향진행수행방법및시스템
US5860114A (en) Method and apparatus for managing snoop requests using snoop advisory cells
US5590310A (en) Method and structure for data integrity in a multiple level cache system
US5151979A (en) Data processing system with information transfer bus and wait signal
US5724550A (en) Using an address pin as a snoop invalidate signal during snoop cycles
JP4106664B2 (ja) データ処理システムにおけるメモリ・コントローラ
US5787468A (en) Computer system with a cache coherent non-uniform memory access architecture using a fast tag cache to accelerate memory references
JPH06318174A (ja) キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
US5860113A (en) System for using a dirty bit with a cache memory
US20020129210A1 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers that uses dynamic hardware/software controls
US5557622A (en) Method and apparatus for parity generation
US6021466A (en) Transferring data between caches in a multiple processor environment
US9672153B2 (en) Memory interface control
US20020129209A1 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers
US20020083268A1 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers performing directory update
JPH01128156A (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: 20020608

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee