KR101033425B1 - 멀티캐스팅 네트워크 온 칩, 그 시스템 및 네트워크 스위치 - Google Patents

멀티캐스팅 네트워크 온 칩, 그 시스템 및 네트워크 스위치 Download PDF

Info

Publication number
KR101033425B1
KR101033425B1 KR1020090082013A KR20090082013A KR101033425B1 KR 101033425 B1 KR101033425 B1 KR 101033425B1 KR 1020090082013 A KR1020090082013 A KR 1020090082013A KR 20090082013 A KR20090082013 A KR 20090082013A KR 101033425 B1 KR101033425 B1 KR 101033425B1
Authority
KR
South Korea
Prior art keywords
local
input
packet
output
input buffer
Prior art date
Application number
KR1020090082013A
Other languages
English (en)
Other versions
KR20110024132A (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 KR1020090082013A priority Critical patent/KR101033425B1/ko
Publication of KR20110024132A publication Critical patent/KR20110024132A/ko
Application granted granted Critical
Publication of KR101033425B1 publication Critical patent/KR101033425B1/ko

Links

Images

Classifications

    • 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/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling

Landscapes

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

Abstract

본 발명은 멀티캐스팅 네트워크 온 칩에 관한 것이다.
본 발명에 따른 멀티캐스팅 네트워크 온 칩은 상위 입력포트와 복수의 상위 출력포트를 가지며, 상위 입력포트가 멀티캐스팅 가능한 IP(intellecture property)의 출력포트와 연결된 상위 스위치 라우터 및, 로컬 입력포트와 복수의 로컬 출력포트를 가지며, 로컬 입력포트가 복수의 상위 출력포트와 연결되고, 복수의 로컬 출력포트가 복수의 종착 IP의 입력포트와 연결된 복수의 로컬 스위치 라우터를 포함하되, 멀티캐스팅 가능한 IP에서부터 상위 스위치 라우터와 복수의 로컬 스위치 라우터를 거쳐 복수의 종착 IP까지 트리 구조로 연결되며, 상위 스위치 라우터와 복수의 로컬 스위치 라우터 각각은 패킷의 라우팅 정보에 따라 자신의 입력포트로부터 자신의 출력포트들로 멀티캐스팅이 가능하도록 구성된 것을 특징으로 한다.
본 발명에 따르면, 네트워크 온 칩 상에서 동일한 데이터를 받기를 원하는 IP들에게 여러 번의 데이터 전송 없이 동시에 동일한 패킷을 전송할 수 있으므로, 데이터 전송에 필요한 총 싸이클 수와 에너지를 최소화 할 수 있다.
네트워크 온 칩(Network-on-Chip), 멀티캐스팅(Multi-casting), 브로드캐스 팅(broad-casting), 패킷, 라우터, 라우팅

Description

멀티캐스팅 네트워크 온 칩, 그 시스템 및 네트워크 스위치{MULTI CASTING NETWORK ON CHIP, SYSTEMS THEREOF AND NETWORK SWITCH}
본 발명은 멀티캐스팅 네트워크 온 칩에 관한 것이다.
반도체 집적 기술의 공정이 발전함에 따라, 트랜지스터의 회로선폭이 줄게 되고 성능이 좋아지게 되었지만, 그에 반해 트랜지스터를 연결하는 글로벌 와이어의 딜레이는 상대적으로 줄지 않게 되어 현재, 인터커넥션 문제가 대두되고 있다. 또한, 공정의 발전에 따라 한 칩에 집적하게 되는 IP(intellecture property)의 개수가 증가하게 되고, 이것을 하나의 공통된 매개로 인터커넥션 하는 기존의 버스 기반의 시스템은 여러 IP의 데이터 통신 밴드위드스(bandwidth) 요구를 만족시키지 못하고 있다.
이러한 인터커넥션 문제를 해결하기 위하여, 여러IP를 하나의 버스에 연결하여 직접 데이터를 전송시키지 않고, 데이터를 패킷(packet)의 형태로 변환한 후 여러 로컬 스위치 라우터(switch router)를 통과하게 함으로써 데이터를 전송하는 네트워크 온 칩(network on chip) 기술이 각광받고 있다. 현재, 다수개의 IP가 집적되는 멀티코어 시스템에서는 인터커넥션 기술로써 네트워크 온 칩 기술이 널리 사 용되며 점점 기존의 버스 기술을 대체하고 있다.
또한, IP의 개수가 늘어나면서 하나의 컨트롤 IP에서다수 개의 IP로 동일한 데이터를 전송하는 요구 즉, 1:N의 데이터 전송요구가 생기게 되었다. 예를 들어 하나의 컨트롤 IP에서 다수 개의 프로세싱 IP로 동일한 프로그램 커널을 분배하거나, 동일한 데이터를 분배할 때 이러한 1:N의 데이터 전송 요구가 생기게 된다. 이를 위하여, 데이터를 각각의 IP에 반복적으로 전송 할 수 있지만, 이와 같은 전송 방법은 비효율적이고 전송 시간과 에너지 측면에서 손해가 된다. 이러한 1:N의 데이터 전송 요구를 효율적으로 해결하기 위하여, 네트워크 온 칩에서 하나의 데이터 패킷을 여러 개의 IP에 동시에 전송하는 멀티캐스팅 기능이 요구된다.
본 발명은 멀티코어 프로세서에서의 각 IP들 간 데이터 통신에 있어서, 멀티캐스팅이 기능을 제공하는 네트워크 온 칩, 네트워크 온 칩 시스템 및 네트워크 스위치를 제공함에 그 목적이 있다.
본 발명에 따른 멀티캐스팅 네트워크 온 칩은 상위 입력포트와 복수의 상위 출력포트를 가지며, 상위 입력포트가 멀티캐스팅 가능한 IP의 출력포트와 연결된 상위 스위치 라우터 및, 로컬 입력포트와 복수의 로컬 출력포트를 가지며, 로컬 입력포트가 복수의 상위 출력포트와 연결되고, 복수의 로컬 출력포트가 복수의 종착 IP의 입력포트와 연결된 복수의 로컬 스위치 라우터를 포함하되, 멀티캐스팅 가능 한 IP에서부터 상위 스위치 라우터와 복수의 로컬 스위치 라우터를 거쳐 복수의 종착 IP까지 트리 구조로 연결되며, 상위 스위치 라우터와 복수의 로컬 스위치 라우터 각각은 패킷의 라우팅 정보에 따라 자신의 입력포트로부터 자신의 출력포트들로 멀티캐스팅이 가능하도록 구성된 것을 특징으로 한다.
패킷은 헤더 플릿, 주소 플릿 및 데이터 플릿을 포함하고,
헤더 플릿은 복수의 종착 IP의 주소와 각각 매핑 된 비트 값들로 이루어진 라우팅 정보를 포함하고,
주소 플릿과 데이터 플릿은 라우팅 정보에 따른 최종 종착 IP에서 데이터를 쓰거나 읽어 오도록 하는 것이 바람직하다.
상위 스위치 라우터는,
상위 입력포트를 통해 입력된 패킷을 버퍼링하는 제1 입력버퍼, 상위 입력포트를 통해 입력된 패킷의 라우팅 정보를 디코딩하여 제1 입력버퍼에 버퍼링 된 패킷이 복수의 상위 출력포트로 전송 될 수 있도록 하는 그랜트를 얻기 위한 복수의 제1 리퀘스트 신호를 동시에 생성하고 출력하는 제1 멀티 리퀘스터, 제1 멀티 리퀘스터로부터 출력된 복수의 제1 리퀘스트 신호를 수신하고, 수신된 복수의 제1 리퀘스트 신호에 대한 복수의 제1 그랜트 신호를 출력하는 복수의 제1 아비터 및, 복수의 제1 아비터로부터 출력된 복수의 제1 그랜트 신호를 수신하되, 복수의 제1 그랜트 신호가 모두 수신될 때까지 제1 입력버퍼에 버퍼링 된 패킷을 홀딩 시키는 제1 그랜트 체커를 포함하며,
복수의 제1 아비터는,
복수의 제1 그랜트 신호에 따라 복수의 상위 출력포트를 선택하고, 선택된 상위 출력포트로 제1 입력버퍼에 버퍼링 된 패킷이 동시에 전송되도록 하는 것이 바람직하다.
상위 스위치 라우터는,
제1 입력버퍼에 버퍼링 된 패킷의 전송 시 전송 강도를 변화시키기 위해 제1 입력버퍼의 출력단에 연결된 제1 가변 강도 드라이버를 더 포함하는 것이 바람직하다.
복수의 로컬 스위치 라우터 각각은,
로컬 입력포트를 통해 입력된 패킷을 버퍼링하는 제2 입력버퍼, 로컬 입력포트를 통해 입력된 패킷의 라우팅 정보를 디코딩하여 제2 입력버퍼에 버퍼링 된 패킷이 복수의 로컬 출력포트로 전송 될 수 있도록 하는 그랜트를 얻기 위한 복수의 제2 리퀘스트 신호를 동시에 생성하고 출력하는 제2 멀티 리퀘스터, 제2 멀티 리퀘스터로부터 출력된 복수의 제2 리퀘스트 신호를 수신하고, 수신된 복수의 제2 리퀘스트 신호에 대한 복수의 제2 그랜트 신호를 출력하는 복수의 제2 아비터 및, 복수의 제2 아비터로부터 출력된 복수의 제2 그랜트 신호를 수신하되, 복수의 제2 그랜트 신호가 모두 수신될 때까지 제2 입력버퍼에 버퍼링 된 패킷을 홀딩 시키는 제2 그랜트 체커를 포함하며,
복수의 제2 아비터는,
복수의 제2 그랜트 신호에 따라 복수의 로컬 출력포트를 선택하고, 선택된 로컬 출력포트로 제2 입력버퍼에 버퍼링 된 패킷이 동시에 전송되도록 하는 것이 바람직하다.
복수의 로컬 스위치 라우터 각각은,
제2 입력버퍼에 버퍼링 된 패킷의 전송 시 전송 강도를 변화시키기 위해 제2 입력버퍼의 출력단에 연결된 제2 가변 강도 드라이버를 더 포함하는 것이 바람직하다.
본 발명에 따른 멀티캐스팅 네트워크 온 칩 시스템은 복수의 프로세싱 유닛, 로컬 입력포트와 복수의 로컬 출력포트를 가지며, 복수의 로컬 출력포트가 복수의 프로세싱 유닛의 입력포트와 각각 연결된 복수의 로컬 네트워크 스위치, 제1 상위 입력포트, 제2 상위 입력포트 및 복수의 상위 출력포트를 가지며, 복수의 상위 출력포트가 복수의 로컬 네트워크 스위치의 로컬 입력포트와 각각 연결된 시스템 네트워크 스위치, 출력포트가 제1 상위 입력포트와 연결되고, 시스템 네트워크 스위치와 복수의 로컬 네트워크 스위치를 통하여 복수의 프로세싱 유닛으로 소정의 프로그램을 다운로드 시키는 컨트롤 프로세서 및, 출력포트가 제2 상위 입력포트와 연결되고, 시스템 네트워크 스위치와 복수의 로컬 네트워크 스위치를 통하여 소정의 프로그램에 대한 태스크를 복수의 프로세싱 유닛에 할당하는 태스크 스케줄러를 포함하며, 컨트롤 프로세서 및 태스크 스케줄러에서부터 시스템 네트워크 스위치와 복수의 로컬 네트워크 스위치를 거쳐 복수의 프로세싱 유닛까지 트리 구조로 연결되며, 시스템 네트워크 스위치와 복수의 로컬 네트워크 스위치 각각은 패킷의 라우팅 정보에 따라 자신의 입력포트로부터 자신의 출력포트들로 멀티캐스팅이 가능하 도록 구성된 것을 특징으로 한다.
시스템 네트워크 스위치와 외부 메모리 사이에 연결되고, 복수의 프로세싱 유닛의 데이터 처리결과를 외부 메모리로 전달하는 외부 메모리 인터페이스를 더 포함하는 것이 바람직하다.
컨트롤 프로세서로부터 전송되는 소정의 프로그램과 태스크 스케줄러로부터 전송되는 소정의 프로그램에 대한 태스크는 패킷형태로 전송되며,
패킷은 헤더 플릿, 주소 플릿 및 데이터 플릿을 포함하고,
헤더 플릿은 복수의 프로세싱 유닛의 주소와 각각 매핑 된 비트 값들로 이루어진 라우팅 정보를 포함하고,
주소 플릿과 데이터 플릿은 라우팅 정보에 따라 패킷이 최종적으로 전송되는 프로세싱 유닛에서 데이터를 쓰거나 읽어 오도록 하는 것이 바람직하다.
시스템 네트워크 스위치는,
제1 상위 입력포트 또는 제2 상위 입력포트를 통해 입력된 패킷을 버퍼링하는 제1 입력버퍼, 제1 상위 입력포트 및 제2 상위 입력포트를 통해 입력된 패킷의 라우팅 정보를 디코딩하여 제1 입력버퍼에 버퍼링 된 패킷이 복수의 상위 출력포트로 전송 될 수 있도록 하는 그랜트를 얻기 위한 복수의 제1 리퀘스트 신호를 동시에 생성하고 출력하는 제1 멀티 리퀘스터, 제1 멀티 리퀘스터로부터 출력된 복수의 제1 리퀘스트 신호를 수신하고, 수신된 복수의 제1 리퀘스트 신호에 대한 복수의 제1 그랜트 신호를 출력하는 복수의 제1 아비터 및, 복수의 제1 아비터로부터 출력된 복수의 제1 그랜트 신호를 수신하되, 복수의 제1 그랜트 신호가 모두 수신될 때 까지 제1 입력버퍼에 버퍼링 된 패킷을 홀딩 시키는 제1 그랜트 체커를 포함하며,
복수의 제1 아비터는,
복수의 제1 그랜트 신호에 따라 복수의 상위 출력포트를 선택하고, 선택된 상위 출력포트로 제1 입력버퍼에 버퍼링 된 패킷이 동시에 전송되도록 하는 것이 바람직하다.
시스템 네트워크 스위치는,
제1 입력버퍼에 버퍼링 된 패킷의 전송 시 패킷의 전송 강도를 변화시키기 위해 제1 입력버퍼의 출력단에 연결된 제1 가변 강도 드라이버를 더 포함하는 것이 바람직하다.
복수의 로컬 네트워크 스위치 각각은,
로컬 입력포트를 통해 입력된 패킷을 버퍼링하는 제2 입력버퍼
로컬 입력포트를 통해 입력된 패킷의 라우팅 정보를 디코딩하여 제2 입력버퍼에 버퍼링 된 패킷이 복수의 로컬 출력포트로 전송 될 수 있도록 하는 그랜트를 얻기 위한 복수의 제2 리퀘스트 신호를 동시에 생성하고 출력하는 제2 멀티 리퀘스터, 제2 멀티 리퀘스터로부터 출력된 복수의 제2 리퀘스트 신호를 수신하고, 수신된 복수의 제2 리퀘스트 신호에 대한 복수의 제2 그랜트 신호를 출력하는 복수의 제2 아비터 및, 복수의 제2 아비터로부터 출력된 복수의 제2 그랜트 신호를 수신하되, 복수의 제2 그랜트 신호가 모두 수신될 때까지 제2 입력버퍼에 버퍼링 된 패킷을 홀딩 시키는 제2 그랜트 체커를 포함하며,
복수의 제2 아비터는,
복수의 제2 그랜트 신호에 따라 복수의 로컬 출력포트를 선택하고, 선택된 로컬 출력포트로 제2 입력버퍼에 버퍼링 된 패킷이 동시에 전송되도록 하는 것이 바람직하다.
복수의 로컬 네트워크 스위치 각각은,
제2 입력버퍼에 버퍼링 된 패킷의 전송 시 패킷의 전송 강도를 변화시키기 위해 제2 입력버퍼의 출력단에 연결된 제2 가변 강도 드라이버를 더 포함하는 것이 바람직하다.
본 발명에 따른 네트워크 스위치는 입력포트를 통해 입력된 패킷을 버퍼링하는 입력버퍼, 입력포트를 통해 입력된 패킷의 라우팅 정보를 디코딩하여 입력버퍼에 버퍼링 된 패킷이 복수의 출력포트로 전송 될 수 있도록 하는 그랜트를 얻기 위한 복수의 리퀘스트 신호를 동시에 생성하고 출력하는 멀티 리퀘스터, 멀티 리퀘스터로부터 출력된 복수의 리퀘스트 신호를 수신하고, 수신된 복수의 리퀘스트 신호에 대한 복수의 그랜트 신호를 출력하는 복수의 아비터 및, 복수의 아비터로부터 출력된 복수의 그랜트 신호를 수신하되, 복수의 그랜트 신호가 모두 수신될 때까지 입력버퍼에 버퍼링 된 패킷을 홀딩 시키는 그랜트 체커를 포함하며, 복수의 아비터는 복수의 그랜트 신호에 따라 복수의 출력포트를 선택하고, 선택된 출력포트로 입력버퍼에 버퍼링 된 패킷이 동시에 전송되도록 하는 것을 특징으로 한다.
입력버퍼에 버퍼링 된 패킷이 복수의 출력포트로 전송 될 경우패킷의 전송 강도를 변화시키기 위해 입력버퍼의 출력단에 연결된 가변 강도 드라이버를 더 포 함하는 것이 바람직하다.
본 발명에 따르면, 네트워크 온 칩 상에서 동일한 데이터를 받기를 원하는 IP들에게 여러 번의 데이터 전송 없이 동시에 동일한 패킷을 전송할 수 있으므로, 데이터 전송에 필요한 총 싸이클 수와 에너지를 최소화 할 수 있다.
[멀티캐스팅 네트워크 온 칩]
이하에는, 첨부된 도면을 참조하여 본 발명의 바람직한 제1 실시예에 따른 멀티캐스팅 네트워크 온 칩에 대하여 상세히 설명한다.
도 1은 본 발명의 제1 실시예에 따른 멀티캐스팅 네트워크 온 칩의 구성을 나타낸 도면이다.
도 1을 참조하면, 본 발명의 제1 실시예에 따른 멀티캐스팅 네트워크 온 칩은 상위 스위치 라우터(110), 복수의 로컬 스위치 라우터(120a, 120b, 120c, 120d), 복수의 IP(intellecture property, 130)를 포함하며, 복수의 IP(130) 중 적어도 하나의 멀티캐스팅 가능한 IP(101)를 포함한다. 여기서 복수의 IP(130)는 멀티캐스팅 가능한 IP(101)로부터 패킷이 최종적으로 전송 될 종착 IP에 해당된다.
도 1에 도시된 바와 같이, 멀티캐스팅 네트워크 온 칩은 멀티캐스팅 가능한 IP(101)에서부터 상위 스위치 라우터(110)와 복수의 로컬 스위치 라우터(120a, 120b, 120c, 120d)를 거쳐 복수의 종착 IP(130)까지 트리 구조로 연결되며, 화살표 방향의 점선 및 실선 부분은 네트워크 온 칩 내에서의 멀티캐스팅 경로를 의미한 다.
상위 스위치 라우터(110)는 상위 입력포트 0과 복수의 상위 출력포트 1, 2, 3, 4를 가지며, 상위 입력포트 0이 멀티캐스팅 가능한 IP(101)의 출력포트와 연결 될 수 있다. 이러한 상위 스위치 라우터(110)는 패킷의 라우팅 정보에 따라 상위 입력포트 0으로부터 복수의 상위 출력포트 1, 2, 3, 4로 멀티캐스팅이 가능하도록 구성 될 수 있다.
복수의 로컬 스위치 라우터(120a, 120b, 120c, 120d)는 제1 로컬 스위치 라우터(120a), 제2 로컬 스위치 라우터(120b), 제3 로컬 스위치 라우터(120c) 및 제4 로컬 스위치 라우터(120d)로 구성 될 수 있으며, 도 1에 도시된 바와 같이 4개의 로컬 스위치 라우터에 한정되는 것이 아니라, 멀티캐스팅 가능한 IP(101) 또는 종착IP(130)의 개수가 증가됨에 따라 로컬 스위치 라우터의 개수 혹은 그 포트 수가 달라질 수 있으며, 상위 스위치 라우터의 개수 혹은 그 포트수가 달라질 수 있다.
로컬 스위치 라우터(120a, 120b, 120c, 120d) 각각은 로컬 입력포트 0과 로컬 출력포트 1, 2, 3, 4를 가지며, 로컬 입력포트 0이 상위 스위치 라우터(110)의 상위 출력포트 1, 2, 3, 4와 각각 연결 될 수 있다. 예를 들어, 도 1에 도시된 바와 같이, 상위 스위치 라우터(110)의 상위 출력포트 1이 로컬 스위치 라우터(120a)의 로컬 입력포트 0과 연결되고, 상위 스위치 라우터(110)의 상위 출력포트 2가 제2 로컬 스위치 라우터(120b)의 로컬 입력포트 0과 연결되고, 상위 스위치 라우터(110)의 상위 출력포트 3이 제3 로컬 스위치 라우터(120c)의 로컬 입력포트 0과 연결되며, 상위 스위치 라우터(110)의 상위 출력포트 4가 제4 로컬 스위치 라우 터(120d)의 로컬 입력포트 0과 연결 될 수 있다.
이러한 로컬 스위치 라우터(120a, 120b, 120c, 120d) 각각은 패킷의 라우팅 정보에 따라 로컬 입력포트 0으로부터 복수의 로컬 출력포트 1, 2, 3, 4로 멀티캐스팅이 가능하도록 구성 될 수 있다.
도 2는 본 발명의 제1 실시예에 따른 웜홀 라우팅(wormhole routing)프로토콜 기반의 멀티캐스팅 네트워크 온 칩의 패킷 형태의 일례를 나타낸 도면이다.
도 2에 도시된 바와 같이, 하나의 패킷은 3 종류의 플릿(flow control unit, FLIT) 즉 헤더 플릿, 주소 플릿 및 데이터 플릿으로 구성 될 수 있다. 각각의 플릿은 4 비트 컨트롤 신호와 32 비트의 데이터 신호로 이루어져 있을 수 있다.
헤더 플릿은 패킷이 네트워크 온 칩에 구성된 각 스위치 라우터에서 어떻게 라우팅 될 것인지에 대한 라우팅 정보를 모두 담고 있다. 주소 플릿 및 데이터 플린은 헤더 플릿이 라우팅 되는 것에 따르게 된다. 예를 들어, 헤더 플릿에 의해 라우팅 된 최종 종착 IP에서 주소와 데이터 플릿의 정보를 이용하여 데이터를 쓰거나 읽어 오도록 할 수 있다. 라우팅 정보는 총 16 비트로 구성 될 수 있으며, 보통 패킷의 경우 4개의 스위치 라우터를 건널 수 있는 정보를 저장할 수 있다. 멀티캐스팅 패킷일 라우팅 정보일 경우, 16 비트 값과 복수의 종착 IP의 주소가 매핑 되어 임의의 종착 IP로 멀티캐스팅 하는 것이 가능하다. 보통 패킷과 멀티캐스팅 패킷은 헤더 플릿에 의해 구분될 수 있으며, 멀티캐스팅 패킷은 멀티캐스팅 가능한 포트에서 디코딩 되어 해당 종착 IP에 멀티캐스팅이 수행되도록 한다.
도 3은 본 발명의 제1 실시예에 따른 스위치 라우터가 패킷 라우팅 정보를 디코딩 하는 방법을 나타낸 도면이다. 보다 구체적으로, 도 3은 16 비트의 라우팅 정보가 상위 스위치 라우터(110) 및 로컬 스위치 라우터(120a, 120b, 120c, 120d)에서 어떻게 디코딩 되는지에 대한 예를 보여준다.
우선, 라우팅 정보가
Figure 112009053831845-pat00001
의 비트 값들로 표현될 수 있으며, 1번, 3번, 4번, 13번, 14번, 15번, 16번 종착 IP로 멀티캐스팅 되도록 지시한다고 가정한다.
이를 위하여 상위 스위치 라우터(110)에서 라우팅 정보를 입력 받고, 각 로컬 스위치 라우터(120a, 120b, 120c, 120d)가 포함하는 종착 IP들(1번 내지 16번)의 비트를 OR 로직을 통해, 1번, 3번, 4번, 13번, 14번, 15번, 16번 종착 IP에 접근하기 위한 모든 로컬 스위치 라우터들(120a, 120b, 120c, 120d)로 멀티캐스팅 한다.
이후, 각 로컬 스위치 라우터들(120a, 120b, 120c, 120d)은 자신에게 할당된 라우팅 정보의 비트 값에 기초하여 그대로 멀티캐스팅을 수행한다. 예를 들어, 도 3에 도시된 바와 같이, 제1 로컬 스위치 라우터(120a)의 경우는 비트 0~3, 제4 로컬 스위치 라우터(120d)의 경우는 비트 4~7에 버퍼링 된 비트 값에 기초하여 멀티캐스팅을 수행하게 된다. 이러한 스위치 라우터에서의 디코딩 방법은 네트워크 온 칩의 트리 계층이 확장될 경우에도 실시 가능하다.
도 4a는 본 발명의 제1 실시예에 따른 상위 스위치 라우터(110)의 구성을 나타낸 도면이다. 도 4a에서는 5x5 크기를 갖는 상위 스위치 라우터(110)를 그 예로 하여 도시하였다.
도 4a를 참조하면, 본 발명의 제1 실시예에 따른 상위 스위치 라우터는 제1 입력버퍼(111), 제1 멀티 리퀘스터(113), 복수의 제1 아비터(115), 제1 그랜트 체커(117) 및 제1 가변 강도 드라이버(119)를 포함한다.
제1 입력버퍼(111)는 상위 입력포트 0을 통해 입력된 패킷을 버퍼링 한다. 제1 입력버퍼(111)에 패킷이 저장되면 상위 입력포트 0은 활성화된다. 이러한 제1 입력버퍼(111)는 FIFO 버퍼(fist-in-first-out buffer)일 수 있다. 이러한 제1 입력버퍼(111)는 IP 클락과 네트워크 온 칩의 두 종류의 클락을 지원하기 위한synchronization 기능을 지원할 수 있다. 도 4a에 도시된 상위 입력포트 0은 멀티캐스팅이 가능한 포트이고, 나머지 입력포트 1 내지 4는 멀티캐스팅이 가능하지 않은 일반적인 입력포트이다.
제1 멀티 리퀘스터(113)는 제1 입력버퍼(111)에 버퍼링 된 패킷을 출력포트로 전송하기 위하여, 패킷의 라우팅 정보를 디코딩 하고, 출력포트 개수만큼의 제1 리퀘스트 신호(req 1, req 2, req 3, req 4)를 동시에 생성하여 복수의 제1 아비터(115)로 출력한다.
복수의 제1 아비터(115)는 제1 멀티 리퀘스터(113)로부터 출력된 제1 리퀘스트 신호(req 1, req 2, req 3, req 4)를 해당 아비터 1 내지4를 통해 각각 수신하고, 수신된 각 제1 리퀘스트 신호에 대한 복수의 제1 그랜트 신호(gnt 1, gnt 2, gnt 3, gnt 4)를 제1 그랜트 체커(117)로 출력한다. 여기서, 복수의 제1 아비터(115)는 그랜트 신호의 스케줄링을 위해 입력포트 0번부터 순서대로 그랜트를 할 당하는 라운드-로빈(round-robin) 스케줄링을 사용할 수 있다.
제1 그랜트 체커(117)는 복수의 제1 아비터(115)로부터 출력된 복수의 제1 그랜트 신호(gnt 1, gnt 2, gnt 3, gnt 4)를 수신하되, 제1 그랜트 신호(gnt 1, gnt 2, gnt 3, gnt 4)가 모두 수신될 때까지 제1 입력버퍼(111)에 버퍼링 된 패킷을 홀딩시킨다. 또한, 제1 그랜트 체커(117)는 복수의 제1 그랜트 신호(gnt 1, gnt 2, gnt 3, gnt 4)가 모두 수신될 경우, 홀딩를 멈추고 제1 입력버퍼(111)에 버퍼링 된 패킷이 해당 출력포트로 전송되도록 하며, 이때 복수의 제1 아비터(115)는 각 출력포트와 연결된 먹스(MUX 1, MUX 2, MUX 3, MUX 4)에 출력 컨트롤 신호를 출력함으로써, 복수의 제1 그랜트 신호에 따른 출력포트를 선택하게 된다. 예를 들어 도 4a에 도시된 바와 같이, 해당 아비터에 의해 MUX 1, MUX 2, MUX 4가 선택됨에 따라 해당 출력포트 1, 2, 4로 제1 입력버퍼(111)에 버퍼링 된 패킷이 동시에 전송 될 수 있다.
제1 가변 강도 드라이버(119)는 제1 입력버퍼(111)의 출력단에 연결 될 수 있다. 제1 입력버퍼(111)에 버퍼링 된 패킷은 해당 출력포트 1, 2, 4로 동시에 전송되어야 한다. 이에 따라, 제1 가변강도 드라이버(119)를 통해 전송 강도를 증가시켜줌으로써 보다 효율적인 신호전송이 이루어지도록 할 수 있다.
한편, 제1 입력버퍼(111)에 버퍼링 된 패킷은 각 입력포트들과 출력포트들을 와이어(wire)로 연결하는 크로스바 패브릭(crossbar fabric)을 통해해당 출력포트로 전송 될 수 있다.
도 4b는 도 4a에 도시된 상위 스위치 라우터(110)의 제1 멀티 리퀘스터(113) 와 제1 그랜트 체커(117)의 블록 다이어그램을 나타낸 도면이다.
도 4b에 도시된 바와 같이, 제1 멀티 리퀘스터(113)는 디코더(114)를 통해 패킷의 라우팅 정보를 OR 로직을 이용하여 디코딩 한 후, 디코딩 된 라우팅 정보로부터 해당되는 모든 아비터에 복수의 제1 리퀘스트 신호를 동시에 전송하는 한편, 전송된 제1 리퀘스트 신호들을 저장한다.
제1 그랜트 체커(117)는 복수의 제1 리퀘스트 신호에 대한 복수의 제1 그랜트 신호를 모두 수신할 때까지 기다리며. 제1 입력버퍼(111)에 버퍼링 된 패킷을 홀딩시킨다. 보다 구체적으로, 제1 그랜트 체커(117)는 복수의 제1 아비터(115)로부터 제1 그랜트 신호를 수신하면서 XOR 및 NOR 로직을 수신된 복수의 제1 그랜트 신호와 복수의 제1 리퀘스트 신호가 모두 일치할 때까지 제1 입력버퍼(111)에 버퍼링 된 패킷을 홀딩 시키며 신호가 모두 수신되었는지를 체크한다. 또한, 두 신호가 모두 수신되고 수신된 신호가 모두 일치함이 확인되면, 해당 아비터들을 통해 제1 입력버퍼(111)에 버퍼링 된 패킷을 출력할 수 있도록 한다.
보통 패킷 일 경우 즉, 멀티캐스팅을 수행 하지 않을 경우에는 하나의 아비터가 해당 출력포트의 먹스를 컨트롤하여 하나의 출력포트로만 패킷이 전송되었던 것에 반해, 멀티캐스팅 패킷 즉, 멀티캐스팅을 수행 할 경우에는 하나의 입력포트가 복수의 아비터가 복수의 해당 출력포트를 선택하게 함으로써, 패킷이 복수의 해당 출력포트로 동시에 전송 될 수 있다.
도 5a는 본 발명의 제1 실시예에 따른 로컬 스위치 라우터의 구성을 나타낸 도면이다. 도 5a에서는 5x5 크기를 갖는 제1 로컬 스위치 라우터(120a)를 예로 하 여 도시하였다.
도 5a를 참조하면, 본 발명의 제1 실시예에 따른 로컬 스위치 라우터(120a)는 제2 입력버퍼(121), 제2 멀티 리퀘스터(123), 복수의 제2 아비터(125), 제2 그랜트 체커(127) 및 제2 가변 강도 드라이버(129)를 포함한다.
제2 입력버퍼(121)는 상위 입력포트 0을 통해 입력된 패킷을 버퍼링 한다. 제2 입력버퍼(121)에 패킷이 저장되면 상위 입력포트 0은 활성화된다. 이러한 제2 입력버퍼(121)는 FIFO 버퍼(fist-in-first-out buffer) 일 수 있다. 이러한 제2 입력버퍼(121)는 IP 클락과 네트워크 온 칩의 두 종류의 클락을 지원하기 위한synchronization 기능을 지원할 수 있다. 도 5a에 도시된 상위 입력포트 0은 멀티캐스팅이 가능한 포트이고, 나머지 입력포트 1 내지 4는 멀티캐스팅이 가능하지 않은 일반적인 입력포트이다.
제2 멀티 리퀘스터(123)는 제2 입력버퍼(121)에 버퍼링 된 패킷을 출력포트로 전송하기 위하여, 패킷의 라우팅 정보를 디코딩 하고, 출력포트 개수만큼의 제2 리퀘스트 신호(req 1, req 2, req 3, req 4)를 동시에 생성하여 복수의 제2 아비터(125)로 출력한다.
복수의 제2 아비터(125)는 제2 멀티 리퀘스터(123)로부터 출력된 제2 리퀘스트 신호(req 1, req 2, req 3, req 4)를 해당 아비터 1 내지4를 통해 각각 수신하고, 수신된 각 제2 리퀘스트 신호에 대한 복수의 제2 그랜트 신호(gnt 1, gnt 2, gnt 3, gnt 4)를 제2 그랜트 체커(127)로 출력한다. 여기서, 복수의 제2 아비터(125)는 그랜트 신호의 스케줄링을 위해 입력포트 0번부터 순서대로 그랜트를 할 당하는 라운드-로빈(round-robin) 스케줄링을 사용할 수 있다.
제2 그랜트 체커(127)는 복수의 제2 아비터(125)로부터 출력된 복수의 제2 그랜트 신호(gnt 1, gnt 2, gnt 3, gnt 4)를 수신하되, 제2 그랜트 신호(gnt 1, gnt 2, gnt 3, gnt 4)가 모두 수신 될 때까지 제2 입력버퍼(121)에 버퍼링 된 패킷을 홀딩시킨다.
또한, 제2 그랜트 체커(127)는 복수의 제2 그랜트 신호(gnt 1, gnt 2, gnt 3, gnt 4)가 모두 수신될 경우, 홀딩을 멈추고 제2 입력버퍼(121)에 버퍼링 된 패킷이 해당 출력포트로 전송되도록 하며, 이때 복수의 제2 아비터(125)는 각 출력포트와 연결된 먹스(MUX 1, MUX 2, MUX 3, MUX 4)에 출력 컨트롤 신호를 출력함으로써, 제2 그랜트 신호에 따른 출력포트를 선택하게 된다. 예를 들어 도 5a에 도시된 바와 같이, 해당 아비터에 의해 MUX 1, MUX 2, MUX 4가 선택됨에 따라 해당 출력포트 1, 2, 4로 제2 입력버퍼(121)에 버퍼링 된 패킷이 동시에 전송 될 수 있다.
제2 가변 강도 드라이버(129)는 제2 입력버퍼(121)의 출력단에 연결 될 수 있다. 제2 입력버퍼(121)에 버퍼링 된 패킷은 해당 출력포트 1, 2, 4로 동시에 전송되어야 한다. 이에 따라, 제2 가변강도 드라이버(129)를 통해 전송 강도를 증가시켜줌으로써 보다 효율적인 신호전송이 이루어지도록 할 수 있다.
한편, 제2 입력버퍼(121)에 버퍼링 된 패킷은 각 입력포트들과 출력포트들을 와이어(wire)로 연결하는 크로스바 패브릭(crossbar fabric)을 통해 해당 출력포트로 전송 될 수 있다.
도 5b는 도 5a에 도시된 로컬 스위치 라우터(120a)의 제2 멀티 리퀘스 터(123)와 제2 그랜트 체커(127)의 블록 다이어그램을 나타낸 도면이다.
도 5b에 도시된 바와 같이, 제2 멀티 리퀘스터(123)는 디코더(124)를 통해 패킷의 라우팅 정보를 OR 로직을 이용하여 디코딩 한 후, 디코딩 된 라우팅 정보로부터 해당되는 모든 아비터에 복수의 제2 리퀘스트 신호를 동시에 전송하는 한편, 전송된 제2 리퀘스트 신호들을 저장한다.
제2 그랜트 체커(127)는 복수의 제2 리퀘스트 신호에 대한복수의 제2 그랜트 신호를 모두 수신할 때까지 기다리며. 제2 입력버퍼(121)에 버퍼링 된 패킷을 홀딩시킨다. 보다 구체적으로, 제2 그랜트 체커(127)는 복수의 제2 아비터(125)로부터 제2 그랜트 신호를 수신하면서 XOR 및 NOR 로직을 통해 복수의 제2 그랜트 신호와 복수의 제2 리퀘스트 신호가 모두 일치할 때까지 제2 입력버퍼(121)에 버퍼링 된 패킷을 홀딩 시키며 신호가 모두 수신되었는지를 체크한다. 또한, 두 신호가 모두수신되고 수신된 신호가 모두 일치함이 확인되면, 해당 아비터들을 통해제2 입력버퍼(121)에 버퍼링 된 패킷을 출력할 수 있도록 한다.
도 6은 멀티캐스팅 패킷의 스위치 전송단계를 나타낸 도면이다.
싱글 패킷 전송일 경우즉, 멀티캐스팅을 수행 하지 않을경우에는 하나의 아비터가 해당 출력포트의 먹스를 컨트롤하여 하나의 출력포트로만 패킷이 전송되었던 것에 반해, 멀티캐스팅 패킷 전송일 경우 즉, 멀티캐스팅을 수행 할 경우에는 하나의 입력포트가 복수의 아비터가 복수의 해당 출력포트를 선택하게 함으로써, 패킷이 복수의 해당 출력포트로 동시에 전송 될 수 있다.
[멀티캐스팅 네트워크 온 칩 시스템]
이하에는, 첨부된 도면을 참조하여 본 발명의 제2 실시예에 따른 멀티캐스팅 네트워크 온 칩 시스템에 대하여 상세히 설명한다. 본 발명의 제2 실시예에 따른 멀티캐스팅 네트워크 온 칩 시스템은 전술한 네트워크 온 칩을 적용한 예로서, 멀티 코어 기반의 이미지 처리 시스템을 그 구체적인 예로 하여 상세히 설명한다.
도 7은 본 발명의 제2 실시예에 따른 멀티캐스팅 네트워크 온 칩 시스템의 구성을 나타낸 도면이다.
도 7을 참조하면, 본 발명의 제2 실시예에 따른 멀티캐스팅 네트워크 온 칩 시스템은 복수의 프로세싱 유닛(710), 복수의 로컬 네트워크 스위치(720a, 720b, 720c, 720d), 시스템 네트워크 스위치(730), 컨트롤 프로세서(740), 태스크 스케줄러(750)를 포함한다.
도 7에 도시된 바와 같이, 멀티캐스팅 네트워크 온 칩 시스템은 멀티캐스팅 가능한 IP인 컨트롤 프로세서(740) 및 태스크 스케줄러(750)에서부터 시스템 네크워크 스위치(730)와 복수의 로컬 네트워크 스위치(720a, 720b, 720c, 720d)를 거쳐 복수의 프로세싱 유닛(710)까지 트리 구조로 연결되며, 화살표 방향의 점선 및 실선 부분은 네트워크 온 칩 내에서의 멀티캐스팅 경로를 의미한다.
시스템 네트워크 스위치(730)는 상위 입력포트 0, 1(이하, 제1 상위 입력포트 0, 제2 상위 입력포트 1 라고 함)과 복수의 상위 출력포트 2, 3, 4, 5를 갖는다. 여기서 제1 상위 입력포트 0 및 제2 상위 입력포트 1은 멀티캐스팅 가능한 IP(740, 750)의 출력포트와 각각 연결 될 수 있다. 이러한 시스템 네트워크 스위 치(730)는 패킷의 라우팅 정보에 따라 제1 상위 입력포트 0 및 제2 상위 입력포트 1로부터 복수의 상위 출력포트 2, 3, 4, 5로 멀티캐스팅이 가능하도록 구성 될 수 있다.
복수의 로컬 네트워크 스위치(720a, 720b, 720c, 720d)는 제1 로컬 네트워크 스위치(720a), 제2 로컬 네트워크 스위치(720b), 제3 로컬 네트워크 스위치(720c) 및 제4 로컬 네트워크 스위치(720d)로 구성 될 수 있으며, 도 7에 도시된 바와 같이 4개의 로컬 네트워크 스위치에 한정되는 것이 아니라, 멀티캐스팅 가능한 IP(740, 750) 또는 프로세싱 유닛(710)의 개수가 증가됨에 따라 로컬 네트워크 스위치의 개수 또는 그 포트 수가 달리질 수 있으며, 시스템 네트워크 스위치의 개수 혹은 그 포트 수 또한 달라질 수 있다.
로컬 네트워크 스위치(720a, 720b, 720c, 720d) 각각은 로컬 입력포트 0과 로컬 출력포트 1, 2, 3, 4를 가지며, 로컬 입력포트 0이 시스템 네트워크 스위치(730)의 상위 출력포트 2, 3, 4, 5와 각각 연결 될 수 있다. 예를 들어, 도 7에 도시된 바와 같이, 시스템 네트워크 스위치(730)의 상위 출력포트 2가 제1 로컬 네트워크 스위치(720a)의 로컬 입력포트 0과 연결되고, 시스템 네트워크 스위치(730)의 상위 출력포트 3이 제2 로컬 네트워크 스위치(720b)의 로컬 입력포트 0과 연결되고, 시스템 네트워크 스위치(730)의 상위 출력포트 4가 제3 로컬 네트워크 스위치 7120c)의 로컬 입력포트 0과 연결되며, 시스템 네트워크 스위치(730)의 상위 출력포트 5가 제4 로컬 네트워크 스위치(720d)의 로컬 입력포트 0과 연결 될 수 있다.
이러한 로컬 네트워크 스위치(720a, 720b, 720c, 720d) 각각은 패킷의 라우팅 정보에 따라 로컬 입력포트 0으로부터 복수의 로컬 출력포트 1, 2, 3, 4로 멀티캐스팅이 가능하도록 구성 될 수 있다.
컨트롤 프로세서(740)는 그 출력포트가 시스템 네트워크 스위치(730)의 제1 상위 입력포트 0과 연결되고, 시스템 네트워크 스위치(730)와 복수의 로컬 네트워크 스위치(720a, 720b, 720c, 720d)를 통하여 복수의 프로세싱 유닛(710)으로 이미지 프로그램을 다운로드 시킨다.
태스크 스케줄러(750)는 그 출력포트가 제2 상위 입력포트 1과 연결되고, 시스템 네트워크 스위치(730)와 복수의 로컬 네트워크 스위치(720a, 720b, 720c, 720d)를 통하여 이미지 프로그램에 대한 태스크를 복수의 프로세싱 유닛으로 할당하여 스케줄링 한다.
도 8은 본 발명의 제2 실시예에 따른 멀티캐스팅 네트워크 온 칩 시스템의 개략적인 동작 설명을 위해나타낸 도면이다.
먼저 컨트롤 프로세서(740)가 복수의 프로세싱 유닛(PU1 내지 PU13)에 이미지 프로그램을 다운로드 시킨다. 이후 태스크 스케줄러(750)는 정해진 이미지 영역에 대하여 이미지 데이터를 로드하고, 로드된 데이터를 복수의 프로세싱 유닛(PU1 내지 PU13)에 할당하게 된다. 이후 프로세싱 유닛들(PU1 내지 PU13)은 이미지 데이터에 대한 처리를 수행하고, 다시 결과를 외부메모리(800)에 저장하게 된다. 이러한 경우, 멀티캐스팅 네트워크 온 칩 시스템은 시스템 네트워크 스위치(730)와 외부 메모리(800) 사이에 연결되고, 복수의 프로세싱 유닛(PU1 내지 PU13)의 데이터 처리결과를 저장하기 위해외부 메모리(800)로 전달하는 외부 메모리 인터페이스(760)를 포함 할 수 있다.
이러한 과정에서, 컨트롤 프로세서(740)는 복수의 프로세싱 유닛(PU1 내지 PU13)에 프로그램을 다운로드 시킬 때, 같은 프로그램을 다운로드 시키는 경우가 많으므로, 하나의 컨트롤 프로세서(740)에서복수의 프로세싱 유닛(PU1 내지 PU13)로 멀티캐스팅이나 브로드캐스팅 방식의 패킷전송 방법이 요구된다. 또한, 태스크 스케줄러(750)가 이미지 태스크를 할당하는 과정에서 역시인근 프로세싱 요소들과, 필요한 이미지 영역이 겹치는 경우가 발생하기 때문에 이러한 경우에도 멀티캐스팅이나 브로드캐스팅 방식의 패킷 전송 방법이 요구된다.
컨트롤 프로세서(740)로부터 전송되는 소정의 프로그램과 태스크 스케줄러(750)로부터 전송되는 소정의 프로그램에 대한 태스크는 패킷형태로 전송되며, 이러한 패킷 형태는 도 9에 도시되어 있다.
도 9는 본 발명의 제2 실시예에 따른 웜홀 라우팅(wormhole routing) 프로토콜 기반의 멀티캐스팅 네트워크 온 칩 시스템의 패킷 형태의 일례를 나타낸 도면이다.
도 9에 도시된 바와 같이, 하나의 패킷은 3 종류의 플릿(flow control unit, FLIT) 즉 헤더 플릿, 주소 플릿 및 데이터 플릿으로 구성 될 수 있다. 각각의 플릿은 4 비트 컨트롤 신호와 32 비트의 데이터 신호로 이루어져 있을 수 있다.
헤더 플릿은 패킷이 네트워크 온 칩 시스템에 구성된 각 네트워크 스위치에서 어떻게 라우팅 될 것인지에 대한 라우팅 정보를 모두 담고 있다. 주소 플릿 및 데이터 플린은 헤더 플릿이 라우팅 되는 것에 따르게 된다. 예를 들어, 헤더 플릿에 의해 라우팅 된 최종 종착 프로세싱 유닛에서 주소와 데이터 플릿의 정보를 이용하여 데이터를 쓰거나 읽어 오도록 할 수 있다. 라우팅 정보는 총 16 비트로 구성 될 수 있으며, 보통 패킷의 경우 4개의 네트워크 스위치를 건널 수 있는 정보를 저장할 수 있다. 멀티캐스팅 패킷일 라우팅 정보일 경우, 16 비트 값과 복수의 종착 프로세싱 유닛의 주소가 매핑 되어 임의의 종착 프로세싱 유닛으로 멀티캐스팅 하는 것이 가능하다. 보통 패킷과 멀티캐스팅 패킷은 헤더 플릿에 의해 구분될 수 있으며, 멀티캐스팅 패킷은 멀티캐스팅 가능한 포트에서 디코딩 되어 해당 종착 프로세싱 유닛에 멀티캐스팅이 수행되도록 한다.
도 10은 본 발명의 제2 실시예에 따른 네트워크 스위치가 패킷 라우팅 정보를 디코딩 하는 방법을 나타낸 도면이다. 보다 구체적으로, 도 10은 16 비트의 라우팅 정보가 시스템 네트워크 스위치(730) 및 로컬 네트워크 스위치(720a, 720b, 720c, 720d)에서 어떻게 디코딩 되는지에 대한 예를 보여준다.
우선, 라우팅 정보가
Figure 112009053831845-pat00002
의 비트 값들로 표현될 수 있으며, 1번, 3번, 4번, 13번, 14번, 15번, 16번 종착 프로세싱 유닛으로 멀티캐스팅 되도록 지시한다고 가정한다.
이를 위하여 시스템 네트워크 스위치(730)에서 라우팅 정보를 입력 받고, 각 로컬 네트워크 스위치(720a, 720b, 720c, 720d)가 포함하는 종착 프로세싱 유닛들(1번 내지 16번)의 비트를 OR 로직을 통해, 1번, 3번, 4번, 13번, 14번, 15번, 16번 종착 프로세싱 유닛에 접근하기 위한 모든 로컬 네트워크 스위치(720a, 720b, 720c, 720d)로 멀티캐스팅 한다.
이후, 각 로컬 네크워크 스위치(720a, 720b, 720c, 720d)는 자신에게 할당된 라우팅 정보의 비트 값에 기초하여 그대로 멀티캐스팅을 수행한다. 예를 들어, 도 10에 도시된 바와 같이, 제1 로컬 네트워크 스위치(720a)의 경우는 비트 0~3, 제4 로컬 네트워크 스위치(720d)의 경우는 비트 4~7에 버퍼링 된 비트 값에 기초하여 멀티캐스팅을 수행하게 된다. 이러한 네트워크 스위치에서의 디코딩 방법은 네트워크 온 칩의 트리 계층이 확장될 경우에도 실시 가능하다.
도 11a는 본 발명의 제2 실시예에 따른 시스템 네트워크 스위치(730)의 구성을 나타낸 도면이다. 도 11a에서는 5x5 크기를 갖는 시스템 네트워크 스위치(730)를 그 예로 하여 도시하였다.
도 11a를 참조하면, 본 발명의 제2 실시예에 따른 시스템 네트워크 스위치는 제1 입력버퍼(731), 제1 멀티 리퀘스터(733), 복수의 제1 아비터(735), 제1 그랜트 체커(737) 및 제1 가변 강도 드라이버(739)를 포함한다.
제1 입력버퍼(731)는 제1 상위 입력포트 0을 통해 입력된 패킷을 버퍼링 한다. 제1 입력버퍼(731)에 패킷이 저장되면 제1 상위 입력포트 0은 활성화된다. 이러한 제1 입력버퍼(731)는 FIFO 버퍼(fist-in-first-out buffer)일 수 있다. 이러한 제1 입력버퍼(731)는 IP 클락과 네트워크 온 칩의 두 종류의 클락을 지원하기 위한synchronization 기능을 지원할 수 있다. 도 11a에 도시된 제1 상위 입력포트 0은 멀티캐스팅이 가능한 포트이고, 나머지 입력포트 2 내지 5는 멀티캐스팅이 가 능하지 않은 일반적인 입력포트이다.
제1 멀티 리퀘스터(733)는 제1 입력버퍼(731)에 버퍼링 된 패킷을 출력포트로 전송하기 위하여, 패킷의 라우팅 정보를 디코딩 하고, 출력포트 개수만큼의 제1 리퀘스트 신호(req 1, req 2, req 3, req 4)를 동시에 생성하여 복수의 제1 아비터(735)로 출력한다.
복수의 제1 아비터(735)는 제1 멀티 리퀘스터(733)로부터 출력된 제1 리퀘스트 신호(req 1, req 2, req 3, req 4)를 해당 아비터 1 내지 4를 통해 각각 수신하고, 수신된 각 제1 리퀘스트 신호에 대한 복수의 제1 그랜트 신호(gnt 1, gnt 2, gnt 3, gnt 4)를 제1 그랜트 체커(737)로 출력한다. 여기서, 복수의 제1 아비터(735)는 그랜트 신호의 스케줄링을 위해 입력포트 0번부터 순서대로 그랜트를 할당하는 라운드-로빈(round-robin) 스케줄링을 사용할 수 있다.
제1 그랜트 체커(737)는 복수의 제1 아비터(735)로부터 출력된 복수의 제1 그랜트 신호(gnt 1, gnt 2, gnt 3, gnt 4)를 수신하되, 제1 그랜트 신호(gnt 1, gnt 2, gnt 3, gnt 4)가 모두 수신 될 때까지 제1 입력버퍼(731)에 버퍼링 된 패킷을 홀딩 시킨다. 또한, 제1 그랜트 체커(737)는 복수의 제1 그랜트 신호(gnt 1, gnt 2, gnt 3, gnt 4)가 모두 수신될 경우, 홀딩를 멈추고 제1 입력버퍼(731)에 버퍼링 된 패킷이 해당 출력포트로 전송되도록 하며, 이때 복수의 제1 아비터(735)는 각 출력포트와 연결된 먹스(MUX 1, MUX 2, MUX 3, MUX 4)에 출력 컨트롤 신호를 출력함으로써, 제1 그랜트 신호에 따른 출력포트를 선택하게 된다. 예를 들어 도 11a에 도시된 바와 같이, 해당 아비터에 의해 MUX 1, MUX 2, MUX 4가 선택됨에 따라 해당 출력포트 1, 2, 4로 제1 입력버퍼(731)에 버퍼링 된 패킷이 동시에 전송 될 수 있다.
제1 가변 강도 드라이버(739)는 제1 입력버퍼(731)의 출력단에 연결 될 수 있다. 제1 입력버퍼(731)에 버퍼링 된 패킷은 해당 출력포트 1, 2, 4로 동시에 전송되어야 한다. 이에 따라, 제1 가변강도 드라이버(739)를 통해 전송 강도를 증가시켜줌으로써 보다 효율적인 신호전송이 이루어지도록 할 수 있다.
한편, 제1 입력버퍼(731)에 버퍼링 된 패킷은 각 입력포트들과 출력포트들을 와이어(wire)로 연결하는 크로스바 패브릭(crossbar fabric)을 통해 해당 출력포트로 전송 될 수 있다.
도 11b는 도 11a에 도시된 시스템 네트워크 스위치(730)의 제1 멀티 리퀘스터(733)와 제1 그랜트 체커(737)의 블록 다이어그램을 나타낸 도면이다.
도 11b에 도시된 바와 같이, 제1 멀티 리퀘스터(733)는 디코더(734)를 통해 패킷의 라우팅 정보를 OR 로직을 이용하여 디코딩 한 후, 디코딩 된 라우팅 정보로부터 해당되는 모든 아비터에 복수의 제1 리퀘스트 신호를 동시에 전송하는 한편, 전송된 제1 리퀘스트 신호들을 저장한다.
제1 그랜트 체커(737)는 복수의 제1 리퀘스트 신호에 대한 복수의 제1 그랜트 신호를 모두 수신할 때까지 기다리며. 제1 입력버퍼(731)에 버퍼링 된 패킷을 홀딩시킨다. 보다 구체적으로, 제1 그랜트 체커(737)는 복수의 제1 아비터(735)로부터 제1 그랜트 신호를 수신하면서 XOR 및 NOR 로직을 통해 복수의 제1 그랜트 신호와 복수의 제1 리퀘스트 신호가 모두 일치 할 때까지 제1 입력버퍼(731)에 버퍼 링 된 패킷을 홀딩 시키며 신호가 모두 수신되었는지를 체크한다. 또한, 두 신호가 모두 수신되고 수신된 신호가 모두 일치함이 확인되면, 해당 아비터들을 통해 제1 입력버퍼(731)에 버퍼링 된 패킷을 출력할 수 있도록 한다.
보통 패킷 일 경우 즉, 멀티캐스팅을 수행 하지 않을 경우에는 하나의 아비터가 해당 출력포트의 먹스를 컨트롤하여 하나의 출력포트로만 패킷이 전송되었던 것에 반해, 멀티캐스팅 패킷 즉, 멀티캐스팅을 수행할 경우에는 하나의 입력포트가 복수의 아비터가 복수의 해당 출력포트를 선택하게 함으로써, 패킷이 복수의 해당 출력포트로 동시에 전송 될 수 있다.
한편, 도 11a 및 11b를 통하여 도시하지 않았으나, 태스크 스케줄러(750)의 출력포트와 연결된 제2 상위 입력포트 1을 포함 할 수 있다. 제2 상위 입력포트 1을 통해 입력된 패킷은 제1 상위 입력포트 0을 통해 입력된 패킷이 상위 출력포트 2, 3, 4, 5로 멀티캐스팅이 수행되는 것과 같은 방식으로 입력버퍼, 멀티 리퀘스터, 복수의 아비터, 그랜트 체커 및 가변 강도 드라이버를 통해 상위 출력포트 2, 3, 4, 5로 멀티캐스팅 될 수 있다. 따라서 제2 상위 입력포트 1로 입력되는 패킷이 멀티캐스팅 되는 경우에 대한설명은 후술할 제1 상위 입력포트 0로 입력되는 패킷이 멀티캐스팅 되는 경우에 대한 설명으로 대체한다.
도 12a는 본 발명의 제2 실시예에 따른 로컬 네트워크 스위치(120a)의 구성을 나타낸 도면이다. 도 12a에서는 5x5 크기를 갖는 제1 로컬 네트워크 스위치(120a)를 예로 하여 도시하였다.
도 12a를 참조하면, 본 발명의 제2 실시예에 따른 로컬 네트워크 스위 치(730a)는 제2 입력버퍼(721), 제2 멀티 리퀘스터(723), 복수의 제2 아비터(725), 제2 그랜트 체커(727) 및 제2 가변 강도 드라이버(729)를 포함한다.
제2 입력버퍼(721)는 상위 입력포트 0을 통해 입력된 패킷을 버퍼링 한다. 제2 입력버퍼(721)에 패킷이 저장되면 상위 입력포트 0은 활성화된다. 이러한 제2 입력버퍼(721)는 FIFO 버퍼(fist-in-first-out buffer)일 수 있다. 이러한 제2 입력버퍼(721)는 IP 클락과 네트워크 온 칩의 두 종류의 클락을 지원하기 위한synchronization 기능을 지원할 수 있다. 도 12a에 도시된 상위 입력포트 0은 멀티캐스팅이 가능한 포트이고, 나머지 입력포트 1 내지 4는 멀티캐스팅이 가능하지 않은 일반적인 입력포트이다.
제2 멀티 리퀘스터(723)는 제2 입력버퍼(721)에 버퍼링 된 패킷을 출력포트로 전송하기 위하여, 패킷의 라우팅 정보를 디코딩 하고, 출력포트 개수만큼의 제2 리퀘스트 신호(req 1, req 2, req 3, req 4)를 동시에 생성하여 복수의 제2 아비터(725)로 출력한다.
복수의 제2 아비터(725)는 제2 멀티 리퀘스터(723)로부터 출력된 제2 리퀘스트 신호(req 1, req 2, req 3, req 4)를 해당 아비터 1 내지 4를 통해 각각 수신하고, 수신된 각 제2 리퀘스트 신호에 대한 복수의 제2 그랜트 신호(gnt 1, gnt 2, gnt 3, gnt 4)를 제2 그랜트 체커(727)로 출력한다. 여기서, 복수의 제2 아비터(725)는 그랜트 신호의 스케줄링을 위해 입력포트 0번부터 순서대로 그랜트를 할당하는 라운드-로빈(round-robin) 스케줄링을 사용할 수 있다.
제2 그랜트 체커(727)는 복수의 제2 아비터(725)로부터 출력된 복수의 제2 그랜트 신호(gnt 1, gnt 2, gnt 3, gnt 4)를 수신하되, 제2 그랜트 신호(gnt 1, gnt 2, gnt 3, gnt 4)가 모두 수신 될 때까지 제2 입력버퍼(721)에 버퍼링 된 패킷을 홀딩 시킨다.
또한, 제2 그랜트 체커(727)는 복수의 제2 그랜트 신호(gnt 1, gnt 2, gnt 3, gnt 4)가 모두 수신될 경우, 홀딩을 멈추고 제2 입력버퍼(721)에 버퍼링 된 패킷이 해당 출력포트로 전송되도록 하며, 이때 복수의 제2 아비터(725)는 각 출력포트와 연결된 먹스(MUX 1, MUX 2, MUX 3, MUX 4)에 출력 컨트롤 신호를 출력함으로써, 제2 그랜트 신호에 따른 출력포트를 선택하게 된다. 예를 들어 도 12a에 도시된 바와 같이, 해당 아비터에 의해 MUX 1, MUX 2, MUX 4가 선택됨에 따라 해당 출력포트 1, 2, 4로 제2 입력버퍼(721)에 버퍼링 된 패킷이 동시에 전송 될 수 있다.
제2 가변 강도 드라이버(729)는 제2 입력버퍼(721)의 출력단에 연결 될 수 있다. 제2 입력버퍼(721)에 버퍼링 된 패킷은 해당 출력포트 1, 2, 4로 동시에 전송되어야 한다. 이에 따라, 제2 가변강도 드라이버(729)를 통해 전송 강도를 증가시켜줌으로써 보다 효율적인 신호전송이 이루어지도록 할 수 있다.
한편, 제2 입력버퍼(721)에 버퍼링 된 패킷은 각 입력포트들과 출력포트들을 와이어(wire)로 연결하는 크로스바 패브릭(crossbar fabric)을 통해해당 출력포트로 전송 될 수 있다.
도 12b는 도 12a에 도시된 로컬 네트워크 스위치(730a)의 제2 멀티 리퀘스터(723)와 제2 그랜트 체커(727)의 블록 다이어그램을 나타낸 도면이다.
도 12b에 도시된 바와 같이, 제2 멀티 리퀘스터(723)는 디코더(724)를 통해 패킷의 라우팅 정보를 OR 로직을 이용하여 디코딩 한 후, 디코딩 된 라우팅 정보로부터 해당되는 모든 아비터에 복수의 제2 리퀘스트 신호를 동시에 전송하는 한편, 전송된 제2 리퀘스트 신호들을 저장한다.
제2 그랜트 체커(727)는 복수의 제2 리퀘스트 신호에 대한복수의 제2 그랜트 신호를 모두 수신할 때까지 기다리며. 제2 입력버퍼(721)에 버퍼링 된 패킷을 홀딩 시킨다. 보다 구체적으로, 제2 그랜트 체커(727)는 복수의 제2 아비터(725)로부터 제2 그랜트 신호를 수신하면서 XOR 및 NOR 로직을 통해 복수의 제2 그랜트 신호와 복수의 제2 리퀘스트 신호가 모두 일치할 때까지 제2 입력버퍼(721)에 버퍼링 된 패킷을 홀딩 시키며 신호가 모두 수신되었는지를 체크한다. 또한, 두 신호가 모두 수신되고 수신된 신호가 모두 일치함이 확인되면, 해당 아비터들을 통해 제2 입력버퍼(721)에 버퍼링 된 패킷을 출력할 수 있도록 한다.
도 13은 본 발명에 따른 멀티캐스팅 네트워크 온 칩 시스템에 대한 효과를 나타낸 도면이다.
도 13에 도시된 바와 같이, 상술한 이미지 처리 시스템을 이용하여 하나의 프레임 이미지를 처리함에 있어서, 커널 프로그램 분배와 이미지 데이터 다운로드 시 멀티캐스팅을 적용하지 않았을 경우 그리고, 적용한 경우에 대한 각각의 총 데이터 이동에 필요한 싸이클 수와 네트워크 온 칩의 에너지를 측정하였다.
먼저, 컨트롤 프로세서로부터 16개의 프로세싱 유닛으로 동일한 커널 프로그램을 브로드캐스팅 방식으로 전송 할 경우, 총 싸이클 수를 85%의 감소시켰다. 또한, 태스크 스케줄러로부터 이미지 데이터를 각 프로세싱 유닛으로 다운로드 시킬 때 멀티캐스팅 방식으로 전송 할 경우, 총 싸이클 수를 18% 감소시켜 전체적으로 약 20%의 싸이클 수를 감소시켰다.
에너지 측면에서도 멀티캐스팅 효과에 의하여 네트워크 스위치에서 버퍼링 되는 패킷의 횟수를 줄이게 됨으로써 전체적으로 약 23%의 에너지 감소 효과를 얻을 수 있었다.
이상에서 보는 바와 같이, 본 발명이 속하는 기술 분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시 될 수 있다는 것을 이해할 수 있을 것이다.
그러므로 이상에서 기술한 실시 예는 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 하고, 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
도 1은 본 발명의 제1 실시예에 따른 멀티캐스팅 네트워크 온 칩의 구성을 나타낸 도면.
도 2는 본 발명의 제1 실시예에 따른 웜홀 라우팅(wormhole routing) 프로토콜 기반의 멀티캐스팅 네트워크 온 칩의 패킷의 포맷을 나타낸 도면.
도 3은 본 발명의 제1 실시예에 따른 스위치 라우터가 패킷 라우팅 정보를 디코딩 하는 방법을 나타낸 도면.
도 4a는 본 발명의 제1 실시예에 따른 상위 스위치 라우터의 구성을 나타낸 도면.
도 4b는 본 발명의 제1 실시예에 따른 상위 스위치 라우터의 제1 멀티 리퀘스터와 제1 그랜트 체커의 블록 다이어그램을 나타낸 도면.
도 5a는 본 발명의 제1 실시예에 따른 로컬 스위치 라우터의 구성을 나타낸 도면.
도 5b는 본 발명의 제1 실시예에 따른 로컬 스위치 라우터의 제2 멀티 리퀘스터와 제2 그랜트 체커의 블록 다이어그램을 나타낸 도면.
도 6은 멀티캐스팅 패킷의 스위치 전송 4단계를 나타낸 도면.
도 7은 본 발명의 제2 실시예에 따른 멀티캐스팅 네트워크 온 칩 시스템의 구성을 나타낸 도면.
도 8은 본 발명의 제2 실시예에 따른 멀티캐스팅 네트워크 온 칩 시스템의 동작설명을 위해 나타낸 도면.
도 9는 본 발명의 제2 실시예에 따른 패킷의 포맷을 나타낸 도면.
도 10은 본 발명의 제2 실시예에 따른 네트워크 스위치가 패킷 라우팅 정보를 디코딩 하는 방법을 나타낸 도면.
도 11a는 본 발명의 제2 실시예에 따른 시스템 네트워크 스위치의 구성을 나타낸 도면.
도 11b는 본 발명의 제2 실시예에 따른 시스템 네트워크 스위치의 제1 멀티 리퀘스터와 제1 그랜트 체커의 블록 다이어그램을 나타낸 도면.
도 12a는 본 발명의 제2 실시예에 따른 로컬 네트워크 스위치의 구성을 나타낸 도면.
도 12b는 본 발명의 제2 실시예에 따른 로컬 네트워크 스위치의 제2 멀티 리퀘스터와 제2 그랜트 체커의 블록 다이어그램을 나타낸 도면.
도 13은 본 발명에 따른 멀티캐스팅 네트워크 온 칩 시스템에 대한 효과를 나타낸 도면.
**********도면의 주요 부분에 대한부호의 설명**********
110: 상위 스위치 라우터
120a, 120b, 120c, 120d: 로컬 스위치 라우터
111, 731: 제1 입력버퍼
113, 733: 제1 멀티 리퀘스터
115, 735: 제1 아비터
125, 725: 제2 아비터
117, 737: 제1 그랜트 체커
119, 739: 제1 가변 강도 드라이버
121, 721: 제2 입력버퍼
123, 723: 제2 멀티 리퀘스터
127, 727: 제2 그랜트 체커
129, 729: 제2 가변 강도 드라이버
710: 프로세싱 유닛
720a, 720b, 720c, 720d: 로컬 네트워크 스위치
730: 시스템 네트워크 스위치
740: 컨트롤 프로세서
750: 태스크 스케줄러

Claims (15)

  1. 복수의 IP를 포함하되 멀티캐스팅 가능한 IP를 적어도 하나 포함하고, 상기 멀티캐스팅 가능한 IP로부터 복수의 종착 IP로 동시에 패킷 전송이 가능한 멀티캐스팅 네트워크 온 칩으로서,
    상위 입력포트와 복수의 상위 출력포트를 가지며, 상기 상위 입력포트가 상기 멀티캐스팅 가능한 IP의 출력포트와 연결된 상위 스위치 라우터; 및
    로컬 입력포트와 복수의 로컬 출력포트를 가지며, 상기 로컬 입력포트가 상기 복수의 상위 출력포트와 연결되고, 상기 복수의 로컬 출력포트가 상기 복수의 종착 IP의 입력포트와 연결된 복수의 로컬 스위치 라우터를 포함하되,
    상기 멀티캐스팅 가능한 IP에서부터 상기 상위 스위치 라우터와 상기 복수의 로컬 스위치 라우터를 거쳐 상기 복수의 종착 IP까지 트리 구조로 연결되며,
    상기 상위 스위치 라우터와 상기 복수의 로컬 스위치 라우터 각각은 패킷의 라우팅 정보에 따라 자신의 입력포트로부터 자신의 출력포트들로 멀티캐스팅이 가능하도록 구성된 것을 특징으로 하는 멀티캐스팅 네트워크 온 칩.
  2. 제1항에 있어서,
    상기 패킷은,
    헤더 플릿, 주소 플릿 및 데이터 플릿을 포함하고,
    상기 헤더 플릿은,
    상기 복수의 종착 IP의 주소와 각각 매핑 된 비트 값들로 이루어진 라우팅 정보를 포함하고,
    상기 주소 플릿과 상기 데이터 플릿은,
    상기 라우팅 정보에 따른 최종 종착 IP에서 데이터를 쓰거나 읽어 오도록 하는 것을 특징으로 하는, 멀티캐스팅 네트워크 온 칩.
  3. 제1항에 있어서,
    상기 상위 스위치 라우터는,
    상기 상위 입력포트를 통해 입력된 패킷을 버퍼링하는 제1 입력버퍼;
    상기 상위 입력포트를 통해 입력된 패킷의 라우팅 정보를 디코딩하여 상기 제1 입력버퍼에 버퍼링 된 패킷이 상기 복수의 상위 출력포트로 전송 될 수 있도록 하는 그랜트를 얻기 위한 복수의 제1 리퀘스트 신호를 동시에 생성하고 출력하는 제1 멀티 리퀘스터;
    상기 제1 멀티 리퀘스터로부터 출력된 상기 복수의 제1 리퀘스트 신호를 수신하고, 수신된 상기 복수의 제1 리퀘스트 신호에 대한 복수의 제1 그랜트 신호를 출력하는 복수의 제1 아비터; 및
    상기 복수의 제1 아비터로부터 출력된 상기 복수의 제1 그랜트 신호를 수신하되, 상기 복수의 제1 그랜트 신호가 모두 수신될 때까지 상기 제1 입력버퍼에 버퍼링 된 패킷을 홀딩 시키는 제1 그랜트 체커를 포함하며,
    상기 복수의 제1 아비터는,
    상기 복수의 제1 그랜트 신호에 따라 상기 복수의 상위 출력포트를 선택하고, 선택된 상위 출력포트로 상기 제1 입력버퍼에 버퍼링 된 패킷이 동시에 전송되도록 하는, 멀티캐스팅 네트워크 온 칩.
  4. 제3항에 있어서,
    상기 상위 스위치 라우터는,
    상기 제1 입력버퍼에 버퍼링 된 패킷의 전송 시 전송 강도를 변화시키기 위해 상기 제1 입력버퍼의 출력단에 연결된 제1 가변 강도 드라이버를 더 포함하는, 멀티캐스팅 네트워크 온 칩.
  5. 제1항에 있어서,
    상기 복수의 로컬 스위치 라우터 각각은,
    상기 로컬 입력포트를 통해 입력된 패킷을 버퍼링하는 제2 입력버퍼;
    상기 로컬 입력포트를 통해 입력된 패킷의 라우팅 정보를 디코딩하여 상기 제2 입력버퍼에 버퍼링 된 패킷이 상기 복수의 로컬 출력포트로 전송 될 수 있도록 하는 그랜트를 얻기 위한 복수의 제2 리퀘스트 신호를 동시에 생성하고 출력하는 제2 멀티 리퀘스터;
    상기 제2 멀티 리퀘스터로부터 출력된 상기 복수의 제2 리퀘스트 신호를 수신하고, 수신된 상기 복수의 제2 리퀘스트 신호에 대한 복수의 제2 그랜트 신호를 출력하는 복수의 제2 아비터; 및
    상기 복수의 제2 아비터로부터 출력된 상기 복수의 제2 그랜트 신호를 수신하되, 상기 복수의 제2 그랜트 신호가 모두 수신될 때까지 상기 제2 입력버퍼에 버퍼링 된 패킷을 홀딩 시키는 제2 그랜트 체커를 포함하며,
    상기 복수의 제2 아비터는,
    상기 복수의 제2 그랜트 신호에 따라 상기 복수의 로컬 출력포트를 선택하고, 선택된 로컬 출력포트로 상기 제2 입력버퍼에 버퍼링 된 패킷이 동시에 전송되도록 하는, 멀티캐스팅 네트워크 온 칩.
  6. 제5항에 있어서,
    상기 복수의 로컬 스위치 라우터 각각은,
    상기 제2 입력버퍼에 버퍼링 된 패킷의 전송 시 전송 강도를 변화시키기 위해 상기 제2 입력버퍼의 출력단에 연결된 제2 가변 강도 드라이버를 더 포함하는, 멀티캐스팅 네트워크 온 칩.
  7. 복수의 프로세싱 유닛;
    로컬 입력포트와 복수의 로컬 출력포트를 가지며, 상기 복수의 로컬 출력포트가 상기 복수의 프로세싱 유닛의 입력포트와 각각 연결된 복수의 로컬 네트워크 스위치;
    제1 상위 입력포트, 제2 상위 입력포트 및 복수의 상위 출력포트를 가지며, 상기 복수의 상위 출력포트가 상기 복수의 로컬 네트워크 스위치의 로컬 입력포트 와 각각 연결된 시스템 네트워크 스위치;
    출력포트가 상기 제1 상위 입력포트와 연결되고, 상기 시스템 네트워크 스위치와 상기 복수의 로컬 네트워크 스위치를 통하여 상기 복수의 프로세싱 유닛으로 소정의 프로그램을 다운로드 시키는 컨트롤 프로세서; 및
    출력포트가 상기 제2 상위 입력포트와 연결되고, 상기 시스템 네트워크 스위치와 상기 복수의 로컬 네트워크 스위치를 통하여 상기 소정의 프로그램에 대한 태스크를 상기 복수의 프로세싱 유닛에 할당하는 태스크 스케줄러를 포함하며,
    상기 컨트롤 프로세서 및 상기 태스크 스케줄러에서부터 상기 시스템 네트워크 스위치와 상기 복수의 로컬 네트워크 스위치를 거쳐 상기 복수의 프로세싱 유닛까지 트리 구조로 연결되며,
    상기 시스템 네트워크 스위치와 상기 복수의 로컬 네트워크 스위치 각각은 패킷의 라우팅 정보에 따라 자신의 입력포트로부터 자신의 출력포트들로 멀티캐스팅이 가능하도록 구성된 것을 특징으로 하는 멀티캐스팅 네트워크 온 칩 시스템.
  8. 제7항에 있어서,
    상기 시스템 네트워크 스위치와 외부 메모리 사이에 연결되고, 상기 복수의 프로세싱 유닛의 데이터 처리결과를 상기 외부 메모리로 전달하는 외부 메모리 인터페이스를 더 포함하는, 멀티캐스팅 네트워트 온 칩 시스템.
  9. 제7항에 있어서,
    상기 컨트롤 프로세서로부터 전송되는 소정의 프로그램과 상기 태스크 스케줄러로부터 전송되는 상기소정의 프로그램에 대한 태스크는 패킷 형태로 전송되며,
    상기 패킷은,
    헤더 플릿, 주소 플릿 및 데이터 플릿을 포함하고,
    상기 헤더 플릿은,
    상기 복수의 프로세싱 유닛의 주소와 각각 매핑 된 비트 값들로 이루어진 라우팅 정보를 포함하고,
    상기 주소 플릿과 상기 데이터 플릿은,
    상기 라우팅 정보에 따라 상기 패킷이 최종적으로 전송되는 프로세싱 유닛에서 데이터를 쓰거나 읽어 오도록 하는 것을 특징으로 하는, 멀티캐스팅 네트워크 온 칩 시스템.
  10. 제7항에 있어서,
    상기 시스템 네트워크 스위치는,
    상기 제1 상위 입력포트 또는 상기 제2 상위 입력포트를 통해 입력된 패킷을 버퍼링하는 제1 입력버퍼;
    상기 제1 상위 입력포트 및 상기 제2 상위 입력포트를 통해 입력된 패킷의 라우팅 정보를 디코딩하여 상기 제1 입력버퍼에 버퍼링 된 패킷이 상기 복수의 상위 출력포트로 전송 될 수 있도록 하는 그랜트를 얻기 위한 복수의 제1 리퀘스트 신호를 동시에 생성하고 출력하는 제1 멀티 리퀘스터;
    상기 제1 멀티 리퀘스터로부터 출력된 상기 복수의 제1 리퀘스트 신호를 수신하고, 수신된 상기 복수의 제1 리퀘스트 신호에 대한 복수의 제1 그랜트 신호를 출력하는 복수의 제1 아비터; 및
    상기 복수의 제1 아비터로부터 출력된 상기 복수의 제1 그랜트 신호를 수신하되, 상기 복수의 제1 그랜트 신호가 모두 수신될 때까지 상기 제1 입력버퍼에 버퍼링 된 패킷을 홀딩 시키는 제1 그랜트 체커를 포함하며,
    상기 복수의 제1 아비터는,
    상기 복수의 제1 그랜트 신호에 따라 상기 복수의 상위 출력포트를 선택하고, 선택된 상위 출력포트로 상기 제1 입력버퍼에 버퍼링 된 패킷이 동시에 전송되도록 하는, 멀티캐스팅 네트워크 온 칩 시스템.
  11. 제10항에 있어서,
    상기 시스템 네트워크 스위치는,
    상기 제1 입력버퍼에 버퍼링 된 패킷의 전송 시 패킷의 전송 강도를 변화시키기 위해 상기 제1 입력버퍼의 출력단에 연결된 제1 가변 강도 드라이버를 더 포함하는, 멀티캐스팅 네트워크 온 칩 시스템.
  12. 제7항에 있어서,
    상기 복수의 로컬 네트워크 스위치 각각은,
    상기 로컬 입력포트를 통해 입력된 패킷을 버퍼링하는 제2 입력버퍼;
    상기 로컬 입력포트를 통해 입력된 패킷의 라우팅 정보를 디코딩하여 상기 제2 입력버퍼에 버퍼링 된 패킷이 상기 복수의 로컬 출력포트로 전송 될 수 있도록 하는 그랜트를 얻기 위한 복수의 제2 리퀘스트 신호를 동시에 생성하고 출력하는 제2 멀티 리퀘스터;
    상기 제2 멀티 리퀘스터로부터 출력된 상기 복수의 제2 리퀘스트 신호를 수신하고, 수신된 상기 복수의 제2 리퀘스트 신호에 대한 복수의 제2 그랜트 신호를 출력하는 복수의 제2 아비터; 및
    상기 복수의 제2 아비터로부터 출력된 상기 복수의 제2 그랜트 신호를 수신하되, 상기 복수의 제2 그랜트 신호가 모두 수신될 때까지 상기 제2 입력버퍼에 버퍼링 된 패킷을 홀딩 시키는 제2 그랜트 체커를 포함하며,
    상기 복수의 제2 아비터는,
    상기 복수의 제2 그랜트 신호에 따라 상기 복수의 로컬 출력포트를 선택하고, 선택된 로컬 출력포트로 상기 제2 입력버퍼에 버퍼링 된 패킷이 동시에 전송되도록 하는, 멀티캐스팅 네트워크 온 칩 시스템.
  13. 제12항에 있어서,
    상기 복수의 로컬 네트워크 스위치 각각은,
    상기 제2 입력버퍼에 버퍼링 된 패킷의 전송 시 패킷의 전송 강도를 변화시키기 위해 상기 제2 입력버퍼의 출력단에 연결된 제2 가변 강도 드라이버를 더 포함하는, 멀티캐스팅 네트워크 온 칩 시스템.
  14. 입력포트와 복수의 출력포트를 가지며, 상기 입력포트를 통해 입력된 패킷을 상기 복수의 출력포트로 전송하는 네트워크 온 칩에서의 네트워크 스위치로서,
    상기 입력포트를 통해 입력된 패킷을 버퍼링하는 입력버퍼;
    상기 입력포트를 통해 입력된 패킷의 라우팅 정보를 디코딩하여 상기 입력버퍼에 버퍼링 된 패킷이 상기 복수의 출력포트로 전송 될 수 있도록 하는 그랜트를 얻기 위한 복수의 리퀘스트 신호를 동시에 생성하고 출력하는 멀티 리퀘스터;
    상기 멀티 리퀘스터로부터 출력된 상기 복수의 리퀘스트 신호를 수신하고, 수신된 상기 복수의 리퀘스트 신호에 대한 복수의 그랜트 신호를 출력하는 복수의 아비터; 및
    상기 복수의 아비터로부터 출력된 상기 복수의 그랜트 신호를 수신하되, 상기 복수의 그랜트 신호가 모두 수신 될 때까지 상기 입력버퍼에 버퍼링 된 패킷을 홀딩 시키는 그랜트 체커를 포함하며,
    상기 복수의 아비터는,
    상기 복수의 그랜트 신호에 따라 상기 복수의 출력포트를 선택하고, 선택된 출력포트로 상기 입력버퍼에 버퍼링 된 패킷이 동시에 전송되도록 하는 것을 특징으로 하는 네트워크 스위치.
  15. 제14항에 있어서,
    상기 입력버퍼에 버퍼링 된 패킷이 상기 복수의 출력포트로 전송 될 경우 패 킷의 전송 강도를 변화시키기 위해 상기 입력버퍼의 출력단에 연결된 가변 강도 드라이버를 더 포함하는, 네트워크 스위치.
KR1020090082013A 2009-09-01 2009-09-01 멀티캐스팅 네트워크 온 칩, 그 시스템 및 네트워크 스위치 KR101033425B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090082013A KR101033425B1 (ko) 2009-09-01 2009-09-01 멀티캐스팅 네트워크 온 칩, 그 시스템 및 네트워크 스위치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090082013A KR101033425B1 (ko) 2009-09-01 2009-09-01 멀티캐스팅 네트워크 온 칩, 그 시스템 및 네트워크 스위치

Publications (2)

Publication Number Publication Date
KR20110024132A KR20110024132A (ko) 2011-03-09
KR101033425B1 true KR101033425B1 (ko) 2011-05-09

Family

ID=43932029

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090082013A KR101033425B1 (ko) 2009-09-01 2009-09-01 멀티캐스팅 네트워크 온 칩, 그 시스템 및 네트워크 스위치

Country Status (1)

Country Link
KR (1) KR101033425B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2586029B (en) * 2019-07-29 2022-07-27 Siemens Ind Software Inc Emulating broadcast in a network on chip

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960024971A (ko) * 1994-12-21 1996-07-20 양승택 고성능 프로세서간 통신망 노드의 셀프루팅 경로 제어용 어드레스 애트리뷰트 구조 및 할당 방법
KR20030082598A (ko) * 2001-02-24 2003-10-22 인터내셔널 비지네스 머신즈 코포레이션 클래스 네트워크 라우팅

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960024971A (ko) * 1994-12-21 1996-07-20 양승택 고성능 프로세서간 통신망 노드의 셀프루팅 경로 제어용 어드레스 애트리뷰트 구조 및 할당 방법
KR20030082598A (ko) * 2001-02-24 2003-10-22 인터내셔널 비지네스 머신즈 코포레이션 클래스 네트워크 라우팅

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Planar adaptive router microarchitecture for tree-based multicast network-on-chip", NoCArc2008, 2008
"Virtual circuit tree multicasting: A case for on-chip hardware multicast support", International Symposium on Computer Architecture, 2008.06

Also Published As

Publication number Publication date
KR20110024132A (ko) 2011-03-09

Similar Documents

Publication Publication Date Title
US11580054B2 (en) Scalable network-on-chip for high-bandwidth memory
US9742630B2 (en) Configurable router for a network on chip (NoC)
US20070180310A1 (en) Multi-core architecture with hardware messaging
US20140126572A1 (en) Programmable logic device with integrated network-on-chip
US9237095B2 (en) Island-based network flow processor integrated circuit
US8228930B1 (en) Interconnection network router arrangements and methods therefor
US10936525B2 (en) Flexible routing of network data within a programmable integrated circuit
WO2002065700A2 (en) An interconnection system
US20120296915A1 (en) Collective Acceleration Unit Tree Structure
US9860841B2 (en) Communications fabric with split paths for control and data packets
US20090138645A1 (en) Soc system
US20210182233A1 (en) Processing of ethernet packets at a programmable integrated circuit
US7218638B2 (en) Switch operation scheduling mechanism with concurrent connection and queue scheduling
WO2010122896A1 (ja) データ伝送システム、データ伝送方法およびデータ送信装置
KR101033425B1 (ko) 멀티캐스팅 네트워크 온 칩, 그 시스템 및 네트워크 스위치
US8571016B2 (en) Connection arrangement
US20040037292A1 (en) Processing of received data within a multiple processor device
US10091136B2 (en) On-chip network device capable of networking in dual switching network modes and operation method thereof
US6684300B1 (en) Extended double word accesses
US9497141B2 (en) Switch point having look-ahead bypass
US9148270B2 (en) Method and apparatus for handling data flow in a multi-chip environment using an interchip interface
Sander et al. Priority-based packet communication on a bus-shaped structure for FPGA-systems
US9164794B2 (en) Hardware prefix reduction circuit
US9268600B2 (en) Picoengine pool transactional memory architecture
US20240073129A1 (en) Peer-to-peer communication between reconfigurable dataflow units

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee