KR940009100B1 - 데이타 프로세서 제어 유닛과 지시사이클 및 오버헤드 최소화 방법 - Google Patents

데이타 프로세서 제어 유닛과 지시사이클 및 오버헤드 최소화 방법 Download PDF

Info

Publication number
KR940009100B1
KR940009100B1 KR1019870700645A KR870700645A KR940009100B1 KR 940009100 B1 KR940009100 B1 KR 940009100B1 KR 1019870700645 A KR1019870700645 A KR 1019870700645A KR 870700645 A KR870700645 A KR 870700645A KR 940009100 B1 KR940009100 B1 KR 940009100B1
Authority
KR
South Korea
Prior art keywords
instruction
interrupt
address
data processor
normal
Prior art date
Application number
KR1019870700645A
Other languages
English (en)
Other versions
KR880700969A (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 KR880700969A publication Critical patent/KR880700969A/ko
Application granted granted Critical
Publication of KR940009100B1 publication Critical patent/KR940009100B1/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling

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)

Abstract

내용 없음.

Description

[발명의 명칭]
데이타 프로세서 제어 유닛과 지시사이클 및 오버헤드 최소화 방법
[도면의 간단한 설명]
제1도는 공지된 데이타 프로세서에 있어서의 지시 프로세싱의 흐름 도표.
제2도는 다른 공지된 데이타 프로세서에 있어서의 지시 프로세싱의 흐름 도표.
제3도는 또다른 공지된 데이타 프로세서에 있어서의 지시 프로세싱의 흐름 도표.
제4도는 본 발명의 지시 프리페치 새 방향을 사용한 데이타 프로세서 블록 다이어그램.
제5도는 본 발명의 데이타 프로세서에 있어서의 지시흐름 표.
[발명의 상세한 설명]
[기술분야]
본 발명은 데이타 프로세싱 회로에 관한 것이며, 특히, 데이타 프로세서에 있어서의 인터럽트의 실행에 관한 것이다.
[배경기술]
데이타 프로세서는 프로그램 스탭의 시퀀스를 실행하는 동안에 주변기기에 의해 비동기적으로 인터럽트된다. 인터럽트 요구는 하나 또는 두 방법 또는 이의 변형 방법으로 처리된다. 프로세서에 의해 통상 사용되는 제1방법은 프로그램 카운터 치환으로 벡터 인터럽트하는 방법이다. 상기 방법에 있어서, 인터럽트 요구는 즉시 사용되지 않고 지시 실행 경계가 발생될때까지는 지연된다. 따라서, 현재의 지시는 인터럽트를 서비스하기 전에 완벽하게 실행되게 한다. 지시 경계에서, 프로그램 카운터의 내용은 리턴 어드레스를 포함하며, 상기 어드레스는, 만약 인터럽트가 발생되지 않으면, 통상 실행되는 다음의 지시를 지적하는 리턴 어드레스를 포함한다. 다음에 리턴 어드레스 및 다른 점보의 변화량은 스태크 메모리에 자동적으로 저장된다. 저장될 수 있는 다른 정보는 상태 코드 레지스터, 데이타 레지스터 및 어드레스 레지스터를 포함한다. 인터럽트 서비스 루틴의 개시 어드레스는 앞선 프로그램 카운터로 대체되어 인터럽트 서비스 루틴에 대한 흐름에 영향을 준다. 프로그램 카운터에 대한 치환값은 다양하게 발생될 수 있다. 그러나, 프로세서에 대한 공동 목표는 인터럽트 응답신호를 발생될 수 있다. 그러나, 프로세서에 대한 공동 목표는 인터럽트 응답신호를 발생하는 것이다. 인터럽트 응답신호에 응답하여, 인터럽핑 주변은 인터럽트 벡터 번호를 제공하며, 상기 번호는 프로세서가 메모리 테이블 내에서 인터럽트 서비스 루티의 개시 어드레스를 룩업되게 지시한다. 인터럽트(RTI) 지시로부터의 리턴 실행은 인터럽트 서비스 루틴을 완성한다. RTI 지시는 프로세서의 앞선 상태의 재기억에 영향을 주며 정상 프로그램 실행이 계속되기전에 리턴 어드레스로 프로그램 카운터를 재충만 시킨다.
인터럽트 실행의 상술한 방법은 인터럽트를 처리하는데 요구되는 추가 오버헤드 사이클의 존재 때문에 실행 속도가 느리다. 인터럽트를 서비스하는데 있어서의 불확실한 지연량은 실행을 완성하기 위해 현재의 지시를 향상 되기 한다. 초기 인터럽트 어드레스의 결정은 인터럽트 벡터 정보를 철회시키는데 요구되는 시간 때문에 역시 영향을 주지 못한다. 또, 개시 어드레스가 프로그램 카운터에 적재된 후에, 실행이 개시될 수 있기 전에, 인터럽트 서비스 루틴을 페치하고 디코드하기 위한 시간이 요구된다. 프로그램 카운터 치환에 의해 야기되는 흐름동작의 변화 동안에 프로세서가 아이들로 존재하게 되어 프로세서 효율은 감소된다. 최종적으로, 프로세서의 선행 상태조건을 재기억시키는데 요구되는 시간에 의해 지시를 실행할때 지연이 이행되어 정상 지시스트림에 대한 흐름의 변화에 영향을 준다.
다른 방법은 인터럽트가 발생될때, 기억되는 레지스터의 수의 감소에 의한 인터럽트 프로세싱의 상기 방법에 관련된 오버헤드를 최소화시킨다. 다른 방법은 인터럽트 서비스 루틴의 개시 어드레스를 얻는데 요구되는 스텝을 단순화시킨다. 인터럽트 서비스 루틴의 어드레스를 계산하기 위한 스킴을 사용하는 대신에, 프로그램 메모리내의 고정위치에 개시 어드레스를 기억시키거나 또는 프로세서를 고정위치로 즉시 점프시킨다. 비록, 상기 기술은 인터럽트 오버헤드를 최소화시키지만, 여전히 비효율적이다. 현재 프로세서에 있어서의 지시 페치, 디코드 및 실행 메카니즘은 가끔 파이프 라인으로 되어, 지시 프리페치 메카니즘이 지시 실행과 오버랩될 수 있어서 지시를 페치시키며 디코드 시킨다. 그 결과, 인터럽트 요구가 수신될때, 지시 파이프 라인은 통상 충만해진다. 따라서, 파이프 라인에 있어서의 지시는 인터럽트를 실행할때 제거되어야 하며, 인터럽트 서비스 루틴과 관련된 다른 어드레스에서의 지시 페치, 디코드 및 실행을 이행되게 한다. 상기 흐름동작의 변화는 파이프 라인 데이타 프로세서에 있어서의 실행 사이클을 실패하게 한다.
실행 인터럽트의 제2공동방법은 지시 잼밍(jamming)으로 공지되어 있다. 상기 방법에 있어서, 인터럽트 요구는 즉시 사용되지는 않으나 지시 실행 경계가 될때까지 지연되어 있다. 현재 지시를 완성할때, 프로세서는 주변기기에 인터럽트 응답신호를 제공한다.
응답에 있어서, 인터럽트를 요구하는 주변기기는 지시 레지스터에 잼밍되는 서브루틴 지시에 대해 점프와 같은 신호지시를 제공한다. 서브루틴 지시에 대한 점프의 실행은 프로그램 카운터에 인터럽트 서비스 루틴의 개시 어드레스를 적재한다. 인터럽트 서비스 루틴을 완성할때, RTI 지시는 리턴 어드레스를 프로그램 카운터내에 다시 적재되게 한다. 만약, 잼지시가 서브루틴 지시로 점프되지 않으며, 잼지시는 인터럽트(RTI)로 부터의 함축된 리턴으로서 단일 지시 서비스 루틴으로 실행되게 한다. 지시 잼밍 동안에, 프로그램 카운터의 오래된 내용은 일시적으로 일정하게 유지된다. 이것은 정상적인 프로그램을 리턴 어드레스 없이 실행을 계속되게 한다.
지시 잼밍 기술에 있어서, 프로세서는 인터럽트 응답신호가 잼 인터럽트 서비스 루틴 지시를 페치하기 전에 현재의 지시가 실행을 완성할때까지 대기한다. 프로세서는 정상 프로그램의 다음 지시를 페치하기 전인 잼 지시 인터럽트 서비스 루틴의 실행 종단까지 역시 대기한다. 흐름 동작의 상기 변환은 오버헤드 사이클을 소비하게 한다. 또, 지시 잼밍 인터럽트 시스템에 있어서, 인터러팅 주변 기기는 특정 프로세서에 대해 설계되어서 정확한 전기적 타이밍을 가진 유효잼 인터럽트 지시를 제공한다. 이것은 다양한 주변기기를 가지는 시한용 프로세서의 경재력을 제한되게 한다.
[발명의 간단한 설명]
따라서, 본 발명의 목적은 지시 프리페치 재방향성을 사용한 개선된 인터럽트 서비스를 가진 데이타 프로세서를 제공하는 것이다.
본 발명의 또다른 목적은 요청장치를 서비스하기 위해 데이타 프로세서 프로그램의 실행을 인터러핑시키는 개선된 수단을 제공하는 것이다.
본 발명의 또다른 목적은 데이타 프로세서에 의해 실행되는 주 프로그램에 대해 인터러핑시키며 복귀시키는 동안에 지시를 페칭하며 디코딩할때 데이타 프로세서에 없어지는 오버헤드 실행 사이클을 최소화시키는 개선된 수단을 제공하는 것이다.
본 발명의 상술한 목적 및 다른 목적을 실행하는데 있어서, 지시를 데이타 프로세서에 제공하기 위한 제어 유닛의 한 형태가 제공된다. 제어 유닛은 주변 기기로부터의 인터럽트 요구가 없을 때 프리페치된 정상 지시를 선택적으로 제공한다. 예정된 프리페치 인터럽트 지시수는 인터럽트 요구에 응답하여 제공된다. 프리페치된 지시는 데이타 프로세서에 제공되기전에 디코드된다. 본 발명에 사용된 방법은 데이타 프로세서에 의해 실행되는 지시가 없는 오버헤드 실행 사이클을 제거한다. 오버헤드는 인터러핑 지시흐름과 관련되어 인터럽트 요구에 응답하여 인터럽트 서비스 루틴을 실행한다. 상기 요구는, 제어유닛으로부터 데이타 프로세서로의 인터럽트 정상 지시흐름에 대한 인터럽트 제어회로에 의해 수신된다. 정상 지시 프리페치는 최초한 한 인터럽트 지시 프리페치를 제공하기 위해 다른 방향으로 향한다. 인터럽트 지시 프리페치 또는 프리 페치는 프리페치된 정상 지시가 실행을 완성하기 전 및 최근 프리페치 정상지시가 완벽하게는 프리페치되지 않는 다중 워드지시인가를 결정하기 위해 디코딩하기 전에 개시된다. 인터럽트 지시 프리페치는 계속하여 정상 지시 프리페치를 제공하기 위해 새로운 방향으로 향한다. 정상 지시 프리페치는 프리페치된 인터럽트 지시 또는 복수의 지시가 실행을 완성하기 전 및 프리페치된 인터럽트 지시 또는 복수의 지시가 최근 프리페치된 인터럽트 지시가 완벽하게는 프리페치되지 않는 다중워드 지시인가를 결정하기 위해 디코드하기 전에 개시된다.
이하, 첨부된 도면으로 본 발명의 목적 및 다른 목적과 장점을 더욱 상세하게 설명하기로 한다.
[발명의 상세한 설명]
제1도는 통상 사용되는 데이타 프로세서에 있어서의 지시프리페칭 없이 공지된 데이타 프로세서의 지시 흐름 다이어그램을 도시한 것이다. 여기서 18개의 지시 사이클이 도시되어 있으며, 인터럽트 지시 i는 지시 n-1, n, n+1 및 n+2가 실행하는 동안에 실행된다. 인터럽트 요구는, 정상 프로그램 지시를 실행하는 동안에 어떤 때라도 주변기기로 부터 수신된다. 단지 예로 나타내기 위해, 지시 n(지시 사이클 6)의 실행 사이클 동안에 어떤 포인트에서 인터럽트 요구가 수신된다고 가정한다. 제1도의 데이타 프로세서 시스템은 지시 실행 경계의 개시부가 될때까지 인터럽트 요구가 지체되도록 하여 현재 지시 실행이 완성되게 한다. 지시 사이클 경계에서의 서비싱 인터럽트는 프로세서의 상태가 각각의 지시종단에서 규정되게 한다. 공지된 기계상태도 역시 인터럽트가 서비스되기 전에 저장되는 정보를 단순하게 한다.
그러나, 다수의 지연 사이클은 인터럽트 요구가 실제로 받아 들어지기 전에 존재해야 한다. 각각의 지시와 관련되어 페치, 디코드 및 실행 동작인 3개의 명백한 동작과 관련된다. 도시된 바와같이, 지시가 실행되는 각각의 사이클에 대해, 어떠한 지시 실행도 나타나지 않는 동안에 “X”로 각각 표시된 두 사이클이 존재한다. 페칭으로부터의 인터럽트 실행에서 지연이 발생되어 인터럽트 프로그램이 실행되게 한다(제1도에는 도시되어 있지 않는). “X”로 표시된 각각의 유지 실행 사이클 동안에, 다음 지시의 페치가 발생하거나 또는 다음 지시의 디코드가 이행되는가를 결정한다. 인터럽트 지시(i) 및 인터럽트(RTI)로부터의 복귀는 다른 정상 프로그램 지시와 같은 동일한 방법으로 기계에 의해 처리된다. 인터럽트 요구와 관련된 지연에 추가되어, 제1도의 데이타 프로세서는 모든 실행 사이클과 관련된 오버헤드의 두 사이클을 가지는데 매우 비효율적이다.
제2도는 지시 잼빙 인터럽으로 공지된 다른 인터럽트 기술을 사용하는 지시 프리페칭 없는 다를 공지된 데이타 프로세서의 지시 흐름선도이다. 도시된 바와같이, 15개의 지시 사이클만을 가진 지시 잼밍이 제1도에서 개의 지시 사이클로 이행되는 인터럽트 지시 및 동일한 프로그램 지시수를 이행하는데 요구된다. 단지 예로서 나타내기 위해, 지시 n의 실행 사이클(제6지시 사이클) 동안의 어느 시간에 비동기 인터럽트 요구가 수신된다고 가정한다. 또, 인터럽트 요구가 현재의 지시 실행 종단이 될때까지 지체된다. 지시 잼밍을 사용한 프로세서에 있어서, 인터럽핑 주변기기는 유효지시를 프로세서의 지시 레지스터에 배치시켜서 인터럽트 지시를 프로세서내에서 잼되게 한다. 프로세서는 주변기기에 인터러핑 상태코드로 응답한다. 따라서 인터러핑 주변기기는 특정 프로세서가 되어야 한다. 비록, 3번의 지시 사이클 동안에 단지 하나의 지시만 실행되지만, 인터럽트 지시가 지시 레지스터 내에서 잼이 될때 인터럽트 지시로부터 복귀가 실행되지 않는다. 따라서, 3개의 작은 사이클이 요구되어 제1도의 프로세서에 비교하여 동일수의 지시 실행이 되게 한다. 그러나, 오버헤드 사이클이 상기 기술에 존재하는데, 왜냐하면, 지시 사이클이 경계가 될때까지 인터럽트 지시가 페치되지 않고 디코드되지 않고, 인터럽트 서비스 루틴이 완성될때까지 정상 프로그램 지시는 래체되지 않고 디코드되지 않는다.
제3도는 지시 프리페칭으로 지시 파이프 라인 아키텍쳐를 가진 공지된 데이타 프로세서의 또다른 타입의 흐름선도이다. 제3도의 데이타 프로세서에 있어서, 지시는 프리페치되며 상기 지시는 지시가 디코드되는데 필요한 시간에서 사용될 수 있다. 프리페칭 기술은 지시의 페칭 및 디코딩과 관련된 지연을 제시시킨다. 이것은 지시가 연속적으로 실행되는 것으로 가정된다. 단지 12개의 지시 사이클이 제1도 및 2도의 각 프로세서에 의해 실행되는 동일수의 지시를 실행하는데 요구된다. 예로서 나타내기 위해, 주변기기로 부터의 인터럽트 요구가 지시 n의 실행 사이클(제4지시 사이클) 동안의 시간에서의 동일 포인트에서 발생되는 것으로 가정한다. 다시, 인터럽트 지시는 즉시 페치되지 않고 현재의 지시가 완성된 후에 페치된다. 프리페칭 능력을 가짐으로서, 다른 지시가 디코드되고 페치되는 동안에 지시가 실행될 수 있다.
그러나, 제1인터럽트 지시가 페치되는 디코드될때의 사이클에 있어서, 어떠한 지시도 실행되지 않는다. 따라서, 전체 4개의 사이클이 인터럽트 지시 실행 부근에 존재하며, 이때 어떠한 지시 실행도 발생되지 않는다. 지시 프리페칭은 흐름동작이 변화되는 동안에 오버헤드 사이클을 효과적으로 제거하지 못한다. 그럼에도 불구하고 지시 프리페칭은 제1도 및 2도의 프로세서에 의해 요구되는 동일수의 지시를 실행하는데 요구되는 지시 사이클의 수를 감소시킨다.
제4도에는 본 발명에 부압되는 데이타 프로세서에 대한 프로그램 제어유닛(10)이 도시되어 있다. 프로그램 카운터(14)는 프로그램 어드레스 버스(16)를 거쳐 프로그램 메모리(15)의 입력에 결합된 제1단자를 가진다. 프로그램 메모리(15)는 프로그램 데이타 버스(19)를 거쳐 프리페치 레지스터(18)의 제1입력에 결합된 출력을 가진다. 프리페치 레지스터(18)의 제1출력은 지시 디코더(22)의 제1입력에 접속되어 있다. 지시 디코더(22)의 출력은 지시 레지스터(24)의 제1입력에 접속되어 있다. 스태크 메모리 레지스터(26)는 프로그램 카운터(14)의 제1입력/출력 단자에 접속된 입력/출력 단자를 가진다. 프로그램 카운터(14)의 제2입력은 증분회로(28) 및 프로그램 어드레스 버스(16)에 접속되어 있다. 증분회로(28)의 출력은 프리페치 카운터(30)의 제1입력에 접속되어 있다. 프리페치 카운터(30)의 출력은 프로그램 어드레스 버스(16)에 접속되어 있다. 인터럽트 요구신호는 인터럽트 트리페치 제어회로(34)의 입력에 결합되어 있으며, 인터럽트 어드레스 발생기 회로(36)의 제1입력에 결합되어 있다. 인터럽트 프리페치 제어회로(34)의 출력은 인터럽트 페치 신호를 제공하며, 인터럽트 어드레스 발생회로(36)의 제2입력에 접속되어 있으며, 프리페치 카운터(30)의 제2입력에 접속되어 있으며 프리페치 레지스터(18)의 제2입력에 접속되어 있다.
동작에 있어서, 인터럽트 요구 없이 동작하는 제어 유닛(10)를 먼저 고려한다. 지시 레지스터(24)는 데이타 프로세서에 의해 실행되는 다음의 지시인 데이타 프로세서에 의한 지시 대기 실행을 기억한다. 프로그램 카운터(14)는 프로그램 어드레스 버스(16)를 거쳐 지시 레지스터(24)에서의 지시에 연속되는 지시에 대한 지시 어드레스를 프로그램 메모리(15)에 기억되며 결합되게 동작한다. 프로그램 메모리(15)는 프로그램 어드레스에 관련된 데이타 프로세서에 의해 실행되는 프로그램 지시를 제공하는 메모리이다. 스태크(26)는 기억 레지스터이며, 상기 레지스터는 프로그램 카운터(14)의 어드레스 내용을 제공한다. 프리페치 카운터(30)는 프로그램 카운터(14)앞의 한 지시 어드레스를 지적하는 것 이외에는 프로그램 카운터(14)와 유사하게 동작하며 프로그램 어드레스 버스(16)상의 프로그램 메모리(15)에 지시 어드레스를 제공한다. 프리페치 카운터(30)가 다음의 지시 페치 어드레스를 어드레스 버스(16)를 거친 프로그램 메모리(15)에 결합시킬 때, 프리페치 카운터(30)는 다음의 지시 페치 어드레스를 어드레스 버스(16)를 거친 프로그램 카운터(14) 및 증분기(28)에 결합시킨다. 증분기(28)는 페치된 지시 어드레스를 1만큼 증가시키며 증분된 지시 어드레스를 갱신되는 프리페치 카운터(30)에 결합시킨다. 상기 방법으로, 프리페치 카운터(14)는 데이타 프로세서에의해 실행되는 지시에 앞서는 두 지시 어드레스를 항상 지적하도록 동작한다. 프리페치 카운터(30)는 지시가 순차적으로 처리될때의 지시 페치 어드레스의 정상 소오스이다.프로그램 카운터(14)는 흐름동작의 변화가 발생할때 지시 페치의 변형 소오스이다. 따라서, 지시가 지시 레지스터(24)에 의해 기억되기 전에, 프로그램 메모리(15)로부터의 지시는 프리페치 레지스터(18) 및 지시 디코더(22)에 결합된다. 프리페치 레지스터(18) 및 지시 디코더(22)는 디코드된 지시를 지시 레지스터(24)에 선택적으로 기억시키며 결합시킨다. 상기 방법으로, 제어유닛(10)은 데이타 프로세서에 의해 실행되기 위한 예정된 프로그램의 지시를 처리하며 제공한다.
데이타 프로세서에 결합된 주변기기는 데이타 프로세서로 부터의 요구 서비스에 대한 데이타 프로세서 동작을 인터럽트하는 것이 요망된다. 주변기기는 인터럽트 프리페치 제어회로(34) 및 인터럽트 어드레스 발생기 회로(36)에 결합된 인터럽트 프리페치 제어신호를 제공한다. 인터럽트 프리페치 제어회로(34)는 주변기기의 인터럽트 요구를 인식하며 프리페치 카운터(30)에 의해 이행되는 지시 페칭의 재방향에 영향을 준다. 인터럽트 프리페치 제어회로는(34)는 인터럽트 페치신호를 제공함으로 상기 동작을 이행하며, 상기 신호는 프리페칭 기구를 페치하며 제어하는 예정된 수의 지시워드에 대한 페치 재방향에 영향을 준다. 인터럽트 페치신호는 인터럽트 어드레스 발생기(36)에 결합되며, 프리페치 카운터(30) 및 프리페치 레지스터(18)에 결합되어 있다. 인터럽트 요구신호 및 인터럽트 페치신호에 응답하여, 인터럽트 어드레스 발생기(36)는 인터럽트 어드레스 지시를 발생하며, 여기서, 인터럽트 지시 또는 복수의 지시는 프로그램 메모리(15)에 잔존한다. 인터럽트 요구신호는 어드레스 발생기(36)를 인터럽트하기 위해 표시되며, 어드레스가 제공되는 발생기중의 한 인터럽트 루틴이 실질적으로 요구된다. 인터럽트 페치신호는, 인터럽트 어드레스 발생기(36)가 프로그램 어드레스 버스(16)에 인터럽트 어드레스를 제공할때, 실질적으로 제어한다. 인터럽트 페치신호는 인터럽트 어드레스 발생기(36)가 활성활될때 지시 어드레스를 프로그램 어드레스 버스(16)에 제공함으로 프리페치 카운터(30)를 동작 되지 않게 한다.
예정된 수의 인터럽트 지시 어드레스는 프로그램 어드레스 버스(16) 및 프로그램 메모리(15)를 거쳐 지시 흐름내에서 잼이 될 수 있다. 비록, 인터럽트 어드레스가 인터럽트 어드레스 발생기(36)에 의해 실질적으로 제공되어도 인터럽트 지시를 페치하고 디코드하는데 요구되는 시간에 의해 인터럽트 루틴 실행이 시작되기 전에, 데이타 프로세서에 의해 실행될 수 있다. 인터럽트 프리페치 제어회로(34) 및 인터럽트 어드레스 발생기 회로(36)는 지시 스트림에 어떤 타입의 인터럽트가 서비스하는 것을 요구하는 예정된 수의 지시 어드레스를 선택적으로 잼 할 수 있다. 인터럽트 어드레스가 지시 스트림내에서 잼되어 지시 레지스터(24)에 결합되어 있으므로, 프로그램 카운터(14)의 내용은 인터럽트 신호에 응답하여 지시 레지스터(24)에 의해 제공되는 홀드신호에 의해 일정하게 유지된다. 프로그램 카운터(14)는 인터럽트 요구신호의 수신후에 즉시 일정하게 되지는 않지만 계속해서 증가하며 인터럽트 루틴의 실행전에 마지막 지시의 종단이 될때까지 지시에 의해 처리된다.
인터럽트 페치 신호도 역시 프리페치 레지스터(18)에서의 지시가 인터럽트 지시를 나타내도록 동작한다. 인터럽트 지시 및 인터럽트 신호 표시의 내용은 지시 디코더(22)에 결합되며 지시 레지스터(24)에 결합된다. 인터럽트 지시를 수신할때, 지시 레지스터(24)는 프로그램 카운터(14)에 홀드신호를 제공한다. 인터럽트 어드레스 또는 어드레스가 어드레스 발생기(36)에 제공되는 순간, 인터럽트 페치신호는 어드레스 발생기(36)를 동작되지 않게 하며 프리페치 카운터(30)를 동작되게 한다. 일단, 인터럽트 루틴이 실행을 끝내면, 프리페치 카운터(30)는 데이타 프로세서에 의해 계속 처리되는 정상 프로그램에서의 다음 지시를 향하도록 한다. 프리페치 카운터(30)는 프로그램 어드레스 버스(16)로부터의 정상 프로그램 지시 어드레스를 제공하도록 하며, 프로그램 카운터(14)는 기억되는 값을 더이상 가지지 않는다.
제4도의 제어 유닛(10)을 형성하는 각각의 회로는 공지된 회로로부터 쉽게 사용될 수 있다. 인터럽트 프리페치 제어회로(34)는 다른 방법으로 사용될 수 있다. 제어회로(34)는 하나 또는 둘의 고정된 수의 페치 사이클에 대해 지시 페치흐름을 일시적으로 다른 방향으로 향하도록 설계될 수 있다. 제어회로(34)는 레지스터를 사용하여 이용될 수 있어서 각각의 인터럽트에 대해 예정된 수의 페치가 프로그램될 수 있다. 또, 카운터는 제어회로(34)에 사용되어 예정된 수의 인터럽트 지시페치를 카운트한다. 많은 다른 방법도 제공되어서 제어회로(34) 및 어드레스 발생시(36)에 요구되는 동작을 제공한다.
제5도에는 제4도의 제어 유닛(10)을 사용한 지시 사이클 실행의 흐름선도가 도시되어 있다. 쉽게 알 수 있는 바와같이, 복수의 연속 지시가 지시의 실행 사이클(지시 사이클 4) 동안에, 어떤 포인트에서 발생되는 인터럽트 요구 사이에서 실행될 수 있다. 상술한 회로와는 다르게, 본 발명은 오버헤드와 같은 어떤 사이클의 손실없이 정상 프로그램 지시 및 비동기 인터럽트 요구를 실행하도록 동작한다. 인터럽트 요구가 제어 유닛(10)에 의해 인식될때, 제어 유닛(10)은 지시 경계의 종단이 될때까지 대기하지 않고 지시 페칭을 다른 방향으로 향하게 한다. 유사하게, 인터럽트 서비스 루틴의 페치를 완성하면, 지시 페치 스트림은 즉시 다른 방향으로 향하며 정상 프로그램 지시는 인터럽트 서비스 루틴이 완성되기 전에 페치되고 디코드된다.
지시 어드레스 페치가 지시 경계상에서는 영향을 주지 않으므로, 개시 인터럽트 서비스 전에 현재 지시 실행이 완성될때까지 대기와 관련된 오버헤드는 최소화된다.
지시 프리페치가 실행지시의 완성을 기다리지 않고 이행되므로 오버헤드는 본 발명에 의해 제거될 수 있다. 인터럽트 지시가 인터럽트 요구 후에, 파이프 라인 지시 스트립내에서 잼상태로 되므로, 회로 동작에 대해 어떤 구속이 필요하다. 상기 구속은 본 발명을 사용하기 위해 선택된 특정 회로에 상당히 의존하는 것을 쉽게 할 수 있으며 따라서 상기 구속은 변할 수 있다.
제1번째로, 현재의 실행지시가 실행되지 않거나, 손실된 채로 지시부분없이 시행을 완성시키기 위해, 모든 지시는 프로그램 메모리(15)와 데이타 프로세서 사이의 지시 파이프 라인내에 배치된 레지스터수보다 크지 않는 워드 사이즈를 가져야한다. 이것은 실행을 개시하는 어떤 지시가 실행을 완성하게 하는데, 왜냐하면 모든 지시는, 지시가 이미 만들어졌으므로, 페치하기 때문이다. 도시된 제어 유닛(10)의 형태에 있어서, 프로그램 메모리(15)와 데이타 프로세서 사이의 레지스터 수는 레지스터(18) 및 (24)에 의해 두개로 나타난다. 따라서, 제어 유닛(10)에 의해 처리되는 지시를 크기에 있어서 두 워드보다 큰 것은 없다. 그러나, 상기 지시 사이즈 한계는 마이크로 프로세서(MPU), 감소된 지시 세트 컴퓨터(RISC) 또는 단일 워드 지시를 사용하는 디지탈 신호 프로세서(DCP)와 같은 데이타 프로세서에 있어서 중요하지는 않다. 그보다 큰 지시워드 사이즈가 요구되는 장치에 있어서, 추가되는 기억 레지스터가 지시 파이프 라인에 제공될 수 있다.
제2번째로, 통상 처리되는 모든 지시는 코드 부분 및 정보 부분을 가진다. 상기 OP코드 부분은 지시의 제1워드에 항상 나타난다. 정보 부분은 제1지시워드 및 가능하다면 다음의 지시 워드내에 포함된다. 지시 레지스터(24)는 지시 디코더(22)로부터의디코드된 지시 길이 및 프리페치 레지스터(18)로부터의 인터럽트 지시에 존재 표식을 수신한다. 만약 상기 지시가 지시 레지스터(24)내에 완전하게는 포함되어 있지 않으며, 프리페치 레지스터(18)로부터 다음의 지시워드를 요구하면, 프리페치 레지스터(18)로부터의 인터럽트 신호는 다음의 지시워드를 포함한다. 만약, 인터럽트 신호가 정상 지시 페치를 나타내면, 모든 지시 워드가 페치 하므로 새로운 지시가 실행을 개시하게 한다. 만약, 인터럽트 신호가 인터럽트 지시 페치를 나타내면, 새로운 지시는 실패되어야 하며 제1지시워드는 인터럽트 지시 페치가 완성된 후에 리페치된다. 상기 실시예에 있어서, 실패된 지시워드를 리페치하기 위해, 프로그램 카운터(14)는 프리페치 카운터(30) 대신에 제1정상 지시 페치를 사용한다. 실패된 지시는 하나의 실패된 실행 사이클이 되게 하나 성능에 있어서는 무관하다. 왜냐하면 대부분의 지시는 길이에 있어서 단지 1워드이기 때문이다. 만약 모든 지시가 1워드의 길이이면, 지시는 결코 실패하지 않는다.
제3번째로, 정상 지시 스트림에서 발생되는 어떤 지시는 지시흐름의 방향을 변경시키는 흐름지시의 변경이다. 예로서, 흐름지시의 변경은 프로그램 메모리(15)에 있어서 예정된 서브루틴으로 프로그램 실행이 점프되게 한다. 흐름지시의 변화는 데이타 프로세서가 프리페치 레지스터(18)의 내용을 폐기시키고 점프 어드레스를 프로그램 어드레스 버스(16)를 거쳐 프로그램 카운터(14)에 결합시킨다. 지시가 흐름 지시의 변화인가에는 무관하게 정상지시는 지시 디코더(22)에 의한 지시의 OP코드 부분으로부터 쉽게 정해진다. 흐름 지시의 변화가 지시 레지스터(24)내에 존재할때, 인터럽트 신호가 인터럽트 레지스터(24)에 의해 수신된다면, 프리페치 레지스터(18)의 내용은 정상 지시 프로세싱에 대해 기술된 바와같이 폐기되지 않을 수 있다. 반면에 프리페치 레지스터(18)에 존재하는 인터럽트 지시는 폐기될 수 있으며 인터럽트 요구는 무시될 수 있다.
마지막으로, 서브루틴에 대한 점프와 같은 흐름지시의 변화는 인터럽트 지시 스트림에서 발생될 수 있다. 적절한 형태에 있어서, 인터럽트 페치의 수는 통상 하나 또는 둘이다. 이것은 한 지시가 인터럽핑 주변기기를 서비스하기에 충분한 곳에서 신속한 인터럽트 서비스를 허용한다. 또 긴 언터럽트 서비스 루틴에 대해, 서브루틴 지시에 대한 점프는 지시 스트림에서의 제1지시로 배치된다. 이것은 정상 지시 스트림으로 실행되는 긴 인터럽트 서비스 루틴에 대한 흐름의 변화를 야기시킨다. 지시 레지스터(24)에 존재하는 지시 코드가 흐름지시의 변화 및 인터럽트 지시이면 프리페치 레지스터(18)의 내용은, 만약 프리페치 레지스터가 정상 지시를 포함한다면, 폐기되지 않을 수 있다. 상술한 바와같이, 이것은 인터럽트 요구가 폐기되지 않게 한다.
오버헤드를 최소로 되게 하는 프로세서에 대해 제어 유닛이 제공되는 것은 명확하다. 제어 프로세서는 각각의 지시 사이클 동안에 관련 프로세서의 동작을 최대로 이용되게 한다. MPU, PISC 및 DSP데이타 프로세서에 의해 통상 사용되는 한 워드 또는 두 워드 지시 세트로 사용되는 매우 바른 인터럽트 서비스는 효과적으로 사용될 수 있다.
비록, 상기 실시예는 어떤 가정된 변수를 사용하여 기술되어 있지만, 회로 또는 변수에 대해서는 본 발명의 분야에 숙련된 사람은 본 발명의 범주 및 정신에 벗어나지 않고, 변경시킬 수 있다.

Claims (6)

  1. 지시 실행을 하기 위한 데이타 프로세서 및 상기 지시를 데이타 프로세서에 제공하기 위한 제어 유닛을 가지며, 상기 제어 유닛은 주변기기로부터 인터럽트 요구가 없을 때는 프리페치된 정상지시를 선택적으로 제공하며, 인터럽트 요구에 응답할때는 프리페치된 인터럽트 지시를 제공하는 데이타 프로세싱 시스템에서, 인터럽트 요구에 응답하여 인터럽트 서비스 루틴을 실행하기 위해, 인터럽팅 지시흐름에 관련된 데이타 프로세서에 의해 지시가 실행되지 않는 지시 사이클을 최소화하기 위한 방법에 있어서, 제어 유닛에서 데이타 프로세서로의 정상 지시 흐름을 인터럽트하기 위해 주변 기기로부터의 요구 수령을 검출하는 단계와, 정상 인터럽트 흐름을 인터럽트하기 위해 상기 요구에 응답하여 최소한 한 지시 사이클의 지속기간동안 제어신호를 공급하는 단계와, 최소한 한 인터럽트 지시 프리페치를 제공하기 위해 상기 제어 신호에 응답하여 최소한 한 지시 사이클동안 정상 지시 프리페치를 전향시키는 단계와, 상기 한 인터럽트 지시 프리페치는 상기 프리페치된 정상지시가 실행을 완료하기전에 시작되며, 정상지시 프리페치를 연속 제공하기 위하여 상기 제어 신호의 최소한 한 지시 사이클 지속시간 직후에 최소한 한 인터럽트 지시 프리페치를 전향시키는 단계를 구비하며, 정상 지시 프리페치는, 최소한 한 프리페치된 인터럽트 지시가 실행을 완료하기 전에 시작되는 데이타 프로세서에 의해 지시가 실행되지 않는 지시사이클 최소화 방법.
  2. 제1항에 있어서, 가장 최근에 프리페치된 정상 지시가 완전하게 프리페치되지 않은 다중워드 지시인가를 디코딩하기 전에 상기 최소한 한 인터럽트 지시 프리페치를 시작하는 단계를 또한 구비하는 방법.
  3. 제1항에 있어서, 가장 최근에 프리페치된 인터럽트 지시가 완전하게 프리페치되지 않은 다중 워드 지시인가를 디코딩하기 전에 상기 정상 지시 프리페치를 시작하는 단계를 또한 구비하는 방법.
  4. 지시 실행을 하기 위한 데이타 프로세서 및 상기 지시를 데이타 프로세서에 제공하기 위한 제어 유닛을 가지며, 상기 제어 유닛은 프로그램 어드레스 버스를 거쳐 실행될 지시를 어드레스하는 지시 어드레스를 제공하며, 지시 어드레스에 응답하여 프로그램 데이타 버스에 지시를 제공하며, 상기 지시를 디코딩하는 데이타 프로세싱 시스템에서, 데이타 프로세서로부터 서비스를 인터럽트 하기 위해 주변기기로부터의 요구에응답하여 데이타 프로세서에 대한 인터럽팅 지시흐름과 관련된 오버헤드를 최소화하기 위한 방법에 있어서, 제어 유닛에서 데이타 프로세서로의 정상 지시흐름을 인터럽트하기 위해 주변 기기로부터의 요구 수령을 검출하는 단계와, 정상 지시 흐름을 인터럽트하기 위해 상기 요구에 응답하여 하나이상의 지시 사이클동안 소정 시간 주기중에 제어 신호를 공급하는 단계와, 상기 제어 신호에 응답하여 현재 실행중인 지시를 완료하기 전에 최소한 한 예정된 인터럽트 지시 어드레스를 프로그램 어드레스 버스를 제공함에 의해 정상 지시의 프리페칭 흐름을 전향시키는 단계와, 최소한 한 인터럽트 지시 어드레스에 응답하여 최소한 한 인터럽트 지시를 프리페칭하여 디코딩하는 단계와, 제어 신호가 공급되는 소정 시간 주기 직후와 최소한 한 인터럽트 지시의 디코딩 및 실행 완료 직전에 정상 지시 어드레스를 프로그램 어드레스 버스에 연속 제공함으로써 인터럽트 지시의 프리페칭 흐름을 전향시키는 단계를 구비하여, 데이타 프로세서에 의해 지시가 실행되지 않는 지시 사이클을 최소화 하는 데이타 프로세서에 대한 인터럽팅 지시 흐름에 관련된 오버헤드 최소 방법.
  5. 인터럽트 동안 오버헤드로서 손실된 지시 실행 사이클을 최소화하면서 최소한 하나 이상 프리페치된 인터럽트 지시를 제공하기 위해 인터럽트 요구신호에 의해 인터럽트 될 수 있는 프리페치된 정상지시를 데이타 프로세서의 실행으로 제공하기 위한 데이타 프로세서 유닛에 있어서, 정상 지시 어드레스 및 인터럽트 지시 어드레스를 전달하기 위한 프로그램 어드레스 버스와, 프로그램 어드레스 버스와, 프로그램 어드레스 버스에 결합하여 정상 지시 어드레스를 선택적으로 수신하고, 기억하고, 제공하는 프로그램 어드레스 기억 수단과, 프로그램 어드레스 버스에 결합되어 정상 지시 어드레스를 선택적으로 기억하고 제공하는 프리페치 어드레스 기억 수단과, 프로그램 어드레스 버스에 결합된 입력과 프리페치 어드레스 기억 수단에 결합된 출력을 가져 프리페치 어드레스 기억 수단에 의해 기억되는 지시 어드레스를 연속 지시 어드레스를 선택적으로 증분시키는 증분기 수단과, 인터럽트 요구 신호를 검출하는 것에 응답하여, 상기 정상 지시가 실행을 완성하기 전 및 가장 최근에 프리페치된 정상 지시가 완전하게 프리페치되지 않은 다중 워드 지시 인가를 디코딩하기 전에 인터럽트 페치 제어 신호를 공급하는 인터럽트 제어 수단과, 상기 인터럽트 페치 제어 신호는 소정의 인터럽트 어드레스 또는 복수의 인터럽트 어드레스가 프로그램 어드레스 버스에 제공될때 제어되며, 프로그램 어드레스 버스 및 인터럽트 제어 수단에 결합되고 인터럽트 요구 신호 및 인터럽트 페이신호에 응답하여 프로그램 어드레스 버스에 소정의 인터럽트 어드레스 또는 복수의 인터럽트 어드레스를 선택적으로 제공하는 인터럽트 어드레스 수단과, 프로그램 어드레스 버스에 결합된 입력과, 정상 지시 어드레스 및 인터럽트 지시 어드레스 각각에 응답하여 프리페치된 정상 지시 및 프리페치된 인터럽트 지시를 제공하기 위한 출력을 갖는 프로그램 메모리 수단과, 프로그램 메모리 수단 및 인터럽트 제어 수단에 결합된 입력을 가져 선택적으로 지시를 수신, 기억 및 제공하며, 인터럽트 지시가 기억되어 있는 것을 표시하는 인터럽트 승인 신호를 제공하는 제1지시 기억 수단과, 제1지시 기억 수단에 결합되어 인터럽트 승인 신호를 수신하는 제1입력과, 제1지시 기억 수단에 결합되어 선택적으로 지시를 수신하는 제2입력과, 디코드된 지시를 선택적으로 제공하기 위한 출력을 가지는 지시 디코딩 수단과, 지시 디코딩 수단의 출력에 결합된 제1입력과, 인터럽트 승인 신호를 수신하기 위한 제2입력과, 디코드된 지시를 데이타 프로세서에 선택적으로 제공하기 위한 출력을 가지는 제2지시 기억 수단을 구비하는 데이타 프로세서 제어 유닛.
  6. 제5항에 있어서, 상기 제2지시 기억 수단은 상기 프로그램 어드레스 기억 수단의 제어 입력에 결합되어 프로그램 어드레스 기억 수단의 내용을 일정하게 선택적으로 유지시키는 제2출력을 갖는 데이타 프로세서 제어 유닛.
KR1019870700645A 1985-11-27 1986-11-10 데이타 프로세서 제어 유닛과 지시사이클 및 오버헤드 최소화 방법 KR940009100B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US06/802,491 US4709324A (en) 1985-11-27 1985-11-27 Data processor control unit having an interrupt service using instruction prefetch redirection
US802.491 1985-11-27
PCT/US1986/002466 WO1987003394A1 (en) 1985-11-27 1986-11-10 A data processor control unit having an interrupt service using instruction prefetch redirection

Publications (2)

Publication Number Publication Date
KR880700969A KR880700969A (ko) 1988-04-13
KR940009100B1 true KR940009100B1 (ko) 1994-09-29

Family

ID=25183841

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019870700645A KR940009100B1 (ko) 1985-11-27 1986-11-10 데이타 프로세서 제어 유닛과 지시사이클 및 오버헤드 최소화 방법

Country Status (13)

Country Link
US (1) US4709324A (ko)
EP (1) EP0247175B1 (ko)
JP (1) JPH083791B2 (ko)
KR (1) KR940009100B1 (ko)
CN (1) CN1009396B (ko)
AU (1) AU6779687A (ko)
CA (1) CA1265873A (ko)
DE (1) DE3681733D1 (ko)
FI (1) FI90804C (ko)
HK (1) HK5294A (ko)
IL (1) IL80499A (ko)
SG (1) SG130093G (ko)
WO (1) WO1987003394A1 (ko)

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6282402A (ja) * 1985-10-07 1987-04-15 Toshiba Corp シ−ケンス制御装置
JPH0740225B2 (ja) * 1985-12-25 1995-05-01 日本電気株式会社 プログラムスキツプ動作制御方式
JPS6398737A (ja) * 1986-10-15 1988-04-30 Mitsubishi Electric Corp デ−タ処理装置
DE3856067T2 (de) * 1987-07-06 1998-06-10 Hitachi Ltd Datenprozessor mit einer Unterbrechungsfunktion
US5247628A (en) * 1987-11-30 1993-09-21 International Business Machines Corporation Parallel processor instruction dispatch apparatus with interrupt handler
US5822578A (en) * 1987-12-22 1998-10-13 Sun Microsystems, Inc. System for inserting instructions into processor instruction stream in order to perform interrupt processing
DE68927313T2 (de) * 1988-06-27 1997-05-07 Digital Equipment Corp Operandenspezifiererverarbeitung
JPH07120278B2 (ja) * 1988-07-04 1995-12-20 三菱電機株式会社 データ処理装置
US5006980A (en) * 1988-07-20 1991-04-09 Digital Equipment Corporation Pipelined digital CPU with deadlock resolution
US5019967A (en) * 1988-07-20 1991-05-28 Digital Equipment Corporation Pipeline bubble compression in a computer system
US5590293A (en) * 1988-07-20 1996-12-31 Digital Equipment Corporation Dynamic microbranching with programmable hold on condition, to programmable dynamic microbranching delay minimization
US5117498A (en) * 1988-08-19 1992-05-26 Motorola, Inc. Processer with flexible return from subroutine
JP2504149B2 (ja) * 1988-12-02 1996-06-05 三菱電機株式会社 命令キュ―管理装置
JPH0640316B2 (ja) * 1989-04-20 1994-05-25 工業技術院長 演算レジスタ上でのデータ待ち合せ実現方法
CA2019299C (en) * 1989-06-22 2002-01-15 Steven Frank Multiprocessor system with multiple instruction sources
JPH0437927A (ja) * 1990-06-01 1992-02-07 Sony Corp プロセッサの処理方法
US5287522A (en) * 1990-06-29 1994-02-15 Bull Hn Information Systems, Inc. External procedure invocation apparatus utilizing internal branch vector interrupts and vector address generation, in a RISC chip
JP2556182B2 (ja) * 1990-08-29 1996-11-20 三菱電機株式会社 デ−タ処理装置
JPH04318654A (ja) * 1991-02-13 1992-11-10 Hewlett Packard Co <Hp> マイクロプロセッサへの割り込みのリダイレクションシステム
JP2677719B2 (ja) * 1991-05-08 1997-11-17 富士通株式会社 情報処理装置
JP2682264B2 (ja) * 1991-05-21 1997-11-26 日本電気株式会社 プログラムカウンタ装置
JPH04346127A (ja) 1991-05-23 1992-12-02 Sony Corp 電子装置
US5297282A (en) * 1991-05-29 1994-03-22 Toshiba America Information Systems, Inc. Resume processing function for the OS/2 operating system
US5355490A (en) * 1991-06-14 1994-10-11 Toshiba America Information Systems, Inc. System and method for saving the state for advanced microprocessor operating modes
US5542076A (en) * 1991-06-14 1996-07-30 Digital Equipment Corporation Method and apparatus for adaptive interrupt servicing in data processing system
US5455909A (en) * 1991-07-05 1995-10-03 Chips And Technologies Inc. Microprocessor with operation capture facility
WO1993006549A1 (en) * 1991-09-19 1993-04-01 Chips And Technologies, Inc. A system for performing input and output operations to and from a processor
US5623665A (en) * 1992-01-13 1997-04-22 Sony Corporation Electronic apparatus for patching a read-only memory
JP3230262B2 (ja) * 1992-01-24 2001-11-19 ソニー株式会社 電子装置及びその固定情報修正方法
US5805902A (en) * 1993-07-02 1998-09-08 Elonex I.P. Holdings, Ltd. Structure and method for issuing interrupt requests as addresses and for decoding the addresses issued as interrupt requests
GB2281986B (en) * 1993-09-15 1997-08-06 Advanced Risc Mach Ltd Data processing reset
US5475822A (en) * 1993-11-15 1995-12-12 Motorola, Inc. Data processing system for resuming instruction execution after an interrupt and method therefor
JPH07244649A (ja) * 1994-03-08 1995-09-19 Fujitsu Ltd 割込処理分散方式
US5889973A (en) * 1995-03-31 1999-03-30 Motorola, Inc. Method and apparatus for selectively controlling interrupt latency in a data processing system
US6052801A (en) * 1995-05-10 2000-04-18 Intel Corporation Method and apparatus for providing breakpoints on a selectable address range
US5659679A (en) * 1995-05-30 1997-08-19 Intel Corporation Method and apparatus for providing breakpoints on taken jumps and for providing software profiling in a computer system
US5621886A (en) * 1995-06-19 1997-04-15 Intel Corporation Method and apparatus for providing efficient software debugging
US5740413A (en) * 1995-06-19 1998-04-14 Intel Corporation Method and apparatus for providing address breakpoints, branch breakpoints, and single stepping
US5687339A (en) * 1995-09-14 1997-11-11 Elan Microelectronics Corp. Pre-reading and pre-decoding of instructions of a microprocessor within single cycle
US5954819A (en) * 1996-05-17 1999-09-21 National Semiconductor Corporation Power conservation method and apparatus activated by detecting programmable signals indicative of system inactivity and excluding prefetched signals
US6785803B1 (en) * 1996-11-13 2004-08-31 Intel Corporation Processor including replay queue to break livelocks
US5907712A (en) * 1997-05-30 1999-05-25 International Business Machines Corporation Method for reducing processor interrupt processing time by transferring predetermined interrupt status to a system memory for eliminating PIO reads from the interrupt handler
US5905880A (en) * 1997-09-29 1999-05-18 Microchip Technology Incorporated Robust multiple word instruction and method therefor
US5901309A (en) * 1997-10-07 1999-05-04 Telefonaktiebolaget Lm Ericsson (Publ) Method for improved interrupt handling within a microprocessor
US6044430A (en) 1997-12-17 2000-03-28 Advanced Micro Devices Inc. Real time interrupt handling for superscalar processors
US6275924B1 (en) * 1998-09-15 2001-08-14 Texas Instruments Incorporated System for buffering instructions in a processor by reissuing instruction fetches during decoder stall time
US7401205B1 (en) * 1999-08-13 2008-07-15 Mips Technologies, Inc. High performance RISC instruction set digital signal processor having circular buffer and looping controls
US6889279B2 (en) * 2000-12-11 2005-05-03 Cadence Design Systems, Inc. Pre-stored vector interrupt handling system and method
US6934728B2 (en) 2001-06-01 2005-08-23 Microchip Technology Incorporated Euclidean distance instructions
US6952711B2 (en) 2001-06-01 2005-10-04 Microchip Technology Incorporated Maximally negative signed fractional number multiplication
US7020788B2 (en) 2001-06-01 2006-03-28 Microchip Technology Incorporated Reduced power option
US20020184566A1 (en) 2001-06-01 2002-12-05 Michael Catherwood Register pointer trap
US6976158B2 (en) 2001-06-01 2005-12-13 Microchip Technology Incorporated Repeat instruction with interrupt
US6985986B2 (en) 2001-06-01 2006-01-10 Microchip Technology Incorporated Variable cycle interrupt disabling
US6937084B2 (en) 2001-06-01 2005-08-30 Microchip Technology Incorporated Processor with dual-deadtime pulse width modulation generator
US7007172B2 (en) 2001-06-01 2006-02-28 Microchip Technology Incorporated Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection
US7003543B2 (en) 2001-06-01 2006-02-21 Microchip Technology Incorporated Sticky z bit
US7467178B2 (en) 2001-06-01 2008-12-16 Microchip Technology Incorporated Dual mode arithmetic saturation processing
US6975679B2 (en) 2001-06-01 2005-12-13 Microchip Technology Incorporated Configuration fuses for setting PWM options
GB2400198B (en) 2003-04-04 2006-04-05 Advanced Risc Mach Ltd Controlling execution of a block of program instructions within a computer processing system
US7200719B2 (en) * 2003-07-31 2007-04-03 Freescale Semiconductor, Inc. Prefetch control in a data processing system
JP4247132B2 (ja) 2004-01-29 2009-04-02 株式会社ルネサステクノロジ 情報処理装置
CN102141904B (zh) * 2011-03-31 2014-02-12 杭州中天微系统有限公司 支持中断屏蔽指令的数据处理器
CN104011684B (zh) * 2011-12-22 2018-01-26 英特尔公司 具有内嵌中断服务功能的中断返回指令
CN111190658B (zh) * 2020-01-08 2023-02-28 乐鑫信息科技(上海)股份有限公司 一种基于片内执行且在不具有MMU的SoC片上支持应用程序动态加载的系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1059639A (en) * 1975-03-26 1979-07-31 Garvin W. Patterson Instruction look ahead having prefetch concurrency and pipe line features
US4339793A (en) * 1976-12-27 1982-07-13 International Business Machines Corporation Function integrated, shared ALU processor apparatus and method
US4181934A (en) * 1976-12-27 1980-01-01 International Business Machines Corporation Microprocessor architecture with integrated interrupts and cycle steals prioritized channel
US4210960A (en) * 1977-09-02 1980-07-01 Sperry Corporation Digital computer with overlapped operation utilizing conditional control to minimize time losses
EP0020931B1 (fr) * 1979-06-21 1984-10-10 International Business Machines Corporation Dispositif exécutant des opérations d'interruption de programme pour processeur du type à appel anticipé des instructions
US4527237A (en) * 1979-10-11 1985-07-02 Nanodata Computer Corporation Data processing system
US4402042A (en) * 1980-11-24 1983-08-30 Texas Instruments Incorporated Microprocessor system with instruction pre-fetch
JPS57130998A (en) * 1981-02-04 1982-08-13 Japan Found Cancer Human interferon-beta-gene
US4399507A (en) * 1981-06-30 1983-08-16 Ibm Corporation Instruction address stack in the data memory of an instruction-pipelined processor
IE54592B1 (en) * 1982-03-08 1989-12-06 Genentech Inc Anumal interferons, processes involved in their production, compositions containing them, dna sequences coding therefor and espression vehicles containing such sequences and cells transformed thereby
DE3220116A1 (de) * 1982-05-28 1983-12-01 Dr. Karl Thomae Gmbh, 7950 Biberach Mikrobiologisch hergestellte (alpha)- und ss-interferone, dna-sequenzen, die fuer diese interferone codieren, mikroorganismen, die diese genetische information enthalten, und verfahren zu ihrer herstellung
ATE24784T1 (de) * 1983-09-16 1987-01-15 Ibm Einrichtung im befehlswerk eines fliessbandprozessors zur befehlsunterbrechung und -wiederholung.
US4586130A (en) * 1983-10-03 1986-04-29 Digital Equipment Corporation Central processing unit for a digital computer

Also Published As

Publication number Publication date
EP0247175B1 (en) 1991-09-25
FI90804B (fi) 1993-12-15
CA1265873A (en) 1990-02-13
IL80499A (en) 1990-06-10
HK5294A (en) 1994-01-28
EP0247175A4 (en) 1988-03-22
WO1987003394A1 (en) 1987-06-04
DE3681733D1 (de) 1991-10-31
CN86107934A (zh) 1987-08-12
US4709324A (en) 1987-11-24
CN1009396B (zh) 1990-08-29
AU6779687A (en) 1987-07-01
EP0247175A1 (en) 1987-12-02
SG130093G (en) 1994-02-25
JPS63501454A (ja) 1988-06-02
FI873030A (fi) 1987-07-08
FI873030A0 (fi) 1987-07-08
KR880700969A (ko) 1988-04-13
FI90804C (fi) 1994-03-25
JPH083791B2 (ja) 1996-01-17
IL80499A0 (en) 1987-02-27

Similar Documents

Publication Publication Date Title
KR940009100B1 (ko) 데이타 프로세서 제어 유닛과 지시사이클 및 오버헤드 최소화 방법
US5907702A (en) Method and apparatus for decreasing thread switch latency in a multithread processor
US5222223A (en) Method and apparatus for ordering and queueing multiple memory requests
US6157988A (en) Method and apparatus for high performance branching in pipelined microsystems
EP1889152B1 (en) A method and apparatus for predicting branch instructions
US7260706B2 (en) Branch misprediction recovery using a side memory
US7213137B2 (en) Allocation of processor bandwidth between main program and interrupt service instruction based on interrupt priority and retiring micro-ops to cache
US6205467B1 (en) Microprocessor having a context save unit for saving context independent from interrupt requests
EP0180725B1 (en) Instruction prefetch operation for branch instructions
JPH06110683A (ja) マイクロプロセッサの拡張ブランチターゲット方法及びその装置
JP3242508B2 (ja) マイクロコンピュータ
EP1460532A2 (en) Computer processor data fetch unit and related method
CN109101276B (zh) 在cpu中执行指令的方法
US5687381A (en) Microprocessor including an interrupt polling unit configured to poll external devices for interrupts using interrupt acknowledge bus transactions
US6275903B1 (en) Stack cache miss handling
US5948093A (en) Microprocessor including an interrupt polling unit configured to poll external devices for interrupts when said microprocessor is in a task switch state
US6308242B1 (en) Apparatus for adaptively controlling a prefetch queue based on various flush conditions
US6721878B1 (en) Low-latency interrupt handling during memory access delay periods in microprocessors
US6170050B1 (en) Length decoder for variable length data
JP3602801B2 (ja) メモリデータアクセス構造およびその方法
US20040098564A1 (en) Status register update logic optimization
CN115617402B (zh) 一种适用于通用处理器的解耦合分支预测方法及装置
KR920006613B1 (ko) 파이프라인으로 동작하는 프로세서의 명령어 페취 유니트
US7124281B1 (en) Processing system having sequential address indicator signals
JPH0855033A (ja) 情報処理装置

Legal Events

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

Payment date: 20060714

Year of fee payment: 13

EXPY Expiration of term