KR100977662B1 - 2-레벨 인터럽트 서비스 루틴을 제공하기 위한 방법 및 프로세서 - Google Patents

2-레벨 인터럽트 서비스 루틴을 제공하기 위한 방법 및 프로세서 Download PDF

Info

Publication number
KR100977662B1
KR100977662B1 KR1020087023288A KR20087023288A KR100977662B1 KR 100977662 B1 KR100977662 B1 KR 100977662B1 KR 1020087023288 A KR1020087023288 A KR 1020087023288A KR 20087023288 A KR20087023288 A KR 20087023288A KR 100977662 B1 KR100977662 B1 KR 100977662B1
Authority
KR
South Korea
Prior art keywords
interrupt
identifier
stored
processor
service routine
Prior art date
Application number
KR1020087023288A
Other languages
English (en)
Other versions
KR20080098432A (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 KR20080098432A publication Critical patent/KR20080098432A/ko
Application granted granted Critical
Publication of KR100977662B1 publication Critical patent/KR100977662B1/ko

Links

Images

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
    • 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

Abstract

프로세서는 2-레벨 인터럽트 서비스를 제공한다. 일 실시예에서, 프로세서는 저장 장치 및 인터럽트 조절기를 포함한다. 저장 장치는 인터럽트 요청에 대응하는 인터럽트 식별자를 저장하도록 구성된다. 인터럽트 조절기는 인터럽트 요청을 인지하고, 인터럽트 요청의 인지에 반응하여 공통 인터럽트 서비스 루틴을 개시하며, 저장된 인터럽트 식별자에 대응하는 인터럽트 서비스 루틴을 개시하도록 구성된다.

Description

2-레벨 인터럽트 서비스 루틴을 제공하기 위한 방법 및 프로세서{TWO-LEVEL INTERRUPT SERVICE ROUTINE}
본 발명은 일반적으로 인터럽트 조절 루틴, 특히 프로세서에서의 2-레벨 인터럽트 조절 루틴에 관한 것이다.
컴퓨팅 시스템, 예컨대 서버, 데스크탑 컴퓨터, 및 휴대용 컴퓨터, 이동전화, 개인휴대단말 등과 같은 이동장치는 통상적으로 하나 이상의 프로세서, 휘발성 및 비휘발성 메모리, 제어기, 및 키보드, 키패드, 마우스, 디스플레이, 이어피스 등과 같은 주변장치를 포함한다. 컴퓨팅 시스템의 다양한 컴포넌트들은 하나 이상의 시스템 및/또는 주변 버스들을 통해 상호 접속되며, 이러한 버스들을 통해 데이터, 어드레스 및/또는 제어 정보는 시스템에 포함된 프로세서(들) 및 주변장치들사이에서 전송된다.
주변 장치가 서비싱(servicing)를 요구할때, 장치는 인터럽트 신호(interrupt signal)를 활성화시킬 수 있다. 인터럽트는 시스템 프로세서가 인터럽트 요청을 서비스하기 위하여 정상 프로그램 흐름을 일시적으로 중단하도록 한다. 일반적으로, 인터럽트 제어기는 주변 장치들에 의하여 발생된 다양한 인터럽트 신호들에 대하여 우선순위를 부여하여 처리한다. 이러한 이유로, 인터럽트 제어기는 주변장치들 및 시스템 프로세서간의 인터페이스로서 기능을 한다. 따라서, 시스템 프로세서는 다양한 주변 장치들에 의하여 발생된 인터럽트 요청들을 관리하고 우선순위를 부여하며 스케줄링하는 것과 관련된 저레벨 태스크(low-level task)들에 의하여 부하가 걸리지 않는다. 시스템 프로세서가 인터럽트 요청들을 서비스할때 초기에 주변장치들과 직접 인터페이싱하지 않기 때문에, 프로세서는 주변 장치 요청 서비싱(servicing)에 대응하는 인터럽트 서비스 루틴(ISR: Interrupt Service Routine)을 식별하기 위한 어드레스 또는 다른 정보가 제공되어야 한다. ISR는 특정 주변장치에 의하여 발생된 인터럽트들을 서비스한다. 일반적으로, 다수의 ISR들은 메모리내에 유지되며, 각각의 ISR은 상이한 주변 장치와 연관된다.
종래의 한 방법에서, ISR과 연관된 어드레스는 시스템 버스를 통해 시스템 프로세서에 전송된다. 특히, 인터럽트 제어기는 인터럽트 요청들을 시스템 제어기에 송출(issue)한다. 적절한 시간에, 시스템 프로세서는 요청에 확인응답(acknowledge)한다. 이러한 초기 인터럽트 요청 및 확인응답(acknowledgment) 시그널링은 보통 인터럽트 제어기 및 시스템 프로세서간의 직통 신호 라인들을 통해 발생한다. 인터럽트 요청에 확인응답한 후에, 시스템 프로세서는 모든 인터럽트들에 공통인 태스크들을 조절하기 위하여 종종 제 1-레벨 인터럽트 조절기(FLIH: First-Level Interrupt Handler) 루틴으로서 지칭되는 공통 인터럽트 조절기 루틴을 실행한다. 예컨대, FLIH 루틴들은 인터럽트된 명령 또는 루틴의 상태를 저장하고, 특정 인터럽트를 처리하는데 필요한 동작(action)을 결정하며, 보통 제 2 레벨 인터럽트 조절기(SLIH) 루틴들로서 지칭되는 장치-특정 ISR들의 실행을 스케줄링할 수 있다. SLIH 루틴들은 특정 주변 장치들과 연관된 인터럽트들을 처리한다. 시스템 프로세서는 인터럽트 제어기로부터 수신된 어드레스 정보와 연관된 메모리 위치를 액세스함으로써 SLIH 루틴을 개시한다.
인터럽트 제어기는 시스템 버스를 통해 시스템 프로세서에 ISR 어드레스 정보를 제공한다. 시스템 버스를 통해 ISR 어드레스 정보를 전송하면 시스템 프로세서에 의한 특정 SLIH 루틴의 개시가 지연된다. 컴퓨팅 시스템내에서 발생하는 특정 활성화(activity)에 따르면, 시스템 버스를 통해 ISR 어드레스 정보를 획득하는 것과 연관된 지연은 너무 길 수 있다. 예컨대, 만일 시스템 프로세서가 메모리로부터 다량의 데이터를 판독 또는 기록하거나 또는 다른 주변 장치들을 서비스하고 있는 중이면, 어드레스 정보를 획득하기 위하여 시스템 버스에 대하여 액세스하는 과정은 상당히 지연될 수 있다.
2번째의 종래의 방법은 시스템 버스를 통해 시스템 프로세서에 ISR 어드레스 정보를 전송하는 것과 연관된 지연을 제거한다. 특히, 어드레스 정보는 전용 버스를 통해 인터럽트 제어기로부터 시스템 프로세서에 직접 전송된다. 예컨대, ARM 홀딩스 plc는 인터럽트 제어기로부터 시스템 프로세서에 직접 ISR 어드레스 정보를 전송하기 위하여 전용 버스를 가진 벡터링 인터럽트 제어기(Vectored Interrupt Controller)(부품 번호 PL192, 문서 참조번호 ARM DDI 0273A)를 제공한다. 이러한 이유로, 시스템 프로세서는 대응하는 SLIH 루틴들을 더 신속하게 개시할 수 있다.
그러나, 시스템 프로세서들은 통상적으로 후속 사용을 위하여 프로세서내에 ISR 어드레스 정보를 국부적으로 저장하지 않는다. 대신에, 종래의 프로세서는 전용 버스를 통해 인터럽트 제어기로부터 ISR 어드레스 정보를 수신할때 공통 FLIH 루틴을 먼저 실행하지 않고 대응하는 SLIH 루틴을 즉시(immediately) 개시한다. 즉, 프로세서는 공통 FLIH 코드를 실행하지 않고 특정 SLIH 루틴과 연관된 메모리 위치로 즉시 점프한다. 따라서, 각각의 SLIH 루틴은 비효율적으로 두번 반복하고, 에러의 가능성을 증가시키며 코드 이식성(portability)을 감소시키는 공통 제 1 레벨 인터럽트 조절 코드를 포함해야 한다.
여기에서 제시된 방법들 및 장치들에 따르면, 2-레벨 인터럽트 서비싱(servicing)을 제공하는 프로세서가 제공된다. 하나 이상의 실시예들에서, 프로세서는 저장 장치 및 인터럽트 조절기를 포함한다. 저장 장치는 인터럽트 요청에 대응하는 인터럽트 식별자를 저장하도록 구성된다. 인터럽트 조절기는 인터럽트 요청을 인지(recognize)하고, 인터럽트 요청을 인지하는 것에 반응하여 공통 인터럽트 서비스 루틴을 개시하며, 저장된 인터럽트 식별자에 대응하는 인터럽트 서비스 루틴을 후속적으로 개시하도록 구성된다.
따라서, 일 실시예에서, 프로세서는, 인터럽트 요청을 인지하고 인터럽트 요청에 대응하는 인터럽트 식별자를 저장하며 인터럽트 요청의 인지에 반응하여 공통 인터럽트 서비스 루틴을 개시하며 저장된 인터럽트 식별자에 대응하는 인터럽트 서비스 루틴을 후속적으로 개시함으로써, 인터럽트를 서비스한다.
본 발명의 일 실시예에 따른 앞의 장치들 및 방법들에 상응하게, 프로세서에 의하여 인터럽트들을 서비스하기 위하여 컴퓨터 판독가능 매체상에 저장된 상호 보완적인 컴퓨터 프로그램 제품은 인터럽트 요청을 인지하고 인터럽트 요청에 대응하는 인터럽트 식별자를 저장하며 인터럽트 요청을 인지하는 것에 반응하여 공통 인터럽트 서비스 루틴을 개시하며 저장된 인터럽트 식별자에 대응하는 인터럽트 서비스 루틴을 후속적으로 개시하기 위한 프로그램 명령들을 포함한다.
물론, 본 발명은 앞의 특징들에 제한되지 않는다. 당업자는 이하의 상세한 설명 및 첨부 도면들을 고려할때 추가 특징들을 인지할 것이다.
도 1은 인터럽트 조절기를 포함하는 프로세서의 일 실시예를 도시한 블록도이다.
도 2는 인터럽트 조절기에 의하여 2-레벨 인터럽트 서비스 루틴을 구현하기 위한 프로그램 로직의 일 실시예를 기술한 흐름도이다.
도 3은 저장된 인터럽트 식별자를 프로그램 카운터에 로드하기 위한 프로그램 로직의 일 실시예를 기술한 논리 흐름도이다.
도 4는 저장된 인터럽트 식별자를 프로그램 카운터에 로드하기 위한 프로그램 로직의 다른 실시예를 기술한 논리 흐름도이다.
도 5는 인터럽트 조절기에 의하여 2-레벨 인터럽트 서비스 루틴을 구현하기 위한 프로그램 로직의 또 다른 실시예를 기술한 논리 흐름도이다.
도 1은 인터럽트 조절기(handler)(12)를 포함하는 프로세서(10)의 일 실시예를 도시한다. 프로세서(10)는 인터럽트 조절(interrupt handling)을 포함하는 임의의 동작들을 취하도록 프로세서(10)에 명령하는 머신 명령들의 집합(collection)을 실행한다. 특히, 프로세서(10)에 포함된 인터럽트 조절기(12)는 프로세서(10)에 의하여 수신된 인터럽트 요청들을 서비스한다. 인터럽트 요청의 확인응답으로, 인터럽트 조절기(12)는 인터럽트 제어기(14)로부터의 인터럽트 식별자(IRQ_ID), 즉 주변장치(도시안됨) 요청 서비스와 연관된 어드레스 또는 다른 정보를 수신한다. 인터럽트 조절기(12)는 예컨대 여러 프로세서 레지스터들(16)중 하나 또는 프로세서(10)에 포함된 메모리(18)에 인터럽트 식별자를 저장함으로써 프로세서(10)에 인터럽트 식별자를 저장한다. 인터럽트 요청에 반응하여, 프로세서(10)는 현재 실행중인 임의의 명령 또는 이의 일부분을 종료하거나 또는 일시 중지한다.
인터럽트 요청에 반응할때, 인터럽트 조절기(12)는 모든 인터럽트들에 공통인 태스크들(task)을 조절하기 위하여 제 1레벨 인터럽트 조절기(FLIH: First-Level Interrupt Handler) 루틴으로서 종종 지칭되는 공통 인터럽트 서비스 루틴(ISR: Interrupt Service Routine)을 실행한다. 예컨대, 공통 FLIH 루틴은 낮은 우선순위 인터럽트들을 디스에이블하는 루틴, 서비스를 위한 높은 우선순위 인터럽트들을 인에이블하는 루틴, 인터럽트 요청의 원인(cause)을 식별하는 루틴, 프로세서(10)의 상태에 대응하는 정보를 스택에 저장하는 루틴, 및 장치-특정 ISR의 실행을 스케줄링하는 루틴중 하나 이상의 루틴을 포함할 수 있다. FLIH 루틴을 호출(invoke)한후에, 인터럽트 조절기(12)는 특정 주변 장치 또는 장치들에 의하여 송출된 인터럽트 요청을 처리하기 위하여 일반적으로 제 2 레벨 인터럽트 조절기(SLIH: Second-Level Interrupt Handler) 루틴으로서 지칭되는 장치-특정 ISR을 후속적으로 개시한다. 인터럽트 식별자가 프로세서(10)에 저장되기 때문에, 인터럽트 조절기(12)는 먼저 공통 FLIH 루틴의 실행을 시작한후 저장된 인터럽트 식별자에 대응하는 SLIH 루틴을 후속적으로 실행할 수 있으며, 따라서 공통 인터럽트 조절 태스크들과 연관된 코드가 공통 FLIH 루틴에 포함되도록 한다.
일례에서, 프로세서(10) 및 인터럽트 제어기(14)는 프로세서(10) 및 제어기(14)를 직접 링크하는 전용 통신 채널(20)을 통해 통신한다. 통신 채널(20)은 인터럽트 제어기(14)가 프로세서(10)에 우선순위가 부여된 인터럽트 요청들(IRQ_REQ)을 송출하는 링크를 포함한다. 또한, 통신 채널(20)은 인터럽트 제어기(14)에 인터럽트 요청들에 대한 확인응답(IRQ_ACK)을 위하여 프로세서(10)에 의하여 사용되는 링크를 더 포함한다. 통신 채널(20)은 또한 인터럽트 식별자(IRQ_ID)가 인터럽트 제어기(14)로부터 프로세서(10)에 전송되는 링크 또는 버스를 포함한다. 인터럽트 요청 및 확인응답 신호들 뿐만아니라 인터럽트 식별자들은 감소된 수의 신호 라인들상에서 다중화될 수 있다. 프로세서(10)가 인터럽트 식별자를 수신하는 방법과 무관하게, 인터럽트 조절기(12)는 공통 FLIH 루틴이 호출된후에 장치-특정 SLIH 루틴을 후속적으로 개시하기 위하여 획득된 인터럽트 식별자를 사용한다.
동작중에, 프로세서(10)는 외부 메모리(22)로부터 명령들 및 대응하는 데이터를 검색한다. 프로세서(10)는 명령들을 실행하고, 결과들을 외부 메모리(22)에 저장한다. 예시적인 예에서, 프로세서 메모리(18), 예컨대 캐시는 버스 인터페이스 유닛(24)을 통해 외부 메모리(22)로부터 검색된 어드레스 및 데이터 정보를 저장한다. 프로세서(10)는 인터럽트 조절(interrupt handling)과 같은 프로그램 명령들을 실행하기 위한 하나 이상의 실행 유닛(26)을 더 포함한다. 예컨대, 실행 유닛들(26)은 하나 이상의 명령 유닛들, 완료 유닛들, 브랜치 유닛들, 부동 소수점 유닛들, 정수 유닛들, 및 로드/저장 유닛들을 포함할 수 있다.
프로세서(10)는 또한 상황 데이터(contextual data), 스택 포인터들, 플래그들 등을 저장하기 위한 범용 및 특수목적 레지스터들(28, 30)과 같은 레지스터들(16)을 포함한다. 스택 포인터들은 현재 실행되는 한 프로그램으로부터 다른 프로그램으로 콘텍스트(context)를 스위칭하는 프로세서(10)에 반응하여 상황 데이터를 저장하기 위하여 사용되는 프로세서 메모리(18)의 영역(zone), 예컨대 프로세서(10)가 인터럽트 요청들을 서비스하기 위하여 프로그램을 일시적으로 중지시킬때 상황 데이터를 저장하기 위하여 사용되는 프로세서 메모리(18)의 영역을 표시한다. 프로세서(10)는 또한 실행될 후속 명령의 어드레스를 지정하기 위한 프로그램 카운터(32)(또한 명령 시퀀서, 명령 포인터, 또는 태스크 레지스터로서 공지됨)를 더 포함한다. 프로세서(10)에 포함된 인터럽트 조절기(12)는 소프트웨어(또는 펌웨어)로 실행되는 컴퓨터 프로그램 명령들에 따라 구성된 하나 이상의 디지털 처리 회로들을 포함할 수 있다. 이러한 회로들은 예컨대 실행 유닛들(26)에 의하여 프로세서(10)와 연관된 다른 처리 및 제어 기능들이 공유될 수 있다. 당업자는 프로세서(10)가 단일 마이크로프로세서, 멀티-코어 마이크로프로세서, 또는 동일한 시스템내에 내장된 다중 마이크로프로세서들(여기서, 마이크로프로세서들중 하나 이상이 파이프라인 및/또는 수퍼스칼라(superscalar) 방식으로 배열됨)을 포함할 수 있다는 것을 인식할 것이다.
주변장치(도시안됨)가 서비스를 요청할때, 주변장치는 인터럽트 제어기(14)에 인터럽트 요청을 송출한다. 인터럽트 제어기(14)는 인터럽트 요청들과 관련한 주변장치들을 모니터하고 주변장치들로부터 수신된 다양한 인터럽트 요청들에 우선순위를 부여하여 처리한다. 인터럽트 제어기(14)는 주변장치가 서비스를 요청한 것을 표시하기 위하여 우선순위가 부여된 인터럽트 요청(IRQ_REQ)을 프로세서(10)에 전송한다. 더욱이, 인터럽트 제어기(14)는 주변장치 요청 인터럽트 서비스와 연관된 인터럽트 식별자(IRQ_ID)를 프로세서(10)에 제공한다. 프로세서(10)에 포함된 인터럽트 조절기(12)는 인터럽트 제어기(14)로부터 수신된 인터럽트 요청들을 서비스한다.
도 2는 인터럽트 조절기(12)에 의하여 인터럽트 요청들을 서비스하기 위한 프로그램 로직을 도시한다. 인터럽트 처리는 인터럽트 요청을 인지한 인터럽트 조절기(12)와 함께 시작한다(단계 100). 일례에서, 인터럽트 조절기(12)는 프로세서(10)에 인터럽트 요청(IRQ_REQ)을 송출하는 인터럽트 제어기(14)에 반응하여 인터럽트 요청을 인지한다. 다음으로, 인터럽트 조절기(12)는 프로세서(10)가 요청을 서비스하려 할때 인터럽트 확인응답(IRQ_ACK)을 송출한다. 인터럽트 확인응답에 반응하여, 인터럽트 제어기(14)는 주변장치 요청 서비스와 연관된 인터럽트 식별자(IRQ_ID)를 프로세서(10)에 전송한다.
인터럽트 조절기(12)는 미래의 사용을 위하여 프로세서(10)에 인터럽트 식별자를 저장한다(단계 102). 예컨대, 인터럽트 식별자는 범용 또는 특수목적 레지스터들(28, 30)중 하나 또는 프로세서 메모리(18)에 저장될 수 있다. 만일 범용 또는 특수목적 레지스터들(28, 30)중 하나에 저장되면, 하나의 레지스터는 장치 인터럽트 식별자를 저장하기 위하여 일시적으로 할당된다. 대안적으로, 전용 레지스터(34)가 인터럽트 식별자를 저장할 수 있다. 저장매체와 무관하게, 저장된 인터럽트 식별자는 서비스를 요청한 주변장치에 적응된(tailored) SLIH 루틴을 개시하기 위하여 인터럽트 조절기(12)에 의하여 미래에 이용가능하다. 인터럽트 식별자가 프로세서(10)에 저장되기 때문에, 인터럽트 조절기(12)는 그것이 인터럽트 요청을 서비스하기 시작할때 상기 적응된 SLIH 루틴으로 즉시(immediately) 점프하는 것이 요구되지 않는다. 대신에, 인터럽트 조절기(12)는 상기 적응된 SLIH 루틴을 개시하기전에 공통 FLIH 루틴의 실행을 먼저 개시할 수 있다(단계 104). 이러한 이유로, 공통 인터럽트 조절 태스크들과 연관된 코드는 프로세서(10)에 의하여 지원되는 각각의 SLIH 루틴 대신에 단일 FLIH 루틴에 포함될 수 있으며, 따라서 에러가 최소화되고 인터럽트 서비스 성능이 향상되며 코드 이식성(portability)이 개선된다.
공통 FLIH 루틴이 호출된후에, 인터럽트 조절기(12)는 상기 적응된 SLIH 루틴이 유지되는 메모리 어드레스로 프로세서(10)가 점프하도록 함으로써 상기 적응된 SLIH 루틴을 후속적으로 개시한다(단계 106). 일례에서, 저장된 인터럽트 식별자는 상기 적응된 SLIH 루틴이 외부 메모리(22) 또는 프로세서 메모리(18)에서 유지되는 어드레스를 포함한다. 이러한 이유로, 인터럽트 조절기(12)는 예컨대 인터럽트 식별자를 프로그램 카운터(32)에 로드하는 명령을 송출함으로써 도 3의 단계(108)에 의하여 기술된 바와같이 프로그램 카운터(32)에 인터럽트 식별자를 로드한다. 일부의 경우에, 인터럽트 식별자는 프로그램 카운터(32)에 적정 형태의 어드레스 정보가 로드되도록 어드레스 번역(address translation)을 필요로 할 수 있다. 그럼에도 불구하고, 이때 프로세서(10)는 도 3의 단계(110)에 의하여 기술된 바와같이 프로그램 카운터(32)에 로드된 인터럽트 식별자와 연관된 메모리 어드레스로 점프한다.
다른 예들에서, 저장된 인터럽트 식별자는 주변 장치 요청 서비스를 고유하게 식별하는 다른 정보를 포함한다. 이러한 이유로, 인터럽트 조절기(12)는 도 4의 단계(112)에 의하여 기술된 바와같이 프로세서 메모리(18) 또는 외부 메모리(22), 예컨대 룩-업 테이블에서 인터럽트 식별자에 대응하는 메모리 어드레스를 찾기(look-up)하기 위하여 저장된 인터럽트 식별자를 사용한다. 그 다음에, 인터럽트 조절기(12)는 도 4의 단계(114)에 의하여 기술된 바와같이 획득된 메모리 어드레스를 프로그램 카운터(32)에 로드함으로써 상기 적응된 SLIH 루틴을 개시한다. 그 다음에, 프로세서(10)는 도 4의 단계(116)에 의하여 기술된 바와같이 프로그램 카운터(32)에 로드된 메모리 어드레스로 점프한다. 인터럽트 식별자의 콘텐츠와 무관하게, 인터럽트 조절기(12)는 일단 저장된 인터럽트 식별자가 대응하는 SLIH 루틴을 개시하기 위하여 사용되면 프로세서(10)로부터 저장된 인터럽트 식별자를 제거할 수 있다.
도 5는 인터럽트 조절기(12)가 이전 인터럽트 요청, 예컨대 중첩 인터럽트 요청(nested interrupt request)을 서비스하는 동안 프로세서(10)에 의하여 수신된 후속 인터럽트 요청들을 서비스하기 위한 프로그램 로직을 도시한다. 인터럽트 조절기(12)가 이전 인터럽트 요청을 서비스하는 도중에 인터럽트 조절기(12)가 후속 인터럽트 요청을 인지할때 처리가 시작된다(단계 200). 인터럽트 요청/확인응답 프로세스의 일부분으로서, 프로세서(10)는 주변장치의 후속 요청 서비스와 연관된 인터럽트 식별자를 인터럽트 제어기(14)로부터 수신한다. 인터럽트 조절기(12)는 미래의 사용을 위하여 프로세서(10)에 인터럽트 식별자를 저장한다. 비제한 예에서, 후속 인터럽트 식별자는 후속 인터럽트 요청에 대응하는 인터럽트 식별자로 이전 인터럽트 요청에 대응하는 저장된 인터럽트 식별자를 겹쳐쓰기(overwrite) 함으로써 저장된다.
인터럽트 조절기(12)는 새로이 저장된 인터럽트 식별자에 적응된 SLIH 루틴을 개시하기전에 공통 FLIH 루틴의 실행을 먼저 시작한다(단계 204). 일 실시예에서, 예컨대 후속 인터럽트 요청이 이전 인터럽트 요청보다 높은 우선순위를 가지면, 인터럽트 조절기(12)는 이전 인터럽트 요청과 연관된 SLIH 루틴을 일시 중지하고 공통 FLIH 루틴을 개시한다. 다른 실시예에서, 예컨대 후속 인터럽트 요청이 이전 인터럽트 요청과 동일하거나 또는 낮은 우선순위를 가지면, 인터럽트 조절기(12)는 이전 인터럽트 요청과 연관된 SLIH 루틴이 공통 FLIH 루틴을 개시하기전에 실행을 완료하도록 한다.
그럼에도 불구하고, 공통 FLIH 루틴이 후속 인터럽트 요청에 반응하여 호출된후에, 인터럽트 조절기(12)는 상기 적응된 SLIH 루틴이 유지되는 메모리 어드레스로 프로세서(10)가 점프하도록 함으로써 새로이 저장된 인터럽트 식별자와 연관된 SLIH 루틴을 개시한다(단계 206). 일례에서, 새로이 저장된 인터럽트 식별자는 상기 적응된 SLIH 루틴이 외부 메모리(22) 또는 프로세서 메모리(18)에서 유지되는 어드레스를 포함한다. 다른 예에서, 새로이 저장된 인터럽트 식별자는 주변장치 요청 서비스를 고유하게 식별하는 다른 정보를 포함한다. 그럼에도 불구하고 인터럽트 조절기(12)는 이전에 기술된 바와같이 대응하는 SLIH 루틴을 개시하기 위하여 새로이 저장된 인터럽트 식별자를 사용한다.
본 발명은 전술한 설명 및 첨부 도면들에 의하여 제한되지 않고 여러 수정 및 응용이 가능하다. 대신에, 본 발명은 이하의 청구범위 및 이의 균등물에 의해서만 제한된다.

Claims (29)

  1. 프로세서에 의하여 인터럽트(interrupt)들을 서비스하기 위한 방법으로서,
    인터럽트 요청을 인지(recognize)하는 단계;
    상기 인터럽트 요청에 대응하는 인터럽트 식별자를 저장하는 단계;
    상기 인터럽트 요청을 인지하는 것에 반응하여 공통 인터럽트 서비스 루틴을 개시(initiate)하는 단계; 및
    저장된 인터럽트 식별자에 대응하는 인터럽트 서비스 루틴을 후속적으로(subsequently) 개시하는 단계를 포함하며,
    저장된 인터럽트 식별자에 대응하는 인터럽트 서비스 루틴을 후속적으로 개시하는 상기 단계는 상기 저장된 인터럽트 식별자와 연관된 메모리 어드레스로 후속적으로 점프하는 단계를 포함하며, 상기 저장된 인터럽트 식별자와 연관된 메모리 어드레스로 후속적으로 점프하는 상기 단계는 상기 저장된 인터럽트 식별자와 연관된 메모리 어드레스를 상기 프로세서의 프로그램 카운터에 후속적으로 로드하는 단계 및 상기 프로그램 카운터에 로드된 상기 메모리 어드레스로 점프하는 단계를 포함하는,
    프로세서에 의하여 인터럽트들을 서비스하는 방법.
  2. 제 1항에 있어서, 인터럽트 식별자를 저장하는 상기 단계는 상기 프로세서에 포함된 레지스터에 상기 인터럽트 식별자를 저장하는 단계를 포함하는, 프로세서에 의하여 인터럽트들을 서비스하는 방법.
  3. 제 1항에 있어서, 공통 인터럽트 서비스 루틴을 개시하는 상기 단계는 상기 인터럽트 요청의 실행을 스케줄링하는 것, 낮은 우선순위 인터럽트들을 디스에이블하는 것, 서비스를 위한 높은 우선순위 인터럽트들을 인에이블하는 것, 상기 인터럽트 요청의 원인(cause)을 식별하는 것, 및 상기 인터럽트 요청을 인지하는 것에 반응하여 상기 프로세서의 상태에 대응하는 정보를 저장하는 것 중 적어도 하나를 개시하는 단계를 포함하는, 프로세서에 의하여 인터럽트들을 서비스하는 방법.
  4. 제 1항에 있어서, 상기 저장된 인터럽트 식별자와 연관된 메모리 어드레스를 프로그램 카운터에 로드하는 상기 단계는,
    상기 저장된 인터럽트 식별자를 후속적으로 사용하여 상기 메모리 어드레스를 찾는(look-up) 단계; 및
    상기 프로그램 카운터에 상기 메모리 어드레스를 로드하는 단계를 포함하는, 프로세서에 의하여 인터럽트들을 서비스하는 방법.
  5. 제 1항에 있어서, 상기 저장된 인터럽트 식별자와 연관된 메모리 어드레스를 프로그램 카운터에 후속적으로 로드하는 상기 단계는 상기 저장된 인터럽트 식별자를 상기 프로그램 카운터에 로드하는 단계를 포함하는, 프로세서에 의하여 인터럽트들을 서비스하는 방법.
  6. 제 1항에 있어서, 상기 저장된 인터럽트 식별자에 대응하는 상기 인터럽트 서비스 루틴이 개시된 후에 상기 저장된 인터럽트 식별자를 제거(delete)하는 단계를 더 포함하는, 프로세서에 의하여 인터럽트들을 서비스하는 방법.
  7. 제 1항에 있어서, 후속 인터럽트 요청을 인지하는 단계;
    상기 후속 인터럽트 요청에 대응하는 인터럽트 식별자를 저장하는 단계;
    상기 후속 인터럽트 요청을 인지하는 것에 반응하여 상기 공통 인터럽트 서비스 루틴을 개시하는 단계; 및
    상기 공통 인터럽트 서비스 루틴이 상기 후속 인터럽트 요청을 인지하는 것에 반응하여 개시된 후에 후속적으로 저장된 인터럽트 식별자에 대응하는 인터럽트 서비스 루틴을 개시하는 단계를 더 포함하는, 프로세서에 의하여 인터럽트들을 서비스하는 방법.
  8. 제 7항에 있어서, 상기 후속 인터럽트 요청을 인지하는 것에 반응하여 상기 공통 인터럽트 서비스 루틴을 개시하는 상기 단계는 이전(prior) 인터럽트 서비스 루틴이 완료된후에 상기 공통 인터럽트 서비스 루틴을 개시하는 단계를 포함하는, 프로세서에 의하여 인터럽트들을 서비스하는 방법.
  9. 제 7항에 있어서, 후속 인터럽트 식별자를 저장하는 상기 단계는 상기 후속 인터럽트 요청에 대응하는 상기 인터럽트 식별자로 이전 인터럽트 요청에 대응하는 저장된 인터럽트 식별자를 겹쳐쓰기(overwrite)하는 단계를 포함하는, 프로세서에 의하여 인터럽트들을 서비스하는 방법.
  10. 프로세서로서,
    인터럽트 요청에 대응하는 인터럽트 식별자를 저장하도록 구성된 저장장치; 및
    상기 인터럽트 요청을 인지하고, 상기 인터럽트 요청을 인지하는 것에 반응하여 공통 인터럽트 서비스 루틴을 개시하며, 저장된 인터럽트 식별자에 대응하는 인터럽트 서비스 루틴을 후속적으로 개시하도록 구성된 인터럽트 조절기를 포함하며;
    상기 인터럽트 조절기는 상기 프로세서의 프로그램 카운터에 상기 저장된 인터럽트 식별자와 연관된 메모리 어드레스를 후속적으로 로드하고 상기 프로그램 카운터에 로드된 상기 메모리 어드레스로 점프함으로써 상기 저장된 인터럽트 식별자와 연관된 메모리 어드레스로 후속적으로 점프하도록 구성되는, 프로세서.
  11. 제 10항에 있어서, 상기 저장장치는 상기 프로세서에 포함된 레지스터를 포함하는, 프로세서.
  12. 제 10항에 있어서, 상기 인터럽트 조절기는 상기 인터럽트 요청의 실행을 스케줄링하는 것, 낮은 우선순위 인터럽트들을 디스에이블하는 것, 서비스를 위한 높은 우선순위 인터럽트들을 인에이블하는 것, 상기 인터럽트 요청의 원인을 식별하는 것, 및 상기 인터럽트 요청을 인지하는 것에 반응하여 상기 프로세서의 상태에 대응하는 정보를 저장하는 것 중 적어도 하나를 개시함으로써 상기 공통 인터럽트 서비스 루틴을 개시하도록 구성되는, 프로세서.
  13. 제 10항에 있어서, 상기 인터럽트 조절기는 상기 저장된 인터럽트 식별자와 연관된 메모리 어드레스로 후속적으로 점프함으로써 상기 저장된 인터럽트 식별자에 대응하는 상기 인터럽트 서비스 루틴을 후속적으로 개시하도록 구성되는, 프로세서.
  14. 제 10항에 있어서, 상기 인터럽트 조절기는 상기 저장된 인터럽트 식별자를 후속적으로 사용하여 상기 메모리 어드레스를 찾고(look-up) 상기 프로그램 카운터에 상기 메모리 어드레스를 로드함으로써 상기 프로그램 카운터에 상기 저장된 인터럽트 식별자와 연관된 메모리 어드레스를 후속적으로 로드하도록 구성되는, 프로세서.
  15. 제 10항에 있어서, 상기 인터럽트 조절기는 상기 프로그램 카운터에 상기 저장된 인터럽트 식별자를 로드함으로써 상기 프로그램 카운터에 상기 저장된 인터럽트 식별자와 연관된 메모리 어드레스를 후속적으로 로드하도록 구성되는, 프로세서.
  16. 제 10항에 있어서, 상기 인터럽트 조절기는 상기 저장된 인터럽트 식별자에 대응하는 상기 인터럽트 서비스 루틴이 개시된후에 상기 저장된 인터럽트 식별자를 제거하도록 추가적으로 구성되는, 프로세서.
  17. 제 10항에 있어서, 상기 저장장치는 후속 인터럽트 요청에 대응하는 인터럽트 식별자를 저장하도록 추가적으로 구성되며;
    상기 인터럽트 조절기는 상기 후속 인터럽트 요청을 인지하고, 상기 후속 인터럽트 요청을 인지하는 것에 반응하여 상기 공통 인터럽트 서비스 루틴을 개시하며, 상기 공통 인터럽트 서비스 루틴이 상기 후속 인터럽트 요청을 인지하는 것에 반응하여 개시된 후에 후속적으로 저장된 인터럽트 식별자에 대응하는 인터럽트 서비스 루틴을 개시하도록 추가적으로 구성되는, 프로세서.
  18. 제 17항에 있어서, 상기 인터럽트 조절기는 이전 인터럽트 서비스 루틴이 완료된후에 상기 공통 인터럽트 서비스 루틴을 개시함으로써 상기 후속 인터럽트 요청을 인지하는 것에 반응하여 상기 공통 인터럽트 서비스 루틴을 개시하도록 구성되는, 프로세서.
  19. 제 17항에 있어서, 상기 저장장치는 상기 후속 인터럽트 요청에 대응하는 상기 인터럽트 식별자로 이전 인터럽트 요청에 대응하는 저장된 인터럽트 식별자를 겹쳐쓰기함으로써 상기 후속 인터럽트 식별자를 저장하도록 구성되는, 프로세서.
  20. 프로세서에 의하여 인터럽트들을 서비스하기 위한 컴퓨터 판독가능 매체로서,
    인터럽트 요청을 인지하기 위한 프로그램 명령들;
    상기 인터럽트 요청에 대응하는 인터럽트 식별자를 저장하기 위한 프로그램 명령들;
    상기 인터럽트 요청을 인지하는 것에 반응하여 공통 인터럽트 서비스 루틴을 개시하기 위한 프로그램 명령들; 및
    저장된 인터럽트 식별자에 대응하는 인터럽트 서비스 루틴을 후속적으로 개시하기 위한 프로그램 명령들을 포함하며,
    상기 저장된 인터럽트 식별자에 대응하는 인터럽트 서비스 루틴을 후속적으로 개시하기 위한 상기 프로그램 명령들은 상기 저장된 인터럽트 식별자와 연관된 메모리 어드레스로 후속적으로 점프하기 위한 프로그램 명령들을 포함하며, 상기 저장된 인터럽트 식별자와 연관된 메모리 어드레스로 후속적으로 점프하기 위한 상기 프로그램 명령들은 상기 저장된 인터럽트 식별자와 연관된 메모리 어드레스를 상기 프로세서의 프로그램 카운터에 후속적으로 로드하기 위한 프로그램 명령들 및 상기 프로그램 카운터에 로드된 상기 메모리 어드레스로 점프하기 위한 프로그램 명령들을 포함하는,
    컴퓨터 판독가능 매체.
  21. 제 20항에 있어서, 상기 저장된 인터럽트 식별자와 연관된 메모리 어드레스를 프로그램 카운터에 후속적으로 로드하기 위한 상기 프로그램 명령들은,
    상기 저장된 인터럽트 식별자를 후속적으로 사용하여 상기 메모리 어드레스를 찾기(loop-up) 위한 프로그램 명령들; 및
    상기 프로그램 카운터에 상기 메모리 어드레스를 로드하기 위한 프로그램 명령들을 포함하는, 컴퓨터 판독가능 매체.
  22. 제 20항에 있어서, 상기 저장된 인터럽트 식별자와 연관된 메모리 어드레스를 프로그램 카운터에 후속적으로 로드하기 위한 상기 프로그램 명령들은 상기 저장된 인터럽트 식별자를 상기 프로그램 카운터에 로드하기 위한 프로그램 명령들을 포함하는, 컴퓨터 판독가능 매체.
  23. 제 20항에 있어서, 상기 저장된 인터럽트 식별자에 대응하는 상기 인터럽트 서비스 루틴이 개시된 후에 상기 저장된 인터럽트 식별자를 제거하기 위한 프로그램 명령들을 더 포함하는, 컴퓨터 판독가능 매체.
  24. 제 20항에 있어서, 후속 인터럽트 요청을 인지하기 위한 프로그램 명령들;
    상기 후속 인터럽트 요청에 대응하는 인터럽트 식별자를 저장하기 위한 프로그램 명령들;
    상기 후속 인터럽트 요청을 인지하는 것에 반응하여 상기 공통 인터럽트 서비스 루틴을 개시하기 위한 프로그램 명령들; 및
    상기 공통 인터럽트 서비스 루틴이 상기 후속 인터럽트 요청을 인지하는 것에 반응하여 개시된후에 후속적으로 저장된 인터럽트 식별자에 대응하는 인터럽트 서비스 루틴을 개시하기 위한 프로그램 명령들을 더 포함하는, 컴퓨터 판독가능 매체.
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
KR1020087023288A 2006-02-24 2007-02-23 2-레벨 인터럽트 서비스 루틴을 제공하기 위한 방법 및 프로세서 KR100977662B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/361,402 US7424563B2 (en) 2006-02-24 2006-02-24 Two-level interrupt service routine
US11/361,402 2006-02-24

Publications (2)

Publication Number Publication Date
KR20080098432A KR20080098432A (ko) 2008-11-07
KR100977662B1 true KR100977662B1 (ko) 2010-08-24

Family

ID=38180132

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087023288A KR100977662B1 (ko) 2006-02-24 2007-02-23 2-레벨 인터럽트 서비스 루틴을 제공하기 위한 방법 및 프로세서

Country Status (6)

Country Link
US (1) US7424563B2 (ko)
EP (2) EP1991928A1 (ko)
JP (1) JP2009528598A (ko)
KR (1) KR100977662B1 (ko)
CN (1) CN101390057B (ko)
WO (1) WO2007101139A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9032127B2 (en) * 2006-09-14 2015-05-12 Hewlett-Packard Development Company, L.P. Method of balancing I/O device interrupt service loading in a computer system
GB0722707D0 (en) * 2007-11-19 2007-12-27 St Microelectronics Res & Dev Cache memory
US8024504B2 (en) * 2008-06-26 2011-09-20 Microsoft Corporation Processor interrupt determination
US20090327556A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Processor Interrupt Selection
US7849247B2 (en) * 2008-10-14 2010-12-07 Freescale Semiconductor, Inc. Interrupt controller for accelerated interrupt handling in a data processing system and method thereof
CN101839929B (zh) * 2009-03-19 2013-08-07 北京普源精电科技有限公司 数字示波器
US8972642B2 (en) * 2011-10-04 2015-03-03 Qualcomm Incorporated Low latency two-level interrupt controller interface to multi-threaded processor
JP6415385B2 (ja) * 2015-05-27 2018-10-31 ルネサスエレクトロニクス株式会社 半導体装置
US20160373909A1 (en) * 2015-06-17 2016-12-22 Hive Life, LLC Wireless audio, security communication and home automation
US9778951B2 (en) * 2015-10-16 2017-10-03 Qualcomm Incorporated Task signaling off a critical path of execution
KR102079499B1 (ko) * 2015-10-20 2020-02-21 엘에스산전 주식회사 Plc 위치 결정 시스템의 축별 제어주기 독립 할당 방법
US11546336B1 (en) 2019-10-22 2023-01-03 Amazon Technologies, Inc. Independently configurable access device stages for processing interconnect access requests
US11467983B1 (en) 2019-10-22 2022-10-11 Amazon Technologies, Inc. Independently configurable interleaving for interconnect access requests
US11392406B1 (en) * 2019-10-22 2022-07-19 Amazon Technologies, Inc. Alternative interrupt reporting channels for microcontroller access devices
US11552948B1 (en) 2020-03-26 2023-01-10 Amazon Technologies, Inc. Domain management intermediary service
CN113419437B (zh) * 2021-06-30 2022-04-19 四川虹美智能科技有限公司 基于mvvm框架和mqtt协议的智能家居数据同步方法及装置
CN115344374A (zh) * 2022-10-19 2022-11-15 成都菁蓉联创科技有限公司 一种中断响应方法及其系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040111593A1 (en) * 2002-12-05 2004-06-10 International Business Machines Corporation Interrupt handler prediction method and system

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5287523A (en) * 1990-10-09 1994-02-15 Motorola, Inc. Method for servicing a peripheral interrupt request in a microcontroller
JP2870405B2 (ja) * 1993-06-01 1999-03-17 三菱電機株式会社 情報処理装置
JPH07105023A (ja) * 1993-09-20 1995-04-21 Internatl Business Mach Corp <Ibm> データ処理システム内でスプリアス割込みを検出するための方法及び装置
JP3822885B2 (ja) * 1994-09-09 2006-09-20 株式会社ルネサステクノロジ 1チップデータプロセッサ
GB9509626D0 (en) * 1995-05-12 1995-07-05 Sgs Thomson Microelectronics Processor interrupt control
JP3208332B2 (ja) * 1995-12-20 2001-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーション 割込み装置
US5790846A (en) * 1996-04-18 1998-08-04 International Business Machines Corporation Interrupt vectoring for instruction address breakpoint facility in computer systems
US6275893B1 (en) * 1998-09-14 2001-08-14 Compaq Computer Corporation Method and apparatus for providing seamless hooking and intercepting of selected kernel and HAL exported entry points in an operating system
US6148361A (en) * 1998-12-17 2000-11-14 International Business Machines Corporation Interrupt architecture for a non-uniform memory access (NUMA) data processing system
JP3778246B2 (ja) * 1999-03-23 2006-05-24 セイコーエプソン株式会社 割り込みコントローラ、asic、及び電子機器
US6601122B1 (en) * 2000-04-17 2003-07-29 International Business Machines Corporation Exceptions and interrupts with dynamic priority and vector routing
US6917997B2 (en) * 2000-06-29 2005-07-12 Palmchip Corporation Integrated circuit including interrupt controller with shared preamble execution and global-disable control bit
US6889279B2 (en) * 2000-12-11 2005-05-03 Cadence Design Systems, Inc. Pre-stored vector interrupt handling system and method
US6968411B2 (en) * 2002-03-19 2005-11-22 Intel Corporation Interrupt processing apparatus, system, and method
US7043582B2 (en) * 2002-09-06 2006-05-09 Intel Corporation Self-nesting interrupts
US6981083B2 (en) * 2002-12-05 2005-12-27 International Business Machines Corporation Processor virtualization mechanism via an enhanced restoration of hard architected states
US7117319B2 (en) * 2002-12-05 2006-10-03 International Business Machines Corporation Managing processor architected state upon an interrupt
US7080179B1 (en) * 2004-03-26 2006-07-18 Foundry Networks, Inc. Multi-level interrupts
US20060020852A1 (en) * 2004-03-30 2006-01-26 Bernick David L Method and system of servicing asynchronous interrupts in multiple processors executing a user program

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040111593A1 (en) * 2002-12-05 2004-06-10 International Business Machines Corporation Interrupt handler prediction method and system

Also Published As

Publication number Publication date
EP2442227A1 (en) 2012-04-18
US7424563B2 (en) 2008-09-09
US20070204087A1 (en) 2007-08-30
KR20080098432A (ko) 2008-11-07
EP1991928A1 (en) 2008-11-19
WO2007101139A1 (en) 2007-09-07
CN101390057A (zh) 2009-03-18
CN101390057B (zh) 2012-01-18
JP2009528598A (ja) 2009-08-06

Similar Documents

Publication Publication Date Title
KR100977662B1 (ko) 2-레벨 인터럽트 서비스 루틴을 제공하기 위한 방법 및 프로세서
US7117285B2 (en) Method and system for efficiently directing interrupts
US9092356B2 (en) Executing a kernel device driver as a user space process
US7039739B2 (en) Method and apparatus for providing seamless hooking and intercepting of selected kernel and HAL exported entry points
US6983337B2 (en) Method, system, and program for handling device interrupts
US8166349B2 (en) Communicating with USB devices after a computer system crash
US20110219373A1 (en) Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform
US6789142B2 (en) Method, system, and program for handling interrupt requests
US9384154B2 (en) Method to emulate message signaled interrupts with multiple interrupt vectors
WO2013109233A2 (en) Method to emulate message signaled interrupts with interrupt data
US8141077B2 (en) System, method and medium for providing asynchronous input and output with less system calls to and from an operating system
US6675238B1 (en) Each of a plurality of descriptors having a completion indicator and being stored in a cache memory of an input/output processor
US8151028B2 (en) Information processing apparatus and control method thereof
JP2014232382A (ja) 制御装置、制御方法及び制御プログラム
US20040103229A1 (en) Bus management techniques
KR100506254B1 (ko) 임베디드 시스템의 비특권 모드에서 인터럽트 처리를 위한장치 및 방법
US11385927B2 (en) Interrupt servicing in userspace
JP3797274B2 (ja) ファームウェアディスパッチ方式,方法,およびプログラム
JP5146272B2 (ja) 情報処理装置
Mejia-Alvarez et al. Interrupts Mechanism
JP2012003478A (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: 20130729

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140730

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160629

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 9