KR102386719B1 - 안전 서브-시스템을 가지는 프로그램가능 ic - Google Patents

안전 서브-시스템을 가지는 프로그램가능 ic Download PDF

Info

Publication number
KR102386719B1
KR102386719B1 KR1020177008670A KR20177008670A KR102386719B1 KR 102386719 B1 KR102386719 B1 KR 102386719B1 KR 1020177008670 A KR1020177008670 A KR 1020177008670A KR 20177008670 A KR20177008670 A KR 20177008670A KR 102386719 B1 KR102386719 B1 KR 102386719B1
Authority
KR
South Korea
Prior art keywords
circuits
programmable
sub
safety
hardware
Prior art date
Application number
KR1020177008670A
Other languages
English (en)
Other versions
KR20170060028A (ko
Inventor
사기르 아마드
브래들리 엘. 테일러
야갈 아르벨
Original Assignee
자일링크스 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 자일링크스 인코포레이티드 filed Critical 자일링크스 인코포레이티드
Publication of KR20170060028A publication Critical patent/KR20170060028A/ko
Application granted granted Critical
Publication of KR102386719B1 publication Critical patent/KR102386719B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/003Modifications for increasing the reliability for protection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/007Fail-safe circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic 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/17748Structural details of configuration resources
    • H03K19/17764Structural details of configuration resources for reliability
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic 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/17748Structural details of configuration resources
    • H03K19/17768Structural details of configuration resources for security

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)

Abstract

프로그램가능 로직 서브-시스템(130, 330), 프로세싱 서브-시스템(110, 310), 및 안전 서브-시스템(120, 340)을 포함하는 프로그램가능 IC(102, 302)가 개시된다. 프로그램가능 로직 서브-시스템(130, 330)은 사용자 디자인의 하드웨어 부분을 형성하도록 구성된 프로그램가능 로직 회로들을 포함한다. 프로세싱 서브-시스템(110, 310)은 사용자 디자인의 소프트웨어 부분을 실행하도록 구성된 프로세싱 회로들(112, 312, 314, 316, 318)을 포함한다. 안전 서브-시스템은 프로그램가능 IC(102, 302)의 회로들 내 에러들을 검출 및/또는 완화하는 안전 기능들을 수행하도록 구성된다. 안전 서브-시스템은 프로그램가능 IC의 회로들의 제 1 서브세트에 대한 하드웨어-기반 안전 기능들(123)을 수행하도록 구성된 하드웨어에 설치된 회로들(122, 341)을 포함한다. 안전 서브-시스템은 또한 프로그램가능 IC의 회로들의 제 2 서브세트에 대한 소프트웨어-기반 안전 기능들(125)을 실행하도록 구성된 프로세싱 회로(124, 342)를 포함한다.

Description

안전 서브-시스템을 가지는 프로그램가능 IC{PROGRAMMABLE IC WITH SAFETY SUB-SYSTEM}
본 개시내용은 일반적으로 안전 필수 애플리케이션들을 위한 회로들 및 방법들에 관한 것이다.
프로그램가능 집적 회로(IC)들은 특정 로직 기능들을 수행하도록 프로그래밍될 수 있는 디바이스들이다. 하나의 타입의 프로그램가능 IC, 즉 FPGA(field programmable gate array)는 통상적으로 프로그램가능 타일(tile)들의 어레이를 포함한다. 이들 프로그램가능 타일들은 예컨대 IOB(input/output block)들, CLB(configurable logic block)들, BRAM(dedicated random access memory block), 곱셈기들, DSP(digital signal processing block)들, 프로세서들, 클록 관리기들, DLL(delay lock loop)들, 버스 또는 네트워크 인터페이스들, 이를테면 PCIe(Peripheral Component Interconnect Express) 및 이더넷 등을 포함할 수 있는 다양한 타입들의 로직 블록들을 포함한다.
각각의 프로그램가능 타일은 통상적으로 프로그램가능 상호연결부 및 프로그램가능 로직 둘 모두를 포함한다. 프로그램가능 상호연결부는 통상적으로 PIP(programmable interconnect point)들에 의해 상호연결되는 가변 길이들의 다수의 상호연결 라인들을 포함한다. 프로그램가능 로직은 예컨대, 함수 생성기들, 레지스터들, 산술 로직 등을 포함할 수 있는 프로그램가능 엘리먼트들을 사용하여 사용자 디자인의 로직을 구현한다.
프로그램가능 상호연결부 및 프로그램가능 로직은 통상적으로 프로그램가능 엘리먼트들이 어떻게 구성되는지를 정의하는 내부 구성 메모리 셀에 구성 데이터의 스트림을 로딩함으로써 프로그래밍된다. 구성 데이터는 메모리로부터(예컨대, 외부 PROM으로부터) 판독될 수 있거나 외부 디바이스에 의해 FPGA에 기록될 수 있다. 그 다음으로, 개별적인 메모리 셀들의 집합적 상태들은 FPGA의 기능을 결정한다.
일부 프로그램가능 IC들은 프로그램 코드를 실행할 수 있는 임베딩된 프로세서를 포함한다. 프로세서는, 또한 집합적으로 IC의 "프로그램가능 회로"로서 지칭되는 프로그램가능 로직 회로 및 프로그램가능 상호연결 회로를 포함하는 동일한 다이의 부분으로서 제조될 수 있다. 프로세서 내의 프로그램 코드의 실행이 IC 상에서 이용가능할 수 있는 프로그램가능 회로를 "프로그래밍" 또는 "구성하는 것"으로부터 구별가능하다는 것이 인지되어야 한다. IC의 프로그램가능 회로를 프로그래밍하거나 구성하는 액트(act)는 프로그램가능 회로 내의 구성 데이터에 의해 특정되는 바와 같은 상이한 물리적 회로의 구현을 유발한다.
프로그램가능 로직 서브-시스템, 프로세싱 서브-시스템, 및 안전 서브-시스템을 포함하는 프로그램가능 IC가 개시된다. 프로그램가능 로직 서브-시스템은 구성 데이터의 제 1 서브세트에 대한 응답으로 구성된 복수의 프로그램가능 로직 회로들을 포함한다. 프로세싱 서브-시스템은 구성 데이터의 제 2 서브세트에 대한 응답으로 소프트웨어 프로그램을 실행하도록 구성된 하나 또는 그 초과의 프로세싱 회로들을 포함한다. 안전 서브-시스템은 프로그램가능 IC의 회로들 내 에러들을 검출 및/또는 완화하는 안전 기능들을 수행하도록 구성된다. 안전 서브-시스템은 프로그램가능 IC의 회로들의 제 1 서브세트에 대한 하드웨어-기반 안전 기능들을 수행하도록 구성된 하드웨어에 설치된(hard-wired) 회로들의 세트를 포함한다. 안전 서브-시스템은 또한 프로그램가능 IC의 회로들의 제 2 서브세트에 대한 소프트웨어-기반 안전 기능들을 실행하도록 구성된 프로세싱 회로를 포함한다.
선택적으로, 프로그램가능 IC는 구성 데이터를 수신하는 것에 대한 응답으로 구성 데이터의 제 3 서브세트에 포함된 안전 정책을 저장하도록 구성될 수 있고 그리고 안전 정책은 프로그램가능 IC의 회로들에 대한 우선순위들을 식별할 수 있고, 회로들의 제 1 서브세트는 더 높은 우선순위 회로들로서 식별되고, 그리고 회로들의 제 2 서브세트는 더 낮은 우선순위 회로들로서 식별된다.
선택적으로, 구성 데이터의 제 3 서브세트는 프로그램가능 IC의 회로들 각각에 대해 수행될 안전 기능들을 특정한다.
선택적으로, 프로세싱 회로는 락스텝(lockstep) 방식으로 소프트웨어-기반 안전 기능들 중 하나를 수행하도록 구성된 적어도 2개의 프로세서들을 포함한다.
선택적으로, 하드웨어에 설치된 회로들의 세트에 의해 수행되는 하드웨어-기반 안전 기능들 중 적어도 하나는, 2개의 프로세서들이 락스텝 방식으로 올바르게 동작하는지 여부를 결정하도록 구성될 수 있다.
선택적으로, 프로그램가능 IC의 회로들은 메모리 회로를 포함하고 그리고 메모리 회로에 대한 안전 서브-시스템에 의해 수행되는 안전 기능은 에러-수정 코드를 사용하여 메모리 회로에 저장된 데이터의 무결성을 모니터링한다.
선택적으로, 프로그램가능 로직 서브-시스템, 프로세싱 서브-시스템, 및 안전 서브-시스템은 별개의 전력 도메인들에 의해 전력을 공급받는다.
선택적으로, 프로그램가능 IC는 프로그램가능 로직 서브-시스템, 프로세싱 서브-시스템, 및 안전 서브-시스템에 전력을 공급하기 위하여 사용되는 전력 도메인들의 전력을 조정하도록 구성된 전력 관리 유닛을 포함한다. 전력 관리 유닛에 대한 안전 서브-시스템에 의해 수행되는 안전 기능은 하드웨어에 설치된 회로들의 세트에 포함된 TMR(triple modular redundant)식 에러 검출 회로를 사용하여 에러들에 대한 전력 관리 유닛의 동작을 모니터링한다.
선택적으로, 안전 서브-시스템에 의해 수행되는 안전 기능들 중 적어도 하나는 서브-시스템 내 에러를 검출하는 것에 대한 응답으로 프로그램가능 IC의 프로그램가능 로직 또는 프로세싱 서브-시스템들 중 하나를 리셋하도록 구성된다.
선택적으로, 프로그램가능 IC의 하나의 회로에 대한 안전 서브-시스템에 의해 수행되는 안전 기능들 중 적어도 하나는 프로그램가능 IC의 다른 회로들에 의해 사용되는 통신 데이터 경로들로부터 하나의 회로에 의해 사용되는 통신 데이터 경로들을 격리시킨다.
프로그램가능 IC를 동작시키기 위한 방법이 또한 개시된다. 사용자 디자인의 하드웨어 부분은 프로그램가능 IC의 프로그램가능 로직 서브-시스템에서 동작된다. 사용자 디자인의 소프트웨어 부분은 프로그램가능 IC의 프로세서 서브-시스템상에서 실행된다. 소프트웨어-기반 안전 기능들은 프로그램가능 IC의 안전 서브-시스템의 프로세서들의 세트를 사용하여 수행된다. 하드웨어-기반 안전 기능들은 안전 서브-시스템의 하드웨어에 설치된 회로들의 세트를 사용하여 수행된다. 소프트웨어-기반 안전 기능들 및 하드웨어-기반 안전 기능들은 프로그램가능 IC의 개별 회로들의 에러들을 검출 및/또는 완화하도록 구성된다.
선택적으로, 방법은 사용자 디자인의 하드웨어 부분을 형성하기 위하여 구성 데이터의 세트를 사용하여 프로그램가능 로직 서브-시스템을 구성하는 단계 및 안전 서브-시스템의 메모리에 구성 데이터의 세트의 서브세트에 포함된 안전 정책을 저장하는 단계를 더 포함하고, 안전 정책은 하드웨어-기반 또는 소프트웨어-기반 안전 기능들 중 적어도 하나를 표시한다.
선택적으로, 안전 정책은 프로그램가능 IC의 회로들을 높은 우선순위 또는 낮은 우선순위로서 분류하고, 소프트웨어-기반 안전 기능들은 낮은 우선순위로서 분류되는 프로그램가능 IC의 회로들 내 에러들을 검출 및/또는 완화시키고 그리고 하드웨어-기반 안전 기능들은 높은 우선순위로서 분류되는 프로그램가능 IC의 회로들 내 에러들을 검출 및/또는 완화시킨다.
선택적으로, 소프트웨어-기반 안전 기능들 중 적어도 하나는 락스텝 방식으로 동작되는 프로세서들의 세트 중 적어도 2개의 프로세서들을 사용하여 수행된다.
선택적으로, 하드웨어-기반 안전 기능들 중 적어도 하나는, 적어도 2개의 프로세서들이 락스텝 방식으로 올바르게 동작되는지 여부를 결정하도록 구성된다.
선택적으로, 프로그램가능 IC의 회로들은 메모리 회로를 포함하고 그리고 소프트웨어-기반 또는 하드웨어-기반 안전 기능들 중 적어도 하나를 수행하는 것은 에러-수정 코드를 사용하여 메모리 회로에 저장된 데이터의 무결성을 모니터링하는 것을 포함한다.
선택적으로, 방법은 별개의 전력 도메인들을 사용하여 프로그램가능 로직 서브-시스템, 프로세싱 서브-시스템, 및 안전 서브-시스템에 전력을 공급하는 단계를 더 포함한다.
선택적으로, 방법은 프로그램가능 IC의 전력 관리 유닛을 사용하여 별개의 전력 도메인들의 전력을 조정하는 단계를 더 포함한다. 하드웨어-기반 안전 기능들을 수행하는 것은 하드웨어에 설치된 회로들의 세트에 포함된 TMR식 에러 검출 회로를 사용하여 에러들에 대한 전력 관리 유닛의 동작을 모니터링하는 것을 포함할 수 있다.
선택적으로, 소프트웨어-기반 또는 하드웨어-기반 안전 기능들 중 적어도 하나는 서브-시스템 내 에러를 검출하는 것에 대한 응답으로 프로그램가능 IC의 프로그램가능 로직 또는 프로세싱 서브-시스템들 중 하나를 리셋하도록 구성된다.
선택적으로, 소프트웨어-기반 또는 하드웨어-기반 안전 기능들 중 적어도 하나는 프로그램가능 IC의 다른 회로들에 의해 사용되는 통신 데이터 경로들로부터 프로그램가능 IC의 회로들 중 하나에 의해 사용되는 통신 데이터 경로들을 격리하도록 구성된다.
다른 특징들은 뒤따르는 상세한 설명 및 청구항들의 고려로부터 인지될 것이다.
개시된 방법들 및 회로들의 다양한 양상들 및 특징들은 뒤따르는 상세한 설명의 리뷰 그리고 도면들을 참조하여 자명하게 될 것이다.
도 1은 하나 또는 그 초과의 구현들과 일치하는 제 1 프로그램가능 IC를 도시한다.
도 2는 하나 또는 그 초과의 구현들과 일치하는 프로그램가능 IC를 동작시키기 위한 예시적인 프로세스를 도시한다.
도 3은 하나 또는 그 초과의 구현들과 일치하는 제 2 프로그램가능 IC를 도시한다.
도 4는 프로그램가능 IC의 안전 서브-시스템에 포함될 수 있는 사용자 구성가능 에러 핸들링을 위한 예시적인 시스템을 도시한다.
일부 미션-필수(mission critical) 애플리케이션들에서, 프로그램가능 IC는 프로그램가능 로직 서브-시스템 또는 프로세싱 서브-시스템 내 하나 또는 그 초과의 미션-필수 기능들을 수행하도록 구성될 수 있다. 일부 높은-안전 인증서 표준들, 이를테면 IEC 61508 SIL3 또는 ISO-26262 ASILC를 만족시키기 위하여, 별개의 안전 회로들은 미션 필수 회로들 또는 기능들의 올바른 동작을 보장하기 위하여 프로그램가능 IC에 연결된다. 안전 회로들은 높은-안전 인증서 표준들을 만족시키기 위하여 엄격한 격리, 보호, 및 진단-커버리지 요건들을 준수하도록 요구받을 수 있다. 요건들은, 비-미션 필수 회로들의 실패가 미션 필수 회로들 또는 기능들을 모니터링하기 위한 안전 시스템의 능력에 영향을 주지 않는 것을 보장하기 위하여, 안전 회로들을 포함하는 전체 디바이스 및 전체 프로그램가능 IC에 적용된다. 이들 요건들은 상당한 부담을 제기하고 디자인 프로세스를 늘어나게 한다.
하나 또는 그 초과의 구현들에서, 프로그램가능 IC는 프로세싱 서브-시스템 및 프로그램가능 로직 서브-시스템과 통합된 안전 서브-시스템을 포함한다. 프로그램가능 로직 서브-시스템은 사용자 디자인의 하드웨어 부분을 형성하기 위하여 구성 데이터의 제 1 서브세트에 의해 구성될 수 있는 복수의 프로그램가능 로직 회로들을 포함한다. 프로세싱 서브-시스템은 구성 데이터의 제 2 서브세트에 포함된 사용자 디자인의 소프트웨어 부분을 실행하도록 구성된 하나 또는 그 초과의 프로세싱 회로들을 포함한다. 안전 서브-시스템은 하나 또는 그 초과의 안전 기능들을 수행하도록 구성된다. 안전 기능들 각각은 프로그램가능 IC의 복수의 회로들 중 개별 하나의 회로의 에러들을 검출 및/또는 완화하도록 구성된다. 안전 기능들은 검출된 에러들에 대한 응답으로 다수의 상이한 액션들을, 이를테면 전압 조정, 전력-다운, 리셋, 에러 신호 생성, 데이터 백업, 리던던트/백업 시스템으로 스위칭, 내장자체테스트(built-in-self test) 등을 수행한다. 일부 구현들에서, 안전 기능은, 로컬화된 에러가 발생한 개별 서브-시스템을 리셋하도록 구성될 수 있다.
안전 서브-시스템은 복수의 회로들의 제 1 서브세트에 대한 안전 기능들을 수행하도록 구성된 하드웨어에 설치된 회로들의 세트를 포함한다. 하드웨어에 설치된 회로들은 프로그램가능 IC의 프로그램가능 회로를 구현하는 다이의 부분으로서 제조된다. 안전 서브-시스템은 또한 프로그램가능 IC의 복수의 회로들의 제 2 서브세트에 대한 안전 기능들의 세트를 구현하기 위하여 프로그램 코드를 실행하도록 구성된 프로세싱 회로를 포함한다. 참조의 용이성을 위하여, 하드웨어에 설치된 회로들에 의해 수행되는 안전 기능들은 하드웨어-기반 안전 기능들로서 지칭될 수 있다. 반대로, 프로세싱 회로에 의해 실행되는 안전 기능들은 소프트웨어-기반 안전 기능들로서 지칭될 수 있다.
다양한 구현들에서, 보호될 복수의 회로들 및 이용될 안전 기능들은 사용자에 의해 전체적으로 또는 부분적으로 특정될 수 있다. 예컨대, 구성 데이터의 일부는 프로그램가능 IC의 복수의 회로들 각각에 대해 수행될 안전 기능들을 특정하는 안전 정책을 포함할 수 있다.
안전 기능들은 프로그램가능 IC의 상이한 타입들의 회로들에 대해 상이한 레벨들의 보호를 제공할 수 있다. 일부 구현들에서, 구성 데이터는 보호될 회로들 각각에 대해 우선순위를 표시할 수 있다. 안전 서브-시스템은 낮은 우선순위 회로들에 대해 소프트웨어-기반 안전 기능들을 그리고 높은 우선순위 회로들에 대해 하드웨어-기반 안전 기능들을 수행하도록 구성될 수 있다. 대안적으로 또는 부가적으로, 안전 기능들은 더 낮은 우선순위 회로들보다 더 빈번하게 올바른 동작에 대해 더 높은 우선순위 회로들을 체크할 수 있다. 일부 안전 기능들은 안전 서브-시스템의 리던던트 하드웨어에 설치된 회로들에 의해 수행될 수 있다. 예컨대, 안전 서브-시스템의 하드웨어에 설치된 회로들은 프로그램가능 IC의 전력 관리 유닛을 모니터링하도록 구성되는 TMR식 회로를 포함할 수 있다.
일부 애플리케이션들에서, 안전 서브-시스템의 프로세싱 회로는 락스텝 방식으로 소프트웨어-기반 안전 기능들의 세트를 수행하도록 구성되는 적어도 2개의 프로세서들을 포함한다. 안전 서브-시스템 내 하드웨어에 설치된 회로들에 의해 수행되는 안전 기능들 중 하나 또는 그 초과는, 2개의 프로세서들이 락스텝 방식으로 올바르게 동작하는 것을 보장하기 위하여 다양한 회로들을 모니터링하도록 구성될 수 있다.
일부 구현들에서, 프로세서들의 락스텝 방식 동작에 중요한 높은-우선순위 회로들의 제 1 그룹은 소프트웨어 진단의 사용 없이 하드웨어-기반 안전 기능들에 의해 보호된다. 회로들의 제 1 그룹은 예컨대 락스텝 방식으로 동작될 프로세서들, 프로세서들에 의해 사용되는 캐시들, 락스텝 방식 프로세서들 상에서 실행되는 소프트웨어에 의해 참조되는 변수들을 저장하기 위하여 사용되는 온-칩 메모리, 및 메모리와 프로세서들 간에 데이터를 통신하는 상호연결부들을 포함할 수 있다. 예컨대, 메모리에 대한 안전 기능은 에러-수정 코드를 사용하여 메모리 회로에 저장된 데이터의 무결성을 모니터링할 수 있다. 다른 예로서, 캐시들에 대한 안전 기능은 올바른 락스텝 방식 동작을 위해 프로세서들에 의해 사용되는 캐시들을 모니터링하도록 구성될 수 있다.
프로그램가능 IC의 인프라구조에 관련된, 중간-우선순위 회로들의 제 2 그룹은 하드웨어-기반 및 소프트웨어-기반 안전 기능들의 혼합에 의해 보호될 수 있다. 제 2 그룹에 대한 일부 안전 기능들은 동작 파라미터들, 이를테면 클록 주파수들, 전압 레벨들, 및/또는 온도를 모니터링할 수 있다. 제 2 그룹에 대한 일부 다른 안전 기능들은 프로그램가능 IC의 다른 회로들 또는 서브-시스템들로부터 안전 필수 회로들 또는 기능들의 격리를 가능하게 할 수 있다.
더 낮은-우선순위 회로들의 제 3 그룹은 주로 소프트웨어-기반 안전 기능들에 의해 보호될 수 있다. 더 낮은-우선순위 회로들의 제 3 그룹은 예컨대 안전 필수 회로들 또는 기능들에 의해 활용되지 않는 주변장치를 포함할 수 있다. 하드웨어-기반 안전 기능들은 안전 필수 회로들 또는 기능들에 의해 사용되는 주변장치에 대한 보호를 제공하기 위하여 사용될 수 있다. 다수의 I/O 채널들 및/또는 I/O 루프백(loopback) 능력은 또한 안전 필수 주변장치를 위해 제공될 수 있다.
일부 구현들에서, 프로그램가능 로직 서브-시스템, 프로세싱 서브-시스템, 및 안전 서브-시스템은 별개의 전력 도메인들에서 전력을 공급받을 수 있다. 별개의 전력 도메인들을 사용함으로써, 전력 실패가 프로세싱 또는 프로그램가능 로직 서브-시스템들에서 발생하더라도, 안전 서브-시스템은 계속 동작할 수 있다. 일부 구현들에서, 하나 또는 그 초과의 안전 기능들은 프로세싱 또는 프로그램가능 로직 서브-시스템들에서의 전력 실패에 대한 응답으로 구제책을 강구할 수 있다. 게다가, 별개의 전력 도메인들의 사용은 프로세싱 또는 프로그램가능 로직 서브-시스템들로 하여금 예컨대 서브-시스템의 복구 불가능 에러에 대한 응답으로 독립적으로 리셋되게 할 수 있다.
다음 설명에서, 다수의 특정 세부사항들은 본원에서 제시된 특정 예들을 설명하기 위하여 제시된다. 그러나, 하나 또는 그 초과의 다른 예들 및/또는 이들 예들의 변형들이 아래에서 주어진 모든 특정 세부사항들 없이 실시될 수 있다는 것이 자명해야 한다. 다른 인스턴스들에서, 잘 알려진 피처(feature)들은 본원의 예들의 설명을 모호하게 하지 않도록 상세히 설명되지 않았다.
이제 도면들을 참조하여, 도 1은 하나 또는 그 초과의 구현들에 따라 구성된 제 1 프로그램가능 IC를 도시한다. 프로그램가능 IC(102)는 프로세싱 서브-시스템(110), 안전 서브-시스템(120), 및 프로그램가능 로직 서브-시스템(130)을 포함한다. 프로그램가능 로직 서브-시스템(130)은 사용자 디자인의 하드웨어 부분을 형성하기 위하여 구성 데이터의 제 1 서브세트에 의해 구성될 수 있는 복수의 프로그램가능 로직 회로들(132)을 포함한다. 프로세싱 서브-시스템(110)은 구성 데이터의 제 2 서브세트에 포함된 사용자 디자인의 소프트웨어 부분의 프로그램 코드를 실행하도록 구성된 하나 또는 그 초과의 프로세싱 회로들(112)을 포함한다.
안전 서브-시스템(120)은 하나 또는 그 초과의 안전 기능들을 수행하도록 구성되고, 각각의 안전 기능은 프로그램가능 IC의 개별 회로 내 에러들을 검출 및/또는 완화하도록 구성된다. 안전 서브-시스템(120)은 프로그램가능 IC의 회로들의 제 1 세트에 대한 하드웨어-기반 안전 기능들(123)을 수행하도록 구성된 하드웨어에 설치된 회로들(122)의 세트를 포함한다. 안전 서브-시스템은 또한 프로그램가능 IC의 회로들의 제 2 세트에 대한 소프트웨어-기반 안전 기능들(125)의 세트를 실행하도록 구성된 하나 또는 그 초과의 프로세싱 회로들(124)을 포함한다. 미리 표시된 바와 같이, 안전 기능들(123 및 125)은 검출된 에러들에 대한 응답으로 다수의 상이한 액션들을 수행한다. 상이한 액션들은 전압 조정, 전력-다운, 서브-시스템 리셋, 에러 신호 생성, 데이터 백업, 리던던트/백업 시스템으로 스위칭, 및/또는 내장자체테스트를 포함할 수 있다. 일부 구현들에서, 수행될 안전 기능들(123 및 125) 및 안전 기능들에 의해 보호될 회로들은 서브-시스템의 메모리(126)에 저장된 안전 정책(128)에서 특정된다. 일부 구현들에서, 메모리(126)는 디폴트 안전 정책을 저장하도록 구성된 비-휘발성 메모리일 수 있다. 일부 다른 구현들에서, 안전 정책(128)은 프로그램가능 IC의 시작시 메모리(126)에 저장될 수 있다. 일부 다른 구현들에서, 안전 정책(128)은 사용자에 의해 제공되거나 조정될 수 있다. 예컨대, 안전 정책(128)은 프로그램가능 로직 서브-시스템(130)의 프로그램가능 로직 회로들(132)을 구성하기 위하여 사용된 구성 데이터의 세트의 부분에 전체적으로 또는 부분적으로 제공될 수 있다.
도 2는 하나 또는 그 초과의 구현들과 일치하는 프로그램가능 IC를 동작시키기 위한 예시적인 프로세스를 도시한다. 블록(202)에서, 프로세싱(PS) 서브-시스템은 구성 데이터의 세트의 제 1 서브세트에 표시된 사용자 디자인의 소프트웨어 부분을 실행하도록 구성된다. 블록(204)에서, 프로그램가능 로직(PL) 서브-시스템의 프로그램가능 로직 회로들의 세트는 사용자 디자인의 하드웨어 부분을 구현하기 위하여 구성 데이터의 세트의 제 2 서브세트로 프로그래밍된다. 선택적으로, 블록(206)에서, 안전 서브-시스템은 구성 데이터의 세트의 제 3 서브세트에 포함된 안전 정책에 특정된 하나 또는 그 초과의 사용자-정의 안전 기능들을 수행하도록 구성될 수 있다. 구성은 예컨대 안전 서브-시스템의 메모리에 안전 정책을 저장하는 것을 포함할 수 있다.
블록(208)에서, 사용자 디자인의 소프트웨어 및 하드웨어 부분들은 동작된다. 블록(210)에서, 안전 기능들의 제 1 세트는 안전 서브-시스템에서 락스텝 방식으로 동작되는 프로세서들의 세트에 의해 수행된다. 안전 기능들의 제 1 세트는 예컨대 사용자 정의 안전 기능들(만약 제공되면)을 포함할 수 있다. 블록(212)에서, 안전 기능들의 제 2 세트는 안전 서브-시스템의 하드웨어에 설치된 회로들의 세트에 의해 수행된다. 예컨대, 안전 기능들의 제 2 세트 중 하나는, 안전 서브-시스템의 프로세서들의 세트가 락스텝 방식으로 올바르게 동작되는 것을 보장하도록 구성될 수 있다. 일부 구현들에서, 하나 또는 그 초과의 하드웨어에 설치된 회로들은 하나 또는 그 초과의 사용자-정의 안전 기능들(만약 제공되면)을 구현하도록 구성가능할 수 있다. 사용자 정의 안전 기능들을 수행하도록 구성될 수 있는 하드웨어에 설치된 회로들은 도 4를 참조하여 더 상세히 설명된다. 안전 기능들은 블록들(210 및 212)에서 계속 수행될 것인 반면, 사용자 디자인의 소프트웨어 및 하드웨어 부분들은 블록(208)에서 계속 동작될 것이다.
도 3은 하나 또는 그 초과의 구현들에 따라 구성될 수 있는 프로그램가능 IC(302)를 도시한다. 프로그램가능 IC는 또한 프로세싱 서브-시스템(310) 및 프로그램가능 로직 서브-시스템(330)을 포함하는 SOC(System-on-chip)로서 지칭될 수 있다. 프로세싱 서브-시스템(310)은 사용자 프로그램의 실행을 통해, 사용자 디자인의 소프트웨어 부분을 구현하도록 프로그래밍될 수 있다. 프로그램은 구성 데이터 스트림의 부분으로서 특정될 수 있거나 온-칩(on-chip) 또는 오프-칩(off-chip) 데이터 저장 디바이스로부터 리트리빙될 수 있다. 프로세싱 서브-시스템(310)은 하나 또는 그 초과의 소프트웨어 프로그램들을 실행하기 위한 다양한 회로들(312, 314, 316, 및 318)을 포함할 수 있다. 회로들(312, 314, 316, 및 318)은 예컨대, 하나 또는 그 초과의 프로세서 코어들, FPU(floating point unit)들, 인터럽트 프로세싱 유닛, 온 칩-메모리, 메모리 캐시들, 및/또는 캐시 코히어런트 상호연결부를 포함할 수 있다.
프로그램가능 IC(302)의 프로그램가능 로직 서브-시스템(330)은 사용자 디자인의 하드웨어 부분을 구현하도록 프로그래밍될 수 있다. 예컨대, 프로그램가능 로직 서브-시스템은 구성 데이터 스트림에 특정된 회로들의 세트를 구현하도록 프로그래밍될 수 있는 다수의 프로그램가능 로직 회로들(332)을 포함할 수 있다. 프로그램가능 로직 회로들(332)은 프로그램가능 상호연결 회로들, 프로그램가능 로직 회로들, 및 구성 메모리 셀들을 포함한다. 프로그램가능 로직은 예컨대, 함수 생성기들, 레지스터들, 산술 로직 등을 포함할 수 있는 프로그램가능 엘리먼트들을 사용하여 사용자 디자인의 로직을 구현한다. 프로그램가능 상호연결 회로들은 PIP(programmable interconnect point)들에 의해 상호연결되는 가변 길이들의 다수의 상호연결 라인들을 포함할 수 있다.
프로그램가능 로직 회로들(332)은 구성 데이터 스트림을, 프로그램가능 상호연결 회로들 및 프로그램가능 로직 회로들이 어떻게 구성되는지를 정의하는 구성 메모리 셀들에 로딩함으로써 프로그래밍될 수 있다. 그 다음으로, 개별적인 메모리 셀들의 집합적 상태들은 프로그램가능 로직 회로들(332)의 기능을 결정한다. 구성 데이터는 메모리로부터(예컨대, 외부 PROM으로부터) 판독될 수 있거나 외부 디바이스에 의해 프로그램가능 IC(302)에 기록될 수 있다. 일부 구현들에서, 구성 데이터는 프로그램가능 로직 서브-시스템(330)에 포함된 구성 제어기(334)에 의해 구성 메모리 셀들에 로딩될 수 있다. 일부 다른 구현들에서, 구성 데이터는 프로세싱 서브-시스템(310)에 의해 실행되는 시작 프로세스에 의해 구성 메모리 셀들에 로딩될 수 있다.
프로그램가능 IC(302)는 프로그램가능 로직 서브-시스템(330) 내에 구현된 회로와 프로세싱 서브-시스템(310)을 상호연결하기 위한 다양한 회로들을 포함할 수 있다. 이 예에서, 프로그램가능 IC(302)는 프로세싱 서브-시스템(310) 및 프로그램가능 로직 서브-시스템(330)의 다양한 데이터 포트들 간에서 데이터 신호들을 라우팅할 수 있는 코어 스위치(326)를 포함한다. 코어 스위치(326)는 또한 프로그램가능 로직 또는 프로세싱 서브-시스템들(310 및 330) 중 어느 하나와 프로그램 가능 IC의 다양한 다른 회로들, 이를테면 내부 데이터 버스 간에서 데이터 신호들을 라우팅할 수 있다. 선택적으로 또는 부가적으로, 프로세싱 서브-시스템(310)은 코어 스위치(326)를 바이패싱하여 프로그램가능 로직 서브-시스템과 직접 연결하기 위한 인터페이스를 포함할 수 있다. 그런 인터페이스는 예컨대, ARM에 의해 발표된 바와 같은 AMBA AXI 프로토콜 사양(AXI)을 사용하여 구현될 수 있다.
일부 구현들에서, 프로세싱 서브-시스템(310) 및 프로그램가능 로직 서브-시스템(330)은 또한 메모리 제어기(321)를 통해 온-칩 메모리(322) 또는 오프-칩 메모리(도시되지 않음)의 메모리 위치들에 판독하거나 기록할 수 있다. 메모리 제어기(321)는 16-비트이든, 32-비트이든, ECC를 가지는 16-비트 등이든 DDR(Dual Data Rate)2, DDR3, 저전력(LP) DDR2 타입들의 메모리(그러나 이에 제한되지 않음)를 포함하는 하나 또는 그 초과의 상이한 타입들의 메모리 회로들과 통신하도록 구현될 수 있다. 메모리 제어기(321)가 통신할 수 있는 상이한 메모리 타입들의 리스트는 단지 예시를 위해 제공되고 제한으로서 또는 총망라한 것으로서 의도되지 않는다. 도 3에 도시된 바와 같이, 프로그램가능 IC(302)는 특정 메모리 위치들에 액세스하기 위하여 서브-시스템들(310 및 330)에 의해 사용되는 가상 메모리 어드레스들을 메모리 제어기(321)에 의해 사용되는 물리적 메모리 어드레스들로 변환하기 위하여 메모리 관리 유닛(320) 및 변환 색인 버퍼(324)를 포함할 수 있다.
프로그램가능 IC는 외부 회로들과 데이터의 통신을 위하여 입력/출력(I/O) 서브-시스템(350)을 포함할 수 있다. I/O 서브-시스템(350)은 예컨대, 플래시 메모리 타입 I/O 디바이스들, 더 높은 성능 I/O 디바이스들, 더 낮은 성능 인터페이스들, 디버깅(debugging) I/O 디바이스들, 및/또는 RAM I/O 디바이스들을 포함하는 다양한 타입들의 I/O 디바이스들 또는 인터페이스들을 포함할 수 있다.
I/O 서브-시스템(350)은 360A 및 360B로서 예시된 하나 또는 그 초과의 플래시 메모리 인터페이스들(360)을 포함할 수 있다. 예컨대, 플래시 메모리 인터페이스들(360) 중 하나 또는 그 초과는 4-비트 통신을 위하여 구성된 QSPI(Quad-Serial Peripheral Interface)로서 구현될 수 있다. 플래시 메모리 인터페이스들(360) 중 하나 또는 그 초과는 병렬 8-비트 NOR/SRAM 타입의 인터페이스로서 구현될 수 있다. 플래시 메모리 인터페이스들(360) 중 하나 또는 그 초과는 8-비트 및/또는 16-비트 통신을 위해 구성된 NAND 인터페이스로서 구현될 수 있다. 설명된 특정 인터페이스들이 제한이 아닌 예시를 위해 제공되는 것이 인지되어야 한다. 상이한 비트 폭들을 가지는 다른 인터페이스들이 사용될 수 있다.
I/O 서브-시스템(350)은 플래시 메모리 인터페이스들(360)보다 더 높은 레벨의 성능을 제공하는 하나 또는 그 초과의 인터페이스들(362)을 포함할 수 있다. 인터페이스들(362A-362C) 각각은 개별적으로 DMA 제어기(364A-364C)에 커플링될 수 있다. 예컨대, 인터페이스들(362) 중 하나 또는 그 초과는 USB(Universal Serial Bus) 타입의 인터페이스로서 구현될 수 있다. 인터페이스들(362) 중 하나 또는 그 초과는 기가비트 이더넷 타입의 인터페이스로서 구현될 수 있다. 인터페이스들(362) 중 하나 또는 그 초과는 SD(Secure Digital) 타입의 인터페이스로서 구현될 수 있다.
I/O 서브-시스템(350)은 또한 하나 또는 그 초과의 인터페이스들(366), 이를테면 인터페이스들(362)보다 더 낮은 레벨의 성능을 제공하는 인터페이스들(366A-366D)을 포함할 수 있다. 예컨대, 인터페이스들(366) 중 하나 또는 그 초과는 GPIO(General Purpose I/O) 타입의 인터페이스로서 구현될 수 있다. 인터페이스들(366) 중 하나 또는 그 초과는 UART(Universal Asynchronous Receiver/Transmitter) 타입의 인터페이스로서 구현될 수 있다. 인터페이스들(366) 중 하나 또는 그 초과는 SPI(Serial Peripheral Interface) 버스 타입의 인터페이스 형태로 구현될 수 있다. 인터페이스들(366) 중 하나 또는 그 초과는 CAN(Controller-Area-Network) 타입의 인터페이스 및/또는 I2C 타입의 인터페이스 형태로 구현될 수 있다.
I/O 서브-시스템(350)은 하나 또는 그 초과의 디버그 인터페이스들(368), 이를테면 프로세서 JTAG(PJTAG) 인터페이스(368A) 및 트레이스 인터페이스(368B)를 포함할 수 있다. PJTAG 인터페이스(368A)는 프로그램가능 IC(302)에 대한 외부 디버그 인터페이스를 제공할 수 있다. 트레이스 인터페이스(368B)는 프로세싱 서브-시스템(310) 또는 프로그램가능 로직 서브-시스템(330)으로부터 디버그, 예컨대 트레이스, 정보를 수신하기 위한 포트를 제공할 수 있다.
도시된 바와 같이, 인터페이스들(360, 362, 366, 및 368) 각각은 멀티플렉서(370)에 커플링될 수 있다. 멀티플렉서(370)는 프로그램가능 IC(302)의 외부 핀들, 예컨대 프로그램가능 IC(302)가 배치되는 패키지의 볼(ball)들에 직접 라우팅되거나 커플링될 수 있는 복수의 출력들을 제공한다. 예컨대, 프로그램가능 IC(302)의 I/O 핀들은 인터페이스들(360, 362, 366, 및 368) 간에 공유될 수 있다. 사용자는 인터페이스들(360-368) 중 어느 것이 사용될지 및 그러므로 멀티플렉서(370)를 통해 프로그램가능 IC(302)의 I/O 핀들에 커플링 될지를 선택하기 위하여 구성 데이터 스트림을 통해 멀티플렉서(370)를 구성할 수 있다. I/O 서브-시스템(350)은 또한 인터페이스들(362-368)을 프로그램가능 로직 서브-시스템의 프로그램가능 로직 회로들에 연결하기 위하여 FMIO(fabric multiplexer I/O) 인터페이스(도시되지 않음)를 포함할 수 있다. 부가적으로 또는 대안적으로, 프로그램가능 로직 서브-시스템(330)은 프로그램가능 로직 내에 하나 또는 그 초과의 I/O 회로들을 구현하도록 구성될 수 있다. 일부 구현들에서, 프로그램가능 IC(302)는 또한 전력 및/또는 안전 관리를 위한 다양한 회로들을 가지는 서브-시스템(340)을 포함할 수 있다. 예컨대, 서브-시스템(340)은 프로그램가능 IC(302)의 다양한 서브-시스템들에 전력을 공급하기 위하여 사용되는 하나 또는 그 초과의 전압 도메인들을 모니터링 및 유지하도록 구성된 전력 관리 유닛(346)을 포함할 수 있다. 일부 구현들에서, 전력 관리 유닛(346)은 사용 중인 서브-시스템들에 대한 전력을 디스에이블링함이 없이 전력 소비를 감소시키기 위하여, 유휴 상태인 개별 서브-시스템들의 전력을 디스에이블할 수 있다.
서브-시스템(340)은 또한 올바른 동작을 보장하기 위하여 서브-시스템들의 상태를 모니터링하기 위한 안전 회로들을 포함할 수 있다. 예컨대, 서브-시스템(340)은 프로그램가능 IC의 다양한 서브-시스템들 또는 회로들에 대한 안전 기능들을 수행하도록 구성된 하나 또는 그 초과의 하드웨어에 설치된 안전 회로들(341)을 포함할 수 있다. 서브-시스템(340)은 또한 프로그램가능 IC의 다양한 서브-시스템들 또는 회로들에 대한 다양한 소프트웨어-기반 안전 기능들을 실행하도록 구성된 하나 또는 그 초과의 실시간 프로세서들(342)을 포함할 수 있다.
서브-시스템(340)은 프로그램가능 IC의 다양한 동작 파라미터들(예컨대, 전압, 온도, 클록들 및/또는 데이터/제어 신호들)을 모니터링하고 그리고 상태 레지스터들(344)에 모니터링된 동작 파라미터들의 상태를 표시하는 데이터를 저장하도록 구성된 하나 또는 그 초과의 센서들 또는 검출기들(349)을 포함할 수 있다. 상태 레지스터들은 하드웨어에 설치된 안전 회로들(341), 실시간 프로세서들(342), 또는 전력 관리 유닛(346)에 의해 액세스될 수 있다.
안전 기능들은 하나 또는 그 초과의 서브-시스템들 또는 회로들의 에러들의 검출, 방지, 및/또는 완화를 가능하게 하기 위하여 다양한 서브-시스템들의 상태를 모니터링하고 그리고 다양한 액션들을 수행할 수 있다. 일부 구현들에서, 안전 기능들은 에러를 표시하는 값들을 가지는 상태 레지스터들에 대한 응답으로 액션을 취할 수 있다. 예컨대, 안전 기능은 에러를 검출하는 것에 대한 응답으로 경고를 생성할 수 있다. 다른 예로서, 안전 기능은 개별 서브-시스템을 올바른 동작으로 복원하도록 시도하기 위하여 그 개별 서브-시스템을 리셋할 수 있다.
보호될 서브-시스템들 또는 회로들 및 수행될 안전 기능은 메모리(343)에 저장된 안전 정책으로 특정될 수 있다. 안전 정책은 프로그램가능 IC(302)의 상이한 서브-시스템들 또는 회로들에 대해 상이한 레벨들의 보호를 제공할 수 있다. 예컨대, 높은 우선순위 회로들/기능들(예컨대, 프로그램가능 IC의 사용자)은 하드에 설치된 전용 안전 회로들(341)에 의해 또는 록-스텝으로 동작되는 실시간 안전 프로세서들(342) 중 2개에 의해 구현되는 안전 기능에 의해 보호될 수 있다. 더 낮은 우선순위 회로들(예컨대, 주변장치들)은 더 낮은 우선순위 회로들의 기능성을 테스트하기 위하여 주기적으로 수행되는 소프트웨어-기반 테스트들에 의해 보호될 수 있다.
안전 정책은 비-휘발성 메모리에 하드코딩될 수 있거나 시작시 메모리에 저장될 수 있다. 일부 구현들에서, 안전 정책은 사용자 구성가능할 수 있고 그리고 예컨대 구성 데이터의 세트의 서브세트로 제공될 수 있다.
서브-시스템(340)은 다양한 서브-시스템들을 상호연결하기 위하여 사용될 수 있는 상호연결 스위치 네트워크(348)를 포함한다. 예컨대, 상호연결 스위치 네트워크(348)는 다양한 서브-시스템들(310, 330, 및 340)을 I/O 서브-시스템(350)의 다양한 인터페이스들에 연결하도록 구성될 수 있다. 일부 애플리케이션들에서, 상호연결 스위치 네트워크(348)는 또한 모니터링될 서브-시스템들로부터 실시간 프로세서들(342)을 격리하기 위하여 하드웨어에 설치된 안전 회로들(341) 또는 실시간 안전 프로세서들(342)의 하나 또는 그 초과의 안전 기능들에 의해 제어될 수 있다. 그런 격리는, 실시간 프로세서들(342)이 다른 서브-시스템들에서 발생하는 에러들에 의해 영향을 받지 않는 것을 보장하기 위하여 특정 애플리케이션 표준들(예컨대, IEC-61508 SIL3 또는 ISO-26262 표준들)에 의해 요구될 수 있다. 일부 애플리케이션들에서, 상호연결 스위치 네트워크(348)는 또한 랜덤 결함들에 대해 보호를 제공하기 위하여 (예컨대 ECC 또는 패리티에 의해) 보호될 수 있다. 일부 애플리케이션들에서, 상호연결 스위치 네트워크(348)는 상호연결 스위치 네트워크(348)를 테스트하기 위하여 주기적으로 수행되는 소프트웨어-기반 테스트들에 의해 보호될 수 있다.
일부 구현들에서, 일부 안전 기능들은 하드웨어에 설치된 안전 회로들(341)의 리던던트 하드웨어에 설치된 회로들에 의해 수행될 수 있다. 예컨대, 전력 관리 유닛(346)은 하드웨어에 설치된 안전 회로들(341)의 TMR식 회로에 의해 수행되는 안전 기능에 의해 보호될 수 있다. 예컨대, 안전 서브-시스템의 하드웨어에 설치된 회로들은 프로그램가능 IC의 전력 관리 유닛을 모니터링하도록 구성되는 TMR식 회로를 포함할 수 있다. 다른 예로서, 프로그램가능 IC는 (예컨대, 프로세싱 서브-시스템(310)의 리셋 동안) 프로그램가능 로직 회로들의 의도되지 않은 재구성을 방지하도록 구성된 구성 보안 유닛을 포함할 수 있다. 구성 보안 유닛은 유사하게 TMR식 회로들에 의해 보호될 수 있다.
도 4는 하나 또는 그 초과의 구현들에서 안전 시스템에 포함될 수 있는 사용자 구성가능 에러 핸들링을 위한 예시적인 시스템을 도시한다. 시스템은 에러 상태 레지스터들(420)의 세트를 포함하고, 각각의 에러 상태 레지스터는 상태 신호들(410) 세트의 개별 상태 신호를 수신하도록 구성된다. 에러 상태 레지스터(420)는, 상태 신호들(410)에 의해 표시된 에러들이 에러 리셋 신호(426)에 의해 클리어링(clear)될 때까지, 그 에러들을 저장 및 유지하도록 구성된다. 예컨대, 일부 구현들에서, 상태 신호들 각각은, 어떠한 에러도 존재하지 않으면 로지컬(logical) 0 값을 표시하고 에러가 존재하면 로지컬 1 값을 표시할 수 있다. 에러 리셋 신호(426)에 의해 리셋될 때, 모든 에러 상태 레지스터들의 값들은 어떠한 에러도 존재하지 않는 것을 표시하는 로지컬 0으로 세팅될 수 있다. 에러를 표시하는 상태 신호들(410) 중 하나에 대한 응답으로, 에러 상태 레지스터들(420) 중 대응하는 에러 상태 레지스터의 값은 로지컬 1로 세팅된다. 로지컬 1 값은, 상태 신호가 후에 로지컬 0 값으로 리턴하더라도, 레지스터에 의해 유지된다. 에러 상태 레지스터들(420)에 에러를 표시하는 값들을 유지함으로써, 에러들은 예컨대 에러 핸들링 회로에 의해 더 쉽게 프로세싱될 수 있다. 예컨대, 에러들이 에러 상태 레지스터들(420)에 유지됨에 따라, 에러 핸들링 회로는 간헐적 에러들의 발생들을 놓침이 없이 덜 빈번하게 에러 상태 레지스터들(420)의 값들을 리트리빙/수신할 수 있다.
에러 상태 레지스터들(420)의 값들은 시스템에 포함될 수 있는 다양한 회로들에 의해 에러 핸들링 및/또는 모니터링을 위해 병렬로 출력된다. 예컨대, 에러 상태 레지스터들(420)의 값들은 본원에서 구현된 사용자-정의 회로들에 의한 프로세싱을 위해 병렬 에러 신호들(462)로서 프로그램가능 로직 서브-시스템에 제공된다. 사용자는, 맞춤화된 에러 핸들링 회로를 구현하기 위하여, 구성 데이터의 세트를 통해 프로그램가능 로직을 프로그래밍할 수 있다. 에러 핸들링 회로는 에러 상태 레지스터들(420)에 의해 표시된 에러들의 다양한 조합들에 대한 응답으로 다수의 상이한 액션들을 수행하도록 사용자에 의해 구성될 수 있다. 예컨대, 사용자에 의해 정의된 에러 핸들링 회로는 하나 또는 그 초과의 시스템-전체(system-wide) 액션들, 이를테면 리셋, 셧다운, 및/또는 경고를 트리거할 수 있다. 대안적으로 또는 부가적으로, 사용자에 의해 정의된 에러 핸들링 회로는 프로그램가능 로직으로 구현된 사용자-정의 회로들로 하여금 하나 또는 그 초과의 액션들을 수행하게 할 수 있다. 예컨대, 에러에 대한 응답으로, 에러 핸들링 회로는, 프로그램가능 로직으로 구현된 회로들이 올바르게 동작하는지를 결정하기 위하여 내장자체테스트를 수행하도록 그 회로들을 트리거할 수 있다. 유사하게, 일부 구현들에서, 병렬 에러 신호들(462)은 시스템의 프로세서상에서 실행되는 소프트웨어-기반 에러 핸들링 루틴에 제공될 수 있다.
대안적으로 또는 부가적으로, 에러 상태 레지스터들(420)의 값들은 병렬 신호들(460)로서 전력 관리 유닛에 제공될 수 있다. 전력 관리 유닛은 예컨대, 개별 서브-시스템들 또는 전체 시스템을 전력-다운 또는 리셋하고, 및/또는 다양한 전력 도메인들의 전압들을 조정하도록 구성될 수 있다. 일부 구현들에서, 전력-관리 유닛의 펌웨어는 에러 상태 레지스터들에 의해 표시된 에러들의 다양한 조합들에 대한 응답으로 사용자-정의 액션들을 수행하도록 사용자에 의해 프로그래밍될 수 있다.
일부 구현들에서, 시스템은 하나 또는 그 초과의 사용자-정의 하드웨어-기반 안전 기능들을 구현하기 위하여 사용될 수 있는 마스킹(masking) 회로들(430)을 포함할 수 있다. 마스킹 회로들(430)은 예컨대, 에러 상태 레지스터들(420)에 의해 표시된 에러들을 필터링하기 위하여 사용될 수 있다. 예컨대, 회로들은 관심 있는 마스킹된 신호들의 세트를 생성하기 위하여 사용자-정의 마스크를 사용하여 에러 상태 레지스터들(420)에 의해 표시된 에러들을 필터링할 수 있다. 사용자-정의 마스크는 예컨대, 프로그램가능 로직 서브-시스템의 구성을 위해 사용된 구성 데이터의 세트 내에 특정될 수 있다. 사용자-정의 마스크는 특정 액션들을 트리거하기 위하여 개별적으로 또는 함께 사용될 수 있는 에러들의 세트를 격리할 수 있다. 예컨대, 마스킹된 에러 신호들은 프로그램가능 IC의 하나 또는 그 초과의 하드웨어에 설치된 회로들, 이를테면 리셋 회로에 의해 사용되는 제어 신호들을 세팅하기 위하여 사용될 수 있다. 예컨대, 로지컬 OR 게이트는, 마스킹된 신호들 중 임의의 신호가 에러를 표시하면, 액션을 트리거하기 위하여 사용될 수 있다. 로지컬 AND 게이트는, 마스킹된 신호들 중 임의의 신호가 에러를 표시하는 경우만, 액션을 트리거하기 위하여 사용될 수 있다. 다양한 로직 게이트들의 조합들은 더 복잡한 트리거들을 생성하기 위하여 사용될 수 있다.
도 4에 도시된 바와 같이, 마스킹 회로들(430)은 마스킹된 에러 신호들(435)의 제 1 세트를 생성하는 제 1 사용자-구성가능 마스크(432)를 포함할 수 있다. 로지컬 OR 게이트(436)는, 마스킹된 에러 신호들(435) 중 임의의 에러 신호가 에러를 표시하거나 또는 SW 에러 상태 신호(434)가 에러를 표시하면, 에러 신호(438)를 에러를 표시하는 값으로 세팅한다. 다른 예로서, 마스킹 회로들(430)은 시스템의 전력-온 리셋을 트리거할 에러 신호들(443)의 세트를 식별하는 제 2 사용자-구성가능 마스크(440)를 포함할 수 있다. 로지컬 OR 게이트(444)는, 마스킹된 신호들(443)이 에러를 표시하거나 또는 SW 리셋 요청(442)이 로지컬 1로 세팅되면, 전력-온-리셋(POR) 요청 신호(446)를 로지컬 1로 세팅함으로써 시스템의 POR을 트리거할 수 있다. 또 다른 예로서, 마스킹 회로들(430)은 시스템의 소프트웨어 리셋을 트리거할 에러 신호들(452)의 세트를 식별하는 사용자-구성가능 마스크(450)를 포함할 수 있다. 로지컬 OR 게이트(454)는, 마스킹된 신호들(452) 중 임의의 신호가 에러를 표시하거나 또는 SW 리셋 요청(442)이 로지컬 1로 세팅되면, SW 리셋 요청 신호(456)를 로지컬 1로 세팅함으로써 스프트웨어 리셋을 트리거한다.
일부 구현들에서, 에러 상태 레지스터들은 에러 상태 레지스터들(420) 각각의 값들을 표시하는 직렬 상태 신호(424)를 생성하기 위하여 모든 레지스터들의 값들을 직렬로 시프트 아웃(shift out)하도록 구성된 시프트 회로(422)를 포함할 수 있다. 직렬 상태 신호(424)는 시스템으로부터 출력될 수 있거나, 또는 에러 핸들링을 위해 다양한 회로들에 제공될 수 있다. 예컨대, 일부 구현들에서, 직렬 상태 신호(424)는 병렬 신호들(462) 대신 프로그램가능 로직의 에러 핸들링 회로에 제공될 수 있다.
방법들 및 회로들은 다양한 시스템들 및 애플리케이션들에 적용가능하다고 생각된다. 다른 양상들 및 특징들은 명세서를 고려하여 당업자들에게 자명할 것이다. 예컨대, 양상들 및 특징들이 일부 경우들에서 개별 도면들에 설명되었지만, 하나의 도면으로부터의 특징들이, 조합이 조합으로서 명시적으로 도시되거나 명시적으로 설명되지 않더라도 다른 도면의 특징들과 조합될 수 있다는 것이 인지될 것이다. 명세서 및 도면들이 단지 예들로서 간주되는 것이 의도되고, 본 발명의 진정한 범위는 뒤따르는 청구항들에 의해 표시된다.

Claims (15)

  1. 프로그램가능 집적 회로(IC)로서,
    구성 데이터의 제 1 서브세트(subset)에 대한 응답으로 구성된 복수의 프로그램가능 로직(logic) 회로들을 포함하는 프로그램가능 로직 서브-시스템;
    구성 데이터의 제 2 서브세트에 포함된 소프트웨어 부분의 프로그램 코드를 실행하도록 구성된 하나 이상의 프로세싱 회로들을 포함하는 프로세싱 서브-시스템; 및
    상기 프로그램가능 IC의 회로들 내 에러를 표시하는 값들을 갖는 상태 레지스터들의 세트에 대한 응답으로 하나 이상의 액션(action)들을 수행하는 안전 기능들을 수행하도록 구성된 안전 서브-시스템
    을 포함하고,
    상기 안전 서브-시스템은:
    상기 프로그램가능 IC의 회로들의 제 1 서브세트에 대해 하드웨어-기반 안전 기능들을 수행하도록 구성된 하드웨어에 설치된(hard-wired) 회로들의 세트; 및
    상기 프로그램가능 IC의 회로들의 제 2 서브세트에 대해 소프트웨어-기반 안전 기능들을 실행하도록 구성된 프로세싱 회로
    를 포함하며,
    상기 프로그램가능 IC는 상기 구성 데이터를 수신하는 것에 대한 응답으로 상기 구성 데이터의 제 3 서브세트에 포함된 안전 정책(safety policy)을 저장하도록 구성되고; 그리고
    상기 안전 정책은 상기 프로그램가능 IC의 회로들에 대한 우선순위들을 식별하며, 상기 회로들의 제 1 서브세트는 우선순위가 상대적으로 높은 회로들로서 식별되고, 그리고 상기 회로들의 제 2 서브세트는 우선순위가 상대적으로 낮은 회로들로서 식별되는,
    프로그램가능 집적 회로(IC).
  2. 제 1 항에 있어서,
    상기 구성 데이터의 제 3 서브세트는 상기 프로그램가능 IC의 회로들 각각에 대해 프로그래밍될 안전 기능들을 특정하는,
    프로그램가능 집적 회로(IC).
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 안전 서브-시스템의 프로세싱 회로는, 락스텝(lockstep) 방식으로 상기 소프트웨어-기반 안전 기능들 중 하나를 수행하도록 구성된 적어도 2개의 프로세서들을 포함하는,
    프로그램가능 집적 회로(IC).
  4. 제 1 항 또는 제 2 항에 있어서,
    상기 하드웨어에 설치된 회로들의 세트에 의해 수행되는 상기 하드웨어-기반 안전 기능들 중 적어도 하나는, 2개의 프로세서들이 락스텝 방식으로 올바르게 동작하는지 여부를 결정하도록 구성되는,
    프로그램가능 집적 회로(IC).
  5. 제 1 항 또는 제 2 항에 있어서,
    상기 프로그램가능 IC의 회로들은 메모리 회로를 포함하고; 그리고
    상기 메모리 회로에 대해 상기 안전 서브-시스템에 의해 수행되는 안전 기능은 에러-수정 코드를 사용하여 상기 메모리 회로에 저장된 데이터의 무결성을 모니터링하는,
    프로그램가능 집적 회로(IC).
  6. 제 1 항 또는 제 2 항에 있어서,
    상기 프로그램가능 로직 서브-시스템, 상기 프로세싱 서브-시스템, 및 상기 안전 서브-시스템은 별개의 전력 도메인(domain)들에 의해 전력을 공급받는,
    프로그램가능 집적 회로(IC).
  7. 제 6 항에 있어서,
    상기 프로그램가능 IC는 상기 프로그램가능 로직 서브-시스템, 상기 프로세싱 서브-시스템, 및 상기 안전 서브-시스템에 전력을 공급하기 위하여 사용되는 전력 도메인들의 전력을 조정하도록 구성된 전력 관리 유닛을 포함하고; 그리고
    상기 전력 관리 유닛에 대해 상기 안전 서브-시스템에 의해 수행되는 안전 기능은, 상기 하드웨어에 설치된 회로들의 세트에 포함된 TMR(triple modular redundant)식 에러 검출 회로를 사용하여 에러들에 대한 상기 전력 관리 유닛의 동작을 모니터링하는,
    프로그램가능 집적 회로(IC).
  8. 제 6 항에 있어서,
    상기 안전 서브-시스템에 의해 수행되는 상기 안전 기능들 중 적어도 하나는, 상기 서브-시스템 내 에러를 검출하는 것에 대한 응답으로 상기 프로그램가능 IC의 상기 프로그램가능 로직 서브-시스템 또는 상기 프로세싱 서브-시스템 중 하나를 리셋하도록 구성되는,
    프로그램가능 집적 회로(IC).
  9. 제 1 항 또는 제 2 항에 있어서,
    상기 프로그램가능 IC의 하나의 회로에 대해 상기 안전 서브-시스템에 의해 수행되는 상기 안전 기능들 중 적어도 하나는, 상기 하나의 회로에 의해 사용되는 통신 데이터 경로들을 상기 프로그램가능 IC의 다른 회로들에 의해 사용되는 통신 데이터 경로들로부터 격리시키는,
    프로그램가능 집적 회로(IC).
  10. 방법으로서,
    프로그램가능 집적 회로(IC)의 프로그램가능 로직 서브-시스템에서 사용자 디자인의 하드웨어 부분을 동작시키는 단계;
    상기 프로그램가능 IC의 프로세싱 서브-시스템상에서 상기 사용자 디자인의 소프트웨어 부분을 실행시키는 단계;
    상기 프로그램가능 IC의 안전 서브-시스템의 프로세서들의 세트를 사용하여 소프트웨어-기반 안전 기능들을 수행하는 단계;
    상기 안전 서브-시스템의 하드웨어에 설치된 회로들의 세트를 사용하여 하드웨어-기반 안전 기능들을 수행하는 단계 ― 상기 소프트웨어-기반 안전 기능들 및 상기 하드웨어-기반 안전 기능들은, 상기 프로그램가능 IC에 포함된 회로들 내 에러를 표시하는 값들을 갖는 상태 레지스터들의 세트에 대한 응답으로 하나 이상의 액션들을 수행하도록 구성됨 ―;
    상기 사용자 디자인의 하드웨어 부분을 형성하기 위하여 구성 데이터의 세트를 사용하여 상기 프로그램가능 로직 서브-시스템을 구성하는 단계; 및
    상기 안전 서브-시스템의 메모리에 상기 구성 데이터의 세트의 서브세트에 포함된 안전 정책을 저장하는 단계
    를 포함하고,
    상기 안전 정책은 상기 하드웨어-기반 안전 기능들 또는 상기 소프트웨어-기반 안전 기능들 중 적어도 하나를 표시하며;
    상기 안전 정책은 상기 프로그램가능 IC에 포함된 상기 회로들을 우선순위가 상대적으로 높은 회로들 또는 우선순위가 상대적으로 낮은 회로들로 분류하고;
    상기 소프트웨어-기반 안전 기능들은, 상기 프로그램가능 IC의 우선순위가 상대적으로 낮은 회로들로 분류되는 회로들에 대해 수행되며; 그리고
    상기 하드웨어-기반 안전 기능들은, 상기 프로그램가능 IC의 우선순위가 상대적으로 높은 회로들로 분류되는 회로들에 대해 수행되는,
    방법.
  11. 제 10 항에 있어서,
    상기 소프트웨어-기반 안전 기능들 중 적어도 하나는, 상기 프로세서들의 세트 중 락스텝 방식으로 동작되는 적어도 2개의 프로세서들을 사용하여 수행되고; 그리고
    상기 하드웨어-기반 안전 기능들 중 적어도 하나는, 상기 적어도 2개의 프로세서들이 락스텝 방식으로 올바르게 동작되는지 여부를 결정하도록 구성되는,
    방법.
  12. 제 10 항 또는 제 11 항에 있어서,
    상기 프로그램가능 IC에 포함된 상기 회로들은 메모리 회로를 포함하고; 그리고
    상기 소프트웨어-기반 안전 기능들 또는 상기 하드웨어-기반 안전 기능들 중 적어도 하나를 수행하는 것은, 에러-수정 코드를 사용하여 상기 메모리 회로에 저장된 데이터의 무결성을 모니터링하는 것을 포함하는,
    방법.
  13. 제 10 항 또는 제 11 항에 있어서,
    별개의 전력 도메인들을 사용하여 상기 프로그램가능 로직 서브-시스템, 상기 프로세싱 서브-시스템, 및 상기 안전 서브-시스템에 전력을 공급하는 단계;
    상기 프로그램가능 IC의 전력 관리 유닛을 사용하여 상기 별개의 전력 도메인들의 전력을 조정하는 단계
    를 더 포함하고,
    상기 하드웨어-기반 안전 기능들을 수행하는 것은, 하드웨어에 설치된 회로들의 세트에 포함된 TMR(triple modular redundant)식 에러 검출 회로를 사용하여 에러들에 대한 상기 전력 관리 유닛의 동작을 모니터링하는 것을 포함하고; 그리고
    상기 소프트웨어-기반 안전 기능들 또는 상기 하드웨어-기반 안전 기능들 중 적어도 하나는, 상기 서브-시스템 내 에러를 검출하는 것에 대한 응답으로 상기 프로그램가능 IC의 상기 프로그램가능 로직 서브-시스템 또는 상기 프로세싱 서브-시스템 중 하나를 리셋하도록 구성되는,
    방법.
  14. 삭제
  15. 삭제
KR1020177008670A 2014-09-24 2015-09-04 안전 서브-시스템을 가지는 프로그램가능 ic KR102386719B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/495,024 2014-09-24
US14/495,024 US9130559B1 (en) 2014-09-24 2014-09-24 Programmable IC with safety sub-system
PCT/US2015/048580 WO2016048627A1 (en) 2014-09-24 2015-09-04 Programmable ic with safety sub-system

Publications (2)

Publication Number Publication Date
KR20170060028A KR20170060028A (ko) 2017-05-31
KR102386719B1 true KR102386719B1 (ko) 2022-04-13

Family

ID=54012683

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177008670A KR102386719B1 (ko) 2014-09-24 2015-09-04 안전 서브-시스템을 가지는 프로그램가능 ic

Country Status (6)

Country Link
US (1) US9130559B1 (ko)
EP (1) EP3198725B1 (ko)
JP (1) JP6647289B2 (ko)
KR (1) KR102386719B1 (ko)
CN (1) CN106716843B (ko)
WO (1) WO2016048627A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9929556B2 (en) * 2014-09-30 2018-03-27 Stmicroelectronics S.R.L. Fail-safe device corresponding apparatus and vehicle
US9772897B1 (en) 2014-12-19 2017-09-26 Xilinx, Inc. Methods and systems for improving safety of processor system
US10482054B1 (en) 2016-09-09 2019-11-19 Xilinx, Inc. AXI-CAPI adapter
US10657067B1 (en) 2016-09-12 2020-05-19 Xilinx, Inc. Memory management unit with prefetch
US10551902B2 (en) * 2016-11-10 2020-02-04 Apple Inc. Methods and apparatus for providing access to peripheral sub-system registers
US10657292B2 (en) * 2017-12-18 2020-05-19 Xilinx, Inc. Security for programmable devices in a data center
US10719452B2 (en) * 2018-06-22 2020-07-21 Xilinx, Inc. Hardware-based virtual-to-physical address translation for programmable logic masters in a system on chip
JP2020048022A (ja) * 2018-09-18 2020-03-26 株式会社東芝 半導体集積回路及び再構成半導体システム
JP2022512879A (ja) * 2018-11-05 2022-02-07 ザイリンクス インコーポレイテッド ネットワークインターフェースデバイス
US11281810B1 (en) 2018-12-11 2022-03-22 Xilinx, Inc. Memory access protection in programmable logic device
US10673439B1 (en) * 2019-03-27 2020-06-02 Xilinx, Inc. Adaptive integrated programmable device platform

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009155993A1 (en) 2008-06-27 2009-12-30 Abb Research Ltd. A safety system for a machine
US20110191062A1 (en) 2007-11-14 2011-08-04 Endress + Hauser Gmbh + Co. Kg Field device for determining or monitoring a process variable in process automation
JP2011216020A (ja) 2010-04-01 2011-10-27 Mitsubishi Electric Corp 情報処理装置および回路再構成装置
JP2013073289A (ja) 2011-09-27 2013-04-22 Nec Corp 多重化システム、データ通信カード、状態異常検出方法、及びプログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5365922A (en) * 1991-03-19 1994-11-22 Brigham And Women's Hospital, Inc. Closed-loop non-invasive oxygen saturation control system
US6647301B1 (en) * 1999-04-22 2003-11-11 Dow Global Technologies Inc. Process control system with integrated safety control system
FR2860313B1 (fr) * 2003-09-30 2005-11-04 Commissariat Energie Atomique Composant a architecture reconfigurable dynamiquement
SE0402098D0 (sv) * 2004-08-30 2004-08-30 Abb Ab A control system
JP4456552B2 (ja) * 2005-03-31 2010-04-28 富士通株式会社 動的代替機能を持つ論理集積回路、これを用いた情報処理装置及び論理集積回路の動的代替方法
DE102005055067A1 (de) * 2005-11-18 2007-05-24 Robert Bosch Gmbh Vorrichtung und Verfahren zum Beheben von Fehlern bei einem wenigstens zwei Ausführungseinheiten mit Registern aufweisenden System
US8117512B2 (en) * 2008-02-06 2012-02-14 Westinghouse Electric Company Llc Failure detection and mitigation in logic circuits
DK2249707T3 (da) * 2008-02-06 2022-07-04 Capis Sprl Indretning til automatiseret screening for medfødte hjertesygdomme
US8098080B2 (en) * 2008-02-29 2012-01-17 Renesas Electronics Corporation Semiconductor programmable device
DE102008059841A1 (de) * 2008-12-01 2010-06-02 Robert Bosch Gmbh Verfahren zum Programmieren einer sichheitsgerichteten Speicherprogrammierbaren Steuerung und Vermittler-Funktionsbaustein
JP2011188115A (ja) * 2010-03-05 2011-09-22 Toshiba Corp 半導体集積回路
DE102010043706A1 (de) * 2010-07-05 2012-01-05 Endress + Hauser Gmbh + Co. Kg Feldgerät zur Bestimmung oder Überwachung einer physikalischen oder chemischen Prozessgröße
US8667192B2 (en) * 2011-02-28 2014-03-04 Xilinx, Inc. Integrated circuit with programmable circuitry and an embedded processor system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110191062A1 (en) 2007-11-14 2011-08-04 Endress + Hauser Gmbh + Co. Kg Field device for determining or monitoring a process variable in process automation
WO2009155993A1 (en) 2008-06-27 2009-12-30 Abb Research Ltd. A safety system for a machine
JP2011216020A (ja) 2010-04-01 2011-10-27 Mitsubishi Electric Corp 情報処理装置および回路再構成装置
JP2013073289A (ja) 2011-09-27 2013-04-22 Nec Corp 多重化システム、データ通信カード、状態異常検出方法、及びプログラム

Also Published As

Publication number Publication date
JP6647289B2 (ja) 2020-02-14
CN106716843B (zh) 2018-08-17
EP3198725A1 (en) 2017-08-02
JP2017535125A (ja) 2017-11-24
WO2016048627A1 (en) 2016-03-31
EP3198725B1 (en) 2018-12-05
CN106716843A (zh) 2017-05-24
US9130559B1 (en) 2015-09-08
KR20170060028A (ko) 2017-05-31

Similar Documents

Publication Publication Date Title
KR102386719B1 (ko) 안전 서브-시스템을 가지는 프로그램가능 ic
US9652252B1 (en) System and method for power based selection of boot images
US8937496B1 (en) Clock monitor
CN109872150B (zh) 具有时钟同步操作的数据处理系统
US9632869B1 (en) Error correction for interconnect circuits
US9529686B1 (en) Error protection for bus interconnect circuits
US10078565B1 (en) Error recovery for redundant processing circuits
US10037301B2 (en) Circuits and methods for inter-processor communication
US10754760B1 (en) Detection of runtime failures in a system on chip using debug circuitry
KR102384904B1 (ko) 집적 회로들을 위한 전력 관리 시스템
CN111033630A (zh) 具有mbist的多处理器内核设备
US9130566B1 (en) Programmable IC with power fault tolerance
US9495239B1 (en) User-configurable error handling
US20180039544A1 (en) Resource access management component and method therefor
KR102386662B1 (ko) 서브시스템 전력 관리 제어
US10042692B1 (en) Circuit arrangement with transaction timeout detection
US10275259B1 (en) Multi-stage booting of integrated circuits
Cherezova et al. Understanding fault-tolerance vulnerabilities in advanced SoC FPGAs for critical applications
US9734032B1 (en) Diagnostic coverage of registers by software
US10043027B1 (en) Generation of mask-value pairs for managing access to memory segments
Vargas et al. SoC prototyping environment for electromagnetic immunity measurements

Legal Events

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