KR20010050661A - 프로세서 및 프로세서 시스템 - Google Patents

프로세서 및 프로세서 시스템 Download PDF

Info

Publication number
KR20010050661A
KR20010050661A KR1020000056669A KR20000056669A KR20010050661A KR 20010050661 A KR20010050661 A KR 20010050661A KR 1020000056669 A KR1020000056669 A KR 1020000056669A KR 20000056669 A KR20000056669 A KR 20000056669A KR 20010050661 A KR20010050661 A KR 20010050661A
Authority
KR
South Korea
Prior art keywords
coprocessor
instruction
processor
execution
unit
Prior art date
Application number
KR1020000056669A
Other languages
English (en)
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 KR20010050661A publication Critical patent/KR20010050661A/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/22Microcontrol or microprogram arrangements
    • 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, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • 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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • 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, look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units

Abstract

접속되는 코프로세서의 종류에 상관없이 효율적인 코프로세서 명령의 실행을 실현하는 주프로세서를 구비한 프로세서 시스템을 제공한다.
코프로세서(CPR0 내지 CPRn)와 주프로세서(15)를 가지는 프로세서 시스템에 있어서, 주프로세서(15)는 코프로세서에 있어서의 실행을 명령하는 코프로세서 명령이 메모리(17)로부터 공급된 때에, 상기 코프로세서 명령에 대응하는 명령 필드에 기초하여 코프로세서 명령이 코프로세서(CPR0 내지 CPRn)에 있어서 먼저 실행되는 코프로세서 명령에 대하여 제어 의존성을 가질 가능성이 있다고 판단한 경우에는, 선행하는 코프로세서 명령의 실행이 완료한 후에 다음 코프로세서 명령을 코프로세서(CPR0 내지 CPRn)로 발행하는 것을 특징으로 하는 프로세서 시스템을 제공한다.

Description

프로세서 및 프로세서 시스템{PROCESSOR AND PROCESSOR SYSTEM}
본 발명은 프로세서와 프로세서 시스템에 관한 것으로, 더욱 자세하게는 소정의 제어 방법에 의해 코프로세서에 명령을 발행하는 프로세서와, 그 프로세서 및 코프로세서로 이루어지는 프로세서 시스템에 관한 것이다.
도 1은 종래의 프로세서 시스템의 구성을 나타내는 도면이다. 도 1에 나타내는 바와 같이 종래의 프로세서 시스템은 주프로세서(1)와, 주프로세서(1)에 접속된 메모리(3)와, 주프로세서(1)에 접속된 코프로세서(CPR0 내지 CPRn)를 구비한다. 여기서, 주프로세서(1)는 메모리(3)에 접속된 명령 페치(fetch)부(5)와, 명령 페치부(5)에 접속된 명령 실행부(7)와, 명령 실행부(7)에 접속된 코프로세서 지정 레지스터(CR : 11)와, 명령 페치부(5) 및 CR(11)에 접속된 코프로세서 명령 제어부(13)와, 코프로세서 명령 제어부(13) 및 명령 실행부(7)에 접속된 레지스터(9)를 포함한다.
또한, 도 2는 도 1에 나타낸 코프로세서 명령 제어부(13)와 명령 실행부(7)의 구성을 나타내는 도면이다. 도 2에 나타내는 바와 같이 코프로세서 명령 제어부(13)는 명령 레지스터(100)와, 리소스 판단부(102)와, 리소스 디코딩부(103)와, 예외 디코딩부(104)와, 예외 판단부(106)와, 발행 제어부(109)와, 완료 제어부(110)와, 스코어보드(111)를 구비한다. 여기서, 명령 레지스터(100)는 명령 페치부(5)에 접속되고, 리소스 디코딩부(103)는 명령 레지스터(100)에 접속된다. 또한, 리소스 판단부(102)는 리소스 디코딩부(103)에 접속되고, 예외 디코딩부(104)는 명령 레지스터(100)에 접속된다. 그리고, 예외 판단부(106)는 예외 디코딩부(104)에 접속되고, 발행 제어부(109)는 명령 레지스터(100)와 리소스 판단부(102) 및 예외 판단부(106)에 접속된다. 또한, 발행 제어부(109)와 완료 제어부(110)는 모두 코프로세서(CPR0 내지 CPRn)와 레지스터(9)에 접속된다. 또한, 스코어보드(111)는 발행 제어부(109) 및 완료 제어부(110)와 리소스 판단부(102) 및 예외 판단부(106)에 접속된다. 또한, 예외 판단부(106)와 발행 제어부(109)는 CR(11)에 접속된다.
한편, 명령 실행부(7)는 디코딩부(115)와, 기입 제어부(129)와, 실행 제어부(131)를 구비한다. 여기서, 디코딩부(115)는 명령 페치부(5)에 접속되고, 기입 제어부(129) 및 실행 제어부(131)는 레지스터(9)와 디코딩부(115)에 접속된다. 또한, 기입 제어부(129)는 CR(11)에 접속된다.
상기와 같은 구성을 갖는 프로세서 시스템에 있어서는, 명령 페치부(5)는 메모리(3)에서 명령을 판독하지만, 코프로세서 지정 레지스터(11)를 재기록하는 명령을 판독한 경우는 그 명령을 명령 실행부(7)로 공급한다. 또한, 코프로세서 명령을 판독한 경우는 그 명령을 코프로세서 명령 제어부(13)로 공급한다. 또한, 상기 이외의 명령을 판독한 경우에는 그 명령을 명령 실행부(7)로 공급한다.
또한, 명령 실행부(7)는 공급된 명령을 실행하고, 예컨대 코프로세서 지정 레지스터(11)를 재기록하는 명령이 공급된 경우에는 기입 제어부(129)에 의해 CR(11)을 재기록한다.
한편, 코프로세서 명령 제어부(13)는 발행 제어부(109) 및 완료 제어부(110)나 스코어보드(111) 등에 의해서 코프로세서(CPR1 내지 CPRn)에 있어서의 코프로세서 명령의 실행을 제어하고, 그 중 발행 제어부(109)는 주프로세서(1)에서 코프로세서(CPR1 내지 CPRn)로의 명령 발행 동작을 제어한다. 또한, 명령 페치부(5)로부터 공급된 코프로세서 명령이 선행 코프로세서 명령에 대하여 데이터 의존이 없으면 리소스 판단부(102)에서 판단되고, 처리의 예외에 의한 제어 의존이 없으면 예외 판단부(106)에서 판단되는 경우에는, 발행 제어부(109)는 코프로세서 명령을 CR(11)에 의해 지정된 코프로세서로 신호 In(n은 0이상의 정수)으로서 발행함과 동시에, 신호 In을 발행한 취지의 정보(발행 정보)를 스코어보드(111)에 기입한다. 여기서, 「데이터 의존」이란 선행하는 코프로세서 명령의 실행 결과에 기초하여 비로소 후의 코프로세서 명령의 실행이 가능해지는 것을 말한다.
여기서, 「처리의 예외에 의한 제어 의존」이란, 예컨대 0의 값에서 감산하는 것이나 부동 소수점을 이용한 연산에 있어서 오버플로우를 일으키는 등 처리의 예외를 불러 연산을 계속할 수 없는 상황이 될 수 있는 것을 말한다.
한편, 리소스 판단부(102)에 있어서 데이터 의존이 있다고 판단되는 경우에는, 발행 제어부(109)는 상기 코프로세서 명령이 의존하는 선행 코프로세서 명령의 완료를 대기한 후에 상기 코프로세서 명령을 CR(11)에 지정된 코프로세서로 신호 In으로서 발행하고, 신호 In을 발행한 취지의 정보(발행 정보)를 스코어보드(111)에 기입한다. 또한, 코프로세서 명령 제어부(13)는 완료 제어부(110)에 있어서 코프로세서 명령의 발행지인 코프로세서에서 완료 신호 Cn(n은 0이상의 정수)을 수령함으로써 코프로세서 명령의 실행 완료가 통지된다. 이 때, 완료 제어부(110)는 완료 신호 Cn에 따라 스코어보드(111)에 기입되어 있는 신호 In을 발행한 취지의 발행 정보를 삭제한다.
또한, 코프로세서 지정 레지스터(CR : 11)는 조작 대상의 코프로세서(CPRn : n은 0이상의 정수)의 번호를 지정한다. 또한, 메모리(3)는 코프로세서 명령을 포함하는 주프로세서(1)로의 명령을 기억하고, 레지스터(9)는 코프로세서에 부여하는 데이터 및 코프로세서에 있어서의 실행 결과를 저장한다. 또한, 레지스터(9)는 복수의 기억부로 이루어진다.
도 3은 코프로세서 명령의 명령 형식의 일례를 나타내는 도면이다. 여기서, 명령 코드 OP-CODE는 코프로세서(CPR0 내지 CPRn)에서 실행해야 할 처리를 나타내고, 오퍼랜드 1 내지 n은 코프로세서에 부여하는 데이터를 유지하고 있는 레지스터 내의 기억부의 번호, 혹은 코프로세서에 의한 실행 결과를 저장하는 레지스터 내의 기억부의 번호를 의미한다.
도 4는 CR(11)을 재기록하는 명령의 명령 형식을 나타내는 도면이다. 도 4에 나타내는 오퍼랜드 1은 CR(11)에 기입된 값을 유지하는 레지스터(9) 중의 어느 하나의 기억부를 지정한다. 또한, 도 4의 명령 코드 OP-CODE와 오퍼랜드 1 사이에는 임의의 정보가 기록된다.
다음에, 전술한 프로세서 시스템에 있어서의 코프로세서 명령의 발행 동작을 설명한다. 코프로세서 명령 제어부(13)의 발행 제어부(109)는 공급된 코프로세서 명령이 처리의 예외를 발생할 가능성이 없고 선행하는 코프로세서 명령과의 데이터 의존이 없는 경우에는 상기 코프로세서 명령을 발행함과 동시에 발행 정보를 스코어보드(111)에 기입하고, 처리의 예외를 발생할 가능성이 없지만 선행하는 코프로세서 명령과의 데이터 의존이 있는 경우에는 상기 선행하는 코프로세서 명령의 실행완료를 대기한 후에 다음 코프로세서 명령을 발행하여 발행 정보를 스코어보드(111)에 기입한다.
한편, 코프로세서 명령 제어부(13)의 발행 제어부(109)는 공급된 코프로세서 명령이 처리의 예외를 발생할 가능성이 있고 선행하는 코프로세서 명령과의 데이터 의존이 없는 경우에는 상기 코프로세서 명령을 발행함과 동시에 발행 정보를 스코어보드(111)에 기입하고, 처리의 예외를 발생할 가능성이 있고 선행하는 코프로세서 명령과의 데이터 의존도 있는 경우에는 상기 선행하는 코프로세서 명령의 실행 완료를 대기한 후에 다음 코프로세서 명령을 발행하여 발행 정보를 스코어보드(111)에 기입한다.
상기와 같은 프로세서 시스템에 있어서는 일반적으로 명령 발행 능력을 향상시키는 수법으로서 투기적 명령 실행(speculative execution)이 알려져 있다. 그리고, 이 투기적 명령 실행을 코프로세서에 대한 명령 발행 제어 방식으로서 이용하는 경우에는 데이터 의존이나 처리의 예외에 의한 제어 의존을 보증할 필요가 있다.
그러나, 코프로세서를 갖는 종래의 프로세서 시스템에 있어서는, 전술한 바와 같이 코프로세서 명령 제어부(13)가 명령 페치부(5)로부터 공급된 코프로세서 명령에 포함된 명령 코드에 의해서 상기 코프로세서 명령이 처리의 예외에 의한 제어 의존을 발생시키는 것인지 아닌지를 판정하고, 그 판정 결과에 기초하여 전술한 바와 같이 상기 코프로세서 명령의 발행을 행하고 있었다. 여기서, 코프로세서 명령은 각 코프로세서(CPR0 내지 CPRn)에 대응하는 것이기 때문에 주프로세서(1), 특히 그 중 코프로세서 명령 제어부(13)의 구조는 주프로세서(1)에 접속되는 코프로세서(CPR0 내지 CPRn)의 종류에 따라 다른 것으로 하지 않을 수 없는 문제가 있었다.
본 발명은 전술의 문제점을 해소하기 위해서 이루어진 것으로, 접속되는 코프로세서의 종류 혹은 공급되는 코프로세서 명령의 종류에 상관없이, 처리의 예외에 의한 제어 의존의 발생할 가능성을 근거로 한 효율적인 코프로세서 명령의 처리를 실현하는 프로세서와, 상기 프로세서를 구비한 프로세서 시스템을 제공하는 것을 목적으로 한다.
도 1은 종래의 프로세서 시스템의 구성을 나타내는 도면.
도 2는 도 1에 나타낸 코프로세서 명령 제어부와 명령 실행부의 구성을 나타내는 도면.
도 3은 종래의 코프로세서 명령의 명령 형식을 나타내는 도면.
도 4는 종래의 코프로세서 지정 레지스터를 재기록하는 명령의 명령 형식을 나타내는 도면.
도 5는 본 발명의 실시 형태(1)에 관한 프로세서 시스템의 구성을 나타내는 도면.
도 6은 도 5에 나타낸 코프로세서 명령 제어부와 명령 실행부의 구성을 나타내는 도면.
도 7은 본 발명의 실시 형태(1)에 관한 코프로세서 명령의 명령 형식을 나타내는 도면.
도 8은 본 발명의 실시 형태(2)에 관한 프로세서 시스템의 구성을 나타내는 도면.
도 9는 도 8에 나타낸 코프로세서 명령 제어부와 명령 실행부의 구성을 나타내는 도면.
도 10은 본 발명의 실시 형태(3)에 관한 프로세서 시스템의 구성을 나타내는 도면.
도 11은 도 10에 나타낸 코프로세서 명령 제어부와 명령 실행부의 구성을 나타내는 도면.
도 12는 본 발명의 실시 형태(3)에 있어서, 어느 하나에 플래그를 재기록하는 명령의 명령 형식을 나타내는 도면.
도 13은 본 발명의 실시 형태(4)에 관한 프로세서 시스템의 구성을 나타내는 도면.
도 14는 도 13에 나타낸 코프로세서 명령 제어부와 명령 실행부의 구성을 나타내는 도면.
도 15는 본 발명의 실시 형태(4)에 있어서, 실행 중의 코프로세서 명령의 실행 완료를 대기하는 명령의 명령 형식을 나타내는 도면.
도 16은 본 발명의 실시 형태(5)에 관한 프로세서 시스템의 구성을 나타내는 도면.
도 17은 도 16에 나타낸 코프로세서 명령 제어부와 명령 실행부의 구성을 나타내는 도면.
도 18은 본 발명의 실시 형태(6)에 관한 프로세서 시스템의 구성을 나타내는 도면.
도 19는 도 18에 나타낸 코프로세서 명령 제어부와 명령 실행부의 구성을 나타내는 도면.
도 20은 본 발명의 실시 형태(7)에 관한 프로세서 시스템의 구성을 나타내는 도면.
도 21은 도 20에 나타낸 코프로세서 명령 제어부와 명령 실행부의 구성을 나타내는 도면.
도 22는 도 20에 나타낸 코프로세서 명령 제어부와 명령 실행부의 다른 구성을 나타내는 도면.
도 23은 본 발명의 실시 형태(7)에 있어서, 실행 중의 코프로세서 명령의 실행 완료를 대기하는 명령의 명령 형식을 나타내는 도면.
도 24는 본 발명의 실시 형태(8)에 관한 프로세서 시스템의 구성을 나타내는 도면.
도 25는 도 24에 나타낸 코프로세서 명령 제어부와 명령 실행부의 구성을 나타내는 도면.
도 26은 도 24에 나타낸 코프로세서 명령 제어부와 명령 실행부의 다른 구성을 나타내는 도면.
도 27은 본 발명의 실시 형태(9)에 관한 프로세서 시스템의 구성을 나타내는 도면.
도 28은 도 27에 나타낸 코프로세서 명령 제어부와 명령 실행부의 구성을 나타내는 도면.
도 29는 도 27에 나타낸 코프로세서 명령 제어부와 명령 실행부의 다른 구성을 나타내는 도면.
〈도면의 주요 부분에 대한 부호의 설명〉
1, 15, 21, 31, 41, 51, 61, 71, 81, 91 : 주프로세서
3, 17, 23, 33, 43, 53, 63, 73, 83, 93 : 메모리
5, 24, 34, 44, 54, 64, 74, 84, 94 : 명령 페치부
7, 27, 37, 47, 57, 67, 77, 78, 87, 88, 97, 98 : 명령 실행부
9, 26, 36, 66 : 레지스터
11 : 코프로세서 지정 레지스터(CR)
13, 19, 25, 35, 45, 55, 65, 75, 85, 95 : 코프로세서 명령 제어부
29 : 플래그
100, 101 : 명령 레지스터
102 : 리소스 판단부
103 : 리소스 디코딩부
104 : 예외 디코딩부
105 : 플래그 검출부
106, 107, 108 : 예외 판단부
109 : 발행 제어부
110 : 완료 제어부
111, 112∼114 : 스코어보드
115∼127 : 디코딩부
129 : 기입 제어부
131 : 실행 제어부
133, 134 : 플래그 기입 제어부
135, 136 : 동기 제어부
137 : 제1 동기 제어부
CPR0∼CPRn : 코프로세서
상기의 목적은 코프로세서에 접속되는 프로세서로서, 프로세서는 코프로세서에 있어서의 실행을 명령하는 제1 코프로세서 명령이 공급된 때에 제1 코프로세서 명령에 대응하는 의존 가능성 표시 데이터에 기초하여, 제1 코프로세서 명령이 코프로세서에 있어서 먼저 실행되는 제2 코프로세서 명령에 대하여 제어 의존성을 가질 가능성이 있다고 판단한 경우에는, 제2 코프로세서 명령의 실행이 완료한 후에 제1 코프로세서 명령을 코프로세서로 발행하는 것을 특징으로 하는 프로세서를 제공함으로써 달성된다. 이러한 수단에 따르면 프로세서는 제1 코프로세서 명령이 아니라 의존 가능성 표시 데이터에 기초하여 제1 코프로세서 명령의 제어 의존성을 판단하기 때문에, 프로세서의 구성을 코프로세서의 종류에 상관없이 결정할 수 있다.
또한, 본 발명의 목적은 코프로세서에 접속된 프로세서로서, 코프로세서가 제1 코프로세서 명령을 실행 중인지 아닌지를 나타내는 신호를 생성하는 신호 생성 수단과, 코프로세서가 제1 코프로세서 명령을 실행 중인 것을 나타내는 실행 표시 신호가 신호 생성 수단으로부터 공급되고 있는 경우에는, 신호 생성 수단으로부터 실행의 완료를 나타내는 실행 완료 신호가 공급된 때에 프로세서 실행 명령을 실행하는 명령 실행 수단을 구비한 것을 특징으로 하는 프로세서를 제공함으로써 달성된다.
또한, 본 발명의 목적은 코프로세서와 코프로세서에 접속된 주프로세서를 갖는 프로세서 시스템으로서, 주프로세서는 코프로세서에 있어서의 실행을 명령하는 제1 코프로세서 명령이 공급된 때에, 제1 코프로세서 명령에 대응하는 의존 가능성 표시 데이터에 기초하여, 제1 코프로세서 명령이 코프로세서에 있어서 먼저 실행되는 제2 코프로세서 명령에 대하여 제어 의존성을 가질 가능성이 있다고 판단한 경우에는, 제2 코프로세서 명령의 실행이 완료한 후에 제1 코프로세서 명령을 코프로세서로 발행하는 것을 특징으로 하는 프로세서 시스템을 제공함으로써 달성된다. 이러한 수단에 따르면, 주프로세서는 제1 코프로세서 명령이 아니라 의존 가능성 표시 데이터에 기초하여 제1 코프로세서 명령의 제어 의존성을 판단하기 때문에 주프로세서의 구성을 코프로세서의 종류에 상관없이 결정할 수 있다.
또한 본 발명의 목적은 코프로세서와, 코프로세서에 접속된 주프로세서를 갖는 프로세서 시스템으로서, 주프로세서는 코프로세서가 제1 코프로세서 명령을 실행 중인지 아닌지를 나타내는 신호를 생성하는 신호 생성 수단과, 코프로세서가 제1 코프로세서 명령을 실행 중인 것을 나타내는 실행 표시 신호가 신호 생성 수단으로부터 공급되고 있는 경우에는, 신호 생성 수단으로부터 실행의 완료를 나타내는 실행 완료 신호가 공급된 때에 프로세서 실행 명령을 실행하는 명령 실행 수단을 구비한 것을 특징으로 하는 프로세서 시스템을 제공함으로써도 달성된다.
이하에 있어서, 본 발명의 실시 형태를 도면을 참조하여 자세히 설명한다. 또한, 도면 중 동일 부호는 동일 또는 상당 부분을 나타내는다.
[실시 형태 1]
도 5는 본 발명의 실시 형태(1)에 관한 프로세서 시스템의 구성을 나타내는 도면이다. 도 5에 나타내는 바와 같이 이 프로세서 시스템은 도 1에 나타낸 종래의 프로세서 시스템에 대하여 주프로세서(15)에 포함된 코프로세서 명령 제어부(19)의 구성이 상이하다.
도 6은 도 5에 나타낸 코프로세서 명령 제어부(19)와 명령 실행부(7)의 구성을 나타내는 도면이다. 도 6에 나타내는 바와 같이 코프로세서 명령 제어부(19)는 명령 레지스터(101)와, 리소스 판단부(102)와, 리소스 디코딩부(103)와, 예외 판단부(107)와, 발행 제어부(109)와, 완료 제어부(110)와, 스코어보드(112)를 구비한다. 여기서, 명령 레지스터(101)는 명령 페치부(5)에 접속되고, 리소스 디코딩부(103)는 명령 레지스터(101)에 접속된다. 또한, 리소스 판단부(102)는 리소스 디코딩부(103)에 접속된다. 그리고, 예외 판단부(107)는 명령 레지스터(101)에 접속되고, 발행 제어부(109)는 명령 레지스터(101)와 리소스 판단부(102) 및 예외 판단부(107)에 접속된다. 또한, 발행 제어부(109)와 완료 제어부(110)는 모두 코프로세서(CPR0 내지 CPRn)와 레지스터(9)에 접속된다. 또한, 스코어보드(112)는 발행 제어부(109) 및 완료 제어부(110)와 리소스 판단부(102)에 접속된다. 또한, 발행 제어부(109)는 CR(11)에 접속된다.
한편, 명령 실행부(7)는 디코딩부(116)와, 기입 제어부(129)와, 실행 제어부(131)를 구비한다. 여기서, 디코딩부(116)는 명령 페치부(5)에 접속되고, 기입 제어부(129) 및 실행 제어부(131)는 레지스터(9)와 디코딩부(116)에 접속된다. 또한, 기입 제어부(129)는 CR(11)에 접속된다.
상기와 같은 구성을 갖는 본 실시 형태에 관한 메모리(17)에는 도 7에 나타낸 형식을 갖는 코프로세서 명령이 미리 기억된다. 도 7에 나타낸 코프로세서 명령의 형식은 도 3에 나타낸 코프로세서 명령의 형식에 대하여, 처리의 예외에 의한 제어 의존이 발생할 가능성이 있는 코프로세서 명령인지 아닌지를 나타내는 필드 EXCEP가 오퍼랜드 n에 결합되는 점에서 상이하다. 그리고, 이 필드 EXCEP는 처리의 예외에 의한 제어 의존이 발생할 가능성이 있는 경우에는 1이 기록되고, 그 가능성이 없는 경우에는 0이 미리 기록된다. 또한, 전술한 바와 같이, 「처리의 예외에 의한 제어 의존」이란 예컨대 0의 값에서 감산하는 것이나 부동 소수점을 이용한 연산에 있어서 오버플로우를 일으키는 등 처리의 예외를 불러 연산을 계속할 수 없는 상황이 될 수 있는 것을 말한다.
상기와 같은 형식을 갖는 코프로세서 명령이 명령 페치부(5)를 통해 코프로세서 명령 제어부(19)의 명령 레지스터(101)로 공급된 경우의 코프로세서 명령 제어부(19)의 동작에 관해서 이하에 설명한다. 명령 레지스터(101)로 공급된 코프로세서 명령은 리소스 디코딩부(103)에 의해 해석된다. 그리고, 리소스 판단부(102)는 상기 해석 결과와 스코어보드(112)으로부터 공급된 실행 중의 명령에 대응하는 발행 정보에 기초하여, 명령 페치부(5)로부터 공급된 코프로세서 명령이 먼저 실행되는 코프로세서 명령에 데이터 의존하는 것인지 아닌지를 판단하고, 그 판단 결과를 발행 제어부(109)로 통지한다.
한편, 예외 판단부(107)가 공급된 코프로세서 명령의 필드 EXCEP에 기입되어 있는 데이터의 값은 0이라고 판단한 경우에는, 발행 제어부(109)는 명령 페치부(5)로부터 공급된 코프로세서 명령이 먼저 실행되는 코프로세서 명령과의 데이터 의존이 없다고 리소스 판단부(102)에 의해서 판단될 때, 코프로세서 명령을 CR(11)에 지정된 코프로세서로 발행 신호 In을 통하여 발행하고 발행 정보를 스코어보드(112)에 기입한다. 또한 반대로, 리소스 판단부(102)에 의해 상기 데이터 의존이 있다고 판단되는 경우에는, 발행 제어부(109)는 의존하고 있는 코프로세서 명령의 완료를 대기한 후 코프로세서 명령을 CR(11)에 지정된 코프로세서로 발행 신호 In을 통하여 발행하고 발행 정보를 스코어보드(112)에 기입한다.
한편, 공급된 코프로세서 명령의 필드 EXCEP가 1인 경우에는, 발행 제어부(109)는 항상 먼저 실행되어 있는 코프로세서 명령의 완료를 대기한 후, 코프로세서 명령을 CR(11)에 지정된 코프로세서로 발행 신호 In을 통하여 발행하고 발행 정보를 스코어보드(112)에 기입한다.
이와 같이 본 실시 형태에 관한 코프로세서 명령 제어부(19)에 있어서는, 먼저 실행되는 명령에 관한 정보가 아니라 코프로세서 명령의 필드 EXCEP에 기입된 정보에 의해 코프로세서 명령의 발행 타이밍을 결정하기 때문에, 스코어보드(112) 등에서 예외 판단부(10)로의 배선이 불필요하게 됨과 동시에, 플래그 검출부(105)보다 회로 규모가 큰 예외 디코딩부(104)도 불필요하게 된다.
따라서, 본 실시 형태(1)에 관한 프로세서 시스템에 따르면, 회로 규모를 작게 할 수 있음과 동시에, 주프로세서(15)는 공급된 코프로세서 명령에 포함되는 명령 코드를 판독하는 것에 상관없이 오퍼랜드 n에 결합한 필드 EXCEP에 기록된 정보에 의해 코프로세서 명령의 발행 타이밍을 결정하기 때문에, 메모리(17)로부터 공급되는 코프로세서 명령의 종류에 상관없이 효율적인 명령 발행 동작을 실현할 수 있다.
[실시 형태 2]
도 8은 본 발명의 실시 형태(2)에 관한 프로세서 시스템의 구성을 나타내는 도면이다. 도 8에 나타내는 바와 같이 이 프로세서 시스템은 도 1에 나타낸 종래의 프로세서 시스템에 대하여, 주프로세서(21)에 포함된 명령 페치부(24)나 코프로세서 명령 제어부(25)나 명령 실행부(27)의 구성이 상이하고, 명령 실행부(27)에 접속된 플래그(29)를 또한 구비한 것이다.
또한, 도 9는 도 8에 나타낸 코프로세서 명령 제어부(25)와 명령 실행부(27)의 구성을 나타내는 도면이다. 도 9에 나타내는 바와 같이, 코프로세서 명령 제어부(25)및 명령 실행부(27)는 각각 도 6에 나타낸 코프로세서 명령 제어부(19) 및 명령 실행부(7)와 유사한 구성을 가지지만, 코프로세서 명령 제어부(25)는 플래그(29)에 접속된 예외 판단부(108)를 구비하고, 명령 실행부(27)는 디코딩부(117) 및 레지스터(26)에 접속되며 플래그(29)로의 기입을 제어하는 플래그 기입 제어부(133)를 또한 구비하는 점에서 상이하다.
이하에, 도 1에 나타낸 종래의 프로세서 시스템과 상이하는 점에 관해서 자세히 설명한다.
우선, 본 실시 형태에 관한 메모리(23)에는 도 4에 나타낸 형식과 마찬가지의 형식을 가지고 플래그(29)를 재기록하는 명령도 미리 기억된다. 또한, 이 경우에는 도 4에 나타낸 오퍼랜드 1에는 플래그(29)로의 기입값(0 또는 1)을 유지하는 레지스터(26) 내의 기억부의 번호가 기록된다. 또한, 명령 페치부(24)는 플래그(29)의 값을 재기록하는 상기 명령을 판독한 경우에는 그 명령을 명령 실행부(27)로 공급하고, 명령 실행부(27)에 포함된 플래그 기입 제어부(133)는 상기 명령을 수령하여 플래그(29)의 값을 재기록한다.
또한, 명령 실행부(27)에 접속된 플래그(29)는 주프로세서(21)에서 코프로세서(CPR0 내지 CPRn)로 처리의 예외에 의한 제어 의존이 발생할 가능성이 있는 코프로세서 명령을 발행하는 것을 나타내는 것으로 처리의 예외에 의한 제어 의존이 발생할 가능성이 있는 코프로세서 명령을 발행하는 경우에는 미리 명령 실행부(27)에 포함된 플래그 기입 제어부(133)에 의해 1이 설정되고, 처리의 예외에 의한 제어 의존이 발생할 가능성이 있는 코프로세서 명령을 발행하지 않는 경우에는 미리 명령 실행부(27)에 포함된 플래그 기입 제어부(133)에 의해 0이 설정된다.
또한, 코프로세서 명령 제어부(25)의 동작에 관해서 이하에 설명한다. 공급된 코프로세서 명령을 발행할 때, 예외 판단부(108)에 의해 플래그(29)가 0이라고 판단된 경우에는, 명령 페치부(24)로부터 공급된 코프로세서 명령이 먼저 실행되는 코프로세서 명령과의 데이터 의존이 없는 경우에 발행 제어부(109)는 코프로세서 명령을 CR(11)에 지정된 코프로세서로 발행 신호 In을 통하여 발행하고 발행 정보를 스코어보드(112)에 기입한다. 또한 반대로, 상기 데이터 의존이 있으면 발행 제어부(109)에 의해 판단되는 경우에는 의존하고 있는 코프로세서 명령의 완료를 대기한 후 코프로세서 명령을 CR(11)에 지정된 코프로세서로 발행 신호 In을 통하여 발행하고 발행 정보를 스코어보드(112)에 기입한다.
한편, 공급된 코프로세서 명령을 발행할 때, 예외 판단부(108)에 의해 플래그(29)가 1이라고 판단된 경우에는, 항상 먼저 실행되어 있는 코프로세서 명령의 완료를 대기한 후, 발행 제어부(109)는 코프로세서 명령을 CR(11)에 지정된 코프로세서로 발행 신호 In을 통하여 발행하고 발행 정보를 스코어보드(112)에 기입한다.
이상에서 본 실시 형태(2)에 관한 프로세서 시스템에 의해서도, 주프로세서(21)는 공급된 코프로세서 명령에 포함되는 명령 코드를 판독하는 것에 상관없이 플래그(29)의 값에 의해 코프로세서 명령의 발행 타이밍을 결정하기 때문에, 메모리(23)로부터 공급되는 코프로세서 명령의 종류에 상관없이 효율적인 명령 발행 동작을 실현할 수 있다.
[실시 형태 3]
도 10은 본 발명의 실시 형태(3)에 관한 프로세서 시스템의 구성을 나타내는 도면이다. 도 10에 나타내는 바와 같이 이 프로세서 시스템은 도 8에 나타낸 실시 형태(2)에 관한 프로세서 시스템과 유사한 구성을 가지지만, 주프로세서(21)에 포함된 명령 페치부(34)나 코프로세서 명령 제어부(35)나 명령 실행부(37)의 구성이 상이하고, 명령 실행부(37)에 직렬 접속됨과 동시에 각각의 코프로세서(CPR0 내지 CPRn)에 대응하여 설치된 n 개의 플래그를 구비한 것이다.
또한, 도 11은 도 10에 나타낸 코프로세서 명령 제어부(35)와 명령 실행부(37)의 구성을 나타내는 도면이다. 도 11에 나타내는 바와 같이 코프로세서 명령 제어부(35) 및 명령 실행부(37)는 각각 도 9에 나타낸 코프로세서 명령 제어부(25) 및 명령 실행부(27)와 유사한 구성을 가지지만, 코프로세서 명령 제어부(35)는 플래그 0에서 플래그 n에 접속된 예외 판단부(108)를 구비하고, 명령 실행부(37)는 디코딩부(118) 및 레지스터(36)에 접속되어 플래그 0에서 플래그 n으로의 기입을 제어하는 플래그 기입 제어부(134)를 구비하는 점에서 상이하다.
이하에, 도 8에 나타낸 실시 형태(2)에 관한 프로세서 시스템과 상이하는 점에 관해서 자세히 설명한다.
우선, 본 실시 형태에 관한 메모리(33)에는 도 12에 나타낸 형식을 가지고 플래그 0에서 플래그 n 중 적어도 하나를 재기록하는 명령도 미리 기억된다. 또한, 도 12에 나타낸 오퍼랜드 1에는 0 또는 1의 기입값을 기입하는 플래그를 지정하는 번호가 기록되고, 오퍼랜드 2에는 오퍼랜드 1에 있어서 지정한 플래그로의 기입값(0 또는 1)을 유지하는 레지스터(36) 내의 기억부의 번호가 기록된다. 또한, 명령 페치부(34)는 소정의 플래그를 재기록하는 상기 명령을 판독한 경우에는, 그 명령을 명령 실행부(37)로 공급하고, 플래그 기입 제어부(134)는 상기 명령을 수령하여 그 명령의 오퍼랜드 2에 있어서 지정된 레지스터(36) 내의 소정의 기억부에 저장되어 있는 기입값을 오퍼랜드 1에 있어서 지정된 소정의 플래그에 기입한다.
또한, 명령 실행부(37)에 직렬 접속된 n 개의 플래그는 대응하는 코프로세서(CPR0 내지 CPRn)에 대하여, 주프로세서(31)에서 코프로세서(CPR0 내지 CPRn)로 처리의 예외에 의한 제어 의존이 발생할 가능성이 있는 코프로세서 명령을 발행하는 것을 나타내는 것으로, 처리의 예외에 의한 제어 의존이 발생할 가능성이 있는 코프로세서 명령을 발행하는 경우에는 미리 명령 실행부(37)의 플래그 기입 제어부(134)에 의해 1이 설정되고, 처리의 예외에 의한 제어 의존이 발생할 가능성이 있는 코프로세서 명령을 발행하지 않는 경우에는 미리 명령 실행부(37)의 플래그 기입 제어부(134)에 의해 0이 설정된다.
또한, 코프로세서 명령 제어부(35)의 동작에 관해서 이하에 설명한다. 공급된 코프로세서 명령을 발행할 때, 예외 판단부(108)에 의해 상기 코프로세서 명령이 실행되는 코프로세서에 대응하는 플래그가 0이라고 판단되는 경우에는, 명령 페치부(34)로부터 공급된 코프로세서 명령이 상기 코프로세서에 있어서 먼저 실행되는 코프로세서 명령과의 데이터 의존이 없는 경우에 발행 제어부(109)는 코프로세서 명령을 CR(11)에 지정된 코프로세서로 발행 신호 In을 통하여 발행하고 발행 정보를 스코어보드(112)에 기입한다. 또한 반대로, 상기 데이터 의존이 있는 경우에는 발행 제어부(109)는 의존하고 있는 코프로세서 명령의 완료를 대기한 후, 코프로세서 명령을 CR(11)에 지정된 코프로세서로 발행 신호 In을 통하여 발행하고 발행 정보를 스코어보드(112)에 기입한다.
한편, 공급된 코프로세서 명령을 발행할 때, 예외 판단부(108)에 의해 상기 코프로세서 명령이 실행되는 코프로세서에 대응하는 플래그가 1이라고 판단되는 경우에는 발행 제어부(109)는 항상 상기 코프로세서에 있어서 먼저 실행되어 있는 코프로세서 명령의 완료를 대기한 후, 코프로세서 명령을 상기 코프로세서로 발행 신호 In을 통하여 발행하고 발행 정보를 스코어보드(112)에 기입한다.
이상에서 본 실시 형태(3)에 관한 프로세서 시스템에 따르면, 상기 실시 형태(2)에 관한 프로세서 시스템과 유사한 효과를 나타냄과 동시에, 또한 주프로세서(31)는 개개의 코프로세서(CPR0 내지 CPRn)마다 이제부터 실행하는 코프로세서 명령의 제어 의존성을 판단하기 때문에, 다른 코프로세서에서 실행되는 코프로세서 명령의 발행을 대기하는 일없이 코프로세서 명령이 발행된다. 따라서, 코프로세서 명령을 코프로세서(CPR0 내지 CPRn)로 보다 효율적으로 발행할 수 있다.
[실시 형태 4]
도 13은 본 발명의 실시 형태(4)에 관한 프로세서 시스템의 구성을 나타내는 도면이다. 도 13에 나타내는 바와 같이, 이 프로세서 시스템은 도 5에 나타낸 실시 형태(1)에 관한 프로세서 시스템과 유사한 구성을 가지지만, 주프로세서(41)에 포함된 명령 페치부(44)나 코프로세서 명령 제어부(45)나 명령 실행부(47)의 구성이 상이하는 것이다.
또한, 도 14는 도 13에 나타낸 코프로세서 명령 제어부(45)와 명령 실행부(47)의 구성을 나타내는 도면이다. 도 14에 나타내는 바와 같이, 코프로세서 명령 제어부(45) 및 명령 실행부(47)는 각각 도 6에 나타낸 코프로세서 명령 제어부(19) 및 명령 실행부(7)와 유사한 구성을 갖지만 명령 실행부(47)는 디코딩부(119)에 접속된 동기 제어부(135)를 또한 구비하고, 코프로세서 명령 제어부(45)는 동기 제어부(135)에 접속된 스코어보드(112)를 구비하는 점에서 상이하다.
이하에, 도 5에 나타낸 상기 실시 형태(1)에 관한 프로세서 시스템과 상이하는 점에 관해서 자세히 설명한다.
우선, 본 실시 형태에 관한 메모리(43)에는 도 15에 나타낸 형식을 가지고 실행 중의 코프로세서 명령의 실행 완료를 대기하는 명령도 미리 기억된다. 또한, 명령 페치부(44)는 실행 중의 코프로세서 명령의 실행 완료를 대기하는 상기 명령을 판독한 경우에는 그 명령을 명령 실행부(47)로 공급하고, 명령 실행부(47)의 동기 제어부(135)는 상기 명령을 수령했을 때 코프로세서 명령 제어부(45)의 스코어보드(113)에서 0의 값을 갖는 신호 busy가 공급되고 있으면 다음 프로세서 실행 명령을 실행한다. 한편, 명령 실행부(47)의 동기 제어부(135)는 상기 명령을 수령했을 때 코프로세서 명령 제어부(45)의 스코어보드(113)에서 1의 값을 갖는 신호 busy가 공급되고 있으면 신호 busy가 0이 된 시점에서 상기 프로세서 실행 명령을 실행하여 완료시킨다.
또한, 코프로세서 명령 제어부(45)의 스코어보드(113)는 어느 하나의 코프로세서가 코프로세서 명령을 실행 중인 경우에는 1의 값을 갖는 신호 busy를 명령 실행부(47)의 동기 제어부(135)로 공급하고, 어느 코프로세서에 있어서도 코프로세서 명령을 실행 중이 아닌 경우에는 0의 값을 갖는 신호 busy를 명령 실행부(47)의 동기 제어부(135)로 공급한다.
이상에서 본 실시 형태(4)에 관한 프로세서 시스템에 의해서도, 주프로세서(41)는 공급된 코프로세서 명령에 포함되는 명령 코드를 판독하는 것에 상관없이, 현재 어느 하나의 코프로세서가 코프로세서 명령을 실행 중인지 아닌지를 나타내는 신호 busy에 따라 프로세서 실행 명령을 실행하고 코프로세서 명령의 발행 타이밍을 결정하기 때문에, 메모리(43)로부터 공급되는 코프로세서 명령의 종류에 상관없이 효율적인 명령 발행 동작을 실현할 수 있다.
[실시 형태 5]
도 16은 본 발명의 실시 형태(5)에 관한 프로세서 시스템의 구성을 나타내는 도면이다. 도 16에 나타내는 바와 같이 이 프로세서 시스템은 도 13에 나타낸 실시 형태(4)에 관한 프로세서 시스템과 유사한 구성을 갖지만, 주프로세서(51)에 포함된 명령 페치부(54), 코프로세서 명령 제어부(55), 명령 실행부(57)의 구성이 상이하고, 또한 플래그(29)를 구비한 것이다. 또한, 이 플래그(29)는 도 8에 나타낸 실시 형태(2)에 관한 플래그(29)와 같은 것이다.
또한, 도 17은 도 16에 나타낸 코프로세서 명령 제어부(55)와 명령 실행부(57)의 구성을 나타내는 도면이다. 도 17에 나타내는 바와 같이, 코프로세서 명령 제어부(55) 및 명령 실행부(57)는 각각 도 14에 나타낸 코프로세서 명령 제어부(45) 및 명령 실행부(47)와 유사한 구성을 가지지만, 코프로세서 명령 제어부(55)는 플래그(29)에 접속된 예외 판단부(108)를 구비하고, 명령 실행부(47)는 디코딩부(120) 및 레지스터(26)에 접속되어 플래그(29)로의 기입을 제어하는 플래그 기입 제어부(133)를 구비하는 점에서 상이하다.
따라서, 본 실시 형태(5)에 관한 프로세서 시스템은 상기 실시 형태(2)에 관한 프로세서 시스템과 실시 형태(4)에 관한 프로세서 시스템의 양방의 기능을 갖는 것이다. 즉, 코프로세서 명령 제어부(55)의 발행 제어부(109)는 공급된 코프로세서 명령을 발행할 때 플래그(29)가 0인 경우에는 명령 페치부(54)로부터 공급된 코프로세서 명령이 먼저 실행되는 코프로세서 명령과의 데이터 의존이 없는 경우에, 코프로세서 명령을 CR(11)에 지정된 코프로세서로 발행 신호 In을 통하여 발행하고 발행 정보를 스코어보드(113)에 기입한다. 또한 반대로, 상기 데이터 의존이 있는 경우에는, 의존하고 있는 코프로세서 명령의 완료를 대기한 후 코프로세서 명령을 CR(11)에 지정된 코프로세서로 발행 신호 In을 통하여 발행하고 발행 정보를 스코어보드(113)에 기입한다.
한편, 공급된 코프로세서 명령을 발행할 때 플래그(29)가 1인 경우에는 항상, 먼저 실행되어 있는 코프로세서 명령의 완료를 대기한 후 코프로세서 명령을 CR(11)에 지정된 코프로세서로 발행 신호 In을 통하여 발행하고 발행 정보를 스코어보드(113)에 기입한다. 이 때 코프로세서 명령 제어부(55)는 코프로세서가 코프로세서 명령을 실행 중인 경우에는 1의 값을 갖는 신호 busy를 명령 실행부(57)로 공급하고, 코프로세서가 코프로세서 명령을 실행 중이지 않은 경우에는 0의 값을 갖는 신호 busy를 명령 실행부(57)로 공급한다.
그리고, 명령 실행부(57)는 실행 중의 코프로세서 명령의 실행 완료를 대기하는 명령을 수령했을 때, 코프로세서 명령 제어부(55)에서 0의 값을 갖는 신호 busy가 공급되고 있으면 다음 프로세서 실행 명령을 실행한다. 한편, 명령 실행부(57)는 상기 명령을 수령했을 때 코프로세서 명령 제어부(55)에서 1의 값을 갖는 신호 busy가 공급되고 있으면 신호 busy가 0이 된 시점에서 상기 프로세서 실행 명령을 실행하여 완료시킨다.
이상에서 본실시 형태(5)에 관한 프로세서 시스템에 따르면, 주프로세서(51)는 공급된 코프로세서 명령에 포함되는 명령 코드를 판독하는 것에 상관없이 플래그(29)의 값 및 현재 코프로세서 명령을 실행 중인지 아닌지를 나타내는 신호 busy에 따라 코프로세서 명령의 발행 타이밍을 결정하기 때문에, 메모리(53)로부터 공급되는 코프로세서 명령의 종류에 상관없이 효율적인 명령 발행 동작을 실현할 수 있다.
[실시 형태 6]
도 18은 본 발명의 실시 형태(6)에 관한 프로세서 시스템의 구성을 나타내는 도면이다. 도 18에 나타내는 바와 같이, 이 프로세서 시스템은 도 16에 나타낸 실시 형태(5)에 관한 프로세서 시스템과 유사한 구성을 가지지만, 주프로세서(61)에 포함된 명령 페치부(64), 코프로세서 명령 제어부(65), 명령 실행부(67)나 레지스터(66)의 구성이 상이하고, 또한 복수의 플래그 0에서 플래그 n을 구비한 것이다. 또한, 이 복수의 플래그는 도 10에 나타낸 실시 형태(3)에 관한 복수의 플래그 0에서 플래그 n과 같은 것이다.
또한, 도 19는 도 18에 나타낸 코프로세서 명령 제어부(65)와 명령 실행부(67)의 구성을 나타내는 도면이다. 도 19에 나타내는 바와 같이, 코프로세서 명령 제어부(65) 및 명령 실행부(67)는 각각 도 17에 나타낸 코프로세서 명령 제어부(55) 및 명령 실행부(57)와 유사한 구성을 가지지만, 코프로세서 명령 제어부(65)는 플래그 0에서 플래그 n에 접속된 예외 판단부(108)를 구비하고, 명령 실행부(67)는 디코딩부(121) 및 레지스터(66)에 접속되어 플래그 0에서 플래그 n으로의 기입을 제어하는 플래그 기입 제어부(134)를 구비하는 점에서 상이하다.
따라서, 본 실시 형태(6)에 관한 프로세서 시스템은 상기 실시 형태(3)에 관한 프로세서 시스템과 실시 형태(4)에 관한 프로세서 시스템의 양방의 기능을 갖는 것이다. 그리고, 이러한 구성을 갖는 프로세서 시스템에 따르면 주프로세서(61)는 개개의 코프로세서(CPR0 내지 CPRn)마다 이제부터 실행하는 코프로세서 명령의 제어 의존성을 판단하고, 다른 코프로세서에서 실행되는 코프로세서 명령의 발행을 대기하는 일없이 코프로세서 명령을 발행하기 때문에, 코프로세서 명령을 코프로세서(CPR0 내지 CPRn)로 효율적으로 발행할 수 있다.
또한, 주프로세서(61)는 공급된 코프로세서 명령에 포함되는 명령 코드를 판독하는 것에 상관없이 현재 코프로세서 명령을 실행 중인지 아닌지를 나타내는 신호 busy에 따라 코프로세서 명령의 발행 타이밍을 결정하기 때문에, 메모리(63)로부터 공급되는 코프로세서 명령의 종류에 상관없이 효율적인 명령 발행 동작을 실현할 수도 있다.
[실시 형태 7]
도 20은 본 발명의 실시 형태(7)에 관한 프로세서 시스템의 구성을 나타내는 도면이다. 도 20에 나타내는 바와 같이, 이 프로세서 시스템은 도(13)에 나타낸 실시 형태(4)에 관한 프로세서 시스템과 유사한 구성을 가지지만, 주프로세서(71)에 포함된 명령 페치부(74)나 코프로세서 명령 제어부(75)나 명령 실행부(77)의 구성이 상이하는 것이다.
또한, 도 21은 도 20에 나타낸 코프로세서 명령 제어부(75)와 명령 실행부(77)의 구성을 나타내는 도면이다. 도 21에 나타내는 바와 같이, 코프로세서 명령 제어부(75) 및 명령 실행부(77)는 각각 도 14에 나타낸 코프로세서 명령 제어부(45) 및 명령 실행부(47)와 유사한 구성을 가지지만, 코프로세서 명령 제어부(75)는 각 코프로세서(CPR0 내지 CPRn)에 대응한 신호 busyn(n은 0이상의 정수)을 출력하는 스코어보드(114)를 구비하고, 명령 실행부(77)는 디코딩부(122) 및 레지스터(9)에 접속되어 상기 신호 busyn이 공급되는 동기 제어부(136)를 구비하는 점에서 상이하다.
이하에, 도 13에 나타낸 상기 실시 형태(4)에 관한 프로세서 시스템과 상이한 점에 관해서 설명한다.
우선, 본 실시 형태에 관한 메모리(73)에는 지정하는 코프로세서에 있어서 실행 중의 코프로세서 명령의 실행 완료를 대기하는 도 33에 나타낸 형식의 명령도 미리 기억된다. 여기서, 도 33에 나타낸 오퍼랜드에는 실행 완료 대기의 대상으로 하는 코프로세서를 지정하는 정보가 기록된다.
또한, 명령 페치부(74)는 지정된 코프로세서로써 실행 중의 코프로세서 명령의 실행 완료를 대기하는 명령을 판독한 경우에는 그 명령을 명령 실행부(77)로 공급한다. 그리고 명령 실행부(77)의 동기 제어부(136)는 공급된 명령에 있어서 지정되는 코프로세서(CPRn)에 대응한 코프로세서 명령 제어부(75)로부터 공급되는 신호 busyn(n은 0이상의 정수)이 0의 값을 가지고 있으면, 프로세서 실행 명령을 실행한다. 한편, 명령 실행부(77)의 동기 제어부(136)는 상기 명령을 수령했을 때 지정된 코프로세서(CPRn)에 관해서 코프로세서 명령 제어부(75)에서 1의 값을 갖는 신호 busyn이 공급되고 있으면 신호 busyn이 0이 된 시점에서 상기 프로세서 실행 명령을 실행하여 완료시킨다.
또한, 코프로세서 명령 제어부(75)의 스코어보드(114)는 지정된 코프로세서 (CPRn)가 코프로세서 명령을 실행 중인 경우에는 1의 값을 갖는 신호 busyn을 명령 실행부(77)의 동기 제어부(136)로 공급하고, 지정된 코프로세서(CPRn)가 코프로세서 명령을 실행 중이 아닌 경우에는 0의 값을 갖는 신호 busyn을 명령 실행부(77)의 동기 제어부(136)로 공급한다.
이상에서 본 실시 형태(7)에 관한 프로세서 시스템에 따르면 상기 실시 형태(4)에 관한 프로세서 시스템과 유사한 효과를 나타냄과 동시에, 또한 주프로세서(71)는 개개의 코프로세서(CPR0 내지 CPRn)마다 코프로세서 명령을 실행 중인지 아닌지를 판단하기 때문에, 다른 코프로세서에서 실행되는 코프로세서 명령의 발행을 대기하는 일없이 지정된 코프로세서로 코프로세서 명령이 발행된다. 따라서, 코프로세서 명령을 코프로세서(CPR0 내지 CPRn)으로 보다 효율적으로 발행할 수 있다.
또한 본 실시 형태(7)에 관한 프로세서 시스템에 있어서는 상기 실시 형태(1)에 관한 코프로세서 명령과 같이 처리의 예외에 의한 제어 의존이 발생할 가능성이 있는지 아닌지를 나타내는 필드 EXCEP가 오퍼랜드에 결합된 코프로세서 명령을 미리 메모리(73)에 기억시키고, 그러한 명령 형식에 대응한 구성을 갖는 것으로 할 수 있다.
즉, 이러한 구성에 있어서의 코프로세서 명령 제어부(75)의 발행 제어부(109)는 공급된 상기 코프로세서 명령의 필드 EXCEP가 0인 경우에는 명령 페치부(74)로부터 공급된 코프로세서 명령이 먼저 실행되는 코프로세서 명령과의 데이터 의존이 없는 경우에 코프로세서 명령을 CR(11)에 지정된 코프로세서로 발행 신호 In을 통하여 발행하고 발행 정보를 스코어보드(114)에 기입한다. 또한 반대로, 상기 데이터 의존이 있는 경우에는 코프로세서 명령 제어부(75)는 의존하고 있는 코프로세서 명령의 완료를 대기한 후 코프로세서 명령을 CR(11)에 지정된 코프로세서로 발행 신호 In을 통하여 발행하고 발행 정보를 스코어보드(114)에 기록한다.
한편, 공급된 코프로세서 명령의 필드 EXCEP가 1인 경우에는 항상, 먼저 실행되어 있는 코프로세서 명령의 완료를 대기한 후 코프로세서 명령을 CR(11)에 지정된 코프로세서로 발행 신호 In을 통하여 발행하고 발행 정보를 스코어보드(114)에 기록한다.
이상의 구성을 갖는 프로세서 시스템에 따르면 주프로세서(71)는 공급된 코프로세서 명령에 포함되는 명령 코드를 판독하는 것에 상관없이 오퍼랜드에 결합한 필드 EXCEP에 기록된 정보에 의해 코프로세서 명령의 발행 타이밍을 결정하기 때문에 메모리(73)로부터 공급되는 코프로세서 명령의 종류에 상관없이 더욱 효율적인 명령 발행 동작을 실현할 수 있다.
또한, 본 실시 형태에 있어서는 또한, n 개의 신호 busyn이 모두 0이 된 때에 비로소 명령 실행부가 프로세서 실행 명령을 실행하여 완료시키는 것도 마찬가지로 생각된다. 여기서 도 22는 이러한 시스템에 있어서의 명령 실행부(78)의 구성을 나타내는 도면이다. 도 22에 나타내는 바와 같이 명령 실행부(78)는 디코딩부(123) 및 레지스터부(9)에 접속되어 n 개의 신호 busyn이 공급되는 제1 동기 제어부(137)를 또한 구비하고, 제1 동기 제어부(137)는 상기 n 개의 신호 busyn이 모두 0이 된 때에 프로세서 실행 명령을 실행하여 완료시킨다.
[실시 형태 8]
도 24는 본 발명의 실시 형태(8)에 관한 프로세서 시스템의 구성을 나타내는 도면이다. 도 24에 나타내는 바와 같이 이 프로세서 시스템은 도 20에 나타낸 실시 형태(7)에 관한 프로세서 시스템과 유사한 구성을 가지지만, 주프로세서(81)에 포함된 명령 페치부(84), 코프로세서 명령 제어부(85), 명령 실행부(87)의 구성이 상이하고, 또한 플래그(29)를 구비한 것이다. 또한, 이 플래그(29)는 도 8에 나타낸 실시 형태(2)에 관한 플래그(29)와 같은 것이다.
또한, 도 25는 도 24에 나타낸 코프로세서 명령 제어부(85)와 명령 실행부(87)의 구성을 나타내는 도면이다. 도 25에 나타내는 바와 같이 코프로세서 명령 제어부(85) 및 명령 실행부(87)는 각각 도 21에 나타낸 코프로세서 명령 제어부(75) 및 명령 실행부(77)와 유사한 구성을 가지지만, 코프로세서 명령 제어부(85)는 플래그(29)에 접속된 예외 판단부(108)를 구비하고, 명령 실행부(87)는 디코딩부(124) 및 레지스터(26)에 접속되어 플래그(29)로의 기입을 제어하는 플래그 기입 제어부(133)를 또한 구비하는 점에서 상이하다.
따라서, 본 실시 형태(8)에 관한 프로세서 시스템은 상기 실시 형태(7)에 관한 프로세서 시스템과 실시 형태(2)에 관한 프로세서 시스템의 양방의 기능을 갖는 것이다.
여기서, 본 실시 형태(8)에 관한 프로세서 시스템에 따르면 상기 실시 형태(7)에 관한 프로세서 시스템과 마찬가지의 효과를 얻을 수 있음과 동시에, 주프로세서(81)는 공급된 코프로세서 명령에 포함되는 명령 코드를 판독하는 것에 상관없이 플래그(29)의 값에 따라 코프로세서 명령의 발행 타이밍을 결정하기 때문에, 메모리(83)로부터 공급되는 코프로세서 명령의 종류에 상관없이 효율적인 명령 발행 동작을 실현할 수 있다.
또한, 본 실시 형태(8)에 관한 프로세서 시스템에 있어서는 실시 형태(4)에 기록된 코프로세서 명령의 실행 완료를 대기하는 명령도 메모리(83)로 미리 기억시키고, 실시 형태(4)에 관한 프로세서 시스템과 마찬가지로 상기 명령의 실행도 가능한 것으로 할 수 있다. 이러한 구성을 갖는 프로세서 시스템에 따르면 주프로세서(81)는 공급된 코프로세서 명령에 포함되는 명령 코드를 판독하는 것에 상관없이, 적어도 하나의 코프로세서가 현재 코프로세서 명령을 실행 중인지 아닌지를 나타내는 신호 busy에 따라 프로세서 실행 명령을 실행하여 코프로세서 명령의 발행 타이밍을 결정하기 때문에, 메모리(83)로부터 공급되는 코프로세서 명령의 종류에 따라 더욱 효율적인 명령 발행 동작을 실현할 수 있다
또한, 본 실시 형태에 있어서는 또한, n 개의 신호 busyn이 모두 0이 된 때에 비로소 명령 실행부가 프로세서 실행 명령을 실행하여 완료시키는 것도 마찬가지로 생각된다. 여기서 도 26은 이러한 시스템에 있어서의 명령 실행부(88)의 구성을 나타내는 도면이다. 도 26에 나타내는 바와 같이 명령 실행부(88)는 디코딩부(125) 및 레지스터부(26)에 접속되어 n 개의 신호 busyn이 공급되는 제1 동기 제어부(137)를 또한 구비하고, 제1 동기 제어부(137)는 상기 n 개의 신호 busyn이 모두 0이 된 때에 프로세서 실행 명령을 실행하여 완료시킨다.
[실시 형태 9]
도 27은 본 발명의 실시 형태(9)에 관한 프로세서 시스템의 구성을 나타내는 도면이다. 도 27에 나타내는 바와 같이, 이 프로세서 시스템은 도 24에 나타낸 실시 형태(8)에 관한 프로세서 시스템과 유사한 구성을 가지지만, 주프로세서(91)에 포함된 명령 페치부(91), 코프로세서 명령 제어부(95), 명령 실행부(97)나 레지스터(66)의 구성이 상이하고, 또한 복수의 플래그 0에서 플래그 n을 구비한 것이다. 또한, 이 복수의 플래그는 도 10에 나타낸 실시 형태(3)에 관한 복수의 플래그 0에서 플래그 n과 같은 것이다.
또한, 도 28은 도 27에 나타낸 코프로세서 명령 제어부(95)와 명령 실행부(97)의 구성을 나타내는 도면이다. 도 28에 나타내는 바와 같이 코프로세서 명령 제어부(95) 및 명령 실행부(97)는 각각 도 25에 나타낸 코프로세서 명령 제어부(85) 및 명령 실행부(87)와 유사한 구성을 가지지만, 코프로세서 명령 제어부(95)는 플래그 0에서 플래그 n에 접속된 예외 판단부(108)를 구비하고, 명령 실행부(97)는 디코딩부(126) 및 레지스터(66)에 접속되어 플래그 0에서 플래그 n으로의 기입을 제어하는 플래그 기입 제어부(134)를 구비하는 점에서 상이하다.
따라서, 본 실시 형태(9)에 관한 프로세서 시스템은 상기 실시 형태(3)에 관한 프로세서 시스템과 실시 형태(7)에 관한 프로세서 시스템의 양방의 기능을 갖는 것이다. 그리고, 이러한 구성을 갖는 프로세서 시스템에 따르면 주프로세서(91)는 개개의 코프로세서(CPR0 내지 CPRn)마다 이제부터 실행하는 코프로세서 명령의 제어 의존성을 판단하고, 다른 코프로세서에서 실행되는 코프로세서 명령의 발행을 대기하는 일없이 코프로세서 명령을 발행하기 때문에, 코프로세서 명령을 코프로세서(CPR0 내지 CPRn)로 효율적으로 발행할 수 있다.
또한, 주프로세서(91)는 공급된 코프로세서 명령에 포함되는 명령 코드를 판독하는 것에 상관없이 지정된 코프로세서가 현재 코프로세서 명령을 실행 중인지 아닌지를 나타내는 신호 busyn에 따라 코프로세서마다 코프로세서 명령의 발행 타이밍을 결정하기 때문에, 메모리(93)로부터 공급되는 코프로세서 명령의 종류에 상관없이 효율적인 명령 발행 동작을 실현할 수도 있다.
또한, 본 실시 형태(9)에 관한 프로세서 시스템에 있어서는, 실시 형태(4)에 기록된 코프로세서 명령의 실행 완료를 대기하는 명령도 메모리(93)로 미리 기억시키고, 실시 형태(4)에 관한 프로세서 시스템과 마찬가지로 상기 명령의 실행도 가능한 것으로 할 수 있다. 이러한 구성을 갖는 프로세서 시스템에 따르면 주프로세서(91)는 공급된 코프로세서 명령에 포함되는 명령 코드를 판독하는 것에 상관없이 적어도 하나의 코프로세서가 현재 코프로세서 명령을 실행 중인지 아닌지를 나타내는 신호 busy에 따라 프로세서 실행 명령을 실행하여 코프로세서 명령의 발행 타이밍을 결정하기 때문에, 메모리(93)로부터 공급되는 코프로세서 명령의 종류에 따라 더욱효율적인 명령 발행 동작을 실현할 수 있다
또한, 본 실시 형태에 있어서는 또한, n 개의 신호 busyn이 모두 0이 된 때에 비로소 명령 실행부가 프로세서 실행 명령을 실행하여 완료시키는 것도 마찬가지로 생각된다. 여기서 도 29는 이러한 시스템에 있어서의 명령 실행부(98)의 구성을 나타내는 도면이다. 도 29에 나타내는 바와 같이 명령 실행부(98)는 디코딩부(127) 및 레지스터부(66)에 접속되어 n 개의 신호 busyn이 공급되는 제1 동기 제어부(137)를 또한 구비하고, 제1 동기 제어부(137)는 상기 n 개의 신호 busyn이 모두 0이 된 때에 프로세서 실행 명령을 실행하여 완료시킨다.
마지막으로, 본 발명의 과제를 해결하기 위한 수단에 관해서 부기한다.
(1) 코프로세서에 접속되는 프로세서로서, 프로세서는 코프로세서에 있어서의 실행을 명령하는 제1 코프로세서 명령이 공급된 때에 제1 코프로세서 명령에 대응하는 의존 가능성 표시 데이터에 기초하여 제1 코프로세서 명령이 코프로세서에 있어서 먼저 실행되는 제2 코프로세서 명령에 대하여 제어 의존성을 가질 가능성이 있다고 판단한 경우에는, 제2 코프로세서 명령의 실행이 완료한 후에 제1 코프로세서 명령을 코프로세서로 발행하는 것을 특징으로 하는 프로세서.
(2) 의존 가능성 표시 데이터는 제1 코프로세서 명령에 결합됨과 동시에, 제1 코프로세서 명령이 제어 의존성을 가질 가능성이 있는지 아닌지를 나타내는 필드로 이루어지는 (1)에 기재된 프로세서.
(3) 의존 가능성 표시 데이터는 공급되는 신호에 의해 재기록 가능한 플래그에 저장되는 (1)에 기재된 프로세서.
(4) 플래그에 저장되는 의존 가능성 표시 데이터는 제1 코프로세서가 제2 코프로세서 명령에 대하여 제어 의존성을 가질 가능성이 있는지 아닌지를 나타내는 (3)에 기재된 프로세서.
(5) 적어도 두개의 코프로세서에 접속되고 플래그는 코프로세서마다 대응하여 구비된 (3)에 기재된 프로세서.
(6) 코프로세서에 접속된 프로세서로서, 코프로세서가 제1 코프로세서 명령을 실행 중인지 아닌지를 나타내는 신호를 생성하는 신호 생성 수단과, 코프로세서가 제1 코프로세서 명령을 실행 중인 것을 나타내는 실행 표시 신호가 신호 생성 수단으로부터 공급되고 있는 경우에는 신호 생성 수단으로부터 실행의 완료를 나타내는 실행 완료 신호가 공급된 때에 프로세서 실행 명령을 실행하는 명령 실행 수단을 구비한 것을 특징으로 하는 프로세서.
(7) 적어도 두개의 코프로세서에 접속되고, 신호 생성 수단은 코프로세서마다 대응하여 실행 중인지 아닌지를 나타내는 신호를 생성하며, 명령 실행 수단은 지정된 코프로세서에 대응하는 실행 표시 신호가 신호 생성 수단으로부터 공급되고 있는 경우에는 신호 생성 수단으로부터 지정된 코프로세서에 대응하는 실행 완료 신호가 공급된 때에 프로세서 실행 명령을 실행하는 (6)에 기재된 프로세서.
(8) 명령 실행 수단은 적어도 하나의 코프로세서가 코프로세서 명령을 실행 중인 것을 나타내는 신호가 공급되고 있는 경우에는 모든 코프로세서에 있어서의 실행의 완료를 나타내는 신호가 공급된 때에 프로세서 실행 명령을 실행하는 (7)에 기재된 프로세서.
(9) 공급되는 신호에 의해 재기록 가능한 플래그와, 코프로세서 명령이 공급되었을 때 플래그가 소정의 값인 경우에는 코프로세서에서 실행 중인 코프로세서 명령의 실행이 완료한 후에 다음 코프로세서 명령을 코프로세서로 발행하는 명령 발행 수단을 또한 구비한 (6)에서 (8) 중 어느 하나에 기재된 프로세서
(10) 코프로세서와 코프로세서에 접속된 주프로세서를 갖는 프로세서 시스템으로서, 주프로세서는 코프로세서에 있어서의 실행을 명령하는 제1 코프로세서 명령이 공급된 때에, 제1 코프로세서 명령에 대응하는 의존 가능성 표시 데이터에 기초하여 제1 코프로세서 명령이 코프로세서에 있어서 먼저 실행되는 제2 코프로세서 명령에 대하여 제어 의존성을 가질 가능성이 있다고 판단한 경우에는, 제2 코프로세서 명령의 실행이 완료한 후에 제1 코프로세서 명령을 코프로세서로 발행하는 것을 특징으로 하는 프로세서 시스템.
(11) 의존 가능성 표시 데이터는 제1 코프로세서 명령에 결합됨과 동시에, 제1 코프로세서 명령이 제어 의존성을 가질 가능성이 있는지 아닌지를 나타내는 필드로 이루어지는 (10)에 기재된 프로세서 시스템.
(12) 의존 가능성 표시 데이터는 공급되는 신호에 의해 재기록 가능한 플래그에 저장되는 (10)에 기재된 프로세서 시스템.
(13) 플래그에 저장되는 의존 가능성 표시 데이터는 제1 코프로세서가 제2 코프로세서 명령에 대하여 제어 의존성을 가질 가능성이 있는지 아닌지를 나타내는 것인 (12)에 기재된 프로세서 시스템.
(14) 적어도 두개의 코프로세서를 가지고, 플래그는 코프로세서마다 대응하여 구비된 (12)에 기재된 프로세서 시스템.
(15) 코프로세서와 코프로세서에 접속된 주프로세서를 갖는 프로세서 시스템으로서, 주프로세서는 코프로세서가 제1 코프로세서 명령을 실행 중인지 아닌지를 나타내는 신호를 생성하는 신호 생성 수단과, 코프로세서가 제1 코프로세서 명령을 실행 중인 것을 나타내는 실행 표시 신호가 신호 생성 수단으로부터 공급되고 있는 경우에는, 신호 생성 수단으로부터 실행의 완료를 나타내는 실행 완료 신호가 공급된 때에 프로세서 실행 명령을 실행하는 명령 실행 수단을 구비한 것을 특징으로 하는 프로세서 시스템.
(16) 적어도 두개의 코프로세서를 구비하고, 신호 생성 수단은 코프로세서마다 대응하여 실행 중인지 아닌지를 나타내는 신호를 생성하며, 명령 실행 수단은 지정된 코프로세서에 대응하는 실행 표시 신호가 신호 생성 수단으로부터 공급되고 있는 경우에는 신호 생성 수단으로부터 지정된 코프로세서에 대응하는 실행 완료 신호가 공급된 때에 프로세서 실행 명령을 실행하는 (15)에 기재된 프로세서 시스템.
(17) 명령 실행 수단은 적어도 하나의 코프로세서가 코프로세서 명령을 실행 중인 것을 나타내는 신호가 공급되고 있는 경우에는 모든 코프로세서에 있어서의 실행의 완료를 나타내는 신호가 공급된 때에 프로세서 실행 명령을 실행하는 (16)에 기재된 프로세서 시스템.
(18) 주프로세서는 공급되는 신호에 의해 재기록 가능한 플래그와, 코프로세서 명령이 공급되었을 때 플래그가 소정의 값인 경우에는 코프로세서에서 실행 중인 코프로세서 명령의 실행이 완료한 후에 다음 코프로세서 명령을 코프로세서로 발행하는 명령 발행 수단을 또한 구비한 (15)에서 (17) 중 어느 하나에 기재된 프로세서 시스템.
전술한 바와 같이, 본 발명에 관한 프로세서 시스템에 따르면 의존 가능성 표시 데이터에 기초하여 제1 코프로세서 명령에 있어서의 제어 의존의 가능성이 용이하게 판단되기 때문에 제어 의존의 가능성이 없는 코프로세서 명령에 관해서는 투기적인 명령의 발행을 신속히 행할 수 있다.
또한, 주프로세서는 의존 가능성 표시 데이터에 기초하여 제1 코프로세서 명령의 제어 의존성을 판단하기 때문에 제1 코프로세서 명령의 종류에 상관없이 그 구성을 통일적으로 결정할 수 있다. 따라서, 주프로세서가 코프로세서에 대한 호환성을 갖는다고 하는 의미에서 투기적인 명령 발행의 능력을 향상시킬 수 있다.

Claims (4)

  1. 코프로세서에 접속되는 프로세서에 있어서,
    상기 프로세서는 상기 코프로세서에 있어서의 실행을 명령하는 제1 코프로세서 명령이 공급된 때에, 상기 제1 코프로세서 명령에 대응하는 의존 가능성 표시 데이터에 기초하여, 상기 제1 코프로세서 명령이 상기 코프로세서에 있어서 먼저 실행되는 제2 코프로세서 명령에 대하여 제어 의존성을 가질 가능성이 있다고 판단한 경우에는, 상기 제2 코프로세서 명령의 실행이 완료한 후에 상기 제1 코프로세서 명령을 상기 코프로세서로 발행하는 것을 특징으로 하는 프로세서.
  2. 코프로세서에 접속된 프로세서에 있어서,
    상기 코프로세서가 제1 코프로세서 명령을 실행 중인지 아닌지를 나타내는 신호를 생성하는 신호 생성 수단과,
    상기 코프로세서가 상기 제1 코프로세서 명령을 실행 중인 것을 나타내는 실행 표시 신호가 상기 신호 생성 수단으로부터 공급되고 있는 경우에는 상기 신호 생성 수단으로부터 상기 실행의 완료를 나타내는 실행 완료 신호가 공급된 때에 프로세서 실행 명령을 실행하는 명령 실행 수단을 구비한 것을 특징으로 하는 프로세서.
  3. 코프로세서와 상기 코프로세서에 접속된 주프로세서를 갖는 프로세서 시스템에 있어서,
    상기 주프로세서는 상기 코프로세서에 있어서의 실행을 명령하는 제1 코프로세서 명령이 공급된 때에, 상기 제1 코프로세서 명령에 대응하는 의존 가능성 표시 데이터에 기초하여, 상기 제1 코프로세서 명령이 상기 코프로세서에 있어서 먼저 실행되는 제2 코프로세서 명령에 대하여 제어 의존성을 가질 가능성이 있다고 판단한 경우에는, 상기 제2 코프로세서 명령의 실행이 완료한 후에 상기 제1 코프로세서 명령을 상기 코프로세서로 발행하는 것을 특징으로 하는 프로세서 시스템.
  4. 코프로세서와 상기 코프로세서에 접속된 주프로세서를 갖는 프로세서 시스템에 있어서, 상기 주프로세서는
    상기 코프로세서가 제1 코프로세서 명령을 실행 중인지 아닌지를 나타내는 신호를 생성하는 신호 생성 수단과,
    상기 코프로세서가 상기 제1 코프로세서 명령을 실행 중인 것을 나타내는 실행 표시 신호가 상기 신호 생성 수단으로부터 공급되고 있는 경우에는 상기 신호 생성 수단으로부터 상기 실행의 완료를 나타내는 실행 완료 신호가 공급된 때에 프로세서 실행 명령을 실행하는 명령 실행 수단을 구비한 것을 특징으로 하는 프로세서 시스템.
KR1020000056669A 1999-10-15 2000-09-27 프로세서 및 프로세서 시스템 KR20010050661A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP99-294580 1999-10-15
JP29458099A JP4160705B2 (ja) 1999-10-15 1999-10-15 プロセッサ及びプロセッサシステム

Publications (1)

Publication Number Publication Date
KR20010050661A true KR20010050661A (ko) 2001-06-15

Family

ID=17809630

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000056669A KR20010050661A (ko) 1999-10-15 2000-09-27 프로세서 및 프로세서 시스템

Country Status (4)

Country Link
US (1) US6775762B1 (ko)
EP (2) EP1093053A3 (ko)
JP (1) JP4160705B2 (ko)
KR (1) KR20010050661A (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140325175A1 (en) * 2013-04-29 2014-10-30 Pact Xpp Technologies Ag Pipeline configuration protocol and configuration unit communication
GB2366426B (en) * 2000-04-12 2004-11-17 Ibm Coprocessor data processing system
US6842849B2 (en) 2001-05-21 2005-01-11 Arm Limited Locking source registers in a data processing apparatus
US7073048B2 (en) * 2002-02-04 2006-07-04 Silicon Lease, L.L.C. Cascaded microcomputer array and method
US20050055594A1 (en) * 2003-09-05 2005-03-10 Doering Andreas C. Method and device for synchronizing a processor and a coprocessor
US7516302B2 (en) * 2006-12-19 2009-04-07 Arm Limited Efficient use of co-processor in platform independent instruction machine by controlling result transfer and translation and transfer timing of subsequent instruction based on instruction type for result forwarding
GB2539411B (en) * 2015-06-15 2017-06-28 Bluwireless Tech Ltd Data processing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0313097A2 (en) * 1987-10-22 1989-04-26 Nec Corporation Microcomputer system including master processor and slave processor
US5197138A (en) * 1989-12-26 1993-03-23 Digital Equipment Corporation Reporting delayed coprocessor exceptions to code threads having caused the exceptions by saving and restoring exception state during code thread switching
KR19980019064A (ko) * 1996-08-27 1998-06-05 모리시다 요이치 복수의 명령 흐름을 독립적으로 처리하고, 명령 흐름 단위로 처리 성능을 유연하게 제어하는 멀티스레드 프로세서(Multithreaded Processor for Processing Multiple Instruction Streams Independently of Each Other by Flexibly Controlling Throughput in Each Instruction Stream)
KR19980028626A (ko) * 1996-10-23 1998-07-15 양승택 고속병렬컴퓨터에서 태스크 병렬성을 위한 태스크간 통신 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE454920B (sv) * 1986-10-03 1988-06-06 Ellemtel Utvecklings Ab Sett och anordning for att i en pa forhand avgjord ordningsfoljd exekvera tva instruktionssekvenser medelst separatminnen
EP0306891A3 (en) * 1987-09-11 1992-04-01 National Semiconductor Corporation Pipelined slave protocol for high performance cpu-fpu cluster
DE3886203T2 (de) * 1988-04-02 1994-05-19 Ibm Prozessor-Prozessor-Synchronisierung.
US6327648B1 (en) * 1994-12-09 2001-12-04 Cirrus Logic, Inc. Multiprocessor system for digital signal processing
US5790880A (en) * 1996-01-04 1998-08-04 Advanced Micro Devices Microprocessor configured to dynamically connect processing elements according to data dependencies
US5781752A (en) * 1996-12-26 1998-07-14 Wisconsin Alumni Research Foundation Table based data speculation circuit for parallel processing computer
US5923893A (en) * 1997-09-05 1999-07-13 Motorola, Inc. Method and apparatus for interfacing a processor to a coprocessor
US5961630A (en) * 1997-12-30 1999-10-05 Intel Corporation Method and apparatus for handling dynamic structural hazards and exceptions by using post-ready latency

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0313097A2 (en) * 1987-10-22 1989-04-26 Nec Corporation Microcomputer system including master processor and slave processor
US5197138A (en) * 1989-12-26 1993-03-23 Digital Equipment Corporation Reporting delayed coprocessor exceptions to code threads having caused the exceptions by saving and restoring exception state during code thread switching
KR19980019064A (ko) * 1996-08-27 1998-06-05 모리시다 요이치 복수의 명령 흐름을 독립적으로 처리하고, 명령 흐름 단위로 처리 성능을 유연하게 제어하는 멀티스레드 프로세서(Multithreaded Processor for Processing Multiple Instruction Streams Independently of Each Other by Flexibly Controlling Throughput in Each Instruction Stream)
KR19980028626A (ko) * 1996-10-23 1998-07-15 양승택 고속병렬컴퓨터에서 태스크 병렬성을 위한 태스크간 통신 방법

Also Published As

Publication number Publication date
US6775762B1 (en) 2004-08-10
EP1093053A2 (en) 2001-04-18
EP2278453A1 (en) 2011-01-26
EP2278453B1 (en) 2013-05-15
JP4160705B2 (ja) 2008-10-08
JP2001117886A (ja) 2001-04-27
EP1093053A3 (en) 2005-12-21

Similar Documents

Publication Publication Date Title
US6301705B1 (en) System and method for deferring exceptions generated during speculative execution
US5909565A (en) Microprocessor system which efficiently shares register data between a main processor and a coprocessor
TW539996B (en) Processor and method including a cache having confirmation bits for improving address-predictable branch instruction target predictions
US6088781A (en) Stride instruction for fetching data separated by a stride amount
US6338134B1 (en) Method and system in a superscalar data processing system for the efficient processing of an instruction by moving only pointers to data
US20060265569A1 (en) Processor for improving instruction utilization using multiple parallel processors and computer system equipped with the processor
EP0378415A2 (en) Multiple instruction dispatch mechanism
US6449713B1 (en) Implementation of a conditional move instruction in an out-of-order processor
JP2535252B2 (ja) 並列処理装置
KR20010050661A (ko) 프로세서 및 프로세서 시스템
JPH1165839A (ja) プロセッサの命令制御機構
EP0223150B1 (en) Information processing apparatus
JP3146077B2 (ja) プロセッサ
JPH06242952A (ja) スーパースカラ・プロセッサにおける命令処理の選択的逐次化の方法およびシステム
JPS62226231A (ja) プロセツサ
EP1109096A2 (en) Processor and method of controlling the same
KR100241970B1 (ko) 파이프라인 처리를 수행하는 데이터 처리 장치
JPH05241827A (ja) 命令バッファ制御装置
JPS6232508B2 (ko)
EP1026581A2 (en) System and method for controlling program execution
JP3762597B2 (ja) 計算機とその制御方法
JP3325309B2 (ja) サブルーチンリターン命令処理装置
JP3437135B2 (ja) プログラム実行制御システム及びその方法
JP2856784B2 (ja) 電子計算機
JP2987281B2 (ja) プロセッサ

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20070123

Effective date: 20071129