KR101924002B1 - 칩 멀티 프로세서, 및 칩 멀티 프로세서를 위한 라우터 - Google Patents

칩 멀티 프로세서, 및 칩 멀티 프로세서를 위한 라우터 Download PDF

Info

Publication number
KR101924002B1
KR101924002B1 KR1020110133198A KR20110133198A KR101924002B1 KR 101924002 B1 KR101924002 B1 KR 101924002B1 KR 1020110133198 A KR1020110133198 A KR 1020110133198A KR 20110133198 A KR20110133198 A KR 20110133198A KR 101924002 B1 KR101924002 B1 KR 101924002B1
Authority
KR
South Korea
Prior art keywords
data
type
buffer
output port
router
Prior art date
Application number
KR1020110133198A
Other languages
English (en)
Other versions
KR20130066401A (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 KR1020110133198A priority Critical patent/KR101924002B1/ko
Priority to US13/680,014 priority patent/US20160261484A9/en
Publication of KR20130066401A publication Critical patent/KR20130066401A/ko
Application granted granted Critical
Publication of KR101924002B1 publication Critical patent/KR101924002B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • 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/15Interconnection of switching modules
    • H04L49/1553Interconnection of ATM switching modules, e.g. ATM switching fabrics
    • H04L49/1576Crossbar or matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways

Abstract

패킷 스위칭 방식과 서킷 스위칭 방식을 모두 지원하는 칩 멀티 프로세서 및 그 칩 멀티 프로세서의 라우터가 제공된다. 본 발명의 일 양상에 따른 칩 멀티 프로세서는, 프로세서 또는 메모리를 포함하는 다수의 노드, 각각의 노드에 연결되는 다수의 라우터, 및 각각의 라우터들 사이에 형성되는 링크를 포함하고, 각각의 라우터는, 제 1 유형의 데이터를 패킷 스위칭에 기초하여 전송하고, 제 2 유형의 데이터를 서킷 스위칭에 기초하여 전송하는 것이 가능하다.

Description

칩 멀티 프로세서, 및 칩 멀티 프로세서를 위한 라우터{Chip multi processor and router for chip multi processor}
다수의 프로세서를 포함하는 칩 멀티 프로세서, 및 칩 멀티 프로세서내의 데이터 통신 기술과 관련된다.
멀티 코어 프로세서(multi-core processor)란 두 개 이상의 프로세싱 코어(processing core)를 탑재하여 만든 프로세서를 말한다. 단일 코어 프로세서에서의 성능 개선은 동작 클록의 속도를 빠르게 하는 방식으로 이루어졌으나 속도가 빨라지면 전력 소모가 커지고 발열이 많아 동작 클록으로 성능을 개선하는 데에는 한계가 있다.
단일 코어 프로세서의 대안으로 제시된 멀티 코어 프로세서는 여러 개의 프로세싱 코어가 탑재되기 때문에 각 개별 프로세싱 코어가 보다 낮은 주파수에서 작동할 수 있고, 소모되는 전력을 여러 프로세싱 코어에 분산시키는 장점이 있다. 즉 멀티 코어 프로세서는 중앙 처리 장치(CPU)가 2개 이상 들어간 것과 마찬가지이기 때문에 단일 코어 프로세서에 비해서 빠른 작업을 할 수 있고, 특히 동영상의 인코딩, 포토샵 작업, 높은 사양의 게임과 같은 작업에 적합하다.
멀티 코어 프로세서에서 전체 시스템 성능은 프로세싱 코어간 네트워크 대역폭(network bandwidth)의 영향을 받는다. 네트워크 대역폭의 향상은 네트워크 채널 자체의 대역폭, 즉 물리적인 연결 와이어를 늘리는 방법으로 구현될 수가 있다. 그러나 채널 대역폭의 증가는 power 및 area도 함께 소모하기 때문에 cost-effiecient 구조를 가질 수 없다.
패킷 스위칭 방식과 서킷 스위칭 방식을 모두 지원하는 칩 멀티 프로세서 및 그 칩 멀티 프로세서의 라우터가 제공된다.
본 발명의 일 양상에 따른 칩 멀티 프로세서는, 프로세서 또는 메모리를 포함하는 다수의 노드, 각각의 노드에 연결되는 다수의 라우터, 및 각각의 라우터들 사이에 형성되는 링크를 포함하고, 각각의 라우터는, 제 1 유형의 데이터를 패킷 스위칭에 기초하여 전송하고, 제 2 유형의 데이터를 서킷 스위칭에 기초하여 전송하는 것이 가능하다.
본 발명의 일 양상에 따른 라우터는, 제 1 유형의 데이터를 저장하는 제 1 버퍼, 제 2 유형의 데이터를 저장하는 제 2 버퍼, 제 1 또는 제 2 버퍼에 저장된 제 1 또는 제 2 유형의 데이터가 출력될 출력 포트를 결정하는 출력 포트 결정부, 결정된 출력 포트로 제 1 또는 제 2 유형의 데이터를 출력하는 출력부, 및 출력부에서 제 2 유형의 데이터가 출력되는 경우, 결정된 출력 포트에 연결된 링크를 제 2 유형의 데이터에 전용으로 할당하는 제어부를 포함할 수 있다..
또한, 본 발명의 일 양상에 따라, 라우터는, 수신된 데이터가 제 1 유형의 데이터인지 또는 제 2 유형의 데이터인지 여부를 판별하고, 그 판별 결과에 따라 제 1 유형의 데이터를 제 1 버퍼로 전달하고 제 2 유형의 데이터를 제 2 버퍼로 전달하는 수신부를 더 포함할 수도 있다.
또한, 본 발명의 일 양상에 따라, 출력부는, 크로스바 스위치를 포함하여 구성될 수가 있다.
개시된 내용에 의하면, 실행되는 애플리케이션의 요청 또는 특성에 맞는 최적의 스위칭 방식에 따라 데이터 통신이 이루어지기 때문에 네트워크의 대역폭을 효과적으로 이용할 수가 있다.
도 1은 본 발명의 일 실시예에 따른 칩 멀티 프로세서를 도시한다.
도 2는 본 발명의 일 실시예에 따른 제 1 유형의 데이터를 도시한다.
도 3은 본 발명의 일 실시예에 따른 제 2 유형의 데이터를 도시한다.
도 4는 본 발명의 일 실시예에 따른 라우터의 구성을 도시한다.
도 5는 본 발명의 일 실시예에 따른 라우터의 동작 과정을 도시한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시를 위한 구체적인 예를 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 칩 멀티 프로세서를 도시하고, 도 2는 본 발명의 일 실시예에 따른 제 1 유형의 데이터를 도시하고, 도 3은 본 발명의 일 실시예에 따른 제 2 유형의 데이터를 도시한다.
도 1에서, 본 실시예에 따른 칩 멀티 프로세서(Chip Multi Processor, CMP)(100)는 다수의 노드(101a~101p), 각각의 노드(101a~101p)에 연결되는 다수의 라우터(102a~102p), 및 각각의 라우터들(102a~102p) 사이에 형성되는 연결 링크(103a~103x)를 포함한다.
각각의 노드(101a~101p)는 어떤 작업 또는 태스크를 독립적으로 처리할 수 있다. 예컨대, 노드 #0(101a)과 노드 #1(101b)은 서로 의존관계가 없는 두 개의 태스크를 병렬적으로 동시에 처리하는 것이 가능하다.
각각의 노드(101a~101p)는 프로세서 및/또는 메모리를 포함할 수 있다. 예컨대, 각각의 노드(101a~101p)는 프로세서와 메모리를 모두 포함할 수도 있고, 둘 중 하나만으로 이루어질 수도 있다.
각각의 노드(101a~101p)는 다수의 라우터(102a~102p) 및 다수의 연결 링크(103a~103x)로 구성되는 소정의 네트워크를 통해 데이터를 주고 받는다. 예컨대, 노드 #0(101a)에서 생성된 데이터는 라우터 #0(102a), 연결 링크(103a), 및 라우터 #1(102b)를 통해 노드 #1(101b)로 전달되는 것이 가능하다.
각각의 노드(101a~101p)는 제 1 유형의 데이터 또는 제 2 유형의 데이터를 생성한다.
도 2를 참조하여, 제 1 유형의 데이터를 설명하면 다음과 같다.
도 2에서, 제 1 유형의 데이터(200)는 독립적으로 전송 가능한 다수의 패킷(201a~201n)으로 이루어질 수가 있다. 각각의 패킷(201a~201n)은 모두 소정의 헤더 정보(202a~202n)를 가진다. 헤더 정보(예컨대, 202a)에는 해당 패킷(예컨대, 201a)의 도착 주소가 기록될 수 있다. 예컨대, 어떤 하나의 메시지가 제 1 유형의 데이터(200)로 표현되는 경우, 그 메시지는 다수의 패킷(201a~201n)으로 구분되고, 각각의 패킷(201a~201n)은 자신의 헤더 정보(202a~202n)에 따라 각각 독립적으로 전송되는 것이 가능하다.
본 발명의 일 양상에 따라, 이러한 제 1 유형의 데이터(200)는 패킷 스위칭(packet switching) 기반의 메시지가 될 수 있다. 패킷 스위칭이란 데이터를 일정한 단위(예컨대, 패킷)로 구분하여 전송하는 통신 방식을 말한다. 패킷 스위칭의 경우, 전송 링크는 데이터가 전송될 때만 일시적으로 점유된다. 다시 말해, 제 1 유형의 데이터(200)는 도 1의 네트워크에서 어떤 전용 경로없이 패킷 스위칭 방식에 따라 동적으로 전송되는 것이 가능하다.
도 3을 참조하여, 제 2 유형의 데이터를 설명하면 다음과 같다.
도 3에서, 제 2 유형의 데이터(300)는 논리적으로 구분 가능한 다수의 서브 데이터(301a~301n)로 이루어질 수가 있다. 각각의 서브 데이터(301a~301n)는 일부의 서브 데이터(301a)만 소정의 헤더 정보(310)를 갖는다. 헤더 정보(310)에는 해당 데이터(예컨대, 300)의 도착 주소가 기록될 수 있다. 예컨대, 어떤 하나의 메시지가 제 2 유형의 데이터(300)로 표현되는 경우, 그 메시지는 다수의 서브 데이터(301a~301n)로 구분되고, 각각의 서브 데이터(301a~301n)는 최초의 서브 데이터(301a)가 전달된 경로를 점유하여 연속적으로 전송되는 것이 가능하다.
본 발명의 일 양상에 따라, 이러한 제 2 유형의 데이터(300)는 서킷 스위칭(circuit switching) 기반의 메시지가 될 수 있다. 서킷 스위칭이란 발신자와 수신자 간에 형성된 일대일 연결에 기초하여 데이터를 전송하는 통신 방식을 말한다. 서킷 스위칭의 경우, 전송 링크는 데이터가 전송되지 않을 때에도 점유된다. 즉 제 2 유형의 데이터(300)는 도 1의 네트워크에서 어떤 전용 경로에 기초한 서킷 스위칭 방식에 따라 정적으로 전송되는 것이 가능하다.
본 발명의 추가적 양상에 따라, 제 2 유형의 데이터(300)는 전용 경로 설정 요청 필드(303)와 전용 경로 설정 해제 필드(304)를 포함할 수 있다. 예컨대, 전용 경로 설정 요청 필드(303)에서부터 전용 경로 설정 해제 필드(304)까지 모든 데이터가 전송될 때까지 그 데이터를 전송하는 링크는 다른 데이터 전송에 사용되지 아니한다.
도 2 및 도 3에서, 각각의 데이터(200, 300)는 그 유형을 표시하기 위한 비트 영역(203, 303)을 포함할 수 있다.
예컨대, 제 1 유형의 데이터(200)와 제 2 유형의 데이터(300)는 소정의 서킷 설정 인에이블 비트(circuit setup enable bit)(203, 303)의 값에 따라 구별될 수가 있다. 이러한 서킷 설정 인에이블 비트(203, 303)는 해당 데이터(200, 300)를 생성하는 노드(예컨대, 도 1의 101a)에 의해서 설정될 수가 있다. 해당 데이터(200, 300)를 생성하는 노드(101a)는 실행 중인 애플리케이션의 특성 또는 요청에 따라 해당 서킷 설정 인에이블 비트(203, 303)를 0 또는 1로 설정할 수가 있다. 일 예로써, 실시간성이 강조되는 애플리케이션의 요청이 있는 경우, 노드(101a)는 서킷 설정 인에이블 비트(203, 303)를 1로 설정해서 제 2 유형의 데이터(300)로 만드는 것이 가능하다.
도 2 및 도 3에서는, 비트 값에 따라 데이터의 유형을 구분했으나 이것은 이해를 돕기 위한 일 예에 불과한 것으로 그 밖에도 다양한 방법으로 데이터의 유형을 구분할 수 있음은 당업자에게 자명하다. 예를 들어, 도 3에서, 비트 영역(303)을 제거하고 그 역할을 첫 번째 서브 데이터(301a)의 헤더 정보(310)가 담당하는 것도 가능하다.
다시 도 1에서, 각각의 노드(101a~101p)는 실행 중인 애플리케이션의 요청 또는 특성에 따라 제 1 유형의 데이터(예컨대, 도 2의 200) 또는 제 2 유형의 데이터(예컨대, 도 3의 300)를 생성할 수 있다. 언제 어떤 유형의 데이터를 생성할지는 애플리케이션의 요청 또는 특성에 따라 다양한 방식으로 미리 정의될 수 있다. 예컨대, 제 1 유형의 데이터를 디폴트(default)로 설정하고, 필요에 따라 제 2 유형의 데이터가 생성되는 방식이 사용될 수가 있다.
도 1에서, 각각의 라우터(102a~102p)는 제 1 유형의 데이터를 패킷 스위칭에 기초하여 전송하고, 제 2 유형의 데이터를 서킷 스위칭에 기초하여 전송한다. 예를 들어, 제 2 유형의 데이터가 전송되는 경우, 제 2 유형의 데이터를 생성한 소스 노드(예컨대, 101a)와 제 2 유형의 데이터를 수신하는 데스티네이션 노드(예컨대, 101g)간의 경로를 제 2 유형의 데이터를 위한 전용 경로로 설정한 후에, 설정된 전용 경로를 이용해서 제 2 유형의 데이터를 전송하는 것이 가능하다.
일 예로써, 제 1 유형의 데이터가 노드 #0(101a)에서 노드 #6(101g)으로 전송되는 경우를 살펴본다. 제 1 유형의 데이터는 본 실시예에 따른 칩 멀티 프로세서(100)에서 디폴트(default) 유형의 데이터라고 가정한다. 제 1 유형의 데이터(이하, 데이터 A)를 생성한 노드 #0(101a)은 전체 데이터 중에서 첫 번째 패킷을 자신과 연결된 라우터 #0(102a)으로 전송한다. 라우터 #0(102a)은 수신된 패킷의 헤더 정보에 따라 전달될 링크를 결정한다. 예컨대, 라우터 #1(102b) 쪽의 링크(103a)가 결정된 경우, 라우터 #0(102a)는 라우터 #1(102b)로 패킷을 전송한다. 마찬가지로 패킷을 수신한 라우터 #1(102b) 역시 패킷 스위칭 방식에 따라 그 패킷을 라우터 #5(102f)로 전송할 수 있다. 라우터 #5는 수신된 패킷을 라우터 #6(102g)으로 전송하고, 라우터 #6(102g)은 자신과 연결된 노드 #6(101g)로 수신된 패킷을 전송한다.
이때, 라우터 #0(102a)과 라우터 #6(102g)간의 링크들(즉, 103a, 103e, 103i)은 노드 #0(101a)에서 생성된 제 1 유형의 데이터를 위한 전용 경로가 아니다. 다시 말해, 위와 같이 데이터 A의 첫 번째 패킷이 전송되고 나머지 패킷이 전송되기 이전에, 다른 제 1 유형의 데이터(이하, 데이터 B)가 노드 #0(101a)에서 생성되는 경우, 데이터 B의 패킷 역시 라우터 #0(102a)과 라우터 #6(102g)간의 링크들(즉, 103a, 103e, 103i)을 부분적으로 사용할 수도 있는 것이다.
다른 예로써, 제 2 유형의 데이터가 노드 #0(101a)에서 노드 #6(101g)으로 전송되는 경우를 살펴본다. 제 2 유형의 데이터는 본 실시예에 따른 칩 멀티 프로세서(100)에서 실시간성이 요구되는 애플리케이션이 실행되는 경우에 발생되는 유형의 데이터라고 가정한다. 제 2 유형의 데이터(이하, 데이터 C)를 생성한 노드 #0(101a)은 전체 데이터 중에서 첫 번째 서브 데이터(또는 헤드 틸트)를 자신과 연결된 라우터 #0(102a)으로 전송한다. 라우터 #0(102a)은 수신된 서브 데이터가 전달될 링크를 결정한다. 예컨대, 라우터 #1(102b) 쪽의 링크(103a)가 결정된 경우, 라우터 #0(102a)는 라우터 #1(102b)로 서브 데이터를 전송하고, 라우터 #0(102a)와 라우터 #1(102b) 사이의 연결 링크(103a)를 데이터 C를 위한 전용 경로로 설정한다. 마찬가지로 서브 데이터를 수신한 라우터 #1(102b) 역시 서킷 스위칭 방식에 따라 그 서브 데이터를 라우터 #5(102f)로 전송하고, 해당 링크(103e)를 전용 경로로 설정한다. 이러한 방식으로, 라우터 #0(102a)과 라우터 #6(102g)간의 링크들(즉, 103a, 103e, 103i)이 데이터 C를 위한 전용 경로로 설정된 후에 나머지 서브 데이터들이 전송되는 것이 가능하다.
이때, 라우터 #0(102a)과 라우터 #6(102g)간의 링크들(즉, 103a, 103e, 103i)은 노드 #0(101a)에서 생성된 제 2 유형의 데이터를 위한 전용 경로다. 다시 말해, 위와 같이 데이터 C의 첫 번째 서브 데이터가 전송되어 전용 경로가 설정되면, 나머지 서브 데이터가 전송될 때까지 다른 제 2 유형의 데이터는 라우터 #0(102a)과 라우터 #6(102g)간의 링크들(즉, 103a, 103e, 103i)을 사용할 수가 없는 것이다.
이와 같이, 본 실시예에 따른 칩 멀티 프로세서는 데이터의 유형에 따라 패킷 스위칭 방식의 네트워크와 서킷 스위칭 방식의 네트워크를 그 데이터 유형에 맞게 바꿔가며 사용하는 것이 가능하다.
도 4는 본 발명의 일 실시예에 따른 라우터의 구성을 도시한다.
도 4를 참조하면, 본 실시예에 따른 라우터(400)는 도 1에서 설명한 각각의 라우터(102a~102p)에 관한 일 예가 될 수 있다.
본 실시예에 따른 라우터(400)는 수신부(401), 저장부(402), 출력 포트 결정부(403), 스위치부(404), 및 스위치 제어부(405)를 포함할 수 있다.
수신부(401)는 수신된 데이터가 제 1 유형의 데이터인지 또는 제 2 유형의 데이터인지 여부를 판별한다. 예컨대, 수신부(401)는 수신된 테이터 영역의 특정 비트 값에 따라 데이터의 유형을 판별할 수가 있다. 데이터의 유형이 판별되면, 수신부(401)는 제 1 유형의 데이터를 저장부(402)의 제 1 버퍼(410)로 전달하고 제 2 유형의 데이터를 저장부(402)의 제 2 버퍼(420)로 전달한다.
저장부(402)는 전술한 것과 같이 제 1 유형의 데이터를 위한 제 1 버퍼(410)와 제 2 유형의 데이터를 위한 제 2 버퍼(420)를 포함할 수 있다.
출력 포트 결정부(403)는 저장부(402)에 저장된 각 데이터가 출력될 출력 포트를 결정한다. 예컨대, 출력 포트 결정부(403)는 소정의 라우팅 테이블을 참조하거나, 소정의 컴파일 구성 정보에 따라 데이터가 출력될 방향을 결정할 수가 있다.
스위치부(404)는 출력 포트 결정부(403)의 결정에 따라, 저장부(402)의 데이터를 각 출력 포트로 전달한다. 예컨대, 스위치부(404)는 크로스바 스위치(crossbar switch)가 될 수 있다. 크로스바 스위치는, 입선 수를 m, 출선 수를 n이라 할 때 임의의 입선과 출선의 접속, 즉 (m×n) 종류의 접속을 (m+n-1)개의 제어 소자로 제어하는 장치를 말한다. 스위치부(404)가 크로스바 스위치로 구현되는 경우, 크로스바 스위치의 구성 정보는 구성 정보(configuration information)는 스위치 제어부(405)에 저장될 수가 있다.
스위치 제어부(405)는 스위치부(404)를 제어한다. 예컨대, 스위치 제어부(405)는 스위치부(404)의 연결 상태를 변경하는 것이 가능하다.
스위치 제어부(405)는, 스위치부(404)가 제 1 버퍼(410)로부터 제 1 유형의 데이터를 전달하는 경우, 출력 포트와 연결된 링크를 그 데이터에 할당하되, 그 데이터가 전달될 때만 임시로 할당한다. 즉, 스위치 제어부(405)는, 스위치부(404)가 제 1 버퍼(410)로부터 제 1 유형의 데이터를 전달하는 경우, 패킷 스위칭 방식에 기초하여 데이터가 전송되도록 하는 것이 가능하다.
또한, 스위치 제어부(405)는, 스위치부(404)가 제 2 버퍼(420)로부터 제 2 유형의 데이터를 전달하는 경우, 출력 포트와 연결된 링크를 그 데이터가 처음부터 끝까지 모두 전송될 때까지 전용으로 할당한다. 즉, 스위치 제어부(405)는, 스위치부(404)가 제 2 버퍼(420)로부터 제 2 유형의 데이터를 전달하는 경우, 서킷 스위칭 방식에 기초하여 데이터가 전송되도록 하는 것이 가능하다.
또한, 본 발명의 추가적인 양상에 따라, 스위치 제어부(405)는, 결정된 출력 포트가 제 2 유형의 데이터를 최종적으로 필요로 하는 데스티네이션 노드와 연결되는 경우, 소정의 전용 경로 설정 성공 메시지를 생성하는 것이 가능하다. 생성된 전용 경로 설정 성공 메시지는 소스 노드로 전달되고, 이 메시지를 받은 소스 노드는 데스티네이션 노드와 전용 경로를 통해 서킷 스위칭 방식으로 데이터를 주고 받을 수가 있다.
또한, 본 발명의 추가적인 양상에 따라, 스위치 제어부(405)는, 결정된 출력 포트에 연결된 링크가 다른 제 2 유형의 데이터에 이미 할당되어 있는 경우, 소정의 전용 경로 설정 실패 메시지 또는 대기 메시지를 생성하는 것이 가능하다.
도 5는 본 발명의 일 실시예에 따른 라우터의 동작 과정을 도시한다.
도 5를 참조하면, 라우터로 데이터가 수신되면(501), 수신된 데이터의 유형이 판별된다(502).
먼저 제 1 유형의 데이터인 경우를 살펴본다. 수신된 데이터가 제 1 유형의 데이터인 경우, 라우터는 패킷의 출력 포트를 결정한다(503). 이어서 라우터는 결정된 출력 포트쪽의 링크가 이미 점유된 상태인지 여부를 판단한다(504). 만약 링크가 점유된 상태인 경우, 그 점유 상태가 끝날때까지 대기하라는 대기 메시지를 생성하고(505), 그러하지 아니한 경우, 패킷 스위칭에 기초하여 데이터를 전송한다(506).
다음으로 제 2 유형의 데이터인 경우를 살펴본다. 수신된 데이터가 제 2 유형의 데이터인 경우, 라우터는 서브 데이터의 출력 포트를 결정한다(507). 이어서 라우터는 결정된 출력 포트쪽의 링크가 이미 점유된 상태인지 여부를 판단한다(508). 만약 링크가 점유된 상태인 경우, 전용 경로 설정 실패 메시지를 생성하고(509), 그러하지 아니한 경우, 전용 경로를 설정한 후에 서킷 스위칭에 기초하여 데이터를 전송한다(510).
이상에서 살펴본 것과 같이, 개시된 실시예에 의하면, 실행되는 애플리케이션의 요청 또는 특성에 맞는 최적의 스위칭 방식에 따라 데이터 통신이 이루어지기 때문에 네트워크의 대역폭을 효과적으로 이용할 수가 있다.
한편, 본 발명의 실시 예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
나아가 전술한 실시 예들은 본 발명을 예시적으로 설명하기 위한 것으로 본 발명의 권리범위가 특정 실시 예에 한정되지 아니할 것이다.
100: 칩 멀티 프로세서
101: 노드
102: 라우터
103: 연결 링크
401: 수신부
402: 저장부
410: 제 1 버퍼
420: 제 2 버퍼
403: 출력 포트 결정부
404: 스위치부;
405: 스위치 제어부

Claims (15)

  1. 프로세서 또는 메모리를 포함하는 다수의 노드;
    상기 각각의 노드에 연결되는 다수의 라우터; 및
    상기 각각의 라우터들 사이에 형성되는 링크; 를 포함하고,
    상기 각각의 라우터는, 제 1 유형의 데이터를 패킷 스위칭에 기초하여 전송하고, 제 2 유형의 데이터를 서킷 스위칭에 기초하여 전송하고,
    상기 각각의 라우터는
    상기 제 1 유형의 데이터를 저장하는 제 1 버퍼;
    상기 제 2 유형의 데이터를 저장하는 제 2 버퍼;
    상기 제 1 또는 제 2 버퍼에 저장된 상기 제 1 또는 제 2 유형의 데이터가 출력될 출력 포트를 결정하는 출력 포트 결정부;
    상기 제 1 또는 제 2 버퍼에 저장된 상기 제 1 또는 제 2 유형의 데이터를 상기 결정된 출력 포트로 전달하는 스위치부;
    상기 제 2 버퍼에 저장된 상기 제 2 유형의 데이터가 상기 결정된 출력 포트로 전달되는 경우, 상기 결정된 출력 포트에 연결된 링크를 상기 제 2 유형의 데이터에 전용으로 할당하는 스위치 제어부; 및
    수신된 데이터가 상기 제 1 유형의 데이터인지 또는 상기 제 2 유형의 데이터인지 여부를 판별하고, 그 판별 결과에 따라 상기 제 1 유형의 데이터를 상기 제 1 버퍼로 전달하고 상기 제 2 유형의 데이터를 상기 제 2 버퍼로 전달하는 수신부; 를 포함하는 칩 멀티 프로세서.
  2. 제 1 항에 있어서, 상기 각각의 노드는
    실행 중인 애플리케이션의 요청 또는 특성에 따라, 데이터의 특정 영역의 값을 다르게 설정함으로써, 상기 제 1 유형의 데이터 또는 상기 제 2 유형의 데이터를 생성하는 칩 멀티 프로세서.
  3. 제 1 항에 있어서, 상기 각각의 라우터는
    상기 제 2 유형의 데이터를 전송하는 경우, 상기 제 2 유형의 데이터를 생성한 소스 노드와 상기 제 2 유형의 데이터를 수신하는 데스티네이션 노드간의 경로를 상기 제 2 유형의 데이터를 위한 전용 경로로 설정하는 칩 멀티 프로세서.
  4. 삭제
  5. 삭제
  6. 제 1 항에 있어서, 상기 출력부는
    크로스바 스위치를 포함하는 칩 멀티 프로세서.
  7. 제 1 항에 있어서, 상기 제어부는
    상기 결정된 출력 포트가 상기 제 2 유형의 데이터를 최종적으로 필요로 하는 데스티네이션 노드와 연결되는 경우, 소정의 전용 경로 설정 성공 메시지를 생성하는 칩 멀티 프로세서.
  8. 제 1 항에 있어서, 상기 제어부는
    상기 결정된 출력 포트에 연결된 링크가 다른 제 2 유형의 데이터에 이미 할당되어 있는 경우, 소정의 전용 경로 설정 실패 메시지 또는 대기 메시지를 생성하는 칩 멀티 프로세서.
  9. 제 1 유형의 데이터를 저장하는 제 1 버퍼;
    제 2 유형의 데이터를 저장하는 제 2 버퍼;
    상기 제 1 또는 제 2 버퍼에 저장된 상기 제 1 또는 제 2 유형의 데이터가 출력될 출력 포트를 결정하는 출력 포트 결정부;
    상기 결정된 출력 포트로 상기 제 1 또는 제 2 유형의 데이터를 출력하는 출력부;
    상기 출력부에서 상기 제 2 유형의 데이터가 출력되는 경우, 상기 결정된 출력 포트에 연결된 링크를 상기 제 2 유형의 데이터에 전용으로 할당하는 제어부; 및
    수신된 데이터가 상기 제 1 유형의 데이터인지 또는 상기 제 2 유형의 데이터인지 여부를 판별하고, 그 판별 결과에 따라 상기 제 1 유형의 데이터를 상기 제 1 버퍼로 전달하고 상기 제 2 유형의 데이터를 상기 제 2 버퍼로 전달하는 수신부; 를 포함하는 칩 멀티 프로세서를 위한 라우터.
  10. 삭제
  11. 제 9 항에 있어서, 상기 출력부는
    크로스바 스위치를 포함하는 칩 멀티 프로세서를 위한 라우터.
  12. 제 9 항에 있어서, 상기 제어부는
    상기 결정된 출력 포트가 상기 제 2 유형의 데이터를 최종적으로 필요로 하는 데스티네이션 노드와 연결되는 경우, 소정의 전용 경로 설정 성공 메시지를 생성하는 칩 멀티 프로세서를 위한 라우터.
  13. 제 9 항에 있어서, 상기 제어부는
    상기 결정된 출력 포트에 연결된 링크가 다른 제 2 유형의 데이터에 이미 할당되어 있는 경우, 소정의 전용 경로 설정 실패 메시지 또는 대기 메시지를 생성하는 칩 멀티 프로세서를 위한 라우터.
  14. ◈청구항 14은(는) 설정등록료 납부시 포기되었습니다.◈
    제 9 항에 있어서, 상기 제 1 유형의 데이터는
    패킷 스위칭에 기초하여 전송되는 메시지에 대응되고, 상기 메시지는 각각 헤더 정보를 가지며 독립적으로 전송 가능한 다수의 패킷을 포함하는 칩 멀티 프로세서를 위한 라우터.
  15. ◈청구항 15은(는) 설정등록료 납부시 포기되었습니다.◈
    제 9 항에 있어서, 상기 제 2 유형의 데이터는
    서킷 스위칭에 기초하여 전송되는 메시지에 대응되고, 상기 메시지는 하나의 헤더 정보를 갖는 칩 멀티 프로세서를 위한 라우터.
KR1020110133198A 2011-12-12 2011-12-12 칩 멀티 프로세서, 및 칩 멀티 프로세서를 위한 라우터 KR101924002B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110133198A KR101924002B1 (ko) 2011-12-12 2011-12-12 칩 멀티 프로세서, 및 칩 멀티 프로세서를 위한 라우터
US13/680,014 US20160261484A9 (en) 2011-12-12 2012-11-17 Chip multi processor and router for chip multi processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110133198A KR101924002B1 (ko) 2011-12-12 2011-12-12 칩 멀티 프로세서, 및 칩 멀티 프로세서를 위한 라우터

Publications (2)

Publication Number Publication Date
KR20130066401A KR20130066401A (ko) 2013-06-20
KR101924002B1 true KR101924002B1 (ko) 2018-12-03

Family

ID=48862689

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110133198A KR101924002B1 (ko) 2011-12-12 2011-12-12 칩 멀티 프로세서, 및 칩 멀티 프로세서를 위한 라우터

Country Status (2)

Country Link
US (1) US20160261484A9 (ko)
KR (1) KR101924002B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180226379A1 (en) * 2015-07-16 2018-08-09 Pezy Computing K.K. Semiconductor switch device
US10304806B2 (en) 2015-07-16 2019-05-28 Pezy Computing K.K. Semiconductor device
US9667533B2 (en) * 2015-09-17 2017-05-30 Nxp Usa, Inc. Creating and utilizing customized network applications
US11734211B2 (en) 2019-03-26 2023-08-22 Axis Semiconductor, Inc. Computing device with circuit switched memory access

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020064172A1 (en) * 2000-11-29 2002-05-30 Siu Kai-Yeung (Sunny) Programmable integrated circuit for use in a network switch
US20070081515A1 (en) 2003-10-31 2007-04-12 Koninklijke Philips Electronics N.V. Integrated circuit and method for avoiding starvation of data
US20070124565A1 (en) * 2003-06-18 2007-05-31 Ambric, Inc. Reconfigurable processing array having hierarchical communication network
US20110014998A1 (en) 2007-11-14 2011-01-20 Sullivan Michael J Dual core golf ball having negative-hardness-gradient thermoplastic inner core and steep positive-hardness-gradient thermoset outer core layer

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020034190A1 (en) * 2000-02-22 2002-03-21 Septier Communication Ltd. System that uses Idle cellular resources for voice and data services
US20050144311A1 (en) * 2003-12-09 2005-06-30 International Business Machines Corporation Communications network for transmitting packets of data via a plurality of sequential routers from a transmitting station to a receiving station with packet header coding for maximizing transmission efficiency
US8139490B2 (en) * 2009-12-21 2012-03-20 Google Inc. Deadlock prevention in direct networks of arbitrary topology
WO2013028479A2 (en) * 2011-08-19 2013-02-28 Axis Semiconductor, Inc. Dynamically reconfigurable hybrid circuit-switched and packet-switched network architecture

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020064172A1 (en) * 2000-11-29 2002-05-30 Siu Kai-Yeung (Sunny) Programmable integrated circuit for use in a network switch
US20070124565A1 (en) * 2003-06-18 2007-05-31 Ambric, Inc. Reconfigurable processing array having hierarchical communication network
US20070081515A1 (en) 2003-10-31 2007-04-12 Koninklijke Philips Electronics N.V. Integrated circuit and method for avoiding starvation of data
US20110014998A1 (en) 2007-11-14 2011-01-20 Sullivan Michael J Dual core golf ball having negative-hardness-gradient thermoplastic inner core and steep positive-hardness-gradient thermoset outer core layer

Also Published As

Publication number Publication date
KR20130066401A (ko) 2013-06-20
US20160261484A9 (en) 2016-09-08
US20140143441A1 (en) 2014-05-22

Similar Documents

Publication Publication Date Title
US7830882B2 (en) Switch scaling for virtualized network interface controllers
CN108270676B (zh) 一种基于Intel DPDK的网络数据处理方法及装置
US7924708B2 (en) Method and apparatus for flow control initialization
US7483998B2 (en) Software configurable cluster-based router using heterogeneous nodes as cluster nodes
EP1501247B1 (en) Software configurable cluster-based router using stock personal computers as cluster nodes
CN101159687B (zh) 一种多通道通信传输数据的系统和装置与方法
EP3226490B1 (en) Optical network-on-chip, optical router and signal transmission method
CN108123901B (zh) 一种报文传输方法和装置
CN101150527A (zh) 一种pcie数据传输的方法、系统及设备
WO2022094771A1 (zh) 网络芯片和网络设备
JP2592218B2 (ja) Fddiステーション・バイパス装置
KR101924002B1 (ko) 칩 멀티 프로세서, 및 칩 멀티 프로세서를 위한 라우터
WO2021244206A1 (zh) 报文处理方法、设备、系统及存储介质
EP2432168B1 (en) Inter-board communication apparatus, method for transmitting and receiving message of inter-board communication
US20050232258A1 (en) Apparatus and method for distributing control plane functions in a multiprocessor router
JP2009080853A (ja) システム電源モード制御のためのパケット交換
KR101238917B1 (ko) 이더넷 장치 및 그의 전송률 조절 방법
WO2013004115A1 (zh) 网络设备中单板间进行报文交互的方法及网络设备
US7233598B2 (en) System and method for speculatively issuing memory requests while maintaining a specified packet order
JP4630298B2 (ja) 機能分散型通信装置、構成要素結合制御方法、およびプログラム
Shu et al. Optimal many-to-many personalized concurrent communication in RapidIO-based fat-trees
WO2018028457A1 (zh) 一种确定路由的方法、装置及通信设备
KR101882808B1 (ko) 혼합 네트워크 기반의 멀티 코어 프로세서
WO2022194193A1 (zh) 用于获取路径的方法和装置
US7969863B2 (en) Directed cost protocol

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