KR100754578B1 - 단일 칩 프로토콜 컨버터 - Google Patents

단일 칩 프로토콜 컨버터 Download PDF

Info

Publication number
KR100754578B1
KR100754578B1 KR1020040057615A KR20040057615A KR100754578B1 KR 100754578 B1 KR100754578 B1 KR 100754578B1 KR 1020040057615 A KR1020040057615 A KR 1020040057615A KR 20040057615 A KR20040057615 A KR 20040057615A KR 100754578 B1 KR100754578 B1 KR 100754578B1
Authority
KR
South Korea
Prior art keywords
protocol
soc
single chip
protocol converter
packet
Prior art date
Application number
KR1020040057615A
Other languages
English (en)
Other versions
KR20050012677A (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
Priority claimed from US10/604,491 external-priority patent/US7353362B2/en
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20050012677A publication Critical patent/KR20050012677A/ko
Application granted granted Critical
Publication of KR100754578B1 publication Critical patent/KR100754578B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • 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/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7825Globally asynchronous, locally synchronous, e.g. network on chip
    • 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

Abstract

제1 프로토콜 타입에 따라서 생성된 패킷을 수신하고, 프로토콜 변환을 구현하기 위하여 상기 패킷을 프로세싱하며 - 프로토콜 변환 프로세싱은 전적으로 단일 집적 회로 칩(single integrated circuit chip) 내에서 수행됨 - , 출력을 위해 제2 프로토콜 타입의 변환된 패킷을 생성할 수 있는 단일 칩 프로토콜 컨버터 집적 회로(single chip protocol converter integrated circuit)가 제시된다. 단일 칩 프로토콜 컨버터는 시스템 온 칩(System-On-Chip; SoC) 구현 내의 매크로 코어로서 추가로 구현될 수 있는데, 프로토콜 변환 프로세스는 호스트 시스템의 프로세싱 리소스를 요구하지 않고 SoC 프로토콜 변환 매크로 코어 내에 포함된다. 부가하여, 패킷 변환은 제1 프로토콜 버전 수준에 따라 생성된 패킷을 변환하고, 제2 프로토콜 버전 수준에 따라 그러나 동일한 프로토콜 패밀리 타입(protocole family type) 내에서 변환된 패킷을 생성하기 위한 프로토콜 변환을 구현하기 위하여 상기 패킷들을 프로세싱할 것을 요구한다. 단일 칩 프로토콜 컨버터 집적 회로 및 SoC 프로토콜 변환 매크로 구현은 칩의 동작 기능을 적응시키거나 변경하도록 구성할 수 있는 프로세서 장치들을 포함하는 멀티프로세싱 기능을 포함한다.
프로토콜 변환, 패킷, 프로토콜 컨버터, 프로토콜 변환기, SoC, 시스템 온 칩

Description

단일 칩 프로토콜 컨버터{A SINGLE CHIP PROTOCOL CONVERTER}
본 발명의 장치 및 방법에 관한 특징, 태양 및 장점에 대하여 첨부된 상세한 설명, 청구범위 및 도면을 참고하면 더욱 잘 이해할 수 있다.
도 1은 종래기술에 따른 단일 프로세서를 사용한 전형적인 SoC를 도시한 블록도.
도 2는 종래기술에 따른 프로세서 가속기를 이용하는 오늘날 거래되는 전형적인 SoC를 도시한 블록도.
도 3은 종래기술에 따른 모토로라 MPC5554 마이크로 컨트롤러(SoC 통합 크로스바 스위치)를 도시한 블록도.
도 4는 종래기술에 따른 SAN 네트워크용 Brocade의 SilkwormTM 패브릭 애플리케이션 서버(Fabric Application Server)를 도시한 블록도.
도 5는 본 발명의 일 실시예에 따른 단일 칩 프로토콜 컨버터 코어 디자인(Single Chip Protocol Converter Core Design)의 예시적인 개관을 도시한 도면.
도 6은 본 발명의 일 실시예에 따른 파이버 채널 대 기가비트 이더넷 단일 칩 프로토콜 컨버터로서 구성된 프로토콜 코어를 예시적으로 도시한 도면.
도 7은 본 발명의 일 실시예에 따른 단일 칩 프로토콜 컨버터 내의 예시적 인 메모리 할당을 도시한 도면.
도 8은 본 발명의 제2 태양에 따른 SoC 디자인 내의 임베디드 매크로로서 구성된 프로토콜 컨버터 칩을 도시한 도면.
도 9는 본 발명에 따른 도 8의 시스템용 외부 I/O로의 SoC 매크로 내의 SoC 프로토콜 컨버터 패킷 플로우를 도시한 도면.
도 10은 본 발명에 따른 호스트 버스로부터 SoC 장치 외부 패킷 인도 인터페이스로의 예시적인 SoC 프로토콜 컨버터 패킷 플로우를 도시한 도면.
< 도면의 주요 부분에 대한 부호 설명 >
15 : SRAM
18 : DDR SDRAM 제어기
21 : 프로세서 로컬 버스
22 : PCI-X 브릿지
24 : 온 칩 주변 버스
25 : 440PowerPC
26 : DMA
28 : DMA 제어기
<관련 발명>
본 출원은 2003년 7월 25일에 제출된 "시스템 온 칩 디자인을 위한 컴포넌트로서의 독립 프로세서 서브 시스템(Self-contained processor subsystem as component for System-on-Chip design)"이라는 명칭을 갖는, 공동으로 소유되고(commonly-owned), 출원 중인(co-pending) 미국 특허 출원 번호 10/604,941의 계속 출원(continuation-in-part application)인데, 상기 출원의 내용 및 개시는 본 명세서에 참조에 의해 삽입된다.
본 발명은 네트워크 프로세서 장치 및 SAN(storage area network)에 관한 것으로, 특히, 전통적인 SoC, DSP, FPGA 혹은 유사한 집적 회로 서브 시스템의 서브-프로세서 코어 컴포넌트로서 또는 단일 IC 칩 내에 구현된 프로토콜 변환 아키텍쳐를 제공함으로써 복수의 네트워크 프로토콜들을 연결하는 시스템 및 방법에 관한 것이다.
인터넷의 거대한 팽창뿐만 아니라, 시장이 SAN 및 NAS(network attached storage) 시스템으로 이동해 감에 따라, 서버 및 저장 장치 설계에 대한 새로운 요구가 생겨난다. 병렬 SCSI 접속을 통해 접속된 저장 장치는 파이버 채널 SAN(Fibre Channel SAN; FC SAN) 및, iSCSI 그리고 IP를 통한 파이버 채널(FC-IP)과 같은 다른 부상하는 네트워킹 아키텍쳐에 의해 대체되고 있다. FC-IP는, IP 네트워크를 통해 SAN 설비들 사이에서 데이터를 터널링(tunneling)시킴으로써 FC 정보의 전송을 가능하게 하는 IP(internet protocol) 기반의 저장 장치 네트워킹 기술이고, iSCSI는 통상적으로 기가비트 이더넷을 통해 구성되는 TCP/IP 네트워크를 통한 블록 데이터의 전송을 포함한다.
범용 CPU는 네트워크 프로토콜 변환의 계산 요구 사항을 만족시킬 수도 없고, 유닛 비용, 공간 및 전력에 있어서도 과도한 비용이 든다. 이로 인해, 많은 네트워킹 및 프로토콜 프로세싱 기능들이 호스트 프로세서로부터 HBA(Host-Bus-Adapter) 또는 NIC(Network Interface Controller)으로 이전된다. 초기에, 대부분의 HBA들 및 NIC들은 배선 논리회로(hardwired logic)를 사용하는 ASIC으로 구현되었다. 그러나, TCP/IP 또는 iSCSI와 같은 복잡한 네트워크 프로토콜을 구현해야 할 필요성이 증가함에 따라, 프로그래머블 솔루션들이 제공하는 많은 잇점들 - 이들은 상이한 그리고 진화하는 프로토콜들을 수용할 수 있고, 프로그램 변경을 통해 쉽게 업그레이드 가능하며, 시장에 신속하게 제공할 수 있음 - 로인해 이들이 매력을 갖게 되었다.
기존의 SAN들은 종종 물리적으로 원격에 위치하고, 때때로 아주 먼 거리에 위치하며, 복수의 네트워크 아키텍쳐들을 사용하는 경우가 많다. 기존의 SAN들을 통합하고, 현재의 WAN 및 LAN 기반 구조를 이용하기 위하여, 데이터 통신 및 전자 통신(telecommunication) 분야 모두에 있어서 네트워크 프로토콜 변환에 대한 필요성이 존재한다. 프로토콜 변환으로 인해 시스템 내의 모든 상이한 부분들의 무결절 통합(seamless integration) 및 동작이 가능해질 것이다.
파이버 채널 대 파이버 채널(FC to FC), iSCSI 대 FC 브릿징(bridging) 및 파이버 채널 대 FC-IP 전환을 제공하기로 계획된, 복수 프로토콜 패브릭 라우팅 서비스(multiprotocole fabric routing service)를 위한 시스템 레벨 프로토콜 컨버터 제품이 브로케이드 통신 시스템(Brocade Communication Systems)에 의해 발표되 었다[http://biz.yahoo.com/prnews/031028/sftu10_1.html].
현재의 프로토콜 컨버터들은 희망하는 로직 기능들을 얻기 위하여 복수의 칩들을 하나의 카드 상에 통합하거나, 보다 통상적으로는 현재의 호스트 시스템에 삽입된(plugged) HBA 카드 또는 메인 호스트 I/O 카드 상의 도터 카드(daughter card)로서 통합하는데, 이로 인해 유닛 비용, 공간 및 전력에 있어서 부피가 크고, 비용이 많이 소모되는 제품이 초래된다. 또한, 현재의 프로토콜 컨버터들은 프로그램 가능하지 않거나, 매우 제한된 프로그램 가능성(programmability)만을 가지며, 상이한 또는 새로운 프로토콜들의 수용을 위한 업그레이드가 용이하지 않다. 이외에도, 다양한 물리 계층 액세스 모듈 또는 칩들이 존재하는데, 이들의 구현 및 회로 기술은 종종 하나의 특정 물리 계층 프로토콜에 대해서 최적화되므로, 포트 상에서 새로운 물리 계층 프로토콜이 요구되는 경우에는 전체 HBA 카드 또는 여러 컴포넌트들의 교체가 필요하게 된다. 통상적으로, 변환은 동일한 물리적인 I/O 카드 내에서 수행되지 않으며, 단일 칩 솔루션 내에서 또는 SoC 반도체 장치 내의 임베디드 코어로서도 수행되지 않는다.
종래 기술에 따른 시스템 온 칩 디자인(20)이 도 1에 도시되어 있다. 이는 PPC440(Power PC; 25)와 같은 프로세싱 요소, 로컬 프로세서 버스(PLB; 21), 온 칩 주변 버스(OPB; 24) 및, SRAM(15), DDR 제어기(18), PCI-X 브릿지(22), DMA(26)와 DMA 제어기(28), 이더넷 LAN 시스템을 위한 데이터 링크 계층을 제공하기 위하여 사용되는 이더넷 MAC(Medium Access Control) 프로토콜 장치(50), 프로세서 코어 타이머(33), 인터럽트 제어기(35), 및 OPB 버스(24)와 PLB(21)를 인터페이싱하 는 OPB 브릿지(29)등의 다수의 부품을 포함한다. 도 1에 도시된 종래 기술 구현예에서, I.B.M.의 임베디드 PowerPC440 프로세서 코어 및 CoreConnect 로컬 버스가 이용되지만, ARM(예컨대 http://www.arm.com/products/?OpenDocument 참조), MIPS(MIPS: http://www.ce.chalmers.se/~thomasl/inlE/mips32_4Kp_brief.pdf에서 "MIPS32 4KP-Embedded MIPS Processor Core" 참조) 프로세싱 코어등과 같은 다른 임베디드 프로세서 코어들을 사용하는 유사한 구성들을 발견할 수 있다. 도 1에 도시된 바와 같이, 온 칩 주변 버스(24)와 인터페이싱하기 위해 제공되는 다른 장치들은 RAM/ROM 주변 제어기(45a), 외부 버스 마스터(45b), UART 장치(45c), IC 버스간(I2C) 인터페이스(45d), 범용 I/O 인터페이스(45e) 및 게이트웨이 인터페이스(45f) 중의 하나를 포함한다.
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)를 기술한다. 상호 접속 네트워크 상의 기능적 유닛들은 환형으로 구성되고, 컴포넌트들을 중간에서 연결시키는 여러 크로싱 데이터 링크들(crossing data links)을 사용한다.
미국 특허 출원 번호 US2001/0042147은 SoC 상호 접속을 위한 시스템 자원 라우터를 기술하는데, 이는 각각 데이터 캐시(D-캐시) 및 명령어(I-캐시)와의 접속을 갖는 두 개의 채널 소켓을 구비한다. 또한, 상호 접속을 제공하기 위하여, 외부 데이터 전송 개시자(external data transfer initiators), 두 개의 내부 M-채널 버스들, 및 M-채널 제어기가 포함된다.
미국 특허 출원 번호 US2002/0172197은 칩에 포함된 크로스바 스위치를 통해 점 대 점(point to point) 방식으로 다수의 전송 및 수신 장치들을 접속시키는 통신 시스템을 기술한다.
미국 특허 출원 번호 US2001/0047465는 전송들을 개별 전송 작업들로 분할하고, 각각의 전송 작업에 대한 계산 복잡도 및 회로 당 MIPS의 수에 기초한 계산 복잡도를 결정함으로써 전체 게이트를 최소화하기 위한 통신 시스템(통상적으로 SoC 또는 ASIC)의 가변(scalable) 아키텍쳐에 관한 본 발명의 여러 변형예를 기술한다.
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일까지 폴란드, 바르샤바에서 열린 "Conf.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 버스 아키텍쳐에 관해 기술되어 있다.
단일 임베디드 프로세서에 기반한 접근법은 일부 애플리케이션들에 있어서는 비용 효율적이고 통합된(integrated) 솔루션을 제공할 수 있지만, 복잡한(demanding) 애플리케이션들에 의해 요구되는 계산 능력 및 프로토콜 변환이나 미 래의 프로토콜 속도 증가(예컨대, 2.5 Gbps 파이버 채널에서 10Gbps 파이버 채널에 이르는)에 대한 유연성(flexibility)을 제공하지 못할 수도 있다.
지난 최근 몇 년 동안, 다수의 네트워킹 애플리케이션들에 있어서는 도 2에 도시된 바와 같이 공용 버스(PLB)에 부착되어 프로세서 코어(25)와 병렬로 동작하는 전용 프로세서 코어(가속기; 39)를 부가함으로써, 도 1의 SoC의 계산 능력을 강화하였다. 전형적인 범용 프로세서들(예컨대, 가상 어드레싱 등을 지원하기 위한 메모리 관리 유닛)에서 발견되는 많은 특징들이 배재되었으므로, 이러한 부가적인 전용 프로세서 코어들(39a 및 39b 등)은 대개 작은 실리콘 영역을 차지한다. 이러한 접근법의 예로 IBM의 PowerNP(예컨대, M.Heddes가 IEEE 컴퓨터 소사이어티 주관하에, 2000년 8월, 미국, 캘리포니아주, 팔로 알토에서 열린 "Proceedings of Hot Chips 12" 에서 발표한 "IBM 파워 네트워크 프로세서 아키텍쳐(IBM Power Network processor architecture)"라는 문헌을 참조), NEC의 TCP/IP 오프로드 엔진(예컨대, http://www.tensilica.com/html/pr_2003_05_12.html에 게재된 "10 Tensilica Xtensa 프로세서 코어에 의해 전원이 공급되는 NEC의 새로운 TCP/IP 오프로드 엔진(NEC's New TCP/IP Offload Engine Powered by 10 Tensilica Xtensa Processor Cores)"이라는 문헌을 참조)이 있다. 이러한 시스템들은 프로그램 가능하므로, 결과적으로 배선 가속기(hardwired accelerator)에 비하여 더욱 유연하지만, a) 버스가 프로세서 가속기로의 명령어 및 데이터 스트림들 모두를 지원해야 하므로, SoC 버스(예컨대 PLB(21)) 상에 부가적인 트래픽을 초래하고, 이로 인해 대역폭 경합(bandwidth contention)이 야기되어, 시스템 성능을 제한하게 되며; b) SoC 버스는 SoC 시스템 내의 표준화된 컴포넌트들 및 접속 프로토콜들과의 호환성이라는 면에서 최적화될 뿐 종종 멀티프로세서 성능이라는 면에서 최적화되어 있지 않으며; c) 프로세서 가속기(39)는 종종 매우 제한된 명령어 세트만을 구현하거나 어셈블러 언어를 사용하므로, 프로세서 가속기 상에서 실행되는 애플리케이션의 개발 및 유지가 매우 어렵고 비용이 많이 들게 되는 것과 같은 여러 결점을 가진다.
SoC 디자인(75)의 제3 타입은 Motorola의 MPC 5554 마이크로 제어기(2003년 11월 3일자 "Design News" 38 페이지) - 마이크로 제어기의 블록도가 도 3에 도시되어 있음 - 와 같은, 크로스바 스위치를 통해 접속되는 임베디드 프로세서 코어이다. 도 3에 도시된 바와 같이, Motorola의 SoC 디자인은 PowerPC 프로세서 코어, 메모리 및 버스 인터페이스를 포함하는 도 1 및 도 2의 SoC 디자인과 유사한 요소들로 구성되지만, 특히, 로컬 버스들 중의 하나를 대체하여 3 x 5 크로스바 스위치(72)를 구현한다. 크로스바 스위치(72)를 SoC 디자인 내에 포함시킴으로써, 동시에 동작하는 3 라인을 이용하여 프로세서 코어는 더욱 빠른 속도로 통신할 수 있게 되고, 이로 인해 어느 정도까지 대역폭 경합 문제를 처리하게 된다. 그러나, SoC는 여전히 멀티프로세서 지원 또는 단일 SoC 칩 내의 프로토콜 변환이나 고속 인터페이스와 같은 보다 진보된 기능들이라는 면에서 최적화되어 있지 않았다. 이러한 칩 내에서의 I/O 통신은 크로스바 스위치에 의해 제한되고, 여전히 외부 버스 인터페이스 및 호스트 시스템 버스와의 통신을 필요로 하는데, 이로 인해 성능 및 미래의 업그레드를 위한 마이크로 제어기(SoC 칩)의 유연성이 제한된다. 여러 단계 또는 여러 칩 내에서, 임의의 프로토콜 변환이 오프 칩으로 수행될 필요가 있을 수도 있다. 또한, 데이터 패킷은 호스트 시스템 버스에 위치하는 명령어들로부터 분리될 수 없다. 도 3의 예에서, DSPI(또는 "Serial Perphical Interface") 또는 eSCI("Enhanced Serial Communication Interface")와 같은 다른 프로토콜들 뿐만 아니라 예컨대 자동차용 애플리케이션(automotive application)에서 통상적으로 사용되는 FlexCan(CAN 프로토콜 : "Control Area Network") 데이터 스트림과 같은 하나의 프로토콜이, 외부 I/O 브릿지(78)를 통해 Motorola MPC5554 칩 내에서 사용되는데, 각각의 프로토콜 또는 I/O 특정 스트림은 I/O 브릿지, 크로스바 스위치 및 통상적으로는 내부 칩 버스 혹은 시스템 버스로의 외부 버스 인터페이스를 통과한다.
지금까지, 오늘날 단일 칩 내에서의 프로토콜 변환은 존재하지 않았으며, 내부 칩 버스에 부착된 임베디드 코어를 사용하여 하나의 독립 프로토콜 또는 프로토콜 버전 레벨로부터 완전히 새로운 프로토콜 또는 프로토콜 버전 레벨로 프로토콜 변환을 수행하기 위한 수단도 존재하지 않았다.
현재의 프로토콜 변환은 앞서 언급한 복수의 칩들을 포함하는 시스템 또는 카드 수준에서만 이루어지는데, 그 일예가 도 4에 도시된 바와 같은, SAN 네트워크(예컨대, http://www.brocade.com/san/extending_valueof_SANs.jsp를 참조)와 관련하여 앞서 언급한 Brocade Silkworm Fabric Application Server이다.
도 4에 개념적으로 도시된 종래의 Brocade 시스템(100)에서는, 예컨대 파이버 채널 대 파이벌 채널(FC to FC) 라우팅(102), iSCSI 대 FC 브릿징(104) 및 파이버 채널 대 FC-IP 전환(110) 기능이 제공된다. Brocade의 디자인은 하나의 파이 버 I/O 포트 카드가 복수의 프로토콜들을 지원할 수 있다는 점 및 시스템 내의 다른 포트들 상에 트래픽을 방해하지 않고 하나의 프로토콜로부터 동일한 I/O 카드 상의 다른 프로토콜로 이전할 수 있다는 점에서 기존 기술에 대한 개량형이다. 이는 패킷들을 프로세싱함에 있어서 데이터 및 제어 프레임들을, 로컬 메모리 및 프레임 버퍼를 갖는 여러 인라인(in-line) RISC 프로세서 칩들, 소프트웨어 사전 프로세서들(pre-processors) 및 프로세서 카드 내의 전환 엔진으로 분산시킴으로써 달성된다. 이는 표준 단일 HBA 카드에 대한 개량형인데, 이로 인해 두 개의 네트워크 프로토콜을 단일 HBA 카드 내에서 사용할 수 있게 되며, 비용 및 공간을 줄일 수 있고, 메인 시스템 버스 상에서의 트래픽 방해, 데이터 전송 오버헤드 및 메인 시스템 프로세서 메모리 상에서의 메모리 경합없이 프로토콜을 변경하는 유연성을 허용한다. Brocade의 접근법에서 멀티프로세서들은 완전히 파이프라인 방식으로 동작하는 로컬 메모리에 부착된다.
단일 HBA 카드 또는 브릿지 카드와는 달리 이러한 기능들을 단일 칩에 통합하여, 단일 칩 내에서의 진정한 프로토콜 변환을 가능하게 하고, 완전한 패킷을 로컬 SoC 버스 또는 시스템 버스에 전달하기 위하여 프로토콜 컨버터 내에서 데이터 및 제어 프레임들을 처리하는 것은 매우 바람직할 것이다. 이는 I/O 카드의 추가적인 감소를 가능케 하여 하드웨어(칩의 수)의 절감, 대역폭 경합의 감소, 메모리 경합의 경감을 가능하게 하고, 더 높은 프로토콜 속도를 가능케 하며, SoC 칩내의(또는 로컬 시스템 버스에 부착된) 더 많은 프로세서 및 높은 처리 능력을 가능하게 한다.
발명의 개요
본 발명의 목적은, 단일 칩 상에, 또는 단일 칩 내에서 전적으로 프로토콜 변환 프로세싱을 수행하는 SoC 매크로로서 임베딩(embedding)되거나 호스트 시스템의 자원을 요구하지 않는 임베디드 매크로로 구현된 독립(self-contained) 프로토콜 컨버터를 제공하는 것이다.
본 발명의 일 태양에 따르면, 단일 반도체 칩상에, 또는 SoC 타입 디자인에서 사용하는 단일 칩 임베디드 프로토콜 컨버터 매크로로서 효율적인 프로토콜 컨버터를 제공하는데, 단일 칩 또는 임베디드 프로토콜 매크로 구현은 하나의 통신 트로토콜을 별도의 새로운 통신 프로토콜로 변환할 수 있고, 그리고/또는 하나의 통신 프로토콜 버전 레벨을 다른 통신 프로토콜 버전 레벨로 변환할 수 있다. 예를 들어, SoC 임베디드 프로토콜 컨버터 매크로 또는 단일 칩 프로토콜 컨버터는 한 프로토콜 버전 레벨, 예를 들어 파이버 채널(Fibre Channel) 2Gb/s을 예컨대 파이버 채널 10Gb/s로 변환하거나, 단일 칩 또는 임베디드 SoC 매크로 내에서 한 프로토콜로부터 전혀 다른 프로토콜로의 변환(예컨대, 파이버 채널에서 이더넷 또는 iSCSI 등으로의 변환)을 위하여 구성될 수 있다.
단일 칩으로서 구현되는지, 또는 임베디드 매크로로서 구현되는지에 따라, 프로토콜 컨버터는 하나 이상의 프로세서 코어 어셈블리를 포함하며, 각 프로세서 코어 어셈블리는, 프로토콜 변환 능력을 구현하기 위하여 연산(operation)을 수행할 수 있는 2개 이상의 마이크로프로세서 장치; 하나 이상의 프로토콜에 따라 통신 패킷의 수신 및 송신을 가능하게 하는 하나 이상의 구성가능한(configurable) 인터페이스 장치; 및 상기 2개 이상의 마이크로프로세서 장치와 인터페이스 장치간의 통신을 가능하게 하기 위한 상호접속 수단을 포함한다. 따라서, 단일 칩 프로토콜 및 임베디드 매크로 디자인은 SoC 타입 디자인을 더 높은 프로토콜 속도로 스케일링하는 수단을 포함하고, SoC 구현부(implementation) 내의 더 많은 수의 프로세서와 통합(incorporation)할 수 있는 성능을 가진다.
단일 칩 또는 임베디드 프로토콜 컨버터 기능은 전적으로 파이프라인된(pipelined), 멀티 스레딩(multi-threading), 멀티 프로세서 칩 디자인을 이용함으로써 실현될 수 있는데 여기서 로컬 메모리는, 완전한 패킷을 로컬 버스에 전달하기 위한 프로토콜 변환의 모든 기능(리사이징(resizing), 재포맷팅, 컨트롤, 분할(partitioning))을 취급하기 위하여 칩 내에(또는 SoC에 접속된 매크로로서) 통합된다.
바람직하게는, 단일 칩 프로토콜 컨버터 및 임베디드 매크로 디자인은 호스트 시스템 버스의 자원을 요구하지 않고(즉, 프로세싱은 SoC에 접속된 매크로에서 행해진다) 대부분의 프로토콜 프로세싱을 수행한다. 즉, 임의의 프로토콜 변환된 패킷은 필요할 때 로컬 SoC 또는 시스템 버스에 공급된다. 프로토콜 프로세싱 명령어는 자립형(stand-alone) 디자인을 위하여 SoC 프로토콜 매크로 또는 프로토콜 변환 내에서 전적으로 실행된다. 개선된 버스 성능, 시스템 대역폭, 시스템 내의 증가된 수의 프로토콜, 호스트 버스에 접속된 카드의 상당한 감소 또는 제거가 달성될 수 있다.
단일 칩 임베디드 매크로 때문에, 프로토콜 변환 애플리케이션에서 전형적으로 사용되는 메인 시스템 도터 카드(daughter cards)는 제거될 수 있고, 따라서 비용을 감소시키고 성능을 향상시킬 수 있다.
또한, SoC 임베디드 프로토콜 컨버터 매크로 또는 단일 칩 프로토콜 컨버터 아키텍쳐는 어느 한 기능(즉, 프로토콜 변환)에서 전혀 새로운 기능(TCP/IP 오프로드, 가속장치, 방화벽 기능 등)으로 용이하게 재구성될 수 있다. 따라서, 단일 칩 또는 임베디드 프로토콜 컨버터 매크로의 연산 기능이 최초에 프로그래밍된 첫 번째 연산 기능과는 다른 전적으로 새로운 연산 기능으로 변경될 수 있다. 이 연산 기능 변경은 이에 제한되는 것은 아니지만, 다음을 포함하는 요소에 기초할 수 있다. 칩에 있는 다수의 프로토콜 코어 어셈블리(프로세스 클러스터), 클러스터 내의 프로세서의 수, 많은 양의 클러스터 내의 로컬 메모리(예를 들어, 명령어 캐쉬 메모리) 및 각 클러스터와 관련된 많은 양의 로컬 메모리(SRAM, DRAM 등).
다른 실시예에 따르면, 단일 칩 프로토콜 컨버터 집적회로(IC) 또는 SoC 프로토콜 변환 매크로 코어 구현부는, 단일 칩 디자인 내에서, 충분한 로컬 메모리를 내장한 멀티 스레딩, 파이프라인, 멀티 프로세서 코어, 제어 로직, 수집 및 작업 큐(collect and work queues), 크로스바 스위치(crossbar switch) 또는 다른 스위칭 서브시스템, 프로토콜 컨트롤, 인터페이스 및 버스 브릿지 I/O 기능을 이용한다. 표준 버스 브릿지 I/O 기능이 시스템-온-칩(SoC) 로컬 버스와 연동하게 함으로써, 임베디드 프로토콜 컨버터 매크로가 높은 밀도, 효율, 개선된 호스트 프로세 서 성능, 대역폭 및 메모리 경합(memory contention) 개선, 오버헤드 감소 등이 추가적으로 실현될 수 있다. 멀티 스레딩 접근법, 적은 수의 명령어를 포함하는 파이프라이닝(pipelining), 단순한 프로세서 구조, 임베디드 메모리 및 프로세서에서 깊게까지 실행되지 않는 콘텍스트(contexts)에 있어서, 프로토콜 컨버터 칩 또는 임베디드 매크로는 복수의 프로토콜, 버전 레벨 및 프로토콜 컨버터 칩 또는 임베디드 SoC 매크로가 초기에 의도한 것과 다른 별도의 네트워킹 기능에 고도로 적용가능하고, 재구성 가능하다.
유용하게도, 본 발명의 SoC 임베디드 프로토콜 컨버터 매크로 또는 단일 칩 프로토콜 컨터버는 SAN 네트워크, 서버, 홈 네트워크, 자동차용 네트워크, 산업용 및 전기통신용부터 단순한 I/O 프로토콜 데이터 스트림에까지 많은 애플리케이션에 적용된다.
이하의 설명에 있어서, "프로토콜(Protocols)"이라는 용어는 표준 본체(standard body)에 의하여 전형적으로 지정되는 임의의 특정 입/출력(I/O) 통신 데이터 물리층 스트림(physical layer stream)을 말하거나, 또는 예를 들어, 파이버 채널(Fibre Channel), 기가비트 이더넷(Gigabit Ethernet), iSCSI, IP, TCP/IP, FC-IP, ESCON, FCON, CAN, SAMBA, DSL, VoIP, MPLS, GMPLS 등(이에 제한되는 것은 아님)을 포함하는 예를 포함하여 기업 내부 소유 인터페이스일 수 있다.
기술된 실시예에 있어서, 프로토콜은 파이버 채널, 이더넷, iSCSI, ESCON, FCON, IP, 레이어드(layered)와 같은 통신 프로토콜 또는 FC-IP, IP/MPLS 등과 같은 캡슐화된 프로토콜이다. 데이터 통신 프로토콜은 전형적으로 비트 스트림의 페 이로드(payload) 내에 실제 데이터뿐만 아니라 프레임의 개시, 프레임의 끝, 소스, 목적지 등의 컨트롤 특성과 함께 바이트, 워드 또는 세트로 배열된 데이터 비트, 패킷을 갖는다.
본 발명의 프로토콜 컨버터는 특별한 프로세서를 사용하고, 이는 독립형으로 구현되거나 SoC(칩 상의 시스템(system on a chip)) 타입의 디자인으로 통합되어 구현된다. SoC 구현예로서 이용될 수 있는 기본 프로토콜 컨버터 칩(350)의 블록도가 도 5에 도시되어 있다.
이 코어의 기본 구조 및 연산은 공동 소유로, 출원 중인, 2003년 7월 25일에 출원된 관련 미국 특허출원 제10/604,491호 "Self-Contained Processor subsystem as component for System-on-Chip design"에 설명되어 있으며, 이는 전체로서 여기에 통합된다. 이하에서는 이 연산에 대하여 설명한다.
간략하게는 도 5에 도시한 바와 같이, 단일 칩(또는 SoC 임베디드 매크로 코어로서)의 프로토콜 컨버터는 프로토콜 변환을 위한 것으로서 다른 네트워크 기능으로 재구성할 수 있는 독립 프로세서 기반 서브시스템(350)이며, 이는 하나 또는 복수의 프로세서 클러스터(200), 데이터 및/또는 명령어를 저장하기 위한 하나 이상의 로컬 메모리 뱅크(215), 및 크로스바 스위치(또는 패브릭 스위치 또는 MP 버스가 이용될 수 있음) 또는 다른 유사한 스위칭 수단으로서 구현된 로컬 상호접속 수단(220)을 포함한다. 본 발명의 단일 칩 프로토콜 컨버터 디자인은, PowerPC 아키텍쳐로부터 도출된 감소된 범용 명령어 세트와 함께 많은 단순한 프로세서 코어를 포함한다.
각각의 프로세서 클러스터(200)는 하나 이상의 프로세싱 코어(205)를 포함하는데, 각각의 프로세싱 코어는 4단 깊이 파이프라인(four stage deep pipeline)을 갖는 단일 이슈 아키텍쳐(single issue architecture)이고, 각각의 프로세서 코어(205)는 자신의 레지스터 파일(226), 논리 연산 장치(ALU; 225) 및 명령어 순서기(227)를 갖는다. 도 5에 도시된 단일 칩 프로토콜 컨버터 및 도 8에 도시된 프로토콜 변환을 위한 SoC 임베디드 매크로의 실시예에서, 8개의 프로세서 코어(205)가 명령어 캐쉬(208)와 함께 프로세서 클러스터(200)에 포함된다. 명령어 캐쉬의 크기는 디자인 옵션(예컨대, 32kB)인데, 이는 네트워크 애플리케이션들에 대해서 충분하다. 적어도 두 개의 프로세서 코어들(205)과 로컬 버스를 통해 연결된 로컬 SRAM 메모리 유닛(230)이 부가적으로 제공된다. 충분한 계산 능력을 지원하기 위하여 필요로 하는 프로토콜 컨버터(350) 내의 프로세서 클러스터(200)의 정확한 수(예컨대, 1, 2 또는 심지어 16 프로세서 클러스터들(128 클러스터 포함))는 애플리케이션 요구 사항에 의존한다. 예컨대, 파이버 채널 네트워크 프로토콜을 위한 기능을 구현하는 것은 보다 복잡한 TCP/IP 종료, IP, 또는 iSCSI 프로토콜 변환 구현을 위한 것보다 적은 계산 능력을 요구한다.
본 발명의 프로세서 기반 서브시스템 프로토콜 컨버터(350)의 다른 특징은 애플리케이션 프로그램, 현재 제어 정보 및 애플리케이션에 의해 사용되는 데이터를 저장하기 위하여 임베디드 메모리(215)를 사용하는 것이다. 정상적인 동작 조건에서 부드러운 동작을 제공하기에 충분한 양의 메모리가 지나치게 크기를 증가시키지 않고 프로토콜 컨버터에 위치된다. 전통적인 오프-칩 메모리에 비하여, 임베 디드 메모리의 추가적인 이점은 짧고 예측 가능한 액세스 시간을 제공한다는 점인데, 패킷의 처리를 위한 시간 예상 추정(time budge estimate)에서 정확히 설명된다.
프로토콜 컨버터 칩(350)의 모든 요소들은 크로스바 스위치(220)를 통해 상호 접속되는데, 이는 프로세서 클러스터들(200), 공유 메모리 블록들(215) 및 네트워크 프로토콜 계층 하드웨어 보조 장치들 혹은 임베디드 MAC 인터페이스들(175 및 185)을 상호 접속시킨다. (도 8 내지 도 10과 관련하여 본 명세서에서 기술된 바와 같이) SoC의 임베디드 매크로로서 구현된 경우에, 크로스바 스위치(220)는 브릿지 매크로 (버스)(224)를 통해 SoC 프로세서 로컬 버스(210) 또는 외부 시스템 버스(223)(예컨대, PCI 또는 PCI-X 등)에 접속되거나 직접 접속된다. 브릿지는 상이한 속도, 버스 폭, 신호들 및 신호화 프로토콜을 수용하도록 변경될 수 있다. 매크로 SoC 구현에서, 프로토콜 컨버터 매크로(350) 및 임베디드 프로세서 로컬 버스(210)(예컨대, IBM의 CoreConnect 내의 PLB 또는 ARMBA의 ARM, MIPs 등) 사이의 표준 인터페이스의 이점은 SoC 컴포넌트 라이브러리 내에 매크로로서 프로토콜 컨버터의 통합을 허용한다는 점이다.
데이터 인코딩/디코딩, 직렬화/역직렬화(serialization/deserialization), 링크 관리, 및 CRC와 체크섬 계산과 같은 저-수준 프로토콜 작업을 처리하는 하드웨어 가속기들이 네트워크 프로토콜의 저수준에서 시간에 매우 민감한 기능들(highly time-critical functions)을 위해 추가로 구현된다. 이러한 작업들은 전송되는 패킷들의 모든 비트 상에서 수행되고, 소프트웨어로 구현되면 많은 계산 비 용이 들 것이다. 그러므로, 이러한 기능들의 하드웨어 구현은 파이버 채널 및 기가비트 이더넷(185)을 위한 네트워크 인터페이스들(175)에서 구현되는 하드웨어 가속기들로서 제공되는데, 이들 각각은 작은 실리콘 영역만을 필요로 하고, 각각 파이버 채널 및 기가비트 이더넷 통신 링크들(190 및 195)의 각각과 인터페이스 한다.
프로토콜 컨버터 코어(350) 및 프로세서 버스들(단일 칩 구현에서의 SoC 프로세서 로컬 버스 또는 시스템 버스)의 분리로부터 유래하는 부가적인 이점들은 (i) 프로토콜 코어와 SoC 시스템 또는 시스템 버스 사이의 유일한 트래픽이 데이터 플로우 트래픽(데이터 수신 및 송신)이므로, 대역폭 경합을 최소화하고 (ii)서브시스템 상호 접속 구조(즉, 스위치)는 표준 컴포넌트 인터페이스들 및 전체적인 SoC, 스위치 구조에 부착된 다른 프로세서들 또는 메인 시스템 버스의 접속 프로토콜들을 수용할 필요 없이 프로토콜 코어에 최적화된 고성능 솔루션을 제공하는데, 이로 인해 프로토콜 변환 속도의 향상, 단일 SoC 또는 호스트 버스 어댑터 카드 내에서 처리되는 프로토콜의 증가 및 메인 시스템 버스 상의 경합의 감소가 가능해지는 것이다.
프로토콜 컨버터(자립형 단일 칩(standalone single chip) 또는 임베디드 SoC 매크로)로서 구현된 경우에 프로세서 서브시스템의 동작이 이하에서 기술된다. 일 실시예에서, 단일 칩 프로토콜 컨버터(350)(또는 SoC 디자인을 위한 임베디드 매크로)는 파이버 채널(Fibre Channel; FC)의 기가비트 이더넷(Gigabit Ethernet; GE)으로의 변환을 제공한다. 이러한 디자인은 파이버 채널을 IP로, 파이버 채널을 iSCCI로, 파이버 채널을 인피니밴드로, TCP/IP를 iSCSI로 및 본 명세서에서 언급한 다른 프로토콜 중의 임의의 것과 같은 많은 조합을 허용함이 이해된다. 사실, 이러한 구현이 오직 데이터 통신 프로토콜들에만 제한되는 것이 아니라, CAN과 같은 자동차 네트워크용 Motorola MPC5554 마이크로 제어기 또는 가정용 애플리케이션을 위한 SAMBA 네트워크와 같은 자동차 네트워크, 가정 또는 산업용 환경에서도 구현될 수 있다.
도 6은 파이버 채널의 기가비트 이더넷으로의 단일 칩 프로토콜 컨버터(300)로서 구성된, 도 5의 단일 칩 프로토콜 코어(350)의 예시적인 도면이다.
도 6에 도시된 프로토콜 코어에는, 두 프로토콜 사이의 변환을 위해 요구되는 패킷 리사이징(resizing) 및 리포맷팅(reformatting)뿐만 아니라, 요구되는 종단 기능(endpoint functionality)이 구현되어 있다. 이러한 구현의 기본은 프로토콜 동작들이 칩 상의 상이한 리소스들에 의해 처리될 수 있도록 프로토콜 동작들을 분할하는 것이다. 프로세서(또는 프로세서들의 집합)로의 각각의 프로토콜 동작은 일부 시간에 민감한 기능들을 제외하고, 하드웨어 가속기를 이용해 구현된 네트워크 물리적인 인터페이스들과 통신하지 않는다. 패킷 및 프로세싱 플로우는 도 6과 관련하여 다음과 같이 기술된다. 수신된 패킷 및 일부 상태 정보는 자유 버퍼의 목록으로부터 빈 메모리 영역에 대한 포인터를 이미 수신한 DMA 로직에 의해, 내향 FIFO 버퍼(inbound FIFO buffer)로부터 임베디드 메모리로 전송된다. 패킷 컨텍스트를 판단하고, 필요하다면, 메모리로부터 제어 정보를 획득하거나 패킷이 새로운 교환(exchange)의 첫 번째인 경우에 새로운 제어 정보를 생성함으로써 현재 컨텍스트를 전환하기 위하여 패킷 헤더를 조사한다. 부가하여, 수신된 패킷은 자신이 속하는 교환 서비스의 클래스(class)에 자신이 순응하는지를 확인하기 위하여 검증된다. 소스(예컨대, 파이버 채널 내의 클래스 2 서비스)로의 반송을 위해 수신된 패킷에 대한 승인(acknowledgement)이 요구되면, 승인 패킷이 생성된다. 승인 패킷을 위한 대응되는 헤더 정보가 수집되고, 이러한 패킷은 외향 파이버 채널 네트워크 인터페이스로 송신된다. 본 명세서에서, 패킷은 데이터 비트의 집합으로 정의되는데, 이는 적어도 목적지 정보를 포함하고, 통상적으로 통신 패킷을 위하여 헤더도 포함한다.
한편, 수신된 패킷에 대하여 기가비트 이더넷 패킷 헤더가 생성되고, 패킷은 이더넷 네트워크 프로토콜에 따라서 크기가 조절된다. 새로이 형성된 패킷(또는 패킷들)은 이더넷(EMAC) 네트워크 인터페이스 하드웨어 모듈(185) 내의 외향 FIFO 버퍼로 전송된다. 유사한 작업이 반대의 프로토콜 변환, 즉 이더넷으로부터 파이버 채널 네트워크로 패킷을 전송하는 경우에 대하여 발생한다. 이러한 프로토타입(prototype) 단일 칩 파이버 채널/이더넷 프로토콜 컨버터 구현(300)의 논리적인 표현이 도 6에 도시되어 있다. 이러한 예시적인 구현은 14개의 프로세서들을 사용하는데, 이들은 도 6에 도시된 프로세싱 블록(260)에서 묘사된 파이버 채널(FC) 대 이더넷 변환 상에서 동작하고, 이 경우 FC 입력 패킷은 프로세서 P1에서 수신되는 한편, 반대 변환 프로세스는 도 6의 프로세싱 블록(270)에 도시되어 있다.
하드웨어 리소스들로의 프로토콜 작업의 할당은 도 6에 도시된 프로세스 플로우에 따라 다음과 같이 수행된다. 프로세서 P1은 파이버 채널 내향 DMA 셋업 및 타겟 메모리 영역 할당을 관리하고, 프로세서 P2는 패킷 헤더 정보에 기초하여, 컨텍스트 전환, 패킷 검증(validation) 및 필요하다면 승인 패킷 생성을 수행하는 네 개의 프로세서 P3 내지 P6 중의 하나로 패킷들을 디스패치하며, 프로세서 P7은 이더넷 헤더 생성을 수행하여, 이더넷 외향 네트워크 인터페이스로의 데이터 전송을 설정하고, 더 이상 필요하지 않은 메모리 영역 블록을 자유 버퍼의 링크된 목록으로 반환한다. 이더넷 네트워크로 전송될 패킷에 대한 포인터들이 작업 큐(249)에 위치되고, 파이버 채널 상에서 송신될 패킷에 대한 포인터들이 파이버 채널 외향 작업 큐(259)에 위치된다.
다른 네트워크 프로토콜 또는 프로토콜 변환들이 비슷한 유형으로 쉽게 구현될 수 있다. 예컨대, iSCSI 또는 TCP/IP 프로토콜 스택을 구현함에 있어서, 단일 프로세서 구현을 위한 현재의 코드가 재사용될 수 있는데, 이 경우 현재의 코드를 아키텍쳐에 적응시키기 위해 적당한 정도의 프로그래밍 노력만이 요구된다. 특히, 패킷 디스패칭 및 콜렉팅 작업(각각, 수신 경로를 위해 P2 및 P7, 그리고 전송 경로를 위해 P9 및 P14로 이름붙은 프로세서들)이 구현되어야 하지만, 네트워크 프로토콜은 P3 내지 P6 및 P10 내지 P13으로 이름붙은 프로세서들 상에서 병렬로 거의 변경되지 않은 채 실행되도록 적용된다. 병렬로 프로토콜 작업들을 실행하는 프로세서들의 수는 시간 요구 조건을 만족시키기 위하여 작업 복잡도(complexity)에 따라 증감될 수 있어야 한다. 예컨대, iSCSI 프로토콜 변환은 단일 칩 프로토콜 변환을 수행을 위하여, 도 6에 도시된 예에서 14개의 프로세서들보다 많은 수를 요구할 것이다.
복수의 프로세서 코어들 상에서의 패킷 프로세싱은 (모든 프로세싱 동작을 수행하는 단일 프로세서에 패킷이 할당되는) 완전 수행 접근법(run-to-completion approach) 또는 (개별 프로세서에 할당된 복수의 파이프라인 단계로 패킷 프로세싱 동작들이 분할되는) 파이프라이닝 중의 하나를 통해 수행된다. 본 명세서에 기술된 일 실시예에서, 파이프라인 접근법이 예컨대, I-캐시와 같은 하드웨어 리소스들의 보다 나은 이용을 제공한다. 개별 파이프라인 단계들에 할당될 수 있는 네트워크 동작들의 예로 헤더 처리(header handling), 패킷 검증, 승인 반응의 생성, 패킷 재정렬(packet reordering) 및 메시지 어셈블리(message assembly), 그리고 종단 대 종단 제어(end-to-end control)가 있다.
프로세서들에 대한 프로토콜 작업들의 스케쥴링은 초기화 동안 정적으로 수행되는데, 즉, 각각의 프로세서(205)는 다양한 패킷들 상에 동일한 세트의 동작들을 실행한다. 마찬가지로, 가비지 콜렉션(garbage collection)과 같은 동적인 메모리 관리와 연관된 오버헤드를 피하기 위하여, 정적인 메모리 관리가 사용된다. 사용된 모든 메모리 구조(230)는 시스템 기동(start-up) 중에 초기화된다. 이는 데이터 패킷들을 저장하기 위한 메모리 영역(275), 현재 네트워크 접속의 제어 및 상태 정보를 위한 메모리(280), 프로그램 코드(285) 및 작업 큐를 포함한다. 아키텍쳐에서 사용되는 다양한 메모리 구조들이 도 7에 도시되어 있다. 이러한 구조의 제공으로 인해, 패킷 프로토콜 변환의 모든 서브 프로세스들이 단일 칩 내에 존재하거나 SoC 타입 디자인에 부착된 임베디드 매크로로서 가능하게 함으로써, 최종 완료된 패킷이 시스템 버스 또는 내부 SoC 버스로 전달되도록 할 수 있다.
도 7에 도시된 바와 같이, 데이터 패킷을 저장하는 메모리 영역(215)은 링크드 리스트(linked list; 275)로 조직된다. 유입 패킷은 링크드 리스트로부터 얻어진 다음 자유 버퍼에 저장된다. 패킷 프로세싱 동안, 패킷이 저장된 메모리 영역에 대한 포인터만이 프로세서들 간에 전달된다. 패킷 프로세싱이 완료되면, 패킷은 외향 네트워크 인터페이스로 전달되고, 버퍼는 자유 버퍼의 리스트로 반환된다.
프로세서 동기화는, 도 7에서 더 설명하는 것처럼, 작업 큐(290)를 통과하는 메시지의 형태로 수행된다. 이러한 접근 방식에서, 각각의 프로세서(P1 내지 P4)는 상기 스레드에 의하여 처리되도록 대기하는 패킷으로의 포인터를 저장하는 작업 큐(290)와 연관된다. 프로세서가 다음 패킷으로 동작하도록 준비될 때, 프로세서는 그 작업 큐로부터 다음에 연결된 패킷의 포인터를 얻는다. 프로세서가 프로세싱을 종료할 때, 프로세서는 패킷으로의 포인터를 파이프라인에서의 다음 스레드의 작업 큐로 위치시킨다. 메모리 액세스 충돌에서의 올바른 조작을 담보하기 위하여 락킹(locking)이 사용된다.
프로세서 스케줄링에서 중요하게 고려할 점은 모든 파이프라인 스테이지는 동일한 패킷 프로세싱 시간을 요구하지 않을 수 있고, 또한 각각의 파이프라인 스테이지에서의 프로세싱 시간은 패킷 콘텍스트(packet context)에 따라 변할 수 있다는 것이다. 예를 들어, 파이버 채널에서, 패킷 프로세싱 시간은 패킷이 패킷 시퀀스에서 최초인지, 중간인지, 또는 마지막인지에 의존하고, 패킷이 링크 제어 정 보를 운반하는지에 의존하고, 패킷이 유인된 메시지에 속하는지 유인되지 않은 메시지에 속하는지에 의존한다. 만약 파이프라인의 스테이지 중 하나가 다른 스테이지보다 상당히 느린 경우, 그 작업 큐는 과부하가 걸리게 되고, 병목현상이 발생하게 된다. 이것은 예를 들어 도 7의 P1 내지 P4가 같은 파이프라인에서 평행으로 동작하도록 사용함으로써 치유된다.
파이프라인 스테이지에서의 프로세싱 타임이 패킷사이에서 변화함에 따라, 모든 프로세서가 완전히 사용되지 않을 수 있다. 대신, 파이프라인 스테이지 사이의 매칭된 처리량(throughput)은 충분한 버퍼링 및 디커플링 로직을 제공함으로써 달성된다.
같은 태스크에서 동작하는 다수의 프로세서의 할당은, 예를 들어 도 7에서 "MT"로 라벨링되고 프로세서 P5로 설명되는 태스크 디스패칭 프로세서(task dispatching processor)의 도입을 필요로 한다. 패킷 할당 메소드는 간단하므로 짧은 프로세싱 타임에서 실행되고, 리소스 경합 및 락킹(resource contention and locking)을 통하여 성능 저하가 일어나게 되어서는 안된다.
대신에, 파이버 채널 구현에 있어서, 모든 패킷의 프로세싱이 단일 프로세서에 의하여 같은 컨텍스트 그룹에 속하도록 하는 이진-소팅 알고리즘(bin-sorting algorithm)이 사용된다. 현재 컨텍스트에 대한 정보는 프로세서의 레지스터 파일에 캐싱되고, 자원 경합 및 상기 정보를 페칭(fetching)하기 위한 평균 액세스 시간을 감소시킨다. 소팅 오버헤드는 간단한 해시 함수를 사용함으로써 낮게 유지된다. 일 실시예에서, 패킷 소팅 및 프로세서 할당 태스크는 약 50개의 명령어 만을 도입한다. 그러나, 이것은 디자인 선택에 따라서 변화하고, 35-200개의 명령어의 범위에서 변할 수 있다. 설명된 실시예에서, 예를 들어 35-50개의 가능한한 적은 명령어 세트가 존재한다. 임의의 주어진 시간에서 일반 네트워크 트래픽에서의 프로세서보다 액티브 컨텐트 그룹이 더 존재할 수 있고, 여러 다른 컨텍스트는 동시에 단일 프로세서로 할당될 수 있다. 최악의 경우, 모든 패킷이 단지 하나의 프로세서에 할당되어 과부하를 유발할 수 있다. 그러나, 실제 어플리케이션을 수행하는 네트워크 트래픽은, 컨텍스트 그룹이 평행하게 동작하는 프로세서들 사이에서 균등하게 분배될 경우 이것이 문제가 되지 않는다는 것을 나타내고 있다.
단일 칩 프로토콜 컨버터의 구조는 셀룰러이고, 이 구조는 디자인이 맞춤 스케일링될 수 있도록 허용한다. 디자인에 있어서, 프로세서 코어 및 임베디드 메모리 블록의 수는 큰 디자인 변화 없이, 어플리케이션 요구사항에 쉽게 적용된다. 예를 들어, 다음의 네트워킹 어플리케이션에서, 10 Gb/s의 라인 속도로 동작하는 멀티프로세서 프로토콜 컨버터의 필요 계산 용량은 아래 설명하는 것처럼 변화할 수 있다. 이러한 측면에서, 프로토콜 컨버터 디자인은 실제로 다른 네트워크 프로세싱 함수에 "적용 가능"한데, 이것은 레이아웃 디자인, 임베디드 메모리, 다른 프로세스에 의하여 핸들링되고, "제한되지 않은" 다양한 서브 프로세서(즉, 상기 프로세서들은, 각각의 프로세서가 TCP/IP 오프로드 함수, 프레임 분류 함수, 프리-프로세싱 함수, 하드웨어 가속기, RISC 또는 데이터 프로세싱 함수 등과 같은 하나의 주어진 포텐셜 기능을 갖는 이전의 선행 기술과 다른, 특정 네트워크 함수로부터 독립적인 것이다)로 위임된 프로토콜 리소스 및 네트워크의 파티셔닝에 의하여 적 용 가능한 것이다. 본 발명의 단일 칩 프로토콜 컨버터(350)에서, 또는 임베디드 매크로 코어(550)로서, 동일한 프로세서 및 로컬 메모리 쌍은, 의도된 동작을 스케일링할 충분한 프로세싱 전력이 허여되는 한, 다른 네트워크 함수(즉, 조작)를 수행할 수 있다. 몇 가지 예제가 아래에 나열되어 있다.
프로토콜 변환 : 14개의 프로세서(즉, 2 개의 8-코어 클러스터). 64K바이트 I-캐쉬, 64K바이트 데이터 SRAM, PowerPC440(또는 다른 프로세서) 및 도 5 및 6에 도시된 다른 마이크로프로세서는 0.13m ASIC 기술에서 약 35mm2를 필요로 한다.
TCP/IP 오프로드 엔진(offload engine) : 32개의 프로세서(즉, 128K바이트 I-캐쉬 및 128K바이트 SRAM을 가정하는 4개의 프로세서 클러스터). 이것은 상기 기술에서 50mm2 면적을 점유한다.
통합된 방화벽(Intergrated firewall) : 128개의 프로세서(추정치), 즉 16개의 코어 클러스터이다. 512K바이트 I-캐쉬 및 512K바이트 SRAM을 가정하는 4개의 프로세서 클러스터를 가정하면, 최종적인 칩은 약 150mm2정도이다.
동일한 기본 아키텍쳐(더 많은 수의 서브 프로세서가 칩내에 또는 주어진 어플리케이션에 필요한 SoC 임베디드 매크로로서 장착될 수 있음)가 네트워크 스피드 또는 시장 상황 변화에 따라 적용 가능하다. 예를 들어, 상기 아키텍쳐는 "방화벽 프로세서" 또는 "프로토콜 컨버터" 또는 구현된 적 조차 없는 완전히 새로운 디자인 또는 프로토콜로 칩을 재구성하기 위하여 적용될 수 있다. 따라서, 하나의 기본 디자인은 많은 어플리케이션 및 포텐셜 함수에 확장 가능하다. 칩 또는 임베 디드 매크로 SoC 코어의 네트워크 함수는, 단순히 프로세서의 수 및 메모리 유닛의 수를 선택하고 적절한 소프트웨어 코드 또는 버전 레벨을 적용함으로써, 칩을 다시 디자인하지 않고 변경할 수 있다. 선택된 프로세서 및 새로운 프로토콜 함수용 메모리 유닛의 수는 의도된 새로운 함수에 대한 코어 성능의 통계적 시뮬레이션에 의하여 선택된다.
상술한 것처럼, 프로토콜 컨버터는 분리된 반도체 기판 상에서 독립형 IC 칩으로 구현되거나, SoC 타입 디자인, FPGA, DSP 등에서 매크로로서 임베딩된다. 본 발명의 제2 태양에 따른 SoC(System On Chip) 디자인(400)에서 임베디드 매크로 코어로 구현된 프로토콜 컨버터의 예시는 도 8에 설명된다. 필요한 것은 (컨버팅된 또는 컨버팅되지 않은) 완료된 데이터 패킷을 전달하는 표준 버스 인터페이스 또는 브릿지 뿐이므로, 매크로는 SoC 디자인에 국한되지 않고, 표준 DSP, 마이크로 제어기, FPGA, ASIC's 및 마이크로프로세서에서 구현될 수 있다는 것을 이해하여야 한다. "SoC" 라는 용어는 일반적으로 최소 하나의 프로세싱 요소, 메모리 요소, I/O 인터페이스 및 로컬 버스 또는 다수의 칩상의 버스에 부착된 코어를 갖는 칩상의 시스템을 정의하는데 사용된다.
도 8에 도시된 것처럼, (독립형 칩 디자인으로 도 5에 설명된 것과 같은) 임베디드 프로토콜 컨버터 매크로 코어(550)을 포함하는 SoC(400)의 실시예는 CPU 또는 MPU 요소(425; IBM PowerPC 440에 나타남. 그러나 PowerPC외에 ARM, MIPs 등과 같은 다른 SoC 프로세서 코어도 구현될 수 있다는 것을 이해해야 한다), 로컬 SoC 버스(210; 도 8에 IBM의 코어 커넥트 PLB(210; Processor Local Bus)로서 나타 남), 선택적인 더 느린 속도의 버스(도 8에 IBM의 칩 상의 주변 장치 버스 또는 OPB(240)으로 나타남) 및 SRAM(415), DDR 제어기(418), PCI-X 브릿지(422), DMA(426) 및 DMA 제어기(428), OPB 브릿지(429) 등을 포함하는 도 1에 도시된 것과 같은 임의의 수의 SoC 컴포넌트 (코어) 를 포함한다. OBP(240)는 다음 중 하나 이상을 포함하는 다른 장치(RAM/ROM 주변장치 제어기(445a), 외부 버스 마스터(445b), UART 디바이스(445c), IC간 버스(I2C) 인터페이스(445d), 범용 I/O 인터페이스(445e) 및 게이트웨이 인터페이스(445f))를 연결한다.
도 8에 나타난 실시예는 SoC 시스템(400)에서 단일 칩 프로토콜 컨버터 또는 임베디드 매크로 코어로 통합되고, 브릿지(224) 및 PLB(210)를 거치는 프로세서 코어(425)버스와 통신하는 독립 프로세서-기반 프로토콜 컨버터(550; self-contained, processor-based protocol converter)를 포함한다. 도시된 것처럼, 프로세서-기반 프로토콜 컨버터 매크로 코어(550)는 하나 또는 다수의 프로세서 클러스터(200), 데이터 및/또는 명령어를 저장하기 위한 하나 이상의 로컬 메모리 뱅크(215), 설명된 실시예에서의 크로스바 스위치(220) 또는 이와 등가인, 패브릭(fabric) 또는 N x X 스위치 등과 같은 로컬 상호 접속 수단 및 적어도 2개의 네트워크 프로토콜에 대한 적어도 2개의 미디어 액세스 컨트롤(MAC; Media Access Control) 인터페이스 유닛(175 및 185)을 포함한다. 도 8에 도시된 것처럼, 이 MAC 유닛(175 및 185)은 PHY(Physical Layer Chips), SoC 임베디드 MAC 또는 PHY 함수 또는, SoC 또는 호스트 카드로부터 분리된 외부 프로토콜 칩이 될 수 있는 각각의 외부 MAC 인터페이스 디바이스(475 및 485)와 인터페이싱된다. 다시 말하면, 도 8에 도시된 MAC(475 및 485)가 파이버 채널 하드웨어 어시스트 코어 및 이더넷 10/100/1G EMAC을 포함할 수 있다는 것이지만, 임의의 프로토콜에 대한 인터페이스가 포함될 수 있고, 분리된 MAC 또는 PHY 디바이스(물리 계층 칩)과 같이 칩으로 통합될 수 있고, 로컬 카드 상의 SoC 칩으로 외장될 수도 있다. 자동차 어플리케이션 또는 홈 네트워킹과 같은 오늘날의 보다 저속의 어플리케이션에서 이것은 유용할 수 있다.
도 9는 외부 프로토콜 인터페이스로 임베딩된 SoC 내의 단일 패킷의 프로토콜 컨버전에 대한 프로세스 플로우를 도시한다. 매크로 내의 로컬 메모리는 패킷의 프로세싱 및 DMA 전달 모두를 제어하므로, 매크로로부터의 프로토콜 컨버전 후에, 패킷은 제1 인터페이스로부터 제2 I/O 인터페이스 또는 로컬 SoC 버스(210)로의 출력으로 전달되고, 최종적으로 호스트 시스템 버스(223; 예를 들어, 도 9에 설명한 PCI-X 133MHz 또는 이와 유사한 것)으로 전달된다. 양호하게는, 통신은 이중 형식, 즉 송신 및 수신 방향 모두에서 통신을 가능케하는 링크를 포함한다. 도 9에 나타난 예에 의하여, A에서 B 패킷으로의 컨버전이 제1 프로토콜에 따르는 패킷으로 도시되는데, 예를 들어 1G 이더넷 패킷은 SoC 외부 프로토콜 칩에서 수신되고, 매크로 또는 EMAC(외부 이더넷 I/O) 인터페이스(485)는 크로스바 스위치(220)에 대한 매크로의 내부 메모리(215) 내의 컨버터 매크로의 EMAC(185) 내향 FIFO로 포워딩된다. 작업 큐에 의한 매크로의 내부 메모리(SRAM, DRAM 등)는 이더넷 패킷을 수집하고, 칩상의 제어기 함수는 크로스바 스위치를 통하여 이더넷 패킷을 서브 프로세서(예를 들어 도 9에 도시된 "proc. 1" 클러스터의 서브 프로세서)로 전달한 다. 여기에 서술된 것처럼, 패러럴리즘, 파이프라이닝 및 멀티스레딩에 의하여, 프로토콜 변환 프로세스는 프로토콜 변환에 대한 임베디드 프로토콜 컨버터 매크로 코어(550) 내의 여러 서브 프로세서 사이에서조차 붕괴되고, 여러 컨버전 프로세스는 하나의 프로세서와 매칭된다. 따라서, 예를 들어 "proc. 1"로부터 "proc. 3"으로 "A"가 "B"로 가는 단지 1 라운드를 통해서 조차, 실제에 있어서는 패킷은 변환을 위하여 여러 프로세서 사이에서 분할된다. A에서 B 패킷으로의 변환 프로토콜은 도 9에서 설명되고, 선택적 프로세스는 프로토콜 B의 패킷이 "B 피니쉬"의 다른 면으로 들어가서 프로토콜 #1(A 면)에서 나오도록 하는 것을 포함한다. B 및 A의 프로세스 흐름이 2-웨이 이중 링크의 다른 면 상에 있다는 것을 이해할 것이다.
실질적인 프로토콜 변환 코드는 임베디드 프로토콜 매크로 코어(550)에 포함된 프로세싱 요소 상에서 수행된다. 매크로는 병렬로 실행되는 여러 프로세스 P0, P1, ..., Pn을 갖는데, 각각의 방향(즉, 수신 및 전송)에 대해 한 세트를 갖는다. 이러한 프로세스들의 각각은 Proc. 0, Proc. 1, Proc. 2 등으로 이름 붙은 매크로의 프로세싱 요소들 중의 하나로 맵핑된다. 세 가지의 다른 종류의 프로세스들이 제공되어, 기술된 실시예의 임베디드 SoC 매크로의 프로세서 상에서 수행되는데, 이는 다음을 포함한다.
1. 디스패치 : 프로세서에 작업을 할당하는 프로세스
2. 프로토콜 프로세싱 : 프로토콜 프로세싱 작업
3. 수집 : 패킷이 전송된 후에, DMA SoC 제어기가 일정한 메모리 관리 기능을 수행 할 뿐만 아니라, 코어의 내부 메모리 밖으로 패킷을 전송하도록 설정
이러한 프로세스들 간의 통신은, 도 7에 도시된 것과 같은 메모리 내의 기본적인 전용 영역인 작업 큐(work queue)를 통해 달성된다. 휴지 프로세스(idle process)는 주기적으로 자신의 작업 큐를 폴링함으로써 임의의 계속 중인 작업을 가지고 있는지 판단한다.
프로토콜 매크로 코어는, 일련의 IP 패킷들로의 데이터 파티셔닝, IP 패킷 헤더의 생성, 이더넷 패킷의 생성과 같은 요구되는 모든 특정한 프로토콜 작업들을 구현하여, 이더넷 MAC 매크로로 패킷들을 이동시킨다. 패킷을 재전송할 필요가 있으면, 프로토콜에 의해 정의되어, 이는 SoC 로컬 프로세서로부터의 간섭없이 발생하므로, 패킷/데이터 전송 요청 또는 실질적인 데이터 전송만이 외부 DMA 또는 DDR 메모리에 의해 요구된다. 패킷 "A"의 "B"로의 프로토콜 변환 후에, 패킷은 로컬 온-칩 매크로 메모리(local on-chip macro memory)로 반송되고, 데이터의 끝에 대한 신호가 생성된다. 그 이후로, 로컬 매크로 메모리 및 임베디드 로컬 DMA 제어기는 크로스바 스위치, 파이버 채널 인터페이스 및 최종적으로 외부 I/O 인터페이스를 통해 변환된 패킷을 전송한다. 대안적으로, 파이버 채널 인터페이스는 최종 변환된 패킷을 전송하기 위하여 임베디드 제어기를 가질 수 있다.
외부 SoC DDR(418) 또는 DMA(426)는, 필요하다면, 프로토콜 컨버터 인터페이스로부터 패킷을 송신하는 것에 비하여, 패킷이 버스 브리지를 통하여 로컬 SoC 버스로 인도되고 최종적으로 호스트 시스템 버스(223)로 인도되도록 추가적으로 요구할 수 있다. 마찬가지로, 호스트 버스(223)는 프로토콜 변환을 위한 패킷(들)을 매크로로 송신하고 변환된 완료 패킷을 돌려 받거나 개별적인 프로토콜 및 패킷 타입에 따라 외부 프로토콜 인터페이스(475, 485)로 전달할 수 있다.
도 10은 호스트 버스(223)로부터 수신되고 전달을 위하여 외부 SoC 인터페이스(485)로 인도되는 단일 패킷의 프로토콜 변환을 위한 예시적인 프로세스 흐름을 도시한다. 도 10에서 도시된 예시적인 프로세스 흐름에서, 파이버 채널 프로토콜 패킷은 호스트 시스템 버스(223)로부터 송신되고(시작되고), 예를 들어 외부 이더넷 인터페이스 1G EMAC 인터페이스(485)로의 전달 및 변환을 위하여 SoC 프로토콜 컨버터 매크로(350)로 송신된다. 도 10에서 나타난 바와 같이, SoC 메인 프로세서(PowerPC 440)는 데이터 처리를 위한 요구를 설정하고 상기 요구 및 외부 DDR 메모리 내의 데이터로의 포인터를 버스 브리지(224)를 통하여 프로토콜 컨버터 매크로 코어(550)로 송신한다. 본 실시예에서, 인터럽트 신호가 발생하지만, 이는 데이터를 전용 레지스터 또는 선정된 메모리 위치에 기록함으로써 구현될 수 있다.
임베딩된 프로코콜 컨버터 매크로 코어(550)는 상기 요구를 인식하고, 외부 호스트 또는 SoC 로컬 메모리로부터 매크로 로컬 메모리로 데이터를 전달하기 위하여 DMA 엔진을 활성화한다. 데이터(예를 들어, 패킷 #B)는, 로컬 SoC 버스 및 브리지 버스를 통하여 매크로의 로컬 메모리(215)로 전달된다. 모든 데이터가 전달되었을 때, SoC 프로세서는 태스크 완료에 대하여 통지받는다. 이는 PowerPC(440)로 인터럽트를 송신하거나 PowerPC(440)에 의하여 정기적으로 폴링(polling)되는 소정의 선정된 위치에 기록함으로써 구현된다.
작업 큐(work queues), 수집 순서(collect sequences), (도 7에 도시된 바 와 같은) 태스크 디스패칭 프로세서(task dispatching processor)(MT)인 프로세서에 의하여, 파이버 채널 패킷(B)은 본 명세서에서 설명된 바와 같은 패킷 분할(packet partitioning)에 의하여 매크로의 로컬 메모리로부터 다수의 서브 프로세서로 전달된다. 예를 들어, 프로토콜 "B"(파이버 채널 타입)로부터 프로토콜 "A"(기가비트 이더넷 타입)로의 프로토콜 변환의 완료시, 완료된 패킷은 크로스바 스위치(220)를 통하여 로컬 매크로의 메모리로 되돌려진다. 로컬 DMA 요구는 패킷 "A"를 매크로의 메모리로부터 외부 이더넷 인터페이스(485)로 전달하여 전송 및 변환을 완료한다.
본 명세서에서 설명된 방법은 I/O 카드와 칩의 개수의 감소, 유연성의 대폭적인 개선, 네트워크 기능성, 고밀도(로컬 또는 호스트 버스에 더 많은 프로세서가 부착됨), 프로토콜 처리의 고속화, 대역폭의 개선, 메모리 경합(memoty contention)의 감소, 최종 시스템 구매자를 위한 유연성, 네트워크 설계/업그레이드의 용이성 및 종래에 비한 프로토콜 변환의 대폭적인 개선을 가능하게 한다.
본 발명은 예시적이고 수행된 실시예에 대하여 보여지고 설명되었지만, 당업자는 첨부된 청구범위의 범위에 의해서만 제한되어야 하는 본 발명의 사상 및 범위를 벗어나지 않고 형태 및 상세에 있어 앞서의 및 다른 변화가 행해질 수 있다는 점을 이해할 것이다.

Claims (23)

  1. 삭제
  2. 프로토콜 변환을 위한 임베디드 시스템-온-칩(System-On-Chip; SoC) 코어를 포함하는 단일 칩 프로토콜 컨버터 집적 회로(single chip protocol converter integrated circuit)로서, 상기 프로토콜 컨버터 IC는 마이크로프로세서 및 로컬 시스템 통신 버스를 포함하며,
    상기 프로토콜 변환을 위한 임베디드 SoC 코어는,
    둘 이상의 프로세서 클러스터 어셈블리(processor cluster assembly)를 포함하는 프로세서 기반 서브 시스템
    - 상기 프로세서 클러스터 어셈블리 각각은,
    프로토콜 변환 기능을 구현하기 위한 동작들을 각각 수행할 수 있는 하나 이상의 서브 프로세싱 코어;
    상기 프로세서 클러스터 어셈블리 각각에 데이터 및 명령어들 중의 적어도 하나를 저장하기 위하여 상기 프로세서 클러스터 어셈블리 내의 상기 하나 이상의 서브 프로세싱 코어들과 연관되는 로컬 저장 장치; 및
    상기 로컬 저장 장치와 상기 하나 이상의 서브 프로세싱 코어 사이의 명령어들 및 데이터의 통신을 가능하게 하기 위하여 상기 각각의 프로세서 클러스터 어셈블리 내에 존재하는 제1 로컬 상호접속 수단(interconnect means)
    을 포함함-;
    하나 이상의 통신 프로토콜에 따라 통신 패킷의 수신 및 전송을 가능하게 하는 하나 이상의 인터페이스 장치;
    상기 둘 이상의 프로세서 클러스터와 상기 하나 이상의 인터페이스 장치 사이, 또는 프로세서 클러스터 내의 둘 이상의 서브 프로세서 코어와 상기 하나 이상의 인터페이스 장치 사이의 통신을 가능하게 하기 위하여 상기 임베디드 SoC 코어 내에 존재하는 제2 로컬 상호 접속 수단; 및
    상기 프로토콜 변환을 위한 임베디드 SoC 코어의 상기 제2 로컬 상호접속 수단과 상기 단일 칩 프로토콜 컨버터 IC의 상기 로컬 시스템 통신 버스 사이의 데이터 통신 송신 및 수신을 가능하게 하기 위한 브릿징(bridging) 장치
    를 포함하며,
    인터페이스 장치는, 제1 프로토콜 타입에 따라 생성된 패킷들을 수신하기 위해 적용되고, 프로토콜 변환을 구현하도록 상기 패킷들을 처리하기 위해 프로그램된 프로세서 클러스터 어셈블리 또는 프로세서 클러스터 어셈블리 내의 서브 프로세싱 코어로 포워딩하기 위한 내향(inbound) 네트워크 인터페이스로서 구성가능하며, 제2 프로토콜 타입의 변환된 패킷들을 출력하고 그에 의해 프로토콜 변환 프로세싱이 단일 집적 회로 칩 내에서 완전히 수행되기 위한 외향(outbound) 인터페이스 장치로서 구성가능한 단일 칩 프로토콜 컨버터 집적 회로.
  3. 제2항에 있어서, 상기 하나 이상의 구성가능한(configurable) 인터페이스 장치는, 프로그래머블 MAC(Media Access Control) 인터페이스 장치 및 특정 프로토콜의 패킷을 수신하기 위한 프로토콜 인터페이스 가속기 장치로 구성된 그룹으로부터 선택된 하나 이상을 포함하는 단일 칩 프로토콜 컨버터 집적 회로.
  4. 제3항에 있어서, 상기 하나 이상의 프로세서 클러스터 어셈블리, 대응하는 로컬 저장 장치들, 상기 제1 및 제2 로컬 상호 접속 수단 및 상기 하나 이상의 인터페이스 장치들은 모두 상기 제1 및 제2 프로토콜 사이의 변환을 하는데 필요한 패킷 리사이징(resizing) 및 리포맷팅(reformatting)을 가능하게 하고, 상기 단일 칩 프로토콜 컨버터 디자인은 한 종류의 프로토콜의 상이한 버전 레벨들 사이에서 수신된 패킷들의 변환을 가능하게 하도록 부가적으로 변경된 단일 칩 프로토콜 컨버터 집적 회로.
  5. 제2항에 있어서, 제1 타입의 상기 수신된 패킷은 프로세서 클러스터 어셈블리의 하나 이상의 서브 프로세서 코어로 분할되고, 각각의 상기 서브 프로세서 코어는 동일한 세트의 명령어들을 실행하고 특정 프로토콜 프로세스와 짝이 되는(paired) 단일 칩 프로토콜 컨버터 집적 회로.
  6. 제2항에 있어서, 프로토콜 변환을 위해 상기 수신된 명령어들은 프로세서 클러스터 어셈블리 내에 완전히 포함되고, 상기 프로세싱은 상기 단일 칩 프로토콜 컨버터 IC 상에서의 상이한 리소스들에 의한 처리를 위해 상기 프로토콜 동작들의 분할을 포함하는 단일 칩 프로토콜 컨버터 집적 회로.
  7. 제2항에 있어서, 상기 제2 로컬 상호 접속 수단은 크로스바 스위치(crossbar switch)를 포함하는 단일 칩 프로토콜 컨버터 집적 회로.
  8. 제2항에 있어서, 프로토콜 변환과 관련된 하나 이상의 기능들을 수행하도록 하기 위하여 단일 칩 프로토콜 컨버터 디자인을 변경시키기 위한 수단을 더 포함하는 단일 칩 프로토콜 컨버터 집적 회로.
  9. 제2항에 있어서, 상기 프로토콜 변환 프로세스는 상기 임베디드 SoC 프로토콜 변환 매크로 코어 내로 제한되는 단일 칩 프로토콜 컨버터 집적 회로.
  10. 제2항에 있어서, 상기 단일 칩 프로토콜 컨버터 IC는 상기 하나 이상의 인터페이스 장치로부터 변환되는 통신 패킷을 수신하고 프로토콜 변환 어플리케이션 프로그램, 제어 정보, 및 상기 어플리케이션 프로그램에 의해 사용되는 데이터를 저장하기 위한 로컬 임베디드 메모리 저장 요소를 포함하는 컴포넌트를 포함하는 단일 칩 프로토콜 컨버터 집적 회로.
  11. 제2항에 있어서, 상기 하나 이상의 구성가능한 인터페이스 장치는, 파이버 채널, Gb 이더넷, 인피니밴드(Infiniband), iSCSI, FC-IP, TCP/IP, IP, MPLS, VoDSL, CAN 및 SAMBA를 포함하는 그룹으로부터 하나 이상을 포함하는 네트워크 통신 프로토콜에 따라 통신들을 수신할 수 있는 단일 칩 프로토콜 컨버터 집적 회로.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
KR1020040057615A 2003-07-25 2004-07-23 단일 칩 프로토콜 컨버터 KR100754578B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US10/604,491 2003-07-25
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/768,828 2004-01-30
US10/768,828 US7412588B2 (en) 2003-07-25 2004-01-30 Network processor system on chip with bridge coupling protocol converting multiprocessor macro core local bus to peripheral interfaces coupled system bus

Publications (2)

Publication Number Publication Date
KR20050012677A KR20050012677A (ko) 2005-02-02
KR100754578B1 true KR100754578B1 (ko) 2007-09-05

Family

ID=34119193

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020040057615A KR100754578B1 (ko) 2003-07-25 2004-07-23 단일 칩 프로토콜 컨버터
KR1020067001734A KR100986006B1 (ko) 2003-07-25 2004-07-23 마이크로프로세서 서브시스템

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020067001734A KR100986006B1 (ko) 2003-07-25 2004-07-23 마이크로프로세서 서브시스템

Country Status (4)

Country Link
US (3) US7412588B2 (ko)
EP (1) EP1654669A2 (ko)
KR (2) KR100754578B1 (ko)
WO (1) WO2005013143A2 (ko)

Families Citing this family (199)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050180095A1 (en) * 1996-11-29 2005-08-18 Ellis Frampton E. Global network computers
US7634529B2 (en) 1996-11-29 2009-12-15 Ellis Iii Frampton E Personal and server computers having microchips with multiple processing units and internal firewalls
US7506020B2 (en) 1996-11-29 2009-03-17 Frampton E Ellis Global network computers
US8225003B2 (en) 1996-11-29 2012-07-17 Ellis Iii Frampton E Computers and microchips with a portion protected by an internal hardware firewall
US6167428A (en) * 1996-11-29 2000-12-26 Ellis; Frampton E. Personal computer microprocessor firewalls for internet distributed processing
US6725250B1 (en) * 1996-11-29 2004-04-20 Ellis, Iii Frampton E. Global network computers
US7805756B2 (en) * 1996-11-29 2010-09-28 Frampton E Ellis Microchips with inner firewalls, faraday cages, and/or photovoltaic cells
US7926097B2 (en) * 1996-11-29 2011-04-12 Ellis Iii Frampton E Computer or microchip protected from the internet by internal hardware
US8312529B2 (en) 1996-11-29 2012-11-13 Ellis Frampton E Global network computers
WO2002003744A1 (en) * 2000-06-30 2002-01-10 Hughes Electronics Corporation Residential broadband communications device, and method of operating same
US20030105799A1 (en) * 2001-12-03 2003-06-05 Avaz Networks, Inc. Distributed processing architecture with scalable processing layers
US8539089B2 (en) * 2003-04-23 2013-09-17 Oracle America, Inc. System and method for vertical perimeter protection
US7412588B2 (en) * 2003-07-25 2008-08-12 International Business Machines Corporation Network processor system on chip with bridge coupling protocol converting multiprocessor macro core local bus to peripheral interfaces coupled system bus
US8667194B2 (en) * 2003-12-15 2014-03-04 Finisar Corporation Two-wire interface in which a master component monitors the data line during the preamble generation phase for synchronization with one or more slave components
US8572289B1 (en) * 2003-12-19 2013-10-29 Nvidia Corporation System, method and computer program product for stateless offloading of upper level network protocol operations
US7949792B2 (en) * 2004-02-27 2011-05-24 Cisco Technology, Inc. Encoding a TCP offload engine within FCP
US8225024B2 (en) * 2004-03-05 2012-07-17 Finisar Corporation Use of a first two-wire interface communication to support the construction of a second two-wire interface communication
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
WO2005089241A2 (en) 2004-03-13 2005-09-29 Cluster Resources, Inc. System and method for providing object triggers
US20050228509A1 (en) * 2004-04-07 2005-10-13 Robert James System, device, and method for adaptively providing a fieldbus link
JP4528551B2 (ja) * 2004-04-14 2010-08-18 株式会社日立製作所 ストレージシステム
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US7746846B2 (en) * 2004-07-15 2010-06-29 Broadcom Corporation Method and system for a gigabit Ethernet IP telephone chip with integrated security module
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
US7761608B2 (en) * 2004-09-01 2010-07-20 Qlogic, Corporation Method and system for processing markers, data integrity fields and digests
DE102004049671B4 (de) * 2004-10-12 2007-08-02 Mühlbauer Ag Elektronisches Modul für die Herstellung, Programmierung und das Testen von Chipkarten und zugehöriges Verfahren
US8478907B1 (en) * 2004-10-19 2013-07-02 Broadcom Corporation Network interface device serving multiple host operating systems
US8271980B2 (en) 2004-11-08 2012-09-18 Adaptive Computing Enterprises, Inc. System and method of providing system jobs within a compute environment
US20060133417A1 (en) * 2004-12-02 2006-06-22 International Business Machines Corporation Method and system for providing interoperability of different version protocols without access to protocol specific code
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
EP3203374B1 (en) 2005-04-07 2021-11-24 III Holdings 12, LLC On-demand access to compute resources
JP2006333438A (ja) * 2005-04-28 2006-12-07 Fujitsu Ten Ltd ゲートウェイ装置及びルーティング方法
US7761649B2 (en) * 2005-06-02 2010-07-20 Seagate Technology Llc Storage system with synchronized processing elements
US7596144B2 (en) * 2005-06-07 2009-09-29 Broadcom Corp. System-on-a-chip (SoC) device with integrated support for ethernet, TCP, iSCSI, RDMA, and network application acceleration
US20060274787A1 (en) * 2005-06-07 2006-12-07 Fong Pong Adaptive cache design for MPT/MTT tables and TCP context
US20080028136A1 (en) * 2006-07-31 2008-01-31 Schakel Keith R Method and apparatus for refresh management of memory modules
US8386722B1 (en) 2008-06-23 2013-02-26 Google Inc. Stacked DIMM memory interface
US8089795B2 (en) * 2006-02-09 2012-01-03 Google Inc. Memory module with memory stack and interface with enhanced capabilities
US8796830B1 (en) 2006-09-01 2014-08-05 Google Inc. Stackable low-profile lead frame package
US9542352B2 (en) * 2006-02-09 2017-01-10 Google Inc. System and method for reducing command scheduling constraints of memory circuits
US8397013B1 (en) 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
US8335894B1 (en) 2008-07-25 2012-12-18 Google Inc. Configurable memory system with interface circuit
US20080126690A1 (en) * 2006-02-09 2008-05-29 Rajan Suresh N Memory module with memory stack
US9507739B2 (en) 2005-06-24 2016-11-29 Google Inc. Configurable memory circuit system and method
KR101318116B1 (ko) * 2005-06-24 2013-11-14 구글 인코포레이티드 집적 메모리 코어 및 메모리 인터페이스 회로
US8090897B2 (en) * 2006-07-31 2012-01-03 Google Inc. System and method for simulating an aspect of a memory circuit
US8438328B2 (en) 2008-02-21 2013-05-07 Google Inc. Emulation of abstracted DIMMs using abstracted DRAMs
US7609567B2 (en) * 2005-06-24 2009-10-27 Metaram, Inc. System and method for simulating an aspect of a memory circuit
US8081474B1 (en) 2007-12-18 2011-12-20 Google Inc. Embossed heat spreader
US10013371B2 (en) 2005-06-24 2018-07-03 Google Llc Configurable memory circuit system and method
US8060774B2 (en) 2005-06-24 2011-11-15 Google Inc. Memory systems and memory modules
US9171585B2 (en) 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
US8327104B2 (en) 2006-07-31 2012-12-04 Google Inc. Adjusting the timing of signals associated with a memory system
US8244971B2 (en) 2006-07-31 2012-08-14 Google Inc. Memory circuit system and method
US8041881B2 (en) * 2006-07-31 2011-10-18 Google Inc. Memory device with emulated characteristics
US8111566B1 (en) 2007-11-16 2012-02-07 Google, Inc. Optimal channel design for memory devices for providing a high-speed memory interface
US8077535B2 (en) * 2006-07-31 2011-12-13 Google Inc. Memory refresh apparatus and method
US7580312B2 (en) * 2006-07-31 2009-08-25 Metaram, Inc. Power saving system and method for use with a plurality of memory circuits
US7590796B2 (en) * 2006-07-31 2009-09-15 Metaram, Inc. System and method for power management in memory systems
US8055833B2 (en) 2006-10-05 2011-11-08 Google Inc. System and method for increasing capacity, performance, and flexibility of flash storage
US7472220B2 (en) * 2006-07-31 2008-12-30 Metaram, Inc. Interface circuit system and method for performing power management operations utilizing power management signals
US20080082763A1 (en) * 2006-10-02 2008-04-03 Metaram, Inc. Apparatus and method for power management of memory circuits by a system or component thereof
US7386656B2 (en) * 2006-07-31 2008-06-10 Metaram, Inc. Interface circuit system and method for performing power management operations in conjunction with only a portion of a memory circuit
US8359187B2 (en) * 2005-06-24 2013-01-22 Google Inc. Simulating a different number of memory circuit devices
US8130560B1 (en) 2006-11-13 2012-03-06 Google Inc. Multi-rank partial width memory modules
US7392338B2 (en) * 2006-07-31 2008-06-24 Metaram, Inc. Interface circuit system and method for autonomously performing power management operations in conjunction with a plurality of memory circuits
EP1750396A1 (en) * 2005-08-03 2007-02-07 Siemens Aktiengesellschaft Method and communication device for transmitting packet-oriented information
US7734839B1 (en) * 2005-08-25 2010-06-08 American Megatrends, Inc. Method and integrated circuit for providing enclosure management services utilizing multiple interfaces and protocols
WO2007028109A2 (en) * 2005-09-02 2007-03-08 Metaram, Inc. Methods and apparatus of stacking drams
US20070109015A1 (en) * 2005-11-15 2007-05-17 Alcatel Switched integrated circuit connection architectures and techniques
US7673199B2 (en) * 2006-02-03 2010-03-02 Teradyne, Inc. Multi-stream interface for parallel test processing
US9632929B2 (en) 2006-02-09 2017-04-25 Google Inc. Translating an address associated with a command communicated between a system and memory circuits
US7904519B2 (en) * 2006-02-21 2011-03-08 Alcatel-Lucent Usa Inc. Method for switching between embedded communications and external communications
DE102006025133A1 (de) * 2006-05-30 2007-12-06 Infineon Technologies Ag Speicher- und Speicherkommunikationssystem
US7610408B2 (en) * 2006-06-29 2009-10-27 Agilent Technologies, Inc. Automatic link commissioning
US20080028135A1 (en) * 2006-07-31 2008-01-31 Metaram, Inc. Multiple-component memory interface system and method
US20080028137A1 (en) * 2006-07-31 2008-01-31 Schakel Keith R Method and Apparatus For Refresh Management of Memory Modules
US20080025136A1 (en) * 2006-07-31 2008-01-31 Metaram, Inc. System and method for storing at least a portion of information received in association with a first operation for use in performing a second operation
US7724589B2 (en) 2006-07-31 2010-05-25 Google Inc. System and method for delaying a signal communicated from a system to at least one of a plurality of memory circuits
US9455953B2 (en) * 2006-10-11 2016-09-27 Lantiq Beteiligungs-GmbH & Co. KG Router chip and method of selectively blocking network traffic in a router chip
WO2008060948A2 (en) * 2006-11-10 2008-05-22 Sandbridge Technologies, Inc. Method and system for parallelization of pipelined computations
US7917599B1 (en) 2006-12-15 2011-03-29 The Research Foundation Of State University Of New York Distributed adaptive network memory engine
US20080163358A1 (en) * 2007-01-03 2008-07-03 Texas Instruments Incorporated Initiator and target firewalls
US8307416B2 (en) * 2007-01-03 2012-11-06 Texas Instruments Incorporated Data structures for use in firewalls
KR100855701B1 (ko) * 2007-01-26 2008-09-04 엠텍비젼 주식회사 복수의 프로세서 코어가 통합된 칩 및 데이터 처리 방법
US7925798B2 (en) * 2007-01-26 2011-04-12 Lantiq Deutschland Gmbh Data packet processing device
WO2008095201A1 (en) * 2007-02-02 2008-08-07 Psimast, Inc. Processor chip architecture having integrated high-speed packet switched serial interface
KR100881191B1 (ko) * 2007-03-27 2009-02-05 삼성전자주식회사 멀티 프로토콜 씨리얼 인터페이스 장치 및 그에 따른soc 장치
US7562162B2 (en) * 2007-04-25 2009-07-14 At&T Intellectual Property I, L.P. Systems and methods for distributed computing utilizing a smart memory apparatus
JP2008287308A (ja) * 2007-05-15 2008-11-27 Toshiba Corp ブリッジプログラム、ブリッジ方法、シミュレータ
US8209479B2 (en) * 2007-07-18 2012-06-26 Google Inc. Memory circuit system and method
US7925794B2 (en) * 2007-08-17 2011-04-12 At&T Intellectual Property I, L.P. Systems and methods for localizing a network storage device
US8080874B1 (en) 2007-09-14 2011-12-20 Google Inc. Providing additional space between an integrated circuit and a circuit board for positioning a component therebetween
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US8125796B2 (en) 2007-11-21 2012-02-28 Frampton E. Ellis Devices with faraday cages and internal flexibility sipes
WO2009108902A2 (en) * 2008-02-29 2009-09-03 Atrato, Inc. Storage system front end
US7827334B2 (en) * 2008-06-26 2010-11-02 Triune Ip Llc Protocol method apparatus and system for the interconnection of electronic systems
EP2150021B1 (en) * 2008-07-30 2013-12-11 Alcatel Lucent Network apparatus for a communication network and method for assembling it
US8250281B2 (en) * 2008-10-15 2012-08-21 International Business Machines Corporation Data communications through a host fibre channel adapter
US9946667B2 (en) * 2008-11-12 2018-04-17 Microchip Technology Incorporated Microcontroller with configurable logic array
US8332552B2 (en) * 2008-11-13 2012-12-11 International Business Machines Corporation Supporting multiple high bandwidth I/O controllers on a single chip
US8051228B2 (en) * 2008-11-13 2011-11-01 International Business Machines Corporation Physical interface macros (PHYS) supporting heterogeneous electrical properties
US20100158005A1 (en) * 2008-12-23 2010-06-24 Suvhasis Mukhopadhyay System-On-a-Chip and Multi-Chip Systems Supporting Advanced Telecommunication Functions
US20100162265A1 (en) * 2008-12-23 2010-06-24 Marco Heddes System-On-A-Chip Employing A Network Of Nodes That Utilize Logical Channels And Logical Mux Channels For Communicating Messages Therebetween
WO2010074872A1 (en) * 2008-12-23 2010-07-01 Transwitch Corporation System-on-a-chip and multi-chip systems supporting advanced telecommunications and other data processing applications
US20100161938A1 (en) * 2008-12-23 2010-06-24 Marco Heddes System-On-A-Chip Supporting A Networked Array Of Configurable Symmetric Multiprocessing Nodes
US20100158023A1 (en) * 2008-12-23 2010-06-24 Suvhasis Mukhopadhyay System-On-a-Chip and Multi-Chip Systems Supporting Advanced Telecommunication Functions
US20100191814A1 (en) * 2008-12-23 2010-07-29 Marco Heddes System-On-A-Chip Employing A Network Of Nodes That Utilize Receive Side Flow Control Over Channels For Messages Communicated Therebetween
US8260976B1 (en) 2009-01-30 2012-09-04 American Megatrends, Inc. Multiple frequency state detection for serial I/O interfaces
EP2247154B1 (en) * 2009-04-27 2012-05-16 Telefonaktiebolaget L M Ericsson (PUBL) Technique for coordinated RLC and PDCP processing
ATE540498T1 (de) * 2009-04-27 2012-01-15 Ericsson Telefon Ab L M Verfahren zur durchführung einer schicht 2 verarbeitung unter verwendung einer verteilten speicherarchitektur
US9444757B2 (en) 2009-04-27 2016-09-13 Intel Corporation Dynamic configuration of processing modules in a network communications processor architecture
US9461930B2 (en) 2009-04-27 2016-10-04 Intel Corporation Modifying data streams without reordering in a multi-thread, multi-flow network processor
US9218290B2 (en) * 2009-04-27 2015-12-22 Intel Corporation Data caching in a network communications processor architecture
DE102009023199A1 (de) * 2009-05-29 2010-12-02 Siemens Aktiengesellschaft Kommunikationssystem
EP2441007A1 (en) * 2009-06-09 2012-04-18 Google, Inc. Programming of dimm termination resistance values
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
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
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
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
US9069929B2 (en) 2011-10-31 2015-06-30 Iii Holdings 2, Llc Arbitrating usage of serial port in node card of scalable and modular servers
US20130107444A1 (en) 2011-10-28 2013-05-02 Calxeda, Inc. System and method for flexible storage and networking provisioning in large scalable processor installations
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
US9311269B2 (en) 2009-10-30 2016-04-12 Iii Holdings 2, Llc Network proxy for high-performance, low-power data center interconnect fabric
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
US11720290B2 (en) 2009-10-30 2023-08-08 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
US9648102B1 (en) 2012-12-27 2017-05-09 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US8270420B2 (en) * 2009-12-15 2012-09-18 Hewlett-Packard Development Company, L.P. iSCSI to FCoE gateway
US9015333B2 (en) 2009-12-18 2015-04-21 Cisco Technology, Inc. Apparatus and methods for handling network file operations over a fibre channel network
US8639769B2 (en) 2009-12-18 2014-01-28 International Business Machines Corporation Handling of data transfer in a LAN-free environment
US8429735B2 (en) 2010-01-26 2013-04-23 Frampton E. Ellis Method of using one or more secure private networks to actively configure the hardware of a computer or microchip
CN101808123B (zh) * 2010-03-09 2013-04-17 浪潮(北京)电子信息产业有限公司 在存储系统中访问存储资源的方法和装置
US9158713B1 (en) * 2010-04-07 2015-10-13 Applied Micro Circuits Corporation Packet processing with dynamic load balancing
US8611352B2 (en) 2010-04-20 2013-12-17 Marvell World Trade Ltd. System and method for adapting a packet processing pipeline
WO2012023149A2 (en) * 2010-08-19 2012-02-23 Ineda Systems Pvt. Ltd Multi-root input output virtualization aware switch
US8789170B2 (en) * 2010-09-24 2014-07-22 Intel Corporation Method for enforcing resource access control in computer systems
GB2484900A (en) * 2010-10-21 2012-05-02 Bluwireless Tech Ltd Data processing unit with scalar processor, vector processor array, parity and FFT accelerator units
GB2484901A (en) * 2010-10-21 2012-05-02 Bluwireless Tech Ltd Data processing unit with scalar processor, vector processor array, parity and FFT accelerator units
US9285793B2 (en) 2010-10-21 2016-03-15 Bluewireless Technology Limited Data processing unit including a scalar processing unit and a heterogeneous processor unit
US9674318B2 (en) 2010-12-09 2017-06-06 Solarflare Communications, Inc. TCP processing for devices
US10873613B2 (en) 2010-12-09 2020-12-22 Xilinx, Inc. TCP processing for devices
US9258390B2 (en) 2011-07-29 2016-02-09 Solarflare Communications, Inc. Reducing network latency
US9600429B2 (en) 2010-12-09 2017-03-21 Solarflare Communications, Inc. Encapsulated accelerator
US8996644B2 (en) 2010-12-09 2015-03-31 Solarflare Communications, Inc. Encapsulated accelerator
CN102202058B (zh) * 2011-05-19 2013-11-06 中国兵器工业集团第二一四研究所苏州研发中心 多路uart总线与can总线之间协议转换控制器
US9380132B2 (en) 2011-06-27 2016-06-28 Marvell Israel (M.I.S.L.) Ltd. FCoE over trill
US9170952B1 (en) * 2011-12-28 2015-10-27 Altera Corporation Configurable multi-standard device interface
JP5930767B2 (ja) * 2012-02-23 2016-06-08 キヤノン株式会社 電子デバイス、通信制御方法
WO2013168427A1 (ja) 2012-05-11 2013-11-14 パナソニック株式会社 バス制御装置、バス制御システム、およびネットワークインタフェース
US9390042B2 (en) * 2012-07-03 2016-07-12 Nvidia Corporation System and method for sending arbitrary packet types across a data connector
DE102012215765A1 (de) * 2012-09-05 2014-05-15 Robert Bosch Gmbh Gateway-Modul für ein Kommunikationssystem, Kommunikationssystem und Verfahren zur Übertragung von Daten zwischen Teilnehmern eines Kommunikationssystems
WO2014041395A1 (en) 2012-09-12 2014-03-20 Freescale Semiconductor, Inc. System-on-chip device, method of peripheral access and integrated circuit
US10505747B2 (en) 2012-10-16 2019-12-10 Solarflare Communications, Inc. Feed processing
US9129071B2 (en) * 2012-10-24 2015-09-08 Texas Instruments Incorporated Coherence controller slot architecture allowing zero latency write commit
WO2014070763A1 (en) * 2012-10-30 2014-05-08 Anayas360.Com, Llc Compact and low-power millimeter-wave integrated vco-up/down- converter with gain-boosting
US9424228B2 (en) 2012-11-01 2016-08-23 Ezchip Technologies Ltd. High performance, scalable multi chip interconnect
US9904802B2 (en) 2012-11-23 2018-02-27 Nxp Usa, Inc. System on chip
US9336411B2 (en) * 2012-11-23 2016-05-10 Freescale Semiconductor, Inc. System on chip
US9135202B2 (en) 2013-02-06 2015-09-15 Apple Inc. Bridge circuit for bus protocol conversion and error handling
DE102013210064A1 (de) * 2013-05-29 2014-12-04 Robert Bosch Gmbh Verfahren zur Bereitstellung einer generischen Schnittstelle sowie Mikrocontroller mit generischer Schnittstelle
DE102013210077A1 (de) * 2013-05-29 2014-12-04 Robert Bosch Gmbh Verfahren zur Bereitstellung einer generischen Schnittstelle sowie Mikrocontroller mit generischer Schnittstelle
DE102013210182A1 (de) * 2013-05-29 2014-12-04 Robert Bosch Gmbh Verfahren zur Bereitstellung einer generischen Schnittstelle sowie Mikrocontroller mit generischer Schnittstelle
ES2764212T3 (es) 2013-06-19 2020-06-02 Schneider Electric Ind Sas Solución Ethernet universal
US9781120B2 (en) 2013-07-18 2017-10-03 Nxp Usa, Inc. System on chip and method therefor
US9436844B2 (en) 2013-08-29 2016-09-06 Microsoft Technology Licensing, Llc Access enablement security circuit
US9716708B2 (en) 2013-09-13 2017-07-25 Microsoft Technology Licensing, Llc Security certificates for system-on-chip security
DE102014209006A1 (de) * 2014-05-13 2015-11-19 Wobben Properties Gmbh Synchrongenerator einer getriebelosen Windenergieanlage
US9971730B2 (en) 2014-06-16 2018-05-15 Qualcomm Incorporated Link layer to physical layer (PHY) serial interface
DE102014217321A1 (de) * 2014-08-29 2016-03-03 Continental Teves Ag & Co. Ohg Mikrocontrollersystem und Verfahren für sicherheitskritische Kraftfahrzeugsysteme sowie deren Verwendung
US9690719B2 (en) 2014-09-11 2017-06-27 Nxp Usa, Inc. Mechanism for managing access to at least one shared integrated peripheral of a processing unit and a method of operating thereof
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
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
US9860841B2 (en) * 2015-08-20 2018-01-02 Apple Inc. Communications fabric with split paths for control and data packets
US10275385B2 (en) * 2016-02-25 2019-04-30 SK Hynix Inc. Integrated circuit system
FI127266B (en) * 2016-07-08 2018-02-28 Sarokal Test Systems Oy A system for processing data stream messages
JP6786324B2 (ja) * 2016-09-20 2020-11-18 株式会社東芝 多重化装置及び多重化方法
US10075392B1 (en) 2017-03-02 2018-09-11 Micron Technology, Inc. Methods and apparatuses for processing multiple communications signals with a single integrated circuit chip
US11055657B2 (en) 2017-03-02 2021-07-06 Micron Technology, Inc. Methods and apparatuses for determining real-time location information of RFID devices
US10516606B2 (en) 2017-07-12 2019-12-24 Micron Technology, Inc. System for optimizing routing of communication between devices and resource reallocation in a network
US10511353B2 (en) 2017-07-12 2019-12-17 Micron Technology, Inc. System for optimizing routing of communication between devices and resource reallocation in a network
WO2019089816A2 (en) * 2017-10-31 2019-05-09 Micron Technology, Inc. System having a hybrid threading processor, a hybrid threading fabric having configurable computing elements, and a hybrid interconnection network
EP3704595A4 (en) * 2017-10-31 2021-12-22 Micron Technology, Inc. SYSTEM WITH A HYBRID THREADING PROCESSOR, HYBRID THREADING MATRIX WITH CONFIGURABLE COMPUTER ELEMENTS AND HYBRID CONNECTION NETWORK
US11115383B2 (en) * 2018-05-24 2021-09-07 Texas Instruments Incorporated System on chip firewall memory architecture
TWI666647B (zh) * 2018-09-03 2019-07-21 瑞昱半導體股份有限公司 記憶體裝置
US11030102B2 (en) 2018-09-07 2021-06-08 Apple Inc. Reducing memory cache control command hops on a fabric
US11138135B2 (en) * 2018-09-20 2021-10-05 Samsung Electronics Co., Ltd. Scale-out high bandwidth memory system
KR20200066774A (ko) 2018-12-03 2020-06-11 삼성전자주식회사 반도체 장치
CN109634894A (zh) * 2018-12-06 2019-04-16 英业达科技有限公司 数据转换电路及数据转换方法
US10860325B1 (en) * 2019-07-05 2020-12-08 Nokia Solutions And Networks Oy Dynamic control of processor instruction sets
EP4059208B1 (en) * 2019-11-12 2023-09-13 Marvell Asia Pte, Ltd. Automotive network with centralized storage
TWI758675B (zh) * 2019-12-31 2022-03-21 新唐科技股份有限公司 微控制電路及印刷電路板
CN112187936B (zh) * 2020-09-29 2024-03-29 北京车和家信息技术有限公司 车辆数据处理方法、装置、设备、存储介质及车辆
US11347512B1 (en) * 2021-02-03 2022-05-31 International Business Machines Corporation Substitution through protocol to protocol translation
US20230065780A1 (en) * 2021-08-27 2023-03-02 International Business Machines Corporation Message management via a universal interface apparatus

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
KR20020002218A (ko) * 2000-06-30 2002-01-09 포만 제프리 엘 통신 프로토콜 변환기를 갖는 다기능 도크 및 라우터
WO2005013143A2 (en) * 2003-07-25 2005-02-10 International Business Machines Corporation A single chip protocol converter

Family Cites Families (53)

* 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
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 株式会社日立製作所 プロトコル高速処理方法
DE3930396C2 (de) 1989-09-12 1993-11-04 Bosch Gmbh Robert Verfahren zum einstellen von luft- und kraftstoffmengen fuer eine mehrzylindrige brennkraftmaschine
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 インターナショナル・ビジネス・マシーンズ・コーポレイション プロトコル変換機構、交換ネットワーク及びコンピュータ・システム
US5195181A (en) * 1992-01-10 1993-03-16 Digital Equipment Corporation Message processing system having separate message receiving and transmitting processors with message processing being distributed between the separate processors
US5742760A (en) * 1992-05-12 1998-04-21 Compaq Computer Corporation Network packet switch using shared memory for repeating and bridging packets at media rate
US5708659A (en) * 1993-10-20 1998-01-13 Lsi Logic Corporation Method for hashing in a packet network switching system
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
JPH08292932A (ja) 1995-02-24 1996-11-05 Matsushita Electric Ind Co Ltd マルチプロセッサシステムおよびマルチプロセッサシステムにおいてタスクを実行する方法
US5838935A (en) 1995-06-15 1998-11-17 Intel Corporation Method and apparatus providing programmable decode modes for secondary PCI bus interfaces
US5651002A (en) * 1995-07-12 1997-07-22 3Com Corporation Internetworking device with enhanced packet header translation and memory
DE69610548T2 (de) 1995-07-21 2001-06-07 Koninkl Philips Electronics Nv 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
JP3636399B2 (ja) * 1996-05-29 2005-04-06 富士通株式会社 プロトコル変換システム及びプロトコル変換方法
JPH10161973A (ja) 1996-11-29 1998-06-19 Hitachi Ltd バス制御装置およびバスユニット
WO1998028695A1 (en) 1996-12-19 1998-07-02 Hyundai Electronics America Video frame rendering engine
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
US6065038A (en) * 1998-02-06 2000-05-16 Accton Technology Corp. Method and apparatus for transmitting data at different data transfer rates using multiple interconnected hubs
US6088800A (en) * 1998-02-27 2000-07-11 Mosaid Technologies, Incorporated Encryption processor with shared memory interconnect
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、並びに同システムに於けるその通信制御方法
US7100020B1 (en) * 1998-05-08 2006-08-29 Freescale Semiconductor, Inc. Digital communications processor
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
US6769046B2 (en) 2000-02-14 2004-07-27 Palmchip Corporation System-resource router
US7032223B2 (en) 2000-03-01 2006-04-18 Realtek Semiconductor Corp. Transport convergence sub-system with shared resources for multiport xDSL system
US20020107903A1 (en) * 2000-11-07 2002-08-08 Richter Roger K. Methods and systems for the order serialization of information in a network processing environment
JP2001325207A (ja) 2000-05-17 2001-11-22 Hitachi Ltd キャッシュ内蔵型スイッチおよび計算機システムおよびキャッシュ内蔵型スイッチのスイッチ制御方法
JP4694092B2 (ja) * 2000-06-02 2011-06-01 ラディシス・コーポレーション エコー・キャンセレーションのないvoip通信
US6721313B1 (en) 2000-08-01 2004-04-13 International Business Machines Corporation Switch fabric architecture using integrated serdes transceivers
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
US7072970B2 (en) 2001-10-05 2006-07-04 International Business Machines Corporation Programmable network protocol handler architecture
US6904040B2 (en) 2001-10-05 2005-06-07 International Business Machines Corporaiton Packet preprocessing interface for multiprocessor network handler
US7013398B2 (en) 2001-11-15 2006-03-14 Nokia Corporation Data processor architecture employing segregated data, program and control buses
US6920154B1 (en) * 2001-12-17 2005-07-19 Supergate Technology Usa, Inc. Architectures for a modularized data optimization engine and methods therefor
US7826470B1 (en) * 2004-10-19 2010-11-02 Broadcom Corp. Network interface device with flow-oriented bus interface

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
KR20020002218A (ko) * 2000-06-30 2002-01-09 포만 제프리 엘 통신 프로토콜 변환기를 갖는 다기능 도크 및 라우터
WO2005013143A2 (en) * 2003-07-25 2005-02-10 International Business Machines Corporation A single chip protocol converter

Also Published As

Publication number Publication date
US8036243B2 (en) 2011-10-11
WO2005013143A2 (en) 2005-02-10
US8811422B2 (en) 2014-08-19
US20050021874A1 (en) 2005-01-27
US7412588B2 (en) 2008-08-12
EP1654669A2 (en) 2006-05-10
US20120082171A1 (en) 2012-04-05
US20090059955A1 (en) 2009-03-05
WO2005013143A3 (en) 2005-06-30
KR20060110858A (ko) 2006-10-25
KR100986006B1 (ko) 2010-10-06
KR20050012677A (ko) 2005-02-02

Similar Documents

Publication Publication Date Title
KR100754578B1 (ko) 단일 칩 프로토콜 컨버터
EP3400688B1 (en) Massively parallel computer, accelerated computing clusters, and two dimensional router and interconnection network for field programmable gate arrays, and applications
CN100524287C (zh) 微处理器子系统
Cerović et al. Fast packet processing: A survey
Regnier et al. ETA: Experience with an Intel Xeon processor as a packet processing engine
US7072970B2 (en) Programmable network protocol handler architecture
US20070180310A1 (en) Multi-core architecture with hardware messaging
US20060168283A1 (en) Programmable network protocol handler architecture
US20030099254A1 (en) Systems and methods for interfacing asynchronous and non-asynchronous data media
US7624204B2 (en) Input/output controller node in an adaptable computing environment
JP2006020371A (ja) ネットワーク・スイッチ及びコンポーネント及び操作方法
WO2002065700A2 (en) An interconnection system
Kavaldjiev et al. A survey of efficient on-chip communications for soc
JP2003508957A (ja) ネットワーク・プロセッサ処理コンプレックス及び方法
JP4088611B2 (ja) シングル・チップ・プロトコル・コンバーター
EP1346549A1 (en) Intercommunication preprocessor
CN112905523A (zh) 一种芯片及核间数据传输方法
Cao et al. Design of hpc node with heterogeneous processors
Wang et al. Reconfigurable RDMA communication framework of MULTI-DSP
Cerović Resilient and highly performant network architecture for virtualized data centers
Wang et al. A multi-level arbitration and topology free streaming network for chip multiprocessor
Tudruj " Connection by communication" paradigm for dynamically reconfigurable multi-processor systems
Vermeulen Data-acquisition and triggering with transputers
Ashok et al. DESIGN OF AN ON-CHIP PERMUTATION NETWORK FOR MULTIPROCESSOR SOC
Pai Development of a low-latency scalar communication routine on message-passing architectures

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]
FPAY Annual fee payment

Payment date: 20130719

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140716

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150730

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160727

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170804

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180730

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190729

Year of fee payment: 13