KR101753906B1 - 약하게 오더링된 도메인의 디바이스들에 강하게 오더링된 기록 트랜잭션들을 브리징하는 것, 및 관련된 장치들, 방법들 및 컴퓨터-판독 가능 매체들 - Google Patents
약하게 오더링된 도메인의 디바이스들에 강하게 오더링된 기록 트랜잭션들을 브리징하는 것, 및 관련된 장치들, 방법들 및 컴퓨터-판독 가능 매체들 Download PDFInfo
- Publication number
- KR101753906B1 KR101753906B1 KR1020177006443A KR20177006443A KR101753906B1 KR 101753906 B1 KR101753906 B1 KR 101753906B1 KR 1020177006443 A KR1020177006443 A KR 1020177006443A KR 20177006443 A KR20177006443 A KR 20177006443A KR 101753906 B1 KR101753906 B1 KR 101753906B1
- Authority
- KR
- South Korea
- Prior art keywords
- ordered
- strongly
- transactions
- consumer
- transaction
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4009—Coupling between buses with data restructuring
- G06F13/4013—Coupling between buses with data restructuring with data re-ordering, e.g. Endian conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1621—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by maintaining request order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/405—Coupling between buses using bus bridges where the bridge performs a synchronising function
- G06F13/4059—Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Bus Control (AREA)
- Information Transfer Systems (AREA)
- Small-Scale Networks (AREA)
- Information Transfer Between Computers (AREA)
Abstract
약하게 오더링된 도메인의 디바이스들에 강하게 오더링된 기록 트랜잭션들을 브리징하는 것, 및 관련된 장치들, 방법들 및 컴퓨터-판독 가능 매체들이 개시된다. 일 양상에서, 호스트 브리지 디바이스는 하나 또는 그 초과의 강하게 오더링된 생산자 디바이스로부터 강하게 오더링된 기록 트랜잭션들을 수신하도록 구성된다. 호스트 브리지 디바이스는 약하게 오더링된 도메인 내의 하나 또는 그 초과의 소비자 디바이스들에 대해 강하게 오더링된 기록 트랜잭션들을 발행한다. 호스트 브리지 디바이스는 하나 또는 그 초과의 소비자 디바이스들의 제 1 소비자 디바이스에 의해 수용되지 않는 제 1 기록 트랜잭션을 검출한다. 제 1 기록 트랜잭션에 후속하여 발행되고 각각의 소비자 디바이스에 의해 수용되는 하나 또는 그 초과의 기록 트랜잭션들 각각에 대해, 호스트 브리지 디바이스는 각각의 소비자 디바이스에 취소 메시지를 전송한다. 호스트 브리지 디바이스는 제 1 기록 트랜잭션 및 제 1 기록 트랜잭션에 후속하여 발행된 하나 또는 그 초과의 기록 트랜잭션들을 재생한다.
Description
[0001] 본 출원은 2014년 9월 12일에 출원되고 발명의 명칭이 "BRIDGING STRONGLY ORDERED WRITE TRANSACTIONS TO DEVICES IN WEAKLY ORDERED DOMAINS, AND RELATED APPARATUSES, METHODS, AND COMPUTER-READABLE MEDIA"인 미국 특허 출원 일련번호 제14/484,624호를 우선권으로 주장하며, 이는 그 전체가 인용에 의해 본원에 포함된다.
[0002] 본 개시의 기술은 일반적으로, 프로세서-기반 컴퓨터 시스템들의 버스 상호연결들 상에서 포스팅된 기록 트랜잭션을 파이프라이닝(pipelining)하는 것에 관한 것이다.
[0003] PCI(Peripheral Component Interconnect)-기반 상호연결들을 포함하는 것들과 같은 현대의 프로세서-기반 컴퓨터 시스템들은 종종 일련의 기록 트랜잭션들을 발행 및/또는 수신할 수 있는 하나 또는 그 초과의 주변 디바이스들을 포함한다. 이러한 디바이스들은 일반적으로 "강하게 오더링된(strongly ordered)" 도메인 또는 "약하게 오더링된(weakly ordered)" 도메인에 속하는 것으로서 특성화될 수 있다. 강하게 오더링된 도메인의 디바이스들은 순서 관계(ordering relationship)가 모든 기록 트랜잭션들 간에 유지된다는 것을 규정하는 규격 하에서 동작한다. 순서 관계는, 기록 트랜잭션이 소비자 디바이스에서 완료되는 순서가, 기록 트랜잭션들이 생산자 디바이스에 의해 전송된 순서와 동일하다는 것을 규정한다. 대조적으로, 약하게 오더링된 도메인의 일련의 기록 트랜잭션들은 (두 트랜잭션들 간의 어드레스 오버랩과 같은 특별한 상황이 없는 경우) 어떠한 고유한 순서도 갖지 않는다. 따라서, 약하게 오더링된 도메인에서, 일련의 기록 트랜잭션들이 소비자 디바이스에 도달하는 순서는 기록 트랜잭션이 전송된 순서와 반드시 동일할 필요는 없다.
[0004] 강하게 오더링된 도메인의 생산자 디바이스(즉, "강하게 오더링된 디바이스")가 약하게 오더링된 도메인의 소비자 디바이스(즉, "약하게 오더링된 도메인")에 일련의 기록 트랜잭션들을 전송할 때, 모든 기록 트랜잭션들은, 일련의 기록 트랜잭션들이 소비를 위해 준비가 된 것으로 소비자 디바이스에 통지되기 전에 소비자 디바이스에 의해 인식된다는 것이 중요하다. 그러나 기록 트랜잭션들의 도달 순서가 약하게 오더링된 도메인에서 보장되지 않기 때문에, 기록 트랜잭션들은 그의 원래의 순서대로 소비자 디바이스에 의해 인식될 수 없으며, 이는 일부 상황들에서는 문제가 될 수 있다. 예를 들어, 소비자 디바이스는 일련의 모든 기록 트랜잭션들이 완료되기 전에 기록 트랜잭션들이 소비를 위해 준비가 되었다는 통지를 수신할 수 있다. 이는, 불완전하거나 손상된 데이터로 인해 시스템 불안정성을 초래할 수 있다. 이에 따라, 기록 트랜잭션들이 약하게 오더링된 도메인으로 넘어갈 때 이들에 직렬화된 순서 관계를 제공하는 메커니즘이 필요하다.
[0005] 당분야에 알려진 하나의 접근법은, 한 번에 하나씩 기록 트랜잭션을 발행하고 다음 기록 트랜잭션을 보내기 전에 이전 기록 트랜잭션의 완료를 대기함으로써 이러한 요건을 해결한다. 그러나 이 접근법은, 데이터 전달 시간이 수용 불가능하게 오래되게 할 수 있으며, 이는 시스템 성능에 부정적으로 영향을 줄 수 있다. 다른 알려진 접근법은, 기록 트랜잭션의 재시도를 검출함으로써 기록 트랜잭션의 파이프라이닝을 제공하도록 구성되고, 모든 후속 기록 트랜잭션을 재시도하도록 추가로 구성된 중앙 시스템 아비터를 제공한다. 일부 접근법들에서, 중앙 시스템 아비터 그 자체는 수신 디바이스 대신, 기록 트랜잭션들을 순서대로 재발행하는 것을 담당할 수 있다. 중앙 시스템 아비터가 기록 트랜잭션들 간의 직렬화된 순서 관계를 보장할 수 있지만, 동기식으로 통신할 필요가 있을 수 있는, 다중 분산된 아비터들을 요구하는 더 큰 컴퓨터 시스템들에서 적절히 확장되지 않을 수 있다.
[0006] 상세한 설명에서 개시된 양상들은 약하게 오더링된 도메인들의 디바이스들에 강하게 오더링된 기록 트랜잭션들을 브리징하는 것을 포함한다. 관련된 장치들, 방법들 및 컴퓨터-판독 가능 매체들이 또한 개시된다. 이와 관련하여, 호스트 브리지 디바이스를 포함하는 장치가 제공된다. 호스트 브리지 디바이스는 하나 또는 그 초과의 강하게 오더링된 생산자 디바이스로부터 복수의 강하게 오더링된 기록 트랜잭션들을 수신하도록 구성된다. 호스트 브리지 디바이스는 추가로, 약하게 오더링된 도메인 내의 하나 또는 그 초과의 소비자 디바이스들에 대해 복수의 강하게 오더링된 기록 트랜잭션들을 발행하도록 구성된다. 또한, 호스트 브리지 디바이스는 하나 또는 그 초과의 소비자 디바이스들의 제 1 소비자 디바이스에 의해 수용되지 않은, 복수의 강하게 오더링된 기록 트랜잭션들의 제 1 기록 트랜잭션을 검출하도록 구성된다. 호스트 브리지 디바이스는 또한, 제 1 기록 트랜잭션에 후속하여 발행되고 하나 또는 그 초과의 소비자 디바이스들의 각각의 소비자 디바이스에 의해 수용되는 하나 또는 그 초과의 기록 트랜잭션들 각각에 대해, 각각의 소비자 디바이스에 취소 메시지를 전송하도록 구성된다. 호스트 브리지 디바이스는 추가로, 제 1 기록 트랜잭션 및 제 1 기록 트랜잭션에 후속하여 발행된 하나 또는 그 초과의 기록 트랜잭션들을 재생(replay)하도록 구성된다.
[0007] 다른 양상에서, 호스트 브리지 디바이스를 포함하는 장치가 제공된다. 호스트 브리지 디바이스는 하나 또는 그 초과의 강하게 오더링된 생산자 디바이스로부터 복수의 강하게 오더링된 기록 트랜잭션들을 수신하기 위한 수단을 포함한다. 호스트 브리지 디바이스는 추가로, 약하게 오더링된 도메인 내의 하나 또는 그 초과의 소비자 디바이스들에 대해 복수의 강하게 오더링된 기록 트랜잭션들을 발행하기 위한 수단을 포함한다. 또한, 호스트 브리지 디바이스는 하나 또는 그 초과의 소비자 디바이스들의 제 1 소비자 디바이스에 의해 수용되지 않은, 복수의 강하게 오더링된 기록 트랜잭션들의 제 1 기록 트랜잭션을 검출하기 위한 수단을 포함한다. 호스트 브리지 디바이스는 또한, 제 1 기록 트랜잭션에 후속하여 발행되고 하나 또는 그 초과의 소비자 디바이스들의 각각의 소비자 디바이스에 의해 수용되는 하나 또는 그 초과의 기록 트랜잭션들 각각에 대해, 각각의 소비자 디바이스에 취소 메시지를 전송하기 위한 수단을 포함한다. 호스트 브리지 디바이스는 추가로, 제 1 기록 트랜잭션 및 제 1 기록 트랜잭션에 후속하여 발행된 하나 또는 그 초과의 기록 트랜잭션들을 재생하기 위한 수단을 포함한다.
[0008] 다른 양상에서, 강하게 오더링된 기록 트랜잭션들을 약하게 오더링된 도메인들로 브리징하기 위한 방법이 제공된다. 방법은, 호스트 브리지 디바이스에 의해, 하나 또는 그 초과의 강하게 오더링된 생산자 디바이스로부터 복수의 강하게 오더링된 기록 트랜잭션들을 수신하는 것을 포함한다. 방법은 추가로, 약하게 오더링된 도메인 내의 하나 또는 그 초과의 소비자 디바이스들에 대해 복수의 강하게 오더링된 기록 트랜잭션들을 발행하는 것을 포함한다. 방법은 또한 하나 또는 그 초과의 소비자 디바이스들의 제 1 소비자 디바이스에 의해 수용되지 않은, 복수의 강하게 오더링된 기록 트랜잭션들의 제 1 기록 트랜잭션을 검출하는 것을 포함한다. 방법은 또한, 제 1 기록 트랜잭션에 후속하여 발행되고 하나 또는 그 초과의 소비자 디바이스들의 각각의 소비자 디바이스에 의해 수용되는 하나 또는 그 초과의 기록 트랜잭션들 각각에 대해, 각각의 소비자 디바이스에 취소 메시지를 전송하는 것을 포함한다. 방법은 추가로, 제 1 기록 트랜잭션 및 제 1 기록 트랜잭션에 후속하여 발행된 하나 또는 그 초과의 기록 트랜잭션들을 재생하는 것을 포함한다.
[0009] 다른 양상에서, 프로세서로 하여금 하나 또는 그 초과의 강하게 오더링된 생산자 디바이스들로부터 복수의 강하게 오더링된 기록 트랜잭션들을 수신하게 하는 컴퓨터-실행 가능 명령들이 저장되어 있는 비-일시적 컴퓨터-판독 가능 매체가 제공된다. 컴퓨터-실행 가능 명령들은 추가로, 프로세서로 하여금, 약하게 오더링된 도메인 내의 하나 또는 그 초과의 소비자 디바이스들에 대해 복수의 강하게 오더링된 기록 트랜잭션들을 발행하게 한다. 컴퓨터-실행 가능 명령은 또한, 프로세서로 하여금, 하나 또는 그 초과의 소비자 디바이스들의 제 1 소비자 디바이스에 의해 수용되지 않은, 복수의 강하게 오더링된 기록 트랜잭션들의 제 1 기록 트랜잭션을 검출하게 한다. 컴퓨터-실행 가능 명령은 또한, 프로세서로 하여금, 제 1 기록 트랜잭션에 후속하여 발행되고 하나 또는 그 초과의 소비자 디바이스들의 각각의 소비자 디바이스에 의해 수용되는 하나 또는 그 초과의 기록 트랜잭션들 각각에 대해, 각각의 소비자 디바이스에 취소 메시지를 전송하게 한다. 컴퓨터-실행 가능 명령은 추가로, 프로세서로 하여금, 제 1 기록 트랜잭션 및 제 1 기록 트랜잭션에 후속하여 발행된 하나 또는 그 초과의 기록 트랜잭션들을 재생하게 한다.
[0010] 도 1은 약하게 오더링된 도메인들의 소비자 디바이스들에 강하게 오더링된 기록 트랜잭션들을 브리징하도록 구성된 호스트 브리지 디바이스를 포함하는 예시적인 프로세서-기반 컴퓨터 시스템의 블록도이다.
[0011] 도 2a 내지 도 2c는, 도 1의 호스트 브리지 디바이스가 소비자 디바이스에 대해 강하게 오더링된 기록 트랜잭션들을 발행하고, 수용되지 않는 기록 트랜잭션을 검출하고, 기록 트랜잭션 및 후속 기록 트랜잭션들을 취소 및 재생하는 것을 예시하는 블록도들이다.
[0012] 도 3은 도 1의 호스트 브리지 디바이스의 상태 천이들을 예시하는 예시적인 상태 머신의 도면이다.
[0013] 도 4a 및 도 4b는 약하게 오더링된 도메인들의 소비자 디바이스들에 강하게 오더링된 기록 트랜잭션들을 브리징하기 위한 예시적인 프로세스를 예시하는 흐름도들이다.
[0014] 도 5는 도 1의 호스트 브리지 디바이스를 포함할 수 있는 예시적인 프로세서-기반 시스템의 블록도이다.
[0011] 도 2a 내지 도 2c는, 도 1의 호스트 브리지 디바이스가 소비자 디바이스에 대해 강하게 오더링된 기록 트랜잭션들을 발행하고, 수용되지 않는 기록 트랜잭션을 검출하고, 기록 트랜잭션 및 후속 기록 트랜잭션들을 취소 및 재생하는 것을 예시하는 블록도들이다.
[0012] 도 3은 도 1의 호스트 브리지 디바이스의 상태 천이들을 예시하는 예시적인 상태 머신의 도면이다.
[0013] 도 4a 및 도 4b는 약하게 오더링된 도메인들의 소비자 디바이스들에 강하게 오더링된 기록 트랜잭션들을 브리징하기 위한 예시적인 프로세스를 예시하는 흐름도들이다.
[0014] 도 5는 도 1의 호스트 브리지 디바이스를 포함할 수 있는 예시적인 프로세서-기반 시스템의 블록도이다.
[0015] 이제 도면 그림들을 참조하여, 본 개시의 여러 예시적인 양상들이 설명된다. "예시적인"인 이란 단어는, “예, 인스턴스 또는 예시로서 기능하는” 것을 의미하도록 본원에서 사용된다. 본원에서 "예시적인" 것으로 설명되는 임의의 양상은 반드시 다른 양상들에 비해 선호되거나 유리한 것으로 해석될 필요는 없다.
[0016] 상세한 설명에서 개시된 양상들은 약하게 오더링된 도메인들의 디바이스들에 강하게 오더링된 기록 트랜잭션들을 브리징하는 것을 포함한다. 관련된 디바이스들, 방법들 및 컴퓨터-판독 가능 매체들이 또한 개시된다. 이와 관련하여, 호스트 브리지 디바이스는 하나 또는 그 초과의 강하게 오더링된 생산자 디바이스로부터 복수의 강하게 오더링된 기록 트랜잭션들을 수신하도록 구성된다. 호스트 브리지 디바이스는 추가로, 약하게 오더링된 도메인 내의 하나 또는 그 초과의 소비자 디바이스들에 대해 복수의 강하게 오더링된 기록 트랜잭션들을 발행하도록 구성된다. 호스트 브리지 디바이스는 또한 하나 또는 그 초과의 소비자 디바이스들의 제 1 소비자 디바이스에 의해 수용되지 않은, 복수의 강하게 오더링된 기록 트랜잭션들의 제 1 기록 트랜잭션을 검출하도록 구성된다. 호스트 브리지 디바이스는 또한, 제 1 기록 트랜잭션에 후속하여 발행되고 하나 또는 그 초과의 소비자 디바이스들의 각각의 소비자 디바이스에 의해 수용되는 하나 또는 그 초과의 기록 트랜잭션들 각각에 대해, 각각의 소비자 디바이스에 취소 메시지를 전송하도록 구성된다. 호스트 브리지 디바이스는 추가로, 제 1 기록 트랜잭션 및 제 1 기록 트랜잭션에 후속하여 발행된 하나 또는 그 초과의 기록 트랜잭션들을 재생(replay)하도록 구성된다.
[0017] 이와 관련하여, 도 1은 약하게 오더링된 도메인들의 소비자 디바이스들에 강하게 오더링된 기록 트랜잭션들을 브리징하도록 구성된 호스트 브리지 디바이스(12)를 제공하는 예시적인 프로세서-기반 컴퓨터 시스템(10)을 예시한다. 프로세서-기반 컴퓨터 시스템(10)은 다른 엘리먼트들 중에서도, 알려진 디지털 로직 엘리먼트들, 반도체 회로들, 프로세싱 코어들 및/또는 메모리 구조들 또는 이들의 결합 중 임의의 하나를 포함할 수 있다. 본원에서 설명되는 양상들은 엘리먼트들의 임의의 특정 어레인지먼트로 제한되지 않으며, 개시된 기술들은 반도체 다이들 또는 패키지들 상의 다양한 구조들 및 레이아웃들로 쉽게 확장될 수 있다.
[0018] 본원에서 사용되는 바와 같이, 일부 양상들에서 단일의 "기록 트랜잭션(write transaction)"은 다수의 페이즈들을 포함할 수 있다는 것이 이해될 것이다. 비-제한적인 예로서, 기록 트랜잭션은 호스트 브리지 디바이스(12)가 기록 트랜잭션의 어드레스를 소비자 디바이스에 전송하는 어드레스 페이즈를 포함할 수 있다. 그 후 어드레스 페이즈에 이어, 프로세서에 의한 프로세싱 및/또는 메모리 디바이스에 의한 저장을 위해 호스트 브리지 디바이스(12)에 의해 데이터가 전송되는 데이터 페이즈가 뒤따를 수 있다.
[0019] 도 1의 프로세서-기반 컴퓨터 시스템(10)은 하나 또는 그 초과의 생산자 디바이스들(14(0)-14(X))(여기서 X ≥ 0임)를 포함한다. 하나 또는 그 초과의 생산자 디바이스들(14(0)-14(X)) 각각은, 기록 트랜잭션이 생성된 것과 동일한 순서로 기록 트랜잭션이 목적지에 도달할 것이란 예상으로, 하나 또는 일련의 강하게 오더링된 기록 트랜잭션들(도시되지 않음)을 생성하도록 구성된다. 따라서, 하나 또는 그 초과의 생산자 디바이스들(14(0)-14(X))은 강하게 오더링된 도메인(16)에 속하는 것으로 간주될 수 있다. 일부 양상들에서, 하나 또는 그 초과의 생산자 디바이스들(14(0)-14(X))은 PCI(Peripheral Component Interconnect) 규격을 준수하는 주변 디바이스 또는 상호연결과 같이 강하게 오더링된 주변 디바이스를 포함할 수 있다.
[0020] 프로세서-기반 컴퓨터 시스템(10)은 하나 또는 그 초과의 소비자 디바이스들(18(0)-18(Y))(여기서 Y ≥ 0임)을 또한 포함한다. 하나 또는 그 초과의 소비자 디바이스들(18(0)-18(Y)) 각각은 기록 트랜잭션들이 생성된 순서와 무관할 수 있는 순서로 일련의 기록 트랜잭션들을 수신하도록 구성된다. 따라서, 하나 또는 그 초과의 소비자 디바이스들(18(0)-18(Y))은 약하게 오더링된 도메인(20) 내에 상주하는 것으로 간주될 수 있다. 일부 양상들은, 하나 또는 그 초과의 소비자 디바이스들(18(0)-18(Y))이 각각의 기록 트랜잭션에 대한 데이터를 소비하기 위한 프로세서 및/또는 각각의 기록 트랜잭션에 대한 데이터를 포함하는 메모리 디바이스를 포함할 수 있다는 것을 제공할 수 있다.
[0021] 기록 트랜잭션들은 양방향 화살표들(22 및 24)에 의해 도 1에서 표현된 버스 상호연결을 통해 하나 또는 그 초과의 생산자 디바이스들(14(0)-14(X))로부터 하나 또는 그 초과의 소비자 디바이스들(18(0)-18(Y))로 통신될 수 있다. 강하게 오더링된 도메인(16)의 생산자 디바이스(들)(14) 중 하나가 약하게 오더링된 도메인(20)의 소비자 디바이스(들)(18) 중 하나에 일련의 강하게 오더링된 기록 트랜잭션을 통신할 때, 모든 기록 트랜잭션들은, 일련의 기록 트랜잭션들이 소비를 위한 준비가 되었다고 소비자 디바이스(18)가 통지받기 이전에 수신되어야 한다. 그러나 기록 트랜잭션의 도달 순서가 약하게 오더링된 도메인(20)에서 보장되지 않기 때문에, 소비자 디바이스(18)는 그의 원래 순서대로 기록 트랜잭션을 수신할 수 없으며, 이는 불완전하거나 손상된 데이터로 인해 시스템 불안정성을 야기할 수 있다.
[0022] 따라서, 약하게 오더링된 도메인(20)의 소비자 디바이스(들)(18)로의 강하게 오더링된 기록 트랜잭션들의 브리징을 제공하기 위해, 호스트 브리지 디바이스(12)가 제공된다. 호스트 브리지 디바이스(12)는, 기록 트랜잭션이 소비자 디바이스(18)에 의해 수용되지 않는 조건을 검출하고, 기록 트랜잭션 및 모든 후속 전송된 기록 트랜잭션들을 취소 및 재생하기 위한 메커니즘을 제공한다. 도 1에서 알 수 있는 바와 같이, 호스트 브리지 디바이스(12)의 일부 양상들은 생산자 디바이스(들)(14)로부터 수신되고 소비자 디바이스(들)(18)에 발행되는 기록 트랜잭션들을 저장하기 위한 트랜잭션 버퍼(26)를 포함할 수 있다. 트랜잭션 버퍼(26)는 발행되었지만 소비자 디바이스(들)(18)에 의해 아직 수용되지 않은 기록 트랜잭션들을 보유할 수 있다. 따라서, 호스트 브리지 디바이스(12)는 이에 따라 수용 불가능한 시스템 성능 불이익을 초래함 없이, 기록 트랜잭션들이 약하게 오더링된 도메인(20)의 소비자 디바이스(들)(18)에 올바른 순서로 발행된다는 것을 보장할 수 있다.
[0023] 도 1의 호스트 브리지 디바이스(12)에 의해 제공된 브리징 메커니즘의 동작을 예시하기 위해, 도 2a 내지 2c가 제공된다. 도 2a는 도 1의 호스트 브리지 디바이스(12)가 약하게 오더링된 도메인(20)의 소비자 디바이스(들)(18)에 대해 강하게 오더링된 기록 트랜잭션을 발행하는 것을 도시하는 블록도이다. 도 2b는 수용되지 않은 기록 트랜잭션을 검출하는 호스트 브리지 디바이스(12)를 도시하고, 도 2c는 기록 트랜잭션 및 후속 기록 트랜잭션들을 취소하고 재생하는 호스트 브리지 디바이스(12)를 도시한다. 명확성을 위해, 도 1의 엘리먼트들은 도 2a 내지 도 2c를 설명하는데 참조된다.
[0024] 도 2a에서, 호스트 브리지 디바이스(12)는 양방향 화살표(22)에 의해 표현된 버스 상호연결을 통해 강하게 오더링된 도메인(16)의 생산자 디바이스(들)(14)로부터 강하게 오더링된 기록 트랜잭션들(28(0)-28(4))을 수신한다. 이 예에서, 강하게 오더링된 기록 트랜잭션들(28)은 28(0), 28(1), 28(2), 28(3) 및 28(4)의 순서로 발행되었다고 가정한다. 따라서, 생산자 디바이스(들)(14)가 동작하는 규격은 강하게 오더링된 기록 트랜잭션(28)이 소비자 디바이스(들)(18)에 의해 그 순서로 인식될 것을 규정한다.
[0025] 호스트 브리지 디바이스(12)는 강하게 오더링된 기록 트랜잭션(28)을 트랜잭션 버퍼(26)에 저장한다. 호스트 브리지 디바이스(12)는 그 후 각각의 강하게 오더링된 기록 트랜잭션(28)을 약하게 오더링된 도메인(20)의 적절한 소비자 디바이스(18)에 발행한다. 도 2a에서 알 수 있는 바와 같이, 호스트 브리지 디바이스(12)는 소비자 디바이스(18(0))에 강하게 오더링된 기록 트랜잭션(28(0))을 발행하고 소비자 디바이스(18(Y))에 강하게 오더링된 기록 트랜잭션(28(1))을 발행한다. 호스트 브리지 디바이스(12)는 추가로, 소비자 디바이스(18(1))에 강하게 오더링된 기록 트랜잭션(28(2))을 발행하고, 소비자 디바이스(18(Y))에 강하게 오더링된 기록 트랜잭션(28(3))을 발행하고, 소비자 디바이스(18(0))에 강하게 오더링된 기록 트랜잭션(28(4))을 발행한다.
[0026] (비-제한적인 예로서 통신 경로 길이와 같은) 다양한 팩터들로 인해, 강하게 오더링된 기록 트랜잭션(28)은 강하게 오더링된 기록 트랜잭션(28)이 발행된 순서에 대응하지 않는 순서로 각각의 소비자 디바이스들(18)에 의해 인식될 수 있다. 호스트 브리지 디바이스(12)는 이에 따라, 강하게 오더링된 기록 트랜잭션들(28)을 발행한 결과를 나타내는, 소비자 디바이스들(18(0)-18(Y))로부터의 신호들을 각각 수신하도록 구성된다. 도 2a의 예에서, 수용 응답들(30 및 32)은 각각의 소비자 디바이스(18(0) 및 18(Y))에 의해 각각의 강하게 오더링된 기록 트랜잭션들(28(0) 및 28(1))의 어드레스 페이즈 및/또는 데이터 페이즈의 수용을 나타낸다. 대조적으로, 소비자 디바이스(18(1))에 의해 전송된 재시도 응답(34)은 강하게 오더링된 기록 트랜잭션(28(2))이 소비자 디바이스(18)(1)에 의해 수용되지 않았음을 나타낸다. 후속적인 강하게 오더링된 기록 트랜잭션들(28(3) 및 28(4))이 수용되는 동안 강하게 오더링된 기록 트랜잭션(28(2))이 수용되지 않았기 때문에, 강하게 오더링된 기록 트랜잭션들(28)은 이들이 발행된 순서로 수신되지 않는다는 것이 알려진다.
[0027] 이제도 2b를 참조하면, 강하게 오더링된 기록 트랜잭션(28)의 직렬화를 유지하기 위해, 호스트 브리지 디바이스(12)는 강하게 오더링된 기록 트랜잭션(28(2)) 이후 발행된 강하게 오더링된 기록 트랜잭션들(28(3) 및 28(4))을 "폐지(undo)"해야 한다. 이를 행하기 위해, 호스트 브리지 디바이스(12)는 소비자 디바이스(18)(0)에 "취소 트랜잭션(CXL TXN)(28(4))"에 대한 취소 메시지(36)를 발행한다. 취소 메시지(36)는, 이전에 수용된 강하게 오더링된 기록 트랜잭션(28(4))이 소비자 디바이스(18(0))에 의해 드롭되거나 무시되어야 한다는 것을 소비자 디바이스(18(0))에 지시한다. 일부 양상들에서, 취소 메시지(36)는 제로-길이 데이터를 기대하라는 소비자 디바이스(18(0))로의 요청을 포함할 수 있다. 일부 양상들은, 취소 메시지(36)는 강하게 오더링된 기록 트랜잭션(28(4))의 데이터 페이즈 동안 기록 트랜잭션 데이터가 제공된 디스에이블된 기록 스트로브들(도시되지 않음)을 포함할 수 있다는 것을 제공할 수 있다. 소비자 디바이스(18(0))는 기록 스트로브들이 디스에이블됨을 검출하면, 강하게 오더링된 기록 트랜잭션(28(4))을 폐기하거나 무시한다.
[0028] 유사한 방식으로, 호스트 브리지 디바이스(12)는 소비자 디바이스(18)(Y)에 "취소 트랜잭션(CXL TXN)(28(3))"에 대한 취소 메시지(38)를 발행한다. 취소 메시지(38)는, 이전에 수용된 강하게 오더링된 기록 트랜잭션(28(3))이 소비자 디바이스(18)(Y))에 의해 드롭되거나 무시되어야한다는 것을 소비자 디바이스(18(Y))에 지시한다.
[0029] 도 2b를 계속 참조하여, 호스트 브리지 디바이스(12)는, 도 2a의 강하게 오더링된 기록 트랜잭션들(28(0) 및 28(1))이 그의 각각의 소비자 디바이스들(18(0) 및 18(Y))에 의해 모두 수용되었다고 결정한다. 호스트 브리지 디바이스(12)는 또한, 도 2a의 강하게 오더링된 기록 트랜잭션들(28(0) 및 28(1)) 중 어느 것도 종속되지 않는다고 결정한다(예를 들어, 이전에 발행되었으나 수용되지 않은 기록 트랜잭션에 종속하지 않음). 따라서, 도 2b에서, 호스트 브리지 디바이스(12)는 트랜잭션 버퍼(26)에 이전에 저장된 강하게 오더링된 기록 트랜잭션 들(28(0) 및 28(1)))을 제거한다. 일부 양상들에서, 이는 추가적인 강하게 오더링된 기록 트랜잭션들(28)이 생산자 디바이스(들)(14)로부터 수신되도록 허용하기 위해 트랜잭션 버퍼(26)의 공간을 비울(free up) 수 있다.
[0030] 이제 도 2c를 참조하면, 호스트 브리지 디바이스(12)는 강하게 오더링된 기록 트랜잭션(28(2)) 및 후속의 강하게 오더링된 기록 트랜잭션들(28(3) 및 28(4))을 재생한다. 호스트 브리지 디바이스(12)의 일부 양상들은, 호스트 브리지 디바이스(12)가 소비자 디바이스(18(1))에 대해 강하게 오더링된 기록 트랜잭션(28(2))을 재발행하고, 소비자 디바이스 18(Y)에 대해 강하게 오더링된 기록 트랜잭션(28(3))을 재발행하고, 소비자 디바이스(18(0))에 대해 강하게 오더링된 기록 트랜잭션(28(4))을 재발행함으로써 강하게 오더링된 기록 트랜잭션들(28(2)-28(4))을 재생한다는 것을 제공할 수 있다. 이러한 방식으로, 약하게 오더링된 도메인(20)에서 강하게 오더링된 기록 트랜잭션(28)의 직렬화가 유지될 수 있다.
[0031] 일부 양상들에서, 도 1의 호스트 브리지 디바이스(12)의 동작 로직은 각각의 계류중인 강하게 오더링된 기록 트랜잭션(28)의 상태를 추적하기 위한 상태 머신을 포함할 수 있다. 이와 관련하여, 도 3은 도 2a 내지 도 2c의 강하게 오더링된 기록 트랜잭션들(28) 중 하나에 대응하고 호스트 브리지 디바이스(12) 내의 상태 천이들을 예시하는 예시적인 상태 머신(40)을 도시한다. 호스트 브리지 디바이스(12)는 각각이 강하게 오더링된 기록 트랜잭션(28) 중 하나의 현재 상태를 나타내는 복수의 상태 머신들(40)을 유지할 수 있다는 것이 이해될 것이다. 호스트 브리지 디바이스(12)의 양상들은 도 3에 예시된 것들보다 더 많은, 더 적은 또는 상이한 상태들을 갖는 다른 상태 머신들을 활용할 수 있다는 것이 추가로 이해될 것이다. 도 3의 상태 머신(40)을 설명하는데 있어, 도 1 및 도 2a 내지 도 2c의 엘리먼트들이 명료성을 위해 참조된다.
[0032] 도 3의 상태 머신(40)은 4개의 상태, 즉 성공(SUCCESS) 상태(42), 재시도(RETRY) 상태(44), 리셋(RESET) 상태(46) 및 제로-길이 기록(ZERO-LENGTH WRITE; ZLW) 상태(48)를 포함한다. 호스트 브리지 디바이스(12)가 강하게 오더링된 기록 트랜잭션(28) 중 하나에 상태 머신(40)을 할당할 때, 상태 머신(40)은 디폴트(default)로 성공 상태(42)에서 시작한다. 상태 머신(40)은 다음의 방식들 중 하나로 성공 상태(42)로부터 천이한다:
[0033] 상태 머신(40)에 대응하는 강하게 오더링된 기록 트랜잭션(28)이 각각의 소비자 디바이스(18)에 의해 수용되지 않는 경우, 상태 머신(40)은 화살표(50)로 표시된 바와 같이 리셋 상태(46)로 천이하고;
[0034] 상태 머신(40)에 대응하는 강하게 오더링된 기록 트랜잭션(28)이 임의의 선행의 강하게 오더링된 기록 트랜잭션(28)이 그의 각각의 소비자 디바이스(18)에 의해 수용되지 않기 전에 각각의 소비자 디바이스(18)에 의해 수용되는 경우, 상태 머신(40)은 화살표(52)로 표시된 바와 같이 ZLW 상태(48)로 천이하고;
[0035] 상태 머신(40)에 대응하는 강하게 오더링된 기록 트랜잭션(28)이 응답을 수신하기 전에, 선행의 강하게 오더링된 기록 트랜잭션(28)이 그의 각각의 소비자 디바이스(18)에 의해 수용되지 않는 경우, 상태 머신(40)은 화살표(54)로 표시된 바와 같이 재시도 상태(44)로 천이하고;
[0036] 그렇지 않으면, 상태 머신(40)은 화살표(56)로 표시된 바와 같이 성공 상태(42)에서 유지된다.
[0037] 재시도 상태(44)는, 상태 머신(40)에 대응하는 강하게 오더링된 기록 트랜잭션(28)이 취소되고 재생되어야 한다는 것을 나타낸다. 상태 머신(40)은 다음의 방식들 중 하나로 재시도 상태(44)로부터 천이할 수 있다:
[0038] 상태 머신(40)에 대응하는 강하게 오더링된 기록 트랜잭션(28)이 각각의 소비자 디바이스(18)에 의해 수용되지 않는 경우, 상태 머신(40)은 화살표(58)로 표시된 바와 같이 리셋 상태(46)로 천이하고;
[0039] 상태 머신(40)에 대응하는 강하게 오더링된 기록 트랜잭션(28)이 각각의 소비자 디바이스(18)에 의해 수용되는 경우, 상태 머신(40)은 화살표(60)로 표시된 바와 같이 ZLW 상태(48)로 천이하고;
[0040] 그렇지 않으면, 상태 머신(40)은 화살표(62)로 표시된 바와 같이 재시도 상태(44)에서 유지된다.
[0041] ZLW 상태(48)는 상태 머신(40)에 대응하는 강하게 오더링된 기록 트랜잭션(28)이 (예를 들어, 기록 트랜잭션의 어드레스 페이즈에서) 성공적인 응답을 수신했지만 취소되어야 한다는 것을 나타낸다. 결과적으로, 상태 머신(40)에 대응하는 강하게 오더링된 기록 트랜잭션(28)은 (예를 들어, 기록 트랜잭션의 데이터 페이즈에서) 제로-바이트 데이터를 생성하고 다시 시작해야 한다. 상태 머신(40)은 다음의 방식들 중 하나로 ZLW 상태(48)로부터 천이할 수 있다:
[0042] 상태 머신(40)에 대응하는 강하게 오더링된 기록 트랜잭션(28)이 제로-바이트 데이터(도시되지 않음)의 생성을 완료하면, 상태 머신(40)은 화살표(64)로 표시된 바와 같이 리셋 상태(46)로 천이하고;
[0043] 그렇지 않으면, 상태 머신(40)은 화살표(65)로 표시된 바와 같이 ZLW 상태(48)에서 유지된다.
[0044] 리셋 상태(46)는 상태 머신(40)에 대응하는 강하게 오더링된 기록 트랜잭션(28)이 재생되게 한다. 상태 머신(40)은 화살표(66)로 표시된 바와 같이 다음 프로세서 클록 사이클 상에서 성공 상태(42)로 천이함으로써 리셋 상태(46)로부터 천이할 수 있다.
[0045] 약하게 오더링된 도메인의 소비자 디바이스에 강하게 오더링된 기록 트랜잭션을 브리징하기 위한 예시적인 프로세스를 예시하기 위해, 도 4a 및 도 4b가 제공된다. 도 4a는 강하게 오더링된 기록 트랜잭션(28)을 수신하고, 약하게 오더링된 도메인(20)에 대해 강하게 오더링된 기록 트랜잭션(28)을 발행하고, 필요한 경우 강하게 오더링된 기록 트랜잭션들(28)을 취소하기 위한, 도 1의 호스트 브리지 디바이스(12)의 동작을 도시한다. 도 4b는 강하게 오더링된 기록 트랜잭션(28)을 재생하고 선택적으로 호스트 브리지 디바이스(12)의 트랜잭션 버퍼(26)를 클리어링(clearing)하기 위한 동작들을 예시한다.
[0046] 도 4a에서, 동작들은 호스트 브리지 디바이스(12)가 하나 또는 그 초과의 강하게 오더링된 생산자 디바이스(14)로부터 복수의 강하게 오더링된 기록 트랜잭션들(28)을 수신하는 것으로 시작한다(블록 68). 위에서 언급된 바와 같이, 생산자 디바이스(들)(14)는 PCI 규격을 준수하는 주변 디바이스 또는 상호연결과 같이 강하게 오더링된 메모리 디바이스 또는 주변 디바이스를 포함할 수 있다. 일부 양상들에서, 호스트 브리지 디바이스(12)는 트랜잭션 버퍼(26)에 복수의 강하게 오더링된 기록 트랜잭션(28)을 선택적으로 저장할 수 있다(블록 70). 호스트 브리지 디바이스(12)는 그 후 약하게 오더링된 도메인(20) 내의 하나 또는 그 초과의 소비자 디바이스(18)에 대해 강하게 오더링된 기록 트랜잭션들(28)을 발행한다(블록 72). 소비자 디바이스(들)(18)는 비-제한적인 예로서 약하게 오더링된 메모리 디바이스를 포함할 수 있다.
[0047] 호스트 브리지 디바이스(12)는 다음으로, 하나 또는 그 초과의 소비자 디바이스들(18)의 제 1 소비자 디바이스(18(1))에 의해 수용되지 않은, 복수의 강하게 오더링된 기록 트랜잭션들(28)의 제 1 기록 트랜잭션(28(2))을 검출한다(블록 74). 일부 양상들은, 제 1 소비자 디바이스(18(1))에 의해 수용되지 않은 제 1 기록 트랜잭션(28(2))을 검출하는 것이, 호스트 브리지 디바이스(12)가 제 1 소비자 디바이스(18(1))로부터 재시도 응답(34)을 수신하는 것을 포함할 수 있다는 것을 제공할 수 있다(블록 76). 제 1 기록 트랜잭션(28(2))에 후속하여 발행되고 하나 또는 그 초과의 소비자 디바이스들(18)의 각각의 소비자 디바이스(18(Y), 18(0))에 의해 수용된 하나 또는 그 초과의 기록 트랜잭션들(28(3), 28(4)) 각각에 대해, 호스트 브리지 디바이스(12)는 각각의 소비자 디바이스(18(Y), 18(0))에 취소 메시지(38, 36)를 전송한다(블록 78). 일부 양상들에서, 취소 메시지(38, 36)는 각각의 소비자 디바이스(18(Y), 18(0))에 대한 제로-길이 데이터를 기대하라는 요청을 포함할 수 있다(블록 80). 동작들은 그 후 도 4b의 블록(82)에서 지속된다.
[0048] 도 4b에서, 호스트 브리지 디바이스(12)는 그 후 제 1 기록 트랜잭션(28(2)) 및 제 1 기록 트랜잭션(28(2))에 후속하여 발행된 하나 또는 그 초과의 기록 트랜잭션들(28(3), 28(4))을 재생한다(블록 82). 이러한 방식으로, 강하게 오더링된 기록 트랜잭션(28)의 직렬화가 약하게 오더링된 도메인(20)에서 유지될 수 있다. 일부 양상들은, 호스트 브리지 디바이스(12)가 하나 또는 그 초과의 소비자 디바이스(18)의 제 2 소비자 디바이스(18(0))에 의해 수용되고 종속되지 않는, 트랜잭션 버퍼(26)에 저장된 복수의 강하게 오더링된 기록 트랜잭션들(28)의 제 2 기록 트랜잭션(28(0))을 검출한다는 것을, 제공할 수 있다(블록 84). 호스트 브리지 디바이스(12)는 그 후 트랜잭션 버퍼(26)로부터 제 2 기록 트랜잭션(28(0))을 제거할 수 있다(블록 86).
[0049] 본원에서 개시되는 양상들에 따라 약하게 오더링된 도메인들의 디바이스들에 강하게 오더링된 기록 트랜잭션들을 브리징하는 것은 임의의 프로세서-기반 디바이스에서 제공되거나 그에 통합될 수 있다. 예들은, 제한 없이, 셋톱 박스, 엔터테인먼트 유닛, 내비게이션 디바이스, 통신 디바이스, 고정 위치 데이터 유닛, 모바일 위치 데이터 유닛, 모바일 전화, 셀룰러 전화, 컴퓨터, 휴대용 컴퓨터, 데스크톱 컴퓨터, 개인용 디지털 보조기기(PDA), 모니터, 컴퓨터 모니터, 텔레비전, 튜너, 라디오, 위성 라디오, 음악 재생기, 디지털 음악 재생기, 휴대용 음악 재생기, 디지털 비디오 재생기, 비디오 재생기, 디지털 비디오 디스크(DVD) 재생기, 및 휴대용 디지털 비디오 재생기를 포함한다.
[0050] 이와 관련하여, 도 5는 도 1에 예시된 호스트 브리지 디바이스(HBD)(12)를 이용할 수 있는 프로세서-기반 시스템(88)의 예를 예시한다. 이 예에서, 프로세서-기반 시스템(88)은 각각이 하나 또는 그 초과의 프로세서들(92)을 포함하는 하나 또는 그 초과의 중앙 처리 장치들(CPU들)(90)을 포함한다. CPU(들)(90)는 일시적으로 저장된 데이터에 대한 빠른 액세스를 위해 프로세서(들)(92)에 커플링되는 캐시 메모리(94)를 가질 수 있다. CPU(들)(90)는 시스템 버스(96)에 커플링되고 프로세서-기반 시스템(88)에 포함되는 마스터 및 슬래이브 디바이스들을 상호커플링할 수 있다. 잘 알려진 바와 같이, CPU(들)(90)는 시스템 버스(96) 상에서 어드레스, 제어 및 데이터 정보를 교환함으로써 이들 다른 디바이스들과 통신한다. 예를 들어, CPU(들)(90)은 메모리 제어기(100) 및 하나 또는 그 초과의 메모리 유닛들(102(0)-102(N))을 포함할 수 있는 메모리 시스템(98)에 버스 트랜잭션 요청들을 통신할 수 있다. .
[0051] 다른 마스터 및 슬래이브 디바이스들이 시스템 버스(96)에 연결될 수 있다. 도 5에서 예시된 바와 같이, 이들 디바이스들은 예들로서, 하나 또는 그 초과의 입력 디바이스들(104), 하나 또는 그 초과의 출력 디바이스들(106), 하나 또는 그 초과의 네트워크 인터페이스 디바이스들(108), 및 하나 또는 그 초과의 디스플레이 제어기들(110)을 포함할 수 있다. 입력 디바이스(들)(104)는 입력 키들, 스위치들, 음성 프로세서들 등을 포함(그러나 이것으로 제한되지 않음)하는 임의의 타입의 입력 디바이스를 포함할 수 있다. 출력 디바이스(들)(106)는 오디오, 비디오, 다른 시각적 표시기들 등을 포함(그러나 이것으로 제한되지 않음)하는 임의의 타입의 출력 디바이스를 포함할 수 있다. 네트워크 인터페이스 디바이스(들)(108)는 네트워크(112)로의 그리고 이로부터의 데이터의 교환을 허용하도록 구성되는 임의의 디바이스일 수 있다. 네트워크(112)는 유선 또는 무선 네트워크, 사설 또는 공중 네트워크, LAN(local area network), WLAN(wide local area network), 및 인터넷을 포함(그러나 이것으로 제한되지 않음)하는 임의의 타입의 네트워크일 수 있다. 네트워크 인터페이스 디바이스(들)(108)는 원하는 임의의 타입의 통신 프로토콜을 지원하도록 구성될 수 있다.
[0052] CPU(들)(90)는 또한 하나 또는 그 초과의 디스플레이들(114)에 전송되는 정보를 제어하기 위해 시스템 버스(96) 상에서 디스플레이 제어기(들)(110)에 액세스하도록 구성될 수 있다. 디스플레이 제어기(들)(110)는 디스플레이(들)(114)에 대해 적합한 포맷으로 디스플레이될 정보를 프로세싱하는 하나 또는 그 초과의 비디오 프로세서들(116)을 통해 디스플레이될 정보를 디스플레이(들)(114)에 전송한다. 디스플레이(들)(114)는 음극선관(CRT), 액정 디스플레이(LCD), 플라스마 디스플레이 등을 포함(그러나 이것으로 제한되지 않음)하는 임의의 타입의 디스플레이를 포함할 수 있다.
[0053] 본원에서 개시된 바와 같은 일부 양상들은, 도 1의 강하게 오더링된 도메인(16)이 도 5의 입력 디바이스(들)(104), 출력 디바이스(들)(106), 네트워크 인터페이스 디바이스(들)(108) 및 디스플레이 제어기(들)(110) 중 하나 또는 그 초과를 포함한다는 것을 제공할 수 있다. 도 1의 약하게 오더링된 도메인(20)은 도 5의 시스템 버스(96), 메모리 시스템(98) 및 CPU(들)(90)를 포함할 수 있다. 따라서, 호스트 브리지 디바이스(12)는 강하게 오더링된 도메인(16)의 디바이스들로부터 약하게 오더링된 도메인(20) 내의 디바이스로의 기록 트랜잭션들의 브리징을 제공하도록 동작할 수 있다. 비-제한적인 예로서, 입력 디바이스(들)(104)로부터 메모리 시스템(98)으로의 기록 트랜잭션들(도시되지 않음)은 호스트 브리지 디바이스(12)에 의해 브리징될 수 있다. 이러한 방식으로, 호스트 브리지 디바이스(12)는 강하게 오더링된 도메인(16)의 입력 디바이스(들)(104)로부터의 기록 트랜잭션이 약하게 오더링된 도메인(20)의 메모리 시스템(98)에 의해 올바른 순서로 프로세싱된다는 것을 보장할 수 있다.
[0054] 당업자들은 추가로, 본원에서 개시되는 양상과 관련하여 설명되는 다양한 예시적인 로직 블록들, 모듈들, 회로들 및 알고리즘들이 전자 하드웨어, 메모리에 또는 다른 컴퓨터-판독 가능 매체에 저장되고 프로세서 또는 다른 프로세싱 디바이스에 의해 실행되는 명령들, 또는 이 둘의 조합으로서 구현될 수 있다는 것을 인지할 것이다. 본원에서 설명되는 마스터 및 슬래이브 디바이스들은 예들로서 임의의 회로, 하드웨어 컴포넌트, 집적 회로(IC), 또는 IC 칩에서 이용될 수 있다. 본원에서 개시되는 메모리는 임의의 타입 및 크기의 메모리일 수 있고 원하는 임의의 타입의 정보를 저장하도록 구성될 수 있다. 이러한 상호 교환성을 명확하게 예시하기 위해, 다양한 예시적인 컴포넌트, 블록, 모듈, 회로 및 단계는 그의 기능성의 견지에서 대체로 위에서 설명되었다. 이러한 기능성이 어떻게 구현되는지는 특정 애플리케이션, 설계 선택들 및/또는 전체 시스템에 부과되는 설계 제약들에 의존한다. 당업자들은 설명된 기능을 특정 애플리케이션마다 다양한 방식들로 구현할 수도 있지만, 이러한 구현 결정들이 본 개시의 범위를 벗어나게 하는 것으로 해석되지는 않아야 한다.
[0055] 본원에서 개시된 양상들과 관련하여 설명된 다양한 예시적인 로직 블록, 모듈, 및 회로들은, 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 필드 프로그래밍 가능 게이트 어레이(FPGA), 또는 기타 프로그래밍 가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트, 또는 본원에서 설명된 기능을 수행하도록 설계된 이들의 임의의 조합으로 구현 또는 수행될 수 있다. 프로세서는 마이크로프로세서일 수 있지만, 대안적으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예를 들어, DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 연결된 하나 또는 그 초과의 마이크로프로세서들 또는 임의의 다른 이러한 구성으로서 구현될 수 있다.
[0056] 본원에서 개시되는 양상들은 하드웨어 및 하드웨어에 저장된 명령들로 구현될 수 있으며, 예를 들어, RAM(Random Access Memory), 플래시 메모리, ROM(Read Only Memory), EPROM(Electrically Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 레지스터들, 하드 디스크, 제거 가능 디스크, CD-ROM, 또는 당 분야에 알려진 임의의 다른 형태의 컴퓨터 판독 가능 매체에 상주할 수 있다. 예시적인 저장 매체는 프로세서에 커플링되어, 프로세서는 저장 매체로부터 정보를 판독하고, 저장 매체에 정보를 기록할 수 있다. 대안적으로, 저장 매체는 프로세서에 통합될 수 있다. 프로세서 및 저장 매체는 ASIC에 상주할 수 있다. ASIC는 원격 스테이션에 상주할 수 있다. 대안적으로, 프로세서 및 저장 매체는 원격 스테이션, 기지국 또는 서버에 이산 컴포넌트로서 상주할 수 있다.
[0057] 또한, 본원의 예시적인 양상에서 설명된 동작 단계들은 예들 및 논의를 제공하기 위해 설명된다는 것이 주의된다. 설명된 동작들은 예시된 시퀀스 이외의 다른 수많은 시퀀스들로 수행될 수 있다. 또한, 단일 동작 단계에서 설명된 동작들은 실제로 다수의 다른 단계들에서 수행될 수 있다. 부가적으로, 예시적인 양상들에서 논의된 하나 또는 그 초과의 동작 단계들은 결합될 수 있다. 흐름도 다이어그램에 예시되는 동작 단계들은 당업자에게 쉽게 자명하게 될 바와 같이 수많은 다른 변형들이 가해질 수 있다는 것이 이해될 것이다. 당업자는, 정보 및 신호들이 다양한 상이한 기술들 및 기법들 중 임의의 것을 이용하여 표현될 수 있다는 것을 또한 이해할 것이다. 예를 들어, 위의 설명 전반에 걸쳐 참조될 수 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심볼들 및 칩들은 전압들, 전류들, 전자기파들, 자기 필드들 또는 자기 입자들, 광 필드들 또는 광 입자들, 또는 이들의 임의의 조합으로 표현될 수 있다.
[0058] 본 개시의 이전 설명은 임의의 당업자가 본 개시를 실시하거나 또는 이용할 수 있도록 제공된다. 본 개시에 대한 다양한 변형은 당업자에게 쉽게 명백할 것이며, 본원에서 정의되는 일반적인 원리들은 본 개시의 사상 또는 범위를 벗어나지 않고 다른 변동들에 적용될 수도 있다. 따라서, 본 개시는 본원에서 설명된 예들 및 설계들로 제한되도록 의도된 것이 아니라, 본원에서 개시된 원리들 및 신규한 특징들에 부합하는 최광의의 범위로 허여될 것이다.
Claims (20)
- 호스트 브리지 디바이스(host bridge device)를 포함하는 장치로서,
상기 호스트 브리지 디바이스는,
하나 또는 그 초과의 강하게 오더링된(ordered) 생산자 디바이스들로부터 복수의 강하게 오더링된 기록 트랜잭션(transaction)들을 수신하고;
약하게 오더링된 도메인 내의 하나 또는 그 초과의 소비자 디바이스들에 대해 상기 복수의 강하게 오더링된 기록 트랜잭션들을 발행하고;
상기 하나 또는 그 초과의 소비자 디바이스들의 제 1 소비자 디바이스에 의해 수용되지 않는, 상기 복수의 강하게 오더링된 기록 트랜잭션들의 제 1 기록 트랜잭션을 검출하고;
상기 제 1 기록 트랜잭션에 후속하여 발행되고 그리고 상기 하나 또는 그 초과의 소비자 디바이스들의 각각의 소비자 디바이스에 의해 수용되는 하나 또는 그 초과의 기록 트랜잭션들 각각에 대해, 상기 각각의 소비자 디바이스에 취소 메시지를 전송하고; 그리고
상기 제 1 기록 트랜잭션 및 상기 제 1 기록 트랜잭션에 후속하여 발행된 하나 또는 그 초과의 기록 트랜잭션들을 재생(replay)하도록 구성되는,
호스트 브리지 디바이스를 포함하는 장치. - 제 1 항에 있어서,
상기 복수의 강하게 오더링된 기록 트랜잭션들을 저장하도록 구성된 트랜잭션 버퍼를 포함하고;
상기 호스트 브리지 디바이스는 상기 하나 또는 그 초과의 소비자 디바이스들에 대해 상기 복수의 강하게 오더링된 기록 트랜잭션들을 발행하기 전에 상기 트랜잭션 버퍼에 상기 복수의 강하게 오더링된 기록 트랜잭션들을 저장하도록 구성되는,
호스트 브리지 디바이스를 포함하는 장치. - 제 2 항에 있어서,
상기 하나 또는 그 초과의 소비자 디바이스들의 제 2 소비자 디바이스에 의해 수용되고, 그리고 종속되지 않는(not subject to a dependency), 상기 트랜잭션 버퍼에 저장된 상기 복수의 강하게 오더링된 기록 트랜잭션들의 제 2 기록 트랜잭션을 검출하고; 그리고
상기 트랜잭션 버퍼로부터 상기 제 2 기록 트랜잭션을 제거하도록 추가로 구성되는,
호스트 브리지 디바이스를 포함하는 장치. - 제 1 항에 있어서,
상기 제 1 소비자 디바이스로부터 재시도 응답을 수신함으로써 상기 제 1 소비자 디바이스에 의해 수용되지 않는 상기 제 1 기록 트랜잭션을 검출하도록 구성되는,
호스트 브리지 디바이스를 포함하는 장치. - 제 1 항에 있어서,
상기 각각의 소비자 디바이스에 제로-길이(zero-length) 데이터를 기대하라는 요청을 전송함으로써 상기 각각의 소비자 디바이스에 상기 취소 메시지를 전송하도록 구성되는,
호스트 브리지 디바이스를 포함하는 장치. - 제 1 항에 있어서,
하나 또는 그 초과의 PCI(Peripheral Component Interconnect) 생산자 디바이스들로부터 상기 복수의 강하게 오더링된 기록 트랜잭션들을 수신하도록 구성되는,
호스트 브리지 디바이스를 포함하는 장치.
- 제 1 항에 있어서,
집적 회로(IC)에 통합되는,
호스트 브리지 디바이스를 포함하는 장치.
- 제 1 항에 있어서,
셋톱 박스, 엔터테인먼트 유닛, 내비게이션 디바이스, 통신 디바이스, 고정 위치 데이터 유닛, 모바일 위치 데이터 유닛, 모바일 전화, 셀룰러 전화, 컴퓨터, 휴대용 컴퓨터, 데스크톱 컴퓨터, 개인용 디지털 보조기기(PDA), 모니터, 컴퓨터 모니터, 텔레비전, 튜너, 라디오, 위성 라디오, 음악 재생기, 디지털 음악 재생기, 휴대용 음악 재생기, 디지털 비디오 재생기, 비디오 재생기, 디지털 비디오 디스크(DVD) 재생기, 및 휴대용 디지털 비디오 재생기로 구성된 그룹으로부터 선택된 디바이스에 통합되는,
호스트 브리지 디바이스를 포함하는 장치.
- 호스트 브리지 디바이스를 포함하는 장치로서,
상기 호스트 브리지 디바이스는,
하나 또는 그 초과의 강하게 오더링된 생산자 디바이스들로부터 복수의 강하게 오더링된 기록 트랜잭션들을 수신하기 위한 수단;
약하게 오더링된 도메인 내의 하나 또는 그 초과의 소비자 디바이스들에 대해 상기 복수의 강하게 오더링된 기록 트랜잭션들을 발행하기 위한 수단;
상기 하나 또는 그 초과의 소비자 디바이스들의 제 1 소비자 디바이스에 의해 수용되지 않는, 상기 복수의 강하게 오더링된 기록 트랜잭션들의 제 1 기록 트랜잭션을 검출하기 위한 수단;
상기 제 1 기록 트랜잭션에 후속하여 발행되고 그리고 상기 하나 또는 그 초과의 소비자 디바이스들의 각각의 소비자 디바이스에 의해 수용되는 하나 또는 그 초과의 기록 트랜잭션들 각각에 대해, 상기 각각의 소비자 디바이스에 취소 메시지를 전송하기 위한 수단; 및
상기 제 1 기록 트랜잭션 및 상기 제 1 기록 트랜잭션에 후속하여 발행된 하나 또는 그 초과의 기록 트랜잭션들을 재생하기 위한 수단을 포함하는,
호스트 브리지 디바이스를 포함하는 장치. - 강하게 오더링된 기록 트랜잭션들을 약하게 오더링된 도메인들로 브리징(bridging)하기 위한 방법으로서,
호스트 브리지 디바이스에 의해, 하나 또는 그 초과의 강하게 오더링된 생산자 디바이스들로부터 복수의 강하게 오더링된 기록 트랜잭션들을 수신하는 단계;
약하게 오더링된 도메인 내의 하나 또는 그 초과의 소비자 디바이스들에 대해 상기 복수의 강하게 오더링된 기록 트랜잭션들을 발행하는 단계;
상기 하나 또는 그 초과의 소비자 디바이스들의 제 1 소비자 디바이스에 의해 수용되지 않는, 상기 복수의 강하게 오더링된 기록 트랜잭션들의 제 1 기록 트랜잭션을 검출하는 단계;
상기 제 1 기록 트랜잭션에 후속하여 발행되고 그리고 상기 하나 또는 그 초과의 소비자 디바이스들의 각각의 소비자 디바이스에 의해 수용되는 하나 또는 그 초과의 기록 트랜잭션들 각각에 대해, 상기 각각의 소비자 디바이스에 취소 메시지를 전송하는 단계; 및
상기 제 1 기록 트랜잭션 및 상기 제 1 기록 트랜잭션에 후속하여 발행된 하나 또는 그 초과의 기록 트랜잭션들을 재생하는 단계를 포함하는,
강하게 오더링된 기록 트랜잭션들을 약하게 오더링된 도메인들로 브리징하기 위한 방법. - 제 10 항에 있어서,
상기 하나 또는 그 초과의 소비자 디바이스들에 대해 상기 복수의 강하게 오더링된 기록 트랜잭션들을 발행하기 전에, 트랜잭션 버퍼에 상기 복수의 강하게 오더링된 기록 트랜잭션들을 저장하는 단계를 더 포함하는,
강하게 오더링된 기록 트랜잭션들을 약하게 오더링된 도메인들로 브리징하기 위한 방법.
- 제 11 항에 있어서,
상기 하나 또는 그 초과의 소비자 디바이스들의 제 2 소비자 디바이스에 의해 수용되고, 그리고 종속되지 않는, 상기 트랜잭션 버퍼에 저장된 상기 복수의 강하게 오더링된 기록 트랜잭션들의 제 2 기록 트랜잭션을 검출하는 단계; 및
상기 트랜잭션 버퍼로부터 상기 제 2 기록 트랜잭션을 제거하는 단계를 더 포함하는,
강하게 오더링된 기록 트랜잭션들을 약하게 오더링된 도메인들로 브리징하기 위한 방법. - 제 10 항에 있어서,
상기 제 1 소비자 디바이스에 의해 수용되지 않는 상기 제 1 기록 트랜잭션을 검출하는 단계는 상기 제 1 소비자 디바이스로부터 재시도 응답을 수신하는 단계를 포함하는,
강하게 오더링된 기록 트랜잭션들을 약하게 오더링된 도메인들로 브리징하기 위한 방법. - 제 10 항에 있어서,
상기 각각의 소비자 디바이스에 상기 취소 메시지를 전송하는 단계는 상기 각각의 소비자 디바이스에 제로-길이 데이터를 기대하라는 요청을 전송하는 단계를 포함하는,
강하게 오더링된 기록 트랜잭션들을 약하게 오더링된 도메인들로 브리징하기 위한 방법. - 제 10 항에 있어서,
상기 하나 또는 그 초과의 강하게 오더링된 생산자 디바이스들로부터 상기 복수의 강하게 오더링된 기록 트랜잭션들을 수신하는 단계는 하나 또는 그 초과의 PCI(Peripheral Component Interconnect) 생산자 디바이스들로부터 상기 복수의 강하게 오더링된 기록 트랜잭션들을 수신하는 단계를 포함하는,
강하게 오더링된 기록 트랜잭션들을 약하게 오더링된 도메인들로 브리징하기 위한 방법. - 컴퓨터-실행 가능 명령들이 저장되어 있는 비-일시적인 컴퓨터-판독 가능 저장 매체로서,
상기 컴퓨터-실행 가능 명령들은 프로세서로 하여금,
하나 또는 그 초과의 강하게 오더링된 생산자 디바이스들로부터 복수의 강하게 오더링된 기록 트랜잭션들을 수신하게 하고;
약하게 오더링된 도메인 내의 하나 또는 그 초과의 소비자 디바이스들에 대해 상기 복수의 강하게 오더링된 기록 트랜잭션들을 발행하게 하고;
상기 하나 또는 그 초과의 소비자 디바이스들의 제 1 소비자 디바이스에 의해 수용되지 않는, 상기 복수의 강하게 오더링된 기록 트랜잭션들의 제 1 기록 트랜잭션을 검출하게 하고;
상기 제 1 기록 트랜잭션에 후속하여 발행되고 그리고 상기 하나 또는 그 초과의 소비자 디바이스들의 각각의 소비자 디바이스에 의해 수용되는 하나 또는 그 초과의 기록 트랜잭션들 각각에 대해, 상기 각각의 소비자 디바이스에 취소 메시지를 전송하게 하고; 그리고
상기 제 1 기록 트랜잭션 및 상기 제 1 기록 트랜잭션에 후속하여 발행된 하나 또는 그 초과의 기록 트랜잭션들을 재생하게 하는,
비-일시적인 컴퓨터-판독 가능 저장 매체. - 제 16 항에 있어서,
추가로, 상기 프로세서로 하여금, 상기 하나 또는 그 초과의 소비자 디바이스들에 대해 상기 복수의 강하게 오더링된 기록 트랜잭션들을 발행하기 전에 트랜잭션 버퍼에 상기 복수의 강하게 오더링된 기록 트랜잭션들을 저장하게 하기 위한 컴퓨터-실행 가능 명령들이 저장되어 있는,
비-일시적인 컴퓨터-판독 가능 저장 매체. - 제 17 항에 있어서,
추가로, 상기 프로세서로 하여금,
상기 하나 또는 그 초과의 소비자 디바이스들의 제 2 소비자 디바이스에 의해 수용되고, 그리고 종속되지 않는, 상기 트랜잭션 버퍼에 저장된 상기 복수의 강하게 오더링된 기록 트랜잭션들의 제 2 기록 트랜잭션을 검출하게 하고, 그리고
상기 트랜잭션 버퍼로부터 상기 제 2 기록 트랜잭션을 제거하게 하기 위한
컴퓨터-실행 가능 명령들이 저장되어 있는,
비-일시적인 컴퓨터-판독 가능 저장 매체. - 제 16 항에 있어서,
상기 프로세서로 하여금, 상기 제 1 소비자 디바이스로부터 재시도 응답을 수신함으로써 상기 제 1 소비자 디바이스에 의해 수용되지 않는 상기 제 1 기록 트랜잭션을 검출하게 하기 위한 컴퓨터-실행 가능 명령들이 저장되어 있는,
비-일시적인 컴퓨터-판독 가능 저장 매체. - 제 16 항에 있어서,
상기 프로세서로 하여금, 상기 각각의 소비자 디바이스에 제로-길이 데이터를 기대하라는 요청을 전송함으로써 상기 각각의 소비자 디바이스에 상기 취소 메시지를 전송하게 하기 위한 컴퓨터-실행 가능 명령들이 저장되어 있는,
비-일시적인 컴퓨터-판독 가능 저장 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/484,624 | 2014-09-12 | ||
US14/484,624 US9594713B2 (en) | 2014-09-12 | 2014-09-12 | Bridging strongly ordered write transactions to devices in weakly ordered domains, and related apparatuses, methods, and computer-readable media |
PCT/US2015/047727 WO2016040034A1 (en) | 2014-09-12 | 2015-08-31 | Bridging strongly ordered write transactions to devices in weakly ordered domains, and related apparatuses, methods, and computer-readable media |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170046682A KR20170046682A (ko) | 2017-05-02 |
KR101753906B1 true KR101753906B1 (ko) | 2017-07-04 |
Family
ID=54106004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177006443A KR101753906B1 (ko) | 2014-09-12 | 2015-08-31 | 약하게 오더링된 도메인의 디바이스들에 강하게 오더링된 기록 트랜잭션들을 브리징하는 것, 및 관련된 장치들, 방법들 및 컴퓨터-판독 가능 매체들 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9594713B2 (ko) |
EP (1) | EP3191971B1 (ko) |
JP (1) | JP6240809B2 (ko) |
KR (1) | KR101753906B1 (ko) |
CN (1) | CN106796561B (ko) |
WO (1) | WO2016040034A1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10528253B2 (en) * | 2014-11-05 | 2020-01-07 | International Business Machines Corporation | Increased bandwidth of ordered stores in a non-uniform memory subsystem |
CN106445849B (zh) * | 2016-10-21 | 2019-05-28 | 郑州云海信息技术有限公司 | 一种多控制器中处理有序命令的方法 |
US10725955B2 (en) * | 2017-12-08 | 2020-07-28 | Arm Limited | Power control of inter-domain transaction bridge |
CN116940934A (zh) * | 2021-03-31 | 2023-10-24 | 华为技术有限公司 | 读写操作执行方法和SoC芯片 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6370632B1 (en) | 1997-11-18 | 2002-04-09 | Intrinsity, Inc. | Method and apparatus that enforces a regional memory model in hierarchical memory systems |
JP2004512585A (ja) | 2000-09-29 | 2004-04-22 | オラクル・コーポレイション | きめの細かい一時的なデータベースへのアクセスを提供するためのシステムおよび方法 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5751986A (en) * | 1994-03-01 | 1998-05-12 | Intel Corporation | Computer system with self-consistent ordering mechanism |
US5835741A (en) * | 1996-12-31 | 1998-11-10 | Compaq Computer Corporation | Bus-to-bus bridge in computer system, with fast burst memory range |
US6088771A (en) * | 1997-10-24 | 2000-07-11 | Digital Equipment Corporation | Mechanism for reducing latency of memory barrier operations on a multiprocessor system |
US6038646A (en) * | 1998-01-23 | 2000-03-14 | Sun Microsystems, Inc. | Method and apparatus for enforcing ordered execution of reads and writes across a memory interface |
US6175889B1 (en) | 1998-10-21 | 2001-01-16 | Compaq Computer Corporation | Apparatus, method and system for a computer CPU and memory to high speed peripheral interconnect bridge having a plurality of physical buses with a single logical bus number |
US6405276B1 (en) * | 1998-12-10 | 2002-06-11 | International Business Machines Corporation | Selectively flushing buffered transactions in a bus bridge |
JP2001216259A (ja) * | 2000-02-04 | 2001-08-10 | Hitachi Ltd | マルチプロセッサシステム及びそのトランザックション制御方法 |
US6963967B1 (en) * | 2000-06-06 | 2005-11-08 | International Business Machines Corporation | System and method for enabling weak consistent storage advantage to a firmly consistent storage architecture |
US6754737B2 (en) | 2001-12-24 | 2004-06-22 | Hewlett-Packard Development Company, L.P. | Method and apparatus to allow dynamic variation of ordering enforcement between transactions in a strongly ordered computer interconnect |
US7162546B2 (en) * | 2001-12-27 | 2007-01-09 | Intel Corporation | Reordering unrelated transactions from an ordered interface |
US7353301B2 (en) | 2004-10-29 | 2008-04-01 | Intel Corporation | Methodology and apparatus for implementing write combining |
US9026744B2 (en) * | 2005-03-23 | 2015-05-05 | Qualcomm Incorporated | Enforcing strongly-ordered requests in a weakly-ordered processing |
US7500045B2 (en) * | 2005-03-23 | 2009-03-03 | Qualcomm Incorporated | Minimizing memory barriers when enforcing strongly-ordered requests in a weakly-ordered processing system |
US7457905B2 (en) * | 2005-08-29 | 2008-11-25 | Lsi Corporation | Method for request transaction ordering in OCP bus to AXI bus bridge design |
US8019944B1 (en) * | 2005-09-28 | 2011-09-13 | Oracle America, Inc. | Checking for a memory ordering violation after a speculative cache write |
US7721023B2 (en) * | 2005-11-15 | 2010-05-18 | International Business Machines Corporation | I/O address translation method for specifying a relaxed ordering for I/O accesses |
JP4779010B2 (ja) * | 2006-02-27 | 2011-09-21 | 富士通株式会社 | バッファリング装置およびバッファリング方法 |
US7917676B2 (en) * | 2006-03-10 | 2011-03-29 | Qualcomm, Incorporated | Efficient execution of memory barrier bus commands with order constrained memory accesses |
US7610458B2 (en) | 2006-04-25 | 2009-10-27 | International Business Machines Corporation | Data processing system, processor and method of data processing that support memory access according to diverse memory models |
US8645632B2 (en) * | 2009-02-04 | 2014-02-04 | Oracle America, Inc. | Speculative writestream transaction |
US8949500B2 (en) * | 2011-08-08 | 2015-02-03 | Lsi Corporation | Non-blocking processor bus bridge for network processors or the like |
CN102004709B (zh) * | 2009-08-31 | 2013-09-25 | 国际商业机器公司 | 处理器局部总线到高级可扩展接口之间的总线桥及映射方法 |
US8285908B2 (en) * | 2010-01-24 | 2012-10-09 | Freescale Semiconductor, Inc. | Bus bridge and method for interfacing out-of-order bus and multiple ordered buses |
JP5625737B2 (ja) | 2010-10-22 | 2014-11-19 | 富士通株式会社 | 転送装置、転送方法および転送プログラム |
US8782356B2 (en) | 2011-12-09 | 2014-07-15 | Qualcomm Incorporated | Auto-ordering of strongly ordered, device, and exclusive transactions across multiple memory regions |
US9229896B2 (en) * | 2012-12-21 | 2016-01-05 | Apple Inc. | Systems and methods for maintaining an order of read and write transactions in a computing system |
US9495318B2 (en) | 2013-11-25 | 2016-11-15 | Apple Inc. | Synchronizing transactions for a single master over multiple busses |
-
2014
- 2014-09-12 US US14/484,624 patent/US9594713B2/en active Active
-
2015
- 2015-08-31 CN CN201580047332.8A patent/CN106796561B/zh active Active
- 2015-08-31 KR KR1020177006443A patent/KR101753906B1/ko active IP Right Grant
- 2015-08-31 WO PCT/US2015/047727 patent/WO2016040034A1/en active Application Filing
- 2015-08-31 EP EP15763158.1A patent/EP3191971B1/en active Active
- 2015-08-31 JP JP2017511747A patent/JP6240809B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6370632B1 (en) | 1997-11-18 | 2002-04-09 | Intrinsity, Inc. | Method and apparatus that enforces a regional memory model in hierarchical memory systems |
JP2004512585A (ja) | 2000-09-29 | 2004-04-22 | オラクル・コーポレイション | きめの細かい一時的なデータベースへのアクセスを提供するためのシステムおよび方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106796561B (zh) | 2018-08-28 |
EP3191971B1 (en) | 2020-01-01 |
US20160077991A1 (en) | 2016-03-17 |
CN106796561A (zh) | 2017-05-31 |
KR20170046682A (ko) | 2017-05-02 |
WO2016040034A1 (en) | 2016-03-17 |
JP2017528827A (ja) | 2017-09-28 |
JP6240809B2 (ja) | 2017-11-29 |
EP3191971A1 (en) | 2017-07-19 |
US9594713B2 (en) | 2017-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9785605B2 (en) | Predefined static enumeration for dynamic enumeration buses | |
KR102420909B1 (ko) | 메모리 시스템들을 위한 전력 절약 기법들 | |
EP3105761B1 (en) | Memory physical layer interface logic for generating dynamic random access memory (dram) commands with programmable delays | |
KR101753906B1 (ko) | 약하게 오더링된 도메인의 디바이스들에 강하게 오더링된 기록 트랜잭션들을 브리징하는 것, 및 관련된 장치들, 방법들 및 컴퓨터-판독 가능 매체들 | |
US20140181824A1 (en) | Qos inband upgrade | |
AU2017223094B2 (en) | Bus bridge for translating requests between a module bus and an axi bus | |
US9842067B2 (en) | Processor communications | |
KR20140147898A (ko) | 메모리 액세스 지연을 트레이닝하기 위한 방법 및 장치 | |
CN105468548B (zh) | 串行外围接口的通信 | |
EP3514796B1 (en) | Providing memory training of dynamic random access memory (dram) systems using port-to-port loopbacks, and related methods, systems, and apparatuses | |
JP2016515262A (ja) | 命令処理回路における冗長同期バリアの削除と、関連プロセッサシステム、方法、およびコンピュータ可読媒体 | |
EP3152668A1 (en) | Command trapping in an input/output virtualization (iov) host controller (hc) (iov-hc) of a flash-memory-based storage device | |
US20240320165A1 (en) | Advanced initialization bus (aib) | |
US9760515B2 (en) | Shared control of a phase locked loop (PLL) for a multi-port physical layer (PHY) | |
WO2017105723A1 (en) | Audio bus interrupts | |
JP2009151486A (ja) | Dma転送処理装置 | |
US11327922B2 (en) | Bus ownership for a system power management interface (SPMI) bus | |
JP6393013B1 (ja) | リトライバスコヒーレンシプロトコルおよびインオーダーレスポンス非リトライバスコヒーレンシプロトコルを使用するプロセッサベースシステムにおけるデッドロックの回避 | |
JP2009277004A (ja) | データ転送装置及びデータ転送システム | |
JP2008046874A (ja) | データ転送装置及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |