KR20210040257A - 캐시 유지보수 동작을 처리하는 장치 및 방법 - Google Patents

캐시 유지보수 동작을 처리하는 장치 및 방법 Download PDF

Info

Publication number
KR20210040257A
KR20210040257A KR1020200122105A KR20200122105A KR20210040257A KR 20210040257 A KR20210040257 A KR 20210040257A KR 1020200122105 A KR1020200122105 A KR 1020200122105A KR 20200122105 A KR20200122105 A KR 20200122105A KR 20210040257 A KR20210040257 A KR 20210040257A
Authority
KR
South Korea
Prior art keywords
component
write
request
maintenance operation
cache
Prior art date
Application number
KR1020200122105A
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 KR20210040257A publication Critical patent/KR20210040257A/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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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
    • 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/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • 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
    • 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/0871Allocation or management of cache space
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

캐시 유지보수 동작을 처리하는 장치 및 방법이 제공된다. 이 장치는, 요구를 발행하는 복수의 요구자 구성요소들과, 이와 같은 요구를 처리하는 적어도 한 개의 컴플리터 구성요소를 갖는다. 메모리 내부의 어드레스들과 관련된 데이터의 캐시된 복사본들을 기억하는 복수의 레벨들의 캐시를 갖는 캐시 계층구조가 설치된다. 요구자 구성요소는, 지정된 메모리 어드레스 범위와 관련된 데이터의 블록이 적어도 한 개의 레벨의 캐시 계층구조를 거쳐 결정된 가시 지점으로 푸시되게 함으로써 이 데이터의 블록을 한 개 이상의 다른 요구자 구성요소들이 볼 수 있도록 하기 위해 메모리 어드레스 범위를 지정하는 캐시 유지보수 동작 요구를 발행하도록 구성된다. 특정한 요구자 구성요소는, 지정된 메모리 어드레스 범위 내부의 데이터에 대해 기록 동작이 행해지게 하기 위해 캐시 유지보수 동작 요구 이전에 기록 요구를 발행할 필요성이 존재하는 시기를 검출하고, 이 경우, 기록 요구 및 그후의 캐시 유지요구 동작 요구 대신에 발행할 결합된 기록 및 캐시 유지보수 동작 요구를 발생하도록 구성된다. 결합된 기록 및 캐시 유지보수 동작 요구를 수신한 수신자 컴플리터 구성요소는, 기록 동작이 완료하는 것을 기다리지 않고 결합된 기록 및 캐시 유지보수 동작 요구에 의해 요구된 캐시 유지보수 동작의 처리를 개시하도록 구성된다. 이것은 캐시 유지보수 동작의 처리시의 지연시간을 상당히 줄일 수 있으며, 줄어든 대역폭 사용량을 제공할 수 있다.

Description

캐시 유지보수 동작을 처리하는 장치 및 방법{AN APPARATUS AND METHOD FOR HANDLING CACHE MAINTENANCE OPERATIONS}
본 발명은 캐시 유지보수 동작을 처리하는 장치 및 방법에 관한 것이다.
장치는 데이터를 액세스하기 위한 요구를 각각 발행할 수 있는 복수의 구성요소들을 구비하고, 이들 요구는 보통 메모리 내부의 어느 곳에 데이터가 기억되거나 기억될 것인지 식별하기 위한 메모리 어드레스를 지정한다. 액세스 시간을 향상시키기 위해, 메모리 내부의 어드레스들과 관련된 데이터의 캐시된 복사본들을 기억하는데 사용되는 복수 레벨의 캐시를 구비한 캐시 계층구조를 제공하는 것이 알려져 있다. 캐시 계층구조 내부의 일부 캐시들은 특정한 구성요소들과 관련된 로컬 캐시인 반면에, 나마지는 복수의 구성요소들이 액세스가능한 공유 캐시일 수 있다.
한 개의 구성요소에 의해 기록된 데이터를 장치 내부의 적어도 한 개의 다른 구성요소가 볼 수 있도록 하는 것이 필요한 경우가 자주 있다. 이것을 달성하려고 시도하는 한가지 방법은 캐시 유지보수 동작을 사용하는 것인데, 이것은 예를 들어 캐시 내부에 기록되었지만 메모리에 유지된 데이터보다 최신인 데이터를 퇴출함으로써, 이 기록 데이터가 그후 캐시 계층구조 내부의 다음 레벨로 밀어내리는데 사용된다. 캐시 유지보수 동작 요구를 캐시 계층구조 내부의 한 개 이상의 레벨의 캐시 위에 전달함으로써, 이것은 이전의 데이터를 장치 내부의 원하는 가시 지점(visibility point)으로 푸시(push)하는데 사용될 수 있다. 캐시 유지보수 동작은 보통 이 동작이 행해질 대상에 대한 메모리 어드레스 범위를 지정하며, 결정된 가시 지점은 해당 메모리 어드레스 범위와 데이터의 가시성을 가질 필요가 있는 특정한 구성요소들에 의존한다.
그러나, 기록 데이터를 원하는 가시 지점으로 푸시하는데 사용되는 캐시 유지보수 동작의 처리시에 상당한 지연시간이 포함될 수 있다. 특히, 캐시 유지보수 동작을 처리할 때, 캐시 유지보수 동작의 지정된 어드레스 범위 내의 어드레스에 대한 보류중인 기록이 존재하는 것으로 판정될 때마다, 또는 캐시 유지보수 동작을 겪고 있는 캐시 내부의 데이터가 캐시 계층구조 또는 메모리의 더 낮은 레벨로 기록될 필요가 있는 것으로 판정되는 경우에, 공지된 기술에 따르면, 캐시 유지보수 동작이 진행할 수 있기 전에 이전의 기록 동이 완료할 때까지 캐시 유지보수 동작의 추가적인 처리를 기다릴 필요가 있다.
캐시 유지보수 동작의 처리와 관련된 지연시간을 줄이는 것이 바람직할 것이다.
일 구성예에서는, 요구를 발행하는 복수의 요구자(requester) 구성요소들과, 상기 요구를 처리하는 적어도 한 개의 컴플리터(completer) 구성요소와, 메모리 내부의 어드레스들과 관련된 데이터의 캐시된 복사본들을 기억하는 복수의 레벨들의 캐시를 포함하는 캐시 계층구조를 구비하고, 상기 복수의 요구자 구성요소들 내부의 특정한 요구자 구성요소는, 지정된 메모리 어드레스 범위와 관련된 데이터의 블록이 적어도 한 개의 레벨의 캐시 계층구조를 거쳐 결정된 가시 지점으로 푸시되게 함으로써 이 데이터의 블록을 상기 복수의 요구자 구성요소들 내부의 한 개 이상의 다른 요구자 구성요소들이 볼 수 있도록 하기 위해 메모리 어드레스 범위를 지정하는 캐시 유지보수 동작 요구를 발행하도록 구성되고, 상기 특정한 요구자 구성요소는, 상기 지정된 메모리 어드레스 범위 내부의 데이터의 항목에 대해 기록 동작이 행해지게 하기 위해 상기 캐시 유지보수 동작 요구 이전에 기록 요구를 발행할 필요성의 검출에 응답하여, 상기 기록 요구 및 그후의 캐시 유지요구 동작 요구 대신에 발행할 결합된 기록 및 캐시 유지보수 동작 요구를 발생하고, 상기 결합된 기록 및 캐시 유지보수 동작 요구를 수신한 상기 적어도 한 개의 컴플리터 구성요소 중에서 수신자 컴플리터 구성요소는, 상기 기록 동작이 완료하는 것을 기다리지 않고 상기 결합된 기록 및 캐시 유지보수 동작 요구에 의해 요구된 캐시 유지보수 동작의 처리를 개시하도록 구성된 장치가 제공된다.
또 다른 구성예에서는, 장치 내부의 캐시 유지보수 동작을 처리하는 방법으로서, 요구를 발행하는 복수의 요구자 구성요소들과, 상기 요구를 처리하는 적어도 한 개의 컴플리터 구성요소와, 메모리 내부의 어드레스들과 관련된 데이터의 캐시된 복사본들을 기억하는 복수의 레벨들의 캐시를 포함하는 캐시 계층구조를 제공하는 단계와, 특정한 요구자 구성요소가, 지정된 메모리 어드레스 범위와 관련된 데이터의 블록이 적어도 한 개의 레벨의 캐시 계층구조를 거쳐 결정된 가시 지점으로 푸시되게 함으로써 이 데이터의 블록을 상기 복수의 요구자 구성요소들 내부의 한 개 이상의 다른 요구자 구성요소들이 볼 수 있도록 하기 위해 메모리 어드레스 범위를 지정하는 캐시 유지보수 동작 요구를 발행하도록 구성하는 단계와, 상기 지정된 메모리 어드레스 범위 내부의 데이터의 항목에 대해 기록 동작이 행해지게 하기 위해 상기 캐시 유지보수 동작 요구 이전에 기록 요구를 발행할 필요성의 검출에 응답하여, 기록 요구 및 그후의 캐시 유지요구 동작 요구 대신에 발행할 결합된 기록 및 캐시 유지보수 동작 요구를 특정한 요구자 구성요소에서 발생하는 단계와, 상기 결합된 기록 및 캐시 유지보수 동작 요구를 수신한 상기 적어도 한 개의 컴플리터 구성요소 중에서 수신자 컴플리터 구성요소가, 상기 기록 동작이 완료하는 것을 기다리지 않고 상기 결합된 기록 및 캐시 유지보수 동작 요구에 의해 요구된 캐시 유지보수 동작의 처리를 개시하게 하는 단계를 포함하는 처리방법이 제공된다.
또 다른 구성예에서는, 요구를 발행하는 복수의 요구자 구성요소 수단들과, 상기 요구를 처리하는 적어도 한 개의 컴플리터 구성요소 수단과, 메모리 내부의 어드레스들과 관련된 데이터의 캐시된 복사본들을 기억하는 복수의 레벨들의 캐시 수단을 포함하는 캐시 계층구조를 구비하고, 상기 복수의 요구자 구성요소 수단들 내부의 특정한 요구자 구성요소 수단은, 지정된 메모리 어드레스 범위와 관련된 데이터의 블록이 적어도 한 개의 레벨의 캐시 계층구조를 거쳐 결정된 가시 지점으로 푸시되게 함으로써 이 데이터의 블록을 상기 복수의 요구자 구성요소 수단들 내부의 한 개 이상의 다른 요구자 구성요소 수단들이 볼 수 있도록 하기 위해 메모리 어드레스 범위를 지정하는 캐시 유지보수 동작 요구를 발행하도록 구성되고, 상기 특정한 요구자 구성요소 수단은, 상기 지정된 메모리 어드레스 범위 내부의 데이터의 항목에 대해 기록 동작이 행해지게 하기 위해 상기 캐시 유지보수 동작 요구 이전에 기록 요구를 발행할 필요성의 검출에 응답하여, 기록 요구 및 그후의 캐시 유지요구 동작 요구 대신에 발행할 결합된 기록 및 캐시 유지보수 동작 요구를 발생하고, 상기 결합된 기록 및 캐시 유지보수 동작 요구를 수신한 상기 적어도 한 개의 컴플리터 구성요소 수단 중에서 수신자 컴플리터 구성요소 수단은, 상기 기록 동작이 완료하는 것을 기다리지 않고 상기 결합된 기록 및 캐시 유지보수 동작 요구에 의해 요구된 캐시 유지보수 동작의 처리를 개시하도록 구성된 장치가 제공된다.
이하, 첨부도면에 예시된 실시예를 참조하여 본 발명을 더욱 상세히 설명한다:
도 1은 일 구현예에 따른 장치의 블록도이다.
도 2는 일 구현예에 따른 결합된 기록 및 캐시 유지보수 동작 요구의 처리중에 요구자 구성요소와 컴플리터 구성요소 사이에 전달된 다양한 신호를 나타낸 타이밍도이다.
도 3은 제 1 실시예 시나리오에 따른 마스터 장치, 인터커넥트와 슬레이브 장치 사이에서 전달되는 신호들의 시퀀스를 나타낸 것으로, 본 발명에서 설명하는 기술의 결합된 기록 및 캐시 유지보수 동작 요구가 사용되지 않은 시퀀스를 나타낸 타이밍도인 반면에, 도 4는 본 발명에서 설명하는 기술의 결합된 기록 및 캐시 유지보수 동작 요구가 사용되는 경우의 동일한 실시예 시나리오에 대한 동등한 타이밍도이다.
도 5는 제 2 실시예 시나리오에 따른 마스터 장치, 인터커넥트와 슬레이브 장치 사이에서 전달되는 신호들의 시퀀스를 나타낸 것으로, 본 발명에서 설명하는 기술의 결합된 기록 및 캐시 유지보수 동작 요구가 사용되지 않은 시퀀스를 나타낸 타이밍도인 반면에, 도 6은 본 발명에서 설명하는 기술의 결합된 기록 및 캐시 유지보수 동작 요구가 사용되는 경우의 동일한 실시예 시나리오에 대한 동등한 타이밍도이다.
도 7은 일 구현예에 따라, 마스터 및 인터커넥트와 인터커넥트 및 슬레이브 사이의 통신들 중에서 한 개 또는 양쪽에서 본 발명에서 설명한 결합된 기록 및 캐시 유지보수 동작 요구가 사용되는 다양한 경우를 나타낸 테이블이다.
도 8은 일 구현예에서 행해지는 처리를 나타낸 흐름도이다.
도 9는 특정한 구현예에 따라, 결합된 기록 및 캐시 유지보수 동작 요구를 생성하기 위한 조건이 존재하는지 여부를 판정하기 위해 행해지는 단계들을 나타낸 흐름도이다.
본 발명에서 설명하는 기술에 따르면, 요구를 발행하는 복수의 요구자 구성요소들과, 이와 같은 요구를 처리하는데 사용되는 적어도 한 개의 컴플리터 구성요소를 갖는 장치가 제공된다. 요구자 구성요소들은 구현에 따라 다양한 형태를 취할 수 있다. 이들은 예를 들어 메모리에 액세스 요구를 발행하는 마스터 장치의 형태를 취하거나, 실제로 장치 내부, 예를 들어, 다수의 마스터 장치들과 한 개 이상의 슬레이브 장치들 사이에 접속을 제공하는데 사용되는 인터커넥트 내부의 중간 위치에 있는 중간 구성요소들일 수 있다. 이와 같은 중간 구성요소들은, 마스터 장치로부터의 요구를 처리하는 컴플리터 구성요소로서 동작할 뿐만 아니라, 시스템 내부의 더 하류측의 구성요소들에게 요구를 발행하는 요구자 구성요소로서 기능한다(하류측 구성요소는 해당 요구자 구성요소보다 메모리에 더 가까운 구성요소이다). 마찬가지로, 컴플리터 구성요소는 다양한 형태를 취할 수 있다. 이들은, 예를 들어, 상류측 구성요소로부터 발행된 액세스 요구를 처리하는데 사용된 슬레이브 장치일 수 있으며, 이와 같은 슬레이브 장치의 일례는 메모리에 대한 액세스를 제어하는데 사용되는 메모리 콘트롤러이다. 그러나, 전술한 것과 같이, 컴플리터 구성요소는, 예를 들어, 한 개 이상의 마스터 장치들과 한 개 이상의 슬레이브 장치들 사이에서 접속을 제공하는데 사용되는 인터커넥트 내부에 존재하는, 장치 내부의 중간 구성요소일 수도 있다.
장치는 메모리 내부의 어드레스들과 관련된 데이터의 캐시된 복사본들을 기억하는데 사용되는 복수 레벨들의 캐시를 포함하는 캐시 계층구조를 더 제공한다.
한 개 이상의 요구자 구성요소들은, 메모리 어드레스 범위를 지정하며, 지정된 메모리 어드레스 범위와 관련된 데이터의 블록이 적어도 한 개의 레벨의 캐시 계층구조를 거쳐 결정된 가시 지점으로 푸시되게 함으로써 이 데이터의 블록을 복수의 요구자 구성요소들 내부의 한 개 이상의 다른 요구자 구성요소들이 볼 수 있도록 하기 위해 사용되는 캐시 유지보수 동작(CMO) 요구를 발행할 수 있다. 결정된 가시 지점은 메모리 어드레스 범위에 의해 지정된 메모리의 메모리 종류와 이 메모리 어드레스 범위 내에서 데이터의 가시성을 가질 필요가 있는 요구자 구성요소들의 파악에 의존한다. 원리상 결정된 가시 지점은 캐시 유지보수 동작 요구에 의해 직접 지정될 수도 있지만, 일 구현예에서는, 이 가시 지점에 종류와 데이터의 가시성을 가질 필요가 있는 요구자 구성요소들의 시스템 지식에 근거하여 결정되므로, 결정된 가시 지점이 서로 다른 캐시 유지보수 동작 요구들에 대해 변동한다.
캐시 유지보수 동작 요구에 의해 지정된 메모리 어드레스 범위는 구현에 의존하여 변경되지만, 예를 들어, 이것은, 캐시의 캐시 라인 내부에 기억되는 캐시 라인의 가치의 데이터를 데이터의 블록으로서 식별하는데 충분한 메모리 어드레스 범위일 수 있다. 이 때문에, 특정한 캐시에 대한 캐시 유지보수 동작의 수행은, 메모리 어드레스 범위에 의해 식별된 데이터의 블록이 캐시 내부에 기억되어 있는지 판정하기 위해 룩업을 행하는 과정과, 기억되어 있는 경우, 식별된 캐시 라인에 대해 캐시 유지보수 동작을 행하는 과정을 포함한다. 이것은, 예를 들어, 메모리에 유지된 복사본보다 최신의 이 캐시 라인 내부의 데이터가 캐시로부터 퇴출되게 한다. 빈번하게, 이와 같은 상황에서는, 데이터의 캐시 라인이 퇴출되므로, 캐시 계층구조 내부의 더 낮은 레벨로 또는 메모리로 전파된다. 퇴출처리 중에, 데이터의 클린 카피(clean copy)가 캐시 내부에 유지되거나, 또는 이와 달리 (예를 들어, 캐시 라인을 무효화함으로써) 데이터의 복사본이 캐시 내부에 남지 않는다. 용어 "퇴출"은, 본 발명에서는, 캐시 내부에 클린 카피가 유지되는지 여부에 무관하게, 특정한 레벨의 캐시 내부의 데이터가 이 특정한 레벨의 캐시로부터 캐시 계층구조 내부의 더 낮은 레벨 또는 메모리로 푸시되는 상황을 포함시키기 위해 사용된다.
그후, 캐시 유지보수 동작 요구 그 자체가 계속해서 전파되어, 결정된 가시 지점에 도달할 때까지 동일한 캐시 유지보수 동작이 추가적인 중간 레벨의 캐시에서 행해질 수 있다. 결정된 가시 지점은 그 자체가 캐시의 레벨이거나, 이와 달리 캐시 계층구조 내부의 최종 레벨의 캐시를 벗어난 시스템 내부의 위치, 예를 들어, 메모리 콘트롤러 내부의 버퍼 또는 사실상 메모리 그 자체일 수도 있다.
본 발명에서 설명하는 기술에 따르면, 이와 같은 캐시 유지보수 동작 요구를 발행할 수 있는 특정한 요구자 구성요소는, 지정된 메모리 어드레스 범위 내부의 데이터의 항목에 대해 기록 동작이 행해지게 하기 위해 캐시 유지보수 동작 요구 이전에 기록 요구를 발행할 필요성이 존재하는 시기를 검출하도록 구성될 수 있고, 이와 같은 상황에서는, 기록 요구 및 그후의 캐시 유지요구 동작 요구 대신에 발행할 결합된 기록 및 캐시 유지보수 동작 요구를 발생하도록 구성된다. 캐기 유지보수 동작 요구가 그후 발행될 수 있기 전에 기록 동작을 개시하는 것이 필요한 것으로 판정되는 다양한 상황이 존재한다. 보통, 이것은, 기록 요구를 발행할 필요성을 요구한 후, 기록 요구에 대해 완료신호가 수신될 때까지 캐시 유지보수 동작의 발행을 지연시킨다. 그러나, 본 발명에서 설명한 기술에 따르면, 특정한 요구자 구성요소가 결합된 기록 및 캐시 유지보수 동작 요구를 발생할 수 있게 함으로써 캐시 유지보수 동작의 처리에 미치는 이와 같은 잠재적인 지연시간의 영향을 경감하며, 그 결과 캐시 유지보수 동작 요구의 발행시에 지연이 존재하지 않는다.
기록 동작을 행할 필요성을 일으키는 조건에 따라, 기록할 데이터의 항목은, 캐시 유지보수 동작에 대해 지정된 메모리 어드레스 범위에 있는 데이터의 서브셋이거나, 이 지정된 메모리 어드레스 범위에 있는 모든 데이터일 수 있다.
결합된 기록 및 캐시 유지보수 동작 요구를 수신하는 수신자 컴플리터 구성요소는, 기록 동작이 완료하는 것을 기다리지 않고 결합된 기록 및 캐시 유지보수 동작 요구에 의해 요구된 캐시 유지보수 동작의 처리를 개시하도록 구성될 수 있다. 특히, 수신자 컴플리터 구성요소는, 기록 동작이 여전히 진행중인 동안 필요한 캐시 유지보수 동작의 진행을 개시할 수 있도록 구성될 수 있다. 예를 들어, 수신자 컴플리터 구성요소는, 기록 동작과 관련된 기록 데이터가 수신되고 컴플리터 구성요소에 의해 처리되기 전에 수신자 컴플리터 구성요소에 대해 로컬인 캐시의 식별된 캐시 라인에 대해 필요한 캐시 유지보수 동작의 수행을 개시할 수 있다. 사실상, 수신자 컴플리터 구성요소가 캐시 유지보수 동작을 겪고 있는 로컬 캐시 라인에 대해 모든 필요한 조치에 착수하는 것이 가능하며, 이때 기록 데이터의 그후의 처리는, 기록 데이터가 캐시 유지보수 동작에 부합하지 않게 캐시 유지보수 동작을 겪고 있는 캐시 라인 내부에 기록되지 않도록 보장하도록 제약이 가해진다. 이 때문에, 기록 동작과 관련된 데이터가 수신자 컴플리터 구성요소에 의해 처리되기 전에, 캐시 유지보수 동작 완료 응답이 실제로 발행된다. 마찬가지로, 수신자 컴플리터 구성요소는, 그것이 기록 데이터를 수신하기 전에 기록 동작에 대한 기록 완료 응답을 발행할 수 있으며, 특히, 기록 동작과 관련된 것과 동일한 어드레스를 지정하는 그후 수신된 요구가 기록 동작과 관련된 기록 데이터를 액세스하도록 구성되도록 보장하기 위해 필요한 모든 장애 검사를 수립한 경우에 이것을 행할 수 있다.
이 때문에, 기록 및 캐시 유지보수 동작의 처리는 보통 병렬로 진행될 수 있다는 것이 밝혀졌으며, 기록 동작에 대한 완료신호와 캐시 유지보수 동작에 대한 완료신호는 서로 시간상 비교적 근접하게 발행될 수 있는 경우가 많다. 아무튼, 수신자 컴플리터 구성요소는 기록 동작이 완료되는 것을 기다리지 않고 캐시 유지보수 동작의 처리를 개시할 수 있기 때문에, 이것은 요구자 구성요소에서 요구들을 순번대로 나열할 필요성을 없애며, 특히 기록 완료신호가 수신될 때까지 요구자 구성요소가 캐시 유지보수 동작 요구의 발행을 지연시킬 필요성을 없앤다. 이 때문에, 캐시 유지보수 동작에 대한 완료신호가 발행될 수 있기 전에 수신자 컴플리터 구에서 지연에 대한 요구가 존재하더라도, 선행하는 기록 동작이 완료할 때까지 요구자 구성요소에 의해 캐시 유지보수 동작 요구가 발행되지 않은 상황에 비해 상당히 줄어든 지연시간이 존재하게 된다.
또 다른 이점으로서, 결합된 기록 및 캐시 유지보수 동작 요구의 사용은, 2개의 서로 다른 시점에서 2개의 별개의 요구가 아니라, 한 개의 요구신호가 발행될 수 있기 때문에, 요구자 구성요소와 컴플리터 구성요소 사이에 설치된 경로에서의 대역폭 이용을 줄인다. 또한, 이것은, 이들 2개의 동작을 병렬로 처리할 수 있는 능력의 결과로써, 기록 동작 및 캐시 유지보수 동작에 대해 발행된 응답신호를 처리할 때 추가적인 대역폭 이용상의 이점을 제공한다. 특히, 기록 동작에 대해 발행된 특정한 응답신호들 및/또는 캐시 유지보수 동작에 대해 발행된 특정한 응답신호들을 결합할 수 있을 뿐만 아니라, 실제로 일부 상황에서는 기록 동작 및 캐시 유지보수 동작 모두에 대해 발행된 특정한 응답신호들을 결합하여, 결합된 기록 및 CMO 응답을 발생할 수 있다.
더구나, 결합된 기록 및 캐시 유지보수 동작 요구의 사용은, 수신자 컴플리터 구가 여전히 표준 방식으로 기록 동작과 캐시 유지보수 동작을 처리할 수 있다는 점에서, 기록 동작 및 캐시 유지보수 동작의 근본적인 특징들이 보존되도록 할 수 있지만, 본 발명에서 설명의 기술의 사용을 통해, 요구자 구성요소에 의해 발행된 순번대로 나열된 별개의 요구들을 사용할 때 다른 식으로 가능하였던 것보다 훨씬 일찍 캐시 유지보수 동작의 수행을 개시할 수 있다.
일 구현예에서, 수신자 컴플리터 구성요소는, 메모리 어드레스를 지정하는 요구를 처리할 때 완료신호를 발행하여, 이 요구에 의해 요구된 동작의 결과가 이 메모리 어드레스를 지정하는 후속하는 요구를 수신자 컴플리터 구성요소에게 발행하는 복수의 요구자 구성요소들의 적어도 서브셋에 의해 관찰되도록 보장하는데 충분한 조치가 수신자 컴플리터 구성요소에 의해 취해진 것을 표시하도록 구성된다. 수신자 컴플리터 구성요소는, 특정한 요구자 구성요소에게 기록 완료신호와 이와 별개의 캐시 유지보수 동작 완료신호를 발행하여, 특정한 요구자 구성요소에게 결합된 기록 및 캐시 유지보수 동작 요구에 의해 요구된 기록 동작 및 캐시 유지보수 동작의 진행을 독립적으로 알려주게 할 수 있도록 구성된다. 어떤 경우에는, 요구들에 의해 요구된 동작의 결과가 모든 요구자 구성요소들에 의해 관찰될 필요가 있지만, 다른 경우에는 요구자 구성요소들 전부가 동작의 결과를 관찰할 필요는 없으며, 이들 경우에는, 동작의 결과가 필요한 요구자 구성요소들에 의해 관찰되는 것이 보장될 수 있을 때 완료신호가 발행될 수 있다.
결합된 기록 및 캐시 유지보수 동작 요구는 실제로 한 개의 요구를 통해 2개의 별개의 동작의 수행을 지정하고 있기 때문에, 요구자 컴플리터 구성요소는 이 한 개의 결합된 요구에 응답하여 별개의 기록 완료신호 및 캐시 유지보수 동작 완료신호를 발행하도록 구성될 수 있다. 그러나, 이때, 일부 경우에는, 이 결합된 완료신호가 기록의 완료와 캐시 유지보수 동작의 완료 모두를 표시하는 것으로 특정한 요구자 구성요소에 의해 이해되도록 지정될 수 있다면, 이들 2개의 다른 완료신호를 결합하는 것이 가능하다는 점에 주목하기 바란다. 이것은, 예를 들어, 기록 완료와 캐시 유지보수 동작 완료가 기본적으로 동시에 발생하여, 어느 한 개의 완료신호를 요구자 구성요소에게 발행시에 주목할만한 지연을 발생하기 않으면서 완료신호들을 결합함으로써 대역폭의 감소를 달성할 수 있다.
일 구현예에서, 결합된 기록 및 캐시 유지보수 동작 요구는 관련된 트랜잭션 식별자를 갖고, 이 트랜잭션 식별자가 특정한 요구자 구성요소에게 반환된 응답에서 사용되어, 요구자 구성요소다 이 응답을 원래의 요구와 일치시킬 수 있다. 따라서, 이와 같은 구현예에서는, 기록 완료신호 및 이와 별개의 캐시 유지보수 동작 완료신호가 결합된 기록 및 캐시 유지보수 동작 요구에서 지정된 것과 동일한 트랜잭션 식별자를 사용하도록 구성될 수 있다.
일 구성예에서, 수신자 컴플리터 구성요소는, 결합된 기록 및 캐시 유지보수 동작 요구의 처리중에 복수의 신호들을 발행하도록 구성된다. 일부 경우에는 이들 모든 신호들이 동일한 상류측 구성요소에게 발행될 수도 있지만, 이것이 항상 해당하는 것은 아니며, 사실상, 특정한 신호들이 다른 신호들과 다른 상류측 구성요소에게 발행되는 것이 필요할 수도 있다. 일 구현예에서는, 결합된 기록 및 캐시 유지보수 동작이 이들 신호 각각에 대한 타겟 구성요소들을 결정하는데 사용되는 타겟 표시 필드를 제공한다.
일례로서, 일 구현예에서, 타겟 표시 필드는, 수신자 컴플리터 구성요소가 기록 동작과 관련된 데이터의 항목을 취득하려고 하는 소스 구성요소가 결합된 기록 및 캐시 유지보수 동작 요구를 발생한 특정한 요구자 구성요소와 다른 구성요소인 시기를 표시하고, 그 경우, 수신자 컴플리터 구성요소는 데이터 풀(pull) 신호를 직접 상기 다른 구성요소에게 발행하여 상기 다른 구성요소를 기동함으로써 데이터의 항목을 수신자 컴플리터 구성요소에게 송신하도록 구성된다.
이와 같은 메카니즘을 제공함으로써, 결합된 기록 및 캐시 유지보수 동작 요구를 사용할 때 장치 내부에서의 직접 기록 전송의 지원을 제공할 수 있다. 구체적인 예를 들어, 특정한 요구자 구성요소는 인터커넥트 내부의 노드이고, 수신자 컴플리터 구성요소는 슬레이브 노드일 수 있다. 그러나, 기록 동작과 관련되는 기록 데이터가 여전히 상류측의 마스터 장치, 즉 특정한 요구자 구성요소를 구성하는 인터커넥트 내부의 노드의 상류측의 마스터 장치에 존재할 수도 있다. 이와 같은 경우에, 타겟 표시 필드를 사용하여 슬레이브 장치에게 마스터 장치로부터 직접 기록 데이터를 취득할 수 있다는 것을 표시할 수 있으며, 이 경우 슬레이브 장치는 데이터 풀 신호를 직접 마스터 장치에 발행한다. 이것은 마스터 장치로부터 기록 데이터를 얻는데 걸리는 시간을 단축함으로써 성능 향상을 제공할 수 있다.
일 구현예에서, 상기 다른 구성요소는 특정한 요구자 구성요소에게 초기의 결합된 기록 및 캐시 유지보수 동작 요구를 발행한 구성요소이고, 특정한 요구자 구성요소에 의한 이 초기 결합된 기록 및 캐시 유지보수 동작 요구의 처리는 상기 특정한 요구자 구성요소가 결합된 기록 및 캐시 유지보수 동작 요구를 수신자 컴플리터 구성요소에게 발행하게 한다.
그러나, 수신자 컴플리터 구성요소가 초기의 결합된 기록 및 캐시 유지보수 동작 요구를 발행한 상기 다른 구성요소로부터 직접 데이터를 취득하는 것이 항상 허용되는 것은 아니다. 예를 들어, 적어도 한가지 종류의 기록 동작에 대해, 장치가 상기 다른 구성요소로부터 직접 데이터의 항목의 취득을 금지하도록 구성되고, 결합된 기록 및 캐시 유지보수 동작 요구가 이와 같은 기록 동작과 관련될 때, 데이터의 항목이 특정한 요구자 구성요소로부터 취득될 것이라는 것을 식별하도록 타겟 표시 필드가 설정된다. 이 때문에, 타겟 표시 필드는, 수신자 컴플리터 구성요소가 기록 데이터를 취득할 위치를 직접 제어하는데 사용될 수 있다.
그러나, 타겟 표시 필드는 다른 용도로 사용될 수도 있다. 예를 들어, 타겟 표시 필드는, 기록 동작의 처리중에 수신자 컴플리터 구성요소에 의해 발행된 제1 신호에 대한 타겟 구성요소가 캐시 유지보수 동작의 처리중에 수신자 컴플리터 구성요소에 의해 발행된 제2 신호에 대한 타겟 구성요소와 다른 시기를 나타낸다. 특히, 관련된 단일 동작만을 지정하는 표준 형태의 요구를 처리할 때, 응답 신호가 송신될 필요가 있는 위치가 사전에 결정된다. 그러나, 결합된 기록 및 캐시 유지보수 동작 요구는 기록 동작과 이와 별개의 캐시 유지보수 동작 모두를 지정하고, 기록 동작을 행할 때 발행된 응답신호들 중에서 적어도 한 개에 대한 타겟이 캐시 유지보수 동작을 처리할 때 발행된 응답신호들 중에서 적어도 한 개에 대한 타겟과 다를 수도 있다. 타겟 표시 필드의 사용을 통해, 이와 같은 차이가 식별될 수 있도록 함으로써, 결합된 기록 및 캐시 유지보수 동작 요구의 처리중에 수신자 컴플리터 구성요소가 그것이 발행하는 다양한 신호들의 적절한 타겟을 결정할 수 있게 된다.
전술한 것과 같이, 결정된 가시 지점은 액세스되고 있는 메모리 영역과 데이터의 가시성을 가질 필요가 있는 요구자 구성요소들에 따라 변동한다. 캐시 유지보수 동작을 사용하여, 데이터가 시스템 내부의 지속 지점(point of persistence)을 거쳐 푸시되어야 한다는 것, 즉 결정된 가시 지점이 지속 지점인 것을 식별할 수도 있다. 지속 지점(PoP)은 시스템으로부터 전력이 제거되더라도 데이터가 유지되는 것이 보장될 수 있는 지점이다. 일부 경우에, 지속 지점이 백업 전원을 구비함으로써, 시스템에 전력이 없어진 경우에, 백업 전원이 지속 지점에 기억된 데이터가 불휘발성 메모리로 이동하는데 충분한 전력을 제공한다. 이것은 일부 경우에는 캐시의 레벨이 지속 지점을 형성할 수 있도록 하거나, 메모리 콘트롤러 내부의 기록 버퍼가 지속 지점을 형성할 수 잇게 할 수 있다. 가끔, 지속 지점은 심층(deep) 지속 지점으로 지정될 수 있는데, 이 심층 지속 지점은 백업 전력이 장애가 생겨도 데이트의 유지를 확보하는 지속 지점이다. 심층 지속 지점의 일례는 불휘발성 메모리 그 자체일 것이다.
캐시 유지보수 동작을 사용하여 지속 지점으로 데이터를 푸시할 때, 지정된 메모리 어드레스 범위와 관련된 데이터의 블록이 지속 지점에 도달한 시기를 식별하기 위해 지속신호가 발행될 필요가 있는 경우가 있다. 이것은 보통 때때로 완료신호가 캐시 유지보수 동작에 대해 발행된 후에 발생하게 된다.
데이터를 지속 지점으로 푸시하는 이와 같은 캐시 유지보수 동작을 구현하고 할 때, 따라서 결정된 가시 지점이 이 지속 지점인 경우, 기록 동작을 처리할 때 발생된 특정한 신호들이 캐시 유지보수 동작을 처리할 때 발행된 특정한 신호들과 다른 구성요소에 발행될 필요가 있다. 예를 들어, 제1 신호는 데이터의 항목을 취득하려고 시도하기 위해 수신자 컴플리터 구성요소에 의해 발행된 데이터 풀 신호이고, 제2 신호는 지정된 메모리 어드레스 범위와 관련된 데이터의 블록이 지속 지점에 도달한 것을 식별하기 위해 발행된 지속 신호이고, 이들 제1 및 제2 신호에 대한 타겟이 다르다. 일례로서 마스터 장치로부터의 요구가 인터커넥트 내부의 노드에 의해 수신된 후 이 노드가 요구를 슬레이브 장치에 전파할 때, 기록 데이터를 취득하려는 구성요소가 지속 신호를 수신해야 하는 구성요소와 다를 수 있다. 단지 구체적인 예를 들어, 기록 데이터가 인터커넥트 내부의 노드로부터 취득될 필요가 있지만, 지속 신호가 다시 원래의 마스터 장치에게 직접 발행되어야 할 수도 있다. 이와 반대의 상황도 적용될 수 있다.
일 구현예에서는, 적어도 기록 동작 및 캐시 유지보수 동작 중에서 한가지를 처리할 때, 수신자 컴플리터 구성요소는, 복수의 신호들이 동일한 타겟 구성요소에 발행될 때, 복수의 신호들을 한 개의 결합된 신호로 결합하도록 구성된다. 이 때문에, 기록 동작을 처리할 때 발생된 신호들 중에서 한 개 이상이 결합되고, 마찬가지로 캐시 유지보수 동작을 행할 때 발생된 신호들 중에서 한 개 이상이 결합된다. 또 다른 예로서, 기록 동작을 처리할 때 발생된 신호들이 캐시 유지보수 동작을 처리할 때 발생된 신호들과 결합되어, 결합된 기록 및 CMO 응답신호들을 발생해도 된다. 가능한 경우에 신호들을 결합함으로써, 장치 내부의 신호 경로들에서의 대역폭 사용량의 저감을 제공할 수 있으며, 이것은 결국 전체 스루풋을 증가시킬 수 있다.
특정한 요구자 장치가 별개의 기록 요구와 그후의 캐시 유지보수 동작 요구 대신에 결합된 기록 및 캐시 유지보수 동작 요구를 발행하는 것이 적절하다는 것을 판정하게 하는 다양한 다른 시나리오가 발생될 수 있다. 일례로서, 캐시 유지보수 동작 요구는 요구자 구성요소와 관련된 캐시의 특정한 레벨에 대해 특정한 요구자 구성요소에 의해서도 행해지는 캐시 유지보수 동작을 식별하고, 캐시의 특정한 레벨에 대해 캐시 유지보수 동작의 수행이 데이터의 항목이 이 캐시의 특정한 레벨로부터 퇴출되도록 요구할 때 특정한 요구자 구성요소가 캐시 유지보수 동작 요구 이전에 기록 요구를 발행할 필요성을 검출하도록 구성된다. 이 때문에, 캐시 유지보수 동작의 로컬 수행은 그 자체가 기록 데이터가 퇴출될 필요가 있으므로 기록 요구의 필요가 존재하는 상환을 일으킨다. 그러나, 이와 같은 상황에서, 결합된 기록 및 캐시 유지보수 동작 요구를 발행함으로써 지연시간 영향을 상당히 줄일 수 있으므로, 캐시 유지보수 동작을 기록 요구 뒤에 나열할 필요가 없으며, 특히 기록 요구에 대해 완료신호가 수신될 때까지 특정한 요구자 구성요소가 캐시 유지보수 동작 요구의 발행을 지연시킬 필요가 없어진다.
또 다른 실시예로서, 특정한 요구자 구성요소는, 특정한 요구자 구성요소로부터 보류중인 기록 요구들을 발행하기 전에 이들 보류중인 기록 요구들을 유지하는 버퍼를 포함하고, 특정한 요구자 구성요소는, 버퍼 내부의 보류중인 기록 요구가 캐시 유지보수 동작 요구의 지정된 메모리 어드레스 범위 내부의 어드레스를 향할 때, 캐시 유지보수 동작 요구 이전에 기록 요구를 발행할 필요성을 검출하도록 구성된다. 본 발명에서 설명하는 기술을 사용하기 전에, 특정한 요구자 구성요소가 그후 캐시 유지보수 동작 요구를 발행할 수 있기 전에, 보통 보류중인 기록 요구가 먼저 발행된 후 특정한 요구자 구성요소가 기록 동작에 대한 완료신호의 수신을 대기하는 것이 필요할 것이다. 그러나, 본 발명에서 설명하는 기술을 이용할 때, 결합된 기록 및 캐시 유지보수 동작 요구가 발생될 수 있어, 수신자 컴플리터 장치가 기록 동작의 완료를 기다리지 않고 캐시 유지보수 동작의 처리를 개시할 수 있도록 할 수 있기 때문에, 이 지연을 피할 수 있다.
또 다른 실시예로서, 특정한 요구자 구성요소가 지속 지점에 데이터의 항목을 기록할 필요성을 검출할 때, 특정한 요구자 구성요소는 결합된 기록 및 캐시 유지보수 동작 요구를 발행함으로써, 캐시 유지보수 동작의 수행이 데이터의 항목이 지속 지점으로 푸시되게 하도록 구성된다. 특히, 데이터의 항목을 지속 지점에 기록하는 것이 필요한 것으로 판정될 때, 기록 요구 그 자체가 데이터가 지속 지점에 기록될 필요가 있다는 것을 지정하는 것이 보통 가능하지 않으며, 그 대신에 이 효과를 달성하기 위해 별개의 캐시 유지보수 동작이 행해질 필요가 있다. 그러나, 본 발명에서 설명하는 기술을 사용할 때, 완료신호가 기록에 대해 수신될 때까지 캐시 유지보수 동작 요구의 발행을 지연시킬 필요가 없으며, 그 대신에 결합된 기록 및 캐시 유지보수 동작 요구가 특정한 요구자 구성요소로부터 직접 발행될 수 있다
전술한 것과 같이, 요구자 구성요소와 컴플리터 구성요소는 다양한 형태를 취할 수 있다. 일 구현예에서, 특정한 요구자 구성요소는 마스터 장치에 의해 발행된 결합된 기록 및 캐시 유지보수 동작 요구를 수신하는 수신자 컴플리터 구성요소를 포함하는 인터커넥트 회로에 의해 처리된 트랜잭션들을 발생하는데 사용된 마스터 장치이다.
또 다른 구현예에서는, 특정한 요구자 구성요소는, 상류측 구성요소로부터의 요구에 응답하여 캐시 유지보수 동작을 행하는 컴플리터 구성요소로서 동작하고 하류측 컴플리터 구성요소에 결합된 기록 및 캐시 유지보수 동작 요구를 발행하는 특정한 요구자 구성요소로서도 동작하는 인터커넥트 회로 내부의 중간 구성요소이다.
이와 같은 구현예에서는, 상류측 구성요소로부터의 요구는 다양한 형태를 취할 수 있다. 예를 들어, 이 요구는 단지 캐시 유지보수 동작의 수행을 지정해도 된다. 그러나, 이와 달리 상류측 구성요소로부터의 요구는 결합된 기록 및 캐시 유지보수 동작 요구의 형태를 취해도 된다.
일 구현예에서는, 결합된 기록 및 캐시 유지보수 동작 요구를 처리할 때, 수신자 컴플리터 구성요소는, 데이터의 항목이 하류측 구성요소로 전파될 필요가 있다는 판정에 응답하여, 캐시 유지보수 동작도 하류측 구성요소에 의해 행해질 필요가 있는지 여부를 판정한다. 특히, 기록 데이터가 하류측 구성요소로 전파될 필요가 있는 동안, 현재의 수신자 컴플리터 구성요소를 벗어나 캐시 유지보수 동작이 행해질 필요가 없을 수 있다. 예를 들어, 현재의 수신자 컴플리터 구성요소는 캐시 계층구조 내부의 캐시의 최종 레벨과 관련되고, 이 최종 캐시 레벨에 대해 캐시 유지보수 동작을 행함으로써, 하류측 구성요소에 캐시 유지보수 동작을 전파할 필요가 없다고 판정할 수도 있다. 그러나, 캐시 유지보수 동작이 캐시 계층구조의 최종 레벨을 벗어나 존재하는 지속 지점을 지정할 때, 캐시 유지보수 동작을 하류측 구성요소에게 발행하는 것이 여전히 필요할 수도 있다.
또 다른 실시예로서, 캐시 유지보수 동작이 데이터를 지속 지점으로 푸시하려고 시도하지 않더라도, 어떤 상황에서는, 데이터의 가시성을 가질 필요가 있는 요구자 구성요소들 중에서 한 개가, 캐시 계층구조를 이용하지 않아 예를 들어 캐시 계층구조를 벗어나 메모리 콘트롤러 내부에 직접 경로를 가질 수 있는 요구자 구성요소인 경우가 있을 수 있다. 이와 같은 상황에서는, 데이터가 필요한 가시 지점, 이 경우에는 마찬가지로 메모리 콘트롤러에 도달하도록 보장하기 위해 캐시 유지보수 동작이 캐시 계층구조의 최종 레벨을 벗어나 푸시될 필요가 있다.
일 구현예에서는, 캐시 유지보수 동작이 하류측 구성요소에 의해서도 수행될 필요가 있는 것으로 판정시에, 수신자 컴플리터 구성요소는, 또 다른 결합된 기록 및 캐시 유지보수 동작 요구를 하류측 구성요소에 발행하거나, 또는 기록 요구를 하류측 구성요소에 발행한 후 그후의 캐시 유지보수 동작 요구를 하류측 구성요소에 발행하도록 구성된다. 이 때문에, 결합된 기록 및 캐시 유지보수 동작 요구를 수신하고 기록 및 캐시 유지보수 동작 모두를 하류측 구성요소에 전파할 필요성을 판정하는 시스템 내부의 구성요소가, 하류측 구성요소로의 이 진행중인 요구에 대한 결합된 기록 및 캐시 유지보수 동작 요구를 유지하거나, 요구들을 분할하여 별개의 기록 및 캐시 유지보수 동작 요구들이 하류측 구성요소에 발행되도록 하는 것이 가능하다.
이하, 첨부도면을 참조하여 특정한 실시예에 대해 설명한다.
도 1은 일 구현예에 따른 장치의 블록도이다. 이 장치는 인터커넥트(40)를 거쳐 슬레이브 장치(55)에 접속되는 복수의 마스터 장치들(10, 20, 30)을 구비한다. 본 실시예에서 슬레이브 장치는 메인 메모리(60)에 접속된다. 슬레이브 장치는 다양한 형태를 취할 수 있지만, 예를 들어 메모리 콘트롤러일 수 있다. 이때, 전형적인 시스템은 더 많은 마스터 장치를 구비하며, 실제로 복수의 슬레이브 장치를 구비해도 된다. 특정한 마스터 장치들 내부에는 한 개 이상의 레벨들의 캐시가 설치되고, 실제로 인터커넥트 내부에 한 개 이상의 레벨들의 캐시가 설치되어도 된다. 더구나, 일부 구현예에서는, 인터커넥트를 벗어나, 예를 들어, 슬레이브 장치와 관련하여, 캐시 레벨이 존재하는 것이 가능하다.
도시된 실시예에서는, 마스터 장치들 10, 20이 인터커넥트(40) 내부에 설치된 시스템 캐시(50) 등의 캐시 계층구조의 하부 레벨에 있는 캐시들과 코히런트를 유지하는 캐시들 15, 25를 갖는 완전히 코히런트한 마스터 장치들이다. 이와 같은 코히런시를 유지하기 위해, 완전히 코히런시한 마스터 장치들 10, 20의 각각이 캐시 계층구조 내부에 캐시된 데이터의 코히런트 뷰(view)를 갖도록 보장하려고 하기 위해 캐시 코히런시 프로토콜을 채용할 수 있는 캐시 코히런시 회로(45)가 설치된다. 이때, 다양한 다른 캐시 코히런시 프로토콜들이 사용될 수 있으며, 캐시 코히런시 회로는 코히런시를 유지하려고 하기 위해 다양한 메카니즘들을 채용할 수 이Y다는 것이 자명하다. 예를 들어, 캐시 코히런시 회로(45)는 스눕(snoop) 기반의 캐시 코히런시 메카니즘을 채용함으로써, 코히런트 마스터 장치들 10, 20 중에서 한 개로부터의 요구에 응답하여, 한 개 이상의 다른 완전히 코히런트한 마스터 장치들 10, 20에게 스눕 요구를 발행하여, 이들 다른 코히런트 마스터 장치들이 요청하는 코히런트 마스터 장치가 액세스하려고 하는 데이터의 캐시된 복사본들을 갖고 있는지 판정할 수 있다. 완전히 코히런시한 마스터 장치들은 그 자체가 한 개보다 많은 레벨의 캐시를 갖지만, 간략을 위해 단일 레벨의 캐시가 도 1에 도시되어 있으며, 따라서 완전히 코히런시한 마스터 장치 10은 관련된 로컬 캐시 15를 갖고 완전히 코히런트한 마스터 장치 20은 로컬 캐기(25)를 갖는다. 캐시 계층구조의 하부 레벨에는, 인터커넥트(40) 내부에 시스템 캐시(50)가 설치되고, 각각의 완전히 코히런트한 마스터 장치들이 데이터의 코히런트한 뷰를 갖도록 캐시 코히런시 회로(45)가 다양한 캐시들 15, 25, 50의 콘텐츠들 사이의 코히런시를 보장한다.
이때, 모든 마스터 장치들이 완전히 코히런트한 마스터 장치일 필요는 없으며, 예시를 위해 입출력(I/O) 코히런트한 마스터 장치(30)가 도시되어 있다는 점에 주목하기 바란다. 이와 같은 I/O 코히런트 마스터 장치는 도 1에 도시된 캐시 35 등의 로컬 캐시를 갖거나 갖지 않아도 되지만, 이것이 캐시를 갖는 경우에는 이 캐시 35의 콘텐츠가 인터커넥트 내부의 캐시 코히런시 회로(45)에 의해 코히런트가 유지되지 않으므로, 예를 들어, 캐시 35는 캐시 코히런시 회로(45)로부터의 스눕 요구의 대상이 되지 않을 것이다. I/O 코히런트 마스터 장치(30)에 의해 발생된 데이터를 시스템 내부의 다른 장치들이 볼 수 있게 하려면, I/O 코히런트 마스터 장치(30) 상에서 실행되는 소프트웨어가 이 데이터를 이 코히런트 마스터 장치(30)로부터 기록할 필요가 있으며, 이것은 예를 들어 데이터가 메인 메모리(60)에 기록되게 한다.
I/O 코히런트 마스터 장치는 도 1에 도시된 장치를 상류측 네트워크 또는 상류측 부품(70)에 접속하는데 사용된다. 단지 구체적인 예를 들면, I/O 코히런트 마스터 장치(30)는 도 1에 도시된 장치를 상류측 네트워크를 구성하는 PCIe 네트워크에 접속하기 위한 PCIe 네트워크일 수 있다.
도 1에 나타낸 것과 같이, 장치 내부의 한쌍의 부품을 고려할 때, 메모리에 더 가까운 부품은 하류측 부품으로 불리며, 메모리에서 더 멀리 떨어진 부품은 상류측 부품으로 불린다. 따라서, 캐시 코히런시 회로(45)는 마스터 장치들 10, 20, 30들과 비교할 때 하류측 부품이지만, 슬레이브 장치(55)에 대해 고려할 때 상류측 부품이 된다.
동작중에, 장치 내부의 부품들에 의해 발생된 특정한 데이터의 항목들을 이 데이터에 대한 액세스를 요구할 수 있는 다른 부품들이 볼 수 있을 필요가 있을 수 있다. 이것을 용이하게 하기 위해, 이 데이터를 캐시 계층구조를 거쳐 장치 내부의 결정된 가시 지점으로 푸시하는 것이 필요하다. 결정된 가시 지점은, 해당 데이터와 관련된 메모리 영역, 및/또는 이 데이터의 가시성을 가질 필요가 있는 구성요소들에 따라 변동할 수 있다. 예를 들어, 가시 지점은, 예를 들어 캐시 코히런시 회로(45)와 이와 관련된 시스템 캐시(50)에 있을 수 있는, 시스템 내부의 코히런시 지점이거나 직렬화(serialization) 지점일 수도 있다. 이 데이터의 가시성을 가질 필요가 있는 모든 요구자 장치들이 시스템 캐시를 액세스하는 경우 시스템 캐시 레벨 50이 적절한 하류층 가시 지점을 제공하지만, 데이터의 가시성을 가질 필요가 있는 마스터 장치가 시스템 캐시를 사용하지 않는 경우, 가시 지점이 장치 내부의 더 하류측 위치, 예를 들어, 슬레이브 장치 레벨(55)에 있을 필요가 있다. 예를 들어, I/O 코히런트 마스터 장치(30)가 해당 데이터의 가시성을 가질 필요가 있지만, 시스템 캐시(50)를 액세스하지 않고, 그 대신에 시스템 캐시를 우회하고 직접 슬레이브 장치(55)를 거쳐 메인 메모리(60)를 액세스하는 경우에 이것이 해당할 수 있다. 슬레이브 장치는 기록 데이터가 메인 메모리에 기록되기 전에 기억될 수 있는 로컬 버퍼링을 포함하고, 이 경우에 슬레이브 장치(55) 내부의 이들 기록 버퍼들은 기록 데이터가 푸시될 필요가 있는 가시 지점으로 볼 수 있다.
또한, 일부 경우에는, 기록 데이터가 장치 내부의 지속 지점에 기록될 필요가 있어, 시스템으로부터 전원이 제거되는 경우에 데이터가 손실되지 않도록 보장할 수 있는 경우도 있다. 불휘발성 메모리가 지속 지점의 일례일 것이지만, 지속 지점을 제공하기 위해 더 상류측의 부품들을 배치하는 것이 가능한 경우도 있다. 예를 들어, 슬레이브 장치(55) 내부의 기록 버퍼는, 시스템으로부터 주 전원이 결함을 갖는 경우, 백업 전원이 기록 버퍼 내부의 데이터가 메인 메모리(60)에 기록되게 할 수 있도록 보장하는데 충분한 백업 전원을 구비해도 된다. 마찬가지로, 일부 경우에는, 시스템 캐시(50)는, 전원 고장의 경우에 시스템 캐시 내부의 콘텐츠가 메인 메모리에 기록될 수 있도록 보장하는데 충분한 이와 같은 백업 전원을 구비할 수도 있다. 일부 경우에, 지속 지점과 심층 지속 지점을 구별하는데, 심층 지속 지점은 백업 전원이 고장나더라도 데이터가 유지되도록 보장할 수 있는 지속 지점이다. 심층 지속 지점의 일례는 불휘발성 메모리 그 자체일 것이다.
따라서, 지속 지점은 원하는 가시 지점의 구체적인 예로 볼 수 있으며, 기록 데이터가 원하는 가시 지점으로 푸시되는 것이 필요한 다양한 상황이 존재하게 된다. 보통, 데이터가 시스템 내부의 특정한 가시 지점에 기록되도록 보장하기 위해 기록 동작 그 자체를 사용하는 것은 불가능하다. 예를 들어, 마스터 장치에 의해 발행된 데이터는, 요구된 가시 지점과 관련된 레벨보다 캐시 계층구조에서 더 높은 레벨에 있는 캐시 레벨 내부에 캐시된다. 따라서, 데이터를 원하는 하류측 가시 지점으로 푸시하는 메카니즘으로서 캐시 유지보수 동작을 사용하는 것이 알려져 있다. 캐시 유지보수 동작은 특정한 캐시 레벨에 대해 행해진 후, 이 캐시 레벨이 원하는 가시 지점의 상류측에 있는 경우, 캐시 유지보수 동작의 수행이 데이터가 원하는 가시 지점에 도달하게 할 때까지 캐시 유지보수 동작을 행하기 위한 요구가 캐시 계층구조를 거쳐 전파될 수 있다. 원하는 가시 지점이 캐시 계층구조 내부의 특정한 레벨인 경우에는, 캐시 유지보수 동작이 캐기 계층구조 내부의 이 레벨을 벗어나 행해질 필요가 없다. 그러나, 전술한 것과 같이, 일부 경우에는, 데이터의 가시성을 가질 필요가 있는 한 개 이상의 마스터 장치들이 캐시 계층구조를 액세스하지 않을 수도 있으며, 이와 같은 경우에는, 해당 데이터가 요구된 가시 지점으로 푸시되도록 보장하기 위해, 캐시 유지보수 동작이 캐시 계층구조의 최하위 레벨을 벗어나 전파될 필요가 있다. 예를 들어, 캐시 유지보수 동작이 지속 지점으로 데이터를 푸시하는데 사용되고 있으며, 지속 지점이 캐시 계층구조 내부의 최하위 레벨을 벗어나는 경우에도 이것에 해당한다.
이와 같은 캐시 유지보수 동작(CMO)을 행할 때, 진행중인 기록과 마주치거나, 또는 특정한 캐시 내부의 캐시 유지보수 동작의 수행이 이 캐시로부터 데이터를 퇴출할 필요성, 따라서 이 캐시로부터 기록 요구를 발행할 필요성을 발생하는 경우, 보통, 이전의 기록 요구가 처리될 때까지 캐시 유지보수 동작의 진행중인 전파를 이 시점에서 중지할 필요가 있다. 특히, 하류측 부품으로 캐시 유지보수 동작 요구를 전파하기 전에 이 이전의 기록 요구에 대해 완료 응답의 수신을 기다리는 것이 필요하였다. 그러나, 이것은 캐시 유지보수 동작의 처리시에 상당한 지연시간 문제를 일으킨다. 본 발명에서 설명하는 기술에 따르면, 시스템 내부의 요구자 구성요소가 캐시 유지보수 동작 요구 이전에 기록 요구를 발행할 필요가 있는 상황을 검출하고, 이 경우에, 시스템 내부의 수신자 컴플리터 구성요소에게 발행하여 처리할 수 있는 결합된 기록 및 캐시 유지보수 동작 요구를 발생하도록 함으로써, 이와 같은 지연시간 문제가 해소된다. 그후, 수신자 컴플리터 구성요소는 기록 동작이 완료하기를 기다리지 않고 캐시 유지보수 동작의 처리를 개시할 수 있다. 이것은, 캐시 유지보수 동작 요구가 발행되기 전에 기록 동작이 완료하도록 요구한 종래의 기술과 비교할 때 지연시간을 상당히 줄일 수 있다. 더구나, 이와 같은 접근방법은, 2개의 별개의 요구신호들 대신에 한 개의 요구신호가 발행될 수 있게 할 수 있으므로, 시스템 내부의 대역폭 사용량을 줄일 수 있다.
도 2는 일 구현예에 따른 결합된 기록 및 CMO 요구의 처리를 나타낸 타이밍도이다. 도시된 것과 같이, 요구자 구성요소(100)는 컴플리터 구성요소(105)와 통신하기 원한다. 요구자 구성요소는 다양한 형태를 취할 수 있으므로, 예를 들어 마스터 장치 10, 20, 30이거나, 마스터 장치와 슬레이브 장치 사이의 중간 모드, 예를 들어, 캐시 코히런시 회로(45)를 포함하는 노드일 수 있다. 마찬가지로, 컴플리터 구성요소는 다양한 형태를 취할 수 있으므로, 예를 들어, 슬레이브 장치(55)이거나, 캐시 코히런시 회로(45) 등의 중간 노드일 수 있다.
도 2에 버블(110)로 나타낸 것과 같이, 특정한 시점에서 요구자 구성요소는, 라인 115로 나타낸 것과 같이, 기록 요구 및 CMO 요구를 컴플리터 구성요소(105)로 전파되는 한 개의 기록 및 CMO 요구로 결합하기로 결정한다. 그후, 컴플리터 구성요소(105)는 기록 동작과 CMO 동작을 행할 필요성을 검출하고, 이들 동작의 처리를 개시할 수 있다. 기록 동작을 처리하는 동안, 컴플리터 구성요소(105)가 기록 데이터를 수신할 정도로 충분한 버퍼 공간을 갖고 있다고 판정하면, 데이터 풀 요구(120)를 요구자 구성요소(100)에게 발행할 수 있으며, 그후 이것은 라인 130으로 나타낸 것과 같이, 기록 데이터가 요구자 구성요소로부터 컴플리터 구성요소로 발행되게 한다. 더구나, 요구자 구성요소가 기록 동작과 관련된 것과 동일한 메모리 어드레스를 액세스하기 위해 발행한 후속 요구가 컴플리터 구성요소에 의해 처리되어 요구자 구성요소가 기록 데이터(즉, 경로 130을 거쳐 제공되는 기록 데이터)를 액세스하도록 보장하는 필요한 장애 검사를 컴플리터 구성요소가 설정하면, 컴플리터 구성요소가 라인 125로 나타낸 것과 같이 기록 완료신호를 발행하여 기록 동작이 완료된 것으로 생각된다는 것을 요구자 구성요소에게 식별할 수 있다. 요구자 구성요소(100)는 후속하는 요구를 동일한 어드레스에 발행할 위치에 있기 전에 기록 완료신호의 수신을 대기할 필요가 있다.
도 2에 나타낸 것과 같이, 필요한 경우에는, 데이터 풀 및 기록 완료 신호가 컴플리터 구(105)로부터 요구자 구성요소(100)에게 발행된 한 개의 응답신호로 결합되어, 2개의 별개의 신호를 송신할 필요성을 없앰으로써 대역폭 사용량을 줄일 수 있다. 이것은, 예를 들어, 컴플리터 구성요소가 기록 데이터를 수신하기 위해 이용가능한 버퍼 공간을 가질 때까지, 기록 데이터가 동일한 어드레스를 지정하는 이 컴플리터 구성요소에게 발행된 후속 요구들이 확실하게 관찰가능하게 되도록 하기 위해 필요한 조치를 취한 경우에 적절할 수도 있다.
기록 동작을 처리하는 동안, 컴플리터 구성요소(105)도 CMO의 처리를 개시할 수 있다. CMO의 수행은, 컴플리터 구성요소의 로컬 캐시에서 룩업을 행하여 CMO 요구와 관련된 데이터가 로컬 캐시 내부에 캐시되었는지 여부를 판정하는 과정과, 그후 캐시 유지보수 동작을 구현하기 위해 이 데이터를 포함하는 캐시 라인에 대해 필요한 조치를 취하는 과정을 포함한다. 기록 동작의 수행과 마찬가지로, 이것도 이 데이터의 가시성을 갖는 요구자 구성요소에 의해 컴플리터 구성요소에게 발행된 후속하는 요구에 대해 해당 데이터가 관찰가능하게 되도록 보장하기 위해 어드레스 장애 검사를 설정하는 과정을 포함한다. 일반적으로, CMO 요구는 한 개의 캐시 라인 내에 기억될 수 있는 데이터의 블록에 대한 메모리 어드레스 범위를 식별하고, 이에 따라 이 메모리 어드레스 범위 정보에 근거한 룩업을 사용하여 캐시 내부에 해당 데이터를 기억하는 캐시 라인이 존재하는지 여부를 식별할 수 있다. 관련된 기록 동작은 이 캐시 라인에 있는 데이터의 특정한 부분과 관련되거나, 그 자체가 전체 캐시 라인과 관련된다. 이 때문에, 기록 완료신호를 발행하기 위해 설정될 필요가 있는 어드레스 장애 검사가 CMO에 대한 완료신호를 발행하기 위해 설정될 필요가 있는 어드레스 장애 검사와 기본적으로 동일하다는 것을 알 수 있으며, 따라서 일부 경우에는 CMO에 대한 완료신호가 도 2에서 라인 135로 나타낸 CMO 완료신호 등의 기록에 대한 완료신호와 근접하여 발행될 수 있다. 실제로, 일부 경우에는, 기록 완료신호가 포맷되어 송신되는데 늦을 수도 있기 때문에, 기록 완료신호 전에 CMO 완료신호가 발행되는 것이 가능할 수도 있다.
그러나, CMO의 완료와 기록 동작의 완료 모두는 기본적으로 한 개의 기록 및 CMO 요구에 의해 식별된 2개의 별개의 동작이기 때문에, 이들에 대한 표시를 발행하는 것이 필요하다.
경로 115에 전달된 기록 및 CMO 요구는 보통 트랜잭션 ID를 지정하고, 트랜잭션 ID는 경로 125 상의 기록 완료신호 및 경로 135 상의 CMO 완료신호 모두에 포함되어, 요구자 구성요소가 완료신호들을 원래의 요구와 일치할 수 있게 할 수 있다.
도 2에서 알 수 있는 것과 같이, 기록 데이터가 컴플리터 구성요소에 의해 수신되기 전에 CMO 완료신호가 발행될 수 있으며, CMO의 처리는 기록 동작의 완료전에 개시될 수 있다. 이것은, 요구자 구성요소로부터 CMO 요구를 발행하기 이전에 기록 완료신호의 수신을 대기할 필요가 있었던 이전의 접근방법과 비교할 때, CMO의 처리시에 상당한 지연시간 감소를 제공한다.
전술한 것과 같이, 요구자 구성요소(100)는 동일한 어드레스에 후속하는 요구를 발행하기 전에 기록 완료신호(125)의 수신을 대기할 필요가 있다. 그러나, 요구자 구성요소는, 이와 같은 후속 요구를 동일한 어드레스에 발행하기 전에 CMO 완료신호를 대기할 필요가 있을 수도 없을 수도 있다. 일부 상황에서는, 이것이 불필요하며, 요구자 구성요소는 CMO 완료신호 135의 수신을 대기하지 않고 기록 완료신호 125가 수신되자마자 동일한 어드레스에 후속하는 요구를 발행할 수 있다. 그러나, CMO가 장벽을 통과하기 위한 메카니즘으로서 행해지고 있는 경우, CMO 완료신호가 수신될 때까지 그후의 요구가 발행되지 않도록 시스템이 구성되어도 된다. 이 때문에, 일반적으로, CMO 완료신호를 대기하지 않고 후속하는 요구를 송신하는 것은, 타겟이 된 메모리의 메모리 속성, 아키텍처상 구현, 및/또는 CMO 이후에 장벽이 존재하는지, 또는 CMO가 마스터에서 장벽 시퀀스를 완료하는 처리의 일부로서 사용되고 있는지 여부에 의존한다.
전술한 것과 같이, 일부 경우에는 CMO가 지속 지점으로 데이터를 푸시하는데 사용되고 있을 수 있다. 이와 같은 경우에, CMO 요구는 지속적인 CMO 요구의 형태를 취하고, 결합된 기록 및 CMO 요구 115는 CMO가 지속적인 CMO인지 또는 정규 CMO인지 식별하게 된다. CMO가 지속적인 CMO를 구현하고 있는 경우에는, 점선 140으로 나타낸 것과 같이, CMO의 대상인 데이터가 지속 지점으로 푸시된 것이 확인되면, 컴플리터 구성요소(105)는 지속신호를 다시 요구자 구성요소에 발행하도록 구성된다. 지속신호는 필요한 경우에는 CMO 완료신호와 결합될 수 있다. 이때, 기록 데이터가 지속 지점에서 기록될 필요가 있기 때문에, 이 기록신호가 수신된 후 어떤 지점에서 지속신호가 발행될 필요가 있다. 지속 지점은 컴플리터 구성요소(105)에 위치하거나, 일부 경우에는 컴플리터 구성요소(105)의 하류측의 부품에 위치할 수 있으며, 이와 같은 경우에는 컴플리터 구성요소에 의한 기록 데이터의 수신 사이에 더 긴 지연이 존재할 수도 있으며, 컴플리터 구성요소는 경로 140 상에 지속신호를 발행하는 위치에 있다. 그러나, 일부 구현예에서는, 단지 한 개의 지속신호가 발행되고, 이것은 어떤 중간 구성요소들을 통해 다시 전달되는 것이 아니라 지속 지점과 관련된 컴플리터 구성요소로부터 발행되게 된다.
도 2는 특정한 기록 응답신호들의 결합 및/또는 특정한 CMO 응답신호들의 결합 가능성을 나타내지만, 컴플리터 구성요소가 기본적으로 기록 동작 및 CMO를 병렬로 처리할 수 있도록 하는 결합된 기록 및 CMO 요구신호의 사용을 통해, 특정한 기록 응답이 특정한 CMO 응답과 결합되어, 대역폭 이용량을 더욱 줄일 수 있는 결합된 기록 및 CMO 응답신호를 발생하는 상황이 발생할 수 있다. 이 때문에, 단지 예를 들면, 기록 완료 및 CMO 완료를 표시하기 위해 한 개의 결합된 신호가 발생될 수 있으며(결합된 기록 완료 및 CMO 완료 신호), 기록 완료, 데이터 풀 및 CMO 완료가 한 개의 신호(결합된 기록 완료, 데이터 풀 및 CMO 완료 신호)로 결합될 수도 있고, 데이터 풀 및 CMO 완료가 한 개의 신호(결합된 데이터 풀 및 CMO 완료 신호)로 결합될 수도 있고, 또는 지속신호는 상기한 모든 조합과 결합될 수도 있다.
도 1을 참조하여 전술한 것과 같이, 요구가 시스템 내부의 복수의 구성요소들을 거쳐 전파될 필요가 있기 때문에, 단지 한 개의 요구자 구성요소 및 한 개의 컴플리터 구성요소가 존재하지 않아도 된다. 도 3은 요구가 마스터(200)로부터 인터커넥트(205)로 전달된 후 계속해서 슬레이브(210)로 전달될 필요가 있는 첫 번째 예시적인 상황을 나타낸 것이다. 도 3에 도시된 실시예에서는, 본 발명에서 설명한 기술이 사용되지 않는 것으로 가정하며, 따라서 결합된 기록 및 CMO 요구를 송신할 수 있는 능력이 존재하지 않는다.
이와 같은 제1 실시예에서는, 마스터 장치가 소프트웨어를 실행하고 있으며, 일부 시점에서 명령을 실행하여 그것의 로컬 캐시 내에서 CMO를 행하는 것으로 가정한다. 로컬 캐시 내부에서 CMO를 수행하는 동안, 이것은 캐시로부터 캐시 라인의 퇴출을 일으키므로, 기록 요구를 발행할 필요성을 발생한다. 그후, 기록 요구는 라인 215로 나타낸 것과 같이 발행된다. 마스터 장치가 CMO를 발행할 위치에 있기 전에 기록 동작의 완료를 대기할 필요가 있기 때문에, 이와 같은 기록 요구의 발행은 인터커넥트의 하류측의 CMO 요구의 발행시에 지연을 일으킨다.
본 실시예에서는, 라인 220으로 나타낸 것과 같이 결합된 데이터 풀 및 완료신호가 인터커넥트(205)에 의해 발행되는 것으로 가정한다. 데이터 풀에 응답하여, 라인 225로 나타낸 것과 같이, 기록 데이터가 그후 인터커넥트에 발행될 수 있으며, 완료신호에 응답하여, 마스터는 데이터를 슬레이브 장치에게 푸시하기 위해 CMO 요구를 발행할 수 있다. 이때, 전술한 것과 같이, CMO 요구 그 자체는 데이터가 어느 위치로 푸시될 필요가 있는지 지정하지 않으며, 그 대신에 시스템 정보를 사용하여 데이터와 관련된 메모리 영역의 종류와 이 데이터의 가시성을 가질 필요가 있는 요구자 구성요소를 결정하며, 이것은 데이터가 푸시될 필요가 있는 가시 지점을 결정하게 된다는 점에 주목하기 바란다. 그러나, 이 경우에, 이 가시 지점은 슬레이브 장치(2110) 것으로 가정한다.
도 3에 도시된 실시예에서는, 인터커넥트에 의해 제공된 캐시, 예를 들어 도 1에 도시된 시스템 캐시(50) 내부에 데이터가 할당되는 것으로 가정하므로, 인터커넥트는 이 시점에서는 슬레이브(210)에 기록 요구, 즉 기록 데이터를 발행하지 않는다.
그러나, CMO 요구의 수신시에, 인터커넥트는 그것의 관련된 캐시에서 캐시 유지보수 동작을 행하고, 이와 같은 캐시 유지보수 동작의 수행은 인터커넥트 캐시로부터 해당 캐시 라인, 즉 캐시 내부에 방금 기록된 데이터를 포함하는 캐시 라인의 퇴출을 일으키는 것으로 가정한다. 그 결과, 라인 235로 나타낸 것과 같이, 기록 요구가 슬레이브에게 발행된다. 인터커넥트가 CMO 요구를 발행하기 전에 기록 동작의 완료를 대기할 필요가 있기 때문에, 이와 같은 기록 요구의 발행은 슬레이브의 하류측에서 CMO 요구를 발행할 수 있는 능력을 효율적으로 차단한다.
마찬가지로, 라인 240으로 나타낸 것과 같이, 결합된 데이터 풀 및 완료 신호가 슬레이브로부터 인터커넥트로 송신되는 것으로 가정하는데, 이것은 라인 245로 나타낸 것과 같이 기록 데이터가 슬레이브 장치에 발행될 수 있게 할 수 있으며, 그후 라인 250으로 나타낸 것과 같이 CMO 요구가 슬레이브에게 발행된다.
그후, CMO 동작이 슬레이브 장치에 의해 처리되고, 슬레이브 장치에 의해 필요한 조치가 취해지면, CMO 동작이 완료된 것을 나타내기 위해 라인 255로 나타낸 것과 같이 완료신호라 발행될 수 있다. 완료신호가 인터커넥트에 의해 수신되면, 완료신호가 다시 인터커넥트(205)로부터 마스터(200)에게 송신되어, 마스터로부터 인터커넥트에게 라인 230을 거쳐 발행되었던 CMO 요구의 완료를 표시한다.
CMO가 지속적인 CMO인 경우, 슬레이브 장치는 데이터가 지속 지점에 기록되었을 때 지속신호를 발행하도록 구성되고, 일 구현예에서는, 라인 265로 나타낸 것과 같이, 이 지속신호를 직접 자시 마스터(200)에게 발행한다.
슬레이브 장치가 CMO 요구에 의해 타겟이 되는 메모리의 특정한 영역이 지속적인 메모리 장치의 일부가 아니라고 판정한 경우, 슬레이브 장치는 데이터를 대기하지 않고 지속 응답을 송신하도록 구성될 수도 있다. 이것은 지속 응답이 기능적 의미를 갖고 있지 않지만, CMO 프로토콜 흐름을 완료하는데 필요할 수도 있기 때문이다. 이와 같은 경우에 슬레이브 장치는 지속 응답 내부에 존재하지 않는 지속적인 메모리의 표시를 포함시킬 수도 있다.
이때, 도 3으로부터, 마스터로부터 인터커넥트로의 통신과 인터커넥트로부터 슬레이브로의 모든 통신에 있어서, 이전의 기록 동작의 완료를 대기하는 동안 CMO 요구의 발행에 있어서 지연이 존재한다는 것을 알 수 있다.
도 4는 마스터 장치와 인터커넥트 장치 모두가 결합된 기록 및 CMO 요구를 발행할 수 있는 상황에서의 동일한 실시예를 나타낸 것이다. 이 때문에, 마찬가지로, CMO가 그것의 로컬 캐시에서 수행되도록 하는 명령을 마스터가 실행하고 있는 것으로 가정하고, 이것은 마찬가지로 데이터가 캐시로부터 퇴출되게 하여, 기록 요구의 발행을 필요로 한다. 그러나, CMO 요구를 발행하기 전에 기록 요구를 발행하는 것이 아니라, 마스터 장치(200)는 라인 300으로 나타낸 것과 같이 결합된 기록 및 CMO 요구를 발행하기로 결정한다. CMO 요구는 데이터가 원하는 가시 시전으로 푸시되게 하도록 하는 역할을 하며, 마찬가지로, 이 원하는 가시 지점은 슬레이브(210)인 것으로 가정한다. 인터커넥트(205)가 결합된 기록 및 CMO 요구를 수신하면, 전술한 시스템 정보를 참조하여, 해당 데이터가 슬레이브 장치를 거쳐 푸시될 필요가 있으므로, 이 시점에서, 데이터가 슬레이브에 기록될 필요가 있다는 것을 알고 있다고 판정될 수 있다. 따라서, 인터커넥트는 라인 305로 나타낸 것과 같이 결합된 기록 및 CMO 요구를 직접 슬레이브 장치(210)에게 발행할 수 있다. 이와 같은 두 번째 기록 및 CMO 요구는, 기록 동작과 CMO 모두를 처리할 때 슬레이브가 발행하게 되는 다양한 응답이 송신되어야 하는 위치를 식별하는데 사용될 수 있는 타겟 표시 필드를 포함할 수 있다. 특히, 모든 응답신호들이 동일한 구성요소에 송신될 필요가 있는 것은 아닌 경우가 있을 수 있다. 도 4와 관련되는 구체적인 에로서, CMO가 지속적인 CMO인 경우, 지속신호가 직접 다시 마스터(200)에게 발행될 수 있는 경우가 있을 수 있지만, 이 경우에는, 데이터 풀 요구가 인터커넥트로 다시 송신될 필요가 있으며 마스터 장치로 직접 다시 송신될 수 없는 것으로 가정한다.
인터커넥트(205)가 이와 같은 방식으로 타겟 표시 필드를 설정하였기 때문에, 인터커넥트는 그것이 기록 데이터 자체를 취득할 필요가 있다는 것을 알고 있으므로, 데이터 풀 요구를 다시 마스터 장치에게 발행할 수 있다. 도시된 실시예에서는, 라인 310으로 나타낸 것과 같이 데이터 풀 요구가 마찬가지로 완료신호와 결합되지만, 이 경우에는 마스터가 기록의 완료와 CMO의 완료를 구별할 수 있도록 완료신호가 그것이 기록 완료신호인 것을 지정할 필요가 있다.
그후, 라인 310을 거친 데이터 풀 요구에 응답하여, 마스터는 라인 315로 나타낸 것과 같이 기록 데이터를 발행할 수 있다.
마찬가지로, 슬레이브 장치에서, 슬레이브 장치는 길고 동작을 완료하는데 필요한 조치를 행할 수 있으며, 버퍼 공간이 이용가능하면, 데이터 풀 요구 및 기록 완료신호를 다시 인터커넥트에게 발행할 수 있다. 마찬가지로, 본 실시예에서는, 라인 320으로 나타낸 것과 같이, 이들 2가지 신호가 한 개의 데이터 풀 및 기록 완료 응답으로 결합되는 것으로 가정한다. 슬레이브 장치(210)로부터 데이터 풀 요구가 수신되고, 마스터(200)로부터 기록 데이터가 수신되면, 라인 325로 나타낸 것과 같이, 인터커넥트(205)가 기록 데이터를 슬레이브 장치에게 발행할 수 있다.
더구나, 도 2를 참조하여 전술한 것과 같이, 슬레이브 장치(210)는 결합된 기록 및 CMO 요구의 수신시에 CMO의 처리를 개시할 수 있으며, 기록이 완료하는 것을 대기할 필요가 없다. 이에 따라, 도 4의 라인 330으로 나타낸 것과 같이, 도 3의 전술한 실시예보다 훨씬 일찍 CMO 완료신호가 발행될 수 있다. 슬레이브로부터 CMO 완료신호를 수신하면, 인터커넥트(205)는 라인 335로 나타낸 것과 같이 CMO 완료신호를 다시 마스터에게 전파할 수 있다. 도 2를 참조하여 전술한 곳과 같이, CMO가 지속적인 CMO인 경우, 데이터가 지속 지점에 기록된 것으로 슬레이브 장치가 판정하면, 라인 340으로 나타낸 것과 같이, 지속 응답이 다시 마스터 장치에게 발행될 수 있다. 그러나, 결합된 기록 및 CMO 요구에 의해 지정된 CMO가 지속적인 CMO가 아닌 경우에는, 지속신호가 발행될 필요가 없어진다.
도 3 및 도 4의 비교로부터, 결합된 기록 및 CMO 요구의 사용은 이와 같은 시스템 내에서 CMO 동작을 처리시에 지연시간을 상당히 줄일 수 있다는 것을 알 수 있다. 더구나, 결합된 기록 및 CMO 요구의 사용은 마스터 및 인터커넥트와 인터커넥트 및 슬레이브 사이의 신호 경로에서 대역폭 사용량을 상당히 줄임으로써, 시스템 내부의 스루풋을 향상시킬 수 있다.
도 5 및 도 6은 마찬가지로 먼저 결합된 기록 및 CMO 요구를 사용하지 않는 것과 다음에 결합된 기록 및 CMO 요구를 사용하는 것의 또 다른 예시적인 시나리오를 나타낸 것이다. 그러나, 이 경우에는, 마스터로부터 슬레이브로의 직접 기록 전송이 허용되는 시나리오를 고려한다. 전술한 실시예에서와 마찬가지로, 마스터가 명령을 실행하여 그것의 로컬 캐시에서 CMO를 행하고, 이것이 캐시 라인이 로컬 캐시로부터 퇴출되게 하는 것으로 가정한다. 이것은, 도 5의 라인 400으로 나타낸 것과 같이, 기록 요구가 발행되게 한다. 이 경우, 마스터로부터 슬레이브로의 직접 전송이 허용되므로, 라인 405로 나타낸 것과 같이, 기록 요구가 직접 인i(205)로부터 슬레이브로 전파된다. 일 구현예에서는, 점선 410으로 나타낸 것과 같이, 전술한 것과 같이 필요한 장애 검사를 설정한 경우에만 기록에 대한 완료가 인터커넥트로부터 발행될 수 있다. 그러나, 또 다른 구현예에서는, 라인 415로 나타낸 것과 같이 완료신호가 그 대신에 슬레이브 장치로부터 마스터 장치로 다시 직접 발행될 수 있다.
이와 같은 구현예에서는, 기록 데이터가 마스터로부터 슬레이브에 의해 직접 얻어질 수 있기 때문에, 라인 415로 나타낸 것과 같이, 마스터에 대한 직접 데이터 풀 요구가 슬레이브로부터 발행된다. 이것은, 인터커넥트(205)가 완료신호를 마스터에게 제공하는 것이 아니라 슬레이브 장치가 완료신호를 마스터에게 제공하는 경우 옵션으로 완료신호와 결합된다.
그러나, 라인 420으로 나타낸 것과 같이, 슬레이브 장치가 기록 동작을 완료한 것을 인터커넥트가 알 수 있도록 추가적으로 완료신호가도 인터커넥트로 발행될 필요가 있다.
데이터 풀 요구의 수신에 응답하여, 라인 425로 나타낸 것과 같이, 마스터(200)는 기록 데이터를 직접 슬레이브 장치에게 발행한다. 더구나, 기록에 대한 완료신호의 수신시에, 라인 430으로 나타낸 것과 같이, 마스터 장치는 CMO 요구를 인터커넥트에게 발행할 수 있다.
CMO 요구의 수신시에, 슬레이브 장치가 기록 동작을 완료한 것을 나타내는 완료신호가 슬레이브 장치로부터 수신되면, 라인 435로 나타낸 것과 같이 인터커넥트(205)가 CMO 요구를 슬레이브에게 전파할 수 있다.
CMO가 슬레이브에 의해 행해지면, 라인 440으로 나타낸 것과 같이 완료신호가 다시 인터커넥트에게 발행될 수 있다. 그후, 라인 445로 나타낸 것과 같이 인터커넥트가 완료신호를 다시 마스터 장치(200)에게 발행하여, 마스터에 의해 발행된 CMO 요구가 완료된 것을 나타낸다. 전술한 것과 같이, CMO가 지속적인 CMO를 지정하면, 식별된 캐시 라인에 있는 데이터가 지속 지점에 기록된 것을 식별하기 위해 슬레이브로부터 다시 마스터에게 지속 응답이 발행될 수 있다.
도 6은 결합된 기록 및 CMO 요구가 사용되는 일례를 나타낸 동등한 타이밍도이다. 따라서, 로컬 캐시에 있는 CMO의 수행이 캐시 라인의 퇴출을 일으킬 때, 라인 500으로 나타내는 것과 같이, 마스터(200)가 결합된 기록 및 CMO 요구를 송신하기로 결정한다. 도 4를 참조하여 설명한 이전 실시예와 마찬가지로, 라인 505로 나타낸 것과 같이 인터커넥트가 결합된 기록 및 CMO 요구를 슬레이브(210)에게 전파할 수 있으며 라인 510으로 나타낸 것과 같이 옵션으로 기록 완료 응답을 마스터(200)에게 발행한다. 마찬가지로 도 4를 참조하여 설명한 것과 같이, 인터커넥트에 의해 발행된 결합된 기록 및 CMO 요구는, 슬레이브에 의해 발생된 특정한 응답이 송신되어야 하는 위치를 결정하기 위해 슬레이브에 의해 사용가능한 정보를 제공하기 위한 타겟 표시 필드를 포함할 수 있다. 이 경우, 타겟 표시 필드를 사용하여, 직접 기록 전송이 지원되는 것과 이에 따라 직접 데이터 풀 요구가 마스터(200)에게 발행될 수 있다는 것을 식별할 수 있다. 또한, 타겟 표시 필드는 기록 동작을 처리할 때 발행되는 신호들과 CMO를 처리할 때 발행되는 신호들에 대한 타겟들을 구별하는데 사용될 수도 있는데, 이것은 이들 신호들에 대한 타겟들이 기록 동작이 행해지고 있는지 또는 CMO가 행해지고 있는지에 따라 다를 수 있기 때문이다.
도 6에 도시된 것과 같이, 슬레이브가 기록 데이터를 수신하기 위한 버퍼 공간을 갖고 있는 것으로 판정하면, 라인 515로 나타낸 것과 같이, 데이터 풀 요구를 직접 다시 마스터에게 송신한다. 인터커넥트가 아니라 슬레이브가 기록 완료신호를 발행하고 있으면, 슬레이브는 이 기록 완료신호를 직접 마스터에게 다시 발행할 수 있으며, (도 6에 도시된 실시예에 따르면) 필요한 경우에 이와 같은 기록 완료신호가 데이터 풀 신호와 결합될 수 있다. 라인 520으로 나타낸 것과 같이, 기록 완료신호가 인터커넥트에게 더 발행되어, 슬레이브 장치에 의해 기록 동작이 완료한 것을 인터커넥트에게 통보한다.
슬레이브 장치는, 기록 동작이 완료되는 것을 기다리지 않고 캐시 유o 동작을 행할 수 있으며, 라인 530으로 나타낸 것과 같이, 캐시 유지보수 동작에 대해 필요한 조치가 슬레이브 장치에 의해 취해지자마자 CMO 완료신호를 다기 인터커넥트에게 발행할 수 있다.
라인 525로 나타낸 것과 같이, 마스터 장치는 데이터 풀 신호에 응답하여 기록 데이터를 직접 슬레이브 장치에게 발행하도록 구성된다.
인터커넥트가 슬레이브로부터 CMO 완료신호를 수신하면, 라인 535로 나타낸 것과 같이, CMO 완료신호를 다시 마스터 장치에게 발행할 수 있다.
다른 실시예들과 마찬가지로, CMO가 지속적인 CMO인 상황에서는 지속신호가 슬레이브로부터 직접 다시 마스터에게 발생될 수 있으며, 이때 기록 데이터가 원하는 지속 지점에 기록된 것으로 슬레이브 장치가 판정하면 지속신호가 발행된다. 도 6에 도시된 실시예에서는, 슬레이브 장치가 지속 지점인 것으로 가정하므로, 기록 데이터의 수신과 지속신호를 발행할 수 있는 능력 사이에 비교적 짧은 지연이 존재한다. 그러나, 지속 지점이 슬레이브 장치를 벗어나, 기록 데이터가 슬레이브 장치에 의해 하류측 구성요소로 전파될 필요가 있는 경우, 데이터가 지속 지점에 기록되었다는 확인을 하류측 구성요소로부터 수신할 때까지 슬레이브 장치가 지속신호를 발행할 수 없을 것이며, 따라서 이 경우에는 슬레이브 장치에 의한 기록 데이터 수신과 지속신호를 발행할 위치에 있는 슬레이브 장치 사이에 더 많은 지연이 존재할 것이다.
도 5 및 도 6의 비교로부터, 결합된 기록 및 CMO 요구를 사용함으로써 지연시간의 상당한 감소를 달성할 수 있다는 것을 알 수 있다. 더구나, 기록 동작에 대해 직접 기록 전송을 지원함으로써, 특정한 신호를 중간 노드들을 거쳐 전달할 필요성을 없애고 그 대신에 마스터로부터 슬레이브로의 한번의 홉(hop) 데이터 전송을 허용함으로써, 추가적인 성능상의 이득을 구현할 수 있다.
도 7은 마스터로부터 인터커넥트로의 통신과 그후의 인터커넥트로부터 슬레이브로의 통신을 고려할 때 결합된 기록 및 CMO 요구가 사용되는 다양한 방법을 나타낸 테이블이다. 도시된 케이스 1은, 전술한 도 4 및 도 6을 설명할 때 사용된 것으로, 마스터가 결합된 기록 및 CMO 요구를 인터커넥트에게 송신하고 인터커넥트도 결합된 기록 및 CMO 요구를 슬레이브에게 송신한다. 케이스 2 및 3은 마스터가 결합된 기록 및 CMO 요구를 인터커넥트에게 발행하지만 인터커넥트가 결합된 기록 및 CMO 요구를 슬레이브에게 발행하지 않는 시나리오를 나타낸 것이다. 특히, 케이스 2에 따르면, 인터커넥트가 기록 요구와 CMO를 분리하므로 결합된 기록 및 CMO 요구를 발행하지 않는다. 케이스 3에서는, 하류측의 캐시 유지보수 동작을 행할 필요가 없이 데이터가 원하는 가시 지점에 도달하는 것이 보장될 수 있다고 판정되기 때문에, CMO가 인터커넥트를 벗어나 전파될 필요가 없다고 인터커넥트가 결정한다. 이 경우, 인터커넥트는 기록 요구 만을 슬레이브의 하류측에 발행한다.
케이스 4는 표준 CMO 요구가 마스터로부터 인터커넥트에게 발행되는, 즉 기록 요구가 마스터로부터 인터커넥트에게 송신될 필요가 없는 또 다른 실시예를 나타낸 것이다. 그러나, 인터커넥트에서 CMO를 처리시에, 예를 들어, 인터커넥트에서의 CMO의 수행이 인터커넥트의 캐시로부터 캐시 라인이 퇴출되게 하기 때문에, CMO 요구 이전에 기록 요구를 발행할 필요가 있다고 인터커넥트가 결정한다. 이 경우, 하류측 CMO 요구를 처리시에 지연시간을 줄이기 위해 인터커넥트로부터 결합된 기록 및 CMO 요구를 발행할 옵션을 갖는다.
도 7에 도시하지 않은 또 다른 실시예로서, 결합된 기록 및 CMO 요구가 마스터로부터 인터커넥트에게 발행되는 것이 가능하지만, 인터커넥트는 추가적인 요구들을 하류측으로 송신할 필요가 없는 것으로 판정한다. 예를 들어, 인터커넥트는 데이터를 그것의 로컬 캐시에 캐시할 수 있으며, 이 로컬 캐시는 원하는 가시 지점을 표시한다. 따라서, 기록 동작 또는 CMO를 하류측으로 전파할 필요가 없다.
도 8은 일 구현예에 따라 본 발명에서 설명하는 장치에 의해 행해진 스텝들의 시퀀스를 나타낸 흐름도이다. 스텝 600에서, 요구자 구성요소는, 동일한 어드레스에 대한 기록 동작 및 CMO가 필요하다는 것을 나타내는 조건이 검출되었는지 여부를 판정한다. 검출되지 않은 경우에는, 스텝 605에서 정규 처리가 행해진다. 그러나, 스텝 600에서 조건이 검출되면, 스텝 610에서 요구자 구성요소가 결합된 기록 및 CMO 요구를 수신자 구성요소에게 발행한다. 스텝 615에서, 수신자 구성요소는, 기록 동작과 CMO를 별개의 동작으로서 처리하지만, 기록 동작의 완료를 대기하지 않고 CMO의 처리를 개시할 수 있다. 이에 따라, 기록 데이터가 수신 구성요소에 의해 수신/처리되기 전에도 CMO가 완료될 수 있다. 더구나, 기록 데이터가 그후 기록될 때, 캐시 유지보수 동작의 성능과 충돌하는 방식으로 수신자의 로컬 캐시 내부에 할당되지 않도록 보장하기 위해 수신자 구성요소가 적절한 장애 검사를 설정한 경우에는, 기록 동작에 대해 완료신호가 발행되기 전에도 CMO가 잠재적으로 완료될 수 있다.
스텝 600에서 다양한 이유로 인해 조건이 검출된다. 도 9는 조건이 존재하는 판정하기 위해 행해질 수 있는 일련의 검사를 나타낸 흐름도이다. 스텝 650에서, 요구자 구성요소의 로컬 캐시에서의 CMO의 수행이 캐시 라인의 퇴출을 일으키는지 여부가 판정된다. 퇴출을 일으키는 경우에, CMO가 요구자 구성요소로부터 하류측으로 전파될 필요가 있으면, 스텝 665로 처리가 진행하여, 결합된 조건이 존재하는 것으로 판정되어 요구자 구성요소가 결합된 기록 및 CMO 요구를 발행할 수 있다.
스텝 650으로부터 "no" 경로를 따르면, CMO가 요구자 구성요소의 기록 버퍼에 보류중인 기록이 존재하는 메모리 어드레스를 지정하는지 여부를 판정한다. 이 조건에서는, 기록 요구를 하류측으로 송신하기 위해 버퍼로부터 보류중인 기록을 플러시(flush)할 필요가 있으며, 마찬가지로 스텝 665로 처리가 진행하여, 결합된 조건이 존재하는 것으로 판정될 수 있다.
스텝 655로부터 "no" 경로를 따르면, 스텝 660에서 기록 동작이 지속 지점으로 데이터의 푸시를 요구하는지 여부를 판정한다. 후자의 경우에, 보류중인 캐시 유지보수 동작이 존재하지 않지만, 기록 데이터가 지속 지점에 기록될 필요가 있는 것으로 판정될 때, 보통, 기록 요구 그 자체가 이것을 발생하게 할 수 없는 경우가 있으며, 데이터가 지속 지점으로 푸시되게 하기 위해 기록 요구후에 지속적인 CMO요구가 뒤따를 필요가 있다. 이 경우, 마찬가지로, 스텝 665로 처리가 진행하여, 결합된 조건이 존재하는 것으로 판정된다.
스텝 650, 655, 660에서 행해진 검사 모두가 결합된 조건이 검출되게 하지 않는 경우, 스텝 670으로 처리가 진행하여, 결합된 조건이 존재하지 않는 것으로 판정되고, 도 8의 스텝 605로 나타낸 것과 같이 정규의 처리가 행해진다.
본 발명에서 설명한 기술은 다양한 다른 시스템에서 사용될 수 있다. 한가지 구체적인 예의 뉴스 케이스로서, 본 발명에서 설명하는 결합된 기록 및 CMO 요구는 영국, 캠브리지의 ARM 리미티드에 의해 개발된 Advanced Microcontroller Bus Architecture(AMBA)를 사용하는 시스템, 특히 AMBA 5 CHI(Coherent Hub Interface) 아키텍처 사양을 사용하는 시스템에서 사용된다. 이 아키텍처에서 설명한 다양한 종류의 기록 동작 및 캐시 유지보수 동작이 본 발명에서 설명한 결합된 기록 및 CMO 요구 메카니즘을 사용하여 처리하기 위한 후보가 될 수 있다. WriteBack 및 Write Clean 연산 등의 특정한 CopyBack 기록 연산(보통 캐시에 의해 발생된 기록 연산)과 관련하여, 그리고 WriteNoSnp 및 WriteUnique 연산 등의 특정한 NonCopyBack 기록 연산과 관련하여 기술이 채용될 수도 있다. 이와 같은 기록 동작은, CleanShare(Persist) CMO(이때 모든 캐시된 복사본(즉, 더티 상태가 아닌)의 클리닝과 더티 데이터의 메모리에의 기록(또는 PoP)이 필요하다)와, 어떤 경우에는 CleanInvalid CMO(이때 모든 캐시된 복사본들이 무효화되고, 더티 데이터의 메모리에의 기록이 필요하다) 등과 같이, 다양한 CMO들에 대해 결합된 기록 및 CMO 요구의 대상이 되도록 허용된다.
본 발명에서 설명하는 기술은, 기록 요구 뒤에 CMO 요구를 순번대로 나열할 필요성을 없애 CMO 완료의 지연시간의 상당한 감소를 가능하게 하고, 또한 2개의 요구를 한 개의 요구로 결합할 수 있도록 함으로써 대역폭 사용량의 저감을 가능하게 한다.
본 발명에서, 단어 "하도록 구성된"은 장치의 구성요소가 정의된 동작을 행할 수 있는 구성을 갖는다는 것을 의미하기 위해 사용된다. 이와 관련하여, "구성"은 하드웨어 또는 소프트웨어의 배치 또는 상호접속 방식을 의미한다. 예를 들어, 장치는 정의된 동작을 제공하는 전용 하드웨어를 갖거나, 프로세서 또는 기타의 처리장치가 기능을 행하도록 프로그래밍되어도 된다. "하도록 구성된"은 이 장치의 구성요소가 정의된 동작을 제공하기 위해 어떤 식으로 변경될 필요가 있는 것을 시사하는 것은 아니다.
첨부도면을 참조하여 본 발명의 예시적인 실시예들을 상세히 설명하였지만, 본 발명은 이들 실시예에 한정되지 않으며, 첨부된 청구범위의 보호범위 및 사상을 벗어나지 않으면서 본 발명이 속한 기술분야의 당업자에 의해 다양한 변경, 부가 및 변화가 행해질 수 있다는 것은 자명하다. 예를 들면, 종속항들의 특징들의 다양한 조합이 독립항들의 특징과 행해질 수도 있다.

Claims (21)

  1. 요구를 발행하는 복수의 요구자 구성요소들과,
    상기 요구를 처리하는 적어도 한 개의 컴플리터(completer) 구성요소와,
    메모리 내부의 어드레스들과 관련된 데이터의 캐시된 복사본들을 기억하는 복수의 레벨들의 캐시를 포함하는 캐시 계층구조를 구비하고,
    상기 복수의 요구자 구성요소들 내부의 특정한 요구자 구성요소는, 지정된 메모리 어드레스 범위와 관련된 데이터의 블록이 적어도 한 개의 레벨의 캐시 계층구조를 거쳐 결정된 가시 지점으로 푸시되게 함으로써 이 데이터의 블록을 상기 복수의 요구자 구성요소들 내부의 한 개 이상의 다른 요구자 구성요소들이 볼 수 있도록 하기 위해 메모리 어드레스 범위를 지정하는 캐시 유지보수 동작 요구를 발행하도록 구성되고,
    상기 특정한 요구자 구성요소는, 상기 지정된 어드레스 메모리 범위 내부의 데이터의 항목에 대해 기록 동작이 행해지게 하기 위해 상기 캐시 유지보수 동작 요구 이전에 기록 요구를 발행할 필요성의 검출에 응답하여, 상기 기록 요구 및 그후의 캐시 유지요구 동작 요구 대신에 발행할 결합된 기록 및 캐시 유지보수 동작 요구를 발생하고,
    상기 결합된 기록 및 캐시 유지보수 동작 요구를 수신한 상기 적어도 한 개의 컴플리터 구성요소 중에서 수신자 컴플리터 구성요소는, 상기 기록 동작이 완료하는 것을 기다리지 않고 상기 결합된 기록 및 캐시 유지보수 동작 요구에 의해 요구된 캐시 유지보수 동작의 처리를 개시하도록 구성된 장치.
  2. 제 1항에 있어서,
    상기 수신자 컴플리터 구성요소는, 메모리 어드레스를 지정하는 요구를 처리할 때 완료신호를 발행하여, 이 요구에 의해 요구된 동작의 결과가 이 메모리 어드레스를 지정하는 후속하는 요구를 상기 수신자 컴플리터 구성요소에게 발행하는 상기 복수의 요구자 구성요소들의 적어도 서브셋에 의해 관찰되도록 보장하는데 충분한 조치가 상기 수신자 컴플리터 구성요소에 의해 취해진 것을 표시하도록 구성되고,
    상기 수신자 컴플리터 구성요소는, 상기 특정한 요구자 구성요소에게 기록 완료신호와 이와 별개의 캐시 유지보수 동작 완료신호를 발행하여, 상기 특정한 요구자 구성요소에게 상기 결합된 기록 및 캐시 유지보수 동작 요구에 의해 요구된 기록 동작 및 캐시 유지보수 동작의 진행을 독립적으로 알려주게 할 수 있도록 구성된 장치.
  3. 제 2항에 있어서,
    상기 기록 완료신호 및 이와 별개의 캐시 유지보수 동작 완료신호 모두는 상기 결합된 기록 및 캐시 유지보수 동작 요구에서 지정된 것과 동일한 트랜잭션 식별자를 사용하는 장치.
  4. 제 1항에 있어서,
    상기 수신자 컴플리터 구성요소는, 상기 결합된 기록 및 캐시 유지보수 동작 요구의 처리중에 복수의 신호들을 발행하도록 구성되고,
    상기 결합된 기록 및 캐시 유지보수 동작 요구가 이들 신호 각각에 대한 타겟 구성요소들을 결정하는데 사용되는 타겟 표시 필드를 제공하는 장치.
  5. 제 4항에 있어서,
    상기 타겟 표시 필드는, 상기 수신자 컴플리터 구성요소가 기록 동작과 관련된 데이터의 항목을 취득하려고 하는 소스 구성요소가 상기 결합된 기록 및 캐시 유지보수 동작 요구를 발생한 상기 특정한 요구자 구성요소와 다른 구성요소인 시기를 표시하고, 그 경우, 상기 수신자 컴플리터 구성요소는 데이터 풀(pull) 신호를 직접 상기 다른 구성요소에게 발행하여 상기 다른 구성요소를 기동함으로써 데이터의 항목을 상기 수신자 컴플리터 구성요소에게 송신하도록 구성된 장치.
  6. 제 5항에 있어서,
    상기 다른 구성요소는 상기 특정한 요구자 구성요소에게 초기의 결합된 기록 및 캐시 유지보수 동작 요구를 발행한 구성요소이고, 상기 특정한 요구자 구성요소에 의한 이 초기 결합된 기록 및 캐시 유지보수 동작 요구의 처리는 상기 특정한 요구자 구성요소가 상기 결합된 기록 및 캐시 유지보수 동작 요구를 상기 수신자 컴플리터 구성요소에게 발행하게 하는 장치.
  7. 제 6항에 있어서,
    적어도 한가지 종류의 기록 동작에 대해, 상기 장치가 상기 다른 구성요소로부터 직접 데이터의 항목의 취득을 금지하도록 구성되고, 상기 결합된 기록 및 캐시 유지보수 동작 요구가 상기 적어도 한가지 종류의 기록 동작과 관련될 때, 데이터의 항목이 상기 특정한 요구자 구성요소로부터 취득될 것이라는 것을 식별하도록 상기 타겟 표시 필드가 설정되는 장치.
  8. 제 4항에 있어서,
    상기 타겟 표시 필드는, 기록 동작의 처리중에 상기 수신자 컴플리터 구성요소에 의해 발행된 제1 신호에 대한 타겟 구성요소가 캐시 유지보수 동작의 처리중에 상기 수신자 컴플리터 구성요소에 의해 발행된 제2 신호에 대한 타겟 구성요소와 다른 시기를 나타내는 장치.
  9. 제 8항에 있어서,
    상기 결정된 가시 지점은 지속 지점이고, 상기 제1 신호는 데이터의 항목을 취득하려고 시도하기 위해 상기 수신자 컴플리터 구성요소에 의해 발행된 데이터 풀 신호이고, 상기 제2 신호는 상기 지정된 메모리 어드레스 범위와 관련된 데이터의 블록이 상기 지속 지점에 도달한 것을 식별하기 위해 발행된 지속 신호인 장치.
  10. 제 4항에 있어서,
    적어도 상기 기록 동작 및 상기 캐시 유지보수 동작 중에서 한가지를 처리할 때, 상기 수신자 컴플리터 구성요소는, 복수의 신호들이 동일한 타겟 구성요소에 발행될 때, 상기 복수의 신호들을 한 개의 결합된 신호로 결합하도록 구성된 장치.
  11. 제 10항에 있어서,
    상기 수신자 컴플리터 구성요소는, 상기 기록 동작과 관련된 적어도 한 개의 신호와 상기 캐시 유지보수 동작과 관련된 적어도 한 개의 신호를 상기 한 개의 결합된 신호에 포함시키도록 구성된 장치.
  12. 제 1항에 있어서,
    상기 캐시 유지보수 동작 요구는 요구자 구성요소와 관련된 캐시의 특정한 레벨에 대해 상기 특정한 요구자 구성요소에 의해서도 행해지는 캐시 유지보수 동작을 식별하고, 상기 캐시의 특정한 레벨에 대해 상기 캐시 유지보수 동작의 수행이 데이터의 항목이 상기 캐시의 특정한 레벨로부터 퇴출되도록 요구할 때 상기 특정한 요구자 구성요소가 상기 캐시 유지보수 동작 요구 이전에 상기 기록 요구를 발행할 필요성을 검출하도록 구성된 장치.
  13. 제 1항에 있어서,
    상기 특정한 요구자 구성요소는, 상기 특정한 요구자 구성요소로부터 보류중인 기록 요구들을 발행하기 전에 이들 보류중인 기록 요구들을 유지하는 버퍼를 포함하고, 상기 특정한 요구자 구성요소는, 상기 버퍼 내부의 보류중인 기록 요구가 상기 캐시 유지보수 동작 요구에 대한 상기 지정된 메모리 어드레스 범위 내부의 어드레스를 향할 때, 상기 캐시 유지보수 동작 요구 이전에 상기 기록 요구를 발행할 필요성을 검출하도록 구성된 장치.
  14. 제 1항에 있어서,
    상기 특정한 요구자 구성요소가 지속 지점에 데이터의 항목을 기록할 필요성을 검출할 때, 상기 특정한 요구자 구성요소는 상기 결합된 기록 및 캐시 유지보수 동작 요구를 발행함으로써, 상기 캐시 유지보수 동작의 수행이 데이터의 항목이 상기 지속 지점으로 푸시되게 하도록 구성된 장치.
  15. 제 1항에 있어서,
    상기 특정한 요구자 구성요소는, 마스터 장치에 의해 발행된 상기 결합된 기록 및 캐시 유지보수 동작 요구를 수신하는 상기 수신자 컴플리터 구성요소를 포함하는 인터커넥트 회로에 의해 처리된 트랜잭션들을 발생하는데 사용된 상기 마스터 장치인 장치.
  16. 제 1항에 있어서,
    상기 특정한 요구자 구성요소는, 상류측 구성요소로부터의 요구에 응답하여 상기 캐시 유지보수 동작을 행하는 컴플리터 구성요소로서 동작하고 하류측 컴플리터 구성요소에 상기 결합된 기록 및 캐시 유지보수 동작 요구를 발행하는 상기 특정한 요구자 구성요소로서도 동작하는 인터커넥트 회로 내부의 중간 구성요소인 장치.
  17. 제 16항에 있어서,
    상기 상류측 구성요소로부터의 요구는 상기 결합된 기록 및 캐시 유지보수 동작 요구의 형태도 취하는 장치.
  18. 제 1항에 있어서,
    상기 결합된 기록 및 캐시 유지보수 동작 요구를 처리할 때, 상기 수신자 컴플리터 구성요소는, 데이터의 항목이 하류측 구성요소로 전파될 필요가 있다는 판정에 응답하여, 상기 캐시 유지보수 동작도 상기 하류측 구성요소에 의해 행해질 필요가 있는지 여부를 판정하는 장치.
  19. 제 18항에 있어서,
    상기 캐시 유지보수 동작이 상기 하류측 구성요소에 의해서도 수행될 필요가 있는 것으로 판정시에, 상기 수신자 컴플리터 구성요소는,
    상기 하류측 구성요소에 대한 또 다른 결합된 기록 및 캐시 유지보수 동작 요구와,
    상기 하류측 구성요소에 대한 기록 요구 후에 상기 하류측 구성요소에 대한 후속하는 캐시 유지보수 동작 요구
    중에서 한 개를 발행하도록 구성된 장치.
  20. 장치 내부의 캐시 유지보수 동작을 처리하는 방법으로서,
    요구를 발행하는 복수의 요구자 구성요소들과, 상기 요구를 처리하는 적어도 한 개의 컴플리터 구성요소와, 메모리 내부의 어드레스들과 관련된 데이터의 캐시된 복사본들을 기억하는 복수의 레벨들의 캐시를 포함하는 캐시 계층구조를 제공하는 단계와,
    특정한 요구자 구성요소가, 지정된 메모리 어드레스 범위와 관련된 데이터의 블록이 적어도 한 개의 레벨의 캐시 계층구조를 거쳐 결정된 가시 지점으로 푸시되게 함으로써 이 데이터의 블록을 상기 복수의 요구자 구성요소들 내부의 한 개 이상의 다른 요구자 구성요소들이 볼 수 있도록 하기 위해 메모리 어드레스 범위를 지정하는 캐시 유지보수 동작 요구를 발행하도록 구성하는 단계와,
    상기 지정된 메모리 어드레스 범위 내부의 데이터의 항목에 대해 기록 동작이 행해지게 하기 위해 상기 캐시 유지보수 동작 요구 이전에 기록 요구를 발행할 필요성의 검출에 응답하여, 상기 기록 요구 및 그후의 캐시 유지요구 동작 요구 대신에 발행할 결합된 기록 및 캐시 유지보수 동작 요구를 상기 특정한 요구자 구성요소에서 발생하는 단계와,
    상기 결합된 기록 및 캐시 유지보수 동작 요구를 수신한 상기 적어도 한 개의 컴플리터 구성요소 중에서 수신자 컴플리터 구성요소가, 상기 기록 동작이 완료하는 것을 기다리지 않고 상기 결합된 기록 및 캐시 유지보수 동작 요구에 의해 요구된 캐시 유지보수 동작의 처리를 개시하게 하는 단계를 포함하는 처리방법.
  21. 요구를 발행하는 복수의 요구자 구성요소 수단들과,
    상기 요구를 처리하는 적어도 한 개의 컴플리터 구성요소 수단과,
    메모리 내부의 어드레스들과 관련된 데이터의 캐시된 복사본들을 기억하는 복수의 레벨들의 캐시 수단을 포함하는 캐시 계층구조를 구비하고,
    상기 복수의 요구자 구성요소 수단들 내부의 특정한 요구자 구성요소 수단은, 지정된 메모리 어드레스 범위와 관련된 데이터의 블록이 적어도 한 개의 레벨의 캐시 계층구조를 거쳐 결정된 가시 지점으로 푸시되게 함으로써 이 데이터의 블록을 상기 복수의 요구자 구성요소 수단들 내부의 한 개 이상의 다른 요구자 구성요소 수단들이 볼 수 있도록 하기 위해 메모리 어드레스 범위를 지정하는 캐시 유지보수 동작 요구를 발행하도록 구성되고,
    상기 특정한 요구자 구성요소 수단은, 상기 지정된 메모리 어드레스 범위 내부의 데이터의 항목에 대해 기록 동작이 행해지게 하기 위해 상기 캐시 유지보수 동작 요구 이전에 기록 요구를 발행할 필요성의 검출에 응답하여, 상기 기록 요구 및 그후의 캐시 유지요구 동작 요구 대신에 발행할 결합된 기록 및 캐시 유지보수 동작 요구를 발생하고,
    상기 결합된 기록 및 캐시 유지보수 동작 요구를 수신한 상기 적어도 한 개의 컴플리터 구성요소 수단 중에서 수신자 컴플리터 구성요소 수단은, 상기 기록 동작이 완료하는 것을 기다리지 않고 상기 결합된 기록 및 캐시 유지보수 동작 요구에 의해 요구된 캐시 유지보수 동작의 처리를 개시하도록 구성된 장치.
KR1020200122105A 2019-10-03 2020-09-22 캐시 유지보수 동작을 처리하는 장치 및 방법 KR20210040257A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/591,827 US10970225B1 (en) 2019-10-03 2019-10-03 Apparatus and method for handling cache maintenance operations
US16/591,827 2019-10-03

Publications (1)

Publication Number Publication Date
KR20210040257A true KR20210040257A (ko) 2021-04-13

Family

ID=72039413

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200122105A KR20210040257A (ko) 2019-10-03 2020-09-22 캐시 유지보수 동작을 처리하는 장치 및 방법

Country Status (4)

Country Link
US (1) US10970225B1 (ko)
EP (1) EP3800555B1 (ko)
KR (1) KR20210040257A (ko)
CN (1) CN112612725A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11455251B2 (en) * 2020-11-11 2022-09-27 Advanced Micro Devices, Inc. Enhanced durability for systems on chip (SOCs)
US20230385127A1 (en) * 2022-05-25 2023-11-30 Arm Limited Apparatus and method in which control functions and synchronization events are performed

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW548547B (en) * 1999-06-18 2003-08-21 Ibm Method and system for maintaining cache coherency for write-through store operations in a multiprocessor system
US9223705B2 (en) * 2013-04-01 2015-12-29 Advanced Micro Devices, Inc. Cache access arbitration for prefetch requests
GB2522057B (en) * 2014-01-13 2021-02-24 Advanced Risc Mach Ltd A data processing system and method for handling multiple transactions
US10157139B2 (en) * 2016-09-19 2018-12-18 Qualcomm Incorporated Asynchronous cache operations

Also Published As

Publication number Publication date
EP3800555B1 (en) 2022-03-30
CN112612725A (zh) 2021-04-06
EP3800555A1 (en) 2021-04-07
US20210103525A1 (en) 2021-04-08
US10970225B1 (en) 2021-04-06

Similar Documents

Publication Publication Date Title
US5796977A (en) Highly pipelined bus architecture
KR100371844B1 (ko) 데이타처리시스템
JP6087532B2 (ja) 同時保留中データアクセスリクエストのためのデータハザード処理
US5682516A (en) Computer system that maintains system wide cache coherency during deferred communication transactions
US5133074A (en) Deadlock resolution with cache snooping
US7536514B2 (en) Early return indication for read exclusive requests in shared memory architecture
KR101928770B1 (ko) 제1 및 제2의 프로토콜 도메인을 갖는 데이터 처리장치와, 그 데이터 처리장치의 방법
KR20210040257A (ko) 캐시 유지보수 동작을 처리하는 장치 및 방법
EP2568379B1 (en) Method for preventing node controller deadlock and node controller
KR20210041485A (ko) 데이터 신호 경로 및 태그 신호 경로를 갖는 메모리 인터페이스
US7797495B1 (en) Distributed directory cache
US7089376B2 (en) Reducing snoop response time for snoopers without copies of requested data via snoop filtering
KR101188252B1 (ko) 오류 검출 및 보정에 관련된 지연시간을 완화하기 위한시스템 및 방법
KR102526431B1 (ko) 데이터 처리
JPH10105461A (ja) 処理装置及びルックアサイド・キャッシュをスヌープする改善された装置及び方法
US6973548B1 (en) Data acceleration mechanism for a multiprocessor shared memory system
US20180052790A1 (en) Interconnect circuitry and a method of operating such interconnect circuitry
JP6975338B2 (ja) 順序付けされた帯域幅を改善するプロトコルスキームのキャンセル及びリプレイ
CN105786744B (zh) 互连装置和互连的操作方法
JPH06282528A (ja) データ転送方法及びそのシステム
US20070174556A1 (en) Methods and apparatus for reducing command reissue latency
CA2181704C (en) Highly pipelined bus architecture

Legal Events

Date Code Title Description
A201 Request for examination