KR100277446B1 - 데이타 처리 시스템 내의 캐쉬 메모리 데이타를 추론적으로공급하기 위한 방법 및 장치 - Google Patents

데이타 처리 시스템 내의 캐쉬 메모리 데이타를 추론적으로공급하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR100277446B1
KR100277446B1 KR1019980001384A KR19980001384A KR100277446B1 KR 100277446 B1 KR100277446 B1 KR 100277446B1 KR 1019980001384 A KR1019980001384 A KR 1019980001384A KR 19980001384 A KR19980001384 A KR 19980001384A KR 100277446 B1 KR100277446 B1 KR 100277446B1
Authority
KR
South Korea
Prior art keywords
data
cache memory
processing device
processing
response
Prior art date
Application number
KR1019980001384A
Other languages
English (en)
Other versions
KR19980079625A (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 KR19980079625A publication Critical patent/KR19980079625A/ko
Application granted granted Critical
Publication of KR100277446B1 publication Critical patent/KR100277446B1/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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory

Abstract

데이타 처리 시스템 내의 처리 장치로부터 지능형 I/O 장치로 캐쉬 메모리 데이타를 추론적으로 공급하기 위한 방법 및 시스템이 공개된다. 본 발명의 방법 및 시스템에 따라, 데이타 처리 시스템은 최소한 하나의 처리 장치를 포함하며, 각각은 최소한 하나의 캐쉬 메모리와 최소한 하나의 지능형 I/O 장치를 가진다. 데이타 처리 시스템 내의 지능형 I/O 장치에 의한 데이타 요청에 응답하여, 데이타 처리 시스템 내의 요청된 데이타를 갖는 데이타 처리 장치에 의해 개입 응답이 내려진다. 다음으로, 데이타 처리 시스템 내의 모든 처리 장치로부터의 결합 응답이 요청된 데이타를 갖는 데이타 처리 장치로 되돌아 오기 전에 요청된 데이타를 갖는 데이타 처리 장치 내의 캐쉬 메모리로부터 요청된 데이타가 판독된다.

Description

데이타 처리 시스템 내의 캐쉬 메모리 데이타를 추론적으로 공급하기 위한 방법 및 장치
본 발명은 일반적으로 캐쉬 메모리 데이타를 공유하기 위한 방법 및 시스템에 관한 것으로, 보다 구체적으로는, 데이타 처리 시스템 내의 처리 장치와 I/O 장치간의 캐쉬 메모리 데이타를 공유하기 위한 방법 및 시스템에 관한 것이다. 더욱 더 구체적으로는, 데이타 처리 시스템 내의 처리 장치로부터 지능형 I/O 장치로 캐쉬 메모리 데이타를 추론적으로 공급하기 위한 방법 및 시스템에 관한 것이다.
데이타 처리 시스템은 최소한 하나의 처리 장치, 시스템 메모리, 및 다양한 I/O 장치를 포함한다. 처리 장치는 프로그램 명령을 실행하기 위해 복수의 레지스터와 실행 장치를 갖는 프로세서 코어를 포함할 수 있다. 또한, 처리 장치는 고속의 메모리를 사용하여 구현되는 명령어 캐쉬 및/또는 데이타 캐쉬와 같은 하나 이상의 1차 캐쉬(즉, 레벨 1 또는 L1 캐쉬)를 가질 수도 있다. 또한, 처리 장치는 앞서 언급한 것들과 같은 1차 캐쉬를 지원하기 위한 2차 캐쉬(즉, 레벨 2 또는 L2 캐쉬)라 언급되는 추가 캐쉬를 포함할 수도 있다.
통상적으로, 시스템 메모리를 거치지 않고 데이타 버스 상에서 하나의 처리 장치로부터 다른 처리 장치나 I/O 장치로 데이타를 전송하는 것을 개입(intervention)이라고 한다. 개입 프로토콜(intervention protocol)은, 시스템 내의 임의의 처리 장치나 I/O 장치에 의한 판독(read) 또는 수정 목적의 판독 요청(read with intent to modify, RWITM)을 만족시키기 위해 시스템 메모리가 액세스되어야 할 경우의 수를 줄임으로써 시스템 성능을 향상시킨다.
전반적으로 말하면, I/O 장치에 의한 미결의 판독/RWITM 요청이 있을 때, 자신의 캐쉬 내에 요청된 데이타를 가지고 있는 시스템 버스에 부착된 임의의 한 다른 처리 장치는 요청하는 I/O 장치로 이 데이타를 공급할 수 있다. 종래의 개입 프로토콜 하에서는, 캐쉬 내에 데이타를 가지고 있는 처리 장치는 자신의 캐쉬로부터 데이타를 공급하기 위해 데이타 버스 요청(data bus request)을 내기 전에, 시스템 내의 모든 처리 장치로부터의 "결합" 응답(combined response)을 기다린다.
동시에, 전통적인 개입 프로토콜은 "재시도" 메카니즘도 허용한다. 그리고, 개입에 의해 만족될 수 있는 임의의 판독/RWITM 요청도 시스템 버스 상의 임의의 한 처리 장치로부터의 "재시도"에 의해 개입될 수 있다. 만일, 잘 설정된 규칙하에, 한 처리 장치가 개입으로써 응답하고 다른 처리 장치는 재시도로써 응답한다면, 재시도 응답이 자동으로 개입 응답을 무효로 할 것이다. 그 결과, 시스템 버스 상에 임의의 한 처리 장치에 의한 미결의 재시도 요청이 있다면, 데이타를 포함하는 처리 장치는 데이타 버스 요청을 내지 않을 것이다.
따라서, 데이타 처리 시스템 내의 임의의 처리 장치로부터의 "재시도"에 의해 덜 영향받는 방식으로, 개입 데이타가 요청하는 I/O 장치로 공급되는 개선된 데이타 공급 방안을 제공하는 것이 바람직할 것이다.
따라서, 앞서 언급한 사실들로부터, 캐쉬 메모리 데이타를 공유하기 위한 개선된 방법과 시스템을 제공하는 것이 본 발명의 목적이다.
데이타 처리 시스템 내의 처리 장치와 I/O 장치들 간에 캐쉬 메모리 데이타를 공유하기 위한 개선된 방법과 시스템을 제공하는 것이 본 발명의 또 다른 목적이다.
데이타 처리 시스템 내의 처리 장치로부터의 I/O 장치로 캐쉬 메모리 데이타를 추론적으로 공급하기 위한 개선된 방법과 시스템을 제공하는 것이 역시 본 발명의 또 다른 목적이다.
본 발명의 방법과 시스템에 따라, 데이타 처리 시스템은 최소한 하나의 처리 장치를 포함하며, 각각의 처리 장치는 최소한 하나의 캐쉬 메모리와 최소한 하나의 I/O 장치를 포함한다. 데이타 처리 시스템 내의 지능형 I/O 장치에 의한 데이타 요청에 응답하여, 데이타 처리 시스템 내의 요청된 데이타를 갖는 데이타 처리 장치로부터 개입 응답(intervention response)이 나온다. 다음으로, 요청된 데이타는, 데이타 처리 시스템 내의 모든 처리 장치로부터의 결합 응답이 처리 장치로 리턴되기 전에, 처리 장치 내의 캐쉬 메모리로부터 판독된다.
본 발명의 모든 목적, 특징, 및 잇점들이 다음의 상세한 설명으로부터 명백해 질 것이다.
도 1은 본 발명의 적용될 수 있는 데이타 처리 시스템의 블럭도.
도 2는 종래 기술에서의 공급 방안을 도시하기 위한 예시적 데이타 처리 시스템의 블럭도.
도 3은 본 발명의 바람직한 실시예에 따른 데이타 처리 시스템 내의 처리 장치로부터 I/O 장치로 캐쉬 메모리 데이타를 추론적으로 공급하기 위한 방법을 도시하는 도면.
본 발명의 최소한 하나의 캐쉬 메모리를 갖는 데이타 처리 시스템에서 구현될 수 있다. 또한, 본 발명의 특징은 각각의 프로세서가 1차 및 2차 캐쉬를 갖는 다양한 다중-프로세서 데이타 처리 시스템에도 적용될 수 있다는 것을 이해할 수 있을 것이다.
도면들, 특히, 도 1을 참조하면, 본 발명이 적용될 수 있는 데이타 처리 시스템(10)의 블럭도가 도시되어 있다. 데이타 처리 시스템(10)은 복수의 중앙 처리 장치(CPU, 11a-11n)을 포함하고, 각각의 CPU(11a-11n)은 1차 캐쉬를 포함한다. 도시된 바와 같이, CPU(11a)는 1차 캐쉬(12a)를 포함하는 반면, CPU(11n)은 1차 캐쉬(12n)을 포함한다. 각각의 1차 캐쉬(12a-12n)은 섹터화된 캐쉬일 것이다.
각각의 CPU(11a-11n)은 각각 2차 캐쉬(13a-13n)의 각각에 결합된다. 각각의 2차 캐쉬(13a-13n)도 역시 섹터화된 캐쉬일 것이다. CPU(11a-11n), 1차 캐쉬(12a-12n), 및 2차 캐쉬(13a-13n)은 시스템 메모리(14)로의 상호접속부(15)를 통해 서로 접속된다. 상호접속부(15)는 시스템 버스이거나 스위치일 수도 있다. 상호접속부(15)에는 지능형 I/O 장치(16a-16n)이 역시 부착되어 있다. 이들 지능형 I/O 장치(16a-16n)은 시스템 메모리로 및 시스템 메모리로부터의 데이타 전송을 개시할 능력이 있다. 이들 지능형 I/O 장치(16a-16n)은 인트라넷이나 인터넷과 같은 네트워크를 통해 또 다른 데이타 처리 시스템과 통신하는데 사용되는 다양한 어댑터들을 포함할 수도 있다.
본 발명의 양호한 실시예로서, 도 1에 도시된 CPU(11a), 1차 캐쉬(12a), 및 2차 캐쉬(13a)와 같은 CPU, 1차 캐쉬, 및 2차 캐쉬는 일체적으로 처리 장치라 불릴 수 있다. 비록 양호한 실시예의 데이타 처리 시스템이 도 1에 도시되어 있지만, 본 발명은 다양한 구성의 시스템에 적용될 수 있다는 것을 이해할 수 있을 것이다. 예를 들어, 각각의 CPU(11a-11n)은 2레벨 이상의 캐쉬 메모리를 가질 수 있다.
이제 표 I를 참조하면, 종래 기술의 개입 프로토콜 하에서의 처리 장치로부터 다수의 확립된 코히어런시 응답(coherency response)이 도시되어 있다. 다중프로세서 데이타 처리 시스템 내의 I/O 장치가 시스템 버스 상에 판독 또는 수정 목적의 판독 요청(RWITM)을 낸 후에, 시스템 내의 임의의 처리 장치는 이를 탐지한(snoop) 후에 표 I에 따른 응답들 중 하나를 낼 것이다.
코히어런시 응답 우선순위 정의
0 - 보류됨
1 3 공유 개입
10 - 보류
11 - 보류
100 1 재시도
101 2 수정 개입
110 4 공유
111 5 널 또는 클린
표 1에 도시된 바와 같이, 코히어런시 응답은 3비트의 탐지 응답 신호의 형태를 가지며, 각각의 코히어런시 응답의 정의가 도시되어 있다. 이들 신호들은 인코딩되어 어드레스 테뉴어(address tenure) 후에 탐지 결과를 나타낸다. 또한, 우선순위 값은, 시스템 버스 상의 모든 처리 장치 및 I/O 장치들로 리턴될 하나의 탐지 응답 신호(single snoop response signal)를 형성할 때, 어떤 코히어런시 응답이 우선할 것인지를 시스템 논리부가 결정할 수 있도록 각각의 응답에 관련되어 있는 값이다. 예를 들어, 만일, 처리 장치가 공유된 개입 응답(우선순위 3)으로써 응답하고 또 다른 처리 장치가 재시도 응답(우선순위 1)으로써 응답한다면, 재시도 응답을 갖는 처리 장치가 우선권을 가지게 되어 시스템 논리부는 시스템 버스 상에 부착된 모든 다른 처리 장치뿐만 아니라 요청하는 처리 장치에게 재시도 코히어런시 응답을 리턴할 것이다. 이 시스템 논리부는 시스템 제어 장치나 메모리 컨트롤러와 같은 시스템 내의 여러 부품 내에 존재할 수도 있다.
(처리 장치의) 어느 캐쉬가 요청되고 있는 데이타의 진실한 소유자로서 데이타를 공급할 수 있는 자격이 있는지를 확인하기 위해 몇 개의 공지된 메카니즘이 사용될 수 있다. 종래 기술의 MESI 프로토콜 하에서, 만일, 캐쉬가 "수정된" 또는 "배타적" 상태로 요청된 데이타를 보유하고 있다면, 이것은 이 캐쉬가 데이타의 유효한 사본을 가지고 있는 시스템 내의 유일한 캐쉬이며 소유자임을 의미한다. 그러나, 만일, 캐쉬가 "공유된" 상태에서 요청된 데이타를 가지고 있다면, 이것은 이 데이타가 시스템 내의 최소한 하나의 다른 캐쉬 내에도 있다는 것을 의미한다. 따라서, 잠재적으로, 2개 이상의 캐쉬 중 하나는 이 데이타를 공급할 수 있다. 이와 같은 경우에, 어떤 캐쉬가 공급을 해야 하는지를 결정하기 위해 몇 개의 대안이 이용될 수 있다.
이제, 도 2를 참조하면, 종래 기술의 공급 계획을 설명하는 예시적 데이타 처리 시스템의 블럭도가 도시되어 있다. 도시된 바와 같이, 예를 들어, 지능형 I/O 장치(24)는 시스템 버스(23) 상에 판독 또는 RWITM 요청을 하기를 원하고, 처리 장치(21)의 L2 캐쉬는 I/O 장치(24)에 의해 요청되고 있는 데이타를 포함하고 있다. 또한, 처리 장치(20) 내의 L2 캐쉬는 "무효 상태"에 있고, 처리 장치(21) 내의 L2 캐쉬는 "수정된" 상태에 있으며, 처리 장치(22) 내의 L2 캐쉬는 요청된 데이타를 포함하고 있지 않다. 종래 기술에 의해 제공되는 바와 같이 공급 개입(source intervention)을 수행하기 위한 각각의 처리 장치의 각각의 L2 캐쉬 컨트롤러에 의해 후속 동작이 취해질 것이다.
I/O 장치(24)가 판독/RWITM 요청을 낸 후에, 이 판독/RWITM 요청은 처리 장치(21), 처리 장치(22), 및 처리 장치(23)에 의해 시스템 버스(23)으로부터 탐지(snoop)된다. 요청된 데이타가 L2 캐쉬 내에 있는지의 여부를 판별하기 위해 각각의 처리 장치(21-23)에서 L2 캐쉬 디렉토리 조사가 이루어진다. 처리 장치(21)은 요청된 데이타를 가지고 있기 때문에, 개입 응답이 처리 장치(21)에 의해 이루어질 것이다. 그리고, 처리 장치(21) 내의 유한 상태 머쉰(finite state machine)이 디음과 같은 동작들을 제어하기 위해 사용될 것이다. 처리 장치(21) 내의 L2 캐쉬 내의 데이타가 "수정된" 상태에 있다면, 수정된 개입 코히어런시 응답이 처리 장치(21)에 의해 발생될 것이다. 그렇지 않고, 만일, 처리 장치(21)의 L2 캐쉬 내의 데이타가 "공유된" 또는 "배타적" 상태에 있다면, 공유된 개입 코히어런시 응답이 처리 장치(21)에 의해 발생될 것이다. 처리 장치(20) 내의 L2 캐쉬가 요청된 데이타를 포함하고 있지 않기 때문에, 각각의 처리 장치(20 및 21)은 널 코히어런시 응답(null coherency response)을 전송할 것이다.
처리 장치(21)은 개입 응답을 낸 후에, 이 예에서는 자신으로부터의 코히어런시 응답과 처리 장치(20, 22) 및 I/O 장치(24)로부터의 코히어런시 응답을 기본적으로 포함하는 결합 응답을 기다리고 있을 것이다. 만일, 되돌아온 결합 응답이 수정된 개입 코히어런시 응답이면, 처리 장치(21)은 L2 캐쉬로부터 요청된 데이타를 공급하기 시작할 것이다. 만일, 처리 장치(20) 및/또는 처리 장치(22)가 어떠한 다른 이유로 재시도를 요청하면, 설정된 개입 프로토콜 하에서, 데이타 공급은 재시도에 양보해야만 한다.(즉, 공급 시퀀스는 진행되지 않을 것이다) 예를 들어, 처리 장치(22)는 탐지 큐 비지 상태(snoop queue busy condition)에 있을 것이다.
만일, 탐지 동작(snoop action)이 개시된 후에 처리 장치(21)의 L2 캐쉬 내의 데이타가 수정되지 않았거나 L1 캐쉬 내에 있지 않다면, 처리 장치(21)은 시스템 버스 중재자(system bus arbiter)에게 시스템 버스 요청을 낼 것이다.(통상, 요청된 데이타가 L2 캐쉬 컨트롤러에 의해 버퍼 내로 판독되어야 시스템 버스 요청이 개시될 수 있다) 그렇지 않다면, 처리 장치(21) 내의 L1 캐쉬는 플러슁(flushing)되고 무효화(invalidate)될 것이다.(즉, L1 캐쉬는 임의의 수정된 데이타를 L2 캐쉬로 "푸시"하고 L1 캐쉬 내의 사본을 무효화하도록 강제될 것이다) 그러나, 만일, 처리 장치(21)의 L1 캐쉬가 "공유된" 상태에 있다면, 어떠한 데이타 버스 요청이 이루어지기 전에 단지 L1 캐쉬에 대한 무효화가 요청될 뿐이다.
다음으로, 처리 장치(21)은 시스템 버스 사용 허가(system bus grant)가 돌아올 때까지 기다릴 것이다. I/O 장치(24)로의 실제적인 데이타 공급은 데이타 버스 사용 허가가 수신된 후에 시작될 것이다. 일단, 공급이 완료되면, 처리 장치(21)의 L2 캐쉬는 판독 요청에 대해서는 "수정된" 상태에서 "공유된" 상태로, RWITM 요청에 대해서는 "수정된" 상태에서 "무효" 상태로 변경될 것이다. 처리 장치(20 및 22)의 L2 캐쉬에서는 상태 변화가 없다.
도 3을 참조하면, 본 발명의 양호한 실시예에 따라, 데이타 처리 시스템 내의 처리 장치로부터 I/O 장치로 캐쉬 메모리 데이타를 추론적으로 공급하기 위한 고수준 논리도가 도시되어 있다. 블럭(30)에서 시작해서, 블럭(31)에 도시된 바와 같이, 판독/RWITM 요청이 시스템 내의 모든 처리 장치에 의해 시스템 버스로부터 탐지된다. 블럭(32)에 도시된 바와 같이, 요청된 데이타가 L2 캐쉬 내에 존재하는지의 여부를 결정하기 위해 각각의 처리 장치에 의해 L2 캐쉬 디렉토리 조사가 수행된다. 블럭(33)에 도시된 바와 같이, [도 2의 처리 장치(20 및 22)처럼] 요청된 데이타를 가지고 있지 않은 모든 처리 장치에 의해 널 코히어런시 응답이 발생될 것이다. 반면, 블럭(34)에 도시된 바와 같이, [도 2의 처리 장치(21)처럼] 요청된 데이타를 가지고 있는 처리 장치에 의해 간섭 코히어런시 응답이 발생될 것이다.
개입 코히어런시 응답의 발생 후에, 블럭(35)에 도시된 바와 같이, 개입 처리 장치는 소정의 캐쉬 관리 작업을 수행해야만 한다. 이들 작업은, 만일, L1 캐쉬 내의 데이타 복사본이 수정되었다면, 개입 처리 장치의 L1 캐쉬 내의 데이타 복사본을 플러슁 및 무효화하는 것을 포함하고, L1 캐쉬 내의 데이타 복사본이 수정되지 않았다면, 개입 처리 장치의 L1 캐쉬 내의 데이타 복사본을 단순히 무효화시키는 것을 포함한다.
후속해서, 요청된 데이타는 개입 처리 장치의 L2 캐쉬로부터 양호하게는 버퍼로 판독되고, 블럭(36)에 도시된 바와 같이, 시스템 데이타 버스에 대한 요청이 시스템 버스 개입자에게 주어진다. 블럭(37)에 도시된 바와 같이, 시스템 데이타 버스 사용이 허가되었는지의 여부에 관한 판별이 이루어진다. 만일, 시스템 데이타 버스 사용이 허가되지 않았다면, 블럭(38)에 도시된 바와 같이, 결합 코히어런시 응답이 아직 되돌아오지 않았는지에 관한 또 다른 판별이 이루어진다. 만일, 결합된 코히어런시 응답이 되돌아 오지 않았다면, 프로세스는 블럭(37)로 되돌아간다.
그러나, 만일, 시스템 버스 사용이 허가되었다면, 블럭(39)에 도시된 바와 같이, 요청된 데이타를 시스템 버스로 밀어냄으로써 개입 처리에 의한 요청된 데이타의 공급이 개시된다. 블럭(40)에 도시된 바와 같이, 결합 코히어런시 응답이 이 시점에서 이미 돌아왔는지에 관한 또 다른 결정이 이루어진다. 만일, 결합 코히어런시 응답이 아직 되돌아오지 않았다면, 처리는 시스템 버스로 요청된 데이타를 계속 공급하면서 결합된 코히어런시 응답이 되돌아올 때까지 계속 기다릴 것이다.
결합 코히어런시 응답이 되돌아 온 후에, 블럭(41)에 도시된 바와 같이, 결합 코히어런시 응답이 "재시도"인지에 관한 판별이 이루어진다. 만일, 결합 코히어런시 응답이 재시도일 경우, 시스템 버스의 사용이 아직 허가되지 않았다면, 블럭(36)으로부터의 시스템 버스 요청은 취소되거나, 요청된 데이타의 공급이 블럭(42)에 도시된 바와 같이 즉시 중지될 것이다. 이 시점에서 데이타 공급이 이미 완료되었더라도, 결과는 재시도 코히어런시 응답으로 인해 버려질 것이다. 그렇지 않고, 만일 결합된 코히어런시 응답이 재시도가 아니라면, 요청된 데이타의 공급은, 만일 데이타 공급이 완료되지 않았다면, 완료될 때까지 계속될 것이다. 마지막으로, 블럭(43)에 도시된 바와 같이, 이에 따라 개입 처리 장치 내의 L2 캐쉬의 상태가 갱신되고, 처리는 블럭(99)에서 종료한다.
상술한 바와 같이, 본 발명은 데이타 처리 시스템 내의 처리 장치로부터 지능형 I/O 장치로 캐쉬 메모리 데이타를 추론적으로 공급하기 위한 방법을 제공한다. 상세하게는, 본 발명은 요청된 데이타가, 결합 코히어런시 응답이 되돌아오기 전에, 개입 처리 장치의 L2 캐쉬로부터 판독되는 신규한 개입 방식의 구현을 제공한다.
본 발명은, 시스템 버스 상의 판독/RWITM 요청과 결합 응답의 샘플링간의 지연은 몇 개의 시스템 클럭 버스 싸이클일 수 있기 때문에, 종래 기술에 비해 명백한 성능상의 잇점을 제공한다. 따라서, 요청된 데이타가 결합된 코히어런시 응답이 수신되기 전에 개입 처리 장치의 L2 캐쉬로부터 판독되도록 허용함으로써, 개입 레이턴시(latency)가 상당히 감소되고, 전체 시스템 성능이 상당히 개선된다.
본 발명이 양호한 실시예를 참조하여 상세히 기술되었지만, 형식과 세부 사항에 있어서 다양한 변화가 본 발명의 진정한 정신과 영역으로부터 벗어나지 않고 당업자에 의해 만들어질 수 있음을 이해할 수 있을 것이다.
따라서, 앞서 언급한 사실들로부터, 캐쉬 메모리 데이타를 공유하기 위한 개선된 방법과 시스템을 제공하며, 데이타 처리 시스템 내의 처리 장치와 I/O 장치들 간에 캐쉬 메모리 데이타를 공유하기 위한 개선된 방법과 시스템을 제공된다.

Claims (16)

  1. 데이타 처리 시스템 내의 최소한 하나의 캐쉬 메모리를 갖는 처리 장치로부터 지능형 I/O 장치로 캐쉬 메모리 데이타를 추론적으로 공급하기 위한 방법에 있어서, 상기 데이타 처리 시스템 내의 상기 지능형 I/O 장치에 의한 데이타 요청에 응답하여, 상기 요청된 데이타를 갖는 처리 장치가 개입 응답(intervention response)을 내는 단계 및 상기 데이타 처리 장치 시스템 내의 모든 데아타 처리 장치로부터의 결합 응답이 상기 처리 장치로 되돌아오기 전에 상기 처리 장치 내의 캐쉬 메모리로부터 상기 요청된 데이타를 판독하는 판독 단계를 포함하는 것을 특징으로 하는 데이타 처리 시스템 내의 최소한 하나의 캐쉬 메모리를 갖는 처리 장치로부터 지능형 I/O 장치로 캐쉬 메모리 데이타를 추론적으로 공급하기 위한 방법.
  2. 제 1항에 있어서, 상기 판독 단계는 캐쉬 컨트롤러에 의해 상기 처리 장치 내의 캐쉬 메모리로부터 상기 요청된 데이타를 판독하는 단계를 더 포함하는 것을 특징으로 하는 데이타 처리 시스템 내의 최소한 하나의 캐쉬 메모리를 갖는 처리 장치로부터 지능형 I/O 장치로 캐쉬 메모리 데이타를 추론적으로 공급하기 위한 방법.
  3. 제 1항에 있어서, 상기 판독 단계는 상기 처리 장치 내의 캐쉬 메모리로부터 버퍼로 상기 요청된 데이타를 읽어들이는 단계를 더 포함하는 것을 특징으로 하는 데이타 처리 시스템 내의 최소한 하나의 캐쉬 메모리를 갖는 처리 장치로부터 지능형 I/O 장치로 캐쉬 메모리 데이타를 추론적으로 공급하기 위한 방법.
  4. 제 1항에 있어서, 상기 데이타 요청은 판독 요청 또는 수정 목적의 판독 요청을 포함하는 것을 특징으로 하는 데이타 처리 시스템 내의 최소한 하나의 캐쉬 메모리를 갖는 처리 장치로부터 지능형 I/O 장치로 캐쉬 메모리 데이타를 추론적으로 공급하기 위한 방법.
  5. 제 1항에 있어서, 상기 개입 응답은 수정된 개입 응답(modified intervention response)이거나 공유된 개입 응답(shared intervention response)인 것을 특징으로 하는 데이타 처리 시스템 내의 최소한 하나의 캐쉬 메모리를 갖는 처리 장치로부터 지능형 I/O 장치로 캐쉬 메모리 데이타를 추론적으로 공급하기 위한 방법.
  6. 제 1항에 있어서, 상기 되돌아온 결합 응답이 재시도이면, 상기 판독 단계를 중지하는 단계를 더 포함하는 것을 특징으로 하는 데이타 처리 시스템 내의 최소한 하나의 캐쉬 메모리를 갖는 처리 장치로부터 지능형 I/O 장치로 캐쉬 메모리 데이타를 추론적으로 공급하기 위한 방법.
  7. 제 1항에 있어서, 상기 결합 응답의 리턴 이전에 상기 요청된 데이타를 공급하도록 상기 처리 장치가 시스템 버스 사용을 요청하는 단계를 더 포함하는 것을 특징으로 하는 데이타 처리 시스템 내의 최소한 하나의 캐쉬 메모리를 갖는 처리 장치로부터 지능형 I/O 장치로 캐쉬 메모리 데이타를 추론적으로 공급하기 위한 방법.
  8. 제 7항에 있어서, 상기 결합 응답의 리턴 이전에 상기 처리 장치가 상기 요청된 데이타를 공급하는 단계를 더 포함하는 것을 특징으로 하는 데이타 처리 시스템 내의 최소한 하나의 캐쉬 메모리를 갖는 처리 장치로부터 지능형 I/O 장치로 캐쉬 메모리 데이타를 추론적으로 공급하기 위한 방법.
  9. 데이타 처리 시스템 내의 지능형 I/O 장치로 데이타를 추론적으로 공급할 수 있는 캐쉬 메모리를 갖는 처리 장치에 있어서, 상기 데이타 처리 시스템 내의 상기 지능형 I/O 장치에 의한 데이타 요청에 응답하여, 상기 데이타 처리 시스템 내의 상기 요청된 데이타를 갖는 처리 장치로부터 개입 응답을 발생시키기 위한 수단 및 모든 처리 장치로부터의 결합 응답이 상기 처리 장치로 되돌아오기 전에 상기 처리 장치 내의 캐쉬 메모리로부터 상기 요청된 데이타를 판독하기 위한 판독 수단을 포함하는 것을 특징으로 하는 데이타 처리 시스템 내의 지능형 I/O 장치로 데이타를 추론적으로 공급할 수 있는 캐쉬 메모리를 갖는 처리 장치.
  10. 제 9항에 있어서, 상기 판독 수단은 캐쉬 컨트롤러인 것을 특징으로 하는 데이타 처리 시스템 내의 지능형 I/O 장치로 데이타를 추론적으로 공급할 수 있는 캐쉬 메모리를 갖는 처리 장치.
  11. 제 9항에 있어서, 상기 판독 수단은 상기 처리 장치 내의 캐쉬 메모리로부터 버퍼 내로 상기 요청된 데이타를 읽어들이기 위한 수단을 더 포함하는 것을 특징으로 하는 데이타 처리 시스템 내의 지능형 I/O 장치로 데이타를 추론적으로 공급할 수 있는 캐쉬 메모리를 갖는 처리 장치.
  12. 제 9항에 있어서, 상기 데이타 요청은 판독 요청 또는 수정 목적의 판독 요청을 포함하는 것을 특징으로 하는 데이타 처리 시스템 내의 지능형 I/O 장치로 데이타를 추론적으로 공급할 수 있는 캐쉬 메모리를 갖는 처리 장치.
  13. 제 9항에 있어서, 상기 처리 장치로부터의 상기 개입 응답은 수정된 개입 응답이거나 공유된 개입 응답인 것을 특징으로 하는 데이타 처리 시스템 내의 지능형 I/O 장치로 데이타를 추론적으로 공급할 수 있는 캐쉬 메모리를 갖는 처리 장치.
  14. 제 9항에 있어서, 상기 되돌아온 결합 응답이 재시도이면 상기 판독 수단에 의한 상기 판독을 중지하기 위한 수단을 더 포함하는 것을 특징으로 하는 데이타 처리 시스템 내의 지능형 I/O 장치로 데이타를 추론적으로 공급할 수 있는 캐쉬 메모리를 갖는 처리 장치.
  15. 제 9항에 있어서, 상기 처리 장치는 상기 결합 응답의 리턴 이전에 상기 처리 장치가 상기 요청된 데이타를 공급하도록 시스템 버스 사용을 요청하기 위한 수단을 더 포함하는 것을 특징으로 하는 데이타 처리 시스템 내의 지능형 I/O 장치로 데이타를 추론적으로 공급할 수 있는 캐쉬 메모리를 갖는 처리 장치.
  16. 제 15항에 있어서, 상기 결합 응답의 리턴 이전에 상기 처리 장치에 의해 상기 요청된 데이타를 공급하는 수단을 더 포함하는 것을 특징으로 하는 데이타 처리 시스템 내의 지능형 I/O 장치로 데이타를 추론적으로 공급할 수 있는 캐쉬 메모리를 갖는 처리 장치.
KR1019980001384A 1997-04-14 1998-01-19 데이타 처리 시스템 내의 캐쉬 메모리 데이타를 추론적으로공급하기 위한 방법 및 장치 KR100277446B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US83411797A 1997-04-14 1997-04-14
US8/834,117 1997-04-14

Publications (2)

Publication Number Publication Date
KR19980079625A KR19980079625A (ko) 1998-11-25
KR100277446B1 true KR100277446B1 (ko) 2001-01-15

Family

ID=25266163

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980001384A KR100277446B1 (ko) 1997-04-14 1998-01-19 데이타 처리 시스템 내의 캐쉬 메모리 데이타를 추론적으로공급하기 위한 방법 및 장치

Country Status (6)

Country Link
JP (1) JPH10301851A (ko)
KR (1) KR100277446B1 (ko)
CN (1) CN1110755C (ko)
CA (1) CA2231361A1 (ko)
SG (1) SG68034A1 (ko)
TW (1) TW386192B (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW480404B (en) * 1999-08-31 2002-03-21 Ibm Memory card with signal processing element
JP5082479B2 (ja) * 2007-02-08 2012-11-28 日本電気株式会社 データ一貫性制御システム及びデータ一貫性制御方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0349123B1 (en) * 1988-06-27 1995-09-20 Digital Equipment Corporation Multi-processor computer systems having shared memory and private cache memories
US5191649A (en) * 1990-12-21 1993-03-02 Intel Corporation Multiprocessor computer system with data bus and ordered and out-of-order split data transactions
US5572702A (en) * 1994-02-28 1996-11-05 Intel Corporation Method and apparatus for supporting read, write, and invalidation operations to memory which maintain cache consistency
US5613153A (en) * 1994-10-03 1997-03-18 International Business Machines Corporation Coherency and synchronization mechanisms for I/O channel controllers in a data processing system
US5581729A (en) * 1995-03-31 1996-12-03 Sun Microsystems, Inc. Parallelized coherent read and writeback transaction processing system for use in a packet switched cache coherent multiprocessor system

Also Published As

Publication number Publication date
JPH10301851A (ja) 1998-11-13
KR19980079625A (ko) 1998-11-25
TW386192B (en) 2000-04-01
CN1197956A (zh) 1998-11-04
SG68034A1 (en) 1999-10-19
CN1110755C (zh) 2003-06-04
CA2231361A1 (en) 1998-10-14

Similar Documents

Publication Publication Date Title
US6070231A (en) Method and apparatus for processing memory requests that require coherency transactions
EP0735480B1 (en) Cache coherent computer system that minimizes invalidation and copyback operations
US6141733A (en) Cache coherency protocol with independent implementation of optimized cache operations
JP3644587B2 (ja) 共用介入サポートを有する不均等メモリ・アクセス(numa)・データ処理システム
US6625698B2 (en) Method and apparatus for controlling memory storage locks based on cache line ownership
US5623632A (en) System and method for improving multilevel cache performance in a multiprocessing system
US6145059A (en) Cache coherency protocols with posted operations and tagged coherency states
US7284097B2 (en) Modified-invalid cache state to reduce cache-to-cache data transfer operations for speculatively-issued full cache line writes
US9170946B2 (en) Directory cache supporting non-atomic input/output operations
US6330643B1 (en) Cache coherency protocols with global and local posted operations
US5987549A (en) Method and apparatus providing short latency round-robin arbitration for access to a shared resource
US7577794B2 (en) Low latency coherency protocol for a multi-chip multiprocessor system
US5895484A (en) Method and system for speculatively accessing cache memory data within a multiprocessor data-processing system using a cache controller
JP3635634B2 (ja) データを転送するための推論的アービトレーション(Speculative Arbitration)を提供するシステムと方法
JPH09138779A (ja) スヌープ処理方法
JP2001522091A (ja) メモリ最適化状態
US5263144A (en) Method and apparatus for sharing data between processors in a computer system
US6418514B1 (en) Removal of posted operations from cache operations queue
US8332592B2 (en) Graphics processor with snoop filter
US20080109610A1 (en) Selective snooping by snoop masters to locate updated data
US5987544A (en) System interface protocol with optional module cache
US5924118A (en) Method and system for speculatively sourcing cache memory data prior to upstream cache invalidation within a multiprocessor data-processing system
JP3550092B2 (ja) キャッシュ装置及び制御方法
US6345340B1 (en) Cache coherency protocol with ambiguous state for posted operations
US6055608A (en) Method and system for speculatively sourcing cache memory data within a multiprocessor data-processing system

Legal Events

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

Payment date: 20080930

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee