KR100521110B1 - 이벤트 처리 방법 및 장치 - Google Patents

이벤트 처리 방법 및 장치 Download PDF

Info

Publication number
KR100521110B1
KR100521110B1 KR10-2003-7005995A KR20037005995A KR100521110B1 KR 100521110 B1 KR100521110 B1 KR 100521110B1 KR 20037005995 A KR20037005995 A KR 20037005995A KR 100521110 B1 KR100521110 B1 KR 100521110B1
Authority
KR
South Korea
Prior art keywords
event
priority
mask
register
events
Prior art date
Application number
KR10-2003-7005995A
Other languages
English (en)
Other versions
KR20030072347A (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 KR20030072347A publication Critical patent/KR20030072347A/ko
Application granted granted Critical
Publication of KR100521110B1 publication Critical patent/KR100521110B1/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
    • 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

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)
  • Logic Circuits (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명의 일실시예에서 프로세서는 이벤트를 처리하도록 구성된다. 프로세서에 의해 처리된 각각의 이벤트는 우선순위가 지정되어 있다. 제1 이벤트가 서비스될 때, 제1 우선순위 마스크는 제1 이벤트의 지정된 우선순위에 기초해서 생성된다. 우선순위 마스크는 일련의 서비스 가능한 이벤트와 일련의 서비스 불가능한 이벤트를 나타내고 우선순위 레지스터에 기록될 수 있다. 제2 이벤트가 수신될 때, 우선순위 마스크를 이용해서 제2 이벤트를 제1 이벤트보다 먼저 취하여 즉시 서비스해야 하는지의 여부를 판정한다.

Description

이벤트 처리 방법 및 장치{EVENT HANDLING}
본 발명은 프로그램 가능한 프로세서의 이벤트 처리에 관한 것이다.
디지털 신호 프로세서와 같이 프로그램 가능한 마이크로프로세서를 설계하는 데 있어서의 난제는 인터럽트와 예외 상황(exception)을 포함하는 이벤트 처리의 문제이다. 인터럽트는 프로세서에서 정상 명령어의 흐름을 변경시키는 이벤트일 수 있다. 예외 상황은 무효 명령어 또는 버스 에러와 같은, 에러에 직면할 때 일어나는 소프트웨어 개시형 이벤트(software-initiated event)일 수 있다. 프로세스를 설계함에 있어서, 가능한 한 신속하게 이벤트를 처리하는 것이 바람직하다. 그러나, 여기에는 프로세서의 소비 전력을 증가시킬 수도 있는 부가의 하드웨어가 필요하다.
인터럽트가 중첩될 수 있다는 사실로 인해 이벤트 처리시의 난제가 복합될 수 있다. 다시 말해서, 아직 제1 인터럽트를 처리하는 중에 제2 인터렙트(예컨대, 중첩된 인터럽트)를 수신할 수 있다. 그러므로, 소정의 시각에, 다수의 인터럽트 서비스 루틴이 활성화될 수 있다. 따라서 이벤트 처리에는 가장 효율적인 방법으로 다수개의 활성 서비스 루틴을 처리할 수 있는 우선 순위 결정 방식(prioritization scheme)이 필요하다.
도 1은 본 발명의 실시예에 따른 프로그램 가능한 프로세서를 도시하는 블록도이다.
도 2는 이벤트 핸들러의 실시예를 도시하는 블록도이다.
도 3은 우선순위 로직의 예시적인 실시예를 도시하는 회로도이다.
도 4는 본 발명의 실시예에 따른 동작 방식을 나타내는 흐름도이다.
도 5는 본 발명의 실시예에 따른 동작 방식을 나타내는 다른 흐름도이다.
도 6은 본 발명의 실시예에 따른 상태 레지스터를 조정하는 회로를 도시하는 회로도이다.
도 7은 본 발명의 실시예에 따른 이벤트 벡터 선택선을 도시하는 회로 블록도이다.
도 8은 본 발명의 실시예에 따른 모듈을 구비한 이벤트 관리 로직에 접속된 레지스터를 도시하는 회로 블록도이다.
도 9는 본 발명의 실시예에 따라 어얼리 신호(early signal)가 생성될 수 있는 방법을 나타내는 회로도이다.
도 10 내지 도 13은 각각 본 발명의 실시예에 따른 도 8의 모듈의 예시적인 로직을 도시하는 도면이다.
도 14는 본 발명의 실시예에 따른 이벤트 서비스 루틴의 동작 방식을 나타내는 흐름도이다.
도 1은 실행 유닛(4)과 제어 유닛(6)을 구비한 프로그램 가능한 프로세서(2)를 도시하는 블록도이다. 제어 유닛(6)은 이벤트 핸들러(10)를 구비할 수 있다. 이하에서 상세하게 설명하겠지만, 이벤트 핸들러(10)는 이벤트를 처리하는데 걸리는 계산 시간을 줄일 수 있다. 특히, 이벤트 핸들러(10)는 일련의 서비스 가능한 이벤트와 일련의 서비스 불가능한 이벤트를 나타내는 우선순위 마스크(priority mask)를 생성할 수 있다. 이런 방식으로, 프로세서(2)는 서비스 가능한 이벤트를 신속하게 인식하여 처리할 수 있다.
실행 유닛(4)은 명령어를 처리하기 위한 다수개의 스테이지를 갖는 실행 파이프라인일 수 있다. 각 스테이지는 다른 스테이지와 동시에 처리할 수 있고 각각의 클록 사이클에서 파이프라인의 다음 스테이지에 결과를 전달할 수 있다. 각 명령어의 최종 결과는 신속하게 연속으로 파이프라인의 종단에서 빠져나올 수 있다.
제어 유닛(6)은 실행 유닛(4)에서 명령어와 데이터의 흐름을 제어할 수 있다. 명령어 처리시에, 예컨대 제어 유닛(6)은 실행 유닛의 각종 구성 요소들로 하여금 명령어를 인출 및 디코딩하게 하고, 대응 연산을 수행하게 하며, 그 결과를 메모리 또는 로컬 레지스터에 다시 기록하게 한다.
도 2는 이벤트 핸들러(10)의 실시예를 도시하는 블록도이다. 이벤트 핸들러(10)는 이벤트 우선순위 레지스터(IPEND_R)(16)에 접속된 우선순위 로직(14)을 구비할 수 있다. 이벤트 핸들러(10)는 또한 이벤트 마스크 레지스터(IMASK)(18)와 이벤트 래치 레지스터(ILAT)(20)도 구비할 수 있다. 로직(22)은 IMASK(18)와 ILAT(20)에 접속될 수 있다. IPEND_R(16), IMASK(18) 및 ILAT(20) 모두는 이벤트 관리 로직(24)에 접속될 수 있다. 이벤트 관리 로직(24)은 제어 로직(25)에 접속될 수 있다. 또한, 이벤트 관리 로직(24)은 상태 레지스터(IPEND)(26)에 접속될 수 있다. 게다가, 이벤트 관리 로직(24)은 우선순위 로직(14)에도 접속될 수 있다.
프로세서(2)에 의해 처리된 모든 이벤트는 이벤트 우선순위를 가질 수 있다. 레지스터들(16, 18, 20, 26) 모두는 그 폭들이 동일하고, 각각의 레지스터는 복수개의 번호를 매긴 비트를 가질 수 있다. 게다가, 각각의 레지스터(16, 18, 20, 26)에서 유사하게 번호를 매긴 비트들은 동일한 이벤트에 연관될 수 있다. 그러므로, 프로세서(2)에 의해 처리된 모든 이벤트는 각 레지스터(16, 18, 20, 26)에 연관 비트를 가질 수 있다.
예시적인 실시예에서, 레지스터(16, 18, 20, 26)는 16 비트의 레지스터이다. 각 레지스터는 16개의 이벤트(예컨대, 이벤트 0∼15) 중 하나에 대응하는 비트를 가질 수 있다. 이벤트 0∼15는 0번째 이벤트가 최상위 우선순위 이벤트이고 15번째 이벤트가 최하위 우선순위 이벤트가 되도록 우선순위가 결정될 수 있다. 예를 들어, 이벤트 0∼15는, 에뮬레이션 0, 리셋 1, 마스크 불능 인터럽트 2, 예외 상황 3, 글로벌 인터럽트 인에이블 4, 하드웨어 에러 5, 상위 우선순위 타이머 6, 및 일반적인 인터럽트 우선순위 순서로 된 일반적인 인터럽트 7-15와 같이 우선순위 결정될 수 있다.
IMASK 레지스터(18)는 이벤트 인에이블 또는 이벤트 디스에이블을 용이하게 하는 이벤트 마스크 레지스터일 수 있다. 그러므로, IMASK(18)에서 각각의 비트는 대응하는 이벤트가 인에이블되는 지의 여부를 나타낼 수 있다. 예를 들어, 특정한 이벤트의 IMASK 비트가 1이라면, 그 이벤트는 인에이블된다. 이벤트가 인에이블되지 않는다면, 회로는 그 이벤트를 서비스하지 않을 수 있다. IMASK 레지스터(18)의 비트는 종래에 알려진 어느 방식으로도 설정될 수 있다. 이 방식들에는 메모리 맵 레지스터에 기록하여 IMSK를 설정하는 방식 또는 소프트웨어 명령어를 실행하여 IMASK를 설정하는 방식이 있다. 이런 식으로, 어느 이벤트도 용이하게 인에이블 또는 디스에이블될 수 있다.
특정한 일실시예에 있어서, IMASK 레지스터는 16개의 상이한 우선순위 명령어가 시스템에 존재할 지라도 16 비트보다 폭이 더 작을 수 있다. 예를 들어, 이 실시예에서, 소정의 상위 우선순위 비트(예컨대, 0-4)는 마스크되지 않을 수 있다. 그러므로, IMASK 레지스터는 항상 인에이블되어 있는 이벤트 0-4에 대한 비트가 없어도 된다.
이벤트 래치 레지스터(ILAT)(20)의 비트는 대응 이벤트가 시스템에 의해 언제 래치되었는 지를(또는 수신되었는 지를) 나타낼 수 있다. 이벤트가 래치될 때마다 그 이벤트의 대응 비트는 ILAT에 1로 설정될 수 있다. 그 후에, 그 이벤트가 시스템에 의해 받아들여질 때, ILAT의 대응 비트는 0으로 리셋될 수 있다. 그러므로, ILAT는 수신하였지만 아직 서비스하지 못한 이벤트를 나타낼 수 있다.
ILAT의 각 비트는 하드웨어 요청이나 소프트웨어 요청에 의해 설정될 수 있다. 일단 설정되면, 그 비트는 연관된 이벤트가 서비스에 대해 받아들여지지 않는 힌 ILAT에 유지될 수 있다. 그러나, 일단 그 이벤트가 시스템에 의해 받아들여지면, ILAT의 비트는 다시 제로로 리셋될 수 있다. 더 나아가, 일부 실시예에서는 ILAT에서 하나 이상의 비트들이 클리어될 수 있다.
IPEND 레지스터(26)는 현재 활성된 모든 이벤트를 계속하여 추적하는 상태 레지스터일 수 있다. 이벤트가 시스템에 의해 받아들여질 때(그래서, 예컨대 ILAT의 그 이벤트의 비트가 다시 제로로 리셋될 때), IPEND의 그 이벤트의 비트는 1로 설정될 수 있다. 소정의 시각에서, 다수개의 이벤트가 활성될 수 있고, 따라서 IPEND에 다수개의 비트가 설정될 수 있다. 그러나, 한번에 단 하나의 이벤트만이 서비스될 수 있다. 따라서, IPEND에 설정된 최상위 우선순위 비트는 어떤 이벤트가 현재 서비스되고 있는지 나타낼 수 있다.
IPEND_R(16)는 시스템에 의해 현재 서비스되는 이벤트의 우선순위를 반영하는 우선순위 레지스터일 수 있다. 동시에, IPEND_R는 서비스 가능한 이벤트와 서비스 불가능한 이벤트의 진행중인 탭(tab)을 제공할 수 있다.
일구성예에서, IPEND에 설정된 최상위 우선순위 비트는 IPEND_R의 이벤트 활성 비트에 대응한다. IPEND_R의 이벤트 활성 비트는 IPEND_R의 모든 하위 우선순위 비트와 함께 제로로 설정될 수 있다. 이벤트 활성 비트보다 우선순위가 높은 모든 비트는 1로 설정될 수 있다. 그러므로, IPEND_R의 이벤트 활성 비트는 그 레지스터에서 제로로 설정된 최상위 우선순위 비트일 수 있다.
IPEND_R은 프로세서(2)가 서비스 가능한 이벤트를 검출하는 신속하고 효율적인 방법을 제공할 수 있다. 이벤트 활성 비트보다 우선순위가 높은 비트만이 IPEND_R에 1로 설정되기 때문에, 이벤트 핸들러(10)는 서비스 가능한 이벤트를 신속하게 식별할 수 있다. IPEND_R에서 이벤트의 비트가 1이라면, 그 이벤트는 즉시 서비스 가능하다.
게다가, IPEND의 입력은 IPEND_R의 값을 계산하는 로직에 입력을 제공할 수 있다. 그러므로, IPEND가 조정될 때마다(예컨대, 새로운 이벤트를 취할 때), IPEND_R은 동일한 클록 사이클에서 자동 조정될 수 있다. 이런 식으로, IPEND_R은 새로운 이벤트가 수신될 때마다 이벤트 핸들러(10)를 인에이블하여 우선순위를 결정하는데 이용할 수 있다.
레지스터 IPEND_R(16), IMASK(18) 및 ILAT(20)를 이용해서, 이벤트 핸들러는 이벤트를 신속하고 효율적으로 서비스할 수 있다. ILAT(20)는 수신되었지만 아직 서비스하지 못한 이벤트를 이벤트 핸들러(10)에게 통지한다. IMASK(18)는 프로세서(2)가 특정 이벤트를 서비스하도록 인에이블되는 지의 여부를 이벤트 핸들러(10)에게 통지할 수 있다. 그리고 IPEND_R(16)는 이벤트의 우선순위가 즉시 서비스되기에 충분히 높은 지의 여부를 이벤트 핸들러에게 통지할 수 있다. 그래서, 이벤트 비트가 이들 3개의 레지스터 모두에서 1인 경우에, 그 이벤트를 취할 수 있다. 더욱이, 새로운 이벤트가 취해질 것이라는 사실을 신속하게 검출함으로써 이벤트 관리 로직(24)과 제어 로직(25)은 새로운 이벤트의 서비스 루틴으로의 흐름 변경을 신속하고 효율적으로 처리할 수 있다.
어떤 이벤트는 우선순위가 더 높은 이벤트가 서비스되고 있기 때문에 때때로 즉시 취해질 수 없다. 예를 들어, 상위 우선순위의 이벤트를 현재 서비스하고 있다면, IPEND_R은 하위 우선순위의 이벤트에 대해 제로가 될 수 있다. 그러므로, 그 이벤트는 시스템에 의해 받아들여질 수 없고, 그 이벤트의 ILAT 비트는 그 값을 유지할 수 있다.
그러나, 시스템은 궁극적으로 최상위 우선순위 이벤트에 대한 서비스를 종료할 수 있다. 일단 그 이벤트의 서비스 루틴이 종료되면, 최상위 우선순위 이벤트의 비트는 IPEND에 다시 제로로 설정될 수 있고, IPEND_R은 조정될 수 있다. 이 때, 시스템은 그 하위 우선순위 이벤트의 IPEND_R 비트가 1로 조정되었다면 그 이벤트를 받아들일 수 있다.
도 3은 이벤트의 지정된 우선순위에 따라 우선순위 마스크를 생성하는데 이용되는 우선순위 로직(14)의 예시적인 실시예를 도시하는 회로도이다. 이 우선순위 마스크는 IPEND_R에 기록되어 프로세서(2)가 서비스 가능한 이벤트를 신속하게 인식하여 처리할 수 있도록 이벤트 핸들러(10)에 의해 이용될 수 있다.
우선순위 로직(14)은 16개의 이벤트 중 하나에 각각 대응하는 16개의 입력을 가질 수 있다. 이들 16개의 입력은 IPEND 레지스터(도시 생략)를 설정하는 이벤트 관리 로직(24)의 각각의 출력으로부터 도출될 수 있다. 우선순위 로직은 또한 IPEND_R 레지스터(16)의 16개의 비트에 각각 접속되는 16개의 출력을 가질 수도 있다.
우선순위 로직(14)의 각각의 입력은 이벤트 관리 로직(도시 생략)의 대응 출력으로부터 도출될 수 있다. 이벤트의 비트가 이벤트 관리 로직(도시 생략)에 의해 IPEND에 0으로 설정되는 경우, 우선순위 로직은 그 0를 반전시켜 그 이벤트 비트에 대해 1을 출력할 수 있다. 이벤트의 비트가 이벤트 관리 로직(도시 생략)에 의해 IPEND에 1로 설정되는 경우, 우선순위 로직(14)은 1을 반전시켜 그 이벤트의 비트에 대해 0을 출력할 수 있다. 또한 이벤트의 비트가 이벤트 관리 로직(도시 생략)에 의해 IPEND에 1로 설정되는 경우, 우선순위 로직은 그 1을 반전시켜 그 이벤트의 비트보다 우선순위가 낮은 모든 비트에 대하여 0을 전달하도록 구성될 수 있다. 우선순위 로직(14)에 의해 생성된 이들 1과 0의 집합이 IPEND_R(16)에 기록되는 우선순위 마스크일 수 있다.
도 3에 도시하는 바와 같이, 우선순위 로직(14)의 일실시예는 우선순위 로직 모듈(40, 42, 44, 46)을 구현한다. 이들 우선순위 로직 모듈(40, 42, 44, 46)은 집합적으로 우선순위 마스크를 생성할 수 있다. 예를 들어, 1이 우선순위 로직 모듈(40, 42, 44 또는 46)에 입력되면, 그 모듈은 그 각각의 비트에 대해 우선순위 마스크의 부분 집합을 생성할 수 있다. 우선순위 마스크의 부분 집합은 모듈에 의해 수신되는 이벤트에 대해 이벤트 활성 비트(예컨대, 0)를 생성하고, 모듈에 의해 처리된 상위 우선순위의 이벤트에 대해 1을 생성하며, 모듈에 의해 처리된 하위 우선순위의 이벤트에 대해 0을 생성함으로써 생성될 수 있다. 또한, 우선순위 상태 비트는 (예컨대, 하위 우선순위 모듈에 의해 처리된 이벤트에 대해 출력이 제로가 되는) 하위 우선순위 로직 모듈에 전달될 수 있다. 게다가, 상위 우선순위 로직 모듈들은 자신들이 처리하는 이벤트에 대해 1을 출력할 수 있다. 이런 식으로, 우선순위 로직의 모듈 집합은 우선순위 마스크를 생성할 수 있다.
특정 실시예에 있어서, 우선순위 로직 모듈(40, 42, 44, 46)은 각각 4개의 입력과 4개의 출력을 갖는 쿼드(quad)이다. 1이 쿼드에 입력될 때마다 모든하위 우선순위 쿼드의 출력은 0이 될 수 있다. 게다가, 쿼드가 1을 수신하면, 그 쿼드내의 대응하는 비트와 모든 하위 우선순위 비트의 출력은 0이 될 수 있고, 모든 상위 우선순위 비트의 출력은 1이 될 수도 있다. 도 3에 도시하는 바와 같이, 우선순위 로직 모듈(40)은 1단의 AND 게이트들을 구비한 쿼드일 수 있고, 우선순위 로직 모듈(42)은 2단의 AND 게이트들을 구비한 쿼드일 수 있다. 유사하게, 우선순위 로직 모듈(44)과 우선순위 로직 모듈(46) 각각은 2단의 AND 게이트[모듈(42)와 같이]들을 구비한 쿼드일 수 있다. 모듈(44)에서 제2단의 AND 게이트는 모듈(42)로부터 도출된 하나의 입력을 가질 수 있다. 유사하게, 모듈(46)에서 제2단의 AND 게이트는 모듈(44)로부터 도출되는 하나의 입력을 가질 수 있다. 이런 식으로, 우선순위 로직(14)은 신속하고 효율적으로 기능할 수 있다. 도 3을 참조하여, 우선순위 로직(14) 및/또는 우선순위 로직 모듈(40, 42, 44, 46)의 다른 실시예들을 구성하는 것이 가능할 수 있다.
도 4는 본 발명의 실시예에 따른 동작 방식을 나타내는 흐름도이다. 이벤트를 수신하면(60), ILAT에서 그 이벤트의 비트를 설정할 수 있고(62) 그 이벤트의 우선순위를 결정할 수 있다(64). 이벤트는 그 우선순위가 IPEND_R 레지스터에서 1과 일치할 때까지 서비스되지 않을 것이다(66). 이벤트의 우선순위가 IPEND_R에서 1과 일치하고(66) IMASK에서 일치한다면(68), 그 이벤트의 비트는 IPEND에 설정될 수 있고(70) ILAT에서 클리어될 수 있다(72). IPEND가 설정되면, IPEND_R 레지스터를 조정할 수 있다(74). 이 때, 그 이벤트는 서비스된다(76). 일단 이벤트가 서비스되면(78), IPEND에서 그 이벤트의 비트는 다시 제로로 설정될 수 있고(80), 그 결과 IPEND_R가 다시 조정될 수 있다(82).
도 5는 본 발명의 실시예에 따른 동작 방식을 나타내는 다른 흐름도이다. 도 5는 중첩된 이벤트를 효율적으로 처리하는 일실시예의 방법을 도시하고 있다. 우선순위 X의 이벤트 X를 수신할 때, ILAT의 X번째 비트는 1로 설정될 수 있다(92). 그러나, 다시 설명해서, 이벤트 핸들러는 그 이벤트의 비트가 IPEND_R(94)와 IMASK(96)에 1로 설정되어 있지 않는 한 그 비트가 1로 설정될 때까지 이벤트를 서비스할 수 없다. ILAT, IPEND_R 및 IMASK 모두가 그 이벤트의 비트에 대해 1을 가진다면, 그 이벤트의 ILAT 비트는 다시 제로로 설정될 수 있고(98) 그 이벤트는 서비스될 수 있다(100). 이 때, IPEND에서 그 이벤트의 비트는 1로 설정될 수 있다(102). IPEND를 설정하면(102) IPEND_R를 조정할 수 있다(104). 일단 이벤트가 서비스되면(106), IPEND와 IPEND_R은 다시 조정될 수 있다(108).
이벤트가 서비스 완료되기 전에(106) 제2 이벤트를 수신하면(110), 제2 이벤트의 비트는 ILAT에 1로 설정될 수 있다(112). 제2 이벤트가 제1 이벤트보다 더 높은 우선순위를 갖지 않는다면(114)(IPEND_R를 검사함으로써 신속하게 판정된다) 제1 이벤트가 서비스된다(116). 단계 118에 나타내는 바와 같이, 단계 94에서 시작되는 프로세스가 제2 이벤트를 위해 반복될 수 있다.
제2 이벤트가 제1 이벤트보다 상위 우선순위를 갖는다면(114)(다시 설명해서, IPEND_R를 검사함으로써 신속하게 판정된다), 제2 이벤트는 제1 이벤트보다 미리 처리될 수 있다. 단계 118에 나타내는 바와 같이, 단계 94에서 시작되는 프로세스는 제2 이벤트를 위해 반복될 수 있다. 그리고 제2 이벤트에 대한 서비스를 완료한 후에, 회로는 제1 이벤트에 대한 서비스를 종료할 수 있다(120).
도 6은 상태 레지스터(IPEND)(26)를 조정하기 위해 구현될 수 있는 회로의 실시예를 도시하는 회로도이다. 도 5는 IPEND에서 하나의 비트에 대한 예시적인 회로이다. IPEND의 기타 모든 비트는 그 비트에 연관된 유사한 회로를 가질 수 있다.
IPEND(26)의 대응 비트는 시스템이 취하는 매 이벤트마다 1로 설정될 수 있다. 그러나, 일단 특정 이벤트의 서비스 루틴이 실행되었다면, IPEND의 대응 비트는 이 사실을 반영하도록 클리어되어야 한다. 도 6에 도시하는 바와 같이, IPEND_R 레지스터에서의 천이는 3웨이(3-way)의 AND 게이트(122)에 의해 검출될 수 있다. 전술한 바와 같이, IPEND_R에서 0에서 1로의 천이는 IPEND에서 현재 활성인 이벤트 비트를 규정할 수 있다. 게이트(120)의 RTI 입력은 이벤트 핸들러의 최종 명령어(예컨대, RTI 명령어)를 검출할 수 있다. 따라서, 게이트(122)가 IPEND_R에서의 천이와 RTI 명령어 모두를 검출할 경우, 그 이벤트에 대한 IPEND 비트는 클리어될 수 있다. 더욱이 동일한 신호(124)가 우선순위 로직 모듈(40, 42, 44, 46)로 다시 전달되어 동일한 클록 사이클 중에 IPEDN_R(16)을 조정할 수 있다.
도 7은 본 발명의 실시예에 따른 다른 특징을 도시하는 회로 블록도이다. IPEND_R 레지스터(16), IMASK 레지스터(18) 및 ILAT 레지스터(20)는 이벤트 관리 로직(24)에 모두 접속될 수 있다. 이벤트 관리 로직은 제어 로직(25)에 접속될 수 있다. 이벤트 관리 로직은 그 각각의 출력이 서로에 대해 직교성을 갖도록 구성될 수 있다. 다시 말해서, 이벤트 관리 로직으로부터 16개의 출력 중 단 하나만이 임의의 정해진 시각에 설정될 수 있다. 따라서, 이벤트 관리 로직(24)으로부터 출력은 설정될 수 없거나 그 출력들 중 단 하나만이 정해진 시각에서 설정될 수 있다.
이들 직교성 신호에 기초해서, 이벤트 벡터 선택선(130)은 인출되어야 할 서비스 루틴을 결정하는데 이용될 수 있다. 그러므로, IPEND가 기록되는 동안 (그리고 우선순위 로직이 우선순위 마스크를 생성하여 그것을 IPEND_R에 기록하는 동안), 이벤트 벡터 선택선은 적합한 서비스 루틴을 선택하는데 이용될 수 있다. 서비스 루틴은 이어서 ICACHE(도시 생략)로부터 인출될 수 있고 실행 파이프라인에서 실행될 수 있다.
도 8은 이벤트 관리 로직(24)에 접속된 레지스터(16, 18, 20)를 나타내는 본 발명에 따른 실시예를 도시하는 회로 블록도이다. 도시된 바와 같이, 각각의 레지스터의 4번째 비트는 AND 게이트(131)로 공급될 수 있다. 레지스터(16, 18, 20)의 기타 모든 비트도 유사한 AND 게이트(도시 생략)에 공급될 수 있다. 이런 방식으로, 이벤트 관리 로직은 3개의 레지스터(16, 18, 20) 모두에 1이 기록된 이벤트만 취할 수 있다.
이벤트 관리 로직(24)은 로직(24)의 출력 중 단 하나만이 소정의 시각에 활성화되게 보장하는 회로(각각 도 10∼도 13 참조)를 각각 구비한 이벤트 관리 로직 모듈(132, 134, 136, 138)을 구현할 수 있다. 그러므로, 이벤트 벡터 선택선(130)에서, 신호들은 서로에 대해 직교성을 갖는다. 이들 직교성 신호에 기초해서, 이벤트 벡터 선택선(130)을 이용하여 이벤트 벡터 테이블로부터 이벤트를 선택할 수 있다(예컨대, 인출되어야 하는 서비스 루틴을 특정한다).
도 9는 본 발명의 실시예에 따른 다른 특징을 도시하는 회로도이다. 전술한 바와 같이, 레지스터(16, 18, 20)의 모든 비트는 도 8에 도시된 AND 게이트(131)와 유사한 AND 게이트에 각각의 입력을 제공한다. 도 9는 각각의 출력이 이벤트 관리 로직 모듈(132, 134, 136, 138)에 접속된 모두 16개의 AND 게이트를 도시하고 있다. 이 16개의 AND 게이트의 출력들은 또한 16웨이 OR 게이트(150)에 입력을 제공할 수 있다. 이 OR 게이트(150)는 그 다음에 제어 로직(25)에 접속될 수 있다. 이런 식으로, 이벤트가 다음 클록 사이클에서 취해질 것임을 표시하는 어얼리 신호가 생성될 수 있다. 이 어얼리 신호는 이어서 흐름의 변경을 효율적으로 처리하기 위해 제어 로직(25)에서 사용될 수 있다.
도 10 내지 도 13 각각은 이벤트 벡터 선택선(130)에서 직교성 신호를 생성하는데 이용될 수 있는 이벤트 관리 로직 모듈(138, 136, 134, 132)의 예시적인 로직을 도시하고 있다. 도 10은 모듈(138)의 예시적인 로직을 도시하고 있다. 도 11은 NOR 게이트(160)를 포함한 모듈(136)의 예시적인 로직을 도시하고 있다. NOR 게이트(160)의 입력은 모듈(138)의 입력도 될 수 있다. 도 12는 NOR 게이트(160)와 NOR 게이트(170)를 포함한 모듈(134)의 예시적인 로직을 도시하고 있다. NOR 게이트(160)의 입력은 모듈(138)의 동일한 입력이 될 수 있고, NOR 게이트(170)의 입력은 모듈(136)의 입력이 될 수 있다. 도 13은 NOR 게이트(160, 170, 180)를 포함한 모듈(132)의 예시적인 로직을 도시하고 있다. 게이트(160)의 입력은 모듈(138)의 입력이 될 수 있고, 게이트(170)의 입력은 모듈(136)의 입력이 될 수 있으며, 게이트(180)의 입력은 모듈(134)의 입력이 될 수 있다. 도 10 내지 도 13을 참조하여, 이벤트 벡터 선택선(130)에서 직교성 신호를 생성하기 위한 다른 실시예들도 구성 가능하다.
도 14는 이벤트 서비스 루틴 동작 방식을 나타내는 흐름도이다. 도시한 바와 같이, 이벤트 관리에는 3 클록 사이클만이 필요하게 된다. 제1 사이클은 이벤트 래치 단계를 수반할 수 있다. 제1 클록 사이클 동안, 이벤트가 수신될 수 있고(190), 그 이벤트의 비트가 ILAT에 설정될 수 있다(192).
제2 클록 사이클 동안, 이벤트가 처리될 수 있다. 제2 클록 사이클 동안, 우선순위 검출(194) 및 이벤트 마스킹(196)을 통해, 이벤트가 서비스될 것인지의 여부를 판정할 수 있다(198). 그 이벤트가 서비스된다면, 그 이벤트의 비트는 상태 레지스터에 기록될 수 있고(200), 우선순위 레지스터는 조정될 수 있다(202). 또한, 흐름 변경 처리를 용이하게 하도록 하나 이상의 신호가 생성될 수 있다(204). 이들 신호는 새로운 이벤트가 수신될 것이라고 지시하는 어얼리 신호 또는 적합한 서비스 루틴을 선택하는데 이용될 수 있는 직교성 신호를 포함할 수 있다.
제3 클록 사이클 동안, 흐름의 변경이 처리될 수 있다. 실행 유닛은 종료될 수 있고(206), 새로운 이벤트 어드레스가 ICACHE에 제공될 수 있다(208). 또한, 하나 이상의 중단된 명령어의 어드레스가 리턴 레지스터에 기억될 수 있다(210). 그 다음에 후속하는 클록 사이클 동안 실행 유닛에서 적합한 서비스 루틴을 실행할 수 있다.
본 발명의 다양한 실시예들을 설명하였다. 예를 들어, 일련의 서비스 가능한 이벤트와 일련의 서비스 불가능한 이벤트를 나타내는 우선순위 마스크를 생성하는 이벤트 핸들러를 구비한 프로세서를 설명하였다. 그 프로세서는 범용 계산 시스템, 디지털 처리 시스템, 랩탑 컴퓨터, 개인용 휴대 정보 단말기(PDA) 및 휴대 전화기를 비롯한 각종 시스템에서 구현될 수 있다. 이러한 시스템에서, 프로세서는 운영 체제와 기타 소프트웨어 애플리케이션이 저장된 플래시 메모리 디바이스나 스태틱 랜덤 액세스 메모리(SRAM)와 같은 메모리 디바이스에 연결될 수 있다. 이러한 실시예 및 다른 실시예은 다음의 특허 청구범위내에 포함된다.

Claims (27)

  1. 우선순위가 결정된 이벤트들의 집합을 처리하도록 구성된 우선순위 로직 유닛 - 상기 유닛은 다수의 로직 모듈을 포함하고, 상기 로직 모듈들은 제1 우선순위 로직 모듈 및 상기 제1 우선순위 로직 모듈보다 낮은 우선순위를 가진 적어도 하나 이상의 하위 우선순위 로직 모듈들을 포함함 - 에서 제1 이벤트를 수신하는 단계와,
    상기 우선순위 로직 유닛을 이용하여, 서비스 가능한 이벤트들의 집합과 서비스 불가능한 이벤트들의 집합을 표시하는 우선순위 마스크를 생성하는 단계를 포함하는 방법으로서,
    상기 우선순위 마스크 생성 단계는, 상기 제1 우선순위 로직 모듈 내에서 상기 우선 순위 마스크의 부분 집합을 생성하는 단계와, 우선순위 상태 비트를 상기 하나 이상의 하위 우선순위 모듈로 전달하는 단계를 포함하고,
    상기 우선순위 상태 비트는, 상기 하나 이상의 하위 우선순위 로직 모듈 각각으로 하여금 서비스 불가능한 이벤트들의 집합을 표시하는 우선순위 마스크의 부분 집합을 생성하게 하도록 동작하는 것인 방법.
  2. 제1항에 있어서, 상기 우선순위 마스크의 부분 집합을 생성하는 단계는,
    상기 제1 이벤트에 대한 이벤트 활성 비트(event active bit)를 생성하는 단계, 더 높은 우선순위 이벤트들에 대해 1을 생성하는 단계, 및 더 낮은 우선순위 이벤트들에 대해 0을 생성하는 단계를 포함하는 것인 방법.
  3. 제1항에 있어서, 상기 우선순위 마스크에 따라 우선순위 레지스터를 갱신시키는 단계를 더 포함하는 것인 방법.
  4. 제3항에 있어서,
    제2 이벤트를 수신하는 단계와,
    상기 제2 이벤트가 상기 우선순위 마스크에 의해 서비스 가능한 이벤트라고 판정될 때 상기 제2 이벤트를 서비스하는 단계를 더 포함하는 것인 방법.
  5. 제4항에 있어서,
    상기 제2 이벤트의 지정된 우선순위에 기초하여 새로운 우선순위 마스크 - 상기 새로운 우선순위 마스크는 서비스 가능한 이벤트들의 집합과 서비스 불가능한 이벤트들의 집합을 표시함 - 를 생성하는 단계와,
    상기 새로운 우선순위 마스크에 따라 우선순위 레지스터를 갱신시키는 단계를 더 포함하는 것인 방법.
  6. 제3항에 있어서,
    제2 이벤트를 수신하는 단계와,
    상기 제2 이벤트가 수신되었다는 것을 반영하도록 이벤트 래치 레지스터를 설정하는 단계와,
    이벤트 마스크 레지스터를 검출하여 상기 제1 이벤트가 서비스될 수 있는지의 여부를 판정하는 단계와,
    상기 제2 이벤트가 상기 우선순위 마스크에 의해 서비스 가능한 이벤트라고 판정되고, 상기 제2 이벤트가 수신되었다는 것을 반영하도록 상기 이벤트 래치 레지스터가 설정되며, 상기 이벤트 마스크 레지스터가 상기 제2 이벤트를 마스크하지 않을 때, 이벤트를 서비스하는 단계를 더 포함하는 것인 방법.
  7. 제3항에 있어서, 상기 제1 이벤트가 서비스되고 있는 중이라는 것을 반영하도록 이벤트 상태 레지스터를 설정하는 단계를 더 포함하는 것인 방법.
  8. 제7항에 있어서, 상기 이벤트 상태 레지스터를 설정하는 단계와 상기 우선순위 레지스터를 갱신시키는 단계는, 동일한 클록 사이클 동안에 일어나는 것인 방법.
  9. 제1항에 있어서, 새로운 이벤트가 수신될 것이라는 신호를 생성하는 단계를 더 포함하는 것인 방법.
  10. 제9항에 있어서, 새로운 이벤트가 수신될 것이라는 신호를 생성하는 단계와 우선순위 마스크를 생성하는 단계는, 동일한 클록 사이클 동안에 일어나는 것인 방법.
  11. 우선순위 로직 유닛에 이벤트가 수신될 때, 서비스 가능한 이벤트들의 집합과 서비스 불가능한 이벤트들의 집합을 표시하는 우선순위 마스크를 생성하는 우선순위 로직 유닛을 구비한 제어 유닛을 포함하는 장치로서,
    상기 우선순위 로직 유닛은,
    상기 우선순위 마스크의 제1 부분 집합을 생성하는 제1 우선순위 로직 모듈 및 상기 우선순위 마스크의 부분 집합을 생성하도록 동작하는 더 낮은 우선순위를 가진 하나 이상의 하위 우선순위 로직 모듈들을 포함하고,
    상기 제1 우선순위 로직 모듈은, 상기 제1 우선순위 로직 모듈에 이벤트가 수신될 때 우선순위 상태 비트를 상기 하나 이상의 하위 우선순위 로직 모듈로 전달하도록 동작하고,
    상기 우선순위 상태 비트는, 상기 하나 이상의 하위 우선순위 로직 모듈로 하여금 서비스 불가능한 이벤트들을 표시하는 우선순위 마스크의 부분 집합을 생성하게 하도록 동작하는 것인 장치.
  12. 제11항에 있어서, 상기 제어 유닛은 우선순위 레지스터를 포함하고, 상기 제어 유닛은 상기 우선순위 마스크에 따라 상기 우선순위 레지스터를 갱신시키도록 구성된 것인 장치.
  13. 제11항에 있어서, 상기 서비스 가능한 이벤트들의 집합은 상기 제1 이벤트보다 더 높은 우선순위가 지정된 것인 장치.
  14. 제12항에 있어서,
    제2 이벤트를 상기 제어 유닛에서 수신하고,
    상기 제2 이벤트가 상기 우선순위 마스크에 의해 서비스 가능한 이벤트라고 판정되는 경우, 상기 제2 이벤트를 실행 유닛에서 실행하도록 구성되는 것인 장치.
  15. 제14항에 있어서, 상기 제어 유닛은,
    상기 제2 이벤트가 상기 우선순위 마스크에 의해 서비스 가능한 이벤트라고 판정되는 경우, 상기 제2 이벤트의 지정된 우선순위에 기초하여 제2 우선순위 마스크 - 상기 제2 우선순위 마스크는 서비스 가능한 이벤트들의 집합과 서비스 불가능한 이벤트들의 집합을 표시함 - 를 생성하고,
    상기 제2 우선순위 마스크에 따라 상기 우선순위 레지스터를 갱신시키도록 구성되는 것인 장치.
  16. 제12항에 있어서, 상기 제어 유닛은 이벤트 래치 레지스터와 이벤트 마스크 레지스터를 더 포함하고,
    상기 제어 유닛은,
    제2 이벤트를 수신하고,
    상기 제2 이벤트가 수신되었다는 것을 반영하도록 상기 이벤트 래치 레지스터를 설정하고,
    상기 이벤트 마스크 레지스터를 검출하여 상기 제1 이벤트가 서비스될 수 있는지 여부를 판정하며,
    상기 제2 이벤트가 상기 우선순위 마스크에 의해 서비스 가능한 이벤트라고 판정되고, 상기 제2 이벤트가 수신되었다는 것을 반영하도록 상기 이벤트 래치 레지스터가 설정되며, 상기 이벤트 마스크 레지스터가 상기 제2 이벤트를 마스크하지 않을 때에, 이벤트를 서비스하도록 추가로 구성되는 것인 장치.
  17. 제11항에 있어서, 상기 제어 유닛은 이벤트 상태 레지스터를 더 포함하고, 상기 제어 유닛은 상기 제1 이벤트가 서비스되고 있는 중이라는 것을 반영하도록 상기 이벤트 상태 레지스터를 설정하도록 구성되는 것인 장치.
  18. 제17항에 있어서, 상기 제어 유닛은 동일한 클록 사이클 동안에 상기 이벤트 상태 레지스터를 설정하며 상기 우선순위 레지스터를 갱신시키도록 구성되는 것인 장치.
  19. 제11항에 있어서, 상기 제어 유닛은 새로운 이벤트가 수신될 것이라는 것을 나타내는 신호를 생성하도록 구성되는 것인 장치.
  20. 제11항에 있어서, 상기 우선순위 로직 모듈들의 집합의 각각은 4개의 이벤트를 처리하도록 구성된 것인 장치.
  21. 스태틱 램 액세스 메모리 장치와,
    상기 메모리 장치에 연결되고 제어 유닛을 포함하는 프로세서를 포함하는 시스템으로서,
    상기 제어 유닛은,
    우선순위 로직 유닛에 이벤트가 수신될 때, 서비스 가능한 이벤트들의 집합과 서비스 불가능한 이벤트들의 집합을 표시하는 우선순위 마스크를 생성하는 우선순위 로직 유닛을 포함하고,
    상기 우선순위 로직 유닛은,
    상기 우선순위 마스크의 제1 부분 집합을 생성하는 제1 우선순위 로직 모듈 및 상기 우선순위 마스크의 부분 집합을 생성하도록 동작하는 더 낮은 우선순위를 가진 하나 이상의 하위 우선순위 로직 모듈을 포함하고,
    상기 제1 우선순위 로직 모듈은, 상기 제1 우선순위 로직 모듈에 이벤트가 수신될 때 우선순위 상태 비트를 상기 하나 이상의 하위 우선순위 로직 모듈로 전달하도록 동작하고,
    상기 우선순위 상태 비트는, 상기 하나 이상의 하위 우선순위 로직 모듈로 하여금 서비스 불가능한 이벤트들을 표시하는 우선순위 마스크의 부분 집합을 생성하게 하도록 동작하는 것인 시스템.
  22. 제21항에 있어서, 상기 제어 유닛은 우선순위 레지스터를 포함하고, 상기 제어 유닛은 상기 우선순위 마스크에 따라 상기 우선순위 레지스터를 갱신하도록 구성되는 것인 시스템.
  23. 제21항에 있어서, 상기 프로세서는 상기 제어 유닛에 접속된 실행 유닛을 더 포함하는 것인 시스템.
  24. 제23항에 있어서, 상기 프로세서는,
    상기 제어 유닛에서 제2 이벤트를 수신하고,
    상기 제2 이벤트가 상기 우선순위 마스크에 의해 서비스 가능한 이벤트라고 판정되는 경우 상기 실행 유닛에서 제2 이벤트를 실행하도록 구성되는 것인 시스템.
  25. 제21항에 있어서, 상기 제어 유닛은 직교성 신호들을 생성하도록 구성된 이벤트 관리 로직을 포함하는 것인 시스템.
  26. 제25항에 있어서, 상기 제어 유닛은 상기 직교성 신호들을 이용하여 다음 명령어의 어드레스를 선택하도록 구성된 제어 로직을 포함하는 것인 시스템.
  27. 제1 우선순위 로직 모듈 내에서 우선순위 마스크의 제1 부분 집합을 생성함 - 상기 제1 우선순위 로직 모듈보다 더 낮은 우선순위를 가지는 하나 이상의 하위 우선순위 로직 모듈에서 상기 우선순위 마스크의 하나 이상의 부분집합을 생성함 - 으로써, 서비스 가능한 이벤트들의 집합과 서비스 불가능한 이벤트들의 집합을 표시하는 우선순위 마스크를 생성하는 단계와,
    우선순위 상태 비트를 상기 하나 이상의 하위 우선순위 로직 모듈로 전달하는 단계를 포함하는 방법으로서,
    상기 우선순위 상태 비트는, 상기 하나 이상의 하위 우선순위 로직 모듈로 하여금 서비스 불가능한 이벤트들을 표시하는 우선순위 마스크의 부분 집합을 생성하게 하도록 동작하는 것인 방법.
KR10-2003-7005995A 2000-11-02 2001-10-30 이벤트 처리 방법 및 장치 KR100521110B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/705,207 US6842812B1 (en) 2000-11-02 2000-11-02 Event handling
US09/705,207 2000-11-02
PCT/US2001/045248 WO2002061582A2 (en) 2000-11-02 2001-10-30 Event handling

Publications (2)

Publication Number Publication Date
KR20030072347A KR20030072347A (ko) 2003-09-13
KR100521110B1 true KR100521110B1 (ko) 2005-10-14

Family

ID=24832494

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-7005995A KR100521110B1 (ko) 2000-11-02 2001-10-30 이벤트 처리 방법 및 장치

Country Status (6)

Country Link
US (1) US6842812B1 (ko)
JP (1) JP3822568B2 (ko)
KR (1) KR100521110B1 (ko)
CN (1) CN1308828C (ko)
TW (1) TW550510B (ko)
WO (1) WO2002061582A2 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI286704B (en) * 2005-08-08 2007-09-11 Via Tech Inc Computer system and boot method thereof
CN100371896C (zh) * 2005-08-22 2008-02-27 威盛电子股份有限公司 计算机系统及其开机方法
US7971205B2 (en) * 2005-12-01 2011-06-28 International Business Machines Corporation Handling of user mode thread using no context switch attribute to designate near interrupt disabled priority status
US20070204277A1 (en) * 2006-02-27 2007-08-30 Burgess Andrew L Jr Computer program and method for managing implementation of a process
US8171270B2 (en) * 2006-12-29 2012-05-01 Intel Corporation Asynchronous control transfer
KR100934215B1 (ko) * 2007-10-29 2009-12-29 한국전자통신연구원 이벤트 처리 명령어 세트 기반의 마이크로프로세서 및 이를이용한 이벤트 처리 방법
US20090138683A1 (en) * 2007-11-28 2009-05-28 Capps Jr Louis B Dynamic instruction execution using distributed transaction priority registers
WO2009104438A1 (ja) 2008-02-18 2009-08-27 株式会社 村田製作所 弾性波装置及びその製造方法
US20090288089A1 (en) * 2008-05-16 2009-11-19 International Business Machines Corporation Method for prioritized event processing in an event dispatching system
CN107135428A (zh) * 2017-04-19 2017-09-05 深圳市金立通信设备有限公司 一种屏蔽消息的方法及终端

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63238630A (ja) 1987-03-26 1988-10-04 Toshiba Corp マイクロプロセツサの割込み制御装置
US5555420A (en) * 1990-12-21 1996-09-10 Intel Corporation Multiprocessor programmable interrupt controller system with separate interrupt bus and bus retry management
US5894577A (en) 1993-09-22 1999-04-13 Advanced Micro Devices, Inc. Interrupt controller with external in-service indication for power management within a computer system
US5745772A (en) 1996-08-02 1998-04-28 Micron Electronics, Inc. Advanced programmable interrupt controller
US5925114A (en) * 1997-03-21 1999-07-20 Motorola, Inc. Modem implemented in software for operation on a general purpose computer having operating system with different execution priority levels
US5958036A (en) 1997-09-08 1999-09-28 Lucent Technologies Inc. Circuit for arbitrating interrupts with programmable priority levels
JP3556465B2 (ja) 1998-04-21 2004-08-18 株式会社ルネサステクノロジ 割り込みコントローラ
US6651126B1 (en) * 1999-10-29 2003-11-18 Texas Instruments Incorporated Snapshot arbiter mechanism

Also Published As

Publication number Publication date
JP2004530966A (ja) 2004-10-07
KR20030072347A (ko) 2003-09-13
TW550510B (en) 2003-09-01
US6842812B1 (en) 2005-01-11
CN1308828C (zh) 2007-04-04
JP3822568B2 (ja) 2006-09-20
WO2002061582A2 (en) 2002-08-08
CN1592890A (zh) 2005-03-09
WO2002061582A3 (en) 2004-06-24

Similar Documents

Publication Publication Date Title
US5740413A (en) Method and apparatus for providing address breakpoints, branch breakpoints, and single stepping
US5621886A (en) Method and apparatus for providing efficient software debugging
US5659679A (en) Method and apparatus for providing breakpoints on taken jumps and for providing software profiling in a computer system
RU2224280C1 (ru) Механизм обнаружения исключительных ситуаций потери значимости при спекулятивном выполнении операций с плавающей точкой согласно стандарту ииэр
US7752427B2 (en) Stack underflow debug with sticky base
US6959367B2 (en) System having read-modify-write unit
EP0207665A1 (en) Bidirectional branch prediction and optimization
EP0702297B1 (en) A data processor with breakpoint circuit
US20020078334A1 (en) Exception handling in a pipelined processor
JP2009104675A (ja) デ―タ・プロセッサにおいて後続の命令処理に影響を及ぼす方法および装置
JPH07248897A (ja) コンピュータ・システムにおける例外からの回復方法、及びそのための装置
KR100521110B1 (ko) 이벤트 처리 방법 및 장치
US6052801A (en) Method and apparatus for providing breakpoints on a selectable address range
US5692146A (en) Method of implementing fast 486TM microprocessor compatible string operations
US7269720B2 (en) Dynamically controlling execution of operations within a multi-operation instruction
US6990569B2 (en) Handling problematic events in a data processing apparatus
US6920547B2 (en) Register adjustment based on adjustment values determined at multiple stages within a pipeline of a processor
JPH07311686A (ja) コンピュータシステム、およびその中でシステム管理割込を発生し処理するための方法
JPH03271829A (ja) 情報処理装置
TW201734821A (zh) 暫存器存取控制
EP0211487A1 (en) Conditional operations in computers
JPH11306044A (ja) データプロセッサ
JPH07182165A (ja) コミット条件付き命令の処理方法およびその装置
JP3100705B2 (ja) マイクロプロセッサ内の命令準備のための装置
KR100672550B1 (ko) 멀티플 인터럽트 처리 방법

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: 20120924

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20130926

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140923

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150918

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20160921

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee