KR19990072600A - 재실행스누프히트시의순방향진행수행방법및시스템 - Google Patents

재실행스누프히트시의순방향진행수행방법및시스템 Download PDF

Info

Publication number
KR19990072600A
KR19990072600A KR1019990004884A KR19990004884A KR19990072600A KR 19990072600 A KR19990072600 A KR 19990072600A KR 1019990004884 A KR1019990004884 A KR 1019990004884A KR 19990004884 A KR19990004884 A KR 19990004884A KR 19990072600 A KR19990072600 A KR 19990072600A
Authority
KR
South Korea
Prior art keywords
state
intervention
storage device
data item
data
Prior art date
Application number
KR1019990004884A
Other languages
English (en)
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 KR19990072600A publication Critical patent/KR19990072600A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • 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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은 재실행 스누프 히트시의 순방향 진행 수행 방법 및 시스템에 관한 것이다. 멀티프로세서 시스템의 시스템 버스를 스누핑하는 장치가 이 장치로부터 데이터가 제공되는 것을 요구하는 소정의 일관성 상태에 있는 로컬 메모리 내에 존재하는 데이터를 요구하는 동작을 검출하는 경우, 이 장치는 개입을 시도한다. 개입이 재실행을 주장하는 제 2 장치에 의해 방해를 받는 경우, 장치는 실패한 개입에 관한 히스토리 정보를 제공하도록 플래그를 설정한다. 동일 캐시 위치에 대한 후속 스누프 히트시 장치가 개입을 다시 주장하고 스누핑된 동작이 다시 재실행되는 경우, 장치는 캐시 항목을 요구하는 초기 동작의 결과에 해당 되도록 예상되는 최종 일관성 상태를 향해 요구 캐시 항목의 일관성 상태를 수정하도록 동작을 시작한다. 요구 캐시 항목이 장치의 로컬 메모리 내에 존재하는 수정 데이터를 포함하는 경우, 동작은 요구 캐시 항목을 시스템 메모리에 기록하는 푸쉬 동작을 포함할 수 있다. 이러한 푸쉬 동작은 시스템 버스로부터 다른 장치에 의해 스누핑되어 다른 장치의 로컬 메모리를 갱신할 수 있다. 요구 캐시 항목이 수정 상태가 아닌 소정의 일관성 상태에 있는 데이터를 포함하는 경우, 동작은 단순히 일관성 상태를 공유 또는 무효 상태로 수정하는 것을 포함할 수 있다. 초기 동작이 판독 동작인 경우, 캐시 상태의 전이는 공유 상태로 종료되는 시퀀스를 따라 진행한다. 초기 동작이 수정을 의도하는 판독과 같이 요구 캐시 항목을 수정하기 위한 의도의 표시를 포함하는 경우, 일관성 상태 전이는 무효 상태로 종료하는 시퀀스를 따라 진행한다. 단일 실패 개입(single failed intervention)을 반영하는 플래그 대신 카운터가 가능한 지속 로크가 발생되었다는 것을 표시하는 임계 개수의 실패 개입이 초과된 시점을 결정하는데 사용될 수 있다.

Description

재실행 스누프 히트시의 순방향 진행 수행 방법 및 시스템 {FORWARD PROGRESS ON RETRIED SNOOP HITS}
본 발명은 멀티프로세서 시스템 내의 스누프 동작(snoop operation)에 관한 것으로, 구체적으로는 멀티프로세서 시스템 내의 하나의 장치에 의해 개시되며, 다른 장치에 의해 재실행되는 스누프 동작에 관한 것이다. 더욱 구체적으로, 본 발명은 다른 트래픽(traffic)이 진행되도록 지속 로크(livelock)의 가능성을 줄이도록 하기 위해 스누프 동작의 재실행시 최종 상태를 향해 순방향 진행을 수행하기 위한 방법 및 시스템에 관한 것이다.
기존의 데이터 처리 시스템은 멀티프로세서, 다중레벨 캐시 계층 구조(multilevel cache hierarchy), 또는 이 두가지를 모두 사용하여 성능을 향상시킨다. 종래의 대칭형 멀티프로세서(symmetric multiprocessor: SMP) 시스템은 여러 가지 처리 요소를 사용하는데, 이 처리 요소는 시스템 공통 버스를 통해 연결되는 소정의 프로세서 및 하나 이상 레벨의 캐시 메모리를 포함하는데, 시스템의 공통 버스는 또한 처리 요소들을 임의의 또다른 캐시 메모리 및 시스템 메모리에 결합시킨다. 상기 SMP 시스템에서, 각 처리 요소는 계층적 저장 장치에 영향을 주는 버스 동작을 개시하는 시스템 버스 마스터로서 동작할 수 있다. 계층적 저장 장치 내의 추가적인 캐시용 캐시 제어기는 또한 시스템 버스 마스터로서 동작할 수 있으며, 이 시스템 버스에 연결되는 다른 장치에 의해 개시되는 버스 동작을 스누핑할 수 있다. 또한 다른 여러 장치들도 일관성 메모리 계층 구조를 유지하기 위해 스누핑된 버스 동작에 개입(intervention)할 수 있다.
계층적 저장 장치의 일관성은 MESI 프로토콜과 같은 소정의 메모리 일관성 프로토콜을 사용함으로써 유지된다. MESI 프로토콜에서, 일관성 상태의 표시는 적어도 모든 최상위 레벨 캐시 메모리의 (예를 들어 캐시 라인 또는 섹터와 같은) 각 일관성 그래뉼(granule)과 결합하여 저장된다. 캐시 디렉토리 내에서 비트로 표시되는 일관성 상태는 시스템 메모리 내에 저장되는 동일한 데이터에 대한 캐시 엔트리의 조건, 즉 기본 MESI 일관성 프로토콜 내의 수정(modified: M), 배타(exclusive: E), 공유(shared: S) 또는 무효(invalid: I)를 나타낸다. 수정 상태 (M)는 데이터의 유효한 카피만이 수정 캐시 라인 또는 섹터를 저장하는 캐시 엔트리 내에 존재하도록 캐시 데이터가 시스템 메모리 데이터를 수정함이 없이 시스템 메모리 내의 대응 데이터에 대해 수정되었다는 것을 표시한다. 배타 상태(E)는 캐시 엔트리가 시스템 메모리와 일치하지만 대상 캐시 내의 상기 레벨의 계층적 저장 장치의 모든 캐시 내에서만 발견된다는 것을 표시한다. 공유 상태(S)는 캐시 엔트리가 대상 캐쉬와 함께 계층적 저장 장치 내의 동일한 레벨에 있는 적어도 하나의 다른 캐시 내에서 발견될 수 있으며, 데이터의 모든 카피가 시스템 메모리 내의 대응 데이터와 일치한다는 것을 표시한다. 마지막으로, 무효 상태는 소정 캐시 내의 캐시 엔트리―데이터 및 어드레스 태그(tag)―가 계층적 저장 장치 내의 시스템 메모리 또는 다른 캐시 양자와 더 이상 일관성을 갖지 않는다는 것을 표시한다.
기본 MESI 프로토콜의 수정은―캐시 디렉토리 내의 추가적인 오버 헤드(overhead) 비트가 필요함―시스템 메모리 내의 대응 데이터와 비교할 때 캐시 데이터의 조건에 관한 다른 정보를 운반하는 추가적인 상태를 추가할 수 있다. 예를 들어, R-MESI 프로토콜은 캐시 엔트리가 대상 캐시와 계층적 저장 장치 내의 동일한 레벨의 적어도 하나의 다른 캐시 내에서 발견될 수 있다는 것과 대상 캐시 및 다른 캐시 내에 있는 데이터의 모든 카피가 시스템 메모리 내의 대응 데이터와 일치한다는 것을 표시하지만, 또한 공유 데이터를 포함하는 모든 캐시 중 대상 캐시가 시스템 메모리로부터의 판독과 같은 시스템 버스 트랜잭션(transaction) 내의 데이터를 가장 최근에 수신했다는 것을 표시하는, 기본적으로는 공유 상태의 변형인 최근(recent: R) 상태를 추가한다. R 상태는 본 명세서에 참조되어 본 발명의 일부를 이루는 미국 특허 출원 번호 제08/839,557호에 더욱 자세히 기술되어 있다. 기본 MESI 일관성 프로토콜에 추가될 수 있는 또다른 추가적인 일관성 상태는 호버링(hovering: H) 상태인데, 이 호버링 상태는 캐시 엔트리의 태그 필드 내에 저장되는 어드레스 태그가 유효하지만 (예를 들어 캐시 라인 또는 캐시 섹터와 같은) 연관 데이터 항목은 무효라는 것을 표시한다. H 상태는 본 명세서에 참조되어 본 발명의 일부를 이루는 미국 특허 출원 번호 제_______호(서류 번호 제AT9-97-410)에 더욱 상세히 기술되어 있다.
프로세서 및 캐시 제어기와 같은 장치는 계층적 저장 장치 내의 데이터 완전성(data integrity)을 보존하기 위해 스누핑되는 버스 동작에 개입(intervene)할 수 있다. 예를 들어, 하나의 장치가 수정 상태에 있는 제2 장치 내에 존재하는 특정된 데이터용 판독 요구 또는 수정 의도를 갖는 판독(read with intent to modify: rwitm) 요구를 개시하면, 제2 장치는 수정된 데이터를 요구 장치로 제공(sourcing)하기 위해 버스 동작에 개입한다("수정 개입;modified intervention"). 마찬가지로, 판독 또는 rwitm 버스 동작에 의해 요구되는 데이터가 최근 상태(recent state)에 있는 장치 내에 존재하는 경우, 장치는 요구 데이터에 개입한다("공유 개입;shared intervention"). 양자의 경우, 개입된 스누핑 장치는 ("스누프 히트;snoop hit"로 불리우는) 판독 또는 rwitm 요구에 응답하도록 결정한다. 그러나, 어느 경우에도, 시스템 버스 트랜잭션을 스누핑하고 있는 제3 장치가 요구 및 응답 개입 양자를 효과적으로 제거하는 초기 버스 동작을 재실행할 수 있다.
현재 설계에서, 개입은 판독 또는 rwitm 요구가 재실행되는 경우, 일관성 상태의 수정없이 통상적으로 개입이 중지되며 개입 장치는 요구가 재실행되는 것을 중지하는 경우 데이터를 제공한다. 따라서, 처리 자원이 재실행되는 스누프 히트에 의해 효과적으로 소비되고, 그 결과 최초 요구의 궁극적인 목적이었던 데이터 전송을 달성하는 방향으로 진행되지 않는다. 또한, 일부의 경우, 패턴은 요구가 재실행되도록 하는 환경의 어떠한 변화도 없이 반복적으로 개시되며 반복적으로 재실행되는 판독 또는 rwitm 요구를 발생할 수 있다. "지속 로크(livelock)"로 불리우는 이러한 경우에는 두 개 이상의 시스템 장치가 서로 간섭(interference)하여 유용한 작업을 달성할 수 없게 한다. 무한 루프의 경우와 마찬가지로, 지속 로크는 통상적으로 외부 조정(intercession)에 의해 해소되어야 한다.
따라서, 재실행되는 버스 동작의 최종 도출(resolution)을 향해 재실행 스누프 히트시 진행을 수행시키기 위한 메카니즘을 제공하는 것이 바람직하다. 또한, 상기 메카니즘이 지속 로크를 방지하는데 도움을 주며 다른 스누프 동작에 대한 스누프 큐(snoop queue)를 자유롭게 하는 것이 바람직하다.
본 발명의 하나의 목적은 멀티프로세서 시스템 내의 스누프 동작을 핸들링하기 위한 개선된 방법 및 장치를 제공하는 것이다.
본 발명의 다른 목적은 멀티프로세서 시스템 내에서 하나의 장치에 의해 개시되며 다른 장치에 의해 재실행되는 스누프 동작을 핸들링하기 위한 개선된 방법 및 장치를 제공하는 것이다.
본 발명의 또 다른 목적은 다른 트래픽이 진행되되도록 하여 지속 로크의 가능성을 감소시키기 위해 재실행 스누프 동작시 최종 상태를 향해 순방향 진행을 수행시키기 위한 방법 및 장치를 제공하는 것이다.
도 1은 본 발명의 바람직한 실시예에 따른 멀티프로세서 데이터 처리 시스템을 도시하는 도면.
도 2 및 도 2a 내지 도 2c는 본 발명의 바람직한 실시예에 따라 대안적인 여러 가지 일관성 상태 전이를 포함하며, 재실행 스누프 히트시 순방향 진행을 수행하기 위한 메카니즘의 논리적 블록 다이어그램.
도 3은 본 발명의 바람직한 실시예에 따른 재실행 개입에 응답하는 프로세스에 대한 상위 레벨 플로우차트.
상기 목적은 이하에 기술되는 바와 같이 달성된다. 멀티프로세서 시스템의 시스템 버스를 스누핑하는 본 발명의 장치가 자신으로부터 제공될 데이터를 요구하는 일관성 상태에 있는 로컬 메모리 내에 존재하는 데이터를 요구하는 동작을 검출하는 경우, 본 발명의 장치는 개입을 시도한다. 개입이 재실행을 주장하는 제2 장치에 의해 방해받는 경우, 본 발명의 장치는 플래그를 설정하여 실패한 개입에 대한 히스토리 정보를 제공한다. 동일한 캐시 위치에 대한 후속 스누프 히트시, 본 발명의 장치가 다시 개입을 주장하고 스누핑된 동작이 다시 재실행되는 경우, 본 발명의 장치는 동작을 시작하여 요구된 캐시 항목의 일관성 상태를 캐시 항목을 요구하는 초기 동작의 결과에 해당될 것으로 예상되는 최종 일관성 상태 방향으로 수정한다. 요구 캐시 항목이 본 발명 장치의 로컬 메모리 내에 존재하는 수정 데이터를 포함하는 경우, 동작은 요구 캐시 항목을 시스템 메모리로 기록하는 푸쉬 동작(push operation)을 포함할 수 있다. 이러한 동작은 시스템 버스로부터 다른 장치에 의해 스누핑되어 다른 장치의 로컬 메모리를 갱신할 수 있다. 요구 캐시 항목이 수정 상태가 아닌 소정의 일관성 상태에 있는 데이터를 포함하는 경우, 상기 동작은 일관성 상태를 단순히 공유 또는 무효 상태로 수정하는 것을 포함할 수 있다. 초기 동작이 판독 동작인 경우, 캐시 상태의 전이는 공유 상태로 종료되는 시퀀스를 따라 진행한다. 초기 동작이 수정 의도를 갖는 판독과 같은 요구된 캐시 항목을 수정하기 위한 의도의 표시를 포함하는 경우, 일관성 상태 전이는 무효 상태로 종료되는 시퀀스를 따라 진행한다. 단일 실패 개입(single failed intervention)를 반영하는 플래그 대신 카운터가 가능한 지속 로크가 발생되었다는 것을 표시하는, 임계 개수의 실패 개입이 초과된 시점을 결정하는데 사용될 수 있다.
본 발명의 상기 목적과 추가적인 목적, 특징 및 장점은 다음의 상세한 설명에서 명백해질 것이다.
본 발명의 특징으로 생각되는 신규 특징은 첨부된 클레임에 기술되어 있다. 그러나, 본 발명의 사용시 바람직한 모드, 추가적인 목적 및 장점과 본 발명 자체는 첨부된 도면과 예시적인 실시예에 대한 이하의 상세한 설명을 참조하여 가장 잘 이해할 수 있을 것이다.
도 1은 본 발명의 바람직한 실시예에 따른 멀티프로세서 데이터 처리 시스템을 도시한다. 데이터 처리 시스템(100)은 복수개의 프로세서(102, 104 및 105)를 포함하는 대칭형 멀티프로세서(symmetric multiprocessor: SMP) 시스템으로, 복수개의 프로세서(102, 104 및 105)는 바람직하게는 뉴욕주 아몽크에 소재한 IBM사로부터 입수 가능한 PowerPCTM패밀리 중 하나를 포함한다. 예시된 실시예에는 단지 2개의 프로세서만 도시하였으나, 본 기술 분야의 당업자라면 본 발명에 따른 멀티프로세서 데이터 처리 시스템에 별도의 프로세서가 추가로 사용될 수 있다는 것을 이해할 수 있을 것이다.
각 프로세서(102, 104 및 105)는 각각 레벨 1(L1) 데이터 캐시(106, 108 및 109)를 포함하며, 각각 L1 인스트럭션 캐시(110, 112 및 113)를 각각 포함한다. 예시된 실시예에서는 분기된 인스트럭션 캐시 및 데이터 캐시로 설명되어 있으나, 본 기술 분야의 당업자라면 단일의 통합된 캐시를 구현할 수 있다는 것을 인식할 수 있다. 데이터 액세스 대기 시간을 최소화하기 위해 레벨 2(L2) 캐시(114, 116 및 118)와 같은 하나 이상의 추가적인 캐시 메모리 레벨이 데이터 처리 시스템(100) 내에서 구현될 수 있다. 하위 캐시 레벨―L2 캐시(114, 116 및 118) 및 그 하위 캐쉬―은 데이터를 L1 캐시로 스태이징(stage)하는데 사용되고, 통상 하위 레벨로 갈수록 더 큰 저장 용량을 가지나 액세스 대기 시간은 더 길어진다. 예를 들어, 데이터 캐시(106, 108 및 109)와 인스트럭션 캐시(110, 112 및 113)는 각각 32KB의 저장 용량과 대략 1-2 프로세서 주기의 액세스 대기 시간을 가질 수 있다. L2 캐시(114, 116 및 118)는 512KB의 저장 용량을 가지나 5 프로세서 주기의 액세스 대기 시간을 가지는 반면, 레벨 3(L3) 캐시는 4MB의 저장 용량을 가지나 15 프로세서 주기 이상의 액세스 대기 시간을 가질 수 있다. 따라서, L2 캐시(114, 116 및 118)는 프로세서(102, 104 및 105) 및 시스템 메모리(120) 사이에서 중간 저장 장치의 역할을 한다. 시스템 메모리(12)은 통상 매우 큰 저장 용량 가지지만 그 액세스 대기 시간은 50 프로세서 주기 이상을 가질 수 있다.
데이터 처리 시스템(100)에 사용된 캐시 계층 구조의 레벨 수와 캐시 계층 구조 구성 양자를 변화시킬 수 있다. 상기 실시예에서 보여진 L2 캐시(114, 116 및 118)은 (시스템 버스(122)를 통해) 각자의 프로세서(102, 104 및 105)와 시스템 메모리(120) 사이에 연결된 전용 캐시(dedicated cache)이다. L3 캐시는 L2 캐시(114, 116 및 118)와 논리적으로 수직인 룩어사이드(lookaside) 캐시일 수 있다. 그 결과, L3 캐시가 히트(hit)를 발생하는 동안 L2 캐시(114, 116 또는 118) 각각이 미스를 발생하여 데이터 또는 인스트럭션이 L3 캐시에서만 검색되더라도, 데이터 또는 인스트력션은 L2 캐시(114, 116 및 118) 중 하나와 대응 L3 캐시(도시되지 않음)에서 동시에 탐색(look up)될 수 있다. 본 기술 분야의 당업자는 도시된 레벨과 구성이 다양하게 변경될 수 있다는 것을 이해할 것이다.
L2 캐시(114, 116 및 118)는 시스템 버스(122)를 통해 시스템 메모리(120)에 연결되어 있다. 또한, 디스플레이(도시되지 않음)용 연결을 제공하는 그래픽 어댑터와 같은 메모리 맵 장치(memory mapped device)(124)와 입출력(input/output: I/O) 버스 브리지(bridge)(126)도 시스템 버스(122)에 연결될 수 있다. I/O 버스 브리지(126)는 시스템 버스(122)를 I/O 장치(130) 및 비휘발성 메모리(132)용 연결을 제공할 수 있는 I/O 버스(128)에 접속시킨다. 따라서, 시스템 버스(122), I/O 버스 브리지(126) 및 I/O 버스(128)는 부착 장치를 결합시키는 상호 연결을 형성하는데, 이들 부가 장치에 대한 대체 구현예는 본 기술 분야에 알려져 있다. I/O 장치(130)는 종래 어댑터를 통해 I/O 버스(128)에 인터페이스되는 키보드, 마우스 또는 트랙볼과 같은 그래픽 포인팅 장치, 디스플레이 및 프린터를 포함하는 주변 장치를 포함한다. 비휘발성 메모리(132)는 하드 디스크 드라이브를 포함할 수 있으며, 운영 체제 및 시스템(100)의 동작을 제어하는 다른 소프트웨어를 저장한다. 이러한 운영 체제 및 다른 소프트웨어는 시스템(100)에 대한 전력 공급에 응답하여 휘발성 메모리(120) 내로 로딩된다. 본 기술 분야의 당업자는 데이터 처리 시스템(100)이 직렬 포트 및 병렬 포트, 네트워크 또는 부가 장치에 대한 연결, 시스템 메모리(120)에 대한 액세스를 제어하는 메모리 제어기 등과 같은 도 1에 도시되지 않은 다수의 추가 구성 요소를 포함할 수 있다는 것을 인식할 수 있을 것이다. 상기 수정 및 변형은 본 발명의 정신과 범위 내에 있다.
시스템 버스(122) 상에서 통상적인 통신 트랜잭션은 해당 트랜잭션의 소스를 표시하는 소스 태그(source tag), 해당 트랜잭션이 목적하는 수신처를 특정하는 선택 사양의 목적지 태그(destination tag), 주소 및/또는 데이터를 포함한다. 시스템 버스(122)에 연결된 각 장치는 바람직하게는 시스템 버스(122)상에서 모든 통신 트랜잭션을 스누핑하여, 필요한 경우 다른 수신처용으로 의도된 통신 트랜잭션에 개입하며, 실행가능하고 적절한 시점에 장치 내에서 복제된 시스템 메모리 데이터에 대한 수정을 재생시킨다.
도 2 및 도 2a 내지 도 2c를 참조하면, 본 발명의 바람직한 실시예에 따른 재실행 스누프 히트시 순방향 진행을 수행하기 위한 메카니즘의 논리적 블록 다이어그램이 도시된다. 본 기술 분야의 당업자는 본 발명이 다른 캐시 레벨 및 장치 구성에 대해 구현된다는 것을 알 수 있지만, 본 발명은 도 1에 도시되는 L2 캐시(114, 116, 및 118) 및 시스템 버스(122)와 관련하여 기술된다. 바람직한 실시예에 도시되는 캐시 계층 구조는 적어도 상술한 R-MESI 캐시 일관성 프로토콜을 사용하는 것으로 가정된다. 본 발명에서, L3 캐시(118)와 같은 제1 장치는 시스템 버스(122) 상의 판독 또는 rwitm 동작(202)을 개시한다. 요구 항목(208)은 수정 상태 또는 최근 상태 중 어느 한 상태로 L2 캐시(114)와 같은 제2 장치 내에 존재한다. 판독 또는 rwitm 동작(202)이 검출되면, L2 캐시(114)는 데이터를 요구 장치로 제공하기 위해 개입 응답(intervention response)(204)을 주장한다. 그러나, 개입 응답(204)은 시스템 버스(122) 상의 재실행(206)을 주장하는 L2 캐시(116)와 같은 제2 장치에 의해 방해를 받는다. 도시되는 실시예의 L2 캐시(114)로부터 주장된 개입 응답(204)을 시도했던 장치는 그 후 요구 캐시 항목(208)과 관련되는 플래그(flag)(210)를 설정한다.
초기 판독 또는 rwitm 동작(202)이 캐시 항목(208)을 요구하는 시스템 버스(122) 상에서 다시 개시되고, L2 캐시(114)로부터의 개입 응답(204)에 의해 다시 응답되며, L2 캐시(116)와 같은 제3 장치에 의해 다시 재실행되면, L2 캐시(114)는 자신의 메모리 내의 요구 캐시 항목(208)과 관련되는 일관성 상태를 수정시키는 동작을 개시한다. 수정 캐시 항목(208)이 상기 동작(202)에 의해 요구되는 경우, 예를 들어 L2 캐시(114)는 푸쉬(push) 동작을 개시하여 (수정) 요구 캐시 항목(208)을 시스템 메모리에 기록한다. 푸쉬 동작은 다른 장치의 메모리를 요구 캐시 항목(208)의 카피로 갱신하기 위해 다른 장치에 의해 시스템 버스에서 스누핑될 수 있다. 반면에, 초기 판독 또는 rwitm 동작(202)이 캐시 항목(208)을 요구하는 시스템 버스(122) 상에서 두 번째로 개시되고 L2 캐시(114)로부터의 개입 응답(204)이 제3 장치로부터의 재실행 응답(206)에 의해 방해받지 않는 경우, 개입은 정상 형태로 진행된다.
주목할 만한 것은, 호버링 상태를 포함하는 일관성 프로토콜을 지원하는 시스템에서 푸쉬 동작이 호버링 상태에 있는 요구 캐시 항목을 갖는 시스템 내의 다른 장치로 하여금 다른 장치의 로컬 (캐시) 메모리 내의 요구 캐시 항목에 대한 어드레스 태그와 관련되는 데이터를 갱신하도록 하여 요구 캐시 항목에 대한 일관성 상태가 상기 로컬 메모리에 있는 공유 상태로 전이된다는 것이다.
푸쉬 동작이 일어난 다음, 요구 캐시 항목(208)은 L2 캐시(114) 내에서 초기 동작(202)에 따라 공유 또는 무효 일관성 상태로 전이된다. 예를 들어, 도 2a에 도시되는 바와 같이, 초기 동작(202)이 단지 판독 동작이었던 경우, 캐시 항목(208)은 수정 상태(208a)로부터 공유 상태(208b)로 전이되고, 반면에 초기 동작(202)이 rwitm 동작이었던 경우, 캐시 항목(208)은 수정 상태(208a)로부터 무효 상태(208c)로 전이된다. 그러나 어느 경우라도, L2 캐시(114)가 최종 상태를 향해 진행하여 다른 장치에 의해 개시될 수 있는 다른 버스 트래픽의 통로를 벗어난다. 판독 또는 rwitm 동작(202)이 다시 재실행 응답(206)을 호출하고 후속적으로 세 번째로 개시되는 경우, L2 캐시(114)는 재개시된 동작에 대한 수정 개입(204)을 주장할 필요가 없다.
마찬가지로, 도 2에 도시되는 바와 같이, 동작(202)에 의해 요구되며, 최근 일관성 상태에 있는 캐시 항목의 경우, L2 캐시(114)는 동작이 판독이었던 경우에는 공유 상태 (208e)로 수정하거나, 동작이 rwitm 동작이었던 경우에는 요구 캐시 항목(208)의 일관성 상태를 단지 최근 일관성 상태(208d)로부터 무효 상태(208f)로 수정할 수 있다. 본 실시예에서, 이전의 실패한 개입의 대상이었던 요구 캐시 항목(208)의 일관성 상태는 동작(202)이 두 번째 시도가 이루어지는 동안 재실행되는지의 여부에 관계없이 수정된다. 동작(202)이 재실행되고 후속적으로 세 번째 시도를 위해 재개시되는 경우, L2 캐시(114)는 요구 캐시 항목(208)에 대해 공유 개입을 주장할 필요가 없다. 요구 캐시 항목(208)의 일관성 상태는 초기 동작(202)이 완료된 후 예상되는 최종 상태와 일치하도록 수정되었다. 따라서, 개입에 대한 방해를 포함할 수 있는 다른 시스템 버스 동작이 완료시까지 자유롭게 실행된다. 시스템은 동작이 반복적으로 개시되고 재실행되는 지속 로크의 본질적으로 중지된 상태를 얻도록 다른 동작이 완료될 때까지 실행되는 것을 각각 방지하기 위한 개입 및 다른 동작의 가능성이 회피된다.
개략적으로, 재실행 스누프 히트시 순방향 진행을 수행하기 위한 본 발명의 메카니즘은 초기 동작의 완료시 기대되는 일관성 상태(expected coherency state)를 향해 요구 캐시 항목의 일관성 상태를 이동시키는 이전의 실패한 개입의 대상이었던 시스템 버스 상의 동작 검출에 응답하여 동작을 시작하는 것을 포함한다. 장치에 의한 요구 캐시 항목의 일관성 상태의 수정은 두 번째 개입을 시도하는 대신 수행될 수 있으며, 동작이 한 번 이상 재실행되며 재개시되는 경우 후속 개입에 대한 필요성을 제거하기 위한 것이다. 예를 들어, L2 캐시(118)가 시스템 버스(122) 상에서 판독 또는 rwitm 동작을 개시한다고 가정한다. L2 캐시(114)와 같은 제 2 장치는 시스템 버스(122) 상에서 수정 또는 공유 개입(204) 중 어느 하나에 응답하며 L2 캐시(116)와 같은 제 3 장치는 재실행(206)을 주장한다. 개입(204)이 재실행(206)에 의해 중지되는 경우, L2 캐시(114)는 요구 캐시 항목이 실패한 개입의 대상이었다는 것을 표시하는 플래그를 설정한다. 스누프 논리를 통해 동일한 동작을 다시 검출하고 재실행되는 동작을 다시 검출하는 경우, L2 캐시(114)는 상술한 바와 같이 순방향 진행을 달성하도록 의도된 동작, 수정 일관성(modified coherency) 상태에 있는 캐시 항목(208)에 대한 푸쉬 동작, 및/또는 캐시 항목(208)의 일관성 상태를 공유 또는 무효 일관성 상태로의 수정을 개시한다. 각 캐시 항목(즉, 캐시 동작의 세분성(granularity)에 따라 캐시 라인, 섹터 또는 블록)에 대한 단일 플래그는 재실행 개입의 대상이 아니었던 캐시 항목과 재실행 개입의 대상이었던 캐시 항목을 구별하는데 사용될 수 있다. 별도의 플래그는 재실행 개입의 대상이었던 수정 상태(208a)에 있는 캐시 항목을 최근 상태(208d)에 있는 유사한 캐시 항목과 구별하는데 사용될 수 있다. 대안적으로, 동일한 플래그가 어느 하나의 초기 일관성 상태로부터 순방향 진행을 수행하는데 사용될 수 있다. 요구 캐시 항목(208)과 관련된 이러한 플래그는 소프트웨어로 간단히 설정되거나 또는 전용 하드웨어가 이러한 목적으로 사용될 수 있다. 물론, 본 발명의 원리는 동작 및 개입이 재실행되는 회수를 카운트하는 데에도 용이하게 확장될 수 있으며, 일단 특정 임계값에 도달하면 상술한 바와 같이 순방향 진행을 수행한다. 가능한 지속 로크가 반복적으로 개시 및 재실행되는 동작 및 개입에 의해 생성되었다는 결정을 반영하도록 설정되는 임계값의 경우, 하드웨어 또는 소프트웨어 카운터(counter)가 상기 목적으로 사용될 수 있다.
지원되는 일관성 프로토콜 및 설계 선택에 따라, 본 발명은 반복적으로 재실행되는 동작 및 개입의 최종 도출 방향으로 순방향 진행을 수행하는 상이한 일관성 상태의 모든 부분 또는 상당 부분을 통해 전이되도록 구현될 수 있다. 공유 상태에 있지 않은 요구 캐시 항목에 대한 개입 또는 무효 일관성 상태가 재실행될 때마다 순방향 진행을 수행하도록 장치가 구성될 수 있다. 즉, 개입이 재실행될 때마다 요구 캐시 항목이 공유 또는 (개입이 필요하지 않은) 무효인 경우가 아닌 다른 경우, 장치는 요구 캐시 항목의 일관성 상태를 최종 예상 일관성 상태를 향해 이동시키는 작업을 수행하려고 시도한다. 예를 들어, 요구 캐시 항목이 초기에 수정 상태(208g)에 있는 R-MESI 일관성 프로토콜이 지원된다고 가정하면, 장치는 판독 요구에 응답하여 수정 개입을 주장한다. 수정 개입이 재실행을 주장하는 다른 장치에 의해 방해를 받는 경우, 푸쉬 동작이 개시되어 요구 캐시 항목을 시스템 메모리에 기록할 수 있다. 상술한 호버링 상태가 수행되지 않는 경우, 장치는 푸쉬 동작이 다른 장치에 의해 시스템 버스에서 스누핑된다고 가정할 필요가 없으며, 단지 요구 캐시 항목의 일관성 상태를 배타 상태(208h)로 수정할 수 있다. 동일한 판독 동작이 후속적으로 개시되는 경우, 장치는 공유 개입을 수행할 수 있다. 공유 개입이 재실행 신호에 의해 방해를 받는 경우, 장치는 요구 캐시 항목의 일관성 상태를 최근 상태(208i)로 수정할 수 있다. 일관성 상태의 수정은 최종 일관성 상태를 향한 순방향 진행을 수행하도록 하는 장치에 의한 노력을 반영하기 때문에 동작이 개시될 필요는 없다. 마찬가지로, 판독 동작이 후속적으로 개시되는 경우, 장치는 다시 공유 개입을 수행한다. 이러한 공유 개입이 재실행되는 경우, 장치는 요구 캐시 항목의 일관성 상태를 공유 상태(208j)로 수정하는데, 이 공유 상태(208j)는 판독 동작이 성공적으로 완료되는 경우 요구 캐시 항목의 기대된 일관성 상태이다. 또한, 장치가 단지 개시되는 동작의 최종 결과를 향해 순방향 진행을 수행하도록 시도하기 때문에 동작이 개시될 필요가 없다.
개입이 개시되도록 개시되는 동작이 판독이 아니라 rwitm인 경우, 도시되는 일관성 상태의 체인(chain)은 공유 상태(208j)가 아닌 무효 상태(208k)를 향해 진행한다. 도 2c에 도시되는 일관성 상태 전이의 전부 또는 일부분이 설계 선택에 따라 본 발명에 따른 순방향 진행을 수행하는데 사용될 수 있다. 또한, 각 일관성 상태 전이는 방해를 받는 단일 개입이 아니라 임계 개수의 개입의 결과로 시작될 수 있다.
도 3과 관련하여, 본 발명의 바람직한 실시예에 따른 재실행 개입에 응답하는 프로세스용 상위 레벨 플로우차트가 도시되어 있다. 프로세스는 단계(302)에서 시작하는데, 이 단계(302)는 스누프 히트의 결과로서 요구 데이터가 로컬 메모리 또는 캐시 메모리로부터 제공되어야 하는 동작을 검출하는 것을 도시한다(즉, 요구 데이터는 수정, 최근 또는 동등한 일관성 상태에 있는 로컬 메모리 또는 캐시 메모리 내에 존재한다). 다음으로, 프로세스는 상기 스누핑된 동작에 개입하려고 시도하는 것을 도시하는 단계(304)로 진행하고, 그 후 시도된 개입이 재실행에 의해 방해를 받는지의 여부의 결정을 도시하는 단계(306)로 진행한다. 시도된 개입이 재실행에 의해 방해를 받지 않으면, 프로세스는 요구 데이터 항목의 일관성 상태를 갱신하는 것을 도시하는 단계(314)로 진행하고, 그 후 개입이 정상적으로 진행되도록 해주는 다음번 스누프 히트시까지 아이들링되는 프로세스를 도시하는 단계(316)로 진행한다. 그러나, 시도된 개입이 재실행에 의해 방해받는 경우 프로세스는 이전 개입이 재실행되는지의 여부를 결정하는 것을 도시하는 단계(308)로 진행한다.
이전 개입이 재실행되었는지의 여부를 결정하는 것은 상술한 바와 같이 요구 캐시 항목과 관련되는 플래그를 설정함으로써 표시되는 히스토리 정보를 기초로 이루어진다. 이전 개입이 재실행된 경우, 프로세스는 요구 데이터 항목이 수정 일관성 상태에 있는지의 여부를 결정하는 것을 도시하는 단계(310)으로 진행한다. 요구 데이터 항목이 수정 일관성 상태에 있으면, 프로세스는 데이터 완전성을 유지하기 위해 메모리로에 대한 푸쉬를 개시하는 것을 도시하는 단계(312)로 진행하고, 그 후 요구 캐시 항목의 일관성 상태를 갱신하는 것을 도시하는 단계(314)로 진행한다. 그러나, 푸쉬 동작은 다른 동작이 진행되도록 해주는 최종 기대된 일관성 상태를 향해 일관성 상태를 이동시키는 동작을 개시함이 없이 일관성 상태를 수정하는 동작과 동일한 대상에 의해 시작된다. 따라서, 단계(310)를 다시 참조하면, 요구 데이터 항목이 수정 상태에 있지 않은 경우, 프로세스는 요구 캐시 항목의 일관성 상태를 갱신하는 것을 도시하는 단계(314)로 직접 진행한다.
다시 단계(308)를 참조하면, 요구 캐시 항목에 대한 이전 개입이 개시되지 않았던 경우, 프로세스는 요구 캐시 항목과 관련되는 플래그를 설정하여 그 항목에 대한 개입이 재실행되었다는 것을 표시하는 것을 도시하는 단계(318)로 진행한다. 그 후 프로세스는 단계(314) 또는 단계(318) 중 어느 하나로부터 프로세스가 다음 스누프 히트시까지 아이들링 상태가 되는 것을 도시하는 단계(316)로 진행한다.
단계(308) 및 단계(318)에 도시되는 프로세스 부분에 대한 대안이 단계(308a) 및 단계(318a)에 도시된다. 단일 시도된 개입이 재실행되었는지의 여부를 결정하는 대신 단계(308)는 요구 캐시 항목에 대한 시도된 개입의 임계 개수 x가 재실행되었는지의 여부에 대한 결정을 포함한다. 따라서, 프로세스는 x보다 더 많은 개입이 단계(308a)에 도시되는 바와 같이 재실행되었는지의 여부에 대한 결정, 즉 재실행 개입을 카운트하도록 구성되는 카운터를 검사함으로써 이루질 수 있는 결정을 포함한다. 임계 개수 이상의 개입이 재실행된 경우, 프로세스는 단계(308a) 및 단계(310) 사이의 단계(320)에 도시되는 바와 같이 일관성 상태가 수정된 후 카운터를 리셋하는 것을 포함한다. 임계값이 아직 초과되지 않은 경우, 프로세스는 단계(318a)에 도시되는 바와 같이 카운터를 증가시킨다.
본 발명은 멀티프로세서 시스템이 지속 로크를 회피하도록 도와주고, 다른 작업용 시스템 내에 있는 장치의 스누프 큐를 자유롭게 해주며, 시스템 내의 모든 버스 참가자가 매우 비지(busy) 상태인 경우 시스템 스루풋(throughput)이 증가되도록 도와준다. 이전 스누프 히트가 재실행된 캐시 위치에 대한 스누프 히트가 데이터 일관성 상태의 최종 결과를 향해 진행된다. 필요한 경우, 데이터는 상기 일관성 상태가 지원되는 호버링 상태에 있는 캐시 항목이 좀더 신속하게 공유 상태로 이동하도록 해주는 다른 장치에 의해 스누핑되도록 액세스 가능한 시스템 버스 상으로 푸쉬될 수 있다.
중요한 것은 본 발명이 완전히 기능적인 데이터 처리 시스템과 관련하여 기술되었지만 본 기술 분야의 당업자는 본 발명의 메카니즘이 다양한 형태의 인스트력션으로 이루어진 컴퓨터 판독 가능한 매체의 형태로 배포될 수 있다는 것과 본 발명이 실제로 상기 배포를 수행하는데 사용되는 특정 타입의 신호 포함 매체에 관계없이 동일하게 적용된다는 것을 명백히 이해할 수 있다는 점에 유의해야 한다는 것이다. 컴퓨터 판독 가능 매체의 예는 판독 전용 메모리(read only memories: ROMs) 또는 소거 가능하며 전기적으로 프로그램 가능한 판독 전용 메모리(erasable, electrically programmable read only memories: EEPROM)와 같은 비휘발성 하드-코드화 타입 매체(hard-coded type media); 플로피 디스크, 하드 디스크 드라이브 및 시디롬과 같은 기록 가능 타입 매체; 및 디지털 및 아날로그 통신 링크와 같은 전송 타입 매체를 포함한다.
본 발명이 바람직한 실시예에 대해 구체적으로 도시되며 기술되었지만, 형태 및 상세한 부분의 다양한 변경이 본 발명의 정신 및 범위를 벗어남이 없이 이루어질 수 있다는 것이 본 기술 분야의 당업자에 의해 명백히 이해될 수 있다.
본 발명의 방법 및 장치에 따르면 스누프 동작이 멀티프로세서 시스템 내에서 하나의 장치에 의해 개시되며 다른 장치에 의해 재실행될 수 있다.

Claims (20)

  1. 재실행 스누프 히트시 순방향 진행을 수행하기 위한 방법에 있어서,
    a) 시스템 계층적 저장 장치 내의 원격 장치에 의해 개시되는 동작을 스누핑(snooping)하는 단계;
    b) 로컬 데이터 저장 장치(local data storage) 내에 포함되는 데이터 항목(data item)과 관련되는 어드레스 태그를 포함하는 동작의 검출에 응답하여 상기 데이터 항목의 일관성 상태를 검사하는 단계;
    c) 상기 데이터 항목이 계층적 저장 장치의 다른 부분이 아닌 로컬 데이터 저장 장치로부터 검색되어야 하는 것을 상기 일관성 상태가 표시한다는 결정에 응답하여 개입을 주장하는(asserting an intervention) 단계; 및
    d) 상기 개입이 재실행된 것에 응답하여 상기 로컬 저장 장치 내의 데이터 항목의 일관성 상태를 수정하는 단계
    를 포함하는 재실행 스누프 히트시 순방향 진행 수행 방법.
  2. 제1항에 있어서,
    상기 개입을 주장하는 단계는
    상기 데이터 항목이 시스템 메모리 내의 대응 데이터 항목에 대해 수정되는 것을 상기 일관성 상태가 표시한다는 결정에 응답하여 수정 개입을 주장하는 단계를 추가로 포함하는
    재실행 스누프 히트시 순방향 진행 수행 방법.
  3. 제2항에 있어서,
    상기 로컬 데이터 저장 장치 내의 데이터 항목의 일관성 상태를 수정하는 단계가 상기 수정 데이터 항목을 시스템 메모리에 기록하는 동작을 개시하는 단계를 추가로 포함하는 재실행 스누프 히트시 순방향 진행 수행 방법.
  4. 제3항에 있어서,
    상기 로컬 저장 장치 내의 데이터 항목의 일관성 상태를 수정하는 단계가 상기 일관성 상태를 공유 상태로 수정하는 단계를 추가로 포함하는 재실행 스누프 히트시 순방향 진행 수행 방법.
  5. 제3항에 있어서,
    상기 로컬 저장 장치 내의 데이터 항목의 일관성 상태를 수정하는 단계가 상기 일관성 상태를 무효 상태로 수정하는 단계를 추가로 포함하는 재실행 스누프 히트시 순방향 진행 수행 방법.
  6. 제3항에 있어서,
    상기 동작이 상기 데이터 항목을 수정하려는 의도를 표시하는지의 여부를 결정하는 단계
    를 추가로 포함하고,
    상기 로컬 저장 장치 내의 데이터 항목의 일관성 상태를 수정하는 단계가
    상기 동작이 상기 데이터 항목을 수정하려는 의도를 표시하지 않는 경우 상기 일관성 상태를 공유 상태로 수정하는 단계와,
    상기 동작이 상기 데이터 항목을 수정하려는 의도를 표시하는 경우 상기 일관성 상태를 무효 상태로 수정하는 단계를 포함하는
    재실행 스누프 히트시 순방향 진행 수행 방법.
  7. 제1항에 있어서,
    상기 개입을 주장하는 단계는
    상기 데이터 항목이 시스템 메모리로부터 가장 최근에 검색되었다는 것을 상기 일관성 상태가 표시한다는 결정에 응답하여 공유 개입을 주장하는 단계를 추가로 포함하는
    재실행 스누프 히트시 순방향 진행 수행 방법.
  8. 제7항에 있어서,
    상기 로컬 저장 장치 내의 데이터 항목의 일관성 상태를 수정하는 단계가 상기 일관성 상태를 공유 상태로 수정하는 단계를 추가로 포함하는 재실행 스누프 히트시 순방향 진행 수행 방법.
  9. 제7항에 있어서,
    상기 로컬 저장 장치 내의 데이터 항목의 일관성 상태를 수정하는 단계가 상기 일관성 상태를 무효 상태로 수정하는 단계를 추가로 포함하는 재실행 스누프 히트시 순방향 진행 수행 방법.
  10. 제1항에 있어서,
    시도되는 개입이 재실행되었다는 것을 표시하는 로컬 데이터 저장 장치와 관련되는 플래그를 설정하는 단계를 추가로 포함하는 재실행 스누프 히트시 순방향 진행 수행 방법.
  11. 제1항에 있어서,
    상기 개입이 실행된 것에 응답하여, 상기 로컬 데이터 저장 장치와 관련되는 플래그(flag)를 검사하는 단계 및 이전 시도된 개입이 재실행되었다는 것을 표시하는 제 1 상태를 가지는 단계를 추가로 포함하고,
    상기 데이터 항목의 일관성 상태를 수정하는 단계는 상기 플래그가 제 1 상태에 있다는 결정에 응답하여 상기 일관성 상태를 수정하는 단계를 포함하는
    재실행 스누프 히트시 순방향 진행 수행 방법.
  12. 제1항에 있어서,
    시도된 개입이 재실행된 횟수를 표시하는 로컬 데이터 저장 장치와 관련되는 카운터를 증가시키는 단계를 추가로 포함하는 재실행 스누프 히트시 순방향 진행 수행 방법.
  13. 제1항에 있어서,
    상기 개입이 실행된 것에 응답하여, 상기 로컬 데이터 저장 장치와 관련되는 카운터 내의 값을 검사하는 단계 및 이전 시도된 개입이 재실행된 횟수를 표시하는 단계를 추가로 포함하고,
    상기 데이터 항목의 일관성 상태를 수정하는 단계는 상기 카운터 내의 값이 임계값을 초과하는지의 결정에 응답하여 상기 일관성 상태를 수정하는 단계를 포함하는
    재실행 스누프 히트시 순방향 진행 수행 방법.
  14. 데이터 처리 시스템에 있어서,
    a) 시스템 버스에 연결되는 제 1 저장 장치;
    b) 상기 시스템 버스에 연결되는 제 2 저장 장치용으로 사용되고, 상기 제 1 저장 장치에 의해 개시되는 동작을 스누핑하며, 상기 제 2 저장 장치 내의 데이터 항목과 관련되는 어드레스 태그를 포함하는 동작의 검출에 응답하여 상기 데이터 항목용 일관성 표시기를 검사하는 스누프 논리(snoop logic);
    c) 상기 데이터 항목이 상기 제 2 저장 장치로부터 제공되어야 한다는 것을 표시하는 데이터 항목에 대한 일관성 상태의 검출에 응답하여 개입을 주장하는 개입 논리(intervention logic); 및
    d) 상기 재실행되는 개입에 응답하여 상기 제 2 저장 장치 내의 데이터 항목의 일관성 상태를 수정하는 일관성 유지 논리(coherency maintenance logic)
    를 포함하는 데이터 처리 시스템.
  15. 제14항에 있어서,
    상기 일관성 상태는 상기 데이터 항목이 시스템 메모리 내의 대응 데이터 항목에 대해 수정되는 것을 표시하고,
    상기 개입 논리는 수정 개입을 주장하는
    데이터 처리 시스템.
  16. 제15항에 있어서,
    상기 일관성 유지 논리가 상기 수정 데이터 항목을 시스템 메모리에 기록하는 동작을 표시하고, 재실행되는 개입에 응답하여 일관성 상태를 공유 상태로 수정하는 데이터 처리 시스템.
  17. 제15항에 있어서,
    상기 일관성 유지 논리가 상기 수정 데이터 항목을 시스템 메모리에 기록하는 동작을 표시하고, 재실행되는 개입에 응답하여 일관성 상태를 무효 상태로 수정하는 데이터 처리 시스템.
  18. 제14항에 있어서,
    상기 제 2 저장 장치와 관련되며, 이전 개입이 재실행되었는지의 여부를 표시하는 플래그를 추가로 포함하는 데이터 처리 시스템.
  19. 제18항에 있어서,
    상기 일관성 유지 논리가 플래그가 설정되는 동안 재실행되는 상기 개입에 응답하여 데이터 항목의 일관성 상태를 수정하는 데이터 처리 시스템.
  20. 제14항에 있어서,
    상기 제 2 저장 장치와 관련되며, 이전 개입이 재실행된 횟수의 카운트를 포함하는 카운터를 추가로 포함하는 데이터 처리 시스템.
KR1019990004884A 1998-02-17 1999-02-11 재실행스누프히트시의순방향진행수행방법및시스템 KR19990072600A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/024,616 US6138218A (en) 1998-02-17 1998-02-17 Forward progress on retried snoop hits by altering the coherency state of a local cache
US9/024,616 1998-02-17

Publications (1)

Publication Number Publication Date
KR19990072600A true KR19990072600A (ko) 1999-09-27

Family

ID=21821523

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990004884A KR19990072600A (ko) 1998-02-17 1999-02-11 재실행스누프히트시의순방향진행수행방법및시스템

Country Status (4)

Country Link
US (1) US6138218A (ko)
JP (1) JP3254433B2 (ko)
KR (1) KR19990072600A (ko)
CN (1) CN1130652C (ko)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6631401B1 (en) 1998-12-21 2003-10-07 Advanced Micro Devices, Inc. Flexible probe/probe response routing for maintaining coherency
US6370621B1 (en) 1998-12-21 2002-04-09 Advanced Micro Devices, Inc. Memory cancel response optionally cancelling memory controller's providing of data in response to a read operation
US6393529B1 (en) 1998-12-21 2002-05-21 Advanced Micro Devices, Inc. Conversation of distributed memory bandwidth in multiprocessor system with cache coherency by transmitting cancel subsequent to victim write
US6490661B1 (en) * 1998-12-21 2002-12-03 Advanced Micro Devices, Inc. Maintaining cache coherency during a memory read operation in a multiprocessing computer system
US6714994B1 (en) * 1998-12-23 2004-03-30 Advanced Micro Devices, Inc. Host bridge translating non-coherent packets from non-coherent link to coherent packets on conherent link and vice versa
US6269428B1 (en) * 1999-02-26 2001-07-31 International Business Machines Corporation Method and system for avoiding livelocks due to colliding invalidating transactions within a non-uniform memory access system
US6272604B1 (en) * 1999-05-20 2001-08-07 International Business Machines Corporation Contingent response apparatus and method for maintaining cache coherency
US6405289B1 (en) * 1999-11-09 2002-06-11 International Business Machines Corporation Multiprocessor system in which a cache serving as a highest point of coherency is indicated by a snoop response
US7558923B1 (en) * 1999-12-22 2009-07-07 Intel Corporation Prevention of live-lock in a multi-processor system
US6557078B1 (en) * 2000-02-21 2003-04-29 Hewlett Packard Development Company, L.P. Cache chain structure to implement high bandwidth low latency cache memory subsystem
US6928525B1 (en) * 2000-04-28 2005-08-09 Hewlett-Packard Development Company, L.P. Per cache line semaphore for cache access arbitration
US6745297B2 (en) 2000-10-06 2004-06-01 Broadcom Corporation Cache coherent protocol in which exclusive and modified data is transferred to requesting agent from snooping agent
US7818391B2 (en) 2004-01-20 2010-10-19 Hewlett-Packard Development Company, L.P. System and method to facilitate ordering point migration
US7620696B2 (en) * 2004-01-20 2009-11-17 Hewlett-Packard Development Company, L.P. System and method for conflict responses in a cache coherency protocol
US7395374B2 (en) * 2004-01-20 2008-07-01 Hewlett-Packard Company, L.P. System and method for conflict responses in a cache coherency protocol with ordering point migration
US7769959B2 (en) * 2004-01-20 2010-08-03 Hewlett-Packard Development Company, L.P. System and method to facilitate ordering point migration to memory
US20050160238A1 (en) * 2004-01-20 2005-07-21 Steely Simon C.Jr. System and method for conflict responses in a cache coherency protocol with ordering point migration
US8468308B2 (en) * 2004-01-20 2013-06-18 Hewlett-Packard Development Company, L.P. System and method for non-migratory requests in a cache coherency protocol
US8176259B2 (en) * 2004-01-20 2012-05-08 Hewlett-Packard Development Company, L.P. System and method for resolving transactions in a cache coherency protocol
US8145847B2 (en) * 2004-01-20 2012-03-27 Hewlett-Packard Development Company, L.P. Cache coherency protocol with ordering points
US8090914B2 (en) * 2004-01-20 2012-01-03 Hewlett-Packard Development Company, L.P. System and method for creating ordering points
US7469312B2 (en) * 2005-02-24 2008-12-23 International Business Machines Corporation Computer system bus bridge
US7275125B2 (en) 2005-02-24 2007-09-25 International Business Machines Corporation Pipeline bit handling circuit and method for a bus bridge
US7275124B2 (en) * 2005-02-24 2007-09-25 International Business Machines Corporation Method and system for controlling forwarding or terminating of a request at a bus interface based on buffer availability
US7330925B2 (en) * 2005-02-24 2008-02-12 International Business Machines Corporation Transaction flow control mechanism for a bus bridge
US20060253662A1 (en) * 2005-05-03 2006-11-09 Bass Brian M Retry cancellation mechanism to enhance system performance
US7783843B2 (en) * 2005-05-16 2010-08-24 Hewlett-Packard Development Company, L.P. Bus interface adapted to coalesce snoop responses
JP4335298B2 (ja) * 2006-02-24 2009-09-30 富士通株式会社 スヌープ制御方法および情報処理装置
CN101866060B (zh) * 2009-12-23 2012-02-29 南京邮电大学 超分辨率光学成像装置与方法
US8935485B2 (en) 2011-08-08 2015-01-13 Arm Limited Snoop filter and non-inclusive shared cache memory
US9292442B2 (en) * 2013-04-11 2016-03-22 Qualcomm Incorporated Methods and apparatus for improving performance of semaphore management sequences across a coherent bus
GB2529180B (en) 2014-08-12 2021-07-14 Advanced Risc Mach Ltd Arbitration and hazard detection for a data processing apparatus
US10747298B2 (en) 2017-11-29 2020-08-18 Advanced Micro Devices, Inc. Dynamic interrupt rate control in computing system
US10503648B2 (en) 2017-12-12 2019-12-10 Advanced Micro Devices, Inc. Cache to cache data transfer acceleration techniques
GB2571538B (en) * 2018-02-28 2020-08-19 Imagination Tech Ltd Memory interface
US11210246B2 (en) 2018-08-24 2021-12-28 Advanced Micro Devices, Inc. Probe interrupt delivery
US11907125B2 (en) * 2022-04-05 2024-02-20 International Business Machines Corporation Hot line fairness mechanism favoring software forward progress
US11853212B2 (en) 2022-04-05 2023-12-26 International Business Machines Corporation Preemptive tracking of remote requests for decentralized hot cache line fairness tracking

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553266A (en) * 1992-04-24 1996-09-03 Digital Equipment Corporation Update vs. invalidate policy for a snoopy bus protocol
AU1973595A (en) * 1994-03-01 1995-09-25 Intel Corporation Highly pipelined bus architecture
US5713004A (en) * 1995-05-18 1998-01-27 Data General Corporation Cache control for use in a multiprocessor to prevent data from ping-ponging between caches
US5710906A (en) * 1995-07-07 1998-01-20 Opti Inc. Predictive snooping of cache memory for master-initiated accesses
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
US5778438A (en) * 1995-12-06 1998-07-07 Intel Corporation Method and apparatus for maintaining cache coherency in a computer system with a highly pipelined bus and multiple conflicting snoop requests
JPH09223118A (ja) * 1996-02-14 1997-08-26 Oki Electric Ind Co Ltd スヌープキャッシュメモリ制御システム
US5920891A (en) * 1996-05-20 1999-07-06 Advanced Micro Devices, Inc. Architecture and method for controlling a cache memory

Also Published As

Publication number Publication date
CN1226708A (zh) 1999-08-25
CN1130652C (zh) 2003-12-10
JPH11328023A (ja) 1999-11-30
JP3254433B2 (ja) 2002-02-04
US6138218A (en) 2000-10-24

Similar Documents

Publication Publication Date Title
KR19990072600A (ko) 재실행스누프히트시의순방향진행수행방법및시스템
JP3627037B2 (ja) キャッシュ・コヒーレンシを維持する方法及びコンピュータ・システム
US6195729B1 (en) Deallocation with cache update protocol (L2 evictions)
US5557769A (en) Mechanism and protocol for maintaining cache coherency within an integrated processor
US5335335A (en) Multiprocessor cache snoop access protocol wherein snoop means performs snooping operations after host bus cycle completion and delays subsequent host bus cycles until snooping operations are completed
JP3067112B2 (ja) 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法
US6366984B1 (en) Write combining buffer that supports snoop request
JP3888769B2 (ja) データ供給方法及びコンピュータ・システム
KR100274771B1 (ko) Smp 버스의 공유 상태에서의 캐시 라인들의 공유 개입 방법
JP4303803B2 (ja) キャッシュフラッシュ装置
US6353875B1 (en) Upgrading of snooper cache state mechanism for system bus with read/castout (RCO) address transactions
JP3007872B2 (ja) マルチプロセッサ・データ処理システム内でキャッシュ・コヒーレンシを維持するキャッシュ・コヒーレンシ・プロトコルを提供する方法及び装置
US6275909B1 (en) Multiprocessor system bus with system controller explicitly updating snooper cache state information
JPH10254773A (ja) アクセス方法、処理装置およびコンピュータ・システム
KR19980079663A (ko) Smp 버스의 최근 판독 상태에서의 캐시 라인들의 공유 개입 방법
KR19980079433A (ko) 비포함 캐쉬 메모리 계층 구조에서 사용하기 위한 캐쉬 일관성 메카니즘 구현 방법 및 시스템
JP2002259211A (ja) キャッシュ階層で首尾一貫性を維持する方法、コンピュータ・システム、及び処理ユニット
US20040111563A1 (en) Method and apparatus for cache coherency between heterogeneous agents and limiting data transfers among symmetric processors
US6615321B2 (en) Mechanism for collapsing store misses in an SMP computer system
US6178484B1 (en) DCBST with ICBI mechanism to maintain coherency of bifurcated data and instruction caches
US7464227B2 (en) Method and apparatus for supporting opportunistic sharing in coherent multiprocessors
US6973541B1 (en) System and method for initializing memory within a data processing system
US6279086B1 (en) Multiprocessor system bus with combined snoop responses implicitly updating snooper LRU position
US7669013B2 (en) Directory for multi-node coherent bus
US7725660B2 (en) Directory for multi-node coherent bus

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee