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

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

Info

Publication number
KR19990003927A
KR19990003927A KR1019970027890A KR19970027890A KR19990003927A KR 19990003927 A KR19990003927 A KR 19990003927A KR 1019970027890 A KR1019970027890 A KR 1019970027890A KR 19970027890 A KR19970027890 A KR 19970027890A KR 19990003927 A KR19990003927 A KR 19990003927A
Authority
KR
South Korea
Prior art keywords
interrupt
pts
bits
interrupt vector
value
Prior art date
Application number
KR1019970027890A
Other languages
English (en)
Other versions
KR100284312B1 (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

Landscapes

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

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야
마이크로콘트롤러.
2. 발명이 해결하고자 하는 기술적 과제
종래의 롬 테이블 방법의 문제점인 롬 크기가 커진다는 문제점을 해결하고, 전용 가산기를 사용하는 경우의 하드웨어 낭비의 문제점을 해결하며, 산술 논리 연산 장치의 가산기를 이용하는 경우의 수행 시간 지연의 문제점을 해결한 인터럽트 벡터 생성 장치를 제공하고자 함.
3. 발명의 해결 방법의 요지
최소한의 디지털 논리 회로만으로 인터럽트 벡터 및 PTS 벡터를 생성해 낼 수 있도록하여, 최소의 하드웨어 추가로 1 상태시간 미만의 시간으로 벡터를 생성할 수 있는 8X196 마이크로콘트롤러용 인터럽트 벡터 생성 장치를 제공하고자 함.
4. 발명의 중요한 용도
8X196 마이크로콘트롤러 호환용칩 설계에 이용됨.

Description

8X196 마이크로콘트롤러용 인터럽트 벡터 생성 장치.
본 발명은 MCU(Micro Controller Unit)의 인터럽트 관련 장치로서, MCU 설계 뿐 아니라 MPU(Micro Processor Unit)의 설계에서도 응용될 수 있다.
인터럽트 요청이란 MCU가 정상적인 프로그램을 수행하는 도중 내부 혹은 외부에서 긴급하게 처리해야 하는 일이 발생했을 경우 MCU에게 이러한 상황을 알리고 MCU가 이 일에 대하여 적절한 처리를 해주기를 요구하는 것을 말한다. 이러한 인터럽트 요청이 있을 때 MCU가 이를 인지하고 수행 중이던 정상적인 프로그램을 잠시 멈춘 다음 인터럽트 요청에 대한 적절한 조치를 취한 후 다시 수행 중이던 프로그램을 계속 수행하는 전제의 과정을 인터럽트 서비스라고 한다.
인터럽트 벡터란 각 인터럽트들에 대한 인터럽트 서비스 루틴의 시작 주소를 담고 있는 메모리 주소를 말하며, 8X196에서는 인터럽트 서비스 루틴의 시작 주소가 16비트이기 때문에 인터럽트 벡터의 크기도 16비트이다.
대부분의 MCU가 인터럽트 서비스를 하는 방법은 인터럽트 서비스 루틴의 시작 주소를 인터럽트 벡터 영역에 저장해 두었다가 인터럽트가 발생하면 적절한 서비스 루틴을 부르는 것으로, 이 방법을 소프트웨어 인터럽트 서비스라고 한다.
8X196의 경우 소프트웨어 인터럽트 서비스 외에 PTS(Peripheral Transaction Server)서비스라는 인터럽트 서비스를 제공 한다. PTS 서비스란 8X196내부에 인터럽트 서비스 루틴에 해당하는 부분을 마이크로 프로그램으로 내장하고 있다가 인터럽트 발생 시 모든 인터럽트 서비스를 소프트웨어의 도움없이 하드웨어적으로 처리하는 방법이다. PTS 서비스를 위해 인터럽트 벡터에 해당하는 것으로 PTS벡터가 있다. PTS벡터란 PTS 서비스를 수행하기 위해 필요한 정보를 담고 있는 PTS CB(Control Block)의 시작 주소를 담고 있는 메모리의 주소이다. 인터럽트 벡터의 크기와 같이 16비트이다.
도1은 8X196이 제공하는 16개의 인터럽트에 대한 인터럽트 벡터와 PTS 벡터로서, 도1에 표시된 값은 모두 헥사값으로 16진수이다. 도1에서 보는 바와 같이 벡터의 위치가 완전히 규칙적이지 못하기 때문에 벡터 값을 바로 알아내기가 쉽지 않다.
종래에는 인터럽트의 벡터를 생성하기 위해서 마이크로 프로그램 롬 내부의 일정한 영역을 할당하여 도1과 같은 내용의 테이블을 저장해 놓고 이용하는 방법을 사용하였으나 이 경우는 마이크로 프로그램 롬의 크기가 커지는 문제점이 있다.
또다른 종래의 구현방법으로는 전용 가산기를 이용하는 방법으로, 인터럽트 벡터를 계산하기 위한 전용 가산기를 추가하는 것은 하드웨어 비용 측면에서 낭비가 많은 또다른 문제점이 있다. 또한 전용 가산기를 사용하지 않더라도 산술 논리 연산 장치의 가산기를 사용할 수 있으나, 이러한 경우 인터럽트 벡터를 계산하기 위하여 적어도 2 상태시간(state time), 즉 연산자를 로딩하는 데 1 상태시간, 그리고 계산 결과를 읽어 내는데 1 상태시간이 걸리기 때문에 처리 속도가 늦어지는 문제점이 있다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 종래의 롬 테이블 방법의 문제점인 롬 크기가 커진다는 문제점을 해결하고, 전용 가산기를 사용하는 경우의 하드웨어 낭비의 문제점을 해결하며, 산술 논리 연산 장치의 가산기를 이용하는 경우의 수행 시간 지연의 문제점을 해결하기 위해 최소한의 디지털 논리 회로만으로 인터럽트 벡터 및 PTS 벡터를 생성해 낼 수 있도록하여, 최소의 하드웨어 추가로 1 상태시간 미만의 시간으로 벡터를 생성할 수 있는 8X196 마이크로콘트롤러용 인터럽트 벡터 생성 장치를 제공하는 데 그 목적이 있다.
도 1은 8X196의 인터럽트 벡터 및 PTS 벡터,
도 2는 본 발명의 인터럽트 벡터 생성회로.
* 도면의 주요부분에 대한 부호의 설명
10 : PTS 처리부
20 : 멀티플렉서
30 : 인터럽트 번호 레지스터
40 : 인터럽트 벡터 레지스터
상기 목적을 달성하기 위한 본 발명은 8X196 마이크로콘트롤러의 인터럽트 벡터 생성 장치에 있어서, 현재 처리해야할 인터럽터의 번호를 저장하고 있는 인터럽트 번호 저장수단, 상기 인터럽트 번호 저장수단의 각 비트를 디코딩하여 해당 인터럽트의 피티에스(PTS) 처리 여부를 판정하는 피티에스(PTS) 처리수단, 상기 피티에스(PTS) 처리수단에서 출력된 값을 선택신호로 하여, 피티에스(PTS) 서비스인 경우에는 항상 0의 값을 내보내고, 소프트웨어 서비스와 마스크 불가능한 인터럽트는 상기 인터럽트 번호 저장수단의 최상위 비트를 출력으로 내보내는 선택수단 및 상기 수단으로부터 출력되어진, 생성하고자하는 인터럽트 벡터의 값을 저장하고 있는 인터럽트 벡터 저장수단을 포함하여 이루어진 8X196 마이크로콘트롤러용 인터럽트 벡터 생성 장치를 포함하여 이루어진다.
이하, 첨부된 도면을 참조하여 본 발명을 상세히 살펴본다.
도2는 본 발명의 인터럽트 벡터 생성 회로로서, 다음과 같이 구성된다.
인터럽트 번호 레지스터(30)는 4비트의 레지스터로서 지금 인터럽트 서비스를 처리해야 할 인터럽트의 번호가 들어있다.
PTSSEL 레지스터는 15비트 레지스터로서 0번 비트가 1이면 INT 0가 PTS 서비스로 처리되고 1번 비트가 1이면 INT 1이 PTS 서비스로 처리됨을 나타내는 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비트를 4×16 디코더를 통과시켜 디코딩된 15비트를 PTSSEL 레지스터의 15비트와 각각 앤딩(ANDING)하여 앤딩한 결과를 오아링(ORING)하여 출력신호(1)를 생성하도록 구성된다. 여기서 디코딩된 16비트 중 최상위비트는 플로팅된 상태로 두는 데, 이것은 INT 15가 PTS 서비스가 불가능하기 때문에 PTS 처리부를 거칠 필요가 없기 때문이다. 현재 인터럽트 서비스를 처리해야하는 인터럽트가 PTS 서비스인 경우에는 항상 PTS 처리부(10)는 항상 1의 값을 출력하고, 소프트웨어 서비스와 INT 15인 경우는 항상 0의 값을 출력한다.
멀티플렉서(20)는 상기 PTS 처리부에서 출력된 값을 선택신호로 하여, PTS 서비스인 경우에는 항상 0의 값을 내보내고, 소프트웨어 서비스와 INT 15인 경우는 인터럽트 번호 레지스터(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 인터럽트 벡터와 일치한다.
세 번째 그룹 즉 INT0 ∼ INT14 중의 하나가 PTS 서비스를 요구했을 경우 벡터 생성 과정은, 예로써 INT 8이 PTS 서비스를 요구한 경우에는 인터럽트 번호 레지스터(30)에 1000B가 저장되고 PTSSEL_8이 1이다. 따라서 인터럽트 벡터 레지스터(40)의 [6]비트는 1이 된다. 멀티플렉서(20)에 의해 선택되는 값은 0이고, 따라서 상기와 같이 생성되어 인터럽트 벡터 레지스터(40)에 최종 저장되는 벡터는 2050H로 도1의 INT 8 PTS 벡터값과 일치한다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
상기와 같이 이루어지는 본 발명은 인터럽트 벡터를 생성함에 있어, 종래의 롬 내부에 벡터 테이블을 저장하는 방식에 비해 롬 크기를 줄일 수 있고, 전용 가산기를 이용하는 경우에 비하여 하드웨어를 크게 줄였다. 또한, 산술 논리 연산장치의 가산기를 이용하는 경우에 비하여 수행 시간을 단축 시킬 수 있어 인터럽트 벡터를 생성함에 있어 보다 나은 성능향상을 가져오는 효과가 있다.

Claims (10)

  1. 8X196 마이크로콘트롤러의 인터럽트 벡터 생성 장치에 있어서, 처리해야할 인터럽터의 번호를 저장하고 있는 인터럽트 번호 저장수단, 상기 인터럽트 번호 저장수단의 각 비트를 디코딩하여 해당 인터럽트의 피티에스(PTS) 처리 여부를 판정하는 피티에스(PTS) 처리수단, 상기 피티에스(PTS) 처리수단에서 출력된 값을 선택신호로 하여, 피티에스(PTS) 서비스인 경우에는 항상 0의 값을 내보내고, 소프트웨어 서비스와 마스크 불가능한 인터럽트는 상기 인터럽트 번호 저장수단의 최상위 비트를 출력으로 내보내는 선택수단 및 상기 수단으로부터 출력되어진, 생성하고자하는 인터럽트 벡터의 값을 저장하고 있는 인터럽트 벡터 저장수단을 포함하여 이루어지는 8X196 마이크로콘트롤러용 인터럽트 벡터 생성 장치.
  2. 제 1 항에 있어서, 상기 피티에스(PTS) 처리수단은 마스크 불가능한 인터럽트를 제외한 나머지 15개 인터럽트에 대하여 각각을 피티에스(PTS) 서비스로 처리할 것인가의 정보를 저장하고 있는 피티에스(PTS) 저장수단, 상기 인터럽트 번호 레지스터로부터의 4비트 입력을 16비트로 디코딩하는 4×16 디코딩 수단, 상기 피티에스(PTS) 저장수단의 15비트 각각과 상기 디코딩 수단의 15비트 각각을 앤딩하는 15개의 논리곱수단 및 상기 15개의 논리곱수단으로부터의 출력을 함께 오아링하는 15입력 논리합수단을 포함하여 이루어지는 8X196 마이크로콘트롤러용 인터럽트 벡터 생성 장치.
  3. 제 2 항에 있어서, 상기 4× 16 디코딩 수단은 16개의 출력단 중 최상위 한 비트를 플로팅하는 8X196 마이크로콘트롤러용 인터럽트 벡터 생성 장치.
  4. 제 1 항에 있어서, 상기 인터럽트 벡터 저장수단은 상위 4비트 [15:12]비트에 항상 16진수 2의 값을 저장하는 8X196 마이크로콘트롤러용 인터럽트 벡터 생성 장치.
  5. 제 1 항에 있어서, 상기 인터럽트 벡터 저장 수단은 [11:8]비트에 항상 16진수 0의 값을 저장하는 8X196 마이크로콘트롤러용 인터럽트 벡터 생성 장치.
  6. 제 1 항에 있어서, 상기 인터럽트 벡터 저장 수단은 [7]비트에 항상 0의 값을 저장하는 8X196 마이크로콘트롤러용 인터럽트 벡터 생성 장치.
  7. 제 1 항에 있어서, 상기 인터럽트 벡터 저장 수단은 [6:5]비트에 상기 선택수단의 출력신호를 저장하는 8X196 마이크로콘트롤러용 인터럽트 벡터 생성 장치.
  8. 제 1 항에 있어서, 상기 인터럽트 벡터 저장 수단은 [4:1]비트에 상기 인터럽트 번호 레지스터의 4비트가 그대로 전달되어 저장되는 8X196 마이크로콘트롤러용 인터럽트 벡터 생성 장치.
  9. 제 1 항에 있어서, 상기 인터럽트 벡터 저장 수단은 [0]비트에 항상 0의 값을 저장하는 8X196 마이크로콘트롤러용 인터럽트 벡터 생성 장치.
  10. 제 1 항에 있어서, 상기 수단들에서 소프트웨어 서비스의 인터럽트 벡터와 피티에스(PTS) 서비스의 피티에스(PTS) 벡터를 모두 생성할 수 있는 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 true KR19990003927A (ko) 1999-01-15
KR100284312B1 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
KR100284312B1 (ko) 2001-03-02

Similar Documents

Publication Publication Date Title
CA1264493A1 (en) Digital computer with parallel processors
JPS62243058A (ja) マルチプロセツサシステムの割込制御方法
EP2077503A1 (en) Interrupt control device of small hardware size which deals with much interrupt processing flexibility
GB2216306A (en) Load and synchronize computer architecture and process
EP0403729B1 (en) Digital-signal processing apparatus
US4819211A (en) Microcomputer system for high speed address translation
US5390306A (en) Pipeline processing system and microprocessor using the system
US5748518A (en) Data processing divider
KR19990003927A (ko) 8x196 마이크로콘트롤러용 인터럽트 벡터 생성 장치
US4740892A (en) Microcomputer having peripheral functions
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
JPS6310445B2 (ko)
JPH056281A (ja) 情報処理装置
JP2002312005A (ja) プログラマブルコントローラ
US5524221A (en) Next instruction pointer calculation system for a microcomputer
JPS6152747A (ja) マイクロプロセツサ
KR900015005A (ko) 링 축소 로직 매카니즘
JP2845780B2 (ja) データ転送制御回路
JP2568760B2 (ja) 積和演算回路
JPS59111557A (ja) アドレス変換装置
JPH0156415B2 (ko)
JP2618703B2 (ja) プログラマブルシーケンスコントローラの高速演算処理方式
JPH036705A (ja) シーケンスコントローラ
JPH113225A (ja) 情報処理装置
JPH05224950A (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