KR19990011284A - 데이터 처리장치의 인터럽트 처리장치 및 방법 - Google Patents
데이터 처리장치의 인터럽트 처리장치 및 방법 Download PDFInfo
- Publication number
- KR19990011284A KR19990011284A KR1019970034325A KR19970034325A KR19990011284A KR 19990011284 A KR19990011284 A KR 19990011284A KR 1019970034325 A KR1019970034325 A KR 1019970034325A KR 19970034325 A KR19970034325 A KR 19970034325A KR 19990011284 A KR19990011284 A KR 19990011284A
- Authority
- KR
- South Korea
- Prior art keywords
- interrupt
- priority
- processing apparatus
- generated
- response
- Prior art date
Links
Classifications
-
- 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/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
- G06F13/26—Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
본 발명은 데이터처리 장치의 인티럽트 발생원의 우선순위를 자유로이 지정하여 처리할 수 있도록 한 데이터 처리 장치의 인터럽트 처리 장치 및 방법에 관한것이다.
이를 위해서 레지스터에 우선순위를 지정할 수 있는 데이터를 프로그램하여 이 데이터값에 기초하여 멀티플렉서를 통해 입력되는 복수의 인터럽트 발생원으로부터의 인터럽트 요청 신호를 선별하여 우선순위를 갖도록 하여 데이터 장치의 중앙처리장치에 인터럽트 요청 신호 및 벡터를 제공한다. 이때, 경합되는 하위 우선순위의 인터럽트는 차단되도록 구성되고, 나중에 처리되도록 하고 있다. 이를 위해서 본 발명에서는 복수의 인터럽트 발생원으로부터의 적어도 하나 이상의 요청에 응답하여, 우선순위를 선택 및 지정하는 우선순위 선택지정 유닛과, 우선순위 선택지정 유닛에 동작적으로 결합되어, 우선순위를 판단하여 발생된 것 중 최우선순위 인터럽트 요청을 생성하는 우선순위 해독부로 구성된다.
Description
본 발명은 데이터 처리 장치의 인터럽트 처리에 관한 것으로, 특히 인터럽트 발생원의 우선순위를 자유로이 지정하여 처리할 수 있도록 한 데이터 처리 장치의 인터럽트 처리 장치 및 방법에 관한 것이다.
일반적으로, 데이터 처리 장치는 읽어들인 응용 프로그램 등을 수행시, 보다 우선적으로 다른 작업을 수행하기 위한 인터럽트 처리 기능을 갖는다.
이러한 인터럽트 처리 기능은 현재 수행되는 프로그램을 일시 중단하고 우선적으로 처리될수 있게 하는 것으로, 통상은 인터럽트될 필요가 있는 선정된 많은 인터럽트 발생원에 대해 각각에 우선순위가 할당되어 있다.
따라서, 인터럽트 발생은 임의로 발생하더라도 소정의 우선순위 순서대로 처리되는 것이다.
상기 언급한 인터럽트 발생원들로부터 발생한 요청된 인터럽트를 우선순위에 맞게 처리할 수 있게 하는 기존에 제공된 인터럽트 콘트롤러의 원리에 대해서 다음에 설명한다.
도 1(a)는 단방향의 우선순위를 갖는 경우, 고정형(fixed) 모드를 예시한 것이며, 도 1(b)는 순환형(rotation) 모드의 경우를 에시한 것이다. 도 1(a)에서, 다수의 인터럽트 발생원은 참조부호 IRS1∼IRSN으로 표기되어 있고 이해를 돕기 위해서 각각은 숫자로 1∼N으로 표기하여 1은 최우선 처리 대상의 인터럽트를 나타내고 N은 최하위 처리 대상의 인터럽트를 나타낸다. 고정형 모드는 도시된 바와 같이 각각의 인터럽트 발생원에 대해서,1 내지 N으로 우선순위가 완전히 고정되어 있는 경우를 뜻한다.
따라서, N개의 인터럽트 발생원 중 발생된 어느 하나는 우선적으로 처리되지만 예를 들어 2개가 동시에 발생된 경우 정해진 우선순위에 따라서 처리된다.
도1(B)는 순환형 모드의 경우를 이해를 돕기위해 도시한 것으로 N개의 인터럽트 발생원(IRS1∼IRSN)에 우선순위가 도 1(a)와 같이 고정적으로 할당되는 것이 아니고 N개 중 어느 하나가 최우선 순위로 할당될 때 나머지가 차례대로 하위 우선순위로 할당되게 한 것으로, 도 1(a)의 경우보다 융통성이 부여되어 있다.
도면에는 화살표로 표시된 바대로 시계방향으로 우선순위 순서가 순차적으로 정해지는 것을 나타내고 있으나, 반시계 방향도 가능하다.
시계방향에서, 만약 M번째 인터럽트(IRSM)가 최고 우선순위를 갖도록 지정하였다면, MM+1M+2···N12··M-1 (각각의 숫자는 각각의 인터럽트 발생원을 나타냄)의 순서대로 우선순위를 갖는다.
이와 같이 단방향의 우선순위를 처리하는 예 외에도, 도2에 도시한 바와 같이, 우선순위를 갖지 않는 경우가 제공 되어 있다.
도시된 바와 같이, 다수의 인터럽트 발생원(IRS1∼IRSN)으로부터 처리될 필요성의 발생에 따라 인터럽트가 요청되면 인터럽트 마스크 레지스터(IMR)를 거쳐 현재 인터럽트 요청이 있음을 데이터 처리 장치 내에 포함되는 중앙 처리 장치(CPU)로 인터럽트 요청신호(IRQ)가 보내지면, 이에 응답하여 CPU에서는 인터럽트 상태 레지스터(ISR)를 읽어 어느 인터럽트가 발생되는가를 인지한다.
이러한 구조의 인터럽트 콘트롤러의 경우에, CPU는 각 인터럽트 발생원에 대한 우선순위 부여를 행하기 때문에, 보다 융통성을 갖게 한다.
이러한 기존의 인터럽트 콘트롤러를 구현한 것으로서, 이들 종래의 원리가 적용된 상업적으로 얻을 수 있는 인텔사의 'Inte1 8259'가 제공되고 있다. 그러나, 이에 대한 보다 자세한 것은 제공되는 데이터 자료에 잘 나타나 있으므로 생략한다.
앞에서 서술한 도1의 단방향 우선순위를 갖는 인터럽트 콘트롤러의 경우 이 콘트롤러 설계자는 각 인터럽트 발생원의 우선순위를 사전에 평가 및 검토하여 어느것을 최우선순위 인터럽트 발생원으로 할 것인지 등을 판단해야 한다. 이 결과에 따라 각 인터럽트 발생원에 우선순위를 부여하고, 필요한 콘트롤러를 설계 및 제작하기 때문에, 우선순위의 변경이 필요해지면 하드웨어의 변경이 수반되는 문제가 있다.
또한, 도2와 같이 무순위 인터럽트 콘트롤러의 경우에는 각 인터럽트 발생원의 우선순위를 부여하는 작업을 CPU가 행하므로 유연성 면에서 바람직하나, 인터럽트 발생원의 수가 많은 경우에는 우선순위의 판별을 수행하는 프로그램의 길이와 수행시간이 증가하여 CPU의 로드가 과중하게 되므로 이에 따라 인터럽트 기능을 포함하고 있는 시스템 전체의 성능을 저하시키는 요인으로 작용한다.
따라서, 본 발명의 목적은 이러한 문제를 해결하기 위한 것으로, 인터럽트의 우선순위를 자유롭게 지정할 수 있게 한 인터럽트 콘트롤러를 제공하는 것이다.
본 발명의 또 다른 목적은 이미 구현된 하드웨어 변경없이 각 인터럽트 발생원의 우선순위를 조정할 수 있게 한 인터럽트 콘트롤러를 제공하는 것이다.
더욱이, 본 발명의 또 다른 목적은 종래의 기술과 같이 설계시 고려해야 하는 우선순위를 전혀 고려하지 않고도 시스템 설계를 할 수 있게 함으로써, 시스템 설계에 융통성과 기간의 단축 및 편의성을 제공하도록 한 인터럽트 콘트롤러를 제공하는 것이다.
도 1(a)는 종래 기술에 따른 데이터 처리 장치의 인터럽트 고정형 우선순위모드를 설명하고,
도 1b는 인터럽트 순환형 우선순위모드를 설명하는 도면.
도 2는 종래의 기술에 따른 우선순위가 없는 인터럽트 콘트롤러의 예를 도시한 도면.
도 3은 본 발명에 따른 자유 우선순위 설정가능한 인터럽트 콘트롤러에 대한 개략적인 블록도.
도 4는 도 3의 인터럽트 우선순위 선택지정부에 대한 구성을 나타낸 블록도.
도 5는 도 4의 인터럽트 선택기에 대한 구체적인 구성예를 도시한 도면.
도 6는 도 3의 우선순위 해독부에 대한 구성을 나타낸 블록도.
도 7은 도 6의 마스크 블록의 구체적인 구성을 보인 도면.
도 8은 도 6의 우선순위 해독기에 대한 상세한 구성을 보인 도면.
도 9는 도 8의 블록(B1∼BN)의 구성을 보인 도면.
도 10은 인터럽트 발생원과 인터럽트 벡터간 대응관계의 예를 나타낸 도면.
도 11은 본 발명의 인터럽트 콘트롤러에 관련한 인터럽트 처리과정을 설명하는 타이밍도.
도 12는 본 발명의 인터럽트 콘트롤러에 관련한 2개의 이상의 인터럽트 처리 과정을 설명하는 타이밍도.
* 도면의 주요부분에 대한 부호의 설명
1 : 콘트롤러 2 : 데이터 버스
3 : 인터럽트 우선순위 선택 지정부 4 : 우선순위 해독부
5 : 소스 선택 레지스터 6 : N × 1 멀티플렉서
7 : 마스크 블록 8 : 우선순위 해독기
9 : 마스크 레지스터 10 : 인터럽트 벡터 엔코더
IRS1∼IRSN : 인터럽트 발생원 PS1∼PSN : 우선순위 선택기
1PIR∼NPIR : 인터럽트 신호 OR1∼ORN : OR 연산부
본 발명에 따라서, 상기 목적은 복수의 인터럽트 발생원으로부터 발생된 적어도 하나의 발생된 인터럽트에 대한 처리를 위한 인터럽트 콘트롤러에 있어서, 상기 복수의 인터럽트 발생원으로부터의 적어도 하나 이상의 요청에 응답하여, 우선순위를 선택 및 지정하는 우선순위 선택지정 수단; 및 상기 우선순위 선택지정 수단에 동작적으로 결합되어, 우선순위를 판단하여 발생된 것 중 최우선순위 인터럽트 요청을 생성하는 우선순위 해독부를 포함하는 데이터 처리 장치의 인터럽트 처리 장치에 의해서 달성된다.
본 발명의 목적에 따른 실시예에서 상기 목적은 복수의 인터럽트 발생원으로부터 발생된 적어도 하나의 발생된 인터럽트를 처리를 위한 데이터 처리 장치의 인터럽트 처리 장치에 있어서, 상기 복수의 인터럽트 발생원에 접속되어, 발생된 인터럽트중 하나를 선택하는 입력된 인터럽트의 선택수단; 상기 선택된 것이 소정의 우선순위와 일치하는가를 판별하여 일치될 때 인터럽트 요청을 생성하는 우선순위 판별수단; 상기 우선순위 판별수단에 응답하여 인터럽트 발생을 알리는 인터럽트 요청신호 발생수단; 상기 우선순위 판별수단에 응답하여 대응하는 인터럽트 벡터를 발생하는 인터럽트 벡터 엔코더; 및 상기 인터럽트 요청신호에 응답하여 상기 선택된 우선순위의 인터럽트의 인터럽트에 대해 마스킹 하는 수단을 포함하는 데이터 처리 장치의 인터럽트 처리 장치로 부터 구현된다.
또한, 본 발명의 또 다른 특성에 따른, 복수의 인터럽트 발생원으로부터 발생된 적어도 하나의 발생된 인터럽트를 처리를 위한 데이터 처리 장치와 인터럽트 처리 방법에 있어서는 상기 복수의 인터럽트 발생원으로부터 발생된 인터럽트중 하나를 선택하는 단계; 상기 선택묀 것이 소정의 우선순위와 일치하는가를 판별하여 일치될 때 인터럽트 요청을 생성하는 단계; 상기 인터럽트 요청 생성된 것에 응답하여 인터럽트 발생을 알리는 인터럽트 요청신호 발생 단계;상기 인터럽트 요청 생성된 것에 응답하여 대응하는 인터럽트 벡터를 발생하는 단계; 및 상기 인터럽트 요청신호에 응답하여 상기 선택된 우선순위의 인터럽트외의 인터럽트에 대해 마스킹 하는 단계를 포함하는 데이터 처리 장치의 인터럽트 처리 방법이 제공된다.
본 발명의 목적 및 특징은 첨부한 도면에 따라 취한 다음의 상세한 설명으로 부터 보다 쉽게 명백하게 될 것이다.
동일 또는 대응하는 구성요소 혹은 부분에 도면 전체를 통해 동일 참조부호를 할당하였다.
도3은 본 발명의 바람직한 실시예에 따른 개략직인 자유 우선순위 인터럽트 콘트롤러의 구성을 도시한 것이다.
본 콘트롤러는 도면에 포괄적으로 참조부호 1로서 표시되어 있고, 다수의 인터럽트 발생원(IRS1∼IRSN)이 동작적으로 결합되어 각각으로부터 발생되는 요청 신호를 수신하고, 이에 응답하여 처리된 결과로서, 인터럽트 요청신호(IRQ) 및 인터럽트 백터(IVECT)를 출력한다. 본 발명에 따른 인터럽트 콘트롤러(1)는 시스템에 포함된 데이터 버스(2)에 접속되어 이를 통해 데이터를 주고받는다.
본 발명에 따른 자유 우선순위 인터럽트 콘트롤러(1)는 도3에 도시한 바와 같이, 다수의 인터럽트 발생원에 결합되어 이로부터 요청을 수신하는 인터럽트 우선순위 선택 지정부(3) 및 이에 결합되어 우선순위를 해독하여 인터럽트 요청신호 및 인터럽트 벡터를 발생하는 우선순위 해독부(4)를 포함한다.
도시된 바와 같이, 본 발명에 따르면 인터럽트 발생원(IRS1∼ISRN)은 시스템 입장에서 전혀 우선순위를 갖고 있지 않다. 물론 인터럽트는 무작위로 임의의 시간에 발생되는 것이고, 본 발명에서 이를 발생하는 발생원에 대한 우선처리 부여는 사전에 할당되어 있지 않은 상태에서, 인터럽트 콘트롤러(1)의 우선순위 선택지정부(3)로 인가된다. 이 때 이 우선순위 선택지정부(3)에 의해서 가장높은 우선순위와 가장낮은 우선순위가 할당되고 이를 표시하는 신호가 발생되어 우선순위 해독부(4)로 인가되는 것이다.
우선순위 선택지정부(3)가 무우선순위 발생원의 요청신호를 받는 반면, 우선순위 해독부(4)는 우선순위가 지정된 인터럽트 신호를 수신한다. 우선순위 해독부(4)는 수신된 인터럽트 요청신호들의 우선순위를 판별하여 최우선 순위의 인터럽트를 중앙처리부, 혹은 CPU로 전달하고 이와 동시에 인터럽트가 서비스되는 동안 하위 인터럽트를 차단(masking)하는 기능을 갖는다. 만약 2개의 인터럽트가 발생원들로부터 요청된 때, 우선순위가 없이 콘트롤러(1)에 인가되는데, 우선순위 선택지정부(3)는 2개의 인터럽트에 대해 우선처리 순서를 지정한후, 우선순위 해독부(4)를 통해 시스템이 이를 처리하도록 하고, 이 동안에는 그하위 우선순위에 자리매김된 인터럽트 발생원에 대한 처리를 차단하게 하고, 상위우선순위 처리 후 처리되게 하는 것이다.
도3의 우선순위 선택지정부(3)에 대해서 보다 자세한 것을 도4 및 도5를 참조하여 이하 설명한다.
도4는 도3의 우선순위 선택지정부(3)에 대한 구체적인 실시예를 도시한 것이다.
우선순위 선택지정부(3)는 N개의 인터럽트 발생원에 대해 이들에 대응하여 적어도 N개의 우선순위 선택기(PS1∼PSN)을 갖는다. 각각의 우선순위 선택기에는 N개의 인터럽트 발생원으로부터 요청을 전달하는 경로들이 서로 접속되어 있다. 이를 나타내기 위해서 도4에는 구별이 되도록 굵은선으로 N개의 경로를 나타내었다.
이들 복수, 즉 N개의 신호를 받는 각각의 우선순위 선택기(PS1∼PSN)는 본 실시예에서 순차적으로 최우선순위의 제1 선택기(PS1)와 최하위 우선순위의 제N 선택기(PSN)로 정의된다. 각각의 선택기에는 N개의 인터립트 발생원 증 선택된 소정의 우선순위를 지정하는 우선순위 지정수단과, N개의 인터럽트 중에서 발생된 인터럽트를 지정된 것과 판단하여 해당 인터럽트 발생여부와 동시에 우선순위를 할당하여 우선순위가 할당된 인터럽트 발생을 알리는 인터럽트 발생 판별수단을 포함한다.
이와 같이 구성되므로, 각각의 선택기가 정해진 우선순위를 출력하도록 되어 있어도, 각각의 선택기의 판별수단에 대해서 어느 인터럽트 발생원을 그 우선순위에 할당할 것인지를 지정할 수 있어 자유 인터럽트 우선순위 지정이 달성되는 것이다.
따라서 본 발명은 발명의 목적인 이미 구현된 하드웨어 변경없이 각 인터럽트 발생원의 우선순위를 임의로 조정할 수 있게 하는 것이다.
상기 인터럽트 발생 판별수단은 더욱이, N개중 하나를 선택하는 입력된 인터럽트 선택기와, 선택된 것이 각 선택기마다 지정된 우선순위와 일치하는가를 판별하여 일치될 때 인터럽트 신호인 1PIR 내지 NPIR를 출력하는 우선순위 판별기를 포함할 수 있다.
여기서, 1PIR은 최우선순위를 나타내고 NPIR은 최하위 우선순위를 나타낸다.
예를 들어, 도4에서, 우선순위 3번째를 발생하는 제3 인터럽트 선택기(PS3)의 경우, m번째 인터럽트 발생원으로부터 인터럽트가 발생되었을 때 선택기내에 포함된 인터럽트 선택수단은 N개의 인터럽트 발생원 중 m번째 것을 선택하고, 현재 이것이 활성화되었으므로, 이를 우선순위 판별수단에 의해서 내정된 우선순위의 인터럽트 발생원, 즉 m과 일치하므로 이에 응답하여 인터럽트가 발생되었음을 알리며, 이를 3번째 우선순위로 알리는 것이다.
이 예의 경우, 제2 인터럽트 선택기(PS2)에도 마찬가지로 m번째 인터럽트 발생원으로부터의 요청신호가 입력되고 있지만, 제2 인터럽트 선택기(PS2) 내의 인터럽트 판별기에 내정된 2번째 우선순위에 대응하는 인터럽트 발생원과, 제2 인터럽트 선택기 내의 인터럽트 선택기가 선택된것과 일치하지 않기 때문에 제2 인터럽트 선택기의 출력은 유효하지 않다.
이와같이 나머지 선택기의 경우도 마찬가지로 적용되므로, 반복된 설명은 생략한다.
각각의 인터럽트 선택기(PS1∼PSN)를 구현하는 바람직한 실시예는 도5에 도시된 바와 같이 본 발명에 따르면, 임의로 발생된 인터럽트에 대해서 어느것인지 선택하여 내정된 우선순위에 대응하는 인터럽트일 때 해당 우선순위와 함께 인터럽트가 발생되었음을 통보하게 한다.
이를 실현하기 위해서, 도5와 같이 소스 선택 레지스터(5)와 N × 1 멀티플렉서(6)로 구성될 수 있다.
소스 선택 레지스터(5)에는 해당 우선순위에 할당된 인터럽트 발생원의 번호가 지정되고, 이 값에 따라서 멀티플렉서(6)의 입력(IR1∼IRN) 중에서 한 신호가 출력으로 선택된다. 인터럽트처리 우선순위의 할당은 각각의 선택기 내의 각각의 레지스터를 통해 자유로 할당할 수 있다.
그러나, 이 분야에 관련된 자는 도4에 기초하여 상기 설명된 바로부터 여러가지로 실시할 수 있고, 이것을 본 발명에 속하는 것임에 유념한다.
이와 같이, 지정된 우선순위를 갖고, 인터럽트 발생을 알리는 우선순위 지정 선택기로부터의 출력에 응답하여 인터럽트 요청신호 및 벡터를 발생하는 우선순위 해독부에 대해서 다음에 설명한다.
도3의 우선순위 해독부(4)에 대한 구체적인 구성예를 도6에 도시하였다. 우선순위 해독부(4)는 우선순위가 지정된 각각의 인터럽트 신호를 받는 마스크 블록(7)과 이에 출력을 받는 우선순위 해독기(8)로 구성된다.
여기서, 마스크 블록(7)은 도7에 도시한 바와 같이, 우선순위가 지정된 각각의 인터럽트 신호(1PIR∼NPIR)와 마스크 레지스터(9)로부터 오는 신호 각각을 OR 연산하는 OR 연산부(OR1∼ORN)로 구성된다.
마스크 블록(7)의 출력(I1∼IN)은 우선순위 해독기(8)에 인가되는데, 우선순위 해독기(8)는 이에 응답하여 인터럽트 요청신호(IRQ)와 관련 벡터를 출력하게 된다.
CPU(도시없음)는 인터럽트 요청신호 및 인터럽트 벡터를 받아들이도록 되어있어, 인터럽트 발생에 따른 요구되는 신호가 만족하게 출력됨을 알 수 있다.
우선순위 해독기(8)는 지정된 우선순위에 따라서 인에이블된 인터럽트 신호중에서 가,장 우선순위가 높은 인터럽트를 CPU에 전달하고, 2개 이상의 인터럽트를 동시에 처리할 수 없으므로 해당 인터럽트 보다 낮은 순위의 인터럽트를 차단함과 동시에, 상기 발생되어 선택된 해당 인터럽트의 벡터를 CPU에 알려주는 중요 기능을 갖는다.
이를 실현하는 상세한 구성이 도8에 도시되었다. 도8에서 인터럽트 요청신호는 'IRQ'로 표기되었으며, 인터럽트 벡터는 'IVET'로 표기되었다.
도면에 나타낸 바와 같이, 우선순위 해독기(8)는 발생되어 선택된 인터럽트 벡터를 생성하기 위해서, 마스크 블록(7)으로부터 출력된 인터럽트(I1∼IN)를 받는 인터럽트 벡터 엔코더(10)를 포함한다. 이에 대한 상세한 것은 후술한다.
그리고, 인터럽트 요청신호(IRQ)는 마스크 블록(7)으로부터 출력된 인터럽트
(I1∼IN) 및 VRD 신호를 각각 받아 OR 연산을 행하는 OR 연산부(OR1∼ORN) 및 이들 각각의 OR 연산기의 출력은 AND 연산하는 AND 연산기에 의해서 생성된다.
이때 CPU로부터 출력되는 인터럽트 벡터를 읽기 위한 VRD 신호는 N개의 개별블록(B1∼BN)에 동시에 인가되고 있는데, 이 블록유닛의 기능은 하나의 인터럽트에 대한 다른 인터럽트의 차단기능을 행하는 것이다.
각각의 블록은 도9에 도시한 바와 같이 D형 플립플롭으로 구성될 수 있다.
이 D형 플립플롭의 입력은 일정레벨의 신호가 인가되어 있고, 클럭에는 VRD신호가 인가되며, 리셋단자(RESET)에는 마스크 블록(7)의 각각의 출력이 인가되고, 이 D형플립플롭의 출력이 OR 연산부에 인가되도록 구성되어 있다.
다음에, 인터럽트 발생 및 이에 따른 우선순위 해독부(4)의 동작을 타이밍도는 도11을 참고하여 상세히 설명한다.
예를 들어, 도3에서 인터럽트 발생원 IRS3의 인터럽트가 발생하였으며, 이인터럽트가 최우선 순위로 처리되도록 할당되어 있다고 가정한다. 이것은 도11에서 t1의 시점에서 IRm의 신호의 레벨변화로서 발생을 표시하게 된다.
그러면 인터럽트 선택지정부(3)의 동작에 따라서 이 인터럽트가 N × 1 멀티플렉서(6)에 입력되어 이 멀티플렉서에 선택신호(SEL)로서 인가되는 소스 선택 레지스터(5)의 출력신호에 따라 3PIR이 발생한다.
소스 선택 레지스터(5)에는 제3인터럽트가 최우선 처리 대상의 인터럽트로서 처리되도록 적당한 값이 기억되어 있을 수 있다.
3PIR 신호는 마스크 블록(4)에 인가되어 I3 신호로서 출력된다. 이 과정에 따라 도11과 같이 Im 신호레밸의 변화로서 나타난다.
I3 신호는 로우레벨로서 우선순위 해독기(8)에 인가된다. 그러면, 이 인터럽트 신호는 제2 OR 연산기(OR3)에 인가되고, AND 연산기를 거쳐서 IRQ가 출력되면(도11의 IRQ신호의 레벨 천이 참조), CPU는 인터럽트 발생을 인식하고, 도11의 t2시점에서 VRD를 출력하여 인터럽트 벡터를 읽을 수 있게 한다. 인터럽트 벡터는지금 처리할 I3에 대한 벡터만을 제공해야 하므로, 이에 대한 처리에 대해서 살펴 보면 다음과 같다.
즉, I3신호는 현재 로우레벨로서 제3 블록(B3)의 리셋단자(RESET)에 인가된다.
D형 플립플록이 동작 특성상, 어떤 임의의 인터럽트가 인에이블 되지 않으면 이에 접속된 플립플롭은 리셋되기 때문에 출력(Q)이 0으로 되어 해당 OR 연산기에 입력되므로 OR 연산기의 출력에 영향을 미치지 않케 된다.
그러나, 상기 예와같이 인에이블 신호가 유효하여 리셋단자에 인가되면 제3 블록(B3)의 출력은 리셋 되지 않은 상대로 유지되므로 VRD 클럭에 따라 입력신호(D)를 출력에 전달하게 된다.
이때, 다른 블록들은 모두 리셋된 상태에 있기 때문에, 관련 OR 연산기의 출력에 영향을 미치고 있지 않다.
제3 블록은 I3의 신호 및 VRD 신호에 따라 입력신호(D)를 BI3신호로서 도11의 t2시점에서 출력한다.
이것은 관련 OR 연산기의 출력에 영향을 미쳐 결국 IRQ 신호의 레벨변화로 나타낸다. 그러면, CPU는 인터럽트 인식을 중지하게 되고, VRD의 출력된 시점에서 인터럽트 벡터를 읽음으로서, 인터럽트 인식 중지와 더불어, 인터럽트 벡터에 위치한 인터럽트 처리 프로그램을 수행함으로써, 발생된 인터럽트를 처리하게 된다.
인터럽트 벡터에 대한 상세한 것은 도10에 도시한 바와 같다.
VRD의 상승엣지 시점에서 Im의 0일 때, 인터럽트 벡터(IVECT)의 해당 어드레스의 예를 설명하고 있다.
이때, CPU가 인터럽트를 인지하여 벡터를 읽는 순간 VRD 신호에 의해 블록(B3)의 출력, BI3은 하이상태가 되어 I3과 I3보다 낮은 우선순위의 인터럽트를 차단하게 된다. 그리고, 인터럽트 처리 프로그램이 인터럽트 신호(IR3)을 디스에이블 시키면(도11의 t3), 신호 I3은 디스에이블되고, 따라서 블록(B3)의 출력 BI3이 리셋되어 새로운 인터럽트를 기다리게 된다.
다음에, 서로다른 우선순위를 갖는 2개의 인터럽트 발생에 따른 처리에 대해서 도12의 타이밍도를 참조하여 설명한다.
예를 들어, IN이 I1보다 낮은 우선순위를 갖는다고 하고, 상위 우선순위의 인터럽트(I1)보다 낮은 우선순위의 IN으로부터 인터럽트 요청이 있다고 할 때(도12의 t1에서) 도11과 같이 IRQ 신호가 유효하게 CPU에 전달되어 IN에 대한 인터럽트를 인식하개 되고 t2에서 인터럽트 처리가 된다. 이때 I1 인터럽트가 t3에서 발생하면, 소스 선택 레지스터(5)에 의해서 1PIR이 출력되기 때문에, t3에서 새로이 IRQ가 발생하여 CPU가 이를 인식하게 되면 인터럽트 벡터를 I1에 대한 어드레스를 읽어 I1 인터럽트에 대해 우선처리하게 된다.
처리가 끝나면, t5에서 다시 IN에 대한 인터럽트를 계속처리하게 된다.
IN 처리가 종료되면, 해당 인터럽트 처리 프로그램은 IN을 디스에이블시키므로 t6에서 인터럽트 처리가 종료되는 것이다.
이상 설명한 바와 같이, 본 발명에서는 인터럽트 우선순위 할당에 있어서 소스선택 레지스터를 프로그램할 수 있기 때문에, 기존의 인터럽트 콘트롤러보다 유연하게 우선순위를 부여할 수 있다.
따라서, 시스템에 적용시 설계단계에서 우선 순위를 고려할 필요가 없는 이점이 제공되는 것이다.
Claims (10)
- 복수의 인터럽트 발생원으로부터 발생된 적어도 하나의 발생된 인터럽트에 대한 처리를 위한 인터럽트 콘트롤러에 있어서, 상기 복수의 인터럽트 발생원으로부터의 적어도 하나 이상의 요청에 응답하여, 우선순위를 선택 및 지정하는 우선순위 선택지정 수단 및 상기 우선순위 선택지정 수단에 동작적으로 결합되어, 우선순위를 판단하여 발생된 것 중 최우선순위 인터럽트 요청을 생성하는 우선순위 해독부를 포함하는 것을 특징으로 하는 데이터 처리 장치의 인터럽트 처리 장치.
- 제 1 항에 있어서, 상기 우선순위 선택지정 수단은 인터럽트 선택기 및 우선순위 판별기를 포함하는 것을 특징으로 하는 데이터 처리 장치의 인터럽트 처리 장치.
- 제 2 항에 있어서, 상기 인터럽트 선택기는 인터럽트 발생원 각각의 출력을 받아 하나의 선택된 입력을 출력하는 멀티플렉서로 구성되며, 상기 우선순위 판별기는 상기 멀티플렉서의 입력중 하나를 선택하기 위한 제어신호를 생성하는 프로그래머블 기억수단인 것을 특징으로 하는 데이터 처리 장치의 인터럽트 처리 장치.
- 제 1 항에 있어서, 상기 인터럽트 발생 판별수단은 상기 인터럽트 선택 지정 수단으로부터 선택된 것에 응답하여 인터럽트 요청신호 및 인터럽트 벡터를 생성하는 것을 특징으로 하는 데이터 처리 장치의 인터럽트 처리 장치.
- 제 4 항에 있어서, 상기 인터럽트 발생 판별수단은 활성화된 인터럽트 발생원에 대한 다른 인터럽트에 대해 마스킹하는 인터럽트 마스킹 수단을 갖는 것을 특징으로 하는 데이터 처리 장치의 인터럽트 처리 장치.
- 제 3 항에 있어서, 상기 기억수단에는 인터럽트 발생원들에 대한 우선순위를 갖으며, 우선순위는 선택적으로 조정가능한 것을 특징으로 하는 데이터 처리 장치의 인터럽트 처리 장치.
- 복수의 인터럽트 발생원으로부터 발생된 적어도 하나의 발생된 인터럽트를 처리를 위한 데이터 처리 장치의 인터럽트 처리 장치에 있어서, 상기 복수의 인터럽트 발생원에 접속되어, 발생된 인터럽트중 하나를 선택하는 입력된 인터럽트의 선택수단;상기 선택된 것이 소정의 우선순위와 일치하는가를 판별하여 일치될 때 인터럽트 요청을 생성하는 우선순위 판별수단;상기 우선순위 판별수단에 응답하여 인터럽트 발생을 알리는 인터럽트 요청 신호 발생수단;상기 우선순위 판별수단에 응답하여 대응하는 인터럽트 벡터를 발생하는 인터럽트 벡터 엔코더 및 상기 인터럽트 요청신호에 응답하여 상기 선택된 우선순위의 인터럽트 외의 인터럽트에 대해 마스킹 하는 수단을 포함하는 것을 특징으로 하는 데이터 처리 장치의 인터럽트 처리 장치.
- 제 7 항에 있어서, 상기 우선순위 판별수단은 레지스터이며, 이 레지스터는 인터럽트 발생원들에 대한 우선순위를 갖으며, 우선순위는 선택적으로 조정가능한 것을 특징으로 하는 데이터 처리 장치의 인터럽트 처리 장치.
- 복수의 인터럽트 발생원으로부터 발생된 적어도 하나의 발생된 인터럽트를 처리를 위한 데이터 처리 장치의 인터럽트 처리 방법에 있어서, 상기 복수의 인터럽트 발생원으로부터 발생된 인터럽트중 하나를 선택하는 단계;상기 선택된 것이 소정의 우선순위와 일치하는가를 판별하여 일치될 때 인터럽트 요청을 생성하는 단계;상기 인터럽트 요청 생성된 것에 응답하여 인터립트 발생을 알리는 인터럽트 요청신호 1발생 단계;상기 인터럽트 요청 생성된 것에 응답하여 대응하는 인터럽트 벡터를 발생하는 단계; 및 상기 인터럽트 요청신호에 응답하여 상기 선택된 우선순위의 인터럽트 외의 인터럽트에 대해 마스킹 하는 단계를 포함하는 것을 특징으로 하는 데이터 처리 장치의 인터럽트 처리 방법.
- 제 9 항에 있어서, 상기 인터럽트 판별단계는 레지스터에 우선순위를 갖도록 프로그램하는 단계를 포함하는 특징으로 하는 데이터 처리 장치의 인터럽트 처리 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970034325A KR19990011284A (ko) | 1997-07-22 | 1997-07-22 | 데이터 처리장치의 인터럽트 처리장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970034325A KR19990011284A (ko) | 1997-07-22 | 1997-07-22 | 데이터 처리장치의 인터럽트 처리장치 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR19990011284A true KR19990011284A (ko) | 1999-02-18 |
Family
ID=66040734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970034325A KR19990011284A (ko) | 1997-07-22 | 1997-07-22 | 데이터 처리장치의 인터럽트 처리장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR19990011284A (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050058867A (ko) * | 2003-12-12 | 2005-06-17 | 삼성전자주식회사 | 아날로그-디지털 변환 제어장치 및 그 방법 |
KR100655985B1 (ko) * | 2000-05-29 | 2006-12-08 | 세이코 엡슨 가부시키가이샤 | 인터럽트 신호 생성 장치 및 인터럽트 신호 생성 방법 |
KR100817047B1 (ko) * | 2004-02-27 | 2008-03-26 | 삼성전자주식회사 | 인터럽트 컨트롤러 |
-
1997
- 1997-07-22 KR KR1019970034325A patent/KR19990011284A/ko not_active Application Discontinuation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100655985B1 (ko) * | 2000-05-29 | 2006-12-08 | 세이코 엡슨 가부시키가이샤 | 인터럽트 신호 생성 장치 및 인터럽트 신호 생성 방법 |
KR100705895B1 (ko) * | 2000-05-29 | 2007-04-10 | 세이코 엡슨 가부시키가이샤 | 인터럽트 신호 생성 장치 |
KR20050058867A (ko) * | 2003-12-12 | 2005-06-17 | 삼성전자주식회사 | 아날로그-디지털 변환 제어장치 및 그 방법 |
KR100817047B1 (ko) * | 2004-02-27 | 2008-03-26 | 삼성전자주식회사 | 인터럽트 컨트롤러 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10467053B2 (en) | Multi-thread processor with rescheduling when threads are nondispatchable | |
JP5173711B2 (ja) | マルチスレッドプロセッサ及びそのハードウェアスレッドのスケジュール方法 | |
JP5173712B2 (ja) | マルチスレッドプロセッサ | |
US5854922A (en) | Micro-sequencer apparatus and method of combination state machine and instruction memory | |
JP5173713B2 (ja) | マルチスレッドプロセッサ及びそのハードウェアスレッドのスケジュール方法 | |
US20040215947A1 (en) | Method and apparatus for randomizing instruction thread interleaving in a multi-thread processor | |
US20060026596A1 (en) | Context scheduling | |
US20060004980A1 (en) | Address creator and arithmetic circuit | |
Kohútka et al. | Task scheduler for dual-core real-time systems | |
US6321309B1 (en) | Memory arbitration scheme with circular sequence register | |
KR19990011284A (ko) | 데이터 처리장치의 인터럽트 처리장치 및 방법 | |
US5467454A (en) | Bus use request adjusting apparatus allowing changing priority levels | |
US6766445B2 (en) | Storage system for use in custom loop accelerators and the like | |
EP0253970A2 (en) | Multi-channel shared resource processor | |
JPWO2005124566A1 (ja) | バス調停装置及びバス調停方法 | |
KR100500742B1 (ko) | 1개이상의처리요소를사용하는신호처리장치 | |
JP5838237B2 (ja) | マルチスレッドプロセッサ | |
JP5946566B2 (ja) | マルチスレッドプロセッサにおけるハードウェアスレッドのスケジュール方法 | |
JP5536864B2 (ja) | マルチスレッドプロセッサ | |
KR100393765B1 (ko) | 인터럽트제어장치 | |
JP4314230B2 (ja) | 高速シフトタイプバッファ用システム及び方法 | |
JP5441185B2 (ja) | 割り込みコントローラ及び時分割割り込み発生方法 | |
EP0607487B1 (en) | Arrangement and method of controlling issue timing of an instruction in a vector processor | |
JP2014149868A (ja) | マルチスレッドプロセッサ | |
JP2014067248A (ja) | プロセッサ、割り込み処理方法及び割り込み制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |