JPH04175928A - マイクロプロセッサ - Google Patents

マイクロプロセッサ

Info

Publication number
JPH04175928A
JPH04175928A JP30241690A JP30241690A JPH04175928A JP H04175928 A JPH04175928 A JP H04175928A JP 30241690 A JP30241690 A JP 30241690A JP 30241690 A JP30241690 A JP 30241690A JP H04175928 A JPH04175928 A JP H04175928A
Authority
JP
Japan
Prior art keywords
instruction
signal line
signal
output
processing
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
Application number
JP30241690A
Other languages
English (en)
Inventor
Susumu Narita
進 成田
Tetsuhiko Okada
岡田 哲彦
Fumio Arakawa
文男 荒川
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP30241690A priority Critical patent/JPH04175928A/ja
Publication of JPH04175928A publication Critical patent/JPH04175928A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は複数の処理ステージを有するマイクロプロセッ
サ、特にその並列処理制御方式に関する。
〔従来の技術〕
従来の処理ステージの並列実行制御については。
「並列計算機構成論」富田眞治著、昭晃堂、1988年
、第35から37頁(以下、従来技術1と言う)におい
て論じられている。上記従来技術1で論じられている命
令パイプライン方式は、従来の汎用大型計算機、マイク
ロプロセッサなどのあらゆる計算機で用いられている。
また、「2レベルのキャッシュやパイプライン処理の工
夫で速度を上げた大型コンピュータA COS 150
0J馬場征彦他、日経エレクトロニクス、1985.7
.15、pp233−279 (以下、従来技術2と言
う)で論じられているように、各種のバイパス機能を用
いてパイプラインの乱れを抑制する工夫がなされている
〔発明が解決しようとする課題〕
上記従来技術1は、計算機に与えられる命令はほぼ全部
の処理ステージを使用することを想定しており、かつ簡
単な制御回路を採用している。この命令パイプライン方
式の利点は、制御回路が小さく簡単な点にある。
しかし実際には各命令が使用しない処理ステージの割合
も多く、その場合には各処理ステージの無駄な時間にな
っていた。
上記従来技術2は、ロード命令、演算命令、ストア命令
を連続して実行するときに生ずるパイプラインの乱れを
押さえるために、特別なデータ転送経路を設けている。
しかしこの転送経路は使用されるケースはごく限られて
いる。また、パイプラインの乱れの抑制はできても、短
縮はできない。
すなわち、1命令当たり1サイクルを要するとすれば、
3命令で最低でも3サイクルかかる。
本発明の目的は、この無駄時間を減少させ、効率的に各
処理ステージを制御することによって、命令実行を高速
化することにある。
本発明によれば、3命令を3サイクル以下の時間で実行
することが可能となる。
〔課題を解決するための手段〕
上記目的を解決するために、命令コードまたはそのデコ
ード結果から各処理ステージの使用の有無を示す情報を
得、さらにその情報を複数の命令についてバッファリン
グし、その情報を用いて各処理ステージを経ずにデータ
を転送できるように、転送経路を独立に設けた。
〔作用〕
上記目的を達成するためには、処理ステージの使用の有
無に関する情報(以下、ステージ使用情報と略す)を、
複数の命令についてバッファリングしなければならない
。そのため、命令デコーダは命令からステージ使用情報
を高速に抽出(デコード)する必要がある。あるいは別
の解決方法として、あらかじめ命令コード中にステージ
使用情報を埋め込んでおくこともできる。いずれかの方
法によって得られたステージ使用情報は一時的にバッフ
ァリングされる。
バッファリングされたステージ使用情報は、専用回路を
用いて高速に解析される。解析の結果は各命令の具体的
なステージ制御情報と結ぶ付けられ、結局へのサイクル
で実行可能な全ての処理ステージの制御情報が得られる
。従来の命令パイプライン方式と異なり、ステージ使用
情報を用いて処理のスケジューリングを行なっているた
め、各処理ステージを効率良く動作させることができる
〔実施例〕
以下、第1図のマイクロプロセッサを用いて、本発明の
一実施例を説明する。
第1図に示すようにマイクロプロセッサ1は、次の7つ
のブロック、すなわち、命令読出部2゜命令解読部3.
アドレス計算部4.オペランドフェッチ部5.演算部6
.オペランドストア部7゜入出力部8で構成される。こ
のマイクロプロセッサ1は一個のVLSIチップ内に収
められており、チップ外とは、アドレス信号線13.デ
ータ信号線14.制御信号線15で接続されている。
命令やデータは、チップ外部のメモリから、外部信号線
13,14.15を用いて取り込まる。
取り込まれた命令は入出力部8から信号線9を介して、
命令続出部2に送られる。命令読出部2でバッファされ
た命令は、信号線10を介して命令解読部3に送られる
。命令解読部3では命令の解読が行なわれ、信号線11
を介して、アドレス計算部4.オペランドフェッチ部5
.演算部6.オペランドストア部7の制御信号が送られ
る。また、各ブロック4,5,6.7から命令解読部3
には同じく信号線11を介して応答がなされる。各ブロ
ック4,5,6.7および入出力部8は処理内容に応じ
て種々のデータを交換するが、第1図中では信号12と
して簡略化して示した。
従来のマイクロプロセッサは、第12図のような構成で
あり、アドレス計算部、オペランドフェッチ部、演算部
、オペランドストア部が直列に並び、パイプライン方式
で制御されていた。
本発明の場合、これらのブロックは第1図に示すように
並列に接続され、命令解読部3がこれらの処理を制御す
る。パイプライン方式に比べて、本発明の制御方式は、
制御回路が複雑になるが、処理の並列度を高めることが
可能である。その効果については第13図を用いて後述
する。
第2図は、第1図中の命令解析部3の詳細な構成図であ
る。命令解析部3は、命令デコーダ20゜マイクロRO
M21.命令アドレス発生器22゜デコード情報バッフ
ァ(以下、DIBと略す)23を内部にもつ。
命令解析部3には信号線1oを介して命令が入力される
。入力された命令は命令デコーダ20でデコードされ2
デコード結果のうち、他のブロック4,5,6.7への
制御情報は、信号線24゜セレクタ30.信号線31を
介してDIB23に入力される。
デコード結果のうち、マイクロアドレスは信号線25.
セレクタ28.信号線29を介してマイクロROM21
に入力される。
マイクロROM21からの出力のうち、他のブロック4
,5,6.7への制御情報は、信号線26、セレクタ3
0.信号線31を介してDIB23に入力される。
また、マイクロROM21からの出力のうち、マイクロ
アドレスは信号線27.セレクタ28、信号11!29
を介して再びマイクロROM21に入力される。
さらにまた、命令アドレス発生器22では、命令アドレ
スが生成され、信号線32を介してDIB23に入力さ
れる。
DIB23ではデコード情報と命令アドレスのバッファ
リングがなされ、信号11−1を介してステージ別制御
情報が出力され、信号11−2を介して命令アドレスが
出力され、他のブロック4゜5.6.7から信号11−
3を介してステージ別応答信号が入力される。
命令アドレス11−2は、アドレス計算部4に送られる
。また、信号11−1と11−2は他のブロック4,5
,6.7と接続されている。マイクロROM21は命令
デコーダ2oの処理を補助する役割を持つ。
本発明ではマイクロROMの使用は本質的ではないので
、詳細な説明は省略する。
命令解読部3では、次々に入力される命令10を命令デ
コーダ20でデコードする。また同時にそれらの命令の
命令アドレスを命令アドレス発生器22で生成する。そ
うして得られた、命令のデコート情報31と命令アドレ
ス32は、DIRにおいてバッファリングされる。DI
Rには複数の命令のデコード情報及び命令アドレスを保
持でき、それらの内で並列に実行可能な処理がIuB中
で見出され、ステージ別制御情報11−1として出力さ
れる。ステージ別応答信号11−3は制御信号11−1
を用いて行われた実行要求に対する応答信号である。命
令アドレス11−2はアドレス計算部4においてアドレ
ス計算に使用される。
第3図は、第2図中のDIB23の詳細な構成図である
。DIB23は、DIRポインタ部40(以下、DIB
Pと略す)、ステージ制御テーブル42(以下、SCT
と略す)、レジスタ・フンフリクト・チエツク回路43
(以下、RCCと略す)、デコード情報テーブル44(
以下、DITと略す)、プログラム・カウンタ・テーブ
ル45(以下、pcと略す)、DIB制御部47(以下
、DrBCと略す)から成る。
DIB23への入力信号線31は、ステージ制御信号3
1−1、ストア・レジスタ信号31−2゜ステージ別制
御信号31−3に別れて、それぞれ5CT42.RCC
43,DIT44に入力される。命令アドレス32は、
PC45に入力される。
DIBP40.5CT42.RCC43,DIT44゜
PC45はすべて8つのカラムから構成される。
これら8つのカラムは後述するように縦横に接続されて
いる。その接続の基本となる信号が、DIBP40から
出力される、各5本の信号線41−1から41−8であ
る。DIBC47には、SCTからのステージ制御信号
46、他のブロック4,5,6゜7からのステージ別応
答信号11−3が入力され、DIBP40の制御信号4
8が出力される。また、DIT44からはステージ別制
御信号11−1が出力され、PC45からは命令アドレ
ス信号11−2が出力される。
以下、第4図、第5図、第6図、第7図は第3図中のブ
ロックDIBP、SCT、RCC,DIT。
pcの詳細説明図である。SCT、RCC,DIT。
PCは、8つのカラムで構成されており、デコード情報
31及び命令アドレス32を各8個保持できる。DIT
に保持したデコード情報とPCに保持した命令アドレス
は、SCTすなわち40とDIR制御回路(以下、DI
BCと略す)すなわち47と、DIRポインタ(以下、
DIBPと略す)の制御に従い、8つのカラム中のいず
れかに保持しているデータを信号11−1.11−2と
して出力する。
レジスタ・コンフリクト・チエツク回路43(以下、R
CCと略す)は、データの整合性を保証するために、レ
ジスタのコンフリクトを検出する回路である。
例えばレジスタROの値を書き換える命令と、レジスタ
ROを読み呂す必要がある命令の処理を並列に実行しよ
うとしている場合を想定する。
ROを読み出す命令がROを更新する命令よりも、プロ
グラム中で先行している場合、まずROが読み出されて
その後に更新されなければならない。
逆にROを更新する命令がROを読みだす命令に先行し
ている場合、まずROが更新されその後に、更新後の値
が読みだされなければならない。マイクロプロセッサ内
で複数の命令を並列に処理する場合には、このようにレ
ジスタのコンフリクトをチエツクし、データの整合性を
保証する必要がある。RCCはそのチエツクを行う回路
である。
第4図は、第3図中のDIBPすなわち4oの詳細な構
成図である。DIBP40は、DIBPO(8つのカラ
ムを区別するため、Oから7の識別番号をつける。以下
、SCT、RCC,DIT、PCにおいても同様である
。この際例えば、DIBP40−Oとはせず、省略形と
してDIBPOと記す。)すなわち400から、DIB
P7すなわち407までの8つのブロックで構成されて
いる。DIBPOから7の各ブロックからは5本の信号
Pid。
Pca、Pof、Pex、Psがそれぞれ出力される。
たとえばDIBPOからは、PidOすなわち41−1
−1.PcaOすなわち41−1−2、PofOすなわ
ち41−1−3.PexOすなわち41−1−4.Ps
すなわち41−1−5の5本が出力される。DIBP4
0はDIBC47からの制御信号48により制御される
第5図は第3図中の5CT42の詳細な構成図である。
5CT42もDIBP40と同様に5CTOすなわち4
20から、5CT7すなわち427までの8つのブロッ
クで構成される。各ブロックは[IIBP40から出力
された5本の信号線(例えば5CTOすなわち420の
場合には、41−1−1から41−4−5の5本)が通
っている。また、デコード情報信号31−1が8つのブ
ロックに共通に入力される。デコード情報信号31−1
への出力ゲートはすべてトライステートになっており、
信号出力の衝突が回避されている。5CT42からの出
力信号46−1から46−5は、入力信号31−1−1
から31−1−5と同一の信号線であるが、5CT40
に入力される場合と出力される場合を区別するために別
の信号名としている。
5CTOすなわち420から、5CT7すなわち427
までの8つのブロックの各々には、1ビットのラッチが
4つずつある。
例えば5CTOすなわち420には、428−1から4
28−4までの4つのラッチがある。これらのラッチは
すべて、Pidがアサートされたときに値が書き込まれ
る、例えばラッチ428−1の場合、PidOすなわち
41−1−1がアサートされたときに信号31−1−1
の値が書き込まれ、PcaOすなわち41−1−2がア
サートされたときに信号31−1−1にラッチ428−
1に保持されている値が出力される。以下同様に、ラッ
チ428−2,428−3,428−4は5PidOす
なわち41−1−1がアサートされたときに書き込みが
行なわれ、それぞれPofOすなわち41−1−3.P
exOすなわち41−1−4.PsOすなわち41−1
−5がアサートされたときに読み出しが行なわれる。尚
、5CTIすなわち421から、5CT7すなわち42
7までは、5CTOすなわち420と同一の構造である
第6図は、第3図中のRCC43の詳細な構成図である
。RCC43もまた、RCCOすなわち430から、R
CC7すなわち437までの8つのブロックで構成され
ている。8つのブロックの各々には5CT42と同様に
、DIBP40から出力された5本の信号線が通過して
いる。例えば、RCCOすなわち430の場合、41、
−1−1から41−1−5までの5本が通っている。ま
た、第3図中のDIT44から信号RRO(すなわち4
45)。
RRI (すなわち446)が入力され、同じくD I
 T 44 ニ対シテ信号RCO(すナワち447)が
出力される。RCCOすなわち430から、RCC7す
なわち437までの各ブロックは、同一の構造である。
以下、RCCOすなわち430について説明する。RC
COすなわち430は、5ビットレジスタ1つと、8つ
の5ビット−数比較器で構成される。5ビットレジスタ
438は、PidOすなわち41−1−1がアサートさ
れたときに信号線31−2の値が書き込まれる。レジス
タ438に保持されている値は、常に8つの一致比較器
439−1から439−8に入力される。−数比較器の
もう一方の入力は、8つのブロックを通過する信号線か
ら行なわれる。
例えば−数比較器439−1の場合、信号線441から
の値が入力される。信号線441には、RROOすナワ
ち446を始め、RRIO,−。
RR70と、8つの信号線がトライステート・ゲートを
介して接続されている。すなわち、信号線441にはR
ROOからRR70までのいずれか一つの信号の値がの
る。−数比較器の出力は、入力と同様にトライステート
・ゲートを介して出力される。例えば−数比較器439
−1の場合、比較結果はトライステート・ゲートを介し
て信号線443に出力される。そしてさらに、信号g4
43と信号線444の値はゲート448において論理和
がとられる。ゲート448の出力はさらにトライステー
ト・ゲートを介して、信号線RCOすなわち447へと
送られる。
第7図は、第3図中のDIT44とPC45の詳細な構
成図である。DIT44とPC45もまた、DITO,
PCOすなわち460から、DIT7 。
PC7すなわち530までの8つのブロックで構成され
ている。8つのブロックは同一構造である。
以下ではDITO,PCOすなわち460について説明
する。
DITO,PCOすなわち460 ニは、DIBP40
から出力された信号線41−1−1から41−1−5の
他に、RCC43から出力された信号線447、信号線
31−3を介してステージ別制御情報、信号線49を介
して命令アドレスが、それぞれ入力される。
また、信号線RROOすなわち445と信号線RROI
すなわち446が、RCC43に対して出力される。信
号線31−3と信号線49は、8つのブロックを通過し
て、DIT、PCすなわち44.45から出力されても
いる。信号線31−3と信号線11−1および、信号線
49と信号線11−2は同一の信号線であるが、入力と
出力を区別するために別の信号名としている。尚、信号
gIL−1−5から11−1−8は、出力のみの信号線
である。DITO,PCOすなわち460から、DIT
7.PC7すなわち530までの8つのブロックはすべ
て同一の構想である。
以下、DITO,PCOすなわち460について説明す
る。DITO,PCOすなわち460には、461から
465までの5つのラッチがある。
このうち461から464までのラッチは、ステージ別
制御情報を保持する。ラッチ465は、命令アドレスを
保持する。
さらに言えば、ラッチ461はアドレス計算部4の制御
情報を保持し、ラッチ462はオペランドフェッチ部5
の制御情報を保持し、ラッチ463は演算部6の制御情
報を保持し、ラッチ464はオペランドストア部7の制
御情報を保持する。
各ラッチのビット幅は、マイクロプロセッサ固有のもの
であり、本実施例ではこれを限定しない。
ラッチ461から465は全て、信号1iPidoすな
わち41−1−1がアサートされたときに書き込みが行
なわれる。書き込まれる値は、ラッチ461から465
のそれぞれについて、信号線31−3−1.31−3−
2.31−3−3゜31−3−4.49の値である。
読み出しは、同じく461から465の各ラッチについ
て、信号線41−1−1から41−1−5のそれぞれが
アサートされたときに行なわれる。
出力光は、ラッチ461の場合、信号線445゜446
.447.31−3−1およびゲート466である。ゲ
ート466への出力を除いて他は全て、トライステート
・ゲートを介して出力が行なわれる。ここに、信号線4
45,446は各5ビットの信号線である。これらの値
は、ラッチ461の値を読み出す際に、やはり信号線1
1−1−1の一部の信号線に出力される。ラッチ462
から464は、ラッチ461と同一の構造である。また
、ラッチ465は、もう少し簡単な構造であり、ラッチ
461と比べて、信号線445,446、およびアンド
・ゲートへの出力がない。
続いて第8図から第11図のフロー・チャートを用いて
、処理の流れを説明する。
第8図は、DIR23への書き込み処理のフローを示し
ている。まず、ステップ81において。
命令デコード処理が終了したかどうかを判断する。
ここで言う命令デコード処理とは、命令デコーダ20又
はマイクロROM21でのデコートのことを言う。デコ
ート結果は、信号線31を介してDIB23に入力され
る。命令デコードを完了していた場合、処理はステップ
82に移行する。命令デコードを完了していなかった場
合、処理はステップ85に移行し、書き込み処理を終了
する6ステツプ82では、DIB23に空きがあって、
書き込みが可能かどうかを判断する。DIB23へのデ
コード結果の書き込みは、カラム毎に行なう。DIB2
3には8つのカラムがあるため、最大8個のデコード結
果を保持することができる。
DIB23に空きがあるか否かの判断は、DIBP40
において行なわれる。DIB23に空きがある場合には
ステップ83に処理を移行し、空きがない場合には書き
込み処理を終了する。
続いてステップ83では、ポインタPidの更新を行な
う。信号線Pidは、第4図に示されているように、P
iclOすなわち41−1−1からPid7すなわち4
1−8−1までの8本がある。
41−1−1から41−8−1の8本の信号は、常にど
れか1本の信号だけがアサートされる。以下、そのアサ
ートされた信号線PidをポインタPidと呼び、ポイ
ンタPidがあるカラムでアサートされることをそのカ
ラムを指していると呼ぶことにする。ステップ83では
、ポインタPidを一つ進め、ステップ84に移行する
ステップ84では、Pidの指示するカラムに、デコー
ド情報の書き込みを行なう。ポインタPidはDIBP
40にその値が保持されているが、書き込み時を除いて
は、他のブロックすなわち5CT42やRCC43など
に対してPidの出力は行なわない。ステップ84にお
いて初めてポインタPidの値が出力され、書き込みが
行なわれる6書き込みが行なわれるデコード情報につい
て、再び第5図から第7図を用いて簡単に説明する。
ポインタPidOすなわち信号8!41−1−1がアサ
ートされ、カラムOに書き込みが行なわれる場合につい
て説明する。5CTO内の4つのラッチ428−1から
428−4には、信号線31−1−1から3l−1=4
の値が書き込まれる。
信号線31−1−1から31−1−4は、各1ビットの
信号であり、ステージ制御情報である。各信号は、デコ
ードされた命令が、その実行時に処理部4から7のいず
れを使用するかどうかを示している。その命令がその処
理部(ステージ)を使用する場合には1.使用しない場
合には0が信号線に出力される。
信号[31−1−1から31−1−4は順に、アドレス
計算部4.オペランドフェッチ部5.演算部6.オペラ
ンドストア部7の使用の有無を示す値がのる。
例えばある命令がデコードされ、その命令がアドレス計
算部4とオペランドストア部7を使用し。
他の二つの処理部を使用しない場合には、信号線31−
1−1から31−1−4の値は、1001となる。そし
て書き込みの結果、ラッチ428−1から428−4が
保持する値も、1001となる。
またとなりのブロックRCCOでは、信号線31−2の
値がラッチ438に書き込まれる。信量線31−2にの
る値は、そのデコードされた命令が実行の最後で更新す
るレジスタの番号である。
さらにとなりのブロックであるDITO,PCすなわち
460では、信号線31−3−1から31−3−4およ
び信号g49の値がラッチ461から465に書き込ま
れる。信号線31−3−1から31−3−4はそれぞれ
、アドレス計算部4゜オペランドフェッチ部5.演算部
6.オペランドストア部7の制御信号である。これらの
制御情報は一度これらのラッチに保持され、タイミング
を合わせて効率良く出力されることになる。ラッチ46
5には信号線49にのった命令アドレスが書き込まれる
。この命令アドレスは、書き込まれた命令の先頭アドレ
スである。以上のようにして、DIB23に書き込み処
理が行なわれる。
第9図は、DIB23からの読み出し処理のフローを示
している。まず、ステップ91において、S CT 4
2 、 DIBC47,DIBP40を用いてポインタ
Pea、Pof、Pex、Psを更新する。
この処理については第10図を用いて後述する。
続いてステップ92において、レジスタ・コンフリクト
・チエツクを行なう。レジスタ・コンフリクト・チエツ
クとは、レジスタの値の書き込みと読み出しの順序が正
しく行なわれるためになされる検査である。本実施例の
場合には、RCC43とDIB44を用いて行なわれる
詳細は第11図を用いて後述する。ステップ92で行な
ったレジスタ・コンフリクト・チエツクの結果は、ステ
ージ別にステップ93で判断される。
レジスタ・コンフリクトが起こっていない場合には処理
はステップ94に移行し、起こっている場合には処理は
ステップ95に移行する。ステップ94では、ステージ
別に、ポインタの指示するカラムからステージ別制御情
報と命令アドレスが読み出される。
ステップ95では、ステージ別出力情報と命令アドレス
の前出力値が保持される。
読み出される情報について、再び第5図から第7図を用
いて説明する。
読み出しはステージ別、すなわち処理部4,5゜6.7
について並列に処理される。4つの処理部に関する読み
出し動作はほぼ同一なので、アドレス計算部4について
のみ説明する。アドレス計算部4を制御する情報の読み
出しは、ポインタPeaによって指示される。すなわち
、ポインタPidと同様に、ポインタPeaもまた8本
(41−1−2から4l−8−2)のうち−本のみがア
サートされ、それによって読み比すべき制御情報のはい
っているカラムが指示される。ポインタPidと異なる
のは、ポインタPeaの場合、常に8本のうちいずれか
1本がアサートされている点である。
たとえばPcaOすなわち41−1−2がアサートされ
ており、カラム0からアドレス計算部4の制御情報が読
み出される場合について説明する。
まず、PcaOすなわち信号線41−1−1がアサート
されると、5CTOすなわち420内のラッチ428−
1の値が、信号線46−1に出力される。この信号46
−1はDIBC47に入力され、ステップ91と94で
使用される。また、第7図のDITOにおいては、Pc
aOのアサートによって、ラッチ461の値が信号線1
1−1−5に出力される。また、ラッチ461からゲー
ト466に対して、1ビットの信号が出力される。この
信号は、ラッチ428−1 (第5図)に保持されてい
る値のコピーであり、アドレス計算部4の使用の有無が
示されている。この信号はさらに信号RCOすなわち4
47と論理積がとられ、その結果が信号線11−1−1
に出力される。信号線11−1−1の値が1の場合、ア
ドレス計算部4は信号線11−1−5にのっている制御
情報にしたがって動作し、出力値を更新する。また値が
0の場合、前出力値を保持する。
以上の処理は他のステージすなわちオペランドフェッチ
部5.演算部6.オペランドストア部7についても同様
である。尚、命令アドレス11−2は、ポインタPsに
したがって出力される。
第10図は、第9図のステップ91の処理をさらに詳細
に示したフロー°チャートである・各ポインタすなわち
Pca、Pof、PexvPsの更新は次のように行な
われる。ステップ91の処理はステージ別に行なわれる
が、その処理はほぼ同一である。そこでアドレス計算部
4の制御情報の読み出し位置を指示するポインタである
、Pcaについてのみ説明する。まず、ステップ101
において、アドレス計算部4の現在処理中の処理が終了
したか否かを判断する。
もし処理が終了しており、アドレス計算部4を使用する
ことが可能な状態にあれば、ステップ102に移行する
。処理がまだ終了していなければ、ステップ105に移
行し、ポインタの更新は行なわない。
ステップ102では、ポインタを−っ進めることが可能
かどうかをチエツクする。前のステージのポインタ、す
なわちポインタPsの前がPex。
Faxの前がPof、Pofの前がP c a 、 P
eaの前がPidである。また、Pidの前がPsでも
ある。これらのポインタは同一のカラムを指すことはで
きるが、前のポインタを追い越すことばできない。この
チエツクをステップ102で行なう。その結果、ポイン
タ更新が可能であればステップ103へ、そうでなけれ
ばステップ105へ処理を移行する。
ステップ103では、ポインタPeaを一つ進める。そ
してさらにステップ104に移行する。
ステップ104では、Pcaによって指示されているカ
ラムの5CT42内のステージ制御情報を読む。例えば
Pcaが一つ進められて、PcaOすなわち41−1−
2がアサートされた場合を想定する。その場合、ラッチ
428−1の値が信号線46−1を介して読み出される
。信号線46−1はDIBC46に入力される。このと
き、信号線46−1の値が1であれば、処理はステップ
105に移行し、第9図のステップ91の処理は終了す
る。
逆に信号線46−1の値がOであった場合には。
処理は再びステップ102に戻る。このようにして、信
号線46−1の値を1にするようなカラム位置までポイ
ンタが進められる(もちろんDIRに最も最後に入れら
れた命令を越えてはポインタを更新しない)。第10図
で示した処理すなわち第9図のステップ91の処理は、
専用の回路を用意することで高速に処理する。第4図、
第5図はその一部を示している。
第11図は、第9図のステップ92の処理をさらに詳細
に示したフロー・チャートである。ステップ91で更新
されたポインタは、大抵の場合処理可能な、ステージ別
制御情報の位置を示しているが、前述のレジスタ・コン
フリクト・チエツクを行なう必要がある。まず、ステッ
プ111で、そのポインタの指示するカラムからポイン
タPsの指示するカラムまでの範囲のストア・レジスタ
番号(RCC内のレジスタに保持されている)と、その
ステージで読み出すレジスタ番号の一致比較を行なう。
この処理は複雑であるので、第6図、第7図を用いて説
明する。状況としては、DITOすなわち460内のア
ドレス計算部制御情報を保持しているラッチ461から
読み出しを行ない、がっその読み出した制御情報に対し
てレジスタ・コンフリクト・チエツクを行なう場合を想
定する。他のステージすなわち、オペランドフェッチ部
5.演算部6.オペランドストア部7の制御情報の読み
出しとレジスタ・コンフリクト・チエツクの動作はこれ
と同様なので、説明は省く。これら4つのステージにつ
いてのレジスタ・コンフリクト・チエツクは全て同時に
行なわれる。まず、ラッチ461から信号線RROOと
RROIすなわち445.446に、ラッチ461に保
持された制御情報を実行する場合に読み出されるレジス
タの番号が2つ出力される。これら信号線445゜44
6はRCC43に入力される。入力された信号線445
,446(7)値は、RCCOすなわち430内で、信
号1iA441,442に出力される(ここで信号線4
45,446は他の信号線にもトライステート・ゲート
を介して接続されているが、それらの信号線には出力を
行なわない。この制御は、ポインタPca、Psを用い
てRCC43内で行なわれる。)。これによって−数比
較器439−1,439−2の入力がそろい、値の比較
が行なわれる。また、−数比較器439−1,439−
2と同様の処理が、RCCIすなわち431からRCC
7すなわち437までのブロック内にある残り14個の
一致比較器でも行なわれる。これら16個の一致比較器
の一方の入力は、信号線441又は442の値である。
比較のもう一方は例えば−数比較器439−1の場合、
ラッチ438に保持された、ストア・レジスタ番号であ
る。ここでさらに、第11図ステップ111で言うとこ
ろの範囲の指定が行なわれる。具体的には、ポインタP
sとポインタPeaで挟まれた範囲で、−致比較を行な
う。この制御はRCC43内で行なわれる。前記16個
の一致比較器のうち、この範囲内にありかつ、値が一致
した比較器は、信号線443又は444にその値を出力
する。信号線443上ではこのようにして、8個の一致
比較の結果の論理和がとられる。その値はさらにゲート
448において論理和がとられ、信号線RCOすなわち
447を介して、DIT、PCすなわち44.45に戻
される。結局、信号線RCOの値がラッチ461に保持
された制御情報がレジスタ・コンフリクトを起こしてい
るかどうかの判定結果となる。この処理が、第11図の
ステップ112および113,114である。レジスタ
・コンフリクト信号RCOすなわち447の値が1の場
合、レジスタ・コンフリクトを起こしており、値がOの
場合、レジスタ・コンフリクトを起こしていないことを
示している。信号線447はゲート466に入力され、
その否定値がラッチ461中の1ビットと論理積がとら
れる。ラッチ461中の1ビットは、そこに保持された
制御情報が有効であるか否かを示しているため、結局ゲ
ート466の出力はラッチ461の制御情報にしたがっ
て、アドレス計算部4が動作すべきか否かを示す、ポイ
ンタPcaの指示にしたがって、ラッチ461の値とゲ
ート466の出力が、それぞれ信号線11−1−5と1
1−1−1に出力される。信号線11−1−1の値が1
の場合、アドレス計算部4は制御信号11−1−5にし
たがって動作し、出力値を更新する。信号線11−1−
1の値が0の場合。
アドレス計算部4は前出力値を保持する。以上のように
して、第9図のステップ92からステップ96までの処
理が実行される。
次に第1図に示した本実施例と、第12図に示すような
従来のマイクロプロセッサの構成について、簡単な比較
を行なう。第12図は、パイプライン処理を行なう、従
来のマイクロプロセッサの構成図である。マイクロプロ
セッサ120は、第1図の構成と比べて、アドレス計算
部123.オペランドフェッチ部124.演算部125
.オペランドストア部126が直列に接続されている点
が異なる。命令の実行タイミングにもこの構造がそのま
ま反映される。すなわち、第1図のマイクロプロセッサ
においては4つの処理部がより複雑に接続されているた
めに、これらの処理部をより効率的に動作させうる。こ
れを達成させるのが。
本発明で言うところのDIR(デコード情報バッファ)
である、第13図を用いてその効果を示す。
第13図aは、二つの命令AとBのデコード情報(第3
図の信号3l−1)が、それぞれ1100と0011で
あることを示している。このような二つの命令を、交互
に連続してABABABAB・・・と実行させる。この
実行の様子を、第12図のマイクロプロセッサについて
示したのが第13図す。
第1図のマイクロプロセッサについて示したのが第13
図Cである。第13図す、cともに横軸は時間、縦軸は
4つの処理ステージをとっである。
第13図すに示すように、第1図のマイクロプロセッサ
では、まず命令Aがアドレス計算部123(CA)で処
理される。次の時点では命令Aはオペランドフェッチ部
124で処理され、同時に命令Bがアドレス計算部12
3で処理される。以下同様に、一つずつタイミングをず
らしながら、命令が順に処理されていく、このようなパ
イプライン処理には、制御が容易であるという利点もあ
るために、従来用いられてきた。しかしながら、命令に
よっては例えばアドレス計算を行なわないものもあるに
もかかわらず、パイプライン処理の場合には必ずアドレ
ス計算部123を使用する。命令Aの場合には、第13
図aに示されているように、アドレス計算とオペランド
フェッチは行なわない。つまり、第13図すに斜線で示
した部分の処理は、実は無駄な処理である。同じ命令列
を第1図のマイクロプロセッサに実行させた結果が、第
13図Cである。第13図すと比べると斜線を施した無
駄な処理がなくなり、高速に実行されていることがわか
る。
〔発明の効果〕
本発明によれば、マイクロプロセッサの処理が高速化で
きる。具体的には、従来のパイプライン処理では1命令
あたり1サイクルを必要としていたものが、本発明によ
れば1命令あたり1サイクル以下で実行できるようにな
る。
【図面の簡単な説明】
第1図は本発明の一実施例のマイクロプロセッサの構成
図であり、第2図は第1図中の命令解析部3の詳細な構
成図であり、°第3図は第2図中のDIB23の詳細な
構成図であり、第4図は第3図中のDIBP40の詳細
な構成図であり、第5図は第3図中の5CT42の詳細
な構成図であり、第6図は第3図中のRCC43の詳細
な構成図であり、第7図は第3図中のDIT44とPC
45の詳細な構成図であり、第8図はDIB23への書
き込み処理のフローチャートであり、第9図はDIB2
3からの読み出し処理のフローチャートであり、第1o
図は第9図のステップ91の処理をさらに詳細に示した
フローチャートであり、第11図は第9図のステップ9
2の処理をさらに詳細に示したフローチャートであり、
第12図はパイプライン処理方式を用いた従来のマイク
ロプロセッサの一構成図であり、第13図は第12図の
マイクロプロセッサと第1図のマイクロプロセッサで同
一の命令列を実行した際の処理の流れを比較した図であ
る。 1・・・マイクロプロセッサ、2・・・命令読出部、3
・・・命令解読部、4・・・アドレス計算部、5・・・
オペランドフェッチ部、6・・・演算部、7・・・オペ
ランドストア部、20・・・命令デコーダ、21・・・
マイクロROM。 23・・・DIB (デコード情報バッファ)、40・
・・DIBP (デコード情報バッファポインタ)、4
2・・・SCT (ステージ制御テーブル)、43・・
・RCC(レジスタコンフリクトチエツク部)、44・
・・DIT (デコード情報テーブル)、45・・・P
C(プログラムカウンタテーブル)、46・・・χ −−)賑 S 1 口 ′fJ 2 閃 窺令 に否イ占Iit    副御惰卆醍  アドレ人vJ 
B 図 ラコード楕販            弁企7トレ人V
J 5 ロ ′fJ 3 図 Gケ)35 第 9 口 )fJ/θ 図 第 11  回 第 12 口

Claims (1)

  1. 【特許請求の範囲】 1、命令デコード手段と、複数の命令デコード結果保持
    手段と、複数の処理部をもつマイクロプロセッサにおい
    て、各命令ごとに、各処理部のいずれを使用するかを示
    す情報をデコード結果の一部として出力し、該デコード
    結果保持手段によってこれを保持し、該各処理部の使用
    に関する情報を解析して、各処理部に制御情報を転送す
    るタイミングを制御することを特徴とするマイクロプロ
    セッサ。 2、上記各処理部の使用に関する情報が、各1ビットで
    示されることを特徴とする請求項1記載のマイクロプロ
    セッサ。
JP30241690A 1990-11-09 1990-11-09 マイクロプロセッサ Pending JPH04175928A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP30241690A JPH04175928A (ja) 1990-11-09 1990-11-09 マイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30241690A JPH04175928A (ja) 1990-11-09 1990-11-09 マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JPH04175928A true JPH04175928A (ja) 1992-06-23

Family

ID=17908657

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30241690A Pending JPH04175928A (ja) 1990-11-09 1990-11-09 マイクロプロセッサ

Country Status (1)

Country Link
JP (1) JPH04175928A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8326903B2 (en) 2008-01-04 2012-12-04 International Business Machines Corporation System and method for improved vector analysis

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8326903B2 (en) 2008-01-04 2012-12-04 International Business Machines Corporation System and method for improved vector analysis

Similar Documents

Publication Publication Date Title
EP0243892B1 (en) System for guaranteeing the logical integrity of data
US5299321A (en) Parallel processing device to operate with parallel execute instructions
JPH01502700A (ja) 境界合せされていないリファレンスを処理するrisc型コンピュータ及び同処理の方法
WO1994003860A1 (en) Massively parallel computer including auxiliary vector processor
JPH0786845B2 (ja) データ処理装置
JP2620511B2 (ja) データ・プロセッサ
JP2653037B2 (ja) データ処理システム
JPH07104784B2 (ja) デジタルデータ処理装置
JPH0248732A (ja) 命令パイプライン方式のマイクロプロセッサ
JPH03233630A (ja) 情報処理装置
JP2690406B2 (ja) プロセッサおよびデータ処理システム
US20030009652A1 (en) Data processing system and control method
JPS60178580A (ja) 命令制御方式
JPH0950376A (ja) データ処理装置
JPH09305401A (ja) コンピュータ及びコンパイラ
JP2673041B2 (ja) 命令実行制御方式
JPS61194566A (ja) ベクトルデ−タ参照制御方式
JPS6391756A (ja) 記憶装置の部分書き込み命令処理方式
JPH0546389A (ja) 並列処理装置
JP2576589B2 (ja) 仮想記憶アクセス制御方式
JPH0419575B2 (ja)
JPH0418658A (ja) 機能分散型計算機システム
JPH0253820B2 (ja)
JPH0238966B2 (ja)
JPS6343782B2 (ja)