KR20010103761A - 인터럽트 관리 장치, 인터럽트 관리 방법, 기록 매체, 오퍼레이팅 시스템, 신호 처리용 프로세서, 화상 단말 장치 및 이동체 통신 시스템 - Google Patents

인터럽트 관리 장치, 인터럽트 관리 방법, 기록 매체, 오퍼레이팅 시스템, 신호 처리용 프로세서, 화상 단말 장치 및 이동체 통신 시스템 Download PDF

Info

Publication number
KR20010103761A
KR20010103761A KR1020017009918A KR20017009918A KR20010103761A KR 20010103761 A KR20010103761 A KR 20010103761A KR 1020017009918 A KR1020017009918 A KR 1020017009918A KR 20017009918 A KR20017009918 A KR 20017009918A KR 20010103761 A KR20010103761 A KR 20010103761A
Authority
KR
South Korea
Prior art keywords
interrupt
task
processing
initialization
information
Prior art date
Application number
KR1020017009918A
Other languages
English (en)
Other versions
KR100408351B1 (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 KR20010103761A publication Critical patent/KR20010103761A/ko
Application granted granted Critical
Publication of KR100408351B1 publication Critical patent/KR100408351B1/ko

Links

Classifications

    • 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/46Multiprogramming arrangements
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

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

인터럽트 요인(121, 122)마다 준비된 인터럽트 접수 가능 상태를 유지하는 인터럽트 관리부(103)와, 인터럽트 처리 태스크(127)에 있어서 인터럽트 허가를 제어하기 위한 인터럽트 마스크 해제부(104)를 갖고, 인터럽트 핸들러(101)내에, 각 부(103 및 104)를 이용하여 인터럽트 마스크의 갱신 제어를 행하는 다중 인터럽트 제어부(109)를 구비한다.

Description

인터럽트 관리 장치 및 인터럽트 관리 방법{INTERRUPTION MANAGING DEVICE AND INTERRUPTION MANAGING METHOD}
종래, 마이크로 프로세서·시스템에 있어서는, 마이크로 프로세서(이하 CPU라고 함)가 프로그램의 처리 실행중에, 외부 장치 또는 외부 장치로부터의 인터럽트 요구 또는 실행중의 응용 프로그램으로부터의 소프트웨어 인터럽트 요구(이하, 인터럽트 요구로 총칭함) 등의 요인에 의해서 비동기의 인터럽트 요구가 발생한 때에는 실행중인 프로그램 처리가 중단되고 인터럽트 요구의 처리가 행해진다.
한편, DSP에 있어서는, 상기한 CPU에 대한 것으로서 내부에 메인 프로세서(이하 MP라고 함)를 갖고 있고, 이 MP가 프로그램의 처리 실행중에 인터럽트 요구가 발생한 때에는 실행중인 프로그램 처리를 중단하고 인터럽트 요구의 처리가 행해진다. 이하, 프로그램의 최소 단위를 태스크라고 한다.
인터럽트 요구에 대하여 실행하는 처리 내용은 인터럽트 요인마다 다르기 때문에, 사용자는 인터럽트 요인마다 인터럽트 처리 루틴(이하, 인터럽트 처리 태스크라고 함)을 작성해 둘 필요가 있다. 인터럽트 요구는 인터럽트의 발생을 전달하는 제어 수단(이하, 인터럽트 제어기라고 칭함)에 의해 CPU 또는 MP에 전달된다. CPU 또는 MP는, 인터럽트 요인을 식별하여, 해당하는 인터럽트 처리 태스크를 호출해서 인터럽트 요구의 처리를 실행한다.
인터럽트 요구의 발생에 의해 CPU 또는 MP가 실행중인 태스크 처리를 중단할 때는, 재개하는 태스크의 어드레스나 그때까지 사용하고 있었던 CPU 또는 MP의 내부 레지스터의 내용(이하, 처리중 연산 리소스라고 함)을 보존하고 나서 인터럽트 처리 태스크를 실행한다. 그리고, 인터럽트 처리 태스크가 종료된 때에 이들의 내부 레지스터를 본래의 상태로 되돌려 실행중이던 태스크 처리를 재개한다.
상기 인터럽트 처리 태스크내에서 처리중 연산 리소스의 퇴피(退避)·복귀 처리를 기술(記述)하면, 인터럽트 처리 태스크의 작성이 번잡하게 되기 때문에, CPU를 갖는 마이크로 프로세서·시스템에 있어서는, 이들의 처리는 일반적으로 실시간 OS 또는 멀티태스크 OS(이하, OS로 총칭함)의 인터럽트 관리 기구를 호출하는 것(이하, 시스템 호출(call)이라 함)에 의해서 실행된다.
MP를 갖는 DSP에 있어서는, 상기 인터럽트 관리 기구는 일반적으로 인터럽트처리 태스크와 분리한 하나의 다른 태스크의 소프트웨어(통상 DSP에서는 마이크로코드, 펌웨어라고 불리는 것)의 모니터·프로그램으로서 구축된다.
이하, 상기 인터럽트 관리 기구와 상기 모니터·프로그램을 총칭하여 인터럽트 핸들러라고 한다.
인터럽트 처리는, 인터럽트 처리를 실행하고 있는 동안에는 다른 인터럽트의 접수를 금지하는 단독 인터럽트와, 인터럽트 처리를 실행하고 있는 동안에도 다른 인터럽트의 접수를 가능하게 하는 다중 인터럽트로 분류된다.
단독 인터럽트에서는, 인터럽트가 발생한 때에, 인터럽트 핸들러로 처리중 연산 리소스를 그 태스크의 스택 영역과 태스크 제어 수단으로 퇴피시키고, 동시에 인터럽트 마스크를 마스킹하여 다른 인터럽트를 금지 상태로 해서, 인터럽트 처리를 실행한다. 그리고, 인터럽트 처리가 완료되고, 중단한 태스크의 실행 재개시에 태스크의 스택 정보, 태스크의 제어 수단, 인터럽트 마스크를 회복시킨다.
한편, 다중 인터럽트 가능한 경우에는, 인터럽트 핸들러에 있어서, 인터럽트 마스크를 마스킹하여 다른 인터럽트를 금지할 때에, 상위의 인터럽트 레벨에 대해서는 인터럽트 마스크는 설정하지 않고서 인터럽트 처리를 실행한다. 즉, 다중 인터럽트를 갖는 인터럽트 핸들러에 있어서는, 복수의 인터럽트가 발생한 경우에, 어떤 인터럽트를 금지할지를 판정할 필요가 있다.
그러나, 인터럽트 태스크내에서 다른 인터럽트의 접수/금지를 판정하는 경우는, 인터럽트 핸들러와 인터럽트 처리 태스크가 밀접하게 관련되어 있어, 인터럽트 핸들러에 의한 인터럽트 처리 내용의 변경과, 인터럽트 처리 태스크에 의한 인터럽트 처리 내용의 변경을 서로 독립적으로 실행할 수 없다고 하는 문제가 있다.
한편, OS를 이용하여 다른 인터럽트의 접수/금지를 판정하는 경우에는, 모든 인터럽트 요인에 대하여 OS내에 있는 인터럽트 핸들러가 일괄하여 인터럽트가 접수/금지를 판정하고 있기 때문에, 사용자는 OS내의 인터럽트 핸들러의 인터럽트 관리 상태를 의식하여 인터럽트 처리 태스크를 작성하지 않으면 안된다고 하는 문제가 있다. 또한, OS내의 인터럽트 핸들러의 인터럽트 관리 상태에 의존하지 않는 인터럽트 처리를 구축할 수 없다고 하는 문제가 있다.
일본 특허 공개 평성 제 5-224951 호 공보에는, 인터럽트 요구를 수신한 CPU로부터 기동되었을 때에 소프트웨어 인터럽트를 지정하여 인터럽트 핸들러로의 처리 이행전에 OS로 처리를 이행시키는 2중 인터럽트 지정 수단과, 2중 인터럽트 지정 수단을 거쳐서 처리를 이행하였을 때, OS내에서 인터럽트 요인의 해석과 레지스터류의 보존을 행하여 인터럽트 핸들러를 기동하는 인터럽트 핸들러 기동 수단과, 인터럽트 핸들러로부터 인터럽트 처리의 종료가 통지되었을 때에 OS내에서 레지스터류의 복귀를 실행하여 중단한 처리를 재개시키는 인터럽트 핸들러 종료 처리 수단을 구비하는 관리 방식이 개시되어 있다.
이 일본 특허 공개 평성 제 5-224951 호 공보에 기재된 관리 방식에 따르면, OS내에서의 레지스터류의 퇴피·복귀 처리와 인터럽트 핸들러에서의 처리를 2중 인터럽트 지정 수단에 의해 분리하여, 인터럽트 핸들러의 작성 효율의 향상을 도모할 수 있다. 그러나, 인터럽트 핸들러와 인터럽트 처리 태스크를 분리하는 수단에 있어서는 어떠한 것도 개시되어 있지 않고, 여전히 인터럽트 핸들러에 의한 처리 내용의 변경과 인터럽트 처리 태스크에 의한 인터럽트 처리 내용의 변경을 독립적으로 실행할 수 없다고 하는 문제가 있다.
또한, 일본 특허 공개 평성 제 8-297581 호 공보에는, 개별적으로 마스킹 가능한 복수의 인터럽트 입력 수단을 갖고, 마스킹되어 있지 않은 인터럽트 입력 수단으로의 입력에 따라 CPU에 인터럽트를 전달하는 인터럽트 제어기를 마련하고, 인터럽트 제어기내의 인터럽트 마스크 테이블을 조작하는 특정 인터럽트 조작 처리 수단을 OS내에 마련하며, 또한 OS에서 관리하고자 하는 인터럽트에 관한 정보만을 피관리 인터럽트 저장 수단에 저장하여, OS의 시스템 호출 처리중인 배타 제어를 행하는 구간에서는 피관리 인터럽트 저장 수단에 정보가 저장되어 있는 인터럽트만을 인터럽트 금지로 해서, 시스템 호출을 발행하지 않은 것 같은 인터럽트에 대해서는 인터럽트 허가 상태를 연속시키도록 하는 기술이 개시되어 있다.
이 일본 특허 공개 평성 제 8-297581 호 공보에 기재된 기술에 따르면, OS에 의한 자원 관리에 영향을 미치지 않는 인터럽트 태스크에 대해서는 OS에 의한 영향을 받는 경우가 없어져, 그 인터럽트 처리 태스크의 처리를 OS와 분리하여 구축하는 것이 가능하다. 그러나, OS에 의한 자원 관리에 관계하는 인터럽트 처리 태스크에 대해서는 OS의 처리와 밀접하게 관련되어 있어, 여전히 OS내의 인터럽트 핸들러에 있어서의 인터럽트의 금지/허가의 처리 내용을 의식하여 인터럽트 처리 태스크를 작성해야 한다고 하는 문제가 있다.
발명의 개시
본 발명의 목적은, 인터럽트 태스크내에서 다른 인터럽트를 접수되도록 하는 경우나, 다른 인터럽트를 금지하는 경우 등의 인터럽트 핸들러의 처리를 변경하는 것이 필요할 때에, 인터럽트 핸들러 또는 인터럽트 처리 태스크에 의한 인터럽트 처리 내용을 용이하게 변경할 수 있는 인터럽트 관리 장치 및 인터럽트 관리 방법을 제공하는 것이다. 또한, 본 발명의 다른 목적은, OS를 이용하여 인터럽트를 관리하는 경우에, 모든 인터럽트 요인에 대하여 OS내에 있는 인터럽트 핸들러가 일괄해서 인터럽트의 금지/허가의 처리를 실행하고 있더라도, 사용자가 OS내의 인터럽트 핸들러에 있어서의 인터럽트의 금지/허가의 처리 내용을 의식하지 않고서 인터럽트 처리 태스크를 작성할 수 있고, 또한 OS내의 인터럽트 핸들러의 인터럽트 관리 상태에 의존하지 않는 인터럽트 처리를 구축할 수 있는 인터럽트 관리 장치 및 인터럽트 관리 방법을 제공하는 것이다.
이 목적은, 인터럽트 요인마다의 처리를 규정하는 인터럽트 핸들러와 독립적으로, 인터럽트 요인마다 준비된 인터럽트 접수 가능 상태를 유지하는 인터럽트 관리 수단 및 인터럽트를 접수하는 인터럽트 요인에 설정하는 마스크를 해제하는 인터럽트 마스크 해제 수단을 마련하고, 인터럽트 핸들러는, 상기 인터럽트 관리 수단과 상기 인터럽트 마스크 해제 수단을 이용하여 인터럽트 마스크를 갱신해서, 인터럽트 요인마다 인터럽트의 허가/금지를 제어하는 것에 의해 달성된다.
본 발명은 컴퓨터 처리의 실시간·오퍼레이션 시스템(실시간 OS), 멀티태스크·오퍼레이션 시스템(멀티태스크 OS) 및 신호 처리용 프로세서(DSP)에 있어서의 인터럽트 관리를 실행하는 장치 및 방법에 관한 것으로, 특히 W-CDMA(Wide band-Code Division Multiple Access) 방식을 이용한 이동체 통신 시스템에 있어서의 휴대 화상 전화 장치 등의 화상 단말 장치 등에 이용하는데 적합한 인터럽트 관리 장치 및 인터럽트 관리 방법에 관한 것이다.
도 1은 본 발명의 실시예 1에 따른 인터럽트 관리 장치의 구성을 도시하는 도면,
도 2의 (a)는 실시예 1에 따른 인터럽트 제어기의 동작을 도시하는 도면,
도 2의 (b)는 실시예 1에 따른 인터럽트 제어기의 동작의 흐름을 도시하는 도면,
도 3은 실시예 1에 따른 인터럽트 관리부에 유지되어 있는 각 인터럽트 요인의 인터럽트 마스크 레지스터의 설정 상태를 도시하는 도면,
도 4는 실시예 1에 따른 인터럽트 요인 판정 처리 순서를 설명하는 도면,
도 5는 실시예 1에 따른 다중 인터럽트 제어부에서의 처리 순서를 설명하는 도면,
도 6은 실시예 1에 따른 인터럽트 처리 태스크에서의 처리 순서를 설명하는 도면,
도 7은 본 발명의 실시예 2에 따른 인터럽트 관리 장치의 구성을 도시하는 도면,
도 8의 (a)는 실시예 2에 따른 실행 태스크 제어부에 저장되는 실행중인 마스크의 정보의 상태를 도시하는 도면,
도 8의 (b)는 실시예 2에 따른 초기화 처리가 필요하게 되는 태스크를 각 비트마다 대응시켜 설정하는 경우의 레지스터에 설정된 상태의 천이를 도시하는 도면,
도 9는 본 발명의 실시예 3에 따른 인터럽트 관리 장치의 구성을 도시하는 도면,
도 10은 본 발명의 실시예 4에 따른 인터럽트 관리 장치의 구성을 도시하는 도면이다.
발명을 실시하기 위한 최선의 형태
이하, 본 발명을 실시하기 위한 최선의 실시예에 대해서 도면을 참조하여 상세히 설명한다.
(실시예 1)
도 1은 본 발명의 실시예 1에 따른 인터럽트 관리 장치의 구성을 도시하는 도면이다.
이 도 1에 도시하는 인터럽트 관리 장치(100)는 인터럽트 핸들러(101)와, 인터럽트 제어기(102)와, 인터럽트 관리부(103)와, 인터럽트 마스크 해제부(104)를 구비하되, 인터럽트 핸들러(101)는 퇴피 처리부(105)와, 인터럽트 요인 판정부(106)와, 인터럽트 태스크 제어 처리부(107)와, 태스크 복귀 처리부(108)와, 다중 인터럽트 제어부(109)를 구비하며, 인터럽트 제어기(102)는 인터럽트 마스크부(110)를 구비하여 구성되어 있다.
또한, 참조 부호 (121∼122)는 제 1∼제 N 인터럽트 요인이고, 참조 부호 (123)는 제 1∼제 N 태스크(124∼126)를 갖는 처리 태스크이며, 참조 부호 (127)는제 1∼제 N 인터럽트 처리 태스크(128∼130)를 갖는 인터럽트 처리 태스크이다.
인터럽트 제어기(102)는 제 1 인터럽트 요인(121)∼제 N 인터럽트 요인(122)으로 이루어지는 인터럽트 요인마다 마스크를 설정하는 인터럽트 마스크부(110)를 구비하고 있다. 인터럽트 제어기(102)는, 제 1 인터럽트 요인(121)∼제 N 인터럽트 요인(122)의 입력이 있었던 경우, 인터럽트 마스크부(110)에 의해 마스크가 설정되지 않은 인터럽트 요인에 대응하는 인터럽트의 발생을 인터럽트 핸들러(101)에 통지한다.
퇴피 처리부(105)는 인터럽트 발생시에 실행중이던 태스크의 여러 가지 정보를 퇴피(보존)하는 처리를 행한다.
인터럽트 요인 판정부(106)는 인터럽트 요인으로부터 처리해야 할 인터럽트 처리 태스크를 결정한다.
인터럽트 관리부(103)는, 인터럽트 핸들러(101)와는 독립적으로, 인터럽트 요인마다 준비된 인터럽트 접수 가능 상태를 유지한다.
인터럽트 마스크 해제부(104)는, 인터럽트 핸들러(101)와는 독립적으로, 인터럽트 처리 태스크에 있어서, 인터럽트를 접수하는 인터럽트 요인에 설정하는 마스크를 해제하는 것에 의해 인터럽트 허가를 제어한다. 인터럽트 마스크 해제부(104)에는, 인터럽트 마스크를 마스크 해제 상태로 설정(1)하는 설정 상태가 유지된다.
다중 인터럽트 제어부(109)는 인터럽트 관리부(103)와 인터럽트 마스크 해제부(104)를 이용하여 인터럽트 마스크의 갱신 제어를 행한다.
인터럽트 태스크 제어부(107)는 결정된 인터럽트 처리 태스크와 인터럽트 핸들러 사이에서 처리를 천이시킨다.
다음에, 상기 구성의 인터럽트 관리 장치(100)의 동작에 대하여 설명한다.
도 2의 (a)는 인터럽트 제어기(102)의 동작을 설명하는 도면이다. 여기서는, 설명을 간단히 하기 위해서, 본 실시예에 따른 인터럽트 관리 장치(100)에는, 각각이 마스킹 가능한 16 종류의 인터럽트 요인(IRQn : n=0, 1, …, 15로 함)이 입력되는 경우에 대하여 설명한다. 인터럽트 관리 장치(100)는, 각각의 인터럽트 요인의 발생을 나타내는 인터럽트 요구 레지스터(IR : Interrupt Request로 칭함)와, 각각의 인터럽트 요인에 대하여 인터럽트의 금지(0)/허가(1)를 제어하는 인터럽트 마스크 레지스터(IM : Interrupt Mask로 칭함)와, 인터럽트 요인마다 존재하고, 인터럽트 요구 레지스터 IR를 리셋하기 위해서 사용하는 인터럽트 요구 리셋 레지스터(IRR : Interrupt Request Reset으로 칭함)를 구비하고 있다. 또한, 인터럽트 마스크 레지스터는 인터럽트 마스크부(110)에 구비되어 있다. 또한, 마스킹 가능한 인터럽트 요인 모두에 대하여 공통의 인터럽트 허가 플래그(IE : Interrupt Enable이라고 칭함)가 설정된다. 이 인터럽트 허가 플래그는 인터럽트의 금지(0)/허가(1)를 제어한다.
인터럽트가 발생한 경우에는, 인터럽트 요구 레지스터의 해당 비트가 1로 설정된다. 그리고, 소프트웨어가 IRR로 세트(1)하는 것에 의해, IR의 해당 비트가 리셋(0)된다. 도 2의 (a)에서는, IR, IM, IRR의 각 레지스터가 각각 16 비트의 레지스터를 이용하여 실현되는 경우가 일례로서 도시되어 있다.
도 2의 (a)에는 IR, IM, IRR, IE를 각각 나타내고, 각 인터럽트 요인 IRQn(n=0, 1, …, 15)에 대한 비트를, Irn, Imn, IRRn(n=0, 1, …, 15)으로 나타낸다.
도 2의 (b)는 인터럽트 요인이 발생한 때의 인터럽트 제어기(102)에서의 처리 흐름을 도시하고 있다. 도 2의 (b)에 도시하는 바와 같이, 인터럽트 요인이 발생하면, 인터럽트 요구 레지스터의 해당 비트가 세트(1)되고, 인터럽트 허가 플래그가 허가(1)되어 있으며, 인터럽트 마스크 레지스터의 해당 비트가 허가(1)되어 있는 경우에, 인터럽트 허가 플래그를 금지(0)로 한 후, 인터럽트 핸들러로 처리를 천이시킨다. 인터럽트 허가 플래그 또는 인터럽트 마스크 레지스터가 금지(0) 상태로부터 허가(1) 상태로 변경된 경우에도 도 2의 (b)에 도시하는 인터럽트 요인 판정 처리가 행해진다.
이하, 인터럽트 핸들러(101)에 있어서의 처리에 대하여 설명한다. 여기서는, 설명을 간단히 하기 위해서, 인터럽트 핸들러(101)로 처리가 천이했을 때에, 인터럽트 요구 레지스터 IR에 인터럽트 요인으로서 IRQ14, IRQ12, IRQ1, IRQ0의 4종류의 인터럽트 요인이 세트(1)되어 있고, 인터럽트 마스크 레지스터 IM에 IM15, IM14, IM3, IM1, IM0이 인터럽트 허가(1)로 설정되어 있으며, 모든 인터럽트가 허가되어 있는 인터럽트 마스크가 인터럽트 관리부(103)에 구비된 레지스터(IMFGreg)로의 설정 상태로서 유지되어 있는 경우에 대하여 설명한다.
또한, 이 때의 인터럽트 마스크 해제부(104)에는, 마스크 해제를 해야 되는 인터럽트 요인이 없는 것으로 한다. 즉, 인터럽트 마스크 해제부(104)에 구비된레지스터의 비트가 모두 클리어(0)로 설정되어 있는 것으로 한다.
또한, 인터럽트 요인의 인터럽트 레벨로서 하기와 같이 4 단계의 인터럽트 레벨이 설정되어 있다.
레벨 0의 인터럽트 요인 : IRQ2, IRQ3
레벨 1의 인터럽트 요인 : IRQ0, IRQ1
레벨 2의 인터럽트 요인 : IRQ15, IRQ14, IRQ13, IRQ12, IRQ4
레벨 3의 인터럽트 요인 : IRQ5, IRQ6, IRQ7, IRQ8, IRQ9, IRQ10, IRQ11
이 인터럽트 레벨은 인터럽트의 우선도를 나타내고, 레벨 0>레벨 1>레벨 2>레벨 3의 순으로 우선도가 높은 것으로 한다.
인터럽트 관리부(103)에는, 각 인터럽트마다 그 인터럽트 요인의 레벨보다 높은 레벨의 인터럽트 요인만을 인터럽트 허가(1)로 하는 인터럽트 마스크 레지스터로의 설정 상태(IMFG라고 칭함)가 유지된다.
도 3은 상술한 인터럽트 레벨에 대하여 설정해야 할 인터럽트 마스크 레지스터의 설정 상태를 나타내고 있고, IMFGn(n=0, 1, …, 15)는 각각 IRQn(n=0, 1, …, 15)에 대응하고 있다. 예컨대, 인터럽트 요인 IRQ14에 대한 IMFG14는 IRQ14보다 레벨이 높고 IRQ0, IRQ1, IRQ2, IRQ3의 해당 비트가 허가(1)로 설정된다. 또한, 인터럽트 요인 IRQ2에 대한 IMFG2는 IRQ2보다 레벨이 높은 인터럽트 요인이 존재하지 않기 때문에, 모든 비트가 금지(0)로 설정된다.
우선, 인터럽트 핸들러(101)로 처리가 천이된 경우, 그 때에 실행중이던 처리 태스크(이 처리 태스크를 중단 태스크(125)로 함)의 여러 가지 정보가 퇴피 처리부(105)에 의해 퇴피된다.
다음에, 인터럽트 요인 판정부(106)에 있어서, 인터럽트 제어기(102)로부터 통지된 인터럽트 요인에 대하여, 인터럽트 관리부(103)를 이용해서 어떤 인터럽트 요인에 대한 처리를 행할지의 판정을 행하여, 호출하는 인터럽트 처리 태스크를 결정한다.
도 4는 인터럽트 요인 판정 처리 순서의 설명도이다. 인터럽트 요인으로서 IRQ14, IRQ12, IRQ1, IRQ0의 4 종류의 인터럽트 요인이 세트(1)되어 있기 때문에, 인터럽트 요구 레지스터 IR은 IR14, IR12, IR1, IR0의 각 해당 비트가 1로 되어 있다(S1).
인터럽트 마스크 레지스터 IM의 설정 상태로서 IM15, IM14, IM3, IM1, IM0이 인터럽트 허가(1)로 설정되어 있기 때문에, 인터럽트 마스크 레지스터 IM은 IM15, IM14, IM3, IM1, IM0의 각 해당 비트 1로 되어 있다(S2).
다음에, S1과 S2의 각 대응하는 비트마다의 AND 연산이 행해진다(S3).
S3의 상태에 있어서, MSB(Most Significant Bit)측으로부터 순서대로 평가를 행하여, 값이 가장 먼저 1로 되어 있는 비트에 해당하는 인터럽트 요인을 선택한다. 이 경우에는 IRQ14에 대한 위치의 비트가 가장 먼저 1로 되어 있기 때문에, 인터럽트 요인으로서 IRQ14가 선택된다.
다음에, 인터럽트 관리부(103)에 유지되어 있는 인터럽트 마스크 레지스터로의 설정 상태 IMFG에 대하여, 선택된 인터럽트 요인 IRQ14에 대응하는 인터럽트 마스크 레지스터로의 설정 상태 IMFG14(즉, 도 3에 나타내는 IMFG14의 값)가 획득된다(S4).
다음에, S3 및 S4에 의해 얻어진 각 상태의 AND 연산을 비트마다 실행한다(S5).
다음에, S3의 상태에 대하여 실행했던 것과 동일한 평가가 행해지고, 인터럽트 요인으로서 IRQ1이 선택된다.
다음에, S4와 마찬가지의 처리를 행하여 인터럽트 관리부(103)로부터 IMFG1(즉, 도 3에 나타낸 IMFG1의 값)이 획득된다(S6).
다음에, S5와 마찬가지로, S5 및 S6에 의해 얻어진 각 상태의 AND 연산을 비트마다 실행하면, 모든 비트가 0으로 되기 때문에(S7), S3의 상태에 대하여 실행한 것과 동일한 평가를 행하더라도 선택해야 할 인터럽트 요인이 존재하지 않는다. 선택해야 할 인터럽트 요인이 존재하지 않게 된 평가 직전의 평가에 있어서 선택된 인터럽트 요인, 즉 IRQ1이 인터럽트 요인으로서 선택되고, 호출하는 인터럽트 처리 태스크로서 IRQ1에 대한 인터럽트 처리 태스크가 결정되어, 인터럽트 태스크 제어 처리부(107)로 처리가 천이한다. 또한, IRQ1에 대한 인터럽트 처리 태스크는 제 R 인터럽트 처리 태스크(129)로 한다.
인터럽트 요인으로서 IRQ1이 선택되었기 때문에, 인터럽트 요구 리셋 레지스터 IRR의 IRQ1에 해당하는 비트, 즉 IRR1을 세트(1)하는 것에 의해 인터럽트 요구 레지스터 IR에 세트되어 있는 IRQ1의 인터럽트 요인의 리셋(0)을 실행한다.
도 5는 다중 인터럽트 제어부(109)에서의 처리 순서의 설명도이다.
다중 인터럽트 제어부(109)는 결정된 제 R 인터럽트 처리 태스크(129)에 대응하는 인터럽트 마스크 IMFG1을, 인터럽트 요인마다 준비된 인터럽트 접수 가능 상태를 유지하는 인터럽트 관리부(103)로부터 취출하여, 인터럽트 제어기(102)의 인터럽트 마스크부(110)에 설정한다.
이 때, 인터럽트 발생시에 인터럽트 제어기(102)의 인터럽트 마스크부(110)에서 이미 인터럽트 마스크가 설정되어 있기 때문에, 인터럽트 금지로 되어 있는 인터럽트 요인에 대응하는 인터럽트 마스크에 대해서는 변경을 행하지 않는다.
즉, S6의 IMFG1과 S2의 IM의 AND 연산을 각 대응하는 비트마다 실행하고, 이 연산 결과를 인터럽트 마스크부(110)에 설정하는 인터럽트 마스크 상태로 결정한다. 그리고, 이 마스크 상태가 인터럽트 마스크부(110)에 설정된다(S8).
또한, 인터럽트 발생시에 인터럽트 제어기(102)에 설정되어 있던 인터럽트 마스크의 상태에 있어서, 인터럽트 요인 판정부(106)에서 판정된 인터럽트 요인 IRQ1에 대응하는 마스크가 인터럽트 금지 상태로 갱신되고, 갱신된 인터럽트 마스크의 상태가 퇴피 처리된다.
즉, 인터럽트 요인 IRQ1의 해당 비트를 1로 변경한 상태(S9)와 S2의 IM의 EOR 연산을 행하는 것에 의해 얻어지는 상태(S10)가 퇴피된다(퇴피처의 레지스터를 IM_SHLTreg라고 칭함).
또한, 인터럽트 발생시에 인터럽트 관리부(103)에 유지되어 있던 인터럽트 접수 가능 관리 상태도 퇴피된다. 즉, 모든 인터럽트가 허가되어 있는 상태인 IMFGreg의 내용(S11)이 퇴피된다(퇴피하는 레지스터를 IMFG_SHLTreg라고 칭함).
다음에, 인터럽트 태스크 제어 처리부(107)가 인터럽트 요인 판정부(102)에서 결정된 제 R 인터럽트 처리 태스크(129)를 호출한다.
제 R 인터럽트 처리 태스크(129)에서는 인터럽트에 대응하는 처리가 행해진다. 이 처리중에 새롭게 입력된 인터럽트 요인에 대하여 인터럽트 허가를 행할 경우에는, 인터럽트 마스크 해제부(104)에 있어서, 인터럽트를 허가하는 인터럽트 요인의 정보를 인터럽트 해제 상태로 설정한다. 또한, 즉시 인터럽트 허가를 행하는 경우에는, 인터럽트 제어기(102)의 인터럽트 마스크부(110)의 인터럽트를 허가하는 인터럽트 요인에 대응하는 인터럽트 마스크를 마스크 해제 상태로 설정한다.
즉, 제 R 인터럽트 처리 태스크(129)의 처리중에, 새롭게 인터럽트 요인 IRQ2를 접수 가능하게 하는 경우에는, 인터럽트 마스크 해제부(104)의 IRQ2에 대응하는 비트를 클리어(0)로부터 설정(1)으로 변경한다.
도 6에 나타내는 S12는 이 때의 인터럽트 마스크 해제부(104)의 상태를 도시하고 있다.
또한, IRQ2는 제 R 인터럽트 처리 태스크(129)가 처리 대상으로 하고 있는 인터럽트 요인 IRQ1보다 상위 레벨의 인터럽트 요인이기 때문에, 즉시 인터럽트 허가를 행하는 경우로 되고, 인터럽트 제어기(102)의 인터럽트 마스크부(110)의 현시점에서의 설정 상태인, S8의 상태에 대하여, IRQ2의 해당 비트의 인터럽트 마스크를 해제(1)로 한다. 도 6에 나타내는 S13은 이 때의 인터럽트 마스크부(110)의 상태를 도시하고 있다.
제 R 인터럽트 처리 태스크(129)의 처리가 종료되면, 다시 인터럽트 태스크 제어 처리부(107)로 처리가 이행된다.
이 때, 다중 인터럽트 제어부(109)는, 제 R 인터럽트 처리 태스크(129)를 호출하기 전에, 다중 인터럽트 제어부(109)에 의해 IM_SHLTreg에 퇴피된 인터럽트 마스크의 상태(S10)의 IRQ2에 대응하는 비트를 인터럽트 허가로 설정한 것을, 인터럽트 제어기(102)의 인터럽트 마스크부(110)에 설정한다. 도 6에 나타내는 S14에는, 이 때의 인터럽트 마스크부(110)의 상태를 나타내고 있다. IRQ2는, IMFG_SHLTreg에 퇴피해 둔 인터럽트 관리부(103)의 상태(S11)와, 제 R 인터럽트 처리 태스크(129)에서 설정된 인터럽트 마스크 해제부(104)의 상태(S12)에 있어서 모두 인터럽트 허가 상태로 되어 있다.
또한, 이 때에 인터럽트 허가 상태로 변경된 인터럽트 요인 IRQ2에 대해서는, 인터럽트 마스크 해제부(104)가 대응하는 인터럽트 요인의 정보를 리셋한다. 도 6에 나타내는 S15는 이 때의 인터럽트 마스크 해제부(104)의 상태를 나타내고 있다.
그리고, 태스크 복귀 처리부(108)에서, 퇴피 처리부(105)에 의해 퇴피된 인터럽트 발생시에 실행중이던 태스크의 여러 가지 정보를 복귀시켜, 중단 태스크(125)의 처리를 재개한다.
이와 같이, 실시예 1에 따른 인터럽트 관리 장치(100)에는, 인터럽트 요인마다 인터럽트가 가능한지 여부를 관리하는 인터럽트 관리부(103) 및 인터럽트 마스크를 해제할지 여부를 관리하는 인터럽트 마스크 해제부(104)가 모두 인터럽트 핸들러(101)와는 독립하여 마련되어 있다. 인터럽트 핸들러(101)는, 인터럽트 관리부(103)에 유지되어 있는 인터럽트가 가능한지 여부를 관리하는 설정 상태와, 인터럽트 마스크 해제부(104)에 유지되어 있는 마스크 해제를 행하는 설정 상태를 이용하여, 인터럽트 요인마다의 처리를 규정한다. 특히, 복수의 인터럽트 요인의 인터럽트의 허가/금지를 관리한다.
다중 인터럽트 제어부(109)는, 인터럽트 관리부(103) 및 인터럽트 마스크 해제부(104)를 이용하여, 인터럽트의 허가/금지를 제어하기 때문에, 인터럽트 태스크내에서 다른 인터럽트를 접수되도록 하는 경우나, 인터럽트 후에 다른 인터럽트를 금지하는 경우 등의, 인터럽트의 허가/금지의 제어를 변경하는 것이 필요한 경우이더라도, 인터럽트 관리부(103)와 인터럽트 마스크 해제부(104)의 설정 상태를 변경하면 된다. 따라서, 프로그램의 작성자는, 인터럽트 핸들러(101)에 있어서의 인터럽트의 허가/금지의 제어(인터럽트 관리 상태)를 의식하지 않고서 인터럽트 처리 태스크(127)를 작성할 수 있다. 또한, 인터럽트 핸들러(101)의 인터럽트 관리 상태에 의존하지 않은 인터럽트 처리의 구축이 가능하게 된다.
또한, 본 발명은 소프트웨어에 의해 실현하는 것도 가능하고, 이 소프트웨어를 기록 매체로부터 판독하여 본 발명을 실현하는 것도 가능하다.
또한, 본 발명은 신호 처리용 프로세서(DSP)에 있어서의 인터럽트 관리 기구로서 조립하는 것이 가능하고, DSP내에서의 인터럽트 처리와는 독립적으로 인터럽트 처리를 이용한 애플리케이션을 실현하는 경우에 유효하다.
또한, 본 발명은 컴퓨터 처리의 실시간·오퍼레이션 시스템 및 멀티태스크·오퍼레이션 시스템 등의 OS내의 인터럽트 처리에 조립하는 것이 가능하고, 퍼스널 컴퓨터상에서 실현되는 애플리케이션 시스템의 구축에 있어서는, OS내에서의 인터럽트 처리와는 독립적으로 인터럽트 처리를 이용한 애플리케이션을 실현하는 경우에 유효하며, 또한 다중 인터럽트를 갖는 경우에는, 인터럽트 레벨을 OS내의 인터럽트 기구와는 독립된 형태로 구축하는 것이 가능해지기 때문에, 특히 그 효과를 발휘한다.
(실시예 2)
도 7은 본 발명의 실시예 2에 따른 인터럽트 관리 장치의 구성을 도시하는 도면이다. 이 도 7에 있어서, 도 1에 나타내는 실시예 1의 각 부에 대응하는 부분에는 도 1과 동일한 부호를 부여하고, 그 설명을 생략한다.
이 도 7에 나타내는 실시예 2의 인터럽트 관리 장치(700)는, 실시예 1의 구성 요소에 부가하여, 실행 태스크 제어부(701)와, 초기화 태스크 지시부(702)와, 초기화 태스크 관리부(703)와, 인터럽트 핸들러(101)내의 태스크 관리 제어부(704)를 구비하여 구성되어 있다.
초기화 태스크 관리부(703)는, 인터럽트 핸들러(101)와는 독립적으로, 처리 태스크의 초기화 처리를 행하는 태스크의 호출 어드레스를 저장한다.
실행 태스크 제어부(701)는 실행중인 태스크의 정보를 유지한다.
초기화 태스크 지시부(702)는 초기화 처리가 필요하게 되는 태스크를 설정한다.
마스크 관리 제어부(704)는, 실행 태스크 제어부(701)와 초기화 태스크 지시부(702)를 이용하여, 중단 태스크(125)로 복귀할 때에 중단 태스크(125)의 초기화처리의 필요 여부를 판정해서, 초기화 처리가 필요한 경우에는 초기화 태스크 관리부(703)에 저장되어 있는 초기화 처리를 실행하는 태스크를 호출한다.
이와 같이 구성된 본 발명의 실시예 2에 따른 인터럽트 관리 장치(700)의 동작에 대하여 설명한다. 또한, 설명을 간단히 하기 위해서, 인터럽트 핸들러(101)에서의 처리중 실시예 1과 동일한 부분에 대해서는 그 상세한 설명을 생략한다.
도 8의 (a)에는 실행 태스크 제어부(701)에 저장되는 실행중인 태스크의 정보의 상태를 나타낸다. 이 도 8의 (a)에는, 처리 태스크(123) 및 인터럽트 처리 태스크(127) 각각의 태스크를 각 비트마다 대응시켜 관리하는 경우에 대하여 나타내고 있다.
도 8의 (b)에는, 초기화 태스크 지시부(702)에 초기화 처리가 필요하게 되는 태스크를 실행 태스크 제어부(701)와 마찬가지로 각 비트마다 대응시켜 설정하는 경우의 레지스터에 설정된 상태의 천이를 나타내고 있다.
실행 태스크 제어부(701)에는 처리 태스크(123) 및 인터럽트 처리 태스크(127)중 실행중인 태스크의 정보(TSKINF라 칭함)가 저장되어 있다. 우선, 인터럽트 핸들러(101)로 처리가 천이된 경우, 그 때 실행중이던 처리 태스크(여기서는 중단 태스크(125))의 해당 비트에 1이 설정된다(T1).
우선, 인터럽트 핸들러(101)에 있어서, 다중 인터럽트 제어부(109)에 의해, 인터럽트 발생시에 실행 태스크 제어부(701)에 저장되어 있던 실행중인 태스크(중단 태스크(125))의 정보, 즉 T1의 상태가 퇴피되고(퇴피하는 레지스터를 TSKINF-SHLTreg라고 칭함), 인터럽트 요인 판정부(106)에 의해 결정된 제 R 인터럽트 처리태스크(129)의 정보(T2)가 새롭게 실행 태스크 제어부(701)에 저장된다.
그리고, 제 R 인터럽트 처리 태스크(129)에 있어서, 마스크의 초기화가 필요한 경우에는, 초기화 태스크 지시부(702)에 초기화하는 태스크의 정보를 저장한다.
중단 태스크(125)가, 초기화가 필요한 태스크로서 설정된 경우를 생각한다. 이 경우, 초기화 태스크 지시부(702)에는 중단 태스크(125)의 해당 비트에 1이 설정된다(T3).
그리고, 제 R 인터럽트 처리 태스크(129)의 처리가 종료되면, 다시 인터럽트 태스크 제어 처리부(107)에 처리가 이행된다. 이 때, 다중 인터럽트 제어부(109)에 의해, 인터럽트 처리 태스크를 호출하기 전에 TSKINF_SHLTreg에 퇴피해 둔 실행 태스크 제어부(701)의 정보(T2)와 초기화 태스크 지시부(702)에 저장되어 있는 초기화할 태스크의 정보(T3)가 마스크 관리 제어부(704)에서 비교된다.
태스크 관리 제어부(704)에서는 비교한 태스크가 동일한 태스크를 지시하고 있는 경우에는, 초기화 태스크 관리부(703)는 대응하는 태스크의 초기화 처리를 행하는 태스크의 호출 어드레스를 이용하여 중단 태스크(125)의 초기화 태스크의 처리를 실행한다.
예컨대, TSKINF_SHLTreg에 퇴피되는 실행 태스크 제어부(701)의 정보는 인터럽트 발생시에 실행중이던 태스크의 정보이기 때문에, 항상 해당하는 1 비트만이 1로 설정되어 있다. 따라서, 마스크 관리 제어부(704)에 있어서, T2와 T3의 AND 연산을 행하고, 그 연산 결과가 0이 아닌 값으로 된 경우에는, 비교한 태스크가 동일한 태스크를 지시하고 있다고 판단하면 되고, 이 경우는 동일한 태스크로 되어 있다.
또한, 태스크 복귀 처리부(108)에 있어서, 퇴피 처리부(105)에 의해 퇴피된 인터럽트 발생시에 실행중이던 태스크의 여러 가지 정보가 필요해지는 경우에는 복귀 처리가 행해진다.
이와 같이, 본 발명의 실시예 2에 따른 인터럽트 관리 장치(700)는, 마스크의 초기화 처리를 행하는 태스크의 호출 어드레스를 저장하는 초기화 태스크 관리부(703)와, 실행중인 태스크의 정보를 유지하는 실행 태스크 제어부(701)와, 초기화 처리가 필요하게 되는 태스크를 설정하는 초기화 태스크 지시부(702)를 구비하여 구성된다. 이러한 구성을 갖는 인터럽트 관리 장치(700)는, 실행 태스크 제어부(701)와 초기화 태스크 지시부(702)를 이용하여, 중단 태스크로 복귀할 때에 중단 태스크(125)의 초기화 처리의 필요 여부를 판정해서, 중단 태스크(125)를 초기화할 필요가 있는 경우에는, 초기화 태스크 관리부(703)에 저장되어 있는 호출 어드레스를 이용하여 초기화 처리를 행하는 태스크의 호출을 태스크 관리 제어부(704)가 실행한다.
이 때문에, 인터럽트 처리 태스크(127)에 있어서, 태스크의 처리를 초기 상태로부터 개시하도록 제어하는 경우가 발생한 때에, 마스크의 스택 영역, 마스크 제어 수단 등을 인터럽트 처리 태스크(127)가 초기화할 필요가 없다.
따라서, 인터럽트 처리 태스크(127)는 초기화할 태스크의 처리 내용을 의식할 필요가 없고, 인터럽트 처리 태스크(127)내에 있어서, 초기화를 실행하는 처리 순서를 인터럽트 처리 태스크(127) 및 초기화를 필요로 하는 태스크와 독립적으로제어할 수 있는 기구의 구축이 가능해진다.
또한, 본 발명은 소프트웨어에 의해 실현하는 것도 가능하고, 이 소프트웨어를 기록 매체로부터 판독하여 본 발명을 실현하는 것도 가능하다.
또한, 본 발명은 신호 처리용 프로세서(DSP)에 있어서의 인터럽트 관리 기구로서 조립하는 것이 가능하고, DSP내에서의 인터럽트 처리와는 독립적으로 인터럽트 처리를 이용한 애플리케이션을 실현하는 경우에 유효하다.
또한, 본 발명은 컴퓨터 처리의 실시간·오퍼레이션 시스템 및 멀티태스크·오퍼레이션 시스템 등의 OS내의 인터럽트 처리에 조립하는 것이 가능하다. 이 때문에, 퍼스널 컴퓨터상에서 실현되는 여러 가지의 애플리케이션 시스템의 구축에 있어서는, 마스크의 초기화 처리를 OS내의 인터럽트 기구와는 독립된 형태로 구축하는 것이 가능해지기 때문에, 본 발명이 특히 그 효과를 발휘한다.
(실시예 3)
도 9는 본 발명의 실시예 3에 따른 인터럽트 관리 장치의 구성을 도시하는 도면이다. 이 도 9에 있어서 도 7에 나타내는 실시예 2의 각 부에 대응하는 부분에는 도 2와 동일한 부호를 부여하고, 그 상세한 설명을 생략한다.
이 도 9에 나타내는 실시예 3의 인터럽트 관리 장치(900)는, 실시예 2의 구성 요소 외에, 태스크 매니저(903)와, 인터럽트 핸들러(101)내에 구비된 태스크 중단 처리부(904)를 구비하여 구성된다. 태스크 매니저(903)에는 디스패치 처리부(902)가 마련되어 있다. 또한, 디스패치 처리부(902)에는 태스크제어부(901)가 구비되어 있다.
태스크 매니저(903)에 구비된 디스패치 처리부(902)는, 도 7에 도시하는 인터럽트 관리 장치(700)에 대응하는 부분에 대하여, 처리 대상으로 되는 처리 태스크의 판정을 행하고, 처리 태스크마다의 호출 어드레스를 저장한 태스크 제어부(901)와, 마스크의 초기화 처리를 행하는 태스크의 호출 어드레스를 저장하는 초기화 태스크 관리부(703)를 이용하여, 호출하는 처리 태스크(123)의 전환 처리를 실행한다.
태스크 중단 처리부(904)는, 퇴피 처리부(105)에 의해 퇴피된 인터럽트 발생시에 실행중이던 태스크의 각종 정보의 복귀를 행하지 않고 디스패치 처리부(902)를 호출한다.
또한, 태스크 관리 제어부(704)는, 실행 태스크 제어부(701)와 초기화 태스크 지시부(702)를 이용하여 중단 태스크(125)로 복귀할 때에 중단 태스크(125)의 초기화 처리의 필요 여부를 판정해서, 중단 태스크(125)의 초기화 처리가 필요한 경우에는 마스크 중단 처리부(904)를 호출하고, 처리화 처리가 불필요한 경우는 태스크 복귀 처리부(108)를 호출한다.
이와 같이 구성된 실시예 3의 인터럽트 관리 장치(900)의 동작을 설명한다.
인터럽트 핸들러(101)에 있어서 태스크 복귀 처리부(108)가 중단 태스크(125)의 복귀 처리를 행할 때에는, 태스크 관리 제어부(704)와 마찬가지로, 실행 태스크 제어부(701)와 초기화 태스크 지시부(702)를 이용하여, 중단 태스크(125)의 초기화 처리의 필요 여부를 판정하여, 초기화 처리가 필요한 경우에는 초기화 태스크 관리부(703)에 저장되어 있는 초기화 처리를 행하는 태스크를 호출한다.
즉, 다중 인터럽트 제어부(109)에 의해 인터럽트 처리 태스크가 호출되기 전에 TSKINF-SHLTreg에 퇴피해 둔 실행 태스크 제어부(701)의 정보(T2)와 초기화 태스크 지시부(702)에 저장되어 있는 초기화할 태스크의 정보(T3)를 이용한 비교 처리가 행해진다.
이것에 의해, 중단 태스크(125)로 복귀할 때에 중단 태스크(125)의 초기화 처리의 필요 여부가 판정되어, 초기화 처리가 필요한 태스크로 복귀할 경우, 퇴피 처리부(105)에 의해 퇴피된 인터럽트 발생시에 실행중이던 태스크의 각종 정보의 퇴피를 행하는 태스크 복귀 처리부(108)가 아니라, 마스크 중단 처리부(904)가 호출된다.
초기화 처리가 불필요한 경우는, 퇴피 처리부(105)에 의해 퇴피된 인터럽트 발생시에 실행중이던 태스크의 각종 정보의 퇴피를 행하는 태스크 복귀 처리부(108)가 호출되고, 중단 태스크의 처리가 재개된다.
그리고, 태스크 매니저(903)의 디스패치 처리부(902)에서 호출하는 처리 태스크의 전환 처리를 행할 때에 초기화 태스크 지시부(702)에 의해 지시된 처리 태스크와의 비교를, 마스크 관리 제어부(704)에서의 비교 처리와 마찬가지의 방법으로 실행하고, 호출할 처리 태스크가 초기화 처리가 필요한 태스크의 경우에는, 초기화 태스크 관리부(703)에 저장되어 있는 호출 어드레스를 이용하여 초기화 처리를 행하는 태스크의 호출을 실행한다.
이와 같이, 실시예 3의 인터럽트 관리 장치(900)에 따르면, 태스크의 초기화가 발생한 경우에, 초기화 처리에 있어서는, 이제는 복귀할 필요가 없는 퇴피 처리부(105)에 의해 퇴피된 인터럽트 발생시에 있어서, 실행중이던 태스크의 각종 정보의 복귀를 행하지 않고, 또한 초기화 처리는, 태스크 매니저(903)의 디스패치 처리부(902)에 의해 재차 그 태스크가 지시되었을 때에만 초기화 처리로부터 처리를 개시하는 것이 가능해진다.
또한, 본 발명은 소프트웨어에 의해 실현하는 것도 가능하고, 이 소프트웨어를 기록 매체로부터 판독하여 본 발명을 실현하는 것도 가능하다.
또한, 본 발명은, 신호 처리용 프로세서(DSP)에 있어서의 인터럽트 관리 기구 및 태스크 관리 기구로서 조립하는 것이 가능하고, DSP내에서의 인터럽트 처리 및 태스크 매니저와는 독립적으로 인터럽트 처리를 이용한 애플리케이션을 실현하는 경우에 유효하다.
또한, 본 발명은 컴퓨터 처리의 실시간`오퍼레이션 시스템 및 멀티태스크·오퍼레이션 시스템 등의 OS내의 인터럽트 처리 및 태스크 매니저 처리에 조립하는 것이 가능하다. 이 때문에, 퍼스널 컴퓨터상에서 실현되는 여러 가지의 애플리케이션 시스템에 대하여 초기화 처리를 수반하는 경우에는, 이제는 복귀할 필요가 없는 태스크의 각종 정보의 복귀를 행하지 않는다. 또한 초기화 처리에 대해서도, 태스크 매니저(903)의 디스패치 처리부(902)에 의해 재차 그 태스크가 지시된 경우에만 초기화 처리로부터 처리를 개시할 수 있다.
(실시예 4)
도 10은 본 발명의 실시예 4에 따른 인터럽트 관리 장치의 구성을 도시하는 도면이다. 이 도 10에 있어서 도 9에 나타내는 실시예 3의 각 부에 대응하는 부분에는 도 9와 동일한 부호를 부여하고, 그 설명을 생략한다.
이 도 10에 나타내는 실시예 4의 인터럽트 관리 장치(1000)는, 실시예 3의 구성 요소 외에, 초기화 태스크 관리부(703)를 갖는 초기화 제어부(1001)를 구비하여 구성된다.
초기화 제어부(1001)는, 처리 태스크마다의 초기화를 실행하는 경우의 태스크의 기동 개시 어드레스를 저장하는 초기화 태스크 관리부(703)를 이용하여 태스크의 초기화 제어를 실행한다.
태스크 매니저(903)는, 초기화 제어부(1001)와, 처리 태스크마다의 호출 어드레스를 저장하는 태스크 제어부(901)를 이용하여 태스크의 전환 처리를 행하는 디스패치 처리부(902)에 의해 구성된다.
이와 같이 구성된 실시예 4에 따른 인터럽트 관리 장치(1000)의 동작을 설명한다.
초기화 제어부(1001)는, 처리 태스크(123)로부터 호출된 경우에는, 대응하는 처리 태스크의 초기화 태스크 관리부(703)에 처리 태스크(123)로부터의 호출 어드레스를 저장하고, 대응하는 처리 태스크를 초기화하는 태스크의 정보로서 초기화 태스크 지시부(702)에 저장한 후, 디스패치 처리부(902)로 처리를 이행한다.
또한, 디스패치 처리부(902)로부터 초기화 제어부(1001)가 호출된 경우에는,호출되었을 때에 지시된 처리 태스크가 대응하는 초기화 태스크 관리부(703)에 저장되어 있는 태스크의 기동 개시 어드레스를 이용하여 태스크의 호출을 실행한다.
디스패치 처리부(902)는, 처리 태스크(123)로부터 호출된 경우에는, 대응하는 처리 태스크의 태스크 제어부(901)에 처리 태스크(123)로부터의 호출 어드레스를 저장한다.
또한, 태스크 중단 처리부(904) 또는 초기화 제어부(1001)로부터 디스패치 처리부(902)가 호출된 경우에는, 호출하는 처리 태스크의 전환 처리를 실행할 때에, 초기화 태스크 지시부(702)에 의해 지시된 처리 태스크와의 비교를 행한다.
호출할 처리 태스크가, 초기화 처리가 필요한 태스크인 경우에는, 초기화 태스크 관리부(703)에 저장되어 있는 기동 개시 어드레스를 이용하여 태스크의 호출을 실행한다.
그 밖의 경우에는 태스크 제어부(901)로부터 호출하는 처리 태스크에 대응하는 호출 어드레스를 이용하여 태스크의 호출을 실행한다.
초기화 제어부(1001) 및 디스패치 처리부(902)에 있어서, 저장해야 할 호출 어드레스의 획득 방법으로서는, 예컨대, DSP 등에서 사용되는 CALL 명령과 POP 명령을 이용한 방법이 있다.
CALL 명령이란 CALL 명령을 발행한 프로그램의 다음 명령의 프로그램 카운터를 스택에 저장하고, CALL 명령에 의해 지시된 프로그램 카운터의 값으로 처리를 천이시키는 명령이며, POP 명령이란 스택에 저장되어 있는 값을 취출하는 명령이다.
따라서, 이 CALL 명령에 의해 초기화 제어부(1001) 및 디스패치 처리부(902)의 소정의 처리로 제어가 이행되고, POP 명령을 이용하여 호출된 태스크의 복귀 대상의 프로그램 카운터의 값을, 초기화 태스크 관리부(703) 또는 태스크 제어부(901)에 저장하는 것에 의해 어드레스를 획득할 수 있다.
이와 같이, 본 발명의 실시예 4에 따른 인터럽트 관리 장치(1000)에 따르면, 태스크 매니저(903)에서의 초기화를 포함하는 태스크의 관리가 어드레스의 관리 및 제어 방법만을 규정하는 것이기 때문에, 각 처리 태스크의 호출 어드레스에 의존하지 않은 처리 태스크의 전환 제어를 구축하는 것이 가능하다.
또한, 본 발명은 소프트웨어에 의해 실현하는 것도 가능하고, 이 소프트웨어를 기록 매체로부터 판독하여 본 발명을 실현하는 것도 가능하다.
또한, 본 발명은 신호 처리용 프로세서(DSP)에 있어서의 인터럽트 관리 기구 및 태스크 관리 기구로서 조립할 수 있다. 본 발명은 DSP내에서의 인터럽트 처리 및 태스크 매니저와는 독립적으로 인터럽트 처리를 이용한 애플리케이션을 실현하는 경우에 유효하다.
또한, 본 발명은 컴퓨터 처리의 실시간·오퍼레이션 시스템 및 멀티태스크·오퍼레이션 시스템 등의 OS내의 인터럽트 처리 및 태스크 매니저 처리에 조립하는 것이 가능하다. 이 때문에, 퍼스널 컴퓨터상에서 실현되는 애플리케이션 시스템에 대하여 OS내의 처리에 의존하지 않은 태스크 전환 처리의 구축이 가능해진다고 하는 유리한 효과를 갖는다.
이상 설명한 바와 같이, 본 발명에 의하면, 인터럽트 태스크내에서 다른 인터럽트를 접수되도록 하는 경우나, 인터럽트 후에 다른 인터럽트를 금지하는 경우 등의, 인터럽트 핸들러에 있어서의 인터럽트의 허가/금지의 처리를 변경할 때에, 인터럽트 핸들러나 인터럽트 처리 태스크에 의한 인터럽트 처리 내용의 변경을 용이하게 실행할 수 있다.
또한, OS를 이용한 인터럽트 관리 방법에서, 모든 인터럽트 요인에 대하여 OS내에 있는 인터럽트 핸들러가 일괄해서 인터럽트의 금지/허가의 처리를 실행하고 있는 경우에 있어서도, 사용자가 OS내의 인터럽트 핸들러의 인터럽트 관리 상태를 의식하지 않고 인터럽트 처리 태스크를 작성할 수 있다.
또한, OS내의 인터럽트 핸들러의 인터럽트 관리 상태에 의존하지 않은 인터럽트 처리를 구축할 수 있고, 또한 인터럽트 처리 태스크에 있어서, 마스크의 처리를 초기 상태로부터 개시하는 제어가 발생한 경우에, 마스크의 스택 영역, 태스크 제어 수단 등을 인터럽트 처리 태스크를 초기화할 필요가 없어진다.
따라서, 인터럽트 처리 태스크는 초기화할 태스크의 처리 내용을 의식할 필요가 없고, 인터럽트 처리 태스크내에 있어서, 초기화를 실행하는 처리 순서를 인터럽트 처리 태스크 및 초기화를 필요로 하는 태스크와 독립적으로 제어 가능한 기구를 구축할 수 있다.
또한, 태스크의 초기화가 발생한 경우에, 퇴피 처리부에 의해 퇴피된 인터럽트 발생시에 실행중이던 태스크의 각종 정보중 초기화 처리에 있어서 복귀할 필요가 없는 것에 대해서는 복귀를 실행하지 않는다.
또한, 초기화 처리에 있어서는, 태스크 매니저(903)의 디스패치 처리부(902)에 의해 재차 그 태스크가 지시되었을 때에만 초기화 처리로부터 처리를 개시하는 것이 가능해진다. 태스크 매니저(902)에서의 초기화를 포함하는 태스크의 관리가 어드레스의 관리 및 제어 방법만을 규정하는 것이기 때문에, 각 처리 태스크의 호출 어드레스에 의존하지 않은 처리 태스크의 전환 제어를 행할 수 있다.
본 명세서는 1999년 12월 7일 출원된 일본 특허 출원 평성 제 11-347294 호 공보에 근거한다. 이 내용은 모두 여기에 포함시켜 둔다.
본 발명은 컴퓨터 처리의 실시간·오퍼레이션 시스템(실시간 OS) 및 멀티태스크·오퍼레이션 시스템(멀티태스크 OS)과 신호 처리용 프로세서(DSP)에 있어서의 인터럽트 관리를 행하는 것으로, W-CDMA(Wide band·Code Division Multiple Access) 방식을 이용한 이동체 통신 시스템에 있어서의 휴대 화상 전화 장치 등의 화상 단말 장치 등에 이용하는데 적합한 인터럽트 관리 장치 및 인터럽트 관리 방법의 분야에 이용하는데 바람직하다.

Claims (14)

  1. 인터럽트 마스크에 의해 인터럽트 핸들러로의 인터럽트 통지를 제어하는 인터럽트 제어기와,
    상기 인터럽트의 발생시에 실행중인 태스크의 정보를 퇴피(退避)시키는 퇴피 처리 수단과,
    상기 인터럽트의 요인에 따라 처리해야 할 인터럽트 처리 태스크를 결정하는 인터럽트 요인 판정 수단과,
    상기 인터럽트 핸들러와는 독립적으로, 인터럽트 요인마다 준비된 인터럽트 접수 가능 상태를 유지하는 인터럽트 관리 수단과,
    인터럽트 처리 태스크에 인터럽트 허가를 제어하는 인터럽트 마스크 해제 수단과,
    상기 인터럽트 관리 수단 및 상기 인터럽트 마스크 해제 수단의 처리에 따라 인터럽트 마스크의 갱신 제어를 행하는 다중 인터럽트 제어 수단과,
    결정된 인터럽트 처리 태스크와 상기 인터럽트 핸들러간의 처리의 천이를 실행하는 인터럽트 태스크 제어 수단과,
    상기 퇴피 처리 수단에 의해 퇴피된 인터럽트 발생시에 실행중인 태스크의 정보를 복귀시켜, 중단되어 있던 태스크의 처리를 재개하는 태스크 복귀 처리 수단
    을 구비하는 인터럽트 관리 장치.
  2. 제 1 항에 있어서,
    인터럽트 핸들러와는 독립적으로, 태스크의 초기화 처리를 행하기 위한 태스크의 호출 어드레스를 저장하는 초기화 태스크 관리 수단과,
    실행중인 태스크의 정보를 유지하는 실행 태스크 제어 수단과,
    초기화 처리가 필요하게 되는 태스크를 설정하는 초기화 태스크 지시 수단과,
    상기 실행 태스크 제어 수단 및 상기 초기화 태스크 지시 수단의 처리에 따라 중단 태스크로 복귀할 때에 상기 중단 태스크의 초기화 처리의 필요 여부의 판정을 실행해서, 초기화 처리가 필요한 태스크로 복귀하는 경우에, 상기 초기화 태스크 관리 수단에 저장된 초기화 처리를 행하는 태스크의 호출을 실행하는 태스크 관리 제어 수단
    을 구비하는 인터럽트 관리 장치.
  3. 제 2 항에 있어서,
    처리 대상으로 되는 처리 태스크의 판정을 행하고, 처리 태스크마다의 호출 어드레스를 저장한 태스크 제어 수단과, 초기화 태스크 관리 수단의 처리에 따라 호출하는 처리 태스크의 전환 처리를 행하는 디스패치 처리 수단을 갖는 태스크 매니저와,
    퇴피 처리 수단에 의해 퇴피된 인터럽트 발생시에 실행중인 태스크의 정보의 복귀를 행하지 않고, 상기 디스패치 처리 수단을 호출하는 태스크 중단 처리 수단을 구비하며,
    태스크 관리 제어 수단은, 실행 태스크 제어 수단 및 초기화 태스크 지시 수단의 처리에 따라 중단 태스크로 복귀할 때에 중단 태스크의 초기화 처리의 필요 여부의 판정을 실행해서, 초기화 처리가 필요한 태스크로 복귀하는 경우에는 상기 태스크 중단 처리 수단을 호출하고, 초기화 처리가 불필요한 경우에는 태스크 복귀 처리 수단을 호출하는
    인터럽트 관리 장치.
  4. 제 3 항에 있어서,
    초기 태스크 관리 수단의 처리에 따라 태스크의 초기화 제어를 행하는 초기화 제어 수단을 태스크 매니저에 구비하는 인터럽트 관리 장치.
  5. 인터럽트 마스크에 의해 인터럽트 핸들러로의 인터럽트 통지를 제어하고,
    이 제어에 의한 인터럽트 발생시에 실행중인 태스크의 정보를 퇴피하고,
    상기 인터럽트의 요인에 따라 처리해야 할 인터럽트 처리 태스크를 결정하고,
    상기 인터럽트 핸들러와는 독립적으로, 상기 인터럽트 요인마다 준비된 인터럽트 접수 가능 상태를 유지하고,
    상기 인터럽트 처리 태스크에서 인터럽트 허가를 제어하기 위한 인터럽트 마스크 해제 제어 정보 및 상기 인터럽트 접수 가능 상태의 정보에 따라 인터럽트 마스크의 갱신 제어를 행하고,
    결정된 인터럽트 처리 태스크와 상기 인터럽트 핸들러간의 처리의 천이를 실행하며,
    상기 퇴피된 인터럽트 발생시에 실행중인 태스크의 정보를 복귀시켜, 중단되어 있던 태스크의 처리를 재개하는
    인터럽트 관리 방법.
  6. 제 5 항에 있어서,
    인터럽트 핸들러와는 독립적으로, 태스크의 초기화 처리를 행하는 태스크의 호출 어드레스를 저장하는 초기화 태스크 관리 정보와, 실행중인 태스크의 정보와, 초기화 처리가 필요하게 되는 태스크를 설정하는 초기화 태스크 지시 정보를 유지하여, 상기 실행 태스크 제어 정보 및 상기 초기화 태스크 지시 정보에 따라 중단 태스크로 복귀할 때에, 중단 태스크의 초기화 처리의 필요 여부의 판정을 실행해서, 초기화 처리가 필요한 태스크로 복귀하는 경우에, 상기 초기화 태스크 관리 정보에 저장되어 있는 초기화 처리를 행하는 태스크의 호출을 실행하는 인터럽트 관리 방법.
  7. 제 6 항에 있어서,
    처리 대상으로 되는 처리 태스크의 판정을 행하고,
    처리 태스크마다의 호출 어드레스를 저장한 실행 태스크 제어 정보 및 초기화 태스크 관리 정보에 따라서, 호출하는 처리 태스크의 전환 처리를 행하고,
    퇴피된 인터럽트 발생시에 실행중인 태스크의 정보의 복귀를 행하지 않고 상기 전환 처리를 행하고,
    상기 실행 태스크 제어 정보 및 상기 초기화 태스크 지시 정보에 따라 중단 태스크로 복귀할 때에, 중단 태스크의 초기화 처리의 필요 여부의 판정을 실행해서, 초기화 처리가 필요한 태스크로 복귀하는 경우에, 상기 태스크 중단 처리를 행하고, 초기화 처리가 불필요한 경우는 태스크 복귀 처리를 행하는
    인터럽트 관리 방법.
  8. 제 7 항에 있어서,
    초기화 태스크 관리 정보를 이용하여 태스크의 초기화 제어를 행하고, 실행 태스크 제어 정보를 이용하여 태스크의 전환 처리를 실행하는 인터럽트 관리 방법.
  9. 인터럽트 관리 방법을 실행하는 프로그램이 기록된 기록 매체로서,
    상기 인터럽트 관리 방법은,
    인터럽트 마스크에 의해 인터럽트 핸들러로의 인터럽트 통지를 제어하고,
    이 제어에 의한 인터럽트 발생시에 실행중인 태스크의 정보를 퇴피하고,
    상기 인터럽트의 요인에 따라 처리해야 할 인터럽트 처리 태스크를 결정하고,
    상기 인터럽트 핸들러와는 독립적으로, 상기 인터럽트 요인마다 준비된 인터럽트 접수 가능 상태를 유지하고,
    상기 인터럽트 처리 태스크에서 인터럽트 허가를 제어하기 위한 인터럽트 마스크 해제 제어 정보 및 상기 인터럽트 접수 가능 상태의 정보에 따라 인터럽트 마스크의 갱신 제어를 행하고,
    결정된 인터럽트 처리 태스크와 상기 인터럽트 핸들러간의 처리의 천이를 행하고,
    상기 퇴피된 인터럽트 발생시에 실행중인 태스크의 정보를 복귀시켜, 중단되어 있던 태스크의 처리를 재개하는
    기록 매체.
  10. 인터럽트 관리 방법에 따른 처리 기능을 구비하는 오퍼레이팅 시스템으로서,
    상기 인터럽트 관리 방법은,
    인터럽트 마스크에 의해 인터럽트 핸들러로의 인터럽트 통지를 제어하고,
    이 제어에 의한 인터럽트 발생시에 실행중인 태스크의 정보를 퇴피하고,
    상기 인터럽트의 요인에 따라 처리해야 할 인터럽트 처리 태스크를 결정하고,
    상기 인터럽트 핸들러와는 독립적으로, 상기 인터럽트 요인마다 준비된 인터럽트 접수 가능 상태를 유지하고,
    상기 인터럽트 처리 태스크에서 인터럽트 허가를 제어하기 위한 인터럽트 마스크 해제 제어 정보 및 상기 인터럽트 접수 가능 상태의 정보에 따라 인터럽트 마스크의 갱신 제어를 행하고,
    결정된 인터럽트 처리 태스크와 상기 인터럽트 핸들러간의 처리의 천이를 행하고,
    상기 퇴피된 인터럽트 발생시에 실행중인 태스크의 정보를 복귀시켜, 중단되어 있던 태스크의 처리를 재개하는
    오퍼레이팅 시스템.
  11. 인터럽트 관리 방법에 따른 처리 기능을 구비하는 신호 처리용 프로세서로서,
    상기 인터럽트 관리 방법은,
    인터럽트 마스크에 의해 인터럽트 핸들러로의 인터럽트 통지를 제어하고,
    이 제어에 의한 인터럽트 발생시에 실행중인 태스크의 정보를 퇴피하고,
    상기 인터럽트의 요인에 따라 처리해야 할 인터럽트 처리 태스크를 결정하고,
    상기 인터럽트 핸들러와는 독립적으로, 상기 인터럽트 요인마다 준비된 인터럽트 접수 가능 상태를 유지하고,
    상기 인터럽트 처리 태스크에서 인터럽트 허가를 제어하기 위한 인터럽트 마스크 해제 제어 정보 및 상기 인터럽트 접수 가능 상태의 정보에 따라 인터럽트 마스크의 갱신 제어를 행하고,
    결정된 인터럽트 처리 태스크와 상기 인터럽트 핸들러간의 처리의 천이를 행하고,
    상기 퇴피된 인터럽트 발생시에 실행중인 태스크의 정보를 복귀시켜, 중단되어 있던 태스크의 처리를 재개하는
    신호 처리용 프로세서.
  12. 인터럽트 관리 장치를 구비하는 화상 단말 장치로서,
    상기 인터럽트 관리 장치는,
    인터럽트 마스크에 의해 인터럽트 핸들러로의 인터럽트 통지를 제어하는 인터럽트 제어기와,
    상기 인터럽트의 발생시에 실행중인 태스크의 정보를 퇴피하는 퇴피 처리 수단과,
    상기 인터럽트의 요인에 따라 처리해야 할 인터럽트 처리 태스크를 결정하는 인터럽트 요인 판정 수단과,
    상기 인터럽트 핸들러와는 독립적으로, 인터럽트 요인마다 준비된 인터럽트 접수 가능 상태를 유지하는 인터럽트 관리 수단과,
    인터럽트 처리 태스크에 인터럽트 허가를 제어하는 인터럽트 마스크 해제 수단과,
    상기 인터럽트 관리 수단 및 상기 인터럽트 마스크 해제 수단의 처리에 따라 인터럽트 마스크의 갱신 제어를 행하는 다중 인터럽트 제어 수단과,
    결정된 인터럽트 처리 태스크와 상기 인터럽트 핸들러간의 처리의 천이를 실행하는 인터럽트 태스크 제어 수단과,
    상기 퇴피 처리 수단에 의해 퇴피된 인터럽트 발생시에 실행중인 태스크의 정보를 복귀시켜, 중단되어 있던 태스크의 처리를 재개하는 태스크 복귀 처리 수단
    을 구비하는 화상 단말 장치.
  13. 화상 단말 장치를 구비하는 이동체 통신 시스템으로서,
    상기 화상 단말 장치는,
    인터럽트 마스크에 의해 인터럽트 핸들러로의 인터럽트 통지를 제어하는 인터럽트 제어기와,
    상기 인터럽트의 발생시에 실행중인 태스크의 정보를 퇴피하는 퇴피 처리 수단과,
    상기 인터럽트의 요인에 따라 처리해야 할 인터럽트 처리 태스크를 결정하는 인터럽트 요인 판정 수단과,
    상기 인터럽트 핸들러와는 독립적으로, 인터럽트 요인마다 준비된 인터럽트 접수 가능 상태를 유지하는 인터럽트 관리 수단과,
    인터럽트 처리 태스크에 인터럽트 허가를 제어하는 인터럽트 마스크 해제 수단과,
    상기 인터럽트 관리 수단 및 상기 인터럽트 마스크 해제 수단의 처리에 따라 인터럽트 마스크의 갱신 제어를 행하는 다중 인터럽트 제어 수단과,
    결정된 인터럽트 처리 태스크와 상기 인터럽트 핸들러간의 처리의 천이를 실행하는 인터럽트 태스크 제어 수단과,
    상기 퇴피 처리 수단에 의해 퇴피된 인터럽트 발생시에 실행중인 태스크의 정보를 복귀시켜, 중단되어 있던 태스크의 처리를 재개하는 태스크 복귀 처리 수단을 포함하는 인터럽트 관리 장치
    를 구비하는 이동체 통신 시스템.
  14. 인터럽트 요인마다의 처리를 규정하는 인터럽트 핸들러와,
    상기 인터럽트 핸들러와는 독립적으로, 인터럽트 요인마다 준비된 인터럽트 접수 가능 상태를 유지하는 인터럽트 관리 수단과,
    상기 인터럽트 핸들러와는 독립적으로 마련되고, 인터럽트를 접수하는 인터럽트 요인에 설정하는 마스크를 해제하는 인터럽트 마스크 해제 수단
    을 구비하되,
    상기 인터럽트 핸들러는, 상기 인터럽트 관리 수단과 상기 인터럽트 마스크 해제 수단을 이용하여 인터럽트 마스크를 갱신하는 것에 의해, 인터럽트 요인마다 인터럽트의 허가/금지를 제어하는
    인터럽트 관리 장치.
KR10-2001-7009918A 1999-12-07 2000-12-07 인터럽트 관리 장치, 인터럽트 관리 방법, 기록 매체, 오퍼레이팅 시스템, 신호 처리용 프로세서, 화상 단말 장치 및 이동체 통신 시스템 KR100408351B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-1999-00347294 1999-12-07
JP34729499A JP3600095B2 (ja) 1999-12-07 1999-12-07 割り込み管理装置及び割り込み管理方法
PCT/JP2000/008661 WO2001042918A1 (fr) 1999-12-07 2000-12-07 Procede et dispositif de gestion d'interruption

Publications (2)

Publication Number Publication Date
KR20010103761A true KR20010103761A (ko) 2001-11-23
KR100408351B1 KR100408351B1 (ko) 2003-12-03

Family

ID=18389246

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-7009918A KR100408351B1 (ko) 1999-12-07 2000-12-07 인터럽트 관리 장치, 인터럽트 관리 방법, 기록 매체, 오퍼레이팅 시스템, 신호 처리용 프로세서, 화상 단말 장치 및 이동체 통신 시스템

Country Status (7)

Country Link
US (1) US6820155B1 (ko)
EP (1) EP1189137A4 (ko)
JP (1) JP3600095B2 (ko)
KR (1) KR100408351B1 (ko)
CN (1) CN1162777C (ko)
AU (1) AU1733301A (ko)
WO (1) WO2001042918A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100368197B1 (ko) * 1994-09-09 2003-04-10 가부시끼가이샤 히다치 세이사꾸쇼 데이타처리장치

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2381890B (en) * 2001-11-12 2003-10-29 Mentor Graphics Testing the interrupt sources of a microprocessor
GB2381891B (en) * 2001-11-12 2003-10-29 Mentor Graphics Testing the interrupt priority levels in a microprocessor
CN100444594C (zh) * 2001-12-13 2008-12-17 松下电器产业株式会社 用于执行接收处理的通信装置和方法
US20030204655A1 (en) * 2002-04-24 2003-10-30 Schmisseur Mark A. Prioritizing vector generation in interrupt controllers
JP2004102324A (ja) * 2002-09-04 2004-04-02 Oki Electric Ind Co Ltd 割り込みプログラムモジュール、該モジュールを記録した記録媒体およびモニタのための割り込み処理が可能のコンピュータ
US7373637B2 (en) 2003-09-30 2008-05-13 International Business Machines Corporation Method and apparatus for counting instruction and memory location ranges
US20050071612A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus for generating interrupts upon execution of marked instructions and upon access to marked memory locations
US20050071516A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus to autonomically profile applications
US20050071610A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and apparatus for debug support for individual instructions and memory locations
US7395527B2 (en) 2003-09-30 2008-07-01 International Business Machines Corporation Method and apparatus for counting instruction execution and data accesses
US7937691B2 (en) 2003-09-30 2011-05-03 International Business Machines Corporation Method and apparatus for counting execution of specific instructions and accesses to specific data locations
US7421681B2 (en) 2003-10-09 2008-09-02 International Business Machines Corporation Method and system for autonomic monitoring of semaphore operation in an application
US8381037B2 (en) 2003-10-09 2013-02-19 International Business Machines Corporation Method and system for autonomic execution path selection in an application
US7526757B2 (en) 2004-01-14 2009-04-28 International Business Machines Corporation Method and apparatus for maintaining performance monitoring structures in a page table for use in monitoring performance of a computer program
US7197586B2 (en) * 2004-01-14 2007-03-27 International Business Machines Corporation Method and system for recording events of an interrupt using pre-interrupt handler and post-interrupt handler
US7415705B2 (en) 2004-01-14 2008-08-19 International Business Machines Corporation Autonomic method and apparatus for hardware assist for patching code
US7895382B2 (en) * 2004-01-14 2011-02-22 International Business Machines Corporation Method and apparatus for qualifying collection of performance monitoring events by types of interrupt when interrupt occurs
US7421684B2 (en) 2004-03-22 2008-09-02 International Business Machines Corporation Method and apparatus for autonomic test case feedback using hardware assistance for data coverage
JP4241462B2 (ja) * 2004-03-26 2009-03-18 株式会社デンソー 制御ユニットおよびマイクロコンピュータ
US7080179B1 (en) * 2004-03-26 2006-07-18 Foundry Networks, Inc. Multi-level interrupts
DE102006036107A1 (de) * 2006-04-11 2007-10-18 Siemens Ag Verfahren zur Ermittlung einer Aufgabenerlaubnis
DE102008062692B4 (de) * 2008-12-17 2013-11-14 Texas Instruments Deutschland Gmbh Eingebettetes Mikrocontrollersystem und Verfahren zur Konfiguration eines eingebetteten Mikrocontrollersystems mit gesteuertem Schaltmodus
JP2010204874A (ja) * 2009-03-03 2010-09-16 Nec Corp スレッド制御システム、方法及びプログラム
WO2012086288A1 (ja) * 2010-12-20 2012-06-28 インターナショナル・ビジネス・マシーンズ・コーポレーション 例外の制御方法、システムおよびプログラム
US9710270B2 (en) 2010-12-20 2017-07-18 International Business Machines Corporation Exception control method, system, and program
US9104561B2 (en) * 2012-09-13 2015-08-11 Microsoft Technology Licensing, Llc Failure mode identification and reporting
JP6902948B2 (ja) * 2017-07-13 2021-07-14 日立Astemo株式会社 車両制御装置
EP3462312B1 (en) * 2017-09-29 2022-08-17 ARM Limited Permitting unaborted processing of transaction after exception mask update instruction
CN110399324A (zh) * 2019-06-28 2019-11-01 苏州浪潮智能科技有限公司 中断转换器及中断转换方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1397438A (en) * 1971-10-27 1975-06-11 Ibm Data processing system
JPS60128535A (ja) 1983-12-16 1985-07-09 Nec Corp 割り込み処理装置
JPS63310029A (ja) 1987-06-11 1988-12-19 Mitsubishi Electric Corp 割込み処理システム
JPH0341520A (ja) 1989-07-10 1991-02-22 Nec Corp 割り込み制御方式
JPH05113887A (ja) 1991-10-22 1993-05-07 Nec Corp コンピユータシステム
JP3209560B2 (ja) 1992-02-12 2001-09-17 富士通コミュニケーション・システムズ株式会社 マイクロプロセッサ・システムの割込管理方法
JP2856681B2 (ja) 1994-01-27 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 外部事象を処理する方法およびシステム
US5768599A (en) * 1995-02-28 1998-06-16 Nec Corporation Interrupt managing system for real-time operating system
JPH08297581A (ja) 1995-02-28 1996-11-12 Nec Corp リアルタイム・オペレーティングシステムにおける割り込み管理方式
DE19535546B4 (de) * 1995-09-25 2004-04-08 Siemens Ag Verfahren zum Betreiben eines durch ein Realzeit-Betriebssystem gesteuerten Realzeit-Computersystems
US5995745A (en) * 1996-12-23 1999-11-30 Yodaiken; Victor J. Adding real-time support to general purpose operating systems
US6499078B1 (en) * 1999-07-19 2002-12-24 Microsoft Corporation Interrupt handler with prioritized interrupt vector generator
US6633942B1 (en) * 1999-08-12 2003-10-14 Rockwell Automation Technologies, Inc. Distributed real-time operating system providing integrated interrupt management

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100368197B1 (ko) * 1994-09-09 2003-04-10 가부시끼가이샤 히다치 세이사꾸쇼 데이타처리장치

Also Published As

Publication number Publication date
JP3600095B2 (ja) 2004-12-08
KR100408351B1 (ko) 2003-12-03
US6820155B1 (en) 2004-11-16
JP2001166950A (ja) 2001-06-22
EP1189137A4 (en) 2006-12-13
CN1340171A (zh) 2002-03-13
EP1189137A1 (en) 2002-03-20
AU1733301A (en) 2001-06-18
CN1162777C (zh) 2004-08-18
WO2001042918A1 (fr) 2001-06-14

Similar Documents

Publication Publication Date Title
KR100408351B1 (ko) 인터럽트 관리 장치, 인터럽트 관리 방법, 기록 매체, 오퍼레이팅 시스템, 신호 처리용 프로세서, 화상 단말 장치 및 이동체 통신 시스템
JP3478538B2 (ja) 共通ルーチンを用いた移植性の資源共用ファイルサーバ
JPS62229358A (ja) プロセッサ選択方法
KR20080013914A (ko) 인터럽트를 처리하는 장치 독립형 방법 및 사용자 모드드라이버에 인터럽트를 전달하기 위한 방법
US20050144347A1 (en) Apparatus and method for interrupt control
EP1103890B1 (en) Method for the direct call of a function by a software module by means of a processor with a memory-management-unit (MMU)
JP2006099702A (ja) 情報処理装置およびデータ転送制御方法
JP2003058381A (ja) プログラムによる例外処理設定を可能にしたプロセッサ
JP4057769B2 (ja) 割り込み管理装置及び割り込み管理方法
JP3717722B2 (ja) リアルタイムosのメモリ領域を用いたタスク管理方法
JPS6290728A (ja) 割込処理方法
JPH04241032A (ja) システムコール実行装置
JP2005275703A (ja) プロセッサ及びコンテキスト切り替え方法
JPH05197629A (ja) 記憶保護方式
KR20210063851A (ko) 인터럽트 처리 장치 및 방법
JPH0495137A (ja) オペレーティングシステムのコンテキスト切替方式
JPH064319A (ja) オペレーティング・システムにおける共有ルーチン管理方式
JPH0242559A (ja) 情報処理装置
JPS61184644A (ja) 仮想計算機システム制御方式
JPH0612500A (ja) マイクロプロセッサ
JPS63304360A (ja) ジヨブ実行制御方式
JPH01248240A (ja) プロセス制御方式
JPH10240702A (ja) 並列処理プロセッサおよびその処理方法
JP2000029728A (ja) 割り込み排他処理装置,方法および記録媒体
JPH11249999A (ja) 入出力処理システム

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20111028

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20121102

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee