KR101570031B1 - 계산 유닛의 프로그램 메모리를 체크하기 위한 장치 - Google Patents

계산 유닛의 프로그램 메모리를 체크하기 위한 장치 Download PDF

Info

Publication number
KR101570031B1
KR101570031B1 KR1020107018574A KR20107018574A KR101570031B1 KR 101570031 B1 KR101570031 B1 KR 101570031B1 KR 1020107018574 A KR1020107018574 A KR 1020107018574A KR 20107018574 A KR20107018574 A KR 20107018574A KR 101570031 B1 KR101570031 B1 KR 101570031B1
Authority
KR
South Korea
Prior art keywords
memory
register
program
check
instruction
Prior art date
Application number
KR1020107018574A
Other languages
English (en)
Other versions
KR20100123837A (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 KR20100123837A publication Critical patent/KR20100123837A/ko
Application granted granted Critical
Publication of KR101570031B1 publication Critical patent/KR101570031B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 체크 모듈(11)을 구비한 계산 유닛의 프로그램 메모리(9)를 체크하기 위한 장치에 관한 것으로, 상기 계산 유닛은 체크 모듈(11)에 연결된 명령 카운터(8)로 이루어지고, 상기 명령 카운터는 레지스터(1)를 포함하고, 상기 레지스터(1)는 레지스터 컨텐트를 세팅하는 제 1 전환 스위치(3)에 연결된다. 전체 프로그램 메모리의 명령 어드레스의 체크를 가능하게 하는 장치에서, 명령 카운터(8)는 정상 작동 시 프로그램 코드와 무관하게 프로그램 메모리(9)의 명령 어드레스 영역을 통과하는 보조 카운터(2, 6, 7)를 포함하고, 상기 보조 카운터는 레지스터(1)에 연결된다.

Description

계산 유닛의 프로그램 메모리를 체크하기 위한 장치{Arrangement for checking a program memory in a computation unit}
본 발명은 계산 유닛이 프로그램 메모리에 연결된 명령 카운터로 이루어지고, 상기 명령 카운터는 레지스터 컨텐트를 세팅하는 제 1 전환 스위치에 연결된 레지스터를 포함하는, 체킹 모듈을 구비한 계산 유닛의 프로그램 메모리를 체크하기 위한 장치에 관한 것이다.
자동차 기술 분야에서 보안 관련 어플리케이션의 수가 꾸준히 증가하고 있다. 동시에 자동차 기술에서 사용되는 회로에 대한 복잡성 및 보안 요구도 증가하고 있다. 이는 특히 주문형 반도체(ASIC)와 관련된다. 이 경우 보안 관련 소자의 체크에 대한 요구도 증가한다. 회로에 집적되어 있거나 또는 외부 메모리에 저장되어 있고 보안 관련 어플리케이션의 실행에 이용되는 프로그램 코드도 체크되어야 한다.
조건부로 실행 가능한 분기 명령이 계산 유닛, 바람직하게는 컴퓨터 커널(kernel) 내의 프로그램 실행에 영향을 미칠 수 있기 때문에, 프로그램 메모리의 출력부에서의 명령 스트림이 항상 결정적인 것은 아니다. 다시 말해서, 입력 데이터와 출력 데이터 사이에 명확한 관계가 없다. 따라서 프로그램 메모리의 특정 명령 어드레스들은 항상 응답하고, 다른 명령 어드레스들은 특정 모드에서만 응답한다. 따라서 프로그램 코드는 효율적인 데이터 블록- 또는 데이터 스트림 기반 체크 메커니즘에 의해 검증될 수 없다.
본 발명의 목적은, 전체 프로그램 메모리의 명령 어드레스의 체크를 가능하게 하는 장치를 제공하는 것이다.
본 발명의 장점은, 외부 체킹 모듈이 사전에 정해진 공지된 순서로 프로그램 메모리 전체 컨텐트를 에러 검출 방법에 따라 체크할 수 있다는 것이다. 명령 카운터는 정상 작동 시 프로그램 코드와 무관하게 프로그램 메모리의 명령 어드레스 영역을 지나가는, 레지스터에 연결된 보조 카운터를 포함한다. 제안된 구조는 정상 작동 시 프로그램 메모리의 전체 컨텐트의 모니터링을 효율적으로 가능하게 한다. 필요에 따라 모니터링은 주기적으로 이루어질 수도 있다. 체크가 이루어지는 주기들은 임의적으로 변동될 수 있다. 본 발명은 다양한 에러 검출 방법에 따라 실시할 수 있다.
프로그램 메모리의 모든 명령 어드레스들, 따라서 정상적인 프로그램 실행에서 특정 모드에서만 응답하고 그렇지 않은 경우에 건너뛰는 명령 어드레스들도 체크된다.
컴퓨터 커널 내에 이미 존재하는 몇몇 구조들, 예컨대 어드레스 디코더 및 메모리의 출력 드라이버는 재사용되기 때문에, 상기 구조들의 에러도 간접적으로 테스트 된다.
바람직하게, 보조 카운터는 중간 메모리와 레지스터 사이의 데이터를 교환하는 제 2 전환 스위치를 포함하고, 상기 제 2 전환 스위치는 중간 메모리를 통해 레지스터에 연결된다. 명령 카운터의 단순한 확장에 의해 칩 면적에 대한 하드웨어 비용이 최소화되는데, 그 이유는 명령 카운터의 기존의 부분들이 보조 카운터에도 사용되기 때문이다.
본 발명의 개선예에서, 프로그램 메모리의 체크를 위해 현재 프로그램 실행에 상응하는 레지스터의 컨텐트가 제 2 전환 스위치에 의해 중간 메모리에 로딩될 수 있고, 이 경우 레지스터는 체크될 명령 어드레스로 덮어쓰기 될 수 있다. 레지스터와 중간 메모리의 컨텐트 교환으로 인해 간단하게 정상 프로그램 실행이 중단될 수 있고 체크 모드가 시작될 수 있다. 정상 프로그램 실행 동안 얻어진 레지스터의 현재 값은 일시 저장된다. 따라서 체크 시 프로그램 실행은 중단되지만 변경되는 것은 아니다.
실시예에서, 체크의 실행 후에 현재 프로그램 실행에 상응하는 컨텐트는 중간 메모리로부터 레지스터로 역전송될 수 있다. 정상 프로그램 실행의 일시 저장된 값이 레지스터에 리로드(reload) 됨으로써, 프로그램은 중단되었던 상태에서 재개된다.
개선예에서, 레지스터는 체크의 실행 후에 체크될 명령 어드레스를 사전 설정된 값만큼 증가시키는 가산기로 안내되고, 상기 가산기는 제 2 전환 스위치에 연결되고, 상기 제 2 전환 스위치는 사전 설정된 값만큼 증가된 명령 어드레스를 중간 메모리에 저장한다. 이는, 정상 프로그램 실행의 현재 값으로 레지스터의 덮어쓰기와 병렬로, 가산기에 의해, 다음으로 체크될, 중간 메모리에 저장된 명령 어드레스가 선택되는 장점을 갖는다. 가산기에 의해 선택된 값은 선형으로 또는 미리 정해진 다른 규정에 따라 선택될 수 있다.
다음 체크 시작 시 다음 명령이 전술한 바와 같이 실행되면, 정상 프로그램 실행이 중단되고, 프로그램 메모리의 체크될 다음 명령 어드레스가 중간 메모리로부터 레지스터로 로딩된다. 가산기는 정상 프로그램 코드의 실행 시 및 프로그램 메모리의 명령 어드레스에 대한 체크 모드에서 사용되는, 장치의 소자이다.
바람직하게, 확장된 명령 카운터는 시간 분할 방법으로 전술한 실행을 가능하게 한다. 시간 분할 방법으로 상기 구조를 실행하기 때문에, 예컨대 "싱글-포트(single-Port)" 메모리 모듈과 같이 간단하고 저렴한 메모리 모듈이 사용될 수 있다. 이러한 메모리 모듈은 하나의 어드레스 입력부와 하나의 데이터 출력부만 포함하고, 이는 전술한 과정을 위해 충분한데, 그 이유는 프로그램 코드의 정상 실행 및 체크는 시간 순차적으로 실시되기 때문이다.
실시예에서 명령 카운터는 체크될 명령 어드레스의 전송을 위해 신호 라인을 통해 외부 전송 모듈에 연결된다. 특히 바람직하게 본 발명에 따른 구조는, 프로그램 메모리가 데이터 버스와 연결되어 있지 않은 컴퓨터 아키텍처(computer architecture)에 적합한데, 그 이유는 명령 카운터와 체크 모듈 사이의 통신을 위해 간단한 신호 라인으로 충분하기 때문이다.
프로그램 메모리의 완전한 체크의 실행을 컨트롤하기 위해, 외부 체크 모듈은 프로그램 메모리의 체크의 시작과 종료를 검출한다. 이것은 체크 모듈에 저장된 값과 인가된 명령 어드레스의 비교를 통해 이루어진다.
프로그램 메모리의 크기가 2의 제곱이 아닌 경우에, 완전한 체크 후에 중간 레지스터는 다시 초기값으로 초기화되어야 한다. 이를 위해 신호 라인은 외부 체크 모듈과 명령 카운터 사이에서 양방향성으로 형성된다.
대안으로서, 명령 카운터는 프로그램 메모리 체크의 시작과 종료를 검출한다. 프로그램 메모리의 완전한 체크의 시작과 종료는 신호 라인을 통해 체크 모듈에 전달된다. 외부 체크 모듈에서 명령 어드레스의 체크는 생략된다. 따라서 바람직하게 칩 면적이 절감될 수 있다.
본 발명의 개선예에서, 명령 카운터는 메모리 체크를 제어하는 명령 디코더에 연결된다. 프로그램 메모리 체크의 어드레스 컨텐트(메모리 장소) 체크의 제어는 특수한 소프트웨어 명령에 의해 시작되고, 명령 디코더의 컨트롤 하에 자동으로 진행된다. 따라서 간단하게, 프로그램 메모리 컨텐트의 완전한 체크를 위한 지속시간을 가변적으로 유지하는 것이 가능하다. 지속시간의 차별화(differentiating)는 구체적인 어플리케이션의 보안 관련 요구에 의존적일 수 있다. 다른 관점에서, 시작될 어플리케이션이 확실하게 실행되는 것을 보장하기 위해, 초기화 단계에서 몇 밀리 초 동안만 프로그램 메모리의 체크가 이루어져야 할 필요가 있을 수 있다. 이러한 상황에서, 프로그램 메모리의 체크 시작을 위한 소프트웨어 명령이 자주 반복된다. 초기화 단계 종료 후에는, 수 초의 범위에서만 체크가 이루어지면 충분하다. 상기 조치는 프로세서 이용률(processor utilization)에 맞추어질 수 있다. 또한, 전류 소비를 가능한 작게 유지하는 것을 목표로 할 수 있다.
본 발명은 다수의 실시예들을 가능하게 한다. 첨부한 도면을 참고로 실시예들 중 하나가 설명된다.
본 발명에 따라, 전체 프로그램 메모리의 명령 어드레스의 체크를 가능하게 하는 장치가 제공된다.
도 1은 선행기술에 따른 명령 카운터를 도시한 도면.
도 2는 명령 카운터의 본 발명에 따른 실시예를 도시한 도면.
도 3은 본 발명에 따른 장치를 포함하는 시스템을 도시한 도면.
동일한 부분들은 동일한 도면부호로 표시된다.
도 1에는 컴퓨터 커널에서 선행기술에 따라 공지된 명령 카운터가 도시된다. 명령 카운터는 워드 넓이(word widths) N을 갖는 레지스터(1)로 이루어진다. 레지스터(1)의 컨텐트는 프로그램 메모리에서 어드레스로서 이용된다. 레지스터(1)는 가산기(2)에 연결되고, 상기 가산기는 레지스터(1)의 컨텐트를 매 명령마다 1씩 증가시킨다. 가산기(2) 및 도 1에 도시되지 않은 외부 명령 디코더 모듈은 제 1 멀티 플렉서(3)에 안내되고, 상기 멀티 플렉서는 다시 레지스터(1)에 연결된다. 프로그램 실행을 제어할 수 있도록, 가산기(2)를 통해 1씩 증가된 레지스터 컨텐트는 제 1 멀티 플렉서(3)를 통해 다시 레지스터(1)에 공급된다. 레지스터 컨텐트는 외부로부터 외부 명령 디코더 모듈에 의해 세팅될 수도 있고, 이것은 제 1 멀티 플렉서(3) 상의 입력부들(4)로 표시된다. 이러한 제어는 제 1 멀티 플렉서(3)에 의해서도 이루어진다.
프로그램 메모리를 체크할 수 있도록, 전체 어드레스 영역이 한 번 통과되어야 한다. 프로그램 실행은 외부로부터 제한되는 분기 명령의 영향을 받을 수 있기 때문에, 체크될 프로그램 메모리의 프로그램 코드와 무관하게 선형으로 또는 미리 정해진 다른 규정에 따라 어드레스 영역을 지나가는 보조 카운터가 사용된다. 보조 카운터의 구현을 위해 선행기술에 따라 공지된 명령 카운터가 확장되므로, 몇 개의 기존의 하드웨어 소자들이 함께 사용될 수 있다.
확장된 명령 카운터는 도 2에 도시된다. 레지스터(1)는 한편으로는 가산기(2)를 통해 제 1 멀티 플렉서(3)에 연결되고, 상기 멀티 플렉서는 제 2 멀티 플렉서(5)를 통해 다시 레지스터(1)로 안내된다. 다른 한편으로, 레지스터(1)는 제 3 멀티 플렉서(6)에 연결되고, 상기 제 3 멀티 플렉서는 중간 메모리(7)로 안내된다. 중간 메모리(7)는 다시 제 2 멀티 플렉서(5)를 통해 레지스터(1)로 안내된다. 가산기(2)는 또한 제 3 멀티 플렉서(6)에 연결된다.
상기 장치에서도, 제 1 멀티 플렉서(3) 상의 입력부들(4)로 표시된 외부 명령 디코더 모듈의 레지스터 컨텐트는 제 1 멀티 플렉서(3) 및 제 2 멀티 플렉서(5)에 의해 세팅될 수 있다. 제 1 멀티 플렉서(3)와 제 3 멀티 플렉서(6)에서 바람직하게 2개의 N-비트 2 대 1 멀티 플렉서가 사용된다.
프로그램 메모리의 명령 체크는 전형적으로 3개의 사이클을 포함한다: 먼저 프로그램 메모리의 메모리 어드레스의 체크 시작을 위한 명령이 디코딩된다. 상기 명령은 정상적인 프로그램 코드의 소프트웨어에 포함되어 있고, 따라서 계산 유닛의 정상 작동 동안 판독된다.
상기 명령의 디코딩 후에 정상적인 프로그램 작동이 중단된다. 현재 실행 프로그램의 메모리 어드레스를 포함하고 있는 레지스터(1)의 컨텐트는 제 3 멀티 플렉서(6)를 통해 중간 메모리(7)에 로딩된다. 따라서 프로그램 실행의 현재 상태가 저장된다. 동시에 프로그램 메모리의 체크될 메모리 어드레스에 해당하는 중간 메모리(7)의 컨텐트는 레지스터(1)에 로딩된다.
다음 단계에서 가산기(2)에 의해 1씩 증가된 레지스터(1)의 컨텐트는 제 3 멀티 플렉서(6)를 통해 다시 중간 메모리(7)에 저장된다. 동시에 중간 메모리(7)의 컨텐트는 제 2 멀티 플렉서(5)를 통해 레지스터(1)에 로딩된다. 상기 컨텐트는 현재 실행 프로그램이 중단되었던, 명령 코드의 메모리 어드레스에 상응하기 때문에, 정상 프로그램 실행이 다시 재개될 수 있다.
중간 메모리(7)에 다시 로딩되고 1씩 증가된 레지스터(1)의 컨텐트는 메모리 어드레스의 체크 시작을 위한 다음 명령에서 체크되는, 체크될 프로그램 메모리의 다음 메모리 어드레스에 상응한다. 이러한 조치에 따라, 확장된 명령 카운터(8)는 정상 작동 모드와 프로그램 메모리 체크 모드 사이를 교대한다.
도 3에는 전술한 확장된 명령 카운터(8)를 포함하는 시스템이 도시된다. 체크될 프로그램 메모리(9)는 명령 디코더(10)와 외부 체크 모듈(11)에 연결된다. 명령 디코더(10)는 다시 직접 외부 체크 모듈(11)과 확장된 명령 카운터(8)에 안내된다. 또한, 명령 디코더(10)는 예컨대 메모리 유닛들(RAM, ROM) 또는 프로세서의 산술-논리 유닛(ALU)과 같은 다른 모듈(12)에 연결되고, 상기 유닛에서 상기 명령 디코더는 신호 라인(13)을 통해 제어 신호를 송출한다.
먼저 시스템은 프로그램 메모리에 저장된 프로그램 코드에 의해 사전 설정된 정상 프로그램의 실행 상태에 있다. 프로그램 코드에서 다음 명령으로서 프로그램 메모리(9)의 메모리 어드레스의 체크 시작 명령이 호출되면, 이것은 명령 디코더(10)에 의해 디코딩된다. 명령 디코더(10)는 이러한 정보를 신호 라인(14)을 통해 체크 모듈(11)에 전달한다. 또한 신호 라인(15)을 통해 확장된 명령 카운터(8)에도 정보가 전달된다. 프로그램 실행은 확장된 명령 카운터(8)에 의해 중단된다. 확장된 명령 카운터(8)는 레지스터(1)와 중간 메모리(7) 사이에서 컨텐트를 교환하면서 전술한 방식으로 작동한다. 레지스터(1) 내의 체크될 메모리 어드레스는 신호 라인(16)을 통해 외부 체크 모듈(11)에 전달된다. 체크될 메모리 어드레스는 프로그램 메모리 컨텐트에 추가하여 체크될 값으로서 사용될 수 있다. 또한, 프로그램 메모리(9)는 상기 메모리 어드레스에 포함된 명령을 호출할 것을 요청받는다. 명령은 신호 라인(17)을 통해 명령 디코더(10)에 전달되고, 신호 라인(18)을 통해 체크 모듈(11)에 전달된다. 체크 모듈(11)은 이 시점에 인가되는 체크될 명령을 받고 그것을 에러 검출 프로그램을 이용하여 비교한다. 명령이 에러만 체크할 수 있는 것이 아니라 전체 메모리 또는 메모리 영역을 체크할 수 있는 경우에 메모리가 컨트롤 된다. 통상적인 체크 방법은 전체 메모리를 통한 검사합계(checksum)의 형성이다.
이러한 체크가 종료되고 레지스터(1)와 중간 메모리(7)의 컨텐트가 교환되어 레지스터(1)에 다시 정상 프로그램에 해당하는 메모리 컨텐트가 존재하면, 정상 프로그램 실행이 다시 기록된다.
이러한 과정은 프로그램 메모리(9)의 명령 어드레스의 체크 시작을 위한 다른 명령에 의해 다시 호출됨으로써 항상 반복될 수 있다. 이로 인해 이러한 과정은 프로그램 메모리(9)의 전체 어드레스 영역이 통과되어 모든 메모리 장소들이 조사될 때까지 빈번하게 반복된다. 검증의 결과는 후속해서 명령 디코더(10)로부터 도시되지 않은 상위 제어장치에 전달되고 거기에서 평가된다.
프로그램 메모리(9)의 전체 체크의 시작과 종료의 결정은 외부 체크 모듈(11)에서 이루어진다. 이를 위해 외부 체크 모듈(11)은 인가된 메모리 어드레스를 체크 모듈(11)에 저장된 값과 비교한다. 이것은, 체크 과정이 활성화될 때면 항상 이루어진다. 제 1 값은 프로그램 메모리(9)의 제 1 어드레스, 즉 체크의 시작을 식별하는 한편, 제 2 값은 프로그램 메모리(9)의 마지막 어드레스, 즉 프로그램 메모리(9)의 어드레스 영역의 전체 체크의 종료를 식별한다.
메모리의 크기가 2의 제곱인 경우에, 프로그램 메모리의 전체 체크의 시작과 종료의 결정은 완전히 생략될 수 있다. 중간 메모리의 값이 어드레스 영역의 끝에 도달하면 오버런이 나타난다. 다음 체크 주기에서 중간 메모리의 값은 상기 오버런에 의해 자동으로 0으로 초기화된다.
프로그램 메모리(9)의 크기가 2의 제곱이 아닌 경우에, 중간 메모리(7)는 프로그램 메모리의 어드레스 영역의 전체 체크 후에 다시 초기값으로 초기화되어야 한다. 이것은 신호 라인(19)을 통해 체크 모듈(11)로부터 확장 명령 카운터(8)로 이루어진다. 프로그램 메모리(9)의 크기가 2의 제곱이면, 중간 메모리(7)의 초기화는 불필요하고, 상기 신호 라인은 생략될 수 있다.
전술한 해결책은 특히 회전 토크- 및 가속 센서용 평가 회로에 적합하다.
1 레지스터
2, 6, 7 보조 카운터
8 명령 카운터
9 프로그램 메모리

Claims (12)

  1. 체크 모듈(11)을 이용하여 계산 유닛의 프로그램 메모리(9)를 체크하기 위한 방법으로서,
    - 상기 프로그램 메모리 상에서 체크를 시작하기 위한 명령이 상기 계산 유닛의 정상 모드 동안 판독되고, 상기 계산 유닛의 명령 디코더(10)에 의해 디코딩되되, 상기 명령은 상기 정상 모드 동안 실행되는 프로그램에 포함되어 있는 단계,
    - 상기 체크를 시작하기 위한 명령의 디코딩 후에 상기 계산 유닛의 정상 모드가 중단되는 단계,
    - 실행되고 있는 프로그램을 위한 메모리 어드레스를 포함하는 레지스터(1)의 컨텐트가 중간 메모리(7) 내로 로딩되고, 상기 프로그램 메모리(9)를 위해 체크될 메모리 어드레스에 대응하는 상기 중간 메모리(7)의 컨텐트가 상기 레지스터(1) 내로 로딩되는 단계,
    - 체크될 메모리 어드레스가 상기 레지스터(1)로부터 상기 체크 모듈(11)로 전달되는 단계,
    - 체크될 메모리 어드레스와 연관된 체크될 명령이 상기 프로그램 메모리(9)로부터 상기 체크 모듈(11)로 전송되는 단계,
    - 상기 레지스터(1)의 컨텐트는 가산기(2)에 의해 사전 설정된 값만큼 증분되고 상기 중간 메모리(7)에 저장되며, 상기 중간 메모리(7)의 컨텐트는 상기 레지스터(1) 내로 로딩되는 단계,
    - 상기 계산 유닛의 정상 모드가 재개되는 단계를 포함하는 것을 특징으로 하는 프로그램 메모리 체크 방법.
  2. 제 1 항에 있어서, 상기 프로그램 메모리 또는 전체 프로그램 메모리의 체크될 명령 또는 메모리 영역들은 상기 체크 모듈에 의해 체크되는 것을 특징으로 하는 프로그램 메모리 체크 방법.
  3. 제 1 항 또는 제 2 항에 있어서, 상기 프로그램 메모리 상에서 체크의 시작과 종료는 상기 체크 모듈에 의해 검출되는 것을 특징으로 하는 프로그램 메모리 체크 방법.
  4. 적어도 하나의 레지스터 및 적어도 하나의 중간 메모리를 구비하는 계산 유닛의 프로그램 메모리를 체크하기 위한 회로 장치로서,
    - 상기 계산 유닛의 정상 모드 동안 상기 프로그램 메모리 상에서 체크를 시작하기 위한 명령을 판독하고, 상기 정상 모드 동안 실행되는 프로그램에 포함되어 있는 상기 명령을 디코딩을 위해 상기 계산 유닛의 명령 디코더로 송신하기 위한 수단,
    - 상기 체크를 시작하기 위한 명령의 디코딩 후에 상기 계산 유닛의 정상 모드를 중단시키기 위한 수단,
    - 실행되고 있는 프로그램을 위한 메모리 어드레스를 포함하는 상기 레지스터의 컨텐트를 상기 중간 메모리 내로 로딩하고, 상기 프로그램 메모리를 위해 체크될 메모리 어드레스에 대응하는 상기 중간 메모리의 컨텐트를 상기 레지스터 내로 로딩하기 위한 수단,
    - 체크될 메모리 어드레스를 상기 레지스터로부터 체크 모듈로 전달하기 위한 수단,
    - 체크될 메모리 어드레스와 연관된 체크될 명령을 상기 프로그램 메모리로부터 상기 체크 모듈로 전송하기 위한 수단,
    - 가산기를 이용하여 상기 레지스터의 컨텐트를 사전 설정된 값만큼 증분시키고, 상기 컨텐트를 상기 중간 메모리에 저장하며, 상기 중간 메모리의 컨텐트를 상기 레지스터 내로 로딩하기 위한 수단,
    - 상기 계산 유닛의 정상 모드를 재개하기 위한 수단을 추가로 구비하는 회로 장치.
  5. 제 4 항에 있어서, 실행되는 프로그램의 메모리 어드레스를 포함하는 상기 레지스터의 컨텐트를 상기 중간 메모리 내로 로딩하기 위해 사용되는 제 1 멀티플렉서, 및 상기 프로그램 메모리를 위해 체크될 메모리 어드레스에 대응하는 상기 중간 메모리의 컨텐트를 상기 레지스터 내로 로딩하기 위해 사용되는 제 2 멀티플렉서를 구비하는 회로 장치.
  6. 제 4 항에 있어서, 상기 가산기에 의해 증분된 상기 레지스터의 컨텐트를 상기 중간 메모리에 저장하기 위해 사용되는 제 1 멀티플렉서, 및 상기 중간 메모리의 컨텐트를 상기 레지스터 내로 로딩하기 위해 사용되는 제 2 멀티플렉서를 구비하는 회로 장치.
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
KR1020107018574A 2008-02-21 2008-11-27 계산 유닛의 프로그램 메모리를 체크하기 위한 장치 KR101570031B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102008010233A DE102008010233A1 (de) 2008-02-21 2008-02-21 Anordnung zur Überprüfung eines Programmspeichers einer Recheneinheit
DE102008010233.4 2008-02-21

Publications (2)

Publication Number Publication Date
KR20100123837A KR20100123837A (ko) 2010-11-25
KR101570031B1 true KR101570031B1 (ko) 2015-11-18

Family

ID=40505689

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107018574A KR101570031B1 (ko) 2008-02-21 2008-11-27 계산 유닛의 프로그램 메모리를 체크하기 위한 장치

Country Status (7)

Country Link
US (1) US8464100B2 (ko)
EP (1) EP2248021B1 (ko)
JP (1) JP5193314B2 (ko)
KR (1) KR101570031B1 (ko)
AT (1) ATE519157T1 (ko)
DE (1) DE102008010233A1 (ko)
WO (1) WO2009103372A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018213617A1 (de) * 2018-06-20 2019-12-24 Robert Bosch Gmbh Recheneinrichtung und Betriebsverfahren hierfür

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070083789A1 (en) * 2005-10-06 2007-04-12 Jung Edward K Y Mote servicing
US20080016509A1 (en) * 2006-06-30 2008-01-17 Denso Corporation Microcomputer system

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2906117A1 (de) * 1979-02-17 1980-09-04 Licentia Gmbh Schaltungsanordnung zum pruefen des programmablaufs in einem mikroprozessorsteuerwerk
JPS6010340B2 (ja) * 1980-07-09 1985-03-16 富士通株式会社 メモリ診断制御方式
JPS62107354A (ja) * 1985-11-05 1987-05-18 Nec Corp マイクロプログラム制御装置
JP3176093B2 (ja) * 1991-09-05 2001-06-11 日本電気株式会社 マイクロプロセッサの割込み制御装置
DE19647159A1 (de) * 1996-11-14 1998-06-04 Siemens Ag Verfahren zum Testen eines in Zellenfelder unterteilten Speicherchips im laufenden Betrieb eines Rechners unter Einhaltung von Echtzeitbedingungen
JPH1115741A (ja) * 1997-06-26 1999-01-22 Denso Corp 電子制御装置
US5894549A (en) * 1997-12-12 1999-04-13 Scenix Semiconductor, Inc. System and method for fault detection in microcontroller program memory
DE10037992A1 (de) * 2000-08-03 2002-02-21 Siemens Ag Verfahren zum Betreiben eines Logik- und Speicherelemente aufweisenden Bausteins
JP2002163155A (ja) * 2000-11-29 2002-06-07 Rb Controls Co ガス器具のマイコン制御装置
WO2003043022A2 (de) * 2001-11-12 2003-05-22 Siemens Aktiengesellschaft Speichertest
JP2007026084A (ja) * 2005-07-15 2007-02-01 Renesas Technology Corp マイクロプロセッサ

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070083789A1 (en) * 2005-10-06 2007-04-12 Jung Edward K Y Mote servicing
US20080016509A1 (en) * 2006-06-30 2008-01-17 Denso Corporation Microcomputer system

Also Published As

Publication number Publication date
DE102008010233A1 (de) 2009-08-27
KR20100123837A (ko) 2010-11-25
JP5193314B2 (ja) 2013-05-08
JP2011512603A (ja) 2011-04-21
US8464100B2 (en) 2013-06-11
ATE519157T1 (de) 2011-08-15
WO2009103372A1 (de) 2009-08-27
EP2248021B1 (de) 2011-08-03
US20110264963A1 (en) 2011-10-27
EP2248021A1 (de) 2010-11-10

Similar Documents

Publication Publication Date Title
JP4791909B2 (ja) 高速入出力機能を備える制御装置、及びその制御データの制御方法
CN104978284B (zh) 处理器子程序高速缓冲存储器
JPH07200413A (ja) マイクロコンピュータ
JPH0696008A (ja) 情報処理装置
US20110179255A1 (en) Data processing reset operations
EP1770507A2 (en) Pipeline processing based on RISC architecture
KR101570031B1 (ko) 계산 유닛의 프로그램 메모리를 체크하기 위한 장치
JP2000322264A (ja) 電子機器
US5930470A (en) Debugging system and debugging method
JP2006344087A (ja) 制御装置のタスク管理装置、及び、制御装置のタスク管理方法
KR100321745B1 (ko) 외부메모리액세스를위한마이크로컨트롤러유닛
JP3956305B2 (ja) 不揮発性半導体記憶装置およびデータ処理装置
JPH08171504A (ja) エミュレ−ション装置
JP4543505B2 (ja) マイクロコンピュータの制御方法及び異常監視装置
JP3476314B2 (ja) マイクロプロセッサ
JP2007213415A (ja) メモリ装置
JPH10340200A (ja) 情報処理装置
JP3433824B2 (ja) パルス入出力回路の故障検出装置
JP2888654B2 (ja) データ入力制御方式
KR19990012409A (ko) 레지스터 제어 방법
KR0171173B1 (ko) 원칩 마이크로 컴퓨터
JPH036758A (ja) マイクロプロセッサ
JPH0373021A (ja) マイクロコンピュータ
JPH09319592A (ja) マイクロコンピュータ
JPH06139084A (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: 20191104

Year of fee payment: 5