KR20200033179A - 버스트 판독 트랜잭션을 처리하는 장치 및 방법 - Google Patents

버스트 판독 트랜잭션을 처리하는 장치 및 방법 Download PDF

Info

Publication number
KR20200033179A
KR20200033179A KR1020190111851A KR20190111851A KR20200033179A KR 20200033179 A KR20200033179 A KR 20200033179A KR 1020190111851 A KR1020190111851 A KR 1020190111851A KR 20190111851 A KR20190111851 A KR 20190111851A KR 20200033179 A KR20200033179 A KR 20200033179A
Authority
KR
South Korea
Prior art keywords
data
transmission
data items
master device
transaction
Prior art date
Application number
KR1020190111851A
Other languages
English (en)
Inventor
잠시드 잘랄
투샤르 피 린지
아니타 코나
앤드류 브룩필드 스웨인
마이클 앤드류 캠벨
Original Assignee
에이알엠 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에이알엠 리미티드 filed Critical 에이알엠 리미티드
Publication of KR20200033179A publication Critical patent/KR20200033179A/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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0052Assignment of addresses or identifiers to the modules of a bus system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/28DMA
    • G06F2213/2806Space or buffer allocation for DMA transfers

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 Transfer Systems (AREA)

Abstract

버스트 판독 트랜잭션을 처리하는 장치 및 방법이 제공된다. 이 장치는, 마스터 장치와, 접속 매체를 거쳐 마스터 장치와 접속되는 슬레이브 장치를 구비한다. 마스터 장치는, 마스터 장치에게 접속 매체를 거쳐 판독 어드레스를 지정하는 어드레스 전송을 슬레이브 장치에게 발행하게 하는 버스트 판독 트랜잭션을 개시하는 처리회로를 구비한다. 슬레이브 장치는, 어드레스 전송에 의해 지정된 판독 어드레스에 근거하여 버스트 판독 트랜잭션에 의해 요구된 복수의 데이터 항목들이 얻어지게 하고, 복수의 데이터 항목들을 마스터 장치에 전송하기 위해 접속 매체를 거쳐 복수의 데이터 전송을 행함으로써, 버스트 판독 트랜잭션을 처리하도록 구성된다. 슬레이브 장치는, 각각의 데이터 전송에 대해, 접속 매체를 거쳐 송신되어, 복수의 데이터 항목들 중에서 어떤 데이터 항목이 이 데이터 전송에 의해 전송되고 있는지 식별하는 전송 식별자를 생성하는 전송 식별자 생성회로를 구비한다. 마스터 장치는, 복수의 데이터 전송을 거쳐 수신된 데이터 항목들을 버퍼링하고, 각 데이터 전송에 대해 제공된 전송 식별자를 이용하여, 데이터 항목들이 복수의 데이터 전송을 거쳐 마스터 장치에 전송되는 순서와 상관없이, 복수의 데이터 항목들이 결정된 순서로 처리회로에 제공되게 하는 버퍼회로를 구비한다. 이와 같은 구성은, 요구된 결정된 순서로 처리회로에 대한 데이터 항목들의 공급을 관리하는데 필요한 오버헤드를 상당히 줄일 수 있다.

Description

버스트 판독 트랜잭션을 처리하는 장치 및 방법{AN APPARATUS AND METHOD FOR PROCESSING BURST READ TRANSACTIONS}
본 발명은, 버스트 판독 트랜잭션을 처리하는 장치 및 방법에 관한 것이다.
복수의 데이터 항목들이 검색되어 마스터 장치에 반환되게 하는 단일의 판독 트랜잭션을 마스터 장치가 개시하는, 버스트 판독 트랜잭션의 이용을 데이터 처리 시스템이 지원하는 것이 알려져 있다. 각각의 데이터 항목들은 버스트 트랜잭션의 비트(beat)로 불리므로, 버스트 판독 트랜잭션은 복수의 비트를 포함하게 된다. 버스트 트랜잭션을 행하기 위해, 마스터 장치는 보통 시스템의 접속 매체를 거쳐 슬레이브 장치에 어드레스 전송을 발행하게 된다. 통신 매체는, 다양한 형태를 취할 수 있지만, 예를 들어, 한 개 이상의 마스터 장치들을 한 개 이상의 슬레이브 장치들과 접속하는 인터컨넥트일 수 있다.
보통 마스터 장치들과 슬레이브 장치들 사이의 통신은 특정한 통신 프로토콜을 준거하도록 구성되고, 버스트 판독 트랜잭션을 처리할 때에는, 판독 트랜잭션이 마스터 장치의 처리회로에 소정의 순서로 반환되어야 하는 경우가 많다. 데이터 비트에 대한 이와 같은 응답 순서 규칙은, 분기하는 소스들로부터 비트들을 수집한 후 이들 비트를 요청된 순서로 마스터 장치를 향해 상류측으로 송신하고 있는 중간 노드들이 존재할 수도 있는 시스템 내부의 구성요소들에 상당한 제약을 가할 수 있다. 이와 같은 중간 모드들은, 예를 들어, 수신된 비트들이 버퍼링되고 재배열되어 이들 비트가 요청된 소정의 순서로 마스터 장치 위로 전파될 수 있도록 보장하기 위해 재배열 버퍼들을 추가할 필요가 있을 수도 있다.
이와 같은 재배열은, 버스트 판독 트랜잭션이 사용되는 범위를 제한할 수 있다. 예를 들어, 특별한 구현예에서, 버퍼 사이즈는 비교적 작은 수의 비트들로 제한되어, 시스템 내부의 재배열 버퍼 요건을 줄일 수도 있다. 이와 달리, 특정한 구현예는 모든 트랜잭션을 번호순으로 나열하도록 선택하여, 버스트 트랜잭션들의 동시 사용을 피함으로써, 재배열 버퍼의 필요성을 없애도 된다. 그러나, 이와 같은 시스템은 보통 버스트 판독 트랜잭션의 이용을 허용하는 시스템에 비해 열악한 성능을 겪는다.
따라서, 응답 순서 규칙이 트랜잭션의 비트들과 관련되는 시스템 내에서 버스트 판독 트랜잭션을 처리하는 개량된 메카니즘을 제공하는 것이 바람직할 것이다.
일 구성예에서는, 마스터 장치와, 접속 매체를 거쳐 상기 마스터 장치와 접속되는 슬레이브 장치를 구비하고, 상기 마스터 장치는, 상기 마스터 장치에게 상기 접속 매체를 거쳐 판독 어드레스를 지정하는 어드레스 전송을 상기 슬레이브 장치에게 발행하게 하는 버스트 판독 트랜잭션을 개시하는 처리회로를 구비하고, 상기 슬레이브 장치는, 상기 어드레스 전송에 의해 지정된 판독 어드레스를 이용하여 상기 버스트 판독 트랜잭션에 의해 요구된 복수의 데이터 항목들이 얻어지게 하고, 상기 복수의 데이터 항목들을 상기 마스터 장치에 전송하기 위해 상기 접속 매체를 거쳐 복수의 데이터 전송을 행함으로써, 상기 버스트 판독 트랜잭션을 처리하도록 구성되고, 상기 슬레이브 장치는, 각각의 데이터 전송에 대해, 상기 접속 매체를 거쳐 송신되어, 상기 복수의 데이터 항목들 중에서 어떤 데이터 항목이 이 데이터 전송에 의해 전송되고 있는지 식별하는 전송 식별자를 생성하는 전송 식별자 생성회로를 구비하고, 상기 마스터 장치는, 상기 복수의 데이터 전송을 거쳐 수신된 데이터 항목들을 버퍼링하고, 각 데이터 전송에 대해 제공된 상기 전송 식별자를 이용하여, 상기 데이터 항목들이 상기 복수의 데이터 전송을 거쳐 상기 마스터 장치에 전송되는 순서와 상관없이, 상기 복수의 데이터 항목들이 결정된 순서로 상기 처리회로에 제공되게 하는 데이터 버퍼회로를 구비한 장치가 제공된다.
또 다른 예시적인 구성에서는, 마스터 장치로서, 상기 마스터 장치를 접속 매체에 접속하여, 슬레이브 장치와의 통신을 용이하게 하는 인터페이스 회로와, 상기 마스터 장치에게 상기 접속 매체를 거쳐 판독 어드레스를 지정하는 어드레스 전송을 상기 슬레이브 장치에게 발행하게 하는 버스트 판독 트랜잭션을 개시하는 처리회로를 구비하고, 상기 인터페이스 회로는 상기 접속 매체를 거쳐 상기 슬레이브 장치로부터 복수의 데이터 전송을 수신하도록 구성되고, 각각의 데이터 전송은 상기 버스트 판독 트랜잭션에 의해 요구된 복수의 데이터 항목들 중에서 한 개의 데이터 항목을 제공하고, 각각의 데이터 전송에 대해, 전송 식별자가 상기 접속 매체를 거쳐 상기 슬레이브 장치에 의해 제공되어, 상기 복수의 데이터 항목들 중에서 어떤 데이터 항목이 이 데이터 전송에 의해 전송되고 있는지 식별하고, 상기 마스터 장치는, 상기 복수의 데이터 전송을 거쳐 수신된 데이터 항목들을 버퍼링하고, 각 데이터 전송에 대해 제공된 상기 전송 식별자를 이용하여, 상기 데이터 항목들이 상기 복수의 데이터 전송을 거쳐 상기 마스터 장치에 전송되는 순서와 상관없이, 상기 복수의 데이터 항목들이 결정된 순서로 상기 처리회로에 제공되게 하는 데이터 버퍼회로를 더 구비한 마스터 장치가 제공된다.
또 다른 예시적인 구성에서는, 슬레이브 장치로서, 상기 슬레이브 장치를 접속 매체에 접속하여, 마스터 장치와의 통신을 용이하게 하고, 상기 마스터 장치의 처리회로에 의해 개시되고 있는 버스트 판독 트랜잭션에 응답하여 판독 어드레스를 지정하는 어드레스 전송을 상기 접속 매체를 거쳐 수신하도록 구성된 인터페이스 회로를 구비하고, 상기 슬레이브 장치는, 상기 어드레스 전송에 의해 지정된 판독 어드레스를 이용하여 상기 버스트 판독 트랜잭션에 의해 요구된 복수의 데이터 항목들이 얻어지게 하고, 상기 복수의 데이터 항목들을 상기 마스터 장치에 전송하기 위해 상기 접속 매체를 거쳐 복수의 데이터 전송을 발행함으로써, 상기 버스트 판독 트랜잭션을 처리하도록 구성되고, 상기 슬레이브 장치는, 각각의 데이터 전송에 대해, 상기 접속 매체를 거쳐 송신되어, 상기 복수의 데이터 항목들 중에서 어떤 데이터 항목이 이 데이터 전송에 의해 전송되고 있는지 식별하는 전송 식별자를 생성함으로써, 상기 마스터 장치가, 상기 복수의 데이터 전송을 거쳐 수신된 데이터 항목들을 버퍼링할 수 있도록 하고, 각 데이터 전송에 대해 제공된 상기 전송 식별자를 이용하여, 상기 데이터 항목들이 상기 복수의 데이터 전송을 거쳐 상기 마스터 장치에 전송되는 순서와 상관없이, 상기 복수의 데이터 항목들이 결정된 순서로 상기 처리회로에 제공되게 할 수 있는 전송 식별자 생성회로를 더 구비한 슬레이브 장치가 제공된다.
또 다른 예시적인 구성에서는, 마스터 장치의 처리회로를 사용하여, 버스트 판독 트랜잭션을 개시함으로써, 상기 마스터 장치에게 상기 접속 매체를 거쳐 판독 어드레스를 지정하는 어드레스 전송을 상기 슬레이브 장치에게 발행하게 하는 단계와, 상기 어드레스 전송에 의해 지정된 판독 어드레스를 이용하여 상기 버스트 판독 트랜잭션에 의해 요구된 복수의 데이터 항목들이 얻어지게 하고, 상기 복수의 데이터 항목들을 상기 마스터 장치에 전송하기 위해 상기 접속 매체를 거쳐 복수의 데이터 전송을 행함으로써, 상기 슬레이브 장치에서 상기 버스트 판독 트랜잭션을 처리하는 단계와, 상기 슬레이브 장치에서, 각각의 데이터 전송에 대해, 상기 접속 매체를 거쳐 송신되어, 상기 복수의 데이터 항목들 중에서 어떤 데이터 항목이 이 데이터 전송에 의해 전송되고 있는지 식별하는 전송 식별자를 생성하는 단계와, 상기 마스터 장치에서, 상기 복수의 데이터 전송을 거쳐 수신된 데이터 항목들을 버퍼링하고, 각 데이터 전송에 대해 제공된 상기 전송 식별자를 이용하여, 상기 데이터 항목들이 상기 복수의 데이터 전송을 거쳐 상기 마스터 장치에 전송되는 순서와 상관없이, 상기 복수의 데이터 항목들이 결정된 순서로 상기 처리회로에 제공되게 하는 단계를 포함하는 버스트 판독 트랜잭션의 처리방법이 제공된다.
또 다른 예시적인 구성에서는, 마스터 수단과, 접속 매체를 거쳐 상기 마스터 수단과 접속하는 슬레이브 수단을 구비하고, 상기 마스터 수단은, 상기 마스터 수단에게 상기 접속 매체를 거쳐 판독 어드레스를 지정하는 어드레스 전송을 상기 슬레이브 수단에게 발행하게 하는 버스트 판독 트랜잭션을 개시하는 처리수단을 구비하고, 상기 슬레이브 수단은, 상기 어드레스 전송에 의해 지정된 판독 어드레스를 이용하여 상기 버스트 판독 트랜잭션에 의해 요구된 복수의 데이터 항목들이 얻어지게 하고, 상기 복수의 데이터 항목들을 상기 마스터 수단에 전송하기 위해 상기 접속 매체를 거쳐 복수의 데이터 전송을 행함으로써, 상기 버스트 판독 트랜잭션을 처리하고, 상기 슬레이브 수단은, 각각의 데이터 전송에 대해, 상기 접속 매체를 거쳐 송신되어, 상기 복수의 데이터 항목들 중에서 어떤 데이터 항목이 이 데이터 전송에 의해 전송되고 있는지 식별하는 전송 식별자를 생성하는 전송 식별자 생성수단을 구비하고, 상기 마스터 수단은, 상기 복수의 데이터 전송을 거쳐 수신된 데이터 항목들을 버퍼링하고, 각 데이터 전송에 대해 제공된 상기 전송 식별자를 이용하여, 상기 데이터 항목들이 상기 복수의 데이터 전송을 거쳐 상기 마스터 수단에 전송되는 순서와 상관없이, 상기 복수의 데이터 항목들이 결정된 순서로 상기 처리수단에 제공되게 하는 데이터 버퍼수단을 구비한 장치가 제공된다.
이하, 다음의 첨부도면에 도시된 실시예를 참조하여 본 발명을 더욱 상세히 설명한다:
도 1은 첫 번째 예시적인 구성에 따른 시스템의 블록도이다.
도 2는 일 실시예에 따른 도 1의 슬레이브 장치의 동작을 나타낸 흐름도이다.
도 3은 일 구성예에서 도 2의 처리에 포함될 수도 있는 옵션의 추가 스텝들을 나타낸 흐름도이다.
도 4는 일 실시예에서 도 1의 시스템 내부에서 사용된 다양한 어드레스 전송 신호와 데이터 전송 신호를 나타낸 것이다.
도 5는 일 구성예에 따른 도 1의 마스터 장치의 판독 데이터 버퍼회로를 더욱 상세히 나타낸 도면이다.
도 6은 일 구성예에 따른 도 5의 액세스 제어회로의 동작을 나타낸 흐름도이다.
도 7은 도 5의 버퍼 스토리지를 이용하여 일 구성예에서 버퍼 판독 트랜잭션의 다양한 데이터 비트들의 순서를 맞추는(collate) 방법을 개략적으로 나타낸 것이다.
도 8은 특정한 일 구성예에 따른 시스템의 블록도이다.
도 9는 일 구성예에 따른, 도 8의 시스템의 구성요소들 사이에서 신호들이 전달되는 방법을 나타낸 도면이다.
전술한 것과 같이, 데이터 처리 시스템 내부의 마스터 장치와 슬레이브 장치 사이에서 행해지는 전송을 제어하기 위해 사용된 프로토콜이 버스트 판독 트랜잭션의 다양한 비트들이 마스터 장치의 처리회로에 소정의 순서로 반환되도록 요구할 때, 이 순서 제약은 시스템의 설계 내에서 상당한 면적 오버헤드를 일으킬 수 있다. 특히, 비트들이 마스터 장치를 향해 앞으로 전파되기 전에 분기하는 소스들로부터 모아지고 있는 중간 노드에서는, 보통, 재배열 버퍼를 설치하여, 이 중간 노드에 의해 수신된 다양한 비트들이 마스터 장치를 향해 앞으로 전파하기 전에 재배열될 수 있도록 하는 것이 필요하게 된다. 일부 구현예에서는, 버스트 판독 트랜잭션의 사이즈를 제한함으로써 시스템 내에서 필요한 재배열 버퍼회로의 양을 줄이도록 결정될 수도 있다. 그러나, 이와 같은 접근방법은 더 큰 버스트 판독 트랜잭션을 이용하여 구현될 수 있는 잠재적인 성능상의 이점을 줄인다. 예를 들어, 버스트 판독 트랜잭션은 메모리 내부의 동일한 페이지에서 모두 판독될 필요가 있는 상당한 수의 판독된 데이터 항목들을 식별할 수도 있으며, 단일의 버스트 판독 트랜잭션이 발행되는 경우, 이들 판독된 데이터 항목들이 버스트 판독 트랜잭션을 처리할 때 얻어지기 위한 물리 어드레스들을 발생하는데 필요한 해당 어드레스 변환 정보를 취득하기 위해 시스템 메모리 관리 유닛(MMU) 내에서 한번의 룩업만 필요할 수도 있다. 그러나, 그 대신에 버스트의 최대 사이즈가 줄어들면, 복수의 더 작은 버스트 판독 트랜잭션들을 발행하는 것이 필요하게 되어, 필요한 시스템 MMU 룩업의 수를 증가시킬 것이다. 더구나, 단일의 트랜잭션을 거쳐 더 많은 데이터가 요구되면 더 작은 헤더 오버헤드가 존재하기 때문에, 더 큰 버스트 판독 트랜잭션의 사용은 마스터 및 슬레이브 장치 사이의 다양한 통신 내의 헤더 오버헤드를 줄일 수 있다.
어떤 상황에서는, 버스트 판독 트랜잭션을 처리하기 위한 잠재적인 재배열 버퍼 오버헤드가 허용불가능한 것으로 생각되어, 그 대신에 모든 판독 트랜잭션을 번호순으로 나열하여 재배열 버퍼의 필요성을 없애는 것이 요구된다. 그러나, 이것은 성능에 대해 상당한 영향을 미칠 수 있다. 본 발명자들은, 마스터 장치가, 수신된 데이터 항목들을 마스터 장치의 처리회로에 앞으로 제공하기 전에 로컬에서 버퍼링하는데 사용될 수 있는 버퍼링 스토리지를 갖는 경우가 많으며, 이것에 해당하는 시스템에서는, 본 발명에서 설명하는 기술이 시스템 내부의 중간 노드에서의 전술한 재배열 버퍼 요구를 해소할 수 있다는 것을 인식하였다.
특히, 일 구성예에서는, 마스터 장치와, 접속 매체를 거쳐 마스터 장치에 접속된 슬레이브 장치를 갖는 장치가 제공된다. 마스터 장치는, 마스터 장치에게, 접속 매체를 거쳐 슬레이브 장치에 판독 어드레스를 지정하는 어드레스 전송을 발행하게 하는 버스트 판독 트랜잭션을 개시하는 처리회로를 갖는다.
슬레이브 장치는, 버스트 판독 트랜잭션에 의해 요구된 복수의 데이터 항목들(본 명세서에서는 복수의 비트로도 부른다)이 어드레스 전송에 의해 지정된 판독 어드레스를 사용하여 얻어지게 하고, 마스터 장치에 복수의 데이터 항목들을 전송하기 위해 접속 매체를 거쳐 복수의 데이터 전송을 행함으로써, 버스트 판독 트랜잭션을 처리하도록 구성된다. 이때, 각각의 데이터 항목(비트)에 대한 어드레스가 어드레스 전송에 의해 지정된 판독 어드레스로부터 결정될 수 있는 다수의 방법이 존재하지만, 보통 버스트 판독 트랜잭션에 대해 버스트 유형 정보가 지정되며, 이 버스트 유형 정보를 판독 어드레스와 조합하여 사용하여 각 데이터 항목에 대한 어드레스를 결정한다는 것을 알 수 있다.
본 발명에서 설명한 기술에 따르면, 슬레이브 장치는, 각각의 데이터 전송에 대해, 접속 매체를 걸쳐 송신되어, 복수의 데이터 항목들 중에서 어떤 데이터 항목이 이 데이터 전송에 의해 전송되고 있는지 식별하는 전송 식별자를 생성하는 전송 식별자 생성회로를 더 구비한다. 더구나, 복수의 데이터 전송을 거쳐 수신된 데이터 항목들을 버퍼링하고, 각 데이터 전송에 대해 제공된 전송 식별자를 이용하여, 데이터 항목들이 복수의 데이터 전송을 거쳐 마스터 장치에 전송되는 순서와 상관없이, 복수의 데이터 항목들이 결정된 순서로 처리회로에 제공되게 하는 데이터 버퍼회로를 구비한다.
따라서, 전송 식별자 메카니즘의 이용을 통해, 버스트 판독 트랜잭션과 관련된 개별 데이터 항목들이 임의의 순서로 마스터 장치에 반환될 수 있으며, 각각의 데이터 전송과 관련된 전송 식별자의 제공은, 마스터 장치에게 마스터 장치가 데이터 항목들을 로컬에서 재배열할 수 있게 하는 충분한 정보를 제공함으로써, 데이터 항목들이 필요한 순서로 처리장치에 제공될 수 있다. 이와 같은 접근방법은, 마스터 장치에 의해 재배열 요구사항이 로컬에서 만족될 수 있게 함으로써, 시스템 내부의 구성요소들의 재배열 버퍼 요건을 상당히 중일 수 있다. 특히, 마스터 장치가 각각의 데이터 항목에 대한 전송 식별자를 구비하고 수신된 데이터 항목들을 로컬에서 버퍼링할 수 있게 하는 데이터 버퍼회로를 가지므로, 마스터 장치가 처리회로에 데이터 항목들을 제공하기 전에 데이터 항목들이 적절히 정렬되도록 보장하기 위해 조치를 취할 수 있다.
데이터 버퍼회로는, 다양한 방식으로 구성될 수 있지만, 일 실시예에서는, 데이터 항목들을 기억하는 복수의 엔트리들을 갖는 버퍼 스토리지와, 각각의 데이터 전송에 대해, 이 데이터 전송에 대해 제공된 전송 식별자를 이용하여, 어떤 엔트리에 관련된 데이터 항목이 기억되는지 판정하도록 구성된 액세스 제어회로를 구비한다. 따라서, 이와 같은 구성에서는, 버퍼 스토리의 어느 엔트리에 수신된 데이터 항목이 버퍼링되는지 판정할 때 전송 식별자 정보를 이용한다. 이와 같은 구성은, 버퍼 스토리지 내부의 어떤 엔트리에 각각의 데이터 항목이 기억되어 있는지에 대한 판정에 의해 필요한 순서를 구현할 수 있게 된다. 그후, 특정한 엔트리들의 시퀀스에 기억된 데이터를 판독함으로써 버퍼 스토리지로부터 검색될 수 있어, 이들 엔트리들의 시퀀스가 특정한 순서로 판독될 때, 이것은, 데이터 항목들이 시스템의 순서 제약에 의해 요구된 결정된 순서로 처리회로에 반환되도록 보장하게 된다.
일 구성예에서, 처리회로에 의해 개시된 각각의 트랜잭션은 접속 매체를 거쳐 행해진 각각의 전송과 관련하여 제공된 트랜잭션 식별자를 갖고, 각각의 데이터 전송에 대해, 액세스 제어회로는 트랜잭션 식별자와 이 데이터 전송에 대해 제공된 전송 식별자를 이용하여, 어떤 엔트리에 관련된 데이터 항목이 기억되는지 판정하도록 구성된다. 따라서, 이와 같은 구성에서는, 트랜잭션 식별자 및 전송 식별자의 조합을 이용하여 수신된 데이터 항목이 기억되는 특정한 엔트리를 직접 식별할 수 있다. 이것은 버퍼 스토리지의 엔트리들을 액세스하는데 사용된 액세스 제어회로의 복잡도를 상당히 줄일 수 있다. 특히, 각각의 보류중인 트랜잭션에 대해 기록 포인터를 유지할 필요가 없으며, 판독된 데이터의 각 비트가 수신될 때 이와 같은 기록 포인터를 갱신하는 것도 필요하지 않다. 그 대신에, 트랜잭션 식별자 및 전송 식별자의 조합에 근거하여 엔트리들을 직접 식별할 수 있기 때문에, 기록 포인터가 유지될 필요가 없다. 일 구성예에서, 트랜잭션 식별자는 트랜잭션의 데이터 항목들이 기억될 수 있는 일련의 엔트리들을 가리키는 기준 포인터로서의 역할을 할 수 있으며, 전송 식별자는 특정한 엔트리를 식별하기 위한 이 기준 포인터로부터의 오프셋으로서 사용될 수 있다.
전술한 것과 같이, 이와 같은 접근방법에 의해, 버퍼 스토리지 내부의 어떤 엔트리가 각각의 수신된 데이터 항목을 기억할 것인지에 대해 행해진 판정에 의해 순서 제약이 만족될 수 있다. 특히, 각각의 데이터 항목이 기억되는 엔트리를 결정하기 위해 전술한 메카니즘을 사용하면, 그후, 버퍼 스토리지 내부의 해당 엔트리들이 판독 동작중에 소정의 시퀀스에서 액세스될 때 다양한 트랜잭션의 비트들에 대한 필요한 결정된 순서가 만족된다. 특히, 그후 판독 동작은 판독 트랜잭션의 복수의 데이터 항목들이 어떤 추가적인 조치를 취할 필요가 없이 결정된 순서로 처리회로에 제공되게 한다.
일 구성예에서, 슬레이브 장치는, 버스트 판독 트랜잭션에 대해 접속 매체를 거쳐 발행된 최종의 데이터 전송과 관련하여, 최종 전송 식별자를 제공하도록 구성된다. 이때, 전술한 메카니즘으로 인해, 전송 식별자의 사용은 슬레이브 장치가 임의의 순서로 데이터 항목들을 제공할 수 있도록 하기 때문에, 비트들이 결정된 순서로 고려될 때 최종 데이터 전송이 비트들의 최종 시퀀스에 의해 요구된 데이터 항목을 포함할 필요가 없다. 그러나, 슬레이브 장치는 그것이 최종 데이터 전송을 발행하고 있는 시기를 여전히 알고 있으므로(예를 들어, 판독 트랜잭션에 8 비트가 존재하는 경우, 8번째 데이터 항목이 반환되고 있는 시기를 알게 된다), 이 최종 데이터 전송과 관련된 최종 전송 식별자를 포함할 수 있다. 전술한 설명으로부터, 이 최종 데이터 전송은 모든 비트들(즉, 8 비트를 식별하는 트랜잭션의 상기한 예에서는 모든 비트 1 내지 8)을 포함할 수도 있다는 것을 알 수 있다.
일 구성예에서, 데이터 버퍼회로는, 최종 데이터 전송의 데이터 항목이 버퍼링된 경우, 최종 전송 식별자에 응답하여 판독 동작이 행해질 수 있게 하며, 이 판독 동작은, 복수의 데이터 항목들을 결정된 순서로 처리회로에 제공하기 위해 복수의 데이터 항목들을 기억하는 복수의 엔트리들이 판독되게 한다. 따라서, 이와 같은 접근방법에 따르면, 데이터 버퍼회로를 사용하여 판독 데이터 트랜잭션의 모든 비트들을 로컬에서 버퍼링하고, 그후 최종 전송이 식별되면, 판독 동작이 행해질 수 있도록 하여, 복수의 데이터 항목들이 그후 결정된 순서로 처리회로에 제공되도록 할 수 있다. 이와 같은 구성은, 버퍼 콘텐츠가 처리회로 상에 전달될 수 있도록 하는 시기를 결정하기 위해 마스터 장치가 이 콘텐츠의 진행중인 분석을 행할 필요성을 없앰으로써, 버스트 판독 트랜잭션의 복수의 데이터 항목들을 처리하는 특히 간단하고도 효율적인 메카니즘을 제공한다.
그러나, 필요한 경우에는, 데이터 버퍼회로 내부의 해당 엔트리들의 콘텐츠를 분석함으로써, 트랜잭션의 모든 비트들이 완료되기 전에 개별 데이터 항목들이 처리회로에 전달될 수 있게 하기 위해 분석회로가 설치될 수도 있다. 예를 들면, 특정한 시점에서 데이터 버퍼 내부에 비트 1, 2, 3, 7 및 8이 존재하지만, 비트 4, 5 및 6이 존재하지 않는다는 것을 알게 되면, 마스터 장치는 나머지 비트들을 대기하면서 비트 1, 2 및 3을 다시 처리회로에 출력하도록 구성된다. 그러나, 비트 4, 5 및 6이 버퍼 내에 기억될 때까지 비트 7 및 8이 버퍼로부터 출력되지 않으므로, 비트들이 필요한 순서로 처리회로에 다시 제공되도록 보장할 수 있다.
전송 식별자는 다양한 방식으로 마스터 장치에 전파될 수 있다. 일 구성예에서, 버스트 판독 트랜잭션은 n 비트를 포함하고 버스트 판독 트랜잭션에 의해 필요한 데이터 항목들의 수를 인코드하는데 사용되는 버스트 길이 표시를 갖고, 전송 식별자는 n-비트 신호로 이루어진다. 따라서, 버스트 판독 트랜잭션의 버스트 길이를 전달하기 위해 사용된 신호와 같은 폭을 갖는 신호가 전송 식별자를 위해 사용될 수 있으며, 이와 같은 접근방법은 모든 개별적인 비트들이 전송 식별자 신호 내에서 개별적으로 식별될 수 있도록 한다.
하위 호환성을 제공하는 것이 요구되는 시스템에서는, 예를 들어, 한 개 이상의 마스터 장치들이 전송 식별자의 이용을 지원하지만, 한 개 이상의 다른 마스터 장치들이 이것을 지원하지 않는 경우, 마스터 장치는, 버스트 판독 트랜잭션에 대한 어드레스 전송과 관련하여, 마스터 장치가 전송 식별자의 사용을 지원한다는 것을 식별하기 위해 세트되는 전송 식별자 인에이블 신호를 발행하도록 구성된다. 따라서, 이와 같은 상황에서, 마스터 장치가 전송 식별자들의 이용을 지원하지 않거나, 어떤 이유로 인해 마스터 장치가 특정한 버스트 판독 트랜잭션에 대해 이 기술을 사용하지 않도록 선택하는 경우, 전송 인에이블 신호가 클리어(clear)되어, 전송 식별자들이 현재의 버스트 판독 트랜잭션에 대해 사용되지 않아야 한다는 것을 슬레이브 장치에게 식별할 수 있다.
일 구성예에서는, 전송 식별자 인에이블 신호가 클리어일 때, 슬레이브 장치는, 전송 식별자 생성회로를 디스에이블하고, 복수의 데이터 항목들이 전송 매체를 거쳐 결정된 순서로 마스터 장치에게 반환되도록 복수의 데이터 전송을 배치하도록 구성된다. 그후, 이것은, 시스템 내부의 한 개 이상의 중간 노드에, 예를 들면, 슬레이브 장치가 각각의 데이터 비트에 대한 전송 요구를 한 개보다 많은 수의 소스에 배정하는 경우에는 슬레이브 장치에, 재배열 버퍼 성분의 제공을 요구할 수도 있다. 그러나, 전송 식별자 인에이블 신호가 클리어되는 상황에서 버스트 판독 트랜잭션들의 최대 사이즈를 제한하면서, 전송 식별자 인에이블 신호가 세트될 때 더 큰 버스트 판독 트랜잭션들이 행해질 수 있도록 함으로써, 이와 같은 필요한 재배열 버퍼회로의 사이즈를 줄일 수 있기 때문에, 성능상의 이점이 여전히 실현될 수 있다. 전송 식별자 인에이블 신호가 클리어되는 상황에서 또 다른 대안으로서, 슬레이브 장치는 버퍼링을 제공하지 않도록 구성되고, 그후, 버스트를 받아들일 때, 이 슬레이브 장치가 이 처리를 번호순으로 나열하여 한번에 한 개의 비트를 처리하게 된다.
일 구성예에서, 슬레이브 장치는, 버스트 판독 트랜잭션에 대한 데이터 전송들과 관련하여, 각각의 데이터 전송과 관련된 전송 식별자 신호가 유효한 전송 식별자를 제공하는 것을 식별하기 위해 세트되는 전송 식별자 유효 신호를 발행하도록 구성된다. 이와 같은 구성은, 슬레이브 장치가 전송 식별자 기술을 채용하는지 아닌지에 대한 유연성을 제공한다. 이때, 전송 식별자 인에이블 신호가 사용되는 전술한 실시예에서는, 버스트 판독 트랜잭션의 다양한 데이터 항목들이 요구된 순서로 반환되도록 보장할 필요가 있기 때문에, 전송 식별자 인에이블 신호가 클리어되면, 슬레이브 장치도 전송 식별자 유효 신호를 클리어하게 된다.
그러나, 식별자 인에이블 신호가 세트되는 상황에서도, 슬레이브 장치가 어떤 상황에서는 전송 식별자 유효 신호를 클리어하고, 데이터 비트들을 요구된 순서로 마스터 장치에 반환하는 책임을 지도록 결정할 수도 있다.
일 구성예에서는, 전송 식별자 유효 신호가 클리어일 때, 마스터 장치는, 각각의 데이터 전송과 관련된 전송 식별자 신호를 무시하고, 그 대신에 복수의 데이터 전송을 거쳐 수신된 복수의 데이터 항목들이 결정된 순서라고 추정하도록 구성된다.
복수의 데이터 항목들이 처리회로에 제공되는 결정된 순서는 다양한 방법으로 지정될 수 있다. 일 구성예에서는, 버스트 판독 트랜잭션은, 데이터 항목들이 처리회로에 의해 예측되는 순서를 나타내는 버스트 판독 트랜잭션과 관련된 디폴트 순서를 갖고, 결정된 순서는, 데이터 항목들이 디폴트 순서를 준거하도록 처리회로에 제공되도록 보장한다.
버스트 판독 트랜잭션과 관련된 디폴트 순서는 다양한 방법으로 결정될 수 있다. 그러나, 일 구성예에서는, 각각의 데이터 항목은 버스트 유형 정보와 데이터 전송에 의해 지정된 판독 어드레스를 참조하여 유도되는 관련된 어드레스를 갖고, 디폴트 순서는 복수의 데이터 항목들에 대해 어드레스들이 유도되는 순서와 일치한다.
처리회로는 임의의 시점에서 능동인 한 개의 버스트 판독 트랜잭션만을 지원하도록 구성되지만, 또 다른 실시예에서는, 처리회로는 임의의 시점에서 M개에 이르는 버스트 판독 트랜잭션을 능동으로 만들도록 구성되고, 버퍼 스토리지 내부의 엔트리들의 수는 이들 M개의 버스트 판독 트랜잭션 각각의 복수의 데이터 항목들이 버퍼링될 수 있도록 하는데 충분하다. 따라서, 버퍼 스토리지가 복수의 버스트 판독 트랜잭션들이 동시에 보류중이 될 수 있도록 적절히 사이즈가 정해질 수 있는 경우, 이것은, 복수의 버스트 판독 트랜잭션들이 진행중이 되도록 허용하고, 슬레이브 장치 또는 다른 적절한 중간 노드들이 개별적인 트랜잭션들의 비트들의 로컬 재배열을 행하기 위한 요건을 완화함으로써, 상당한 성능상의 향상을 가능하게 할 수 있다. 그 대신에, 전송 식별자들은 전술한 방식으로 생성되어 각각의 데이터 전송과 함께 다시 마스터 장치에게 전달될 수 있으며, 각각의 데이터 전송은 데이터 전송과 관련된 판독 트랜잭션을 식별한다. 전술한 메카니즘을 이용하여, 트랜잭션 식별자들과 전송 식별자들을 사용하여 각각의 수신된 데이터 항목이 기억되는 어떤 엔트리가 버퍼회로 내에 있는지 식별함으로써, 그후 적절한 시기에 각각의 버스트 판독 트랜잭션의 비트들이 요구된 순서로 버퍼회로로부터 처리회로에 직접 반환될 수 있다.
접속 매체는 다양한 형태를 취할 수 있지만, 예시적인 일 구현예에서는, 한 개 이상의 마스터 부품들을 한 개 이상의 슬레이브 부품들에 접속하도록 구성된 인터컨넥트 회로를 구비하고, 전술한 마스터 장치는 마스터 부품들 중에서 한 개를 구성하고, 전술한 슬레이브 장치는 슬레이브 부품들 중에서 한 개를 구성한다.
이하, 첨부도면을 참조하여 특정한 실시예를 설명한다.
도 1은 일 구성예에 따른 시스템의 블록도이다. 마스터 장치(10)는 데이터 처리 연산을 행하는 처리회로(15)를 갖는다. 이들 데이터 처리 연산의 수행중에, 처리회로는, 마스터 장치의 외부에 있는 한 개 이상의 부품들로부터 판독 데이터를 취득할 필요가 있으며, 한 개 이상의 외부 부품에 출력할 기록 데이터를 생성하여 외부 부품에 기억한다. 이와 같은 판독 및 기록 요구를 처리하기 위해, 마스터 장치는 도 1의 시스템 내에서, 마스터 장치와 한 개 이상의 슬레이브 장치들 사이에서 양쪽 방향으로 다수의 전송이 발생하게 하는 트랜잭션을 개시할 수 있다. 특히, 마스터 장치는, 트랜잭션과 관련된 어드레스를 지정하는 요구(본 발명에서는 어드레스 전송으로도 부른다)를 출력할 수 있으며, 어드레스 전송과 관련하여 트랜잭션의 종류, 예를 들어, 트랜잭션이 판독 트랜잭션인지 기록 트랜잭션인지 식별하는 제어 정보의 다양한 항목들을 더 출력할 수 있다. 그후, 이 요구는 접속 매체(30)를 거쳐 적절한 슬레이브 장치(40)에 전달되어 처리된다. 그후, 어드레스 전송과 관련하여, 트랜잭션의 수행중에 마스터 장치와 슬레이브 장치 사이에서 데이터 전송이 일어날 수 있다. 기록 트랜잭션의 경우에, 이것은 마스터 장치로부터 슬레이브 장치로 한 개 이상의 기록 데이터 전송이 전파되어 기록 데이터 항목들을 식별하는 과정을 포함할 수 있는 반면에, 판독 트랜잭션에 대해 이것은 슬레이브 장치로 다시 마스터 장치로 한 개 이상의 데이터 전송들이 발행되어 필요한 판독 데이터 항목들을 제공하는 것을 포함할 수 있다.
이하의 설명을 위해, 판독 트랜잭션의 수행을 고려하며, 특히 마스터 장치(10)에 의해 발행된 버스트 판독 트랜잭션들을 효율적으로 처리하는 기술에 대해 설명한다. 버스트 판독 트랜잭션에 따라, 마스터 장치는 슬레이브 장치(40)에 한 개의 어드레스 전송을 요구로서 발행하는데, 이 어드레스 전송은 판독 어드레스를 지정한다. 더구나, 어드레스 전송의 일부로서 제공된 제어 정보는, 이 트랜잭션이 판독 트랜잭션이고 이것이 버스트 트랜잭션이라는 것을 식별한다. 제어 정보는, 보통 버스트 판독 트랜잭션에 의해 요구되는 데이터 항목들의 수를 식별하는 버스트의 길이를 더 식별하게 되며, 각 데이터 항목의 사이즈 등의 다른 정보를 더 지정해도 된다.
처리회로에 의해 발생된 어드레스 전송을 접속 매체를 거쳐 타겟 슬레이브 장치에 배정하기 전에 이 어드레스 전송을 버퍼링하기 위해 마스터 장치(10) 내부에 요구 버퍼(20)가 설치될 수 있다.
요구가 슬레이브 장치(40)에 배정되면, 슬레이브 장치는 요구 핸들러(45)에서 이 요구를 수신하고, 이 요구를 분석하여 요구된 각 데이터 항목의 어드레스를 판정한다. 어드레스 전송에 의해 지정된 판독 어드레스로부터 각각의 데이터 항목의 어드레스를 유도할 수 있는 다양한 방법이 존재한다. 그러나, 보통 이 처리에서는 트랜잭션 종류의 표시가 사용된다. 단지 예를 들기 위해, 영국 캠브리지 Arm Limited에 의해 개발된 Advanced eXtensible Interface(AXI) 프로토콜을 사용하여 도 1의 시스템 내의 마스터 장치와 슬레이브 장치 사이에서 행해지는 전송을 제어하는 상황을 고려한다. AVI 프로토콜에 따르면, "고정(fixed)", "증분(incr)"(즉, incrementing) 또는 "랩(wrap)"으로 식별되는 다수의 다른 버스트 유형이 지원된다. 고정 버스트에서는, 어드레스가 버스트 내의 모든 전송에 대해 동일하게 유지되고, 이와 같은 버스트 유형은, 주변 FIFO를 로드하거나 비울 때와 같이, 동일한 위치에 대한 반복된 액세스에 사용될 수 있다. 증분 버스트에서는, 버스트 내부의 각 전송에 대한 어드레스가 이전의 전송 어드레스의 증분이며, 증분값은 전송의 사이즈에 의존한다. 예를 들어, 4 바이트의 사이즈를 갖는 버스트에서 데이터 전송에 대한 다음 어드레스는 이전 어드레스에 4를 더한 값이다. 랩핑(wrapping) 버스트는 버스트 내부의 각 전송에 대한 어드레스가 이전의 전송 어드레스의 증분이라는 점에서 증분 버스트와 유사하다. 그러나, 랩핑 버스트에서는, 랩 경계에 도달할 때 어드레스가 더 낮은 어드레스로 랩 라운드(wrap round)한다. 랩 경계는 버스트 내부의 각 전송의 크기에 버스트 내부의 전송들의 총수를 곱한 사이즈로 설정되어도 된다. 이와 같은 종류의 버스트는, 예를 들어, 캐시 라인을 액세스할 때 유용할 수 있다.
요구 핸들러(45)가 버스트 판독 트랜잭션을 처리할 때 데이터 항목들이 검색되는데 필요한 개별 어드레스들을 식별하면, 이 요구 핸들러는 각각의 데이터 항목에 대한 개별 요구들을 이들 판독 요구를 처리하는데 사용되는 한 개 이상의 부품들(60)에 발행할 수 있다. 이때, 부품들(60)의 속성에 따라, 모든 어드레스 전송들이 동일한 부품들에 발행되는 것은 아니며, 따라서 이들 부품들에서 얻어진 판독 어드레스가, 이들 요구가 요구 핸들러(45)로부터 출력되었던 순서와 다른 순서로 슬레이브 장치(40)에게 반환되는 것이 가능하다. 개별적인 데이터 항목들과 이와 관련된 이들 데이터 항목들에 대한 데이터 전송들은 본 명세서에서는 "비트"로 불리며, 버스트 판독 트랜잭션에 대해 복수의 비트들이 존재하고, 각각의 비트는 트랜잭션을 위한 요구된 데이터 항목들 중에서 한 개를 제공한다는 것을 알 수 있다. 일부 트랜잭션 프로토콜에 따르면, 버스트 판독 트랜잭션의 개별 비트들이 소정의 순서로 마스터 장치(10)의 처리회로(15)에 반환되어야 한다는 요건이 존재한다. 예를 들어, 이 소정의 순서는, 마스터 장치로부터 주어진 어드레스 전송 정보로부터 요구 핸들러(45)에 의해 개별적인 어드레스들이 계산되는 순서와 일치할 수도 있다.
보통, 이것은, 버스트 판독 트랜잭션을 지원하는 시스템에서는, 분기하는 소스들로부터 특정한 트랜잭션에 대한 비트들을 모으고 있는 한 개 이상의 중간 모드들이 일부 로컬 재배열 버퍼링 회로를 제공함으로써, 이들 비트들이 중간 노드에 의해 수신될 때, 이들 비트가 로컬에서 재배열되어 그후 이들 비트가 요구된 순서로 마스터 장치를 향해 상류측으로 전송될 수 있게 하는 요건이 존재한다는 것을 의미하였다. 따라서, 예를 들어, 도 1의 구현예를 고려하면, 트랜잭션의 각 비트에 대해 요구 핸들러(45)에 의해 발행된 요구들이 다른 부품들에 의해 처리되거나, 또는 어떤 특정한 부품이 이 부품이 수신하는 요구들과 동일한 순서로 관련된 판독 데이터를 제공하도록 제약을 받지 않는 상황에서는, 비트들이 슬레이브 장치 내부에서 로컬에서 수집된 후 마스터 장치(10)를 향해 앞으로 전파되기 전에 재배열될 수 있게 하기 위해 슬레이브 장치(40)가 보통 내부의 재배열 버퍼회로를 제공하는 것이 필요하게 될 것이다.
그러나, 이와 같은 요건은, 관련된 증가된 비용과 함께, 시스템의 설계에 있어서 상당한 면적 오버헤드를 유발할 수 있으며, 일부 경우에는 이것이 버스트 판독 트랜잭션들이 사용된 범위를 제한하였다. 그러나, 본 발명에서 설명하는 기술에 따르면, 슬레이브 장치가 버스트 판독 트랜잭션의 데이터 전송(즉, 개별적인 비트들)을 로컬에서 재배열하기 위한 요건을 완화하고, 그 대신에 이 재배열이 다시 마스터 장치(10)에서 행해질 수 있도록 하는 메카니즘이 제공된다.
특히, 도 1에 도시된 것과 같이, 슬레이브 장치는, 각각의 데이터 전송에 대해(즉, 각각의 비트에 대해), 비트의 데이터 항목과 관련하여 접속 매체(30)를 거쳐 송신될 송신 식별자(본 발명에서는 비트 식별자로도 불린다)를 발생하여, 비트 ID가 판독 데이터와 함께 마스터 장치(10)에 주어질 수 있도록 구성된 전송 식별자 생성회로(50)(본 발명에서는 비트 ID 생성회로로도 불린다)를 제공하도록 구성된다.
마스터 장치(10)는, 접속 매체(30)로부터 수신된 데이터 항목들을 로컬에서 버퍼링할 수 있는 판독 데이터 버퍼회로(25)를 갖는다. 그후, 판독 데이터는 판독 데이터 버퍼회로(25)로부터 처리회로(15)로 반환될 수 있다. 본 명세서에서 더욱 상세히 설명하는 것과 같이, 판독 데이터 버퍼회로는, 버퍼 스토리지 뿐만 아니라, 버퍼 스토리지 내부의 어떤 엔트리를 사용하여 각각의 수신된 데이터 항목을 수용할 것인지를 판정하는 관련된 액세스 제어회로를 구비한다. 특히, 판독 데이터의 관련된 항목을 수신할 버퍼 내부의 특정한 엔트리를 결정할 때 비트 ID 정보를 이용할 수 있다. 이와 같은 접근방법에 의해, 데이터 항목들이 마스터 장치에 의해 수신될 때 버스트 판독 트랜잭션의 데이터 항목들을 로컬에서 재배열할 수 있으므로, 이들 데이터 항목이 그후 판독 데이터 버퍼회로(25)의 버퍼로부터 판독될 때, 버스트 판독 트랜잭션의 개별 판독 데이터 항목들이 요구된 순서로 처리회로(15)에 반환될 수 있다. 이때, 요구된 순서는 비트 순서로 불리는데, 이것은, 개별적인 비트들에 대한 판독 요구들이 버스트 판독 트랜잭션을 개시하기 위해 요구버퍼(20)로부터 마스터 장치에 의해 출력된 어드레스 전송 정보에 근거하여 생성되는 순서로 이들 비트들이 처리회로에 반환된다는 것을 의미한다.
도 2는 일 구현예에서 도 1의 슬레이브 장치(40)의 동작을 나타낸 흐름도이다. 스텝 100에서, 요구 핸들러(45)는 마스터 장치(10)로부터 버스트 판독 트랜잭션을 지정하는 어드레스 전송의 수신을 대기한다.
수신되면, 어드레스 전송을 수반하는 제어 정보로부터 버스트 유형 및 버스트 길이 정보가 결정된다. 일부 구현예에서는, 각각의 데이터 항목의 사이즈 등의 추가 정보가 이 시점에서 결정되어도 된다.
그후, 스텝 105에서 결정된 정보로부터, 요구 핸들러는 스텝 110에서 각각의 요구된 데이터 항목에 대한 어드레스를 생성하고, 이들 데이터 항목에 대한 개별적인 판독 요구들을 적절한 부품들(60)에 배정한다.
전술한 것과 같이, 이들 다양한 부품들이 배치되는 방식으로 인해, 판독 데이터의 개별 항목들이 요구들이 발행되었던 순서와는 다른 순서로 슬레이브 장치(40)에 반환될 수도 있다. 그러나, 판독 데이터의 각각의 항목과 관련되어 제공된 제어 정보는, 슬레이브 장치가 어떤 비트와 판독 데이터의 개별 항목이 관련되는지를 식별할 수 있게 한다. 스텝 115에서, 슬레이브 장치는 트랜잭션의 비트들 중에서 한 개에 대한 판독 데이터의 항목의 수신을 대기한다. 이와 같은 판독 데이터의 항목이 수신되면, 일 구현예에서는, 처리가 스텝 125로 진행한다. 도 3을 참조하여 후술하는 것과 같이, 도 2의 점선으로 나타낸 스텝 120으로 표시한 것과 같이, 이 시점 이전에 다수의 옵션의 추가 스텝들이 행해질 수도 있다.
스텝 125에서, 비트 ID가 비트 ID 생성기(50)에 의해 생성되어, 판독 데이터의 항목이 관련된 비트를 식별한 후, 판독 데이터의 항목과 트랜잭션 프로토콜에 의해 요구된 제어 정보의 관련된 항목들을 제공할 뿐 아니라, 비트 ID 생성기에 의해 생성된 비트 ID 정보를 제공하는 데이터 전송이 슬레이브 장치(40)로부터 접속 매체(30)를 거쳐 마스터 장치(10)에 발생된다. 후술하는 것과 같이, 일부 구현예에서는, 비트 ID 유효 신호를 사용하여 비트 ID 신호가 유효한지 아닌지 식별하며, 이와 같은 비트 ID 유효 신호를 이용하는 구현예에서는, 이 비트 ID 유효 신호가 스텝 125에서 발행된 데이터 전송과 관련하여 세트될 수 있다.
박스 125로 더 나타낸 것과 같이, 현재 생성된 데이터 전송이 트랜잭션의 최종 데이터 전송인 경우에는, 본 발명에서는 RLADT 신호로 불리는 별개의 신호가 이 사실을 표시하기 위해 발행될 수 있다.
전술한 설명으로부터, 슬레이브 장치는, 수신된 판독 데이터 항목들 모두를 로컬에서 버퍼링하여 슬레이브 장치 내에서 이들 데이터 항목의 로컬 재배열을 허용할 필요는 없으며, 그 대신에 이들 데이터 항목들은 이들이 슬레이브 장치에 의해 수신된 것과 같은 순서로 마스터 장치에 다시 데이터 전송으로서 출력될 수 있지만, 관련된 비트 ID 정보가 각각의 데이터 전송과 함께 제공되어, 마스터 장치가 버스트 판독 트랜잭션에 의해 요구된 복수의 데이터 항목들 중에서 어떤 데이터 항목이 어떤 특정한 데이터 전송에 의해 제공되고 있는지 식별할 수 있게 할 수 있다. 판독 데이터는 슬레이브 장치에서 재배열되지 않기 때문에, 최종 데이터 항목이 이전에 제공되었을 수도 있으므로, 최종 데이터 전송은 실제로 버스트 판독 트랜잭션에 의해 요구된 일련의 데이터 항목들의 최종 데이터 항목을 포함하지 않을 수도 있다. 단지 예를 들기 위해, 버스트 판독 트랜잭션이 8 데이터 항목들을 지정하는 경우, 최종 데이터 전송에 포함되는 것은 예를 들어 데이터 항목 3이 될 수도 있으며, 이 경우에 RLAST 신호는, 데이터 항목 8을 제공하였던 이전의 데이터 전송과 관련하여 제공되는 것이 아니라, 데이터 항목 3을 제공하는 데이터 전송과 관련하여 포함될 것이다.
일 구현예에서, RLAST 신호는 트랜잭션에서의 최종 데이터 전송을 식별하기 위해 트랜잭션 프로토콜에 의해 이미 제공된 기존의 신호이며, 도 2를 참조하여 설명한 유즈 케이스에서의 차이는, RLAST 신호가 버스트 판독 트랜잭션에 의해 지정된 비트들이 시퀀스 내부의 최종 비트와 항상 관련되는 것은 아니고, 그 대신에, 트랜잭션의 어떤 실제의 비트가 이 데이터 전송과 관련되는지에 상관없이, 버스트 판독 트랜잭션에 대해 슬레이브 장치로부터 발행될 최종 비트와 단순히 연관되게 된다.
스텝 125 후에, 스텝 130에서 트랜잭션을 위해 대기된 더 이상의 비트들이 존재하는지 여부를 판정하여, 그런 경우에는 스텝 115로 처리를 진행한다. 트랜잭션의 모든 비트들이 슬레이브 장치로부터 출력되면, 스텝 140에서 처리가 종료한다.
일 구현예에서, 버스트 판독 트랜잭션에 대해 마스터 장치에 의해 발행된 원래의 요구는, 마스터 장치가 비트 ID들을 처리하는 것이 가능한지 여부를 식별하는 비트 ID 인에이블 신호를 포함해도 된다. 이것은, 예를 들어, 비트 ID들의 사용을 지원하는 기능을 갖지 않는 기존의 마스터 장치와의 하위 호환을 가능하게 하거나, 이와 달리 일부 예에서는 마스터 장치가 특정한 버스트 판독 트랜잭션에 대해 비트 ID들의 사용을 금지하도록 구성되어도 된다.
더구나, 슬레이브 장치로부터 각각의 데이터 전송에 대해 발행된 신호는, 비트 ID 정보가 유효한지 아닌지 식별하는 비트 ID 유효 신호를 포함해도 된다. 비트 ID가 유효하지 않으면, 마스터 장치는 비트 ID 정조를 무시하고, 그 대신에 슬레이브 장치에 의해 송신된 개별 데이터 전송들이 이미 비트 순서라고 추정하게 된다. 비트 ID 인에이블 신호가 클리어되면, 슬레이브 장치는 이 경우에 비트 ID들이 사용되지 않기 때문에 비트 ID 유효 신호를 클리어하게 된다. 비트 ID 인에이블 신호가 세트되면, 슬레이브 장치는, 비트 ID 유효 신호를 세트하여 비트 ID 메카니즘이 사용되고 있다는 것을 표시하거나, 또는 비트 ID 유효 신호를 클리어하여 특정한 트랜잭션에 대해 비트 ID 메카니즘이 사용되고 있지 않다는 것을 판정할 수 있다.
도 3은 비트 ID 인에이블 및 비트 ID 유효 신호들이 사용되는 방식에 따라 도 2의 스텝 120에서 행해지는 추가적인 스텝들을 나타낸 것이다. 스텝 150에서, 원래의 액세스 요구를 갖는 마스터 장치에 의해 발행된 비트 ID 인에이블 신호가 세트되어 있는지 아닌지 판정한다. 세트되지 않으면, 슬레이브 장치는, 스텝 155에서, 각 비트에 대한 판독 데이터를 로컬에서 버퍼링한 후, 데이터 전송을 출력하여, 데이터 항목들이 접속 매체(30)를 거쳐 비트 순서로 마스터 장치(10)에 반환되게 한다. 그후, 이 구현예가 비트 ID 유효 플래그를 사용하는 경우에는, 각각의 데이터 전송에 대해 비트 ID 유효 신호가 클리어된다. 스텝 125의 전술한 설명에서와 같이, 트랜잭션을 위한 최종 데이터 전송 출력에 RLAST 신호가 첨부된다.
스텝 150에서 비트 ID 인에이블 신호가 세트된 것으로 판정되면, 스텝 160에서 슬레이브 장치가 그럼에도 불구하고 현재 트랜잭션에 대한 비트 ID들을 이용하고 있지 않는지 여부를 판정한다. 슬레이브 장치가 비트 ID들을 이용하지 않는 다수의 이유가 존재하는데, 한가지 예는 슬레이브 장치가 비트 ID들의 생성을 지원하지 않는 레거시 장치인 경우이다. 이 경우 비트 ID 유효 신호는 논리 0값으로 구속될 수 있다(tied). 슬레이브 장치가 현재의 트랜잭션에 대해 비트 ID들을 이용하고 있지 않으면, 처리가 다기 처리 155로 진행한다. 그러나, 그렇지 않은 경우에는, 도 3의 스텝 165로 처리가 진행하여, 도 2의 스텝 125가 행해진 후, 도 2를 참조하여 전술한 것과 같이 처리가 진행한다.
도 4는 마스터 장치에 의해 발행된 어드레스 전송과 슬레이브 장치에 의해 발행된 데이터 전송 내에서 제공되는 신호를 나타낸 것이다. 특히, 신호들의 집합 200은 버스트 판독 트랜잭션에 대해 마스터 장치로부터 슬레이브 장치로 어드레스 전송의 일부로서 출력되는 정보를 나타낸다. 전술한 판독 어드레스 이외에, 제어 정보가 출력되어 트랜잭션의 유형을 식별한다. 이것은 예를 들어 트랜잭션이 판독 트랜잭션인지 기록 트랜잭션인지와 트랜잭션이 버스트 트랜잭션인지를 식별하게 된다. 버스트 판독 트랜잭션에 대해, 제어 정보는 버스트 유형 및 버스트 길이 등의 버스트에 대한 정보를 식별하게 되며, 이때 버스트 길이는 버스트 트랜잭션에 대해 요구된 비트들의 수를 식별한다.
전술한 비트 ID 인에이블 신호도 발행되며, 더구나 트랜잭션 ID가 보통 발행되어 대응하는 데이터 전송이 마스터 장치에 반환될 때 특정한 트랜잭션이 식별될 수 있게 한다. 특히, 마스터 장치는, 임의의 특정한 시점에서 한 개보다 많은 수의 보류중인 트랜잭션의 사용을 지원하므로, 수신된 데이터 전송에 대하, 어떤 트랜잭션이 데이터 전송과 관련되는지 식별이 가능할 필요가 있다.
신호들의 집합 210에 나타낸 것과 같이, 데이터 전송 신호는 판독 신호(즉, 이 데이터 전송과 관련된 현재의 비트에 대한 데이터 항목)를 포함하고, 비트 ID 생성기(50)에 의해 생성된 비트 ID를 식별하는 비트 ID 신호를 더 포함한다. 그후, 비트 ID 유효 신호를 사용하여 비트 ID 정보가 유효인지 아닌지 식별하고, 비트 ID 유효 신호가 클리어되면, 마스터 장치는 비트 ID 정보를 무시하고, 그 대신에 개별 데이터 전송들이 비트 순서로 반환되고 있는 것으로 추정하게 된다. 트랜잭션 ID도 데이터 전송 신호의 일부로서 반환되어, 마스터 장치가 어떤 트랜잭션과 특정한 수신된 데이터 전송이 관련되는지 식별할 수 있게 한다.
도 5는 도 1의 판독 데이터 버퍼회로(25)를 더욱 상세히 나타낸 도면이다. 판독 데이터 버퍼회로는 복수의 엔트리들을 갖는 버퍼 스토리지(250)를 갖고, 이I 각각의 엔트리는 슬레이브 장치로부터 데이터 전송을 거쳐 반환된 판독 데이터 항목을 기억하는데 사용될 수 있다. 더구나, 액세스 제어회로9260)를 사용하여 버퍼 스토리지에 대한 액세스를 제어한다. 특히, 액세스 제어회로(260)는, 접속 매체(30)로부터 수신된 판독 데이터의 각각의 항목을 버퍼링하는데 사용되는 버퍼 스토리지 내부의 각각의 엔트리를 제어할 수 있으며, 처리회로(15)로 반환하기 위한 데이터 항목들의 스트림을 비트 순서로 생성하기 위해 버퍼 스토리의 엔트리들로부터 콘텐츠의 판독을 더 제어할 수 있다. 도 5에 도시된 것과 같이, 액세스 제어회로(260)는, 데이터 전송을 구성하는 다양한 신호를 수신하게 되며, 비트 ID가 유효한 상황에서는, 비트 ID와 트랜잭션 ID의 조합을 이용하여, 버퍼 스토리지(250) 내부에서 수신된 데이터 항목이 기억되어야 하는 개별적인 엔트리를 식별한다. 이것은, 버스트 판독 트랜잭션의 개별적인 비트들이 특정한 순서로 버퍼 스토리지 내부에 임시로 버퍼링될 수 있도록 하여, 이들 데이터 비트들이 그후 액세스될 때, 이들 데이터 비트들이 비트 순서로 처리회로에 반환될 수 있도록 한다.
특정한 일 구성예에서 액세스 제어회로(260)에 의해 행해지는 동작을 도 6의 흐름도를 참조하여 더 설명한다.
스텝 300에서, 액세스 제어회로(260)는 새로운 데이터 전송이 수신되었는지 판정한다. 데이터 전송이 수신되었으면, 스텝 305에서, 비트 ID 유효 신호가 세트되어 비트 ID가 유효한 것을 표시하는지 여부를 판정한다. 유효하지 않은 경우에는, 비트 ID 정보가 무시되고, 스텝 310에서 데이터 항목이 처리회로로 반환된다. 특히, 비트 ID 유효 신호가 클리어되면, 각각의 비트가 비트 순서로 마스터 장치로 반환되도록 보장하기 위해 슬레이브 장치가 데이터 전송의 순서를 관리하였다고 추정한다. 필요한 경우에는, 스텝 310에서, 예를 들어, 처리회로가 데이터 항목을 수신할 준비가 아직 되지 않은 상황을 수용하기 위해(따라서, 버퍼는 링크 역압(link back pressure)의 흡수를 용이하게 한다), 반환된 데이터의 로컬화된 버퍼링이 존재할 수도 있으며, 이 경우에, 데이터 항목들이 마스터 장치에 의해 데이터 전송이 수신되는 순서로 처리회로에 전달되도록 선입선출(FIFO) 메카니즘을 효율적으로 구현하게 된다.
스텝 305에서 비트 ID가 유효한 것으로 판정되면, 스텝 315에서 트랜잭션 ID와 비트 ID를 사용하여 버퍼 내부의 엔트리를 식별한 후, 수신된 데이터 항목이 이 식별된 엔트리에 기억된다.
그후, 스텝 320에서, 버스트 판독 트랜잭션의 최종 데이터 전송이 수신되었는지 판정한다. 전술한 예를 참조하면, 이것은 최종 데이터 전송과 관련하여 슬레이브 장치에 의해 제공되는 RLAST 신호의 존재에 의해 표시될 수 있다. 이것이 최종 데이터 전송이 아닌 경우에는, 스텝 300으로 처리가 되돌아가 다음 데이터 전송의 수신을 대기한다.
그러나, 최종 데이터 전송이 수신되면, 스텝 325로 처리가 진행하여, 액세스 제어회로(260)를 사용하여 소정의 순서로 버퍼 스토리지 내부의 엔트리들의 시퀀스를 액세스함으로써, 그 내부에 기억된 데이터 항목들을 판독하고 이들 데이터 항목들을 처리회로에 제공한다. 스텝 315에서 트랜잭션 ID와 비트 ID를 사용하여 각각의 수신된 데이터 항목이 기억되는 엔트리를 판정하였던 방법으로 인해, 개별 비트들이 수신되었던 순서에 상관없이, 동일한 엔트리들의 시퀀스가 스텝 325에서 동일한 순서로 액세스될 수 있으며 데이터 항목들이 비트 순서로 처리회로에 반환되게 한다.
도 6의 실시예에서는, 특정한 버스트 판독 트랜잭션의 모든 비트들이 판독 데이터 버퍼회로 내에 버퍼링되고, RLAST 신호가 수신되면, 각각의 비트의 데이터 항목들이 데이터 버퍼회로로부터 판독되어 처리회로에 제공되지만, 또 다른 구현예에서는 모든 비트들이 수신되기 전에, 개별적인 데이터의 비트들을 비트 순서로 처리회로로 전달하는 것을 개시하는 것이 가능할 수도 있다. 특히, 액세스 제어회로가 특정한 버스트 판독 트랜잭션의 비트들과 관련되는 엔트리들 각각의 상태를 감시하는 메카니즘을 구비한 경우에는, 비트들 모두가 수신되지는 않을 때에도, 데이터 항목들 일부가 비트 순서로 처리회로에 제공될 준비가 되는 상황을 검출할 수 있다. 예를 들어, 버스트 트랜잭션이 비트 1 내지 8로 라벨이 붙여진 8개의 비트를 식별하고 이들 비트가 비트 순서로 처리회로에 반환될 필요가 있는 경우, 특정한 시점에서 버퍼 스토리지가 비트 1, 2, , 7 및 8을 기억하는 것을 알아차리면, 모든 나머지 비트들이 수신되기 전에, 비트 1, 2 및 3에 대한 데이터 항목들이 처리회로에 전달될 수도 있다. 그러나, 비트 4, 5 및 6이 수신될 때까지 비트 7 및 8은 처리회로에 전달되지 않는다는 것에 주목하기 바란다.
도 7은 비트 ID와 트랜잭션 ID 정보를 사용하여 버퍼 스토리지(250) 내부의 특정한 엔트리를 식별하는 방법을 개략적으로 나타낸 것이다. 이 예에서는, 트랜잭션 ID(405)를 이용하여 버스트 판독 트랜잭션에 대한 판독 데이터의 개별적인 비트들을 기억하는데 사용되는 엔트리들의 시퀀스 중에서 초기 엔트리를 식별한다. 그후, 비트 ID를 사용하여 트랜잭션 ID를 사용하여 식별된 엔트리에 대한 오프셋을 식별한다. 특정한 일 실시예에서, 트랜잭션 ID는 직접 포인터로서 사용될 수 이으며, 비트 ID는 오프셋을 직접 인코드하는 값을 가져도 된다. 예를 들어, 도 7의 예에서, 비트 ID는 8 비트 버스트 판독 트랜잭션의 8개의 비트들 중에서 어느 것과 대응하는 데이터 전송이 관련되는지 식별하기 위해 0 내지 7의 값을 취하며, 이 비트 ID가 트랜잭션 ID(405)로부터 결정된 포인터 값에 가산되어, 이 비트의 판독 데이터를 버퍼링하기 위해 사용할 버퍼 스토리지(250) 내부의 특정한 엔트리를 식별할 수 있다.
그후, 전술한 것과 같이, 비트 0에 대한 데이터를 기억하는 엔트리에서 시작하고 비트 7에 대한 데이터를 기억하는 엔트리에서 끝나는 순차적인 순서로 엔트리들로부터 판독 데이터를 판독하여, 데이터의 비트들을 비트 순서로 처리회로에 제공할 수 있다.
도 8은 마스터 장치 및 슬레이브 장치가 AXI 인터컨넥트(470)에 의해 접속되는 AXI 마스터 및 슬레이브 장치들이고 시스템 내부의 통신이 영국 캠브리지 Arm Limited에 의해 개발된 AXI 프로토콜에 따라 마스터 및 슬레이브 장치들 450, 480 사이에서 행해지는 특정한 구현예를 나타낸 블록도이다. AXI 마스터 장치(450)의 처리회로(455), 요구 버퍼(460) 및 판독 데이터 버퍼회로(465)는 도 1의 마스터 장치(10)의 처리회로(15), 요구 버퍼(20) 및 판독 데이터 버퍼회로(25)에 대해 전술한 방식으로 동작한다.
AXI 인터컨넥트(470)를 거쳐, 다양한 부품들 사이의 통신이 다른 프로토콜에 따라 행해지는 서브시스템(475)에 AXI 마스터 장치(450)가 접속된다. 특히, 도 8에 도시된 시스템에서, 서브시스템(475)은, ID 트래픽용 요구 노드(480)가 CHI 인터컨넥트(485)를 거쳐 다수의 CHI 슬레이브 장치들 490, 495에 접속되는 코히런트 허브 인터페이스(coherent hub interface: CHI) 시스템이다. IO 트래픽용 요구 노드(480)(본 발명에서 RN-I로도 부른다)는, AXI 슬레이브 장치로서 동작하며, 도 1을 참조하여 설명한 슬레이브 장치(40)의 요구 핸들러(45) 및 비트 ID 생성기(50)와 유사하게 동작하는 요구 핸들러(482) 및 비트 ID 생성기(484)를 갖는다. RN-I(480)는 CHI 시스템 내에서 마스터 장치로서의 역할을 하여, CHI 인터컨넥트(485)를 거쳐, 본 발명에서는 홈 노드 HN-F0 및 HN-F1으로도 부리는 다양한 슬레이브 장치들 490, 495에 요구를 발행한다.
요구 핸들러(482)는, 버스트 판독 트랜잭션에 대한 어드레스 전송을 AXI 인터컨넥트(470)를 거쳐 AXI 마스터 장치(450)로부터 수신하고, 이것에 근거하여 일련의 판독 요구를 CHI 인터컨넥트(485)를 거쳐 해당 CHI 슬레이브 장치 490, 495에 발행할 수 있다. 특히, CHI 프로토콜은 버스트 트랜잭션을 허용하지 않기 때문에, RN-I(480)는 캐시 라인 경계에서 트랜잭션을 다른 부분들로 분할하도록 구성된다. 이에 따라 생성된 모든 캐시 라인 사이즈를 갖는 CHI 트랜잭션들이 RN-I로부터 개시되어, 다양한 홈 노드들로 진행하고, 이들 홈 노드들은 임의의 순서로 판독 데이터를 RN-I에 반환하게 된다.
특정한 예시적인 시퀀스를 단지 예를 들기 위해 도 9에 나타낸다. 본 실시예에서는, AXI 마스터(450)가 데이터 성분 사이즈가 64바이트이고 버스트 길이가 2인 것을 식별하는 버스트 판독 트랜잭션을 발행한다. 그후, RN-I(480)는, 어드레스 전송을 수신하고, 2개의 별개의 판독 요구(도 9a에서는 ReadA 및 ReadB로 언급한다)를 생성하지만, 각각의 판독 요구에 대해 도출된 어드레스에 근거하여, 한 개의 요구는 제1 슬레이브 장치(490)로 진행하는 반면에, 나머지 요구는 제2 슬레이브 장치(495)로 진행한다.
이와 같은 경우에는, 실제로 도 9에 나타낸 경우에서와 같이, 데이터가 슬레이브 장치들로부터 다른 순서로 다시 수신된다. 더구나, 주어진 실시예에서는, CHI 슬레이브로부터의 각각의 데이터 전송은 길이가 32바이트이므로, 각각의 비트에 필요한 64바이트의 데이터를 제공하기 위해서는 2회의 전송이 요구된다.
전술한 비트 ID 기술에 없었다면, 도 9에 도시된 예에서는 RN-I(480)가 다양한 데이터 항목들이 재배열될 수 있도록 하기 위해 재배열 버퍼회로를 포함하는 것이 필요하여, 마스터 장치로의 제1 AXI 데이터 전송은 제1 비트를 포함하는 반면에, 제2 데이터 전송은 제2 비트를 포함할 것이다. 그러나, 본 발명에서 설명한 기술에 따르면, 이것이 필요하지 않으며, 그 대신에, 특정한 비트에 대해 요구된 64바이트의 데이터가 이용가능하면, 이들 데이터는 어떤 비트와 데이터 항목이 관련되는지 식별하기 위해 사용된 비트 ID와 함께 AXI 인터컨넥트를 거쳐 반환될 수 있다. 따라서, 도 9에 도시된 것과 같이, 제1 데이터 전송(497)은 HN-F1(495)로부터 반환된 데이터 값들 B0 및 B1으로 구성된 64바이트의 데이터를 포함하고, 비트 ID는 데이터 항목이 판독 버스트 트랜잭션의 제2 비트라는 것을 식별하도록 세트된다. 그후, 제1 비트에 대해 요구된 데이터가 이용가능하면, 제1 비트의 데이터가 이 데이터 전송에 의해 제공되고 있다는 것을 비트 ID로서 지정하는 AXI 마스터에 다시 제2 데이터 전송(499)이 발행된다. 이들 모둔 비트들이 이제 제공되었기 때문에, RLAST 신호가 이 제2 데이터 전송(499)에 첨부되므로, AXI 마스터 장치는 이들 2가지 데이터 항목들이 이제 송신되었다는 것을 알게 된다.
이때, 본 발명에서 설명하는 기술은 다양한 이점을 제공한다는 것을 알 수 있다. 첫째, 면적 절감의 관점에서, 전술한 기술은 더 큰 버스트 판독 트랜잭션들에 대한 응답 재배열의 필요성을 없애, 인터컨넥트 상의 모든 중간 점에서 재배열 버퍼의 필요성을 없앤다. 따라서, 면적/전력 관점에서 시스템이 최적화될 수 있다. 둘째, 본 기술은 더 큰 버스트 트랜잭션들을 송신할 수 있는 능력을 제공하므로, 더 양호한 시스템 MMU 룩업 효율과 줄어든 PCIe 헤더 오버헤드와 같이 더 큰 버스트 트랜잭션들과 관련된 이득을 얻을 수 있다. 더구나, 본 기술은 면적 최적화된 인터컨넥트에서(즉, 재배열 버퍼를 갖지 않는 인터컨넥트)에서 성능 향상을 제공할 수 있는데, 이것은 이와 같은 면적 최적화된 시스템에서는 판독 트랜잭션들을 번호순으로 나열할 필요가 없으므로, 이와 같은 면적 최적화된 시스템이 더 높은 성능점에서 실행될 수 있다.
본 발명에서, 단어 "하도록 구성된"은 장치의 구성요소가 정의된 동작을 행할 수 있는 구성을 갖는다는 것을 의미하기 위해 사용된다. 이와 관련하여, "구성"은 하드웨어 또는 소프트웨어의 배치 또는 상호접속 방식을 의미한다. 예를 들어, 장치는 정의된 동작을 제공하는 전용 하드웨어를 갖거나, 프로세서 또는 기타의 처리장치가 기능을 행하도록 프로그래밍되어도 된다."하도록 구성된"은 이 장치의 구성요소가 정의된 동작을 제공하기 위해 어떤 식으로 변경될 필요가 있는 것을 시사하는 것은 아니다.
첨부도면을 참조하여 본 발명의 예시적인 실시예들을 상세히 설명하였지만, 본 발명은 이들 실시예에 한정되지 않으며, 첨부된 청구범위의 보호범위 및 사상을 벗어나지 않으면서 본 발명이 속한 기술분야의 당업자에 의해 다양한 변경, 부가 및 변화가 행해질 수 있다는 것은 자명하다. 예를 들면, 종속항들의 특징들의 다양한 조합이 독립항들의 특징과 행해질 수도 있다.

Claims (19)

  1. 마스터 장치와,
    접속 매체를 거쳐 상기 마스터 장치와 접속되는 슬레이브 장치를 구비하고,
    상기 마스터 장치는, 상기 마스터 장치에게 상기 접속 매체를 거쳐 판독 어드레스를 지정하는 어드레스 전송을 상기 슬레이브 장치에게 발행하게 하는 버스트 판독 트랜잭션을 개시하는 처리회로를 구비하고,
    상기 슬레이브 장치는, 상기 어드레스 전송에 의해 지정된 판독 어드레스를 이용하여 상기 버스트 판독 트랜잭션에 의해 요구된 복수의 데이터 항목들이 얻어지게 하고, 상기 복수의 데이터 항목들을 상기 마스터 장치에 전송하기 위해 상기 접속 매체를 거쳐 복수의 데이터 전송을 행함으로써, 상기 버스트 판독 트랜잭션을 처리하도록 구성되고,
    상기 슬레이브 장치는, 각각의 데이터 전송에 대해, 상기 접속 매체를 거쳐 송신되어, 상기 복수의 데이터 항목들 중에서 어떤 데이터 항목이 이 데이터 전송에 의해 전송되고 있는지 식별하는 전송 식별자를 생성하는 전송 식별자 생성회로를 구비하고,
    상기 마스터 장치는, 상기 복수의 데이터 전송을 거쳐 수신된 데이터 항목들을 버퍼링하고, 각 데이터 전송에 대해 제공된 상기 전송 식별자를 이용하여, 상기 데이터 항목들이 상기 복수의 데이터 전송을 거쳐 상기 마스터 장치에 전송되는 순서와 상관없이, 상기 복수의 데이터 항목들이 결정된 순서로 상기 처리회로에 제공되게 하는 데이터 버퍼회로를 구비한 장치.
  2. 제 1항에 있어서,
    상기 데이터 버퍼회로는, 데이터 항목들을 기억하는 복수의 엔트리들을 갖는 버퍼 스토리지와, 각각의 데이터 전송에 대해, 이 데이터 전송에 대해 제공된 전송 식별자를 이용하여, 어떤 엔트리에 관련된 데이터 항목이 기억되는지 판정하도록 구성된 액세스 제어회로를 구비한 장치.
  3. 제 2항에 있어서,
    상기 처리회로에 의해 개시된 각각의 트랜잭션은 상기 접속 매체를 거쳐 행해진 각각의 전송과 관련하여 제공된 트랜잭션 식별자를 갖고, 각각의 데이터 전송에 대해, 상기 액세스 제어회로는 상기 트랜잭션 식별자와 이 데이터 전송에 대해 제공된 상기 전송 식별자를 이용하여, 어떤 엔트리에 관련된 데이터 항목이 기억되는지 판정하도록 구성된 장치.
  4. 제 2항에 있어서,
    상기 액세스 제어회로는 상기 버스트 판독 트랜잭션의 상기 복수의 데이터 항목들이 기억되는 엔트리들을 결정하도록 구성되어, 판독 동작 중에 소정의 시퀀스에서 이들 엔트리들이 액세스될 때, 이 판독 동작은 상기 복수의 데이터 항목들이 결정된 순서로 상기 처리회로에 제공되게 하는 장치.
  5. 제 1항에 있어서,
    상기 슬레이브 장치는, 상기 버스트 판독 트랜잭션에 대해 상기 접속 매체를 거쳐 발행된 최종의 데이터 전송과 관련하여, 최종 전송 식별자를 제공하도록 구성된 장치.
  6. 제 5항에 있어서,
    상기 데이터 버퍼회로는, 상기 최종 데이터 전송의 데이터 항목이 버퍼링된 경우, 상기 최종 전송 식별자에 응답하여 판독 동작이 행해질 수 있게 하며, 이 판독 동작은, 상기 복수의 데이터 항목들을 결정된 순서로 상기 처리회로에 제공하기 위해 상기 복수의 데이터 항목들을 기억하는 복수의 엔트리들이 판독되게 하는 장치.
  7. 제 1항에 있어서,
    상기 버스트 판독 트랜잭션은 n 비트를 포함하고 상기 버스트 판독 트랜잭션에 의해 필요한 데이터 항목들의 수를 인코드하는데 사용되는 버스트 길이 표시를 갖고, 상기 전송 식별자는 n-비트 신호로 이루어진 장치.
  8. 제 1항에 있어서,
    상기 마스터 장치는, 상기 버스트 판독 트랜잭션에 대한 어드레스 전송과 관련하여, 상기 마스터 장치가 상기 전송 식별자의 사용을 지원한다는 것을 식별하기 위해 세트되는 전송 식별자 인에이블 신호를 발행하도록 구성된 장치.
  9. 제 8항에 있어서,
    상기 전송 식별자 인에이블 신호가 클리어일 때, 상기 슬레이브 장치는, 상기 전송 식별자 생성회로를 디스에이블하고, 상기 복수의 데이터 항목들이 상기 전송 매체를 거쳐 결정된 순서로 상기 마스터 장치에게 반환되도록 복수의 데이터 전송을 배치하도록 구성된 장치.
  10. 제 1항에 있어서,
    상기 슬레이브 장치는, 상기 버스트 판독 트랜잭션에 대한 데이터 전송들과 관련하여, 각각의 데이터 전송과 관련된 전송 식별자 신호가 유효한 전송 식별자를 제공하는 것을 식별하기 위해 세트되는 전송 식별자 유효 신호를 발행하도록 구성된 장치.
  11. 제 10항에 있어서,
    상기 전송 식별자 유효 신호가 클리어일 때, 상기 마스터 장치는, 각각의 데이터 전송과 관련된 상기 전송 식별자 신호를 무시하고, 그 대신에 상기 복수의 데이터 전송을 거쳐 수신된 상기 복수의 데이터 항목들이 결정된 순서라고 추정하도록 구성된 장치.
  12. 제 1항에 있어서,
    상기 버스트 판독 트랜잭션은, 상기 데이터 항목들이 상기 처리회로에 의해 예측되는 순서를 나타내는 버스트 판독 트랜잭션과 관련된 디폴트 순서를 갖고, 상기 결정된 순서는, 상기 데이터 항목들이 상기 디폴트 순서를 준거하도록 상기 처리회로에 제공되도록 보장하는 장치.
  13. 제 12항에 있어서,
    각각의 데이터 항목은 버스트 유형 정보와 상기 데이터 전송에 의해 지정된 판독 어드레스를 참조하여 유도되는 관련된 어드레스를 갖고, 상기 디폴트 순서는 상기 복수의 데이터 항목들에 대해 어드레스들이 유도되는 순서와 일치하는 장치.
  14. 제 2항에 있어서,
    상기 처리회로는 임의의 시점에서 M개에 이르는 버스트 판독 트랜잭션을 능동으로 만들도록 구성되고, 상기 버퍼 스토리지 내부의 엔트리들의 수는 이들 M개의 버스트 판독 트랜잭션 각각의 복수의 데이터 항목들이 버퍼링될 수 있도록 하는데 충분한 장치.
  15. 제 1항에 있어서,
    상기 접속 매체를 제공하고, 한 개 이상의 마스터 부품들을 한 개 이상의 슬레이브 부품들에 접속하도록 구성된 인터컨넥트 회로를 더 구비하고, 상기 마스터 장치는 상기 마스터 부품들 중에서 한 개를 구성하고, 상기 슬레이브 장치는 상기 슬레이브 부품들 중에서 한 개를 구성하는 장치.
  16. 마스터 장치로서,
    상기 마스터 장치를 접속 매체에 접속하여, 슬레이브 장치와의 통신을 용이하게 하는 인터페이스 회로와,
    상기 마스터 장치에게 상기 접속 매체를 거쳐 판독 어드레스를 지정하는 어드레스 전송을 상기 슬레이브 장치에게 발행하게 하는 버스트 판독 트랜잭션을 개시하는 처리회로를 구비하고,
    상기 인터페이스 회로는 상기 접속 매체를 거쳐 상기 슬레이브 장치로부터 복수의 데이터 전송을 수신하도록 구성되고, 각각의 데이터 전송은 상기 버스트 판독 트랜잭션에 의해 요구된 복수의 데이터 항목들 중에서 한 개의 데이터 항목을 제공하고, 각각의 데이터 전송에 대해, 전송 식별자가 상기 접속 매체를 거쳐 상기 슬레이브 장치에 의해 제공되어, 상기 복수의 데이터 항목들 중에서 어떤 데이터 항목이 이 데이터 전송에 의해 전송되고 있는지 식별하고,
    상기 마스터 장치는,
    상기 복수의 데이터 전송을 거쳐 수신된 데이터 항목들을 버퍼링하고, 각 데이터 전송에 대해 제공된 상기 전송 식별자를 이용하여, 상기 데이터 항목들이 상기 복수의 데이터 전송을 거쳐 상기 마스터 장치에 전송되는 순서와 상관없이, 상기 복수의 데이터 항목들이 결정된 순서로 상기 처리회로에 제공되게 하는 데이터 버퍼회로를 더 구비한 마스터 장치.
  17. 슬레이브 장치로서,
    상기 슬레이브 장치를 접속 매체에 접속하여, 마스터 장치와의 통신을 용이하게 하고, 상기 마스터 장치의 처리회로에 의해 개시되고 있는 버스트 판독 트랜잭션에 응답하여 판독 어드레스를 지정하는 어드레스 전송을 상기 접속 매체를 거쳐 수신하도록 구성된 인터페이스 회로를 구비하고, 상기 슬레이브 장치는, 상기 어드레스 전송에 의해 지정된 판독 어드레스를 이용하여 상기 버스트 판독 트랜잭션에 의해 요구된 복수의 데이터 항목들이 얻어지게 하고, 상기 복수의 데이터 항목들을 상기 마스터 장치에 전송하기 위해 상기 접속 매체를 거쳐 복수의 데이터 전송을 발행함으로써, 상기 버스트 판독 트랜잭션을 처리하도록 구성되고,
    상기 슬레이브 장치는,
    각각의 데이터 전송에 대해, 상기 접속 매체를 거쳐 송신되어, 상기 복수의 데이터 항목들 중에서 어떤 데이터 항목이 이 데이터 전송에 의해 전송되고 있는지 식별하는 전송 식별자를 생성함으로써, 상기 마스터 장치가, 상기 복수의 데이터 전송을 거쳐 수신된 데이터 항목들을 버퍼링할 수 있도록 하고, 각 데이터 전송에 대해 제공된 상기 전송 식별자를 이용하여, 상기 데이터 항목들이 상기 복수의 데이터 전송을 거쳐 상기 마스터 장치에 전송되는 순서와 상관없이, 상기 복수의 데이터 항목들이 결정된 순서로 상기 처리회로에 제공되게 할 수 있는 전송 식별자 생성회로를 더 구비한 슬레이브 장치.
  18. 마스터 장치의 처리회로를 사용하여, 버스트 판독 트랜잭션을 개시함으로써, 상기 마스터 장치에게 상기 접속 매체를 거쳐 판독 어드레스를 지정하는 어드레스 전송을 상기 슬레이브 장치에게 발행하게 하는 단계와,
    상기 어드레스 전송에 의해 지정된 판독 어드레스를 이용하여 상기 버스트 판독 트랜잭션에 의해 요구된 복수의 데이터 항목들이 얻어지게 하고, 상기 복수의 데이터 항목들을 상기 마스터 장치에 전송하기 위해 상기 접속 매체를 거쳐 복수의 데이터 전송을 행함으로써, 상기 슬레이브 장치에서 상기 버스트 판독 트랜잭션을 처리하는 단계와,
    상기 슬레이브 장치에서, 각각의 데이터 전송에 대해, 상기 접속 매체를 거쳐 송신되어, 상기 복수의 데이터 항목들 중에서 어떤 데이터 항목이 이 데이터 전송에 의해 전송되고 있는지 식별하는 전송 식별자를 생성하는 단계와,
    상기 마스터 장치에서, 상기 복수의 데이터 전송을 거쳐 수신된 데이터 항목들을 버퍼링하고, 각 데이터 전송에 대해 제공된 상기 전송 식별자를 이용하여, 상기 데이터 항목들이 상기 복수의 데이터 전송을 거쳐 상기 마스터 장치에 전송되는 순서와 상관없이, 상기 복수의 데이터 항목들이 결정된 순서로 상기 처리회로에 제공되게 하는 단계를 포함하는 버스트 판독 트랜잭션의 처리방법.
  19. 마스터 수단과,
    접속 매체를 거쳐 상기 마스터 수단과 접속하는 슬레이브 수단을 구비하고,
    상기 마스터 수단은, 상기 마스터 수단에게 상기 접속 매체를 거쳐 판독 어드레스를 지정하는 어드레스 전송을 상기 슬레이브 수단에게 발행하게 하는 버스트 판독 트랜잭션을 개시하는 처리수단을 구비하고,
    상기 슬레이브 수단은, 상기 어드레스 전송에 의해 지정된 판독 어드레스를 이용하여 상기 버스트 판독 트랜잭션에 의해 요구된 복수의 데이터 항목들이 얻어지게 하고, 상기 복수의 데이터 항목들을 상기 마스터 수단에 전송하기 위해 상기 접속 매체를 거쳐 복수의 데이터 전송을 행함으로써, 상기 버스트 판독 트랜잭션을 처리하고,
    상기 슬레이브 수단은, 각각의 데이터 전송에 대해, 상기 접속 매체를 거쳐 송신되어, 상기 복수의 데이터 항목들 중에서 어떤 데이터 항목이 이 데이터 전송에 의해 전송되고 있는지 식별하는 전송 식별자를 생성하는 전송 식별자 생성수단을 구비하고,
    상기 마스터 수단은, 상기 복수의 데이터 전송을 거쳐 수신된 데이터 항목들을 버퍼링하고, 각 데이터 전송에 대해 제공된 상기 전송 식별자를 이용하여, 상기 데이터 항목들이 상기 복수의 데이터 전송을 거쳐 상기 마스터 수단에 전송되는 순서와 상관없이, 상기 복수의 데이터 항목들이 결정된 순서로 상기 처리수단에 제공되게 하는 데이터 버퍼수단을 구비한 장치.
KR1020190111851A 2018-09-19 2019-09-10 버스트 판독 트랜잭션을 처리하는 장치 및 방법 KR20200033179A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/135,149 US10628355B2 (en) 2018-09-19 2018-09-19 Apparatus and method for processing burst read transactions
US16/135,149 2018-09-19

Publications (1)

Publication Number Publication Date
KR20200033179A true KR20200033179A (ko) 2020-03-27

Family

ID=69774068

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190111851A KR20200033179A (ko) 2018-09-19 2019-09-10 버스트 판독 트랜잭션을 처리하는 장치 및 방법

Country Status (3)

Country Link
US (1) US10628355B2 (ko)
KR (1) KR20200033179A (ko)
CN (1) CN110928811B (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10942878B1 (en) * 2020-03-26 2021-03-09 Arm Limited Chunking for burst read transactions
IT202000009364A1 (it) * 2020-04-29 2021-10-29 St Microelectronics Srl Procedimento per accedere a una memoria e circuito corrispondente
US11074206B1 (en) * 2020-09-29 2021-07-27 Arm Limited Message protocol for a data processing system
CN114691571B (zh) * 2020-12-28 2024-05-28 上海寒武纪信息科技有限公司 数据处理方法、重排序缓存器及互联设备
CN113886310A (zh) 2021-11-02 2022-01-04 上海兆芯集成电路有限公司 桥接模块、数据传输系统和数据传输方法
CN114020662A (zh) * 2021-11-02 2022-02-08 上海兆芯集成电路有限公司 桥接模块、数据传输系统和数据传输方法
US11797409B1 (en) 2022-09-02 2023-10-24 HCL America Inc. Method and system for managing transactions burstiness and generating signature thereof in a test environment
CN116414767B (zh) * 2023-06-09 2023-09-29 太初(无锡)电子科技有限公司 一种对基于axi协议乱序响应的重排序方法及系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6449193B1 (en) * 2000-12-28 2002-09-10 Texas Instruments Incorporated Burst access memory system
KR100449807B1 (ko) * 2002-12-20 2004-09-22 한국전자통신연구원 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜제어 시스템
US7725665B2 (en) * 2004-06-30 2010-05-25 Renesas Technology Corp. Data processor
US20080320178A1 (en) * 2007-06-21 2008-12-25 Motoyasu Shirasaki DMA transfer apparatus
US8332564B2 (en) * 2009-10-20 2012-12-11 Arm Limited Data processing apparatus and method for connection to interconnect circuitry
JP5659817B2 (ja) * 2011-01-21 2015-01-28 ソニー株式会社 相互接続装置
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
US20130054852A1 (en) * 2011-08-24 2013-02-28 Charles Fuoco Deadlock Avoidance in a Multi-Node System
US10616333B2 (en) * 2014-04-09 2020-04-07 Stmicroelectronics S.R.L. System for the management of out-of-order traffic in an interconnect network and corresponding method and integrated circuit
US10303628B2 (en) * 2014-12-19 2019-05-28 Sonics, Inc. Reordering responses in a high performance on-chip network

Also Published As

Publication number Publication date
CN110928811B (zh) 2023-12-22
US10628355B2 (en) 2020-04-21
CN110928811A (zh) 2020-03-27
US20200089634A1 (en) 2020-03-19

Similar Documents

Publication Publication Date Title
KR20200033179A (ko) 버스트 판독 트랜잭션을 처리하는 장치 및 방법
US5630059A (en) Expedited message transfer in a multi-nodal data processing system
KR100800989B1 (ko) 중재 패킷 프로토콜을 구비한 메모리 중재 시스템 및 방법
JP4024875B2 (ja) 異なるデータ・レートで動作するネットワーク・ポートに関して、共用メモリへのアクセスを調停する方法および装置
US20070162642A1 (en) A dma controller with multiple intra-channel software request support
US6189062B1 (en) Apparatus and method for address translation in bus bridge devices
US20040093454A1 (en) USB endpoint controller flexible memory management
JPH09223089A (ja) 複数バス・ターゲットへのパケット・データの分割を可能にする方法および装置
JP2007073052A (ja) 集積回路から外部メモリへのアクセス
US5416907A (en) Method and apparatus for transferring data processing data transfer sizes
US7069305B2 (en) Computer system and a data transfer method thereof using remote direct memory access
US7460531B2 (en) Method, system, and program for constructing a packet
US6633927B1 (en) Device and method to minimize data latency and maximize data throughput using multiple data valid signals
US9804959B2 (en) In-flight packet processing
KR100266963B1 (ko) 전송되는 패킷을 오버래핑하여 인터페이스의 대기시간을 감소시키는 방법 및 장치
KR20040086546A (ko) 버스를 통한 데이터 전송을 제어하는 방법, 시스템 및 컴퓨터 시스템
US20090031101A1 (en) Data processing system
CN109145397A (zh) 一种支持并行流水访问的外存仲裁结构
KR101116613B1 (ko) 메모리 액세스 제어 장치 및 방법
JP2000137676A (ja) バッファ制御方式
CN113448899A (zh) 借助于交易辨识码的属性来控制数据响应的方法以及系统
JP3011044B2 (ja) 入出力制御装置
JP2005235216A (ja) ダイレクト・メモリ・アクセス制御
KR20060009292A (ko) 분할 프로토콜 전송 방법 및 프로세싱 시스템
JPH07334453A (ja) メモリアクセスシステム

Legal Events

Date Code Title Description
A201 Request for examination