KR20220031022A - 위성 adc를 사용한 fpga의 루트 모니터링 - Google Patents
위성 adc를 사용한 fpga의 루트 모니터링 Download PDFInfo
- Publication number
- KR20220031022A KR20220031022A KR1020227002161A KR20227002161A KR20220031022A KR 20220031022 A KR20220031022 A KR 20220031022A KR 1020227002161 A KR1020227002161 A KR 1020227002161A KR 20227002161 A KR20227002161 A KR 20227002161A KR 20220031022 A KR20220031022 A KR 20220031022A
- Authority
- KR
- South Korea
- Prior art keywords
- monitor
- reference voltage
- satellite
- interconnect system
- satellite monitors
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/003—Modifications for increasing the reliability for protection
- H03K19/00369—Modifications for compensating variations of temperature, supply voltage or other physical parameters
- H03K19/00384—Modifications for compensating variations of temperature, supply voltage or other physical parameters in field effect transistor circuits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/1778—Structural details for adapting physical parameters
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Arrangements For Transmission Of Measured Signals (AREA)
- Microcomputers (AREA)
- Logic Circuits (AREA)
Abstract
프로그래머블 디바이스의 다수의 동작 상태를 모니터링하기 위한 시스템 및 방법이 개시된다. 몇몇 구현예에서, 시스템은 기준 전압을 생성하도록 구성되는 회로부를 포함하는 루트 모니터, 프로그래머블 디바이스에 걸쳐 분포되는 복수의 센서 및 위성 모니터, 및 루트 모니터에 그리고 복수의 위성 모니터 각각에 커플링되는 인터커넥트 시스템을 포함할 수도 있다. 위성 모니터 각각은 로컬 인터커넥트를 통해 복수의 센서 중 대응하는 하나의 부근에 있을 수도 있고 그것에 커플링될 수도 있다. 인터커넥트 시스템은 기준 전압을 복수의 위성 모니터 각각으로 분배하도록 구성되는 하나 이상의 아날로그 채널을 포함할 수도 있고, 디지털 데이터를, 데이터 패킷으로서, 복수의 위성 모니터 각각으로부터 루트 모니터로 선택적으로 라우팅하도록 구성되는 하나 이상의 디지털 채널을 포함할 수도 있다.
Description
본 개시는 일반적으로 집적 회로에 관한 것이고, 특히 집적 회로의 하나 이상의 동작 상태를 모니터링하는 것에 관한 것이다.
프로그래머블 로직 디바이스(programmable logic device; PLD)는 다양한 유저 명시 회로 설계를 구현하기 위해 유저에 의해 프로그래밍될 수도 있는 디바이스이다. PLD의 하나의 예는 필드 프로그래머블 게이트 어레이(field programmable gate array; FPGA)이다. FPGA는 구성 가능한 로직 블록(configurable logic block; CLB), 전용 랜덤 액세스 메모리 블록(random access memory block; BRAM), 입력/출력 블록(input/output block; IOB), 디지털 신호 프로세서(digital signal processor; DSP), 다수의 프로세싱 코어, 및 프로그래머블 인터커넥트 구조물에 의해 함께 선택적으로 연결될 수도 있는 다른 서브시스템(예컨대, 메모리 컨트롤러, 디바이스 관리 리소스, 및 구성 회로부(circuitry))의 어레이를 포함할 수도 있다. 유저 명시 회로 설계는 유저 명시 회로 설계를 나타내는 구성 데이터를, 프로그래머블 디바이스의 다양한 블록, 인터커넥트 구조물, 및 서브시스템에 의해 수행되는 기능 및 동작을 집합적으로 결정하는 구성 레지스터에 로딩하는 것에 의해 프로그래머블 디바이스 내에서 구현될 수도 있다.
프로그래머블 디바이스 내의 전기 컴포넌트는 명시된 동작 상태 내에서 통상적으로 동작된다. 예를 들면, 전기 컴포넌트는 명시된 온도 범위 내에서 동작하도록 설계될 수도 있고, 동작 온도가 소정의 레벨을 넘어 증가되면, 디스에이블되거나 또는 전력이 차단될 수도 있다. 다른 예에서, 공급 전압은, 프로그래머블 디바이스 내에 제공되는 다른 전기 컴포넌트에 상대적으로 일정한 동작 전압을 제공하기 위해, 최소 전압 레벨과 최대 전압 레벨 사이에서 통상적으로 유지된다. 프로그래머블 디바이스가, 더 낮은 공급 전압 및 더 작은 디바이스 지오메트리를 사용하면서, 사이즈 및 복잡도에서 증가함에 따라, 그들의 동작 상태가 모니터링될 수 있는 정확도가 점점 더 중요해지고 있다.
이 개요는 하기의 발명을 실시하기 위한 구체적인 내용(Detailed Description)에서 추가로 설명되는 엄선된 개념을 단순화된 형태로 소개하기 위해 제공된다. 이 개요는, 청구된 주제의 주요한 피쳐 및/또는 본질적인 피쳐를 식별하도록 의도되지 않으며, 청구된 주제의 범위를 제한하도록 의도되지도 않는다. 또한, 본 개시의 시스템, 방법 및 디바이스 각각은 여러 가지 혁신적인 양태를 가지는데, 그 중 어떠한 단일의 하나도 본원에서 개시되는 바람직한 속성에 대해 단독으로 책임지는 것은 아니다.
본 개시에서 설명되는 주제의 하나의 혁신적인 양태는 프로그래머블 디바이스에 걸쳐 분포되는 다양한 회로 및 컴포넌트의 동작 상태를 모니터링하도록 구현될 수 있다. 몇몇 구현예에서, 프로그래머블 디바이스는 복수의 구성 가능한 로직 리소스, 루트 모니터(root monitor), 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 다수의 센서, 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 복수의 위성 모니터(satellite monitor), 및 구성 가능한 로직 리소스에, 루트 모니터에, 그리고 복수의 위성 모니터 각각에 커플링되는 네트워크 인터커넥트 시스템을 포함할 수도 있다. 센서 각각은 다양한 위치 중 대응하는 하나에서 관련된 회로의 동작 상태를 측정하도록 구성될 수도 있고, 측정된 동작 상태를 나타내는 아날로그 신호를 위성 모니터 중 대응하는 하나에 제공할 수도 있다. 몇몇 양태에서, 동작 상태는 관련된 회로의 온도 또는 전압 레벨 중 적어도 하나를 포함할 수도 있다.
위성 모니터 각각은 하나 이상의 관련된 센서로부터 아날로그 신호를 수신하기 위한 입력과, 및 네트워크 인터커넥트 시스템에 디지털 데이터를 제공하기 위한 출력을 구비하는 아날로그 대 디지털 컨버터(analog-to-digital converter; ADC)를 포함할 수도 있다. ADC는 아날로그 신호를 하나 이상의 관련된 센서의 동작 상태를 나타내는 디지털 데이터로 변환할 수도 있고, 디지털 데이터를 네트워크 인터커넥트 시스템을 통해 루트 모니터에 제공할 수도 있다.
루트 모니터는 기준 전압을 생성하도록 구성되는 회로부를 포함할 수도 있고, 복수의 위성 모니터로부터 수신되는 디지털 데이터를 저장하도록 구성되는 메모리를 포함할 수도 있다. 몇몇 구현예에서, 루트 모니터는 온도 변동에 대한 기준 전압을 보상하는 밴드갭 기준 회로(bandgap reference circuit)를 포함할 수도 있다. 추가적으로, 또는 대안적으로, 루트 모니터는 관련된 회로의 측정된 동작 상태가 범위 내에 있는지의 여부를 결정하도록 구성되는 컨트롤러를 포함할 수도 있다. 몇몇 양태에서, 컨트롤러는 또한, 측정된 동작 상태가 범위 내에 있지 않다는 것을 나타내는 결정에 기초하여 알람을 생성하도록 구성될 수도 있다.
네트워크 인터커넥트 시스템은 기준 전압을 루트 모니터로부터 복수의 위성 모니터 각각으로 분배하도록 구성될 수도 있고, 디지털 데이터를 복수의 위성 모니터 각각으로부터 루트 모니터로 선택적으로 라우팅하도록 구성될 수도 있다. 몇몇 구현예에서, 네트워크 인터커넥트 시스템은 기준 전압을 루트 모니터로부터 복수의 위성 모니터 각각으로 분배하도록 구성되는 하나 이상의 아날로그 채널을 포함할 수도 있고, 디지털 데이터를 위성 모니터로부터 루트 모니터로 선택적으로 라우팅하도록 구성되는 하나 이상의 디지털 채널을 포함할 수도 있다. 몇몇 양태에서, 디지털 데이터는, 개별적으로 주소 지정 가능한(addressable) 데이터 패킷으로서 네트워크 인터커넥트 시스템을 통해 라우팅될 수도 있다. 다른 양태에서, 디지털 데이터는 패킷화되지 않은 디지털 신호로서 네트워크 인터커넥트 시스템을 통해 라우팅될 수도 있다.
몇몇 구현예에서, 위성 모니터 각각은, 제어 신호에 기초하여 인터커넥트 시스템에 의해 분배되는 기준 전압을 위성 모니터에 선택적으로 커플링하도록 구성되는 스위치를 포함할 수도 있다. 제어 신호는 루트 모니터에 의해 생성될 수도 있고, 네트워크 인터커넥트 시스템을 통해(또는 다른 적절한 신호 인터커넥트에 의해) 대응하는 위성 모니터에 분배될 수도 있다. 몇몇 양태에서, 루트 모니터는, 위성 모니터 중 단지 하나만이 임의의 주어진 시점에서 네트워크 인터커넥트 시스템으로부터의 분배된 기준 전압에 액세스하는 것을 허용하는 타이밍 스케줄에 기초하여 제어 신호를 선택적으로 어써트할(assert) 수도 있다.
프로그래머블 디바이스의 다수의 동작 상태를 모니터링하기 위한 예시적인 시스템은, 루트 모니터, 프로그래머블 디바이스에 걸쳐 분포되는 복수의 센서, 프로그래머블 디바이스에 걸쳐 분포되는 복수의 위성 모니터, 및 적어도 루트 모니터 및 복수의 위성 모니터 각각에 커플링되는 네트워크 인터커넥트 시스템을 포함할 수도 있다. 루트 모니터는, 아날로그 대 디지털 변환을 수행하기 위해 사용될 수 있는 기준 전압을 생성하도록 구성되는 회로부를 포함할 수도 있다. 몇몇 구현예에서, 루트 모니터는 온도 변동에 대한 기준 전압을 보상하는 밴드갭 기준 회로를 포함할 수도 있다. 추가적으로, 또는 대안적으로, 루트 모니터는 관련된 회로의 측정된 동작 상태가 범위 내에 있는지의 여부를 결정하도록 구성되는 컨트롤러를 포함할 수도 있다. 몇몇 양태에서, 컨트롤러는 또한, 측정된 동작 상태가 범위 내에 있지 않다는 것을 나타내는 결정에 기초하여 알람을 생성하도록 구성될 수도 있다.
센서 각각은 관련된 회로의 동작 상태를 나타내는 아날로그 신호를 생성하도록 구성될 수도 있고, 위성 모니터 각각은 하나 이상의 관련된 센서에 의해 생성되는 아날로그 신호를 네트워크 인터커넥트 시스템을 통해 루트 모니터로 라우팅될 수 있는 디지털 데이터로 변환하도록 구성될 수도 있다.
네트워크 인터커넥트 시스템은 기준 전압을 복수의 위성 모니터 각각으로 분배하도록 구성되는 하나 이상의 아날로그 채널을 포함할 수도 있고, 디지털 데이터를 복수의 위성 모니터 각각으로부터 루트 모니터로 선택적으로 라우팅하도록 구성되는 하나 이상의 디지털 채널을 포함할 수도 있다. 몇몇 양태에서, 디지털 데이터는, 개별적으로 주소 지정 가능한 데이터 패킷으로서 네트워크 인터커넥트 시스템을 통해 라우팅될 수도 있다. 다른 양태에서, 디지털 데이터는 패킷화되지 않은 디지털 신호로서 네트워크 인터커넥트 시스템을 통해 라우팅될 수도 있다.
위성 모니터 각각은 아날로그 신호를 디지털 데이터로 변환하도록 구성되는 아날로그 대 디지털 컨버터(ADC)를 포함할 수도 있다. 몇몇 구현예에서, 위성 모니터 각각은, 제어 신호에 기초하여 인터커넥트 시스템에 의해 분배되는 기준 전압을 위성 모니터에 선택적으로 커플링하도록 구성되는 스위치를 포함할 수도 있다. 제어 신호는 루트 모니터에 의해 생성될 수도 있고, 네트워크 인터커넥트 시스템을 통해(또는 다른 적절한 신호 인터커넥트에 의해) 대응하는 위성 모니터에 분배될 수도 있다. 몇몇 양태에서, 루트 모니터는, 위성 모니터 중 단지 하나만이 임의의 주어진 시점에서 네트워크 인터커넥트 시스템으로부터의 분배된 기준 전압에 액세스하는 것을 허용하는 타이밍 스케줄에 기초하여 제어 신호를 선택적으로 어써트할(assert) 수도 있다.
본원에서 개시되는 예시적인 방법은 프로그래머블 디바이스의 다수의 동작 상태를 모니터링하기 위해 사용될 수도 있다. 방법은, 프로그래머블 디바이스 내에 제공되는 루트 모니터와 관련되는 전압 생성기를 사용하여 기준 전압을 생성하는 것, 및 프로그래머블 디바이스 내에 통합되는 네트워크 인터커넥트 시스템의 하나 이상의 아날로그 채널을 사용하여 복수의 위성 모니터 각각으로 기준 전압을 분배하는 것을 포함할 수도 있다. 몇몇 구현예에서, 기준 전압을 분배하는 것은 대응하는 제어 신호에 기초하여 복수의 위성 모니터 각각을 네트워크 인터커넥트 시스템에 선택적으로 커플링하는 것을 포함할 수도 있다. 제어 신호는 루트 모니터에 의해 생성될 수도 있고 네트워크 인터커넥트 시스템에 의해 복수의 위성 모니터에 분배될 수도 있다. 몇몇 양태에서, 루트 모니터는, 위성 모니터 중 단지 하나만이 임의의 주어진 시점에서 네트워크 인터커넥트 시스템으로부터의 분배된 기준 전압에 액세스하는 것을 허용하는 타이밍 스케줄에 기초하여 제어 신호를 선택적으로 어써트할(assert) 수도 있다.
방법은, 다수의 센서 각각을 사용하여, 관련된 회로의 동작 상태를 나타내는 아날로그 신호를 생성하는 것, 및 아날로그 신호를 복수의 위성 모니터 중 대응하는 위성 모니터에 제공하는 것을 또한 포함할 수도 있다. 아날로그 신호는 복수의 위성 모니터를 사용하여 디지털 데이터로 변환될 수도 있고, 디지털 데이터는 네트워크 인터커넥트 시스템의 하나 이상의 디지털 채널을 사용하여 복수의 위성 모니터로부터 루트 모니터로 선택적으로 라우팅될 수도 있다. 몇몇 양태에서, 디지털 데이터는, 개별적으로 주소 지정 가능한 데이터 패킷으로서 네트워크 인터커넥트 시스템을 통해 라우팅될 수도 있다. 다른 양태에서, 디지털 데이터는 패킷화되지 않은 디지털 신호로서 네트워크 인터커넥트 시스템을 통해 라우팅될 수도 있다.
방법은 또한 관련된 회로의 동작 상태가 범위 내에 있는지의 여부를 결정하는 것, 및 결정에 기초하여 하나 이상의 알람을 선택적으로 생성하는 것을 포함할 수도 있다. 몇몇 구현예에서, 관련된 회로 중 적어도 하나의 동작 상태가 범위 내에 있지 않을 때 알람이 생성될 수도 있는데, 이것은 관련된 회로 중 적어도 하나가 소정의 상태 밖에서 동작하고 있다는 것을 나타낼 수도 있다.
본 개시에서 설명되는 주제의 하나의 혁신적인 양태는 프로그래머블 디바이스에 걸쳐 분포되는 다양한 회로 및 컴포넌트의 동작 상태를 모니터링하도록 구현될 수 있다. 몇몇 구현예에서, 프로그래머블 디바이스는 복수의 구성 가능한 로직 리소스를 포함하는 프로그래머블 로직, 루트 모니터, 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 복수의 센서, 및 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 복수의 위성 모니터를 포함할 수도 있다. 센서 각각은 다양한 위치 중 대응하는 위치 부근에서 하나 이상의 관련된 회로의 측정된 동작 상태를 나타내는 아날로그 신호를 생성하도록 구성될 수도 있고, 하나 이상의 로컬 신호 라인을 통해 위성 모니터 중 관련된 하나에 아날로그 신호를 제공할 수도 있다. 몇몇 양태에서, 동작 상태는 관련된 회로의 온도 또는 전압 레벨 중 적어도 하나를 포함할 수도 있다.
루트 모니터는 온도 독립적인 기준 전압을 생성하도록 구성되는 밴드갭 전압 생성기를 포함할 수도 있고, 복수의 위성 모니터로부터 수신되는 디지털 데이터를 저장하기 위한 메모리를 포함할 수도 있다. 루트 모니터는 또한, 관련된 회로의 측정된 동작 상태가 범위 내에 있는지의 여부를 결정하도록 구성되는 컨트롤러를 포함할 수도 있다. 몇몇 양태에서, 컨트롤러는 또한, 측정된 동작 상태가 범위 내에 있지 않다는 것을 나타내는 결정에 기초하여 알람을 생성하도록 구성될 수도 있다.
위성 모니터 각각은 로컬 기준 전압을 생성하도록 구성되는 상대적으로 작은 로컬 전압 소스, 아날로그 대 디지털 컨버터(ADC), 캘리브레이션 회로, 및 보정 회로를 포함할 수도 있다. ADC는 로컬 기준 전압을 수신하기 위한 기준 단자를 포함할 수도 있고, 하나 이상의 관련된 센서에 의해 생성되는 아날로그 신호를 측정된 동작 상태를 나타내는 디지털 코드로 변환하도록 구성될 수도 있다. 캘리브레이션 회로는 디지털 코드에서의 에러를 나타내는 보정 계수(correction factor)를 생성하도록 구성될 수도 있고, 보정 회로는 보정 계수에 기초하여 ADC에 의해 생성되는 디지털 코드를 보정하도록 구성될 수도 있다.
몇몇 구현예에서, 위성 모니터 각각은 온도 독립적인 기준 전압을 수신하도록 커플링되는 제1 입력 단자, 하나 이상의 관련된 센서에 의해 생성되는 아날로그 신호를 수신하도록 커플링되는 제2 입력 단자, 제어 신호를 수신하도록 커플링되는 제어 단자, 및 위성 모니터 내의 ADC의 입력 단자에 커플링되는 출력 단자를 포함하는 스위치를 포함할 수도 있다. 캘리브레이션 동작 동안, 스위치는 ADC에 대한 입력 신호로서 온도 독립적인 기준 전압을 제공할 수도 있고, ADC는 온도 독립적인 기준 전압을 샘플링하여 기준 코드를 생성할 수도 있다. 캘리브레이션 회로는 ADC에 의해 생성되는 기준 코드와 온도 독립적인 기준을 나타내는 사전 결정된 디지털 코드 사이의 차이에 기초하여 보정 계수를 생성할 수도 있다. 모니터링 동작 동안, 스위치는 센서로부터의 아날로그 신호를 ADC에 대한 입력 신호로서 제공할 수도 있고, ADC는 하나 이상의 관련된 센서로부터 아날로그 신호를 샘플링하여 디지털 코드를 생성할 수도 있고, 보정 회로는 보정 계수를 사용하여 디지털 코드를 보정할 수도 있다.
루트 모니터는 복수의 위성 모니터를 캘리브레이팅하기 위한 타이밍 스케줄에 적어도 부분적으로 기초하여 제어 신호를 생성할 수도 있다. 몇몇 구현예에서, 타이밍 스케줄은, 한 번에 위성 모니터 중 단지 하나만이 온도 독립적인 기준 전압에 액세스하는 것을 허용하는 것에 의해 복수의 위성 모니터 각각의 캘리브레이션을 순차적으로 가능하게 하도록 구성될 수도 있다.
몇몇 구현예에서, 프로그래머블 디바이스는 구성 가능한 로직 리소스에, 루트 모니터에, 그리고 복수의 위성 모니터 각각에 커플링되는 네트워크 온 칩(network-on-chip; NoC) 인터커넥트 시스템을 포함할 수도 있다. NoC 인터커넥트 시스템은 제어 신호를 루트 모니터로부터 복수의 위성 모니터 각각으로 분배하도록 구성될 수도 있고, 디지털 데이터를 복수의 위성 모니터 각각으로부터 루트 모니터로 선택적으로 라우팅하도록 구성될 수도 있다. 추가적으로 또는 대안적으로, 프로그래머블 디바이스는 온도 독립적인 기준 전압을 루트 모니터로부터 복수의 위성 모니터 각각으로 분배하도록 구성되는 하나 이상의 아날로그 채널을 포함할 수도 있다.
본원에서 개시되는 예시적인 방법은 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 복수의 회로의 동작 상태를 모니터링하기 위해 사용될 수도 있다. 몇몇 구현예에서, 방법은, 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 복수의 센서 중 대응하는 하나를 사용하여 복수의 회로 각각의 동작 상태를 나타내는 아날로그 신호를 생성하는 것; 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 복수의 위성 모니터 중 대응하는 하나에 아날로그 신호 각각을 제공하는 것; 복수의 위성 모니터 각각에서, 로컬 전압 소스를 사용하여 로컬 기준 전압을 생성하는 것; 복수의 위성 모니터 각각에서, 복수의 아날로그 신호 중 대응하는 하나를, 로컬 기준 전압에 기초하여 아날로그 대 디지털 컨버터(ADC)를 사용하여, 디지털 코드로 변환하는 것; 온도 독립적인 기준 전압을 루트 모니터로부터 복수의 위성 모니터 각각으로 분배하는 것; 분배된 온도 독립적인 기준 전압에 적어도 부분적으로 기초하여 복수의 위성 모니터 각각 내의 ADC에 의해 생성되는 디지털 코드를 보정하는 것; 및 보정된 디지털 코드를 복수의 위성 모니터 각각으로부터 루트 모니터로 선택적으로 라우팅하는 것을 포함할 수도 있다. 몇몇 구현예에서, 온도 독립적인 기준 전압을 분배하는 것은, 루트 모니터에 의해 생성되는 대응하는 복수의 제어 신호에 기초하여, 복수의 위성 모니터 각각이 온도 독립적인 기준 전압에 액세스하는 것을 순차적으로 가능하게 하는 것을 포함할 수도 있다.
몇몇 구현예에서, 보정된 디지털 코드는, 프로그래머블 로직에 걸쳐 있는 네트워크 온 칩(NoC) 인터커넥트 시스템을 사용하여, 복수의 위성 모니터로부터 루트 모니터로 선택적으로 라우팅될 수도 있고, 온도 독립적인 기준 전압은, 프로그래머블 로직에 걸쳐 있는 하나 이상의 아날로그 채널을 사용하여, 루트 모니터로부터 복수의 위성 모니터로 분배될 수도 있다. 몇몇 구현예에서, 디지털 코드를 보정하는 것은, ADC에 대한 입력 신호로서 온도 독립적인 기준 전압을 제공하는 것; ADC를 사용하여 온도 독립적인 기준 전압을 기준 코드로 변환하는 것; 기준 코드와 온도 독립적인 기준 전압을 나타내는 사전 결정된 디지털 코드 사이의 차이에 기초하여 보정 계수를 생성하는 것; 및 보정 계수에 기초하여 디지털 코드를 조정하는 것을 포함할 수도 있다.
본 개시에서 설명되는 주제의 하나의 혁신적인 양태는 프로그래머블 디바이스에 걸쳐 분포되는 다양한 회로 및 컴포넌트의 동작 상태를 모니터링하도록 구현될 수 있다. 몇몇 구현예에서, 프로그래머블 디바이스는 복수의 구성 가능한 로직 리소스를 포함하는 프로그래머블 로직, 루트 모니터, 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 복수의 센서, 및 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 복수의 위성 모니터를 포함할 수도 있다. 센서 각각은 다양한 위치 중 대응하는 위치 부근에서 하나 이상의 관련된 회로의 측정된 동작 상태를 나타내는 아날로그 신호를 생성하도록 구성될 수도 있고, 하나 이상의 로컬 신호 라인을 통해 위성 모니터 중 관련된 하나에 아날로그 신호를 제공할 수도 있다. 몇몇 양태에서, 동작 상태는 관련된 회로의 온도 또는 전압 레벨 중 적어도 하나를 포함할 수도 있다.
루트 모니터는 온도 독립적인 기준 전압을 생성하도록 구성되는 밴드갭 전압 생성기를 포함할 수도 있고, 복수의 위성 모니터로부터 수신되는 디지털 데이터를 저장하기 위한 메모리를 포함할 수도 있다. 루트 모니터는 또한, 관련된 회로의 측정된 동작 상태가 범위 내에 있는지의 여부를 결정하도록 구성되는 컨트롤러를 포함할 수도 있다. 몇몇 양태에서, 컨트롤러는 또한, 측정된 동작 상태가 범위 내에 있지 않다는 것을 나타내는 결정에 기초하여 알람을 생성하도록 구성될 수도 있다.
위성 모니터 각각은, 밴드갭 전압 생성기, 아날로그 대 디지털 컨버터(ADC), 캘리브레이션 회로, 및 보정 회로에 의해 생성되는 온도 독립적인 기준 전압에 기초하여 로컬 기준 전압을 저장하도록 구성되는 전압 저장소(voltage store)를 포함할 수도 있다. ADC는 로컬 기준 전압을 수신하기 위한 기준 단자를 포함할 수도 있고, 하나 이상의 관련된 센서에 의해 생성되는 아날로그 신호를 측정된 동작 상태를 나타내는 디지털 코드로 변환하도록 구성될 수도 있다. 캘리브레이션 회로는 디지털 코드에서의 에러를 나타내는 보정 계수(correction factor)를 생성하도록 구성될 수도 있고, 보정 회로는 보정 계수에 기초하여 ADC에 의해 생성되는 디지털 코드를 보정하도록 구성될 수도 있다.
몇몇 구현예에서, 위성 모니터 각각은 제1 스위치 및 제2 스위치를 포함할 수도 있다. 제1 스위치는 온도 독립적인 기준 전압을 수신하도록 커플링되는 제1 입력 단자, 하나 이상의 관련된 센서에 의해 생성되는 아날로그 신호를 수신하도록 커플링되는 제2 입력 단자, 제어 신호를 수신하도록 커플링되는 제어 단자, 및 위성 모니터 내의 ADC의 입력 단자에 커플링되는 출력 단자를 포함할 수도 있다. 제2 스위치는 온도 독립적인 기준 전압을 수신하도록 커플링되는 입력 단자, 제어 신호를 수신하도록 커플링되는 제어 단자, 및 전압 저장소에 커플링되는 출력 단자를 포함할 수도 있다.
캘리브레이션 동작 동안, 제1 스위치는 ADC에 대한 입력 신호로서 온도 독립적인 기준 전압을 제공할 수도 있고, 제2 스위치는 온도 독립적인 기준 전압으로부터 전압 저장소를 분리할 수도 있고, ADC는 온도 독립적인 기준 전압을 샘플링하여 기준 코드를 생성할 수도 있다. 캘리브레이션 회로는 ADC에 의해 생성되는 기준 코드와 온도 독립적인 기준을 나타내는 사전 결정된 디지털 코드 사이의 차이에 기초하여 보정 계수를 생성할 수도 있다. 모니터링 동작 동안, 제1 스위치는 센서로부터의 아날로그 신호를 ADC에 대한 입력 신호로서 제공할 수도 있고, 제2 스위치는 전압 저장소에 온도 독립적인 기준 전압을 제공할 수도 있고, ADC는 하나 이상의 관련된 센서로부터 아날로그 신호를 샘플링하여 디지털 코드를 생성할 수도 있고, 보정 회로는 보정 계수를 사용하여 디지털 코드를 보정할 수도 있다.
루트 모니터는 복수의 위성 모니터를 캘리브레이팅하기 위한 타이밍 스케줄에 적어도 부분적으로 기초하여 제어 신호를 생성할 수도 있다. 몇몇 구현예에서, 타이밍 스케줄은, 한 번에 위성 모니터 중 단지 하나만이 온도 독립적인 기준 전압에 액세스하는 것을 허용하는 것에 의해 복수의 위성 모니터 각각의 캘리브레이션을 순차적으로 가능하게 하도록 구성될 수도 있다.
몇몇 구현예에서, 프로그래머블 디바이스는 구성 가능한 로직 리소스에, 루트 모니터에, 그리고 복수의 위성 모니터 각각에 커플링되는 네트워크 온 칩(NoC) 인터커넥트 시스템을 포함할 수도 있다. NoC 인터커넥트 시스템은 제어 신호를 루트 모니터로부터 복수의 위성 모니터 각각으로 분배하도록 구성될 수도 있고, 디지털 데이터를 복수의 위성 모니터 각각으로부터 루트 모니터로 선택적으로 라우팅하도록 구성될 수도 있다. 추가적으로 또는 대안적으로, 프로그래머블 디바이스는 온도 독립적인 기준 전압을 루트 모니터로부터 복수의 위성 모니터 각각으로 분배하도록 구성되는 하나 이상의 아날로그 채널을 포함할 수도 있다.
본원에서 개시되는 예시적인 방법은 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 복수의 회로의 동작 상태를 모니터링하기 위해 사용될 수도 있다. 몇몇 구현예에서, 방법은, 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 복수의 센서 중 대응하는 하나를 사용하여 복수의 회로 각각의 동작 상태를 나타내는 아날로그 신호를 생성하는 것; 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 복수의 위성 모니터 중 대응하는 하나에 아날로그 신호 각각을 제공하는 것; 복수의 위성 모니터 각각에서, 온도 독립적인 기준 전압에 기초하여 로컬 기준 전압을 저장하는 것; 복수의 위성 모니터 각각에서, 복수의 아날로그 신호 중 대응하는 하나를, 로컬 기준 전압에 기초하여 아날로그 대 디지털 컨버터(ADC)를 사용하여, 디지털 코드로 변환하는 것; 온도 독립적인 기준 전압을 루트 모니터로부터 복수의 위성 모니터 각각으로 분배하는 것; 분배된 온도 독립적인 기준 전압에 적어도 부분적으로 기초하여 복수의 위성 모니터 각각 내의 ADC에 의해 생성되는 디지털 코드를 보정하는 것; 및 보정된 디지털 코드를 복수의 위성 모니터 각각으로부터 루트 모니터로 선택적으로 라우팅하는 것을 포함할 수도 있다. 몇몇 구현예에서, 전압 저장소는 커패시터일 수도 있고, 로컬 기준 전압은 온도 독립적인 기준 전압과 비교하여 상대적으로 부정확할 수도 있다. 몇몇 구현예에서, 온도 독립적인 기준 전압을 분배하는 것은, 루트 모니터에 의해 생성되는 대응하는 복수의 제어 신호에 기초하여, 복수의 위성 모니터 각각이 온도 독립적인 기준 전압에 액세스하는 것을 순차적으로 가능하게 하는 것을 포함할 수도 있다.
보정된 디지털 코드는, 프로그래머블 로직에 걸쳐 있는 네트워크 온 칩(NoC) 인터커넥트 시스템을 사용하여, 복수의 위성 모니터로부터 루트 모니터로 선택적으로 라우팅될 수도 있고, 온도 독립적인 기준 전압은, 프로그래머블 로직에 걸쳐 있는 하나 이상의 아날로그 채널을 사용하여, 루트 모니터로부터 복수의 위성 모니터로 분배될 수도 있다. 몇몇 구현예에서, 디지털 코드를 보정하는 것은, ADC에 대한 입력 신호로서 온도 독립적인 기준 전압을 제공하는 것; ADC를 사용하여 온도 독립적인 기준 전압을 기준 코드로 변환하는 것; 기준 코드와 온도 독립적인 기준 전압을 나타내는 사전 결정된 디지털 코드 사이의 차이에 기초하여 보정 계수를 생성하는 것; 및 보정 계수에 기초하여 디지털 코드를 조정하는 것을 포함할 수도 있다.
예시적인 구현예는 예로서 예시되고 첨부의 도면의 도면에 의해 제한되도록 의도되지는 않는다. 도면 및 명세서 전반에 걸쳐 같은 번호는 같은 엘리먼트를 참조한다. 다음의 도면의 상대적 치수는 일정한 비율로 묘화되지 않을 수도 있다는 것을 유의한다.
도 1은 본 개시의 다양한 양태가 구현될 수도 있는 예시적인 프로그래머블 디바이스의 블록도이다.
도 2는, 몇몇 구현예에 따른, 도 1의 프로그래머블 디바이스의 일부의 기능 블록도를 도시한다.
도 3은, 몇몇 구현예에 따른, 예시적인 프로그래머블 패브릭(fabric)의 블록도를 도시한다.
도 4는, 몇몇 구현예에 따른, 모니터링 시스템의 기능 블록도를 도시한다.
도 5는, 몇몇 구현예에 따른, 예시적인 루트 모니터의 블록도를 도시한다.
도 6은, 몇몇 구현예에 따른, 예시적인 위성 모니터의 블록도를 도시한다.
도 7은, 몇몇 구현예에 따른, 프로그래머블 디바이스의 다수의 동작 상태를 모니터링하기 위한 예시적인 동작을 묘사하는 예시적인 플로우차트이다.
도 8은 본 개시의 다양한 양태가 구현될 수도 있는 예시적인 프로그래머블 디바이스의 블록도이다.
도 9는, 몇몇 구현예에 따른, 도 8의 프로그래머블 디바이스의 일부의 기능 블록도를 도시한다.
도 10은, 몇몇 구현예에 따른, 예시적인 프로그래머블 패브릭의 블록도를 도시한다.
도 11은, 몇몇 구현예에 따른, 모니터링 시스템의 기능 블록도를 도시한다.
도 12는, 몇몇 구현예에 따른, 예시적인 루트 모니터의 블록도를 도시한다.
도 13은, 몇몇 구현예에 따른, 예시적인 위성 모니터의 블록도를 도시한다.
도 14는, 몇몇 구현예에 따른, 프로그래머블 디바이스의 다수의 동작 상태를 모니터링하기 위한 예시적인 동작을 묘사하는 예시적인 플로우차트이다.
도 15는, 몇몇 구현예에 따른, 디지털 코드를 보정하기 위한 예시적인 동작을 묘사하는 예시적인 플로우차트이다.
도 16은, 몇몇 구현예에 따른, 예시적인 위성 모니터의 블록도를 도시한다.
도 1은 본 개시의 다양한 양태가 구현될 수도 있는 예시적인 프로그래머블 디바이스의 블록도이다.
도 2는, 몇몇 구현예에 따른, 도 1의 프로그래머블 디바이스의 일부의 기능 블록도를 도시한다.
도 3은, 몇몇 구현예에 따른, 예시적인 프로그래머블 패브릭(fabric)의 블록도를 도시한다.
도 4는, 몇몇 구현예에 따른, 모니터링 시스템의 기능 블록도를 도시한다.
도 5는, 몇몇 구현예에 따른, 예시적인 루트 모니터의 블록도를 도시한다.
도 6은, 몇몇 구현예에 따른, 예시적인 위성 모니터의 블록도를 도시한다.
도 7은, 몇몇 구현예에 따른, 프로그래머블 디바이스의 다수의 동작 상태를 모니터링하기 위한 예시적인 동작을 묘사하는 예시적인 플로우차트이다.
도 8은 본 개시의 다양한 양태가 구현될 수도 있는 예시적인 프로그래머블 디바이스의 블록도이다.
도 9는, 몇몇 구현예에 따른, 도 8의 프로그래머블 디바이스의 일부의 기능 블록도를 도시한다.
도 10은, 몇몇 구현예에 따른, 예시적인 프로그래머블 패브릭의 블록도를 도시한다.
도 11은, 몇몇 구현예에 따른, 모니터링 시스템의 기능 블록도를 도시한다.
도 12는, 몇몇 구현예에 따른, 예시적인 루트 모니터의 블록도를 도시한다.
도 13은, 몇몇 구현예에 따른, 예시적인 위성 모니터의 블록도를 도시한다.
도 14는, 몇몇 구현예에 따른, 프로그래머블 디바이스의 다수의 동작 상태를 모니터링하기 위한 예시적인 동작을 묘사하는 예시적인 플로우차트이다.
도 15는, 몇몇 구현예에 따른, 디지털 코드를 보정하기 위한 예시적인 동작을 묘사하는 예시적인 플로우차트이다.
도 16은, 몇몇 구현예에 따른, 예시적인 위성 모니터의 블록도를 도시한다.
본 개시에서 설명되는 주제의 구현은, 프로그래머블 디바이스의 다수의 동작 상태를 모니터링하기 위해 사용될 수도 있다. 동작 상태는, 예를 들면, 프로그래머블 디바이스 내에 제공되는 회로 또는 컴포넌트의 온도, 프로그래머블 디바이스 외부의 회로 또는 디바이스의 온도, 공급 전압의 전압 레벨, 및 등등을 포함하는 디바이스의 동작 특성 또는 파라미터의 임의의 적절한 척도일 수도 있다. 본 개시의 몇몇 양태에 따르면, 모니터링 시스템은, 프로그래머블 로직, 프로세서 및 DSP와 같은 전용 회로부, 및 개별적으로 주소 지정 가능한 데이터 패킷을 사용하여 프로그래머블 로직, 전용 회로부, 및 프로그래밍 가능 디바이스의 다른 회로 또는 컴포넌트 사이에서 정보를 라우팅할 수 있는 네트워크 인터커넥트 시스템을 포함하는 프로그래머블 디바이스에서 구현될 수도 있다.
모니터링 시스템은, 루트 모니터, 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 다수의 센서, 및 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 복수의 위성 모니터를 포함할 수도 있다. 센서 각각은, 관련된 회로의 하나 이상의 동작 상태를 나타내는 아날로그 신호를 생성할 수도 있고, 위성 모니터 중 대응하는 하나에 아날로그 신호를 제공할 수도 있다. 위성 모니터 각각은 아날로그 신호를 디지털 데이터로 변환하는 ADC를 포함할 수도 있고, 네트워크 인터커넥트 시스템은 디지털 데이터를 위성 모니터 각각으로부터 루트 모니터로 라우팅할 수도 있다. 몇몇 구현예에서, 위성 모니터 각각은 대응하는 센서 부근에서 배치될 수도 있고, 예를 들면, 그 결과, 대응하는 센서에 의해 생성되는 아날로그 신호는 디지털 데이터로의 변환을 위해 프로그래머블 디바이스를 거쳐 루트 모니터로 라우팅되는 것이 아니라, 대신, 디지털 데이터로의 변환을 위해, 로컬 신호 배선을 통해, 대응하는 위성 모니터에 상대적으로 짧은 거리로 라우팅된다.
다른 구현예에서, 위성 모니터에 의해 생성되는 디지털 데이터는, 클록 분배 네트워크, 프로그래머블 인터커넥트 패브릭, 및/또는 디바이스의 프로그래머블 로직 타일 각각 내에서 제공되는 라우팅 리소스를 포함하는(그러나 이들로 제한되지는 않음) 디바이스 내에서 제공되는 다른 적절한 라우팅 리소스를 사용하여 루트 모니터로 라우팅될 수도 있다.
루트 모니터는 네트워크 인터커넥트 시스템을 통해 위성 모니터 각각에 의해 생성되는 디지털 데이터를 수신할 수도 있고, 디지털 데이터를 분석하여 모니터링되고 있는 회로 중 하나 이상이 명시된 동작 범위 내에서 동작하고 있지 않은지의 여부를 결정할 수도 있다. 몇몇 구현예에서, 루트 모니터는 트리밍되고(trimmed) 온도 보상된 기준 전압을 생성할 수도 있고, 네트워크 인터커넥트 시스템은, 트리밍되고 온도 보상된 기준 전압을, 디바이스 전반에 걸쳐 위치되는 위성 모니터 각각으로 분배할 수도 있다.
프로그래머블 디바이스에 걸쳐 분포되는 다양한 회로의 동작 상태를 모니터링하기 위한 종래의 시스템은, 중앙 시스템 모니터 및 모니터링될 회로 근처에 배치되는 복수의 센서를 통상적으로 포함한다. 각각의 센서는 관련된 회로의 동작 상태를 나타내는 아날로그 신호를 생성하고, 아날로그 신호는 디지털 데이터로의 변환을 위해 센서 각각으로부터 시스템 모니터로 라우팅된다. 센서는 통상적으로 디바이스 전반에 걸친 다양한 위치에서 통상적으로 분포되고, 따라서, 센서 중 적어도 일부에 의해 생성되는 아날로그 신호는 디바이스의 큰 부분을 가로질러 시스템 모니터에 도달하도록 라우팅될 수도 있다. 동작 상태를 나타내는 아날로그 신호가 특히 노이즈 및 간섭에 취약할 수도 있기 때문에, 몇몇 프로그래머블 디바이스는, 디지털 데이터로의 변환을 위해, 차폐 속성을 갖는 전용 금속 층 라우팅 리소스를 사용하여 이들 아날로그 신호를 다양한 센서로부터 시스템 모니터로 라우팅할 수도 있다.
그러한 전용 금속 층 라우팅 리소스의 차폐 속성이 신호 저하 및 데이터 손실을 감소시킬 수도 있지만, 전용 금속 층 라우팅 리소스는 비싸고 상당한 양의 디바이스의 금속 층을 소비한다. 또한, 프로그래머블 로직이 다수의 행 또는 열에서 배열되는 복수의 반복 가능한 타일로서 통상적으로 구현되기 때문에, 반복 가능한 타일 각각 내에서 임베딩되는 신호 라우팅 리소스는, (예컨대, 디바이스 밀도가 가장 큰 위치에서 배치될 타일에 대한) 최악의 경우의 라우팅 시나리오에 통상적으로 기초한다. 결과적으로, 반복 가능한 타일 중 많은 것은 신호 라우팅 리소스를 과도하게 갖추게 되는데, 이것은 미사용 라우팅 리소스로 귀결될 수도 있고 및/또는 프로그래머블 디바이스의 확장 가능성(scalability)을 제한할 수도 있다.
본 개시에서 설명되는 주제의 특정한 구현예는 다음의 잠재적인 이점 중 하나 이상을 실현하도록 구현될 수 있다. 다양한 회로의 동작 상태를 모니터링하는 센서에 근접한 프로그래머블 디바이스 전반에 걸친 위치에서 아날로그 대 디지털 변환 성능을 갖는 복수의 위성 모니터를 배치하는 것에 의해, 본원에서 개시되는 모니터링 시스템은, 로컬 위성 모니터를 사용하여, 센서에 의해 생성되는 아날로그 신호를 디지털 데이터로 변환할 수도 있고, 그 다음, 디지털 데이터를 디바이스 전반에 걸친 다양한 위치로부터 루트 모니터로 라우팅한다. 결과적으로, 아날로그 신호는 디바이스의 많은 부분을 가로질러 라우팅되고, 그 다음, 디지털 데이터로 변환되는 것이 아니라, 대신, 디지털 데이터로의 변환을 위해 가장 가까운 위성 모니터로 상대적으로 짧은 거리 송신되는데, 디지털 데이터는, 그 다음, 네트워크 인터커넥트 시스템을 사용하여 루트 모니터로 라우팅된다. 몇몇 양태에서, 위성 모니터에 의해 생성되는 디지털 데이터는 개별적으로 주소 지정 가능한 데이터 패킷으로서 루트 모니터로 라우팅될 수도 있다. 다른 양태에서, 위성 모니터에 의해 생성되는 디지털 데이터는 패킷화되지 않은 데이터로서 루트 모니터로 라우팅될 수도 있다. 루트 모니터에서 아날로그 대 디지털 변환을 수행하는 대신, 센서 주변에 배치되는 위성 모니터를 사용하여 아날로그 신호를 디지털 데이터로 변환하는 것에 의해, 본원에서 개시되는 모니터링 시스템은 금속 층 라우팅 리소스를 필요로 하지 않는데, 이것은, 결국에는, 프로그래머블 디바이스의 확장 가능성을 증가시키면서 비용을 절감할 수도 있다. 또한, 아날로그 대 디지털 변환을 로컬하게(예를 들면, 센서 주변에서) 수행하는 것 및 결과적으로 나타나는 디지털 데이터를 위성 모니터로부터 루트 모니터로 라우팅하는 것은, (디바이스 전반에 걸쳐 배치되는 다양한 센서로부터의 아날로그 신호를 시스템 모니터 내에 제공되는 ADC로 라우팅하는 이전 기술과 비교하여) 더 많은 센서 데이터가 루트 모니터에 의해 수집되고 분석되는 것을 허용할 수도 있는데, 그 이유는, 예를 들면, 프로그래머블 디바이스 전반에 걸쳐 분포되는 ADC가 아날로그 대 디지털 변환을 병렬로(예를 들면, 동시에) 수행할 수도 있기 때문이다.
다음의 설명에서, 본 개시의 완전한 이해를 제공하기 위해 특정한 컴포넌트, 회로, 및 프로세스의 예와 같은 다수의 특정한 세부 사항이 기술된다. 본원에서 사용되는 바와 같은 용어 "커플링되는"은, 직접적으로 커플링되는 것 또는 하나 이상의 개재하는 컴포넌트 또는 회로를 통해 커플링되는 것을 의미한다. 또한, 다음의 설명에서 그리고 예시의 목적을 위해, 특정한 명명법(nomenclature) 및/또는 세부 사항이 예시적인 구현의 완전한 이해를 제공하기 위해 기술된다. 그러나, 이들 특정한 세부 사항은 예시적인 구현예를 실시하는 데 필요하지 않을 수도 있다는 것이 기술 분야에서 통상의 기술을 가진 자에게는 명백할 것이다. 다른 예에서, 널리 공지된 회로 및 디바이스는 본 개시를 모호하게 하는 것을 방지하기 위해 블록도 형태로 도시된다. 본원에서 설명되는 다양한 버스를 통해 제공되는 신호 중 임의의 것은 다른 신호와 시간 다중화될 수도 있고 하나 이상의 공통 버스를 통해 제공될 수도 있다. 추가적으로, 회로 엘리먼트 또는 소프트웨어 블록 사이의 상호 접속부(interconnection)는 버스 또는 단일의 신호 라인으로서 나타내어질 수도 있다. 버스 각각은 대안적으로 단일의 신호 라인일 수도 있고, 단일의 신호 라인 각각은 대안적으로 버스일 수도 있으며, 단일의 라인 또는 버스는 컴포넌트 사이의 통신을 위한 무수한 물리적 또는 논리적 메커니즘 중 임의의 하나 이상을 나타낼 수도 있다. 예시적인 구현예는 본원에서 설명되는 특정한 예로 제한되는 것으로 해석되어서는 안 되며, 오히려 첨부된 청구범위에 의해 정의되는 모든 구현예를 그들의 범위 내에서 포함하는 것으로 해석되어야 한다.
도 1은 본 개시의 다양한 양태가 구현될 수도 있는 예시적인 프로그래머블 디바이스(100)의 블록도를 도시한다. 디바이스(100)는, 예를 들면, 프로그래머블 로직(programmable logic; PL)(110), 네트워크 인터커넥트 시스템(120), 프로세싱 및 관리 리소스(processing and management resource; PMR)(130), CCIX 및 PCIe 모듈(CCIX and PCIe Module; CPM)(140), 트랜스시버 블록(150), 입력/출력(input/output; I/O) 블록(160), 메모리 컨트롤러(170), 구성 로직(180), 루트 모니터(190), 복수의 위성 모니터(192(1)-192(19)), 및 다수의 센서(S)와 같은 다수의 서브시스템을 포함할 수도 있다. 하나 이상의 구현예에서, 디바이스(100)는 도 1에서 도시되지 않은 다른 서브시스템 또는 컴포넌트를 포함할 수도 있다. 게다가, 간략화를 위해 도시되지는 않지만, 디바이스(100)는 다수의 주변장치 컴포넌트(예컨대 고성능 메모리 디바이스) 및/또는 다른 디바이스 또는 칩(예컨대, 다른 프로그래머블 디바이스)에 커플링될 수도 있다.
PL(110)은 다수의 상이한 유저 정의 기능 또는 동작을 수행하도록 구성 또는 프로그래밍될 수도 있는 프로그래머블 회로부를 포함한다. 몇몇 구현예에서, PL(110)은, 예를 들면, 도 1에서 묘사되는 바와 같이, 프로그래머블 디바이스(100)의 열(column)에서 배열되는 반복 가능한 타일로서 구현되는 복수의 프로그래머블 회로 블록을 포함할 수도 있다. 프로그래머블 패브릭 하위 영역(programmable fabric sub-region; FSR)으로도 또한 지칭될 수도 있는 프로그래머블 회로 블록 각각은, 프로그래머블 인터커넥트 회로부 및 프로그래머블 로직 회로부를 포함할 수도 있다. 몇몇 구현예에서, 프로그래머블 회로 블록은 구성 가능한 로직 블록(CLB), 랜덤 액세스 메모리 블록(BRAM), 디지털 신호 프로세싱 블록(DSP), 클록 매니저, 지연 잠금 루프(delay lock loop; DLL), 및/또는 유저 명시 회로 설계를 구현하도록 프로그래밍되거나 또는 구성될 수 있는 다른 로직 또는 회로를 포함할 수도 있다(그러나 이들로 제한되지는 않는다).
프로그래머블 회로 블록 또는 타일 각각 내의 프로그래머블 인터커넥트 회로부는 프로그래머블 인터커넥트 포인트(programmable interconnect point; PIP)에 의해 인터커넥트되는 다양한 길이의 복수의 인터커넥트 배선을 포함할 수도 있다. 인터커넥트 배선은, 특정한 프로그래머블 타일 내의 컴포넌트 사이에서, 상이한 프로그래머블 타일 내의 컴포넌트 사이에서, 그리고 프로그래머블 타일의 컴포넌트와 다른 서브시스템 또는 디바이스 사이에서 연결성을 제공하도록 구성될 수도 있다. 프로그래머블 인터커넥트 회로부 및 프로그래머블 회로 블록은, 대응하는 유저 명시 회로 설계를 구현하기 위해 프로그래머블 엘리먼트가 어떻게 구성되고 동작하는지를 정의하는 구성 데이터를 구성 레지스터에 로딩하는 것에 의해 프로그래밍되거나 또는 구성될 수도 있다. 몇몇 양태에서, 다수의 프로그래머블 회로 블록 각각 내의 프로그래머블 인터커넥트 회로부는 디바이스(100)에 대한 블록 레벨 및/또는 디바이스 레벨 신호 라우팅 리소스를 제공하는 프로그래머블 인터커넥트 패브릭(간략화를 위해 도시되지 않음)의 일부를 형성할 수도 있다.
디바이스(100)의 일부로서 제조될 수도 있는 네트워크 인터커넥트 시스템(120)은, 다양한 디바이스 리소스(예컨대 PL(110), PMR(130), CPM(140), 트랜스시버 블록(150), I/O 블록(160), 메모리 컨트롤러(170), 구성 로직(180), 루트 모니터(190), 및 위성 모니터(192(1)-192(19)))를 서로 그리고 간략화를 위해 도시되지 않은 다른 컴포넌트와 선택적으로 인터커넥트할 수 있는 고속, 고대역폭 프로그래머블 신호 라우팅 네트워크를 구현하기 위해 함께 연결되는 임의의 수의 수평 세그먼트 및 수직 세그먼트(및/또는 대각선 세그먼트)를 포함할 수도 있다. 도 1의 예시적인 구현예의 경우, 네트워크 인터커넥트 시스템(120)은 두 개의 수평 세그먼트 및 네 개의 수직 세그먼트를 포함하는 것으로 도시되어 있다. 디바이스(100)의 폭을 가로질러 연장되는 제1 수평 세그먼트는 디바이스(100)의 저부 경계(bottom boundary)를 따라 배치되고, 디바이스(100)의 폭을 가로질러 연장되는 제2 수평 세그먼트는 디바이스(100)의 상단 경계(top boundary)를 따라 배치된다. 네 개의 수직 세그먼트는 디바이스(100)의 높이를 가로질러 연장되고 네트워크 인터커넥트 시스템(120)의 제1 및 제2 수평 세그먼트에 연결된다. 몇몇 양태에서, 수평 세그먼트는 네트워크 인터커넥트 시스템(120)이 임의의 개재하는 회로 또는 인터페이스 없이 I/O 블록(160) 및 메모리 컨트롤러(170)와 신호 및 데이터를 교환하는 것을 허용할 수도 있고, 수직 세그먼트는 네트워크 인터커넥트 시스템(120)이 임의의 개재하는 회로 또는 인터페이스 없이 트랜스시버 블록(150), 프로세싱 및 관리 리소스(PMR)(130), 및 CPM(140)과 신호 및 데이터를 교환하는 것을 허용할 수도 있다. 다른 구현예에서, 네트워크 인터커넥트 시스템(120)은 다른 수의 수평 및 수직 세그먼트를 포함할 수도 있는데, 이들은, 결국에는, 디바이스(100)의 다른 위치를 점유할 수도 있다. 따라서, 도 1에서 묘사되는 예시적인 네트워크 인터커넥트 시스템(120)의 특정한 레이아웃, 형상, 사이즈, 방위, 및 다른 물리적 특성은, 단지, 본원에서 개시되는 다양한 구현예의 예시에 불과하다.
네트워크 인터커넥트 시스템(120)은, 개별적으로 주소 지정될 수 있고 소스 위치로부터 목적지 위치로 라우팅될 수도 있는 데이터 패킷으로서 다양한 디바이스 리소스 사이에서 정보를 송신하도록 구성될 수도 있다. 몇몇 양태에서, 네트워크 인터커넥트 시스템(120) 상에서 송신되는 데이터 패킷은 동적으로 주소 지정 가능할 수도 있다. 하나 이상의 구현예에서, 네트워크 인터커넥트 시스템(120)은 적절한 데이터 패킷 프로토콜(예컨대 토큰 링 프로토콜)을 활용할 수도 있고 및/또는 메모리 매핑된 어드레스를 사용하여 임의의 수의 소스 위치로부터 임의의 수의 목적지 위치로 데이터 패킷을 라우팅할 수도 있다. 데이터 패킷은, 데이터 패킷을 그들의 표시된 목적지로 라우팅하기 위해 네트워크 인터커넥트 시스템(120)에 의해 사용될 수 있는 헤더 정보(예컨대 소스 어드레스, 목적지 어드레스, 및 프로토콜 정보)를 포함할 수도 있다.
몇몇 구현예에서, 데이터 패킷은, 네트워크 인터커넥트 시스템(120)을 통한 데이터 패킷의 송신이, 예를 들면, 할당된 우선 순위, 트래픽 타입, 트래픽 흐름, 및/또는 다른 기준에 기초하여, 우선 순위화되는 것을 허용하는 서비스 품질(Quality-of-Service; QoS) 정보를 포함할 수도 있다. 그러한 구현예에서, 네트워크 인터커넥트 시스템(120)은, 수신된 데이터 패킷의 우선 순위 레벨 또는 트래픽 클래스를 결정할 수 있는, 그리고 송신을 위해 데이터 패킷을 큐잉할 때 결정된 우선 순위 레벨 또는 트래픽 클래스를 사용할 수 있는 우선 순위 로직을 포함할 수도 있다. 개별적으로 주소 지정 가능한 데이터 패킷으로서 다양한 디바이스 리소스 사이에서 정보를 송신하는 것에 의해, 네트워크 인터커넥트 시스템(120)은 특정한 유저 명시 회로 설계와 무관하게, 다양한 디바이스 리소스 사이에서 연결성을 제공할 수도 있고, 그에 의해, (종래의 프로그래머블 디바이스와 비교하여) 디바이스(100)의 신호 라우팅 성능을 크게 증가시킬 수도 있다. 예를 들면, 디바이스(100)의 프로그래머블 인터커넥트 패브릭 및 다른 타일 기반의 신호 라우팅 구조물이 명시된 회로 사이에서 점대점(point-to-point) 신호 연결을 제공하도록 통상적으로 구성되지만, 네트워크 인터커넥트 시스템(120)은 복수의 데이터 패킷 각각을 임의의 소스 어드레스로부터 디바이스(100) 상의 임의의 목적지 어드레스로 동시에 라우팅할 수도 있고, 그에 의해, 디바이스(100)에 대한 시스템 레벨 연결성을 제공한다.
간략화를 위해 도시되지는 않지만, 네트워크 인터커넥트 시스템(120)은 스케줄러 및 중재(arbitration) 로직을 또한 포함할 수도 있다. 스케줄러는, 네트워크 인터커넥트 시스템(120)의 하나 이상의 물리적 및/또는 가상 채널을 사용하여 소스 어드레스로부터 목적지 어드레스로의 데이터 패킷의 송신을 스케줄링하기 위해 사용될 수도 있다. 중재 로직은, 예를 들면, 충돌 및 다른 경쟁 관련 레이턴시를 최소화하기 위해, 네트워크 인터커넥트 시스템(120)에 대한 액세스를 중재하기 위해 사용될 수도 있다. 디바이스(100)가 적층형 실리콘 인터커넥트(stacked silicon interconnect; SSI) 기술을 사용하여 제조되는 구현예의 경우, 네트워크 인터커넥트 시스템(120)의 열 부분은, 예를 들면, 구성 데이터가 마스터와 슬레이브(SLR) 사이에서 라우팅되는 것을 허용하기 위해, 인접한 수퍼 로직 영역(super logic region; SLR) 사이에서 신호 연결을 제공할 수도 있다.
네트워크 인터커넥트 시스템(120)은, 네트워크 인터커넥트 시스템(120) 내의 또는 그와 관련되는 다양한 스위치, 인터페이스, 및 라우터가 특정한 유저 명시 회로 설계를 구현하기 위해 어떻게 구성되는지를 정의하는 구성 데이터를 대응하는 구성 레지스터에 로딩하는 것에 의해 프로그래밍될 수도 있다. 몇몇 구현예에서, 네트워크 인터커넥트 시스템(120)은, 네트워크 인터커넥트 시스템(120)과 디바이스(100)의 다양한 리소스, 서브시스템, 회로, 및 다른 컴포넌트 사이에서 선택적 연결성을 제공하는 복수의 노드, 포트, 또는 다른 인터페이스(간략화를 위해 도시되지 않음)를 포함할 수도 있다. 예를 들면, 네트워크 인터커넥트 시스템(120)은 디바이스(100)의 다수의 서브시스템이 온칩 메모리(on-chip memory; OCM) 리소스, 프로세싱 리소스, I/O 리소스, 및/또는 트랜스시버 블록(150)에 대한 액세스를 공유하는 것을 허용할 수도 있다. 네트워크 인터커넥트 시스템(120)의 노드, 포트, 또는 다른 인터페이스는, 구성 데이터를 다수의 관련된 구성 레지스터에 로딩하는 것에 의해, 특정한 연결성 프로파일을 구현하도록 프로그래밍될 수도 있다.
많은 양의 데이터를 요구하고 사용할 수 있는 디바이스(100)의 다양한 리소스, 서브시스템, 회로, 및 다른 컴포넌트를 선택적으로 인터커넥트하는 것에 의해, 네트워크 인터커넥트 시스템(120)은 로컬 인터커넥트 리소스에 대한 신호 라우팅 부담을 완화할 수도 있고, 그에 의해, 디바이스 성능을 증가시킬 수도 있고 다른 프로그래머블 디바이스보다 더 큰 구성 유연성을 허용할 수도 있다. 또한, 디바이스 레벨 및 블록 레벨 프로그래머블 인터커넥트보다 더 높은 데이터 송신 레이트와 더 낮은 에러율을 갖는 고성능 신호 라우팅 네트워크를 제공하는 것에 의해, 네트워크 인터커넥트 시스템(120)은 (다른 프로그래머블 디바이스와 비교하여) 디바이스(100)의 프로세싱 파워 및 데이터 스루풋을 증가시킬 수도 있다.
프로세싱 및 관리 리소스(PMR)(130)는 디바이스(100)에 대한 전용 데이터 프로세싱 성능 및 플랫폼 관리 리소스를 제공할 수도 있다. PMR(130)은, 도 2와 관련하여 더욱 상세하게 설명되는 바와 같이, 프로세싱 시스템(processing system; PS) 및 플랫폼 관리 컨트롤러(platform management controller; PMC)를 포함할 수도 있다. 몇몇 구현예에서, PS는 다수의 프로세서 코어, 캐시 메모리, 메모리 컨트롤러, 및 디바이스(100)의 I/O 핀에 직접적으로 커플링하도록 구성 가능한 단방향 및/또는 양방향 인터페이스를 포함할 수도 있다. 몇몇 양태에서, 각각의 프로세서 코어는, 순차 데이터 프로세싱을 위해 사용될 수 있는 중앙 프로세싱 유닛(CPU) 또는 스칼라(scalar) 프로세서를 포함할 수도 있다. PMC는 외부 메모리로부터 제공되는 구성 데이터(예컨대 구성 비트스트림)에 기초하여 디바이스(100)를 부팅 및 구성하기 위해 사용될 수도 있다. PMC는 PL(110)을 구성하기 위해 그리고 디바이스(100)의 다양한 암호화, 인증, 루트 모니터링, 및 디버그 성능을 제어하기 위해 또한 사용될 수도 있다.
CCIX 및 PCIe 모듈(CPM)(140)은 디바이스(100)와 다수의 주변장치 컴포넌트(예컨대 외부 디바이스 또는 칩) 사이에서 연결성을 제공하는 다수의 인터페이스를 포함할 수도 있다. 몇몇 구현예에서, CPM(140)은, 트랜스시버 블록(150)을 통해 다른 디바이스 또는 칩에 대한 연결성을 제공하는 다수의 주변장치 인터커넥트 익스프레스(peripheral interconnect express; PCIe) 인터페이스 및 가속기에 대한 캐시 코히어런트 인터커넥트(cache coherent interconnect for accelerator; CCIX) 인터페이스를 포함할 수도 있다. 몇몇 양태에서, PCIe 및 CCIX 인터페이스는 트랜스시버 블록(150)의 일부로서 구현될 수도 있다. CPM(140)의 하나의 예시적인 구현예가 도 2와 관련하여 설명된다.
트랜스시버 블록(150)은 디바이스(100)에 연결되는 하나 이상의 다른 디바이스 또는 칩(간략화를 위해 도시되지 않음)과의 신호 연결을 제공할 수도 있다. 트랜스시버 블록(150)은, 예를 들면, 기가비트 직렬 트랜스시버(gigabit serial transceiver; GT)와 같은 다수의 상이한 직렬 트랜스시버를 포함할 수도 있다. 몇몇 구현예에서, 트랜스시버 블록(150)은, 도 1에서 묘사되는 바와 같이, 디바이스(100)의 우측 및 좌측을 따라 다양한 위치에서 배치되는 다수의 반복 가능한 타일로서 구현될 수도 있다. 다른 구현예에서, 트랜스시버 블록(150)은 디바이스(100)의 다른 적절한 위치에서 배치될 수도 있다. 하나 이상의 구현예에서, 트랜스시버 블록(150) 각각은 하나 이상의 관련된 전압 공급부(간략화를 위해 도시되지 않음)에 커플링될 수도 있다. 몇몇 양태에서, 주어진 트랜스시버 블록(150) 내의 트랜스시버 회로 각각의 뱅크는, 예를 들면, 트랜스시버 회로 각각의 뱅크가 별개의 전압 공급부를 사용하여 전력을 공급받을 수도 있도록, 대응하는 전압 공급부를 포함할 수도 있거나 또는 그것에 커플링될 수도 있다.
I/O 블록(160)은 디바이스의 I/O 핀(간략화를 위해 도시되지 않음)에 커플링되고, 디바이스(100)에게 I/O 성능을 제공할 수도 있다. 예를 들면, I/O 블록(160)은 하나 이상의 다른 디바이스로부터 데이터를 수신할 수도 있고, 수신된 데이터를 디바이스(100) 내의 다수의 목적지로 유도할 수도 있다. I/O 블록(160)은 디바이스(100)의 다수의 소스로부터 데이터를 또한 수신할 수도 있고, 수신된 데이터를 디바이스의 I/O 핀을 통해 하나 이상의 다른 디바이스로 유도할 수도 있다. 몇몇 구현예에서, I/O 블록(160)은 반복 가능한 타일로서 구현될 수도 있다. 디바이스(100)는 임의의 적절한 수의 I/O 블록(160)을 포함할 수도 있고, 따라서, 도 1에서 묘사되는 예시적인 구현예는 단지 예시에 불과하다.
I/O 블록(160)은 임의의 수의 적절한 I/O 회로 또는 디바이스를 포함할 수도 있다. 몇몇 구현예에서, I/O 블록(160)은 초고성능 I/O(extremely high-performance I/O; XPIO) 회로, 고밀도 I/O(high-density I/O; HDIO) 회로, 및 다중화된 I/O(multiplexed I/O; MIO) 회로를 포함할 수도 있다. XPIO 회로는, 예컨대 메모리 컨트롤러(170)에 고속, 저레이턴시 인터페이스를 제공하는 고성능 통신을 위해 최적화될 수도 있다. 하나 이상의 구현예에서, XPIO 회로는 메모리 컨트롤러(170)를 사용하지 않고도 디바이스(100)의 다른 서브시스템에 의해 액세스될 수 있는 전용 메모리 리소스를 포함할 수도 있다. HDIO 회로는 (XPIO 회로와 비교하여) 더 늦은 속도 및 더 높은 전압 I/O 성능을 지원하는 비용 효율적인 솔루션을 제공할 수도 있다. MIO 회로는, 예를 들면, PL(110), PMR(130), 및 CPM(140)과 같은 다양한 서브시스템에 의해 액세스될 수 있는 범용 I/O 리소스를 제공할 수도 있다.
메모리 컨트롤러(170)는 디바이스(100) 내에서 및/또는 외부에서 제공되는 다양한 메모리 리소스에 대한 액세스를 제어하기 위해 사용될 수도 있다. 몇몇 구현예에서, 메모리 컨트롤러(170)는 I/O 블록(160) 중 하나 이상에서 상주하는 전용 메모리에 액세스하기 위해 사용될 수도 있다. 메모리 컨트롤러(170)는 더블 데이터 레이트 v4(double data rate v4; DDR4) 메모리 컨트롤러, 고 대역폭 메모리(high bandwidth memory; HBM) 컨트롤러, 및/또는 다른 적절한 메모리 컨트롤러를 포함할 수도 있다. 하나 이상의 구현예에서, 메모리 컨트롤러(170)의 일부 또는 모두는, 메모리 액세스 효율성을 향상시킬 수도 있는 트랜잭션 재정렬 성능을 갖는 스케줄러를 포함할 수도 있다. 추가적으로, 또는 대안적으로, 메모리 컨트롤러(170)를 구현하는 반복 가능한 타일은 서로 상이할 수도 있다. 예를 들면, 제1 개수의 메모리 컨트롤러(170)가 DDR4 메모리 컨트롤러를 구현할 수도 있고, 제2 개수의 메모리 컨트롤러(170)가 LPDDR4 메모리 컨트롤러를 구현할 수도 있고, 제3 개수의 메모리 컨트롤러(170)가 HBM 컨트롤러를 구현할 수도 있다.
디바이스(100)는 임의의 수의 I/O 블록(160) 및 메모리 컨트롤러(170)를 포함할 수도 있고, 따라서, 도 1에서 묘사되는 I/O 블록(160) 및 메모리 컨트롤러(170)의 수 및 위치는 단지 예시에 불과하다. 몇몇 구현예에서, 제1 행의 I/O 블록(160) 및 메모리 컨트롤러(170)이 디바이스(100)의 저부 에지를 따라 배치되는 반복 가능한 타일로서 구현될 수도 있고,제2 행의 I/O 블록(160) 및 메모리 컨트롤러(170)가 디바이스(100)의 상단 에지를 따라 배치되는 반복 가능한 타일로서 구현될 수도 있다. 몇몇 구현예에서, I/O 블록(160) 및 메모리 컨트롤러(170)는, 예를 들면, 도 1의 예에서 묘사되는 바와 같이, 서로에 대해 교대로 배치되거나 또는 분포될 수도 있다. 다른 구현예에서, 한 쌍의 I/O 블록(160) 및 메모리 컨트롤러(170)이 동일한 반복 가능한 타일 내에서 구현될 수도 있다.
몇몇 구현예에서, 디바이스(100)의 저부를 따라 배치되는 제1 행의 I/O 블록(160) 및 메모리 컨트롤러(170)는 네트워크 인터커넥트 시스템(120)의 제1 수평 세그먼트에 커플링될 수도 있고, 디바이스(100)의 상단을 따라 배치되는 제2 행의 I/O 블록(160) 및 메모리 컨트롤러(170)는 네트워크 인터커넥트 시스템(120)의 제2 수평 세그먼트에 커플링될 수도 있다. 이러한 방식으로, 네트워크 인터커넥트 시스템(120)은 디바이스(100)의 프로그래머블 리소스와 자신의 I/O 핀(간략화를 위해 도시되지 않음) 사이에서 연결성을 제공할 수도 있다.
몇몇 구현예에서, 디바이스(100)는 디바이스(100)의 높이를 가로질러 수직으로 연장되며 트랜스시버 블록(150) 부근에서 배치되는 연결성 패브릭(간략화를 위해 도시되지 않음)의 하나 이상의 열을 포함할 수도 있다. 연결성 패브릭은, USB 컨트롤러, 이더넷 MAC, 다중 레이트(multi-rate; MR) 이더넷 MAC(MR Ethernet MAC; MRMAC), PCIe 컨트롤러, CCIX 컨트롤러, 및/또는 트랜스시버 블록(150)과 PL(110) 사이에서 연결성을 제공하기 위한 다른 컴포넌트를 포함하는(그러나 이들로 제한되지는 않음) 다수의 하드웨어에 내장된(hard-wired) 회로를 포함할 수도 있다.
구성 로직(180)은 외부 메모리로부터 구성 데이터(예컨대, 구성 비트스트림)를 로딩하기 위해 그리고 디바이스(100)의 다양한 프로그래머블 리소스가 어떻게 구성되는지를 정의하는 구성 데이터의 일부(예컨대, 프레임, 워드, 바이트, 및/또는 비트)를 적절한 구성 레지스터로 라우팅하기 위해 사용될 수도 있다. 구성 로직(180)은 디바이스(100)를 부분적으로 재구성하기 위해 및/또는 디바이스(100)의 하나 이상의 부분을 내부적으로 재구성하기 위해 또한 사용될 수도 있다. 몇몇 구현예에서, 구성 로직(180)은 구성 레지스터, 경계 스캔 테스트 회로부(예컨대 TAP 컨트롤러 회로부), 디바이스(100)로부터 판독되는 구성 데이터의 비트스트림을 암호화하기 위한 암호화 회로부, 및 디바이스(100)로 로딩되는 구성 데이터의 비트스트림을 암호 해제하기 위한 암호 해제 회로부를 포함할 수도 있다.
간략화를 위해 도시되지는 않지만, 디바이스(100)는 프로그래머블 패브릭과 디바이스(100)의 경계 상에 배치되는 I/O 블록(160) 및 메모리 컨트롤러(170)의 행 각각 사이에서 인터페이스를 포함할 수도 있다. 본원에서 경계 로직 인터페이스(Boundary Logic Interface; BLI)로서 지칭될 수도 있는 이 인터페이스는, 크고 복잡한 외부 디바이스(예컨대, HBM)가 디바이스(100)의 프로그래머블 패브릭에서 훨씬 더 작은 블록(예컨대, CLB)으로서 나타나는 것을 허용할 수도 있다. 몇몇 구현예에서, BLI는 프로그래머블 패브릭의 상단 및 저부 경계 또는 에지에 배치되는 행에서 배열될 수도 있다. 이러한 방식으로, BLI는 원주형(columnar) 로직 구조물(예컨대 CLB 열 또는 DSP 열)과 I/O 리소스(예컨대 I/O 블록(160))의 행 사이에서 신호를 라우팅하기 위해 사용될 수도 있다.
본 개시의 다양한 양태에 따르면, 프로그래머블 디바이스(100)는, 예를 들면, 선택된 회로가 명시된 동작 파라미터 내에서 동작하는 것을 보장하기 위해, 프로그래머블 디바이스(100) 전반에 걸쳐 제공되는 복수의 선택된 회로의 하나 이상의 동작 상태를 모니터링할 수 있는 모니터링 시스템을 포함할 수도 있다. 본원에서 개시되는 모니터링 시스템은, 예를 들면, 온도, 전압 레벨, 및 전류 레벨을 포함하는 선택된 회로의 임의의 적절한 동작 상태를 측정할 수도 있다. 본원에서 사용될 때, 용어 "선택된 회로"는, 디바이스(100)의 적절한 동작을 보장하기 위해 하나 이상의 동작 상태를 모니터링하기 위해 선택될 수 있는 임의의 회로, 컴포넌트, 공급 전압, 구조물, 또는 디바이스를 지칭할 수도 있다. 몇몇 구현예에서, 모니터링 시스템은, 선택된 회로 중 하나 이상 것의 측정된 동작 상태가 동작 상태의 명시된 범위 내에 속하지 않는 경우 알람(또는 다수의 알람)를 생성할 수도 있다. 몇몇 양태에서, 알람은 디바이스(100)의 다수의 회로 또는 컴포넌트의 전력을 차단하기 위해 사용될 수도 있다. 다른 양태에서, 알람은 전체 디바이스(100)의 전력을 차단하기 위해 사용될 수도 있다.
모니터링 시스템은 루트 모니터(190), 위성 모니터(192(1)-192(19)), 센서(S), 및 네트워크 인터커넥트 시스템(120)의 적어도 일부를 포함할 수도 있다(또는 이들에 의해 형성될 수도 있다). 루트 모니터(190)는 네트워크 인터커넥트 시스템(120)에 커플링되고, 기준 전압을 생성하도록 구성되는 회로부를 포함할 수도 있다. 루트 모니터(190)에 의해 생성되는 기준 전압은, 아날로그 대 디지털 변환에 적절한 트리밍되고 온도 보상된 전압일 수도 있다. 몇몇 구현예에서, 루트 모니터(190)는, 예를 들면, 도 1에서 묘사되는 바와 같이, 디바이스(100)의 프로세서 시스템 내에 배치될 수도 있다. 다른 구현예에서, 루트 모니터(190)는 디바이스(100)의 다른 적절한 위치에 배치될 수도 있다.
기준 전압은 네트워크 인터커넥트 시스템(120)을 통해 위성 모니터(192(1)-192(19)) 각각으로 분배될 수도 있고, 그에 의해, 위성 모니터(192(1)-192(19)) 각각에 기준 전압을 제공하기 위해 디바이스(100)에 걸쳐 다양한 위치에서 다수의 전압 생성기를 배치할 필요성을 제거할 수도 있다. 몇몇 구현예에서, 네트워크 인터커넥트 시스템(120)은 기준 전압을 루트 모니터(190)로부터 위성 모니터(192(1)-192(19)) 각각으로 분배하기 위한 하나 이상의 아날로그 채널을 포함할 수도 있고, 디지털 데이터를 위성 모니터(192(1)-192(19))로부터 루트 모니터(190)로 선택적으로 라우팅하기 위한 하나 이상의 디지털 채널을 포함할 수도 있다.
센서(S)는, 선택된 회로 중 적어도 하나의 하나 이상의 동작 상태를 나타내는 전기 신호를 생성할 수 있는 임의의 적절한 감지 회로 또는 디바이스일 수도 있으며, 온도 센서, 전압 센서, 및/또는 전류 센서를 포함할 수도 있다(그러나 이들로 제한되지는 않는다). 몇몇 구현예에서, 각각의 센서(S)는 하나 이상의 선택된 회로의 동작 상태를 측정할 수도 있고, 측정된 동작 상태를 나타내는 아날로그 신호를 위성 모니터(192(1)-192(19)) 중 대응하는 하나에 제공할 수도 있다.
위성 모니터(192(1)-192(19))는 센서(S)에 의해 생성되는 아날로그 신호를 선택된 회로의 측정된 동작 상태를 나타내는 디지털 데이터로 변환할 수 있는 임의의 적절한 회로 또는 디바이스일 수도 있다. 간략화를 위해 도 1에서 도시되지는 않지만, 몇몇 구현예에서, 위성 모니터(192(1)-192(19)) 각각은 적어도 아날로그 대 디지털 컨버터(ADC) 및 메모리를 포함할 수도 있다. 아날로그 신호를 디지털 데이터로 변환할 수 있는 임의의 적절한 회로일 수도 있는 ADC는, 다수의 관련된 센서(S)에 의해 생성되는 아날로그 신호를 수신하기 위한 하나 이상의 입력, 관련된 센서(S)에 의해 측정되는 동작 상태를 나타내는 디지털 데이터를 제공하기 위한 하나 이상의 출력, 및 로컬 기준 전압을 수신하기 위한 하나 이상의 기준 단자를 포함할 수도 있다. 몇몇 구현예에서, 로컬 기준 전압은 루트 모니터에 의해 생성되며 네트워크 인터커넥트 시스템(120)에 의해 위성 모니터(192(1)-192(19))로 분배되는 기준 전압에 적어도 부분적으로 기초할 수도 있다. 메모리는 ADC에 의해 생성되는 디지털 데이터를 저장할 수도 있고, 루트 모니터로의 라우팅을 위해 디지털 데이터를 네트워크 인터커넥트 시스템(120)에 제공할 수도 있다.
센서(S) 및 위성 모니터(192(1)-192(19))는 프로그래머블 디바이스(100) 전반에 걸쳐 분포될 수도 있고, 예를 들면, 선택된 회로의 동작 상태를 나타내는 아날로그 신호가 (중앙 허브로 송신되고, 그 다음, 디지털 데이터로 변환되기 보다는) 다양한 분포된 위치에서 디지털 신호로 변환될 수도 있도록, 선택된 회로 근처의 다양한 위치에서 배치될 수도 있다. 몇몇 구현예에서, 센서(S) 각각은, 예를 들면, 센서(S) 및 대응하는 선택된 회로가 로컬 신호 라인을 사용하여 함께 커플링될 수도 있도록, 대응하는 선택된 회로의 부근에서 배치될 수도 있다. 유사하게, 위성 모니터(192(1)-192(19)) 각각은, 예를 들면, 위성 모니터(192) 및 하나 이상의 관련된 센서(S)가 로컬 신호 라인을 사용하여 함께 커플링될 수도 있도록, 하나 이상의 관련된 센서(S) 부근에서 배치될 수도 있다. 몇몇 양태에서, 본원에서 사용되는 바와 같은 용어 "부근"은 동작 상태를 나타내는 아날로그 신호가 최소의 신호 열화를 가지고 상대적으로 짧은 로컬 신호 배선을 통해 송신될 수 있는 거리를 지칭할 수도 있다.
도 1의 예의 경우, 트랜스시버 블록(150) 내에 위치되는 제1 그룹의 센서(S)는 트랜스시버 블록(150)과 관련되는 전압 공급부(간략화를 위해 도시되지 않음)의 각각의 부근에서 배치될 수도 있고, 제1 그룹의 위성 모니터(192(1)-192(6))은, 예를 들면, 제1 그룹의 센서(S) 각각이 대응하는 공급 전압에 그리고 상대적으로 짧은 로컬 신호 배선에 의해 대응하는 위성 모니터(190)에 커플링될 수도 있도록, 제1 그룹의 센서(S)의 부근에서 배치될 수도 있다. 몇몇 구현예에서, 제1 그룹의 센서(S) 각각은 대응하는 전압 공급부의 하나 이상의 동작 상태를 나타내는 아날로그 신호를 생성하도록 구성될 수도 있고, 제1 그룹의 위성 모니터(192(1)-192(6)) 각각은 관련된 센서(S)에 의해 생성되는 아날로그 신호를 네트워크 인터커넥트 시스템(120)을 통해 루트 모니터(190)로 송신될 수 있는 디지털 데이터로 변환하도록 구성될 수도 있다.
PL(110) 내에 배치되는 제2 그룹의 센서(S)는 PL(110) 내의 또는 PL(110)과 관련되는 다수의 대응하는 선택된 회로(간략화를 위해 도시되지 않음)의 부근에서 배치될 수도 있고, 제2 그룹의 위성 모니터(192(7)-192(19))는, 예를 들면, 제2 그룹의 센서(S) 각각이 대응하는 선택된 회로에 그리고 상대적으로 짧은 로컬 신호 배선에 의해 제2 그룹의 위성 모니터(192(7)-192(19)) 중 대응하는 하나에 커플링될 수도 있도록, 제2 그룹의 센서(S)의 부근에 배치될 수도 있다. 몇몇 구현예에서, 제2 그룹의 센서(S) 각각은 대응하는 선택된 회로의 하나 이상의 동작 상태를 나타내는 아날로그 신호를 생성하도록 구성될 수도 있고, 제2 그룹의 위성 모니터(192(7)-192(19)) 각각은 관련된 센서(S)에 의해 생성되는 아날로그 신호를 네트워크 인터커넥트 시스템(120)을 통해 루트 모니터(190)로 송신될 수 있는 디지털 데이터로 변환하도록 구성될 수도 있다.
위성 모니터(192(1)-192(19)) 각각은 로컬 신호 라인에 의해 임의의 적절한 수의 센서(S)에 커플링될 수도 있다. 하나의 예의 경우, 위성 모니터(192(1))는 트랜스시버 블록(150) 내에 배치되는 단일의 센서(S)에 커플링될 수도 있고, 트랜스시버 블록(150)과 관련되는 대응하는 전압 공급부의 하나 이상의 동작 상태를 나타내는 디지털 신호를 생성할 수도 있다. 다른 예의 경우, 위성 모니터(192(16))는 PL(110) 내에 배치되는 두 개의 센서(S)에 커플링될 수도 있고, PL(110) 내에 배치되는 두 개의 센서(S)와 관련되는 선택된 회로의 하나 이상의 동작 상태를 나타내는 디지털 신호를 생성할 수도 있다. 다른 예의 경우, 위성 모니터(192(17))는 PL(110) 내에 배치되는 네 개의 센서(S)에 커플링될 수도 있고, PL(110) 내에 배치되는 네 개의 센서(S)와 관련되는 선택된 회로의 하나 이상의 동작 상태를 나타내는 디지털 신호를 생성할 수도 있다. 게다가, 도 1에서는 18 개의 위성 모니터(192(1)-192(19))를 포함하는 것으로 도시되지만, 프로그래머블 디바이스(100)는 프로그래머블 디바이스(100)의 다른 적절한 위치에 배치되는 다른 수의 위성 모니터(192)를 포함할 수도 있다.
상기에서 설명되는 바와 같이, 위성 모니터(192(1)-192(19))는, 중앙 시스템 모니터를 사용하여 디지털 데이터로의 변환을 위해 상대적으로 먼 거리에 걸쳐 아날로그 신호를 송신하기 보다는, 센서(S) 각각이 상대적으로 짧은 로컬 신호 배선을 사용하여 대응하는 위성 모니터(192)에 커플링될 수도 있도록 센서(S)에 충분히 가깝게 배치될 수도 있다. 이러한 방식으로, 본원에서 개시되는 모니터링 시스템의 구현예는 디지털 데이터로의 변환을 위해 이들 아날로그 신호를 디바이스(100) 전반에 걸쳐 분포되는 다양한 위치로부터 중앙 모니터로 라우팅하기 위한 금속 층 신호 라우팅 리소스에 대한 필요성을 제거할 수도 있는데, 이것은 디바이스 복잡도 및 비용을 감소시킬 수도 있고, 또한, 동시에 모니터링 시스템의 확장 가능성을 증가시킬 수도 있다. 또한, 아날로그 센서 데이터의 아날로그 대 디지털 변환을 수행하기 위해 디바이스(100) 전반에 걸쳐 분포되는 복수의 위성 모니터(192(1)-192(19))를 사용하는 것 및, 그 다음, 분석을 위해 디지털 데이터를 루트 모니터(190)로 라우팅하는 것에 의해, 동시에 측정될 수 있는 센서의 수는 위성 모니터 내에서 제공되는 ADC의 입력 채널의 수에 의해 제한되지 않는다. 대조적으로, 디지털 데이터로의 변환을 위해 아날로그 센서 데이터를 중앙 시스템 모니터로 라우팅하는 종래의 솔루션에 의해 동시에 측정될 수 있는 센서의 수는, 시스템 모니터와 관련되는 ADC의 입력 채널 수에 의해 제한된다. 따라서, 아날로그 센서 데이터의 디지털 정보로의 변환을 위성 모니터(192(1)-192(19))를 통해 디바이스(100) 전반에 걸쳐 분배하는 것에 의해, 본원에서 개시되는 모니터링 시스템에 의해 동시에 측정될 수 있는 센서의 수는, 임의의 특정한 ADC의 입력 채널의 수가 아니라, 위성 모니터(192(1)-192(19))의 수에 기초한다. 결과적으로, 본원에서 개시되는 모니터링 시스템은 앞서 언급된 종래의 솔루션보다 훨씬 더 많은 수의 센서를 동시에 측정할 수도 있다.
루트 모니터(190)는 네트워크 인터커넥트 시스템(120)에 의해 위성 모니터(192(1)-192(19)) 각각으로부터 라우팅되는 디지털 데이터를 수신할 수도 있고, 수신된 디지털 데이터를 프로세싱하여 센서에 의해 모니터링되는 선택된 회로의 동작 상태를 결정할 수도 있다. 몇몇 구현예에서, 루트 모니터(190)는 측정된 동작 상태를 하나 이상의 기준 값과 비교하여, 선택된 회로 각각이 그것의 명시된 동작 범위 내에서 동작하고 있는지의 여부를 결정할 수도 있다.
도 1은 프로그래머블 디바이스(100)의 단지 하나의 예시적인 아키텍쳐만을 예시하도록 의도된다는 것을 유의한다. 예를 들면, 열(또는 행)에 있는 로직 블록의 수, 열(또는 행)의 상대적 폭, 열(또는 행)의 수 및 순서, 열(또는 행)에 포함되는 로직 블록의 타입, 로직 블록의 상대적 사이즈, 및 도 1에서 도시되는 다른 아키텍쳐 양태는, 단지, 본원에서 개시되는 본 발명의 주제의 다양한 구현예의 예시에 불과하다.
도 2는, 몇몇 구현예에 따른, 도 1의 프로그래머블 디바이스(100)의 하나의 예일 수도 있는 프로그래머블 디바이스(200)의 기능 블록도를 도시한다. 디바이스(200)는 트랜스시버 블록(150), 프로그래머블 로직(PL)(210), CPM(220), 프로세싱 시스템(PS)(230), 플랫폼 관리 컨트롤러(PMC)(240), 및 I/O 블록 + 메모리 컨트롤러(260)를 포함하는 것으로 도시되어 있다. 도 1의 PL(110)의 하나의 구현예일 수도 있는 PL(210)은 트랜스시버 블록(150), CPM(220), PMC(240), 및 네트워크 인터커넥트 시스템(120)에 인접하여 그들에 직접적으로 연결될 수도 있다. 도 1의 I/O 블록(160) 및 메모리 컨트롤러(170)의 하나의 구현예일 수도 있는 I/O 블록 + 메모리 컨트롤러(260)는 프로그래머블 디바이스(200)의 저부 에지를 따라 배열되는 복수의 반복 가능한 타일로서 구현될 수도 있다. 간략화를 위해 도 2에서 도시되지는 않지만, I/O 블록 + 메모리 컨트롤러(260)는 프로그래머블 디바이스(200)의 상단 에지를 따라 배열되는 복수의 반복 가능한 타일로서 또한 구현될 수도 있다. 추가적으로, 또는 대안적으로, I/O 블록 + 메모리 컨트롤러(260)는 프로그래머블 디바이스(200)의 우측 및 좌측 에지를 따라 배열되는 복수의 반복 가능한 타일로서 구현될 수도 있다.
도 1의 CPM(140)의 하나의 구현예일 수도 있는 CPM(220)은 다수의 상이한 버스 표준에 대한 인터페이싱 성능을 제공할 수도 있다. 몇몇 구현예에서, CPM(220)은 주변 장치 컴포넌트 인터커넥트 익스프레스(peripheral component interconnect express; PCIe) 인터페이스(222), 직접 메모리 액세스(direct memory access; DMA) 회로(224), 및 가속기에 대한 캐시 코히어런트 인터커넥트(CCIX) 인터페이스(226)를 포함할 수도 있다. PCIe 인터페이스(222)는 PCI 프로토콜에 따라 트랜스시버 블록(150)을 통해 PS(230)와 하나 이상의 다른 디바이스 또는 칩 사이에서 데이터를 교환하기 위해 사용될 수도 있다. 유사하게, CCIX 인터페이스(226)는 CCIX 프로토콜에 따라 트랜스시버 블록(150)을 통해 PS(230)와 하나 이상의 다른 디바이스 또는 칩 사이에서 데이터를 교환하기 위해 사용될 수도 있다.
PS(230)는 디바이스(200)에 대한 전용 데이터 프로세싱 성능을 제공할 수도 있고, 애플리케이션 프로세싱 유닛(application processing unit; APU)(232), 실시간 프로세싱 유닛(real-time processing unit; RPU)(234), 캐시 메모리(236), 및 시스템 온 칩(system-on-a-chip; SoC) 인터페이스(238)를 포함하는 것으로 도시되어 있다. 간략화를 위해 도시되지는 않지만, PS(230)는 통신 표준(예컨대, 이더넷 및 USB 2.0 인터페이스) 및 다양한 컨트롤러(예컨대, SPI, I2C, UART 및 CAN-FD 컨트롤러)에 대한 주변장치를 또한 포함할 수도 있다. APU(232) 및 RPU(234) 각각은 디바이스(200)에 전용 스칼라 프로세싱 성능을 제공할 수 있는 하나 이상의 프로세싱 코어(예컨대, CPU)를 포함할 수도 있다. 몇몇 양태에서, PS(230)는 프로그래머블 인터커넥트 패브릭 및 네트워크 인터커넥트 시스템(120)에 의해 디바이스(200)의 다른 서브시스템에 선택적으로 연결될 수도 있다.
몇몇 구현예에서, APU(232)는 하드웨어 가상화를 지원하는 멀티코어 ARM 프로세서를 포함할 수도 있고, 내장형 인터럽트 컨트롤러 및 스눕 제어 유닛(snoop control unit)을 구비할 수도 있다. 인터럽트 컨트롤러는 가상 인터럽트를 지원할 수도 있고, 스눕 제어 유닛은 APU(232) 및 RPU(234)에 의해 사용되는 및/또는 공유되는 하나 이상의 캐시 사이의 일관성(coherency)을 유지하기 위해 사용될 수도 있다. APU(232)는 AXI 코히어런트 확장(AXI coherent extension; ACE) 포트를 사용하여 PS(230)의 다른 컴포넌트와 통신할 수도 있고, 가속기 일관성 포트(accelerator coherency port; ACP)를 사용하여 PL(210)과 통신할 수도 있다. 몇몇 구현예에서, RPU(234)는 실시간 데이터 프로세싱을 지원하는 멀티코어 ARM 프로세서를 포함할 수도 있고, 실시간 단일의 사이클 액세스를 위한 단단히 커플링된 메모리(tightly coupled memory; TCM) 인터페이스를 포함할 수도 있으며, 전용 인터럽트 컨트롤러 및 부동 소수점 유닛을 구비할 수도 있다. RPU(234)는 AXI 포트를 사용하여 PL(210)과 및/또는 PS(230)의 다른 컴포넌트와 통신할 수도 있다.
캐시 메모리(236)는 APU(232) 및 RPU(234)에 의한 공유된 액세스를 허용하는 임의의 적절한 고속 캐시일 수도 있다. SoC 인터페이스(238)는 PS(230)의 다양한 리소스와 네트워크 인터커넥트 시스템(120) 사이에서 연결성을 제공할 수도 있다.
PMC(240)는 도 1의 보안 회로부(242), 부팅 및 재구성 회로부(244), 아날로그 회로부(246), 및 루트 모니터(190)를 포함할 수도 있다. 보안 회로부(242)는 데이터 암호화/암호 해제 성능 및 다른 보안 피쳐를 제공할 수도 있다. 부팅 및 재구성 회로부(244)는 비보안 부팅 및 보안 부팅 둘 모두를 지원하는 다중 스테이지 부팅 프로세스(multi-stage boot process)를 제공할 수도 있다. 아날로그 회로부(246)는 임의의 적절한 아날로그 회로 컴포넌트를 포함할 수도 있다. 게다가, 간략화를 위해 도 2에서 도시되지는 않지만, PMC(240)는 테스트 및 디버깅 리소스(예컨대, JTAG 회로부), 외부 플래시 메모리 인터페이스, 및 다른 컴포넌트 또는 회로를 포함할 수도 있다. 몇몇 구현예에서, PMC(240)는 부분적인 재구성 동작을 사용하여 PL(210)의 일부가 재구성되는 것을 허용할 수도 있다. 예를 들면, PL(210)의 일부에 대한 새로운 구성 비트스트림은 1차 또는 2차 부트 인터페이스(boot interface)(예컨대, PCIe 또는 이더넷) 중 어느 하나를 통해 PS(230)로부터 로딩될 수 있고, 그 다음, 재구성될 PL(210)의 일부와 관련되는 구성 레지스터에 저장될 수 있다. PL(210)의 하나 이상의 부분의 부분적인 재구성을 허용하는 성능은, (예컨대 다른 프로그래머블 디바이스와 비교하여) 유저 명시 회로 설계에 대한 변경 사항 또는 업데이트를 반영하도록 유저가 디바이스(200)를 더욱 신속하게 재구성하는 것을 허용할 수도 있다.
도 3은 몇몇 구현예에 따른 예시적인 프로그래머블 패브릭(300)의 블록도를 도시한다. 몇몇 구현예에서, 프로그래머블 패브릭(300)은 도 1의 PL(110), 도 2의 PL(210), 또는 둘 모두일 수도 있다. 프로그래머블 패브릭(300)은 열(또는 행)에서 배열될 수 있는 복수의 상이한 프로그래머블 회로 블록 또는 타일을 포함하는 것으로 도시되어 있다. 프로그래머블 회로 블록은 원주형 아키텍쳐(columnar architecture)에서 배열되는 프로그래머블 인터커넥트 엘리먼트(INT)(310), 구성 가능 로직 엘리먼트(configurable logic element; CLE)(320), DSP(330), 및 블록 RAM(BRAM)(340)을 포함할 수도 있다(그러나 이들로 제한되지는 않는다). 도 3의 예의 경우, 프로그래머블 패브릭(300)은 프로그래머블 인터커넥트 엘리먼트(310)의 열한 개의 열, CLE(320)의 다섯 개 열, DSP(330)의 두 개 열, 및 BRAM(340)의 두 개 열을 포함하는 것으로 도시되어 있다. 다른 구현예에서, 프로그래머블 패브릭(300)은 프로그래머블 인터커넥트 엘리먼트(310), CLE(320), DSP(330), 및 BRAM(340)의 다른 수의 열을 포함할 수도 있다. 프로그래머블 패브릭(300)은, 간략화를 위해 도 3에서 도시되지 않은 다수의 다른 서브시스템 또는 컴포넌트(예컨대, 프로세싱 코어, 프로그래머블 인터커넥트 구조물, 및 등등)를 또한 포함할 수도 있다.
프로그래머블 인터커넥트 엘리먼트(310), CLE(320), DSP(330), 및 BRAM(340)은 프로그래머블 패브릭(300)에 걸쳐 반복될 수 있는 타일로서 구현될 수도 있다. 타일 각각은 동일한 타일 내의 프로그래머블 로직 엘리먼트에 로컬 신호 상호 접속부를 제공하는, 인접한 타일 내의 프로그래머블 인터커넥트 엘리먼트(310)에 로컬 신호 상호 접속부를 제공하는, 및/또는 다른 신호 라우팅 리소스에 로컬 신호 상호 접속부를 제공하는 적어도 하나의 프로그래머블 인터커넥트 엘리먼트(310)를 포함할 수도 있다. 프로그래머블 인터커넥트 엘리먼트(310)는 프로그래머블 인터커넥트 패브릭(또는 다른 적절한 블록 레벨 및/또는 디바이스 레벨 신호 라우팅 구조물)의 적어도 일부를 집합적으로 형성할 수도 있다.
몇몇 구현예에서, 프로그래머블 패브릭(300)은 프로그래머블 패브릭(300)의 높이를 가로질러 수직으로 연장되는 원주형 하드 블록(350)을 포함할 수도 있다. 하드 블록(350)은, 예를 들면, USB 컨트롤러, 이더넷 MAC, 다중 레이트(MR) 이더넷 MAC, PCIe 컨트롤러, CCIX 컨트롤러, 및/또는 PCIe 프로토콜의 물리적 계층, 데이터 링크 계층, 및 트랜잭션 계층을 구현하는 다른 적절한 회로 또는 컴포넌트와 같은 다수의 하드웨어에 내장된 회를 포함할 수도 있다. 몇몇 구현예에서, 하드 블록(350)은 도 1과 관련하여 상기에서 설명되는 연결성 패브릭의 하나의 구현예일 수도 있다.
도 4는, 몇몇 구현예에 따른, 모니터링 시스템(400)의 기능 블록도를 도시한다. 도 1의 프로그래머블 디바이스(100)에서 구현될 수도 있는 모니터링 시스템(400)은 루트 모니터(410), 복수의 위성 모니터(SAT1-SAT15), 복수의 공급 전압 센서(SV1-SV4), 복수의 온도 센서(T5-T15), 및 복수의 선택된 회로(CKT5-CKT15)를 포함하는 것으로 도시된다. 도 1의 루트 모니터(190)의 하나의 구현예일 수도 있는 루트 모니터(410)는 네트워크 인터커넥트 시스템(120)에 커플링되고 기준 전압(VREF)을 생성하기 위한 회로부를 포함할 수도 있다. 몇몇 구현예에서, 루트 모니터(410)는 온도 보상된 기준 전압(VREF)을 생성하는 밴드갭 기준 회로(간략화를 위해 도시되지 않음)를 포함할 수도 있다.
위성 모니터(SAT1-SAT15)는 디바이스(100)에 걸쳐 분포될 수도 있고, 그 결과, 위성 모니터(SAT1-SAT15) 각각은 센서(SV1-SV4 및 T5-T15) 중 대응하는 하나의 부근에서 배치되도록 배열될 수도 있다. 도 4의 예시적인 구현예의 경우, 위성 모니터(SAT1-SAT4)는 로컬 신호 배선을 통해 각각의 공급 전압 센서(SV1-SV4)에 커플링되고, 위성 모니터(SAT5-SAT15)는 로컬 신호 배선을 통해 각각의 온도 센서(T5-T15)에 커플링된다. 이러한 방식으로, 공급 전압 센서(SV1-SV4)에 의해 생성되는 아날로그 신호는 로컬 신호 배선에 의해 각각의 위성 모니터(SAT1-SAT4)에 제공될 수도 있고, 온도 센서(T5-T15)에 의해 생성되는 아날로그 신호는 로컬 신호 배선에 의해 각각의 위성 모니터(SAT5-SAT15)에 제공될 수도 있다. 위성 모니터(SAT5-SAT15)를 관련된 센서(SV1-SV4 및 T5-T15)에 근접하게(예를 들면, 그 부근에) 배치하는 것에 의해, 센서(SV1-SV4 및 T5-T15)에 의해 생성되는 아날로그 신호는 루트 모니터(410)에 도달하기 위해 디바이스(100)의 많은 부분을 가로질러 라우팅될 필요가 없고, 그에 의해, 디바이스(100)에 걸쳐 있는 금속 층 상호 접속부를 가로질러 상대적으로 작은 아날로그 신호를 라우팅하는 것과 관련되는 신호 열화를 최소화한다. 또한, 센서(SV1-SV4 및 T5-T15) 각각에 의해 생성되는 아날로그 신호가 위성 모니터(SAT1-STA15) 중 인근의 하나를 사용하여 디지털 데이터로 로컬하게 변환될 수도 있기 때문에, 프로그래머블 디바이스(예컨대, 도 1의 프로그래머블 디바이스(100)) 내의 모니터링 시스템(400)을 구현하는 데 값비싼 금속 층 라우팅 리소스가 필요로 되지 않는다.
하나의 예의 경우, 센서(SV1)는 관련된 공급 전압의 전압 레벨을 나타내는 아날로그 신호를 생성하는 것에 의해 관련된 공급 전압의 동작 상태를 모니터링할 수도 있다. 대응하는 위성 모니터(SAT1)를 센서(SV1)의 부근에서 배치하는 것에 의해, 센서(SV1)에 의해 생성되는 아날로그 신호는 디바이스(100)를 가로질러 루트 모니터(410)로 라우팅될 필요가 없고, 대신, 로컬 신호 배선을 통해 위성 모니터(SAT1)까지 상대적으로 짧은 거리 라우팅될 수도 있다. 다른 예를 들면, 센서(T5)는 관련된 회로(CKT5)의 온도를 나타내는 아날로그 신호를 생성하는 것에 의해 관련된 회로(CKT5)의 동작 상태를 모니터링할 수도 있다. 대응하는 위성 모니터(SAT5)를 센서(T5)의 부근에서 배치하는 것에 의해, 센서(T5)에 의해 생성되는 아날로그 신호는 디바이스(100)를 가로질러 루트 모니터(410)로 라우팅될 필요가 없고, 대신, 대신, 로컬 신호 배선을 통해 위성 모니터(SAT5)까지 상대적으로 짧은 거리 라우팅될 수도 있다.
기준 전압(VREF)은 디바이스(100)에 걸쳐 분배될 수도 있고 네트워크 인터커넥트 시스템(120)의 하나 이상의 전용 아날로그 채널에 의해 위성 모니터(SAT1-STA15) 각각이 액세스 가능하게 만들어질 수도 있으며, 디지털 데이터는 네트워크 인터커넥트 시스템(120)의 하나 이상의 디지털 채널에 의해 위성 모니터(SAT1-STA15) 각각으로부터 루트 모니터(410)로 선택적으로 라우팅될 수도 있다. 몇몇 구현예에서, 하나 이상의 아날로그 채널은 하나 이상의 디지털 채널과는 물리적으로 분리될 수도 있다.
도 5는, 몇몇 구현예에 따른, 예시적인 루트 모니터(500)의 블록도를 도시한다. 도 1의 루트 모니터(190) 또는 도 4의 루트 모니터(410)(또는 둘 모두)의 하나의 구현예일 수도 있는 루트 모니터(500)는 전압 생성기(510), 메모리(520), 및 컨트롤러(530)를 포함하는 것으로 도시되어 있다. 기준 전압(VREF)으로서의 사용에 적절한 트리밍된 전압을 생성할 수 있는 임의의 적절한 회로 또는 디바이스일 수도 있는 전압 생성기(510)는 네트워크 인터커넥트 시스템(120)의 하나 이상의 아날로그 채널(121)에 커플링되는 출력을 포함한다. 도 1을 또한 참조하면, 몇몇 구현예에서, 전압 생성기(510)에 의해 생성되는 기준 전압(VREF)은 네트워크 인터커넥트 시스템(120)의 하나 이상의 아날로그 채널(121)을 사용하여 디바이스(100) 전반에 걸쳐 위치되는 위성 모니터(192(1)-192(19)) 각각으로 분배될 수도 있다. 위성 모니터(192(1)-192(19))는 네트워크 인터커넥트 시스템(120)으로부터의 기준 전압(VREF)에 액세스할 수도 있고, 아날로그 대 디지털 변환을 수행하기 위해(또는 다른 적절한 동작을 위해) 분배된 기준 전압(VREF)을 사용할 수도 있다.
몇몇 구현예에서, 전압 생성기(510)는, 예를 들면, 기준 전압(VREF)이 온도 변동에 대해 조정되도록 온도 보상된 전압을 생성할 수 있는 밴드갭 회로(512)를 포함할 수도 있다. 추가적으로, 또는 대안적으로, 전압 생성기(510)는 네트워크 인터커넥트 시스템(120)의 하나 이상의 아날로그 채널(121)에 양의 기준 전압 및 음의 기준 전압 둘 모두를 제공할 수도 있다. 몇몇 양태에서, 기준 전압(VREF)은 1.25 볼트와 동일할 수도 있지만, 다른 적절한 전압이 VREF로서 사용될 수도 있다.
메모리(520)는 네트워크 인터커넥트 시스템(120)의 하나 이상의 디지털 채널(122)에 커플링되는 데이터 입력, 컨트롤러(530)에 커플링되는 제어 입력, 컨트롤러(530)에 커플링되는 데이터 출력, 및 하나 이상의 출력 포트를 포함하는데, 메모리(520)에 저장되는 데이터는, 그 하나 이상의 출력 포트로부터, JTAG 인터페이스, 다중화된 입력/출력(multiplexed input/output; MIO) 블록, 또는 AXI 인터페이스 중 하나 이상을 통해 유저에 의해 액세스될 수 있다. 몇몇 구현예에서, 메모리(520)는 다수의 상태 레지스터(521) 및 다수의 알람 레지스터(522)를 포함할 수도 있다. 상태 레지스터(521)는 디바이스(100) 전반에 걸쳐 제공되는 선택된 회로의 동작 상태를 나타내는 디지털 데이터를 저장할 수도 있고, 알람 레지스터(522)는 다수의 명시된 동작 범위를 정의하는 복수의 기준 값을 저장할 수도 있다. 상태 레지스터(521)는 네트워크 인터커넥트 시스템(120)을 통해 위성 모니터(192(1)-192(19))로부터 루트 모니터(500)로 라우팅되는 디지털 데이터로 채워질 수도 있고, 알람 레지스터(522)는 프로그래머블 디바이스(100)의 구성(또는 재구성) 동안 기준 값으로 채워질 수도 있다.
컨트롤러(530)는 루트 모니터(500)의 다양한 동작을 제어할 수도 있고, 위성 모니터(192(1)-192(19))로부터 수신되는 디지털 데이터를 분석하여 선택된 회로 중 임의의 것이 그들의 명시된 동작 범위 내에서 동작하고 있지 않은지의 여부를 결정할 수도 있으며, 유저에 의해 액세스될 수 있는 결과 데이터를 생성할 수도 있다. 몇몇 구현예에서, 컨트롤러(530)는, 상태 레지스터(521)에 저장되는 측정된 동작 상태를 알람 레지스터(522)에 저장되는 대응하는 기준 값과 비교하는 것에 의해, 선택된 회로가 명시된 동작 범위 내에서 동작하고 있는지의 여부를 결정할 수도 있다. 선택된 회로가 그것의 명시된 동작 범위 밖에서 동작하고 있는 것으로 결정되면, 컨트롤러(530)는 알람을 생성할 수도 있다. 몇몇 양태에서, 알람은, 예를 들면, 선택된 회로의 동작 상태가 그것의 명시된 동작 범위 내에 있을 때까지, 선택된 회로로 하여금 디스에이블되게 또는 전력이 차단되게 할 수도 있다. 다른 양태에서, 알람은, 예를 들면, 선택된 회로의 동작 상태가 명시된 동작 범위 내에 있을 때까지, 프로그래머블 디바이스(100)로 하여금 전력이 차단되게 하거나 또는 감소된 전력 레벨에서 동작하게 할 수도 있다.
알람 레지스터(522)에 저장되는 명시된 동작 범위 중 일부는 최소 기준 값 및 최대 기준 값에 의해 정의될 수도 있다. 몇몇 구현예에서, 명시된 전압 범위는 최소 전압 값 및 최대 전압 값을 포함할 수도 있다. 그러한 구현예에서, 컨트롤러(530)는 선택된 회로의 측정된 전압을 알람 레지스터(522)에 저장되는 최소 및 최대 전압 값과 비교할 수도 있고, 비교에 기초하여 하나 이상의 알람을 생성할 수도 있다. 예를 들면, 측정된 전압이 최소 전압 값과 최대 전압 값 사이에 있는 경우, 컨트롤러(530)는 선택된 회로가 그것의 명시된 전압 범위 내에서 동작하고 있다는 것을 나타낼 수도 있다. 반대로, 측정된 전압이 최소 전압 값보다 더 작거나 또는 최대 전압 값보다 더 큰 경우, 컨트롤러(530)는 선택된 회로가 그것의 명시된 전압 범위 내에서 동작하고 있지 않다는 것을 나타내기 위한 알람을 생성할 수도 있다.
알람 레지스터(522)에 저장되는 다른 명시된 동작 범위는 동작 상한을 정의하는 기준 값을 포함할 수도 있다. 몇몇 구현예에서, 선택된 회로에 대한 명시된 온도 범위는 기준 온도 값에 의해 정의될 수도 있다. 그러한 구현예에서, 컨트롤러(530)는 선택된 회로의 측정된 온도를 알람 레지스터(522)에 저장되는 기준 온도 값과 비교할 수도 있고, 비교에 기초하여 하나 이상의 알람을 생성할 수도 있다. 예를 들면, 측정된 온도가 기준 온도 값보다 더 작은(또는 동일한) 경우, 컨트롤러(530)는 선택된 회로가 그것의 명시된 온도 범위 내에서 동작하고 있다는 것을 나타낼 수도 있다. 반대로, 측정된 온도가 기준 온도 값보다 더 큰 경우, 컨트롤러(530)는 선택된 회로가 너무 뜨겁다는 것 또는 과열되었다는 것을 나타내는 알람을 생성할 수도 있다.
도 6은, 몇몇 구현예에 따른, 예시적인 위성 모니터(600)의 블록도를 도시한다. 임의의 수의 도 1의 위성 모니터(192(1)-192(19)) 또는 도 4의 위성 모니터(SAT1-SAT15)(또는 둘 모두)의 하나의 예일 수도 있는 위성 모니터(600)는, 하나 이상의 센서(20)에 커플링되는 데이터 입력, 네트워크 인터커넥트 시스템(120)에 커플링되는 출력, 및 제1 스위치(SW1)에 의해 네트워크 인터커넥트 시스템(120)에 커플링되는 기준 단자를 포함한다. 도 1 및 도 5를 또한 참조하면, 몇몇 구현예에서, 위성 모니터(600)는 루트 모니터(500)에 의해 생성되며 제1 스위치(SW1)를 통해 네트워크 인터커넥트 시스템(120)의 하나 이상의 아날로그 채널(121)에 의해 분배되는 기준 전압(VREF)을 수신할 수도 있다. 몇몇 양태에서, 센서(20)는 온도 센서(21), 공급 전압 센서(22), 및 외부 센서(23)를 포함할 수도 있다(그러나 이들로 제한되지는 않는다).
도 6의 예에서, 위성 모니터(600)는 ADC 회로(610), 메모리(620), 및 로컬 기준 회로(630)를 포함하는 것으로 도시되어 있다. ADC 회로(610)는 제2 스위치(SW2)를 통해 하나 이상의 센서(20)에 커플링되는 입력, 메모리(620)에 커플링되는 출력, 및 로컬 기준 회로(630)에 커플링되는 하나 이상의 기준 단자를 포함한다. ADC 회로(610)는 센서(20) 중 하나 이상에 의해 생성되는 아날로그 신호를 디지털 신호 또는 디지털 데이터로 변환할 수 있는 임의의 적절한 ADC일 수도 있다(또는 그것을 포함할 수도 있다). 몇몇 구현예에서, ADC 회로(610)는 센서(20)에 의해 제공되는 아날로그 감지 데이터를 디지털화하기 위해 스케일링된 아키텍쳐를 활용할 수도 있다.
임의의 적절한 스토리지 디바이스일 수도 있는 메모리(620)는 ADC 회로(610)의 출력에 커플링되는 입력을 포함하고, 네트워크 인터커넥트 시스템(120)에 커플링되는 출력을 포함한다. 메모리(620)는 센서(20) 중 하나 이상에 의해 제공되는 아날로그 신호에 응답하여 ADC 회로(610)에 의해 생성되는 디지털 데이터를 저장할 수도 있고, 도 5의 루트 모니터(500)로의 라우팅을 위해 디지털 데이터를 네트워크 인터커넥트 시스템(120)의 하나 이상의 디지털 채널(122)에 제공할 수도 있다. 몇몇 구현예에서, 메모리(620)는 모니터링을 위해 선택되는 복수의 회로 중 대응하는 하나의 동작 상태를 나타내는 디지털 데이터를 각각 저장하기 위한 복수의 레지스터일 수도 있거나 또는 그 복수의 레지스터를 포함할 수도 있다. 이러한 방식으로, 위성 모니터(600)는 센서(20)로부터 선택된 회로 중 대응하는 하나의 동작 상태를 나타내는 아날로그 신호를 수신할 수도 있고, 아날로그 신호를 디지털 데이터로 변환할 수도 있고, 선택된 회로의 동작 상태를 나타내는 디지털 데이터를 네트워크 인터커넥트 시스템(120)의 하나 이상의 디지털 채널(122)로 제공할 수도 있다.
제1 스위치(SW1)와 위성 모니터(600)의 하나 이상의 기준 단자 사이에서 커플링되는 로컬 기준 회로(630)는, 로컬 기준 전압(VREF_LOCAL)을 ADC 회로(610)에 제공할 수 있는 임의의 적절한 디바이스 또는 컴포넌트일 수도 있다. 몇몇 구현예에서, 로컬 기준 전압(VREF_LOCAL)은 네트워크 인터커넥트 시스템(120)에 의해 분배되는 기준 전압(VREF)에 적어도 부분적으로 기초할 수도 있고, 아날로그 대 디지털 변환을 수행하기 위해 ADC 회로(610)에 의해 사용될 수도 있다.
제1 스위치(SW1)는 네트워크 인터커넥트 시스템(120)에 의해 분배되는 기준 전압(VREF)을 제1 제어 신호(CTRL1)에 기초하여 위성 모니터(600)에 선택적으로 커플링하도록 구성될 수도 있다. 몇몇 구현예에서, 제1 스위치(SW1)는, 제1 제어 신호(CTRL1)가 어써트된 상태(asserted state)(예컨대, 로직 하이)에 있을 때 위성 모니터(600)의 기준 단자를 네트워크 인터커넥트 시스템(120)에 커플링할 수도 있고, 제1 제어 신호(CTRL1)가 디어써트된 상태(de-asserted state)(예컨대 로직 로우)에 있을 때 위성 모니터(600)를 네트워크 인터커넥트 시스템(120)으로부터 분리할 수도 있다. 이러한 방식으로, 제1 스위치(SW1)는 위성 모니터(600)가 네트워크 인터커넥트 시스템(120)에 의해 분배되는 기준 전압(VREF)에 액세스하는 때(그리고 얼마나 오래 액세스하는지)를 제어하기 위해 사용될 수도 있다.
제1 제어 신호(CTRL1)는 도 5의 루트 모니터(500)에 의해 생성될 수도 있고, 네트워크 인터커넥트 시스템(120)에 의해(또는 다른 적절한 신호 상호 접속부에 의해) 위성 모니터(600)로 라우팅될 수도 있다. 도 1 및 도 5를 또한 참조하면, 몇몇 구현예에서, 루트 모니터(500)는, 예를 들면, 위성 모니터(600) 중 단지 하나가 시간적으로 임의의 주어진 순간에 네트워크 인터커넥트 시스템(120)을 통해 분배된 기준 전압(VREF)에 액세스할 수 있도록, 타이밍 스케줄에 기초하여 프로그래머블 디바이스에 걸쳐 분포되는 복수의 위성 모니터(600) 각각에 대한 제1 제어 신호(CTRL1)를 어써트할 수도 있다. 이러한 방식으로, 루트 모니터(500)는 분배된 기준 전압(VREF)에 동시에 액세스하는 하나보다 더 많은 위성 모니터(600)에 의해 야기되는 분배된 기준 전압(VREF)에서의 강하를 방지할 수도 있다.
제2 스위치(SW2)는 센서(21-23) 중 하나를 제2 제어 신호(CTRL2)에 기초하여 ADC 회로(610)의 입력에 선택적으로 커플링할 수도 있다. 몇몇 구현예에서, 제2 제어 신호(CTRL2)는 도 5의 루트 모니터(500)에 의해 생성될 수도 있고, 네트워크 인터커넥트 시스템(120)에 의해(또는 다른 적절한 신호 상호 접속부에 의해) 위성 모니터(600)로 라우팅될 수도 있다.
도 7은, 몇몇 구현예에 따른, 프로그래머블 디바이스의 다수의 동작 상태를 모니터링하기 위한 예시적인 동작(700)을 묘사하는 예시적인 플로우차트이다. 예시적인 동작(700)은, 단지 예시의 목적을 위해, 도 1의 프로그래머블 디바이스(100), 도 4의 모니터링 시스템(400), 도 5의 루트 모니터(500), 및 도 6의 위성 모니터(600)와 관련하여 하기에서 설명된다. 예시적인 동작(700)은 본원에서 개시되는 다른 프로그래머블 디바이스에 의해 및/또는 다른 적절한 디바이스에 의해 수행될 수도 있다는 것이 이해되어야 한다.
동작(700)은 프로그래머블 디바이스(100) 내에 제공되는 루트 모니터(190)와 관련되는 전압 생성기(510)를 사용하여 기준 전압(VREF)을 생성하는 것에 의해 블록(701)에서 시작될 수도 있다. 몇몇 구현예에서, 루트 모니터(190)는, 예를 들면, 도 5의 밴드갭 회로(512)를 사용하여, 트리밍되고 온도 보상된 기준 전압(VREF)을 생성할 수도 있다.
동작(700)은 인터커넥트 시스템(120)의 하나 이상의 아날로그 채널(121)을 사용하여 루트 모니터(190)로부터 복수의 위성 모니터(192) 각각으로 기준 전압(VREF)을 분배하는 것에 의해 블록(702)에서 진행될 수도 있다. 몇몇 구현예에서, 기준 전압(VREF)을 분배하는 것은, 루트 모니터(190)에 의해 생성되는 대응하는 제어 신호(CTRL1)에 기초하여 복수의 위성 모니터(192(1)-192(19)) 각각을 인터커넥트 시스템(120)에 선택적으로 커플링하는 것을 포함할 수도 있다. 몇몇 양태에서, 도 6의 제1 스위치(SW1)는 위성 모니터(600)가 CTRL1의 제1 상태에 기초하여 네트워크 인터커넥트 시스템(120)으로부터의 기준 전압(VREF)에 액세스하는 것을 허용할 수도 있고, 제1 스위치(SW1)는 CTRL1의 제2 상태에 기초하여 위성 모니터(600)를 네트워크 인터커넥트 시스템(120)으로부터 분리할 수도 있다.
동작(700)은, 다수의 센서(20) 각각을 사용하여, 관련된 회로의 동작 상태를 나타내는 아날로그 신호를 생성하는 것에 의해 블록(703)에서 진행될 수도 있다. 몇몇 구현예에서, 다수의 센서(20) 각각은 관련된 회로의 부근에서 위치될 수도 있다. 몇몇 양태에서, 센서(20)는 온도 센서(21), 공급 전압 센서(22), 또는 외부 센서(23) 중 적어도 하나일 수도 있다(또는 그 적어도 하나를 포함할 수도 있다).
동작(700)은 다수의 센서(20)에 의해 생성되는 아날로그 신호를 복수의 위성 모니터(192(1)-192(19)) 중 대응하는 위성 모니터에 제공하는 것에 의해 블록(704)에서 진행될 수도 있다. 몇몇 구현예에서, 센서(20)에 의해 생성되는 아날로그 신호는, 예를 들면, 다양한 회로의 동작 상태를 나타내는 아날로그 신호가 디바이스를 가로질러 라우팅되고 금속 층 신호 라우팅 구조물을 사용하여 중앙 모니터로 제공되는 종래의 프로그래머블 디바이스와는 대조적으로, 상대적으로 짧은 로컬 신호 배선을 사용하여 대응하는 위성 모니터(192(1)-192(19))에 제공될 수도 있다.
동작(700)은 복수의 위성 모니터(192(1)-192(19))를 사용하여 아날로그 신호를 디지털 데이터로 변환하는 것에 의해 블록(705)에서 진행될 수도 있다. 도 6을 또한 참조하면, 위성 모니터(192(1)-192(19)) 각각 내에 제공되는 ADC 회로(610)는 아날로그 신호를 위성 모니터(192(1)-192(19)) 각각의 메모리(620)에 저장될 수 있는 디지털 데이터로 변환할 수도 있다. 메모리(620)는 루트 모니터(190)로의 라우팅을 위해 저장된 디지털 데이터를 인터커넥트 시스템(120)으로 선택적으로 제공할 수도 있다.
동작(700)은 인터커넥트 시스템(120)의 하나 이상의 디지털 채널(122)을 사용하여 디지털 데이터를 복수의 위성 모니터(192(1)-192(19))로부터 루트 모니터(190)로 선택적으로 라우팅하는 것에 의해 블록(706)에서 진행될 수도 있다. 도 4를 또한 참조하면, 디지털 채널(122)은 인터커넥트 시스템(120)의 아날로그 채널(121)과는 물리적으로 분리될 수도 있다. 몇몇 구현예에서, 예를 들면, 복수의 위성 모니터(192(1)-192(19))로부터 루트 모니터(190)로의 디지털 데이터의 전달을 스케줄링하기 위해 또는 우선 순위화하기 위해, 위성 모니터(192(1)-192(19))는 루트 모니터(190)에 의해 생성되는 신호(예컨대, 트리거 신호)에 응답하여 디지털 데이터를 인터커넥트 시스템(120)에 제공할 수도 있다. 다른 구현예에서, 위성 모니터(192(1)-192(19))는 프롬프트(prompt) 없이 및/또는 루트 모니터(190)에 의한 제어 없이, 디지털 데이터를 인터커넥트 시스템(120)에 제공할 수도 있다.
동작(700)은, 관련된 회로 중 적어도 하나의 동작 상태가 범위 내에 있는지의 여부를 결정하는 것에 의해 블록(707)에서 진행할 수도 있고, 결정에 기초하여 알람을 선택적으로 생성하는 것에 의해 블록(708)에서 진행될 수도 있다. 도 5를 또한 참조하면, 루트 모니터(500)는 위성 모니터(192(1)-192(19)) 중 선택된 하나로부터 디지털 데이터를 수신할 수도 있고 수신된 디지털 데이터를 하나 이상의 기준 값과 비교하여 관련된 회로의 동작 상태가 범위 내에 있는지의 여부를 결정할 수도 있다. 몇몇 구현예에서, 루트 모니터(500)는 알람을 생성할 수도 있고 및/또는 프로그래머블 디바이스(100)의 하나 이상의 부분(또는 다수의 다양한 회로, 블록 및 서브시스템이 그들의 명시된 동작 파라미터 내에 남아 있지 않은 경우 전체 프로그래머블 디바이스(100))의 전력을 차단할 수도 있다.
아날로그 신호가 관련된 회로(예컨대 전압 공급부)의 전압을 나타내는 구현예의 경우, 루트 모니터(500)는 관련된 회로의 측정된 전압을 최소 및 최대 기준 전압 레벨과 비교할 수도 있다. 관련된 회로의 측정된 전압이 최소 기준 전압 레벨과 최대 기준 전압 레벨 사이에 있는 경우, 루트 모니터(190)는 관련된 회로가 명시된 전압 범위 내에서 동작하고 있다는 것을 결정할 수도 있다. 반대로, 관련된 회로의 측정된 전압이 최소 기준 전압 레벨보다 더 작거나 또는 최대 기준 전압 레벨보다 더 큰 경우, 루트 모니터(190)는 관련된 회로가 명시된 전압 범위 내에서 동작하고 있지 않다는 것을 결정할 수도 있다.
아날로그 신호가 관련된 회로의 온도를 나타내는 구현예의 경우, 루트 모니터(500)는 관련된 회로의 측정된 온도를 기준 온도 값과 비교할 수도 있다. 관련된 회로의 측정된 온도가 기준 온도 값보다 더 크지 않은 경우, 루트 모니터(190)는 관련된 회로가 그것의 명시된 온도 범위 내에서 동작하고 있다는 것을 결정할 수도 있다. 반대로, 관련된 회로의 측정된 온도가 기준 온도 값보다 더 큰 경우, 루트 모니터(190)는 관련된 회로가 명시된 온도 범위 내에서 동작하고 있지 않다는 것을 결정할 수도 있다.
본 개시에서 설명되는 주제의 구현은, 프로그래머블 디바이스의 다수의 동작 상태를 모니터링하기 위해 사용될 수도 있다. 동작 상태는, 예를 들면, 프로그래머블 디바이스 내에 제공되는 회로 또는 컴포넌트의 온도, 프로그래머블 디바이스 외부의 회로 또는 디바이스의 온도, 공급 전압의 전압 레벨, 및 등등을 포함하는 디바이스의 동작 특성 또는 파라미터의 임의의 적절한 척도일 수도 있다. 본 개시의 몇몇 양태에 따르면, 모니터링 시스템은, 루트 모니터, 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 복수의 센서, 및 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 복수의 위성 모니터를 포함할 수도 있다. 루트 모니터는 고도로 정확하고 온도 독립적인 기준 전압을 생성하도록 구성되는 밴드갭 전압 생성기를 포함할 수도 있고, 온도 독립적인 기준 전압은 프로그래머블 로직에 걸쳐 있는 하나 이상의 아날로그 채널을 통해 루트 모니터로부터 위성 모니터 각각으로 분배될 수도 있다.
센서 각각은, 관련된 회로의 하나 이상의 동작 상태를 나타내는 아날로그 신호를 생성할 수도 있고, 하나 이상의 로컬 신호 라인을 통해 위성 모니터 중 대응하는 하나에 아날로그 신호를 제공할 수도 있다. 위성 모니터 각각은 아날로그 신호를 디지털 데이터로 변환하기 위한 ADC를 포함할 수도 있고, 예를 들면, 하나 이상의 관련된 센서에 의해 생성되는 아날로그 신호가 디지털 데이터로의 변환을 위해 로컬 신호 라인을 통해 위성 모니터 중 각각의 하나까지 상대적으로 짧은 거리 라우팅될 수도 있도록, 하나 이상의 관련된 센서의 부근에 배치될 수도 있다. 몇몇 구현예에서, 프로그래머블 디바이스는 프로세싱을 위해 위성 모니터 각각으로부터 루트 모니터로 디지털 데이터를 선택적으로 라우팅할 수 있는, 그리고 제어 신호 및 다른 정보를 루트 모니터로부터 위성 모니터 각각으로 라우팅할 수 있는 네트워크 온 칩(network-on-chip; NoC) 인터커넥트 시스템을 포함할 수도 있다. 추가적으로, 또는 대안적으로, 위성 모니터 각각에 의해 생성되는 디지털 데이터는, 클록 분배 네트워크, 프로그래머블 인터커넥트 패브릭, 및/또는 디바이스의 프로그래머블 로직을 형성하는 반복 가능한 타일 내에서 제공되는 라우팅 리소스를 포함하는(그러나 이들로 제한되지는 않음) 디바이스 내에서 제공되는 다른 적절한 라우팅 리소스를 사용하여 루트 모니터로 라우팅될 수도 있다.
프로그래머블 디바이스에 걸쳐 분포되는 복수의 센서의 열 및 전압 모니터링의 정확도는, 프로그래머블 디바이스에 걸쳐 분포되는 복수의 위성 모니터 각각에서의 정확한 아날로그 대 디지털 변환에 의존한다. 아날로그 대 디지털 변환의 정확도는, 적어도 부분적으로, 위성 모니터 각각 내의 ADC에 제공되는 기준 전압의 정확도에 기초할 수도 있다. 밴드갭 전압 생성기가 고도로 정확하고 온도 독립적인 기준 전압을 생성하기 위해 사용될 수도 있지만, 밴드갭 전압 생성기는 상당한 양의 회로 면적을 소비하며 프로그래머블 디바이스의 제조 동안 비용이 많이 들고 시간 소모적인 트리밍을 필요로 한다.
디바이스에 걸쳐 분포되는 복수의 위성 모니터 각각에 대한 정확한 기준 전압을 제공하는 실리콘 비용을 방지하기 위해, 게다가, 대응하는 복수의 전압 생성기를 트리밍할 필요성을 제거하기 위해, 위성 모니터 각각은 대응하는 ADC에 대한 로컬 기준 전압을 생성하도록 구성되는 상대적으로 작은 전압 소스(예컨대, 면적 효율적인 전압 소스)를 포함할 수도 있다. 로컬 전압 소스는 루트 모니터에서 제공되는 밴드갭 전압 생성기와 비교하여 상대적으로 작을 수도 있고 따라서 "면적 효율적"일 수도 있다. 몇몇 구현예에서, 로컬 전압 소스는 열두 개 미만의 트랜지스터를 포함할 수도 있고, 밴드갭 전압 생성기보다 더 적어도 10의 1승배 더 적은 회로 면적을 소비할 수도 있다. 몇몇 구현예에서, 위성 모니터 각각은 대응하는 ADC에 대한 로컬 기준 전압을 저장하도록 구성되는 로컬 전압 저장소를 포함할 수도 있다. 로컬 전압 저장소는 스위치(예컨대, 트랜지스터)에 커플링되는 커패시터로 구성될 수도 있다.
로컬 기준 전압은 밴드갭 전압 생성기에 의해 생성되는 고도로 정확하고 온도 독립적인 기준 전압과 비교하여 상대적으로 부정확할 수도 있고, 위성 모니터 중 대응하는 하나 내에 제공되는 ADC에 의해 생성되는 디지털 코드에서 에러를 초래할 수도 있다. 몇몇 구현예에서, 위성 모니터 각각은 디지털 코드에서의 에러를 나타내는 보정 계수를 생성하도록 구성되는 캘리브레이션 회로를 포함할 수도 있고, 보정 계수에 기초하여 디지털 코드를 보정하도록 구성되는 보정 회로를 포함할 수도 있다. 복수의 위성 모니터 내에 제공되는 ADC는, 하기에서 더욱 상세하게 설명되는 바와 같이, 그들의 대응하는 캘리브레이션 회로 및 보정 회로에 의해 고도로 정확하고 온도 독립적인 기준 전압에 대해 주기적으로 캘리브레이팅될 수도 있다.
프로그래머블 디바이스에 걸쳐 분포되는 다양한 회로의 동작 상태를 모니터링하기 위한 종래의 시스템은, 중앙 시스템 모니터 및 모니터링될 회로 근처에 배치되는 복수의 센서를 통상적으로 포함한다. 각각의 센서는 관련된 회로의 동작 상태를 나타내는 아날로그 신호를 생성하고, 아날로그 신호는 디지털 데이터로의 변환을 위해 센서 각각으로부터 시스템 모니터로 라우팅된다. 센서는 통상적으로 디바이스 전반에 걸친 다양한 위치에서 통상적으로 분포되고, 따라서, 센서 중 적어도 일부에 의해 생성되는 아날로그 신호는 디바이스의 큰 부분을 가로질러 시스템 모니터에 도달하도록 라우팅될 수도 있다. 동작 상태를 나타내는 아날로그 신호가 특히 노이즈 및 간섭에 취약할 수도 있기 때문에, 몇몇 프로그래머블 디바이스는, 디지털 데이터로의 변환을 위해, 차폐 속성을 갖는 전용 금속 층 라우팅 리소스를 사용하여 이들 아날로그 신호를 다양한 센서로부터 시스템 모니터로 라우팅할 수도 있다.
그러한 전용 금속 층 라우팅 리소스의 차폐 속성이 신호 저하 및 데이터 손실을 감소시킬 수도 있지만, 전용 금속 층 라우팅 리소스는 비싸고 상당한 양의 디바이스의 금속 층을 소비한다. 또한, 프로그래머블 로직이 복수의 행 또는 열에서 배열되는 복수의 반복 가능한 타일로서 통상적으로 구현되기 때문에, 반복 가능한 타일 각각 내에서 임베딩되는 신호 라우팅 리소스는, (예컨대, 디바이스 밀도가 가장 큰 위치에서 배치될 타일에 대한) 최악의 경우의 라우팅 시나리오에 통상적으로 기초한다. 결과적으로, 반복 가능한 타일 중 많은 것은 신호 라우팅 리소스를 과도하게 갖추게 되는데, 이것은 미사용 라우팅 리소스로 귀결될 수도 있고 및/또는 프로그래머블 디바이스의 확장 가능성을 제한할 수도 있다.
다양한 회로의 동작 상태를 모니터링하는 센서에 근접한 프로그래머블 디바이스 전반에 걸친 위치에서 복수의 위성 모니터를 배치하는 것에 의해, 본원에서 개시되는 모니터링 시스템은, 로컬 위성 모니터를 사용하여, 센서에 의해 생성되는 아날로그 신호를 디지털 데이터로 변환할 수도 있고, 그 다음, 디지털 데이터를 디바이스 전반에 걸친 다양한 위치로부터 루트 모니터로 라우팅한다. 결과적으로, 아날로그 신호는 디바이스의 많은 부분을 가로질러 라우팅되고, 그 다음, 디지털 데이터로 변환되는 것이 아니라, 대신, 디지털 데이터로의 변환을 위해 가장 가까운 위성 모니터로 상대적으로 짧은 거리 송신되는데, 디지털 데이터는, 그 다음, NoC 인터커넥트 시스템을 사용하여 루트 모니터로 라우팅된다. 몇몇 양태에서, 위성 모니터에 의해 생성되는 디지털 데이터는 개별적으로 주소 지정 가능한 데이터 패킷으로서 루트 모니터로 라우팅될 수도 있다. 다른 양태에서, 위성 모니터에 의해 생성되는 디지털 데이터는 패킷화되지 않은 데이터로서 루트 모니터로 라우팅될 수도 있다. 루트 모니터에서 아날로그 대 디지털 변환을 수행하는 대신, 센서 주변에 배치되는 위성 모니터를 사용하여 아날로그 신호를 디지털 데이터로 변환하는 것에 의해, 본원에서 개시되는 모니터링 시스템은 금속 층 라우팅 리소스를 필요로 하지 않는데, 이것은, 결국에는, 프로그래머블 디바이스의 확장 가능성을 증가시키면서 비용을 절감할 수도 있다. 또한, 아날로그 대 디지털 변환을 로컬하게(예를 들면, 센서 주변에서) 수행하는 것 및 결과적으로 나타나는 디지털 데이터를 위성 모니터로부터 루트 모니터로 라우팅하는 것은, (디바이스 전반에 걸쳐 배치되는 다양한 센서로부터의 아날로그 신호를 시스템 모니터 내에 제공되는 ADC로 라우팅하는 이전 기술과 비교하여) 더 많은 센서 데이터가 루트 모니터에 의해 수집되고 분석되는 것을 허용할 수도 있는데, 그 이유는, 예를 들면, 프로그래머블 디바이스 전반에 걸쳐 분포되는 ADC가 아날로그 대 디지털 변환을 병렬로(예를 들면, 동시에) 수행할 수도 있기 때문이다.
다음의 설명에서, 본 개시의 완전한 이해를 제공하기 위해 특정한 컴포넌트, 회로, 및 프로세스의 예와 같은 다수의 특정한 세부 사항이 기술된다. 본원에서 사용되는 바와 같은 용어 "커플링되는"은, 직접적으로 커플링되는 것 또는 하나 이상의 개재하는 컴포넌트 또는 회로를 통해 커플링되는 것을 의미한다. 또한, 다음의 설명에서 그리고 예시의 목적을 위해, 특정한 명명법 및/또는 세부 사항이 예시적인 구현의 완전한 이해를 제공하기 위해 기술된다. 그러나, 이들 특정한 세부 사항은 예시적인 구현예를 실시하는 데 필요하지 않을 수도 있다는 것이 기술 분야에서 통상의 기술을 가진 자에게는 명백할 것이다. 다른 예에서, 널리 공지된 회로 및 디바이스는 본 개시를 모호하게 하는 것을 방지하기 위해 블록도 형태로 도시된다. 본원에서 설명되는 다양한 버스를 통해 제공되는 신호 중 임의의 것은 다른 신호와 시간 다중화될 수도 있고 하나 이상의 공통 버스를 통해 제공될 수도 있다. 추가적으로, 회로 엘리먼트 또는 소프트웨어 블록 사이의 상호 접속부(interconnection)는 버스 또는 단일의 신호 라인으로서 나타내어질 수도 있다. 버스 각각은 대안적으로 단일의 신호 라인일 수도 있고, 단일의 신호 라인 각각은 대안적으로 버스일 수도 있으며, 단일의 라인 또는 버스는 컴포넌트 사이의 통신을 위한 무수한 물리적 또는 논리적 메커니즘 중 임의의 하나 이상을 나타낼 수도 있다. 예시적인 구현예는 본원에서 설명되는 특정한 예로 제한되는 것으로 해석되어서는 안 되며, 오히려 첨부된 청구범위에 의해 정의되는 모든 구현예를 그들의 범위 내에서 포함하는 것으로 해석되어야 한다.
도 8은 본 개시의 다양한 양태가 구현될 수도 있는 예시적인 프로그래머블 디바이스(800)의 블록도를 도시한다. 디바이스(800)는, 예를 들면, 프로그래머블 로직(PL)(810), PL(810)에 걸쳐 있는 네트워크 온 칩(NoC) 인터커넥트 시스템(820), PL(810)에 걸쳐 있는 하나 이상의 아날로그 채널(821), 전용 회로부(830), CCIX 및 PCIe 모듈(CPM)(840), 트랜스시버 블록(850), 입력/출력(I/O) 블록(860), 메모리 컨트롤러(870), 구성 로직(880), 루트 모니터(890), 복수의 위성 모니터(892(1)-892(19)), 및 복수의 센서(S)와 같은 다수의 서브시스템을 포함할 수도 있다. 하나 이상의 구현예에서, 디바이스(800)는 도 8에서 도시되지 않은 다른 서브시스템 또는 컴포넌트를 포함할 수도 있다. 게다가, 간략화를 위해 도시되지는 않지만, 디바이스(800)는 다수의 주변장치 컴포넌트(예컨대 고성능 메모리 디바이스) 및/또는 다른 디바이스 또는 칩(예컨대, 다른 프로그래머블 디바이스)에 커플링될 수도 있다.
PL(810)은 다수의 상이한 유저 정의 기능 또는 동작을 수행하도록 구성 또는 프로그래밍될 수도 있는 프로그래머블 회로부를 포함한다. 몇몇 구현예에서, PL(810)은, 예를 들면, 도 8에서 묘사되는 바와 같이, 프로그래머블 디바이스(800)의 열에서 배열되는 반복 가능한 타일로서 구현되는 복수의 프로그래머블 회로 블록을 포함할 수도 있다. 프로그래머블 패브릭 하위 영역(FSR)으로도 또한 지칭될 수도 있는 프로그래머블 회로 블록 각각은, 프로그래머블 인터커넥트 회로부 및 프로그래머블 로직 회로부를 포함할 수도 있다. 몇몇 구현예에서, 프로그래머블 회로 블록은 구성 가능한 로직 블록(CLB), 랜덤 액세스 메모리 블록(BRAM), 디지털 신호 프로세싱 블록(DSP), 클록 매니저, 지연 잠금 루프(DLL), 및/또는 유저 명시 회로 설계를 구현하도록 프로그래밍되거나 또는 구성될 수 있는 다른 로직 또는 회로를 포함할 수도 있다(그러나 이들로 제한되지는 않는다).
프로그래머블 회로 블록 또는 타일 각각 내의 프로그래머블 인터커넥트 회로부는 프로그래머블 인터커넥트 포인트(PIP)에 의해 인터커넥트되는 다양한 길이의 복수의 인터커넥트 배선을 포함할 수도 있다. 인터커넥트 배선은, 특정한 프로그래머블 타일 내의 컴포넌트 사이에서, 상이한 프로그래머블 타일 내의 컴포넌트 사이에서, 그리고 프로그래머블 타일의 컴포넌트와 다른 서브시스템 또는 디바이스 사이에서 연결성을 제공하도록 구성될 수도 있다. 프로그래머블 인터커넥트 회로부 및 프로그래머블 회로 블록은, 대응하는 유저 명시 회로 설계를 구현하기 위해 프로그래머블 엘리먼트가 어떻게 구성되고 동작하는지를 정의하는 구성 데이터를 구성 레지스터에 로딩하는 것에 의해 프로그래밍되거나 또는 구성될 수도 있다. 몇몇 양태에서, 다수의 프로그래머블 회로 블록 각각 내의 프로그래머블 인터커넥트 회로부는 디바이스(800)에 대한 블록 레벨 및/또는 디바이스 레벨 신호 라우팅 리소스를 제공하는 프로그래머블 인터커넥트 패브릭(간략화를 위해 도시되지 않음)의 일부를 형성할 수도 있다.
디바이스(800)의 일부로서 제조될 수도 있는 NoC 인터커넥트 시스템(820)은, 다양한 디바이스 리소스(예컨대 PL(810), 전용 회로부(830), CPM(840), 트랜스시버 블록(850), I/O 블록(860), 메모리 컨트롤러(870), 구성 로직(880), 루트 모니터(890), 및 위성 모니터(892(1)-892(19)))를 서로 그리고 간략화를 위해 도시되지 않은 다른 컴포넌트와 선택적으로 인터커넥트할 수 있는 고속, 고대역폭 프로그래머블 신호 라우팅 네트워크를 구현하기 위해 함께 연결되는 임의의 수의 수평 세그먼트 및 수직 세그먼트(및/또는 대각선 세그먼트)를 포함할 수도 있다. 도 8의 예시적인 구현예의 경우, NoC 인터커넥트 시스템(820)은 두 개의 수평 세그먼트 및 네 개의 수직 세그먼트를 포함하는 것으로 도시되어 있다. 디바이스(800)의 폭을 가로질러 연장되는 제1 수평 세그먼트는 디바이스(800)의 저부 경계를 따라 배치되고, 디바이스(800)의 폭을 가로질러 연장되는 제2 수평 세그먼트는 디바이스(800)의 상단 경계를 따라 배치된다. 네 개의 수직 세그먼트는 디바이스(800)의 높이를 가로질러 연장되고 NoC 인터커넥트 시스템(820)의 제1 및 제2 수평 세그먼트에 연결된다. 몇몇 양태에서, 수평 세그먼트는 NoC 인터커넥트 시스템(820)이 임의의 개재하는 회로 또는 인터페이스 없이 I/O 블록(860) 및 메모리 컨트롤러(870)와 신호 및 데이터를 교환하는 것을 허용할 수도 있고, 수직 세그먼트는 NoC 인터커넥트 시스템(820)이 임의의 개재하는 회로 또는 인터페이스 없이 트랜스시버 블록(850), 전용 회로부(830), 및 CPM(840)과 신호 및 데이터를 교환하는 것을 허용할 수도 있다. 다른 구현예에서, NoC 인터커넥트 시스템(820)은 다른 수의 수평 및 수직 세그먼트를 포함할 수도 있는데, 이들은, 결국에는, 디바이스(800)의 다른 위치를 점유할 수도 있다. 따라서, 도 8에서 묘사되는 예시적인 NoC 인터커넥트 시스템(820)의 특정한 레이아웃, 형상, 사이즈, 방위, 및 다른 물리적 특성은, 단지, 본원에서 개시되는 다양한 구현예의 예시에 불과하다.
NoC 인터커넥트 시스템(820)은, 개별적으로 주소 지정될 수 있고 소스 위치로부터 목적지 위치로 라우팅될 수도 있는 데이터 패킷으로서 다양한 디바이스 리소스 사이에서 정보를 송신하도록 구성될 수도 있다. 몇몇 양태에서, NoC 인터커넥트 시스템(820) 상에서 송신되는 데이터 패킷은 동적으로 주소 지정 가능할 수도 있다. 하나 이상의 구현예에서, NoC 인터커넥트 시스템(820)은 적절한 데이터 패킷 프로토콜(예컨대 토큰 링 프로토콜)을 활용할 수도 있고 및/또는 메모리 매핑된 어드레스를 사용하여 임의의 수의 소스 위치로부터 임의의 수의 목적지 위치로 데이터 패킷을 라우팅할 수도 있다. 데이터 패킷은, 데이터 패킷을 그들의 표시된 목적지로 라우팅하기 위해 NoC 인터커넥트 시스템(820)에 의해 사용될 수 있는 헤더 정보(예컨대 소스 어드레스, 목적지 어드레스, 및 프로토콜 정보)를 포함할 수도 있다.
몇몇 구현예에서, 데이터 패킷은, NoC 인터커넥트 시스템(820)을 통한 데이터 패킷의 송신이, 예를 들면, 할당된 우선 순위, 트래픽 타입, 트래픽 흐름, 및/또는 다른 기준에 기초하여, 우선 순위화되는 것을 허용하는 서비스 품질(QoS) 정보를 포함할 수도 있다. 그러한 구현예에서, NoC 인터커넥트 시스템(820)은, 수신된 데이터 패킷의 우선 순위 레벨 또는 트래픽 클래스를 결정할 수 있는, 그리고 송신을 위해 데이터 패킷을 큐잉할 때 결정된 우선 순위 레벨 또는 트래픽 클래스를 사용할 수 있는 우선 순위 로직을 포함할 수도 있다. 개별적으로 주소 지정 가능한 데이터 패킷으로서 다양한 디바이스 리소스 사이에서 정보를 송신하는 것에 의해, NoC 인터커넥트 시스템(820)은 특정한 유저 명시 회로 설계와 무관하게, 다양한 디바이스 리소스 사이에서 연결성을 제공할 수도 있고, 그에 의해, (종래의 프로그래머블 디바이스와 비교하여) 디바이스(800)의 신호 라우팅 성능을 크게 증가시킬 수도 있다. 예를 들면, 디바이스(800)의 프로그래머블 인터커넥트 패브릭 및 다른 타일 기반의 신호 라우팅 구조물이 명시된 회로 사이에서 점대점(point-to-point) 신호 연결을 제공하도록 통상적으로 구성되지만, NoC 인터커넥트 시스템(820)은 복수의 데이터 패킷 각각을 임의의 소스 어드레스로부터 디바이스(800) 상의 임의의 목적지 어드레스로 동시에 라우팅할 수도 있고, 그에 의해, 디바이스(800)에 대한 시스템 레벨 연결성을 제공한다.
간략화를 위해 도시되지는 않지만, NoC 인터커넥트 시스템(820)은 스케줄러 및 중재 로직을 또한 포함할 수도 있다. 스케줄러는, NoC 인터커넥트 시스템(820)의 하나 이상의 물리적 및/또는 가상 채널을 사용하여 소스 어드레스로부터 목적지 어드레스로의 데이터 패킷의 송신을 스케줄링하기 위해 사용될 수도 있다. 중재 로직은, 예를 들면, 충돌 및 다른 경쟁 관련 레이턴시를 최소화하기 위해, NoC 인터커넥트 시스템(820)에 대한 액세스를 중재하기 위해 사용될 수도 있다. 디바이스(800)가 적층형 실리콘 인터커넥트(SSI) 기술을 사용하여 제조되는 구현예의 경우, NoC 인터커넥트 시스템(820)의 열 부분은, 예를 들면, 구성 데이터가 마스터와 슬레이브(SLR) 사이에서 라우팅되는 것을 허용하기 위해, 인접한 수퍼 로직 영역(SLR) 사이에서 신호 연결을 제공할 수도 있다.
NoC 인터커넥트 시스템(820)은, NoC 인터커넥트 시스템(820) 내의 또는 그와 관련되는 다양한 스위치, 인터페이스, 및 라우터가 특정한 유저 명시 회로 설계를 구현하기 위해 어떻게 구성되는지를 정의하는 구성 데이터를 대응하는 구성 레지스터에 로딩하는 것에 의해 프로그래밍될 수도 있다. 몇몇 구현예에서, NoC 인터커넥트 시스템(820)은, NoC 인터커넥트 시스템(820)과 디바이스(800)의 다양한 리소스, 서브시스템, 회로, 및 다른 컴포넌트 사이에서 선택적 연결성을 제공하는 복수의 노드, 포트, 또는 다른 인터페이스(간략화를 위해 도시되지 않음)를 포함할 수도 있다. 예를 들면, NoC 인터커넥트 시스템(820)은 디바이스(800)의 다수의 서브시스템이 온칩 메모리(OCM) 리소스, 프로세싱 리소스, I/O 리소스, 및/또는 트랜스시버 블록(850)에 대한 액세스를 공유하는 것을 허용할 수도 있다. NoC 인터커넥트 시스템(820)의 노드, 포트, 또는 다른 인터페이스는, 구성 데이터를 하나 이상의 관련된 구성 레지스터에 로딩하는 것에 의해, 특정한 연결성 프로파일을 구현하도록 프로그래밍될 수도 있다.
많은 양의 데이터를 요구하고 사용할 수 있는 디바이스(800)의 다양한 리소스, 서브시스템, 회로, 및 다른 컴포넌트를 선택적으로 인터커넥트하는 것에 의해, NoC 인터커넥트 시스템(820)은 로컬 인터커넥트 리소스에 대한 신호 라우팅 부담을 완화할 수도 있고, 그에 의해, 디바이스 성능을 증가시킬 수도 있고 다른 프로그래머블 디바이스보다 더 큰 구성 유연성을 허용할 수도 있다. 또한, 디바이스 레벨 및 블록 레벨 프로그래머블 인터커넥트보다 더 높은 데이터 송신 레이트와 더 낮은 에러율을 갖는 고성능 신호 라우팅 네트워크를 제공하는 것에 의해, NoC 인터커넥트 시스템(820)은 (다른 프로그래머블 디바이스와 비교하여) 디바이스(800)의 프로세싱 파워 및 데이터 스루풋을 증가시킬 수도 있다.
프로그래머블 디바이스(800)에 걸쳐 있는 아날로그 채널(821)은 루트 모니터(890)로부터 복수의 위성 모니터(892(1)-892(19)) 각각으로 고도로 정확하고 온도 독립적인 기준 전압을 분배하기 위해 사용될 수도 있다. 몇몇 구현예에서, 아날로그 채널(821)은 NoC 인터커넥트 시스템(820)의 대응하는 세그먼트에 인접할 수도 있다(또는 그 내에 통합될 수도 있다). 다른 구현예에서, 아날로그 채널(821)은 NoC 인터커넥트 시스템(820)으로부터 분리될 수도 있다. 몇몇 다른 구현예에서, 아날로그 채널(821)은 디바이스(800) 내에 제공되는 클록 분배 네트워크 또는 어떤 다른 적절한 신호 인터커넥트 시스템의 일부일 수도 있다.
전용 회로부(830)는 프로세서, 직렬 트랜스시버, 디지털 신호 프로세서(DSP), 아날로그 대 디지털 컨버터(ADC), 디지털 대 아날로그 컨버터(digital-to-analog converter; DAC), 디바이스 관리 리소스, 디바이스 모니터링 리소스, 디바이스 테스팅 관리 리소스, 및 등등을 포함하는(그러나 이들로 제한되지는 않음) 임의의 적절한 하드웨어에 내장된 회로를 포함할 수도 있다. 몇몇 실시형태에서, 전용 회로부(830)는 도 9와 관련하여 설명되는 프로세싱 시스템(PS) 및 플랫폼 관리 컨트롤러(PMC)를 포함할 수도 있다. 몇몇 구현예에서, PS는 하나 이상의 프로세서 코어, 캐시 메모리, 메모리 컨트롤러, 및 디바이스(800)의 I/O 핀에 직접적으로 커플링하도록 구성 가능한 단방향 및/또는 양방향 인터페이스를 포함할 수도 있다. 몇몇 양태에서, 각각의 프로세서 코어는, 순차 데이터 프로세싱을 위해 사용될 수 있는 중앙 프로세싱 유닛(PU) 또는 스칼라 프로세서를 포함할 수도 있다. PMC는 외부 메모리로부터 제공되는 구성 데이터(예컨대 구성 비트스트림)에 기초하여 디바이스(800)를 부팅 및 구성하기 위해 사용될 수도 있다. PMC는 PL(810)을 구성하기 위해 그리고 디바이스(800)의 다양한 암호화, 인증, 루트 모니터링, 및 디버그 성능을 제어하기 위해 또한 사용될 수도 있다.
CCIX 및 PCIe 모듈(CPM)(840)은 디바이스(800)와 다수의 주변장치 컴포넌트(예컨대 외부 디바이스 또는 칩) 사이에서 연결성을 제공하는 다수의 인터페이스를 포함할 수도 있다. 몇몇 구현예에서, CPM(840)은, 트랜스시버 블록(850)을 통해 다른 디바이스 또는 칩에 대한 연결성을 제공하는 복수의 주변장치 인터커넥트 익스프레스(PCIe) 인터페이스 및 가속기에 대한 캐시 코히어런트 인터커넥트(CCIX) 인터페이스를 포함할 수도 있다. 몇몇 양태에서, PCIe 및 CCIX 인터페이스는 트랜스시버 블록(850)의 일부로서 구현될 수도 있다. CPM(840)의 하나의 예시적인 구현예가 도 9와 관련하여 설명된다.
트랜스시버 블록(850)은 디바이스(800)에 연결되는 하나 이상의 다른 디바이스 또는 칩(간략화를 위해 도시되지 않음)과의 신호 연결을 제공할 수도 있다. 트랜스시버 블록(850)은, 예를 들면, 기가비트 직렬 트랜스시버(GT)와 같은 다수의 상이한 직렬 트랜스시버를 포함할 수도 있다. 몇몇 구현예에서, 트랜스시버 블록(850)은, 도 8에서 묘사되는 바와 같이, 디바이스(800)의 우측 및 좌측을 따라 다양한 위치에서 배치되는 복수의 반복 가능한 타일로서 구현될 수도 있다. 다른 구현예에서, 트랜스시버 블록(850)은 디바이스(800)의 다른 적절한 위치에서 배치될 수도 있다. 하나 이상의 구현예에서, 트랜스시버 블록(850) 각각은 하나 이상의 관련된 전압 공급부(간략화를 위해 도시되지 않음)에 커플링될 수도 있다. 몇몇 양태에서, 주어진 트랜스시버 블록(850) 내의 트랜스시버 회로 각각의 뱅크는, 예를 들면, 트랜스시버 회로 각각의 뱅크가 별개의 전압 공급부를 사용하여 전력을 공급받을 수도 있도록, 대응하는 전압 공급부를 포함할 수도 있거나 또는 그것에 커플링될 수도 있다.
I/O 블록(860)은 디바이스의 I/O 핀(간략화를 위해 도시되지 않음)에 커플링되고, 디바이스(800)에게 I/O 성능을 제공할 수도 있다. 예를 들면, I/O 블록(860)은 하나 이상의 다른 디바이스로부터 데이터를 수신할 수도 있고, 수신된 데이터를 디바이스(800) 내의 다수의 목적지로 유도할 수도 있다. I/O 블록(860)은 디바이스(800)의 다수의 소스로부터 데이터를 또한 수신할 수도 있고, 수신된 데이터를 디바이스의 I/O 핀을 통해 하나 이상의 다른 디바이스로 유도할 수도 있다. 몇몇 구현예에서, I/O 블록(860)은 반복 가능한 타일로서 구현될 수도 있다. 디바이스(800)는 임의의 적절한 수의 I/O 블록(860)을 포함할 수도 있고, 따라서, 도 8에서 묘사되는 예시적인 구현예는 단지 예시에 불과하다.
I/O 블록(860)은 임의의 수의 적절한 I/O 회로 또는 디바이스를 포함할 수도 있다. 몇몇 구현예에서, I/O 블록(860)은 초고성능 I/O(XPIO) 회로, 고밀도 I/O(HDIO) 회로, 및 다중화된 I/O(MIO) 회로를 포함할 수도 있다. XPIO 회로는, 예컨대 메모리 컨트롤러(870)에 고속, 저레이턴시 인터페이스를 제공하는 고성능 통신을 위해 최적화될 수도 있다. 하나 이상의 구현예에서, XPIO 회로는 메모리 컨트롤러(870)를 사용하지 않고도 디바이스(800)의 다른 서브시스템에 의해 액세스될 수 있는 전용 메모리 리소스를 포함할 수도 있다. HDIO 회로는 (XPIO 회로와 비교하여) 더 늦은 속도 및 더 높은 전압 I/O 성능을 지원하는 비용 효율적인 솔루션을 제공할 수도 있다. MIO 회로는, 예를 들면, PL(810), 전용 회로부(830), 및 CPM(840)과 같은 다양한 서브시스템에 의해 액세스될 수 있는 범용 I/O 리소스를 제공할 수도 있다.
메모리 컨트롤러(870)는 디바이스(800) 내에서 및/또는 외부에서 제공되는 다양한 메모리 리소스에 대한 액세스를 제어하기 위해 사용될 수도 있다. 몇몇 구현예에서, 메모리 컨트롤러(870)는 I/O 블록(860) 중 하나 이상에서 상주하는 전용 메모리에 액세스하기 위해 사용될 수도 있다. 메모리 컨트롤러(870)는 더블 데이터 레이트 v4(DDR4) 메모리 컨트롤러, 고 대역폭 메모리(HBM) 컨트롤러, 및/또는 다른 적절한 메모리 컨트롤러를 포함할 수도 있다. 하나 이상의 구현예에서, 메모리 컨트롤러(870)의 일부 또는 모두는, 메모리 액세스 효율성을 향상시킬 수도 있는 트랜잭션 재정렬 성능을 갖는 스케줄러를 포함할 수도 있다. 추가적으로, 또는 대안적으로, 메모리 컨트롤러(870)를 구현하는 반복 가능한 타일은 서로 상이할 수도 있다. 예를 들면, 제1 개수의 메모리 컨트롤러(870)가 DDR4 메모리 컨트롤러를 구현할 수도 있고, 제2 개수의 메모리 컨트롤러(870)가 LPDDR4 메모리 컨트롤러를 구현할 수도 있고, 제3 개수의 메모리 컨트롤러(870)가 HBM 컨트롤러를 구현할 수도 있다.
디바이스(800)는 임의의 수의 I/O 블록(860) 및 메모리 컨트롤러(870)를 포함할 수도 있고, 따라서, 도 8에서 묘사되는 I/O 블록(860) 및 메모리 컨트롤러(870)의 수 및 위치는 단지 예시에 불과하다. 몇몇 구현예에서, 제1 행의 I/O 블록(860) 및 메모리 컨트롤러(870)이 디바이스(800)의 저부 에지를 따라 배치되는 반복 가능한 타일로서 구현될 수도 있고,제2 행의 I/O 블록(860) 및 메모리 컨트롤러(870)가 디바이스(800)의 상단 에지를 따라 배치되는 반복 가능한 타일로서 구현될 수도 있다. 몇몇 구현예에서, I/O 블록(860) 및 메모리 컨트롤러(870)는, 예를 들면, 도 8의 예에서 묘사되는 바와 같이, 서로에 대해 교대로 배치되거나 또는 분포될 수도 있다. 다른 구현예에서, 한 쌍의 I/O 블록(860) 및 메모리 컨트롤러(870)이 동일한 반복 가능한 타일 내에서 구현될 수도 있다.
몇몇 구현예에서, 디바이스(800)의 저부를 따라 배치되는 제1 행의 I/O 블록(860) 및 메모리 컨트롤러(870)는 NoC 인터커넥트 시스템(820)의 제1 수평 세그먼트에 커플링될 수도 있고, 디바이스(800)의 상단을 따라 배치되는 제2 행의 I/O 블록(860) 및 메모리 컨트롤러(870)는 NoC 인터커넥트 시스템(820)의 제2 수평 세그먼트에 커플링될 수도 있다. 이러한 방식으로, NoC 인터커넥트 시스템(820)은 디바이스(800)의 프로그래머블 리소스와 자신의 I/O 핀(간략화를 위해 도시되지 않음) 사이에서 연결성을 제공할 수도 있다.
몇몇 구현예에서, 디바이스(800)는 디바이스(800)의 높이를 가로질러 수직으로 연장되며 트랜스시버 블록(850) 부근에서 배치되는 연결성 패브릭(간략화를 위해 도시되지 않음)의 하나 이상의 열을 포함할 수도 있다. 연결성 패브릭은, USB 컨트롤러, 이더넷 MAC, 다중 레이트(MR) 이더넷 MAC(MRMAC), PCIe 컨트롤러, CCIX 컨트롤러, 및/또는 트랜스시버 블록(850)과 PL(810) 사이에서 연결성을 제공하기 위한 다른 컴포넌트를 포함하는(그러나 이들로 제한되지는 않음) 하나 이상의 하드웨어에 내장된 회로를 포함할 수도 있다.
구성 로직(880)은 외부 메모리로부터 구성 데이터(예컨대, 구성 비트스트림)를 로딩하기 위해 그리고 디바이스(800)의 다양한 프로그래머블 리소스가 어떻게 구성되는지를 정의하는 구성 데이터의 일부(예컨대, 프레임, 워드, 바이트, 및/또는 비트)를 적절한 구성 레지스터로 라우팅하기 위해 사용될 수도 있다. 구성 로직(880)은 디바이스(800)를 부분적으로 재구성하기 위해 및/또는 디바이스(800)의 하나 이상의 부분을 내부적으로 재구성하기 위해 또한 사용될 수도 있다. 몇몇 구현예에서, 구성 로직(880)은 구성 레지스터, 경계 스캔 테스트 회로부(예컨대 TAP 컨트롤러 회로부), 디바이스(800)로부터 판독되는 구성 데이터의 비트스트림을 암호화하기 위한 암호화 회로부, 및 디바이스(800)로 로딩되는 구성 데이터의 비트스트림을 암호 해제하기 위한 암호 해제 회로부를 포함할 수도 있다.
간략화를 위해 도시되지는 않지만, 디바이스(800)는 프로그래머블 패브릭과 디바이스(800)의 경계 상에 배치되는 I/O 블록(860) 및 메모리 컨트롤러(870)의 행 각각 사이에서 인터페이스를 포함할 수도 있다. 본원에서 경계 로직 인터페이스(BLI)로서 지칭될 수도 있는 이 인터페이스는, 크고 복잡한 외부 디바이스(예컨대, HBM)가 디바이스(800)의 프로그래머블 패브릭에서 훨씬 더 작은 블록(예컨대, CLB)으로서 나타나는 것을 허용할 수도 있다. 몇몇 구현예에서, BLI는 프로그래머블 패브릭의 상단 및 저부 경계 또는 에지에 배치되는 행에서 배열될 수도 있다. 이러한 방식으로, BLI는 원주형 로직 구조물(예컨대 CLB 열 또는 DSP 열)과 I/O 리소스(예컨대 I/O 블록(860))의 행 사이에서 신호를 라우팅하기 위해 사용될 수도 있다.
본 개시의 다양한 양태에 따르면, 프로그래머블 디바이스(800)는, 예를 들면, 선택된 회로가 명시된 동작 파라미터 내에서 동작하는 것을 보장하기 위해, 프로그래머블 디바이스(800) 전반에 걸쳐 제공되는 복수의 선택된 회로의 하나 이상의 동작 상태를 모니터링할 수 있는 모니터링 시스템을 포함할 수도 있다. 본원에서 개시되는 모니터링 시스템은, 예를 들면, 온도, 전압 레벨, 및 전류 레벨을 포함하는 선택된 회로의 임의의 적절한 동작 상태를 측정할 수도 있다. 본원에서 사용될 때, 용어 "선택된 회로"는, 디바이스(800)의 적절한 동작을 보장하기 위해 하나 이상의 동작 상태를 모니터링하기 위해 선택될 수 있는 임의의 회로, 컴포넌트, 공급 전압, 구조물, 또는 디바이스를 지칭할 수도 있다. 몇몇 구현예에서, 모니터링 시스템은, 선택된 회로 중 하나 이상 것의 측정된 동작 상태가 동작 상태의 명시된 범위 내에 속하지 않는 경우 알람(또는 다수의 알람)를 생성할 수도 있다. 몇몇 양태에서, 알람은 디바이스(800)의 하나 이상의 회로 또는 컴포넌트의 전력을 차단하기 위해 사용될 수도 있다. 다른 양태에서, 알람은 전체 디바이스(800)의 전력을 차단하기 위해 사용될 수도 있다.
모니터링 시스템은 루트 모니터(890), 위성 모니터(892(1)-892(19)), 및 센서(S)를 포함할 수도 있다(또는 이들에 의해 형성될 수도 있다). 루트 모니터(890)는 NoC 인터커넥트 시스템(820)에 그리고 아날로그 채널(821)에 커플링되고, 고도로 정확하고 온도 독립적인 기준 전압을 생성하도록 구성되는 회로부를 포함할 수도 있다. 온도 독립적인 기준 전압은 하나 이상의 아날로그 채널(821)을 통해 위성 모니터(892(1)-892(19)) 각각으로 분배될 수도 있고, 그에 의해, 위성 모니터(892(1)-892(19)) 각각에 대한 필요성을 제거하여 그 자체의 고도로 정확하고 온도 독립적인 기준 전압을 생성한다. 몇몇 구현예에서, 루트 모니터(890)는, 예를 들면, 도 8에서 묘사되는 바와 같이, 디바이스(800)의 프로세서 시스템 내에 배치될 수도 있다. 다른 구현예에서, 루트 모니터(890)는 디바이스(800)의 다른 적절한 위치에 배치될 수도 있다.
센서(S)는, 선택된 회로 중 적어도 하나의 하나 이상의 동작 상태를 나타내는 전기 신호를 생성할 수 있는 임의의 적절한 감지 회로 또는 디바이스일 수도 있으며, 온도 센서, 전압 센서, 및/또는 전류 센서를 포함할 수도 있다(그러나 이들로 제한되지는 않는다). 몇몇 구현예에서, 각각의 센서(S)는 하나 이상의 선택된 회로의 동작 상태를 측정할 수도 있고, 측정된 동작 상태를 나타내는 아날로그 신호를 위성 모니터(892(1)-892(19)) 중 대응하는 하나에 제공할 수도 있다.
위성 모니터(892(1)-892(19))는 센서(S)에 의해 생성되는 아날로그 신호를 선택된 회로의 측정된 동작 상태를 나타내는 디지털 데이터로 변환할 수 있는 임의의 적절한 회로 또는 디바이스일 수도 있다. 간략화를 위해 도 8에서 도시되지는 않지만, 몇몇 구현예에서, 위성 모니터(892(1)-892(19)) 각각은 적어도 아날로그 대 디지털 컨버터(ADC), (예컨대, 밴드갭 전압 생성기와 비교하여) 상대적으로 작은 사이즈를 갖는 로컬 전압 소스, 캘리브레이션 회로, 및 보정 회로를 포함할 수도 있다. 아날로그 신호를 디지털 데이터로 변환할 수 있는 임의의 적절한 회로일 수도 있는 ADC는, 하나 이상의 관련된 센서(S)에 의해 생성되는 아날로그 신호를 수신하기 위한 하나 이상의 입력, 관련된 센서(S)에 의해 측정되는 동작 상태를 나타내는 디지털 데이터를 제공하기 위한 하나 이상의 출력, 및 로컬 기준 전압을 수신하기 위한 하나 이상의 기준 단자를 포함할 수도 있다. 몇몇 구현예에서, 위성 모니터(192(1)-192(19)) 각각은 적어도 아날로그 대 디지털 컨버터(ADC), 대응하는 ADC에 대한 로컬 기준 전압을 저장하도록 구성되는 로컬 전압 저장소, 캘리브레이션 회로, 및 보정 회로를 포함할 수도 있다. 몇몇 구현예의 경우 커패시터일 수도 있는 또는 커패시터를 활용할 수도 있는 로컬 전압 저장소는 밴드갭 전압 생성기와 비교하여 상대적으로 작은 사이즈를 갖는다. 몇몇 구현예에서, 로컬 전압 저장소에 의해 소비되는 회로 면적은 밴드갭 전압 생성기에 의해 소비되는 회로 면적보다 적어도 10의 1승배 더 작을 수도 있다. 전압 저장소는, 전압 저장소를 온도 독립적인 기준 전압과 대략 동일한 값까지 충전하기 위해 하나 이상의 아날로그 채널에 선택적으로 커플링될 수도 있다. 전압 저장소에 저장되는 결과적으로 나타나는 전하는 ADC의 기준 단자에 제공되는 로컬 기준 전압일 수도 있다.
로컬 전압 소스는 로컬 기준 전압을 생성할 수도 있는데, 그 로컬 기준 전압은 루트 모니터(890)에 의해 제공되는 고도로 정확하고 온도 독립적인 기준 전압과 비교하여 상대적으로 부정확할 수도 있다. 몇몇 구현예에서, 로컬 기준 전압은 밴드갭 전압 생성기에 의해 생성되는 온도 독립적인 기준 전압보다 적어도 10의 1승배 덜 정확할 수도 있다. 하나 이상의 구현예에서, 로컬 기준 전압은 목표 전압의 대략 5 % 이내의 정확도를 가질 수도 있고, 한편, 온도 독립적인 기준 전압은 목표 전압의 대략 0.5 % 이내의 정확도를 가질 수도 있다. 캘리브레이션 회로는 ADC에 의해 생성되는 디지털 코드에서의 에러를 나타내는 보정 계수를 생성할 수도 있고, 보정 회로는 보정 계수에 기초하여 디지털 코드를 보정할 수도 있다.
센서(S) 및 위성 모니터(892(1)-892(19))는 프로그래머블 디바이스(800) 전반에 걸쳐 분포될 수도 있고, 예를 들면, 선택된 회로의 동작 상태를 나타내는 아날로그 신호가 (중앙 허브로 송신되고, 그 다음, 디지털 데이터로 변환되기 보다는) 다양한 분포된 위치에서 디지털 신호로 변환될 수도 있도록, 선택된 회로 근처의 다양한 위치에서 배치될 수도 있다. 몇몇 구현예에서, 센서(S) 각각은, 예를 들면, 센서(S) 및 대응하는 선택된 회로가 로컬 신호 라인을 사용하여 함께 커플링될 수도 있도록, 대응하는 선택된 회로의 부근에서 배치될 수도 있다. 유사하게, 위성 모니터(892(1)-892(19)) 각각은, 예를 들면, 위성 모니터(892) 및 하나 이상의 관련된 센서(S)가 로컬 신호 라인을 사용하여 함께 커플링될 수도 있도록, 하나 이상의 관련된 센서(S) 부근에서 배치될 수도 있다. 몇몇 양태에서, 본원에서 사용되는 바와 같은 용어 "부근"은 동작 상태를 나타내는 아날로그 신호가 최소의 신호 열화를 가지고 상대적으로 짧은 로컬 신호 배선을 통해 송신될 수 있는 거리를 지칭할 수도 있다.
도 8의 예의 경우, 트랜스시버 블록(850) 내에 위치되는 제1 그룹의 센서(S)는 트랜스시버 블록(850)과 관련되는 전압 공급부(간략화를 위해 도시되지 않음)의 각각의 부근에서 배치될 수도 있고, 제1 그룹의 위성 모니터(892(1)-892(6))은, 예를 들면, 제1 그룹의 센서(S) 각각이 대응하는 공급 전압에 그리고 상대적으로 짧은 로컬 신호 배선에 의해 대응하는 위성 모니터(890)에 커플링될 수도 있도록, 제1 그룹의 센서(S)의 부근에서 배치될 수도 있다. 몇몇 구현예에서, 제1 그룹의 센서(S) 각각은 대응하는 전압 공급부의 하나 이상의 동작 상태를 나타내는 아날로그 신호를 생성하도록 구성될 수도 있고, 제1 그룹의 위성 모니터(892(1)-892(6)) 각각은 관련된 센서(S)에 의해 생성되는 아날로그 신호를 NoC 인터커넥트 시스템(820)을 통해 루트 모니터(890)로 송신될 수 있는 디지털 데이터로 변환하도록 구성될 수도 있다.
PL(810) 내에 배치되는 제2 그룹의 센서(S)는 PL(810) 내의 또는 PL(810)과 관련되는 하나 이상의 대응하는 선택된 회로(간략화를 위해 도시되지 않음)의 부근에서 배치될 수도 있고, 제2 그룹의 위성 모니터(892(7)-892(19))는, 예를 들면, 제2 그룹의 센서(S) 각각이 대응하는 선택된 회로에 그리고 상대적으로 짧은 로컬 신호 배선에 의해 제2 그룹의 위성 모니터(892(7)-892(19)) 중 대응하는 하나에 커플링될 수도 있도록, 제2 그룹의 센서(S)의 부근에 배치될 수도 있다. 몇몇 구현예에서, 제2 그룹의 센서(S) 각각은 대응하는 선택된 회로의 하나 이상의 동작 상태를 나타내는 아날로그 신호를 생성하도록 구성될 수도 있고, 제2 그룹의 위성 모니터(892(7)-892(19)) 각각은 관련된 센서(S)에 의해 생성되는 아날로그 신호를 NoC 인터커넥트 시스템(820)을 통해 루트 모니터(890)로 송신될 수 있는 디지털 데이터로 변환하도록 구성될 수도 있다.
위성 모니터(892(1)-892(19)) 각각은 로컬 신호 라인에 의해 임의의 적절한 수의 센서(S)에 커플링될 수도 있다. 하나의 예의 경우, 위성 모니터(892(1))는 트랜스시버 블록(850) 내에 배치되는 단일의 센서(S)에 커플링될 수도 있고, 트랜스시버 블록(850)과 관련되는 대응하는 전압 공급부의 하나 이상의 동작 상태를 나타내는 디지털 신호를 생성할 수도 있다. 다른 예의 경우, 위성 모니터(892(16))는 PL(810) 내에 배치되는 두 개의 센서(S)에 커플링될 수도 있고, PL(810) 내에 배치되는 두 개의 센서(S)와 관련되는 선택된 회로의 하나 이상의 동작 상태를 나타내는 디지털 신호를 생성할 수도 있다. 다른 예의 경우, 위성 모니터(892(17))는 PL(810) 내에 배치되는 네 개의 센서(S)에 커플링될 수도 있고, PL(810) 내에 배치되는 네 개의 센서(S)와 관련되는 선택된 회로의 하나 이상의 동작 상태를 나타내는 디지털 신호를 생성할 수도 있다. 게다가, 도 8에서는 19 개의 위성 모니터(892(1)-892(19))를 포함하는 것으로 도시되지만, 프로그래머블 디바이스(800)는 프로그래머블 디바이스(800)의 다른 적절한 위치에 배치되는 다른 수의 위성 모니터(892)를 포함할 수도 있다.
상기에서 설명되는 바와 같이, 위성 모니터(892(1)-892(19))는, 중앙 시스템 모니터를 사용하여 디지털 데이터로의 변환을 위해 상대적으로 먼 거리에 걸쳐 아날로그 신호를 송신하기 보다는, 센서(S) 각각이 상대적으로 짧은 로컬 신호 배선을 사용하여 대응하는 위성 모니터(892)에 커플링될 수도 있도록 센서(S)에 충분히 가깝게 배치될 수도 있다. 이러한 방식으로, 본원에서 개시되는 모니터링 시스템의 구현예는 디지털 데이터로의 변환을 위해 이들 아날로그 신호를 디바이스(800) 전반에 걸쳐 분포되는 다양한 위치로부터 중앙 모니터로 라우팅하기 위한 금속 층 신호 라우팅 리소스에 대한 필요성을 제거할 수도 있는데, 이것은 디바이스 복잡도 및 비용을 감소시킬 수도 있고, 또한, 동시에 모니터링 시스템의 확장성을 증가시킬 수도 있다. 또한, 아날로그 센서 데이터의 아날로그 대 디지털 변환을 수행하기 위해 디바이스(800) 전반에 걸쳐 분포되는 복수의 위성 모니터(892(1)-892(19))를 사용하는 것 및, 그 다음, 분석을 위해 디지털 데이터를 루트 모니터(890)로 라우팅하는 것에 의해, 동시에 측정될 수 있는 센서의 수는 위성 모니터 내에서 제공되는 ADC의 입력 채널의 수에 의해 제한되지 않는다. 대조적으로, 디지털 데이터로의 변환을 위해 아날로그 센서 데이터를 중앙 시스템 모니터로 라우팅하는 종래의 솔루션에 의해 동시에 측정될 수 있는 센서의 수는, 시스템 모니터와 관련되는 ADC의 입력 채널 수에 의해 제한된다. 따라서, 아날로그 센서 데이터의 디지털 정보로의 변환을 위성 모니터(892(1)-892(19))를 통해 디바이스(800) 전반에 걸쳐 다양한 위치에서 분배하는 것에 의해, 본원에서 개시되는 모니터링 시스템에 의해 동시에 측정될 수 있는 센서의 수는, 디바이스에 걸쳐 분포되는 센서로부터 아날로그 신호를 수신하는 중앙에 위치된 ADC의 입력 채널의 수가 아니라, 위성 모니터(892(1)-892(19))의 수에 기초할 수도 있다. 결과적으로, 본원에서 개시되는 모니터링 시스템은 앞서 언급된 종래의 솔루션보다 훨씬 더 많은 수의 센서를 동시에 측정할 수도 있다.
루트 모니터(890)는 NoC 인터커넥트 시스템(820)에 의해 위성 모니터(892(1)-892(19)) 각각으로부터 라우팅되는 디지털 데이터를 수신할 수도 있고, 수신된 디지털 데이터를 프로세싱하여 센서에 의해 모니터링되는 선택된 회로의 동작 상태를 결정할 수도 있다. 몇몇 구현예에서, 루트 모니터(890)는 측정된 동작 상태를 하나 이상의 기준 값과 비교하여, 선택된 회로 각각이 그것의 명시된 동작 범위 내에서 동작하고 있는지의 여부를 결정할 수도 있다.
도 8은 프로그래머블 디바이스(800)의 단지 하나의 예시적인 아키텍쳐만을 예시하도록 의도된다는 것을 유의한다. 예를 들면, 열(또는 행)에 있는 로직 블록의 수, 열(또는 행)의 상대적 폭, 열(또는 행)의 수 및 순서, 열(또는 행)에 포함되는 로직 블록의 타입, 로직 블록의 상대적 사이즈, 및 도 8에서 도시되는 다른 아키텍쳐 양태는, 단지, 본원에서 개시되는 본 발명의 주제의 다양한 구현예의 예시에 불과하다.
도 9는, 몇몇 구현예에 따른, 도 8의 프로그래머블 디바이스(800)의 하나의 예일 수도 있는 프로그래머블 디바이스(900)의 기능 블록도를 도시한다. 디바이스(900)는 트랜스시버 블록(850), 프로그래머블 로직(PL)(910), CPM(920), 프로세싱 시스템(PS)(930), 플랫폼 관리 컨트롤러(PMC)(940), 및 I/O 블록 + 메모리 컨트롤러(960)를 포함하는 것으로 도시되어 있다. 도 8의 PL(810)의 하나의 구현예일 수도 있는 PL(910)은 트랜스시버 블록(850), CPM(920), PMC(940), 및 NoC 인터커넥트 시스템(820)에 인접하여 그들에 직접적으로 연결될 수도 있다. 도 8의 I/O 블록(860) 및 메모리 컨트롤러(870)의 하나의 구현예일 수도 있는 I/O 블록 + 메모리 컨트롤러(960)는 프로그래머블 디바이스(900)의 저부 에지를 따라 배열되는 복수의 반복 가능한 타일로서 구현될 수도 있다. 간략화를 위해 도 9에서 도시되지는 않지만, I/O 블록 + 메모리 컨트롤러(960)는 프로그래머블 디바이스(900)의 상단 에지를 따라 배열되는 복수의 반복 가능한 타일로서 또한 구현될 수도 있다. 추가적으로, 또는 대안적으로, I/O 블록 + 메모리 컨트롤러(960)는 프로그래머블 디바이스(900)의 우측 및 좌측 에지를 따라 배열되는 복수의 반복 가능한 타일로서 구현될 수도 있다.
도 8의 CPM(840)의 하나의 구현예일 수도 있는 CPM(920)은 다수의 상이한 버스 표준에 대한 인터페이싱 성능을 제공할 수도 있다. 몇몇 구현예에서, CPM(920)은 주변 장치 컴포넌트 인터커넥트 익스프레스(PCIe) 인터페이스(922), 직접 메모리 액세스(DMA) 회로(924), 및 가속기에 대한 캐시 코히어런트 인터커넥트(CCIX) 인터페이스(926)를 포함할 수도 있다. PCIe 인터페이스(922)는 PCI 프로토콜에 따라 트랜스시버 블록(850)을 통해 PS(930)와 하나 이상의 다른 디바이스 또는 칩 사이에서 데이터를 교환하기 위해 사용될 수도 있다. 유사하게, CCIX 인터페이스(926)는 CCIX 프로토콜에 따라 트랜스시버 블록(850)을 통해 PS(930)와 하나 이상의 다른 디바이스 또는 칩 사이에서 데이터를 교환하기 위해 사용될 수도 있다.
PS(930)는 디바이스(900)에 대한 전용 데이터 프로세싱 성능을 제공할 수도 있고, 애플리케이션 프로세싱 유닛(APU)(932), 실시간 프로세싱 유닛(RPU)(934), 캐시 메모리(936), 및 시스템 온 칩(SoC) 인터페이스(938)를 포함하는 것으로 도시되어 있다. 간략화를 위해 도시되지는 않지만, PS(930)는 통신 표준(예컨대, 이더넷 및 USB 2.0 인터페이스) 및 다양한 컨트롤러(예컨대, SPI, I2C, UART 및 CAN-FD 컨트롤러)에 대한 주변장치를 또한 포함할 수도 있다. APU(932) 및 RPU(934) 각각은 디바이스(900)에 전용 스칼라 프로세싱 성능을 제공할 수 있는 하나 이상의 프로세싱 코어(예컨대, CPU)를 포함할 수도 있다. 몇몇 양태에서, PS(930)는 프로그래머블 인터커넥트 패브릭 및 NoC 인터커넥트 시스템(820)에 의해 디바이스(900)의 다른 서브시스템에 선택적으로 연결될 수도 있다.
몇몇 구현예에서, APU(932)는 하드웨어 가상화를 지원하는 멀티코어 ARM 프로세서를 포함할 수도 있고, 내장형 인터럽트 컨트롤러 및 스눕 제어 유닛을 구비할 수도 있다. 인터럽트 컨트롤러는 가상 인터럽트를 지원할 수도 있고, 스눕 제어 유닛은 APU(932) 및 RPU(934)에 의해 사용되는 및/또는 공유되는 하나 이상의 캐시 사이의 일관성을 유지하기 위해 사용될 수도 있다. APU(932)는 AXI 코히어런트 확장(ACE) 포트를 사용하여 PS(930)의 다른 컴포넌트와 통신할 수도 있고, 가속기 일관성 포트(ACP)를 사용하여 PL(910)과 통신할 수도 있다. 몇몇 구현예에서, RPU(934)는 실시간 데이터 프로세싱을 지원하는 멀티코어 ARM 프로세서를 포함할 수도 있고, 실시간 단일의 사이클 액세스를 위한 단단히 커플링된 메모리(TCM) 인터페이스를 포함할 수도 있으며, 전용 인터럽트 컨트롤러 및 부동 소수점 유닛을 구비할 수도 있다. RPU(934)는 AXI 포트를 사용하여 PL(910)과 및/또는 PS(930)의 다른 컴포넌트와 통신할 수도 있다.
캐시 메모리(936)는 APU(932) 및 RPU(934)에 의한 공유된 액세스를 허용하는 임의의 적절한 고속 캐시일 수도 있다. SoC 인터페이스(938)는 PS(930)의 다양한 리소스와 NoC 인터커넥트 시스템(820) 사이에서 연결성을 제공할 수도 있다.
PMC(940)는 도 8의 보안 회로부(942), 부팅 및 재구성 회로부(944), 아날로그 회로부(946), 및 루트 모니터(890)를 포함할 수도 있다. 보안 회로부(942)는 데이터 암호화/암호 해제 성능 및 다른 보안 피쳐를 제공할 수도 있다. 부팅 및 재구성 회로부(944)는 비보안 부팅 및 보안 부팅 둘 모두를 지원하는 다중 스테이지 부팅 프로세스를 제공할 수도 있다. 아날로그 회로부(946)는 임의의 적절한 아날로그 회로 컴포넌트를 포함할 수도 있다. 게다가, 간략화를 위해 도 9에서 도시되지는 않지만, PMC(940)는 테스트 및 디버깅 리소스(예컨대, JTAG 회로부), 외부 플래시 메모리 인터페이스, 및 다른 컴포넌트 또는 회로를 포함할 수도 있다. 몇몇 구현예에서, PMC(940)는 부분적인 재구성 동작을 사용하여 PL(910)의 일부가 재구성되는 것을 허용할 수도 있다. 예를 들면, PL(910)의 일부에 대한 새로운 구성 비트스트림은 1차 또는 2차 부트 인터페이스(예컨대, PCIe 또는 이더넷) 중 어느 하나를 통해 PS(930)로부터 로딩될 수 있고, 그 다음, 재구성될 PL(910)의 일부와 관련되는 구성 레지스터에 저장될 수 있다. PL(910)의 하나 이상의 부분의 부분적인 재구성을 허용하는 성능은, (예컨대 다른 프로그래머블 디바이스와 비교하여) 유저 명시 회로 설계에 대한 변경 사항 또는 업데이트를 반영하도록 유저가 디바이스(900)를 더욱 신속하게 재구성하는 것을 허용할 수도 있다.
도 10은 몇몇 구현예에 따른 예시적인 프로그래머블 패브릭(1000)의 블록도를 도시한다. 몇몇 구현예에서, 프로그래머블 패브릭(1000)은 도 8의 PL(810), 도 9의 PL(910), 또는 둘 모두일 수도 있다. 프로그래머블 패브릭(1000)은 열(또는 행)에서 배열될 수 있는 복수의 상이한 프로그래머블 회로 블록 또는 타일을 포함하는 것으로 도시되어 있다. 프로그래머블 회로 블록은 원주형 아키텍쳐에서 배열되는 프로그래머블 인터커넥트 엘리먼트(INT)(1010), 구성 가능 로직 엘리먼트(CLE)(1020), DSP(1030), 및 블록 RAM(BRAM)(1040)을 포함할 수도 있다(그러나 이들로 제한되지는 않는다). 도 10의 예의 경우, 프로그래머블 패브릭(1000)은 프로그래머블 인터커넥트 엘리먼트(1010)의 열한 개의 열, CLE(1020)의 다섯 개 열, DSP(1030)의 두 개 열, 및 BRAM(1040)의 두 개 열을 포함하는 것으로 도시되어 있다. 다른 구현예에서, 프로그래머블 패브릭(1000)은 프로그래머블 인터커넥트 엘리먼트(1010), CLE(1020), DSP(1030), 및 BRAM(31040)의 다른 수의 열을 포함할 수도 있다. 프로그래머블 패브릭(1000)은, 간략화를 위해 도 10에서 도시되지 않은 다수의 다른 서브시스템 또는 컴포넌트(예컨대, 프로세싱 코어, 프로그래머블 인터커넥트 구조물, 및 등등)를 또한 포함할 수도 있다.
프로그래머블 인터커넥트 엘리먼트(1010), CLE(1020), DSP(1030), 및 BRAM(1040)은 프로그래머블 패브릭(1000)에 걸쳐 반복될 수 있는 타일로서 구현될 수도 있다. 타일 각각은 동일한 타일 내의 프로그래머블 로직 엘리먼트에 로컬 신호 상호 접속부를 제공하는, 인접한 타일 내의 프로그래머블 인터커넥트 엘리먼트(1010)에 로컬 신호 상호 접속부를 제공하는, 및/또는 다른 신호 라우팅 리소스에 로컬 신호 상호 접속부를 제공하는 적어도 하나의 프로그래머블 인터커넥트 엘리먼트(1010)를 포함할 수도 있다. 프로그래머블 인터커넥트 엘리먼트(1010)는 프로그래머블 인터커넥트 패브릭(또는 다른 적절한 블록 레벨 및/또는 디바이스 레벨 신호 라우팅 구조물)의 적어도 일부를 집합적으로 형성할 수도 있다.
몇몇 구현예에서, 프로그래머블 패브릭(1000)은 프로그래머블 패브릭(1000)의 높이를 가로질러 수직으로 연장되는 원주형 하드 블록(1050)을 포함할 수도 있다. 하드 블록(1050)은, 예를 들면, USB 컨트롤러, 이더넷 MAC, 다중 레이트(MR) 이더넷 MAC, PCIe 컨트롤러, CCIX 컨트롤러, 및/또는 PCIe 프로토콜의 물리적 계층, 데이터 링크 계층, 및 트랜잭션 계층을 구현하는 다른 적절한 회로 또는 컴포넌트와 같은 다수의 하드웨어에 내장된 회를 포함할 수도 있다. 몇몇 구현예에서, 하드 블록(1050)은 도 8과 관련하여 상기에서 설명되는 연결성 패브릭의 하나의 구현예일 수도 있다.
도 11은, 몇몇 구현예에 따른, 모니터링 시스템(1100)의 기능 블록도를 도시한다. 도 8의 프로그래머블 디바이스(800)에서 구현될 수도 있는 모니터링 시스템(1100)은 루트 모니터(1110), 복수의 위성 모니터(SAT1-SAT15), 복수의 공급 전압 센서(SV1-SV4), 복수의 온도 센서(T5-T15), 및 복수의 선택된 회로(CKT5-CKT15)를 포함하는 것으로 도시된다. 도 8의 루트 모니터(890)의 하나의 구현예일 수도 있는 루트 모니터(1110)는 NoC 인터커넥트 시스템(820) 및 하나 이상의 아날로그 채널(821)에 커플링된다. 몇몇 구현예에서, 루트 모니터(1110)는 온도 독립적인 기준 전압(VREF)을 생성하기 위해 밴드갭 전압 생성기(간략화를 위해 도시되지 않음)를 포함할 수도 있다.
위성 모니터(SAT1-SAT15)는 디바이스(800)에 걸쳐 분포될 수도 있고, 그 결과, 위성 모니터(SAT1-SAT15) 각각은 센서(SV1-SV4 및 T5-T15) 중 대응하는 하나의 부근에서 배치되도록 배열될 수도 있다. 도 11의 예시적인 구현예의 경우, 위성 모니터(SAT1-SAT4)는 로컬 신호 배선을 통해 각각의 공급 전압 센서(SV1-SV4)에 커플링되고, 위성 모니터(SAT5-SAT15)는 로컬 신호 배선을 통해 각각의 온도 센서(T5-T15)에 커플링된다. 이러한 방식으로, 공급 전압 센서(SV1-SV4)에 의해 생성되는 아날로그 신호는 로컬 신호 배선에 의해 각각의 위성 모니터(SAT1-SAT4)에 제공될 수도 있고, 온도 센서(T5-T15)에 의해 생성되는 아날로그 신호는 로컬 신호 배선에 의해 각각의 위성 모니터(SAT5-SAT15)에 제공될 수도 있다. 위성 모니터(SAT5-SAT15)를 관련된 센서(SV1-SV4 및 T5-T15)에 근접하게(예를 들면, 그 부근에) 배치하는 것에 의해, 센서(SV1-SV4 및 T5-T15)에 의해 생성되는 아날로그 신호는 루트 모니터(1110)에 도달하기 위해 디바이스(800)의 많은 부분을 가로질러 라우팅될 필요가 없고, 그에 의해, 디바이스(800)에 걸쳐 있는 금속 층 상호 접속부를 가로질러 상대적으로 작은 아날로그 신호를 라우팅하는 것과 관련되는 신호 열화를 최소화한다. 또한, 센서(SV1-SV4 및 T5-T15) 각각에 의해 생성되는 아날로그 신호가 위성 모니터(SAT1-STA15) 중 인근의 하나를 사용하여 디지털 데이터로 로컬하게 변환될 수도 있기 때문에, 프로그래머블 디바이스(예컨대, 도 8의 프로그래머블 디바이스(800)) 내의 모니터링 시스템(1100)을 구현하는 데 값비싼 금속 층 라우팅 리소스가 필요로 되지 않는다.
하나의 예의 경우, 센서(SV1)는 관련된 공급 전압의 전압 레벨을 나타내는 아날로그 신호를 생성하는 것에 의해 관련된 공급 전압의 동작 상태를 모니터링할 수도 있다. 대응하는 위성 모니터(SAT1)를 센서(SV1)의 부근에서 배치하는 것에 의해, 센서(SV1)에 의해 생성되는 아날로그 신호는 디바이스(800)를 가로질러 루트 모니터(1110)로 라우팅될 필요가 없고, 대신, 로컬 신호 배선을 통해 위성 모니터(SAT1)까지 상대적으로 짧은 거리 라우팅될 수도 있다. 다른 예를 들면, 센서(T5)는 관련된 회로(CKT5)의 온도를 나타내는 아날로그 신호를 생성하는 것에 의해 관련된 회로(CKT5)의 동작 상태를 모니터링할 수도 있다. 대응하는 위성 모니터(SAT5)를 센서(T5)의 부근에서 배치하는 것에 의해, 센서(T5)에 의해 생성되는 아날로그 신호는 디바이스(800)를 가로질러 루트 모니터(1110)로 라우팅될 필요가 없고, 대신, 대신, 로컬 신호 배선을 통해 위성 모니터(SAT5)까지 상대적으로 짧은 거리 라우팅될 수도 있다.
온도 독립적인 기준 전압(VREF)은 디바이스(800)에 걸쳐 분배될 수도 있고 하나 이상의 아날로그 채널(821)에 의해 위성 모니터(SAT1-STA15) 각각이 액세스 가능하게 만들어질 수도 있으며, 디지털 데이터는 NoC 인터커넥트 시스템(820)에 의해 위성 모니터(SAT1-STA15) 각각으로부터 루트 모니터(1110)로 선택적으로 라우팅될 수도 있다. 몇몇 구현예에서, 하나 이상의 아날로그 채널(821)은 NoC 인터커넥트 시스템(820)의 대응하는 부분을 따라 연장될 수도 있다. 다른 구현예에서, 하나 이상의 아날로그 채널(821)은 NoC 인터커넥트 시스템(820)으로부터 분리될 수도 있다.
도 12는, 몇몇 구현예에 따른, 예시적인 루트 모니터(1200)의 블록도를 도시한다. 도 8의 루트 모니터(890) 또는 도 11의 루트 모니터(1110)(또는 둘 모두)의 하나의 구현예일 수도 있는 루트 모니터(500)는 밴드갭 전압 생성기(1210), 메모리(1220), 및 컨트롤러(1230)를 포함하는 것으로 도시되어 있다. 고도로 정확하고 온도 독립적인 기준 전압(VREF)을 생성할 수 있는 임의의 적절한 회로 또는 디바이스일 수도 있는 밴드갭 전압 생성기(1210)는 하나 이상의 아날로그 채널(821)에 커플링되는 출력을 포함한다. 몇몇 구현예에서, 밴드갭 전압 생성기(1210)는, 하나 이상의 아날로그 채널(821)에 (예컨대 양의 기준 전압 및 음의 기준 전압 둘 모두를 포함하는) 차동 전압으로서 온도 독립적인 기준 전압(VREF)을 제공할 수도 있다. 몇몇 양태에서, 온도 독립적인 기준 전압(VREF)은 1.25 볼트와 동일할 수도 있지만, 다른 적절한 전압이 VREF로서 사용될 수도 있다.
도 8을 또한 참조하면, 몇몇 구현예에서, 밴드갭 전압 생성기(1210)에 의해 생성되는 온도 독립적인 기준 전압(VREF)은 하나 이상의 아날로그 채널(821)을 사용하여 디바이스(800) 전반에 걸쳐 위치되는 위성 모니터(892(1)-892(19)) 각각으로 분배될 수도 있다. 위성 모니터(892(1)-892(19))는, 그들 각각의 전압 저장소를 충전하기 위해 그리고 그들의 ADC를 주기적으로 캘리브레이팅하기 위해, 예를 들면, 아날로그 신호를 샘플링하기 위해 (고도로 정확하고 온도 독립적인 기준 전압(VREF)을 사용하는 것이 아닌) 상대적으로 부정확한 로컬 기준 전압을 사용하는 것과 관련되는 아날로그 대 디지털 변환 에러를 보상하기 위해, 하나 이상의 아날로그 채널(821)로부터 온도 독립적인 기준 전압(VREF)에 선택적으로 액세스할 수도 있다.
메모리(1220)는 NoC 인터커넥트 시스템(820)에 커플링되는 데이터 입력, 컨트롤러(1230)에 커플링되는 제어 입력, 컨트롤러(1230)에 커플링되는 데이터 출력, 및 하나 이상의 출력 포트를 포함하는데, 메모리(1220)에 저장되는 데이터는, 그 하나 이상의 출력 포트로부터, JTAG 인터페이스, 다중화된 입력/출력(MIO) 블록, 또는 AXI 인터페이스 중 하나 이상을 통해 유저에 의해 액세스될 수 있다. 몇몇 구현예에서, 메모리(1220)는 다수의 상태 레지스터(1221) 및 다수의 알람 레지스터(1222)를 포함할 수도 있다. 상태 레지스터(1221)는 디바이스(800) 전반에 걸쳐 제공되는 선택된 회로의 동작 상태를 나타내는 디지털 데이터를 저장할 수도 있고, 알람 레지스터(1222)는 다수의 명시된 동작 범위를 정의하는 복수의 기준 값을 저장할 수도 있다. 상태 레지스터(1221)는 NoC 인터커넥트 시스템(820)을 통해 위성 모니터(892(1)-892(19))로부터 루트 모니터(1200)로 라우팅되는 디지털 데이터로 채워질 수도 있고, 알람 레지스터(1222)는 프로그래머블 디바이스(800)의 구성(또는 재구성) 동안 기준 값으로 채워질 수도 있다.
컨트롤러(1230)는 루트 모니터(1200)의 다양한 동작을 제어할 수도 있고, 위성 모니터(892(1)-892(19))로부터 수신되는 디지털 데이터를 분석하여 선택된 회로 중 임의의 것이 그들의 명시된 동작 범위 내에서 동작하고 있지 않은지의 여부를 결정할 수도 있으며, 유저에 의해 액세스될 수 있는 결과 데이터를 생성할 수도 있다. 몇몇 구현예에서, 컨트롤러(1230)는, 상태 레지스터(1221)에 저장되는 측정된 동작 상태를 알람 레지스터(1222)에 저장되는 대응하는 기준 값과 비교하는 것에 의해, 선택된 회로가 명시된 동작 범위 내에서 동작하고 있는지의 여부를 결정할 수도 있다. 선택된 회로가 그것의 명시된 동작 범위 밖에서 동작하고 있는 것으로 결정되면, 컨트롤러(1230)는 알람을 생성할 수도 있다. 몇몇 양태에서, 알람은, 예를 들면, 선택된 회로의 동작 상태가 그것의 명시된 동작 범위 내에 있을 때까지, 선택된 회로로 하여금 디스에이블되게 또는 전력이 차단되게 할 수도 있다. 다른 양태에서, 알람은, 예를 들면, 선택된 회로의 동작 상태가 명시된 동작 범위 내에 있을 때까지, 프로그래머블 디바이스(800)로 하여금 전력이 차단되게 하거나 또는 감소된 전력 레벨에서 동작하게 할 수도 있다.
알람 레지스터(1222)에 저장되는 명시된 동작 범위 중 일부는 최소 기준 값 및 최대 기준 값에 의해 정의될 수도 있다. 몇몇 구현예에서, 명시된 전압 범위는 최소 전압 값 및 최대 전압 값을 포함할 수도 있다. 그러한 구현예에서, 컨트롤러(1230)는 선택된 회로의 측정된 전압을 알람 레지스터(1222)에 저장되는 최소 및 최대 전압 값과 비교할 수도 있고, 비교에 기초하여 하나 이상의 알람을 생성할 수도 있다. 예를 들면, 측정된 전압이 최소 전압 값과 최대 전압 값 사이에 있는 경우, 컨트롤러(1230)는 선택된 회로가 그것의 명시된 전압 범위 내에서 동작하고 있다는 것을 나타낼 수도 있다. 반대로, 측정된 전압이 최소 전압 값보다 더 작거나 또는 최대 전압 값보다 더 큰 경우, 컨트롤러(1230)는 선택된 회로가 그것의 명시된 전압 범위 내에서 동작하고 있지 않다는 것을 나타내기 위한 알람을 생성할 수도 있다.
알람 레지스터(1222)에 저장되는 다른 명시된 동작 범위는 동작 상한을 정의하는 기준 값을 포함할 수도 있다. 몇몇 구현예에서, 선택된 회로에 대한 명시된 온도 범위는 기준 온도 값에 의해 정의될 수도 있다. 그러한 구현예에서, 컨트롤러(1230)는 선택된 회로의 측정된 온도를 알람 레지스터(1222)에 저장되는 기준 온도 값과 비교할 수도 있고, 비교에 기초하여 하나 이상의 알람을 생성할 수도 있다. 예를 들면, 측정된 온도가 기준 온도 값보다 더 작은(또는 동일한) 경우, 컨트롤러(1230)는 선택된 회로가 그것의 명시된 온도 범위 내에서 동작하고 있다는 것을 나타낼 수도 있다. 반대로, 측정된 온도가 기준 온도 값보다 더 큰 경우, 컨트롤러(1230)는 선택된 회로가 너무 뜨겁다는 것 또는 과열되었다는 것을 나타내는 알람을 생성할 수도 있다.
몇몇 구현예에서, 컨트롤러(1230)는 캘리브레이션 모드 또는 모니터링 모드 중 어느 하나에서 동작하기 위해 각각의 위성 모니터(892(1)-892(19))에 의해 사용될 수 있는 제어 신호(CTRL[1:19])를 생성하도록 구성될 수도 있다. 캘리브레이션 모드에서 동작할 때, 각각의 위성 모니터(892)는 하나 이상의 아날로그 채널(821)로부터 온도 독립적인 기준 전압(VREF)에 액세스할 수도 있고, VREF를 사용하여 (예컨대, 도 13과 관련하여 설명되는) 상대적으로 부정확한 로컬 기준 전압에서의 부정확성으로부터 유래하는 아날로그 대 디지털 변환 에러를 나타내는 보정 계수를 생성할 수도 있다. 모니터링 모드에서 동작할 때, 각각의 위성 모니터(892)는 하나 이상의 센서(S)에 의해 생성되는 아날로그 신호를 디지털 코드로 변환할 수도 있고, (예컨대 도 13과 관련하여 설명되는) 보정 계수에 기초하여 디지털 코드를 보정할 수도 있다. 몇몇 구현예에서, 컨트롤러(1230)는 타이밍 스케줄에 기초하여 제어 신호(CTRL[1:19])를 선택적으로 어써트할 수도 있고, 그 결과, 위성 모니터(892(1)-892(19)) 중 하나만이 하나 이상의 아날로그 채널(821)로부터 VREF에 동시에 액세스할 수도 있다. 이러한 방식으로, 루트 모니터(1200)는, 하나보다 더 많은 위성 모니터(892(1)-892(19))가 온도 독립적인 기준 전압(VREF)에 동시에 액세스하는 것에 의해 야기되는 온도 독립적인 기준 전압(VREF)에서의 강하를 방지할 수도 있다.
예를 들면, 위성 모니터(892(1)-892(19)) 각각에 의해 사용되는 및/또는 그 각각에 저장되는 로컬 기준 전압에서의 임의의 주기적 드리프트가 보정 계수에 대한 대응하는 업데이트에 의해 보상되는 것을 보장하기 위해, 메모리(1220)에 저장될 수도 있는 타이밍 스케줄은 VREF를 사용하여 위성 모니터(892(1)-892(19)) 각각을 주기적으로 캘리브레이팅하기 위한 스케줄을 또한 포함할 수도 있다. 예를 들면, 하나 이상의 구현예에서, 컨트롤러(1230)는 N 밀리초마다 제어 신호(CTRL[1:19])를 순차적으로 어써트할 수도 있고, 그 결과, 위성 모니터(892(1)-892(19)) 각각은 N 밀리초마다 캘리브레이션 동작을 수행하는데, 여기서 N은 임의의 적절한 숫자일 수도 있다. 예를 들면, 전압 저장소에 의해 유지되는 로컬 기준 전압을 어떤 범위 내에(예컨대 온도 독립적인 기준 전압의 값 내에) 유지하기 위해, 타이밍 스케줄은 VREF를 사용하여 위성 모니터(192(1)-192(19)) 각각 내의 전압 저장소를 주기적으로 충전하기 위한 스케줄을 또한 포함할 수도 있다.
도 13은, 몇몇 구현예에 따른, 예시적인 위성 모니터(1300)의 블록도를 도시한다. 임의의 수의 도 8의 위성 모니터(892(1)-892(19)) 또는 도 11의 위성 모니터(SAT1-SAT15)(또는 둘 모두)의 하나의 예일 수도 있는 위성 모니터(1300)는 ADC(1310), 메모리(1320), 로컬 전압 소스(1330), 캘리브레이션 회로(1340), 보정 회로(1345) 및 스위치(SW)를 포함하는 것으로 도시되어 있다. 스위치(SW)는 하나 이상의 아날로그 채널(821)로부터 온도 독립적인 기준 전압(VREF)을 수신하도록 커플링되는 제1 입력 단자, 하나 이상의 관련된 센서(20)에 의해 생성되는 아날로그 신호를 수신하도록 커플링되는 제2 입력 단자, 루트 모니터(1200)에 의해 생성되는 대응하는 제어 신호(CTRL)를 수신하도록 커플링되는 제어 단자, 및 ADC(1310)의 입력 단자에 커플링되는 출력 단자를 포함한다. 몇몇 양태에서, 센서(20)는 온도 센서(21), 공급 전압 센서(22), 및 외부 센서(23)를 포함할 수도 있다(그러나 이들로 제한되지는 않는다).
ADC(1310)는 메모리(1320)에 커플링되는 출력 단자를 포함하고, 로컬 전압 소스(1330)에 커플링되는 하나 이상의 기준 단자를 포함한다. ADC(1310)는 센서(20) 중 하나 이상에 의해 생성되는 아날로그 신호를 디지털 데이터 또는 디지털 코드로 변환할 수 있는 임의의 적절한 ADC일 수도 있다(또는 그 임의의 적절한 ADC를 포함할 수도 있다). 몇몇 구현예에서, ADC(1310)는 센서(20)에 의해 제공되는 아날로그 감지 데이터를 디지털화하기 위해 스케일링된 아키텍쳐를 활용할 수도 있다.
임의의 적절한 스토리지 디바이스일 수도 있는 메모리(1320)는, ADC(1310)의 출력 단자에 커플링되는 입력을 포함하고, NoC 인터커넥트 시스템(820)에 커플링되는 출력을 포함한다. 메모리(1320)는 센서(20) 중 하나 이상에 의해 제공되는 아날로그 신호에 응답하여 ADC(1310)에 의해 생성되는 디지털 데이터를 저장할 수도 있고, 도 12의 루트 모니터(1200)로의 라우팅을 위해 NoC 인터커넥트 시스템(820)에 디지털 데이터를 제공할 수도 있다. 몇몇 구현예에서, 메모리(1320)는 모니터링을 위해 선택되는 복수의 회로 중 대응하는 하나의 동작 상태를 나타내는 디지털 데이터를 각각 저장하기 위한 복수의 레지스터일 수도 있거나 또는 그 복수의 레지스터를 포함할 수도 있다. 이러한 방식으로, 위성 모니터(1300)는 센서(20)로부터 선택된 회로 중 대응하는 하나의 동작 상태를 나타내는 아날로그 신호를 수신할 수도 있고, 아날로그 신호를 디지털 데이터로 변환할 수도 있고, 선택된 회로의 동작 상태를 나타내는 디지털 데이터를 NoC 인터커넥트 시스템(820)을 통해 루트 모니터(1200)로 제공할 수도 있다.
로컬 전압 소스(1330)는 ADC(1310)에 의한 사용에 적절한 로컬 기준 전압(VREF_LOCAL)을 생성할 수 있는(그리고 제조 동안 트리밍될 필요가 없는) 임의의 적절한 상대적으로 작은 또는 면적 효율적인 전압 소스일 수도 있다. 로컬 전압 소스(1330)는 10 개만큼 적은 트랜지스터를 사용하여 구성될 수도 있고, 도 12의 밴드갭 전압 생성기(1210)보다 훨씬 더 적은 회로 면적을 점유한다. 몇몇 구현예에서, 로컬 전압 소스(1330)는 도 12의 밴드갭 전압 생성기(1210)보다 적어도 10의 1승배 더 적은 회로 면적을 점유할 수도 있다. 예를 들면, 하나 이상의 구현예에서, 로컬 전압 소스에 의해 점유되는 회로 면적은 대략 수십 평방 미크론일 수도 있다.
로컬 기준 전압(VREF_LOCAL)은 밴드갭 전압 생성기(1210)에 의해 생성되는 온도 독립적인 기준 전압(VREF)과 비교하여 상대적으로 부정확할 수도 있으며, ADC(1310)에 의해 생성되는 디지털 코드에서 에러를 야기할 수도 있다. 몇몇 구현예에서, 로컬 전압 소스(1330)에 의해 제공되는 로컬 기준 전압은 밴드갭 전압 생성기(1210)에 의해 생성되는 온도 독립적인 기준 전압보다 적어도 10의 1승배 덜 정확할 수도 있다. 하나 이상의 구현예에서, 로컬 기준 전압은 목표 전압의 대략 5 % 이내의 정확도를 가질 수도 있고, 한편, 온도 독립적인 기준 전압은 목표 전압의 대략 0.5 % 이내의 정확도를 가질 수도 있다.
캘리브레이션 회로(1340)는 ADC(1310)의 출력 단자로부터 디지털 코드를 수신하도록 커플링되는 입력, 보정 회로(1345)에 보정 계수를 제공하기 위한 출력, 및 루트 모니터(1200)로부터 대응하는 제어 신호(CTRL)를 수신하기 위한 제어 단자를 포함할 수도 있다. ADC(1310)와 메모리(1320) 사이에서 커플링될 수도 있는 보정 회로(1345)는, 캘리브레이션 회로(1340)에 의해 제공되는 보정 계수를 수신하기 위한 단자를 포함한다. 몇몇 구현예에서, 캘리브레이션 회로(1340)는 ADC(1310)에 의해 생성되는 디지털 코드에서의 에러를 보상하기 위한 보정 계수를 생성하도록 구성될 수도 있고, 보정 회로(1345)는 보정 계수에 기초하여 ADC(1310)에 의해 생성되는 디지털 코드를 보정하도록 구성될 수도 있다.
예를 들면, 캘리브레이션 동작 동안, 제어 신호(CTRL)의 어써트된 상태는 스위치(SW)로 하여금 ADC(1310)에 대한 입력 신호로서 온도 독립적인 기준 전압(VREF)을 제공하게 할 수도 있고, 캘리브레이션 회로(1340)를 또한 인에이블할 수도 있다. ADC(1310)는 온도 독립적인 기준 전압(VREF)을 샘플링하여 기준 코드를 생성할 수도 있고, 캘리브레이션 회로(1340)는 ADC(1310)에 의해 생성되는 기준 코드와 VREF의 공지된 값을 나타내는 사전 결정된 디지털 코드 사이의 차이에 기초하여 보정 계수를 생성할 수도 있다. 모니터링 동작 동안, 제어 신호(CTRL)의 디어써트된 상태는 스위치(SW)로 하여금 ADC(1310)에 대한 입력 신호로서 센서(20)로부터의 아날로그 신호 제공하게 할 수도 있고, 위성 모니터(1300)를 VREF 및/또는 NoC 인터커넥트 시스템(820)으로부터 분리할 수도 있다. ADC(1310)는 센서(20)에 의해 제공되는 아날로그 신호를 샘플링하여 디지털 코드를 생성할 수도 있다. 보정 회로(1345)는, 예를 들면, 보정 계수에 기초하여 디지털 코드를 조정하는 것에 의해, 보정 계수를 사용하여 디지털 코드를 보정할 수도 있다. 이러한 방식으로, 위성 모니터(1300)는 상대적으로 부정확한 로컬 기준 전압(VREF_LOCAL)의 부정확성으로부터 유래하는 아날로그 대 디지털 변환 에러를 보상할 수도 있다.
도 14는, 몇몇 구현예에 따른, 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 복수의 회로의 동작 상태를 모니터링하기 위한 예시적인 동작(1400)을 묘사하는 예시적인 플로우차트이다. 예시적인 동작(1400)은, 단지 예시의 목적을 위해, 도 8의 프로그래머블 디바이스(800), 도 11의 모니터링 시스템(1100), 도 12의 루트 모니터(1200), 및 도 13의 위성 모니터(1300)와 관련하여 하기에서 설명된다. 예시적인 동작(1400)은 본원에서 개시되는 다른 프로그래머블 디바이스에 의해 및/또는 다른 적절한 디바이스에 의해 수행될 수도 있다는 것이 이해되어야 한다.
동작(1400)은 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 복수의 센서 중 대응하는 하나를 사용하여 복수의 회로 각각의 동작 상태를 나타내는 아날로그 신호를 생성하는 것에 의해 블록(1401)에서 시작될 수도 있다. 몇몇 구현예에서, 다수의 센서(20) 각각은 관련된 회로의 부근에서 위치될 수도 있다. 몇몇 양태에서, 센서(20)는 온도 센서(21), 공급 전압 센서(22), 또는 외부 센서(23) 중 적어도 하나일 수도 있다(또는 그 적어도 하나를 포함할 수도 있다). 몇몇 구현예에서, 루트 모니터(890)는, 예를 들면, 도 12의 밴드갭 회로(1212)를 사용하여, 트리밍되고 온도 독립적인 기준 전압(VREF)을 생성할 수도 있다.
동작(1400)은 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 복수의 위성 모니터 중 대응하는 하나에 아날로그 신호 각각을 제공하는 것에 의해 블록(1402)에서 진행될 수도 있다. 몇몇 구현예에서, 센서(20)에 의해 생성되는 아날로그 신호는, 예를 들면, 다양한 회로의 동작 상태를 나타내는 아날로그 신호가 디바이스를 가로질러 라우팅되고 금속 층 신호 라우팅 구조물을 사용하여 중앙 모니터로 제공되는 종래의 프로그래머블 디바이스와는 대조적으로, 상대적으로 짧은 로컬 신호 배선을 사용하여 대응하는 위성 모니터(892(1)-892(19))에 제공될 수도 있다.
동작(1400)은, 복수의 위성 모니터(892(1)-892(19)) 각각에서, (예를 들면, 온도 독립적인 기준 전압에 기초하여) 로컬 전압 소스(1330)를 사용하여 로컬 기준 전압을 생성하는 것에 의해 블록(1403)에서 진행될 수도 있다. 로컬 전압 소스(1330)는 루트 모니터(1200)에서 제공되는 밴드갭 전압 생성기(1210)와 비교하여 상대적으로 작을 수도 있고 따라서 "면적 효율적"일 수도 있다. 몇몇 구현예에서, 로컬 전압 소스(1330)는 열두 개 미만의 트랜지스터를 포함할 수도 있고, 밴드갭 전압 생성기(1210)보다 더 적어도 10의 1승배 더 적은 회로 면적을 소비할 수도 있다. 하나 이상의 구현예에서, 로컬 전압 소스(1330)에 의해 점유되는 회로 면적은 대략 수십 평방 미크론일 수도 있고, 한편, 밴드갭 전압 생성기(1210)에 의해 점유되는 회로 면적은 대략 수백 평방 미크론(또는 심지어 천 평방 미크론)일 수도 있다.
로컬 기준 전압은 밴드갭 전압 생성기(1210)에 의해 생성되는 온도 독립적인 기준 전압과 비교하여 상대적으로 부정확할 수도 있다. 몇몇 구현예에서, 로컬 전압 소스(1330)에 의해 제공되는 및/또는 로컬 전압 소스(1330)에서 저장되는 로컬 기준 전압은 밴드갭 전압 생성기(1210)에 의해 생성되는 온도 독립적인 기준 전압보다 적어도 10의 1승배 덜 정확할 수도 있다. 하나 이상의 구현예에서, 로컬 기준 전압은 목표 전압의 대략 5 % 이내의 정확도를 가질 수도 있고, 한편, 온도 독립적인 기준 전압은 목표 전압의 대략 0.5 % 이내의 정확도를 가질 수도 있다.
동작(1400)은, 복수의 위성 모니터(892(1)-892(19)) 각각에서, 대응하는 아날로그 신호를, 로컬 기준 전압에 기초하여 아날로그 대 디지털 컨버터(ADC)를 사용하여, 디지털 코드로 변환하는 것에 의해, 블록(1404)에서 진행될 수도 있다. 도 13을 또한 참조하면, 위성 모니터(892(1)-892(19)) 각각 내에 제공되는 ADC 회로(1310)는 아날로그 신호를 위성 모니터(892(1)-892(19)) 각각의 메모리(1320)에 저장될 수 있는 디지털 데이터로 변환할 수도 있다. 메모리(1320)는 루트 모니터(890)로의 라우팅을 위해 저장된 디지털 데이터를 인터커넥트 시스템(820)으로 선택적으로 제공할 수도 있다.
동작(1400)은 루트 모니터(890)로부터 복수의 위성 모니터(892(1)-892(19)) 각각으로 온도 독립적인 기준 전압을 분배하는 것에 의해 블록(1405)에서 진행될 수도 있다. 몇몇 구현예에서, 온도 독립적인 기준 전압은 프로그래머블 패브릭에 걸쳐 있는 하나 이상의 아날로그 채널(821)을 사용하여 복수의 위성 모니터(892(1)-892(19)) 각각으로 분배될 수도 있다.
동작(1400)은 분배된 온도 독립적인 기준 전압에 적어도 부분적으로 기초하여 복수의 위성 모니터(892(1)-892(19)) 각각 내의 ADC(1310)에 의해 생성되는 디지털 코드를 보정하는 것에 의해 블록(1406)에서 진행될 수도 있다. 몇몇 구현예에서, 디지털 코드는 로컬 기준 전압에서의 부정확성으로부터 유래하는 아날로그 대 디지털 변환 에러를 나타내는 보정 계수에 기초하여 조정될 수도 있다.
동작(1400)은 보정된 디지털 코드를 복수의 위성 모니터(892(1)-892(19))로부터 루트 모니터(890)로 선택적으로 라우팅하는 것에 의해 블록(1407)에서 진행될 수도 있다. 보정된 디지털 코드는 NoC 인터커넥트 시스템(820)을 사용하여 복수의 위성 모니터(892(1)-892(19))로부터 루트 모니터(890)로 선택적으로 라우팅될 수도 있다. 몇몇 구현예에서, 예를 들면, 위성 모니터(892(1)-892(19))로부터 루트 모니터(890)로의 디지털 데이터의 전달을 스케줄링하기 위해 또는 우선 순위화하기 위해, 위성 모니터(892(1)-892(19)) 각각은 루트 모니터(890)에 의해 생성되는 신호(예컨대, 트리거 신호)에 응답하여 보정된 디지털 코드를 NoC 인터커넥트 시스템(820)에 제공할 수도 있다. 다른 구현예에서, 위성 모니터(892(1)-892(19))는 프롬프트 없이 및/또는 루트 모니터(890)에 의한 제어 없이, 디지털 데이터를 NoC 인터커넥트 시스템(820)에 제공할 수도 있다.
도 15는 위성 모니터 각각 내에서 제공되는 ADC에 의해 생성되는 디지털 코드를 보정하기 위한 예시적인 동작(1500)을 묘사하는 예시적인 플로우차트이다. 예시적인 동작(1500)은, 단지 예시의 목적을 위해, 도 8의 프로그래머블 디바이스(800), 도 11의 모니터링 시스템(1100), 도 12의 루트 모니터(1200), 및 도 13의 위성 모니터(1300)와 관련하여 하기에서 설명된다. 예시적인 동작(1500)은 본원에서 개시되는 다른 프로그래머블 디바이스에 의해 및/또는 다른 적절한 디바이스에 의해 수행될 수도 있다는 것이 이해되어야 한다. 몇몇 구현예에서, 예시적인 동작은 도 14와 관련하여 상기에서 설명되는 동작(1400)의 프로세스(1408)의 한 예일 수도 있다.
동작(1500)은 ADC(1310)에 대한 입력 신호로서 온도 독립적인 기준 전압을 제공하는 것에 의해 블록(1501)에서 시작될 수도 있다. 동작(1500)은 ADC(1310)를 사용하여 온도 독립적인 기준 전압을 기준 코드로 변환하는 것에 의해 블록(1502)에서 진행될 수도 있다. 동작(1500)은 기준 코드와 온도 독립적인 기준 전압을 나타내는 사전 결정된 디지털 코드 사이의 차이에 기초하여 보정 계수를 생성하는 것에 의해 블록(1503)에서 진행될 수도 있다. 동작(1500)은 보정 계수에 기초하여 디지털 코드를 조정하는 것에 의해 블록(1504)에서 진행될 수도 있다.
도 16은, 몇몇 구현예에 따른, 예시적인 위성 모니터(1600)의 블록도를 도시한다. 임의의 수의 도 8의 위성 모니터(892(1)-892(19)) 또는 도 4의 위성 모니터(SAT1-SAT15)(또는 둘 모두)의 하나의 예일 수도 있는 위성 모니터(1600)는 ADC(1610), 메모리(1620), 전압 저장소(1630), 캘리브레이션 회로(1640), 보정 회로(1645), 제1 스위치(SW1), 제2 스위치(SW2)를 포함하는 것으로 도시되어 있다. 제1 스위치(SW1)는 하나 이상의 아날로그 채널(821)로부터 온도 독립적인 기준 전압(VREF)을 수신하도록 커플링되는 제1 입력 단자, 하나 이상의 관련된 센서(20)에 의해 생성되는 아날로그 신호를 수신하도록 커플링되는 제2 입력 단자, 제1 제어 신호(CTRL1) 중 대응하는 하나를 수신하도록 커플링되는 제어 단자, 및 ADC(1610)의 입력 단자에 커플링되는 출력 단자를 포함한다. 제2 스위치(SW2)는 하나 이상의 아날로그 채널로부터 온도 독립적인 기준 전압을 수신하도록 커플링되는 입력 단자, 제2 제어 신호(CTRL2) 중 대응하는 하나를 수신하도록 커플링되는 제어 단자, 및 전압 저장소(1630)에 커플링되는 출력 단자를 포함한다. 몇몇 양태에서, 센서(20)는 온도 센서(21), 공급 전압 센서(22), 및 외부 센서(23)를 포함할 수도 있다(그러나 이들로 제한되지는 않는다).
ADC(1610)는 메모리(1620)에 커플링되는 출력 단자를 포함하고, 로컬 전압 저장소(1630)에 커플링되는 하나 이상의 기준 단자를 포함한다. ADC(1610)는 센서(20) 중 하나 이상에 의해 생성되는 아날로그 신호를 디지털 데이터 또는 디지털 코드로 변환할 수 있는 임의의 적절한 ADC일 수도 있다(또는 그 임의의 적절한 ADC를 포함할 수도 있다). 몇몇 구현예에서, ADC(1610)는 센서(20)에 의해 제공되는 아날로그 감지 데이터를 디지털화하기 위해 스케일링된 아키텍쳐를 활용할 수도 있다.
임의의 적절한 스토리지 디바이스일 수도 있는 메모리(1620)는, ADC(1610)의 출력 단자에 커플링되는 입력을 포함하고, NoC 인터커넥트 시스템(820)에 커플링되는 출력을 포함한다. 메모리(1620)는 센서(20) 중 하나 이상에 의해 제공되는 아날로그 신호에 응답하여 ADC(1610)에 의해 생성되는 디지털 데이터를 저장할 수도 있고, 도 12의 루트 모니터(1200)로의 라우팅을 위해 NoC 인터커넥트 시스템(820)에 디지털 데이터를 제공할 수도 있다. 몇몇 구현예에서, 메모리(1620)는 모니터링을 위해 선택되는 복수의 회로 중 대응하는 하나의 동작 상태를 나타내는 디지털 데이터를 각각 저장하기 위한 복수의 레지스터일 수도 있거나 또는 그 복수의 레지스터를 포함할 수도 있다. 이러한 방식으로, 위성 모니터(1600)는 센서(20)로부터 선택된 회로 중 대응하는 하나의 동작 상태를 나타내는 아날로그 신호를 수신할 수도 있고, 아날로그 신호를 디지털 데이터로 변환할 수도 있고, 선택된 회로의 동작 상태를 나타내는 디지털 데이터를 NoC 인터커넥트 시스템(820)을 통해 루트 모니터(1200)로 제공할 수도 있다.
전압 저장소(1630)는 ADC(1610)에 의한 사용에 적절한 로컬 기준 전압(VREF_LOCAL)을 저장할 수 있는 임의의 적절한 디바이스 또는 컴포넌트일 수도 있다. 몇몇 구현예에서, 전압 저장소(1630)는, 예를 들면, 도 16에서 묘사되는 바와 같은 커패시터일 수도 있다. 더 구체적으로, 몇몇 구현예에서, 전압 저장소(1630)는 커패시터(C1)로서 구현될 수도 있고, 제2 스위치(SW2)는 CMOS 트랜지스터(M1)로서 구현될 수도 있다. 커패시터(C1)는 트랜지스터(M1)(제2 스위치(SW2)로 동작함)와 ADC(1610)의 기준 단자 사이에서 커플링되며, 도 12의 밴드갭 전압 생성기(1210)보다 훨씬 더 적은 회로 면적을 점유할 수도 있다. 또한, 커패시터는, 예를 들면, 밴드갭 전압 생성기(1210)와 같은 정확한 전압 기준이 그러한 것처럼, 제조 동안 트리밍될 필요가 없다. 몇몇 구현예에서, 전압 저장소(1630)는 도 12의 밴드갭 전압 생성기(1210)보다 적어도 10의 1승배 더 적은 회로 면적을 점유할 수도 있다. 예를 들면, 하나 이상의 구현예에서, 로컬 전압 저장소(1630)에 의해 점유되는 회로 면적은 대략 수십 평방 미크론일 수도 있다.
로컬 기준 전압(VREF_LOCAL)은 밴드갭 전압 생성기(1210)에 의해 생성되는 온도 독립적인 기준 전압(VREF)과 비교하여 상대적으로 부정확할 수도 있으며, ADC(1610)에 의해 생성되는 디지털 코드에서 에러를 야기할 수도 있다. 몇몇 구현예에서, 로컬 전압 저장소(1630)에 의해 제공되는 로컬 기준 전압은 밴드갭 전압 생성기(1210)에 의해 생성되는 온도 독립적인 기준 전압보다 적어도 10의 1승배 덜 정확할 수도 있다. 하나 이상의 구현예에서, 로컬 기준 전압은 목표 전압의 대략 5 % 이내의 정확도를 가질 수도 있고, 한편, 온도 독립적인 기준 전압은 목표 전압의 대략 0.5 % 이내의 정확도를 가질 수도 있다.
캘리브레이션 회로(1640)는 ADC(1610)의 출력 단자로부터 디지털 코드를 수신하도록 커플링되는 입력, 보정 회로(1645)에 보정 계수를 제공하기 위한 출력, 및 루트 모니터(1200)로부터 대응하는 제1 제어 신호(CTRL1)를 수신하기 위한 제어 단자를 포함할 수도 있다. ADC(1610)와 메모리(1620) 사이에서 커플링될 수도 있는 보정 회로(1645)는, 캘리브레이션 회로(1640)에 의해 제공되는 보정 계수를 수신하기 위한 단자를 포함한다. 몇몇 구현예에서, 캘리브레이션 회로(1640)는 ADC(1610)에 의해 생성되는 디지털 코드에서의 에러를 보상하기 위한 보정 계수를 생성하도록 구성될 수도 있고, 보정 회로(1645)는 보정 계수에 기초하여 ADC(1610)에 의해 생성되는 디지털 코드를 보정하도록 구성될 수도 있다.
예를 들면, 캘리브레이션 동작 동안, 제1 제어 신호(CTRL1)는 (예를 들면, 로직 하이로) 어써트될 수도 있고, 제2 제어 신호(CTRL2)는 (예를 들면, 로직 하이로) 어써트될 수도 있다. 제1 제어 신호(CTRL)의 어써트된 상태는 제1 스위치(SW1)로 하여금 ADC(1610)에 대한 입력 신호로서 온도 독립적인 기준 전압(VREF)을 제공하게 할 수도 있고, 캘리브레이션 회로(1640)를 또한 인에이블할 수도 있다. 제2 제어 신호(CTRL2)의 어써트된 상태는 제2 스위치(SW2)를 개방하고 전압 저장소(1630)를 하나 이상의 아날로그 채널(821)에 커플링할 수도 있고, 그에 의해, 전압 저장소(1630)가 온도 독립적인 기준 전압과 대략 동일한 값까지 충전되는 것을 허용할 수도 있다(그 결과, 저장된 전하는 ADC(1610)에 의해 로컬 기준 전압(VREF_LOCAL)으로서 사용될 수도 있음). 스위치(SW1 및 SW2)의 전도 상태는, 예를 들면, V_REF가 ADC(1610)의 입력 단자에 그리고 전압 저장소(1630)에 커플링되는 것에 의해 야기되는, 온도 독립적인 기준 전압에서의 교란(예컨대, 강하)을 야기할 수도 있다.
일단 전압 저장소(1630)가 충분히 충전되고 로컬 기준 전압(VREF_LOCAL)을 저장하면, 제2 제어 신호(CTRL2)는 (예를 들면, 로직 로우로) 디어써트될 수도 있다. 제2 제어 신호(CTRL2)의 디어써트된 상태는 제2 스위치(SW2)를 폐쇄하고 전압 저장소(1630)가 하나 이상의 아날로그 채널(821)로부터 온도 독립적인 기준 전압에 액세스하는 것을 방지할 수도 있다. 제2 제어 신호(CTRL2)의 디어써션(de-assertion)은 온도 독립적인 기준 전압(V_REF)에서 교란(예컨대, 강하)을 또한 야기할 수도 있다. 몇몇 구현예에서, 제1 제어 신호(CTRL1)는 온도 독립적인 기준 전압(VREF)에서의 교란이 안정될 때까지 어써트된 상태로 유지될 수도 있다. 그 이후, 제1 제어 신호(CTRL1)는 (예를 들면, 로직 로우로) 디어써트될 수도 있고, ADC(1610)는 온도 독립적인 기준 전압(VREF)을 샘플링하여 기준 코드를 생성할 수도 있다. 캘리브레이션 회로(1640)는 ADC(1610)에 의해 생성되는 기준 코드와 VREF의 공지된 값을 나타내는 사전 결정된 디지털 코드 사이의 차이에 기초하여 보정 계수를 생성할 수도 있다. 보정 계수는 보정 회로(1645)에 제공될 수도 있다(그리고 보정 회로(1645)에서 저장될 수도 있다).
모니터링 동작 동안, 제1 제어 신호(CTRL1)는 디어써트된 상태로 유지될 수도 있고, 그에 의해, 제1 스위치(SW1)가 센서(20)에 의해 생성되는 아날로그 신호를 ADC(1610)에 대한 입력 신호로서 제공하는 것을 허용할 수도 있다(또한 캘리브레이션 회로(1640)를 디스에이블할 수도 있다). ADC(1610)는 센서(20)에 의해 제공되는 아날로그 신호를 샘플링하고 샘플링된 아날로그 신호를 나타내는 디지털 코드를 생성할 수도 있다. 보정 회로(1645)는, 예를 들면, 보정 계수에 기초하여 디지털 코드를 조정하는 것에 의해, 캘리브레이션 동작 동안 생성되는 보정 계수를 사용하여 디지털 코드를 보정할 수도 있다. 이러한 방식으로, 위성 모니터(1600)는 상대적으로 부정확한 로컬 기준 전압(VREF_LOCAL)의 부정확성으로부터 유래하는 아날로그 대 디지털 변환 에러를 보상할 수도 있다.
몇몇 구현예에서, (VREF_LOCAL로서) 전압 저장소(1630)에 의해 저장되는 최소 전압 레벨을 유지하기 위해 그리고 위성 모니터(1600)가 올바르게 캘리브레이팅된 상태로 유지되는 것을 보장하기 위해, 캘리브레이션 동작이 주기적으로(예컨대 N 밀리초마다, 여기서 N은 제로보다 더 큰 임의의 적절한 숫자임) 수행될 수도 있다.
예
예 1: 프로그래머블 디바이스로서: 복수의 구성 가능한 로직 리소스; 기준 전압을 생성하도록 구성되는 회로부를 포함하는 루트 모니터; 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 다수의 센서 - 센서 각각은 다양한 위치 중 대응하는 하나에서 관련된 회로의 동작 상태를 측정하도록 구성됨 - ; 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 복수의 위성 모니터 - 위성 모니터 각각은 대응하는 위성 모니터의 부근에서 위치되는 하나 이상의 관련된 센서에 커플링됨 - ; 및 구성 가능한 로직 리소스에, 루트 모니터에, 그리고 복수의 위성 모니터 각각에 커플링되는 인터커넥트 시스템을 포함하되, 인터커넥트 시스템은: 기준 전압을 루트 모니터로부터 복수의 위성 모니터 각각으로 분배하도록; 그리고 디지털 데이터 - 디지털 데이터는 측정된 동작 상태를 나타냄 - 를 복수의 위성 모니터 각각으로부터 루트 모니터로 선택적으로 라우팅하도록 구성된다.
예 2: 예 1의 프로그래머블 디바이스로서, 동작 상태는 온도 또는 전압 레벨 중 적어도 하나를 포함한다.
예 3: 예 1의 프로그래머블 디바이스로서, 루트 모니터는 온도 변동에 대한 기준 전압을 보상하도록 구성되는 밴드갭 회로를 포함한다.
예 4: 예 1의 프로그래머블 디바이스로서, 위성 모니터 각각은 다음의 것을 포함한다: 하나 이상의 관련된 센서에 의해 측정되는 동작 상태를 나타내는 아날로그 신호를 수신하기 위한 입력, 디지털 데이터를 인터커넥트 시스템에 제공하기 위한 출력, 및 로컬 기준 전압을 수신하기 위한 기준 단자를 포함하는 아날로그 대 디지털 컨버터(ADC).
예 5: 예 4의 프로그래머블 디바이스로서, 로컬 기준 전압은 인터커넥트 시스템에 의해 분배되는 기준 전압에 적어도 부분적으로 기초한다.
예 6: 예 4의 프로그래머블 디바이스로서, 위성 모니터 각각은 다음의 것을 더 포함한다: ADC의 출력에 커플링되는 입력을 포함하고, 인터커넥트 시스템에 커플링되는 출력을 포함하며, ADC에 의해 제공되는 디지털 데이터를 저장하도록 구성되는 메모리.
예 7: 예 4의 프로그래머블 디바이스로서, 위성 모니터 각각은 다음의 것을 더 포함한다: 루트 모니터에 의해 생성되는 제어 신호에 기초하여 인터커넥트 시스템에 의해 분배되는 기준 전압을 위성 모니터에 선택적으로 커플링하도록 구성되는 스위치.
예 8: 예 7의 프로그래머블 디바이스로서, 제어 신호는 인터커넥트 시스템에 의해 분배되는 기준 전압을 위성 모니터 중 하나에만 동시에 커플링하도록 구성된다.
예 9: 예 1의 프로그래머블 디바이스로서, 복수의 위성 모니터 중 적어도 일부는 인터커넥트 시스템 내에 통합된다.
예 10: 예 1의 프로그래머블 디바이스로서, 인터커넥트 시스템은 다음의 것을 더 포함한다: 기준 전압을 루트 모니터로부터 복수의 위성 모니터 각각으로 분배하도록 구성되는 하나 이상의 아날로그 채널; 및 디지털 데이터를, 개별적으로 주소 지정 가능한 데이터 패킷으로서, 위성 모니터로부터 루트 모니터로 선택적으로 라우팅하도록 구성되는 하나 이상의 디지털 채널.
예 11: 예 1의 프로그래머블 디바이스로서, 루트 모니터는 다음의 것을 더 포함한다: 복수의 위성 모니터 각각으로부터 수신되는 디지털 데이터를 저장하도록 구성되는 메모리; 및 관련된 회로 중 적어도 하나의 측정된 동작 상태가 범위 내에 있는지의 여부를 결정하도록 구성되는 컨트롤러.
예 12: 프로그래머블 디바이스의 다수의 동작 상태를 모니터링하기 위한 시스템으로서, 시스템은: 기준 전압을 생성하도록 구성되는 회로부를 포함하는 루트 모니터; 프로그래머블 디바이스에 걸쳐 분포되는 복수의 센서 - 센서 각각은 관련된 회로의 동작 상태를 나타내는 아날로그 신호를 생성하도록 구성됨 - ; 프로그래머블 디바이스에 걸쳐 분포되는 복수의 위성 모니터 - 위성 모니터 각각은 하나 이상의 대응하는 센서에 의해 생성되는 아날로그 신호를 디지털 데이터로 변환하도록 구성됨 - ; 및 적어도 루트 모니터 및 복수의 위성 모니터 각각에 커플링되는 인터커넥트 시스템을 포함하되, 인터커넥트 시스템은 다음의 것을 포함한다: 기준 전압을 루트 모니터로부터 복수의 위성 모니터 각각으로 분배하도록 구성되는 하나 이상의 아날로그 채널; 및 디지털 데이터를 복수의 위성 모니터 각각으로부터 루트 모니터로 선택적으로 라우팅하도록 구성되는 하나 이상의 디지털 채널.
예 13: 예 12의 시스템으로서, 동작 상태는 온도 또는 전압 레벨 중 적어도 하나를 포함한다.
예 14: 예 12의 시스템으로서, 위성 모니터 각각은 다음의 것을 포함한다: 하나 이상의 관련된 센서에 의해 생성되는 아날로그 신호를 디지털 데이터로 변환하도록 구성되는 아날로그 대 디지털 컨버터(ADC).
예 15: 예 14의 시스템으로서, 위성 모니터 각각은 다음의 것을 더 포함한다: 루트 모니터에 의해 생성되는 제어 신호에 기초하여 인터커넥트 시스템에 의해 분배되는 기준 전압을 위성 모니터에 선택적으로 커플링하도록 구성되는 스위치.
예 16: 예 15의 시스템으로서, 제어 신호는 인터커넥트 시스템에 의해 분배되는 기준 전압을 위성 모니터 중 하나에만 동시에 커플링하도록 구성된다.
예 17: 프로그래머블 디바이스의 다수의 동작 상태를 모니터링하는 방법으로서, 방법은 다음의 것을 포함한다: 프로그래머블 디바이스 내에 제공되는 루트 모니터와 관련되는 전압 생성기를 사용하여 기준 전압을 생성하는 것; 프로그래머블 디바이스 내에 통합되는 인터커넥트 시스템의 하나 이상의 아날로그 채널을 사용하여 복수의 위성 모니터 각각으로 기준 전압을 분배하는 것; 다수의 센서 각각을 사용하여, 관련된 회로의 동작 상태를 나타내는 아날로그 신호를 생성하는 것; 다수의 센서에 의해 생성되는 아날로그 신호를 복수의 위성 모니터 중 대응하는 위성 모니터에 제공하는 것; 복수의 위성 모니터를 사용하여 아날로그 신호를 디지털 데이터로 변환하는 것; 및 인터커넥트 시스템의 하나 이상의 디지털 채널을 사용하여 디지털 데이터를 복수의 위성 모니터로부터 루트 모니터로 선택적으로 라우팅하는 것.
예 18: 예 17의 방법으로서, 동작 상태는 온도 또는 전압 레벨 중 적어도 하나를 포함한다.
예 19: 예 17의 방법으로서, 기준 전압을 분배하는 것은 다음의 것을 더 포함한다: 루트 모니터에 의해 생성되는 대응하는 제어 신호에 기초하여 복수의 위성 모니터 각각을 인터커넥트 시스템에 선택적으로 커플링하는 것.
예 20: 예 19의 방법으로서, 제어 신호는 인터커넥트 시스템에 의해 분배되는 기준 전압을 위성 모니터 중 하나에만 동시에 커플링하도록 구성된다.
예 21: 프로그래머블 디바이스로서, 복수의 구성 가능한 로직 리소스를 포함하는 프로그래머블 로직; 온도 독립적인 기준 전압을 생성하도록 구성되는 밴드갭 전압 생성기를 포함하는 루트 모니터; 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 복수의 센서 - 센서 각각은 다양한 위치 중 대응하는 하나의 부근에서 하나 이상의 관련된 회로의 측정된 동작 상태를 나타내는 아날로그 신호를 생성하도록 구성됨 - ; 및 다양한 위치에서 프로그래머블 디바이스에 걸쳐 분포되는 복수의 위성 모니터를 포함하되, 위성 모니터 각각은 하나 이상의 로컬 신호 라인을 통해 하나 이상의 관련된 센서에 커플링되고, 다음의 것을 포함한다: 로컬 기준 전압을 생성하도록 구성되는 상대적으로 작은 로컬 전압 소스; 로컬 기준 전압을 수신하기 위한 기준 단자를 포함하며 하나 이상의 관련된 센서에 의해 생성되는 아날로그 신호를, 측정된 동작 상태를 나타내는 디지털 코드로 변환하도록 구성되는 아날로그 대 디지털 컨버터(ADC); 디지털 코드에서의 에러를 나타내는 보정 계수를 생성하도록 구성되는 캘리브레이션 회로; 및 보정 계수에 기초하여 디지털 코드를 보정하도록 구성되는 보정 회로.
예 22: 예 21의 프로그래머블 디바이스로서, 로컬 전압 소스는 열두 개 미만의 트랜지스터로 구성되고, 밴드갭 전압 생성기보다 적어도 10의 1승배 더 적은 회로 면적을 소비한다.
예 23: 예 21의 프로그래머블 디바이스로서, 디지털 코드에서의 에러는 온도 독립적인 기준 전압으로부터의 로컬 기준 전압의 편차와 관련된다.
예 24: 예 21의 프로그래머블 디바이스로서, 보정 계수는 온도 독립적인 기준 전압을 샘플링하는 것에 응답하여 ADC에 의해 생성되는 기준 코드와 온도 독립적인 기준 전압을 나타내는 사전 결정된 디지털 코드 사이의 차이에 기초한다.
예 25: 예 21의 프로그래머블 디바이스로서, 다음의 것을 더 포함한다: 프로그래머블 로직에 걸쳐 있고 디지털 데이터를 복수의 위성 모니터 각각으로부터 루트 모니터로 선택적으로 라우팅하도록 구성되는 네트워크 온 칩(NoC) 인터커넥트 시스템.
예 26: 예 25의 프로그래머블 디바이스로서, 루트 모니터는 다음의 것을 더 포함한다: NoC 인터커넥트 시스템을 통해 복수의 위성 모니터로부터 수신되는 디지털 데이터를 저장하도록 구성되는 메모리; 및 디지털 데이터에 의해 구체화되는 측정된 동작 상태가 범위 내에 있는지의 여부를 결정하도록 구성되는 컨트롤러.
예 27: 예 25의 프로그래머블 디바이스로서, 다음의 것을 더 포함한다: 온도 독립적인 기준 전압을 루트 모니터로부터 복수의 위성 모니터 각각으로 분배하도록 구성되는 하나 이상의 아날로그 채널.
예 28: 예 27의 프로그래머블 디바이스로서, NoC 인터커넥트 시스템은 하나 이상의 아날로그 채널을 포함한다.
예 29: 예 27의 프로그래머블 디바이스로서, 위성 모니터 각각은 다음의 것을 더 포함한다: 하나 이상의 아날로그 채널로부터 온도 독립적인 기준 전압을 수신하도록 커플링되는 제1 입력 단자를 포함하는 스위치, 하나 이상의 관련된 센서에 의해 생성되는 아날로그 신호를 수신하도록 커플링되는 제2 입력 단자, 제어 신호를 수신하도록 커플링되는 제어 단자, 및 위성 모니터 내의 ADC의 입력 단자에 커플링되는 출력 단자.
예 30: 예 29의 프로그래머블 디바이스로서, 캘리브레이션 동작 동안, 스위치는 ADC에 대한 입력 신호로서 온도 독립적인 기준 전압을 제공하고; 그리고 모니터링 동작 동안, 스위치는 센서로부터의 아날로그 신호를 ADC에 대한 입력 신호로서 제공한다.
예 31: 예 30의 프로그래머블 디바이스로서, 캘리브레이션 동작 동안, ADC는 온도 독립적인 기준 전압을 샘플링하여 기준 코드를 생성하고; 그리고 모니터링 동작 동안, ADC는 하나 이상의 관련된 센서로부터 아날로그 신호를 샘플링하여 디지털 코드를 생성한다.
예 32: 예 31의 프로그래머블 디바이스로서, 캘리브레이션 회로는 ADC에 의해 생성되는 기준 코드와 온도 독립적인 기준 전압을 나타내는 사전 결정된 디지털 코드 사이의 차이에 기초하여 보정 계수를 생성하도록 구성된다.
예 33: 예 29의 프로그래머블 디바이스로서, 루트 모니터는 복수의 위성 모니터를 캘리브레이팅하기 위한 타이밍 스케줄에 적어도 부분적으로 기초하여 제어 신호를 생성하도록 구성된다.
예 34: 예 33의 프로그래머블 디바이스로서, 타이밍 스케줄은 한 번에 위성 모니터 중 단지 하나에만 온도 독립적인 기준 전압을 제공하는 것에 의해 복수의 위성 모니터 각각의 캘리브레이션을 순차적으로 가능하게 하도록 구성된다.
예 35: 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 복수의 회로의 동작 상태를 모니터링하는 방법으로서, 방법은 다음의 것을 포함한다: 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 복수의 센서 중 대응하는 하나를 사용하여 복수의 회로 각각의 동작 상태를 나타내는 아날로그 신호를 생성하는 것; 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 복수의 위성 모니터 중 대응하는 하나에 아날로그 신호 각각을 제공하는 것; 복수의 위성 모니터 각각에서, 상대적으로 작은 로컬 전압 소스를 사용하여 로컬 기준 전압을 생성하는 것; 복수의 위성 모니터 각각에서, 복수의 아날로그 신호 중 대응하는 하나를, 로컬 기준 전압에 기초하여 아날로그 대 디지털 컨버터(ADC)를 사용하여, 디지털 코드로 변환하는 것; 온도 독립적인 기준 전압을 루트 모니터로부터 복수의 위성 모니터 각각으로 분배하는 것; 분배된 온도 독립적인 기준 전압에 적어도 부분적으로 기초하여 복수의 위성 모니터 각각 내의 ADC에 의해 생성되는 디지털 코드를 보정하는 것; 및 보정된 디지털 코드를 복수의 위성 모니터 각각으로부터 루트 모니터로 선택적으로 라우팅하는 것.
예 36: 예 35의 방법으로서, 로컬 전압 소스는 열두 개 미만의 트랜지스터로 구성되고, 밴드갭 전압 생성기보다 적어도 10의 1승배 더 적은 회로 면적을 소비한다.
예 37: 예 35의 방법으로서, 보정된 디지털 코드는 프로그래머블 디바이스에 걸쳐 있는 네트워크 온 칩(NoC) 인터커넥트 시스템을 사용하여 복수의 위성 모니터로부터 루트 모니터로 선택적으로 라우팅되고; 그리고 온도 독립적인 기준 전압은 프로그래머블 디바이스에 걸쳐 있는 하나 이상의 아날로그 채널을 사용하여 루트 모니터로부터 복수의 위성 모니터로 분배된다.
예 38: 예 35의 방법으로서, 온도 독립적인 기준 전압을 분배하는 것은 다음의 것을 더 포함한다: 루트 모니터에 의해 생성되는 대응하는 복수의 제어 신호에 기초하여 복수의 위성 모니터 각각이 온도 독립적인 기준 전압에 액세스하는 것을 순차적으로 가능하게 하는 것.
예 39: 예 35의 방법으로서, 보정하는 것은 다음의 것을 포함한다: ADC에 대한 입력 신호로서 온도 독립적인 기준 전압을 제공하는 것; ADC를 사용하여 온도 독립적인 기준 전압을 기준 코드로 변환하는 것; 기준 코드와 온도 독립적인 기준 전압을 나타내는 사전 결정된 디지털 코드 사이의 차이에 기초하여 보정 계수를 생성하는 것; 및 보정 계수에 기초하여 디지털 코드를 조정하는 것.
예 40: 예 39의 방법으로서, 보정 계수는 온도 독립적인 기준 전압으로부터의 로컬 기준 전압의 편차와 관련되는 디지털 코드에서의 에러를 보상하도록 구성된다.
예 41: 프로그래머블 디바이스로서, 복수의 구성 가능한 로직 리소스를 포함하는 프로그래머블 로직; 온도 독립적인 기준 전압을 생성하도록 구성되는 밴드갭 전압 생성기를 포함하는 루트 모니터; 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 복수의 센서 - 센서 각각은 다양한 위치 중 대응하는 하나의 부근에서 하나 이상의 관련된 회로의 측정된 동작 상태를 나타내는 아날로그 신호를 생성하도록 구성됨 - ; 및 다양한 위치에서 프로그래머블 디바이스에 걸쳐 분포되는 복수의 위성 모니터를 포함하되, 위성 모니터 각각은 하나 이상의 로컬 신호 라인을 통해 하나 이상의 관련된 센서에 커플링되고, 다음의 것을 포함한다: 밴드갭 전압 생성기에 의해 생성되는 온도 독립적인 기준 전압에 기초하여 로컬 기준 전압을 저장하도록 구성되는 전압 저장소; 로컬 기준 전압을 수신하기 위한 기준 단자를 포함하며 하나 이상의 관련된 센서에 의해 생성되는 아날로그 신호를, 측정된 동작 상태를 나타내는 디지털 코드로 변환하도록 구성되는 아날로그 대 디지털 컨버터(ADC); 디지털 코드에서의 에러를 나타내는 보정 계수를 생성하도록 구성되는 캘리브레이션 회로; 및 보정 계수에 기초하여 디지털 코드를 보정하도록 구성되는 보정 회로.
예 42: 예 41의 프로그래머블 디바이스로서, 로컬 기준 전압은 밴드갭 전압 생성기에 의해 생성되는 온도 독립적인 기준 전압보다 적어도 10의 1승배 덜 정확하다.
예 43: 예 41의 프로그래머블 디바이스로서, 전압 저장소는 커패시터를 포함한다.
예 44: 예 41의 프로그래머블 디바이스로서, 디지털 코드에서의 에러는 온도 독립적인 기준 전압으로부터의 로컬 기준 전압의 편차와 관련된다.
예 45: 예 41의 프로그래머블 디바이스로서, 보정 계수는 온도 독립적인 기준 전압을 샘플링하는 것에 응답하여 ADC에 의해 생성되는 기준 코드와 온도 독립적인 기준 전압을 나타내는 사전 결정된 디지털 코드 사이의 차이에 기초한다.
예 46: 예 41의 프로그래머블 디바이스로서, 다음의 것을 더 포함한다: 프로그래머블 로직에 걸쳐 있고 디지털 데이터를 복수의 위성 모니터 각각으로부터 루트 모니터로 선택적으로 라우팅하도록 구성되는 네트워크 온 칩(NoC) 인터커넥트 시스템.
예 47: 예 46의 프로그래머블 디바이스로서, 루트 모니터는 다음의 것을 더 포함한다: NoC 인터커넥트 시스템을 통해 복수의 위성 모니터로부터 수신되는 디지털 데이터를 저장하도록 구성되는 메모리; 및 디지털 데이터에 의해 구체화되는 측정된 동작 상태가 범위 내에 있는지의 여부를 결정하도록 구성되는 컨트롤러.
예 48: 예 46의 프로그래머블 디바이스로서, 다음의 것을 더 포함한다: 온도 독립적인 기준 전압을 루트 모니터로부터 복수의 위성 모니터 각각으로 분배하도록 구성되는 하나 이상의 아날로그 채널.
예 49: 예 48의 프로그래머블 디바이스로서, NoC 인터커넥트 시스템은 하나 이상의 아날로그 채널을 포함한다.
예 50: 예 48의 프로그래머블 디바이스로서, 위성 모니터 각각은 다음의 것을 더 포함한다: 하나 이상의 아날로그 채널로부터 온도 독립적인 기준 전압을 수신하도록 커플링되는 제1 입력 단자를 포함하는 제1 스위치, 하나 이상의 관련된 센서에 의해 생성되는 아날로그 신호를 수신하도록 커플링되는 제2 입력 단자, 제어 신호를 수신하도록 커플링되는 제어 단자, 및 위성 모니터 내의 ADC의 입력 단자에 커플링되는 출력 단자.
예 51: 예 50의 프로그래머블 디바이스로서, 위성 모니터 각각은 다음의 것을 더 포함한다: 하나 이상의 아날로그 채널로부터 온도 독립적인 기준 전압을 수신하도록 커플링되는 입력 단자를 포함하는 제2 스위치, 제어 신호를 수신하도록 커플링되는 제어 단자, 및 전압 저장소에 커플링되는 출력 단자.
예 52: 예 51의 프로그래머블 디바이스로서, 캘리브레이션 동작 동안: 제1 스위치는 ADC에 대한 입력 신호로서 온도 독립적인 기준 전압을 제공하고; 제2 스위치는 전압 저장소를 충전하고 그 다음 전압 저장소를 온도 독립적인 기준 전압으로부터 분리하고; 그리고 ADC는 온도 독립적인 기준 전압을 샘플링하여 기준 코드를 생성한다.
예 53: 예 52의 프로그래머블 디바이스로서, 모니터링 동작 동안: 제1 스위치는 센서로부터의 아날로그 신호를 ADC에 대한 입력 신호로서 제공하고; 제2 스위치는 온도 독립적인 기준 전압을 전압 저장소에 주기적으로 제공하고; 그리고 ADC는 하나 이상의 관련된 센서로부터 아날로그 신호를 샘플링하여 디지털 코드를 생성한다.
예 54: 예 51의 프로그래머블 디바이스로서, 루트 모니터는 복수의 위성 모니터를 캘리브레이팅하기 위한 타이밍 스케줄에 적어도 부분적으로 기초하여 제어 신호를 생성하도록 구성된다.
예 55: 예 54의 프로그래머블 디바이스로서, 타이밍 스케줄은 한 번에 위성 모니터 중 단지 하나에만 온도 독립적인 기준 전압을 제공하는 것에 의해 복수의 위성 모니터 각각의 캘리브레이션을 순차적으로 가능하게 하도록 구성된다.
예 56: 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 복수의 회로의 동작 상태를 모니터링하는 방법으로서, 방법은 다음의 것을 포함한다: 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 복수의 센서 중 대응하는 하나를 사용하여 복수의 회로 각각의 동작 상태를 나타내는 아날로그 신호를 생성하는 것; 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 복수의 위성 모니터 중 대응하는 하나에 아날로그 신호 각각을 제공하는 것; 복수의 위성 모니터 각각에서, 온도 독립적인 기준 전압에 기초하여 로컬 기준 전압을 저장하는 것; 복수의 위성 모니터 각각에서, 복수의 아날로그 신호 중 대응하는 하나를, 로컬 기준 전압에 기초하여 아날로그 대 디지털 컨버터(ADC)를 사용하여, 디지털 코드로 변환하는 것; 온도 독립적인 기준 전압을 루트 모니터로부터 복수의 위성 모니터 각각으로 분배하는 것; 분배된 온도 독립적인 기준 전압에 적어도 부분적으로 기초하여 복수의 위성 모니터 각각 내의 ADC에 의해 생성되는 디지털 코드를 보정하는 것; 및 보정된 디지털 코드를 복수의 위성 모니터 각각으로부터 루트 모니터로 선택적으로 라우팅하는 것.
예 57: 예 56의 방법으로서, 보정된 디지털 코드는 프로그래머블 디바이스에 걸쳐 있는 네트워크 온 칩(NoC) 인터커넥트 시스템을 사용하여 복수의 위성 모니터로부터 루트 모니터로 선택적으로 라우팅되고; 그리고 온도 독립적인 기준 전압은 프로그래머블 디바이스에 걸쳐 있는 하나 이상의 아날로그 채널을 사용하여 루트 모니터로부터 복수의 위성 모니터로 분배된다.
예 58: 예 57의 방법으로서, 저장하는 것은 다음의 것을 포함한다: 하나 이상의 아날로그 채널에 의해 분배되는 온도 독립적인 기준 전압을 사용하여 각각의 위성 모니터 내에 제공되는 커패시터를 선택적으로 충전하는 것.
예 59: 예 56의 방법으로서, 온도 독립적인 기준 전압을 분배하는 것은 다음의 것을 더 포함한다: 루트 모니터에 의해 생성되는 대응하는 복수의 제어 신호에 기초하여 복수의 위성 모니터 각각이 온도 독립적인 기준 전압에 액세스하는 것을 순차적으로 가능하게 하는 것.
예 60: 예 56의 방법으로서, 보정하는 것은 다음의 것을 포함한다: ADC에 대한 입력 신호로서 온도 독립적인 기준 전압을 제공하는 것; ADC를 사용하여 온도 독립적인 기준 전압을 기준 코드로 변환하는 것; 기준 코드와 온도 독립적인 기준 전압을 나타내는 사전 결정된 디지털 코드 사이의 차이에 기초하여 보정 계수를 생성하는 것; 및 보정 계수에 기초하여 디지털 코드를 조정하는 것.
기술 분야의 숙련된 자는, 정보 및 신호가 여러 가지 상이한 기술 및 기법 중 임의의 것을 사용하여 표현될 수도 있다는 것을 인식할 것이다. 예를 들면, 상기의 설명 전반에 걸쳐 참조될 수도 있는 데이터, 명령어, 커맨드, 정보, 신호, 비트, 심볼, 및 칩은 전압, 전류, 전자기파, 자기장 또는 입자, 광학 필드 또는 입자, 또는 이들의 임의의 조합에 의해 표현될 수도 있다.
게다가, 기술 분야의 숙련된 자, 본원에서 개시되는 양태와 관련하여 설명되는 다양한 예시적인 논리 블록, 모듈, 회로, 및 알고리즘 단계가 전자 하드웨어, 컴퓨터 소프트웨어, 또는 둘 모두의 조합으로서 구현될 수도 있다는 것을 인식할 것이다. 하드웨어 및 소프트웨어의 이러한 상호 교환성을 명확하게 예시하기 위해, 다양한 예시적인 컴포넌트, 블록, 모듈, 회로, 및 단계가 그들의 기능성의 관점에서 상기에서 일반적으로 설명되었다. 그러한 기능성이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는지의 여부는, 전체 시스템에 부과되는 특정한 애플리케이션 및 설계 제약에 의존한다. 숙련된 기술자는 설명된 기능성을 각각의 특정한 애플리케이션에 대해 다양한 방식으로 구현할 수도 있지만, 그러나, 그러한 구현 결정은 본 개시의 범위로부터의 이탈을 야기하는 것으로 해석되어서는 안된다.
본원에서 개시되는 양태와 관련하여 설명되는 방법, 시퀀스 또는 알고리즘은, 하드웨어로, 프로세서에 의해 실행되는 소프트웨어 모듈로, 또는 둘 모두의 조합으로 직접적으로 구체화될 수도 있다. 소프트웨어 모듈은 RAM 래치, 플래시 래치, ROM 래치, EPROM 래치, EEPROM 래치, 레지스터, 하드 디스크, 이동식 디스크, CD-ROM, 또는 기술 분야에서 공지되어 있는 임의의 다른 형태의 저장 매체에서 상주할 수도 있다. 예시적인 저장 매체는, 프로세서가 저장 매체로부터 정보를 판독할 수 있고, 저장 매체에 정보를 기록할 수 있도록, 프로세서에 커플링된다. 대안예에서, 저장 매체는 프로세서에 통합될 수도 있다.
전술한 명세서에서, 예시적인 구현예는 그것의 특정한 예시적인 구현예를 참조하여 설명되었다. 그러나, 첨부된 청구범위에서 기술되는 바와 같은 본 개시의 더 넓은 범위로부터 벗어나지 않으면서, 그것에 대해 다양한 수정 및 변경이 이루어질 수도 있다는 것이 명백할 것이다. 따라서, 명세서 및 도면은 제한적인 의미가 아니라 예시적인 의미에서 고려되어야 한다.
Claims (18)
- 프로그래머블 디바이스로서,
복수의 구성 가능한 로직 리소스;
기준 전압을 생성하도록 구성되는 회로부를 포함하는 루트 모니터;
상기 프로그래머블 디바이스에 걸쳐 다양한 위치에서 분포되는 다수의 센서 - 상기 센서 각각은 상기 다양한 위치 중 대응하는 하나에서 관련된 회로의 동작 상태를 측정하도록 구성됨 - ;
상기 프로그래머블 디바이스에 걸쳐 상기 다양한 위치에서 분포되는 복수의 위성 모니터 - 상기 위성 모니터 각각은 상기 대응하는 위성 모니터의 부근에서 위치되는 하나 이상의 관련된 센서에 커플링됨 - ; 및
상기 구성 가능한 로직 리소스에, 상기 루트 모니터에, 그리고 상기 복수의 위성 모니터 각각에 커플링되는 인터커넥트 시스템
을 포함하고,
상기 인터커넥트 시스템은,
상기 기준 전압을 상기 루트 모니터로부터 상기 복수의 위성 모니터 각각으로 분배하도록; 그리고
디지털 데이터 - 상기 디지털 데이터는 상기 측정된 동작 상태를 나타냄 - 를 상기 복수의 위성 모니터 각각으로부터 상기 루트 모니터로 선택적으로 라우팅하도록
구성되는 것인, 프로그래머블 디바이스. - 제1항에 있어서,
상기 루트 모니터는,
온도 변동에 대한 상기 기준 전압을 보상하도록 구성되는 밴드갭 회로;
상기 복수의 위성 모니터 각각으로부터 수신되는 상기 디지털 데이터를 저장하도록 구성되는 메모리; 및
상기 관련된 회로 중 적어도 하나의 상기 측정된 동작 상태가 범위 내에 있는지의 여부를 결정하도록 구성되는 컨트롤러
중 적어도 하나를 포함하는 것인, 프로그래머블 디바이스. - 제1항에 있어서,
상기 위성 모니터 각각은,
상기 하나 이상의 관련된 센서에 의해 측정되는 동작 상태를 나타내는 아날로그 신호를 수신하기 위한 입력, 상기 디지털 데이터를 상기 인터커넥트 시스템에 제공하기 위한 출력, 및 로컬 기준 전압을 수신하기 위한 기준 단자를 포함하는 아날로그 대 디지털 컨버터(analog-to-digital converter; ADC);
상기 ADC의 상기 출력에 커플링되는 입력을 포함하고, 상기 인터커넥트 시스템에 커플링되는 출력을 포함하며, 상기 ADC에 의해 제공되는 상기 디지털 데이터를 저장하도록 구성되는 메모리; 및
상기 루트 모니터에 의해 생성되는 제어 신호 - 상기 제어 신호는 상기 인터커넥트 시스템에 의해 분배되는 상기 기준 전압을 상기 위성 모니터 중 하나에만 동시에 커플링하도록 구성됨 - 에 기초하여 상기 인터커넥트 시스템에 의해 분배되는 상기 기준 전압을 상기 위성 모니터에 선택적으로 커플링하도록 구성되는 스위치
중 적어도 하나를 포함하는 것인, 프로그래머블 디바이스. - 제3항에 있어서,
상기 로컬 기준 전압은 상기 인터커넥트 시스템에 의해 분배되는 상기 기준 전압에 적어도 부분적으로 기초하는 것인, 프로그래머블 디바이스. - 제1항에 있어서,
상기 인터커넥트 시스템은,
상기 기준 전압을 상기 루트 모니터로부터 상기 복수의 위성 모니터 각각으로 분배하도록 구성되는 하나 이상의 아날로그 채널; 및
상기 디지털 데이터를, 개별적으로 주소 지정 가능한 데이터 패킷으로서, 상기 위성 모니터로부터 상기 루트 모니터로 선택적으로 라우팅하도록 구성되는 하나 이상의 디지털 채널
을 더 포함하는 것인, 프로그래머블 디바이스. - 제1항에 있어서,
상기 위성 모니터 각각은, 하나 이상의 로컬 신호 라인을 통해 하나 이상의 관련된 센서에 커플링되고,
로컬 전압 소스;
로컬 기준 전압을 수신하기 위한 기준 단자를 포함하며 상기 하나 이상의 관련된 센서에 의해 생성되는 아날로그 신호를, 상기 측정된 동작 상태를 나타내는 디지털 코드로 변환하도록 구성되는 아날로그 대 디지털 컨버터(ADC);
상기 디지털 코드에서의 에러를 나타내는 보정 계수를 생성하도록 구성되는 캘리브레이션 회로; 및
상기 보정 계수에 기초하여 상기 디지털 코드를 보정하도록 구성되는 보정 회로
를 포함하는 것인, 프로그래머블 디바이스. - 제6항에 있어서,
상기 전압 소스는,
상기 로컬 기준 전압을 생성하도록; 또는
밴드갭 전압 생성기에 의해 생성되는 온도 독립적인 기준 전압에 기초하여 상기 로컬 기준 전압을 저장하도록
구성되는 것인, 프로그래머블 디바이스. - 제6항에 있어서,
프로그래머블 로직에 걸쳐 있고 디지털 데이터를 상기 복수의 위성 모니터 각각으로부터 상기 루트 모니터로 선택적으로 라우팅하도록 구성되는 네트워크 온 칩(network-on-chip; NoC) 인터커넥트 시스템을 더 포함하는, 프로그래머블 디바이스. - 제6항에 있어서,
상기 위성 모니터 각각은, 제1 스위치를 더 포함하고,
상기 제1 스위치는,
상기 하나 이상의 아날로그 채널로부터 온도 독립적인 기준 전압을 수신하도록 커플링되는 제1 입력 단자,
상기 하나 이상의 관련된 센서에 의해 생성되는 상기 아날로그 신호를 수신하도록 커플링되는 제2 입력 단자,
제어 신호를 수신하도록 커플링되는 제어 단자, 및
상기 위성 모니터 내의 상기 ADC의 입력 단자에 커플링되는 출력 단자
를 포함하는 것인, 프로그래머블 디바이스. - 제9항에 있어서,
캘리브레이션 동작 동안, 상기 제1 스위치는 상기 ADC에 대한 입력 신호로서 상기 온도 독립적인 기준 전압을 제공하고; 그리고
모니터링 동작 동안, 상기 제1 스위치는 상기 센서로부터의 상기 아날로그 신호를 상기 ADC에 대한 입력 신호로서 제공하는 것인, 프로그래머블 디바이스. - 제10항에 있어서,
상기 캘리브레이션 동작 동안, 상기 ADC는 상기 온도 독립적인 기준 전압을 샘플링하여 기준 코드를 생성하고; 그리고
상기 모니터링 동작 동안, 상기 ADC는 상기 하나 이상의 관련된 센서로부터의 상기 아날로그 신호를 샘플링하여 상기 디지털 코드를 생성하는 것인, 프로그래머블 디바이스. - 제9항에 있어서,
상기 위성 모니터 각각은 제2 스위치를 더 포함하고,
상기 제2 스위치는,
상기 하나 이상의 아날로그 채널로부터 상기 온도 독립적인 기준 전압을 수신하도록 커플링되는 입력 단자,
상기 제어 신호를 수신하도록 커플링되는 제어 단자, 및
전압 저장소에 커플링되는 출력 단자
를 포함하는 것인, 프로그래머블 디바이스. - 제12항에 있어서,
캘리브레이션 동작 동안,
상기 제2 스위치는 상기 전압 저장소를 충전하고 그 다음 상기 전압 저장소를 상기 온도 독립적인 기준 전압으로부터 분리하고; 그리고
상기 ADC는 상기 온도 독립적인 기준 전압을 샘플링하여 기준 코드를 생성하는 것인, 프로그래머블 디바이스. - 프로그래머블 디바이스의 다수의 동작 상태를 모니터링하기 위한 시스템으로서,
기준 전압을 생성하도록 구성되는 회로부를 포함하는 루트 모니터;
상기 프로그래머블 디바이스에 걸쳐 분포되는 복수의 센서 - 상기 센서 각각은 관련된 회로의 동작 상태를 나타내는 아날로그 신호를 생성하도록 구성됨 - ;
상기 프로그래머블 디바이스에 걸쳐 분포되는 복수의 위성 모니터 - 상기 위성 모니터 각각은 하나 이상의 대응하는 센서에 의해 생성되는 상기 아날로그 신호를 디지털 데이터로 변환하도록 구성됨 - ; 및
적어도 상기 루트 모니터 및 상기 복수의 위성 모니터 각각에 커플링되는 인터커넥트 시스템
을 포함하고,
상기 인터커넥트 시스템은,
상기 기준 전압을 상기 루트 모니터로부터 상기 복수의 위성 모니터 각각으로 분배하도록 구성되는 하나 이상의 아날로그 채널; 및
상기 디지털 데이터를 상기 복수의 위성 모니터 각각으로부터 상기 루트 모니터로 선택적으로 라우팅하도록 구성되는 하나 이상의 디지털 채널
을 포함하는 것인, 시스템. - 제14항에 있어서,
상기 위성 모니터 각각은,
상기 복수의 센서에 의해 생성되는 상기 아날로그 신호를 상기 디지털 데이터로 변환하도록 구성되는 아날로그 대 디지털 컨버터(ADC);
상기 루트 모니터에 의해 생성되는 제어 신호에 기초하여 상기 인터커넥트 시스템에 의해 분배되는 상기 기준 전압을 상기 위성 모니터에 선택적으로 커플링하도록 구성되는 스위치
중 적어도 하나를 포함하되;
상기 제어 신호는 상기 인터커넥트 시스템에 의해 분배되는 상기 기준 전압을 상기 위성 모니터 중 하나에만 동시에 커플링하도록 구성되는 것인, 시스템. - 프로그래머블 디바이스의 다수의 동작 상태를 모니터링하는 방법으로서,
상기 프로그래머블 디바이스 내에 제공되는 루트 모니터와 관련되는 전압 생성기를 사용하여 기준 전압을 생성하는 단계;
상기 프로그래머블 디바이스 내에 통합되는 인터커넥트 시스템의 하나 이상의 아날로그 채널을 사용하여 복수의 위성 모니터 각각으로 상기 기준 전압을 분배하는 단계;
다수의 센서 각각을 사용하여, 관련된 회로의 동작 상태를 나타내는 아날로그 신호를 생성하는 단계;
상기 다수의 센서에 의해 생성되는 상기 아날로그 신호를 상기 복수의 위성 모니터 중 대응하는 위성 모니터에 제공하는 단계;
상기 복수의 위성 모니터를 사용하여 상기 아날로그 신호를 디지털 데이터로 변환하는 단계; 및
상기 인터커넥트 시스템의 하나 이상의 디지털 채널을 사용하여 상기 디지털 데이터를 상기 복수의 위성 모니터로부터 상기 루트 모니터로 선택적으로 라우팅하는 단계
를 포함하는, 방법. - 제16항에 있어서,
상기 기준 전압을 분배하는 단계는,
상기 루트 모니터에 의해 생성되는 대응하는 제어 신호에 기초하여 상기 복수의 위성 모니터 각각을 상기 인터커넥트 시스템에 선택적으로 커플링하는 단계를 더 포함하되, 상기 제어 신호는 상기 인터커넥트 시스템에 의해 분배되는 상기 기준 전압을 상기 위성 모니터 중 하나에만 동시에 커플링하도록 구성되는 것인, 방법. - 제16항에 있어서,
온도 독립적인 기준 전압을 루트 모니터로부터 상기 복수의 위성 모니터 각각으로 분배하는 단계;
상기 분배된 온도 독립적인 기준 전압에 적어도 부분적으로 기초하여 상기 복수의 위성 모니터 각각 내의 ADC에 의해 생성되는 상기 디지털 코드를 보정하는 단계
를 더 포함하는, 방법.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/506,064 US11709275B2 (en) | 2019-07-09 | 2019-07-09 | Root monitoring on an FPGA using satellite ADCs |
US16/506,064 | 2019-07-09 | ||
US16/535,713 | 2019-08-08 | ||
US16/535,713 US10705144B1 (en) | 2019-08-08 | 2019-08-08 | Device monitoring using satellite ADCs having local capacitors |
US16/535,726 US10598729B1 (en) | 2019-08-08 | 2019-08-08 | Device monitoring using satellite ADCs having local voltage reference |
US16/535,726 | 2019-08-08 | ||
PCT/US2020/041287 WO2021007376A1 (en) | 2019-07-09 | 2020-07-08 | Root monitoring on an fpga using satellite adcs |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220031022A true KR20220031022A (ko) | 2022-03-11 |
Family
ID=71784736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227002161A KR20220031022A (ko) | 2019-07-09 | 2020-07-08 | 위성 adc를 사용한 fpga의 루트 모니터링 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP3981074A1 (ko) |
JP (1) | JP2022540420A (ko) |
KR (1) | KR20220031022A (ko) |
CN (1) | CN114364996A (ko) |
WO (1) | WO2021007376A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114372021B (zh) * | 2022-01-13 | 2023-03-24 | 中国人民解放军国防科技大学 | 一种支持高一致多信道并行收发的数字信号处理系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170272073A1 (en) * | 2016-03-18 | 2017-09-21 | Altera Corporation | Dynamic parameter operation of an fpga |
US10228294B2 (en) * | 2016-05-12 | 2019-03-12 | Infineon Technologies Ag | System and method for temperature sensing |
US20180097825A1 (en) * | 2016-09-30 | 2018-04-05 | Intel Corporation | System monitor |
US10557894B2 (en) * | 2017-08-07 | 2020-02-11 | Linear Technology Holding Llc | Reference signal correction circuit |
-
2020
- 2020-07-08 EP EP20745456.2A patent/EP3981074A1/en active Pending
- 2020-07-08 JP JP2022500668A patent/JP2022540420A/ja active Pending
- 2020-07-08 CN CN202080062705.XA patent/CN114364996A/zh active Pending
- 2020-07-08 KR KR1020227002161A patent/KR20220031022A/ko unknown
- 2020-07-08 WO PCT/US2020/041287 patent/WO2021007376A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
EP3981074A1 (en) | 2022-04-13 |
JP2022540420A (ja) | 2022-09-15 |
WO2021007376A1 (en) | 2021-01-14 |
CN114364996A (zh) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11199581B1 (en) | Device monitoring using satellite ADCS having local voltage reference | |
US11709275B2 (en) | Root monitoring on an FPGA using satellite ADCs | |
US12063037B2 (en) | Embedded network on chip accessible to programmable logic fabric of programmable logic device in multi-dimensional die systems | |
US11100028B1 (en) | Programmable I/O switch/bridge chiplet | |
KR102638125B1 (ko) | 네트워크 온 칩에서의 종단간 서비스 품질 | |
US10963411B1 (en) | Integrating rows of input/output blocks with memory controllers in a columnar programmable fabric archeture | |
US9787571B2 (en) | Link delay based routing apparatus for a network-on-chip | |
US9673824B2 (en) | Techniques and circuitry for configuring and calibrating an integrated circuit | |
KR20130080305A (ko) | 온도 관리 회로, 이를 포함하는 시스템 온 칩 및 온도 관리 방법 | |
CN107112994B (zh) | 用于集成电路的电源管理系统 | |
US7426709B1 (en) | Auto-generation and placement of arbitration logic in a multi-master multi-slave embedded system | |
Rettkowski et al. | RAR-NoC: A reconfigurable and adaptive routable Network-on-Chip for FPGA-based multiprocessor systems | |
US11012072B1 (en) | Thermal load balancing of programmable devices | |
US20240176758A1 (en) | Multi-use chip-to-chip interface | |
CN112729395A (zh) | 一种面向复杂SoC可靠性监测的片上传感器读出系统 | |
KR20220031022A (ko) | 위성 adc를 사용한 fpga의 루트 모니터링 | |
Heißwolf | A scalable and adaptive network on chip for many-core architectures | |
US10705144B1 (en) | Device monitoring using satellite ADCs having local capacitors | |
Hagemeyer et al. | A scalable platform for run-time reconfigurable satellite payload processing | |
US20160026742A1 (en) | System-on-chip intellectual property block discovery | |
Ituero et al. | Light-weight on-chip monitoring network for dynamic adaptation and calibration | |
CN108121224A (zh) | 用于集成电路的电压调节控制的装置以及方法 | |
EP4020810A2 (en) | Debug trace microsectors | |
US11669145B2 (en) | Power management unit | |
GB2521121A (en) | A method and apparatus use with interrupts |