KR100284312B1 - 8x196마이크로콘트롤러용인터럽트벡터생성장치 - Google Patents

8x196마이크로콘트롤러용인터럽트벡터생성장치 Download PDF

Info

Publication number
KR100284312B1
KR100284312B1 KR1019970027890A KR19970027890A KR100284312B1 KR 100284312 B1 KR100284312 B1 KR 100284312B1 KR 1019970027890 A KR1019970027890 A KR 1019970027890A KR 19970027890 A KR19970027890 A KR 19970027890A KR 100284312 B1 KR100284312 B1 KR 100284312B1
Authority
KR
South Korea
Prior art keywords
interrupt
bit
bits
service
pts
Prior art date
Application number
KR1019970027890A
Other languages
English (en)
Other versions
KR19990003927A (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 김영환
Priority to KR1019970027890A priority Critical patent/KR100284312B1/ko
Publication of KR19990003927A publication Critical patent/KR19990003927A/ko
Application granted granted Critical
Publication of KR100284312B1 publication Critical patent/KR100284312B1/ko

Links

Images

Landscapes

  • Complex Calculations (AREA)
  • Bus Control (AREA)

Abstract

본 발명은 최소의 하드웨어 추가로 1 상태시간 미만의 시간으로 벡터를 생성할 수 있는 8X196 마이크로콘트롤러용 인터럽트 벡터 생성 장치를 제공하기 위한 것으로, 이를 위해 본 발명은 소프트웨어 인터럽트 서비스 및 피티에스(PTS, Peripheral Transaction Server) 인터럽트 서비스를 제공하는 8X196 마이크로콘트롤러의 인터럽트 벡터 생성 장치에 있어서, 현재 처리해야 할 인터럽트의 번호를 저장하고 있는 4비트의 인터럽트 번호 저장수단; 상기 인터럽트 번호 저장수단의 각비트를 디코딩하여 해당 인터럽트의 피티에스(PTS) 서비스 요청 정보에 따라 PTS 서비스 시의 인터럽트 벡터 생성을 제어하는 제어 수단; 상기 제어 수단의 출력 신호에 응답하여 피티에스(PTS) 서비스인 경우에 항상 ″0″의 값을, 소프트웨어 서비스와 마스크 불가능한 인터럽트 서비스의 경우에 상기 인터럽트 번호저장수단의 최상위 비트를 선택적으로 출력하는 선택수단; 및 생성하고자 하는 16비트의 인터럽트 벡터를 저장하고 있는 인터럽트 벡터 저장수단을 포함하며, 상기 인터럽트 벡터 저장수단은, 16비트 중 최상위 4비트([15;12])에 16진수 ″2″의 값을, 상기 최상위 4비트 연속되는 그 다음 하위 4비트(11:8])에 16진수 ″0″의 값을, 상기 하위 4비트([11:8])에 연속되는 그 다음 하위 1비트([7])에 2진수 ″0″의 값을, 최하위 비트([0])에 2 진수 ″0″의 값을 각각 저장하고, 상기 최하위 비트에 연속되는 그 다음 상위 4비트9[4:1])에 상기 인터럽트 번호 저장 수단의 4비트 인터럽트 번호를 저장하고, 상기 상위 4비트([4;1])에 연속되는 그 다음 상위 1비트([5])에 상기 선택수단의 출력 신호를 저장하고, 상기 상위 1비트([5])의 그 다음 상위 1 비트([6])에 상기 제어 수단의 출력 신호를 저장하도록 구성된다.

Description

8X196 마이크로콘트롤러용 인터럽트 벡터 생성 장치{INTERRUPT VECTOR GENERATOR FOR 8X196 MICROCONTROLLER}
본 발명은 MCU(Micro controller Unit)의 인터럽트 관련 장치에 관한 것으로, 특히 인터럽트 벡터 및 PTS(Peripheral Transaction Server) 벡터를 생성하는 인터럽트 벡터 생성 장치에 관한 것이다.
일반적으로, 인터럽트 요청이란 MCU가 정상적인 프로그램을 수행하는 도중에 내부 혹은 외부에서 긴급하게 처리해야 하는 일이 발생했을 경우 MCU에게 이러한 상황을 알리고 MCU가 이 일에 대하여 적절한 처리를 해주기를 요구하는 것을 말한다. 이러한 인터럽트 요청이 있을 때 MCU가 이를 인지하고 수행 중이던 정상적인 프로그램을 잠시 멈춘 다음 인터럽트 요청에 대한 적절한 조치를 취한 후 다시 수행중이던 프로그램을 계속 수행하는 전체의 과정을 인터럽트 서비스라고 한다.
또한, 인터럽트 벡터랑 각 인터럽트들에 대한 인터럽트 서비스 루틴의 시작 주소를 담고 있는 메모리 주소를 말하며, 8X196의 경우 인터럽트 서비스 루틴의 시작 주소가 16비트이기 때문에 인터럽트 벡터의 크기도 16비트이다.
한편, 대부분의 MCU는 인터럽트 서비스루틴의 시작 주소를 인터럽트 벡터 영역에 저장해 두었다가 인터럽트가 발생하면 적절한 서비스 루틴을 불러 인터럽트 서비스를 수행하는데, 통상 이러한 서비스 방법을 소프트웨어 인터럽트 서비스라고 한다.
8X196의 경우 소프트웨어 인터럽트 서비스외에 PTS 서비스라는 인터럽트 서비스를 제공한다. PTS 서비스란 8X196 내부에 인터럽트 서비스 루틴에 해당하는 부분을 마이크로 프로그램으로 내장하고 있다가 인터럽트 발생 시 모든 인터럽트 서비스를 소프트웨어의 도움없이 하드웨어적으로 처리하는 방법이다. PTS 서비스를 위해 인터럽트 벡터에 대응되는 PTS 벡터가 있다. PTS 벡터란 PTS 서비스를 수행하기 위해 필요한 정보를 담고 있는 PTS CB(Control Block)의 시작 주소를 담고 있는 메모리의 주소이며, 인터럽트 벡터의 크기가 같이 16비트이다.
도 1은 8X196이 제공하는 16개의 인터럽트에대한 인터럽트에 대한 인터럽트 벡터와 PTS 벡터를 도시한 도면으로서, 도 1에 표시된 값은 모두 헥사값으로 16진수이다.
도 1에 도시된 바와 같이, 인터럽트 벡터와 PTS벡터의 위치가 완전히 규칙적이지 못하기 때문에 인터럽트 서비스를 위해 벡터 값을 바로 알아내기가 쉽지 않다.
따라서, 이러한 인터럽트의 벡터를 생성하기 위해 종래에는 마이크로 프로그램 롬 내부의 일정한 영역을 할당하여 도 1과 같은 내용의 테이블을 저장해 놓고 이용하는 방법을 사용하였으나, 이 경우는 마이크로 프로그램 롬의 크기가 커지는 문제점이 있다.
인터럽트 벡터를 생성하기 위한 또다른 종래 기술로는 인터럽트 벡터를 계산하기 위한 전용 가산기를 구비하여 인터럽트 벡터를 생성하였는데, 이 경우 역시 별도의 전용 가산기를 구비해야 함으로써 하드웨어 낭비가 커지는 문제점이 있다. 또한, 전용 가산기를 사용하지 않더라도 산술 논리 연산 장치의 가산기를 사용할수 있으나, 이러한 경우 인터럽트 벡터를 계산하기 위하여 적어도 2 상태시간(state time), 즉 연산자를 로딩하는 데 1 상태시간, 그리고 계산 결과를 읽어 내는데 1 상태시간이 걸리기 때문에 처리 속도가 늦어지는 문제점이 있다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 최소의 하드웨어 주가로 1 상태시간 미만의 시간으로 벡터를 생성할 수 잇는 8X196 마이크로콘트롤러용 인터럽트 벡터 생성 장치를 제공하는데 그 목적이 있다.
도 1은 8X196이제공하는 16개의 인터럽트에 대한 인터럽트 벡터와 PTS 벡터를 도시한 도면.
도 2는 본 발명의 일실시에에 따른 인터럽트 벡터 생성회로도.
*도면의 주요 부분에 대한 설명
10 : PTS 처리부
20 : 멀티플렉서
30 : 인터럽트 번호 레지스터
40 : 인터럽트 벡터 레지스터
상기 목적을 달성하기 위한 본 발명은 소프트웨어 인터럽트 서비스 및 피티에스(PTS, Peripheral Transaction Server) 인터럽트 서비스를 제공하는 8X196 마이크로콘트롤러의 인터럽트 벡터 생성 장치에 있어서, 현재 처리해야 할 인터럽트의 번호를 저장하고 있는 4비트의 인터럽트 번호 저장수단; 상기 인터럽트 번호 저장 수단의 각 비트를 디코딩하여 해당 인터럽트의 피티에스(PTS) 서비스인 경우에 항상 ″0″의 값을, 소프트웨어 서비스와 마스크 불가능한 인터럽트 서비스의 경우에 상기 인터럽트 번호 저장수단의 최상위 비트를 선택적으로 출력하는 선택수단; 및 생성하고자하는 16비트의 인터럽트 벡터를 저장하고 있는 인터럽트 벡터 저장수단을 포함하여 이루어지며, 상기 인터럽트 벡터 저장수단은, 16비트 중 최상위 4비트(15;12])에 16진수 ″2″의 값을, 상기 최상위 4비트에 연속되는 그 다음 하위 4비트([11:8])에 연속되는 그 다음 하위 1비트 ([7])에 2진수 ″0″의 값을, 최하위 비트([0])에 2진수 ″0″의 값을 각각 저장하고, 상기 최하위 비트에 연속되는 그 다음 상위 4비트([4:1])에 상기 인터럽트 번호 저장 수단의 4비트 인터럽트 번호를 저장하고, 상기 상위 4비트([4:1])에 연속되는 그 다음 상위 1비트([5])에 상기 선택수단의 출력 신호를 저장하고, 상기 상위 1비트([5])의 그 다음 상위 1비트([6])에 상기 제어 수단의 출력 신호를 저장하고, 상기 상위 1비트([5])의 그 다음 상위 1비트([6])에 상기 제어 수단의 출력 신호를 저장하도록 구성된다.
이하, 첨부된 도면을 참조하여 본 발명의 일실시예를 상세히 살펴본다.
도 2는 본 발명의 일실시예에 따른 인터럽트 벡터 생성 회로도이다.
도 2에 도시된 바와 같이, 인터럽트 번호 레지스터(3)는 4비트의 레지스터로서 현재 인터럽트 서비스를 처리해야 할 인터럽트의 번호가 들어있다.
PTSSEL 레지스터는 15개 인터럽트에 대하여 PTS 서비스로 처리할 것인가의 여부를 결정하는 15비트 레지스터로서, 0번 비트가 '1'이면 INT 0이 PTS 서비스로 처리되고 1번 비트가 '1'이면 INT 1이 PTS 서비스로 처리됨을 각각 나타내며 나머지 비트들 역시 각각의 인터럽트가 PTS 서비스로 처리됨을 나타낸다. 여기서, PTSSEL 레지스터가 15개 인터럽트에 대해서만 PTS 서비스 처리 여부를 나타내는 것은, INT 15가 PTS 서비스로 처리 할 수 없는 마스크 불가능한 인터럽트이므로 PTSSEL 신호와 관계가 없기 때문이다.
본 발명이 생성하고자 하는 인터럽트 벡터의 값을 가지고 있는 인터럽트 벡터 레지스터(40)는 16비트로서, 상위 4비트 즉[15:12]비트는 항상 16진수 ″2″의 값을 가지고, [11:8]비트는 항상 16진수 ″0″의 값을, [7]비트는 ″0″, [6:5]비트는 PTS 처리부(10)의 출력신호(1)와, 상기 출력 신호를 선택신호로 하여 인터럽트 번호레지스터(30)의 최상위 비트와 ″0″의 값 중 하나를 선택하는 멀티플렉서(20)의 출력신호(2)를 저장하며, [4:1]비트는 인터럽트 번호 레지스터(30)의 4비트가 그대로 전달되어 저장된다. 마지막 비트[0]은 항상 ″0″의 값을 저장하고 있다.
PTS 처리부(10)는 인터럽트 번호 레지스터(30)의 4비트를 4X16 디코더에서 디코딩하고, 디코딩된 15비트를 PTSSEL 레지스터의 15비트와 각각 논리곱하여 논리곱한 결과를 논리합하여 출력신호(1)를 생성하도록 구성된다. 여기서, 디코딩된 16 비트 중 최상위비트는 플로팅된 상태로 두는 데, 이것은 INT 15에 대해 PTS 서비스가 불가능하기 때문에 PTS 처리부를 거칠 필요가 없기 때문이다. 현재 인터럽트 서비스를 처리해야 하는 인터럽트가 PTS 서비스인 경우에는 항상 PTS 처리부(10)는 항상 ″1″의 값을 출력하고, 소프트웨어 서비스와 INT 15인 경우는 항상 ″0″의 값을 출력한다.
멀티플렉서(20)는 상기 PTS 처리부(10)에서 출력된 값을 선택신호로 하여, PTS 서비스인 경우에는 항상 ″0″의 값을 내보내고, 소프트웨어 서비스와 INT15인 경우는 인터럽트 번호 레지스터(30)의 최상위 비트를 출력으로 내보내도록 구성되어 진다.
본 발명의 동작을 살펴보면, 먼저 도 1에서 벡터를 3그룹으로 나누어 소프트웨어 서비스의 경우 INT 0 ~ INT 7을 첫 번째 그룹으로, INT 8 ~ INT 15까지를 두 번째 그룹으로, PTS 서비스를 위한 벡터들을 세 번째 그룹으로 나눈다.
첫 번째 그럼 즉 INT 0 ~ INT 7 중의 하나가 소프트웨어 서비스를 요구했을 경우의 벡터 생성 과정을 살펴본다. INT 1이 현재 처리해야 할 인터럽트이고, 소프트웨어 서비스를 요구한 경우 인터럽트 번호 레지스터(30)에는 0001B가 저장된다. 그리고, 소프트웨어 서비스를 요구하였기 때문에 PTSSEL 레지스터의 1번 비트가 ″0″이고, PTS 처리부(10)의 출력신호(1)의 값도 ″0″이 된다. 따라서, 인터럽트 벡터 레지스터(40)의 [6]비트가 ″0″의 값으로 저장된다. 그리고, 멀티플렉서(20)에 의해 선택되는 값은 인터럽트 번호 레지스터(30)의 최상위비트이고 그 값은 ″0″이다. 결국, 이러한 생성 과정을 통해 인터럽트 벡터 레지스터(40)에 최종 저장되는 벡터는 2002H이다. 이 값은 도 1의 INT 1의 인터럽트 벡터와 일치한다.
다음으로, 두 번째 그룹, 즉 INT8 ~ INT15 중의 하나가 소프트웨어 서비스를 요구했을 경우의 벡터 생성 과정을 살펴본다. 일례로, INT 9가 현재 처리해야 할 인터럽트이고 소프트웨어 서비스를 요구한 경우일때 인터럽트 번호 레지스터(30)에는 1001B가 저장된다. 그리고, 소프트웨어 서비스를 요구하였기 때문에 PTSSEL레지스터의 9번 비트가 ″0″이고, PTS 처리부(10)의 출력신호(1)의 값도 ″0″이 된다. 따라서, 인터럽트 벡터 레지스터(40)의 [6]비트가 ″0″의 값으로 저장된다. 멀티플렉서(20)에 의해 선택되는 값은 인터럽트 번호 레지스터(30)의 최상위 비트이고 그값은 ″1″이다. 결국 이러한 생성 과정을 통해 인터럽트 벡터 레지스터(40)에 최종 저장되는 벡터는 2032H이며, 이 값은 도 1의 INT 9 인터럽트 벡터와 일치한다.
마지막으로, 세 번째 그룹 즉 INTO∼INT14 중의 하나가 PTS 서비스를 요구했을 경우의 벡터 생성 과정을 살펴본다. 일례로, INT 8이 PTS 서비스를 요구한 경우 인터럽트 번호 레지스터(30)에 1000B가 저장되고 PTSSEL 레지스터의 8번 비트가 ″1″이 된다. 따라서, 인터럽트 벡터 레지스터(40)의 [6]비트는 ″1″이 된다. 그리고, 멀티플렉서(20)에 의해 ″0″이 선택되어 인터럽트 벡터 레지스터(40)에 최종 저장되는 벡터는 2050H로 도1의 INT 8 PTS 벡터값과 일치한다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지시을 가진 자에게 있어 명백할 것이다.
상기와 같이 이루어지는 본 발명은 인터럽트 벡터를 생성함에 있어, 종래의 롬 내부에 벡터 테이블을 저장하는 방식에 비해 롬 크기를 줄일 수 있고, 전용 가산기를 이용하는 경우에 비하여 하드웨어를 크게 줄였다. 또한, 산술 논리 연산장치의 가산기를 이용하는 경우에 비하여 수행 시간을 단축 시킬 수 있어 인터럽트 벡터를 생성함에 있어 보다 나은 성능 향상을 가져오는 효과가 있다.

Claims (3)

  1. 소프트웨어 인터럽트 서비스 및 피티에스(PTS, Peripheral transaction Server)인터럽트 서비스를 제공하는 8X196 마이크로콘트롤러의 인터럽트 벡터 생성 장치에 있어서,
    현재 처리해야 할 인터럽트의 번호를 저장하고 있는 4비트의 인터럽트 번호 저장수단;
    상기 인터럽트 번호 저장수단의각 비트를 디코딩하여 해당 인터럽트의 피티에스(PTS) 서비스 요청 정보에 따라 PTS 서비스 시의 인터럽트 벡터 생성을 제어하는 제어 수단;
    상기 제어 수단의 출력 신호에 응답하여 피티에스(PTS) 서비스인 경우에 항상 ″0″의 값을, 소프트웨어 서비스와 마스크 불가능한 인터럽트 서비스의 경우에 상기 인터럽트 번호 저장수단의 최상위 비트를 선택적으로 출력하는 선택수단; 및
    생성하고자하는 16비트의 인터럽트 벡터를 저장하고 있는 인터럽트 벡터 저장수단을 포함하여 이루어지며,
    상기 인터럽트 벡터 저장수단은,
    16비트 중 최상위 4비트([15;12])에 16진수 ″2″의 값을, 상기 최상위 4비트에 연속되는 그 다음 하위 4비트([11;8])에 16진수 ″0″의 값을, 상기 하위 4비트 ([11:8])에 연속되는 그 다음 하위 1비트 ([7])에 2진수 ″0″의 값을, 최하위 비트 ([0])에 2진수 ″0″의 값을 각각 저장하고,
    상기 최하위 비트에 연속되는 그 다음 상위 4비트 ([4:1])에 상기 인터럽트 번호 저장수단의 4비트 인터럽트 번호를 저장하고,
    상기 상위 4비트([4:1])에 연속되는 그 다음 상위 1비트([5])에 상기 선택수단의 출력 신호를 저장하고,
    상기 상위 1비트([5])의 그 다음 상위 1비트([60}에 상기 제어 수단이 출력 신호를 저장하도록 구성됨을 특징으로 하는 8X196 마이크로콘트롤러용 인터럽트 벡터 생성 장치
  2. 제 1 항에 있어서, 상기 제어 수단은,
    마스크 불가능한 인터럽트를 제외한 나머지 15개 인터럽트에 대한 피티에스(PTS) 서비스 요청 정보를 저장하고 있는 피티에스(PTS) 정보 저장수단;
    상기 인터럽트 번호 저장수단으로부터 출력되는 4비트의 인터럽트 번호를 16 비트로 디코딩하는 디코딩 수단;
    상기 피티에스(PTS) 정보 저장수단의 15비트와 상기 디코딩 수단의 최상위 비트를 제외한 나머지 15비트를 각각 논리곱하는 다수의 논리곱 수단; 및
    상기 다수의 논리곱 수단으로부터 출력되는 신호들을 논리합하는 논리합 수단
    을 포함하여 이루어지는 8X196 마이크로콘트롤러용 인터럽트 벡터 생성 장치.
  3. 제 2 항에 있어서, 상기 디코딩 수단은,
    최상위 비트를 플로팅하여 출력하는 8X196 마이크로콘트롤러용 인터럽트 벡터 생상 장치.
KR1019970027890A 1997-06-26 1997-06-26 8x196마이크로콘트롤러용인터럽트벡터생성장치 KR100284312B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970027890A KR100284312B1 (ko) 1997-06-26 1997-06-26 8x196마이크로콘트롤러용인터럽트벡터생성장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970027890A KR100284312B1 (ko) 1997-06-26 1997-06-26 8x196마이크로콘트롤러용인터럽트벡터생성장치

Publications (2)

Publication Number Publication Date
KR19990003927A KR19990003927A (ko) 1999-01-15
KR100284312B1 true KR100284312B1 (ko) 2001-03-02

Family

ID=65987053

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970027890A KR100284312B1 (ko) 1997-06-26 1997-06-26 8x196마이크로콘트롤러용인터럽트벡터생성장치

Country Status (1)

Country Link
KR (1) KR100284312B1 (ko)

Also Published As

Publication number Publication date
KR19990003927A (ko) 1999-01-15

Similar Documents

Publication Publication Date Title
US5758115A (en) Interoperability with multiple instruction sets
KR100533296B1 (ko) 리드/모디파이/라이트 유닛을 갖는 시스템
JPS60159941A (ja) 多重レベル優先順位マイクロ割込みコントローラ
EP0142982B1 (en) Microprocessor interrupt system
JPS6224326A (ja) デ−タ処理装置
US4967339A (en) Operation control apparatus for a processor having a plurality of arithmetic devices
KR100284312B1 (ko) 8x196마이크로콘트롤러용인터럽트벡터생성장치
US4975839A (en) Instruction decode method and arrangement suitable for a decoder of microprocessors
JPS6041138A (ja) 割込み制御装置
JPH04333141A (ja) 情報処理装置
US6795911B1 (en) Computing device having instructions which access either a permanently fixed default memory bank or a memory bank specified by an immediately preceding bank selection instruction
JPH1091430A (ja) 命令解読装置
JPS6310445B2 (ko)
JPH056281A (ja) 情報処理装置
JP2002312005A (ja) プログラマブルコントローラ
JPH05250269A (ja) メモリアクセス方式および情報処理装置
JPH1020959A (ja) 低消費電力マイクロプロセッサ
JPH0128416B2 (ko)
KR950007937B1 (ko) 피엘씨 게이트 어레이의 내부 레지스터 운용회로
JPH03288228A (ja) 情報処理装置
CA1130009A (en) Microinstruction logic means
JPH056280A (ja) 割り込み制御方式
JPS6131895B2 (ko)
JPS60105048A (ja) マイクロプログラム制御方式
JPH036705A (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: 20051118

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee