KR20010042797A - 액세스 제어 기능을 가지는 주변 장치 - Google Patents
액세스 제어 기능을 가지는 주변 장치 Download PDFInfo
- Publication number
- KR20010042797A KR20010042797A KR1020007011541A KR20007011541A KR20010042797A KR 20010042797 A KR20010042797 A KR 20010042797A KR 1020007011541 A KR1020007011541 A KR 1020007011541A KR 20007011541 A KR20007011541 A KR 20007011541A KR 20010042797 A KR20010042797 A KR 20010042797A
- Authority
- KR
- South Korea
- Prior art keywords
- register
- access
- bit
- password
- control unit
- Prior art date
Links
- 230000002093 peripheral effect Effects 0.000 title claims abstract description 37
- 230000006870 function Effects 0.000 claims description 32
- 238000000034 method Methods 0.000 claims description 20
- 238000012544 monitoring process Methods 0.000 claims description 6
- 230000000694 effects Effects 0.000 description 11
- 230000008859 change Effects 0.000 description 10
- 230000004048 modification Effects 0.000 description 10
- 238000012986 modification Methods 0.000 description 10
- 238000012806 monitoring device Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000007257 malfunction Effects 0.000 description 3
- 241000700605 Viruses Species 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 101150075118 sub1 gene Proteins 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000005288 electromagnetic effect Effects 0.000 description 1
- 230000003472 neutralizing effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- 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/0703—Error 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/0751—Error or fault detection not based on redundancy
- G06F11/0763—Error or fault detection not based on redundancy by bit configuration check, e.g. of formats or tags
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- 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/24—Resetting means
-
- 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/0703—Error 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/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/0757—Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/327—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for interrupts
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명의 집적된 주변 장치는 연합 레지스터를 포함한다. 상기 레지스터는 패스워드를 포함하는 데이터 영역을 포함한다. 데이터 워드가 제 1 액세스에 이은 다음의 제 2 기입 액세스 동안에 레지스터로 기입되는 것을 허용하는 제 1 액세스 이후에 인에이블링 신호를 생성하는 기입/독출 제어 유니트에 상기 레지스터는 접속된다. 기입/독출 제어 유니트는 제 1 액세스 동안 주변 장치로 전송되는 데이터와 패스워드를 비교하여 비교 신호를 생성하는 비교기를 포함한다. 상기 기입/독출 제어 유니트는 비교기가 미리 결정된 비교 신호, 예를 들어 등가 신호를 생성하는 경우에만 인에이블링 신호를 생성한다.
Description
상이한 액세스 제어 시스템이 기술 분야에 공지되어 있다. 예를 들어 미국 특허 제 5,073,853호에는 마이크로컴퓨터를 포함한 데이터 처리 시스템이 개시되어 있다. 이러한 마이크로컴퓨터에는 클럭 카운터와 상기 마이크로컴퓨터의 리세트 입력에 결합된 출력을 가지는 감시장치가 제공된다. 감시장치가 응답하는 오동작의 개수를 증가시키기 위하여, 마이크로컴퓨터는 반복적으로 리세트 신호를 생성하도록 조정된다. 이러한 리세트 신호는 번갈아 변동하는 완전한 바이트X 또는 Y의 형태이다. 이러한 2 바이트는 이들을 추가의 입력에 인가되는 식별 바이트와 비교하는 비교기의 입력에 인가된다. 감시 장치는 추가의 입력에 인가된 바이트가 X 또는 Y 바이트 중 하나와 동일할 경우에만 리세트된다. 이러한 장치는 감지장치가 우연히 리세트되는 것을 방지한다. 따라서, 미국 특허 제 5,073,853호는 완전한 기밀 시스템을 제공하지 못한다.
본 발명은 액세스 제어 기능을 가지는 주변 장치에 관한 것이며, 보다 구체적으로 감시 타이머를 포함한 프로그램된 디지털 데이터 처리 시스템에 관한 것이다. 마이크로콘트롤러는 일반적으로 다수의 주변 장치에 장착된다. 이러한 소정의 장치는 디지털 데이터 처리 시스템의 중요한 기능의 시스템을 제어한다. 이러한 중요한 기능의 시스템은 예를 들어 감시 타이머, 인터럽트 콘트롤러, 코프로세서등이 될 수 있다. 이러한 주변 장치는 항상 적절하게 역할을 수행하여야 한다. 따라서, 이러한 주변 장치와 연합된 레지스터로의 액세스는 제한된다.
도 1은 본 발명에 따른 제 1의 바람직한 실시예에 대한 블록도를 도시한다.
도 2는 본 발명에 따른 제 2의 바람직한 실시예에 대한 블록도를 도시한다.
도 3은 도 1 및 도 2에 따른 제어 레지스터의 구조를 도시한다.
도 4는 도 1 및 도 2에 따른 유니트(5, 7, 10)의 실시예를 도시한다.
도 5는 본 발명의 추가 실시예의 관련 부분을 도시한다.
도 6은 본 발명에 따른 프로그램을 모니터링하는 방법을 설명하는 흐름도를 도시한다.
도 7은 본 발명에 따른 프로그램을 모니터링하는 제 2 방법을 설명하는 흐름도를 도시한다.
도 8은 본 발명에 따른 제 3의 바람직한 실시예에 대한 블록도를 도시한다.
이에 따라 본 발명의 목적은 기술 상태의 한계를 가지지 않는 액세스 제어 기능을 구비한 주변 장치를 제공하는 것이다. 이러한 목적은 연합된 제어 레지스터를 구비한 집적된 주변 장치에 의해 달성된다. 이러한 제어 레지스터는 패스워드를 가지는 데이터 영역을 포함한다. 독출/기입 제어 유니트가 제공되며, 이것은 제어 레지스터에 접속되고 제 1 액세스에 이어지는 제 2 기입 액세스 동안에 데이터 워드가 제어 레지스터에 기입되는 것을 허용하는 제 1 액세스 이후에 인에이블링 신호를 발생시킨다. 기입/독출 제어 유니트는 제 1 액세스 동안 주변 장치에 전송되는 데이터를 패스워드와 비교하여 비교 신호를 생성하는 비교기를 포함한다. 인에이블링 신호는 비교기가 미리 정의된 비교 신호, 예를 들어 등가 신호를 생성하는 경우에만 발생된다.
본 발명의 다른 목적은 본의아닌 액세스에 반하는 상당한 보안 시스템을 가지는 집적된 주변 장치로의 액세스 방법을 제공하는 것이다. 이러한 목적은 연합 제어 레지스터를 구비한 집적된 주변 장치를 액세스하는 방법에 의해 달성된다. 제어 레지스터는 패스워드를 가지는 데이터 영역을 포함한다. 제어 레지스터는 독출/기입 제어 유니트에 접속되고 제 1 액세스에 이어지는 제 2 기입 액세스 동안에 데이터 워드가 제어 레지스터에 기입되는 것을 허용하는 제 1 액세스 이후에 인에이블링 신호를 발생시킨다. 상기 방법은 다음;
a) 상기 주변 장치에 적어도 패스워드를 포함하는 제 1 데이터 워드를 기입하는 단계;
b) 상기 독출/기입 유니트가 상기 제 1 데이터 워드를 저장된 패스워드와 비교하여, 상기 패스워드가 미리 정의된 조건을 만족시킬 경우에 인에이블링 신호를 생성시키는 단계;
c) 상기 주변 장치에 제 2 데이터 워드를 기입하는 단계; 및
d) 인에이블링 신호가 생성된 경우에 상기 제 2 데이터 워드를 상기 레지스터에 저장하는 단계의 단계들을 포함한다.
본 발명의 주요 특성중 하나는 동적인 액세스 제어 기능을 제공한다는 것이다. 다시말하면, 패스워드는 임의의 시간에 변경될 수 있다. 따라서, 예를 들어 바이러스 프로그램에 기인한 오동작은 마이크로콘트롤러를 리세트시킴에 의해 방지될 수 있다는 것이 보장된다.
본 발명의 추가의 특징 및 장점은 실시예에 대한 다음의 설명 및 첨부된 도면으로부터 보다 명확하여 질 것이다.
주변 장치는 중앙 처리 유니트, 예를 들어 마이크로콘트롤러에 접속된 소정의 집적된 장치일 수 있다. 바람직한 실시예에 있어서, 주변 장치는 감시장치 이지만, 소정의 다른 장치일 수 있다. 소프트웨어나 하드웨어적인 결함으로부터 복구를 허용하기 위하여, 감시 타이머가 집적된 마이크로콘트롤러에 제공되거나 데이터 처리기에 접속된다. 소프트웨어적인 오류가 이러한 타이머를 정확하게 서비스하는 데에 실패한 경우, 감시 타이머 에러 신호가 활성화된다. 이러한 신호는 전체 칩의 완전한 리세트를 수행하는 데에 사용될 수 있다. 다양한 유도의 구현에 의존하여, 이러한 신호는 또한 리세트 대신에 인터럽트 요청을 발생시키는 데에 또는 전용 출력을 활성화시키는 데에 사용될 수도 있다.
소프트웨어가 그것이 오버플로우되기 이전에 감시 타이머를 항상 서비스하도록 설계되는 반면에, 감시 타이머의 타임 아웃은 프로그램이 적절하게 진행하지 않을 경우에만 발생한다. 감시 타이머는 또한 소프트웨어 에러가 하드웨어 관련된 오류에 기인한 것일 경우에 감시장치는 타임아웃될 수 있다. 이것은 콘트롤러가 사용자 정의된 시간 이외에 오동작하는 것을 방지한다. 에러 조건에 기인한 본의 아닌 서비스가 감시 장치 기능을 디스에이블할 수 있기 때문에, 이같은 주변장치의 서비스는 중요한 시스템 기능이다. 따라서, 본 발명에 따라 설계된 감시장치는 유효하게 되기 위하여 패스워드 매카니즘을 가지는 특정 명령 시퀀스를 요구한다. 본 발명에 따라, 부정확한 시퀀스는 리세트 신호를 발생시키는 상술한 신호를 야기할 수 있다. 따라서, 예를 들어 바이러스 프로그램이 감시 타이머를 비활성화시키는 것이 방지될 수 있다.
도 1은 리세트 입력(1a) 및 다수(n)의 버스 라인을 가지는 인터페이스 버스(1b)를 가지는 중앙 처리 유니트(CPU)(1)를 구비한 제 1 실시예를 도시한다. 상기 CPU(1)는 주변 장치(14)에 결합된다. 주변 장치(14)는 예를 들어 제어 레지스터(2), 타이머(3), 비교기(4), 모드 제어 유니트(5), 클록 제어 유니트(7), 비교기(8), 게이트(9), 액세스 제어 유니트(10)를 포함한다. 버스 라인(1b)은 비교기(8)의 제 1 입력에 접속된다. 버스 라인(1b)은 또한 제어 가능한 게이트(9)의 제 1 입/출 단자에 접속된다. 마지막으로 상기 버스(1b)는 액세스 제어 유니트(10)에 접속된다. 여러개의 비트필드를 포함하는 제어 레지스터(2)가 제공된다. 제 1 비트필드(2a)는 리로드(reload) 값을 포함하며, 제 2 비트필드(2b)는 패스워드를 포함하고, 제 3 비트필드(2c)는 다수의 제어 비트를 포함한다. 패스워드를 포함한 비트필드(2b)는 비교기(8)의 제 2 입력에 접속된다. 비교기(8)는 두 개의 입력 신호가 동일할 경우에 발생되는 신호를 운반하는 출력 단자(8a)를 가진다. 비교기(8)의 이러한 출력 단자(8a)는 액세스 제어 유니트(10)의 추가 입력에 접속된다. 액세스 제어 유니트(10)는 제어 비트필드(2c)에 추가로 접속된다. 액세스 제어 유니트(10)는 제어 가능한 게이트(9)의 제어 입력에 인가되는 출력 신호(9a)를 생성한다. 유니트(10)는 타이머(3)의 리세트 입력(3a)에 인가되는 추가의 신호를 생성한다. 제어 가능한 게이트(9)의 제 2 입/출력 단자는 제어 레지스터(2)에 접속된다.
주변 장치의 상이한 기능들을 제어하기 위하여, 리로드 비트필드(2a)의 여러 비트는 타이머(3)에 결합된다. 제어 비트필드(2c)로부터의 다수의 제어 비트는 자신의 기능을 제어하기 위하여 타이머(3)의 제어 입력(3b)에 결합된다. 제어 비트필드(2c)의 추가 제어 라인은 클록 제어 유니트(7)에 결합된다. 제어 비트필드(2c)의 추가 제어 라인은 클록 제어 유니트(7)에 접속된다. 제 1 클록 신호(13)는 타이머(3)에 인가되는 제 2 클록 신호를 출력하는 클록 제어 유니트(7)에 인가된다. 타이머(3)의 내용을 0과 비교하여 타이머(3)의 타이머 값이 0과 동일한 경우에 출력 신호를 발생하는 제 2 비교기(4)가 제공된다. 이러한 신호는 예를 들어 비트필드(2c)의 한 비트에 의해 제어될 수도 있는 모드 제어 유니트(5)로 인가된다. 모드 제어 유니트(5)는 단자(6)에서 액세스 가능한 제 1 출력 신호 및 CPU(1)의 리세트 입력에 인가되는 제 2 출력 신호를 생성한다.
CPU(1)로부터 감시 타이머 제어 레지스터(2)로의 독출 액세스는 예를 들어, 비트필드(2b)에 있는 패스워드가 독출될 수 없는 경우를 제외하면 어떠한 제한없이 수행될 수 있다. 각 신호는 버스(1b)를 통하여 액세스 제어 유니트(10)로 전송되고, 이어서 액세스 제어 유니트는 게이트(9)를 활성화시킨다. 다음으로 제어 레지스터(2)의 내용은 CPU(1)에 의하여 액세스될 수 있다. 그러나, 제어 레지스터(2)로의 기입 액세스들은 두 가지 방식들에서 보호될 수 있다. 그들은 주변 장치(14)가 어드레싱 가능한 소정의 주소 범위로의 액세스를 CPU(1)가 가진다는 것을 가리키는 감독 레벨 상에서만 수행될 수 있다. 게다가, 본 발명에 따른 특별한 패스워드 록킹/록킹 해제 매카니즘이 제공된다. 제어 레지스터(2)내의 비트들을 변경하기 위하여, 먼저 패스워드가 제어 레지스터(2)의 주소에 기입되어야 한다. 이 패스워드는 제어 레지스터(2)에 기입된 각 워드의 비트필드(2b)에 위치된다. 비교기(8)는 이러한 두 개의 패스워드를 비교하고 비교 신호를 발생하며, 예를 들어, 패스워드의 동일성을 검사하고 이것은 액세스 제어 유니트(10)에 인가된다. 다음으로, 액세스 제어 유니트(10)는 수정을 위하여 제어 레지스터(2)로의 액세스를 개방하는 게이트(9)의 제어 입력(9a)으로 인가되는 신호를 발생한다. 그러면 다음의 명령어는 비트필드(2b)에 위치하는 패스워드를 포함하는 제어 레지스터(2)에 있는 파라미터들을 변경할 수 있다. 제어 레지스터(2)로의 이러한 제 2 액세스 후에, 이 레지스터(2)는 재차 수정을 위하여 자동적으로 단락될 것이고, 새로운 파라미터들이 유효하게 될 것이다.
잘못된 시퀀스의 잘못된 패스워드로 제어 레지스터(2)에 기입하려는 어떠한 시도는 CPU(1)의 리세트 입력(1a)에 결합되는 액세스 제어 유니트(10)에 의하여 발생되는 리세트 신호를 야기할 것이다. 제어 비트필드(2c)는 이러한 타입의 감시장치 리세트를 반영하는 비트를 포함한다. 바람직하게, 마이크로콘트롤러가 처음에 턴온되었을 때, 비트필드(2b)에 포함된 패스워드는 자동적으로 정의된 내용을 가지도록 "0"이 세트된다.
다른 실시예에서, 두 번째 보안 매카니즘이 제공된다. 특별한 토글 비트가 제어 비트필드(2c)에 제공된다. 비트필드(2b)에 포함된 패스워드로 제어 레지스터(2)로의 제 1 액세스와 함께, 이 토글 비트는 "0"으로 기입되어야 한다. 제 2 액세스와 함께, 이 비트는 "1"로 기입되어야 한다. 다른 실시예에서, 첫 번째 값은 "1"일 수 있고 그러면 두 번째 값은 "0"이어야 한다. 그러나, 이 비트의 목적은 다른 파라미터들이 변경되지 않는 경우에조차 제어 레지스터(2)로의 두 액세스들을 요청하는 것이다. 이 비트가 제어 레지스터(2)로의 제 2 액세스에 의해 0(zero)으로 기입되면, 리세트 신호는 액세스 제어 유니트(10)에 의하여 발생될 것이고 CPU(1)의 리세트 입력(1a)으로 인가될 것이다.
도 2는 본 발명의 제 2의 바람직한 실시예를 보여준다. 도 1과 동일한 부호들은 도 2에서 동일한 요소들을 가리킨다. 도 1에 따른 비교기(8) 및 게이트(9) 대신에, 이 실시예에서는 새도우 레지스터(11) 및 비교기(12)가 제공된다. 인터페이스 버스 라인들(1b)은 레지스터(11)에 접속된다. 레지스터(11)는 여러 개의 비트필드들을 포함한다. 첫 번째 비트필드(11a)는 리로드(reload) 값을 포함하고, 두 번째 비트필드(11b)는 패스워드를 포함하며, 세 번째 비트필드(11c)는 복수의 제어 비트들을 포함한다. 비교기(12)의 제 1 입력은 레지스터(11)의 비트필드(11b)에 접속되고, 비교기(12)의 제 2 입력은 제어 레지스터(2c)의 비트필드(2b)에 접속된다. 액세스 제어 유니트(10)는 제어 레지스터(2c)로 새도우 레지스터(11)의 내용을 기입하는 수단을 포함한다. 그러므로, 새도우 레지스터(11) 및 제어 레지스터(2)는 액세스 제어 유니트(10)에 접속된다.
도 2에 도시된 실시예의 기능은 상기 도 1에서 설명된 것과 실질적으로 동일한 것이다. 주변 장치(14), 이 예에서 감시 타이머로의 제 1 액세스 동안에, CPU(1)은 새도우 레지스터(11)에 패스워드를 기입하고 이것은 비교기에 의하여 제어 레지스터(2)에 포함된 패스워드와 비교된다. 두 패스워드들이 동일하다면, 비교기는 신호를 발생하고 이것은 액세스 제어 유니트(10)에 인가된다. 제 2 액세스 동안에, CPU(1)는 예를 들어, 새로운 패스워드를 포함하는 새로운 레지스터 내용을 새도우 레지스터(11)에 기입한다. 이 새로운 레지스터 내용은 병렬적으로 또는 액세스 제어 유니트(10)에 있는 기입 수단에 의하여 시간 지연되어 제어 레지스터(2)로 전달된다. 상기 설명에 따른 다른 실시예에서, 제어 비트 필드(11c)의 토글 비트는 보안성을 더욱 향상시키기 위하여 사용될 수 있다. 제 1 액세스 동안에, 이 토글 비트는 "0"으로 기입되어야 하고 그러면 새도우 레지스터(11)로의 제 2 액세스시에 "1"로 기입되어야 한다. 물론, 그 반대의 액세스 시퀀스(즉, "1" 그런후 "0")가 또한 실행될 수 있다.
상기에서 설명된 실시예들에서, 액세스 시퀀스가 올바르다면, 액세스 제어 유니트(10)는 제 2 액세스 후 신호를 발생하고 이것은 타이머(3)의 입력(3a)으로 인가되고 타이머(3)를 리세트한다. 그러면, 타이머(3)는 제어 레지스터(2)의 비트필드(2a)에 저장된 값을 리로드하고 제어 레지스터(2c)에 저장된 그것의 제어값들에 따라 위로 또는 아래로 카운팅을 시작한다.
도 3은 제어 레지스터(2) 및 새도우 레지스터(11)의 내용을 보여준다. 이 실시예에서, 제어 레지스터는 32 비트 폭이라고 가정한다.
WDTREL - 이 16 비트들은 감시 타이머를 위한 리로드 값(2a 또는 11a)을 나타낸다.
WDTPW - 이 8 비트 폭 비트 필드(2b 또는 11b)는 감시 타이머를 위한 패스워드 값을 나타낸다.
제어 비트필드(2c 또는 11c)는 다음의 비트들을 포함한다.
WDTTG - 토글 비트를 나타낸다. 이 비트는 제 1 액세스시에 "0"으로 기입되어야 하고 제어 레지스터(2)로의 제 2 액세스시에 "1"로 기입되어야 한다.
WDTIS - 감시 타이머 오류 서비스 플래그를 나타낸다. 이 플래그는 감시장치 에러가 오류 서비스 시퀀스에 의하여 야기된다면 세트된다.
WDTOV - 감시 타이머 오버플로우 플래그를 나타내고 감시장치 에러가 오버플로우에 의하여 야기된다면 세트된다.
WDTRES - 감시 타이머 리세트 제어를 나타낸다. 이 비트는 비교기(4)에 의하여 발생되는 신호가 단자(6)에 인가될 것인지 CPU(1)의 리세트 입력에 인가될 것인지를 결정한다.
WDTOP - 감시 타이머 작동 제어를 나타낸다. 이 두 비트들은 서로 다른 네 개의 값들로 세트될 수 있고 서로 다른 네 개의 모드들을 가리킨다. 제 1 모드는 감시 타이머 동작을 가리키고, 제 2 모드는 주기 타이머 동작을 가리키며, 제 3 모드는 감시 타이머 불능 기능을 가리키고, 제 4 모드는 리세트 신호의 활성화를 도출하는 불법적 동작을 가리킨다.
WDTIN - 감시 타이머 입력 주파수 선택을 나타낸다. 이 실시예에서 이 비트는 두 개의 서로 다른 주파수들을 마련한다. 제 1 모드에서, 주파수/클록 신호(13)는 클록 제어 유니트(7)에서 128로 나누어지고, 제 2 모드에서, 클록 신호(13)은 타이머(3)에 직접적으로 인가된다.
도 4는 제어 레지스터(2)의 제어 비트필드(2c) 및 관련된 유니트들(5, 7 및 10)을 보다 상세하게 포함하는 블록도를 보여준다. 유니트(10)는 예를 들어, 제어가능한 스위치(10c)를 포함하며, 스위치의 입력은 비트 WDTTG에 연결된다. 스위치(10c)의 한 출력은 AND 게이트(10e)의 제 1 입력에 접속된다. AND 게이트(10e)의 다른 입력은 상수 1에 접속된다. 스위치(10c)의 다른 출력은 인버터(10d)를 통하여 AND 게이트(10e)의 제 1 입력과 접속된다. AND 게이트(10e)의 출력은 다른 AND 게이트(10f)의 제 1 입력에 접속되고, 그 AND 게이트(10f)의 재 2 입력은 플립-플롭(10h)의 출력에 접속된다. 플립-플롭(10h)의 출력은 또한 스위치(10c)의 제어 입력에 접속된다. 더군다나, AND 게이트(10e)의 출력은 액세스 제어 유니트(10)에 제공되는 다른 제어 유니트(10g)에 접속된다. 플립-플롭(10h)은 유니트(10g)에 의하여 리세트될 수 있다. 비교기 출력 신호(8a)는 한편으로는 플립-플롭(10h)의 입력에 인가되고 다른 한편으로는 제어 유니트(10g)에 인가된다. 제어 유니트(10g)는 비트 WDTRES에 접속되어 이 플래그를 독출 및 기입한다. 비트들 WDTOP는 또한 제어 유니트(10g)에 접속된다. 제어 유니트(10g)는 드라이버(2e)를 제어하는 제 1 출력 신호를 제공한다. 드라이버(2e)의 입력은 비트 WDTRES에 접속된다. 드라이버(2e)의 출력은 모드 제어 유니트(5)에 제공된 제어가능한 스위치(5f)를 제어한다. 플립-플롭(2d)은 그것의 입력이 타이머(3)의 오버플로우에 접속되도록 제공된다. 플립-플롭(2d)의 출력은 비트 WDTOV에 접속된다.
더군다나, 타이머(3)의 오버플로우 출력은 제어가능한 스위치(5f)의 입력에 접속된다. 제어가능한 스위치(5f)의 제 1 출력은 단자(6)에 접속된다. 제어가능한 스위치(5f)의 제 2 출력은 제어가능한 인버터(5a)의 입력에 접속되며, 상기 인버터(5a)의 출력은 인버터(5b)의 입력에 접속된다. 인버터(5b)의 출력은 다른 제어가능한 스위치(10i)의 입력에 접속된다. 인버터(5b)의 출력은 또한 제어가능한 인버터(5d)의 입력에 접속된다. 인버터(5d)의 출력은 한편으로는 인버터(5b)의 입력에 다른 한편으로는 제어가능한 인버터(5c)의 입력에 접속된다. 제어가능한 인버터(5c)의 출력은 인버터(5a)의 제어 입력에 접속된다. 풀-업 수단(5e)은 인버터(5c)가 비활성화되면 인버터(5c)의 제어 입력이 활성화되게 유지되도록 제공된다. 인버터(5d) 및 인버터(5c)의 제어 입력들 둘 모두는 비트필드(2c)의 비트 WDTIS와 접속된다.
클록 제어 유니트(7)는 비트 필드(2c)의 비트 WDTIN에 의하여 제어되는 제어가능한 스위치(7b)를 포함한다. 제어가능한 스위치(7b)의 입력은 클록 신호(13)에 접속된다. 스위치(7b)의 제 1 출력은 타이머(3)의 입력에 접속되고 스위치(7b)의 제 2 출력은 분주기(7a)의 입력에 접속되며, 분주기(7a)의 출력은 또한 타이머(3)의 입력에 접속된다. 제어가능한 스위치(10i)의 제어 입력은 유니트(10g)에 의하여 제공되는 신호에 의하여 제어된다. 스위치(10i)의 제 1 출력은 CPU(1)의 리세트 입력에 접속된다. 유니트(10g)는 제어가능한 스위치(10i)의 제 1 출력에 접속되는 다른 입력 및 출력 수단을 제공한다.
제 1 액세스 동안에, 비트 WDTTG의 입력은 "0"으로 세트된다. 그러므로, 스위치(10c)는 인버터(10d)를 통하여 AND 게이트(10e)로 이 신호를 인가한다. 이 비트 WDTTG가 "0"으로 세트되면, AND 게이트(10e)는 이것이 제어 유니트(10g)를 지시하게 한다. 제 1 액세스가 올바르다면, 제어 유니트(10g)는 플립-플롭(10h)으로 인가되고 제어가능한 위치(10c)를 제 2 출력으로 스위칭하는 신호를 발생하고 AND 게이트(10f)의 제 2 입력에서 상수 "1"을 제공한다. 제 2 액세스 동안에, AND 게이트(10e)는 이제 비트 WDTTG를 "1"과 직접적으로 비교하고 AND 게이트(10f)에 의하여 비교되고 제어 유니트(10g)로 인가되는 출력 신호를 생성한다.
제어 유니트(10g)는 타이머 또는 CPU(1)에 의하여 생성될 수 있는 신호(10k)로 인가된다. 이 신호(10k)는 리세트가 발생된 후에 개방되는 특별한 타임 윈도우를 가리킨다. 이 타임 윈도우 동안에, 제어 유니트(10g)는 제어 비트들 WDTRES 및 WDTOP의 변경을 허용한다. 게다가, 제어 유니트(10g)는 성공적인 감시 타이머 서비스후에 플립-플롭(10h)을 리세트하는 수단을 포함한다. 제어 유니트(10g)는 또한 타임 윈도우가 폐쇄된 후에 드라이버(2e)를 비활성화시킨다. 이것은 모드 제어 유니트(5)의 스위치(5f)는 오버플로우가 단자(6)로 인가되는 위치로 스위칭하는 것을 방지한다.
감시 타이머를 디스에이블하는 것은 가장 중요한 기능들 중의 하나이다. 그 디스에이블 동작은 그것이 우연히 발생하는 것이 거의 불가능하도록 만들어야 한다. 그러므로, 액세스 제어 유니트(10)는 감시 타이머 시작 단계 동안의 하드웨어 리세트 후에 감시 타이머가 단지 디스에이블될 수 있다는 것을 보증하는 수단(10g)을 포함한다. 그러므로 예를 들어, CPU(1) 또는 리세트 신호에 의하여 토글되는 타이머에 의하여 생성되는 신호(10k)는 유니트(10g)에 인가된다. 이러한 장치에서, 디스에이블하는 것은 제어 레지스터(2)를 록킹해제한 후 이진 값(11)에 WDTOP 비트들을 기입함에 의하여 수행된다. 이 동작의 효과는 감시 타이머(3)가 0(zero)로 소거되고 분주기 사슬을 포함하는 카운트 클록이 유니트(10g)에 의한 전력을 절약하기 위하여 전원공급이 차단되는 것이다. 이 조건으로부터, 감시 타이머(3)는 올바른 감시 타이머 서비스 시퀀스로 다시 재활성화될 수 있다. 이것은 또한 예를 들어 전자기 영향들에 기인하는 심한 교란들이 감시 타이머가 디스에이블될 정도로 그것의 내부 제어를 변경할 경우에 존재한다. 다음의 서비스 시퀀스는 감시 타이머를 다시 인에이블하게 할 것이다. 이 실시예에서, 감시 타이머(3)는 초기 단계 동안에 디스에이블되지 않았다면 감시 타이머(3)를 디스에이블시키는 것이 가능하지 않다. 그렇게 하려는 시도는 액세스 제어 유니트(10)에 의하여 생성되는 리세트 신호를 야기할 것이다.
감시 타이머(3)는 클록 신호(13) 또는 128로 분주되는 클록 신호(13)로 클록될 수 있는 16 비트 업 또는 다운 카운터일 수 있다. 보다 많은 제어 비트들이 제어 비트 필드(2c)에서 활용될 수 있다면, 클록 신호(13)는 다른 값에 의하여 또는 복수의 값들에 의하여 분주될 수 있다. 감시 타이머(3)는 감시장치 타임-아웃 시간을 다양화하기 위하여 비트 필드(2a 또는 11a)에 제공되는 사용자 프로그램 가능한 값으로 미리 설정될 수 있다.
감시 타이머(3)가 오버플로우되는 것을 방지하기 위하여, 그것은 사용자 소프트웨어에 의하여 주기적으로 서비스되어야 한다. 감시 타이머(3)의 서비스는 상기에서 설명한 패스워드 메카니즘을 사용하여 제어 레지스터(2)로 기입함으로써 수행된다. 제 1 액세스는 패스워드(2b)를 기입하고 반면에 토글 비트 WDTTG는 단지 제 2 액세스 동안에 "1"로 세트된다. 게다가, 액세스 제어 유니트(10)는 두 개의 비트들 WDTOP 및 비트 WDTRES를 제 2 액세스 동안에 비교함으로써 추가적 보안성을 제공할 수 있다. 이러한 비트들은 감시 타이머 초기 단계 동안에 선택된 동일한 값을 가져야 한다. 제 2 액세스 동안에, 패스워드 필드 WDTPW는 변경될 수 있고 또한 리로드된 값 WDTREL도 변경될 수 있다. 또한 리세트가 오동작에 의하여 생성되었다는 것을 가리키는 플래그들을 소거하고 입력 클록 선택 제어 비트 WDTIN을 변경하는 것이 가능하다.
본 발명의 다른 특징은 모드 제어 유니트(5)에 의하여 제공된다. 이 특징은 모드 제어 유니트(5)가 CPU(1)의 리세트 입력(1a)에 인가되는 리세트 신호를 발생시키도록 프로그램될 경우에만 활용될 수 있다. 감시 타이머가 일단 오버플로우되면, 제어 비트필드(2c)에 있는 비트 WDTOV는 세트된다. 오버플로우 플래그 WDTOP가 소거됨이 없이 감시장지 타이머가 두 번째 시간을 오버플로우한다면, 예를 들어, 그것이 이전의 오버플로우로부터 여전히 세트된다면, 리세트는 모드 제어 유니트(5)에 의하여 생성되고 이 상태는 외부 리세트 또는 전원공급 리세트가 발생될 때까지 리세트 상태로 유지된다. 비트 WDTIS가 "0"이면, 드라이버들(5c 및 5d)은 비활성화된다. 드라이버(5a)의 제어 입력은 풀업(5e)를 통하여 활성을 유지한다. 이 상태에서, 타이머(3)에 의하여 생성되는 모든 리세트는 스위치(5f), 드라이브들(5a 및 5b) 및 스위치(10i)를 통하여 입력(1a)으로 직접 인가된다. 비트 WDTIS가 시간 오버플로우에 기인하여 "1"로 설정되면, 드라이버들(5c 및 5d)은 활성화된다. 드라이버(5a)는 활성 상태로 남는다. 그래서, 시간 오버플로우가 생성될 때면 언제나, 드라이버(5a)는 비활성화될 것이고 드라이버들(5b 및 5d)은 하드웨어 리세트가 전체 장치를 리세트할 때까지 리세트를 유지할 것이다. 설명된 조건은 코드가 실행되지 않는 경우이다. 초기 루틴조차도 실행되지 않는데, 오버플로우가 액세스되지 않았고 소거되지 않았기 때문이다. 부품이 무작위 잘못된 코드를 실행시키고 감시 타이머(3)에 의하여 계속 리세트되는 것을 방지하기 위하여, 이 특징은 그러한 경우에 리세트 모드에 부품을 록킹하도록 실시된다.
본 발명의 다른 바람직한 실시예가 도 5에 도시된다. 이 도면은 개략적 검토를 위하여 연합 레지스터들, 제어 유니트 및 비교기만을 도시한다. 제어 레지스터는 세 개의 개별 32-비트 레지스터들(710, 720 및 730)로 구성된다. 제어 유니트(700)는 레지스터들로의 독출 및 기입을 제어하고 비교기(740)는 제어 유니트(700)에 레지스터들로의 액세스가 승인될 것인지 아닌지에 대한 정보를 제공한다.
첫 번째 레지스터(710)는 다음의 비트들을 포함한다.
부호 711은 감시 타이머를 위한 리로드 값을 포함하는 16 비트들을 묘사한다. 감시 타이머가 인에이블이면, 그것은 올바른 감시장치 서비스후에 이 값으로부터 카운팅을 시작할 것이다. 그것은 패스워드 액세스 동안에 동일한 값으로 기입되어야 한다. 그것은 레지스터(710)에 대한 수정 액세스 동안에 수정될 수 있다.
부호 712는 레지스터(710)로의 액세스를 위한 사용자-정의할 수 있는 패스워드 필드를 포함하는 8 비트들을 묘사한다. 그것은 패스워드 액세스 동안에 동일한 값으로 기입되어야 한다. 그것은 레지스터(710)로의 수정 액세스 동안에 수정될 수 있다.
부호 713은 레지스터(710)로의 액세스를 제어하기 위하여 사용되는 록킹 비트를 포함하는 단일 비트를 묘사한다. 이 비트는 레지스터(710)로의 패스워드 액세스 동안에 0으로 기입되어야 하고 레지스터(710)에 대한 수정 액세스 동안에 1로 기입되어야 한다 (즉, 항상 비트(713)의 반전된 값이 이 비트에 기입되어야 한다). 이 비트(713)는 하드웨어에 의하여 제어되고 레지스터(710)에 대한 성공적인 패스워드 액세스 후에 소거되고 레지스터(710)에 대한 성공적인 수정 액세스 후에 다시 자동적으로 세트된다. 이 비트 위치에 기입된 값은 보호 메카니즘을 위하여 단지 사용되고 저장되지 않는다.
비트(713) = 0: 레지스터(710)는 록킹해제된다.
비트(713) = 1: 레지스터(710)는 록킹된다.
비트(714)는 초기화의 끝(End-of-Initialization) 제어 비트를 나타내는 다른 단일 비트를 묘사한다. 그것은 임계적(critical) 시스템 레지스터들로의 액세스를 제어한다. 그것은 패스워드 액세스 동안에 동일한 값으로 기입되어야 한다. 그것은 레지스터(710)로의 수정 액세스 동안에 수정될 수 있다.
레지스터(710)에 있는 다른 비트들은 보류된다. 그것들은 항상 0으로 독출된다. 이 비트 위치들로의 기입들은 효과가 없다.
두 번째 레지스터(720)는 다음의 비트들을 포함한다.
부호 721은 감시 타이머 디스에이블 요청 제어 비트를 나타내는 단일 비트를 묘사한다.
비트(721) = 0: 감시 타이머를 인에이블시키는 요청.
비트(721) = 1: 감시 타이머를 디스에이블시키는 요청.
이 비트는 레지스터(710)의 비트(714)가 0으로 세트될 때에 단지 수정될 수 있다. 이 비트의 업데이트는 레지스터(710)의 비트(714)가 다시 1(one)로 세트될 때에 단지 효과를 나타낼 것이다. 비트(714)가 0인 한, 레지스터(730)에 있는 비트(734)는 감시 타이머의 현재 인에이블/디스에이블 상태를 제어한다. 비트(714)가 1로 세트되면, 비트(734)는 비트(721)의 상태에 따라 업데이트된다.
부호 722는 감시 타이머 입력 주파수 요청 제어 비트를 나타내는 다른 단일 비트를 묘사한다.
비트(722) = 0: 입력 주파수를 시스템 클록/16348로 설정하는 요청.
비트(722) = 1: 입력 주파수를 시스템 클록/256로 설정하는 요청.
이 비트는 레지스터(710)의 비트(714)가 0으로 세트되면 단지 수정될 수 있다. 이 비트의 업데이트는 비트(714)가 다시 1로 세트되는 경우에 단지 효과를 나타낼 것이다. 비트(714)가 0인 한, 레지스터(730)에 있는 비트(735)는 감시 타이머의 현재 입력 주파수를 제어한다. 비트(714)가 1로 세트되면, 비트(735)는 비트(722)의 상태에 따라 업데이트된다.
레지스터(720)에 있는 다른 비트들은 보류된다. 그것들은 항상 0으로 독출된다. 이 비트 위치들에의 기입들은 효과가 없다.
세 번째 레지스터(730)는 다음의 비트들을 포함한다.
보호 731은 감시 타이머의 현재 내용들을 반영하는 16 비트들을 묘사한다.
부호 732는 감시장치 리세트 사전경고 플래그를 나타내는 단일 비트이다.
비트(732) = 0: 정상 모드 (리세트 후의 디폴트)
비트(732) = 1: 감시장치 에러가 발생한다. 감시장치는 마스크불가능한 인터럽트(non-maskable interrupt; NMI)를 발행하고 최종 타임-아웃 단계에 있다 (비트(733)는 또한 이 경우에 세트된다). 칩의 리세트는 타임-아웃이 만료된 후에 발생할 것이다. 이 비트는 트랩의 원인을 결정하기 위하여 NMI 트랩 루틴에서 검사될 수 있다. 비트(732)는 단지 리세트를 통하여 소거된다.
부호 733은 감시장치 타임-아웃 주기 표시 플래그를 나타내는 단일 비트를 묘사한다.
비트(733) = 0: 정상 모드.
비트(733) = 1: 감시장치는 타임-아웃 모드에서 동작중이다 (리세트후의 디폴트). 타임-아웃 모드는 리세트 후 및 레지스터(710)로의 제 1 패스워드 액세스 후 또는 감시장치 에러가 검출될 때 자동적으로 들어간다. 타임-아웃 모드는 비트(714)에 1을 기입하는 레지스터(710)로의 수정 액세스를 가지는 비-에러인 경우에만 종료된다. 타임-아웃 모드의 종료후에, 비트(733)는 하드웨어를 통하여 소거된다. 타임-아웃 모드는 감시장치 에러에 기인하여 진입하면, 이 모드는 감시장치 리세트가 발생할 때까지 종료될 수 없다.
부호 734는 감시장치 인에이블/디스에이블 비트를 나타내는 다른 단일 비트를 묘사한다.
비트(734) = 0: 감시 타이머는 인에이블된다 (리세트후의 디폴트).
비트(734) = 1: 감시 타이머는 디스에이블된다.
이 비트는 ENDINIT가 레지스터(710)에 대한 수정 액세스 동안에 1로 기입된 후에 레지스터(720)의 비트(721)의 상태에 따라 업데이트된다.
부호 735는 감시장치 입력 클록 상태 비트를 나타내는 다른 단일 비트를 묘사한다.
비트(735) = 0: 감시 타이머 입력 클록은 시스템 클록/16384이다 (리세트후의 디폴트).
비트(735) = 1: 감시 타이머 입력 클록은 시스템 클록/256이다.
이 비트는 레지스터(710)의 비트(714)가 레지스터(710)에 대한 수정 액세스 동안에 1로 기입된 후에 레지스터(720)의 비트(722)의 상태에 따라 업데이트된다.
부호 736은 감시장치 오버플로우 에러 상태 플래그를 나타내는 다른 단일 비트를 묘사한다.
비트(736) = 0: 감시장치 오버플로우 에러 없음.
비트(736) = 1: 감시장치 오버플로우 에러가 발생함.
이 비트는 감시 타이머가 인에블되고 0xFFFF로부터 0x0000로의 오버플로우가 발생하기 전에 서비스되지 않을 때, 또는 감시 타이머가 타임-아웃 모드에 있고 오버플로우가 발생하면 하드웨어에 의하여 세트된다. 이 비트는 전력공급, 하드웨어 또는 소프트웨어 리세트를 통하여; 비트(714)가 레지스터(710)로의 수정 액세스 동안에 1로 기입된 후(감시장치가 리세트 사전-경고 단계, 비트(732) = 1에 있다면 불가능함) 단지 리세트된다.
부호 737는 감시장치 액세스 에러 상태 플래그를 나타내는 다른 단일 비트를 묘사한다.
비트(737) = 0: 감시장치 액세스 에러 없음.
비트(737) = 1: 감시장치 액세스 에러가 발생함.
이 비트는 레지스터(710)로의 불법적 액세스가 시도되었을 때 (패스워드 또는 수정 액세스) 하드웨어에 의하여 세트된다. 이 비트는 전력공급, 하드웨어 또는 소프트웨어 리세트를 통하여; 비트(714)가 레지스터(710)로의 수정 액세스 동안에 1로 기입된 후(감시장치가 리세트 사전-경고 단계, 비트(732) = 1에 있다면 불가능함) 단지 리세트된다.
레지스터(730)에 있는 다른 비트들은 보류된다. 그것들은 항상 0으로 독출된다. 이 비트 위치들에의 기입들은 효과가 없다.
레지스터(730)는 독출-전용 레지스터(read-only register)이고 임의의 시간에 독출될 수 있다. 이 레지스터로의 기입 액세스들은 효과가 없을 것이다(그러한 경우에 에러는 보고되지 않는다). 레지스터(730)의 상태 비트들의 업데이트는 하드웨어에서 자동적으로 처리된다. 두 개의 에러 플래그들(736 및 737)은 감시장치 리세트를 통하여 소거되지 않는다 (임의의 다른 리세트를 통하여 소거된다). 그것들은 비트(714)에 1을 기입하는 레지스터(710)에 대한 성공적인 액세스로 소거된다. 레지스터(720)는 또한 어떠한 제한들없이 임의의 시간에 독출될 수 있다. 이 레지스터에의 기입은 레지스터(710)의 비트(714)가 0로 소거될 때에만 가능하다 (레지스터(720)는 비트(714)-보호된 것이다). 이 레지스터내의 비트들에 가하여지는 업데이트는 비트(714)가 다시 1로 세트된 후에 효과를 나타낼 것이다. 레지스터(710)는 또한 어떠한 제한들없이 임의의 시간에 독출될 수 있다. 그러나, 이 레지스터에의 기입은 특별한 시퀀스를 요구한다.
레지스터(710)에의 적합한 액세스는 항상 두 개의 기입 액세스들을 포함한다. 제 1 패스워드 액세스는 레지스터(710)을 록킹해제하기 위한 것이고, 제 2 수정 액세스는 감시장치의 동작에 작용하고 레지스터(710)를 다시 록킹하기 위한 것이다. 제 2 기입 액세스에서 파라미터들이 변경되지 않는 경우에 조차, 용어 "수정 액세스"가 이것에 대하여 사용된다는 것에 주목하라.
레지스터(710)는 특별한 패스워드 보호를 통해 수정으로부터 록킹된다. 레지스터(710)의 록킹 상태는 비트(713)에 반영된다. 레지스터(710)를 수정하기 위하여 우선 패스워드를 통해 록킹 해제되어야 한다.
레지스터(710)를 록킹 해제하기 위하여 요구되는 패스워드는 레지스터(710) 및 레지스터(720)내의 비트들의 상태로 이루어진다. 패스워드 비트(714) 및 비트(712)에 대한 요구로 인하여, 패스워드는 감시장지 레지스터들 중 하나의 내용을 독출함에 의해서만은 결코 결정될 수 없다. 이것은 올바른 패스워드를 얻기 위하여 소정 비트들을 변경시키는 수정 단계를 항상 요구한다. 이러한 패스워드는 수정을 위해 이러한 레지스터를 록킹해제하기 위하여 레지스터(710)의 어드레스 위치에 기입되어야 한다. 패스워드가 요구를 만족시키는 경우, 레지스터(710)는 이러한 기입 동작이 종료된 이후에 록킹 해제될 것이다. 이러한 록킹 해제 조건은 비트 713=0로 표시된다. 실제 액세스 코드를 레지스터(710, 720)의 저장된 내용과 비교하는 것은 제어 유니트(700)와 협력하여 비교기(740)에 의해 수행된다. 이어 레지스터(710) 레지스터(710)으로의 잇다른 기입 액세스를 위한 수정을 위해 개방된다.
이러한 기입이 종료된 이후, 레지스터(710)는 제어 유니트(700)에 의해 자동적으로 다시 록킹된다. 비트(713)는 제어 유니트(700)에 의해 1로 세트된다. 록킹 해제 액세스 동안 레지스터(710)에 기입된 패스워드 값이 레지스터(710)의 내용과일치하지 않는 경우, 감시장치 액세스 에러 상황이 발생한다. 감시장치 에러 상황은 아래에서 설명된다.
레지스터(710)내의 8비트 필드(712)는 (레지스터(170)가 록킹해제된 경우) 사용자에 의해 임의의 소정 값으로 세트될 수 있다. 이러한 필드는 패스워드 메카니즘을 위해서만 사용되며, 이것은 감시장치의 동작에 소정의 추가적인 영향을 미치지 않는다. 이러한 필드를 매번 변경시킴으로써, 레지스터(710)는 액세스되며, 레지스터(710)로의 액세스 시퀀스는 프로그램 수행 중에 모니터링될 수 있다.
예를 들어 액세스를 수정하는 동안에, 엄격한 요구는 비트(714) 및 예비 비트(7:4)가 1로 기입되고 예비 비트(3:2)가 0으로 기입된다는 것이 될 수 있다. 다른 모든 비트는 사용자 정의 가능한 값으로 세트될 수 있다. 수정 액세스 동안 레지스터(710)에 기입된 값이 이러한 요구를 만족시키지 않을 경우, 감시장치 액세스 에러가 존재한다. 감시장치 에러 상황은 다음에서 상세히 설명된다.
감시 타이머는 상당히 신뢰할만하고 안전한 감시 기능을 가지는 응용에서 사용될 수 있거나 디스에이블될 수 있다. 감시장치와 같은 주변 장치를 액세스하는 원칙은 임의의 다른 장치에도 적용할 수 있다. 소정 리세트 이후에, 감시 타이머는 타임아웃 모드에서 동작할 수 있다. 레지스터 내용은 다음과 같다.
레지스터(710)[31:16] 0000 0000 0000 0000
[15:0] 0000 0000 0000 0010
리로드 값 및 패스워드는 모두 0이며; 레지스터(710)는 록킹 해제된 상태(비트(713)=1)이며, 비트(714)는 리세트되고 보호된 레지스터로의 액세스는 개방된다.
레지스터(720)[31:16] 0000 0000 0000 0000
[15:0] 0000 0000 0000 0000
감시 타이머는 요청 세트를 인에이블하며; 입력 클록 요청은 시스템 클록/16384를 세트시킨다.
레지스터(730)[31:16] 1111 1111 1111 1100
[15:0] 0000 0000 0001 00xx
감시 타이머는 FFFC(초기 타임 아웃 값)을 포함하며; 감시장치는 타임-아웃 모드(비트(733)=1)에서 동작하며; 감시 타이머는 인에이블되며; 입력 클록은 시스템 클록/16384가 된다. 비트들(736,737)은 전원이 인가되어 하드웨어 또는 소프트웨어 리세트된 이후에 0이 된다. 감시 장치가 리세트된 경우, 이러한 두 비트들은 감시장치 리세트를 야기하는 에러 조건에 의존하여 세트된다.
감시 타이머는 다음의 조건들 중 하나에서 타임 아웃모드로 자동적으로 세트된다.
리세트 이후에 항상
(감시장치가 이미 타임-아웃 모드에 있지 않을 경우) 레지스터(710)으로의 패스워드 액세스 이후에 항상
타임 아웃 모드는 비트(733)=1을 통해 표시된다. 타임 아웃 모드의 초기에, 감시 타이머는 0xFFFC로 세트되며, ( 감시 타이머가 비트(734)=1에 의해 디스에이블되지 않는 경우조차도 이러한 경우에는 비트(734)는 업데이트되지 않는다 )인에이블된다. 감시 타이머는 이러한 값으로부터 비트(735)를 통해 결정된 입력 클록을 사용하여 업카운트된다. 이것은 1024 클록 또는 65536 클록의 타임 아웃 주기를 제공한다. 리세트 이후에, 타임 아웃 주기는 항상 65536 클록이 된다. 타임 아웃 모드를 종료하기 위하여, 레지스터(710)내의 비트(714)는 수정 액세스를 사용하여 1로 기입된다. 이러한 액세스는 타임-아웃을 종료시키고 비트(733)를 리세트시키며, 감시 타이머를 제어 비트(734, 735, 711)를 통해 결정된 동작으로 다시 스위칭하게 한다. 비트(734)=1인 경우, 감시 타이머는 0으로 세트되어 종료한다. 비트(734)=0인 경우, 감시 타이머는 비트(711)의 값으로 세트되며, 비트(735)를 통해 선택된 클록 입력을 사용하여 상승하는 방향으로 카운트하기 시작한다.
타임-아웃 모드가 적절하게 종료되지 않은 경우, 감시 타이머는 0xFFFF에서 0x0000으로 오버플로우하며, 리세트 사전경고 모드(reset pre-warning mode)로 진입할 것이다. 이러한 모드에서, 비트(736, 733,732)는 세트되고 CPU로의 NMI 트랩 요청이 활성화된다.
비트(732)=1로 표시되는 리세트 사전경고 모드는 타임 아웃 주기를 종료시키는 것이 불가능하다는 것을 제외하고는 타임-아웃모드와 유사하다. 감시 타이머가 0xFFFF에서 0x0000으로 오버플로우할 때, 감시 타이머 리세트가 발생된다. 이러한 모드는 PC, 스택 포인터 및 메모리내의 현재 실행중인 프로그램의 콘택스트 포인터와 같은 주요한 상태를 저장하기 위한 기회를 소프트웨어에 제공하려는 의도이다. 리세트 이후에, 이러한 메모리 위치는 감시 장치 에러의 가능한 근본 원인을 결정하기 위하여 검사될 수 있다. 이것은 프로그램 디버깅 동안 매우 중요하다. NMI 루틴에 있어서, 비트(732)의 검사는 외부 NMI 요청과 NMI 트랩 원인을 구별하기 위해 항상 수행되어야 한다.
리세트 이후에, 비트(714)는 0으로 소거되며, 이것은 비트(714)에 의해 보호된 임계 시스템 레지스터로의 액세스를 제공한다. 감시 타이머의 동작을 제어하기 위해 사용되는 레지스터(720)은 비트(714)에 의해 보호되는 레지스터들 중 하나이다. 레지스터(720)내의 제어 비트를 통한 감시 타이머의 동작을 변화시킬 때, 이러한 변화는 즉각적인 효과를 가지지 않는다. 그들은 비트(714)가 1로 다시 설정된 이후에만 효과를 나타낸다. 이러한 방식에 있어서, 이러한 비트를 변경시키는 것은 감시 타이머의 타임 아웃 동작과 대립하지 않는다. 리세트 이후에 감시 타이머가 타임-아웃 모드에 있기 때문에, 임계 시스템 레지스터의 초기화에 있어서 65535 클록의 타임 한계가 존재한다. 비트(714)는 타임-아웃이 만기되기 이전에 1로 세트되어야 한다.
비트(714)를 세트시키기 위하여, 레지스터(710)로의 적절한 액세스 시퀀스가 수행되어야 한다. 제 1 패스워드 액세스에 있어서, 적절한 패스워드 값이 레지스터(710)의 어드레스에 기입되어야 한다. 비트(711) 및 비트(712)를 위한 초기 값이 0인 반면에, 요구된 패스워드를 결정을 위하여 레지스터(720)내의 제어 비트에 처해지는 가능한 수정을 고려하여야 한다는 것이 주지되어야 한다. 비트(721, 722)에 대하여 어떠한 변경도 수행되지 않는다면, 초기의 패스워드 값은 0000 0000 0000 0000 0000 0000 1111 0000이다. 비트(721, 722)가 수정된다면, 패스워드 값의 비트들(2, 3)은 이러한 두 비트들의 새로운 상태를 반영하여야 한다. 이어 레지스터(710)는 록킹 해제되며( 713=0) 비트(714)를 세트시키기 위하여 레지스터(710)로의 제 2 수정 액세스가 수행될 수 있다. 이러한 액세스 동안에, 단지 엄격한 요구는, 레지스터(710)에 기입된 값이 1 (패스워드 액세스에서 사용된 것의 반대 값)이 되고 사용되지 않는 비트(7:4)도 역시 1이 된다는 것이 될 수 있다. 비트(711) 및 비트(712)는 모두 변경될 수 있지만 그들은 변경되지 않아야 한다. 비트(714) 및 비트(712)는 1 또는 0으로 기입될 수 있으며, 비트(714)를 제로로 기입하는 것은 타임-아웃 모드를 종료시키지 않는다. 비트(711, 712, 714)에 기입된 소정 값은 레지스터(710)내에 저장되며, 레지스터는 상기 기입(비트(713)=1) 이후에 자동적으로 록킹된다. 비트(714)가 레지스터(710)로의 수정 액세스 동안에 1로 기입된다면, 타임 아웃 모드는 종료된다. 비트(733)가 소거되고, 비트(735, 734)가 비트(722, 721)의 값으로 각각 업데이트되며, 감시 타이머는 비트(735, 734)를 통해 결정된 동작으로 스위칭된다. (레지스터 (720)를 포함하여) 비트(714)를 통해 보호되는 레지스터로의 액세스는 방지된다.
시스템 요구가 모든 또는 소정의 제어 파라미터가 응용의 실행 시간 동안 변경되어야 한다는 요구와 같은 것일 경우, 비트(714)를 통해 보호되는 레지스터로의 액세스는 재개(reopen)될 수 있다. 이를 위해, 레지스터(710)는 우선 적절한 패스워드를 사용하여 록킹해제되어야 한다. 제 2 수정 액세스에 있어서, 비트(714)는 소거될 수 있다. 이어 임계 레지스터가 다시 개방된다. 이러한 개방 액세스 윈도우는 감시 장치 타임-아웃 모드를 통해 다시 모니터링된다. 레지스터(710)의 제 1 록킹 해제와 함께, 감시 타이머는 타임-아웃 모드로 스위칭된다. 이러한 모드는 레지스터(710)로의 적절한 액세스 시퀀스를 사용하여 비트(714)가 1로 다시 세트된 이후에만 종료된다.
감시 타이머가 응용에서 사용되고 이에 따라 인에이블되면(비트(734)=0, 리세트 이후의 디폴트 값), 그것이 오버플로우되는 것을 방지하기 위하여 주기적으로 서비스되어야 한다. 적절한 서비스는 레지스터(710)로의 액세스 시퀀스를 통해 수행된다. 레지스터(710)를 록킹해제하기 위하여, 우선 적절한 패스워드가 레지스터(710) 위치에 기입되어야 한다. 수정 액세스에 있어서, 엄격한 요구는, 비트(714)가 1로 기입되고 비트(714) 및 사용되지 않는 비트(7:4)가 1로 기입된다는 것이 된다. 리로드 값 또는 사용자 정의 가능한 패스워드로의 변경은 요구되지 않는다. 그러나 비트(712)를 변경시키는 것은 응용 프로그램 동안에 감시 타이머 서비스 동작에 대한 모니터링을 인에이블 시키기 위하여 요구된다. 이러한 실시예에 있어서, WDTCONO로의 제1 패스워드 액세스와 함께, 감시 타이머는 타임-아웃 모드로 스위칭 한다. 따라서, 제 2 액세스는 타임 아웃이 만기가 되기 이전에 수행되어야 한다. 이러한 시퀀스가 적절하게 수행된다면, 타임-아웃이 종료되며, 감시 타이머는 리로드 값(711)으로 세트되고, 비트(735)를 통해 결정된 입력 클록을 사용하여 상향으로 카운팅하기 시작한다. 감시 타이머 서비스는 완료된다.
여러 조건들이 감시 장치 에러의 생성을 야기할 수 있다. 부정확한 액세스 에러는 다음의 경우;
레지스터(710)로의 제 1 패스워드 액세스에 있어서 비합리적인 패스워드, 또는
수정 액세스에서 레지스터(710)에 기입된 값중에서 비트(710) 및 사용되지 않은 비트(7:4)내의 0의 값의 경우에 발생한다.
감시 타이머 오버플로우 에러는 다음의 경우;
타임 아웃 모드에서의 오버플로우; 또는
감시 타이머 모드에서의 오버플로우에 발생한다.
액세스 에러의 경우, 레지스터(730)내의 비트(737)는 세트된다. 오버플로우 에러가 발생하면, 레지스터(730)내의 비트(736)가 세트된다. 소정의 에러의 경우, 감시 장치는 NMI 트랩 요청을 발생시키고, 리세트 사전경고 단계로 진입한다. 비트(732, 733)는 모두 세트된다.
에러 표시 플래그(736,737) 중 하나가 여전히 세트되어 있는 동안 감시장치 에러가 발생되고 다른 감시장치 에러가 발생된다면, 리세트 사전경고 단계 이후에 리세트가 생성되고, 외부의 하드웨어 또는 파워업 리세트가 발생할 때까지 상기 부분은 리세트 상태로 유지된다. 설명된 조건은 어떠한 코드도 수행되지 않는 경우, 심지어 에러 플래그가 액세스되지 않고 소거되지 않았기 때문에, 초기화 루틴도 수행되지 않는 경우이다. 상기 부분이 무작위적인 그릇된 코드를 수행하고 감시 타이머에 의해 재차 리세트되는 것을 방지하기 위하여, 이같은 경우의 리세트 모드에서 상기 부분을 록킹하기 위해 이러한 특징이 구현된다.
감시 장치에 대한 두 개의 타임-아웃 주기가 존재한다, 하나는 감시 장치 타임-아웃 모드에서의 미리 결정된 주기이며, 다른 하나는 실재 감시 타이머 동작에서 사용자-선택가능한 주기이다.
타임 아웃-모드에서 미리 결정된 주기는 단지 입력 클록의 선택조정 가능하며; 타이머에 대한 초기 카운트 값은 0xFFC로 고정되며, 즉 타이머는 오버플로우 이전까지 4 입력 클록을 카운트한다. 리세트 바로 이후의 제 1 타임-아웃 단계에 있어서, 입력 클록은 역시 16384로 분주된 시스템 클록(SYSCLK)으로 고정된다. 레지스터(720)내의 비트(722)를 통한 입력 주파수 선택의 변경은 단지 714가 1로 세트된 이후, 즉 타임 아웃 모드가 완전히 종료된 이후에만 효과를 나타낸다.
타임-아웃 모드에서 가능한 주기는 예를 들어;
비트(715)=0: PER(타임-아웃)=4*16384/SYSCLK=65536/SYSCLK(655.36ms/65536 지시 사이클@100MHz);리세트 이후의 초기 타임-아웃 주기,
비트(735)=1:PER(타임-아웃)=4*256/SYSCLK=1024/SYSCLK(10.24ms/1024 지시 사이클 @100MHz)가 된다.
감시 타이머 모드에서의 타임 아웃 주기는 두 개의 파라미터; 입력 클록 및 리로드 값에 의해 변경될 수 있다. 입력 클록에 대하여, 256로 분주된 또는 16384로 분주된 시스템 클록(SYSCLK)이 선택될 수 있다. 선택은 레지스터(710)내의 비트(735)를 통해 이루어진다. 리세트 이후의 디폴트는 비트(735)=0이며, 따라서, 주파수 SYSCLK/16384를 선택한다.
감시 타이머가 서비스되는 매시간 마다 레지스터(710)의 상위 16 비트내에 저장된 값으로 그것은 리로드된다. 이와 함께 타임-아웃은 광범위하게 변경될 수 있다. 감시 타이머의 최대 타임 주기는 (비트(711)=0000h):
PER(SYSCLK/256)=65536*256/SYSCLK(167.7ms/16.77 mill. 지시 사이클 @100MHz)
PER(SYSCLK/16384)=65536*16384/SYSCLK(10.73s/1.073 billion 지시 사이클 @100MHz)이다.
감시 타이머의 최소 타임 주기는 ( 비트(711)=FFFFh):
PER(SYSCLK/256)=1*256/SYSCLK(2.56ms/256 지시 사이클 @100MHz)
PER(SYSCLK/16384)=1*16384/SYSCLK(163.84ms/16384 지시 사이클 @100MHz)이다.
이러한 계산에 대해 변화가능한 리로드 값을 사용한 일반적인 형태는;
PER:(216-<WDTREL>)*256*2(1-<WDTIC>)*6/SYSCLK이다.
일반적으로, 내장된 응용 프로그램은 반복적으로 수행되는 루틴의 루프로 구성된다. 예를 들어, 리세트 및 초기화 루틴 이후에 다수의 서브루틴이 연속적으로 재차 수행될 수 있다. 이러한 메인 루프 이외에, 인터럽트 서비스 루틴의 세트가 존재한다. 감시 타이머 서비스 시퀀스는 메인 프로그램의 루프 내에 내장된다. 감시 타이머 시퀀스는 바람직하게 사용자 소프트웨어내에 위치되어 다음의 오버플로우 이전에 세이프 서비스가 보장된다.
이것은 특히 내장된 제어 응용의 경우에 상이한 부분의 코드를 수행 간격이 유용하게 변경되는 경우에도 바람직하다. 서비스는 일반적으로 메인 루틴내에서 수행되어야 한다. 서비스 시퀀스를 주기적 타이머를 통해 호출되는 인터럽트 루틴내에 놓는 것은, 메인 프로그램이 실패한 경우에도 조차 감시 장치 서비스 시퀀스를 가지는 인터럽트 프로그램이 적절하게 수행되어, 이에 따라 감시 타이머(3)에 대한 의도된 모니터링을 디스에이블하는 문제점을 가질 수 있다.
본 발명에 따라, 상술한 실시예중 하나를 따른 감시 타이머를 사용한 경우, 이러한 감시장치 서비스를 처리하기 위한 방법에 대한 여러 상이한 가능성이 존재한다. 다음의 두가지 예는 높은 보안성을 가지는 감지장치 서비스를 처리하는 방법을 설명한다. 도 6은 제 1 샘플 프로그램을 도시한다. 단계 40의 리세트 이후에, 감시 타이머는 단계 41에서 초기화된다. 또한 단계 41에서, 감시 타이머는 제 1 시간을 서비스한다. 따라서, 제로의 감시장치 패스워드로 서비스 레지스터(2)로의 제1 액세스가 수행된다. 제 2 액세스 동안에, 패스워드는 새로운 값, 예를 들어 "12"로 세트된다. 다음의 단계 42 내지 단계 47은 메인 프로그램의 메인 루프 주요부를 형성한다. 단계 42에서, 제 1 서브루(Sub1)이 수행된다. 다음의 단계43에서, 감시 타이머 패스워드의 값은 새로운 값, 예를 들어 "13"으로 세트된다. 단계 44에서 제2 서브루틴(Sub2)이 수행된다. 단계 45에서 감시 타이머 패스워드 값을 "13"에서 "14"로 다시 변경한다. 단계46에서 제 3 서브루틴(Sub3)이 수행된다. 루프 주요부의 마지막 단계 47에서 패스워드는 "14"에서 "12"로 다시 세트되고 프로그램은 단계 42로 점프한다.
각 시퀀스의 도입부에서 오래된 패스워드는 제어 레지스터(2)에 우선 기입되기 때문에, 이전 서비스와의 링크가 수행된다. 에러에 기인하여 하나 이상의 서비스 시퀀스가 스킵되면, 제어 레지스터(2)는 다음 서비스 시퀀스의 도입부에서 예상된 값을 포함하지 않을 수 있다. 즉각적인 타임 아웃이 발생하며, 리세트 신호(1 a)가 활성화된다. 이것은 또한 그릇된 루프에 기인하여 서비스 시퀀스가 두 번 수행되는 경우에도 발생할 수 있다. 이러한 체제를 사용한 경우, 서비스 시퀀스는 메인 루프 동안에 항상 수행되는 코드내의 포인트에 위치되어야 한다.
도 7은 감시장치 서비스를 포함하는 프로그램에 대한 다른 실시예를 도시한다. 단계 50의 리세트 이후에 감시 타이머는 단계 51에서 초기화된다. 또한 이러한 단계에서 감시장치 패스워드는 "0"에서 "12"로 세트되고 메모리 셀(TMP)는 10으로 세트된다. 메인 루프 주요부의 수행 동안에, 제 1 서브루틴(Sub1)이 단계 52에서 수행된다. 다음의 단게 53 동안에, 메모리 셀(TMP)의 내용이 1만큼 증가된다. 단계 54는 서브루틴(Sub2)의 수행을 수반한다. 다음의 단계 55동안, 메모리 셀(TMP)의 내용이 다시 1 만큼 증가된다. 단계 56은 서브루틴(Sub3)의 수행을 수반한다. 최종적으로, 패스워드가 메모리 셀(TMP)의 내용에 2를 더한 것으로 변경되는 감시 타이머 서비스가 수행된다.
이러한 예는 단지 하나의 감시 장치 서비스 시퀀스를 프로그램 내에 위치시키는, 즉 메인 루프의 종단부에 위치시키는 다른 방법을 도시한다. 다시, 프로그램 흐름을 모니터링하는 것은 일시적 변수, 본 예에서는 메모리셀(TMP)내에 저장된 변수를 사용하여 수행될 수 있다. 이러한 메모리 셀(TMP)은 코드 수행동안의 상이한 포인트에서 적절하게 수정된다. 도시된 예에 있어서, 제어 레지스터(2)내의 패스워드 내용은 단계 51 동안의 함수에 의해 수정된다. 단계 53 및 단계 55는 이러한 함수를 반전시켜, 메모리 셀(TMP)내에 저장된 변수가 단계 57의 종료시에는 원래 패스워드를 포함하게 한다. 모든 것이 올바르게 수행되었다면, 메모리 셀(TMP)은 제어 레지스터(2)내의 패스워드 값과 정확하게 매칭된다. 그러나, 코드 내의 하나 또는 여러개의 체크 포인트가 실패에 기인하여 빠뜨려진다면, 메모리 셀(TMP)은 정확한 값을 포함하지 않으며, 이른 감시장치 타임-아웃이 생성되어 리세트 신호(1a)를 활성화시킨다. 단계 51에서 수행된 함수 및 단계 53 및 단계 55에서 수행된 반전 함수는 상이한 동작일 수 있다. 도시된 실시예는 단계 51에서 2의 감산과 단계 53 및 단계 55에서의 2의 가산을 도시한다. 물론 다른 산술 또는 논리적인 함수가 수행될 수 있다. 예를 들어, 제어 레지스터(2)내에 포함된 패스워드는 좌향으로 여러번 회전될 수 있다. 여러 포인트에서의 메인 루프 주요부의 수행 동안, 메인 루프 주요부의 종료부에서 제어 레지스터(2)내에 포함된 패스워드와의 정합을 위하여 우향으로의 회전이 수행되어야 한다. 메인 루프 주요부 동안 수행되는 상이한 함수는 단계 51에서 수행된 함수를 중화시키는 것이 본질적이다.
도 8은 감시 타이머 주변 장치를 구성하는, 본 발명에 따른 다른 실시예를 도시한다. 도 1 및 도 2와 동일한 인용 부호는 도 8내의 동일한 엘리먼트를 도시하며, 도 8에 도시된 실시예는 도 2에 도시된 실시예의 변형이다. 이러한 실시예에 있어서, 상태 머신(15)은 액세스 제어 유니트로서 사용된다. 상태 머신(15)은 타이머(3)를 제어하기 위한 모든 필수적인 신호를 생성한다. 상태 머신(15)에 의해 제어되는 에러 카운터(16)가 제공된다. 추가로, 에러 카운터(16) 및 상태 머신(15)으로부터의 입력을 수신하는 에러 출력 유니트(17)가 제공된다. 에러 출력 유니트(17)는 두 개의 신호(18, 19)를 생성한다. 신호(1)는 타이머(3)의 더블 오버플로우를 나타낸다. 신호(19)는 감시장치 에러를 나타낸다. 상태 머신(20)은 또한 사전 경고 신호(20)를 생성한다. 상태 머신(15)은 타이머(3)를 리세트/재시작 또는 종료시키기 위한 모든 필수적인 신호를 생성한다. 신호(24)는 레지스터(2)로부터의 리로드 값이며, 신호(23)는 상태 머신(15)으로부터 생성된 미리 정의된 시작 값이다. 버퍼 레지스터(27)는 도 2에 따른 새도우 레지스터와 동일한 기능을 제공한다. 패스워드 비교 유니트(26)가 레지스터(2) 및 레지스터(27)를 비교하기 위하여 제공된다. 버퍼 레지스터(27)에서 레지스터(2)로의 데이터 전송을 허용하기 위하여, 이러한 두 레지스터 사이에서의 신호 흐름을 제어하는 록킹 해제 유니트(25)가 제공된다. 레지스터(2)의 제어 필드는 감시 타이머 레지스터의 초기화에 대한 종료를 나타내는 특별한 비트(28)를 포함한다.
타이머(3)는 클록 제어 유니트(7)에 의해 제어되는 16 비트 감시 타이머일 수 있다. 클록 제어 유니트(7)는 프로그램 가능하며, 클록 제어 유니트(7)에 인가된 입력 클록(13)을 분주시킨다. 다시, 레지스터(2)는 리로드부분, 패스워드부분 및 제어 부분을 포함한다. 제어 부분의 비트(28)는 감시 타이머의 중요한 기능을 기입 방지(write protect)하는 데에 사용된다. 게다가, 그것은 마이크로프로세서 시스템 내의 임의의 레지스터의 중요한 기능의 기입 방지를 위하여 사용될 수 있다. 이러한 비트가 이러한 레지스터의 기입을 허용하도록 세트되면, 상태 머신(15)은 타이머(3)를 감시장치 모드로 리세트시키고 미리 정의된 초기 값(23)을 타이머에 제공한다. 타이머는 운영을 시작하고 제어 비트(28)가 타이머(3)가 오버플로우 되기 이전에 리세트되는 경우에 리세트 신호를 생성하여, 이에 따라 타임 윈도우가 모든 필수 레지스터의 변경이 수행되어져야 하는 중간에 생성된다. 이러한 타임 윈도우 신호는 도 4를 사용하여 설명된 신호(10k)와 유사하다.
단지 레지스터(2) 및 레지스터(27)의 패스워드 부분을 비교하는 대신에, 이러한 실시예에서는 레지스터(2)와 레지스터(27)의 전체의 완전한 내용이 비교된다. 이에 따라 패스워드 비교 유니트(26)는 두 레지스터(2, 27)를 비교하며, 이에 의해 제어 부분의 소정 비트가 배제될 수 있거나 또는 반전되어야 한다. 제 2 액세스에 있어서 레지스터(2)의 모든 또는 일부가 새로운 값으로 오버라이트될 수 있다. 비교 유니트(26)는 또한 제 2 액세스 동안 제어 부분내의 소정 비트의 비교를 제공한다. 레지스터(2)로의 액세스는 버퍼 레지스터(27)로부터의 기입 액세스 신호(21) 및 패스워드 비교 유니트(26)로부터의 모든 필수 신호를 수신하는 상태 머신(15)에 의해 제어된다. 에러 출력 유니트(17)는 그릇된 액세스가 검출되는 경우에 감시장치 에러 신호(19)를 생성하며, 그것은 또한 타이머(3)의 오버플로우를 카운트하는 에러 카운터(16)에 의해 나타내어지는 더블 오버플로우 신호(18)를 생성한다.
모든 실시예에 있어서 타이머(2)의 오버플로우 메카니즘에 의해 생성된 리세트는 다음의 단계에 의해 대체될 수 있다. 중대한 에러가 발생되기 때문에, 리세트 신호를 생성하는 대신에 중앙 처리 유니트에 인가되는 마스크 불가능한 인터럽트 또는 워닝 신호가 생성된다. 게다가, 타이머(3)는 종료될 수 없는 감시장치 모드로 세트된다. 이러한 감시장치 모드에 있어서, 프리세트 값(23)이 사용되며, 타이머는 개시된다. 따라서, 중앙 처리 유니트가 중요한 데이터를 포획하여 저장하는 것이 허용된다. 타이머(3)의 오버플로우는 리세트 신호를 생성한다. 마스크 불가능한 인터럽트는 도 8의 사전경고 신호로 도시되었다.
본 발명이 바람직한 실시예를 참조하여 설명되었을 지라도, 따라서 다양한 형태의 변화 및 변형이 첨부된 청구범위에 의해 한정된 바와같은 본 발명의 정신 및 범위로부터 벗어나지 않고 이루어진다는 것이 당업자에게 이해된다.
Claims (21)
- 연합 레지스터는 패스워드를 가지는 적어도 데이터 영역을 포함하며, 상기 레지스터는 데이터 워드가 제 1 액세스에 이은 다음의 제 2 기입 액세스 동안에 레지스터로 기입되는 것을 허용하는 제 1 액세스 이후에 인에이블링 신호를 생성하는 기입/독출 제어 유니트에 접속되는, 상기 연합 레지스터를 포함하는 집적된 주변 장치에 있어서,상기 기입/독출 제어 유니트는 제 1 액세스 동안 주변 장치로 전송되는 데이터와 패스워드를 비교하여 비교 신호를 생성하는 비교기를 포함하며, 상기 기입/독출 제어 유니트는 비교기가 미리 결정된 비교 신호를 생성하는 경우에 인에이블링 신호를 생성하는 것을 특징으로 하는 주변 장치.
- 제 1 항에 있어서, 상기 기입/독출 제어 유니트는 액세스 제어유니트 및 제어 가능한 게이트를 포함하며, 상기 제 2 액세스 동안의 상기 데이터는 상기 제어 가능한 게이트와 상기 액세스 유니트에 인가되며,상기 제어 가능한 게이트는 상기 인에이블링 신호가 상기 게이트에 인가되는 경우에 상기 데이터를 상기 레지스터로 전송하는 것을 특징으로 하는 주변 주변 장치.
- 제 2 항에 있어서, 상기 액세스 제어 유니트는 상기 레지스터의 적어도 하나의 추가 비트에 접속되어, 상기 데이터 워드내에 포함된 해당 비트에 따른 제 1 액세스 동안에 상기 비트를 기입하며, 상기 액세스 제어 유니트는 상기 제 2 액세스 동안 상기 레지스터의 상기 비트를 상기 데이터워드내의 해당 비트와 비교하는, 상기 레지스터에 접속된 제 2 비교기를 포함하며, 상기 비교기는 비교 신호를 생성하고 상기 인에이블링 신호는 이러한 비교 신호에 의존하여 생성되는 것을 특징으로 하는 주변 장치.
- 제 3 항에 있어서, 상기 비교 신호는 제 1 액세스 동안 상기 비트가 제 1 이진 값으로 세트되어야 하고 제 2 액세스 동안 반전된 이진 값으로 세트되어야 한다는 것을 나타내는 것을 특징으로 하는 주변 장치.
- 제 1 항에 있어서, 상기 기입/독출 제어 유니트는 기입 가능한 연합 레지스터와동일한 크기를 가지는 새도우 레지스터를 포함하며,상기 액세스 제어 유니트는 두 레지스터와 접속되고, 상기 비교기는 두 레지스터의 패스워드를 포함하는 데이터 영역을 비교하며,상기 액세스제어 유니트는 상기 인에이블링 신호에 따라 상기 제 2 액세스 동안에 상기 새도우 레지스터에 기입되는 데이터를 상기 연합 레지스터로 전송하는 것을 특징으로 하는 주변 장치.
- 제 5 항에 있어서, 상기 액세스 제어 유니트는 상기 레지스터의 적어도 하나의 추가 비트에 접속되어 상기 새도우 레지스터내에 포함된 해당 비트에 따라 제 1 액세스 동안에 상기 비트를 기입하며,상기 액세스 제어 유니트는 상기 레지스터에 결합되고 상기 제 2 액세스 동안에 상기 새도우 레지스터내의 해당 비트와 상기 연합 레지스터의 상기 비트를 비교하는 제 2 비교기를 포함하며, 상기 비교기는 비교 신호를 생성하고 상기 인에이블링 신호는 이러한 비교 신호에 따라 생성되는 것을 특징으로 하는 주변 장치.
- 제 6 항에 있어서, 상기 비교 신호는 제1 액세스 동안 상기 비트가 제 1 이진 값으로 세트되고 제 2 액세스 동안 반전된 이진 값으로 세트되어야 한다는 것을 나타내는 것을 특징으로 하는 주변 장치.
- 제 1 항에 있어서, 상기 인에이블링 신호가 생성되는 경우에 단지 기입될 수 있는 추가의 레지스터를 포함하는 것을 특징으로 하는 주변 장치.
- 연합 레지스터가 패스워드를 가지는 적어도 데이터 영역을 포함하며, 상기 레지스터가 데이터 워드가 제 1 액세스에 이은 다음의 제 2 기입 액세스 동안에 레지스터로 기입되는 것을 허용하는 제 1 액세스 이후에 인에이블링 신호를 생성하는 기입/독출 제어 유니트에 접속되는, 연합 레지스터를 구비한 집적된 주변 장치를 액세스하기 위한 방법에 있어서,a) 상기 주변 장치에 적어도 패스워드를 포함하는 제 1 데이터 워드를 기입하는 단계;b) 상기 독출/기입 유니트가 상기 제 1 데이터 워드를 저장된 패스워드와 비교하여, 상기 패스워드가 미리 정의된 조건을 만족시킬 경우에 인에이블 신호를 발생시키는 단계;c) 상기 주변 장치에 제 2 데이터 워드를 기입하는 단계; 및d) 인에이블 신호가 발생된 경우에 상기 제 2 데이터 워드를 상기 레지스터에 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제 9 항에 있어서, 상기 제 1 데이터 워드는 단계 a) 동안 제 1 이진 값을 가지는 적어도 하나의 비트를 포함하며,상기 제 2 데이터 워드 내의 비트가 상기 제 1 데이터 워드내의 비트에 대한 반전된 이진 값을 가지는 경우에만 상기 제 2 데이터 워드를 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제 1 항 또는 제 10 항에 있어서, 상기 주변 장치는 감시 타이머이며,상기 제 2 기입 액세스는 상기 감시 타이머의 동작을 제어하는 것을 특징으로 하는 방법.
- 제 11 항에 있어서, 액세스중 적어도 하나가 부정확하게 수행된 경우에 예외 신호가 생성되는 것을 특징으로 하는 방법.
- 제 12 항에 있어서, 상기 예외 신호는 인터럽트 신호이며,상기 감시 타이머는 미리 정의된 값으로 재시작되는 것을 특징으로 하는 방법.
- 제 13 항에 있어서, 상기 재시작된 감시 타이머는 리세트될 수 없는 것을 특징으로 하는 방법.
- 제 11 항에 있어서, 상기 레지스터의 적어도 한 비트의 기입 이후에, 상기 감시 타이머는 미리 결정된 값으로 재시작되는 것을 특징으로 하는 방법.
- 제 15 항에 있어서, 상기 비트를 리세트한 이후에 상기 감시 타이머는 종료되는 것을 특징으로 하는 방법.
- 연합 레지스터가 패스워드를 가지는 적어도 데이터 영역을 포함하며, 상기 레지스터는 데이터 워드가 제 1 액세스에 이은 다음의 제 2 기입 액세스 동안에 레지스터로 기입되는 것을 허용하는 제 1 액세스 이후에 인에이블링 신호를 생성하는 기입/독출 제어 유니트에 접속되며, 상기 기입/독출 제어 유니트는 제 1 액세스 동안 데이터 처리기에 의해 주변 장치로 전송되는 데이터와 패스워드를 비교하여 비교 신호를 생성하는 비교기를 포함하며, 상기 기입/독출 제어 유니트는 비교기가 미리 결정된 비교 신호를 생성하는 경우에 인에이블링 신호를 생성하는, 연합 레지스터를 가지는 감시 타이머를 구비한 데이터 처리기내에서 수행되는 프로그램을 모니터링하기 위한 방법에 있어서,a) 상기 레지스터를 제 1 패스워드로 초기화시키는 단계;b)서브루틴을 수행하는 단계;c) 상기 패스워드를 변경시키는 단계; 및d) 상이한 서브루틴으로 상기의 단계 b) 내지 단계 c)를 반복하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제 17 항에 있어서, e) 상기 패스워드를 상기 제 1 패스워드로 변경하는 단계;f) 상기의 단계 b) 내지 단계 e)를 반복하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 연합 레지스터가 패스워드를 가지는 적어도 데이터 영역을 포함하며, 상기 레지스터는 데이터 워드가 제 1 액세스에 이은 다음의 제 2 기입 액세스 동안에 레지스터로 기입되는 것을 허용하는 제 1 액세스 이후에 인에이블링 신호를 생성하는 기입/독출 제어 유니트에 접속되며, 상기 기입/독출 제어 유니트는 제 1 액세스 동안 데이터 처리기에 의해 주변 장치로 전송되는 데이터와 패스워드를 비교하여 비교 신호를 생성하는 비교기를 포함하며, 상기 기입/독출 제어 유니트는 비교기가 미리 결정된 비교 신호를 생성하는 경우에 인에이블링 신호를 생성하는, 연합 레지스터를 가지는 감시 타이머를 구비한 데이터 처리기내에서 수행되는 프로그램을 모니터링하기 위한 방법에 있어서,a) 상기 레지스터를 제 1 패스워드로 초기화시키는 단계;b) 제 1 함수로 상기 패스워드를 변경시키고 데이터 메모리내에 그것을 저장하는 단계;c) 제 2 함수로 프로그램 루프의 수행 동안 적어도 한번 상기 패스워드를 변경시키는 단계를 포함하는 데, 상기 프로그램 루프의 종료시에 상기 데이터메모리내에 저장된 상기 패스워드는 상기 레지스터내에 저장된 상기 패스워드와 동일하며;d) 상기 레지스터에 저장된 상기 패스워드를 변경시키는 단계; 및e) 상기의 단계 b) 내지 단계 d)를 반복하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제 19 항에 있어서, 상기 제 1 함수는 산술 함수이며, 상기 제 2 함수는 반전된 산술 함수인 것을 특징으로 하는 방법.
- 제 19 항에 있어서, 상기 제 1 함수는 논리 함수이며, 상기 제 2 함수는 반전된 논리 함수인 것을 특징으로 하는 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/062,382 US6141774A (en) | 1998-04-17 | 1998-04-17 | Peripheral device with access control |
US09/062,382 | 1998-04-17 | ||
PCT/US1999/007465 WO1999054825A1 (en) | 1998-04-17 | 1999-04-05 | Peripheral device with access control |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20010042797A true KR20010042797A (ko) | 2001-05-25 |
Family
ID=22042120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020007011541A KR20010042797A (ko) | 1998-04-17 | 1999-04-05 | 액세스 제어 기능을 가지는 주변 장치 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6141774A (ko) |
EP (1) | EP1071997B1 (ko) |
JP (1) | JP2002512402A (ko) |
KR (1) | KR20010042797A (ko) |
WO (1) | WO1999054825A1 (ko) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7000100B2 (en) * | 2001-05-31 | 2006-02-14 | Hewlett-Packard Development Company, L.P. | Application-level software watchdog timer |
US7003775B2 (en) * | 2001-08-17 | 2006-02-21 | Hewlett-Packard Development Company, L.P. | Hardware implementation of an application-level watchdog timer |
GB2385956B (en) * | 2002-03-01 | 2004-06-02 | 3Com Corp | Key based register locking mechanism |
US7343493B2 (en) * | 2002-03-28 | 2008-03-11 | Lenovo (Singapore) Pte. Ltd. | Encrypted file system using TCPA |
US7689875B2 (en) * | 2002-04-25 | 2010-03-30 | Microsoft Corporation | Watchdog timer using a high precision event timer |
TW591528B (en) * | 2002-05-01 | 2004-06-11 | Prolific Technology Inc | Plug-and-play device and access control method thereof |
US7263721B2 (en) * | 2002-08-09 | 2007-08-28 | International Business Machines Corporation | Password protection |
US8281114B2 (en) * | 2003-12-23 | 2012-10-02 | Check Point Software Technologies, Inc. | Security system with methodology for defending against security breaches of peripheral devices |
US20050177754A1 (en) * | 2004-02-09 | 2005-08-11 | Board Of Control Of Michigan Technological University | Password management peripheral system and method |
US20060026287A1 (en) * | 2004-07-30 | 2006-02-02 | Lockheed Martin Corporation | Embedded processes as a network service |
JP4514066B2 (ja) * | 2008-04-28 | 2010-07-28 | ルネサスエレクトロニクス株式会社 | データ処理装置及びデータ処理装置におけるアクセス制御方法 |
US9405342B2 (en) * | 2009-04-01 | 2016-08-02 | Schneider Electric It Corporation | System and method for providing timing |
JP5764075B2 (ja) * | 2012-01-06 | 2015-08-12 | ルネサスエレクトロニクス株式会社 | パスワード認証回路と方法 |
DE102012209712A1 (de) * | 2012-06-11 | 2013-12-12 | Robert Bosch Gmbh | Aktive Funktionseinschränkung eines Mikrocontrollers |
US9032258B2 (en) * | 2012-09-14 | 2015-05-12 | Infineon Technologies Ag | Safety system challenge-and-response using modified watchdog timer |
US9612893B2 (en) | 2015-05-11 | 2017-04-04 | Silicon Laboratories Inc. | Peripheral watchdog timer |
US10543370B2 (en) | 2017-12-22 | 2020-01-28 | Pacesetter, Inc. | Method and device to manage modifications of protected registers in an implantable medical device |
US11317803B2 (en) | 2020-07-21 | 2022-05-03 | Pacesetter, Inc. | System and method for managing Bluetooth low energy advertising |
US11829227B2 (en) * | 2020-08-05 | 2023-11-28 | Infineon Technologies Ag | Storage circuit with hardware read access |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4594685A (en) * | 1983-06-24 | 1986-06-10 | General Signal Corporation | Watchdog timer |
US4586179A (en) * | 1983-12-09 | 1986-04-29 | Zenith Electronics Corporation | Microprocessor reset with power level detection and watchdog timer |
GB2197507A (en) * | 1986-11-03 | 1988-05-18 | Philips Electronic Associated | Data processing system |
DE3728561C2 (de) * | 1987-08-27 | 1997-08-21 | Vdo Schindling | Verfahren zur Überprüfung einer Überwachungseinrichtung für einen Mikroprozessor |
WO1993000628A1 (en) * | 1991-06-26 | 1993-01-07 | Ast Research, Inc. | Multiprocessor distributed initialization and self-test system |
JP2658697B2 (ja) * | 1991-12-11 | 1997-09-30 | 富士通株式会社 | ウォッチ・ドック・タイマ回路 |
DE4205567A1 (de) * | 1992-02-22 | 1993-08-26 | Philips Patentverwaltung | Verfahren zum steuern des zugriffs auf einen speicher sowie anordnung zur durchfuehrung des verfahrens |
US5421006A (en) * | 1992-05-07 | 1995-05-30 | Compaq Computer Corp. | Method and apparatus for assessing integrity of computer system software |
US5537544A (en) * | 1992-09-17 | 1996-07-16 | Kabushiki Kaisha Toshiba | Portable computer system having password control means for holding one or more passwords such that the passwords are unreadable by direct access from a main processor |
US5355414A (en) * | 1993-01-21 | 1994-10-11 | Ast Research, Inc. | Computer security system |
JPH06236325A (ja) * | 1993-02-08 | 1994-08-23 | Sansei Denshi Japan Kk | データ記憶装置 |
US5513319A (en) * | 1993-07-02 | 1996-04-30 | Dell Usa, L.P. | Watchdog timer for computer system reset |
US5522086A (en) * | 1993-10-29 | 1996-05-28 | Sierra Semiconductor Canada, Inc. | Software configurable ISA bus card interface with security access read and write sequence to upper data bits at addresses used by a game device |
US5541943A (en) * | 1994-12-02 | 1996-07-30 | At&T Corp. | Watchdog timer lock-up prevention circuit |
JP3774260B2 (ja) * | 1996-03-25 | 2006-05-10 | 株式会社ルネサステクノロジ | メモリカードのセキュリティシステム装置及びそのメモリカード |
US5844497A (en) * | 1996-11-07 | 1998-12-01 | Litronic, Inc. | Apparatus and method for providing an authentication system |
-
1998
- 1998-04-17 US US09/062,382 patent/US6141774A/en not_active Expired - Lifetime
-
1999
- 1999-04-05 KR KR1020007011541A patent/KR20010042797A/ko not_active Application Discontinuation
- 1999-04-05 EP EP99915280A patent/EP1071997B1/en not_active Expired - Lifetime
- 1999-04-05 WO PCT/US1999/007465 patent/WO1999054825A1/en not_active Application Discontinuation
- 1999-04-05 JP JP2000545105A patent/JP2002512402A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US6141774A (en) | 2000-10-31 |
EP1071997B1 (en) | 2003-12-17 |
EP1071997A1 (en) | 2001-01-31 |
JP2002512402A (ja) | 2002-04-23 |
WO1999054825A1 (en) | 1999-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20010042797A (ko) | 액세스 제어 기능을 가지는 주변 장치 | |
US6976136B2 (en) | Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller | |
US5210854A (en) | System for updating program stored in eeprom by storing new version into new location and updating second transfer vector to contain starting address of new version | |
CN100489805C (zh) | 运行时间安全保证的自动存储器检测器及其方法 | |
US6026016A (en) | Methods and apparatus for hardware block locking in a nonvolatile memory | |
US4763296A (en) | Watchdog timer | |
US6182187B1 (en) | System ROM including a flash EPROM and a ROM for storing primary boot code replacing a block flash EPROM | |
US6587916B2 (en) | Microcomputer with built-in programmable nonvolatile memory | |
KR19990006453A (ko) | 타임아웃을 사용한 사용자 프로그램 가능 인터럽트 마스크 | |
KR19990006454A (ko) | 자원 잠금 효율의 향상을 위해 타임아웃을 사용한 사용자 프로그램 가능 인터럽트 마스크 | |
CN111552434A (zh) | 保护存储器设备 | |
CN110968254B (zh) | 一种非易失性存储器的分区保护方法及装置 | |
JPH07134678A (ja) | Ram保護装置 | |
US6711690B2 (en) | Secure write blocking circuit and method for preventing unauthorized write access to nonvolatile memory | |
JPH05225067A (ja) | 重要メモリ情報保護装置 | |
US5668973A (en) | Protection system for critical memory information | |
KR101305502B1 (ko) | 컴퓨터 시스템 및 그 제어 방법 | |
WO2004003714A2 (en) | Circuit for detection of internal microprocessor watchdog device execution and method for resetting microprocessor system | |
EP3440585B1 (en) | System and method for establishing a securely updatable core root of trust for measurement | |
JP4114004B2 (ja) | 半導体集積回路 | |
US12111931B2 (en) | Countermeasure against fault injection attacks | |
US20230342279A1 (en) | Method for monitoring an execution of a program code portion and corresponding system-on-chip | |
WO2023133087A1 (en) | Countermeasure against fault injection attacks | |
JP2024007617A (ja) | プロセッサ回路、バージョン管理方法およびバージョン管理プログラム | |
JPH0822419A (ja) | 誤書込防止方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |