KR20140043940A - 동적으로 선택 가능한 중복 공유된 링크 물리적 경로들을 사용하여 개방형 코어 프로토콜 기반 상호 접속 네트워크들에서 데이터 처리량 개선을 위한 방법 - Google Patents

동적으로 선택 가능한 중복 공유된 링크 물리적 경로들을 사용하여 개방형 코어 프로토콜 기반 상호 접속 네트워크들에서 데이터 처리량 개선을 위한 방법 Download PDF

Info

Publication number
KR20140043940A
KR20140043940A KR1020147004701A KR20147004701A KR20140043940A KR 20140043940 A KR20140043940 A KR 20140043940A KR 1020147004701 A KR1020147004701 A KR 1020147004701A KR 20147004701 A KR20147004701 A KR 20147004701A KR 20140043940 A KR20140043940 A KR 20140043940A
Authority
KR
South Korea
Prior art keywords
fabric
link
ocp
initiator
target
Prior art date
Application number
KR1020147004701A
Other languages
English (en)
Other versions
KR101687273B1 (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 KR20140043940A publication Critical patent/KR20140043940A/ko
Application granted granted Critical
Publication of KR101687273B1 publication Critical patent/KR101687273B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

동적으로 선택 가능한 라우팅을 사용하여 점 대 점 링크를 채용하는 상호 접속 패브릭들에서 데이터 처리량 개선을 용이하게 하기 위한 방법 및 장치가 개시된다. 개사자 및 타겟은 제 1 및 제 2 패브릭들에 동작 가능하게 연결된다. 제 1 및 제 2 패브릭들은 다수의 점 대 점 내부 링크들을 포함하고, 제 1 패브릭으로부터 제 2 패브릭으로의 제 1 및 제 2 링크들을 포함하는 다수의 패브릭 대 패브릭 링크들을 통해 서로에 통신 가능하게 연결된다. 동작 동안에, 제 1 패브릭 대 패브릭 링크 상의 트래픽은, 상기 링크가 사용중인지를 결정하기 위해 검출되고, 그 결정에 의존하여, 제 2 패브릭에 연결된 타겟으로 가는, 제 1 패브릭에 연결된 개시자로부터의 데이터 전송이 제 1 또는 제 2 패브릭 대 패브릭 링크들 중 어느 하나를 통해 선택적으로 라우팅된다.

Description

동적으로 선택 가능한 중복 공유된 링크 물리적 경로들을 사용하여 개방형 코어 프로토콜 기반 상호 접속 네트워크들에서 데이터 처리량 개선을 위한 방법{METHOD FOR DATA THROUGHPUT IMPROVEMENT IN OPEN CORE PROTOCOL BASED INTERCONNECTION NETWORKS USING DYNAMICALLY SELECTABLE REDUNDANT SHARED LINK PHYSICAL PATHS}
본 발명의 분야는 일반적으로 컴퓨터 시스템 인터페이스에 관한 것이며, 더 자세하게는 SoC(System on a Chip) 상의 상호 접속부의 데이터 처리량을 개선하기 위한 기술 등에 관한 것이지만 배타적인 것은 아니다.
컴퓨터 시스템은 통상적으로 프로세서와 메모리 사이와 같이 시스템 구성요소들 사이의 통신을 용이하게 하기 위해 하나 이상의 상호 접속부들을 채용한다. 상호 접속부 및/또는 확장 인터페이스는 또한 IO(input/output) 장치 및 확장 카드 등과 같은 빌트-인 및 애드 온 장치(built-in and add on device)를 지원하는데 사용될 수 있다. 개인용 컴퓨터가 도입된 이후 수년 동안에, 상호 접속부의 주요 형태는 병렬 버스이었다. 병렬 버스 구조는 ISA(Industry Standard Architecture), MCA(Micro Channel Architecture), EISA(Extended Industry Standard Architecture) 및 VESA 로컬 버스와 같이 내부 데이터 전송 및 확장 버스 모두에서 사용된다. 1990년도 초기에 인텔 코포레이션은 PCI(Peripheral Component Interconnect) 컴퓨터 버스를 도입하였다. PCI는, 버스 속도를 증가시킬 뿐만 아니라, 공유된 어드레스 및 데이터 라인을 사용하는 자동 구성 및 트랜잭션-기반 데이터 전송을 도입함으로써 초기 버스 기술을 능가하였다.
시간이 지남에 따라, 컴퓨터 프로세서 클록 레이트는 병렬 버스 클록 레이트보다 더 빠른 페이스로 증가하고 있다. 결과적으로, 컴퓨터 작업량(workload)은 종종 프로세서 속도보다는 상호 접속 병목 현상에 의해 제한되었다. 병렬 버스들 각각의 사이클마다 많은 양의 데이터(예를 들면, PCI-X 하에서 32 또는 심지어 64 비트)의 전송을 지원하지만, 그들의 클록 레이트는 타이밍 오차 고려사항(timing skew consideration)에 의해 제한되어, 최대 버스 속도에 대한 실질적인 한계를 초래한다. 이러한 문제점을 극복하기 위해, 고속 직렬 상호 접속부가 개발되었다. 초기 직렬 상호 접속부의 예는 직렬 ATA, USB(Universal Serial Bus), 파이어와이어(Fire Wire), 및 RapidIO를 포함한다.
널리 사용되는 또 다른 일반적인 직렬 상호 접속부는 PCIe라 또한 불리는 PCI 익스프레스이고, 이것은 PCIe 10. 표준 하에서 2004년에 도입되었다. PCIe는 레거시 지원을 제공하면서 오래된 PCI 및 PCI-X 표준을 대체하도록 설계되었다. PCIe는 공유된 병렬 버스 아키텍쳐보다는 점 대 점 직렬 링크(point-to-point serial link)를 채용한다. 각각의 링크는 하나 이상의 레인들을 사용하여 2 개의 PCIe 포트들 사이의 점 대 점 통신 채널을 지원하고, 각각의 레인은 양방향 직렬 링크를 포함한다. 레인은, 다수의 장치들 사이의 통신을 동시에 지원하는 크로스바 스위치 아키텍쳐를 사용하여 물리적으로 라우팅된다. 그의 고유한 이점의 결과로서, PCIe는 오늘날의 개인용 컴퓨터에서 가장 널리 퍼져 있는 상호 접속부로서 PCI를 대체하고 있다. PCIe는 PCI-SIG(Special Interest Group)에 의해 관리되는 산업 표준이다. 이와 같이, PCIe 패드는 많은 ASIC 및 실리콘 벤더로부터 이용 가능하다.
최근에, 인텔은 QPI(QuickPath Interconnect®)를 도입하였다. QPI는, Intel®, Xeon® 및 Itanium® 프로세서와 같은 고성능 프로세서를 사용하는 플랫폼 상의 프론트 사이드 버스를 대체하는 점 대 점 프로세서 상호 접속부로서 초기에 구현되었다. QPI는 스케일링 가능하고, 공유된 메모리 자원들을 채용하는 다수의 프로세서들을 갖는 시스템에서 특히 유리하다. QPI 트랜잭션은 다중-층 프로토콜 아키텍쳐를 사용하는 패킷-기반 전송을 채용한다. 그의 특징들 중에서, 코히런트 트랜잭션(coherent transaction)(예를 들면, 메모리 일관성)이 지원된다.
또한, 동시대 시스템 레벨 통합 도전과제를 만족시키도록 의도된 개방적으로 허가된, 코어-중심 프로토콜인 개방형 코어 프로토콜(Open Core Protocol)이 최근에 도입되었다. OCP는 온-칩 서브시스템 통신에 대한 버스-독립적이고, 구성 가능하고 스케일링 가능한 인터페이스를 규정한다. OCP 규격의 현재 버전은 OCP 3.0 규격(이전 버전 OCP 2.2의 업데이트)이고, 이들 모두는 ocpip.org에서 다운로딩이 가능하다.
다른 최근의 개선책들은 다중-코어 프로세서, 다중-기능 SoC 및 더 높은 밀도의 코어 및 다이를 포함한다. 동시에, 특히 모바일 플랫폼에 대해 전력 소비를 감소시키는 것에 대한 프리미엄이 붙는다. 이러한 개선책에 의해 제안된 스케일링 가능성(scalability)을 이용하기 위해, 다양하고 때때로 상충하는 제약이 해소될 필요가 있다. 예를 들면, 크로스-바 상호 접속부(패브릭(fabric)으로 또한 알려짐)가 SoC에서 구현될 때, 패브릭에 접속된 다수의 IP 블럭들의 기능으로서, 지연 및 전력 소비가 증가한다. 동시에, 그러한 크로스-바 상호 접속부에 의해 촉진되는 점 대 점 가상 링크는 상당한 인터-IP 블럭 통신 처리량을 제공할 수 있다. 따라서, 대응하는 전력 소비 증가 없이 개선된 처리량을 지원하는 스케일링 가능한 아키텍쳐를 구현하는 것이 유리할 것이다.
본 발명의 상기 국면 및 수반되는 많은 이점은, 첨부하는 도면과 연관지어 볼 때, 다음의 상세한 설명을 참조하여 더 잘 이해되는 바와 마찬가지로 더 쉽게 알 수 있을 것이고, 유사한 참조부호는 특별한 언급이 없는 한 여러 도면에 걸쳐 유사 부분을 가리킨다.
도 1a는 패브릭들의 계층적 세트 및 대응하는 패브릭 대 패브릭 링크를 포함하는 SoC 아키텍쳐를 도시한다.
도 1b는 추가로 복수의 공유된 패브릭 대 패브릭 링크들을 도시하는, 도 1a의 SoC 아키텍처의 구현예를 도시한다.
도 1c는 추가로 패브릭들 사이의 데이터의 동적 라우팅을 지원하는 복수의 중복 패브릭 대 패브릭 링크를 도시하는, 도 1a의 SoC 아키텍쳐의 구현예를 도시한다.
도 2는 개방형 코어 프로토콜에 의한 기본적인 오브젝트 사용을 예시한 블럭도이다.
도 3a는 한 쌍의 OCP 패브릭들 내의 다양한 단방향 링크, 및 OCP 패브릭들 사이의 한 쌍의 패브릭 대 패브릭 링크들을 도시하고, 추가로 OCP 패브릭들 각각에 대한 어드레스 맵을 도시한다.
도 3b는 추가로 OCP 패브릭들 사이의 중복 패브릭 대 패브릭 링크를 포함하는, 도 3a의 패브릭 구성을 도시한다.
도 3c는 추가로 데이터를 개시자로부터 타겟으로 동적으로 라우팅하기 위해 사용되는 선택기 로직을 포함하고, 추가로 패브릭 어드레스 맵에 대한 대응하는 수정예를 도시하는, 도 3b의 구성의 변형예를 도시한다.
도 4는 일 실시예에 따른, 도 3c의 선택기의 구현예의 세부 사항을 예시한 도면이다.
도 5는 브리지 계층이 사우스 컴플렉스(south complex)에서 구현된 예시적인 SoC의 블럭도이다.
동적으로 선택 가능한 중복 공유된 링크를 사용하여 상호 접속부에서 데이터 처리량 개선을 용이하게 하기 위한 방법들 및 장치의 실시예가 여기에 기술된다. 다음의 명세서에서, OCP 상호 접속부를 채용하는 구현예들과 같이, 다수의 특정 세부 사항들이 본 발명의 실시예의 완전한 이해를 제공하기 위해 제시된다. 그러나, 당업자는 본 발명이 하나 이상의 그 특정 세부사항이 없거나 다른 방법, 구성요소, 재료 등에 의해 실시될 수 있음을 이해할 것이다. 다른 예에서, 공지된 구조, 재료 또는 동작은 본 발명의 국면을 애매하게 하는 것을 피하기 위해 세부적으로 도시 또는 기술되지 않는다.
본 명세서 전체에 걸쳐 "하나의 실시예" 또는 "일 실시예"와 같은 언급은, 그 실시예와 연관지어 기술된 특정 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함됨을 의미한다. 따라서, 본 명세서 전체에 걸친 여러 부분에서 "하나의 실시예에서" 또는 "일 실시예에서"라는 구절의 출현은 모두 반드시 동일한 실시예를 가리키는 것은 아니다. 또한, 특정 특징, 구조, 또는 특성은 하나 이상의 실시예에서 임의의 적당한 방식으로 조합될 수 있다.
명확히 하기 위해, 여기의 도면 내의 개별적인 구성요소가 또한 특정 참조 번호보다는 도면 내의 그들의 라벨에 의해 지칭될 수 있다. 예를 들면, 다양한 도면 내의 노드 또는 블럭의 라벨링은 노드/블럭 및/또는 그의 기능을 식별하는 정보를 제공하고, 그러한 정보는 개별적인 참조 번호를 통해 홀로 전달될 수 없다. 부가적으로, 특정 형태의 구성요소(특정 구성요소와 반대로)를 지칭하는 참조 번호는 참조 번호 다음에 "전형적인" 것을 의미하는 "(typ)"가 뒤따르도록 도시될 수 있다. 이러한 구성요소의 구성이 간단하고 명확히 하기 위해 도면에 존재하지만 도시되지 않을 수 있는 유사한 형태의 구성요소일 것이라는 것이 이해될 것이다.
위에서 논의된 바와 같이, 컴퓨터 아키텍쳐는 이산적인 구성요소 아키텍쳐로부터 SoC-기반 아키텍쳐를 향해 이동하고 있다. 모듈성(modularity)이 또한 SoC 아키텍쳐들의 핵심적인 양상이다. 통상적으로, 시스템 설계자는 산업에서 일반적으로 IP(Intellectual Property) 코어, IP 블럭, 또는 간단히 IP로서 지칭되는 기능적 블럭을 포함하여 다양한 기능적 블럭을 통합할 것이다. 이러한 목적으로, 여기서 이러한 기능적 블럭은 일반적으로 IP 블럭 또는 간단히 "IP"로 지칭되고, SoC 개발 및 제조 산업의 당업자에 의해 이해되는 바와 같이, 용어 IP 블럭 또는 IP가 또한 IP 코어 및 IP로서 일반적으로 알려진 임의의 다른 구성요소 또는 블럭을 포함한다는 것이 이해될 것이다. 이러한 IP 블럭은 일반적으로 하나 이상의 전용 기능들을 서빙하고, 다양한 벤더로부터 허가되거나 내부에서 개발된 기존의 회로 설계 블럭을 종종 포함한다. 이러한 IP 블럭을 통합하기 위해, SoC에 대해 다양한 인터페이스가 설계된다.
도 1a는 계층적 방식으로 구성된 다수의 상호 접속 패브릭들(102)을 채용하는 예시적인 SoC 아키텍쳐(100)를 도시한다. 용어 "계층적"은, 상호 접속 네트워크가 상호 접속 패브릭 또는 간단히 패브릭으로서 일반적으로 지칭되는 상호 접속된 서브-네트워크들의 세트를 포함한다는 것을 의미한다. 편의상, 패브릭은 일반적으로 각각의 패브릭에 대한 개별적인 참조 번호보다는 그들의 라벨(예를 들면, 패브릭 1, 패브릭 2 등)에 의해 일반적으로 지칭될 것이다. 따라서, SoC 아키텍쳐는 패브릭들(1-5)을 포함하고, 이들 각각은 후술되는 바와 같이 다수의 서브-네트들을 통한 통신을 용이하게 하기 위해 다른 패브릭에 상호 접속된 독립적인 서브-네트로서 동작한다. 다양한 IP 블럭(또한 OCP 규격에 의해 IP 코어로 지칭됨)(104)은 SoC 아키텍쳐(100)에서 대응하는 패브릭에 접속되는 것으로 도시되고, 이러한 IP 블럭은 A-V로 라벨링되고, 여기서 편의상 문자 라벨에 의해 언급될 것이다. 다양한 IP 블럭들은, 프로세서 코어, 메모리 캐시 구성요소 및 에이전트, 메모리 제어기, I/O 제어기 및 인터페이스, 주변 장치 및 주변 인터페이스, 비디오 및 오디오 구성요소 및 인터페이스, 플랫폼 관리 구성요소 등을 포함하지만 이에 제한되지 않는, SoC 설계에서 통상적으로 채용되는 구성요소 또는 기능적 유닛(즉, 기능적 블럭)을 나타낸다.
도 1a에 패브릭들(1-5)로 도시된 것과 같은 상호 접속 패브릭은 대응하는 배선 및 프로토콜을 사용하여 IP 블럭들 사이의 통신을 지원한다. 일반적으로, 주어진 상호 접속 패브릭의 구조는 완전한 크로스-바 "메쉬(mesh)", 복수의 점 대 점 링크들을 포함하는 느슨하게 장착된 패브릭, 공유된 버스형 아키텍쳐, 또는 링형 토폴로지를 포함할 수 있다. 일 실시예에서, SoC 아키텍쳐(100)는, 패브릭들(1-5) 각각이 이러한 토폴로지들 중 어느 하나로 구성될 수 있도록 일반화된다. 또한, 특정 상호 접속 구조 및 프로토콜이 SoC 아키텍쳐(100)에서 또한 일반화되어, 다양한 패브릭들이 동일하거나 상이한 상호 접속 구조 및 프로토콜을 채용할 수 있다. 예를 들면, 프로세서 코어 및 메모리 캐시-관련 IP 블럭 사이의 통신을 위해 캐시 인관성 프로토콜(예를 들면, QPI)을 지원하는 상호 접속부를 채용하는 것이 바람직할 수 있고, 한편 OCP와 같은 다른 구조 및 프로토콜이 아카텍쳐 내의 다른 패브릭에서 사용될 수 있다. 선택적으로, 전체 아키텍쳐에서 단일 프로토콜이 사용될 수 있거나, 또는 도 1a에 도시된 패브릭 구조가 SoC의 일부를 도시할 수 있다. 예를 들면, 일 실시예에서, SoC 아키텍쳐(100)는 도 5에 도시되고 후술되는 것과 같은 SoC 아키텍쳐 내의 사우스 컴플렉스에 대응한다.
일 실시예에서, 패브릭들(1-5) 각각은 OCP 패브릭을 포함한다. 개방형 코어 프로토콜 하에서, 통신은 상세히 후술되는 바와 같이, 개시자(I)에 의해 개시되고 패브릭을 통해 타겟(T)으로 지향된다. 따라서, 개시자 블럭(106)(I) 및 타겟 블럭(108)(T)이 도 1에서 각각의 IP 블럭들(A-V) 내부에 도시된다. 일반적으로, 개시자 블럭(I) 또는 타겟 블럭(T)은 IP 블럭 및 IP 블럭이 연결된 패브릭 사이의 통신을 용이하게 하기 위한 인터페이스 회로를 묘사하고, 따라서 개시자 및 타겟 블럭은 또한 여기에 도시된 IP 블럭 내의 개시자 및 타겟 인터페이스를 지칭할 수 있다.
통신 시에 패브릭들의 쌍들을 연결하기 위해 채용되는 복수의 패브릭 대 패브릭 링크들(110)이 SoC 아키텍쳐(100) 내에 또한 도시된다. 이들은 FF n-m으로 라벨링되고, 여기서 n은 연결된 패브릭들 중 하나를 나타내고, m은 다른 것을 나타낸다. 예를 들면, 패브릭 대 패브릭 링크(FF)(1-2)는 패브릭(1) 및 패브릭(2) 사이의 통신을 용이하게 한다. 패브릭 대 패브릭 링크들로서 지칭되지만, 이러한 링크들은, 접속된 패브릭이 상이한 구조 및 프로토콜(예를 들면, QPI 대 OCP 브리지)을 채용하는 경우 또는 동일한 프로토콜을 채용하는 한 쌍의 접속된 패브릭들의 클로킹 속도가 상이한 경우에서 패브릭 대 패브릭 브리지로서 또한 기능할 수 있다.
도 1a에서, 개시자 블럭(I) 및/또는 타겟 블럭(T) 모두를 포함하는 다양한 IP 블럭(104)이 도시되어, 다양한 IP 블럭에 대한 OCP 패브릭을 갖는 인터페이스 능력이 상이할 수 있다는 것을 나타낸다. 예를 들면, 오디오 입력(마이크로폰) 및 출력(스피커)과 같은 주변 장치는 다른 IP 블럭과의 단방향 통신만을 요구할 수 있지만, 대응하는 오디오 인터페이스 구성요소가 양방향 또는 단방향 통신 중 어느 하나를 지원할 수 있다는 것 주목된다. 유사한 방식으로, 패브릭 대 패브릭 링크들(10) 각각은 링크를 통한 양방향 통신에 대한 지원을 표시하기 위해 이중 방향 화살표로서 도시된다. 그러나, 여기서 양방향 통신에 대한 언급은 양방향 물리적 링크(즉, 그의 배선을 통한 양방향 통신을 지원하는 물리적 링크)를 요구하지 않는다. 오히려, 더 상세히 아래에 설명되는 바와 같이, IP 블럭 또는 패브릭들 사이의 양방향 통신은 반대 방향으로 동작하는 단방향 링크의 사용을 통해 용이하게 될 수 있다. 대안적으로, 양방향 데이터 전송은, 가령, 개시자가 타겟과 함께 판독 및 기록 동작을 수행할 때 단일의 단방향 링크(즉, 대응하는 배선들의 세트는 양방향 데이터 전송을 지원하는데 사용됨)를 통해 발생할 수 있다.
여기에 개시된 실시예의 국면은 스마트폰 및 태블릿과 같은 모바일 플랫폼에서 이롭게 전개될 수 있다. 이러한 형태의 플랫폼에 대한 전력 소비에 대해 프리미엄이 붙고, 따라서 전력 소비에서의 임의의 감소가 이롭다. 여기의 교시에 따라, 전력 소비는 계층적 상호 접속 패브릭 아키텍쳐의 사용을 통해 및 중복 공유된 물리적 링크를 통한 동적으로 선택 가능한 라우팅의 사용을 통해 감소될 수 있다.
공유된 버스 또는 완전히 장착된 크로스바 상호 접속과 비교하여, 계층적 네트워크는, [1] 선택된 패브릭이 필요로 되지 않을 때 전력이 통제될 수 있기 때문에, 전력 효율 면에서 및 [2] 패브릭의 복잡성(교차점으로서 구현됨)이 접속된 유닛들의 수의 제곱에 따라 커지기 때문에 실리콘 면적 면에서 통상적으로 이점을 갖는다. 일반적으로, 임의의 능동 트랜지스터 동작 또는 SoC 회로 상의 전기 부하를 초래하는 임의의 동작의 사용은 전력이 소비되게 한다. 또한, 상호 접속부들과 같은 회로에서 사용되는 동작 주파수(예를 들면, 클록 사이클 또는 주파수)가 더 높을수록, 전력 소비가 더 높다. 이를 고려하여, 더 적은 물리적 상호 접속 구조(즉, 더 적은 "배선들" 및 대응하는 인터페이스 회로, 가령 버퍼 및 스위칭 로직)를 사용하거나, 및/또는 더 낮은 주파수에서 동작함으로써 전력이 감소될 수 있다. 그러나, 양자의 경우에서, 전력 소비와 처리량 성능 사이에 트레이드오프가 존재한다.
상기 트레이드오프를 해소하기 위한 하나의 방법은, 프로세서 및 메모리 동작 또는 비디오 동작과 일반적으로 연관된 더 높은 레이트를 요구하지 않는 SoC 아키텍쳐의 부분들에 대해 더 낮은 주파수 클록 레이트를 사용하는 것이다. 예를 들면, 일반적으로 낮은 속도로서 분류되는 오디오 컴포넌트, 및 주변 장치 및/또는 I/O 구성요소는 더 낮은 클록 레이트로 동작하는 대응하는 상호 접속 패브릭 블럭에 인터페이스하도록 구성될 수 있다. SoC 아키텍쳐(100)의 계층적 특성이 별개의 패브릭들의 구현을 지원하기 때문에, 개별적인 패브릭은 더 낮은 주파수에서 동작될 수 있거나, 대기 상태에 놓이거나 턴 "오프" 상태로 될 수 있다. 예를 들면, 오디오 IP 블럭이 별개의 패브릭에 연결되면, 어떠한 오디오 기능도 요구되지 않을 때, 그 패브릭은 턴 오프되거나 대기 상태에 놓일 수 있고, 따라서 배터리 수명을 절약한다.
본 개시내용의 또 다른 혁신적인 국면은, 동시에 더 낮은 전송 레이트를 요구하는 동작 조건 하에서 전력 소비를 감소시키면서, 특정 동작 조건 하에서 더 높은 전송 레이트를 지지하도록 동적으로 구성될 수 있는 중복 물리적 링크의 사용이다. 다음의 실시예에서, 개방형 코어 프로토콜 준수 패브릭의 사용은 이러한 특징들의 구현 국면을 보여주기 위해 사용된다. 그러나, 다른 프로토콜을 사용하는 패브릭 구현이 도한 데이터 처리량 및 전력 감소에서의 유사한 개선을 획득하도록 전개될 수 있다는 것이 주목된다.
개방형 코어 프로토콜은, 여기서 에이전트로서 또한 지칭되는 버스 인터페이스 모듈(버스 래퍼(bus wrapper)) 및 IP 코어와 같은 2 개의 통신 엔티티들 사이의 점 대 점 인터페이스를 정의한다. 하나의 엔티티는 OCP 인스턴스의 마스터로서 작동하고, 다른 것은 슬레이브로서 작동한다. 단지 마스터는 커맨드를 제공할 수 있고, 제어하는 엔티티이다. 슬레이브는, 마스터로부터 데이터를 수용하거나 데이터를 마스터에 제공함으로써 슬레이브에 제공된 커맨드에 응답한다. 2 개의 엔티티가 피어 대 피어 방식으로 통신하기 위해, 그들을 접속하는 OCP의 2 개의 예들 ― 제 1 엔티티가 마스터인 경우, 및 제 1 엔티티가 슬레이브인 경우 ― 가 존재할 필요가 있다.
도 2는, 래핑된 버스 및 3 개의 IP 코어 엔티티들: 시스템 타겟인 하나, 시스템 개시자인 하나 및 개시자 및 타겟 모두인 엔티티를 포함하는 간단한 시스템을 도시한다. 일반적으로 "마스터" 및 "개시자"가 동의어이고, 이와 같이, 이러한 용어가 여기서 상호 교환 가능하게 사용될 수 있다는 것이 이해될 것이다. 마찬가지로, "슬레이브" 및 "타겟"은 동의어이고, 상호 교환 가능하게 사용될 수 있다.
IP 코어의 특성은 코어가 마스터, 슬레이브 또는 OCP의 양쪽 측면들을 필요로 하는지, 래퍼 인터페이스 모듈이 각각의 접속된 엔티티에 대한 OCP의 상보적인 측면으로서 작동해야 하는지를 결정한다. 이러한 시스템을 통한 전송이 다음이 같이 발생한다. 시스템 개시자(OCP 마스터로서)는 커맨드, 제어 및 아마도 데이터를 그의 접속된 슬레이브(버스 래퍼 인터페이스 모듈)에 제공한다. 인터페이스 모듈은 온-칩 버스 시스템에 걸쳐 요청을 처리한다. OCP는 내장된 버스 기능을 지정하지 않는다. 대신에, 인터페이스 설계자는 OCP 요청을 내장된 버스 전송으로 변환한다. 수신하는 버스 래퍼 인터페이스 모듈(OCP 마스터로서)은 내장된 버스 동작을 정당한 OCP 커맨드로 변환한다. 시스템 타겟(OCP 슬레이브)은 커맨드를 수신하고 요청된 동작을 취한다.
OCP의 각각의 인스턴스는 접속된 엔티티의 요건에 기초하여 (신호들 또는 특정 신호의 비트 폭을 선택함으로써) 구성되고, 다른 것과 독립적이다. 예를 들면, 시스템 개시자는 시스템 타겟이 요구하는 것보다 그들의 OCP 인스턴스에서 더 많은 어드레스 비트들을 요구할 수 있고, 여분의 어드레스 비트들은 어떠한 버스 타겟이 시스템 개시자에 의해 어드레싱되는지를 선택하기 위해 내장된 버스에 의해 사용될 수 있다.
OCP는 유연하다. 기존의 IP 코어가 서로 통신하는 방법에 대한 몇몇의 유용한 모델들이 존재한다. 일부는 대역폭 및 지연 특성들을 개선하기 위해 파이프라이닝을 채용한다. 다른 것들은 다중-사이클 액세스 모델을 사용하고, 여기서 신호들은 타이밍 분석을 간소화하고 구현 영역을 감소시키기 위해 몇몇의 클록 사이클 동안에 정적으로 유지된다. 이러한 광범위한 거동에 대한 지원은, 마스터 및 슬레이브 모두가 신호가 변하도록 허용되는 때를 제어하도록 허용하는 동기 핸드쉐이킹 신호의 사용을 통해 가능하다.
아래의 표 1은 기본적인 OCP 신호를 나열한다. 일반적으로, OCP의 다양한 국면에 관련된 세부 사항은 개방형 코어 프로토콜 규격 2.2(또는 3.0)에 제공된다. 기본적인 OCP 이외에, OCP 규격에 의해 정의된 바와 같이 구현될 수 있는 다양한 선택적인 신호들이 존재한다.
Figure pct00001
Clk
OCP 클록에 대한 입력 클록 신호. OCP 클록의 상승 에지는 선언된 EnableClk를 샘플링하는 Clk의 상승 에지로서 정의된다. Clk의 하강 에지 및 선언된 EnableClk를 샘플링하지 않는 Clk의 임의의 상승 에지는 OCP 클록의 상승 에지를 구성하지 않는다.
EnableClk
은 Clk의 어떠한 상승 에지가 OCP 클록의 상승 에지인지, 즉, Clk의 어떠한 상승 에지가 샘플링하고 인터페이스 상태를 진행시켜야 하는지를 표시한다. 이러한 신호를 구성하기 위해 enableclk 파라미터를 사용한다. EnableClk는 제 3 엔티티에 의해 구동되고, 마스터 및 슬레이브 모두에 대한 입력으로서 역할을 한다.
enableclk가 0(디폴트)으로 설정될 때, 신호가 제공되지 않고, OCP는 EnableClk가 일정하게 선언되는 것처럼 거동한다. 그러한 경우에, Clk의 모든 상승 에지는 OCP 클록의 상승 에지이다.
MAddr
전송 어드레스, MAddr은 현재 전송에 의해 타겟팅된 리소스의 슬레이브-종속 어드레스를 지정한다. 이러한 필드를 OCP에 구성하기 위해, addr 파라미터를 사용한다. 이러한 필드의 폭을 구성하기 위해, addr_wdth 파라미터를 사용한다. MAddr은 OCP 워드 크기(data_wdth)에 정렬되어야 하는 바이트 어드레스이다. data_wdth는 데이터 버스 바이트 폭에 기초한 최소 addr_wdth 값을 규정하고, 다음과 같이 규정된다.
min_addr_wdth = max(l, floor(log2(data_wdth))-2)
OCP 워드 크기가 단일 바이트보다 더 큰 경우에, 집합체(aggregate)가 OCP 워드-정렬된 어드레스에서 어드레싱되고, 최저 차수 어드레스 비트들이 0으로 하드와이어링된다. OCP 워드 크기가 거듭 제곱(power-of-2)이 아니면, 어드레스가 다음의 더 큰 거듭 제곱과 동일한 워드 크기를 갖는 OCP 인터페이스에 대한 것이기 때문에, 어드레스가 동일하다.
MCmd
전송 커맨드. 이러한 신호는 마스터가 요청한 OCP 전송 형태를 나타낸다. 각각의 비-휴지 커맨드(non-idle commmand)는 데이터 흐름의 방향에 의존하여 판독 또는 기록 형태의 요청 중 어느 하나이다.
MData
기록 데이터. 이러한 필드 기록 데이터를 마스터로부터 슬레이브로 전달한다. 이러한 필드는 mdata 파라미터를 사용하여 OCP에 구성되고, 그의 폭은 data_wdth 파라미터를 사용하여 구성된다. 폭은 8의 배수로 제한되지 않는다.
MDataValid
기록 데이터 유효. 1로 설정될 때, 이러한 비트는 MData 필드 상의 데이터가 유효하다는 것을 나타낸다. 이러한 필드를 OCP에 구성하기 위해 datahandshake 파라미터를 사용한다.
MRespAccept
마스터 응답 수용. 마스터는 그가 MRespAccept 신호 상의 1의 값을 사용하여 슬레이브로부터의 현재 응답을 수용한다는 것을 나타낸다. 이러한 필드를 OCP에 가능하게 하기 위해 respaccept 파라미터를 사용한다.
SCmdAccept
슬레이브가 전송을 수용한다. SCmdAccept 신호 상의 1의 값은 슬레이브가 마스터의 전송 요청을 수용한다는 것을 나타낸다. 이러한 필드를 OCP에 구성하기 위해 cmdaccept 파라미터를 사용한다.
SData
이러한 필드는 요청된 판독 데이터를 슬레이브로부터 마스터로 전달한다. 상기 필드는 sdata 파라미터를 사용하여 OCP에 구성되고, 그의 폭은 data_wdth 파라미터를 사용하여 구성된다. 폭은 8의 배수로 제한되지 않는다.
SDataAccept
슬레이브가 기록 데이터를 수용한다. 슬레이브는 그가 SDataAccept 상의 1의 값을 사용하여 마스터로부터의 파이프라이닝된 기록 데이터를 수용한다는 것을 나타낸다. 이러한 신호는 datahandshake가 사용 중일 때에만 의미가 있다. 이러한 필드를 OCP에 구성하기 위해 dataaccept 파라미터를 사용한다.
SResp
마스터로부터의 전송 요청에 대한 슬레이브로부터의 응답 필드. 상기 필드는 resp 파라미터를 사용하여 OCP에 구성된다.
위에서 볼 수 있듯이, 주어진 OCP 링크는 양방향 데이터 트래픽(예를 들면, 마스터로부터 슬레이브로의 기록, 및 마스터에 의한 슬레이브로부터의 판독)을 지원할 수 있다. 그러나, 여기서 명확히 하기 위해, 주어진 링크의 방향은 그의 개시자(즉, OCP 하의 마스터)로부터 그의 타겟(즉, OCP 하의 슬레이브)으로의 방향이고, 단방향 링크로서 지칭된다.
도 1b는 OCP 패브릭들 사이의 공유된 OCP 물리적 링크를 사용하는 예를 도시한다. 이러한 링크들 각각은 데이터 전송이 적용 가능한 OCP 프로토콜 시그널링에 따라 구현되는 한 세트의 OCP 배선들을 포함한다. 각각의 패브릭 대 패브릭 링크는 FF m-s로 라벨링되고, 여기서 m은 마스터로서 동작하는 패브릭에 대응하고, s는 슬레이브로서 동작하는 패브릭에 대응한다. 예를 들면, 패브릭들(1 및 2) 사이의 링크들의 쌍은 FF 1-2 및 FF 2-1로 라벨링된다.
도 1b는 또한 패브릭(1)에 접속된 IP 블럭들(IP-B 및 IP-D)에 의해 개시되고 패브릭(2)에 접속된 IP 블럭(IP-J) 및 패브릭(4)에 접속된 IP 블럭(IP-O)으로 각각 타겟팅된 2 개의 데이터 전송들을 도시한다. 볼 수 있듯이, 이러한 데이터 전송들 모두는 패브릭 대 패브릭 링크(FF 1-2)에 의해 규정되고 따라서 "공유된 링크들"로서 도시된 동일한 물리적 데이터 경로를 채용한다. 이것이 다양한 패브릭들에 연결된 IP 블럭들 사이의 통신을 용이하게 하기 위해 이롭지만, 이것은 트래픽 혼잡을 유도하여, 대역폭 병목 현상을 발생시키는 공유된 링크의 중재를 요구하고, 따라서 전체 처리량을 감소시킨다.
여기의 교시에 따라, 하나 이상의 중복 패브릭 대 패브릭 링크들은 트래픽 혼잡을 감소시키고 전체 처리량을 개선하도록 구현된다. 그러한 중복 패브릭 대 패브릭 링크의 예시적인 구현이 도 1c, 도 3b 및 도 3c에 도시된다. 예를 들면, 도 1c의 SoC 아키텍쳐(100C)에서, 패브릭 대 패브릭 OCP 링크들(각각의 방향에서 하나)의 중복 세트는 도 1b의 아키텍쳐(100b)에 부가되었다. 이전과 같이, 각각의 패브릭 대 패브릭 링크는 FF m-s로 라벨링되고, "R"의 부가는 링크가 중복된다는 것을 표시한다. 임의의 특정 쌍의 패브릭들 사이의 중복 패브릭 대 패브릭 링크를 부가하기 위한 어떠한 요구도 존재하지 않기 때문에, 도 1c에서 패브릭들 사이의 한 쌍의 단방향 링크들의 부가의 포함이 단지 예시적이고, 주어진 방향에서 부가된 링크들의 수가 반대 방향에서 부가된 링크들(만약 있다면)의 수와 일치할 필요가 없다는 것이 주목된다. 또한, 일반적인 개념은, 원한다면, 주어진 쌍의 패브릭들 사이의 패브릭 대 패브릭 링크들을 추가로 부가하도록 확장될 수 있다.
도 3a 및 도 3b는 패브릭들(1 및 2) 내부의 다양한 OCP 링크들 및 패브릭들(1 및 2) 사이의 패브릭 대 패브릭 링크들(200 및 202)을 도시한다. 간략하고 명확히 하기 위해, 도 1a 내지 도 1c에 도시된 것으로부터 단지 선택된 개시자 및 타겟이 도 3a 내지 도 3c에 도시된다. 도 3a 내지 도 3c 내의 개시자는 Ix-y로 라벨링되고, 여기서 x는 패브릭을 식별하고, y는 패브릭 상의 특정 개시자를 식별한다. 마찬가지로, 타겟은 도 3a 내지 도 3c에서 Tx-y로 라벨링된다. 또한, 혼잡을 회피하기 위해, 이러한 개시자 및 타겟에 대응하는 IP 블럭이 도 3a 내지 도 3c에 도시되지 않지만, 그러한 IP 블럭이 실제 구현예에서 적용 가능한 패브릭에 연결될 것이라는 것이 이해될 것이다.
도 3a 및 도 3b 모두는 공통 개시자, 타겟 및 대응하는 OCP 점 대 점 링크를 도시한다. 도 3b는 추가로 각각 패브릭들(1 및 2)의 타겟 에이전트(TA)(306) 및 개시자 에이전트(IA)(308) 사이의 중복 패브릭 대 패브릭 OCP 링크(304)의 부가를 도시한다. 중복 링크는 패브릭(1) 내의 타겟 링크 에이전트(TA로 라벨링된 박스) 로직의 제 2 인스턴스 및 패브릭(2) 내의 링크 개시자 에이전트(IA로 라벨링된 박스) 로직의 제 2 인스턴스를 구현하고, 구현될 특정 OCP 링크 폭에 따라 이러한 에이전트와 (물리적) 배선을 접속함으로써 실현된다. 따라서, 패브릭 대 패브릭 링크들(302 및 304) 모두의 구성이 동일하다면, 오리지널 및 중복 링크의 OCP 버스의 속성은 동일하다. 개시자들(I1-1, I1-2 및 I1-3) 각각과 타겟 에이전트(306) 사이 및 개시자 에이전트(308)와 타겟들(T2-4 및 T2-5) 사이의 부가적인 OCP 링크들이 추가로 도시된다. 예시된 바와 같이, 중복 패브릭 대 패브릭 OCP 링크(304)의 부가는 병렬 데이터 경로를 오리지널 공유된 패브릭 대 패브릭 OCP 링크(302)에 제공한다.
양자의 패브릭들의 어드레스 맵에 대해 수정이 또한 이루어진다. 오리지널 공유된 링크를 사용하는 것 및 중복 링크를 사용하는 것 사이의 데이터 경로들의 공평한 분할을 가능하게 하도록 수정이 이루어진다. 도 3b에서, 타겟들(T2-1, T2-2 및 T2-3)으로의 경로가 오리지널 공유된 링크를 계속해서 사용하고, 한편 타겟들(T2-4 및 T2-5)이 중복 공유된 링크를 사용하는 예시적인 분할이 도시된다. (이러한 분할을 통해, 도 3a에 도시된 2 개의 예시적인 경로들이 이제 상이한 공유된 링크를 사용하고, 서로에게 지연을 부과하지 않을 것이라는 것을 주목하라.)
도 3a 내지 도 3c 각각의 하부 부분은 패브릭들(1 및 2) 내의 타겟에 대한 타겟 어드레스 맵을 도시한다. OCP 하에서, 점 대 점 단방향 링크는 개시자와 타겟 사이에서 라우팅되고, 따라서, 각각의 패브릭에 대해 타겟의 목적지 어드레스 범위가 미리 규정된다. 각각의 타겟에는 고정된 범위의 어드레스들이 할당되고, 주어진 타겟이 다수의 개시자들에 의해 액세스될 수 있기 때문에, 일부 타겟에 대한 어드레스 범위는 더 크거나 및/또는 다수의 세그먼트들을 차지할 수 있다. 이것은 패브릭 대 패브릭 OCP 공유된 링크에 대응하는 타겟 어드레스에 대해 특히 사실이다. 예를 들면, 패브릭(1) 내의 타겟(T1-4)에 대한 어드레스 범위가 타겟들(T1-1, T1-2 및 T1-3)에 대한 비교 가능한 세그먼트보다 더 긴 길이를 갖는 3 개의 세그먼트를 포함하여 4 개의 분할된 범위를 포함한다는 것을 주목하라.
도 3a에 도시된 어드레싱 방식은 종래의 공유된 패브릭 대 패브릭 OCP 링크의 사용에 대응하고, 한편 도 3b의 어드레스 방식은 부가된 패브릭 대 패브릭 링크(204)의 부가에 대응한다. 새로운 타겟(T1-5)을 수용하기 위해, 도 3a에서 최고의 2 개의 어드레스 범위들이 도 3b의 T1-5에 재할당되고, 한편 어드레스 범위 맵핑의 나머지는 여전히 동일하다. 동시에, 이것이 오리지널 공유된 패브릭 대 패브릭 링크(202) 및 부가된 중복 패브릭 대 패브릭 링크(204)를 통한 전송들 사이의 경로들의 분할을 생성한다. 예를 들면, 패브릭(2) 내의 타겟들(T2-4 및 T2-5)에 대응하는 패브릭(1) 내의 개시자에서 발신된 전송은 이제 패브릭 대 패브릭 링크(204) 상으로 라우팅된다.
도 3c는 데이터 처리량을 추가로 개선하도록 구현될 수 있는 선택적인 개선책을 도시한다. 개선책은, 중복 링크가 휴지인 동안에 오리지널 링크가 커맨드 전에 서빙하기 위한 사용중(busy)인 경우에, 대신에 중복 링크를 사용하기 위해 정상적으로 오리지널 공유된 링크를 사용할 경로를 기회주의적으로 재라우팅하는 것을 추구한다(따라서 이전 커맨드를 클리어링하는 것과 연관된 대기 시간을 회피함). 개선책의 세부 사항들은 다음과 같다. 오리지널 링크(예를 들면, 패브릭 대 패브릭 링크(302))를 사용하는 타겟이 선택된다. 이러한 경우에 타겟은 (T2-3)이다. 타겟에 할당된 어드레스 맵 영역이 검사된다. 그 영역에 대한 시작 어드레스가 주목된다. 이러한 경우에, 어드레스는 T2_3_StartAddr이다. 그 영역의 크기가 주목되고, 이로부터, 어드레스 비트들의 유효 수가 N으로서 추론된다. (N은 영역의 크기가 2N 바이트 이하라는 것을 의미한다.) 적절한 에일리어스 영역(alias region)에 대해 어드레스 맵이 탐색된다. 에일리어스 영역은 T2-3 영역과 크기 면에서 동일하고, (이전에) 사용되지 않은 공간(어드레스 맵 내의 그레이 영역) 내에 있어야 한다. 도 3c에서, 그러한 영역은 시작 어드레스(T2_3_AliasStartAddr)를 갖는 T2-3-alias로서 발견된다. 이어서, 2 개의 패브릭들에 대한 어드레스 맵은, 에일리어스 영역 내의 어드레스가 (패브릭 1 개시자에 의해) 제공되는 경우에, 경로가 (동적 경로로 라벨링된 점선을 사용하여) 중복 링크(패브릭 대 패브릭 링크(304))를 통해 타겟(T2-3)으로 라우팅되도록 업데이트된다. 마지막으로, 선택기(310)로 라벨링된 (완전히 조합형의) 로직 블럭이 (각각의 패브릭-1 개시자에 대해) 부가된다. 선택기에 대한 역할은, 적절한 경우에, 에일리어스 버전의 T2-3 어드레스(원래 개시자로부터 나옴)에서 패브릭-1으로 다중화하는 것이다.
일반적으로, 에일리어스 어드레싱 방식(및 연관된 동적 라우팅)의 사용은 개시자 및 타겟 양자에 대해 투명하다. 따라서, 개시자와 타겟 사이에서 데이터를 전송하기 위해 IP 블럭의 개시자 인터페이스에 의해 사용되는 타겟 어드레스는 여전히 변하지 않는다. 또한, 재라우팅은 오리지널 링크로부터 중복 링크로 라우팅하는 것으로 제한되지 않는다. 오히려, 재라우팅은, 디폴트로 중복 링크를 취할 것이지만 오리지널 링크로 동적으로 스위칭 오버될 수 있는 커맨드에 또한 적용될 수 있다.
도 4는 일 실시예에 따른 선택기(310)의 예시적인 구현 세부 사항을 도시한다. 일반적으로, 선택기(310)에 의해 수행되는 로직의 대부분은 로직 블럭(400)을 통해 구현되고, 로직 블럭(400)은 에일리어스 어드레스 또는 오리지널 어드레스를 사용할지 여부를 판정하기 위해 사용되는 로직을 도시한다. 도 3에 도시된 예시적인 구현예는 패브릭에 대해 32-비트 어드레스 범위를 가정하고, 일반적으로 위에 제공된 바와 같은 입력들 대부분에 대해 일반적인 OCP 신호를 채용한다. 그러나, T1_4_active 및 T1_5_active가 OCP 표준화된 신호가 아니지만, 통상적인 패브릭 구현예에서 일반적으로 사용 가능한 신호라는 것을 주목하라. 그들은, 각각의 타겟 에이전트(패브릭 1 내부의)가 이전 요청을 서빙하기 위해 사용중일 때(즉, 완전히 완료하기 위해 이전 커맨드를 여전히 대기함)를 나타낸다. _acitve 신호가 이용 불가하지만 OCP 신호(SThreadBusy)(및/또는 SDataThreadBusy)가 이용 가능한 경우에, 이러한 비지 신호(busy signal)가 대신에 사용될 수 있다. 대안적으로, OCP 신호(SCmdAccept)(반전)는 이용 가능한 경우 및 신호에 대한 휴지/휴면 상태가 하이(high)인 경우에 사용될 수 있다. 로직 블럭(400)에 도시된 로직은 통상적으로 일반적인 내장된 로직 설계 기술, 가령 ASIC 또는 FPGA 로직 설계 툴, 프로그래밍된 로직 툴 등을 사용하여 구현될 수 있다.
상술된 바와 같이, 여기서 논의된 패브릭 아키텍쳐는 SoC에서 사용되는 패브릭들 중 일부 또는 모두를 나타낼 수 있다. 후자의 예가 도 5에 도시되고, 도 5는 노스 컴플렉스(North complex)(502) 및 사우스 컴플렉스(South complex)(100d)를 포함하는 SoC 아키텍쳐(500)를 도시한다. 노스 컴플렉스는 통상적으로 코히런트 패브릭을 통해 캐시 및 메모리 구성요소에 연결된 프로세서 코어를 포함할 수 있다. 따라서, 노스 컴플렉스(502)는 복수의 프로세서 코어들(506)을 포함하는 CPU(Central Processing Unit)(505)을 포함하는 것으로 도시되고, 프로세서 코어들(506) 각각은 QPI 패브릭과 같은 코히런트 패브릭(508)에 연결된다. 또한, 코히런트 패브릭(508)에 연결된 메모리 블럭(510)이 도시되고, 이러한 메모리 블럭은 일반적으로 캐시, 캐싱 에이전트, 메모리 제어기 등과 같은 아키텍쳐에 제공될 수 있는 다양한 메모리-관련 구성요소를 도시하도록 의도된다. 일반적으로, SoC 아키텍쳐는 하나 이상의 레벨들의 온-칩 캐시들을 포함할 것이고, 일부 대량 저장 레벨의 메모리 온-칩을 갖거나 오프-칩 메모리에 대한 하나 이상의 인터페이스들을 가질 수 있고, 메모리 블럭(510)은 이러한 구성들 모두를 나타내도록 의도된다.
노스 컴플렉스는, 패브릭 대 패브릭 브리지(514)를 통해 코히런트 패브릭(508)에 동작 가능하게 연결된 IOSF(INTEL On-Chip Scalable Fabric) 또는 OCP 패브릭(512)과 같은 또 다른 패브릭을 또한 포함한다. 복수의 IP 블럭들(516)은 패브릭(512)에 통신 가능하게 연결된다. 도 5에 도시된 구성요소 이외에, 노스 컴플렉스(502)는 당업자에 의해 인지되는 바와 같이 추가적인 구성요소 및 패브릭을 포함할 수 있다.
사우스 컴플렉스(100d)는 일반적으로 상술된 SoC 아키텍처(100 및 100c)의 예시이다. SoC 아키텍쳐(100c)와 비교하여, 사우스 컴플렉스(100d)는 패브릭(2)과 패브릭(3) 사이, 및 패브릭(4)과 패브릭(5) 사이에 단일의 단방향 링크 쌍들만을 포함한다. 상술된 바와 같이, 이것은, 여기의 교시에 따라 구현될 수 있는 계층적 패브릭 내의 다양한 링크 구성들의 단지 예시이다.
IOSF/OCP 대 OCP 브리지(518)가 아키텍쳐(500) 내에 또한 도시된다. 이것은 일반적으로 노스 컴플렉스의 패브릭(512) 및 사우스 컴플렉스의 패브릭(1) 사이에서 구현될 수 있는 브리지의 예시이고, 브리지는 이러한 구성에서 OCP 패브릭(IOSF 또는 OCP 패브릭 중 어느 하나를 포함하는 패브릭(512)을 가짐)을 포함할 것이다. 패브릭 프로토콜들이 상이한 경우에서, 패브릭 프로토콜 브리지가 구현될 것이다. 패브릭(512) 및 패브릭(1) 모두가 OCP 패브릭이면, 적용 가능한 설계 파라미터에 의존하여, OCP 패브릭 대 패브릭 브리지가 사용될 수 있거나, OCP 패브릭 대 패브릭 링크가 사용될 수 있다. 예를 들면, 패브릭(512)의 클록 레이트가 패브릭(1)의 클록 레이트와 실질적으로 상이하면, 브리지는, 브리지에 대한 양자의 인터페이스들 상에서 여전히 OCP 신호들을 구현하면서, 클록 도메인 크로싱 기능을 지원할 것이다.
상술된 본 개시내용의 실시예는 일반적으로 공지된 설계 및 제조 기술을 사용하여 반도체 칩을 포함하는 집적 회로에서 구현될 수 있다. 일 실시예에서, Sonics, Inc.로부터의 패브릭 생성 툴은 설계 구현을 용이하게 하도록 구현될 수 있다. 또한, SoC 상에서 구현되는 것으로 도시되지만, 선택적인 동적 라우팅에서 중복 패브릭 대 패브릭 링크의 사용은 I/O 칩, 주변 장치 칩, 제어기 및 다른 형태의 집적 회로를 포함하여 다른 형태의 구성요소 상에서 구현될 수 있다.
또한, 본 명세서의 예시적 실시예는 반도체 칩뿐만 아니라 기계-판독 가능 매체 내에서 구현될 수 있다. 예컨대, 상술된 설계는 반도체 장치를 설계하기 위해 이용되는 설계 툴과 연관된 기계 판독 가능한 매체에 저장 및/또는 그 안에 내장될 수 있다. 예는 VHDL(VHSIC Hardware Description Language) 언어 또는 베릴로그 언어(Verilog language) 또는 SPICE 언어로 포맷팅된 넷리스트(netlist)를 포함한다. 일부 넷리스트의 예는 행위 레벨 넷리스트, 레지스터 전송 레벨(RTL) 넷리스트, 게이트 레벨 넷리스트 및 트랜지스터 레벨 넷리스트를 포함한다. 기계 판독 가능한 매체는 또한 GDS-Ⅱ 파일 등의 레이아웃 정보를 갖는 매체를 포함한다. 또한, 반도체 칩 설계를 위한 넷리스트 파일 또는 다른 기계 판독 가능한 매체는 상술된 교시의 방법을 수행하기 위해 시뮬레이션 환경에 이용될 수 있다.
요약서에 기술된 것을 포함하여, 본 발명의 예시된 실시예의 상기 설명은 본 발명을 개시된 정확한 형태로 철저하게 또는 그에 한정하려는 것이 아니다. 본 발명의 특정 실시예 및 그에 대한 예가 예시 목적으로 여기에 개시되지만, 당업자가 이해할 수 있는 바와 같이, 다양한 등가적 수정이 본 발명의 범위 내에 가능하다.
이러한 수정은 상기 상세한 설명에 비추어 본 발명에 이루어질 수 있다. 다음의 청구범위에 사용된 용어는 본 발명을 명세서 및 도면에 개시된 특정 실시예에 한정하는 것으로 해석되어서는 안 된다. 오히려, 본 발명의 범위는 전적으로 다음의 청구범위에 의해 정해져야 하며, 청구범위 해석의 확립된 원칙에 따라 해석되어야 할 것이다.

Claims (20)

  1. 복수의 개시자들(initiators)이 통신 가능하게 연결된 제 1 패브릭(fabric)과,
    복수의 타겟들이 통신 가능하게 연결된 제 2 패브릭과,
    제 1 패브릭 대 패브릭 링크 및 제 2 패브릭 대 패브릭 링크 ― 상기 제 1 패브릭 대 패브릭 링크 및 상기 제 2 패브릭 대 패브릭 링크 각각은 상기 제 1 패브릭과 상기 제 2 패브릭 사이의 통신을 지원함 ― 와,
    상기 제 1 패브릭 대 패브릭 링크 및 상기 제 2 패브릭 대 패브릭 링크에 동작 가능하게 연결된 라우팅 회로 및 연관된 로직을 포함하고,
    상기 라우팅 회로 및 상기 로직은, 적어도 하나의 개시자로부터 타겟으로 데이터를 라우팅하기 위해 상기 제 1 패브릭 대 패브릭 링크 또는 상기 제 2 패브릭 대 패브릭 링크 중 하나를 선택적으로 사용함으로써 상기 적어도 하나의 개시자로부터 발신되고 상기 타겟으로 가는 데이터를 동적으로 라우팅하도록 구성되는
    집적 회로.
  2. 제 1 항에 있어서,
    상기 라우팅 회로는, 디폴트로 상기 제 1 패브릭 대 패브릭 링크를 사용하여, 상기 제 1 패브릭에 통신 가능하게 연결된 개시자들과 상기 제 2 패브릭에 통신 가능하게 연결된 타겟들 사이에서 데이터를 라우팅하도록 구성되고,
    상기 라우팅 회로는 상기 제 1 패브릭 대 패브릭 링크의 사용을 검출하도록 추가로 구성되고,
    개시자가 상기 제 2 패브릭에 통신 가능하게 연결된 타겟으로의 데이터 전송을 개시하는 동시에, 상기 제 1 패브릭 대 패브릭 링크의 사용의 검출 시에, 상기 데이터 전송이 상기 제 2 패브릭 대 패브릭 링크를 사용하여 상기 제 1 패브릭과 상기 제 2 패브릭 사이에서 라우팅되는
    집적 회로.
  3. 제 1 항에 있어서,
    상기 라우팅 회로는, 대응하는 개시자가 통신 가능하게 연결된 적어도 하나의 개시자 패브릭 인터페이스에 동작 가능하게 연결되고,
    제 1 패브릭 대 상호 접속 패브릭 또는 제 2 패브릭 대 상호 접속 패브릭을 사용하여 동적으로 라우팅하는 것은, 상기 제 1 패브릭 대 패브릭 링크 또는 상기 제 2 패브릭 대 패브릭 링크 중 하나를 통해 상기 데이터가 라우팅되게 하는 어드레스를 선택함으로써 실시되는
    집적 회로.
  4. 제 3 항에 있어서,
    상기 어드레스는 상기 제 1 패브릭의 타겟 에이전트 인터페이스의 에일리어스 어드레스(alias address)에 대응하는
    집적 회로.
  5. 제 1 항에 있어서,
    상기 제 1 패브릭 및 상기 제 2 패브릭 각각은 복수의 단방향 점 대 점 상호 접속부들(unidirectional point-to-point interconnects)을 포함하고,
    상기 제 1 패브릭 대 패브릭 링크 및 상기 제 2 패브릭 대 패브릭 링크 각각은 단방향 점 대 점 상호 접속부들을 포함하는
    집적 회로.
  6. 제 5 항에 있어서,
    상기 제 1 패브릭 및 상기 제 2 패브릭은 OCP(Open Core Protocol) 패브릭들을 포함하고,
    상기 제 1 패브릭 대 패브릭 링크 및 상기 제 2 패브릭 대 패브릭 링크 각각은 OCP 링크들을 포함하는
    집적 회로.
  7. 제 1 항에 있어서,
    적어도 하나의 타겟이 통신 가능하게 연결된 제 3 패브릭과,
    상기 제 2 패브릭과 상기 제 3 패브릭 사이의 통신을 지원하는 제 3 패브릭 대 패브릭 링크를 더 포함하고,
    상기 라우팅 회로는, 상기 제 1 패브릭 대 패브릭 링크 및 상기 제 2 패브릭 대 패브릭 링크 중 하나를 통해, 상기 제 1 패브릭에 통신 가능하게 연결된 개시자로부터 발신된 데이터를 상기 제 3 패브릭에 통신 가능하게 연결된 타겟으로 선택적으로 라우팅하도록 구성되는
    집적 회로.
  8. 제 1 패브릭에 통신 가능하게 연결된 개시자에서 데이터 전송을 개시하는 단계 ― 상기 데이터 전송은 제 2 패브릭에 통신 가능하게 연결된 타겟으로 가고, 상기 제 1 패브릭 및 상기 제 2 패브릭은 제 1 패브릭 대 패브릭 링크 및 상기 제 2 패브릭 대 패브릭 링크를 통해 통신 가능하게 연결됨 ― 와,
    상기 제 1 패브릭 대 패브릭 링크 및 상기 제 2 패브릭 대 패브릭 링크 중 하나를 통해, 상기 개시자로부터 상기 타겟으로의 상기 데이터 전송에 대응하여 데이터를 선택적으로 라우팅하는 단계를 포함하는
    방법.
  9. 제 8 항에 있어서,
    상기 패브릭들은 OCP(Open Core Protocol) 패브릭들을 포함하고,
    상기 패브릭 대 패브릭 링크들은 OCP 링크들을 포함하는
    방법.
  10. 제 8 항에 있어서,
    상기 패브릭들은 단방향 점 대 점 링크들을 채용하고,
    상기 패브릭 대 패브릭 링크들 각각은 단방향 점 대 점 링크를 포함하는
    방법.
  11. 제 8 항에 있어서,
    데이터를 상기 개시자로부터 상기 타겟으로 전송하기 위해 사용되는 선택적인 라우팅 동작들은 상기 개시자에게 투명한
    방법.
  12. 제 8 항에 있어서,
    복수의 로직 게이트들을 포함하는 내장된 로직을 사용하여 선택적인 라우팅을 구현하는 단계를 더 포함하는
    방법.
  13. 제 8 항에 있어서,
    상기 제 1 패브릭의 개시자 에이전트에서 데이터 전송 요청을 수신하는 단계 ― 상기 데이터 전송 요청은 상기 타겟에 대한 어드레스를 식별함 ― 와,
    상기 타겟에 대한 어드레스에 기초하여, 상기 제 2 패브릭 대 패브릭 링크에 연결되고 상기 제 1 패브릭 내에 있는 에일리어스 타겟 에이전트의 어드레스를 결정하는 단계와,
    상기 개시자 에이전트로부터 상기 에일리어스 어드레스에 대응하는 상기 타겟 에이전트로 상기 제 1 패브릭 내에서 내부적으로 상기 데이터 전송을 라우팅하는 단계를 더 포함하는
    방법.
  14. 제 8 항에 있어서,
    상기 제 1 패브릭 대 패브릭 링크가 사용중(busy)인지를 검출하는 단계와,
    상기 제 1 패브릭 대 패브릭 링크가 사용중이면, 상기 제 2 패브릭 대 패브릭 링크를 통해 상기 데이터 전송을 라우팅하고, 그렇지 않다면, 상기 제 1 패브릭 대 패브릭 링크를 통해 상기 데이터 전송을 라우팅하는 단계를 더 포함하는
    방법.
  15. 개방형 코어 프로토콜을 준수하는 인터페이스들을 갖고, 적어도 제 1 OCP 패브릭 및 제 2 OCP 패브릭을 포함하는 복수의 OCP(Open Core Protocol) 패브릭들과,
    복수의 IP(Intellectual Property) 블럭들 ―상기 복수의 IP 블럭들 각각은 상기 복수의 OCP 패브릭들 중 하나에 통신 가능하게 연결되고, 상기 IP 블럭들 중 적어도 일부는 그가 통신 가능하게 연결된 상기 OCP 패브릭을 통해 다른 IP 블럭들과 통신하기 위한 인터페이스를 포함하고, 이러한 IP 블럭들 각각에 대한 상기 인터페이스는 개시자 인터페이스, 타겟 인터페이스, 또는 개시자 및 타겟 양자의 인터페이스 중 하나를 포함함 ― 과,
    제 1 패브릭 대 패브릭 OCP 링크 및 제 2 패브릭 대 패브릭 OCP 링크 ― 상기 제 1 패브릭 대 패브릭 OCP 링크 및 상기 제 2 패브릭 대 패브릭 OCP 링크 각각은 상기 제 1 OCP 패브릭 및 상기 제 2 OCP 패브릭 사이의 통신을 지원함 ― 와,
    상기 제 1 패브릭 대 패브릭 OCP 링크 및 상기 제 2 패브릭 대 패브릭 OCP 링크에 동작 가능하게 연결된 라우팅 회로 및 연관된 로직을 포함하고,
    상기 라우팅 회로 및 로직은, 데이터를 제 1 IP 블럭으로부터 제 2 IP 블럭으로 라우팅하기 위해 상기 제 1 패브릭 대 패브릭 OCP 링크 또는 상기 제 2 패브릭 대 패브릭 OCP 링크 중 하나를 선택적으로 사용함으로써, 상기 제 1 OCP 패브릭에 통신 가능하게 연결된 상기 제 1 IP 블럭의 개시자로부터 발신되고 상기 제 2 OCP 패브릭에 통신 가능하게 연결된 상기 제 2 IP 블럭의 타겟 인터페이스로 가는 데이터를 라우팅하도록 구성되는
    SoC(System on a Chip).
  16. 제 15 항에 있어서,
    상기 복수의 패브릭들은 계층적 패브릭 구조를 형성하기 위해 복수의 링크들을 사용하여 상호 접속되는
    SoC.
  17. 제 15 항에 있어서,
    상기 제 1 OCP 패브릭 및 상기 제 2 OCP 패브릭 각각은 복수의 단방향 점 대 점 상호 접속부들을 포함하고,
    상기 제 1 패브릭 대 패브릭 OCP 링크 및 상기 제 2 패브릭 대 패브릭 OCP 링크 각각은 단방향 점 대 점 상호 접속부들을 포함하는
    SoC.
  18. 제 15 항에 있어서,
    상기 SoC는 노스 컴플렉스(North complex) 및 사우스 컴플렉스(South complex)를 포함하고,
    상기 복수의 OCP 패브릭들은 상기 사우스 컴플렉스에서 구현되는
    SoC.
  19. 제 15 항에 있어서,
    상기 라우팅 회로는, 디폴트로 상기 제 1 패브릭 대 패브릭 OCP 링크를 사용하여, 상기 제 1 패브릭에 통신 가능하게 연결된 개시자 인터페이스를 포함하는 IP 블럭들 및 상기 제 2 패브릭에 통신 가능하게 연결된 타겟 인터페이스를 포함하는 IP 블럭들 사이에서 데이터를 라우팅하도록 구성되고,
    상기 라우팅 회로는, 상기 제 1 패브릭 대 패브릭 OCP 링크가 사용중인 것으로 결정되면, 상기 제 2 패브릭 대 패브릭 OCP 링크를 사용하여 상기 데이터를 라우팅하도록 추가로 구성되는
    SoC.
  20. 제 15 항에 있어서,
    상기 라우팅 회로는, IP 블럭의 대응하는 개시자 인터페이스가 통신 가능하게 연결된 적어도 하나의 개시자 패브릭 인터페이스에 동작 가능하게 연결되고,
    상기 제 1 패브릭 대 패브릭 OCP 링크 또는 상기 제 2 패브릭 대 패브릭 OCP 링크를 사용하여 동적으로 라우팅하는 것은, 상기 제 1 패브릭 대 패브릭 OCP 링크 또는 상기 제 2 패브릭 대 패브릭 OCP 링크 중 하나를 통해 상기 데이터가 라우팅되게 하는 어드레스를 선택함으로써 실시되는
    SoC.
KR1020147004701A 2011-08-22 2011-08-22 동적으로 선택 가능한 중복 공유된 링크 물리적 경로들을 사용하여 개방형 코어 프로토콜 기반 상호 접속 네트워크들에서 데이터 처리량 개선을 위한 방법 KR101687273B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/048627 WO2013028170A1 (en) 2011-08-22 2011-08-22 Method for data throughput improvement in open core protocol based interconnection networks using dynamically selectable redundant shared link physical paths

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020157010998A Division KR101762779B1 (ko) 2011-08-22 2011-08-22 동적으로 선택 가능한 중복 공유된 링크 물리적 경로들을 사용하여 개방형 코어 프로토콜 기반 상호 접속 네트워크들에서 데이터 처리량 개선을 위한 방법

Publications (2)

Publication Number Publication Date
KR20140043940A true KR20140043940A (ko) 2014-04-11
KR101687273B1 KR101687273B1 (ko) 2016-12-16

Family

ID=47746713

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020157010998A KR101762779B1 (ko) 2011-08-22 2011-08-22 동적으로 선택 가능한 중복 공유된 링크 물리적 경로들을 사용하여 개방형 코어 프로토콜 기반 상호 접속 네트워크들에서 데이터 처리량 개선을 위한 방법
KR1020147004701A KR101687273B1 (ko) 2011-08-22 2011-08-22 동적으로 선택 가능한 중복 공유된 링크 물리적 경로들을 사용하여 개방형 코어 프로토콜 기반 상호 접속 네트워크들에서 데이터 처리량 개선을 위한 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020157010998A KR101762779B1 (ko) 2011-08-22 2011-08-22 동적으로 선택 가능한 중복 공유된 링크 물리적 경로들을 사용하여 개방형 코어 프로토콜 기반 상호 접속 네트워크들에서 데이터 처리량 개선을 위한 방법

Country Status (5)

Country Link
US (1) US9384161B2 (ko)
KR (2) KR101762779B1 (ko)
CN (1) CN103748837B (ko)
DE (1) DE112011105543T5 (ko)
WO (1) WO2013028170A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160008454A (ko) * 2014-07-14 2016-01-22 인텔 코포레이션 모듈러 온-다이 코히어런트 인터커넥트 방법, 장치 및 시스템

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101762779B1 (ko) 2011-08-22 2017-07-28 인텔 코포레이션 동적으로 선택 가능한 중복 공유된 링크 물리적 경로들을 사용하여 개방형 코어 프로토콜 기반 상호 접속 네트워크들에서 데이터 처리량 개선을 위한 방법
US9436623B2 (en) * 2012-09-20 2016-09-06 Intel Corporation Run-time fabric reconfiguration
US20170153892A1 (en) * 2015-11-30 2017-06-01 Intel Corporation Instruction And Logic For Programmable Fabric Hierarchy And Cache
US10289577B2 (en) * 2016-05-11 2019-05-14 New York University System, method and computer-accessible medium for low-overhead security wrapper for memory access control of embedded systems
US10916516B2 (en) * 2017-06-07 2021-02-09 Xilinx, Inc. High bandwidth memory (HBM) bandwidth aggregation switch
EP3776225A4 (en) 2018-03-30 2022-01-05 Provino Technologies, Inc. PROTOCOL LEVEL CONTROL FOR A SYSTEM AGENT ON CHIP (SOC) RESET AND ENERGY MANAGEMENT
EP3776231B1 (en) * 2018-03-30 2023-05-03 Google LLC Procedures for implementing source based routing within an interconnect fabric on a system on chip
CN113985760B (zh) * 2021-09-30 2024-03-26 秦皇岛远舟工业气体有限公司 应用于监测报警系统的基于arm的开关量处理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030191857A1 (en) * 2001-10-18 2003-10-09 Terrell William C. Router and methods using in-band link between managing processor and routing processor
US20080320268A1 (en) * 2007-06-25 2008-12-25 Sonics, Inc. Interconnect implementing internal controls

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4731825A (en) * 1986-01-27 1988-03-15 Tellabs, Inc. Nonblocking switching system and method
US6327260B1 (en) * 1998-04-20 2001-12-04 Lucent Technologies, Inc. Controlled routing to a plurality of signaling interfaces at a single telephonic switch
US6345330B2 (en) * 1998-05-01 2002-02-05 Acqis Technology, Inc. Communication channel and interface devices for bridging computer interface buses
US7499410B2 (en) * 2001-12-26 2009-03-03 Cisco Technology, Inc. Fibre channel switch that enables end devices in different fabrics to communicate with one another while retaining their unique fibre channel domain—IDs
US7161935B2 (en) * 2002-01-31 2007-01-09 Brocade Communications Stystems, Inc. Network fabric management via adjunct processor inter-fabric service link
US7254603B2 (en) * 2002-05-03 2007-08-07 Sonics, Inc. On-chip inter-network performance optimization using configurable performance parameters
US8081642B2 (en) * 2003-01-31 2011-12-20 Brocade Communications Systems, Inc. Method and apparatus for routing between fibre channel fabrics
US8059664B2 (en) * 2004-07-30 2011-11-15 Brocade Communications Systems, Inc. Multifabric global header
US20070088891A1 (en) * 2005-10-13 2007-04-19 Kelly John H Administrative computer module
US7760717B2 (en) * 2005-10-25 2010-07-20 Brocade Communications Systems, Inc. Interface switch for use with fibre channel fabrics in storage area networks
US7920588B2 (en) * 2006-05-22 2011-04-05 Edgewater Computer Systems, Inc. Data communications system and method of data transmission
US20080025208A1 (en) * 2006-07-28 2008-01-31 Michael Tin Yau Chan Wide-area wireless network topology
US20080155149A1 (en) * 2006-12-20 2008-06-26 De Araujo Daniel N Multi-path redundant architecture for fault tolerant fully buffered dimms
US7925802B2 (en) * 2007-06-21 2011-04-12 Seamicro Corp. Hardware-based virtualization of BIOS, disks, network-interfaces, and consoles using a direct interconnect fabric
US8120958B2 (en) * 2007-12-24 2012-02-21 Qimonda Ag Multi-die memory, apparatus and multi-die memory stack
US8077602B2 (en) * 2008-02-01 2011-12-13 International Business Machines Corporation Performing dynamic request routing based on broadcast queue depths
US7861027B2 (en) * 2008-05-30 2010-12-28 Intel Corporation Providing a peripheral component interconnect (PCI)-compatible transaction level protocol for a system on a chip (SoC)
TWM365529U (en) * 2009-04-03 2009-09-21 Genesys Logic Inc Data access apparatus and processing system using the same
TW201101455A (en) * 2009-06-24 2011-01-01 Nat Chip Implementation Ct Nat Applied Res Lab Fabrication method for system-on-chip (SoC) modules
US20110022356A1 (en) * 2009-07-24 2011-01-27 Sebastien Nussbaum Determining performance sensitivities of computational units
US20110191488A1 (en) * 2010-01-29 2011-08-04 Xgi Technology, Inc Network media processing device and network media display system
US8281033B1 (en) * 2010-06-29 2012-10-02 Emc Corporation Techniques for path selection
US8516272B2 (en) * 2010-06-30 2013-08-20 International Business Machines Corporation Secure dynamically reconfigurable logic
KR101762779B1 (ko) 2011-08-22 2017-07-28 인텔 코포레이션 동적으로 선택 가능한 중복 공유된 링크 물리적 경로들을 사용하여 개방형 코어 프로토콜 기반 상호 접속 네트워크들에서 데이터 처리량 개선을 위한 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030191857A1 (en) * 2001-10-18 2003-10-09 Terrell William C. Router and methods using in-band link between managing processor and routing processor
US20080320268A1 (en) * 2007-06-25 2008-12-25 Sonics, Inc. Interconnect implementing internal controls

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160008454A (ko) * 2014-07-14 2016-01-22 인텔 코포레이션 모듈러 온-다이 코히어런트 인터커넥트 방법, 장치 및 시스템

Also Published As

Publication number Publication date
US9384161B2 (en) 2016-07-05
WO2013028170A1 (en) 2013-02-28
DE112011105543T5 (de) 2014-04-30
KR20150055084A (ko) 2015-05-20
KR101762779B1 (ko) 2017-07-28
US20130268710A1 (en) 2013-10-10
KR101687273B1 (ko) 2016-12-16
CN103748837A (zh) 2014-04-23
CN103748837B (zh) 2017-08-15

Similar Documents

Publication Publication Date Title
KR101687273B1 (ko) 동적으로 선택 가능한 중복 공유된 링크 물리적 경로들을 사용하여 개방형 코어 프로토콜 기반 상호 접속 네트워크들에서 데이터 처리량 개선을 위한 방법
US11726939B2 (en) Flex bus protocol negotiation and enabling sequence
US8751722B2 (en) Providing a peripheral component interconnect (PCI)-compatible transaction level protocol for a system on a chip (SoC)
US9164938B2 (en) Method to integrate ARM ecosystem IPs into PCI-based interconnect
Shrivastav et al. Performance comparison of AMBA bus-based system-on-chip communication protocol
US20050091432A1 (en) Flexible matrix fabric design framework for multiple requestors and targets in system-on-chip designs
US20140115223A1 (en) Dual casting pcie inbound writes to memory and peer devices
JP4621604B2 (ja) バス装置、バスシステムおよび情報転送方法
US9183171B2 (en) Fast deskew when exiting low-power partial-width high speed link state
TW201220064A (en) Implementing QuickPath Interconnect protocol over a PCIe interface
CN110659221A (zh) 主机管理的相干设备存储器
CN112631959A (zh) 用于相干消息的高带宽链路层
US7404044B2 (en) System and method for data transfer between multiple processors
Slogsnat et al. An open-source hypertransport core
Lee et al. A new multi-channel on-chip-bus architecture for system-on-chips
KR102604573B1 (ko) 다수의 독립적인 온-칩 상호연결부
JP7383645B2 (ja) システムオンチップにおけるプログラマブル論理マスタのためのハードウェアベースの仮想-物理アドレス変換
Roy et al. On efficient minimization techniques of logical constituents and sequential data transmission for digital IC
JP2001522501A (ja) スレーブ群インターフェース装置を介して周辺機器をバスにインターフェースする方法
Anjo et al. NECoBus: a high-end SOC bus with a portable and low-latency wrapper-based interface mechanism
Shetter et al. MEMORY CONTROLLER WITH AN AHB PROTOCOL
Kunapareddy et al. Design of asynchronous NoC using 3-port asynchronous T-routers

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
X091 Application refused [patent]
A107 Divisional application of patent
AMND Amendment
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20150622

Effective date: 20160425

S901 Examination by remand of revocation
E902 Notification of reason for refusal
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191127

Year of fee payment: 4