JPH0793152A - マイクロプロセッサ制御装置 - Google Patents

マイクロプロセッサ制御装置

Info

Publication number
JPH0793152A
JPH0793152A JP5233768A JP23376893A JPH0793152A JP H0793152 A JPH0793152 A JP H0793152A JP 5233768 A JP5233768 A JP 5233768A JP 23376893 A JP23376893 A JP 23376893A JP H0793152 A JPH0793152 A JP H0793152A
Authority
JP
Japan
Prior art keywords
instruction
instructions
unit
program order
transferred
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
JP5233768A
Other languages
English (en)
Inventor
Hajime Kubosawa
元 久保沢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP5233768A priority Critical patent/JPH0793152A/ja
Priority to US08/272,939 priority patent/US5682521A/en
Publication of JPH0793152A publication Critical patent/JPH0793152A/ja
Withdrawn legal-status Critical Current

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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution

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

(57)【要約】 【目的】 演算命令を解読する命令デコード部と、当該
演算命令のオペランドを保持するオペランド保持部と、
演算命令を実行する複数個の演算ユニットとを有し、1
サイクル毎に所定個数の命令の実行が可能なマイクロプ
ロセッサ制御装置に関し、高速かつ効率良く命令実行を
行うことを目的とする。 【構成】 転送された演算命令及びオペランドを待機さ
せるとともに、実行可能な演算命令が前記所定個数以下
転送されている場合には当該演算命令及びオペランドの
選択、実行可能な演算命令の個数が前記所定個数より多
く転送されている場合には前記所定個数分の演算命令及
びオペランドのプログラム順に従う選択、並びに、選択
した演算命令及びオペランドについて各演算ユニットへ
の発行を行う命令待機部を有するように構成する。

Description

【発明の詳細な説明】
【産業上の利用分野】本発明はマイクロプロセッサの制
御装置に係り、特に、演算命令を解読する命令デコード
部と、当該演算命令のオペランドを保持するオペランド
保持部と、当該演算命令を実行する複数個の演算ユニッ
トとを有し、1クロックサイクル毎に所定個数の命令の
実行が可能なマイクロプロセッサ制御装置に関する。
【0001】このように、複数の演算ユニットを有し1
クロックサイクルに複数の命令を実行できれば、同じプ
ログラムを同一のクロック周波数を持つ単一命令実行し
かできないプロセッサで実行した場合に比べ、より短時
間で実行が終了する。従って、命令実行速度が実効的に
向上することになり、プロセッサの性能向上につなが
る。
【0002】
【従来の技術】図16に複数命令の実行を可能としたマ
イクロプロセッサの構成を示す。当該マイクロプロセッ
サは1クロックサイクルに複数命令の実行が可能であっ
て、同図に示すように、演算命令を解読する命令デコー
ド部92と、演算命令のオペランドを保持するレジスタ
ファイル93と、当該演算命令を実行する複数の演算ユ
ニット901 ,902 と、プログラム順に順次命令を保
持し、プログラム順に前記演算ユニット901 ,902
に送出するレジスタ951 〜954 と、レジスタ951
が空になった場合に発行された命令及びオペランドを選
択してレジスタ951 に命令及びオペランドを入力させ
るエントリ更新制御回路95aと、当該エントリ更新制
御回路95aの指示により選択を行うセレクタ95b,
95cと、レジスタ954 に保持された演算命令及びオ
ペレータを演算ユニット90 1 ,902 のどちらか一方
への発行を選択するセレクタ95dとを有する。
【0003】尚、レジスタ951 〜954 、エントリ更
新制御回路95a、及びセレクタ95b,95c,95
dはFIFOを構成し、RS(Reservation Station) 9
5に相当するものである。命令(プログラム)とデータ
が格納されているメモリから読み出された命令は、命令
デコードユニット92に渡される。1サイクルで2命令
をメモリから読み出す。命令デコードユニット92では
命令の解読(デコード)を行い、RS95の空き状態を
見て命令を転送する。命令転送も1サイクルに2命令行
えるとする。RS95は演算ユニット901 ,902
1個のRS95を共有している。
【0004】RS95は命令デコードユニットから命令
を転送された時点で命令を実行するために必要なオペラ
ンドが揃っている場合は演算ユニットに命令とオペラン
ドを渡し、そうでない場合は必要なオペランドが揃うま
でRS95内で命令実行を待たせる。例えば、1サイク
ルで平行して実行可能な2命令の読出しがあった場合に
も、先に転送された命令が実行可能状態にならない限
り、後に転送された方の命令がたとえ実行可能状態であ
っても実行されないようにしている。
【0005】尚、図16ではRS94のレジスタの個数
は4となっているが一般には何個であっても構わない。
演算ユニットは1サイクルあるいは複数のクロックサイ
クルで演算を実行し結果をレジスタファイル93とRS
95に書き込む。また説明を簡略化するためRS95動
作に直接関連のないプロセッサの機構は省略している。
さらに図16では演算ユニットの数は2となっているが
一般には何個あっても構わない。またメモリからの命令
供給数及び命令発行数は1サイクルに2個となっている
が一般には何個あっても構わない。
【0006】
【発明が解決しようとする課題】さて、一般的に、従来
では、RS95は1クロックサイクルで同時にm命令の
実行を開始できるとする(m個の演算ユニットに接続さ
れている)場合、m個以内の命令が転送されたとして
も、最初に転送された命令が実行されない限り、後に転
送された命令が実行可能であっても当該命令は実行され
ることはなく、命令の実行開始までに時間がかかり、命
令実行速度を十分に高めることができないおそれがある
という問題点を有していた。
【0007】しかし、あるクロックサイクルでn個(n
>m)の命令が同時に実行可能な状態になりn個の命令
の中からm個を選んで実行の必要がある場合、命令が転
送順番を無視して実行をすると、いつまでも実行されな
い命令が残るという問題点を有していた。
【0008】そこで、本発明は、複数命令、即ち、所定
個数(m個)の命令が同時実行できるプロセッサにおい
て、所定個数以内の命令が転送された場合には、転送順
序に拘わらず、実行可能になった順に命令を実行する
が、あるクロックサイクルでn個(n>m)の命令が同
時に実行可能な状態になったときには、n個の命令の中
から命令が転送された順に所定個数を選んで実行を開始
することにより、高速にかつ効率良く命令実行を行うこ
とのできるマイクロプロセッサ制御装置を提供すること
を目的としてなされたものである。
【0009】
【課題を解決するための手段】以上の技術的課題を解決
するため、本発明は、図1に示すように、演算命令を解
読する命令デコード部20と、当該演算命令のオペラン
ドを保持するオペランド保持部30と、当該演算命令を
実行する複数個の演算ユニット101 〜10nとを有
し、1クロックサイクル毎に所定個数の命令の実行が可
能なマイクロプロセッサにおいて、命令デコード部(2
0)から転送された演算命令及びオペランドを待機させ
るとともに、実行可能な演算命令が前記所定個数以下転
送されている場合には当該演算命令及びオペランドの選
択、実行可能な演算命令が前記所定個数より多く転送さ
れている場合には前記所定個数分の演算命令及びオペラ
ンドのプログラム順序に従う選択、並びに、選択した演
算命令及びオペランドの各演算ユニット101 〜10n
への発行を行う命令待機部40を有するものである。
【0010】ここで、「所定個数」とは、1サイクルで
実行可能な演算命令の個数をいい、原則として演算ユニ
ット101 〜10n の個数と一致すべきであるが、当該
演算ユニット101 〜10n の個数より小さくても良
い。尚、所定個数よりも多い命令が転送された場合に
「プログラム順序に従う選択」を行うのは、いつまでも
実行されない演算命令が残ってしまうのを避けるためで
ある。
【0011】このように本発明では、従来例と異なり、
命令の実行順は、命令デコード部20からの転送順に機
械的に固定されているものではなく、転送された命令が
前記所定個数以下の場合には、実行可能となった命令か
ら順次実行されることになるので、実行速度及び実行効
率が向上することになる。
【0012】さらに、図2には、本発明の第一の実施態
様として、前記命令待機部41は、演算命令のプログラ
ム順序に演算命令及びオペランドを移動可能に保持する
命令プログラム順保持部50と、転送された演算命令が
実行可能か否かの判定、及び、その判定結果を示す情報
の各命令への付加を行う実行可能性判定部60と、実行
可能な命令が前記所定個数以下転送されている場合には
当該演算命令及びオペランドの選択、実行可能な演算命
令が前記所定個数より多く転送されている場合には前記
命令プログラム順保持部50の保持位置に基づく前記所
定個数分の演算命令及びオペランドのプログラム順に従
う選択、並びに、選択された命令及びオペランドの前記
演算ユニット101 〜10n への発行を行う命令選択部
70とを有するものである。
【0013】図3には、本発明の第二の実施態様とし
て、前記命令待機部42は、演算命令及びオペランドを
保持する命令保持部51と、転送された演算命令のプロ
グラム順序を示すプログラム順情報を前記命令保持部5
1に保持された演算命令に付加するプログラム順情報付
加部80と、転送された演算命令の実行可能性の判定、
及び、その判定結果を示す情報の前記命令保持部51に
保持された各命令への付加を行う実行可能性判定部60
と、実行可能な命令が前記所定個数以下転送されている
場合には当該演算命令及びオペランドの選択、実行可能
な演算命令が前記所定個数より多く転送されている場合
には前記プログラム順情報に基づく前記所定個数分の演
算命令及びオペランドのプログラム順に従う選択、並び
に、選択された命令及びオペランドの前記演算ユニット
101 〜10n への発行を行う命令選択部71とを有す
るものである。
【0014】
【作用】演算命令が前記命令デコード部20から転送さ
れると、当該演算命令は、前記命令待機部40で演算実
行のために待機する。その際、前記オペランド保持部3
0から、当該演算命令の演算対象のオペランドの送出等
があると演算命令の実行が可能となる。
【0015】このようにして、演算実行可能な演算命令
が前記命令待機部40に待機している場合に、実行可能
な演算命令の個数が前述した所定個数以下の場合には、
待機している命令の転送順に拘わらず、実行可能な演算
命令及びオペランドを選択して、前記演算ユニット10
1 〜10n に送出して、演算命令を実行させることにな
る。
【0016】一方、演算実行可能な演算命令の個数が前
述した所定個数より多い場合には、演算命令のプログラ
ム(出現)順に数えた前記所定個数分の演算命令及びオ
ペランドを実行すべきものとして選択して前記各演算ユ
ニット101 〜10n に発行して実行させることにな
る。
【0017】さらに、第一の実施態様では、前記命令待
機部40として、実行可能性判定部60、命令プログラ
ム順保持部50及び命令選択部70を設けたものであ
り、実行可能性判定部60を利用することにより、実行
可能な演算命令の判定を容易に、かつ高速確実に行っ
て、実行可能な演算命令をその転送順に拘わらず実行す
るようにしている。
【0018】同様に、第二の実施態様では、前記命令待
機部42として、実行可能性判定部60、命令保持部5
1、命令選択部71及びプログラム順情報付加部80を
設けたものであり、第一の実施態様と同様に、実行可能
性判定部60を用いることにより、実行可能な演算命令
の判定を容易にし、高速確実に実行可能性を判定して、
実行可能な演算命令をそのプログラム順に拘わらず、高
速に実行するようにしている。さらに、第一の実施態様
とは異なり、前記命令プログラム順保持部50に代え
て、命令保持部51及びプログラム順情報付加部80を
設けたものである。したがって、転送された命令は、前
記プログラム順保持部50によりそのプログラム順にし
たがって移動させる必要はなく、プログラム順情報付加
部80によりそのプログラム順を示すプログラム順情報
を付加させるだけで済む。したがって、命令保持部51
の構造はプログラム順保持部50に比較して簡単化する
ことができる。
【0019】
【実施例】続いて、本発明の実施例について説明する。
図4には本実施例に係る全体ブロック図を示す。同図に
示すように、本実施例にあっては、命令(プログラム)
とデータが格納されているメモリ9と、命令バッファ1
1と、1サイクルで所定個数として2個の演算命令の読
出しが可能であって、命令のデコードを行いRS4の空
き状態を見て命令を転送する命令デコードユニット2
と、オペランドを保持するオペランド保持部30に相当
するレジスタファイル3とを有する。また、転送された
演算命令及びオペランドを待機させるとともに、実行可
能な演算命令の個数が前記所定個数以下の場合には、プ
ログラム順序に拘わらず実行可能な演算命令及びオペラ
ンドを選択して各演算ユニット11 ,12 へ発行し、実
行可能な演算命令の個数が前記所定個数より多い場合に
は、演算命令のプログラム順に数えた前記所定個数分の
演算命令及びオペランドを選択して各演算ユニット
1 ,12 へ発行する命令待機部40に相当するRS(R
eservation Station) と、前記演算命令を1サイクル又
は複数のクロックサイクルで演算を実行しレジスタファ
イル3とRS4に書き込む演算ユニット11 ,12 とを
有する。
【0020】尚、本例では、RS動作に直接関係のない
プロセッサの機構は省略している。また、前記RS4
は、前記所定個数と一致する2個の演算ユニット11
2により共有されている命令とオペランドの一種のバ
ッファでもある。さらに、図4に示した実施例では、演
算ユニットの数を2個としているが、一般には何個あっ
ても構わない。また、メモリ9からの命令供給数及び命
令発行数は1サイクルに2個としているが、一般にはこ
れらに限られるものではない。
【0021】図5には第一の実施例に係る要部ブロック
図を示す。同図に示すように、前記RS(命令待機部)
4は、演算命令を保持する間、演算命令のプログラム順
序に応じて移動可能な保持位置をもって演算命令及びオ
ペランドを保持する命令プログラム順保持部5と、転送
された演算命令のオペランドが得られたか否か等に応じ
て各レジスタに保持されている当該演算命令が実行可能
か否かの判定を行い、実行可能か否かを表すvビット
(例えば“1”の場合に実行可能)を各命令に付加する
依存関係検査回路(Dependency-check回路)からなる実
行可能性判定部6と、実行可能な命令が前記所定個数
(2個)以下の場合には、前記命令プログラム順保持部
5に保持されている命令の保持位置に拘わらず、当該命
令を選択し、実行可能な命令が前記所定個数より多い場
合には、前記命令プログラム順保持部5の保持位置に基
づいて、前記所定個数分をプログラム順に選択して前記
演算ユニット11 ,12 に発行する命令選択回路7とを
有する。
【0022】ここで、「依存関係(Dependency)がある状
態」とは、現在デコード中の命令の入力データのレジス
タアドレスが現在実行中の命令の出力を書き込むレジス
タアドレスと一致している状態(レジスタ番号の競
合)。また、現在デコード中の命令が実行のために使用
するハードウェア(演算器)が現在実行中の命令によっ
て使用されており、例えば次のクロックサイクルでデコ
ード中の命令を実行しようとした時に、そのハードウェ
アがまだ使用されている状態(ハードウェアリソースの
競合)をいう。また、プロセッサのインクリメントの仕
方によってはこの他の場合でも依存関係と見なされるこ
とがある。
【0023】当該依存関係検査回路は、例えば、図9の
例に示すように、あるサイクルで実行されているハード
ウェアの種類(命令コード)、使用されている出力レジ
スタ番号をレジスタに記憶しておき、デコード中の命令
のコード、番号との比較を行う。比較器はEXNOR論
理ゲートを用いて構成することができる。尚、図9で
は、実行ステージは2段のパイプラインで構成されてい
るとし(EX1,EX2)同時に2命令をデコード及び
実行できるとした。但し、同種の命令は2命令同時に実
行できないものとする。図中、デコードの命令は両方と
もADD演算である。これは、同時に同種の演算を実行
できないとした仮定に反するのでリソース競合となる。
ADD8,6,4の命令は1サイクル待たされる。また
EX1で実行中の命令の出力レジスタ6,12はデコー
ド中の入力レジスタ番号と一致している。これは次のク
ロックサイクルでこれらのレジスタ6,12は確定して
いない(EX2ステージで実行中である)ことを示して
いる。これはレジスタ競合である。結局デコード中の2
個のADD命令はレジスタ競合が解消されるまで待たさ
れる。
【0024】また、前記命令プログラム順保持部5は、
図5に示すように、4個のレジスタをもつ。即ち、命令
コード、オペランド、vビット及びeビットを各々プロ
グラム順に保持する4個のレジスタ51 〜54 と、エン
トリ更新制御回路5a又は命令選択回路7に基づいて、
発行した命令及びオペランドを空いているレジスタに入
力させ、又は演算ユニットに11 ,12 に送出するため
のセレクタ5c〜5nに対する指示をビットsel0〜sel3
の信号を出力することにより行うエントリ更新制御回路
5aと、当該エントリ更新制御回路5aのビットsel0〜
sel3の信号に基づいて、各前記レジスタに命令が保持さ
れているか否かを表すeビットを作成するeビット作成
回路5bとを有するものである。
【0025】さらに、図6に、前記命令選択回路7を実
現する一つの回路例を示す。同図に示すように、命令選
択回路7は、前記vビットを入力して、vs0 〜vs3 ビッ
トを出力するものである。
【0026】また、図7には、eビット作成回路5bの
一例を示す。同図に示すように、eビット作成回路5b
は、ANDゲート51bと、ORゲート52bと、eビ
ット保持レジスタ53bとを有する。eビット作成回路
5bはエントリ更新制御回路5aの出力信号sel0〜sel3
を反転した信号(0 →1 、1→0)と、前回のタイミング
で出力されたeビットとの論理積と、命令選択回路7の
出力信号vs0 〜vs3 との論理和からeビットを得るもの
である。
【0027】続いて、本実施例に係るマイクロプロセッ
サ制御装置の動作を説明する。前記メモリ9から読み出
された命令は、命令バッファ11を介して命令デコード
ユニット2に渡される。1サイクルで2命令をメモリ9
から読み出すことができるとする。命令デコードユニッ
ト2では命令のデコードを行う。前記エントリ更新制御
回路5aは各レジスタ51 〜54 のeビットを読み、空
のレジスタを認識すると、演算命令のプログラム順に演
算命令を移動させ、移動後に得られた空のレジスタに発
行した演算命令を入力して保持させる。
【0028】すると、図8のタイミングチャートに示す
ように、ステップS1で前記実行可能性判定部6は各レ
ジスタ51 〜54 のeビットを読み出し、同時にステッ
プS2でRS4の空でないレジスタ51 〜54 から演算
命令コード及びオペランドを読み出し、ステップS3で
前記実行可能性判定部6により命令が実行可能か否かを
判定するDependencyチェックが行われる。ステップS4
でこのチェックにより、演算命令コードにオペランドが
得られている場合には、演算命令は実行可能であると判
定し、その演算命令が保持されているレジスタ51 〜5
4 に対して“1”のvビットを送出し、そこに書き込
む。
【0029】仮に、R1とR3のレジスタ52 ,54
保持されている命令が実行可能であった場合、即ち、実
行可能な演算命令が2個以内である場合には、ステップ
S5で、そのプログラム順に保持されている演算命令の
位置に拘わらず2個の演算命令及びオペランドが前記命
令選択回路7により選択されて、前記演算ユニット
1 ,12 に発行される。
【0030】それに対し、前記所定個数よりも多い個数
の演算命令が実行可能である場合には、演算ユニットは
2個しかないため実行可能な4個の命令の中から命令が
転送された順(プログラム順)に2個を選択して演算ユ
ニット11 ,12 へ渡す必要がある。この場合は、前記
命令選択回路7により、前記命令プログラム順保持部5
のプログラム順の保持位置に基づいて、R3のレジスタ
3 とR2のレジスタ53 に保持されている演算命令及
びオペランドが選択されて演算ユニット11 ,12 に渡
される。
【0031】このように、実行可能な命令の選択が図6
に示すように、簡単な回路で実現できるのは、図5に示
すように、命令がそのプログラム順にR3,R2,R
1,R0の順で保持されるとともに、各レジスタにその
実行可能性を表すvビットが保持されているからであ
る。仮にR1とR3に格納されている命令の選択がなさ
れたとする。この場合R1とR3のエントリは無効とな
り、次のクロックサイクルで命令発行ユニット2から供
給される命令を格納することができる。
【0032】この時、図8のタイムチャートに示すよう
に、ステップS6で前記eビット作成回路5bは前記エ
ントリ更新制御回路5aからの選択信号に基づいて命令
実行後のeビットの更新を行い、無効となったエントリ
であるR1とR3のレジスタに対し“1”のeビットを
書き込み、次のクロックサイクルで命令デコードユニッ
ト2から供給される命令を保持することができることに
なる。この時、命令が転送された順(プログラム順)に
RSの各レジスタのR3,R2,R1,R0の順で格納
されるように、レジスタR2をレジスタR3に、レジス
タR0をレジスタR2に移動する。結果として次のクロ
ックサイクルではR0,R1のレジスタが空くことにな
り、ステップS7で空いたレジスタに新たな命令が書き
込まれることになる。この制御はエントリ更新制御回路
で行う。レジスタ間での移動を行うために各エントリ更
新制御回路で生成する。
【0033】続いて、第二の実施例を図10に基づいて
説明する。同図に示すように、本例では、第一の実施例
に係るRS4と異なり、前記命令プログラム順保持部5
に代えて、命令保持部15、及びプログラム順情報付加
部80に相当するsビット作成回路8を設け、命令選択
回路7に代えて命令選択回路17を設けたRS14を設
けたものである。
【0034】ここで、命令保持部15は、プログラム順
とは無関係な保持位置で演算命令及びオペランドを保持
するものである。また、前記命令選択部17は、実行可
能性判定部6により得られたvビットにより示された実
行可能な命令が前記所定個数(本実施例では2個)以下
の場合には、前記命令保持部15に保持されているプロ
グラム順を示すsビットに拘わらず、当該命令を選択
し、実行可能な命令が前記所定個数(2個)より多い場
合には、前記保持部15に保持されている当該命令のs
ビットに基づいて、前記所定個数分を選択し、前記演算
ユニット11 ,1 2 に発行するものである。
【0035】当該命令選択回路17の回路の一例を図1
1に示す。同図に示すように、当該回路17は、前記s
ビットに基づいて、各レジスタ151 〜154 のvビッ
トを入れ換える切換え部171と、第一の実施例に係る
命令選択回路7で用いた論理素子群172とからなる。
さらに、前記sビット作成回路8は、前記エントリ更新
制御回路15aにより得られた選択信号sel0〜sel3及び
前記命令選択回路17から出力された選択信号vs0 〜vs
3 に基づいて、転送された演算命令のプログラム順序を
示すプログラム順情報であるsビットを作成して各演算
命令に付加するものである。
【0036】また、図12には、本例に係るsビット作
成回路8を示す。sビット作成回路8は同図に示すよう
に、命令選択回路17により出力された命令選択信号vs
0 〜vs3 に基づいてRS14のエントリ(入力した命令
及びオペランド)が実行されたか否かを判断し、エント
リ更新制御回路15aから出力されたエントリ更新制御
信号sel0〜sel3によりRS14にエントリが新しく書き
込まれたか否かを判断し、これらに基づいて、減算を行
うべき2個の実行された旧sビットの選択、及び減算数
(0≦減算数≦2)の決定を行うとともに、旧sビット
のうち実行されず減算を行わない2個の旧sビットの選
択を行い対応する新sビットに変換して該当する出力信
号線から新sビットを出力するsビット制御回路81
と、選択された旧ビットから決定された減算数の減算を
行う減算器82,83と、減算され又は出力された新s
ビットを対応するレジスタの配列に従って配列する配列
部85と、新sビットを一時保持する新sビット保持部
84とを有するものである。
【0037】ここで、sビットは、例えば、図10に示
すように、前記命令保持部15に4個のエントリがある
場合には、当該命令保持部15の各レジスタに保持され
ている演算命令のプログラム順(1〜4)を表すため2
ビットのデータ幅をもつ。この場合、sビットはプログ
ラム順に00,01,10,11の値をとるものとす
る。この順序は、命令が読み出されるプログラムが格納
されているメモリのアドレスの小さい順である。sビッ
トが必要であるのは、レジスタ間での移動を行わないた
めに各レジスタは自分のプログラム順序を記憶しておく
必要があるからである。
【0038】続いて、本実施例に係るマイクロプロセッ
サ制御装置の動作を説明する。メモリ9から読み出され
た命令は、命令バッファ11を介して命令デコードユニ
ット2に渡される。第一の実施例と同様に1サイクルで
2命令をメモリ9から読み出すことができるとする。命
令デコードユニット2では命令のデコードを行う。前記
エントリ更新回路15aは各レジスタ151 〜154
eビットを読み、空のレジスタを認識すると、演算命令
のプログラム順に演算命令を移動させることなく、空の
レジスタに転送した演算命令を入力して保持させる。
【0039】すると、図8のタイミングチャートに示す
ように、ステップS11で前記実行可能性判定部6は各
レジスタ151 〜154 のeビットを読み出し、同時に
ステップS12でRS14の空でないレジスタ151
154 から演算命令コード及びオペランドを読み出し、
ステップS13で前記実行可能性判定部6により命令が
実行可能か否かを判定するDependencyチェックが行われ
る。ステップS14でこのチェックにより、演算命令コ
ードにオペランドが得られている場合には、演算命令は
実行可能であると判定し、その演算命令が保持されてい
るレジスタ15 1 〜154 に対して“1”のvビットを
送出し、そこに書き込む。
【0040】仮に、実行可能な演算命令が2個以内であ
る場合には、例えば、R1とR3のレジスタ152 ,1
4 に保持されている命令が実行可能であった場合に
は、ステップS15で、前記sビット作成回路8により
作成されたその演算命令のプログラム順を表すsビット
に拘わらず2個の演算命令及びオペランドが前記命令選
択回路17により選択されて、前記演算ユニット11
2 に送出される。
【0041】それに対し、前記所定個数よりも多い個数
の演算命令が実行可能である場合には、演算ユニットは
2個しかないため実行可能な4個の命令の中から命令が
転送された順に2個を選択して演算ユニット11 ,12
へ渡す必要がある。この場合は、前記命令選択回路17
は、前記sビット作成回路8により作成された各エント
リに対するプログラム順を示すsビットに基づいて、プ
ログラム順に演算命令及びオペランドを選択されて演算
ユニット11 ,12 に発行される。即ち、命令選択回路
17は図11に示すように、各レジスタに対応して設定
されたsビットの値に基づいて、各レジスタに保持され
ている命令及びオペランドに設定されたvビットを、切
換え部171により、プログラム順にレジスタR3,R
2,R1,R0となるように切り換えて、論理素子群1
72を介して前記命令選択信号vs0 〜vs3 を出力する。
【0042】仮にR1とR3に格納されている命令の選
択がなされたとする。この場合R1とR3のエントリは
無効となり、次のクロックサイクルで命令デコードユニ
ット2から供給される命令を格納することができる。こ
の時、図8のタイムチャートに示すように、ステップS
16で前記eビット作成回路15bは前記エントリ更新
制御回路15aからの選択信号に基づいて命令実行後の
eビットの更新を行い、無効となったレジスタであるR
1とR3に対し“1”のeビットを書き込み、ステップ
S17で、命令デコードユニット2から供給される命令
を保持することになる。その際、第一の実施例と異な
り、第二の実施例ではレジスタ間で命令及びオペランド
の移動を行うことなく、eビットに“1”が書き込まれ
ているレジスタに新たに転送された命令を格納する。そ
して、第一の実施例と異なり、第二の実施例にあって
は、ステップS18で、さらに、前記sビット作成回路
8でsビットを作成し、命令が転送された順(プログラ
ム順)にRSの各レジスタに格納することになる。次
に、前記sビット作成回路8の動作について説明する。
【0043】前記sビット作成回路8は、あるサイクル
でRS14のレジスタの命令及びオペランドが演算ユニ
ットに送られて実行された場合、及び、RS14のレジ
スタに命令が新しく書き込まれた場合、sビットの更新
を行う。RS14の命令が実行されたかどうかは命令選
択回路17の出力vs0 〜vs3 を見ることにより判断し、
エントリ更新制御回路15aから出力されたエントリ更
新制御信号sel0〜sel3によりRS14にエントリが新し
く書き込まれたか否かを判断する。
【0044】例えば、あるサイクルの始めにRS14の
エントリとs,v,eビットの関係が図13(a)のよ
うになっているとする。この状態は前のサイクルでRS
14の4個のエントリが全て実行可能な状態にあり(v
ビットが全て“1”)、sビットの小さい(sビットが
“00”と“01”)順に対応するレジスタR3及びレ
ジスタR2に保持されている2命令が実行されたことを
示している。その結果実行された命令が保持されていた
レジスタのエントリは無効となり、eビットに“1”が
立ち、次のクロックサイクルでの命令デコードユニット
2から供給される命令を格納することができる。
【0045】当該図13の(a)のサイクルが終了した
現時点では、まだ実行されていないR0及びR1に保持
されている命令は、サイクルの終わりでは、プログラム
順では最初になるため新sビットとして“00”及び
“01”が当該レジスタR0及びR1にセットされる。
当該命令はサイクルの前で既に実行可能状態にあり(v
ビットが“1”にあり)、プログラム順に従ってサイク
ルの終わりで実行され、eビットに“1”を立てて無効
化される。
【0046】その際、サイクル前で既に実行された2命
令が保持されていたR2及びR3にはeビットに“1”
が立ち、sビットは無効化されており、サイクルの終わ
りでは新たな2命令が書き込まれる。その際、当該命令
が保持されているR2及びR3には、その命令のプログ
ラム順に基づいて、新sビットとして“10”“11”
がセットされるとともに、当該命令については、その実
行可能性については、まだ前記実行可能性判定部6によ
る判定がされていないので、vビットの欄に“?”を表
わした。また、サイクルの終わりの段階では、当該2命
令は未だ実行前であるためeビットに“0”が立ってい
る。
【0047】この図13(a)のサイクルの始めからサ
イクルの終わりまでの間に前記sビット作成回路8がと
る動作について説明する。前記sビット作成回路8の前
記sビット制御回路81は、サイクルの始めで、前記命
令選択回路17の出力結果vs0 〜vs3 を見ることにより
R2及びR3のレジスタの命令が実行されたと判断し、
実行されずに残留した旧sビット“10”及び“11”
について、前記減算器82、83に被減算数として入力
させるとともに、減算数を“10”(十進法では
“2”)決定して前記減算器82,83に入力させる。
したがって、減算器82,83により次の各演算結果が
得られる。 11−10=01 10−10=00
【0048】また、前記sビット制御回路81は、サイ
クルの終わりで、エントリ更新制御回路15aから出力
されたエントリ更新制御信号sel0〜sel3により、RS1
4のR2及びR3に新たに、命令が書き込まれたと判断
し、当該命令が書き込まれたレジスタに、その命令のプ
ログラム順に“10”及び“11”の新sビットを減算
器82,83を介さずに出力する。このようにして得ら
れた、前記減算器82,83による旧sビットから減算
数“2”が減算された減算結果“00”及び“01”、
並びに、新sビット“10”及び“11”を前記配列部
85により、対応するレジスタの配列に従って配列し、
R0〜R3の順に、新sビットとして“00”“01”
“10”“11”を対応する各レジスタに送出し、保持
させる。RS14のレジスタのR2,R3については、
命令のアドレスの小さい順(プログラム順)に“1
0”、“11”とする。
【0049】同様にして、図13の(b)〜(e)には
RS14の3個のエントリが実行可能な状態にある場合
(vビットのうち3個が“1”)を示し、図14及び図
15の(k)にはRS14の2個のエントリが実行可能
な状態にある場合(vビットのうち2個が“1”)を示
し、図15の(l)〜(o)には、RSの1個のエント
リが実行可能な状態にある場合(vビットのうち1個が
“1”)を示す。
【0050】以上説明したように、第二の実施例にあっ
ては、第一の実施例と異なり、前記命令保持部15の構
造が簡単なのは、命令及びオペランドをプログラム順に
保持するように、命令及びオペランドを移動させるので
はなく、そのプログラム順を示すsビットを付加するこ
とにより表すのであって、一旦保持された命令及びオペ
ランドの位置の変更を行わないからである。そのため、
各レジスタの入力セレクタが不要になるとともに、エン
トリ更新制御回路もその分簡単になる。
【0051】このようにsビットを用いた構成ではエン
トリを移動することがないため、最初の実施例よりも少
ないハードウェアで同等の機能を実現することができ
る。命令選択回路は同じものを利用することができる。
尚、プログラムの順序と演算実行/結果書込みの順序を
一致させる必要がある場合には、プログラム順序に従っ
て実行させる機能をもつ装置を設ければ良い。以上の例
では、前記命令プログラム順保持部5又は前記命令保持
部15ではレジスタが4個で、オペランドが2個の場合
の例を示したが、当該場合に限られることなく、それ以
上又はそれ以下でも良い。また、1サイクルで実行可能
な命令又は演算ユニットについても2個に限られるもの
ではない。
【0052】
【発明の効果】以上説明したように、本発明にあって
は、1サイクルに複数の命令の実行が可能なマイクロプ
ロセッサ制御装置において、命令待機部を設けることに
より、所定個数(m個)の命令が同時実行できるプロセ
ッサにおいて、所定個数個以内の命令が転送された場合
には、プログラム順序に拘わらず、実行可能になった順
に命令を実行するが、あるクロックサイクルでn個(n
>m)の命令が同時に実行可能な状態になったときに
は、n個の命令の中からプログラム順に所定個数個を選
んで実行を開始するようにしている。したがって、本発
明に係るマイクロプロセッサ制御装置により、高速にか
つ効率良く命令を実行することができることになる。
【図面の簡単な説明】
【図1】本発明の原理ブロック図
【図2】本発明の第一の実施態様を示すブロック図
【図3】本発明の第二の実施態様を示すブロック図
【図4】第一の実施例に係る全体ブロック図
【図5】第一の実施例に係る要部ブロック図
【図6】第一の実施例に係る命令選択回路を示す図
【図7】第一の実施例に係るeビット作成回路を示す図
【図8】第一及び第二の実施例に係るタイムチャート
【図9】第一の実施例に係る依存関係検査回路を示す図
【図10】第二の実施例に係る要部ブロック図
【図11】第二の実施例に係る命令選択回路を示す図
【図12】第二の実施例に係るsビット作成回路を示す
【図13】第二の実施例に係るsビット作成の説明図
(1)
【図14】第二の実施例に係るsビット作成の説明図
(2)
【図15】第二の実施例に係るsビット作成の説明図
(3)
【図16】従来例に係るブロック図
【符号の説明】
101 〜10n ,11 〜1n …演算ユニット 20,2…命令デコード部 30(3)…オペランド保持部(レジスタファイル) 40,41,42,(4,14)…命令待機部(RS) 50,5…命令プログラム順保持部 51,15…命令保持部 60,6…実行可能性判定部 70,71(7,17)…命令選択部(命令選択回路) 80(8)…プログラム順情報付加部(sビット作成回
路)

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 演算命令を解読する命令デコード部(2
    0)と、当該演算命令のオペランドを保持するオペラン
    ド保持部(30)と、当該演算命令を実行する複数個の
    演算ユニット(101 〜10n )とを有し、1クロック
    サイクル毎に所定個数の命令の実行が可能なマイクロプ
    ロセッサにおいて、 命令デコード部(20)から転送された演算命令及びオ
    ペランドを待機させるとともに、実行可能な演算命令が
    前記所定個数以下転送されている場合には当該演算命令
    及びオペランドの選択、実行可能な演算命令が前記所定
    個数より多く転送されている場合には前記所定個数分の
    演算命令及びオペランドのプログラム順序に従う選択、
    並びに、選択した演算命令及びオペランドについて各演
    算ユニット(101 〜10n )への発行を行う命令待機
    部(40)を有することを特徴とするマイクロプロセッ
    サ制御装置。
  2. 【請求項2】 前記命令待機部(41)は、演算命令の
    プログラム順に演算命令及びオペランドを移動可能に保
    持する命令プログラム順保持部(50)と、 転送された演算命令が実行可能か否かの判定、及び、そ
    の判定結果を示す情報の各命令への付加を行う実行可能
    性判定部(60)と、 実行可能な命令が前記所定個数以下転送されている場合
    には当該演算命令及びオペランドの選択、実行可能な演
    算命令が前記所定個数より多く転送されている場合には
    前記命令プログラム順保持部(50)の保持位置に基づ
    く前記所定個数分の演算命令及びオペランドのプログラ
    ム順序に従う選択、並びに、選択された命令及びオペラ
    ンドの前記演算ユニット(101 〜10n )への発行を
    行う命令選択部(70)とを有することを特徴とする請
    求項1記載のマイクロプロセッサ制御装置。
  3. 【請求項3】 前記命令待機部(42)は、演算命令及
    びオペランドを保持する命令保持部(51)と、 転送された演算命令のプログラム順を示すプログラム順
    情報を前記保持部(51)に保持された演算命令に付加
    するプログラム順情報付加部(80)と、 転送された演算命令の実行可能性の判定、及び、その判
    定結果を示す情報を前記命令保持部(51)に保持され
    た各命令への付加を行う実行可能性判定部(60)と、 実行可能な命令が前記所定個数以下転送されている場合
    の当該演算命令及びオペランドの選択、実行可能な演算
    命令が前記所定個数より多く転送されている場合の前記
    プログラム順情報に基づく前記所定個数分の演算命令及
    びオペランドのプログラム順に従う選択、並びに、選択
    された命令及びオペランドの前記演算ユニット(101
    〜10n )への発行を行う命令選択部(71)とを有す
    ることを特徴とする請求項1記載のマイクロプロセッサ
    制御装置。 【0001】
JP5233768A 1993-09-20 1993-09-20 マイクロプロセッサ制御装置 Withdrawn JPH0793152A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP5233768A JPH0793152A (ja) 1993-09-20 1993-09-20 マイクロプロセッサ制御装置
US08/272,939 US5682521A (en) 1993-09-20 1994-07-11 Microprocessor control system which selects operating instructions and operands in an order based upon the number of transferred executable operating instructions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5233768A JPH0793152A (ja) 1993-09-20 1993-09-20 マイクロプロセッサ制御装置

Publications (1)

Publication Number Publication Date
JPH0793152A true JPH0793152A (ja) 1995-04-07

Family

ID=16960274

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5233768A Withdrawn JPH0793152A (ja) 1993-09-20 1993-09-20 マイクロプロセッサ制御装置

Country Status (2)

Country Link
US (1) US5682521A (ja)
JP (1) JPH0793152A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000515268A (ja) * 1996-01-26 2000-11-14 アドバンスト・マイクロ・デバイシズ・インコーポレイテッド ロード/ストアオペレーションのout―of―order実行コントロールのための階層的スキャンロジック
US6807624B1 (en) 1998-12-17 2004-10-19 Fujitsu Limited Instruction control device and method therefor

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6345355B1 (en) 1998-05-29 2002-02-05 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for distributing commands to a plurality of circuit blocks
EP1050808B1 (en) * 1999-05-03 2008-04-30 STMicroelectronics S.A. Computer instruction scheduling
AU2002307204A1 (en) * 2001-04-06 2002-10-21 The Regents Of The University Of California Inhibitors of acyl glucosaminyl inositol amidase and methods of use
CA2378777A1 (en) * 2002-03-25 2003-09-25 Catena Networks Canada Inc. Shared program memory with fetch and prefetch buffers

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4807115A (en) * 1983-10-07 1989-02-21 Cornell Research Foundation, Inc. Instruction issuing mechanism for processors with multiple functional units
JPH0820949B2 (ja) * 1991-11-26 1996-03-04 松下電器産業株式会社 情報処理装置
JP3730252B2 (ja) * 1992-03-31 2005-12-21 トランスメタ コーポレイション レジスタ名称変更方法及び名称変更システム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000515268A (ja) * 1996-01-26 2000-11-14 アドバンスト・マイクロ・デバイシズ・インコーポレイテッド ロード/ストアオペレーションのout―of―order実行コントロールのための階層的スキャンロジック
US6807624B1 (en) 1998-12-17 2004-10-19 Fujitsu Limited Instruction control device and method therefor
US7127591B2 (en) 1998-12-17 2006-10-24 Fujitsu Limited Instruction control device and method therefor
US7275146B2 (en) 1998-12-17 2007-09-25 Fujitsu Limited Instruction control device and method therefor
US7313674B2 (en) 1998-12-17 2007-12-25 Fujitsu Limited Instruction control device and method therefor

Also Published As

Publication number Publication date
US5682521A (en) 1997-10-28

Similar Documents

Publication Publication Date Title
EP0381471B1 (en) Method and apparatus for preprocessing multiple instructions in a pipeline processor
JPH0844562A (ja) コンピュータシステム及びその動作方法
JPH04275628A (ja) 演算処理装置
EP1238339B1 (en) Interface for a memory unit
JPH1165844A (ja) パイプラインバイパス機能を有するデータ処理装置
US6920549B1 (en) Branch history information writing delay using counter to avoid conflict with instruction fetching
KR20010072491A (ko) 산술 논리 유닛 및 스택을 가지는 데이터 프로세서,멀티미디어 장치 및 컴퓨터 프로그램 제품
JPH0793152A (ja) マイクロプロセッサ制御装置
JP5316407B2 (ja) 演算処理装置および演算処理装置の制御方法
KR100431975B1 (ko) 분기에의한중단이없는파이프라인방식의마이크로프로세서를위한다중명령디스패치시스템
JPH1185513A (ja) プロセッサ
JP2933027B2 (ja) 複数命令並列発行/実行管理装置
JP3146077B2 (ja) プロセッサ
US7237096B1 (en) Storing results of producer instructions to facilitate consumer instruction dependency tracking
US6304958B1 (en) Microcomputer having data execution units mounted thereon
US5197133A (en) Control store addressing from multiple sources
US20080244240A1 (en) Semiconductor device
US20050262389A1 (en) Stack type snapshot buffer handles nested interrupts
JP2553728B2 (ja) 演算装置
JP2861560B2 (ja) データ処理装置
KR20010072490A (ko) 레지스터 스택을 포함하는 데이터 프로세서, 그 처리방법, 컴퓨터 프로그램 제품 및 멀티미디어 장치
JPH07111683B2 (ja) タスク切換機能付プロセッサ
JP2766404B2 (ja) データ駆動形マイクロプロセッサ
JP2000029508A (ja) プログラマブルコントローラ
JP3147884B2 (ja) 記憶装置及び情報処理装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20001128