KR100922965B1 - 네트워크온칩 장치와 이를 위한 동작 주파수 제어 방법 - Google Patents

네트워크온칩 장치와 이를 위한 동작 주파수 제어 방법 Download PDF

Info

Publication number
KR100922965B1
KR100922965B1 KR1020060098446A KR20060098446A KR100922965B1 KR 100922965 B1 KR100922965 B1 KR 100922965B1 KR 1020060098446 A KR1020060098446 A KR 1020060098446A KR 20060098446 A KR20060098446 A KR 20060098446A KR 100922965 B1 KR100922965 B1 KR 100922965B1
Authority
KR
South Korea
Prior art keywords
frequency
clock
network
output
packet buffer
Prior art date
Application number
KR1020060098446A
Other languages
English (en)
Other versions
KR20080032742A (ko
Inventor
이강민
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020060098446A priority Critical patent/KR100922965B1/ko
Priority to US11/870,200 priority patent/US7826460B2/en
Publication of KR20080032742A publication Critical patent/KR20080032742A/ko
Application granted granted Critical
Publication of KR100922965B1 publication Critical patent/KR100922965B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/56Routing software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3018Input queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3027Output queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • H04L49/501Overload detection
    • H04L49/503Policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • H04L49/505Corrective measures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 네트워크-온-칩에서 네트워크-온-칩에 연결되는 프로세싱 장치들간의 통신 효율성을 높이면서 동시에 각 장치의 소비 전력을 낮추기 위한 회로 설계 및 장치에 관한 것이다. 본 발명은 네트워크-온-칩에서 네트워크-온-칩에 연결되는 프로세싱 장치들간의 통신 패턴 및 혼잡 상황에 따라 각 프로세싱 장치들의 동작 주파수를 가변하도록 하는 장치 및 제어 방법을 제공한다. 본 발명에 따르면 복잡한 네트워크-온-칩의 설계에 있어서, 데드 락의 위험을 감소시키고, 잦은 프로세싱 장치의 온/오프로 인한 불필요한 지연을 제거하여 시스템의 성능을 향상시킨다. 또한, 네트워크 과부하로 인하여 프로세싱 장치가 정지한 상태에서 불필요하게 소비하는 전력을 감소시키며, 패킷 버퍼의 효율적인 사용으로 네트워크에서 필요로 하는 패킷 버퍼의 용량을 줄임으로써 칩 면적 및 소비 전력 감소시킬 수 있다.
네트워크-온-칩(NOC), 프로세싱 장치(PE), 네트워크 인터페이스(NI), 동적 클럭 제어(Dynamic Frequency Scaling)

Description

네트워크온칩 장치와 이를 위한 동작 주파수 제어 방법{NETWORK-ON-CHIP APPARATUS AND METHOD FOR CONTROLLING DYNAMIC FREQUENCY OF THE SAME}
도 1은 종래 기술에 따른 네트워크-온-칩의 구조를 도시한 도면
도 2는 종래 기술에 따른 공유버스 구조를 도시한 도면
도 3은 데이터 관점에서 네트워크 인터페이스를 간략하게 나타낸 도면
도 4는 패킷 스위치 또는 라우터의 구성을 도시한 도면
도 5는 백 프레셔(Back-Pressure) 신호를 이용한 플로 컨트롤의 작동 방식을 나타낸 도면
도 6은 네트워크 인터페이스와 해당 프로세싱 엘레먼트 사이의 플로 컨트롤 방법을 나타낸 도면
도 7은 종래 기술에 따른 문제점을 설명하기 위한 도면
도 8은 본 발명의 실시예에 따른 네트워크 인터페이스의 구성을 도시한 도면
도 9는 본 발명의 실시예에 따른 자율 클럭 제어기의 내부 구성을 도시한 도면
도 10 내지 도 14는 본 발명의 제1 실시예에 따른 클럭 주파수 조정 알고리즘을 나타낸 도면
도 15는 본 발명의 제1 실시예에 따른 클럭 주파수 설정 과정을 도시한 순서 도
도 16은 본 발명의 제2 실시예에 따른 클럭 주파수 설정 방법을 도시한 도면
도 17은 본 발명의 제2 실시예에 따른 클럭 주파수 설정 과정을 도시한 순서
본 발명은 시스템-온-칩에서 네트워크-온-칩에 연결되는 프로세싱 장치들간의 통신 효율성을 높이면서 동시에 각 장치의 소비 전력을 낮추기 위한 회로 설계방법 및 장치에 관한 것으로, 더욱 상세하게는 네트워크-온-칩에서 네트워크-온-칩에 연결되는 프로세싱 장치들간의 통신 패턴 및 혼잡 상황에 따라 각 프로세싱 장치들의 동작 주파수를 가변하도록 하는 장치 및 제어 방법에 관한 것이다.
IT(Information Technology) 기기의 융복합화(Convergence) 및 경박 단소화 추세로 인하여 여러 고성능의 IT 장치들이 하나의 칩에 집적되는 시스템-온-칩(System-On-Chip; 이하 SOC라고 한다) 기술이 발전하고 있다. 특히 SOC를 실현하는 기술 중에서도 여러 프로세싱 장치들을 연결하고 서로의 통신을 가능하게 하는 버스 시스템의 중요성이 점차 부각되고 있다. 그러나 시스템의 집적도가 높아지고 프로세싱 장치간의 정보 교환양이 급격히 증가하면서 기존의 공유 버스(Shared Bus) 구조는 대역폭(Bandwidth)의 한계로 인해 고성능 SOC에서의 활용도가 점차 떨 어지고 있다. 대역폭의 한계를 극복하고, 집적도가 높은 고성능 SOC의 설계를 용이하게 하기 위해 네트워크-온-칩(Network-On-Chip; 이하 NOC라고 한다) 기술이 제시되었다.
NOC 기술은 일반적인 컴퓨터 또는 통신 기기사이의 패킷(Packet) 또는 서킷(Circuit) 네트워크 기술을 SOC의 프로세싱 장치간 통신 구조에 응용시킨 차세대 온 칩 버스 기술이다.
도 1은 네트워크-온-칩의 구조를 도시한 것이다.
도 1을 참조하면, NOC(200)는 일반적으로 네트워크-온-칩에 연결되는 다수의 프로세싱 장치(Processing Element; 이하 PE라고 한다)(100)와 네트워크를 연결해주는 네트워크 인터페이스(Network Interface; 이하 NI라고 한다)(210), 스위치(또는 라우터)(220), 그리고 NI(100)와 스위치(220) 사이 또는 서로 다른 스위치 사이를 연결하는 양방향 링크(230)를 포함한다. 이 때 PE와 스위치 사이 또는 서로 다른 스위치간의 기하학적 연결상태(Topology)는 응용에 맞추어 최적의 연결상태로 설계된다.
도 2는 공유버스 구조를 도시한 것이다.
도 2를 참조하면, 종래의 공유버스 구조에서는 전송하고자 하는 데이터가 공유 버스(330)에 연결된 모든 PE(310)에 전달이 되고, 해당 데이터의 목적지인 하나의 PE만이 선택적으로 데이터를 받아서 저장한다. 이러한 데이터 전송 방식은 버스 전 영역과 모든 PE의 입력 단까지 전기적 신호가 전달되는 일대다(一對多 또는 Broadcast) 방식이다. 이러한 공유버스 구조는 한 번에 하나의 데이터만이 공유버스를 통해 전송 가능하기 때문에, 대역폭의 한계가 뚜렷하고 공유버스의 전기적 부하가 커서 불필요하게 전력이 소비되며, 이 때문에 동작속도를 높이는데 한계가 있다.
반면, 도 1과 같은 구조를 가지는 NOC는 전송 데이터가 스위치에 의해 선택되는 링크만을 통해 전달되는 일대일(一對一 또는 Point-to-Point) 방식이다. 즉 서로 겹치지 않는 링크를 통해 동시 다발적인 데이터 전송이 가능하기 때문에 공유버스 구조에 비하여 전송 대역폭이 월등히 높다. 또한 전송 링크는 기본적으로 근접 스위치끼리만 연결되기 때문에 전기적 부하가 적으며, 따라서 네트워크의 동작 속도를 높이기에 용이하다. NOC 구조에서의 데이터 전송 단위는 일반적인 네트워크에서와 비슷한 형태의 패킷이며, 그 크기는 응용되는 환경에 맞추어 적절히 정해진다.
이하에서는 NOC의 구성에 대해서 좀더 자세히 설명한다.
도 3은 데이터 관점에서 NI를 간략하게 나타낸 것이다.
도 3을 참조하면, NI(210)는 패킷 생성/분해기(Packet Composer/Decomposer)(211)와 출력 패킷 버퍼(212) 그리고 입력 패킷 버퍼(214)를 포함한다.
패킷 생성기(211)에서는 PE(100)로부터 받은 어드레스(Address)와 컨트롤(Control) 신호를 바탕으로 패킷의 헤더를 만들고, 어드레스와 데이터(Data) 신호를 묶어서 페이로드를 구성하며, 패리티(Parity)와 같은 에러코드를 패킷 테일에 붙여서 하나의 패킷을 만든다. 이 때 패킷 헤더는 프로토콜에 정의된 여러 가지 정보를 담고 있는데, 그 중 가장 중요한 것이 라우팅 정보이다. 즉, 패킷 헤더는 해당 패킷이 목적지까지 정확하게 전달되기 위한 네트워크 주소를 포함한다. 이렇게 만들어진 패킷은 출력 패킷 버퍼(212)에 저장한다.
상기 출력 패킷 버퍼(212)는 순차적으로 버퍼에 저장된 패킷들을 출력 패킷 포트(213)에 연결된 링크를 통해 해당 스위치로 내보낸다. 또한 역방향인 스위치에서 입력 패킷 포트(215)를 통하여 NI(210)로 들어오는 입력패킷은 입력 패킷 버퍼(214)에 순차적으로 저장된다. 출력 패킷 버퍼(212) 및 입력 패킷 버퍼(214)로는 FIFO(First In First Out) 버퍼가 사용될 수 있다.
패킷 분해기(Packet Decomposer)(211)는 입력 패킷 버퍼(214)로부터 순차적으로 패킷을 가져와서 분해하고 해독하여 적절한 순간에 PE(100)로 데이터를 넘겨준다.
도 4는 패킷 스위치 또는 라우터의 구성을 도시한 것이다.
도 4를 참조하면, 패킷 스위치 또는 라우터(이하 패킷 스위치라고 한다)(220)는 일반적으로 입력 패킷 버퍼(223), 출력 패킷 버퍼(225), 입력 패킷 버퍼(223)와 출력 패킷 버퍼(225)를 연결하는 크로스바 패브릭(Crossbar Fabric)(221), 그리고 크로스바 패브릭(221)을 제어하는 크로스바 스케줄러(Crossbar Scheduler)(222)를 포함한다.
패킷 스위치(220)의 주된 역할은, 패킷 헤더에 적혀 있는 라우팅 정보를 바탕으로 입력 포트(224)로부터 입력된 패킷을 의도된 특정 출력포트(226)로 전달해 주는 것이다.
크로스바 패브릭(221)은 기존의 공유버스와는 달리 동시에 여러 개의 패킷을 서로 다른 출력 포트로 전달해 줄 수 있는 기능(Non-Blocking Switching)을 제공한다. 만약 서로 다른 입력 패킷 버퍼(223)로부터 동시에 같은 출력 포트로의 전송을 요청받은 경우에는 충돌(Output Conflict)이 발생한다. 이러한 경우에는 어쩔 수 없이 하나의 패킷만을 선택하여 전송하며, 선택되지 못한 패킷은 입력 패킷 버퍼에서 기다린 후 다음 시간에 전송을 하게 된다. 이와 같이 충돌이 발생할 경우, 하나의 요청만을 선택해 주는 역할을 크로스바 스케줄러(222)에서 한다. 스케줄러(222)는 응용에 따라 여러 가지 스케줄링 알고리즘으로 구현이 가능하다. 보편적으로 공평성을 최우선으로 중요시하는 라운드-로빈(Round-Robin) 알고리즘이나 미리 정의된 우선순위를 따르는 고정-우선순위(Fixed-Priority) 알고리즘을 사용한다. 또한 응용에 따라서 출력 패킷 버퍼는 생략이 될 수 있다.
이와 같은 패킷 통신의 경우, 스위치 노드에서의 출력 포트 충돌(Output Conflict) 또는 수신 PE에서의 패킷 몰림(Hot Spot) 현상 등으로 인해 패킷의 전송이 지연되면 각 스위치 노드 또는 NI의 패킷 버퍼가 이를 임시 저장한다. 그러나 버퍼의 용량이 유한하기 때문에 무한정 패킷을 저장해 둘 수 없다. 일반적 컴퓨터 네트워크(인터넷)에서는 이 버퍼의 용량이 초과되면(Buffer Overflow) 패킷의 손실(Loss)이 발생할 수도 있다. 그러나 반도체 장치에서와 같이 고속의 정확한 동작을 요하는 시스템에서 이와 같은 패킷 손실은 심각한 시스템 지연 및 고장(Failure)으로 나타나게 되어 매우 바람직하지 못하다. 따라서 이러한 버퍼 오버플로로 인한 패킷 손실을 미연에 방지하기 위해 NOC에서는 플로 컨트롤(Flow Control)이란 메커니즘을 사용한다.
플로 컨트롤 방식으로서, 일반적으로 'End-to-End' 레벨보다는 구현이 간편한 링크 레벨의 플로 컨트롤 방식을 사용한다. 이 방식에 따르면 어느 패킷 버퍼의 사용량(Backlog)이 미리 정의된 문턱값(Threshold)을 초과하면 즉각적으로 이 버퍼에 패킷을 전송하는 소스개체가 더 이상 패킷을 보내지 못하도록 신호를 보낸다. 이 소스개체는 또 다른 패킷 버퍼이거나 PE가 될 수도 있다.
도 5는 Back-Pressure 신호를 이용한 플로 컨트롤의 작동 방식을 나타낸 것으로, 스위치의 입력 패킷 버퍼에서 오버플로가 발생할 경우를 예로 든 것이다.
도 5를 참조하면, 이 방식에서는 모든 링크와 병렬로 1비트의 Back-Pressure(BP) 신호선(점선으로 표시한 화살표)이 같이 존재하며, BP 신호의 전달 방향은 링크의 패킷전송 방향(실선으로 표시한 화살표)과 반대이다. 스위치2(620)의 입력 패킷 버퍼1(621)의 문턱값이 4 라고 가정하면, 현재 버퍼(621)의 Backlog가 4 이므로 플로 컨트롤이 작동을 시작한다. 그러면 문턱값을 넘은 패킷 버퍼에 연결된 Back-Pressure 신호선에 HIGH 값이 실리게 되고, 이 신호는 결국 오버플로 된 버퍼(621)에 패킷을 전송하고 있는 유일한 소스인 스위치1(610)의 출력 패킷 버퍼1(611)로 전달된다. 이 출력 패킷 버퍼(611)는 즉각적으로 패킷 전송을 중단하고 해당 BP 신호선의 값이 LOW가 될 때까지 기다린다. 그 동안 이 출력 패킷 버퍼(611)로 들어오는 패킷은 그 용량이 허용하는 한 계속해서 출력 패킷 버퍼에 저장된다. 어느 정도 시간이 경과하여 오버플로가 발생했던 스위치2(620)의 입력 패킷 버퍼1(621)의 Backlog가 4 보다 작아지면, 즉각적으로 해당 BP 신호가 LOW로 떨어지고, 이 신호를 전달받은 스위치1(610)의 출력 패킷 버퍼1(611)은 다시 패킷 전송을 시작한다. 이와 같은 방법으로 네트워크 상의 패킷 버퍼 오버플로로 인한 패킷 손실을 방지한다. 또한 이 플로 컨트롤 방법은 네트워크의 과부하를 미연에 방지함으로서 장기간으로 볼 때에 네트워크의 전체 효율을 높여 주는 역할을 한다.
한편, 스위치의 출력 패킷 버퍼에 오버플로가 발생할 경우에는, 해당 출력 포트의 크로스바 스케줄러가 해당 출력 포트로의 패킷 전송 요청을 기각함으로써 해당 출력 패킷 버퍼로 패킷이 전송되는 것을 방지한다. 이에 대해서는 본 발명과 관계가 깊지 않으므로 자세한 설명은 생략하기로 한다. 또한 NI와 연결된 스위치의 입력 패킷 버퍼에 오버플로가 발생할 경우에도 도 5에서 설명한 방법과 동일한 방법으로 플로 컨트롤이 작동된다. 이에 대해서는 본 발명과 관계가 깊지 않으므로 자세한 설명은 생략하기로 한다.
도 6은 NI와 PE 사이의 플로 컨트롤 방법을 나타낸 것이다.
도 6을 참조하면, NI(210)의 출력 패킷 포트(213)에 연결된 네트워크에서 혼잡현상(Congestion)이 발생하여 해당 출력 패킷 포트로의 BP 신호가 HIGH로 올라가면, 해당 패킷 출력 버퍼(212)는 즉시 패킷의 출력 전송을 멈추게 된다. 이렇게 중지상태가 지속될 경우 버퍼(212)로 입력되는 패킷은 계속 버퍼(212)에 저장되기 때문에 이 버퍼는 문턱값까지 사용량이 증가하게 된다. 이 경우 이 버퍼(212)는 BP 신호를 HIGH로 올려서 이러한 사실을 패킷 생성기(211)에게 알리고, 패킷 생성기(211)는 즉각적으로 해당 PE로 HOLD 신호를 보낸다. 이러한 신호의 전송 경로를 점선으로 표시하였다. HOLD 신호는 해당 PE(100)에게 더 이상의 패킷 출력을 중지하도록 하기 위한 것이다. NI(210)에서 출력된 HOLD 신호는 PE(100)가 마이크로프로세서인 경우 일반적으로 PE(100)의 WAIT 입력포트(111)로 연결된다. PE(100)는 WAIT 신호가 입력(ASSERT)되면, NI(210)와의 모든 전송상태를 중지시키고 WAIT 신호가 취소될 때까지 기다린다. 그 동안 PE(100)는 동작을 멈추게 된다. 이 때 플로 컨트롤의 목적이 되는 PE의 Data-Out만을 정지시키는 것이 아니라 PE 전체가 동작을 멈추게 되므로 Data-In 포트(112) 마저도 그 기능이 정지된다. 따라서 해당 NI의 입력 패킷 버퍼에서 PE로의 패킷 전송이 막히게 되며, 이는 곧 입력 패킷 버퍼의 오버플로로 나타나게 된다. 이로 인해 입력 패킷 버퍼의 플로 컨트롤이 발생하여, 정상적으로 동작하던 네트워크(Smooth Network)도 혼잡상태로 변하게 된다. 이와 같은 연쇄적인 네트워크 혼잡으로 인해 네트워크는 아무런 기능을 수행할 수 없는 교착 상태로 빠지게 되고, 이는 곧 시스템의 장애(Fault)로 이어진다. 이러한 현상을 데드락(Deadlock) 현상이라고 한다.
또한 종래의 플로 컨트롤 방식은 PE의 동작을 멈추게 하였다가 네트워크의 혼잡이 풀리게 되면 다시 PE의 동작을 재개시키는 방법을 사용한다. 그러나 대부분의 프로세서가 WAIT 상태(또는 클럭의 정지상태)로 들어갔다가 다시 빠져 나오는 데에는 최소 1Cycle, 많게는 수 Cycle의 지연(Latency)이 발생한다. 이 경우, 잦은 플로 컨트롤의 개입으로 인하여(특히 패킷 버퍼의 용량이 충분하지 않은 경우) PE가 반복적으로 정지(WAIT) 상태와 동작(ACTIVE) 상태를 빈번하게 왕복하게 되어 불필요한 Latency를 요구하게 된다. 이는 곧 PE의 성능저하와 네트워크 효율 저하의 원인이 된다.
이를 해결하기 위한 방법은 패킷 버퍼의 용량을 충분히 늘려 주는 것인데, 이는 복잡한 시스템의 동적인 상황을 칩 설계 단계에서 미리 예측하기가 매우 어려울 뿐 아니라, 패킷 버퍼 자체가 소비하는 면적과 전력이 다른 로직 블록들과 비교할 때 월등히 높기 때문에 충분한 버퍼 용량을 제공하기란 매우 힘든 실정이다. 따라서 제한된 버퍼 용량에서의 효율적인 플로 컨트롤 방법을 제안하는 것이 NOC의 중요한 과제 중 하나이다.
또한 종래의 플로 컨트롤 방식과 같이 WAIT 신호를 가하여 PE의 동작을 정지시키는 방식은, PE가 WAIT 상태라고 해도 여전히 PE로 클럭이 입력되고 있기 때문에 PE가 동작을 하지 않더라도 클럭으로 인한 전력을 소비하게 된다. 즉 네트워크의 혼잡이 오랫동안 지속되는 경우, PE에서는 이러한 불필요한 전력을 계속해서 소비하게 된다. 이러한 클럭에서의 소비 전력을 없애기 위해 플로 컨트롤이 작동할 때 PE의 클럭을 가로막는 방법(Clock-Gating)이 있는데, 이 방법의 경우 위 상술한 문제점들이 더 심각해질 수 있다.
또한 종래 NOC에서의 플로 컨트롤 방식은 패킷 버퍼에 오버플로가 발생할 때까지는 전혀 제어를 하지 않는다. 따라서 도 7에 도시한 바와 같이 네트워크의 패킷 버퍼의 대부분을 하나의 PE가 보내는 패킷들로만 꽉 차는 현상이 발생 할 수 있다. 이 경우 버퍼 Q1~Q4에서 오버플로로 플로 컨트롤이 발생하여, 문제가 되는 PE(A)뿐 아니라 PE(B)와 PE(C)까지 동작이 정지되는 문제가 발생한다. 이러한 문제를 해결하는 방법은 PE(A)로부터의 패킷이 네트워크의 패킷 버퍼를 모두 차지하기 전에, PE(A)의 패킷 출력 빈도를 줄이는 것이다. 이를 일반적인 네트워크에서는 'Traffic Shaping' 또는 'Rate Control'이라고 한다. 그런데 이러한 개념(프로토콜)을 그대로 NOC에 적용하기에는 그 구현이나 제어 방법이 매우 복잡하기 때문에 문제가 있다.
본 발명이 이루고자 하는 기술적 과제는 복잡한 네트워크-온-칩의 설계에 있어서, 데드락의 위험을 감소시키고, 잦은 PE의 On/Off로 인한 불필요한 지연 제거를 통해 시스템의 성능 향상시키고, 네트워크 과부하로 PE의 정지상태에서 불필요하게 소비하는 전력을 감소시키며, 패킷 버퍼의 효율적인 사용으로 네트워크에서 필요로 하는 패킷 버퍼의 용량을 줄임으로써 칩 면적 및 소비 전력 감소시키기 위한 장치 및 제어방법을 제공하는 것이다.
본 발명의 실시예에 따른 네트워크-온-칩 장치는, 다수의 프로세싱 장치들에 각각 연결되는 다수의 네트워크 인터페이스와, 상기 네트워크 인터페이스와 네트워크 인터페이스간에 데이터의 송수신을 제어하는 다수의 스위치로 이루어지는 네트워크와, 상기 네트워크 인터페이스들과 스위치들 사이 및 스위치와 스위치 사이를 연결하는 다수의 양방향 링크들을 포함하며,
상기 네트워크 인터페이스는,
순차적으로 저장된 패킷들을 출력 패킷 포트에 연결된 상기 링크를 통해 해당 스위치로 출력하는 출력 패킷 버퍼와, 상기 스위치에서 입력 패킷 포트를 통하여 입력되는 패킷을 순차적으로 저장하는 입력 패킷 버퍼와, 상기 프로세싱 장치들 로부터 수신한 어드레스 신호와 컨트롤 신호 및 데이터 신호를 이용하여 패킷을 생성하여 상기 출력 패킷 버퍼에 저장하며, 상기 입력 패킷 버퍼로부터 전달받은 패킷을 분해하고 해독하여 상기 프로세싱 장치로 전달하는 패킷 생성기 및 분해기와, 상기 출력 패킷 버퍼의 사용량에 따라 해당 프로세싱 장치로 출력되는 클럭 주파수를 제어하는 자율 클럭 제어기를 포함하는 것을 특징으로 한다.
또한 본 발명의 실시예에 따르면, 다수의 프로세싱 장치들과 네트워크를 연결하는 네트워크-온-칩 장치에서 상기 프로세싱 장치로 입력되는 클럭의 주파수를 제어하는 방법에 있어서, 시스템이 동작을 시작하면, 상기 프로세싱 장치들로 입력되는 클럭 주파수를 미리 정해진 초기값으로 설정하고, 상기 설정된 주파수를 가지는 클럭을 상기 프로세싱 장치들로 출력하는 과정과, 미리 정해진 시간동안 상기 네트워크로 출력되는 데이터를 저장하는 출력 패킷 버퍼의 사용량이 미리 설정된 문턱값을 초과하였는지를 확인하는 과정과, 상기 문턱값을 초과하지 않았으면, 상기 프로세싱 장치들로 출력되는 클럭을 정지시킨 후, 상기 출력 패킷 버퍼의 사용량이 상기 문턱값 이하로 감소될 때까지 대기하는 과정과, 상기 출력 패킷 버퍼의 사용량이 상기 문턱값 이하로 감소되었으면, 상기 프로세싱 장치들로 출력되는 클럭의 주파수를 소정의 목표 주파수까지 증가시키고, 상기 목표 주파수를 재설정하는 과정과, 상기 미리 정해진 시간동안 상기 출력 패킷의 사용량이 상기 문턱값을 초과하였으면, 상기 프로세싱 장치들로 출력되는 클럭의 주파수를 소정 크기만큼 증가시키는 과정을 포함하는 것을 특징으로 한다.
또한 본 발명의 실시예에 따르면, 다수의 프로세싱 장치들과 네트워크를 연 결하는 네트워크-온-칩 장치에서 상기 프로세싱 장치로 입력되는 클럭의 주파수를 제어하는 방법에 있어서, 상기 네트워크로 출력되는 데이터를 저장하는 출력 패킷 버퍼의 사용량에 따라 상기 프로세싱 장치들로 입력되는 클럭의 주파수를 각각 설정하여 저장하는 과정과, 상기 출력 패킷 버퍼의 사용량이 미리 설정된 문턱값을 초과하였는지를 확인하는 과정과, 상기 확인 결과 문턱값을 초과하였으면, 상기 출력 패킷 버퍼의 현재 사용량에 따라 미리 설정되어 저장된 클럭 주파수를 가지는 클럭을 생성하여 출력하는 과정과, 상기 확인 결과 문턱값을 초과하지 않았으면, 상기 클럭의 주파수를 0으로 설정하여 상기 클럭의 출력을 정지시키는 과정을 포함하는 것을 특징으로 한다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대한 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 8은 본 발명의 실시예에 따른 NI의 구성을 도시한 것이다.
도 8에 도시한 바와 같이, 본 발명은 기존의 네트워크-온-칩에서의 NI에 자율 클럭 제어기(Autonomic Clock Control Unit; 이하 ACCU라고 한다)(916)를 새롭게 추가한다. 본 발명에서 제안하는 자율 클럭 제어기(916)는 네트워크 클럭(NET_CLK)에 동기되는 디지털 로직이다. 자율 클럭 제어기(916)는 해당 NI(910) 안의 입력 패킷 버퍼(914)의 사용량(Backlog)과 출력 패킷 버퍼(912)의 사용량을 입력으로 받으며, 해당 Processing Element(PE)의 클럭인 PE_CLK를 출력한다. 또한 네트워크-온-칩의 클럭을 제어하기 위한 NET_CLK_CTRL을 선택적으로 출력할 수도 있다.
도 9는 본 발명의 실시예에 따른 자율 클럭 제어기의 내부 구성을 도시한 것이다.
도 9를 참조하면, 본 발명의 실시예에 따른 자율 클럭 제어기는 주파수 제어기(1011)와 주파수 생성기(1012)를 포함한다.
주파수 생성기(1012)는 주파수 제어기(1011)로부터 입력되는 제어 신호(도 9에서는 UP과 DOWN)에 따라 조정된 PE_CLK을 생성하는 역할을 한다. 주파수 제어기(1011)는 입력 및 출력 패킷 버퍼의 사용량을 근거로 하여 최적의 PE 주파수와 네트워크 주파수를 찾아내는 디지털 로직이다.
주파수 제어기(1011)는 출력 패킷 버퍼의 문턱값(Threshold)과 입력 패킷 버퍼의 낮은 문턱값(Low-Threshold)을 저장해 두는 레지스터(Register)(1013)를 포함하며, 그 값은 시스템 초기화작업(Initialization) 단계 또는 실시간으로 외부의 프로세서에 의해 접근 및 설정이 가능하도록 구현될 수 있다. 일반적으로 주파수 제어기(1012)는 FSM(Finite State Machine)으로 구현이 가능하며, 주파수 생성기(1011)는 주파수 합성기(Frequency Synthesizer) 또는 주파수 분할기(Frequency Divider)로 간단히 구현이 가능하다.
한편, 종래 기술에서는 PE가 독립적인 클럭 소스를 사용하는데 반하여, 본 발명에서는 네트워크-온-칩의 현재 상황(혼잡의 정도)을 반영하여 최적의 PE 동작 주파수를 찾아내고 이 클럭을 PE에 공급함으로써 플로 컨트롤을 가능하게 한다. 궁극적으로는 모든 PE가 이와 같이 네트워크의 상황을 고려한 최적의 주파수를 찾아내어 동작함으로써 전체 시스템의 효율(예를 들어, 성능, 전력소비효율, 칩 면적 축소(원가 절감) 효과 등)을 높이는데 그 목적이 있다. 또한 네트워크 자체(NI들과 스위치들) 또한 전체 시스템에서 필요로 하는 최적의 동작속도로 클럭 주파수를 가변함으로써 전력소비를 최소화하는데 목적이 있다.
본 발명은 네트워크-온-칩에 연결된 각 PE의 동작속도를 네트워크의 상황을 인식(Traffic-Aware)하여 조정한다. 이를 통해 자연스러운 플로 컨트롤과 동적 전력 관리(Dynamic Power Management)가 가능하다. 이하에서는 본 발명의 실시예에 따른 네트워크-온-칩의 상세 동작 설명에 대하여 설명한다.
먼저, 시스템에 전원이 입력되고 모든 PE들이 초기화작업(Initialization)을 시작한다. 이 때 PE로 공급되는 클럭 주파수는 PE의 동작 가능한 최대 동작 주파수로 시작된다. 초기 주파수 값은 응용에 따라서 선택이 가능하며, 이는 초기화 작업 단계에서 소프트웨어에 의해 설정이 가능하다. 각 PE는 자신의 최대 동작 주파수로 동작을 개시하고, 네트워크를 통해 패킷을 주고받는다. 그 와중에 여러 가지 이유로 인해 네트워크의 혼잡이 발생하면, 해당 PE의 NI의 출력 패킷 버퍼의 Backlog가 증가하게 된다. 출력 패킷 버퍼의 Backlog의 증가로 인해 플로 컨트롤이 작동하는데, 그 방법은 응용에 따라 여러 가지가 있을 수 있다.
<<제1 실시예>>
본 발명의 제1 실시예에 따르면, 출력 패킷 버퍼의 Backlog가 문턱값을 넘으면, 주파수 제어기는 GATE 신호를 주파수 생성기에 전달하고, 주파수 생성기는 즉각적으로 PE_CLK을 GATING하여 PE의 동작을 정지시킨다. 소정 시간이 경과한 후에 네트워크의 혼잡이 풀리면, 출력 패킷 버퍼의 패킷이 네트워크로 전송되며, 따라서 출력 패킷 버퍼의 Backlog가 문턱값보다 감소하게 된다. 그러면 주파수 제어기는 GATE 신호를 해제하여 주파수 생성기가 PE_CLK을 다시 출력하도록 제어한다. 이때의 PE_CLK 주파수 값은 알고리즘을 통하여 설정한다.
도 10 내지 도 14는 본 발명의 제1 실시예에 따른 PE_CLK 주파수 조정 알고리즘들을 나타낸 것이다.
도 10을 참조하면, 주파수 생성기는 네트워크 혼잡이 해제된 이후에 PE_CLK 주파수 값을 0 Hz에서부터 특정 주파수(Fmax)까지 소정의 기울기를 갖도록 선형적으로 증가시킬 수 있다. 또한, 주파수 생성기는 도 11에 도시한 바와 같이 PE_CLK 주파수 값을 비선형적 증가시키거나, 도 12에 도시한 바와 같이 0 Hz에서 Fmax까지 한번에 올릴 수 있다. 이러한 알고리즘은 응용에 따라서 선택이 가능하다. 이 때 Fmax값 또한 응용에 따라 결정할 수 있다. 예를 들어, PE_CLK의 최대값을 혼잡이 발생하기 직전의 주파수(Fmax0)로 정하거나, 도 10에 도시한 바와 같이 Fmax0보다 한 단계 낮은 주파수로 설정하거나, 도 13에 도시한 바와 같이 1/2Fmax0로 설정할 수 있다.
한편, 상술한 바와 같은 알고리즘에 따라 Fmax의 주파수를 점차적으로 낮추면서 오랜 시간 동안 혼잡이 발생하지 않는다면, 네트워크가 안정화 되었거나 Fmax값이 너무 낮게 설정되어 네트워크를 비효율적(Under-Utilization)으로 사용하는 경우일 수 있다. 그러므로 일정 시간(Time-Out) 동안 네트워크의 혼잡이 발생하지 않는다면 PE_CLK의 주파수를 서서히 높여서 네트워크의 활용도를 높여 볼 필요가 있다.
이를 위해 주파수 제어기에 Timer를 구현하고, Timer에 설정된 시간 동안 혼잡이 발생하지 않는다면, 도 14에 도시한 바와 같이 주파수 생성기에 UP 신호를 가하여 PE_CLK의 주파수를 한 단계씩 높일 수 있다. 도 14에서는 편의상 네트워크 혼잡이 해제된 이후에 PE_CLK 주파수 값을 Fmax까지 선형적으로 증가시키는 것으로 도시하였으나, 앞서 설명한 바와 같이 도 10 내지 도 13의 방법들을 적용할 수 있다.
도 15는 본 발명의 제1 실시예에 따른 주파수 생성기의 클럭 주파수 설정 과정을 도시한 순서도이다.
도 15를 참조하면, 1601 단계에서 시스템이 부팅을 시작하면, 1602 단계에서 PE의 초기 동작 주파수가 미리 정해진 값으로 설정된다(fPE_CLK=Fmax0). 1603 단계에서 타이머 T1을 시작한다. 타이머 T1은 T1이라는 시간동안 출력 패킷 버퍼에 쌓인 데이터량(Backlog)이 문턱값을 초과하지 않을 경우 PE_CLK의 주파수를 한 단계 높이도록 하기 위한 것이다.
1604 단계에서 NI의 출력 패킷 버퍼에 쌓인 데이터량이 문턱값을 초과하였는지를 확인한다. 확인 결과 초과하였으면 1605 단계에서 PE_CLK을 Gating 한다(fPE_CLK=0). 1606 단계에서는 출력 패킷 버퍼에 쌓인 데이터량이 문턱값 미만이 될 때까지 대기하고, 문턱값 미만이 되면 1607 단계로 진행하여 PE_CLK를 도 10 내지 도 13에 도시한 방법으로 증가시킨다. 이 과정에서 다시 문턱값을 초과하면 도 10 내지 도 13에 도시한 바와 같이 목표 주파수 FTARGET를 재설정하며, 문턱값을 초과하지 않고 PE_CLK가 FTARGET까지 증가하면 1603 단계로 복귀한다.
한편, 1604 단계에서 확인한 결과 문턱값을 초과하지 않았으면 타이머 T1이 타임아웃 될 때까지 대기하며, 타임아웃 되면 1609 단계로 진행하여 도 15에 도시한 바와 같이 PE_CLK 주파수를 증가시킨다. 그리고 1610 단계에서 타이머 T1을 리셋 및 재시작한 다음 1604 단계로 복귀한다.
<<제2 실시예>>
도 16은 본 발명의 제2 실시예에 따른 PE_CLK 주파수 조정 알고리즘을 도시한 것이다.
본 발명의 제2 실시예에 따르면, 출력 패킷 버퍼의 Backlog 값에 따라 미리 PE의 클럭 주파수를 정하고 이를 매핑 테이블 형태로 저장하여 사용할 수 있다. Backlog 값이 영(0)일 경우에는 네트워크가 전혀 혼잡하지 않다는 것을 의미하며, 따라서 PE_CLK의 주파수를 PE의 최고 동작 주파수로 상승시킨다. Backlog 값이 1 또는 2가 되는 경우에는 주파수를 조금씩 낮추고, 혼잡이 발생하여 Backlog가 문턱값까지 다다르면 PE_CLK을 GATING하여 PE의 동작을 정지시킨다.
도 17은 본 발명의 제2 실시예에 따른 클럭 주파수 설정 과정을 도시한 순서 도이다.
도 17을 참조하면, 주파수 생성기는 1800 단계에서 출력 패킷 버퍼에 쌓인 데이터량이 문턱값을 초과하였는지를 확인하고, 초과하였으면 1801 단계에서 PE_CLK을 fPE_CLK=0으로 설정한다.
확인결과 초과하지 않았으면, 1810 단계에서 출력 패킷 버퍼의 Backlog를 확인한다. 확인결과 Backlog=0이면 1811 단계에서 fPE_CLK=F0로 설정한다. Backlog=0이 아니면 1820 단계에서 Backlog=1인지를 확인한다. 이와 같은 방법으로 출력 패킷 버퍼의 Backlog를 확인하여 PE_CLK 주파수값을 각각의 Backlog값에 맞는 미리 설정된 주파수 값으로 설정한다.
이상에서는 플로 컨트롤 관점에서 본 발명의 실시예에 따른 자동 클럭 제어기의 동작을 설명하였다. 이하에서는 PE의 동적 전력 관리(Dynamic Power Management) 관점에서 본 발명의 실시예에 따른 자동 클럭 제어기의 동작을 살펴본다.
해당 NI의 입력 패킷 버퍼의 Backlog가 미리 정해둔 낮은 문턱값(Lower-Threshold)보다 낮게 사용되고 있다면, 이는 PE가 필요 이상으로 빠르게 동작하거나 네트워크가 필요 이상으로 느리게 동작한다고 볼 수 있다. 전자의 경우라면 PE의 동작 주파수를 낮춤으로서 PE가 불필요하게 빠르게 동작하는 것을 방지하여 전력소모를 낮출 필요가 있다. 이 경우 주파수 제어기는 주파수 생성기에게 DOWN 신호를 전달하여 PE_CLK의 주파수를 낮추도록 한다. 반면에, 후자의 경우라면 네트워 크의 동작 주파수를 높일 필요가 있다. 이 경우에는 NET_CLK_CTRL 신호를 전달하여 네트워크의 동작 주파수를 높이도록 한다. 그러나 네트워크의 동작 주파수는 해당 NI뿐만 아니라 모든 NI 및 스위치에 영향을 미치므로 종합적인 판단에 의해 결정되어야 한다.
마지막으로 PE의 네트워크 접속 지연 요구조건에 대하여 설명한다.
특정 응용에 맞추어 설계된 프로세서 또는 로직 블록의 경우, 일반적인 마이크로프로세서와 같은 WAIT 신호가 존재하지 않을 수 있다. 이러한 PE가 네트워크를 통해 또 다른 PE(예를 들어, 메모리)에게 데이터를 요청할 때(메모리의 READ ACCESS), 미리 정해진 지연시간(클럭 사이클 단위의 지연) 후에 무조건적으로 데이터를 받아야 한다. 이러한 경우 패킷 네트워크 특성상 정확한 지연시간을 맞추어 데이터를 전달해 줄 수 없다. 이 때, 본 발명에서 제안하는 클럭 제어 방법을 사용하면 이러한 문제를 간단히 해결될 수 있다.
예를 들어, PE(A)가 네트워크를 통해 PE(메모리)에 있는 데이터를 읽어 오기를 원하는 경우에 그 지연시간을 무조건 3 cycle로 맞추어져야 한다고 가정하면, 종래의 네트워크-온-칩에서는 이러한 정확한 지연시간의 제어가 불가능하다. 본 발명에서는 그 해결 방법으로, PE(메모리)로부터 읽어 오는 데이터 패킷이 PE(A)의 NI에 도착할 때까지 7cycle이 걸린다고 하면, PE(A)의 클럭 사이클을 4cycle동안 GATING 하도록 제어한다. 그 결과 PE(A)는 3cycle의 시간이 경과한 후에 메모리로부터 데이터가 도착한 것처럼 느끼게 된다. 이로 인하여 실제적으로 성능향상에는 도움이 되지 않더라도 이러한 특정 요구조건을 갖는 PE를 지연시간이 불특정한 네 트워크-온-칩과 같이 동작하도록 할 수 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
이상에서 상세히 설명한 바와 같이 동작하는 본 발명에 있어서, 개시되는 발명 중 대표적인 것에 의하여 얻어지는 효과를 간단히 설명하면 다음과 같다.
본 발명은 네트워크의 혼잡상황에 따라 해당 PE의 동작 주파수를 가변함으로써, 일정 가변구간이 지난 후에는 PE가 전체 시스템에서 최적의 주파수로 동작하도록 한다. 따라서 종래의 플로 컨트롤 방법에서와 같이 PE가 On/Off를 빈번히 반복하여 불필요한 지연시간을 줄일 수 있으므로 시스템 전체의 성능이 향상된다.
또한, 본 발명은 종래의 플로 컨트롤 방식에서처럼 PE의 동작을 정지시키는 것이 아니라 그 주파수를 낮춤으로서 끊김 현상 없이 동작이 가능하므로 네트워크 시스템의 Deadlock 현상을 방지할 수 있다.
또한, 본 발명은 각 PE가 최고의 동작주파수로만 동작하는 것이 아니라, 네트워크 상황에 적합한 최적의 동작속도에서 동작하므로, 현재 동작속도에 맞게 전원전압을 낮출 수 있고, PE에서 소비하는 동작 소비 전력을 감소시킬 수 있다.
또한, 본 발명은 NI 및 스위치에서의 패킷 버퍼 용량이 적을 경우, PE의 동 작 주파수가 네트워크에서 지원 가능한 대역폭에 맞추어 결정되므로 종래와 같은 잦은 혼잡현상이 발생하지 않게 되며, 이로 인하여 패킷 버퍼의 용량을 작게 설정할 수 있어서 칩 면적과 소비전력을 줄일 수 있다.
또한, 본 발명은 네트워크 자체의 동작 주파수 또한 통신량에 맞추어 그 조절이 가능하므로, 불필요하게 네트워크의 동작을 빠르게 할 필요가 없어지며, 이로 인하여 네트워크에서의 소비전력을 감소시킬 수 있다.
또한, 본 발명은 클럭 제어를 통하여 특정 지연 요구 조건을 갖는 PE를 지원할 수 있다.

Claims (13)

  1. 다수의 프로세싱 장치들에 각각 연결되는 다수의 네트워크 인터페이스와,
    상기 네트워크 인터페이스와 네트워크 인터페이스간에 데이터의 송수신을 제어하는 다수의 스위치로 이루어지는 네트워크와,
    상기 네트워크 인터페이스들과 스위치들 사이 및 스위치와 스위치 사이를 연결하는 다수의 양방향 링크들을 포함하며,
    상기 네트워크 인터페이스는,
    순차적으로 저장된 패킷들을 출력 패킷 포트에 연결된 상기 링크를 통해 해당 스위치로 출력하는 출력 패킷 버퍼와,
    상기 스위치에서 입력 패킷 포트를 통하여 입력되는 패킷을 순차적으로 저장하는 입력 패킷 버퍼와,
    상기 프로세싱 장치들로부터 수신한 어드레스 신호와 컨트롤 신호 및 데이터 신호를 이용하여 패킷을 생성하여 상기 출력 패킷 버퍼에 저장하며, 상기 입력 패킷 버퍼로부터 전달받은 패킷을 분해하고 해독하여 상기 프로세싱 장치로 전달하는 패킷 생성기 및 분해기와,
    상기 출력 패킷 버퍼의 사용량에 따라 해당 프로세싱 장치로 출력되는 클럭 주파수를 제어하는 자율 클럭 제어기를 포함하는 것을 특징으로 하는 네트워크온칩 장치.
  2. 제 1 항에 있어서,
    상기 자율 클럭 제어기는,
    상기 출력 패킷 버퍼의 사용량이 미리 정해진 문턱값을 초과하면 상기 클럭의 출력을 정지시키며,
    상기 클럭이 정지되고 소정 시간이 경과한 이후에, 상기 출력 패킷 버퍼의 사용량이 상기 문턱값 이하가 되면, 상기 클럭을 다시 출력하는 것을 특징으로 하는 네트워크온칩 장치.
  3. 제 1 항에 있어서,
    상기 자율 클럭 제어기는,
    상기 출력 패킷 버퍼의 사용량에 따라 최적의 프로세싱 장치 주파수를 검출하는 주파수 제어기와,
    상기 주파수 제어기로부터 수신되는 제어 신호에 따라 상기 프로세싱 장치의 클럭 주파수를 조정하여 출력하는 주파수 생성기를 포함하는 것을 특징으로 하는 네트워크온칩 장치.
  4. 제 3 항에 있어서,
    상기 주파수 제어기는,
    미리 정해진 상기 출력 패킷 버퍼 사용량의 문턱값을 저장하는 레지스터를 포함하는 것을 특징으로 하는 네트워크온칩 장치.
  5. 제 4 항에 있어서,
    상기 주파수 제어기는, 상기 출력 패킷 버퍼의 사용량이 미리 정해진 문턱값을 초과하면 상기 주파수 생성기의 동작을 제어하기 위한 제어신호를 출력하며,
    상기 주파수 생성기는, 상기 제어신호에 따라 상기 프로세싱 장치로 출력되는 클럭을 정지시키는 것을 특징으로 하는 네트워크온칩 장치.
  6. 제 5 항에 있어서,
    상기 주파수 제어기는,
    상기 클럭이 정지되고 소정 시간이 경과한 이후에, 상기 출력 패킷 버퍼의 사용량이 상기 문턱값 이하가 되면, 상기 클럭을 다시 출력하도록 제어하는 제어신호를 상기 주파수 생성기로 출력하는 것을 특징으로 하는 네트워크온칩 장치.
  7. 네트워크온칩 장치에 연결되는 하나 이상의 프로세싱 장치들과 상기 각 프로 세싱 장치들로 입력되는 각각의 클럭의 주파수를 제어하는 방법에 있어서,
    상기 프로세싱 장치로 입력되는 클럭 주파수들을 각각 미리 정해진 초기값으로 설정하고, 상기 설정된 주파수를 가지는 클럭을 상기 프로세싱 장치들로 출력하는 과정과,
    미리 정해진 시간동안 상기 네트워크온칩으로 출력되는 출력 패킷 버퍼에 저장된 데이터의 양이 미리 설정된 문턱값을 초과하였는지를 확인하는 과정과,
    상기 문턱값을 초과하였으면, 상기 프로세싱 장치로 출력되는 클럭을 정지시킨 후, 상기 출력 패킷 버퍼에 저장된 데이터의 양이 상기 문턱값 이하로 감소될 때까지 대기하는 과정과,
    상기 출력 패킷 버퍼에 저장된 데이터의 양이 상기 문턱값 이하로 감소되었으면, 상기 프로세싱 장치로 출력되는 클럭의 주파수를 소정의 목표 주파수까지 증가시키고, 상기 목표 주파수를 재설정하는 과정과,
    상기 미리 정해진 시간동안 상기 출력 패킷에 저장된 데이터의 양이 상기 문턱값을 초과하지 않았으면, 상기 프로세싱 장치로 출력되는 클럭의 주파수를 소정 크기만큼 증가시키는 과정을 포함하는 것을 특징으로 하는 클럭 제어 방법.
  8. 제 7 항에 있어서,
    상기 클럭 주파수를 목표 주파수까지 증가시키는 과정은,
    상기 클럭 주파수를 소정의 기울기를 갖도록 선형적으로 증가시키는 것을 특 징으로 하는 클럭 제어 방법.
  9. 제 7 항에 있어서,
    상기 클럭 주파수를 목표 주파수까지 증가시키는 과정은,
    상기 클럭 주파수를 지수 함수 또는 로그 함수의 기울기를 갖도록 비선형적으로 증가시키는 것을 특징으로 하는 클럭 제어 방법.
  10. 제 7 항에 있어서,
    상기 클럭 주파수를 목표 주파수까지 증가시키는 과정은,
    상기 클럭 주파수를 상기 목표 주파수까지 한번에 증가시키는 것을 특징으로 하는 클럭 제어 방법.
  11. 제 7 항에 있어서,
    상기 목표 주파수를 재설정하는 과정은,
    상기 출력 패킷 버퍼에 저장된 데이터의 양이 상기 문턱값을 초과하기 직전의 클럭 주파수보다 작거나 같은 값을 상기 목표 주파수로 설정하는 것을 특징으로 하는 클럭 제어 방법.
  12. 다수의 프로세싱 장치들과 연결되는 네트워크온칩 장치에서 상기 프로세싱 장치로 입력되는 각각의 클럭의 주파수를 제어하는 방법에 있어서,
    상기 네트워크로 출력되는 데이터를 저장하는 출력 패킷 버퍼의 사용량에 따라 상기 프로세싱 장치들로 입력되는 클럭의 주파수를 각각 설정하여 저장하는 과정과,
    상기 출력 패킷 버퍼의 사용량이 미리 설정된 문턱값을 초과하였는지를 확인하는 과정과,
    상기 확인 결과 문턱값을 초과하지 않았으면, 상기 출력 패킷 버퍼의 현재 사용량에 따라 미리 설정되어 저장된 클럭 주파수를 가지는 클럭을 생성하여 출력하는 과정과,
    상기 확인 결과 문턱값을 초과하였으면, 상기 클럭의 주파수를 0으로 설정하여 상기 클럭의 출력을 정지시키는 과정을 포함하는 것을 특징으로 하는 클럭 제어 방법.
  13. 제 12 항에 있어서,
    상기 클럭을 생성하여 출력하는 과정은,
    상기 출력 패킷 버퍼의 현재 사용량이 0일 경우에, 상기 프로세싱 장치에 사용가능한 최대 주파수를 상기 클럭의 주파수로 설정하는 것을 특징으로 하는 클럭 제어 방법.
KR1020060098446A 2006-10-10 2006-10-10 네트워크온칩 장치와 이를 위한 동작 주파수 제어 방법 KR100922965B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020060098446A KR100922965B1 (ko) 2006-10-10 2006-10-10 네트워크온칩 장치와 이를 위한 동작 주파수 제어 방법
US11/870,200 US7826460B2 (en) 2006-10-10 2007-10-10 Network-on-chip apparatus, and method for controlling dynamic frequency for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060098446A KR100922965B1 (ko) 2006-10-10 2006-10-10 네트워크온칩 장치와 이를 위한 동작 주파수 제어 방법

Publications (2)

Publication Number Publication Date
KR20080032742A KR20080032742A (ko) 2008-04-16
KR100922965B1 true KR100922965B1 (ko) 2009-10-22

Family

ID=39274898

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060098446A KR100922965B1 (ko) 2006-10-10 2006-10-10 네트워크온칩 장치와 이를 위한 동작 주파수 제어 방법

Country Status (2)

Country Link
US (1) US7826460B2 (ko)
KR (1) KR100922965B1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2463889A (en) * 2008-09-26 2010-03-31 Univ Dublin City Adaptive clocking system for a packet classifier
US8270316B1 (en) * 2009-01-30 2012-09-18 The Regents Of The University Of California On-chip radio frequency (RF) interconnects for network-on-chip designs
US8542691B2 (en) * 2009-06-30 2013-09-24 Oracle International Corporation Classes of service for network on chips
TWI417741B (zh) * 2009-09-14 2013-12-01 Univ Nat Taiwan 動態調整通道方向之方法及使用其之晶片網路架構
JP4856790B2 (ja) * 2010-03-05 2012-01-18 パナソニック株式会社 中継器
US8391281B2 (en) * 2010-03-31 2013-03-05 Toshiba America Research, Inc. Router design for 3D network-on-chip
CN101977152A (zh) * 2010-11-12 2011-02-16 复旦大学 一种适合于重构的高性能片上网络系统
US9064715B2 (en) 2010-12-09 2015-06-23 Taiwan Semiconductor Manufacturing Company, Ltd. Networking packages based on interposers
US8806176B2 (en) * 2011-02-22 2014-08-12 International Business Machines Corporation Applying advanced energy manager in a distributed environment
WO2012120769A1 (ja) * 2011-03-09 2012-09-13 パナソニック株式会社 中継装置、中継装置の制御方法、およびプログラム
US9164147B2 (en) * 2011-06-16 2015-10-20 Taiwan Semiconductor Manufacturing Co., Ltd. Method and apparatus for 3D IC test
US8832511B2 (en) 2011-08-15 2014-09-09 Taiwan Semiconductor Manufacturing Co., Ltd. Built-in self-test for interposer
KR101869749B1 (ko) * 2011-10-05 2018-06-22 삼성전자 주식회사 정적 라우터 기반의 코어스 그레인 재구성가능 어레이
WO2013054497A1 (ja) * 2011-10-14 2013-04-18 パナソニック株式会社 中継器、中継器の制御方法、およびコンピュータプログラム
JP2013196167A (ja) * 2012-03-16 2013-09-30 Toshiba Corp 情報処理装置
CN104102549B (zh) * 2013-04-01 2017-12-15 华为技术有限公司 一种实现多线程互斥操作的方法、装置和芯片
US11165717B2 (en) * 2015-10-26 2021-11-02 Western Digital Technologies, Inc. Fabric interconnection for memory banks based on network-on-chip methodology
US9876602B1 (en) 2016-12-16 2018-01-23 Red Hat, Inc. Managing processor frequencies
US10656701B2 (en) 2016-12-16 2020-05-19 Red Hat, Inc. Managing processor frequencies
CN113132272B (zh) * 2021-03-31 2023-02-14 中国人民解放军战略支援部队信息工程大学 基于流量感知的网络交换频率动态调整方法、系统及网络交换芯片结构
CN113852574B (zh) * 2021-11-29 2022-03-22 中科南京智能技术研究院 一种片上网络路由器
CN114519318B (zh) * 2022-02-15 2024-04-09 海光信息技术股份有限公司 Noc设计方法、装置、相关器件和设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030219026A1 (en) 2002-05-23 2003-11-27 Yea-Li Sun Method and multi-queue packet scheduling system for managing network packet traffic with minimum performance guarantees and maximum service rate control
US20040019733A1 (en) 2002-07-29 2004-01-29 Garinger Ned D. On chip network with memory device address decoding
US20060182031A1 (en) 2005-02-17 2006-08-17 Intel Corporation Techniques to provide recovery receive queues for flooded queues

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5367534A (en) * 1993-06-16 1994-11-22 Universal Data Systems, Inc. Synchronous flow control method
US6621818B1 (en) * 1998-10-19 2003-09-16 Texas Instruments Incorporated Ring configuration for network switches
JP3660517B2 (ja) * 1999-03-01 2005-06-15 三菱電機株式会社 データ受信装置、これに用いられるソースクロック再生方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
US7634589B2 (en) * 2004-09-23 2009-12-15 International Business Machines Corporation Method for controlling peripheral adapter interrupt frequency by estimating processor load in the peripheral adapter

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030219026A1 (en) 2002-05-23 2003-11-27 Yea-Li Sun Method and multi-queue packet scheduling system for managing network packet traffic with minimum performance guarantees and maximum service rate control
US20040019733A1 (en) 2002-07-29 2004-01-29 Garinger Ned D. On chip network with memory device address decoding
US20060182031A1 (en) 2005-02-17 2006-08-17 Intel Corporation Techniques to provide recovery receive queues for flooded queues

Also Published As

Publication number Publication date
US20080084893A1 (en) 2008-04-10
US7826460B2 (en) 2010-11-02
KR20080032742A (ko) 2008-04-16

Similar Documents

Publication Publication Date Title
KR100922965B1 (ko) 네트워크온칩 장치와 이를 위한 동작 주파수 제어 방법
US10074053B2 (en) Clock gating for system-on-chip elements
US8379659B2 (en) Performance and traffic aware heterogeneous interconnection network
US20200257651A1 (en) Hybrid programmable many-core device with on-chip interconnect
US11914440B2 (en) Protocol level control for system on a chip (SoC) agent reset and power management
US20090006871A1 (en) Method, system, and apparatus for a core activity detector to facilitate dynamic power management in a distributed system
Yin et al. Energy-efficient time-division multiplexed hybrid-switched noc for heterogeneous multicore systems
US20090016338A1 (en) Electronic device and method of communication resource allocation
JP2011517903A (ja) パケット交換オンチップ相互接続ネットワークの高速仮想チャネル
US20210041929A1 (en) Dynamic network controller power management
Neishaburi et al. Reliability aware NoC router architecture using input channel buffer sharing
CN114490499A (zh) 用于流送输入/输出数据的系统、装置和方法
WO2020097013A1 (en) Streaming platform flow and architecture
US20210058343A1 (en) Maintaining bandwidth utilization in the presence of packet drops
EP3758316A1 (en) Output queueing with scalability for segmented traffic in a high-radix switch
Xu et al. Improving power and performance of on-chip network through virtual channel sharing and power gating
US8675444B2 (en) Synchronized command throttling for multi-channel duty-cycle based memory power management
KR101061187B1 (ko) 버스 시스템 및 그 제어 장치
Shermi et al. A novel architecture of bidirectional NoC router using flexible buffer
Nambinina et al. Latency-Aware Frequency Scaling in Time-Triggered Network-on-Chip Architecture
US20140052885A1 (en) Parallel computer system, data transfer device, and method for controlling parallel computer system
Ruggiero NoC Architectures
JP2024524047A (ja) ネットワークインターフェースデバイス
SHERMI et al. A Novel Architecture of Bidirectional NoC Router with Flexible Buffer

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120927

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130927

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140929

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee