KR102581572B1 - 허브 디바이스 및 그의 작동방법 - Google Patents

허브 디바이스 및 그의 작동방법 Download PDF

Info

Publication number
KR102581572B1
KR102581572B1 KR1020180012684A KR20180012684A KR102581572B1 KR 102581572 B1 KR102581572 B1 KR 102581572B1 KR 1020180012684 A KR1020180012684 A KR 1020180012684A KR 20180012684 A KR20180012684 A KR 20180012684A KR 102581572 B1 KR102581572 B1 KR 102581572B1
Authority
KR
South Korea
Prior art keywords
cache
request
prefill
data item
data
Prior art date
Application number
KR1020180012684A
Other languages
English (en)
Other versions
KR20180092276A (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 KR20180092276A publication Critical patent/KR20180092276A/ko
Application granted granted Critical
Publication of KR102581572B1 publication Critical patent/KR102581572B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • 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
    • 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/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

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)
  • Software Systems (AREA)

Abstract

일관성 인터커넥트 시스템에서, 허브 디바이스와, 타겟 디바이스를 작동하는 장치 및 대응한 방법을 제시한다. 상기 시스템에서 일 세트의 일관성 프로토콜 트랜잭션들의 캐시 사전채움 요구는 적어도 하나의 데이터 항목을 지정하는 요구 마스터 디바이스로부터 수신되고, 상기 허브 디바이스는 상기 적어도 하나의 데이터 항목을 지정하는 상기 세트의 일관성 프로토콜 트랜잭션들의 캐시 사전채움 트리거를 타겟 디바이스에 송신시켜서 응답한다. 이 트리거에 의해, 상기 타겟 디바이스는 상기 지정된 적어도 하나의 데이터 항목이 캐시에 검색되어 운반되는 것을 요구할 수 있다. 이 때문에, 상기 타겟 디바이스가 상기 트리거에 응답할지 않할지를 결정할 수 있으므로, 상기 타겟 디바이스는 그 구성을 단순화하는 비요청된 캐시된 데이터를 수신하지 않고, 일부의 데이터를 사전 캐시시킬 수 있다.

Description

허브 디바이스 및 그의 작동방법{HUB DEVICE AND OPERATING METHOD THEREOF}
본 발명은, 데이터 처리 시스템에 관한 것이다. 보다 구체적으로, 본 발명은, 데이터 처리 시스템에서의 캐시 콘텐트의 관리에 관한 것이다.
데이터 처리 시스템에서의 데이터 항목들의 복사본을 데이터 처리 연산에 필요한 (예를 들면, CPU에 가까운) 지점에의 보다 조밀한 캐싱(cashing)에 의해, 메모리로부터 데이터 항목의 제거와 관련된 상당한 지연을 크게 회피할 수 있다. 그렇지만, 전형적으로, 데이터 캐시들은 그들이 지원하는 메모리 디바이스보다 반드시 훨씬 작아야 하고, 이 때문에 임의의 주어진 시간에 캐시 디바이스에 보유된 상기 메모리 디바이스로부터 일부분의 데이터 항목들의 선택은, 상기 캐싱이 효과적으로 효과가 있는 것을 보장하도록 신중하게 관리되어야 한다. 하나의 캐시에 데이터 항목들을 채울 수도 있는 하나의 메커니즘은, 차후에 다시 액세스될 가능성이 높은 메모리로부터 한번 검색된다는 가정하에, 데이터 처리 부품(예를 들면, CPU)에 의한 데이터 액세스가 상기 데이터 항목을 메모리로부터 검색시키고 나서 그 데이터 항목이 로컬 캐시에 저장될 수도 있는 경우이다. 이와는 달리, 특히, 다수의 데이터 처리 부품과 멀티 캐시 시스템에서는, 타겟 캐시와 관련된 상기 처리 부품이 데이터 항목을 요구하기 전에도 데이터 항목들을 타겟 데이터 캐시에 사전에 밀어 넣을 수도 있다. 그렇지만, 이것은, 그 캐시의 공간이 이 비요청 데이터를 수용 가능한 것을 필요로 하고, 이러한 시스템을 관리하는 것은 캐시 관리를 더 복잡하게 한다.
여기서 설명된 적어도 하나의 일례의 일관성 인터커넥트 시스템용 허브 디바이스는, 적어도 하나의 데이터 항목을 지정하는 일 세트의 일관성 프로토콜 트랜잭션들의 캐시 사전채움 요구를, 요구 마스터 디바이스로부터 수신하는 인터페이스 회로; 및 상기 캐시 사전채움 요구의 수신에 응답하여, 상기 적어도 하나의 데이터 항목을 지정하는 상기 일 세트의 일관성 프로토콜 트랜잭션들의 캐시 사전채움 트리거-타겟 디바이스로 하여금, 상기 캐시 사전채움 트리거에 지정된 상기 적어도 하나의 데이터 항목을 상기 타겟 디바이스와 관련된 스토리지로 회수하도록 요구할 것인지 여부를 결정하게 한다-를, 상기 허브 디바이스를 통해 상기 요구 마스터 디바이스와는 다른 상기 타겟 디바이스에 송신하는 트랜잭션 제어회로를 구비한다.
여기서 설명된 적어도 하나의 일례의 일관성 인터커넥트 시스템에 있어서의 허브 디바이스의 작동 방법은, 적어도 하나의 데이터 항목을 지정하는 일 세트의 일관성 프로토콜 트랜잭션들의 캐시 사전채움 요구를, 요구 마스터 디바이스로부터 수신하는 단계; 및 상기 캐시 사전채움 요구의 수신에 응답하여, 상기 적어도 하나의 데이터 항목을 지정하는 상기 일 세트의 일관성 프로토콜 트랜잭션들의 캐시 사전채움 트리거-타겟 디바이스로 하여금, 상기 캐시 사전채움 트리거에 지정된 상기 적어도 하나의 데이터 항목을 상기 타겟 디바이스와 관련된 스토리지로 회수하도록 요구할 것인지 여부를 결정하게 한다-를, 상기 허브 디바이스를 통해 상기 요구 마스터 디바이스와는 다른 상기 타겟 디바이스에 송신하는 단계를 포함한다.
여기서 설명된 적어도 하나의 일례의 일관성 인터커넥트 시스템용 마스터 디바이스는, 캐시; 일 세트의 일관성 프로토콜 트랜잭션들의 캐시 사전채움 트리거를, 적어도 하나의 데이터 항목을 지정하는 허브 디바이스로부터 수신하는 인터페이스 회로; 및 상기 캐시 사전채움 트리거의 수신에 응답하여, 적어도 하나의 또 다른 기준에 근거하여 상기 캐시 사전채움 트리거에 작용할지를 판정하고; 본 캐시 제어회로가 상기 캐시 사전채움 트리거에 작용한다고 판정할 때, 상기 적어도 하나의 데이터 항목을 지정하는 상기 세트의 일관성 프로토콜 트랜잭션들의 캐시 채움 트랜잭션을 상기 인터페이스 회로부터 보내게 하여, 상기 적어도 하나의 데이터 항목을 상기 캐시에 캐시되게 하는, 캐시 제어회로를 구비한다.
본 기술들은, 아래의 첨부도면에 나타낸 것과 같은 실시예들을 참조하여 예시로만 한층 더 설명한다:
도 1은 다수의 마스터 디바이스들과 다수의 슬레이브 디바이스들을 갖는 일 실시예의 일관성 인터커넥트 시스템을 개략적으로 도시한 것이고,
도 2는 일 실시예에 있어서 일관성 인터커넥트 시스템의 허브 디바이스의 일부의 부품을 개략적으로 도시한 것이고,
도 3은 일 실시예에 있어서 마스터 디바이스의 일부의 부품을 개략적으로 도시한 것이고,
도 4는 일 실시예에 있어서 요구 마스터, 타겟 마스터, 슬레이브 디바이스 및 또 다른 마스터와, 허브 디바이스와의 상호작용을 개략적으로 도시한 것이고,
도 5는 일 실시예에 있어서, 요구 마스터, 타겟 마스터, 또 다른 마스터와, 홈 노드(허브 디바이스)와의 사이에서 교환된 일 세트의 통신 메시지들의 예를 도시한 것이고,
도 6은 일 실시예에 있어서, 요구 마스터, 타겟 마스터, 홈 노드(허브 디바이스)와, 슬레이브 데이터 저장 디바이스와의 사이에서 교환된 일 세트의 통신 메시지들의 예를 도시한 것이고,
도 7은 일 실시예에 있어서, 요구 마스터, 홈 노드(허브 디바이스)와, 슬레이브 데이터 스토리지와의 사이에서 교환된 일 세트의 통신 메시지들의 예를 도시한 것이고,
도 8은 일 실시예의 방법에서 취해진 일련의 단계들을 도시한 것이다.
일부의 실시예에서는, 일 세트의 일관성 프로토콜 트랜잭션들의 캐시 사전채움 요구를, 적어도 하나의 데이터 항목을 지정하는 요구 마스터 디바이스로부터 수신하는 인터페이스 회로; 및 상기 캐시 사전채움 요구의 수신에 응답하여, 상기 적어도 하나의 데이터 항목을 지정하는 상기 세트의 일관성 프로토콜 트랜잭션들의 캐시 사전채움 트리거를 타겟 디바이스에 송신시키는 트랜잭션 제어회로를 구비하는, 일관성 인터커넥트 시스템용 허브 디바이스가 있다.
그러므로, 상기 일관성 인터커넥트 시스템의 나머지를 구성하는 다수의 상이한 디바이스들을 함께 연결하는 일관성 인터커넥트 부품일 수도 있는 상기 일관성 인터커넥트 시스템용 허브 디바이스는, 이렇게 하여 상기 시스템에서 특별한 마스터 디바이스로부터 수신될 수도 있는 새로운 타입의 요구에 응답하도록 배치되고, 상기 일관성 인터커넥트 시스템의 상기 디바이스들이 서로 교환하도록 배치된 일 세트의 일관성 프로토콜 트랜잭션들의 일부를 형성한다. 요구 마스터 디바이스로부터 수신된 본 캐시 사전채움 요구는 적어도 하나의 데이터 항목을 가리키고, 응답시에 상기 허브 디바이스의 상기 트랜잭션 제어회로는 (상기 시스템의 디바이스들이 서로 교환되도록 배치되는 상기 세트의 일관성 프로토콜 트랜잭션들의 일부도 형성하는) 캐시 사전채움 트리거를, 상기 적어도 하나의 데이터 항목을 지정하는 상기 시스템에서의 타겟 디바이스에 송신시킨다. 이에 따라, 상기 트랜잭션 제어회로가 적어도 제1 인스턴스에서 상기 타겟 디바이스에 송신되게 하는 것은, 캐시 사전채움 트리거이고, 상기 적어도 하나의 데이터 항목 자체는 아니라는 것을 주목해야 한다. 그럼에도 불구하고, 상기 캐시 사전채움 트리거는 상기 적어도 데이터 항목을 지정하므로, 응답시에 상기 타겟 디바이스 자체는, 그 적어도 하나의 데이터 항목을 그것의 캐시에 운반되게 하기 위해서 상기 캐시 사전채움 트리거에 응답하고 싶은지를 평가할 수 있다. 이것은, 이 적어도 하나의 데이터 항목이 요구되는 것보다 앞서 그 캐시에 상기 적어도 하나의 데이터 항목을 사전에 채울 것이다. 그렇지만, 상기 캐시 사전채움 트리거에 대한 상기 타겟 디바이스의 응답이, 그 타겟 디바이스의 특성에도 의존할 수도 있다는 것을 주목해야 한다. 상기 예에서는 상기 타겟 디바이스가 마스터 디바이스라고 상정하지만, 그 밖의 예에서는, 슬레이브 디바이스, 이를테면, 상기 지정된 데이터 항목(들)을 제공하여서 상기 캐시 사전채움 트리거에 응답할 수도 있는, 즉 다른 곳에서 캐시될 수 있는 메모리이어도 된다.
타겟 디바이스가 상기 캐시 사전채움 트리거에 반응하는 방법의 판정을 행할 때, 다양한 기준들에 따라 이것을 행해야 하는지를 평가하여도 된다. 예를 들면, 이 기준들은, 상기 캐시가 현재 얼마나 바쁘고 상기 요구가 처리할 수 있는 타입을 갖는지일 수도 있고, 이전에 액세스된 데이터 어드레스들의 저장된 표시들과 같은 각종 데이터와, 그 어드레스들이 액세스되었을 때, 상기 캐시에 저장되는 데이터가 유용하게 된 이전의 트리거에 얼마나 자주 응답하는지에 대한 휴리스틱 등을 이용하여도 된다. 대체로, 이 때문에, 적어도 하나의 데이터 항목을 타겟 캐시에 사전에 채우게 하기 위한 이 메카니즘은, 비요청된 데이터는 상기 타겟 캐시에 밀어 넣지 않고, 오히려 상기 지정된 적어도 하나의 데이터 항목을 사전에 채우도록 선택할 수 있는 것을 상기 캐시에 "제안한다(suggest)"는 것을 특히 주목한다. 따라서, 이것은, 상기 비요청 데이터 항목들의 수신의 처리를 지원하는데 필요한 또 다른 시스템 부품과 상기 관련된 관리 메카니즘들로부터 비요청 데이터가 강요되는 것을 예상하고 캐시에 이용 가능한 저장 공간을 예약해둘 필요가 없다. 그럼에도 불구하고, 또 다른 시스템 부품(상기 타겟 디바이스)에 대해 상기와 같은 사전채움 "제안"을 하게 상기 시스템 전체내에서 일어나는 데이터 처리에 대해서 가지므로 상기 시스템 전체에서 실시한 상기 데이터 처리의 효율성이 보다 커지게 할 수 있다는 지식을, 하나의 시스템 부품(상기 요구 마스터 디바이스)이 이용할 수 있는 메카니즘을 제공한다.
상기 허브 디바이스로부터 송신된 상기 캐시 사전채움 트리거의 수신자인 상기 타겟 디바이스는 상기 시스템내에서 아주 다양한 형태를 취할 수 있고, 많은 상이한 타입의 디바이스들은 그와 같은 캐시 사전채움 트리거에 응답하도록 구성될 수 있는 것으로 예상된다. 그렇지만, 일부의 실시예에서, 상기 타겟 디바이스는 캐시를 포함하는 타겟 마스터 디바이스이고, 상기 캐시 사전채움 트리거는, 상기 적어도 하나의 데이터 항목의 복사본을 그것의 캐시내에 회수시킬지를 상기 타겟 마스터 디바이스에 의해 판정되어야 하는 것을 가리킨다. 상기 적어도 하나의 데이터 항목의 복사본을 그 캐시내에 회수시킬지의 판정은, 캐시를 구비하는 상기 타겟 마스터 디바이스 자체, 엄밀히 말해서 상기 타겟 마스터 디바이스 자체에 의해서, 또는 상기 캐시 자체(또는 적어도 상기 캐시 자체와 직접 관련된 제어회로)나 이 2개의 조합에 의해서인지 다수의 상이한 방식으로 시행되어도 된다. 어느쪽이든, 상기 설명 후에, 상기 적어도 하나의 데이터 항목의 복사본을 회수시켜야하는지를 판정하는 상기 타겟 마스터 디바이스에서의 국소적 판정이라는 것을 알 것이다. 또한, 이 때문에, 예를 들면 현재 너무 바쁘거나 너무 가득차서 이 적어도 하나의 데이터 항목을 수용할 수 없을 때 상기 캐시 사전채움 트리거를 무시하도록 상기 타겟 디바이스 간단히 선택하여도 된다는 것도 알아야 한다.
상기 캐시 사전채움 요구를 발행하는 상기 요구 마스터 디바이스는, 그 자신의 캐시에서 이용 가능한 상기 적어도 하나의 데이터 항목의 캐시된 복사본을 가질 때 그렇게 해도 된다. 예를 들면, 상기 캐시 사전채움 요구는, 상기 적어도 하나의 데이터 항목의 상기 캐시된 복사본에 관한 그 자신의 로컬 처리 후에 상기 요구 마스터 디바이스에서 발행한 기록 요구의 형태를 취하여도 된다. 이에 따라, 이러한 실시예에서 상기 적어도 하나의 데이터 항목의 복사본을 요구하여서 상기 캐시 사전채움 트리거에 응답하도록 상기 타겟 디바이스가 선택하는 경우, 상기 요구 마스터 디바이스에서 보유한 상기 캐시된 복사본은, 그 복사본을 제공하고 메모리로부터의 검색 지연을 피할 수도 있다. 이에 따라, 일부의 실시예에서, 상기 캐시 사전채움 요구는, 상기 요구 마스터 디바이스가 상기 이용 가능한 적어도 하나의 데이터 항목의 캐시된 복사본을 갖는 것을 지정한다.
이와는 달리, 일부의 실시예에서, 상기 캐시 사전채움 요구는, 상기 적어도 하나의 데이터 항목을 저장하는 또 다른 슬레이브 디바이스로부터 상기 적어도 하나의 데이터 항목이 검색될 수 있다는 것을 지정한다. 이렇게 하여, 이러한 실시예에서, 상기 요구 마스터 디바이스는, 상기 이용 가능한 적어도 하나의 데이터 항목의 캐시된 복사본을 갖지 않는다(또는 적어도 상기 타겟 디바이스에 그 복사본이 제공되는 것이 부적절하다)는 것과, 상기 데이터 항목을 검색하는 위치(상기 또 다른 슬레이브 디바이스)를 지정하도록 선택할 수 있다는 것을, 가리킬 수 있다.
상기 데이터 항목을 검색하는 또 다른 슬레이브 디바이스를 지정하는 이러한 종류의 캐시 사전채움 요구는, 다양한 수신자에, 상기 또 다른 슬레이브 디바이스로부터 상기 적어도 하나의 데이터 항목을 검색하는 것을 요구하도록 자신이 선택할 수 있는 또 다른 마스터 디바이스에, 보내져도 되거나, 또는 그 밖의 실시예에서는 상기 캐시 사전채움 요구는 상기 또 다른 슬레이브 디바이스 자체에 보내질 수 있었다. 따라서, 일부의 이러한 실시예에서, 상기 타겟 디바이스는 상기 또 다른 슬레이브 디바이스이고, 상기 캐시 사전채움 트리거는 상기 또 다른 슬레이브 디바이스가 상기 적어도 하나의 데이터 항목의 복사본을 상기 허브 디바이스에 반환시켜야 하는 것을 가리킨다. 달리 말하면, 이러한 실시예에서 (데이터 처리용) 적어도 하나의 데이터 항목의 최종적인 목적지는 상기 요구 마스터 디바이스에 의해 지정되지 않고 이 메카니즘은 상기 적어도 하나의 데이터 항목을 상기 허브 디바이스에 검색되게 하고, 당분간, 어쩌면 또 다른 것은 없을 것이라는 것을 알 것이다. 그럼에도 불구하고, 메모리 지연은, 상기 데이터 항목(들)이 나중에 요구될 장소에 보다 가깝게 캐시되게 함으로써 감소된다. 상기 허브 디바이스에는, 적절한 때에, 상기 시스템에서의 그 밖의 디바이스에 제공될 수 있는 상기 데이터 항목 복사본들을 보유하도록 버퍼나 캐시 등의 그 자신의 로컬 스토리지가 구비되어도 된다.
따라서, 상기 캐시 사전채움 요구는 타겟 디바이스의 사양을 포함하거나 포함하지 않아도 되는 것으로 예상된다. 일부의 실시예에서, 상기 캐시 사전채움 요구는 상기 타겟 디바이스를 지정하고, 그 밖의 실시예에서 상기 캐시 사전채움 요구는 상기 타겟 디바이스를 지정하지 않는다. 상기 타겟 디바이스를 지정하지 않는 것은 상기 규정된 세트의 일관성 프로토콜 트랜잭션들에 적절한 다양한 방식으로 구현되어도 되지만, 일부의 실시예에서는 상기 캐시 사전채움 요구에 있어서 상기 타겟 디바이스를 지정하도록 제공된 필드는 무효 타겟 디바이스 식별자를 가리킨다.
상기 허브 디바이스는 상기 타겟 디바이스를 지정하지 않는(또는 적어도 무효 타겟 디바이스 식별자를 가리키는) 캐시 사전채움 요구에 대해 다양한 방식으로 응답하여도 되지만, 일부의 실시예에서, 상기 트랜잭션 제어회로는 상기 캐시 사전채움 요구의 수신에 응답하여, 상기 캐시 사전채움 트리거를, 상기 적어도 하나의 데이터 항목이 저장되는 또 다른 슬레이브 디바이스에 송신시킴으로써, 상기 적어도 하나의 데이터 항목을 상기 허브 디바이스와 관련된 캐시에 캐시시킨다. 이에 따라, 상기 허브 디바이스는, 수신된 상기 캐시 사전채움 요구에서 타겟 디바이스를 지정하지 않은 경우, 예를 들면 상기 적어도 하나의 데이터 항목을 저장하는 슬레이브 디바이스일 수도 있는 타겟 자체를 추가하고 나서, 그 슬레이브 디바이스가 상술한 것처럼 단지 상기 적어도 하나의 데이터 항목을 제공함으로써 상기 트리거에 응답할 수 있는, 능력을 가질 수 있다. 게다가, 그 후, 이것은, 상기 허브 디바이스와 관련된 캐시에 상기 적어도 하나의 데이터 항목을 캐시시킬 수 있다. 이 캐시는, 다양한 형태를 취할 수 있지만, 상기 허브 디바이스에 연결된 시스템 캐시 등이어도 된다.
그렇지만, 또 다른 슬레이브 디바이스로부터 상기 적어도 하나의 데이터 항목의 검색으로 상기 허브 디바이스에 또는 근방에 상기 적어도 하나의 데이터 항목이 저장될 필요가 없고, 일부의 실시예에서, 상기 트랜잭션 제어회로는, 상기 캐시 사전채움 요구의 수신에 응답하여, 상기 적어도 하나의 데이터 항목을 저장하는 또 다른 슬레이브 디바이스에 상기 캐시 사전채움 트리거를 송신시킴으로써, 상기 또 다른 슬레이브 디바이스와 상기 허브 디바이스 사이에 위치된 임시 저장 디바이스에 상기 적어도 하나의 데이터 항목을 저장시키는 것으로 예상된다. 이 임시 저장 디바이스는, 예를 들면 다른 캐시, 이를테면 상기 또 다른 슬레이브 디바이스(예를 들면, 메모리)와 상기 허브 디바이스 사이에 위치된 레벨3(L3)이어도 되고, 또한, 이러한 목적을 위해 제공된 다양한 버퍼, 또는 상기 또 다른 슬레이브 디바이스보다 상기 허브 디바이스에 보다 근접한(즉, 상기 허브 디바이스에 대해 검색 지연이 보다 낮은) 상기 적어도 하나의 데이터 항목을 보유하도록 임의의 다른 형태의 임시 저장 디바이스일 수도 있다.
그 밖의 실시예에서, 상기 트랜잭션 제어회로는, 상기 타겟 디바이스를 지정하지 않는 상기 캐시 사전채움 요구의 수신에 응답하여, 상기 캐시 사전채움 트리거를 송신하는 상기 타겟 디바이스를 선택한다. 이에 따라, 상기 허브 디바이스는, 타겟 디바이스, 예를 들면, 상기 사전채움 트리거를 송신하는 상기 시스템에서의 전용 캐시를 갖는 마스터 디바이스 등을 지정할 수 있다.
상기 허브 디바이스는 다수의 상이한 기준에 따라 상기 타겟 디바이스를 선택하여도 되지만, 일부의 실시예에서 상기 허브 디바이스는 연결된 마스터 디바이스들을 위한 데이터 액세스 패턴들을 저장하는 데이터 액세스 패턴회로를 더 구비하고, 상기 트랜잭션 제어회로는 상기 데이터 액세스 패턴들에 따라 상기 타겟 디바이스를 선택하도록 배치된다. 이에 따라 상기 허브 디바이스는, 그들의 데이터 액세스 패턴들에 근거하여, 이 적어도 하나의 데이터 항목이 곧 사용 가능할 것이라고 예상될 수도 있는 타겟 디바이스를 결정할 수 있다. 상기 데이터 액세스 패턴들 자신은 다양한 형태를 취하여도 되지만, 예를 들면 스레드들의 테이블, 다양한 어드레스들 등으로서 제공되어도 된다.
이러한 일부의 실시예에서, 상기 데이터 액세스 패턴들은, 상기 연결된 마스터 디바이스들이 상기 데이터 액세스 패턴들에 나타낸 액세스된 데이터를 가질 때의 표시를 포함한다. 달리 말하면, 이러한 실시예에서 상기 데이터 액세스 패턴들은, 예를 들면 이 적어도 하나의 데이터 항목에 가장 최근에 액세스하였다는 것에 기초하여, 어느 연결된 마스터 디바이스가 이 적어도 하나의 데이터 항목을 갖는 그것의 캐시의 사전채움으로부터 이로울 가능성이 아주 높을지를, 상기 허브 디바이스가 더 잘 판단 가능하게 하는 시간 성분을 더 포함한다.
일관성 인터커넥트 시스템에서의 허브 디바이스는, 요구된 일관성을 유지하기 위해서 상기 시스템내에서 일어나야만 하는 스눕 연산에 역할을 행하는 것을 가능하게 하는 스눕 필터회로를 구비하여도 되고, 일부의 실시예에서 상기 허브 디바이스는, 이러한 스눕 필터회로와, 상기 캐시 사전채움 트리거를 송신하는 상기 타겟 데이터 디바이스를 선택할 때 저장하는 캐시된 데이터의 표시를, 한층 더 이용할 수 있다. 예를 들면, 상기 스눕 필터회로에 저장된 캐시 데이터의 표시가 타겟 디바이스가 이미 상기 적어도 하나의 데이터 항목의 유효한 최신 복사본을 보유하는 것을 가리키는 경우, 상기 허브 디바이스는 상기 캐시 사전채움 요구를 이 타겟 디바이스에 불필요하게 송신시키지 않을 것이다. 또한, 상기 스눕 필터회로에 저장된 캐시된 데이터의 표시는 상기 연결된 마스터 디바이스들이 보유한 캐시된 데이터 항목들의 일관성 상태도 가리킬 수도 있고 또한, 상기 적어도 하나의 데이터 항목의 캐시 복사본의 일관성 상태는 상기 타겟 디바이스가 상기 데이터의 "유일한" 복사본을 보유할 때등에 상기 캐시 사전채움 트리거를 상기 타겟 디바이스에 송신하는 것을 억제하는데도 사용될 수도 있지만, 상기 캐시 사전채움 요구는 상기 적어도 하나의 데이터 항목의 "공유된" 복사본이 그것의 대상인 것을 가리키고 있다.
이에 따라, 일부의 실시예에서, 상기 캐시 사전채움 요구는, 상기 적어도 하나의 데이터 항목이 캐시될 때 라벨이 붙여지는 일관성 상태를 지정한다. 일반적으로, 상기 요구 마스터 디바이스는, 그것의 지식, 예를 들면 상기 데이터가 판독 전용일 가능성이 높거나 수정되어도 되는지에 따라 상기 일관성 상태를 지정함으로써 상기 시스템의 효율을 향상시킬 수 있다.
따라서, 이러한 일부의 실시예에서, 상기 일관성 상태는, 상기 적어도 하나의 데이터 항목이 캐시될 때, 상기 적어도 하나의 데이터 항목에 대하여 상기 일관성 인터커넥트 시스템과 일관성 프로토콜 트랜잭션들과의 또 다른 교환 없이 갱신시키는 것을 가리키는 수정가능 상태다. 예를 들면, 이것은, 상기 관련된 처리 디바이스가 대응한 캐시 라인(즉, 캐시될 때 상기 적어도 하나의 데이터)의 콘텐트를 수정하기를 원한다고 예상될 때 이로울 수 있는 "유일한" 일관성 상태로서 라벨이 붙여져도 된다.
이러한 그 밖의 실시예에서, 상기 일관성 상태는, 상기 적어도 하나의 데이터 항목이 캐시될 때, 상기 적어도 하나의 데이터 항목에 대해 갱신시키기 전에 상기 일관성 인터커넥트 시스템과 일관성 프로토콜 트랜잭션들과의 또 다른 교환이 필요한 것을 가리키는 수정불가능한 상태다. 예를 들면, 이것은, 상기 관련된 처리 디바이스가 판독하기 위한 상기 캐시 라인(즉, 상기 캐시된 적어도 하나의 데이터 항목)만을 필요로 하는 것으로 예상될 때 사용되어도 되는 "공유된" 일관성 상태로서 라벨이 붙여져도 되고, 그 후, 이 캐시 라인(즉, 상기 적어도 하나의 데이터 항목)은, 이렇게 라벨이 붙여진 상태에서 그 밖의 디바이스에서의 상기 라인의 그 밖의 복사본들을 무효화할 필요가 없도록 캐시되는 것을 보장하는 것이 이로울 수도 있다.
일부의 실시예에서, 일관성 인터커넥트 시스템에서 허브 디바이스의 작동 방법은, 일 세트의 일관성 프로토콜 트랜잭션들의 캐시 사전채움 요구를, 적어도 하나의 데이터 항목을 지정하는 요구 마스터 디바이스로부터 수신하는 단계; 및 상기 적어도 하나의 데이터 항목을 지정하는 상기 세트의 일관성 프로토콜 트랜잭션들의 캐시 사전채움 트리거를 타겟 디바이스에 송신시켜서 상기 캐시 사전채움 요구의 수신에 응답하는 단계를 포함한다.
일부의 실시예에서, 일관성 인터커넥트 시스템용 마스터 디바이스는, 캐시; 일 세트의 일관성 프로토콜 트랜잭션들의 캐시 사전채움 트리거를, 적어도 하나의 데이터 항목을 지정하는 허브 디바이스로부터 수신하는 인터페이스 회로; 및 상기 캐시 사전채움 트리거의 수신에 응답하여, 적어도 하나의 또 다른 기준에 근거하여 상기 캐시 사전채움 트리거에 작용할지를 판정하고; 본 캐시 제어회로가 상기 캐시 사전채움 트리거에 작용한다고 판정할 때, 상기 적어도 하나의 데이터 항목을 지정하는 상기 세트의 일관성 프로토콜 트랜잭션들의 캐시 채움 트랜잭션을 상기 인터페이스 회로부터 보내게 하여, 상기 적어도 하나의 데이터 항목을 상기 캐시에 캐시되게 하는, 캐시 제어회로를 구비한다.
이하, 일부의 특별한 실시예를 상기 도면들을 참조하여 설명하겠다.
도 1은 일 실시예에서 본 기술들을 구현하는 데이터 처리 시스템(10)을 개략적으로 도시한 것이다. 본 도면으로부터 알 수 있듯이, 이것은, 다수의 상이한 마스터 디바이스들과 다수의 상이한 슬레이브 디바이스들을 포함하는 상대적 이기종 시스템이지만, 그 밖의 실시예는 마찬가지로 보다 많은 동종일 수 있다. 도 1에 도시된 마스터 디바이스들은, 중앙처리 디바이스(14), 그래픽 처리 디바이스(16), 직접 메모리 액세스 디바이스(DMA)(18), 및 I/0 일관성 마스터(20)를 구비한다. 이 I/0 일관성 마스터(20)는, 또 다른 네트워크(미도시됨)와 통신하기 위한 상기 네트워크 인터페이스 카드(NIC)(40)에 브리지를 제공한다. 도 1의 예에 도시된 슬레이브 디바이스들은, 메모리들(22, 24), 주변기기(26) 및 시스템 캐시(28)를 구비한다. 모든 이들 디바이스끼리의 통신 및 데이터 전송은, 여기서 홈 노드나 허브 디바이스로서 다양하게 말한 상기 일관성 인터커넥트(12)에 의해 중재된다. 본 도면에서도 알 수 있듯이, CPU 디바이스(14)는 특정 CPU 블록(30)과 연관 로컬(즉, L1) 캐시(34)를 구비하도록 도시되어 있고, 상기 그래픽 처리 디바이스(16)는 특정 GPU 블록(32)과 로컬(L1) 캐시(36)를 구비하게 도시되어 있고, 상기 I/0 일관성 마스터(20)에는 그 자신의 로컬(L1) 캐시(38)도 구비되어 있다. 도 1에 상기 도시된 디바이스끼리의 통신은, 상기 도시된 시스템 주변의 다수의 위치에 저장된 상기 다수의 데이터 항목들의 복사본들의 일관성이 유지되는 것을 가능하게 하는 일 세트의 일관성 프로토콜 트랜잭션들로부터 규정된 형식 메시지들의 형태를 취한다. 이 세트의 일관성 프로토콜 트랜잭션들은, 고려중인 상기 시스템에 적합하듯이 다양하게 규정되어도 되지만, 이러한 적절한 일례는 영국 캠브리지의 ARM®사에서 제공한 AMBA® 5 CHI(일관성 허브 인터페이스) 사양이다. 여기서 개시된 기술들은, 이하의 도면들을 참조하여 보다 상세히 후술하는 것처럼, 이러한 사양이 상기 사양이 구현되는 시스템에서 캐시들의 사전채움을 한층 더 행하게 하는 것이 가능하도록 일 세트의 일관성 프로토콜 트랜잭션들이 규정되어도 되는 방식에 관한 것이다.
도 2는 도 1의 상기 일관성 인터커넥트(12)에 의해 나타낸 것 등의 일관성 인터커넥트 디바이스(즉, 홈 노드 또는 허브 디바이스)의 일부의 부품을 개략적으로 도시한 것이다. 시각적 이해를 쉽게 하기 위해 3개의 별도의 부품에 의해 본 도면에 도시된 인터페이스 회로(14)를 구비하는 이 허브 디바이스는 도 2에 도시되어 있지만, 상기 인터페이스 회로의 이들 부분들은 실제로, 인터페이스가 제공되어야 하는 특별한 디바이스들에 따라, 일부의 실시예에서 서로 물리적으로 분리되지 않아도 된다. 상기 인터페이스 회로(14)는 상기 시스템내의 마스터 디바이스로부터 캐시 사전채움 요구를 수신하도록 구성되고, 이것은 상기 트랜잭션 제어회로(16)에 건네진다. 상기 캐시 사전채움 요구의 수신에 응답하여, 상기 트랜잭션 제어회로는 캐시 사전채움 트리거를 상기 인터페이스 회로(14)를 거쳐 타겟 디바이스에 발행시킨다. 이 타겟 디바이스는, (본 실시예에서) 원리상 도 1의 상기 인터커넥트(12)에 연결된 디바이스들 중 어느 하나일 수 있다. 보다 상세히 후술하듯이, 이 캐시 사전채움 트리거의 수신에 응답하여, 상기 타겟 디바이스(예를 들면, 마스터 디바이스 및/또는 그 캐시)는, 상기 캐시 사전채움 트리거에서 지정된 상기 적어도 하나의 데이터 항목에 그 캐시에서의 임시 저장을 위해 검색시키는 것을 요구하도록 선택하여도 된다. 그 밖의 예에서, 상기 타겟 디바이스는 도 1에 도시된 것처럼 상기 메모리들(22, 24) 등의 슬레이브 디바이스이고, 따라서, 상기 캐시 사전채움 트리거에 의해, 이들 슬레이브 디바이스들 중 하나는, 상기 적어도 하나의 데이터 항목이 상기 시스템 내의 임의의 위치에: 예를 들면, 상기 메모리와 상기 일관성 인터커넥트 사이의 경로상에, 상기 일관성 인터커넥트에, 상기 일관성 인터커넥트와 관련된 저장 디바이스(이를테면 상기 시스템 캐시(28))에 저장될 수 있거나, 상기 일관성 인터커넥트(12)에 의해 캐시를 구비하는 상기 마스터 디바이스들 중 어느 하나에 전송될 수 있도록, 상기 캐시 사전채움 요구에서 지정된 상기 적어도 하나의 데이터 항목의 복사본을 반환할 수 있다.
이에 따라, 도 2에 도시된 것처럼, 상기 허브 디바이스는, 자신의 인터페이스 회로(14)를 거쳐 (실제로, 도 1에 도시된 상기 메모리 22 또는 24 중 하나이어도 되는) 시스템 캐시(28)와 슬레이브 저장 디바이스(40)의 양쪽에 연결된다. 상기 허브 디바이스(12)는, 예를 들면, 요구 마스터 디바이스로부터 수신된 상기 캐시 사전채움 요구가 상기 타겟 디바이스를 지정하지 않을 때 행하여도 되는, 상기 트랜잭션 제어회로(16)가 참조할 수 있는 데이터 액세스 패턴들 스토리지(42)를 더 구비한다. 그 후, 상기 트랜잭션 제어회로는, 상기 캐시 사전채움 트리거가 상기 데이터 액세스 패턴들 스토리지(42)에 저장된 상기 데이터 액세스 패턴들에 근거하여 송신되어야 하는 적절한 타겟 디바이스를 결정 가능하여도 된다. 상기 데이터 액세스 패턴들 스토리지(42)는, 각종 상이한 타입의 데이터를 저장할 수 있었지만, 본 실시예에서는, 그 스토리지가, 다양한 어드레스들과, 이렇게 액세스하는 상기 마스터 디바이스들과 함께 그 어드레스들이 액세스되었을 때의 표시를 포함하는 것으로 예상된다. 따라서, 캐시 사전채움 요구의 수신시에 주어진 데이터 항목을 (그것의 메모리 어드레스에 의해) 지정하는 상기 트랜잭션 제어회로는, 데이터 액세스 패턴들 스토리지(42)에 저장된 상기 다양한 어드레스들을 참조하고, 그 데이터 항목에 최근에 액세스 하였으므로 그 다음에 상기 캐시 사전채움 트리거를 송신하는 상기 타겟 디바이스가 되는 양호한 후보를 나타내는 마스터 디바이스의 상기 스토리지 내부에, 표시가 저장되는지를 판정할 수 있다.
그렇지만, 도 2에 도시된 상기 트랜잭션 제어회로(16)는 스눕 필터회로(44)도 참조하고, 어쨌든 사전채움 트리거를 타겟 디바이스에 전송할지 및/또는 어느 타겟 디바이스가 상기 캐시 사전채움 트리거를 수신해야 하는지를 판정할 때 그 제어회로 내부에 저장된 정보를 이용할 수 있다(이것은 상기 수신된 요구에서 지정되어 있지 않은 경우임). 단지 간략을 기하기 위해서, 일관성 인터커넥트 내의 스눕 필터의 제공은 종래의 통상의 기술 중 하나에 공지되어 있고, 여기서는 그에 대해 상세하게 설명되지 않는다. 그렇지만, 상기 스눕 필터회로가 상기 시스템에서 각종 위치에 캐시된 데이터 항목들의 저장된 표시들과 그 항목들의 일관성 상태를 포함하는 경우, 예를 들면, 수신된 상기 캐시 사전채움 요구가 타겟 디바이스를 지정하고 상기 스눕 필터회로에서의 정보가 이미 상기 적어도 하나의 데이터 항목의 유효 복사본을 상기 지정된 타겟 디바이스가 보유하는 것을 가리키는 경우, 본 기술들의 맥락에서, 상기 트랜잭션 제어회로는 그 정보를 이용한다. 그 후, 캐시 사전채움 트리거를 그 타겟 디바이스에 보낼 필요가 없다고 결론을 내릴 수도 있다. 그 밖의 예에서는, 상기 캐시 사전채움 요구에서의 데이터 항목에 대한 지정된 일관성 상태가 상기 시스템내의 또 다른 캐시에 저장되고 상기 스눕 필터회로(44)에 기록된 상기 데이터 항목에 대한 캐시 일관성 상태와 양립할 수 없는 타겟 디바이스에, 캐시 사전채움 트리거를 보내는 것을 막을 수도 있다. 예를 들면, 상기 캐시 사전채움 트리거에 의해 (작용되는 경우) 상기 적어도 하나의 데이터 항목은 "유일한" 상태를 갖지만 상기 스눕 필터의 콘텐트가 또 다른 위치에 이미 상기 데이터 항목을 "유일한"으로서 저장하는 것을 가리킨다고 상기 캐시 사전채움 요구가 지정하는 경우, 상기 캐시 사전채움 트리거를 상기 지정된 타겟 디바이스에 송신하지 않는데, 그 이유는 상기 데이터 항목의 유일한 복사본에 대한 상기 타겟 디바이스에 의한 요구가 현재 충족될 수 없기 때문이다. 끝으로, 상기 트랜잭션 제어회로(16)는, 상기 허브 디바이스(12)가 상기 시스템내의 그 밖의 디바이스간에 천이상태에 있는 데이터 항목들의 복사본들을 임시로 보유하는 것을 가능하게 하는 버퍼(16)를 구비하는 것으로서도 도시되어 있다.
도 3은 타겟 디바이스를 말한 상기의 일례인 마스터 디바이스(50), 즉 캐시 사전채움 트리거의 수신자를 개략적으로 도시한 것이다. 상기 마스터 디바이스(50)는, 일관성 프로토콜 트랜잭션들을 상기 일관성 인터커넥트를 거쳐 상기 시스템의 그 밖의 부품들과 교환하는 인터페이스 회로(52)를 구비한다. 상기 마스터 디바이스(50)내에는, 일반적으로, 상기 캐시 스토리지(54)와 그것의 관련된 캐시 제어기(56)를 구비하는 것으로서 본 도면에 도시된 캐시가 도시되어 있다. 그렇지만, 본 도면에 도시된 것처럼, 부품(56)은 실제로 인터페이스 제어기로서 제공되어도 되고, 캐시 제어기 또는 인터페이스 제어기 중 어느 한쪽이 상기 인터페이스 회로(52)를 거쳐 수신된 상기 캐시 사전채움 트리거를 처리할 수 있었다. 어느 쪽이든, 설명된 실시예에서, 그 제어기는, 액세스 패턴 스토리지(58)와 휴리스틱 스토리지(60)로 이루어진다. 본질적으로, 상기 캐시 사전채움 트리거의 수신시에, 상기 캐시와 관련된 상기 제어하는 부분은, 상기 트리거에 작용하여, 상기 지정된 데이터 항목이나 항목들을 상기 시스템내의 다른 곳으로부터 검색하고 상기 캐시 스토리지(54)에 저장하기 위한 요구를 발행할지를 결정한다. 이러한 결정을 하는 프로세스는, 제1 결정레벨에서, 상기 제어기가, 상기 캐시가 심지어 수신된 (일관성 프로토콜 트랜잭션의 형태의) 상기 특별한 캐시 사전채움 트리거에 응답하는 것이 가능할 수도 있는지를 결정해야 한다는 점에서 계층적으로 실행될 수 있다. 응답하는 것이 가능하지 않을 경우, 상기 처리는 그냥 그 지점에서 종료한다. 결정하는 다음 레벨에서는, 상기 제어기는, 상기 제안된 데이터 항목(들)을 수용하기 위해서, 상기 캐시가 현재 너무 바쁜지 이용가능한 공간(또는 퇴거시키지 못할 이유가 없는 최소한 캐시 희생물)이 없는지를 판정할 수 있다. 그 후, 끝으로, 상기 제어기는, 그것의 액세스 패턴 스토리지(58) 및/또는 그것의 휴리스틱 스토리지(60)를 참조하여, 상기 캐시 사전채움 트리거에 응답할지 안할지를 판정할 수 있다. 상기 액세스 패턴 스토리지(58)는, 예를 들면, 스레드들과 그 스레드들이 액세스하는 관련된 어드레스들로 이루어진 테이블을 포함할 수 있어서, 상기 제어기는, 지정된 상기 데이터 항목(들)이 가까운 미래에 현재의 또는 곧 있을 스레드에 의해 액세스될 것이라고 예상하는 다양한 어드레스의 범위에 들어가는지를, 이 마스터 디바이스상에서 실시되는 현재의 처리에 근거하여 결정할 수 있다. 이와는 달리, 또는 추가로, 상기 액세스 패턴 스토리지에는, 특정한 메모리 어드레스들 또는 메모리 어드레스들의 범위들이 최근에 액세스되고나서 그것을 골자로 하여 상기 제어기가, 상기 적어도 하나의 데이터 항목을 상기 캐시에 사전에 회수할 가치가 있는 것으로 생각될지를 결정할 수 있을 때 보이는, 다양한 어드레스들과 관련된 시간 표시가 저장되어도 된다. 상기 휴리스틱 스토리지(60)는, 통계적 근거로, 트리거 요구(일반적으로, 특정한 어드레스들 또는 어드레스 범위들)에 대한 긍정적 응답이 캐시된 데이터 항목에서 상기 마스터 디바이스에 얼마나 자주 이용 가능하게 되었는지를 나타내도록 구성될 수 있다(즉, 그 데이터 항목에 대해, 상기 마스터 디바이스가 그것을 요구하기 직전에 상기 캐시에 저장시켰다). 그 후, 이렇게 나타내는 것은, 주어진 수신된 캐시 사전채움 트리거에 응답할지 않할지에 관한 결정을 위해 상기 제어기내에 규정된 역치들을 안내할 수 있다.
도 4는 본 기술들에 따라 상기 데이터 처리 시스템 부품의 일부가 어떻게 서로 작용하는지의 전반적인 원리를 설명하기 위해 상기 데이터 처리 시스템의 일부 부품들과 그들의 상호작용을 개략적으로 도시한 것이다. 본 시스템에서, 요구 마스터(70)는, 상기 허브 디바이스(인터커넥트)(72)에 송신되는 캐시 사전채움 요구를 발행한다. 이 캐시 사전채움 요구의 예는, 타겟 마스터를 지정한다. 상기 캐시 사전채움 요구의 수신시에, 상기 허브 디바이스(72)는, 상기 지정된 타겟을 식별하고, 캐시 사전채움 트리거를 그 타겟에 송신시킨다. 도 4에 도시된 상기 예에서는, 이것이, 자신의 L1 캐시(76)를 구비하는 바로 그 타겟 마스터(74)다. (도 3을 참조하여 상술한 예에 관하여) 응답시에, 상기 타겟 마스터는, 상기 캐시 사전채움 트리거에 대해 응답할지 안할지를 판정한다. 상기 타겟 마스터가 응답할 경우, 대응한 데이터 요구는 상기 허브 디바이스(72)에 반환된다. 이 데이터 요구에 응답하여, 상기 허브 디바이스(72)는, 그것의 국소적으로 액세스 가능한 시스템 캐시(78)로부터 또는, 데이터 요구를 슬레이브 저장 디바이스(80)에 보내고 나서 이 슬레이브 저장 디바이스가 그 데이터를 상기 허브 디바이스에 반환하는 것에 의해, 상기 지정된 데이터를 검색할 수 있다. 상기 요구된 데이터 항목의 상기 일관성 상태에 따라, 상기 허브 디바이스(72)는, 다른 마스터 디바이스(82) 자신의 로컬 캐시(84)도 구비하는 상기 시스템내의 (적어도 하나의) 상기 다른 마스터 디바이스에 스눕 요구도 보낼 수도 있고, 응답시에 상기 다른 마스터 디바이스는 상기 타겟 마스터(74)로부터 수신된 상기 데이터 요구에 어떻게 응답하는지에 관한 그 판정을 감안할 수 있는 스눕 응답을 제공한다. 따라서, 끝으로, 상기 슬레이브 디바이스로부터 상기 데이터의 검색과 상기 다른 마스터로부터의 상기 스눕 응답이 허용될 경우, 그 데이터는 상기 허브 디바이스(72)로부터 상기 타겟 마스터(74)의 캐시(76)에 전송된다.
도 5는 일례에서 일관성 인터커넥트 시스템의 디바이스끼리 교환된 일 세트의 통신(일관성 프로토콜 트랜잭션들)의 일례를 도시한 것이다. 이러한 특별한 예는, "WriteUnique"로서 분류되고 타겟 마스터 디바이스를 지정하는 캐시 사전채움 요구인 트랜잭션을 상기 요구 마스터가 상기 홈 노드(허버 디바이스)에 보낼 때의 상황을 설명하는 것이다. 종래기술의 통상의 기술 중 하나는, 영국 캠브릿지의 ARM®사에서 제공한 AMBA® 사양으로부터의 그 용어를 인식할 것이다. 이 때문에, 본 발명은 종래기술의 이해시에 통상의 기술 중 하나를 가능하게 하기 위해서, 그 트랜잭션에 대한 설명을 위한 근거로서 공지된 용어를 이용하고 있지만, 본 발명은 여기서 처음으로 제시된 기술들에 따라 상기와 같은 트랜잭션을 증가시키고 있다(즉, 캐시 사전채움 요구를 하기 위함)는 것을 주목하는 것이 중요하다. 이에 따라, 상기 홈 노드는, 현재 (이 기록 요구에서 상기 요구 마스터가 지정한) 상기 데이터를 수신하는데 가능한 공간을 갖지 않으면 진행하도록 확인응답을 상기 요구 마스터에 보낸다. 또한, 홈 노드는, 상기 캐시 사전채움 요구에서 지정된 상기 데이터 항목(들)을 지정하는 캐시 사전채움 트리거를 상기 타겟 마스터에 보내고, "SnoopUnique"도 상기 시스템의 (적어도 하나의) 다른 마스터에 보내고, 그 후 그 다른 마스터는 대응한 스눕 응답에 응답한다. 상기 캐시 사전채움 트리거에 응답하여, 상기 타겟 마스터는, (상기 트리거 메시지지를 정확히 수신한 것을 가리키는) 트리거 확인응답을 발행하고, 도 5의 상기 예에서 상기 타겟 마스터는 그 트리거에 작용하도록 결정하고 한층 더 "ReadUnique" 데이터 요구를 상기 홈 노드에 발행한다. 상기 홈 노드로부터 진행하도록 상기 확인응답을 수신한 상기 요구 마스터는, 상기 지정된 데이터 항목(들)의 상기 홈 노드에의 데이터 전송을 시작한다. 모든 스눕 응답들을 상기 홈 노드가 수신하였으면, 상기 홈 노드는 상기 캐시 사전채움 요구에 관련된 액션들이 지금 완료했다는 것을 가리키는 완료 응답을 상기 요구 마스터에 발행한다. 또한, 상기 홈 노드가 상기 요구 마스터로부터 그 데이터를 수신하였다면, 상기 홈 노드는, 완료 전송 확인응답에 응답하는 상기 타겟 마스터에, 그 데이터의 전송을 시작한다. 이렇게 하여, 그것의 "WriteUnique"에서 상기 요구 마스터에 의해 지정된 데이터 항목(들)은 상기 홈 노드에 전송되어 있고(그리고 적절한 경우 거기에서 메모리에 다 기록되어도 되고), 한층 더 이 데이터는 그것의 캐시를 사전에 채우기 위한 상기 타겟 마스터에도 제공되어 있다.
도 6은, 상기 타겟 마스터를 지정하지만 어떠한 데이터도 제공하지 않는 "ReadOnceShare" 트랜잭션으로서 분류된 판독 트랜잭션에 대한 상기 프로토콜에 근거하여, 상기 요구 마스터는 캐시 사전채움 요구를 발행하는 일례에 있어서 시스템 부품간 통신의 일례를 도시한 것이다. 상술한 것처럼, 이 트랜잭션의 설명을 위한 근거로서 공지된 용어의 이러한 이용은 종래기술의 이해시에 통상의 기술 중 하나를 가능하게만 하지만, 본 발명은 여기서 처음으로 제시된 기술들에 따라 상기와 같은 트랜잭션을 증가시키고 있다(즉, 캐시 사전채움 요구를 하기 위함)는 것을 주목하는 것이 또 중요하다. 이러한 타입의 캐시 사전채움 요구의 수신시에, 상기 홈 노드는, 상기 지정된 타겟 마스터에 송신되는 캐시 사전채움 트리거를 생성하고, 도시된 예에서, 상기 홈 노드는 "ReadNoSnoop" 트랜잭션을 상기 지정된 데이터가 저장되는 상기 슬레이브 디바이스에 추론적으로 이미 발행한다. 이러한 판독은 추론적이라는 것을 주목해야 하는데, 그 이유는 실제로 상기 타겟 마스터가 상기 트리거에 응답하고 그 데이터를 요구하는지 아직 공지되어 있지 않지만, 이러한 추론적 판독에 의해 지연이 감소될 수 있기 때문이라는 것을 주목해야 한다. 상기 캐시 사전채움 트리거에 대한 수신에 응답하여, 상기 타겟 마스터는, 트리거 확인응답을 상기 홈 노드에 발행하고 나서, 그 타겟 마스터가 상기 트리거에 작용하도록 선택할 때, "ReadShared" 트랜잭션을 상기 홈 노드에 발행한다. 이때에, 상기 홈 노드는, 상기 캐시 사전채움 트리거를 상기 타겟 마스터에 발행하였다면, 완료신호로 상기 요구 마스터에 상기 캐시 사전채움 요구 트랜잭션도 확인응답한다. 상기 ReadNoSnoop에 응답하여, 상기 슬레이브 디바이스는, 상기 요구된 데이터를 상기 홈 노드에 전송하고 나서, 상기 홈 노드는 수신시에 그 데이터를 상기 타겟 마스터에 전송한다. 끝으로, 상기 타겟 마스터는, 그 데이터를 수신하였을(그리고, 그 데이터와 함께 그것의 캐시를 채웠을) 때, 완료 전송 확인응답을 상기 홈 노드에 발행한다.
도 7은, 상기 요구 마스터가, 타겟 디바이스를 지정하지도 상기 지정된 데이터 항목(들)을 제공하지도 않는 캐시 사전채움 요구를 발행하는 일례를 도시한 것이다. 이러한 캐시 사전채움 요구에 응답하여, 상기 홈 노드는, 상기 지정된 데이터 항목(들)의 위치를 결정하고, "ReadNoSnoop"를 대응한 슬레이브 디바이스(데이터 스토리지)에 발행한다. 그 후, 상기 홈 노드는, 상기 캐시 사전채움 요구가 작용되었다는 것을 가리키는 완료 확인응답을, 상기 요구 마스터에 발행한다. 그 후, 상기 슬레이브 데이터 저장 디바이스로부터 반환된 데이터는, 그 시스템 구성과 그것의 현재 요구사항에 따라, 상기 시스템내의 각종 상이한 스토리지 부품들을 채울 수도 있다. 일반적으로, 및 도 7에 도시된 것처럼, 상기 슬레이브 디바이스는, 상기 ReadNoSnoop 요구에 응답하여 상기 요구된 데이터를 역으로 상기 홈 노드에 송신한다. 그렇지만, 본 도면에서 언급된 것처럼, 상기 시스템은, 상기 슬레이브 디바이스와 상기 홈 노드와의 사이에 삽입되는 (캐시나 버퍼이든간에) 일부의 다양한 중간 스토리지도 구비하여도 되고, 그 대신에 그 중간 스토리지를 채워도 된다. 그 후, 이 중간 스토리지는, 상기 전송의 완료의 신호를 상기 홈 노드에 보낸다(그리고, 그 데이터는 한층 더 송신되지 않는다). 그러나, 상기 홈 노드가 상기 데이터 전송의 타겟일 경우, 그 후, 상기 홈 노드는, 그 데이터를, 국소적으로, 예를 들면 관련된 시스템 캐시에 저장하도록 선택하여도 된다. 상기 특별한 시스템 구성에 따라, 상기 홈 노드는, 이와는 달리, 또는 추가로, 이 프로세스 전체의 완료의 신호를 보내도 된다. 중간 저장 디바이스에, 또는 상기 홈 노드와 관련된 저장 디바이스에 상기 데이터를 저장하였는지 간에, 그 트랜잭션이 완료되면, 역으로 상기 요구 마스터에 이것을 신호로 보낼 수도 있다.
도 8은 일 실시예의 방법으로 일관성 인터커넥트 시스템의 홈 노드에서 실시되는 일련의 단계들을 도시한 것이다. 단계 100에서 흐름이 시작되어, 캐시 사전채움 요구의 형태를 취하는 상기 홈(허브) 노드가 일관성 프로토콜 트랜잭션을 수신한다. 그 후, 단계 102의 흐름으로 진행되어, 상기 허브는, 그 요구가 기록 트랜잭션의 형태인지 아닌지를 판정한다. 기록 트랜잭션의 형태일 경우, 단계 104의 흐름으로 진행되어, 타겟 디바이스가 상기 요구에서 지정되는지를 판정한다. 이 요구에서 지정될 경우, 단계 106의 흐름으로 진행되어, 상기 허브는 캐시 사전채움 트리거를 그 지정된 타겟 디바이스에 보내고 나서, 단계 108에서 상기 허브는 스눕 요구들을 상기 시스템내의 다른 캐시들에 보낸다. 그 후, 그 다른 캐시들은 스눕 응답들을 제공하고, 단계 110에서, 상기 허브내에서 일시적으로 버퍼링된 가득 찬 캐시 라인을 형성하기 위해 임의의 부분적 캐시 라인들을 병합하는 것을 포함하는 상기와 같은 스눕 응답들 모두가 수신될 때까지, 그 흐름 자체에 관해 순환한다. 이것이 행해지면, 단계 112의 흐름으로 진행되어, 상기 타겟이 상기 캐시 사전채움 트리거의 수신에 응답하여 상기 지정된 데이터를 요구하였는지를 판정한다. 요구하지 않았을 경우, 그 흐름은 그냥 단계 114에서 종료되는 반면에, 요구하였을 경우에는, 단계 116의 흐름으로 진행되어, 상기 허브는 그 지정된 데이터를 상기 지정된 타겟에 전송하고 그 흐름이 단계 118에서 종료된다.
단계 104의 고려 사항으로 되돌아가서, 상기 기록 트랜잭션이 상기 캐시 사전채움 요구에 대한 타겟을 지정하지 않는다고 판정할 경우, 단계 120에서, 상기 허브는, 적절한 타겟을 지정할 수 있는지를 판정한다. 이것을, 상술한 것처럼 상기 데이터 액세스 패턴들 스토리지 및/또는 스눕 필터를 참조하여 행하여도 된다. 상기 허브가 타겟을 지정하지 않도록(할 수 없도록) 선택하는 경우, 단계 122의 흐름으로 진행되어, 상기 허브는, 그 데이터를, (도 7을 참조하여 상술한 것과 같은) 중간 저장 디바이스에 또는, 상기 허브에 국한된 스토리지, 이를테면 시스템 캐시에, 저장하는 상기 슬레이브 저장 디바이스로부터 검색하고, 단계 124에서 흐름을 종료한다.
단계 120의 고려 사항으로 되돌아가서, 상기 허브가 타겟을 지정하는 경우, 단계 126의 흐름으로 진행되어, 상기 허브는 상기 캐시 사전채움 트리거를 그 타겟에 보낸 후 (상술한 것처럼) 단계 112의 흐름으로 진행된다.
이제, 단계 102의 고려 사항으로 되돌아가서, 상기 캐시 사전채움 요구가 기록 트랜잭션이 아니라고 판정되었을 경우는, 단계 128의 흐름으로 진행되어, 상기 요구에서 타겟이 지정되었는지를 판정한다. 타겟이 지정되지 않았을 경우, 단계 130의 흐름으로 진행되어, (상술한 것처럼) 상기 허브는 타겟을 지정하여도 된다. 상기 허브가 타겟을 지정하지 않은 경우, (단계 132) 상기 허브는, 단지 그 데이터를, (단계 122를 참조하여 상술한 것과 같은 방식으로) 중간 저장 디바이스나 시스템 캐시에 저장하는 상기 슬레이브 저장 디바이스로부터 검색한다. 단계 134에서 그 흐름을 종료한다. 그렇지만, 상기 허브가 단계 130에서 타겟을 지정할 수 있거나 지정하도록 선택하는 경우, 단계 136의 흐름으로 진행되어, 상기 허브는 상기 지정된 데이터를 저장하는 상기 슬레이브 저장 디바이스로부터 그 데이터의 검색을 시작한다. 그 후, (상술한 것처럼) 단계 126의 흐름으로 진행된다.
이제, 단계 128의 고려 사항으로 되돌아가서, 상기 타겟이 지정되는 상황에서는, 단계 138의 흐름으로 진행되어, 상기 허브 디바이스는, 상기 지정된 타겟이 상기 데이터의 유효 복사본을 현재 보유하지 않는 것을 그 스눕 필터가 나타내는지를 판정한다. 그럴 경우, (상술한 것처럼) 단계 136의 흐름으로 진행된다. 그렇지만, 상기 지정된 타겟이 상기 지정된 데이터 항목(들)의 복사본을 현재 보유하는 것을 상기 스눕 필터 데이터가 나타내는 경우, 단계 140에서는, 상기 캐시 사전채움 요구가 "유일한" 타입을 갖는지 또는 상기 "공유된" 타입을 갖는지를 판정한다. 상기 요구가 "공유된" 타입을 갖는 경우, 그 흐름은 단계 142에 종료된다. 그렇지만, 상기 요구가 "유일한" 타입일 경우, 단계 144에서는, 상기 타겟이 상기 "공유된" 일관성 상태로 저장된 데이터를 갖는지를 판정하고, 그럴 경우, (상술한 것처럼) 단계 136의 흐름으로 진행된다. 이에 따라, 상기 타겟이 대응한 캐시 라인(즉, 상기 지정된 데이터 항목(들))을, 비록 상기 "공유된" 상태에서 복사본을 가질지라도 "유일한" 상태에서 얻을 수 있다. 그렇지만, 단계 144에서 상기 타겟이 상기 "유일한" 상태에서 그 데이터를 갖는다고 판정할 경우, 그 흐름은 단계 146에서 종료한다.
간략한 전반적인 요약에서는, 일관성 인터커넥트 시스템에서, 허브 디바이스와, 타겟 디바이스를 작동하는 장치 및 대응한 방법을 제시한다. 상기 시스템에서 일 세트의 일관성 프로토콜 트랜잭션들의 캐시 사전채움 요구는 적어도 하나의 데이터 항목을 지정하는 요구 마스터 디바이스로부터 수신되고, 상기 허브 디바이스는 상기 적어도 하나의 데이터 항목을 지정하는 상기 세트의 일관성 프로토콜 트랜잭션들의 캐시 사전채움 트리거를 타겟 디바이스에 송신시켜서 응답한다. 이 트리거에 의해, 상기 타겟 디바이스는 상기 지정된 적어도 하나의 데이터 항목이 캐시에 검색되어 운반되는 것을 요구할 수 있다. 이 때문에, 상기 타겟 디바이스가 상기 트리거에 응답할지 안할지를 결정할 수 있으므로, 상기 타겟 디바이스는 그 구성을 단순화하는 비요청된 캐시된 데이터를 수신하지 않고, 일부의 데이터를 사전 캐시시킬 수 있다.
본 출원에서, "...하도록 구성된"과 "하도록 배치된"의 단어는, 장치의 요소가 규정된 연산을 실시할 수 있는 구성을 갖는다는 것을 의미하는데 사용된다. 본 문맥에서, "구성"은, 하드웨어 또는 소프트웨어의 상호연결의 배치 또는 방식을 의미한다. 예를 들면, 상기 장치는 상기 규정된 연산을 제공하는 전용 하드웨어를 가져도 되거나, 프로세서 또는 다른 처리 디바이스는 그 기능을 행하도록 프로그래밍되어도 된다. "하도록 구성된" 또는 "하도록 배치된"은, 상기 장치 요소들이 임의의 방식으로 상기 규정된 연산을 제공하기 위해서 변경될 필요가 있다는 것을 암시하지는 않는다.
여기서는 본 발명의 실시예들을 첨부도면을 참조하여 상세히 설명하였지만, 본 발명은 구체적인 실시예들에 한정되지 않고, 첨부된 청구항에서 기재된 것과 같은 본 발명의 범위 및 사상으로부터 벗어나지 않고 당업자가 변경, 부가 및 변형을 여러 가지로 실시할 수 있다는 것을 알 수 있다. 예를 들면, 본 발명의 범위로부터 벗어나지 않고 종속항의 특징들과 독립항의 특징들을 여러 가지로 조합할 수 있다.

Claims (22)

  1. 일관성 인터커넥트 시스템용 허브 디바이스로서,
    적어도 하나의 데이터 항목을 지정하는 일 세트의 일관성 프로토콜 트랜잭션들의 캐시 사전채움 요구를, 요구 마스터 디바이스로부터 수신하는 인터페이스 회로; 및
    상기 캐시 사전채움 요구의 수신에 응답하여, 상기 적어도 하나의 데이터 항목을 지정하는 상기 일 세트의 일관성 프로토콜 트랜잭션들의 캐시 사전채움 트리거-타겟 디바이스로 하여금, 상기 캐시 사전채움 트리거에 지정된 상기 적어도 하나의 데이터 항목을 상기 타겟 디바이스와 관련된 스토리지로 회수하도록 요구할 것인지 여부를 결정하게 한다-를, 상기 허브 디바이스를 통해 상기 요구 마스터 디바이스와는 다른 상기 타겟 디바이스에 송신하는 트랜잭션 제어회로를 구비하는, 허브 디바이스.
  2. 제 1 항에 있어서,
    상기 타겟 디바이스는 캐시를 포함하는 타겟 마스터 디바이스이고, 상기 캐시 사전채움 트리거는, 상기 타겟 마스터 디바이스가 상기 적어도 하나의 데이터 항목의 복사본을 그것의 캐시로 회수할지 여부를 결정해야 한다는 것을 나타내는, 허브 디바이스.
  3. 제 1 항에 있어서,
    상기 캐시 사전채움 요구는, 상기 요구 마스터 디바이스가 이용 가능한 상기 적어도 하나의 데이터 항목의 캐시된 복사본을 갖는 것을 지정하는, 허브 디바이스.
  4. 제 1 항에 있어서,
    상기 캐시 사전채움 요구는, 상기 적어도 하나의 데이터 항목이 저장된 또 다른 슬레이브 디바이스로부터 상기 적어도 하나의 데이터 항목이 회수되도록 지정하는, 허브 디바이스.
  5. 제 4 항에 있어서,
    상기 타겟 디바이스는 상기 또 다른 슬레이브 디바이스이고, 상기 캐시 사전채움 트리거는 상기 또 다른 슬레이브 디바이스가 상기 적어도 하나의 데이터 항목의 복사본을 상기 허브 디바이스에 반환시켜야 하는 것을 가리키는, 허브 디바이스.
  6. 제 1 항에 있어서,
    상기 캐시 사전채움 요구는 상기 타겟 디바이스를 지정하는, 허브 디바이스.
  7. 제 1 항에 있어서,
    상기 캐시 사전채움 요구는 상기 타겟 디바이스를 지정하지 않는, 허브 디바이스.
  8. 제 7 항에 있어서,
    상기 캐시 사전채움 요구에 있어서 상기 타겟 디바이스를 지정하도록 제공된 필드는 무효 타겟 디바이스 식별자를 가리키는, 허브 디바이스.
  9. 제 7 항에 있어서,
    상기 트랜잭션 제어회로는 상기 캐시 사전채움 요구의 수신에 응답하여, 상기 캐시 사전채움 트리거를, 상기 적어도 하나의 데이터 항목이 저장되는 또 다른 슬레이브 디바이스에 송신시킴으로써, 상기 적어도 하나의 데이터 항목을 상기 허브 디바이스와 관련된 캐시에 캐시시키는, 허브 디바이스.
  10. 제 9 항에 있어서,
    상기 허브 디바이스와 관련된 상기 캐시는 시스템 캐시인, 허브 디바이스.
  11. 제 7 항에 있어서,
    상기 트랜잭션 제어회로는, 상기 캐시 사전채움 요구의 수신에 응답하여, 상기 적어도 하나의 데이터 항목을 저장하는 또 다른 슬레이브 디바이스에 상기 캐시 사전채움 트리거를 송신시킴으로써, 상기 또 다른 슬레이브 디바이스와 상기 허브 디바이스 사이에 위치된 임시 저장 디바이스에 상기 적어도 하나의 데이터 항목을 저장시키는, 허브 디바이스.
  12. 제 7 항에 있어서,
    상기 트랜잭션 제어회로는, 상기 타겟 디바이스를 지정하지 않는 상기 캐시 사전채움 요구의 수신에 응답하여, 상기 캐시 사전채움 트리거를 송신하는 상기 타겟 디바이스를 선택하는, 허브 디바이스.
  13. 제 12 항에 있어서,
    상기 허브 디바이스는 연결된 마스터 디바이스들을 위한 데이터 액세스 패턴들을 저장하는 데이터 액세스 패턴회로를 더 구비하고, 상기 트랜잭션 제어회로는 상기 데이터 액세스 패턴들에 따라 상기 타겟 디바이스를 선택하도록 배치되는, 허브 디바이스.
  14. 제 13 항에 있어서,
    상기 데이터 액세스 패턴들은, 상기 연결된 마스터 디바이스들이 상기 데이터 액세스 패턴들에 나타낸 액세스된 데이터를 가질 때의 표시를 포함하는, 허브 디바이스.
  15. 제 13 항에 있어서,
    상기 허브 디바이스는 연결된 마스터 디바이스들을 위한 캐시된 데이터의 표시를 저장하는 스눕 필터회로를 더 구비하고, 상기 트랜잭션 제어회로는 캐시된 데이터의 표시에 따라 상기 타겟 디바이스를 선택하도록 배치되는, 허브 디바이스.
  16. 제 6 항에 있어서,
    상기 허브 디바이스는, 연결된 마스터 디바이스들을 위한 캐시된 데이터의 표시를 저장하는 스눕 필터회로를 더 구비하고, 상기 트랜잭션 제어회로는, 상기 타겟 디바이스가 현재 상기 적어도 하나의 데이터 항목의 유효 캐시된 복사본을 갖는다는 표시에 응답하여, 상기 캐시 사전채움 트리거의 상기 타겟 디바이스에의 송신을 억제하는 회로인, 허브 디바이스.
  17. 제 1 항에 있어서,
    상기 캐시 사전채움 요구는, 상기 적어도 하나의 데이터 항목이 캐시될 때 라벨이 붙여지는 일관성 상태를 지정하는, 허브 디바이스.
  18. 제 17 항에 있어서,
    상기 일관성 상태는, 상기 적어도 하나의 데이터 항목이 캐시될 때, 상기 적어도 하나의 데이터 항목에 대하여 상기 일관성 인터커넥트 시스템과 일관성 프로토콜 트랜잭션들과의 또 다른 교환 없이 갱신시키는 것을 가리키는 수정가능 상태인, 허브 디바이스.
  19. 제 17 항에 있어서,
    상기 일관성 상태는, 상기 적어도 하나의 데이터 항목이 캐시될 때, 상기 적어도 하나의 데이터 항목에 대해 갱신시키기 전에 상기 일관성 인터커넥트 시스템과 일관성 프로토콜 트랜잭션들과의 또 다른 교환이 필요한 것을 가리키는 수정불가능한 상태인, 허브 디바이스.
  20. 일관성 인터커넥트 시스템에 있어서의 허브 디바이스의 작동방법으로서,
    적어도 하나의 데이터 항목을 지정하는 일 세트의 일관성 프로토콜 트랜잭션들의 캐시 사전채움 요구를, 요구 마스터 디바이스로부터 수신하는 단계; 및
    상기 캐시 사전채움 요구의 수신에 응답하여, 상기 적어도 하나의 데이터 항목을 지정하는 상기 일 세트의 일관성 프로토콜 트랜잭션들의 캐시 사전채움 트리거-타겟 디바이스로 하여금, 상기 캐시 사전채움 트리거에 지정된 상기 적어도 하나의 데이터 항목을 상기 타겟 디바이스와 관련된 스토리지로 회수하도록 요구할 것인지 여부를 결정하게 한다-를, 상기 허브 디바이스를 통해 상기 요구 마스터 디바이스와는 다른 상기 타겟 디바이스에 송신하는 단계를 포함하는, 허브 디바이스의 작동방법.
  21. 삭제
  22. 청구항 1 기재의 허브 디바이스;
    요구 마스터 디바이스; 및
    타겟 디바이스를 구비하는 시스템으로서,
    상기 요구 마스터 디바이스와 상기 타겟 디바이스는, 상기 허브 디바이스를 통해 서로 접속되어 있고,
    상기 요구 마스터 디바이스와 상기 타겟 디바이스 간의 통신 및 데이터 전송은, 상기 허브 디바이스에 의해 중재되는, 시스템.

KR1020180012684A 2017-02-08 2018-02-01 허브 디바이스 및 그의 작동방법 KR102581572B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/427,459 2017-02-08
US15/427,459 US11256623B2 (en) 2017-02-08 2017-02-08 Cache content management

Publications (2)

Publication Number Publication Date
KR20180092276A KR20180092276A (ko) 2018-08-17
KR102581572B1 true KR102581572B1 (ko) 2023-09-22

Family

ID=61256108

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180012684A KR102581572B1 (ko) 2017-02-08 2018-02-01 허브 디바이스 및 그의 작동방법

Country Status (5)

Country Link
US (1) US11256623B2 (ko)
JP (1) JP7125845B2 (ko)
KR (1) KR102581572B1 (ko)
CN (1) CN108415861B (ko)
GB (1) GB2560240B (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10795820B2 (en) * 2017-02-08 2020-10-06 Arm Limited Read transaction tracker lifetimes in a coherent interconnect system
US10783080B2 (en) * 2018-10-29 2020-09-22 Arm Limited Cache maintenance operations in a data processing system
GB2578600B (en) * 2018-10-31 2021-10-13 Advanced Risc Mach Ltd Memory transaction request management
US11288195B2 (en) * 2019-03-22 2022-03-29 Arm Limited Data processing

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060095679A1 (en) * 2004-10-28 2006-05-04 Edirisooriya Samantha J Method and apparatus for pushing data into a processor cache
US20160062890A1 (en) * 2014-08-26 2016-03-03 Arm Limited Coherency checking of invalidate transactions caused by snoop filter eviction in an integrated circuit

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6711651B1 (en) * 2000-09-05 2004-03-23 International Business Machines Corporation Method and apparatus for history-based movement of shared-data in coherent cache memories of a multiprocessor system using push prefetching
US7366845B2 (en) * 2004-06-29 2008-04-29 Intel Corporation Pushing of clean data to one or more processors in a system having a coherency protocol
US20080263279A1 (en) 2006-12-01 2008-10-23 Srinivasan Ramani Design structure for extending local caches in a multiprocessor system
US7725660B2 (en) * 2007-07-26 2010-05-25 International Business Machines Corporation Directory for multi-node coherent bus
JP5322019B2 (ja) * 2008-02-07 2013-10-23 日本電気株式会社 関連する情報を事前にキャッシュする予測型キャッシュ方法、そのシステム及びそのプログラム
US9218278B2 (en) * 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
US8713261B1 (en) * 2011-03-11 2014-04-29 Emc Corporation Caching techniques
US10701148B2 (en) * 2012-12-13 2020-06-30 Level 3 Communications, Llc Content delivery framework having storage services
US10652087B2 (en) * 2012-12-13 2020-05-12 Level 3 Communications, Llc Content delivery framework having fill services
US20150134933A1 (en) * 2013-11-14 2015-05-14 Arm Limited Adaptive prefetching in a data processing apparatus
US10078589B2 (en) * 2015-04-30 2018-09-18 Arm Limited Enforcing data protection in an interconnect
US10445271B2 (en) * 2016-01-04 2019-10-15 Intel Corporation Multi-core communication acceleration using hardware queue device
US10482062B1 (en) * 2016-03-30 2019-11-19 Amazon Technologies, Inc. Independent evictions from datastore accelerator fleet nodes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060095679A1 (en) * 2004-10-28 2006-05-04 Edirisooriya Samantha J Method and apparatus for pushing data into a processor cache
US20160062890A1 (en) * 2014-08-26 2016-03-03 Arm Limited Coherency checking of invalidate transactions caused by snoop filter eviction in an integrated circuit

Also Published As

Publication number Publication date
KR20180092276A (ko) 2018-08-17
JP2018129042A (ja) 2018-08-16
US20180225214A1 (en) 2018-08-09
JP7125845B2 (ja) 2022-08-25
GB2560240B (en) 2020-04-01
GB201800453D0 (en) 2018-02-28
GB2560240A (en) 2018-09-05
CN108415861A (zh) 2018-08-17
CN108415861B (zh) 2024-02-02
US11256623B2 (en) 2022-02-22

Similar Documents

Publication Publication Date Title
KR102581572B1 (ko) 허브 디바이스 및 그의 작동방법
US8806148B2 (en) Forward progress mechanism for stores in the presence of load contention in a system favoring loads by state alteration
US8799589B2 (en) Forward progress mechanism for stores in the presence of load contention in a system favoring loads
US8762651B2 (en) Maintaining cache coherence in a multi-node, symmetric multiprocessing computer
US6260117B1 (en) Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency
US8176261B2 (en) Information processing apparatus and data transfer method
US7149852B2 (en) System and method for blocking data responses
KR101072174B1 (ko) 능동적 프리페치들로 향상된 호버 상태를 실시하는 시스템 및 방법
CN111406251B (zh) 数据预取方法及装置
US10713187B2 (en) Memory controller having data access hint message for specifying the given range of one or more memory addresses
CN108415873B (zh) 转发对监听请求的响应
US10387310B2 (en) Remote node broadcast of requests in a multinode data processing system
US10776266B2 (en) Apparatus and method of modification of stored data
CN108491351B (zh) 响应探听请求
JP6028470B2 (ja) 演算処理装置、情報処理装置および演算処理装置の制御方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant