JPH0651984A - マイクロプロセッサ - Google Patents
マイクロプロセッサInfo
- Publication number
- JPH0651984A JPH0651984A JP5122622A JP12262293A JPH0651984A JP H0651984 A JPH0651984 A JP H0651984A JP 5122622 A JP5122622 A JP 5122622A JP 12262293 A JP12262293 A JP 12262293A JP H0651984 A JPH0651984 A JP H0651984A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- output
- control signal
- decoder
- control
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 claims description 70
- 230000006870 function Effects 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 11
- 239000000872 buffer Substances 0.000 abstract description 29
- 238000010586 diagram Methods 0.000 description 23
- 238000000034 method Methods 0.000 description 17
- 238000006073 displacement reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 101100534231 Xenopus laevis src-b gene Proteins 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 101100087530 Caenorhabditis elegans rom-1 gene Proteins 0.000 description 1
- 101100305983 Mus musculus Rom1 gene Proteins 0.000 description 1
- 101150018765 OM14 gene Proteins 0.000 description 1
- 101100311249 Schizosaccharomyces pombe (strain 972 / ATCC 24843) stg1 gene Proteins 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229910021421 monocrystalline silicon Inorganic materials 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent 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)
- Microcomputers (AREA)
Abstract
(57)【要約】
【構成】 複数の命令デコーダと複数の命令実行部によ
り構成される複数のパイプラインを持つマイクロプロセ
ッサにおいて、各々のパイプラインを独立に使用して複
数命令を並列実行する機能と、複数のパイプラインを同
時に使用して単一命令を実行する機能を設けた。 【効果】 1サイクルで実行可能な単純命令は複数のパ
イプラインを独立に使用して並列実行できるとともに、
大量のデータ処理や複雑な処理を必要とする高機能命令
は複数のパイプラインを同時に使用して高速に実行する
ことができる。
り構成される複数のパイプラインを持つマイクロプロセ
ッサにおいて、各々のパイプラインを独立に使用して複
数命令を並列実行する機能と、複数のパイプラインを同
時に使用して単一命令を実行する機能を設けた。 【効果】 1サイクルで実行可能な単純命令は複数のパ
イプラインを独立に使用して並列実行できるとともに、
大量のデータ処理や複雑な処理を必要とする高機能命令
は複数のパイプラインを同時に使用して高速に実行する
ことができる。
Description
【0001】
【産業上の利用分野】本発明はマイクロプロセッサの制
御方式さらには複数のパイプラインにより命令を並列に
実行するスーパースカラ方式のマイクロプロセッサに適
用して有効な技術に関し、特に大量のデータ処理や複雑
な処理を伴う高機能命令を有するCISC型マイクロプ
ロセッサの制御方式に利用して有効な技術に関する。
御方式さらには複数のパイプラインにより命令を並列に
実行するスーパースカラ方式のマイクロプロセッサに適
用して有効な技術に関し、特に大量のデータ処理や複雑
な処理を伴う高機能命令を有するCISC型マイクロプ
ロセッサの制御方式に利用して有効な技術に関する。
【0002】
【従来の技術】近年、複数のパイプラインを持ち、複数
の命令を並列実行するスーパースカラ方式のマイクロプ
ロセッサが提案されている(日経BP社発行、「日経エ
レクトロニクス1989年11月27日号」第191頁
〜第200頁)。また、命令実行用とアドレス計算用の
2つの演算器を持つマイクロプロセッサにおいて、単一
命令を実行する際に1つの演算器の扱えるビット幅を超
えるビット長のデータの演算が必要になったときに2つ
の演算器を結合して使用するようにした発明が提案され
ている(特開昭62−86897号)。
の命令を並列実行するスーパースカラ方式のマイクロプ
ロセッサが提案されている(日経BP社発行、「日経エ
レクトロニクス1989年11月27日号」第191頁
〜第200頁)。また、命令実行用とアドレス計算用の
2つの演算器を持つマイクロプロセッサにおいて、単一
命令を実行する際に1つの演算器の扱えるビット幅を超
えるビット長のデータの演算が必要になったときに2つ
の演算器を結合して使用するようにした発明が提案され
ている(特開昭62−86897号)。
【0003】
【発明が解決しようとする課題】上記公知例のうち前者
で開示されているのは、基本的な演算や転送等を行なう
単純な命令しか持たないいわゆるRISC型プロセッサ
に関するものである。従って、CISC型プロセッサに
おける高機能命令のように複雑な処理をパイプライン方
式で行なおうとすると、単純な命令を複数個組み合わせ
て等価な機能を実現する必要がある。この場合、複数の
パイプライン間でのレジスタ、メモリ等のコンフリクト
や分岐発生等によりパイプラインが乱れ、この乱れのた
めに、1命令で処理する場合に比べて実行時間が長くな
るおそれがある。そのため、高速化のために並列処理に
適した命令列が必要となり、コンパイラ等ソフトウェア
の負担が大きくなるという問題点がある。
で開示されているのは、基本的な演算や転送等を行なう
単純な命令しか持たないいわゆるRISC型プロセッサ
に関するものである。従って、CISC型プロセッサに
おける高機能命令のように複雑な処理をパイプライン方
式で行なおうとすると、単純な命令を複数個組み合わせ
て等価な機能を実現する必要がある。この場合、複数の
パイプライン間でのレジスタ、メモリ等のコンフリクト
や分岐発生等によりパイプラインが乱れ、この乱れのた
めに、1命令で処理する場合に比べて実行時間が長くな
るおそれがある。そのため、高速化のために並列処理に
適した命令列が必要となり、コンパイラ等ソフトウェア
の負担が大きくなるという問題点がある。
【0004】また、上記公知例のうち後者は、単一命令
を実行する際に複数の演算器を使用する方法の一例であ
り、ビット幅の大きいデータの演算が必要な場合に演算
器の有効利用が可能である。しかるに、このような構成
のマイクロプロセッサはパイプラインが1本であるた
め、基本的な命令実行の単位は1命令であって1命令ず
つ順番に実行することになるので、実行速度は上がらな
いという問題点がある。本発明の目的は、高機能命令を
有するCISC型マイクロプロセッサにおいて、パイプ
ライン処理により高機能命令を高速に実行できるように
することにある。この発明の前記ならびにそのほかの目
的と新規な特徴については、本明細書の記述および添附
図面から明らかになるであろう。
を実行する際に複数の演算器を使用する方法の一例であ
り、ビット幅の大きいデータの演算が必要な場合に演算
器の有効利用が可能である。しかるに、このような構成
のマイクロプロセッサはパイプラインが1本であるた
め、基本的な命令実行の単位は1命令であって1命令ず
つ順番に実行することになるので、実行速度は上がらな
いという問題点がある。本発明の目的は、高機能命令を
有するCISC型マイクロプロセッサにおいて、パイプ
ライン処理により高機能命令を高速に実行できるように
することにある。この発明の前記ならびにそのほかの目
的と新規な特徴については、本明細書の記述および添附
図面から明らかになるであろう。
【0005】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
のとおりである。すなわち、複数の命令デコーダと複数
の命令実行部により構成される複数のパイプラインを持
つマイクロプロセッサにおいて、各々のパイプラインを
独立に使用して複数命令を並列実行する機能と、複数の
パイプラインを同時に使用して単一命令を実行する機能
を設けるようにしたものである。
発明のうち代表的なものの概要を簡単に説明すれば下記
のとおりである。すなわち、複数の命令デコーダと複数
の命令実行部により構成される複数のパイプラインを持
つマイクロプロセッサにおいて、各々のパイプラインを
独立に使用して複数命令を並列実行する機能と、複数の
パイプラインを同時に使用して単一命令を実行する機能
を設けるようにしたものである。
【0006】また、上記機能を実現するため、各々のパ
イプラインに対応され各パイプラインの制御信号を生成
する命令デコーダと、複数のパイプラインの制御信号を
生成するマイクロ命令が格納された共通のマイクロプロ
グラムメモリ(以下、マイクロROMと称する)と、上
記命令デコーダからの制御信号と上記マイクロROMか
らの制御信号の一方を選択する選択回路とを設け、選択
回路で選択された出力をパイプラインの制御信号とす
る。これとともに、命令デコード後、デコードした命令
が1サイクルで実行可能な場合には、上記選択回路で命
令デコーダ出力を選択して各々の命令デコーダ出力で各
々のパイプラインを制御し、デコードした命令が実行に
2サイクル以上要する場合には、上記選択回路で最初の
サイクルのみ命令デコーダ出力を選択し、次のサイクル
以降命令が終了するまではマイクロROMから出力され
る制御信号を選択し続けて複数のパイプラインを一括制
御するようにした。
イプラインに対応され各パイプラインの制御信号を生成
する命令デコーダと、複数のパイプラインの制御信号を
生成するマイクロ命令が格納された共通のマイクロプロ
グラムメモリ(以下、マイクロROMと称する)と、上
記命令デコーダからの制御信号と上記マイクロROMか
らの制御信号の一方を選択する選択回路とを設け、選択
回路で選択された出力をパイプラインの制御信号とす
る。これとともに、命令デコード後、デコードした命令
が1サイクルで実行可能な場合には、上記選択回路で命
令デコーダ出力を選択して各々の命令デコーダ出力で各
々のパイプラインを制御し、デコードした命令が実行に
2サイクル以上要する場合には、上記選択回路で最初の
サイクルのみ命令デコーダ出力を選択し、次のサイクル
以降命令が終了するまではマイクロROMから出力され
る制御信号を選択し続けて複数のパイプラインを一括制
御するようにした。
【0007】
【作用】上記手段によれば、1サイクルで実行可能な単
純な命令は複数のパイプラインを独立に使用して並列実
行するとともに、大量のデータ処理や複雑な処理を必要
とする高機能命令は複数のパイプラインを同時に使用し
て実行する。そのため、単純命令と高機能命令が混在し
たプログラムを実行するCISC型マイクロプロセッサ
の高速化を図ることができる。
純な命令は複数のパイプラインを独立に使用して並列実
行するとともに、大量のデータ処理や複雑な処理を必要
とする高機能命令は複数のパイプラインを同時に使用し
て実行する。そのため、単純命令と高機能命令が混在し
たプログラムを実行するCISC型マイクロプロセッサ
の高速化を図ることができる。
【0008】
【実施例】以下本発明の実施例を図面に従って詳細に説
明する。図1は本発明の方式を適用したマイクロプロセ
ッサの一構成例を示す。特に制限されないが、図中、2
点鎖線1で囲まれた内部の各回路ブロックは単結晶シリ
コン基板のような一個の半導体チップ上において形成さ
れる。本実施例のマイクロプロセッサ1は、命令フェッ
チアドレスを発生するプログラムカウンタPCや使用頻
度の高いプログラムを格納する命令キャッシュメモリC
Mおよびその管理テーブルTBL、複数の命令を予め保
持する命令キューIQ等からなる命令フェッチ部10
と、命令キューIQに取り込まれた命令を順次解読して
制御信号を発生する制御部11と、図2に示されるよう
な演算器31および32やレジスタ33等からなり命令
に対応した演算やデータの処理を行なう演算実行部30
と、外部のメモリをアクセスするためのアドレスを発生
するアドレス計算器やアドレス入出力バッファ、データ
入出力バッファ等を有するメモリアクセス部34とによ
り構成されている。
明する。図1は本発明の方式を適用したマイクロプロセ
ッサの一構成例を示す。特に制限されないが、図中、2
点鎖線1で囲まれた内部の各回路ブロックは単結晶シリ
コン基板のような一個の半導体チップ上において形成さ
れる。本実施例のマイクロプロセッサ1は、命令フェッ
チアドレスを発生するプログラムカウンタPCや使用頻
度の高いプログラムを格納する命令キャッシュメモリC
Mおよびその管理テーブルTBL、複数の命令を予め保
持する命令キューIQ等からなる命令フェッチ部10
と、命令キューIQに取り込まれた命令を順次解読して
制御信号を発生する制御部11と、図2に示されるよう
な演算器31および32やレジスタ33等からなり命令
に対応した演算やデータの処理を行なう演算実行部30
と、外部のメモリをアクセスするためのアドレスを発生
するアドレス計算器やアドレス入出力バッファ、データ
入出力バッファ等を有するメモリアクセス部34とによ
り構成されている。
【0009】図2には制御部11および演算実行部30
の一実施例を示す。本実施例の制御部11および演算実
行部30は、特に制限されないが、2本のパイプライン
(以下それぞれをパイプ0、パイプ1と呼ぶ)を備えて
いる。また、1命令は、特に制限されないが、16ビッ
トで構成される。制御部11は、2つの命令デコーダ1
2、13と、主記憶装置2から供給されるマクロ命令に
対応したマイクロ命令群が格納された共通のマイクロR
OM14と、マイクロROM14と命令デコーダ12、
13から出力される制御信号のいずれか選択するための
セレクタ16、17と、セレクタ16、17の制御信号
stおよびvsを形成するセレクタ制御部15及び上記
命令デコーダ12、13またはマイクロROM14から
の制御信号を保持する制御情報バッファ18、19とに
より構成されている。
の一実施例を示す。本実施例の制御部11および演算実
行部30は、特に制限されないが、2本のパイプライン
(以下それぞれをパイプ0、パイプ1と呼ぶ)を備えて
いる。また、1命令は、特に制限されないが、16ビッ
トで構成される。制御部11は、2つの命令デコーダ1
2、13と、主記憶装置2から供給されるマクロ命令に
対応したマイクロ命令群が格納された共通のマイクロR
OM14と、マイクロROM14と命令デコーダ12、
13から出力される制御信号のいずれか選択するための
セレクタ16、17と、セレクタ16、17の制御信号
stおよびvsを形成するセレクタ制御部15及び上記
命令デコーダ12、13またはマイクロROM14から
の制御信号を保持する制御情報バッファ18、19とに
より構成されている。
【0010】上記セレクタ制御部15は命令デコーダ1
2、13およびマイクロROM14からの制御信号st
d0,std1,ityp0,strに従ってセレクタ
16、17に対し、命令デコ−ダの出力が有効なときに
は命令デコ−ダからの制御信号を、マイクロROMの出
力が有効なときにはマイクロROMに格納されたマイク
ロ命令に従った制御信号を選択させるようなセレクタ制
御信号を出力する。上記セレクタ制御部15はパイプ1
を有効あるいは無効にする制御信号vsを制御情報バッ
ファ19へ出力し、この制御情報バッファ19が保持し
ている制御信号は、上記制御信号vsがパイプ1が有効
であることを示しているときに上記演算実行部30に供
給される。
2、13およびマイクロROM14からの制御信号st
d0,std1,ityp0,strに従ってセレクタ
16、17に対し、命令デコ−ダの出力が有効なときに
は命令デコ−ダからの制御信号を、マイクロROMの出
力が有効なときにはマイクロROMに格納されたマイク
ロ命令に従った制御信号を選択させるようなセレクタ制
御信号を出力する。上記セレクタ制御部15はパイプ1
を有効あるいは無効にする制御信号vsを制御情報バッ
ファ19へ出力し、この制御情報バッファ19が保持し
ている制御信号は、上記制御信号vsがパイプ1が有効
であることを示しているときに上記演算実行部30に供
給される。
【0011】演算実行部30は、演算器31,32とレ
ジスタ部33及びこれらを接続する内部バス35,3
6,37とにより構成されている。上記演算器31,3
2はそれぞれパイプ0、パイプ1における演算を行な
う。レジスタ部33は複数のレジスタからなり、パイプ
0とパイプ1で共有され、上記演算器31,32の演算
結果やメモリから読み込まれたデータを保持する。メモ
リアクセス部34はデータを格納するデータキャッシュ
メモリを含み、主記憶装置2のアクセスに必要なアドレ
スを形成して出力し、主記憶装置2からのデータを適当
なタイミングで取り込む。上記制御部11および演算実
行部30は、互いに位相が180°ずれたクロック
φ1,φ2に同期して動作される。
ジスタ部33及びこれらを接続する内部バス35,3
6,37とにより構成されている。上記演算器31,3
2はそれぞれパイプ0、パイプ1における演算を行な
う。レジスタ部33は複数のレジスタからなり、パイプ
0とパイプ1で共有され、上記演算器31,32の演算
結果やメモリから読み込まれたデータを保持する。メモ
リアクセス部34はデータを格納するデータキャッシュ
メモリを含み、主記憶装置2のアクセスに必要なアドレ
スを形成して出力し、主記憶装置2からのデータを適当
なタイミングで取り込む。上記制御部11および演算実
行部30は、互いに位相が180°ずれたクロック
φ1,φ2に同期して動作される。
【0012】図19(a)は命令デコ−ダ12から出力
される制御信号(フィールド構成例)、図19(b)は
命令デコ−ダ13から出力される制御信号(フィールド
構成例)、図20はマイクロROM14から出力される
制御信号(フィールド構成例)を示す。図19(a)お
よび図19(b)において、std0,std1は次の
サイクルで命令デコーダの制御信号とマイクロROMの
制御信号のどちらかを制御情報バッファ18及び19に
保持させるか、セレクタ16,17を選択するための選
択信号、itypi(i=0,1,2……)はデコーダ
12及び13それぞれがデコードした命令が図17に示
されるような命令の場合、第1オペコードであったかあ
るいは第2オペコードであったかを示す制御信号、ds
rciは読み出すレジスタ番号を示す制御信号、ety
piは演算の種類を示す制御信号、esiziは演算の
サイズを示す制御信号、memiはメモリアクセスの有
無を示す制御信号、asiziはメモリアクセスサイズ
を示す制御信号、rwはメモリのリードまたはライト、
sregiは書き込むレジスタ番号を示す制御信号、m
adrはマイクロROM14に供給される信号であっ
て、次に読み出すマイクロROMアドレスである。
される制御信号(フィールド構成例)、図19(b)は
命令デコ−ダ13から出力される制御信号(フィールド
構成例)、図20はマイクロROM14から出力される
制御信号(フィールド構成例)を示す。図19(a)お
よび図19(b)において、std0,std1は次の
サイクルで命令デコーダの制御信号とマイクロROMの
制御信号のどちらかを制御情報バッファ18及び19に
保持させるか、セレクタ16,17を選択するための選
択信号、itypi(i=0,1,2……)はデコーダ
12及び13それぞれがデコードした命令が図17に示
されるような命令の場合、第1オペコードであったかあ
るいは第2オペコードであったかを示す制御信号、ds
rciは読み出すレジスタ番号を示す制御信号、ety
piは演算の種類を示す制御信号、esiziは演算の
サイズを示す制御信号、memiはメモリアクセスの有
無を示す制御信号、asiziはメモリアクセスサイズ
を示す制御信号、rwはメモリのリードまたはライト、
sregiは書き込むレジスタ番号を示す制御信号、m
adrはマイクロROM14に供給される信号であっ
て、次に読み出すマイクロROMアドレスである。
【0013】図20はマイクロROMの出力フィールド
構成例であり、命令デコーダ12と13の出力と同様な
フィールド構成とされたパイプ0およびパイプ1の制御
情報フィールド(制御信号)dsrci(i=0,1,
2……),etypi,esizi,memi,asi
zi,rw,sregi及びmadrの他に、どちらの
パイプで処理が終了したかを示す制御信号strと、特
殊な命令の制御用にメモリアクセス部34で論理アドレ
スから物理アドレスへの変換を行なうか否かの指示や内
蔵キャッシュメモリのクリアなどの指示を行なう制御信
号miscを含んでいる。
構成例であり、命令デコーダ12と13の出力と同様な
フィールド構成とされたパイプ0およびパイプ1の制御
情報フィールド(制御信号)dsrci(i=0,1,
2……),etypi,esizi,memi,asi
zi,rw,sregi及びmadrの他に、どちらの
パイプで処理が終了したかを示す制御信号strと、特
殊な命令の制御用にメモリアクセス部34で論理アドレ
スから物理アドレスへの変換を行なうか否かの指示や内
蔵キャッシュメモリのクリアなどの指示を行なう制御信
号miscを含んでいる。
【0014】この実施例のマイクロプロセッサにおける
パイプライン処理により命令の実行は、パイプ0、パイ
プ1それぞれステージI,D,E,A,Sの5つのステ
ージに従って行なわれる(以下、この5ステージを命令
実行サイクルと称する)。具体的には、ステージIで命
令のフェッチが、ステージDでは命令のデコードとマイ
クロROMおよびレジスタの読出し、ステージEでは演
算実行、ステージAではメモリアクセスが、そしてステ
ージSではレジスタストアが行なわれる。上記各ステー
ジは1クロックサイクルで順次移行する。
パイプライン処理により命令の実行は、パイプ0、パイ
プ1それぞれステージI,D,E,A,Sの5つのステ
ージに従って行なわれる(以下、この5ステージを命令
実行サイクルと称する)。具体的には、ステージIで命
令のフェッチが、ステージDでは命令のデコードとマイ
クロROMおよびレジスタの読出し、ステージEでは演
算実行、ステージAではメモリアクセスが、そしてステ
ージSではレジスタストアが行なわれる。上記各ステー
ジは1クロックサイクルで順次移行する。
【0015】次に図3を用いてこのマイクロプロセッサ
のパイプラインの動作を説明する。図3にはそれぞれ第
1のパイプラインと、第2のパイプラインのステージ構
成STG0,STG1が、図4にはそのタイミングチャ
ートが示されている。図3における破線はパイプライン
の各ステージで動作するハードウェアに対して制御部1
1から出力される制御信号を示す。本来これらは制御部
11より各ステージのタイミングに応じて出力されるも
のであるが、パイプラインとハードウェア動作の対応、
及び制御部がパイプライン全体を制御する様子を理解し
やすくするため、このような表現の図面とした。
のパイプラインの動作を説明する。図3にはそれぞれ第
1のパイプラインと、第2のパイプラインのステージ構
成STG0,STG1が、図4にはそのタイミングチャ
ートが示されている。図3における破線はパイプライン
の各ステージで動作するハードウェアに対して制御部1
1から出力される制御信号を示す。本来これらは制御部
11より各ステージのタイミングに応じて出力されるも
のであるが、パイプラインとハードウェア動作の対応、
及び制御部がパイプライン全体を制御する様子を理解し
やすくするため、このような表現の図面とした。
【0016】ここで、先ず一方のパイプラインにおける
命令実行サイクルについて説明する。命令キューIQ
は、メモリから取り出した命令コードを保持しておき、
第1のステージIで、制御部11からの要求に従い連続
する2命令を制御部11に送る。メモリからの命令フェ
ッチは外部バスがオペランドフェッチなどで使用されて
いない期間に随時行われ、命令キューIQが一杯になっ
たら終了する。第2のステージDでは、制御部11内の
デコーダ12,13で連続する2命令を同時にデコード
し、パイプ0とパイプ1の各々のステージE、A、Sで
の制御信号を生成する。生成された制御信号は制御部内
のバッファ18,19にラッチされ、クロックφ1,φ
2に従って各ステージE、A、Sの実行タイミングに合
わせて演算実行部30に出力される。
命令実行サイクルについて説明する。命令キューIQ
は、メモリから取り出した命令コードを保持しておき、
第1のステージIで、制御部11からの要求に従い連続
する2命令を制御部11に送る。メモリからの命令フェ
ッチは外部バスがオペランドフェッチなどで使用されて
いない期間に随時行われ、命令キューIQが一杯になっ
たら終了する。第2のステージDでは、制御部11内の
デコーダ12,13で連続する2命令を同時にデコード
し、パイプ0とパイプ1の各々のステージE、A、Sで
の制御信号を生成する。生成された制御信号は制御部内
のバッファ18,19にラッチされ、クロックφ1,φ
2に従って各ステージE、A、Sの実行タイミングに合
わせて演算実行部30に出力される。
【0017】すなわち、ステージEの制御信号は直ちに
出力され、ステージAの制御信号は1クロックサイクル
遅れて、またステージSの制御信号は2クロックサイク
ル遅れて出力される。また、ステージI、Dの制御信号
は直ちに出力されて次の命令実行サイクルのI、Dステ
ージを制御する。ここで次の命令実行サイクルとは、各
ステージが現在実行中の命令実行サイクルより1クロッ
クサイクルずつ遅れて実行されるものを指す。
出力され、ステージAの制御信号は1クロックサイクル
遅れて、またステージSの制御信号は2クロックサイク
ル遅れて出力される。また、ステージI、Dの制御信号
は直ちに出力されて次の命令実行サイクルのI、Dステ
ージを制御する。ここで次の命令実行サイクルとは、各
ステージが現在実行中の命令実行サイクルより1クロッ
クサイクルずつ遅れて実行されるものを指す。
【0018】命令キューIQに対しては、次に転送すべ
き命令コードの先頭アドレスを示すポインタを出力する
ことによって次の命令実行サイクルのステージIを制御
する。上記ステージDでの命令デコードの結果、マイク
ロROMを使用する命令であった場合には次の命令実行
サイクルのステージDでマイクロROM14から制御情
報を読み出すよう制御部自身を制御する。デコードされ
た命令がレジスタ読み出しを必要とする場合には、ステ
ージDの後半でレジスタ部33から内部バス36を介し
て演算器31、32へ転送する。命令コードにイミディ
エイトデータやアドレッシングモードのディスプレース
メントが含まれる場合には、それらは制御部11に供給
される命令コードから切り出されて、命令キューIQか
らダイレクトに内部バス35に供給され、さらに演算実
行部30へ転送される。
き命令コードの先頭アドレスを示すポインタを出力する
ことによって次の命令実行サイクルのステージIを制御
する。上記ステージDでの命令デコードの結果、マイク
ロROMを使用する命令であった場合には次の命令実行
サイクルのステージDでマイクロROM14から制御情
報を読み出すよう制御部自身を制御する。デコードされ
た命令がレジスタ読み出しを必要とする場合には、ステ
ージDの後半でレジスタ部33から内部バス36を介し
て演算器31、32へ転送する。命令コードにイミディ
エイトデータやアドレッシングモードのディスプレース
メントが含まれる場合には、それらは制御部11に供給
される命令コードから切り出されて、命令キューIQか
らダイレクトに内部バス35に供給され、さらに演算実
行部30へ転送される。
【0019】第3のステージEでは内部バス35のデー
タに対する演算が演算器31、32によって実行され、
その結果は内部バス37に出力される。第4のステージ
Aでは内部バス37のデータを使用してメモリアクセス
部34がメモリのアクセスを行なう。メモリフェッチの
場合、メモリアクセス部34は主記憶装置2からフェッ
チしたデータを内部バス35に出力する。ステージEで
の演算結果をレジスタ部33に格納する場合には、内部
バス37のデータをメモリアクセス部34を素通りさせ
て直接内部バス35上へ出力する。第5のステージSで
は内部バス35上のデータをレジスタ部33に格納す
る。
タに対する演算が演算器31、32によって実行され、
その結果は内部バス37に出力される。第4のステージ
Aでは内部バス37のデータを使用してメモリアクセス
部34がメモリのアクセスを行なう。メモリフェッチの
場合、メモリアクセス部34は主記憶装置2からフェッ
チしたデータを内部バス35に出力する。ステージEで
の演算結果をレジスタ部33に格納する場合には、内部
バス37のデータをメモリアクセス部34を素通りさせ
て直接内部バス35上へ出力する。第5のステージSで
は内部バス35上のデータをレジスタ部33に格納す
る。
【0020】次に、パイプライン処理について説明す
る。命令キューIQにとりこまれた連続する2命令は、
それぞれ命令デコ−ダ12、13に供給される。デコー
ドされた2命令がマイクロROM14を使わずに実行可
能な場合には、命令デコ−ダ12、13からパイプ0、
1の制御信号を出力すると共にセレクタ制御部15に対
し次のサイクルもデコーダ出力を選択するように指示す
る。これにより次のサイクルでもDステージで次の2命
令をデコードし、デコーダ出力によりパイプラインを制
御する。
る。命令キューIQにとりこまれた連続する2命令は、
それぞれ命令デコ−ダ12、13に供給される。デコー
ドされた2命令がマイクロROM14を使わずに実行可
能な場合には、命令デコ−ダ12、13からパイプ0、
1の制御信号を出力すると共にセレクタ制御部15に対
し次のサイクルもデコーダ出力を選択するように指示す
る。これにより次のサイクルでもDステージで次の2命
令をデコードし、デコーダ出力によりパイプラインを制
御する。
【0021】パイプ0またはパイプ1の命令がマイクロ
ROM14を使用する場合には、命令デコーダ12また
は13は実行中のパイプラインの制御信号を出力すると
共にマイクロROM14のアドレスを出力し、セレクタ
制御部15に対し次のサイクルにはマイクロROM14
の出力を選択するように指示する。これにより次のサイ
クルではマイクロROM14から読み出した制御信号で
パイプラインを制御する。マイクロROM14の出力に
従った処理では、マイクロROM14から2本のパイプ
ラインの制御信号を読み出す。マイクロROM14の出
力は、次に読み出すマイクロROMアドレスと共に、セ
レクタ制御部15に対し次のサイクルもマイクロROM
14の出力を選択するように指示する。マイクロプログ
ラムの最終ステップでは、セレクタ制御部15に対し次
のサイクルにはデコーダ出力を選択するように指示す
る。これによりマイクロ処理終了後、次の命令の実行が
可能となる。
ROM14を使用する場合には、命令デコーダ12また
は13は実行中のパイプラインの制御信号を出力すると
共にマイクロROM14のアドレスを出力し、セレクタ
制御部15に対し次のサイクルにはマイクロROM14
の出力を選択するように指示する。これにより次のサイ
クルではマイクロROM14から読み出した制御信号で
パイプラインを制御する。マイクロROM14の出力に
従った処理では、マイクロROM14から2本のパイプ
ラインの制御信号を読み出す。マイクロROM14の出
力は、次に読み出すマイクロROMアドレスと共に、セ
レクタ制御部15に対し次のサイクルもマイクロROM
14の出力を選択するように指示する。マイクロプログ
ラムの最終ステップでは、セレクタ制御部15に対し次
のサイクルにはデコーダ出力を選択するように指示す
る。これによりマイクロ処理終了後、次の命令の実行が
可能となる。
【0022】マイクロROM14を使わずに実行される
命令は、一般に1命令サイクルで実行可能な命令であ
る。1命令サイクルで実行可能とは、IステージからS
ステージまでを一通り実行すれば命令の機能を実現でき
ることであり、パイプライン処理を行なっているため実
際には1命令あたり1クロックサイクルで処理できるこ
とを意味する。マイクロROM14を使用して実行され
る命令は、一般に複数命令サイクルの実行時間が必要な
命令である。すなわちIステージからSステージまでの
処理を複数回実行する必要がある命令であり、このよう
な命令には、大量のデータ処理や、複雑な処理を必要と
するものが多い。以下1サイクルで実行可能な命令を単
純命令、実行に複数サイクル必要な命令を高機能命令と
呼ぶ。ただし単純命令の場合、アドレッシングモードに
よってはアドレス計算やメモリアクセスのために2サイ
クル以上かかる場合があるが、最短の実行時間が1サイ
クル要する命令という意味である。
命令は、一般に1命令サイクルで実行可能な命令であ
る。1命令サイクルで実行可能とは、IステージからS
ステージまでを一通り実行すれば命令の機能を実現でき
ることであり、パイプライン処理を行なっているため実
際には1命令あたり1クロックサイクルで処理できるこ
とを意味する。マイクロROM14を使用して実行され
る命令は、一般に複数命令サイクルの実行時間が必要な
命令である。すなわちIステージからSステージまでの
処理を複数回実行する必要がある命令であり、このよう
な命令には、大量のデータ処理や、複雑な処理を必要と
するものが多い。以下1サイクルで実行可能な命令を単
純命令、実行に複数サイクル必要な命令を高機能命令と
呼ぶ。ただし単純命令の場合、アドレッシングモードに
よってはアドレス計算やメモリアクセスのために2サイ
クル以上かかる場合があるが、最短の実行時間が1サイ
クル要する命令という意味である。
【0023】パイプ0、1が処理する命令(命令デコー
ダ12および13でデコードされた命令)が共に単純命
令の場合には、セレクタ制御部15からのセレクタ制御
信号stに従い、次の命令デコードサイクルも命令デコ
ーダ12または13の出力が選択される。パイプ0が処
理する命令(命令デコーダ12でデコードされた命令)
が単純命令でパイプ1が処理する命令(命令デコーダ1
3でデコードされた命令)が高機能命令の場合、次のサ
イクルからセレクタ16、17がマイクロROM14の
出力を選択し、パイプ1のデコーダ13でデコードした
命令の処理を2本のパイプを同時に使用して実行する。
ダ12および13でデコードされた命令)が共に単純命
令の場合には、セレクタ制御部15からのセレクタ制御
信号stに従い、次の命令デコードサイクルも命令デコ
ーダ12または13の出力が選択される。パイプ0が処
理する命令(命令デコーダ12でデコードされた命令)
が単純命令でパイプ1が処理する命令(命令デコーダ1
3でデコードされた命令)が高機能命令の場合、次のサ
イクルからセレクタ16、17がマイクロROM14の
出力を選択し、パイプ1のデコーダ13でデコードした
命令の処理を2本のパイプを同時に使用して実行する。
【0024】一方、パイプ0が処理する命令(命令デコ
ーダ12でデコードされた命令)が高機能命令の場合に
は、パイプ1のデコーダ13でデコードした命令の実行
は延期され、パイプ0の命令のマイクロ処理終了後に実
行開始する。すなわち、制御情報バッファ19は、セレ
クタ制御部15からパイプ1が無効であることを示して
いる制御信号vsが供給され、制御情報バッファ19に
保持されている制御信号は演算部30に供給されない。
ーダ12でデコードされた命令)が高機能命令の場合に
は、パイプ1のデコーダ13でデコードした命令の実行
は延期され、パイプ0の命令のマイクロ処理終了後に実
行開始する。すなわち、制御情報バッファ19は、セレ
クタ制御部15からパイプ1が無効であることを示して
いる制御信号vsが供給され、制御情報バッファ19に
保持されている制御信号は演算部30に供給されない。
【0025】そして、パイプ0の命令のマイクロ処理の
終了後、最初にパイプ1のデコーダ13でデコードした
命令を改めてパイプ0のデコーダ12あるいはパイプ1
のデコーダ13でデコードする。どちらでデコードする
かはマイクロ処理がどちらのパイプで終了したかによ
る。マイクロROM14から読み出された制御情報は通
常パイプライン2本分を制御するが、マイクロ処理の最
終ステップがパイプ0のみで実行可能である場合、マイ
クロROM14からその旨指示することにより次の命令
をパイプ1から実行開始でき、パイプラインの空きをな
くせる。マイクロの最終ステップが両パイプを使用する
場合、最初にパイプ1でデコードした命令をパイプ0の
デコーダ12に改めて入力するように命令キューに指示
する。
終了後、最初にパイプ1のデコーダ13でデコードした
命令を改めてパイプ0のデコーダ12あるいはパイプ1
のデコーダ13でデコードする。どちらでデコードする
かはマイクロ処理がどちらのパイプで終了したかによ
る。マイクロROM14から読み出された制御情報は通
常パイプライン2本分を制御するが、マイクロ処理の最
終ステップがパイプ0のみで実行可能である場合、マイ
クロROM14からその旨指示することにより次の命令
をパイプ1から実行開始でき、パイプラインの空きをな
くせる。マイクロの最終ステップが両パイプを使用する
場合、最初にパイプ1でデコードした命令をパイプ0の
デコーダ12に改めて入力するように命令キューに指示
する。
【0026】図5〜図11は、単純命令のパイプライン
処理の具体例を示したものである。パイプラインの使用
方法は命令の種類やアドレッシングモード等によって異
なるが、基本的には図5〜図11に示した7つの形式に
分けられる。各図において、上段はパイプ0のステージ
を、下段はパイプ1のステージを現わしている。 (a)図5はレジスタ→レジスタ転送命令の場合であ
る。Dステージの後半でレジスタ部33内の指定レジス
タRnから読み出したデータを内部バス36に出力す
る。Eステージで内部バス36のデータを演算器31ま
たは32を素通りさせて内部バス37に出力する。Aス
テージで内部バス37のデータをメモリアクセス部34
を素通りさせて内部バス35に出力する。そして、Sス
テージで内部バス35上のデータを指定レジスタRnに
格納する。
処理の具体例を示したものである。パイプラインの使用
方法は命令の種類やアドレッシングモード等によって異
なるが、基本的には図5〜図11に示した7つの形式に
分けられる。各図において、上段はパイプ0のステージ
を、下段はパイプ1のステージを現わしている。 (a)図5はレジスタ→レジスタ転送命令の場合であ
る。Dステージの後半でレジスタ部33内の指定レジス
タRnから読み出したデータを内部バス36に出力す
る。Eステージで内部バス36のデータを演算器31ま
たは32を素通りさせて内部バス37に出力する。Aス
テージで内部バス37のデータをメモリアクセス部34
を素通りさせて内部バス35に出力する。そして、Sス
テージで内部バス35上のデータを指定レジスタRnに
格納する。
【0027】(b)図6はレジスタ→主記憶装置(メモ
リ)転送命令の場合である。Dステージの後半で、命令
で指定された指定レジスタRmおよびRnからの読み出
しを行ない、読み出したそれぞれのデータを内部バス3
6に出力する。Eステージでは、指定レジスタRmから
読み出されたデータを演算器31に入力し、そのまま素
通りさせて内部バス37上に出力し、指定レジスタRn
から読み出されたデータは演算器31で所定演算が行な
われ、演算器31は演算結果を指定レジスタRmから読
み出されたデータのストアアドレスとして、内部バス3
7に出力される。Aステージでは内部バス37上のデー
タをメモリアクセス部34が上記ストアアドレスに従い
メモリに格納する。Sステージでは何も行わない。ま
た、上記実施例では、指定レジスタRnのデータをスト
アアドレス用として読み出しているが、上記指定レジス
タを使用せず、命令キューIQから内部バス36にダイ
レクトにストアアドレスが出力されても良い。
リ)転送命令の場合である。Dステージの後半で、命令
で指定された指定レジスタRmおよびRnからの読み出
しを行ない、読み出したそれぞれのデータを内部バス3
6に出力する。Eステージでは、指定レジスタRmから
読み出されたデータを演算器31に入力し、そのまま素
通りさせて内部バス37上に出力し、指定レジスタRn
から読み出されたデータは演算器31で所定演算が行な
われ、演算器31は演算結果を指定レジスタRmから読
み出されたデータのストアアドレスとして、内部バス3
7に出力される。Aステージでは内部バス37上のデー
タをメモリアクセス部34が上記ストアアドレスに従い
メモリに格納する。Sステージでは何も行わない。ま
た、上記実施例では、指定レジスタRnのデータをスト
アアドレス用として読み出しているが、上記指定レジス
タを使用せず、命令キューIQから内部バス36にダイ
レクトにストアアドレスが出力されても良い。
【0028】(c)図7はメモリ→レジスタ転送命令の
場合である。Dステージでアドレス計算に必要なレジス
タ値、ディスプレースメント値を内部バス36に出力す
る。Eステージでは演算器31または32がアドレス計
算のみを行ない、結果を内部バス37に出力する。Aス
テージでは内部バス37上のデータをアドレスとしてメ
モリアクセス部34がメモリをアクセスする。そのアク
セスの結果、主記憶装置2から読み出されたデータをメ
モリアクセス部34がフェッチし、フェッチしたデータ
を内部バス35上に出力する。Sステージでは内部バス
35上のデータを命令で指定された指定レジスタRnに
格納する。
場合である。Dステージでアドレス計算に必要なレジス
タ値、ディスプレースメント値を内部バス36に出力す
る。Eステージでは演算器31または32がアドレス計
算のみを行ない、結果を内部バス37に出力する。Aス
テージでは内部バス37上のデータをアドレスとしてメ
モリアクセス部34がメモリをアクセスする。そのアク
セスの結果、主記憶装置2から読み出されたデータをメ
モリアクセス部34がフェッチし、フェッチしたデータ
を内部バス35上に出力する。Sステージでは内部バス
35上のデータを命令で指定された指定レジスタRnに
格納する。
【0029】(d)図8はメモリ→メモリ転送命令の場
合である。メモリ→メモリ転送命令は16ビット長のオ
ペコードが2つあるため、2回に分けてデコードする必
要がある。1回目のデコード結果ではメモリからデータ
を取り出す制御を行ない、2回目のデコード結果ではメ
モリにデータを格納する制御を行なう。メモリアクセス
部34がメモリから取り込んだデータを内部バス35上
に出力するまでは図7と同じである。内部バス35上の
データを演算器31あるいは32を通してメモリへ格納
する処理は図6と同じである。メモリアクセス部34に
フェッチされたデータがEステージで使用可能になるま
で待つため、間に何もしない命令実行サイクルがある。
間に何もしないステージを挿入する制御は、制御部11
が命令デコーダ12,13でのデコード結果に基づいて
行なう。
合である。メモリ→メモリ転送命令は16ビット長のオ
ペコードが2つあるため、2回に分けてデコードする必
要がある。1回目のデコード結果ではメモリからデータ
を取り出す制御を行ない、2回目のデコード結果ではメ
モリにデータを格納する制御を行なう。メモリアクセス
部34がメモリから取り込んだデータを内部バス35上
に出力するまでは図7と同じである。内部バス35上の
データを演算器31あるいは32を通してメモリへ格納
する処理は図6と同じである。メモリアクセス部34に
フェッチされたデータがEステージで使用可能になるま
で待つため、間に何もしない命令実行サイクルがある。
間に何もしないステージを挿入する制御は、制御部11
が命令デコーダ12,13でのデコード結果に基づいて
行なう。
【0030】(e)図9はレジスタ間演算命令の場合で
ある。Dステージの後半で、命令で指定された指定レジ
スタRmおよびRnからデータの読み出しが行なわれ、
読み出されたデータは内部バス36に出力される。Eス
テージでは、内部バス36のデータを演算器31に入力
して演算を実行し、演算結果を演算器31は内部バス3
7に出力する。Aステージでは内部バス37のデータを
メモリアクセス部34を通してそのまま内部バス35に
出力する。Sステージで内部バス35上のデータを、命
令で指定された指定レジスタRnに格納する。
ある。Dステージの後半で、命令で指定された指定レジ
スタRmおよびRnからデータの読み出しが行なわれ、
読み出されたデータは内部バス36に出力される。Eス
テージでは、内部バス36のデータを演算器31に入力
して演算を実行し、演算結果を演算器31は内部バス3
7に出力する。Aステージでは内部バス37のデータを
メモリアクセス部34を通してそのまま内部バス35に
出力する。Sステージで内部バス35上のデータを、命
令で指定された指定レジスタRnに格納する。
【0031】(f)図10はレジスタ・メモリ間演算命
令の場合である。最初の命令実行サイクルではメモリか
らオペランドを取り出す処理のみ行なう。つまり、図7
の命令と同様にEステージでアドレス計算を行ない、A
ステージではメモリからのデータフェッチを行なう。フ
ェッチされたデータは内部バス35に出力され、また命
令で指定された指定レジスタRn内のデータは内部バス
36に出力される。Eステージで内部バス35および3
6のデータを演算器31に入力し、演算を実行する。そ
の後Aステージで図6の命令と同様に演算結果をメモリ
に格納する。
令の場合である。最初の命令実行サイクルではメモリか
らオペランドを取り出す処理のみ行なう。つまり、図7
の命令と同様にEステージでアドレス計算を行ない、A
ステージではメモリからのデータフェッチを行なう。フ
ェッチされたデータは内部バス35に出力され、また命
令で指定された指定レジスタRn内のデータは内部バス
36に出力される。Eステージで内部バス35および3
6のデータを演算器31に入力し、演算を実行する。そ
の後Aステージで図6の命令と同様に演算結果をメモリ
に格納する。
【0032】(g)図11はメモリ・メモリ間演算命令
の場合である。この命令は16ビット長のオペコードが
2つあるため、命令を2回に分けてデコードする必要が
ある。1回目のデコードでメモリから読み出されたデー
タは、メモリアクセス部34で一度フェッチされ、その
後命令で指定されるレジスタ33内の指定レジスタtr
oに格納される。2回目のデコードでもう一つのデータ
がメモリから読みだされ、メモリアクセス部34でフェ
ッチされる。その後指定レジスタtro内のデータとメ
モリアクセス部34でフェッチされているデータは、内
部バス35及び36に出力され、演算器31あるいは3
2で演算される。最後に演算結果が命令で指定されるメ
モリ内の所定アドレスに格納される。この制御はマイク
ロROM14から読み出された信号により行なう。
の場合である。この命令は16ビット長のオペコードが
2つあるため、命令を2回に分けてデコードする必要が
ある。1回目のデコードでメモリから読み出されたデー
タは、メモリアクセス部34で一度フェッチされ、その
後命令で指定されるレジスタ33内の指定レジスタtr
oに格納される。2回目のデコードでもう一つのデータ
がメモリから読みだされ、メモリアクセス部34でフェ
ッチされる。その後指定レジスタtro内のデータとメ
モリアクセス部34でフェッチされているデータは、内
部バス35及び36に出力され、演算器31あるいは3
2で演算される。最後に演算結果が命令で指定されるメ
モリ内の所定アドレスに格納される。この制御はマイク
ロROM14から読み出された信号により行なう。
【0033】図12は、メモリ内のデータと命令中のイ
ミディエイトデータを比較し、その結果をフラグに反映
する”CMP命令のパイプライン処理を示す。この処理
は図10のレジスタ・メモリ間演算命令と同様である
が、結果をレジスタやメモリに格納せず演算器31また
は32内のフラグに結果を反映して処理を終了する。図
13はマイクロROM14を使用する高機能命令の例で
あり、メモリの2つの領域から16ビット単位で連続し
てデータを読み出して比較し、ある条件が成立した場合
に条件の成立したアドレスをレジスタにセットして終了
する命令SCMPのパイプライン処理が示されている。
ミディエイトデータを比較し、その結果をフラグに反映
する”CMP命令のパイプライン処理を示す。この処理
は図10のレジスタ・メモリ間演算命令と同様である
が、結果をレジスタやメモリに格納せず演算器31また
は32内のフラグに結果を反映して処理を終了する。図
13はマイクロROM14を使用する高機能命令の例で
あり、メモリの2つの領域から16ビット単位で連続し
てデータを読み出して比較し、ある条件が成立した場合
に条件の成立したアドレスをレジスタにセットして終了
する命令SCMPのパイプライン処理が示されている。
【0034】この命令SCMPは、レジスタR0を先頭
アドレスとするメモリ領域からフェッチしたデータsr
c1と、レジスタR1を先頭アドレスとするメモリ領域
からフェッチしたデータsrc2とを比較し、データ
src1とsrc2が不一致の場合、データsrc1
とレジスタR3の値の間にある条件が成立した場合、及
びレジスタR2で指定したデータ数だけ比較を完了し
た場合に処理を終了する。終了する前に最後に比較した
データの次のアドレスをレジスタR0、R1に格納する
という命令である。
アドレスとするメモリ領域からフェッチしたデータsr
c1と、レジスタR1を先頭アドレスとするメモリ領域
からフェッチしたデータsrc2とを比較し、データ
src1とsrc2が不一致の場合、データsrc1
とレジスタR3の値の間にある条件が成立した場合、及
びレジスタR2で指定したデータ数だけ比較を完了し
た場合に処理を終了する。終了する前に最後に比較した
データの次のアドレスをレジスタR0、R1に格納する
という命令である。
【0035】命令デコーダ12または13は、命令SC
MPをデコードすると、これが高機能命令であることを
知り、最初のステージの制御情報を出力するとともに、
次に読み出すマイクロROMアドレスをマイクロROM
14に送る。以降はマイクロプログラム・シーケンスに
制御を移し、一連の処理が終了するまでマイクロROM
14から読み出した情報で2本のパイプラインを同時に
制御する。データのフェッチ、比較は2本のパイプライ
ンを使用して64ビット同時に実行可能であるため、従
来16ビット単位で行なっていた場合と比べ4倍高速に
なる。
MPをデコードすると、これが高機能命令であることを
知り、最初のステージの制御情報を出力するとともに、
次に読み出すマイクロROMアドレスをマイクロROM
14に送る。以降はマイクロプログラム・シーケンスに
制御を移し、一連の処理が終了するまでマイクロROM
14から読み出した情報で2本のパイプラインを同時に
制御する。データのフェッチ、比較は2本のパイプライ
ンを使用して64ビット同時に実行可能であるため、従
来16ビット単位で行なっていた場合と比べ4倍高速に
なる。
【0036】具体的には、最初のステップ901で命令
のデコードを行ない、マイクロプログラム処理を起動す
る。次のステップ902以降ではマイクロROMから読
み出した制御情報でパイプラインを制御する。ステップ
902では、レジスタR0の値をアドレスとしてメモリ
から64ビットフェッチし、レジスタ33内の32ビッ
トレジスタtr0、tr1に格納する。ステップ903
では、レジスタR1の値をアドレスとしてメモリから6
4ビットのデータをフェッチするとともに、レジスタR
2をデクリメントし、R2が負になったら終了する。終
了の場合は次に読み出すROMアドレスを変更してステ
ップ909の実行に制御を移す。
のデコードを行ない、マイクロプログラム処理を起動す
る。次のステップ902以降ではマイクロROMから読
み出した制御情報でパイプラインを制御する。ステップ
902では、レジスタR0の値をアドレスとしてメモリ
から64ビットフェッチし、レジスタ33内の32ビッ
トレジスタtr0、tr1に格納する。ステップ903
では、レジスタR1の値をアドレスとしてメモリから6
4ビットのデータをフェッチするとともに、レジスタR
2をデクリメントし、R2が負になったら終了する。終
了の場合は次に読み出すROMアドレスを変更してステ
ップ909の実行に制御を移す。
【0037】ステップ904では、ステップ902でフ
ェッチして内部バス35に出力したデータとレジスタR
3の値を比較する。比較の結果ある条件が成立した場合
に終了する。ステップ905では、ステップ903でフ
ェッチして内部バス35に出力したデータとレジスタt
r0、tr1の値を比較し、不一致ならば終了する。ス
テップ906以降はステップ903〜905の処理を終
了条件が成立するまで繰返す。ステップ909は終了処
理を行なうステップであり、最後に比較したデータの次
のアドレスをレジスタR0、R1に格納してマイクロ処
理を終了する。
ェッチして内部バス35に出力したデータとレジスタR
3の値を比較する。比較の結果ある条件が成立した場合
に終了する。ステップ905では、ステップ903でフ
ェッチして内部バス35に出力したデータとレジスタt
r0、tr1の値を比較し、不一致ならば終了する。ス
テップ906以降はステップ903〜905の処理を終
了条件が成立するまで繰返す。ステップ909は終了処
理を行なうステップであり、最後に比較したデータの次
のアドレスをレジスタR0、R1に格納してマイクロ処
理を終了する。
【0038】図14には単純命令と高機能命令が混在し
ている場合のパイプライン処理の例が示されている。こ
の例は、命令1と命令2及び命令4、命令5が、2命令
並列実行可能な単純命令であり、命令3がマイクロRO
Mを使用し複雑な処理をする高機能命令である。マイク
ロプロセッサは、命令1、2のデコードを1サイクルで
実行した後、命令3、4を同時にデコードすると、命令
3がマイクロROMを使用する命令であることを知り、
命令4のデコード結果をキャンセルする。これは、セレ
クタ制御部15によって制御情報バッファ19の出力を
禁止することにより行われる。
ている場合のパイプライン処理の例が示されている。こ
の例は、命令1と命令2及び命令4、命令5が、2命令
並列実行可能な単純命令であり、命令3がマイクロRO
Mを使用し複雑な処理をする高機能命令である。マイク
ロプロセッサは、命令1、2のデコードを1サイクルで
実行した後、命令3、4を同時にデコードすると、命令
3がマイクロROMを使用する命令であることを知り、
命令4のデコード結果をキャンセルする。これは、セレ
クタ制御部15によって制御情報バッファ19の出力を
禁止することにより行われる。
【0039】その後、次の命令実行サイクルからマイク
ロROM14がアクセスされ、マイクロ処理が開始され
る。そして、命令3のマイクロ処理が終了すると、その
最終ステップで次の命令のフェッチが指示される。命令
3の処理がパイプ0とパイプ1の両方を使ってなされて
いたため、次のIステージでは前回キャンセルされた命
令4とその次の命令5を同時にフェッチする。命令4と
命令5は単純命令であるため、それぞれパイプ0とパイ
プ1で並列実行される。
ロROM14がアクセスされ、マイクロ処理が開始され
る。そして、命令3のマイクロ処理が終了すると、その
最終ステップで次の命令のフェッチが指示される。命令
3の処理がパイプ0とパイプ1の両方を使ってなされて
いたため、次のIステージでは前回キャンセルされた命
令4とその次の命令5を同時にフェッチする。命令4と
命令5は単純命令であるため、それぞれパイプ0とパイ
プ1で並列実行される。
【0040】図15〜図17には命令の構成例が示され
ている。このうち、図15および図16はオペレーショ
ンコード(以下、オペコードと称する)が1ワード(1
6ビット)以内に収まる短縮形命令を、また図17はオ
ペコードが2ワード(32ビット)にまたがっている一
般形命令を示す。図において、OPはオペコードの入る
オペコード・フィールド、ADMはアドレッシング・モ
ードを指定するコードの入るアドレッシング・モード指
定フィールド、DSZはデータサイズを指定するコード
の入るデータサイズ指定フィールド、またEXTはディ
スプレースメント値やイミーディエイト値が入る拡張部
である。
ている。このうち、図15および図16はオペレーショ
ンコード(以下、オペコードと称する)が1ワード(1
6ビット)以内に収まる短縮形命令を、また図17はオ
ペコードが2ワード(32ビット)にまたがっている一
般形命令を示す。図において、OPはオペコードの入る
オペコード・フィールド、ADMはアドレッシング・モ
ードを指定するコードの入るアドレッシング・モード指
定フィールド、DSZはデータサイズを指定するコード
の入るデータサイズ指定フィールド、またEXTはディ
スプレースメント値やイミーディエイト値が入る拡張部
である。
【0041】図16の命令は、デコーダ12または13
が命令の先頭16ビットをデコードすることで、次の3
2ビットは拡張部でありデコードする必要のないことを
知り、パイプライン処理の制御情報を出力すると共に次
の32ビットのコードのデコードを行なわない。この実
施例のマイクロプロセッサにあっては、上記命令のうち
短縮形命令はパイプ0のデコーダ12またはパイプ1の
デコーダ13に供給されて1つのパイプラインによって
処理される。一方、一般形命令の第1オペコードOP,
OP1はパイプ0とパイプ1の両方のデコーダ12,1
3のいずれによってもデコードされるが、図17に示さ
れているような第2オペコードOP2はパイプ0のデコ
ーダ12によってのみデコードされる。
が命令の先頭16ビットをデコードすることで、次の3
2ビットは拡張部でありデコードする必要のないことを
知り、パイプライン処理の制御情報を出力すると共に次
の32ビットのコードのデコードを行なわない。この実
施例のマイクロプロセッサにあっては、上記命令のうち
短縮形命令はパイプ0のデコーダ12またはパイプ1の
デコーダ13に供給されて1つのパイプラインによって
処理される。一方、一般形命令の第1オペコードOP,
OP1はパイプ0とパイプ1の両方のデコーダ12,1
3のいずれによってもデコードされるが、図17に示さ
れているような第2オペコードOP2はパイプ0のデコ
ーダ12によってのみデコードされる。
【0042】図18は命令デコーダ12、13の内部構
成図を示す。この実施例では、パイプ0のデコーダ12
は第1オペコードデコーダID01と第2オペコードデ
コーダID02とより構成される。そして、16ビット
長のオペコードを2つ持つ32ビット長の命令(図17
参照)の第2オペコードは第2オペコードデコーダID
02でのみデコード可能となっている。パイプ1のデコ
ーダ13はパイプ0の第1オペコードデコーダID01
と同一構成になっている。命令キューIQから32ビッ
ト(2命令)一度に送られた命令コードは16ビットず
つに分けられて最初の16ビットがパイプ0のデコーダ
12に、次の16ビットがパイプ1のデコーダ13に入
力される。
成図を示す。この実施例では、パイプ0のデコーダ12
は第1オペコードデコーダID01と第2オペコードデ
コーダID02とより構成される。そして、16ビット
長のオペコードを2つ持つ32ビット長の命令(図17
参照)の第2オペコードは第2オペコードデコーダID
02でのみデコード可能となっている。パイプ1のデコ
ーダ13はパイプ0の第1オペコードデコーダID01
と同一構成になっている。命令キューIQから32ビッ
ト(2命令)一度に送られた命令コードは16ビットず
つに分けられて最初の16ビットがパイプ0のデコーダ
12に、次の16ビットがパイプ1のデコーダ13に入
力される。
【0043】第1オペコードがパイプ0のデコーダ12
に、また第2オペレコードがパイプ1のデコーダ13に
入力されたとすると、第1オペコードは第1オペコード
デコーダID01でデコードされ、その出力によりその
時のパイプ1のデコーダ13のデコード結果はキャンセ
ルされ、実行不能されるようになっている。また、デコ
ーダ12による第1オペコードデコード結果は制御情報
バッファ18に保持される。そして、パイプ0のフェッ
チ命令が第1オペコードであることが分かると制御部1
1は命令キューIQに対して第2オペコードの先頭アド
レスを示すポインタを送る。命令キューIQは次のIス
テージで第2オペコードから始まる32ビットのコード
を制御部11に転送する。
に、また第2オペレコードがパイプ1のデコーダ13に
入力されたとすると、第1オペコードは第1オペコード
デコーダID01でデコードされ、その出力によりその
時のパイプ1のデコーダ13のデコード結果はキャンセ
ルされ、実行不能されるようになっている。また、デコ
ーダ12による第1オペコードデコード結果は制御情報
バッファ18に保持される。そして、パイプ0のフェッ
チ命令が第1オペコードであることが分かると制御部1
1は命令キューIQに対して第2オペコードの先頭アド
レスを示すポインタを送る。命令キューIQは次のIス
テージで第2オペコードから始まる32ビットのコード
を制御部11に転送する。
【0044】これにより第2オペコードはパイプ0のデ
コーダ12内の第2オペコードデコーダID02によっ
てデコードされ、実行される。これは一見性能低下をま
ねくように見えるが、もともとオペコードを2つ持つ命
令はアドレッシングモードの汎用性を高める目的で作ら
れており、性能面では期待されていない。むしろ、パイ
プ1のデコーダ13から第2オペコード用デコーダを1
つ省略したことによる面積減少の効果がある。
コーダ12内の第2オペコードデコーダID02によっ
てデコードされ、実行される。これは一見性能低下をま
ねくように見えるが、もともとオペコードを2つ持つ命
令はアドレッシングモードの汎用性を高める目的で作ら
れており、性能面では期待されていない。むしろ、パイ
プ1のデコーダ13から第2オペコード用デコーダを1
つ省略したことによる面積減少の効果がある。
【0045】第1オペコードがパイプ0でデコードさ
れ、次のIステージで第2オペコードがデコーダ12に
供給されるときそのオペコードは第1オペコードデコー
ダID01と第2オペコードデコーダID02の両方に
入るが、第2オペコードデコーダID02のデコード結
果がセレクタ16によって選択され、第1オペコードデ
コーダID01のデコード結果は阻止されることにより
無効とされる。このとき、次の命令が単純命令であれ
ば、次の命令もパイプ1のデコーダ13でデコードされ
てパイプ1で実行される。一方、最初の第1オペコード
がパイプ1のデコーダ13に、また第2オペレコードが
パイプ0のデコーダ12に入力されたとすると、第1オ
ペコードはパイプ1のデコーダ13で、また第2オペレ
コードは第1オペコードデコーダ12Aでそれぞれ同時
にデコードされ、実行される。
れ、次のIステージで第2オペコードがデコーダ12に
供給されるときそのオペコードは第1オペコードデコー
ダID01と第2オペコードデコーダID02の両方に
入るが、第2オペコードデコーダID02のデコード結
果がセレクタ16によって選択され、第1オペコードデ
コーダID01のデコード結果は阻止されることにより
無効とされる。このとき、次の命令が単純命令であれ
ば、次の命令もパイプ1のデコーダ13でデコードされ
てパイプ1で実行される。一方、最初の第1オペコード
がパイプ1のデコーダ13に、また第2オペレコードが
パイプ0のデコーダ12に入力されたとすると、第1オ
ペコードはパイプ1のデコーダ13で、また第2オペレ
コードは第1オペコードデコーダ12Aでそれぞれ同時
にデコードされ、実行される。
【0046】図22は、本発明に係るセレクタ制御部1
5の構成例を示すブロック図である。セレクタ制御部1
5は、デコード部DECおよびラッチ部LTを有する。
デコード部DECには、前記デコーダ12から制御信号
std0およびityp0が、またデコーダ13から制
御信号std1が、さらにマイクロROM14から制御
信号strが供給され、上記各制御信号がデコードされ
て、制御信号stおよびvsが発生される。ラッチ部L
Tは、次のサイクルでセレクタ16と17がデコーダ1
2と13の出力とマイクロROM14の出力のどちらを
選択するかを示す上記制御信号stを1サイクルの間保
持した後、出力する。上記制御信号stは、現在のデコ
ードサイクル(最初のデコードサイクル)でセレクタ1
6と17の出力が、デコーダ12と13からの制御信号
とマイクロROM14からの制御信号のどちらを選択し
ているか示す。制御信号vsが“1”を示しているとき
は、制御情報バッファ19で保持されている制御信号は
所定のタイミングで演算部30に出力される。制御信号
vsが“0”を示しているときは、制御情報バッファ1
9に保持されている制御信号は演算部30に出力されな
い。
5の構成例を示すブロック図である。セレクタ制御部1
5は、デコード部DECおよびラッチ部LTを有する。
デコード部DECには、前記デコーダ12から制御信号
std0およびityp0が、またデコーダ13から制
御信号std1が、さらにマイクロROM14から制御
信号strが供給され、上記各制御信号がデコードされ
て、制御信号stおよびvsが発生される。ラッチ部L
Tは、次のサイクルでセレクタ16と17がデコーダ1
2と13の出力とマイクロROM14の出力のどちらを
選択するかを示す上記制御信号stを1サイクルの間保
持した後、出力する。上記制御信号stは、現在のデコ
ードサイクル(最初のデコードサイクル)でセレクタ1
6と17の出力が、デコーダ12と13からの制御信号
とマイクロROM14からの制御信号のどちらを選択し
ているか示す。制御信号vsが“1”を示しているとき
は、制御情報バッファ19で保持されている制御信号は
所定のタイミングで演算部30に出力される。制御信号
vsが“0”を示しているときは、制御情報バッファ1
9に保持されている制御信号は演算部30に出力されな
い。
【0047】表1は、上記セレクタ制御部15に入出力
される上記各制御信号とそれによって指定される制御内
容との関係を示す。
される上記各制御信号とそれによって指定される制御内
容との関係を示す。
【表1】
【0048】表1において、符号Dは、セレクタ16と
17がデコーダ12と13からの制御信号を選択するこ
とを表わし、符号Rは、セレクタ16と17がマイクロ
ROM14からの制御信号を選択することを表わす。ま
た、符号OP1は、デコーダ12が第1オペコードをデ
コードしたことを表わし、符号OP2は、デコーダ12
が第2オペコードをデコードしたことを表わす。符号s
td0,std1,strおよびityp0は図22の
デコード部DECに供給される制御信号、また符号ns
は上記デコード部DECからラッチ部LTに供給される
信号で、次のデコードサイクル(最初のデコードサイク
ルから1サイクル遅れたデコードサイクル)でセレクタ
16と17の出力が、デコーダ12と13からの制御信
号とマイクロROM14からの制御信号のどちらを選択
するか(“next state”)を示している。ま
た、符号stおよびvsはセレクタ制御部15から出力
される制御信号である。
17がデコーダ12と13からの制御信号を選択するこ
とを表わし、符号Rは、セレクタ16と17がマイクロ
ROM14からの制御信号を選択することを表わす。ま
た、符号OP1は、デコーダ12が第1オペコードをデ
コードしたことを表わし、符号OP2は、デコーダ12
が第2オペコードをデコードしたことを表わす。符号s
td0,std1,strおよびityp0は図22の
デコード部DECに供給される制御信号、また符号ns
は上記デコード部DECからラッチ部LTに供給される
信号で、次のデコードサイクル(最初のデコードサイク
ルから1サイクル遅れたデコードサイクル)でセレクタ
16と17の出力が、デコーダ12と13からの制御信
号とマイクロROM14からの制御信号のどちらを選択
するか(“next state”)を示している。ま
た、符号stおよびvsはセレクタ制御部15から出力
される制御信号である。
【0049】表1中の制御状態(1)は、セレクタ制御
部15にセレクタ16と17に対してそれらがデコーダ
12と13からの制御信号を選択するよう指令する制御
信号std0(D)およびstd1(D)が供給されて
いることを表わしている。これとともに、表1中の制御
状態(1)より、セレクタ制御部15には、デコーダ1
2が第1オペコードをデコードしたことを示す制御信号
ityp0(OP1)が供給されていることが分かる。
また、現在のデコードサイクルにおいて、セレクタ16
と17にデコーダ12と13からの制御信号を選択させ
るため、セレクタ制御部15がセレクタ16と17に対
して制御信号st(D)を出力している。さらに、セレ
クタ制御部15から出力される制御信号vsが“1”を
示しているので、制御情報バッファ19に保持されてい
る制御信号が所定のタイミングで演算部30に出力され
ることが分かる。また、次のサイクルにおいてもセレク
タ16と17がデコーダ12と13からの制御信号を選
択させるため、ラッチ部LTに“next stat
e”として“D”がセットされている。従って、次のサ
イクルにおいても制御情報バッファ18および19に
は、デコーダ12と13からの制御信号が供給される。
部15にセレクタ16と17に対してそれらがデコーダ
12と13からの制御信号を選択するよう指令する制御
信号std0(D)およびstd1(D)が供給されて
いることを表わしている。これとともに、表1中の制御
状態(1)より、セレクタ制御部15には、デコーダ1
2が第1オペコードをデコードしたことを示す制御信号
ityp0(OP1)が供給されていることが分かる。
また、現在のデコードサイクルにおいて、セレクタ16
と17にデコーダ12と13からの制御信号を選択させ
るため、セレクタ制御部15がセレクタ16と17に対
して制御信号st(D)を出力している。さらに、セレ
クタ制御部15から出力される制御信号vsが“1”を
示しているので、制御情報バッファ19に保持されてい
る制御信号が所定のタイミングで演算部30に出力され
ることが分かる。また、次のサイクルにおいてもセレク
タ16と17がデコーダ12と13からの制御信号を選
択させるため、ラッチ部LTに“next stat
e”として“D”がセットされている。従って、次のサ
イクルにおいても制御情報バッファ18および19に
は、デコーダ12と13からの制御信号が供給される。
【0050】表1中の制御状態(2)は、セレクタ制御
部15にセレクタ16に対してそれがマイクロROM1
4からの制御信号を選択するよう指令する制御信号st
d0(R)が供給されていることを表わしている。これ
とともに、表1中の制御状態(2)より、現在のデコー
ドサイクルにおいて、セレクタ16にデコーダ12から
の制御信号を選択させるため、セレクタ制御部15がセ
レクタ16に対して制御信号st(D)を出力している
ことが分かる。しかし、次のサイクルにおいてセレクタ
16にマイクロROM14からの制御信号を選択させる
ため、ラッチ部LTに“next state”として
“R”がセットされている。従って、次のサイクルから
は制御情報バッファ18および19には、マイクロRO
M14からの制御信号が供給される。さらに、セレクタ
制御部15から出力される制御信号vsが“0”を示し
ているときは、演算器32,レジスタ33やメモリアク
セス部34にその0(ロウレベル)の制御信号が供給さ
れ、演算器32,レジスタ33やメモリアクセス部34
はそれらに供給される各種制御信号に従って動作しない
よう無効化される。
部15にセレクタ16に対してそれがマイクロROM1
4からの制御信号を選択するよう指令する制御信号st
d0(R)が供給されていることを表わしている。これ
とともに、表1中の制御状態(2)より、現在のデコー
ドサイクルにおいて、セレクタ16にデコーダ12から
の制御信号を選択させるため、セレクタ制御部15がセ
レクタ16に対して制御信号st(D)を出力している
ことが分かる。しかし、次のサイクルにおいてセレクタ
16にマイクロROM14からの制御信号を選択させる
ため、ラッチ部LTに“next state”として
“R”がセットされている。従って、次のサイクルから
は制御情報バッファ18および19には、マイクロRO
M14からの制御信号が供給される。さらに、セレクタ
制御部15から出力される制御信号vsが“0”を示し
ているときは、演算器32,レジスタ33やメモリアク
セス部34にその0(ロウレベル)の制御信号が供給さ
れ、演算器32,レジスタ33やメモリアクセス部34
はそれらに供給される各種制御信号に従って動作しない
よう無効化される。
【0051】表1中の制御状態(3)は、セレクタ制御
部15にセレクタ16に対してそれがデコーダ12から
の制御信号を選択するよう指令する制御信号std0
(D)およびセレクタ17に対してそれがマイクロRO
M14からの制御信号を選択するよう指令する制御信号
std1(R)が供給されていることを表わしている。
これとともに、表1中の制御状態(3)より、セレクタ
制御部15には、デコーダ12が第1オペコードをデコ
ードしたことを示す制御信号ityp0(OP1)が供
給されていることが分かる。現在のデコードサイクルに
おいて、セレクタ16および17にデコーダ12および
13からの制御信号を選択させるため、セレクタ制御部
15がセレクタ16に対して制御信号st(D)を出力
していることが分かる。さらに、セレクタ制御部15か
ら出力される制御信号vsが“1”を示しているので、
制御情報バッファ19に保持されている制御信号は所定
のタイミングで演算部30に出力される。また、次のサ
イクルにおいてセレクタ16および17にマイクロRO
M14からの制御信号を選択させるため、ラッチ部LT
に“next state”として“R”がセットされ
ている。従って、次のサイクルからは制御情報バッファ
18および19には、マイクロROM14からの制御信
号が供給されることが分かる。
部15にセレクタ16に対してそれがデコーダ12から
の制御信号を選択するよう指令する制御信号std0
(D)およびセレクタ17に対してそれがマイクロRO
M14からの制御信号を選択するよう指令する制御信号
std1(R)が供給されていることを表わしている。
これとともに、表1中の制御状態(3)より、セレクタ
制御部15には、デコーダ12が第1オペコードをデコ
ードしたことを示す制御信号ityp0(OP1)が供
給されていることが分かる。現在のデコードサイクルに
おいて、セレクタ16および17にデコーダ12および
13からの制御信号を選択させるため、セレクタ制御部
15がセレクタ16に対して制御信号st(D)を出力
していることが分かる。さらに、セレクタ制御部15か
ら出力される制御信号vsが“1”を示しているので、
制御情報バッファ19に保持されている制御信号は所定
のタイミングで演算部30に出力される。また、次のサ
イクルにおいてセレクタ16および17にマイクロRO
M14からの制御信号を選択させるため、ラッチ部LT
に“next state”として“R”がセットされ
ている。従って、次のサイクルからは制御情報バッファ
18および19には、マイクロROM14からの制御信
号が供給されることが分かる。
【0052】表1中の制御状態(4)は、セレクタ制御
部15にセレクタ16に対してそれがデコーダ12から
の制御信号を選択するよう指令する制御信号std0
(D)およびデコーダ12が第2オペコードをデコード
したことを示す制御信号ityp0(OP2)が供給さ
れていることを表わしている。表1中の制御状態(4)
より、現在のデコードサイクルにおいて、セレクタ16
および17にデコーダ12および13からの制御信号を
選択させるため、セレクタ制御部15がセレクタ16に
対して制御信号st(D)を出力していることが分か
る。また、次のサイクルにおいてもセレクタ16がデコ
ーダ12からの制御信号を選択させるため、ラッチ部L
Tに“next state”として“D”がセットさ
れている。従って、次のサイクルにおいても制御情報バ
ッファ18および19には、デコーダ12と13からの
制御信号が供給される。さらに、セレクタ制御部15か
ら出力される制御信号vsが“0”を示しているので、
制御情報バッファ19に保持されている制御信号が演算
部30に出力されないことが分かる。
部15にセレクタ16に対してそれがデコーダ12から
の制御信号を選択するよう指令する制御信号std0
(D)およびデコーダ12が第2オペコードをデコード
したことを示す制御信号ityp0(OP2)が供給さ
れていることを表わしている。表1中の制御状態(4)
より、現在のデコードサイクルにおいて、セレクタ16
および17にデコーダ12および13からの制御信号を
選択させるため、セレクタ制御部15がセレクタ16に
対して制御信号st(D)を出力していることが分か
る。また、次のサイクルにおいてもセレクタ16がデコ
ーダ12からの制御信号を選択させるため、ラッチ部L
Tに“next state”として“D”がセットさ
れている。従って、次のサイクルにおいても制御情報バ
ッファ18および19には、デコーダ12と13からの
制御信号が供給される。さらに、セレクタ制御部15か
ら出力される制御信号vsが“0”を示しているので、
制御情報バッファ19に保持されている制御信号が演算
部30に出力されないことが分かる。
【0053】表1中の制御状態(5)は、セレクタ制御
部15にセレクタ16と17に対してそれらがデコーダ
12と13からの制御信号を選択するよう指令する制御
信号str(D)が供給されていることを表わしてい
る。これとともに、表1中の制御状態(5)より、現在
のデコードサイクルにおいて、セレクタ16と17にマ
イクロROM14からの制御信号を選択させるため、セ
レクタ制御部15がセレクタ16と17に対して制御信
号st(R)を出力していることが分かる。さらに、セ
レクタ制御部15から出力される制御信号vsが“1”
を示しているので、制御情報バッファ19に保持されて
いる制御信号が所定のタイミングで演算部30に出力さ
れることが分かる。また、次のサイクルにおいてもセレ
クタ16と17がデコーダ12と13からの制御信号を
選択させるため、ラッチ部LTに“next stat
e”として“D”がセットされている。従って、次のサ
イクルにおいては制御情報バッファ18および19に
は、デコーダ12と13からの制御信号が供給される。
部15にセレクタ16と17に対してそれらがデコーダ
12と13からの制御信号を選択するよう指令する制御
信号str(D)が供給されていることを表わしてい
る。これとともに、表1中の制御状態(5)より、現在
のデコードサイクルにおいて、セレクタ16と17にマ
イクロROM14からの制御信号を選択させるため、セ
レクタ制御部15がセレクタ16と17に対して制御信
号st(R)を出力していることが分かる。さらに、セ
レクタ制御部15から出力される制御信号vsが“1”
を示しているので、制御情報バッファ19に保持されて
いる制御信号が所定のタイミングで演算部30に出力さ
れることが分かる。また、次のサイクルにおいてもセレ
クタ16と17がデコーダ12と13からの制御信号を
選択させるため、ラッチ部LTに“next stat
e”として“D”がセットされている。従って、次のサ
イクルにおいては制御情報バッファ18および19に
は、デコーダ12と13からの制御信号が供給される。
【0054】表1中の制御状態(6)は、セレクタ制御
部15にセレクタ16と17に対してそれがマイクロR
OM14からの制御信号を選択するよう指令する制御信
号str(R)が供給されていることを表わしている。
これとともに、表1中の制御状態(6)より、現在のデ
コードサイクルにおいて、セレクタ16と17にデコー
ダ12からの制御信号を選択させるため、セレクタ制御
部15がセレクタ16と17に対して制御信号st
(R)を出力していることが分かる。さらに、セレクタ
制御部15から出力される制御信号vsが“1”を示し
ているので、制御情報バッファ19に保持されている制
御信号が所定のタイミングで演算部30に出力されるこ
とが分かる。また、次のサイクルにおいてはセレクタ1
6と17がデコーダ12と13からの制御信号を選択さ
せるため、ラッチ部LTに“next state”と
して“R”がセットされている。従って、次のサイクル
においては制御情報バッファ18および19には、デコ
ーダ12と13からの制御信号が供給される。
部15にセレクタ16と17に対してそれがマイクロR
OM14からの制御信号を選択するよう指令する制御信
号str(R)が供給されていることを表わしている。
これとともに、表1中の制御状態(6)より、現在のデ
コードサイクルにおいて、セレクタ16と17にデコー
ダ12からの制御信号を選択させるため、セレクタ制御
部15がセレクタ16と17に対して制御信号st
(R)を出力していることが分かる。さらに、セレクタ
制御部15から出力される制御信号vsが“1”を示し
ているので、制御情報バッファ19に保持されている制
御信号が所定のタイミングで演算部30に出力されるこ
とが分かる。また、次のサイクルにおいてはセレクタ1
6と17がデコーダ12と13からの制御信号を選択さ
せるため、ラッチ部LTに“next state”と
して“R”がセットされている。従って、次のサイクル
においては制御情報バッファ18および19には、デコ
ーダ12と13からの制御信号が供給される。
【0055】図21は本発明の方式によるマイクロプロ
セッサを用いたシステムの構成例を示すブロック図であ
る。このマイクロプロセッサ・システムは、マイクロプ
ロセッサ本体1、主記憶装置2、入出力装置3及びこれ
らを接続するインタフェースバス4より構成される。入
出力装置3にはキーボードのような入力操作装置5とプ
ログラムやデータが格納された2次記憶装置としての磁
気記憶装置6、出力装置としてのプリンタ7およびCR
T表示装置8等が接続されている。2次記憶装置6内の
プログラムやデータは入出力装置3を介して主記憶装置
2に格納され、マイクロプロセッサ1が主記憶装置2か
らプログラム(マクロ命令)を読み出し実行する。実行
結果は主記憶装置2に格納されるとともに、必要に応じ
て入出力装置3を介してプリンタ7やCRT表示装置8
に出力される。
セッサを用いたシステムの構成例を示すブロック図であ
る。このマイクロプロセッサ・システムは、マイクロプ
ロセッサ本体1、主記憶装置2、入出力装置3及びこれ
らを接続するインタフェースバス4より構成される。入
出力装置3にはキーボードのような入力操作装置5とプ
ログラムやデータが格納された2次記憶装置としての磁
気記憶装置6、出力装置としてのプリンタ7およびCR
T表示装置8等が接続されている。2次記憶装置6内の
プログラムやデータは入出力装置3を介して主記憶装置
2に格納され、マイクロプロセッサ1が主記憶装置2か
らプログラム(マクロ命令)を読み出し実行する。実行
結果は主記憶装置2に格納されるとともに、必要に応じ
て入出力装置3を介してプリンタ7やCRT表示装置8
に出力される。
【0056】以上述べたように、複数の命令デコーダと
複数の命令実行部により構成される複数のパイプライン
を持つマイクロプロセッサにおいて、各々のパイプライ
ンを独立に使用して複数命令を並列実行する機能と、複
数のパイプラインを同時に使用して単一命令を実行する
機能を備えることにより、1サイクルで実行可能な単純
な命令は複数のパイプラインを独立に使用して並列実行
できるとともに、大量のデータ処理や複雑な処理を必要
とする高機能命令は複数のパイプラインを同時に使用し
て高速に実行することが可能となる。
複数の命令実行部により構成される複数のパイプライン
を持つマイクロプロセッサにおいて、各々のパイプライ
ンを独立に使用して複数命令を並列実行する機能と、複
数のパイプラインを同時に使用して単一命令を実行する
機能を備えることにより、1サイクルで実行可能な単純
な命令は複数のパイプラインを独立に使用して並列実行
できるとともに、大量のデータ処理や複雑な処理を必要
とする高機能命令は複数のパイプラインを同時に使用し
て高速に実行することが可能となる。
【0057】以上本発明者によってなされた発明を実施
例に基づき具体的に説明したが、本発明は上記実施例に
限定されるものではなく、その要旨を逸脱しない範囲で
種々変更可能であることはいうまでもない。例えば、上
記実施例ではパイプ0の命令デコーダ12のみを第1オ
ペコード用デコーダ12Aと第2オペコード用デコーダ
12Bとで構成したが、パイプ1の命令デコーダ13も
第1オペコードと第2オペコードの両方をデコードでき
るように構成しても良い。また、上記実施例において高
機能命令の場合には、制御情報バッファ19が保持して
いる制御信号を演算部30に供給しないようにしている
が、その代わりにレクタ17がデコーダ13及びマイク
ロROM14からの制御信号を制御情報バッファ19お
よび演算部30に出力しないようにしてもよい。以上の
説明では主として本発明者によってなされた発明をその
背景となった利用分野であるCISC型マイクロプロセ
ッサに適用した場合について説明したがこの発明はそれ
に限定されるものでなく、パイプライン処理方式のマイ
クロプロセッサ一般に利用することができる。
例に基づき具体的に説明したが、本発明は上記実施例に
限定されるものではなく、その要旨を逸脱しない範囲で
種々変更可能であることはいうまでもない。例えば、上
記実施例ではパイプ0の命令デコーダ12のみを第1オ
ペコード用デコーダ12Aと第2オペコード用デコーダ
12Bとで構成したが、パイプ1の命令デコーダ13も
第1オペコードと第2オペコードの両方をデコードでき
るように構成しても良い。また、上記実施例において高
機能命令の場合には、制御情報バッファ19が保持して
いる制御信号を演算部30に供給しないようにしている
が、その代わりにレクタ17がデコーダ13及びマイク
ロROM14からの制御信号を制御情報バッファ19お
よび演算部30に出力しないようにしてもよい。以上の
説明では主として本発明者によってなされた発明をその
背景となった利用分野であるCISC型マイクロプロセ
ッサに適用した場合について説明したがこの発明はそれ
に限定されるものでなく、パイプライン処理方式のマイ
クロプロセッサ一般に利用することができる。
【0058】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
のとおりである。すなわち、1サイクルで実行可能な単
純命令は複数のパイプラインを独立に使用して並列実行
できるとともに、大量のデータ処理や複雑な処理を必要
とする高機能命令は複数のパイプラインを同時に使用し
て高速に実行することができる。
的なものによって得られる効果を簡単に説明すれば下記
のとおりである。すなわち、1サイクルで実行可能な単
純命令は複数のパイプラインを独立に使用して並列実行
できるとともに、大量のデータ処理や複雑な処理を必要
とする高機能命令は複数のパイプラインを同時に使用し
て高速に実行することができる。
【図1】本発明に係るマイクロプロセサの構成例を示す
ブロック図である。
ブロック図である。
【図2】本発明に係るマイクロプロセサの制御部と実行
部の構成例を示すブロック図である。
部の構成例を示すブロック図である。
【図3】本発明に係るマイクロプロセッサの全体構成と
パイプラインの流れを示す図である。
パイプラインの流れを示す図である。
【図4】制御部からの制御情報の出力タイミングおよび
演算実行部でのデータ入出力タイミングを示すタイミン
グチャートである。
演算実行部でのデータ入出力タイミングを示すタイミン
グチャートである。
【図5】単純命令のパイプライン処理の一例を示す図で
ある。
ある。
【図6】単純命令のパイプライン処理の他の例を示す図
である。
である。
【図7】単純命令のパイプライン処理の他の例を示す図
である。
である。
【図8】単純命令のパイプライン処理の他の例を示す図
である。
である。
【図9】単純命令のパイプライン処理の他の例を示す図
である。
である。
【図10】単純命令のパイプライン処理の他の例を示す
図である。
図である。
【図11】高機能単純命令のパイプライン処理の例を示
す図である。
す図である。
【図12】CMP命令のパイプライン処理を示す図であ
る。
る。
【図13】高機能命令のパイプライン処理の例を示す図
である。
である。
【図14】単純命令と高機能命令のパイプライン処理の
例を示す図である。
例を示す図である。
【図15】短縮形命令のフィールド構成の一例を示す図
である。
である。
【図16】短縮形命令のフィールド構成の他の例を示す
図である。
図である。
【図17】一般形命令のフィールド構成の他の例を示す
図である。
図である。
【図18】本発明に係るマイクロプロセッサの命令デコ
ーダ部の構成例を示すブロック図である。
ーダ部の構成例を示すブロック図である。
【図19】命令デコーダの出力のフィールド構成例を示
す図である。
す図である。
【図20】マイクロROMの出力のフィールド構成例を
示す図である。
示す図である。
【図21】本発明に係るマイクロプロセッサを用いたシ
ステム構成例を示すブロック図である。
ステム構成例を示すブロック図である。
【図22】本発明に係るマイクロプロセッサのセレクタ
制御部の構成例を示すブロック図である。
制御部の構成例を示すブロック図である。
1 マイクロプロセッサ 2 主記憶装置 3 入出力装置 4 インタフェースバス 10 命令フェッチ部 11 制御部 12 パイプ0デコーダ 12A 第1オペコードデコーダ 12B 第2オペコードデコーダ 13 パイプ1デコーダ 14 マイクロROM 15 セレクタ制御部 16 パイプ0出力セレクタ 17 パイプ1出力セレクタ 18 パイプ0制御情報バッファ 19 パイプ1制御情報バッファ 31 パイプ0演算器 32 パイプ1演算器 33 レジスタ 34 メモリアクセス部 35,36,37 内部バス
Claims (5)
- 【請求項1】 複数の命令デコーダと複数の命令実行手
段とにより構成される複数のパイプラインを持つマイク
ロプロセッサにおいて、各々のパイプラインを独立に使
用して複数命令を並列実行する機能と、複数のパイプラ
インを同時に使用して単一命令を実行する機能を備えて
いることを特徴とするマイクロプロセッサ。 - 【請求項2】 各々のパイプラインに対応され各パイプ
ラインの制御信号を生成する命令デコーダと、上記複数
のパイプラインの制御信号を一括生成するマイクロプロ
グラムメモリと、このマイクロプログラムメモリまたは
上記命令デコーダの出力を選択するための選択回路とを
有し、該選択回路によりパイプラインの制御信号を構成
するようにしたことを特徴とする請求項1記載のマイク
ロプロセッサ。 - 【請求項3】 上記命令デコーダでのデコード結果に基
づいて、命令が1サイクルで実行可能な場合には、上記
選択回路で命令デコーダ出力を選択して各々の命令デコ
ーダの出力で各々のパイプラインを制御し、デコードし
た命令が実行に2サイクル以上要する場合には、上記選
択回路で最初のサイクルのみ命令デコーダの出力を選択
し、次のサイクル以降処理が終了するまでは上記マイク
ロプログラムメモリの出力を選択し続けて複数のパイプ
ラインを一括制御するようにしたことを特徴とする請求
項2のマイクロプロセッサ。 - 【請求項4】 上記命令デコーダのうち一方は命令の第
1のオペレーションコードのデコード機能と第2のオペ
レーションコードのデコード機能とを備え、他方の命令
デコーダは第1のオペレーションコードのデコード機能
のみを備えていることを特徴とする請求項2または3記
載のマイクロプロセッサ。 - 【請求項5】 供給された命令をデコードする第1と第
2のデコード手段と、上記命令に対応されたマイクロ命
令を格納するマイクロプログラムメモリと、上記第1の
デコード手段でデコードされた第1制御信号および上記
第2のデコード手段でデコードされた第2制御信号を受
け第1切り替え信号と第2切り替え信号の一方を出力す
る制御手段と、上記第1のデコード手段でデコードされ
た第3制御信号および上記マイクロプログラムメモリか
らの第1マイクロ制御信号が供給され上記第1切り替え
信号を受けたとき上記第3制御信号を出力し上記第2切
り替え信号を受けたとき上記第1マイクロ信号を出力す
る第1セレクタと、上記第2のデコード手段でデコード
された第4制御信号および上記マイクロプログラムメモ
リからの第2マイクロ制御信号が供給され上記第1切り
替え信号を受けたとき上記第4制御信号を出力し上記第
2切り替え信号を受けたとき上記第2マイクロ信号を出
力する第2セレクタと、上記第1セレクタから出力され
る第3制御信号または上記第1マイクロ制御信号の一方
の信号に従って所定の演算を実行する第1演算手段と、
上記第2セレクタから出力される第4制御信号または上
記第2マイクロ制御信号の一方の信号に従って所定の演
算を実行する第2演算手段とを備えていることを特徴と
するマイクロプロセッサ。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5122622A JPH0651984A (ja) | 1992-06-05 | 1993-05-25 | マイクロプロセッサ |
KR1019930009838A KR940000960A (ko) | 1992-06-05 | 1993-06-02 | 마이크로프로세서 |
EP93109051A EP0573071A3 (en) | 1992-06-05 | 1993-06-04 | Microprocessor. |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4-145602 | 1992-06-05 | ||
JP14560292 | 1992-06-05 | ||
JP5122622A JPH0651984A (ja) | 1992-06-05 | 1993-05-25 | マイクロプロセッサ |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0651984A true JPH0651984A (ja) | 1994-02-25 |
Family
ID=26459718
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5122622A Pending JPH0651984A (ja) | 1992-06-05 | 1993-05-25 | マイクロプロセッサ |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0573071A3 (ja) |
JP (1) | JPH0651984A (ja) |
KR (1) | KR940000960A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008123361A1 (ja) | 2007-03-29 | 2008-10-16 | Nec Corporation | 再構成可能なsimd型プロセッサ及びその命令実行制御の方法 |
JP2016009907A (ja) * | 2014-06-23 | 2016-01-18 | 日本電信電話株式会社 | プログラマブルデバイスおよびその制御方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100384875B1 (ko) * | 1995-12-16 | 2003-08-21 | 주식회사 하이닉스반도체 | 파이프라인구조를갖는마이크로프로세서에서의언세이프처리마이크로시퀀서 |
US8914615B2 (en) | 2011-12-02 | 2014-12-16 | Arm Limited | Mapping same logical register specifier for different instruction sets with divergent association to architectural register file using common address format |
JP7409208B2 (ja) * | 2020-04-10 | 2024-01-09 | 富士通株式会社 | 演算処理装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4901235A (en) * | 1983-10-28 | 1990-02-13 | Data General Corporation | Data processing system having unique multilevel microcode architecture |
JPS6224326A (ja) * | 1985-07-24 | 1987-02-02 | Hitachi Ltd | デ−タ処理装置 |
US4961162A (en) * | 1989-01-13 | 1990-10-02 | International Business Machines Corporation | Multiprocessing system for performing floating point arithmetic operations |
CA2016068C (en) * | 1989-05-24 | 2000-04-04 | Robert W. Horst | Multiple instruction issue computer architecture |
JP2834289B2 (ja) * | 1990-07-20 | 1998-12-09 | 株式会社日立製作所 | マイクロプロセッサ |
-
1993
- 1993-05-25 JP JP5122622A patent/JPH0651984A/ja active Pending
- 1993-06-02 KR KR1019930009838A patent/KR940000960A/ko not_active Application Discontinuation
- 1993-06-04 EP EP93109051A patent/EP0573071A3/en not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008123361A1 (ja) | 2007-03-29 | 2008-10-16 | Nec Corporation | 再構成可能なsimd型プロセッサ及びその命令実行制御の方法 |
JP2016009907A (ja) * | 2014-06-23 | 2016-01-18 | 日本電信電話株式会社 | プログラマブルデバイスおよびその制御方法 |
Also Published As
Publication number | Publication date |
---|---|
EP0573071A2 (en) | 1993-12-08 |
KR940000960A (ko) | 1994-01-10 |
EP0573071A3 (en) | 1995-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6256726B1 (en) | Data processor for the parallel processing of a plurality of instructions | |
JP2834837B2 (ja) | プログラマブルコントローラ | |
US6560697B2 (en) | Data processor having repeat instruction processing using executed instruction number counter | |
JP2002073330A (ja) | データ処理装置 | |
JPH0810428B2 (ja) | データ処理装置 | |
JPH05233271A (ja) | データプロセッサ | |
JPH07120278B2 (ja) | データ処理装置 | |
EP1680735A2 (en) | Apparatus and method that accomodate multiple instruction sets and multiple decode modes | |
JP3510729B2 (ja) | 命令実行方法および命令実行装置 | |
JPH0651984A (ja) | マイクロプロセッサ | |
JPH096614A (ja) | データ処理装置 | |
JPH0769806B2 (ja) | データ処理装置 | |
JP3461887B2 (ja) | 可変長パイプライン制御装置 | |
JPH06131180A (ja) | 命令処理方式および命令処理装置 | |
JP3147884B2 (ja) | 記憶装置及び情報処理装置 | |
JP2000357089A (ja) | データ処理装置 | |
JP3102399B2 (ja) | データ処理装置及び方法 | |
JP2825315B2 (ja) | 情報処理装置 | |
JPS63293638A (ja) | データ処理装置 | |
JPH0997180A (ja) | プログラマブルコントローラ | |
JPH0769805B2 (ja) | データ処理装置 | |
JPH07210384A (ja) | 浮動小数点演算装置 | |
JPH0769801B2 (ja) | データ処理装置 | |
JPH03164945A (ja) | データ処理装置 | |
JPH10320197A (ja) | 条件実行命令を備えるマイクロプロセッサ |