KR20190035480A - 마이크로 컨트롤러 및 마이크로 컨트롤러의 제어방법 - Google Patents
마이크로 컨트롤러 및 마이크로 컨트롤러의 제어방법 Download PDFInfo
- Publication number
- KR20190035480A KR20190035480A KR1020180090209A KR20180090209A KR20190035480A KR 20190035480 A KR20190035480 A KR 20190035480A KR 1020180090209 A KR1020180090209 A KR 1020180090209A KR 20180090209 A KR20180090209 A KR 20180090209A KR 20190035480 A KR20190035480 A KR 20190035480A
- Authority
- KR
- South Korea
- Prior art keywords
- circuit
- signal
- signal processing
- microcontroller
- processing circuit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0428—Safety, monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/187—Voting techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/183—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23283—Debugging, breakpoint
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24093—Display, show place of error, fault
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/20—Cooling means
- G06F1/206—Cooling means comprising thermal management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3293—Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- 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)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Automation & Control Theory (AREA)
- Hardware Redundancy (AREA)
- Microcomputers (AREA)
- Power Sources (AREA)
Abstract
[과제] 디버그 때의 소비전력 증가를 억제한 마이크로 컨트롤러를 제공하는 것.
[해결수단] 본 발명에 따른 마이크로 컨트롤러(100)는, 제1 신호처리회로(111)와, 제1 신호처리회로와 동일한 신호처리를 하는 제2 신호처리회로(113)와, 제1 신호처리회로의 처리결과와 제2 신호처리회로의 처리결과를 비교하여 에러를 검출한 경우에는 에러신호를 출력하는 비교회로(117)와, 제2 신호처리회로 및 비교회로(117)의 동작을 억제하기 위한 억제신호를 수취하는 억제신호 입력부와, 억제신호 입력부로부터 억제신호를 수취하여, 제2 신호처리회로 및 비교회로의 동작을 억제하는 억제회로(170)와, 제2 신호처리회로 및 비교회로의 동작을 억제한 경우에, 에러신호 대신에, 의사 에러신호를 출력하는 의사 에러신호 출력회로(112)를 구비한다.
[해결수단] 본 발명에 따른 마이크로 컨트롤러(100)는, 제1 신호처리회로(111)와, 제1 신호처리회로와 동일한 신호처리를 하는 제2 신호처리회로(113)와, 제1 신호처리회로의 처리결과와 제2 신호처리회로의 처리결과를 비교하여 에러를 검출한 경우에는 에러신호를 출력하는 비교회로(117)와, 제2 신호처리회로 및 비교회로(117)의 동작을 억제하기 위한 억제신호를 수취하는 억제신호 입력부와, 억제신호 입력부로부터 억제신호를 수취하여, 제2 신호처리회로 및 비교회로의 동작을 억제하는 억제회로(170)와, 제2 신호처리회로 및 비교회로의 동작을 억제한 경우에, 에러신호 대신에, 의사 에러신호를 출력하는 의사 에러신호 출력회로(112)를 구비한다.
Description
본 발명은 마이크로 컨트롤러 및 마이크로 컨트롤러의 제어방법에 관한 것이다.
차량용 등 높은 신뢰성이 요구되는 분야의 제품에 사용되는 반도체 장치는, 회로의 일부를 이중화(二重化)하는 것에 의해 용장성(redundancy)을 높여서 신뢰성을 향상시키는 경우가 있다. 회로의 이중화를 채용하고 있는 예로서는, 반도체 장치의 CPU(central processing unit)를 이중화하고, 듀얼 코어 록 스텝(dual-core lock-step) 방식을 채용한 마이크로 컨트롤러 제품을 들 수 있다. 듀얼 코어 록 스텝 방식은, 하나의 코어처럼 보이고, 실제로는 2개의 코어를 록 스텝 기구로 연결하고 있으며, 동일한 결과를 내고 있는 것을 확인하여 동작한다. 이와 같이 2개의 코어로부터 출력된 결과를 확인하면서 동작하는 것에 의해, 반도체 장치의 동작의 신뢰성을 높이고 있다.
특허문헌 1에는, 적어도 2개의 실시 유닛을 가지는 계산기 시스템에 있어서의 전환장치가 기재되어 있다. 이러한 전환장치는, 전환수단이 설치되어 있다. 그 전환수단은, 이들 실시 유닛이 적어도 2개의 구동모드 사이에서 전환되도록 형성되어 있다. 그 경우에 제1 구동모드는 비교모드에 상당하고, 제2 구동모드는 퍼포먼스모드에 상당하다. 이러한 전환장치는, 인터럽트 컨트롤러(interrupt controller)가 설치되어 있으며, 적어도 3개의 메모리 영역이 더 설치되어 있다. 그 경우에 메모리 영역에의 액세스가, 적어도 하나의 제1 실시 유닛에 제1 메모리 영역이 대응되고, 적어도 하나의 제2 실시 유닛에는 제2 메모리 영역이 대응되며, 적어도 하나의 제3 메모리 영역이 적어도 2개의 실시 유닛에 대응할 수 있도록 구성된다.
회로를 이중화한 반도체 장치는, 이중화한 회로부분의 소비전력 증대에 수반하여, 최대 소비전력이 증대할 가능성이 있다. 반도체 장치의 하나인 마이크로 컨트롤러의 경우, 소비전력이 최대가 되는 것은, 예를 들면, 모든 CPU 코어가 고부하로 동작하고, 또한, 디버그(debug)를 실시하고 있을 때이다. 그 때문에, 디버그를 실시할 때에 동작하는 회로가 이중화되어 있으면, 종래보다 소비전력이 증대한다.
그러나 디버그를 실시하는 것은 개발 단계인 것이 많다. 이러한 디버그 중의 최대 소비전력에 대응시켜서 양산품의 주변회로의 설계나 열 설계를 행하는 것은, 부품 코스트나 스페이스 등이 과잉이 되어 버릴 우려가 있다.
그 밖의 과제와 신규한 특징은, 본 명세서의 기술 및 첨부도면으로부터 명백해질 것이다.
일 실시형태에 따르면, 마이크로 컨트롤러는,
제1 신호처리회로와,
상기 제1 신호처리회로와 동일한 형태의 신호처리를 하는 제2 신호처리회로와,
상기 제1 신호처리회로의 처리결과와 상기 제2 신호처리회로의 처리결과를 비교하여 에러를 검출한 경우에는 에러신호를 출력하는 비교회로와,
상기 제2 신호처리회로 및 상기 비교회로의 동작을 억제시키기 위한 억제신호를 수취하는 억제신호 입력부와,
상기 억제신호 입력부로부터 상기 억제신호를 수취하여, 상기 제2 신호처리회로 및 상기 비교회로의 동작을 억제하는 억제회로와,
상기 제2 신호처리회로 및 상기 비교회로의 동작을 억제한 경우에, 상기 에러신호 대신에 의사(pseudo) 에러신호를 출력하는 의사 에러신호 출력회로,
를 구비한 것이다.
일 실시형태에 따르면, 마이크로 컨트롤러의 제어방법은,
제1 신호처리회로와, 해당 제1 신호처리회로와 동일한 형태의 신호처리를 하는 제2 신호처리회로와, 상기 제1 신호처리회로의 처리결과와 상기 제2 신호처리회로의 처리결과를 비교하여 에러를 검출한 경우에는 에러신호를 출력하는 비교회로를 가지는 마이크로 컨트롤러의 제어방법으로서,
디버그 개시신호를 수취하고,
상기 디버그 개시신호에 따라 상기 제2 신호처리회로 및 상기 비교회로의 동작을 억제하며,
상기 제2 신호처리회로 및 상기 비교회로의 동작을 억제한 후에, 상기 에러신호 대신에 의사 에러신호를 출력하는 것이다.
상기 일 실시형태에 따르면, 디버그 때의 소비전력 증가를 억제한 마이크로 컨트롤러를 제공할 수 있다.
[도 1] 실시형태 1에 따른 마이크로 컨트롤러의 구성 개요도이다.
[도 2] 실시형태 1에 따른 중앙연산부(110) 주변의 블록도이다.
[도 3] 통상동작모드(normal operation mode)에 있어서의 마이크로 컨트롤러의 기동 시퀀스(start-up sequence)의 플로우 차트이다.
[도 4] 실시형태 1에 따른 중앙연산부(110) 주변의 블록도이다.
[도 5] 디버그모드(debug mode)에 있어서의 마이크로 컨트롤러의 기동 시퀀스의 플로우 차트이다.
[도 6] 실시형태 1의 변형예에 따른 마이크로 컨트롤러의 블록도이다.
[도 7] 실시형태 2에 따른 마이크로 컨트롤러의 블록도이다.
[도 2] 실시형태 1에 따른 중앙연산부(110) 주변의 블록도이다.
[도 3] 통상동작모드(normal operation mode)에 있어서의 마이크로 컨트롤러의 기동 시퀀스(start-up sequence)의 플로우 차트이다.
[도 4] 실시형태 1에 따른 중앙연산부(110) 주변의 블록도이다.
[도 5] 디버그모드(debug mode)에 있어서의 마이크로 컨트롤러의 기동 시퀀스의 플로우 차트이다.
[도 6] 실시형태 1의 변형예에 따른 마이크로 컨트롤러의 블록도이다.
[도 7] 실시형태 2에 따른 마이크로 컨트롤러의 블록도이다.
이하, 도면을 참조하면서, 실시형태에 관하여 설명한다. 또한, 도면은 간략적인 것이기 때문에, 이 도면의 기재를 근거로 하여 실시형태의 기술적 범위를 좁게 해석해서는 안 된다. 또한, 동일한 요소에는, 동일한 부호를 붙이고, 중복되는 설명은 생략한다.
이하의 실시형태에 있어서는 편의상 그 필요가 있을 때는, 복수의 섹션 또는 실시형태로 분할하여 설명하지만, 특별히 명시한 경우를 제외하고, 그것들은 서로 무관계한 것이 아니라, 한쪽은 다른쪽의 일부 또는 전부의 변형예, 응용예, 상세 설명, 보충 설명 등의 관계에 있다. 또한, 이하의 실시형태에 있어서, 요소의 수 등(개수, 수치, 양, 범위 등을 포함한다)으로 언급하는 경우, 특별히 명시한 경우 및 원리적으로 명백하게 특정의 수로 한정되는 경우 등을 제외하고, 그 특정의 수로 한정되는 것이 아니라, 특정의 수 이상이어도 이하여도 된다.
또한, 이하의 실시형태에서, 그 구성요소(동작 스텝 등도 포함한다)는, 특별히 명시한 경우 및 원리적으로 명백하게 필수라고 생각되는 경우 등을 제외하고, 반드시 필수인 것은 아니다. 동일한 형태로, 이하의 실시형태에서, 구성요소 등의 형상, 위치관계 등으로 언급할 때는, 특별히 명시한 경우 및 원리적으로 명백하게 그렇지 않다고 생각되는 경우 등을 제외하고, 실질적으로 그 형상 등에 근사 또는 유사한 것 등을 포함하는 것으로 한다. 이 점은, 상기 수 등(개수, 수치, 양, 범위 등을 포함한다)에 관해서도 마찬가지이다.
설명의 명확화를 위해, 이하의 기재 및 도면은, 적절하게, 생략, 및 간략화가 이루어져 있다. 또한, 다양한 처리를 행하는 기능블록으로서 도면에 기재되는 각 요소는, 하드웨어적으로는, CPU, 메모리, 그 밖의 회로로 구성할 수 있으며, 소프트웨어적으로는, 메모리에 로드된 프로그램 등에 의해 실현된다. 따라서, 이들의 기능블록이 하드웨어만, 소프트웨어만, 또는 그것들의 조합에 의해 여러 가지 모양으로 실현될 수 있는 것은 당업자에게는 이해되는 바이며, 어느 하나로 한정되는 것은 아니다. 또한, 각 도면에서, 동일한 요소에는 동일한 부호가 붙어 있으며, 필요에 따라 중복 설명은 생략되어 있다.
<실시형태 1>
이하에, 도 1∼도 5를 참조하면서, 실시형태 1에 관해서 설명한다.
우선, 도 1에 예시한 마이크로 컨트롤러에 관하여 설명한다. 도 1은, 실시형태 1에 따른 마이크로 컨트롤러의 구성 개요도이다. 마이크로 컨트롤러(100)는, 여러 가지 시스템을 제어하기 위한 컨트롤용 IC이다. 제어 대상인 시스템이란, 예를 들면 자동차의 파워 트레인 시스템, 에어 컨트롤 시스템, 또는 자동 운전 시스템 등이다. 마이크로 컨트롤러(100)는, 중앙연산부(110), DMA 제어부(120), 인터페이스부(130), 기억부(150)를 주요 구성으로 하고 있다. 또한, 상술한 주요 구성요소는, 마스터 버스(141) 및 체커 버스(142)에 각각 접속되어 있다.
중앙연산부(110)는, 수취한 신호에 대해서 연산 등의 처리를 행하고, 처리 후의 신호를 출력하는 연산 기능을 가지고 있다. 중앙연산부(110)는, 마스터 코어(111), 체커 코어(113), 및 자기진단 제어부(112, 114)를 가지고 있다.
마스터 코어(111)는, 중앙연산부(110)의 연산 기능을 실현하기 위한 연산기이다. 체커 코어(113)는, 마스터 코어(111)와 동일한 형태의 회로 구성을 가지고 있다. 따라서, 마스터 코어(111)와 체커 코어(113)는, 동일한 입력신호에 대해 동일한 연산결과를 출력한다. 중앙연산부(110)는, 마스터 코어(111)와 체커 코어(113)에 각각 동일한 신호를 입력하고, 각각이 출력하는 연산결과를 비교하는 것에 의해, 마스터 코어(111)가 정상으로 동작하고 있는 것을 보증한다.
또한, 연산기란, 이른바 CPU로 불리는 것이어도 되고, GPU(Graphics Processing Unit)로 불리는 것이어도 된다. 또한, 연산기는, 신호처리회로라고 칭할 수도 있다. 다시 말하면, 중앙연산부(110)는, 제1 신호처리회로로서 마스터 코어를 가지며, 마찬가지로, 제2 신호처리회로로서 체커 코어를 가지고 있다.
자기진단 제어부(112)는, 마스터 코어(111)의 동작이 정상으로 행해지는지 여부를 진단하는 기능의 일부를 맡고 있다. 구체예를 들면, 자기진단 제어부(112)는, 미리 설정된 체크 입력신호를 마스터 코어(111)에 입력한다. 그리고 자기진단 제어부(112)는, 체크 입력신호에 대한 연산결과인 체크 출력신호를 마스터 코어(111)로부터 수취하며, 수취한 체크 출력신호를 기억한다.
자기진단 제어부(114)는, 체커 코어(113)에 대해서 상술한 자기진단 제어부(112)와 동일한 기능을 가지고 있다. 구체예를 들면, 자기진단 제어부(114)는, 미리 설정된 체크 입력신호를 체커 코어(113)에 입력한다. 그리고 자기진단 제어부(114)는, 체크 입력신호에 대한 연산결과인 체크 출력신호를 체커 코어(113)로부터 수취하고, 수취한 체크 출력신호를 기억한다.
중앙연산부(110)는, 자기진단 제어부(112, 114)가 각각 기억한 체크 출력신호를 비교하는 것에 의해, 마스터 코어(111)가 정상으로 동작하고 있는지 여부를 진단한다. 중앙연산부(110)는, 마스터 코어(111)와, 마스터 코어(111)와 동일한 회로 구성을 갖는 체커 코어(113)를 가지는 것에 의해, 마스터 코어(111)의 동작 신뢰성을 높이고 있다.
DMA 제어부(120)는, 중앙연산부(110)를 통하지 않고 메모리의 데이터에 액세스하는 DMA(Direct Memory Access) 기능을 가지고 있다. DMA 제어부(120)는, 마스터 코어(121), 체커 코어(123), 및 자기진단 제어부(122, 124)를 가지고 있다. 마스터 코어(121)는, DMA 기능을 실현하기 위한 회로이다. 즉, 마스터 코어(121)는, 기억부(150)와 도시하지 않은 타이머부, AD(Analog to Digital) 변환부, 또는 DA(Digital to Analog) 변환부 등의 입출력부 사이의 데이터 전송을 행한다.
체커 코어(123)는, 마스터 코어(121)와 동일한 회로 구성을 가지고 있다. 따라서, 마스터 코어(121)와 체커 코어(123)는, 동일한 입력신호에 대해서 동일한 신호를 출력한다. DMA 제어부(120)는, 마스터 코어(121)와 체커 코어(123)에 각각 동일한 신호를 입력하고, 각각이 출력하는 신호를 비교하는 것에 의해, 마스터 코어(121)가 정상으로 동작하고 있는 것을 보증한다.
자기진단 제어부(122, 124)는, 중앙연산부(110)가 가지고 있는 자기진단 제어부(112, 114)와 동일한 기능을 가지고 있다. 그 때문에, 여기서의 상술은 생략한다. DMA 제어부(120)는, 마스터 코어(121)와, 마스터 코어(121)와 동일한 회로 구성을 갖는 체커 코어(123)를 가지는 것에 의해, 마스터 코어(121)의 동작 신뢰성을 높이고 있다.
인터페이스부(130)는, 마이크로 컨트롤러(100)의 외부와 신호의 수수를 행한다. 인터페이스부(130)는, 예를 들면 CAN(Controller Area Network), FlexRay, 또는 이더넷(등록상표) 등의 차내 LAN이나, JTAG(Joint Test Action Group)와 같은, 시스템 개발용의 인터페이스 등을 가지고 있다.
기억부(150)는, 마이크로 컨트롤러(100)의 주기억부이며, 예를 들면 랜덤 액세스 메모리(RAM(random access memory))로 불리는 휘발성의 기억부를 포함하고 있다. 기억부(150)는, 마스터 RAM 제어부(151) 및 체커 RAM 제어부(152)에 접속되어 있다.
이상에서 설명한 바와 같이, 마이크로 컨트롤러(100)는, 주요 구성요소가 이중화되어 있다. 구성요소를 이중화하는 것에 의해, 마이크로 컨트롤러(100)는 동작 신뢰성을 높이고 있다.
다음으로, 도 2를 참조하면서 마이크로 컨트롤러(100)의 기능에 관하여 설명한다. 도 2는, 실시형태 1에 따른 중앙연산부(110) 주변의 블록도이다.
마이크로 컨트롤러(100)의 기능에 관한 설명에 앞서, 도 2에 나타낸 마이크로 컨트롤러(100)의 구성에 관해서 설명한다. 마이크로 컨트롤러(100)는, 중앙연산부(110)에 더해, 디버그회로(160), 및 디버그용 단자(170)을 가지고 있다.
중앙연산부(110)는, 도 1을 참조하면서 설명한 마스터 코어(111), 체커 코어(113), 자기진단 제어부(112, 114)에 더해, 지연회로(115, 116), 비교회로(117), 및 억제회로(118)를 가지고 있다.
지연회로(115, 116)는, 수취한 신호를 지연시켜서 출력하는 회로이다. 지연회로(115, 116)는, 예를 들면 플립플롭회로를 캐스케이드 형태로 구성한 회로에 의해 실현된다. 지연회로(115) 및 지연회로(116)는, 동일한 회로 구성을 가지고 있기 때문에, 입력신호를 지연시키는 시간은 같아지도록 설정되어 있다. 지연회로(115)는, 체커 코어(113)의 입력단(input stage)에 접속되어 있다. 지연회로(116)는, 마스터 코어(111)의 출력단(output stage)에 접속되어 있다. 따라서, 중앙연산부(110)가 가지고 있는 마스터 코어(111) 및 체커 코어(113)는, 클록 지연형 듀얼 코어 록 스텝 방식의 구성을 나타내고 있다.
자기진단 제어부(112)는, 레지스터(112a) 및 레지스터(112b)를 가지고 있다. 레지스터(112a) 및 레지스터(112b)는, 시스템 기동시에 동작하는 자기진단에서 사용된다. 도 2에 예시한 레지스터(112a)의 레지스터 어드레스는, 어드레스 REG_A0이다. 마찬가지로, 레지스터(112b)의 레지스터 어드레스는, 어드레스 REG_B0이다. 자기진단 제어부(112)는, 출력(60)을 가지고 있다. 자기진단 제어부(112)는, 미리 설정된 값이 입력된 경우에 출력(60)으로 의사 에러신호를 출력하도록 설정되어 있다. 의사 에러신호는, 비교회로(117)가 출력하는 에러신호와 동일한 신호이다.
자기진단 제어부(114)는, 레지스터(114a) 및 레지스터(114b)를 가지고 있다. 레지스터(114a) 및 레지스터(114b)는, 시스템 기동시에 동작하는 자기진단에서 사용된다. 도 2에 예시한 레지스터(114a)의 레지스터 어드레스는, 어드레스 REG_A1이다. 마찬가지로, 레지스터(114b)의 레지스터 어드레스는, 어드레스 REG_B1이다.
자기진단 제어부(112)의 레지스터(112a)와, 자기진단 제어부(114)의 레지스터(114a)는, 레지스터 어드레스가 다르다. 그러나 레지스터(112a)와 레지스터(114a)는, 레지스터 그룹 A로서, 동일한 값이 기록된다. 마찬가지로, 레지스터(112b)와 레지스터(114b)는, 레지스터 그룹 B로서, 동일한 값이 기록된다. 단, 레지스터 그룹 A의 값과, 레지스터 그룹 B의 값은, 다른 값이 기록되도록 설정되어 있다.
비교회로(117)는, 마스터 코어(111)로부터 수취한 신호와, 체커 코어(113)로부터 수취한 신호를 비교하여, 비교결과를 출력(20)으로 출력한다. 예를 들면, 마스터 코어(111)로부터 수취한 신호와, 체커 코어(113)로부터 수취한 신호가 동일한 경우, 비교회로(117)는, 비교결과로서 정상인 취지의 정상신호를 출력한다. 한편, 마스터 코어(111)로부터 수취한 신호와, 체커 코어(113)로부터 수취한 신호가 동일하지 않은 경우, 비교회로(117)는, 이상인 취지의 에러신호를 출력한다.
억제회로(118)는, 디버그용 단자(170)로부터 디버그 개시신호를 받는다. 디버그 개시신호를 받으면, 억제회로(118)는, 중앙연산부(110) 내의 구성요소 중, 미리 설정된 회로의 동작을 억제한다. 또한, 회로의 동작을 억제한다란, 미리 설정된 회로가 통상의 기능을 발휘하는 것인 내용으로 전원공급을 정지하는 것이나, 미리 설정된 회로가 소정의 신호를 출력하지 않도록, 입력신호를 정지한다거나 하는 것 등을 말한다.
디버그회로(160)는, 마스터 코어(111)의 동작에 이상이 있는지 여부를 진단한다. 예를 들면, 디버그회로(160)는, 미리 설정된 진단 입력신호를 발생시켜, 마스터 코어(111)에 입력한다. 그리고 디버그회로(160)는, 마스터 코어(111)가 출력한 진단 출력신호를 수취하여, 미리 기억되어 있는 기대치와의 비교를 행한다. 비교 결과에 따라, 디버그회로(160)는, 마스터 코어(111)가 정상인지 아닌지를 판정한다. 디버그회로(160)는, 마스터 코어(111) 및 디버그용 단자(170)와 접속되어 있다. 또한, 디버그회로(160)는, 출력(40)을 가지고 있으며, 출력(40)으로 디버그 결과를 출력한다.
디버그용 단자(170)는, 마이크로 컨트롤러(100)를 디버그할 때에 외부로부터 입력(50)을 통해서 신호를 받아들이기 위한 단자이다. 디버그용 단자(170)는, 컴퓨터 등의 디버그용 외부 기기로부터의 디버그 개시신호를 수취하고, 수취한 디버그 개시신호를 마이크로 컨트롤러(100) 내부로 출력한다. 디버그용 단자(170)는, 중앙연산부(110) 및 디버그회로(160)에 접속되어 있다.
다음으로, 마이크로 컨트롤러(100)의 기능에 관해서 구체예를 들어 설명한다. 마이크로 컨트롤러(100)는, 클록 지연형 듀얼 코어 록 스텝 방식에 의해 마스터 코어(111)의 동작이 정상인지 여부를 진단하는 기능을 가지고 있다.
이하에, 중앙연산부(110)의 기능의 일례를 설명한다. 예를 들면, 중앙연산부(110)는 입력(10)으로부터 임의의 입력신호를 수취한다. 수취한 임의의 입력신호는 마스터 코어(111) 및 체커 코어(113)에 각각 입력된다. 그리고 마스터 코어(111) 및 체커 코어(113)는, 각각이 처리결과를 비교회로(117)로 출력한다. 비교회로(117)가 2개의 신호를 비교하여, 마스터 코어(111) 및 체커 코어(113)가 동일한 처리결과를 출력하고 있던 경우, 비교회로(117)는, 정상신호를 출력한다. 혹은, 비교회로(117)는, 에러신호를 출력하지 않는다. 그 경우, 마스터 코어(111)가 출력(30)으로 출력한 신호는, 정상 동작으로서 처리가 계속된다.
한편, 마스터 코어(111) 및 체커 코어(113)가 동일한 처리결과를 출력하고 있지 않은 경우, 비교회로(117)는, 에러신호를 출력한다. 그 경우, 마스터 코어(111)가 출력(30)으로 출력한 신호는, 정상 동작으로서 처리가 계속되지 않고, 이상 발생에 대응한 처리가 행해진다.
다음으로, 도 2 및 도 3을 참조하면서, 통상동작모드의 시스템 기동시에 있어서의 마이크로 컨트롤러(100)의 자기진단 기능에 관해서 설명한다. 마이크로 컨트롤러(100)의 자기진단 기능은, 마스터 코어(111)의 출력값과 체커 코어(113)의 출력값을 다른 값으로 설정하여, 에러가 검출될 수 있는 것을 진단한다.
또한, 여기서 설명하는 통상동작모드란, 디버그모드가 아닌 경우를 말한다. 다시 말하면, 통상동작모드의 경우, 디버그용 단자(170)에 신호는 입력되지 않는다. 또한, 자기진단 기능이란, 상술한 클록 지연형 듀얼 코어 록 스텝 방식이 정상으로 기능하고 있는지 여부를 진단하는 기능이다. 또한, 도 3에 파선으로 나타낸 요소는, 이하에 설명하는 통상동작모드의 시스템 기동시에 있어서의 마이크로 컨트롤러(100)의 자기진단 기능에서 액티브가 없는 것을 나타내고 있다.
도 3은, 통상동작모드에 있어서의 마이크로 컨트롤러의 기동시의 플로우 차트이다. 도 3에 나타낸 플로우 차트는, 마이크로 컨트롤러(100)의 기동 시퀀스이다.
우선, 마이크로 컨트롤러(100)는, 기동하면, 자기진단신호의 기록 처리를 행한다(스텝 S10). 구체적으로는, 마이크로 컨트롤러(100)는, 자기진단 제어부(112)의 레지스터(112a) 및 레지스터(112b)에 대해서 미리 설정된 값을 기록한다. 동시에, 마이크로 컨트롤러(100)는, 자기진단 제어부(114)의 레지스터(114a) 및 레지스터(114b)에 대해서 미리 설정된 값을 기록한다.
상술한 바와 같이, 자기진단 제어부(112)의 레지스터(112a)에 기록하는 값과, 자기진단 제어부(114)의 레지스터(114a)에 기록하는 값은 동일하다. 또한, 자기진단 제어부(112)의 레지스터(112b)에 기록하는 값과, 자기진단 제어부(114)의 레지스터(114b)에 기록하는 값은 동일하다. 단, 마이크로 컨트롤러(100)는, 이러한 기동 시퀀스에 있어서, 자기진단신호를 기록한 후에, 자기진단신호를 읽어들여 비교한 때에 비교회로(117)가 에러신호를 출력하도록 설정되어 있다. 구체적으로는, 비교회로(117)로 출력할 때의 값으로서, 마스터 코어(111)측의 출력값은, 레지스터 그룹 A의 레지스터(112a)의 값이 출력된다. 한편, 마스터 코어(113)측의 출력값은, 레지스터 그룹 B의 레지스터(112b)의 값이 출력된다. 이처럼, 통상동작시의 기동 시퀀스에 있어서는, 다른 값이 비교회로(117)로 출력되도록 설정되어 있다. 비교회로(117)가 에러신호를 출력하는 경우, 클록 지연형 듀얼 코어 록 스텝 방식은, 정상으로 기능하고 있다고 진단된다.
또한, 당연히 상술한 설정은 일례이며, 마스터 코어(111)의 출력과 체커 코어(113)의 출력이 다르게 설정되어 있으면, 상술한 구성으로 한하지 않는다.
이하에 더 구체적인 예와 함께 자기진단 기능에 관해서 설명한다. 예를 들면, 마이크로 컨트롤러(100)는, 자기진단신호로서, 레지스터(112a) 및 레지스터(114a)에 각각 "0xAA"를 기록하고, 레지스터(112b) 및 레지스터(114b)에 각각 "0x55"를 기록한다(스텝 S10).
다음으로, 마이크로 컨트롤러(100)는, 기록한 자기진단신호의 판독을 행한다(스텝 S11). 구체적으로는, 예를 들면, 마스터 코어(111)는, 자기진단 제어부(112)의 레지스터(112a)에 기록된 값 "0xAA"를 판독하여 비교회로(117)로 출력한다. 동시에, 체커 코어(113)는, 자기진단 제어부(114)의 레지스터(114b)에 기록된 값 "0x55"를 판독하여 비교회로(117)로 출력한다.
다음으로, 비교회로(117)는, 마스터 코어(111) 및 체커 코어(113)가 출력한 자기진단신호를 비교한다. 그리고 비교회로(117)는, 에러가 발생하고 있는지 여부를 판정한다(스텝 S12). 마스터 코어(111) 및 체커 코어(113)가 출력한 값이 동일한 값이 아닌 경우, 비교회로(117)는, 에러가 발생하고 있는 것을 판정한다. 한편, 마스터 코어(111) 및 체커 코어(113)가 출력한 값이 동일한 값인 경우, 비교회로(117)는, 에러가 발생하고 있는 것을 판정하지 않는다.
비교회로(117)가 자기진단신호를 비교하여 에러가 발생하고 있는 것을 판정한 경우(스텝 S12:Yes), 비교회로(117)는 에러신호를 출력(20)으로 출력한다(스텝 S13). 비교회로(117)가 에러신호를 출력한 경우, 자기진단 기능에 의해, 상술한 클록 지연형 듀얼 코어 록 스텝 방식이 정상으로 기능하고 있다. 이 경우, 마이크로 컨트롤러(100)의 기동 시퀀스는 정상으로 종료하고, 마이크로 컨트롤러(100)는, 다음 시퀀스로 이행한다.
상술한 예의 경우, 비교회로(117)는, 레지스터(112a)의 값 "0xAA"와 레지스터(114b)의 값 "0x55"를 비교한다. 레지스터(112a)의 값 "0xAA"와 레지스터(114b)의 값 "0x55"는 동일하지 않다. 따라서, 상술한 클록 지연형 듀얼 코어 록 스텝 방식이 정상으로 기능하고 있는 경우는, 비교회로(117)가 에러신호를 출력한다.
비교회로(117)가 자기진단신호를 비교하여 에러가 발생하고 있는 것을 판정하지 않을 경우(스텝 S12:No), 비교회로(117)는 정상신호를 출력(20)으로 출력한다(스텝 S13). 비교회로(117)가 에러신호를 출력한 경우, 자기진단 기능에 의해, 상술한 클록 지연형 듀얼 코어 록 스텝 방식이 정상으로 기능하고 있지 않다. 이 경우는, 상술한 클록 지연형 듀얼 코어 록 스텝 방식에 이상이 발생하고 있기 때문에, 마이크로 컨트롤러(100)는, 이상 종료한다(스텝 S15).
다음으로, 도 4를 참조하면서 디버그모드에 있어서의 주요한 기능 블록의 작동에 대해서 설명한다. 도 4는, 실시형태 1에 따른 중앙연산부(110) 주변의 블록도이다. 도 4에서, 디버그용 단자(170)는, 컴퓨터 등의 디버그용 외부 기기로부터의 디버그 개시신호를 수취하고, 수취한 디버그 개시신호를 마이크로 컨트롤러(100) 내부로 출력한다.
디버그 개시신호는, 디버그용 단자(170)를 통해, 중앙연산부(110)가 가진 억제회로(118)로 출력됨과 동시에, 마이크로 컨트롤러(100) 내의 디버그회로(160)로 출력된다.
디버그용 단자(170)로부터 디버그 개시신호를 수취한 디버그회로(160)는, 미리 설정된 처리에 근거하여, 마이크로 컨트롤러(100)의 디버그처리를 행한다. 구체적인 디버그처리의 내용은, 본 실시형태에 관계없이 일반적인 기술이다. 그 때문에, 여기서는 설명을 생략한다.
디버그용 단자(170)로부터 디버그 개시신호를 수취한 억제회로(118)는, 미리 설정된 회로의 동작을 억제시킨다. 구체적으로는, 억제회로(118)는, 지연회로(115, 116), 체커 코어(113), 자기진단 제어부(114), 및 비교회로(117)의 동작을 정지시킨다. 마이크로 컨트롤러(100)는, 이에 의해, 클록 지연형 듀얼 코어 록 스텝 방식의 기능을 정지시킨다. 다시 말하면, 디버그모드를 개시하면, 체커 코어(113)는 신호를 출력하지 않는다. 동시에, 비교회로(117)도, 출력(20)으로부터 신호를 출력하지 않는다. 또한, 도 4에 파선으로 나타낸 구성요소는, 억제회로(118)에 의해 동작을 억제하고 있는 상태를 나타내고 있다.
한편, 디버그모드에서 클록 지연형 듀얼 코어 록 스텝 방식의 기능이 정지된 경우, 자기진단 제어부(112)는, 출력(60)으로 미리 설정된 의사 에러신호를 출력한다. 자기진단 제어부(112)가 의사 에러신호를 출력하는 것에 의해, 마이크로 컨트롤러(100)는 디버그모드에서 기동 시퀀스를 완료시키고, 다음 처리를 진행할 수 있다.
또한, 마이크로 컨트롤러(100)는, 클록 지연형 듀얼 코어 록 스텝 방식의 기능이 정지하는 것에 의해, 디버그모드에서, 클록 지연형 듀얼 코어 록 스텝 방식의 기능이 정지한 만큼의 소비전력이 저하한다. 단, 디버그모드에서는, 디버그회로가 기동한다. 그 때문에, 통상동작모드와 비교하면, 마이크로 컨트롤러(100)의 소비전력은, 디버그회로가 기동하는 만큼의 소비전력이 증대되고, 클록 지연형 듀얼 코어 록 스텝 방식의 기능이 정지하는 만큼의 소비전력이 저감된다.
다음으로, 도 5를 참조하면서, 디버그모드에 있어서의 기동시의 처리에 관해서 설명한다. 도 5는, 디버그모드에 있어서의 마이크로 컨트롤러의 기동 시퀀스의 플로우 차트이다.
우선, 마이크로 컨트롤러(100)가 기동하면, 억제회로(118) 및 디버그회로는, 디버그 개시신호를 수취한다(스텝 S20). 이에 의해, 마이크로 컨트롤러(100)는, 디버그모드에 대응한 처리를 개시한다.
다음으로, 억제회로(118)는, 수취한 디버그 개시신호에 따라, 도 4에서 설명한 바와 같이, 미리 설정된 회로의 동작을 억제한다(스텝 S21). 이에 의해, 클록 지연형 듀얼 코어 록 스텝 방식의 기능이 정지한다.
다음으로, 마이크로 컨트롤러(100)는, 자기진단신호의 기록 처리를 행한다(스텝 S22). 구체적으로는, 마이크로 컨트롤러(100)는, 자기진단 제어부(112)의 레지스터(112a) 및 레지스터(112b)에 대해서 미리 설정된 값을 기록한다.
다음으로, 마이크로 컨트롤러(100)는, 기록한 자기진단신호의 판독을 행한다(스텝 S23). 구체적으로는, 마스터 코어(111)가 자기진단 제어부(112)의 레지스터(112a) 및 레지스터(112b)에 기록된 값을 판독한다.
다음으로, 자기진단 제어부(112)는, 의사 에러신호를 출력한다(스텝 S24). 자기진단 제어부(112)는, 디버그모드의 기동 시퀀스에서는, 마스터 코어(111)가 판독 처리를 행한 후에 의사 에러신호를 출력하도록 설정되어 있다. 예를 들면, 자기진단 제어부(112)는, 억제회로(118)로부터의 신호 및 레지스터(112a) 또는 레지스터(112b)에의 판독 동작에 따라, 의사 에러신호를 출력하도록 설정될 수 있다.
자기진단 제어부(112)가 의사 에러신호를 출력하면, 자기진단 기능에 의해, 상술한 클록 지연형 듀얼 코어 록 스텝 방식이 정상으로 기능하고 있는 경우와 동일하게 처리가 행해진다. 이 경우, 마이크로 컨트롤러(100)의 디버그모드의 기동 시퀀스는 정상으로 종료하고, 마이크로 컨트롤러(100)는, 다음 시퀀스로 이행한다.
실시형태 1은, 이러한 구성에 의해, 디버그시의 소비전력 증가를 억제할 수 있는 마이크로 컨트롤러를 제공할 수 있다.
<실시형태 1의 변형예>
다음으로, 실시형태 1의 변형예에 관해서 설명한다. 도 1에 나타낸 바와 같이, 마이크로 컨트롤러(100)는, DMA 제어부(120)를 가지고 있다. DMA 제어부(120)는, 중앙연산부(110)와 마찬가지로, 회로가 이중화되어 있다. 그리고 이중화된 회로는, 클록 지연형 듀얼 코어 록 스텝 방식이 적용되어 있다. 다시 말하면, DMA 제어부(120)는 제1 신호처리회로로서 마스터 코어를 가지며, 마찬가지로, 제2 신호처리회로로서 체커 코어를 가지고 있다.
도 6은, 실시형태 1의 변형예에 따른 마이크로 컨트롤러의 블록도이다. 실시형태 1의 변형예에 따른 마이크로 컨트롤러(200)는, 실시형태 1에 관하여 도 2∼도 5를 참조하면서 설명한 구성과 동일한 형태의 구성을 DMA 제어부(120)에도 적용한 것이다. 즉, 실시형태 1의 변형예에 따른 DMA 제어부(120)는, 마스터 코어(121), 체커 코어(123), 자기진단 제어부(122, 124), 지연회로(115, 116), 비교회로(127), 억제회로(128)를 주요 구성요소로서 가지고 있다. 마스터 코어(121) 및 체커 코어(123)를 제외한 각 구성요소의 기능은, 실시형태 1에서 설명한 대응하는 각 요소와 마찬가지이다. 그 때문에, 여기서는 상세 설명을 생략한다.
실시형태 1의 변형예는, 이러한 구성에 의해, 디버그시의 소비전력 증가를 억제할 수 있는 마이크로 컨트롤러를 제공할 수 있다.
또한, 당연히, 실시형태 1의 구성과, 실시형태 1의 변형예의 구성은, 배타적인 것이 아니다. 다시 말하면, 마이크로 컨트롤러(100) 또는 마이크로 컨트롤러(200)는, 실시형태 1에서 설명한 중앙연산부(110)와 실시형태 1의 변형예에서 설명한 DMA 제어부(120)를 각각 별개로 구비할 수도 있고, 이들을 동시에 구비할 수도 있다. 또한, 중앙연산부(110)에 상당하는 연산부가 복수 존재하는 경우는, 그것들 모두에 동일한 형태의 구성을 적용할 수 있다. 또한, 중앙연산부(110), DMA 제어부(120)에 한하지 않고, 듀얼 코어 록 스텝 방식의 기능을 가진 이중화된 구성요소라면, 상술한 구성과 동일한 형태의 구성 및 효과를 구비할 수 있다.
실시형태 1에 따른 마이크로 컨트롤러(100, 200)는, 지연회로를 가진 클록 지연형 듀얼 코어 록 스텝 방식을 채용하고 있다. 그러나 이들은 지연회로를 갖지 않는 듀얼 코어 록 스텝 방식이어도 된다.
<실시형태 2>
다음으로, 도 7을 참조하면서, 실시형태 2에 관해서 설명한다. 도 7은, 실시형태 2에 따른 마이크로 컨트롤러의 블록도이다. 도 7에 나타낸 마이크로 컨트롤러(300)는, 클록 지연형 듀얼 코어 록 스텝 방식의 기능을 억제하기 위한 구성이, 실시형태 1에 따른 마이크로 컨트롤러(100)와 다르다.
이하에, 실시형태 1과 다른 구성에 관해서 설명한다. 도 7에 나타낸 마이크로 컨트롤러(300)는, 전원차단회로(310)를 가지고 있다. 전원차단회로(310)는, 미리 설정된 신호를 수취하는 것에 의해, 접속되어 있는 회로의 전원을 차단하는 기능을 가지고 있다.
도 7에 예시한 전원차단회로(310)의 상세를 설명한다. 전원차단회로(310)는, MOSFET(metal-oxide-semiconductor field-effect transistor)를 가지고 있다. 이러한 MOSFET은, 체커 코어(113), 자기진단 제어부(114), 지연회로(115, 116), 비교회로(117)의 GND 라인에 각각 개재되어 있다. 또한, 전원차단회로(310)는, 디버그용 단자(170)가 출력하는 신호를 수취한다. 디버그용 단자(170)가 출력하는 신호는, 전원차단회로(310)가 갖는 MOSFET의 게이트에 접속되어 있다. 여기서, 전원차단회로(310)가 갖는 MOSFET은, 이른바 n형의 MOSFET이다. 그 때문에, 전원차단회로(310)는, 디버그용 단자(170)로부터 디버그 개시신호를 수취하는 것에 의해, 접속되어 있는 체커 코어(113), 자기진단 제어부(114), 지연회로(115, 116), 비교회로(117)의 GND 접속을 차단한다. 따라서, 전원차단회로(310)는, 접속되어 있는 체커 코어(113), 자기진단 제어부(114), 지연회로(115, 116), 비교회로(117)에 대해서 전원의 공급을 정지시킬 수 있다.
이처럼, 동작을 억제하는 대상의 회로에 대해서 전원의 공급을 정지하는 것에 의해, 마이크로 컨트롤러(300)는, 디버그시에 동작을 억제하는 회로의 리크전류를 저감할 수 있다. 따라서, 실시형태 2에 따른 마이크로 컨트롤러(300)는, 디버그시의 소비전력 증가를 억제할 수 있는 마이크로 컨트롤러를 제공할 수 있다.
또한, 전원차단회로(310)의 구성은 주요 구성을 예시한 것이며, 구체적인 회로 구성은 도 7에 예시한 것에 한하지 않는다.
마이크로 컨트롤러(300)는, 상술한 바와 같은 소정의 회로블록이 이중화된 회로 및 그러한 이중화된 회로에 부수하는 전원차단회로를 복수 가지고 있어도 된다. 그 경우, 이러한 복수의 전원차단회로는, 이중화된 회로의 일부인 회로블록의 전원을 각각 차단한다. 이 경우, 마이크로 컨트롤러(300)는, 디버그 개시신호에 따라, 이들 복수의 전원차단회로를 동시에 기동하고, 복수의 이중화된 회로의 일부인 회로블록의 동작을 정지시킬 수 있다.
또한, 마이크로 컨트롤러(300)는, 이들 복수의 이중화된 회로의 일부인 회로블록의 동작을 정지시키는 복수의 전원차단회로를, 단계적으로 정지시켜도 된다. 그 경우, 예를 들면, 마이크로 컨트롤러(300)는, 디버그처리 중에 마이크로 컨트롤러(300)의 동작 파라미터에 따라, 미리 설정된 회로블록의 동작을 정지시킬 수 있다. 동작 파라미터란, 예를 들면, 온도, 전류값, 전압값, 및 소비전력 또는 이들의 조합이다. 이 경우, 일부의 회로블록이 정지한 회로는, 상술한 바와 같은 의사 에러신호를 출력하는 기능에 의해, 이중화된 회로의 체크 동작을 처리할 수 있다. 이에 의해, 마이크로 컨트롤러(300)는, 디버그처리를 계속할 수 있다.
또한, 마이크로 컨트롤러(300)는, 마이크로 컨트롤러(300)의 소비전력의 값에 따라서 단계적으로 회로블록의 동작을 정지시켜도 된다. 즉, 마이크로 컨트롤러(300)는, 상술한 동작 파라미터 중, 미리 설정된 동작 파라미터를 감시하고, 미리 설정된 역치(threshold value)를 초과한 경우에, 단계적으로 회로블록의 동작을 정지시킬 수 있다. 이러한 구성을 채용하는 것에 의해, 디버그 상태에 있어서의 소비전력의 증가나, 온도 상승을 억제할 수 있다.
이상, 본 발명자에 의해 이루어진 발명을 실시형태에 근거하여 구체적으로 설명했지만, 본 발명은 이미 기술한 실시형태로 한정되는 것이 아니라, 그 요지를 일탈하지 않는 범위에서 여러 가지 변경이 가능한 것은 말할 필요도 없다.
100, 200, 300 마이크로 컨트롤러
110 중앙연산부
111, 121 마스터 코어
112, 114, 122, 124 자기진단 제어부
112a, 112b, 114a, 114b 레지스터
113, 123 체커 코어
115, 116 지연회로
117, 127 비교회로
118, 128 억제회로
130 인터페이스부
141 마스터 버스
142 체커 버스
150 기억부
160 디버그회로
170 디버그용 단자
310 전원차단회로
110 중앙연산부
111, 121 마스터 코어
112, 114, 122, 124 자기진단 제어부
112a, 112b, 114a, 114b 레지스터
113, 123 체커 코어
115, 116 지연회로
117, 127 비교회로
118, 128 억제회로
130 인터페이스부
141 마스터 버스
142 체커 버스
150 기억부
160 디버그회로
170 디버그용 단자
310 전원차단회로
Claims (10)
- 제1 신호처리회로와,
상기 제1 신호처리회로와 동일한 신호처리를 하는 제2 신호처리회로와,
상기 제1 신호처리회로의 처리결과와 상기 제2 신호처리회로의 처리결과를 비교하여 에러를 검출한 경우에는 에러신호를 출력하는 비교회로와,
상기 제2 신호처리회로 및 상기 비교회로의 동작을 억제시키기 위한 억제신호를 수취하는 억제신호 입력부와,
상기 억제신호 입력부로부터 상기 억제신호를 수취하여, 상기 제2 신호처리회로 및 상기 비교회로의 동작을 억제하는 억제회로와,
상기 제2 신호처리회로 및 상기 비교회로의 동작을 억제한 경우에, 상기 에러신호 대신에 의사(擬似) 에러신호를 출력하는 의사 에러신호 출력회로,
를 구비한 마이크로 컨트롤러. - 청구항 1에 있어서,
외부로부터 디버그 개시신호를 수취하는 것에 의해 디버그처리를 행하는 디버그회로를 더 구비하며,
상기 억제신호는, 상기 디버그 개시신호에 포함되는,
마이크로 컨트롤러. - 청구항 2에 있어서,
상기 의사 에러신호 출력회로는, 상기 억제신호를 수취한 경우, 또한, 상기 제1 신호처리회로가 기동시에 출력하는 미리 설정된 판독신호를 검출한 경우에, 상기 의사 에러신호를 출력하는,
마이크로 컨트롤러. - 청구항 1에 있어서,
상기 제1 신호처리회로는, 중앙연산부의 마스터 코어를 포함하고,
상기 제2 신호처리회로는, 중앙연산부의 체커 코어를 포함하는,
마이크로 컨트롤러. - 청구항 1에 있어서,
상기 제1 신호처리회로는, 다이렉트 메모리 액세스 컨트롤러의 마스터 코어를 포함하고,
상기 제2 신호처리회로는, 다이렉트 메모리 액세스 컨트롤러의 체커 코어를 포함하는,
마이크로 컨트롤러. - 청구항 1에 있어서,
상기 제1 신호처리회로는, 상기 제1 신호처리회로의 출력을 지연시키는 제1 지연기를 포함하며,
상기 제2 신호처리회로는, 상기 제2 신호처리회로의 입력을 지연시키는 제2 지연기를 포함하는,
마이크로 컨트롤러. - 청구항 1에 있어서,
상기 제2 신호처리회로의 전원을 차단하는 전원차단회로를 더 구비하며,
상기 제2 신호처리회로의 동작을 억제하는 경우에는, 상기 전원차단회로에 의해 상기 제2 신호처리회로의 전원을 차단하는,
마이크로 컨트롤러. - 청구항 2에 있어서,
상기 억제회로는, 복수의 회로블록의 동작을 개별적으로 억제하는 회로를 더 구비하며,
상기 억제회로는, 상기 디버그처리 중의 상기 마이크로 컨트롤러의 소비전력에 따라, 상기 복수의 회로블록의 동작을 개별적으로 억제하는,
마이크로 컨트롤러. - 청구항 2에 있어서,
상기 억제회로는, 복수의 회로블록의 동작을 개별적으로 억제하는 회로와, 상기 마이크로 컨트롤러의 내부 또는 주변부의 온도를 측정하는 온도센서를 더 구비하며,
상기 억제회로는, 상기 디버그처리 중의 상기 온도에 따라, 상기 복수의 회로블록의 동작을 개별적으로 정지시키는,
마이크로 컨트롤러. - 제1 신호처리회로와, 해당 제1 신호처리회로와 동일한 신호처리를 하는 제2 신호처리회로와, 상기 제1 신호처리회로의 처리결과와 상기 제2 신호처리회로의 처리결과를 비교하여 에러를 검출한 경우에는 에러신호를 출력하는 비교회로를 가지는 마이크로 컨트롤러의 제어방법으로서,
디버그 개시신호를 수취하고,
상기 디버그 개시신호에 따라 상기 제2 신호처리회로 및 상기 비교회로의 동작을 억제하며,
상기 제2 신호처리회로 및 상기 비교회로의 동작을 억제한 경우에, 상기 에러신호 대신에 의사 에러신호를 출력하는,
마이크로 컨트롤러의 제어방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017184355A JP2019061392A (ja) | 2017-09-26 | 2017-09-26 | マイクロコントローラ及びマイクロコントローラの制御方法 |
JPJP-P-2017-184355 | 2017-09-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20190035480A true KR20190035480A (ko) | 2019-04-03 |
Family
ID=63363852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180090209A KR20190035480A (ko) | 2017-09-26 | 2018-08-02 | 마이크로 컨트롤러 및 마이크로 컨트롤러의 제어방법 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10915082B2 (ko) |
EP (1) | EP3460632B1 (ko) |
JP (1) | JP2019061392A (ko) |
KR (1) | KR20190035480A (ko) |
CN (1) | CN109558277B (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6979630B2 (ja) * | 2018-01-17 | 2021-12-15 | パナソニックIpマネジメント株式会社 | 監視装置、監視方法及びプログラム |
JP6981920B2 (ja) * | 2018-05-25 | 2021-12-17 | ルネサスエレクトロニクス株式会社 | 半導体装置、およびデバッグ方法 |
KR20210058566A (ko) | 2019-11-14 | 2021-05-24 | 삼성전자주식회사 | 전자 시스템, 그것의 결함 검출 방법, 시스템 온 칩 및 버스 시스템 |
DE102021206133A1 (de) * | 2021-06-16 | 2022-12-22 | Robert Bosch Gesellschaft mit beschränkter Haftung | Steuerungssystem für mindestens ein empfangendes Gerät in sicherheitskritischen Anwendungen |
US11892505B1 (en) * | 2022-09-15 | 2024-02-06 | Stmicroelectronics International N.V. | Debug and trace circuit in lockstep architectures, associated method, processing system, and apparatus |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008518338A (ja) | 2004-10-25 | 2008-05-29 | ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング | 少なくとも2つの実施ユニットを有する計算機システムにおける切替え方法および装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0394183A (ja) * | 1989-05-19 | 1991-04-18 | Fujitsu Ltd | 半導体集積回路の試験方法及び回路 |
SE466475B (sv) * | 1990-07-10 | 1992-02-17 | Ericsson Telefon Ab L M | Saett och anordning foer oevervakning och testning vid en flerplansenhet i en digital tidsvaeljare |
SE9702176L (sv) * | 1997-06-06 | 1998-12-07 | Ericsson Telefon Ab L M | En maskinvarukonstruktion för majoritetsval, samt test och underhåll av majoritetsval |
US7076609B2 (en) * | 2002-09-20 | 2006-07-11 | Intel Corporation | Cache sharing for a chip multiprocessor or multiprocessing system |
KR20070083772A (ko) | 2004-10-25 | 2007-08-24 | 로베르트 보쉬 게엠베하 | 멀티 프로세서 시스템에서의 동기화 방법 및 장치 |
US20080244305A1 (en) * | 2007-03-30 | 2008-10-02 | Texas Instruments Deutschland, Gmbh | Delayed lock-step cpu compare |
US8074087B2 (en) * | 2008-06-24 | 2011-12-06 | Microsoft Corporation | Configuring processors and loads for power management |
US8209591B2 (en) * | 2008-10-23 | 2012-06-26 | Intersil Americas Inc. | Voter tester for redundant systems |
JP2010117813A (ja) * | 2008-11-12 | 2010-05-27 | Nec Electronics Corp | デバッグシステム、デバッグ方法、デバッグ制御方法及びデバッグ制御プログラム |
JP2014209312A (ja) * | 2013-03-25 | 2014-11-06 | 株式会社東芝 | 集積回路 |
-
2017
- 2017-09-26 JP JP2017184355A patent/JP2019061392A/ja active Pending
-
2018
- 2018-07-29 US US16/048,282 patent/US10915082B2/en active Active
- 2018-08-02 KR KR1020180090209A patent/KR20190035480A/ko unknown
- 2018-08-07 EP EP18187847.1A patent/EP3460632B1/en active Active
- 2018-09-19 CN CN201811090544.6A patent/CN109558277B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008518338A (ja) | 2004-10-25 | 2008-05-29 | ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング | 少なくとも2つの実施ユニットを有する計算機システムにおける切替え方法および装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2019061392A (ja) | 2019-04-18 |
CN109558277B (zh) | 2023-11-21 |
EP3460632A1 (en) | 2019-03-27 |
US10915082B2 (en) | 2021-02-09 |
US20190094830A1 (en) | 2019-03-28 |
CN109558277A (zh) | 2019-04-02 |
EP3460632B1 (en) | 2020-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20190035480A (ko) | 마이크로 컨트롤러 및 마이크로 컨트롤러의 제어방법 | |
US9323595B2 (en) | Microcontroller, control device and determination method | |
US10576990B2 (en) | Method and device for handling safety critical errors | |
JP6266239B2 (ja) | マイクロコンピュータ | |
JP6462870B2 (ja) | 半導体装置及び診断テスト方法 | |
US20170249224A1 (en) | Semiconductor device | |
US20150234661A1 (en) | Semiconductor integrated circuit device and system using the same | |
JPS5968004A (ja) | 車載用コンピユ−タのフエイルセ−フ方法 | |
US20090265581A1 (en) | Data system having a variable clock pulse rate | |
JP2014209312A (ja) | 集積回路 | |
CN110825017A (zh) | 包括安全逻辑的装置和操作该装置的方法 | |
KR102701850B1 (ko) | 안전 로직을 포함하는 장치 | |
KR102677512B1 (ko) | 안전 로직을 포함하는 장치 | |
JP5756413B2 (ja) | 制御装置 | |
JP2013030056A (ja) | 半導体集積回路装置 | |
JP7504222B2 (ja) | 車載用制御システム | |
JP6588068B2 (ja) | マイクロコンピュータ | |
JP2012160149A (ja) | 二重化回路、半導体装置およびテスト方法 | |
JP4613019B2 (ja) | コンピュータシステム | |
JP6645467B2 (ja) | マイクロコンピュータ | |
JPS6362776B2 (ko) | ||
JP2022184410A (ja) | 演算装置 | |
JP2015114847A (ja) | 情報処理装置 | |
JP2008146188A (ja) | 集積回路 | |
JP2008146307A (ja) | タイマ制御装置およびその障害検出方法 |