KR20130119452A - 오류 허용 아키텍쳐를 갖는 마이크로프로세서 시스템 - Google Patents

오류 허용 아키텍쳐를 갖는 마이크로프로세서 시스템 Download PDF

Info

Publication number
KR20130119452A
KR20130119452A KR1020137015830A KR20137015830A KR20130119452A KR 20130119452 A KR20130119452 A KR 20130119452A KR 1020137015830 A KR1020137015830 A KR 1020137015830A KR 20137015830 A KR20137015830 A KR 20137015830A KR 20130119452 A KR20130119452 A KR 20130119452A
Authority
KR
South Korea
Prior art keywords
microprocessor
hwsa
modules
software
module
Prior art date
Application number
KR1020137015830A
Other languages
English (en)
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 KR20130119452A publication Critical patent/KR20130119452A/ko

Links

Images

Classifications

    • 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
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1487Generic software techniques for error detection or fault masking using N-version programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • 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/14Error detection or correction of the data by redundancy in operation
    • 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B9/00Safety arrangements
    • G05B9/02Safety arrangements electric
    • 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/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1687Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling

Abstract

본 발명은 소프트웨어 모듈들에 할당된 태스크들 또는 기능들을 제어하는 범위 내에서 적어도 부분적으로 안전성이 중요한 소프트웨어 모듈들을 실행하며, 적어도 2개의 마이크로프로세서 코어들 (CPUi) 을 구비하는 본질적으로 안전한 마이크로프로세서 모듈 (HWSAi) 을 포함하는 마이크로프로세서 시스템 (MCUSA) 에 관한 것이다. 본 발명에 따르면, 적어도 2개의 마이크로프로세서 코어들 (CPU1, CPU2; CPU3, CPU4) 을 구비하는 적어도 하나의 다른 본질적으로 안전한 마이크로프로세서 모듈 (HWSAi, i=1, ... n) 이 제공되고, 상기 적어도 2개의 마이크로프로세서 모듈들 (HWSA1, HWSA2) 은 버스 시스템 (B) 에 의해 연결되고, 적어도 부분적으로 중복하는 기능들을 수행하는 적어도 2개의 소프트웨어 모듈들이 제공되고, 적어도 부분적으로 중복하는 기능들을 구비하는 상기 소프트웨어 모듈들은 하나의 마이크로프로세서 모듈 (HWSA1, HWSA2) 에 또는 적어도 2개의 마이크로프로세서 모듈들 (HWSA1, HWSA2) 에 분포되고, 그리고 소프트웨어 및/또는 하드웨어 오류들을 인식하기 위해, 동일한 기능들을 위한 상기 소프트웨어 모듈들에 의해 생성된 결과들을 비교 및/또는 중재하는 수단이 제공된다.

Description

오류 허용 아키텍쳐를 갖는 마이크로프로세서 시스템{MICROPROCESSOR SYSTEM HAVING FAULT-TOLERANT ARCHITECTURE}
본 발명은 특허청구범위의 전제부에 따른 소프트웨어 모듈들과 관련된 기능들 또는 태스크들의 제어 및/또는 조정의 일부로서 적어도 부분적으로 안전성 필수 소프트웨어 (safety-critical software) 모듈들을 실행하기 위한 마이크로프로세서 시스템에 관한 것이다.
종래 기술은 안전성 관련 차량 컨트롤러들에 대해 본질적으로 안전한 마이크로컨트롤러들 및 마이크로프로세서 시스템을 개시한다.
이 경우, 용어 "본질적으로 안전한 (inherently safe)" 은 특정 오류들의 발생시 안전한 상태로 남아 있거나 또는 즉시 다른 안전한 상태로 변경되는 전자 시스템의 성능인 것으로 간주되거나, 또는 오류가 발생한 경우 셧다운되는 것으로 간주된다. 특성의 서브셋은 다른 컴포넌트들과 통신하는 시스템에서의 컴포넌트의 오류 침묵 특성 (fault silent property) 이며, 컴포넌트 내에서의 오류의 인지시, 어떠한 정보도 제공하지 않고 그 자체는 어떠한 다른 액션들도 더 이상 수행하지 않는다.
예로서, 공지의 본질적으로 안전한 마이크로컨트롤러들은 동일한 프로그램을 클록 동기하여 (락스텝 모드 (lockstep mode); LSM) 실행하며 오류 발생시 셧다운하는 2개의 마이크로프로세서 코어들을 포함한다. 다른 공지의 마이크로컨트롤러들은 3개 이상의 코어들 및 오류 발생시 프로세서들 중 어느 것이 정확한 연산들을 수행하였는지를 결정하고 그 후 정확하게 연산하고 있는 프로세서에 수행될 태스크를 전송하는 (결함 허용 원칙) 머조리티 유닛 (majority unit) 을 포함하는데, 즉 서브시스템들 또는 컴포넌트들에 제한된 수의 고장이 있어도 그 명시된 기능 또는 태스크를 수행하는 것이 시스템의 특성 또는 능력이다.
또한, 오류 허용 시스템을 각각 형성하는 2개의 코어들을 구비하는 2개의 오류 침묵 시스템들 (fault silent systems) 로 이루어지는 마이크로컨트롤러들도 또한 이미 공지되어 있다.
또한, 2개의 별개의 마이크로컨트롤러 유닛들 (MCUs) 이 물리적으로 서로 근접하게 되도록 정렬되어, 서로 데이터를 재빨리 상호교환할 수 있는 하드웨어 구조들이 공지되어 있다.
전자장치들에서의 불량이 안전하게 검출될 것을 요구하는 ESP 제어 시스템과 같은 오늘날의 차량 안전성 관련 시스템들은, 이러한 시스템들에서의 관련 컨트롤러들, 즉, 예를 들면, 락스텝 모드에서 락되는 2개의 마이크로프로세서 코어들 (듀어 코어 아키텍쳐) 을 구비하는 본질적으로 안전한 마이크로프로세서 모듈들 또는 마이크로프로세서 플랫폼들에 대한 오류 인식을 위해 용장성들 (redundancies) 을 통상 사용한다. 이러한 마이크로프로세서 모듈들은 ESP 기능들을 용장적으로 (redundantly) 연산하고 그들 사이의 매치를 점검하기 위해 사용될 수 있다. 결과들에서 불일치가 발생하면, ESP 시스템은 셧다운된다.
하드웨어 컴포넌트들에서의 결함들은, 버스 전송 이전의 체크섬 연산 또는 플래시 메모리들의 경우에 체크섬 메모리들에 의한 것과 같은 특별한 보안책에 의해 인식된다. 또한, 용장성 컴포넌트들 (redundant components), 이를테면 메모리 모듈들 (예를 들면, RAM, ROM, 캐시), CPU들, 모니터링 모듈들 및 버스 비교기들 또는 메모리 보호 유닛들에 기초하여 본질적 안전을 달성하는 것이 또한 공지의 관행이다.
그러나, 이러한 아키텍쳐들은 소프트웨어의 일부 (piece) 에서의 "결함들" 또는 "설계 오류들"을 인식하는데 사용될 수 없다.
이러한 결함들은 특정 제약들 하에서만 발생하고 명백하게 되는 (예를 들면, 컴파일러 또는 어셈블러에 의해 소프트웨어의 배포 단계에서는 인식될 수 없는) 번역 오류들일 수도 있다
소프트웨어 컴포넌트들을 이러한 결함들로부터 보호하기 위한 공지의 해결책들은 상이한 어셈블러/컴파일러 또는 수정된 어셈블러/컴파일러 선택을 행하는 것인데, 예를 들면 메모리 최적화 대신 속도 최적화를 행하거나 또는 상이한 최적화 레벨을 행하는 것이다.
소프트웨어의 일부에서의 설계 오류들은 예를 들면 개발자로부터의 "잘못된 추론"을 수반하고, 소프트웨어가 특정 환경들 하에서 실행될 때, 명시되지 않은 거동 또는 시스템의 잘못된 동작 모드로 귀결된다, 즉, 기대될 동작 상황들 또는 외부 환경들의 소프트웨어 구조 또는 동작 모드로의 만족스럽지 않은 매핑이 존재하게 된다.
소프트웨어 컴포넌트들을 이러한 설계 오류들로부터 보호하기 위해서, 기능이 제 2, 제 3, .... 제 n번째의 소프트웨어 컴포넌트에 의해 수행되게 하고 결과들의 각각을 (n-1) 개의 다른 소프트웨어 컴포넌트들의 결과들과 비교하고 평가하는 것이 공지의 관행이다.
설계 오류들을 인식하기 위한 이 공지의 오류 인식 접근법은 하기의 문제점을 갖는다:
- n번째 소프트웨어 컴포넌트들은 단일의 본질적으로 안전한 마이크로프로세서 모듈 (single inherently safe microprocessor module) 상에서의 싱글 런타임 환경에서의 연산에 대해 거의 n배의 런타임을 필요로 한다.
- 기저의 (underlying) 싱글-용장성 하드웨어의 고장의 경우, 모든 소프트웨어는 셧다운되고; 이것은 전체 임베디드 시스템의 견고성과 가용성의 관점에서 좋지 않은 결과로 나타나게 된다.
- 안전성 레벨 (ASIL-D) 을 넘어서, 듀얼 하드웨어 오류들은 단일의 오류들을 인식하도록 변경된 하드웨어 모니터링 모듈들에 의해 인식된다는 것을 보장할 수 없고, 프로그래밍의 관점에서, 소프트웨어 컴포넌트들에서의 설계 오류들이 하드웨어 결함들과 명확하게 구별되는 것을 허용하지 않는 불명확한 환경들로 귀결될 수 있다. 예로서, 플래시 또는 RAM 메모리들에서의 그리고 마이크로프로세서들에서의 듀얼 결함은 이와 같이 하드웨어 레벨에서 인식되지 않고, 입력의 변형, 알고리즘의 변형 또는 하나 이상의 소프트웨어 컴포넌트들로부터의 출력의 변형으로 귀결되어, 그 결과 영향을 받은 소프트웨어 컴포넌트들이 어쩌면 정확한 이유도 설명하지 않고 셧다운된다. 다운스트림 오프라인 분석은 어렵고, 많은 노동을 필요로 하고 비용이 많이 든다.
- n배의 소프트웨어 컴포넌트들의 순차적 실행 (직렬화) 은, 경험에 기초하여, 원칙적으로 더 이상 분리될 수 없는 소프트웨어 구조들의 중단기 결과 (medium-term result) 를 갖는다. 제한된 환경에서 고려되고, 개발되고 그리고 도달된 모놀리식 블록들은 거의 생성되지 않았다. FSM의 관점으로부터 이러한 모든 시스템의 고려는 점차적으로 더 어렵고 멀티레벨의 폴백 레벨 컨셉의 도입은 더 이상 명확하게 정의되지 않는 소프트웨어 컴포넌트들의 경계들 때문에 아주 복잡하다.
- 마지막으로, 소프트웨어 컴포넌트들 자체의 관리용이성, 관리 및 유지보수는 모놀리식 구조 때문에 사라졌다.
자동차 시스템들의 소프트웨어 및 하드웨어 컴포넌트들에 대한 안전성 기능들의 신뢰성을 평가하기 위해, ISO 표준 26262는 안전성 레벨들로서 알려진 자동차 안전 무결성 레벨 (Automotive Safety Integrity Level), 줄여서 ASIL을 정의한다. 각각의 안전성 레벨은 사람에 대한 위험성 및 사람에 대한 위해성 (endangerment) 에 기초한 시스템의 기능적 안전성의 측정이며, 이것은 시스템 기능에 기초할 수도 있다. 상대적으로 낮은 위해성을 갖는 기능들 또는 프로세스들은, 원칙적으로, 상대적으로 높은 위해성을 갖는 프로세스들보다 낮은 안전 무결성 레벨을 갖는 안전성 그룹에 의해 셋업된다.
이 표준에 기초하여, 4개의 안전성 레벨들 (ASIL-A 내지 ASIL-D) 이 존재하는데, ASIL-D는 가장 높은 안전성 요건이다. 설계 오류들에 기초한 소프트웨어 고장은 이 경우 ASIL-D 안전성 레벨에 대응한다.
본 발명은 서두에서 언급된 바와 같이 마이크로프로세서 시스템을 특정하는 목적에 기초한 것으로, 하드웨어 및 소프트웨어 레벨에서 ASIL-D 분류에 기초하여 본질적 안전을 보장하고, 또한, 소프트웨어 컴포넌트들의 핸들링 및 유지보수의 관점에서 유연하고 멀티레벨의 폴백 레벨 컨셉을 갖는다.
이 목적은 청구항 제 1항의 특징들에 의해 달성된다.
소프트웨어 모듈들과 관련되는 태스크들 또는 기능들의 조정 및/또는 제어의 일부로서 적어도 부분적으로 안전성이 중요한 소프트웨어 모듈들을 실행하며, 적어도 2개의 마이크로프로세서 코어들을 구비하는 적어도 하나의 본질적으로 안전한 마이크로프로세서 모듈을 포함하는 이러한 마이크로프로세서 시스템은, 본 발명에 따라, 다음의 점에서 구별된다:
- 적어도 2개의 마이크로프로세서 코어들을 구비하는 적어도 하나의 또 다른 본질적으로 안전한 마이크로프로세서 모듈이 제공되고, 상기 적어도 2개의 마이크로프로세서 모듈들은 버스 시스템에 의해 연결되고,
- 적어도 부분적으로 중복하는 (overlapping) 기능들을 수행하는 적어도 2개의 소프트웨어 모듈들이 제공되고,
- 적어도 부분적으로 중복하는 기능들을 구비하는 이들 소프트웨어 모듈들은 하나의 마이크로프로세서 모듈에 또는 적어도 2개의 마이크로프로세서 모듈들에 분포되고, 그리고
- 동일한 기능들을 위한 상기 소프트웨어 모듈들에 의해 생성된 결과들을 비교 및/또는 중재하는 수단이 소프트웨어 및/또는 하드웨어 오류들을 인식할 목적으로 제공된다.
본 발명에 따른 이러한 마이크로프로세서 시스템은, 오류가 발생하는 경우 관련 하드웨어 컴포넌트 또는 소프트웨어 컴포넌트가 명확하게 식별될 수 있고 케이스 의존적으로 셧다운될 수 있도록 본질적으로 안전한 마이크로프로세서 모듈들을 통합하는데 사용될 수 있다.
이것은 마이크로프로세서 모듈들의 본질적인 안전성의 특성에 의해 보장되며, 그 결과 하드웨어 오류가 발생하는 경우 다른 마이크로프로세서 모듈이 활성화되거나 계속되도록 유지되고 동일한 또는 같은 또는 유사한 또는 비슷한 그러나 덜 이해적인 기능을 수행하는 소프트웨어 모듈이 그 지점에서 시작된다. 상기 언급된 소프트웨어 모듈은 일종의 스탠바이 모드에서 또한 이미 기동되고 있을 수도 있지만, 예를 들면, 액티브 액션들을 수행하기 위한 제어 또는 클리어런스를 유효하게 획득하기 이전에, 액추에이터의 또는 버스 매체 상의 통신의 궁극의 제어를 액세스하기 위한 클리어런스를 여전히 요구할 수도 있다. 이 클리어런스는 다음과 같이 제공될 수도 있다: 예를 들면, 즉 모니터링 소프트웨어 모듈의 형태로 중재기 (arbitrator) 에 의해 명시적으로, 또는 주 책임 소프트웨어 모듈이 오류로 인해 셧다운되고 있다는 또는 셧다운되었다는 리포트와 함께 주 책임 소프트웨어 모듈에 의한 자기 표시에 의해 명시적으로, 또는 주 책임 소프트웨어 모듈이 실행되는 마이크로프로세서 모듈로부터 얼라이브 신호들의 부재에 의해 암시적으로 제공될 수도 있다. 적어도 부분적으로 용장성인 소프트웨어 모듈들은, 이들 소프트웨어 모듈들 중 하나에서의 오류가 발생하는 경우, 동일한 또는 상이한 마이크로프로세서 모듈에 할당된 관련 기능을 갖는 소프트웨어 모듈이 실행되는 것이 가능하다는 것을 의미한다.
특히, 본질적으로 안전한 마이크로프로세서 모듈 또는 소프트웨어 모듈의 고장이 발생하였는지의 여부를 인식할 수 있으며, 동시에 소프트웨어 모듈이 위치된 마이크로프로세서 모듈의 서비스가용성이 동시에 보장되더라도 이 소프트웨어 모듈을 고장으로서 인식할 수 있다.
마지막으로, 본 발명에 따른 마이크로프로세서 시스템은, ABS 또는 ESP 기능들 또는 프로그램 모듈들 또는 태스크들과 같은 소프트웨어 컴포넌트들이 상이한 본질적으로 안전한 마이크로프로세서 모듈들에 분포되는 것을 허용하는 하드웨어/소프트웨어 아키텍쳐를 제공하기 위해 사용될 수 있으며, 예로서, 두 개의 상호적 모니터링 ESP 소프트웨어 모듈들 (이들은 규정된 ASIL 안전성 레벨들을 준수하기 위해 반드시 동일한 형태로 프로그램될 필요는 없거나, 또는, 원래의 기능적 스펙에 대해 측정되는 경우, 근본적으로 동일한 개발 조항들을 만족하지만 상이한 방식으로 구현되는 것을 의미하거나 심지어 그렇게 되는 것을 필요로 한다) 이 하나의 본질적으로 안전한 마이크로프로세서 모듈에서 필요에 따라 병렬로 기동하는 것도 또한 가능하다.
본 발명의 하나의 유익한 구체예에서, 오류가 있는 소프트웨어 모듈이 인식되면, 그 오류는 상기 소프트웨어의 기능이 다른 소프트웨어 모듈에 의해 수행되도록 허용되는 것에 의해 수정될 수 있는데, 상기 다른 소프트웨어 모듈은 오류가 있는 소프트웨어 모듈과 중복하는 기능으로서 이 기능을 적어도 구비하거나 또는 수행될 기능들 또는 태스크들의 관점에서 동일하다, 즉 동일한 목적을 위해 사용된다.
그러므로, 이러한 마이크로프로세서 시스템은, 하나의 소프트웨어 모듈이 고장나면 다른 소프트웨어 모듈이 액티브로 유지되기 때문에, 견고성이 향상된 안전성 아키텍쳐를 제공한다. 특히, 고장난 소프트웨어 모듈의 부기능들 또는 서브태스크들은, 고장난 소프트웨어 모듈과 동일하지 않지만 이 부기능 또는 서브태스크를 또한 수행할 수 있는 동일한 또는 다른 마이크로프로세서 모듈 상의 다른 소프트웨어 모듈의 백업 루틴들 또는 프로그램 세그먼트들로서 시작될 수 있다.
또한, 만약, 본 발명의 일 향상에 기초하여, 오류가 있는 마이크로프로세서 모듈이 인식되는 경우, 오류가 있는 마이크로프로세서 모듈의 기능을 수행할 의무가 있는 또 다른 마이크로프로세서에 의해 오류가 수정되면 특히 유용한데, 상기 또 다른 마이크로프로세서 상에는 이 기능을 수행하는데 필요한 소프트웨어 모듈이 위치된다. 이것은 견고성이 더 향상된 안전성 아키텍쳐를 제공하는데, 그 이유는 하나의 마이크로프로세서 모듈이 고장나고 다른 마이크로프로세서 모듈이 액티브로 유지될 때, 고장이 발생하는 경우에도 소프트웨어 모듈들은 부분적으로 또는 완전히 계속 실행될 수 있기 때문이며, 이 경우에도 또한, 부기능들 또는 서브태스크들이 다른 마이크로프로세서 모듈의 다른 소프트웨어 모듈의 백업 루틴들 또는 프로그램 세그먼트들로서 제어를 책임질 수 있다.
이 경우, 일 향상에 기초하여, 안전성 관련 기능을 수행하기 위해 근본적으로 용장성 소프트웨어 (redundant software) 를 구비하며 하나 이상의 마이크로프로세서 모듈들에 대해 복수 회 분포되는 소프트웨어 모듈들이 제공되는 것이 특히 유익하다.
상응하여 향상된 이용가능성은, 동일한 또는 부분적으로 동일한 소프트웨어 모듈이 고장 핸들링을 위해 실행될 수 있다는 점에서 소프트웨어 모듈의 고장의 측면에서 본 발명에 따른 마이크로프로세서 시스템의 고장 내성으로 표현된다.
또한, 마이크로프로세서 시스템의 기능적 안전성은, 만약, 본 발명의 일 향상에 기초하여, 안전성 관련 기능을 수행하기 위해 다양화된 용장성 (diversified redundancy) 을 갖는 소프트웨어를 구비하며 하나 이상의 마이크로프로세서 모듈들에 대해 복수 회 분포되는 소프트웨어 모듈들이 제공되면 증가된다. 이것은 마이크로프로세서 모듈의 본질적 안전성에 의해 하드웨어 레벨에서의 보호책 및 다양화된 용장성 소프트웨어를 구비하는 이들 소프트웨어 모듈의 용장성에 의해 소프트웨어 레벨에서의 보호책 양자를 보장한다.
또한, 만약, 본 발명의 일 구체예에 기초하여, 각각의 마이크로프로세서 모듈이, 기본적 기능들을 수행할 목적으로, 소프트웨어 기본 모듈들, 바람직하게는 통신 소프트웨어 모듈들, 입력 적정화 (plausibilization) 소프트웨어 모듈들 및 태스크-특정 소프트웨어 모듈들을 구비하면 특히 유익한데, 이들은 마이크로프로세서 모듈에 각각 한 번 위치된다.
그러므로, 복수의 마이크로프로세서 모듈들을 구비하는 본 발명에 따른 마이크로프로세서 시스템은, 안전성 필수 소프트웨어, 예컨대 브레이크 제어 소프트웨어 (ABS/ASR/EBV) 또는 드라이빙 다이나믹스 제어 소프트웨어 (ESP/ESC) 뿐만 아니라, 안전이 필수적이지 않은 소프트웨어, 예를 들면, 내비게이션 시스템들 또는 안전이 그리 필수적이지 않은 시스템들, 예컨대 크루즈 제어 시스템들 (ACC) 용의 소프트웨어 또는 안전이 필수적이지 않은 드라이버 보조 시스템들 또는 안전성 필수 소프트웨어와 병행하여 부가된 편의 기능들용의 다른 소프트웨어도 실행하기 위해 사용될 수 있다. 마이크로프로세서 모듈들이 본질적으로 안전한 멀티프로세서 구조를 갖도록 설계되기 때문에, 견고성과 가능한 한 적은 상호작용들로 인해 이것은 다양한 런타임 환경들 (runtime environments; RTEs) 에서 구현될 수 있다.
바람직하게는, 마이크로프로세서 모듈들은 ASIC으로서 구현될 수 있고, 여러 마이크로프로세서 모듈들이 그들의 IC 패키지들이 물리적으로 단락의 거리에 걸쳐 접속되지 않게 하는 보장을 제공하고, 이것은 인쇄 회로 기판들 또는 배선 하니스들에 적합한 버스 시스템들로 도입하기 위해 계속 필요하고, 상기 버스 시스템들은 빠르지만 가장 빠르지는 않고, 또한 DIE의 레벨에서 또는 가장 바람직한 데이터 전송 속도에 대한 실리콘에 공통인 구조들 또는 버스들에서 사용될 수 있고, 그 결과 빠른 데이터 전송을 위해 짧은 거리들이 제공되고, 빠른 버스 시스템들이 제공될 수 있고 짧은 레이턴시들만이 나타난다.
다른 이점은 상이한 원천 (origin) 의 소프트웨어 모듈들 (예를 들면, OEM-특정 어플리케이션들 및 독점적 개발들 (proprietary developments)) 은 마이크로프로세서 시스템 상에서 디커플링될 수 있는데, 하나의 소프트웨어 모듈이 하나의 본질적으로 안전한 마이크로프로세서 모듈 상에 위치되는 것과 다른 소프트웨어 모듈이 다른 본질적으로 안전한 마이크로프로세서 모듈 상에 위치되는 것 모두가 가능하기 때문이다. 특히, 이것은 안전-관련 소프트웨어가 안전에 관련이 없는 소프트웨어로부터 디커플링되는 것을 또한 허용한다.
바람직하게는, 일 개발 (one development) 에 기초하여, 제공된 소프트웨어 기본 모듈이, 중재 및 유익하게는 안전-관련 기능을 수행하는 용장성 그리고/또는 다양화된 용장성 (diversified-redundant) 소프트웨어 모듈들로부터의 결과에 대해 적정성 체크도 또한 수행하는 출력 중재 소프트웨어 모듈이다. 이것은 클리어한 오류 관련성 (clear fault association) 을 허용한다, 즉 마이크로프로세서 모듈이 고장났는지 또는 소프트웨어 모듈이 고장났는지의 여부를 허용한다. 그 이유는, 본질적으로 안전한 마이크로프로세서 모듈들과 연계하여, 소프트웨어 모듈들은, 마이크로프로세서 모듈들의 서비스가용성이 동시에 보장되는 동안 용장성 소프트웨어 모듈들로부터의 결과들의 네가티브한 비교가 나타나는 경우 소프트웨어 모듈들이 오류가 있는 것으로 검출될 수 있기 때문이다. 따라서, 하드웨어 오류들을 발견하는 것뿐만 아니라, 소프트웨어의 병렬 실행을 통해 설계 지향 소프트웨어 오류들도 또한 발견할 수 있다는 것이 이점이다.
본 발명의 일 개발에 기초하여, 멀티프로세서 플랫폼으로서 적어도 하나의 마이크로프로세서 모듈의 마이크로프로세서 코어들이 락스텝 모드 (LSM) 에서 동작하면, 이것은 물리적 용장성, 즉 복제된 구조들 (duplicated structures) 에 기초하여 보호성을 크게 달성하는 것이 특히 유익하다. 이러한 마이크로프로세서 모듈은 원칙적으로 이 LSM 모드에서 동작하지만, 이것은 초기화 루틴에 후속하여 공급 전압이 스위치 온된 이후 또는 외부 리셋 신호 이후 또는 원-오프 프로세스로서의 런타임에서 이 LSM 모드에 또한 놓여질 수 있고, 이 마이크로프로세서 모듈은 이 LSM 모드에 또한 남게 된다.
또한, 일 개발에 기초하여, 멀티프로세서 플랫폼으로서 적어도 하나의 마이크로프로세서 모듈의 마이크로프로세서 코어들은 디커플링된 병렬 모드 (DPM; decoupled parallel mode) 에서 동작할 수 있다, 즉 상기 마이크로프로세서 모듈은 그 기능적 안전성 목표들을 비대칭 용장성의 구성적 측정 (architectonic measure) 에 의해 달성한다. 이것은 컴포넌트들의 비대칭적 물리적 용장성에 기초하는 시간에 대한 완전한 매칭에 의해 보호를 달성한다.
본 발명의 일 구체예에 기초하여, 본 발명에 따른 마이크로프로세서 시스템은 멀티코어 프로세서 플랫폼들로서 복수의 마이크로프로세서 모듈들 뿐만 아니라 싱글 마이크로프로세서 코어 (싱글 코어 프로세서) 를 구비하는 적어도 하나의 마이크로프로세서도 구비할 수도 있다. 바람직하게는, 이들 마이크로프로세서 모듈들은, 외부 확장성을 허용하기 위해 입/출력 인터페이스를 구비하는 적어도 하나의 버스 시스템에 연결된다.
또한, 본 발명의 일 개발에 기초하여, 본 발명에 따른 마이크로프로세서 시스템은, 동일한 형태의 운영 체계들을 각각 구비하는 마이크로프로세서 모듈들을 구비하도록 설계될 수 있다. 그러므로, 바람직하게도, 이것은 여러 마이크로프로세서 모듈들에 대해 연산 부하를 정적으로, 반동적으로 (semi-dynamically) 또는 완전히 동적으로 분포시키는 운영 체계의 사용을 수반하는 것이 가능하다.
본 발명의 일 구체예에서, 마이크로프로세서 모듈들의 몇몇은 타임 슬라이스 기반의 운영 체계 (time-slice-based operating system) 를 각각 구비하며, 이들은 동기화된다. 이것은, 마이크로프로세서 모듈들이 위상 동기 방식으로 서로 커플링된다는 것을 의미한다. 이것은, 예로서, 수신기의 부분 상에서의 타임 슬라이스의 유익한 배치와 결합하여 외부 또는 온칩의 버스 시스템들을 사용하여 송신기에 의해 등거리 시간들에서 전송되고 있는 타임 스탬프들에 의해 달성될 수 있다.
마지막으로, 본 발명은 공통 패키지를 구비하는 ASIC으로서 적어도 어느 정도 설계될 마이크로프로세서 모듈들에 대해 제공된다.
유익하게도, 본 발명에 따른 마이크로프로세서 시스템은, 바람직하게는 브레이크 제어 및 조정을 위해 제공되는 전자적 차량 컨트롤러에서 사용하는데 적합하지만, 통상, 특성들에 기초하여 섀시 컨트롤러들의 드라이빙 다이나믹스 거동, 또는 섀시 컨트롤러들의 선택된 그룹의 드라이빙 다이나믹스 거동을 조정시키는 소프트웨어 모듈들을 수용하도록 또한 예정된다. 이 경우, 조정은, 섀시 도메인 또는 그 밖의 싱글-스테이지 또는 멀티-스테이지 또는 캐스케이드된 또는 임베디드된 제어 루프들에서 컨트롤러의 동작 포인트들에 대한 동작의 모드의 시스템 전체적인 변화들을 목적으로 하는 액션들을 포함할 수도 있다.
본 발명은 첨부된 도면들을 참조한 예시적인 구체예들을 사용하여 하기에 더 상세히 설명된다:
도 1은 본 발명에 따른 기본 엘리먼트들로서 본질적으로 안전한 마이크로프로세서 모듈들을 구비하는 마이크로프로세서 시스템의 개략적인 블록도이다.
도 2는 도 1에 도시된 마이크로프로세서 시스템의 본질적으로 안전한 마이크로프로세서 모듈의 개략적인 블록도이다.
도 3은 도 1에 도시된 마이크로프로세서 시스템의 본질적으로 안전한 마이크로프로세서 모듈의 개략적인 블록도이다.
도 4는 도 1에 도시된 바와 같은 마이크로프로세서 시스템의 2개의 마이크로프로세서 모듈들에 걸친 여러 소프트웨어 모듈들에 대한 스플릿의 개략적인 예시를 도시한다.
도 1에 도시된 마이크로프로세서 시스템 (MCUSA) 은 복수의 용장성 기본 엘리먼트들을 포함하며, 이들은, 본질적으로 안전한 마이크로프로세서 모듈들 (HWSAi)(i=1, ... i=n) 로서, CPU 모듈들로도 칭해지며, 도 2 및 도 3으로부터 알 수 있는 바와 같이, 적어도 두 개의 마이크로프로세서 코어들 (CPU1 및 CPU2 또는 CPU3 및 CPU4) 을 구비한다. 또한, 이 마이크로프로세서 시스템 (MCUSA) 은 적어도 하나의 마이크로프로세서 (CPU) 를 포함할 수도 있으며, 이것은, 표준 마이크로프로세서 (즉, 본질적으로 안전하지 않다) 로서, 단지 하나의 코어만을 구비한다 (싱글 코어 프로세서이다). 이들 마이크로프로세서 모듈들 (HWSAi)(i=1, ... i=n) 각각과 표준 마이크로프로세서 (CPU) 는 인터페이스 (IF) 를 통해 중앙 버스 시스템 또는 네트워크 (B) 에 접속되며, 인터페이스 (IFext) 는 다른 컴포넌트들, 예를 들면 하드웨어 모듈들의 접속을 위한 확장을 위해 사용될 수 있다. 또한, 마이크로프로세서 모듈들 (HWSAi)(i=1, ... i=n) 과 어쩌면 표준 마이크로프로세서 (CPU) 도 복수의, 어쩌면 자급자족의, 버스 시스템들에 의해, 완전히 또는 부분적으로 네트워킹될 수 있다.
도 2에 도시된 바와 같은 듀얼 코어 마이크로프로세서와 같이 본질적으로 안전한 마이크로프로세서 모듈들 (HWSAi) 은 LSM (lockstep mode) 으로서 알려진 모드에서 동작하며, 즉, 이러한 마이크로프로세서들은 동일한 프로그램 세그먼트를 용장적으로 그리고 클록 동기하여 실행하며 (그러므로 락스텝 모드이다), 2개의 마이크로프로세서 코어들 (CPU1 및 CPU2) 로부터의 결과들이 비교되어 매치에 대한 비교 동안 고장이 검출된다.
도 2에 도시된 마이크로프로세서 모듈들 (HWSAi) 의 각각의 마이크로프로세서 코어 (CPU1 및 CPU2) 는 인터페이스 (IF) 에 의해 접속된 전용 버스 시스템 (B1 또는 B2) 을 구비한다. 결과들의 비교를 수행하기 위해, 용장성 비교기들 (K1 및 K2) 이 유익하게 제공되는데, 이들은, 하드웨어 결함들로부터 단일의 오류들을 검출하기 위한 목적으로, 이 마이크로프로세서 모듈 (HWSAi) 의 용장성 기본 엘리먼트들, 및 또한 오류의 경우 도 2에 예로서 도시된 2개의 마이크로프로세서 코어들 (CPU1 및 CPU2) 의 입력들 및 출력들 모두를 모니터링한다, 즉 2개의 마이크로프로세서 코어들 (CPU1 및 CPU2) 사이에 불일치가 있는 경우 이 마이크로프로세서 (HWSAi) 의 셧다운 또는 그것의 성능저하 (degradation) 를 재촉한다. 이 보호책은 광대하고 대칭적인 물리적 용장성을 통해 달성된다, 즉, 구조들이 복제된다. 도시된 마이크로프로세서 코어들 (CPU1 및 CPU2) 외에도, 이 마이크로프로세서 모듈 (HWSAi) 은 다른 컴포넌트들, 예컨대 메인 메모리 (RAM), 프로그램 메모리 (플래시 또는 ROM), 비교기 및 안전성 모듈들, 외부 버스들 (CAN, LIN, 플렉스레이 (Flexray), MOST, ISOK, 이더넷) 용의 모듈들을 포함하고, 이러한 컴포넌트들은 또한 안전성 이유들로 인해 용장성 설계를 가질 수 있다. 또한, 구조들의 근본적 복제의 목적을 위한 물리적 용장성 외에 그리고 완전한 복제 없이 오로지 간단한 실행의 경우 외에 대칭적 용장성을 갖는 것이 가능하다. 예로서, 체크섬들을 수용하기 위한 목적을 위해 사용되는 부가적인 메모리 용량들에 의해 플래시 또는 ROM 메모리가 확장될 수 있다. 비기능적이만 오히려 안전성 지향적 목적들을 위한 메모리 비트들의 의미에서 이들 부가적인 엘리먼트들은 부분적으로 용장성인 구체예와 정식으로 비교되며, 그 불완전성에 기초하든지 또는 기초하지 않든지, 물리적 용장성의 원칙, 즉 상술한 락스텝 모드 (LSM) 에 기초하여 동작할 수 없지만, 오히려 비대칭적인 보호 구조들의 원칙들에 기초하여, 시간에 관해 필수적으로, 동작할 필요가 있다.
도 3에 도시된 바와 같은 2개의 마이크로프로세서 코어들 (CPU3 및 CPU4) 을 구비하는 듀얼 코어 마이크로프로세서와 같이 본질적으로 안전한 마이크로프로세서 모듈 (HWSAi) 은 DPM (decoupled parallel mode) 으로서 알려진 모드에서 동작한다, 즉, 서로에 대해 관계없이 상이한 프로그램 시퀀스들을 실행할 수 있다. 각각의 마이크로프로세서 코어 (CPU3 및 CPU4) 는 전용 버스 (B3 또는 B4) 를 구비하며, 이들은 인터페이스 (IF) 에 의해 접속된다. 이들 2개의 코어들 (CPU3 및 CPU4) 외에, 다른 컴포넌트들, 예컨대 메인 메모리 (RAM), 프로그램 메모리 (플래시 또는 ROM), 비교기 및 안전성 모듈들, 외부 버스들 (CAN, LIN, 플렉스레이, MOST, ISOK, 이더넷) 용 모듈들이 또한 존재한다. 보호책은 시간에 대한 필수적 매칭에 의해 달성되며 컴포넌트들의 대칭적인 그리고 비대칭적인 물리적 용장성 양자에 기초할 수도 있다.
따라서, 도 1에 도시된 마이크로프로세서 시스템 (MCUSA) 은 복수의 본질적으로 안전한 기본 엘리먼트들, 즉, 마이크로프로세서 모듈들 (HWSAi)(i=1, ... i=n) 로 이루어지는 병렬 구조를 포함하고, 마이크로프로세서 안전성 아키텍쳐이며, 이 구조는 단일 패키지 내의 적어도 몇몇의 ASIC들에 의해 또는 ASIC으로서 생성될 수 있다.
도 1에 도시된 이 마이크로프로세서 시스템 (MCUSA) 은, 하기에 설명되는 바와 같이, ASIL-D 분류에 기초한 본질적 안전성을 보장하는 하드웨어 시스템 아키텍쳐일뿐만 아니라 소프트웨어 레벨에서 이 안전성 레벨 (ASIL-D) 에 기초한 본질적 안전성을 또한 보장한다.
이와 관련하여, 도 4는, 예를 들면 도 1에 도시된 바와 같은 마이크로프로세서 시스템 (MCUSA) 의 2개의 본질적으로 안전한 마이크로프로세서 모듈들 (HWSA1 및 HWSA2) 에 대한 여러 소프트웨어 모듈들의 정적 할당 또는 분포의 예를 도시한다. 이 경우, 이들 2개의 마이크로프로세서 모듈들 (HWSA1 및 HWSA2) 은 도 2 또는 도 3에 도시된 바와 같이 설계될 수도 있다. 각각의 마이크로프로세서 모듈 (HWSA1 및 HWSA2) 에 도시된 소프트웨어 모듈들은, 예로서, 관련된 런타임 환경의 시간 축들 또는 시간 베이스들 (tHWSA1 및 tHWSA2) 에 조화하여 순차적으로 실행되며, 각 경우 "HWSA Communication" 소프트웨어 기본 모듈로 시작하고 종료한다. 이 경우, 안전성 레벨 ASIL-D에 대응하는 이들 소프트웨어 모듈들은, 즉, 예를 들면, 안전성 필수 어플리케이션들, 예컨대 ABS 또는 ESP 기능들에 대한 높은 안전성 레벨을 갖는 소프트웨어는, 특정 구체예들에서 나타내는 바와 같이, (D) 로서 표현한다.
2개의 마이크로프로세서 모듈들 (HWSA1 및 HWSA2) 에서의 소프트웨어 모듈들에 대해, 한편의 소프트웨어 기본 모듈들로서 알려진 것과 다른 한편의 소프트웨어 모듈들 사이를 구별하여 도시하는데, 즉, 예를 들면, HWSA1 또는 HWSA2, 또는 복수의 마이크로프로세서 모듈들, 즉 HWSA1 및 HWSA2로 도시하는데, 상기 소프트웨어 기본 모듈들로서 알려진 것은 2개의 마이크로프로세서 모듈들 (HWSA1 및 HWSA2) 각각에 대해 제공되며 단지 한 번만 각각 실행되고, 상기 소프트웨어 모듈은, 하나의 마이크로프로세서 모듈 상에서 복수의 용장성에 의해 정적으로 할당되고 실행된다. 이 경우, 몇몇 소프트웨어 모듈들은 심지어 중복하는 태스크들도 구비할 수도 있다.
이들 소프트웨어 기본 모듈들은 통신 소프트웨어 모듈들, 입력 적정화 소프트웨어 모듈들 및 태스크 특정 소프트웨어 모듈들이다.
전술한 "HWSA Communication" 소프트웨어 기본 모듈은 데이터가, 마이크로프로세서 시스템 (MCUSA)(도 1 참조) 용의 버스 시스템 또는 네트워크 (B) 를 통해 단방향으로 또는 양방향으로 상호 교환되는 것을 허용한다. 이것은 제어 기능들에 대한 입력 변수들, 런타임 관련 데이터 (카운터들, 상태 정보, 시스템 시간들, 등) 및 제어 기능들로부터의 결과들/출력 변수들을 포함하는 것을 의미한다.
검증된 입력 변수들을 포함할 수도 있는 제어 기능들로부터의 결과들만이 연산의 완료에 후속하여 또한 의미있게 비교될 수 있기 때문에, 제어 기능들에 대한 검증된 값들로서 포워딩될 수 있도록 하기 위해, 입력 적정화 소프트웨어 모듈들 ("HWSA1 Input Plausibilization" 및 "HWSA2 Input Plauzibilization") 은, 통신에 의해, 즉 "HWSA Communication" 소프트웨어 기본 모듈들에 의해 미리 획득된 입력 변수들을 적정화하기 위해 사용된다.
또한, 입력 적정화 소프트웨어 모듈들에서 수행되는 통신 데이터의 체크에 부가하여, 엔드-투-엔드 보호책으로서 알려지고, E2E로도 칭해지는 것을 또한 사용할 수 있는데, 이것은, 동작 원리들에 기초하여, 통신 데이터 아이템을 생성하는 제어 기능에서와 같이 빨리 데이터 아이템에 대한 분명한 보호 체크섬을 부가하고 상기 체크섬을 데이터 아이템과 함께 원자 유닛으로서 동시에 전달한다. 이 보호 체크섬은, 데이터 아이템의 올바른 전송에 대한 크로스 체크를 하기 위해 E2E 체크섬용의 공지의 연산 키들에 기초하여 데이터 아이템을 수신하는 제어 기능 또는 데이터 아이템을 수신하는 모든 제어 기능들에 의해 사용되고, 따라서, 심지어, 송신기의 일부 상의 출력 적정화 소프트웨어 모듈에서의 그리고 수신기의 일부 상의 입력 적정화 소프트웨어 모듈에서의 설계 오류로 인해 발생한 변형을 검출하고 그에 따라 적절히 대응할 수 있기 위해 제공된 수단에 의해서도 사용된다.
마이크로프로세서 모듈 (HWSA1) 및 마이크로프로세서 모듈 (HWSA2) 의 태스크 특정 (전용 태스크) 소프트웨어 기본 모듈들은, 도 4에 도시된 바와 같이, "HWSA1 Dedicated Task 1", "HWSA1 Dedicated Task 2" 및 "HWSA1 Dedicated Task 3" 또는 "HWSA2 Dedicated Task Y", "HWSA2 Dedicated Task Z" 및 "HWSA2 Dedicated Task W"로서 표기된다. 이들 소프트웨어 기본 모듈들은, 다양성과 증가된 견고성에 대해 부과되는 다른 요구 조건들을 충족하지 않고도 또는 용장성 없이 간단한 방식으로 또한 실행된다. 이들 태스크-특정 소프트웨어 기본 모듈들은 근본적으로 단 한 번만 존재하며 "전용의 방식으로" 마이크로프로세서 모듈 (HWSA1 또는 HWSA2) 상에서 실행된다.
또한, 제공되는 소프트웨어 모듈들은 출력 중재 소프트웨어 모듈들이기도 하며, "HWSA1 Output Plausibilization" 및 "HWSA2 Output Plausibilization"으로 표기되고, 이들은 모든 제어 기능들에 대한 완전한 보충에 의해 미리 결정된 조작 변수들 (manipulated variables) 또는 출력 변수들을 적정화하기 위해 사용된다. 이 경우, 기능적으로 필요한 적정화와 기능적 안전성을 위해 필요한 적정화 사이를 구별하여 도시한다. 이들 상이한 적정화들은 하기에 더 상세히 설명된다.
또한, 하나의 마이크로프로세서 모듈 상에 복수 회 위치되고/되거나 복수의 프로세서 모듈들 상에 분포된 형태로 위치되는 소프트웨어 모듈들이 존재하며, 도 4에 도시된 바와 같이 "HWSA Task Aij", "HWSA Task Bij", "HWSA Task Cij" 및 "HWSA Task Xij"로 표시된다. 이들 용장성 소프트웨어 모듈들은 동일한 태스크를 가지며, 즉 동일한 목적을 위해 주로 사용된다.
따라서, 마이크로프로세서 시스템 (MCUSA) 에 대한 결과는 전체로서 증가된 이용가능성 및 증가된 안전성이다.
이러한 소프트웨어 모듈들이 복수의 마이크로프로세서 모듈들 (HWSAi) 에 분포되는 경우, 하드웨어 고장의 면에서 더 높은 견고성 요구 및 더 높은 이용가능성이 충족된다.
하나의 마이크로프로세서 모듈 (HWSA1 또는 HWSA2) 내에서의 복수 회에 기초한 그리고 복수의 마이크로프로세서 모듈들 (HWSA1 및 HWSA2) 에 대한 이들 둘 다에 대한 이러한 소프트웨어 모듈들의 정적 할당의 경우, "결함들" 또는 그 밖의 "설계 오류들"의 면에서의 증가된 안전성 요구 조건들이 충족된다.
따라서, 마이크로프로세서 모듈 (HWSA2) 에 할당된 2개의 소프트웨어 모듈들 "HWSA2 Task X13" 및 "HWSA2 Task X23"들은, 근본적으로 동일한 알고리즘을 갖는 용장성 설계를 가지며, 양 소프트웨어 모듈들은 동일한 프로그래머A에 의해 프로그래밍되지만, 그러나 소프트웨어 모듈 "HWSA2 Task X23"은 소프트웨어 모듈 "HWSA Task X13"과는 상이하게 컴파일되거나 어셈블되며, 이것은 프로그램 코드 레벨에서 근본적으로 하나의 아이덴티티로 나타나게 되지만, 상이한 번역은 시스템적 오류들이 배제될 수 있다는 것을 의미한다.
또한, 2개의 용장성 소프트웨어 모듈들 "HWSA Task C33" 및 "HWSA Task C23"은 2개의 마이크로프로세서 모듈들 (HWSA1 및 HWSA2) 에 분포되며, 양 소프트웨어 모듈들은 동일한 프로그래머A에 의해 똑같이 프로그래밍되지만, 소프트웨어 모듈 "HWSA Task C23"은 소프트웨어 모듈 "HWSA Task C33"과는 상이하게 컴파일되거나 어셈블되며, 이것은 프로그램 코드 레벨에서 근본적으로 하나의 아이덴티티로 나타나게 되지만, 상이한 번역은 시스템적으로 오류들이 배제될 수 있음을 의미한다.
이들 용장성 소프트웨어 모듈들 "HWSA Task X13" 및 "HWSA Task X23" 또는 "HWSA Task C33" 및 "HWSA Task C23"은 따라서 동일하거나 또는 단지 약간 수정된 알고리즘을 갖는다.
마지막으로, 다양화된 용장성을 갖는 소프트웨어 모듈들이 제공되는데 이들은 동일한 마이크로프로세서 모듈 (HWSA1 또는 HWSA2) 에 분포된다.
도 4가 도시하는 바와 같이, 이들은 마이크로프로세서 모듈 (HWSA1) 에 대해 할당된 2개의 소프트웨어 모듈들 "HWSA Task A12" 및 "HWSA Task A22"이며, 이들은 2명의 상이한 프로그래머들 (프로그래머A 및 프로그래머B) 에 의해 프로그래밍된다. 마이크로프로세서 모듈 (HWSA2) 상의 2개의 용장성 소프트웨어 모듈들 "HWSA2 Task X13" 및 "HWSA2 Task X23"은 동일한 마이크로프로세서 모듈 (HWSA2) 상에 존재하는 다양화된 용장성을 갖는 소프트웨어 모듈 "HWSA Task X33"을 또한 구비한다. 이러한 소프트웨어 모듈들은 구조의 면에서 아주 크게 변한다.
다양화된 용장성을 갖는 이러한 소프트웨어 모듈들도 또한 상이한 마이크로프로세서 모듈들에 분포된다. 따라서, 도 4는 마이크로프로세서 모듈 (HWSA1) 에 대해 할당되고 프로그래머A에 의해 프로그래밍된 소프트웨어 모듈 "HWSA Task B12"와, 마이크로프로세서 모듈 (HWSA2) 에 대해 할당되고 다양화된 용장성을 가지며 다른 프로그래머B에 의해 프로그래밍된 소프트웨어 모듈 "HWSA Task B22"를 나타낸다. 마이크로프로세서 모듈들 (HWSA1 및 HWSA2) 양자에 분포되고 프로그래머A에 의해 프로그래밍된 2개의 용장성 소프트웨어 모듈들 "HWSA Task C23" 및 "HWSA Task C33"은 마이크로프로세서 모듈 (HWSA1) 상에 존재하는 소프트웨어 모듈 "HWSA Task C13"을 또한 구비하고, 상기 소프트웨어 모듈은 다양화된 용장성을 가지며 다른 프로그래머B에 의해 프로그램된 것이다. 이러한 소프트웨어 모듈들은 구조의 면에서 크게 변한다.
다양화된 용장성을 갖는 소프트웨어 모듈들의 수 (m) 는 마이크로프로세서 모듈들 (HWSAi)(i=1, ... n) 의 수 (n) 보다 더 클 것이다 (n<m). 이 경우, n개의 소프트웨어 모듈들의 직렬화가 단일의 마이크로프로세서 모듈 (HWSAi) 상에서 수행되는 것이 가능하다. 이 경우 기저의 마이크로프로세서 모듈에 대한 충분한 연산 능력에 대해 선행 조건이 존재할 수도 있고, 증가된 안전성은 순차적으로 연산되고 궁극적으로 - 그들의 출력 신호들의 면에서 - 적정화된 소프트웨어 모듈들에 의해 달성될 수 있음은 말할 것도 없다. 그러나, 기초가 되는 마이크로프로세서 모듈의 고장의 면에서의 이용가능성은 모든 소프트웨어 모듈이 도입되는 경우에는 증가되지 않으며, 이들 소프트웨어 모듈이 용장적으로 프로그래밍되는지 또는 다르게 해석되는지의 여부는 문제가 되지 않는다. 이용가능성은 용장성 소프트웨어 모듈들이 상이한 마이크로프로세서 모듈들에 다양화된 방식으로 통합될 때 증가된다.
동일한 목적을 서비스하며 의도된 바와 같이 완전히 상이한 알고리즘을 갖는 다양화된 용장성을 갖는 이러한 소프트웨어 모듈들 "HWSA Task Aij", "HWSA Task Bij", "HWSA Task Cij", 및 "HWSA2 Task Xij"는 출력 변수들 또는 설계에 의해 용장성인 방식으로 연산될 제어 기능들로부터의 결과들에 대한 토대를 제공하여, 설계 오류들의 면에서 보호책을 보장한다.
상대적으로 높은 이용가능성은 마이크로프로세서 모듈 (HWSAi) 의 고장의 면에서 마이크로프로세서 시스템 (MCUSA) 에 의한 오차에서 명확해지는데, 오류가 검출되거나 또는 하나의 마이크로프로세서 모듈 (HWSAi) 이 고장나는 그러한 경우, 다른 마이크로프로세서 모듈 (HWSAj)(i□j) 이 적절한 소프트웨어 모듈을 실행하는 것이 가능하기 때문이다.
증가된 기능적 안전성은, 상이한 마이크로프로세서 모듈들 (HWASi) 상에서 실행되는 다양화된 용장성을 갖는 소프트웨어 모듈들에 의해 달성되며, 이것은 마이크로프로세서 모듈들 (HWSAi) 의 본질적 안전성의 결과로서 하드웨어 레벨에서의 보호와 소프트웨어 모듈들의 다양화된 용장성의 결과로서, 즉 동일하지 않은 그 알고리즘의 결과로서 소프트웨어 레벨에서의 보호 양자를 보장한다.
도 4에 도시된 마이크로프로세서 모듈 (HWSA1 또는 HWSA2) 상의 소프트웨어 모듈들 "HWSA1 Output Plauzibilization" 및 "HWSA2 Output Plauzibilization"으로 돌아간다.
소프트웨어 모듈들 "HWSA1 Output Plauzibilization" 및 "HWSA2 Output Plauzibilization"에 의한 기능적으로 필요한 적정화의 경우, 제어 기능들을 수행하는 특정 소프트웨어 모듈들은 우선시되고 다른 것들은 늦춰진다. 예로서, ESP 제어 기능 및 ABS 제어 기능과 관련하여, ESP 중재 (intervention) 의 제어 기능이 ABS 중재의 기능보다 우세하기 때문에, 따라서 우선순위를 가지고 먼저 수행된다. 이러한 기능적 적정화는 차량의 핸들링의 이점을 위해 사용된다.
소프트웨어 모듈들 "HWSA1 Output Plauzibilization" 및 "HWSA2 Output Plauzibilization"을 사용하는 적정화는, 기능적 안전성의 관점에서 필요하며, 용장적으로 또는 의사-용장적으로 (quasi-redundantly) 실행되는 소프트웨어 모듈들로부터의 결과를 포함하고, 정적 할당에 따라, 서로 비교되고 평가되고 있는 상이한 마이크로프로세서 모듈들 (HWSAi) 에 분포된다. 따라서, 2개의 독립적인 ESP 제어 기능들 (즉 동일한 목적을 서비스하며, 즉 차량에 "ESP" 기능을 제공한다) 로부터의 결과들은 서로 비교될 것이다. 도 4에 도시된 예에서, 예를 들면, 소프트웨어 모듈 "HWSA Task Bij"는 두 번, 즉 마이크로프로세서 모듈 (HWSA1) 상의 "HWSA Task B12"로서 그리고 마이크로프로세서 모듈 (HWSA2) 상의 "HWSA Task B22"로서 구현된다. 이 소프트웨어 모듈에 대한 관련 입력 데이터의 일관성은 시간 α (도 4 참조) 에서 이전에 실행된 소프트웨어 모듈 "HWSA Communication"에 의해 보장된다. 양 사이드들에 관한 비교 또는 가중치 부여 (weighting) 를 위한 연산된 출력 데이터의 존재는 시간 β에서 소프트웨어 모듈 "HWSA Communication"에 의해 보장된다. 마이크로프로세서 모듈 (HWSA1 및 HWSA2) 양자에 관한 달성된 비교 결과들 또는 가중치 부여 결과들의 존재는 시간 γ에서 통신 모듈 "HWSA Communication"에 의해 보장된다.
또한, 도 1에 도시된 마이크로프로세서 시스템 (MCUSA) 은 소프트웨어 모듈들에 관해서 동적 프로세싱을 위해 설계된다.
만약 예를 들어 소프트웨어 모듈 "HWSA1 Dedicated Task 3"이 고장나고, 따라서 부기능 또는 서브태스크가 수행될 수 없고 이 서브태스크 또는 부기능이 마이크로프로세서 모듈 (HWSA2) 의 소프트웨어 모듈 "HWSA2 Dedicated Task Z" 상의 프로그램 세그먼트로서 또한 존재하면, 이 "HWSA2 Dedicated Task Z" 소프트웨어 모듈은 그 역할에 따라 백업 소프트웨어 모듈로서 활성화되고 그 백업 루틴들이 수행된다.
동적 프로세싱은, 상태, 즉 마이크로프로세서 시스템의 동작의 모드들 또는 소프트웨어 또는 하드웨에에 관한 상태에 따라, 특별한 마이크로프로세서 모듈들 (HWSAi) 또는 특별한 소프트웨어 모듈들이, 필요에 따라 실행되는 것을 의미한다. 이것에 대한 선행 조건은, 도 4와 관련하여 설명된 바와 같이, 자연히 적절한 소프트웨어 모듈들의 정적 할당이다.
분포된 또는 다양화된 소프트웨어 모듈들의 세트는 근본적으로 두 형태들을 포함한다:
a) 향상된 기능적 안전성을 위해 사용되는 것과 같은, 즉 잇따른 결과 비교가 마이크로프로세서 모듈들 (HWSAi) 에서 수행되는 소프트웨어 모듈들, 그리고
b) 향상된 이용가능성을 위해 사용되며, 유익하다면, 정규 동작 모드에서 실행 시간과 리소스들을 절약하기 위해 이상적으로는 택일적으로 실행될 수 있거나 또는 동적으로 시작될 수 있는 것과 같은 소프트웨어 모듈들.
상술한 바와 같이, "설계 오류들"의 면에서 알고리즘들 또는 소프트웨어를 보호하는 이점을 위해 다양화된 용장성을 갖는 소프트웨어 모듈들이 도입된다.
다양화된 용장성을 갖는 이들 소프트웨어 모듈들은 상이한 마이크로프로세서 모듈들 (HWSAi) 상에 반드시 수용될 필요는 없다. 이들 소프트웨어 모듈들은 전술한 카테고리 내에 있다. 다양화된 용장성을 갖는 이들 소프트웨어 모듈들은 교대적인 관점에서 용장적으로 또한 개발되고, 상이한 팀에 의해 설계되며 상이한 프로그래머에 의해 구현된다. 반복되는 특정 "설계 오류"의 확률은 결과적으로 감소된다.
예로서, 설계 오류들은 포함된 상태 머신들, 한 동작 모드에서 다른 동작 모드로의 변화에 따른 상태 변이들, 또는 오류 리액션 프로시져들 등의 구체예의 결과로서 발생할 수 있다. 특히, 예를 들면, 프로그래머(들)가 상호 의존적인 상이한 동시 측정된 또는 제어된 변수들 또는 실제 상태들과 그리고 또한 조작된 또는 제어값들 또는 목표 상태들을, 즉 결합 분석에 관해서 또는 어떤 순서, 즉, 시퀀스에 관해 알고리즘으로 매핑하며 알고리즘이 어떻게 작용할지, 대안적인 식들을 어떻게 실행할지 또는 상이한 안전성 레벨들로 어떻게 점프할지가 예정된 프로그램 세그먼트들 내에서, 무한히 어렵고 복잡한 퍼뮤테이션들의 트리가 멀티채널의 결합 분석을 사용하여 수행될 멀티레벨의 시퀀스의 고려를 통해 발생하게 된다. 이들 환경들은, 아마 작고, 분리된 또는 어쩌면 -발생시- 치명적인 프로그램 섹션들 상으로 스며든 설계 오류들에 적합한데, 상기 프로그램 섹션들의 그다지 확장성이 있지 않은 성질 때문에, 상기 프로그램 섹션들은 개발 테스트들 및/또는 연속적인 실행들을 사용하여 미리 완전히 식별하는 것은 어렵다.
하드웨어 고장들의 면에서 마이크로프로세서 시스템 (MCUSA) 의 견고성의 이점을 위해, 상술된 바와 같이, 여러 마이크로프로세서 모듈들 (HWSAi) 에 대해 소프트웨어 모듈들이 분포되거나 다양화될 수 있다. 이들 소프트웨어 모듈들은 전술한 카테고리 b) 내에 있다. 따라서, 안전성 이유들로 인해, 이들 소프트웨어 모듈들로부터의 결과들의 상호 비교를 포함하는 영구적이고 동시적 실행이 불필요하다. 결과적으로 견고성도 향상되지 않을 것이다. 한편, 다양화된 소프트웨어 모듈들의 필요 기반의 실행은 마이크로프로세서 모듈들 (HWSAi) 의 런타임 예약들의 보다 효율적인 사용을 의미할 것이다. 필요는 특정 동작 상황으로의 진입을 통해 발생할 수 있다. 이 특별한 동작 상황은 마이크로프로세서 모듈 (HWSAi) 에서의 검출된 오류일 수도 있고, 이것은, 서비스가용성을 일시적으로 제한하는 진단 프로시져의 특별한 자체-교정일 수도 있거나, 또는 잇따른 현재의 저전압 상황일 수도 있다. 백업 소프트웨어 모듈들에 의해 커버되는 완전한 기능성을 반드시 가질 필요는 없다. 백업 소프트웨어 모듈들은 더 슬림인 것으로 판명될 수 있고 코드 사이즈와 런타임 소비의 관점에서 더 작게 될수도 있다. 효율성의 이유들로 인해, 백업 소프트웨어 모듈들을 동적으로 실행하는 마이크로프로세서 모듈 (HWSAi) 은, 백업 소프트웨어 모듈들이 프로세싱되는 것을 보장할 수 있기 위해, 자신의 로컬한 비필수적 소프트웨어 모듈들의 세트를 동적으로 셧다운할 수 있다.
또한, 도 1에 도시된 마이크로프로세서 시스템 (MCUSA) 은 시간에 걸쳐 연속적으로 적정화를 제공한다, 즉 분포된 소프트웨어 모듈들로부터의 결과들의 잇따른 비교를 제공한다.
각각의 마이크로프로세서 모듈 (HWSAi) 상에 존재하며 분산 방식으로 연산된 소프트웨어 모듈들로부터의 관련 입력 데이터, 결과들과 부분적 결과들 및 또한 출력 데이터를 평가하기 위한 목적을 위해, 이들은, 상술된 시간들 (α,β, 및 γ) 에 대해 도 4와 연계하여 설명된 바와 같이, 상이한 시간들 (도 4에 도시된 바와 같은 α,β, 및 γ) 에서 적절한 방식으로 전달되는데, 상기 데이터와 결과들은 기능적 안전성을 위해 필요하다. 그러므로, 통신될 마이크로프로세서 시스템 (MCUSA) 내의 분포된 용장성 마이크로프로세서 모듈들 (HWSAi) 의 서비스가용성 및 런타임에서 증명될 알고리즘에서의 설계 오류들의 결과로서 발생한 프로그램 취약점들의 배제에 관한 분포된 소프트웨어 모듈들의 서비스가용성 둘 다를 허용하는 수단이 제공된다.
요약하면, 본 발명에 따른 마이크로프로세서 시스템 (MCUSA) 은 하기의 이점들에 의해 구별된다:
- 하드웨어 및 소프트웨어 둘 다에 관한 전체 임베디드 시스템에 대해 향상된 견고성을 나타낸다:
- 하나의 마이크로프로세서 모듈이 고장나면, 다른 마이크로프로세서 모듈들이 액티브로 유지되고; 소프트웨어 모듈들은 부분적으로 또는 전체적으로 계속 실행된다. 또한, 다른 마이크로프로세서 모듈 상의 다른 소프트웨어 모듈의 백업 루틴들이 제어를 책임진다.
- 하나의 소프트웨어 모듈이 실패하면, 다른 소프트웨어 모듈들은 액티브로 유지된다. 용장성에 기초하여 동일한 소프트웨어 모듈이 재시작되거나 또는 재개시되는 것이 가능하다. 또한, 동일한 또는 다른 마이크로프로세서 모듈 (HWSAi) 상의 다른 소프트웨어 모듈의 백업 루틴들이 시작될 수 있다.
- 오류의 경우, 하드웨어 또는 소프트웨어에 의한 클리어한 오류 관련성에 대한 기회:
- 하나의 마이크로프로세서 모듈 (HWSAi) 이 고장나면, 이것은, 예를 들면, 레지스터, 인터럽트, 익셉션 또는 신호 또는 핀을 자동적으로 설정하는 모니터링 하드웨어의 일부에 의해, 명백히 표시된다;
- 하나의 소프트웨어 모듈이 고장나면, 이것은 다른 소프트웨어 모듈에 대한 결과들과의 비교 또는 평가에 의해 명백히 확립된다; 그리고,
- 마이크로프로세서 모듈 (HWSAi) 또는 소프트웨어 모듈이 고장났는지의 여부의 해석시 원인의 인식은 명백히 가능한데, 그 이유는 상응하여 본질적으로 안전한 설계의 인프라스트럭쳐 모듈들 (RAM, FLASH, 버스들 등) 을 구비하는 본질적으로 안전한 마이크로프로세서 모듈들 (HWSAi) 이 사용되기 때문이며, 이것은 네가티브한 결과 비교가 나타나는 경우, 즉, 용장성 소프트웨어 모듈들로부터의 결과들이 불일치하는 경우, 마이크로프로세서 모듈들 (HWSAi) 의 서비스가용성이 동시에 보장되는 동안 소프트웨어 모듈들은 서비스 불능인 것으로 분류될 수 있다. 선택사항적으로, 머조리티 형성에 의해 문제가 있는 소프트웨어 모듈을 명확히 식별하고 그럼에도 불구하고 안전한 기능 실행을 유지하기 위해서 소프트웨어 모듈들의 2중 또는 복수의 용장성을 사용하는 것이 가능하다.
- 동적 연산 능력 할당:
- 하나의 마이크로프로세서 모듈 (HWSAi) 이 고장나면, 다른 마이크로프로세서 모듈 (HWSAj) 상의 다른 소프트웨어 모듈의 백업 루틴들이 제어의 책임을 지고: 그리고
- 하나의 소프트웨어 모듈이 고장나면, 동일한 또는 다른 마이크로프로세서 모듈 (HWSAi) 상의 다른 소프트웨어 모듈의 백업 루틴들이 시작된다.
- 마이크로프로세서 모듈 (HWSAi) 및 소프트웨어 모듈들을 포함하는 임베디드된 전체 시스템의 플렉시블한 설계:
- 마이크로프로세서 모듈을 넘어서는 소프트웨어 모듈들의 휴대성의 용이성과 구조화된 성질이 "설계에 의해" 암시적으로 달성될 수 있다.
마이크로프로세서 시스템 (MCUSA) 은 싱글 패키지의 ASIC로서 설계될 수 있다. 또한, 자연적으로, 마이크로프로세서 시스템 (MCUSA) 이 두 개 이상의 ASIC들 상에서 구현될 수 있고 그후 싱글 IC 패키지에 결합될 수 있거나 또는 각각의 ASIC이 개별적인 IC 패키지로 패키징될 수 있다.
또한, 마이크로프로세서 모듈 (HWSAi) 의 운영 체계들이 동일할 수도 있거나 또는 상이한 성질을 가질 수 있으며, 또한 여러 마이크로프로세서 모듈들 (HWSAi) 에 대해 연산 부하를 정적으로, 준-동적으로 또는 완전히 동적으로 분포하는 단일의 운영 체계가 사용될 수도 있다.
마지막으로, 타임-슬라이스에 기반하여 동작하는 마이크로프로세서 모듈들 (HWSAi) 의 이들 운영 체계들은 서로 동기화되도록 설계될 수 있고, 즉 정의된 위상 동기 상태를 서로에 대하여 채택할 수 있고, 이것은 수신기의 부분 상에서의 타임 슬라이스 (루프) 의 유익한 배치와 결합하여 외부 또는 온칩의 버스 시스템들을 사용하여 등거리 시간들에서 송신기에 의한 타임스탬프들의 전송에 의해 달성될 수 있다.

Claims (16)

  1. 소프트웨어 모듈들과 관련되는 태스크들 또는 기능들의 조정 및/또는 제어의 일부로서 적어도 부분적으로 안전성이 중요한 소프트웨어 모듈들을 실행하며, 적어도 2개의 마이크로프로세서 코어들 (CPUi) 을 구비하는 적어도 하나의 본질적으로 안전한 마이크로프로세서 모듈 (HWSAi) 을 포함하는 마이크로프로세서 시스템 (MCUSA) 으로서,
    적어도 2개의 마이크로프로세서 코어들 (CPU1, CPU2; CPU3, CPU4) 을 구비하는 적어도 하나의 다른 본질적으로 안전한 마이크로프로세서 모듈 (HWSAi, i=1, ... n) 이 제공되고, 상기 적어도 2개의 마이크로프로세서 모듈들 (HWSA1, HWSA2) 은 버스 시스템 (B) 에 의해 연결되고,
    적어도 부분적으로 중복하는 (overlapping) 기능들을 수행하는 적어도 2개의 소프트웨어 모듈들이 제공되고,
    적어도 부분적으로 중복하는 기능들을 구비하는 이들 소프트웨어 모듈들은 마이크로프로세서 모듈 (HWSA1, HWSA2) 에 또는 적어도 2개의 마이크로프로세서 모듈들 (HWSA1, HWSA2) 에 분포되고, 그리고
    동일한 기능들을 위한 상기 소프트웨어 모듈들에 의해 생성된 결과들을 비교 및/또는 중재하는 수단이 소프트웨어 및/또는 하드웨어 오류들을 인식할 목적으로 제공되는 것을 특징으로 하는 마이크로프로세서 시스템 (MCUSA).
  2. 제 1항에 있어서,
    오류가 있는 소프트웨어 모듈이 인식되면, 상기 오류는, 상기 오류가 있는 소프트웨어 모듈을 중복하는 기능으로서 상기 오류가 있는 소프트웨어 모듈의 기능을 적어도 구비하는 다른 소프트웨어 모듈에 의해 상기 오류가 있는 소프트웨어 모듈의 기능이 수행되도록 하는 것에 의해 수정되는 것을 특징으로 하는 마이크로프로세서 시스템 (MCUSA).
  3. 제 1항 또는 제 2항에 있어서,
    오류가 있는 마이크로프로세서 모듈 (HWSA1, HWSA2) 이 인식되면, 상기 오류는, 상기 오류가 있는 마이크로프로세서 모듈 (HWSA1, HWSA2) 의 기능을 수행하도록 된 다른 마이크로프로세서 모듈 (HWSA1, HWSA2) 에 의해 수정되고,
    상기 다른 마이크로프로세서 모듈 (HWSA1, HWSA2) 상에는 상기 오류가 있는 마이크로프로세서 모듈 (HWSA1, HWSA2) 의 기능을 수행하는데 필요한 소프트웨어 모듈이 위치되는 것을 특징으로 하는 마이크로프로세서 시스템 (MCUSA).
  4. 제 1항 내지 제 3항 중 어느 한 항에 있어서,
    안전성 관련 기능을 수행하기 위해, 근본적으로 용장성 소프트웨어 (redundant software) 를 구비하며 하나 이상의 마이크로프로세서 모듈들 (HWSA1, HWSA2) 에 대해 복수 회 분포되는 소프트웨어 모듈들이 제공되는 것을 특징으로 하는 마이크로프로세서 시스템 (MCUSA).
  5. 제 1항 내지 제 4항 중 어느 한 항에 있어서,
    안전성 관련 기능을 수행하기 위해, 다양화된 용장성을 갖는 소프트웨어를 구비하며 하나 이상의 마이크로프로세서 모듈들 (HWSA1, HWSA2) 에 대해 복수 회 분포되는 소프트웨어 모듈들이 제공되는 것을 특징으로 하는 마이크로프로세서 시스템 (MCUSA).
  6. 제 1항 내지 제 5항 중 어느 한 항에 있어서,
    기본 기능들을 수행하기 위한 목적을 위해, 각각의 마이크로프로세서 모듈 (HWSA1, HWSA2) 은 소프트웨어 기본 모듈들, 바람직하게는 통신 소프트웨어 모듈들, 입력 적정화 (plausibilization) 소프트웨어 모듈들 및 태스크 특정 소프트웨어 모듈들을 구비하며,
    이들 모듈들은 상기 마이크로프로세서 모듈에 각각 한 번 위치되는 것을 특징으로 하는 마이크로프로세서 시스템 (MCUSA).
  7. 제 6항에 있어서,
    상기 제공된 소프트웨어 기본 모듈은 안전성 관련 기능을 수행하는 용장성 및/또는 다양화된 용장성 (diversified-redundant) 소프트웨어 모듈들로부터의 결과들에 대한 중재를 수행하고 바람직하게는 적정성 (plausibility) 체크도 또한 수행하는 출력 중재 소프트웨어 모듈인 것을 특징으로 하는 마이크로프로세서 시스템 (MCUSA).
  8. 제 1항 내지 제 7항 중 어느 한 항에 있어서,
    적어도 하나의 마이크로프로세서 모듈 (HWSA1)의 상기 마이크로프로세서 코어들 (CPU1, CPU2) 은 락스텝 모드 (LSM; lockstepped mode) 에서 동작하는 것을 특징으로 하는 마이크로프로세서 시스템 (MCUSA).
  9. 제 1항 내지 제 8항 중 어느 한 항에 있어서,
    적어도 하나의 마이크로프로세서 모듈 (HWSA2)의 상기 마이크로프로세서 코어들 (CPU3, CPU4) 은 디커플링된 병렬 모드 (DPM; decoupled parallel mode) 에서 동작하는 것을 특징으로 하는 마이크로프로세서 시스템 (MCUSA).
  10. 제 1항 내지 제 9항 중 어느 한 항에 있어서,
    상기 마이크로프로세서 시스템 (MCUSA) 은 하나의 마이크로프로세서 코어를 구비하는 적어도 하나의 마이크로프로세서 (CPU)(싱글 코어 프로세서) 를 포함하는 것을 특징으로 하는 마이크로프로세서 시스템 (MCUSA).
  11. 제 1항 내지 제 10항 중 어느 한 항에 있어서,
    상기 마이크로프로세서 모듈들 (HWSAi, i=1, ... n) 은 외부 확장성을 위한 입/출력 인터페이스를 구비하는 적어도 하나의 버스 시스템을 구비하는 것을 특징으로 하는 마이크로프로세서 시스템 (MCUSA).
  12. 제 1항 내지 제 11항 중 어느 한 항에 있어서,
    상기 마이크로프로세서 모듈들 (HWSAi, i=1, ... n) 은 동일한 운영 체계들을 구비하는 것을 특징으로 하는 마이크로프로세서 시스템 (MCUSA).
  13. 제 12항에 있어서,
    상기 운영 체계는 기능을 수행하기 위한 연산 부하를 복수의 마이크로프로세서 모듈들 (HWSAi, i=1, ... n) 에 분포할 수 있도록 설계되는 것을 특징으로 하는 마이크로프로세서 시스템 (MCUSA).
  14. 제 1항 내지 제 13항 중 어느 한 항에 있어서,
    상기 마이크로프로세서 모듈들 (HWSAi, i=1, ... n) 중 몇몇은 동기화된 타임 슬라이스 기반의 (time-slice-based) 운영 체계들을 구비하는 것을 특징으로 하는 마이크로프로세서 시스템 (MCUSA).
  15. 제 1항 내지 제 14항 중 어느 한 항에 있어서,
    상기 마이크로프로세서 모듈들 (HWSAi, i=1, ... n) 은 공통 패키지를 갖는 ASIC으로서 적어도 어느 정도 설계되는 것을 특징으로 하는 마이크로프로세서 시스템 (MCUSA).
  16. 브레이크 제어 및 조정을 위해 바람직하게 제공되는 전자적 차량 컨트롤러에서의 제 1항 내지 제 15항 중 어느 한 항에서 기재된 마이크로프로세서 시스템 (MCUSA) 의 사용.
KR1020137015830A 2010-11-19 2011-11-18 오류 허용 아키텍쳐를 갖는 마이크로프로세서 시스템 KR20130119452A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
DE102010044191 2010-11-19
DE102010044191.0 2010-11-19
DE102011086530.6 2011-11-17
DE102011086530A DE102011086530A1 (de) 2010-11-19 2011-11-17 Mikroprozessorsystem mit fehlertoleranter Architektur
PCT/EP2011/070414 WO2012066108A1 (de) 2010-11-19 2011-11-18 Mikroprozessorsystem mit fehlertoleranter architektur

Publications (1)

Publication Number Publication Date
KR20130119452A true KR20130119452A (ko) 2013-10-31

Family

ID=46021502

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137015830A KR20130119452A (ko) 2010-11-19 2011-11-18 오류 허용 아키텍쳐를 갖는 마이크로프로세서 시스템

Country Status (6)

Country Link
US (1) US20130268798A1 (ko)
EP (1) EP2641176B1 (ko)
KR (1) KR20130119452A (ko)
CN (1) CN103262045B (ko)
DE (1) DE102011086530A1 (ko)
WO (1) WO2012066108A1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150091013A (ko) * 2014-01-30 2015-08-07 로베르트 보쉬 게엠베하 멀티 코어 프로세서 시스템 내에서 상이한 안전 단계를 갖는 소프트웨어의 공존 방법
CN107783414A (zh) * 2016-08-25 2018-03-09 通用汽车环球科技运作有限责任公司 具有动态容错要求的系统的协调多模式分配和运行时切换
KR20180043322A (ko) * 2015-08-24 2018-04-27 로베르트 보쉬 게엠베하 차량의 전자 회로 유닛의 상태 모니터링 방법 및 그 장치
WO2018128204A1 (ko) * 2017-01-06 2018-07-12 주식회사 알티스트 파티셔닝 기술을 이용하여 lsm 및 dpm을 동시에 사용할 수 있는 멀티코어 시스템
KR20200002925A (ko) * 2017-04-17 2020-01-08 모빌아이 비젼 테크놀로지스 엘티디. 주행 관련 시스템을 포함하는 보안 시스템
WO2020123159A1 (en) * 2018-12-12 2020-06-18 Intel Corporation Hardware lockstep checking within a fault detection interval in a system on chip
US11176395B2 (en) 2018-11-30 2021-11-16 Electronics And Telecommunications Research Institute Image recognition processor including functional safety processor core and operation method thereof

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011084534A1 (de) * 2010-10-18 2012-04-19 Continental Teves Ag & Co. Ohg Fehlersichere Parkbremse für Kraftfahrzeuge
DE102012218363A1 (de) * 2012-10-09 2014-04-10 Continental Automotive Gmbh Verfahren zur Steuerung eines getrennten Ablaufs von verknüpften Programmblöcken und Steuergerät
EP2813949B1 (en) * 2013-06-11 2019-08-07 ABB Schweiz AG Multicore processor fault detection for safety critical software applications
DE102013218814A1 (de) * 2013-09-19 2015-03-19 Siemens Aktiengesellschaft Verfahren zum Betreiben eines sicherheitskritischen Systems
DE102014004110A1 (de) 2014-03-21 2015-09-24 Wabco Gmbh Verfahren zum Betrieb eines autonom arbeitenden Fahrsicherheits- oder Fahrerassistenzsystems eines Kraftfahrzeugs
US9410554B2 (en) * 2014-04-04 2016-08-09 Solar Turbines Incorporated Controlling a gas compressor having multiple magnetic bearings
DE102014212384A1 (de) * 2014-06-27 2015-12-31 Robert Bosch Gmbh Vorrichtung und Verfahren zum Betreiben eines Fahrzeugs
US9956973B2 (en) * 2014-07-07 2018-05-01 Westinghouse Air Brake Technologies Corporation System, method, and apparatus for generating vital messages on an on-board system of a vehicle
US10063370B2 (en) 2014-09-11 2018-08-28 Infineon Technologies Ag Method and device for checking an identifier
US9699184B2 (en) * 2014-09-11 2017-07-04 Infineon Technologies Ag Method and device for processing data
DE102014219286A1 (de) 2014-09-24 2016-03-24 Continental Automotive Gmbh Steuergerät und Verfahren zur Absicherung von Daten
US9582376B2 (en) 2014-11-14 2017-02-28 Invensys Systems, Inc. Unified communications module (UCM)
DE102015204337A1 (de) 2015-03-11 2016-09-15 Siemens Aktiengesellschaft Sicherheitsrelevantes Computersystem
US9694765B2 (en) * 2015-04-20 2017-07-04 Hitachi, Ltd. Control system for an automotive vehicle
US9672095B2 (en) 2015-09-21 2017-06-06 Nxp Usa, Inc. Safety level specific error response scheme for mixed criticality systems
DE102015218898A1 (de) * 2015-09-30 2017-03-30 Robert Bosch Gmbh Verfahren zur redundanten Verarbeitung von Daten
CN108292251A (zh) * 2015-12-03 2018-07-17 三菱电机株式会社 复用系统
GB2545897B (en) * 2015-12-21 2018-02-07 Advanced Risc Mach Ltd Asymmetric coherency protocol
US9996431B2 (en) * 2016-03-23 2018-06-12 GM Global Technology Operations LLC Architecture and apparatus for advanced arbitration in embedded controls
US10037016B2 (en) * 2016-03-23 2018-07-31 GM Global Technology Operations LLC Hybrid dual-duplex fail-operational pattern and generalization to arbitrary number of failures
US10042693B2 (en) * 2016-07-12 2018-08-07 Infineon Technologies Ag Diverse integrated processing using processors and diverse firmware
EP3279830B1 (en) * 2016-08-02 2020-10-28 Veoneer Sweden AB A vision system and method for a motor vehicle
DE102017201032A1 (de) 2017-01-23 2018-05-03 Zf Friedrichshafen Ag Redundante Prozessorarchitektur
US11214273B2 (en) * 2017-06-23 2022-01-04 Nvidia Corporation Method of using a single controller (ECU) for a fault-tolerant/fail-operational self-driving system
US10289404B2 (en) 2017-07-25 2019-05-14 Aurora Labs Ltd. Detecting anomalies using real-time ECU processing activity
US10800264B2 (en) 2017-09-15 2020-10-13 Nio Usa, Inc. System and method for providing ASIL D fail operational power systems in automated vehicle applications
US10857889B2 (en) * 2017-10-04 2020-12-08 Nio Usa, Inc. Highly-integrated fail operational e-powertrain for autonomous driving application
DE102017218643A1 (de) 2017-10-19 2019-04-25 Volkswagen Aktiengesellschaft Funktionsmodul, Steuereinheit für ein Betriebsassistenzsystem und Arbeitsvorrichtung
KR102482143B1 (ko) * 2018-01-30 2022-12-29 에이치엘만도 주식회사 Ecu 및 ecu 동작 방법
CN108920409B (zh) * 2018-06-22 2022-09-02 阜阳师范学院 一种实现容错功能的异构多核处理器组织结构
US10853180B2 (en) * 2018-10-09 2020-12-01 EMC IP Holding Company LLC Automatically setting a dynamic restore policy in a native cloud environment
US10936444B2 (en) 2018-10-26 2021-03-02 EMC IP Holding Company LLC Smart dynamic restore for Kubernetes based applications
FR3096326B1 (fr) * 2019-05-23 2022-10-28 Safran Landing Systems Système de freinage d’aéronef avec dispositifs de commande dissimilaires et module logiciel utilisé en cas de défaillance
IT201900018362A1 (it) * 2019-10-10 2021-04-10 Texa Spa Metodo e sistema di controllo di almeno due motori elettrici di trazione di un veicolo
DE102019218718B4 (de) * 2019-12-02 2023-11-16 Volkswagen Aktiengesellschaft Steuerungssystem zur Steuerung eines Betriebs eines selbstfahrenden Fahrzeugs sowie Kraftfahrzeug
CA3157095A1 (en) 2019-12-09 2021-06-17 Alon Green Method and system for high integrity can bus traffic supervision in safety critical application
DE102020200141A1 (de) * 2020-01-08 2021-07-08 Zf Friedrichshafen Ag Fehlertolerantes Regelsystem
DE102020200144A1 (de) * 2020-01-08 2021-07-08 Zf Friedrichshafen Ag Emuliertes redundantes Regelsystem
CN112180712A (zh) * 2020-09-27 2021-01-05 四川九洲空管科技有限责任公司 一种综合监视系统
CN117891515A (zh) * 2022-10-08 2024-04-16 深圳市中兴微电子技术有限公司 智能座舱的实现方法、智能座舱、计算机可读介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5551047A (en) * 1993-01-28 1996-08-27 The Regents Of The Univeristy Of California Method for distributed redundant execution of program modules
DE4341082A1 (de) * 1993-12-02 1995-06-08 Teves Gmbh Alfred Schaltungsanordnung für sicherheitskritische Regelungssysteme
US6615366B1 (en) * 1999-12-21 2003-09-02 Intel Corporation Microprocessor with dual execution core operable in high reliability mode
US7085959B2 (en) * 2002-07-03 2006-08-01 Hewlett-Packard Development Company, L.P. Method and apparatus for recovery from loss of lock step
US7328371B1 (en) * 2004-10-15 2008-02-05 Advanced Micro Devices, Inc. Core redundancy in a chip multiprocessor for highly reliable systems
US7366948B2 (en) * 2004-10-25 2008-04-29 Hewlett-Packard Development Company, L.P. System and method for maintaining in a multi-processor system a spare processor that is in lockstep for use in recovering from loss of lockstep for another processor
WO2006045773A2 (de) * 2004-10-25 2006-05-04 Robert Bosch Gmbh Vorrichtung und verfahren zur modusumschaltung bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
US7502958B2 (en) * 2004-10-25 2009-03-10 Hewlett-Packard Development Company, L.P. System and method for providing firmware recoverable lockstep protection
DE102005037230A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Überwachung von Funktionen eines Rechnersystems
CN101243401A (zh) * 2005-08-11 2008-08-13 大陆-特韦斯贸易合伙股份公司及两合公司 用于控制或调节至少部分安全关键处理的微处理器系统
WO2008146091A1 (en) * 2007-05-25 2008-12-04 Freescale Semiconductor, Inc. Data processing system, data processing method, and apparatus
DE112009001700B4 (de) * 2008-07-22 2019-02-07 Toyota Jidosha Kabushiki Kaisha Multikernsystem, fahrzeugseitige elektronische Steuerungseinheit und Aufgabenumschaltverfahren
CN102822807B (zh) * 2010-03-23 2015-09-02 大陆-特韦斯贸易合伙股份公司及两合公司 控制计算机系统及其控制方法和使用

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150091013A (ko) * 2014-01-30 2015-08-07 로베르트 보쉬 게엠베하 멀티 코어 프로세서 시스템 내에서 상이한 안전 단계를 갖는 소프트웨어의 공존 방법
KR20180043322A (ko) * 2015-08-24 2018-04-27 로베르트 보쉬 게엠베하 차량의 전자 회로 유닛의 상태 모니터링 방법 및 그 장치
CN107783414A (zh) * 2016-08-25 2018-03-09 通用汽车环球科技运作有限责任公司 具有动态容错要求的系统的协调多模式分配和运行时切换
WO2018128204A1 (ko) * 2017-01-06 2018-07-12 주식회사 알티스트 파티셔닝 기술을 이용하여 lsm 및 dpm을 동시에 사용할 수 있는 멀티코어 시스템
KR20200002925A (ko) * 2017-04-17 2020-01-08 모빌아이 비젼 테크놀로지스 엘티디. 주행 관련 시스템을 포함하는 보안 시스템
US11608073B2 (en) 2017-04-17 2023-03-21 Mobileye Vision Technologies Ltd. Secure system that includes driving related systems
US11951998B2 (en) 2017-04-17 2024-04-09 Mobileye Vision Technologies Ltd. Secure system that includes driving related systems
US11176395B2 (en) 2018-11-30 2021-11-16 Electronics And Telecommunications Research Institute Image recognition processor including functional safety processor core and operation method thereof
WO2020123159A1 (en) * 2018-12-12 2020-06-18 Intel Corporation Hardware lockstep checking within a fault detection interval in a system on chip
US10831628B2 (en) 2018-12-12 2020-11-10 Intel Corporation Hardware lockstep checking within a fault detection interval in a system on chip

Also Published As

Publication number Publication date
EP2641176A1 (de) 2013-09-25
EP2641176B1 (de) 2015-01-07
DE102011086530A1 (de) 2012-05-24
WO2012066108A1 (de) 2012-05-24
US20130268798A1 (en) 2013-10-10
CN103262045B (zh) 2015-06-17
CN103262045A (zh) 2013-08-21

Similar Documents

Publication Publication Date Title
KR20130119452A (ko) 오류 허용 아키텍쳐를 갖는 마이크로프로세서 시스템
US20080163035A1 (en) Method for Data Distribution and Data Distribution Unit in a Multiprocessor System
KR101728581B1 (ko) 제어 컴퓨터 시스템, 제어 컴퓨터 시스템을 제어하는 방법, 및 제어 컴퓨터 시스템의 이용
US20070277023A1 (en) Method For Switching Over Between At Least Two Operating Modes Of A Processor Unit, As Well Corresponding Processor Unit
US9417946B2 (en) Method and system for fault containment
US10042791B2 (en) Abnormal interrupt request processing
US20090217092A1 (en) Method and Device for Controlling a Computer System Having At Least Two Execution Units and One Comparator Unit
US20060200278A1 (en) Generic software fault mitigation
Kohn et al. Fail-operational in safety-related automotive multi-core systems
US9207661B2 (en) Dual core architecture of a control module of an engine
US11846923B2 (en) Automation system for monitoring a safety-critical process
Kohn et al. Architectural concepts for fail-operational automotive systems
US20120317576A1 (en) method for operating an arithmetic unit
Alhakeem et al. A framework for adaptive software-based reliability in COTS many-core processors
KR20050121729A (ko) 프로그램 제어식 유닛 및 방법
Sundaram et al. Controller integrity in automotive failsafe system architectures
Mariani et al. Comparing fail-safe microcontroller architectures in light of IEC 61508
US20210278815A1 (en) Automation System For Monitoring A Safety-Critical Process
CN115129110A (zh) 用于控制驾驶功能的方法和设备
EP3367242B1 (en) Method of error detection in a microcontroller unit
Großmann et al. Efficient application of multi-core processors as substitute of the E-Gas (Etc) monitoring concept
JP2001306348A (ja) 冗長系情報処理システム
Baumeister Using Decoupled Parallel Mode for Safety Applications
Elderhalli et al. Dynamic Fault Tree Models for FPGA Fault Tolerance and Reliability
JP6588068B2 (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid