KR102502304B1 - 트랜잭션 핸들링 - Google Patents

트랜잭션 핸들링 Download PDF

Info

Publication number
KR102502304B1
KR102502304B1 KR1020197019101A KR20197019101A KR102502304B1 KR 102502304 B1 KR102502304 B1 KR 102502304B1 KR 1020197019101 A KR1020197019101 A KR 1020197019101A KR 20197019101 A KR20197019101 A KR 20197019101A KR 102502304 B1 KR102502304 B1 KR 102502304B1
Authority
KR
South Korea
Prior art keywords
transaction
identifier
handling
indicator
requests
Prior art date
Application number
KR1020197019101A
Other languages
English (en)
Other versions
KR20190097092A (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 KR20190097092A publication Critical patent/KR20190097092A/ko
Application granted granted Critical
Publication of KR102502304B1 publication Critical patent/KR102502304B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • 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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Bus Control (AREA)

Abstract

트랜잭션 핸들링 디바이스는, 데이터 처리 트랜잭션에 대한 트랜잭션 요구-이 트랜잭션 요구는, 적어도, 동일한 식별자를 갖는 트랜잭션 요구들의 세트의 각각에 대해 처리하는 애스펙트가 그 트랜잭션들의 세트의 발행의 순서로 수행되도록 관련 식별자를 갖는다-를 핸들링하는 트랜잭션 핸들링 회로; 및 식별자가 하나보다 많은 동시 진행중 트랜잭션 요구와 관계하는지를 나타내기 위해 이 식별자와 관련된 지시자의 상태를 검출하는 검출회로를 구비한다.

Description

트랜잭션 핸들링
본 개시내용은 트랜잭션 핸들링에 관한 것이다.
일부의 트랜잭션 핸들링 프로토콜들은, 데이터 처리 트랜잭션들과 관련된 식별자들을 이용하여, (트랜잭션을 개시하는) 이니시에이터(initiator) 디바이스는 트랜잭션에 대한 응답을 기다릴 수 있고, 그 응답이 트랜잭션 서버 디바이스로부터 도달할 때, 그 응답을 적절하게 핸들링할 수 있다.
일부의 프로토콜들에서, 다수의 동시 트랜잭션들은, 식별자가 동일한 이니시에이터 디바이스에 의해 발행될 수 있다. 오더링(ordering) 요구사항은, 일반적으로 상기와 같은 트랜잭션 요구들의 세트들에 적용된다. 예를 들면, 이 오더링 요구사항은, 상기 트랜잭션이 상기 트랜잭션의 목적지에 상기 트랜잭션 발행 순서로 전달되는 요구사항, i) 상기 트랜잭션에 대한 응답이 상기 트랜잭션 발행 순서로 상기 트랜잭션의 상기 이니시에이터에 회신되는 요구사항, 및 상기 트랜잭션이 상기 트랜잭션 발행 순서로 완료되는 요구사항 중, 하나 이상이어도 된다.
그렇지만, 상기 오더링이 예를 들면, 트랜잭션들의 세트가 다수의 서버 디바이스들에 의해 핸들링되는 경우, 손상될 가능성이 있을 수 있는 인스턴스들이 생길 수 있다. 이러한 인스턴스들에서는, 소위 오더링 기술들을 사용하여 그 오더링 요구사항이 손상되지 않을 수 있다. 이 기술들은, 상기 오더링 요구사항에 대해 "조기에" 수신 또는 핸들링되는 트랜잭션들을 일시 중지하는 것, 및/또는 버퍼링 정보를 전송하기 위해 적절한 스테이지까지 상기 트랜잭션들에 관한 정보를 버퍼링하는 것을 포함할 수 있다.
일 구성 예에서 제공한 트랜잭션 핸들링 디바이스는:
데이터 처리 트랜잭션에 대한 트랜잭션 요구-이 트랜잭션 요구는, 적어도, 동일한 식별자를 갖는 트랜잭션 요구들의 세트의 각각에 대해 처리하는 애스펙트가 그 트랜잭션 요구들의 세트의 발행의 순서로 수행되도록 관련 식별자를 갖는다-를 핸들링하는 트랜잭션 핸들링 회로; 및
상기 관련 식별자가 하나보다 많은 동시 진행중 트랜잭션 요구와 관계하는지를 나타내기 위해 상기 관련 식별자와 관련된 지시자의 상태를 검출하는 검출회로를 구비하고,
상기 처리하는 애스펙트는:
(i) 트랜잭션이 상기 트랜잭션의 목적지로 전달되는 것;
(ii) 트랜잭션에 대한 응답이 트랜잭션의 이니시에이터에 회신되는 것; 및
(iii) 트랜잭션이 완료되는 것
으로 이루어진 리스트로부터 선택된 하나 이상을 포함한다.
다른 구성 예에서 제공한 이니시에이터 디바이스는:
데이터 처리 트랜잭션에 대한 트랜잭션 요구-이 트랜잭션 요구는, 적어도, 동일한 식별자를 갖는 트랜잭션 요구들의 세트의 각각에 대해 처리하는 애스펙트가 그 트랜잭션 요구들의 세트의 발행의 순서로 수행되도록 관련 식별자를 갖는다-를 발행하는 트랜잭션 발행회로를 구비하고;
상기 트랜잭션 발행회로는, 상기 관련 식별자가 하나보다 많은 동시 진행중 트랜잭션 요구와 관계하는지를 나타내기 위해 상기 관련 식별자와 지시자를 관련시키도록 구성되고,
상기 이니시에이터 디바이스는, 상기 지시자가 상기 관련 식별자가 하나의 동시 진행중 트랜잭션 요구에만 관계되었다는 것을 나타내도록 설정되었을 경우, 상기 관련 식별자에 관계하는 완료 확인응답의 수신에 응답하여, 다른 요구에 대한 상기 관련 식별자의 재사용을 허가한다.
다른 구성 예에서 제공한, 데이터 핸들링 트랜잭션 요구를 표현하는 데이터 신호는, 적어도, 동일한 식별자를 갖는 트랜잭션 요구들의 세트의 각각에 대해 처리하는 애스펙트가 그 트랜잭션들의 세트의 발행의 순서로 수행되어야 하는 식별자와, 식별자가 하나보다 많은 동시 진행중 트랜잭션 요구와 관계하는지를 나타내기 위해 이 식별자와 관련된 지시자를 포함한다.
다른 구성 예에서 제공한 방법은:
데이터 처리 트랜잭션에 대한 트랜잭션 요구-이 트랜잭션 요구는, 적어도, 동일한 식별자를 갖는 트랜잭션 요구들의 세트의 각각에 대해 처리하는 애스펙트가 그 트랜잭션 요구들의 세트의 발행의 순서로 수행되도록 관련 식별자를 갖는다-를 핸들링하는 단계; 및
상기 관련 식별자가 하나보다 많은 동시 진행중 트랜잭션 요구와 관계하는지를 나타내기 위해 상기 관련 식별자와 관련된 지시자의 상태를 검출하는 단계를 포함한다.
다른 구성 예에서 제공한 방법은:
데이터 처리 트랜잭션에 대한 트랜잭션 요구-이 트랜잭션 요구는, 적어도, 동일한 식별자를 갖는 트랜잭션 요구들의 세트의 각각에 대해 처리하는 애스펙트가 그 트랜잭션 요구들의 세트의 발행의 순서로 수행되도록 관련 식별자를 갖는다-를 발행하는 단계;
상기 관련 식별자가 하나보다 많은 동시 진행중 트랜잭션 요구와 관계하는지를 나타내기 위해 상기 관련 식별자와 지시자를 관련시키는 단계; 및
상기 지시자가 상기 관련 식별자가 하나의 동시 진행중 트랜잭션 요구에만 관계되었다는 것을 나타내도록 설정되었을 경우, 상기 관련 식별자에 관계하는 완료 확인응답의 수신에 응답하여, 다른 트랜잭션 요구에 대한 상기 관련 식별자의 재사용을 허가하는 단계를 포함한다.
본 기술의 또 다른 각각의 측면들 및 특징들은 첨부된 청구항들에 의해 기재되어 있다.
본 기술은, 아래의 첨부도면들에 도시된 것처럼 본 기술의 실시예들을 참조하여 예시로만 한층 더 설명하겠다:
도 1은 데이터 처리장치를 개략적으로 도시한 것이고;
도 2 및 3은 트랜잭션 핸들링 상황들의 예를 개략적으로 도시한 것이고;
도 4는 트랜잭션 핸들링 회로를 개략적으로 도시한 것이고;
도 5 및 6은 지시자 디바이스의 동작의 방법을 도시하는 개략적인 흐름도이고;
도 7 내지 9는 트랜잭션 핸들링 회로의 동작의 방법을 도시하는 개략적인 흐름도이고;
도 10은 트랜잭션 핸들링 회로를 개략적으로 도시한 것이고;
도 11은 이니시에이터 디바이스를 개략적으로 도시한 것이고;
도 12 및 13은 요약 방법을 도시하는 개략적인 흐름도다.
첨부도면들을 참조하여 실시예들을 설명하기 전에, 실시예들에 대해 아래에 설명한다.
일 실시예에서 제공하는 트랜잭션 핸들링 디바이스는:
데이터 처리 트랜잭션에 대한 트랜잭션 요구-이 트랜잭션 요구는, 적어도, 동일한 식별자를 갖는 트랜잭션 요구들의 세트의 각각에 대해 처리하는 애스펙트가 그 트랜잭션 요구들의 세트의 발행의 순서로 수행되도록 관련 식별자를 갖는다-를 핸들링하는 트랜잭션 핸들링 회로; 및
상기 관련 식별자가 하나보다 많은 동시 진행중 트랜잭션 요구와 관계하는지를 나타내기 위해 상기 관련 식별자와 관련된 지시자의 상태를 검출하는 검출회로를 구비한다.
상기 구성들의 예에서, 지시자는, 식별자가 하나보다 많은 동시 진행중 트랜잭션 요구와 관계하는지를 나타내도록 제공된다. 만약 아니면, 어떠한 리오더링 구성들도 알맞게 무시되거나 우회될 수 있는데, 그 이유는 하나보다 많은 동시 진행중 트랜잭션 요구와 관계하지 않는 트랜잭션 식별자에 의해 부과된 오더링 요구사항이 없기 때문이다.
트랜잭션 요구 핸들링에 적용 가능한 오더링 요구사항은, 처리 애스펙트가:
(i) 트랜잭션이 상기 트랜잭션의 목적지로 전달되는 것;
(ii) 트랜잭션에 대한 응답이 트랜잭션의 이니시에이터에 회신되는 것; 및
(iii) 트랜잭션이 완료되는 것(예를 들면, 그 트랜잭션에 관계하는 처리 전부가 수행되는 것)
으로 이루어진 리스트로부터 선택된 하나 이상을 포함하는 요구사항일 수 있다.
구성 예에서, (트랜잭션 핸들링 디바이스의 일부로서) 오더링 회로는, 동일한 식별자를 갖는 트랜잭션 요구들의 세트를 규정하는 데이터를 저장하는 버퍼회로와, 새롭게 수신된 트랜잭션과 관련된 식별자가 버퍼회로에서 데이터를 보유한 임의의 트랜잭션에 대한 식별자와 동일한지를 검출하는 비교기 회로를 구비하여도 된다. 예들에 있어서, 오더링 회로는, 그 트랜잭션들의 발행의 순서에 따라, 동일한 식별자를 갖고 버퍼회로에서 보유한 그 트랜잭션들을 규정하는 데이터를 출력하도록 구성된다.
구성 예에서, 버퍼회로는, 완료 확인응답이 수신되는 트랜잭션 식별자에 관계하는 버퍼링된 데이터를 제거하도록 구성되어도 된다.
리오더링은, 지시자가 관련 식별자가 하나의 동시 진행중 트랜잭션 요구에만 관계하는 것을 나타내도록 설정되는 것을 검출회로가 검출하는 트랜잭션 요구를 핸들링할 때, 트랜잭션 핸들링 회로가 오더링 회로를 우회하도록 구성된 구성들에 있어서, 식별자와 다른 동시 진행중 트랜잭션을 공유하지 않는 트랜잭션들의 경우에는 알맞게 회피될 수 있다. 다음에, 이것은 덜 강력한(회로를 덜 차지하는 공간 등의) 오더링 회로가 사용되게 하는데, 그 이유는 적어도 일부 트랜잭션이 오더링 회로를 우회할 수도 있기 때문이다.
다른 실시예에서 제공한 이니시에이터 디바이스는:
데이터 처리 트랜잭션에 대한 트랜잭션 요구-이 트랜잭션 요구는, 적어도, 동일한 식별자를 갖는 트랜잭션 요구들의 세트의 각각에 대해 처리하는 애스펙트가 그 트랜잭션 요구들의 세트의 발행의 순서로 수행되도록 관련 식별자를 갖는다-를 발행하는 트랜잭션 발행회로를 구비하고;
상기 트랜잭션 발행회로는, 상기 관련 식별자가 하나보다 많은 동시 진행중 트랜잭션 요구와 관계하는지를 나타내기 위해 상기 관련 식별자와 지시자를 관련시키도록 구성된다.
구성 예에서, 트랜잭션 식별자는, 그 식별자를 갖는 조기의 트랜잭션이 완료되고 (예를 들면) 이니시에이터에 확인응답된 조기의 트랜잭션의 완료를 가지면, 재사용되어도 된다(그리고 계속하여 다른 동시 진행중 트랜잭션에 적용하지 않는다고 생각되어도 된다). 이 때문에, 구성 예에서, 상기 디바이스는, 지시자가 관련 식별자가 하나의 동시 진행중 트랜잭션 요구에만 관계되었다는 것을 나타내도록 설정되었을 경우, 상기 관련 식별자에 관계하는 완료 확인응답의 수신에 응답하여, 다른 요구에 대한 상기 관련 식별자의 재사용을 허가하는 것이다.
유일한/유일하지 않은 표시만이 적어도 실시예들에서 필요하기 때문에, 지시자는 1비트 지시자이어도 된다.
다른 실시예에서 제공한 데이터 처리장치는:
각각 상기 기재된 것과 같은 하나 이상의 이니시에이터 디바이스들;
각각 상기 트랜잭션 요구를 핸들링하는 트랜잭션 핸들링 회로 및 상기 관련 식별자가 하나보다 많은 동시 진행중 트랜잭션 요구와 관계하는지를 나타내기 위해 상기 관련 식별자와 관련된 지시자의 상태를 검출하는 검출회로를 구비하는 하나 이상의 트랜잭션 핸들링 디바이스들; 및
상기 하나 이상의 이니시에이터 디바이스들을 상기 하나 이상의 트랜잭션 핸들링 디바이스들에 접속하는 인터커넥트 회로를 구비한다.
트랜잭션의 핸들링에 있어서 각종 스테이지들에서 (유일한 식별자들일 경우에) 리오더링이 회피되게 하기 위해서, 구성 예에서, 상기 장치는 상기 지시자를 상기 관련 식별자를 포함하는 트랜잭션 요구들 전부와 관련시키도록 구성된다.
다른 실시예에서 제공한 데이터 핸들링 트랜잭션 요구를 표현하는 데이터 신호는, 적어도, 동일한 식별자를 갖는 트랜잭션 요구들의 세트의 각각에 대해 처리하는 애스펙트가 그 트랜잭션들의 세트의 발행의 순서로 수행되어야 하는 식별자와, 식별자가 하나보다 많은 동시 진행중 트랜잭션 요구와 관계하는지를 나타내기 위해 이 식별자와 관련된 지시자를, 포함한다.
다른 실시예에서 제공한 방법은:
데이터 처리 트랜잭션에 대한 트랜잭션 요구-이 트랜잭션 요구는, 적어도, 동일한 식별자를 갖는 트랜잭션 요구들의 세트의 각각에 대해 처리하는 애스펙트가 그 트랜잭션 요구들의 세트의 발행의 순서로 수행되도록 관련 식별자를 갖는다-를 핸들링하는 단계; 및
상기 관련 식별자가 하나보다 많은 동시 진행중 트랜잭션 요구와 관계하는지를 나타내기 위해 상기 관련 식별자와 관련된 지시자의 상태를 검출하는 단계를 포함한다.
이 단계들은 병렬로 또는 암시적으로 실시되어도 된다는 것을 주목한다. 예를 들면, 상기 이시니에이터에서 ID들의 세트는, 이니시에이터의 동작의 그 밖의 상세내용 때문에 암시적으로 유일하다고 알려질 수도 있고; 즉, 이 기능성을 포함하기 위해 2개의 별도로 또는 직렬로 구현된 단계들일 필요가 없을 것이다.
다른 실시예에서 제공한 방법은:
데이터 처리 트랜잭션에 대한 트랜잭션 요구-이 트랜잭션 요구는, 적어도, 동일한 식별자를 갖는 트랜잭션 요구들의 세트의 각각에 대해 처리하는 애스펙트가 그 트랜잭션 요구들의 세트의 발행의 순서로 수행되도록 관련 식별자를 갖는다-를 발행하는 단계; 및
상기 관련 식별자가 하나보다 많은 동시 진행중 트랜잭션 요구와 관계하는지를 나타내기 위해 상기 관련 식별자와 지시자를 관련시키는 단계를 포함한다.
도면들에 있어서, 도 1은 다수의 마스터 또는 트랜잭션 개시 디바이스들(이와는 달리, 이니시에이터들이라고 함)(100, 110, 120, 130)을 구비하는 데이터 처리 시스템을 개략적으로 도시한 것이다. 이니시에이터들(100, 110)은, AXI(Advanced Extensible Interface) 프로토콜에 따라 동작한다. 이니시에이터들(120, 130)은, CHI(Coherent Hub Interface) 프로토콜에 따라 동작한다.
이니시에이터들(100, 110)은 인터커넥트(140)에 접속되고, 이니시에이터들(120, 130)은 캐시 코히어런트 인터커넥트(150)에 접속된다.
인터커넥트(140, 150)는, 인터커넥트(160)를 거쳐 메인 메모리, 메인 메모리 등에 액세스하는 동적 메모리 제어기 등의 각종 슬레이브 노드들(170, 180)에 접속된다.
도 1의 데이터 처리장치는, 소위 시스템 온칩(SoC)나 네트워크 온칩(NoC) 시스템으로서 구현될 수 있다.
동작상, 이니시에이터들(100...130)은, 데이터 처리 동작들에 관계하는 소위 트랜잭션 요구들을 발행한다. 트랜잭션 요구의 일례는, 특별한 메모리 어드레스나 다양한 메모리 어드레스들로부터 데이터를 판독하기 위한 요구다. 다른 예는, 데이터를 메모리 어드레스나 다양한 메모리 어드레스들에 기록하기 위한 요구다. 그 밖의 트랜잭션 요구들은, 상기 장치에서의 특별한 노드에 보유된 특정한 데이터의 복사본을 무효화하는 것 등 등의 문제에 관계하여도 된다.
이니시에이터들은, 트랜잭션 식별자와 각 트랜잭션이 관련되어 있다. 일부의 인스턴스들에서, 트랜잭션 식별자는, "유일"할 수 있다. "유일"이란, 상기 장치 전체에 걸쳐서 유일함을 암시하지도 않고, 시간 전체에 걸쳐 유일함을 암시하지도 않는다. 대신에, 유일함은, 그 식별자를 갖는 그 특별한 이니시에이터로부터 단지 하나의 동시 진행중 트랜잭션에 불과한 것으로서 규정된다. 그래서, 식별자는 비록 다른 이니시에이터가 동일한 식별자를 사용할지라도 유일할 수 있고, 식별자는, 그 식별자를 갖는 단지 하나의 동시 진행중 트랜잭션만이 있는 경우, 동일한 이니시에이터에 의해 다수회 사용됨에도 불구하고 그래도 유일하다고 생각될 수 있다, 말하자면, 특별한 식별자를 갖는 트랜잭션이 완료되어 있고 그것의 완료가 이니시에이터에 역으로 확인응답되어 있다면, 동일한 식별자는 그것의 유일한 상태를 손상시키지 않고 이후의 트랜잭션에서 사용될 수 있다.
이니시에이터에서 발행한 데이터 처리 트랜잭션은, 각종 인터커넥트들을 거쳐 슬레이브 노드들(170, 180) 중 하나 등의 목적지에 전달된다. 상기 트랜잭션에 관계하는 처리가, 수행되고, 그 트랜잭션의 이니시에이터에 보내진 적절한 응답이다. 트랜잭션에 관계하는 처리의 끝에서, 완료 확인응답이 상기 이니시에이터에 보내진다.
CHI 이니시에이터들(120, 130)은, CHI 프로토콜에 의해, 항상 상술한 것과 같은 유일한 식별자들을 사용하는데 결부되어 있다.
그렇지만, 상기 AXI 이니시에이터들(100, 110)은, 유일한 식별자들을 사용할 수 있거나, 동일한 식별자를 갖는 2개 이상의 트랜잭션들의 세트를 발행할 수 있다. 이러한 구성은, 상기 AXI 프로토콜 및 각종 그 밖의 트랜잭션 핸들링 프로토콜내에서 허가된다. 그렇지만, 식별자를 공유하는 상기와 같은 트랜잭션들의 세트에 적용된 조건은, 적어도, 동일한 식별자를 갖는 트랜잭션 요구들의 세트의 각각에 대해 처리하는 애스펙트가 그 트랜잭션들의 세트의 발행 순서로 수행되어야 한다는 것이다. 이러한 처리의 애스펙트의 예들은:
· 트랜잭션이 상기 트랜잭션의 목적지(이를테면, 슬레이브 노드)로 전달되는 것;
· 트랜잭션에 대한 응답이 트랜잭션의 이니시에이터에 회신되는 것; 및
· 트랜잭션이 완료되는 것(예를 들면, 그 트랜잭션에 관계하는 처리 전부가 완료되는 것이 상기 슬레이브 노드에서 처리되는 것; 기록일 경우의 예에서, 기록의 결과는 임의의 이후의 트랜잭션에 의해 동일한 어드레스에 대해 식별 가능하다)
으로 이루어진 리스트로부터 선택된 하나 이상이다.
이 조건들 중 하나보다 많은 조건이 적용 가능하다는 것을 알 것이다.
트랜잭션 식별자를 공유하는 트랜잭션 요구들의 적어도 부분적으로 오더링된 처리에 대한 요구사항을 유념하면, 소위 리오더링 구성은, 도 1의 상기 장치내에 그 오더링 요구사항이 만족되는 것을 보장하도록 제공될 수 있다.
그래서, 그 오더링 제약을 만족시키기 위해서, 동일한 식별자를 갖는 트랜잭션들이 그들을 리오더할 수도 있는 목적지들에 보내질 때, 일부 구성 예들에 있어서 그들은 일시 중지되거나 상기 시스템에는 하나 이상의 리오더 버퍼들을 구비하고 있다. 이러한 예방 조치들은 상기 프로토콜의 오더링 요구사항들을 만족시키고, 또 관련 데드락 조건들을 피하려고 노력하는데 적절하다.
그러므로, 도 1은, 하나 이상의 트랜잭션 핸들링 디바이스들; 하나 이상의 이니시에이터 디바이스들; 및 하나 이상의 이니시에이터들을 하나 이상의 트랜잭션 핸들링 디바이스들에 접속하는 인터커넥트 회로를 구비하는, 데이터 처리장치의 일례를 제공한다.
트랜잭션 핸들링 디바이스가 슬레이브 디바이스일 수 있다는 것을 주목한다. 하지만 보다 일반적으로는, 그것은 이니시에이터의 하류측의 디바이스이다. 그래서, 인터커넥트, 또는 인터커넥트의 일부는, 트랜잭션 핸들링 디바이스일 수 있다.
도 2는 리오더링을 요구할 수도 있는 상황을 개략적으로 도시한 것이다. 마스터 또는 이니시에이터 디바이스(200)는, 트랜잭션 식별자를 공유하는 트랜잭션의 세트를 한 쌍의 슬레이브 디바이스들(210, 220)에 보낸다. 달리 말하면, 식별자를 공유하는 트랜잭션 요구들의 세트 중 일부는, 본 예에서 상기 슬레이브 디바이스 210에 의해 핸들링되고, 일부는 슬레이브 디바이스 220에 의해 핸들링된다. 그 2개의 슬레이브 디바이스로부터 수신된 응답들은, 그들의 타이밍 및/또는 오더링의 관점에서 서로 상관없을 수도 있다. 그래서, 오더링 요구사항을 따르기 위해서, 로직(230)을 사용하여 리오더링을 제공한다.
상기 로직(230)은, 이미 진척중 트랜잭션들에 관계하는 식별자들을 추적하는 기능, 그 식별자들과 새롭게 수신된 트랜잭션 요구를 비교하는 기능, 일부의 인스턴스들에서는 트랜잭션들의 결과들이 적절한 순서로 상기 이니시에이터에 역으로 발행될 수 있을 때까지 일시적으로 버퍼링될 수 있도록 리오더 버퍼를 제공하는 기능, 및 일부의 인스턴스들에서는 상기 슬레이브 디바이스들(210, 220)로부터의 응답들을 일시 중지시켜야 하는 것에 의해 생긴 데드락들을 피하기 위해서 본 예에서는 상기 슬레이브 디바이스들(210, 220)에 트랜잭션들을 전송할 수 있는 순서를 다시 제어하는 CDAS(Cyclic Dependency Avoidance Scheme)에 관계하는 회로를 제공하는 기능을 제공한다.
이러한 발행들이 일어날 수 있는 다른 구성 예가 도 3에 도시되어 있고, 여기서 AXI-호환 마스터나 이니시에이터(300)는 트랜잭션 요구들을 CHI 호환 슬레이브 또는 다른 도메인(310)에 발행중이다. 또, (예를 들면, 인터커넥트 회로의 일부로서) 상기 마스터 디바이스와 상기 슬레이브 디바이스와의 사이에 로직(320)은, 상술한 것처럼 또한 상기 2개의 프로토콜 사이의 브릿지로서 작용하도록 상기 로직(230)의 기능을 구비하고 있다.
본 기술의 예들은, 그 식별자가 하나보다 많은 동시 진행중 트랜잭션 요구에 관계하는지를 나타내기 위해 트랜잭션 식별자와 관련된 지시자를 제공한다.
일부의 예들에서, 상기 지시자는, 1비트 지시자이어도 된다(그 이유는 단지 유일한/유일하지 않은 표시가 요구되기 때문이다). 상기 지시자가 이미 상기 식별자(또는 다른 데이터 필드)를 전달하는데 사용된 동일한 접속상에서 다중화될 수 있긴 하지만, 속도와 편리성을 위해 상기 지시자는, 일부의 구성 예에서, 추가의 접속에 의해 전달될 수 있다. 지시자가 이니시에이터로부터 리오더링 능력을 갖는 제1 하류측 스테이지에 제공될 수 있을 뿐이긴 하지만, 구성 예에서 그 지시자는 상기 식별자를 전달하는 (응답들 및 완료 확인응답들 등을 포함하는) 트랜잭션 메시지들 전부와 관련된다.
상기 식별자와 지시자의 포맷의 일례는 다음과 같다.
지시자 식별자
(1비트) (6비트)
0b1 0b101010
이러한 정보를 전달하는 트랜잭션 관련 메시지는 데이터 핸들링 트랜잭션 요구를 표현하는 데이터 신호의 일례를 제공하고, 이 데이터 신호는, 적어도, 동일한 식별자를 갖는 트랜잭션 요구들의 세트의 각각에 대해 처리하는 애스펙트가 그 트랜잭션들의 세트의 발행의 순서로 수행되어야 하는 식별자와, 식별자가 하나보다 많은 동시 진행중 트랜잭션 요구와 관계하는지를 나타내기 위해 이 식별자와 관련된 지시자를, 포함한다.
그 지시자를 제공하는 기술들은 후술된다. 먼저, 도 4는 트랜잭션 오더링 기능을 제공하는 상기 로직(230, 320)의 일례를 개략적으로 나타낸 것이다.
도 4에 있어서, 상기 회로(400)는, 트랜잭션들을 이들의 관련 지시자들을 갖는(응답 출력으로서도 기능하는-이하 설명됨) 트랜잭션 입력(410)에서 수신한다. 지시자 검출기(420)로서 작용하는 검출회로는, 수신된 트랜잭션 요구와 관련된 상기 지시자가 상술한 것처럼 상기 식별자가 유일하다는 것을 나타내는지를 검출한다. 상기 트랜잭션 식별자가 유일하면, 리오더링은 요구되지 않고 상기 트랜잭션은 우회 경로(430)를 거쳐 (후술하는, 응답 입력으로서도 기능하는) 트랜잭션 출력(440)에 전송될 수 있다.
그렇지만, 상기 식별자가 (지시자에 의해 나타낸 것처럼) 유일하지 않으면, 식별자 및/또는 리오더 버퍼(450), 검출기 및 오더링 로직(460) 및 CDAS 회로(470)를 구비하는 회로는, 상기 트랜잭션의 정확한 오더링을 핸들링하도록 제공된다. 이 유닛들의 동작을 아래 상세히 설명하겠다. 상기 트랜잭션 요구는, 그 트랜잭션 출력(440)에 의해 출력된다.
상기 목적지 디바이스에 의해 상기 트랜잭션 요구를 처리하는 것에 응답하여, 응답이 발생되어 이니시에이터에 역으로 건네진다. 그 응답은, 판독 요구에 응답하여 제공된 데이터를 포함하여도 된다. 응답은, 처리 동작이 실시되는 것을 나타내는 완료 확인응답을 포함하여도 된다.
응답 입력(440)은, (도면의 명백을 기하기 위해 도 4에 따로따로 도시되지만, 상기 지시자 검출기(420)와 같은 로직에 의해 구현되어도 되는) 지시자 검출기(445)에 대한 수신된 응답을 참조한다. 그 지시자가 응답이 유일한 식별자를 갖는 트랜잭션 요구에 관계하는 것을 나타내면, 그 응답은 출력(410)을 위해 상기 우회 경로(430)에 의해 건네질 수 있다. 그렇지만, 상기 지시자가 그 응답이 유일하지 않은 식별자를 갖는 트랜잭션 요구에 관계하는 것을 나타내면, 그 응답은, 출력되기 전에 아래에 설명되는 방식으로 핸들링하기 위한 버퍼(450), 검출기/오더링 로직(460), CDAS(470)에 건네져, (구성 예에 있어서) 그 트랜잭션들의 (해당 이니시에이터에 의해) 발행의 순서에 따라, 동일한 식별자를 갖는 상기 버퍼회로에서 보유한 그 트랜잭션들을 규정하는 데이터를 출력한다.
그러므로, 도 4는, 동일한 식별자를 갖는 트랜잭션 요구들의 세트를 규정하는 데이터를 저장하는 버퍼회로(450); 및 새롭게 수신된 트랜잭션과 관련된 식별자가 버퍼회로에서 데이터를 보유한 임의의 트랜잭션에 대한 식별자와 동일한지를 검출하는 비교기 회로(460)를 구비하는, 오더링 회로(450, 460)의 일례를 제공한다. 트랜잭션 핸들링 회로(400)는, 지시자가 관련 식별자가 하나의 동시 진행중 트랜잭션 요구에만 관계하는 것을 나타내도록 설정되는 것을 검출회로가 검출하는 트랜잭션 요구를 핸들링할 때, (예를 들면, 우회 경로(430)에 의해) 오더링 회로를 우회하도록 구성된다.
도 5는 트랜잭션 이니시에이터에서의 동작을 도시하는 개략적인 흐름도이다.
단계 500에서, 상기 이니시에이터는, 트랜잭션이 발행되게 확립하고 식별자를 그 트랜잭션에 할당한다.
단계 510에서, 상기 이니시에이터는, 식별자가 유일한지, 말하자면 식별자가 임의의 다른 현재 진행중 트랜잭션에 관해서 사용되지 않는지와 그 트랜잭션 자체가 동일한 식별자가 재사용될 필요가 있는 트랜잭션들의 세트의 하나가 아닌지를 판정한다.
이 단계들은 병렬로 또는 암시적으로 실시되어도 된다는 것을 주목한다. 예를 들면, 상기 이니시에이터에서 ID들의 세트는, 이니시에이터의 동작의 그 밖의 상세내용 때문에 암시적으로 유일하다고 알려질 수도 있고; 즉, 이 기능성을 포함하기 위해 2개의 별도로 또는 직렬로 구현된 단계들일 필요가 없을 것이다.
이니시에이터는, 상기 트랜잭션을 발생하므로 식별자가 유일한 방식으로 사용중인지 아닌지를 인식한다. 예를 들면, 트랜잭션은, 상기 이니시에이터에서 라인 필 버퍼들이나 그 밖의 캐시 메모리 영역들의 그룹에 또는 이 그룹으로부터 데이터 전송을 핸들링하기 위해 트랜잭션들의 그룹 중 하나이어도 되고, 이 경우에 상기 이니시에이터는, 그 트랜잭션들이 공유 식별자에 할당중이므로, 그 식별자가 다수의 트랜잭션 요구들에 관해서 유일하지 않게 사용중이라는 것을 인식한다. 다른 예에서, 상기 이니시에이터는, 트랜잭션들의 세트나 스트림을 전부가 동일한 식별자들을 갖는 요구들로서 전송되도록 제공하는 다른 도메인에 접속되거나 이 도메인과 관련되어도 된다. 다른 예에서, 상기 트랜잭션들은, 상기 이니시에이터 디바이스가 임의의 순서로 트랜잭션 응답들을 수신하는 리오더링 능력(또는 충분한 능력)을 갖지 않아서 동일한 식별자를 사용하여 응답들이 기지의 순서로 수신되도록 보장하는 것일 수도 있다.
단계 520에서, 상기 식별자가 유일하다고 검출되고 나서 제어가 단계 530으로 진행하여 그 지시자는 유일함을 나타내도록 설정된다. 유일하지 않으면, 제어는 단계 540으로 진행하여 그 지시자가 유일함의 부족을 나타내도록 설정된다.
도 6은 이니시에이터에서의 동작들을 나타내는 개략적인 흐름도로, 단계 600에서, 그 이니시에이터는 특별한 식별자에 관해서 완료 확인응답을 수신하고, 단계 610에서는 유일한 식별자로서 그 식별자의 재사용을 허가한다. 이것은, 지시자가 관련 식별자가 하나의 동시 진행중 트랜잭션 요구에만 관계되었다는 것을 나타내도록 설정되었을 경우, 상기 관련 식별자에 관계하는 완료 확인응답의 수신에 응답하여, 다른 요구에 대한 상기 관련 식별자의 재사용을 허가하는 상기 이니시에이터 디바이스의 일례다.
도 7은 도 4의 회로에 관계하는 개략적인 흐름도다. 도 7은 (도 4에 도시된 것처럼 대략 하향 경로) 새롭게 수신된 트랜잭션의 핸들링에 관계한다. 후술하는 도 8 및 9는 (도 4에 도시된 것처럼 대략 상향 경로) 새롭게 수신된 트랜잭션 응답의 핸들링에 관계한다.
단계 700에서, 새로운 트랜잭션 요구가 상기 입력(410)에서 수신된다.
단계 710에서, 상기 검출기(420)는 상기 지시자를 검사하고, 단계 72에서는 그 지시자가 유일함을 나타내도록 설정되면, 그 트랜잭션은 ("yes" 분기(725)로 나타낸 것처럼) 우회 경로(430)를 거쳐 라우팅되고, 단계 730에서 그 트랜잭션은 상기 출력(440)에 의해 발행된다.
유일한 식별자가 유일함을 나타내도록 설정되지 않으면(또는 비유일함을 나타내도록 설정되면), 제어는 상기 버퍼(450), 상기 로직(460) 및 적절한 경우, 상기 CDAS(470)에 의해 구현된 단계 740에 진행한다. 단계 740에서, 그 새롭게 수신된 트랜잭션 요구의 식별자는 상기 버퍼(450)에서 보유한 현재 진행중 트랜잭션들에 대한 식별자들의 추적 리스트와 비교된다. 그 식별자가 이미 그 리스트에 존재하면, 그 새롭게 수신된 트랜잭션을 규정하는 데이터는, 그 새롭게 수신된 트랜잭션이 이미 리스트에서의 그 트랜잭션들 뒤에 수신되어 있다는 것을 나타내기 위해, 그 리스트에서의 하나 이상의 엔트리들에 관하여 오더링된 위치에서 그 리스트에 추가된다. 식별자가 이미 상기 리스트에 없는 경우, 그 트랜잭션을 규정하는 데이터는 그 리스트에 추가된다. 그 리스트에서의 엔트리들은, 상기 버퍼회로의 일례가 완료 확인응답이 수신되는 트랜잭션 식별자에 관계하는 버퍼링된 데이터를 제거하도록 구성되므로, 이후에 완료 확인응답이 그 식별자에 관계하여 수신될 때까지 지속된다. 그렇지만, 리오더 버퍼들을 사용한 구성에 있어서, 상기 엔트리는 그 완료 확인응답이 상기 버퍼로부터 수신되고 나서 보내질 때까지 지속되어도 된다는 것을 주목한다. 이것은, 그것이 잘못된 순서로 수신되어서 보내지게 유효할 때까지 추적된 상태를 유지할 필요가 있을 수도 있기 때문이다.
어떠한 리소스 충돌이나 오더링 발행이 있을 경우에도, 단계 750에서 트랜잭션은, 상기 단계 750의 "no"의 결과로서, 상기 트랜잭션이 단계 760의 리소스를 할당 및 추적함으로써 발행하기 위해서 준비될 때까지 일시 중지된다. 그 후, 그 트랜잭션이 발행되는 상기 단계 730에 제어가 진행된다. 리소스 충돌이 있는 경우, 그 트랜잭션 요구는 그 충돌이 (예를 들면, 완료되는 동일한 식별자를 갖는 조기의 수신된 트랜잭션에 의해) 해소될 때까지 일시 중지된다. 일시 중지의 대안으로서, 상기 요구는 (상기 버퍼(450)에 의해 구현되어도 되는) 리오더 버퍼에 추가될 수 있다. 리오더 버퍼는, 단지 상기 요구를 규정하는 데이터를 저장하는 대신에, 그 요구 자체를 저장한다. 그래서, 요구를 제공하는 상기 노드로부터 그 요구의 수신 및 처리를 일시 중지할 필요가 없고; 그 요구는, 그 요구를 전송하는 적절한 스테이지까지 상기 리오더 버퍼에 의해 수신되고 나서 저장될 수 있다.
도 8은 유사한 상황이지만 트랜잭션의 목적이었던 슬레이브 또는 다른 노드로부터 (단계 440에서) 수신된 트랜잭션 응답에 관한 것이다.
단계 810에서는, 상기 지시자 필드를 검사하여 그 식별자가 상술한 것처럼 유일한지를 검출한다. 단계 820에서, 상기 지시자가 유일하면("yes" 분기(825)로서), (상기 우회 경로(430)에 의해) 제어가 단계 830으로 진행되어, 그 응답이 상기 이니시에이터를 향해 역으로 발행된다.
그렇지만, 상기 단계 820에서의 결과가 "no"이면, 제어가 단계 840으로 진행되어, 상기 트랜잭션 응답의 식별자가 상기 버퍼(450)에서 보유한 추적 리스트와 비교된다. 단계 850에서, 오더링 요구사항이 충족되면(예를 들면, 상기 응답이 그 밖의 응답들에 대해 정확한 시퀀스에서 수신되어 있거나, (이 특별한 예에서) 응답들의 수신의 순서에 대한 오더링 요구사항이 없으면), 제어가 단계 860으로 진행되어, 상기 트랜잭션에서 사용한 리소스들은 할당해제되고 언링크되고 그 응답은 단계 830에서 발행된다. 그렇지만, 상기 단계 850에서의 결과가 "no"이면, 제어는, 상기 오더링 요구사항이 충족될 때까지 일시 중지 상황에서 상기 단계 840에 역으로 진행된다. 즉, 상기 응답은, 현재의 응답보다 조기의 상기 이니시에이터에 의해 수신되는 (상기 오더링 요구사항에 의해) 요구되는 응답들이 이용 가능할 때까지, 일시 중지된다.
도 9는 단계 850의 "no" 결과에서 상기 트랜잭션을 일시 중지시키는 대안을 개략적으로 도시한 것이다. 도 9에 도시된 단계들은, 도 8의 단계 850을, 동일한 상태를 유지하는 도 8의 나머지로 대체한다.
단계 840으로부터 제어가 진행되어, 단계 900에서, 상기 응답은, (그 버퍼(450)에 의해 구현되어도 되는) 리오더 버퍼에 추가된다. 리오더 버퍼는, 단지 상기 응답을 규정하는 데이터를 저장하는 대신에, 그 응답 자체를 저장한다. 그래서, 응답을 제공하는 상기 노드로부터 그 응답의 수신 및 처리를 일시 중지할 필요가 없고; 그 응답은, 그 응답을 전송하는 적절한 스테이지까지 상기 리오더 버퍼에 의해 수신되고 나서 저장될 수 있다.
단계 910에서, ID 추적 리스트는, 단계 920에서 트랜잭션 응답이 발행되게 유효한지를 검출하도록, 참고된다. 그 응답이 "no"이면 제어가 역으로 상기 단계 910에 진행되는 반면에, 그 응답이 "yes"이면 제어가 단계 860으로 진행된다.
도 10은, 데이터 처리 트랜잭션에 대한 트랜잭션 요구-이 트랜잭션 요구는, 적어도, 동일한 식별자를 갖는 트랜잭션 요구들의 세트의 각각에 대해 처리하는 애스펙트가 그 트랜잭션 요구들의 세트의 발행의 순서로 수행되도록 관련 식별자를 갖는다-를 핸들링하는 트랜잭션 핸들링 회로(1000); 및 상기 관련 식별자가 하나보다 많은 동시 진행중 트랜잭션 요구와 관계하는지를 나타내기 위해 상기 관련 식별자와 관련된 지시자의 상태를 검출하는 검출회로(1010)를 구비하는, 트랜잭션 핸들링 디바이스의 요약 실시예를 개략적으로 도시한 것이다.
도 11은, 데이터 처리 트랜잭션에 대한 트랜잭션 요구-이 트랜잭션 요구는, 적어도, 동일한 식별자를 갖는 트랜잭션 요구들의 세트의 각각에 대해 처리하는 애스펙트가 그 트랜잭션 요구들의 세트의 발행의 순서로 수행되도록 관련 식별자를 갖는다-를 발행하는 트랜잭션 발행회로(1100)를 구비하는, 이니시에이터 디바이스의 요약 실시예를 개략적으로 도시한 것이고, 상기 트랜잭션 발행회로는, 상기 관련 식별자가 하나보다 많은 동시 진행중 트랜잭션 요구와 관계하는지를 나타내기 위해 상기 관련 식별자와 지시자를 관련시키도록 구성된다.
도 12는,
(단계 1200에서) 데이터 처리 트랜잭션에 대한 트랜잭션 요구-이 트랜잭션 요구는, 적어도, 동일한 식별자를 갖는 트랜잭션 요구들의 세트의 각각에 대해 처리하는 애스펙트가 그 트랜잭션 요구들의 세트의 발행의 순서로 수행되도록 관련 식별자를 갖는다-를 핸들링하는 단계; 및
(단계 1210에서) 상기 관련 식별자가 하나보다 많은 동시 진행중 트랜잭션 요구와 관계하는지를 나타내기 위해 상기 관련 식별자와 관련된 관련된 지시자의 상태를 검출하는 단계를 포함하는, 방법을 도시하는 개략적인 흐름도다.
이 단계들은 병렬로 또는 암시적으로 실시되어도 된다는 것을 주목한다. 예를 들면, 상기 이니시에이터에서의 ID들의 세트는, 상기 이니시에이터의 동작의 그 밖의 상세내용 때문에 유일하다고 암시적으로 공지되어도 되고; 즉 이 기능성을 포함하기 위해 2개의 별도로 또는 직렬로 구현된 단계들이 필요가 없을 것이다.
도 13은,
(단계 1300에서) 데이터 처리 트랜잭션에 대한 트랜잭션 요구-이 트랜잭션 요구는, 적어도, 동일한 식별자를 갖는 트랜잭션 요구들의 세트의 각각에 대해 처리하는 애스펙트가 그 트랜잭션 요구들의 세트의 발행의 순서로 수행되도록 관련 식별자를 갖는다-를 발행하는 단계; 및
(단계 1310에서) 상기 관련 식별자가 하나보다 많은 동시 진행중 트랜잭션 요구와 관계하는지를 나타내기 위해 상기 관련 식별자와 지시자를 관련시키는 단계를 포함하는, 방법을 도시하는 개략적인 흐름도다.
역호환성을 제공하는 기술의 일례로서, 이 기술들을 구현하지 않는 AXI 이니시에이터(또는 이전부터 존재하던 서브시스템)가 이 기술들을 사용하는 인터커넥트 또는 슬레이브에 접속될 때, 상기 지시자는, 정확한 오더링 작용을 항상 주는 "유일하지 않음"을 나타내도록 설정(또는 고정 배선)될 수 있다. 시스템 인티그레이터는 이 기술들을 사용하지 않는 상기 AXI 이니시에이터나 서브시스템이 항상 유일한 ID들을 발생한다는 이전의 지식을 갖는다면, 상기 지시자는, 상기 트랜잭션들을 갖추게 되는 것이라기 보다는, 이 기술들을 사용하는 상기 인터커넥트나 슬레이브에의 상기 입력에서 "유일한" 것으로 설정 또는 고정 배선될 수 있다.
구성 예에서, 본 기술들은, 집적회로 구현에서의 회로 면적을 절감하는데 기여할 수 있다. 시스템 아키텍트가 상기 마스터들의 특성들, 특히 그들이 유일한 ID들을 사용하지 않는 트랜잭션들에 대해 얼마나 대역폭을 필요로 하는지에 관해 약간의 지식을 갖는 경우에, 이것이 사실일 수 있다. 디자인 툴은, 이 결정에 도움이 될 수도 있다. 예를 들면, 상기 디자인 툴은, (예를 들면, 모델로부터 또는 사양의 형태로서 상기 디자인 툴에 직접 입력된) 마스터의 요구사항들 및/또는 유일한 ID 작용에 대한 입력을 취하고, 이 정보를 사용하여 오더링 회로의 보다 최적화 사이즈, 또는 오더링 회로의 존재를 구성할 수도 있다.
본 출원에서, "...하도록 구성된"의 단어는, 장치의 요소가 상기 명시된 동작을 실시할 수 있는 구성을 갖는다는 것을 의미하는데 사용된다. 본 문맥에서, "구성"은, 하드웨어 또는 소프트웨어의 상호연결의 배치 또는 방식을 의미한다. 예를 들면, 상기 장치는 상기 명시된 동작을 제공하는 전용 하드웨어를 가져도 되거나, 프로세서 또는 다른 처리 디바이스(이를테면, 상술한 것과 같은 처리소자)는 그 기능을 행하도록 프로그래밍되어도 된다. "하도록 구성된"은, 상기 장치 요소가 임의의 방식으로 상기 명시된 연산을 제공하기 위해서 변경될 필요가 있다는 것을 암시하지는 않는다.
여기서는 본 발명의 실시예들을 첨부도면을 참조하여 상세히 설명하였지만, 본 발명은 구체적인 실시예들에 한정되지 않고, 첨부된 청구항에서 기재된 것과 같은 본 발명의 범위 및 사상으로부터 벗어나지 않고 당업자가 변경, 부가 및 변형을 여러 가지로 실시할 수 있다는 것을 알 수 있다. 예를 들면, 본 발명의 범위로부터 벗어나지 않고 종속항의 특징들과 독립항의 특징들을 여러 가지로 조합할 수 있다.

Claims (22)

  1. 데이터 처리 트랜잭션에 대한 트랜잭션 요구-이 트랜잭션 요구는, 적어도, 동일한 식별자를 갖는 트랜잭션 요구들의 세트의 각각에 대해 처리하는 애스펙트가 그 트랜잭션 요구들의 세트의 발행의 순서로 수행되도록 관련 식별자를 갖는다-를 핸들링하는 트랜잭션 핸들링 회로; 및
    상기 관련 식별자가 하나보다 많은 동시 진행중 트랜잭션 요구와 관계하는지를 나타내기 위해 상기 관련 식별자와 관련된 지시자의 상태를 검출하는 검출회로를 구비하고,
    상기 처리하는 애스펙트는:
    (i) 트랜잭션이 상기 트랜잭션의 목적지로 전달되는 것;
    (ii) 트랜잭션에 대한 응답이 트랜잭션의 이니시에이터에 회신되는 것; 및
    (iii) 트랜잭션이 완료되는 것
    으로 이루어진 리스트로부터 선택된 하나 이상을 포함하는, 트랜잭션 핸들링 디바이스.
  2. 삭제
  3. 데이터 처리 트랜잭션에 대한 트랜잭션 요구-이 트랜잭션 요구는, 적어도, 동일한 식별자를 갖는 트랜잭션 요구들의 세트의 각각에 대해 처리하는 애스펙트가 그 트랜잭션 요구들의 세트의 발행의 순서로 수행되도록 관련 식별자를 갖는다-를 핸들링하는 트랜잭션 핸들링 회로;
    상기 관련 식별자가 하나보다 많은 동시 진행중 트랜잭션 요구와 관계하는지를 나타내기 위해 상기 관련 식별자와 관련된 지시자의 상태를 검출하는 검출회로; 및
    오더링 회로를 구비하고, 이 오더링 회로는:
    동일한 식별자를 갖는 트랜잭션 요구들의 세트를 규정하는 데이터를 저장하는 버퍼회로; 및
    새롭게 수신된 트랜잭션과 관련된 식별자가 버퍼회로에서 데이터를 보유한 임의의 트랜잭션에 대한 식별자와 동일한지를 검출하는 비교기 회로를 구비하는, 트랜잭션 핸들링 디바이스.
  4. 제 3 항에 있어서,
    상기 오더링 회로는, 그 트랜잭션들의 발행의 순서에 따라, 동일한 식별자를 갖고 상기 버퍼회로에서 보유한 그 트랜잭션들을 규정하는 데이터를 출력하도록 구성되는, 트랜잭션 핸들링 디바이스.
  5. 제 3 항 또는 제 4 항에 있어서,
    상기 버퍼회로는, 완료 확인응답이 수신되는 트랜잭션 식별자에 관계하는 버퍼링된 데이터를 제거하도록 구성되는, 트랜잭션 핸들링 디바이스.
  6. 제 3 항 또는 제 4 항에 있어서,
    상기 지시자가 상기 관련 식별자가 하나의 동시 진행중 트랜잭션 요구에만 관계하는 것을 나타내도록 설정되는 것을 상기 검출회로가 검출하는 트랜잭션 요구를 핸들링할 때, 상기 트랜잭션 핸들링 회로가 상기 오더링 회로를 우회하도록 구성되는, 트랜잭션 핸들링 디바이스.
  7. 제 1 항, 제 3 항 또는 제 4 항 중 어느 한 항에 있어서,
    상기 지시자는 1비트 지시자인, 트랜잭션 핸들링 디바이스.
  8. 이니시에이터 디바이스로서,
    데이터 처리 트랜잭션에 대한 트랜잭션 요구-이 트랜잭션 요구는, 적어도, 동일한 식별자를 갖는 트랜잭션 요구들의 세트의 각각에 대해 처리하는 애스펙트가 그 트랜잭션 요구들의 세트의 발행의 순서로 수행되도록 관련 식별자를 갖는다-를 발행하는 트랜잭션 발행회로를 구비하고;
    상기 트랜잭션 발행회로는, 상기 관련 식별자가 하나보다 많은 동시 진행중 트랜잭션 요구와 관계하는지를 나타내기 위해 상기 관련 식별자와 지시자를 관련시키도록 구성되고,
    상기 이니시에이터 디바이스는, 상기 지시자가 상기 관련 식별자가 하나의 동시 진행중 트랜잭션 요구에만 관계되었다는 것을 나타내도록 설정되었을 경우, 상기 관련 식별자에 관계하는 완료 확인응답의 수신에 응답하여, 다른 요구에 대한 상기 관련 식별자의 재사용을 허가하는, 이니시에이터 디바이스.
  9. 제 8 항에 있어서,
    처리하는 애스펙트는:
    (i) 트랜잭션이 상기 트랜잭션의 목적지로 전달되는 것;
    (ii) 트랜잭션에 대한 응답이 이니시에이터 디바이스에 회신되는 것; 및
    (iii) 트랜잭션이 완료되는 것
    으로 이루어진 리스트로부터 선택된 하나 이상을 포함하는, 이니시에이터 디바이스.
  10. 삭제
  11. 제 8 항에 있어서,
    상기 지시자는 1비트 지시자인, 이니시에이터 디바이스.
  12. 각각 청구항 8 또는 9에 따른 하나 이상의 이니시에이터 디바이스들;
    각각 상기 트랜잭션 요구를 핸들링하는 트랜잭션 핸들링 회로 및 상기 관련 식별자가 하나보다 많은 동시 진행중 트랜잭션 요구와 관계하는지를 나타내기 위해 상기 관련 식별자와 관련된 지시자의 상태를 검출하는 검출회로를 구비하는 하나 이상의 트랜잭션 핸들링 디바이스들; 및
    상기 하나 이상의 이니시에이터 디바이스들을 상기 하나 이상의 트랜잭션 핸들링 디바이스들에 접속하는 인터커넥트 회로를 구비하는, 데이터 처리장치.
  13. 제 12 항에 있어서,
    상기 데이터 처리장치는, 상기 지시자를 상기 관련 식별자를 포함하는 트랜잭션 요구들 전부와 관련시키도록 구성되는, 데이터 처리장치.
  14. 삭제
  15. 삭제
  16. 데이터 처리 트랜잭션에 대한 트랜잭션 요구-이 트랜잭션 요구는, 적어도, 동일한 식별자를 갖는 트랜잭션 요구들의 세트의 각각에 대해 처리하는 애스펙트가 그 트랜잭션 요구들의 세트의 발행의 순서로 수행되도록 관련 식별자를 갖는다-를 발행하는 단계;
    상기 관련 식별자가 하나보다 많은 동시 진행중 트랜잭션 요구와 관계하는지를 나타내기 위해 상기 관련 식별자와 지시자를 관련시키는 단계; 및
    상기 지시자가 상기 관련 식별자가 하나의 동시 진행중 트랜잭션 요구에만 관계되었다는 것을 나타내도록 설정되었을 경우, 상기 관련 식별자에 관계하는 완료 확인응답의 수신에 응답하여, 다른 트랜잭션 요구에 대한 상기 관련 식별자의 재사용을 허가하는 단계를 포함하는, 방법.
  17. 제 12 항에 있어서,
    상기 하나 이상의 이니시에이터 핸들링 디바이스들 각각은 오더링 회로를 구비하고,
    이 오더링 회로는:
    동일한 식별자를 갖는 트랜잭션 요구들의 세트를 규정하는 데이터를 저장하는 버퍼회로; 및
    새롭게 수신된 트랜잭션 요구와 관련된 식별자가 버퍼회로에서 데이터를 보유한 임의의 트랜잭션 요구에 대한 식별자와 동일한지를 검출하는 비교기 회로를 구비하는, 데이터 처리장치.
  18. 제 17 항에 있어서,
    상기 오더링 회로는, 그 트랜잭션 요구들의 발행의 순서에 따라, 동일한 식별자를 갖고 상기 버퍼회로에서 보유한 그 트랜잭션 요구들을 규정하는 데이터를 출력하도록 구성되는, 데이터 처리장치.
  19. 제 17 항에 있어서,
    상기 버퍼회로는, 완료 확인응답이 수신되는 트랜잭션 식별자에 관계하는 버퍼링된 데이터를 제거하도록 구성되는, 데이터 처리장치.
  20. 제 17 항에 있어서,
    상기 지시자가 상기 관련 식별자가 하나의 동시 진행중 트랜잭션 요구에만 관계하는 것을 나타내도록 설정되는 것을 상기 검출회로가 검출하는 트랜잭션 요구를 핸들링할 때, 상기 트랜잭션 핸들링 회로가 상기 오더링 회로를 우회하도록 구성되는, 데이터 처리장치.
  21. 데이터 처리 트랜잭션에 대한 트랜잭션 요구-이 트랜잭션 요구는, 적어도, 동일한 식별자를 갖는 트랜잭션 요구들의 세트의 각각에 대해 처리하는 애스펙트가 그 트랜잭션 요구들의 세트의 발행의 순서로 수행되도록 관련 식별자를 갖는다-를 핸들링하는 단계; 및
    상기 관련 식별자가 하나보다 많은 동시 진행중 트랜잭션 요구와 관계하는지를 나타내기 위해 상기 관련 식별자와 관련된 지시자의 상태를 검출하는 단계를 포함하고,
    상기 처리하는 애스펙트는:
    (i) 트랜잭션이 상기 트랜잭션의 목적지로 전달되는 것;
    (ii) 트랜잭션에 대한 응답이 트랜잭션의 이니시에이터에 회신되는 것; 및
    (iii) 트랜잭션이 완료되는 것
    으로 이루어진 리스트로부터 선택된 하나 이상을 포함하는, 방법.
  22. 데이터 처리 트랜잭션에 대한 트랜잭션 요구-이 트랜잭션 요구는, 적어도, 동일한 식별자를 갖는 트랜잭션 요구들의 세트의 각각에 대해 처리하는 애스펙트가 그 트랜잭션 요구들의 세트의 발행의 순서로 수행되도록 관련 식별자를 갖는다-를 핸들링하는 단계;
    상기 관련 식별자가 하나보다 많은 동시 진행중 트랜잭션 요구와 관계하는지를 나타내기 위해 상기 관련 식별자와 관련된 지시자의 상태를 검출하는 단계;
    버퍼 회로를 사용하여, 동일한 식별자를 갖는 트랜잭션 요구들의 세트를 규정하는 데이터를 저장하는 단계; 및
    새롭게 수신된 트랜잭션과 관련된 식별자가 버퍼회로에서 데이터를 보유한 임의의 트랜잭션에 대한 식별자와 동일한지를 검출하는 단계를 포함하는, 방법.
KR1020197019101A 2016-12-19 2017-12-13 트랜잭션 핸들링 KR102502304B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1621638.4A GB2557944B (en) 2016-12-19 2016-12-19 Transaction handling
GB1621638.4 2016-12-19
PCT/GB2017/053725 WO2018115814A1 (en) 2016-12-19 2017-12-13 Transaction handling

Publications (2)

Publication Number Publication Date
KR20190097092A KR20190097092A (ko) 2019-08-20
KR102502304B1 true KR102502304B1 (ko) 2023-02-22

Family

ID=58284356

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197019101A KR102502304B1 (ko) 2016-12-19 2017-12-13 트랜잭션 핸들링

Country Status (7)

Country Link
US (1) US20190266010A1 (ko)
EP (1) EP3555753B1 (ko)
JP (1) JP7084406B2 (ko)
KR (1) KR102502304B1 (ko)
CN (1) CN110073340B (ko)
GB (1) GB2557944B (ko)
WO (1) WO2018115814A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11714779B2 (en) 2020-03-25 2023-08-01 Xilinx, Inc. NoC relaxed write order scheme

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150199286A1 (en) * 2014-01-10 2015-07-16 Samsung Electronics Co., Ltd. Network interconnect with reduced congestion

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6295548B1 (en) * 1999-03-12 2001-09-25 Compaq Computer Corporation Detection of an imported transaction for finding the global transaction identifier
US7170989B1 (en) * 2002-09-06 2007-01-30 Sprint Communications Company L.P. Transaction dependency manager
GB2440758B (en) 2006-08-08 2011-03-30 Advanced Risc Mach Ltd Interconnect logic for a data processing apparatus
US7552285B2 (en) * 2006-08-30 2009-06-23 Arm Limited Line fill techniques
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
US8866701B2 (en) * 2011-03-03 2014-10-21 Citrix Systems, Inc. Transparent user interface integration between local and remote computing environments
US8656078B2 (en) * 2011-05-09 2014-02-18 Arm Limited Transaction identifier expansion circuitry and method of operation of such circuitry
US8775754B2 (en) * 2011-06-24 2014-07-08 Arm Limited Memory controller and method of selecting a transaction using a plurality of ordered lists
US9201829B2 (en) * 2012-09-06 2015-12-01 Apple Inc. Low power, area-efficient tracking buffer
US9141546B2 (en) * 2012-11-21 2015-09-22 Annapuma Labs Ltd. System and method for managing transactions
GB2525237B (en) * 2014-04-17 2021-03-17 Advanced Risc Mach Ltd Reorder buffer permitting parallel processing operations with repair on ordering hazard detection within interconnect circuitry

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150199286A1 (en) * 2014-01-10 2015-07-16 Samsung Electronics Co., Ltd. Network interconnect with reduced congestion

Also Published As

Publication number Publication date
CN110073340A (zh) 2019-07-30
EP3555753B1 (en) 2022-04-13
JP2020502660A (ja) 2020-01-23
JP7084406B2 (ja) 2022-06-14
US20190266010A1 (en) 2019-08-29
GB201621638D0 (en) 2017-02-01
EP3555753A1 (en) 2019-10-23
KR20190097092A (ko) 2019-08-20
WO2018115814A1 (en) 2018-06-28
CN110073340B (zh) 2023-06-20
GB2557944A (en) 2018-07-04
GB2557944B (en) 2020-02-12

Similar Documents

Publication Publication Date Title
US8601167B2 (en) Maintaining required ordering of transaction requests in interconnects using barriers and hazard checks
EP0329776A1 (en) Method and apparatus for interconnecting busses in a multibus computer system
JP2018109965A (ja) データ処理
KR102502304B1 (ko) 트랜잭션 핸들링
CN106815176B (zh) 用于经由柔性寄存器访问总线传输访问请求的系统和方法
US10552354B2 (en) Managing starvation in a distributed arbitration scheme
TWI750386B (zh) 匯流排系統
GB2551806A (en) Interface apparatus and method
EP4022445B1 (en) An apparatus and method for handling ordered transactions
US7206886B2 (en) Data ordering translation between linear and interleaved domains at a bus interface
US11086630B1 (en) Finish exception handling of an instruction completion table
US8392621B2 (en) Managing dataflow in a temporary memory
WO2016095340A1 (zh) 数据发送成功的确认方法及装置
CN115840621A (zh) 一种多核系统的交互方法及相关装置
US10255103B2 (en) Transaction handling
KR101073479B1 (ko) 분할 프로토콜 전송 방법 및 프로세싱 시스템
JP5282325B2 (ja) ポステッドライトバス制御装置
JP5854063B2 (ja) 情報処理システム、情報処理方法、情報処理プログラム、及び情報処理装置
US6766405B2 (en) Accelerated error detection in a bus bridge circuit
JPH0822433A (ja) バス制御回路
JP2003271535A (ja) コンピュータシステム及び書き込み処理制御方法
ITTO20120406A1 (it) Procedimento e dispositivo per interrompere transazioni, sistema e prodotto informatico relativi
JP2013037459A (ja) 相互接続装置、および、相互接続装置の制御方法ならびに当該方法をコンピュータに実行させるプログラム

Legal Events

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