KR20190091554A - 록스텝 시스템들의 주기적인 비-간섭적 진단 - Google Patents

록스텝 시스템들의 주기적인 비-간섭적 진단 Download PDF

Info

Publication number
KR20190091554A
KR20190091554A KR1020197020703A KR20197020703A KR20190091554A KR 20190091554 A KR20190091554 A KR 20190091554A KR 1020197020703 A KR1020197020703 A KR 1020197020703A KR 20197020703 A KR20197020703 A KR 20197020703A KR 20190091554 A KR20190091554 A KR 20190091554A
Authority
KR
South Korea
Prior art keywords
processing system
program
execution
processing
comparing
Prior art date
Application number
KR1020197020703A
Other languages
English (en)
Other versions
KR102016004B1 (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 KR20190091554A publication Critical patent/KR20190091554A/ko
Application granted granted Critical
Publication of KR102016004B1 publication Critical patent/KR102016004B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • G06F11/1645Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components and the comparison itself uses redundant hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2215Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test error correction or detection circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • G06F11/2242Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors in multi-processor systems, e.g. one processor becoming the test master
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Hardware Redundancy (AREA)

Abstract

본 명세서에 개시된 양상들은 록스텝 시스템들의 주기적인 비-간섭적 진단에 관한 것이다. 예시적인 방법은, 제1 비교기 회로를 사용하여, 복수의 프로세싱 시스템들 중 제1 프로세싱 시스템 상에서의 프로그램의 실행과 복수의 프로세싱 시스템들 중 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하는 단계, 제2 비교기 회로를 사용하여, 제1 프로세싱 시스템 상에서의 프로그램의 실행과 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하는 단계; 및 제1 비교기 회로를 사용하여 비교하는 것이 진행 중인 동안 제2 비교기 회로 상에서 진단 프로그램을 구동시키는 단계를 포함한다.

Description

록스텝 시스템들의 주기적인 비-간섭적 진단
[0001] 본 출원은, 2017년 1월 19일자로 출원된 미국 출원 제 15/410,271호를 우선권으로 주장하며, 그 출원은, 본 출원의 양수인에게 양도되고, 그 전체가 본 명세서에 인용에 의해 포함된다.
[0002] 본 명세서에 개시된 양상들은 컴퓨터 프로세서들의 분야에 관한 것이다. 더 구체적으로, 본 명세서에 개시된 양상들은 록스텝(lockstep) 시스템들의 주기적인 비-간섭적(non-intrusive) 진단에 관한 것이다.
[0003] 차량 제어를 위한 자동화된 시스템들이 보급되고 있다. 단지 ADAS(automotive driver assist systems)의 경우에, 몇몇 예측들은 향후 5년에 걸쳐 24%의 연평균 성장률을 가져온다고 한다. 기능적 안전은, ADAS, UAV(unmanned aerial vehicle) 시스템들, 항공 시스템들, 및 방어 시스템들을 포함할 수 있는 이들 시스템들에 대한 핵심 요건이다. 예컨대, 자동차에서, 비상 제동 시스템 및 적응적 크루즈 제어는, 고장이 자동차 사고와 같은 견딜 수 없는 결과들을 초래할 수 있으므로 고장들을 겪을 여유가 없을 수 있다. 유사하게, 항공 제어 시스템들이 또한 고장들이 허용되지 않을 수 있다.
[0004] ISO 표준 26262는, 전기 및/또는 전자 시스템들의 오작동 거동에 의해 야기되는 위험요소들로 인한 터무니없는 위험들을 피하도록 설계 및 구성될 것을 컴플라이언트(compliant) 시스템들에게 요구한다. 시스템들의 결함들은 소프트-에러(soft-error)들, 하드웨어 노화, 또는 회로 고장으로 인한 랜덤한 고장들일 수 있다. 고장들에 대해 복원력이 있도록 하기 위해, 뒤따라 온 하나의 접근법은, 리던던시(redundancy)를 위해 록스텝으로 구동되는 하나 초과의 컴퓨트 엔진(compute engine)을 갖는 것이며, 모든 각각의 활동(예컨대, 컴퓨트 엔진들의 출력들)은 메모리 인터페이스들, 버스 인터페이스들, 및/또는 컴퓨트 블록 입력/출력(I/O) 인터페이스들에서 비교된다. 컴퓨트 엔진들 중 하나 이상에 결함이 존재하면, 결함은 비교 미스매치로 반영될 것이다. 하나 초과의 컴퓨트 엔진들이 리던던시를 위해 록스텝으로 구동되고 모든 각각의 활동이 하나 이상의 인터페이스들에서 비교되는 시스템들은 록스텝 시스템들로 본 명세서에서 지칭된다.
[0005] 제어 시스템(예컨대, 차량의 제어 시스템)의 비교 회로가 결함을 발생시키면, 제어 시스템의 결함들은 검출되지 않게 되어, 가능하게는 터무니없는 위험을 초래할 수 있다. 이러한 가능성을 회피하는 데 사용되는 하나의 기법은, 제어 시스템의 컴퓨팅 활동을 주기적으로 중단시키고, 제어 시스템에 대한 콘텍스트를 저장하고, 제어 시스템의 비교 회로 및 나머지의 하드웨어 진단을 수행하며, 하드웨어 진단이 어떠한 문제점들도 검출하지 않으면, 저장된 콘텍스트를 복원하고 제어 시스템의 활동을 재개하는 것이다. 이러한 기법은, 제어 시스템의 동작들에 대한 유휴-시간 지속기간 제약이 통상적으로 존재하므로, 제어 시스템들의 소프트웨어 아키텍처에 심각한 제한을 부과하고 종종 수행하기에 매우 어렵다. 즉, 제어 시스템의 제어 하의 차량이 매우 짧은 기간 이상으로 제어불가능하게 될 리가 없기 때문에, 제어 시스템이 유휴가 되는 기간들은 최대 허용된 길이를 갖는다. 이것은 안전한 동작 및 신뢰도 둘 모두를 요구하는 시스템을 설계하는 데 있어 심각한 어려움이다. 더욱이, 더 큰 복잡도를 갖는 시스템들이 개발되므로, 시스템적 및/또는 랜덤한 하드웨어 고장들의 증가된 위험들이 존재한다.
[0006] 따라서, 비교기 회로들을 사용하여 제어 시스템들의 신뢰도를 개선시키기 위한 기법들이 바람직하다.
[0007] 본 명세서에 개시된 양상들은 록스텝 시스템들의 주기적인 비-간섭적 진단에 관한 것이다.
[0008] 일 양상에서, 디바이스의 복수의 프로세싱 시스템들의 실행을 비교하기 위한 방법이 제공된다. 방법은 일반적으로, 제1 비교기 회로를 사용하여, 복수의 프로세싱 시스템들 중 제1 프로세싱 시스템 상에서의 프로그램의 실행과 복수의 프로세싱 시스템들 중 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하는 단계, 제2 비교기 회로를 사용하여, 제1 프로세싱 시스템 상에서의 프로그램의 실행과 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하는 단계; 및 제1 비교기 회로를 사용하여 비교하는 것이 진행 중인 동안 제2 비교기 회로 상에서 진단 프로그램을 구동시키는 단계를 포함한다.
[0009] 다른 양상에서, 복수의 프로세싱 시스템들의 실행을 비교하기 위한 장치가 제공된다. 장치는 일반적으로, 제1 비교기 회로를 사용하여, 복수의 프로세싱 시스템들 중 제1 프로세싱 시스템 상에서의 프로그램의 실행과 복수의 프로세싱 시스템들 중 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하고, 제2 비교기 회로를 사용하여, 제1 프로세싱 시스템 상에서의 프로그램의 실행과 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하며; 그리고 제1 비교기 회로를 사용하여 비교하는 것이 진행 중인 동안 제2 비교기 회로 상에서 진단 프로그램을 구동시키도록 구성된 프로세서, 및 프로세서와 커플링된 메모리를 포함한다.
[0010] 또 다른 양상에서, 복수의 프로세싱 시스템들의 실행을 비교하기 위한 장치가 제공된다. 장치는 일반적으로, 제1 비교기 회로를 사용하여, 복수의 프로세싱 시스템들 중 제1 프로세싱 시스템 상에서의 프로그램의 실행과 복수의 프로세싱 시스템들 중 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하기 위한 수단, 제2 비교기 회로를 사용하여, 제1 프로세싱 시스템 상에서의 프로그램의 실행과 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하기 위한 수단; 및 제1 비교기 회로를 사용하여 비교하는 것이 진행 중인 동안 제2 비교기 회로 상에서 진단 프로그램을 구동시키기 위한 수단을 포함한다.
[0011] 또 다른 양상에서, 명령들을 포함하는 비-일시적인 컴퓨터-판독가능 매체가 제공된다. 명령들은, 하나 이상의 프로세싱 시스템들에 의해 실행될 경우, 하나 이상의 프로세싱 시스템들로 하여금, 제1 비교기 회로를 사용하여, 복수의 프로세싱 시스템들 중 제1 프로세싱 시스템 상에서의 프로그램의 실행과 복수의 프로세싱 시스템들 중 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하는 것, 제2 비교기 회로를 사용하여, 제1 프로세싱 시스템 상에서의 프로그램의 실행과 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하는 것; 및 제1 비교기 회로를 사용하여 비교하는 것이 진행 중인 동안 제2 비교기 회로 상에서 진단 프로그램을 구동시키는 것을 포함하는 동작들을 수행하게 한다.
[0012] 청구된 양상들은 이전에 알려진 솔루션들에 비해 하나 이상의 장점들을 제공할 수 있다. 몇몇 양상들에 따르면, 록스텝 컴퓨팅 시스템의 컴포넌트들의 진단은, 록스텝 컴퓨팅 시스템의 프로세싱 시스템들이 검증되지 않으면서 프로그램 단계들을 실행하게 허용하지 않으면서, 또한 록스텝 컴퓨팅 시스템의 유휴 시간 지속기간 제약보다 길게 취해짐에도 불구하고 수행될 수 있다.
[0013] 위에서 언급된 양상들이 달성되고 상세히 이해될 수 있는 방식으로, 위에서 간략하게 요약된 본 개시내용의 양상들의 더 구체적인 설명이 첨부된 도면들을 참조하여 이루어질 수 있다.
[0014] 그러나, 첨부된 도면들이 본 개시내용의 양상들만을 예시하는 것이므로, 본 개시내용의 범위를 제한하는 것으로 간주되지 않아야 한다는 것이 주목되어야 하는데, 이는 상기 개시내용이 다른 양상들을 허용할 수 있기 때문이다.
[0015] 도 1은 본 개시내용의 양상들에 따라 동작하도록 구성된 예시적인 컴퓨팅 디바이스의 기능 블록 다이어그램이다.
[0016] 도 2a 및 도 2b는 본 개시내용의 양상들에 따른, 록스텝 컴퓨팅 시스템의 동작을 체크하기 위한 기법들의 예시적인 타임라인들을 예시한다.
[0017] 도 3은 본 개시내용의 양상들에 따라 동작하도록 구성된 컴퓨팅 디바이스를 예시하는 블록 다이어그램이다.
[0018] 도 4는 본 개시내용의 양상들에 따른, 컴퓨팅 디바이스의 하나 이상의 프로세싱 시스템들에 의해 수행될 수 있는 동작들을 예시한다.
[0019] 도 5는 본 개시내용의 양상들에 따른 동작들의 예시적인 타임라인을 예시한다.
[0020] 도 6은 본 개시내용의 양상들에 따라 동작하도록 구성된 컴퓨팅 디바이스를 예시하는 블록 다이어그램이다.
[0021] 본 명세서에 개시된 양상들은 록스텝 시스템들의 주기적인 비-간섭적 진단을 위한 기법들을 제공한다. 본 개시내용의 양상들에 따르면, 적어도 2개의 비교기 회로들은 2개의 컴퓨트 엔진들(예컨대, 프로세서들, 프로세서 코어들) 사이에 놓여 있으며, 컴퓨트 엔진들의 (예컨대, TCM(tightly-coupled memory), 레벨 1(L1) 데이터 캐시, 레벨 2(L2) 데이터 캐시, L1 명령 캐시, L2 명령 캐시, 시스템 메모리, 시스템 I/O 인터페이스들에 대한) 메모리 액세스들을 비교한다. 컴퓨트 엔진들이 CPU의 일부들이면, 비교기 회로들은 또한, 컴퓨트 엔진들의 프로그램 카운터(PC)들을 비교할 수 있다. 2개의 비교기 회로들은 3개의 모드들 중 하나로 동작할 수 있다. 제1 모드에서, 컴퓨트 엔진들의 체크들이 비교기 회로들 둘 모두에 대해 인에이블링되며, 비교기 회로들 둘 모두는, 컴퓨트 엔진들이 성공적으로 록스텝에 있는지 여부를 진단하기 위해 사용된다. 제2 모드에서, 제1 비교기 회로는 자체-진단 하에 있으며, 제2 비교기 회로는, 컴퓨트 엔진들이 성공적으로 록스텝에 있는지 여부를 진단하기 위해 사용된다. 제3 모드에서, 제2 비교기 회로는 자체-진단 하에 있으며, 제1 비교기 회로는, 컴퓨트 엔진들이 성공적으로 록스텝에 있는지 여부를 진단하기 위해 사용된다.
[0022] 본 개시내용의 양상들은 이전에 알려진 기법들에 비해 다음의 장점들을 가질 수 있다. 먼저, 비교기 회로(들)의 비-간섭적 진단이 소프트웨어 아키텍처에 포함된 동작들 중 더 많은 동작들의 커버리지를 허용하기 때문에, 현재 시스템들에서 진단을 지원하기 위해 부과된 소프트웨어 아키텍처 제한들이 회피될 수 있다. 이전에 언급된 바와 같이(위 참조), 현재 기법들은, 유휴-시간 지속기간 제약들을 충족시키면서 동작들의 100% 커버리지를 달성하는 어려움을 갖는다. 새로운 더 복잡한 사용 경우들에 대해, 단일 비교기 회로를 사용하여 제어 회로들을 주기적으로 진단하는 것이 점차 실행불가능할 수 있다. 본 개시내용의 양상들은 더 많은 시간 마진 및 그에 따른 동작들의 더 양호한 커버리지를 허용한다.
[0023] 도 1은 이전에 알려진 기법들에 따라 동작하도록 구성된 컴퓨팅 디바이스(101)를 예시하는 블록 다이어그램이다. 컴퓨팅 디바이스(101)는 네트워크(130)를 통해 다른 컴퓨팅 디바이스들에 연결될 수 있다. 일반적으로, 네트워크(130)는 원격통신 네트워크 및/또는 광역 네트워크(WAN)일 수 있다. 일반적으로, 컴퓨팅 디바이스(101)는, 데스크톱 컴퓨터, 서버, 랩톱 컴퓨터, 태블릿 컴퓨터, ADAS, 및 UAV 제어 시스템을 포함하지만 이에 제한되지 않는, 록스텝으로 코어들과 함께 동작하도록 구성된 임의의 타입의 컴퓨팅 디바이스일 수 있다.
[0024] 컴퓨팅 디바이스(101)는 일반적으로, 2개의 프로세싱 코어들(112a, 112b) 및 비교기 회로(114)를 포함하는 프로세서(110)를 포함한다. 프로세싱 코어들(112)은 비교기 회로(114)와 연결되며, 비교기 회로(114)는 프로세싱 코어들(112)의 활동을 비교한다. 프로세서(110)의 비교기 회로(114)는, 메모리(108), 선택적인 네트워크 인터페이스 디바이스(118), 저장소(109), 입력 디바이스(122), 및 출력 디바이스(124)에 버스(120)를 통해 연결된다. 비교기 회로(114)는, 프로세싱 코어들(112)이 록스텝으로 동작하고 있다는 것을 보장하기 위해 프로세싱 코어들(112)의 출력들을 비교한다. 차이가 프로세싱 코어들(112)의 출력들에서 검출되면, 비교기 회로(114)는 프로세서에 대한 결함을 보고한다. 컴퓨팅 디바이스(101)는 일반적으로 운영 시스템(도시되지 않음)에 따라 동작한다. 본 명세서에 개시된 기능들을 지원하는 임의의 운영 시스템이 사용될 수 있다. 네트워크 인터페이스 디바이스(118)는, 컴퓨팅 디바이스(101)가 네트워크(130)를 통해 다른 컴퓨팅 디바이스들과 통신하게 허용하는 임의의 타입의 네트워크 통신 디바이스일 수 있다.
[0025] 저장소(109)는 영구 저장 디바이스일 수 있다. 저장소(109)가 단일 유닛으로 도시되지만, 저장소(109)는 고정형 및/또는 착탈형 저장 디바이스들, 이를테면 고정형 디스크 드라이브들, 솔리드 스테이트 드라이브들, SAN 저장소, NAS 저장소, 착탈형 메모리 카드들 또는 광학 저장소의 조합일 수 있다. 메모리(108) 및 저장소(109)는 다수의 1차 및 2차 저장 디바이스들에 걸쳐있는 하나의 가상 어드레스 공간의 일부일 수 있다.
[0026] 입력 디바이스(122)는 사용자가 입력을 컴퓨팅 디바이스(101)에 제공할 수 있게 하도록 동작가능한 임의의 디바이스(사용자 및/또는 하나 이상의 센서들에 의해 동작가능한 입력 디바이스를 포함함)일 수 있다. 예컨대, 입력 디바이스(122)는 광학 센서일 수 있다. 출력 디바이스(124)는 출력을 컴퓨팅 디바이스(101)의 사용자 및/또는 컴퓨팅 디바이스의 제어 하에 있는 시스템에게 제공하도록 동작가능한 임의의 디바이스일 수 있다. 예컨대, 출력 디바이스(124)는 자동차 또는 UAV일 수 있다. 입력 디바이스(122)와 별개로 도시되지만, 출력 디바이스(124) 및 입력 디바이스(122)는 결합될 수 있다. 예컨대, 통합된 터치-스크린을 갖는 디스플레이 스크린은 결합된 입력 디바이스(122) 및 출력 디바이스(124)일 수 있다.
[0027] 비교기의 동작은 아래에 나타낸 바와 같이 결함 검출 테이블을 이용하여 표현될 수 있다.
Figure pct00001
결함 검출 테이블에 나타낸 바와 같이, 프로세서(110)의 코어들(112)로부터의 출력들이 상이하면, 비교기 회로(114)는 결함을 보고하며, 이는 컴퓨팅 디바이스(예컨대, 제어 시스템)로 하여금 동작을 중지하게 할 수 있다.
[0028] 도 2a 및 도 2b는 이전에 알려진 기법들에 따른, 록스텝 컴퓨팅 시스템(예컨대, 도 1에 도시된 컴퓨팅 디바이스(101))의 동작을 체크하기 위한 기법들의 예시적인 타임라인들(200 및 250)을 예시한다.
[0029] 도 2a에 도시된 타임라인(200)에서, 록스텝 컴퓨팅 시스템은 210에서 록스텝으로 동작하고 있다. 220에서, 시스템은 자체-진단을 수행한다. 자체-진단은, 록스텝 컴퓨팅 디바이스에 대한 현재 콘텍스트를 저장하고, CPU 및 비교기 진단 프로그램을 구동시키며, 그리고 어떠한 결함들도 발견되지 않으면, 저장된 콘텍스트를 복원하기 위한 동작들을 포함한다. 230에서, 록스텝 컴퓨팅 시스템은 록스텝 실행으로 복귀한다. 이전에 언급된 바와 같이, 220의 동작들에 대해 사용되는 시간은 록스텝 컴퓨팅 시스템에 대한 유휴 시간 지속기간 제약보다 작거나 또는 그와 동일해야 한다.
[0030] 도 2b에 도시된 타임라인(250)에서, 록스텝 컴퓨팅 시스템은 260에서 록스텝으로 동작하고 있다. 270에서, 시스템은 자체-진단을 수행한다. 자체-진단은, 코어들이 동작되게 유지되는 동안 비교기에 의한 비교들을 디스에이블링시키고, 비교기 진단 프로그램을 구동시키며, 그리고 어떠한 결함들도 발견되지 않으면, 비교기에 의한 비교들을 인에이블링시키기 위한 동작들을 포함한다. 280에서, 록스텝 컴퓨팅 시스템은 록스텝 실행으로 복귀한다. 이러한 기법은, 자체-진단 동작이 록스텝 컴퓨팅 시스템에 대한 유휴 시간 지속기간 제약보다 작거나 또는 그와 동일해야 한다는(위 참조) 것을 보장하는 어려움을 갖지 않지 않지만, 비교기의 자체-진단이 270에서 구동되고 있는 동안, 비교기는 270에서 코어들의 동작들을 체크하고 있지 않으며, 가능하게는 코어들 중 하나에서의 결함이 검출되지 않게 한다. 이러한 기법을 사용하는 몇몇 시스템들에서, 비교기에 대한 자체-진단 프로그램의 커버리지는, 자체-진단 프로그램에 의해 요구되는 시간을 제한하기 위해 제한되며, 그 시간 동안 코어들의 동작은 체크되지 않는다.
[0031] 도 3은 본 개시내용의 양상들에 따라 동작하도록 구성된 컴퓨팅 디바이스(301)를 예시하는 블록 다이어그램이다. 컴퓨팅 디바이스(301)는 네트워크(330)를 통해 다른 컴퓨팅 디바이스들에 연결될 수 있다. 일반적으로, 네트워크(330)는 원격통신 네트워크 및/또는 광역 네트워크(WAN)일 수 있다. 일반적으로, 컴퓨팅 디바이스(301)는, 데스크톱 컴퓨터, 서버, 랩톱 컴퓨터, 태블릿 컴퓨터, ADAS, 및 UAV 제어 시스템을 포함하지만 이에 제한되지 않는, 본 개시내용의 양상들에 따른, 록스텝으로 코어들과 함께 동작하도록 구성된 임의의 타입의 컴퓨팅 디바이스일 수 있다.
[0032] 컴퓨팅 디바이스(301)는 일반적으로, 2개의 프로세싱 코어들(312a, 312b) 및 2개의 비교기 회로들(314a, 314b)을 포함하는 프로세서(310)를 포함한다. 프로세싱 코어들(312)은 비교기 회로들(314)과 연결되며, 비교기 회로들(314) 각각은 프로세싱 코어들(312)의 활동을 비교할 수 있다. 도 1의 컴퓨팅 디바이스(101)와 유사하게, 비교기 회로들(314)은, 메모리(308), 선택적인 네트워크 인터페이스 디바이스(318), 저장소(309), 입력 디바이스(322), 및 출력 디바이스(324)에 버스(320)를 통해 연결된다. 비교기 회로들(314)은, 프로세싱 코어들(312)이 록스텝으로 동작하고 있다는 것을 보장하기 위해 프로세싱 코어들(312)의 출력들을 비교할 수 있다. 비교기 회로들은, 메모리 인터페이스들, 버스 인터페이스들, 및 컴퓨트 블록 I/O 인터페이스들을 포함하는 다양한 포인트들에서 프로세싱 코어들의 출력들을 비교할 수 있다. 컴퓨팅 디바이스(301)는 일반적으로 운영 시스템(도시되지 않음)에 따라 동작한다. 위에서와 같이, 본 명세서에 개시된 기능들을 지원하는 임의의 운영 시스템이 사용될 수 있다. 네트워크 인터페이스 디바이스(318)는, 컴퓨팅 디바이스(301)가 네트워크(330)를 통해 다른 컴퓨팅 디바이스들과 통신하게 허용하는 임의의 타입의 네트워크 통신 디바이스일 수 있다.
[0033] 저장소(309)는 영구 저장 디바이스일 수 있다. 위에서와 같이, 저장소(309)가 단일 유닛으로 도시되지만, 저장소(309)는 고정형 및/또는 착탈형 저장 디바이스들, 이를테면 고정형 디스크 드라이브들, 솔리드 스테이트 드라이브들, SAN 저장소, NAS 저장소, 착탈형 메모리 카드들 또는 광학 저장소의 조합일 수 있다. 메모리(238) 및 저장소(309)는 다수의 1차 및 2차 저장 디바이스들에 걸쳐있는 하나의 가상 어드레스 공간의 일부일 수 있다.
[0034] 입력 디바이스(322)는 입력을 컴퓨팅 디바이스(301)에 제공하도록 동작가능한 임의의 디바이스(사용자 및/또는 하나 이상의 센서들에 의해 동작가능한 입력 디바이스를 포함함)일 수 있다. 예컨대, 입력 디바이스(322)는 광학 센서일 수 있다. 출력 디바이스(324)는 출력을 컴퓨팅 디바이스(301)의 사용자 및/또는 컴퓨팅 디바이스의 제어 하에 있는 시스템에게 제공하도록 동작가능한 임의의 디바이스일 수 있다. 예컨대, 출력 디바이스(324)는 자동차 또는 UAV일 수 있다. 입력 디바이스(322)와 별개로 도시되지만, 출력 디바이스(324) 및 입력 디바이스(322)는 결합될 수 있다. 예컨대, 통합된 터치-스크린을 갖는 디스플레이 스크린은 결합된 입력 디바이스(322) 및 출력 디바이스(324)일 수 있다.
[0035] 컴퓨팅 디바이스(301)가 다수의 코어들을 가진 단일 프로세서를 갖는 것으로 도시되지만, 본 개시내용은 그렇게 제한되지 않으며, 본 개시내용의 양상들은 복수의 단일-코어 프로세서들을 갖는 컴퓨팅 디바이스에서 그리고/또는 복수의 멀티-코어 프로세서들을 갖는 컴퓨팅 디바이스에서 실시될 수 있다. 본 명세서에서 사용되는 바와 같이, "비교기 회로"는, 프로세서의 코어들의 동작들을 비교하는 데 유용한 프로세서의 하나 이상의 컴포넌트들, 프로세서와는 별개이고 프로세서의 코어들의 동작들을 비교하는 데 유용한 컴퓨팅 디바이스의 하나 이상의 컴포넌트들, (예컨대, 멀티-프로세서 컴퓨팅 디바이스 내의) 복수의 프로세서들의 동작들을 비교하는 데 유용한 컴퓨팅 디바이스의 하나 이상의 컴포넌트들, 또는 복수의 다른 프로세서들의 동작들을 비교하는 데 유용한 하나 이상의 프로세서들을 지칭할 수 있다.
[0036] 도 4는 본 개시내용의 양상들에 따른, 도 3에 도시된 컴퓨팅 디바이스(301)와 같은 컴퓨팅 디바이스의 하나 이상의 프로세싱 시스템들에 의해 수행될 수 있는 복수의 프로세싱 시스템들의 실행을 비교하기 위한 방법(400)을 예시하는 흐름도이다. 본 명세서에서 사용되는 바와 같이, "프로세싱 시스템"은 컴퓨터 프로세싱을 수행하기 위한 프로세서의 프로세싱 코어, 프로세서, 또는 컴포넌트들의 세트(예컨대, 도 3에 도시된 프로세서(310), 버스(320), 메모리(308), 및 저장소(309))를 지칭할 수 있다. 적어도 하나의 양상에서, 프로세서(310)는 방법(400)의 단계들을 수행할 시에 사용된다. 방법(400)은, 위에서 언급되고 아래에서 더 상세히 설명되는 바와 같이, 컴퓨팅 디바이스가 제1 비교기 회로 및 제2 비교기 회로를 사용하여, 제1 프로세싱 시스템 상에서의 프로그램의 실행을 제2 프로세싱 시스템 상에서의 프로그램의 실행과 비교하고, 이어서, 제1 비교기 회로를 사용하는 비교를 계속하는 동안 제2 비교기 회로를 사용하는 비교를 중지하고 제2 비교기 회로 상에서 진단 프로그램을 구동시키는 양상을 도시한다.
[0037] 블록(410)에서, 방법은, 컴퓨팅 디바이스(예컨대, 컴퓨팅 디바이스(301))가 제1 비교기 회로를 사용하여, 복수의 프로세싱 시스템들 중 제1 프로세싱 시스템 상에서의 프로그램의 실행과 복수의 프로세싱 시스템들 중 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교함으로써 시작한다. 예컨대, 컴퓨팅 디바이스(301)의 프로세서(310)는 비교기(314a)를 사용하여, 프로세서 코어(312a) 상에서의 프로그램의 실행을 프로세서 코어(312b) 상에서의 프로그램의 실행과 비교한다.
[0038] 블록(420)에서, 방법은, 컴퓨팅 디바이스가 제2 비교기 회로를 사용하여, 제1 프로세싱 시스템 상에서의 프로그램의 실행과 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교함으로써 계속한다. 위의 예로 계속하면, 컴퓨팅 디바이스(301)의 프로세서(310)는 비교기(314b)를 사용하여, 프로세서 코어(312a) 상에서의 프로그램의 실행을 프로세서 코어(312b) 상에서의 프로그램의 실행과 비교한다.
[0039] 블록(430)에서, 방법은, 컴퓨팅 디바이스가 제1 비교기 회로를 사용하는 비교가 진행 중인 동안 제2 비교기 회로 상에서 진단 프로그램을 구동시킴으로써 계속한다. 위의 예로 계속하면, 컴퓨팅 디바이스(301)의 프로세서(310)는, 비교기(314a)를 사용하여, 프로세서 코어(312a) 상에서의 프로그램의 실행을 프로세서 코어(312b) 상에서의 프로그램의 실행과 비교하는 동안, 비교기(314b) 상에서 자체-진단 프로그램을 구동시킨다.
[0040] 본 개시내용의 양상들에 따르면, 비교기 회로는, 진단 프로그램이 비교기 회로 상에서 구동되기 전에 프로세싱 시스템들 상에서의 프로그램의 실행을 비교하는 것이 디스에이블링될 수 있다. 진단 프로그램이 구동을 완료한 이후, 비교기 회로는 프로세싱 시스템들 상에서의 프로그램의 실행을 비교하도록 인에이블링된다.
[0041] 도 5는 본 개시내용의 양상들에 따른, 록스텝 컴퓨팅 시스템(예컨대, 도 3에 도시된 컴퓨팅 디바이스(301))의 복수의 프로세싱 시스템들의 실행을 비교하기 위한 동작들을 도시하는 예시적인 타임라인(500)을 예시한다. 타임라인(500)에서, 록스텝 컴퓨팅 시스템의 프로세서의 프로세싱 코어들은 록스텝으로 동작하고 있다. 510에서, 컴퓨팅 디바이스는, 코어들이 록스텝으로 동작되게 유지되고 제2 비교기가 활성인 동안, 제1 비교기를 디스에이블링시키고, 어떠한 결함들도 검출되지 않고, 코어들이 록스텝에 있는지를 검증한다. 520에서, 제1 비교기의 진단은 완료되며, 컴퓨팅 디바이스는 제1 비교기를 인에이블링시킨다. 530에서, 제1 및 제2 비교기 둘 모두는 활성이며, 프로세싱 코어들이 결함들 없이 록스텝으로 동작되고 있는지를 체크한다. 540에서, 컴퓨팅 디바이스는, 코어들이 록스텝으로 동작되게 유지되고, 제1 비교기가 활성인 동안, 제2 비교기를 디스에이블링시키고, 어떠한 결함들도 검출되지 않고, 코어들이 록스텝에 있는지를 검증한다. 550에서, 제2 비교기의 진단은 완료되며, 컴퓨팅 디바이스는 제2 비교기를 인에이블링시킨다. 560에서, 제1 및 제2 비교기 둘 모두는 활성이며, 프로세싱 코어들이 결함들 없이 록스텝으로 동작되고 있는지를 체크한다. 570에서, 컴퓨팅 디바이스는, 코어들이 록스텝으로 동작되게 유지되고, 제2 비교기가 활성인 동안, 제1 비교기를 디스에이블링시키고, 어떠한 결함들도 검출되지 않고, 코어들이 록스텝에 있는지를 검증한다. 570의 동작들은 510의 동작들의 복제일 수 있으며, 컴퓨팅 디바이스는, 다른 비교기 및 프로세싱 코어들이 활성으로 유지되는 동안, 차례로, 각각의 비교기를 디스에이블링 및 체크하는 연속적인 사이클에서 계속 동작한다.
[0042] 타임라인(500)은, 본 개시내용의 일 실시예가 이전에 알려진 기법들을 사용하는 컴퓨팅 시스템들에 비해 가질 수 있는 몇몇 장점들을 예시한다. 하나의 장점은, 진단 프로그램이 비교기 상에서 구동되는 동안 프로세싱 시스템들(예컨대, 코어들)이 유휴가 아니기 때문에, 도 2a에 도시된 타임라인과 연관된 기법과는 달리, 진단 프로그램이 록스텝 컴퓨팅 시스템의 유휴 시간 지속기간 제약보다 적은 시간에서 동작을 완료하도록 요구되지 않는다는 것일 수 있다. 다른 장점은, 도 2b에 도시된 타임라인과 연관된 기법과는 달리, 컴퓨팅 디바이스의 프로세싱 시스템들(예컨대, 코어들)이 적어도 하나의 비교기에 의해 검증되지 않는 시간들이 존재하지 않는다는 것일 수 있다.
[0043] 본 개시내용의 양상들에 따르면, 컴퓨팅 디바이스는 고장시-작동가능(fail-operational) 능력을 가질 수 있다. 즉, 고장이 비교기 회로에서 발견된 이후라도, 컴퓨팅 디바이스는, 록스텝으로 동작하는 코어들 및 고장을 겪지 않는 다른 비교기 회로에 의해 검증되는 코어들의 동작들을 이용하여 안전하게 계속 동작할 수 있다. 아래의 테이블은, 컴퓨팅 디바이스의 비교기들의 상태에 기반하여 컴퓨팅 디바이스가 가질 수 있는 다양한 동작 모드들을 예시한다.
Figure pct00002
[0044] 본 개시내용의 양상들에 따르면, 고장시-작동가능 모드를 갖는 컴퓨팅 디바이스를 사용하는 시스템(예컨대, 자동차, UAV)은, 비교기 로직에서 고장을 검출한 이후 시스템이 안전하게 동작하게 허용할 수 있다. 고장시-작동가능 모드에서의 계속된 동작은 고장난 컴포넌트의 교체를 위한 시간 및/또는 시스템이 수리될 수 있는 서비스 센터에 도달할 시간을 허용할 수 있다.
[0045] 도 6은 본 개시내용의 양상들에 따라 동작하도록 구성된 컴퓨팅 디바이스(601)를 예시하는 블록 다이어그램이다. 컴퓨팅 디바이스(601)는 네트워크(630)를 통해 다른 컴퓨팅 디바이스들에 연결될 수 있다. 일반적으로, 네트워크(630)는 원격통신 네트워크 및/또는 광역 네트워크(WAN)일 수 있다. 일반적으로, 컴퓨팅 디바이스(601)는, 데스크톱 컴퓨터, 서버, 랩톱 컴퓨터, 태블릿 컴퓨터, ADAS, 및 UAV 제어 시스템을 포함하지만 이에 제한되지 않는, 본 개시내용의 양상들에 따른, 록스텝으로 코어들과 함께 동작하도록 구성된 임의의 타입의 컴퓨팅 디바이스일 수 있다.
[0046] 컴퓨팅 디바이스(601)는 일반적으로, 2개의 프로세싱 코어들(612a, 612b) 및 2개의 비교기 회로들(614a, 614b)를 포함하는 프로세서(610)를 포함한다. 프로세싱 코어들(612)은 비교기 회로들(614)과 연결되며, 비교기 회로들(614) 각각은 프로세싱 코어들(612)의 활동을 비교할 수 있다. 본 개시내용의 양상들에 따르면, 컴퓨팅 디바이스(601)의 제2 비교기 회로(614b)는 제1 비교기 회로(614a)의 기능의 서브세트를 복제할 수 있기는 하지만, 제1 비교기 회로의 기능 모두를 복제하지는 않는다. 제2 비교기 회로는 제어된 시스템(예컨대, 자동차, UAV)으로의 컴퓨팅 디바이스의 출력들에 영향을 주는 프로세싱 코어들(612a 및 612b)의 출력들을 검증할 수 있는 반면, 메모리(예컨대, L1 캐시, L2 캐시) 및 다른 컴포넌트들에 대한 액세스들을 검증하지 않는다. 그러한 컴퓨팅 디바이스는 "스마트" 리던던시를 갖는 것으로 지칭될 수 있다. 예컨대, 컴퓨팅 디바이스는, 제어된 시스템으로의 모든 출력들이 AXI(advanced extensible interface) 버스 및/또는 ACP(accelerator coherency port) 버스를 가로지르도록 구성될 수 있다. 예에서, 컴퓨팅 디바이스는, 프로세싱 시스템들의 모든 출력들을 검증하는 제1 비교기 회로, 및 AXI 및 ACP 버스들 상에서의 프로세싱 시스템들로부터의 출력들을 검증하지만 프로세싱 시스템들로부터의 다른 출력들을 검증하지 않는 제2 비교기 회로를 가질 수 있다.
[0047] 도 1의 컴퓨팅 디바이스(101)와 유사하게, 비교기 회로들(614)은, 메모리(608), 선택적인 네트워크 인터페이스 디바이스(618), 저장소(609), 입력 디바이스(622), 및 출력 디바이스(624)에 버스(620)를 통해 연결된다. 비교기 회로(614a)는, 프로세싱 코어들(612)이 록스텝으로 동작하고 있다는 것을 보장하기 위해 프로세싱 코어들(612)의 출력들을 비교할 수 있다. 비교기 회로(614b)는 제어된 시스템으로의 프로세싱 코어들의 출력들을 비교할 수 있다. 컴퓨팅 디바이스(601)는 일반적으로 운영 시스템(도시되지 않음)에 따라 동작한다. 위에서와 같이, 본 명세서에 개시된 기능들을 지원하는 임의의 운영 시스템이 사용될 수 있다. 네트워크 인터페이스 디바이스(618)는, 컴퓨팅 디바이스(601)가 네트워크(630)를 통해 다른 컴퓨팅 디바이스들과 통신하게 허용하는 임의의 타입의 네트워크 통신 디바이스일 수 있다.
[0048] 컴퓨팅 디바이스(601)가 다수의 코어들을 가진 단일 프로세서를 갖는 것으로 도시되지만, 본 개시내용은 그렇게 제한되지 않으며, 본 개시내용의 양상들은 복수의 단일-코어 프로세서들을 갖는 컴퓨팅 디바이스에서 그리고/또는 복수의 멀티-코어 프로세서들을 갖는 컴퓨팅 디바이스에서 실시될 수 있다. 본 명세서에서 사용되는 바와 같이, "비교기 회로"는, 프로세서의 코어들의 동작들을 비교하는 데 유용한 프로세서의 하나 이상의 컴포넌트들, 프로세서와는 별개이고 프로세서의 코어들의 동작들을 비교하는 데 유용한 컴퓨팅 디바이스의 하나 이상의 컴포넌트들, (예컨대, 멀티-프로세서 컴퓨팅 디바이스 내의) 복수의 프로세서들의 동작들을 비교하는 데 유용한 컴퓨팅 디바이스의 하나 이상의 컴포넌트들, 또는 복수의 다른 프로세서들의 동작들을 비교하는 데 유용한 하나 이상의 프로세서들을 지칭할 수 있다.
[0049] 본 개시내용의 양상들에 따르면, 제1 비교기 회로, 및 제1 비교기 회로의 기능의 서브세트를 복제하는 제2 비교기 회로를 갖는 컴퓨팅 디바이스는 이전에 설명된 바와 같이 고장시-작동가능 능력을 가질 수 있다. 즉, 고장이 제2 비교기 회로에서 발견된 이후라도, 컴퓨팅 디바이스는 위와 유사하게, 록스텝으로 동작하는 코어들 및 제1 비교기 회로에 의해 검증되는 코어들의 동작들을 이용하여 안전하게 계속 동작할 수 있다. 그리고, 고장이 제1 비교기 회로에서 발견된 이후라도, 컴퓨팅 디바이스는 제2 비교기 회로에 의해 검증되는 제어된 시스템(예컨대, 자동차)으로의 출력들을 이용하여 안전하게 계속 동작할 수 있다.
[0050] 본 개시내용의 양상들에 따르면, 제1 비교기 회로, 및 제1 비교기 회로의 기능의 서브세트를 복제하는 제2 비교기 회로를 갖는 컴퓨팅 디바이스는, 서로의 복제물들인 제1 및 제2 비교기 회로들을 갖는 컴퓨팅 디바이스보다 더 낮은 복잡도 및/또는 더 적은 비용을 가질 수 있다.
[0051] 본 개시내용의 양상들에 따르면, 제1 비교기 회로 및 제2 비교기 회로를 갖는 컴퓨팅 디바이스는, 컴퓨팅 디바이스에 대한 비활동의 시간 기간을 요구하지 않으면서 록스텝 컴퓨팅 시스템의 컴포넌트들(예컨대, 비교기 회로들)의 정기적인 체킹을 가능하게 할 수 있다. 예컨대, 도 5에 예시된 바와 같이, 컴퓨팅 디바이스의 제1 비교기 회로는, 컴퓨팅 시스템이 활성으로 유지되고, 제2 비교기가 컴퓨팅 시스템의 프로세싱 시스템들이 록스텝으로 동작하고 있다는 것을 검증하는 동안, 진단 프로그램에 의해 체크될 수 있다.
[0052] 다수의 양상들이 설명되었다. 그러나, 이들 양상들에 대한 다양한 변형들이 가능하며, 본 명세서에 제시된 원리들은 다른 양상들에 또한 적용될 수 있다. 그러한 방법들의 다양한 태스크들은 로직 엘리먼트들의 하나 이상의 어레이들, 이를테면 마이크로프로세서들, 임베디드 제어기들 또는 IP 코어들에 의해 실행가능한 명령들의 세트들로서 구현될 수 있다.
[0053] 전술한 개시된 디바이스들 및 기능들은 컴퓨터 판독가능 매체 상에 저장된 컴퓨터 파일들(예컨대, RTL, GDSII, GERBER 등)로 설계 및 구성될 수 있다. 몇몇 또는 모든 그러한 파일들은, 그러한 파일들에 기반하여 디바이스들을 제조하는 제조 핸들러들에 제공될 수 있다. 결과적인 제품들은 반도체 웨이퍼들을 포함하고, 그 반도체 웨이퍼들은 이어서, 반도체 다이로 절단되고 반도체 칩으로 패키징된다. 몇몇 또는 모든 그러한 파일들은, 본 명세서에 설명된 디바이스들을 제조하기 위해 설계 데이터를 사용하여 제조 장비를 구성하는 제조 핸들러들에게 제공될 수 있다. 컴퓨터 파일들로부터 형성된 결과적인 제품들은 반도체 웨이퍼들을 포함하고, 그 반도체 웨이퍼들은 이어서, 반도체 다이(예컨대, 프로세서(101))로 절단되고 패키징되며, 그 결과적인 제품들은, 모바일 폰들, 스마트 폰들, 랩톱들, 넷북들, 태블릿들, 울트라북들, 데스크톱 컴퓨터들, 디지털 비디오 레코더들, 셋탑 박스들, 서버들, 및 집적 회로들이 사용되는 임의의 다른 디바이스들을 포함하지만 이에 제한되지 않는 제품들로 추가로 통합될 수 있다.
[0054] 일 양상에서, 컴퓨터 파일들은 물리적 설계 레이아웃들, 회로도(schematic)들, 하드웨어-설명 언어(예컨대, Verilog, VHDL 등)의 형태로, 위에서 설명되고 도면들에 도시된 회로들을 포함하는 설계 구조를 형성한다. 예컨대, 설계 구조는 위에서 설명되고 도면들에 도시된 바와 같이, 텍스트 파일 또는 회로의 그래픽 표현일 수 있다. 설계 프로세스는 바람직하게, 아래에서 설명되는 회로들을 네트리스트(netlist)로 합성(또는 변환)하며, 여기서, 네트리스트는, 예컨대, 집적 회로 설계 내의 다른 엘리먼트들 및 회로들에 대한 연결들을 설명하는 와이어들, 트랜지스터들, 로직 게이트들, 제어 회로들, I/O, 모델들 등의 리스트이고, 머신 판독가능 매체 중 적어도 하나 상에 레코딩된다. 예컨대, 매체는 저장 매체, 이를테면 CD, 콤팩트 플래시, 다른 플래시 메모리, 또는 하드-디스크 드라이브일 수 있다. 다른 실시예에서, 본 명세서에 설명된 하드웨어, 회로, 및 방법은, 프로세서에 의해 실행될 경우, 위에서 설명되고 도면들에 도시된 회로들의 기능을 시뮬레이팅하는 컴퓨터 파일들로 구성될 수 있다. 이들 컴퓨터 파일들은 회로 시뮬레이션 툴들, 회로도 편집기들, 또는 다른 소프트웨어 애플리케이션들에서 사용될 수 있다.
[0055] 본 명세서에서 사용된 바와 같이, 일 리스트의 아이템들 "중 적어도 하나"를 지칭하는 어구는 단일 멤버들을 포함하여 그 아이템들의 임의의 조합을 지칭한다. 일 예로서, "a, b, 또는 c 중 적어도 하나"는 a, b, c, a-b, a-c, b-c, 및 a-b-c 뿐만 아니라 동일한 엘리먼트의 배수들과의 임의의 결합(예컨대, a-a, a-a-a, a-a-b, a-a-c, a-b-b, a-c-c, b-b, b-b-b, b-b-c, c-c, 및 c-c-c 또는 a, b, 및 c의 임의의 다른 순서화)을 커버하도록 의도된다.
[0056] 기재된 양상들의 이전 설명은 당업자가 기재된 양상들을 사용하거나 또는 실시할 수 있도록 제공된다. 이들 양상들에 대한 다양한 변형들은 당업자들에게 용이하게 명백할 것이며, 본 명세서에 정의된 원리들은 본 개시내용의 범위를 벗어나지 않으면서 다른 양상들에 적용될 수 있다. 따라서, 본 개시내용은 본 명세서에 예시된 양상들로 제한되도록 의도되는 것이 아니라, 다음의 청구항들에 의해 정의된 바와 같은 원리들 및 신규한 특징들과 일치하는 가능한 가장 넓은 범위에 부합할 것이다.

Claims (34)

  1. 디바이스의 복수의 프로세싱 시스템들의 실행을 비교하기 위한 방법으로서,
    제1 비교기 회로를 사용하여, 상기 복수의 프로세싱 시스템들 중 제1 프로세싱 시스템 상에서의 프로그램의 실행과 상기 복수의 프로세싱 시스템들 중 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하는 단계;
    제2 비교기 회로를 사용하여, 상기 제1 프로세싱 시스템 상에서의 프로그램의 실행과 상기 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하는 단계; 및
    상기 제1 비교기 회로를 사용하는 비교가 진행 중인 동안 상기 제2 비교기 회로 상에서 진단 프로그램을 구동시키는 단계를 포함하는, 디바이스의 복수의 프로세싱 시스템들의 실행을 비교하기 위한 방법.
  2. 제1항에 있어서,
    상기 제2 비교기 회로를 사용하는 비교가 진행 중인 동안 상기 제1 비교기 회로 상에서 상기 진단 프로그램 또는 다른 진단 프로그램을 구동시키는 단계를 더 포함하는, 디바이스의 복수의 프로세싱 시스템들의 실행을 비교하기 위한 방법.
  3. 제1항에 있어서,
    상기 진단 프로그램을 구동시키기 전에 상기 제2 비교기 회로를 디스에이블링시키는 단계; 및
    상기 진단 프로그램을 구동시키는 것에 후속하여 상기 제2 비교기 회로를 인에이블링시키는 단계를 더 포함하는, 디바이스의 복수의 프로세싱 시스템들의 실행을 비교하기 위한 방법.
  4. 제1항에 있어서,
    상기 제1 프로세싱 시스템 상에서의 프로그램의 실행과 상기 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하는 단계는, 상기 제1 프로세싱 시스템에 의해 메모리로 기입된 제1 값들을 상기 제2 프로세싱 시스템에 의해 상기 메모리로 기입된 제2 값들과 비교하는 단계를 포함하는, 디바이스의 복수의 프로세싱 시스템들의 실행을 비교하기 위한 방법.
  5. 제1항에 있어서,
    상기 제1 프로세싱 시스템 상에서의 프로그램의 실행과 상기 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하는 단계는, 상기 제1 프로세싱 시스템에 의하여 하나 이상의 버스들을 통해 출력된 제1 값들을 상기 제2 프로세싱 시스템에 의하여 하나 이상의 버스들을 통해 출력된 제2 값들과 비교하는 단계를 포함하는, 디바이스의 복수의 프로세싱 시스템들의 실행을 비교하기 위한 방법.
  6. 제5항에 있어서,
    상기 하나 이상의 버스들은, AXI(advanced extensible interface) 버스 또는 ACP(accelerator coherency port) 버스 중 적어도 하나를 포함하는, 디바이스의 복수의 프로세싱 시스템들의 실행을 비교하기 위한 방법.
  7. 제1항에 있어서,
    상기 제1 비교기 회로를 사용하여, 상기 제1 프로세싱 시스템 상에서의 프로그램의 실행과 상기 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하는 단계는, 상기 제1 프로세싱 시스템에 의해 출력된 제1 값들을 상기 제2 프로세싱 시스템에 의해 출력된 제2 값들과 비교하는 단계를 포함하며;
    상기 제2 비교기 회로를 사용하여, 상기 제1 프로세싱 시스템 상에서의 프로그램의 실행과 상기 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하는 단계는, 상기 제1 값들과는 상이한, 상기 제1 프로세싱 시스템에 의해 출력된 제3 값들을 상기 제2 값들과는 상이한, 상기 제2 프로세싱 시스템에 의해 출력된 제4 값들과 비교하는 단계를 포함하는, 디바이스의 복수의 프로세싱 시스템들의 실행을 비교하기 위한 방법.
  8. 제1항에 있어서,
    상기 제1 프로세싱 시스템은 멀티-코어 프로세서의 제1 코어를 포함하며;
    상기 제2 프로세싱 시스템은 상기 멀티-코어 프로세서의 제2 코어를 포함하는, 디바이스의 복수의 프로세싱 시스템들의 실행을 비교하기 위한 방법.
  9. 제1항에 있어서,
    상기 제1 프로세싱 시스템은 상기 디바이스의 제1 프로세서를 포함하며;
    상기 제2 프로세싱 시스템은 상기 디바이스의 제2 프로세서를 포함하는, 디바이스의 복수의 프로세싱 시스템들의 실행을 비교하기 위한 방법.
  10. 제1항에 있어서,
    상기 진단 프로그램은 상기 제2 비교기 회로에서 결함을 검출하며,
    상기 방법은, 상기 디바이스가 상기 결함을 갖고 안전하게 동작하고 있다는 표시를 출력하는 단계를 더 포함하는, 디바이스의 복수의 프로세싱 시스템들의 실행을 비교하기 위한 방법.
  11. 제1항에 있어서,
    상기 제1 비교기 회로를 사용하여, 상기 제1 프로세싱 시스템 상에서의 프로그램의 실행과 상기 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하는 단계는, 다른 디바이스를 제어하는 상기 제1 프로세싱 시스템 및 상기 제2 프로세싱 시스템으로부터의 출력들을 비교하는 단계를 포함하며;
    상기 제2 비교기 회로를 사용하여, 상기 제1 프로세싱 시스템 상에서의 프로그램의 실행과 상기 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하는 단계는, 다른 디바이스를 제어하는 상기 제1 프로세싱 시스템 및 상기 제2 프로세싱 시스템으로부터의 출력들을 비교하는 단계, 및 상기 제1 프로세싱 시스템으로부터의 다른 출력들을 상기 제2 프로세싱 시스템으로부터의 대응하는 다른 출력들과 비교하는 단계를 포함하는, 디바이스의 복수의 프로세싱 시스템들의 실행을 비교하기 위한 방법.
  12. 제1 프로세싱 시스템;
    제2 프로세싱 시스템;
    상기 제1 프로세싱 시스템 상에서의 프로그램의 실행과 상기 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하도록 동작가능한 제1 비교기 회로; 및
    상기 제1 프로세싱 시스템 상에서의 프로그램의 실행과 상기 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하고, 그리고 상기 제1 비교기 회로가 상기 제1 프로세싱 시스템 상에서의 프로그램의 실행과 상기 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하고 있는 동안 진단 프로그램을 구동시키도록 동작가능한 제2 비교기 회로를 포함하는, 장치.
  13. 제12항에 있어서,
    상기 제1 비교기 회로는, 상기 제2 비교기 회로가 상기 제1 프로세싱 시스템 상에서의 프로그램의 실행과 상기 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하고 있는 동안 상기 진단 프로그램 또는 다른 진단 프로그램을 구동시키도록 동작가능한, 장치.
  14. 제12항에 있어서,
    상기 제2 비교기 회로는, 상기 진단 프로그램을 구동시키기 전에 디스에이블링되도록 동작가능하고, 그리고 상기 진단 프로그램을 구동시키는 것에 후속하여 인에이블링되도록 동작가능한, 장치.
  15. 제12항에 있어서,
    상기 제1 비교기 회로는, 상기 제1 프로세싱 시스템에 의해 메모리로 기입된 제1 값들을 상기 제2 프로세싱 시스템에 의해 상기 메모리로 기입된 제2 값들과 비교함으로써, 상기 제1 프로세싱 시스템 상에서의 프로그램의 실행과 상기 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하도록 구성되며;
    상기 제2 비교기 회로는, 상기 제1 값들을 상기 제2 값들과 비교함으로써, 상기 제1 프로세싱 시스템 상에서의 프로그램의 실행과 상기 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하도록 구성되는, 장치.
  16. 제12항에 있어서,
    상기 제1 비교기 회로는, 상기 제1 프로세싱 시스템에 의하여 하나 이상의 버스들을 통해 출력된 제1 값들을 상기 제2 프로세싱 시스템에 의하여 하나 이상의 버스들을 통해 출력된 제2 값들과 비교함으로써, 상기 제1 프로세싱 시스템 상에서의 프로그램의 실행과 상기 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하도록 구성되며;
    상기 제2 비교기 회로는, 상기 제1 값들을 상기 제2 값들과 비교함으로써, 상기 제1 프로세싱 시스템 상에서의 프로그램의 실행과 상기 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하도록 구성되는, 장치.
  17. 제16항에 있어서,
    상기 하나 이상의 버스들은, AXI(advanced extensible interface) 버스 또는 ACP(accelerator coherency port) 버스 중 적어도 하나를 포함하는, 장치.
  18. 제12항에 있어서,
    상기 제1 비교기 회로는, 상기 제1 프로세싱 시스템에 의해 출력된 제1 값들을 상기 제2 프로세싱 시스템에 의해 출력된 제2 값들과 비교함으로써, 상기 제1 프로세싱 시스템 상에서의 프로그램의 실행과 상기 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하도록 구성되며;
    상기 제2 비교기 회로는, 상기 제1 값들과는 상이한, 상기 제1 프로세싱 시스템에 의해 출력된 제3 값들을 상기 제2 값들과는 상이한, 상기 제2 프로세싱 시스템에 의해 출력된 제4 값들과 비교함으로써, 상기 제1 프로세싱 시스템 상에서의 프로그램의 실행과 상기 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하도록 구성되는, 장치.
  19. 제12항에 있어서,
    상기 제1 프로세싱 시스템은 멀티-코어 프로세서의 제1 코어를 포함하며;
    상기 제2 프로세싱 시스템은 상기 멀티-코어 프로세서의 제2 코어를 포함하는, 장치.
  20. 제12항에 있어서,
    상기 제1 프로세싱 시스템은 상기 장치의 제1 프로세서를 포함하며;
    상기 제2 프로세싱 시스템은 상기 장치의 제2 프로세서를 포함하는, 장치.
  21. 제12항에 있어서,
    상기 제1 프로세싱 시스템, 상기 제2 프로세싱 시스템, 상기 제1 비교기 회로, 및 상기 제2 비교기 회로 중 적어도 하나는, 상기 제2 비교기 회로가 상기 진단 프로그램을 구동시키는 것에 기반하여 상기 제2 비교기 회로에서 결함을 검출하도록 동작가능하며;
    상기 제1 프로세싱 시스템 및 상기 제2 프로세싱 시스템 중 적어도 하나는, 상기 장치가 상기 결함을 갖고 안전하게 동작하고 있다는 표시를 출력하도록 동작가능한, 장치.
  22. 제12항에 있어서,
    상기 제1 비교기 회로는, 디바이스를 제어하는 상기 제1 프로세싱 시스템 및 상기 제2 프로세싱 시스템으로부터의 출력들을 비교함으로써, 상기 제1 프로세싱 시스템 상에서의 프로그램의 실행과 상기 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하도록 동작가능하며;
    상기 제2 비교기 회로는, 상기 디바이스를 제어하는 상기 제1 프로세싱 시스템 및 상기 제2 프로세싱 시스템으로부터의 출력들을 비교하고 상기 제1 프로세싱 시스템으로부터의 다른 출력들을 상기 제2 프로세싱 시스템으로부터의 대응하는 다른 출력들과 비교함으로써, 상기 제1 프로세싱 시스템 상에서의 프로그램의 실행과 상기 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하도록 동작가능한, 장치.
  23. 프로세싱을 위한 제1 수단;
    프로세싱을 위한 제2 수단;
    상기 프로세싱을 위한 제1 수단 상에서의 프로그램의 실행과 상기 프로세싱을 위한 제2 수단 상에서의 프로그램의 실행을 비교하기 위한 제1 수단;
    상기 프로세싱을 위한 제1 수단 상에서의 프로그램의 실행과 상기 프로세싱을 위한 제2 수단 상에서의 프로그램의 실행을 비교하기 위한 제2 수단; 및
    상기 비교하기 위한 제1 수단이 상기 프로세싱을 위한 제1 수단 상에서의 프로그램의 실행과 상기 프로세싱을 위한 제2 수단 상에서의 프로그램의 실행을 비교하고 있는 동안 상기 비교하기 위한 제2 수단 상에서 진단 프로그램을 구동시키기 위한 수단을 포함하는, 장치.
  24. 제23항에 있어서,
    상기 비교하기 위한 제2 수단이 상기 프로세싱을 위한 제1 수단 상에서의 프로그램의 실행과 상기 프로세싱을 위한 제2 수단 상에서의 프로그램의 실행을 비교하고 있는 동안 상기 비교하기 위한 제1 수단 상에서 상기 진단 프로그램 또는 다른 진단 프로그램을 구동시키기 위한 수단을 더 포함하는, 장치.
  25. 제23항에 있어서,
    상기 진단 프로그램을 구동시키기 전에 상기 비교하기 위한 제2 수단을 디스에이블링시키기 위한 수단; 및
    상기 진단 프로그램을 구동시키는 것에 후속하여 상기 비교하기 위한 제2 수단을 인에이블링시키기 위한 수단을 더 포함하는, 장치.
  26. 제23항에 있어서,
    상기 비교하기 위한 제1 수단은, 상기 프로세싱을 위한 제1 수단에 의해 메모리로 기입된 제1 값들을 상기 프로세싱을 위한 제2 수단에 의해 상기 메모리로 기입된 제2 값들과 비교하기 위한 수단을 포함하며;
    상기 비교하기 위한 제2 수단은, 상기 제1 값들을 상기 제2 값들과 비교하기 위한 수단을 포함하는, 장치.
  27. 제23항에 있어서,
    상기 비교하기 위한 제1 수단은, 상기 프로세싱을 위한 제1 수단에 의하여 하나 이상의 버스들을 통해 출력된 제1 값들을 상기 프로세싱을 위한 제2 수단에 의하여 하나 이상의 버스들을 통해 출력된 제2 값들과 비교하기 위한 수단을 포함하며;
    상기 비교하기 위한 제2 수단은, 상기 제1 값들을 상기 제2 값들과 비교하기 위한 수단을 포함하는, 장치.
  28. 제27항에 있어서,
    상기 하나 이상의 버스들은, AXI(advanced extensible interface) 버스 또는 ACP(accelerator coherency port) 버스 중 적어도 하나를 포함하는, 장치.
  29. 제23항에 있어서,
    상기 비교하기 위한 제1 수단은, 상기 프로세싱을 위한 제1 수단에 의해 출력된 제1 값들을 상기 프로세싱을 위한 제2 수단에 의해 출력된 제2 값들과 비교하기 위한 수단을 포함하며;
    상기 비교하기 위한 제2 수단은, 상기 제1 값들과는 상이한, 상기 프로세싱을 위한 제1 수단에 의해 출력된 제3 값들을 상기 제2 값들과는 상이한, 상기 프로세싱을 위한 제2 수단에 의해 출력된 제4 값들과 비교하기 위한 수단을 포함하는, 장치.
  30. 제23항에 있어서,
    상기 프로세싱을 위한 제1 수단은 멀티-코어 프로세서의 제1 코어를 포함하며;
    상기 프로세싱을 위한 제2 수단은 상기 멀티-코어 프로세서의 제2 코어를 포함하는, 장치.
  31. 제23항에 있어서,
    상기 프로세싱을 위한 제1 수단은 상기 장치의 제1 프로세서를 포함하며;
    상기 프로세싱을 위한 제2 수단은 상기 장치의 제2 프로세서를 포함하는, 장치.
  32. 제23항에 있어서,
    상기 프로세싱을 위한 제1 수단, 상기 프로세싱을 위한 제2 수단, 상기 비교하기 위한 제1 수단, 및 상기 비교하기 위한 제2 수단 중 적어도 하나는, 상기 비교하기 위한 제2 수단이 상기 진단 프로그램을 구동시키는 것에 기반하여 상기 비교하기 위한 제2 수단에서 결함을 검출하기 위한 수단을 포함하며;
    상기 프로세싱을 위한 제1 수단 및 상기 프로세싱을 위한 제2 수단 중 적어도 하나는, 상기 장치가 상기 결함을 갖고 안전하게 동작하고 있다는 표시를 출력하기 위한 수단을 포함하는, 장치.
  33. 제23항에 있어서,
    상기 비교하기 위한 제1 수단은, 다른 디바이스를 제어하는 상기 프로세싱을 위한 제1 수단 및 상기 프로세싱을 위한 제2 수단으로부터의 출력들을 비교하기 위한 수단을 포함하며;
    상기 비교하기 위한 제2 수단은, 다른 디바이스를 제어하는 상기 프로세싱을 위한 제1 수단 및 상기 프로세싱을 위한 제2 수단으로부터의 출력들을 비교하고, 그리고 상기 프로세싱을 위한 제1 수단으로부터의 다른 출력들을 상기 프로세싱을 위한 제2 수단으로부터의 대응하는 다른 출력들과 비교하기 위한 수단을 포함하는, 장치.
  34. 명령들을 포함하는 비-일시적인 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 하나 이상의 프로세싱 시스템들에 의해 실행될 경우, 상기 하나 이상의 프로세싱 시스템들로 하여금 동작들을 수행하게 하고,
    상기 동작들은,
    제1 비교기 회로를 사용하여, 상기 복수의 프로세싱 시스템들 중 제1 프로세싱 시스템 상에서의 프로그램의 실행과 상기 복수의 프로세싱 시스템들 중 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하는 것;
    제2 비교기 회로를 사용하여, 상기 제1 프로세싱 시스템 상에서의 프로그램의 실행과 상기 제2 프로세싱 시스템 상에서의 프로그램의 실행을 비교하는 것; 및
    상기 제1 비교기 회로를 사용하는 비교가 진행 중인 동안 상기 제2 비교기 회로 상에서 진단 프로그램을 구동시키는 것을 포함하는, 비-일시적인 컴퓨터 판독가능 저장 매체.
KR1020197020703A 2017-01-19 2017-12-12 록스텝 시스템들의 주기적인 비-간섭적 진단 KR102016004B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/410,271 US10331532B2 (en) 2017-01-19 2017-01-19 Periodic non-intrusive diagnosis of lockstep systems
US15/410,271 2017-01-19
PCT/US2017/065685 WO2018136169A1 (en) 2017-01-19 2017-12-12 Periodic non-intrusive diagnosis of lockstep systems

Publications (2)

Publication Number Publication Date
KR20190091554A true KR20190091554A (ko) 2019-08-06
KR102016004B1 KR102016004B1 (ko) 2019-08-29

Family

ID=60915647

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197020703A KR102016004B1 (ko) 2017-01-19 2017-12-12 록스텝 시스템들의 주기적인 비-간섭적 진단

Country Status (8)

Country Link
US (1) US10331532B2 (ko)
EP (1) EP3555748B1 (ko)
KR (1) KR102016004B1 (ko)
CN (1) CN110140112B (ko)
BR (1) BR112019014536A2 (ko)
SG (1) SG11201905068VA (ko)
TW (1) TWI686695B (ko)
WO (1) WO2018136169A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11424621B2 (en) 2020-01-28 2022-08-23 Qualcomm Incorporated Configurable redundant systems for safety critical applications
CN112596916A (zh) * 2021-03-03 2021-04-02 上海励驰半导体有限公司 双核锁步错误恢复系统及方法
CN115372710B (zh) * 2022-10-21 2024-02-06 西安创联电气科技(集团)有限责任公司 一种电阻自动测试装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006268208A (ja) * 2005-03-23 2006-10-05 Nec Corp 故障診断回路とこの故障診断回路を備えた情報処理装置、故障診断システム及び故障診断プログラム
KR20130060337A (ko) * 2010-09-20 2013-06-07 퀄컴 인코포레이티드 다중-프로세서 컴퓨팅 플랫폼에서의 프로세서간 통신 기법들
KR20140053370A (ko) * 2011-09-07 2014-05-07 퀄컴 인코포레이티드 그래픽 프로세싱을 위한 메모리 복사 엔진
KR20160066044A (ko) * 2013-10-16 2016-06-09 구글 인코포레이티드 별도의 어플리케이션에 의해 정의되는 인터페이스 객체들을 렌더링

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5838894A (en) 1992-12-17 1998-11-17 Tandem Computers Incorporated Logical, fail-functional, dual central processor units formed from three processor units
US6862693B2 (en) * 2001-04-13 2005-03-01 Sun Microsystems, Inc. Providing fault-tolerance by comparing addresses and data from redundant processors running in lock-step
US7392426B2 (en) * 2004-06-15 2008-06-24 Honeywell International Inc. Redundant processing architecture for single fault tolerance
DE102005037246A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Steuerung eines Rechnersystems mit wenigstens zwei Ausführungseinheiten und einer Vergleichseinheit
US8010846B1 (en) 2008-04-30 2011-08-30 Honeywell International Inc. Scalable self-checking processing platform including processors executing both coupled and uncoupled applications within a frame
US7886195B2 (en) * 2008-05-05 2011-02-08 Infineon Technologies Ag Apparatus, system, and method of efficiently utilizing hardware resources for a software test
JP5509568B2 (ja) * 2008-10-03 2014-06-04 富士通株式会社 コンピュータ装置、プロセッサ診断方法、及びプロセッサ診断制御プログラム
CN101794271B (zh) * 2010-03-31 2012-05-23 华为技术有限公司 多核内存一致性的实现方法和装置
US8819485B2 (en) * 2012-03-12 2014-08-26 Infineon Technologies Ag Method and system for fault containment
EP2813949B1 (en) 2013-06-11 2019-08-07 ABB Schweiz AG Multicore processor fault detection for safety critical software applications
JP2015222467A (ja) * 2014-05-22 2015-12-10 ルネサスエレクトロニクス株式会社 マイクロコントローラ及びそれを用いた電子制御装置
JP6360387B2 (ja) * 2014-08-19 2018-07-18 ルネサスエレクトロニクス株式会社 プロセッサシステム、エンジン制御システム及び制御方法
US9823983B2 (en) * 2014-09-25 2017-11-21 Nxp Usa, Inc. Electronic fault detection unit
US10002056B2 (en) * 2015-09-15 2018-06-19 Texas Instruments Incorporated Integrated circuit chip with cores asymmetrically oriented with respect to each other
US10089194B2 (en) * 2016-06-08 2018-10-02 Qualcomm Incorporated System and method for false pass detection in lockstep dual core or triple modular redundancy (TMR) systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006268208A (ja) * 2005-03-23 2006-10-05 Nec Corp 故障診断回路とこの故障診断回路を備えた情報処理装置、故障診断システム及び故障診断プログラム
KR20130060337A (ko) * 2010-09-20 2013-06-07 퀄컴 인코포레이티드 다중-프로세서 컴퓨팅 플랫폼에서의 프로세서간 통신 기법들
KR20130094322A (ko) * 2010-09-20 2013-08-23 퀄컴 인코포레이티드 다중-프로세서 컴퓨팅 플랫폼에서의 프로세서간 통신 기법들
KR20140053370A (ko) * 2011-09-07 2014-05-07 퀄컴 인코포레이티드 그래픽 프로세싱을 위한 메모리 복사 엔진
KR20160066044A (ko) * 2013-10-16 2016-06-09 구글 인코포레이티드 별도의 어플리케이션에 의해 정의되는 인터페이스 객체들을 렌더링

Also Published As

Publication number Publication date
EP3555748A1 (en) 2019-10-23
US10331532B2 (en) 2019-06-25
KR102016004B1 (ko) 2019-08-29
EP3555748B1 (en) 2020-05-13
TW201830243A (zh) 2018-08-16
US20180203778A1 (en) 2018-07-19
SG11201905068VA (en) 2019-08-27
TWI686695B (zh) 2020-03-01
CN110140112A (zh) 2019-08-16
CN110140112B (zh) 2020-11-17
BR112019014536A2 (pt) 2020-02-27
WO2018136169A1 (en) 2018-07-26

Similar Documents

Publication Publication Date Title
US10576990B2 (en) Method and device for handling safety critical errors
US9823983B2 (en) Electronic fault detection unit
CN108780412B (zh) 计算系统中的存储器备份管理
CN111480147B (zh) 用于针对纠错码功能的联机功能测试的系统和方法
KR102016004B1 (ko) 록스텝 시스템들의 주기적인 비-간섭적 진단
US11354465B2 (en) Function safety and fault management modeling at electrical system level (ESL)
US9058419B2 (en) System and method for verifying the integrity of a safety-critical vehicle control system
US20160283314A1 (en) Multi-Channel Network-on-a-Chip
Kohn et al. Fail-operational in safety-related automotive multi-core systems
Iturbe et al. Addressing functional safety challenges in autonomous vehicles with the arm TCL S architecture
Kohn et al. Architectural concepts for fail-operational automotive systems
Bellotti et al. How future automotive functional safety requirements will impact microprocessors design
WO2013188332A1 (en) Software handling of hardware error handling in hypervisor-based systems
US20220185301A1 (en) Control unit for vehicle and error management method thereof
CN115826393A (zh) 一种飞控系统的双余度管理方法及装置
US20240118958A1 (en) Datalogging Circuit Triggered by a Watchdog Timer
JP5680514B2 (ja) 自己診断機能を備えたコンピュータ、ソフトウェア作成方法、およびソフトウェア作成装置
US9128838B2 (en) System and method of high integrity DMA operation
JP6654230B2 (ja) 車両制御装置
US20230043280A1 (en) Verifying processing logic of a graphics processing unit
US12061855B2 (en) Functional circuit block harvesting in integrated circuits
Niimi et al. Virtualization Technology and Using Virtual CPU in the Context of ISO26262: The E-Gas Case Study
Schneider et al. Multicore vs Safety 2010-01-0207

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right