KR20050115195A - Asynchronous switch based on butterfly fat-tree for network on chip applications - Google Patents
Asynchronous switch based on butterfly fat-tree for network on chip applications Download PDFInfo
- Publication number
- KR20050115195A KR20050115195A KR1020040068370A KR20040068370A KR20050115195A KR 20050115195 A KR20050115195 A KR 20050115195A KR 1020040068370 A KR1020040068370 A KR 1020040068370A KR 20040068370 A KR20040068370 A KR 20040068370A KR 20050115195 A KR20050115195 A KR 20050115195A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- output
- signal
- input
- unit
- Prior art date
Links
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3081—ATM peripheral units, e.g. policing, insertion or extraction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9042—Separate storage for different parts of the packet, e.g. header and payload
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
네트워크 온 칩 내에서 다양한 IP(Intellectual Property)들을 통하여 IP간의 통신을 가능하게 하는 네트워크 온 칩 어플리케이션을 위한 비동기 스위치 회로를 제시한다.This paper presents an asynchronous switch circuit for network on chip application that enables communication between IPs through various IP (Intellectual Property) in network on chip.
본 발명의 비동기 스위치 회로는 복수의 데이터 플릿을 입력받아 임시 저장하고, 데이터 전송 요청 신호에 따라 각 데이터 플릿의 종류가 헤더 플릿인지 패이로드 플릿인지 확인하는 데이터 입력부, 데이터 입력부로부터 헤더 플릿 처리 요청 신호, 마지막 패이로드 플릿 처리 요청 신호, 헤더 플릿의 라우팅 정보 및 중재 요청 신호를 수신함에 따라, 출력포트 선택신호를 출력하기 위한 출력포트 중재부, 출력포트 중재부에서 결정한 데이터 출력 우선 순위에 따라 데이터 플릿을 순차적으로 저장하는 데이터 이동경로 설정부 및 데이터 입력부로부터 헤더 저장 요청 신호 및 패이로드 저장 요청 신호를 수신하고, 데이터 이동 경로 설정부로부터 입력되는 데이터 플릿을 임시 저장한 후 정해진 순서에 따라 지정된 포트로 출력하기 위한 데이터 출력부를 포함한다.The asynchronous switch circuit of the present invention receives and temporarily stores a plurality of data flits, and checks whether a data type is a header flit or a payload flit according to a data transmission request signal, and a header flit processing request signal from the data input part. In response to receiving the last payload fleet processing request signal, header fleet routing information, and arbitration request signal, an output port arbitration unit for outputting an output port selection signal and a data output priority determined by the data output priority determined by the output port arbitration unit Receives a header storage request signal and a payload storage request signal from a data movement path setting unit and a data input unit sequentially storing the data streams, and temporarily stores data flits inputted from the data movement path setting unit to a designated port in a predetermined order. Data output section for output Include.
Description
본 발명은 비동기 스위치 회로에 관한 것으로, 보다 상세하게는 네트워크 온칩 내에서 다양한 IP(Intellectual Property)들을 통하여 IP간의 통신을 가능하게 하는 네트웍 온칩 어플리케이션을 버터플라이 팻-트리를 사용한 비동기 스위치 회로에 관한 것이다.The present invention relates to an asynchronous switch circuit, and more particularly, to an asynchronous switch circuit using a butterfly fat-tree for network on-chip applications that enable communication between IPs through various IP (Intellectual Property) in the network on-chip. .
빠르게 증가하는 멀티미디어 기능을 만족하기 위해서는 수백만 게이트를 하나의 칩에 구현하는 시스템 온칩(System on Chip; SoC) 기술이 필수적이다. SoC는 시스템의 주요 기능을 하나의 칩에 집적한 반도체 집적회로라고 볼 수 있다. SoC에는 메모리, 프로세서, 외부 인터페이스, 아날로그 및 혼성모드 블록, 내장 소프트웨어, OS 등 시스템을 구성하는 모든 하드웨어 및 소프트웨어 기능을 포함하고 있다.To meet the rapidly growing multimedia capabilities, System on Chip (SoC) technology is essential, with millions of gates on one chip. SoC can be viewed as a semiconductor integrated circuit that integrates the main functions of the system into one chip. The SoC contains all the hardware and software features that make up the system, including memory, processors, external interfaces, analog and mixed-mode blocks, embedded software, and an operating system.
SoC에서는 모든 구성 요소가 하나의 버스를 공유하여 상호 통신하도록 하는 인터커넥션 구조를 갖고 있는 것이 일반적인데, 이 경우 구성 요소 상호간의 통신 속도가 느린 단점이 있다. 또한, 하나의 구성 요소에서 다른 구성 요소로의 신호 전달은 특정 구성 요소에만 전달되는 것이 아니라 모든 구성 요소에 전달되므로 전력소모가 많은 단점이 있다. 아울러, 현재는 8 내지 10개 정도의 구성 요소를 하나의 칩에 탑재하여 사용하고 있지만 앞으로는 50 내지 100개 정도의 구성 요소가 탑재되도록 칩의 구조를 확장해야 할 필요성이 있다. 이 경우, 버스를 공유하는 구조에 접속하는 구성 요소의 수가 증가할수록 부하가 증대되어 구성 요소간의 전송 속도가 감소하는 등 성능이 저하되기 때문에 버스 구조를 이용하여 하나의 칩에 포함되는 구성 요소의 수를 무한정 늘리는 것은 불가능하다.SoCs generally have an interconnection structure in which all components share a single bus to communicate with each other. In this case, communication between components is slow. In addition, the signal transmission from one component to another component is not only transmitted to a specific component but to all components, so power consumption is disadvantageous. In addition, although 8 to 10 components are mounted and used in one chip, there is a need to expand the structure of the chip to mount 50 to 100 components in the future. In this case, as the number of components connected to the bus-sharing structure increases, the load increases and the transmission speed between the components decreases. Therefore, the number of components included in one chip using the bus structure is reduced. It is impossible to increase the number indefinitely.
이와 같이, 현재는 시스템 온칩에서 각 구성 요소간의 상호 접속(Interconnection)을 위해 버스 구조를 채택하고 있지만 확장성이 없고, 데이터 전송에 지연이 발생하며, 대역폭이 제한되어 병목현상이 발생하는 등의 문제가 있다. 또한, 복수의 버스 마스터가 버스의 통제권을 얻기 위해 경쟁을 하기 때문에 버스 마스터의 수가 증가할수록 데이터 전송 지연이 증가되어 성능이 저하되고, 버스의 성능이 IP에 의해 결정되기 때문에 버스의 성능을 최대한 사용할 수 없다. 뿐만 아니라, 현재의 버스 구조를 이용한 스위칭은 동기식으로 구현되기 때문에 클럭의 사용이 필수적이며, 이에 따른 문제를 배제할 수 없다.As such, at present, system-on-chip employs a bus structure for interconnection between components, but has no scalability, delays in data transmission, and bandwidth limitations, causing bottlenecks. There is. In addition, since multiple bus masters compete to gain control of the bus, as the number of bus masters increases, data transfer delay increases, resulting in poor performance, and the performance of the bus is determined by IP. Can't. In addition, since the switching using the current bus structure is implemented synchronously, the use of a clock is essential and a problem thereof cannot be ruled out.
한편, 이상에서 설명한 시스템 온칩의 문제를 해결하고, 하나의 칩에서 대규모 IP들간의 원활한 통신을 지원하기 위하여 연구되고 있는 것이 네트워크 온칩(Network on Chip)이다. 네트워크 온칩을 적용하게 되면, 시스템 온칩에서 나타나는 여러가지 문제 즉, 확장성의 한계, 데이터 전송 지연, 전력 소모 등을 해결할 수 있을 것으로 전망되나 아직까지는 더욱 많은 연구가 필요한 단계에 있다.Meanwhile, a network on chip is being studied to solve the problem of the system on chip described above and to support smooth communication between large-scale IPs in one chip. The application of network on chip is expected to solve various problems of system on chip such as scalability limitation, data transmission delay, power consumption, etc., but more research is needed.
본 발명은 상술한 문제점을 해결하기 위하여 안출된 것으로서, 네트워크 온칩에서 각 IP들 간의 상호 접속을 지원하기 위한 비동기 스위치 회로를 제공하는 데 그 기술적 과제가 있다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and there is a technical problem to provide an asynchronous switch circuit for supporting interconnections between IPs in a network on a chip.
상술한 기술적 과제를 달성하기 위한 본 발명은 복수개의 데이터 패킷을 전달하기 위한 네트워크 온 칩 어플리케이션을 위한 비동기 스위치 회로로서, 상기 데이터 패킷은 하나의 헤더 플릿 및 적어도 하나의 패이로드 플릿으로 이루어지며, 복수의 데이터 플릿을 입력받아 임시 저장하고, 데이터 전송 요청 신호에 따라 상기 각 데이터 플릿의 종류가 헤더 플릿인지 패이로드 플릿인지 확인하는 데이터 입력부; 상기 데이터 입력부로부터 헤더 플릿 처리 요청 신호, 마지막 패이로드 플릿처리 요청 신호, 상기 헤더 플릿의 라우팅 정보 및 중재 요청 신호를 수신함에 따라, 상기 데이터의 출력 우선 순위를 나타내는 출력포트 선택신호를 출력하기 위한 출력포트 중재부; 상기 출력포트 중재부에서 결정한 데이터 출력 우선 순위에 따라 상기 데이터 플릿을 순차적으로 저장하는 데이터 이동경로 설정부; 및 상기 데이터 입력부로부터 헤더 저장 요청 신호 및 패이로드 저장 요청 신호를 수신하고, 상기 데이터 이동 경로 설정부로부터 입력되는 데이터 플릿을 임시 저장한 후 상기 데이터 플릿을 저장하였음을 나타내는 헤더 및 패이로드 저장 완료 신호를 상기 데이터 입력부로 전송하고, 상기 임시 저장된 데이터 플릿을 정해진 순서에 따라 지정된 포트로 출력하기 위한 데이터 출력부;를 포함한다.The present invention for achieving the above-described technical problem is an asynchronous switch circuit for a network-on-chip application for delivering a plurality of data packets, the data packet is composed of one header flit and at least one payload flit, A data input unit configured to receive a data fleet of the data fleet and temporarily store the received data fleet, and to determine whether the data fleet is a header flit or a payload flit according to a data transmission request signal; An output for outputting an output port selection signal indicating an output priority of the data in response to receiving a header flit processing request signal, a last payload flit processing request signal, routing information of the header flit, and an arbitration request signal from the data input unit; Port arbitration; A data movement path setting unit for sequentially storing the data flits according to the data output priority determined by the output port arbitration unit; And a header and payload storage completion signal indicating that the data fleet is stored after receiving a header storage request signal and a payload storage request signal from the data input unit, temporarily storing the data fleet inputted from the data movement path setting unit. And a data output unit for transmitting to the data input unit and outputting the temporarily stored data flits to a designated port in a predetermined order.
본 발명에서 제시하는 스위치 회로는 비동기 방식이므로 클록을 사용하지 않고, 핸드쉐이크 프로토콜 중 하나인 4상 번들 데이터 프로토콜(4 phase bundled data protocol)을 사용한다. 또한, 스위치의 성능을 최대화하기 위해 웜홀 스위칭(worm hole switching) 기술을 도입하였으며, 출력 버퍼링을 이용하여 제어 로직을 간단화하였다. 핸드쉐이크 프로토콜이란 데이터 전송시 송수신단 간의 동기화를 위해 둘 이상의 장치 사이에서 교환되는 메시지 시퀀스로서, 상대방 장치가 데이터를 받을 준비가 되어 있는지 확인하는 기능을 의미하고, 4상 번들 데이터 프로토콜은 이러한 시퀀스가 복수개의 데이터 묶음으로 이루어지는 것을 의미한다. 아울러, 웜홀 스위칭은 하나의 데이터 패킷을 복수개의 플릿으로 나누어 전송할 때 첫번째 플릿의 전송을 개시한 후부터 마지막 플릿을 전송할 때까지 데이터 전송 경로를 점유하여, 해당 데이터 전송 경로로 타 데이터 패킷이 전송되지 않도록 하는 것을 말한다.Since the switch circuit proposed in the present invention is an asynchronous method, it does not use a clock but uses a 4 phase bundled data protocol, which is one of the handshake protocols. In addition, worm hole switching technology is introduced to maximize switch performance, and the output buffering is used to simplify control logic. The handshake protocol is a sequence of messages exchanged between two or more devices for synchronization between transmitters and receivers during data transmission. It refers to the ability of the other device to verify that it is ready to receive data. It means a plurality of data bundles. In addition, when wormhole switching divides one data packet into a plurality of flits and transmits the data, the wormhole switching occupies the data transmission path from the start of the first fleet to the last fleet so that other data packets are not transmitted to the corresponding data transmission path. I say that.
또한 본 발명은, 스위치 회로의 토폴로지로서 버터플라이 팻-트리(butterfly fat-tree) 형태를 채택하였으며, 이러한 토폴로지에 적합한 플릿(flit) 포맷을 제공하여, 가변 길이 플릿을 송수신할 수 있도록 하였다. 버터플라이 팻-트리는 대규모 통신망에 유용한 구조로서, 면적 및 체적 보편성(area/volume universality) 등의 우수한 특징을 갖는다.In addition, the present invention adopts a butterfly fat-tree form as a topology of a switch circuit, and provides a flit format suitable for such a topology, so that a variable length flit can be transmitted and received. Butterfly fat-trees are useful structures for large-scale communication networks and have excellent features such as area and volume universality.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 보다 상세히 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 일반적인 네트워크 온칩 구조의 일 예를 설명하기 위한 도면이다.1 is a diagram illustrating an example of a general network on-chip structure.
도시한 것과 같이, 하나의 IP(R)에 하나의 스위치(S)가 연결되어 있는 것을 알 수 있다. 이와 같은 네트워크 온칩 구조에서는 하나의 스위치(S)에 5개의 입출력 포트가 있어야 하며, 정해진 라우팅 알고리즘에 의해서 입력되는 패킷을 목적지까지 전송하는 일을 수행한다. 이 경우 네트워크의 중심으로 갈수록 트래픽이 증가하여 네트워크의 중심에서는 고속의 스위치를 사용해야 한다. 또한, 트래픽이 증가할수록 스위치에 있는 입출력 큐(Queue)의 길이가 증가하게 되므로 네트워크의 중심에 있는 스위치의 버퍼를 크게 설계해야 한다.As shown, it can be seen that one switch (S) is connected to one IP (R). In such a network-on-chip structure, five I / O ports must be provided in one switch S, and a packet inputted by a predetermined routing algorithm is transmitted to a destination. In this case, as the traffic increases toward the center of the network, a high-speed switch must be used in the center of the network. Also, as the traffic increases, the length of the I / O queue in the switch increases, so the buffer of the switch in the center of the network must be designed large.
도 2는 본 발명에 의한 비동기 스위치 회로의 개념도이다.2 is a conceptual diagram of an asynchronous switch circuit according to the present invention.
도시한 것과 같이, 본 발명에 의한 네트워크 온칩 어플리케이션을 위한 비동기 스위치 회로는 리셋 신호, 제어 신호 및 복수의 데이터를 입력받아 임시 저장하는 데이터 입력부(110), 리셋 신호가 입력되며 데이터 입력부(110)로 복수의 데이터가 동시에 입력되어 동일한 출력 포트로 출력되고자 할 때, 출력 데이터의 우선 순위를 결정하기 위한 출력포트 중재부(120), 출력포트 중재부(120)에서 결정한 데이터 출력 순위에 따라 데이터를 이동시키기 위한 데이터 이동경로 설정부(130), 리셋 신호 및 제어 신호에 따라 데이터 이동 경로 설정부(130)로부터 입력되는 데이터를 지정된 포트로 출력하기 위한 데이터 출력부(140)를 포함한다.As shown, the asynchronous switch circuit for a network on-chip application according to the present invention is a data input unit 110 for receiving and temporarily storing a reset signal, a control signal and a plurality of data, a reset signal is input to the data input unit 110 When a plurality of data are simultaneously input and output to the same output port, the data is moved according to the data output ranking determined by the output port arbitration unit 120 and the output port arbitration unit 120 to determine the priority of the output data. And a data output unit 140 for outputting data input from the data movement path setting unit 130 to a designated port according to the data movement path setting unit 130 and the reset signal and the control signal.
보다 구체적으로 설명하면, 데이터 입력부(110)는 데이터가 입력되면 주어진 데이터 포멧으로부터 해당 데이터가 헤더(header)인지 패이로드(payload)인지를 확인하여 그 종류에 따라 디코딩을 수행하며, 데이터 출력부(140)로 데이터 종류(헤더, 패이로드)별 처리를 요청한다.In more detail, when data is input, the data input unit 110 checks whether the data is a header or a payload from a given data format and decodes the data according to the type. 140) request processing for each data type (header, payload).
출력포트 중재부(120)는 데이터 입력부(110)로부터 중재 요청신호, 헤더 플릿 처리 요청 신호, 마지막 패이로드 저장 완료 신호 및 라우팅 정보를 입력받아 동일한 출력포트로 동시에 출력되고자 하는 데이터 중 하나를 선택한 후 그 결과를 데이터 입력부(110)로 전송한다(중재신호 요청 응답 신호). 또한, 데이터별로 선택한 출력 포트 정보를 데이터 이동경로 설정부(130)로 전송하여, 데이터가 데이터 이동경로 설정부(130)를 통해 데이터 출력부(140)로 정확하게 전달되도록 한다.The output port arbitration unit 120 receives one of the arbitration request signal, the header fleet processing request signal, the last payload storage completion signal, and the routing information from the data input unit 110, and selects one of the data to be simultaneously output to the same output port. The result is transmitted to the data input unit 110 (arbitration signal request response signal). In addition, the output port information selected for each data is transmitted to the data movement path setting unit 130 so that the data is correctly transmitted to the data output unit 140 through the data movement path setting unit 130.
데이터 출력부(140)는 데이터 입력부(110)로부터 데이터 처리 요청 신호를 입력받고(헤더 처리 요청신호, 패이로드 저장 완료 신호), 출력포트 중재부(120)로부터 출력포트 정보를 입력받아, 데이터 이동 경로 설정부(130)를 통해 입력된 데이터를 정해진 출력포트로 출력한다. 데이터를 임시 저장한 후에는 데이터 저장 완료 신호를 출력포트 중재부(120)로 전송하여 데이터 저장이 완료되었음을 통보하고, 정해진 포트로 데이터를 출력한 후에는 이를 데이터 입력부(110)로 알려(헤더 처리 응답 신호, 패이로드 처리 응답 신호) 데이터 입력부가 이후의 데이터를 처리하기 위해 기 저장한 데이터를 삭제할 수 있도록 한다.The data output unit 140 receives a data processing request signal from the data input unit 110 (header processing request signal, payload storage completion signal), receives output port information from the output port arbitration unit 120, and moves data. Outputs the data input through the path setting unit 130 to a predetermined output port. After temporarily storing the data, the data storage completion signal is transmitted to the output port arbitration unit 120 to notify that the data storage is completed, and after outputting the data to the designated port, the data input unit 110 is notified (header processing). Response signal, payload processing response signal) The data input unit may delete previously stored data to process subsequent data.
아울러, 데이터 입력부(110)는 데이터 전송을 요청한 타 스위치 또는 IP로 입력 데이터를 처리하였음을 알리는 신호(입력요청 응답 신호)를 전송하고, 데이터 출력부(140)는 해당 출력 포트로 데이터를 출력한 후, 다음 단 스위치의 데이터 입력부로 출력 요청신호를 전송하여, 다음 단 스위치에서도 이상에서 설명한 과정에 의해 데이터가 출력되도록 하며, 다음 단 스위치의 데이터 입력부는 출력 요청 신호에 대한 응답 신호(출력 응답 신호)를 데이터 출력부(140)로 전송한다.In addition, the data input unit 110 transmits a signal (input request response signal) indicating that the input data has been processed by another switch or IP requesting data transmission, and the data output unit 140 outputs data to the corresponding output port. After that, the output request signal is transmitted to the data input unit of the next stage switch, so that the data is output by the above-described process in the next stage switch, and the data input unit of the next stage switch is a response signal (output response signal) for the output request signal. ) Is transmitted to the data output unit 140.
이러한 스위치 회로는 6개의 입력포트와 6개의 출력포트를 갖는 6*6 버터플라이 팻-트리 구조로 구현할 수 있고, 데이터 패킷은 복수개의 플릿으로 이루어지며, 하나의 플릿이 23비트가 되도록 구현할 수 있다. 또한, 입력 및 출력 포트는 각각 4개의 하위 포트와 2개의 상위 포트로 이루어진다.Such a switch circuit can be implemented in a 6 * 6 butterfly fat-tree structure having six input ports and six output ports, and a data packet is composed of a plurality of flits, and a fleet of 23 bits can be implemented. . In addition, the input and output ports consist of four lower ports and two upper ports, respectively.
도 3은 도 2에 도시한 비동기 스위치 회로의 상세 구성도이다.FIG. 3 is a detailed configuration diagram of the asynchronous switch circuit shown in FIG. 2.
먼저, 데이터 입력부(110)는 6개의 23비트 데이터가 입력(in0(22:0>, in1(22:0>, in2(22:0>, in3(22:0>, in4(22:0>, in5(22:0>)되는 부분으로, 입력 데이터 패킷은 도 4와 같은 포맷을 갖는다. 데이터 패킷은 하나의 헤더 플릿 및 복수의 패이로드 플릿으로 이루어지는데, 도 4a는 헤더 플릿을 나타내고 도 4b는 패이로드 플릿을 나타낸다.First, the data input unit 110 inputs six 23-bit data (in0 (22: 0>, in1 (22: 0>, in2 (22: 0>, in3 (22: 0>, in4 (22: 0>)). , in5 (22: 0>), and the input data packet has a format as shown in Fig. 4. The data packet is composed of one header flit and a plurality of payload flit, and Fig. 4a shows a header flit and Fig. 4b. Indicates a payload fleet.
도 4a에 도시한 헤더 플릿은 타입 필드(2비트), 소스 어드레스 필드(6비트) 및 라우팅 정보 필드(15비트)로 이루어지며, 소스 어드레스 필드는 데이터를 전송한 주체(IP)를 나타내는 부분으로 이를 6비트로 할당함으로써 64개의 IP를 하나의 스위치에 접속할 수 있다. 64개의 IP를 접속하여 사용하는 경우 경유해야 하는 스위치의 최대 수가 5개 이므로, 하나의 스위치 정보를 3비트로 나타낼 수 있고 따라서 라우팅 정보 필드는 15비트가 되게 된다. 여기에서, 라우팅 정보는 각 IP와 비동기 스위치 간에 접속되는 인터페이스부에서 결정되는 것이 일반적인데, 인터페이스부는 본 발명의 기술분야와 거리가 있으므로 구체적인 설명은 생략하기로 한다.The header flit shown in FIG. 4A is composed of a type field (2 bits), a source address field (6 bits), and a routing information field (15 bits). The source address field is a part representing a subject (IP) that transmitted data. By assigning it 6 bits, 64 IPs can be connected to a single switch. In case of connecting and using 64 IPs, the maximum number of switches to pass through is 5, so one switch information can be represented by 3 bits, and thus the routing information field becomes 15 bits. Here, the routing information is generally determined at the interface unit connected between each IP and the asynchronous switch. Since the interface unit is far from the technical field of the present invention, a detailed description thereof will be omitted.
한편, 도 4b에 도시한 패이로드 플릿은 타입 필드(2비트) 및 패이로드 필드(21비트)로 이루어지며, 패이로드 필드에는 실제 데이터가 기록된다. 여기에서, 타입 필드는 헤더 플릿의 경우 00, 패이로드 플릿의 경우 10, 마지막 패이로드 플릿인 경우 11로 각각 다르게 설정하여 사용한다.On the other hand, the payload flit shown in Fig. 4B is composed of a type field (2 bits) and a payload field (21 bits), and actual data is recorded in the payload field. In this case, the type field is set to 00 for a header flit, 10 for a payload flit, and 11 for a last payload flit.
본 발명에 적용되는 데이터 포맷에서, 라우팅 정보는 데이터의 이동 경로 즉, 데이터가 경유할 스위치의 출력포트 정보(또는, 데이터가 입력될 스위치의 입력포트 정보)로 생각할 수 있다. 즉, 라우팅 정보는 3비트씩 5개로 이루어지는데, 데이터 입력부(110)는 데이터가 입력되면 타입 필드를 참조하여 헤더 플릿인지 패이로드 플릿인지 구분한 후, 헤더 플릿인 경우 라우팅 정보의 최하위 3비트를 확인한다. 이 최하위 3비트가 해당 스위치의 출력포트를 구분하는 정보가 되며, 비동기 스위치는 이 헤더 플릿을 최하위 3비트가 나타내는 출력 포트를 통해 다음 스위치로 전송한다. 아울러, 이러한 전송 경로를 계속 유지하여 헤더 플릿 이후의 패이로드 플릿을 동일한 출력 포트를 통해 다음 스위치로 전송하며, 마지막 패이로드까지 모두 전송한 후에 다른 데이터 패킷이 해당 출력 포트를 사용할 수 있도록 한다.In the data format applied to the present invention, the routing information can be considered as a movement path of data, that is, output port information of a switch (or input port information of a switch to which data is to be input). That is, the routing information is composed of five bits of three bits. When data is input, the data input unit 110 refers to the type field to distinguish whether the header flit or the payload flit, and in the case of the header flit, selects the least significant three bits of the routing information. Check it. The lowest 3 bits are the information that identifies the output port of the switch, and the asynchronous switch sends this header fleet to the next switch through the output port indicated by the least significant 3 bits. In addition, the transmission path is maintained to transmit the payload flit after the header flit to the next switch through the same output port, and other data packets can use the output port after transmitting all the way to the last payload.
또한, 데이터 입력부(110)는 헤더 플릿의 하위 3비트를 확인하여 출력포트 정보를 획득한 후에는 하위 3비트 정보를 삭제하고, 나머지 12 비트의 라우팅 정보를 우측으로 3비트 쉬프트한 후, 최상위 3비트(12번째 비트부터 14번째 비트)를 0으로 만든다. 이와 같이 함으로써, 헤더 플릿이 다음 스위치로 전송된 후 다음 스위치에서 헤더 플릿의 최하위 3비트를 이용하여 출력 포트 정보를 획득할 수 있게 된다.In addition, after acquiring the output port information by checking the lower 3 bits of the header flit, the data input unit 110 deletes the lower 3 bits information, shifts the remaining 12 bits of routing information to the right by 3 bits, and then selects the highest 3 bits. Bits (12th to 14th bits) are zeroed out. In this way, after the header flit is transmitted to the next switch, output port information can be obtained by using the least significant 3 bits of the header flit in the next switch.
데이터 입력부(110)로는 또한 리셋 신호(resetb), 데이터 전송 주체로부터 전송되는 데이터 전송 요청 신호(input_req0~input_req5), 데이터 출력부(140)로부터 전송되는 헤더 저장 완료 신호(Datah_a0~Datah_a5) 및 패이로드 저장 완료 신호(Datap_a0~Datap_a5), 출력포트 중재부(120)로부터 전송되는 중재신호 요청 응답 신호(Arb_ack0~Arb_ack5)가 입력된다.The data input unit 110 also includes a reset signal resetb, a data transmission request signal input_req0 to input_req5 transmitted from the data transmission entity, a header storage completion signal Datah_a0 to Datah_a5 transmitted from the data output unit 140, and a payload. The storage completion signals Datap_a0 to Datap_a5 and the arbitration signal request response signals Arb_ack0 to Arb_ack5 transmitted from the output port arbitration unit 120 are input.
6개의 입력 포트로 입력되는 데이터 패킷은 입력 포트에 따라 번호를 부여받게 되고 동일한 기능을 수행하는 다른 모듈에 의해 각각 처리되며, 입력 포트는 4개의 하위 포트와 2개의 상위 포트로 이루어진다. 4개의 하위 포트로 입력되는 데이터는 해당 하위 입력 처리 모듈에서 처리되고, 2개의 상위 포트로 입력되는 데이터는 해당 상위 입력 처리 모듈에서 처리되며, 이를 도 5에 나타내었다.Data packets input to six input ports are numbered according to input ports and processed by other modules that perform the same function. The input ports consist of four lower ports and two upper ports. Data input to the four lower ports is processed in the corresponding lower input processing module, and data input to the two upper ports is processed in the corresponding upper input processing module, which is illustrated in FIG. 5.
도 5는 본 발명에 적용되는 데이터 입력부의 상세 구성도로서, 4개의 하위 입력 처리 모듈(111, 112, 113, 114)과 2개의 상위 입력 처리 모듈(115, 116)을 나타낸다.FIG. 5 is a detailed configuration diagram of a data input unit applied to the present invention and shows four lower input processing modules 111, 112, 113, and 114 and two upper input processing modules 115 and 116.
하위 입력 처리 모듈과 상위 입력 처리 모듈의 차이를 설명하면, 하위 입력 처리 모듈(111, 112, 113, 114)은 각각 자신을 포함한 6개의 출력 포트로 데이터를 전송할 수 있으므로 3비트의 라우팅 정보 비트(RIB<2:0>)를 가지는 반면, 상위 입력 처리 모듈(115, 116)은 항상 상위 출력 포트로만 데이터를 출력하기 때문에 2비트의 라우팅 정보 비트(RIB<1:0>)를 갖는다는 점이다.Referring to the difference between the lower input processing module and the upper input processing module, the lower input processing modules 111, 112, 113, and 114 can transmit data to six output ports including themselves, respectively, so that three bits of routing information bits ( It has a RIB <2: 0>, whereas the upper input processing modules 115 and 116 always have two bits of routing information bits (RIB <1: 0>) because they always output data to the upper output port. .
각 입력 처리 모듈(111~116)은 23비트의 데이터가 입력되면 데이터의 타입 필드를 확인하여, 입력된 데이터가 헤더 플릿인지 패이로드 플릿인지에 따라 각기 다르게 처리한다. 즉, 데이터 전송 요청 신호(Input_req)와 함께 데이터가 입력되어(In<22:0>) 타입 필드를 확인한 결과 헤더 플릿인 경우 데이터 전송 주체로 데이터 전송 요청 응답 신호(Input_ack)를 전송하고 헤더 플릿을 버퍼에 저장한다. 이후, 출력포트 중재부(120)로 라우팅 정보(RIB)와 함께 중재 요청 신호(Arb_req)를 전송하고, 이에 대한 응답(Arb_ack)을 수신하면 데이터 출력부(140)로 헤더 저장 요청 신호(Datah_r)를 전송한다. 데이터 출력부(140)에서 헤더 플릿을 출력(Out<22:0>)하고 난 후에는 이를 알리는 헤더 저장 완료 신호(Datah_a)를 데이터 입력부(110)로 전송한다.Each input processing module 111 to 116 checks the type field of the data when 23 bits of data are input and processes the input data differently depending on whether the input data is a header flit or a payload flit. That is, when data is input together with the data transmission request signal (Input_req) (In <22: 0>) and the header field is determined as a result of checking the type field, the data transmission request response signal (Input_ack) is transmitted to the data transmission subject and the header fleet is transmitted. Store in a buffer. Subsequently, the mediation request signal Arb_req is transmitted to the output port arbitration unit 120 together with the routing information RIB. When the response Arb_ack is received, the header storage request signal Datah_r is transmitted to the data output unit 140. Send it. After outputting the header flit (Out <22: 0>) from the data output unit 140, the header storing completion signal Datah_a indicating the message is transmitted to the data input unit 110.
한편, 입력된 데이터가 패이로드 플릿인 경우에는 헤더 플릿의 경로를 따라 전송하면 되므로 먼저, 데이터 전송 주체로 데이터 전송 요청 응답 신호(Input_ack)를 전송하고, 패이로드 플릿을 버퍼에 저장한 다음, 데이터 출력부(140)로 패이로드 저장 요청 신호(Datap_r)를 전송한다. 데이터 출력부(140)에서 패이로드 플릿을 출력(Out<22:0>)하고 난 후에는 이를 알리는 패이로드 저장 완료 신호(Datap_a)를 데이터 입력부(110)로 전송한다.On the other hand, if the input data is a payload flit, the data may be transmitted along the path of the header flit. First, the data transmission request response signal (Input_ack) is transmitted to the data transmission entity, and the payload flit is stored in a buffer. The payload storage request signal Datap_r is transmitted to the output unit 140. After the payload flit is output (Out <22: 0>) by the data output unit 140, the payload storage completion signal Datap_a indicating this is transmitted to the data input unit 110.
한편, 헤더 플릿 처리 요청 신호(H_r)는 데이터 입력부(110)가 출력포트 중재부(120)로 중재 처리 요청 신호와 함께 전송하는 신호로서, 하나의 데이터 패킷에 대한 데이터 전송을 시작하는 것을 의미하고, 마지막 패이로드 처리 요청 신호(L_r)는 하나의 데이터 패킷에 대한 마지막 패이로드 플릿을 전송함을 나타내는 신호로서, 마지막 패이로드 저장 완료 신호가 활성화될 때까지 즉, 마지막 패이로드 플릿이 출력될 때까지 해당 출력 포트가 특정 데이터 전송을 위해 점유되게 된다. 아울러, 출력 포트 중재부(120)로 전송되는 라우팅 정보는 하위 입력처리 모듈의 경우 3비트, 상위 입력처리 모듈의 경우 2비트가 사용되며, 헤더 플릿의 최하위 라우팅 정보(3비트)를 확인한 후에는 라우팅 정보를 우측으로 쉬프트하여 다음 스위치에서 참조할 수 있도록 한다.Meanwhile, the header flit processing request signal H_r is a signal transmitted from the data input unit 110 to the output port arbitration unit 120 together with the arbitration processing request signal, and means that data transmission for one data packet is started. The last payload processing request signal L_r indicates that the last payload flit for one data packet is transmitted. The last payload flit is output until the last payload storage completion signal is activated. Until that output port is reserved for specific data transfers. In addition, the routing information transmitted to the output port arbitration unit 120 uses 3 bits for the lower input processing module and 2 bits for the upper input processing module, and after checking the least significant routing information (3 bits) of the header fleet, Shift the routing information to the right so that the next switch can refer to it.
이와 같은 입력 처리 모듈을 보다 구체적으로 설명하면 다음과 같다.The input processing module will be described in more detail as follows.
도 6은 도 5에 도시한 하위 입력 처리 모듈의 상세 구성도이고, 도 7은 도 5에 도시한 상위 입력처리 모듈의 상세 구성도이다. 하위 및 상위 입력 처리 모듈은 라우팅 정보 비트의 차이만 있을 뿐 동일하게 동작하므로 함께 설명하기로 한다.6 is a detailed configuration diagram of the lower input processing module illustrated in FIG. 5, and FIG. 7 is a detailed configuration diagram of the upper input processing module illustrated in FIG. 5. Since the lower and upper input processing modules operate in the same manner only with differences in routing information bits, they will be described together.
도시한 것과 같이, 입력 처리 모듈은 패이로드 제어부(1111, 1151), 헤더 제어부(1112, 1152), 데이터 저장부(1113, 1153) 및 헤더 플릿 처리 요청 신호 발생부(1114, 1154)를 포함하며, 각 구성부는 리셋 신호(resetb)에 의해 제어된다.As shown, the input processing module includes payload controllers 1111 and 1151, header controllers 1112 and 1152, data storage units 1113 and 1153, and header fleet processing request signal generators 1114 and 1154. , Each component is controlled by a reset signal resetb.
데이터 전송 주체로부터 데이터 전송 요청 신호(Input_req)가 입력됨과 함께 데이터 저장부(1113, 1153)로 데이터가 입력되면(In<22:0>), 데이터 저장부(1113, 1153)는 입력된 데이터의 데이터 필드 중 타입 필드(F_type<1:0>)를 참조하여 플릿의 종류를 확인하고, 입력 데이터 플릿이 헤더 플릿인 것으로 확인되면(00), 이를 헤더 플릿 처리 요청 신호 발생부(1114, 1154)의 입력단(D)으로 전송하고, 헤더 제어부(1112, 1152)의 헤더 플릿 처리 요청 신호(H_r)가 활성화된다.When the data transmission request signal Input_req is input from the data transmission entity and data is input to the data storage units 1113 and 1153 (In <22: 0>), the data storage units 1113 and 1153 are configured to input the data. The flit type is checked by referring to the type field (F_type <1: 0>) among the data fields, and when it is determined that the input data flit is a header flit (00), the header flit processing request signal generators 1114 and 1154 are used. Is transmitted to the input terminal D, and the header flit processing request signal H_r of the header controllers 1112 and 1152 is activated.
이어서, 헤더 제어부(1112, 1152)는 출력포트 중재부(120)로 중재 요청 신호(Arb_req)를 전송하고 이에 대한 응답 신호(Arb_ack)를 수신하며, 데이터 저장부(1113, 1153)로 헤더 플릿을 저장할 것을 요청하고(Bufh_r), 라우팅 정보를 쉬프트할 것을 요청한다(Shift_r). 아울러, 헤더 플릿 버퍼링 요청 신호(Bufh_r)는 헤더 플릿 처리 요청 신호 발생부(1114, 1154)의 입력단(E)으로 전송되어 라우팅 정보에 의한 출력 포트가 점유되었음을 나타내는 헤더 플릿 처리 요청 신호(H_r) 생성에 사용되도록 한다. 이에 따라, 헤더 플릿 처리 요청 신호 생성부(1114, 1154)는 리셋 신호(resetb), 헤더 플릿 입력 신호(D) 및 헤더 플릿 버퍼링 요청 신호(E)에 의해 해당 출력 포트가 점유되었음을 나타내는 헤더 플릿 처리 요청 신호(H_r)를 출력하게 된다. 또한, 데이터 출력부(140)로 헤더 저장 완료 신호(Dtah_r)를 전송한다.Subsequently, the header controllers 1112 and 1152 transmit the arbitration request signal Arb_req to the output port arbitration unit 120, receive a response signal Arb_ack thereto, and transmit the header flits to the data storage units 1113 and 1153. Request to save (Bufh_r) and request to shift routing information (Shift_r). In addition, the header flit buffering request signal Buhf_r is transmitted to the input terminal E of the header flit processing request signal generating units 1114 and 1154 to generate the header flit processing request signal H_r indicating that an output port based on routing information is occupied. To be used in. Accordingly, the header flit processing request signal generating units 1114 and 1154 perform header flit processing indicating that the corresponding output port is occupied by the reset signal, the header flit input signal D, and the header flit buffering request signal E. The request signal H_r is output. In addition, the header output completion signal Dtah_r is transmitted to the data output unit 140.
한편, 데이터 저장부(1113, 1153)는 헤더 제어부(1112, 1152)로부터 전송된 헤더 플릿 버퍼링 요청 신호(Bufh_r)에 따라 해당 헤더 플릿을 저장한 후, 이에 대한 응답 신호(Bufh_a)를 헤더 제어부(1112, 1152)로 전송하고, 라우팅 정보(RIB)를 출력포트 중재부(120)로 전송한 다음, 헤더 제어부(1112, 1152)의 라우팅 정보 쉬프트 요청 신호(Shft_r)에 따라 라우팅 정보 비트열을 우측으로 3비트 쉬프트하고 라우팅 정보 필드의 최상위 3비트를 0으로 채운 후, 이에 대한 응답 신호(Shift_a)를 헤더 제어부(1112, 1152)로 전송한다. 라우팅 정보는 입력 처리 모듈이 하위 입력처리 모듈인 경우에는 3비트(RIB<2:0>), 상위 입력처리 모듈인 경우에는 2비트(RIB<1:0>)를 사용하여 나타낸다. 또한, 데이터 저장부(1113, 1153)는 데이터(Out<22:0>)를 데이터 이동경로 설정부(130)로 전송한다.Meanwhile, the data storage units 1113 and 1153 store the corresponding header flit according to the header flit buffering request signal Buf_r transmitted from the header controllers 1112 and 1152, and then transmit the response signal Buf_a to the header controller ( 1112 and 1152, the routing information RIB is transmitted to the output port arbitration unit 120, and the routing information bit string is right according to the routing information shift request signal Shft_r of the header controllers 1112 and 1152. After shifting by 3 bits and filling the most significant 3 bits of the routing information field with 0, the response signal Shift_a is transmitted to the header controllers 1112 and 1152. The routing information is represented using 3 bits (RIB <2: 0>) when the input processing module is a lower input processing module and 2 bits (RIB <1: 0>) when the input processing module is an upper input processing module. In addition, the data storage units 1113 and 1153 transmit the data Out <22: 0> to the data movement path setting unit 130.
한편, 데이터 전송 주체로부터 데이터 전송 요청 신호(Input_req)가 입력됨과 함께 데이터 저장부(1113, 1153)로 데이터가 입력되면(In<22:0>), 데이터 저장부(1113, 1153)는 입력된 데이터의 데이터 필드 중 타입 필드(F_type<1:0>)를 추출하여 플릿의 종류를 확인하고, 입력 데이터 플릿이 패이로드 플릿인 것으로 확인되면(10), 이를 패이로드 처리부로 알려 패이로드 플릿 처리 요청 신호(P_r)가 활성화되도록 한다. 이에 따라, 패이로드 제어부(1111, 1151)는 패이로드 플릿 처리 요청에 대한 응답 신호(P_a)를 출력하고, 헤더 플릿 처리 요청 신호에 대한 응답 신호(H_a), 페이로드 플릿 처리 요청에 대한 응답 신호(P_a) 및 플릿의 타입 정보(F_type<0>)를 이용하여 데이터 전송 주체로 데이터 전송이 시작되었음 알리는 전송 요청 응답 신호(Input_ack)를 전송한다.Meanwhile, when the data transmission request signal Input_req is input from the data transmission entity and data is input to the data storage units 1113 and 1153 (In <22: 0>), the data storage units 1113 and 1153 are inputted. Extract the type field (F_type <1: 0>) of the data field of the data to check the type of the fleet, and if the input data flit is determined to be a payload flit (10), it is notified to the payload processing unit to process the payload flit The request signal P_r is activated. Accordingly, the payload controllers 1111 and 1151 output a response signal P_a for the payload flit processing request, a response signal H_a for the header flit processing request signal, and a response signal for the payload flit processing request. Using the P_a and the flit type information F_type <0>, a transmission request response signal Input_ack indicating that data transmission has started is transmitted to the data transmission entity.
이어서, 패이로드 제어부(1111, 1151)는 데이터 출력부(140)로 패이로드 저장 완료 신호(Dtap_r)를 전송하는 한편, 데이터 저장부(1113, 1153)로 패이로드 플릿을 저장할 것을 요청하고(Bufp_r)한다. 이에 따라, 데이터 저장부(1113, 1153)는 패이로드 제어부(1111, 1151)로부터 전송된 패이로드 플릿 버퍼링 요청 신호(Bufp_r)에 따라 해당 패이로드 플릿을 저장한 후, 이에 대한 응답 신호(Bufp_a)를 패이로드 제어부(1111, 1151)로 전송한다.Subsequently, the payload control units 1111 and 1151 transmit the payload storage completion signal Dtap_r to the data output unit 140, and request to store the payload flits to the data storage units 1113 and 1153 (Bufp_r). )do. Accordingly, the data storage units 1113 and 1153 store the corresponding payload flits according to the payload flit buffering request signal Bupf_r transmitted from the payload controllers 1111 and 1151, and then respond with a response signal Bupf_a. Is transmitted to the payload controllers 1111 and 1151.
이후, 데이터 저장부(1113, 1153)는 데이터(Out<22:0>)를 데이터 이동경로 설정부(130)로 전송하며, 패이로드 플릿은 헤더 플릿의 전송 경로(출력포트 중재부(120)에서 결정한 전송 경로)를 따라 데이터 출력부(140)로 전송되게 된다.Thereafter, the data storage units 1113 and 1153 transmit data Out <22: 0> to the data movement path setting unit 130, and the payload flit is a transmission path of the header flit (output port arbitration unit 120). Is transmitted to the data output unit 140 in accordance with the transmission path determined in step.
한편, 데이터 출력부(140)에서 데이터를 출력하기 위해 데이터를 저장한 후에는 패이로드 제어부(1111, 1151) 및 헤더 제어부(1112, 1152)로 해당 데이터 플릿을 출력하였음을 나타내는 신호 즉, 패이로드 저장 완료 신호(Datap_a) 및 헤더 저장 완료 신호(Datah_a)를 전송한다.On the other hand, after storing the data for outputting data from the data output unit 140, a signal indicating that the data fleet has been output to the payload controllers 1111 and 1151 and the header controllers 1112 and 1152, that is, the payload. The storage completion signal Datap_a and the header storage completion signal Datah_a are transmitted.
아울러, 데이터 저장부(1113, 1153)로 입력된 데이터의 데이터 필드 중 타입 필드(F_type<1:0>)를 확인한 결과, 입력 데이터가 마지막 패이로드 플릿으로 확인되면(11), 이를 헤더 플릿 처리 요청 신호 발생부(1114, 1154)로 전송하여 헤더 플릿 처리 요청 신호(H_r)가 비활성화 상태로 전환되도록 하고, 마지막 패이로드 처리 요청 신호(L_r)를 활성화하여 해당 데이터 패킷을 전송하기 위해 점유되어 있던 출력포트를 해제한다.In addition, as a result of checking the type field F_type <1: 0> among the data fields of the data input to the data storage units 1113 and 1153, if the input data is identified as the last payload flit (11), the header flit processing is performed. Transmitted to the request signal generators 1114 and 1154 so that the header flit processing request signal H_r is switched to an inactive state and the last payload processing request signal L_r is activated to occupy the corresponding data packet. Release the output port.
도 8은 도 6 및 도 7에 도시한 패이로드 제어부의 상세 구성도이다.FIG. 8 is a detailed configuration diagram of the payload control unit illustrated in FIGS. 6 and 7.
도시한 것과 같이, 패이로드 제어부(1111, 1151)는 데이터 전송 요청 신호(Input_req)로부터 생성되는 패이로드 플릿 처리 요청 신호(P_r)를 지정된 시간 지연시킨 후 패이로드 플릿을 저장할 것을 요청하는 신호(bufp_r)를 생성하는 지연소자(D1)를 포함한다. 이러한 패이로드 플릿 버퍼링 요청 신호(bufp_r)는 데이터 저장부(1113, 1153)로 전송되게 된다.As illustrated, the payload controllers 1111 and 1151 delay the payload fleet processing request signal P_r generated from the data transmission request signal Input_req for a specified time and then request to store the payload flits (bufp_r). It includes a delay element (D1) for generating a). The payload flit buffering request signal bufp_r is transmitted to the data storage units 1113 and 1153.
아울러, 패이로드 제어부(1111, 1151)는 데이터 저장부(1113, 1153)로부터 수신한 패이로드 플릿 버퍼링 응답 신호(bufp_a), 리셋 신호(resetb) 및 데이터 출력부(140)로부터 수신한 이전 패이로드 플릿에 대한 저장 완료 신호(Datap_a)를 입력으로 하여, 이전 상태의 두 입력값이 모두 0인 경우 0을 출력하고 입력값 중 어느 하나가 0이면 계속해서 0을 출력하며, 입력값이 모두 1로 되면 1을 출력하고, 입력값 중 어느 하나가 1이면 계속해서 1을 출력하는 제 1 논리소자(C-element, gc; L1) 및 제 1 논리소자의 출력 신호 및 패이로드 플릿 버퍼링 응답 신호(bufp_a)를 입력으로 하여, 두 입력값이 모두 1인 경우 1을 출력하는 제 2 논리소자(NAND 게이트; L2)를 포함한다. 여기에서, 제 1 논리소자는 리셋 신호가 입력되면 0을 출력하며 입출력 관계는 [표 1]과 같은 진리표로 나타낼 수 있다.In addition, the payload controllers 1111 and 1151 may receive the payload fleet buffering response signal bufp_a, the reset signal resetb, and the previous payload received from the data storage unit 1113 and 1153. Input the save completion signal (Datap_a) for the fleet as 0. If both input values of the previous state are 0, 0 is output. If any one of the input values is 0, 0 is continuously output. 1 is outputted, and if any one of the input values is 1, the first logic element C-element (gc; L1) and the output signal of the first logic element and the payload flit buffering response signal (bufp_a) ) And a second logic element (NAND gate L2) outputting 1 when both input values are 1. Here, the first logic device outputs 0 when the reset signal is input, and the input / output relationship may be represented by a truth table as shown in [Table 1].
구체적으로 설명하면, 제 1 논리소자(L1)는 최초의 패이로드 플릿을 처리할 때, 패이로드 플릿 버퍼링 요청에 대한 응답 신호(bufp_a)가 1이고, 이전 패이로드 플릿에 대한 저장 완료 신호(Datap_a)가 0이므로, 패이로드 저장 요청 신호(Datap_r)는 1로 출력되게 된다. 아울러, 제 1 논리소자(L1)의 출력값 및 패이로드 플릿 버퍼링 요청 응답 신호(bufp_a)가 모두 1이므로 제 2 논리소자(L2)의 출력 신호 즉, 패이로드 플릿 처리 요청에 대한 응답 신호(P_a)가 활성화되어 데이터 전송 주체 측으로 데이터 전송 요청 응답 신호로서 전송되게 된다.Specifically, when the first logic element L1 processes the first payload flit, the response signal bufp_a for the payload flit buffering request is 1, and the storage completion signal Datap_a for the previous payload flit is performed. Since 0 is 0, the payload storage request signal Datap_r is output as 1. In addition, since the output value of the first logic element L1 and the payload flit buffering request response signal bufp_a are all 1, the output signal of the second logic element L2, that is, the response signal P_a for the payload fleet processing request. Is activated to be transmitted as a data transmission request response signal to the data transmission subject side.
도 9는 도 6 및 도 7에 도시한 헤더 제어부의 상세 구성도이다.9 is a detailed block diagram of the header control unit shown in FIGS. 6 and 7.
헤더 제어부(1112, 1152)는 헤더 플릿 처리 요청 신호(H_r)와 중재 요청에 대한 응답 신호(Arb_ack)를 입력으로 하여 두 입력값이 모두 0인 경우에만 1을 출력하는 제 3 논리소자(L3)와, 제 3 논리소자(L3)의 출력값과 리셋 신호(resetb), 헤더 플릿 버퍼링 요청에 대한 응답 신호(bufh_a)를 입력으로 하여 헤더 플릿 처리 요청에 대한 응답 신호(H_a)를 출력하는 제 4 논리소자(gc, L4), 제 4 논리소자(L4)의 반전값 및 쉬프트 요청에 대한 응답 신호(Shift_a)를 입력으로 하여, 두 입력이 모두 1인 경우에만 1을 출력하여 헤더 저장 요청 신호(Bufh_r)를 생성하는 제 5 논리소자(L5), 리셋 신호(resetb)가 입력되고, 제 4 논리소자(L4)의 출력값과 제 5 논리소자(L5) 출력의 반전값을 입력으로 하여 두 입력값이 모두 1인 경우 1을 출력하는 제 6 논리소자(L6)의 출력값을 제 1 입력으로 하고, 제 4 논리소자(L4) 출력의 반전값과, 헤더 플릿 처리 요청 신호(H_r)를 입력으로 하여 두 입력값이 모두 1인 경우 1을 출력하는 제 7 논리소자(L7)의 출력값을 제 2 입력으로 하여, 입력값이 모두 0인 경우 1을 출력하고 입력값 중 어느 하나가 0인 경우 출력값을 1로 유지하다가 입력값이 모두 1이 되면 0을 출력하고, 입력값 중 어느 하나가 1인 경우 출력값을 0으로 유지하는(즉, 상기 제 4 논리 소자(L4)의 출력과 반대되는 값을 출력하는) 제 8 논리소자(L8) 및 제 8 논리소자(gc'; L8)의 출력값을 반전시켜 쉬프트 요청 신호(Shift_r)를 출력하는 제 9 논리소자(L9), 리셋 신호(reestb)가 입력되고, 헤더 플릿 처리 요청 신호(H_r) 및 헤더 저장 완료 신호(Datah_a)의 반전값을 입력으로 하여 두 입력값이 모두 0인 경우 1을 출력하는 제 10 논리소자(L10)의 출력값을 제 1 입력으로 하고, 제 4 논리소자(L4)의 출력값과 헤더 플릿 버퍼링 요청 응답 신호(Bufh_a)의 반전값 및 헤더 플릿 처리 요청 신호(H_r)를 입력으로 하여 입력값이 모두 1인 경우 1을 출력하는 제 11 논리소자(L11)의 출력값을 제 2 입력으로 하는 제 12 논리소자(L12), 제 12 논리소자(L12)의 출력을 반전시키는 제 13 논리소자(L13), 리셋 신호가 입력되며, 제 13 논리소자(L13)의 출력값을 제 1 입력으로 하고, 중재 요청에 대한 응답 신호(Arb_ack)를 제 2 입력으로 하여 중재 요청 신호(Arb_req)를 출력하는 제 14 논리소자(L14), 리셋 신호(resetb)가 입력되고, 헤더 저장 완료 신호(Datah_a)를 제 1 입력으로 하고, 헤더 플릿 처리 요청 신호(H_r)와 중재 요청 신호에 대한 응답 신호(Arb_ack)와 헤더 저장 완료 신호(Datah_a)의 반전값을 입력으로 하여 입력값이 모두 1인 경우 1을 출력하는 제 15 논리소자(L15)의 출력값을 제 2 입력으로 하는 제 16 논리소자(L16), 제 16 논리소자(L16)의 출력을 반전시켜 헤더 저장 요청 신호(Datah_r)를 생성하는 제 17 논리소자(L17)를 포함한다. 여기에서, 제 14 논리소자(L14)는 리셋 신호가 입력되면 0을 출력하며 입출력 관계는 [표 2]과 같은 진리표로 나타낼 수 있다.The header controllers 1112 and 1152 input the header fleet processing request signal H_r and the response signal Arb_ack for the arbitration request, and output a 1 only when both input values are 0. And a fourth logic for outputting the response signal H_a for the header flit processing request by inputting the output value of the third logic element L3, the reset signal resetb, and the response signal bufh_a for the header fleet buffering request. The inverted values of the elements gc and L4 and the fourth logic element L4 and the response signal Shift_a for the shift request are inputted, and a 1 is outputted only when both inputs are 1 so that the header storage request signal Buf_r ), The fifth logic element L5 and the reset signal resetb are inputted, and the input values of the fourth logic element L4 and the inverted value of the fifth logic element L5 output are input. If all 1, the output value of the sixth logic element L6 that outputs 1 is the first input, and the fourth As the second input, the inverted value of the output of the element L4 and the output signal of the seventh logic element L7 outputting 1 when both input values are 1 as the input of the header fleet processing request signal H_r are input. If the input values are all 0, 1 is outputted.If any one of the input values is 0, the output value is kept at 1, and if the input values are all 1, 0 is outputted. A shift request by inverting the output values of the eighth logic element L8 and the eighth logic element gc '; L8 held at 0 (that is, outputting a value opposite to the output of the fourth logic element L4) A ninth logic element L9 for outputting the signal Shift_r and a reset signal are input, and the inverted values of the header fleet processing request signal H_r and the header storage completion signal Datah_a are input, and two input values are input. If all are 0, the output value of the 10th logic element L10 that outputs 1 is the first input, and the fourth An eleventh logic element L11 that outputs 1 when the output value of the logic element L4, the inverted value of the header fleet buffering request response signal Buhf_a, and the header fleet processing request signal H_r are input, and the input value is 1, respectively. The twelfth logic element L12 having the output value of?) As the second input, the thirteenth logic element L13 for inverting the output of the twelfth logic element L12, and the reset signal are input, and the thirteenth logic element L13 A fourteenth logic element L14 and a reset signal for outputting the arbitration request signal Arb_req with the output signal of the first input, the response signal Arb_ack for the arbitration request as the second input, and the reset signal resetb are inputted. The header storage completion signal Datah_a is the first input, and the inverted values of the header fleet processing request signal H_r and the response signal Arb_ack for the arbitration request signal and the header storage completion signal Datah_a are input. If all are 1, output of the fifteenth logic element L15 outputting one. The sixteenth logic element L16 having the value as the second input, and the seventeenth logic element L17 inverting the output of the sixteenth logic element L16 to generate the header storage request signal Datah_r. Herein, when the reset signal is input, the fourteenth logic element L14 outputs 0, and the input / output relationship may be represented by a truth table as shown in [Table 2].
도 9에 도시한 헤더 제어부(1112, 1152)의 동작을 구체적으로 설명하면 다음과 같다. 먼저, 데이터 전송 요청 신호(input_req)로부터 생성된 헤더 플릿 처리 요청 신호(H_r)가 활성화되면, 제 4 논리소자(L4)의 출력이 일단 0으로 되고, 이에 따라, 제 8 논리소자(L8)의 제 1 입력이 0, 제 2 입력이 0으로 되어, 제 8 논리소자(L8)의 출력 신호는 0이 되고, 제 9 논리소자에서 이를 반전시킨 신호 즉, 쉬프트 요청 신호(Shift_r)가 활성화되어 데이터 저장부(1113, 1153)로 전송되게 된다.The operation of the header controllers 1112 and 1152 shown in FIG. 9 will be described in detail as follows. First, when the header flit processing request signal H_r generated from the data transmission request signal input_req is activated, the output of the fourth logic element L4 becomes 0 once, and thus, the eighth logic element L8 When the first input is 0 and the second input is 0, the output signal of the eighth logic element L8 becomes 0, and the signal inverted by the ninth logic element, that is, the shift request signal Shift_r is activated, and the data is activated. The data are transmitted to the storage units 1113 and 1153.
이후, 데이터 저장부에서 라우팅 정보를 쉬프트한 후 쉬프트 요청에 대한 응답 신호(Shift_a)를 전송하면, 제 5 논리소자(L5)의 출력신호 즉, 헤더 플릿 버퍼링 요청 신호(Bufh_r)가 활성화되어 데이터 저장부(1113, 1153)로 전송되게 된다. 이어서, 데이터 저장부(1113, 1153)에서 헤더 플릿을 저장하고 난 후, 헤더 플릿저장 요청에 대한 응답 신호(Bufh_a)를 전송한다. 이에 따라, 제 4 논리 소자(L4)의 출력 신호인 헤더 플릿 처리 완료 신호(H_a)가 1로 되는 한편, 제 12 논리소자(L12)의 제 1 입력이 0, 제 2 입력이 1이 되어, 제 12 논리소자(L12)로부터 0이 출력되고, 제 14 논리소자(L14)의 제 1 입력이 1, 제 2 입력이 0이므로, 중재 요청 신호(Arb_req)가 활성화되게 된다.Subsequently, when the data storage unit shifts the routing information and transmits the response signal Shift_a for the shift request, the output signal of the fifth logic element L5, that is, the header flit buffering request signal Buhf_r is activated to store data. Are transmitted to the units 1113 and 1153. Subsequently, after storing the header flit in the data storage units 1113 and 1153, the response signal Buf_a for the header flit storage request is transmitted. Accordingly, the header flit processing completion signal H_a, which is the output signal of the fourth logic element L4, becomes 1, while the first input of the twelfth logic element L12 becomes 0 and the second input becomes 1, Since 0 is output from the twelfth logic element L12, and the first input of the fourteenth logic element L14 is 1 and the second input is 0, the arbitration request signal Arb_req is activated.
이어서, 출력포트 중재부(120)로부터 중재 요청에 대한 응답 신호(Arb_ack)를 수신함에 따라, 제 16 논리소자(L16)의 제 1 입력이 0, 제 2 입력이 1이 되어, 제 16 논리소자(L16)로부터 0이 출력되고, 이는 제 17 논리소자(L17)에 의해 반전되어, 데이터 출력부(140)로 헤더 저장 요청 신호(Datah_r)를 전송하게 된다. 이후, 데이터 출력부(140)로부터 헤더 저장 완료 신호(Datah_ack)를 수신한다.Subsequently, when the response signal Arb_ack for the arbitration request is received from the output port arbitration unit 120, the first input of the sixteenth logic element L16 becomes 0 and the second input becomes 1, thereby providing the sixteenth logic element. 0 is outputted from L16, which is inverted by the seventeenth logic device L17 to transmit the header storage request signal Datah_r to the data output unit 140. Thereafter, the header storing completion signal Datah_ack is received from the data output unit 140.
도 10a 내지 10c는 본 발명에 적용되는 C-엘리먼트 회로도 및 비대칭 C-엘리먼트 회로도이다.10A to 10C are C-element circuit diagrams and asymmetric C-element circuit diagrams applied to the present invention.
먼저, 도 10a는 도 8의 제 1 논리소자(L1), 도 9의 제 4 논리소자(L4)의 구현 예를 나타내는 것으로, 전원 단자에 접속되어 제 1 입력 신호(a)에 의해 구동되는 제 1 P 타입 트랜지스터(P1), 제 1 P 타입 트랜지스터에 직렬 접속되며, 제 2 입력 신호(b)의 반전 신호에 의해 구동되는 제 2 P 타입 트랜지스터(P2), 제 2 P 타입 트랜지스터에 직렬 접속되며, 제 1 입력 신호(a)에 의해 구동되는 제 1 N 타입 트랜지스터(N1), 제 1 N 타입 트랜지스터와 접지 단자 간에 직렬 접속되어 제 2 입력 신호(b)의 반전 신호에 의해 구동되는 제 2 N 타입 트랜지스터(N2), 전원 단자와 제 2 P 타입 트랜지스터의 출력 단자 간에 접속되며, 리셋 신호(resetb)에 의해 구동되는 제 3 P 타입 트랜지스터(P3) 및 제 2 P 타입 트랜지스터의 출력 단자에 접속되는 지연소자로서의 제 1 래치 회로(래치 1)를 포함한다.First, FIG. 10A illustrates an implementation example of the first logic element L1 of FIG. 8 and the fourth logic element L4 of FIG. 9. The first logic element L1 of FIG. 9 is connected to a power supply terminal and driven by the first input signal a. Connected in series to the 1 P type transistor P1 and the first P type transistor, and connected in series to the second P type transistor P2 and the second P type transistor driven by the inverted signal of the second input signal b. A first N-type transistor N1 driven by the first input signal a, a second N-type transistor connected in series between the first N-type transistor and the ground terminal and driven by an inverted signal of the second input signal b; Type transistor N2, connected between the power supply terminal and the output terminal of the second P type transistor, and connected to the output terminal of the third P type transistor P3 and the second P type transistor driven by a reset signal resetb. Including a first latch circuit (latch 1) as a delay element All.
다음으로, 도 10b는 도 9의 제 8, 제 12 및 제 16 논리소자(L8, L12, L16)의 구현 예를 나타내는 것으로, 전원 단자에 접속되어 제 1 입력 신호(a)에 의해 구동되는 제 4 P 타입 트랜지스터(P4), 제 4 P 타입 트랜지스터에 직렬 접속되며 제 2 입력 신호(b)의 반전 신호에 의해 구동되는 제 5 P 타입 트랜지스터(P5), 제 5 P 타입 트랜지스터에 직렬 접속되며, 제 1 입력 신호(a)에 의해 구동되는 제 3 N 타입 트랜지스터(N3), 제 3 N 타입 트랜지스터와 접지 단자 간에 직렬 접속되어 제 2 입력 신호(b)의 반전 신호에 의해 구동되는 제 4 N 타입 트랜지스터(N4), 제 5 P 타입 트랜지스터의 출력 단자와 접지 단자 간에 접속되며, 리셋 신호(reset)의 반전신호에 의해 구동되는 제 5 N 타입 트랜지스터(N5) 및 제 5 P 타입 트랜지스터의 출력 단자에 접속되는 지연소자로서의 제 2 래치 회로(래치 2)를 포함한다.Next, FIG. 10B illustrates an implementation of the eighth, twelfth, and sixteenth logic elements L8, L12, and L16 of FIG. 9, and is connected to a power supply terminal and driven by a first input signal a. A fourth P type transistor P4 and a fourth P type transistor connected in series and driven in series by an inverted signal of the second input signal b, connected in series to a fifth P type transistor P5 and a fifth P type transistor, Third N-type transistor N3 driven by the first input signal a, fourth N-type transistor connected in series between the third N-type transistor and the ground terminal and driven by the inverted signal of the second input signal b Transistor N4, connected between the output terminal of the fifth P-type transistor and the ground terminal, and connected to the output terminals of the fifth N-type transistor N5 and the fifth P-type transistor driven by the inverted signal of the reset signal reset. Second latch circuit as a delay element to be connected (latch It includes 2).
도 10c는 도 9의 제 14 논리소자(L14)의 구현 예를 나타내는 것으로, 전원 단자에 접속되어 제 1 입력 신호(a)의 반전신호에 의해 구동되는 제 6 P 타입 트랜지스터(P6), 제 6 P 타입 트랜지스터에 직렬 접속되며, 제 1 입력 신호(a)의 반전신호에 의해 구동되는 제 6 N 타입 트랜지스터(N6), 제 6 N 타입 트랜지스터와 접지 단자 간에 직렬 접속되어 제 2 입력 신호(b)에 의해 구동되는 제 7 N 타입 트랜지스터(N7), 전원 단자와 제 6 P 타입 트랜지스터의 출력 단자 간에 접속되며, 리셋 신호(resetb)에 의해 구동되는 제 7 P 타입 트랜지스터(P7) 및 제 6 P 타입 트랜지스터의 출력 단자에 접속되는 지연소자로서의 제 3 래치 회로(래치 3)를 포함한다.FIG. 10C illustrates an implementation of the fourteenth logic element L14 of FIG. 9. The sixth P-type transistor P6 and the sixth P-type transistor P6 are connected to a power supply terminal and driven by an inverted signal of the first input signal a. A sixth N-type transistor N6 connected in series with the P-type transistor and driven by an inverted signal of the first input signal a, a second input signal b connected in series between the sixth N-type transistor and the ground terminal; Is connected between a power supply terminal and an output terminal of a sixth P-type transistor, and is driven by a reset signal resetb, and is driven by a reset signal resetb. And a third latch circuit (latch 3) as a delay element connected to the output terminal of the transistor.
도 11a 및 11b는 도 6 및 도 7에 도시한 입력 데이터 저장부의 상세 구성도이다.11A and 11B are detailed block diagrams of the input data storage unit shown in FIGS. 6 and 7.
도 11a를 참조하면, 입력되는 23비트의 데이터에 대하여 0번째 데이터 비트로부터 14번째 데이터 비트, 쉬프트 요청 신호(Shift_r), 쉬프트 요청 신호의 반전 신호 및 3비트 우측의 데이터 비트를 각각 입력으로 하는 데이터 선택 수단(1115), 데이터 비트값 0, 쉬프트 요청 신호(Shift_r), 쉬프트 요청 신호의 반전 신호 및 3비트 우측의 데이터 비트를 각각 입력으로 하는 3개의 보조 데이터 선택 수단(1115'), 리셋 신호(resetb)에 의해 제어되며 데이터 선택부(1115) 의 출력신호, 제 18 논리소자(L18)의 출력신호를 입력으로 하여, 데이터 선택 수단(1115)의 출력값을 각각 저장하는 하위 데이터 저장수단(1116), 리셋 신호(resetb)에 의해 제어되며 보조 데이터 선택부(1115') 의 출력신호, 제 18 논리소자(L18)의 출력신호를 입력으로 하여, 데이터 선택 수단(1115)의 출력값을 각각 저장하는 보조 데이터 저장수단(1116'), 리셋 신호(resetb)에 의해 제어되고 23비트의 데이터에 대하여 15번째 데이터비트로부터 22번째 데이터 비트 및 제 18 논리소자(L18)의 출력신호를 입력으로 하여, 상기 데이터 비트값을 각각 저장하는 상위 데이터 저장수단(1116")을 포함한다. 아울러, 입력 데이터 비트열 중 최상위 2비트는 데이터 플릿의 타입(F_type0, F_type1)에 따라 패이로드 제어부(1111, 1151) 또는 헤더 제어부(1112, 1152)로 입력된다.Referring to FIG. 11A, data for inputting 23 bits of data from the 0th data bit to the 14th data bit, the shift request signal Shift_r, the inversion signal of the shift request signal, and the data bits to the right of 3 bits are input. The selection means 1115, the data bit value 0, the shift request signal Shift_r, the inverted signal of the shift request signal, and three auxiliary data selection means 1115 'that respectively input data bits to the right of the three bits, and the reset signal ( the lower data storage means 1116, which is controlled by the resetb and which stores the output value of the data selection means 1115 by inputting the output signal of the data selector 1115 and the output signal of the eighteenth logic element L18, respectively. And an output signal of the auxiliary data selection unit 1115 'and an output signal of the eighteenth logic element L18, which are controlled by the reset signal resetb, to store the output value of the data selection means 1115, respectively. Controlled by an auxiliary data storage means 1116 'and a reset signal resetb and inputting the output signal of the eighteenth logic element L18 and the fifteenth data bit from the fifteenth data bit to the 23-bit data, And upper data storage means 1116 " for storing the data bit values, respectively. In addition, the most significant two bits of the input data bit string are payload controllers 1111 and 1151 according to the data flit types F_type0 and F_type1. Or input to the header controllers 1112 and 1152.
여기에서, 제 18 논리소자(L18)는 헤더 플릿 버퍼링 요청 신호(Bufh_r)와 패이로드 플릿 버퍼링 요청 신호(Bufp_r)를 입력으로 하여, 두 신호 중 어느 하나가 1인 경우 1을 출력하는 오알(OR) 게이트로 구현할 수 있다. 또한, 하위 3개의 데이터 선택 수단(1115)은 3비트 우측의 데이터 비트를 입력받을 수 없으므로, 각각의 출력단에 접속된 하위 데이터 저장 수단(1116)의 출력값을 입력받는다.Herein, the eighteenth logic element L18 receives the header fleet buffering request signal Buhf_r and the payload flit buffering request signal Bupf_r as inputs, and outputs a 1 when one of the two signals is 1 (OR). ) Can be implemented with a gate. In addition, since the lower three data selection means 1115 cannot receive the data bits to the right of the three bits, the lower three data selection means 1115 receive the output values of the lower data storage means 1116 connected to the respective output terminals.
한편, 쉬프트 요청 신호(Shift_r), 헤더 플릿 버퍼링 요청 신호(Bufh_r) 및 패이로드 플릿 버퍼링 요청 신호(Bufp_r)는 지정된 시간 지연된 후 각각 쉬프트 요청 응답 신호(Shift_a), 헤더 플릿 버퍼링 응답 신호(Bufh_a), 패이로드 플릿 버퍼링 응답 신호(Bufp_a)로서, 패이로드 제어부 및 헤더 제어부로 전송된다.Meanwhile, the shift request signal Shift_r, the header flit buffering request signal Buf_r, and the payload flit buffering request signal Bup_r are respectively delayed after a specified time delay, and the shift request response signal Shift_a, the header flit buffering response signal Buf__, As a payload flit buffering response signal Bupf_a, it is transmitted to a payload control unit and a header control unit.
아울러, 본 실시예에서는 하나의 스위치에 대한 라우팅 정보를 3비트로 나타내는 경우에 대하여 설명하였지만, 라우팅 정보 비트에 따라 보조 데이터 선택부의 개수 및 라우팅 정보의 쉬프트 비트 수가 변경될 수 있음은 물론이다.In addition, in the present embodiment, the case in which the routing information of one switch is represented by 3 bits has been described. However, the number of auxiliary data selection units and the number of shift bits of the routing information may be changed according to the routing information bits.
도 11b는 도 11a에 도시한 데이터 선택 수단(1115) 및 보조 데이터 선택 수단(1115')의 구성 예로서, 쉬프트 요청 신호(Shift_r) 및 데이터 비트를 입력으로 하여 두 입력이 모두 1인 경우 1을 출력하는 제 19 논리소자(L19), 쉬프트 요청 신호(Shift_r)의 반전신호 및 3비트 우측의 데이터 비트(하위 3개 데이터 선택 수단의 경우 각각에 접속된 데이터 저장 수단의 출력값)를 입력으로 하여 두 입력이 모두 1인 경우 1을 출력하는 제 20 논리소자(L20), 제 19 및 제 20 논리소자의 출력값을 입력으로 하여 두 입력값 중 어느 하나가 1인 경우 1을 출력하는 제 21 논리소자(L21)로 구성된다.FIG. 11B is an example of the configuration of the data selecting means 1115 and the auxiliary data selecting means 1115 'shown in FIG. 11A. When the shift request signal Shift_r and the data bit are input, 1 is 1 when both inputs are 1. The 19th logic element L19 to be output, the inversion signal of the shift request signal Shift_r, and the data bits to the right of the three bits (the output values of the data storage means connected to each of the three lower data selection means) are input. A twenty-first logic element L20 that outputs one when the inputs are all one, and a twenty-first logic element that outputs one when the input values of one of the two input values are one; L21).
이러한 구성을 갖는 데이터 저장부(1113, 1115)의 동작을 입력된 데이터가 헤더 플릿인 경우와 패이로드 플릿인 경우로 나누어 구체적으로 설명하면 다음과 같다.The operations of the data storage units 1113 and 1115 having such a configuration will be described in detail as follows when the input data is a header flit and a payload flit.
먼저, 헤더 플릿이 입력되는 경우, 21번째 데이터 비트 및 22번째 데이터 비트값 즉, 데이터 타입 필드(F_type0, F_type1)를 검출하여 헤더 제어부(1112, 1152)로 전송한다. 이에 따라, 쉬프트 요청 신호(Shift_r) 및 헤더 플릿 버퍼링 요청 신호(Bufh_r)가 활성화된다. 이 경우, 데이터 선택 수단(1115) 및 보조 데이터 선택 수단(1115')을 구성하는 제 19 논리소자(L19)의 출력은 입력되는 데이터 비트값에 따라 결정되고, 제 20 논리소자(L20)의 출력은 0이 되며, 따라서 제 21 논리소자(L21)의 출력값 즉, 데이터 선택 수단(1115) 및 보조 데이터 선택 수단(1115')의 출력값은 데이터 비트값이 된다. 결국, 하위 데이터 저장 수단(1116) 및 보조 데이터 저장 수단(1116')에는 각 데이터 비트값이 그대로 저장되게 된다.First, when the header flit is input, the 21st data bit and the 22nd data bit value, that is, the data type fields F_type0 and F_type1 are detected and transmitted to the header controllers 1112 and 1152. Accordingly, the shift request signal Shift_r and the header flit buffering request signal Buhf_r are activated. In this case, the output of the nineteenth logic element L19 constituting the data selection means 1115 and the auxiliary data selection means 1115 'is determined in accordance with the input data bit value, and the output of the twentieth logic element L20. Becomes 0, so that the output value of the twenty-first logic element L21, that is, the output value of the data selecting means 1115 and the auxiliary data selecting means 1115 ', becomes the data bit value. As a result, each data bit value is stored in the lower data storage means 1116 and the auxiliary data storage means 1116 'as it is.
헤더 플릿의 경우 최하위 3비트는 라우팅 정보를 나타내므로, 하위 데이터 저장 수단(1116)은 최하위 3비트 정보를 출력포트 중재부(120)로 출력한다.In the case of the header flit, since the least significant 3 bits indicate routing information, the lower data storage means 1116 outputs the least significant 3 bits information to the output port arbitration unit 120.
아울러, 하위 3비트를 제외한 23비트의 데이터는 데이터 이동경로 설정부(130)로 출력되는데, 0을 입력 데이터 비트값으로 하는 보조 데이터 선택 수단(1115')에 의해 라우팅 정보 필드의 상위 3비트가 0으로 채워지게 된다. 또한, 데이터 타입 필드(21~22) 및 소스 어드레스 필드(15~20)는 원래의 데이터가 그대로 상위 데이터 저장부(1116")에 저장된다.In addition, 23 bits of data excluding the lower 3 bits are outputted to the data movement path setting unit 130, and the upper 3 bits of the routing information field are set by the auxiliary data selecting means 1115 'having 0 as the input data bit value. It will be filled with zeros. The data type fields 21 to 22 and the source address fields 15 to 20 are stored in the upper data storage unit 1116 ″ as the original data is intact.
한편, 패이로드 플릿이 입력되는 경우 쉬프트 요청 신호(Shift_r)는 비활성화상태이므로 데이터 선택 수단(1115) 및 보조 데이터 선택 수단(1115')을 구성하는 제 19 논리소자(L19)의 출력값은 0이 되고, 제 20 논리소자(L20)의 출력값은 3비트 우측의 데이터 비트값(최하위 3개 데이터 선택 수단의 경우, 각각에 접속된 데이터 저장 수단의 출력값)이 된다.On the other hand, when the payload flit is input, since the shift request signal Shift_r is inactive, the output value of the nineteenth logic element L19 constituting the data selection means 1115 and the auxiliary data selection means 1115 'becomes zero. The output value of the twentieth logic element L20 is the data bit value on the right side of the three bits (in the case of the lowest three data selection means, the output value of the data storage means connected to each).
이때, 하위 3개의 데이터 저장 수단(1116)에 저장된 값은 패이로드 플릿의 경우 사용되지 않으며, 상위 23개의 데이터 저장 수단(1116)에 저장된 값이 실제 데이터로서 출력되게 된다. 구체적으로 설명하면, 실제 입력 데이터의 0번째 비트부터 14번째 비트까지는 3비트씩 좌측으로 쉬프트되어 하위 데이터 저장수단(1116)에 저장되고, 15번째 비트부터 17번째 비트까지는 보조 데이터 저장수단(1116')에 저장되며, 18번째 비트부터 22번째 비트까지는 직접 상위 데이터 저장 수단(1116)으로 전송되어 저장된 후, 데이터 이동경로 설정부로 출력되는 것이다.In this case, the values stored in the lower three data storage means 1116 are not used in the case of a payload flit, and the values stored in the top 23 data storage means 1116 are output as actual data. Specifically, the 0th bit to the 14th bit of the actual input data are shifted left by 3 bits and stored in the lower data storing means 1116, and the auxiliary data storing means 1116 'from the 15th bit to the 17th bit. ), The 18th bit to the 22nd bit are directly transmitted to the upper data storage means 1116 and stored, and then output to the data movement path setting unit.
이상에서는 데이터 입력부(110)의 구성 및 동작에 대하여 설명하였으며, 이하에서는 출력포트 중재부(120)에 대하여 설명하기로 한다.The configuration and operation of the data input unit 110 have been described above, and the output port arbitration unit 120 will be described below.
도 12는 본 발명에 적용되는 출력포트 중재부의 상세 구성도이다.12 is a detailed configuration diagram of the output port arbitration unit applied to the present invention.
도시한 것과 같이, 출력포트 중재부(120)는 각 입력포트로 입력된 데이터에 대한 중재 요청 신호(Arb_req0~ Arb_req5) 및 각 데이터의 라우팅 정보(rib)를 데이터 입력부(110)로부터 입력받아, 각 중재 요청 신호의 전송 경로를 결정하기 위한 제 1 내지 제 6 디멀티플렉서(DM0~DM5), 각 입력포트로 입력된 데이터에 대한 헤더 플릿 처리 요청 신호(H_r)를 입력받아 각 헤더 플릿 처리 요청 신호의 전송 경로를 결정하기 위한 제 7 내지 제 12 디멀티플렉서(DM6~DM11), 각 입력포트로 입력된 데이터에 대한 마지막 패이로드 처리 요청 신호(L_r)를 입력받아 각 마지막 패이로드 저장 완료 신호의 전송 경로를 결정하기 위한 제 13 내지 제 18 디멀티플렉서(DM12~DM17), 제 1 내지 제 6 디멀티플렉서로부터 입력된 중재 요청 신호(Arb_req)에 따른 중재 요청 응답 신호(Arb_ack)를 생성하고, 동일한 포트로 출력하고자 하는 데이터 패킷에 대한 출력포트 선택 신호(s)를 생성하는 중재 수단(1200) 및 중재수단(1200)에서 생성한 중재 요청 응답 신호(Arb_ack) 및 선택 신호(s)에 따라 데이터 입력부(110)로 중재 결과(Arb_ack)를 전송하는 제 1 내지 제 6 멀티플렉서(M0~M5)를 포함한다.As shown, the output port arbitration unit 120 receives the arbitration request signals Arb_req0 to Arb_req5 and routing information ribs of the data from the data input unit 110 for data input to each input port. First to sixth demultiplexers DM0 to DM5 for determining a transmission path of the arbitration request signal, and receiving a header flit processing request signal H_r for data input through each input port, and transmitting each header flit processing request signal. The seventh to twelfth demultiplexers DM6 to DM11 for determining a path, and receive a last payload processing request signal L_r for data input to each input port to determine a transmission path of each last payload storage completion signal. To generate the arbitration request response signal Arb_ack according to the arbitration request signal Arb_req input from the thirteenth to eighteenth demultiplexers DM12 to DM17 and the first to sixth demultiplexers. Mediation means 1200 for generating an output port selection signal s for the data packet to be output to one port, and data according to the arbitration request response signal Arb_ack and the selection signal s generated by the arbitration means 1200. The first to sixth multiplexers M0 to M5 transmitting the arbitration result Arb_ack to the input unit 110 are included.
데이터 입력부(110)에서 4개의 하위 포트 및 2개의 상위 포트로 입력되는 데이터 패킷에 대한 출력포트 중재는 각각 4개의 하위 중재 모듈과 2개의 상위 중재 모듈에서 이루어지며, 이를 도 13에 나타내었다.Output port arbitration for data packets input to four lower ports and two upper ports from the data input unit 110 is performed in four lower arbitration modules and two upper arbitration modules, respectively, which are illustrated in FIG. 13.
도 13은 본 발명에 적용되는 출력포트 중재부의 구성도로서, 4개의 하위 중재 모듈(121, 122, 123, 124)과 2개의 상위 중재 모듈(125, 126)을 나타낸다.FIG. 13 is a block diagram of an output port arbitration unit applied to the present invention and shows four lower arbitration modules 121, 122, 123, and 124 and two upper arbitration modules 125 and 126.
하위 중재 모듈(121, 122, 123, 124)과 상위 중재 모듈(125, 126)의 차이를 설명하면, 하위 중재 모듈(121, 122, 123, 124)은 6개의 출력포트 중 어느 하나를 선택하는 것이고, 상위 중재 모듈(125, 126)은 데이터를 상위 출력 포트로만 전송해야 하므로 4개의 출력포트 중 어느 하나를 선택하는 것이다. 각각의 중재 모듈로 입력되는 중재요청 신호(예를 들어, 하위 중재 모듈0의 경우 Arb_req00~50)에서, 앞의 숫자(0~5)는 입력포트 정보를 나타내고, 뒤의 숫자(0)는 출력포트 정보를 나타낸다. 즉, 중재 모듈은 동일한 출력포트로 출력되고자 하는 데이터별로 나누어 출력 우선순위를 결정하는 것이다.Referring to the difference between the lower arbitration modules 121, 122, 123, and 124 and the upper arbitration modules 125, 126, the lower arbitration modules 121, 122, 123, and 124 select one of the six output ports. Since the upper arbitration modules 125 and 126 should transmit data only to the upper output port, one of the four output ports is selected. In the arbitration request signal input to each arbitration module (for example, Arb_req00 ~ 50 for lower arbitration module 0), the first digit (0-5) represents the input port information, and the second digit (0) is output. Show port information. That is, the arbitration module determines output priorities by dividing the data to be output to the same output port.
도 14는 도 13에 도시한 하위 중재모듈의 상세 구성도이고, 도 15는 도 13에 도시한 상위 중재모듈의 상세 구성도로서, 하위 및 상위 중재 모듈은 선택 가능한 출력포트의 개수의 차이만 있을 뿐 동일하게 동작하므로 함께 설명하기로 한다.FIG. 14 is a detailed configuration diagram of the lower arbitration module illustrated in FIG. 13, and FIG. 15 is a detailed configuration diagram of the upper arbitration module illustrated in FIG. 13. The lower and upper arbitration modules may have only a difference in the number of selectable output ports. Only the same operation will be described together.
하위 및 상위 중재 모듈(121, 125)은 복수의 중재 요청 신호(Atb_req0~ Atb_req5 또는 Atb_req0~ Atb_req3) 중에서 어느 하나를 선택하기 위한 즉, 동일한 출력포트로 출력되고자 하는 복수의 데이터 중 어느 하나를 선택하기 위한 6-by-1 트리 중재기를 포함하는 중재 유닛(1211, 1251), 중재 유닛(1211)에 의해 중재 요청 응답 신호(Arb_ack)가 활성화된 경우 해당 데이터 패킷을 모두 전송할 때까지 해당 출력 경로를 유지하기 위하여 6-by-1 트리 중재기가 동작하지 않도록 하는 한편, 마지막 패이로드가 입력되어 마지막 패이로드 처리 요청 신호(L_r)가 활성화되면 멀티플렉서 선택 신호가 출력되도록 제어하기 위한 멀티플렉서 선택 제어 신호(en)를 출력하는 웜홀 라우팅 처리 유닛(1212, 1252) 및 웜홀 라우팅 처리 유닛(1212, 1252)의 멀티플렉서 선택 제어 신호(en) 및 중재 유닛(1211)의 중재 결과에 따라 멀티플렉서 선택 신호(s0~s2 또는 s0~s1)를 출력하는 경로 설정 제어 유닛(1213, 1253)을 포함한다The lower and upper arbitration modules 121 and 125 select one of the plurality of arbitration request signals Atb_req0 to Atb_req5 or Atb_req0 to Atb_req3, that is, to select any one of a plurality of data to be output to the same output port. Arbitration units 1211 and 1251 comprising a 6-by-1 tree arbiter for the case, if the arbitration request response signal Arb_ack is activated by the arbitration unit 1211, the output path is maintained until all of the corresponding data packets are transmitted. In order to prevent the 6-by-1 tree arbiter from operating, the multiplexer selection control signal en for controlling the multiplexer selection signal to be outputted when the last payload is input and the last payload processing request signal L_r is activated. Of the multiplexer selection control signal en and the arbitration unit 1211 of the wormhole routing processing units 1212 and 1252 and the wormhole routing processing units 1212 and 1252 for outputting Routing control units 1213 and 1253 for outputting multiplexer selection signals s0 to s2 or s0 to s1 in accordance with the arbitration result.
도 16은 도 14에 도시한 6-by-1 트리 중재기의 상세 구성도이다.FIG. 16 is a detailed block diagram of the 6-by-1 tree arbiter shown in FIG. 14.
도시한 것과 같이, 6-by-1 트리 중재기는 2-by-1 트리 중재기를 복수개 연결하여 구성할 수 있다. 즉, 6개의 중재 요청 신호 중 각각 2개식을 입력받아 2 개의 중재 요청 신호 중에서 하나를 선택하는 제 1 내지 제 3 2-by-1 트리 중재기(1214, 1215, 1216)와, 제 1 및 제 2 2-by-1 트리 중재기(1214, 1215)의 출력값 중 어느 하나를 선택하는 제 4 2-by-1 트리 중재기(1217)와, 제 3 2-by-1 트리 중재기(1216) 및 제 4 2-by-1 트리 중재기(1217)의 출력값 중 어느 하나를 선택하기 위한 제 5 2-by-1 트리 중재기(1218)와, 제 5 2-by-1 트리 중재기(1218)의 출력값을 일시 저장하여 출력하는 버퍼(1219)를 포함한다.As shown, the 6-by-1 tree arbiter may be configured by connecting a plurality of 2-by-1 tree arbiters. That is, the first to third 2-by-1 tree arbiters 1214, 1215, and 1216 which receive two expressions from each of the six arbitration request signals and select one of the two arbitration request signals, and the first and the second. A fourth 2-by-1 tree arbiter 1217 which selects one of the outputs of the two 2-by-1 tree arbiters 1214 and 1215, and a third 2-by-1 tree arbiter 1216 And a fifth 2-by-1 tree arbiter 1218 for selecting any one of an output of the fourth 2-by-1 tree arbiter 1217, and a fifth 2-by-1 tree arbiter 1218. And a buffer 1219 for temporarily storing and outputting the output value.
각 2-by-1 트리 중재기로는 리셋 신호(resetb)가 입력되며, 두 개의 중재 요청 신호(r0, r1) 및 출력단 응답 신호(g)를 입력받아 하나의 중재 요청 신호(r) 및 두 개의 중재 요청 응답 신호(g0, g1)를 출력한다.A reset signal resetb is input to each 2-by-1 tree arbiter, and two arbitration request signals r0 and r1 and an output response signal g are input to one arbitration request signal r and two Output the arbitration request response signals g0 and g1.
아울러, 도 15에 적용되는 4-by-1 트리 중재기는 도시하지는 않았지만 도 16과 유사한 구조를 갖는다.In addition, the 4-by-1 tree arbiter applied to FIG. 15 has a structure similar to that of FIG. 16 although not shown.
즉, 4-by-1 트리 중재기는 2-by-1 트리 중재기를 복수개 연결하여 구성할 수 있다. 즉, 4개의 중재 요청 신호 중 각각 2개식을 입력받아 2 개의 중재 요청 신호 중에서 하나를 선택하는 제 6 및 제 7 2-by-1 트리 중재기와, 제 6 및 제 7 2-by-1 트리 중재기 출력값 중 어느 하나를 선택하기 위한 제 8 2-by-1 트리 중재기와, 제 8 2-by-1 트리 중재기의 출력값을 일시 저장하여 출력하는 버퍼로 구성할 수 있다.That is, the 4-by-1 tree arbiter may be configured by connecting a plurality of 2-by-1 tree arbiters. That is, the sixth and seventh 2-by-1 tree arbiters which receive two expressions from each of the four arbitration request signals and select one of the two arbitration request signals, and the sixth and seventh 2-by-1 tree arbitrations. And an eighth 2-by-1 tree arbiter for selecting any one of the output values and a buffer for temporarily storing and outputting the output values of the eighth 2-by-1 tree arbiter.
도 17은 도 16에 도시한 2-by-1 트리 중재기의 상세 구성도로서, 두 개의 중재 요청 신호(r0, r1) 중 어느 하나를 선택하는 예를 나타낸다.FIG. 17 is a detailed configuration diagram of the 2-by-1 tree arbiter illustrated in FIG. 16 and illustrates an example of selecting one of two arbitration request signals r0 and r1.
도 17에 도시한 2-by-1 트리 중재기의 동작을 설명하기에 앞서, 동시에 입력되는 두 신호 중 하나를 선택하고, 선택된 신호가 로우(low)로 되면 나머지 신호를 선택하는 ME 회로(L22)에 대하여 도 18을 참조하여 설명하기로 한다.Before explaining the operation of the 2-by-1 tree arbiter shown in FIG. 17, an ME circuit L22 that selects one of two signals that are simultaneously input and selects the remaining signals when the selected signal becomes low. ) Will be described with reference to FIG. 18.
도 18에 도시한 것과 같이, ME 회로(L22)는 제 1 입력신호(r0)를 반전시킨 신호에 의해 구동되며, 제 2 입력신호(r1)를 반전시킨 신호를 입력받는 제 8 N 타입 트랜지스터(N8), 제 8 N 타입 트랜지스터에 직렬 접속되어, 제 1 입력신호(r0)를 반전시킨 신호에 의해 구동되는 제 8 P 타입 트랜지스터(P8), 제 2 입력신호(r1)를 반전시킨 신호에 의해 구동되며, 제 1 입력신호(r0)를 반전시킨 신호를 입력받는 제 9 N 타입 트랜지스터(N9), 제 9 N 타입 트랜지스터 및 제 8 P 타입 트랜지스터 간에 직렬 접속되며, 제 2 입력신호(r1)를 반전시킨 신호에 의해 구동되는 제 9 P 타입 트래지스터(P9)를 포함하며, 제 8 N 타입 트랜지스터(N8)의 출력이 제 1 출력 신호(g0)가 되고, 제 9 N 타입 트랜지스터(N9)의 출력이 제 2 출력 신호(g1)가 된다.As shown in FIG. 18, the ME circuit L22 is driven by a signal inverting the first input signal r0 and receives an eighth N-type transistor (receiving a signal inverting the second input signal r1). N8) connected to an eighth N-type transistor in series and driven by an inverted signal of the eighth P-type transistor P8 and the second input signal r1 driven by a signal inverting the first input signal r0. Is driven and is connected in series between a ninth N-type transistor N9, a ninth N-type transistor, and an eighth P-type transistor that receive a signal inverting the first input signal r0, and receives the second input signal r1. A ninth P-type transistor P9 driven by the inverted signal, the output of the eighth N-type transistor N8 becomes the first output signal g0, and the ninth N-type transistor N9 The output becomes the second output signal g1.
이러한 구성을 갖는 ME 회로(L22)에서, 예를 들어 제 1 입력신호(r0)가 1이고, 제 2 입력신호(r2)가 0인 경우, 제 8 N 타입 트랜지스터(N8) 및 제 9 P 타입 트랜지스터(P9)는 턴오프되고, 제 9 N 타입 트랜지스터(N9) 및 제 8 P 타입 트랜지스터(P8)는 턴온되어, 제 1 출력신호(g0)는 1이 되고, 제 2 출력신호(g1)는 0이 된다. 즉, 입력신호가 1이고 제 2 입력신호가 0인 경우, 제 1 입력신호가 선택되어 지는 것이다.In the ME circuit L22 having such a configuration, for example, when the first input signal r0 is 1 and the second input signal r2 is 0, the eighth N-type transistor N8 and the ninth P-type The transistor P9 is turned off, the ninth N-type transistor N9 and the eighth P-type transistor P8 are turned on, so that the first output signal g0 becomes 1 and the second output signal g1 It becomes zero. That is, when the input signal is 1 and the second input signal is 0, the first input signal is selected.
이러한 ME 회로(L22)를 참조하여, 도 17에 도시한 2-by-1 트리 중재기의 구성 및 동작을 설명하면 다음과 같다.Referring to the ME circuit L22, the configuration and operation of the 2-by-1 tree arbiter shown in FIG. 17 will be described as follows.
도시한 것과 같이, 두 개의 중재 요청신호(r0, r1)가 ME(Mutual Exclusion) 회로(L22)로 입력됨에 따라, ME 회로(L22)는 제 1 출력신호(r0out) 및 제 2 출력신호(r1out) 중 어느 하나를 선택 출력한다. 제 23 논리소자(L23)는 리셋 신호(resetb), 출력단 응답신호(g)의 반전값 및 제 24 논리소자(L24)의 출력신호를 입력으로 하여, 이전 상태의 두 입력값이 모두 0인 경우 0을 출력하고 입력값 중 어느 하나가 0이면 계속해서 0을 출력하며, 입력값이 모두 1로 되면 1을 출력하고, 입력값 중 어느 하나가 1이면 계속해서 1을 출력한다. 신호(g)는 2-by-1 트리 중재기의 출력 신호 수신단에서 전송하는 응답신호로서, 이 신호가 1로 입력는 경우 제 23 논리소자(L23)의 출력 신호는 0이 되고, 이를 반전시킨 신호 즉, 제 2 중재요청 응답 신호(g1)는 1이 된다. 따라서, ME 회로(L22)의 제 2 출력신호(r1out) 및 제 2 중재요청 응답 신호(g1)를 입력으로 하는 제 25 논리소자(L25)의 출력값은 1이 된다.As shown, as two arbitration request signals r0 and r1 are input to the ME (Mutual Exclusion) circuit L22, the ME circuit L22 receives the first output signal r0out and the second output signal r1out. Select and output any one of). When the twenty-third logic element L23 receives a reset signal, an inverted value of the output terminal response signal g, and an output signal of the twenty-fourth logic element L24, both input values of the previous state are zero. It outputs 0 and if any input value is 0, it keeps outputting 0. If all input values are 1, it outputs 1, and if any input value is 1, it keeps outputting 1. The signal g is a response signal transmitted from the output signal receiving end of the 2-by-1 tree arbiter. When this signal is input as 1, the output signal of the twenty-third logic element L23 becomes 0, and the signal inverted thereof. That is, the second arbitration request response signal g1 becomes one. Therefore, the output value of the 25th logic element L25 which inputs the 2nd output signal r1out of the ME circuit L22 and the 2nd arbitration request response signal g1 becomes 1.
한편, 리셋 신호(resetb), 출력단 응답신호(g)의 반전값 및 제 25 논리소자(L25)의 출력신호를 입력으로 하는 제 26 논리소자(L26)의 출력은 0이 되고, 이를 반전시킨 신호 즉, 제 1 중재요청 응답 신호(g0)는 1이 된다. 따라서, 제 1 중재요청 응답 신호(g0) 및 ME 회로(L22)의 제 1 출력신호(r0out)를 입력값으로 하는 제 24 논리소자(L24)의 출력값은 0이 된다. 아울러, 제 24 논리소자 및 제 25 논리소자(L24, L25)의 출력신호를 입력으로 하는 제 27 논리소자(L27)의 출력값(r) 은 1이 된다. 즉, 제 1 입력신호(r0)가 선택되는 것이다.On the other hand, the output of the twenty-sixth logic element L26 which receives the reset signal resetb, the inverted value of the output terminal response signal g, and the output signal of the twenty-fifth logic element L25 becomes 0, and the inverted signal is zero. That is, the first arbitration request response signal g0 is 1. Therefore, the output value of the twenty-fourth logic element L24 that takes the first arbitration request response signal g0 and the first output signal r0out of the ME circuit L22 as an input value becomes zero. In addition, the output value r of the twenty-seventh logic element L27 that receives the output signals of the twenty-fourth logic element and the twenty-fifth logic elements L24 and L25 is one. That is, the first input signal r0 is selected.
도 17에서, 제 23 및 제 26 논리소자(L23, L26)는 상기한 C-엘리먼트 소자이고, 제 24 및 제 25 논리소자와 제 27 논리소자(L24, L25, L27)는 두 입력이 모두 1인 경우 0을 출력하는 소자로서 예를 들어, 낸드(NAND) 게이트로 구현할 수 있다.In FIG. 17, the twenty-third and twenty-sixth logic elements L23 and L26 are the above-described C-element elements, and the twenty-fourth and twenty-seventh logic elements and the twenty-seventh logic elements L24, L25 and L27 have both inputs 1. In this case, the device outputs 0, and may be implemented as, for example, a NAND gate.
이상에서는 본 발명의 비동기 스위치 회로에 적용되는 출력포트 중재부의 상세 구성 및 동작에 대하여 설명하였으며, 이하에서는 본 발명에 적용되는 데이터 이동경로 설정부(130)의 상세 구성 및 동작에 대하여 설명할 것이다.In the above, the detailed configuration and operation of the output port arbitration unit applied to the asynchronous switch circuit of the present invention have been described. Hereinafter, the detailed configuration and operation of the data movement path setting unit 130 applied to the present invention will be described.
도 19는 본 발명에 적용되는 데이터 이동경로 설정부의 상세 구성도이다.19 is a detailed configuration diagram of a data movement path setting unit applied to the present invention.
데이터 이동경로 설정부(130)는 데이터 입력부(110)로부터 23비트의 데이터를 입력받고, 출력포트 중재부(120)로부터 출력포트 정보(출력포트 선택신호)를 입력받아, 해당 출력포트로 데이터를 전달하는 역할을 하는 것으로, 도 19에 도시한 것과 같이 4개의 하위 이동경로 설정부(131, 132, 133, 134)와 2개의 상위 이동경로 설정부(135, 136)로 구성된다.The data movement path setting unit 130 receives 23 bits of data from the data input unit 110, receives output port information (output port selection signal) from the output port arbitration unit 120, and sends data to the corresponding output port. As shown in FIG. 19, four lower movement path setting units 131, 132, 133, and 134 and two upper movement path setting units 135 and 136 are provided.
하위 이동경로 설정부(131, 132, 133, 134)로는 23비트의 크기를 갖는 6개의 데이터(In0<22:0> ~ In5<22:0>)가 입력되고, 상위 이동경로 설정부(135, 136)로는 23비트의 크기를 갖는 4개의 데이터(In0<22:0> ~ In3<22:0>)가 입력된다. 이는 하위 이동경로 설정부의 경우 6개의 출력포트 중 어느 하나로 데이터를 전송할 수 있고, 하위 이동경로 설정부의 경우 4개의 상위 출력포트 중 어느 하나로 데이터를 전송하기 때문이다.Six data (In0 <22: 0> to In5 <22: 0>) having a size of 23 bits are input to the lower movement path setting unit 131, 132, 133, and 134, and the upper movement path setting unit 135 136 inputs four pieces of data In0 <22: 0> to In3 <22: 0> having a size of 23 bits. This is because the lower movement path setting unit transmits data to any one of six output ports, and the lower movement path setting unit transmits data to any one of four upper output ports.
각 이동경로 설정부(131~136)는 데이터를 입력받는 한편, 출력포트 중재부(120)에서 전송하는 선택신호(s0<2:0> ~ s3<2:0>, s4<1:0>, s5<1:0>)를 참조하여, 특정 데이터를 선택신호가 나타내는 출력포트로 전송한다(out0<22:0> ~ out5<22:0>).Each movement path setting unit 131 ˜ 136 receives data while the selection signals s0 <2: 0> to s3 <2: 0> and s4 <1: 0> transmitted from the output port arbitration unit 120. , s5 <1: 0>), and transmits specific data to the output port indicated by the selection signal (out0 <22: 0> to out5 <22: 0>).
도 20은 도 19에 도시한 하위 이동경로 설정부의 상세 구성도이고, 도 21은 도 19에 도시한 상위 이동경로 설정부의 상세 구성도로서, 하위 이동경로 설정부와 상위 이동경로 설정부는 입력되는 데이터의 수와 선택 신호의 수가 상이할 뿐 동일한 구성을 가지므로 함께 설명하기로 한다.FIG. 20 is a detailed configuration diagram of the lower movement path setting unit shown in FIG. 19, and FIG. 21 is a detailed configuration diagram of the upper movement path setting unit shown in FIG. 19, and the lower movement path setting unit and the upper movement path setting unit are input data. Since the number of and the number of selection signals are different, they have the same configuration, which will be described together.
하나의 데이터 플릿을 구성하는 23비트의 데이터 비트값은 23개의 멀티플렉서(멀티플렉서10~멀티플렉서122)로 각각 1비트씩 입력된다. 하위 이동경로 설정부(131, 132, 133, 134)의 경우 입력되는 데이터 플릿이 6개이므로 예를 들어, 멀티플렉서10에는 제 1 데이터의 0번째 비트 데이터값(In0<0>), 제 2 데이터의 0번째 비트 데이터값(In1<0>), ... 제 6 데이터의 0번째 비트 데이터값(In5<0>)이 입력되는 것이다. 아울러, 상위 이동경로 설정부(135, 136)의 경우 입력되는 데이터가 4개이므로 예를 들어, 멀티플렉서20에는 제 1 데이터의 0번째 비트 데이터값(In0<0>), 제 2 데이터의 0번째 비트 데이터값(In1<0>), … 제 4 데이터의 0번째 비트 데이터값(In3<0>)이 입력되게 된다.The 23 bit data bit values constituting one data fleet are inputted into 23 multiplexers (multiplexer 10 to multiplexer 122) one bit each. In the lower movement path setting unit 131, 132, 133, and 134, since six data flits are input, for example, the multiplexer 10 has a 0 th bit data value (In0 <0>) of the first data and a second data. 0th bit data value (In1 <0>), ... 0th bit data value (In5 <0>) of the 6th data is inputted. In addition, in the upper movement path setting unit 135 and 136, since four pieces of data are input, for example, the multiplexer 20 includes a 0 th bit data value (In0 <0>) of the first data and a 0 th of the second data. Bit data value (In1 <0>),... The 0 th bit data value In3 <0> of the fourth data is input.
아울러, 각각의 멀티플렉서(M10~M122, M20~M222)로는 선택신호(s)가 입력되는데, 하위 이동경로 설정부(131,132, 133, 134)의 경우 6개의 출력포트를 나타내기 위하여 3개의 선택신호(s0, s1, s2)가 입력되고, 상위 이동경로 설정부(135, 136)의 경우 4개의 출력포트를 나타내기 위하여 2개의 선택신호(s0, s2)가 입력된다.In addition, a selection signal s is input to each of the multiplexers M10 to M122 and M20 to M222. In the case of the lower movement path setting units 131, 132, 133, and 134, three selection signals are used to indicate six output ports. (s0, s1, s2) are input, and in the case of the higher movement path setting units 135, 136, two selection signals (s0, s2) are input to indicate four output ports.
데이터 및 선택신호를 입력받은 각각의 멀티플렉서(M10~M122, M20~M222)는 선택신호(s)의 제어에 따라, 하위 이동경로 설정부(131, 132, 133, 134)의 경우 6개의 입력 데이터 중 어느 하나를 선택하여 출력하고, 상위 이동경로 설정부(135, 136)의 경우 4개의 입력 데이터 중 어느 하나를 선택하여 출력한다. 이와 같이하여 출력되는 23비트의 데이터(out<22:0>)는 데이터 출력부(140)로 전송되게 된다.Each of the multiplexers M10 to M122 and M20 to M222 that receive the data and the selection signal has six input data in the case of the lower movement path setting unit 131, 132, 133, and 134 under the control of the selection signal s. Any one of them is selected and output, and the upper movement path setting units 135 and 136 select and output any one of four input data. The 23-bit data out <22: 0> output in this manner is transmitted to the data output unit 140.
선택신호(s)는 출력포트 중재부(120)에서 기 설정되기 때문에, 결과적으로 데이터 출력부(140)로는 동일한 데이터 플릿의 데이터 비트열이 전송되게 되며, 각 비트열이 각각의 멀티플렉서에서 선택되어진 후 전송되므로 데이터 전송속도가 향상된다.Since the selection signal s is preset in the output port arbitration unit 120, the data bit strings of the same data flits are transmitted to the data output unit 140, and each bit string is selected in each multiplexer. Since the data is transmitted afterwards, the data transmission speed is improved.
하위 이동경로 설정부(131, 132, 133, 134)에서 6개의 입력신호 중 선택 신호의 제어에 따른 어느 하나의 신호를 선택하기 위하여 각각의 멀티플렉서(M10~M122)는 6-by-1 TG(Transmission Gate) 멀티플렉서로 구현할 수 있고, 상위 이동경로 설정부(135, 136)에 적용하기 위한 멀티플렉서(M20~M222)는 4-by-1 TG 멀티플렉서로 구현할 수 있으며, 이를 도 22 및 도 23을 참조하여 설명하면 다음과 같다.In order to select any one of the six input signals according to the control of the selection signal from the lower movement path setting units 131, 132, 133, and 134, each of the multiplexers M10 to M122 uses 6-by-1 TG ( Transmission Gate) may be implemented as a multiplexer, and the multiplexers M20 to M222 for applying to the upper movement path setting units 135 and 136 may be implemented as a 4-by-1 TG multiplexer, which is described with reference to FIGS. 22 and 23. The description is as follows.
도 22는 도 20에 도시한 6-by-1 TG 멀티플렉서의 상세 구성도이다.FIG. 22 is a detailed configuration diagram of the 6-by-1 TG multiplexer shown in FIG. 20.
도 22에 도시한 것과 같이, 6-by-1 TG 멀티플렉서는 각각의 데이터 비트(in0~in5)를 입력받고, 제 3 선택신호(s2) 및 제 3 선택신호(s2)의 반전신호에 의해 제어되는 제 1 내지 제 5 전송 게이트(TG0~TG5), 제 1 내지 제 5 전송 게이트(TG0~TG5)의 출력 신호를 각각 입력 신호로 하고, 제 2 선택신호(s1) 및 제 2 선택신호(s1)의 반전신호에 의해 제어되는 제 6 내지 제 12 전송 게이트(TG6~TG11), 제 6 내지 제 12 전송 게이트(TG6~TG11)를 입력 신호로 하고, 제 1 선택신호(s0) 및 제 1 선택신호(s0)의 반전신호에 의해 제어되어, 입력 데이터(in0~in5) 중 어느 하나를 출력하는 제 13 내지 제 18 전송 게이트(TG12~TG17)를 포함한다.As shown in FIG. 22, the 6-by-1 TG multiplexer receives each data bit in0 to in5 and is controlled by the inverted signal of the third select signal s2 and the third select signal s2. The first to fifth transfer gates TG0 to TG5 and the output signals of the first to fifth transfer gates TG0 to TG5 are input signals, respectively, and the second selection signal s1 and the second selection signal s1 are input signals. The sixth to twelfth transfer gates TG6 to TG11 and the sixth to twelfth transfer gates TG6 to TG11 that are controlled by the inverted signal of?) Are input signals, and the first select signal s0 and the first select. And thirteenth to eighteenth transfer gates TG12 to TG17 controlled by the inverted signal of the signal s0 to output any one of the input data in0 to in5.
한편, 도 23에 도시한 4-by-1 TG 멀티플렉서는 각각의 데이터 비트(in0~in3)를 입력받고, 제 2 선택신호(s1) 및 제 2 선택신호(s1)의 반전신호에 의해 제어되는 제 19 내지 제 22 전송 게이트(TG18~TG21), 제 19 내지 제 22 전송 게이트(TG18~TG21)의 출력 신호를 각각 입력 신호로 하고, 제 1 선택신호(s0) 및 제 1 선택신호(s0)의 반전신호에 의해 제어되어, 입력 데이터(in0~in3) 중 어느 하나를 출력하는 제 23 내지 제 26 전송 게이트(TG22~TG25)를 포함한다.Meanwhile, the 4-by-1 TG multiplexer shown in FIG. 23 receives respective data bits in0 to in3 and is controlled by the inversion signal of the second selection signal s1 and the second selection signal s1. Output signals of the 19th to 22nd transmission gates TG18 to TG21 and the 19th to 22nd transmission gates TG18 to TG21 are used as input signals, respectively, and the first selection signal s0 and the first selection signal s0. The twenty-third to twenty-sixth transmission gates TG22 to TG25 controlled by the inverted signal of U and outputting any one of the input data in0 to in3 are included.
이와 같이, 데이터 이동경로 설정부(130)는 입력 데이터를 출력 포트 중재부(120)에서 생성한 출력포트 정보에 따라 데이터 출력부(140)로 정확히 전달하는 역할을 한다.As such, the data movement path setting unit 130 accurately transmits the input data to the data output unit 140 according to the output port information generated by the output port arbitration unit 120.
다음으로는, 본 발명에 의한 비동기 스위치 회로에 적용되는 데이터 출력부(140)에 대하여 구체적으로 설명하기로 한다.Next, the data output unit 140 applied to the asynchronous switch circuit according to the present invention will be described in detail.
도 24는 본 발명에 적용되는 데이터 출력부의 상세 구성도이다.24 is a detailed configuration diagram of a data output unit applied to the present invention.
데이터 출력부(140)는 데이터 입력부(110)로부터 전송되는 헤더 저장 요청 신호(Datah_r0~Datah_r5) 및 패이로드 저장 요청 신호(Datap_r0~Datap_r5), 출력포트 중재부(120)로부터 입력되는 출력포트 정보 즉, 선택신호(s0<2:0>~s5<2:0>)를 입력받아, 해당 출력 버퍼에 데이터를 저장하도록 요청하는 입력 제어부(141), 리셋 신호(resetb)가 입력되고, 데이터 입력부(110)로부터 전송되는 입력 데이터(in0<22:0> ~ in5<22:0>) 및 입력 제어부(141)로부터 입력되는 데이터 전송 요청신호(input_req)에 따라 해당 출력포트에 데이터를 저장하고, 데이터 저장이 완료되면 데이터 전송 요청 응답 신호(input_ack)를 출력포트 중재부(120)로 전송하며, 출력할 데이터가 있음을 다음 단의 스위치로 통보하는 출력 요청 신호(output_req)를 출력하고, 다음 단 스위치가 이에 대해 응답(output_ack)함에 따라, 정해진 출력 포트를 통해 다음 단의 스위치로 데이터를 출력(out0<22:0> ~ out5<22:0>)하는 버퍼(142), 버퍼(142)로부터 데이터 전송 요청 신호(input_ack0~input_ack5)를 입력받고, 데이터 입력부(110)로부터 헤더 저장 요청 신호(Datah_r0~Datah_r5) 및 패이로드 저장 요청 신호(Datap_r0~Datap_r5)를 입력받으며, 출력포트 중재부(120)로부터 입력되는 출력포트 정보(s0<2:0>~s5<2:0>)를 입력받아, 데이터 입력부(110)로 헤더 저장 완료 신호(Datah_a0~Datah_a5) 및 패이로드 저장 완료 신호(Datap_a0~Datap_a5)를 전송하는 출력 제어부(143)를 포함한다.The data output unit 140 may include header storage request signals Datah_r0 to Datah_r5 and payload storage request signals Datap_r0 to Datap_r5 and output port information input from the output port arbitration unit 120 transmitted from the data input unit 110. In response to the selection signals s0 <2: 0> to s5 <2: 0>, an input control unit 141 and a reset signal resetb are requested to store data in the corresponding output buffer, and a data input unit ( According to the input data (in0 <22: 0> to in5 <22: 0>) transmitted from 110 and the data transmission request signal (input_req) input from the input control unit 141, the data is stored in the corresponding output port, and the data When the saving is completed, the data transmission request response signal (input_ack) is transmitted to the output port arbitration unit 120, and an output request signal (output_req) for notifying the next stage switch that there is data to be output is output, and the next stage switch. Responds to this by output_ack A data transmission request signal (input_ack0 to input_ack5) is received from the buffer 142 and the buffer 142 that outputs data (out0 <22: 0> to out5 <22: 0>) to the next switch through the output port. The data input unit 110 receives the header storage request signals Datah_r0 to Datah_r5 and the payload storage request signals Datap_r0 to Datap_r5, and output port information s0 <2: 0 input from the output port arbitration unit 120. and an output control unit 143 which receives the> ~ s5 <2: 0> and transmits the header storage completion signal Datah_a0 to Datah_a5 and the payload storage completion signal Datap_a0 to Datap_a5 to the data input unit 110. .
여기에서, 데이터 출력부(140)는 버퍼(142)에서 출력되는 출력 요청 신호(output_req0~output_req5)를 지정된 시간동안 지연시킨 후 다음 단의 스위치로 출력하는 지연수단(144)을 더 포함할 수 있다. 이 지연수단(144)은 본 발명의 스위치 회로가 비동기 회로이므로 신호 전송시의 타이밍이 적절하게 되도록 하기 위하여 사용하는 것이다.Here, the data output unit 140 may further include a delay means 144 for delaying the output request signals output_req0 to output_req5 output from the buffer 142 for a predetermined time and then outputting them to the next stage switch. . This delay means 144 is used to ensure proper timing of signal transmission since the switch circuit of the present invention is an asynchronous circuit.
도 25는 도 24에 도시한 입력 제어부의 상세 구성도이다.FIG. 25 is a detailed configuration diagram of the input control unit shown in FIG. 24.
도시한 것과 같이, 입력 제어부는 각 데이터에 대한 헤더 저장 완료 신호 및 패이로드 저장 완료 신호를 입력으로 하여, 입력 신호 중 어느 하나가 1이면 1을 출력하는 제 28 내지 제 33 논리소자(L28~L33)의 출력 신호를 입력 신호로 하는 제 1 내지 제 6 멀티플렉서(M30~M35)로 구현할 수 있으며, 각 멀티플렉서(M30~M35)로는 선택신호(s0<2:0>~s5<2:0>)가 각각 입력되어, 선택신호(s0<2:0>~s5<2:0>)의 제어에 의해 데이터 전송 요청 신호(Input_req0~Input_req5) 중 어느 하나가 활성화되게 된다.As shown, the input control unit inputs a header storage completion signal and a payload storage completion signal for each data, and outputs 1 when any one of the input signals is 1 (L28 to L33). The first to sixth multiplexers M30 to M35 may be implemented using the output signals of the first and sixth multiplexers M30 to M35, and the selection signals s0 <2: 0> to s5 <2: 0> may be used as the multiplexers M30 to M35. Are respectively input, and any one of the data transfer request signals Input_req0 to Input_req5 is activated by the control of the selection signals s0 <2: 0> to s5 <2: 0>.
여기에서, 각 멀티플렉서(M30~M35)는 6-by-1 TG(Transmission Gate) 멀티플렉서로 구현할 수 있고, 구체적인 구성 예는 도 22에 도시하였다. 아울러, 제 28 내지 제 33 논리소자(L28~L33)는 오알(OR) 게이트로 구현할 수 있는데, 이는 데이터 출력부(140)는 입력 제어부(141)로 입력되는 데이터가 헤더인지 패이로드인지 구별할 필요가 없기 때문이다.Here, each of the multiplexers M30 to M35 may be implemented as a 6-by-1 TG (Transmission Gate) multiplexer, and a specific configuration example is illustrated in FIG. 22. In addition, the twenty-eighth to thirty-third logic elements L28 to L33 may be implemented as an OR gate. The data output unit 140 may distinguish whether the data input to the input controller 141 is a header or a payload. Because there is no need.
도 26은 도 24에 도시한 버퍼의 상세 구성도이다.FIG. 26 is a detailed configuration diagram of the buffer shown in FIG. 24.
본 발명에 적용되는 버퍼(142)는 2상 선입선출 버퍼(2 stage FIFO, 1421~1426)를 6개 병렬 연결하여 사용할 수 있다.The buffer 142 applied to the present invention may be used by connecting two two-phase first-in first-out buffers (2 stage FIFOs, 1421 to 1426) in parallel.
각각의 2상 선입선출 버퍼(1421~1426)로는 리셋 신호(resetb)가 입력되고, 데이터 입력부(110)로부터 전송되는 입력 데이터(in) 및 입력 제어부(141)로부터 입력되는 데이터 전송 요청 신호(input_req)에 따라 해당 출력포트에 데이터가 저장되고, 데이터 저장이 완료되면 데이터 전송 요청 응답 신호(input_ack)를 출력포트 중재부(120)로 전송한다.A reset signal resetb is input to each of the two-phase first-in first-out buffers 1421 to 1426, and input data in transmitted from the data input unit 110 and a data transmission request signal input_req input from the input control unit 141. Data is stored in the corresponding output port, and when the data storage is completed, the data transmission request response signal input_ack is transmitted to the output port arbitration unit 120.
아울러, 출력할 데이터가 있음을 다음 단의 스위치로 통보하는 출력 요청 신호(output_req)를 출력하며, 다음 단 스위치가 이에 대해 응답(output_ack)함에 따라, 정해진 출력 포트를 통해 다음 단의 스위치로 데이터를 출력(out)한다.In addition, it outputs an output request signal (output_req) that notifies the next stage switch that there is data to be outputted, and as the next stage switch responds to this (output_ack), the data is sent to the next stage switch through the designated output port. Output out.
도 27은 도 26에 도시한 2상 선입선출 버퍼의 상세 구성도로서, 세미 디커플드(semi decoupled) 선입선출 버퍼 2개(1427, 1428)를 직렬 연결함으로써 구성할 수 있음을 나타낸다.FIG. 27 is a detailed configuration diagram of the two-phase first-in first-out buffer shown in FIG. 26 and shows that two semi-decoupled first-in first-out buffers 1427 and 1428 can be connected in series.
도 28은 도 24에 도시한 출력 제어부의 상세 구성도이다.FIG. 28 is a detailed configuration diagram of the output control unit shown in FIG. 24.
도시한 것과 같이 출력 제어부(143)는 버퍼(142)로부터 입력되는 데이터 전송 요청 신호(input_ack) 및 출력포트 중재부(120)로부터 입력되는 선택신호(s0~s5)를 각각 입력받아 하위 출력포트로 출력할 데이터에 대한 제어 신호를 생성하기 위한 제 1 내지 제 4 디멀티플렉서(DM20~DM23)와 상위 출력포트로 출력할 데이터에 대한 제어 신호를 생성하기 위한 제 5 및 제 6 디멀티플렉서(DM24~DM25), 제 1 내지 제 6 디멀티플렉서(DM24~DM25)의 출력값을 각 출력포트 번호별로 입력받아, 입력 신호 중 어느 하나가 1인 경우 1을 출력하는 제 34 내지 제 39 논리소자(L34~L39), 제 34 내지 제 39 논리소자(L34~L39)의 출력값을 입력값으로 하고, 데이터 입력부(110)로부터 각 출력포트 번호별로 입력되는 헤더 저장 요청 신호(Datah_r) 및 패이로드 저장 요청 신호(Datap_r)에 따라 데이터를 버퍼(142)에 저장하였음을 통보하는 헤더 저장 완료 신호(Datah_a) 및 패이로드 저장 완료 신호(Datap_a)를 데이터 입력부(110)로 전송하는 제 1 내지 제 6 디코더(DC0~DC5)를 포함한다.As shown in the drawing, the output control unit 143 receives the data transmission request signal input_ack input from the buffer 142 and the selection signals s0 to s5 input from the output port arbitration unit 120 to the lower output port. First to fourth demultiplexers DM20 to DM23 for generating control signals for data to be output, and fifth and sixth demultiplexers DM24 to DM25 for generating control signals for data to be output to the upper output port, 34th to 39th logic elements L34 to L39 and 34th to receive output values of the first to sixth demultiplexers DM24 to DM25 for each output port number, and output 1 when any one of the input signals is 1; The data is output according to the header storage request signal Datah_r and the payload storage request signal Datap_r, which are output values of the 39 th logic elements L34 to L39 as input values, and are input for each output port number from the data input unit 110. Into the buffer 142 The first to sixth decoders DC0 to DC5 for transmitting the header storage completion signal Datah_a and the payload storage completion signal Datap_a to notify the data storage unit 110 are included.
도 28에서는 제 1 입력포트로 입력되는 데이터와 제 4 입력포트로 입력되는 데이터에 대한 출력을 위한 신호선만을 도시하였으나, 타 입력 데이터에 대해서도 동일한 신호선을 동일한 방법으로 나타낼 수 있다.In FIG. 28, only signal lines for outputting data input to the first input port and data input to the fourth input port are illustrated, but the same signal lines may be represented for the other input data in the same manner.
이상에서, 본 발명에 의한 스위치 회로의 구성에 대하여 설명하였다.In the above, the structure of the switch circuit by this invention was demonstrated.
이에 더하여, 본 발명의 스위치 회로는 데이터 입력부(110)와 출력포트 중재부(120) 간에, 데이터 입력부(110)와 데이터 출력부(140) 간에 각각 지연부(150, 160)를 추가로 구성할 수 있다. 이는 본 발명의 스위치 회로가 비동기 회로이기 때문에 타이밍을 조절하기 위한 목적으로 구현된다.In addition, the switch circuit of the present invention may further configure delay units 150 and 160 between the data input unit 110 and the output port arbitration unit 120 and between the data input unit 110 and the data output unit 140, respectively. Can be. This is implemented for the purpose of adjusting the timing since the switch circuit of the present invention is an asynchronous circuit.
지연부는 신호의 입력단과 출력단 간에 복수 개의 버퍼를 직렬 연결한 버퍼 체인 형태로 구현할 수 있으며, 특히 데이터 입력부(110)와 출력포트 중재부(120) 간에 접속되는 지연부(150)는 데이터 입력부(110)로부터 출력포트 중재부(120)로 전송되는 헤더 플릿 처리 요청 신호(H_r)를 지연시키기 위해 사용된다. 즉, 라우팅 정보(rib)가 헤더 플릿 처리 요청 신호(H_r)보다 빨리 출력되도록 하기 위해 사용하는 것이다.The delay unit may be implemented in the form of a buffer chain in which a plurality of buffers are connected in series between an input terminal and an output terminal of a signal. In particular, the delay unit 150 connected between the data input unit 110 and the output port arbitration unit 120 may include a data input unit 110. ) Is used to delay the header flit processing request signal (H_r) transmitted to the output port arbitration unit (120). That is, the routing information (rib) is used to output faster than the header flit processing request signal (H_r).
한편, 데이터 입력부(110)와 데이터 출력부(140) 간에 접속되는 지연부(160)는 헤더 저장 요청 신호(Datah_r)를 지연시키기 위해 사용하는 것으로, 데이터 이동경로 설정부(130)에서 데이터 출력부(140)로 데이터(out) 전송하는 시간과 헤더 저장 요청 신호(Datah_r)와의 동기를 맞추기 위하여 사용한다.On the other hand, the delay unit 160 connected between the data input unit 110 and the data output unit 140 is used to delay the header storage request signal Datah_r, and the data output unit in the data movement path setting unit 130 is used. It is used to synchronize the time at which data is sent out to the 140 and the header storage request signal Datah_r.
이와 같이, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.As such, those skilled in the art will appreciate that the present invention can be implemented in other specific forms without changing the technical spirit or essential features thereof. Therefore, the above-described embodiments are to be understood as illustrative in all respects and not as restrictive. The scope of the present invention is shown by the following claims rather than the detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalents should be construed as being included in the scope of the present invention. do.
이상에서 설명한 본 발명은 하나의 칩에 다양한 IP(Intellectual Property)들을 구현하고, IP들 간의 통신을 가능하게 하는 스위치 회로를 버터플리이 팻-트리 형태의 토폴로지로 구현하고, 웜홀 스위칭 기술에 의해 데이터를 전송함으로써 네트워크-온-칩에서의 데이터 처리 속도를 향상시키고, 그 구성을 간단화할 수 있는 이점이 있다.The present invention described above implements various intellectual property (IP) on one chip, implements a switch circuit that enables communication between IPs in a butterfly fat-tree topology, and implements data by wormhole switching technology. Transmission has the advantage of speeding up data processing on the network-on-chip and simplifying its configuration.
도 1은 일반적인 네트워크 온칩 구조의 일 예를 설명하기 위한 도면,1 is a view for explaining an example of a general network on-chip structure,
도 2는 본 발명에 의한 비동기 스위치 회로의 개념도,2 is a conceptual diagram of an asynchronous switch circuit according to the present invention;
도 3은 도 2에 도시한 비동기 스위치 회로의 상세 구성도,3 is a detailed configuration diagram of the asynchronous switch circuit shown in FIG. 2;
도 4a 및 4b는 본 발명에 적용되는 데이터 포맷을 설명하기 위한 도면,4A and 4B are diagrams for explaining a data format applied to the present invention;
도 5는 본 발명에 적용되는 데이터 입력부의 상세 구성도,5 is a detailed configuration diagram of a data input unit applied to the present invention;
도 6은 도 5에 도시한 하위 입력처리 모듈의 상세 구성도,6 is a detailed configuration diagram of a lower input processing module shown in FIG. 5;
도 7은 도 5에 도시한 상위 입력처리 모듈의 상세 구성도,FIG. 7 is a detailed configuration diagram of an upper input processing module shown in FIG. 5;
도 8은 도 6 및 도 7에 도시한 패이로드 제어부의 상세 구성도,FIG. 8 is a detailed configuration diagram of the payload control unit illustrated in FIGS. 6 and 7;
도 9는 도 6 및 도 7에 도시한 헤더 제어부의 상세 구성도,9 is a detailed configuration diagram of the header control unit shown in FIGS. 6 and 7;
도 10a 내지 10c는 본 발명에 적용되는 C-엘리먼트 회로도 및 비대칭 C-엘리먼트 회로의 일 실시예를 나타내는 도면,10A to 10C are diagrams illustrating an embodiment of a C-element circuit diagram and an asymmetric C-element circuit applied to the present invention;
도 11a 및 11b는 도 6 및 도 7에 도시한 데이터 저장부의 상세 구성도,11A and 11B are detailed configuration diagrams of the data storage unit shown in FIGS. 6 and 7;
도 12 및 도 13은 본 발명에 적용되는 출력포트 중재부의 상세 구성도,12 and 13 is a detailed configuration diagram of the output port arbitration unit applied to the present invention,
도 14는 도 13에 도시한 하위 중재모듈의 상세 구성도,14 is a detailed configuration diagram of the lower arbitration module shown in FIG. 13;
도 15는 도 13에 도시한 상위 중재모듈의 상세 구성도,15 is a detailed configuration diagram of a higher arbitration module shown in FIG. 13;
도 16은 도 14에 도시한 6-by-1 트리 중재기의 상세 구성도,16 is a detailed configuration diagram of the 6-by-1 tree arbiter shown in FIG. 14;
도 17은 도 16에 도시한 2-by-1 트리 중재기의 상세 구성도,17 is a detailed block diagram of the 2-by-1 tree arbiter shown in FIG. 16;
도 18은 도 17에 도시한 ME 회로의 상세 구성도,18 is a detailed configuration diagram of the ME circuit shown in FIG. 17;
도 19는 본 발명에 적용되는 데이터 이동경로 설정부의 상세 구성도,19 is a detailed configuration diagram of a data movement path setting unit applied to the present invention;
도 20은 도 19에 도시한 하위 이동경로 설정부의 상세 구성도,20 is a detailed configuration diagram of the lower movement path setting unit shown in FIG. 19;
도 21은 도 19에 도시한 상위 이동경로 설정부의 상세 구성도,FIG. 21 is a detailed configuration diagram of a higher movement path setting unit shown in FIG. 19;
도 22는 도 20에 도시한 6-by-1 TG MUX의 상세 구성도,FIG. 22 is a detailed configuration diagram of 6-by-1 TG MUX shown in FIG. 20;
도 23은 도 21에 도시한 4-by-1 TG MUX의 상세 구성도,FIG. 23 is a detailed configuration diagram of the 4-by-1 TG MUX shown in FIG. 21;
도 24는 본 발명에 적용되는 데이터 출력부의 상세 구성도,24 is a detailed configuration diagram of a data output unit applied to the present invention;
도 25는 도 24에 도시한 입력 제어부의 상세 구성도,25 is a detailed block diagram of the input control unit shown in FIG. 24;
도 26은 도 24에 도시한 버퍼의 상세 구성도,FIG. 26 is a detailed configuration diagram of the buffer shown in FIG. 24;
도 27은 도 26에 도시한 2상 선입선출 버퍼의 상세 구성도,FIG. 27 is a detailed configuration diagram of the two-phase first-in first-out buffer shown in FIG. 26;
도 28은 도 24에 도시한 출력 제어부의 상세 구성도,28 is a detailed configuration diagram of the output control unit shown in FIG. 24;
<도면의 주요 부분에 대한 부호 설명><Description of the symbols for the main parts of the drawings>
110 : 데이터 입력부 120 : 출력포트 중재부110: data input unit 120: output port arbitration unit
130 : 데이터 이동경로 설정부 140 : 데이터 출력부130: data movement path setting unit 140: data output unit
150, 160 : 제 1 및 제 2 지연부150 and 160: first and second delay units
111, 112, 113, 114 : 하위 입력처리 모듈111, 112, 113, 114: lower input processing module
115, 116 : 상위 입력처리 모듈 1111, 1151 : 패이로드 제어부115, 116: upper input processing module 1111, 1151: payload control unit
1112, 1152 : 헤더 제어부 1113, 1153 : 데이터 저장부1112 and 1152: Header control unit 1113 and 1153: Data storage unit
1114, 1154 : 헤더 플릿 처리 요청 신호 발생부1114, 1154: header fleet processing request signal generator
1115 : 데이터 선택부 1 115' : 보조 데이터 선택부1115: data selector 1 115 ': auxiliary data selector
1116 : 하위 데이터 저장부 1116' : 보조 데이터 저장부1116: lower data storage 1116 ': auxiliary data storage
1116" : 상위 데이터 저장부 121, 122, 123, 124 : 하위 중재모듈1116 ": Upper data storage 121, 122, 123, 124: Lower arbitration module
125, 126 : 상위 중재모듈 1211, 1251 : 중재 유닛125, 126: higher arbitration module 1211, 1251: arbitration unit
1212, 1252 : 웜홀 라우팅 처리유닛 1213, 1253 : 경로 설정 제어유닛1212, 1252: Wormhole routing processing unit 1213, 1253: Path setting control unit
131, 132, 133, 134 : 하위 이동경로 설정부131, 132, 133, 134: lower movement path setting unit
135, 136 : 상위 이동경로 설정부 141 : 입력 제어부135, 136: higher movement path setting unit 141: input control unit
142 : 버퍼 143 : 출력 제어부142: buffer 143: output control unit
144 : 지연수단144 delay means
Claims (26)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/023,087 US7467358B2 (en) | 2004-06-03 | 2004-12-27 | Asynchronous switch based on butterfly fat-tree for network on chip application |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20040040205 | 2004-06-03 | ||
KR1020040040205 | 2004-06-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20050115195A true KR20050115195A (en) | 2005-12-07 |
KR100617386B1 KR100617386B1 (en) | 2006-08-31 |
Family
ID=37289256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020040068370A KR100617386B1 (en) | 2004-06-03 | 2004-08-30 | Asynchronous Switch Based on Butterfly Fat-Tree for Network On Chip Applications |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100617386B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100846739B1 (en) * | 2006-12-14 | 2008-07-16 | 삼성전자주식회사 | Apparatus for network-on-chip interfacing and method of network-on-chip packet encoding using the same |
WO2009117175A1 (en) * | 2008-03-19 | 2009-09-24 | Integrated Device Technology, Inc. | Content driven packet switch |
WO2014209391A1 (en) * | 2013-06-28 | 2014-12-31 | Intel Corporation | A method, apparatus and system for a source-synchronous circuit-switched network on a chip (noc) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9866476B2 (en) * | 2014-12-17 | 2018-01-09 | Intel Corporation | Parallel direction decode circuits for network-on-chip |
-
2004
- 2004-08-30 KR KR1020040068370A patent/KR100617386B1/en not_active IP Right Cessation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100846739B1 (en) * | 2006-12-14 | 2008-07-16 | 삼성전자주식회사 | Apparatus for network-on-chip interfacing and method of network-on-chip packet encoding using the same |
WO2009117175A1 (en) * | 2008-03-19 | 2009-09-24 | Integrated Device Technology, Inc. | Content driven packet switch |
WO2014209391A1 (en) * | 2013-06-28 | 2014-12-31 | Intel Corporation | A method, apparatus and system for a source-synchronous circuit-switched network on a chip (noc) |
US9652425B2 (en) | 2013-06-28 | 2017-05-16 | Intel Corporation | Method, apparatus and system for a source-synchronous circuit-switched network on a chip (NOC) |
Also Published As
Publication number | Publication date |
---|---|
KR100617386B1 (en) | 2006-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20050271054A1 (en) | Asynchronous switch based on butterfly fat-tree for network on chip application | |
Ajima et al. | Tofu interconnect 2: System-on-chip integration of high-performance interconnect | |
US7554355B2 (en) | Crossbar switch architecture for multi-processor SoC platform | |
US9742630B2 (en) | Configurable router for a network on chip (NoC) | |
JP5570619B2 (en) | Time division multiplexing at different speeds to access different memory types | |
CN117235000A (en) | Scalable network on chip for high bandwidth memory | |
US10355851B2 (en) | Methods and systems for synchronization between multiple clock domains | |
Saastamoinen et al. | Interconnect IP node for future system-on-chip designs | |
US7439763B1 (en) | Scalable shared network memory switch for an FPGA | |
CN102685017A (en) | On-chip network router based on field programmable gate array (FPGA) | |
US8667195B2 (en) | Bus-system including an interconnector, a master device, a slave device, and an operating method thereof | |
US10671554B1 (en) | Credit based flow control mechanism for use in multiple link width interconnect systems | |
JP2004521426A (en) | First-in / first-out buffer capable of reading and / or writing a selectable number of data words in each bus cycle | |
JP2007220046A (en) | Bus device, bus system and information transfer method | |
Correa et al. | Ultra-low latency communication channels for FPGA-based HPC cluster | |
US20220015588A1 (en) | Dual mode interconnect | |
US20110035530A1 (en) | Network system, information processing apparatus, and control method for network system | |
US6981082B2 (en) | On chip streaming multiple bus protocol with dedicated arbiter | |
US7568074B1 (en) | Time based data storage for shared network memory switch | |
KR100617386B1 (en) | Asynchronous Switch Based on Butterfly Fat-Tree for Network On Chip Applications | |
US7039750B1 (en) | On-chip switch fabric | |
RU159583U1 (en) | MULTI-PROCESSOR DIGITAL SIGNAL PROCESSING MODULE | |
US8559436B2 (en) | Processing resource management in an island-based network flow processor | |
Seifi et al. | A clustered NoC in group communication | |
EP1179785A1 (en) | Bus interconnect system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20120710 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20130710 Year of fee payment: 8 |
|
LAPS | Lapse due to unpaid annual fee |