KR102476933B1 - 인터커넥트 및 인터커넥트의 작동방법 - Google Patents

인터커넥트 및 인터커넥트의 작동방법 Download PDF

Info

Publication number
KR102476933B1
KR102476933B1 KR1020150189196A KR20150189196A KR102476933B1 KR 102476933 B1 KR102476933 B1 KR 102476933B1 KR 1020150189196 A KR1020150189196 A KR 1020150189196A KR 20150189196 A KR20150189196 A KR 20150189196A KR 102476933 B1 KR102476933 B1 KR 102476933B1
Authority
KR
South Korea
Prior art keywords
write
transaction
circuitry
transactions
gating
Prior art date
Application number
KR1020150189196A
Other languages
English (en)
Other versions
KR20160086746A (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 KR20160086746A publication Critical patent/KR20160086746A/ko
Application granted granted Critical
Publication of KR102476933B1 publication Critical patent/KR102476933B1/ko

Links

Images

Classifications

    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • G06F13/4036Coupling between buses using bus bridges with arbitration and deadlock prevention
    • 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
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • 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/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

인터커넥트와, 인터커넥트의 작동방법은, 복수의 마스터 기기와 복수의 슬레이브 기기를 연결하도록 구성된다. 장애 관리 회로소자는, 중첩 어드레스에 대한 트랜잭션들을 직렬화하는데 사용된다. 추가로, 게이팅 회로소자는, 상기 마스터 기기 중 하나 이상에 대한 인터페이스에서 순서화된 기록 감시(OWO) 작용을 보장하고, 상기 게이팅 회로소자는 기록 트랜잭션들의 기록 어드레스 전달을 수신하고, 상기 OWO작용을 보장하기 위해 상기 슬레이브 기기에 상기 기록 어드레스 전달의 전진 전파를 제어하는 게이팅 동작을 행한다. 상기 게이팅 회로소자는 상기 장애 관리 회로소자의 제어하에 상기 게이팅 동작을 행한다. 이에 따라서, 상기 장애 관리 회로소자에 의해 장애 검사가 이루어지는 기록 트랙잭션들을 위해, 이것은, 기록 트랜잭션들을 위한 OWO작용을 구체적으로 관리하기 위해 임의의 다른 처리들을 구현할 필요성을 제거한다.

Description

인터커넥트 및 인터커넥트의 작동방법{AN INTERCONNECT AND METHOD OF OPERATION OF AN INTERCONNECT}
본 기술은 인터커넥트 및 이 인터커넥트의 작동방법에 관한 것이다.
인터커넥트는, 복수의 마스터 기기와 복수의 슬레이브 기기간에 트랜잭션이 일어날 수 있도록 상기 복수의 마스터 기기와 상기 복수의 슬레이브 기기를 연결하는데 사용될 수 있다. 일부의 인터커넥트에서는, 순서화된 기록 감시(OWO: ordered write observation) 작용이 상기 인터커넥트와 상기 마스터 기기의 적어도 하나와의 인터페이스에서 감시되기 위한 요구사항이 있다. 마스터 기기에 대한 상기와 같은 인터페이스에 관해서, OWO작용은, 트랜잭션 식별자가 특별한 기록 트랜잭션의 결과를 상기 마스터 기기가 감시할 수 있으면, 그 기록 트랜잭션 전에 발행되었던 트랜잭션 식별자가 같은 그 밖의 모든 기록 트랜잭션의 결과를 반드시 감시할 수 있을 것을 요구한다.
상기 마스터 기기에 대한 하나 이상의 인터페이스에서 OW0 작용을 유지하는 문제와는 별개로, 교착상태 상황 발생을 일으키지 않는 방식으로 상기 인터커넥트를 통해 트랜잭션을 처리하는 것을 보장하도록 인터커넥트는 일반적으로 교착상태 회피회로를 포함할 필요가 있다는 것도 알려져 있다. 일례로서, 슬레이브 기기로부터 상기 인터커넥트를 통해 복귀된 기록 응답신호들을 감시하고, 상기 인터커넥트를 통해 새로운 트랜잭션을 발행시킬 수 있는 것이 안전할 때 그 기록 응답 정보를 사용하여 결정하는 것이 알려져 있다. 종래의 시스템에서는, 이러한 교착상태 회피방식의 이용도 앞서 언급한 OWO 작용이 감시되는 것을 보장하는 부작용이 있을 수 있다.
그렇지만, 교착상태 회피회로는, 기록 트랜잭션의 대기시간을 증가시켜서 잠재적 성능을 감소시키고, 또한 구현하는데 복잡하고 비용이 들 수도 있고, 일부의 인터커넥트에서는 특정 교착상태 조건의 가능성을 완화하기 위해 그 밖의 구조가 포함될 수 있다. 예를 들면, 상기 인터커넥트가 기록 응답신호들을 수신하는 순서에 대하여 마스터 기기에 그 기록 응답신호들을 되돌리는 순서가 재정렬되는 것을 가능하게 하는 기록 응답 리오더(re-order) 버퍼를 제공하는 것이 알려져 있다. 이것은, 상기 인터커넥트내에서 상기 교착상태 회피회로를 필요로 하는 정도를 감소시켜서 대기시간 영향을 상당히 감소시킬 가능성을 갖는다. 그렇지만, 그래도 임의의 필요한 OWO 작용이 감시되는 것을 보장하는 것이 필요하고, 이는, OWO작용을 보장하기 위해 상기 교착상태 회피회로를 사용할 때 대기시간의 감소 가능성을 제한한다.
일 구성 예에서, 복수의 마스터 기기와 복수의 슬레이브 기기를 연결하는 인터커넥트는, 중첩 어드레스에 대한 트랜잭션들을 직렬화하는 장애 관리 회로소자; 및 상기 복수의 마스터 기기 중 적어도 하나에 대한 인터페이스에서 순서화된 기록 감시(OWO) 작용을 보장하는 게이팅 회로소자를 구비하고, 상기 게이팅 회로소자는 기록 트랜잭션들의 기록 어드레스 전달을 수신하고, 상기 OWO작용을 보장하기 위해 상기 슬레이브 기기에 상기 기록 어드레스 전달의 전진 전파를 제어하는 게이팅 동작을 행하고; 상기 게이팅 회로소자는 상기 장애 관리 회로소자의 제어하에 상기 게이팅 동작을 행하고, 상기 복수의 마스터 기기 중 적어도 하나가 캐시 구조와 연관되어 있고, 상기 인터커넥트는, 상기 인터커넥트에 의해 상기 복수의 마스터 기기로부터 수신된 코히어런트 트랜잭션의 캐시 일관성 제어 동작을 행하는 일관성 제어 회로소자를 더 구비하고; 상기 장애 관리 회로소자는 상기 일관성 제어 회로소자 내에 제공되고 중첩 어드레스에 대한 코히어런트 트랜잭션을 직렬화하기 위해 이용되고, 상기 게이팅 회로소자는, 코히어런트 기록 트랜잭션을 위해, 상기 장애 관리 회로소자의 제어하에 상기 게이팅 동작을 행하도록 구성된다.
다른 구성 예에서, 복수의 마스터 기기와 복수의 슬레이브 기기를 연결하는 인터커넥트의 작동방법은, 장애 관리 회로소자를 이용하여 중첩 어드레스에 대한 트랜잭션들을 직렬화하는 단계; 게이팅 회로소자를 이용하여 기록 트랜잭션들의 기록 어드레스 전달을 수신하는 단계; 상기 게이팅 회로소자를 이용하여 상기 복수의 마스터 기기 중 적어도 하나에 대한 인터페이스에서 순서화된 기록 감시(OWO) 작용을 보장하기 위해서 상기 슬레이브 기기에 상기 기록 어드레스 전달의 전진 전파를 제어하는 게이팅 동작을 행하는 단계; 및 상기 게이팅 회로소자를 이용하여 상기 장애 관리 회로소자의 제어하에 상기 게이팅 동작을 행하는 단계를 포함하고, 상기 복수의 마스터 기기 중 적어도 하나가 캐시 구조와 연관되어 있고, 상기 작동방법은, 일관성 제어 회로소자를 이용하여 상기 인터커넥트에 의해 상기 복수의 마스터 기기로부터 수신된 코히어런트 트랜잭션의 캐시 일관성 제어 동작을 행하는 단계를 더 포함하고; 상기 장애 관리 회로소자는 상기 일관성 제어 회로소자 내에 제공되고 중첩 어드레스에 대한 코히어런트 트랜잭션을 직렬화하기 위해 이용되고, 상기 게이팅 회로소자는 코히어런트 기록 트랜잭션을 위해, 상기 장애 관리 회로소자의 제어하에 상기 게이팅 동작을 행한다.
또 다른 구성 예에서, 복수의 마스터 기기와 복수의 슬레이브 기기를 연결하는 인터커넥트는, 중첩 어드레스에 대한 트랜잭션들을 직렬화하는 장애 관리수단; 및 상기 복수의 마스터 기기 중 적어도 하나에 대한 인터페이스에서 순서화된 기록 감시(OWO) 작용을 보장하는 게이팅 수단을 구비하고, 상기 게이팅 수단은 기록 트랜잭션들의 기록 어드레스 전달을 수신하고, 상기 OWO작용을 보장하기 위해 상기 슬레이브 기기에 상기 기록 어드레스 전달의 전진 전파를 제어하는 게이팅 동작을 행하고; 상기 게이팅 수단은 상기 장애 관리수단의 제어하에 상기 게이팅 동작을 행하고, 상기 복수의 마스터 기기 중 적어도 하나가 캐시 구조와 연관되어 있고, 상기 인터커넥트는, 상기 인터커넥트에 의해 상기 복수의 마스터 기기로부터 수신된 코히어런트 트랜잭션의 캐시 일관성 제어 동작을 행하는 일관성 제어수단을 더 구비하고; 상기 장애 관리수단은 상기 일관성 제어수단 내에 제공되고 중첩 어드레스에 대한 코히어런트 트랜잭션을 직렬화하기 위해 이용되고, 상기 게이팅 수단은, 코히어런트 기록 트랜잭션을 위해, 상기 장애 관리수단의 제어하에 상기 게이팅 동작을 행하도록 구성된다.
본 기술은 아래의 첨부도면에 도시된 것과 같은 실시예들을 참조하여 예시로만 한층 더 설명한다:
도 1은 일 실시예에 따른 데이터 처리 시스템의 블록도이고,
도 2는 일 실시예에 따른 인터커넥트내에 구비된 각종 구성요소간의 상호작용을 보다 상세히 도시한 것이고,
도 3은 일 실시예에 따른 도 1 및 도 2의 퍼(per) 마스터 트랜잭션 추적기에 의해 행해진 기능들의 일부를 보다 상세하게 도시하는 블록도이고,
도 4는 일 실시예에 따른 도 2의 트랜잭션 리오더 버퍼내에서 행해진 특정 단계들을 도시하는 흐름도이고,
도 5는 일 실시예에 따라 비 코히어런트 기록 해싱 트랜잭션이 OWO 고려를 위해 어떻게 취급되는지를 개략적으로 도시하는 도면이다.
첨부도면을 참조하여 실시예들을 설명하기 전에, 아래에 실시예들에 대해 설명한다.
일 실시예에 따라, 상기 인터커넥트내의 게이팅 회로소자는, 상기 마스터 기기의 하나 이상에 대한 인터페이스에서 OWO작용을 보장하는데 사용된다. 특히, 상기 게이팅 회로소자는, 상기 OWO 작용을 보장하기 위해서 기록 트랜잭션들을 위한 타겟 슬레이브 기기에 대한 기록 트랜잭션의 기록 어드레스 전달의 전진 전파를 제어하는 게이팅 동작을 행한다. 또한, 장애 관리 회로소자는, 중첩 어드레스에 대한 트랜잭션들을 직렬화하기 위해서, 트랜잭션들에 대한 장애 검사를 행하는데 사용된다. 발명자들은, 기록 트랜잭션에 대하여 상기 장애 관리 회로소자의 장애 검사 과정을 하는 경우, 상기 게이팅 회로소자가 필요로 하는 상기 게이팅 동작은 상기 장애 관리 회로소자의 제어하에 행해질 수 있다는 것을 실현하였다. 따라서, 상기 OWO 작용은, 상기 트랜잭션들의 OWO작용을 관리하기 위해 교착상태 회피방식을 이용할 필요 없이 상기와 같은 트랜잭션에 대해 보장될 수 있다. 이에 따라, 기록 트랜잭션의 대기시간을 감소시켜서 상당한 성능 이점을 실현할 수 있다. 또한, 특정한 교착상태 조건을 제거할 수 있는 경우에 상기 인터커넥트의 비용과 복잡성을 감소시킬 수 있고, 이에 따라 연관된 교착상태 회피 회로소자가 필요하지 않는데, 그 이유는 상기 장애 관리 회로소자가 검사한 장애이면 단지 그 기록 트랜잭션들을 위한 상기 OWO작용을 처리하기 위해서만 상기 교착상태 회피 회로소자를 더 이상 포함할 필요가 없기 때문이다. 따라서, 이것은, 피해야할 상기 기록 트랜잭션을 위한 OWO 작용을 실시하기 위해 교착상태 회피 방식의 이용에 의존할 수 있다.
일 실시예에서, 적절한 장애 관리 회로소자는, 다른 이유로 상기 인터커넥트 내에 이미 구비되어도 된다. 예를 들면, 상기 마스터 기기 중 적어도 하나가 캐시 구조와 연관되어 있는 경우, 상기 인터커넥트는, 상기 기기 전부가 그 캐시 구조 내에서 가장 최신의 버전의 임의의 캐시 데이터를 볼 수 있는 것을 보장하기 위해서 캐시 일관성 제어 메카니즘을 구현하는 것이 필요할 수도 있다. 특히, 일 실시예에서, 상기 인터커넥트는, 상기 인터커넥트에 의해 상기 마스터 기기로부터 수신된 코히어런트 트랜잭션의 캐시 일관성(coherency) 제어 동작을 행하는 일관성 제어 회로소자를 더 구비하여도 되고, 상기 장애 관리 회로소자는 상기 일관성 제어 회로소자와 연관되어 있고 중첩 어드레스에 대한 코히어런트 트랜잭션들을 직렬화하기 위해 이용된다. 그리고, 상기 게이팅 회로소자는 코히어런트 기록 트랜잭션을 위해, 상기 장애 관리 회로소자의 제어하에 상기 게이팅 동작을 행하도록 구성되어도 된다.
따라서, 이러한 실시예에서, 어떤 코히어런트 기록 트랜잭션은, 상기 캐시 일관성 제어 동작의 일부로서 상기 장애 관리 회로소자에 의해 이미 처리되었을 것이다. 이 때문에, 그 코히어런트 기록 트랜잭션을 위해, 상기 게이팅 회로소자는, 그 코히어런트 기록 트랜잭션을 위한 OWO 작용을 보장하기 위해서 상기 장애 관리 회로소자의 제어하에 상기 게이팅 동작을 행할 수 있을 뿐이다.
일 실시예에서, 비 코히어런트 기록 트랜잭션이 캐시 일관성 제어 목적을 위해 상기 장애 관리 회로소자에 의해 처리될 필요는 없지만, 그럼에도 불구하고 상기 인터커넥트는 비 코히어언트 기록 트랜잭션을 위한 OWO작용을 보장하기 위해서 상기 장애 관리 회로소자에 의해 상기 비 코히어런트 기록 트랜잭션을 통과하도록 구성될 수 있었다.
그렇지만, 상기 장애 관리 회로소자는, 상대적으로 값비싼 자원을 나타내고, 이에 따라 임의의 비 코히어런트 기록 트랜잭션에 대해 상기 장애 관리 회로소자를 이용하지 않는 것이 바람직할 수도 있다. 그 대신에, 일 실시예에서, 상기 인터커넥트는, 상기 인터커넥트로부터 상기 슬레이브 기기에 발행된 기록 트랜잭션들에 응답하여 상기 슬레이브 기기로부터 수신된 기록 응답 신호들을 추적하는 트랜잭션 추적 회로소자를 더 구비하여도 된다. 그리고, 비 코히어런트 기록 트랜잭션을 위해, 상기 트랜잭션 추적 회로소자는, 상기 비 코히어런트 기록 트랜잭션을 위한 상기 게이팅 동작의 성능을 제어하기 위해 OWO 제어신호를 상기 게이팅 회로소자에 발행하도록 구성되어도 된다. 따라서, 비 코히어런트 기록 트랜잭션을 위해, OWO 작용을 보장하는데 필요한 상기 게이팅 동작은, 상기 트랜잭션 추적 회로소자가 발행한 OWO제어신호에 의거하여 행해질 수 있다.
일 실시예에서, 각 트랜잭션은 트랜잭션에 관한 트랜잭션 식별자를 갖고, 상기 트랜잭션 추적 회로소자는, 트랜잭션 식별자가 같은 선행 기록 트랜잭션 전부에 관한 기록 응답신호들이 감시될 때까지 비 코히어런트 기록 트랜잭션의 어드레스 전달이 상기 게이팅 회로소자를 지나 전파되지 않는 것을 보장하도록, 상기 기록 응답신호들에 의존하여 상기 OWO 제어신호를 상기 게이팅 회로소자에 발행하는 것을 제어하도록 구성된다.
일 실시예에서, 각 슬레이브 기기는, 그 슬레이브 기기가 처리하는 기록 트랜잭션에 관하여 OWO작용을 구현하도록 제한된다. 이러한 경우에, 상기 트랜잭션 추적 회로소자는, 감시할 필요가 있는 비 코히어런트 기록 트랜잭션의 수, 즉 OWO 제어신호를 발행할 필요가 있는 비 코히어런트 기록 트랜잭션의 수를 한층 더 제한할 수 있다. 특히, 일 실시예에서, 상기 트랜잭션 추적 회로소자는, 트랜잭션 식별자가 같은 가장 최근의 선행 비 코히어런트 기록 트랜잭션의 슬레이브 기기와는 다른 슬레이브 기기에 발행되는 비 코히어런트 기록 트랜잭션의 상기 게이팅 회로소자를 지나 전파를 제어하기 위해서만 상기 OWO 제어신호를 발행하도록 구성된다.
이러한 해결방법에 의해, 기록 트랜잭션의 평균 순방향 대기시간을 상당히 감소시킬 수 있는데, 그 이유는 상기 트랜잭션 추적 회로소자가 제어할 필요가 있는 기록 트랜잭션의 수가 비교적 작을 뿐이기 때문이다. 실제로, 기록 트랜잭션 트래픽의 전부는 일관적일 경우, 상기 트랜잭션 추적 회로소자가 기록 트랜잭션의 어떠한 게이팅도 행할 필요가 없다는 것을 알 것이다.
일부의 실시예에서, 특정 비 코히어런트 기록 트랜잭션은, 일련의 기록 데이터 유닛들을 다수의 슬레이브 기기를 거쳐 기록되게 한다. 여기에서, 이러한 기록 트랜잭션을 기록 해싱 트랜잭션이라고 한다. 해싱 트랜잭션의 특정한 예로서는 스트라이핑 트랜잭션이 있고, 이때 기록 데이터 유닛들은 상기 다수의 슬레이브 기기를 거쳐 스트라이프 방식으로 기록된다. 일 실시예에서, 상기 트랜잭션 추적 회로소자는, 현재 비 코히어런트 기록 트랜잭션을 고려할 때, 트랜잭션 식별자가 같은 가장 최근의 선행 비 코히어런트 기록 트랜잭션이 비 코히어런트 기록 해싱 트랜잭션이면, 상기 현재의 비 코히어런트 기록 트랜잭션을, 상기 가장 최근의 선행 비 코히어런트 기록 트랜잭션의 슬레이브 기기와는 다른 슬레이브 기기에 발행되는 것으로서 취급하도록 구성된다. 상기 비 코히어런트 기록 해싱 트랜잭션의 최종 데이터 유닛을 어느 슬레이브 기기가 기록하고 있는지에 상관없이, 상기 트랜잭션 추적 회로소자는, 현재의 비 코히어런트 기록 트랜잭션을, 그 기록 해싱 트랜잭션의 슬레이브 기기와는 다른 슬레이브 기기에 발생되는 것으로서 생각하므로, 상기 트랜잭션 추적 회로소자가 그 현재의 비 코히어런트 기록 트랜잭션을 위한 상기 OWO작용을 구현하도록 야기한다.
상기 OWO 제어신호를 언제 발행할 지 상기 트랜잭션 추적 회로소자가 결정할 수 있는 방식은 많이 있다. 일 실시예에서, 상기 트랜잭션 추적 회로소자는, 교착상태 회피방식을 구현하여서 상기 OWO 제어신호의 발행을 제어한다. 그렇지만, 상기 설명으로부터 명백하듯이, OWO목적을 위해서, 이러한 교착상태 회피방식의 이용은, 비 코히어런트 기록 트랜잭션에 제한될 수 있고, 특정한 실시예들에서는 일부의 비 코히어런트 기록 트랜잭션에 대해서만 제한될 수 있다.
상기 교착상태 회피방식은, 다양한 형태를 취할 수 있지만, 일 실시예에서는 단일 트랜잭션 방식, 트랜잭션 식별자당 단일 트랜잭션 방식, 또는 트랜잭션 식별자당 단일 루트(route) 방식 중 하나다.
일 실시예에서는, OWO작용을 보장하기 위해서 상기 트랜잭션 추적 회로소자에 의해 제어된 발행을 가질 필요가 있는 비 코히어런트 기록 트랜잭션의 수를 한층 더 감소시킬 수 있다. 특히, 아직 감시되지 않은 기록 응답들을 갖는 트랜잭션 식별자가 같은 선행 기록 트랜잭션 전부가 코히어런트 기록 트랜잭션이면, 상기 트랜잭션 추적 회로소자는 그 비 코히어런트 기록 트랜잭션의 상기 게이팅 회로소자를 지나 전파를 제어하지 않도록 구성되어도 된다. 특히, 발명자들이 관찰한 것은, 비 코히어런트 기록 트랜잭션이 발행될 때까지 감시된 결과들을 가질 수 없을 가능성이 있고, 아직 감시되지 않은 기록 응답들을 갖는 트랜잭션 식별자가 같은 선행 기록 트랜잭션 전부가 코히어런트 기록 트랜잭션이면, 트랜잭션 전부는 그들의 코히어런트 기록 트랜잭션과 관련되어 상기 장애 관리 회로소자의 이용에 의해 상기 필요로 하는 OWO작용을 자동으로 보일 것이라는 것이다. 따라서, 이것은, 이 "제1" 비 코히어런트 기록 트랜잭션은 상기 트랜잭션 추적 회로소자에 따라 어떠한 게이팅도 없이 상기 필요로 하는 OWO작용을 보일 것을 보증한다.
일 실시예에서, 상기 인터커넥트는, 상기 인터커넥트가 수신한 기록 응답신호들을, 그 인터커넥트에 의한 상기 기록 응답신호들의 수신 순서와 다른 순서로 상기 마스터 기기에 되돌리는 것을 가능하게 하는 기록 응답 리오더 버퍼를 더 구비한다. 기록 응답 리오더 버퍼가 사용될 때, 이는, 잠재적인 교착상태 상황의 수를 상당히 감소시킬 수 있으므로, 상기 교착상태 회피 회로소자의 이용에 의해 달리 일어나지 않은 대기시간을 상당히 감소시킬 수 있다. OW0작용을 처리하는 앞서 설명한 기술을 채용하면, 이것은, 상기 OWO작용을 관리하기 위해 상기 교착상태 회피 회로소자에 따른 감소를 통해 그 잠재적 대기시간을 보다 쉽게 감소시키는 것을 가능하게 한다. 그리고, 이에 따라, 상술한 기록 트랜잭션의 대기시간의 감소로 상당한 성능을 향상시킬 수 있다.
상기 트랜잭션 식별자는 다양한 형태를 취할 수 있지만, 일 실시예에서, 상기 트랜잭션 식별자는 다른 마스터 기기로부터 트랜잭션을 위해 다르게 구성되어 있다. 일부의 실시예에서, 상기 마스터 기기는 유일한 트랜잭션 식별자를 사용하도록 구성될 수 있다. 또는, 상기 마스터 기기가 지정한 원래의 트랜잭션 식별자는, 상기 인터커넥트가 사용한 것과 같은 트랜잭션 식별자가 다른 마스터 기기로부터 트랜잭션을 위해 다른 것을 보장하도록 상기 인터커넥트에 의해 보충될 수 있다.
일 실시예에서는, 기록 트랜잭션의 기록 어드레스 전달과 상기 기록 트랜잭션의 연관 기록 데이터가 상기 인터커넥트에 의해 처리되는 방식을 관리하기 위해 상기 인터커넥트 내에는, 교착상태 회피 회로소자가 필요하다. 특히, 상기 교착상태 회피 회로소자는, 기록 트랜잭션의 기록 어드레스가 타겟 슬레이브 기기에 그 연관된 기록 데이터를 경로 지정할 수 있는 것을 보증할 수 있을 때까지 상기 인터커넥트를 통해 발행될 수 없는 것을 보장할 필요가 있다. 이는 잠재적 재수렴성 경로 하류측에서 생긴 순환 의존관계를 막는 것이 필요하다. 이러한 잠재적 교착상태 상황을 처리하려는 종래의 기술들은, 그 연관 기록 데이터의 제1 유닛도 이용가능할 때까지 기록 트랜잭션의 상기 기록 어드레스 전달을 생기지 않게 함으로써, 또는 다른 슬레이브 기기에 보낸 선행 트랜잭션에 관한 기록 데이터 전부가 발행될 때까지 기록 트랜잭션의 상기 기록 어드레스 전달을 생기지 않게 함으로써, 상당한 대기시간 문제를 일으킬 수 있다. 일 실시예에 따라, 이러한 대기시간은, 수정된 교착상태 회피 메카니즘으로 상당히 짧아진다.
특히, 일 실시예에서, 상기 인터커넥트는, 상기 인터커넥트를 통해 기록 데이터를 경로 지정하는 기록 데이터 라우팅 회로소자; 다른 슬레이브 기기에 관해 행해지는 선행 기록 트랜잭션의 기록 데이터가 상기 기록 데이터 라우팅 회로소자내의 기록 트랜잭션의 연관 기록 데이터를 차단할 수 없는 것을 보증할 때까지 상기 인터커넥트내의 게이팅 포인트를 지나 기록 트랜잭션의 상기 기록 어드레스 전달이 전파되지 않는 것을 보장하도록, 상기 슬레이브 기기들에 대한 기록 트랜잭션의 기록 어드레스 전달의 전진 전파를 제어하는 교착상태 회피 회로소자; 및 상기 게이팅 포인트를 지나 전파된 현재의 기록 트랜잭션의 기록 어드레스 전달이, 상기 현재의 기록 트랜잭션의 상기 연관 기록 데이터의 기록 데이터 사이즈와 상기 연관 기록 데이터용 기록 데이터 루트를 결정하고, 또 상기 기록 데이터 루트와 상기 기록 데이터 사이즈를 고려하여 상기 현재의 기록 트랜잭션의 상기 연관 기록 데이터를 상기 기록 데이터 라우팅 회로소자를 통해 전파하는 것을 보증하는 조건의 존재를 결정하도록 구성된 기록 데이터 추적 회로소자를 더 구비하고, 상기 기록 데이터 추적 회로소자는, 상기 조건의 검출에 응답하여, 상기 교착상태 회피 회로소자에 해제(release) 신호를 발행하여 다음 기록 트랜잭션의 상기 기록 어드레스 전달이 상기 게이팅 포인트를 넘어서도록 구성된다.
따라서, 상기 실시예에 따라, 기록 데이터 추적 회로소자는, 현재의 기록 트랜잭션의 상기 연관 기록 데이터가 상기 기록 데이터 라우팅 회로소자내에서 도움이 되지 않기 때문에 상기 다음 기록 트랜잭션에 관한 기록 데이터를 차단할 수 없는 것을 보증할 수 있는 포인트를 결정하는데 사용된다. 이 포인트에서, 기록 데이터 추적 회로소자는, 해제신호를 상기 교착상태 회피 회로소자에 발행하고나서 다음 기록 트랜잭션의 상기 기록 어드레스 전달이 상기 게이팅 포인트를 넘어서도록 구성된다. 이것은, 공지된 기술에 따른 것보다 다음 기록 트랜잭션의 상기 기록 어드레스 전달을 상당히 일찍 발행하게 함에 따라서, 기록 트랜잭션의 대기시간을 상당히 감소시킬 수 있고, 또 여전히 잠재적 교착상태 조건을 보장하는 것을 회피한다.
일 실시예에서, 상기 인터커넥트는, 상기 기록 데이터 라우팅 회로소자와 상기 슬레이브 기기에 전달하기에 앞서 기록 데이터를 버퍼링하는 상기 슬레이브 기기들 사이에 위치된 기록 데이터 버퍼 회로소자를 더 구비하고, 상기 기록 데이터 추적 회로소자는, 상기 현재의 기록 트랜잭션의 나머지 기록 데이터가 상기 기록 데이터 버퍼 회로소자내에 수용되도록 보증되는 포인트를 상기 조건으로서 결정하기 위해서, 상기 기록 데이터 루트용 상기 기록 데이터 버퍼 회로소자내의 가용 공간을 감시하도록 구성된다. 따라서, 본 실시예에서, 상기 기록 데이터 추적 회로소자는, 상기 관련 기록 데이터 버퍼(들)내의 상기 가용 공간이 상기 현재의 기록 트랜잭션의 나머지 기록 데이터를 수용하기에 충분하고, 그 포인트에서 상기 해제 신호가 발행될 수 있을 때를 결정할 수 있다. 따라서, 상술한 기술은, 기록 데이터의 최종 유닛이 실제로 발행될 때까지 기다리지 않지만, 그 대신에 데이터의 최종 유닛이 그렇게 이미 행해지지 않은 경우에도 상기 기록 데이터 라우팅 회로소자를 통해 방해받지 않고 발행할 수 있다는 것을 보증할 수 있을 때를 결정한다. 그 포인트에서는, 비록 상기 현재의 트랜잭션의 데이터의 최종 유닛이 상기 기록 데이터 라우팅 회로소자를 통과하지 않을지라도 상기 해제신호를 발행하는 것이 안전하기 때문에, 대기시간을 상당히 감소시킨다. 특히, 이러한 초기 해제신호는, 다음의 서로 다른 목적지 기록 트랜잭션의 기록 어드레스의 게이팅을 해제한다.
일반적으로, 상기 해제 처리는, 약간의 시간이 걸리지만, 그 해제신호의 초기 발행으로, 상기 현재의 기록 트랜잭션의 기록 데이터가 발행되어 상기 기록 데이터 라우팅 회로소자를 통과하는 동안 그 해제 메카니즘을 진행할 수 있고, 또 최종 기록 데이터가 상기 기록 데이터 라우팅 회로소자를 통과하기 전에 상기 다음 기록 트랜잭션의 기록 어드레스를 발행할 수 있기 때문에, 대기시간이 상당히 감소된 인터커넥트를 통해 상기 다음 트랜잭션의 기록 데이터를 경로 지정되게 시작할 수 있다.
상기 기록 데이터 버퍼 회로소자는, 다양한 형태를 취할 수 있지만, 일 실시예에서는 슬레이브 기기마다 별개의 기록 버퍼를 구비한다.
이하, 도면들을 참조하여 구체적인 실시예들을 설명한다.
도 1은, 예를 들면 집적회로로서 구체화되어도 되는, 일 실시예에 따른 데이터 처리 시스템을 도시한 것이다. 인터커넥트(25)는, 복수의 마스터 기기(10, 15, 20)와 복수의 슬레이브 기기(80, 85, 90)를 상호연결하도록 구성된다. 인터커넥트(25)는 각종 마스터 기기와 슬레이브 기기의 상호연결을 제어하여 상기 마스터 기기와 상기 슬레이브 기기와의 사이에서 트랜잭션을 발생 가능하게 한다. 트랜잭션은, 일반적으로, 마스터 기기로부터 상기 인터커넥트를 통해 특정한 슬레이브 기기에의 어드레스 전달 후, 상기 마스터 기기와 슬레이브 기기와의 사이에서 데이터를 건네주기 위해서 하나 이상의 데이터 전달을 포함한다. 기록 트랜잭션에 대해서는, 상기 기록 데이터가 상기 마스터 기기로부터 슬레이브 기기에 건네주고, 판독 트랜잭션에 대해서는, 상기 데이터는 슬레이브 기기로부터 상기 마스터 기기에 되돌려진다. 기록 트랜잭션에 대해서는, 일 실시예에서, 기록 응답도, 예를 들면, 트랜잭션이 성공적으로 완료했는지, 에러가 일어났는지 등을 나타내는 기록 트랜잭션의 끝에서 관련 마스터 기기에 트랜잭션 상태 정보를 제공하기 위해 상기 슬레이브 기기로부터 상기 마스터 기기에 되돌려진다.
트랜잭션 어드레스들은, 상기 관련 마스터 기기로부터 상기 관련 슬레이브 기기에 상기 인터커넥트를 통해 여러 가지의 기록 트랜잭션의 기록 어드레스와 판독 트랜잭션의 판독 어드레스를 경로 지정하는 라우팅 회로소자(35)뿐만 아니라, 연관 제어 회로들도 구비하는, 상기 어드레스 회로소자(30)를 통해 경로 지정된다. 마찬가지로, 기록 트랜잭션의 상기 기록 데이터는 기록 데이터 라우팅 회로소자와 연관 제어 소자들을 구비하는 기록 데이터 회로소자(45)를 통해 경로 지정되고, 또 상기 판독 트랜잭션의 판독 데이터는 라우팅 회로소자들과 연관 제어 소자들을 구비하는 상기 판독 데이터 회로소자(55)를 통해 되돌려진다. 일 실시예에서, 기록 데이터 버퍼들(50)도, 상기 관련 슬레이브 기기에 전진 전파에 앞서 기록 데이터를 버퍼링 가능하게 하는 상기 기록 데이터 회로소자(45)와 상기 슬레이브 기기와의 사이의 경로에 설치된다.
기록 응답 회로소자(60)는 슬레이브 기기들로부터 상기 관련 마스터 기기들에 되돌려진 여러 가지의 기록 응답을 경로 지정하는데 사용되고, 상기 기록 응답 트래픽도 상기 마스터 기기들에 전진 전송에 앞서 퍼(per) 마스터 트랜잭션 추적 회로소자(65)를 통해 경로 지정된다. 상기 퍼 마스터 트랜잭션 추적 회로소자는, 마스터 기기마다, 완료되지 않은 트랜잭션 전부의 상태에 대한 정보를 유지하도록 구성되고, 이 정보는, 상기 인터커넥트에 의해 어드레스 트래픽과 데이터 트래픽의 흐름을 제어하도록, 도시된 그 밖의 여러 가지 부품에서 참조하는 플래그들을 설정하는데 사용된다. 도 1에 도시된 것처럼, 일 실시예에서, 상기 퍼 마스터 트랜잭션 추적 회로소자(65)는, 기록 응답 리오더 버퍼(70)를 구비하여 상기 인터커넥트에서 수신한 기록 응답 신호들을 그 기록 응답 신호들의 수신의 순서와는 다른 순서로 상기 마스터 기기에 되돌리는 것을 가능하게 한다. 기록 응답 리오더 버퍼를 사용함으로써, 딴 방법으로 일어날지도 모르는 다수의 잠재적 교착상태 상황을 제거함에 따라서, 상기 트랜잭션 추적 회로소자(65)내의 교착상태 회피 회로소자를 사용하여 잠재적 교착상태 상황을 처리할 필요성으로 인해 초래될 대기시간을 감소시키는 것이 가능하다.
상기 마스터 기기의 하나 이상의 캐시 구조가 연관되어 있는 경우, 상기 인터커넥트내에 일관성 제어 회로소자(40)를 구비하여 상기 인터커넥트에 연결된 각종 기기들 전부가 가장 최신의 버전의 임의의 특정한 데이터 값을 보는 것을 보장하기 위해서 캐시 일관성 동작을 행하는 것이 알려져 있다. 도 1에 도시된 예에서는, 마스터 기기(10, 15)의 캐시 구조(12, 17)가 연관되어 있다고 한다. 비록 캐시 구조가 연관되어 있지 않은 것처럼 상기 마스터 기기(20)를 도시하였지만, 그 트랜잭션들에 대해서도 공유 가능한 어드레스 범위(이러한 영역 속성은 일반적으로 메모리 관리 유닛(MMU) 페이지 테이블에 기재됨)에 관계하는 경우와, 그에 따라서 그 밖의 마스터 기기(10, 15)에 관한 캐시 구조 12, 17 중 하나에 존재할 수도 있을 가능성이 있는 경우에 상기 캐시 일관성 제어 동작을 행해야 하는 것이 일반적이다.
마스터 기기들에서 발행한 트랜잭션들은, 코히어런트 트랜잭션들 또는 비 코히어런트 트랜잭션들로서 분류될 수 있다. 코히어런트 트랜잭션들에 대해 상기 일관성 제어 회로소자(40)의 일관성 제어 동작을 행해야 하는 한편, 비 코히어런트 트랜잭션들에 대해서는 행하지 않아야 한다. 코히어런트 트랜잭션의 일례로서는 메모리의 공유 가능한 영역내에 어드레스를 지정한 트랜잭션이 있는 반면에, 비 코히어런트 트랜잭션의 일례로서는 메모리의 공유 가능한 영역내에 없는 어드레스를 지정한 트랜잭션이 있음에 따라서, 여기서 상기 연관 데이터는 상기 캐시 구조 12, 17 중 한쪽에 존재할 수 없다.
상기 일관성 제어 회로소자는, 장애 검출동작을 행하고 상기 검출된 장애 조건을 고려하여 상기 어드레스 라우팅 회로소자(35)를 통해 어드레스 전달의 발행의 오더링 및 타이밍을 제어하는 장애 검사 회로소자(42)를 구비한다. 특히 상기 장애 검사 회로소자(42)는, 중첩 어드레스들에 대한 트랜잭션들을 검출하고, 잠재적 장애 조건이 일어나지 않도록 그 트랜잭션들을 직렬화하는 것을 보장한다. 이 장애 검사는, 상기 마스터 기기들이 발행한 실제의 트랜잭션들에 관해서뿐만 아니라, 상기 캐시 일관성 동작의 일부로서 상기 일관성 제어 회로소자가 발행할 가능성도 있는 임의의 스누핑 트랜잭션들과 관련되어서도 행해져도 된다. 특히, 현재의 트랜잭션이 액세스하려고 하고 있는 데이터를 상기 캐시 구조 12, 17 중 한쪽이 보유하는 것을 상기 일관성 제어 회로소자가 결정하는 경우, 필요한 데이터가 실제로 상기 캐시 내에 기억되는지를 검색동작을 행하여 판정하도록 상기 캐시들 중 하나 이상에 대한 스누프 트랜잭션을 상기 일관성 제어 회로소자가 시작하여도 되고, 또한 그 스누프 트랜잭션도 상기 장애 검사 회로소자에 의해 감시될 수 있다.
일반적으로, 인터커넥트는, 교착상태 상황을 일으키지 않는 방식으로 상기 인터커넥트를 통해 트랜잭션들이 처리되는 것을 보장하기 위해 교착상태 회피 회로소자를 구비해야 한다. 일 방식의 교착상태 회피 회로소자의 특별한 예로서, 상기 인터커넥트를 통해 상기 슬레이브 기기로부터 되돌려진 기록 응답 신호들을 감시하기 위해 상기 트랜잭션 추적 회로들내에 교착상태 회피 회로소자를 제공하고, 새로운 트랜잭션이 상기 인터커넥트를 통해 발행되게 하는 것이 안전할 때 그 기록 응답 정보를 사용하여 결정하는 것이 알려져 있다. 이것은, 상기 잠재적 교착상태 상황이 더 이상 나타나지 않는다고 하면 상기 관련 어드레스 전달이 전파되게 하도록 상기 어드레스 라우팅 회로소자(35)내의 하나 이상의 소자를 제어하는데 사용될 수 있다. 그렇지만, 기록 응답 리오더 버퍼(70)가 설치되는 실시예들에서, 이것은, 그 잠재적 교착상태 상황을 상당히 완화시킬 수 있고, 상기 추적 회로소자(65)내의 교착상태 회피 회로소자의 이용이 상당히 감소되는 것을 가능하게 함으로써, 기록 트랜잭션의 대기시간을 감소시킨다.
그렇지만, 앞서 언급된 것처럼, 교착상태 회피 문제와는 별도로, 상기 인터커넥트와 상기 마스터 기기 중 적어도 하나와의 인터페이스에서 순서화된 기록 감시(OWO) 작용이 감시되기 위한 요구사항이 종종 있고, 다수의 마스터 기기들에 대한 이 작용이 필요한 경우도 있다. 기록 응답 트래픽에 대한 상기 트랜잭션 추적 회로소자내에서 구현될지도 모르는 것들과 같은 특정 교착상태 회피방식은 OWO작용이 실시되는 것을 보장하는데 사용될 수 있다는 것이 알려져 있지만, 특히 교착상태 회피 방식이 교착상태 회피 관리를 위해 더 이상 필요하지 않는 경우에 기록 트랜잭션들의 처리에 대한 상당한 대기시간 문제를 일으킬 수 있다.
특히, OWO작용을 실시하는데 상술한 교착상태 회피 메카니즘을 사용하면, 트랜잭션의 목적지가 트랜잭션 식별자(트랜잭션 ID)가 같은 이전의 트랜잭션과 다를 때 순방향 대기시간 페널티를 일 트랜잭션( 및 후속하는 트랜잭션들)에게 부과한다. 특히, 상기 새로운 목적지에 대한 트랜잭션은, 트랜잭션 ID가 같은 선행 기록 전부가 하류측까지 완료될 때까지 발행될 수 없다.
기록 데이터를 재정렬할 상당한 능력을 필요로 하지 않고 기록 어드레스들을 재정렬할 수 없기 때문에, 일 트랜잭션의 발행에 관한 어떠한 제한도, (단, 판독 트랜잭션과 마찬가지로 트랜잭션 ID가 같은 트랜잭션들이 아닌) 이후의 모든 트랜잭션의 발행에 제한을 부과하므로, 상기 기록 트랜잭션에 대한 상당한 대기시간 문제를 일으킬 수 있다.
일 실시예에 따라, 다른 메카니즘은 상기 인터커넥트를 통과하는 트랜잭션들의 적어도 일부의 OWO 작용을 처리하는데 사용됨으로써, 그 목적을 위해 교착상태 회피 방식의 이용에 대한 의존성을 감소시키고, 상기 인터커넥트내의 기록 트랜잭션 대기시간을 감소시킨다.
본 발명자들은, 캐시 일관성 제어 메카니즘을 이용하는 시스템에 있어서, 상기 캐시 일관성 제어 메카니즘의 장애 메카니즘이, OWO작용을 보증하는데 사용될 수 있다는 것을 실현하였다. 특히, 코히어런트 위치 확인에 관해서 행해진 판독동작은 응답을 되돌릴 수 없고(이에 따라 그 위치 확인은 감시할 수 있고) 그 코히어런트 위치 확인으로 중첩 어드레스에 대한 코히어런트 기록 트랜잭션이 발행되어 있고, 상기 관련 마스터 기기가 그 코히어런트 기록 트랜잭션에 대한 기록 응답을 긍정 응답하지 않는다는 사실이 있다. 상기 마스터 기기로부터의 상기 긍정 응답은, 기록 트랜잭션의 기록 응답이 상기 인터커넥트로부터 상기 마스터 기기에 발행될 때까지 일어나지 않고 나서, 트랜잭션 ID가 같은 선행 트랜잭션 전부의 기록 응답이 마스터 기기에 되돌려졌을 때까지 일어나지 않을 것이다. 이에 따라, 발명자들이 실현한 것은, 코히어런트 기록 트랜잭션의 감시가, 상기 교착상태 회피 메카니즘을 사용하여 그 코히어런트 기록 트랜잭션의 어드레스 전달의 발행을 제한할 필요 없이 (코히어런트인지 아닌지) 트랜잭션 식별자가 같은 선행 기록 트랜잭션 전부에 대한 감시를 본질적으로 필요로 한다는 것이다. 그 대신에, 코히어런트 트랜잭션에 대한 상기 장애 검사 메카니즘의 구현은, 본질적으로, 코히어런트 기록 트랜잭션들에 대해 OWO 작용을 감시하는 것을 보장할 것이다.
따라서, 일 실시예에서, 상기 트랜잭션 추적 회로소자(65)는, 비 코히어런트 기록 트랜잭션에 대해 OWO작용을 감시하는 것을 보장하기 위해서 비 코히어런트 기록 트랜잭션에 대한 교착상태 회피 스타일 메카니즘을 구현해야만 한다. 이에 따라, 상기 교착상태 회피 메카니즘에 의해 상기 비 코히어런트 기록 트랜잭션만을 일시 정지해야 하므로, 상기 인터커넥트 내에서의 기록 트랜잭션들을 처리하는 전체 대기시간을 상당히 감소시킬 수 있다. 또한, 이렇게 비 코히어런트 트랜잭션 전부가 일시 정지해야 않고, 대신에, 교착상태 회피 메카니즘을 사용하여 일시 정지해야 하는 비 코히어런트 트랜잭션들만은, 트랜잭션 식별자가 같은 가장 최근의 선행 비 코히어런트 기록 트랜잭션과는 다른 목적지에 발행되는 것들이라는 것을 알았다.
이하, 일 실시예에 따라 OWO 작용을 실시하는 방식을 도 2를 참조하여 한층 더 설명한다.
도 2에 도시된 것처럼, 일 실시예에서, 상기 기록 어드레스/판독 어드레스 라우팅 회로소자(35)는, 트랜잭션 요구 입장(ingress) 아비터(100), 트랜잭션 리오더 버퍼(105) 및 트랜잭션 요구 퇴장 아비터(115)를 구비한다. 상기 마스터 기기들로부터 발행된 판독 및 기록 트랜잭션들의 어드레스 전달은, 그 어드레스 전달들을 상기 트랜잭션 리오더 버퍼(105)에 언제 경로 지정할지를 결정하기 위해서 중재방식을 이용하는 상기 트랜잭션 요구 입장 아비터(100)에 의해 수신된다. 상술한 것처럼, 임의의 코히어런트 트랜잭션에 대해서, 상기 장애 관리 회로소자(42)는, 그들 코히어런트 트랜잭션에 대한 장애 검사 동작을 행하고, 그 트랜잭션에 대한 모든 장애를 클리어하면 상기 트랜잭션 리오더 버퍼에 의해 트랜잭션의 어드레스 전달을 전파되게 할 뿐이다.
상기 퍼 마스터 트랜잭션 추적 회로소자(65)는, 상기 연관 마스터 기기로부터 완료되지 않은 트랜잭션 전부에 대한 상태 정보를 유지하는 역할을 하고, 그 유지된 상태 정보에 의거하여, 상기 인터커넥트를 통해 어드레스 및 데이터 정보의 전달을 제어하기 위해 상기 인터커넥트내의 소자들이 이용하는 각종 플래그들을 세트하고 클리어한다. 도 2에 관하여, 상기 트랜잭션 리오더 버퍼(105)는, 그 버퍼에서 트랜잭션들이 코히어런트인 플래그들의 상태로부터 코히어런트 트랜잭션들 중 어느 트랜잭션이 장애 검사될 수 있는 포인트에 도달하였는지, 그 트랜잭션들 중 어느 트랜잭션이 장애 검사되었는지, 및 그 장애 검사가 통과되었는지를 판정한다. 상기 장애 검사가 특정한 코히어런트 트랜잭션에 대해 통과되었어야만, 그것이 트랜잭션 리오더 버퍼로부터 발행될 수 있을 것이다.
또한, 트랜잭션 리오더 버퍼(105)는, OWO 게이팅 기능(110)을 구현하고, 특히 OWO작용을 실시하는 것을 보장하기 위해서 기록 어드레스 전달의 전진 전파를 제어하는 게이팅 동작을 행한다. 앞서 설명한 것처럼, 코히어런트 기록 트랜잭션에 대해서, 이것은, 코히어런트 기록 트랜잭션의 장애 검사 처리가 통과할 때까지는 사실이라고 보증될 수 있기 때문에, 상기 OWO 게이팅 동작은 그 코히어런트 기록 트랜잭션들에 대한 상기 장애 관리 회로소자(42)의 제어하에 직접 행해질 수 있다.
상기 장애 관리 회로소자(42)가 비 코히어런트 기록 트랜잭션에 일반적으로 사용되지 않지만, 코히어런트 트랜잭션과 관련하여 사용하기 위해 보유된 일관성 제어 회로소자의 일부로서 구현되므로, 일 실시예에서는, 비 코히어런트 트랜잭션들에 대한 장애 검사도 행하도록 상기 장애 검사 동작을 연장하는 것이 가능할 것이다. 이것은, 상기 장애 관리 회로소자의 동작에 의존하여 상기 필요한 OWO 게이팅 기능성 모두가 직접 달성될 수 있는 것을 보장할 것이다. 그렇지만, 다른 실시예에서, 비 코히어런트 트랜잭션들은 상기 장애 관리 회로소자에 의해 감시받지 않고, 그 대신에, 상기 퍼 마스터 트랜잭션 추적 회로소자(65)는 비 코히어런트 기록 트랜잭션들에 대한 OWO작용을 보장하도록 필요한 메카니즘을 실행한다. 특히, 상기 퍼 마스터 트랜잭션 추적 회로소자(65)는, 상기 리오더 버퍼의 상기 OWO게이팅 기능(110)을 통해 상기 트랜잭션 요구 퇴장 아비터(115)에 비 코히어런트 기록 트랜잭션의 어드레스를 전파하는 것이 안전한 것을 상기 트랜잭션 리오더 버퍼에 나타내기 위해서 진행중 비 코히어런트 기록 트랜잭션에 대한 상기 트랜잭션 리오더 버퍼(105)에 발행 허가 신호를 발행할 수 있을 때를 결정하기 위해서 비 코히어런트 기록 트랜잭션들을 추적하는 회로소자(130)를 구비한다.
특히, 일 실시예에서, 상기 추적 회로소자(130)는, 일단 트랜잭션 식별자가 같은 모든 선행 기록 트랜잭션에 관한 기록 응답신호들이 감시되어 있으면, 비 코히어런트 기록 트랜잭션에 대한 상기 트랜잭션 리오더 버퍼(105)에, OWO 허가 신호를 발행하기만 할 것이다. 일 실시예에서, 각 슬레이브 기기는, 그 슬레이브 기기가 처리하는 기록 트랜잭션들에 관해 OWO작용을 구현하도록 제한될 것이다. 이러한 경우에, 상기 트랜잭션 추적 회로소자(130)는, OWO허가신호들을 감시하고 발행해야 하는 비 코히어런트 기록 트랜잭션들의 수를 추가로 제한할 수 있다. 특히, 발행되는 비 코히어런트 기록 트랜잭션들의 OWO 허가 신호들을, 트랜잭션 식별자가 같은 가장 최근의 선행 비 코히어런트 기록 트랜잭션에 관한 상기 슬레이브 기기와는 다른 슬레이브 기기에 발행하는 것이 필요할 뿐이다.
일 실시예에서는, 상기 OWO 추적 회로소자(130)에 의해 발행시켜야 하는 비 코히어런트 기록 트랜잭션들의 수를 한층 더 감소시킬 수 있다. 특히, 특정한 비 코히어런트 기록 트랜잭션을 고려할 때 아직 감시되지 않은 기록 응답들을 갖는 트랜잭션 식별자가 같은 선행 기록 트랜잭션들 모두가 코히어런트 기록 트랜잭션들이면, 상기 리오더 버퍼(105)로부터 그 비 코히어런트 기록 트랜잭션의 어드레스 전달의 전진 전파를 OWO허가신호를 사용하여 제어할 필요가 없다. 이것은, 비 코히어런트 기록이 발행될 때까지 감시될 수 있을 가능성이 없고, 그것이 발행되는 경우 선행 코히어런트 기록 트랜잭션들 모두가 이미 그들의 장애 검사과정을 정하였기 때문에 감시되는 것이 보증될 수 있으면, 그 비 코히어런트 기록을 위한 OWO 작용은, 트랜잭션 ID가 같은 선행 코히어런트 기록 전부가 그 포인트에서 감시 가능하다는 것을 보증하면 본질적으로 보증될 수 있다.
일 실시예에서, OWO작용 실시의 발행과는 별개로, 교착상태 회피 회로소자는, 그래도 상기 인터커넥트내에서, 기록 트랜잭션의 어드레스 전달과 그 기록 트랜잭션의 연관된 기록 데이터가 상기 인터커넥트를 통해 처리되는 방식을 관리하는 것이 필요하다. 특히, 상기 트랜잭션 요구 퇴장 아비터(115)는, 상기 기록 데이터 회로소자(45)로부터 수신된 하나 이상의 제어신호들에 따라 어드레스 트랜잭션의 어드레스 전달의 출력을 제어하는 일부의 교착상태 게이팅 기능(120)을 포함한다. 특히, 상기 교착상태 회피 회로소자는, 기록 트랜잭션의 기록 어드레스가, 그 연관된 기록 데이터를 타겟 슬레이브 기기에 경로 지정될 수 있다는 것을 보증할 수 있을 때까지 상기 인터커넥트를 통해 경로 지정될 수 없는 것을 보장해야 한다. 이것은, 잠재적으로 재수렴성 경로 하류에 의해 생긴 순환 의존관계를 방지하는데 필요하다.
일 실시예에서는, 이전에 가능했던 것보다 상당히 일찍 상기 필요한 제어신호들을 발행할 수 있음으로써, 상기 필요한 교착상태 회피 검사를 계속 행하면서 기록 트랜잭션들의 처리에서의 대기시간을 감소시키는, 메카니즘을 제공한다. 특히, 블록(45)내의 기록 데이터 라우팅 회로소자를 통한 기록 데이터의 경로 지정은, 루트 추적기(135)가 제공한 소스 루트 정보와 상기 트랜잭션 요구 퇴장 아비터로부터 보내진 목적지 루트 정보에 근거하여 행해진다. 상기 목적지 루트 정보가 제공되면, 블록(45)내의 회로소자는, 도 1에 도시된 기록 데이터 버퍼들(50) 등의 자원 다운스트림을 버퍼링하는 가용성을 추적할 수 있고, 전송될 기록 데이터의 사이즈를 고려하는 것은, 그 기록 데이터의 최종 유닛이, 지연되지 않는 기록 데이터 라우팅 스위치를 통해 지나가는 것을 보증될 수 있을 때를 결정할 수 있다. 이 시점에서, 그 현재의 기록 트랜잭션의 기록 데이터의 처리는 다른 슬레이브 기기로 향한 이후의 기록 트랜잭션의 기록 데이터의 기록 데이터 라우팅 회로소자를 통한 전파를 지연시키지 않는 것을 보증할 수 있다. 따라서, 제어신호(Early WLAST)는, 다음 기록 트랜잭션의 어드레스 전달이 출력되었을 때를 결정하기 위해서 상기 트랜잭션 요구 퇴장 아비터(115)내의 교착상태 게이팅 기능(120)에 의해 사용될 수 있는 그러한 취지로 상기 기록 데이터 회로소자로부터 발행될 수 있다.
OWO 작용을 실시하는 설명으로 되돌아가면, 도 3은 상기 퍼 마스터 트랜잭션 추적기(65)내에 설치된 구성요소를 보다 상세히 나타내는 블록도다. 특히, 상태 추적 회로소자(140)는, 상기 인터커넥트내의 그 트랜잭션 각각의 현재 상태에 대해 계속 파악하고 있도록, 비완료된 트랜잭션 전부를 위해 제공된다. 그것은, 그 상태를 갱신하는 것을 가능하게 하기 위해서 상기 인터커넥트내의 트랜잭션의 처리의 과정 동안에 여러 가지의 입력들을 수신하고, 그 현재 상태에 의거하여 일 세트의 트랜잭션 플래그들(145)을 유지한다. 이들 플래그들은, 그들 구성요소가 트랜잭션 어드레스와 트랜잭션 데이터의 전파에 관해 취하는 결정을 제어하기 위해서 상기 인터커넥트내의 여러 가지의 구성요소에서 사용한다. 예를 들면, 상기 트랜잭션 리오더 버퍼(105)는, 트랜잭션 플래그 정보(145)를 참조하여, 그 버퍼내의 현재의 진행중 트랜잭션의 경우, 장애 검사를 통과할 때까지 그 트랜잭션이 발행을 자제할 필요가 있는지, 또는 그것이 OWO발행 허가신호가 비 코히어런트 기록 트랜잭션 OWO 추적 회로소자(130)로부터 요구되는 트랜잭션인지를 판정한다. 상기 비 코히어런트 기록 트랜잭션 OWO 추적 회로소자(130)는, (도 3에 점선 박스(132)로 나타낸) OWO허가를 기다리고 있는 비 코히어런트 기록 트랜잭션들을 감시하도록 구성된다. 트랜잭션들의 상세는, 상기 비 코히어런트 기록 트랜잭션 OWO 추적 회로소자(130)내에 국소적으로 유지될 수 있거나, 상기 상태 추적 정보(140)를 참조하여 대충 그때그때 봐가며 결정될 수 있다.
또한, 상기 비 코히어런트 기록 트랜잭션 OWO 추적 회로소자(130)는, 비완료된 트랜잭션 모두의 상태에 대해 계속 파악하고 있을 수 있고, 특히, 특정한 비 코히어런트 기록 트랜잭션에 관해서 상기 OWO발행 허가신호가 발행되지 않게 하고 있는 트랜잭션들의 상태를 추적할 수 있다. 따라서, 예를 들면, OWO허가신호가 발행될 필요가 있는 특정 비 코히어런트 기록 트랜잭션의 경우, 그것은, 가장 최근의 선행 동일한 트랜잭션 ID 비 코히어런트 기록 트랜잭션이 다른 슬레이브 기기에 보내진 경우를 검출할 수 있고, 감시하고 있는 중인 비 코히어런트 트랜잭션을 위한 상기 OWO허가신호를 발행하기 전에 상기 가장 최근의 선행 기록 트랜잭션에 대한 기록 응답신호의 접수를 기다릴 수 있다. 일 실시예에서, 상기 비 코히어런트 기록 트랜잭션 OWO 추적 회로소자(130)는, 이 목적을 위해 기록 응답 리오더 버퍼(70)로부터 출력된 기록 응답을 감시하도록 구성된다.
도 4는 트랜잭션 리오더 버퍼(105) 보유된 각 기록 트랜잭션의 동작을 나타내는 흐름도다. 단계 200에서는, 상기 트랜잭션이 코히어런트인지를 판정하고, 코히어런트일 경우, 단계 205에서는 관련 트랜잭션 플래그(145)가 그 트랜잭션을 장애 검사할 수 있는 것을 나타내는지를 판정한다. 일 실시예에서, 상기 진행중 트랜잭션에 대한 장애 검사를 행하는 순서가 중요하고, 특히 이러한 장애 검사는 특정한 마스터 기기에서 발행한 트랜잭션의 순서로 행해질 필요가 있다.
상기 플래그는 고려중인 트랜잭션이 장애 검사될 수 있는 것을 나타내는 경우, 단계 210에서는, 관련 상태 플래그가, 그 트랜잭션을 위한 상기 장애 검사 처리를 거친 것을 나타내는지를 판정한다. 그렇지 않은 경우, 그 처리는 상기 플래그가 상기 장애 검사를 거친 것을 나타낼 때까지 그 트랜잭션에 관해서는 단계 210에서 일시 정지한다. 그 시점에서, 박스 215에서 나타낸 것처럼, OWO작용은, 상기 장애 검사 처리를 거친 상기 트랜잭션에 의해 보장되기 때문에, 그 처리는 단계 230으로 진행되어, 같은 소스로부터 선행 기록 트랜잭션의 어드레스 전달이 발행될 때 그 트랜잭션의 어드레스 전달이 발행될 수 있다. 일 실시예에서는, 트랜잭션이, 동일한 마스터 기기가 발행하는 경우 같은 소스를 갖는다고 생각한다. 그렇지만, 다른 실시예에서, 기록 데이터 리오더 버퍼들은, 트랜잭션 식별자가 같을 경우 트랜잭션이 같은 소스를 갖는다고만 생각되도록 이 조건을 완화시키도록 제공될 수 있다.
단계 200에서 상기 고려중인 트랜잭션이 코히어런트가 아니라고 판정되는 경우, 단계 220에서는, 트랜잭션 플래그들(145)은, 상기 관련 플래그가 그 비 코히어런트 트랜잭션에 대해 OWO허가를 필요로 하는 것을 나타내는지를 판정하기 위해서 참조된다. 상기 관련 플래그가 그 비 코히어런트 트랜잭션에 대해 OWO허가를 필요로 하는 것을 나타내지 않을 경우, 그 처리는 단계 230으로 직접 진행될 수 있지만, 허가가 필요한 경우, 단계 225에서는 상기 트랜잭션 추적 회로소자(130)로부터 OWO허가신호를 수신하였는지를 판정한다. 수신하지 않았을 경우, 그 처리는 상기 OWO신호가 수신될 때까지 그 트랜잭션에 대해 일시 정지하고, 그 수신될 때에 상기 처리가 단계 230으로 진행된다.
일 실시예에서, 상기 발행된 기록 트랜잭션들도, 기록 해싱 트랜잭션들을 포함하여도 되고, 그 기록 트랜잭션에서 특정한 여러 가지의 기록 데이터 유닛들/블록들은, 다수의 슬레이브 기기를 거쳐 기록된다. 해싱 트랜잭션의 특별한 예는, 스트라이핑 트랜잭션이고, 여기서 상기 기록 데이터 유닛들은 다수의 슬레이브 기기를 거쳐 스트라이프 방식으로 기록된다. 앞서 언급된 것처럼, 비 코히어런트 기록 트랜잭션들의 일 실시예에서, OWO허가 신호들은, 트랜잭션 식별자가 같은 선행 비 코히어런트 기록 트랜잭션이 다른 슬레이브 기기를 위한 것인 경우 특정한 비 코히어런트 기록 트랜잭션에 대한 트랜잭션 리오더 버퍼에 발행되어야만 한다. 일 실시예에서, 도 5에 도시된 것처럼, 상기 비 코히어런트 기록 트랜잭션 OWO 추적 회로소자(130)는, 트랜잭션 식별자가 같은 선행 기록 트랜잭션이 기록 해싱 트랜잭션일 경우에, 그 기록 해싱 트랜잭션 내의 데이터의 최종 유닛에서 목표로 한 상기 슬레이브 기기에 관계없이 다른 슬레이브 기기에 대한 것으로서 상기 기록 트랜잭션을 취급하도록 구성된다.
특히, 도 5에 도시된 것처럼, 트랜잭션A는 슬레이브 기기 1과 2 사이에 스트라이프 방식으로 기록되는 4개의 데이터 유닛 1, 2, 3, 4로 이루어진다. 제1 및 제3 데이터 유닛은 슬레이브 기기 1에 기록되고, 제2 및 제4 데이터 유닛은 슬레이브 기기 2에 기록된다. 따라서, 데이터의 최종 유닛은, 슬레이브 기기 2에 보내진다. 다음의 비 코히어런트 기록 트랜잭션(트랜잭션B)이 그것의 데이터 유닛 전부를 슬레이브 기기 2에 기록하고 있는 중일 경우, 상기 비 코히어런트 기록 트랜잭션 OWO 추적 회로소자(130)는, 트랜잭션 A를, 트랜잭션B와 슬레이브 기기가 다른 것으로서 취급하고, 이에 따라 트랜잭션B는 OWO허가신호가 그 트랜잭션B를 위해 발행될 때까지 제어될 필요가 있는 것을 나타내는 플래그를 설정한다. 이에 따라, 이러한 메카니즘을 이용할 때, 다수의 목적지에 보내진 분할 버스트 트랜잭션은, 초기의 트랜잭션의 최종 프래그먼트와 나중의 트랜잭션의 최초 프래그먼트의 상대 목적지에 상관없이, 그것의 바로 뒤의 트랜잭션과 목적지가 다른 것으로서 취급된다.
본 출원에서는, 일 장치의 요소가 상기 기재된 동작을 실시할 수 있는 구성을 갖는 것을 의미하는데 "...하도록 구성된"의 단어들을 사용한다. 본 문맥에서, "구성"은, 하드웨어나 소프트웨어의 상호연결의 구조나 방식을 의미한다. 예를 들면, 상기 장치는 상기 기재된 동작을 제공하는 전용 하드웨어를 갖거나, 프로세서나 그 밖의 처리 디바이스는 그 기능을 행하도록 프로그래밍되어도 된다. "하도록 구성된"은, 그 장치 요소가 상기 기재된 동작을 제공하기 위해서 임의의 방식으로 변경되어야 한다는 것을 의미하지 않는다.
본 명세서에서는 본 발명의 실시예들을 첨부도면을 참조하여 상세히 설명하였지만, 본 발명은 구체적인 실시예들에 한정되지 않고, 첨부된 청구항에서 기재된 것과 같은 본 발명의 범위 및 사상으로부터 벗어나지 않고 당업자가 변경, 부가 및 변형을 여러 가지로 실시할 수 있다. 예를 들면, 본 발명의 범위로부터 벗어나지 않고 종속항의 특징들과 독립항의 특징들을 여러 가지로 조합할 수 있다.

Claims (16)

  1. 복수의 마스터 기기와 복수의 슬레이브 기기를 연결하는 인터커넥트로서,
    중첩 어드레스에 대한 트랜잭션들을 직렬화하는 장애 관리 회로소자; 및
    상기 복수의 마스터 기기 중 적어도 하나에 대한 인터페이스에서 순서화된 기록 감시(OWO) 작용을 보장하는 게이팅 회로소자를 구비하고, 상기 게이팅 회로소자는 기록 트랜잭션들의 기록 어드레스 전달을 수신하고, 상기 OWO작용을 보장하기 위해 상기 슬레이브 기기에 상기 기록 어드레스 전달의 전진 전파를 제어하는 게이팅 동작을 행하고;
    상기 게이팅 회로소자는 상기 장애 관리 회로소자의 제어하에 상기 게이팅 동작을 행하고,
    상기 복수의 마스터 기기 중 적어도 하나가 캐시 구조와 연관되어 있고,
    상기 인터커넥트는, 상기 인터커넥트에 의해 상기 복수의 마스터 기기로부터 수신된 코히어런트 트랜잭션의 캐시 일관성 제어 동작을 행하는 일관성 제어 회로소자를 더 구비하고;
    상기 장애 관리 회로소자는 상기 일관성 제어 회로소자 내에 제공되고 중첩 어드레스에 대한 코히어런트 트랜잭션을 직렬화하기 위해 이용되고,
    상기 게이팅 회로소자는, 코히어런트 기록 트랜잭션을 위해, 상기 장애 관리 회로소자의 제어하에 상기 게이팅 동작을 행하도록 구성되는, 인터커넥트.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 인터커넥트로부터 상기 슬레이브 기기에 발행된 기록 트랜잭션들에 응답하여 상기 슬레이브 기기로부터 수신된 기록 응답 신호들을 추적하는 트랜잭션 추적 회로소자를 더 구비하고,
    비 코히어런트 기록 트랜잭션을 위해, 상기 트랜잭션 추적 회로소자는, 상기 비 코히어런트 기록 트랜잭션을 위한 상기 게이팅 동작의 성능을 제어하기 위해 OWO 제어신호를 상기 게이팅 회로소자에 발행하도록 구성되는, 인터커넥트.
  4. 제 3 항에 있어서,
    각 트랜잭션은 트랜잭션에 관한 트랜잭션 식별자를 갖고,
    상기 트랜잭션 추적 회로소자는, 트랜잭션 식별자가 같은 선행 기록 트랜잭션 전부에 관한 기록 응답신호들이 감시될 때까지 비 코히어런트 기록 트랜잭션의 어드레스 전달이 상기 게이팅 회로소자를 지나 전파되지 않는 것을 보장하도록, 상기 기록 응답신호들에 의존하여 상기 OWO 제어신호를 상기 게이팅 회로소자에 발행하는 것을 제어하도록 구성되는, 인터커넥트.
  5. 제 4 항에 있어서,
    각 슬레이브 기기는, 그 슬레이브 기기가 처리하는 기록 트랜잭션에 관하여 OWO작용을 구현하도록 제한되고,
    상기 트랜잭션 추적 회로소자는, 트랜잭션 식별자가 같은 가장 최근의 선행 비 코히어런트 기록 트랜잭션의 슬레이브 기기와는 다른 슬레이브 기기에 발행되는 비 코히어런트 기록 트랜잭션의 상기 게이팅 회로소자를 지나 전파를 제어하기 위해서만 상기 OWO 제어신호를 발행하도록 구성되는, 인터커넥트.
  6. 제 5 항에 있어서,
    상기 비 코히어런트 기록 트랜잭션은, 다수의 슬레이브 기기를 거쳐 기록되는 일련의 기록 데이터 유닛들을 각각 필요로 하는 비 코히어런트 기록 해싱 트랜잭션들을 포함하고,
    상기 트랜잭션 추적 회로소자는, 현재 비 코히어런트 기록 트랜잭션을 고려할 때, 트랜잭션 식별자가 같은 가장 최근의 선행 비 코히어런트 기록 트랜잭션이 비 코히어런트 기록 해싱 트랜잭션이면, 상기 현재의 비 코히어런트 기록 트랜잭션을, 상기 가장 최근의 선행 비 코히어런트 기록 트랜잭션의 슬레이브 기기와는 다른 슬레이브 기기에 발행되는 것으로서 취급하도록 구성되는, 인터커넥트.
  7. 제 4 항에 있어서,
    상기 트랜잭션 추적 회로소자는, 교착상태 회피방식을 구현하여서 상기 OWO 제어신호의 발행을 제어하는, 인터커넥트.
  8. 제 7 항에 있어서,
    상기 교착상태 회피방식은, 단일 트랜잭션 방식, 트랜잭션 식별자당 단일 트랜잭션 방식, 또는 트랜잭션 식별자당 단일 루트 방식 중 하나인, 인터커넥트.
  9. 제 4 항에 있어서,
    아직 감시되지 않은 기록 응답들을 갖는 트랜잭션 식별자가 같은 선행 기록 트랜잭션 전부가 코히어런트 기록 트랜잭션이면, 상기 트랜잭션 추적 회로소자는 그 비 코히어런트 기록 트랜잭션의 상기 게이팅 회로소자를 지나 전파를 제어하지 않도록 구성되는, 인터커넥트.
  10. 제 1 항에 있어서,
    상기 인터커넥트가 수신한 기록 응답신호들을, 그 인터커넥트에 의한 상기 기록 응답신호들의 수신 순서와 다른 순서로 상기 복수의 마스터 기기에 되돌리는 것을 가능하게 하는 기록 응답 리오더 버퍼를 더 구비하는, 인터커넥트.
  11. 제 3 항에 있어서,
    각 트랜잭션은 트랜잭션에 관한 트랜잭션 식별자를 갖고,
    상기 트랜잭션 추적 회로소자는, 트랜잭션 식별자가 같은 선행 기록 트랜잭션 전부에 관한 기록 응답신호들이 감시될 때까지 비 코히어런트 기록 트랜잭션의 어드레스 전달이 상기 게이팅 회로소자를 지나 전파되지 않는 것을 보장하도록, 상기 기록 응답신호들에 의존하여 상기 OWO 제어신호를 상기 게이팅 회로소자에 발행하는 것을 제어하도록 구성되고, 상기 트랜잭션 식별자는 다른 복수의 마스터 기기로부터 트랜잭션을 위해 다르게 구성되어 있는, 인터커넥트.
  12. 제 1 항에 있어서,
    상기 인터커넥트를 통해 기록 데이터를 경로 지정하는 기록 데이터 라우팅 회로소자;
    다른 슬레이브 기기에 관해 행해지는 선행 기록 트랜잭션의 기록 데이터가 상기 기록 데이터 라우팅 회로소자내의 기록 트랜잭션의 연관 기록 데이터를 차단할 수 없는 것을 보증할 때까지 상기 인터커넥트내의 게이팅 포인트를 지나 기록 트랜잭션의 상기 기록 어드레스 전달이 전파되지 않는 것을 보장하도록, 상기 슬레이브 기기들에 대한 기록 트랜잭션의 기록 어드레스 전달의 전진 전파를 제어하는 교착상태 회피 회로소자; 및
    상기 게이팅 포인트를 지나 전파된 현재의 기록 트랜잭션의 기록 어드레스 전달이, 상기 현재의 기록 트랜잭션의 상기 연관 기록 데이터의 기록 데이터 사이즈와 상기 연관 기록 데이터용 기록 데이터 루트를 결정하고, 또 상기 기록 데이터 루트와 상기 기록 데이터 사이즈를 고려하여 상기 현재의 기록 트랜잭션의 상기 연관 기록 데이터를 상기 기록 데이터 라우팅 회로소자를 통해 전파하는 것을 보증하는 조건의 존재를 결정하도록 구성된 기록 데이터 추적 회로소자를 더 구비하고,
    상기 기록 데이터 추적 회로소자는, 상기 조건의 검출에 응답하여, 상기 교착상태 회피 회로소자에 해제 신호를 발행하여 다음 기록 트랜잭션의 상기 기록 어드레스 전달이 상기 게이팅 포인트를 넘어서도록 구성되는, 인터커넥트.
  13. 제 12 항에 있어서,
    상기 기록 데이터 라우팅 회로소자와 상기 슬레이브 기기에 전달하기에 앞서 기록 데이터를 버퍼링하는 상기 슬레이브 기기들과의 사이에 위치된 기록 데이터 버퍼 회로소자를 더 구비하고,
    상기 기록 데이터 추적 회로소자는, 상기 현재의 기록 트랜잭션의 나머지 기록 데이터가 상기 기록 데이터 버퍼 회로소자내에 수용되도록 보증되는 포인트를 상기 조건으로서 결정하기 위해서, 상기 기록 데이터 루트용 상기 기록 데이터 버퍼 회로소자내의 가용 공간을 감시하도록 구성되는, 인터커넥트.
  14. 제 13 항에 있어서,
    상기 기록 데이터 버퍼 회로소자는, 슬레이브 기기마다 별개의 기록 버퍼를 구비하는, 인터커넥트.
  15. 복수의 마스터 기기와 복수의 슬레이브 기기를 연결하는 인터커넥트의 작동방법으로서,
    장애 관리 회로소자를 이용하여 중첩 어드레스에 대한 트랜잭션들을 직렬화하는 단계;
    게이팅 회로소자를 이용하여 기록 트랜잭션들의 기록 어드레스 전달을 수신하는 단계;
    상기 게이팅 회로소자를 이용하여 상기 복수의 마스터 기기 중 적어도 하나에 대한 인터페이스에서 순서화된 기록 감시(OWO) 작용을 보장하기 위해서 상기 슬레이브 기기에 상기 기록 어드레스 전달의 전진 전파를 제어하는 게이팅 동작을 행하는 단계; 및
    상기 게이팅 회로소자를 이용하여 상기 장애 관리 회로소자의 제어하에 상기 게이팅 동작을 행하는 단계를 포함하고,
    상기 복수의 마스터 기기 중 적어도 하나가 캐시 구조와 연관되어 있고,
    상기 작동방법은, 일관성 제어 회로소자를 이용하여 상기 인터커넥트에 의해 상기 복수의 마스터 기기로부터 수신된 코히어런트 트랜잭션의 캐시 일관성 제어 동작을 행하는 단계를 더 포함하고;
    상기 장애 관리 회로소자는 상기 일관성 제어 회로소자 내에 제공되고 중첩 어드레스에 대한 코히어런트 트랜잭션을 직렬화하기 위해 이용되고,
    상기 게이팅 회로소자는 코히어런트 기록 트랜잭션을 위해, 상기 장애 관리 회로소자의 제어하에 상기 게이팅 동작을 행하는, 인터커넥트의 작동방법.
  16. 복수의 마스터 기기와 복수의 슬레이브 기기를 연결하는 인터커넥트로서,
    중첩 어드레스에 대한 트랜잭션들을 직렬화하는 장애 관리수단; 및
    상기 복수의 마스터 기기 중 적어도 하나에 대한 인터페이스에서 순서화된 기록 감시(OWO) 작용을 보장하는 게이팅 수단을 구비하고, 상기 게이팅 수단은 기록 트랜잭션들의 기록 어드레스 전달을 수신하고, 상기 OWO작용을 보장하기 위해 상기 슬레이브 기기에 상기 기록 어드레스 전달의 전진 전파를 제어하는 게이팅 동작을 행하고;
    상기 게이팅 수단은 상기 장애 관리수단의 제어하에 상기 게이팅 동작을 행하고,
    상기 복수의 마스터 기기 중 적어도 하나가 캐시 구조와 연관되어 있고,
    상기 인터커넥트는, 상기 인터커넥트에 의해 상기 복수의 마스터 기기로부터 수신된 코히어런트 트랜잭션의 캐시 일관성 제어 동작을 행하는 일관성 제어수단을 더 구비하고;
    상기 장애 관리수단은 상기 일관성 제어수단 내에 제공되고 중첩 어드레스에 대한 코히어런트 트랜잭션을 직렬화하기 위해 이용되고,
    상기 게이팅 수단은, 코히어런트 기록 트랜잭션을 위해, 상기 장애 관리수단의 제어하에 상기 게이팅 동작을 행하도록 구성되는, 인터커넥트.
KR1020150189196A 2015-01-12 2015-12-30 인터커넥트 및 인터커넥트의 작동방법 KR102476933B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1500442.7A GB2533972B (en) 2015-01-12 2015-01-12 An interconnect and method of operation of an interconnect
GB1500442.7 2015-01-12

Publications (2)

Publication Number Publication Date
KR20160086746A KR20160086746A (ko) 2016-07-20
KR102476933B1 true KR102476933B1 (ko) 2022-12-13

Family

ID=52597487

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150189196A KR102476933B1 (ko) 2015-01-12 2015-12-30 인터커넥트 및 인터커넥트의 작동방법

Country Status (5)

Country Link
US (1) US9928195B2 (ko)
KR (1) KR102476933B1 (ko)
CN (1) CN105786744B (ko)
GB (1) GB2533972B (ko)
TW (1) TWI708146B (ko)

Families Citing this family (1)

* 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

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100250802A1 (en) * 2009-03-26 2010-09-30 Arm Limited Data processing apparatus and method for performing hazard detection

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6745272B2 (en) * 2001-04-04 2004-06-01 Advanced Micro Devices, Inc. System and method of increasing bandwidth for issuing ordered transactions into a distributed communication system
JP2006018412A (ja) * 2004-06-30 2006-01-19 Fujitsu Ltd アドレス生成器および演算回路
US7219178B2 (en) * 2004-09-30 2007-05-15 Arm Limited Bus deadlock avoidance
US7457905B2 (en) * 2005-08-29 2008-11-25 Lsi Corporation Method for request transaction ordering in OCP bus to AXI bus bridge design
TWI385529B (zh) * 2008-07-22 2013-02-11 Realtek Semiconductor Corp 匯流排系統以及其操作方法
GB2474446A (en) * 2009-10-13 2011-04-20 Advanced Risc Mach Ltd Barrier requests to maintain transaction order in an interconnect with multiple paths
US8014215B2 (en) * 2009-12-10 2011-09-06 International Business Machines Corporation Cache array power savings through a design structure for valid bit detection
US8656078B2 (en) * 2011-05-09 2014-02-18 Arm Limited Transaction identifier expansion circuitry and method of operation of such circuitry

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100250802A1 (en) * 2009-03-26 2010-09-30 Arm Limited Data processing apparatus and method for performing hazard detection

Also Published As

Publication number Publication date
GB2533972B (en) 2021-08-18
US20160203093A1 (en) 2016-07-14
CN105786744A (zh) 2016-07-20
TW201626236A (zh) 2016-07-16
GB2533972A (en) 2016-07-13
US9928195B2 (en) 2018-03-27
GB201500442D0 (en) 2015-02-25
CN105786744B (zh) 2020-08-25
KR20160086746A (ko) 2016-07-20
TWI708146B (zh) 2020-10-21

Similar Documents

Publication Publication Date Title
US6449699B2 (en) Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems
US6189078B1 (en) System and method for increasing data transfer throughput for cache purge transactions using multiple data response indicators to maintain processor consistency
US9858190B2 (en) Maintaining order with parallel access data streams
US10061728B2 (en) Arbitration and hazard detection for a data processing apparatus
KR20080016421A (ko) 시스템 컨트롤러, 동일 어드레스 리퀘스트 큐잉 방지 방법및 정보 처리 장치
US20150012713A1 (en) Data processing apparatus having first and second protocol domains, and method for the data processing apparatus
JP2000250881A (ja) 不均等メモリ・アクセス・システム内で書き戻しの衝突によって生じるライブロックを避けるための方法およびシステム
US9632955B2 (en) Reorder buffer permitting parallel processing operations with repair on ordering hazard detection within interconnect circuitry
US20110320743A1 (en) Memory ordered store system in a multiprocessor computer system
US9946492B2 (en) Controlling persistent writes to non-volatile memory based on persist buffer data and a persist barrier within a sequence of program instructions
US10489294B2 (en) Hot cache line fairness arbitration in distributed modular SMP system
US9442878B2 (en) Parallel snoop and hazard checking with interconnect circuitry
US9460014B2 (en) Sharing local cache from a failover node
EP3800555B1 (en) An apparatus and method for handling cache maintenance operations
KR102476933B1 (ko) 인터커넥트 및 인터커넥트의 작동방법
US9128788B1 (en) Managing quiesce requests in a multi-processor environment
US10963409B2 (en) Interconnect circuitry and a method of operating such interconnect circuitry
JP2004334863A (ja) 順番のある(in−order)キューをドレインする(drain)システムおよび方法
JP6975338B2 (ja) 順序付けされた帯域幅を改善するプロトコルスキームのキャンセル及びリプレイ
US8677041B2 (en) Balancing loads of a plurality of bus lanes of a snooping-based bus using a receiver, analyzer, and controller
US10380020B2 (en) Achieving high bandwidth on ordered direct memory access write stream into a processor cache
JP2015014962A (ja) 演算装置、演算方法、及びプログラム
US20050283554A1 (en) Computer system and method for queuing interrupt messages in a device coupled to a parallel communication bus
JP6992295B2 (ja) 電子装置
KR101133879B1 (ko) 컴퓨터 시스템, 인터럽트 메시지 큐잉 방법 및 제조물

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