KR102326892B1 - Adaptive transaction handling method and device for same - Google Patents

Adaptive transaction handling method and device for same Download PDF

Info

Publication number
KR102326892B1
KR102326892B1 KR1020200160186A KR20200160186A KR102326892B1 KR 102326892 B1 KR102326892 B1 KR 102326892B1 KR 1020200160186 A KR1020200160186 A KR 1020200160186A KR 20200160186 A KR20200160186 A KR 20200160186A KR 102326892 B1 KR102326892 B1 KR 102326892B1
Authority
KR
South Korea
Prior art keywords
response
request
unit
transaction
group
Prior art date
Application number
KR1020200160186A
Other languages
Korean (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 오픈엣지테크놀로지 주식회사
Priority to KR1020200160186A priority Critical patent/KR102326892B1/en
Priority to PCT/KR2020/017001 priority patent/WO2022114272A1/en
Application granted granted Critical
Publication of KR102326892B1 publication Critical patent/KR102326892B1/en

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/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
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • 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]

Abstract

Disclosed is a device for handling transaction, which includes a request switch unit, a response switch unit, a cyclic dependency avoidance scheme (CDAS) part, an identification (ID) remapping unit, and an ID recovering unit. The request switch unit receives a request from the master device, transmits the request to the bus through the CDAS part, when the request belongs to a first group, and transmits the request to the bus through the ID remapping unit, when the request belongs to a second group. The response switch unit receives a response from the bus, provides the response to a response aligning unit through the CDAS part, when the response is a response for the request belonging to the first group, and provides the response to the response aligning unit through an ID recovering unit, when the response is a response for the request belonging to the second group.

Description

적응형 트랜잭션 처리 방법 및 이를 위한 장치{Adaptive transaction handling method and device for same}Adaptive transaction handling method and device for same

본 발명은 컴퓨팅 장치의 디바이스에 관한 것으로서 특히 SoC 내의 다수의 IP들 간의 AXI 프로토콜에 따른 요청 및 응답의 트랜잭션 경로 관리방법에 관한 것이다.The present invention relates to a device of a computing apparatus, and more particularly, to a method for managing a transaction path of a request and a response according to an AXI protocol between a plurality of IPs in an SoC.

SoC(System on Chip)는 다양한 기능을 집적한 반도체이다. SoC는 집적 회로로 구현될 수 있다. 또한, SoC는 이동 전화기, 스마트폰, 태블릿 PC, PDA, IT 장치, 또는 휴대용 전자 장치와 같은 전자장치 내에 내장(embedded)될 수 있다.SoC (System on Chip) is a semiconductor that integrates various functions. The SoC may be implemented as an integrated circuit. In addition, the SoC may be embedded in an electronic device such as a mobile phone, smart phone, tablet PC, PDA, IT device, or portable electronic device.

SoC 내에는 다양한 IP(지능소자, Intellectual Properties)들이 포함되어 있으며, 여기에는 SoC 전체를 제어하는 프로세서(마스터회로) 및 상기 프로세서에 의해 제어되는 다양한 회로 및 로직이 포함될 수 있다. 상기 IP의 예로서, 한 개 이상의 코어를 포함하는 CPU, GPU, CODEC, 오디오 프로세서, 비디오 프로세서, 주변장치 드라이버, 디스플레이 드라이버, 메모리, 메모리 컨트롤러, 인터커넥트(interconnect) 회로, 및 캐시(cache) 메모리 등이 있으며 이에 한정되는 것은 아니다. SoC에는 SoC를 동작시키기 위한 코드가 저장되어 있을 수 있다. Various IPs (intellectual properties) are included in the SoC, and may include a processor (master circuit) that controls the entire SoC, and various circuits and logic controlled by the processor. Examples of the IP include a CPU, GPU, CODEC, audio processor, video processor, peripheral driver, display driver, memory, memory controller, interconnect circuit, and cache memory including one or more cores. and is not limited thereto. Codes for operating the SoC may be stored in the SoC.

본 명세서에서 상기 'IP'는 '회로'로 지칭될 수도 있다. 즉, 예컨대, 제1 IP, 제2 IP, 제3 IP는 각각 제1회로, 제2회로, 제3회로로 지칭될 수 있다. In this specification, the 'IP' may be referred to as a 'circuit'. That is, for example, the first IP, the second IP, and the third IP may be referred to as a first circuit, a second circuit, and a third circuit, respectively.

SoC에 포함된 상기 메모리 콘트롤러는 SoC 외부의 메모리가 SoC와 데이터를 교환할 수 있도록 할 수 있다. SoC에 LCD 및 필요한 장치들을 추가하여 사용자기기로 사용할 수 있다.The memory controller included in the SoC may enable a memory external to the SoC to exchange data with the SoC. It can be used as a user device by adding an LCD and necessary devices to the SoC.

상기 인터커넥트 회로는 SoC에 포함된 IP들 간의 데이터 및 명령의 교환을 가능하게 할 수 있다.The interconnect circuitry may enable exchange of data and commands between IPs included in the SoC.

상기 IP는 슬레이브 IP와 마스터 IP로 구분될 수 있다. 슬레이브 IP는 프로세서 또는 다른 IP로부터의 제어명령을 받는 IP이다. 마스터 IP는 스스로 다른 IP에 데이터 통신을 요구할 수 있는 IP이다. 경우에 따라서는 하나의 IP가 슬레이브와 마스터 기능을 겸할 수도 있다. 하나의 SoC에는 복수 개의 마스터 IP 및 복수 개의 슬레이브 IP가 존재할 수 있다.The IP may be divided into a slave IP and a master IP. A slave IP is an IP that receives a control command from a processor or another IP. The master IP is an IP that can request data communication to other IPs by itself. In some cases, one IP may serve as both a slave and a master. A plurality of master IPs and a plurality of slave IPs may exist in one SoC.

설계되는 SoC마다, 상기 SoC 내부에 포함된 IP들을 연결하는 구조는 상기 SoC의 설계자에 의해 서로 다르게 구현될 수 있다.For each SoC designed, a structure for connecting IPs included in the SoC may be implemented differently by a designer of the SoC.

마스터 IP는 ① SoC의 외부의 메모리에 대한 인터페이스를 제공하는 다른 IP, 또는 ②SoC 내부에서 상기 마스터 IP와는 멀리 떨어진 곳에 위치한 다른 IP에 접근하고자 할 수 있다. The master IP may want to access ① another IP that provides an interface to the external memory of the SoC, or ② another IP located far away from the master IP inside the SoC.

AXI(Advanced eXtensible Interface)와 같은 버스 프로토콜은 버스 상의 데이터 전송을 관리하며, 장치들 간의 데이터 트랜잭션을 식별하고 시정렬하는 방법을 특정한다. 예컨대, AXI 프로토콜에서, 각각의 버스 트랜잭션은 식별자 값, 즉, ID 값을 갖는데, 이것은 상기 트랜잭션과 연관될 수도 있는 데이터, 요청(request), 응답(response), 및 확인(acknowledgment)를 식별하는데 사용된다. 하나의 장치에 의해 사용되는 AXI ID에는 하드웨어 시스템에 의해 고정된 개수의 비트들이 할당된다. 버스 트랜잭션 ID 값으로서 서로 다른 개수의 비트들이 할당된 복수 개의 하드웨어 시스템들을 서로 연결하는 데에 한 개의 버스가 이용될 수 있다.A bus protocol, such as the Advanced eXtensible Interface (AXI), manages the transfer of data over the bus and specifies how to identify and time-align data transactions between devices. For example, in the AXI protocol, each bus transaction has an identifier value, or ID value, which is used to identify data, request, response, and acknowledgment that may be associated with that transaction. do. An AXI ID used by one device is assigned a fixed number of bits by the hardware system. One bus may be used to connect a plurality of hardware systems to which different numbers of bits are allocated as a bus transaction ID value.

AXI는 각각의 읽기/쓰기 요청에 서로 다른 AXI ID를 사용할 수 있다는 장점이 있다. AXI 프로토콜에서는 각 요청의 ID로 사용될 수 있는 A(R/W)ID신호(ARID 또는 AWID 신호)를 정의하고 있다. A(R/W)ADDR 신호와 함께 전송되는 A(R/W)ID신호를 이용하여 시스템 관점에서 다양한 기능을 구현 할 수 있다. AXI의 ID가 제공됨으로 인해 시스템 설계상의 자유도가 상승할 수 있다. AXI has the advantage that different AXI IDs can be used for each read/write request. The AXI protocol defines the A(R/W)ID signal (ARID or AWID signal) that can be used as the ID of each request. Various functions can be implemented from the system point of view by using the A(R/W)ID signal transmitted together with the A(R/W)ADDR signal. By providing the ID of AXI, the degree of freedom in system design can be increased.

예컨대, AXI 프로토콜에서는 같은 ID를 가진 요청에 대해서는 응답이 요청을 보낸 순서대로 와야 하지만, 다른 ID를 가진 요청들 간에는 응답이 오는 순서가 상관이 없기 때문에 반드시 순서가 유지되어야 하는 메모리 접근의 경우에는 같은 AXI ID를 사용하여 in-order 동작을 강제하고 메모리 접근 사이의 의존성이 없는 경우에는 다른 AXI ID를 사용하여 out-of-order 동작을 허용하여 시스템의 전반적인 성능을 향상 시키면서 시스템 동작의 정확성(correctness)도 잃지 않을 수 있다. For example, in the AXI protocol, for requests with the same ID, responses must come in the order in which the requests were sent, but for requests with different IDs, the order of responses is irrelevant, so in the case of memory access that must be maintained in the same order. The correctness of the system operation while increasing the overall performance of the system by using an AXI ID to enforce in-order operations and allowing out-of-order operations using a different AXI ID if there is no dependency between memory accesses. can't lose either.

CDAS(Cyclic Dependency Avoidance Scheme)와 관련되는 AXI 프로토콜의 특징에는 AXI ID를 이용한 트랜잭션의 태깅(tagging)이 있다. AXI ID의 경우 순서가 상관없는 트랜잭션 간에는 서로 다른 ID로 태깅하고, 이와 달리 순서가 반드시 지켜져야 할 트랜잭션들은 동일한 ID를 태깅하면 꼭 필요한 부분 이외에는 온-칩(on-chip) 트래픽의 비순차(out-of-order) 진행을 수행한다. A characteristic of the AXI protocol related to CDAS (Cyclic Dependency Avoidance Scheme) includes tagging of a transaction using an AXI ID. In the case of AXI ID, transactions out of order are tagged with different IDs. On the other hand, transactions that must be in order are tagged with the same ID. -of-order) process.

AXI 프로토콜은 MOR(Multiple Outstanding Request)과 AXI ID 태깅을 통해 온-칩 인터커넥트의 사용률을 높일 수 있는 가능성을 열었지만 단지 마스터 1개와 슬레이브 2개로 이루어진 아주 간단한 버스에서 조차 데드락(deadlock)이 생길 수 있는 가능성도 발생한다.The AXI protocol opens up the possibility of increasing the utilization of on-chip interconnects through Multiple Outstanding Requests (MOR) and AXI ID tagging, but can cause deadlock on even a very simple bus with only one master and two slaves. possibility arises.

CDAS는 AXI 트랜잭션의 비순차 실행에 의한 데드락을 피하기 위한 방법이다. CDAS is a method to avoid deadlocks caused by out-of-order execution of AXI transactions.

AXI 프로토콜에서 간단히 각 트랜잭션은 요청(Req)과 응답(Resp) 단계(phase)로 이루어져 있고 마스터가 슬레이브에게 요청을 보낸 후 응답을 받으면 한 개의 트랜잭션이 완료된다. In the AXI protocol, each transaction simply consists of a request (Req) and a response (Resp) phase, and when the master sends a request to the slave and receives a response, one transaction is completed.

AXI 프로토콜 스펙문서에서 정의하고 있는 트랜잭션 오더링(Ordering)은 다음과 같은 특징을 갖는다. Transaction ordering defined in the AXI protocol specification document has the following characteristics.

첫째, 같은 AXI ID에 대해 마스터에 되돌아오는 응답은 마스터가 요청을 보낸 순서와 일치해야 한다.First, the responses returned to the master for the same AXI ID must match the order in which the master sent the requests.

둘째, 슬레이브에서 다른 AXI ID를 사용하는 트랜잭션들에 대해서는 요청을 받은 순서에 관계없이 응답을 보낼 수 있다.Second, for transactions using different AXI IDs from the slave, responses can be sent regardless of the order in which the requests are received.

슬레이브가 응답을 비순차적으로 발생시킴으로서 데드락이 발생할 수 있다.Deadlocks can occur as slaves generate responses out of sequence.

일부 응답을 버스 내부의 버퍼에 저장해야 한다. 버스 내부의 응답 버퍼는 슬레이브 별 FIFO로 구현될 수 있는데, 복수 개의 응답들 사이의 의존관계가 발생하게 되며, 상기 의존관계가 서로가 서로를 기다리는 형태(Cyclic Dependency)가 되어 어느 트랜잭션도 더 이상 진행하지 못하는 데드락이 발생한다. Some responses need to be stored in a buffer inside the bus. The response buffer inside the bus can be implemented as a FIFO for each slave, and a dependency relationship between a plurality of responses occurs, and the dependency becomes a cyclic dependency where each other waits for each other (Cyclic Dependency), and any transaction is no longer performed Deadlocks that can't happen.

CDAS는 이러한 데드락을 피하기 위해, 싱글 슬레이브(Single Slave) 방식과 ID별 싱글 슬레이브(Single Slave per ID) 방식이라는 두 가지 방식의 CDAS를 제공할 수 있다. 아래 두 가지 방법에는 성능과 자원 간의 트레이드-오프(trade-off) 관계가 있다. In order to avoid such a deadlock, the CDAS may provide two types of CDAS: a single slave method and a single slave per ID method. The two methods below have a trade-off relationship between performance and resources.

먼저 "싱글 슬레이브" 방식은 가장 간단하게 AXI ID에 상관없이 마스터가 한 번에 하나씩의 슬레이브 만을 액세스하도록 허용하는 방법이다. 이 경우 데드락의 가능성은 없앴지만 다른 슬레이브로 가는 트랜잭션이 이어지는 시점에서 트랜잭션이 파이프라인(pipeline)이 형성되지 못하므로 성능이 떨어지는 단점이 있다. First, the "single-slave" method is the simplest way to allow the master to access only one slave at a time, regardless of the AXI ID. In this case, the possibility of deadlock is eliminated, but there is a disadvantage in that performance is lowered because the transaction is not pipelined when a transaction to another slave continues.

두 번째 CDAS 방식인 "ID별 싱글 슬레이브" 의 경우 "싱글 슬레이브" CDAS 방식의 단점을 보완하기 위해 AXI ID가 같은 트랜잭션에 대해서만 싱글 슬레이브 규칙을 적용하는 방법이다. 이때, 각 ID 별로 진행 중인 트랜잭션이 어떤 슬레이브를 접근 중인지 기억할 저장공간이 필요하기 때문에 버스의 구현이 복잡해지는 단점이 있지만, ID가 다르면 이어지는 트랜잭션이 다른 슬레이브로 향하더라도 트랜잭션 파이프라인이 유지되어 성능저하를 피할 가능성이 더 높다. ID별 싱글 슬레이브 CDAS가 적용되면 CDAS가 적용되지 않은 것과 동일한 트랜잭션 진행이 가능하여 성능저하를 피할 수 있다. In the case of the second CDAS method, "Single Slave by ID", to compensate for the shortcomings of the "Single Slave" CDAS method, the single slave rule is applied only to transactions with the same AXI ID. At this time, the bus implementation is complicated because storage space is required to remember which slave the transaction in progress is accessing by each ID. more likely to avoid If single-slave CDAS per ID is applied, the same transaction can be performed as if CDAS is not applied, so performance degradation can be avoided.

관련 기술로서, 미국 등록특허번호 US 9,379,980에는 AXI ID를 압축하는 방법이 공개되어 있다. As a related art, US Patent No. US 9,379,980 discloses a method of compressing an AXI ID.

상술한 내용은 본 발명의 이해를 돕기 위하여 제시된 것으로서, 상술한 내용에는 본 특허출원 발명의 발명자들이 본 특허출원의 출원 시점에 공개하지 않은 내용이 포함되어 있을 수 있다. 따라서 상술한 내용 모두가 당연히 종래 기술(prior art)인 것으로 간주되어서는 안된다. 또한 상술한 내용에 의해 본 발명의 범위가 제한되어서는 안된다.The above-mentioned contents are presented to help the understanding of the present invention, and the above-mentioned contents may include contents not disclosed by the inventors of the present invention at the time of filing the present patent application. Accordingly, all of the above should not be considered as prior art of course. In addition, the scope of the present invention should not be limited by the above contents.

본 발명은 버스를 통해 이동하는 요청 및 응답에 포함된 ID의 매핑을 처리하는 기능부의 이용에 따라 증가하는 투입 리소스를 감소시키기 위한 기술을 제공하고자 한다. An object of the present invention is to provide a technique for reducing input resources that increase according to the use of a functional unit that handles mapping of IDs included in requests and responses moving through a bus.

본 발명의 일 관점에 따라 제공되는 트랜잭션 처리 장치는 요청 스위치부(211, 241); 응답 스위치부(212, 242); CDAS 파트(221, 222); ID 리매핑부 (231); 및 ID 복원부(232)를 포함한다. 상기 요청 스위치부는, 마스터 장치(10)로부터의 요청을 입력받아, 상기 요청이 제1그룹의 트랜잭션에 속한 경우에는 상기 요청을 상기 CDAS 파트를 통해 버스(30)로 전송하고, 상기 요청이 제2그룹의 트랜잭션에 속한 경우에는 상기 요청을 상기 ID 리매핑부를 통해 상기 버스로 전송하도록 되어 있다. 상기 응답 스위치부는, 상기 버스로부터 응답을 입력받아, 상기 응답이 상기 제1그룹의 트랜잭션에 속한 경우에는 상기 응답을 상기 CDAS 파트를 통해 응답 재정렬부(200)(response reordering)에게 제공하고, 상기 응답이 상기 제2그룹의 트랜잭션에 속한 경우에는 상기 응답을 상기 ID 복원부를 통해 상기 응답 재정렬부로 제공하도록 되어 있다. 상기 응답 재정렬부는 상기 응답 스위치로부터 수신한 응답을 상기 마스터 장치에게 제공하도록 되어 있다. A transaction processing apparatus provided according to an aspect of the present invention includes request switch units 211 and 241; response switch units 212 and 242; CDAS parts (221, 222); ID remapping unit 231; and an ID restoration unit 232 . The request switch unit receives a request from the master device 10 and, when the request belongs to a first group transaction, transmits the request to the bus 30 through the CDAS part, and the request is transmitted to the second group. In the case of belonging to a group transaction, the request is transmitted to the bus through the ID remapping unit. The response switch unit receives a response from the bus, and when the response belongs to the first group of transactions, provides the response to the response reordering unit 200 through the CDAS part, and the response If the transaction belongs to the second group, the response is provided to the response reordering unit through the ID recovery unit. The response reordering unit is configured to provide a response received from the response switch to the master device.

이때, 상기 트랜잭션 처리 장치는 상기 요청을 출력하도록 구성되는 상기 마스터 장치(10); 상기 응답을 출력하도록 구성되는 슬레이브 장치(41); 및 상기 마스터 장치와 상기 슬레이브 장치를 연결하도록 구성되는 상기 버스;를 더 포함할 수 있다.In this case, the transaction processing device includes: the master device 10 configured to output the request; a slave device (41) configured to output the response; and the bus configured to connect the master device and the slave device.

이때, 상기 트랜잭션 처리 장치는 상기 마스터 장치로부터의 요청을 입력받아 상기 요청을 분석하는 요청 분석부(251);를 더 포함할 수 있다. In this case, the transaction processing device may further include a request analysis unit 251 that receives the request from the master device and analyzes the request.

상기 각각의 요청은 제1그룹의 트랜잭션 또는 제2그룹의 트랜잭션에 속한 것으로 분류될 수 있다. 각 요청을 상기 제1그룹의 트랜잭션 및 상기 제2그룹의 트랜잭션 중 어느 하나의 그룹으로 분류하는 기준은 소정의 규칙에 따를 수 있다. Each of the above requests may be classified as belonging to a transaction of a first group or a transaction of a second group. A criterion for classifying each request into one of the first group transaction and the second group transaction may follow a predetermined rule.

이때, 상기 요청 분석부는, 상기 요청의 타겟 슬레이브 장치가 유니크 ID를 수용하는 장치라고 판단된 경우에는 상기 요청이 상기 제2그룹의 트랜잭션에 속한 것으로 분류하도록 되어 있을 수 있다.In this case, when it is determined that the target slave device of the request is a device that accepts a unique ID, the request analysis unit may classify the request as belonging to the transaction of the second group.

또는, 상기 요청 분석부는, 상기 마스터 장치와 상기 슬레이브 장치가 포함된 시스템이 유니크 ID를 사용하는 것이 유리하다고 판단되는 경우에는 상기 요청이 상기 제2그룹의 트랜잭션에 속한 것으로 분류하도록 되어 있을 수 있다.Alternatively, when it is determined that it is advantageous for the system including the master device and the slave device to use a unique ID, the request analysis unit may classify the request as belonging to the second group of transactions.

또는, 상기 요청 분석부는, 상기 요청이 긴급 요청이며 상기 요청이 상기 요청의 타겟 슬레이브 장치에 도달할 수 있는 경로가 복수 개인 경우에는 상기 요청이 상기 제2그룹의 트랜잭션에 속한 것으로 분류할 수 있다. 그리고 상기 ID 리매핑부는 상기 버스 상에서 순번 의존성(ordering dependency)을 제거하여 적응적으로 처리(adaptive routing)도록 되어 있을 수 있다.Alternatively, when the request is an emergency request and there are multiple paths through which the request can reach a target slave device of the request, the request analyzer may classify the request as belonging to the second group of transactions. In addition, the ID remapping unit may be configured to perform adaptive routing by removing an ordering dependency on the bus.

또는, 상기 요청 분석부는, 상기 요청이, 상기 요청을 상기 마스터로부터 수신하기 이전에 상기 마스터 장치로부터 수신한 이전 요청들과의 관계에서 순번 의존성을 갖고 있지 않은 것으로 판단되면, 상기 요청이 상기 제1그룹의 트랜잭션에 속한 것으로 분류하도록 되어 있을 수 있다.Alternatively, the request analysis unit, if it is determined that the request does not have a sequence dependency in a relationship with previous requests received from the master device before receiving the request from the master, the request is the first It may be configured to be classified as belonging to a group transaction.

이때, 상기 트랜잭션 처리 장치는 상기 버스로부터의 응답을 입력받아 상기 응답을 분석하는 응답 분석부(252);를 더 포함할 수 있다. 상기 응답 분석부는, 상기 응답이 상기 제1그룹의 트랜잭션에 속한 것으로 분류되는 것인지 아니면 상기 제2그룹의 트랜잭션에 속한 것으로 분류되는 것인지를 결정하도록 되어 있을 수 있다.In this case, the transaction processing apparatus may further include a response analyzer 252 that receives the response from the bus and analyzes the response. The response analyzer may be configured to determine whether the response is classified as belonging to the transaction of the first group or as belonging to the transaction of the second group.

이때, 상기 요청 스위치부는, 상기 요청에 추가정보를 부가하도록 되어 있을 수 있다. 상기 추가정보는 상기 요청이 상기 제1그룹의 트랜잭션에 속한 것인지 아니면 상기 제2그룹의 트랜잭션에 속한 것인지를 나타내는 정보일 수 있다. 상기 요청을 수신한 슬레이브 장치는, 상기 요청에 대한 응답을 출력할 때에 상기 요청에 대한 응답에 상기 추가정보를 포함시키도록 되어 있을 수 있다. 상기 응답 분석부는 상기 특정 응답 내에 포함되어 있는 상기 추가정보를 확인함으로써 상기 특정 응답이 상기 제1그룹의 트랜잭션에 속한 것인지 아니면 상기 제2그룹의 트랜잭션에 속한 것인지를 결정하도록 되어 있을 수 있다. In this case, the request switch unit may be configured to add additional information to the request. The additional information may be information indicating whether the request belongs to a transaction of the first group or a transaction of the second group. The slave device receiving the request may be configured to include the additional information in a response to the request when outputting a response to the request. The response analyzer may be configured to determine whether the specific response belongs to the transaction of the first group or the transaction of the second group by checking the additional information included in the specific response.

본 발명의 일 관점에 따라, 마스터 장치, 슬레이브 장치, 및 버스를 포함하는 시스템 장치에서, 상기 버스를 통과하여 송수신되는 상기 마스터 장치와 상기 슬레이브 장치 간의 트랜잭션의 경로를 제어하는 트랜잭션 처리 장치를 이용하여 상기 트랜잭션을 처리하는 트랜잭션 처리 방법이 제공될 수 있다. 이때, 상기 트랜잭션 처리 장치는, 요청 스위치부(211, 241), 응답 스위치부(212, 242), CDAS 파트(221, 222), ID 리매핑부(231), ID 복원부(232), 요청 분석부(251), 응답 분석부(252), 및 응답 재정렬부(200)를 포함한다. According to one aspect of the present invention, in a system device including a master device, a slave device, and a bus, using a transaction processing device that controls a path of a transaction between the master device and the slave device transmitted and received through the bus A transaction processing method for processing the transaction may be provided. In this case, the transaction processing device includes a request switch unit 211 and 241 , a response switch unit 212 and 242 , CDAS parts 221 and 222 , an ID remapping unit 231 , an ID restoration unit 232 , and request analysis. It includes a unit 251 , a response analysis unit 252 , and a response reordering unit 200 .

상기 트랜잭션 처리 방법은, 상기 요청 분석부가, 상기 마스터 장치로부터의 요청을 입력받는 단계; 상기 요청 분석부가, 상기 요청이 제1그룹의 트랜잭션으로 분류되는 것인지 아니면 제2그룹의 트랜잭션으로 분류되는 것인지를 결정하는 제1결정단계; 상기 요청 스위치부가, 상기 요청이 상기 제1그룹의 트랜잭션으로 분류된 경우에는 상기 요청을 상기 CDAS 파트를 통해 상기 버스로 전송되도록 하기 위하여 상기 요청을 상기 CDAS 파트 쪽으로 전송하고, 상기 요청이 상기 제2그룹의 트랜잭션으로 분류된 경우에는 상기 요청을 ID 리매핑부를 통해 상기 버스로 전송되도록 하기 위하여 상기 요청을 상기 ID 리매핑부 쪽으로 전송하는 제1전송단계; 상기 응답 분석부가, 상기 버스로부터 응답을 입력받는 제1입력단계; 상기 응답 분석부가, 상기 응답 스위치부가, 상기 응답이 상기 제1그룹의 트랜잭션으로 분류된 경우에는 상기 응답을 상기 CDAS 파트를 통해 상기 응답 재정렬부에게 전송되도록 하기 위하여 상기 응답을 상기 CDAS 파트에게 전송하고, 상기 요청이 상기 제2그룹의 트랜잭션으로 분류된 경우에는 상기 응답을 상기 ID 복원부를 통해 상기 응답 재정렬부에게 전송되도록 하기 위하여 상기 응답을 상기 ID 복원부에게 전송하는 제2전송단계; 및 상기 응답 재정렬부가, 상기 응답 스위치부로부터 수신한 상기 응답을 상기 마스터 장치에게 제공하는 단계;를 포함한다. The transaction processing method may include: receiving, by the request analysis unit, a request from the master device; a first determining step of determining, by the request analysis unit, whether the request is classified as a first group transaction or a second group transaction; the request switch unit, when the request is classified as the first group of transactions, transmits the request to the CDAS part to transmit the request to the bus through the CDAS part, and the request is sent to the second group a first transmission step of transmitting the request to the ID remapping unit so that the request is transmitted to the bus through the ID remapping unit when classified as a group transaction; a first input step of receiving, by the response analysis unit, a response from the bus; The response analysis unit, the response switch unit, transmits the response to the CDAS part in order to transmit the response to the response reordering unit through the CDAS part when the response is classified as the first group transaction; , a second transmission step of transmitting the response to the ID restoration unit so that the response is transmitted to the response reordering unit through the ID restoration unit when the request is classified as the second group transaction; and providing, by the response reordering unit, the response received from the response switch unit to the master device.

상기 트랜잭션 처리 방법은, 상기 제1결정단계와 상기 제1전송단계 사이에, 상기 요청 스위치부가, 상기 요청이 상기 제1그룹의 트랜잭션에 속한 것인지 아니면 상기 제2그룹의 트랜잭션에 속한 것인지를 나타내는 추가정보를 상기 요청에 부가하는 단계를 더 포함할 수 있다.In the transaction processing method, between the first determining step and the first transmitting step, the request switch unit is configured to indicate whether the request belongs to the first group transaction or the second group transaction. The method may further include adding information to the request.

이때, 상기 트랜잭션 처리 방법은, 상기 제1입력단계와 상기 제2전송단계 사이에, 상기 응답 분석부가, 상기 응답 내에 포함되어 있는 추가정보를 확인함으로써 상기 응답이 상기 제1그룹의 트랜잭션에 속한 것인지 아니면 상기 제2그룹의 트랜잭션에 속한 것인지를 결정하는 단계를 더 포함할 수 있다.At this time, in the transaction processing method, between the first input step and the second transmission step, the response analysis unit checks whether the response belongs to the transaction of the first group by checking additional information included in the response. Otherwise, the method may further include determining whether the transaction belongs to the second group.

본 발명의 일 관점에 따라 상기 트랜잭션 처리 장치, 프로세서, 및 메모리를 포함하는 컴퓨팅 장치가 제공될 수 있다.According to an aspect of the present invention, a computing device including the transaction processing device, a processor, and a memory may be provided.

본 발명에 따르면 버스를 통해 이동하는 요청 및 응답에 포함된 ID의 매핑을 처리하는 기능부의 이용에 따라 증가하는 투입 리소스를 감소시키기 위한 기술을 제공할 수 있다.According to the present invention, it is possible to provide a technique for reducing input resources that increase according to the use of a functional unit that handles mapping of IDs included in requests and responses moving through a bus.

도 1은 본 발명의 일 실시예에 따른 트랜잭션 처리 장치의 구성을 나타낸 것이다.
도 2는 본 발명의 일 실시에에 따라 제공되는 트랜잭션 처리 장치가 마스터장치로부터의 요청을 처리하는 방법을 나타낸 순서도이다.
도 3은 본 발명의 일 실시에에 따라 제공되는 트랜잭션 처리 장치가 버스로부터 수신한 응답을 처리하는 방법을 나타낸 순서도이다.
도 4는 본 발명의 일 실시예에 따른 데이터 처리 시스템을 나타낸 것이다.
1 shows the configuration of a transaction processing apparatus according to an embodiment of the present invention.
2 is a flowchart illustrating a method for processing a request from a master device by a transaction processing device provided according to an embodiment of the present invention.
3 is a flowchart illustrating a method for processing a response received from a bus by a transaction processing apparatus provided according to an embodiment of the present invention.
4 shows a data processing system according to an embodiment of the present invention.

이하, 본 발명의 실시예를 첨부한 도면을 참고하여 설명한다. 그러나 본 발명은 본 명세서에서 설명하는 실시예에 한정되지 않으며 여러 가지 다른 형태로 구현될 수 있다. 본 명세서에서 사용되는 용어는 실시예의 이해를 돕기 위한 것이며, 본 발명의 범위를 한정하고자 의도된 것이 아니다. 또한, 이하에서 사용되는 단수 형태들은 문구들이 이와 명백히 반대의 의미를 나타내지 않는 한 복수 형태들도 포함한다.Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings. However, the present invention is not limited to the embodiments described herein and may be implemented in various other forms. The terminology used in this specification is intended to help the understanding of the embodiments, and is not intended to limit the scope of the present invention. Also, singular forms used hereinafter include plural forms unless the phrases clearly indicate the opposite.

도 1은 본 발명의 일 실시예에 따른 트랜잭션 처리 장치의 구성을 나타낸 것이다.1 shows the configuration of a transaction processing apparatus according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 트랜잭션 처리 장치(20)는, 상기 트랜잭션 처리 장치(20)의 기능을 포함하는 IC 칩을 지칭하는 것일 수 있다. 상기 IC 칩은 SoC일 수 있다. 그리고 상기 IC 칩은 독립전원을 갖는 컴퓨팅 장치를 구성하는 부품일 수 있다.The transaction processing apparatus 20 according to an embodiment of the present invention may refer to an IC chip including the functions of the transaction processing apparatus 20 . The IC chip may be a SoC. In addition, the IC chip may be a component constituting a computing device having an independent power source.

상기 트랜잭션 처리 장치(20)는, 요청 스위치부(211, 241), 응답 스위치부(212, 242), CDAS 파트(221, 222), ID 리매핑부(231), 및 ID 복원부(231)를 포함할 수 있다.The transaction processing device 20 includes the request switch units 211 and 241 , the response switch units 212 and 242 , the CDAS parts 221 and 222 , the ID remapping unit 231 , and the ID restoration unit 231 . may include

요청 스위치부(211, 241)는 예컨대 요청측 디멀티플렉서(211)와 요청측 멀티플렉서(241)로 구성될 수 있다.The request switch units 211 and 241 may include, for example, a request-side demultiplexer 211 and a request-side multiplexer 241 .

응답 스위치부(212, 242는 예컨대 응답측 디멀티플렉서(242)와 응답측 멀티플렉서(212)로 구성될 수 있다.The response switch units 212 and 242 may include, for example, a response-side demultiplexer 242 and a response-side multiplexer 212 .

상기 CDAS 파트(221, 222)는 요청측 CDAS 파트(221)와 응답측 CDAS 파트(222)로 이루어질 수 있다. The CDAS parts 221 and 222 may include a request-side CDAS part 221 and a response-side CDAS part 222 .

요청(request)은 마스터 장치(10)로부터 상기 트랜잭션 처리 장치(20)에게 제공될 수 있다.A request may be provided from the master device 10 to the transaction processing device 20 .

상기 요청측 CDAS 파트(221)는 상기 마스터 장치(10)로부터 수신한 요청의 내용 자체는 변경하지 않지만, 복수 개의 요청들을 상기 버스(30)에 제공하는 시점을 제어하는 리퀘스트 이슈 타이밍 스케쥴링(request issue timing scheduling) 기능을 수행할 수 있다. 상기 리퀘스트 이슈 타이밍 스케쥴링은, 상기 마스터 장치(10)로부터 슬레이브 장치들(41, 42)에게 전달되는 복수 개의 요청들 각각에 대한 응답의 발생 순서의 예측이 어려운 경우에, 상기 순서에 따른 문제의 발생을 막기 위하여 슬레이브에 전달되는 리퀘스트(요청)의 전달 시점을 스케쥴링하는 것이다. The requesting CDAS part 221 does not change the content of the request received from the master device 10, but controls the timing of providing a plurality of requests to the bus 30. Request issue timing scheduling (request issue) timing scheduling) function can be performed. In the request issue timing scheduling, when it is difficult to predict the order of occurrence of responses to each of a plurality of requests transferred from the master device 10 to the slave devices 41 and 42, a problem occurs according to the order This is to schedule the delivery time of the request (request) delivered to the slave in order to prevent it.

상기 요청측 CDAS 파트(221)은 상술한 'ID별 싱글 슬레이브' 방식 또는 '싱글 슬레이브' 방식에 따라 리퀘스트 이슈 타이밍 스케쥴링을 수행할 수 있다. The request-side CDAS part 221 may perform request issue timing scheduling according to the 'single slave per ID' scheme or the 'single slave' scheme described above.

그런데 만일 현재 제1시점에 상기 요청측 CDAS 파트(221)에 입력된 제1요청의 ID인 제1 ID와, 바로 직전에 상기 버스(30)로 출력된 요청인 제2요청의 ID인 제2 ID 간의 의존성(dependency)이 없는 것으로 확인되면, 상기 요청측 CDAS 파트(221)은 상기 제1요청에 대한 리퀘스트 이슈 타이밍 스케쥴링 없이 곧바로 상기 제1요청을 출력할 수 있다. 또는, 만일 현재 제1시점에 상기 요청측 CDAS 파트(221)에 입력된 제1요청의 ID인 제1 ID와, 바로 직후에 상기 요청측 CDAS 파트(221)에 입력될 요청인 제3요청의 ID인 제3 ID 간의 의존성(dependency)이 없는 것으로 확인되면, 상기 요청측 CDAS 파트(221)은 상기 제1요청에 대한 리퀘스트 이슈 타이밍 스케쥴링 없이 곧바로 상기 제1요청을 출력할 수 있다. 이러한 방식을 특히 '바이패스' 방식이라고 지칭할 수 있다. However, if the first ID that is the ID of the first request input to the requesting CDAS part 221 at the first time point and the second ID that is the ID of the second request that is output to the bus 30 immediately before If it is confirmed that there is no dependency between IDs, the requesting CDAS part 221 may directly output the first request without scheduling a request issue timing for the first request. Alternatively, if the first ID, which is the ID of the first request input to the requesting CDAS part 221 at the first time point, and the third request, which is the request to be input into the requesting CDAS part 221 immediately after, If it is confirmed that there is no dependency between the third IDs that are IDs, the requesting CDAS part 221 may directly output the first request without scheduling a request issue timing for the first request. This method may be specifically referred to as a 'bypass' method.

즉, 상기 요청측 CDAS 파트(221)은 상술한 'ID별 싱글 슬레이브' 방식 또는 '싱글 슬레이브' 방식 또는 '바이패스' 방식 중 하나의 방식으로 동작할 수 있다.That is, the request-side CDAS part 221 may operate in one of the above-described 'single slave per ID' scheme, 'single slave' scheme, or 'bypass' scheme.

상기 ID 리매핑부(231)는 상기 마스터 장치(10)로부터 입력된 요청에 포함된 ID인 제1 ID를 다른 형식의 ID로 변환할 수 있다. The ID remapping unit 231 may convert the first ID, which is the ID included in the request input from the master device 10 , into another type of ID.

일 실시예에서 상기 ID 리매핑부(231)는 상기 제1 ID를 한 개의 다른 ID인 IDR1로 1:1로 변환될 수 있다. 즉, 상기 제1 ID가 결정되면 한 개의 다른 IDR1를 알아낼 수 있으며, 그 반대도 가능하다. In an embodiment, the ID remapping unit 231 may convert the first ID into one other ID, ID R1 , in a 1:1 ratio. That is, when the first ID is determined, one other ID R1 can be found, and vice versa.

다른 실시예에서 상기 ID 리매핑부(231)는 상기 제1 ID를 복수 개의 다른 ID들인 IDR1, IDR2, ..., 중 IDRN 중 어느 하나로 1:N 변환될 수 있다. 이때, 임의의 요청 또는 응답의 ID가 IDRk(k=1, 2, ..., N) 것으로 확인되면, 이에 대응하는 변환 ID가 상기 제1 ID임을 알아낼 수 있다.In another embodiment, the ID remapping unit 231 may convert the first ID 1:N into any one of ID RN among a plurality of other IDs ID R1 , ID R2 , ...,. At this time, if it is confirmed that the ID of any request or response is ID Rk (k=1, 2, ..., N), it is possible to find out that the corresponding conversion ID is the first ID.

즉, 상기 ID 리매핑부(231)는 상기 마스터 장치(10)로부터 입력된 요청에 포함된 ID인 제1 ID를 다른 형식의 ID로 변환함으로써 상기 요청의 일부 값을 변경한다. 그러나 거의 대부분의 요청에 대하여 상기 ID 리매핑부(231)는 상기 마스터 장치(10)로부터 입력되는 요청의 리퀘스트 이슈 타이밍 스케쥴링을 수행하지는 않는다.That is, the ID remapping unit 231 changes a partial value of the request by converting the first ID, which is the ID included in the request input from the master device 10, into an ID of a different format. However, for most of the requests, the ID remapping unit 231 does not perform the request issue timing scheduling of the requests input from the master device 10 .

상기 ID 리매핑부(231)이 수행한 작업의 내용은 상기 ID 리매핑부(231)이 상기 ID 복원부(232)에게 전달할 수 있다. 상기 ID 복원부(232)는 상기 전달된 내용을 기초로 상기 버스(30)로부터 수신한 응답의 ID를 복원할 수 있다.The ID remapping unit 231 may transmit the contents of the work performed by the ID remapping unit 231 to the ID restoring unit 232 . The ID recovery unit 232 may recover the ID of the response received from the bus 30 based on the transmitted content.

상기 ID 리매핑부(231)는 ID 매핑을 위한 테이블을 갖고 있어야 하는 등의 이유로 인하여 시스템의 복잡도를 높이는 주요 원인 중 하나이다. 상기 ID 리매핑부(231)로 인하여 상기 트랜잭션 처리 장치(20)의 복잡도가 높아지고 리소스도 많이 투입된다. The ID remapping unit 231 is one of the main causes of increasing the complexity of the system due to reasons such as having a table for ID mapping. Due to the ID remapping unit 231, the complexity of the transaction processing device 20 is increased, and a lot of resources are inputted.

따라서 바람직한 일 실시예에서 상기 ID 리매핑부(231)의 사용빈도를 줄임으로써 리소스를 절약할 필요가 있다.Therefore, in a preferred embodiment, it is necessary to save resources by reducing the frequency of use of the ID remapping unit 231 .

상기 ID 복원부(231)는 상기 ID 리매핑부(231)와 함께 요청 및 응답에 대한 ID 리매핑 기능을 완성할 수 있다.The ID restoration unit 231 may complete an ID remapping function for requests and responses together with the ID remapping unit 231 .

본 발명의 일 실시예에서, 상기 마스터 장치(10)로부터 제공되는 요청들은 제1그룹의 트랜잭션에 속하거나 또는 제2그룹의 트랜잭션에 속하는 것으로 분류될 수 있다. 상기 제1그룹의 트랜잭션과 상기 제2그룹의 트랜잭션은 각각 제1카테고리의 트랜잭션 및 제2카테고리의 트랜잭션으로 지칭될 수도 있다. 각각의 요청들은 상기 제1그룹 또는 상기 제2그룹으로 분류하는 기준의 예는 후술한다. In one embodiment of the present invention, the requests provided from the master device 10 may be classified as belonging to a transaction of a first group or a transaction of a second group. The first group transaction and the second group transaction may be referred to as a first category transaction and a second category transaction, respectively. Examples of criteria for classifying each request into the first group or the second group will be described later.

상기 요청 스위치부(211, 241)는, 마스터 장치(10)로부터의 요청을 입력받아, 상기 요청이 제1그룹의 트랜잭션에 속한 경우에는 상기 요청을 상기 CDAS 파트(221, 222)(요청측 CDAS 파트(221))를 통해 상기 버스(30)로 전송하고, 상기 요청이 제2그룹의 트랜잭션에 속한 경우에는 상기 요청을 ID 리매핑부(231)를 통해 상기 버스(30)로 전송하도록 되어 있다. The request switch unit 211, 241 receives a request from the master device 10, and, when the request belongs to a first group transaction, transmits the request to the CDAS parts 221 and 222 (request-side CDAS). part 221 ) to the bus 30 , and when the request belongs to a second group of transactions, the request is transmitted to the bus 30 through the ID remapping unit 231 .

상기 버스(30)은 인터커넥트라고 지칭될 수도 있다. 일 실시예에서 상기 인터커넥트는 알려져 있는 AXI 프로토콜을 따른 수 있다.The bus 30 may also be referred to as an interconnect. In one embodiment, the interconnect may conform to the known AXI protocol.

상기 응답 스위치부(212, 242)는, 상기 버스(30)로부터 응답(response)을 입력받아, 상기 응답이 상기 제1그룹의 트랜잭션에 속한 경우에는 상기 응답을 상기 CDAS 파트(221, 222)(응답측 CDAS 파트(222))를 통해 응답 재정렬부(response reordering)(200)에게 제공하고, 상기 응답이 상기 제2그룹의 트랜잭션에 속한 경우에는 상기 응답을 상기 ID 복원부(232)를 통해 상기 응답 재정렬부(200)로 제공하도록 되어 있다. The response switch unit 212, 242 receives a response from the bus 30, and when the response belongs to the first group of transactions, sends the response to the CDAS parts 221 and 222 ( The response-side CDAS part 222) provides the response to the response reordering unit 200, and when the response belongs to the second group of transactions, the response is transmitted through the ID restoration unit 232. It is provided to the response reordering unit 200 .

상기 응답 재정렬부(200)는 응답 순서 복원부로 지칭될 수도 있다. 상기 응답 재정렬부(200)는 상기 응답 스위치부(212, 242)로부터 수신한 응답을 상기 마스터 장치(10)에게 제공하도록 되어 있다. 상기 응답 재정렬부(200)는, 상기 트랜잭션 처리 장치(20)이 상기 버스(30)로부터 수신한 응답들을 상기 트랜잭션 처리 장치(20)이 상기 마스터 장치(10)로부터 수신한 요청들의 순서에 맞추어 상기 마스터 장치(10)에게 되돌려줄 수 있도록, 상기 트랜잭션 처리 장치(20)이 상기 버스(30)로부터 수신한 응답들의 순서를 정렬하는 기능을 수행할 수 있다.The response reordering unit 200 may also be referred to as a response order restoration unit. The response reordering unit 200 is configured to provide the response received from the response switch units 212 and 242 to the master device 10 . The response reordering unit 200 aligns the responses received by the transaction processing device 20 from the bus 30 in the order of the requests received by the transaction processing device 20 from the master device 10 . The transaction processing unit 20 may perform a function of arranging the order of the responses received from the bus 30 so as to be returned to the master device 10 .

이때, 상기 트랜잭션 처리 장치(20)은 상기 마스터 장치(10)로부터의 요청을 입력받아 상기 요청의 내용을 분석하는 요청 분석부(251)를 더 포함할 수 있다. In this case, the transaction processing device 20 may further include a request analysis unit 251 that receives the request from the master device 10 and analyzes the contents of the request.

본 발명의 일 실시예에서, 상기 요청 분석부(251)는, 상기 요청의 타겟 슬레이브 장치가 유니크 ID를 수용하는 장치라고 판단된 경우에는 상기 요청이 상기 제2그룹의 트랜잭션에 속한 것으로 분류하도록 되어 있을 수 있다.In an embodiment of the present invention, the request analyzing unit 251 is configured to classify the request as belonging to the second group of transactions when it is determined that the target slave device of the request is a device that accepts a unique ID. there may be

상기 요청의 타겟 슬레이브 장치가 유니크 ID를 수용하는 장치라고 판단하는 것은, 상기 요청 분석부(251)가 상기 요청에 포함된 타겟 주소를 확인하여 상기 타겟 주소를 갖는 슬레이브 장치가 유니크 ID를 수용하는 장치인지 여부를 확인함으로써 이루어질 수 있다.Determining that the target slave device of the request is a device that accepts the unique ID is a device in which the request analysis unit 251 checks the target address included in the request and the slave device having the target address accepts the unique ID This can be done by checking whether or not it is recognized.

상술한 유니크 ID를 수용하는 슬레이브 장치의 특징은 다음과 같이 설명될 수 있다. 예컨대 우선 슬레이브 장치인 제1장치가 제1 ID를 갖는 제1요청을 수신할 수 있다. 그 다음 상기 제1장치가 상기 제1요청에 대한 응답인 제1응답을 출력하기 이전에, 상기 제1 ID를 갖는 다른 요청인 제2요청을 수신할 수 있다. 이때 만일, 상기 제1장치가 유니크 ID를 수용하는 장치라면, 상기 제1응답을 출력하기 전에는 상기 제2요청을 막아야 한다. 그렇지 않을 경우 제1장치는 오작동할 수 있다. 그러나 상기 제1장치가 유니크 ID를 수용하는 장치라고 하더라도, 상기 제1 ID와는 다른 제2 ID를 갖는 다른 요청은 수신하여 처리할 수 있다. The characteristics of the slave device accommodating the above-described unique ID can be described as follows. For example, first, a first device that is a slave device may receive a first request having a first ID. Then, before the first device outputs a first response that is a response to the first request, it may receive a second request that is another request having the first ID. In this case, if the first device is a device that accepts a unique ID, the second request should be blocked before outputting the first response. Otherwise, the first device may malfunction. However, even if the first device is a device that accepts a unique ID, another request having a second ID different from the first ID may be received and processed.

상기 버스(30)가 예컨대 메쉬 타입의 버스인 경우, 한 개의 요청 또는 응답이 흘러가는 경로가 상기 버스(30) 내에 복수 개 존재할 수 있다. 이 경우, 동일한 ID를 갖는 요청들이, 자신들이 발송된 순서를 그대로 유지하여 타겟 슬레이브에 도달한다는 보장은 없다. 이하 이러한 현상과 관련된 본 발명의 다른 실시예에 다른 구성을 설명한다.When the bus 30 is, for example, a mesh-type bus, a plurality of paths through which one request or response flows may exist in the bus 30 . In this case, there is no guarantee that requests with the same ID arrive at the target slave in the same order in which they were sent. Hereinafter, another configuration will be described in another embodiment of the present invention related to this phenomenon.

본 발명의 다른 실시예에서, 상기 요청 분석부(251)는, 상기 요청이 긴급 요청인 것이며, 상기 요청이 상기 요청의 타겟 주소가 나타내는 타겟 슬레이브 장치에 도달할 수 있는 경로가 복수 개인 경우에는 상기 요청이 상기 제2그룹의 트랜잭션에 속한 것으로 분류하도록 되어 있을 수 있다. 이때, 상기 ID 리매핑부(231)는 상기 버스(30) 상에서 순번 의존성(ordering dependency)를 제거하여 적응적으로 처리(adaptive routing)도록 되어 있을 수 있다.In another embodiment of the present invention, when the request is an emergency request and there are a plurality of paths through which the request can reach the target slave device indicated by the target address of the request, the request analyzing unit 251 is configured to The request may be configured to be classified as belonging to the second group of transactions. In this case, the ID remapping unit 231 may be configured to adaptively process by removing an ordering dependency on the bus 30 .

이때, 상기 요청 내에는 상기 요청이 긴급한 것인지 아닌지를 나타내는 식별정보가 포함되어 있을 수 있다. 따라서 상기 요청이 긴급 요청인지 여부는 상기 요청 분석부(251)가 상기 요청을 분석함으로써 알아낼 수 있다. 상기 요청이 긴급인지 여부는 상기 마스터 장치(10)의 결정에 의해 결정된 것일 수 있다. In this case, identification information indicating whether the request is urgent or not may be included in the request. Accordingly, whether the request is an emergency request can be found by the request analysis unit 251 analyzing the request. Whether the request is urgent may be determined by the determination of the master device 10 .

본 발명의 또 다른 실시예에서, 상기 요청 분석부(251)는, 상기 요청이, 상기 요청을 상기 마스터로부터 수신하기 이전에 상기 마스터 장치로부터 수신한 이전의 모든 요청들과의 관계에서 순번 의존성을 갖고 있지 않은 것으로 판단된다면, 상기 요청이 상기 제1그룹의 트랜잭션에 속한 것으로 분류하도록 되어 있을 수 있다.In another embodiment of the present invention, the request analysis unit 251, the request, before receiving the request from the master, the order dependency in relation to all previous requests received from the master device If it is determined that it does not, the request may be configured to be classified as belonging to the first group of transactions.

상기 트랜잭션 처리 장치(20)은 상기 버스(30)로부터의 응답을 입력받아 상기 응답을 분석하는 응답 분석부(252)를 더 포함할 수 있다. 상기 응답 분석부(252)는, 상기 응답이 상기 제1그룹의 트랜잭션에 속한 것으로 분류되는 것인지 아니면 상기 제2그룹의 트랜잭션에 속한 것으로 분류되는 것인지를 결정할 수 있다.The transaction processing device 20 may further include a response analyzer 252 that receives a response from the bus 30 and analyzes the response. The response analyzer 252 may determine whether the response is classified as belonging to the transaction of the first group or the transaction of the second group.

상기 요청 스위치부(241)은 자신에 입력된 특정 요청에 추가정보를 부가하도록 되어 있을 수 있다. 상기 추가정보는 상기 특정 요청이 상기 제1그룹의 트랜잭션에 속한 것인지 아니면 상기 제2그룹의 트랜잭션에 속한 것인지를 나타내는 정보이다.The request switch unit 241 may be configured to add additional information to a specific request inputted therein. The additional information is information indicating whether the specific request belongs to the transaction of the first group or the transaction of the second group.

상기 특정 요청을 수신한 슬레이브 장치가 상기 특정 요청에 대한 응답인 특정 응답을 출력할 때에, 상기 슬레이브 장치는 상기 특정 응답에 상기 추가정보가 포함되도록 할 수 있다. When the slave device receiving the specific request outputs a specific response that is a response to the specific request, the slave device may include the additional information in the specific response.

상기 응답 분석부(252)는 상기 버스(300로부터 상기 특정 응답을 수신하면 상기 특정 응답 내에 포함되어 있는 상기 추가정보를 확인함으로써 상기 특정 응답이 상기 제1그룹의 트랜잭션에 속한 것인지 아니면 상기 제2그룹의 트랜잭션에 속한 것인지를 결정할 수 있다.When the response analysis unit 252 receives the specific response from the bus 300, by checking the additional information included in the specific response, whether the specific response belongs to the transaction of the first group or the second group You can decide whether it belongs to the transaction of

상기 트랜잭션 처리 장치(20)는, 상기 요청을 출력하도록 구성되는 상기 마스터 장치(10), 상기 응답을 출력하도록 구성되는 슬레이브 장치(41, 42), 및 상기 마스터 장치(10)와 상기 슬레이브 장치(41, 42)를 연결하도록 구성되는 상기 버스(30)를 더 포함할 수 있다.The transaction processing device 20 includes the master device 10 configured to output the request, the slave devices 41 and 42 configured to output the response, and the master device 10 and the slave device ( It may further include the bus 30 configured to connect 41 , 42 .

이때, 상기 마스터 장치(10), 상기 슬레이브 장치(41, 42), 및 상기 버스(30)를 더 포함하는 트랜잭션 처리 장치(20)을 데이터 처리 시스템(100) 또는 데이터 처리 장치(100)라고 지칭할 수도 있다.In this case, the transaction processing device 20 further including the master device 10 , the slave devices 41 and 42 , and the bus 30 is referred to as a data processing system 100 or a data processing device 100 . You may.

도 2는 본 발명의 일 실시에에 따라 제공되는 트랜잭션 처리 장치가 마스터장치로부터의 요청을 처리하는 방법을 나타낸 순서도이다.2 is a flowchart illustrating a method for processing a request from a master device by a transaction processing device provided according to an embodiment of the present invention.

도 2에 나타낸 방법은, 마스터 장치(10), 슬레이브 장치(41), 및 버스(30)를 포함하는 데이터 처리 장치(100)가, 상기 버스(30)를 통과하여 송수신되는 상기 마스터 장치(10)와 상기 슬레이브 장치(41) 간의 트랜잭션의 경로를 제어하는 트랜잭션 처리 장치(20)를 이용하여 상기 트랜잭션을 처리하는 방법이다. In the method shown in FIG. 2 , the master device 10 , the slave device 41 , and the data processing device 100 including the bus 30 are transmitted/received through the bus 30 , the master device 10 . ) and the slave device 41, a method of processing the transaction using the transaction processing unit 20 that controls the path of the transaction.

이때, 상기 트랜잭션 처리 장치(20)는, 요청 스위치부(211, 241), 응답 스위치부(212, 242), CDAS 파트(221, 222), ID 리매핑부(231), ID 복원부(232), 요청 분석부(251), 응답 분석부(252), 및 응답 재정렬부(200)를 포함할 수 있다In this case, the transaction processing device 20 includes the request switch units 211 and 241 , the response switch units 212 and 242 , the CDAS parts 221 and 222 , the ID remapping unit 231 , and the ID restoration unit 232 . , a request analysis unit 251 , a response analysis unit 252 , and a response rearrangement unit 200 may be included.

상기 트랜잭션을 처리하는 방법은 다음 단계들을 포함할 수 있다.The method of processing the transaction may include the following steps.

단계(S110)에서, 상기 요청 분석부(251)가, 상기 마스터 장치(10)로부터의 요청을 입력받을 수 있다.In step S110 , the request analysis unit 251 may receive a request from the master device 10 .

단계(S120)에서, 상기 요청 분석부(251)가, 상기 요청이 제1그룹의 트랜잭션으로 분류되는 것인지 아니면 제2그룹의 트랜잭션으로 분류되는 것인지를 결정할 수 있다.In step S120 , the request analysis unit 251 may determine whether the request is classified as a first group transaction or a second group transaction.

단계(130)에서, 상기 요청 스위치부(211, 241)는, 상기 요청이 상기 제1그룹의 트랜잭션에 속한 것인지 아니면 상기 제2그룹의 트랜잭션에 속한 것인지를 나타내는 추가정보를 상기 요청에 부가할 수 있다.In step 130, the request switch units 211 and 241 may add additional information indicating whether the request belongs to the first group transaction or the second group transaction to the request. have.

단계(S140)에서, 상기 요청 스위치부(211, 241)가, 상기 요청이 상기 제1그룹의 트랜잭션에 속한 경우에는 상기 요청을 상기 CDAS 파트(211, 222)를 통해 상기 버스(30)로 전송되도록 하기 위하여 상기 요청을 상기 CDAS 파트(211, 222) 쪽으로 전송하고, 상기 요청이 상기 제2그룹의 트랜잭션에 속한 경우에는 상기 요청을 상기 ID 리매핑부(231)를 통해 상기 버스(30)로 전송되도록 하기 위하여 상기 요청을 상기 ID 리매핑부(231) 쪽으로 전송할 수 있다.In step S140 , the request switch unit 211 , 241 transmits the request to the bus 30 through the CDAS parts 211 and 222 when the request belongs to the first group transaction. The request is transmitted to the CDAS parts 211 and 222 to ensure that the request is transmitted to the bus 30 through the ID remapping unit 231 when the request belongs to the second group of transactions. In order to do so, the request may be transmitted to the ID remapping unit 231 .

도 3은 본 발명의 일 실시에에 따라 제공되는 트랜잭션 처리 장치가 버스로부터 수신한 응답을 처리하는 방법을 나타낸 순서도이다.3 is a flowchart illustrating a method for processing a response received from a bus by a transaction processing apparatus provided according to an embodiment of the present invention.

도 3에 나타낸 방법은, 마스터 장치(10), 슬레이브 장치(41), 및 버스(30)를 포함하는 데이터 처리 장치(100)가, 상기 버스(30)를 통과하여 송수신되는 상기 마스터 장치(10)와 상기 슬레이브 장치(41) 간의 트랜잭션의 경로를 제어하는 트랜잭션 처리 장치(20)를 이용하여 상기 트랜잭션을 처리하는 방법이다. In the method shown in FIG. 3 , the master device 10 , the slave device 41 , and the data processing device 100 including the bus 30 are transmitted/received through the bus 30 . ) and the slave device 41, a method of processing the transaction using the transaction processing unit 20 that controls the path of the transaction.

이때, 상기 트랜잭션 처리 장치(20)는, 요청 스위치부(211, 241), 응답 스위치부(212, 242), CDAS 파트(221, 222), ID 리매핑부(231), ID 복원부(232), 요청 분석부(251), 응답 분석부(252), 및 응답 재정렬부(200)를 포함할 수 있다In this case, the transaction processing device 20 includes the request switch units 211 and 241 , the response switch units 212 and 242 , the CDAS parts 221 and 222 , the ID remapping unit 231 , and the ID restoration unit 232 . , a request analysis unit 251 , a response analysis unit 252 , and a response rearrangement unit 200 may be included.

상기 트랜잭션을 처리하는 방법은 다음 단계들을 포함할 수 있다.The method of processing the transaction may include the following steps.

단계(S210)에서, 상기 응답 분석부(252)가, 상기 버스(30)로부터 응답을 입력받을 수 있다.In step S210 , the response analysis unit 252 may receive a response from the bus 30 .

단계(S220)에서, 상기 응답 분석부(252)가, 상기 응답 내에 포함되어 있는 추가정보를 확인함으로써 상기 응답이 상기 제1그룹의 트랜잭션에 속한 것인지 아니면 상기 제2그룹의 트랜잭션에 속한 것인지를 결정할 수 있다.In step S220, the response analysis unit 252 determines whether the response belongs to the transaction of the first group or the transaction of the second group by checking the additional information included in the response. can

단계(S230)에서, 상기 응답 분석부(252)가, 상기 응답이 상기 제1그룹의 트랜잭션으로 분류되는지 아니면 상기 제2그룹의 트랜잭션으로 분류되는지를 결정할 수 있다.In step S230 , the response analysis unit 252 may determine whether the response is classified as a transaction of the first group or a transaction of the second group.

단계(S240)에서, 상기 응답 스위치부(212, 242)가, 상기 응답이 상기 제1그룹의 트랜잭션으로 분류된 경우에는 상기 응답을 상기 CDAS 파트(221, 222)를 통해 상기 응답 재정렬부(200)로 전송되도록 하기 위하여 상기 응답을 상기 CDAS 파트(221, 222)에게 전송하고, 상기 요청이 상기 제2그룹의 트랜잭션으로 분류된 경우에는 상기 응답을 상기 ID 복원부(232)를 통해 상기 응답 재정렬부(200)로 전송되도록 하기 위하여 상기 응답을 상기 ID 복원부(200)에게 전송할 수 있다.In step S240, when the response is classified as the first group transaction, the response switch unit 212, 242 transmits the response to the response reordering unit 200 through the CDAS parts 221 and 222. ), the response is transmitted to the CDAS parts 221 and 222, and when the request is classified as a transaction of the second group, the response is rearranged through the ID recovery unit 232 The response may be transmitted to the ID recovery unit 200 in order to be transmitted to the unit 200 .

단계(S250)에서, 상기 응답 재정렬부(200)가, 상기 응답 스위치부(212, 242)로부터 수신한 상기 응답을 상기 마스터 장치(10)에게 제공할 수 있다.In step S250 , the response reordering unit 200 may provide the response received from the response switch units 212 and 242 to the master device 10 .

도 4는 본 발명의 일 실시예에 따른 데이터 처리 시스템을 나타낸 것이다. 4 shows a data processing system according to an embodiment of the present invention.

데이터 처리 시스템(500)은 집적 회로, 주문형 표준 제품(ASSP), 주문형 집적회로(ASIC), 프로그램가능 논리장치(PLD), 풀 커스텀 칩, 전용 칩과 같은 다른 장치 또는 회로를 포함할 수 있다. 일 실시예에서, 회로(560)는 데이터 처리 장치(100)의 구성요소들 중 하나 이상을 포함할 수 있다. 데이터 처리 시스템(500)은, 프로세서(570), 메모리(580), I/O 회로(550), 집적 회로(560) 및 주변 장치(540) 중 하나 이상을 포함 할 수 있다. 이들 구성 요소는 시스템 버스 또는 다른 인터커넥터(530)에 의해 함께 연결되고 엔드유저 시스템(510)에 포함된 회로기판(520)에 설치되어 있을 수 있다.Data processing system 500 may include other devices or circuits such as integrated circuits, application specific standard products (ASSPs), application specific integrated circuits (ASICs), programmable logic devices (PLDs), fully custom chips, and dedicated chips. In one embodiment, circuitry 560 may include one or more of the components of data processing apparatus 100 . The data processing system 500 may include one or more of a processor 570 , a memory 580 , an I/O circuit 550 , an integrated circuit 560 , and a peripheral device 540 . These components may be connected together by a system bus or other interconnector 530 and installed on a circuit board 520 included in the end user system 510 .

데이터 처리 시스템(500)은 컴퓨터 네트워킹, 데이터 네트워킹, 계측, 비디오 처리, 디지털 신호 처리, 또는 프로그래밍 가능하거나 재 프로그래밍 가능한 로직을 사용하는 임의의 다른 애플리케이션과 같은 다양한 애플리케이션에서 사용될 수 있다. 회로(560)는 다양한 상이한 논리 기능을 수행하기 위해 사용될 수 있다. 예를 들어, 회로(560)는 프로세서(570)와 협력하여 작동하는 처리블록 또는 컨트롤러로서 구성될 수 있다. 회로(560)는 또한 시스템(500)에서 공유 리소스에 대한 액세스를 중재하기 위한 중재장치로서 사용될 수 있다. 데이터 처리 시스템(500)은 단지 예시로서 제시된 것이다. 데이터 처리 시스템(500)은 본 명세서에서 데이터 처리 장치 또는 컴퓨팅 장치로 지칭될 수도 있다.Data processing system 500 may be used in a variety of applications, such as computer networking, data networking, metrology, video processing, digital signal processing, or any other application that uses programmable or reprogrammable logic. Circuit 560 may be used to perform a variety of different logic functions. For example, circuitry 560 may be configured as a processing block or controller operating in cooperation with processor 570 . Circuitry 560 may also be used as an arbiter to arbitrate access to shared resources in system 500 . The data processing system 500 is presented by way of example only. The data processing system 500 may be referred to herein as a data processing device or a computing device.

도 1 내지 도 3에서 설명한 상기 데이터 처리 장치(100) 또는 상기 트랜재션 처리 장치(20)는 도 4에 제시한 주변장치(540)의 일 예, 또는 집적회로(560)의 일 예일 수 있다.The data processing apparatus 100 or the transaction processing apparatus 20 described with reference to FIGS. 1 to 3 may be an example of the peripheral device 540 shown in FIG. 4 or an example of the integrated circuit 560 .

상술한 본 발명의 실시예들을 이용하여, 본 발명의 기술 분야에 속하는 자들은 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에 다양한 변경 및 수정을 용이하게 실시할 수 있을 것이다. 특허청구범위의 각 청구항의 내용은 본 명세서를 통해 이해할 수 있는 범위 내에서 인용관계가 없는 다른 청구항에 결합될 수 있다.By using the above-described embodiments of the present invention, those skilled in the art will be able to easily implement various changes and modifications within the scope without departing from the essential characteristics of the present invention. The content of each claim in the claims may be combined with other claims without reference within the scope that can be understood through this specification.

10: 마스터 장치
20: 트랜잭션 처리 장치
30: 버스
41, 42: 슬레이브 장치
100: 데이터 처리 장치, 데이터 처리 시스템
200: 응답 재정렬부
211, 241: 요청 스위치부
212, 242: 응답 스위치부
221: 요청측 CDAS 파트
222: 응답측 CDAS 파트
231: ID 리매핑부
232: ID 복원부
251: 요청 분석부
252: 응답 분석부
10: master device
20: transaction processing unit
30: bus
41, 42: slave device
100: data processing device, data processing system
200: response rearrangement unit
211, 241: request switch unit
212, 242: response switch unit
221: Requesting side CDAS part
222: response side CDAS part
231: ID remapping unit
232: ID restoration unit
251: request analysis unit
252: response analysis unit

Claims (14)

요청 스위치부;
응답 스위치부;
CDAS 파트;
ID 리매핑부; 및
ID 복원부
를 포함하며,
상기 요청 스위치부는, 마스터 장치(10)로부터의 요청을 입력받아, 상기 요청이 제1그룹의 트랜잭션에 속한 경우에는 상기 요청을 상기 CDAS 파트를 통해 버스(30)로 전송하고, 상기 요청이 제2그룹의 트랜잭션에 속한 경우에는 상기 요청을 상기 ID 리매핑부를 통해 상기 버스로 전송하도록 되어 있고,
상기 응답 스위치부는, 상기 버스로부터 응답을 입력받아, 상기 응답이 상기 제1그룹의 트랜잭션에 속한 경우에는 상기 응답을 상기 CDAS 파트를 통해 상기 마스터 장치에게 제공하고, 상기 응답이 상기 제2그룹의 트랜잭션에 속한 경우에는 상기 응답을 상기 ID 복원부를 통해 상기 마스터 장치에게 제공하도록 되어 있는,
트랜잭션 처리 장치.
request switch unit;
response switch unit;
CDAS part;
ID remapping unit; and
ID recovery unit
includes,
The request switch unit receives a request from the master device 10 and, when the request belongs to a first group transaction, transmits the request to the bus 30 through the CDAS part, and the request is transmitted to the second group. When belonging to a group transaction, the request is transmitted to the bus through the ID remapping unit,
The response switch unit receives a response from the bus, and when the response belongs to the first group transaction, provides the response to the master device through the CDAS part, and the response corresponds to the second group transaction. In the case of belonging to, to provide the response to the master device through the ID recovery unit,
transaction processing unit.
제1항에 있어서,
응답 재정렬부를 더 포함하며,
상기 응답 스위치부는, 상기 버스로부터 응답을 입력받아, 상기 응답이 상기 제1그룹의 트랜잭션에 속한 경우에는 상기 응답을 상기 CDAS 파트를 통해 상기 응답 재정렬부에게 제공하고, 상기 응답이 상기 제2그룹의 트랜잭션에 속한 경우에는 상기 응답을 상기 ID 복원부를 통해 상기 응답 재정렬부로 제공하도록 되어 있으며,
상기 응답 재정렬부는 상기 응답 스위치로부터 수신한 응답을 상기 마스터 장치에게 제공하도록 되어 있는,
트랜잭션 처리 장치.
According to claim 1,
Further comprising a response reordering unit,
The response switch unit receives a response from the bus, and when the response belongs to the first group transaction, provides the response to the response reordering unit through the CDAS part, and the response is the response of the second group. When belonging to a transaction, the response is provided to the response reordering unit through the ID restoration unit,
The response reordering unit is configured to provide a response received from the response switch to the master device,
transaction processing unit.
제1항에 있어서,
상기 요청을 출력하도록 구성되는 상기 마스터 장치(10);
상기 응답을 출력하도록 구성되는 슬레이브 장치(41); 및
상기 마스터 장치와 상기 슬레이브 장치를 연결하도록 구성되는 상기 버스;
를 더 포함하는,
트랜잭션 처리 장치.
According to claim 1,
the master device (10) configured to output the request;
a slave device (41) configured to output the response; and
the bus configured to connect the master device and the slave device;
further comprising,
transaction processing unit.
제1항에 있어서,
상기 마스터 장치로부터의 요청을 입력받아 상기 요청을 분석하는 요청 분석부(251);를 더 포함하며,
상기 요청 분석부는, 상기 요청의 타겟 슬레이브 장치가 유니크 ID를 수용하는 장치라고 판단된 경우에는 상기 요청이 상기 제2그룹의 트랜잭션에 속한 것으로 분류하도록 되어 있는
트랜잭션 처리 장치.
According to claim 1,
Further comprising; a request analysis unit 251 for receiving a request from the master device and analyzing the request
The request analysis unit is configured to classify the request as belonging to the second group of transactions when it is determined that the target slave device of the request is a device that accepts a unique ID.
transaction processing unit.
제1항에 있어서,
상기 마스터 장치로부터의 요청을 입력받아 상기 요청을 분석하는 요청 분석부(251);를 더 포함하며,
상기 요청 분석부는, 상기 요청이 긴급 요청이며 상기 요청이 상기 요청의 타겟 슬레이브 장치에 도달할 수 있는 경로가 복수 개인 경우에는 상기 요청이 상기 제2그룹의 트랜잭션에 속한 것으로 분류하도록 되어 있는,
트랜잭션 처리 장치.
According to claim 1,
Further comprising; a request analysis unit 251 for receiving a request from the master device and analyzing the request
The request analysis unit is configured to classify the request as belonging to the second group of transactions when the request is an emergency request and there are multiple paths through which the request can reach the target slave device of the request.
transaction processing unit.
제1항에 있어서,
상기 마스터 장치로부터의 요청을 입력받아 상기 요청을 분석하는 요청 분석부(251);를 더 포함하며,
상기 요청 분석부는, 상기 요청이, 상기 요청을 상기 마스터 장치로부터 수신하기 이전에 상기 마스터 장치로부터 수신한 이전 요청들과의 관계에서 순번 의존성을 갖고 있지 않은 것으로 판단되면, 상기 요청이 상기 제1그룹의 트랜잭션에 속한 것으로 분류하도록 되어 있는,
트랜잭션 처리 장치.
According to claim 1,
Further comprising; a request analysis unit 251 for receiving a request from the master device and analyzing the request
The request analysis unit, if it is determined that the request does not have a sequence dependency in a relationship with previous requests received from the master device before receiving the request from the master device, the request is sent to the first group to be classified as belonging to the transaction of
transaction processing unit.
제1항에 있어서,
상기 버스로부터의 응답을 입력받아 상기 응답을 분석하는 응답 분석부(252);를 더 포함하며,
상기 응답 분석부는, 상기 응답이 상기 제1그룹의 트랜잭션에 속한 것으로 분류되는 것인지 아니면 상기 제2그룹의 트랜잭션에 속한 것으로 분류되는 것인지를 결정하도록 되어 있는,
트랜잭션 처리 장치.
According to claim 1,
Further comprising; a response analysis unit 252 for receiving the response from the bus and analyzing the response;
wherein the response analyzing unit is configured to determine whether the response is classified as belonging to the first group of transactions or as belonging to the second group of transactions,
transaction processing unit.
제7항에 있어서,
상기 요청 스위치부는, 상기 요청에 추가정보를 부가하도록 되어 있으며,
상기 추가정보는 상기 요청이 상기 제1그룹의 트랜잭션에 속한 것인지 아니면 상기 제2그룹의 트랜잭션에 속한 것인지를 나타내는 정보이며,
상기 요청을 수신한 슬레이브 장치는, 상기 요청에 대한 응답을 출력할 때에 상기 요청에 대한 응답에 상기 추가정보를 포함시키도록 되어 있고,
상기 응답 분석부는 상기 슬레이브 장치가 출력한 상기 응답 내에 포함되어 있는 상기 추가정보를 확인함으로써 상기 슬레이브 장치가 출력한 상기 응답이 상기 제1그룹의 트랜잭션에 속한 것인지 아니면 상기 제2그룹의 트랜잭션에 속한 것인지를 결정하도록 되어 있는,
트랜잭션 처리 장치.
8. The method of claim 7,
The request switch unit is configured to add additional information to the request,
The additional information is information indicating whether the request belongs to a transaction of the first group or a transaction of the second group;
The slave device receiving the request is configured to include the additional information in a response to the request when outputting a response to the request,
The response analyzer determines whether the response output by the slave device belongs to the first group transaction or the second group transaction by checking the additional information included in the response output by the slave device. to be determined,
transaction processing unit.
제1항에 있어서,
상기 요청의 타겟 슬레이브 장치가 유니크 ID를 수용하는 장치라고 판단된 경우에는 상기 요청이 상기 제2그룹의 트랜잭션에 속한 것으로 분류하도록 되어 있는,
트랜잭션 처리 장치.
According to claim 1,
When it is determined that the target slave device of the request is a device that accepts a unique ID, the request is classified as belonging to the second group of transactions;
transaction processing unit.
마스터 장치, 슬레이브 장치, 및 버스를 포함하는 시스템 장치에서, 상기 버스를 통과하여 송수신되는 상기 마스터 장치와 상기 슬레이브 장치 간의 트랜잭션의 경로를 제어하는 트랜잭션 처리 장치를 이용하여 상기 트랜잭션을 처리하는 트랜잭션 처리 방법으로서,
상기 트랜잭션 처리 장치는, 요청 스위치부(211, 241), 응답 스위치부(212, 242), CDAS 파트(221, 222), ID 리매핑부(231), ID 복원부(232), 요청 분석부(251), 및 응답 분석부(252)를 포함하며,
상기 요청 분석부가, 상기 마스터 장치로부터의 요청을 입력받는 단계;
상기 요청 분석부가, 상기 요청이 제1그룹의 트랜잭션으로 분류되는 것인지 아니면 제2그룹의 트랜잭션으로 분류되는 것인지를 결정하는 제1결정단계;
상기 요청 스위치부가, 상기 요청이 상기 제1그룹의 트랜잭션으로 분류된 경우에는 상기 요청을 상기 CDAS 파트를 통해 상기 버스로 전송되도록 하기 위하여 상기 요청을 상기 CDAS 파트 쪽으로 전송하고, 상기 요청이 상기 제2그룹의 트랜잭션으로 분류된 경우에는 상기 요청을 상기 ID 리매핑부를 통해 상기 버스로 전송되도록 하기 위하여 상기 요청을 상기 ID 리매핑부 쪽으로 전송하는 제1전송단계;
상기 응답 분석부가, 상기 버스로부터 응답을 입력받는 제1입력단계;
상기 응답 분석부가 상기 응답을 상기 제1그룹의 트랜잭션으로 분류한 경우에는 상기 응답을 상기 CDAS 파트를 통해 상기 마스터 장치에게 전송되도록 하기 위하여 상기 응답 스위치부가 상기 응답을 상기 CDAS 파트에게 전송하고, 상기 응답 분석부가 상기 응답을 상기 제2그룹의 트랜잭션으로 분류한 경우에는 상기 응답을 상기 ID 복원부를 통해 상기 마스터 장치에게 전송되도록 하기 위하여 상기 응답 스위치부가 상기 응답을 상기 ID 복원부에게 전송하는, 제2전송단계; 및
상기 트랜잭션 처리 장치가, 상기 응답 스위치부가 상기 CDAS 파트에게 전송하거나 또는 상기 ID 복원부에게 전송한 상기 응답을 상기 마스터 장치에게 제공하는 단계;
를 포함하는,
트랜잭션 처리 방법.
In a system device including a master device, a slave device, and a bus, a transaction processing method for processing the transaction using a transaction processing device that controls a path of a transaction between the master device and the slave device transmitted and received through the bus As,
The transaction processing device includes a request switch unit 211, 241, a response switch unit 212, 242, CDAS parts 221, 222, an ID remapping unit 231, an ID restoration unit 232, a request analysis unit ( 251), and a response analysis unit 252,
receiving, by the request analysis unit, a request from the master device;
a first determining step of determining, by the request analysis unit, whether the request is classified as a first group transaction or a second group transaction;
the request switch unit, when the request is classified as the first group of transactions, transmits the request to the CDAS part to transmit the request to the bus through the CDAS part, and the request is sent to the second group a first transmission step of transmitting the request to the ID remapping unit so that the request is transmitted to the bus through the ID remapping unit when classified as a group transaction;
a first input step of receiving, by the response analysis unit, a response from the bus;
When the response analysis unit classifies the response as the first group of transactions, the response switch unit transmits the response to the CDAS part so that the response is transmitted to the master device through the CDAS part, and the response When the analysis unit classifies the response as the second group of transactions, the response switch unit transmits the response to the ID restoration unit in order to transmit the response to the master device through the ID restoration unit. step; and
providing, by the transaction processing device, the response that the response switch unit transmits to the CDAS part or the response transmitted to the ID recovery unit to the master device;
containing,
How transactions are processed.
제10항에 있어서,
상기 트랜잭션 처리 장치는 응답 재정렬부(200)를 더 포함하며,
상기 응답 스위치부는, 상기 응답이 상기 제1그룹의 트랜잭션으로 분류된 경우에는 상기 응답을 상기 CDAS 파트를 통해 상기 응답 재정렬부에게 제공하고, 상기 응답이 상기 제2그룹의 트랜잭션으로 분류된 경우에는 상기 응답을 상기 ID 복원부를 통해 상기 응답 재정렬부로 제공하도록 되어 있으며,
상기 응답 재정렬부는 상기 응답 스위치부로부터 수신한 응답을 상기 마스터 장치에게 제공하도록 되어 있는 것을 특징으로 하는,
트랜잭션 처리 방법.
11. The method of claim 10,
The transaction processing device further includes a response reordering unit 200,
The response switch unit provides the response to the response reordering unit through the CDAS part when the response is classified as the first group transaction, and provides the response to the response reordering unit through the CDAS part, and when the response is classified as the second group transaction and to provide a response to the response reordering unit through the ID restoration unit,
The response reordering unit is characterized in that it is configured to provide the response received from the response switch unit to the master device,
How the transaction is processed.
제10항에 있어서,
상기 제1결정단계와 상기 제1전송단계 사이에, 상기 요청 스위치부가, 상기 요청이 상기 제1그룹의 트랜잭션에 속한 것인지 아니면 상기 제2그룹의 트랜잭션에 속한 것인지를 나타내는 추가정보를 상기 요청에 부가하는 단계를 더 포함하는,
트랜잭션 처리 방법.
11. The method of claim 10,
Between the first determining step and the first transmitting step, the request switch unit adds additional information indicating whether the request belongs to the first group transaction or the second group transaction to the request. further comprising the step of
How the transaction is processed.
제12항에 있어서,
상기 제1입력단계와 상기 제2전송단계 사이에, 상기 응답 분석부가, 상기 응답 내에 포함되어 있는 추가정보를 확인함으로써 상기 응답이 상기 제1그룹의 트랜잭션에 속한 것인지 아니면 상기 제2그룹의 트랜잭션에 속한 것인지를 결정하는 단계를 더 포함하는,
트랜잭션 처리 방법.
13. The method of claim 12,
Between the first input step and the second transmission step, the response analyzer checks the additional information included in the response to determine whether the response belongs to the first group transaction or not to the second group transaction. further comprising the step of determining whether
How the transaction is processed.
제1항 내지 제9항 중 어느 한 항의 트랜잭션 처리 장치;
프로세서; 및
메모리
를 포함하는,
컴퓨팅 장치.
The transaction processing apparatus of any one of claims 1 to 9;
processor; and
Memory
containing,
computing device.
KR1020200160186A 2020-11-25 2020-11-25 Adaptive transaction handling method and device for same KR102326892B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200160186A KR102326892B1 (en) 2020-11-25 2020-11-25 Adaptive transaction handling method and device for same
PCT/KR2020/017001 WO2022114272A1 (en) 2020-11-25 2020-11-26 Adaptive transaction processing method and device for same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200160186A KR102326892B1 (en) 2020-11-25 2020-11-25 Adaptive transaction handling method and device for same

Publications (1)

Publication Number Publication Date
KR102326892B1 true KR102326892B1 (en) 2021-11-16

Family

ID=78716799

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200160186A KR102326892B1 (en) 2020-11-25 2020-11-25 Adaptive transaction handling method and device for same

Country Status (2)

Country Link
KR (1) KR102326892B1 (en)
WO (1) WO2022114272A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116257479B (en) * 2023-05-16 2023-08-15 北京象帝先计算技术有限公司 Reorder buffer, system, device, equipment and transmission method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060282233A1 (en) * 2005-05-26 2006-12-14 Sudeep Pasricha Method for the fast exploration of bus-based communication architectures at the cycle-count-accurate-at-transaction -boundaries (CCATB) abstraction
US20120159037A1 (en) * 2010-12-17 2012-06-21 Kwon Woo Cheol Memory interleaving device and method using reorder buffer
US8949474B1 (en) * 2011-11-21 2015-02-03 Marvell International Ltd. Method for inter-chip and intra-chip addressing using port identifiers and address mapping
KR20160107233A (en) * 2014-01-13 2016-09-13 에이알엠 리미티드 A data processing system and method for handling multiple transactions
KR101841964B1 (en) * 2011-02-22 2018-05-15 삼성전자주식회사 System on chip comprising a interconnector and control method thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060282233A1 (en) * 2005-05-26 2006-12-14 Sudeep Pasricha Method for the fast exploration of bus-based communication architectures at the cycle-count-accurate-at-transaction -boundaries (CCATB) abstraction
US20120159037A1 (en) * 2010-12-17 2012-06-21 Kwon Woo Cheol Memory interleaving device and method using reorder buffer
KR101841964B1 (en) * 2011-02-22 2018-05-15 삼성전자주식회사 System on chip comprising a interconnector and control method thereof
US8949474B1 (en) * 2011-11-21 2015-02-03 Marvell International Ltd. Method for inter-chip and intra-chip addressing using port identifiers and address mapping
KR20160107233A (en) * 2014-01-13 2016-09-13 에이알엠 리미티드 A data processing system and method for handling multiple transactions

Also Published As

Publication number Publication date
WO2022114272A1 (en) 2022-06-02

Similar Documents

Publication Publication Date Title
US11481346B2 (en) Method and apparatus for implementing data transmission, electronic device, and computer-readable storage medium
JP5500741B2 (en) Interrupt approval in data processing systems
CN107003955B (en) Method, apparatus and system for integrating devices in a root complex
US7818546B2 (en) Pipeline processing communicating adjacent stages and controls to prevent the address information from being overwritten
US10802995B2 (en) Unified address space for multiple hardware accelerators using dedicated low latency links
US7827343B2 (en) Method and apparatus for providing accelerator support in a bus protocol
EP1535169B1 (en) Improved inter-processor communication system for communication between processors
US7500038B2 (en) Resource management
US20190220423A1 (en) Method for Reordering Out of Order Responses from Decomposed Requests in Bridge IP
KR20120040535A (en) Bus system and operating method thereof
CN105988968B (en) Semiconductor device with a plurality of semiconductor chips
KR102326892B1 (en) Adaptive transaction handling method and device for same
US8527684B2 (en) Closed loop dynamic interconnect bus allocation method and architecture for a multi layer SoC
US8090893B2 (en) Input output control apparatus with a plurality of ports and single protocol processing circuit
CN107066413A (en) A kind of method and its bus system for being used to handle multiple bus apparatus data
US10095643B2 (en) Direct memory access control device for at least one computing unit having a working memory
US20050021896A1 (en) Data bus system and method for performing cross-access between buses
EP1759297B1 (en) Interrupt scheme for bus controller
US11847464B2 (en) Variable pipeline length in a barrel-multithreaded processor
US20190286606A1 (en) Network-on-chip and computer system including the same
US10185684B2 (en) System interconnect and operating method of system interconnect
CN114328350A (en) Communication method, device and medium based on AXI bus
US9582438B2 (en) Method and apparatus for identifying cause of interrupt
KR20060112349A (en) Bus system and bus data processing method for system on chip
US20240004816A1 (en) Interface method for transmitting and recieving data between functional blocks in system on chip, and system on chip using same

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant