KR101582058B1 - 고정된 우선 순위 아비터를 위한 적응 대역폭 할당 제공 - Google Patents
고정된 우선 순위 아비터를 위한 적응 대역폭 할당 제공 Download PDFInfo
- Publication number
- KR101582058B1 KR101582058B1 KR1020147005328A KR20147005328A KR101582058B1 KR 101582058 B1 KR101582058 B1 KR 101582058B1 KR 1020147005328 A KR1020147005328 A KR 1020147005328A KR 20147005328 A KR20147005328 A KR 20147005328A KR 101582058 B1 KR101582058 B1 KR 101582058B1
- Authority
- KR
- South Korea
- Prior art keywords
- requestors
- agents
- request
- permission
- arbiter
- Prior art date
Links
- 230000003044 adaptive effect Effects 0.000 title description 2
- 238000013475 authorization Methods 0.000 claims abstract description 21
- 238000000034 method Methods 0.000 claims abstract description 19
- 239000004744 fabric Substances 0.000 claims description 26
- 238000001514 detection method Methods 0.000 claims 1
- 239000003795 chemical substances by application Substances 0.000 description 36
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 12
- 238000013461 design Methods 0.000 description 10
- 229910003460 diamond Inorganic materials 0.000 description 8
- 239000010432 diamond Substances 0.000 description 8
- 239000004065 semiconductor Substances 0.000 description 8
- 238000011144 upstream manufacturing Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 230000015654 memory Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000001427 coherent effect Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- -1 i. E. Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002459 sustained effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/364—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/324—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Bus Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
일 실시예에서, 본 발명은, 아비터에서 요청자들로부터 요청들을 수신하고, 요청자들 중 어느 것도 중재 라운드의 적어도 하나의 사이클에 대해 자격 부여된 요청을 갖지 않는다는 것을 검출하고, 요청자들 중 적어도 하나가 중재 라운드에 대해 사용 가능한 허가들을 갖는 경우 요청자들 중 하나와 연관된 허가 카운터들의 허가 카운트 리로드를 방지하기 위한 방법을 포함한다. 그외의 실시예들이 설명되고 청구된다.
Description
고성능 및 저전력 세그먼트(segment)들 양쪽 모두에서의, 주류(mainstream) 프로세서 칩들은, PCI(Peripheral Component Interconnect) 로컬 버스 사양, 버전 3.0(2002년 공개)(이하 PCI 사양)과 같은 PCI 사양을 따르는 디바이스들에 대한 레거시(legacy) 지원을 유지하는 동시에, 그래픽, 디스플레이 엔진들, 보안 엔진들, PCIe™ 포트들(즉, PCI Express™(PCIe™)(Peripheral Component Interconnect Express) 사양 기반 사양 버전 2.0(2007년 공개)(이하 PCIe™ 사양)에 따른 포트들) 및 그외의 PCIe™ 기반 주변 디바이스들과 같은 부가적인 기능성을 점점 더 집적하고 있다.
그러한 설계들은, 서버, 데스크톱, 모바일, 임베드형, 울트라 모바일 및 모바일 인터넷 디바이스 세그먼트들로부터의 변화하는 요구 조건들로 인해 고도로 세분화된다. 상이한 시장들은 프로세서 코어들, 메모리 컨트롤러들, 입/출력 컨트롤러들 및 그외의 세그먼트 특정 가속 엘리먼트들의 적어도 일부를 단일 칩 상에 조합하는 단일 칩 SoC(system-on-chip) 솔루션들을 사용하는 것을 추구한다. 그러나, 이러한 특징들을 축적하는 설계들은 상이한 IP(intellectual property) 블록들을 단일 다이 상에 집적하는 것의 어려움으로 인하여 나타나는 것이 늦어진다. 이는, IP 블록들이 다양한 요구 조건들 및 설계 고유성을 가질 수 있고, SoC 내로 그것들의 통합을 가능하게 하기 위한 많은 특수화된 와이어(wire)들, 통신 프로토콜(protocol)들 등을 요구할 수 있으므로, 특히 그러하다. 결과적으로, 개발되는 각 SoC 또는 그외의 진보한 반도체 디바이스는 상이한 IP 블록들을 단일 디바이스 내에 포함하기 위해 많은 양의 설계 복잡성 및 커스텀화를 요구한다.
설계 관심사 중 하나의 영역은 중재(arbitration)이다. 시스템에서 교착 상태(deadlock)들 및 기능 정지(stall)들을 방지하기 위해, 아비터는 여러 에이전트들로부터 요청들을 수신하고 그 요청들을 중재하여 시스템의 리소스들에 대한 액세스 허가(grant)들을 제공하기 위해 존재할 수 있다. 일부 시스템들에서, 중재는, 더 높은 우선 순위 요청자(requestor)가, 더 낮은 우선 순위 요청자들을 갈망케 하는 것을 회피하도록 특정 수의 허가들이 허용되는 고정된 우선 순위 권한에 따라 수행된다. 허가 동작은 전형적으로 가장 높은 우선 순위 요청자로부터 시작하고 가장 낮은 우선 순위 요청자로 진행한다. 일부 시스템들에서, 더 낮은 우선 순위 요청자는 더 높은 우선 순위 요청자들이 활성 요청들을 갖지 않거나 또는 그것들의 허가 카운트를 소모한 경우에만 허가를 수신할 수 있다. 요청자들은 일반적으로 활성 요청들이 존재하지 않거나, 중재에 참여하는 모든 요청자가 그것들의 허가 카운트들을 소모했거나, 또는 유효한 허가 카운트를 갖는 임의의 요청자로부터 활성 요청이 존재하지 않는 경우 리로드된(reloaded) 허가 카운트들을 수신한다.
종래의 고정된 우선 순위 중재 스킴에서, 대역폭 할당은 비 파이프라인형(non-pipelined) 요청들에 대해 유지되지 못할 수 있다. 이러한 요청들은, 어떤 이유로, 백 투 백(back-to-back) 요청들을 유지할 수 없는 요청자로부터 아비터 내에 수신된다. 결론적으로, 파이프라인형 및 비 파이프라인형 입/출력(I/O) 요청자들을 갖는 플랫폼에서, 비 파이프라인형 요청자들은 현저한 대역폭 저하를 실현할 수 있다.
도 1은 본 발명의 실시예에 따른 기본 인터커넥트(interconnect) 아키텍처의 블록도.
도 2는 본 발명의 실시예에 따른 인터커넥트 아키텍처의 더욱 상세한 블록도.
도 3은 본 발명의 실시예에 따른 SoC의 하이 레벨 블록도.
도 4는 본 발명의 또 다른 실시예에 따른 시스템의 블록도.
도 5는 본 발명의 실시예에 따른 중재 시스템의 블록도.
도 6은 본 발명의 일 실시예에 따른 아비터의 블록도.
도 7은 본 발명의 일 실시예에 따른 방법의 흐름도.
도 8은 본 발명의 실시예에 따른 시스템의 일부의 블록도.
도 2는 본 발명의 실시예에 따른 인터커넥트 아키텍처의 더욱 상세한 블록도.
도 3은 본 발명의 실시예에 따른 SoC의 하이 레벨 블록도.
도 4는 본 발명의 또 다른 실시예에 따른 시스템의 블록도.
도 5는 본 발명의 실시예에 따른 중재 시스템의 블록도.
도 6은 본 발명의 일 실시예에 따른 아비터의 블록도.
도 7은 본 발명의 일 실시예에 따른 방법의 흐름도.
도 8은 본 발명의 실시예에 따른 시스템의 일부의 블록도.
다양한 실시예들에서, 적응 대역폭 할당 향상을 고정된 우선 순위 아비터에 제공하여 중재된 리소스들에 대한 액세스를 시도하는 요청자들에 대한 공정성을 향상시킬 수 있다. 이하에 더 논의될 바와 같이, 요청자들과 연관된 허가 카운트들이 리로드될 수 있는 경우 히스테리시스(hysteresis)의 레벨이 컨트롤하기 위해 제공될 수 있다.
실시예들은 다수의 상이한 타입들의 시스템들에서 사용될 수 있다. 예시로서, 본원에 설명된 구현들은 프로세서들과 같은 반도체 디바이스들 또는 단일 반도체 다이(die) 상에 제조될 수 있는 그외의 반도체 디바이스들과 함께 사용될 수 있다. 특정 구현들에서, 디바이스는 다양한 동종 및/또는 이종 프로세싱 에이전트들, 및 네트워킹 컴포넌트들, 예를 들어, 라우터들, 컨트롤러들, 브리지 디바이스들, 메모리들 등과 같은 부가적인 컴포넌트들을 포함하는 그외의 진보한 프로세서또는 SoC(system-on-chip)일 수 있다.
일부 구현들은, IP(intellectual property) 블록들을 SoC 또는 그외의 칩 내에 첨부하기 위한 표준화된 온 다이(on-die) 인터커넥트 프로토콜을 제공하도록 반도체 생산자에 의해 발행된 IOSF(integrated on-chip system fabric) 사양과 같은 주어진 사양에 따라 설계되는 반도체 디바이스에서 사용될 수 있다. 그러한 IP 블록들은, 많은 다른 것들 중에서, 적합한(in-order) 또는 부적합한(out-of-order) 코어들과 같은 범용 프로세서들, 고정형 기능 유닛들, 그래픽 프로세서들, 컨트롤러들을 포함하는 다양한 타입들의 것일 수 있다. 인터커넥트 프로토콜을 표준화함으로써, 이에 따라 상이한 타입들의 칩들에서 IP 에이전트들의 폭넓은 사용을 위해 프레임워크(framework)가 실현된다. 따라서, 반도체 생산자가 매우 다양한 고객 세그먼트들에 걸친 상이한 타입들의 칩들을 효과적으로 설계할 수 있을뿐만 아니라, 그것은 또한, 사양을 통해, 제3자들이 그러한 칩들에 통합될 IP 에이전트들과 같은 로직을 설계하는 것을 가능하게 할 수 있다. 그리고 또한, 인터커넥트 프로토콜의 다수의 측면들에 대한 여러 옵션들을 제공함으로써, 설계들의 재사용이 효과적으로 수용될 수 있다. 실시예들이 이러한 IOSF 사양과 연관되어 본원에서 설명되지만, 본 발명의 범위가 이에 한정되지 않으며 실시예들은 다수의 상이한 타입의 시스템들에서 사용될 수 있다는 것은 당연하다.
이제 도 1을 참조하면, 본 발명의 실시예에 따른 기본 인터커넥트 아키텍처의 블록도가 도시된다. 도 1에 도시된 바와 같이, 시스템(10)은 시스템 온 칩 또는 그외의 반도체 디바이스의 일부일 수 있고 다양한 컴포넌트들 사이의 인터커넥트로서 동작하는 패브릭(fabric)(20)을 포함한다. 도시된 구현에서, 이러한 컴포넌트들은, 컴퓨팅 능력들, 그래픽 능력들 등과 같은 다양한 기능성을 제공하기 위한 독립적인 IP 블록들일 수 있는 IP 에이전트들(30 및 40)을 포함한다. 따라서 이러한 IP 에이전트들은 일 실시예에서, IOSF 사양과 호환되는 인터페이스를 갖는 IP 블록들 또는 논리적 디바이스들이다. 더 도시된 바와 같이, 패브릭(20)은 또한 브리지(50)에 인터페이스한다. 도 1의 실시예에서 예시의 용이함을 위해 도시되지 않았지만, 브리지(50)는, 예를 들어, 동일한 칩 상 또는 하나 이상의 상이한 칩 상의 그외의 시스템 컴포넌트들에 대한 인터페이스로서 작동할 수 있다는 것은 당연하다.
이하에 더 설명될 바와 같이, 도 1에 도시된 각각의 엘리먼트들, 즉, 패브릭, IP 에이전트들, 및 브리지는 다양한 신호들의 통신을 핸들링하기 위한 하나 이상의 인터페이스를 포함할 수 있다. 이러한 인터페이스들은, 이러한 인터페이스들 상의 통신을 위한 신호들, 에이전트들 사이의 정보 교환을 위해 사용되는 프로토콜들, 정보 교환을 개시하고 관리하는 데 사용되는 중재 및 흐름 컨트롤 메커니즘들, 지원된 어드레스 디코딩 및 변환 능력들, 대역 내 또는 대역 외 통신을 위한 메시징, 전력 관리, 테스트, 유효화 및 디버그 지원을 정의하는 IOSF사양에 따라 정의될 수 있다.
IOSF 사양은 각 에이전트에 제공될 수 있는 3개의 독립적인 인터페이스들, 즉, 주 인터페이스, 측파대(sideband) 메시지 인터페이스 및 테스트성(testability) 또는 DFx(design for test) 인터페이스를 포함한다. IOSF 사양에 따라, 에이전트는 이러한 인터페이스들의 임의의 조합을 지원할 수 있다. 구체적으로, 에이전트는 0-N 주 인터페이스들, 0-N 측파대 메시지 인터페이스들 및 옵션의 DFx 인터페이스를 지원할 수 있다. 그러나, 사양에 따라, 에이전트는 이러한 3개의 인터페이스들 중 적어도 하나를 지원해야 한다.
패브릭(20)은 상이한 에이전트들 사이에서 데이터를 이동시키는 하드웨어 엘리먼트일 수 있다. 패브릭(20)의 토폴로지(topology)는 제품 지정(product specific)일 수 있다는 것을 유념하라. 예시들로서, 패브릭은 버스, 계층적 버스, 종속 연결형(cascaded) 허브 등으로서 구현될 수 있다. 이제 도 2를 참조하면, 본 발명의 실시예에 따른 인터커넥트 아키텍처의 더욱 상세한 블록도가 도시된다. 도 2에 도시된 바와 같이, 패브릭(110)은, 주 인터페이스(112), DFx 인터페이스(114), 및 측파대 인터페이스(116)를 포함하는, 다양한 인터페이스들을 포함한다. 주 인터페이스(112)는, 예를 들어, CPU(central processing unit)와 같은 호스트 프로세서 또는 그외의 프로세서와 에이전트 사이의, 대역 내 통신을 위해 사용될 수 있다. 주 인터페이스(112)는 에이전트들과 지원된 패브릭들 사이의 피어 트랜잭션(peer transaction)들의 통신을 더 가능하게 할 수 있다. 메모리, 입출력(IO), 구성, 및 대역 내 메시징을 포함하는 모든 트랜잭션 타입들은 주 인터페이스(112)를 통해 전달될 수 있다. 따라서 주 인터페이스는 업스트림(upstream) 컴포넌트들을 갖는 통신들 및/또는 피어들 사이에서 전송된 데이터를 위한 고성능 인터페이스로서 작동할 수 있다.
다양한 구현들에서, 주 인터페이스(112)는 최대 동시성을 달성하기 위해 분리형 트랜잭션 프로토콜을 구현한다. 즉, 이러한 프로토콜은 요청 페이즈(phase), 허가 페이즈, 및 커맨드 및 데이터 페이즈를 제공한다. 주 인터페이스(112)는 다양한 실시예에서, 3개의 기본 요청 타입들: 포스팅형(posted), 비 포스팅형(non-posted), 완료형(completion)을 지원한다. 일반적으로, 포스팅형 트랜잭션은, 소스에 의해 보내진 경우 소스에 의해 완료된 것으로 고려되고 소스는 트랜잭션에 관한 완료 또는 그외의 확인 메시지를 수신하지 않는 트랜잭션이다. 포스팅형 트랜잭션의 예시 중 하나는 기입 트랜잭션일 수 있다. 대조적으로, 비 포스팅형 트랜잭션은 반환 메시지가 수신될 때, 즉, 완료까지 소스에 의해 완료된 것으로 고려되지 않는다. 비 포스팅형 트랜잭션의 일례는 소스 에이전트가 데이터의 판독을 요청하는 판독 트랜잭션이다. 따라서, 완료 메시지는 요청된 데이터를 제공한다.
또한, 주 인터페이스(112)는 시스템 전체에 걸친 독립적인 데이터 흐름들을 위한 메커니즘을 제공하기 위한 별개의 채널들의 컨셉을 지원한다. 더 설명될 바와 같이, 주 인터페이스(112)는 트랜잭션들을 개시하는 마스터 인터페이스 및 트랜잭션들을 수신하는 타겟 인터페이스를 그 자체로 포함할 수 있다. 주 마스터 인터페이스는 요청 인터페이스, 커맨드 인터페이스, 및 데이터 인터페이스로 더 세분화될 수 있다. 요청 인터페이스는 트랜잭션의 커맨드 및 데이터의 이동에 대한 컨트롤을 제공하는데 사용될 수 있다. 다양한 실시예들에서, 주 인터페이스(112)는 PCI 순서화(ordering) 규칙들 및 열거(enumeration)를 지원할 수 있다.
그 다음으로, 측파대 인터페이스(116)는 모든 대역 외 정보를 통신하기 위한 표준 메커니즘일 수 있다. 이러한 방식으로, 주어진 구현에 대해 특수 목적 와이어들이 설계되는 것을 방지할 수 있어, 매우 다양한 칩들에 걸쳐 IP 재사용의 성능을 향상시키게 된다. 따라서 상태, 인터럽트, 전력 관리, 구성 섀도잉(shadowing), 테스트 모드들 등과 같은 대역 외 통신들을 핸들링하기 위한 전용 와이어들을 사용하는 IP 블록과는 대조적으로, IOSF 사양에 따른 측파대 인터페이스(116)는 모든 대역 외 통신을 표준화하여, 모듈성(modularity)을 증진하고 상이한 설계들에 걸친 IP 재사용을 위한 유효화 요구 조건들을 감소시키게 된다. 일반적으로, 측파대 인터페이스(116)는, 전형적으로 주 인터페이스(112)를 통해 통신될 수 있는, 주 데이터 전송들을 위한 것보다 오히려, 저성능 정보를 통신하는 데 사용될 수 있다.
도 2에 더 예시된 바와 같이, IP 에이전트들(130, 140 및 150)은 대응하는 주 인터페이스, 측파대 인터페이스 및 DFx 인터페이스를 각각 포함할 수 있다. 그러나, 전술한 바와 같이, 일부 실시예들에서, 각 에이전트는 이러한 인터페이스들 전부를 포함할 필요는 없고, 주어진 IP 에이전트는 단일 인터페이스만을 포함할 수 있다.
IOSF 사양을 사용하여, 다양한 타입들의 칩들이 매우 다양한 상이한 기능성을 갖도록 설계될 수 있다. 이제 도 3을 참조하면, 본 발명의 실시예에 따른 SoC의 하이 레벨 블록도가 도시된다. 도 3에 도시된 바와 같이, SoC(200)는 다양한 컴포넌트들을 포함할 수 있고, 이들 모두는 단일 반도체 다이 상에 집적되어, 빠른 속도 및, 저전력에서 다양한 프로세싱 능력들을 제공할 수 있어, 비교적 작은 실제 면적(real estate)을 소비하게 된다. 도 3에서 도시된 바와 같이, SoC(200)는 복수의 코어(2050 - 205n)를 포함한다. 다양한 실시예들에서, 코어들(205)은 상대적으로 단순한 적합한 코어들 또는 더 복잡한 부적합한 코어들일 수 있다. 또는 적합한 및 부적합한 코어들의 조합이 단일 SoC에 존재할 수 있다. 도시된 바와 같이, 코어들(205)은 코히어런트(coherent) 인터커넥트(215)를 통해 인터커넥트될 수 있고, 이는 캐시 메모리(210), 예를 들어, 공유된 LLC(last level cache)에 더 결합한다. 본 발명의 범위는 이에 한정되지 않지만, 일 실시예에서 코히어런트 인터커넥트(215)는, 캘리포니아 주(California), 산타 클라라 시(Santa Clara), 인텔사(Intel Corporation)로부터 사용 가능한 QPI™(Quick Path Interconnect) 사양에 따를 수 있다.
도 3에서 더 도시된 바와 같이, 코히어런트 인터커넥트(215)는 브리지(220)를 통해, IOSF 패브릭일 수 있는, 패브릭(250)에 통신할 수 있다. 코히어런트 인터커넥트(215)는 집적 메모리 컨트롤러(225)를 통해 오프 칩(off-chip) 메모리(도 3에서 실시예의 예시의 용이성을 위해 도시되지 않음)에 더 통신할 수 있고, 브리지(230)를 통해 패브릭(250)에 더 통신할 수 있다.
도 3에서 더 도시된 바와 같이, 다양한 컴포넌트들은, 보안 프로세싱, 암호 기능들 등과 같은 다양한 동작들을 수행하는 데 사용될 수 있는 CPM(content processing module)(240)을 포함하는 패브릭(250)에 결합할 수 있다. 또한, 디스플레이 프로세서(245)는 연관된 디스플레이를 위한 비디오를 렌더링(render)하는 매체 프로세싱 파이프라인의 일부일 수 있다.
더 도시된 바와 같이, 패브릭(250)은 IP 에이전트(255)에 더 결합할 수 있다. 도 3 실시예에서 예시의 용이성을 위해 단일 에이전트만이 도시되지만, 상이한 실시예들에서 다수의 그러한 에이전트들이 가능하다는 것은 당연하다. 또한, 그외의 온 칩 디바이스들과의 통신을 가능하게 하도록, 패브릭(250)은 PCIe™ 컨트롤러(260) 및 USB(universal serial bus) 컨트롤러(265)와 더 통신할 수 있고, 이들 양쪽 모두는 이러한 프로토콜들에 따른 다양한 디바이스들과 통신할 수 있다. 마지막으로, 도 3의 실시예에 도시된 것은 브리지(270)이고, 이는, OCP(open core protocol) 또는 ARM AMBA(advanced microcontroller bus architecture) 프로토콜과 같은, 그외의 프로토콜들의 부가적인 컴포넌트들과 통신하는 데 사용될 수 있다. 도 3의 실시예에서 이러한 특정 컴포넌트들과 함께 도시되지만, 본 발명의 범위는 이러한 방식으로 한정되지 않고 상이한 실시예들에서 부가적인 또는 상이한 컴포넌트들이 존재할 수 있다는 것은 당연하다.
또한, 도 3에서 단일 다이 SoC 구현으로서 도시되지만, 실시예들은 다수의 칩이 비 IOSF 인터페이스를 통해 서로 통신하는 시스템에서 더 구현될 수 있다는 것은 당연하다. 이제 도 4를 참조하면, 본 발명의 또 다른 실시예에 따른 시스템의 블록도가 도시된다. 도 4에 도시된 바와 같이, 시스템은 SoC(200)를 포함할 수 있고, 이는 도 3에 대해 전술한 것들과 유사한 다수의 컴포넌트들, 및 부가적인 오프 다이 인터페이스(275)를 포함할 수 있다. 따라서, SoC(200)는 또 다른 칩(280)과 통신할 수 있고, 이는 이러한 2개의 칩들 사이에서뿐만 아니라 하나 이상의 상이한 사양에 따른 상이한 주변 장치들과 같은 다양한 오프 칩 디바이스들에 대한 통신을 가능하게 하는 다양한 기능성을 포함할 수 있다. 구체적으로, 제2 칩(280)은 SoC(200)와 통신을 가능하게 하기 위한 오프 다이 인터페이스(282)를 포함하는 것으로 도시되고, 이는 차례로, 본 발명의 실시예에 따른 IOSF 패브릭일 수 있는, 패브릭(290)과 통신한다. 도시된 바와 같이, 패브릭(290)은, PCIe™ 컨트롤러(292), USB 컨트롤러(294) 및 브리지(296)를 포함하는 오프 칩 디바이스들과 통신하는 다양한 컨트롤러들에 더 결합될 수 있다.
GFPA(grant-based fixed priority arbiter) 스킴에서, 허가 카운트들은 다수의 에이전트(예를 들어, 공유된 버스 또는 그외의 인터커넥트) 사이에 결합된 링크(link)와 같은 리소스가 초과 신청된(over-subscribed) 경우 각각의 상이한 요청자들을 위한 대역폭을 할당하는 데 사용된다. 모든 허가 카운터들은 디어서션(de-assertion)을 리셋할 때 디폴트값들로 로드된다. 주어진 요청자에 발행된 각 허가는 대응하는 요청자의 허가 카운터에 업데이트, 예를 들어, 1의 감소를 야기한다. 결국, 허가 카운트들은 계류중인 활성 요청이 없거나 또는 모든 활성 요청들이 그것들의 각각의 허가 카운트들을 소비한 경우, 또는 양쪽 모두의 조건들의 조합에 의해, 글로벌하게(globally) 리로드될 것이고, 따라서 중재의 새로운 라운드(round)를 트리거(trigger)한다. GFPA 스킴에서, 글로벌 허가 카운트 리로드를 수행할 지의 평가는 매 클록 사이클(clock cycle)마다 발생할 수 있다.
특정 요청자들은 백 투 백 요청 어서션들을 지속시키는 것이 불가능하다. 다시 말해서, 이러한 요청자들은 (예를 들어, 제1 클록 사이클 및 다음 사이클에서) 파이프라인형 요청들을 발행할 수 없다. 이는, 부가적인 게이트(gate) 카운트, 또는 디바이스 내부 백 투 백 요청 버블(bubble)을 야기하지 않는 한정된 요청 큐 심도(queue depth)를 갖는 에이전트들에 대한 요청 크레딧(credit) 교환 일주(roundtrip) 지연으로 인한 것일 수 있고, 여기에서 요청 신호는 그것이 아비터에 의해 허가되는 경우 디어서트(de-assert)된다. 백 투 백 요청 어서션이 주어진 에이전트에 의해 지속될 수 없는 경우 글로벌 허가 카운트 리로드가 의도하지 않게 트리거되는 것을 방지하기 위해, 실시예들은 허가 카운트들의 리로드를 지연시킬 수 있다. 이러한 방식으로, 허가 카운트 리로드 동작은, 비 파이프라인형 요청자의 허가 카운터(또는 그러한 요청자들의 허가 카운터들 중 둘 이상)가 주어진 중재 라운드에 대해 그것의 모든 허가 카운트들을 소비하지 않은 경우 지연될 수 있다. 이러한 방식으로, 대역폭은 배정된 허가 카운트들에 의해 정의된 대역폭 비율에 따라 비 파이프라인형 요청자(들)에 할당될 수 있다. 즉, 허가 카운터 리로드는, 계류중인 요청들이 없고 에이전트들 중 적어도 하나와 연관된 허가 카운터가 0이 아닌 값을 갖는 경우 지연될 수 있다.
다양한 실시예들에서, 비 파이프라인형 요청자들의 (예를 들어, 1-5 클록들의) 요청 버블로 인한 대역폭 할당 문제를 해결하기 위해 글로벌 히스테리시스 카운터가 GFPA에 제공될 수 있다. 실질적으로, GFPA의 글로벌 허가 카운트 리로드는 요청자들로부터의 '정확한' 정보가 관찰될 때까지 히스테리시스 카운터에 의해 지연된다. 이러한 지연은 따라서, (요청자들 중 적어도 하나가 중재 라운드에 대해 사용 가능한 허가들을 갖는 경우) 비 파이프라인형 요청자가 요청을 디어서트한 이후 미리 결정된 수의 클록 사이클들에 대한 허가 카운터 리로드를 방지한다.
임의의 비 파이프라인형 요청의 디어서션 시에, 히스테리시스 카운터는 (다양한 실시예들에서, 예를 들어, 가장 큰 요청 버블을 갖는 요청자의, 요청 버블의 클록들의 수보다 크거나 같게 설정될 수 있는) 설정 가능한 값으로 로드될 수 있다. 카운터는 매 클록 사이클에 업데이트될 수 있다(예를 들어, 그것은 0에 도달할 때까지 클록 사이클당 1씩 스스로 감소될 수 있다). 그리고 글로벌 허가 카운트 리로드는 히스테리시스 카운터의 다음 상태가 0인 경우에만 발생하도록 허용된다. 이러한 상태는, 어서트된 감소 텀(term)과 함께, 현재 상태(또는 현재 값)가 1인 것, 또는 디어서트된 리로드 텀과 함께, 0인 현재 상태와 동등하다. 다시 말해서, 히스테리시스 카운터의 다음 스테이지는 다음 클록에서의 카운터의 플롭스(flops) 입력, 또는 카운터의 값이다.
(히스테리시스 카운터의 다음 스테이지가 0보다 큰) 이러한 히스테리시스 주기의 불필요한 영향을 최소화하기 위해, 이러한 히스테리시스 주기의 동작은, 마지막 허가 카운트를 소비한 요청자들이 히스테리시스 효과가 필요하지 않으므로, 비 파이프라인형 요청을 디어서트하는 것이 0이 아닌 값을 갖는 대응하는 허가 카운터를 갖는 요청자를 위한 것이 되도록, 더 자격 부여될(qualified) 수 있다, 또한 모든 비 파이프라인형 요청자들에 대한 허가 카운트들이 0인 경우, 히스테리시스 효과는 히스테리시스 카운터를 0으로 리셋함으로써 제거될 수 있다.
일 실시예에서, 중재 라운드의 사이클당, 히스테리시스 카운터 동작의 우선 순위는 다음과 같을 수 있다: ⅰ.(제1 우선 순위) 모든 비 파이프라인형 요청들의 허가 카운트들이 0인 경우 0으로 리셋; ⅱ.(제2 우선 순위) 0이 아닌 허가 카운트를 갖는 임의의 비 파이프라인형 요청의 디어서션이 있는 경우 히스테리시스 값으로 로드; 및 ⅲ.(제3 우선 순위) 카운터가 0보다 큰 경우 1씩 감소.
따라서 다양한 실시예들에 따라, GFPA 스킴은 비 파이프라인형 요청자들의 존재에도 불구하고 정의된 비율당 대역폭 할당을 유지할 수 있을 수 있다. 모든 비 파이프라인형 요청자들의 요청 버블들의 클록 수를 연역적으로(a priori) 앎으로써, 히스테리시스 값은 RTL(register transfer level) 변화들 없이 상이한 플랫폼들의 요청 버블의 상이한 클록 숫자들에 적응하도록 구성될 수 있다.
또한, 히스테리시스 값이 플랫폼의 비 파이프라인형 요청자들의 요청 버블들의 가장 긴 수와 같거나 더 크면, 본 발명의 실시예에 따른 히스테리시스 카운터를 갖는 GFPA 스킴은 요청 버블들의 상이한 클록 수들을 갖는 비 파이프라인형 요청자들을 핸들링할 수 있다.
또한, 아비터의 글로벌 허가 카운트 리로드를 지연시키는 히스테리시스 카운터는 부가적인 게이트 레벨들을 요청 허가 경로에 도입하지 않으며, 이는 타이밍 임계 경로(timing critical path)를 유지한다. 히스테리시스 주기의 영향은 주의하여 핸들링될 수 있고, 여기서 새로운 히스테리시스 주기가, 0이 아닌 허가 카운트를 갖는 임의의 비 파이프라인형 요청의 디어서션에 의해 트리거된다. 모든 비 파이프라인형 요청자들의 허가 카운트들이 0인 경우, 히스테리시스 영향은 히스테리시스 카운터를 0으로 리셋함으로써 즉시 제거될 수 있다.
이제 도 5를 참조하면, 본 발명의 실시예에 따른 중재 시스템의 블록도가 도시된다. 도 5에 도시된 바와 같이, 시스템(400)은 복수의 요청자(4101-410n)(포괄적으로 요청자(410))를 포함한다. 각 요청자(410)는 제1 인터커텍트(415) 및 제2 인터커넥트(418)를 통해 아비터(420)에 결합되어 요청들을 아비터(420)에 제공하고 그로부터 허가들을 수신한다. 도 5의 실시예에서, 아비터(420)는 업스트림 채널과 같은 인터커넥트(440)를 통해 업스트림 컴포넌트, 예를 들어, 칩셋 또는 그외의 인터페이스 로직과 같은 또 다른 컴포넌트에 차례로 연결되는 패브릭(430)일 수 있다.
다양한 실시예들에서, 아비터(420)는 중재 라운드 또는 사이클 동안 하나 이상의 허가를 각각의 요청자들(410)에 제공하기 위한 고정된 우선 순위 허가 카운트 아비터일 수 있다. 도 5에 도시된 바와 같이, 아비터(420)는, 허가 카운트 자격 부여 스테이지(422) 및 고정된 우선 순위 스테이지(424)를 포함하는 고정된 우선 순위 부분을 포함할 수 있다. 허가 카운터(421)는, 본 발명의 실시예에 따라 허가 카운트 리로드들을 컨트롤하는, 히스테리시스 컨트롤러(423)를 통해, 허가 카운트 자격 부여 스테이지(422)에 결합되어 각각의 주어진 요청자들(410)에 대한 허가 카운트들을 제공한다는 것을 유념하라. 동작중에, 허가 카운트 자격 부여 스테이지(422)에 들어오는 요청 스트림(stream)들은 프로세스되고 따라서 고정된 우선 순위 허가들을 허가하는 고정된 우선 순위 스테이지(424)에 제공된다. 도 5의 실시예에서 이러한 특정 구현과 함께 도시되었지만, 본 발명의 범위는 이에 한정되지 않는다. 예를 들어, 고정된 우선 순위 부분뿐 아니라 그외의 실시예들에서, 아비터는 기회적(opportunistic) 허가 메커니즘을 더 포함할 수 있고 따라서 사용 가능한 사이클들이 중재 라운드에 존재하는 경우 할당된 대역폭을 넘어서는 부가적인 허가들을 제공한다.
이제 도 6을 참조하면, 본 발명의 실시예에 따른 아비터의 더욱 상세한 블록도를 도시한다. 도 6에 도시된 바와 같이, 아비터(500)는 고정된 우선 순위 아비터일 수 있고, 더 구체적으로, 아비터(500)는, 도 5에 대해 전술한 바와 같은, 허가 카운트 자격 부여 스테이지(510) 및 고정된 우선 순위 자격 부여 스테이지(520)를 포함할 수 있다. 아비터의 추가 컴포넌트들과 함께, 이러한 스테이지들이 더욱 상세히 도시된다. 구체적으로, 도시된 바와 같은 허가 카운트 자격 부여 스테이지(510)는 다양한 로직, 즉, 복수의 로직 게이트, 예를 들어, 대응하는 요청자로부터 들어오는 요청들과 각각 연관된 AND 게이트들(5121-512n)을 포함할 수 있다. 또한, 각 게이트는 대응하는 요청자에 대한 허가 카운트 사용 가능 신호를 더 수신한다. 도 5의 실시예에서, 이러한 허가 카운트 사용 가능 신호들은, 이하 더 논의되는, 허가 리로드 컨트롤러(550)로부터 수신될 수 있다. 따라서 허가 카운트 자격 부여 스테이지(510)는, 유효한 어서트된 요청 신호가 수신되고 사용 가능한 허가 카운트가 대응하는 요청자에 대해 존재하는 경우 요청자로부터의 대응하는 요청에 대한 활성의, 어서트된 신호를 출력하도록 동작한다. 이러한 허가 자격 부여 신호들은 또한 복수의 로직 게이트, 즉 AND 게이트들(5222-522n)로서 구현될 수 있는 우선 순위 자격 부여 스테이지(520)에 제공될 수 있다. 도시된 바와 같이, 각 게이트는 비 반전된(non-inverted) 단일 입력, 즉, 허가 카운트 자격 부여 스테이지(510)의 대응하는 출력으로부터의 허가 자격 부여 신호를 가질 수 있다. 그러나 로직 게이트로의 모든 그외의 입력들은 반전된다. 이러한 방식으로, 한 번에 우선 순위 자격 부여 스테이지(520)로부터의 단일 출력만이 활성이다. 그리고 또한 이러한 출력들은 우선 순위에 기초할 수 있어서, 가장 높은 우선 순위 요청자, 예를 들어, 도 6의 실시예의 요청자 1에 대해 요청이 어서트되는 경우, 그 요청은 (그것이 그것을 게이트하기 위한 로직을 갖지 않기 때문에) 활성인 것이 되는 것, 등이다. 따라서, 주어진 중재 라운드에 대해 요청자 1이 그것의 대응하는 허가 카운터에 사용 가능한 허가들을 갖는 한, 그것의 요청들은 허가될 것이고, 요청자 2에서 요청자 N(요청자 N은 가장 낮은 우선 순위 요청자임)까지 등도 그러하다.
계속해서 도 6을 참조하면, 대응하는 우선 순위 허가 신호들 - 이들 중 하나만이 활성임 - 은 허가 신호 스테이지(530)에 제공될 수 있고, 여기서 각각의 신호들은 대응하는 로직, 즉, 대응하는 AND 게이트(5321-532n)에 제공될 수 있고, 여기서 신호는 글로벌 허가 신호와 조합되어 이러한 글로벌 허가 신호가 활성이면 대응하는 허가가 발행되게 한다. 따라서, 어서트된 허가 신호는 요청자에 다시 제공되어, 예를 들어, 요청자들에 결합된 업스트림 채널, 또 다른 에이전트, 패브릭 또는 그외의 그러한 목적지 위치로의 요청에 대응하는 그것의 트랜잭션의 송신을 가능하게 할 수 있다.
계속해서 도 6을 참조하면, 발행되는 활성 허가 신호는 복수의 허가 카운터 중 대응하는 것을 업데이트하는 데 사용될 수 있다. 도시된 바와 같이, 허가 카운터들(540)은 (일반적으로) 각 중재 사이클 동안, 즉, 글로벌 허가 카운트 리로드 시에 디폴트 수의 허가 카운트들을 수신할 수 있다. 다양한 실시예들에 따라, 이러한 리로딩은, 특정 전제 조건들의 실현 시에만 발생하도록 리로드를 자격 부여하는, 허가 리로드 컨트롤러(550)에 의해 컨트롤될 수 있다. 이를 위하여, 허가 리로드 동작은, 제2 로직 게이트(555)로부터의 입력 및 허가 리로드 컨트롤러(550)의 출력을 수신하도록 차례로 결합되는, 로직 게이트(560)로부터의 리셋 신호 출력에 의해 가능하게 된다는 것을 유념하라. 제2 로직 게이트(555)는, 도시된 바와 같이, 허가 자격 부여된 신호들을 각각의 요청자들로부터 반전된 입력에서 수신할 수 있어, 로직 게이트의 출력은, 허가 카운트 자격 부여 스테이지(510)로부터 제공되는 활성 자격 부여된 출력들이 없는 경우에만 활성이 되게 된다. 그 다음, 허가 리로드 컨트롤러(550)로부터의 컨트롤 신호는 활성일 수 있고, 따라서, 전술한 바와 같은 이러한 특정 전제 조건들이 충족되는 경우에만 리셋이 발생하도록 허용한다. 도시된 바와 같이, 허가 리로드 컨트롤러(550)는, 예를 들어, 구성 레지스터에 저장된 값에 의해 컨트롤될 수 있는, 디폴트 히스테리시스 값을 더 수신할 수 있다. 이러한 구성의 예시로서, 구성 레지스터의 필드(field)는, 구성 레지스터(동일하거나 또는 상이한 레지스터)의 대응하는 인에이블 비트(bit)에 의해 사용 가능하게 되는 경우, 요청의 디어서션 시 로드될 수 있는, 프로그래밍 가능한 히스테리시스 값을 제공하는 데 사용될 수 있다. 디스에이블(disable)되는 경우, 요청 디어서션 시, (허가 카운트들에 관계없이) 적어도 하나의 비 파이프라인형 요청자가 활성 요청을 갖지 않는 경우 글로벌 허가 카운트 리로드가 발생한다는 것을 유념하라. 도 6의 실시예에서 이러한 특정 구현과 함께 도시되었지만, 본 발명의 범위는 그렇게 한정되지 않는다는 것은 당연하다.
다양한 실시예들에서, 허가 리로드 컨트롤러(550)는 도 7의 흐름도에 도시된 바와 같은 허가 리로드 동작의 컨트롤을 수행하기 위한 로직을 포함할 수 있다. 이를 위하여, 컨트롤러는 도 7에 도시된 방법을 수행하기 위한 명령어들을 포함하는 비 일시적 저장 매체를 포함하거나 또는 그것에 결합될 수 있다. 도 7에 도시된 바와 같이, 방법(600)은 비 파이프라인형 요청이, 이러한 요청이 허가되었다는 것을 의미하는, 디어서트되었는지를 판정함으로써 시작할 수 있다(다이아몬드(610)). 그러하다면, 컨트롤은 다이아몬드(615)로 넘어가고, 여기서 모든 비 파이프라인형 요청자들이 0이 아닌 허가 카운트 값을 갖는지를 더 판정할 수 있다. 그러하다면, 컨트롤은 다이아몬드(620)로 넘어가고, 여기서 대응하는 비 파이프라인형 요청이 0이 아닌 허가 카운트를 갖는지를 더 판정할 수 있다. 그러하다면, 컨트롤은 블록(630)으로 넘어가고, 여기서 히스테리시스 카운터를, 전술한 바와 같이, 구성 레지스터로부터 획득할 수 있는 히스테리시스 값으로 로드할 수 있다. 도시된 바와 같이, 컨트롤은 다음에 다이아몬드(610)로 다시 넘어간다.
대신에 다이아몬드(610)에서 비 파이프라인형 요청이 디어서트되지 않았다는 것이 판정되면, 컨트롤은 다이아몬드(650)로 넘어간다. 거기서, 히스테리시스 카운터가 0 값에 있는지를 판정할 수 있다. 그러하다면, 컨트롤은 블록(660)으로 넘어가고 여기서 글로벌 허가 카운트 리로드를 허용할 수 있다. 대신에 다이아몬드(650)에서 히스테리시스 카운터 값이 0이 아닌 것으로 판정되면, 컨트롤은 오히려 블록(655)으로 넘어가고, 여기서 히스테리시스 카운터를 업데이트할 수 있다. 예를 들어, 이러한 주어진 클록 사이클에 대해, 히스테리시스 카운터의 값은, 예를 들어, 1씩 감소될 수 있다.
다이아몬드(615)에서 비 파이프라인형 요청자들의 허가 카운터들이 모두 0에 있다는 것이 판정되면, 컨트롤은 블록(670)으로 넘어가고, 여기서, 예를 들어, 허가 리로드 컨트롤러에 존재하는 히스테리시스 카운터를 0 값으로 리셋한다는 것을 유념하라. 이러한 0 값으로의 리셋은 따라서 글로벌 허가 카운트 리로드가 발생하는 것을 허용할 수 있다(블록(660)). 더 구체적으로 도 6을 다시 참조하면, 히스테리시스 카운터를 0 값으로 리셋함으로써, 리로드 컨트롤 신호가 허가 리로드 컨트롤러(550)로부터 발행될 수 있다. 도 7의 실시예에서 이러한 특정 순서와 함께 도시되지만, 실시예들은 그렇게 한정되지 않고, 기재된 동작은 그외의 구현들에서 상이한 순서들로 발생할 수 있다는 것은 당연하다는 것을 유념하라.
실시예들은 데스크톱, 모바일 및 서버 플랫폼들에서 사용되는 PCH(platform controller hub)와 같은 상이한 컴포넌트들에서 구현될 수 있다. 설정 가능한 히스테리시스 카운트를 갖는 히스테리시스 카운터는, 패브릭이, 배정된 허가 카운트들당 대역폭 할당을 유지하는 동안 요청 버블들의 상이한 클록 수를 갖는 비 파이프라인형 I/O 인터페이스들을 갖는 플랫폼들에 적응할 수 있게 한다. 이러한 방식으로, 칩셋 또는 그외의 컴포넌트는 초과 신청된 조건 하에서 I/O 인터페이스들당 예상되는 대역폭 할당을 전달할 수 있다.
이제 도 8을 참조하면, 본 발명의 실시예에 따른 시스템의 일부의 블록도가 도시된다. 도 8에 도시된 바와 같이, 시스템(700)은, 다양한 업스트림 리소스들, 즉, DMI(direct media interface)(740)와, 다양한 실시예들에서 프로세서 코어, 주변 디바이스 등일 수 있는 에이전트(750) 사이에 결합되는 패브릭(710)을 포함한다. 더 도시된 바와 같이, 패브릭(710)은 복수의 다운스트림 에이전트들, 즉, 에이전트들(720a-720c)에 더 결합한다. 도 8의 실시예에 이러한 3개의 에이전트들만을 갖는 것으로 도시되지만, 본 발명의 범위는 이에 한정되지 않는다는 것은 당연하다. 일반적으로, 각 에이전트는 타겟 인터페이스 및 마스터 인터페이스를 포함할 수 있다. 에이전트(720a)에 도시된 바와 같이, 에이전트들은 복수의 타겟 트랜잭션 큐(722) 및 복수의 마스터 트랜잭션 큐(724)를 포함할 수 있다. 이러한 에이전트들로부터의 요청들은 패브릭(710)의 요청 큐들(714)의 세트에 제공되고, 이는 차례로 본 발명의 실시예에 따른 아비터일 수 있는 아비터(715)에 결합되어 완료(fulfilling)를 위해 주어진 요청을 선택한다. 도시된 바와 같이, 다중화기(712)를 통해 요청 업스트림을 제공하기 위해, 아비터(714)는 컨트롤 신호를 제공하여 다중화기를 컨트롤한다. 트랜잭션들은 따라서 업스트림 에이전트들(740 및 750) 및 스트리밍 피어 큐(streaming peer queue)(716)에 더 제공될 수 있다. 도시된 바와 같이, 다운스트림 방향에서, 들어오는 트랜잭션들은, 요청 큐들(717)의 세트로부터 대응하는 요청들을 수신하는, 다운스트림 아비터(719)에 의해 컨트롤되는 다중화기(718)에 제공될 수 있다. 도 8의 실시예에서 이러한 하이 레벨에서 도시되지만, 본 발명의 범위는 이에 한정되지 않는다는 것은 당연하다.
본 발명이 제한된 수의 실시예들에 대해 설명되었지만, 본 기술 분야에 숙련된 자들은 그로부터의 다수의 수정들 및 변형들을 이해할 것이다. 첨부된 특허청구범위는 본 발명의 진정한 기술적 사상 및 범위에 속하는 모든 그러한 수정들 및 변형들을 포함하는 것으로 의도되었다.
Claims (20)
- 고정된 우선 순위 프로토콜에 따라 복수의 요청자로부터의 요청들을 허가하기 위한 제1 아비터(arbiter) - 각각의 상기 복수의 요청자(requestor)는 중재 사이클마다 미리 결정된 수의 허가들을 허가받음 -, 및
상기 복수의 요청자 중 비 파이프라인형(non-pipelined) 요청자가 요청을 디어서트(de-assert)한 이후 미리 결정된 수의 클록 사이클들 동안 상기 제1 아비터의 복수의 허가 카운터의 리로드(reload)를 방지하기 위해 상기 제1 아비터에 결합되는 허가 리로드 컨트롤러
를 포함하는 장치. - 제1항에 있어서,
상기 허가 리로드 컨트롤러는 적어도 하나의 비 파이프라인형 요청자가 중재 사이클마다 할당된 대역폭 비율을 수신할 수 있게 하는 장치. - 제1항에 있어서,
상기 허가 리로드 컨트롤러는 구성 레지스터에 따라 설정된 상기 미리 결정된 수의 클록 사이클들에 대응하는 값을 갖는 히스테리시스(hysteresis) 카운터를 포함하는 장치. - 제3항에 있어서,
상기 복수의 요청자 중 비 파이프라인형 요청자들 각각이 상기 중재 사이클의 남아있는 부분 동안 사용 가능한 허가들을 갖지 않으면 상기 히스테리시스 카운터는 리셋되는 장치. - 제4항에 있어서,
상기 허가 리로드 컨트롤러는 상기 리셋된 히스테리시스 카운터에 응답하여 상기 복수의 허가 카운터를 리로드하는 장치. - 제3항에 있어서,
상기 허가 리로드 컨트롤러는 클록 사이클마다 상기 히스테리시스 카운터의 값을 업데이트하는 장치. - 제3항에 있어서,
상기 허가 리로드 컨트롤러는, 디어서트된 요청을 갖는 비 파이프라인형 요청자 및 0이 아닌 값을 갖는 연관된 허가 카운터에 응답하여 상기 미리 결정된 수의 클록 사이클들에 대응하는 값으로 상기 히스테리시스 카운터를 리로드하는 장치. - 제1항에 있어서,
상기 제1 아비터는 고정된 우선 순위 아비터를 포함하는 장치. - 적어도 하나의 리소스에 대한 액세스를 제공하는 아비터에서 복수의 요청자로부터 요청들을 수신하는 단계,
상기 복수의 요청자 중 어느 것도 중재 라운드(round)의 적어도 하나의 사이클 동안 자격 부여된(qualified) 요청을 갖지 않는다는 것을 검출하는 단계, 및
상기 검출이 있는 경우, 상기 요청자들 중 적어도 하나가 상기 중재 라운드 동안 사용 가능한 허가들을 갖는 경우 미리 결정된 수의 클록 사이클들 동안 상기 복수의 요청자 중 하나의 요청자와 각각 연관된 복수의 허가 카운터의 허가 카운트 리로드를 방지하는 단계 - 상기 미리 결정된 수의 클록 사이클들은 상기 복수의 요청자 중 하나의 요청자의 요청 버블(bubble) 지연에 대응함 -
를 포함하는 방법. - 삭제
- 삭제
- 제9항에 있어서,
상기 복수의 요청자 중 상기 하나의 요청자는 상기 복수의 요청자의 가장 큰 요청 버블 지연을 갖는 방법. - 제9항에 있어서,
상기 허가 카운트들 중 어느 것도 0이 아닌 값을 갖지 않는 경우 상기 허가 카운트 리로드를 방지하는 단계를 종료하고, 상기 복수의 요청자 각각에 대해 상기 허가 카운터들을 리로드하는 단계를 더 포함하는 방법. - IP(intellectual property) 블록에 각각 대응하는 제1 복수의 에이전트(agent), 및
상기 제1 복수의 에이전트에 결합되는 패브릭(fabric) - 상기 패브릭은 고정된 우선 순위 프로토콜에 따라 상기 패브릭에 결합되는 리소스에 대한 상기 제1 복수의 에이전트에 의한 액세스를 허가하기 위한 아비터를 포함하고, 각각의 상기 제1 복수의 에이전트는 중재 라운드마다 미리 결정된 수의 허가들을 허가받고, 상기 패브릭은 계류중인 요청들이 없고 상기 제1 복수의 에이전트 중 적어도 하나와 연관된 허가 카운터가 0이 아닌 값을 갖는 경우 상기 제1 복수의 에이전트 중 하나의 에이전트와 각각 연관된 복수의 허가 카운터의 리로드를 지연시키도록 결합되는 컨트롤러를 포함하고, 상기 컨트롤러는 상기 제1 복수의 에이전트 중 하나의 에이전트의 요청 버블 지연에 대응하는 값을 갖는 히스테리시스 카운터를 포함함 -
을 포함하는 시스템. - 제14항에 있어서,
상기 컨트롤러는, 비 파이프라인형 요청자인 상기 제1 복수의 에이전트 중 상기 적어도 하나의 에이전트가 중재 라운드마다 할당된 대역폭 비율을 수신할 수 있게 하는 시스템. - 삭제
- 제14항에 있어서,
상기 제1 복수의 에이전트의 비 파이프라인형 요청자들 각각이 상기 중재 라운드의 남아있는 부분 동안 사용 가능한 허가들을 갖지 않으면 상기 히스테리시스 카운터는 리셋되는 시스템. - 제17항에 있어서,
상기 컨트롤러는 상기 리셋된 히스테리시스 카운터에 응답하여 상기 복수의 허가 카운터를 리로드하는 시스템. - 제14항에 있어서,
상기 컨트롤러는 클록 사이클마다 상기 히스테리시스 카운터의 값을 업데이트하는 시스템. - 제14항에 있어서,
상기 컨트롤러는 디어서트된 요청을 갖는 상기 제1 복수의 에이전트의 비 파이프라인형 요청자 및 0이 아닌 값을 갖는 연관된 허가 카운터에 응답하여 상기 값으로 상기 히스테리시스 카운터를 리로드하는 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/222,354 US8930602B2 (en) | 2011-08-31 | 2011-08-31 | Providing adaptive bandwidth allocation for a fixed priority arbiter |
US13/222,354 | 2011-08-31 | ||
PCT/US2012/051018 WO2013032715A1 (en) | 2011-08-31 | 2012-08-16 | Providing adaptive bandwidth allocation for a fixed priority arbiter |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140043492A KR20140043492A (ko) | 2014-04-09 |
KR101582058B1 true KR101582058B1 (ko) | 2015-12-31 |
Family
ID=47745329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147005328A KR101582058B1 (ko) | 2011-08-31 | 2012-08-16 | 고정된 우선 순위 아비터를 위한 적응 대역폭 할당 제공 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8930602B2 (ko) |
KR (1) | KR101582058B1 (ko) |
CN (1) | CN103765852B (ko) |
WO (1) | WO2013032715A1 (ko) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8711875B2 (en) * | 2011-09-29 | 2014-04-29 | Intel Corporation | Aggregating completion messages in a sideband interface |
US9239808B2 (en) * | 2011-12-15 | 2016-01-19 | Marvell World Trade Ltd. | Serial interface for FPGA prototyping |
US9223668B2 (en) * | 2013-03-13 | 2015-12-29 | Intel Corporation | Method and apparatus to trigger and trace on-chip system fabric transactions within the primary scalable fabric |
US9389906B2 (en) | 2013-12-23 | 2016-07-12 | Intel Corporation | Latency agnostic transaction buffer for request-grant protocols |
US9582442B2 (en) | 2014-05-30 | 2017-02-28 | International Business Machines Corporation | Intercomponent data communication between different processors |
US9563594B2 (en) * | 2014-05-30 | 2017-02-07 | International Business Machines Corporation | Intercomponent data communication between multiple time zones |
US9747245B2 (en) | 2014-12-17 | 2017-08-29 | Intel Corporation | Method, apparatus and system for integrating devices in a root complex |
US10210120B2 (en) | 2015-03-26 | 2019-02-19 | Intel Corporation | Method, apparatus and system to implement secondary bus functionality via a reconfigurable virtual switch |
US9990327B2 (en) | 2015-06-04 | 2018-06-05 | Intel Corporation | Providing multiple roots in a semiconductor device |
US10157160B2 (en) | 2015-06-04 | 2018-12-18 | Intel Corporation | Handling a partition reset in a multi-root system |
US10911261B2 (en) | 2016-12-19 | 2021-02-02 | Intel Corporation | Method, apparatus and system for hierarchical network on chip routing |
US10846126B2 (en) | 2016-12-28 | 2020-11-24 | Intel Corporation | Method, apparatus and system for handling non-posted memory write transactions in a fabric |
US10275379B2 (en) | 2017-02-06 | 2019-04-30 | International Business Machines Corporation | Managing starvation in a distributed arbitration scheme |
US11144457B2 (en) * | 2018-02-22 | 2021-10-12 | Netspeed Systems, Inc. | Enhanced page locality in network-on-chip (NoC) architectures |
US10740269B2 (en) * | 2018-07-17 | 2020-08-11 | Arm Limited | Arbitration circuitry |
US10936048B2 (en) | 2019-03-29 | 2021-03-02 | Intel Corporation | System, apparatus and method for bulk register accesses in a processor |
CN110674063B (zh) * | 2019-09-16 | 2021-03-23 | 上海天数智芯半导体有限公司 | 一种用于芯片内实现fabric的架构和方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090119432A1 (en) | 2004-10-28 | 2009-05-07 | Khee Wooi Lee | Starvation Prevention Scheme for a Fixed Priority PCE-Express Arbiter with Grant Counters using Arbitration Pools |
Family Cites Families (67)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
MX9306994A (es) | 1992-12-15 | 1994-06-30 | Ericsson Telefon Ab L M | Sistema de control de flujo para interruptores de paquete. |
US6009488A (en) | 1997-11-07 | 1999-12-28 | Microlinc, Llc | Computer having packet-based interconnect channel |
ATE290743T1 (de) * | 1998-07-31 | 2005-03-15 | Cit Alcatel | Verfahren, ablauffolgesteuerung, intelligenter pufferspeicher, prozessor und telekommunikationssystem zum verteilen verfügbahrer bandbreite |
US6182183B1 (en) | 1998-11-13 | 2001-01-30 | Sonics, Inc. | Communications system and method with multilevel connection identification |
US6233632B1 (en) | 1999-01-07 | 2001-05-15 | Vlsi Technology, Inc. | Optimizing peripheral component interconnect transactions in a mixed 32/64-bit environment by eliminating unnecessary data transfers |
US6427169B1 (en) | 1999-07-30 | 2002-07-30 | Intel Corporation | Parsing a packet header |
US6788707B1 (en) | 1999-08-31 | 2004-09-07 | Broadcom Corporation | Method for the suppression and expansion of packet header information in cable modem and cable modem termination system devices |
US6330647B1 (en) * | 1999-08-31 | 2001-12-11 | Micron Technology, Inc. | Memory bandwidth allocation based on access count priority scheme |
US6694380B1 (en) | 1999-12-27 | 2004-02-17 | Intel Corporation | Mapping requests from a processing unit that uses memory-mapped input-output space |
US6611893B1 (en) | 1999-12-29 | 2003-08-26 | Agere Systems Inc. | Data bus method and apparatus providing variable data rates using a smart bus arbiter |
US7124376B2 (en) | 2000-05-02 | 2006-10-17 | Palmchip Corporation | Design tool for systems-on-a-chip |
US6810460B1 (en) | 2001-02-15 | 2004-10-26 | Lsi Logic Corporation | AMBA bus off-chip bridge |
US6816938B2 (en) | 2001-03-27 | 2004-11-09 | Synopsys, Inc. | Method and apparatus for providing a modular system on-chip interface |
US20030088722A1 (en) | 2001-11-02 | 2003-05-08 | David Price | System and method for managing priorities in a PCI bus system |
US7162546B2 (en) | 2001-12-27 | 2007-01-09 | Intel Corporation | Reordering unrelated transactions from an ordered interface |
US7266786B2 (en) | 2002-11-05 | 2007-09-04 | Sonics, Inc. | Method and apparatus for configurable address mapping and protection architecture and hardware for on-chip systems |
US7046668B2 (en) | 2003-01-21 | 2006-05-16 | Pettey Christopher J | Method and apparatus for shared I/O in a load/store fabric |
US6907478B2 (en) | 2003-02-18 | 2005-06-14 | Adaptec, Inc. | Systems and methods optimizing data transfer throughput of a system on chip |
US20050010687A1 (en) | 2003-06-26 | 2005-01-13 | Silicon Graphics, Inc. | Multiprocessor network multicasting and gathering |
US7065733B2 (en) | 2003-12-02 | 2006-06-20 | International Business Machines Corporation | Method for modifying the behavior of a state machine |
US20050137966A1 (en) | 2003-12-19 | 2005-06-23 | Munguia Peter R. | Flow control credit synchronization |
KR100601881B1 (ko) | 2004-01-28 | 2006-07-19 | 삼성전자주식회사 | 원칩 시스템에서 라우터들간의 라우팅 경로 설정 장치 및방법 |
KR101034494B1 (ko) | 2004-02-11 | 2011-05-17 | 삼성전자주식회사 | 개방형 코어 프로토콜을 기반으로 하는 버스 시스템 |
KR101089324B1 (ko) | 2004-02-20 | 2011-12-02 | 삼성전자주식회사 | 복수의 마스터들을 포함하는 서브 시스템을 개방형 코어프로토콜을 기반으로 하는 버스에 연결하기 위한 버스시스템 |
TWI259354B (en) | 2004-06-25 | 2006-08-01 | Via Tech Inc | System and method of real-time power management |
US7707434B2 (en) | 2004-06-29 | 2010-04-27 | Broadcom Corporation | Power control bus for carrying power control information indicating a power supply voltage variability |
US20060047849A1 (en) | 2004-06-30 | 2006-03-02 | Mukherjee Shubhendu S | Apparatus and method for packet coalescing within interconnection network routers |
US20060140126A1 (en) | 2004-12-27 | 2006-06-29 | Intel Corporation | Arbitrating virtual channel transmit queues in a switched fabric network |
JP4410190B2 (ja) | 2005-03-24 | 2010-02-03 | 富士通株式会社 | PCI−Express通信システム |
US7809024B2 (en) | 2005-05-26 | 2010-10-05 | St-Ericsson Sa | Electronic device and method of communication resource allocation |
US7308668B2 (en) | 2005-06-30 | 2007-12-11 | International Business Machines Corporation | Apparatus and method for implementing an integrated circuit IP core library architecture |
US7457905B2 (en) | 2005-08-29 | 2008-11-25 | Lsi Corporation | Method for request transaction ordering in OCP bus to AXI bus bridge design |
DE102005047368A1 (de) | 2005-10-04 | 2007-04-05 | Epcos Ag | Piezoelektrischer Transformator und Verfahren zu dessen Herstellung |
US8364874B1 (en) | 2006-01-17 | 2013-01-29 | Hewlett-Packard Development Company, L. P. | Prioritized polling for virtual network interfaces |
US8437369B2 (en) | 2006-05-19 | 2013-05-07 | Integrated Device Technology, Inc. | Packets transfer device that intelligently accounts for variable egress channel widths when scheduling use of dispatch bus by egressing packet streams |
US7694161B2 (en) | 2006-06-30 | 2010-04-06 | Intel Corporation | Uncore thermal management |
WO2008023218A1 (en) | 2006-08-23 | 2008-02-28 | Freescale Semiconductor, Inc. | Device having priority upgrade mechanism capabilities and a method for updating priorities |
US20080059441A1 (en) | 2006-08-30 | 2008-03-06 | Lockheed Martin Corporation | System and method for enterprise-wide dashboard reporting |
US7805621B2 (en) | 2006-09-29 | 2010-09-28 | Broadcom Corporation | Method and apparatus for providing a bus interface with power management features |
US20080147858A1 (en) | 2006-12-13 | 2008-06-19 | Ramkrishna Prakash | Distributed Out-of-Band (OOB) OS-Independent Platform Management |
US20080163005A1 (en) | 2006-12-28 | 2008-07-03 | Sonksen Bradley S | Error injection in pci-express devices |
WO2008091575A2 (en) | 2007-01-22 | 2008-07-31 | Vast Systems Technology Corporation | Method and system for modeling a bus for a system design incorporating one or more programmable processors |
KR100867640B1 (ko) | 2007-02-06 | 2008-11-10 | 삼성전자주식회사 | 다중 접근 경로를 가지는 이미지 프로세싱 메모리를포함하는 시스템 온 칩 |
US7979592B1 (en) | 2007-02-09 | 2011-07-12 | Emulex Design And Manufacturing Corporation | Virtualization bridge device |
JP4886045B2 (ja) | 2007-03-09 | 2012-02-29 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | 分散型通信ネットワークにおけるネットワーク管理タスクの分散配置 |
US20080288689A1 (en) | 2007-05-14 | 2008-11-20 | Brian Hoang | Opportunistic granting arbitration scheme for fixed priority grant counter based arbiter |
US7573295B1 (en) | 2007-05-14 | 2009-08-11 | Xilinx, Inc. | Hard macro-to-user logic interface |
US7685346B2 (en) * | 2007-06-26 | 2010-03-23 | Intel Corporation | Demotion-based arbitration |
US7734856B2 (en) | 2007-08-22 | 2010-06-08 | Lantiq Deutschland Gmbh | Method for operating a plurality of arbiters and arbiter system |
US8028185B2 (en) | 2008-03-11 | 2011-09-27 | Globalfoundries Inc. | Protocol for transitioning in and out of zero-power state |
US8286014B2 (en) | 2008-03-25 | 2012-10-09 | Intel Corporation | Power management for a system on a chip (SoC) |
US7673087B1 (en) | 2008-03-27 | 2010-03-02 | Xilinx, Inc. | Arbitration for an embedded processor block core in an integrated circuit |
US7783819B2 (en) | 2008-03-31 | 2010-08-24 | Intel Corporation | Integrating non-peripheral component interconnect (PCI) resources into a personal computer system |
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) |
US7849252B2 (en) | 2008-05-30 | 2010-12-07 | Intel Corporation | Providing a prefix for a packet header |
US8225019B2 (en) | 2008-09-22 | 2012-07-17 | Micron Technology, Inc. | SATA mass storage device emulation on a PCIe interface |
US7873068B2 (en) | 2009-03-31 | 2011-01-18 | Intel Corporation | Flexibly integrating endpoint logic into varied platforms |
US8170062B2 (en) | 2009-04-29 | 2012-05-01 | Intel Corporation | Packetized interface for coupling agents |
US8095700B2 (en) * | 2009-05-15 | 2012-01-10 | Lsi Corporation | Controller and method for statistical allocation of multichannel direct memory access bandwidth |
JP5273002B2 (ja) | 2009-09-30 | 2013-08-28 | ブラザー工業株式会社 | 通信システム、通信制御装置、通信制御方法、及び通信制御プログラム |
US8073942B2 (en) | 2009-10-20 | 2011-12-06 | Dell Products, Lp | System and method for storage discovery in a storage area network using device domains under control of a storage device |
US20110179248A1 (en) | 2010-01-18 | 2011-07-21 | Zoran Corporation | Adaptive bandwidth allocation for memory |
US8370588B2 (en) | 2010-09-09 | 2013-02-05 | Hitachi, Ltd. | Computer system control method and computer system |
US8789170B2 (en) | 2010-09-24 | 2014-07-22 | Intel Corporation | Method for enforcing resource access control in computer systems |
US9043665B2 (en) | 2011-03-09 | 2015-05-26 | Intel Corporation | Functional fabric based test wrapper for circuit testing of IP blocks |
US8495265B2 (en) | 2011-06-01 | 2013-07-23 | International Business Machines Corporation | Avoiding non-posted request deadlocks in devices by holding the sending of requests |
US9021156B2 (en) | 2011-08-31 | 2015-04-28 | Prashanth Nimmala | Integrating intellectual property (IP) blocks into a processor |
-
2011
- 2011-08-31 US US13/222,354 patent/US8930602B2/en not_active Expired - Fee Related
-
2012
- 2012-08-16 WO PCT/US2012/051018 patent/WO2013032715A1/en active Application Filing
- 2012-08-16 KR KR1020147005328A patent/KR101582058B1/ko active IP Right Grant
- 2012-08-16 CN CN201280041935.3A patent/CN103765852B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090119432A1 (en) | 2004-10-28 | 2009-05-07 | Khee Wooi Lee | Starvation Prevention Scheme for a Fixed Priority PCE-Express Arbiter with Grant Counters using Arbitration Pools |
Also Published As
Publication number | Publication date |
---|---|
US8930602B2 (en) | 2015-01-06 |
KR20140043492A (ko) | 2014-04-09 |
CN103765852A (zh) | 2014-04-30 |
CN103765852B (zh) | 2017-01-18 |
US20130054856A1 (en) | 2013-02-28 |
WO2013032715A1 (en) | 2013-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101582058B1 (ko) | 고정된 우선 순위 아비터를 위한 적응 대역폭 할당 제공 | |
US9075929B2 (en) | Issuing requests to a fabric | |
US9489329B2 (en) | Supporting multiple channels of a single interface | |
US9658978B2 (en) | Providing multiple decode options for a system-on-chip (SoC) fabric | |
US9753875B2 (en) | Systems and an apparatus with a sideband interface interconnecting agents with at least one router | |
US9021156B2 (en) | Integrating intellectual property (IP) blocks into a processor | |
US9122815B2 (en) | Common idle state, active state and credit management for an interface | |
US9448870B2 (en) | Providing error handling support to legacy devices | |
US20080288689A1 (en) | Opportunistic granting arbitration scheme for fixed priority grant counter based arbiter | |
US20110197038A1 (en) | Servicing low-latency requests ahead of best-effort requests | |
US11372674B2 (en) | Method, apparatus and system for handling non-posted memory write transactions in a fabric | |
US5894562A (en) | Method and apparatus for controlling bus arbitration in a data processing system | |
US8176304B2 (en) | Mechanism for performing function level reset in an I/O device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20181129 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20191127 Year of fee payment: 5 |