KR102187325B1 - 네트워크-온-칩의 신뢰성 향상을 위한 제어 신호의 오류 정정 기법 및 이를 위한 장치 - Google Patents
네트워크-온-칩의 신뢰성 향상을 위한 제어 신호의 오류 정정 기법 및 이를 위한 장치 Download PDFInfo
- Publication number
- KR102187325B1 KR102187325B1 KR1020190108307A KR20190108307A KR102187325B1 KR 102187325 B1 KR102187325 B1 KR 102187325B1 KR 1020190108307 A KR1020190108307 A KR 1020190108307A KR 20190108307 A KR20190108307 A KR 20190108307A KR 102187325 B1 KR102187325 B1 KR 102187325B1
- Authority
- KR
- South Korea
- Prior art keywords
- input
- switch
- routing
- router
- network
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0009—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
- H04L1/001—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding applied to control information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0015—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
- H04L1/0016—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy involving special memory structures, e.g. look-up tables
-
- 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/46—Cluster building
-
- 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/60—Router architectures
-
- 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/74—Address processing for 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/101—Packet switching elements characterised by the switching fabric construction using crossbar or matrix
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/109—Integrated on microchip, e.g. switch-on-chip
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명의 일 실시예에 따른 네트워크 온 칩의 라우터에 있어서, 입력 포트를 통해 패킷 데이터를 입력받고, 상기 패킷 데이터를 임시 저장하는, FIFO(First In First Out) 버퍼; 상기 패킷 데이터의 라우팅 경로를 계산하는 라우팅 계산기; 상기 계산된 라우팅 경로에 기초하여 결정된 출력 포트로 상기 패킷 데이터가 출력될 수 있도록 크로스바 스위치를 제어하는 스위치 할당기; 상기 스위치 할당기의 제어에 따라 상기 패킷 데이터를 상기 출력 포트로 출력하는 상기 크로스바 스위치; 상기 라우터에 포함된 각 구성간에 송수신되는 제어 신호의 오류 정정을 위해 해밍 코드에 기초하여 상기 제어 신호를 인코딩하는 인코더; 및 상기 해밍 코드에 기초하여 상기 인코딩된 제어 신호를 디코딩하는 디코더; 를 포함할 수 있다.
Description
본 명세서는 네트워크-온-칩의 제어신호의 클러스터링을 통한 패리티 비트의 오버헤드를 줄이는 기법으로 오류를 정정하여 라우터 및 시스템의 신뢰성을 향상시키기 위한 방법 및 이를 위한 장치를 제안한다.
반도체 공정이 수 나노미터 단위로 줄어들면서 단일 칩 내에 집적할 수 있는 코어의 개수는 급격하게 증가하고 있다. 기존의 공유 버스(shared bus)는 칩 내 코어 수가 증가할수록 병목현상이 발생하고 에너지 효율성과 신뢰성에서 한계가 있다. 이러한 공유 버스의 문제점들을 개선할 수 있는 방안으로 칩 내에 라우터를 이용해 네트워크를 구성하는 네트워크-온-칩(Network-on-Chip, NoC)이 대두되었다.
공정 미세화로 인한 선폭의 감소와 저전력을 위한 동작 전압의 감소는 NoC 라우터의 간헐적 결함을 유발했다. 이에 대한 해결책으로 NoC 라우터의 데이터 경로에 ECC(Error Correcting Code)를 배치하여 간헐적 결함을 해결하는 방법이 제시되었다. 하지만 데이터 신호보다 적은 비트 오류만으로도 시스템 전체의 성능 저하 혹은 치명적인 오류를 유발할 수 있는 제어 신호의 경우 그 크기가 작아 ECC의 오버헤드가 크고 또한 경로가 짧아 오류 발생 확률이 적기 때문에 ECC를 적용시키는 방안이 고려되지 않았다.
본 명세서에서는 ECC 오버헤드를 최적화화면서 전체 시스템에 치명적일 수 있는 제어신호의 오류를 정정하기 위한 효율적인 방법을 제안한다.
또한, 본 명세서에서는 클러스터링을 통한 패리티 비트 최적화 방법을 제안한다.
본 발명의 일 실시예에 따른 네트워크 온 칩의 라우터에 있어서, 입력 포트를 통해 패킷 데이터를 입력받고, 상기 패킷 데이터를 임시 저장하는, FIFO(First In First Out) 버퍼; 상기 패킷 데이터의 라우팅 경로를 계산하는 라우팅 계산기; 상기 계산된 라우팅 경로에 기초하여 결정된 출력 포트로 상기 패킷 데이터가 출력될 수 있도록 크로스바 스위치를 제어하는 스위치 할당기; 상기 스위치 할당기의 제어에 따라 상기 패킷 데이터를 상기 출력 포트로 출력하는 상기 크로스바 스위치; 상기 라우터에 포함된 각 구성간에 송수신되는 제어 신호의 오류 정정을 위해 해밍 코드에 기초하여 상기 제어 신호를 인코딩하는 인코더; 및 상기 해밍 코드에 기초하여 상기 인코딩된 제어 신호를 디코딩하는 디코더; 를 포함할 수 있다.
또한, 상기 인코더 및 상기 디코더는, 상기 각 구성 사이에 배치되어 상기 각 구성간에 송수신되는 제어 신호에 대한 인코딩 및 디코딩을 수행할 수 있다.
또한, 상기 해밍 코드의 메시지 비트 m, 패리티 비트 크기 k와 코드 워드 크기 n은 아래 수학식 1과 같은 관계를 가질 수 있다.
[수학식 1]
또한, 상기 인코더 및 상기 디코더는, 상기 각 구성 사이의 동일한 경로에서 전송되는 복수의 제어 신호들을 클러스터링하여 인코딩 및 디코딩을 수행할 수 있다.
또한, 상기 제어 신호는, 상기 FIFO 버퍼에서 출력되어 상기 라우팅 계산기로 입력되는, 패킷 주소 신호; 상기 FIFO 버퍼에서 출력되어 상기 라우팅 계산기 및 상기 스위치 할당기로 입력되는, 패킷 타입 신호; 상기 라우팅 계산기에서 출력되어 상기 스위치 할당기로 입력되는, 라우팅 계산 결과 신호; 상기 스위치 할당기에서 출력되어 상기 크로스바 스위치로 입력되는, 스위치 제어 신호; 상기 크로스바 스위치에서 출력되어 상기 FIFO 버퍼로 입력되는, 버퍼 read 신호; 및/또는 상기 FIFO 버퍼에서 출력되어 상기 크로스바 스위치로 입력되는, 버퍼 empty 신호; 를 포함할 수 있다.
또한, 상기 인코더 및 상기 디코더는, 상기 패킷 주소 신호 및 상기 패킷 타입 신호를 클러스터링하여 인코딩 및 디코딩을 수행하며, 상기 패킷 타입 신호 및 상기 라우팅 계산 결과 신호를 클러스터링하여 인코딩 및 디코딩을 수행하며, 상기 네트워크 온 칩 내의 모든 FIFO 버퍼들에 입력되는 버퍼 read 신호들을 클러스터링하여 인코딩 및 디코딩을 수행하며, 및/또는 상기 모든 FIFO 버퍼들에 입력되는 버퍼 empty 신호들을 클러스터링하여 인코딩 및 디코딩을 수행할 수 있다.
또한, 상기 네트워크 온 칩의 라우터는, 입력 데이터를 저장하고 시프트하는, 레지스터; 를 적어도 하나 더 포함할 수 있다.
또한, 상기 레지스터는 상기 인코더 및 상기 디코더와 분리되어 상기 라우터에 배치될 수 있다.
또한, 상기 레지스터는, 상기 스위치 할당기의 입력단 및 출력단에 각각 배치되는 제1 및 제2 레지스터를 포함하되, 상기 제1 레지스터는 상기 스위치 할당기의 입력단과 상기 디코더 사이에 배치되며, 상기 제2 레지스터는 상기 스위치 할당기의 출력단과 상기 인코더 사이에 배치될 수 있다.
또한, 상기 라우팅 계산기는, X-Y 라우팅 경로 계산 회로로 구성될 수 있다.
본 발명의 일 실시예에 따르면, 제어 신호의 오류가 정정되므로, 라우터 및 전체 시스템의 신뢰성이 향상된다는 장점을 갖는다.
또한, 본 발명의 일 실시예에 따르면, 제어 신호들을 클러스터링하여 인코딩함으로, ECC의 오버헤드를 줄일 수 있다는 장점을 갖는다.
도 1은 본 발명의 일 실시예에 따른 NoC 라우터 내부의 기능적 회로를 예시한 개념도이다.
도 2 는 본 발명의 일 실시예에 따른 ECC가 구비된 NoC 라우터 내부의 기능적 회로를 예시한 개념도이다.
도 3은 본 발명의 일 실시예에 따른 레지스터 배치를 고려한 NoC 라우터 내부의 기능적 회로를 예시한 개념도이다.
도 4는 본 발명의 일 실시예에 따른 X-Y 라우팅/경로 계산 회로를 예시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 NoC 라우터의 성능 실험 결과 그래프이다.
도 2 는 본 발명의 일 실시예에 따른 ECC가 구비된 NoC 라우터 내부의 기능적 회로를 예시한 개념도이다.
도 3은 본 발명의 일 실시예에 따른 레지스터 배치를 고려한 NoC 라우터 내부의 기능적 회로를 예시한 개념도이다.
도 4는 본 발명의 일 실시예에 따른 X-Y 라우팅/경로 계산 회로를 예시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 NoC 라우터의 성능 실험 결과 그래프이다.
이하 설명하는 기술은 다양한 변경을 가할 수 있고 여러 가지 실시례를 가질 수 있는 바, 특정 실시례들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 이하 설명하는 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 이하 설명하는 기술의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 해당 구성요소들은 상기 용어들에 의해 한정되지는 않으며, 단지 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 이하 설명하는 기술의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
본 명세서에서 사용되는 용어에서 단수의 표현은 문맥상 명백하게 다르게 해석되지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함한다" 등의 용어는 설시된 특징, 개수 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 의미하는 것이지, 하나 또는 그 이상의 다른 특징들이나 개수, 단계 동작 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하지 않는 것으로 이해되어야 한다.
도면에 대한 상세한 설명을 하기에 앞서, 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.
또, 방법 또는 동작 방법을 수행함에 있어서, 상기 방법을 이루는 각 과정들은 문맥상 명백하게 특정 순서를 기재하지 않은 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 과정들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
기존 네트워크-온-칩에서는 칩 내의 내부 금속 배선 길이의 증가와 공정 미세화로 인한 라우터 내의 선폭 및 트랜지스터 동작 전압의 감소로 인해, 노화 및 공정 변이로 인한 오류 발생 확률이 급격하게 증가하고 있다.
또한, 기존 데이터 경로의 오류 정정 기법들은 많이 제시가 되었지만, 제어 신호의 경우 적은 비트 오류만으로도 시스템 전체의 성증 저하와 치명적인 오류를 유발할 수 있음에도, 비트 크기가 작고 모듈 내 통신의 이동 거리가 짧아 오류 정정 부호의 오버헤드가 크다는 이유로 제어 신호에 대한 오류 정정 기법이 제안되지 않았다.
이에, 본 명세서에서는 오버헤드를 최소화 한 제어 신호의 오류 정정 기법을 제안하여 전체 시스템 성능을 향상시키고자 한다.
도 1은 본 발명의 일 실시예에 따른 NoC 라우터 내부의 기능적 회로를 예시한 개념도이다.
도 1을 참조하면, NoC 라우터(101) 내부의 기능적 회로는 크게 FIFO(First-In First-Out) 버퍼, 라우팅 경로 계산 회로(Routing Computation, RC), 스위치 할당기(Switch Allocation, SA) 및/또는 크로스바 스위치(Crossbar Switch, CS)를 포함할 수 있다. 데이터 신호는 버퍼의 입력 신호로 들어가서 버퍼에 저장되었다가 CS를 통해 출력단으로 전달되며(데이터 신호 경로는 점선으로 표시), 제어 신호는 버퍼와 CS를 제어해서 데이터를 정상적으로 보내기 위해 전달되는 신호를 의미한다(제어 신호 경로는 직선으로 표시).
FIFO 버퍼는 패킷 데이터를 임시 저장하며, 특정 출력 포트와 연결되어 상기 임시 저장한 패킷 데이터를 상기 특정 출력 포트로만 출력한다. 이때, FIFO 버퍼가 특정 출력 포트와 연결됨에 따라 FIFO 버퍼에서 출력되는 패킷 데이터는 CS로 제공될 수 있다. RC는 FIFO 버퍼에 입력된 패킷 데이터의 라우팅 경로를 계산할 수 있다. SA는 각 입력 포트의 패킷 데이터들을 상기 RC에서 계산된 라우팅 경로에 기초하여 결정된 출력 포트로 전송하기 위하여 크로스바 사용 요청을 중재하는 역할을 수행한다. 즉, SA는 각 FIFO 버퍼의 출력을 특정 출력 포트로 연결해 줄 것을 요청하는 신호를 생성하여 CS로 제공한다. CS는 SA의 제어 신호에 따라 FIFO 버퍼에 임시 저장된 패킷 데이터가 특정 출력 포트로 출력되도록 제어 및 처리하는 역할을 수행한다.
버퍼는 각 입력 단마다 하나씩 사용되므로 각 버퍼의 출력 신호와 입력 신호인 buf_full, buf_empty, buf_read의 경우 각 버퍼마다 1비트씩 입력 포트의 개수만큼 곱해지므로 각각의 신호의 크기는 입력 단의 개수와 같다. RC에서 각 경로를 할당하기 위해 사용되는 제어 신호인 packet_addr와 packet_type 신호의 경우 각각 데이터 워드의 크기에 포트의 수를 곱한 값과 데이터 타입의 크기에 포트의 수를 곱한 값과 같다. 앞의 신호를 통해 RC에서 계산된 결과인 rc_result는 각각의 입력단이 어느 출력 단과 연결될지를 나타내기 때문에 입력 단의 개수에 출력 단의 수를 곱한 값과 같다. 마지막으로 이렇게 계산된 rc_result 값이 SA를 통해 할당이 되면 최종적으로 스위치를 제어하는 sw_con 신호가 각각의 입력 단이 어느 출력 단과 연결되었는지를 나타내면서 입력 단의 개수에 출력단의 개수를 곱한 크기만큼 출력된다.
일반적으로 패킷 스위칭 기반 데이터의 타입은 Head, Body, Tail로 이루어지기 때문에 데이터 타입으로는 2비트가 사용된다. 또한, NoC에서 주로 사용되는 메시(mesh) 토폴로지 구조의 라우터(101)는 각 라우터들과 동서남북으로 연결되는 4개의 입출력 단과 코어와 연결되는 입출력 단을 합해 총 5개의 입출력 단으로 구성된다. 따라서 패킷 스위칭 기반의 메시 토폴로지 구조의 라우터에서는 포트의 수를 5로, 데이터 타입의 크기는 2로 결정될 수 있다.
도 2는 본 발명의 일 실시예에 따른 ECC가 구비된 NoC 라우터 내부의 기능적 회로를 예시한 개념도이다.
도 2를 참조하면, NoC 라우터 내부의 각 스테이지에는 제어 신호의 ECC를 위한 인코더(EC) 및 디코더(DC)가 구비될 수 있다. 본 명세서에서는 ECC로서 해밍 코드를 사용할 것을 제안한다. 해밍 코드는 공간 및 시간적 오버헤드가 적다는 장점을 갖는다.
해밍 코드의 메시지 비트 m, 패리티 비트 크기 k와 코드 워드 크기 n은 아래 수학식 1과 같은 관계를 가진다.
따라서 Ham[n,m]은 Ham[7,4], Ham[15,11], Ham[31,26]과 같을 때, 즉 데이터 워드가 4, 11, 26과 같을 때 가장 패리티 비트 오버헤드가 적다. 따라서 NoC 라우터의 제어 신호들을 4, 11, 26과 같거나 유사하게 클러스터링(또는 그룹핑) 해줌으로써 오버헤드가 적게 ECC의 사용이 가능하다.
패킷 주소(packet_addr)와 타입(packet_type)의 경우 모두 버퍼에서 나와서 RC로 들어가기 때문에 같이 묶어서 보냄으로써 패리티 비트의 수를 줄일 수 있다. 또한 패킷 타입의 경우 SA에도 fan-out되어 들어가기 때문에 RC와 인접한 부분에서 fan-out 시킴으로써 rc_result와 같이 인코딩 하는 것이 가능하다. 이때 해밍 코드는 인코딩 후에도 데이터 워드가 남아 있는 systematic 코드이기 때문에 데이터만 fan-out하는 것이 가능하다. 그리고 sw_con의 경우 25비트이기 때문에 26비트에 가까워 그대로 인코딩해도 패리티 비트 오버헤드가 적다. buf_read(버퍼를 read할 것을 명령하는 제어 신호)와 buf_empty(버퍼의 empty를 명령하는 제어 신호)는 각각 모든 버퍼를 합쳐서 인코딩과 디코딩을 하는 것으로 패리티 비트의 오버헤드를 줄일 수 있다.
도 2에 따라 해밍 코드가 적용된 NoC 라우터의 경우, 도 1과 같이 제어 신호를 개별적으로 코딩하는 것이 아닌, 같은 경로에 있는 제어 신호들을 클러스터링하여 코딩함으로써 패리티 비트 오버헤드를 최소화함과 동시에, 전체 시스템에 미치는 영향이 데이터 신호에 비해 큰 제어 신호의 오류를 효과적으로 정정할 수 있다는 장점을 갖는다. 특히, 본 실시예의 경우 패킷의 주소(packet_addr)와 타입(packet_type) 제어 신호를 함께 클러스터링하고, 라우팅 결과(rc_result)와 패킷 타입(packet_type) 제어 신호를 함께 클러스터링하여 코딩함으로써 전체 코드 비트 대비 패리티 비트의 오버헤드를 최소화할 수 있다.
해밍 코드는 적은 전력 소모와 적은 지연 시간을 갖는다. 특히, 해밍 코드의 인코더 및 디코더는 지연 시간이 적어 각 파이프라인 스테이지와의 병합이 가능하다는 장점을 갖는다.
이하에서는 각 스테이지에서의 지연 시간을 최소화하기 위한 구체적인 실시예에 대해 후술한다.
도 3은 본 발명의 일 실시예에 따른 레지스터 배치를 고려한 NoC 라우터 내부의 기능적 회로를 예시한 개념도이며, 도 4는 본 발명의 일 실시예에 따른 X-Y 라우팅/경로 계산 회로를 예시한 도면이다.
도 3을 참조하면, 가장 큰 지연 시간을 갖는 SA 스테이지의 지연 시간을 최소화시키기 위해, NoC 라우터의 SA 스테이지에서 레지스터는 인코더와 디코더 외부에(또는 인코더/디코더와 독립적으로/별개로/분리되어) 배치될 수 있다. 특히, 레지스터는 SA 스테이지의 입력단과 디코더 사이에, 출력단과 인코더 사이에 각각 배치될 수 있다. 이를 통해 SA 스테이지에서의 지연 시간 최적화가 가능하다.
이 경우, RC 스테이지에는 2개의 디코더가 배치되어 상대적으로 큰 지연 시간을 갖게 된다는 문제점을 갖는다. 이를 해결하기 위해, RC 스테이지를, 도 4와 같은 적은 수의 논리 게이트로 설계 가능한 X-Y 라우팅/경로 계산 회로로 구현할 것을 제안한다. 이를 통해, 디코더 두 개가 병합되더라도 추가적인 지연 시간이 발생하는 것이 방지될 수 있다.
도 5는 본 발명의 일 실시예에 따른 NoC 라우터의 성능 실험 결과 그래프이다.
실험을 위해 클럭 주파수는 1GHz로 설정했으며 TSMC(Taiwan Semiconductor Manufacturing Company) 40nm 공정의 패킷 스위치 기반 NoC 라우터를 통한 16Х16 네트워크를 구축하였다. X-Y 라우팅 방식을 사용하였기 때문에 RC에서 라우팅 경로를 계산하는 회로의 지연 시간이 적다. 따라서 패킷 주소와 타입 그리고 rc_result에 대한 인코딩과 디코딩 과정은 RC의 파이프라인 스테이지와 결합하는 방식으로 지연시간을 최적화할 수 있었다. 클럭 사이클을 결정하는 주된 회로는 SA이므로 sw_con의 인코딩 전에 레지스터를 배치하는 방식으로 ECC의 지연 시간으로 인한 클럭 주파수 오버헤드는 발생하지 않았다. 공간과 전력 소모의 오버헤드는 표 2와 같다.
표 2를 참조하면, NoC 라우터의 80% 이상의 공간이 버퍼의 크기에 의해 결정될 정도로 FIFO 버퍼의 크기가 매우 크기 때문에 상대적으로 ECC의 인코더와 디코더의 공간적 오버헤드는 15.6%로 적은 것을 확인할 수 있다. 또한 동적 전력 소모에 대한 오버헤드 역시 1.3%로 매우 작은 것을 확인할 수 있었다.
추가적으로 ECC 배치를 통한 오류정정능력을 평가하기 위해 임의의 라우터의 제어신호 오류 발생에 따른 전체 시스템 성능 저하를 분석했으며, 그 결과 그래프는 도 5와 같다.
도 5를 참조하면, ECC를 배치하지 않은 라우터에 비해 2%의 BER(Bit Error Rate)에서 네트워크의 성능이 16% 향상된 것을 확인할 수 있다.
본 발명에 따른 실시예는 다양한 수단, 예를 들어, 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 본 발명의 일 실시예는 하나 또는 그 이상의 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
또한, 펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 일 실시예는 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차, 함수 등의 형태로 구현되어, 다양한 컴퓨터 수단을 통하여 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
아울러, 본 발명에 따른 장치나 단말은 하나 이상의 프로세서로 하여금 앞서 설명한 기능들과 프로세스를 수행하도록 하는 명령에 의하여 구동될 수 있다. 예를 들어 그러한 명령으로는, 예컨대 JavaScript나 ECMAScript 명령 등의 스크립트 명령과 같은 해석되는 명령이나 실행 가능한 코드 혹은 컴퓨터로 판독 가능한 매체에 저장되는 기타의 명령이 포함될 수 있다. 나아가 본 발명에 따른 장치는 서버 팜(Server Farm)과 같이 네트워크에 걸쳐서 분산형으로 구현될 수 있으며, 혹은 단일의 컴퓨터 장치에서 구현될 수도 있다.
또한, 본 발명에 따른 장치에 탑재되고 본 발명에 따른 방법을 실행하는 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트 혹은 코드로도 알려져 있음)은 컴파일 되거나 해석된 언어나 선험적 혹은 절차적 언어를 포함하는 프로그래밍 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 혹은 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 요청된 프로그램에 제공되는 단일 파일 내에, 혹은 다중의 상호 작용하는 파일(예컨대, 하나 이상의 모듈, 하위 프로그램 혹은 코드의 일부를 저장하는 파일) 내에, 혹은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예컨대, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 통신 네트워크에 의해 상호 접속된 다중 컴퓨터나 하나의 컴퓨터 상에서 실행되도록 전개될 수 있다.
설명의 편의를 위하여 각 도면을 나누어 설명하였으나, 각 도면에 서술되어 있는 실시예들을 병합하여 새로운 실시예를 구현하도록 설계하는 것도 가능하다. 또한, 본 발명은 상술한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상술한 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시 예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
또한, 이상에서는 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 명세서는 상술한 특정의 실시예에 한정되지 아니하며, 청구 범위에서 청구하는 요지를 벗어남이 없이 당해 명세서가 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형 실시들은 본 명세서의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.
101: NoC 라우터
Claims (10)
- 네트워크 온 칩의 라우터에 있어서,
입력 포트를 통해 패킷 데이터를 입력받고, 상기 패킷 데이터를 임시 저장하는, FIFO(First In First Out) 버퍼;
상기 패킷 데이터의 라우팅 경로를 계산하는 라우팅 계산기;
상기 계산된 라우팅 경로에 기초하여 결정된 출력 포트로 상기 패킷 데이터가 출력될 수 있도록 크로스바 스위치를 제어하는 스위치 할당기;
상기 스위치 할당기의 제어에 따라 상기 패킷 데이터를 상기 출력 포트로 출력하는 상기 크로스바 스위치;
상기 라우터에 포함된 각 구성간 송수신되는 제어 신호의 오류 정정을 위해 해밍 코드에 기초하여 상기 제어 신호를 인코딩하는 인코더; 및
상기 해밍 코드에 기초하여 상기 인코딩된 제어 신호를 디코딩하는 디코더; 를 포함하고,
상기 인코더 및 상기 디코더는,
상기 각 구성 사이에 배치되어 상기 각 구성 사이의 동일한 경로에서 전송되는 복수의 제어 신호들을 클러스팅하여 인코딩 및 디코딩을 수행하는 네트워크 온 칩의 라우터. - 삭제
- 삭제
- 제 1 항에 있어서,
상기 제어 신호는,
상기 FIFO 버퍼에서 출력되어 상기 라우팅 계산기로 입력되는, 패킷 주소 신호;
상기 FIFO 버퍼에서 출력되어 상기 라우팅 계산기 및 상기 스위치 할당기로 입력되는, 패킷 타입 신호;
상기 라우팅 계산기에서 출력되어 상기 스위치 할당기로 입력되는, 라우팅 계산 결과 신호;
상기 스위치 할당기에서 출력되어 상기 크로스바 스위치로 입력되는, 스위치 제어 신호;
상기 크로스바 스위치에서 출력되어 상기 FIFO 버퍼로 입력되는, 버퍼 read 신호; 및/또는
상기 FIFO 버퍼에서 출력되어 상기 크로스바 스위치로 입력되는, 버퍼 empty 신호; 를 포함하는, 네트워크 온 칩의 라우터. - 제 5 항에 있어서,
상기 인코더 및 상기 디코더는,
상기 패킷 주소 신호 및 상기 패킷 타입 신호를 클러스터링하여 인코딩 및 디코딩을 수행하며,
상기 패킷 타입 신호 및 상기 라우팅 계산 결과 신호를 클러스터링하여 인코딩 및 디코딩을 수행하며,
상기 네트워크 온 칩 내의 모든 FIFO 버퍼들에 입력되는 버퍼 read 신호들을 클러스터링하여 인코딩 및 디코딩을 수행하며, 및/또는
상기 모든 FIFO 버퍼들에 입력되는 버퍼 empty 신호들을 클러스터링하여 인코딩 및 디코딩을 수행하는, 네트워크 온 칩의 라우터. - 제 1 항에 있어서,
입력 데이터를 저장하고 시프트하는, 레지스터; 를 적어도 하나 더 포함하는, 네트워크 온 칩의 라우터. - 제 7 항에 있어서,
상기 레지스터는 상기 인코더 및 상기 디코더와 분리되어 상기 라우터에 배치되는, 네트워크 온 칩의 라우터. - 제 8 항에 있어서,
상기 레지스터는,
상기 스위치 할당기의 입력단 및 출력단에 각각 배치되는 제1 및 제2 레지스터를 포함하되,
상기 제1 레지스터는 상기 스위치 할당기의 입력단과 상기 디코더 사이에 배치되며, 상기 제2 레지스터는 상기 스위치 할당기의 출력단과 상기 인코더 사이에 배치되는, 네트워크 온 칩의 라우터. - 제 9 항에 있어서,
상기 라우팅 계산기의 입력단에 2개의 디코더들이 배치된 경우, 상기 라우팅 계산기는 X-Y 라우팅 경로 계산 회로로 구성되는, 네트워크 온 칩의 라우터.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190108307A KR102187325B1 (ko) | 2019-09-02 | 2019-09-02 | 네트워크-온-칩의 신뢰성 향상을 위한 제어 신호의 오류 정정 기법 및 이를 위한 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190108307A KR102187325B1 (ko) | 2019-09-02 | 2019-09-02 | 네트워크-온-칩의 신뢰성 향상을 위한 제어 신호의 오류 정정 기법 및 이를 위한 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102187325B1 true KR102187325B1 (ko) | 2020-12-04 |
Family
ID=73776793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190108307A KR102187325B1 (ko) | 2019-09-02 | 2019-09-02 | 네트워크-온-칩의 신뢰성 향상을 위한 제어 신호의 오류 정정 기법 및 이를 위한 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102187325B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115190069A (zh) * | 2022-04-26 | 2022-10-14 | 中国人民解放军国防科技大学 | 一种高性能片上网络容错路由器装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130092675A (ko) * | 2012-02-13 | 2013-08-21 | 한양대학교 산학협력단 | 시스템 온 칩의 내부 통신을 위한 네트워크 온 칩 및 데이터 전송 방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체 |
JP2013243582A (ja) * | 2012-05-22 | 2013-12-05 | Renesas Electronics Corp | NoCルータ及びネットワークインタフェース並びにNoCシステム |
-
2019
- 2019-09-02 KR KR1020190108307A patent/KR102187325B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130092675A (ko) * | 2012-02-13 | 2013-08-21 | 한양대학교 산학협력단 | 시스템 온 칩의 내부 통신을 위한 네트워크 온 칩 및 데이터 전송 방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체 |
JP2013243582A (ja) * | 2012-05-22 | 2013-12-05 | Renesas Electronics Corp | NoCルータ及びネットワークインタフェース並びにNoCシステム |
Non-Patent Citations (1)
Title |
---|
Qiaoyan Yu and Paul Ampadu, "Transient and Permanent Error Co-Management Method for Reliable Networks-on-Chip", 2010 Fourth ACM/IEEE International Symposium on Networks-on-Chip(2010.06.12.) 1부.* * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115190069A (zh) * | 2022-04-26 | 2022-10-14 | 中国人民解放军国防科技大学 | 一种高性能片上网络容错路由器装置 |
CN115190069B (zh) * | 2022-04-26 | 2023-12-05 | 中国人民解放军国防科技大学 | 一种高性能片上网络容错路由器装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101466694B1 (ko) | Ecc 회로, ecc 회로를 구비하는 메모리 시스템 및그의 오류 정정 방법 | |
US10073731B2 (en) | Error correction in memory | |
WO2018017282A1 (en) | Techniques to provide a multi-level memory architecture via interconnects | |
US8825922B2 (en) | Arrangement for processing trace data information, integrated circuits and a method for processing trace data information | |
US20120173846A1 (en) | Method to reduce the energy cost of network-on-chip systems | |
US20060047891A1 (en) | System and method for transmitting data packets in a computer system having a memory hub architecture | |
CN105431905A (zh) | 具有内部读取-修改-写入操作的存储部件 | |
US11742879B2 (en) | Machine-learning error-correcting code controller | |
US20150236723A1 (en) | Parallel VLSI architectures for constrained turbo block convolutional decoding | |
US20120177152A1 (en) | Low latency simd architecture for iterative decoders | |
KR102187325B1 (ko) | 네트워크-온-칩의 신뢰성 향상을 위한 제어 신호의 오류 정정 기법 및 이를 위한 장치 | |
US20130262787A1 (en) | Scalable memory architecture for turbo encoding | |
Lee et al. | Design space exploration of the turbo decoding algorithm on GPUs | |
US11308005B2 (en) | Cache coherent, high-throughput input/output controller | |
CN107807902B (zh) | 一种抗单粒子效应的fpga动态重构控制器 | |
Rossi et al. | Power consumption of fault tolerant busses | |
US20200278865A1 (en) | Hazard Mitigation for Lightweight Processor Cores | |
JP6378775B2 (ja) | 再構成可能デバイス | |
US9639324B2 (en) | Architecture for writing and reading data in a data storage system | |
Gao et al. | Radiation tolerant viterbi decoders for on-board processing (OBP) in satellite communications | |
Chennakesavulu et al. | Improved performance of error controlling codes using pass transistor logic | |
CN113890540A (zh) | 一种并行加速lz77解码方法及装置 | |
US20060214820A1 (en) | Decoder circuit | |
Kalwad et al. | Merged switch allocation and transversal with dual layer adaptive error control for Network-on-Chip switches | |
US9059745B2 (en) | Error checking and correction method applied in a multi-channel system and related circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |