KR100690557B1 - 시스템 온 칩 디자인을 위한 컴포넌트로서의 독립프로세서 서브시스템 - Google Patents

시스템 온 칩 디자인을 위한 컴포넌트로서의 독립프로세서 서브시스템 Download PDF

Info

Publication number
KR100690557B1
KR100690557B1 KR1020040053507A KR20040053507A KR100690557B1 KR 100690557 B1 KR100690557 B1 KR 100690557B1 KR 1020040053507 A KR1020040053507 A KR 1020040053507A KR 20040053507 A KR20040053507 A KR 20040053507A KR 100690557 B1 KR100690557 B1 KR 100690557B1
Authority
KR
South Korea
Prior art keywords
soc
processor
subsystem
microprocessor
network
Prior art date
Application number
KR1020040053507A
Other languages
English (en)
Other versions
KR20050013076A (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 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20050013076A publication Critical patent/KR20050013076A/ko
Application granted granted Critical
Publication of KR100690557B1 publication Critical patent/KR100690557B1/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
    • 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
    • G06F15/7828Architectures of general purpose stored program computers comprising a single central processing unit without memory
    • G06F15/7832Architectures of general purpose stored program computers comprising a single central processing unit without memory on one IC chip (single chip microprocessors)
    • 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/60Software-defined switches
    • H04L49/602Multilayer or multiprotocol switching, e.g. IP switching

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)
  • Microcomputers (AREA)

Abstract

각각의 다중 프로세서와 연관된 로컬 메모리를 갖는 복수의 다중 프로세서들을 포함함으로써 프로세서 클러스터를 형성하는 단일 독립 멀티프로세서 서브시스템 코어(multiprocessor subsystem core), 및 SoC 집적 회로(IC) 내의 각각의 프로세서 클러스터를 접속시키는 파이버 채널 스위치 수단(switch fabric means)을 구비하는 SoC(System On Chip) 컴포넌트에 관해 기술한다. 단일 SoC 독립 멀티프로세서 서브시스템 코어는 DSP, 보조프로세서(coprocessor), 혼성 ASIC(Hybrid ASIC) 또는 네트워크 프로세싱 구조(network processing arrangement)로 구성되는 경우, SoC 장치들을 위한 멀티 스레딩 작업 프로세싱을 수행할 수 있다. 부가적으로, 파이버 채널 스위치 수단은 SoC 로컬 시스템 버스 장치를 독립 멀티프로세서 서브시스템 코어를 갖는 SoC 프로세서 컴포넌트들과 상호 접속시킨다.
시스템 온 칩, SoC, 멀티프로세서, 프로세서 클러스터, 파이버 채널 스위치, 서브시스템, 멀티 스레딩

Description

시스템 온 칩 디자인을 위한 컴포넌트로서의 독립 프로세서 서브시스템{SELF-CONTAINED PROCESSOR SUBSYSTEM AS COMPONENT FOR SYSTEM-ON-CHIP DESIGN}
도 1 내지 도 3은 종래 기술에 따른, 다중 프로세싱 코어들, 메모리 및 인터페이스들을 포함하는 네트워크 프로세서 칩(Network Processor chip)의 다양한 종래 기술 구현예를 도시하는 도면.
도 4는 본 발명의 바람직한 실시예에서 사용되는 예시적인 프로세서 코어를 도시하는 도면.
도 5는 본 발명의 바람직한 실시예에 따른, 기능을 구현하는 멀티프로세서 서브시스템의 예시적인 개요를 도시하는 도면.
도 6은 본 발명의 제2 실시예에 따른, 도 4b의 SoC 서브시스템을 사용하는 네트워크 부착 프로세서(Network Attached Processor)의 또 다른 실시예를 도시하는 도면.
도 7은 본 발명의 또 다른 실시예에 따른, 프로세서 기반 서브시스템을 사용하는 SoC를 도시하는 도면.
도 8은 본 발명의 추가적인 실시예에 따른, SoC 멀티프로세서 서브시스템을 도시하는 도면.
도 9는 도 8의 시스템에서 제공되는 브릿지 컴포넌트의 가능한 구현을 도시 하는 도면.
도 10은 본 발명에 따른 독립 멀티프로세서 코어(150')를 구현하는 하나의 예시적인 네트워크 프로세서 구조(Network Processor arrangement; 200)를 도시하는 도면.
< 도면의 주요 부분에 대한 부호 설명 >
125 : 프로세서 코어
126 : 레지스터 파일
127 : 산술 논리 연산 회로
128 : 명령어 순서기(instruction sequencer)
130 : 로컬 SRAM
131 : I-캐시
160 : SRAM 뱅크
165 : 외부 메모리 인터페이스
175 : 파이버 채널/Gb 이더넷 하드웨어 보조 장치
185 : 인피니밴드 하드웨어 보조 장치
본 발명은 네트워크 프로세서 장치에 관한 것으로, 특히, SoC 디자인을 위한 컴포넌트로서 독립 프로세서 서브시스템(self-contained processor subsystem)을 제공함으로써 복잡한 SoC 구현의 디자인을 단순화하기 위한 시스템 및 방법에 관한 것이다.
SoC를 조립하는 현재의 최신 기술은 설계자로 하여금 a) 마이크로프로세서, 메모리, 기본 I/O 매크로(예컨대, 프레이머(framer))와 같은 기본 컴포넌트들을 모으고; b) 상이한 장치들 간의 버스 경쟁을 모델링하며, 적절한 버스 구조를 선택하며; c) SoC 하드웨어를 디자인하는 동안 모든 컴포넌트들을 통합하고; d) 커스텀 소프트웨어를 사용하여 모든 컴포넌트를 통합할 것을 특히 요구한다.
그러나, 최신 SoC 디자인 방법론에 있어서, 노동 집약적이고, 에러 발생이 쉬우며, 특정 애플리케이션 도메인에 친숙한 고도로 숙련된 디자이너가 필요하고, 공용 시스템 버스 상에서 버스 모델링 및/또는 경쟁을 위한 높은 모델링 오버헤드가 요구되며, (TCP/IP, 인피니밴드(Infiniband), 파이버 채널(Fibre Channel), iSCSI 및 다른 표준화 프로토콜들과 같은) 기본 서비스들을 제공하기 위한 하드웨어 및 소프트웨어 통합이 요구된다는 점을 포함하는(이에 제한되지 않음) 고유한 문제점들이 존재한다. 성공적인 SoC 통합 디자인 접근법의 예가 Motorola, Inc로부터 이용 가능한 MPC8560 통합 통신 프로세서(Integrated Communications Processor)에 구현되어 있다.
하나의 카드 또는 보드 상에 다수의 서브 시스템들이 통합되는 SoC 디자인으로의 다른 접근법들은, 시스템 비용, 실패 가능성의 증가 및 높은 상호 접속 다층 보드(high-interconnection multi-layer boards) 비용을 유발하는 컴포넌트 수로 인한 문제를 나타낸다.
도 1 및 도 2는 각각 다수의 프로세싱 코어(20), 로컬 메모리, 데이터 메모리, 링크 메모리, CPU, 버퍼 및 PHY(network physical layer) 인터페이스를 포함하는 네트워크 프로세서 칩(10; 도 1) 및 (15; 도 2)의 개별적인 종래 기술 구현예를 도시한다. 이들은 공용 매크로를 통해 "개방" 시스템 버스에 접속하지 않는 자립형(stand-alone) NPU(Network Processor Unit)들이다.
도 3은 프로세서(40), 시스템 버스, 캐시 및 (PCI(Peripheral Components Interconnection bus) 브릿지와 같은 "브릿지"를 통해 오늘날의 시스템에서 통상적으로 사용되는 로컬 프로세서 버스로 접속되는) 로컬 메모리를 포함하는 네트워크 프로세서 칩(30)의 종래 기술 구현예를 도시한다.
컴포넌트로서의 멀티프로세서 서브시스템, 및 독립적인 SoC 컴포넌트로서의 구현을 위한 사전 정의된 기능을 갖는 독립 멀티프로세서 서브시스템을 더 갖는 SoC 집적 회로를 제공하고, 또한 멀티스레딩 기능을 제공하는 것이 매우 바람직하다.
SoC 프로세서 및 컴포넌트 디자인의 태양들을 기술하는 관련 참조들은 다음을 포함한다.
미국 특허 번호 6,331,977은 칩 내부의 여러 기능적인 I/O들과 다수의 외부 접속 핀들 사이에 크로스바 스위치를 포함하는 SoC를 기술하는데, 핀의 수는 내부 I/O의 수보다 적다.
미국 특허 번호 6,262,594는 SoC의 패드 집합의 구성 가능한 사용을 위한 크로스바 스위치를 구현하는 장치 및 방법을 기술한다.
미국 특허 번호 6,038,630은 다수의 데이터 버스들을 통해 외부 구조들에 액세스하는 다수의 기능적 유닛들(functional units)을 갖는 집적 시스템을 위하여, 공유 액세스 제어 장치(shared access control device)를 제공하기 위한 크로스바 스위치를 구현하는 장치 및 방법을 기술한다.
미국 특허 출원 번호 US2002/0184419는 공용 버스 시스템을 사용하는 SoC를 위하여 상이한 컴포넌트들의 사용을 가능하게 하는 ASIC을 기술하고, 공용 버스와의 호환성을 달성하기 위하여 상이한 속도 및 데이터 폭(data width)을 갖는 기능적 유닛을 위한 랩퍼(wrapper)를 기술한다.
미국 특허 출원 번호 US2002/0176402는 SoC 상의 기능적 유닛들을 링크시키기 위한 8각 상호 접속 네트워크(octagonal interconnection network)를 기술한다. 상호 접속 네트워크 상의 기능적 유닛들은 환형으로 구성되고, 불완전한 컴포넌트들(halfway components)을 연결시키는 여러 크로싱 데이터 링크들(crossing data links)을 사용한다.
미국 특허 출원 번호 US2001/0042147은 SoC 상호 접속을 위한 시스템 자원 라우터를 기술하는데, 이는 각각 데이터 캐시(D-캐시) 및 명령어(I-캐시)와의 접속을 갖는 두 개의 채널 소켓을 구비한다. 또한, 상호 접속을 제공하기 위하여, 외부 데이터 전송 개시자(external data transfer initiators), 두 개의 내부 M-채널 버스들, 및 M-채널 제어기가 포함된다.
미국 특허 출원 번호 US2002/0172197은 칩에 포함된 크로스바 스위치를 통해 점 대 점(point to point) 방식으로 다수의 전송 및 수신 장치들을 접속시키는 통 신 시스템을 기술한다.
미국 특허 출원 번호 US2001/0047465는 전송들을 개별 전송 작업들로 분할함으로써 전체 게이트를 최소화하고, 각각의 전송 작업에 대한 계산 복잡도 및 회로 당 MIPS의 수에 기초한 계산 복잡도를 판단하기 위하여, 통신 시스템(통상적으로 SoC 또는 ASIC)을 위한 확장 가능한 아키텍쳐를 제공하는, 본 발명의 여러 변형물을 기술한다.
2003년 9월 26일 내지 27일, 뉴욕, 로체스터의 "Proceedings of ASIC2003" 회의에서의, A. Brinkmann, J.C. Niemann, I. Hehemann, D. Langen, M. Porrmann 및 U. Ruckert에 의한 "차세대 SoC를 위한 온-칩 상호 접속(On-Chip Interconnects for Next Generation System-on-Chips)"이라는 문서를 참조하면, 패킷 네트워크 통신을 가능하게 하기 위하여 프로세서 셀들을 접속시키기 위해 활성 스위치 박스를 이용하는 SoC 아키텍쳐에 관해 기술되어 있다. 이 문헌은 멀티스레딩 기능을 갖는 프로세서 코어에 대해 언급 또는 기술하지 않는다.
2001년 9월 4일 내지 6일, 폴란드, 바르샤바의 "Proceedings of Euromicro Symposium on Digital System Design(DSS'01)" 회의에서의, Kyeong Keol Ryu, Eung Shin 및 Vincent J. Mooney에 의한 "다섯 개의 상이한 멀티프로세서 SoC 버스 아키텍쳐들의 비교(A Comparision of Five Different Multiprocessor SoC Bus Architectures)"라는 문서를 참조하면, GBIA(Global Bus I Architecture), GBIIA(Global Bus II Architecture), BFBA(Bi-FIFO Bus Architecture), CSBA(Crossbar Switch Bus Architecture) 및 CCBA(CoreConnect Bus Architecture) 를 포함하는 멀티프로세서 SoC 버스 아키텍쳐에 관해 기술되어 있다.
종래 기술 구성의 어떠한 것도, 프로세서 성능 및 추가적인 SoC, ASIC, NP 또는 DSP 통합을 향상시키기 위하여, 멀티스레딩 구성에서 각각 SRAM 또는 eDRAM을 로컬로 접속시키는 다수의 서브-프로세서들(스레드 군들)을 구비하는 프로세서 코어를 제시하지 않는다.
본 발명의 목적은, SoC 집적 회로에서 멀티스레딩 동작을 수행할 수 있도록 특별히 프로그램된 컴포넌트로서 기능할 수 있는 독립 멀티프로세서 서브시스템을 제공하는 것이다.
본 발명에서, 독립 멀티프로세서(multiprocessor; MP) 컴포넌트는 서브-프로세서 코어들을 포함하는데, 각각의 서브-프로세서 코어들은 SoC 디자인에서 컴포넌트로서 멀티-스레딩 프로세서 코어를 가능하도록 하기 위하여 로컬 메모리(예컨대, SRAM)를 포함한다. 또한, SoC 집적 회로의 단일 로컬 프로세서 버스로 접속되는 크로스바 스위치(또는 유사한 타입의 스위치 디자인)와 같은 로컬 상호 접속 매체(local interconnect medium)가 독립 멀티프로세서 컴포넌트에 포함된다. SoC IC는 고도 마이크로프로세서(advanced microprocessor), DSP(Digital Signal Processor), 보조프로세서, 혼성 ASIC(Hybrid ASIC), 네트워크 프로세서(NP) 또는 다른 유사 프로세서 배열 ASIC으로서 구성될 수 있다. 독립 멀티프로세서 서브시스템 컴포넌트를 갖는 이러한 SoC 집적 회로는 멀티스레딩 기능을 제공함으로써, 하나의 컨텍스트(context)로부터의 데이터 및 프로그램 코드가 다른 컨텍스트와 독립적으로 유지되도록 하여, 서브-프로세서 코어(스레드 유닛)가 다른 스레드들과 독립적으로 동작하게 된다. 또한, 크로스바 스위치로 인해 잘 정의된 하드웨어 및 소프트웨어 인터페이스들을 통해 칩의 나머지와의 통신이 가능해진다.
발명의 다른 형태에 있어서, SoC ASIC 디자인에서의 컴포넌트로서 독립 멀티프로세서(MP) 컴포넌트는, 특정한 사용을 위한 적절한 소프트웨어를 갖는 레디 메이드(ready made) 멀티-스레딩 프로세서 코어로서 이용 가능하다. MP 컴포넌트는, 로컬 상호 접속 매체를 (코어 접속-PLB 버스와 같은) 표준화 ASIC 방법론 버스 또는 임의의 다른 온 칩 버스나 버스 프로토콜과 연결시키는 PLB(Processor Local Bus) 어댑터와 같은 표준화 인터페이스를 사용하여 다른 컴포넌트들로 접속된다.
본 발명으로 멀티-스레딩 동작을 제공하는 독립 멀티프로세서(MP) 컴포넌트는 프로세서 속도를 향상시킬뿐만 아니라, 오프 칩 액세스 시간을 감소시키고, 캐시 지연(cache latency)을 대폭 감소시키며, 명령어 및 데이터 패킷 프로세싱을 향상시킨다. 용이하게 재구성 가능한 소프트웨어 폴링 기술을 통해, 프로세서 코어는 상이한 통신 프로토콜들(파이버 채널, 이더넷, IPsec, ATM, Ipv6 등)에 적용될 수 있다.
발명의 다른 형태에 있어서, 멀티 프로세서 코어는, MP 코어가 로컬 프로세서 버스 및/또는 (이더넷, 파이버 채널, iSCSI 등과 같은) 공용 미디어 인터페이스 MAC's와 접속하는 것을 가능하게 하는 폴링 소프트웨어를 포함한다. 이로 인해 고수준 SoC 성능을 위한 보다 효율적인 데이터 프로세싱, 재사용 가능한 코어 디자 인, 프로토콜에 독립적인 코어 디자인 및 공용 프로세서 버스에 부착된 다수의 시스템 프로세싱 코어들이 가능하게 된다. SoC 마이크로프로세서 디자인으로 구성된 경우, 공용 버스 부착 멀티-프로세서는 성능(빠른 속도, 적은 지연, 극적으로 향상된 캐시 성능 및/또는 심지어 외부 저장 및 요청을 제외한 오프-칩 캐시(off-chip cache) 또는 메모리 오프-로드(memory off-loads) 모두의 제거)을 향상시킨다. 프로세서 속도가 향상됨에 따라(예컨대, 2GHz 내지 10GHz 이상), 본 발명은 오늘날 PC 및 워크스테이션 컴퓨터 디자인에서 발견되는, 공통적인 마이크로프로세서 속도 및 메모리 캐시 병목현상을 이용하기 위한 가장 효율적인 방법을 제공한다.
바람직하게는, 본 발명의 SoC 디자인은 IPSec VPN(Virtual Private Networks) 터널링 엔진; TCP/IP 오프로드 엔진; iSCSI를 위한 네트워크 프로세싱; (예컨대, MPEG 인코딩/디코딩, 사운드/음성/비디오 프로세싱, 암호화 엔진, 압축/압축 해제 엔진 등의) 멀티미디어 프로세싱을 포함하는(이에 제한되지 않음) 애플리케이션 및 사용을 위해 구현될 수 있다.
멀티프로세서 시스템 온 칩(multiprocessor system-on-a-chip)은 상이한 컴포넌트들 - (i) 기능 단위들(functional units); (ii) (캐시 및 메인 메모리를 포함하는) 메모리; 및 (iii) 상호 접속(interconnection) - 의 다수의 구성예들로 구성되어 있다. 디자인 선택 사항들(design choices)은 컴포넌트들의 상대적 및 절대적 수, 이들의 특정한 특징들 및 서로에 대한 배치를 포함한다.
도 4b는 본 발명에 따른 멀티프로세서 시스템 온 칩 디자인을 위한 컴포넌트로서 예시적인 독립 프로세서 기반 서브시스템(self-contained processor-based subsystem; 150)을 도시한다. 도 4b에 도시된 예에서, 독립 프로세서 기반 서브시스템(150)은 복수의 프로세서 유닛들(100), SRAM 메모리(110)에 의해 제공되는 것과 같은 공유 메모리 및 파이버 채널 스위치(switch fabric; 120)를 구비한다. 도 4a에 도시된 바와 같이, 각각의 프로세서 유닛(100)은 복수의 개별 프로세서 코어(processor core; 125)를 구비한다. 예컨대, 프로세서 유닛(400)은 도 4a에 도시된 바와 같이 프로세싱 유닛 또는 "쿼드(Quad)"를 포함하는 4개의 프로세서 코어들(125)을 포함하며, 여기서 각각의 프로세서 코어(125)는 실행 유닛 또는 프로세서 장치를 구비하며, 예컨대 16kB의 메모리를 제공하는 SRAM(130)으로 도시된 공용 로컬(개인) 메모리와 접속된다.
일 실시예에서, 도 4b에 도시된 독립 프로세서 기반 서브시스템(150)은 본 발명의 양수인인 IBM(International Business Machines Corporation)에 의해 개발된 멀티스레디드 아키텍쳐 칩 디자인(multithreaded architecture chip design) -본 명세서에서 "사이클롭스(Cyclops)"로 지칭되고, 캘리포니아 애너하임 2002년 2월 8일 내지 9일의 "Proceedings of Workshop on Network Processors"에서 C.J. Georgiou에 의한 "차세대 네트워킹을 위한 프로그램 가능하고 확장 가능한 플랫폼(A programmable scalable platform for next generation networking)"을 참조하여 상세히 기술됨 - 에 기초한다. 단일 사이클롭스 칩은 수 많은(통상적으로 수백 개의) 단일 스레드 실행 유닛들(simple thread execution units) - 각각의 유닛은 동시에 명령어들의 독립 스트림을 실행함 - 을 구비할 수 있다. 각각의 개별 스레드의 성능은 매우 뛰어나서 집합 칩 성능(aggregate chip performance)은 동일한 수 의 트랜지스터를 갖는 종래 디자인들을 훨씬 능가한다. 사이클롭스는 메인 메모리와 프로세싱 로직이 하나의 실리콘 단편으로 조합되는(독립적인) 프로세서-인-메모리(Processor-In-Memory; PIM) 디자인을 사용한다. 대형 확장 가능 시스템은, 각각의 칩에서 제공되는 통신 링크를 통해 정규화된 패턴으로 셀들을 상호 연결하여, 구성 요소로서 사이클롭스를 사용하는 셀 방식(cellular approach)으로 만들어진다.
도 4b에 도시된 바람직한 실시예에서, 8개의 프로세서 유닛들 또는 "쿼드들"(100) - 각각의 쿼드는 내부 메모리와 함께 임베디드 공유 메모리(SRAM; 110)에 접속되고, 또한 온 칩 크로스 바 스위치(on-chip cross bar switch) 또는 패킷 파이버 채널 스위치(packet switch fabric) 등의 온 칩 파이버 채널 스위치(on-chip switch fabric; 120)에 접속됨 - 은 네트워킹 애플리케이션들을 위하여 기술된 사이클롭스 디자인에 포함되어 존재한다. 그러므로, 일 실시예에서, 독립 프로세서 기반 서브시스템(150) 컴포넌트는 128kB의 로컬 RAM(130) 및 512kB의 공유 SRAM(110)까지 32개의 실행 스레드를 제공한다. 과학/공학용 애플리케이션을 위한 64bit 하이 엔드 버전(high-end version)을 포함하는 다른 디자인들이 가능함을 이해하여야 한다. 이러한 디자인에서, 많은 프로세싱 작업들이 여러 스레드들로 나누어져서, 동시에 수행되어 진정한 멀티스레딩 기능을 제공할 수 있다. 특히, 도 5에 도시된 바와 같이, 사이클롭스 아키텍쳐에서 채택된 멀티프로세싱 접근법은 프로세서 클러스터(100') - 각각은 감소된 그러나 범용의, 대략 40개의 RISC 유사 명령어들(RISC-like instructions)의 명령어 세트를 가짐 - 를 형성하는 많은 단순 코어들(125)을 포함한다. 도 5에 도시된 바와 같이, 클러스터(100')의 각각의 프로세서 코어(125)는 자신의 레지스터 파일(126), 산술 논리 연산 회로(arithmetic logic unit; ALU)(127) 및 명령어 순서기(instruction sequencer; 128)를 갖는다. 기술된 실시예에서, 프로세서 코어들(125)은 단순한 4단 깊이 파이프라인(four stages deep pipeline)을 갖는 단일 이슈 아키텍쳐(single-issue architecture)를 갖는다. 네 개의 코어들은 자신들의 스택 및 로컬 변수들을 저장하기 위하여 로컬 SRAM(130) 및 헤더 필드들과 같은 처리되어야 할 패킷들의 일부를 공유하고, 프로세서 데이터 캐시의 어떠한 통상적인 속성(usual attribute)이 없이도, 정보 "캐시" 장치로서 효과적으로 기능할 수 있다. 기술된 실시예에서, 두 개의 4-프로세서 클러스터들(100')은 명령어 캐시(I 캐시; 131) - 명령어 캐시는 명령어 결핍(instruction starvation)을 예방하기에 충분한 프로세서(125)를 위한 대역폭을 가지고, 캐시 정리(cash trashing) 또는 명령어 소실율(miss rate)의 증가를 야기하지 않고 프로세서의 대부분의 작동중인 세트를 수용함 - 를 공유한다. 각각의 프로세스 코어(125)는 스레드 집합을 포함하고, 멀티 스레딩 기능에서의 수행을 위하여 I-캐시(131)를 통해 접속될 수 있는 것으로 이해된다. 서브프로세서(스레드 집합들)가 더 많을수록, 전체적인 프로세서 코어는 더 빠른 프로세서 사이클 시간(processor cycle time)과 감소된 캐시 요청/지연(demand/latency)으로 인해 보다 효과적으로 동작할 것이다. 예시적인 실시예들은 2 내지 256 서브 프로세서 집합들을 목표로 하며, 여기서 설명하는 바와 같이 바람직한 실시예에서의 서브 프로세서 집합들의 개수는 32이다. 그러나, 본 발명은 서브 프로세서들의 수에 의해 제 한되지 않고, 진정한 동시(simultaneous), 멀티 스레딩, 멀티 프로세서 디자인을 제공하는 것으로 해석된다.
소규모 명령어 세트 및 특징들의 단순함으로 인해 프로세서 코어들의 크기가 작아져서, 실리콘 영역의 높은 MIPS/mm2 비율을 제공할 수 있다. 이는 다소 작은 면적의 칩 상에 많은 코어들의 배치를 가능하게 하여 스레드 수준의 병렬 처리(parallelism)를 이용할 수 있도록 한다. 그러므로, 본 발명은 플로그 앤 플레이 시스템(plug-n-play system)을 위한 다중 "코어들"을 허용하고, 더 큰 아키텍쳐 융통성(flexibility)을 제공하는 진정한 "시스템-온-칩" 구현이므로, 본 발명을 유익하게 적용함으로써, 낮은 카드 어셈블리 비용(card assembly cost)으로 높은 집적/보드(integration/board) 밀도가 가능해지고, 더 넓은 대역폭 애플리케이션들 및 프로세싱 코어들을 위한 강화된 확장성(scalability)을 제공할 수 있다. 그러나, 프로세서 코어는 전송 작업이나 계산 부하에 기초하여 게이트 또는 트랜지스터의 수를 감소시킬 수 있도록 확장 가능한 것이 아니고, 오히려 애플리케이션/표적 시장(application/targeted market)에 의존하여 고정된 디자인을 갖는 것으로 해석된다. 더욱이, 멀티프로세서 또는 서브시스템 코어는 작업들을 분할하여 DSP 또는 ASIC 기능 블록들에 할당하지 않고, 오히려 프로그램 코드 및 데이터 패킷들은 각각이 동일한 메모리(예컨대, 데이터 캐시를 위한 16kB SRAM) 및 회로(ALU, 레지스터 파일 등)를 갖는 다수의 서브프로세서들(스레드 그룹들)에서 처리된다. 스레드 그룹들 내의 이러한 서브프로세서들은 (SoC 애플리케이션들을 위해) 전체적으로 로 컬 시스템 또는 온-칩 로컬 버스에 부착된 프로세서 코어를 구비한 스레드 유닛들을 형성한다.
본 발명에서, 각각의 로컬 프로세서(차례로 다중 스레드 유닛들 또는 추가로 서브 프로세스들을 포함하는 스레드 그룹들)는 셀 모양 조직으로 배열되어, 각각의 프로세서가 대칭적인 온-칩 메모리(예컨대, 4 x 64kB로 256kB, 또는 n x 512kB 블록들로 4 또는 8MB eDRAM)의 N개의 뱅크(bank) - 각각의 뱅크는 크로스바 스위치를 통해 각각의 로컬 프로세서 그룹(스레드 그룹)으로 주소 지정 가능함(addressable) - 를 갖는다. 모든 서브 프로세서 코어들(또는 스레드 그룹들)에 대한 연속적인 주소 공간(address space)을 취급하기 위하여 SRAM 또는 eDRAM의 개별 온-칩 메모리가 제공된다. 집적된 16kB SRAM 메모리(스레드 그룹 당 한 개)는 칩 상의 모든 프로세서 스레드들에 의해 액세스 가능하다.
도5 및 10을 보다 자세히 관찰하면, 본 발명에 따른 멀티프로세서 SoC 디자인은 파이버 채널(Fibre Channel; 201), 인피니밴트(Infiniband; 202) 및 Gb 이더넷(Gb Ethernet; 203) 프로토콜에 따른(이에 제한되지 않음) 네트워크 패킷 통신 기능들을 처리할 수 있는 SAN(Storage Area Network) 프로세서 아키텍쳐(150')를 포함한다. 도 5에 도시된 바와 같이, 네트워크 프로세서 SoC 디자인(150')은 데이터 패킷, 접속 정보 및 프로그램들을 저장하기 위한 메모리의 임베디드 뱅크들(160)을 포함한다. 과도하게 크기를 증가시키지 않고 많은 양의 메모리가 칩 상에 배치될 수 있으므로, 임베디드 메모리(SRAM 또는 DRAM)의 사용은 유용하다. 부가하여, 임베디드 메모리는 짧고 예측 가능한 (단일 패킷의 프로세싱을 위한 시간 예 산(time budget)으로 설명될 수 있는) 액세스 시간(access time)을 갖고, 내부 상호 접속 상에서의 전체적인 트래픽 감소로 인해 더 적은 리소스 충돌(resource collision), 감소된 성능 저하 및 전력 소비를 초래하므로, 전통적인 오프-칩 메모리(off-chip memory)에 비하여 상당한 성능 이점을 제공한다. 데이터를 저장하는 이외에도, 현재의 제어, 상태 및 라우팅 정보가 임베디드 메모리(160)에 유지된다. 일부 애플리케이션이 이용 가능한 온-칩 메모리를 초과하는 메모리 요구 사항을 요구할 수 있으므로, SoC 네트워크 프로세서 아키텍쳐는 고 대역폭(high-bandwidth) DDR 메모리 인터페이스(165)를 통해 접속된 오프-칩 DRAM(도시되지 않음)을 사용한다. 외부 DRAM은 정체 버퍼링(congestion buffering)을 제공할 뿐만 아니라, 통계(statistics) 및 기록 정보(archival information)를 저장할 수 있다.
도 5의 SoC 네트워크 프로세서(150')에서, 대부분의 네트워크 통신 프로토콜 기능들은 프로그램으로 구현된다. 그러나, 네트워크 프로토콜의 저 수준에서 시간에 매우 민감한 기능들(highly time critical functions)은 하드웨어 가속기들을 통해 구현된다. 하드웨어 가속기들은 데이터 인코딩/디코딩, 직렬화/역직렬화, 링크 관리 및 CRC와 체크섬(checksum) 계산과 같은 저 수준 프로토콜 작업을 처리한다. 이러한 작업들은 전송된 패킷들의 매 바이트 상에 수행되고, 소프트웨어로 구현되면 많은 계산 비용이 들 것이다. 그러므로, 파이버 채널(Fibre Channel) 및 기가비트 이더넷(Gigabit Ethernet)용 네트워크 인터페이스(175) 그리고 인피니밴드용 네트워크 인터페이스(185)로 구현된 하드웨어 가속기들 - 각각은 오직 작은 실리콘 영역만을 요구하고, 각각 인피니밴드 및 파이버 채널 통신 링크들(190 및 195)와 인터페이스함 - 과 같은 이러한 기능들의 하드웨어 구현이 제공된다.
도 5에 도시된 바와 같이, SoC 네트워크 프로세서 디자인(150')은, 프로세서 클러스터들(100'), 공유 메모리 블록(160), 외부 DRAM 메모리 액세스를 위한 외부 메모리 인터페이스(165) 및 네트워크 프로토콜 계층 하드웨어 보조 장치들(network protocole layer hardware assist devices; 175 및 185)을 상호 접속시키는 크로스바 스위치(120)를 구비한 내부 상호 접속을 포함한다. 예시적인 실시예에서, 크로스바 스위치(120)는 64 비트 데이터 경로를 가지고, 데이터 오버플로우(data overflow)를 피하기 위해 파이프라이닝(pipelining) 및 토큰 신호화(token signaling)의 역할을 하는 여러 워드를 제공한다. 프로세서 쿼드는 크로스바(120)로의 포트를 공유하여, 예컨대, 16 포트를 갖는 크로스바는 32 프로세스 시스템까지 상호 접속시키기에 충분하다. 그러나, 도 8에 관하여 이하에서 기술되는 바와 같이, 크로스바 스위치(120)는 가상 크로스바(pseudo-crossbar), 버스, 스위치 또는 적절한 다른 상호 접속으로 대체될 수 있음이 추측된다.
본 명세서에서 일반적으로 언급된 바와 같이, SoC 네트워크 프로세서 아키텍쳐는 셀 방식이다. 즉, 이로 인해 애플리케이션 요구사항들에 따라 디자인이 고객 주문형으로 된다. 예컨대, 파이버 채널의 종단점(endpoint) 기능은 인피티밴드로의 iSCSI 프로토콜 변환을 갖는 더욱 복잡한 TCP/IP 종점(termination)보다 더 적은 계산 전력을 요구한다. 그러나, 본 발명에서는, 중대한 디자인 변경없이 애플리케이션 요구 사항에 맞추어 프로세서 코어 또는 클러스터들(100') 및 임베디드 메모리 블록의 수를 용이하게 변경시킬 수 있다.
도 6은 도 5 및 도 10의 독립 멀티프로세서 서브시스템(150')을 사용하는 SoC 네트워크 부착 프로세서(200)의 제1 실시예를 도시한다. 서브시스템(150')으로서의 사용을 위한 한 가지 가능성으로 IBM으로부터 구입 가능한 사이클롭스E(CyclopsE)가 있다. 도 6의 실시예에서, 서브시스템(150')은, 예컨대 ARM AMBA(Advanced Microcontroller Bus Architecture), MIPs(Microprocessor Interface Program), 개방 표준 코어 접속(open standard CoreConnect), AHB(Advanced High-Performance Bus) 등과 같은 SoC 표준화 프로세서-로컬 버스(Processor-Local Bus; PLB)를 구비하는 프로세서 로컬 버스(210)에 공용 매크로(예컨대, PLB 접속 매크로)를 통해 접속되어, 멀티 소스 버스 아키텍쳐로의 진정한 플러그-앤-플레이 시스템 온 칩을 가능하게 한다.
도 6 및 10에 도시된 네트워크 부착 프로세서(200)의 실시예는, SoC 서브시스템에서 계산 기능을 제공하기 위한 파워PC 또는 다른 유사한 프로세서(225)를 구현한다는 점을 이해해야 한다. 마찬가지로, PPC(440)는 SoC 완성자(integrator)에 의해 선택된 다른 PPC 코어, MIPS 코어 또는 다른 마이크로프로세서로 대체될 수 있다. 마찬가지로, 도 6에 도시된 다른 컴포넌트들은 하나 이상의 I/O 인터페이스 장치들(245)을 통해 외부 컴포넌트들과 인터페이스하기 위하여 SRAM(215), DDR 제어기(218), PCI-X 브릿지(222), 직접 메모리 액세스(DMA) 장치(226), DMA 제어기(228), 온 칩 주변 버스(On-chip Peripheral Bus; OPB; 240)를 포함한다. 이더넷 LAN 시스템을 위한 데이터 링크 계층을 제공하기 위하여 MAC(Medium Access Control) 프로토콜 장치(250)가 부가적으로 사용된다. 특정 SoC의 설계자/완성자 에 의한 선택에 따라 프로세서 코어 타이머(233) 및 인터럽트 제어기(235)가 존재할 수도 생략될 수도 있다.
도 7은 본 발명에 따른, SoC 네트워크 부착 멀티프로세싱 시스템(300)의 제2 실시예를 도시한다. 도 6에서와 같이, 도 7의 SoC 멀티프로세싱 시스템(300)은 프로세서(예컨대, 440 코어), 로컬 프로세서 버스(PLB; 210), 온 칩 주변 버스(OPB) 및 (SRAM, DDR 제어기, PCI-X 브릿지 및 DMA 제어기와 같은) 다수의 컴포넌트들을 구비하는 한편, OPB 버스(240)와 인터페이스하는 OPB 브릿지(229)를 포함한다. 프로세서 버스 또는 PLB(210)는 AMBA, MIPs, 코어 접속 PLB(CoreConnect PLB), AHB 등과 같은 SoC 표준화 프로세서 로컬 버스이다. 도 8과 관련하여 이하에서 보다 자세히 기술되는 프로세서 기반 서브시스템(350)은 PLB(210)에 접속된 컴포넌트들 중의 하나이다. 도 7에 도시된 요소들은 예시적이고, 제한적이지 않다. 예컨대, PPC(440)는 다른 PPC 코어 유사 PPC(405) 또는 PPC(440), 또는 ARM 또는 MIPS 프로세서 코어들, 또는 SoC 완성자에 의해 선택된 다른 마이크로프로세서들로 대체되거나, 본 발명의 주요 범위를 제한하지 않는 완전히 새로운 코어들을 포함할 수 있다. 마찬가지로, 본 명세서에 나열된 다른 컴포넌트들(또는 SoC 라이브러리의 임의의 다른 컴포넌트)은 특정 SoC의 설계자/완성자에 의한 선택에 따라 존재할 수도 생략될 수도 있다. 예컨대, 도 7에 도시된 바와 같이, OPB(240)와 인터페이스하기 위하여 제공된 장치들은, RAM/ROM 주변 제어기(245a), 외부 버스 마스터(245b), UART 장치(245c), IC간 버스(Inter-IC bus; I2C) 인터페이스(245d), 범용 I/O 인터페이스(245e) 및 게이트웨이 인터페이스(245f) 중의 하나 이상을 포함할 수 있지 만, 이에 제한되지 않는다. 그러므로, 가능한 다수의 칩 구성이 존재하는 것을 알 수 있다.
도 8은 본 발명의 추가적인 실시예에 따른 독립 프로세서 기반 서브시스템(350)을 도시한다. 이러한 서브시스템은 도 6 및 도 7에서 도시된 것과 같은 SoC 네트워크 부착 프로세서 시스템 내에 컴포넌트로서 통합되고, ASIC 라이브러리에서 통상적인 매크로가 될 수 있는 PLB 브릿지를 통해 프로세서 버스(210)에 접속된다. 프로세서 기반 서브시스템(350)은 (도 5의 프로세서 클러스(100')와 같은) 하나 이상의 프로세서 클러스터, (데이터 및/또는 명령어들을 저장하기 위한) 하나 이상의 로컬 메모리 셀 및 (개별 버스, 파이버 채널 스위치, 크로스바 스위치 또는 다른 상호 접속 수단들(120)로 구현된) 로컬 상호 접속 수단을 구비한다. 바람직한 실시예에서, 멀티프로세서 서브시스템(350)은 SoC 네트워크 프로세서 버스(210)를 통해 통신하기 위해 PLB 브릿지 매크로 컴포넌트(410)를 구비하지만, 프로세서 기반 서브시스템(350)과 SoC 버스(210) 사이의 데이터 플로우를 가능하게 하기 위하여 임의의 다른 브릿지 매크로가 선택될 수 있음이 예측된다. 프로세서 버스(210)는 프로세서 및 컴포넌트들을 접속시키기 위하여 SoC 어셈블리에서 사용되는 개별 버스, 스위치 또는 상호 접속 수단이다.
1) 서브시스템 트래픽이 PLB 트래픽과 분리되어, 대역폭 경쟁(bandwidth contention)을 피하게 되고; 2) 글로벌 표준화 버스(global standardized bus) 상의 서브시스템과 SoC 시스템 사이의 트래픽 만이 인터페이스 트래픽(데이터 수신 및 송신)이며; 3) SoC 시스템에서 표준화된 컴포넌트들 및 접속 프로토콜을 수용해 야 하는 요구 조건 없이 고성능 솔루션을 구현하기 위한 최적화 MP 구조를 제공하도록 서브 시스템 버스/스위치 상호 접속 구조가 디자인되었다는 점에서 서브 시스템과 프로세서 버스들(210)(도 6 및 도 7)의 분리가 유익하다. 이러한 방식으로, 멀티프로세서(MP) 구조가 MP 고성능을 위해 최적화될 수 있고, SoC 라이브러리로부터의 모든 표준 기존 컴포넌트들이 사용될 수 있다는 두 가지 점으로부터 SoC 솔루션이 유용한 효과를 얻을 수 있다.
상호 접속 버스/스위치/파이버 채널 스위치(120)를 포함하는 서브시스템(350)은 특히, 기존 브릿지(예컨대, PLB 대 OPB 브릿지 또는 PLB 대 PCI-X)가 수행하는 방식으로, 상이한 속도들, 데이터 폭, 신호 및 두 통신 시스템 간의 신호화 프로토콜을 위하여 개조된 브릿징 컴포넌트(410)를 사용하여 프로세서 버스(210)에 접속된다. PLB 또는 AMBA와 같은 표준화된 프로세서 로컬 상호 접속으로의 인터페이스를 구현함으로써, 이러한 새로운 컴포넌트를 SoC 컴포넌트 라이브러리로 통합하는 것이 가능해진다. 이러한 브릿지 컴포넌트(410) 구현의 가능한 형태가 도 9에 도시되어 있다. 이러한 브릿지 매크로(410)의 목적은 SoC 프로세서 버스(210)와 프로세서 기반 서브시스템 로컬 버스(120) 사이에서 제어 신호, 데이터 폭, 동작 주파수 및 주소 공간을 변환/조절하는 것이다. 바람직하게, 브릿지 매크로 컴포넌트(410)는 프로세서 기반 서브시스템 모듈로 유입되거나 유출되는 데이터를 위한 데이터 버퍼링을 구현하고, 서브시스템 및 PLB를 위한 DMA 제어기를 포함할 수 있다. 구성 및 상태 레지스터는 서브시스템 주소 공간에서 메모리 맵핑 레지스터들(memory mapped registers)로 구현될 수 있다. 구성 레지스터들은 프로세서 기 반 서브시스템(350)에 의해 설정되고, 브릿지(410)의 상태를 판독한다. 또한, 이러한 모듈은 SoC 프로세서 버스 상의 다양한 데이터 폭 사이에서 선택하기 위한(예컨대, 64 또는 128 PLB와 동작하도록 동작 모드(operation mode)를 설정하기 위한) 설정, 그리고/또는 다양한 모드의 동작(예컨대, 라인 또는 버스트 데이터 전송)을 지원하기 위한 설정을 포함할 수 있다. SoC 주소 공간 및 서브시스템 주소 공간은 동일한 주소 공간을 공유할 수 있지만, 필수적인 것은 아니다.
특히, 도 9의 브릿지 매크로(410)는 PLB 슬레이브(420a) 및 PLB 마스터(420b)로서 PLB 버스 상에서 기능한다. PLB 슬레이브로서, 브릿지 매크로(410)는 프로세서 기반 서브시스템(350)으로부터 데이터를 얻기 위한 SoC 프로세서로부터의 판독 및 기록 요청을 구현한다. 프로세서 기반 서브시스템에서, 메모리 내의 데이터에 대한 판독을 요청하는 동안, 브릿지는 PLB(210)로부터 판독 요청을 수신하고, 주소를 분석하며, 프로세서 기반 서브시스템 버스/파이버 채널 스위치/스위치(120)를 위한 판독 요청을 생성한다. 브릿지는 프로세서 기반 서브시스템(350)으로부터의 판독 데이터를 버퍼링하고, PLB 버스(210)에 의해 지정된 폭 및 속도로 PLB(210)에 데이터를 전송한다. 프로세서 기반 서브시스템에서, 메모리 내의 데이터에 대한 기록을 요청하는 동안, 브릿지는 기록 요청에 대한 데이터를 PLB(210)로부터 버퍼링하고, 프로세서 기반 서브시스템에서 메모리 뱅크를 위한 주소를 분석하며, 프로세서 기반 서브시스템 버스/파이버 채널 스위치/스위치(120)에 의해 지정된 대로 프로세서 기반 서브시스템(350) 내의 적절한 메모리 뱅크로 데이터를 전송한다.
반대로, PLB 마스터(20b)로 기능하는 경우, 브릿지 매크로(410)는 프로세서 기반 서브시스템으로 그리고 그로부터 데이터를 전송하기 위한 DMA 제어기를 구현할 수 있지만, 구현해서는 안된다. DMA 제어기에 의해 프로세서 기반 서브시스템으로부터 SoC의 DDR 메모리로 데이터를 전송함에 있어서, 제어기는 PLB 기록 요청을 위한 주소 및 신호를 설정하고, DDR 메모리로 데이터를 전송한다. DDR로부터 프로세서 기반 서브시스템으로 데이터를 DMA 전송하는 동안, 매크로는 PLB 판독 요청을 위한 주소 및 신호를 설정하고, 데이터를 버퍼링하며, 프로세서 기반 서브시스템 내의 메모리 뱅크로 데이터를 전송한다.
바람직한 실시예에서, 프로세서 기반 서브시스템(350)은 기능들의 특정 세트를 위한 레디 메이드 기능(ready-made functionality)(전유물(personalization))을 제공하는 임베디드 소프트웨어를 구비한다. 가능한 사용 예로, 하나의 네트워크 프로토콜로부터의 다른 프로토콜로의 네트워크 프로토콜 변환, (TCP/IP 오프로드 엔진, IPSec VPN 터널링 엔진(tunneling engine)과 같은) 프로토콜 트래픽 종점(termination), (iSCSI, 암호화 엔진, 압축/압축 해제 엔진을 위한, 또는 MPEG 인코딩/디코딩과 같은 멀티미디어 프로세싱을 위한) 네트워크 프로세싱 또는 사운드/음성/비디오 프로세싱이 있다.
프로세서 기반 서브시스템에서의 데이터 플로우의 예로서, 도 8의 프로세서 기반 서브시스템(350)과 도 6 및/또는 도 7의 SoC 아키텍쳐를 사용하는 TCP/IP 오프로드 엔진의 가능한 구현예가 다음과 같이 기술된다.
● SoC 프로세서 코어(225)(예컨대, PPC(440))는 데이터 프로세싱을 위한 요 청을 설정하고, DDR 메모리 내의 데이터를 가리키는 포인터 및 요청을 브릿지(410)를 통해 프로세서 기반 서브시스템(350)으로 송신한다. 이는 인터럽트 신호를 호출하거나, 주기적으로 폴링되는 전용 레지스터(도시되지 않음) 또는 사전 지정된 메모리 위치(pre-specified memory location)에 데이터를 기록함으로써 구현될 수 있다.
● 프로세서 기반 서브시스템(350)은 이러한 요청을 인식하고, DMA 엔진(226)(도 7)을 활성화시켜서 SoC 메모리로부터 프로세서 기반 서브시스템 내의 메모리로 데이터를 전송한다.
● 데이터는 프로세서 기반 서브시스템(350) 내의 메모리로 전송되고, 데이터의 끝(end of data)을 나타내는 신호가 발생된다.
● 프로세서 기반 서브시스템(350)은 TCP/IP 프로토콜-파티션 데이터를 일련의 패킷들로의 전환(TCP/IP protocol-partitions data to series of packets)과 같은 특정 프로토콜 작업들을 구현하고, 패킷 등에 대한 적절한 헤더를 생성하며, 이러한 데이터를 이더넷 MAC(Media Access Control) 네트워크 인터페이스 회로로 전송한다. 프로세서 기반 서브시스템(350)은 SoC 프로세서(300)로부터의 간섭 없이 프로토콜에 의해 지정된 대로, 필요하다면 패킷을 재전송한다.
● 모든 데이터가 전송되면, SoC 프로세서(300)는 작업 완료에 대한 통지를 수신한다. PPC로 인터럽트를 송신하거나, SoC 프로세서에 의해 주기적으로 폴링되는 사전 정의된 위치에 인터럽트를 기록함으로써 위의 과정이 구현될 수 있다.
다음은, 하나 이상의 네트워크 프로토콜에 따라, 수신된 패킷을 라우팅하기 위한 바람직한 실시예에서의 예시 서브시스템 코드이다.
for(;;)
{
poll AC;
if(packet received)
process packet in accordance with protocol
if(packet successfully received)
transfer packet via PLB bridge
cause notification event to CoreConnect bus master
poll PLB bridge status;
if(request)
process request
if(packet should be transmitted)
transfer packet via MAC
}
프로세서 기반 서브시스템에서의 데이터 플로우는 (예컨대, 미디어 I/O(MAC) 장치 및 프로세서 로컬 버스(PLB) 사이에서) 소프트웨어 폴링을 통해 수행되지만, 이러한 접속은 프로토콜에 무관하고, 다수의 네트워크 프로토콜 타입들(이더넷, 파이버 채널, IPv6, ATM, IPsec, HIPPI 등)이 동일한 접속 라인을 통해 지원될 수 있음을 이해해야 한다. 버스를 감독하기 위하여 소프트웨어 폴링 및 접속 메커니즘 이 제공되고, I/O 미디어 접속은 추가적인 이점을 제공하며 본 발명의 특징들을 강화시키는데, 상기 특징들은 미디어 타입이나 출처에 무관하게 데이터 패킷이 성공적으로 처리되는 시점을 식별하기 위한 파이프라인 구조 및 병렬 처리(parallelism)를 포함한다.
본 발명이 예시 및 이들의 실시예와 관련하여 특별히 도시되고 기술되었지만, 당업자는, 첨부된 청구항의 범위에 의해서만 제한되는 본 발명의 사상 및 범위를 벗어나지 않고 전술한 사항 및, 형태와 세부 사항에 있어서의 다른 변경을 가할 수 있음을 이해할 것이다.
본 발명에 의하면, SoC 집적 회로에서 멀티스레딩 동작을 수행할 수 있도록 특별히 프로그램된 컴포넌트로서 기능할 수 있는 독립 멀티프로세서 서브시스템을 제공할 수 있다.

Claims (30)

  1. 통신 버스 장치를 포함하는 시스템 온 칩(System-On-Chip; SoC) 집적 회로(Integrated Circuit; IC)에서의 사용을 위한 마이크로프로세서 서브시스템(microprocessors subsystem)으로서,
    단일 프로세서 코어 어셈블리(single processor core assembly)로 형성되어, 일정한 프로세싱 기능을 구현하기 위한 작업들을 수행할 수 있는 둘 이상의 마이크로프로세서 장치들;
    상기 단일 프로세서 코어 어셈블리 내의 데이터 및 명령어들 중의 적어도 하나를 저장하기 위하여, 상기 서브시스템에서 상기 둘 이상의 마이크로프로세서 장치들과 연관된 저장 장치; 및
    상기 단일 프로세서 코어 어셈블리에 존재하며, 상기 둘 이상의 마이크로프로세서 장치들과 상기 SoC IC 통신 버스 장치 사이에서의 통신을 가능하게 하기 위한 상호 접속 수단(interconnect means) - 상기 상호 접속 수단에 의해 상기 단일 프로세서 코어 어셈블리가 상기 SoC IC의 컴포넌트들과 통신할 수 있음 -
    을 포함하는 마이크로프로세서 서브시스템.
  2. 제1항에 있어서, 상기 단일 프로세서 코어 어셈블리의 상기 둘 이상의 마이크로프로세서 장치들은 프로그램 제어 하에서 동작하여, 특정 세트의 기능들을 가능하게 하는 마이크로프로세서 서브시스템.
  3. 청구항 3은(는) 설정등록료 납부시 포기되었습니다.
    제1항에 있어서, 상기 상호 접속 수단은 파이버 채널 스위치(switch fabric)를 포함하는 마이크로프로세서 서브시스템.
  4. 청구항 4은(는) 설정등록료 납부시 포기되었습니다.
    제1항에 있어서, 상기 상호 접속 수단은 통신 버스(communication bus)를 포함하는 마이크로프로세서 서브시스템.
  5. 청구항 5은(는) 설정등록료 납부시 포기되었습니다.
    제2항에 있어서, 상기 SoC IC는 네트워크 프로세서 어셈블리인 마이크로프로세서 서브시스템 - 상기 마이크로프로세서 서브시스템은 패킷 통신 프로세싱 기능을 구현함 -.
  6. 청구항 6은(는) 설정등록료 납부시 포기되었습니다.
    제5항에 있어서, 상기 단일 프로세서 코어 어셈블리는
    파이버 채널(Fibre Channel), Gb 이더넷(Ethernet), 인피니밴드(Infiniband)를 포함하는 군으로부터 하나 이상을 포함하는 네트워크 통신 프로토콜에 따라 통신을 수신할 수 있는 하나 이상의 인터페이스 장치를 더 포함하는 마이크로프로세서 서브시스템.
  7. 청구항 7은(는) 설정등록료 납부시 포기되었습니다.
    제6항에 있어서, 상기 네트워크 프로세서 어셈블리는 DSP, 보조프로세서(coprocessor), 혼성 ASIC(Hybrid ASIC) 또는 다른 네트워크 프로세싱 구성(arrangement) 중의 하나로 구성되고, 상기 네트워크 프로세싱 어셈블리는
    네트워크 프로세싱 장치 및
    상기 네트워크 프로세싱 어셈블리의 컴포넌트들을 상기 네트워크 프로세싱 장치와 상호 접속시키기 위한 고속 로컬 버스 수단(high-speed local bus means)
    을 포함하는 마이크로프로세서 서브시스템.
  8. 청구항 8은(는) 설정등록료 납부시 포기되었습니다.
    제7항에 있어서, 상기 네트워크 프로세서 어셈블리의 컴포넌트들은 SRAM, DDR 제어기, PCI-X 브릿지(bridge), 직접 메모리 액세스(DMA) 장치, DMA 제어기, 하나 이상의 I/O 인터페이스 장치를 통해 외부 컴포넌트들과 인터페이스하기 위한 온-칩 주변 버스(On-chip Peripheral Bus; OPB) 및 이더넷 LAN 시스템으로의 데이터 링크 계층 인터페이스를 제공하기 위해 사용되는 MAC(Medium Access Control) 프로토콜 장치를 포함하는 군으로부터 선택된 하나 이상을 포함하는 마이크로프로세서 서브시스템.
  9. 제1항에 있어서, 상기 단일 프로세서 코어 어셈블리는 상기 마이크로프로세서 서브시스템 및 상기 SoC IC의 상기 통신 버스 장치 사이의 데이터 플로우를 가능하게 하기 위한 프로그래머블 프로세서 로컬 버스 브릿지 장치(programmable processor local bus bridge device)를 더 포함하는 마이크로프로세서 서브시스템.
  10. 청구항 10은(는) 설정등록료 납부시 포기되었습니다.
    제9항에 있어서, 상기 프로그래머블 프로세서 로컬 버스 브릿지 장치는 상기 단일 프로세서 코어 어셈블리를 구현하는 상기 SoC IC 장치를 통해 통신하는 두 개 의 통신 시스템들 사이의 신호화 프로토콜들(signaling protocols) 및 통신 신호들(communications signals)을 사용 가능하게 하는 마이크로프로세서 서브시스템.
  11. 청구항 11은(는) 설정등록료 납부시 포기되었습니다.
    제1항에 있어서, 상기 상호 접속 수단은 둘 이상의 마이크로프로세서 장치들에 대응하는 독립 스레드 군들(independent thread groups)을 함께 결합시키기 위한 크로스바 스위치(crossbar switch)를 포함하는 마이크로프로세서 서브시스템.
  12. 청구항 12은(는) 설정등록료 납부시 포기되었습니다.
    제1항에 있어서, 상기 서브시스템에서 상기 둘 이상의 마이크로프로세서 장치들과 연관된 상기 로컬 메모리 저장 장치는 로컬 SRAM 메모리, 메모리 캐시 및 서브 프로세서들을 함께 접속시키는 I 캐시 중의 하나 이상을 포함하는 마이크로프로세서 서브시스템.
  13. 청구항 13은(는) 설정등록료 납부시 포기되었습니다.
    제8항에 있어서, 상기 단일 프로세서 코어 어셈블리의 상기 둘 이상의 마이크로프로세서 장치들은 하나 이상의 네트워크 프로토콜 통신의 프로세싱을 처리하기 위하여 상기 SoC IC의 통신 버스 장치를 폴링(polling)하기 위한 수단을 포함하는 마이크로프로세서 서브시스템.
  14. 시스템-온-칩(SoC) 집적 회로(IC) 네트워크 프로세서로서,
    복수의 네트워크 프로세서 컴포넌트들 중에서 SoC 네트워크 프로세서 기능들을 제어하기 위한 네트워크 프로세서 코어(network processor core); 및
    상기 SoC 네트워크 프로세서 컴포넌트들 간의 통신을 가능하게 하도록 하기 위한 SoC 로컬 시스템 버스 장치를 포함하고,
    하나의 SoC 네트워크 프로세서 컴포넌트는 독립적인 멀티프로세서 서브시스템 코어를 포함하고,
    상기 독립적인 멀티프로세서 서브시스템 코어는
    i) 일정한 기능을 구현하는 적어도 하나의 마이크로프로세서
    ii) 데이터 및 명령어들 중의 적어도 하나를 저장하기 위한 적어도 하나의 메모리 저장 장치; 및
    iii) 둘 이상의 마이크로프로세서 장치들과 상기 SoC IC 로컬 시스템 버스 장치 간의 고속 통신을 가능하게 하기 위한 상호 접속 수단
    을 포함하며,
    상기 멀티프로세서 서브시스템 코어는 멀티-스레딩 네트워크 프로세싱 기능(multi-threading network processing capability)을 제공하는 프로세서.
  15. 제14항에 있어서, 상기 단일 SoC 멀티프로세서 서브시스템 코어는 파이버 채널, Gb 이더넷, 인피니밴드를 포함하는 군으로부터 하나 이상을 포함하는 네트워크 통신 프로토콜에 따라 통신을 수신할 수 있는 하나 이상의 인터페이스 장치를 더 포함하는 SoC IC 네트워크 프로세서.
  16. 청구항 16은(는) 설정등록료 납부시 포기되었습니다.
    제15항에 있어서, DSP, 보조프로세서, 혼성 ASIC 또는 다른 네트워크 프로세싱 구성 중의 하나로 구성되고, 상기 SoC 로컬 시스템 버스 장치는 상기 SoC 네트워크 프로세서 컴포넌트들을 상기 네트워크 프로세싱 코어와 상호 접속시키기 위한 고속 로컬 버스 수단인 SoC IC 네트워크 프로세서.
  17. 청구항 17은(는) 설정등록료 납부시 포기되었습니다.
    제16항에 있어서, 상기 네트워크 프로세서 컴포넌트들은 SRAM, DDR 제어기, PCI-X 브릿지, 직접 메모리 액세스(DMA) 장치, DMA 제어기, 하나 이상의 I/O 인터페이스 장치를 통해 외부 컴포넌트들과 인터페이스하기 위한 온-칩 주변 버스(On-chip Peripheral Bus; OPB) 및 이더넷 LAN 시스템으로의 데이터 링크 계층 인터페이스를 제공하기 위해 사용되는 MAC 프로토콜 장치를 포함하는 군으로부터 선택된 하나 이상을 포함하는 SoC IC 네트워크 프로세서.
  18. 제14항에 있어서, 상기 멀티프로세서 서브시스템 코어는 상기 마이크로프로세서 서브시스템 및 상기 SoC 로컬 시스템 버스 장치 사이의 데이터 플로우를 가능하게 하기 위한 프로그래머블 프로세서 로컬 버스 브릿지 장치를 더 포함하는 SoC IC 네트워크 프로세서.
  19. 청구항 19은(는) 설정등록료 납부시 포기되었습니다.
    제18항에 있어서, 상기 프로그래머블 프로세서 로컬 버스 브릿지 장치는 상기 단일 멀티프로세서 서브시스템 코어를 구현하는 상기 SoC IC 장치를 통해 통신하는 두 개의 통신 시스템들 간의 신호화 프로토콜들 및 통신 신호들을 사용 가능하게 하는 SoC IC 네트워크 프로세서.
  20. 청구항 20은(는) 설정등록료 납부시 포기되었습니다.
    제14항에 있어서, 상기 단일 멀티프로세서 서브시스템 코어의 상기 상호 접속 수단은 둘 이상의 마이크로프로세서 장치들에 대응하는 독립 스레드 군들을 함께 결합시키기 위한 크로스바 스위치를 포함하는 SoC IC 네트워크 프로세서.
  21. 제14항에 있어서, 상기 서브 시스템에서 상기 둘 이상의 마이크로프로세서 장치들과 연관된 상기 적어도 하나의 메모리 저장 장치는 로컬 SRAM 메모리, 메모리 캐시 및 상기 마이크로프로세서 장치들을 함께 접속시키기 위한 I 캐시 중의 하나 이상을 포함하는 SoC IC 네트워크 프로세서.
  22. 청구항 22은(는) 설정등록료 납부시 포기되었습니다.
    제21항에 있어서, 상기 단일 멀티프로세서 서브시스템 코어는 하나 이상의 네트워크 프로토콜 통신의 프로세싱을 처리하기 위하여 상기 SoC IC의 로컬 시스템 버스 장치를 폴링하기 위한 수단을 포함하는 SoC IC 네트워크 프로세서.
  23. 시스템-온-칩 프로세서 집적 회로로서,
    복수의 SoC 컴포넌트 장치들 중에서 SoC 프로세싱 기능들을 제어하기 위한 프로세서 코어; 및
    상기 SoC 컴포넌트 장치들 중에서 통신을 가능하게 하기 위한 SoC 로컬 시스템 버스 장치를 포함하고,
    하나의 SoC 컴포넌트 장치는 단일 독립 멀티프로세서 서브시스템 코어를 포함하고,
    상기 단일 독립 멀티프로세서 서브시스템 코어는
    각각의 다중 프로세서(multiple processor)가 프로세서 클러스터(processor cluster)를 형성하도록 로컬 메모리를 자신과 연관시키는, 복수의 다중 프로세서들; 및
    상기 SoC IC 내에서 각각의 프로세서 클러스터를 접속시키는 파이버 채널 스위치 수단
    을 포함하며,
    상기 단일 SoC 멀티프로세서 서브시스템 코어는 멀티스레딩 작업 프로세싱을 수행할 수 있는 집적 회로.
  24. 제23항에 있어서, 복수의 다중 프로세서들을 포함하는 상기 독립 멀티프로세서 서브시스템 코어는 기능적인 SoC 컴포넌트로서의 사용을 위해 소정의 기능 세트를 구현하고, 상기 SoC IC 내에서 각각의 프로세서 클러스터를 접속시키는 상기 파이버 채널 스위치는 상기 코어 내의 상기 기능에 의해 요구되는 프로세싱을 위한 데이터 트래픽 플로우(data traffic flow)를 가능하게 하는 SoC 프로세서 집적 회로(IC).
  25. 청구항 25은(는) 설정등록료 납부시 포기되었습니다.
    제23항에 있어서, 상기 파이버 채널 스위치 수단은 상기 코어 내의 상기 기능에 의해 요구되는 프로세싱을 위한 명령어 트래픽 및 데이터 트래픽의 통신을 더 가능하게 하는 SoC 프로세서 집적 회로.
  26. 제23항에 있어서, 상기 파이버 채널 스위치 수단은 상기 멀티프로세서 서브시스템 코어 내에서 셀 방식(cellular fashion)으로 독립 스레드 군들을 조직(organizing)하는 크로스바 스위치(crossbar switch)를 포함하는 SoC 프로세서 집적 회로.
  27. 청구항 27은(는) 설정등록료 납부시 포기되었습니다.
    제26항에 있어서, 상기 복수의 다중 프로세서들의 각각은 로컬 SRAM 메모리, ALU(Arithmetic Logic Unit) 또는 FPU(Floating Point Unit) 중의 하나와 그에 대응되는 데이터 캐시, 및 프로세서 스레드 그룹들을 함께 접속시키기 위한 I 캐시(Instruction Cache)를 포함하는 SoC 프로세서 집적 회로.
  28. 청구항 28은(는) 설정등록료 납부시 포기되었습니다.
    제26항에 있어서, 상기 단일 독립 멀티프로세서 서브시스템 코어는 마이크로프로세서, DSP, 보조프로세서, 혼성 ASIC 또는 다른 네트워크 프로세싱 구성 중의 하나를 포함하는 SoC 구현으로 기능하는 SoC 프로세서 집적 회로.
  29. 청구항 29은(는) 설정등록료 납부시 포기되었습니다.
    제26항에 있어서, 상기 프로세서 클러스터의 상기 연관된 로컬 메모리는 로컬 SRAM 또는 온-칩 DRAM을 포함하는 SoC 프로세서 집적 회로.
  30. 청구항 30은(는) 설정등록료 납부시 포기되었습니다.
    제26항에 있어서,
    버스 및 I/O 매체 접속들을 감독하기 위한 소프트웨어 폴링 접속 수단(software polling connection means)을 더 포함하고,
    상기 폴링 접속 수단은 하나 이상의 네트워크 프로토콜을 처리하기 위하여 상기 SoC 로컬 시스템 버스 장치를 폴링하는 SoC 프로세서 집적 회로.
KR1020040053507A 2003-07-25 2004-07-09 시스템 온 칩 디자인을 위한 컴포넌트로서의 독립프로세서 서브시스템 KR100690557B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/604,491 US7353362B2 (en) 2003-07-25 2003-07-25 Multiprocessor subsystem in SoC with bridge between processor clusters interconnetion and SoC system bus
US10/604,491 2003-07-25

Publications (2)

Publication Number Publication Date
KR20050013076A KR20050013076A (ko) 2005-02-02
KR100690557B1 true KR100690557B1 (ko) 2007-03-09

Family

ID=34079572

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040053507A KR100690557B1 (ko) 2003-07-25 2004-07-09 시스템 온 칩 디자인을 위한 컴포넌트로서의 독립프로세서 서브시스템

Country Status (5)

Country Link
US (2) US7353362B2 (ko)
JP (1) JP4542845B2 (ko)
KR (1) KR100690557B1 (ko)
CN (1) CN100524287C (ko)
TW (1) TWI291104B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103106174A (zh) * 2011-11-09 2013-05-15 深圳市德赛微电子技术有限公司 一种复杂soc的片上通信方法

Families Citing this family (155)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7383421B2 (en) 2002-12-05 2008-06-03 Brightscale, Inc. Cellular engine for a data processing system
US8020163B2 (en) * 2003-06-02 2011-09-13 Interuniversitair Microelektronica Centrum (Imec) Heterogeneous multiprocessor network on chip devices, methods and operating systems for control thereof
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
WO2005091136A1 (en) 2004-03-13 2005-09-29 Cluster Resources, Inc. System and method for a self-optimizing reservation in time of compute resources
US7401316B2 (en) * 2004-04-23 2008-07-15 Sony Computer Entertainment Inc. Methods and apparatus for synthesizable pipeline control
JP4416572B2 (ja) * 2004-05-27 2010-02-17 富士通株式会社 信号処理回路
US20060031622A1 (en) * 2004-06-07 2006-02-09 Jardine Robert L Software transparent expansion of the number of fabrics coupling multiple processsing nodes of a computer system
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
US20060069811A1 (en) * 2004-08-27 2006-03-30 Kelly Edmund J Computer cluster
US8478907B1 (en) * 2004-10-19 2013-07-02 Broadcom Corporation Network interface device serving multiple host operating systems
CA2586763C (en) 2004-11-08 2013-12-17 Cluster Resources, Inc. System and method of providing system jobs within a compute environment
KR100737802B1 (ko) * 2004-12-30 2007-07-10 전자부품연구원 모듈형 디지털 신호 프로세서 블록 및 이를 이용한시스템-온-칩
KR100674934B1 (ko) * 2005-01-06 2007-01-26 삼성전자주식회사 온 칩 버스(On Chip Bus)에서 최적화된타일-스위치(tile-switch)맵핑(mapping) 구조를 결정하는 방법 및 그 방법을기록한 컴퓨터로 읽을 수 있는 기록 매체
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
WO2006108187A2 (en) 2005-04-07 2006-10-12 Cluster Resources, Inc. On-demand access to compute resources
EP1713007B1 (en) * 2005-04-11 2008-09-17 STMicroelectronics S.r.l. A dynamically reconfigurable System-on-Chip comprising a plurality of reconfigurable gate array devices
US8990501B1 (en) * 2005-10-12 2015-03-24 Azul Systems, Inc. Multiple cluster processor
KR100653087B1 (ko) * 2005-10-17 2006-12-01 삼성전자주식회사 AXI가 적용된 NoC 시스템 및 그 인터리빙 방법
JP2007122256A (ja) * 2005-10-26 2007-05-17 Hideaki Harada ネットワーク通信システム
JP4687399B2 (ja) * 2005-11-07 2011-05-25 セイコーエプソン株式会社 マルチプロセッサシステム及びデータバックアップ方法
EP1947799A4 (en) * 2005-11-08 2014-03-19 Sony Computer Entertainment Inc DATA COMMUNICATION METHOD, COMPUTER AND INFORMATION STORAGE MEDIUM
US8605712B1 (en) * 2005-11-21 2013-12-10 At&T Intellectual Property Ii, L.P. Method and apparatus for distributing video with offload engine
US7475182B2 (en) * 2005-12-06 2009-01-06 International Business Machines Corporation System-on-a-chip mixed bus architecture
US7568063B2 (en) * 2006-02-02 2009-07-28 Hewlett-Packard Development Company, L.P. System and method for a distributed crossbar network using a plurality of crossbars
KR101120398B1 (ko) * 2006-02-03 2012-02-24 러셀 에이치. Ⅲ 피시 스레드 최적화된 멀티프로세서 구조
FR2898753B1 (fr) * 2006-03-16 2008-04-18 Commissariat Energie Atomique Systeme sur puce a controle semi-distribue
JP5009979B2 (ja) 2006-05-22 2012-08-29 コーヒレント・ロジックス・インコーポレーテッド 処理システムでのソフトウェアプログラムの実行に基づくasicの設計
BRPI0713792A8 (pt) * 2006-06-27 2018-01-09 Hadasit Medical Res Services And Development Limited uso de derivados de estilbeno para tratamento e prevenção de infecções por fungos aquáticos
US7356671B1 (en) * 2006-07-27 2008-04-08 Vbridge Microsystem, Inc. SoC architecture for voice and video over data network applications
US8244718B2 (en) * 2006-08-25 2012-08-14 Teradata Us, Inc. Methods and systems for hardware acceleration of database operations and queries
US20080059763A1 (en) * 2006-09-01 2008-03-06 Lazar Bivolarski System and method for fine-grain instruction parallelism for increased efficiency of processing compressed multimedia data
WO2008027567A2 (en) * 2006-09-01 2008-03-06 Brightscale, Inc. Integral parallel machine
TWI376605B (en) * 2006-09-04 2012-11-11 Novatek Microelectronics Corp Method and apparatus for enhancing data rate of advanced micro-controller bus architecture
WO2008047179A1 (en) * 2006-10-20 2008-04-24 Freescale Semiconductor, Inc. Device having redundant core and a method for providing core redundancy
US7613753B2 (en) * 2006-11-28 2009-11-03 Alcatel Lucent Platform and method for functional programming (FP) processing
US7521961B1 (en) * 2007-01-23 2009-04-21 Xilinx, Inc. Method and system for partially reconfigurable switch
KR100855701B1 (ko) * 2007-01-26 2008-09-04 엠텍비젼 주식회사 복수의 프로세서 코어가 통합된 칩 및 데이터 처리 방법
US7765351B2 (en) * 2007-03-12 2010-07-27 International Business Machines Corporation High bandwidth low-latency semaphore mapped protocol (SMP) for multi-core systems on chips
GB0706134D0 (en) * 2007-03-29 2007-05-09 Nokia Oyj A modular device component
KR100862918B1 (ko) 2007-05-04 2008-10-13 성균관대학교산학협력단 멀티프로세서 SoC 플랫폼 및 이를 사용하는 DVB-T베이스밴드 수신장치
US8156273B2 (en) * 2007-05-10 2012-04-10 Freescale Semiconductor, Inc. Method and system for controlling transmission and execution of commands in an integrated circuit device
US7836372B2 (en) 2007-06-08 2010-11-16 Apple Inc. Memory controller with loopback test interface
DE102007037064B4 (de) * 2007-06-28 2009-06-10 IHP GmbH - Innovations for High Performance Microelectronics/Institut für innovative Mikroelektronik Einchipsystem
WO2009001368A2 (en) * 2007-06-28 2008-12-31 Indian Institute Of Science A method and system-on-chip fabric
JP2009048298A (ja) * 2007-08-15 2009-03-05 Sony Corp 情報処理装置、情報処理方法、当該情報処理方法を実行するためのプログラム及び当該プログラムを記録した媒体、並びにdmaコントローラ、dma転送方法、当該dma転送方法を実行するためのプログラム及び当該プログラムを記録した媒体
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
FR2925187B1 (fr) * 2007-12-14 2011-04-08 Commissariat Energie Atomique Systeme comportant une pluralite d'unites de traitement permettant d'executer des taches en parallele,en mixant le mode d'execution de type controle et le mode d'execution de type flot de donnees
US7743191B1 (en) * 2007-12-20 2010-06-22 Pmc-Sierra, Inc. On-chip shared memory based device architecture
CN101472088A (zh) * 2007-12-25 2009-07-01 新奥特(北京)视频技术有限公司 一种***间交互方法
US20090199290A1 (en) * 2008-02-01 2009-08-06 Secure Computing Corporation Virtual private network system and method
US7904872B2 (en) * 2008-05-22 2011-03-08 International Business Machines Corporation System-on-chip (SOC), design structure and method
WO2009145608A1 (en) * 2008-05-27 2009-12-03 Eonic B.V. Flexible architecture data processing unit
US8195784B2 (en) * 2008-05-30 2012-06-05 Microsoft Corporation Linear programming formulation of resources in a data center
US8812421B1 (en) * 2008-06-09 2014-08-19 Euler Optimization, Inc. Method and apparatus for autonomous synchronous computing
US8250280B1 (en) * 2008-07-15 2012-08-21 Marvell Israel (M.I.S.L.) Ltd. Bus transaction maintenance protocol
US8160092B1 (en) 2008-08-05 2012-04-17 Xilinx, Inc. Transforming a declarative description of a packet processor
US7804844B1 (en) * 2008-08-05 2010-09-28 Xilinx, Inc. Dataflow pipeline implementing actions for manipulating packets of a communication protocol
US8311057B1 (en) 2008-08-05 2012-11-13 Xilinx, Inc. Managing formatting of packets of a communication protocol
US7949007B1 (en) 2008-08-05 2011-05-24 Xilinx, Inc. Methods of clustering actions for manipulating packets of a communication protocol
US7917684B2 (en) * 2008-11-05 2011-03-29 Micron Technology, Inc. Bus translator
CN101739241A (zh) * 2008-11-12 2010-06-16 中国科学院微电子研究所 一种片上多核dsp簇和应用扩展方法
US20100191911A1 (en) * 2008-12-23 2010-07-29 Marco Heddes System-On-A-Chip Having an Array of Programmable Processing Elements Linked By an On-Chip Network with Distributed On-Chip Shared Memory and External Shared Memory
US8631208B2 (en) 2009-01-27 2014-01-14 Intel Corporation Providing address range coherency capability to a device
US9195464B2 (en) * 2009-04-27 2015-11-24 Intel Corporation Tracking written addresses of a shared memory of a multi-core processor
US9461930B2 (en) 2009-04-27 2016-10-04 Intel Corporation Modifying data streams without reordering in a multi-thread, multi-flow network processor
US8234460B2 (en) 2009-06-04 2012-07-31 Micron Technology, Inc. Communication between internal and external processors
US8364862B2 (en) * 2009-06-11 2013-01-29 Intel Corporation Delegating a poll operation to another device
US8599863B2 (en) 2009-10-30 2013-12-03 Calxeda, Inc. System and method for using a multi-protocol fabric module across a distributed server interconnect fabric
US20110103391A1 (en) 2009-10-30 2011-05-05 Smooth-Stone, Inc. C/O Barry Evans System and method for high-performance, low-power data center interconnect fabric
US9054990B2 (en) 2009-10-30 2015-06-09 Iii Holdings 2, Llc System and method for data center security enhancements leveraging server SOCs or server fabrics
US9876735B2 (en) 2009-10-30 2018-01-23 Iii Holdings 2, Llc Performance and power optimized computer system architectures and methods leveraging power optimized tree fabric interconnect
US9077654B2 (en) 2009-10-30 2015-07-07 Iii Holdings 2, Llc System and method for data center security enhancements leveraging managed server SOCs
US9465771B2 (en) 2009-09-24 2016-10-11 Iii Holdings 2, Llc Server on a chip and node cards comprising one or more of same
US20130107444A1 (en) 2011-10-28 2013-05-02 Calxeda, Inc. System and method for flexible storage and networking provisioning in large scalable processor installations
US8473818B2 (en) * 2009-10-12 2013-06-25 Empire Technology Development Llc Reliable communications in on-chip networks
US9680770B2 (en) 2009-10-30 2017-06-13 Iii Holdings 2, Llc System and method for using a multi-protocol fabric module across a distributed server interconnect fabric
US9311269B2 (en) 2009-10-30 2016-04-12 Iii Holdings 2, Llc Network proxy for high-performance, low-power data center interconnect fabric
US9648102B1 (en) 2012-12-27 2017-05-09 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US10877695B2 (en) 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US8380724B2 (en) * 2009-11-24 2013-02-19 Microsoft Corporation Grouping mechanism for multiple processor core execution
US8650629B2 (en) * 2009-12-16 2014-02-11 Intel Corporation Interface logic for a multi-core system-on-a-chip (SoC)
KR101043199B1 (ko) * 2010-01-22 2011-06-21 한국과학기술원 싱글 코어용 캐시 컨트롤러를 이용한 멀티 코어용 캐시 회로, 이를 포함하는 캐시 장치, 반도체 장치 및 캐시 메모리 제어 방법
US20110249744A1 (en) * 2010-04-12 2011-10-13 Neil Bailey Method and System for Video Processing Utilizing N Scalar Cores and a Single Vector Core
US8611352B2 (en) * 2010-04-20 2013-12-17 Marvell World Trade Ltd. System and method for adapting a packet processing pipeline
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
US9098438B2 (en) * 2010-09-30 2015-08-04 Texas Instruments Incorporated Synchronized voltage scaling and device calibration
JP5815717B2 (ja) 2010-10-15 2015-11-17 コーヒレント・ロジックス・インコーポレーテッド マルチプロセッサシステムにおける通信の無効化
JP5135416B2 (ja) * 2010-11-02 2013-02-06 株式会社バッファロー ネットワーク中継装置
MY169787A (en) * 2010-11-29 2019-05-15 Mimos Berhad A system-on-chip for baseband processing
CN102546558B (zh) * 2010-12-29 2015-10-21 中兴通讯股份有限公司 一种光网络单元中协议的切换方法及光网络单元
US8583850B2 (en) * 2011-02-14 2013-11-12 Oracle America, Inc. Micro crossbar switch and on-die data network using the same
CN102637157B (zh) * 2011-02-15 2014-12-03 郑磊 一种片上数字模板***dtsoc
US8793095B2 (en) * 2011-03-09 2014-07-29 Intel Corporation Functional fabric-based test controller for functional and structural test and debug
US9043665B2 (en) 2011-03-09 2015-05-26 Intel Corporation Functional fabric based test wrapper for circuit testing of IP blocks
US8522189B2 (en) 2011-03-09 2013-08-27 Intel Corporation Functional fabric based test access mechanism for SoCs
CN102226895B (zh) * 2011-06-01 2013-05-01 展讯通信(上海)有限公司 协处理器和主处理器共享存储器的***及访问方法
CN102831908A (zh) * 2011-06-14 2012-12-19 上海三旗通信科技股份有限公司 Mtk平台下中星微协处理器外部声音回传的控制和播放
JPWO2012172682A1 (ja) * 2011-06-17 2015-02-23 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US9380132B2 (en) 2011-06-27 2016-06-28 Marvell Israel (M.I.S.L.) Ltd. FCoE over trill
JP5728088B2 (ja) * 2011-06-29 2015-06-03 株式会社日立製作所 入出力制御装置及び入出力制御装置のフレーム処理方法
US8929373B2 (en) * 2011-09-29 2015-01-06 Intel Corporation Sending packets with expanded headers
US9092594B2 (en) 2011-10-31 2015-07-28 Iii Holdings 2, Llc Node card management in a modular and large scalable server system
US9208110B2 (en) 2011-11-29 2015-12-08 Intel Corporation Raw memory transaction support
KR20130087853A (ko) * 2012-01-30 2013-08-07 삼성전자주식회사 파워 컨트롤 시스템 및 그 동작 방법
WO2013168427A1 (ja) 2012-05-11 2013-11-14 パナソニック株式会社 バス制御装置、バス制御システム、およびネットワークインタフェース
KR101975288B1 (ko) 2012-06-15 2019-05-07 삼성전자 주식회사 멀티 클러스터 프로세싱 시스템 및 그 구동 방법
US9229895B2 (en) * 2012-09-13 2016-01-05 Intel Corporation Multi-core integrated circuit configurable to provide multiple logical domains
US9129071B2 (en) * 2012-10-24 2015-09-08 Texas Instruments Incorporated Coherence controller slot architecture allowing zero latency write commit
US9526285B2 (en) 2012-12-18 2016-12-27 Intel Corporation Flexible computing fabric
US9019832B2 (en) * 2013-03-14 2015-04-28 Mediatek Inc. Network switching system and method for processing packet switching in network switching system
US9292409B2 (en) * 2013-06-03 2016-03-22 Infineon Technologies Ag Sensor interfaces
GB2515053A (en) * 2013-06-12 2014-12-17 Acano Uk Ltd Collaboration Server
ES2764212T3 (es) 2013-06-19 2020-06-02 Schneider Electric Ind Sas Solución Ethernet universal
US9547497B2 (en) * 2013-09-27 2017-01-17 Intel Corporation Sharing embedded hardware resources
US9270659B2 (en) 2013-11-12 2016-02-23 At&T Intellectual Property I, L.P. Open connection manager virtualization at system-on-chip
US9456071B2 (en) 2013-11-12 2016-09-27 At&T Intellectual Property I, L.P. Extensible kernel for adaptive application enhancement
CN105814537B (zh) 2013-12-27 2019-07-09 英特尔公司 可扩展输入/输出***和技术
US9503552B2 (en) * 2014-05-09 2016-11-22 Google Inc. System and method for adapting to network protocol updates
US9424173B2 (en) 2014-10-23 2016-08-23 GlobalFoundries, Inc. Performing secure address relocation within a multi-processor system sharing a same physical memory channel to external memory
CN104391821A (zh) * 2014-11-20 2015-03-04 天津大学 一种多核共享simd协处理器的***级模型构建方法
KR102106889B1 (ko) * 2014-12-11 2020-05-07 한화디펜스 주식회사 소형통합제어장치
KR102106890B1 (ko) * 2014-12-11 2020-05-07 한화디펜스 주식회사 소형통합제어장치
CN104519055A (zh) * 2014-12-11 2015-04-15 曙光信息产业(北京)有限公司 Vpn业务实现方法、装置和vpn服务器
US10394731B2 (en) 2014-12-19 2019-08-27 Amazon Technologies, Inc. System on a chip comprising reconfigurable resources for multiple compute sub-systems
US10523585B2 (en) 2014-12-19 2019-12-31 Amazon Technologies, Inc. System on a chip comprising multiple compute sub-systems
CN105808502B (zh) * 2014-12-29 2019-09-13 杭州华为数字技术有限公司 片上***
CN104580257B (zh) * 2015-02-03 2018-08-03 厦门中智信***集成有限公司 智能化建筑群io点交互通讯方法
US11200192B2 (en) 2015-02-13 2021-12-14 Amazon Technologies. lac. Multi-mode system on a chip
US9588921B2 (en) * 2015-02-17 2017-03-07 Amazon Technologies, Inc. System on a chip comprising an I/O steering engine
EP3274851B1 (en) 2015-03-27 2020-06-17 Intel Corporation Dynamic configuration of input/output controller access lanes
EP3266175A4 (en) 2015-05-29 2018-09-26 Hewlett Packard Enterprise Development LP Determining actions to be immediately performed on a network packet with an application specific integrated circuit
US9946674B2 (en) * 2016-04-28 2018-04-17 Infineon Technologies Ag Scalable multi-core system-on-chip architecture on multiple dice for high end microcontroller
US10331590B2 (en) * 2016-06-30 2019-06-25 Intel Corporation Graphics processing unit (GPU) as a programmable packet transfer mechanism
CN106254061B (zh) * 2016-08-14 2019-08-23 北京数盾信息科技有限公司 一种高速网络存贮加解密方法
CN107196757B (zh) * 2017-05-19 2020-06-09 广州瑞特租赁服务有限公司 服务器通信安全加密芯片
US11500681B2 (en) * 2017-06-29 2022-11-15 Intel Corporation Technologies for managing quality of service platform interconnects
KR102424962B1 (ko) * 2017-11-15 2022-07-25 삼성전자주식회사 병렬 연산 처리를 수행하는 메모리 장치 및 이를 포함하는 메모리 모듈
US10628365B2 (en) 2017-11-17 2020-04-21 Hewlett Packard Enterprise Development Lp Packet tunneling for multi-node, multi-socket systems
EP4009183A1 (en) * 2018-10-18 2022-06-08 Shanghai Cambricon Information Technology Co., Ltd Network-on-chip data processing method and device
CN113383516B (zh) * 2018-12-12 2022-08-02 因特拉克蒂克控股有限责任公司 用于处理器核之间的改进的数据传输的方法和装置
US11264361B2 (en) * 2019-06-05 2022-03-01 Invensas Corporation Network on layer enabled architectures
CN110321317B (zh) * 2019-06-28 2021-10-01 兆讯恒达科技股份有限公司 一种多接口和多协处理器的芯片
CN110769125A (zh) * 2019-10-29 2020-02-07 江苏微锐超算科技有限公司 一种适用于处理芯片的通信协议选择方法及装置
CN111124984A (zh) * 2019-12-24 2020-05-08 广州小鹏汽车科技有限公司 多车载微控制单元间的通信方法及***
TW202141290A (zh) * 2020-01-07 2021-11-01 韓商愛思開海力士有限公司 記憶體中處理(pim)系統和pim系統的操作方法
TWI810523B (zh) * 2020-03-12 2023-08-01 日商愛德萬測試股份有限公司 自動測試裝備系統及設備、以及用於測試受測裝置的方法
CN111367852B (zh) * 2020-03-23 2021-08-10 广州视源电子科技股份有限公司 一种设备的操作方法、装置、设备和存储介质
US11487683B2 (en) 2020-04-15 2022-11-01 AyDeeKay LLC Seamlessly integrated microcontroller chip
CN112882989B (zh) * 2021-02-04 2024-04-02 无锡沐创集成电路设计有限公司 协议处理***和协议数据处理方法
KR102623397B1 (ko) * 2023-04-07 2024-01-10 메티스엑스 주식회사 매니코어 시스템
CN117332746B (zh) * 2023-12-01 2024-03-08 中国海洋大学三亚海洋研究院 一种兼顾常态低速和短时高速的信号处理板卡设计方法
CN117389931B (zh) * 2023-12-12 2024-05-03 芯动微电子科技(武汉)有限公司 适用于总线访问gpu核内存储器的协议转换模块及方法

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4633394A (en) * 1984-04-24 1986-12-30 International Business Machines Corp. Distributed arbitration for multiple processors
US4751634A (en) * 1985-06-14 1988-06-14 International Business Machines Corporation Multiple port communications adapter apparatus
US4751635A (en) * 1986-04-16 1988-06-14 Bell Communications Research, Inc. Distributed management support system for software managers
US4829511A (en) * 1987-10-14 1989-05-09 International Business Machines Corporation Switched network of optical buses
US4929939A (en) * 1988-10-31 1990-05-29 International Business Machines Corporation High-speed switching system with flexible protocol capability
US4952930A (en) * 1988-11-18 1990-08-28 International Business Machines Corp. Multipath hierarchical network
JP2986802B2 (ja) * 1989-03-13 1999-12-06 株式会社日立製作所 プロトコル高速処理方法
US6070003A (en) * 1989-11-17 2000-05-30 Texas Instruments Incorporated System and method of memory access in apparatus having plural processors and plural memories
US5161156A (en) * 1990-02-02 1992-11-03 International Business Machines Corporation Multiprocessing packet switching connection system having provision for error correction and recovery
FR2667465A1 (fr) * 1990-09-27 1992-04-03 Cit Alcatel Pont pour relier un reseau local, conforme a la norme ieee 802.3, a un reseau de telecommunication a technique temporelle asynchrone.
US5250943A (en) * 1991-03-29 1993-10-05 International Business Machines Corporation GVT-NET--A Global Virtual Time Calculation Apparatus for Multi-Stage Networks
US5189314A (en) * 1991-09-04 1993-02-23 International Business Machines Corporation Variable chip-clocking mechanism
JP2571655B2 (ja) * 1991-11-27 1997-01-16 インターナショナル・ビジネス・マシーンズ・コーポレイション プロトコル変換機構、交換ネットワーク及びコンピュータ・システム
US5640399A (en) * 1993-10-20 1997-06-17 Lsi Logic Corporation Single chip network router
US5586273A (en) * 1994-08-18 1996-12-17 International Business Machines Corporation HDLC asynchronous to synchronous converter
US5838935A (en) * 1995-06-15 1998-11-17 Intel Corporation Method and apparatus providing programmable decode modes for secondary PCI bus interfaces
DE69610548T2 (de) 1995-07-21 2001-06-07 Koninklijke Philips Electronics N.V., Eindhoven Multi-media-prozessorarchitektur mit hoher leistungsdichte
US5798918A (en) * 1996-04-29 1998-08-25 International Business Machines Corporation Performance-temperature optimization by modulating the switching factor of a circuit
JPH10161973A (ja) 1996-11-29 1998-06-19 Hitachi Ltd バス制御装置およびバスユニット
KR100366689B1 (ko) 1996-12-19 2003-01-06 하이닉스 세미컨덕터 아메리카 인코포레이티드 비디오 프레임 렌더링 엔진
US5905873A (en) * 1997-01-16 1999-05-18 Advanced Micro Devices, Inc. System and method of routing communications data with multiple protocols using crossbar switches
US5931933A (en) * 1997-06-16 1999-08-03 International Business Machines Corporation Apparatus and method for communication and translation for selected one of a variety of data bus formats
US6032245A (en) * 1997-08-18 2000-02-29 International Business Machines Corporation Method and system for interrupt handling in a multi-processor computer system executing speculative instruction threads
US6055581A (en) * 1997-08-18 2000-04-25 International Business Machines Corporation Vital product data concentrator and protocol converter
US6038630A (en) * 1998-03-24 2000-03-14 International Business Machines Corporation Shared access control device for integrated system with multiple functional units accessing external structures over multiple data buses
JP2000004273A (ja) 1998-04-16 2000-01-07 Toshiba Corp 通信プラットフォームlsiシステム、及び同システムに用いられる通信プラットフォームlsi、並びに同システムに於けるその通信制御方法
US6331977B1 (en) * 1998-08-28 2001-12-18 Sharp Electronics Corporation System on chip (SOC) four-way switch crossbar system and method
US6385748B1 (en) * 1999-03-30 2002-05-07 Nec Electronics, Inc. Direct access logic testing in integrated circuits
US6262594B1 (en) * 1999-11-05 2001-07-17 Ati International, Srl Apparatus and method for configurable use of groups of pads of a system on chip
US6405289B1 (en) * 1999-11-09 2002-06-11 International Business Machines Corporation Multiprocessor system in which a cache serving as a highest point of coherency is indicated by a snoop response
US6769046B2 (en) * 2000-02-14 2004-07-27 Palmchip Corporation System-resource router
US6965960B2 (en) * 2000-03-01 2005-11-15 Realtek Semiconductor Corporation xDSL symbol processor and method of operating same
JP2001325207A (ja) 2000-05-17 2001-11-22 Hitachi Ltd キャッシュ内蔵型スイッチおよび計算機システムおよびキャッシュ内蔵型スイッチのスイッチ制御方法
WO2001095057A2 (en) * 2000-06-02 2001-12-13 Radisys Corporation Voice-over ip communication without echo cancellation
US6678535B1 (en) * 2000-06-30 2004-01-13 International Business Machines Corporation Pervasive dock and router with communication protocol converter
US6721313B1 (en) * 2000-08-01 2004-04-13 International Business Machines Corporation Switch fabric architecture using integrated serdes transceivers
US6651131B1 (en) * 2000-09-06 2003-11-18 Sun Microsystems, Inc. High bandwidth network and storage card
US6662253B1 (en) * 2000-09-13 2003-12-09 Stmicroelectronics, Inc. Shared peripheral architecture
US7218616B2 (en) * 2001-03-09 2007-05-15 Stmicroelectronics, Inc. Octagonal interconnection network for linking processing nodes on an SOC device and method of operating same
US20020174244A1 (en) * 2001-05-18 2002-11-21 Telgen Corporation System and method for coordinating, distributing and processing of data
US20020172197A1 (en) * 2001-05-18 2002-11-21 Dale Michele Zampetti System interconnect with minimal overhead suitable for real-time applications
GB2376390B (en) * 2001-06-05 2003-08-06 3Com Corp Asic system architecture including data aggregation technique
US20030046492A1 (en) * 2001-08-28 2003-03-06 International Business Machines Corporation, Armonk, New York Configurable memory array
US7404000B2 (en) 2001-09-28 2008-07-22 Emc Corporation Protocol translation in a storage system
US6904040B2 (en) * 2001-10-05 2005-06-07 International Business Machines Corporaiton Packet preprocessing interface for multiprocessor network handler
US7072970B2 (en) * 2001-10-05 2006-07-04 International Business Machines Corporation Programmable network protocol handler architecture
US7013398B2 (en) * 2001-11-15 2006-03-14 Nokia Corporation Data processor architecture employing segregated data, program and control buses
US6753747B2 (en) * 2002-04-01 2004-06-22 Intel Corporation Integrated microsprings for high speed switches
US7093258B1 (en) * 2002-07-30 2006-08-15 Unisys Corporation Method and system for managing distribution of computer-executable program threads between central processing units in a multi-central processing unit computer system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103106174A (zh) * 2011-11-09 2013-05-15 深圳市德赛微电子技术有限公司 一种复杂soc的片上通信方法

Also Published As

Publication number Publication date
TWI291104B (en) 2007-12-11
US20050021871A1 (en) 2005-01-27
TW200604836A (en) 2006-02-01
CN1910571A (zh) 2007-02-07
CN100524287C (zh) 2009-08-05
US7917729B2 (en) 2011-03-29
US7353362B2 (en) 2008-04-01
US20070239966A1 (en) 2007-10-11
JP2005044361A (ja) 2005-02-17
KR20050013076A (ko) 2005-02-02
JP4542845B2 (ja) 2010-09-15

Similar Documents

Publication Publication Date Title
KR100690557B1 (ko) 시스템 온 칩 디자인을 위한 컴포넌트로서의 독립프로세서 서브시스템
KR100986006B1 (ko) 마이크로프로세서 서브시스템
US10437764B2 (en) Multi protocol communication switch apparatus
US11677662B2 (en) FPGA-efficient directional two-dimensional router
EP3400688B1 (en) Massively parallel computer, accelerated computing clusters, and two dimensional router and interconnection network for field programmable gate arrays, and applications
US8127112B2 (en) SIMD array operable to process different respective packet protocols simultaneously while executing a single common instruction stream
EP2923279B1 (en) Processing system with interspersed processors; dma-fifo
CN105207957B (zh) 一种基于片上网络多核架构的***
CN112151486A (zh) 模块化集成电路设备的结构管芯到结构管芯的互连
Stewart et al. A new generation of cluster interconnect
Hilton et al. A flexible circuit switched NOC for FPGA based systems
Moh et al. KinCA: An InfiniBand host channel adapter based on dual processor cores

Legal Events

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

Payment date: 20121119

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140123

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150121

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160127

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170201

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180201

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190129

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20200129

Year of fee payment: 14