KR100846739B1 - Apparatus for network-on-chip interfacing and method of network-on-chip packet encoding using the same - Google Patents
Apparatus for network-on-chip interfacing and method of network-on-chip packet encoding using the same Download PDFInfo
- Publication number
- KR100846739B1 KR100846739B1 KR1020060127752A KR20060127752A KR100846739B1 KR 100846739 B1 KR100846739 B1 KR 100846739B1 KR 1020060127752 A KR1020060127752 A KR 1020060127752A KR 20060127752 A KR20060127752 A KR 20060127752A KR 100846739 B1 KR100846739 B1 KR 100846739B1
- Authority
- KR
- South Korea
- Prior art keywords
- packet
- flag
- network
- pointer
- chip
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/109—Integrated on microchip, e.g. switch-on-chip
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
네트워크-온-칩 인터페이스 장치 및 이를 이용한 네트워크-온-칩 패킷 인코딩 방법이 개시된다. 본 발명의 일실시예에 따른 네트워크-온-칩 인터페이스 장치는 IP 장치로부터의 트랜잭션에 상응하는 네트워크-온-칩 패킷을 구성하는 플릿들이 저장되는 패킷 버퍼, 상기 패킷 버퍼에 저장 가능한 플릿의 개수에 상응하는 개수의 플래그들이 저장되는 패킷 플래그 레지스터, 및 상기 패킷 플래그 레지스터의 상태에 따라 상기 IP 장치에 상응하는 프로토콜 제어신호를 생성하는 제어 신호 생성부를 포함한다.A network-on-chip interface device and a network-on-chip packet encoding method using the same are disclosed. The network-on-chip interface device according to an embodiment of the present invention includes a packet buffer in which flits constituting a network-on-chip packet corresponding to a transaction from an IP device are stored, and the number of flits that can be stored in the packet buffer. And a control signal generator for generating a protocol control signal corresponding to the IP device according to a state of the packet flag register.
네트워크-온-칩, 패킷 빌더, 패킷 인코더 Network-on-Chip, Packet Builder, Packet Encoder
Description
도 1은 본 발명의 일실시예에 따른 네트워크-온-칩 인터페이스 장치의 동작을 설명하기 위한 블록도이다.1 is a block diagram illustrating an operation of a network-on-chip interface device according to an embodiment of the present invention.
도 2는 도 1에 도시된 네트워크-온-칩 인터페이스 장치의 일 예를 나타낸 블록도이다.FIG. 2 is a block diagram illustrating an example of the network-on-chip interface device shown in FIG. 1.
도 3은 도 2에 도시된 네트워크-온-칩 패킷 인코더의 일 예를 도시한 도면이다.3 is a diagram illustrating an example of the network-on-chip packet encoder illustrated in FIG. 2.
도 4 내지 도 22는 본 발명의 일실시예에 따른 네트워크-온-칩 패킷 인코더의 동작을 설명하기 위한 도면들이다.4 to 22 are diagrams for describing an operation of a network-on-chip packet encoder according to an embodiment of the present invention.
도 23은 본 발명의 일실시예에 따른 네트워크-온-칩 인터페이스 장치가 AXI 마스터 장치와 연동하여 동작하는 경우의 프로토콜 제어 신호 생성을 설명하기 위한 블록도이다.FIG. 23 is a block diagram illustrating protocol control signal generation when a network-on-chip interface device operates in conjunction with an AXI master device according to an embodiment of the present invention.
도 24는 본 발명의 일실시예에 따른 네트워크-온-칩 인터페이스 장치가 AXI 슬레이브 장치와 연동하여 동작하는 경우의 프로토콜 제어 신호 생성을 설명하기 위한 블록도이다.24 is a block diagram illustrating protocol control signal generation when a network-on-chip interface device operates in conjunction with an AXI slave device according to an embodiment of the present invention.
도 25는 본 발명의 일실시예에 따른 네트워크-온-칩 인터페이스 장치가 AHB 마스터 장치와 연동하여 동작하는 경우의 프로토콜 제어 신호 생성을 설명하기 위한 블록도이다.FIG. 25 is a block diagram illustrating protocol control signal generation when a network-on-chip interface device operates in conjunction with an AHB master device according to an embodiment of the present invention.
도 26은 본 발명의 일실시예에 따른 네트워크-온-칩 인터페이스 장치가 AHB 슬레이브 장치와 연동하여 동작하는 경우의 프로토콜 제어 신호 생성을 설명하기 위한 블록도이다.FIG. 26 is a block diagram illustrating a protocol control signal generation when a network-on-chip interface device operates in conjunction with an AHB slave device according to an embodiment of the present invention.
도 27은 본 발명의 일실시예에 따른 네트워크-온-칩 패킷 인코딩 방법의 패킷 생성시의 동작을 나타낸 동작 흐름도이다.27 is a flowchart illustrating an operation in packet generation of the network-on-chip packet encoding method according to an embodiment of the present invention.
도 28은 본 발명의 일실시예에 따른 네트워크-온-칩 패킷 인코딩 방법의 패킷 전송시의 동작을 나타낸 동작 흐름도이다.28 is a flowchart illustrating an operation during packet transmission of the network-on-chip packet encoding method according to an embodiment of the present invention.
<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>
110: IP 장치110: IP device
120: 네트워크-온-칩 인터페이스 장치120: network-on-chip interface device
130: NoC 라우터130: NoC router
본 발명은 네트워크-온-칩 인터페이스 장치에 관한 것으로, 특히 네트워크-온-칩 패킷 인코더 및 패킷 인코딩 방법에 관한 것이다.The present invention relates to a network-on-chip interface device, and more particularly, to a network-on-chip packet encoder and a packet encoding method.
컴퓨터, 통신, 방송 등이 점차 통합되는 컨버전스(Convergence)화에 따라, 기존 ASIC(Application Specific IC: 주문형 반도체)과 ASSP(Application-Specific Standard Product: 특정용도 표준제품)의 수요가 SoC(System-on-Chip)로 전환되어 가고 있는 추세이다. 또한, IT(Information Technology)기기의 경박 단소화 및 고기능화 추세도 SoC 산업을 촉진시키는 요인이 되고 있다.As convergence becomes increasingly integrated with computers, communications, and broadcasting, the demand for existing Application Specific ICs (ASICs) and Application-Specific Standard Products (ASSPs) is increasing. -Chip is moving towards. In addition, the trend toward lighter and shorter and more functionalized IT (Information Technology) devices is also accelerating the SoC industry.
SoC는 기존의 여러가지 기능을 가진 복잡한 시스템을 하나의 칩으로 구현한 기술 집약적 반도체 기술이다. SoC의 현실화를 위해 많은 기술들이 연구되고 있으며, 특히 칩 내에 내재되어 있는 여러 지능소자(intellectual property: IP)들을 연결하는 방안이 매우 중요한 사항으로 대두되고 있다.SoC is a technology-intensive semiconductor technology that implements a complex system with various functions in one chip. Many technologies have been studied for the realization of SoC, and in particular, the method of connecting various intellectual property (IP) inherent in the chip has emerged as an important issue.
IP들을 연결하기 위한 기술로는 버스를 기반으로 한 연결 방식이 주를 이루고 있는 실정이다. 그러나, 칩의 집적도가 높아지고 IP간의 정보 흐름의 양이 급격히 증가함에 따라, 버스구조를 이용한 SoC는 그 구조적 한계에 도달하였다.As a technology for connecting IPs, a bus-based connection method is mainly used. However, as chip density increases and the amount of information flow between IPs increases rapidly, SoCs using a bus structure have reached their structural limits.
이와 같이 버스구조를 이용한 SoC의 구조적 한계를 해소하기 위한 방안으로, 일반적인 네트워크 기술을 칩 내에 응용하여 IP들을 연결하는 방식인 네트워크-온-칩(Network-on-Chip; NoC) 기술이 새롭게 제시되었다.In order to solve the structural limitations of the SoC using the bus structure, a network-on-chip (NoC) technology, a method of connecting IPs by applying general network technology in a chip, has been newly proposed. .
네트워크-온-칩은 기존 버스 구조의 구조적 한계를 극복하고자 만들어진 네트워크 형태의(network style) OCI(On-Chip Interconnect)로서, 네트워크-온-칩을 통해 고속/고성능/저전력의 SoC를 구현할 수 있다.Network-on-Chip is a network-style On-Chip Interconnect (OCI) designed to overcome the structural limitations of the existing bus structure, and enables high-speed, high-performance, and low-power SoCs through network-on-chip. .
네트워크-온-칩에서 패킷(packet)의 생성, 저장 및 전송은 네트워크-온-칩의 성능과 구현에 매우 큰 영향을 미친다. 즉, 패킷을 얼마나 효율적으로 생성하고, 저장하고, 전송하느냐는 네트워크-온-칩 설계 및 구현에 있어 매우 중요한 문제이 다.The generation, storage and transmission of packets on a network-on-chip has a great impact on the performance and implementation of the network-on-chip. In other words, how efficiently packets are generated, stored, and transmitted are critical issues in network-on-chip design and implementation.
따라서, 패킷을 생성하여 전송하는데 걸리는 시간을 줄이고, 네트워크-온-칩 패킷 인코더 구현에 필요한 하드웨어를 보다 간단히 하기 위한 새로운 기술의 필요성이 절실하게 대두된다.Thus, there is an urgent need for new technologies to reduce the time it takes to generate and transmit packets, and to simplify the hardware required to implement a network-on-chip packet encoder.
본 발명은 상술한 바와 같은 종래기술의 문제점을 해결하기 위해 안출된 것으로서, 패킷이 완전히 생성되기 이전이라도 패킷의 생성과 전송을 컨커런트하게(concurrently) 처리할 수 있도록 하는 것을 목적으로 한다.SUMMARY OF THE INVENTION The present invention has been made to solve the problems of the prior art as described above, and an object thereof is to enable concurrent processing of packet generation and transmission even before a packet is completely generated.
또한, 본 발명은 패킷 전체를 저장하지 아니하고, 기설정된(predetermined) 저장공간 한도내에서 패킷을 저장함으로써 패킷 저장에 필요한 저장 공간을 최소화하는 것을 목적으로 한다.In addition, the present invention aims to minimize the storage space required for packet storage by storing the packet within a preset storage space limit without storing the entire packet.
또한, 본 발명은 패킷 버퍼 및 패킷 플래그 레지스터를 생성 포인터 및 생성 포인터와 독립적인 전송 포인터를 이용하여 포인팅함으로써 효과적으로 패킷 인코더를 컨트롤 하는 것을 목적으로 한다.The present invention also aims to effectively control the packet encoder by pointing the packet buffer and the packet flag register using a generation pointer and a transmission pointer independent of the generation pointer.
상기의 목적을 달성하고 종래기술의 문제점을 해결하기 위하여, 본 발명의 네트워크-온-칩 인터페이스 장치는, IP 장치로부터의 트랜잭션에 상응하는 네트워크-온-칩 패킷을 구성하는 플릿들이 저장되는 패킷 버퍼, 상기 패킷 버퍼에 저장 가능한 플릿의 개수에 상응하는 개수의 플래그들이 저장되는 패킷 플래그 레지스터, 및 상기 패킷 플래그 레지스터의 상태에 따라 상기 IP 장치에 상응하는 프로토 콜 제어신호를 생성하는 제어 신호 생성부를 포함한다.In order to achieve the above object and solve the problems of the prior art, the network-on-chip interface device of the present invention is a packet buffer that stores flits constituting a network-on-chip packet corresponding to a transaction from an IP device. And a packet flag register for storing flags corresponding to the number of flits that can be stored in the packet buffer, and a control signal generation unit for generating a protocol control signal corresponding to the IP device according to the state of the packet flag register. do.
이 때, 상기 패킷 버퍼 및 상기 패킷 플래그 레지스터는 생성 포인터(generation pointer) 및 상기 생성 포인터와 독립적인 전송 포인터(sending pointer)에 의하여 포인팅되고, 상기 패킷 생성시에 상기 생성 포인터에 상응하는 상기 패킷 플래그 레지스터의 플래그가 제1 레벨인 경우, 생성된 플릿이 상기 패킷 버퍼의 상기 생성 포인터에 상응하는 저장공간에 저장되고 상기 생성 포인터에 상응하는 상기 패킷 플래그 레지스터의 플래그가 제2 레벨로 설정되고 상기 생성 포인터가 증가할 수 있다.In this case, the packet buffer and the packet flag register are pointed by a generation pointer and a sending pointer independent of the generation pointer, and the packet flag corresponding to the generation pointer at the time of packet generation. If the flag of the register is at the first level, the generated fleet is stored in a storage space corresponding to the generation pointer of the packet buffer and the flag of the packet flag register corresponding to the generation pointer is set to a second level and the generation The pointer can grow.
또한, 본 발명의 네트워크-온-칩 패킷 인코더는, IP 장치로부터의 트랜잭션에 상응하는 네트워크-온-칩 패킷을 구성하는 플릿을 생성 포인터에 의하여 포인팅되는 저장공간에 저장하고, 상기 생성 포인터와 독립적인 전송 포인터에 의하여 포인팅되는 플릿을 출력하는 패킷 버퍼, 및 상기 패킷 버퍼에 저장 가능한 플릿들의 개수에 상응하는 개수의 플래그들이 저장되고, 상기 생성 포인터 및 상기 전송 포인터에 의하여 포인팅되는 패킷 플래그 레지스터를 포함한다.In addition, the network-on-chip packet encoder of the present invention stores a fleet constituting a network-on-chip packet corresponding to a transaction from an IP device in a storage space pointed to by a generation pointer and is independent of the generation pointer. A packet buffer for outputting the flits pointed to by the in-transmission pointer, and a number of flags corresponding to the number of flits that can be stored in the packet buffer are stored, and include the generation pointer and a packet flag register pointed by the transmission pointer. do.
이 때, 상기 네트워크-온-칩 패킷 인코더는 상기 패킷 생성시에 상기 생성 포인터에 상응하는 상기 패킷 플래그 레지스터의 플래그가 제1 레벨인 경우, 생성된 플릿을 상기 패킷 버퍼의 상기 생성 포인터에 상응하는 저장공간에 저장하고 상기 생성 포인터에 상응하는 상기 패킷 플래그 레지스터의 플래그를 제2 레벨로 설정하고 상기 생성 포인터를 증가시킬 수 있다. 이 때, 상기 네트워크-온-칩 패킷 인코더는 상기 패킷 생성시에 상기 생성 포인터에 상응하는 상기 패킷 플래그 레지 스터의 플래그가 상기 제2 레벨인 경우 상기 플래그가 상기 제1 레벨로 설정될 때까지 대기할 수 있다.In this case, the network-on-chip packet encoder may generate the generated flits corresponding to the generation pointer of the packet buffer when the flag of the packet flag register corresponding to the generation pointer at the packet generation is the first level. The storage pointer may be stored in a storage space, and the flag of the packet flag register corresponding to the generation pointer may be set to a second level and the generation pointer may be increased. At this time, the network-on-chip packet encoder waits until the flag is set to the first level if the flag of the packet flag register corresponding to the generation pointer is the second level when generating the packet. can do.
이 때, 상기 네트워크-온-칩 패킷 인코더는 상기 패킷 전송시에 상기 전송 포인터에 상응하는 상기 패킷 플래그 레지스터의 플래그가 상기 제2 레벨인 경우, 상기 패킷 버퍼의 상기 전송 포인터에 상응하는 저장공간에 저장된 플릿을 전송하고 상기 전송 포인터에 상응하는 상기 패킷 플래그 레지스터의 플래그를 상기 제1 레벨로 설정하고 상기 전송 포인터를 증가시킬 수 있다. 이 때, 상기 네트워크-온-칩 패킷 인코더는 상기 패킷 전송시에 상기 전송 포인터에 상응하는 상기 패킷 플래그 레지스터의 플래그가 상기 제1 레벨인 경우 상기 플래그가 상기 제2 레벨로 설정될 때까지 대기할 수 있다.At this time, the network-on-chip packet encoder is configured to store in the storage space corresponding to the transmission pointer of the packet buffer when the flag of the packet flag register corresponding to the transmission pointer at the second level is the second level. The stored flits may be transmitted, and a flag of the packet flag register corresponding to the transmission pointer may be set to the first level and the transmission pointer may be increased. At this time, the network-on-chip packet encoder may wait until the flag is set to the second level if the flag of the packet flag register corresponding to the transmission pointer is the first level when transmitting the packet. Can be.
또한, 본 발명의 네트워크-온-칩 패킷 인코딩 방법은, IP 장치로부터의 트랜잭션에 상응하는 네트워크-온-칩 패킷 생성시에, 생성 포인터에 상응하는 패킷 플래그 레지스터의 플래그가 제1 레벨인지 여부를 판단하는 단계, 상기 플래그가 제1 레벨인 경우, 상기 패킷을 구성하는 플릿을 패킷 버퍼의 상기 생성 포인터에 상응하는 저장공간에 저장하고 상기 생성 포인터에 상응하는 상기 패킷 플래그 레지스터의 플래그를 제2 레벨로 설정하고 상기 생성 포인터를 증가시키는 단계, 및 상기 플래그가 제2 레벨인 경우, 상기 플래그가 제1 레벨로 설정될 때까지 대기하는 단계를 포함한다.In addition, the network-on-chip packet encoding method of the present invention, when generating a network-on-chip packet corresponding to a transaction from an IP device, determines whether the flag of the packet flag register corresponding to the generation pointer is the first level. In the determining, when the flag is at the first level, the fleet constituting the packet is stored in a storage space corresponding to the generation pointer of the packet buffer, and the flag of the packet flag register corresponding to the generation pointer is stored at the second level. And increasing the generation pointer, and if the flag is at the second level, waiting until the flag is set at the first level.
이 때, 상기 네트워크-온-칩 패킷 인코딩 방법은 상기 패킷 전송시에 상기 생성 포인터와 독립적인 전송 포인터에 상응하는 상기 패킷 플래그 래지스터의 플 래그가 상기 제2 레벨인 경우, 상기 패킷 버퍼의 상기 전송 포인터에 상응하는 저장공간에 저장된 플릿을 전송하고 상기 전송 포인터에 상응하는 상기 패킷 플래그 레지스터의 플래그를 상기 제1 레벨로 설정하고 상기 전송 포인터를 증가시키는 단계를 더 포함할 수 있다.In this case, the network-on-chip packet encoding method may further include the step of: when the flag of the packet flag register corresponding to the transmission pointer independent of the generation pointer at the packet transmission is the second level, The method may further include transmitting a fleet stored in a storage space corresponding to a transmission pointer, setting a flag of the packet flag register corresponding to the transmission pointer to the first level, and increasing the transmission pointer.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 일실시예에 따른 네트워크-온-칩 인터페이스 장치의 동작을 설명하기 위한 블록도이다.1 is a block diagram illustrating an operation of a network-on-chip interface device according to an embodiment of the present invention.
도 1을 참조하면, 본 발명의 일실시예에 따른 네트워크-온-칩 인터페이스 장치(120)는 IP 장치(110) 및 NoC 라우터(130)와 데이터를 송/수신한다.Referring to FIG. 1, the network-on-
IP 장치(110)는 AMBA AXI 마스터 장치, AMBA AXI 슬레이브 장치, AMBA AHB 마스터 장치 또는 AMBA AHB 슬레이브 장치일 수 있다.
네트워크-온-칩 인터페이스 장치(120)는 IP 장치(110)로부터 전송되는 트랜잭션(transaction)에 상응하는 패킷을 생성하여 NoC 라우터(130)로 전송하고, NoC 라우터(130)로부터 수신되는 패킷을 디코딩하여 수신된 패킷에 상응하는 트랜잭션을 IP 장치(110)로 전송한다.The network-on-
도 1에 도시된 네트워크-온-칩 인터페이스 장치(120)는 IP 장치(110)로부터 전송되는 트랜잭션에 상응하는 패킷이 완전히 생성되기 전이라도 플릿 단위로 우선 생성된 플릿부터 먼저 전송할 수 있다. 또한, 네트워크-온-칩 인터페이스 장치(120)는 모든 패킷을 저장하지 아니하고, 생성되어 아직 전송되지 아니한 플릿만 을 저장함으로써 패킷 인코더 구현에 필요한 저장공간을 줄일 수 있다.The network-on-
도 2는 도 1에 도시된 네트워크-온-칩 인터페이스 장치의 일 예를 나타낸 블록도이다.FIG. 2 is a block diagram illustrating an example of the network-on-chip interface device shown in FIG. 1.
도 2를 참조하면, 네트워크-온-칩 인터페이스 장치는 네트워크-온-칩 패킷 인코더(210) 및 제어 신호 생성부(220)를 포함한다.2, a network-on-chip interface device includes a network-on-
네트워크-온-칩 패킷 인코더(210)는 AHB나 AXI 마스터/슬레이브 장치로부터의 트랜잭션(transaction)에 상응하는 네트워크-온-칩 패킷을 생성한다. 이 때, 네트워크-온-칩 패킷 인코더(210)는 네트워크-온-칩 패킷을 이루는 플릿들 중 일부 생성된 플릿들만 먼저 전송할 수 있다.Network-on-
제어 신호 생성부(220)는 AHB나 AXI 마스터/슬레이브 장치에 상응하는 프로토콜 제어신호를 생성한다. 이 때, 프로토콜 제어신호는 네트워크-온-칩 패킷 인코더(210) 내에 구비된 패킷 플래그 레지스터의 상태에 따라 생성될 수 있다.The
도 3은 도 2에 도시된 네트워크-온-칩 패킷 인코더(210)의 일 예를 도시한 도면이다.FIG. 3 is a diagram illustrating an example of the network-on-
도 3을 참조하면, 네트워크-온-칩 패킷 인코더(210)는 패킷 버퍼(320) 및 패킷 플래그 레지스터(310)를 포함한다.Referring to FIG. 3, the network-on-
패킷 버퍼(320)는 IP 장치로부터의 트랜잭션에 상응하는 네트워크-온-칩 패킷을 구성하는 플릿을 생성 포인터(G-PTR)에 의하여 포인팅되는 저장공간에 저장하고, 생성 포인터(G-PTR)와 독립적인 전송 포인터(S-PTR)에 의하여 포인팅되는 플릿을 출력한다.The
이 때, 전송 포인터(S-PTR)가 생성 포인터(G-PTR)와 독립적이라 함은 전송 포인터(S-PTR) 및 생성 포인터(G-PTR)가 각각 서로에 의하여 영향을 받지 아니하고 패킷 플래그 레지스터(310)의 상태에 따라 증가함을 의미한다.In this case, the transmission pointer S-PTR is independent of the generation pointer G-PTR, and the transmission pointer S-PTR and the generation pointer G-PTR are not affected by each other, and the packet flag register is not affected by each other. It means that increases according to the state of (310).
통상적으로, 네트워크-온-칩 패킷은 플릿 헤더, 패킷 헤더 및 데이터 플릿들을 포함한다. 패킷 버퍼(320)의 헤더부(321)에는 플릿 헤더(FH) 및 패킷 헤더(PH)가 저장되고, 패킷 버퍼(320)의 데이터부(322)에는 데이터 플릿들이 저장된다. 도 3에 도시된 예에서는 플릿 헤더(FH) 및 패킷 헤더(PH)만이 저장되어 있고, 데이터 플릿들은 저장되어 있지 아니하다.Typically, a network-on-chip packet includes a flit header, packet header and data flits. The fleet header F H and the packet header P H are stored in the
패킷 플래그 레지스터(310)는 패킷 버퍼(320)에 저장 가능한 플릿들의 개수에 상응하는 개수의 플래그들이 저장되고, 생성 포인터(G-PTR) 및 전송 포인터(S-PTR)에 의하여 포인팅된다.The
도 3에 도시된 예에서, 패킷 버퍼(320)에는 헤더부(321)에 두 개, 데이터부(322)에 4개의 플릿이 저장 가능하므로 패킷 플래그 레지스터(310)는 이에 대응하여 헤더부(311)에 두 개의 플래그가, 데이터부(312)에 4개의 플래그가 저장된다.In the example shown in FIG. 3, two flits can be stored in the
이 때, 플래그는 제1 레벨 또는 제2 레벨에 상응할 수 있다. 예를 들어, 제1 레벨은 논리 "0"이고, 제2 레벨은 논리 "1"일 수 있다.In this case, the flag may correspond to the first level or the second level. For example, the first level may be logic "0" and the second level may be logic "1".
도 3을 참조하면, 패킷 버퍼(320)의 헤더부(321)에는 두 개의 헤더가 저장되어 있고 데이터부(322)에는 플릿들이 저장되어 있지 아니하므로, 패킷 플래그 레지 스터(310)의 헤더부(311)의 플래그들은 "1"로 설정되고, 데이터부(312)의 플래그들은 "0"으로 설정되어 있는 것을 알 수 있다. 즉, 도 3에 도시된 예에서, 플래그 "0"은 데이터가 들어있지 않음을 나타내고, 플래그 "1"은 데이터가 들어있음을 나타낸다.Referring to FIG. 3, since two headers are stored in the
도 4 내지 도 22는 본 발명의 일실시예에 따른 네트워크-온-칩 패킷 인코더의 동작을 설명하기 위한 도면들이다.4 to 22 are diagrams for describing an operation of a network-on-chip packet encoder according to an embodiment of the present invention.
이하, 동작 초기에 네트워크-온-칩 패킷 인코더가 도 3에 도시된 상태였다고 가정하고, 네트워크-온-칩 패킷 인코더의 동작을 설명한다. 이 때, 패킷 플래그 레지스터의 데이터부는 헤더부 쪽의 플래그부터 순서대로 포인터 0, 1, 2 및 3에 상응하는 것일 수 있다.Hereinafter, assuming that the network-on-chip packet encoder was in the state shown in FIG. 3 at the beginning of the operation, the operation of the network-on-chip packet encoder will be described. In this case, the data portion of the packet flag register may correspond to
도 4를 참조하면, 패킷 버퍼(320)에 플릿 헤더(FH) 및 패킷 헤더(PH)가 저장된 상태에서 플릿(F1)이 저장되고, 패킷 버퍼(320) 상의 플릿(F1)이 저장된 위치에 상응하는 패킷 플래그 레지스터(310) 상의 위치의 플래그가 "1"로 설정되고, 생성 포인터(G-PTR)가 하나 증가하는 것을 알 수 있다. 이 때, 생성 포인터(G-PTR)는 0에서 1로 변화한 것일 수 있다.Referring to FIG. 4, the fleet F1 is stored in the
도 5를 참조하면, 패킷 버퍼(320)에 플릿 헤더(FH), 패킷 헤더(PH) 및 플릿(F1)이 저장된 상태에서 플릿(F2)이 저장되고, 패킷 버퍼(320) 상의 플릿(F2)이 저장된 위치에 상응하는 패킷 플래그 레지스터(310) 상의 위치의 플래그가 "1"로 설정되고, 생성 포인터(G-PTR)가 하나 증가하는 것을 알 수 있다. 이 때, 생성 포 인터(G-PTR)는 2일 수 있다.Referring to FIG. 5, the fleet F2 is stored in a state in which the fleet header F H , the packet header P H , and the fleet F1 are stored in the
도 6을 참조하면, 패킷 버퍼(320)에 플릿 헤더(FH), 패킷 헤더(PH), 플릿(F1) 및 플릿(F2)이 저장된 상태에서 플릿(F3)이 저장되고, 패킷 버퍼(320) 상의 플릿(F3)이 저장된 위치에 상응하는 패킷 플래그 레지스터(310) 상의 위치의 플래그가 "1"로 설정되고, 생성 포인터(G-PTR)가 하나 증가하는 것을 알 수 있다. 이 때, 생성 포인터(G-PTR)는 3일 수 있다.Referring to FIG. 6, a fleet F3 is stored in a state in which a fleet header F H , a packet header P H , a fleet F1, and a fleet F2 are stored in the
도 7을 참조하면, 패킷 버퍼(320)에 플릿 헤더(FH), 패킷 헤더(PH), 플릿(F1), 플릿(F2) 및 플릿(F3)이 저장된 상태에서 플릿(F4)이 저장되고, 패킷 버퍼(320) 상의 플릿(F4)이 저장된 위치에 상응하는 패킷 플래그 레지스터(310) 상의 위치의 플래그가 "1"로 설정되고, 생성 포인터(G-PTR)가 하나 증가하는 것을 알 수 있다. 이 때, 생성 포인터(G-PTR)는 0일 수 있다. 즉, 데이터 플릿을 4개 까지만 저장할 수 있으므로 생성 포인터(G-PTR)는 0, 1, 2, 3, 0, 1, 2, 3, ... 같은 순서로 증가할 수 있다.Referring to FIG. 7, the fleet F4 is stored in the
도 8을 참조하면, 생성 포인터(G-PTR)에 상응하는 패킷 플래그 레지스터(310)의 플래그가 "1"이므로 플릿(F5)이 패킷 버퍼(320)에 저장될 수 없다. 즉, 패킷 플래그 레지스터(310)의 플래그가 "1"이므로 상응하는 패킷 버퍼(320)에 이미 플릿이 저장되어 있으므로 플래그가 다시 "0"으로 될 때까지 기다려야 한다.Referring to FIG. 8, since the flag of the
도 9를 참조하면, 패킷 전송이 시작되어 패킷 버퍼(320)에 저장되어 있던 플릿(F1)이 전송되고, 패킷 버퍼(320) 상의 플릿(F1)이 저장되어 있던 위치에 상응하 는 패킷 플래그 레지스터(310) 상의 위치의 플래그가 "0"으로 설정되고, 전송 포인터(S-PTR)가 하나 증가하는 것을 알 수 있다. 이 때, 전송 포인터(S-PTR)는 0에서 1로 변화한 것일 수 있다.Referring to FIG. 9, packet transmission is started to transmit a fleet F1 stored in the
도 10을 참조하면, 패킷 버퍼(320) 상의 플릿(F1)이 저장되어 있던 위치에 상응하는 패킷 플래그 레지스터(310) 상의 위치의 플래그가 "0"으로 설정되었고 생성 포인터(G-PTR)가 이 플래그를 포인팅하고 있으므로, 패킷 버퍼(320) 상의 플릿(F1)이 저장되어 있던 위치에 플릿(F5)이 저장되고, 패킷 버퍼(320) 상의 플릿(F5)이 저장된 위치에 상응하는 패킷 플래그 레지스터(310) 상의 위치의 플래그가 다시 "1"로 설정되고, 생성 포인터(G-PTR)가 하나 증가하는 것을 알 수 있다. 이 때, 생성 포인터(G-PTR)는 1일 수 있다.Referring to FIG. 10, the flag of the position on the
도 11을 참조하면, 다시 패킷 전송이 시작되어 패킷 버퍼(320)에 저장되어 있던 플릿(F2)이 전송되고, 패킷 버퍼(320) 상의 플릿(F2)이 저장되어 있던 위치에 상응하는 패킷 플래그 레지스터(310) 상의 위치의 플래그가 "0"으로 설정되고, 전송 포인터(S-PTR)가 하나 증가하는 것을 알 수 있다. 이 때, 전송 포인터(S-PTR)는 2일 수 있다. Referring to FIG. 11, packet transmission is started again, and the fleet F2 stored in the
또한, 패킷 버퍼(320)에 저장되어 있던 플릿(F3)이 전송되고, 패킷 버퍼(320) 상의 플릿(F3)이 저장되어 있던 위치에 상응하는 패킷 플래그 레지스터(310) 상의 위치의 플래그가 "0"으로 설정되고, 전송 포인터(S-PTR)가 하나 증가하는 것을 알 수 있다. 이 때, 전송 포인터(S-PTR)는 3일 수 있다.In addition, the fleet F3 stored in the
또한, 패킷 버퍼(320)에 저장되어 있던 플릿(F4)이 전송되고, 패킷 버 퍼(320) 상의 플릿(F4)이 저장되어 있던 위치에 상응하는 패킷 플래그 레지스터(310) 상의 위치의 플래그가 "0"으로 설정되고, 전송 포인터(S-PTR)가 하나 증가하는 것을 알 수 있다. 이 때, 전송 포인터(S-PTR)는 0일 수 있다.In addition, the fleet F4 stored in the
도 12를 참조하면, 다시 패킷 생성이 시작되어 패킷 버퍼(320)에 플릿들(F6, F7)이 저장되고, 패킷 버퍼(320) 상의 플릿들(F6, F7)이 저장된 위치에 상응하는 패킷 플래그 레지스터(310) 상의 위치의 플래그들이 "1"로 설정되고, 생성 포인터(G-PTR)가 둘 증가하는 것을 알 수 있다. 이 때, 생성 포인터(G-PTR)는 3일 수 있다.Referring to FIG. 12, packet generation is started again, and the packet flags corresponding to the positions where the flits F6 and F7 are stored in the
도 13을 참조하면, 패킷 버퍼(320)에 저장되어 있던 플릿들(F5, F6, F7)이 전송되고, 패킷 버퍼(320) 상의 플릿들(F5, F6, F7)이 저장되어 있던 위치에 상응하는 패킷 플래그 레지스터(310) 상의 위치의 플래그들이 "0"으로 설정되고, 전송 포인터(S-PTR)가 셋 증가하는 것을 알 수 있다. 이 때, 전송 포인터(S-PTR)는 3일 수 있다.Referring to FIG. 13, the flits F5, F6, and F7 stored in the
또한, 패킷 버퍼(320)에 플릿들(F8, F9)이 저장되고, 패킷 버퍼(320) 상의 플릿들(F8, F9)이 저장된 위치에 상응하는 패킷 플래그 레지스터(310) 상의 위치의 플래그들이 "1"로 설정되고, 생성 포인터(G-PTR)가 둘 증가한다. 이 때, 생성 포인터(G-PTR)는 1일 수 있다.In addition, flits F8 and F9 are stored in the
도 14를 참조하면, 패킷의 전송이 진행되어 패킷 버퍼(320)에 저장되어 있던 플릿(F8)이 전송되고, 패킷 버퍼(320) 상의 플릿(F8)이 저장되어 있던 위치에 상응하는 패킷 플래그 레지스터(310) 상의 위치의 플래그가 "0"으로 설정되고, 전송 포 인터(S-PTR)가 하나 증가하는 것을 알 수 있다. 이 때, 전송 포인터(S-PTR)는 0일 수 있다.Referring to FIG. 14, the packet is transmitted, and the fleet F8 stored in the
또한, 패킷의 생성이 진행되어 패킷 버퍼(320)에 플릿(F10)이 저장되고, 패킷 버퍼(320) 상의 플릿(F10)이 저장된 위치에 상응하는 패킷 플래그 레지스터(310) 상의 위치의 플래그가 "1"로 설정되고, 생성 포인터(G-PTR)가 하나 증가한다. 이 때, 생성 포인터(G-PTR)는 2일 수 있다.In addition, the generation of the packet proceeds and the fleet F10 is stored in the
도 15를 참조하면, 패킷의 전송이 진행되어 패킷 버퍼(320)에 저장되어 있던 플릿(F9)이 전송되고, 패킷 버퍼(320) 상의 플릿(F9)이 저장되어 있던 위치에 상응하는 패킷 플래그 레지스터(310) 상의 위치의 플래그가 "0"으로 설정되고, 전송 포인터(S-PTR)가 하나 증가하는 것을 알 수 있다. 이 때, 전송 포인터(S-PTR)는 1일 수 있다.Referring to FIG. 15, the packet is transmitted, and the fleet F9 stored in the
또한, 패킷의 생성이 진행되어 패킷 버퍼(320)에 플릿(F11)이 저장되고, 패킷 버퍼(320) 상의 플릿(F11)이 저장된 위치에 상응하는 패킷 플래그 레지스터(310) 상의 위치의 플래그가 "1"로 설정되고, 생성 포인터(G-PTR)가 하나 증가한다. 이 때, 생성 포인터(G-PTR)는 3일 수 있다.In addition, the generation of the packet proceeds and the fleet F11 is stored in the
도 16을 참조하면, 패킷의 전송이 진행되어 패킷 버퍼(320)에 저장되어 있던 플릿(F10)이 전송되고, 패킷 버퍼(320) 상의 플릿(F10)이 저장되어 있던 위치에 상응하는 패킷 플래그 레지스터(310) 상의 위치의 플래그가 "0"으로 설정되고, 전송 포인터(S-PTR)가 하나 증가하는 것을 알 수 있다. 이 때, 전송 포인터(S-PTR)는 2일 수 있다.Referring to FIG. 16, the packet is transmitted and the fleet F10 stored in the
또한, 패킷의 생성이 진행되어 패킷 버퍼(320)에 플릿(F12)이 저장되고, 패킷 버퍼(320) 상의 플릿(F12)이 저장된 위치에 상응하는 패킷 플래그 레지스터(310) 상의 위치의 플래그가 "1"로 설정되고, 생성 포인터(G-PTR)가 하나 증가한다. 이 때, 생성 포인터(G-PTR)는 0일 수 있다.In addition, the generation of the packet proceeds and the fleet F12 is stored in the
도 17을 참조하면, 패킷의 전송이 진행되어 패킷 버퍼(320)에 저장되어 있던 플릿(F11)이 전송되고, 패킷 버퍼(320) 상의 플릿(F11)이 저장되어 있던 위치에 상응하는 패킷 플래그 레지스터(310) 상의 위치의 플래그가 "0"으로 설정되고, 전송 포인터(S-PTR)가 하나 증가하는 것을 알 수 있다. 이 때, 전송 포인터(S-PTR)는 3일 수 있다.Referring to FIG. 17, the packet is transmitted, and the fleet F11 stored in the
또한, 패킷의 생성이 진행되어 패킷 버퍼(320)에 플릿(F13)이 저장되고, 패킷 버퍼(320) 상의 플릿(F13)이 저장된 위치에 상응하는 패킷 플래그 레지스터(310) 상의 위치의 플래그가 "1"로 설정되고, 생성 포인터(G-PTR)가 하나 증가한다. 이 때, 생성 포인터(G-PTR)는 1일 수 있다.In addition, the generation of the packet proceeds and the fleet F13 is stored in the
도 18을 참조하면, 패킷의 전송이 진행되어 패킷 버퍼(320)에 저장되어 있던 플릿(F12)이 전송되고, 패킷 버퍼(320) 상의 플릿(F12)이 저장되어 있던 위치에 상응하는 패킷 플래그 레지스터(310) 상의 위치의 플래그가 "0"으로 설정되고, 전송 포인터(S-PTR)가 하나 증가하는 것을 알 수 있다. 이 때, 전송 포인터(S-PTR)는 0일 수 있다.Referring to FIG. 18, the packet is transmitted, and the fleet F12 stored in the
또한, 패킷의 생성이 진행되어 패킷 버퍼(320)에 플릿(F14)이 저장되고, 패킷 버퍼(320) 상의 플릿(F14)이 저장된 위치에 상응하는 패킷 플래그 레지스 터(310) 상의 위치의 플래그가 "1"로 설정되고, 생성 포인터(G-PTR)가 하나 증가한다. 이 때, 생성 포인터(G-PTR)는 2일 수 있다.In addition, the generation of the packet proceeds and the fleet F14 is stored in the
도 19를 참조하면, 패킷의 전송이 진행되어 패킷 버퍼(320)에 저장되어 있던 플릿(F13)이 전송되고, 패킷 버퍼(320) 상의 플릿(F13)이 저장되어 있던 위치에 상응하는 패킷 플래그 레지스터(310) 상의 위치의 플래그가 "0"으로 설정되고, 전송 포인터(S-PTR)가 하나 증가하는 것을 알 수 있다. 이 때, 전송 포인터(S-PTR)는 1일 수 있다.Referring to FIG. 19, the packet is transmitted, and the fleet F13 stored in the
또한, 패킷의 생성이 진행되어 패킷 버퍼(320)에 플릿(F15)이 저장되고, 패킷 버퍼(320) 상의 플릿(F15)이 저장된 위치에 상응하는 패킷 플래그 레지스터(310) 상의 위치의 플래그가 "1"로 설정되고, 생성 포인터(G-PTR)가 하나 증가한다. 이 때, 생성 포인터(G-PTR)는 3일 수 있다.In addition, the generation of the packet proceeds and the fleet F15 is stored in the
도 20을 참조하면, 패킷의 전송이 진행되어 패킷 버퍼(320)에 저장되어 있던 플릿(F14)이 전송되고, 패킷 버퍼(320) 상의 플릿(F14)이 저장되어 있던 위치에 상응하는 패킷 플래그 레지스터(310) 상의 위치의 플래그가 "0"으로 설정되고, 전송 포인터(S-PTR)가 하나 증가하는 것을 알 수 있다. 이 때, 전송 포인터(S-PTR)는 2일 수 있다.Referring to FIG. 20, the packet is transmitted, and the fleet F14 stored in the
또한, 패킷의 생성이 진행되어 패킷 버퍼(320)에 플릿(F16)이 저장되고, 패킷 버퍼(320) 상의 플릿(F16)이 저장된 위치에 상응하는 패킷 플래그 레지스터(310) 상의 위치의 플래그가 "1"로 설정되고, 생성 포인터(G-PTR)가 하나 증가한다. 이 때, 생성 포인터(G-PTR)는 0일 수 있다.In addition, the generation of the packet proceeds and the fleet F16 is stored in the
도 21을 참조하면, 패킷의 전송이 진행되어 패킷 버퍼(320)에 저장되어 있던 플릿(F15)이 전송되고, 패킷 버퍼(320) 상의 플릿(F15)이 저장되어 있던 위치에 상응하는 패킷 플래그 레지스터(310) 상의 위치의 플래그가 "0"으로 설정되고, 전송 포인터(S-PTR)가 하나 증가하는 것을 알 수 있다. 이 때, 전송 포인터(S-PTR)는 3일 수 있다.Referring to FIG. 21, the packet is transmitted, and the fleet F15 stored in the
도 22를 참조하면, 패킷의 전송이 진행되어 패킷 버퍼(320)에 저장되어 있던 플릿(F16)이 전송되고, 패킷 버퍼(320) 상의 플릿(F16)이 저장되어 있던 위치에 상응하는 패킷 플래그 레지스터(310) 상의 위치의 플래그가 "0"으로 설정되고, 전송 포인터(S-PTR)가 하나 증가하는 것을 알 수 있다. 이 때, 전송 포인터(S-PTR)는 0일 수 있다.Referring to FIG. 22, the packet is transmitted, and the fleet F16 stored in the
도 4 내지 도 22를 통하여 설명된 과정을 통하여, 본 발명의 일실시예에 따른 네트워크-온-칩 패킷 인코더는 헤더를 포함하여 6개의 플릿 및 이에 상응하는 플래그들을 저장할 수 있는 공간만 있으면 플릿 헤더(FH), 패킷 헤더(PH) 및 16개의 데이터 패킷들(F1-F16)을 생성하여 전송할 수 있다.Through the process described with reference to FIGS. 4 to 22, the network-on-chip packet encoder according to an embodiment of the present invention has a flit header provided that there is space for storing six flits and corresponding flags, including a header. (F H ), a packet header (P H ), and 16 data packets F1-F16 may be generated and transmitted.
본 발명의 네트워크-온-칩 패킷 인코더의 패킷 버퍼의 크기는 어플리케이션 종류나 네트워크 상태에 따라 달라질 수 있다.The size of the packet buffer of the network-on-chip packet encoder of the present invention may vary depending on the application type or the network condition.
도 23은 본 발명의 일실시예에 따른 네트워크-온-칩 인터페이스 장치가 AXI 마스터 장치와 연동하여 동작하는 경우의 프로토콜 제어 신호 생성을 설명하기 위한 블록도이다.FIG. 23 is a block diagram illustrating protocol control signal generation when a network-on-chip interface device operates in conjunction with an AXI master device according to an embodiment of the present invention.
도 23을 참조하면, AXI 마스터 장치(231)가 라이트(write) 동작을 수행하는 경우에, 네트워크-온-칩 인터페이스 장치(232)는 AXI 마스터 장치(231)로부터 수신되는 트랜잭션에 포함된 라이트 데이터(write data)를 패킷화한다.Referring to FIG. 23, when the
이 때, 네트워크-온-칩 인터페이스 장치(232) 내부의 제어신호 생성부는 네트워크-온-칩 인터페이스 장치(232)의 스테이트가 아이들 스테이트(IDLE_STATE)인 경우 프로토콜 제어 신호로써 wReady 신호를 활성화시키고, 네트워크-온-칩 인터페이스 장치(232)의 스테이트가 비지 스테이트(BUSY_STATE)인 경우에는 패킷 플래그 레지스터의 생성 포인터에 상응하는 플래그가 "0"인 경우에 상기 프로토콜 제어 신호로써 wReady 신호를 활성화한다.At this time, the control signal generation unit inside the network-on-
이 때, 네트워크-온-칩 인터페이스 장치(232)의 스테이트는 네트워크-온-칩 인터페이스 장치의 유한 상태 기계(Finite State Machine; FSM)에 의하여 결정될 수 있다. 이 때, 아이들 스테이트(IDLE_STATE)는 현재 입력 트랜잭션이 없는 상태이고, 비지 스테이트(BUSY_STATE)는 입력 트랜잭션을 패킷으로 변환하고 있는 상태이다.At this time, the state of the network-on-
도 23에 도시된 네트워크-온-칩 인터페이스 장치(232)의 프로토콜 제어신호 생성 동작을 수도 코드로 설명하면 하기 수도 코드 1과 같다.A protocol control signal generation operation of the network-on-
[수도 코드 1][Capital Code 1]
if( 네트워크-온-칩 인터페이스 장치의 상태 == IDLE_STATE ) if (status of network-on-chip interface device == IDLE_STATE)
wReady = ( wPacketFlag[0] == 전송완료 ) && ( wPacketFlag[1] == 전송완료 ) && ( wPacketFlag[2] == 전송완료 )wReady = (wPacketFlag [0] == Completed) && (wPacketFlag [1] == Completed) && (wPacketFlag [2] == Completed)
else( 네트워크-온-칩 인터페이스 장치의 상태 == BUSY_STATE)else (Status of network-on-chip interface device == BUSY_STATE)
wReady = ( wPacketFlag[G-PTR + 2] == 전송완료 )wReady = (wPacketFlag [G-PTR + 2] == Transmission Completed)
상기 수도 코드 1에서 wPacketFlag[0]은 플릿 헤더에 상응하는 플래그이고, wPacketFlag[1]은 패킷 헤더에 상응하는 플래그이며, wPacketFlag[2]는 첫 번째 데이터 플릿에 해당하는 플래그이다. 이하, 수도 코드에서 "전송 완료" 플래그는 "0"을 나타낸다.In the
도 24는 본 발명의 일실시예에 따른 네트워크-온-칩 인터페이스 장치가 AXI 슬레이브 장치와 연동하여 동작하는 경우의 프로토콜 제어 신호 생성을 설명하기 위한 블록도이다.24 is a block diagram illustrating protocol control signal generation when a network-on-chip interface device operates in conjunction with an AXI slave device according to an embodiment of the present invention.
도 24를 참조하면, AXI 슬레이브 장치(241)가 리드(read) 동작을 수행하는 경우에, 네트워크-온-칩 인터페이스 장치(242)는 AXI 슬레이브 장치(241)로부터 수신되는 트랜잭션에 포함된 리드 데이터(read data)를 패킷화한다.Referring to FIG. 24, when the
이 때, 네트워크-온-칩 인터페이스 장치(242) 내부의 제어신호 생성부는 네트워크-온-칩 인터페이스 장치(242)의 스테이트가 아이들 스테이트(IDLE_STATE)인 경우 프로토콜 제어 신호로써 rReady 신호를 활성화시키고, 네트워크-온-칩 인터페이스 장치(242)의 스테이트가 비지 스테이트(BUSY_STATE)인 경우에는 패킷 플래그 레지스터의 생성 포인터에 상응하는 플래그가 "0"인 경우에 상기 프로토콜 제어 신호로써 rReady 신호를 활성화한다.At this time, the control signal generator inside the network-on-
이 때, 네트워크-온-칩 인터페이스 장치(242)의 스테이트는 네트워크-온-칩 인터페이스 장치의 유한 상태 기계(Finite State Machine; FSM)에 의하여 결정될 수 있다.At this time, the state of the network-on-
도 24에 도시된 네트워크-온-칩 인터페이스 장치(242)의 프로토콜 제어신호 생성 동작을 수도 코드로 설명하면 하기 수도 코드 2와 같다.A protocol control signal generation operation of the network-on-
[수도 코드 2][Capital Code 2]
if( 네트워크-온-칩 인터페이스 장치의 상태 == IDLE_STATE ) if (status of network-on-chip interface device == IDLE_STATE)
rReady = ( rPacketFlag[0] == 전송완료 ) && ( rPacketFlag[1] == 전송완료 ) && ( rPacketFlag[2] == 전송완료 )rReady = (rPacketFlag [0] == Transmission Completed) && (rPacketFlag [1] == Transmission Completed) && (rPacketFlag [2] == Transmission Completed)
else( 네트워크-온-칩 인터페이스 장치의 상태 == BUSY_STATE)else (Status of network-on-chip interface device == BUSY_STATE)
rReady = ( rPacketFlag[G-PTR + 2] == 전송완료 )rReady = (rPacketFlag [G-PTR + 2] == Transmission Completed)
상기 수도 코드 2에서 rPacketFlag[0]은 플릿 헤더에 상응하는 플래그이고, rPacketFlag[1]은 패킷 헤더에 상응하는 플래그이며, rPacketFlag[2]는 첫 번째 데이터 플릿에 해당하는 플래그이다.In the pseudo code 2, rPacketFlag [0] is a flag corresponding to the flit header, rPacketFlag [1] is a flag corresponding to the packet header, and rPacketFlag [2] is a flag corresponding to the first data flit.
도 25는 본 발명의 일실시예에 따른 네트워크-온-칩 인터페이스 장치가 AHB 마스터 장치와 연동하여 동작하는 경우의 프로토콜 제어 신호 생성을 설명하기 위한 블록도이다.FIG. 25 is a block diagram illustrating protocol control signal generation when a network-on-chip interface device operates in conjunction with an AHB master device according to an embodiment of the present invention.
도 25를 참조하면, AHB 마스터 장치(251)가 라이트(write) 동작을 수행하는 경우에, 네트워크-온-칩 인터페이스 장치(252)는 AHB 마스터 장치(251)로부터 수신되는 트랜잭션에 포함된 라이트 데이터(write data)를 패킷화한다.Referring to FIG. 25, when the
이 때, 네트워크-온-칩 인터페이스 장치(252) 내부의 제어신호 생성부는 네트워크-온-칩 인터페이스 장치(252)의 스테이트가 아이들 스테이트(IDLE_STATE)인 경우 프로토콜 제어 신호로써 HReady 신호를 활성화시키고, 네트워크-온-칩 인터페이스 장치(252)의 스테이트가 비지 스테이트(BUSY_STATE)인 경우에는 패킷 플래그 레지스터의 생성 포인터에 상응하는 플래그가 "0"인 경우에 상기 프로토콜 제어 신호로써 HReady 신호를 활성화한다.At this time, the control signal generator inside the network-on-
이 때, 네트워크-온-칩 인터페이스 장치(252)의 스테이트는 네트워크-온-칩 인터페이스 장치의 유한 상태 기계(Finite State Machine; FSM)에 의하여 결정될 수 있다.At this time, the state of the network-on-
도 25에 도시된 네트워크-온-칩 인터페이스 장치(252)의 프로토콜 제어신호 생성 동작을 수도 코드로 설명하면 하기 수도 코드 3과 같다.A protocol control signal generation operation of the network-on-
[수도 코드 3][Capital Code 3]
if( 네트워크-온-칩 인터페이스 장치의 상태 == IDLE_STATE ) if (status of network-on-chip interface device == IDLE_STATE)
HReady = ( wPacketFlag[0] == 전송완료 ) && ( wPacketFlag[1] == 전송완료 ) && ( wPacketFlag[2] == 전송완료 )HReady = (wPacketFlag [0] == Completed) && (wPacketFlag [1] == Completed) && (wPacketFlag [2] == Completed)
else( 네트워크-온-칩 인터페이스 장치의 상태 == BUSY_STATE)else (Status of network-on-chip interface device == BUSY_STATE)
HReady = ( wPacketFlag[G-PTR + 2] == 전송완료 )HReady = (wPacketFlag [G-PTR + 2] == Transmission Completed)
상기 수도 코드 3에서 wPacketFlag[0]은 플릿 헤더에 상응하는 플래그이고, wPacketFlag[1]은 패킷 헤더에 상응하는 플래그이며, wPacketFlag[2]는 첫 번째 데이터 플릿에 해당하는 플래그이다.In the pseudo code 3, wPacketFlag [0] is a flag corresponding to the flit header, wPacketFlag [1] is a flag corresponding to the packet header, and wPacketFlag [2] is a flag corresponding to the first data flit.
도 26은 본 발명의 일실시예에 따른 네트워크-온-칩 인터페이스 장치가 AHB 슬레이브 장치와 연동하여 동작하는 경우의 프로토콜 제어 신호 생성을 설명하기 위한 블록도이다.FIG. 26 is a block diagram illustrating a protocol control signal generation when a network-on-chip interface device operates in conjunction with an AHB slave device according to an embodiment of the present invention.
도 26을 참조하면, AHB 슬레이브 장치(261)가 리드(read) 동작을 수행하는 경우에, 네트워크-온-칩 인터페이스 장치(262)는 AHB 슬레이브 장치(261)로부터 수신되는 트랜잭션에 포함된 리드 데이터(read data)를 패킷화한다.Referring to FIG. 26, when the
이 때, 네트워크-온-칩 인터페이스 장치(262) 내부의 제어신호 생성부는 네트워크-온-칩 인터페이스 장치(262)의 스테이트가 아이들 스테이트(IDLE_STATE)인 경우 프로토콜 제어 신호로써 HTrans 신호를 NONSEQ로 설정하고, 네트워크-온-칩 인터페이스 장치(262)의 스테이트가 비지 스테이트(BUSY_STATE)인 경우에는 상기 패킷 플래그 레지스터의 생성 포인터에 상응하는 플래그가 "0"인 경우에 프로토콜 제어 신호로써 HTrans 신호를 SEQ로 설정하고, 생성 포인터에 상응하는 플래그가 "0"이 아닌 경우에는 프로토콜 제어 신호로써 HTrans 신호를 BUSY로 설정한다.At this time, when the state of the network-on-
이 때, 네트워크-온-칩 인터페이스 장치(262)의 스테이트는 네트워크-온-칩 인터페이스 장치의 유한 상태 기계(Finite State Machine; FSM)에 의하여 결정될 수 있다.At this time, the state of the network-on-
도 26에 도시된 네트워크-온-칩 인터페이스 장치(262)의 프로토콜 제어신호 생성 동작을 수도 코드로 설명하면 하기 수도 코드 4와 같다.A protocol control signal generation operation of the network-on-
[수도 코드 4][Capital Code 4]
if( 네트워크-온-칩 인터페이스 장치의 상태 == IDLE_STATE ) if (status of network-on-chip interface device == IDLE_STATE)
HTrans = ( rPacketFlag[0] == 전송완료 ) && ( wPacketFlag[1] == 전송완료 ) && ( wPacketFlag[2] == 전송완료 ) ? NONSEQ : IDLEHTrans = (rPacketFlag [0] == Completed) && (wPacketFlag [1] == Completed) && (wPacketFlag [2] == Completed)? NONSEQ: IDLE
else( 네트워크-온-칩 인터페이스 장치의 상태 == BUSY_STATE)else (Status of network-on-chip interface device == BUSY_STATE)
HTrans = ( rPacketFlag[G-PTR + 2] ) == 전송완료 ) ? SEQ : BUSYHTrans = (rPacketFlag [G-PTR + 2]) == Transmission Completed? SEQ: BUSY
상기 수도 코드 4에서 rPacketFlag[0]은 플릿 헤더에 상응하는 플래그이고, rPacketFlag[1]은 패킷 헤더에 상응하는 플래그이며, rPacketFlag[2]는 첫 번째 데이터 플릿에 해당하는 플래그이다.In the pseudo code 4, rPacketFlag [0] is a flag corresponding to the flit header, rPacketFlag [1] is a flag corresponding to the packet header, and rPacketFlag [2] is a flag corresponding to the first data flit.
도 27은 본 발명의 일실시예에 따른 네트워크-온-칩 패킷 인코딩 방법의 패킷 생성시의 동작을 나타낸 동작 흐름도이다.27 is a flowchart illustrating an operation in packet generation of the network-on-chip packet encoding method according to an embodiment of the present invention.
도 27을 참조하면, 본 발명의 일실시예에 따른 네트워크-온-칩 패킷 인코딩 방법은 IP 장치로부터의 트랜잭션에 상응하는 네트워크-온-칩 패킷 생성시에 먼저 생성 포인터에 상응하는 패킷 플래그 레지스터의 플래그가 제1 레벨인지 여부를 판단한다(S710).Referring to FIG. 27, a network-on-chip packet encoding method according to an embodiment of the present invention may first generate a packet flag register corresponding to a generation pointer when generating a network-on-chip packet corresponding to a transaction from an IP device. It is determined whether the flag is the first level (S710).
이 때, IP 장치는 AMBA AXI 마스터 장치, AMBA AXI 슬레이브 장치, AMBA AHB 마스터 장치 또는 AMBA AHB 슬레이브 장치일 수 있다.In this case, the IP device may be an AMBA AXI master device, an AMBA AXI slave device, an AMBA AHB master device, or an AMBA AHB slave device.
또한, 본 발명의 일실시예에 따른 네트워크-온-칩 패킷 인코딩 방법은 단계(S710)의 판단 결과 플래그가 제1 레벨인 경우, 상기 패킷을 구성하는 플릿을 패킷 버퍼의 상기 생성 포인터에 상응하는 저장공간에 저장하고 상기 생성 포인터에 상응하는 상기 패킷 플래그 레지스터의 플래그를 제2 레벨로 설정하고 상기 생성 포인터를 증가시킨다(S720).In addition, in the network-on-chip packet encoding method according to an embodiment of the present invention, when the flag of the determination result in step S710 is the first level, the flits constituting the packet correspond to the generation pointer of the packet buffer. Stored in the storage space, the flag of the packet flag register corresponding to the generation pointer is set to the second level and the generation pointer is incremented (S720).
단계(S710)의 판단 결과, 플래그가 제2 레벨인 경우, 본 발명의 일실시예에 따른 네트워크-온-칩 패킷 인코딩 방법은 상기 플래그가 제1 레벨로 설정될 때까지 대기한다.As a result of the determination in step S710, when the flag is at the second level, the network-on-chip packet encoding method according to an embodiment of the present invention waits until the flag is set to the first level.
도 28은 본 발명의 일실시예에 따른 네트워크-온-칩 패킷 인코딩 방법의 패킷 전송시의 동작을 나타낸 동작 흐름도이다.28 is a flowchart illustrating an operation during packet transmission of the network-on-chip packet encoding method according to an embodiment of the present invention.
도 28을 참조하면, 본 발명의 일실시예에 따른 네트워크-온-칩 패킷 인코딩 방법은 IP 장치로부터의 트랜잭션에 상응하는 네트워크-온-칩 패킷 전송시에 먼저 전송 포인터에 상응하는 패킷 플래그 레지스터의 플래그가 제2 레벨인지 여부를 판단한다(S810).Referring to FIG. 28, a network-on-chip packet encoding method according to an embodiment of the present invention may first determine a packet flag register corresponding to a transmission pointer when transmitting a network-on-chip packet corresponding to a transaction from an IP device. It is determined whether the flag is the second level (S810).
이 때, IP 장치는 AMBA AXI 마스터 장치, AMBA AXI 슬레이브 장치, AMBA AHB 마스터 장치 또는 AMBA AHB 슬레이브 장치일 수 있다.In this case, the IP device may be an AMBA AXI master device, an AMBA AXI slave device, an AMBA AHB master device, or an AMBA AHB slave device.
또한, 본 발명의 일실시예에 따른 네트워크-온-칩 패킷 인코딩 방법은 단계(S810)의 판단 결과 플래그가 제2 레벨인 경우, 상기 패킷 버퍼의 상기 전송 포인터에 상응하는 저장공간에 저장된 플릿을 전송하고 상기 전송 포인터에 상응하는 상기 패킷 플래그 레지스터의 플래그를 상기 제1 레벨로 설정하고 상기 전송 포인터를 증가시킨다(S820).In addition, the network-on-chip packet encoding method according to an embodiment of the present invention, if the flag is the second level as a result of the determination in step S810, the fleet stored in the storage space corresponding to the transmission pointer of the packet buffer Transmit and set the flag of the packet flag register corresponding to the transmit pointer to the first level and increase the transmit pointer (S820).
단계(S810)의 판단 결과, 플래그가 제1 레벨인 경우, 본 발명의 일실시예에 따른 네트워크-온-칩 패킷 인코딩 방법은 상기 플래그가 제2 레벨로 설정될 때까지 대기한다.As a result of the determination in step S810, when the flag is at the first level, the network-on-chip packet encoding method according to an embodiment of the present invention waits until the flag is set to the second level.
도 27 및 도 28에 도시된 동작은 컨커런트(concurrent)하게 수행될 수 있다.The operations shown in FIGS. 27 and 28 may be performed concurrently.
본 발명에 따른 네트워크-온-칩 패킷 인코딩 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실 행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The network-on-chip packet encoding method according to the present invention can be implemented in the form of program instructions that can be executed by various computer means and recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. The medium may be a transmission medium such as an optical or metal wire, a waveguide, or the like including a carrier wave for transmitting a signal specifying a program command, a data structure, or the like. Examples of program instructions include machine code, such as produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
도 27 및 도 28에 도시된 방법에서 설명하지 아니한 내용은 도 1 내지 도 22를 통하여 이미 설명된 바와 같으므로 이하 생략한다.Details not described in the methods illustrated in FIGS. 27 and 28 are the same as those already described with reference to FIGS. 1 to 22, and thus will be omitted below.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, although the present invention has been described with reference to limited embodiments and drawings, the present invention is not limited to the above embodiments, and those skilled in the art to which the present invention pertains various modifications and variations from such descriptions. This is possible.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined not only by the claims below but also by the equivalents of the claims.
본 발명은 네트워크-온-칩 패킷이 완전히 생성되기 이전이라도 패킷의 생성과 전송을 컨커런트하게(concurrently) 처리할 수 있어, 패킷 전송 지연에 따른 레이턴시(latency)를 줄일 수 있다.The present invention can handle the generation and transmission of packets concurrently even before the network-on-chip packet is completely generated, thereby reducing latency due to packet transmission delay.
또한, 본 발명은 패킷 전체를 저장하지 아니하고, 기설정된(predetermined) 저장공간 한도내에서 패킷을 저장함으로써 패킷 저장에 필요한 저장 공간을 최소화할 수 있다.In addition, the present invention can minimize the storage space required for packet storage by storing the packet within a preset storage space limit without storing the entire packet.
또한, 본 발명은 패킷 버퍼 및 패킷 플래그 레지스터를 생성 포인터 및 생성 포인터와 독립적인 전송 포인터를 이용하여 포인팅함으로써 효과적으로 패킷 인코 더를 컨트롤 할 수 있다.In addition, the present invention can effectively control the packet encoder by pointing the packet buffer and the packet flag register using a generation pointer and a transmission pointer independent of the generation pointer.
Claims (17)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060127752A KR100846739B1 (en) | 2006-12-14 | 2006-12-14 | Apparatus for network-on-chip interfacing and method of network-on-chip packet encoding using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060127752A KR100846739B1 (en) | 2006-12-14 | 2006-12-14 | Apparatus for network-on-chip interfacing and method of network-on-chip packet encoding using the same |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080054981A KR20080054981A (en) | 2008-06-19 |
KR100846739B1 true KR100846739B1 (en) | 2008-07-16 |
Family
ID=39801856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060127752A KR100846739B1 (en) | 2006-12-14 | 2006-12-14 | Apparatus for network-on-chip interfacing and method of network-on-chip packet encoding using the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100846739B1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101841173B1 (en) | 2010-12-17 | 2018-03-23 | 삼성전자주식회사 | Device and Method for Memory Interleaving based on a reorder buffer |
KR102034698B1 (en) * | 2018-05-25 | 2019-10-21 | 성균관대학교산학협력단 | Method and apparatus for transmitting flit of network on chip |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6823411B2 (en) | 2002-01-30 | 2004-11-23 | International Business Machines Corporation | N-way psuedo cross-bar having an arbitration feature using discrete processor local busses |
KR20050115195A (en) * | 2004-06-03 | 2005-12-07 | 광주과학기술원 | Asynchronous switch based on butterfly fat-tree for network on chip applications |
KR20060067802A (en) * | 2004-12-15 | 2006-06-20 | 한국전자통신연구원 | Apparatus and method for interfacing of on chip network |
-
2006
- 2006-12-14 KR KR1020060127752A patent/KR100846739B1/en not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6823411B2 (en) | 2002-01-30 | 2004-11-23 | International Business Machines Corporation | N-way psuedo cross-bar having an arbitration feature using discrete processor local busses |
KR20050115195A (en) * | 2004-06-03 | 2005-12-07 | 광주과학기술원 | Asynchronous switch based on butterfly fat-tree for network on chip applications |
KR20060067802A (en) * | 2004-12-15 | 2006-06-20 | 한국전자통신연구원 | Apparatus and method for interfacing of on chip network |
Also Published As
Publication number | Publication date |
---|---|
KR20080054981A (en) | 2008-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100737943B1 (en) | Apparatus for controlling response signal of network-on-chip and method using the same | |
US10664421B1 (en) | Reordering responses in a high performance on-chip network | |
US7814243B2 (en) | Shared storage for multi-threaded ordered queues in an interconnect | |
CN111008170B (en) | System chip, bus interface connection circuit and bus interface connection method thereof | |
KR100675850B1 (en) | System for axi compatible network on chip | |
US7155554B2 (en) | Methods and apparatuses for generating a single request for block transactions over a communication fabric | |
JP6141379B2 (en) | Using completer knowledge about memory region ordering requests to modify transaction attributes | |
US7647476B2 (en) | Common analog interface for multiple processor cores | |
JP2011170868A (en) | Pipeline accelerator for improved computing architecture, and related system and method | |
US8589614B2 (en) | Network system with crossbar switch and bypass route directly coupling crossbar interfaces | |
US7590146B2 (en) | Information processing unit | |
KR100721444B1 (en) | Apparatus for controlling power of network-on-chip and method using the same | |
KR100846739B1 (en) | Apparatus for network-on-chip interfacing and method of network-on-chip packet encoding using the same | |
CN112511537B (en) | SCE-MI protocol bridge and simulation system | |
Morales et al. | A low-area direct memory access controller architecture for a RISC-V based low-power microcontroller | |
TW200407712A (en) | Configurable multi-port multi-protocol network interface to support packet processing | |
Gibiluka et al. | BAT-Hermes: a transition-signaling bundled-data NoC router | |
JP4436902B2 (en) | Logic unit and integrated circuit for clearing interrupts | |
CN115982071A (en) | DDR3 controller-oriented network-on-chip conversion interface | |
Swaminathan et al. | Design of a low power network interface for Network on chip | |
CN210038775U (en) | System on chip | |
US7353297B2 (en) | Handling of write transactions in a data processing apparatus | |
KR101061187B1 (en) | Bus system and its control unit | |
CN118093472A (en) | Signal transmission method between interfaces, storage medium and electronic equipment | |
Pendyala et al. | MIL-STD-1553+: Integrated remote terminal and bus controller at 100-mb/s data rate |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |