KR20150007973A - 마이크로컴퓨터 - Google Patents
마이크로컴퓨터 Download PDFInfo
- Publication number
- KR20150007973A KR20150007973A KR1020140086142A KR20140086142A KR20150007973A KR 20150007973 A KR20150007973 A KR 20150007973A KR 1020140086142 A KR1020140086142 A KR 1020140086142A KR 20140086142 A KR20140086142 A KR 20140086142A KR 20150007973 A KR20150007973 A KR 20150007973A
- Authority
- KR
- South Korea
- Prior art keywords
- interrupt
- interrupt request
- test
- controller
- slave
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection 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/2231—Detection 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 interrupt circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/002—Bus
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Hardware Redundancy (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Microcomputers (AREA)
- Power Sources (AREA)
Abstract
전면적으로 회로의 이중화에 힘입지 않고, 시간을 들여 빌트인 셀프 테스트를 위한 테스트 패턴을 제작하는 것을 필요로 하지 않고, 전력 소비량을 대폭 증가시키지 않고, 인터럽트 제어계의 이상을 검출한다. 인터럽트 컨트롤러로부터 중앙 처리 장치까지의 인터럽트 신호계에 대하여 타이머 등을 사용하여 정기적으로 테스트 인터럽트 요구를 발생하고, 그 인터럽트 처리 루틴 내에서 인터럽트 컨트롤러 내의 인터럽트 요구 플래그의 상태를 확인하고, 동일한 인터럽트 요구 플래그가 2회 이상 계속하여 세트 상태로 되어 있는 것을 검출한 경우에는 그 인터럽트 신호계에 고장이 발생하고 있을 가능성이 높다고 상정하여, 이상 있음으로 한다.
Description
본 발명은, 인터럽트 요구에 기초하여 중앙 처리 장치에 인터럽트를 지시하는 인터럽트 신호계의 고장 검출 기술에 관한 것으로, 예를 들어 페일세이프 기능을 탑재한 차량 탑재 제어 용도의 마이크로컴퓨터에서의 안전 관련의 인터럽트 신호계의 고장 검출에 적용하여 유효한 기술에 관한 것이다.
페일세이프 기능을 탑재한 차량 탑재 제어 용도의 마이크로컴퓨터 등에 대해서는, 인명에 강하게 관계하는 전자 제어 장치에 이용되는 관계상, 하드웨어 및 소프트웨어가 지켜야 할 규약으로서, 예를 들어 기능 안전 기준의 ISO26262나 IEC61508 등이 있다. 페일세이프 기능을 실현하는 수단으로서 로크 스텝(lock-step) 아키텍처가 널리 적용되고 있다. 예를 들어, 중앙 처리 장치의 코어를 듀얼 코어화하고, 각각의 코어에 동일 소프트웨어를 병렬적으로 실행시켜, 동작 결과에 불일치가 발생하는지 여부에 따라 시스템의 고장을 재빨리 검출 가능하게 하는 것이다. 이러한 로크 스텝 아키텍처는 하드웨어 규모가 대폭으로 증대한다. 차량 탑재용 마이크로컴퓨터에서의 로크 스텝 동작에 대하여 기재된 문헌의 예로서 특허문헌 1이 있다.
차량 탑재용 마이크로컴퓨터에서는 기능 안전 관련의 인터럽트 요구의 수가 매우 많다. 그러한 인터럽트 요구에 대하여 우선 레벨이나 인터럽트 마스크에 따른 처리를 행하여 중앙 처리 장치에 대한 인터럽트 제어를 행하는 인터럽트 컨트롤러 및 인터럽트 신호계의 고장을 검출 가능하게 하는 것도, 차량 탑재용 마이크로컴퓨터에서의 페일세이프 기능을 향상시키는 데 있어서 필요해진다. 인터럽트 제어 기능에 관한 고장이나 오동작을 검출하는 기술로서 예를 들어 특허문헌 2 내지 4에 기재가 있다.
특허문헌 2에는, 워치도그 타이머 감시 기능을 이용하여 인터럽트 컨트롤러의 인터럽트 요구 입력 단자에 접속되는 리얼타임 처리 요구의 생성에 관한 고장이나 오동작을 검출 가능하게 하는 기술이 기재되어 있다.
특허문헌 3에는, 인터럽트 요구 신호를 받은 인터럽트 컨트롤러가 CPU에 인터럽트 신호를 출력한 후에, CPU가 그것에 대한 응답 신호를 돌려줄 때까지의 동안에 인터럽트 요구 신호가 무효화된 경우의 문제를 해소하는 기술을 개시한다. 즉, 인터럽트 컨트롤러가 그러한 상태를 감시하여 CPU에 통지함으로써, CPU가 언제까지라도 벡터 어드레스를 리드하지 못하고 있는 상태를 해소하는 것이다.
특허문헌 4에는, 테스터를 사용하여 인터럽트 컨트롤러를 테스트할 경우에는, CPU의 동작과의 관계에서 테스트 패턴을 제작하는 것이 용이하지 않고, 또한 테스트에도 시간을 요하는 점에서, 인터럽트 컨트롤러의 내부 데이터나 벡터를 LSI의 외부에 직접 출력하거나 내부 버스를 통하여 필요한 데이터를 인터럽트 컨트롤러에 공급 가능하게 한다는 것이다.
본 발명자는, 마이크로컴퓨터에서의 페일세이프 기능의 향상, 특히, 인터럽트의 종류가 다수에 걸친 기능 안전 관련의 인터럽트 처리의 신뢰성 향상을 위해 인터럽트 컨트롤러 및 인터럽트 신호계의 고장을 용이하게 검출하는 것에 대하여 검토하였다. 인터럽트 컨트롤러에 대해서도 로크 스텝 아키텍처를 채용하는 것은 가능하지만, 차량 탑재 제어 용도의 마이크로컴퓨터와 같이 기능 안전 관련의 인터럽트 처리의 수가 매우 많은 경우에는, 이중화에 의해 회로 규모가 너무 커져서 칩의 대형화, 비용 증대를 초래해버린다. 또한, 기동 시에 하드웨어의 테스트로서 로직이나 메모리의 빌트인 셀프 테스트(BIST: Built-In Self-Test)를 행할 수 있는 디바이스 구조가 채용되어 있으면, 인터럽트 신호계의 고장은 그 빌트인 셀프 테스트로 행하는 것도 가능하지만, 그 테스트 실행 시의 커버리지를 올리기 위한 테스트 패턴의 제작은 용이하지 않고, 또한, 테스트의 규모가 커짐으로 인해 전력 소비가 너무 증가하지 않도록 새로운 대책도 필요해진다. 특허문헌 4의 경우에서도 추가의 하드웨어에 의한 회로 규모의 증대는 무시할 수 없다. 특히, 차량 탑재 제어 용도의 마이크로컴퓨터 기능 안전 관련의 인터럽트 요구의 수가 매우 많은 경우와 같은, 인터럽트 제어 기능의 규모가 큰 경우에는 두말할 나위도 없다. 특허문헌 2, 3에서는 인터럽트 컨트롤러 그 자체의 고장 및 오동작을 용이하게 검출 가능하게 하는 것을 기대할 수 없다.
상기 및 그 밖의 과제와 신규인 특징은 본 명세서의 기술 및 첨부 도면으로부터 밝혀질 것이다.
본원에서 개시되는 실시 형태 중 대표적인 것의 개요를 간단하게 설명하면 하기와 같다.
즉, 인터럽트 컨트롤러부터 중앙 처리 장치까지의 인터럽트 신호계에 대하여 타이머 등을 사용하여 정기적으로 테스트 인터럽트 요구를 발생하고, 그 인터럽트 처리 루틴 내에서 인터럽트 컨트롤러 내의 인터럽트 요구 플래그의 상태를 확인하고, 기능 안전 관련으로 동일한 인터럽트 요구 플래그가 2회 이상 계속하여 세트 상태가 되어 있는 것을 검출한 경우에는 그 인터럽트 신호계에 고장이 발생하고 있을 가능성이 높다고 상정하여 테스트 페일, 즉 이상 있음이라고 판정한다.
본원에서 개시되는 실시 형태 중 대표적인 것에 의해 얻어지는 효과를 간단하게 설명하면 하기와 같다.
즉, 전면적으로 회로의 이중화에 힘입지 않고, 시간을 들여 빌트인 셀프 테스트를 위한 테스트 패턴을 제작하는 것을 필요로 하지 않고, 전력 소비량을 대폭으로 증가시키지 않고, 인터럽트 제어계의 이상을 검출할 수 있다.
도 1은, 마이크로컴퓨터의 인터럽트 제어계에서의 고장 검출의 제1 실시 형태 상세를 예시하는 블록도이다.
도 2는, 마이크로컴퓨터의 구성을 예시하는 블록도이다.
도 3은, 테스트 인터럽트 요구 신호(OSTM)에 응답하는 중앙 처리 장치의 동작 플로우를 예시하는 흐름도이다.
도 4는, 테스트 인터럽트 요구 신호(OSTM)에 응답하는 테스트 인터럽트 처리의 동작 타이밍을 예시하는 타이밍 차트이다.
도 5는, 마이크로컴퓨터의 인터럽트 제어계로서 제2 실시 형태에 관한 주된 구성을 예시하는 블록도이다.
도 6은, 이중화된 테스트 인터럽트 요구 신호(OSTMa, OSTMb)에 착안했을 때의 슬레이브 인터럽트 컨트롤러 및 마스터 인터럽트 컨트롤러의 구체예를 예시하는 블록도이다.
도 7은, 마이크로컴퓨터의 인터럽트 제어계로서 제3 실시 형태에 관한 주된 구성을 예시하는 블록도이다.
도 8은, 마이크로컴퓨터의 인터럽트 제어계로서 제4 실시 형태에 관한 주된 구성을 예시하는 블록도이다.
도 9는, 마이크로컴퓨터의 인터럽트 제어계로서 제5 실시 형태에 관한 주된 구성을 예시하는 블록도이다.
도 10은, 마이크로컴퓨터의 인터럽트 제어계로서 제6 실시 형태에 관한 주된 구성을 1개의 슬레이브 인터럽트 컨트롤러와 함께 예시하는 블록도이다.
도 11은, 마이크로컴퓨터의 인터럽트 제어계로서 제6 실시 형태에 관한 주된 구성을 2개의 슬레이브 인터럽트 컨트롤러와 함께 예시하는 블록도이다.
도 2는, 마이크로컴퓨터의 구성을 예시하는 블록도이다.
도 3은, 테스트 인터럽트 요구 신호(OSTM)에 응답하는 중앙 처리 장치의 동작 플로우를 예시하는 흐름도이다.
도 4는, 테스트 인터럽트 요구 신호(OSTM)에 응답하는 테스트 인터럽트 처리의 동작 타이밍을 예시하는 타이밍 차트이다.
도 5는, 마이크로컴퓨터의 인터럽트 제어계로서 제2 실시 형태에 관한 주된 구성을 예시하는 블록도이다.
도 6은, 이중화된 테스트 인터럽트 요구 신호(OSTMa, OSTMb)에 착안했을 때의 슬레이브 인터럽트 컨트롤러 및 마스터 인터럽트 컨트롤러의 구체예를 예시하는 블록도이다.
도 7은, 마이크로컴퓨터의 인터럽트 제어계로서 제3 실시 형태에 관한 주된 구성을 예시하는 블록도이다.
도 8은, 마이크로컴퓨터의 인터럽트 제어계로서 제4 실시 형태에 관한 주된 구성을 예시하는 블록도이다.
도 9는, 마이크로컴퓨터의 인터럽트 제어계로서 제5 실시 형태에 관한 주된 구성을 예시하는 블록도이다.
도 10은, 마이크로컴퓨터의 인터럽트 제어계로서 제6 실시 형태에 관한 주된 구성을 1개의 슬레이브 인터럽트 컨트롤러와 함께 예시하는 블록도이다.
도 11은, 마이크로컴퓨터의 인터럽트 제어계로서 제6 실시 형태에 관한 주된 구성을 2개의 슬레이브 인터럽트 컨트롤러와 함께 예시하는 블록도이다.
1. 실시 형태의 개요
우선, 본원에서 개시되는 실시 형태에 대하여 개요를 설명한다. 실시 형태에 대한 개요 설명에서 괄호를 붙여서 참조하는 도면 중의 참조 부호는 그것이 첨부된 구성 요소의 개념에 포함되는 것을 예시하는 것에 지나지 않는다.
〔1〕<정기적으로 참조한 인터럽트 요구 플래그가 연속하여 복수회 세트 상태인지 여부의 판별>
마이크로컴퓨터(1)는, 중앙 처리 장치(5)와, 인터럽트 컨트롤러(4, 18, 21, 22, 21A)를 갖는다. 상기 중앙 처리 장치는, 정기적으로 소정의 간격으로 발생되는 소정의 테스트 인터럽트 요구(OSTM)에 응답하여, 상기 인터럽트 컨트롤러가 보유하는 인터럽트 요구 플래그(IFLG)를 참조하고, 복수회의 상기 테스트 인터럽트 요구에 의한 참조에서 동일한 인터럽트 요구 플래그가 연속하여 복수회 세트 상태인 것을 판별함으로써, 이상 있음으로 간주한다.
이에 의하면, 정기적으로 발생하는 테스트 인터럽트 요구마다 인터럽트 컨트롤러 내의 인터럽트 요구 플래그를 참조한 결과, 동일한 인터럽트 요구 플래그가 2회 이상 계속하여 세트 상태로 되어 있는 것을 검출한 경우에는, 당해 세트 상태의 인터럽트 요구 플래그에 의한 인터럽트가 여전히 처리되지 않고 남아있게 되고, 이것이 장기간일수록 그 인터럽트 신호계에 고장이 발생하고 있는 개연성이 높다고 생각할 수 있다. 이 상태를 이상 있음으로 간주함으로써, 마이크로컴퓨터가 제어하는 시스템의 기능 안전성을 향상시킬 수 있다. 특히, 인터럽트 컨트롤러를 전면적으로 이중화하여 로크 스텝 아키텍처에 모두 의존시키지 않으므로, 회로 규모의 대폭적인 증대를 필요로 하지 않는다. 또한, 시간을 들여서 빌트인 셀프 테스트를 위한 테스트 패턴을 제작하는 것도 필요로 하지 않고, 또한, 빌트인 셀프 테스트에 의해 전력 소비량이 대폭 증가하는 경우도 없다. 이와 같이, 회로 규모, 테스트 패턴 제작 시간 및 테스트에 수반하는 전력 소비량을 대폭 증가시키지 않고 인터럽트 제어계의 이상을 검출할 수 있다.
〔2〕<테스트 인터럽트 요구와 인터럽트 요구 플래그의 참조 대상으로 되는 인터럽트 요구를 상이한 인터럽트 컨트롤러에 입력>
항 1에 있어서, 상기 인터럽트 컨트롤러는, 상기 테스트 인터럽트 요구가 부여되는 제1 인터럽트 컨트롤러(21)와, 상기 테스트 인터럽트 요구에 응답하는 상기 중앙 처리 장치의 처리에 의해 참조 대상으로 되는 인터럽트 요구 플래그를 갖는 제2 인터럽트 컨트롤러(22)를 갖는다(도 1 참조).
이에 의하면, 인터럽트 요구에 높은 기능 안전이 요구되는 기능 안전 관련의 인터럽트 요구와, 높은 기능 안전이 요구되고 있지 않은 비기능 안전 관련의 인터럽트 요구로 크게 구별되는 경우를 상정한다. 이 때, 테스트 인터럽트 요구가 입력되는 측과 인터럽트 요구 플래그의 참조 대상으로 되는 인터럽트 요구가 입력되는 측에서 인터럽트 컨트롤러를 상위(相違)시킴으로써, 테스트 인터럽트 요구에 의한 인터럽트 처리로 인터럽트 요구 플래그를 참조하는 범위를 기능 안전 관련의 인터럽트 요구측의 제2 인터럽트 컨트롤러에 한정할 수 있다. 그리고, 이상 있음으로 간주된 경우에, 그 이상에 대한 대처의 범위를 제2 인터럽트 컨트롤러를 포함하는 신호계에 한정하여 행하는 것이 가능해진다.
〔3〕<테스트 인터럽트 요구 발생 회로를 이중화>
항 2에 있어서, 상기 테스트 인터럽트 요구를 발생하는 테스트 인터럽트 요구 발생 회로(15a, 15b)를 이중화한다(도 5 참조). 상기 제1 인터럽트 컨트롤러(21A)는, 이중화된 테스트 인터럽트 요구 발생 회로로부터 병렬로 입력된 테스트 인터럽트 요구의 각각에 대하여 다른 인터럽트 요구와의 사이의 접수 제어를 따로따로 행하고, 따로따로 행해진 접수 제어의 결과가 일치하는지 여부를 판별하는 판별 회로를 또한 갖는다.
이에 의하면, 이중화된 테스트 인터럽트 요구 발생 회로로부터의 신호의 불일치 검출 가능하므로, 테스트 인터럽트 요구에 의한 처리의 결과에 대한 타당성을 보증할 수 있다. 따라서, 테스트 인터럽트 요구에 기초하는 중앙 처리 장치에 의한 처리가 테스트 인터럽트 처리계의 고장으로 인해 실행할 수 없는 상태를 피할 수 있고, 시스템의 기능 안전이라는 관점에서, 보다 안전성을 높일 수 있다.
〔4〕<제2 인터럽트 컨트롤러에의 인터럽트 요구를 선택적으로 제1 인터럽트 컨트롤러에>
항 2에 있어서, 제2 인터럽트 컨트롤러에 입력되는 인터럽트 요구를 선택하여 제1 인터럽트 컨트롤러에 입력시키는 셀렉터(80)를 또한 갖는다(도 7 참조). 상기 중앙 처리 장치는, 상기 인터럽트 컨트롤러의 인터럽트 요구 플래그를 참조하여 이상 있음으로 간주했을 때, 복수회의 상기 테스트 인터럽트 요구에 의한 참조에서 동일한 인터럽트 요구 플래그가 연속하여 복수회 세트 상태이라고 판별한 당해 인터럽트 요구 플래그에 대응하는 인터럽트 요구를, 상기 셀렉터에서 선택하여 제1 인터럽트 컨트롤러에 입력시키는 처리를 행한다.
이에 의하면, 이상 있음으로 간주되었을 때라도 연속하여 복수회 세트 상태라고 판별된 당해 인터럽트 요구 플래그에 대응하는 인터럽트 요구를 제1 인터럽트 컨트롤러에 부여함으로써, 당해 인터럽트 요구에 의한 본래의 처리가 계속 가능해진다. 요컨대, 시스템상에서 문제가 발생했을 때의 응급 조치로서 계속적인 처리가 가능해진다.
〔5〕<인터럽트 컨트롤러의 캐스케이드 접속>
항 1에 있어서, 상기 인터럽트 컨트롤러는, 캐스케이드 접속된 마스터 인터럽트 컨트롤러(4) 및 슬레이브 인터럽트 컨트롤러(18)를 갖는다. 마스터 인터럽트 컨트롤러는, 복수의 인터럽트 요구를 입력 가능하게 되고, 입력한 인터럽트 요구에 대한 접수 제어의 결과에 따라서 중앙 처리 장치에 인터럽트 신호를 출력한다. 슬레이브 인터럽트 컨트롤러는, 복수의 인터럽트 요구를 입력 가능하게 되고, 입력한 인터럽트 요구에 대한 접수 제어의 결과에 따라서 상기 마스터 인터럽트 컨트롤러에 인터럽트 요구 신호를 출력한다.
이에 의하면, 1개의 인터럽트 컨트롤러로 전부 처리할 수 없는 다수의 인터럽트 요구 신호에 대하여 인터럽트 컨트롤러의 캐스케이드 접속에 의해 대응할 수 있다.
〔6〕<캐스케이드 접속된 인터럽트 요구에 대하여 슬레이브와 마스터 각각에서 인터럽트 요구 플래그를 보유하여 참조 대상으로 한다>
항 5에 있어서, 상기 중앙 처리 장치는, 정기적으로 소정의 간격으로 발생되는 소정의 테스트 인터럽트 요구에 응답하여, 상기 슬레이브 인터럽트 컨트롤러(22)가 보유하는 슬레이브측 인터럽트 요구 플래그(SRS에 대응하는 IFLG)와, 상기 슬레이브 인터럽트 컨트롤러로부터 상기 마스터 인터럽트 컨트롤러(4)에 공급되는 인터럽트 요구 신호에 대응하여 세트되는, 상기 마스터 인터럽트 컨트롤러가 보유하는 마스터측 인터럽트 요구 플래그(IntS2에 대응하는 IFLG)를 참조한다(도 8 참조). 중앙 처리 장치는, 복수회의 상기 테스트 인터럽트 요구에 의한 참조에서, 동일한 슬레이브측 인터럽트 요구 플래그가 연속하여 복수회 세트 상태인 것, 또한, 그것에 대응하는 마스터측 인터럽트 요구 플래그가 연속하여 복수회 세트 상태인 것 또는 세트 상태가 아닌 것을 판별함으로써, 이상 있음으로 간주한다.
이에 의하면, 캐스케이드 접속된 인터럽트 요구에 관한 슬레이브측과 마스터측의 각각의 인터럽트 요구 플래그의 상태를 참조함으로써, 고장 개소가 예를 들어 마스터 인터럽트 컨트롤러의 인터럽트 요구 플래그의 전방인지 아닌지를 판별 가능해진다.
〔7〕<슬레이브 인터럽트 컨트롤러로부터 마스터 인터럽트 컨트롤러의 경로 고장>
항 6에 있어서, 상기 중앙 처리 장치는, 복수회의 상기 테스트 인터럽트 요구에 의한 참조에서, 동일한 슬레이브측 인터럽트 요구 플래그가 연속하여 복수회 세트 상태이며, 또한, 그것에 대응하는 마스터측 인터럽트 요구 플래그가 연속하여 복수회 세트 상태인 것을 판별함으로써, 슬레이브 인터럽트 컨트롤러 및 마스터 인터럽트 컨트롤러를 경유하여 중앙 처리 장치의 입력에 이르는 경로에 이상 있음으로 간주한다. 또한, 복수회의 상기 테스트 인터럽트 요구에 의한 참조에서, 동일한 슬레이브측 인터럽트 요구 플래그가 연속하여 복수회 세트 상태이며, 또한, 그것에 대응하는 마스터측 인터럽트 요구 플래그가 연속하여 복수회 세트 상태가 아닌 것을 판별함으로써, 슬레이브 인터럽트 컨트롤러로부터 마스터 인터럽트 컨트롤러의 입력에 이르는 경로에 이상 있음으로 간주한다.
이에 의해, 고장 개소가 마스터 인터럽트 컨트롤러의 인터럽트 요구 플래그의 전방인지 아닌지를 구체적으로 판별 가능해진다.
〔8〕<마스터 인터럽트 컨트롤러에 소정의 테스트 인터럽트 요구를 입력>
항 5에 있어서, 상기 마스터 인터럽트 컨트롤러에 상기 소정의 테스트 인터럽트 요구를 입력한다(도 10, 도 11 참조).
이에 의하면, 테스트 인터럽트 요구 신호를 접수하는 인터럽트 컨트롤러는 1단이므로, 캐스케이드 접속된 슬레이브측에 테스트 인터럽트 요구 신호를 입력하는 경우에 비하여, 테스트 인터럽트 요구 신호에 의한 처리에 이상을 발생시킬 가능성을 줄일 수 있다.
〔9〕<테스트 인터럽트 요구와 인터럽트 요구 플래그의 참조 대상으로 되는 인터럽트 요구를 상이한 슬레이브 인터럽트 컨트롤러에 입력>
항 5에 있어서, 상기 슬레이브 인터럽트 컨트롤러는, 상기 테스트 인터럽트 요구가 부여되는 제1 슬레이브 인터럽트 컨트롤러(21)와, 상기 테스트 인터럽트 요구에 응답하는 상기 중앙 처리 장치의 처리에 의해 참조 대상으로 되는 인터럽트 요구 플래그를 갖는 제2 슬레이브 인터럽트 컨트롤러(22)를 갖는다(도 1 참조).
이에 의하면, 캐스케이드 접속 구성의 경우에도, 높은 기능 안전이 요구되는 기능 안전 관련의 인터럽트 요구와, 높은 기능 안전이 요구되고 있지 않은 비기능 안전 관련의 인터럽트 요구로 크게 구별되는 경우를 상정한다. 이 때, 테스트 인터럽트 요구가 입력되는 측과 인터럽트 요구 플래그의 참조 대상으로 되는 인터럽트 요구가 입력되는 측에서 슬레이브 인터럽트 컨트롤러를 상위시킴으로써, 테스트 인터럽트 요구에 의한 인터럽트 처리에서 인터럽트 요구 플래그를 참조하는 범위를 기능 안전 관련의 인터럽트 요구측의 제2 슬레이브 인터럽트 컨트롤러로 한정할 수 있다. 그리고, 이상 있음으로 간주된 경우에, 그 이상에 대한 대처의 범위를 제2 슬레이브 인터럽트 컨트롤러를 포함하는 신호계로 한정하여 행하는 것이 가능해진다.
〔10〕<테스트 인터럽트 요구 발생 회로를 이중화>
항 9에 있어서, 상기 테스트 인터럽트 요구를 발생하는 테스트 인터럽트 요구 발생 회로(15a, 15b)를 이중화한다(도 5 참조). 상기 제1 슬레이브 인터럽트 컨트롤러는 이중화된 테스트 인터럽트 요구 발생 회로로부터 병렬로 입력한 테스트 인터럽트 요구의 각각에 대하여 다른 인터럽트 요구와의 사이의 접수 제어를 따로따로 행하고, 따로따로 행해진 접수 제어의 결과가 일치하는지 여부를 판별하는 판별 회로를 또한 구비한다. 상기 마스터 인터럽트 컨트롤러는 상기 제1 슬레이브 인터럽트 컨트롤러로 따로따로 행해진 접수 제어의 결과에 대한 논리곱 신호를 하나의 인터럽트 요구로서 처리한다.
이에 의하면, 이중화된 테스트 인터럽트 요구 발생 회로로부터의 신호의 불일치 검출 가능하므로, 테스트 인터럽트 요구에 의한 처리의 결과에 대한 타당성을 보증할 수 있다. 따라서, 테스트 인터럽트 요구에 기초하는 중앙 처리 장치에 의한 처리가 테스트 인터럽트 처리계의 고장으로 인해 실행할 수 없는 상태를 피할 수 있고, 시스템의 기능 안전이라는 관점에서, 보다 안전성을 높일 수 있다.
〔11〕<제2 슬레이브 인터럽트 컨트롤러에의 인터럽트 요구를 선택적으로 제1 슬레이브 인터럽트 컨트롤러에>
항 9에 있어서, 제2 슬레이브 인터럽트 컨트롤러에 입력되는 인터럽트 요구를 선택하여 제1 슬레이브 인터럽트 컨트롤러에 입력시키는 셀렉터(80)를 또한 갖는다(도 7 참조). 상기 중앙 처리 장치는, 상기 제2 슬레이브 인터럽트 컨트롤러의 인터럽트 요구 플래그를 참조하여 이상 있음으로 간주했을 때, 복수회의 상기 테스트 인터럽트 요구에 의한 참조에서 동일한 인터럽트 요구 플래그가 연속하여 복수회 세트 상태이라고 판별한 당해 인터럽트 요구 플래그에 대응하는 인터럽트 요구를, 상기 셀렉터에서 선택하여 제1 슬레이브 인터럽트 컨트롤러에 입력시키는 처리를 행한다.
이에 의하면, 이상 있음으로 간주되었을 때라도 연속하여 복수회 세트 상태라고 판별된 당해 인터럽트 요구 플래그에 대응하는 인터럽트 요구를 제1 슬레이브 인터럽트 컨트롤러에 부여함으로써, 당해 인터럽트 요구에 의한 본래의 처리가 계속 가능해진다. 요컨대, 시스템상에서 문제가 발생했을 때의 응급 조치로서 계속적인 처리가 가능해진다.
〔12〕<마스터 인터럽트 컨트롤러 및 중앙 처리 장치의 이중화에 의한 로크 스텝>
항 5에 있어서, 상기 마스터 인터럽트 컨트롤러(4) 및 상기 중앙 처리 장치(5)는, 각각 이중화(2, 3)되어 서로 병렬 동작됨으로써, 상호의 동작 결과의 상위에 기초하는 이상의 검출을 가능하게 하는 로크 스텝 아키텍처를 갖는다.
이에 의하면, 면적적으로 허용되는 일부에 로크 스텝 아키텍처를 채용함으로써 기능 안전성의 향상에 한층 더 이바지할 수 있다.
〔13〕<테스트 인터럽트 요구 발생 회로를 이중화하고, 테스트 인터럽트 요구와 인터럽트 요구 플래그의 참조 대상으로 되는 인터럽트 요구를 동일한 인터럽트 컨트롤러에 입력 가능하게 한다>
항 1에 있어서, 상기 인터럽트 컨트롤러는, 상기 테스트 인터럽트 요구 및 제1 인터럽트 요구가 부여되는 제1 인터럽트 컨트롤러(21A)와, 제2 인터럽트 요구가 부여되는 제2 인터럽트 컨트롤러(22)를 갖는다. 상기 테스트 인터럽트 요구를 발생하는 테스트 인터럽트 요구 발생 회로(15a, 15b)는 이중화된다. 상기 제1 인터럽트 컨트롤러는 이중화된 테스트 인터럽트 요구 발생 회로로부터 병렬로 입력된 테스트 인터럽트 요구의 각각에 대하여 상기 제1 인터럽트 요구와의 사이의 접수 제어를 따로따로 행하고, 따로따로 행해진 접수 제어의 결과가 일치하는지 여부를 판별하는 판별 회로(60)를 또한 갖는다. 상기 중앙 처리 장치는, 정기적으로 소정의 간격으로 발생되는 소정의 테스트 인터럽트 요구에 응답하여, 상기 제1 인터럽트 컨트롤러 및 제2 인터럽트 컨트롤러가 보유하는 인터럽트 요구 플래그를 참조하고, 복수회의 상기 테스트 인터럽트 요구에 의한 참조에서 동일한 인터럽트 요구 플래그가 연속하여 복수회 세트 상태인 것을 판별함으로써, 이상 있음으로 간주한다(도 9 참조).
이에 의하면, 테스트 인터럽트 요구의 발생으로부터 그것의 접수 제어에 대한 이상의 발생을 확실하게 검출할 수 있고, 테스트 인터럽트 요구가 정상적으로 발생하여 중앙 처리 장치에 접수 가능하게 되는 것을 용이하게 보증할 수 있다. 바꾸어 말하면, 제1 인터럽트 컨트롤러에 의한 인터럽트 요구의 접수 처리와 신호 경로에 대한 이상이 검출 가능하게 되어 있으므로, 기능 안전 관련의 인터럽트 요구 신호에 대해서는 제2 인터럽트 컨트롤러에 한정되지 않고, 제1 인터럽트 컨트롤러에 공급함으로써 기능 안전성의 향상에 한층 더 이바지할 수 있다. 그 경우에도 테스트 인터럽트 요구에 응답하여, 제1 인터럽트 컨트롤러측의 인터럽트 요구 플래그를 참조하여 판별하는 것이 기능 안전성의 향상에 한층 더 이바지하게 된다.
〔14〕<타이머 인터럽트 요구>
항 1에 있어서, 타이머를 또한 갖고, 상기 소정의 테스트 인터럽트 요구는, 소정의 간격으로 상기 타이머(15)로부터 발생되는 타이머 인터럽트 요구이다.
이에 의하면, 테스트 인터럽트 요구를 정기적으로 발생시키는 간격을 중앙 처리 장치의 제어에 기초하여 임의로 결정할 수 있다.
〔15〕<안전 관련의 인터럽트 요구에 대응하는 인터럽트 요구 플래그>
항 14에 있어서, 참조 대상으로 되는 인터럽트 요구 플래그는, 기능 안전이 고려된 안전 관련의 인터럽트 요구에 대응하는 인터럽트 요구 플래그이다.
이에 의하면, 안전 관련의 인터럽트 요구를 다용하는 페일세이프 기능을 탑재한 차량 탑재 제어 용도의 마이크로컴퓨터에 적합하다.
〔16〕<소정의 간격>
항 15에 있어서, 상기 소정의 간격은, 상기 안전 관련의 인터럽트 요구에 의한 페일세이프 처리에서 고려되는 FTTI(Fault Tolerant Time Interval)보다도 짧은시간이다.
정상적이라면 안전 관련의 인터럽트 요구에 의한 처리는 FTTI 시간보다도 빨리 완료되어 그 인터럽트 요구 플래그는 세트 상태로부터 클리어된다. 이에 비해, 이상이 있으면 안전 관련의 인터럽트 요구에 의한 처리는 FTTI 시간을 경과해도 완료되지 않고, 그 인터럽트 요구 플래그는 세트 상태인채로 된다. 따라서, 테스트 인터럽트 요구의 발생 간격을 FTTI 시간보다도 짧게 설정함으로써, 제1회째의 테스트 인터럽트 요구의 처리와 제2회째의 테스트 인터럽트 요구의 처리에서, 동일 인터럽트 요구 플래그가 2회 연속하여 세트 상태인 것을 판별함으로써, 이상 있음으로 간주하는 것이 가능해진다.
〔17〕<유저 모드에서의 테스트 인터럽트 요구>
항 15에 있어서, 상기 소정의 테스트 인터럽트 요구는 유저 모드에서의 중앙 처리 장치의 제어에 따라 상기 타이머로부터 정기적으로 발생된다.
이에 의하면, 유저 모드로부터 특별한 테스트 모드에의 천이를 필요로 하지 않고, 또한, 테스트 인터럽트에 의한 처리를 유저 모드에서의 하나의 인터럽트 처리로서 실행할 수 있고, 시스템 상 또는 실기(actual device) 상에서 경년 변화에 의한 열화를 검출할 수 있다.
〔18〕<미리 정해진 처리가 상정하는 고장>
항 1에 있어서, 상기 중앙 처리 장치에 의해 있음으로 간주되는 이상은, 상기 인터럽트 컨트롤러로부터 상기 중앙 처리 장치에 이르는 경로에서 상정되는 이상이다.
이에 의해, 그 상정되는 이상에 따라, 이상 있음의 판별에 대한 예외 처리나 리커버리 처리 등을 미리 정할 수 있다.
2. 실시 형태의 상세
실시 형태에 대하여 더욱 상세하게 설명한다.
《마이크로컴퓨터》
도 2에는 마이크로컴퓨터의 구성이 예시된다. 동일한 도면에 도시되어 있는 마이크로컴퓨터(MCU)(1)는 특별히 제한되지 않지만, 단결정 실리콘과 같은 1개의 반도체 기판에 CMOS 집적 회로 제조 기술에 의해 형성되고, 반도체 집적 회로 장치로서 실현되고 있다.
마이크로컴퓨터(1)는, 서로 동일한 프로세싱 엘리먼트(PE0)(2)와 프로세싱 엘리먼트(PE1)(3)를 이중화하여 갖는다. 각각의 프로세싱 엘리먼트(2, 3)는 마스터 인터럽트 컨트롤러(INTC1)(4)와 중앙 처리 장치(CPU)(5)를 갖는다. 양쪽의 프로세싱 엘리먼트(2, 3)의 중앙 처리 장치(5)는 동일한 클럭 신호에 동기하여 동일한 명령을 실행한다. 양쪽의 프로세싱 엘리먼트(2, 3)의 마스터 인터럽트 컨트롤러(4)는 동일한 인터럽트 요구 신호를 입력하여 접수 처리를 행하고, 대응하는 중앙 처리 장치(5)에 인터럽트 신호를 출력한다. 프로세싱 엘리먼트(2, 3)의 병렬 동작에 의해 각각에서 생성되는 신호나 그 밖의 내부 정보는 비교부(COMP)(6)에 의해 예를 들어 중앙 처리 장치(5)의 동작 사이클 단위로 비교된다. 비교 결과에 불일치가 있으면 에러 신호(ERR)에 의해 에러 제어 회로(ERRCNT)(7)에 통지된다. 통지의 구체적인 내용 및 불일치의 통지에 대한 구체적인 처리 내용은, 마이크로컴퓨터(1)가 실행하는 소프트웨어, 또는 마이크로컴퓨터(1)가 적응되는 시스템의 내용 등에 따라 적절히 결정됨으로써 특별히 제한되는 성질의 것이 아니다. 이러한 프로세싱 엘리먼트(2, 3)의 이중화는, 페일세이프 기능을 실현하는 수단으로서의 로크 스텝 아키텍처의 일례이며, 마이크로컴퓨터(1) 내지 그 응용 시스템의 고장을 재빨리 검출 가능하게 하는 것이다. 단, 이러한 로크 스텝 아키텍처는 당연히 하드웨어 규모를 배증시키게 된다.
프로세싱 엘리먼트(2, 3)에는 주변 회로로서, 예를 들어 SRAM 등의 RAM(10) 및 전기적으로 재기입 가능한 불휘발성 메모리인 플래시 메모리(FLASH)(11) 등의 기억 장치, 또한, 내부 버스(12)를 통해 복수의 회로 모듈이 접속된다. 회로 모듈로서, 예를 들어, 디지털 신호를 아날로그 신호로 변환하는 DA 변환 회로 및 아날로그 신호를 디지털 신호로 변환하는 AD 변환 회로 등의 아날로그 회로(ANLG)(13), 위상 동기 루프 회로(PLL)(14), 타이머 회로(TMR)(15), 시리얼 커뮤니케이션 회로(SRLCOM)(16), 입출력 포트(I/O)(17) 및 슬레이브 인터럽트 컨트롤러(INTC2)(18) 등을 갖는다. 또한, 상기 주변 회로가 출력하는 데이터나 신호는 이중화된 프로세싱 엘리먼트(2, 3)의 양쪽에 공급되지만, 상기 주변 회로에의 데이터나 신호의 공급은 마스터로서 위치 부여되는 한쪽의 프로세싱 엘리먼트(2)가 행하는 것으로 한다.
여기서, 상기 슬레이브 인터럽트 컨트롤러(18)와 마스터 인터럽트 컨트롤러(4)의 인터럽트 신호 경로는 캐스케이드 접속되어 있다. 인터럽트 컨트롤러의 캐스케이드 접속은, 마스터 인터럽트 컨트롤러(4)의 인터럽트 요구 입력 단자의 수가, 처리해야 할 인터럽트 요구의 수에 비하여 적을 때, 인터럽트 제어 기능을 확장하기 위하여 채용하는 것이다. 특별히 제한되지 않지만, 상기 슬레이브 인터럽트 컨트롤러(18)는 제1 슬레이브 인터럽트 컨트롤러(INTC2_0)(21)와 제2 슬레이브 인터럽트 컨트롤러(INTC2_1)(22)에 의해 구성된다.
이어서, 인터럽트 컨트롤러(4, 21, 22)의 캐스케이드 접속의 기본적인 구성에 대하여 도 1도 참조하면서 설명한다.
제1 슬레이브 인터럽트 컨트롤러(21)는, 96개의 인터럽트 요구 입력 단자로부터 인터럽트 요구 신호(INT) [127:32]를 입력 가능하게 되고, 입력한 인터럽트 요구 신호에 대한 접수 제어의 결과에 따라 인터럽트 요구 출력 단자로부터 인터럽트 신호(IntS1)를 출력한다.
제2 슬레이브 인터럽트 컨트롤러(22)는, 128개의 인터럽트 요구 입력 단자로부터 인터럽트 요구 신호(INT) [255:128]를 입력 가능하게 되고, 입력한 인터럽트 요구 신호에 대한 접수 제어의 결과에 따라 인터럽트 요구 출력 단자로부터 인터럽트 신호(IntS2)를 출력한다.
마스터 인터럽트 컨트롤러(4)는, 예를 들어 34개의 인터럽트 요구 입력 단자로부터 32개의 인터럽트 요구 신호(INT_PE) [31:0]와 상기 인터럽트 신호(IntS1, IntS2)를 입력 가능하게 되고, 입력한 신호에 대한 접수 제어의 결과에 따라 인터럽트 요구 출력 단자로부터 중앙 처리 장치(5)에 1개의 인터럽트 신호(IntReq)를 출력한다.
각각의 인터럽트 컨트롤러(4, 21, 22)는, 인터럽트 요구 신호가 입력되면, 입력된 인터럽트 요구 신호에 대응하는 인터럽트 요구 플래그(IFLG)를 세트하고, 세트된 인터럽트 요구 플래그(IFLG)에 의한 인터럽트 요구에 대하여 인터럽트 마스크의 판정과 인터럽트 우선 레벨의 판정을 행한다. 인터럽트 마스크의 판정과 인터럽트 우선 레벨의 판정이 상기 접수 처리의 일례이다. 즉, 인터럽트 컨트롤러(4, 21, 22)는, 인터럽트 마스크가 해제되어 있지 않은 인터럽트 요구에 대해서는 대응하는 인터럽트 요구 플래그(IFLG)를 무시하고, 세트 상태의 인터럽트 요구 플래그(IFLG) 중에서 우선 레벨이 가장 높은 인터럽트 요구를 최우선의 인터럽트 요구로서 접수하여 인터럽트 신호(IntS1, IntS2, IntReq)를 출력한다. 이 때, 마스터 인터럽트 컨트롤러(4)는 인터럽트 신호(IntS1, IntS2)를 인터럽트 요구 신호와 동등하게 취급하여 처리한다. 도 2에서 31, 32, 33은 인터럽트 컨트롤러 단위로 복수의 인터럽트 요구 플래그를 총칭적으로 나타낸 인터럽트 요구 플래그 회로이다. 실제로는 인터럽트 요구 플래그 회로(31, 32, 33)에는 인터럽트 요구 신호 단위로 인터럽트 요구 플래그(IFLG)가 설치되어 있다. 단, 인터럽트 요구 플래그 회로(31)는, 인터럽트 신호(IntS1, IntS2)에 대응한 인터럽트 요구 플래그를 갖지 않는다. 각각의 인터럽트 컨트롤러(21, 22, 4)에서의 상기 인터럽트 요구에 대한 상기 우선도 및 마스크 판정의 제어는 우선도·마스크 제어 로직 회로(PMLGC)(51, 52, 53)가 행한다.
중앙 처리 장치(5)는 마스터 인터럽트 컨트롤러(4)가 출력하는 인터럽트 신호(IntReq)를 입력함으로써 실행 도중의 명령 실행을 종료하여 저장 처리를 행하고, 인터럽트 승인 신호(IntAck)를 인터럽트 컨트롤러(4, 21, 22)에 출력한다.
마스터 인터럽트 컨트롤러(4)는 중앙 처리 장치(5)로부터 인터럽트 승인 신호(IntAck)가 되돌아왔을 때, 상기 최우선으로 판정한 인터럽트 요구가 슬레이브 측으로부터의 인터럽트 신호(IntS1, IntS2)에 의한 것이 아니면, 그 때 최우선으로 판정한 인터럽트 요구에 응하는 벡터를 중앙 처리 장치(5)에 출력함과 함께, 당해 최우선으로 판정한 인터럽트 요구에 응하는 인터럽트 요구 플래그(IFLG)의 세트 상태를 리셋 상태로 클리어한다. 한편, 마스터 인터럽트 컨트롤러(4)는 상기 최우선으로 판정한 인터럽트 요구가 슬레이브측으로부터의 인터럽트 신호(IntS1, IntS2)에 의한 것이라면, 그 요구원이 어느 것의 슬레이브 인터럽트 컨트롤러인지를 나타내는 캐스케이드 코드(CSCD)를 예를 들어 내부 버스(12)를 경유하여 슬레이브 인터럽트 컨트롤러(21, 22)에 통지하고, 스스로는 벡터의 출력 및 인터럽트 요구 플래그의 클리어를 행하지 않는다. 그 제어는 예를 들어 플래그 제어 로직 회로(FLGC)(43)에서 행하여진다.
슬레이브 인터럽트 컨트롤러(21, 22)는, 인터럽트 승인 신호(IntAck)가 활성화되고, 또한 캐스케이드 코드(CSCD)에 의해 스스로가 지정됨으로써, 상기 최우선으로 판정한 인터럽트 요구에 응하는 벡터를 내부 버스(12) 경유로 중앙 처리 장치(5)에 공급함과 함께, 당해 최우선으로 판정한 인터럽트 요구에 응하는 인터럽트 요구 플래그(IFLG)의 세트 상태를 리셋 상태로 클리어한다. 그 제어는 예를 들어 각각의 슬레이브 인터럽트 컨트롤러(21, 22)가 보유하는 플래그 제어 로직 회로(FLGC)(41, 42)에서 행하여진다.
FCLR는 플래그 제어 로직 회로(41, 42, 43)가 대응하는 인터럽트 요구 플래그 회로(31, 32, 33)에 출력하는 플래그 클리어 신호이다. 플래그 클리어 신호(FCLR)는 인터럽트 요구 플래그 회로(31, 32, 33)에서 클리어하는 인터럽트 요구 플래그를 지정하여 클리어하는 복수 비트의 신호이다.
중앙 처리 장치(5)는 인터럽트 컨트롤러(4, 21, 22) 중 하나로부터 공급된 벡터를 페치(fetch)하고, 그것에 기초하여 지정된 인터럽트 처리 루틴을 실행함으로써, 인터럽트 요구에 응답하는 인터럽트 처리를 행할 수 있다.
《인터럽트 제어계의 고장 검출》
상기 마이크로컴퓨터(1)는 특별히 제한되지 않지만, 자동차의 파워 트레인 또는 보디계 등의 기능 안전에 관련된 ECU 등에 탑재하여 이용되는 것이 상정된다. 그 경우에는, 기능 안전 관련의 인터럽트 요구의 종류가 다수에 이르고, 이중화된 마스터 인터럽트 컨트롤러(4)에 그 모든 인터럽트 요구를 수용할 수 없다. 기능 안전 관련의 인터럽트 요구를 이중화되어 있지 않은 슬레이브 인터럽트 컨트롤러에서 수취하는 경우에도, 다수에 걸친 기능 안전 관련의 인터럽트 처리의 신뢰성 향상을 위해 마이크로컴퓨터(1)에는, 인터럽트 컨트롤러 및 그 인터럽트 신호계의 고장을 용이하게 검출 가능하도록 고려되어 있다. 이하, 마이크로컴퓨터(1)에서의 그 인터럽트 제어계의 고장 검출 기술에 대하여 상세를 설명한다.
《고장 검출의 제1 실시 형태》
도 1에는 마이크로컴퓨터(1)에서의 인터럽트 제어계의 상세가 도시되어 있다.
제1 슬레이브 인터럽트 컨트롤러(21)에 있어서, 96개의 인터럽트 요구 신호(INT) [127:32]는 인터럽트 요구 플래그 회로(31)에 공급되고, 인터럽트 요구 신호(INT) [127:32]의 각각에 대응하여 인터럽트 요구 플래그(IFLG)가 설치되어 있다. 각각의 인터럽트 요구 플래그(IFLG)의 출력은 우선도·마스크 제어 로직 회로(51)에 공급되고, 중앙 처리 장치(5)에 의해 미리 설정된 마스크 설정 및 우선도 레벨에 기초하여 세트 상태의 플래그 출력 중 하나에 대응하는 하나의 인터럽트 요구를 접수하여 인터럽트 요구 신호(IntS1)를 출력한다.
특히, 인터럽트 요구 신호(INT) [127: 32] 중 1개는, 타이머(15)로부터 정기적으로 소정의 간격으로 발생되는 테스트 인터럽트 요구(OSTM)가 된다. 나머지 95개의 인터럽트 요구 신호는, 예를 들어 상기 기능 안전 관련의 인터럽트 처리 이외의 적당한 처리를 요구하는 비안전 관련 인터럽트 요구 신호(NSRS)이다.
제2 슬레이브 인터럽트 컨트롤러(22)에 있어서, 128개의 인터럽트 요구 신호(INT) [255:128]는 인터럽트 요구 플래그 회로(32)에 공급되고, 인터럽트 요구 신호(INT) [255:128]의 각각에 대응하여 인터럽트 요구 플래그(IFLG)가 설치되어 있다. 각각의 인터럽트 요구 플래그(IFLG)의 출력은 우선도·마스크 제어 로직 회로(52)에 공급되고, 중앙 처리 장치(5)에 의해 미리 설정된 마스크 설정 및 우선도 레벨에 기초하여, 세트 상태의 플래그 출력 중 하나에 대응하는 하나의 인터럽트 요구를 접수하여 인터럽트 요구 신호(IntS2)를 출력한다.
특히, 인터럽트 요구 신호(INT) [255:128] 중 일부는 상기 기능 안전 관련의 인터럽트 처리를 요구하는 안전 관련 인터럽트 요구 신호(SRS)이며, 나머지는 상기와 동일한 비안전 관련 인터럽트 요구 신호(NSRS)가 된다.
마스터 인터럽트 컨트롤러(4)에 있어서, 32개의 인터럽트 요구 신호(INT_PE) [31:0] 및 상기 인터럽트 신호(IntS1, IntS2)는 인터럽트 요구 플래그 회로(33)에 공급되고, 인터럽트 요구 신호(INT_PE) [31:0] 및 상기 인터럽트 신호(IntS1, IntS2)의 각각에 대응하여 인터럽트 요구 플래그(IFLG)가 설치되어 있다. 각각의 인터럽트 요구 플래그(IFLG)의 출력은 우선도·마스크 제어 로직 회로(53)에 공급되고, 중앙 처리 장치(5)에 의해 미리 설정된 마스크 설정 및 우선도 레벨에 기초하여, 세트 상태의 플래그 출력 중 하나에 대응하는 하나의 인터럽트 요구를 접수하여 인터럽트 신호(IntReq)를 출력한다. 인터럽트 요구 신호(INT_PE) [31:0]는 안전 관련 인터럽트 요구 신호(SRS) 또는 비안전 관련 인터럽트 요구 신호(NSRS)의 어느 것이어도 되고, 적절히 혼재되어 있어도 된다. 마스터 인터럽트 컨트롤러(4)는 이중화에 의해 그 신뢰성이 고도로 보증되어 있기 때문이다.
안전 관련 인터럽트 요구 신호(SRS)에 의한 인터럽트 신호계에 대한 고장 검출에 대하여 상세하게 설명한다. 중앙 처리 장치(5)는, 타이머(15)를 초기 설정하여 정기적으로 소정의 간격으로 테스트 인터럽트 요구(OSTM)를 발생시킨다. 중앙 처리 장치(5)는, 테스트 인터럽트 요구(OSTM)에 응답하여, 제2 슬레이브 인터럽트 컨트롤러(22)가 보유하는 안전 관련 인터럽트 요구 신호(SRS)에 대응하는 인터럽트 요구 플래그를 참조하고, 복수회의 상기 테스트 인터럽트 요구에 의한 참조에서 동일한 인터럽트 요구 플래그가 연속하여 복수회 세트 상태인 것을 판별함으로써, 안전 관련 인터럽트 요구 신호(SRS)에 의한 인터럽트 신호계에 어떠한 이상이 있다고 간주한다. 즉, 정기적으로 발생하는 테스트 인터럽트 요구(OSTM)마다 제2 슬레이브 인터럽트 컨트롤러(22) 내의 안전 관련 인터럽트 요구 신호(SRS)에 대응하는 인터럽트 요구 플래그(IFLG)를 참조한 결과, 동일한 인터럽트 요구 플래그(IFLG)가 2회 이상 계속하여 세트 상태로 되어 있는 것을 검출한 경우에는, 상기 세트 상태의 인터럽트 요구 플래그(IFLG)에 의한 인터럽트가 여전히 처리되지 않고 남아있게 되고, 이것이 장기간일수록 그 인터럽트 신호계에 고장이 발생하고 있는 개연성이 높다고 생각할 수 있다. 이 상태를 이상 있음으로 간주함으로써, 마이크로컴퓨터(1)가 제어하는 시스템의 기능 안전성을 향상시킬 수 있다. 특히, 슬레이브 인터럽트 컨트롤러(22)를 전면적으로 이중화하여 로크 스텝 아키텍처에 모두 의존시키지 않으므로, 회로 규모의 대폭적인 증대를 필요로 하지 않는다. 또한, 시간을 들여 빌트인 셀프 테스트를 위한 테스트 패턴을 제작하는 것도 필요로 하지 않고, 또한, 빌트인 셀프 테스트에 의해 전력 소비량이 대폭 증가하는 경우도 없다. 이와 같이, 회로 규모, 테스트 패턴 제작 시간 및 테스트에 수반되는 전력 소비량을 대폭 증가시키지 않고 인터럽트 제어계의 이상을 검출할 수 있다. 여기서 상정하는 인터럽트 제어계의 이상은, 제2 슬레이브 인터럽트 컨트롤러(22)의 인터럽트 요구 신호의 입력으로부터 마스터 인터럽트 컨트롤러(4)를 거쳐서 중앙 처리 장치(5)에서의 인터럽트 신호(IntReq)의 입력에 이르기까지의 경로에서 상정되는 이상이다. 그에 의하여 상정되는 이상에 대처 가능한 예외 처리나 리커버리 처리 등을, 이상 있음의 판별 결과에 대한 중앙 처리 장치(5)에 의한 새로운 응답 처리로서 준비해가면 된다. 그 내용에 대해서는 상술한 바와 같이 전혀 제한되지 않는다.
상기 테스트 인터럽트 요구(OSTM)는 타이머(15)을 사용한 타이머 인터럽트 요구를 사용하므로, 테스트 인터럽트 요구(OSTM)를 정기적으로 발생시키는 간격을 중앙 처리 장치(5)의 제어에 기초하여 임의로 결정할 수 있다. 게다가, 테스트 인터럽트 요구는 유저 모드에서의 중앙 처리 장치(5)가 그 소프트웨어(예를 들어, 유저 프로그램)에 따라 타이머(15)로부터 정기적으로 발생시킨다. 따라서, 유저 모드로부터 특별한 테스트 모드에의 천이를 필요로 하지 않고, 또한, 테스트 인터럽트에 의한 처리를 유저 모드에서의 하나의 인터럽트 처리로서 실행하므로, 시스템 상 또는 실기 상에서 경년 변화로 인한 인터럽트 제어계의 열화를 검출할 수 있다.
정기적으로 테스트 인터럽트 요구(OSTM)를 발생시키는 간격은, 예를 들어 안전 관련의 인터럽트 요구에 의한 페일세이프 처리에서 고려되는 FTTI(Fault Tolerant Time Interval)보다도 짧은 시간이다. 정상적이라면 안전 관련의 인터럽트 요구에 의한 처리는 FTTI 시간보다도 빨리 완료되어 그 인터럽트 요구 플래그는 세트 상태로부터 클리어된다. 이에 비해, 이상이 있으면 안전 관련의 인터럽트 요구에 의한 처리는 FTTI 시간을 경과해도 완료되지 않고, 그 인터럽트 요구 플래그는 세트 상태인채로 된다. 따라서, 테스트 인터럽트 요구의 발생 간격을 FTTI 시간보다도 짧게 설정함으로써 제1회째의 테스트 인터럽트 요구의 처리와 제2회째의 테스트 인터럽트 요구의 처리에서, 동일 인터럽트 요구 플래그가 2회 연속하여 세트 상태인 것을 판별함으로써, 이상 있음으로 간주하는 것이 가능해진다.
도 3에는 상기 테스트 인터럽트 요구(OSTM)에 응답하는 중앙 처리 장치(5)의 동작 플로우가 예시되어 있다. 중앙 처리 장치는 테스트 인터럽트 요구(OSTM)에 의한 인터럽트 신호(IntReq)가 활성화됨으로써 OSTM 인터럽트 루틴에 들어가서 테스트를 개시한다(S1).
우선, 중앙 처리 장치(5)은 안전 관련 인터럽트 요구 신호(SRS)에 따른 모든 인터럽트 요구 플래그(안전 관련 인터럽트 요구 플래그)를 인터럽트 요구 플래그 회로(32)로부터 판독한다(S2). 중앙 처리 장치(5)는 판독한 안전 관련 인터럽트 요구 플래그가 세트 상태(예를 들어, 논리값 1)인지 여부를 판별한다(S3). 중앙 처리 장치는 인터럽트 요구 플래그마다 인터럽트 스테이터스를 갖고, 인터럽트 요구 플래그의 세트 상태를 판별할 때마다 대응하는 인터럽트 스테이터스에게 값 1을 가산한다(S4). 이에 의해 인터럽트 스테이터스의 값이 2가 되어 있는지 여부를 판별한다(S5). 판별한 결과, 2가 되어 있으면 테스트 페일 플래그를 세트하고(S6), 2가 되어 있지 않으면 테스트 페일 플래그를 조작하지 않고 테스트 패스가 된다(S8). 스텝 S3에서 안전 관련 인터럽트 요구 플래그가 세트 상태가 아니면(예를 들어, 논리값 0) 대응하는 인터럽트 스테이터스를 값 0으로 클리어하여(S7), 테스트 패스가 된다(S8). 또한, FTTI와 타이머(15)에 의한 테스트 인터럽트 요구 신호(OSTM)의 발생 간격의 설정의 관계 등에 의해, 테스트 페일로 하는 인터럽트 스테이터스의 값을 3 이상으로 해도 되는 것은 말할 필요도 없다.
테스트 페일 플래그가 세트되면, 예를 들어 그것에 대응하는 소정의 에러 처리가 중앙 처리 장치(5)에 의해 행하여진다. 예를 들어, 테스트 페일이 된 경우에는, 인터럽트 요구 플래그가 세트되어 있는 인터럽트 요구가, 인터럽트의 우선도가 낮으므로 인터럽트 처리의 실행이 개시되어 있지 않거나, 고장 때문에 인터럽트 처리의 실행이 개시되지 않는 것인지를 판정할 필요가 있다. 예를 들어, 중앙 처리 장치(5)에서 모든 인터럽트 요구 플래그를 확인하고, 우선도가 높은 별도의 인터럽트 요구가 세트되어 있지 않은 경우에는, 고장으로 판정할 수 있다. 우선도가 높은 인터럽트 요구가 세트되어 있는 경우에는, 당해 고우선도의 인터럽트 실행 완료 후에, 테스트 페일의 원인이 된 인터럽트 요구에 응하는 인터럽트 처리가 실행되는 것을 확인하면 된다. 고장으로 판정된 경우, 예를 들어 상위의 소프트웨어가 시스템을 안전한 상태로 이행시키기 위한 처리를 행하면 된다.
도 4에는 테스트 인터럽트 요구(OSTM)에 응답하는 테스트 인터럽트 처리의 동작 타이밍이 예시되어 있다. 테스트 인터럽트 요구(OSTM)에 응답하는 OSTM 인터럽트 처리 루틴에 들어감으로써, 테스트가 개시되고, 중앙 처리 장치(5)에 의해 안전 관련 인터럽트 요구 플래그의 판독이 행하여진다.
동작 ACT1에 예시된 바와 같이, 판독한 안전 관련 인터럽트 요구 플래그가 클리어 상태(논리값 0, 로우 레벨)인 경우에는 테스트 패스가 된다(t1). OSTM 인터럽트 루틴이 종료(t2)한 후, SRS 안전 관련 인터럽트 요구가 있었을 때는 안전 관련 인터럽트 요구 플래그가 세트 상태(논리값 1, 하이 레벨)가 되지만(t3), 당해 인터럽트 요구가 중앙 처리 장치(5)에 접수됨으로써, 그 안전 관련 인터럽트 요구 플래그는 중앙 처리 장치(5)에 의해 다시 클리어된다(t4).
동작 ACT2에 예시된 바와 같이, OSTM 인터럽트 루틴의 개시(t11) 후에, SRS 안전 관련 인터럽트 요구가 있으면, 안전 관련 인터럽트 요구 플래그가 세트 상태(논리값 1, 하이 레벨)가 된다(t12). 이 경우, 판독한 당해 안전 관련 인터럽트 요구 플래그는 세트 상태로 되어 있지만(t13), OSTM 인터럽트 루틴이 종료(t14)된 후, 상기 세트 상태의 안전 관련 인터럽트 요구 플래그에 대응하는 인터럽트 요구가 중앙 처리 장치(5)에 접수됨으로써 당해 안전 관련 인터럽트 요구 플래그는 클리어된다(t15). 이러한 타이밍으로 안전 관련 인터럽트 요구가 발생하는 경우가 있지만, 대응하는 안전 관련 인터럽트 요구 플래그에 대하여 검출되는 세트 상태는 1회이므로, OSTM 인터럽트 루틴에 의한 테스트 결과는 테스트 패스가 된다.
동작 ACT3에 예시된 바와 같이, 동작 ACT2의 다음의 OSTM 인터럽트 루틴으로 안전 관련 인터럽트 요구 플래그가 세트 상태가 아니면 테스트 패스가 되지만(t16_a), t16_b에 예시된 바와 같이 2회 연속으로 안전 관련 인터럽트 요구 플래그가 세트되어 있는 경우에는, 전회의 인터럽트 요구가 여전히 중앙 처리 장치(5)에 접수되지 않고, 당해 안전 관련 인터럽트 요구 플래그가 클리어되지 않고 그대로 남아있는, 즉, 안전 관련 인터럽트 신호계에 고장이 발생하고 있을 가능성이 높다고 생각할 수 있다. 따라서, 이 경우에는 테스트 페일로 한다.
제1 실시 형태에 의하면 이하의 작용 효과를 얻는다.
(1) 정기적으로 발생하는 테스트 인터럽트 요구(OSTM)마다 슬레이브 인터럽트 컨트롤러(22) 내의 안전 관련 인터럽트 요구 플래그를 참조한 결과, 동일한 안전 관련 인터럽트 요구 플래그가 2회 이상 계속하여 세트 상태로 되어 있는 것을 검출한 경우에는, 당해 세트 상태의 안전 관련 인터럽트 요구 플래그에 의한 인터럽트가 여전히 중앙 처리 장치(5)에서 처리되지 않고 남아있게 되고, 그 인터럽트 신호계에 고장이 발생하고 있을 개연성이 높다고 생각할 수 있다. 이 상태를 이상 있음으로 간주함으로써, 마이크로컴퓨터(1)가 제어하는 시스템의 기능 안전성을 향상시킬 수 있다.
(2) 슬레이브 인터럽트 컨트롤러(22)를 이중화하여 로크 스텝 아키텍처에 모두 의존시키지 않으므로, 회로 규모의 대폭적인 증대를 필요로 하지 않는다.
(3) 또한, 시간을 들여 빌트인 셀프 테스트를 위한 테스트 패턴을 제작하는 것도 필요로 하지 않고, 또한, 빌트인 셀프 테스트에 의해 전력 소비량이 대폭 증가하는 경우도 없다.
(4) 테스트 인터럽트 요구와 인터럽트 요구 플래그의 참조 대상으로 되는 인터럽트 요구를 상이한 슬레이브 인터럽트 컨트롤러(21, 22)에 입력함으로써, 캐스케이드 접속 구성의 경우에도, 테스트 인터럽트 요구에 의한 인터럽트 처리에서 인터럽트 요구 플래그를 참조하는 범위를 기능 안전 관련의 인터럽트 요구측의 제2 슬레이브 인터럽트 컨트롤러(22)로 한정할 수 있다. 그리고, 이상 있음으로 간주된 경우에, 그 이상에 대한 대처의 범위를 제2 슬레이브 인터럽트 컨트롤러(22)를 포함하는 인터럽트 신호계로 한정하여 행하는 것이 가능해진다.
(5) 마스터 인터럽트 컨트롤러(4)에 대하여 슬레이브 인터럽트 컨트롤러(21, 22)를 캐스케이드 접속하는 구성을 채용함으로써, 1개의 인터럽트 컨트롤러로 전부 처리할 수 없는 다수의 기능 안전 관련의 인터럽트 요구 신호에 대하여 대응할 수 있다.
(6) 마스터 인터럽트 컨트롤러(4) 및 중앙 처리 장치(5)를 이중화하여 로크 스텝 아키텍처를 채용함으로써, 면적적으로 허용되는 일부에 로크 스텝 아키텍처가 채용되므로 기능 안전성의 향상에 한층 더 이바지할 수 있다.
(7) 테스트 인터럽트 요구(OSTM)에, 소정의 간격으로 타이머(15)로부터 발생되는 타이머 인터럽트 요구를 사용함으로써, 테스트 인터럽트 요구(OSTM)를 정기적으로 발생시키는 간격을 중앙 처리 장치(5)의 제어에 기초하여 임의로 결정할 수 있다.
(8) 마이크로컴퓨터(1)는 안전 관련의 인터럽트 요구를 다용하는 페일세이프 기능을 탑재한 차량 탑재 제어 용도의 마이크로컴퓨터에 적합하다.
(9) 테스트 인터럽트 요구(OSTM)의 발생 간격은 FTTI 시간보다도 짧게 설정된다. 따라서, 제1회째의 테스트 인터럽트 요구의 처리와 제2회째의 테스트 인터럽트 요구의 처리에서, 동일 인터럽트 요구 플래그가 2회 연속하여 세트 상태인 것을 판별하여, 이상 있음으로 간주하는 것이 가능해진다.
(10) 테스트 인터럽트 요구(OSTM)는 유저 모드에서의 중앙 처리 장치(5)의 제어에 따라 상기 타이머(15)로부터 정기적으로 발생된다. 유저 모드로부터 특별한 테스트 모드에의 천이를 필요로 하지 않고, 테스트 인터럽트에 의한 처리를 유저 모드에서의 하나의 인터럽트 처리로서 실행할 수 있다. 따라서, 시스템 상 또는 실기 상에서 경년 변화로 인한 열화를 용이하게 검출할 수 있다.
《고장 검출의 제2 실시 형태》
제1 실시 형태에서 설명한 바와 같이, 안전 관련의 인터럽트 요구에 대한 처리계의 고장을 중앙 처리 장치(5)의 소프트웨어를 사용하여 검출하기 위해서는, 타이머 인터럽트로서 테스트 인터럽트 요구(OSTM)가 정기적으로 발생하는 것을 전제로 한다. 따라서, 타이머 회로(15)에서 테스트 인터럽트 요구(OSTM)를 발생시키는 타이머 채널이 고장나거나, 테스트 인터럽트 요구(OSTM)의 경로부터 슬레이브 인터럽트 컨트롤러(21)를 경유하여 마스터 인터럽트 컨트롤러(4)에 이르기까지의 인터럽트 신호계에 고장이 발생한 경우에는, 상기 소프트웨어 테스트를 실행할 수 없게 된다. 고장 검출의 제2 실시 형태에서는, 테스트 인터럽트 요구(OSTM)의 발생원, 나아가 그 요구 신호의 처리계도 이중화된다.
도 5에는 마이크로컴퓨터(1)의 인터럽트 제어계로서 제2 실시 형태에 관한 주된 구성이 예시되어 있다. 도 5에서 OSTMa, OSTMb는 이중화된 테스트 인터럽트 요구이며, 각각은 이중화된 개별의 타이머 채널(15a, 15b)로부터 출력된다. 타이머 회로(15)는 각각 개별로 타이머 설정 가능한 복수의 타이머 채널을 갖고, 이것을 이용하여 타이머 채널(15a, 15b)이 형성된다. 타이머 채널(15a, 15b)에는 동일한 타이밍으로 반복 타이머 동작이 가능하도록 타이머 설정되고, 양쪽의 타이머 채널(15a, 15b)이 정상적으로 동작되는 한, 이중화된 테스트 인터럽트 요구(OSTMa, OSTMb)는 동일한 신호 파형을 나타낸다. 테스트 인터럽트 요구(OSTMa, OSTMb)는 슬레이브 인터럽트 컨트롤러(21A)에 공급되고, 이에 의해 슬레이브 인터럽트 컨트롤러(21A)의 출력은 마스터 인터럽트 컨트롤러(4A)에 공급된다.
도 6에는 이중화된 테스트 인터럽트 요구(OSTMa, OSTMb)에 착안했을 때의 슬레이브 인터럽트 컨트롤러(21A) 및 마스터 인터럽트 컨트롤러(4A)의 구체예가 도시되어 있다. 슬레이브 인터럽트 컨트롤러(21A)는, 테스트 인터럽트 요구(OSTMa)에 의한 테스트 인터럽트 요구와 다른 인터럽트 요구에 대한 우선도 및 마스크 판정의 제어를 행하는 우선도·마스크 제어 로직 회로(PMLGC)(70)와, 테스트 인터럽트 요구(OSTMb)에 의한 테스트 인터럽트 요구와 다른 인터럽트 요구에 대한 우선도 및 마스크 판정의 제어를 행하는 우선도·마스크 제어 로직 회로(PMLGC)(71)를 따로따로 갖는다. 우선도·마스크 제어 로직 회로(PMLGC)(70)는 우선도 및 마스크 판정의 제어 결과로서 인터럽트 신호(IntS1a)를 출력하고, 우선도·마스크 제어 로직 회로(PMLGC)(71)는 우선도 및 마스크 판정의 제어 결과로서 인터럽트 신호(IntS1b)를 출력한다.
배타적 논리합 게이트(60)는 인터럽트 신호 IntS1a와 IntS1b가 일치하는지 여부를 판별하여 에러 신호(ERRtmr)를 생성한다. 에러 제어 회로(7)는 그 에러 신호에 의해 타이머 인터럽트 신호 IntS1a와 IntS1b의 불일치 및 타이머 채널(15a, 15b)의 이상을 판별한다. 마스터 인터럽트 컨트롤러(4A)는 인터럽트 신호 IntS1a와 IntS1b의 양쪽을 논리곱 게이트(62)에 입력하고, 양쪽이 모두 활성화되어 있는 경우에 활성화된 인터럽트 신호(IntS1)를 우선도·마스크 제어 로직 회로(PMLGC)(61)에 공급한다. 따라서, 우선도·마스크 제어 로직 회로(PMLGC)(61)는 인터럽트 신호 IntS1a와 IntS1b의 논리곱 신호를 하나의 인터럽트 요구로서 처리한다.
제2 실시 형태에 의하면, 테스트 인터럽트 요구(OSTMa, OSTMb)의 불일치는 에러 제어 회로(7)에서 검출되고, 그 불일치는 OSTM 인터럽트 처리 루틴의 개시 전에 검출 가능하므로, 테스트 인터럽트 요구에 의한 인터럽트 처리의 결과에 대한 타당성을 보증할 수 있다. 따라서, 테스트 인터럽트 요구에 기초하는 중앙 처리 장치(5)에 의한 소프트웨어 테스트가 OSTM 테스트 인터럽트 처리계의 고장으로 인해 실행할 수 없는 상태를 피할 수 있고, 시스템의 기능 안전이라는 관점에서, 보다 안전성을 높일 수 있다.
또한, 제2 실시 형태에서의 그 밖의 구성과 작용 효과는 제1 실시 형태와 동일하므로 그 상세한 설명은 생략한다.
《고장 검출의 제3 실시 형태》
안전 관련의 인터럽트 제어계에서의 고장 검출은, 기능 안전을 고려하여, 안전 관련의 인터럽트 요구 신호계에 고장이 발생하고 있지 않은 것을 시스템 통상 동작중에 중앙 처리 장치(5)에 의한 소프트웨어 테스트에서 체크하는 것이다. 제3 실시 형태에서는, 고장 검출 결과가 테스트 페일인 경우에, 시스템을 안전한 상태로 이행시키는 처리를 행하는 것이 아니고, 본래의 처리를 계속하려고 하는 것이다. availability(가용성)의 관점에서는, 고장이 발생한 경우에도 통상 동작의 계속이 요구되는 경우가 있기 때문이다.
도 7에는 마이크로컴퓨터(1)의 인터럽트 제어계로서 제3 실시 형태에 관한 주된 구성이 예시되어 있다. 제3 실시 형태에서는 안전 관련 인터럽트 요구 신호(SRS)로부터 하나를 선택하여 제1 슬레이브 인터럽트 컨트롤러(21)에 하나의 인터럽트 요구 신호로서 공급하는 셀렉터(80)를 설치하였다. 셀렉터(80)에 의한 선택은 예를 들어 중앙 처리 장치(5)가 출력하는 선택 신호(SEL)에 의해 행하여진다. 중앙 처리 장치(5)는, 제2 슬레이브 인터럽트 컨트롤러(22)의 안전 관련의 인터럽트 요구 신호(SRS)에 관한 인터럽트 요구 플래그를 참조하여 이상 있음으로 간주했을 때, 복수회의 상기 테스트 인터럽트 요구에 의한 참조에서 동일한 인터럽트 요구 플래그가 연속하여 복수회 세트 상태라고 판별한 당해 인터럽트 요구 플래그에 대응하는 인터럽트 요구를, 선택 신호(SEL)를 사용하여 셀렉터(80)로 선택하고, 제1 슬레이브 인터럽트 컨트롤러(21)에 공급하는 처리를 행한다. 따라서, 인터럽트 신호계에 고장이 상정되는 안전 관련의 인터럽트 요구를 제1 슬레이브 인터럽트 컨트롤러(21)를 통과하는 인터럽트 신호계에서 처리하는 것이 가능해진다. 그러한 처리에 의해 당해 인터럽트 요구에 의한 본래의 처리가 계속 가능해진다. 요컨대, 시스템 상에서 문제가 발생했을 때의 응급 조치로서 계속적인 처리가 가능해진다. 바꾸어 말하면, 시스템의 availability(가용성)을 향상시킬 수 있다. 또는, fail operational(fail operable)성을 높일 수 있다. 또한, 그 경우에, 제2 슬레이브 인터럽트 컨트롤러에서 중앙 처리 장치로 처리되지 않은 것이 검출된 인터럽트 요구 플래그는 클리어하지 않고 그대로 해 두는 것이 바람직하다. 응급 조치가 가능해져도 당해 이상을 항상 검출 가능하게 해가는 것이 시스템의 안전성이라는 점에서 득책이기 때문이다.
또한, 제3 실시 형태에서의 그 밖의 구성과 작용 효과는 제1 실시 형태와 동일하므로 그 상세한 설명은 생략한다. 특히 도시하고 있지는 않지만, 제2 실시 형태에 제3 실시 형태를 적용하는 것도 가능하다.
《고장 검출의 제4 실시 형태》
도 8에는 마이크로컴퓨터(1)의 인터럽트 제어계로서 제4 실시 형태에 관한 주된 구성이 예시되어 있다. 제1 내지 제3의 실시 형태에서는 마스터 인터럽트 컨트롤러(4)는 슬레이브 인터럽트 컨트롤러(21, 22)로부터의 인터럽트 신호(IntS1, IntS2)에 대하여 인터럽트 요구 플래그(IFLG)를 구비하고 있지 않다. 제4 실시 형태의 마스터 인터럽트 컨트롤러(4B)에는 인터럽트 신호(IntS1, IntS2)에 대하여 인터럽트 요구 플래그(IFLG)를 설치한 인터럽트 요구 플래그 회로(33B)를 채용한다. 인터럽트 신호(IntS1, IntS2)에 대응하여 인터럽트 요구 플래그 회로(33B)에 설치된 인터럽트 요구 플래그(IFLG)는, 인터럽트 신호(IntS1, IntS2)가 활성화됨으로써 세트된다. 인터럽트 신호(IntS1, IntS2)에 따른 인터럽트가 우선도·마스크 제어 로직 회로(PMLGC)(53)에 접수되어 인터럽트 신호(IntReq)가 활성화되었을 때, 이에 응답하여 중앙 처리 장치(5)로부터 인터럽트 승인 신호(IntAck)가 되돌아오면, 플래그 제어 회로(43B)는, CSCD를 슬레이브 인터럽트 컨트롤러(21, 22)를 향하여 출력함과 함께, 그 때 접수된 인터럽트 신호 IntS1 또는 IntS2에 따른 인터럽트 요구 플래그(IFLG)를 클리어한다. 즉, 인터럽트 신호(IntS1, IntS2)에 따른 인터럽트 요구 플래그(IFLG)에 대한 조작도 다른 인터럽트 요구 플래그와 동일한 조작으로 된다.
이와 같이, 마스터 인터럽트 컨트롤러(4B)에도 슬레이브 인터럽트 컨트롤러(21, 22)로부터의 인터럽트 요구 신호(IntS1, IntS2)에 따른 인터럽트 요구 플래그를 가지면, 상술한 테스트 인터럽트 요구에 기초하는 OSTM 인터럽트 처리 루틴에서 테스트 페일된 경우에, 어느 경로가 고장나 있는지를 특정하는데도 도움이 된다. 테스트 페일된 경우에 마스터 인터럽트 컨트롤러(4B)의 인터럽트 신호 IntS1 또는 IntS2에 따른 인터럽트 요구 플래그(IFLG)도 판독하여 이용하면 된다. 예를 들어, 복수회의 OSTM 인터럽트 처리 루틴에서 연속하여 2회, 슬레이브 인터럽트 컨트롤러(22) 내의 동일한 인터럽트 요구 플래그가 세트 상태인 것을 판별한 경우에, 마스터 인터럽트 컨트롤러(4B)에 추가한 상기 인터럽트 요구 플래그는 세트 상태로 되어 있지 않은 경우에는, 슬레이브 인터럽트 컨트롤러로부터 마스터 인터럽트 컨트롤러의 입력에 이르는 경로가 고장나 있다고 생각할 수 있다. 또한, 슬레이브 인터럽트 컨트롤러(22)와 마스터 인터럽트 컨트롤러(4B)의 양쪽에서 당해 인터럽트 요구 플래그가 세트 상태로 되어 있는 경우에는, 슬레이브 인터럽트 컨트롤러(22)의 내부 또는 마스터 인터럽트 컨트롤러(4B)로부터 중앙 처리 장치(5)의 인터럽트 입력에 이르는 경로에 이상 있음으로 간주할 수 있다.
이에 의하면, 캐스케이드 접속된 인터럽트 요구에 관한 슬레이브측과 마스터측의 각각의 인터럽트 요구 플래그의 상태를 참조함으로써, 고장 개소가 예를 들어 마스터 인터럽트 컨트롤러의 인터럽트 요구 플래그의 전방인지 아닌지를 판별 가능해진다. 테스트 페일된 경우에, 고장 경로의 특정에 이바지할 수 있다.
또한, 제4 실시 형태에서의 그 밖의 구성은 제1 실시 형태와 동일하므로 그 상세한 설명은 생략한다. 특별히 도시하고 있지는 않지만, 제2 또는 제3의 실시 형태에 제4 실시 형태를 적용하는 것도 가능하다.
《고장 검출의 제5 실시 형태》
도 9에는 마이크로컴퓨터(1)의 인터럽트 제어계로서 제5 실시 형태에 관한 주된 구성이 예시되어 있다. 제5 실시 형태는 제2 실시 형태에 관한 구성을 유용한 것이며, 제1 슬레이브 인터럽트 컨트롤러(21A)를 비안전 관련 인터럽트 요구 신호(NSRS)에 한정하지 않고, 안전 관련 인터럽트 요구 신호(SRS)도 공급하여 이용 가능하게 한 것이 제2 실시 형태와의 상위점이다. 따라서, OSTM 인터럽트 루틴에서 중앙 처리 장치(5)는 제1 슬레이브 인터럽트 컨트롤러(21A)에서의 안전 관련 인터럽트 요구 신호(SRS)에 따른 인터럽트 요구 플래그에 대해서도, 연속하여 복수회 세트 상태로 되어 있는지 여부의 판별을 행하게 된다. 또한, 도면에서는 제1 슬레이브 인터럽트 컨트롤러(21A)에는 비안전 관련 인터럽트 요구 신호(NSRS)가 입력되어 있지 않지만, 비안전 관련 인터럽트 요구 신호(NSRS)와 안전 관련 인터럽트 요구 신호(SRS)와 혼재시켜서 입력해도 되는 것은 물론이다.
제2 실시 형태와 같이 테스트 인터럽트 요구(OSTM)의 생성 계통을 이중화하면 제1 슬레이브 인터럽트 컨트롤러(21A)로부터 중앙 처리 장치(5)에 이르는 경로에 고장이 없는 것을 확인한 뒤에 OSTM 인터럽트 처리 루틴에 의한 소프트웨어 테스트를 실시할 수 있다. 따라서, 안전 관련의 인터럽트 요구를 제2 슬레이브 인터럽트 컨트롤러(22)에 집약시킬 필요는 없고, 제1 슬레이브 인터럽트 컨트롤러에 입력하는 것도 가능해지기 때문이다.
이에 의하면, 테스트 인터럽트 요구의 발생으로부터 그것의 접수 제어에 대한 이상의 발생을 확실하게 검출할 수 있고, 테스트 인터럽트 요구가 정상적으로 발생하여 중앙 처리 장치(5)에 접수 가능하게 되는 것을 용이하게 보증할 수 있다. 바꾸어 말하면, 제1 슬레이브 인터럽트 컨트롤러(21A)에 의한 인터럽트 요구의 접수 처리와 마스터 인터럽트 컨트롤러(4)에의 신호 경로에 대한 이상이 검출 가능하게 되어 있으므로, 기능 안전 관련의 인터럽트 요구 신호의 입력을 제2 슬레이브 인터럽트 컨트롤러(22)에 한정하지 않고, 제1 슬레이브 인터럽트 컨트롤러(21A)에 공급함으로써 기능 안전성의 향상에 한층 더 이바지할 수 있다. 따라서, 안전 관련 인터럽트 요구 신호(SRS)의 개수가 많아져서 제2 슬레이브 인터럽트 컨트롤러(22)에 수용할 수 없게 된 경우에, 용이하게 대응 가능해진다.
또한, 제5 실시 형태에서의 그 밖의 구성은 제2 실시 형태와 동일하므로 그 상세한 설명은 생략한다.
《고장 검출의 제6 실시 형태》
도 10 및 도 11에는 마이크로컴퓨터(1)의 인터럽트 제어계로서 제6 실시 형태에 관한 주된 구성이 예시되어 있다. 지금까지의 실시 형태에서는 테스트 인터럽트 요구(OSTM)를 슬레이브 인터럽트 컨트롤러(18, 21, 21A)에 공급하였다. 이것에 한정되지 않고, 도 10 및 도 11과 같이 마스터 인터럽트 컨트롤러(4)에 공급해도 된다. 이중화에 의해 로크 스텝 아키텍처가 채용된 마스터 인터럽트 컨트롤러(4)에 테스트 인터럽트 요구(OSTM)를 공급함으로써, 테스트 인터럽트 요구(OSTM)의 처리 경로의 이상 발생이 용이하게 검출되므로, 제2 실시 형태와 마찬가지로, 테스트 인터럽트 요구에 기초하는 중앙 처리 장치(5)에 의한 소프트웨어 테스트가 OSTM 테스트 인터럽트 처리계의 고장으로 인해 실행할 수 없는 상태를 피할 수 있고, 시스템의 기능 안전이라는 관점에서, 보다 안전성을 높일 수 있다.
또한, 도 11에 예시된 바와 같이, 슬레이브 인터럽트 컨트롤러(18)를 1개의 슬레이브 인터럽트 컨트롤러(22)로 실현하는 것도 가능하다. 또한, 도시하고 있지는 않지만, 마스터 인터럽트 컨트롤러에 캐스케이드 연결된 슬레이브 인터럽트 컨트롤러의 수는 3개 이상이어도 되고, 마스터 인터럽트 컨트롤러에 대한 복수의 슬레이브 인터럽트 컨트롤러의 접속 형태는 병렬적인 접속 형태에 한정되지 않고, 계층적인 캐스케이드 접속이어도 된다. 캐스케이드 접속의 계층 접속 단수는 당연히 3단 이상이어도 되는 것은 말할 필요도 없다.
본 발명은 상기 실시 형태에 한정되지 않고, 그 요지를 일탈하지 않는 범위에서 종종 변경 가능한 것은 말할 필요도 없다.
예를 들어, 중앙 처리 장치 및 마스터 인터럽트 컨트롤러는 이중화하여 로크 스텝 아키텍처를 채용하는 구성에 한정되지 않는다. 중앙 처리 장치만을 이중화하여 로크 스텝 아키텍처를 채용하는 구성이어도 된다. 중앙 처리 장치는 프로세서 코어와 동일한 의의로 해석해도 된다. 즉, 프로세서 코어는 예를 들어 중앙 처리 장치와 함께, 캐시 메모리, TLB 및 부동 소수점 연산 유닛 등의 액셀러레이터를 포함한다.
인터럽트 컨트롤러를 캐스케이드 접속했을 때의 인터럽트 요구 플래그의 클리어 방법이나 벡터의 출력 방법은 상기 실시 형태에 한정되지 않고 적절히 변경 가능하다. 코드CSCD의 전달은 슬레이브 인터럽트 컨트롤러마다 전용 신호로 행해도 되고, 플래그 클리어 신호(FCLR)도 그 전용 신호를 유용해도 된다.
또한, 반도체 칩의 면적 효율의 점에서 여유가 있으면, 일부의 슬레이브 인터럽트 컨트롤러에 이중화에 의한 로크 스텝 아키텍처를 채용하는 것은 방해할 수 없다. 이 경우에 문제시되는 안전 관련 인터럽트 신호는 당연히 이중화에 의한 로크 스텝 아키텍처를 채용하고 있지 않은 인터럽트 컨트롤러에 공급되는 인터럽트 요구 신호이다.
또한, 본 발명은 싱글 프로세서 코어의 마이크로컴퓨터뿐만 아니라 멀티프로세서 코어의 마이크로컴퓨터에도 당연히 적용 가능하다. 또, 마이크로컴퓨터는, 데이터프로세서, 마이크로프로세서, SoC(System On Chip)형 반도체 디바이스 등의 데이터 처리 디바이스의 총칭이다. 1칩 디바이스이어도 되고, 멀티칩을 모듈화한 모듈 디바이스이어도 된다.
또한, 마이크로컴퓨터는 차량 탑재 용도에 한정되지 않는다. 또한, 테스트 인터럽트 요구에 응답하는 인터럽트 처리 루틴에서 참조하는 인터럽트 요구 플래그는 기능 안전 관련 인터럽트 요구 플래그에 한정되지 않는다. 상기 실시 형태에서도 비기능 안전 관련 인터럽트 요구 플래그를 참조 대상에 포함시켜서 고장 검출을 행해도 된다.
1 : 마이크로컴퓨터
2 : 프로세싱 엘리먼트(PE0)
3 : 프로세싱 엘리먼트(PE1)
4, 4A, 4B : 마스터 인터럽트 컨트롤러(INTC1)
5 : 중앙 처리 장치(CPU)
6 : 비교부(COMP)
7 : 에러 제어 회로(ERRCNT)
15 : 타이머 회로(TMR)
18 : 슬레이브 인터럽트 컨트롤러(INTC2)
21, 21A : 제1 슬레이브 인터럽트 컨트롤러(INTC2_0)
22 : 제2 슬레이브 인터럽트 컨트롤러(INTC2_1)
IFLG : 인터럽트 요구 플래그
IntS1, IntS2, IntReq : 인터럽트 신호
31, 32, 33, 33B : 인터럽트 요구 플래그 회로
41, 42, 43, 43B : 플래그 제어 로직 회로(FLGC)
51, 52, 53, 51A, 53A : 우선도·마스크 제어 로직 회로(PMLGC)
CSCD : 캐스케이드 코드
INT [127: 32] : 인터럽트 요구 신호
OSTM : 테스트 인터럽트 요구
NSRS : 비안전 관련 인터럽트 요구 신호
SRS : 안전 관련 인터럽트 요구 신호
INT [255: 128] : 인터럽트 요구 신호
INT_PE [31: 0] : 인터럽트 요구 신호
OSTMa, OSTMb : 이중화된 테스트 인터럽트 요구
15a, 15b : 타이머 채널
60 : 배타적 논리합 게이트
61 : 우선도·마스크 제어 로직 회로(PMLGC)
62 : 논리곱 게이트
70, 71 : 우선도·마스크 제어 로직 회로(PMLGC)
80 : 셀렉터
SEL : 선택 신호
2 : 프로세싱 엘리먼트(PE0)
3 : 프로세싱 엘리먼트(PE1)
4, 4A, 4B : 마스터 인터럽트 컨트롤러(INTC1)
5 : 중앙 처리 장치(CPU)
6 : 비교부(COMP)
7 : 에러 제어 회로(ERRCNT)
15 : 타이머 회로(TMR)
18 : 슬레이브 인터럽트 컨트롤러(INTC2)
21, 21A : 제1 슬레이브 인터럽트 컨트롤러(INTC2_0)
22 : 제2 슬레이브 인터럽트 컨트롤러(INTC2_1)
IFLG : 인터럽트 요구 플래그
IntS1, IntS2, IntReq : 인터럽트 신호
31, 32, 33, 33B : 인터럽트 요구 플래그 회로
41, 42, 43, 43B : 플래그 제어 로직 회로(FLGC)
51, 52, 53, 51A, 53A : 우선도·마스크 제어 로직 회로(PMLGC)
CSCD : 캐스케이드 코드
INT [127: 32] : 인터럽트 요구 신호
OSTM : 테스트 인터럽트 요구
NSRS : 비안전 관련 인터럽트 요구 신호
SRS : 안전 관련 인터럽트 요구 신호
INT [255: 128] : 인터럽트 요구 신호
INT_PE [31: 0] : 인터럽트 요구 신호
OSTMa, OSTMb : 이중화된 테스트 인터럽트 요구
15a, 15b : 타이머 채널
60 : 배타적 논리합 게이트
61 : 우선도·마스크 제어 로직 회로(PMLGC)
62 : 논리곱 게이트
70, 71 : 우선도·마스크 제어 로직 회로(PMLGC)
80 : 셀렉터
SEL : 선택 신호
Claims (18)
- 중앙 처리 장치와, 인터럽트 컨트롤러를 갖는 마이크로컴퓨터로서,
상기 중앙 처리 장치는, 정기적으로 소정의 간격으로 발생되는 소정의 테스트 인터럽트 요구에 응답하여, 상기 인터럽트 컨트롤러가 보유하는 인터럽트 요구 플래그를 참조하고, 복수회의 상기 테스트 인터럽트 요구에 의한 참조에서 동일한 인터럽트 요구 플래그가 연속하여 복수회 세트 상태인 것을 판별함으로써, 이상 있음으로 간주하는, 마이크로컴퓨터. - 제1항에 있어서,
상기 인터럽트 컨트롤러는, 상기 테스트 인터럽트 요구가 부여되는 제1 인터럽트 컨트롤러와, 상기 테스트 인터럽트 요구에 응답하는 상기 중앙 처리 장치의 처리에 의해 참조 대상으로 되는 인터럽트 요구 플래그를 갖는 제2 인터럽트 컨트롤러를 갖는, 마이크로컴퓨터. - 제2항에 있어서,
상기 테스트 인터럽트 요구를 발생하는 테스트 인터럽트 요구 발생 회로를 이중화하고,
상기 제1 인터럽트 컨트롤러는 이중화된 테스트 인터럽트 요구 발생 회로로부터 병렬로 입력된 테스트 인터럽트 요구의 각각에 대하여 다른 인터럽트 요구와의 사이의 접수 제어를 따로따로 행하고, 따로따로 행해진 접수 제어의 결과가 일치하는지 여부를 판별하는 판별 회로를 더 갖는, 마이크로컴퓨터. - 제2항에 있어서,
제2 인터럽트 컨트롤러에 입력되는 인터럽트 요구를 선택하여 제1 인터럽트 컨트롤러에 입력시키는 셀렉터를 더 갖고,
상기 중앙 처리 장치는, 상기 인터럽트 컨트롤러의 인터럽트 요구 플래그를 참조하여 이상 있음으로 간주했을 때, 복수회의 상기 테스트 인터럽트 요구에 의한 참조에서 동일한 인터럽트 요구 플래그가 연속하여 복수회 세트 상태라고 판별한 당해 인터럽트 요구 플래그에 대응하는 인터럽트 요구를, 상기 셀렉터에서 선택하여 제1 인터럽트 컨트롤러에 입력시키는 처리를 행하는, 마이크로컴퓨터. - 제1항에 있어서,
상기 인터럽트 컨트롤러는,
복수의 인터럽트 요구를 입력 가능하게 되고, 입력한 인터럽트 요구에 대한 접수 제어의 결과에 따라 중앙 처리 장치에 인터럽트 신호를 출력하는 마스터 인터럽트 컨트롤러와,
복수의 인터럽트 요구를 입력 가능하게 되고, 입력한 인터럽트 요구에 대한 접수 제어의 결과에 따라 상기 마스터 인터럽트 컨트롤러에 인터럽트 요구 신호를 출력하는 슬레이브 인터럽트 컨트롤러를 갖는, 마이크로컴퓨터. - 제5항에 있어서,
상기 중앙 처리 장치는, 정기적으로 소정의 간격으로 발생되는 소정의 테스트 인터럽트 요구에 응답하여, 상기 슬레이브 인터럽트 컨트롤러가 보유하는 슬레이브측 인터럽트 요구 플래그와, 상기 슬레이브 인터럽트 컨트롤러로부터 상기 마스터 인터럽트 컨트롤러에 공급되는 인터럽트 요구 신호에 대응하여 세트되는 상기 마스터 인터럽트 컨트롤러가 보유하는 마스터측 인터럽트 요구 플래그를 참조하고, 복수회의 상기 테스트 인터럽트 요구에 의한 참조에서, 동일한 슬레이브측 인터럽트 요구 플래그가 연속하여 복수회 세트 상태인 것, 또한, 그것에 대응하는 마스터측 인터럽트 요구 플래그가 연속하여 복수회 세트 상태인 것을 판별함으로써, 이상 있음으로 간주하는, 마이크로컴퓨터. - 제6항에 있어서,
상기 중앙 처리 장치는, 복수회의 상기 테스트 인터럽트 요구에 의한 참조에서, 동일한 슬레이브측 인터럽트 요구 플래그가 연속하여 복수회 세트 상태이며, 또한, 그것에 대응하는 마스터측 인터럽트 요구 플래그가 연속하여 복수회 세트 상태인 것을 판별함으로써, 슬레이브 인터럽트 컨트롤러의 내부 또는 마스터 인터럽트 컨트롤러를 경유하여 중앙 처리 장치의 입력에 이르는 경로에 이상 있음으로 간주하고,
복수회의 상기 테스트 인터럽트 요구에 의한 참조에서, 동일한 슬레이브측 인터럽트 요구 플래그가 연속하여 복수회 세트 상태이며, 또한, 그것에 대응하는 마스터측 인터럽트 요구 플래그가 연속하여 복수회 세트 상태가 아닌 것을 판별함으로써, 슬레이브 인터럽트 컨트롤러로부터 마스터 인터럽트 컨트롤러의 입력에 이르는 경로에 이상 있음으로 간주하는, 마이크로컴퓨터. - 제5항에 있어서,
상기 마스터 인터럽트 컨트롤러에 상기 소정의 테스트 인터럽트 요구를 입력하는, 마이크로컴퓨터. - 제5항에 있어서,
상기 슬레이브 인터럽트 컨트롤러는, 상기 테스트 인터럽트 요구가 부여되는 제1 슬레이브 인터럽트 컨트롤러와, 상기 테스트 인터럽트 요구에 응답하는 상기 중앙 처리 장치의 처리에 의해 참조 대상으로 되는 인터럽트 요구 플래그를 갖는 제2 슬레이브 인터럽트 컨트롤러를 갖는, 마이크로컴퓨터. - 제9항에 있어서,
상기 테스트 인터럽트 요구를 발생하는 테스트 인터럽트 요구 발생 회로를 이중화하고,
상기 제1 슬레이브 인터럽트 컨트롤러는 이중화된 테스트 인터럽트 요구 발생 회로로부터 병렬로 입력된 테스트 인터럽트 요구의 각각에 대하여 다른 인터럽트 요구와의 사이의 접수 제어를 따로따로 행하고, 따로따로 행해진 접수 제어의 결과가 일치하는지 여부를 판별하는 판별 회로를 더 갖고,
상기 마스터 인터럽트 컨트롤러는 상기 제1 슬레이브 인터럽트 컨트롤러에서 따로따로 행해진 접수 제어의 결과에 대한 논리곱 신호를 하나의 인터럽트 요구로서 처리하는, 마이크로컴퓨터. - 제9항에 있어서,
제2 슬레이브 인터럽트 컨트롤러에 입력되는 인터럽트 요구를 선택하여 제1 슬레이브 인터럽트 컨트롤러에 입력시키는 셀렉터를 더 갖고,
상기 중앙 처리 장치는, 상기 제2 슬레이브 인터럽트 컨트롤러의 인터럽트 요구 플래그를 참조하여 이상 있음으로 간주했을 때, 복수회의 상기 테스트 인터럽트 요구에 의한 참조에서 동일한 인터럽트 요구 플래그가 연속하여 복수회 세트 상태라고 판별한 당해 인터럽트 요구 플래그에 대응하는 인터럽트 요구를, 상기 셀렉터에서 선택하여 제1 슬레이브 인터럽트 컨트롤러에 입력시키는 처리를 행하는, 마이크로컴퓨터. - 제5항에 있어서,
상기 마스터 인터럽트 컨트롤러 및 상기 중앙 처리 장치는, 각각 이중화되어 서로 병렬 동작됨으로써, 상호의 동작 결과의 상위에 기초하는 이상의 검출을 가능하게 하는 로크 스텝 아키텍처를 갖는, 마이크로컴퓨터. - 제1항에 있어서,
상기 인터럽트 컨트롤러는, 상기 테스트 인터럽트 요구 및 제1 인터럽트 요구가 부여되는 제1 인터럽트 컨트롤러와, 제2 인터럽트 요구가 부여되는 제2 인터럽트 컨트롤러를 갖고,
상기 테스트 인터럽트 요구를 발생하는 테스트 인터럽트 요구 발생 회로를 이중화하고,
상기 제1 인터럽트 컨트롤러는 이중화된 테스트 인터럽트 요구 발생 회로로부터 병렬로 입력된 테스트 인터럽트 요구의 각각에 대하여 상기 제1 인터럽트 요구와의 사이의 접수 제어를 따로따로 행하고, 따로따로 행해진 접수 제어의 결과가 일치하는지 여부를 판별하는 판별 회로를 더 갖고,
상기 중앙 처리 장치는, 정기적으로 소정의 간격으로 발생되는 소정의 테스트 인터럽트 요구에 응답하여, 상기 제1 인터럽트 컨트롤러 및 제2 인터럽트 컨트롤러가 보유하는 인터럽트 요구 플래그를 참조하고, 복수회의 상기 테스트 인터럽트 요구에 의한 참조에서 동일한 인터럽트 요구 플래그가 연속하여 복수회 세트 상태인 것을 판별함으로써, 이상 있음으로 간주하는, 마이크로컴퓨터. - 제1항에 있어서,
타이머를 더 갖고, 상기 소정의 테스트 인터럽트 요구는, 소정의 간격으로 상기 타이머로부터 발생되는 타이머 인터럽트 요구인, 마이크로컴퓨터. - 제14항에 있어서,
참조 대상으로 되는 인터럽트 요구 플래그는, 기능 안전이 고려된 안전 관련의 인터럽트 요구에 대응하는 인터럽트 요구 플래그인, 마이크로컴퓨터. - 제15항에 있어서,
상기 소정의 간격은, 상기 안전 관련의 인터럽트 요구에 의한 페일세이프(fail-safe) 처리에서 고려되는 FTTI(Fault Tolerant Time Interval)보다도 짧은 시간인, 마이크로컴퓨터. - 제15항에 있어서,
상기 소정의 테스트 인터럽트 요구는 유저 모드에서의 중앙 처리 장치의 제어에 따라 상기 타이머로부터 정기적으로 발생되는, 마이크로컴퓨터. - 제1항에 있어서,
상기 중앙 처리 장치에 의해 있다고 간주되는 이상은, 상기 인터럽트 컨트롤러로부터 상기 중앙 처리 장치에 이르는 경로에서 상정되는 이상인, 마이크로컴퓨터.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013145230A JP6266239B2 (ja) | 2013-07-11 | 2013-07-11 | マイクロコンピュータ |
JPJP-P-2013-145230 | 2013-07-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20150007973A true KR20150007973A (ko) | 2015-01-21 |
Family
ID=50979558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140086142A KR20150007973A (ko) | 2013-07-11 | 2014-07-09 | 마이크로컴퓨터 |
Country Status (5)
Country | Link |
---|---|
US (2) | US9678900B2 (ko) |
EP (1) | EP2824573B1 (ko) |
JP (1) | JP6266239B2 (ko) |
KR (1) | KR20150007973A (ko) |
CN (1) | CN104281217B (ko) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6266239B2 (ja) * | 2013-07-11 | 2018-01-24 | ルネサスエレクトロニクス株式会社 | マイクロコンピュータ |
US10067892B2 (en) * | 2015-03-06 | 2018-09-04 | Microchip Technology Incorporated | Microcontroller or microprocessor with dual mode interrupt |
US10002056B2 (en) * | 2015-09-15 | 2018-06-19 | Texas Instruments Incorporated | Integrated circuit chip with cores asymmetrically oriented with respect to each other |
CN105227384A (zh) * | 2015-11-10 | 2016-01-06 | 中国建设银行股份有限公司 | 联机事务处理系统之间的交易方法及交易装置 |
US10255132B2 (en) * | 2016-06-22 | 2019-04-09 | Advanced Micro Devices, Inc. | System and method for protecting GPU memory instructions against faults |
JP6645467B2 (ja) * | 2017-03-28 | 2020-02-14 | 株式会社デンソー | マイクロコンピュータ |
CN108289299B (zh) * | 2017-05-31 | 2020-12-29 | 新华三技术有限公司 | 防止用户下线的方法和装置 |
JP2019096243A (ja) * | 2017-11-28 | 2019-06-20 | ルネサスエレクトロニクス株式会社 | 半導体装置及びその故障検出方法 |
CN110554979A (zh) * | 2018-05-31 | 2019-12-10 | 瑞昱半导体股份有限公司 | 计时装置及其运行方法 |
CN113165244B (zh) * | 2018-12-12 | 2023-08-04 | 住友重机械工业株式会社 | 注射成型机、控制器 |
DE102019203251B3 (de) * | 2019-03-11 | 2020-06-18 | Volkswagen Aktiengesellschaft | Verfahren und System zur sicheren Signalmanipulation für den Test integrierter Sicherheitsfunktionalitäten |
JP7295780B2 (ja) | 2019-11-05 | 2023-06-21 | ルネサスエレクトロニクス株式会社 | 半導体装置及びその動作方法 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61226843A (ja) * | 1985-03-30 | 1986-10-08 | Toshiba Corp | 割込み異常検出装置 |
JPH02130646A (ja) * | 1988-11-11 | 1990-05-18 | Meidensha Corp | Cpuの異常検出方式 |
JP2591181B2 (ja) | 1989-09-22 | 1997-03-19 | 日本電気株式会社 | マイクロコンピュータ |
JPH055946Y2 (ko) | 1990-02-21 | 1993-02-16 | ||
JPH07271408A (ja) * | 1994-03-30 | 1995-10-20 | Hitachi Ltd | 制御用処理装置 |
JPH09198280A (ja) | 1996-01-23 | 1997-07-31 | Furukawa Electric Co Ltd:The | システム監視用パルス生成方法および監視用パルス生成機能を備えたリアルタイム・オペレーティングシステム |
US5790871A (en) * | 1996-05-17 | 1998-08-04 | Advanced Micro Devices | System and method for testing and debugging a multiprocessing interrupt controller |
JPH10269109A (ja) * | 1997-03-21 | 1998-10-09 | Mitsubishi Electric Corp | マイクロコンピュータ |
JP3097648B2 (ja) * | 1998-02-04 | 2000-10-10 | 日本電気株式会社 | 情報処理装置及び情報処理方法 |
JP2000307600A (ja) * | 1999-04-23 | 2000-11-02 | Nec Corp | デバイス装置のハートビート回路 |
JP2000347880A (ja) | 1999-06-02 | 2000-12-15 | Denso Corp | 割り込みコントローラおよびマイクロコンピュータ |
JP2001084152A (ja) * | 1999-09-16 | 2001-03-30 | Mitsubishi Electric Corp | 割込み信号制御装置 |
US6587966B1 (en) * | 2000-04-25 | 2003-07-01 | Hewlett-Packard Development Company, L.P. | Operating system hang detection and correction |
CN100336022C (zh) * | 2003-01-24 | 2007-09-05 | 富士通株式会社 | 中断控制方法和中断控制装置 |
JP2006344087A (ja) * | 2005-06-10 | 2006-12-21 | Hitachi Ltd | 制御装置のタスク管理装置、及び、制御装置のタスク管理方法 |
US20080288828A1 (en) * | 2006-12-09 | 2008-11-20 | Baker Marcus A | structures for interrupt management in a processing environment |
JP2010262432A (ja) | 2009-05-01 | 2010-11-18 | Mitsubishi Electric Corp | 安全制御装置 |
JP5244981B2 (ja) * | 2009-10-15 | 2013-07-24 | 株式会社エルイーテック | マイクロコンピュータ及びその動作方法 |
US9436627B2 (en) * | 2011-08-25 | 2016-09-06 | International Business Machines Corporation | Detection of abnormal operation caused by interrupt processing |
JP6266239B2 (ja) * | 2013-07-11 | 2018-01-24 | ルネサスエレクトロニクス株式会社 | マイクロコンピュータ |
-
2013
- 2013-07-11 JP JP2013145230A patent/JP6266239B2/ja active Active
-
2014
- 2014-06-17 EP EP14172824.6A patent/EP2824573B1/en active Active
- 2014-07-09 KR KR1020140086142A patent/KR20150007973A/ko not_active Application Discontinuation
- 2014-07-10 US US14/328,154 patent/US9678900B2/en active Active
- 2014-07-11 CN CN201410330526.6A patent/CN104281217B/zh active Active
-
2017
- 2017-05-05 US US15/588,246 patent/US10042791B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN104281217A (zh) | 2015-01-14 |
JP6266239B2 (ja) | 2018-01-24 |
EP2824573A3 (en) | 2015-03-11 |
JP2015018414A (ja) | 2015-01-29 |
EP2824573A2 (en) | 2015-01-14 |
US20170242809A1 (en) | 2017-08-24 |
CN104281217B (zh) | 2019-11-05 |
US10042791B2 (en) | 2018-08-07 |
US9678900B2 (en) | 2017-06-13 |
EP2824573B1 (en) | 2017-09-20 |
US20150019779A1 (en) | 2015-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20150007973A (ko) | 마이크로컴퓨터 | |
KR20130119452A (ko) | 오류 허용 아키텍쳐를 갖는 마이크로프로세서 시스템 | |
US9207661B2 (en) | Dual core architecture of a control module of an engine | |
EP3198725B1 (en) | Programmable ic with safety sub-system | |
US20180111626A1 (en) | Method and device for handling safety critical errors | |
US10281525B2 (en) | Semiconductor device and diagnostic test method for both single-point and latent faults using first and second scan tests | |
EP2381266B1 (en) | Self-diagnosis system and test circuit determination method | |
Mariani et al. | A flexible microcontroller architecture for fail-safe and fail-operational systems | |
US10467889B2 (en) | Alarm handling circuitry and method of handling an alarm | |
JP2007034469A (ja) | データエラー検出装置およびデータエラー検出方法 | |
JP6588068B2 (ja) | マイクロコンピュータ | |
JPH06161798A (ja) | 情報処理装置 | |
Mariani et al. | Comparing fail-safe microcontroller architectures in light of IEC 61508 | |
CN109213638B (zh) | 半导体装置 | |
Szurman et al. | Run-Time Reconfigurable Fault Tolerant Architecture for Soft-Core Processor NEO430 | |
CN112424753B (zh) | 多核系统 | |
Baumeister | Using Decoupled Parallel Mode for Safety Applications | |
EP3367242B1 (en) | Method of error detection in a microcontroller unit | |
JP2010033245A (ja) | 二重化データ処理回路 | |
JP2006011576A (ja) | 高信頼性制御装置 | |
JP2022184410A (ja) | 演算装置 | |
CN117425881A (zh) | 用于车辆的控制装置以及辅助系统 | |
Osajda | Solutions for Safety Critical Automotive Applications | |
JPS6143348A (ja) | 多重系フェイルセーフコンピュータシステム | |
JP2000200200A (ja) | 情報処理装置および情報処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |