KR101753906B1 - 약하게 오더링된 도메인의 디바이스들에 강하게 오더링된 기록 트랜잭션들을 브리징하는 것, 및 관련된 장치들, 방법들 및 컴퓨터-판독 가능 매체들 - Google Patents

약하게 오더링된 도메인의 디바이스들에 강하게 오더링된 기록 트랜잭션들을 브리징하는 것, 및 관련된 장치들, 방법들 및 컴퓨터-판독 가능 매체들 Download PDF

Info

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
Application number
KR1020177006443A
Other languages
English (en)
Other versions
KR20170046682A (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 KR20170046682A publication Critical patent/KR20170046682A/ko
Application granted granted Critical
Publication of KR101753906B1 publication Critical patent/KR101753906B1/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/4009Coupling between buses with data restructuring
    • G06F13/4013Coupling between buses with data restructuring with data re-ordering, e.g. Endian conversion
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1621Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by maintaining request order
    • 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
    • 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/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
    • 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/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus 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)
  • Information Transfer Between Computers (AREA)
  • Small-Scale Networks (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

약하게 오더링된 도메인의 디바이스들에 강하게 오더링된 기록 트랜잭션들을 브리징하는 것, 및 관련된 장치들, 방법들 및 컴퓨터-판독 가능 매체들이 개시된다. 일 양상에서, 호스트 브리지 디바이스는 하나 또는 그 초과의 강하게 오더링된 생산자 디바이스로부터 강하게 오더링된 기록 트랜잭션들을 수신하도록 구성된다. 호스트 브리지 디바이스는 약하게 오더링된 도메인 내의 하나 또는 그 초과의 소비자 디바이스들에 대해 강하게 오더링된 기록 트랜잭션들을 발행한다. 호스트 브리지 디바이스는 하나 또는 그 초과의 소비자 디바이스들의 제 1 소비자 디바이스에 의해 수용되지 않는 제 1 기록 트랜잭션을 검출한다. 제 1 기록 트랜잭션에 후속하여 발행되고 각각의 소비자 디바이스에 의해 수용되는 하나 또는 그 초과의 기록 트랜잭션들 각각에 대해, 호스트 브리지 디바이스는 각각의 소비자 디바이스에 취소 메시지를 전송한다. 호스트 브리지 디바이스는 제 1 기록 트랜잭션 및 제 1 기록 트랜잭션에 후속하여 발행된 하나 또는 그 초과의 기록 트랜잭션들을 재생한다.

Description

약하게 오더링된 도메인의 디바이스들에 강하게 오더링된 기록 트랜잭션들을 브리징하는 것, 및 관련된 장치들, 방법들 및 컴퓨터-판독 가능 매체들{BRIDGING STRONGLY ORDERED WRITE TRANSACTIONS TO DEVICES IN WEAKLY ORDERED DOMAINS, AND RELATED APPARATUSES, METHODS, AND COMPUTER-READABLE MEDIA}
[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의 호스트 브리지 디바이스를 포함할 수 있는 예시적인 프로세서-기반 시스템의 블록도이다.
[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)

  1. 호스트 브리지 디바이스(host bridge device)를 포함하는 장치로서,
    상기 호스트 브리지 디바이스는,
    하나 또는 그 초과의 강하게 오더링된(ordered) 생산자 디바이스들로부터 복수의 강하게 오더링된 기록 트랜잭션(transaction)들을 수신하고;
    약하게 오더링된 도메인 내의 하나 또는 그 초과의 소비자 디바이스들에 대해 상기 복수의 강하게 오더링된 기록 트랜잭션들을 발행하고;
    상기 하나 또는 그 초과의 소비자 디바이스들의 제 1 소비자 디바이스에 의해 수용되지 않는, 상기 복수의 강하게 오더링된 기록 트랜잭션들의 제 1 기록 트랜잭션을 검출하고;
    상기 제 1 기록 트랜잭션에 후속하여 발행되고 그리고 상기 하나 또는 그 초과의 소비자 디바이스들의 각각의 소비자 디바이스에 의해 수용되는 하나 또는 그 초과의 기록 트랜잭션들 각각에 대해, 상기 각각의 소비자 디바이스에 취소 메시지를 전송하고; 그리고
    상기 제 1 기록 트랜잭션 및 상기 제 1 기록 트랜잭션에 후속하여 발행된 하나 또는 그 초과의 기록 트랜잭션들을 재생(replay)하도록 구성되는,
    호스트 브리지 디바이스를 포함하는 장치.
  2. 제 1 항에 있어서,
    상기 복수의 강하게 오더링된 기록 트랜잭션들을 저장하도록 구성된 트랜잭션 버퍼를 포함하고;
    상기 호스트 브리지 디바이스는 상기 하나 또는 그 초과의 소비자 디바이스들에 대해 상기 복수의 강하게 오더링된 기록 트랜잭션들을 발행하기 전에 상기 트랜잭션 버퍼에 상기 복수의 강하게 오더링된 기록 트랜잭션들을 저장하도록 구성되는,
    호스트 브리지 디바이스를 포함하는 장치.
  3. 제 2 항에 있어서,
    상기 하나 또는 그 초과의 소비자 디바이스들의 제 2 소비자 디바이스에 의해 수용되고, 그리고 종속되지 않는(not subject to a dependency), 상기 트랜잭션 버퍼에 저장된 상기 복수의 강하게 오더링된 기록 트랜잭션들의 제 2 기록 트랜잭션을 검출하고; 그리고
    상기 트랜잭션 버퍼로부터 상기 제 2 기록 트랜잭션을 제거하도록 추가로 구성되는,
    호스트 브리지 디바이스를 포함하는 장치.
  4. 제 1 항에 있어서,
    상기 제 1 소비자 디바이스로부터 재시도 응답을 수신함으로써 상기 제 1 소비자 디바이스에 의해 수용되지 않는 상기 제 1 기록 트랜잭션을 검출하도록 구성되는,
    호스트 브리지 디바이스를 포함하는 장치.
  5. 제 1 항에 있어서,
    상기 각각의 소비자 디바이스에 제로-길이(zero-length) 데이터를 기대하라는 요청을 전송함으로써 상기 각각의 소비자 디바이스에 상기 취소 메시지를 전송하도록 구성되는,
    호스트 브리지 디바이스를 포함하는 장치.
  6. 제 1 항에 있어서,
    하나 또는 그 초과의 PCI(Peripheral Component Interconnect) 생산자 디바이스들로부터 상기 복수의 강하게 오더링된 기록 트랜잭션들을 수신하도록 구성되는,
    호스트 브리지 디바이스를 포함하는 장치.
  7. 제 1 항에 있어서,
    집적 회로(IC)에 통합되는,
    호스트 브리지 디바이스를 포함하는 장치.
  8. 제 1 항에 있어서,
    셋톱 박스, 엔터테인먼트 유닛, 내비게이션 디바이스, 통신 디바이스, 고정 위치 데이터 유닛, 모바일 위치 데이터 유닛, 모바일 전화, 셀룰러 전화, 컴퓨터, 휴대용 컴퓨터, 데스크톱 컴퓨터, 개인용 디지털 보조기기(PDA), 모니터, 컴퓨터 모니터, 텔레비전, 튜너, 라디오, 위성 라디오, 음악 재생기, 디지털 음악 재생기, 휴대용 음악 재생기, 디지털 비디오 재생기, 비디오 재생기, 디지털 비디오 디스크(DVD) 재생기, 및 휴대용 디지털 비디오 재생기로 구성된 그룹으로부터 선택된 디바이스에 통합되는,
    호스트 브리지 디바이스를 포함하는 장치.
  9. 호스트 브리지 디바이스를 포함하는 장치로서,
    상기 호스트 브리지 디바이스는,
    하나 또는 그 초과의 강하게 오더링된 생산자 디바이스들로부터 복수의 강하게 오더링된 기록 트랜잭션들을 수신하기 위한 수단;
    약하게 오더링된 도메인 내의 하나 또는 그 초과의 소비자 디바이스들에 대해 상기 복수의 강하게 오더링된 기록 트랜잭션들을 발행하기 위한 수단;
    상기 하나 또는 그 초과의 소비자 디바이스들의 제 1 소비자 디바이스에 의해 수용되지 않는, 상기 복수의 강하게 오더링된 기록 트랜잭션들의 제 1 기록 트랜잭션을 검출하기 위한 수단;
    상기 제 1 기록 트랜잭션에 후속하여 발행되고 그리고 상기 하나 또는 그 초과의 소비자 디바이스들의 각각의 소비자 디바이스에 의해 수용되는 하나 또는 그 초과의 기록 트랜잭션들 각각에 대해, 상기 각각의 소비자 디바이스에 취소 메시지를 전송하기 위한 수단; 및
    상기 제 1 기록 트랜잭션 및 상기 제 1 기록 트랜잭션에 후속하여 발행된 하나 또는 그 초과의 기록 트랜잭션들을 재생하기 위한 수단을 포함하는,
    호스트 브리지 디바이스를 포함하는 장치.
  10. 강하게 오더링된 기록 트랜잭션들을 약하게 오더링된 도메인들로 브리징(bridging)하기 위한 방법으로서,
    호스트 브리지 디바이스에 의해, 하나 또는 그 초과의 강하게 오더링된 생산자 디바이스들로부터 복수의 강하게 오더링된 기록 트랜잭션들을 수신하는 단계;
    약하게 오더링된 도메인 내의 하나 또는 그 초과의 소비자 디바이스들에 대해 상기 복수의 강하게 오더링된 기록 트랜잭션들을 발행하는 단계;
    상기 하나 또는 그 초과의 소비자 디바이스들의 제 1 소비자 디바이스에 의해 수용되지 않는, 상기 복수의 강하게 오더링된 기록 트랜잭션들의 제 1 기록 트랜잭션을 검출하는 단계;
    상기 제 1 기록 트랜잭션에 후속하여 발행되고 그리고 상기 하나 또는 그 초과의 소비자 디바이스들의 각각의 소비자 디바이스에 의해 수용되는 하나 또는 그 초과의 기록 트랜잭션들 각각에 대해, 상기 각각의 소비자 디바이스에 취소 메시지를 전송하는 단계; 및
    상기 제 1 기록 트랜잭션 및 상기 제 1 기록 트랜잭션에 후속하여 발행된 하나 또는 그 초과의 기록 트랜잭션들을 재생하는 단계를 포함하는,
    강하게 오더링된 기록 트랜잭션들을 약하게 오더링된 도메인들로 브리징하기 위한 방법.
  11. 제 10 항에 있어서,
    상기 하나 또는 그 초과의 소비자 디바이스들에 대해 상기 복수의 강하게 오더링된 기록 트랜잭션들을 발행하기 전에, 트랜잭션 버퍼에 상기 복수의 강하게 오더링된 기록 트랜잭션들을 저장하는 단계를 더 포함하는,
    강하게 오더링된 기록 트랜잭션들을 약하게 오더링된 도메인들로 브리징하기 위한 방법.
  12. 제 11 항에 있어서,
    상기 하나 또는 그 초과의 소비자 디바이스들의 제 2 소비자 디바이스에 의해 수용되고, 그리고 종속되지 않는, 상기 트랜잭션 버퍼에 저장된 상기 복수의 강하게 오더링된 기록 트랜잭션들의 제 2 기록 트랜잭션을 검출하는 단계; 및
    상기 트랜잭션 버퍼로부터 상기 제 2 기록 트랜잭션을 제거하는 단계를 더 포함하는,
    강하게 오더링된 기록 트랜잭션들을 약하게 오더링된 도메인들로 브리징하기 위한 방법.
  13. 제 10 항에 있어서,
    상기 제 1 소비자 디바이스에 의해 수용되지 않는 상기 제 1 기록 트랜잭션을 검출하는 단계는 상기 제 1 소비자 디바이스로부터 재시도 응답을 수신하는 단계를 포함하는,
    강하게 오더링된 기록 트랜잭션들을 약하게 오더링된 도메인들로 브리징하기 위한 방법.
  14. 제 10 항에 있어서,
    상기 각각의 소비자 디바이스에 상기 취소 메시지를 전송하는 단계는 상기 각각의 소비자 디바이스에 제로-길이 데이터를 기대하라는 요청을 전송하는 단계를 포함하는,
    강하게 오더링된 기록 트랜잭션들을 약하게 오더링된 도메인들로 브리징하기 위한 방법.
  15. 제 10 항에 있어서,
    상기 하나 또는 그 초과의 강하게 오더링된 생산자 디바이스들로부터 상기 복수의 강하게 오더링된 기록 트랜잭션들을 수신하는 단계는 하나 또는 그 초과의 PCI(Peripheral Component Interconnect) 생산자 디바이스들로부터 상기 복수의 강하게 오더링된 기록 트랜잭션들을 수신하는 단계를 포함하는,
    강하게 오더링된 기록 트랜잭션들을 약하게 오더링된 도메인들로 브리징하기 위한 방법.
  16. 컴퓨터-실행 가능 명령들이 저장되어 있는 비-일시적인 컴퓨터-판독 가능 저장 매체로서,
    상기 컴퓨터-실행 가능 명령들은 프로세서로 하여금,
    하나 또는 그 초과의 강하게 오더링된 생산자 디바이스들로부터 복수의 강하게 오더링된 기록 트랜잭션들을 수신하게 하고;
    약하게 오더링된 도메인 내의 하나 또는 그 초과의 소비자 디바이스들에 대해 상기 복수의 강하게 오더링된 기록 트랜잭션들을 발행하게 하고;
    상기 하나 또는 그 초과의 소비자 디바이스들의 제 1 소비자 디바이스에 의해 수용되지 않는, 상기 복수의 강하게 오더링된 기록 트랜잭션들의 제 1 기록 트랜잭션을 검출하게 하고;
    상기 제 1 기록 트랜잭션에 후속하여 발행되고 그리고 상기 하나 또는 그 초과의 소비자 디바이스들의 각각의 소비자 디바이스에 의해 수용되는 하나 또는 그 초과의 기록 트랜잭션들 각각에 대해, 상기 각각의 소비자 디바이스에 취소 메시지를 전송하게 하고; 그리고
    상기 제 1 기록 트랜잭션 및 상기 제 1 기록 트랜잭션에 후속하여 발행된 하나 또는 그 초과의 기록 트랜잭션들을 재생하게 하는,
    비-일시적인 컴퓨터-판독 가능 저장 매체.
  17. 제 16 항에 있어서,
    추가로, 상기 프로세서로 하여금, 상기 하나 또는 그 초과의 소비자 디바이스들에 대해 상기 복수의 강하게 오더링된 기록 트랜잭션들을 발행하기 전에 트랜잭션 버퍼에 상기 복수의 강하게 오더링된 기록 트랜잭션들을 저장하게 하기 위한 컴퓨터-실행 가능 명령들이 저장되어 있는,
    비-일시적인 컴퓨터-판독 가능 저장 매체.
  18. 제 17 항에 있어서,
    추가로, 상기 프로세서로 하여금,
    상기 하나 또는 그 초과의 소비자 디바이스들의 제 2 소비자 디바이스에 의해 수용되고, 그리고 종속되지 않는, 상기 트랜잭션 버퍼에 저장된 상기 복수의 강하게 오더링된 기록 트랜잭션들의 제 2 기록 트랜잭션을 검출하게 하고, 그리고
    상기 트랜잭션 버퍼로부터 상기 제 2 기록 트랜잭션을 제거하게 하기 위한
    컴퓨터-실행 가능 명령들이 저장되어 있는,
    비-일시적인 컴퓨터-판독 가능 저장 매체.
  19. 제 16 항에 있어서,
    상기 프로세서로 하여금, 상기 제 1 소비자 디바이스로부터 재시도 응답을 수신함으로써 상기 제 1 소비자 디바이스에 의해 수용되지 않는 상기 제 1 기록 트랜잭션을 검출하게 하기 위한 컴퓨터-실행 가능 명령들이 저장되어 있는,
    비-일시적인 컴퓨터-판독 가능 저장 매체.
  20. 제 16 항에 있어서,
    상기 프로세서로 하여금, 상기 각각의 소비자 디바이스에 제로-길이 데이터를 기대하라는 요청을 전송함으로써 상기 각각의 소비자 디바이스에 상기 취소 메시지를 전송하게 하기 위한 컴퓨터-실행 가능 명령들이 저장되어 있는,
    비-일시적인 컴퓨터-판독 가능 저장 매체.
KR1020177006443A 2014-09-12 2015-08-31 약하게 오더링된 도메인의 디바이스들에 강하게 오더링된 기록 트랜잭션들을 브리징하는 것, 및 관련된 장치들, 방법들 및 컴퓨터-판독 가능 매체들 KR101753906B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
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
US14/484,624 2014-09-12
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)

* Cited by examiner, † Cited by third party
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
WO2022205130A1 (zh) * 2021-03-31 2022-10-06 华为技术有限公司 读写操作执行方法和SoC芯片

Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
US7500045B2 (en) * 2005-03-23 2009-03-03 Qualcomm Incorporated Minimizing memory barriers when enforcing strongly-ordered requests in a weakly-ordered processing system
US9026744B2 (en) 2005-03-23 2015-05-05 Qualcomm Incorporated Enforcing strongly-ordered requests in a weakly-ordered processing
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
WO2007097017A1 (ja) * 2006-02-27 2007-08-30 Fujitsu Limited バッファリング装置およびバッファリング方法
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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
JP2017528827A (ja) 2017-09-28
JP6240809B2 (ja) 2017-11-29
EP3191971B1 (en) 2020-01-01
CN106796561B (zh) 2018-08-28
KR20170046682A (ko) 2017-05-02
EP3191971A1 (en) 2017-07-19
US9594713B2 (en) 2017-03-14
WO2016040034A1 (en) 2016-03-17
US20160077991A1 (en) 2016-03-17
CN106796561A (zh) 2017-05-31

Similar Documents

Publication Publication Date Title
US9785605B2 (en) Predefined static enumeration for dynamic enumeration buses
US9053058B2 (en) QoS inband upgrade
KR101549648B1 (ko) 메모리 액세스 지연을 트레이닝하기 위한 방법 및 장치
KR101753906B1 (ko) 약하게 오더링된 도메인의 디바이스들에 강하게 오더링된 기록 트랜잭션들을 브리징하는 것, 및 관련된 장치들, 방법들 및 컴퓨터-판독 가능 매체들
EP3105761B1 (en) Memory physical layer interface logic for generating dynamic random access memory (dram) commands with programmable delays
AU2017223094B2 (en) Bus bridge for translating requests between a module bus and an axi bus
US9842067B2 (en) Processor communications
US9690720B2 (en) Providing command trapping using a request filter circuit in an input/output virtualization (IOV) host controller (HC) (IOV-HC) of a flash-memory-based storage device
EP3514796B1 (en) Providing memory training of dynamic random access memory (dram) systems using port-to-port loopbacks, and related methods, systems, and apparatuses
US20190205278A1 (en) FAST INVALIDATION IN PERIPHERAL COMPONENT INTERCONNECT (PCI) EXPRESS (PCIe) ADDRESS TRANSLATION SERVICES (ATS)
JP2016515262A (ja) 命令処理回路における冗長同期バリアの削除と、関連プロセッサシステム、方法、およびコンピュータ可読媒体
JP2008547139A (ja) 一方向全二重インタフェースを有するメモリのポスト書き込みバッファのための方法、装置及びシステム
US9760515B2 (en) Shared control of a phase locked loop (PLL) for a multi-port physical layer (PHY)
US12019565B2 (en) Advanced initialization bus (AIB)
US20240004806A1 (en) Advanced initialization bus (aib)
JP2009151486A (ja) Dma転送処理装置
US11327922B2 (en) Bus ownership for a system power management interface (SPMI) bus
EP3519972A1 (en) Cache memory clock generation circuits for reducing power consumption and read errors in cache memory
JP6393013B1 (ja) リトライバスコヒーレンシプロトコルおよびインオーダーレスポンス非リトライバスコヒーレンシプロトコルを使用するプロセッサベースシステムにおけるデッドロックの回避
WO2013095519A1 (en) Method and apparatus for clock frequency ratio independent error logging
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