KR101465498B1 - Apparatus and method for adaptive routing of hybrid optical networks on chip and hybrid optical networks on chip system using the same - Google Patents
Apparatus and method for adaptive routing of hybrid optical networks on chip and hybrid optical networks on chip system using the same Download PDFInfo
- Publication number
- KR101465498B1 KR101465498B1 KR1020130093004A KR20130093004A KR101465498B1 KR 101465498 B1 KR101465498 B1 KR 101465498B1 KR 1020130093004 A KR1020130093004 A KR 1020130093004A KR 20130093004 A KR20130093004 A KR 20130093004A KR 101465498 B1 KR101465498 B1 KR 101465498B1
- Authority
- KR
- South Korea
- Prior art keywords
- routing
- packet
- path
- routing device
- destination
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- 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
Abstract
Description
본 발명은 하이브리드 광학 네트워크-온-칩(Hybrid Optical Networks-On-Chip, HONoC) 환경에서 각 라우팅 장치의 상태에 따라 라우팅을 진행하는 적응적 라우팅 장치 및 방법과, 이를 이용한 HONoC시스템에 관한 것이다.BACKGROUND OF THE
싱글 코어 프로세서의 전력 효율 대비 성능의 한계로 인해 다중 코어를 이용한 다중 프로세서 시스템-온-칩(Multi-Processor System-on-Chip, MPSoC)이 개발되었다. 이러한 다중 프로세서 시스템-온-칩에서는 기존의 버스(bus) 구조를 적용할 경우 병목의 문제가 발생되어 전체 시스템 성능 향상이 저하될 수 있다. 이로 인해, 수백개 이상의 코어와 IP(Intellectual Property)가 집적된 첨단 SoC 구조에 온-칩 네트워크(On-chip Network, OCN) 개념을 적용한 네트워크-온-칩(Network-on-Chip, NoC)이 등장하였다.Multi-Processor System-on-Chip (MPSoC) with multiple cores has been developed due to the limitations of power efficiency versus performance of single-core processors. In such a multiprocessor system-on-chip, when a conventional bus structure is applied, a problem of a bottleneck may occur and the performance of the entire system may be degraded. As a result, Network-on-Chip (NoC), which applies on-chip network (OCN) concepts to advanced SoC structures with integrated core and IP (Intellectual Property) .
NoC는 토폴로지와 프로토콜 관점의 구조적 변화이므로, 기존 반도체 공정/소자 기술의 한계에 대응하기 위해서는 추가적으로 물리적 연결 매체(Interconnection medium)까지 고려한 접근 방식이 요구된다. 이에 따라, 기존 NoC에서의 전기적 상호 연결(Electrical Interconnect, EI)에 의한 전력 소모 및 지연 시간 문제를 광학적 상호 연결(Optical Interconnect, OI)을 통해 해결하는 하이브리드 광학적 네트워크-온-칩(Hybrid Optical NoC, HONoC)이 등장하였다.Since NoC is a structural change in terms of topology and protocol, an approach considering an additional interconnection medium is required to meet the limitations of existing semiconductor process / device technology. Accordingly, a hybrid optical network-on-chip (hereinafter, referred to as " hybrid optical < RTI ID = 0.0 > NoC ") & HONoC).
예를 들어, 메시 토폴로지에서 OI를 통해 대용량 패이로드(payload) 데이터를 전송하고, EI를 통해 컨트롤 패킷 및 경로 설정 패킷을 전송하도록 하는 방법 등이 제안되었다. 이러한, HONoC에서는 광 신호를 패킷 스위칭(Packet Switching) 방식으로 라우팅하게 되면 각 라우터에서 광신호의 전기 신호로의 변환과 이를 통한 목적지 판별 과정을 거쳐야 하므로, 지연 시간(latency)이 오히려 EI기반 NoC보다 증가하기 때문에 EI를 통해 OI의 경로를 설정하게 하는 서킷 스위칭(Circuit Switching) 네트워크로 구성한다.For example, a method has been proposed in which the mesh topology transmits large payload data via the OI, and control packets and routing packets are transmitted through the EI. In the HONoC, when the optical signal is routed through the packet switching method, each router must convert the optical signal into an electrical signal and determine the destination through the routing process. Therefore, the latency is rather higher than that of the EI based NoC The circuit switching network is configured to set the path of the OI through the EI.
한편, 광학적 라우팅의 중요성으로 인하여 라우터를 최적화하려는 연구들이 많이 진행되고 있다. 그런데, 기존의 HONoC의 라우터에 관한 연구에서는 X-Y 라우팅등과 같은 단순한 라우팅 방식을 적용함으로써, 서로 다른 데이터가 동일한 경로를 사용하려 할 때 경로를 점령하지 못한 데이터는 다른 데이터가 전송이 종료될 때까지 기다려야 하는 블로킹(blocking) 문제가 발생한다. 이에 따라 HONoC 상의 라우터들에 대해 레이튼시(latency)가 공평하게 보장되지 못하는 문제가 발생하게 된다. 이에 따라, HONoC의 구조적인 특성에 적합하게 설계되어 효율적인 경로 설정을 수행할 수 있는 장치 및 방법이 필요하다.On the other hand, due to the importance of optical routing, many studies have been made to optimize routers. However, in the study on existing HONoC routers, by applying simple routing method such as XY routing, when different data are trying to use the same path, data that can not occupy the path is transmitted until other data is transmitted There is a blocking problem to wait. Accordingly, the latency of the routers on the HONoC can not be fairly guaranteed. Accordingly, there is a need for an apparatus and a method capable of performing efficient routing according to the structural characteristics of HONoC.
이와 관련하여, 대한민국등록특허 제714073호(발명의 명칭: 통신 자원의 충돌이 없는 온칩 네트워크 자동 생성 방법)에서는, SoC 설계에 있어서, 온칩 네트워크를 구성하는 모듈들간의 통신량에 대한 트래픽 그래프 및 통신 스케줄을 분석하여 각 통신 요구들 간의 경합이 없는 최적의 온칩 네트워크를 자동으로 생성하는 방법을 개시하고 있다.In this regard, Korean Patent Registration No. 714073 (entitled "On-chip Network Automatic Generation Method Without Contention of Communication Resources"), in the SoC design, a traffic graph and a communication schedule for the traffic volume between the modules constituting the on- And automatically generates an optimal on-chip network without contention between communication requests.
하지만 이러한 기존의 연구들은 광학적 상호 연결(OI)의 적용을 통해 서킷 스위칭을 사용해야 하는HONoC 구조의 환경을 제대로 반영하지 못하여, HONoC 구조에서의 경로 충돌 제어에는 한계가 있었다.However, these existing researches have not been able to reflect the environment of HONoC structure which should use circuit switching through application of optical interconnection (OI), and there is a limitation in path collision control in HONoC structure.
전술한 종래 기술의 문제점을 해결하기 위해, 본 발명의 일 실시예는 HONoC 환경에서 라우팅 장치의 경로 설정 상태에 기초하여 효율적으로 우회 경로 설정을 처리하는 적응적 라우팅 장치 및 방법과 그에 따른 HONoC 시스템을 제공하고자 한다.According to an aspect of the present invention, there is provided an adaptive routing apparatus and method for efficiently processing a bypass route setting based on a routing state of a routing apparatus in a HONoC environment, and a HONoC system .
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.It should be understood, however, that the technical scope of the present invention is not limited to the above-described technical problems, and other technical problems may exist.
상기와 같은 기술적 과제를 달성하기 위한 본 발명의 일 측면에 따른, 하이브리드 광학 네트워크 온 칩(Hybrid Optical Network-on-Chip, HONoC)에서 복수의 처리 소자(Processing Element, PE) 별로 연결된 라우팅 장치는, 전기적 링크를 통해 경로 설정을 위한 컨트롤 패킷을 수신하고, 상기 컨트롤 패킷을 기설정된 유형에 따라 분배하여 출력하는 패킷 분배 모듈; 상기 패킷 분배 모듈로부터 출력된 상기 컨트롤 패킷 중 경로 설정 패킷을 수신하면, 기설정된 목적지를 향한 방향으로 인접한 다음 라우팅 장치를 결정하고, 상기 다음 라우팅 장치의 사용 상태에 따라 상기 경로 설정 패킷에 대한 롤백(rollback) 처리 여부를 결정하는 경로 설정 처리 모듈; 및 상기 경로 설정 처리 모듈에 의해 상기 경로 설정 패킷에 대한 롤백 처리가 결정되면, 상기 경로 설정 패킷이 입력된 이전 라우팅 장치로 상기 경로 설정 패킷을 롤백시키는 롤백 처리 모듈을 포함하되, 상기 이전 라우팅 장치로 롤백시킨 상기 경로 설정 패킷은, 상기 이전 라우팅 장치가 재결정한 우회 경로 상의 다른 라우팅 장치로 전송된다.According to an aspect of the present invention, there is provided a routing apparatus connected to a plurality of processing elements (PEs) in a hybrid optical network-on-chip (HONOC) A packet distribution module for receiving a control packet for routing through an electrical link, distributing the control packet according to a predetermined type, and outputting the control packet; And a control unit configured to determine a next routing apparatus adjacent to the predetermined destination in the direction of a predetermined destination when receiving the routing packet among the control packets output from the packet distribution module, a rollback process; And a rollback processing module that rolls back the routing packet to a previous routing device to which the routing packet is input if the rollback process for the routing packet is determined by the routing module, The path setting packet that has been rolled back is transmitted to another routing apparatus on the bypass path that has been redetermined by the previous routing apparatus.
그리고, 본 발명의 다른 측면에 따른, 하이브리드 광학 네트워크 온 칩(Hybrid Optical Network-on-Chip, HONoC)에서 복수의 처리 소자(Processing Element, PE) 별로 연결된 라우팅 장치를 통한 적응적 라우팅 방법은, (a) 전기적 링크를 통해 제 1 라우팅 장치로부터 컨트롤 패킷을 수신하는 단계; (b) 상기 컨트롤 패킷의 유형을 판단하는 단계; (c) 상기 유형을 판단한 결과 경로 설정 패킷인 경우, 상기 경로 설정 패킷에 기초하여 상기 제 1 라우팅 장치와 인접한 라우팅 장치 중 기설정된 목적지를 향한 방향의 제 2 라우팅 장치를 결정하는 단계; (d) 상기 제 2 라우팅 장치의 사용 상태를 확인하여, 상기 사용 상태에 따라 상기 경로 설정 패킷에 대한 롤백(rollback) 처리 여부를 결정하는 단계; 및 (e) 상기 경로 설정 패킷에 대한 롤백 처리가 결정되면, 상기 제 1 라우팅 장치로 상기 경로 설정 패킷을 롤백 시키는 단계를 포함하되, 상기 롤백시킨 경로 설정 패킷은 상기 제 1 라우팅 장치에서 재결정된 우회 경로 상의 제 3 라우팅 장치로 전송된다.According to another aspect of the present invention, an adaptive routing method through a routing device connected to a plurality of processing elements (PEs) in a hybrid optical network-on-chip (HONOC) a) receiving a control packet from a first routing device over an electrical link; (b) determining the type of the control packet; (c) determining a second routing device in a direction toward a predetermined destination among the routing devices adjacent to the first routing device based on the routing packet, when the determination result is the type of the routing device; (d) checking the use state of the second routing apparatus and determining whether to perform a rollback process on the route setting packet according to the use state; And (e) rolling back the routing packet to the first routing device when a rollback process for the routing packet is determined, wherein the rolled back routing packet is a round trip Path to the third routing device on the path.
또한, 본 발명의 또 다른 측면에 따른, 하이브리드 광학 네트워크 온 칩(Hybrid Optical Networks-on-Chip) 시스템은, 복수의 처리 소자(Processing Element, PE); 및 상기 PE 별로 매칭되며, 광학적 링크를 통해 상기 PE 간 데이터의 전송을 위한 서킷 스위칭을 처리하고, 전기적 링크를 통해 상기 PE 간 경로 설정을 위한 패킷 스위칭을 처리하는 복수의 라우팅 장치를 포함하되, 상기 라우팅 장치는, 상기 전기적 링크를 통해 경로 설정을 위한 컨트롤 패킷을 수신하여 기설정된 유형에 따라 분배하여 출력하고, 상기 컨트롤 패킷 중 경로 설정 패킷을 수신하면 기설정된 목적지를 향한 방향으로 인접한 다음 라우팅 장치를 결정하고, 상기 다음 라우팅 장치가 사용 불가능한 상태이면 상기 경로 설정 패킷이 입력된 이전 라우팅 장치로 상기 경로 설정 패킷을 롤백(rollback) 처리하되, 상기 이전 라우팅 장치로 롤백 처리된 상기 경로 설정 패킷은, 상기 이전 라우팅 장치가 재결정한 우회 경로 상의 다른 라우팅 장치로 전송된다.According to another aspect of the present invention, a hybrid optical network-on-chip system includes a plurality of processing elements (PEs); And a plurality of routing devices matching the PEs, processing circuit switching for transmission of data between the PEs via an optical link, and processing packet switching for routing the PEs through an electrical link, The routing device receives the control packet for route setting through the electrical link and distributes it according to a predetermined type and outputs the control packet. When receiving the routing packet among the control packets, the routing device transmits the control packet to the next routing device adjacent to the predetermined destination And if the next routing device is unavailable, rolls back the routing packet to a previous routing device to which the routing packet is input, wherein the routing packet, which has been rolled back to the previous routing device, If the previous routing device has been redirected to another routing device on the bypass path, It is.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, HONoC 상에서 데이터 송수신을 위한 경로 설정 시, 경로 진행 방향이 블로킹된 경우 블로킹 이전의 라우팅 장치로 되돌아가 경로를 재탐색함으로써 신속하게 경로를 우회시킬 수 있다. 이에 따라, 동일 경로를 사용하고자하는 데이터 통신들에 대해서 각각 적합한 우회 경로를 제공함으로써, 통신 속도를 높일 수 있는 효과가 있다.According to any one of the above-mentioned means for solving the problems of the present invention, when setting the path for data transmission / reception on the HONoC, if the path traveling direction is blocked, the path is returned to the routing apparatus before the blocking, . Thus, it is possible to increase the communication speed by providing a suitable detour path for each data communication to use the same path.
그리고, 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 출발지로부터 목적지까지의 최단 거리 경로 내에서 우회 경로를 설정함으로써, 경로 우회 시에도 최적의 경로 설정을 제공할 수 있는 효과가 있다. Further, according to any one of the tasks of the present invention, it is possible to provide an optimum route setting even when the route is bypassed by setting the bypass route in the shortest distance route from the origin to the destination.
또한, 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 둘 이상의 통신에 의해 동일 방향으로의 경로 설정 시도가 동시에 발생된 경우, 각 통신의 경로 설정 재시도에 대해 차등적인 지연 시간을 적용함으로써 동시 발생된 통신들에 대한 안정적인 병렬 통신이 가능한 효과가 있다.Further, according to any one of the tasks of the present invention, when a route setting attempt in the same direction occurs at the same time by two or more communications, a differential delay time is applied to a route setting retry of each communication, It is possible to perform stable parallel communication with the communicated communications.
또한, 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 경로 설정 완료 후 광학적 네트워크를 통한 데이터 전송과 동시에(또는 빠른 시간 내에) 전기적 네트워크를 통한 경로 해제를 수행함으로써, 신속하게 설정된 경로를 해제시킬 수 있어 통신 효율을 높일 수 있다.Further, according to any one of the tasks of the present invention, it is possible to quickly release the set route by performing the route disconnection through the electrical network simultaneously with (or in a short time) the data transmission through the optical network after completing the route setting So that the communication efficiency can be improved.
도 1은 본 발명의 일 실시예에 따른 하이브리드 광학 네트워크 온 칩 시스템의 구성을 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 라우팅 장치의 구성을 나타낸 블록도이다.
도 3은 본 발명의 일 실시예에 따른 컨트롤 패킷의 유형 별 구조를 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 적응적 라우팅 방식에서 라우팅 진행 방향을 결정하는 절차를 설명하기 위한 순서도이다.
도 5는 본 발명의 일 실시예에 따른 적응적 라우팅 방식에서 다음 라우팅 장치에 대한 경로 설정 예측 처리 절차를 설명하기 위한 순서도이다.
도 6은 본 발명의 일 실시예에 따른 적응적 라우팅 수행 결과의 일례를 나타낸 도면이다.
도 7은 본 발명의 일 실시예에서 발생될 수 있는 중복 경로 탐색 과정의 일례를 나타낸 도면이다.
도 8은 본 발명의 일 실시예에 따른 적응적 라우팅 방식에서 중복 경로를 제외하는 절차를 설명하기 위한 순서도이다.
도 9는 본 발명의 일 실시예에 따른 경로 설정 지연 방식을 설명하기 위한 경로 설정 동시 발생 상태의 일례를 나타낸 도면이다.
도 10은 본 발명의 일 실시예에 따른 경로 설정 재시도에 적용될 지연 시간의 산출 방식을 설명하기 위한 도면이다.
도 11은 본 발명의 일 실시예에 따른 적응적 라우팅 방법을 설명하기 위한 순서도이다.1 is a diagram illustrating a configuration of a hybrid optical network on chip system according to an embodiment of the present invention.
2 is a block diagram illustrating a configuration of a routing apparatus according to an embodiment of the present invention.
3 is a view for explaining a structure of control packets according to an embodiment of the present invention.
FIG. 4 is a flowchart illustrating a procedure for determining a routing progress direction in an adaptive routing scheme according to an exemplary embodiment of the present invention. Referring to FIG.
FIG. 5 is a flowchart illustrating a route setting prediction processing procedure for a next routing apparatus in an adaptive routing scheme according to an embodiment of the present invention. Referring to FIG.
6 is a diagram illustrating an example of the results of performing adaptive routing according to an embodiment of the present invention.
7 is a diagram illustrating an example of a redundant path search process that may be generated in an embodiment of the present invention.
8 is a flowchart illustrating a procedure for excluding a redundant path in the adaptive routing scheme according to an embodiment of the present invention.
FIG. 9 is a view illustrating an example of a route setting simultaneous occurrence state for explaining a route setting delay method according to an embodiment of the present invention.
10 is a diagram for explaining a method of calculating a delay time to be applied to a route setting retry according to an embodiment of the present invention.
11 is a flowchart illustrating an adaptive routing method according to an embodiment of the present invention.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings, which will be readily apparent to those skilled in the art. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part is referred to as being "connected" to another part, it includes not only "directly connected" but also "electrically connected" with another part in between . Also, when an element is referred to as "comprising ", it means that it can include other elements as well, without departing from the other elements unless specifically stated otherwise.
도 1은 본 발명의 일 실시예에 따른 하이브리드 광학 네트워크 온 칩 시스템의 구성을 나타내는 도면이다.1 is a diagram illustrating a configuration of a hybrid optical network on chip system according to an embodiment of the present invention.
도 1에 도시한 바와 같이, 본 발명의 일 실시예에 따른 하이브리 광학 네트워크 온 칩(Hybrid Optical NoC, HONoC) 시스템(10)은 복수의 처리 소자(Processing Element, PE)(100), 각 PE(100)와 매칭되어 연결된 복수의 라우터(200), 및 각 라우터(200) 간에 광학적 경로를 형성하는 광학적 링크(300), 각 라우터(200) 간에 전기적 경로를 형성하는 전기적 링크(400)를 포함하여 구성된다.1, a Hybrid Optical NoC (HONOC)
참고로, 도 1에서는 본 발명의 일 실시예에 따른 HONoC 시스템(10)이 메시 네트워크 토폴로지 형태의 HONoC로 구성된 것을 나타내었으며, 본 발명의 실시예에 따른HONoC의 형태는 다양한 종류의 네트워크 토폴로지 형태로 설정될 수 있다.1, the HONoC
처리 소자(PE)(100)는 HONoC 상에서 데이터를 처리하는 소자이다. 예를 들어, PE(100)는 애플리케이션과 같은 프로그램에 의한 태스크(task)가 매핑되어, 해당 태스크에 따른 데이터를 처리할 수 있다.The processing element (PE) 100 is an element that processes data on HONoC. For example, the
라우터(200)는 PE(100)에서의 데이터 처리를 위해, HONoC 상의 PE(100) 간에 경로를 설정(즉, 라우팅)하여 데이터가 송수신되도록 한다. 이때, 출발지 라우터(200)는 자신과 연결된 PE(100)로부터 발생된 데이터를 전달받아 목적지 라우터(200) 측으로 전송하고, 목적지 라우터(200)는수신된 데이터(즉, 출발지 라우터가 전송한 데이터)를 자신과 연결된 PE(100)로 전달한다.The
특히, 본 발명의 일 실시예에 따른 HONoC 시스템(10)에서는 각 라우터(200)가 기설정된 라우팅 절차를 수행하여 출발지로부터 목적지까지의 경로를 설정한다. 이때, 각 라우터(200)가 수행하는 기설정된 라우팅 방식은 HONoC 상에서 다른 라우터들의 현재 상태에 따라 경로를 설정할 다음 라우터를 결정하는 방식(이하, '적응적 라우팅'이라고함)이다.In particular, in the HONoC
구체적으로, 적응적 라우팅에 따르면, 출발지로부터 목적지까지의 경로 상에 위치한 라우터(200)들의 경로 설정 상태를 실시간으로 판단한다. 이때, 적응적 라우팅에서는, 상기 경로 상에 경로 설정이 불가능한 상태인 라우터가 존재하는 경우, 현재 라우터의 위치에 인접하며 경로 설정이 가능한 상태의 다른 라우터로 경로를 우회시킨다.Specifically, according to the adaptive routing, the routing state of the
본 발명의 일 실시예에 따른 라우터(200)의 적응적 라우팅 동작에 대해서는 하기 도 2 내지 도 8을 참조하여 상세히 설명하도록 한다.The adaptive routing operation of the
한편, 본 발명의 일 실시예에 따른 라우터(200)는 광학 라우터 및 전기 라우터의 동작을 함께 수행하는 혼합형(hybrid) 라우터로서, HONoC 상에는 라우터(200)들의 광학적/전기적 연결을 통해 광학적 네트워크와 전기적 네트워크가 형성된다. 이때, 라우터(200)는 서킷 스위칭을 통해 광학적 네트워크를 제어하고, 패킷 스위칭을 통해 전기적 네트워크를 제어한다.Meanwhile, the
구체적으로, 광학적 네트워크는 라우터(200) 내 광학적 라우터와 광학적 링크(예를 들어, 도파관(waveguide))(300)로 구성된다. 광학적 링크(300)는 광학적 상호 연결(Optical Interconnect, OI)로서, 'PE(100)와 라우터(200)' 또는 '라우터(200)와 라우터(200)' 사이를 광학적으로 연결한다. 예를 들어, 출발지 라우터(source router)와 목적지 라우터(destination router) 간에 경로가 설정되면, 설정된 경로 상에 위치한 라우터(200)들은 각각 광학적 링크(300)를 통해 데이터(즉, 페이로드(payload))를 광신호로 송수신한다. 이때, 광학적 라우터는 마이크로공진기(micro-resonator)를 포함하여 구성될 수 있으며, 마이크로공진기의 온/오프(on/off)에 따라 광학적 링크의 사용 여부를 선택할 수 있다. 그리고, 광학적 라우터는 사용되도록 선택된 광학적 링크를 통해 광신호(즉, 데이터)를 목적지(destination) 측으로 전송하고, 목적지의 광학적 라우터는 사용하도록 선택된 광학적 링크를 통해 광신호를 수신한다.Specifically, the optical network consists of an optical router and optical link (e. G., Waveguide) 300 in the
전기적 네트워크는 라우터(200) 내 전기적 라우터와 전기적 링크(400)로 구성된다. 전기적 링크(400)는 전기적 상호 연결(Electrical Interconnect, EI)로서, 라우터(200)와 라우터(200) 사이를 전기적으로 연결하여 라우터(200) 간에 전기 신호를 통신할 수 있도록 한다. 예를 들어, 전기적 라우터는 출발지 라우터와 목적지 라우터 간에 경로를 설정하기 위한 패킷(이하, '컨트롤 패킷'이라고 함)을 전기적 링크(400)를 통해 전기 신호로 통신하도록 한다. 그리고, 전기적 라우터는 라우터(200) 내 광학적 라우터를 제어하여 광신호(즉, 데이터)가 송수신되도록 한다. 이때, 전기적 라우터는 광학적 라우터와 통신하여 광학적 네트워크를 통해 광원(즉, 데이터)이 송수신되도록 마이크로공진기를 제어할 수 있다. 또한, 전기적 라우터는 라우터(200) 내 전기적/광학적 경로의 사용 여부에 대한 정보를 다른 라우터로 제공할 수 있다.The electrical network consists of an electrical link (400) with an electrical router in the router (200). The
이하, 도 2 내지 도 8을 참조하여 본 발명의 일 실시예에 따른 라우터(이하, '라우팅 장치'라고 함)(200)에 대해서 상세히 설명하도록 한다.Hereinafter, a router (hereinafter, referred to as 'routing device') 200 according to an embodiment of the present invention will be described in detail with reference to FIG. 2 to FIG.
우선, 본 발명의 일 실시예에 따른 HONoC 시스템(10) 상에서 복수의 라우팅 장치(200)를 통해 PE(100) 간에 데이터를 송수신하는 과정을 설명하도록 한다.First, a process of transmitting and receiving data between
먼저, 출발지 PE에서 전송할 데이터가 발생되면, 출발지 라우팅 장치는 전기적 링크를 통해 목적지 라우팅 장치 측으로 경로 설정을 위한 컨트롤 패킷을 전송한다.First, when data to be transmitted from the source PE is generated, the source routing apparatus transmits a control packet for routing to the destination routing apparatus via an electrical link.
그러면, 출발지 라우팅 장치로부터 목적지 라우팅 장치까지의 경로 상에 위치한 라우팅 장치는 기설정된 적응적 라우팅 알고리즘에 따른 처리를 수행하여 컨트롤 패킷을 전달할 다른 라우팅 장치를 결정한다.Then, the routing apparatus located on the route from the source routing apparatus to the destination routing apparatus performs processing according to a predetermined adaptive routing algorithm to determine another routing apparatus to which the control packet is to be transmitted.
구체적으로, 적응적 라우팅 알고리즘에 따르면, 경로 설정 패킷을 수신한 라우팅 장치(이하, '현재 라우팅 장치'라고 지칭함)는 목적지 라우팅 장치를 향한 일방향으로 인접한 다른 라우팅 장치(이하, '다음 라우팅 장치'라고 함)의 경로 설정 상태를 확인한다. 그리고, 현재 라우팅 장치는 다음 라우팅 장치의 경로 설정 상태가 사용 가능한 상태이면 컨트롤 패킷을 전달하고, 다음 라우팅 장치의 경로 설정 상태가 사용 중인 상태이면 현재 라우팅 장치로 경로 설정 패킷을 전송하였던 라우팅 장치(이하, '이전 라우팅 장치'라고 지칭함)로 컨트롤 패킷을 복귀(즉, 롤백(rollback))시킨다. 그러면, 복귀된 컨트롤 패킷을 수신한 라우팅 장치는 목적지 라우팅 장치를 향한 진행 방향 중 상기 일방향과는 다른 방향으로 인접한 또 다른 라우팅 장치로 컨트롤 패킷을 재전송하여 경로를 우회시킨다. 이상에서와 같은 경로 설정 절차의 수행에 따라 HONoC 상의 라우팅 장치 중 복수의 라우팅 장치들은 순차적으로 컨트롤 패킷을 수신하며, 컨트롤 패킷을 성공적으로 수신한 라우팅 장치들을 통해 출발지로부터 목적지까지의 경로가 설정된다.Specifically, according to the adaptive routing algorithm, a routing device (hereinafter referred to as a 'current routing device') that receives a routing packet is referred to as another routing device adjacent to the destination routing device in one direction Check the path setting status of When the routing state of the next routing apparatus is available, the routing apparatus delivers the control packet. If the routing apparatus is currently in use, the routing apparatus transmits the routing packet to the routing apparatus (I. E., Rollback) the control packet with a " previous routing device " Then, the routing device, which has received the returned control packet, retransmits the control packet to another routing device adjacent to the one direction in the traveling direction toward the destination routing device, thereby bypassing the route. According to the execution of the routing procedure as described above, a plurality of routing devices among the routing devices on the HONoC sequentially receive the control packets, and a path from the source to the destination is established through the routing devices that successfully received the control packet.
이처럼, 목적지 라우팅 장치까지 경로 설정용 컨트롤 패킷이 성공적으로 전송되면, 목적지 라우팅 장치는 경로 설정의 성공을 알리는 응답 컨트롤 패킷을 출발지 라우팅 장치로 전송하여 경로 설정을 완료한다.As described above, when the control packet for routing is successfully transmitted to the destination routing apparatus, the destination routing apparatus transmits the response control packet indicating the success of the routing to the source routing apparatus to complete the routing.
그런 다음, 응답 컨트롤 패킷을 수신한 출발지 라우팅 장치는 목적지 라우팅 장치(결과적으로, 목적지 PE)까지 설정된 경로의 광학적 링크(300)를 통해 목적된 데이터 패킷(즉, 페이로드)을 전송한다.The originating routing device that has received the response control packet then transmits the desired data packet (i.e., payload) over the
마지막으로, 출발지 라우팅 장치로부터 광학적 링크(300)를 통해 데이터 패킷이 전송되면, 출발지 라우팅 장치는 경로 해제를 위한 컨트롤 패킷을 전기적 링크(400)를 통해 전송하여, 목적지 라우팅 장치까지 설정되어 있던 경로를 해제시킨다.Finally, when a data packet is transmitted from the source routing apparatus through the
이하, 위에서 설명한 적응적 라우팅을 통해 데이터 송수신 처리를 수행하는 라우팅 장치(200)의 구성 및 동작에 대해 상세히 설명하도록 한다.Hereinafter, the configuration and operation of the
도 2는 본 발명의 일 실시예에 따른 라우팅 장치의 구성을 나타낸 블록도이다. 그리고, 도 3은 본 발명의 일 실시예에 따른 컨트롤 패킷의 유형 별 구조를 설명하기 위한 도면이다.2 is a block diagram illustrating a configuration of a routing apparatus according to an embodiment of the present invention. 3 is a view for explaining the structure of each control packet according to an embodiment of the present invention.
도 2에 도시한 바와 같이, 라우팅 장치(200)는 라우팅 처리부(210), 데이터 전송부(220), 데이터 수신부(230) 및 경로 해제 처리부(240)를 포함하여 구성된다.2, the
이때, 도 2에서와 같이, 라우팅 처리부(210)는 패킷 분배 모듈(211), 경로 설정 처리 모듈(212), 롤백 처리 모듈(213), 캔슬 처리 모듈(214) 및 패킷 전송 처리 모듈(215)을 포함한다.2, the
패킷 분배 모듈(211)은 전기적 링크(400)를 통해 다른 라우팅 장치(200)로부터 컨트롤 패킷을 수신하고, 수신된 컨트롤 패킷을 유형(type)에 따라 분류한다.The
참고로, 컨트롤 패킷은 경로 설정을 위해 라우팅 장치(200) 간에 송수신되는 패킷으로서, 유형(type)에 따라 경로 설정 패킷(path setting packet), 롤백 패킷(rollback packet), 캔슬 패킷(cancel packet), 경로 응답 패킷(path ack packet) 및 경로 해제 패킷(path release packet)으로 구분할 수 있다.For reference, a control packet is a packet transmitted and received between the routing
구체적으로, 경로 설정 패킷은, 출발지 라우팅 장치부터 목적지 라우팅 장치까지의 복수의 경로 중 적어도 일경로 상에 위치한 라우팅 장치(200)에 경로 설정을 요청하는 패킷이다. 그리고, 롤백 패킷은, 경로 설정 패킷의 전송 시 목적지 라우팅 장치까지의 경로 상에서 다음 라우팅 장치로의 진행이 블로킹(blocking)된 경우, 경로 설정 패킷이 전송된 이전 라우팅 장치로 복귀(rollback)되는 패킷이다. 예를 들어, 컨트롤 패킷의 전송이 블로킹되는 경우는, 컨트롤 패킷을 전달하고자하는 라우팅 장치가 다른 경로 설정에 의해 사용되고 있거나, 컨트롤 패킷을 전달하고자 하는 라우팅 장치의 PE(100)가 사용되고 있는 경우일 수 있다. 그리고, 캔슬 패킷은, 경로 설정 시 목적지 라우팅 장치가 사용 중인 경우, 해당 경로에 대한 라우팅 동작이 취소되어(cancelling) 출발지 라우팅 장치로 복귀되는 패킷이다. 그리고, 경로 응답 패킷은, 출발지와 목적지 간에 경로 설정이 성공적으로 완료된 경우, 경로 설정이 완료되었음을 알리기 위해 목적지 라우팅 장치로부터 출발지 라우팅 장치로 전송되는 패킷이다. 또한, 경로 해제 패킷은 출발지 라우팅 장치로부터 목적지 라우팅 장치까지 데이터가 전송된 후 해당 경로를 해제시켜 다른 경로 설정이 가능하도록 하기 위한 패킷이다. 이때, 경로 해제 패킷은 경로 해제 시간 정보를 포함할 수 있으며, 출발지 라우팅 장치로부터 광학적 링크를 통한 데이터 전송 시작과 동시에 또는 데이터의 전송 직후에 순차적으로 전기적 링크를 통해 전송될 수 있다.Specifically, the routing packet is a packet for requesting routing to the
도 3의 (a)에는 경로 설정(path setting) 패킷 및 경로 응답(path ack) 패킷의 구조를 나타내었고, 도 3의 (b)에는 롤백(rollback) 패킷 및 캔슬(cancel) 패킷의 구조를 나타내었다. 또한, 도 3의 (c)에는 경로 해제(path release) 패킷의 구조를 나타내었다.3 (a) shows a structure of a path setting packet and a path ack packet, and FIG. 3 (b) shows a structure of a rollback packet and a cancel packet . 3 (c) shows the structure of a path release packet.
도 3의 (a)에서와 같이, 경로 설정(path setting) 패킷 및 경로 응답(path ack) 패킷은, 제 1 필드(P11)에 패킷 유형 정보(Packet type)가 저장되고, 제 2 필드(P12)에 출발지 정보(Source)가 저장되고, 제 3 필드(P13)에 목적지 정보(Destination)가 저장되고, 제 4 필드(P14)에는 롤백된 적이 있는 경로 설정 패킷에 대한 롤백 위치 정보(도 2에서는, 'Y-value'로 표시함)가 저장되어 있다. 이때, 롤백 위치 정보는 경로 설정 패킷이 롤백을 시작한 라우팅 장치의 위치 정보로서, 가장 최신의 정보가 저장된다.As shown in FIG. 3A, the packet setting information (Packet type) is stored in the first field P11 and the packet type information is stored in the second field P12 The source information is stored in the third field P13 and the destination information Destination is stored in the third field P13 and the rollback position information of the route setting packet that has been rolled back in the fourth field P14 , &Quot; Y-value ") are stored. At this time, the rollback location information is the location information of the routing apparatus where the route setting packet has started the rollback, and the latest information is stored.
그리고, 도 3의 (b)에서와 같이, 롤백(rollback) 패킷 및 캔슬(cancel) 패킷은 각각, 제 1 필드(P21)에 패킷 유형 정보(Packet type)가 저장된다.As shown in FIG. 3 (b), the packet type information is stored in the first field P21 in the rollback packet and the cancel packet, respectively.
또한, 도 3의 (c)에서와 같이, 경로 해제(path release) 패킷은 제 1 필드(P31)에 패킷 유형 정보(Packet type)가 저장되고, 제 2 필드(P32)에 경로 해제 시간 정보가 저장된다. 참고로, 도 3의 (c)에서는 제 2 필드(P32)가 TTL(Time To Live) 필드인 것을 나타내었다.3 (c), the packet release type packet is stored in the first field P31 and the path release time information is stored in the second field P32 . 3C, the second field P32 is a TTL (Time To Live) field.
다시 도 2로 돌아가서, 패킷 분배 모듈(211)은 수신된 컨트롤 패킷의 제 1 필드(P11, P21, P31)를 확인하여 컨트롤 패킷의 유형을 확인하고, 확인된 유형에 매칭되어 기설정된 처리 모듈(즉, 경로 설정 처리 모듈(212), 롤백 처리 모듈(213), 캔슬 처리 모듈(214) 및 패킷 전송 처리 모듈(215) 중 어느 하나)로 해당 컨트롤 패킷을 전달한다.2, the
구체적으로, 패킷 분배 모듈(211)은 수신된 컨트롤 패킷이 경로 설정 패킷인 경우 경로 설정 처리 모듈(212)로 전달한다. 그리고, 패킷 분배 모듈(211)은 수신된 컨트롤 패킷이 경로 응답 패킷 또는 경로 해제 패킷인 경우 패킷 전송 처리 모듈(215)로 전달하여, 기설정된 경로 상에서 현재 라우팅 장치(200)에 인접하여 위치한 이전 또는 다음 라우팅 장치로 전송되도록 한다. 또한, 패킷 분배 모듈(211)은 수신된 컨트롤 패킷이 롤백 패킷인 경우, 해당 롤백 패킷이 현재 라우팅 장치에 입력된 방향에 따라 롤백 처리 모듈(213) 또는 경로 설정 처리 모듈(212)로 전달한다. 이때, 패킷 분배 모듈(211)은 수신된 롤백 패킷이 현재 라우팅 장치에 입력된 방향이 기설정된 일방향과 일치하는 경우, 롤백 패킷을 경로 설정 패킷으로 변경하여 경로 설정 처리 모듈(212)로 전달한다. 그리고, 패킷 분배 모듈(211)은 수신된 롤백 패킷의 입력 방향이 상기 기설정된 일방향과 상이한 다른 방향인 경우, 롤백 패킷을 롤백 처리 모듈(213)로 그대로 전달한다. 또한, 패킷 분배 모듈(211)은 수신된 컨트롤 패킷이 캔슬 패킷인 경우 캔슬 처리 모듈(214)로 전달한다.Specifically, the
경로 설정 처리 모듈(212)은 패킷 분배 모듈(211)을 통해, 다른 라우팅 장치로부터 롤백되어 입력된 경로 설정 패킷(이하, '롤백 경로 설정 패킷'이라고 지칭함)과, 다른 라우팅 장치로부터 롤백되지 않고 출발지 라우팅 장치의 방향에서 입력된 경로 설정 패킷(이하, '노멀(nomal) 경로 설정 패킷'이라고 지칭함)을 수신한다. 참고로, 롤백 경로 설정 패킷은, 해당 경로 설정을 시도하는 과정에서 현재 라우팅 장치를 경유하였던 패킷이며, 노멀 경로 설정 패킷은 현재 라우팅 장치를 경유한적 없는 패킷이다.The path setting
이때, 경로 설정 처리 모듈(212)로 입력된 롤백 경로 설정 패킷은, 기설정된 일방향에서 현재 라우팅 장치로 입력된 경우에 패킷 분배 모듈(211)로부터 전달된 패킷이다.At this time, the rollback path setting packet input to the path setting
그리고, 경로 설정 처리 모듈(212)은 기설정된 적응적 라우팅 절차를 수행하여 경로 설정 패킷을 전달할 다음 라우팅 장치를 결정한 후, 전기적 링크(400)를 통해 상기 결정된 다음 라우팅 장치로 경로 설정 패킷을 전송한다. 또한, 경로 설정 처리 모듈(212)은 적응적 라우팅 절차를 수행한 결과, 라우팅을 진행할 다음 라우팅 장치가 블로킹된 것으로 판단된 경우, 경로 설정 패킷을 롤백 처리 모듈(213)로 전달하여 이전 라우팅 장치로 롤백되도록 한다.Then, the
한편, 경로 설정 처리 모듈(212)은 하기 도 4 내지 도 8을 참조하여 설명할 적응적 라우팅 알고리즘을 수행하여, 경로 설정 패킷을 다음 라우팅 장치로 전송하거나 이전 라우팅 장치로 롤백 처리할 수 있다.Meanwhile, the path setting
하기 도 4 내지 도 8에서는, HONoC가 메시 네트워크 토폴로지 형태이며, X-Y 라우팅 방식에 기반한 적응적 라우팅 알고리즘을 적용하여 컨트롤 패킷의 경로를 설정하는 것을 나타내었다. 또한, 이하에서는 HONoC 상의 각 라우팅 장치의 위치를 X축 및 Y축의 좌표 값으로 표현하도록 한다.In FIGS. 4 to 8, it is shown that HONoC is a mesh network topology, and a control packet path is set by applying an adaptive routing algorithm based on the X-Y routing scheme. In the following description, the position of each routing device on the HONoC is represented by coordinate values of the X axis and the Y axis.
구체적으로, X-Y 라우팅 방식은, HONoC상에서 X축(즉, 도 1에 도시한 'X축')방향으로 우선적으로 라우팅을 진행하되, X축 방향으로 인접한 라우팅 장치로의 경로 설정이 불가능한 경우 Y축(즉, 도 1에 도시한 'Y축')방향으로 라우팅을 진행하는 방식이다. 이때, 메시 네트워크 토폴로지에서는 각 라우팅 장치가 상/하/좌/우 방향으로 다른 라우팅 장치와 인접하며, 좌/우 방향으로 인접한 라우팅 장치는 X축 방향으로 인접한 것이고, 상/하 방향으로 인접한 라우팅 장치는 Y축 방향으로 인접한 것이다.Specifically, in the XY routing scheme, if routing is preferentially performed on the X axis (that is, the 'X axis' shown in FIG. 1) on the HONoC, but the routing to the adjacent routing apparatus in the X axis direction is impossible, (I.e., the 'Y axis' shown in FIG. 1). In this case, in the mesh network topology, each routing device is adjacent to another routing device in the up / down / left / right direction, the routing devices adjacent in the left / right direction are adjacent in the direction of the X axis, Are adjacent to each other in the Y-axis direction.
참고로, 본 발명의 일 실시예에서는 라우팅 장치의 경로 설정 시 X축 방향을 Y축 방향보다 우선적으로 선택하는 방식을 설명하였으나, 본 발명의 다른 실시예에서는 반대로 Y축 방향을 X축 방향보다 우선적으로 라우팅 진행 방향으로 선택하는 것도 가능하다. 또한, 본 발명의 일 실시예에서는 메시 네트워크 토폴로지 형태의 HONoC를 설명하였으나, 상이한 형태의 네트워크 토폴로지에도 우선적인 라우팅 진행 방향을 설정하여 적응적 라우팅을 적용할 수 있다. 즉, HONoC에 적용될 수 있는 다양한 네트워크 토폴로지는 각각 라우팅 장치 간의 연결 형태가 상이하며, 네트워크 토폴로지의 라우팅 장치 간의 연결을 복수의 축(axis)으로 대응시킬 경우, 각 축에 대해 라우팅 우선 순위를 설정할 수 있다.In the embodiment of the present invention, the X axis direction is preferentially selected in the route setting of the routing device rather than the Y axis direction. However, in another embodiment of the present invention, It is also possible to select the direction of the routing. Also, although HONoC in the form of a mesh network topology has been described in the embodiment of the present invention, it is possible to apply adaptive routing by setting preferential routing progress directions in different types of network topologies. That is, various types of network topologies that can be applied to HONoC have different connection types between routing devices. When a connection between routing devices of a network topology is corresponded to a plurality of axes, a routing priority can be set for each axis have.
한편, 본 발명의 일 실시예에 따른 경로 설정 처리 모듈(212)은 적응적 라우팅 절차 수행 시, '경로 설정 진행 방향 결정 처리', '경로 설정 가능 예측 처리', 및 '증복 경로 제외 처리'를 수행할 수 있다.Meanwhile, the path setting
구체적으로, '경로 설정 진행 방향 결정 처리'는 컨트롤 패킷을 수신한 현재 라우팅 장치가 경로 설정 패킷을 전송할 진행 방향을 결정하는 처리이다. 그리고, '경로 설정 가능 예측 처리'는 상기 결정된 진행 방향으로 인접한 다음 라우팅 장치의 경로 설정 상태를 확인하여, 다음 진행 방향의 사용 가능 여부에 따라 실제 경로 설정 패킷을 전송하는 처리이다. 또한, '중복 경로 제외 처리'는 경로 설정 패킷에 저장된 롤백 위치 정보를 이용하여 경로 설정 패킷이 롤백시 경유하였던 라우팅 장치를 제외하고 우회 경로를 탐색하는 처리이다.Specifically, the 'path setting progress direction determination process' is a process for determining the direction in which the current routing apparatus that received the control packet transmits the path setting packet. The 'path settable prediction processing' is a processing for confirming the path setting state of the next adjacent routing apparatus in the determined direction, and transmitting the actual path setting packet according to the availability of the next direction of travel. In addition, the 'duplicate route exclusion process' is a process of searching for a bypass route except for the routing device that the route setting packet passed through during rollback using the rollback location information stored in the route setting packet.
먼저, 도 4를 참조하여 본 발명의 일 실시예에서 경로 설정 처리 모듈(212)의 '경로 설정 진행 방향 결정 처리' 절차를 상세히 설명하도록 한다.Referring to FIG. 4, a 'path setting direction determination process' process of the
도 4는 본 발명의 일 실시예에 따른 적응적 라우팅 방식에서 라우팅 진행 방향을 결정하는 절차를 설명하기 위한 순서도이다.FIG. 4 is a flowchart illustrating a procedure for determining a routing progress direction in an adaptive routing scheme according to an exemplary embodiment of the present invention. Referring to FIG.
도 4에서와 같이, 경로 설정 처리 모듈(212)은 패킷 분배 모듈(211)로부터 경로 설정 패킷을 수신하면(S410), 수신된 경로 설정 패킷이 롤백된 패킷(즉, '롤백 경로 설정 패킷')인지 여부를 판단한다(S420).4, when the path setting
참고로, 경로 설정 처리 모듈(212)로 입력될 수 있는 롤백 경로 설정 패킷은, 현재 라우팅 장치가 컨트롤 패킷을 입력받을 수 있는 복수의 방향 중 기설정된 일방향에서 롤백된 것이다. 상기 기설정된 일방향은 적응적 라우팅에서 우선적으로 경로를 설정하는 방향(즉, 본 발명의 일 실시예에서는 'X축' 방향)이다. 설명의 편의상, 이하에서는 '우선 경로 방향'이라고 지칭하도록 한다.For reference, the rollback path setting packet that can be input to the path setting
참고로, 다른 라우팅 장치로부터 입력된 롤백 패킷이 상기 기설정된 일방향과 상이한 다른 방향(즉, 본 발명의 일 실시예에서는 'Y축' 방향)에서 롤백되어 입력된 경우, 패킷 분배 모듈(211)은 수신된 롤백 패킷을 롤백 처리 모듈(213)로 곧바로 전달한다. 이는, X-Y 라우팅 방식에 따르면, 우선 경로 방향(즉, X축 방향)이 아닌 방향(즉, Y축 방향)으로부터 컨트롤 패킷이 롤백된 경우는, 우선 경로 방향(즉, X축 방향)으로 더 이상 진행할 경로가 없는 경우를 의미하기 때문이다. 이와 같은 경우, 패킷 분배 모듈(211)은 Y축 방향에서 롤백된 롤백 패킷을 롤백 처리 모듈(123)로 곧바로 전달한다.For reference, when the rollback packet input from another routing device is rolled back and input in another direction different from the predetermined one direction (i.e., in the direction of 'Y axis' in one embodiment of the present invention), the
상기 단계 (S420)의 판단 결과, 수신된 경로 설정 패킷이 롤백 경로 설정 패킷이 아닌 노멀 경로 설정 패킷인 경우, 현재 라우팅 장치와 목적지 라우팅 장치의 X축 좌표 값을 비교하여 동일한지 여부를 판단한다(S430).If it is determined in step S420 that the received route setting packet is not a rollback route setting packet but a normal route setting packet, it is determined whether the current routing device is the same as the X axis coordinate value of the destination routing device S430).
이때, 경로 설정 처리 모듈(212)은 노멀 경로 설정 패킷의 제 3 필드(P13)에 저장된 목적지 정보로부터 목적지 라우팅 장치의 X 축 좌표 값을 확인할 수 있다.At this time, the path setting
그런 후, 현재 라우팅 장치와 목적지 라우팅 장치의 X축 좌표 값이 동일한 경우, 하기에서 설명할 단계 (S440)로 진행하여 현재 라우팅 장치와 목적지 라우팅 장치의 Y축 좌표 값을 비교한다.If the X axis coordinate values of the current routing device and the destination routing device are the same, the flow advances to step S440 to compare the Y axis coordinate values of the current routing device and the destination routing device.
반면, 현재 라우팅 장치와 목적지 라우팅 장치의 X축 좌표 값이 상이한 경우, 경로 설정 패킷을 전달할 X축 상의 진행 방향을 결정한다(S431).On the other hand, if the X-axis coordinate values of the current routing apparatus and the destination routing apparatus are different, a traveling direction on the X-axis to which the routing packet is to be transmitted is determined (S431).
이때, 단계 (S431)에서는, 현재 라우팅 장치의 X축 좌표 값이 목적지 라우팅 장치의 X축 좌표 값보다 작은 경우, X축 방향 중 우측 방향(도 4에서는, 'east'로 표현함)을 경로 설정 패킷을 전송할 진행 방향으로 결정한다. 또한, 현재 라우팅 장치의 X축 좌표 값이 목적지 라우팅 장치의 X축 좌표 값보다 큰 경우, X축 방향 중 좌측 방향(도 4에서는, 'west'로 표현함)을 진행 방향으로 결정한다.At this time, if the X-axis coordinate value of the current routing apparatus is smaller than the X-axis coordinate value of the destination routing apparatus, the rightward direction (expressed as 'east' in FIG. 4) To be transmitted. When the X axis coordinate value of the current routing device is larger than the X axis coordinate value of the destination routing device, the leftward direction (expressed as 'west' in FIG. 4) of the X axis direction is determined as the traveling direction.
즉, 현재 라우팅 장치가 목적지 라우팅 장치 보다 X축 좌표의 값이 큰 경우, 현재 라우팅 장치의 X축 좌표의 값이 작아지는 방향으로 진행 방향을 결정한다. 반면, 현재 라우팅 장치가 목적지 라우팅 장치보다 X축 좌표의 값이 작은 경우, 현재 라우팅 장치의 X축 좌표의 값이 커지는 방향으로 진행 방향을 결정한다. 이와 같이 라우팅 진행 방향을 목적지 라우팅 장치를 향한 방향으로만 설정되도록 함으로써, 불필요한 경로를 탐색할 필요없이 목적지까지의 최단 거리 경로 내에서 라우팅 방향을 결정할 수 있다. 참고로, HONoC 상에서 어느 하나의 라우터 장치(200)와 인접한 라우터 장치(200) 간의 거리를 홉(hop)이라할 경우, 최단 거리 경로는 출발지 라우팅 장치로부터 목적지 라우팅 장치까지 최소의 홉을 갖는 경로를 의미한다.That is, when the current routing device has a larger value of the X-axis coordinate than the destination routing device, the direction of the current X-axis coordinate of the current routing device is decreased. On the other hand, when the current routing apparatus has a smaller value of the X-axis coordinate than the destination routing apparatus, the traveling direction is determined in a direction in which the X-axis coordinate value of the current routing apparatus becomes larger. By thus setting the routing progress direction only in the direction toward the destination routing device, the routing direction can be determined within the shortest path to the destination without having to search for unnecessary paths. For reference, when a distance between any one
그런 후, 현재 라우팅 장치의 상기 단계(S431)에서 결정된 X축 상의 진행 방향에 대한 경로 설정 상태를 확인하여 경로 설정이 가능한지 여부를 판단한다(S432).Then, the path setting state of the current direction of the X-axis on the X-axis determined in the step S431 of the current routing apparatus is checked to determine whether path setting is possible (S432).
참고로, 본 발명의 일 실시예에 따른 라우팅 장치(200)에는 상/하/좌/우 방향으로 컨트롤 패킷을 출력할 수 있는 복수의 출력 포트가 구성되어 있으며, 경로 설정 처리 모듈(212)은 상기 결정된 진행 방향에 대응된 출력 포트의 상태를 확인하여 경로 설정 가능 여부를 판단할 수 있다.For reference, the
상기 단계 (S432)의 확인 결과, 현재 라우팅 장치의 상태가 상기 결정된 진행 방향으로의 경로 설정이 가능한 상태인 경우, 경로 설정 패킷을 전송할 대상인 다음 라우팅 장치(next router)에 대한 경로 설정 가능 여부를 예측하는 처리(즉, 상기 '경로 설정 가능 예측 처리')의 초기 단계로 접근한다(S480).As a result of the checking in step S432, if it is determined that the route of the current routing apparatus can be set in the determined direction, it is possible to predict whether or not the next router, (I.e., the 'path settable prediction process') (S480).
참고로, 상기 다음 라우팅 장치는 현재 라우팅 장치로부터 상기 결정된 진행 방향으로 인접한 라우팅 장치로서, 다음 라우팅 장치에 대한 경로 설정 가능 예측 처리는 다음 라우팅 장치의 경로 설정 상태에 따라 실제로 경로 설정 패킷을 전송할지 여부를 판단하기 위한 것이다.For reference, the next routing device is a routing device that is adjacent to the current routing device in the determined direction of progress, and the path settable prediction process for the next routing device determines whether to actually transmit the routing packet according to the routing state of the next routing device .
반면, 상기 단계 (S432)의 확인 결과, 현재 라우팅 장치의 상태가 상기 결정된 진행 방향으로의 경로 설정이 불가능한 상태인 경우, 하기에서 설명할 단계 (S440)으로 진행하여 현재 라우팅 장치와 목적지 라우팅 장치의 Y축 좌표 값을 비교한다.On the other hand, if it is determined in step S432 that the state of the current routing apparatus is in a state in which it is impossible to set the path to the determined forward direction, the current routing apparatus and the destination routing apparatus Y axis coordinate value.
한편, 상기 단계(S420)의 판단 결과, 수신된 경로 설정 패킷이 롤백 경로 설정 패킷인 경우, 현재 라우팅 장치와 목적지 라우팅 장치의 Y축 좌표 값을 비교하여 동일한지 여부를 판단한다(S440).If it is determined in step S420 that the received route setting packet is a rollback route setting packet, it is determined whether the current routing device is the same as the Y-axis coordinate value of the destination routing device in step S440.
즉, Y축 방향에서 입력된 롤백 패킷에 기초한 롤백 경로 설정 패킷에 대해 X축에 대한 판별(즉, 단계 S430, S431 및 S432)은 생략함으로써, 불필요한 단계의 수행을 방지할 수 있어 효율적이다.That is, it is possible to prevent unnecessary steps from being performed by omitting the determination of the X-axis (i.e., steps S430, S431, and S432) for the rollback path setting packet based on the rollback packet input in the Y-axis direction.
그런 다음, 상기 단계 (S440)의 판단 결과, 현재 라우팅 장치와 목적지 라우팅 장치의 Y축 좌표 값이 상이한 경우, 라우팅을 진행할 Y축 상의 진행 방향을 결정한다(S441).If it is determined in step S440 that the Y-axis coordinate values of the current routing apparatus and the destination routing apparatus are different from each other, a traveling direction on the Y-axis to be routed is determined (S441).
이때, 현재 라우팅 장치의 Y축 좌표 값이 목적지 라우팅 장치의 Y축 좌표 값보다 작은 경우, Y축의 상측 방향(도 4에서는 'north' 방향으로 표현함)을 진행 방향으로 결정한다. 또한, 현재 라우팅 장치의 Y축 좌표 값이 목적지 라우팅 장치의 Y축 좌표 값 보다 큰 경우 Y축의 하측 방향(도 4에서는 'south' 방향으로 표현함)을 진행 방향으로 결정한다. 이 또한, 라우팅 진행 방향을 목적지 라우팅 장치를 향한 방향으로만 설정되도록 함으로써, 목적지까지의 최단 거리 경로 내에서 라우팅 방향을 결정할 수 있다.At this time, when the Y axis coordinate value of the current routing device is smaller than the Y axis coordinate value of the destination routing device, the upward direction of the Y axis (indicated as 'north' direction in FIG. In addition, when the Y axis coordinate value of the current routing apparatus is larger than the Y axis coordinate value of the destination routing apparatus, the downward direction of the Y axis (indicated as 'south' direction in FIG. It is also possible to determine the routing direction within the shortest path to the destination by having the routing direction set only in the direction towards the destination routing device.
그런 후, 현재 라우팅 장치의 상기 단계(S441)에서 결정된 Y축 상의 진행 방향에 대한 경로 설정 상태를 확인하여 경로 설정이 가능한지 여부를 판단한다(S442).Then, the path setting state of the current routing device with respect to the traveling direction on the Y-axis determined in the above step S441 is checked to determine whether path setting is possible (S442).
상기 단계 (S442)의 판단 결과, 현재 라우팅 장치가 상기 결정된 진행 방향으로의 경로 설정이 가능한 상태인 경우, 상기 단계(S480)을 수행하여 다음 라우팅 장치에 대한 경로 설정 가능 여부를 예측한다.If it is determined in step S442 that the current routing apparatus is capable of routing in the determined forward direction, step S480 is performed to predict whether routing to the next routing apparatus is possible.
반면, 상기 단계 (S442)의 판단 결과, 현재 라우팅 장치가 상기 결정된 진행 방향으로의 경로 설정이 불가능한 상태인 경우, 경로 설정 패킷을 롤백 처리 모듈(213)로 전달한다(S451).On the other hand, if it is determined in step S442 that the current routing apparatus is unable to set the path in the determined direction, the path setting packet is transmitted to the rollback processing module 213 (S451).
한편, 상기 단계 (S440)의 판단 결과, 현재 라우팅 장치의 Y축 좌표 값과 목적지 라우팅 장치의 Y축 좌표 값이 동일한 값이면, 현재 라우팅 장치와 목적지 라우팅 장치의 주소가 동일한지 여부를 판단한다(S450).If the Y axis coordinate value of the current routing device and the Y axis coordinate value of the destination routing device are equal to each other, it is determined whether the current routing device and the destination routing device have the same address (S440) S450).
참고로, 현재 라우팅 장치의 X축 좌표 및 Y축 좌표와 목적지 라우팅 장치의 X축 좌표 및 Y축 좌표가 각각 동일한 경우, 현재 라우팅 장치와 목적지 라우팅 장치의 주소가 같다고 판단한다.If the X-axis coordinate and the Y-axis coordinate of the current routing device are the same as the X-axis coordinate and the Y-axis coordinate of the destination routing device, it is determined that the addresses of the current routing device and the destination routing device are the same.
상기 단계 (S450)의 판단 결과, 현재 라우팅 장치와 목적지 라우팅 장치의 주소가 상이한 경우, 상기 단계(S451)를 수행하여 경로 설정 패킷을 롤백 처리 모듈(213)로 전달한다.If it is determined in step S450 that the address of the current routing apparatus is different from the address of the destination routing apparatus, the step S451 is performed to transmit the routing packet to the
반면, 상기 단계 (S450)의 판단 결과, 현재 라우팅 장치와 목적지 라우팅 장치의 주소가 동일한 경우, 현재 라우팅 장치가 목적지 라우팅 장치인 것으로 판단하고 현재 라우팅 장치에 매칭된 PE(100)의 사용 가능 여부를 판단한다(S460).On the other hand, if it is determined in step S450 that the current routing device is the destination routing device and the current use of the
그런 후, 상기 단계 (S460)의 판단 결과, 현재 라우팅 장치에 매칭된 PE(100)의 상태가 사용 불가능한 상태인 경우, 경로 설정 패킷을 캔슬 처리 모듈(214)로 전달한다(S461).If the state of the
반면, 상기 단계 (S460)의 판단 결과, 현재 라우팅 장치와 매칭된 PE(100)의 상태가 사용 가능한 상태인 경우, 해당 PE(100)로 경로 설정 패킷을 전달하여 광학적 경로를 설정한다(S470).If it is determined in step S460 that the current state of the
다음으로, 도 5를 참조하여 본 발명의 일 실시예에서 경로 설정 처리 모듈(212)의 '경로 설정 가능 예측 처리'의 절차를 상세히 설명하도록 한다.Next, with reference to FIG. 5, the procedure of the 'path settable prediction processing' of the path setting
도 5는 본 발명의 일 실시예에 따른 적응적 라우팅 방식에서 다음 라우팅 장치에 대한 경로 설정 예측 처리 절차를 설명하기 위한 순서도이다.FIG. 5 is a flowchart illustrating a route setting prediction processing procedure for a next routing apparatus in an adaptive routing scheme according to an embodiment of the present invention. Referring to FIG.
도 5에서와 같이, 경로 설정 처리 모듈(212)은, 상기 도 4의 단계 (S432) 및 (S442)의 다음 단계로서, 다음 라우팅 장치의 X축 좌표와 목적지 라우팅 장치의 X축 좌표를 비교하여 동일한지 여부를 판단한다(S510).5, the route
그런 다음, 상기 단계(S510)의 판단 결과, 다음 라우팅 장치와 목적지 라우팅 장치의 X축 좌표 값이 상이한 경우, 다음 라우팅 장치로부터 라우팅을 진행할 X축 상의 진행 방향(이하, '다음 진행 방향'이라고 지칭함)을 결정한다(S511).If it is determined in step S510 that the X-axis coordinate values of the next routing device and the destination routing device are different from each other, the process proceeds from the next routing device to the forward direction on the X-axis (S511).
이때, 단계 (S511)에서는, 다음 라우팅 장치의 X축 좌표 값이 목적지 라우팅 장치의 X축 좌표 값보다 작은 경우, X축 방향 중 우측 방향(도 5에서는, 'east'로 표현함)을 다음 진행 방향으로 결정한다. 또한, 다음 라우팅 장치의 X 축 좌표 값이 목적지 라우팅 장치의 X축 좌표 값보다 큰 경우, X축 방향 중 좌측 방향(도 5에서는, 'west'로 표현함)을 다음 진행 방향으로 결정한다.At this time, when the X-axis coordinate value of the next routing apparatus is smaller than the X-axis coordinate value of the next routing apparatus, the rightward direction (expressed as 'east' in FIG. 5) . When the X axis coordinate value of the next routing apparatus is larger than the X axis coordinate value of the destination routing apparatus, the leftward direction (expressed as 'west' in FIG. 5) of the X axis direction is determined as the next traveling direction.
그런 후, 상기 단계 (S511)에서 결정된 다음 진행 방향으로 다음 라우팅 장치의 경로 설정이 가능한지 여부를 확인한다(S512).Then, it is determined whether the routing of the next routing apparatus is possible in the next forward direction determined in step S511 (S512).
상기 단계 (S512)의 확인 결과, 다음 라우팅 장치의 X축 상의 다음 진행 방향으로의 경로 설정이 가능한 경우, 경로 설정 패킷을 다음 라우팅 장치로 전송한다(S540).As a result of the determination in step S512, if it is possible to set the route to the next traveling direction on the X axis of the next routing apparatus, the route setting packet is transmitted to the next routing apparatus in step S540.
반면, 상기 단계 (S512)의 확인 결과, 다음 라우팅 장치가 다음 진행 방향으로의 경로 설정이 불가능한 상태인 경우(즉, 블로킹된 경우), 하기에서 설명할 단계 (S520)으로 진행하여, 다음 라우팅 장치와 목적지 라우팅 장치의 Y축 좌표 값을 비교한다. 이는, 다음 라우팅 장치의X축 방향으로의 라우팅 진행은 불가능한 상태이므로, Y축 방향으로의 라우팅 진행이 가능한지 여부를 판단하기 위한 것이다.On the other hand, if it is determined in step S512 that the next routing apparatus is in a state in which it is impossible to route in the next forward direction (i.e., blocked), the process proceeds to step S520, And the Y-axis coordinate value of the destination routing device. This is because it is impossible to proceed the routing in the X-axis direction of the next routing apparatus, and therefore, it is determined whether or not the routing in the Y-axis direction is possible.
한편, 상기 단계 (S510)의 판단 결과, 다음 라우팅 장치와 목적지 라우팅 장치의 X축 좌표 값이 동일한 경우, 다음 라우팅 장치와 목적지 라우팅 장치의 Y축 좌표 값을 비교하여 동일한지 여부를 판단한다(S520) On the other hand, if it is determined in step S510 that the X-axis coordinate values of the next routing device and the destination routing device are equal to each other, then the Y-axis coordinate values of the next routing device and the destination routing device are compared )
그런 후, 상기 단계 (S520)의 판단 결과, 다음 라우팅 장치와 목적지 라우팅 장치의 Y축 좌표 값이 상이한 경우, 다음 라우팅 장치로부터 라우팅을 진행할 Y축 상의 진행 방향(즉, '다음 진행 방향')을 결정한다(S521).If it is determined in step S520 that the Y-axis coordinate values of the next routing apparatus and the destination routing apparatus are different from each other, a progress direction on the Y-axis to be routed from the next routing apparatus (S521).
이때, 단계 (S521)에서는, 다음 라우팅 장치의 Y축 좌표 값이 목적지 라우팅 장치의 Y축 좌표 값보다 작은 경우, Y축 방향 중 상측 방향(도 5에서는, 'north'로 표현함)을 다음 진행 방향으로 결정한다. 또한, 다음 라우팅 장치의 Y축 좌표 값이 목적지 라우팅 장치의 Y축 좌표 값보다 큰 경우, Y축 방향 중 하측 방향(도 5에서는, 'south'로 표현함)을 다음 진행 방향으로 결정한다.At this time, if the Y-axis coordinate value of the next routing apparatus is smaller than the Y-axis coordinate value of the next routing apparatus, the upper direction (represented by 'north' in FIG. 5) . If the Y axis coordinate value of the next routing device is larger than the Y axis coordinate value of the destination routing device, the downward direction (expressed as 'south' in FIG. 5) of the Y axis direction is determined as the next traveling direction.
그런 후, 상기 단계 (S521)에서 결정된 Y축 상의 다음 진행 방향으로 다음 라우팅 장치의 경로 설정이 가능한지 여부를 판단한다(S522).Then, it is determined whether the routing of the next routing apparatus is possible in the next traveling direction on the Y-axis determined in step S521 (S522).
상기 단계 (S522)의 판단 결과, 다음 라우팅 장치의 다음 진행 방향으로의 경로 설정이 가능한 경우, 앞서 설명한 단계 (S540)로 진행하여 경로 설정 패킷을 다음 라우팅 장치로 전송한다.As a result of the determination in step S522, if it is possible to route the next routing device in the next forwarding direction, the flow advances to step S540 to transmit the routing packet to the next routing device.
반면, 상기 단계 (S522)의 판단 결과, 다음 라우팅 장치의 다음 진행 방향으로의 경로 설정이 불가능한 상태인 경우, 하기에서 설명할 단계 (S531)로 진행하여, 상기 도 4에서 설명한 '경로 설정 진행 방향 결정 처리'에서 결정된 진행 방향이 X축 상의 방향인지를 확인한다.On the other hand, if it is determined in step S522 that the next routing device can not route the next routing device, the process proceeds to step S531, The processing direction determined in the " determination processing " is the direction on the X-axis.
한편, 상기 단계 (S520)의 판단 결과, 다음 라우팅 장치와 목적지 라우팅 장치의 Y축 좌표 값이 동일한 경우, 다음 라우팅 장치와 목적지 라우팅 장치의 주소가 동일한지 여부를 판단한다(S530).As a result of the determination in step S520, if the Y-coordinate values of the next routing device and the destination routing device are equal, it is determined whether the addresses of the next routing device and the destination routing device are the same (S530).
즉, 다음 라우팅 장치와 목적지 라우팅 장치의 X축 좌표 및 Y축 좌표 값이 각각 동일한 경우, 다음 라우팅 장치와 목적지 라우팅 장치의 주소가 동일하다고 판단한다.That is, if the X-axis coordinate and the Y-axis coordinate value of the next routing device and the destination routing device are the same, it is determined that the addresses of the next routing device and the destination routing device are the same.
그런 후, 상기 단계 (S530)의 판단 결과, 다음 라우팅 장치와 목적지 라우팅 장치의 주소가 동일한 경우, 앞서 설명한 단계 (S540)로 진행하여 경로 설정 패킷을 다음 라우팅 장치로 전송한다.If it is determined in step S530 that the next routing device and the destination routing device have the same address, the flow advances to step S540 to transmit the routing packet to the next routing device.
반면, 상기 단계 (S530)의 판단 결과, 다음 라우팅 장치와 목적지 라우팅 장치의 주소가 상이한 경우, 현재 라우팅 장치로부터 다음 라우팅 장치로의 진행 방향이 X축 방향인지 여부에 따라 롤백 처리 여부를 판단한다(S531).On the other hand, if it is determined in step S530 that the address of the next routing apparatus and the destination routing apparatus are different, it is determined whether or not the rollback process is performed according to whether the current direction from the routing apparatus to the next routing apparatus is the X-axis direction S531).
즉, 상기 도 4에서 설명한 '경로 설정 진행 방향 결정 처리' 절차에서, 노멀 경로 설정 패킷이 수신되어 X축 상의 진행 방향이 결정된 경우, Y축에 대한 진행 방향은 탐색하지 않은 상태이다. 따라서, 상기 단계 (S531)은, 현재 라우팅 장치의 진행 방향이 X축 방향으로 결정된 상태에서, 상기 단계 (422)의 판단 결과 X축 상에 인접한 다음 라우팅 장치가 X축 및 Y축 상의 다음 진행 방향으로의 경로 설정이 불가능하다고 판단된 경우, 현재 라우팅 장치의 Y축 에 대한 경로 재탐색이 수행되도록 하기 위한 단계이다.That is, when the normal path setting packet is received and the proceeding direction on the X-axis is determined in the 'path setting progress direction determination process' described with reference to FIG. 4, the progress direction with respect to the Y-axis is not searched. If it is determined in step 422 that the next routing apparatus adjacent to the X axis is in the next traveling direction on the X axis and the Y axis in step S531, , It is a step for performing a route re-search for the Y-axis of the current routing apparatus.
상기 단계 (S531)의 판단 결과, 다음 라우팅 장치가 현재 라우팅 장치로부터 X축 진행 방향으로 인접한 라우팅 장치인 경우, 상기 도 4에서의 단계 (S440)으로 복귀하여 현재 라우팅 장치의 Y축에 대한 진행 방향 탐색을 수행한다.If it is determined in step S531 that the next routing apparatus is a routing apparatus that is adjacent to the current routing apparatus in the X-axis traveling direction, the process returns to step S440 in FIG. 4, Perform a search.
반면, 상기 단계 (S531)의 판단 결과, 다음 라우팅 장치가 현재 라우팅 장치로부터 Y축 방향으로 인접한 라우팅 장치인 경우, 경로 설정 패킷을 롤백 처리 모듈(213)로 전달한다(S532).On the other hand, if it is determined in step S531 that the next routing device is a routing device that is adjacent to the current routing device in the Y axis direction, the routing device transmits the routing packet to the rollback processing module 213 (S532).
이상에서 도 4 및 도 5를 참조하여 설명한 바와 같이, 경로 설정 처리 모듈(212)이 적응적 라우팅을 수행함으로써, 출발지로부터 목적지까지의 경로 설정 시 다음 라우팅 장치의 상태에 따른 경로 설정이 가능하며 최단 거리 경로를 설정할 수 있다.As described above with reference to FIG. 4 and FIG. 5, the path setting
예를 들어, 도 6은 본 발명의 일 실시예에 따른 적응적 라우팅 수행 결과의 일례를 나타낸 도면이다.For example, FIG. 6 is a diagram illustrating an example of the result of performing adaptive routing according to an embodiment of the present invention.
도 6에서는, HONoC 상에 위치한 64개의 라우팅 장치(200) 및 각 라우팅 장치(200)에 매칭된 PE(100)를 나타내었으며, 각 PE(100) 상에 위치 좌표(X, Y)를 표현하였다.6, 64
또한, 도 6에서는 출발지의 위치 좌표가 (1, 0)이고, 목적지의 위치 좌표가 (4, 5)인 것을 나타내으며, 위치 좌표 (3, 1), (4, 1), (4, 2), (4, 3), (4, 4)를 경유하는 제 1 사용 경로(도 6에서는 'path 1'로 나타냄)와, 위치 좌표 (5, 1), (5, 2), (5, 3)을 경유하는 제 2 사용 경로(도 6에서는 'path 2'로 나타냄)를 나타내었다. 즉, 출발지와 목적지 사이에 이미 사용 중인 라우팅 장치가 존재한다.6 shows that the position coordinates of the departure location are (1, 0) and the location coordinates of the destination are (4, 5), and the position coordinates (3, 1), (4, 1), (5, 1), (5, 2), (5, 2), (4, 3) 3) is shown (indicated as 'path 2' in FIG. 6). That is, there is a routing device already in use between the source and destination.
이때, 본 발명의 일 실시예에 따른 적응적 라우팅을 수행한 결과, 출발지로부터 목적지까지 설정될 수 있는 복수의 경로 중 위치 좌표 (1, 0), (2, 0), (2, 1), (2, 2), (3, 2), (3, 3), (3, 4), (3, 5), (4, 5)를 경유하는 경로(도 6에서는 'path 3'으로 나타냄)가 설정될 수 있다.As a result of performing the adaptive routing according to an embodiment of the present invention, the position coordinates (1, 0), (2, 0), (2, 1), (Shown as 'path 3' in FIG. 6) via (2, 2), (3, 2), (3, 3), (3, 4) Can be set.
구체적으로, 본 발명의 일 실시예에 따른 적응적 라우팅에 따르면, X-Y라우팅에 의해, 출발지 라우팅 장치(즉, 위치 좌표 (1, 0))부터 목적지 라우팅 장치의 X축 좌표와 동일한 값을 갖는 라우팅 장치(즉, 위치 좌표 (4, 0))까지 X축 상에서 경로 설정 패킷이 전송된다. 그런데, 위치 좌표 (4, 0)를 갖는 라우팅 장치가 Y축 상으로 라우팅을 진행해야할 다음 라우팅 장치(즉, 위치 좌표 (4, 1))가 이미 사용 중인 상태이므로, 위치 좌표 (4, 0)를 갖는 라우팅 장치는 경로 설정 패킷가 경유하였던 이전 라우팅 장치로 롤백 패킷을 롤백시킨다. 이에 따라, 롤백 패킷은 Y축 상으로의 진행 방향 탐색이 가능한(즉, Y축 상의 인접 라우팅 장치가 사용 가능한) 상태인 라우팅 장치(즉, 위치 좌표 (2, 0))까지 롤백된다. 그리고, 위치 좌표 (2, 0)을 갖는 라우팅 장치는 Y축 상으로 경로를 우회시켜 Y축 상에 인접한 라우팅 장치(즉, 위치 좌표 (2, 1))로 경로 설정 패킷을 전송하여 경로(즉, 'path 3')를 설정한다.Specifically, according to the adaptive routing according to the embodiment of the present invention, by XY routing, routing from the source routing apparatus (i.e., the position coordinate (1, 0)) to the X- A routing packet is transmitted on the X-axis up to the device (i.e., position coordinates (4, 0)). However, since the routing apparatus having the position coordinate (4, 0) is in the state where the next routing apparatus (i.e., the position coordinate (4, 1) Causes the rollback packet to be rolled back to the previous routing device via which the routing packet passed. Accordingly, the rollback packet is rolled back to the routing apparatus (i.e., the position coordinate (2, 0)) in a state in which the forward direction search on the Y axis is possible (i.e., the adjacent routing apparatus on the Y axis is usable). Then, the routing apparatus having the position coordinate (2, 0) bypasses the path on the Y axis and transmits the routing packet to the adjacent routing apparatus on the Y axis (i.e., the position coordinates (2, 1) , 'path 3').
이에 비해, 롤백 처리없이 X-Y 라우팅만을 적용할 경우, 도 6에서와 같이, 출발지 라우팅 장치(즉, 위치 좌표 (1, 0))로부터 전송된 경로 설정 패킷이 X축 상의 라우팅 장치들에 순차적으로 전송된 후, 해당 경로 설정 패킷이 목적지 라우팅 장치의 X축 좌표 값을 지나친 위치의 라우팅 장치(즉, 위치 좌표 (6, 0))까지 진행된 후에야 Y축 상으로 진행되어 최종적으로 경로(도 6에서는 'path 4'로 도시함)를 설정할 수 있다. 즉, 최단 거리 경로 내에서 경로가 설정되는 본 발명의 일 실시예에 따른 적응적 라우팅 방식에 비해, 다른 라우팅 방식에서는 탐색된 경로의 거리가 매우 비효율적인 것을 알 수 있다.In contrast, when only XY routing is applied without rollback processing, as shown in FIG. 6, the routing packets transmitted from the source routing apparatus (i.e., the position coordinates (1, 0)) are sequentially transmitted to the routing apparatuses on the X axis The path setting packet is advanced to the routing device (i.e., the position coordinates (6, 0)) at a position where the X-axis coordinate value of the destination routing device passes the Y-axis, path 4 '). That is, compared to the adaptive routing scheme according to the embodiment of the present invention, in which the path is set in the shortest path, it can be seen that the distances of the routes detected in other routing schemes are very inefficient.
한편, 경로 설정 처리 모듈(212)은 상기 도 6에서 설명한 바와 같이, 이미 경유한 경로에 대해 불필요한 반복적 재탐색을 방지하기 위하여, 롤백 경로 설정 패킷에 저장된 롤백 위치 정보(즉, 최초 롤백된 위치 정보)를 이용하여 '중복 경로 제외 처리' 절차를 수행한다. 본 발명의 일 실시예에서는, 경로 설정 패킷의 제 4 필드(P14)에 롤백을 시작한 라우팅 장치의 Y축 좌표 값(즉, 'Y-value')이 저장된 것을 나타내었다.6, in order to prevent an unnecessary repetitive re-search for a path that has already passed, the path setting
예를 들어, 도 7은 본 발명의 일 실시예에서 발생될 수 있는 중복 경로 탐색 과정의 일례를 나타낸 도면이다.For example, FIG. 7 illustrates an example of a redundant path search process that may occur in an embodiment of the present invention.
도 7에서는, 출발지 라우팅 장치(P710)로부터 목적지 라우팅 장치(P720)로의 경로 상에 이미 사용중인 경로(path 1)가 존재하는 것을 나타내었다. 이때, 경로 설정 패킷은 출발지 라우팅 장치(P710)로부터 목적지 라우팅 장치(P720)의 X축 좌표와 동일한 X축 좌표를 갖는 제 1 라우팅 장치(P730)까지 X축 상에서 라우팅된다. 그런 후, 제 1 라우팅 장치(P730)로부터 목적지 라우팅 장치(P720)를 향해 Y축 상에서 경로 설정 패킷이 라우팅된다. 그런데, 도 7에서와 같이 제 1 라우팅 장치(P730)로부터 라우팅되던 경로 설정 패킷은, 이미 사용중인 경로(path 1) 상에 위치하는 제 3 내지 제 5 라우팅 장치(P750 내지 P770)에 의하여, 제 2 라우팅 장치(P740)에서 블로킹된다. 이에 따라, 제 2 라우팅 장치(P740)는 출발지 라우팅 장치(P710) 방향의 이전 라우팅 장치(P780)로 롤백 패킷을 롤백시킨다.7 shows that a path (path 1) already in use exists on the route from the source routing apparatus P710 to the destination routing apparatus P720. At this time, the routing packet is routed on the X-axis from the source routing apparatus P710 to the first routing apparatus P730 having the same X-axis coordinate as the X-axis coordinate of the destination routing apparatus P720. Routing packets are then routed on the Y-axis from the first routing device P730 towards the destination routing device P720. 7, the routing configuration packet that has been routed from the first routing device P730 is transmitted by the third to fifth routing devices P750 to P770 located on the already used path (path 1) 2 < / RTI > routing device P740. Thus, the second routing device P740 rolls back the rollback packet to the previous routing device P780 in the direction of the originating routing device P710.
특히, 출발지 라우팅 장치(P710)로부터 제 2 라우팅 장치(P740)까지 제 1 경로(도 7에서는 '①'로 도시함)를 통해 경로 설정 패킷이 전송된 이후, 제 2 내지 제4 경로(도 7에서는 '② 내지④'로 도시함)와 같이 Y축 상에서 이미 경유한 라우팅 장치를 다시 진행 방향으로 탐색하는 롤백 처리가 발생될 수 있다.Particularly, after the route setting packet is transmitted from the source routing apparatus P710 to the second routing apparatus P740 via the first route (indicated by '1' in FIG. 7), the second to fourth routes , A rollback process may be generated in which the routing device, which has already passed through on the Y axis, is searched again in the forward direction, as shown in (2) to (4).
이와 같은 불필요한 중복 경로 탐색을 방지하기 위하여, 본 발명의 일 실시예에 따른 경로 설정 처리 모듈(212)은, 상기 도 4에서 설명한 '경로 설정 진행 방향 결정 처리'를 수행하기에 앞서, 하기 도 8에서와 같은 '중복 경로 제외 처리'를 수행하는 적응적 라우팅 절차를 수행한다.In order to prevent such unnecessary duplicate route search, the route
도 8은 본 발명의 일 실시예에 따른 적응적 라우팅 방식에서 중복 경로를 제외하는 절차를 설명하기 위한 순서도이다.8 is a flowchart illustrating a procedure for excluding a redundant path in the adaptive routing scheme according to an embodiment of the present invention.
참고로, 본 발명의 일 실시예에 따른 '중복 경로 제외 처리'는 도 8에서와 같이 상기 도 4의 'X축 위치 비교 처리 단계'(S430) 및 'Y축 위치 비교 처리 단계'(S440) 이전에 수행되는 것으로서, 도 8에서는 상기 도 4에서와 동일한 동작을 수행하는 단계에 대해서는 상기 도 4에서와 같은 도면 부호를 사용하였다.4, the 'X-axis position comparison processing step' (S430) and the 'Y-axis position comparison processing step' (S440) of FIG. 4 are performed in the same manner as in FIG. In FIG. 8, the same reference numerals as in FIG. 4 are used for the same steps as those in FIG.
먼저, 상기 도 4의 단계 (S420)에서, 현재 입력된 경로 설정 패킷이 롤백 경로 설정 패킷인 것으로 판단되면, 상기 도 4의 단계 (S440)으로 진행하여 현재 라우팅 장치에 대한 Y축 위치 비교 처리 단계(S440)을 수행한다.If it is determined in step S420 of FIG. 4 that the currently input route setting packet is a rollback route setting packet, the process proceeds to step S440 in FIG. 4 to perform a Y-axis position comparison process for the current routing device (S440).
반면, 상기 도 4의 단계 (S420)에서, 현재 입력된 경로 설정 패킷이 롤백 경로 설정 패킷이 아닌 것(즉, 노멀 경로 설정 패킷인 것)으로 판단되면, 현재 라우팅 장치의 Y축 좌표 값이 목적지 라우팅 장치 및 롤백이 시작된 라우팅 장치(예를 들어, 도 7의 제 2 라우팅 장치(P740))의 Y축 좌표 값보다 큰 값인지를 판단한다(S421).On the other hand, if it is determined in step S420 of FIG. 4 that the currently input route setting packet is not a rollback route setting packet (i.e., a normal route setting packet), the Y- It is determined whether the value is larger than the Y-axis coordinate value of the routing device and the routing device (e.g., the second routing device P740 in FIG. 7) in which the rollback has been started (S421).
이때, 경로 설정 처리 모듈(212)은 노멀 경로 설정 패킷의 제 4 필드(P14)에 저장된 롤백 위치 정보(즉, 'Y-value')를 확인하여 해당 경로 설정 패킷의 롤백이 처음 시작된 라우팅 장치의 Y축 좌표 값을 추출할 수 있다.At this time, the path setting
상기 단계 (S421)의 판단 결과, 현재 라우팅 장치의 Y축 좌표 값이 목적지 라우팅 장치 및 롤백이 시작된 라우팅 장치의 Y축 좌표 값보다 큰 값인 경우, 상기 도 4의 단계 (S440)으로 진행하여 현재 라우팅 장치에 대한 Y축 위치 비교 처리 단계(S440)을 수행한다.If it is determined in step S421 that the Y-axis coordinate value of the current routing device is larger than the Y-axis coordinate value of the destination routing device and the routing device that started the rollback, the process proceeds to step S440 of FIG. 4, And performs a Y-axis position comparison processing step S440 for the apparatus.
반면, 단계 (S421)의 판단 결과, 현재 라우팅 장치의 Y축 좌표 값이 목적지 라우팅 장치 및 롤백이 시작된 라우팅 장치의 Y축 좌표 값 중 적어도 하나보다 작은 값인 경우, 현재 라우팅 장치의 Y축 좌표 값이 목적지 라우팅 장치 및 롤백이 시작된 라우팅 장치의 Y축 좌표 값보다 작은 값인지를 판단한다(S422).On the other hand, if it is determined in step S421 that the Y-axis coordinate value of the current routing apparatus is smaller than at least one of the Y-axis coordinate values of the destination routing apparatus and the routing apparatus in which the rollback is started, Axis coordinate value of the destination routing apparatus and the routing apparatus in which the rollback is started (S422).
상기 단계 (S422)의 판단 결과, 현재 라우팅 장치의 Y축 좌표 값이 목적지 라우팅 장치 및 롤백이 시작된 라우팅 장치의 Y축 좌표 값보다 작은 값인 경우, 상기 도 4의 단계 (S440)으로 진행하여 현재 라우팅 장치에 대한 Y축 위치 비교 처리 단계(S440)을 수행한다.If it is determined in step S422 that the Y-axis coordinate value of the current routing device is smaller than the Y-axis coordinate value of the destination routing device and the routing device in which the rollback has been started, the process proceeds to step S440 of FIG. And performs a Y-axis position comparison processing step S440 for the apparatus.
반면, 단계 (S422)의 판단 결과, 현재 라우팅 장치의 Y축 좌표 값이 목적지 라우팅 장치 및 롤백이 시작된 라우팅 장치의 Y축 좌표 값 중 적어도 하나보다 큰 값인 경우, 상기 도 4의 단계 (S430)으로 진행하여 현재 라우팅 장치에 대한 X축 위치 비교 처리 단계(S430)를 수행한다.On the other hand, if it is determined in step S422 that the Y-axis coordinate value of the current routing apparatus is greater than at least one of the Y-axis coordinate values of the destination routing apparatus and the routing apparatus in which the rollback has been started, And performs an X-axis position comparison processing step S430 for the current routing apparatus.
즉, 경로 설정 패킷에 대한 우회 경로 탐색 시, 해당 경로 설정 패킷에 대한 롤백이 시작된 라우팅 장치가 현재 라우팅 장치보다 Y축 상에서 목적지 라우팅 장치에 근접한 경우 상기 도 4의 단계 (S440)을 수행하여 Y축 상에서의 진행 경로를 탐색한다. 그 외의 경우, 상기 도 4의 단계 (S430)을 수행하여 경로 설정 패킷에 대한 X축 상에서의 진행 경로를 탐색한다.That is, when the routing device for which the rollback of the route setting packet is started is closer to the destination routing device on the Y axis than the current routing device at the time of searching for the bypass route to the route setting packet, the step S440 of FIG. Search for the path of travel on the map. Otherwise, the step S430 of FIG. 4 is performed to search for a path on the X axis for the path setting packet.
다시 도 2로 돌아가서, 롤백 처리 모듈(213)은 패킷 분배 모듈(211)로부터 롤백 패킷을 수신하거나, 경로 설정 처리 모듈(212)로부터 롤백시킬 경로 설정 패킷을 수신한다.2, the
그리고, 롤백 처리 모듈(213)은 패킷 분배 모듈(211)로부터 수신된 롤백 패킷은 그대로 이전 라우팅 장치로 전달한다. 참고로, 롤백 패킷이 그대도 전달되는 이전 라우팅 장치는, 출발지 라우팅 장치로부터 전송된 경로 설정 패킷이 경유한 라우팅 장치 중 현재 라우팅 장치보다 출발지 라우팅 장치에 근접한 인접 라우팅 장치를 의미한다.The
또한, 롤백 처리 모듈(213)은 경로 설정 처리 모듈(212)로부터 수신된 롤백시킬 경로 설정 패킷을 롤백 패킷으로 변경하여, 해당 경로 설정 패킷이 입력되었던 이전 라우팅 장치로 롤백시킨다.Further, the
캔슬 처리 모듈(214)은 경로 설정 처리 모듈(212)로부터 취소시킬 경로 설정 패킷을 수신한다.The cancel processing module 214 receives the path setting packet to be canceled from the path setting
이때, 캔슬 처리 모듈(214)은 경로 설정 처리 모듈(212)이 결정한 다음 라우팅 장치가 목적지 라우팅 장치이되, 목적지 라우팅 장치와 매칭된 PE(100)의 상태가 사용 불가능한 상태인 경우, 해당 경로 설정 패킷에 대해 직전까지 설정된 경로 상의 라우팅 장치들을 경유하여 출발지 라우팅 장치까지 도착하는 캔슬 패킷을 전송한다.At this time, if the next routing device determined by the path setting
참고로, 캔슬 패킷 또는 롤백 패킷을 수신한 출발지 라우팅 장치는 안정적인 경로 재설정을 위하여, 기설정된 지연 시간이 경과한 후 경로 설정 패킷을 재전송한다. 이는, 하기 데이터 전송부(220)의 동작 설명 시 상세히 설명하도록 한다.For reference, the source routing apparatus that received the cancel packet or the rollback packet retransmits the routing packet after a predetermined delay time elapses for stable route resetting. The operation of the
패킷 전송 처리 모듈(215)은 하기 데이터 수신부(230)를 통해 다른 라우팅 장치로부터 경로 응답 패킷 또는 경로 해제 패킷을 수신한다.The packet
구체적으로, 패킷 전송 처리 모듈(215)은 경로 응답 패킷을 수신하면, 경로 응답 패킷의 제 2 필드(P12)를 확인하여 출발지 라우팅 장치의 주소를 추출하고, 현재 라우팅 장치가 출발지 라우팅 장치인 경우 및 응답이 경유하는 라우팅 장치인 경우를 구분한다.Specifically, when receiving the route response packet, the packet
그리고, 패킷 전송 처리 모듈(215)은 현재 라우팅 장치가 출발지 라우팅 장치인 경우 해당 경로 응답 패킷을 데이터 전송부(220)로 전달하고, 현재 라우팅 장치가 응답이 경유하는 라우팅 장치인 경우 해당 경로 응답 패킷을 출발지 라우팅 장치 방향으로 인접한 이전 라우팅 장치로 전달한다.When the current routing device is the source routing device, the packet
또한, 패킷 전송 처리 모듈(215)은 경로 해제 패킷을 수신하면, 경로 해제 패킷의 제 2 필드(P32)에 저장된 경로 해제 시간 정보를 추출하여 경로 해제 처리부(240)로 전달한다. 그리고, 패킷 전송 처리 모듈(215)은 경로 해제 처리부(240)에 의해 기설정된 값만큼 감소시킨 경로 해제 시간 정보를 포함하는 경로 해제을 다음 라우팅 장치로 전달한다.Upon receiving the route release packet, the packet
이때, 패킷 전송 처리 모듈(215)은 수신된 경로 해제 패킷에 저장되었던 원래 경로 해제 시간 정보를 상기 지연 시간에 기초하여 감소시킨 값을 경로 해제 패킷의 제 2 필드(P32)에 갱신 저장한 후, 해당 경로 해제 패킷을 전달한다.At this time, the packet
한편, 도 2에서와 같이, 데이터 전송부(220)는 경로 설정 지연 모듈(221), 데이터 전송 모듈(222) 및 경로 해제 설정 모듈(223)을 포함한다.2, the
경로 설정 지연 모듈(221)은 현재 라우팅 장치가 출발지 라우팅 장치로서 캔슬 패킷 또는 롤백 패킷을 수신하면, 기설정된 지연 시간만큼 대기한 이후에 경로 설정을 재시도한다.The path setting
예를 들어, 도 9는 본 발명의 일 실시예에 따른 경로 설정 지연 방식을 설명하기 위한 경로 설정 동시 발생 상태의 일례를 나타낸 도면이다.For example, FIG. 9 is a diagram illustrating an example of a route setting simultaneous occurrence state for explaining a route setting delay method according to an embodiment of the present invention.
도 9에서와 같이, HONoC 상에 위치 좌표 (5, 3)에서 위치 좌표(6, 5)로 데이터가 전송 중인 상태에서, 위치 좌표 (3, 3)에서 위치 좌표 (7, 3)으로의 경로 설정 시도(이하, '제 1 경로 설정 시도'라고 지칭함)와, 위치 좌표 (1, 3)에서 위치 좌표 (5, 3)로의 경로 설정 시도(이하, '제 2 경로 설정 시도'라고 지칭함)가 동시에 발생할 수 있다.The path from the position coordinates 3 and 3 to the position coordinates 7 and 3 in the state where data is being transferred from the position coordinates 5 and 3 to the position coordinates 6 and 5 on the HONoC as shown in FIG. (Hereinafter, referred to as a 'first path setting attempt') and a path setting attempt (hereinafter referred to as a 'second path setting attempt') from the position coordinates 1 and 3 to the position coordinates 5 and 3 Can occur at the same time.
이와 같은 경우, 제 2경로 설정 시도에 따른 경로에서는 목적지의 위치 좌표 (5, 3)가 이미 사용 중인 상태이므로 실제적으로 데이터 통신이 발생할 수 없다. 그럼에도 불구하고, 두 경로 설정 시도가 동시에 발생될 경우, 제 1 경로 설정 시도에 의한 경로 설정 또한 불가능하여 병렬 전송 시 문제가 발생될 수 있다.In this case, since the coordinates (5, 3) of the destination are already in use in the route according to the second route setting attempt, data communication can not actually occur. Nevertheless, if both route setting attempts occur at the same time, it is impossible to set the route by the first route setting attempt, which may cause a problem in parallel transmission.
이에 따라, 본 발명의 일 실시예에 따른 각 라우팅 장치(200)들은 HONoC 상에서의 해당 라우팅 장치(200)의 위치에 기초하여 다른 라우팅 장치(200)와는 차등적인 지연 시간을 설정하고, 설정된 지연 시간이 경과한 이후 경로 설정을 시도할 수 있다.Accordingly, each
구체적으로, 경로 설정 지연 모듈(221)은, 캔슬 처리 모듈(214)로부터 캔슬 패킷을 수신하거나, 현재 라우팅 장치가 출발지 라우팅 장치인 경우에 롤백 처리 모듈(214)로부터 롤백 패킷을 수신하면, 경로 설정 재시도에 대한 지연 시간을 산출한다.Specifically, the path setting
이때, 하기 수학식 1을 이용하여 경로 설정 재시도에 대한 지연 시간을 산출할 수 있다.At this time, the delay time for the route setting retry can be calculated using the following equation (1).
<수학식 1>&Quot; (1) "
상기 수학식 1에서, Saps는 라우팅 장치(200)의 전기적 라우터가 컨트롤 패킷을 출력하는 복수의 포트를 스위칭하는데 필요한 평균 사이클이며, Xmax 및 Ymax는 네트워크 토폴로지의 각 축(즉, X/Y 축)의 사이즈(즉, 배열된 라우팅 장치의 축 별 전체 개수)를 의미한다. 그리고, Xbound 및 Ybound는, 현재 라우팅 장치로부터 패킷이 전송될 방향으로 가장 먼 라우팅 장치의 위치와 현재 라우팅 장치의 위치 간의 차를 의미한다.In Equation (1), S aps is an average cycle required for switching the plurality of ports from which the electrical router of the
구체적으로, 도 10은 본 발명의 일 실시예에 따른 경로 설정 재시도에 적용될 지연 시간의 산출 방식을 설명하기 위한 도면이다.10 is a view for explaining a method of calculating a delay time to be applied to a route setting retry according to an embodiment of the present invention.
하기 도 10의 (a)에서는 경로 설정을 시도할 방향 별 Xbound 및 Ybound의 값을 나타내었으며, 도 10의 (b)에서는 각 진행 방향(direction)이 HONoC 상에서 의미하는 방향을 표시하였다.In FIG. 10A, the values of X bound and Y bound are shown for directions in which the route is set. In FIG. 10B, directions in which HONoC directions are indicated are indicated.
결과적으로, 현재 라우팅 장치와 동일한 방향(예를 들어, 도 10의 'E' 방향)으로 경로 설정을 시도하는 다른 라우팅 장치가 현재 라우팅 장치보다 X축 상에서 좌측(즉, 도 10의 'W' 방향)에 위치한 경우 보다, 상기 다른 라우팅 장치가 현재 라우팅 장치보다 X 축 상의 우측(즉, 도 10의 'E' 방향)에 위치한 경우에, 상기 수학식 1에 의한 지연 시간(Cdelay)의 값이 크게 설정된다.As a result, another routing apparatus attempting routing in the same direction as the current routing apparatus (for example, the 'E' direction in FIG. 10) is located on the left side of the current routing apparatus ), The value of the delay time (C delay ) according to Equation (1) is smaller than the value of the delay time (C delay ) when the other routing apparatus is located on the right side of the current routing apparatus on the X axis .
이와 같이 함으로써, 동일 방향 상에서 뒤쪽에서 경로 설정을 시도하는 라우팅 장치가 앞쪽의 라우팅 장치보다 먼저 경로 설정을 재시도하도록 하여, HONoC 상에서 효율적인 병렬 전송이 가능하다.By doing so, the routing apparatus attempting to set the route in the backward direction in the same direction retries the route setting prior to the routing apparatus on the front side, thereby enabling efficient parallel transmission on the HONoC.
다시 도 2로 돌아와서, 데이터 전송 모듈(222)은 패킷 전송 처리 모듈(215)을 통해 경로 응답 패킷이 수신되는 경우, 목적지 라우팅 장치와의 경로 설정이 성공적으로 완료된 것으로 판단하고, 매칭 연결된 PE(100)가 광학적 링크(300)를 통해 목적한 데이터를 전송하도록 제어한다.2, when the path response packet is received through the packet
참고로, 데이터 전송 모듈(222)이 경로 응답 패킷을 수신한 후 PE(100)가 데이터를 전송하도록 제어하는 경우는, 현재 라우팅 장치가 출발지 라우팅 장치인 경우이다.For reference, when the
한편, 광학적 경로를 통해 PE(100)의 데이터 전송이 완료되면, 목적지까지 설정된 경로 상의 라우팅 장치(200)들로 경로 해제 패킷을 전송하여 설정되었던 경로를 해제시켜야 한다. 만약, PE(100)가 데이터 전송을 완료한 이후 경로 해제 패킷을 전송할 경우, 해당 경로에 대한 광학적 경로가 실제적으로 사용되지 않음에도 경로가 해제되는 동안 경로가 점유되어 있게 된다.On the other hand, when the data transmission of the
이에 따라, 본 발명의 일 실시예에 따른 경로 해제 설정 모듈(223)은 매칭 연결된 PE(100)가 광학적 링크(300)를 통해 기설정된 경로로 목적한 데이터의 전송을 시작하면, 전기적 링크(400)를 통해 동일 경로로 경로 해제 패킷을 전송한다. 이때, 경로 해제 설정 모듈(223)은 목적 데이터의 전송 시작과 동시에 또는 이후에 경로 해제 패킷을 전송할 수 있다.Accordingly, the path
이때, 경로 해제 설정 모듈(223)은 하기 수학식 2를 이용하여 경로 해제 시간을 산출하고, 산출된 경로 해제 시간의 정보를 포함하는 경로 해제 패킷을 전기적 링크(400)를 통해 다른 라우팅 장치로 전송한다.At this time, the path
<수학식 2>&Quot; (2) "
상기 수학식 2에서, 경로 해제 시간인 Ctx는 광학적 경로를 통해 데이터를 전송하는데 걸리는 클록 사이클(clock cycle)이다. 그리고, Psize는 전송한 패킷의 크기(packet size)이고, felec는 전기적 링크(400)에 대해 기설정된 주파수(frequency)이며, Boptical는 광학적 링크(300)에 대해 기설정된 대역폭(bandwidth)이다.In Equation (2), the path release time Ctx is a clock cycle for transferring data through the optical path. And, P size is the size of a transmission packet (packet size), and, f elec is the frequency (frequency) is set based on the electric link (400), B optical bandwidth (bandwidth) predetermined for the
이때, 경로 해제 설정 모듈(223)은 경로 해제 패킷의 제 2 필드(P32)(즉, TTL field)에 경로 해제 시간의 값을 저장하여 전송한다. 이러한, 경로 해제 패킷은 경유하는 각 라우팅 장치마다 패킷 전송 처리 모듈(215)로 전송된다.At this time, the path
한편, 전송하는 데이터의 양이 많아지면 경로 해제 시간(Ctx)이 커지며, 이에 따라 경로 해제 패킷 내의 TTL filed에 경로 해제 시간을 표시하는데 사용되는 비트(bit)가 늘어날 수 있다. 이는, 전기적 링크(400)에 대한 사용량(예를 들어, 'bus size')을 증가시킬 수 있으므로, TTL field의 비트 수를 한정시킬 필요가 있다.On the other hand, as the amount of data to be transmitted increases, the path clearing time ( Ctx ) increases, and accordingly, the bit used for indicating the path clearing time in the TTL filed in the path releasing packet may increase. This may increase the amount of usage (e.g., 'bus size') for the
이를 위해, 경로 해제 설정 모듈(223)은 하기 수학식 3과 같이, TTL field가 가질 수 있는 최대 값을 Cmax로 정의하고, Ctx가 Cmax보다 클 경우 출발지 라우팅 장치(즉, 경로 해제 설정 모듈(223)) 내에서 Ctx를 감소시키다가 Ctx가 Cmax가 될 때 경로 해제 패킷을 전송한다.To this end, the path
<수학식 3>&Quot; (3) "
상기 수학식 3에서, Cmax는 경로 해제 패킷이 전기적 경로 상으로 이동하는데 걸리는 총 클록 사이클(clock cycle)이고, S aps 는 각 라우팅 장치(200)의 전기적 라우터에서 복수의 방향 별 패킷 출력 포트를 스위칭하는데 필요한 사이클(cycle) 이다.In Equation (3), C max is a total clock cycle for the path release packet to travel on the electrical path, and S aps represents a plurality of directional packet output ports at the electrical router of each
이에 따라, 경로 해제 설정 모듈(223)은 Ctx가 Cmax보다 작은 경우, 데이터 전송 모듈(221)의 데이터 전송 시작 시에 TTL field에 Ctx값이 포함된 경로 해제 패킷을 전송한다. 반면에, 경로 해제 설정 모듈(223)은 Ctx가 Cmax보다 큰 경우, 데이터 전송 모듈(221)의 데이터 전송 시작 이후에 Ctx를 점차 감소시키고, 감소된 Ctx가 Cmax와 같아진 시점에 TTL field에 Cmax 값이 포함된 경로 해제 패킷을 전송한다.Accordingly, when C tx is smaller than C max , the path
데이터 수신부(230)는 설정된 광학적 경로를 통해 출발지 PE(100)로부터 전송된 데이터를 수신하고, 수신된 데이터를 자신과 매칭 연결된 PE(100)로 전달한다. 이때, 데이터 수신부(240)는 현재 라우팅 장치가 목적지 라우팅 장치인 경우, 상기 수신된 데이터를 매칭된 PE(100)로 전달한다.The
경로 해제 처리부(240)는 패킷 전송 처리 모듈(215)로부터 경로 해제 시간 정보를 수신하고, 경로 해제 시간 정보에 따른 대기 시간이 경과하면 자동으로 현재 라우팅 장치의 경로 설정 상태를 해제한다.The path
이때, 경로 해제 처리부(240)는 해당 경로 해제 패킷이 도착한 시각의 TTL field 값을 저장하고, 저장된 TTL field 값을 매 클록(clock)마다 감소시킨다.At this time, the path
또한, 경로 해제 처리부(240)는 다음 라우팅 장치로 전달할 경로 해제 패킷에 포함시킬 경로 해제 시간을 기설정된 값만큼 감소시켜, 패킷 전송 처리 모듈(215)로 전달한다. 이에 따라, 목적지 라우팅 장치에 가까워질수록 라우팅 장치에 저장되는 TTL field 값이 점점 작아진다. 이처럼, 각 라우팅 장치에 저장되는 TTL field 값은 서로 상이한 값으로서, 결과적으로, 경로 상의 라우팅 장치들은 같은 시각에 경로 해제 시간이 '0'이 되고, 그와 동시에 해당 광학적 경로는 해제된다.Further, the path
만약, 경로 해제 패킷에 저장된 경로 해제 시간이 목적지 라우팅 장치까지 전송되지 않은 상태에서 '0'이 된 경우, 해당 경로 해제 패킷을 수신한 라우팅 장치는 경로 해제 패킷을 수신한 즉시 전송 경로를 해제시킨다.If the path release time stored in the path release packet is '0' without being transmitted to the destination routing apparatus, the routing apparatus that has received the path release packet releases the path immediately after receiving the path release packet.
이하, 도 11을 참조하여 본 발명의 일 실시예에 따른 라우팅 장치(200)를 통한 적응적 라우팅 방법을 설명하도록 한다.Hereinafter, an adaptive routing method through the
도 11은 본 발명의 일 실시예에 따른 적응적 라우팅 방법을 설명하기 위한 순서도이다.11 is a flowchart illustrating an adaptive routing method according to an embodiment of the present invention.
도 11에서와 같이, 전기적 링크(400)를 통해서 다른 라우팅 장치로부터 컨트롤 패킷을 수신한다(S110).As shown in FIG. 11, the control packet is received from another routing apparatus through the electrical link 400 (S110).
그런 후, 수신된 컨트롤 패킷의 유형을 판단한다(S120).Then, the type of the received control packet is determined (S120).
상기 유형을 판단한 결과 경로 설정 패킷인 경우, 상기 경로 설정 패킷에 기초하여 목적지를 향한 방향으로 인접한 다음 라우팅 장치를 결정한다(S130).If it is determined as a result of the type determination, the next routing device adjacent to the destination is determined based on the routing packet (S130).
이때, 상기 다음 라우팅 장치가 사용 불가능한 상태인 경우 상기 경로 설정 패킷에 대한 롤백 처리를 결정하되, 반면에 상기 다음 라우팅 장치가 사용 가능한 상태인 경우 상기 경로 설정 패킷을 상기 다음 라우팅 장치로 전송한다.Determining a rollback process for the routing packet if the next routing device is unavailable, and forwarding the routing packet to the next routing device if the next routing device is available.
그런 다음, 상기 다음 라우팅 장치의 사용 상태를 확인하여, 경로 설정 패킷에 대한 롤백(rollback) 처리 여부를 결정한다(S140).Then, the use state of the next routing apparatus is checked, and it is determined whether a rollback process is performed on the routing packet (S140).
이때, 상기 다음 라우팅 장치는 기설정된 출발지로부터 목적지까지의 복수의 최단 거리 경로 중 어느 하나의 최단 거리 경로 상에서 결정된다.At this time, the next routing device is determined on the shortest path of any of the plurality of shortest path from the predetermined start point to the destination.
그리고, 상기 이전 라우팅 장치로부터 상기 컨트롤 패킷이 수신된 방향이 기설정된 우선 경로 설정 진행 방향(즉, 본 발명의 일 실시예에서는 'X축' 방향)이되 상기 컨트롤 패킷이 롤백된 상기 경로 설정 패킷인 경우, 우선 경로 진행 방향을 제외한 다른 방향(즉, Y축 방향)으로 인접한 라우팅 장치를 상기 다음 라우팅 장치로 결정한다.If the direction in which the control packet is received from the previous routing apparatus is the predetermined path setting direction (i.e., the 'X axis' direction in the embodiment of the present invention) , The routing apparatus that is adjacent in the other direction (i.e., the Y-axis direction) except for the path advance direction is determined as the next routing apparatus.
또한, 롤백된 경로 설정 패킷이 경유하지 않은 우회 경로 상에서 상기 다음 라우팅 장치를 결정하는 경우, 상기 경로 설정 패킷에 저장된 롤백 위치 정보 및 목적지 위치 정보에 기초하여, 현재 라우팅 장치보다 롤백 처리가 시작된 라우팅 장치가 목적지에 근접한지 여부를 판단한다. 그런 후, 롤백 처리가 시작된 라우팅 장치가 현재 라우팅 장치보다 목적지에 근접한 경우, 우선 경로 설정 진행 방향을 제외한 다른 축 방향으로 인접한 라우팅 장치를 다음 라우팅 장치로 결정한다.When the next routing device is determined on the bypass path not passed through the path setting packet that has been rolled back, the routing device that has started the rollback process than the current routing device, based on the rollback location information and the destination location information stored in the routing packet, Is close to the destination. Then, when the routing apparatus in which the rollback processing is started is closer to the destination than the current routing apparatus, the routing apparatus adjacent to the other axial direction except for the route setting advance direction is determined as the next routing apparatus.
그런 다음, 상기 경로 설정 패킷에 대한 롤백 처리가 결정되면, 경로 설정 패킷이 입력된 이전 라우팅 장치로 해당 경로 설정 패킷을 롤백시킨다(S150).Then, if the rollback process for the route setting packet is determined, the route setting packet is rolled back to the previous routing device to which the route setting packet is inputted (S150).
참고로, 상기 단계 (S150)에서 롤백된 경로 설정 패킷은 상기 이전 라우팅 장치에서 재결정된 우회 경로 상의 다른 라우팅 장치로 전송된다.For reference, the path setting packet rolled back in step S150 is transmitted to another routing apparatus on the bypass path redetermined in the previous routing apparatus.
한편, 다른 라우팅 장치로부터 경로 설정 패킷을 수신한 경우, 경로 설정 패킷에 기초하여 기설정된 목적지와 현재 라우팅 장치의 위치를 비교하고, 현재 라우팅 장치가 목적지인 것으로 판단되면, 연결된 PE(100)의 사용 상태를 확인한다. 그런 후, PE(100)가 사용 불가능한 상태인 경우, 기설정된 출발지로 상기 경로 설정 패킷에 대한 경로 설정을 취소하는 캔슬 패킷을 전기적 링크를 통해 전송할 수 있다.On the other hand, when receiving the routing packet from another routing device, it compares the location of the current routing device with the predetermined destination based on the routing packet. If it is determined that the current routing device is the destination, Check the status. Thereafter, when the
또한, 다른 라우팅 장치로부터 캔슬 패킷을 수신한 경우, 기설정된 지연 시간 산출 조건에 따라 지연 시간을 산출하고, 산출된 지연 시간이 경과한 후 상기 전기적 링크를 통해 사전에 경로 설정이 취소된 경로 설정 패킷을 재전송할 수 있다.When a cancel packet is received from another routing apparatus, a delay time is calculated in accordance with a predetermined delay time calculation condition, and after the calculated delay time elapses, a route setting packet Can be retransmitted.
또한, 상기 단계를 통해 기설정된 출발지와 상기 목적지 간에 경로 설정이 완료되면, 출발지의 PE가 광학적 링크를 통한 데이터의 전송을 시작하고, 출발지의 라우팅 장치가 설정이 완료된 경로 상의 전기적 링크를 통해 경로 해제 시간 정보를 포함하는 경로 해제 패킷을 목적지까지 전송한다. 이때, 경로 해제 시간 정보에 따른 경로 해제 시간은 목적지에 가까워질수록 감소된다.In addition, when the path setting is completed between the pre-set start point and the destination through the above step, the PE at the start point starts to transmit data through the optical link, and the routing device at the start point completes the path disconnection And transmits a path release packet including time information to a destination. At this time, the path cancellation time according to the path cancellation time information decreases as it approaches the destination.
그리고, 경로 해제 패킷을 목적지까지 전송할 시에, 상기 데이터의 크기, 상기 광학적 링크의 대역폭 및 상기 전기적 링크의 주파수에 기초하여 상기 경로 해제 시간을 산출하고, 산출된 경로 해제 시간이 기설정된 경로 해제 시간의 최대 값보다 큰 경우, 데이터의 전송이 시작된 후 상기 산출된 경로 해제 시간을 점차 감소시키고, 감소시킨 경로 해제 시간이 경로 해제 시간의 최대 값과 같아지면, 경로 해제 시간의 최대 값을 포함하는 상기 경로 해제 패킷을 상기 목적지까지 전송할 수 있다.When the path release packet is transmitted to the destination, the path release time is calculated based on the size of the data, the bandwidth of the optical link, and the frequency of the electrical link, and the calculated path- If the calculated path unblocking time is equal to the maximum value of the path unblocking time, if the calculated path unblocking time is greater than the maximum value of the path unblocking time, And can transmit a path release packet to the destination.
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.One embodiment of the present invention may also be embodied in the form of a recording medium including instructions executable by a computer, such as program modules, being executed by a computer. Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. In addition, the computer-readable medium may include both computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Communication media typically includes any information delivery media, including computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave, or other transport mechanism.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.It will be understood by those skilled in the art that the foregoing description of the present invention is for illustrative purposes only and that those of ordinary skill in the art can readily understand that various changes and modifications may be made without departing from the spirit or essential characteristics of the present invention. will be. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is defined by the appended claims rather than the detailed description and all changes or modifications derived from the meaning and scope of the claims and their equivalents are to be construed as being included within the scope of the present invention do.
10: 하이브리드 광학 네트워크 온 칩 시스템
100: 처리 소자
200: 라우팅 장치
300: 광학적 경로
400: 전기적 경로10: Hybrid optical network on-chip system
100: processing element
200: routing device
300: Optical path
400: electrical path
Claims (20)
전기적 링크를 통해 경로 설정을 위한 컨트롤 패킷을 수신하고, 상기 컨트롤 패킷을 기설정된 유형에 따라 분배하여 출력하는 패킷 분배 모듈;
상기 패킷 분배 모듈로부터 출력된 상기 컨트롤 패킷 중 경로 설정 패킷을 수신하면, 기설정된 목적지를 향한 방향으로 인접한 다음 라우팅 장치를 결정하고, 상기 다음 라우팅 장치의 사용 상태에 따라 상기 경로 설정 패킷에 대한 롤백(rollback) 처리 여부를 결정하는 경로 설정 처리 모듈;
상기 경로 설정 처리 모듈에 의해 상기 경로 설정 패킷에 대한 롤백 처리가 결정되면, 상기 경로 설정 패킷이 입력된 이전 라우팅 장치로 상기 경로 설정 패킷을 롤백시키는 롤백 처리 모듈; 및
상기 목적지와 현재 라우팅 장치의 위치 비교를 통해 현재 라우팅 장치가 상기 목적지인 것으로 판단되면, 연결된 상기 PE의 사용 상태를 확인하고 상기 PE가 사용 불가능한 상태인 경우 기설정된 출발지로 상기 경로 설정 패킷에 의한 경로 설정을 취소하는 캔슬 패킷을 상기 전기적 링크를 통해 전송하는 캔슬 처리 모듈을 포함하고,
상기 이전 라우팅 장치로 롤백시킨 상기 경로 설정 패킷은, 상기 이전 라우팅 장치가 재결정한 우회 경로 상의 다른 라우팅 장치로 전송되는 적응적 라우팅 장치.1. A routing apparatus connected to a plurality of processing elements (PEs) in a hybrid optical network-on-chip (HONoC)
A packet distribution module for receiving a control packet for routing through an electrical link, distributing the control packet according to a predetermined type, and outputting the control packet;
And a control unit configured to determine a next routing apparatus adjacent to the predetermined destination in the direction of a predetermined destination when receiving the routing packet among the control packets output from the packet distribution module, a rollback process;
A rollback processing module that rolls back the routing packet to a previous routing device to which the routing packet is input if the rollback process for the routing packet is determined by the routing module; And
If the current routing device is determined to be the destination through comparison of the location of the current routing device and the current location of the routing device, checking the use state of the connected PE, if the PE is unavailable, And a cancel processing module for transmitting a cancel packet canceling the setting through the electric link,
Wherein the routing packet rolled back to the previous routing device is sent to another routing device on the bypass path redirected by the previous routing device.
상기 경로 설정 처리 모듈은,
상기 다음 라우팅 장치가 사용 불가능한 상태인 경우 상기 경로 설정 패킷에 대한 롤백 처리를 결정하고,
상기 다음 라우팅 장치가 사용 가능한 상태인 경우 상기 경로 설정 패킷을 상기 다음 라우팅 장치로 전송하는 적응적 라우팅 장치.The method according to claim 1,
Wherein the path setting processing module comprises:
Determining a rollback process for the routing packet if the next routing device is unavailable,
And sends the routing packet to the next routing device if the next routing device is available.
상기 경로 설정 처리 모듈은,
기설정된 출발지로부터 상기 목적지까지의 복수의 최단 거리 경로 중 어느 하나의 최단 거리 경로 상에서 상기 다음 라우팅 장치를 결정하는 적응적 라우팅 장치.The method according to claim 1,
Wherein the path setting processing module comprises:
And determines the next routing device on any shortest path among a plurality of shortest path from a predetermined origin to the destination.
상기 경로 설정 처리 모듈은,
상기 컨트롤 패킷을 입력받는 복수의 축(axis) 방향 중 일축 방향을 다른 축 방향들에 비해 우선적인 경로 설정 진행 방향으로 결정하되,
상기 우선적인 경로 설정 진행 방향으로부터 롤백된 상기 경로 설정 패킷을 수신하면, 상기 우선적인 경로 설정 진행 방향을 제외한 다른 축 방향으로 인접한 라우팅 장치를 상기 다음 라우팅 장치로 결정하는 적응적 라우팅 장치.The method according to claim 1,
Wherein the path setting processing module comprises:
Determining a one-axis direction of a plurality of axis directions for receiving the control packet as a preferential path setting progress direction relative to other axis directions,
And when the routing configuration packet is rolled back from the preferential path setting progress direction, determines the routing apparatus adjacent to the other axial direction excluding the preferential path setting progress direction as the next routing apparatus.
상기 경로 설정 처리 모듈은,
다른 라우팅 장치로부터 롤백된 상기 경로 설정 패킷이 경유하지 않은 우회 경로를 탐색하는 경우,
상기 경로 설정 패킷에 저장된 상기 경로 설정 패킷에 대한 롤백 처리가 시작된 라우팅 장치의 위치 정보 및 목적지 위치 정보에 기초하여, 현재 라우팅 장치보다 상기 롤백 처리가 시작된 라우팅 장치가 상기 목적지에 근접한지 여부를 판단하고,
상기 롤백 처리가 시작된 라우팅 장치가 상기 현재 라우팅 장치보다 상기 목적지에 근접한 경우, 상기 우선적인 경로 설정 진행 방향을 제외한 다른 축 방향으로 인접한 라우팅 장치를 상기 다음 라우팅 장치로 결정하는 적응적 라우팅 장치.5. The method of claim 4,
Wherein the path setting processing module comprises:
When searching for a bypass path not passed by the routing packet rolled back from another routing apparatus,
It is determined whether or not the routing apparatus in which the rollback process is started is closer to the destination than the current routing apparatus, based on the location information and the destination location information of the routing apparatus in which the rollback processing for the routing packet stored in the routing packet is started ,
And determines, as the next routing device, the other routing device in the other axial direction other than the preferential routing setting direction, when the routing device in which the rollback process is started is closer to the destination than the current routing device.
상기 패킷 분배 모듈로부터 출력된 상기 컨트롤 패킷 중 상기 캔슬 패킷을 수신하면 기설정된 지연 시간 산출 조건에 따라 지연 시간을 산출하고,
상기 지연 시간이 경과한 후 상기 전기적 링크를 통해 상기 경로 설정 패킷을 재전송하는 경로 설정 지연 모듈을 더 포함하는 적응적 라우팅 장치.The method according to claim 1,
When receiving the cancel packet among the control packets output from the packet distribution module, calculates a delay time according to a predetermined delay time calculation condition,
Further comprising: a routing delay module for retransmitting the routing packet over the electrical link after the delay time has elapsed.
상기 목적지와의 경로 설정이 완료된 후 현재 라우팅 장치와 연결된 상기 PE로부터 광학적 링크를 통한 데이터의 전송이 시작되면, 상기 전기적 링크를 통해 경로 해제 시간 정보를 포함하는 경로 해제 패킷을 상기 목적지까지의 경로 상에 위치한 다른 라우팅 장치로 전송하는 경로 해제 설정 모듈을 더 포함하되,
상기 경로 해제 시간 정보에 따른 경로 해제 시간은, 상기 목적지에 가까워질수록 감소되는 적응적 라우팅 장치.The method according to claim 1,
When the transmission of data through the optical link is started from the PE connected to the current routing device after the routing with the destination is completed, a path release packet including the path release time information through the electric link is transmitted to the destination To another routing device located in the routing module,
Wherein the path release time according to the path release time information is reduced as it approaches the destination.
상기 경로 해제 설정 모듈은,
상기 데이터의 크기, 상기 광학적 링크의 대역폭 및 상기 전기적 링크의 주파수에 기초하여 상기 경로 해제 시간을 산출하되,
상기 산출된 경로 해제 시간이 기설정된 경로 해제 시간의 최대 값보다 큰 경우, 상기 데이터의 전송이 시작된 후 상기 산출된 경로 해제 시간을 점차 감소시켜 상기 경로 해제 시간의 최대 값과 같아지면, 상기 경로 해제 시간의 최대 값을 포함하는 상기 경로 해제 패킷을 전송하는 적응적 라우팅 장치.9. The method of claim 8,
Wherein the path release setting module comprises:
Calculating the path-off time based on the size of the data, the bandwidth of the optical link, and the frequency of the electrical link,
If the computed path cancellation time is greater than the maximum value of the predetermined path cancellation time, if the computed path cancellation time is gradually decreased after the start of the data transmission and equal to the maximum value of the path cancellation time, And transmits the unacknowledg packet including a maximum value of time.
상기 패킷 분배 모듈로부터 출력된 상기 컨트롤 패킷 중 경로 해제 패킷을 수신하면,
상기 경로 해제 패킷이 수신된 시각에 상기 경로 해제 패킷에 포함된 경로 해제 시간 정보를 저장한 후 시간 경과에 따라 감소시켜, 경로 해제 시간 정보에 따른 시간이 경과하면 현재 설정된 경로를 해제시키는 경로 해제 처리부를 더 포함하는 적응적 라우팅 장치.The method according to claim 1,
Upon receipt of a routing packet among the control packets output from the packet distribution module,
A path release processing unit that stores path release time information included in the path release packet at a time point when the path release packet is received and decreases the path release time information according to a lapse of time, Further comprising an adaptive routing device.
(a) 전기적 링크를 통해 제 1 라우팅 장치로부터 컨트롤 패킷을 수신하는 단계;
(b) 상기 컨트롤 패킷의 유형을 판단하는 단계;
(c) 상기 유형을 판단한 결과 경로 설정 패킷인 경우, 상기 경로 설정 패킷에 기초하여 상기 제 1 라우팅 장치와 인접한 라우팅 장치 중 기설정된 목적지를 향한 방향의 제 2 라우팅 장치를 결정하는 단계;
(d) 상기 제 2 라우팅 장치의 사용 상태를 확인하여, 상기 사용 상태에 따라 상기 경로 설정 패킷에 대한 롤백(rollback) 처리 여부를 결정하는 단계; 및
(e) 상기 경로 설정 패킷에 대한 롤백 처리가 결정되면, 상기 제 1 라우팅 장치로 상기 경로 설정 패킷을 롤백 시키는 단계를 포함하고,
상기 롤백시킨 경로 설정 패킷은 상기 제 1 라우팅 장치에서 재결정된 우회 경로 상의 제 3 라우팅 장치로 전송되며,
상기 (b) 단계 이후에,
상기 유형을 판단한 결과 경로 설정 패킷인 경우, 상기 경로 설정 패킷에 기초하여 기설정된 목적지와 현재 라우팅 장치의 위치를 비교하는 단계;
상기 비교의 결과, 상기 현재 라우팅 장치가 상기 목적지인 것으로 판단되면, 연결된 PE의 사용 상태를 확인하는 단계; 및
상기 PE가 사용 불가능한 상태인 경우, 상기 경로 설정 패킷에 대한 경로 설정을 취소하는 캔슬 패킷을 상기 전기적 링크를 통해 기설정된 출발지로 전송하는 단계를 더 포함하는 적응적 라우팅 방법.1. An adaptive routing method through a routing device connected to a plurality of processing elements (PEs) in a hybrid optical network-on-chip (HONoC)
(a) receiving a control packet from a first routing device over an electrical link;
(b) determining the type of the control packet;
(c) determining a second routing device in a direction toward a predetermined destination among the routing devices adjacent to the first routing device based on the routing packet, when the determination result is the type of the routing device;
(d) checking the use state of the second routing apparatus and determining whether to perform a rollback process on the route setting packet according to the use state; And
(e) rolling back the routing packet to the first routing device if rollback processing for the routing packet is determined,
The rolled back routing packet is transmitted to the third routing device on the bypass route redirected from the first routing device,
After the step (b)
Comparing the location of the current routing device with a predetermined destination based on the routing packet if the type of the routing packet is determined to be a routing packet;
If it is determined that the current routing apparatus is the destination as a result of the comparison, checking the use state of the connected PE; And
And sending a cancel packet canceling the routing of the routing packet to the predetermined origin via the electrical link if the PE is unavailable.
상기 (d) 단계는,
상기 제 2 라우팅 장치가 사용 불가능한 상태인 경우 상기 경로 설정 패킷에 대한 롤백 처리를 결정하고,
상기 제 2 라우팅 장치가 사용 가능한 상태인 경우 상기 경로 설정 패킷을 상기 제 2 라우팅 장치로 전송하는 적응적 라우팅 방법.12. The method of claim 11,
The step (d)
Determining a rollback process for the routing packet if the second routing device is unavailable,
And if the second routing device is available, sending the routing packet to the second routing device.
상기 (c) 단계는,
기설정된 출발지로부터 상기 목적지까지의 복수의 최단 거리 경로 중 어느 하나의 최단 거리 경로 상에서 상기 제 2 라우팅 장치를 결정하는 적응적 라우팅 방법.12. The method of claim 11,
The step (c)
And determining the second routing device on any shortest path among a plurality of shortest path from a predetermined origin to the destination.
상기 (c) 단계는,
상기 컨트롤 패킷이 롤백된 상기 경로 설정 패킷인 경우,
상기 롤백된 경로 설정 패킷이 수신된 방향이 기설정된 우선 경로 설정 진행 방향이면, 상기 우선 경로 진행 방향을 제외한 다른 방향으로 인접한 라우팅 장치를 상기 제 2 라우팅 장치로 결정하며,
상기 우선 경로 설정 진행 방향은, 상기 컨트롤 패킷을 입력받는 복수의 축(axis) 방향 중 다른 축 방향들에 비해 우선적으로 경로 설정 진행 방향으로 설정되는 일축 방향인 적응적 라우팅 방법.12. The method of claim 11,
The step (c)
If the control packet is the path setting packet that has been rolled back,
Determines a routing apparatus that is adjacent in a direction other than the priority route traveling direction to be the second routing apparatus if the direction in which the rolled back routing packet is received is a predetermined priority route setting progress direction,
Wherein the priority route setting advance direction is a unidirectional direction in which the route setting direction is set preferentially in relation to the other axis directions among a plurality of axis directions in which the control packet is received.
상기 (c) 단계는,
다른 라우팅 장치로부터 롤백된 상기 경로 설정 패킷이 경유하지 않은 우회 경로 상에서 상기 제 2 라우팅 장치를 결정하는 경우,
상기 경로 설정 패킷에 저장된 상기 경로 설정 패킷에 대한 롤백 처리가 시작된 라우팅 장치의 위치 정보 및 목적지 위치 정보에 기초하여, 현재 라우팅 장치보다 상기 롤백 처리가 시작된 라우팅 장치가 상기 목적지에 근접한지 여부를 판단하고,
상기 롤백 처리가 시작된 라우팅 장치가 상기 현재 라우팅 장치보다 상기 목적지에 근접한 경우, 상기 우선 경로 설정 진행 방향을 제외한 다른 축 방향으로 인접한 라우팅 장치를 상기 제 2 라우팅 장치로 결정하는 적응적 라우팅 방법.15. The method of claim 14,
The step (c)
When the second routing apparatus is determined on the bypass path not passed by the routing packet rolled back from another routing apparatus,
It is determined whether or not the routing apparatus in which the rollback process is started is closer to the destination than the current routing apparatus, based on the location information and the destination location information of the routing apparatus in which the rollback processing for the routing packet stored in the routing packet is started ,
If the routing device in which the rollback process is started is closer to the destination than the current routing device, determines the other routing device in the other axial direction excluding the preferential path setting proceeding direction to be the second routing device.
상기 (b) 단계 이후에,
상기 유형을 판단한 결과 캔슬 패킷인 경우, 기설정된 지연 시간 산출 조건에 따라 지연 시간을 산출하는 단계; 및
상기 산출된 지연 시간이 경과한 후 상기 전기적 링크를 통해 사전에 경로 설정이 취소된 경로 설정 패킷을 재전송하는 단계를 더 포함하는 적응적 라우팅 방법.12. The method of claim 11,
After the step (b)
Calculating a delay time according to a predetermined delay time calculation condition when the type is a cancel packet; And
And retransmitting a path setting packet that has been previously un-routed through the electrical link after the calculated delay time has elapsed.
상기 (e) 단계 이후에,
기설정된 출발지와 상기 목적지 간에 경로 설정이 완료되면, 출발지의 상기 PE가 광학적 링크를 통한 데이터의 전송을 시작하는 단계; 및
상기 출발지의 라우팅 장치가 설정이 완료된 경로 상의 상기 전기적 링크를 통해 경로 해제 시간 정보를 포함하는 경로 해제 패킷을 상기 목적지까지 전송하는 단계를 포함하되,
상기 경로 해제 시간 정보에 따른 경로 해제 시간은, 상기 목적지에 가까워 질수록 감소되는 적응적 라우팅 방법.12. The method of claim 11,
After the step (e)
When the path setting between the predetermined start point and the destination is completed, starting the transmission of the data over the optical link by the PE at the start point; And
And transmitting a routing packet including routing time information to the destination via the electrical link on the path where the routing device of the origin is completed,
Wherein the path release time according to the path release time information is reduced as it approaches the destination.
상기 경로 해제 패킷을 상기 목적지까지 전송하는 단계는,
상기 데이터의 크기, 상기 광학적 링크의 대역폭 및 상기 전기적 링크의 주파수에 기초하여 상기 경로 해제 시간을 산출하는 단계;
상기 산출된 경로 해제 시간이 기설정된 경로 해제 시간의 최대 값보다 큰 경우, 상기 데이터의 전송이 시작된 후 상기 산출된 경로 해제 시간을 점차 감소시키는 단계; 및
상기 감소시킨 경로 해제 시간이 상기 경로 해제 시간의 최대 값과 같아지면, 상기 경로 해제 시간의 최대 값을 포함하는 상기 경로 해제 패킷을 상기 목적지까지 전송하는 단계를 포함하는 적응적 라우팅 방법.19. The method of claim 18,
Wherein the step of transmitting the deassignment packet to the destination comprises:
Calculating the path-off time based on the size of the data, the bandwidth of the optical link, and the frequency of the electrical link;
Gradually decreasing the calculated path release time after transmission of the data starts if the calculated path release time is greater than a maximum value of the predetermined path release time; And
And transmitting the deassignment packet including the maximum value of the deassociation time to the destination when the deassigned deassociation time becomes equal to the maximum value of the deassignment time.
복수의 처리 소자(Processing Element, PE); 및
상기 PE 별로 매칭되며, 광학적 링크를 통해 상기 PE 간 데이터의 전송을 위한 서킷 스위칭을 처리하고, 전기적 링크를 통해 상기 PE 간 경로 설정을 위한 패킷 스위칭을 처리하는 복수의 라우팅 장치를 포함하되,
상기 라우팅 장치는,
상기 전기적 링크를 통해 경로 설정을 위한 컨트롤 패킷을 수신하여 기설정된 유형에 따라 분배하여 출력하고, 상기 컨트롤 패킷 중 경로 설정 패킷을 수신하면 기설정된 목적지를 향한 방향으로 인접한 다음 라우팅 장치를 결정하고, 상기 다음 라우팅 장치가 사용 불가능한 상태이면 상기 경로 설정 패킷이 입력된 이전 라우팅 장치로 상기 경로 설정 패킷을 롤백(rollback) 처리하고,
상기 목적지와 현재 라우팅 장치의 위치 비교를 통해 상기 현재 라우팅 장치가 상기 목적지인 것으로 판단되면, 연결된 PE의 사용 상태를 확인하여 상기 PE가 사용 불가능한 상태인 경우 기설정된 출발지로 상기 경로 설정 패킷에 의한 경로 설정을 취소하는 캔슬 패킷을 상기 전기적 링크를 통해 전송하되,
상기 이전 라우팅 장치로 롤백 처리된 상기 경로 설정 패킷은, 상기 이전 라우팅 장치가 재결정한 우회 경로 상의 다른 라우팅 장치로 전송되는 하이브리드 광학 네트워크 온 칩 시스템.
In a hybrid optical network-on-chip system,
A plurality of processing elements (PE); And
A plurality of routing devices that are matched by the PE and process circuit switching for transmission of data between the PEs through an optical link and process packet switching for routing between the PEs through an electrical link,
The routing apparatus includes:
A control packet for routing through the electrical link and distributing the control packet according to a predetermined type and outputting the control packet; and upon receiving a routing packet among the control packets, determining a next routing device adjacent to the predetermined destination, If the next routing device is unavailable, rolls back the routing packet to the previous routing device to which the routing packet is input,
If the current routing apparatus is determined to be the destination through comparison of the location of the current routing apparatus, the use state of the connected PE is checked and if the PE is unavailable, Transmitting a cancel packet canceling the setting through the electric link,
Wherein the routing packet rolled back to the previous routing device is transmitted to another routing device on the bypass path redirected by the previous routing device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130093004A KR101465498B1 (en) | 2013-08-06 | 2013-08-06 | Apparatus and method for adaptive routing of hybrid optical networks on chip and hybrid optical networks on chip system using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130093004A KR101465498B1 (en) | 2013-08-06 | 2013-08-06 | Apparatus and method for adaptive routing of hybrid optical networks on chip and hybrid optical networks on chip system using the same |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101465498B1 true KR101465498B1 (en) | 2014-11-26 |
Family
ID=52291680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130093004A KR101465498B1 (en) | 2013-08-06 | 2013-08-06 | Apparatus and method for adaptive routing of hybrid optical networks on chip and hybrid optical networks on chip system using the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101465498B1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101766792B1 (en) * | 2016-06-10 | 2017-08-23 | 성균관대학교산학협력단 | Hybrid optical network-on-chip system, and method of data transmission and reception in hybrid optical network-on-chip system |
US11245643B2 (en) | 2020-05-20 | 2022-02-08 | Tenstorrent Inc. | Speculative resource allocation for routing on interconnect fabrics |
US11817903B2 (en) | 2020-08-06 | 2023-11-14 | Celestial Ai Inc. | Coherent photonic computing architectures |
US11835777B2 (en) | 2022-03-18 | 2023-12-05 | Celestial Ai Inc. | Optical multi-die interconnect bridge (OMIB) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130007063A (en) * | 2011-06-28 | 2013-01-18 | 성균관대학교산학협력단 | Hybrid optical networks-on-chip system and routing method thereof |
-
2013
- 2013-08-06 KR KR1020130093004A patent/KR101465498B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130007063A (en) * | 2011-06-28 | 2013-01-18 | 성균관대학교산학협력단 | Hybrid optical networks-on-chip system and routing method thereof |
Non-Patent Citations (2)
Title |
---|
‘Hybrid Optical NoC’에서의 복귀 라우팅 알고리즘, 2012년 대한전자공학회 추계학술대회 논문집, 페이지 136-138, 2012년.* |
'Hybrid Optical NoC'에서의 복귀 라우팅 알고리즘, 2012년 대한전자공학회 추계학술대회 논문집, 페이지 136-138, 2012년. * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101766792B1 (en) * | 2016-06-10 | 2017-08-23 | 성균관대학교산학협력단 | Hybrid optical network-on-chip system, and method of data transmission and reception in hybrid optical network-on-chip system |
US11245643B2 (en) | 2020-05-20 | 2022-02-08 | Tenstorrent Inc. | Speculative resource allocation for routing on interconnect fabrics |
US11817903B2 (en) | 2020-08-06 | 2023-11-14 | Celestial Ai Inc. | Coherent photonic computing architectures |
US11835777B2 (en) | 2022-03-18 | 2023-12-05 | Celestial Ai Inc. | Optical multi-die interconnect bridge (OMIB) |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10728094B2 (en) | Control traffic in software defined networks | |
CN1973486B (en) | Avoiding micro-loop upon failure of fast reroute protected links | |
US20190394068A1 (en) | Flow entry generating method and apparatus | |
JP6144834B2 (en) | Method for obtaining accurate flow entry by SDN switch, and SDN switch, controller, and system | |
CN110890994B (en) | Method, device and system for determining message forwarding path | |
US8787257B2 (en) | Network communication system, node device, routing method and routing program | |
KR101465498B1 (en) | Apparatus and method for adaptive routing of hybrid optical networks on chip and hybrid optical networks on chip system using the same | |
JP2003008629A (en) | Network device to find route for transmitting data packet | |
US8537827B2 (en) | System and method for establishing a communication path using labels | |
CN108964745B (en) | Data processing method, network architecture, electronic device and readable storage medium | |
US9736066B2 (en) | Method, apparatus and system for establishing optical bypass | |
EP2879336B1 (en) | Transfer apparatus, server, and route changing method | |
EP1905196A2 (en) | Method and apparatus for updating label-switched paths | |
KR101658824B1 (en) | Method, apparatus and computer program for updating flow rules of software defined network | |
CN112261681B (en) | Low earth orbit satellite DTN network routing path selection method and system | |
US9729449B2 (en) | Method and apparatus for enhanced routing within a shortest path based routed network containing local and long distance links | |
EP3099010B1 (en) | Network path computation method, apparatus and system | |
CN105959239B (en) | The communication means of three-dimensional network on mating plate | |
CN102420766B (en) | Routing determination method and routing device | |
EP3020163B1 (en) | Interworking between first protocol entity of stream reservation protocol and second protocol entity of routing protocol | |
US20090016277A1 (en) | Mobile communication system, packet transfer device, and path re-establishing method | |
CN104579992A (en) | Method and device for controlling network flow path | |
JP5598474B2 (en) | Network design system, network design method, data transfer route determination method, network design program | |
CN105827322A (en) | Wavelength allocation method and device | |
WO2011024702A1 (en) | Network operation system, network operation method, and network operation program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20171027 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180917 Year of fee payment: 5 |