KR100428799B1 - 폴링방식에 의한 하드웨어 인터럽트 처리 방법 - Google Patents

폴링방식에 의한 하드웨어 인터럽트 처리 방법 Download PDF

Info

Publication number
KR100428799B1
KR100428799B1 KR10-2001-0054203A KR20010054203A KR100428799B1 KR 100428799 B1 KR100428799 B1 KR 100428799B1 KR 20010054203 A KR20010054203 A KR 20010054203A KR 100428799 B1 KR100428799 B1 KR 100428799B1
Authority
KR
South Korea
Prior art keywords
interrupt
processing
interrupt signal
generated
hardware
Prior art date
Application number
KR10-2001-0054203A
Other languages
English (en)
Other versions
KR20030020747A (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 KR10-2001-0054203A priority Critical patent/KR100428799B1/ko
Publication of KR20030020747A publication Critical patent/KR20030020747A/ko
Application granted granted Critical
Publication of KR100428799B1 publication Critical patent/KR100428799B1/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
    • 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
    • G06F9/4825Interrupt from clock, e.g. time of day

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

본 발명은 장비 내부에서 발생하는 하드웨어 인터럽트를 폴링방식으로 처리하여 안정적인 인터럽트 처리가 이루어지도록 한 폴링방식에 의한 하드웨어 인터럽트 처리 방법을 제공하기 위한 것으로, 이러한 본 발명은, 신규로 발생된 인터럽트 신호와 기 설정된 체킹기준시간 이전에 발생된 인터럽트 신호의 존재를 확인하는 인터럽트 존재 확인단계와, 상기 인터럽트 존재 확인단계에 의해 체킹기준시간 이전에 발생된 인터럽트 신호가 없는 상태에서 신규로 인터럽트 신호가 발생되었음이 확인될 경우 그 신규로 발생된 인터럽트 신호에 대한 하드웨어유니트 정보를 저장매체에 일시저장하는 인터럽트 정보저장단계와, 상기 인터럽트 존재 확인단계에 의해 체킹기준시간 이전에 발생된 인터럽트 신호의 존재가 확인될 경우 해당 인터럽트신호가 발생된 하드웨어 유니트의 인터럽트 플래그를 마스킹(MASKing)하고 체킹기준시간 이전에 발생된 해당 인터럽트 신호에 대한 정보를 읽어들여 인터럽트처리를 실행하는 인터럽트 처리단계를 포함하여 이루어지며, 발생되는 인터럽트에 대해 소프트웨어적으로 일정시간 지연시킨 후 해당 인터럽트를 실제 처리함으로써 프로세서 타임의 소비를 방지하여 CPU가 인터럽트 처리 이외의 프로그램 모듈들에 프로세스를 할당할 수 있도록 하며, 기 발생된 인터럽트를 처리하는 동안에 발생되는 인터럽트의 유실을 방지할 수 있다.

Description

폴링방식에 의한 하드웨어 인터럽트 처리 방법 {Hardware interrupt handling method implementing polling scheme}
본 발명은 하드웨어 인터럽트(Hardware Interrupt) 처리에 관한 것으로, 보다 상세하게는 장비 내부에서 발생하는 하드웨어 인터럽트를 폴링방식으로 처리하기 위한 폴링방식에 의한 하드웨어 인터럽트 처리 방법에 관한 것이다.
일반적으로 장비 내부의 프로세서로 로딩되어 각종 유니트들을 초기화하고 제어하는 운영체제 또는 제어로직은 각 유니트들과 관련된 특정한 기능을 수행하기 위한 프로그램들의 수행을 조정/관리한다. 운영체제에 의해 관리되는 응용 프로그램들은 일정 조건이 성취되는 경우에 프로세서에 대해 프로세스를 요청하고 해당 프로세스의 처리결과를 전달받게 된다.
이러한 응용 프로그램과 운영체제간의 프로세스 생성 및 운영과 관련하여 일반적으로 인터럽트 방식이 적용된다. 인터럽트는 프로세스간 수행 순위의 조정과 관련되는 것으로, 실행중인 프로그램을 일시 중단하고 다른 프로그램을 끼워 넣어 실행시키기 위한 것이다.
인터럽트 방식은 인터럽트 요인이 되는 조건이 발생되었을 때 실행중인 프로그램을 중단하고 강제적으로 특정한 주소로 제어를 옮기며, 준비되어 있는 인터럽트 처리 루틴을 수행시키며, 그 처리가 끝나면 원래의 프로그램으로 프로세스를 되돌려 계속 실행한다. 이로써 프로그램의 효율화, 입출력 유니트의 동시 동작, 온라인 처리의 효율화 등이 가능하다. 인터럽트의 종류로는 입출력 종료 인터럽트, 프로그램 인터럽트, 감시 프로그램 호출, 장애 인터럽트 등이 있다.
도1은 종래기술에 따른 인터럽트 처리 방법의 순서도이다.
도1에 따르면, 종래에는 인터럽트 처리 루틴은 장치내에서 인터럽트가 발생되는 경우, 해당 인터럽트의 처리 전에 하드웨어적으로 안정화되는 시간을 경험적으로 측정하여 설정된 대략의 대기시간 동안을 대기시킨다. 따라서 이 대기시간이 경과한 이후에 해당 인터럽트가 실제 처리된다.
즉, 하드웨어 인터럽트가 발생되면 운영체제는 해당 인터럽트를 처리하기 위한 인터럽트 처리 루틴을 기동시키며, 기동된 인터럽트 처리 루틴은 설정된 대기시간 만큼 대기한다. 여기서 대기시간은 일반적인 운영체제에 의해 구동되는 시스템타이머 등에 의해 계수될 수 있으며, 이 대기시간의 경과 여부에 대한 판단은 인터럽트 처리 루틴에서 수행될 수도 있지만 경우에 따라서는 운영체제가 해당 인터럽트를 확인한 이후에 해당 인터럽트 처리 루틴을 기동하기 전에 경과시키는 시간으로 활용할 수도 있다. 후자의 경우에는 인터럽트 처리 루틴내에서 설정된 대기시간만큼을 경과시키기 위한 별도의 순환루프는 요구되지 않는다. 첨부도면은 전자의 예에 따른다(S110~S120).
인터럽트의 발생시부터 인터럽트 처리 루틴에 의해 해당 인터럽트가 실제 처리되기까지의 대기시간을 경과시키기 위한 순환루프는 for루프를 이용하여 용이하게 구현될 수 있다. 다음은 대기시간이 200 단위(여기서 단위의 결정은 각 시스템에 따른다)일 경우에 해당 대기시간을 경과시키기 위한 모듈함수를 c계열의 프로그래밍 언어로 구성한 것을 보인다.
INT_처리모듈()
{
........
for(i=0;i<200;i++)
;
실제 INT 처리 모듈 수행
}
이 설정된 대기시간이 경과하면 인터럽트 처리 루틴은 해당 인터럽트를 실제 처리할 모듈을 수행한다. 그러면 인터럽트의 발생에 따른 인터럽트의 처리가 이루어지게 되며, 이 인터럽트 처리 모듈의 수행이 완료되면 프로세스는 해당 인터럽트 처리 루틴을 호출한 위치로 복귀한다(S130).
이처럼 종래의 인터럽트 처리 방식은 각 유니트에서 발생되는 하드웨어 인터럽트를 확인한 이후 해당 인터럽트가 실제 처리되기까지의 대기시간을 장치가 안정화되는 시간을 고려하여 경험적으로 산정한다. 즉, 장치가 안정화되는 시간 동안 순환루프를 이용하여 소프트웨어적으로 지연시키기 때문에 다음과 같은 문제점이 나타난다.
예정되는 문제점의 하나는 for루프가 수행되는 동안에는 프로세스가 점유되어 다른 처리동작을 수행할 수 없기 때문에 프로세서 시간이 낭비된다. 그러므로 for루프를 수행하는 동안에는 다른 프로그램들로 프로세스가 할당되지 못하기 때문에 다른 어떠한 기능도 수행할 수 없다.
또한, for루프를 수행하는 동안에 다른 인터럽트가 발생되더라도 프로세서에 여유가 없어 해당 인터럽트를 인식하고 지정된 인터럽트 처리 루틴을 호출하기 위한 프로세스를 생성하지 못함으로써 나중에 발생된 인터럽트가 유실될 수도 있다.
본 발명은 상기와 같은 종래의 문제점을 해소하기 위해 창출된 것으로, 본 발명의 목적은 장비 내부에서 발생하는 하드웨어 인터럽트를 폴링방식으로 처리하여 안정적인 인터럽트 처리가 이루어지도록 한 폴링방식에 의한 하드웨어 인터럽트 처리 방법을 제공하는 것이다.
상기 목적을 달성하기 위한 본 발명은 신규로 발생된 인터럽트 신호와 기 설정된 체킹기준시간 이전에 발생된 인터럽트 신호의 존재를 확인하는 인터럽트 존재 확인단계와, 상기 인터럽트 존재 확인단계에 의해 체킹기준시간 이전에 발생된 인터럽트 신호가 없는 상태에서 신규로 인터럽트 신호가 발생되었음이 확인될 경우 그 신규로 발생된 인터럽트 신호에 대한 하드웨어유니트 정보를 저장매체에 일시저장하는 인터럽트 정보저장단계와, 상기 인터럽트 존재 확인단계에 의해 체킹기준시간 이전에 발생된 인터럽트 신호의 존재가 확인될 경우 해당 인터럽트신호가 발생된 하드웨어 유니트의 인터럽트 플래그를 마스킹(MASKing)하고 체킹기준시간 이전에 발생된 해당 인터럽트 신호에 대한 정보를 읽어들여 인터럽트처리를 실행하는 인터럽트 처리단계로 이루어진 폴링방식에 의한 하드웨어 인터럽트 처리방법을 제공한다.
도1은 종래기술에 따른 인터럽트 처리 방법의 순서도.
도2는 본 발명에 따른 인터럽트 처리의 타이밍도.
도3은 본 발명에 따른 폴링방식에 의한 하드웨어 인터럽트 처리 방법의 개략적인 흐름도.
도4는 본 발명에 따른 폴링방식에 의한 하드웨어 인터럽트 처리 방법의 순서도.
이하, 첨부도면을 참조하여 본 발명에 따른 바람직한 실시예를 설명한다.
도2는 본 발명에 따른 인터럽트 처리의 타이밍도이며, 도3은 본 발명에 따른 폴링방식에 의한 하드웨어 인터럽트 처리 방법의 개략적인 흐름도이며, 도4는 본 발명에 따른 폴링방식에 의한 하드웨어 인터럽트 처리 방법의 순서도이다.
본 실시예는 일반적인 폴링처리 방식을 이용하여 각 하드웨어 유니트에서 발생되는 인터럽트를 처리한다. 일반적으로 폴링(Polling) 방식은 컴퓨터 시스템에서의 센터와 단말간 데이터 교환의 타이밍을 잡기 위한 방법으로, 센터쪽에서 다수의 단말에 대해 순차 데이터 교환의 요구가 있는지 여부를 판단하고 해당 요구가 있을 때에 일정 시간 동안만 그 단말이 센터쪽에 접속되도록 하는 것을 지칭하며, 통신시스템 등에 적용되어 제어국과 종속국간의 폴링 및 셀렉팅(Selecting)이 이루어지도록 한다.
도2에 따르면, 폴링처리 방식을 적용하기 위해 일정 주기를 갖는 지정시각 t1, t2, t3, t4, ...을 설정하고, 임의의 시점에 하드웨어 인터럽트가 발생되는 여부를 확인한다. 그러면 시간축상에 [t1, t2], [t2, t3], ... 등과 같이 일정크기의 구간이 형성된다. 여기서 지정시간은 CPU(Central Processing Unit)의 단위클럭 시간으로 설정하거나 별도의 클럭원에서 안정적으로 공급되는 시스템 클럭의 주기에 따라 설정할 수 있다. 이 지정시각간의 간격을 클럭주기라 칭하기로 한다.
예를 들어 구간 [t1,t2]내 시점 ①에서 인터럽트(INT#1)가 발생된다면, 프로세서가 해당 인터럽트의 발생을 검출하는 시점 ②는 시스템의 특성에 따른 지연시간을 경과한 이후가 된다. 구간 [t2,t3]내 시점 ②에서 인터럽트(INT#1)의 발생이 검출되면, 프로세서는 해당 인터럽트를 실제 처리하지 않고 일시 저장한다. 폴링방식에 따르면, 각 종속국에서 발생된 프로세스 요구는 제어국에서 그 발생순서를 인식하는 순서에 따라 수행되어지므로 여기서도 발생된 순서로 인터럽트를 처리한다.
이처럼 구간 [t2,t3]에서 검출된 인터럽트(INT#1)는 시점 ③에서 다른 인터럽트들과 구분되어 저장되는데, 해당 인터럽트(INT#1)가 발생된 하드웨어 유니트를 나타내는 정보도 함께 저장된다. 이 처리동작은 해당 인터럽트(INT#1)의 발생을 인지한 프로세서에 의해 즉시 수행되기 때문에 현저한 지연시간은 없다.
검출된 인터럽트(INT#1)와 해당 유니트 정보를 저장함으로써 저장매체에 인터럽트 관련 정보들이 구성된다. 구성된 인터럽트 정보를 참조하여 처리 대기중인 인터럽트들을 확인할 수 있다. 즉, 프로세서는 다음번 지정시각(t3)에 저장매체를 검색하여 대기중인 인터럽트에 대해 설정된 우선순위에 따라 시점 ④에서 순차적으로 인터럽트 처리 모듈을 호출함으로써 인터럽트의 실제 처리가 이루어지도록 한다. 여기서 인터럽트를 처리하는 우선순위는 시스템이나 운영체제의 특성에 따라 적정하게 설정될 수 있다.
따라서 인터럽트가 발생된 이후에 실제 처리가 이루어지기까지의 시간은 상기 정의된 클럭주기를 기준으로 {1클럭주기(t3-t2) <= 지연시간 < 2클럭주기(t3-t1)}이 된다. 그럼으로써 하드웨어 인터럽트가 발생된 후 해당 유니트가 안정화되기까지의 시간으로 예측된 지연시간만큼의 시간지연이 이루어지게 된다.
도3에는 본 실시예에서 인터럽트를 폴링 방식으로 처리하는 흐름과 이 흐름의 각 단계에서 특정 기능을 담당하는 처리모듈들이 예시되어 있다.
인터럽트 처리루틴(Interrupt Service Routine, 또는 ISR)은 임의의 시간에 발생되는 하드웨어 인터럽트에 식별용 표식을 포함시켜 큐(Queue) 방식의 저장매체인 인터럽트 큐(IntQueue)(350)에 저장한다. 인터럽트 큐(350)는 각 하드웨어 유니트에서 발생되는 인터럽트와 해당 유니트 ID와 상기 정의된 클럭주기에 대한 정보를 저장한다. 인터럽트 처리루틴(Interrupt Service Routine, 또는 ISR)이 인터럽트의 발생을 감지하는 시간 주기는 상기 정의된 클럭주기와 같이 설정될 수 있다.
그리고 각 유니트에서 발생되는 인터럽트간의 식별을 위한 표식은 플래그(Flag)(320) 비트를 이용하여 구현할 수 있다. 이때 프로세서는 플래그(320)의 확인과 인터럽트 큐(350)에의 저장을 담당하고 인터럽트 큐(350)에서 인터럽트를 읽어 들여 실제 인터럽트를 처리하기 위한 모듈을 호출하는 기능을 담당하는 모듈인 인터럽트 핸들러(IntHndr)(330)를 운용할 수 있다.
인터럽트 핸들러(330)는 인터럽트의 발생이 인지되는 경우에 해당 인터럽트에 대한 실제 처리가 완료되기 전까지 해당 유니트로부터 추가적인 인터럽트가 발생되지 않도록 하기 위해 해당 유니트에 표식을 달게 된다. 이 표식이 인터럽트 플래그(INT flag)(340)이다.
인터럽트 핸들러(330)는 각 클럭주기마다 인터럽트 큐(350)를 검색하여 인터럽트를 인터럽트 수행 모듈(IntProc)(360)을 구동시킨다. 인터럽트 수행모듈(360)은 해당 인터럽트의 수행시 맵 데이터(Map Data)와 맵 핸들러(Map Handler)(370)를 참조한다.
더불어 인터럽트가 연속적으로 발생되는 경우에는 인터럽트 트랜지션 제어모듈(Interrupt Transition Controller, 또는 ITC)(380)이 구동되어 과도한 인터럽트에 대한 처리를 수행한다. 즉, 인터럽트 트랜지션 제어모듈(380)은 인터럽트의 과도한 발생과 같은 예외상황(Exception)을 처리하는 것이다. 소프트웨어 프로그램상에서 각 처리모듈에서 예정되는 예외상황을 처리하는 방식은 잘 알려져 있다.
인터럽트 트랜지션 제어모듈(380)이 과도 인터럽트에 대한 처리를 완료하게 되면, 추가적인 인터럽트가 발생되지 않는 경우에 인터럽트 처리루틴 호출모듈(TriggerISR)(390)이 인터럽트 처리루틴을 호출하여 이후에 발생되는 하드웨어 인터럽트에 대한 일련의 처리 동작이 이루어지도록 한다.
이러한 각종 모듈들의 기능적 연관에 따라 각 하드웨어 유니트에서 발생되는 인터럽트들의 처리 흐름이 형성된다. 이하, 언급된 모듈들의 기능적 연관이 나타나도록 인터럽트 처리 과정을 설명한다.
도4에 따르면, 인터럽트 핸들러(360)는 각 클럭주기마다 처리하여야 할 인터럽트가 존재하는지 여부를 판단한다. 처리대상 인터럽트의 존재는 인터럽트 큐(350)에 인터럽트가 저장되어 있는 경우에 인정된다. 큐 방식의 저장매체인 인터럽트 큐(350)상에서 각 인터럽트 아이템을 검색하는 방식은 잘 알려져 있다(S410).
단계 S410에서 인터럽트 아이템이 존재하는 것으로 판정되면, 해당 인터럽트를 발생시킨 하드웨어 유니트에서 더 이상 추가적인 인터럽트가 발생되지 못하도록 인터럽트 플래그(340)를 설정한다. 이는 인터럽트 플래그(340)를 매스킹(Masking) 함으로써 달성된다(S420).
그리고 인터럽트 핸들러(360)는 해당 인터럽트에 대한 실제 처리를 수행하는 인터럽트 수행 모듈인 IntProc(360)을 호출하여 해당 인터럽트의 처리를 완료한다(S430).
단계 S430에서 인터럽트 수행 모듈(360)에 의해 인터럽트의 처리가 완료되면, 해당 유니트와 관련되어 매스킹 되어 있던 인터럽트 플래그(340)의 매스킹이 해제된다. 인터럽트 플래그(340)의 매스킹 관리는 메인 프로세서 유니트(Main Processor Unit, 또는 MFU) 등의 프로세서가 담당한다(S440).
이처럼 검색된 인터럽트의 처리가 수행되는 동안 또는 그 수행이 완료된 이후에도 클럭주기는 반복적으로 도래한다. 따라서 클럭주기마다 새로운 인터럽트의 발생 여부를 확인하여야 한다.
임의의 클럭주기에서 인터럽트의 신규발생이 확인되는 경우의 인터럽트 처리와 관련된 동작은 다음과 같다.
우선, MFU는 인터럽트의 발생여부를 확인하기 위해 다음번 클럭주기에서 플래그(320)를 읽게 된다. 플래그(320)는 인터럽트의 발생시 MFU의 인터럽트 처리루틴이 해당 인터럽트의 발생을 인지하였음을 표시한다. 따라서 MFU는 이플래그(320)를 참조함으로써 각 유니트에서 새로운 인터럽트가 발생되는지 여부를 확인할 수 있다(S450~S460).
단계 S460에서 플래그(320)에 의해 인터럽트의 발생이 표시되는 경우, MFU는 인터럽트 핸들러(330)를 호출하여 인터럽트를 발생시킨 유니트 관련 정보를 확인한다. 이때 확인되는 유니트 관련 정보는 해당 유니트의 식별을 위한 유니트 ID 등을 포함한다(S470).
인터럽트를 신규로 발생시킨 유니트에 관한 유니트 ID 등의 정보가 확인되면, 해당 정보를 인터럽트 큐(350)에 저장한다(S480).
여기서 인터럽트 핸들러(330)는 인터럽트 큐(350)에서 인터럽트 아이템을 검색하므로 신규로 발생된 인터럽트가 있는 경우, 해당 인터럽트가 기 존재하는 인터럽트와 동일한 유니트에서 발생되는 것으로 판단되면 과도한 인터럽트의 발생으로 인한 예외상황이 도래된 것으로 판단할 수 있다. 이러한 과도 인터럽트의 발생시에는 인터럽트 트랜지션 제어 모듈인 IntProc(360)이 호출되어 설정된 방식으로 과도 인터럽트를 처리한다. 과도 인터럽트의 발생이 확인되지 않는 경우에는 인터럽트 큐(350)에 유니트 ID를 저장하는 동작은 유효하며, 이 인터럽트는 다음번 클럭주기에서 처리될 것이다(S490).
이처럼 인터럽트의 발생을 인지하여 순차적으로 인터럽트 큐(350)에 기록하는 동작과 발생된 인터럽트를 인터럽트 큐(350)에서 검색하여 순차적으로 해당 인터럽트를 처리하는 동작은 서로 독립적으로 수행될 수 있다.
단계 S460에서 해당 클럭주기에 새로운 인터럽트의 발생이 확인되지 않는 경우나 단계 S490에서 신규로 발생된 인터럽트의 기록이 완료되는 경우 또는 과도 인터럽트의 처리가 완료된 경우, 프로세서(MFU)는 각 클럭주기마다 인터럽트 큐(350)를 검색하여 인터럽트를 처리하는 동작을 반복 수행한다.
따라서 본 실시예는 폴링처리 방식을 이용하여 하드웨어 인터럽트를 처리함으로써 인터럽트의 발생시점으로부터 해당 유니트의 실제 처리가 이루어지기까지의 시간을 안정적으로 확보함으로써 인터럽트의 발생시 하드웨어의 안정화에 요구되는 지연시간을 확보할 수 있다.
이상 설명한 실시예는 본 발명의 다양한 변화, 변경 및 균등물의 범위에 속한다. 따라서 실시예에 대한 기재내용으로 본 발명이 한정되지 않는다.
본 발명의 폴링방식에 의한 하드웨어 인터럽트 처리 방법에 따르면, 발생되는 인터럽트에 대해 소프트웨어적으로 일정시간 지연시킨 후 해당 인터럽트를 실제 처리함으로써 지연시간 동안에 프로세서 타임을 소비를 방지하여 CPU가 인터럽트 처리 이외의 프로그램 모듈들에 프로세스를 할당할 수 있도록 하는 효과가 있다.
더불어 본 발명은 기 발생된 인터럽트를 처리하는 동안에 다른 인터럽트가 발생되어도 나중의 인터럽트를 유실하지 않게 됨으로써 인터럽트 처리의 안정성과 신뢰성을 향상시키는 효과가 있다.

Claims (8)

  1. 신규로 발생된 인터럽트 신호와 기 설정된 체킹기준시간 이전에 발생된 인터럽트 신호의 존재를 확인하는 인터럽트 존재 확인단계와,
    상기 인터럽트 존재 확인단계에 의해 체킹기준시간 이전에 발생된 인터럽트 신호가 없는 상태에서 신규로 인터럽트 신호가 발생되었음이 확인될 경우 그 신규로 발생된 인터럽트 신호에 대한 하드웨어유니트 정보를 저장매체에 일시저장하는 인터럽트 정보저장단계와,
    상기 인터럽트 존재 확인단계에 의해 체킹기준시간 이전에 발생된 인터럽트 신호의 존재가 확인될 경우 해당 인터럽트신호가 발생된 하드웨어 유니트의 인터럽트 플래그를 마스킹(MASKing)하고 체킹기준시간 이전에 발생된 해당 인터럽트 신호에 대한 정보를 읽어들여 인터럽트처리를 실행하는 인터럽트 처리단계로 이루어진 것을 특징으로 하는 폴링방식에 의한 하드웨어 인터럽트 처리방법.
  2. 제 1항에 있어서, 상기 인터럽트 정보저장단계와 인터럽트 실제처리 단계는 설정된 클럭주기마다 수행되는 것을 특징으로 하는 폴링방식에 의한 하드웨어 인터럽트 처리방법.
  3. 제 1항에 있어서, 상기 인터럽트 존재확인단계에는 임의의 하드웨어유니트가 인터럽트신호를 발생시킬경우 인터럽트 처리루틴이 설정된 플래그 값을 가변시켜 인터럽트신호 발생을 표시하는 표시단계를 더 포함하는 것을 특징으로 하는 폴링방식에 의한 하드웨어 인터럽트 처리방법.
  4. 제 1항에 있어서, 상기 인터럽트 정보저장단계의 저장매체는 발생된 인터럽트신호에 대한 관련정보를 인터럽트 큐에 순차적으로 기록하고 CPU가 해당 정보를 순차적으로 엑세스 할 수 있도록 하는 것을 특징으로 하는 폴링방식에 의한 하드웨어 인터럽트 처리방법.
  5. 제 4항에 있어서, 상기 저장매체에 저장되는 정보는 인터럽트신호가 발생된 각 하드웨어 유니트의 고유 ID, 인터럽트신호 내용, 설정된 클럭주기를 포함하는 것을 특징으로 하는 폴링방식에 의한 하드웨어 인터럽트 처리방법.
  6. 제 1항에 있어서, 상기 인터럽트 실제처리단계 중에 신규로 발생되는 인터럽트신호가 과도하게 입력될 경우 과도 인터럽트신호 처리를 수행하는 과도 인터럽트 수행단계를 더 포함하는 것을 특징으로 하는 폴링방식에 의한 하드웨어 인터럽트 처리 방법.
  7. 제 1항에 있어서, 상기 인터럽트 실제처리단계에는 저장매체에 기록된 각 인터럽트 신호를 읽어 들이는 제 1 단계와,
    상기 제 1 단계에 의해 읽혀진 인터럽트 신호를 발생시켰던 하드웨어 유니트에 할당된 인터럽트 플래그의 값을 가변시켜 해당 유니트에서 재차 인터럽트 신호가 발생되지 않도록 제어하는 제 2 단계와,
    상기 제 2 단계에 의해 인터럽트 플래그의 가변이 이루어진 후에 상기 읽혀진 인터럽트신호의 실제 처리를 담당하는 인터럽트 처리 모듈을 호출하여 해당 인터럽트신호의 처리를 수행하는 제 3 단계와,
    상기 제 3 단계에 의해 인터럽트 처리 모듈의 수행이 완료될 경우 상기 인터럽트 플래그 값을 가변시켜 재차 인터럽트의 발생이 방지된 상태를 해제하는 제 4 단계로 이루어진 것을 특징으로 하는 폴링방식에 의한 하드웨어 인터럽트 처리 방법.
  8. 제 1항에 있어서, 상기 인터럽트 실제처리단계는 인터럽트 핸들러에 의해 수행되며, 상기 인터럽트 핸들러는 설정된 클럭주기마다 호출되는 것을 특징으로 하는 폴링방식에 의한 하드웨어 인터럽트 처리 방법.
KR10-2001-0054203A 2001-09-04 2001-09-04 폴링방식에 의한 하드웨어 인터럽트 처리 방법 KR100428799B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0054203A KR100428799B1 (ko) 2001-09-04 2001-09-04 폴링방식에 의한 하드웨어 인터럽트 처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0054203A KR100428799B1 (ko) 2001-09-04 2001-09-04 폴링방식에 의한 하드웨어 인터럽트 처리 방법

Publications (2)

Publication Number Publication Date
KR20030020747A KR20030020747A (ko) 2003-03-10
KR100428799B1 true KR100428799B1 (ko) 2004-04-28

Family

ID=27722443

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0054203A KR100428799B1 (ko) 2001-09-04 2001-09-04 폴링방식에 의한 하드웨어 인터럽트 처리 방법

Country Status (1)

Country Link
KR (1) KR100428799B1 (ko)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR860003556A (ko) * 1984-10-30 1986-05-26 사바 쇼오이찌 인터럽트 제어 시스템
KR890005052A (ko) * 1986-12-22 1989-05-11 기오르지오 스키니나 신규 피페리딘 유도체
US5463752A (en) * 1992-09-23 1995-10-31 International Business Machines Corporation Method and system for enhancing the efficiency of communication between multiple direct access storage devices and a storage system controller
US5822595A (en) * 1995-12-29 1998-10-13 Intel Corporation Method and apparatus for providing an interrupt handler employing a token window scheme
KR19990080251A (ko) * 1998-04-14 1999-11-05 김영환 인터럽트 손실 방지 장치
KR20010082982A (ko) * 2000-02-22 2001-08-31 윤종용 확장된 인터럽트 벡터를 사용하는 인터럽트 제어 시스템및 인터럽트 제어 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR860003556A (ko) * 1984-10-30 1986-05-26 사바 쇼오이찌 인터럽트 제어 시스템
KR890005052A (ko) * 1986-12-22 1989-05-11 기오르지오 스키니나 신규 피페리딘 유도체
US5463752A (en) * 1992-09-23 1995-10-31 International Business Machines Corporation Method and system for enhancing the efficiency of communication between multiple direct access storage devices and a storage system controller
US5822595A (en) * 1995-12-29 1998-10-13 Intel Corporation Method and apparatus for providing an interrupt handler employing a token window scheme
KR19990080251A (ko) * 1998-04-14 1999-11-05 김영환 인터럽트 손실 방지 장치
KR20010082982A (ko) * 2000-02-22 2001-08-31 윤종용 확장된 인터럽트 벡터를 사용하는 인터럽트 제어 시스템및 인터럽트 제어 방법

Also Published As

Publication number Publication date
KR20030020747A (ko) 2003-03-10

Similar Documents

Publication Publication Date Title
US5659759A (en) Data processing device having improved interrupt controller to process interrupts of different priority levels
WO1999038074A1 (en) Method and apparatus for handling multiple level-triggered and edge-triggered interrupts
CN102761439A (zh) Pon接入系统中基于看门狗的异常检测记录装置及方法
WO1999027434A1 (en) Using firmware to enhance the functionality of a controller
US20040031034A1 (en) System, method and software for reducing interrupt latency while polling in system management mode
US20040098722A1 (en) System, method, and computer program product for operating-system task management
US5280618A (en) Interrupt test circuit for microprocessor system
US6865636B1 (en) Multitasking processor system for monitoring interrupt events
KR100954661B1 (ko) Sm버스에 대한 aml 액세스를 용이하게 하는 시스템과, sm버스 이벤트 핸들링 시스템, 방법 및 컴퓨터 판독가능 매체
CN110955503B (zh) 任务调度方法及装置
KR100428799B1 (ko) 폴링방식에 의한 하드웨어 인터럽트 처리 방법
JP4334026B2 (ja) コンピュータシステム、およびその中でシステム管理割込を発生し処理するための方法
US6920513B2 (en) Bus management techniques
US7043565B1 (en) System and method for transferring data over an external transmission medium
CN100492299C (zh) 一种嵌入式软件开发的方法及系统
CN113806153A (zh) 一种芯片验证方法
JPS5856039A (ja) マイクロ・プログラムのオ−バレイ制御方式
EP0614148B1 (en) Data processing apparatus
JPS5826043B2 (ja) プロセツサのリセツト方式
CN110955507B (zh) 基于vxWorks系统的多任务访问同一IIC总线的方法
US8631176B2 (en) Asynchronous communications technique
JP2002312302A (ja) 周辺装置
CN113778640A (zh) 任务执行方法、装置、电子设备及存储介质
CN117873576A (zh) 一种低压物联开关智能识别、加载模块方法
CN115809121A (zh) 用于上下文切换的方法和装置

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
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: 20130319

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20140317

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20150313

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee