KR20080011209A - 데이터 통신 네트워크를 갖는 집적 회로 및 ic 설계 방법 - Google Patents

데이터 통신 네트워크를 갖는 집적 회로 및 ic 설계 방법 Download PDF

Info

Publication number
KR20080011209A
KR20080011209A KR1020077027094A KR20077027094A KR20080011209A KR 20080011209 A KR20080011209 A KR 20080011209A KR 1020077027094 A KR1020077027094 A KR 1020077027094A KR 20077027094 A KR20077027094 A KR 20077027094A KR 20080011209 A KR20080011209 A KR 20080011209A
Authority
KR
South Korea
Prior art keywords
data
network
communication
subchannel
communication channel
Prior art date
Application number
KR1020077027094A
Other languages
English (en)
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=36694308&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR20080011209(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 코닌클리케 필립스 일렉트로닉스 엔.브이. filed Critical 코닌클리케 필립스 일렉트로닉스 엔.브이.
Publication of KR20080011209A publication Critical patent/KR20080011209A/ko

Links

Images

Classifications

    • 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/78Architectures of general purpose stored program computers comprising a single central processing unit
    • 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
    • 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/22Traffic shaping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9021Plurality of buffers per packet

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Logic Circuits (AREA)

Abstract

집적 회로(10)는 다수의 기능 블록들(101, 102, 103, 104) 및 상기 기능 블록들(101, 102, 103, 104) 사이에서 데이터 패키지들을 통신하기 위한 다수의 통신 채널들(150)을 통하여 상호접속되는 다수의 네트워크 스테이션들을 포함하는 데이터 통신 네트워크(100)를 포함한다. 각각의 데이터 패키지는 상기 네트워크 스테이션들(110, 120, 130, 140)에 대한 라우팅 정보를 포함한 데이터 요소들을 포함하는 N개의 데이터 요소들을 포함하고, N은 적어도 2 이상의 정수이다. 상기 다수의 네트워크 스테이션들은 다수의 데이터 라우터들(110, 120, 130, 140) 및 다수의 네트워크 인터페이스들을 포함하며, 상기 데이터 라우터들(110, 120, 130, 140) 각각은 네트워크 인터페이스(105-108)를 통하여 기능 블록(101, 102, 103, 104)에 결합되며, 상기 데이터 통신 네트워크(100)는 제1 통신 채널(150)을 통해 상호접속되는 제1 네트워크 스테이션(140) 및 제2 네트워크 스테이션(120)을 포함하며, 상기 네트워크는 제1 통신 채널(150) 상에서 M*N개의 사이클들의 지연을 도입하기 위하여 M*N개의 데이터 저장 요소(160)들을 포함하고, M은 양의 정수이다. 집적 회로(10)는 다수의 기능 블록들(101, 102, 103, 104) 및 상기 기능 블록들(101, 102, 103, 104)에 각각 결합되는 다수의 데이터 라우터들(110, 120, 130, 140)을 포함한다. 저속 통신 채널(150) 상에서 하나 이상의 데이터 패키지들의 지연을 도입하면 데이터 통신 네트워크(100)를 통한 데이터 통신의 최대 클록 속도의 증가가 용이해진다.
집적 회로, 기능 블록, 데이터 라우터, 통신 채널, 데이터 패키지.

Description

데이터 통신 네트워크를 갖는 집적 회로 및 IC 설계 방법{INTEGRATED CIRCUIT WITH DATA COMMNICATION NETWORK AND IC DESIGN METHOD}
본 발명은 데이터 통신 네트워크를 통하여 상호접속된 다수의 기능적인 블록들을 갖는 집적 회로에 관한 것이다.
요즘, 대부분의 집적 회로들(IC들)은 전형적으로 IC의 기판 상에서 많은 수의 기능들을 구현하는 많은 수의 피처(feature)를 갖는 초고밀도집적(VLSI) 회로들이다. 다수의 기능들은 이산 기능 블록들, 예를 들어, 시스템 온 칩(SoC) 구조들 내에 위치될 수 있다. 기능 블록들의 상호접속은 설계 도전을 지니는데, 그 이유는 현대의 IC들의 높은 클록 속도들이 많은 량의 데이터의 프로세싱을 용이하게 하고, 이는 IC의 상호접속이 기능 블록들 사이에서 많은 량의 데이터를 통신할 수 있어야 한다는 것을 의미하기 때문이다.
한편으로는 유연한 통신을 용이하게 하고 다른 한편으로는 요구되는 와이어들의 량을 제한하기 위하여, IC들은 네트워크 온 칩(NoC)이라고 칭해지는 데이터 통신 네트워크를 통합할 수 있다. 이와 같은 네트워크는 전형적으로 통신 채널들, 예를 들어, 와이어들을 통하여 상호접속된 기능 블록과 각각 연관되는 다수의 네트워크 스테이션들을 포함한다. 상기 다수의 네트워크 스테이션들은 다수의 데이터 라우터들 및 다수의 네트워크 인터페이스들을 포함하고 각각의 데이터 라우터는 네트워크 인터페이스를 통하여 기능 블록에 결합된다. 데이터는 네트워크 스테이션들에 대한 데이터 및 라우팅 명령들의 혼합을 포함하는 패키지들의 형태로 네트워크를 통하여 통신될 수 있다. 듀플렉스 통신(duplex communication)을 용이하게 하는 네트워크들에서, 한 쌍의 네트워크 스테이션들은 전형적으로 양-방향 통신을 용이하게 하기 위하여 적어도 한 쌍의 통신 서브채널들을 통하여 상호접속된다.
IC들 상의 통신 채널들, 예를 들어, 와이어들과 연관된 문제점은 IC가 동작할 수 있는 클록 속도가 최저인 통신 채널, 즉, 가장 큰 데이터 전달 지연을 나타내는 채널에 의해 결정될 수 있다는 것이다. 이와 같은 문제점에 대한 여러 해결책들이 존재하는데, 예를 들어, 다수의 해결책들이 존재하는 Carloni 등에 의한 IEEE Micro 5, Vol. 22, pages 24-35, IEEE 2002의 Coping with latency in SoC design를 참조하라. 가능한 해결책은 최저속 데이터 통신 채널 내로 래치(latch)와 같은 데이터 저장 요소를 도입하는 것이다. 결과적으로, IC의 데이터 통신부의 클록 속도는 최저속 통신 채널을 따른 통신에 대한 부가적인 클록 사이클을 희생하여 증가될 수 있다.
불행히도, 이와 같은 해결책은 특히, 통신된 데이터의 특성이 클록 사이클마다 상이할 때, 통합된 네트워크를 통해 기능 블록들 사이에서 데이터를 통신하는 IC들에 직접적으로 적용될 수 없다: 이와 같은 네트워크의 예에 대하여, E. Rijpkema 등에 의한 IEE Proc.-Comput. Digit. Tech. 2003, page 1-9(IEE proceedings online no. 20030830)의 Trade-offs in the design of a router with both guaranteed and best-effort services for networks on chip를 참조하라. 이와 같은 네트워크는 데이터 라우터와 같은 네트워크 스테이션이 미리규정된 클록 사이클 동안 데이터 패킷 내에 통합된 라우팅 데이터를 수신하는 원리에 따라 동작한다. 네트워크의 나머지의 속도를 높이기 위하여 클록 사이클만큼 저속 통신 채널을 통한 그 라우터로의 통신을 지연시키면 라우팅 데이터가 미리규정된 클록 사이클을 넘어서 도달하게 되어, 네트워크의 동작의 에러를 초래한다.
본 발명은 도입부에 따른 집적 회로의 네트워크의 데이터 통신 속도를 개선시키고자 하는 것이다.
본 발명의 양상에 따르면, 다수의 기능 블록들 및 상기 기능 블록들 사이에서 데이터 패키지들을 통신하기 위한 다수의 통신 채널들을 통하여 상호접속된 다수의 네트워크 스테이션들을 포함하는 데이터 통신 네트워크를 포함하는 집적 회로가 제공되는데, 각각의 데이터 패키지는 상기 네트워크 스테이션들에 대한 라우팅 정보를 포함한 데이터 요소들을 포함하는 N개의 데이터 요소들을 포함하고, N은 적어도 2 이상의 정수이며, 상기 다수의 네트워크 스테이션들은 다수의 데이터 라우터들 및 다수의 네트워크 인터페이스들을 포함하며, 상기 데이터 라우터들 각각은 네트워크 인터페이스를 통하여 기능 블록에 결합되며, 상기 데이터 통신 네트워크는 제1 통신 채널을 통해 상호접속된 제1 네트워크 스테이션 및 제2 네트워크 스테이션을 포함하며, 상기 네트워크는 제1 통신 채널 상에 M*N개의 사이클들의 지연을 도입하기 위하여 M*N개의 데이터 저장 요소들을 포함하고, M은 양의 정수이다.
본 발명은 네트워크의 정확한 동작이 네트워크 스테이션들 사이의 정확한 주기성의 유지에 따른다는 것의 인식에 기초한다. 데이터 패키지들이 고정된 크기의 N개의 데이터 요소들을 가지기 때문에, 2개의 네트워크 스테이션들 사이의 완전한 패키지의 통신은 N개의 클록 사이클을 요구하거나, 네트워크의 비동기 구현예의 경우에 N개의 핸드쉐이크 구동된 데이터 전달들을 요구한다. 라우팅 정보, 예를 들어, 목적지 및 요구되는 서비스 유형(예를 들어, 최선 또는 보장 대역폭)은 다른 데이터 요소들이 (또한) 이와 같은 정보를 포함할 수 있을지라도, 데이터 패키지 내의 고정된 위치, 예를 들어, 제1 데이터 요소(예를 들어, 헤더)를 갖는다. 네트워크 스테이션이 라우팅 정보가 주기적으로(즉, 매 N개의 사이클들 이후에) 도착한다라고 기대하기 때문에, 이와 같은 기간에 매칭하는 (전형적으로 네트워크의 최저속 채널인) 제1 통신 채널 상의 지연의 도입에 의하여, 즉, 단일 데이터 요소라기 보다는 오히려, 전체 데이터 패키지를 지연시킴으로써, 지연된 데이터 패키지가 적절한 기간, 예를 들어, 클록 사이클 동안 수신 네트워크 스테이션에 의해 수신된다.
각각의 통신 채널은 2개의 연관된 네트워크 스테이션들 사이의 듀플렉스 통신을 가능하게 하기 위하여, 제1 연관된 네트워크 스테이션의 입력 포트 및 제2 연관된 네트워크 스테이션의 출력 포트 사이의 제1 서브채널 및 제2 연관된 네트워크 스테이션의 입력 포트 및 제1 연관된 네트워크 스테이션의 출력 포트 사이의 제2 서브채널을 포함할 수 있다. M*N개의 데이터 요소들은 제1 통신 채널의 서브채널들을 통해 분배될 수 있다.
바람직한 실시예에서, 제1 네트워크 스테이션은 제1 사이클에서 라우팅 정보를 평가하도록 구성되고, 제2 네트워크 스테이션은 제2 사이클에서 라우팅 정보를 평가하도록 구성되며, 상기 제1 사이클 및 제2 사이클 사이의 차이는 A개의 사이클들이고; 제1 통신 채널의 제1 서브채널은 A개의 데이터 저장 요소들에 의해 구현된 A개의 사이클들의 지연을 나타내고, 제2 서브채널은 B개의 데이터 저장 요소들에 의해 구현된 B개의 사이클들의 지연을 나타내며, A 및 B는 양의 정수들이며, A + B = M*N이다.
네트워크 내의 네트워크 스테이션들 중 하나에 대한 라우팅 평가 단계에서 위상 시프트를 도입하는 것은 데이터 통신 (서브)채널에서의 지연 요소들의 수가 데이터 패키지에서의 데이터 요소들의 수보다 더 작아서, 그 특정 데이터 통신 (서브)채널의 레이턴시(latency)를 개선시킬 수 있다는 장점을 갖는다. 결점은 위상-시프트된 네트워크 스테이션으로의 모든 통신이 적절한 위상 시프트를 도입하기 위하여 지연된 통신 채널을 통해 진행되어야 한다는 것이다. 그러나 이러한 한계는 제2 사이클에서 라우팅 정보를 평가하도록 구성되는 부가적인 네트워크 스테이션으로부터 제1 네트워크 스테이션까지의 임의의 네트워크 경로가 C개의 지연 요소들을 포함하고(C는 C modulo N = A인 양의 정수임); 제1 네트워크 스테이션으로부터 상기 부가적인 네트워크 스테이션까지의 임의의 네트워크 경로가 D개의 지연 요소들을 포함하는 것(D는 D modulo N = B인 양의 정수임)을 보장함으로써 회피될 수 있다. 이것은 제1 네트워크 스테이션 및 상기 제1 네트워크 스테이션과 상이한 라우터 정보 평가 단계에서 동작하는 임의의 다른 네트워크 스테이션 사이에서 정확한 위상 관계를 유지시키므로, 네트워크에서 최적의 유연성을 유지시킨다.
대안적인 실시예에서, 제1 통신 채널의 각 서브채널은 1/2*M*N개의 데이터 저장 요소들에 의해 도입된 지연을 포함하며, 상기 1/2*M*N은 전형적으로 데이터 패키지의 크기에 대응한다. 결과적으로, 듀플렉스 통신 채널의 경로들 둘 모두가 유사한 길이들 및 유사한 지연 특성들을 가질 것이기 때문에, 서브채널들 둘 모두를 분할하면 통신 방향들 둘 모두에서 네트워크의 속도가 개선된다.
바람직하게는, 요구되는 지연 요소들의 수를 최소화하여, 제1 통신 채널 상에 도입된 지연을 최소화하기 위하여, M=1이다.
동기 구현예에서, IC는 데이터 라우터들 및 M*N개의 저장 요소들 사이에서 데이터 충돌들이 발생할 수 없도록 클록 신호 발생기, 상기 클록 신호 발생기에 응답하는 다수의 네트워크 스테이션들 및 M*N개의 저장 요소들을 더 포함한다.
각각의 네트워크 스테이션은 상기 네트워크 스테이션의 통신 포트와 연관된 제1 메모리 요소 및 제2 메모리 요소를 포함할 수 있고, 상기 제1 메모리 요소는 상기 통신 포트와 연관된 제1 서비스 레벨을 요구하는 데이터 패키지로부터의 라우팅 정보를 저장하도록 구성되며, 상기 제2 메모리 요소는 상기 통신 포트와 연관된 제2 서비스 레벨을 요구하는 데이터 패키지로부터의 라우팅 정보를 저장하도록 구성된다. 이와 같은 구현예는 상이한 서비스 레벨들, 예를 들어 최선 및 보장 대역폭 서비스 레벨들을 요구하는 패키지들이 인터리빙하도록 한다.
본 발명의 부가적인 양상에 따르면, 다수의 기능 블록들 및 상기 기능 블록들 사이에서 데이터 패키지들을 통신하기 위한 다수의 통신 채널들을 통하여 상호접속된 다수의 네트워크 스테이션들을 포함하는 데이터 통신 네트워크를 포함하는 집적 회로를 설계하는 방법이 제공되는데, 각각의 데이터 패키지는 상기 네트워크 스테이션들에 대한 라우팅 정보를 포함한 데이터 요소들을 포함하는 N개의 데이터 요소들을 포함하고, N은 적어도 2 이상의 정수이며, 상기 다수의 네트워크 스테이션들은 다수의 데이터 라우터들 및 다수의 네트워크 인터페이스들을 포함하며, 상기 데이터 라우터들 각각은 네트워크 인터페이스를 통하여 기능 블록에 결합되며, 상기 방법은 미리규정된 지연 문턱값을 초과하는 데이터 전달 지연을 갖는 제1 네트워크 스테이션 및 제2 네트워크 스테이션 사이의 제1 통신 채널을 식별하는 단계; 및 제1 통신 채널 상에 M*N개의 사이클들의 지연을 도입하기 위하여 M*N개의 데이터 저장 요소들을 상기 데이터 통신 채널 내로 삽입하는 단계를 포함하며, M은 양의 정수이다. 이와 같은 방법은 본 발명의 집적 회로의 설계를 용이하게 한다.
바람직한 실시예에서, 각각의 통신 채널은 2개의 연관된 네트워크 스테이션들 사이의 듀플렉스 통신을 가능하게 하기 위하여, 제1 연관된 네트워크 스테이션의 입력 포트 및 제2 연관된 네트워크 스테이션의 출력 포트 사이의 제1 서브채널 및 제2 연관된 네트워크 스테이션의 입력 포트 및 제1 연관된 네트워크 스테이션의 출력 포트 사이의 제2 서브채널을 포함할 수 있고; 제1 네트워크 스테이션은 제1 사이클에서 라우팅 정보를 평가하도록 구성되고, 제2 네트워크 스테이션은 제2 사이클에서 라우팅 정보를 평가하도록 구성되며, 상기 제1 사이클 및 제2 사이클 사이의 차이는 A개의 사이클들이고, 상기 방법은 상기 제1 서브채널 상으로 A개의 사이클들의 지연을 도입하기 위하여 A개의 데이터 저장 요소들을 제1 통신 채널의 제1 서브채널 내로 삽입하는 단계; 및 상기 제2 서브채널 상으로 B개의 사이클들의 지연을 도입하기 위하여 B개의 데이터 저장 요소들을 제1 통신 채널의 제2 서브채널 내로 삽입하는 단계를 더 포함하며, A 및 B는 양의 정수이고, A + B = M*N이다. 이와 같은 방법은 본 발명의 집적 회로의 바람직한 실시예의 설계를 용이하게 한다.
본 발명은 첨부 도면들을 참조한 비-제한적인 예들에 의하여 상세히 설명된다.
도1은 본 발명의 IC의 실시예를 도시한 도면.
도2는 상기 IC의 지연된 통신 채널에 따른 타이밍 동작을 도시한 도면.
도3은 본 발명의 IC의 또 다른 실시예를 도시한 도면.
도4는 상기 IC의 지연된 통신 채널에 따른 타이밍 동작을 도시한 도면.
도5는 자신의 타이밍 동작을 포함하는 본 발명의 IC의 또 다른 실시예를 도시한 도면.
도면들이 단지 개략적이며 원래 크기대로 도시되어 있지 않다는 것이 이해되어야 한다. 도면들 전체에 걸쳐 동일하거나 유사한 부분을 나타내는데 있어서 동일한 참조 번호들이 사용된다.
도1은 본 발명의 실시예에 따른 집적 회로(IC)(10)를 도시한다. IC(10)는 각각의 네트워크 인터페이스들(105-108)을 통하여 기능 블록들(101-104)과 각각 결합 되는 데이터 라우터들(110, 120, 130, 140)을 포함하는 데이터 통신 네트워크(100)를 통하여 상호접속되는 4개의 기능 블록들(101-104), 예를 들어, 프로세싱 유닛들을 갖는다. 데이터 라우터들(110, 120, 130, 140) 및 네트워크 인터페이스(105-108)는 데이터 통신 네트워크(100)의 네트워크 스테이션들을 포함한다. 이와 같은 데이터 라우터들 및 네트워크 인터페이스들의 예시적인 실시예들은 예를 들어, Radulescu 등에 의한 "An efficient On-Chip Netwrok Interface Offering Guaranteed Services, Shared Memory Abstraction and Flexible Network Configuration"; Proceedings of Design, Automation and Test Conference in Europe, February 2004, 및 E. Rijpkema 등에 의한 Trade-offs in the design of a router with both guaranteed and best-effort services for networks on chip; IEE Proc.- Comput. Digit. Tech. 2003. page 1-9(IEE proceedings online no. 20030830) 뿐만 아니라, 본원의 연관 참조문헌들에서 발견될 수 있고, 연관 구절들이 참조되어 있다.
데이터 통신 네트워크(100)의 네트워크 스테이션은 다수의 데이터 통신 채널들(150)을 통하여 상호접속된다. 통신 채널들(150)은 하나 이상의 와이어들, 예를 들어, 데이터 버스들을 포함할 수 있다. 데이터 통신 네트워크(100)는 기능 블록들(101-104) 사이에서 데이터 스트림들이 유연하게 통신되도록 구성된다. 전형적으로, 이와 같은 데이터 스트림은 하나 이상의 데이터 패키지들을 포함하고, 각각의 데이터 패키지는 N개의 데이터 요소들을 포함하며, 상기 N은 적어도 2 이상의 값을 갖는 정수이다. 패키지 내의 N개의 데이터 요소들 중 적어도 하나는, 예를 들어, 제1 데이터 요소는 목적지 네트워크 스테이션에 대한 라우팅 명령들을 포함한다. 이와 같은 데이터 패키지들은 종종 흐름 명령 유닛들(플릿들)이라 칭해진다.
데이터 스트림들은 완전한 데이터 스트림이 이의 다음 목적지로 전달되기 전에 데이터 라우터에 저장되는 저장 및 전달 라우팅, 또는 데이터 라우터들이 완전한 데이터 스트림이 수신되기 전에 저장된 데이터 패키지를 이의 다음 목적지에 전송할 수 있는 웜홀 라우팅(wormhole routing)과 같은 공지된 통신 기술들을 사용하여 네트워크(100)를 통해 통신될 수 있다. 후자의 기술은 데이터 라우터들(110, 120, 130, 140)이 더 적은 저장 용량을 요구한다는 장점을 갖지만, 상기 기술들 둘 모두가 동등하게 실행 가능하며, 다른 기술들이 또한 사용될 수 있다.
도1에 도시된 데이터 네트워크(100)는 듀플렉스 네트워크인데, 즉, 양 방향에서 동시적으로 데이터 통신을 할 수 있다. 그러나, 본 발명이 심플렉스 네트워크들(simplex networks), 즉, 동시적인 양방향 통신을 지원하지 않는 네트워크들에 동등하게 적용될 수 있다. 데이터 네트워크(100)를 통한 듀플렉스 통신을 용이하게 하기 위하여, 각각의 통신 채널(150)은 2개의 이웃하는 네트워크 스테이션들, 예를 들어, 데이터 라우터들(120 및 140)의 각각의 입력들 및 출력들 사이에 제1 서브채널(152) 및 제2 서브채널(154)을 포함한다. 이것은 보장 대역폭 및 최선의 서비스의 경우에 대해, 시-분할 다중 액세스(TDMA) 데이터 통신을 용이하게 한다. 이 때문에, 데이터 통신 네트워크(100) 내의 각각의 네트워크 스테이션은 통신 포트, 즉, 데이터 라우터의 입력 포트 및 출력 포트와 연관되거나, 또는 정확하게는 그 통신 포트를 통한 통신의 서비스 레벨과 연관되는 제1 메모리 요소 및 제2 메모리 요소를 각각 포함하는 다수의 메모리들, 예를 들어 데이터 라우터(120) 내의 메모리(122)를 갖는다. 명백하게, 다수의 메모리들은 단지 예로서 2개의 데이터 라우터들 사이의 통신에 의해 이하에 설명되는 바와 같이, 네트워크 스테이션의 각각의 입력 또는 출력 포트를 추적하는데 충분한 저장용량을 갖는 단일 메모리로서 구현될 수 있다. 본 발명의 내용들을 벗어남이 없이, 동일한 내용들이 데이터 라우터 및 데이터 인터페이스 사이의 통신들 또는 네트워크 인터페이스 및 기능 블록 사이의 통신들에 적용될 수 있다는 것이 인식될 것이다.
전형적으로, 제1 데이터 패키지의 헤더는 데이터 패키지의 목적지, 뿐만 아니라, 데이터 패키지의 서비스 레벨, 즉, 보장 대역폭 또는 최선의 서비스에 관한 정보를 포함할 것이다. 서비스 레벨은 데이터 라우터의 목적지 출력 포트의 적절한 메모리 요소에서 비트를 설정함으로써 플래그(flag)될 것이다. 동일한 서비스 레벨을 갖는 후속 데이터 패키지들에 대하여, 데이터 라우터는 적절한 비트가 연관된 메모리 요소에 저장되기 때문에, 이러한 데이터 패키지들이 진행중인 데이터 스트림에 속한다는 것을 인지할 것이다. 데이터 스트림의 최종 데이터 패키지는 데이터 라우터가 상기 비트를 리셋하도록 하는 표시자를 포함한다. 이와 같은 메커니즘은 단일 통신 채널을 통한 2개의 데이터 스트림들의 데이터 패키지들을 인터리빙하도록 한다.
도1에서, 데이터 라우터들(120 및 140) 사이의 통신 채널(150)은 미리 결정된 지연 문턱값을 초과하는 데이터 전달 지연을 나타내는 네트워크(100) 내의 통신 채널로서 식별된다. 이와 같은 식별은 IC 설계 단계에서 상기 설계가 이용 가능한 타이밍 동작 시뮬레이션 도구들을 사용하여 IC(10)의 지연 동작의 시뮬레이션을 겪게 함으로써 행해질 수 있다. 2개의 네트워크 스테이션들, 예를 들어, 데이터 라우터들(120 및 140) 사이의 통신 채널(150)의 지연 특성에 따라 데이터 통신 네트워크(100)의 통신 속도, 예를 들어, 클록 속도를 제한해야 하는 것을 피하기 위하여, (저속 통신 채널(150)이라 칭해질) 이 통신 채널은 M*N개의 사이클들의 지연을 상기 통신 채널 상으로 도입하기 위하여 M*N개의 데이터 저장 요소들을 구비하므로(N은 데이터 패키지의 크기에 대응함), 저속 통신 채널(150) 상에서 단일 데이터 패키지의 지연을 도입한 대가로 데이터 네트워크(100)의 최대 통신 주파수, 즉, 이와 같은 데이터 패키지를 통신하는데 요구되는 클록 사이클들의 수를 증가시킨다.
도1에 도시된 네트워크(100)는 크기 N=3인 데이터 패키지들을 통신하도록 구성된다. N의 다른 값들이 동등하게 실행 가능하다. 저속 통신 채널(150)의 제1 서브채널(152)은 N=3개의 데이터 저장 요소들(160)을 가지도록 확장된다. 선택적으로, 저속 통신 채널(150)의 제2 서브채널(154)은 또한 N=3개의 데이터 저장 요소들을 가지도록 확장되며, 이 경우에 M=2이다. 제1 서브채널(152) 및 제2 서브채널(154)이 전형적으로 서로 인접하여 존재하기 때문에, 이들 각각의 지연 특성들이 전형적으로 유사하므로, 서브채널들 둘 모두 상에서 데이터 저장 요소들(160)의 도입을 요구한다. 그러나, 예를 들어, 서브채널들이 상이한 길이들을 가지기 때문에 또는 사용되는 타이밍 기술들, 예를 들어, 워터폴 클록킹(waterfall clocking)의 특성 때문에, 각각의 서브채널들이 상이한 지연 특성을 나타내는 경우에, 서브채널들 중 단지 하나 상에 N개의 데이터 요소들(160)을 도입하는 것이 충분할 수 있고, 이 경우에, M=1이다.
서브채널들(152 및 154) 상의 데이터 저장 요소들(160)의 물리적인 배치는 단지 예이며, 데이터 저장 요소들(160)이 연관된 네트워크 스테이션, 예를 들어, 데이터 라우터(120) 또는 데이터 라우터(140)에 통합되는 구현예가 동등하게 실행될 수 있다는 것이 인식될 것이다. 본 발명의 내용들을 벗어남이 없이 동일한 내용들이 데이터 라우터 및 네트워크 인터페이스 사이의 통신들 또는 네트워크 인터페이스 및 기능 블록 사이의 통신들에 적용될 수 있다는 것이 인식될 것이다. 이는 데이터 통신 네트워크(100)의 다른 실시예들, 예를 들어, 도3 및 5에 도시된 실시예들에 적용된다. 데이터 저장 요소들(160)은 래치들 또는 플립플롭들의 버퍼 또는 파이프라인일 수 있고, 동기 또는 비동기 저장 요소들을 사용하여 구현될 수 있다. 도1에서, 데이터 저장 요소들(160)은 데이터 라우터들(110, 120, 130, 140) 및 네트워크 인터페이스들(105-108)을 포함하는 네트워크 스테이션으로서 동일한 클록 신호(도시되지 않음)에 응답한다.
도2는 데이터 라우터(120)의 출력 포트를 데이터 라우터(140)의 입력 포트와 상호접속시키는 제1 서브채널(152) 상에서 3개의 데이터 저장 요소들(160)을 가지도록 확장된 저속 채널(150)에 따른 통신의 타이밍 동작을 도시한다. 클록 사이클(t)에서, 웜홀 라우팅을 채용하는 데이터 라우터(120)는 3개의 데이터 요소들의 크기를 갖는 (굵은 선으로 표시된) 데이터 패키지의 제1 데이터 요소(h)를 수신한다. 이 데이터 패키지의 후속 데이터 요소들(d1 및 d2)은 각각의 클록 사이클들(t+1 및 t+2)에서 데이터 라우터(120)에 의해 수신된다. 데이터 라우터들(110, 120, 130, 140)은 모두 크기 N의 데이터 요소들을 갖는 데이터 패키지에 대한 매 N개의 클록 사이클들 이후에, 수신된 데이터 패키지의 내용을 주기적으로 평가하도록 구성된다. 도1에 도시된 IC(10)의 실시예에서, 모든 데이터 라우터들(110, 120, 130, 140)은 이 동작을 동시에, 즉, 클록 사이클(t) 더하기 새로운 데이터 패키지의 헤더(h)의 도착이 예상되는 그 후의 매 N번째 클록 사이클(즉, t+3, t+6 등)인 동일한 클록 사이클에서 수행한다. 데이터 라우터에 의한 이와 같은 주기적인 검사 메커니즘은 예를 들어, modulo N 카운터들을 사용하여 구현될 수 있다. 결과적으로, 데이터 패키지들의 헤더들은 이러한 평가 클록 사이클 밖에서는 임의의 데이터 라우터(110, 120, 130, 140)에 도달하지 않는 것이 필수적이다.
웜홀 라우팅의 원리에 따라서, 데이터 라우터(120)는 데이터 패키지를 완전하게 수신할 시에, 즉, 클록 사이클(t+3)에서 저속 통신 채널(150)의 제1 서브채널(152)을 통하여 데이터 패키지를 전송하기 시작한다. 이 때, 지연되지 않은 통신 채널을 통하여 전송된 데이터 요소들이 전송되었던 것과 동일한 클록 사이클에서 목적지 데이터 라우터에 도착할 것이라는 것이 강조된다. 그러나, 저속 통신 채널(150)의 제1 서브채널(152) 내에 N=3개의 데이터 저장 요소들(160)이 존재하는 것으로 인하여, 제1 데이터 저장 요소(160)는 t+3에서 헤더(h)를 수신하고, 이를 t+4에서 제2 데이터 저장 요소(160) 상으로 통과시키며, 상기 제2 데이터 저장 요소는 상기 헤더를 t+5에서 제3 데이터 저장 요소(160) 상으로 통과시키고, 상기 제3 데이터 저장 요소는 최종적으로 상기 헤더를 데이터 네트워크(150) 내의 데이터 라우터들(110, 120, 130, 140)의 헤더 평가 사이클과 동위상인 t+6에서 데이터 라 우터(140) 상으로 통과시킨다. 이것은 데이터 라우터(140)에 의한 데이터 패키지의 정확한 라우팅을 보장한다.
도3에 도시된 바와 같은 본 발명에 따른 IC(10)의 실시예에서, 데이터 라우터(140)는 데이터 네트워크(100) 내의 다른 데이터 라우터들(110, 120, 130)보다 A개의 클록 사이클들 이후에(또는 B개의 클록 사이클들 이전에) 데이터 패키지의 헤더를 평가하도록 구성되며, N은 데이터 패키지 내의 데이터 요소들의 수에 대응하며, A, B는 A+B=M*N인 양의 정수들이다. 전형적으로, A modulo N 및 B modulo N은 0이 아니다.
도3에서, 단지 예로서 M=1, N=3, A=1 및 B=2이다. 즉, 데이터 라우터(140)는 데이터 네트워크(100) 내의 다른 데이터 라우터들에 비하여 위상-시프트된 라우팅 정보 평가 사이클을 갖는다. 라우팅 정보가 정확하게 해석되도록 하기 위하여, 즉, 이 정보가 자신의 적절한 클록 사이클 동안 임의의 데이터 라우터에 도달하도록 하기 위하여, 2개의 가능한 구현예들이 선택될 수 있다. 제1 구현예에서, 위상-시프트된 데이터 라우터(140)로의, 그리고 상기 라우터로부터의 모든 통신은 저속 통신 채널(150)을 통하여 라우팅된다. 결과적으로, 저속 통신 채널(150)만이 자신의 서브채널들(152 및 154) 상에 M*N개의 데이터 저장 요소들의 도입을 요구한다. 이 구현예의 결점은 데이터 통신 네트워크(100)의 유연성이 감소된다는 것이다.
바람직한 구현예에서, 제2 사이클에서 라우팅 정보를 평가하도록 구성되는 부가적인 네트워크 스테이션으로부터 제1 네트워크 스테이션까지의 임의의 네트워크 경로는 C개의 지연 요소들을 포함하고(C는 C modulo N = A인 양의 정수), 제1 네트워크 스테이션으로부터 상기 부가적인 네트워크 스테이션까지의 임의의 네트워크 경로는 D개의 지연 요소들을 포함한다(D는 D modulo N = B인 양의 정수). 이것은 전체 데이터 통신 네트워크(100)에 걸쳐서 클록 사이클 및 라우팅 정보 평가 사이에 정확한 위상 관계가 유지되도록 한다. 예를 들어, 도3에서, C = A이고 B = D이며, C개의 데이터 요소들(160)은 데이터 라우터(130)의 출력 포트 및 데이터 라우터(140)의 입력 포트 사이의 서브채널(152)에 도입되고, D개의 데이터 요소들(160)은 데이터 라우터(130)의 입력 포트 및 데이터 라우터(140)의 출력 포트 사이의 서브채널(154)에 도입된다.
즉, 서로에 대해 위상-시프트된 라우팅 정보 사이클을 나타내는 2개의 네트워크 스테이션들 사이의 모든 통신 채널(150)은 위상 시프트가 대응하는 사이클들의 수를 구현하기 위하여 적절한 수의 데이터 저장 요소들(160)을 포함해야 한다. 도3에서, 이것은 데이터 라우터(140)의 입력 포트에 접속된 모든 서브채널들이 데이터 라우터(140)를 향해 지향된 통신에서 A개의 사이클들의 지연을 도입하기 위하여 A개의 데이터 저장 요소들(160)을 가지도록 확장되고, 데이터 라우터(140)의 출력 포트에 접속된 모든 서브채널들이 데이터 라우터(140)로부터 발생하는 통신에 B개의 사이클들의 지연을 도입하기 위하여 B개의 데이터 저장 요소들(160)을 가지도록 확장된다는 것을 의미한다. A+B=M*N이기 때문에, 데이터 라우터(140)가 접속되는 각각의 통신 채널(150)은 M*N개의 데이터 저장 요소들(160)을 통합하므로, 2개의 이웃하는 데이터 라우터들 사이의 통신 루프에서 정확하게 M개의 데이터 패키지들의 지연을 도입하는 것을 보장한다.
이것은 도4에서 보다 상세히 설명되며, 여기서 데이터 요소들(h, d1 및 d2)로 이루어진 데이터 패키지는 도3에 도시된 바와 같은 IC(10)의 네트워크에서 데이터 라우터(120)로부터 데이터 라우터(140)로, 그리고 다시 역으로 전송된다. 데이터 라우터들(120 및 140)에 대한 라우팅 정보 평가 클록 사이클들은 이와 같은 사이클의 시작에 굵은 수직선들로 표시된다. 즉, 데이터 라우터(120)는 t, t+3, t+6, 등에서 수신된 데이터 패키지들의 라우팅 정보를 평가하는 반면, 데이터 라우터(140)는 t+1, t+4, t+7, 등에서 수신된 데이터 패키지들의 라우팅 정보를 평가한다. 데이터 라우터(120)는 T=t에서 데이터 라우터(140)에 데이터 요소(h)를 전송한다. T=t에서, 데이터 요소(h)는 제1 서브채널(152) 내의 데이터 저장 요소(160)에 의해 수신되고, 상기 데이터 저장 요소는 데이터 요소(h)를 저장하고 이를 T=t+1에서 데이터 라우터(140)에 전송하며, 상기 데이터 라우터는 동일한 클록 사이클 동안 데이터 요소(h)를 수신하고 헤더(h)에 포함된 라우팅 정보를 평가한다.
데이터 라우터(140)가 T=t+2에서 데이터 요소(d1)를 수신하고 T=t+3에서 데이터 요소(d2)를 수신한 후에, 즉, 데이터 라우터(140)가 완전한 데이터 패키지를 수신한 후에, 상기 데이터 라우터(140)는 제2 서브채널(154)을 통하여 데이터 라우터(140)에 데이터 패키지의 제1 데이터 요소를 전송한다. 제2 서브채널(154) 상의 2개의 데이터 저장 요소들(160)의 존재로 인하여, 제1 데이터 요소(h)는 T=t+6에서, 즉, 데이터 라우터(120)가 라우팅 정보를 평가하도록 스케줄링된 사이클 동안 데이터 라우터(120)에 의하여 수신되며, 다른 2개의 데이터 요소들(d1 및 d2)은 각각 후속 사이클들(t+7 및 t+8)에 도착한다. 서브채널들(152 및 154) 내의 데이터 저장 요소들(160)이 위상 시프터들로서 동작하여 라우팅 정보가 각각의 데이터 라우터 위상 도메인에서 정확한 시간에 평가되도록 한다는 것이 인식될 것이다. 위상 시프팅 기술들의 애플리케이션은 개별적인 서브채널들(152, 154) 상에 도입된 지연이 전체 데이터 패키지보다 더 적어서, 도1에 제공된 해결책에 비하여, 저속 통신 채널(150)의 성능을 개선시킬 수 있다는 장점을 갖는다.
이 점에서, 상이한 위상 도메인들의 수가 본 발명의 내용들을 벗어남이 없이 더 확장될 수 있다는 것이 인식될 것이다. 데이터 저장 요소들의 예시적인 구현예들이 2개의 데이터 라우터들 사이의 통신 채널 상에 제공될지라도, 다른 유형의 네트워크 스테이션들 사이, 예를 들어, 데이터 라우터 및 네트워크 인터페이스 사이의 채널들 상의 구현예들이 동등하게 실행 가능하다는 것이 다시 언급된다.
도5는 클록 스큐(clock skew)에 대해 로버스트한(robust) 2개의 네트워크 스테이션들, 예를 들어, 데이터 라우터들(120 및 140) 사이의 지연된 듀플렉스 통신 채널(150)의 비동기 구현예를 도시한다. 데이터 라우터들(120 및 140)은 클록 신호(CLK)에 의해 트리거된다. 그러나, 클록 신호가 데이터 라우터(120)보다 더 긴 데이터 라우터(140)로의 와이어를 통해 이동해야 한다는 사실로 인하여, 데이터 라우터(140)는 데이터 라우터(120)에 의해 수신된 클록 신호(CLK)에 대해 t1의 지연을 갖는 지연된 클록 신호(CLK_d)를 수신한다. 완전한 동기 데이터 통신 네트워크(100)에서, 이것은 클록 사이클(t)에서 데이터 라우터(140)에 의해 데이터 라우터(120)로 전송된 데이터 패키지 또는 데이터 라우터들(120 및 140) 사이의 저속 통신 채널(150)을 통한 제1 지연 요소(160)가 사이클(t) 보다는 사이클(t+1)에서 자신의 목적지에 도달할 수 있기 때문에, 통신 에러들을 초래할 수 있다. 상술된 바와 같이, 이것은 라우팅 정보가 라우팅 정보 평가 사이클을 벗어나서 데이터 라우터(120)에 도달하도록 하여, 라우팅 에러로 인한 정보의 손실을 초래할 것이다.
이 위험은 데이터 라우터들(120 및 140) 사이의 제1 서브채널(152) 및 제2 서브채널(154) 상에 각각 비동기 FIFO 버퍼들(520 및 540)로서 M*N개의 데이터 저장 요소들(160)을 구현함으로써 감소될 수 있다. 이 구현예는 적어도 일정 한도들 내에서 클록 스큐에 민감하지 않다. 비동기 FIFO 버퍼들(520 및 540)의 클록 스큐에 대한 로버스트니스(robustness)를 개선시키기 위하여, 버퍼들은 이하에 더 상세히 설명되는 바와 같이, M*N개보다 다소 더 많은 데이터 저장 요소들을 포함할 수 있다.
비동기 FIFO 버퍼들(520 및 540)은 클록(CLK)과 관계없이 통신 동작을 행하며; 데이터는 핸드쉐이크 프로토콜들(handshake protocols)에 기초하여 FIFO 버퍼들(520 및 540)을 통해 리플(ripple)된다. 이와 같은 동작은 통상적으로 후자가 상술된 바와 같이, 동기 통신 네트워크의 최저속 경로에 의해 지배되기 때문에 동기 통신보다 더 고속이다.
데이터 라우터(120)로부터 FIFO 버퍼(520)로의 데이터 패키지의 통신은 크기 N을 갖는 데이터 패키지의 데이터 요소들의 동기 데이터 통신(502)보다 선행하는 핸드쉐이크 검증 신호(501)에 의해 개시된다; 이 통신은 클록 신호(CLK)에 응답하는 데이터 라우터(120)에 의해 제어된다. 데이터 요소들은 FIFO 버퍼(520)를 통해 리플되는데 시간 기간(t2)을 필요로 하고, 그 후에 핸드쉐이크 요청(503)이 데이터 라우터(140)에 전송된다. 최초 핸드쉐이크 요청을 수신하면 데이터 라우터(140)가 초기화되고 데이터 라우터(140)가 트리거되어, 확인 신호(504)를 FIFO 버퍼(520)에 전송함으로써 데이터 통신을 수용하고, 이 버퍼는 데이터 통신(505)을 트리거한다. 데이터 라우터(140)는 데이터 패키지들의 데이터 스트림이 완전하게 수신될 때까지 초기화된 채로 유지될 것이다. 데이터 라우터들(120 및 140)의 데이터 패키지 수신 기간들은 클록 신호들(clk 및 clk_d)을 통하여 굵은 수평선들로 각각 표시된다. 데이터 라우터(140)는 데이터 통신을 동기적으로 수신하고 핸드쉐이크 검증 신호(506) 및 데이터 통신(507)을 FIFO 버퍼(540)에 전송함으로써, 웜홀 라우팅 방법에 따라, 데이터 패키지를 동기적으로, 즉, 요청 신호(503)를 수신한 N개의 클록 사이클들 이후에 클록 사이클당 하나의 데이터 요소씩 전송한다. 기간(t3), 즉, 데이터 요소들이 FIFO 버퍼(540)를 통해 리플되는데 요구하는 시간 이후에, FIFO 버퍼(540)는 데이터 라우터(120)에 핸드쉐이크 요청 신호(508)를 전송한다.
결정적으로, 데이터 라우터(120)가 이미 초기화되었기 때문에, 즉, 데이터 라우터(140)에 데이터 스트림을 전달하는데 이미 관여하고 있기 때문에, 데이터 라우터(120)는 단지 이와 같은 핸드쉐이크 요청에 대한 확인 신호(509)만을 전송하여, 수직 점선으로 나타낸 바와 같이, 데이터 라우터(120)의 라우팅 정보 평가 사이클의 시작에서 통신(510)을 가능하게 할 것이다. 대안적으로, 데이터 라우터(120)로부터 데이터 라우터(140)로의 데이터 스트림의 전송이 FIFO 버퍼(540)로부터 데이터 라우터(120)로의 핸드쉐이크 요청(508) 이전에 완료되었다면, 이 요청은 데이터 라우터(120)을 초기화할 것이다. 두 가지 경우들 모두에서, 데이터 라우 터들(120 및 140)을 트리거하는 클록 신호 상의 클록 스큐에도 불구하고, 데이터 라우터(120)의 정확한 타임슬롯에서 라우팅 정보를 수신하는 것이 보장된다. 데이터 라우터(120) 및 데이터 라우터(140) 사이의 클록 스큐가 상당한 경우에, 데이터 라우터(140)는 FIFO 버퍼(540)에 이 버퍼가 확신 신호(509)를 수신하기 이전에, 다음 데이터 패키지의 제1 데이터 요소를 전송할 수 있다. 이와 같은 시나리오에서, FIFO 버퍼(540)는 자신(540) 내에 저장된 데이터의 손실을 피하기 위하여 M*N개 이상의 데이터 요소들을 저장할 수 있어야 한다. 이것은 겹쳐쓰기 보호로서 M*N개의 데이터 저장 요소들에 하나 이상의 데이터 저장 요소들을 부가함으로써 실현될 수 있다.
본 발명에 따른 데이터 통신 네트워크(100)를 포함하는 IC(10)는 다음과 같이 변경된 IC 설계 방법을 사용하여 설계될 수 있다. 널리 공지된 IC 설계 도구들을 사용하여 행해질 수 있고 이로 인해 더 설명되지 않을 제1 버전의 IC(10)를 설계한 후, 미리규정된 지연 문턱값을 초과하는 데이터 전달 지연을 갖는 네트워크 스테이션 및 제2 네트워크 스테이션 사이의 제1 통신 채널이 식별되는 평가 단계가 수행된다. 결과적으로, 데이터 통신 네트워크(100)의 설계는 제1 통신 채널 상에 M*N개의 사이클들의 지연을 도입하기 위하여 M*N개의 데이터 저장 요소들을 네트워크 내로 삽입함으로써 본 발명의 내용들에 따라 변경되며, M은 양의 정수이다. 이것은 데이터 통신 네트워크(100)가 동작할 수 있는 최대 클록 속도를 증가시키도록 한다.
삽입 단계는 상기 제1 서브채널 상으로 A개의 사이클들의 지연을 도입하기 위하여 제1 통신 채널(150)의 제1 서브채널(152) 내로 A개의 데이터 저장 요소들을 삽입하는 단계 및 상기 제2 서브채널 상으로 B개의 사이클들의 지연을 도입하기 위하여 제1 통신 채널(150)의 제2 서브채널(154) 내로 B개의 데이터 저장 요소들을 삽입하는 단계를 포함하며, A 및 B는 양의 정수이고, 도3과 4 및 이들의 상세한 설명에 약술된 바와 같이, 위상-시프트된 데이터 통신 네트워크(100)를 생성하기 위하여 A + B = M*N이다.
상술된 실시예들이 본 발명을 제한하기보다는 설명하는 것이며, 당업자들이 첨부된 청구항들의 범위를 벗어남이 없이 많은 대안적인 실시예들을 설계할 수 있다는 점이 주의되어야 한다. 청구항들에서, 괄호 사이에 배치된 임의의 참조 부호들은 청구항을 제한하는 것으로 해석되지 않아야 한다. 단어 "포함하는"은 청구항에서 목록화된 것들 이외의 요소들 또는 단계들의 존재를 배제하지 않는다. 요소 앞의 단어 "a" 및 "an"은 다수의 이와 같은 요소들의 존재를 배제하지 않는다. 본 발명은 여러 다른 요소들을 포함하는 하드웨어에 의해 구현될 수 있다. 여러 수단들을 열거하는 장치 청구항에서, 여러 개의 이러한 수단들은 하드웨어의 하나 및 동일한 아이템에 의해 구현될 수 있다. 어떤 수단이 서로 다른 종속 청구항들에서 재인용된다는 단순한 사실은 이들 수단들의 조합이 효과적으로 사용될 수 없다는 것을 나타내지 않는다.

Claims (11)

  1. 집적 회로(10)에 있어서:
    다수의 기능 블록들(101, 102, 103, 104); 및
    상기 기능 블록들(101, 102, 103, 104) 사이에서 데이터 패키지들을 통신하기 위한 다수의 통신 채널들(150)을 통하여 상호접속되는 다수의 네트워크 스테이션들(105-108, 110, 120, 130, 140)을 포함하는 데이터 통신 네트워크를 포함하고, 각각의 데이터 패키지는 상기 네트워크 스테이션들(105-108, 110, 120, 130, 140)에 대한 라우팅 정보를 포함한 데이터 요소들을 포함하는 N개의 데이터 요소들을 포함하고, N은 적어도 2 이상의 정수이며, 상기 다수의 네트워크 스테이션들은 다수의 데이터 라우터들(110, 120, 130, 140) 및 다수의 네트워크 인터페이스들(105-108)을 포함하며, 상기 데이터 라우터들(110, 120, 130, 140) 각각은 네트워크 인터페이스(105-108)를 통하여 기능 블록(101, 102, 103, 104)에 결합되며, 상기 데이터 통신 네트워크(100)는 제1 통신 채널(150)을 통해 상호접속되는 제1 네트워크 스테이션(140) 및 제2 네트워크 스테이션(120)을 포함하며, 상기 네트워크는 제1 통신 채널(150) 상에 M*N개의 사이클들의 지연을 도입하기 위하여 M*N개의 데이터 저장 요소(160)들을 포함하고, M은 양의 정수인, 집적 회로.
  2. 제1항에 있어서, 각각의 통신 채널(150)은:
    2개의 연관된 네트워크 스테이션들 사이의 듀플렉스 통신(duplex communication)을 가능하게 하기 위하여, 제1 연관된 네트워크 스테이션의 입력 포트 및 제2 연관된 네트워크 스테이션의 출력 포트 사이의 제1 서브채널(152); 및 제2 연관된 네트워크 스테이션의 입력 포트 및 제1 연관된 네트워크 스테이션의 출력 포트 사이의 제2 서브채널(154)을 포함하는, 집적 회로.
  3. 제2항에 있어서, 상기 M*N개의 데이터 요소들(160)은 제1 통신 채널(150)의 제1 서브채널(152) 및 제2 서브채널(154)를 통해 분배되는, 집적 회로.
  4. 제3항에 있어서, 제1 네트워크 스테이션은 제1 사이클에서 라우팅 정보를 평가하도록 구성되고, 제2 네트워크 스테이션은 제2 사이클에서 라우팅 정보를 평가하도록 구성되며, 상기 제1 사이클 및 제2 사이클 사이의 차이는 A개의 사이클들이고;
    제1 통신 채널(150)의 제1 서브채널(152)은 A개의 데이터 저장 요소들(160)에 의해 구현된 A개의 사이클들의 지연을 나타내고, 제2 서브채널(154)은 B개의 데이터 저장 요소들에 의해 구현된 B개의 사이클들의 지연을 나타내며, A 및 B는 양의 정수들이며, A + B = M*N인, 집적 회로.
  5. 제4항에 있어서, 상기 제2 사이클에서 라우팅 정보를 평가하도록 구성되는 부가적인 네트워크 스테이션으로부터 제1 네트워크 스테이션까지의 임의의 네트워크 경로는 C개의 지연 요소들을 포함하고, C는 C modulo N = A인 양의 정수이며; 상기 제1 네트워크 스테이션으로부터 상기 부가적인 네트워크 스테이션까지의 임의의 네트워크 경로는 D개의 지연 요소들을 포함하며, D는 D modulo N = B인 양의 정수인, 집적 회로.
  6. 제1항 내지 5항 중 어느 한 항에 있어서, M=1인, 집적 회로.
  7. 제3항에 있어서, 상기 제1 통신 채널(150)의 제1 서브채널(152) 및 제2 서브채널(154)은 1/2*M*N개의 데이터 저장 요소들(160)에 의해 도입된 지연을 각각 포함하는, 집적 회로.
  8. 제1항 또는 2항에 있어서, 클록 신호 발생기를 더 포함하며, 상기 다수의 네트워크 스테이션들(110, 120, 130, 140) 및 M*N개의 저장 요소들(160)은 상기 클록 신호 발생기에 응답하는, 집적 회로.
  9. 제1항 또는 2항에 있어서, 각각의 네트워크 스테이션(110, 120, 130, 140)은 상기 네트워크 스테이션의 통신 포트와 연관된 제1 메모리 요소 및 제2 메모리 요소를 포함하고, 상기 제1 메모리 요소는 상기 통신 포트와 연관된 제1 서비스 레벨을 요구하는 데이터 패키지로부터의 라우팅 정보를 저장하도록 구성되며, 상기 제2 메모리 요소는 상기 통신 포트와 연관된 제2 서비스 레벨을 요구하는 데이터 패키지로부터의 라우팅 정보를 저장하도록 구성되는, 집적 회로.
  10. 다수의 기능 블록들(101, 102, 103, 104) 및 상기 기능 블록들(101, 102, 103, 104) 사이에서 데이터 패키지들을 통신하기 위한 다수의 통신 채널들(150)을 통하여 상호접속되는 다수의 네트워크 스테이션들(105-108, 110, 120, 130, 140)을 포함하는 데이터 통신 네트워크를 포함하는 집적 회로를 설계하는 방법으로서, 각각의 데이터 패키지는 상기 네트워크 스테이션들(105-108, 110, 120, 130, 140)에 대한 라우팅 정보를 포함한 데이터 요소들을 포함하는 N개의 데이터 요소들을 포함하고, N은 적어도 2 이상의 정수이며, 상기 다수의 네트워크 스테이션들은 다수의 데이터 라우터들(110, 120, 130, 140) 및 다수의 네트워크 인터페이스들(105-108)을 포함하며, 상기 데이터 라우터들(110, 120, 130, 140) 각각은 네트워크 인터페이스를 통하여 기능 블록(101, 102, 103, 104)에 결합되는, 집적 회로 설계 방법에 있어서:
    미리규정된 지연 문턱값을 초과하는 데이터 전달 지연을 갖는 제1 네트워크 스테이션(140) 및 제2 네트워크 스테이션(120) 사이의 제1 통신 채널(150)을 식별하는 단계; 및
    제1 통신 채널(150) 상에 M*N개의 사이클들의 지연을 도입하기 위하여 M*N개의 데이터 저장 요소들(160)을 상기 데이터 통신 네트워크(100) 내로 삽입하는 단계를 포함하며, M은 양의 정수인, 집적 회로 설계 방법.
  11. 제10항에 있어서, 각각의 통신 채널(150)은 2개의 연관된 네트워크 스테이션 들 사이의 듀플렉스 통신을 가능하게 하기 위하여, 제1 연관된 네트워크 스테이션의 입력 포트 및 제2 연관된 네트워크 스테이션의 출력 포트 사이의 제1 서브채널(152) 및 제2 연관된 네트워크 스테이션의 입력 포트 및 제1 연관된 네트워크 스테이션의 출력 포트 사이의 제2 서브채널(154)을 포함하고;
    제1 네트워크 스테이션은 제1 사이클에서 라우팅 정보를 평가하도록 구성되고, 제2 네트워크 스테이션은 제2 사이클에서 라우팅 정보를 평가하도록 구성되며, 상기 제1 사이클 및 제2 사이클 사이의 차이는 A개의 사이클들이고, 상기 집적 회로 설계 방법은:
    상기 제1 서브채널 상으로 A개의 사이클들의 지연을 도입하기 위하여 A개의 데이터 저장 요소들을 제1 통신 채널(150)의 제1 서브채널(152) 내로 삽입하는 단계; 및
    상기 제2 서브채널 상으로 B개의 사이클들의 지연을 도입하기 위하여 B개의 데이터 저장 요소들을 제1 통신 채널(150)의 제2 서브채널(154) 내로 삽입하는 단계를 더 포함하며, A 및 B는 양의 정수이고, A + B = M*N인, 집적 회로 설계 방법.
KR1020077027094A 2005-04-21 2006-04-20 데이터 통신 네트워크를 갖는 집적 회로 및 ic 설계 방법 KR20080011209A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP05103232 2005-04-21
EP05103232.4 2005-04-21

Publications (1)

Publication Number Publication Date
KR20080011209A true KR20080011209A (ko) 2008-01-31

Family

ID=36694308

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077027094A KR20080011209A (ko) 2005-04-21 2006-04-20 데이터 통신 네트워크를 갖는 집적 회로 및 ic 설계 방법

Country Status (7)

Country Link
US (1) US8072893B2 (ko)
EP (1) EP1875683B1 (ko)
JP (1) JP2008538670A (ko)
KR (1) KR20080011209A (ko)
CN (1) CN101164298A (ko)
AT (1) ATE523990T1 (ko)
WO (1) WO2006111931A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100653087B1 (ko) * 2005-10-17 2006-12-01 삼성전자주식회사 AXI가 적용된 NoC 시스템 및 그 인터리빙 방법
JP5753372B2 (ja) * 2009-12-22 2015-07-22 キヤノン株式会社 データ処理装置およびその制御方法
US8604833B2 (en) 2010-01-26 2013-12-10 Freescale Semiconductor, Inc. Integrated circuit device and method of using combinatorial logic in a data processing circuit
US9355690B1 (en) * 2011-03-17 2016-05-31 Xilinx, Inc. Time-multiplexed, asynchronous device
EP2700202B1 (en) * 2011-04-20 2017-11-08 NXP USA, Inc. Integrated circuit device and methods for performing cut-through forwarding
CN104615388B (zh) * 2013-11-01 2017-12-22 精工爱普生株式会社 打印控制系统
IN2014DE02931A (ko) 2013-11-01 2015-06-26 Seiko Epson Corp
US10110700B2 (en) * 2014-03-31 2018-10-23 Oracle International Corporation Multiple on-die communication networks
US10176012B2 (en) 2014-12-12 2019-01-08 Nxp Usa, Inc. Method and apparatus for implementing deterministic response frame transmission
US10505757B2 (en) 2014-12-12 2019-12-10 Nxp Usa, Inc. Network interface module and a method of changing network configuration parameters within a network device
US9787571B2 (en) * 2014-12-22 2017-10-10 Intel Corporation Link delay based routing apparatus for a network-on-chip
US9965410B2 (en) * 2016-01-21 2018-05-08 Qualcomm Incorporated Priority-based data communication over multiple communication buses
US10628352B2 (en) 2016-07-19 2020-04-21 Nxp Usa, Inc. Heterogeneous multi-processor device and method of enabling coherent data access within a heterogeneous multi-processor device
WO2019191742A1 (en) * 2018-03-31 2019-10-03 Micron Technology, Inc. Loop thread order execution control of a multi-threaded, self-scheduling reconfigurable computing fabric

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6466548B1 (en) * 1998-10-28 2002-10-15 Cisco Technology, Inc. Hop by hop quality of service measurement system
US7606164B2 (en) * 1999-12-14 2009-10-20 Texas Instruments Incorporated Process of increasing source rate on acceptable side of threshold
US20020087716A1 (en) * 2000-07-25 2002-07-04 Shakeel Mustafa System and method for transmitting customized multi priority services on a single or multiple links over data link layer frames
US7197009B1 (en) * 2002-03-06 2007-03-27 Sprint Communications Company L.P. Delay variation based routing in communication systems
GB2399263A (en) * 2003-03-07 2004-09-08 Zarlink Semiconductor Ltd Clock synchronisation over a packet network
US7680920B2 (en) * 2003-03-24 2010-03-16 Netiq Corporation Methods, systems and computer program products for evaluating network performance using diagnostic rules identifying performance data to be collected
US7362763B2 (en) * 2003-09-04 2008-04-22 Samsung Electronics Co., Ltd. Apparatus and method for classifying traffic in a distributed architecture router

Also Published As

Publication number Publication date
EP1875683B1 (en) 2011-09-07
US8072893B2 (en) 2011-12-06
CN101164298A (zh) 2008-04-16
JP2008538670A (ja) 2008-10-30
EP1875683A1 (en) 2008-01-09
WO2006111931A1 (en) 2006-10-26
ATE523990T1 (de) 2011-09-15
US20080186983A1 (en) 2008-08-07

Similar Documents

Publication Publication Date Title
US8072893B2 (en) Integrated circuit with data communication network and IC design method
JP3816530B2 (ja) 低い待ち時間、高いクロック周波数、プレジオ非同期 パケット・ベースクロスバー・スイッチング・チップ・システム及び方法
US7957381B2 (en) Globally asynchronous communication architecture for system on chip
KR101016987B1 (ko) 집적 회로
US4922244A (en) Queueing protocol
EP0022170B1 (en) Method of attaining communication of data packets on a local shared bus network and local shared bus network
US7940666B2 (en) Communication node architecture in a globally asynchronous network on chip system
EP1854254B1 (en) A method of and a system for controlling access to a shared resource
US10387355B2 (en) NoC interconnect with linearly-tunable QoS guarantees for real-time isolation
JPH0691554B2 (ja) 情報通信装置
US8824295B2 (en) Link between chips using virtual channels and credit based flow control
US10289598B2 (en) Non-blocking network
US6946873B1 (en) Method and system for recovering and aligning synchronous data of multiple phase-misaligned groups of bits into a single synchronous wide bus
US8645557B2 (en) System of interconnections for external functional blocks on a chip provided with a single configurable communication protocol
Nambinina et al. Extension of the lisnoc (network-on-chip) with an axi-based network interface
US10185606B2 (en) Scalable autonomic message-transport with synchronization
WO2006089559A1 (en) A network, a system and a node for use in the network or system
CN112631985A (zh) 一种链路共享的片上网络
JPH02143747A (ja) 通信システム用交換回路網
Reddy et al. QNOC Isochronous Router with Efficient Dynamic Virtual channel and Error Termination
Ezz-Eldin et al. Synchronous and Asynchronous NoC Design Under High Process Variation
Chi et al. Efficient switches for network-on-chip based embedded systems
Shariat et al. Reducing router's area in NoC by changing buffering method while providing QoS
Sanju et al. Design of a Generic Network on Chip Frame Work Using Wormhole Routing for 2D Mesh
Kaveri et al. Router Design Using Cadence Encounter

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application