KR100581196B1 - 다중 채널을 제공하는 에스오씨 버스 구조 - Google Patents

다중 채널을 제공하는 에스오씨 버스 구조 Download PDF

Info

Publication number
KR100581196B1
KR100581196B1 KR1020040044896A KR20040044896A KR100581196B1 KR 100581196 B1 KR100581196 B1 KR 100581196B1 KR 1020040044896 A KR1020040044896 A KR 1020040044896A KR 20040044896 A KR20040044896 A KR 20040044896A KR 100581196 B1 KR100581196 B1 KR 100581196B1
Authority
KR
South Korea
Prior art keywords
routing
crossbar
router
global
local
Prior art date
Application number
KR1020040044896A
Other languages
English (en)
Other versions
KR20050119798A (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 KR1020040044896A priority Critical patent/KR100581196B1/ko
Publication of KR20050119798A publication Critical patent/KR20050119798A/ko
Application granted granted Critical
Publication of KR100581196B1 publication Critical patent/KR100581196B1/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/101Packet switching elements characterised by the switching fabric construction using crossbar or matrix
    • 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/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)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은, 복수의 IP 및 디바이스와 연결되어 데이터 통신을 위해 라우팅을 하는 통신 디바이스에 있어서, 에스앤에이(SNA: SoC on-chip-network Architecture) 구조가 적용되어 다중 채널을 제공하는 에스오씨 버스 구조에 관한 것으로서, 에스앤에이 구조가, 4N 개의 채널을 지원하고, 복수의 IP로부터 라우팅 리퀘스트, 소스 ID 및 데스티네이션 어드레스를 포함하는 제 1 리퀘스트 정보를 각기 수신하여, 각 IP에 대한 라우팅을 지원하는 하나 이상의 크로스바 라우터(XR) 및 각 IP와 각 크로스바 라우터를 연결하는 스위치 래퍼를 포함하고, 크로스바 라우터를 통한 별도의 라우팅 없이 스위치 래퍼 내부에서 직접 통신 연결되는 다이렉트 라우팅, 특정한 하나의 크로스바 라우터 내에서 라우팅이 이루어지는 로컬 라우팅 및 특정한 하나의 크로스바 라우터 내에 존재하지 않는 데스티네이션 어드레스에 대하여, 복수의 크로스바 라우터 간에 라우팅이 이루어지는 글로벌 라우팅 중 어느 하나의 동작모드를 갖는 것을 특징으로 한다.
버스; SoC; SNA; SNP

Description

다중 채널을 제공하는 에스오씨 버스 구조{SYSTEM ON CHIP BUS ARCHITECTURE PROVIDING MULTIPLE CHANNEL}
도 1 은 SNA의 3가지 동작모드를 나타낸 도.
도 2 는 크로스바 라우터(Crossbar Router)의 개념적인 구조도.
도 3 은 크로스바 라우터의 각 방향성에 대한 값을 나타낸 도.
도 4 는 글로벌 아비터(Global Arbiter)가 요구되는 확장된 SNA 구조도.
도 5 는 크로스바 스위치 컨트롤러(Crossbar Switch Controller)의 인터페이스를 나타낸 도.
도 6 은 크로스바 라우터의 크로스바 스위치 컨트롤러의 내부 구조도.
도 7 은 크로스바 스위치 매트릭스의 인터페이스를 나타낸 도.
도 8 은 래퍼(Wrapper)의 인터페이스를 나타낸 도.
도 9 는 스위치 래퍼(Switch Wrapper)의 내부 구조도.
도 10 은 상용화된 디지털 카메라 구조를 나타낸 도.
도 11 은 도 10 에 SNA를 적용시킨 구조를 나타낸 도.
도 12 는 보다 많은 IP를 수용하기 위하여 2개의 크로스바 라우터를 사용하여 글로벌 아비터(Global Arbiter)가 사용된 예시도.
도 13 은 4개의 크로스바 라우터를 사용하여 보다 더 확장된 예시도.
도 14 는 보다 적은 수의 크로스바 라우터를 사용하여 많은 IP를 효율적으로 수용할 수 있는 SNA 예시도.
도 15 는 AMBA AHB와 SNA의 시뮬레이션 결과를 나타낸 도.
도 16 은 AHB와 SNA구조에서 IP 모듈의 증가와 이에 따른 버스트 트랜잭션 (Burst transaction)의 증가에 따른 전체 수행 사이클의 비교도.
도 17 은 XC가 각 리퀘스트에 대한 그랜트(Grant)를 처리하는 과정을 보여주는 파형을 나타낸 도.
본 발명은 다중 채널을 제공하는 에스오씨 버스 구조에 관한 것으로서, 구체적으로 에스오씨(SoC: System-on-chip)에서 각 IP 간의 통신을 담당하는 버스 구조에 관한 것이다.
종래의 공유 버스(Shared Bus)의 문제점(AMBA, CoreConnect, Wishbone etc.)에 대하여 설명하면 이하와 같다.
1. 한번에 하나의 마스터(Master)만이 전체 버스를 사용할 수 있는 권한이 주어지게 된다. 따라서, 서로 다른 마스터가 서로 다른 슬레이브(Slave)를 요구하게 되면 통신이 이루어질 수 없기 때문에 전체 버스 효율(Bus Utilization Efficiency)이 저하되는 문제점이 있었다.
2. 듀얼 포트 메모리(Dual Port Memory)를 사용하기 위해서는 단일 버스 구조로는 불가능하기 때문에 계층적(Hierarchal) 구조로 구성하여야 하고, 이들 버스 간에는 브릿지(bridge)를 통해서 연결될 수 있다. 그러나, 듀얼 포트 메모리를 사용한다 할지라도 결국 하나의 버스에서 사용될 수 있는 메모리 포트(Memory Port)는 하나밖에 없으며, 브릿지를 통해서 다른 버스의 메모리에 액세스가 가능하다 할지라도 이미 브릿지를 사용하기 위해서 하나의 IP가 두개의 버스를 모두 점유해버리기 때문에 다른 어떤 IP도 버스 서비스(Bus Service)를 받을 수 없는 문제점이 있었다.
이러한 문제점을 해결하기 위하여, 즉 동시에 듀얼 포트 메모리를 사용하기 위해서 하나의 포트는 전용(dedicated) 연결이 이루어져야 한다. 예를 들면, CPU와 메모리가 전용(dedicated) 연결을 이루고 나머지 포트는 버스를 통해서 액세스 가능하게 함으로써 전체 버스 효율(Bus Utilization Efficiency)을 높일 수 있게 된다. 그러나, 이런 구조 상에서도 결국 버스 상에서 사용될 수 있는 메모리 포트는 하나로 제한되는 문제점이 있었다.
또한, 계층적(hierarchal) 구조에서 브릿지를 통해서 상위 버스의 IP와 연결을 시도한다면, 브릿지 역시 버스의 모듈이기 때문에 하위 버스에 있는 IP와 상위 버스의 IP의 상호연결은 중간에 존재하는 버스 모두를 점유하게 되어 계층적 (hierarchal) 구조에 최악의 결과를 초래하는 문제점이 있었다.
3. 공유 버스(Shared Bus)가 갖는 가장 큰 단점은 단일 IP에 대해서 버스 점 유율이 높은 버스트 전송(Burst Transfer)이다.
종래의 공유 버스(Shared Bus)는 버스의 대역폭(Bandwidth)을 높이기 위하여 버스트 전송(Burst Transfer) 개념을 도입하였다(From Sonics uNetworks Spec.). 버스트 전송(Burst Transfer)은 한번의 어드레스 페이즈(Address Phase) 후에 연속적인 데이터를 전송하는 방식으로 데이터 전송효율을 높일 수 있는 장점이 있는 반면, 이하와 같은 문제점이 있었다.
먼저, 공유 버스(Shared Bus)의 버스 리소스(Bus Resource)를 독차지하게 되므로 당장 가용될 수 있는 IP들간의 통신은 버스트(Burst) 만큼의 지연 이후에 이루어질 수 있는 문제점이 있었다. 또한, 응답 속도가 상대적으로 느린 Slave/Target/Initiator에 의해서 버스트 전송(Burst Transfer) 중에 대기상태 (Wait State)가 발생하게 되면, 이는 다른 디바이스에 더 큰 잠복기(Latency)를 가중시키게 되어 일정한 버스 대역폭(Bus Bandwidth)을 유지할 수 없는 문제점이 있었다.
일반적으로, 상대적으로 속도가 느린 디바이스는 버스 사용에서 효과적인 버스트 전송(Burst Transfer)을 위해서, FIFO와 같은 버퍼를 두어 버스트 전송 데이터(Burst Transfer Data)를 일괄적으로 모아두었다가 처리하는 방법을 사용함으로써 대기상태(Wait State) 없이 버스를 사용할 수 있다. 그러나, 이 경우 FIFO 버퍼와 같은 추가적인 메모리로 인하여 코스트가 증가하는 문제점이 발생되고, 또한 초기 데이터는 이미 준비가 되었음에도 뒤에 따라오는 데이터가 아직 준비되지 않았기 때문에 초기 데이터에 대한 잠복기(Latency)가 증가하게 된다. 따라서, 수 신측에서는 데이터를 처리하기 위해서 잠복기(Latency) 만큼 기다려야 하는 문제점이 있었다.
본 발명은 상기와 같은 문제점을 해결하고자 제시된 것으로서, 본 발명의 목적은 SNA가 적용되어 다중 채널을 제공하는 에스오씨 버스 구조를 제공하는 것이다.
SNA(SoC on-chip-network Architecture)는 SoC 내에서의 IP 간의 통신을 담당하는 버스 사용의 효율성을 높이기 위한 구조로서, 다중 마스터와 다중 채널을 지원하고 시스템 요구에 따라 확장 가능하다. 본 발명은 이를 통해 SoC 내부에서 버스로 인한 병목 현상을 해소하고 시스템 효율을 증가시키는 것을 목적으로 한다. 또한, 종래의 공유 버스(Shared Bus) 구조를 가지는 버스 프로토콜(Bus Protocol) 방식을 벗어나 보다 효율적인 방식으로 SoC 내의 IP 간에 통신을 지원하도록 한다. SNA는 종래의 버스 프로토콜이 가지는 많은 문제점을 해결하기 위해서 제안되었으며, Area/Efficiency의 비를 최소화하기 위한 구조이다. 또한, 현재 가장 널리 사용되고 있는 AMBA 버스와의 호환을 완벽하게 지원함으로써 종래의 AMBA IP를 그대로 사용할 수 있기 때문에 강력한 호환성을 지원한다.
상기의 목적을 달성하기 위하여, 본 발명에 따른 다중 채널을 제공하는 에스 오씨 버스 구조는, 복수의 IP와 로컬 버스를 포함하는 서브 시스템(sub-system) 및/또는 하나 이상의 IP와 연결되어 데이터 통신을 위해 라우팅을 하는 통신 디바이스에 있어서, 에스앤에이(SNA: SoC on-chip-network Architecture) 구조가 적용되어 다중 채널을 제공하는 에스오씨 버스 구조로서, 에스앤에이 구조가, 4N 개의 채널을 지원하고, 각 서브 시스템 및/또는 IP로부터 라우팅 리퀘스트, 소스 ID 및 데스티네이션 어드레스를 포함하는 제 1 리퀘스트 정보를 각기 수신하여, 각 서브 시스템 및/또는 IP에 대한 라우팅을 지원하는 하나 이상의 크로스바 라우터 및 각 서브 시스템 및/또는 IP와 각 크로스바 라우터를 연결하는 스위치 래퍼를 포함하고, 크로스바 라우터를 통한 별도의 라우팅 없이 스위치 래퍼 내부에서 직접 통신 연결되는 다이렉트 라우팅, 특정한 하나의 크로스바 라우터 내에서 라우팅이 이루어지는 로컬 라우팅 및 특정한 하나의 크로스바 라우터 내에 존재하지 않는 데스티네이션 어드레스에 대하여, 복수의 크로스바 라우터 간에 라우팅이 이루어지는 글로벌 라우팅 중 하나 이상의 동작모드를 가지며, 크로스바 라우터가, 각 서브 시스템 및/또는 IP로부터 전송된 제 1 리퀘스트 정보를 수신하여 각 서브 시스템 및/또는 IP의 서비스 순서를 결정하고, 제 1 리퀘스트 정보를 통해 크로스바 라우터의 방향성을 포함하는 로컬 라우팅 정보를 생성 및 전송하는 크로스바 스위치 컨트롤러 및 로컬 라우팅 정보에 따라 라우팅 경로를 구성하는 크로스바 스위치 매트릭스를 포함하는 것을 특징으로 한다.
바람직하게는, 에스앤에이 구조가 크로스바 라우터를 적어도 두개 이상 구비하는 경우, 특정한 하나의 크로스바 라우터 내에 존재하지 않는 데스티네이션 어드 레스를 갖는 라우팅 리퀘스트에 대하여, 복수의 크로스바 라우터 간의 글로벌 라우팅 경로 구성을 위한 각 크로스바 라우터의 방향성을 포함하는 글로벌 라우팅 정보를 전송하여, 글로벌 라우팅을 제공하는 글로벌 아비터를 더 포함하도록 한다. 이때, 크로스바 스위치 컨트롤러는, 각 라우팅 리퀘스트를 수신하고, 각 라우팅 리퀘스트에 대하여 사용자가 설정 가능한 프라이어리티 값을 가지는 프라이어리티 스킴에 의해 각 라우팅 리퀘스트의 서비스 순서를 결정하는 프라이어리티 멀티플렉서(MUX), 프라이어리티 멀티플렉서에서 선택된 리퀘스트 정보의 데스티네이션 어드레스를 데스티네이션 ID로 변환하는 어드레스 컨버터, 데스티네이션 어드레스, 데스티네이션 ID 및 소스 ID를 입력받고, 저장된 정보 중 데스티네이션 어드레스가 존재하는 경우 데스티네이션 어드레스로 경로 설정을 하기 위한 크로스바 라우터의 각 방향성을 포함하는 로컬 라우팅 정보를 전송하는 로컬 엘유티(LUT), 데스티네이션 어드레스가 로컬 엘유티에 존재하지 않는 경우, 글로벌 라우팅을 요청하는 글로벌 라우팅 리퀘스트, 데스티네이션 ID 및 소스 ID를 포함하는 제 2 리퀘스트 정보를 글로벌 아비터로 전송하고, 글로벌 아비터로부터 글로벌 라우팅 정보를 수신하는 리퀘스터 및 로컬 엘유티로부터 로컬 라우팅 정보를 수신하여 로컬 라우팅을 수행하고, 리퀘스터로부터 글로벌 라우팅 정보를 수신하여 글로벌 라우팅을 수행하는 라우터 블록을 포함하도록 한다. 글로벌 라우팅 정보를 데스티네이션 어드레스로 라우팅 경로가 설정되기 위하여 경유해야 하는 모든 크로스바 라우터의 리퀘스터가 동시에 수신하고, 사용자가 정한 소정의 규칙에 따라 각 크로스바 라우터 간의 라우팅 경로를 구성하도록 한다. 또한, 라우팅 경로 구성이 실패한 경우, 리퀘스터가 글로벌 아비터로 제 2 리퀘스트 정보를 전송하여, 기수신한 글로벌 라우팅 정보와 상이한 글로벌 라우팅 정보를 수신하도록 한다.
아울러, 크로스바 스위치 매트릭스는 동시 최대 4 방향의 연결을 지원하도록 한다. 한편, 로컬 라우팅과 글로벌 라우팅의 프라이어리티는 사용자에 의해 설정되고, 로컬 라우팅과 글로벌 라우팅 사이에 충돌이 발생할 경우 프라이어리티가 낮은 라우팅 리퀘스트에 대하여 실패 신호를 전송하도록 한다. 또한, 에스앤에이 구조는, 4N 개 채널 중 3N 개의 채널이 각 서브 시스템 및/또는 IP와의 통신 연결을 위해 각기 할당된 제 1 크로스바 라우터, 4N 개 채널 중 3N 개의 채널이 각 서브 시스템 및/또는 IP와의 통신 연결을 위해 각기 할당된 제 2 크로스바 라우터, 4N 개 채널 중 3N 개의 채널이 각 서브 시스템 및/또는 IP와의 통신 연결을 위해 각기 할당된 제 3 크로스바 라우터, 4N 개 채널 중 3N 개의 채널이 각 서브 시스템 및/또는 IP와의 통신 연결을 위해 각기 할당된 제 4 크로스바 라우터, 4N 개 채널이, 각 N 개의 채널마다 제 1 크로스바 라우터, 제 2 크로스바 라우터, 제 3 크로스바 라우터 및 제 4 크로스바 라우터와의 통신 연결을 위해 각기 할당된 제 5 크로스바 라우터 및 제 5 크로스바 라우터와 통신 연결된 글로벌 아비터를 포함하도록 구성할 수도 있다.
이하에서는, 첨부한 도면을 참조하여 본 발명의 장점, 특징 및 바람직한 실시례에 대해 상세히 설명하도록 한다.
먼저, SNA(SoC on-chip-network Architecture)에 대하여 설명하도록 한다. SNA는 종래의 버스에서 가지고 있는 많은 문제점을 해결하기 위해 연구/개발되었다. SNA의 주요 특징에 대하여 설명하면 이하와 같다.
1. 멀티 채널(Multi-Channel) 지원
크로스바 스위치(Crossbar Switch)를 통해서 멀티 채널(Multi-Channel)이 지원되기 때문에 전체 버스 효율(Bus Utilization Efficiency)을 높일 수 있다.
크로스바 스위치는 동시에 가용할 수 있는 경로(Path)가 최대 4 방향의 연결성을 가지기 때문에, 이를 효율적으로 이용함으로써 버스 효율(Bus Utilization Efficiency)을 극대화할 수 있다.
2. 다양한 라우팅(Routing) 지원
SNA는 Direct/Local/Global의 3가지 라우팅 모드(Routing Mode)를 지원한다.
먼저, 다이렉트 라우팅(Direct Routing)은 IP 간에 직접적으로 이루어질 수 있는 전용 통신(Dedicated Communication) 방법으로, 스위치 래퍼에서 이루어지므로 크로스바 라우터(Crossbar Router)의 어떠한 리소스도 사용하지 않고 라우팅이 가능하다. 따라서, 아비트레이션 잠복기(Arbitration Latency)가 발생하지 않게 된다.
로컬 라우팅(Local Routing)은 하나의 크로스바 라우터 내에서 이루어지는 모든 라우팅을 말한다. 로컬 라우팅은 크로스바 라우팅 내의 크로스바 스위치 컨트롤러(Crossbar Switch Controller)의 로컬 LUT(Look-up table)의 값을 참조하여 이루어지는 라우팅 방법으로 아비트레이션 잠복기(Arbitration Latency)는 1 사이 클이 된다.
또한, 글로벌 라우팅(Global Routing)은 둘 이상의 크로스바 라우터 간에 이루어지는 모든 라우팅을 말한다. 라우팅시 크로스바 스위치 컨트롤러(Crossbar Switch Controller)는 먼저 요청된 데스티네이션(Destination)이 자신과의 직접적인 연결이 되었는지를 확인한 후, 만약 연결이 되어있는 상태라면 로컬 라우팅 서비스(Local Routing Service)를 하지만 현재 자신과 직접적인 연결을 갖지 않은 데스티네이션(Destination)에 대하여는 글로벌 라우팅(Global Routing)을 리퀘스트하게 된다. 글로벌 라우팅 리퀘스트는 글로벌 아비터(Global Arbiter)로 리퀘스트된다. 따라서, 아비트레이션 잠복기(Arbitration Latency)는 3 사이클 보다 작거나 같다.
3. 어댑터블 토폴로지(Adaptable Topology) 지원
크로스바 라우터(Crossbar Router)는 요구되는 IP 수에 따라 다양한 토폴로지(Topology)를 지원한다. 요구되는 IP 수가 많지 않을 때는 하나의 크로스바 라우터로 모든 커뮤니케이션에 대해 지원 가능하며, 단일 크로스바 라우터는 글로벌 아비터(Global Arbiter)를 필요로 하지 않는다. 반면, 요구되는 IP 수가 많을 때에는 둘 이상의 크로스바 라우터를 이용해서 다양한 토폴로지(Topology)를 구성할 수 있으며, 로컬 도미넌트(Local Dominant) 구조인지 또는 글로벌 도미넌트(Global Dominant) 구조인지에 따라 다양한 구조를 선택할 수 있다. 특히, 미래의 IP들은 트랜잭션 레벨(Transaction Level)의 전송(Transfer)이 더 많이 포함되기 때문에 (MPEG/기타 영상관련) 버스트 전송(Burst Transfer) 방식의 전송(Transfer)이 많아 질 것이다.
4. 플렉서블 라우팅 서비스(Flexible Routing Service)
라우팅시 글로벌 아비터(Global Arbiter)는 크로스바 라우터에 방향성만을 제시하며, 크로스바 라우터는 그 방향성만을 가지고 가용 라우팅 경로(Available Routing Path)를 찾아서 연결한다. 만약, 현재의 라우팅이 실패(Fail)하였을 경우 글로벌 아비터(Global Arbiter)에서 새로운 경로 정보(Path Information)를 즉각 제공하기 때문에 리퀘스트된 라우팅에 대해서 최대한 Arbitration(Routing) QoS(Quality of Service)를 보장한다.
다음으로, SNA의 구조(Architecture)에 대하여 설명하도록 한다. SNA는 크게 인터페이스부(Interface Part)와 인터커넥션부(Interconnection Part)의 두개 파트로 나눌 수 있다.
인터페이스부(Interface Part)로는 SNP(SoC Network Protocol)를 사용한다. 또한, 인터커넥션부(Interconnection Part)는 크로스바 라우터(Crossbar Router), 스위치 래퍼(Switch Wrapper) 또는 스위치 브릿지(Switch Bridge), 글로벌 아비터 (Global Arbiter)로 구성되고, 전체 SNA는 3개의 동작모드(Direct Routing, Local Routing, Global Routing)를 갖는다. 로컬/글로벌 라우팅은 크로스바 라우터에서 지원하는 기능이고, 다이렉트 라우팅은 스위치 래퍼에서 지원하는 기능이다.
SNA의 상기 3가지 동작모드는 도 1 에 도시하였다. 도 1 을 참조하여, 각각에 대하여 설명하면 이하와 같다.
도 1 의 번호 1 은 스위치 래퍼(Switch Wrapper)에서 지원하는 다이렉트 라우팅(Direct Routing)을 나타낸다. 하나의 스위치 래퍼는 하나의 같은 방향에 마스터/슬레이브의 IP를 N개씩 가질 수 있다. 만약, 어떤 방향의 마스터가 자신과 같은 스위치 래퍼에 연결되어 있는 어떤 슬레이브와의 통신을 원할 경우, 크로스바 라우터(Crossbar Router)를 통해서 별도의 라우팅을 받지 않고 스위치 래퍼 내부에서 연결되는 것을 다이렉트 라우팅이라 한다.
또한, 도 1 의 번호 2 는 로컬 라우팅(Local Routing)을 나타낸다. 로컬 라우팅은 하나의 크로스바 라우터 내에서 크로스바 스위치 컨트롤러(Crossbar Switch Controller)의 라우팅에 따라 연결되는 방법이다. IP가 라우팅 리퀘스트를 하면 크로스바 스위치 컨트롤러 내부의 프라이어리티 스킴(Priority Scheme)에 따라 서비스 순서를 선택받게 된다. 크로스바 스위치 컨트롤러의 세부적인 내부동작에 대해서는 이하에서 설명하도록 한다.
따라서, 라우팅된 최종 결과값은 크로스바 스위치 매트릭스(Crossbar Switch Matrix)로 전달되며, 전달된 값에 의해서 크로스바 스위치 매트릭스 내부에 적절한 경로가 형성된다. 이에 따라, 형성된 경로를 통해 IP 간의 연결성을 보장하게 된다. 로컬 라우팅의 아비트레이션 잠복기(Arbitration Latency)는 1 사이클이다.
글로벌 라우팅(Global Routing)은 도 1 의 번호 3 에 나타나 있다. 글로벌 라우팅은 로컬 라우팅과 경로를 형성하는 원리는 거의 유사한데, 가장 큰 차이점은 라우팅 값을 참조하는 곳이 크로스바 스위치 컨트롤러의 내부가 아니라 글로벌 아비터(Global Arbiter)라는 점이다. IP가 라우팅 리퀘스트했을 때 로컬 라우팅을 지원할 수 없는 데스티네이션(Destination)일 경우 글로벌 아비터(Global Arbiter)에 글로벌 라우팅 리퀘스트(Global Routing Request)를 하고, 이때 글로벌 라우터로부터 글로벌 라우팅 값을 받는다. 이 값은 리퀘스트를 한 라우터와 IP가 연결되기 위해서 거쳐야 하는 모든 라우터가 동시에 받아서 동시에 라우팅을 하게 된다. 만약 라우팅에 실패했을 경우 다른 경로 정보(Path Information)를 글로벌 아비터(Global Arbiter)에 요구하게 되고, 글로벌 라우팅을 다시 수행하게 된다. 글로벌 라우팅의 아비트레이션 잠복기(Arbitration Latency)는 3 사이클 이내이다.
도 2 는 크로스바 라우터(Crossbar Router)의 개념적인 구조도이다. 도 2 에 도시한 바와 같이, 크로스바 라우터(XR)는 크로스바 스위치 컨트롤러(XSC)와 크로스바 스위치 매트릭스(XSM), 두개의 기능 모듈(Function Module)로 구성된다.
크로스바 라우터는 각 4 방향에 1개 이상의 채널을 갖도록 설계할 수 있으므로 통신채널을 증가시킬 수 있는 확장성을 가지고 있다. 그러나, 현재의 공정 기술로 현실적으로 사용가능한 방향당 채널수는 2개 또는 3개가 적당하다. 따라서, 하나의 크로스바 라우터는 8개 또는 12개의 채널을 갖게 된다. 이하에서는 8개의 채널을 갖는 크로스바 라우터를 기준으로 설명하도록 한다. 이러한 크로스바 라우터는 서로 연결되어 SOC 버스를 확장할 수 있는 구조를 가지며, 연결 방법에 따라 다양한 각 특성이 변화하므로 목적하는 시스템이 요구하는 특성에 맞게 구성할 수 있다.
크로스바 라우터는 각 8 방향으로부터 리퀘스트와 함께 소스/데스티네이션 정보를 수신한다. 수신된 정보는 먼저 크로스바 스위치 컨트롤러로 입력되며 크로스바 스위치 컨트롤러 내부의 정해진 프라이어리티 스킴(Priority Scheme)에 따라서 서비스를 받을 수 있는 순서가 정해진다. 수신된 소스/데스티네이션 정보를 이용해서 크로스바 스위치 컨트롤러 내부의 LUT 값을 참조하여 로컬/글로벌 라우팅을 결정하게 되며, 결정된 라우팅 결과에 따라 크로스바 스위치 매트릭스에 특정값을 전달한다. 라우팅 결과를 전달받은 크로스바 스위치 매트릭스는 그 값에 따라 라우팅 경로(Routing Path)를 구성하는 것으로 모든 임무는 끝나며 그 외의 특별한 동작은 하지 않는다. 크로스바 스위치 매트릭스는 동시 최대 4 방향의 연결을 지원할 수 있으므로 버스 대역폭(Bus Bandwidth)을 극대화할 수 있다. 크로스바 스위치 매트릭스로 입력되는 시그널(Signal)은 SNP에서 선언된 시그널 모두이며, 크로스바 스위치 컨트롤러로 입력되는 시그널은 데이터를 제외한 대부분이 된다.
도 3 은 크로스바 라우터의 각 방향성에 대한 값을 나타낸 도이다. 도 3 에 도시한 바와 같이, Left 방향이 가장 우선순위가 높게 설정되었으며, 각 방향에서 작은 값을 가지는 부분이 우선순위가 더 높게 정해진다. 이러한 우선순위는 크로스바 라우터를 생성할 때 프로그램을 통해 정할 수 있다. 따라서, 어떤 방향에서 버스 리퀘스트(Bus Request)가 되었는지에 따라 크로스바 스위치 컨트롤러에서 프라이어리티가 정해지게 된다. 또한, 방향성의 정해진 값을 이용해서 최종 라우팅이 결정된다. 즉, LUT 내부에는 각 방향성이 선택되어지기 위해서 각 방향성을 나타내는 이진(Binary) 값을 포함하게 된다. LUT 값은 사용자가 직접 채우 는 것이 아니라 사용자의 연결에 따라서 자동으로 생성되는 부분이다. 따라서, IP를 어떤 방향에 배치시키는지에 따라 전체 시스템의 성능은 다소 다를 수 있다. 설계자는 이점을 유의하여 높은 프라이어리티가 요구되는 CPU 또는 DSP와 같은 IP 모듈을 프라이어리티가 높은 부분에 위치시키며, I/O 모듈과 같이 낮은 프라이어리티를 필요로 하는 경우에는 프라이어리티가 상대적으로 낮은 부분에 위치시킴으로써 SNA를 보다 효율적으로 사용할 수 있게 된다.
도 4 는 글로벌 아비터(Global Arbiter)가 요구되는 확장된 SNA 구조도로서, 둘 이상의 크로스바 라우터를 사용할 때 글로벌 아비터(Global Arbiter)를 필요로 하는 예를 도시하였다.
글로벌 아비터(Global Arbiter)는 글로벌 라우팅(Global Routing)을 지원하기 위해 반드시 필요한 모듈이며, 글로벌 모듈(Global Module) 역시 각 라우터의 프라이어리티에 따라 서비스 순서가 정해진다. 따라서, 상기한 바와 같이 CPU 또는 DSP와 같은 높은 프라이어리티를 요구하는 모듈은 보다 높은 프라이어리티를 가지는 크로스바 라우터에 배치하는 것이 글로벌 라우팅 서비스를 받을 때 더 유리하게 된다.
도 5 는 크로스바 스위치 컨트롤러(Crossbar Switch Controller)의 인터페이스를 나타낸 도이다. 도 5 에서 REQ_xx는 크로스바 라우터의 8 방향에서 버스 리퀘스트(Bus Request)를 하기 위해서 IP로부터 입력되는 신호로써 각 REQ_xx는 크로 스바 스위치 컨트롤러 내부에서 우선순위가 정해진다. 크로스바 스위치 컨트롤러는 로컬 라우팅과 글로벌 라우팅의 두 가지 동작모드를 가진다.
먼저, 로컬 라우팅은 단일 크로스바 라우터 내에서 이루어지는 라우팅 방법으로 1 사이클의 잠복기(Latency)를 갖는다. 단, 다이렉트 라우팅은 로컬 라우팅에서 제외된다. 로컬 라우팅은 IP로부터 받은 리퀘스트(Request) 외의 소스 ID(ID_xx)/데스티네이션 어드레스(ADDR_xx) 정보로써 로컬인지 글로벌인지를 구분한다. 즉, 리퀘스트된 데스티네이션 어드레스(Destination Address)가 현재 크로스바 라우터 내에 존재하는 것이면 로컬 라우팅을 시도하게 된다.
다음으로, 글로벌 라우팅은 현재의 크로스바 라우터에 존재하지 않는 데스티네이션 어드레스(Destination Address)를 수신했을 때, 글로벌 아비터(Global Arbiter)에 리퀘스트(REQ_GA)와 함께 데스티네이션 정보(Destination Information)를 보냄으로써 그랜트(Grant, GNT_GA) 시그널/라우팅 밸류(LUT_VALUE)를 수신하고, 이 정보를 이용하여 각 크로스바 라우터는 글로벌 라우팅을 진행하게 된다. 만일 라우팅이 실패(Fail)하였을 때에는 라우팅 응답(Routing Response, RESP_xx)을 전송함으로써 글로벌 아비터(Global Arbiter)로부터 또 다른 라우팅 경로 정보 (Routing Path Information, LUT_VALUE)를 수신한다.
도 6 은 크로스바 라우터의 크로스바 스위치 컨트롤러의 내부 구조도이다. 도 6 에 도시한 바와 같이, 크로스바 스위치 컨트롤러는 프라이어리티 MUX, 로컬 LUT, 어드레스 컨버터(Address Converter), 리퀘스터(Requester) 및 라우터의 5가 지 기능 블록(Functional Block)으로 구성된다.
프라이어리티 MUX는 8 방향에서 수신되는 리퀘스트를 프라이어리티 내부의 프라이어리티 스킴(Priority Scheme)에 따라 적절하게 선택한다. 프라이어리티 스킴은 프라이어리티 값을 가지고 판단하는데, 이 값은 사용자가 지정할 수 있다. IP1이 IP2 보다 프라이어리티가 높다고 가정할 때, 항상 IP1과 같이 프라이어리티가 높은 IP가 버스 리퀘스트(Bus Request)를 하면 보다 낮은 프라이어리티 값을 가지는 IP는 항상 버스 서비스를 받을 수 없게 되므로 아비트레이션 스타베이션(Arbitration Starvation)이 발생하게 된다.
따라서, 이러한 문제점을 보완하기 위하여 Priority_Control(PC) 시그널을 이용하여 유연성있는 프라이어리티 스킴(Priority Scheme)을 실행하게 된다. 예를 들어, IP1과 같은 높은 프라이어리티 값을 가지는 IP가 서비스를 받은 후 연속적으로 서비스를 리퀘스트했을 경우, 이것을 방지하는 역할을 Priority_Control 시그널이 수행하게 된다. 즉, 적어도 하나 이상의 보다 낮은 프라이어리티의 IP가 서비스를 요청했을 때에는 적어도 하나 이상의 보다 낮은 프라이어리티의 IP가 서비스를 받아야만 이전에 서비스를 받았던 높은 프라이어리티를 갖는 IP가 서비스를 받을 수 있게 된다.
상기한 바와 같이 구체적인 프라이어리티 스킴은 SNA를 구성할 때 별도로 프로그램 가능하다.
프라이어리티 MUX에서 선택된 IP 정보(소스 ID/데스티네이션 어드레스) 중 데스티네이션 어드레스는 어드레스 컨버터(Address Converter)를 거쳐 데스티네이 션 ID로 변환된다. 데스티네이션 ID로 변환되는 과정이 필요한 이유는, 어드레스 값 자체를 전달할 경우, 전달되는 시그널이 보통 32 비트 이상이 되기 때문에 내부 라우팅 와이어(Routing Wire) 수를 증가시키는 요인이 되기 때문이다.
데스티네이션 ID로 변환된 정보와 소스 ID 정보는 로컬 LUT로 입력되어 로컬 라우팅이 가능한 로컬 라우팅 정보를 리퀘스터(Requester)/라우터 블록(Router Block)으로 값이 전달된다. 이때, 전달되는 값으로는 상기한 크로스바 라우터의 각 방향성을 나타내는 값(8 채널 크로스바 라우터인 경우 6 비트)이 전달된다.
리퀘스터는 로컬 LUT에 존재하지 않는 라우팅 리퀘스트라고 판단하면 글로벌 아비터(Global Arbiter)에 글로벌 라우팅 리퀘스트(GR_REQ)를 하며, 동시에 어드레스 컨버터(Address Converter)를 통해서 변환된 데스티네이션 ID와 소스 ID(GR_ID, 8 비트)를 전달한다. 또한, 리퀘스터(Requester)가 리퀘스트한 후 글로벌 아비터 (Global Arbiter) 내의 정해진 프라이어리티 스킴(Priority Scheme)에 따라서 서비스를 받게 되며, 이때 글로벌 라우팅 정보(ICR)을 받는다.
라우터 블록(Router Block)은 로컬/글로벌 라우팅을 지원하며, 로컬 라우팅은 로컬 LUT 값에 따르고 글로벌 라우팅은 ICR 값을 따른다. 로컬 라우팅과 글로벌 라우팅 사이에 충돌이 발생하면 사용자가 정한 규칙에 따라 프라이어리티가 높은 라우팅이 이루어지고, 나머지 라우팅은 실패하게 되어 재시도를 해야 한다. 사용자의 규칙이 없는 경우에는 로컬 라우팅이 프라이어리티가 높기 때문에, 로컬 라우팅이 이루어지고 있는 중간에 글로벌 라우팅 정보가 수신되면 무시된다. 즉, RESP_xx 값을 통해서 리퀘스트 실패(Request Fail)를 글로벌 아비터(Global Arbiter)에 알린다.
라우팅이 성공적으로 이루어지면 적절한 라우팅 결과 값(SC)이 크로스바 스위치 매트릭스로 전달되며, 이 값에 따라 크로스바 스위치 매트릭스 내에 라우팅 경로가 이루어지게 된다. 라우팅 경로가 구성되면 이때부터 IP 간의 통신이 시작된다.
도 7 은 크로스바 스위치 매트릭스(XSM)의 인터페이스를 나타낸 도이다. 크로스바 스위치 매트릭스는 실제 시그널이 전달되는 채널의 집합체로써, 최대 4 방향의 연결성을 지원함으로써 버스 대역폭(Bus Bandwidth)을 극대화하는 가장 중요한 모듈이다. 크로스바 스위치 매트릭스를 통해서 SNA의 모든 시그널이 전달되며, 이것을 통해서 IP 간의 통신이 이루어진다. 크로스바 스위치 매트릭스는 채널 그 자체이기 때문에 이외의 특별한 동작은 없다.
도 8 은 래퍼(Wrapper), 즉 스위치 래퍼(Switch Wrapper)의 인터페이스를 나타낸 도이다. 스위치 래퍼(Switch Wrapper)는 IP와 크로스바 라우터를 연결하는 모듈로써, IP가 어떤 인터페이스를 가지냐에 따라 IP와 결합되는 부분의 인터페이스는 변경이 가능하다. 크로스바 라우터와 연결되는 인터커넥션부는 SNP의 인터페이스를 가진다. 또한, IP는 AMBA AHB와 VSI의 인터페이스 규격과 모두 호환 가능하다.
도 9 는 스위치 래퍼(Switch Wrapper)의 내부 구조도이다. 스위치 래퍼 컨트롤러(Switch Wrapper Controller)에 의해 다이렉트 라우팅(Direct Routing)을 지원할 수 있으며, 이외에 추가적인 여러 로직이 필요하다. 이러한 추가 로직에 의해 REQ/GNT 신호가 생성된다.
도 10 은 상용화된 디지털 카메라의 구조를 개략적으로 나타낸 도이다. 도 10 에 도시한 바와 같이, 디지털 카메라는 ARM 프로세서, DMA, MPEG4 인코더/디코더, SDRAM, 디스플레이, 카메라 인터페이스 등 많은 블록을 포함한다. 또한, 시스템 버스로는 AMBA AHB를 사용한다.
도 11 은 도 10 에 SNA를 적용시킨 구조를 나타낸 도로서, 전체 시스템 성능을 개선하기 위하여 도 10 에 도시한 디지털 카메라 구조에 SNA를 적용시킨 예시도이다. 도 11 에 도시한 각 블록들은 다이렉트/로컬 라우팅 서비스를 받을 수 있으며, 특히 다이렉트 라우팅 서비스를 통해 전체 아비트레이션 잠복기(Arbitration Latency)를 감소시킬 수 있게 된다. 또한, 크로스바 라우터 내부의 크로스바 스위치 매트릭스 블록으로 인해 전체 버스의 이용 효율을 현저하게 개선할 수 있게 된다.
응용례
도 12 는 보다 많은 IP를 효율적으로 수용하기 위하여, 도 10 의 디지털 카메라 구조에 2개의 크로스바 라우터를 적용하여 글로벌 아비터(Global Arbiter)가 사용된 예시도이다. 도 12 에 도시한 바와 같이, 2개 이상의 크로스바 라우터를 사용할 경우, 글로벌 아비터(Global Arbiter)는 필수적으로 사용되는 모듈로써, 글로벌 라우팅시 사용된다. 또한, 필요에 따라 스위치와 크로스바 라우터 간의 연결 외에 스위치 브릿지(Switch Bridge)를 통한 로컬 서브버스(Local Sub-bus)를 연결할 수도 있다. 로컬 서브버스(Local Sub-bus)를 사용할 경우 적은 수의 크로스바 라우터 사용으로 보다 많은 IP를 수용할 수 있게 된다.
도 13 은 4개의 크로스바 라우터를 사용하여 보다 더 확장된 SNA 구조를 나타내는 예시도이다. 도 13 에 도시한 구조에서는 하나의 소스에서 어떤 데스티네이션으로 글로벌 라우팅을 통해 연결할 때 하나 이상의 라우팅 경로가 존재하게 되므로, 첫번째 라우팅 경로로 라우팅을 실패했을 경우 두번째의 또 다른 라우팅 경로를 통해서 라우팅을 시도할 수 있다. 따라서, 라우팅 QoS를 최대한 보장할 수 있게 된다.
도 14 는 보다 적은 수의 크로스바 라우터를 사용하여 많은 IP를 효율적으로 수용할 수 있는 SNA 예시도로서, 5개의 크로스바 라우터를 사용하여 최대 24개의 IP를 수용할 수 있는 SNA의 구조를 나타낸 도이다. 도 14 에 도시한 구조에서는 전체 라우팅 비율 중 글로벌 라우팅 보다 로컬 라우팅의 비율이 월등히 높아야 효 율적인 통신을 할 수 있게 된다. 이는, 만일 글로벌 라우팅의 비율이 로컬 라우팅의 비율 보다 월등히 높을 경우 크로스바 라우터 E는 전체 SNA에서 병목현상을 발생시키기 때문이다.
본 발명에 따른 다중 채널을 제공하는 에스오씨 버스 구조의 효과를 시뮬레이션 결과값 등을 참조하여 설명하면 이하와 같다.
도 15 는 AMBA AHB와 SNA의 시뮬레이션 결과를 나타낸 도로서, 상기한 상용화된 디지털 카메라 구조(AHB)와 그 구조에 SNA를 적용시킨 경우에 대하여 시뮬레이션을 통해서 수행 사이클을 비교한 결과를 나타낸 도이다. 상기 시뮬레이션에는 이하와 같은 가정이 전제되어 있다.
1) 모든 버스트 전송(Burst Transfer)은 16 사이클 동안 수행.
2) 모든 데이터 프로세싱(Data Processing)은 16 사이클 동안 수행.
3) 대기상태(Wait State)는 없다.
4) AHB의 경우 아비트레이션 잠복기(Arbitration Latency)는 1 사이클.
5) 스프리트 전송(Split Transfer)은 없다.
시뮬레이션의 각 프로세스는 이하와 같이 이루어진다.
프로세스 1: CPU는 메모리 #2로부터 인스트럭션(instruction)/데이터를 16 사이클 동안 페치(fetch)/리드(read)한다.
프로세스 2: MPEG 인코더는 카메라 인터페이스로부터 16 버스트(burst) 전송 동안 입력을 받아 그 데이터를 인코딩한 후, 다시 16 버스트(burst) 전송 동안 메모리 #1에 저장한다.
프로세스 3: MPEG 디코더는 메모리 #1로부터 16 버스트(burst) 전송 동안 데이터를 읽어와서 데이터를 디코딩한 후 DMA에 16 버스트(burst) 전송 동안 전달하고, DMA는 받은 데이터를 16 버스트(burst) 전송 동안 디스플레이부(Display Part)로 내보낸다.
도 15 에 도시한 바와 같이, 시뮬레이션의 각 프로세스를 수행하기 위하여 상용화된 디지털 카메라 구조(AHB)는 1377 사이클이 소요된 반면, SNA가 적용된 구조에서는 848 사이클만에 전체 프로세스를 수행하게 된다. 따라서, SNA를 적용함으로써 처리 효율을 현저하게 향상시킬 수 있음을 알 수 있다.
도 16 은 AHB와 SNA구조에서 IP 모듈의 증가와 이에 따른 버스트 트랜잭션 (Burst transaction)의 증가에 따른 전체 수행 사이클의 비교도로서, N 쌍의 마스터/슬레이브가 존재할 때 각 IP끼리 서로 다른 IP와 교대로 순서대로 버스트 전송(Burst Transfer, 16 Cycle)을 수행할 때 소요되는 수행 사이클을 비교한 도이다. 도 16 에서 대기상태(Wait State)는 없는 것으로 가정하였으며, 아비트레이션 잠복기(Arbitration Latency)는 고려되었다. 도 16 에 도시한 바와 같이, 각 IP 모듈이 증가할수록 버스트(Burst) 전송은 (N/2)2씩 증가하게 된다. 따라서, 백본 버스(Backbone Bus)에 SNA를 적용시켜서 설계할 경우 보다 효율적인 버스 구조를 구성할 수 있게 된다.
도 17 은 XC가 각 리퀘스트에 대한 그랜트(Grant)를 처리하는 과정을 보여주는 파형을 나타낸 도로서, 도 12 에 도시한 바와 같이 하나의 GA와 두 개의 XR을 갖는 구조를 시뮬레이션 한 결과를 도시한 도이다. 도 17 에 대하여 설명하면 이하와 같다.
포인트 A에서 CPU, 카메라 인터페이스, MPEG 인코더가 동시에 버스를 사용하기 위해 버스 요청을 한다. CPU와 카메라 인터페이스는 각각 XR A, XR B에 의해 버스 사용 허가를 받았지만(포인트 B), MPEG 인코더는 CPU 보다 우선 순위가 낮기 때문에 버스 사용을 허용받지 못하게 된다. 그러나, MPEG 인코더는 포인트 C에서 버스 사용 허가를 받을 수 있게 된다. 이때, MPEG 인코더가 CPU가 버스 사용 허가를 받고 난 바로 다음 사이클에서 버스 사용 허가를 받지 못하는 이유는, CPU와 MPEG 인코더가 동일한 슬레이브와 통신하기를 원하기 때문이다. 따라서, CPU가 해당 슬레이브와의 모든 작업을 끝낸 이후에 MPEG 인코더가 버스 사용 허가를 받을 수 있게 된다.
포인트 D에서 2개의 버스 요청이 동시에 발생하는데, 포인트 A와 달리 포인트 D에서 CPU와 MPEG 인코더가 서로 다른 슬레이브를 요구하게 된다. 따라서, CPU가 버스 사용 허가를 받고 난 바로 다음 사이클에 MPEG 인코더가 버스 사용 허가를 받을 수 있게 된다.
포인트 F에서는 카메라 인터페이스가 XR B 내에서 단독으로 로컬 라우팅을 요청하여 버스 사용 허가를 받는 것을 볼 수 있다. 또한, 포인트 H에서는 CPU가 단독으로 XR A 내에서 글로벌 버스 사용을 요청하여 버스 사용 허가를 받는데, 2 사이클의 잠복기(Latency) 이후에 버스 사용 허가를 받는 것을 알 수 있다. 도 17 에 도시한 파형은 XR 내부의 동작을 보여주는 것이기 때문에, 로컬 라우팅의 잠복기는 없고 글로벌 라우팅의 잠복기는 2 사이클로 나타나며, IP 입장에서는 로컬 라우팅은 1 사이클, 그리고 글로벌 라우팅은 3 사이클의 잠복기를 갖는다.
도 12 에서 두개의 XR와 하나의 GA를 Xilinx Virtex2 디바이스를 이용하여 합성한 결과는 약 3,000 슬라이스(slice)를 차지하고, 이것은 PCI-X와 거의 같은 크기이다. SW는 약 90 슬라이스를 차지하며 도 10에서 6 개의 SW를 포함하고 있기 때문에 전체 합성 결과는 대략 3,500 슬라이스가 된다. 이는 32-bit RISC processor PARC2 IP core의 73% 정도에 해당되는 크기가 된다. 제안된 SNA는 시스템 성능을 높일 수 있는 다중 채널(Multi-Channel)을 지원하면서 상대적으로 적은 면적을 차지하게 된다.
본 발명의 바람직한 실시례가 특정 용어들을 사용하여 기술되어 왔지만, 그러한 기술은 오로지 설명을 하기 위한 것이며, 다음의 청구범위의 기술적 사상 및 범위로부터 이탈되지 않고서 여러 가지 변경 및 변화가 가해질 수 있는 것으로 이 해되어져야 한다.

Claims (8)

  1. 복수의 IP와 로컬 버스를 포함하는 서브 시스템(sub-system) 및/또는 하나 이상의 IP와 연결되어 데이터 통신을 위해 라우팅을 하는 통신 디바이스에 있어서, 에스앤에이(SNA: SoC on-chip-network Architecture) 구조가 적용되어 다중 채널을 제공하는 에스오씨 버스 구조로서,
    상기 에스앤에이 구조가,
    4N 개의 채널을 지원하고, 상기 각 서브 시스템 및/또는 IP로부터 라우팅 리퀘스트, 소스 ID 및 데스티네이션 어드레스를 포함하는 제 1 리퀘스트 정보를 각기 수신하여, 상기 각 서브 시스템 및/또는 IP에 대한 라우팅을 지원하는 하나 이상의 크로스바 라우터; 및
    상기 크로스바 라우터가,
    상기 각 서브 시스템 및/또는 IP로부터 전송된 상기 제 1 리퀘스트 정보를 수신하여 상기 각 서브 시스템 및/또는 IP의 서비스 순서를 결정하고, 상기 제 1 리퀘스트 정보를 통해 상기 크로스바 라우터의 방향성을 포함하는 로컬 라우팅 정보를 생성 및 전송하는 크로스바 스위치 컨트롤러; 및
    상기 로컬 라우팅 정보에 따라 라우팅 경로를 구성하는 크로스바 스위치 매트릭스를 포함하고,
    상기 각 서브 시스템 및/또는 IP와 상기 각 크로스바 라우터를 연결하는 스위치 래퍼를 포함하고,
    상기 크로스바 라우터를 통한 별도의 라우팅 없이 상기 스위치 래퍼 내부에서 직접 통신 연결되는 다이렉트 라우팅;
    특정한 하나의 크로스바 라우터 내에서 라우팅이 이루어지는 로컬 라우팅; 및
    특정한 하나의 크로스바 라우터 내에 존재하지 않는 데스티네이션 어드레스에 대하여, 복수의 크로스바 라우터 간에 라우팅이 이루어지는 글로벌 라우팅 중 하나 이상의 동작모드를 갖는 것을 특징으로 하는 다중 채널을 제공하는 에스오씨 버스 구조.
  2. 제 1 항에 있어서,
    상기 에스앤에이 구조가,
    상기 크로스바 라우터를 적어도 두개 이상 구비하는 경우,
    특정한 하나의 크로스바 라우터 내에 존재하지 않는 데스티네이션 어드레스를 갖는 상기 라우팅 리퀘스트에 대하여, 복수의 크로스바 라우터 간의 글로벌 라우팅 경로 구성을 위한 상기 각 크로스바 라우터의 방향성을 포함하는 글로벌 라우팅 정보를 전송하여, 상기 글로벌 라우팅을 제공하는 글로벌 아비터를 더 포함하는 것을 특징으로 하는 다중 채널을 제공하는 에스오씨 버스 구조.
  3. 제 2 항에 있어서,
    상기 크로스바 스위치 컨트롤러가,
    상기 각 라우팅 리퀘스트를 수신하고, 각 라우팅 리퀘스트에 대하여 사용자가 설정 가능한 프라이어리티 값을 가지는 프라이어리티 스킴에 의해 상기 각 라우팅 리퀘스트의 서비스 순서를 결정하는 프라이어리티 멀티플렉서(MUX);
    상기 프라이어리티 멀티플렉서에서 선택된 리퀘스트 정보의 상기 데스티네이션 어드레스를 데스티네이션 ID로 변환하는 어드레스 컨버터;
    상기 데스티네이션 어드레스, 상기 데스티네이션 ID 및 상기 소스 ID를 입력받고, 저장된 정보 중 상기 데스티네이션 어드레스가 존재하는 경우 상기 데스티네이션 어드레스로 경로 설정을 하기 위한 상기 크로스바 라우터의 각 방향성을 포함하는 로컬 라우팅 정보를 전송하는 로컬 엘유티(LUT);
    상기 데스티네이션 어드레스가 상기 로컬 엘유티에 존재하지 않는 경우, 글로벌 라우팅을 요청하는 글로벌 라우팅 리퀘스트, 상기 데스티네이션 ID 및 상기 소스 ID를 포함하는 제 2 리퀘스트 정보를 상기 글로벌 아비터로 전송하고, 상기 글로벌 아비터로부터 상기 글로벌 라우팅 정보를 수신하는 리퀘스터; 및
    상기 로컬 엘유티로부터 상기 로컬 라우팅 정보를 수신하여 로컬 라우팅을 수행하고, 상기 리퀘스터로부터 상기 글로벌 라우팅 정보를 수신하여 글로벌 라우팅을 수행하는 라우터 블록을 포함하는 것을 특징으로 하는 다중 채널을 제공하는 에스오씨 버스 구조.
  4. 제 3 항에 있어서,
    상기 글로벌 라우팅 정보를 상기 데스티네이션 어드레스로 라우팅 경로가 설 정되기 위하여 경유해야 하는 모든 크로스바 라우터의 상기 리퀘스터가 동시에 수신하고, 사용자가 정한 소정의 규칙에 따라 각 크로스바 라우터 간의 라우팅 경로를 구성하는 것을 특징으로 하는 다중 채널을 제공하는 에스오씨 버스 구조.
  5. 제 4 항에 있어서,
    상기 라우팅 경로 구성이 실패한 경우,
    상기 리퀘스터가 상기 글로벌 아비터로 제 2 리퀘스트 정보를 전송하여, 기수신한 글로벌 라우팅 정보와 상이한 글로벌 라우팅 정보를 수신하는 것을 특징으로 하는 다중 채널을 제공하는 에스오씨 버스 구조.
  6. 제 1 항에 있어서,
    상기 크로스바 스위치 매트릭스가,
    동시 최대 4 방향의 연결을 지원하는 것을 특징으로 하는 다중 채널을 제공하는 에스오씨 버스 구조.
  7. 제 1 항에 있어서,
    상기 로컬 라우팅과 상기 글로벌 라우팅의 프라이어리티가 사용자에 의해 설정되고,
    상기 로컬 라우팅과 상기 글로벌 라우팅 사이에 충돌이 발생할 경우 프라이어리티가 낮은 라우팅 리퀘스트에 대하여 실패 신호를 전송하는 것을 특징으로 하 는 다중 채널을 제공하는 에스오씨 버스 구조.
  8. 제 2 항에 있어서,
    상기 에스앤에이 구조가,
    상기 4N 개 채널 중 3N 개의 채널이 상기 각 서브 시스템 및/또는 IP와의 통신 연결을 위해 각기 할당된 제 1 크로스바 라우터;
    상기 4N 개 채널 중 3N 개의 채널이 상기 각 서브 시스템 및/또는 IP와의 통신 연결을 위해 각기 할당된 제 2 크로스바 라우터;
    상기 4N 개 채널 중 3N 개의 채널이 상기 각 서브 시스템 및/또는 IP와의 통신 연결을 위해 각기 할당된 제 3 크로스바 라우터;
    상기 4N 개 채널 중 3N 개의 채널이 상기 각 서브 시스템 및/또는 IP와의 통신 연결을 위해 각기 할당된 제 4 크로스바 라우터;
    상기 4N 개 채널이, 각 N 개의 채널마다 상기 제 1 크로스바 라우터, 상기 제 2 크로스바 라우터, 상기 제 3 크로스바 라우터 및 상기 제 4 크로스바 라우터와의 통신 연결을 위해 각기 할당된 제 5 크로스바 라우터; 및
    상기 제 5 크로스바 라우터와 통신 연결된 상기 글로벌 아비터를 포함하는 것을 특징으로 하는 다중 채널을 제공하는 에스오씨 버스 구조.
KR1020040044896A 2004-06-17 2004-06-17 다중 채널을 제공하는 에스오씨 버스 구조 KR100581196B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040044896A KR100581196B1 (ko) 2004-06-17 2004-06-17 다중 채널을 제공하는 에스오씨 버스 구조

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040044896A KR100581196B1 (ko) 2004-06-17 2004-06-17 다중 채널을 제공하는 에스오씨 버스 구조

Publications (2)

Publication Number Publication Date
KR20050119798A KR20050119798A (ko) 2005-12-22
KR100581196B1 true KR100581196B1 (ko) 2006-05-17

Family

ID=37292405

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040044896A KR100581196B1 (ko) 2004-06-17 2004-06-17 다중 채널을 제공하는 에스오씨 버스 구조

Country Status (1)

Country Link
KR (1) KR100581196B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100662471B1 (ko) * 2005-10-11 2007-01-02 엘지전자 주식회사 시스템 온 칩 구조 및 데이터 전송 방법
KR100817022B1 (ko) 2006-11-15 2008-03-26 한국전자통신연구원 스타-메쉬 혼합형 구조를 갖는 온칩 네트워크 기반의동영상 디코더
KR101028806B1 (ko) * 2009-12-18 2011-04-12 숭실대학교산학협력단 다양한 통신 방식에 적용 가능한 에스오씨 네트워크의 통신 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030056567A (ko) * 2001-12-28 2003-07-04 한국전자통신연구원 다중 프로세서와 주변 블록을 갖는 시스템 칩을 위한 버스구조

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030056567A (ko) * 2001-12-28 2003-07-04 한국전자통신연구원 다중 프로세서와 주변 블록을 갖는 시스템 칩을 위한 버스구조

Also Published As

Publication number Publication date
KR20050119798A (ko) 2005-12-22

Similar Documents

Publication Publication Date Title
KR100812225B1 (ko) 멀티프로세서 SoC 플랫폼에 적합한 크로스바 스위치구조
US6954821B2 (en) Crossbar switch that supports a multi-port slave device and method of operation
CN110858189A (zh) 用于高带宽存储器的可缩放芯片上网络
US8285912B2 (en) Communication infrastructure for a data processing apparatus and a method of operation of such a communication infrastructure
US7721038B2 (en) System on chip (SOC) system for a multimedia system enabling high-speed transfer of multimedia data and fast control of peripheral devices
KR101720134B1 (ko) 버스 브리지 장치
US20020056030A1 (en) Shared program memory for use in multicore DSP devices
US9122802B2 (en) Interconnect, bus system with interconnect and bus system operating method
US20080276021A1 (en) Data transfer control apparatus
EP1653370B1 (en) Bus controller
KR100581196B1 (ko) 다중 채널을 제공하는 에스오씨 버스 구조
JP2007199859A (ja) データ転送システム
Lee et al. A high performance SoC on-chip-bus with multiple channels and routing processes
JP5028817B2 (ja) バスシステム
CN117806999A (zh) 一种位宽和通道可调的片上总线
KR20020097478A (ko) 다중 채널을 가진 고속 직접 메모리 억세스 컨트롤러
US8407385B2 (en) Bus arbitration system, a method of connecting devices of an IC employing a bus system and an IC
KR940010807B1 (ko) 정보처리장치용 버스시스템 및 정보처리 버스시스템 컨트롤러용 ic디바이스
JP2002342265A (ja) 多重バスを用いたコンピュータシステム
JP4477877B2 (ja) 通信バスシステム
Chang et al. Design a switch wrapper for SNA on-chip-network
JPH08171531A (ja) アクセス競合制御方法
Chang et al. A switch wrapper design for SNA on-chip-network
KR20180063933A (ko) 시스템 칩 설계를 위한 효율적인 온칩버스 구조
JP2005276136A (ja) バス装置

Legal Events

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

Payment date: 20130405

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140318

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee