KR100509006B1 - 이벤트 벡터 테이블 오버라이드 - Google Patents

이벤트 벡터 테이블 오버라이드 Download PDF

Info

Publication number
KR100509006B1
KR100509006B1 KR10-2003-7004439A KR20037004439A KR100509006B1 KR 100509006 B1 KR100509006 B1 KR 100509006B1 KR 20037004439 A KR20037004439 A KR 20037004439A KR 100509006 B1 KR100509006 B1 KR 100509006B1
Authority
KR
South Korea
Prior art keywords
event
address
overloaded
pins
override
Prior art date
Application number
KR10-2003-7004439A
Other languages
English (en)
Other versions
KR20040007396A (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 KR20040007396A publication Critical patent/KR20040007396A/ko
Application granted granted Critical
Publication of KR100509006B1 publication Critical patent/KR100509006B1/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
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address

Landscapes

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

Abstract

일 실시예에서, 시스템은 다수의 이벤트를 처리하는 프로세서를 포함할 수 있다. 이러한 이벤트에는 시스템의 특정 장치에 지정된 범용 인터럽트(GPIs, general purpose interrupts)가 포함될 수 있다. 특정의 이벤트에 적절한 이벤트 서비스 루틴의 주소가 이벤트 벡터 테이블(EVT: event vector table)에 저장될 수 있다. 프로세서의 자원(resource)을 이용하는 다수의 장치가 구비된 시스템에서, 일부 인터럽트는 오버로드, 즉 하나 보다 많은 장치에 지정될 수 있다. 오버로드된 인터럽트가 발생하면, 프로세서는 EVT 엔트리를 오버라이드(override)하여, 시스템 제어기에 의하여 일련의 리셋 벡터 핀에 제공되는 주소를 선택한다.

Description

이벤트 벡터 테이블 오버라이드 {EVENT VECTOR TABLE OVERRIDE}
본 발명은 파이프라인 프로세서에 관한 것이며, 특히 파이프라인 프로세서에 있어 인터럽트의 오버로드(overloading)에 관한 것이다.
디지털 신호 처리는 디지털 형태의 신호 표현 및 수치 계산을 이용한 상기 신호 표현의 변환 또는 처리와 관련된다. 디지털 신호 처리는 무선통신, 네트워킹, 및 멀티미디어 등의 분야의 최신 고급 기술 제품들 중 다수에 있어 핵심 기술이다. 디지털 신호 처리 기술의 보편화된 한 원인은 저가의 고성능 디지털 신호 처리기(DSP: digital signal processor)의 개발이었고, 이러한 디지털 신호 처리기는 신뢰성 있는 계산 능력을 제공하여 상기의 제품들을 저렴하면서도 효율적으로 구현하도록 한다. 최초의 DSP 개발이래, DSP의 아키텍쳐 및 설계는 영상(video)급 시퀀스의 정교한 실시간 처리마저도 수행될 수 있는 위치로 진화하였다.
DSP는 다양한 멀티미디어 애플리케이션, 예를 들어 디지털 영상, 디지털 이미지, 디지털 오디오용으로 종종 사용된다. DSP는 디지털 신호들을 처리하여 상기의 멀티미디어 파일을 생성하고 개발한다.
MPEG-1 (Motion Picture Expert Group: 동영상 전문가 그룹), MPEG-2, MPEG-4 및 H.263은 디지털 영상 압축 표준 및 파일 포맷이다. 상기의 표준들은 디지털 영상 신호의 높은 압축률을 달성하는데, 이는 각각의 전체 프레임을 저장하는 대신에 하나의 영상 프레임에서 다른 프레임으로의 변화를 주로 저장함으로써 달성된다. 그리하여 상기의 영상 정보는 상이한 다수의 기술을 사용하여 더 압축될 수 있다.
압축하는 동안에 DSP를 이용하여 영상 정보에 대한 다양한 연산을 수행할 수 있다. 상기의 연산은 움직임(motion) 탐색과 공간적 보간(interpolation) 알고리즘을 포함하기도 한다. 이의 근본적 의도는 인접 프레임내의 블록간 왜곡을 측정하고자 하는 것이다. 이러한 연산은 계산 집약적이어서 높은 데이터 처리량을 요구하기도 한다.
MPEG 계열의 표준은 멀티미디어 애플리케이션 및 파일의 증대되는 대역폭 요구에 보조를 맞추기 위해 진화를 하고 있다. 상기 표준의 각 신규 버전은 더욱 정교한 알고리즘을 제시하는데, 이는 MPEG 지원 영상 처리 장치에 사용되는 DSP에 더욱 더 커다란 처리 조건을 요구한다.
영상 처리 장치 제조자는 MPEG 및 H.263 표준하에서 영상 인코딩용으로 커스터마이즈된 주문형 반도체(ASIC: application-specific integrated circuit)에 종종 의존한다. 그러나 ASIC은 설계가 복잡하고, 생산 비용이 많이 들고, 범용 DSP보다 애플리케이션에 있어 덜 유연하다.
본 발명의 상기 및 기타의 특징과 이점은 이후의 상세한 설명을 읽고, 첨부 도면을 참조하면 바로 더욱 명확해 질 것이다.
도 1은 일 실시예에 의한 프로세서가 이용되는 이동 영상 장치의 블록 다이어그램이다.
도 2는 일 실시예에 의한 신호 처리 시스템의 블록 다이어그램이다.
도 3은 일 실시예에 의한 대안적 신호 처리 시스템의 블록 다이어그램이다.
도 4는 일 실시예에 의한 도 1의 프로세서의 예시적인 파이프라인 단계를 도시한 것이다.
도 5는 일 실시예에 의한 도 1의 프로세서를 포함하는 시스템의 블록 다이어그램이다.
도 6은 일 실시예에 따른 이벤트 벡터 테이블을 오버라이드하기 위한 회로의 블록 다이어그램이다.
도 7은 일 실시예에 따른 이벤트 벡터 테이블을 오버라이드하기 위한 연산을 도시한 흐름도이다.
도 1은 본 발명의 실시예에 따른 프로세서가 포함된 이동 영상 장치(100)를 도시하고 있다. 상기 이동 영상 장치(100)는 인코딩된 영상 신호로부터 생성된 영상 이미지를 표시해 주는 휴대용(hand-held) 장치일 수 있으며, 상기 인코딩된 영상 신호는 안테나(105) 또는 디지털 영상 저장 매체(120), 예컨대 디지털 비디오 디스크(DVD)나 메모리 카드로부터 수신된다. 프로세서(110)는 캐시 메모리(115)와 통신을 하며, 상기 캐시 메모리는 상기 프로세서의 연산을 위한 명령어와 데이터를 저장할 수 있다. 상기 프로세서(110)는 마이크로프로세서, 디지털 신호 처리기(DSP), 슬레이브 DSP를 제어하는 마이크로 프로세서, 또는 마이크로프로세서/DSP 복합 아키텍쳐를 구비한 프로세서일 수 있다. 본 애플리케이션을 위한 목적으로, 상기 프로세서(110)는 본 명세서에 있어 이후부터 DSP(110)로 인용될 것이다.
상기 DSP(110)는 인코딩된 영상 신호에 대하여 다양한 연산, 예컨대 아날로그-디지털 변환, 복조, 필터링, 데이터 복원, 디코딩을 포함한 연산을 수행할 수 있다. 상기 DSP(110)는 다양한 디지털 영상 압축 표준, 예를 들어 MPEG 계열의 표준 및 H.263 표준 가운데 하나에 의하여 압축된 디지털 영상 신호를 디코딩할 수 있다. 그리고 나서, 디코딩된 상기 영상 신호는 디스플레이 드라이버(130)에 입력되어, 디스플레이(125)상에 영상 이미지를 생성한다.
일반적으로 휴대용 장치는 한정된 전원을 구비하고 있다. 또한 영상 디코딩 연산은 계산 요구가 집약적이다. 따라서 이러한 장치에 사용하기 위한 프로세서는 상대적으로 높은 속도 및 저전력의 장치인 것이 유리하다.
상기 DSP(110)는 심층적으로 파이프라인(pipeline)된 적재(load)/저장(store) 아키텍쳐를 구비할 수 있다. 파이프라이닝을 채택함으로써, 상기 DSP의 성능이 비-파이프라인 DSP보다 상대적으로 확장될 수 있다. 제1의 명령어를 인출(fetch)하여, 상기 제1의 명령어를 실행한 다음에 제2의 명령어를 인출하는 대신에, 파이프라인 DSP(110)는 상기 제1의 명령어를 실행함과 동시에 상기 제2의 명령어를 인출함으로써 명령어 처리량을 향상시킨다. 더욱이, 파이프라인 DSP의 클록 사이클이 비-파이프라인 DSP보다 짧을 수 있으며, 비-파이프라인 DSP에서 상기 명령어는 동일한 클록 사이클에서 인출 및 실행된다.
이러한 DSP(110)는 비디오 캠코더, 원격회의, PC 비디오 카드, 및 고선명 텔레비전(HDTV: High-Definition Television) 등에 사용될 수 있다. 또한, 상기 DSP(110)는 이동전화에 사용되는 음성 처리, 음성 인식, 및 기타의 애플리케이션 등과 같은 디지털 신호 처리가 이용되는 기타의 기술과 함께 사용될 수 있다.
도 2에는 실시예에 따른 DSP(110)가 포함된 신호 처리 시스템(200)의 블록 다이어그램이 도시되어 있다. 하나 이상의 아날로그 신호가 외부 소스, 예컨대 안테나(105)로부터 신호 조절기(202)에 제공될 수 있다.. 신호 조절기(202)는 상기 아날로그 신호에 대하여 소정의 전처리 기능을 수행할 수 있다. 전처리 기능의 예로서는 상기 몇몇의 아날로그 신호를 믹싱하는 것과 필터링, 및 증폭하는 것 등을 포함할 수 있다. 아날로그-디지털 변환기(ADC)(204)는 신호 조절기(202)로부터 전처리된 상기 아날로그 신호를 수신하도록 연결되고, 전처리된 상기 아날로그 신호를 전술한 바와 같이 샘플로 구성된 디지털 신호로 변환한다. 상기 샘플은 신호 조절기(202)에 의하여 수신된 아날로그 신호의 성질에 따라 결정되는 샘플링 속도에 따라서 취득될 수 있다. 상기 DSP(110)는 ADC(204)의 출력에 연결되어 디지털 신호를 수신한다. 상기 DSP(110)는 수신된 상기 디지털 신호에 대하여 요구되어지는 신호 변환을 수행하여, 하나 이상의 디지털 출력 신호를 생성할 수 있다. 디지털-아날로그 변환기(DAC)(206)는 상기 DSP(110)로부터 상기 디지털 출력 신호를 수신하도록 연결된다. 상기 DAC(206)는 디지털 출력 신호를 아날로그 출력 신호로 변환한다. 그리고 나서 상기 아날로그 출력 신호는 또 다른 신호 조절기(208)로 전달된다. 상기 신호 조절기(208)는 상기 아날로그 출력 신호에 대하여 후처리 기능을 수행한다. 후처리 기능의 예는 앞서 제시한 전처리 기능과 유사하다. 적절히 배치된 상기 장치들이 DSP(110)를 포함하는 신호 처리 시스템(200)에 연결될 수 있다.
다음 도 3으로 넘어가면, 또 다른 실시예에 의한 신호 처리 시스템(300)이 도시되어 있다. 본 실시예에서, 디지털 수신기(302)는 하나 이상의 디지털 신호를 수신하고, 수신된 디지털 신호를 DSP(110)에 전달하도록 배치된다. 도 2에 도시된 실시예와 마찬가지로, DSP(110)는 수신된 상기 디지털 신호에 대하여 요구되는 신호 변환을 수행하여, 하나 이상의 디지털 출력 신호를 생성한다. 디지털 신호 송신기(304)는 상기 디지털 출력 신호를 수신하도록 연결된다. 하나의 예시적인 애플리케이션에 있어서, 상기 신호 처리 시스템(300)은 디지털 오디오 장치이며, 상기 디지털 오디오 장치에서 상기 디지털 수신기(302)는 디지털 저장 장치(120)에 저장된 데이터를 나타내는 디지털 신호를 DSP(110)로 전달한다. 그리고 나서, 상기 DSP(110)는 상기 디지털 신호를 처리하여 그 결과인 디지털 출력 신호를 디지털 송신기(304)로 전달한다. 그리고 나서 상기 디지털 송신기(304)는 상기 디지털 출력 신호의 값을 디스플레이 드라이버(130)에 전송하여, 디스플레이(125)에 영상 이미지를 생성하도록 한다.
도 4에 도시된 파이프라인은 8단계를 포함하며, 상기 8단계는 명령어 인출(402-403), 디코딩(404), 주소(address) 계산(405), 실행(406-408), 및 후기록(wrte-back)(409) 단계를 포함한다. 명령어 i가 한 클록 사이클에 인출된 다음, 신규 명령어, 예컨대 i+1과 i+2의 인출과 동시에 다음 클록 사이클에서 파이프라인으로 연산되고 실행된다.
파이프라이닝(pipelining)은 추가적인 조정(coordination)의 문제 및 프로세서 성능에 대한 위험을 불러 일으킨다. 프로그램 흐름에서의 점프는 파이프라인 내에 빈 슬롯들, 즉 "버블(bubbles)"을 생성시킬 수 있다. 조건부 분기(branch)가 취해지거나 예외(exception) 또는 인터럽트가 생성되도록 하는 상황은 명령어의 순차적 흐름을 변경시킬 수 있다. 상기 상황의 발생 이후에는, 순차적 프로그램 흐름에서 벗어나 신규 명령어가 인출될 수 있으며, 이는 파이프라인에 있는 잔존 명령어들을 무의미하게 만든다. 이러한 복잡성을 처리하기 위하여 데이터 포워딩(forwarding), 분기(branch) 예측, 및 파이프라인에서 명령어 주소와 유효 비트의 연결 등의 방법이 채택된다.
도 5는 시스템 제어기(502)를 포함하는 시스템(500)을 도시하고 있으며, 상기 시스템 제어기(502)는 DSP(110) 및 DSP(110)와 통신할 수 있는 기타 다수의 장치(505-520)를 제어할 수 있다. 예컨대 장치(505-520)는 마이크로프로세서 또는 주변 요소 상호접속(PCI: peripheral component interconnect) 제어기를 포함할 수 있다.
상기 DSP(110)에서의 프로그램 흐름은 소정의 이벤트에 의하여 인터럽트될 수 있다. 상기 이벤트에는 DSP(110)에 의한 서비스가 요구되는 시스템에서 상기 장치(505-520)에 의하여 개시되는 인터럽트가 포함될 수 있다. 상기 이벤트에는 또한 시스템에 의하여 활용되는 인터럽트와 유사한 이벤트, 예를 들어 에뮬레이션 및 리셋 등이 포함될 수 있다. 시스템에 이벤트가 발생되면, 파이프라인에 있는 명령어는 소멸되고, 상기 이벤트에 적합한 이벤트 서비스 루틴용의 명령어 세트가 인출(fetch)되어 파이프라인에 삽입된다.
상기 이벤트들은 상이한 우선 순위를 가질 수 있다. 일 실시예에 의하면, 에뮬레이션이 리셋보다 더 높은 우선 순위를 가질 수 있으며, 리셋은 장치(505-520)에 의해 발생하는 인터럽트보다 더 상위의 우선 순위를 가질 수 있다. 상기 인터럽트는 범용 인터럽트(GPI: general purpose interrupt)를 포함할 수 있으며, 상기 범용 인터럽트는 고정되는 에뮬레이션 및 리셋 이벤트와는 달리, 시스템(500)상의 상이한 장치(505-520)에 지정될 수 있다. 상기 GPI는 DSP(110)를 활용하는 시스템의 설계에 있어 유연성을 제공할 수 있다. 상기 GPI는 또한 상이한 우선 순위를 가질 수 있으므로, 소정의 장치에게 시스템(500)의 기타 장치들에 대한 우선권을 줄 수도 있다.
도 6은 일 실시예에 따라 동일한 GPI가 2개 이상의 장치에 지정되는 시스템(500)에서 인터럽트를 처리하는 회로(600)를 도시한다. 상기 DSP(110)는 상이한 우선 순위를 갖는 16개의 이벤트를 인식한다. 하나의 주어진 사이클에서 발생하는 이벤트들은 래치(602)로부터의 16비트 이벤트 워드(word) 출력에 의하여 식별될 수 있다. 이벤트의 유형은 상기 16비트 워드에 있는 특정의 비트에 의하여 표시될 수 있다. 예컨대, 2순위의 우선 순위를 가질 수 있는 이벤트 1은 상기 이벤트 워드의 1번 비트에 의하여 표현될 수 있다. 일 실시예에 따르면, 이벤트 1은 리셋으로 지정될 수 있다. 이벤트 7 내지 15는 GPI용으로 유보될 수 있으며, 이벤트 워드에서 7번 내지 15번 비트에 의하여 각각 표현될 수 있다.
상기 이벤트 워드는 마스킹 및 우선 순위 검출(MPD, masking and priority detection) 회로(604)에 입력될 수도 있다. 상기 MPD 회로(604)는 시스템 파라메타에 기초하여 소정의 인터럽트를 마스크해 내고, 동일한 사이클에 발생하는 상이한 이벤트들 간의 우선 순위를 결정할 수도 있다. 상기 MPD 회로(604)는 마스크되지 않은 우선 순위 이벤트를 식별하는 신규의 16비트 이벤트 워드를 래치(606), 이벤트 벡터 테이블(EVT: event vector table)(610)에 연결된 멀티플렉서(MUX)(608), 및 논리곱 게이트(612)로 출력할 수 있다.
상기 EVT(610)는 이벤트 2 내지 15에 대한 엔트리를 포함할 수 있다. 상기 엔트리는 상기 특정 이벤트 번호에 해당하는 이벤트 서비스 루틴에서 제 1 명령어의 주소를 포함할 수 있다.
이벤트 2 내지 15에 대한 엔트리의 주소는 EVT(610)에 기록될 수 있다. DSP(110)에 전원이 인가될 때, 상기 EVT(610)에 있는 주소들이 변경될 수 있기 때문에 신뢰성이 없다. 상기 DSP(110)에 전원이 인가될 때마다 리셋이 수행될 수 있다. 리셋 서비스 루틴에 대한 주소의 정확성을 보장하기 위해, 리셋 서비스 루틴에서 제 1명령어의 주소가 상기 EVT(610)에 저장되지 않을 수 있다. 도리어 상기 주소가 DSP(110)에 있는 32개의 리셋 벡터 핀(614)을 통해 제공될 수 있다. 상기 리셋 서비스 루틴에는 이벤트 서비스 루틴 어드레스를 상기 EVT에 기록하는 것이 포함될 수 있다.
전술한 바와 같이, 이벤트 7 내지 15는 GPI용으로 지정될 수 있다. DSP(110)의 자원(resource)을 다투는 9개의 장치가 구비된 시스템에서, 상기 장치는 상이한 GPI에 지정될 수 있다. 그러나, 9개를 초과하는 장치를 갖는 시스템(500)에서 일부 GPI는 하나보다 많은 장치에 지정될 수 있다. 이러한 GPI가 오버로드(overload)된 것으로 간주될 수 있다.
일 실시예에 따르면, 오버로드된 GPI에 대한 EVT 엔트리는 오버라이드(override)될 수 있다. GPI용 EVT 엔트리에 있는 주소를 사용하는 대신에 특정 장치에 적합한 이벤트 서비스 루틴용 주소가 시스템 제어기(502)에 의해 리셋 벡터 핀에 제공될 수 있다.
예컨대, 6개의 장치들(505-510)이 이벤트 13에 지정될 수 있다. 이러한 장치들은 상이한 이벤트 서비스 루틴을 요구할 수 있다. 본 예시에서, EVT의 엔트리 13에 저장된 주소는 상기 장치들(505-510)중 최소한 5개에 대해서는 적절하지 않을 수 있다. 일 실시예에 따르면, 상기 장치들(505-510)중 하나가 인터럽트를 요청할 때, EVT(610)는 오버라이드되고, 시스템 제어기(502)에 의해 적절한 주소가 리셋 벡터 핀(614)에 제공된다.
상기 장치들(505-510)중 하나 보다 많은 장치, 예를 들어 505와 506이 한 사이클에서 인터럽트를 요청한다면, 장치 우선 순위 처리기(device priority handler)(504)가 상기 두 장치(505, 506) 사이의 우선 순위를 결정하고, 그 결과를 시스템 제어기(502)에 전송할 수 있다. 그리고 나서 상기 시스템 제어기(502)는 우선 순위를 얻은 장치에 대응하는 주소를 리셋 벡터 핀(614)에 제공할 수 있다.
오버로드된 GPI는 EVT 오버라이드 레지스터(616)에 있는 n 비트의 오버라이드 워드에 의하여 식별될 수 있다. n의 값은 GPI의 숫자에 대응할 수 있다. n 비트 워드의 비트들은 특정의 이벤트 번호에 대응할 수 있다. 오버로드된 GPI에 대응하는 비트들은 HIGH로 설정되고, 기타의 비트들은 LOW로 설정될 수 있다.
EVT(610) 및 EVT 오버라이드 레지스터(616) 모두가 메모리 맵 레지스터(MMR: Mermory Map Register)일 수 있다. MMR에서, 주어진 번지에 대한 저장 연산은 메모리 위치보다는 MMR에 있는 레지스터에 직접 맵핑을 할 수 있다.
도 7은 일 실시예에 의하여 EVT 엔트리를 오버라이드하기 위한 동작(700)을 설명하는 흐름도를 도시하고 있다. 이후의 설명은 상기 동작(700)을 구현하는 일 실시예에 불과하다. 기타의 실시예에서, 단계들은 생략되거나 상이한 순서로 수행될 수도 있다. 상기 동작은 도 6의 회로(600)를 사용하여 설명되고 있다. 그러나 상기 동작(700)은 대안적인 실시예에 따른 회로를 사용하여 수행될 수도 있다.
단계 702에서는 래치(606)로부터 출력된 n 비트의 이벤트 워드에 의하여, 주어진 한 사이클에서 이벤트(들)의 발생이 식별될 수도 있다. 단계 704에서는 상기 MPD 회로(604)가 소정의 이벤트를 마스크해 내고, 단계 706에서 다수의 이벤트간 우선 순위를 결정할 수도 있다. 상기 MPD 회로(604)는 신규의 직교(orthogonal) 이벤트 워드, 즉 하나 또는 0개의 비트가 HIGH로 설정된 이벤트 워드를 EVT MUX(608)로 출력할 수 있다. 상기 EVT MUX(608)는 이벤트 벡터 테이블(610)에 있는 엔트리를 선택할 수 있는데, 상기 엔트리는 상기 신규 직교 이벤트 워드에 의하여 식별되는 우선 순위 이벤트에 대응한다. 상기 신규의 직교 이벤트 워드는 또한 논리곱(AND) 게이트(612)에 입력될 수 있다. 단계 708에서 상기 논리곱 게이트(612)는 MPD 회로(604)로부터의 상기 신규 직교 이벤트 워드와 EVT 오버라이드 레지스터(616)로부터의 n 비트 오버라이드 워드에 대한 비트 단위 곱으로부터 n 비트의 워드를 생성할 수 있다. 상기 논리곱 게이트(612)로부터 출력된 n 비트 워드는 한 비트 위치에서 HIGH 값을 가질 수 있는데, 이는 상기 비트에 대응하는 이벤트 번호가 당해 사이클에서 발생하고 상기 이벤트 번호가 오버로드된 GPI에 대응하는 경우이다. 단계 710에서 논리합(OR) 게이트(618)는 상기 워드에 있는 16개의 비트로부터 1비트 합을 생성하여 1 비트를 출력할 수 있다. 상기 출력 비트는 EVT 엔트리가 오버라이드되어야 하는지 여부를 지시할 수 있다. 상기 비트는 MUX(620)에 입력될 수 있다. 단계 712에서 상기 MUX(620)는 논리합 게이트(618)로부터의 비트 출력이 LOW 값을 가질 경우 EVT MUX(608)에서 32 비트 주소를 선택할 수 있다. 단계 714에서 상기 MUX(620)는 상기 비트가 HIGH 값을 가질 경우, 시스템 제어기(502)에 의하여 리셋 벡터 핀(614)에 제공되는 32 비트의 명령어 주소를 선택할 수 있다. 상기 선택된 주소는 래치(622)에 저장될 수 있다. 상기 주소는 단계 716에서 적절한 이벤트 서비스 루틴을 위한 명령어를 인출하는데 사용될 수 있다.
본 발명에 대한 여러 실시예가 제시되었다. 그럼에도 불구하고, 본 발명의 사상과 범위를 벗어나지 않으면서 다양한 변형이 만들어 질 수 있음이 이해될 것이다. 예컨대, 이벤트의 크기(width), 오버라이드 워드, 및 명령어 주소는 전술한 것에 한정되지 않는다. 따라서, 기타의 실시예는 이후의 청구항의 범위내에 있다.

Claims (33)

  1. 다수의 핀을 포함하는 프로세서에서 이벤트 벡터 테이블에 있는 이벤트 엔트리를 오버라이드(override)하는 방법에 있어서,
    이벤트의 발생을 확인하는 단계와,
    상기 이벤트에 대응하는 이벤트 번호와 상기 이벤트 벡터 테이블 내의 하나 이상의 오버로드된 이벤트 번호--상기 오버로드된 이벤트 번호 각각은 하나 이상의 이벤트와 관련됨--를 비교하는 단계와,
    상기 이벤트 번호가 상기 하나 이상의 오버로드된 이벤트 번호 중 적어도 하나와 일치하지 않는 것에 응답하여, 상기 이벤트 벡터 테이블로부터 상기 이벤트 번호에 대응하는 이벤트 엔트리 내의 제1 주소를 선택하는 단계와,
    상기 이벤트 번호가 상기 하나 이상의 오버로드된 이벤트 번호 중 적어도 하나와 일치하는 것에 응답하여, 상기 프로세서 내의 다수의 핀으로부터 제2 어드레스를 선택함으로써 상기 이벤트 벡터 테이블 내의 상기 이벤트 번호에 대응하는 이벤트 엔트리를 오버라이드하는 단계를 포함하는 이벤트 엔트리의 오버라이드 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 제1 주소를 선택하는 것에 응답하여, 상기 제1 주소에서 이벤트 서비스 루틴을 위한 제1 명령어를 인출(fetch)하는 단계와,
    상기 제2 주소를 선택하는 것에 응답하여, 상기 제2 주소에서 이벤트 서비스 루틴을 위한 제1 명령어를 인출(fetch)하는 단계를 더 포함하는 것인 이벤트 엔트리의 오버라이드 방법.
  4. 삭제
  5. 제1항에 있어서, 상기 다수의 핀은 리셋 벡터 핀들을 포함하는 것인 이벤트 엔트리의 오버라이드 방법.
  6. 제1항에 있어서, 상기 이벤트 벡터 테이블은 16개의 이벤트 엔트리를 포함하는 것인 이벤트 엔트리의 오버라이드 방법.
  7. 제1항에 있어서, 상기 하나 이상의 오버로드된 이벤트 번호는 하나 이상의 범용 인터럽트에 대응하는 것인 이벤트 엔트리의 오버라이드 방법.
  8. 다수의 핀을 포함하는 프로세서에서 이벤트 벡터 테이블에 있는 이벤트 엔트리를 오버라이드(override)하기 위한 명령어들을 저장하는 컴퓨터로 판독가능한 기록 매체에 있어서,
    상기 명령어들은 상기 컴퓨터에서,
    이벤트의 발생을 확인하는 단계와,
    상기 이벤트에 대응하는 이벤트 번호와 상기 이벤트 벡터 테이블 내의 하나 이상의 오버로드된 이벤트 번호--상기 오버로드된 이벤트 번호 각각은 하나 이상의 이벤트와 관련됨--를 비교하는 단계와,
    상기 이벤트 번호가 상기 하나 이상의 오버로드된 이벤트 번호 중 적어도 하나와 일치하지 않는 것에 응답하여, 상기 이벤트 벡터 테이블로부터 상기 이벤트 번호에 대응하는 이벤트 엔트리 내의 제1 주소를 선택하는 단계와,
    상기 이벤트 번호가 상기 하나 이상의 오버로드된 이벤트 번호 중 적어도 하나와 일치하는 것에 응답하여, 상기 다수의 핀으로부터 제2 어드레스를 선택함으로써 상기 이벤트 벡터 테이블 내의 상기 이벤트 번호에 대응하는 이벤트 엔트리를 오버라이드하는 단계를 수행하는 것인 컴퓨터로 판독가능한 기록 매체.
  9. 삭제
  10. 제8항에 있어서, 상기 명령어들이,
    상기 제1 주소를 선택하는 것에 응답하여, 상기 제1 주소에서 이벤트 서비스 루틴을 위한 제1 명령어를 인출(fetch)하는 단계와,
    상기 제2 주소를 선택하는 것에 응답하여, 상기 제2 주소에서 이벤트 서비스 루틴을 위한 제1 명령어를 인출(fetch)하는 단계를 더 수행하는 것인 컴퓨터로 판독가능한 기록 매체.
  11. 삭제
  12. 제8항에 있어서, 상기 다수의 핀은 리셋 벡터 핀들을 포함하는 것인 컴퓨터로 판독가능한 기록 매체.
  13. 제8항에 있어서, 상기 이벤트 벡터 테이블은 16개의 이벤트 엔트리를 포함하는 것인 컴퓨터로 판독가능한 기록 매체.
  14. 제8항에 있어서, 상기 하나 이상의 오버로드된 이벤트 번호는 하나 이상의 범용 인터럽트에 대응하는 것인 컴퓨터로 판독가능한 기록 매체.
  15. 프로세서에 있어서,
    다수의 엔트리-- 상기 엔트리 각각은 특정한 이벤트 번호에 대응하는 이벤트 서비스 루틴 명령어에 대한 주소를 포함함--를 포함하는 이벤트 벡터 테이블과,
    주소를 수신하기에 적합한 다수의 핀과,
    입력된 이벤트 번호가 적어도 하나의 오버로드된 이벤트 번호--상기 오버로드된 이벤트 번호는 다수의 이벤트와 관련됨--와 일치하는 것에 응답하여 오버라이드 신호를 출력하는 오버라이드 회로와,
    상기 오버라이드 회로, 상기 이벤트 벡터 테이블, 및 상기 다수의 핀에 연결되고, 상기 오버라이드 신호에 응답하여 상기 다수의 핀에서 주소를 선택하도록 동작하는 선택 회로를 포함하는 것인 프로세서.
  16. 제15항에 있어서, 상기 다수의 핀에 있어서 상기 주소는 오버로드된 이벤트 번호를 갖는 이벤트에 대응하는 이벤트 서비스 루틴에서의 제1 명령어에 대한 주소를 포함하는 것인 프로세서.
  17. 제15항에 있어서, 상기 적어도 하나의 오버로드된 이벤트 번호를 저장하는 오버라이드 레지스터를 더 포함하는 프로세서.
  18. 삭제
  19. 제16항에 있어서, 상기 오버로드된 이벤트 번호는 범용 인터럽트에 대응하는 것인 프로세서.
  20. 제17항에 있어서,
    상기 오버라이드 레지스터는 다수의 오버로드된 이벤트 번호를 저장하도록 구성되고,
    상기 오버라이드 회로는 상기 입력된 이벤트 번호를 상기 다수의 오버로드된 이벤트 번호 각각과 비교하도록 구성되는 것인 프로세서.
  21. 제17항에 있어서,
    상기 오버라이드 레지스터는 상기 적어도 하나의 오버로드된 이벤트 번호를 식별하는 제1 n 비트 워드를 출력하도록 구성되고,
    상기 오버라이드 회로는,
    상기 제1 n 비트 워드와 n 비트 이벤트 워드의 비트단위 곱(bit-wise product)으로부터 제2 n 비트 워드를 생성하는 AND 게이트와,
    상기 제2 n 비트 오버라이드 워드의 비트 합으로부터 오버라이드 신호를 생성하는 OR 게이트를 포함하는 것인 프로세서.
  22. 제15항에 있어서, 상기 다수의 핀은 다수의 리셋 벡터 핀들을 포함하는 것인 프로세서.
  23. 제17항에 있어서, 상기 오버라이드 레지스터는 메모리 맵 레지스터를 포함하는 것인 프로세서.
  24. 시스템에 있어서,
    시스템 제어기와,
    상기 시스템 제어기에 연결된 다수의 장치와,
    상기 시스템 제어기에 연결된 프로세서를 포함하고,
    상기 프로세서는,
    다수의 엔트리--상기 엔트리 각각은 특정한 이벤트 번호에 대응하는 이벤트 서비스 루틴 명령어에 대한 주소를 포함함--를 포함하는 이벤트 벡터 테이블과,
    상기 시스템 제어기로부터 주소를 수신하기에 적합한 다수의 핀과,
    입력된 이벤트 번호가 적어도 하나의 오버로드된 이벤트 번호--상기 오버로드된 이벤트 번호는 다수의 이벤트와 관련됨--와 일치하는 것에 응답하여 오버라이드 신호를 출력하는 오버라이드 회로와,
    상기 오버라이드 회로, 상기 이벤트 벡터 테이블, 및 상기 다수의 핀에 연결되고, 상기 오버라이드 신호에 응답하여 상기 다수의 핀에서 주소를 선택하도록 동작하는 선택 회로를 포함하는 것인 시스템.
  25. 제24항에 있어서, 상기 시스템 제어기에 연결되고, 동일한 이벤트 번호를 갖는 다수의 장치간 우선 순위를 결정하도록 구성되는 장치 우선 순위 처리기를 더 포함하는 것인 시스템.
  26. 제24항에 있어서, 적어도 하나의 오버로드된 이벤트 번호를 저장하는 오버라이드 레지스터를 더 포함하는 것인 시스템.
  27. 제24항에 있어서, 상기 다수의 핀에서 상기 시스템 제어기로부터의 주소는, 오버로드된 이벤트 번호를 갖는 이벤트에 대응하는 이벤트 서비스 루틴에 대한 제1 주소를 포함하는 것인 시스템.
  28. 시스템에 있어서,
    스태틱 랜덤 액세스 메모리(SRAM)과,
    상기 스태틱 랜덤 액세스 메모리와 연결된 프로세서를 포함하고,
    상기 프로세서는,
    다수의 이벤트 엔트리--상기 엔트리 각각은 이벤트와 관련되고, 주소를 포함함--를 포함하는 이벤트 벡터 테이블과,
    다수의 핀과,
    입력된 이벤트 번호가 적어도 하나의 오버로드된 이벤트 번호--상기 오버로드된 이벤트 번호는 다수의 이벤트와 관련됨--와 일치하는 것에 응답하여 오버라이드 신호를 출력하는 오버라이드 회로와,
    상기 오버라이드 회로, 상기 이벤트 벡터 테이블, 및 상기 다수의 핀에 연결되고, 상기 오버라이드 신호에 응답하여 상기 다수의 핀에서 주소를 선택하도록 동작하는 선택 회로를 포함하는 것인 시스템.
  29. 삭제
  30. 제15항에 있어서, 상기 선택 회로는 멀티플렉서를 포함하는 것인 프로세서.
  31. 이벤트의 발생을 확인하는 단계와,
    상기 이벤트에 대응하는 이벤트 번호와 하나 이상의 오버로드된 이벤트 번호--상기 오버로드된 이벤트 번호 각각은 하나 이상의 이벤트와 관련됨--를 비교하는 단계와,
    상기 이벤트 번호가 상기 하나 이상의 오버로드된 이벤트 번호 중 적어도 하나와 일치하지 않는 것에 응답하여, 이벤트 벡터 테이블로부터 상기 이벤트 번호에 대응하는 이벤트 엔트리 내의 제1 주소를 선택하는 단계와,
    상기 이벤트 번호가 상기 하나 이상의 오버로드된 이벤트 번호 중 적어도 하나와 일치하는 것에 응답하여, 제어기에 의해 제공되는 제2 어드레스를 선택하는 단계를 포함하는 방법.
  32. 장치에 있어서,
    오버로드된 이벤트 번호--상기 오버로드된 이벤트 번호는 다수의 이벤트와 관련됨--를 갖는 이벤트에 대응하는 이벤트 서비스 루틴 내의 제1 명령어에 대한 주소를 제공하도록 동작하는 제어기와,
    상기 제어기와 연결된 프로세서를 포함하고,
    상기 프로세서는,
    다수의 엔트리--상기 엔트리 각각은 특정한 이벤트 번호에 대응하는 이벤트 서비스 루틴에 대한 주소를 포함함--를 포함하는 이벤트 벡터 테이블과,
    입력된 이벤트 번호가 오버로드된 이벤트 번호와 일치하는 것에 응답하여 오버라이드 신호를 출력하는 오버라이드 회로와,
    상기 오버라이드 회로에 연결되고, 상기 오버라이드 신호에 응답하여 상기 제어기에 의해 제공되는 주소를 선택하도록 동작하는 선택 회로를 포함하는 것인 장치.
  33. 제32항에 있어서, 상기 선택 회로는 상기 오버라이드 신호를 수신하지 않는 것에 응답하여, 상기 이벤트 벡터 테이블 내의 엔트리에서 주소를 선택하도록 동작하는 것인 장치.
KR10-2003-7004439A 2000-09-28 2001-09-25 이벤트 벡터 테이블 오버라이드 KR100509006B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/672,289 US6760800B1 (en) 2000-09-28 2000-09-28 Event vector table override
US09/672,289 2000-09-28
PCT/US2001/030242 WO2002027490A2 (en) 2000-09-28 2001-09-25 Event vector table override

Publications (2)

Publication Number Publication Date
KR20040007396A KR20040007396A (ko) 2004-01-24
KR100509006B1 true KR100509006B1 (ko) 2005-08-18

Family

ID=24697928

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-7004439A KR100509006B1 (ko) 2000-09-28 2001-09-25 이벤트 벡터 테이블 오버라이드

Country Status (6)

Country Link
US (1) US6760800B1 (ko)
JP (1) JP3844465B2 (ko)
KR (1) KR100509006B1 (ko)
CN (1) CN1308827C (ko)
TW (1) TW565781B (ko)
WO (1) WO2002027490A2 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043582B2 (en) * 2002-09-06 2006-05-09 Intel Corporation Self-nesting interrupts

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5943507A (en) * 1994-12-22 1999-08-24 Texas Instruments Incorporated Interrupt routing circuits, systems and methods
US6148321A (en) * 1995-05-05 2000-11-14 Intel Corporation Processor event recognition
US5805929A (en) 1996-01-29 1998-09-08 International Business Machines Corporation Multiple independent I/O functions on a PCMCIA card share a single interrupt request signal using an AND gate for triggering a delayed RESET signal
EP0992902A3 (en) 1998-10-06 2003-10-22 Texas Instruments Inc. Dual interrupt vector mapping

Also Published As

Publication number Publication date
WO2002027490A3 (en) 2004-04-08
TW565781B (en) 2003-12-11
JP3844465B2 (ja) 2006-11-15
KR20040007396A (ko) 2004-01-24
WO2002027490A2 (en) 2002-04-04
WO2002027490A9 (en) 2003-03-27
JP2004521408A (ja) 2004-07-15
CN1531685A (zh) 2004-09-22
CN1308827C (zh) 2007-04-04
US6760800B1 (en) 2004-07-06

Similar Documents

Publication Publication Date Title
US6754808B1 (en) Valid bit generation and tracking in a pipelined processor
US7804903B2 (en) Hardware-based CABAC decoder
US6484255B1 (en) Selective writing of data elements from packed data based upon a mask using predication
US5880979A (en) System for providing the absolute difference of unsigned values
US6789184B1 (en) Instruction address generation and tracking in a pipelined processor
US7360059B2 (en) Variable width alignment engine for aligning instructions based on transition between buffers
KR100509006B1 (ko) 이벤트 벡터 테이블 오버라이드
US7155570B1 (en) FIFO write/LIFO read trace buffer with software and hardware loop compression
US6976151B1 (en) Decoding an instruction portion and forwarding part of the portion to a first destination, re-encoding a different part of the portion and forwarding to a second destination
US8854382B2 (en) Multi-function encoder and decoder devices, and methods thereof
US7366876B1 (en) Efficient emulation instruction dispatch based on instruction width
US7430573B2 (en) Processor
US7069420B1 (en) Decode and dispatch of multi-issue and multiple width instructions
KR100688139B1 (ko) 명령어 디코드용 다중 소스
JPH09326707A (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: 20120727

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20130723

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140722

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150716

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20161123

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee