KR19990087086A - 계산 유닛의 기능 체크 방법 - Google Patents

계산 유닛의 기능 체크 방법 Download PDF

Info

Publication number
KR19990087086A
KR19990087086A KR1019980706474A KR19980706474A KR19990087086A KR 19990087086 A KR19990087086 A KR 19990087086A KR 1019980706474 A KR1019980706474 A KR 1019980706474A KR 19980706474 A KR19980706474 A KR 19980706474A KR 19990087086 A KR19990087086 A KR 19990087086A
Authority
KR
South Korea
Prior art keywords
instruction
calculation unit
calculation
result
instructions
Prior art date
Application number
KR1019980706474A
Other languages
English (en)
Other versions
KR100498150B1 (ko
Inventor
헤르베르트 치글러
리하르트 메를
호르스트 요우베날
디트마르 페터스
요한 슈미트
Original Assignee
칼 하인쯔 호르닝어
지멘스 악티엔게젤샤프트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 칼 하인쯔 호르닝어, 지멘스 악티엔게젤샤프트 filed Critical 칼 하인쯔 호르닝어
Publication of KR19990087086A publication Critical patent/KR19990087086A/ko
Application granted granted Critical
Publication of KR100498150B1 publication Critical patent/KR100498150B1/ko

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60TVEHICLE BRAKE CONTROL SYSTEMS OR PARTS THEREOF; BRAKE CONTROL SYSTEMS OR PARTS THEREOF, IN GENERAL; ARRANGEMENT OF BRAKING ELEMENTS ON VEHICLES IN GENERAL; PORTABLE DEVICES FOR PREVENTING UNWANTED MOVEMENT OF VEHICLES; VEHICLE MODIFICATIONS TO FACILITATE COOLING OF BRAKES
    • B60T8/00Arrangements for adjusting wheel-braking force to meet varying vehicular or ground-surface conditions, e.g. limiting or varying distribution of braking force
    • B60T8/32Arrangements for adjusting wheel-braking force to meet varying vehicular or ground-surface conditions, e.g. limiting or varying distribution of braking force responsive to a speed condition, e.g. acceleration or deceleration
    • B60T8/88Arrangements for adjusting wheel-braking force to meet varying vehicular or ground-surface conditions, e.g. limiting or varying distribution of braking force responsive to a speed condition, e.g. acceleration or deceleration with failure responsive means, i.e. means for detecting and indicating faulty operation of the speed responsive control means
    • B60T8/885Arrangements for adjusting wheel-braking force to meet varying vehicular or ground-surface conditions, e.g. limiting or varying distribution of braking force responsive to a speed condition, e.g. acceleration or deceleration with failure responsive means, i.e. means for detecting and indicating faulty operation of the speed responsive control means using electrical circuitry
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D41/00Electrical control of supply of combustible mixture or its constituents
    • F02D41/24Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means
    • F02D41/26Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using computer, e.g. microprocessor
    • F02D41/266Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using computer, e.g. microprocessor the computer being backed-up or assisted by another circuit, e.g. analogue
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60TVEHICLE BRAKE CONTROL SYSTEMS OR PARTS THEREOF; BRAKE CONTROL SYSTEMS OR PARTS THEREOF, IN GENERAL; ARRANGEMENT OF BRAKING ELEMENTS ON VEHICLES IN GENERAL; PORTABLE DEVICES FOR PREVENTING UNWANTED MOVEMENT OF VEHICLES; VEHICLE MODIFICATIONS TO FACILITATE COOLING OF BRAKES
    • B60T2270/00Further aspects of brake control systems not otherwise provided for
    • B60T2270/40Failsafe aspects of brake control systems
    • B60T2270/406Test-mode; Self-diagnosis
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W2050/0001Details of the control system
    • B60W2050/0043Signal treatments, identification of variables or parameters, parameter estimation or state estimation
    • B60W2050/0044In digital systems
    • B60W2050/0045In digital systems using databus protocols
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/02Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
    • B60W50/0205Diagnosing or detecting failures; Failure detection models
    • B60W2050/021Means for detecting failure or malfunction

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Chemical & Material Sciences (AREA)
  • Transportation (AREA)
  • Combustion & Propulsion (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Retry When Errors Occur (AREA)
  • Devices For Executing Special Programs (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Abstract

본 발명은 제 2계산 유닛을 이용하여 제 1계산 유닛의 정확한 계산을 체크하기 위한 방법에 관한 것으로, 상기 제 2계산 유닛은 제 1계산 유닛에 개시값(starting value) 및 연산 명령을 미리 제공한다. 제 1계산 유닛은 미리 제공된 상기 개시값으로써 예정된 계산 명령을 수행하여, 그 결과를 제 2계산 유닛에 되돌려 보낸다. 제 2계산 유닛은 저장된 비교 결과로써 상기 결과를 체크한다. 상기 계산 명령은, 제 1계산 유닛을 프로그래밍하기 위해 사용되는 기본 명령이 체크되도록 설계된다.

Description

계산 유닛의 기능 체크 방법
계산 유닛의 기능을 체크하기 위한 방법은 특히 상기 계산 유닛이 자동차의 안전과 관련된 기능을 제어하는 경우와 같은 자동차 공학에서 사용된다. 예를 들어 주행 속도 조절기를 제어하거나 또는 스로틀 밸브의 상태를 제어하는 것이 안전과 관련이 있기 때문에, 주행 속도 조절기 또는 스로틀 밸브 상태를 제어하는 계산 유닛이 정확한 기능까지 체크하게 된다.
DE 44 38 714 A1호에는 자동차의 구동 유닛을 제어하기 위한 방법이 공지되어 있는데, 상기 방법에서는 출력을 제어하기 위해서 제어 기능 및 체크 기능을 수행하는 계산 소자가 제공된다. 상기 계산 소자는 독립적인 3개의 평면으로 나누어진다. 제 1평면은 출력의 제어를 수행하고, 제 2평면은 상기 제어의 수행을 체크하며, 제 3평면은 제 2평면의 작동을 체크한다.
상기 제 2평면은 프리세팅값 및 출력의 세팅값으로부터 유도되는 값과의 비교에 의해 스로틀 밸브를 제어하는 제어 기능을 체크한다.
본 발명은 청구의 범위 청구항 1의 전문에 따른 계산 유닛의 기능 체크 방법에 관한 것이다.
본 발명은 도면을 참조하여 하기에 자세히 설명된다:
도 1은 제어 장치를 갖춘 자동차의 개략적인 구성도이고,
도 2는 개략적인 프로그램 순서도이며,
도 3은 명령 테이블이고,
도 4는 결과 테이블이며,
도 5는 프로그램 순서도이고,
도 6은 제 1서브루틴(subroutine)이고,
도 7은 제 2서브루틴이며,
도 8은 제 3서브루틴이다.
본 발명의 목적은, 에러를 확실하게 검출할 수 있는, 계산 유닛의 기능을 체크하기 위한 방법을 제공하는 것이다.
상기 목적은 본 발명에 따라 청구항 1의 특징에 의해 달성된다.
본 발명의 중요한 장점은, 하나의 계산 유닛이 여러 기능들을 수행하기 위해서 사용하는 기본 기능들이 체크된다는 점이다.
본 발명의 바람직한 실시예 및 개선예는 종속항에서 기술된다.
도 1은 흡인관(12)을 포함하고, 그 내부에 관련 스로틀 밸브 조절기(2)를 갖는 스로틀 밸브(17)가 배치된 주입 장치를 갖춘 내연 기관(1)용 제어 장치의 구성을 개략적으로 도시한 개략도이다. 내연 기관(1)은 또한 배기 가스를 배출하기 위한 배기 가스관(13)을 포함한다. 또한, 가속기(14)가 제공되며, 상기 가속기의 상태는 가속기 전달 장치(1)에 의해 검출된다.
가속기 전달 장치(1)는 센서 라인(15)을 통해 제 1계산 유닛(3)과 연결되며, 상기 유닛은 제어 라인(6)을 통해서는 스로틀 밸브 조절기(2)와 연결되고, 제 1데이터 라인(4)을 통해서는 제 1메모리(5)와 연결되며, 제 1데이터 버스(16)를 통해서는 내연 기관(1)과 연결되고, 제 2데이터 버스(7)를 통해서는 제 2계산 유닛(8)과 연결된다. 상기 제 2계산 유닛(8)은 제 2데이터 라인(9)을 통해 제 2메모리(10)에 연결된다.
본 발명에 따른 방법은, 내연 기관의 출력이 스로틀 밸브(17)의 상태를 통해 세팅되는 내연 기관(1)의 출력 제어의 실시예에 따라 하기에서 기술된다.
운전자가 원하는 출력은 가속기(14)의 상응하는 동작을 통해 나타난다. 가속기(14)의 상태는 가속기 전달 장치(11)에 의해 측정되어 제 1제어 장치(3)에 계속 제공된다. 상기 제 1제어 장치(3)는 운전자가 바라는 것을, 스로틀 밸브(17)를 상응하게 세팅하는 스로틀 밸브 조절기(2)의 상응하는 제어로 변환시킨다.
상기 목적을 위해서 제 1계산 유닛(3)은, 제 1데이터 버스(16)를 통해 제 1계산 유닛(3)에 제공되는 내연 기관(1)의 파라미터들을 고려하여 그리고 제 1메모리(5)에 기억된 산술 기능 및 제어 기능들을 사용하여, 스로틀 밸브 조절기(2)를 제어하는 제어 신호를 산출한다. 바람직하게는, 예컨대 외부 온도 또는 습도와 같은 주변으로부터 얻어지는 파라미터들이 고려된다.
제 1계산 유닛(3)의 정확한 작동은 제 2계산 유닛(8)에 의해서 제 2데이터 버스(7)를 통한 데이터 교환에 의해 체크되며, 이 경우 제 2계산 유닛(8)은 제 2메모리(10)내에 저장된 데이터들을 액세스(access)한다.
도 2는 제 1계산 유닛(3)의 정확한 작동을 제 2계산 유닛(8)에 의해서 체크하는 개략적인 방법을 보여준다.
프로그래밍 포인트(2)에서는 전압 공급이 스위치-온된 후에, 제 1 및 제 2메모리(5, 10)로부터 얻어지는 미리 주어진 개시 파라미터가 판독되는 초기화가 실행된다.
그 다음에, 프로그래밍 포인트(21)에서는 제 2계산 유닛(8)으로부터 제 1계산 유닛(3)에 개시값이 제공된다. 그리고 나서, 프로그래밍 포인트(22)에서는 제 2계산 유닛(8)이 제 1계산 유닛(3)에 계산 명령을 제공한다.
개시값 및 계산 명령을 받은 후에는, 제 1계산 유닛(3)이 프로그래밍 포인트(23)에서 미리 제공된 개시값으로 예정된 계산 명령을 수행한다. 프로그래밍 포인트(24)에서는 제 1계산 유닛(3)이 예정된 계산 명령 및 미리 제공된 개시값으로부터 산술된 결과를 제 2계산 유닛(8)에 전달한다.
제 2계산 유닛(8)은 제 1계산 유닛(3)으로부터 전달된 결과를, 미리 제공된 개시값 및 예정된 계산 명령에 의존하여 제 2메모리(10)내에 저장된 비교 결과와 비교한다. 프로그래밍 포인트(25)에서 상기 결과가 비교 결과와 일치한다는 사실이 나타나면, 프로그래밍 포인트(29)로 분기된다.
그러나 프로그래밍 포인트(25)에서 결과와 비교 결과가 일치하지 않는다는 사실이 나타나면, 그 다음의 프로그래밍 포인트(26)에서 제 2계산 유닛(8)에 의해 에러 측정기가 값 1만큼 증가된다. 프로그래밍 포인트(26)의 프로세싱 후에는 프로그래밍 포인트(31)로 분기된다.
프로그래밍 포인트(29)에서는, 제 2계산 유닛(8)이 전달된 결과가 비교 결과와 일치한다는 정보를 제 1계산 유닛(3)에 제공한다. 그 다음에 제 2계산 유닛(8)이 에러 측정기를 체크하여 에러 측정기의 값이 0보다 더 크면 상기 값을 프로그래밍 포인트(30)에서 낮춘다.
이어서 프로그래밍 포인트(31)에서, 제 2계산 유닛(3)의 에러 측정기의 값이 최대값과 비교된다. 상기 비교로부터 에러 측정기가 예정된 최대값 위에 있다는 결과가 나타나면, 그 다음 프로그래밍 포인트(27)에서 제 1계산 유닛(3)이 제 2계산 유닛(8)에 의해 내연 기관(1)의 제어가 다만 예정되고 제한된 출력 범위내에서만 가능한 비상 실행 기능으로 스위칭됨으로써, 결과적으로 위험이 최대로 제한될 뿐만 아니라 다음 워크스테이션에도 도달될 수 있다.
본 발명의 개선예는 하기의 기능에 의해 달성된다: 제 1계산 유닛(3)에 의해 산술된 결과가 저장된 상응하는 비교 결과와 일치하지 않는 경우에는, 제 2계산 유닛(8)이 제 1계산 유닛(3)에 에러 신호를 제공한다. 에러 신호를 받으면 제 1계산 유닛(3)이 에러 측정기를 값 1만큼 높인다. 올바른 결과가 얻어지면 제 2계산 유닛(8)이 제 1계산 유닛(3)에 응답 신호를 제공한다. 그렇게 되면, 응답 신호가 수신될 때에 제 1계산 유닛(3)이 에러 측정기를 값 1만큼 낮춘다. 제 1계산 유닛(3)이 응답 신호에서 에러 측정기를 낮추지 않으면, 제 2계산 유닛(8)이 에러 측정기가 낮아지는 것을 체크하여, 경고 신호를 제 1계산 유닛(3)에 전달한다. 에러 신호에서는 제 1계산 유닛(3)이, 다만 제한된 출력 제어만이 가능한 비상 실행 기능으로 옮겨진다.
그러나 프로그래밍 포인트(31)에서 에러 측정기가 예정된 최대값 아래에 있다는 조회가 생기면, 프로그래밍 포인트(32)로 분기된다.
프로그래밍 포인트(32)에서는 제 2계산 유닛(8)이 제 2메모리(10)로부터 다른 하나의 개시값 및/또는 그 다음의 프로그래밍 포인트(21 및 20)에서 제 1계산 유닛(3)에 미리 제공되는 다른 하나의 계산 명령을 선택하게 된다. 에러 측정기가 0이 아닌 경우에는 제 2계산 유닛(8)이 다음 테스트 프로그램에서 동일한 계산 명령 및 특별히 제 1계산 유닛(3)의 틀린 결과를 산술하는 동일한 개시값을 선택하는 것이 바람직하다. 동일한 계산 명령은, 에러가 제거되거나 또는 제 1계산 유닛(3)이 비상 실행 기능으로 스위치-온 될 때까지 사용된다.
도 3은 제 1계산 유닛(3)의 명령 세트의 예로서 제시된 하나의 테이블을 보여주며, 상기 테이블에 의해 제 1계산 유닛(3)이 프로그래밍 및/또는 산술을 실행한다. 이 경우 상기 명령 세트의 명령은 계산 0, 계산 1, 계산 2 및 계산3으로 표시된 4개의 상이한 계산 명령에 할당된다. 명령 세트는 명령 방식으로서 산술 명령, 논리 명령, 비트 세트 명령, 비교 명령, 이동 명령, 전송 명령 및 점프 명령을 포함한다.
모든 계산 명령에는 바람직하게 적어도 하나의 산술 명령, 논리 명령, 비트 세트 명령, 비교 명령, 이동 명령, 전송 명령 및 점프 명령이 포함된다. 도 3에 도시된 계산 테이블은 제 1메모리(5)에 저장된다.
도 4는 개시값에 의존하여 계산 명령의 결과인 계산 0 내지 3을 나타내는 하나의 결과 테이블을 보여주며, 상기 결과는 계산 명령이 정확한 실행을 하는 경우에 제 1계산 유닛(3)에 의해 포함된 것이다. 이 경우에는, 계산 0, 계산 1, 계산 2 및 계산 3의 결과를 나타내는 결과 0, 결과 1, 결과 2 및 결과 3이 표기된다.
도 4에서 155C의 16진값에 상응하는 개시값 0에 대해서는 B246의 16진값을 갖는 계산 0의 결과 0이 지시된다.
상기 개시값 155C로 산술 1이 제 1계산 유닛(3)에 의해 실행되면, 계산 유닛(3)의 작동이 정확한 경우에는 16진값 09BE를 갖는 결과 1이 얻어져야 한다.
제 1계산 유닛(3)이 정확하게 작동되면, 개시값이 16진값 DFDB를 갖는 경우에는 계산 0이 실행되는 때에 ACCD의 16진값을 갖는 결과 0이 얻어져야 한다.
도 3에 도시된 계산 명령은 우수한 계산 명령을 나타낸다. 간단한 경우에, 계산 명령은 테스트될 계산 유닛의 명령 세트의 적어도 하나의 명령으로 이루어진다.
도 3에 예로서 제시된 명령들은 어셈블러 명령들이다. 계산 명령이 계산 유닛(3)내에서 프로그래밍 될 때에는 상기 계산 명령은 바람직하게 상응하는 기계어로 직접 프로그래밍되어야 하는데, 그 이유는 그럼으로써만 정확한 명령 세트가 정해지기 때문이다. 어셈블러-명령 세트의 예에서는 계산 명령들 0 내지 3은 어셈블러로 프로그래밍되어야 한다.
계산 0은, 제 2계산 유닛(8)으로부터 미리 제공된 개시값에 의해 어셈블러 명령이 상술 0의 행에서 위로부터 아래로 실행된다고 이해해야 한다. 다시 말해서 계산 0에 대해서는, 값 0으로부터 출발하여 개시값이 가산되어(ADD)어 결과로서 16진값 155C가 얻어진다. 상기 결과는 그 다음에 개시값과 곱해진다(MUL). 이와 같이, 계산 0의 모든 어셈블러-명령들은 연속적으로, 선행하는 어셈블러 명령의 결과가 다음 어셈블러 명령을 위해 재차 사용되는 방식으로 실행된다. 따라서, 에러 동작시에는 모든 어셈블러 명령이 최종 결과에 일정 량을 더하게 된다.
계산 명령 0의 모든 명령들이 실행되면, 마지막 결과, 즉 점프 명령(JNB) 후에 얻어지는 최종 결과가 프로그래밍 포인트(24)에서의 결과로서 제 2계산 유닛(8)에 제공된다.
상기 실시예에서는, 바람직하게는 개별적으로 또는 도 3의 계산 명령에 도시된 바와 같이 다수가 정확한 작동에 대해 체크되는 어셈블러 명령들이 제공되었다.
프로그래밍시 다른 기계 명령들, 즉 명령 세트(명령 세트, instruction set)가 계산 유닛(3)에 사용되면, 상기 명령들은 상응하는 계산 명령들을 이용하여 제 1계산 유닛(3)의 정확한 작동을 체크하기 위해 체크된다.
예를 들어 어셈블러 언어를 사용할 때의 개별 어셈블러 코드들과 같은 하나의 프로그램을 세팅하는 프로그래밍 언어의 예정된 최소 명령을 나타내는 명령들은 기계어로 표시된다.
본 발명의 중요한 장점은, 명령 세트(명령 세트, instruction set)의 명령들, 바람직하게는 제 1계산 유닛(3)이 하나의 프로그램 또는 산술을 실행하거나 또는 실행할 수 있도록 해주는 명령 세트의 모든 명령들이 정확한 작동에 대해 개별적으로 또는 다수의 명령을 갖는 그룹으로서 하나의 테스트 산술기내에서 체크된다는 점이다.
바람직하게, 가능한 명령들의 상이한 방식에 의해 적어도 하나의 명령을 갖는 명령 체인(instruction chain)이 체크됨으로써, 상기 상이한 명령 방식들은 단 하나의 계산 명령에 의해 체크된다.
본 경우에는 어셈블러 코드인 하나의 명령 세트의 다만 소수의 명령들을 계산 유닛(3)을 위해서 포함하는 실시예를 참조하여, 기능 체크의 원리가 하기에서 명확히 설명된다. 계산 유닛(3)의 기능을 체크하기 위해서는, 최대로 많은 명령들, 최상적으로는 모든 명령들이 테스트 산술기에 의해 체크되는 것이 바람직하다.
도 5는 어셈블러 명령들(XORB, ADDC, JNB 및 XOR)로 이루어진 하나의 계산 명령의 산술 흐름을 보여주는 개략도이다. 상기 어셈블러 명령들은 예를 들어 지멘스 회사의 16비트 CMOS 싱글-칩 마이크로 제어기의 명령 세트 매뉴얼에 기술되어 있다.
계산 명령은 도 2의 프로그래밍 포인트(23)에 상응하게 프로그래밍 포인트(40)에서 스타팅된다. 제일 먼저, 프로그래밍 포인트(41)에서는 계산 명령의 결과가 저장되는 메모리 위치가 에러값으로 채워진다. 상기와 같이 메모리를 미리 채우는 것은, 계산 명령이 중단되었을 때 결과가 에러 결과로 채워짐으로써 계산 명령의 중단이 상기 결과를 참조하여 에러로서 인식된다는 장점을 갖는다.
그 다음에, 프로그래밍 포인트(42)에서 어셈블러 명령(XORB)이 실행된다. 상기 명령의 실행은 도 6에 정확하게 기술되어 있다. 어셈블러 명령(XORB)은 논리적이고 배타적인 ODER-연결부를 나타내는데, 상기 연결부에서 하나의 논리 배타 ODER-연결부는 제 1값과 제 2값 사이에서 비트 방식으로 실행되고, 결과는 새로운 제 1값으로서 저장된다:
W1 = XORB (W1, W2)
상기 식에서, W1 및 W2는 제 1값 및 제 2값이다.
어셈블러 명령과 같은 계산 명령을 실행하는 경우에는 결과 이외에, 계산 명령의 실행을 통해 다른 정보를 재현하는 조건부 비트들이 제공된다. 16비트 CMOS 싱글-칩-마이크로 제어기의 예에서는, 실행된 어셈블러 명령의 결과에 따라 상이한 값으로 채워지는 5개의 조건부 비트들이 제공된다. 상기 5개의 조건부 비트들은 하나의 비트 레지스터에 저장되며, 하기에서는 E-비트, Z-비트, V-비트, C-비트 및 N-비트로 표기된다. 결과의 가장 중요한 비트(most significant Bit)가 세트되면, N-비트는 1의 값을 갖는다. 결과의 가장 중요한 비트가 세트되지 않으면, 상기 N-비트는 0의 값을 갖는다.
가장 중요한 비트 위치에서 오버 플로우가 나타나면, C-비트는 1의 값을 갖는다. 어셈블러 명령을 실행할 때 오버 플로우가 나타나지 않으면, C-비트는 0의 값을 갖는다. 어셈블러 명령을 실행할 때 산술적인 오버 플로우가 나타나면, V-비트는 1의 값을 갖는다. 어셈블러 명령을 실행할 때 산술적인 오버 플로우가 나타나지 않으면, V-비트는 0의 값을 갖는다. 어셈블러 명령의 결과가 0의 값을 가지면, Z-비트는 1의 값을 갖는다. 어셈블러 명령의 결과가 0의 값을 갖지 않으면, Z-비트는 0의 값을 갖는다. 상기 제 2값(W2)이 최소의 음수를 나타내는 경우에는 E-비트가 1의 값을 갖고, 그렇지 않은 경우에는 E-비트가 0의 값을 갖는다. 상기 V-비트 및 C-비트는 어셈블러 명령(XORB)에 대해서 항상 0으로 채워진다.
프로그래밍 포인트(60)에서는 어셈블러 명령(XORB)의 실행이 스타팅되는데, 이 경우 제 1값으로서는, 도 4의 테이블로부터 얻어지고 제 2계산 유닛(8)으로부터 제 1계산 유닛(3)에 제공되는 개시값이 사용된다. 상기 개시값이 16비트 크기의 데이터 워드인 경우에는, 어셈블러 명령(XORB)을 실행하기 위해서 단지 상기 개시값의 HIGH-비트, 더 높은 값의 8개의 비트가 사용된다.
제 2값(W2)으로서는, 상기 개시값으로부터 8개의 비트를 필터링하는, 미리 제공된 마스크의 값이 사용된다. 상기 실시예에서 사용된 마스크는 상기 개시값의 낮은 값의 8개의 비트로 구성된다.
산술 연산(XORB)이 실행된 후에는, 프로그래밍 포인트(61)에서 중간 결과로서의 결과가 일시 레지스터내에 저장된다. 그 다음의 프로그래밍 포인트(62)에서는 상기 프로그래밍 포인트(61)에 저장된 중간 결과가 새로운 중간 결과로서 비트 레지스터의 값과 더해서 저장되며, 이 경우 상기 어셈블러 명령(XORB)의 영향을 받지 않은 조건부 비트들은 0의 값으로 채워진다:
ZW = ZW + (비트 레지스터).
그 다음에, 프로그래밍 포인트(63)에서 도 5의 프로그래밍 포인트(43)로 역분기된다.
프로그래밍 포인트(43)에서는, 전송 비트, 즉 C-비트를 고려하여 정수 가산을 실행하는 어셈블러 명령(ADDC)이 테스트된다:
ADDC (W1, W2) = W1 + W2 + C-비트.
상기 ADDC-어셈블러 명령은 제 2값 및 제 1값의 2의 보수(two's complement)의 2진 덧셈을 실행하며, 이 경우에는 마지막 계산 단계에서 형성된 C-비트가 부가적으로 더해진다. ADDC-산술 연산의 결과는 새로운 제 1값(W1)으로서 저장된다:
W1 = ADDC (W1,W2).
상기 ADDC-산술 연산을 위한 테스트 산술의 실행은 도 7에서 자세히 설명된다. 프로그래밍 포인트(43)로부터 프로그래밍 포인트(70)로 분기되며, 상기 포인트(70)에서 ADDC-산술 연산을 위한 테스트 산술이 스타팅된다. 프로그래밍 포인트(71)에서는, 도 4의 테이블로부터 얻어지는 개시값의 15번째 비트가 1의 값을 갖는지 아닌지가 체크된다. 1의 값을 가지면, 프로그래밍 포인트(72)로 분기된다. 프로그래밍 포인트(72)에서는 작업 레지스터(AR)가 상기 ADDC-산술 연산의 결과로 채워지며, 이 경우 제 1값 및 제 2값으로서는 각각 상기 개시값이 사용된다:
AR = ADDC(W1,W2) = ADDC (개시값, 개시값)
그 다음의 프로그래밍 포인트(73)에서는, 실행된 ADDC-명령을 위한 C-비트가 1의 값을 갖는지 아닌지가 체크된다. 1의 값을 가지면, 그 다음의 프로그래밍 포인트(74)에서는 작업 레지스터(AR) 및 지금까지의 중간 결과(ZW(n-1))로부터의 총합이 새로운 중간 결과(ZW(n))로서 저장된다:
ZW(n) = AR + ZW(n - 1).
이어서, 프로그래밍 포인트(75)에서 도 5의 프로그래밍 포인트(44)로의 분기가 이루어진다.
프로그래밍 포인트(73)에서 C-비트가 1의 값을 갖지 않는다는 사실에 대해 조회가 생기면 프로그래밍 포인트(79)로 분기되어, 상기 프로그래밍 포인트(79)에서 결과로서 에러값이 저장된 다음에 프로그래밍 포인트(80)에서 테스트 산술이 종결된다.
프로그래밍 포인트(71)에서 개시값의 15번째 비트가 1의 값을 갖지 않는다는 사실에 대해 조회가 생기면, 그 다음의 프로그래밍 포인트(76)로 분기된다. 프로그래밍 포인트(76) 다음에는 산술 연산(ADDC)의 값이 작업 레지스터(AR)내로 저장되며, 이 경우 제 1값 및 제 2값으로서는 각각 개시값이 사용된다:
AR = ADDC (개시값, 개시값).
그 다음의 프로그래밍 포인트(77)에서는 ADDC-명령의 C-비트가 체크된다. 상기 C-비트가 0의 값을 가지면, 프로그래밍 포인트(78)로 분기된다. 프로그래밍 포인트(78)에서는 작업 레지스터의 값 및 지금까지의 중간 결과(ZW(n-1))의 값의 총합이 새로운 중간 결과(ZW(n))로서 저장된다:
ZW(n) = AR + ZW (n - 1).
이어서, 프로그래밍 포인트(81)에서는 도 5의 프로그래밍 포인트(44)로의 분기가 이루어진다.
프로그래밍 포인트(77)에서 C-비트가 0의 값을 갖지 않는다는 사실에 대해 조회가 생기면 프로그래밍 포인트(79)로 분기된다. 상기 프로그래밍 포인트(79)에서 결과로서 에러값이 저장된 다음에 프로그래밍 포인트(80)에서 테스트 산술이 종결된다.
프로그래밍 포인트(44)를 위한 테스트 산술은 어셈블러 명령(JNB 및 XOR)을 포함한다. 상기 어셈블러 명령(JNB)은, 미리 주어진 비트가 0의 값을 갖는 경우에 실행되는 조건부 점프 명령이다. 어느 명령이 다음 명령으로서 실행되어야 하는지를 결정하기 위해서, 다음 명령으로서 실행될 명령이 저장되는 실제 번지를 지시하는 명령 포인터가 사용된다.
점프 명령(JNB)이 실행되면, 상기 명령 포인터는 제 2값(W2)에 의해 결정되는 예정된 번지의 개수만큼 이동된다. 그러나 미리 주어진 비트가 1의 값을 가지면, 실제 번지에 저장되는 명령이 다음 명령으로서 실행된다.
XOR-산술 연산은 제 1값과 제 2값(W1, W2) 사이에서 논리적이고 배타적인 ODER-연결부를 나타낸다: XOR (W1, W2). 상기 XOR-산술 연산의 결과는 새로운 값(W1)으로서 저장된다:
W1 = XOR (W1,W2).
프로그래밍 포인트(44)로부터 JNB-명령 및 XOR-명령을 위한 테스트 산술이 스타팅되는 프로그래밍 포인트(90)로의 분기가 이루어진다. 프로그래밍 포인트(91)에서 일시 작업 레지스터(AR)는 도 4의 테이블의 미리 주어진 개시값으로 채워진다: AR = 개시값.
그 다음의 프로그래밍 포인트(92)에서는 작업 레지스터의 제 4비트가 0의 값으로 채워진다. 그 후에 프로그래밍 포인트(93)에서 JNB-명령이 실행되며, 이 경우 상기 작업 레지스터(AR)의 제 4비트는 제 1값으로서 사용된다. 제 2값은, 에러 루틴이 명령으로서 저장되는 새로운 번지로 명령 포인터가 점핑되도록 설계된다. 작업 레지스터의 제 4비트가 0이 아니라는 JNB-명령이 실행되면, 미리 주어진 제 2값(W2)에 상응하게 프로그래밍 포인트(94)로 분기가 이루어지고, 상기 프로그래밍 포인트에서는 에러 루트가 스타팅되며, 상기 에러 루트에서 결과용 메모리는 에러값으로 채워지고, 그 다음에 프로그래밍 포인트(97)에서 프로그램이 종결된다.
그러나, 제 4비트가 0의 값을 갖는다는 사실에 대해 프로그래밍 포인트(93)에서 조회가 생기면, 프로그래밍 포인트(95)로 분기된다. 프로그래밍 포인트(95)에서는 제 1값(W1)으로서 지금까지의 중간 결과(ZW(n-1)) 및 제 2값(W2)으로서 작업 레지스터(AR)를 갖는 XOR-산술 연산의 결과가 새로운 중간 결과(ZW(n))로서 저장된다:
ZW(n) = XOR (ZW(n - 1), AR).
그 다음의 프로그래밍 포인트(96)에서는 프로그래밍 포인트(45)로 역분기가 이루어진다.
프로그래밍 포인트(45)에서 제 1계산 유닛(3)은, 결과가 바람직하게 예정된 관계식에서 비교 결과와 일치하지 않는 경우에 상기 결과를 비교 결과와 비교하여 제 1계산 유닛(3)의 작동 에러를 인식하는 제 2계산 유닛(8)에 도 2의 프로그래밍 포인트(24)에 상응하게 상기 결과를 제공한다. 그 다음에 프로그램이 종결된다.
도 5에 사용된 개시값은 바람직하게, 상응하는 계산 명령에 속하는 도 4의 테이블의 개시값과 언제나 동일한 개시값이다.
하나의 명령의 결과가 그 다음의 명령을 위해 재차 사용되는 하나의 명령 체인내에 있는 다수의 명령을 체크하는 것은, 각 명령의 최종 결과에 기여하고, 따라서 상기 방식에 의해 개별 명령의 부정확성이 비교적 줄어들며, 그럼으로써 최종 결과의 총합에서는 계산 유닛의 동작 에러에 대한 진술을 가능하게 하는 명백한 에러가 나타난다는 장점을 갖는다.
제 1계산 유닛(3)의 간단한 체크는, 하나의 명령을 실행할 때 상기 명령의 적어도 하나의 조건부 비트의 정확한 값 또는 정확한 변화를 체크하는 것이다. 조건부 비트가 오류인 경우에는 제 1계산 유닛(3)의 동작 에러로 종결될 수 있다. 제 1계산 유닛(3)의 조건부 비트는 제 1계산 유닛 또는 제 2계산 유닛(3, 8)을 체크한다.

Claims (9)

  1. 제 1계산 유닛(3)에 계산 명령 및 개시값을 미리 제공하는 제 2계산 유닛(8)에 의해 제 1계산 유닛(3)의 기능을 체크하기 위한 방법으로서, 상기 제 1계산 유닛(3)은 상기 개시값 및 계산 명령을 사용하여 결과를 산출하고, 그 결과를 비교 결과와 비교하는 제 2계산 유닛(8)에 전달하도록 구성된 체크 방법에 있어서,
    제 1계산 유닛(3)에 의해서 프로그램 또는 계산 명령을 실행하기 위해 사용되는 명령 세트의 하나의 명령을 계산 명령으로서 미리 제공하는 것을 특징으로 하는 방법.
  2. 제 1항에 있어서,
    상기 계산 명령은 사용된 명령 세트 중에서 적어도 하나의 산술 명령 및/또는 논리 명령 및/또는 비트 세트 명령 및/또는 비교 명령 및/또는 이동 명령 및/또는 전송 명령 및/또는 점프 명령을 포함하는 것을 특징으로 하는 방법.
  3. 제 1항에 있어서,
    상기 제 2계산 유닛(8)은 제 1계산 유닛(3)에 주기적으로 상이한 계산 명령 및 상이한 개시값을 미리 제공하는 것을 특징으로 하는 방법.
  4. 제 3항에 있어서,
    동일한 명령 방식에 대한 상이한 계산 명령들은 여러 가지의 명령들을 포함하는 것을 특징으로 하는 방법.
  5. 제 1항에 있어서,
    제 1계산 유닛(3)에 의해 산출된 결과가 상응하는 비교 결과와 일치하지 않는 경우에는 제 2계산 유닛(8)이 제 1계산 유닛(3)에 에러 신호를 제공하며, 하나의 에러 신호를 수신한 경우에는 상기 제 1계산 유닛(3)이 에러 측정기를 예정된 값만큼 올리고, 결과가 올바른 경우에는 제 2계산 유닛(8)이 제 1계산 유닛(3)에 응답 신호를 제공하며, 하나의 응답 신호를 수신한 경우에는 제 1계산 유닛(3)이 에러 측정기를 예정된 값 1만큼 낮추고, 제 2계산 유닛(8)은 상기 에러 측정기가 낮아지는 것을 체크하며, 제 1계산 유닛(3)이 응답 신호시 에러 측정기를 낮추지 않은 경우에는 제 2계산 유닛(8)이 경고 신호를 제 1계산 유닛(3)에 전달하는 것을 특징으로 하는 방법.
  6. 제 1항에 있어서,
    상기 명령 세트는 마이크로 제어기의 하나의 기계 명령 세트, 바람직하게는 하나의 어셈블러-명령 세트를 의미하는 것을 특징으로 하는 방법.
  7. 제 1항에 있어서, 계산 명령으로서 일련의 명령들을 미리 제공하며, 제 1명령의 결과 또는 상기 제 1명령의 조건부 비트의 결과는 제 2명령을 실행할 때 고려하는 것을 특징으로 하는 방법.
  8. 제 7항에 있어서,
    일련의 명령들을 연속적으로 실행하며, 이 경우 개시값에 의해서는 제 1명령을 실행하고, 상기 명령의 결과는 제 2명령을 위한 개시값으로서 사용하며, 상기 제 2명령의 결과는 최종 결과로서 제 2계산 유닛(8)에 제공하는 것을 특징으로 하는 방법.
  9. 제 1항에 있어서,
    계산 유닛(3)의 기능을 체크할 때는 실행된 명령의 적어도 하나의 조건부 비트를 올바른 값으로 체크하는 것을 특징으로 하는 방법.
KR10-1998-0706474A 1996-12-20 1997-12-03 프로세서의기능체크방법 KR100498150B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19653429A DE19653429C2 (de) 1996-12-20 1996-12-20 Verfahren zur Überprüfung der Funktionsfähigkeit einer Recheneinheit
DE19653429.1 1996-12-20

Publications (2)

Publication Number Publication Date
KR19990087086A true KR19990087086A (ko) 1999-12-15
KR100498150B1 KR100498150B1 (ko) 2005-09-09

Family

ID=7815632

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1998-0706474A KR100498150B1 (ko) 1996-12-20 1997-12-03 프로세서의기능체크방법

Country Status (6)

Country Link
US (1) US6158021A (ko)
EP (1) EP0898745B1 (ko)
JP (1) JP2000507020A (ko)
KR (1) KR100498150B1 (ko)
DE (2) DE19653429C2 (ko)
WO (1) WO1998028692A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000029734A (ja) * 1998-07-13 2000-01-28 Nissan Motor Co Ltd Cpu異常監視システム
DE19917208A1 (de) 1999-04-16 2000-10-19 Bosch Gmbh Robert Verfahren und Vorrichtung zur Überwachung eines Rechenelements in einem Kraftfahrzeug
DE19944939C1 (de) * 1999-09-20 2001-08-30 Mannesmann Vdo Ag Steuergerät für ein Kraftfahrzeug
GB0011251D0 (en) * 2000-05-11 2000-06-28 Lucas Industries Ltd Fault monitoring system
SE518104C2 (sv) 2000-06-13 2002-08-27 Saab Ab System och metod för programvaruunderhåll
DE10041697A1 (de) * 2000-08-24 2002-03-14 Infineon Technologies Ag Verfahren zum Testen einer programmgesteuerten Einheit durch eine externe Testvorrichtung
DE10113917B4 (de) * 2001-03-21 2019-05-23 Robert Bosch Gmbh Verfahren und Vorrichtung zur Überwachung von Steuereinheiten
DE10152273B4 (de) * 2001-10-20 2007-03-08 Robert Bosch Gmbh Verfahren und Vorrichtung zur Überwachung eines redundanten Abschaltpfades
US8055492B2 (en) * 2002-01-10 2011-11-08 International Business Machines Corporation Non-unique results in design verification by test programs
JP3818218B2 (ja) * 2002-05-22 2006-09-06 トヨタ自動車株式会社 車両用電子制御装置
JP4625620B2 (ja) * 2003-10-10 2011-02-02 株式会社日立製作所 フェイルセイフ制御装置
DE102006029171A1 (de) * 2006-06-24 2007-12-27 Dr.Ing.H.C. F. Porsche Ag Verfahren zum Betreiben von über einen Datenbus kommunizierenden Steuergeräten eines Kraftfahrzeugs
US7984341B2 (en) * 2008-02-25 2011-07-19 International Business Machines Corporation Method, system and computer program product involving error thresholds
DE102008020812A1 (de) * 2008-04-25 2009-10-29 Siemens Aktiengesellschaft Vorrichtung zum Erkennen eines in einem Prozessor vorhandenen Fehlers
DE102009026741A1 (de) * 2009-06-04 2011-02-03 Robert Bosch Gmbh Elektronisches Steuersystem und Verfahren zum Prüfen der korrekten Funktion einer Recheneinheit in einem elektronischen Steuersystem
GB2528443B (en) 2014-07-21 2016-12-14 Ibm Checking arithmetic computations

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4456952A (en) * 1977-03-17 1984-06-26 Honeywell Information Systems Inc. Data processing system having redundant control processors for fault detection
US4460999A (en) * 1981-07-15 1984-07-17 Pacific Western Systems, Inc. Memory tester having memory repair analysis under pattern generator control
AU9144782A (en) * 1981-12-21 1983-06-30 General Electric Company Primary and secondary computer system
GB8329509D0 (en) * 1983-11-04 1983-12-07 Inmos Ltd Computer
EP0154551A3 (en) * 1984-03-06 1987-12-16 Codex Corporation Apparatus for enabling a first processor to cause a second processor to effect a transfer of data between said processors
JPS6191732A (ja) * 1984-10-11 1986-05-09 Nec Corp デ−タ処理システムにおける故障処理方式
US5043984A (en) * 1987-04-14 1991-08-27 Japan Electronic Control Systems Co., Ltd. Method and system for inspecting microprocessor-based unit and/or component thereof
JPH0792764B2 (ja) * 1988-05-25 1995-10-09 日本電気株式会社 マイクロプロセッサ
US5410685A (en) * 1990-06-12 1995-04-25 Regents Of The University Of Michigan Non-intrinsive method and system for recovering the state of a computer system and non-intrusive debugging method and system utilizing same
DE4114999C2 (de) * 1991-05-08 2001-04-26 Bosch Gmbh Robert System zur Steuerung eines Kraftfahrzeuges
US5455935A (en) * 1991-05-31 1995-10-03 Tandem Computers Incorporated Clock synchronization system
GB9121540D0 (en) * 1991-10-10 1991-11-27 Smiths Industries Plc Computing systems and methods
JPH05233352A (ja) * 1992-02-19 1993-09-10 Nec Corp マイクロプロセッサ
US5406504A (en) * 1993-06-30 1995-04-11 Digital Equipment Multiprocessor cache examiner and coherency checker
JPH07225263A (ja) * 1994-02-09 1995-08-22 Advantest Corp ビット誤り測定器
DE4438714A1 (de) * 1994-10-29 1996-05-02 Bosch Gmbh Robert Verfahren und Vorrichtung zur Steuerung der Antriebseinheit eines Fahrzeugs
JPH08137824A (ja) * 1994-11-15 1996-05-31 Mitsubishi Semiconductor Software Kk セルフテスト機能内蔵シングルチップマイコン
JP3412349B2 (ja) * 1994-12-28 2003-06-03 株式会社日立製作所 制御装置
US5732209A (en) * 1995-11-29 1998-03-24 Exponential Technology, Inc. Self-testing multi-processor die with internal compare points

Also Published As

Publication number Publication date
EP0898745B1 (de) 2000-02-23
WO1998028692A1 (de) 1998-07-02
DE19653429C2 (de) 1998-10-15
US6158021A (en) 2000-12-05
JP2000507020A (ja) 2000-06-06
DE59701150D1 (de) 2000-03-30
DE19653429A1 (de) 1998-07-16
KR100498150B1 (ko) 2005-09-09
EP0898745A1 (de) 1999-03-03

Similar Documents

Publication Publication Date Title
KR19990087086A (ko) 계산 유닛의 기능 체크 방법
EP0636955B1 (en) Control unit for vehicle and total control system therefor
US6009370A (en) Control unit for vehicle and total control system therefor
JP2574892B2 (ja) 自動車における負荷分担制御方法
US5826211A (en) Electronic controller having excellent control program and control data overwriting capabilities
US5050080A (en) Diagnostic system for a motor vehicle
US5394327A (en) Transferable electronic control unit for adaptively controlling the operation of a motor vehicle
GB2217481A (en) Vehicle electronic control system with self-diagnosis
US5970251A (en) Process for optimizing program parts for motor vehicle controllers
JPWO2016027367A1 (ja) 車載電子制御装置
US6067586A (en) Method for checking a first processor performing functions by a data word received and stored, and modified after performing a given function, and monitored by a second processor
JP3925062B2 (ja) 車載電子制御装置
KR100704322B1 (ko) 자동차 내 연산 소자를 모니터링하기 위한 방법 및 장치
US6516265B1 (en) Method and device for controlling processes in conjunction with an internal combustion engine
JPH11141391A (ja) 自動車用制御装置
JP2599262B2 (ja) 電子式エンジン制御装置の故障診断装置
JP3688224B2 (ja) 自動車用制御ユニット
JPH06330804A (ja) 自動車の点火システムのメモリを効率化する計算機システムと制御方法
JPS61234401A (ja) 車両用制御装置
JP2001290510A (ja) 自動車用制御ユニット
JP2565141B2 (ja) 自動車における負荷分担制御方法
JPH0712005A (ja) 車両用の電子制御装置
JP2022045239A (ja) 電子制御装置
JPS607820B2 (ja) 読出し専用メモリの診断方法
JP2000305750A (ja) 車載用電子制御装置

Legal Events

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

Payment date: 20090616

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee