JP3525985B2 - 中央演算処理装置 - Google Patents

中央演算処理装置

Info

Publication number
JP3525985B2
JP3525985B2 JP31817896A JP31817896A JP3525985B2 JP 3525985 B2 JP3525985 B2 JP 3525985B2 JP 31817896 A JP31817896 A JP 31817896A JP 31817896 A JP31817896 A JP 31817896A JP 3525985 B2 JP3525985 B2 JP 3525985B2
Authority
JP
Japan
Prior art keywords
data
bus
register
signal
instruction
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.)
Expired - Lifetime
Application number
JP31817896A
Other languages
English (en)
Other versions
JPH10161874A (ja
Inventor
和彦 原
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP31817896A priority Critical patent/JP3525985B2/ja
Publication of JPH10161874A publication Critical patent/JPH10161874A/ja
Application granted granted Critical
Publication of JP3525985B2 publication Critical patent/JP3525985B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】 【0001】 【発明の属する技術分野】本発明は、演算処理の対象と
なるデータの入出力制御を行う中央演算処理装置に関す
る。 【0002】 【従来の技術】従来から、データ処理速度の高速化の要
望に伴って、中央演算処理装置(以下、CPUと称す
る)の命令実行速度の高速化が図られている。CPUの
命令実行速度を向上させる技術として、1つの命令実行
が終了しないうちに次の命令実行を開始するパイプライ
ン処理が挙げられる。 【0003】パイプライン処理は、例えば1つの命令処
理を、「命令フェッチ」、「デコード」、「演算処理実
行」および「処理結果の格納(以下、ライトバックと称
する)」の4ステージに分割し、時間的に連続した複数
の命令処理を1ステージずつずらして実行する処理であ
る。 【0004】パイプライン処理において、「命令フェッ
チ」および「デコード」のステージが行われ、これらの
ステージの処理結果に基づいて、次の「演算処理実行」
のステージで演算処理を行うCPUの演算器が指定され
る。そして「演算処理実行」のステージで、指定された
演算器はCPU内に備えるレジスタに格納されているデ
ータを用いて演算処理を行う。その後、次の「ライトバ
ック」のステージで前述の演算処理の結果を演算結果デ
ータとして前記レジスタに格納する。 【0005】前記「ライトバック」のステージと並行し
て、次の命令処理における「演算処理実行」のステージ
が実行されており、上述のようにCPU内ではレジスタ
に格納されているデータが読出されている。この場合
に、「ライトバック」のステージにてレジスタに格納途
中である演算結果データを、演算器が演算対象となるデ
ータとして読出すときがある。このときに、いわゆるR
AW(Read After Write)ハザードといわれる問題が生
じる。このRAWハザードは、処理された新しいデータ
がレジスタに格納される前に、後続の命令がそのレジス
タから古いデータを読出してしまうことを防ぐために後
続の命令実行が滞ることをいう。この問題を回避するた
めに、演算結果データをレジスタに格納するとともに、
前記演算結果データの処理を行う演算器に入力する技術
(バイパス、又はフォワーディングと呼ばれるときもあ
る)が実現されている。このような技術として、メモリ
の入出力ポートにマルチプレクサを構成してメモリにデ
ータを書込むのと同時にその書込む位置からデータを読
出す特表平6−503195号公報に開示されている技
術が知られている。 【0006】次に、図4を参照してフォワーディング技
術の一例について説明する。図4は、従来のCPUの内
部構成を示すブロック図である。このCPUは、データ
が格納されるレジスタを複数備えたレジスタ群1、演算
処理を行う演算器3、演算器3からの演算結果データを
一時的に格納する演算結果ラッチ部4、32ビットのバ
ス幅を備える第1バス5、32ビットのバス幅を備える
第2バス6、第1バス5上のデータおよび第2バス6上
の演算結果データのいずれか一方を選択して演算対象デ
ータとして演算器3に出力するセレクタ7、前記セレク
タ7を制御するバイパス制御部11、及びレジスタ群1
のレジスタへのデータの読出し等の各種制御を行う制御
部13を備える。 【0007】制御部13は、「命令フェッチ」および
「デコード」のステージにおいて処理(命令読出し)を
行い、その処理結果に基づいて演算器3に制御信号(S
P)を与えると共に、演算器3の演算対象となるデータ
が格納されているレジスタを指定するレジスタ指定信号
(RP1)を前記レジスタ群1およびバイパス制御部1
1に出力する。 【0008】「演算処理実行」のステージにおいて、制
御信号(SP)が与えられた演算器3は、レジスタ群1
から第1バス5に読出されたデータを第1バス5からセ
レクタ7を介して取込み、取込んだデータを用いて演算
処理を行う。そして演算器3の演算結果である演算結果
データは、演算結果ラッチ部4に格納される。次の「ラ
イトバック」のステージにおいて、制御部13は、前記
演算結果データが格納されるレジスタを指定するレジス
タ指定信号(RP2)をレジスタ群1およびバイパス制
御部11に与える。そして前記演算結果データは、前記
レジスタ指定信号(RP2)によって指定されたレジス
タ群1のレジスタに格納される。 【0009】CPU内では上述の「ライトバック」のス
テージに並行して、次の命令処理の「演算処理実行」の
ステージが行われている。このステージにおいて、制御
部13は、演算器3に制御信号(SP)を与えると共
に、次の演算対象であるデータを前記レジスタ群1のレ
ジスタから読出して第1バス5上に出力するためにレジ
スタ指定信号(RP3)をレジスタ群1およびバイパス
制御部11に与えている。 【0010】上述の「ライトバック」のステージ、即ち
次の命令処理の「演算処理実行」のステージにおいて、
バイパス制御部11には、演算結果データを格納するレ
ジスタを指定するレジスタ指定信号(RP2)と、次の
演算対象であるデータを格納しているレジスタを指定す
るレジスタ指定信号(RP3)とがほぼ同時に入力され
ている。バイパス制御部11は、レジスタ指定信号(R
P2)とレジスタ指定信号(RP3)とが同一であるか
どうかを判断して、セレクタ7にセレクト指示信号(C
P)を出力する。同一である場合に、セレクタ7は第2
バス6上の演算結果データを演算器3に供給し、同一で
はない場合に、セレクタ7はレジスタ指定信号(RP
3)で指定されたレジスタから読出されたデータを演算
器3に供給する。これによって、レジスタ群1のレジス
タに格納中の演算結果データを次の演算対象のデータと
して用いるときに、演算結果データをレジスタに格納
し、その後に読出すために演算処理が滞るなどのRAW
ハザードを防止することができる。 【0011】 【発明が解決しようとする課題】しかしながら、上述し
た従来のCPUは、1つの演算器3に対して1つのセレ
クタ7を備える構成である。このため、CPUの演算器
3の個数および種類が増加するにつれてセレクタ7も増
加するため回路規模が増大するという問題がある。 【0012】また、複数種類の演算器、例えば演算処理
可能なデータのデータ幅がそれぞれ異なる演算器(例え
ばデータ幅8ビットのデータを処理する演算器Aとデー
タ幅32ビットのデータを処理する演算器B)をCPU
内に設ける場合を想定する。この場合に、演算器Aの8
ビットの演算結果データを第2バス6およびセレクタを
介して演算器Bに与えるときに、8ビットの演算結果デ
ータ以外の所望のデータではない24ビットのデータも
前記演算器Bに入力されることとなり、演算器Bの演算
動作が正常に行なわれないという問題が生じる。 【0013】上述の問題を解消するために特開平4−4
0519号公報に開示される技術を使用することができ
る。前記公報に開示される技術は、レジスタと演算器と
の間のバス幅64ビットのデータバスを4つに分割し、
分割されたデータバス(バス幅16ビット)毎にセレク
タをそれぞれ設ける構成である。そして各セレクタは、
演算器の処理の行うデータ幅および次の演算対象となる
データに基づいて、前回の演算器の演算結果データ、前
々回の演算器の演算結果データおよびレジスタからのデ
ータのいずれか1つをそれぞれ選択して演算器に与えて
いる。 【0014】しかしながら、前記公報に開示される技術
は、セレクタを各演算器に対して4つ構成する必要があ
る。したがって、上述のようにCPU内に構成する演算
器の種類が増加すると、回路規模の増大化および回路構
成の複雑化するという問題がある。 【0015】またCPUの処理速度の向上を図るバイパ
ス技術として、特開昭63−49832号公報に開示さ
れる技術は、記憶装置と演算装置との間のデータバスか
ら、演算装置と記憶装置又はパイプライン装置との間の
データバスにバイパスを形成している。しかし、この技
術はRAWハザードを防止することでCPUの処理速度
の向上を図るものではなく、単なるデータ転送を前記演
算装置を介さず行うことでCPUの処理速度の向上を図
るものである。 【0016】本発明の目的は、上述のRAWハザードを
防止することで演算処理の高速化を図るとともに回路規
模の増大化を防止し、さらに多種類のデータ幅のデータ
を取り扱うことを可能にする中央演算処理装置を提供す
ることである。 【0017】 【課題を解決するための手段】本発明の中央演算処理装
置は、上記の課題を解決するために 第1バスと、第2
バスと、前記第1バス上のデータを取込み演算処理を行
いその演算結果を前記第2バスに出力する演算手段と、
前記第2バス上のデータを格納すると共に、演算対象と
なるデータを出力するレジスタを複数個備えるレジスタ
群と、前記レジスタ群から出力されたデータ又は前記第
2バス上のデータのどちらか一方を選択して前記第1バ
スに出力する選択手段と、前記レジスタ群に対して前記
第2バス上のデータを格納するレジスタ及び演算対象と
なるデータを出力するレジスタを指定すると共に、指定
した両レジスタが同一である場合には前記第2バス上の
データを選択し、異なる場合には前記レジスタから出力
されたデータを前記選択手段が選択して出力する手段
と、前記第2バス上のデータのデータ幅を検出するデー
タ幅検出手段とを有する制御手段と、を備え、前記デー
タ幅検出手段に検出されたデータ幅が前期第2バスのバ
ス幅未満である場合に、残余のデータ幅については前記
レジスタから出力されたデータを前記選択手段は選択し
て出力するように制御することを特徴とする。 【0018】 【0019】ここで、前記中央演算処理装置ではパイプ
ライン処理が行われているとする。パイプライン処理で
は、1つの命令処理を「命令フェッチ」、「デコー
ド」、「演算処理実行」及び「処理結果の格納(以下、
ライトバックと称する)」の4ステージに分割してい
る。そして、時間的に連続した複数の命令処理(例え
ば、第1命令処理、第2命令処理)を1ステージずらし
て実行しているものとする。 【0020】上述の構成によれば、第1命令処理の「処
理実行」のステージでは、「命令フェッチ」および「デ
コード」のステージの処理結果に基づいて指定された1
つの演算手段が第1バス上のデータを取込んで演算処理
を行う。この演算処理後の第1命令処理の「ライトバッ
ク」のステージでは、前記演算手段の演算結果であるデ
ータを第2バスに出力し、さらにそのデータをレジスタ
群のレジスタに格納している。また中央演算処理装置で
は、この第1命令処理の「ライトバック」のステージと
並行して第2命令処理の「演算処理実行」のステージが
行われている。この第2命令処理の「演算処理実行」の
ステージにおいて、例えば前記演算手段とは異なる他の
演算手段が、前記第1命令処理の「ライトバック」のス
テージにおいて格納途中の第2バス上のデータを演算対
象として取込むときがある。このときに、制御手段は選
択手段を制御して前記第2バス上のデータを第1バスに
出力する。即ち演算手段がデータを取込むことのできる
第1バスに前記第2バス上のデータが出力される。した
がって中央演算処理装置に複数の演算手段を構成して
も、1つの選択手段を構成するだけで演算手段のRAW
ハザードを回避することができる。 【0021】 【0022】そして、本発明の、中央演算処理装置は、
複数種類の演算手段、即ち演算処理の行うことが可能な
データのデータ幅が異なる演算手段を複数個設けられる
場合でも処理することができる。例えば、32ビットの
データを演算処理する演算手段と8ビットのデータを演
算処理する演算手段とを備える場合を想定する。第1命
令処理の「演算処理実行」のステージで8ビットの演算
手段で演算処理され、第1命令処理の「ライトバック」
にて格納中である第2バス上の8ビットのデータを、次
の第2命令処理の「演算処理実行」のステージにて演算
処理を行う32ビットの演算手段で用いるときがある。
このときに、第2バス(32ビット:第1バスも同様)
上には前記8ビットのデータしか存在せず、第2バスの
残余の24ビットのデータは有効なデータではない。こ
のため、選択手段は、データ幅検出手段の検出結果であ
る8ビットのデータ幅については前記第2バス上のデー
タを第1バスに出力し、残余の24ビットのデータ幅に
ついては前記レジスタ群から出力されたデータを第1バ
スに出力する。これによって、演算処理するデータの幅
が相違する複数の演算手段を備える場合にも、所望のデ
ータを確実に第1バスに供給することができる。そして
各演算手段は所望のデータ幅のデータを取込み、確実に
演算処理できる。 【0023】 【発明の実施の形態】以下、図1乃至図3を参照して本
発明の中央演算処理装置(以下、CPUと称する)につ
いて説明する。 【0024】本発明のCPUは、パイプライン処理を行
って演算処理速度を向上している。パイプライン処理
は、1つの命令処理(命令実行パイプライン)を複数の
小さなステージに分割して実行している。たとえば、1
つの命令処理は、「命令フェッチ」、「デコード」、
「演算処理実行」および「処理結果の格納(ライトバッ
ク)」の4ステージに分割される。そして、時間的に連
続する複数の命令処理を1つのステージずつずらして実
行している。 【0025】図1は、上述のパイプライン処理を行うC
PU20の内部構成を示すブロック図である。CPU2
0は、レジスタ群21、演算器23a,23b、演算結
果ラッチ部24a,24b、第1バス27、第2バス2
9、セレクタ30、出力ポート部32、及び制御手段3
3を含んで構成される。なお、制御手段33は、「命令
フェッチ」及び「デコード」のステージにおいて命令を
取込んでその命令に基づいて演算処理の実行を制御する
命令制御部34と、前記セレクタ30を制御して第2バ
ス29上のデータを第1バス27にバイパス転送するこ
とを実現するバイパス制御部35とを備える。 【0026】レジスタ群21は、読出しおよび書込み可
能な複数のレジスタR1〜Rnと入力されるデータを一
時的に格納するレジスタ入力ポート22とで構成され
る。各レジスタR1〜Rnには第1バス27および第2
バス29のバス幅と同じ32ビットのデータ幅のデータ
が格納される。そして、命令制御部34からデータの読
出しを示す信号(図示しない)およびレジスタ指定信号
(R1〜Rn:説明の便宜上レジスタの参照符号と同一
のものを使用する)がレジスタ群21に与えられると、
そのレジスタ指定信号(R1〜Rn)に指定されたレジ
スタR1〜Rnから32ビットのデータがセレクタ30
に読出される。また命令制御部34からデータの書込み
を示す信号(図示しない)およびレジスタ指定信号(R
1〜Rn)が与えられると、第2バス29上のデータは
レジスタ入力ポート22を介して前記レジスタ指定信号
(R1〜Rn)に指定されたレジスタに格納される。な
おデータの読出しのために命令制御部34から与えられ
るレジスタ指定信号を読出レジスタ指定信号とし、デー
タの格納のために命令制御部34から与えられるレジス
タ指定信号を書込レジスタ指定信号とする。 【0027】第1バス27は、32本の信号線C0〜C
31(バス幅32ビット)で構成される。この第1バス
27にはセレクタ30からレジスタ出力ポート部32を
介してデータ(データ幅32ビット)が供給される。第
2バス29も、32本の信号線A0〜A31(バス幅3
2ビット)で構成される。そして第2バス29には、前
記演算結果ラッチ部24a,24bから演算結果データ
が供給される。 【0028】演算器23a,23bは、第1バス27上
のデータを取込み、そのデータを用いて演算処理を行
う。演算器23aは第1バス27上のデータ(32ビッ
ト)の中からデータ幅8ビットのデータを取込み、その
データを用いて演算処理を行う。その演算処理の演算結
果である演算結果データは、データ幅8ビットのデータ
が格納可能な演算結果ラッチ部24aに一時的に格納さ
れる。また演算器23bは、第1バス27上のデータ
(32ビット)の中からデータ幅32ビットのデータを
取込み、そのデータを用いて演算処理を行う。その演算
結果である演算結果データは、データ幅32ビットのデ
ータが格納可能な演算結果ラッチ部24bに一時的に格
納される。 【0029】制御手段33の命令制御部34は、演算処
理の実行を制御する命令を読出し、読出した命令に基づ
いて複数の演算器23a,23bのいずれかを選択する
演算指示信号(SAa又はSAb)を出力する。命令制
御部34は、前記演算指示信号(SAa又はSAb)を
出力するとともに、演算対象となるデータを読出すため
の読出レジスタ指定信号(R1〜Rn)をレジスタ群2
1およびバイパス制御部35に出力する。また命令制御
部34は、第2バス29上に存在する演算結果データを
格納するための書込レジスタ指定信号(R1〜Rn)を
前記レジスタ群21およびバイパス制御部35に出力す
る。さらに、命令制御部34は、データ幅検出回路(図
示しない)を備え、第2バス29上に存在する演算結果
データのデータ幅を検出している。そして命令制御部3
4は、その検出結果に基づいて作成されたデータ幅信号
(DA1〜DA4)をバイパス制御部35に出力してい
る。データ幅信号(DA1)は、第2バス29の下位8
ビットの信号線A0〜A7上に前記演算結果データが存
在するかどうかを示す信号であり、存在する場合にハイ
レベルの信号を出力する。なお、他のデータ幅信号(D
A2〜DA4)においても同様に、第2バス29の信号
線A8〜A15、信号線A16〜A23及び信号線A2
4〜A31に前記演算結果データが存在するかどうかを
示す信号である。 【0030】制御手段33のバイパス制御部35は、命
令制御部34から与えられる読出レジスタ指定信号(R
1〜Rn)と書込レジスタ指定信号(R1〜Rn)とを
比較し、その比較結果と命令制御部34から与えられる
データ幅信号(DA1〜DA4)とによって、セレクタ
30を制御する。特にバイパス制御部35は、前記比較
結果が同一である場合に第2バス29上の演算結果デー
タを第1バス27にバイパス転送するようにセレクタ3
0を制御している。 【0031】セレクタ30は、読出レジスタ指定信号
(R1〜Rn)に指定されたレジスタR1〜Rnから読
出されるデータを入力すると共に、第2バス29上に存
在する演算結果データを入力する。そしてセレクタ30
は、バイパス制御部35から与えられるセレクタ指示信
号(CO1〜CO4)に基づいて、前記レジスタR1〜
Rnから読出されたデータおよび演算結果データのいず
れか一方のデータを出力ポート部32を介して第1バス
27上に供給する。出力ポート部32は、データを一時
的に格納して第1バス27に出力するときの調整を行っ
ている。 【0032】図2は、セレクタ30およびバイパス制御
部35の内部構成を示す回路図である。 【0033】バイパス制御部35は、比較器41と、4
つの論理積回路AN1〜AN4とを含んで構成される。
比較器41の一方入力端子には読出レジスタ指定信号
(R1〜Rn)が与えられ、他方入力端子には書込レジ
スタ指定信号(R1〜Rn)が与えられる。そして、こ
の比較器41は前記読出レジスタ指定信号と書込レジス
タ指定信号とが一致する場合にハイレベルの信号を出力
する。比較器41の出力は、前記4つの論理積回路AN
1〜AN4の一方入力端子に入力される。 【0034】論理積回路AN1の他方入力端子には、命
令制御部34からのデータ幅信号(DA1)が供給され
る。論理積回路AN2〜AN4の他方入力端子にも、デ
ータ幅信号(DA2〜DA4)がそれぞれ入力される。
そして、4つの論理積回路AN1〜AN4の出力は、そ
れぞれ4つのセレクタ指示信号(CO1〜CO4)とし
て、セレクタ30に入力される。 【0035】セレクタ30は、選択回路S0〜S31を
備える。選択回路S0は、第2バス29を構成する信号
線A0上のデータと、レジスタ群21とセレクタ30と
の間に形成された信号線B0によってレジスタ群21か
ら読出されたデータとを入力する。そして、選択回路S
0は、いずれか一方のデータを出力ポート部32を介し
て第1バス27の信号線C0に出力する。また選択回路
S1〜S31も同様に他の第2バス29を構成する信号
線A1〜A31及び他のレジスタ群21とセレクタ30
との間に形成された信号線B1〜B31からデータを入
力し、いずれか一方のデータを出力ポート部32を介し
て第1バス27の信号線C1〜C31に出力する。 【0036】選択回路S0は、インバータ回路45、論
理積回路46,47および論理和回路48を含んで構成
される。選択回路S0において、インバータ回路45の
入力端子には前記バイパス制御部35からのセレクタ指
示信号(CO1)が入力される。インバータ回路45の
出力は論理積回路46の一入力端子に与えられる。また
論理積回路46の他方入力端子には信号線B0が接続さ
れている。これによって、論理積回路46は、前記セレ
クタ指示信号(CO1)の信号レベルがローレベルであ
れば、レジスタ群21から読出されたデータを出力す
る。論理積回路46の出力は、論理和回路48の一方入
力端子に与えられる。 【0037】また論理積回路47の一方入力端子には、
セレクタ指示信号(CO1)が入力される。論理積回路
47の他方入力端子には第2バス29の信号線A0が接
続される。これによって論理積回路47は、セレクタ指
示信号(CO1)がハイレベルであるときに第2バス2
9の信号線A0の信号レベル、即ち演算結果データの信
号レベルを出力する。論理積回路47の出力は、論理和
回路48の他方入力端子に与えられる。 【0038】論理和回路48は、セレクタ指示信号(C
O1)の信号レベルがハイレベルのときは演算結果デー
タを出力し、ローレベルのときは指定されたレジスタか
らのデータの示す信号レベルを出力する。論理和回路4
8の出力は、出力ポート部32を介して、第1バス27
の信号線C0に入力される。他の選択回路S1〜S31
も同様の構成であり、同一の構成には同一の符号を付し
て説明を省略する。なお、選択回路S0〜S7にはバイ
パス制御部35からのセレクタ指示信号(CO1)が与
えられ、選択回路S8〜S15にはセレクタ指示信号
(CO2)が与えられ、選択回路S16〜S23にはセ
レクタ指示信号(CO3)が与えられ、選択回路S24
〜S31にはセレクタ指示信号(CO4)が与えられ
る。 【0039】次に、上述の構成のCPU20の演算処理
動作について説明を行う。なお、演算処理動作として
は、2つの命令処理(第1命令処理、第2命令処理)が
1ステジずれて実行されるものとする。 【0040】CPU20の命令制御部34は、第1命令
処理の「命令フェッチ」、「デコード」の2つのステー
ジにおける処理を行い、この処理結果に基づいて、次の
「演算処理実行」のステージで演算処理を行う演算器2
3aに演算指示信号(SAa)を出力する。命令制御部
34は、前記演算指示信号(SAa)を出力するととも
に読出レジスタ指定信号(R1)をレジスタ群21およ
びバイパス制御部35に出力する。これによって、読出
レジスタ指定信号(R1)によって指定されるレジスタ
R1からデータが読出される。このデータ(データ幅3
2ビット)は、バイパス制御部35に制御された前記セ
レクタ30および出力ポート部32を介して、第1バス
27上に出力される。 【0041】「演算処理実行」のステージにおいて、前
記演算指示信号(SAa)が与えられた演算器23a
は、第1バス27に存在するデータ幅32ビットのデー
タの中の下位8ビットのデータを取込み、演算処理を実
行する。そして演算器23aは演算処理結果として演算
結果データを演算結果ラッチ部24aに出力する。演算
結果ラッチ部24aでは演算結果データを一時的に格納
する。 【0042】次の「ライトバック」のステージにおい
て、前記演算結果データは、演算結果ラッチ部24aか
ら第2バス27に出力される。このときに、命令制御部
34は、第2バス27上に読出された演算結果データを
レジスタR2に格納するために書込レジスタ指定信号
(R2)をレジスタ群21およびバイパス制御部35に
出力する。 【0043】第1命令処理から1ステージずれて実行さ
れている第2命令処理では、「演算処理実行」のステー
ジの処理が行なわれる状態であり、命令制御部34は、
演算器23bを指定する演算指定信号(SAb)を出力
すると共に、演算器23bで演算対象となるデータを読
出すために読出レジスタ指定信号(R2)をレジスタ群
21およびバイパス制御部35に出力する。 【0044】したがって、第1命令処理の「ライトバッ
ク」のステージ、即ち第2命令処理の「演算処理実行」
のステージにおいて、バイパス制御部35には、読出レ
ジスタ指定信号(R2)と書込レジスタ指定信号(R
2)とが入力される。また命令制御部34のデータ幅検
出回路(図示しない)は、第2バス27上の第1命令処
理の演算結果である演算結果データが存在する信号線A
0〜A7を検出し、その検出結果に基づいて命令制御部
34はハイレベルのデータ幅信号(DA1)とローレベ
ルのデータ幅信号(DA2〜DA4)をバイパス制御部
35に出力する。 【0045】バイパス制御部35の比較器41は、読出
レジスタ指定信号(R2)と書込レジスタ指定信号(R
2)との一致を示すハイレベルの信号を各論理積回路A
N1〜AN4に出力する。論理積回路AN1にはハイレ
ベルのデータ幅信号(DA1)が入力されており、他の
論理積回路AN2〜AN4にはローレベルのデータ幅信
号(DA2〜DA4)が入力されている。これによっ
て、セレクタ指示信号(CO1)だけハイレベルである
4つのセレクタ指示信号(CO1〜CO4)がセレクタ
30に出力される。このため、セレクタ30の各選択回
路S0〜S31は、以下の図3に示す図表に基づいて制
御される。 【0046】図3は、CPU20の演算処理動作におけ
るバイパス制御部35の動作状態とセレクタ30の選択
状態との関係を示す図表である。バイパス制御部35に
は、上述したように読出レジスタ指定信号(R2)、書
込レジスタ指定信号(R2)、ハイレベルのデータ幅信
号(DA1)及びローレベルのデータ幅信号(DA2〜
DA4)が入力されている。したがって、図3の図表の
3段目に示すようなセレクタ30の選択回路S0〜S3
1の選択状態となる。以下に、図表の3段目におけるセ
レクタ30の選択動作について図2を参照しつつ説明す
る。 【0047】セレクタ30では、選択回路S0〜S7に
ハイレベルのセレクタ指示信号(CO1)が与えられ、
選択回路S8〜S15,S16〜S23,S24〜S3
1にローレベルのセレクタ指示信号(CO2〜CO4)
がそれぞれ与えられる。 【0048】選択回路S0において、論理積回路46の
一方入力端子にはインバータ回路45でハイレベルのセ
レクタ指示信号(CO1)が反転されて入力され、論理
積回路47の一方入力端子にはハイレベルのセレクタ指
示信号(CO1)が入力される。したがって、論理積回
路46の他方入力端子に接続される信号線B0からのデ
ータは選択されず、論理積回路47の他方入力端子に接
続される信号線A0からの演算結果データの下位1ビッ
トが示す信号レベルが選択され、第1バス27の信号線
C0に出力される。また、他の選択回路S1〜S7にお
いても同様の処理が行われ、第1バス27の下位8ビッ
トの信号線C0〜C7には、演算結果データが出力され
る。 【0049】また選択回路S8において、論理積回路4
6の一方入力端子にはインバータ回路45でローレベル
のセレクタ指示信号(CO2)が反転されて入力され、
論理積回路47の一方入力端子にはローレベルのセレク
タ指示信号(CO2)が入力される。したがって、論理
積回路47の他方入力端子に接続される信号線A0から
の演算結果データが選択されず、論理積回路46の他方
入力端子に接続される信号線B0からのデータが選択さ
れる。また、他の選択回路S9〜S31においても同様
の処理が行われる。したがって、第1バス27の上位2
4ビットの信号線C8〜C31には、レジスタ群21の
レジスタに格納されたデータが出力される。 【0050】これによって、セレクタ30によって、デ
ータ幅8ビットの演算結果データが、第2バス29の信
号線A0〜A7から第1バス27の信号線C0〜C7に
バイパス(フォワーディングともいう)されても、上位
24ビットに相当する第1バス27の信号線C8〜C3
1には、レジスタ群21から読出されたデータが出力さ
れる。これによって、処理データ幅の相違する複数の演
算器23a,23bを構成しても、各演算器23a,2
3bは正常な演算処理を行うことができる。 【0051】なお上述の処理動作と同様にして、図3に
示される図表の他の段についても処理が行われる。第2
段目では、バイパス制御部35に入力された読出レジス
タ指定信号と書込レジスタ指定信号とが異なるので、レ
ジスタ群21からのデータが、第1バス27の全ての信
号線C0〜C31に与えられる。また第4段目では、バ
イパス制御部35に入力された読出レジスタ指定信号と
書込レジスタ指定信号とが一致するとともにデータ幅1
6ビットの演算結果データが第2バス29上に存在する
ことを示すので、前記演算結果データが第1バス27の
下位16ビットの信号線C0〜C15に与えられ、レジ
スタ群21からのデータが第1バス27の上位16ビッ
トの信号線C16〜C31に与えられる。さらにまた第
5段目では、バイパス制御部35に入力された読出レジ
スタ指定信号と書込レジスタ指定信号とが一致すると共
にデータ幅32ビットの演算結果データが第2バス29
上に存在することを示すので、前記演算結果データが第
1バス27の全ての信号線C0〜C31に与えられる。 【0052】上述したように、複数個の演算器23a,
23bを構成しても、1つのセレクタ30だけで、RA
Wハザードを回避することができる。したがって、演算
器が増加しても、回路規模の増大を防止することができ
る。また従来技術のように演算器が増加に伴ってセレク
タ30が増加すると、セレクタ30を制御するバイパス
制御部35および命令制御部34の回路構成が複雑にな
る。しかし本発明では、1つのセレクタ30を設けるだ
けなので、演算器の増加に伴う回路構成の複雑化を防止
することもできる。また演算処理の対象となるデータの
データ幅の相違する演算器23a,23bを複数個構成
しても、正常な演算処理を行うことができる。 【0053】なお本実施の形態では、セレクタ指示信号
(CO1〜CO4)を用いて、8ビット単位のデータ
幅、即ち8つの選択回路を1つのグループとして各グル
ープごとに制御を行うように構成したが、8ビット単位
には限定されない。 【0054】また本実施の形態では、命令制御部34と
バイパス制御部35とを備える構成であるが、上述の命
令制御部34及びバイパス制御部35の機能を兼ね備え
るのであれば1つの制御手段33を構成するだけでもよ
い。 【0055】さらにまた本実施の形態では、データ幅検
出回路(図示しない)を命令制御部34に備える構成で
あるが、前記データ幅検出回路は、制御手段33又はバ
イパス制御部35に備える構成であってもよい。 【0056】 【発明の効果】上述したように、この発明によれば、演
算器を複数個構成しても1つの選択手段を構成するだけ
で、RAWハザードなどを防止できる。これによって、
演算処理の高速化を図るとともに、回路規模の増大およ
び回路構成の複雑化を防止することができる。さらに、
演算処理を行うデータ幅の異なる演算器を複数個構成し
ても、1つの選択手段を構成するだけで所望のデータを
確実に演算器に与えることができ、正常な演算処理を行
うことができる。
【図面の簡単な説明】 【図1】パイプライン処理を行う本発明の中央演算処理
装置の内部構成を示すブロック図である。 【図2】セレクタおよびバイパス制御部の内部構成を示
す回路図である。 【図3】バイパス制御部の動作状態とセレクタの選択状
態との関係を示す図表である 【図4】パイプライン処理を行う従来の中央演算処理装
置の内部構成を示すブロック図である。 【符号の説明】 20 CPU 21 レジスタ群 23a,23b 演算器 27 第1バス 29 第2バス 30 セレクタ 33 制御手段 34 命令制御部 35 バイパス制御部 S0〜S31 選択回路

Claims (1)

  1. (57)【特許請求の範囲】 【請求項1】 第1バスと、第2バスと、 前記第1バス上のデータを取込み演算処理を行いその演
    算結果を前記第2バスに出力する演算手段と、 前記第2バス上のデータを格納すると共に、演算対象と
    なるデータを出力するレジスタを複数個備えるレジスタ
    群と、前記レジスタ群から出力されたデータ又は前記第
    2バス上のデータのどちらか一方を選択して前記第1バ
    スに出力する選択手段と、 前記レジスタ群に対して前記第2バス上のデータを格納
    するレジスタ及び演算対象となるデータを出力するレジ
    スタを指定すると共に、指定した両レジスタが同一であ
    る場合には前記第2バス上のデータを選択し、異なる場
    合には前記レジスタから出力されたデータを前記選択手
    段が選択して出力する手段と、前記第2バス上のデータ
    のデータ幅を検出するデータ幅検出手段とを有する制御
    手段と、を備え、 前記データ幅検出手段に検出されたデータ幅が前期第2
    バスのバス幅未満である場合に、残余のデータ幅につい
    ては前記レジスタから出力されたデータを前記選択手段
    は選択して出力するように制御することを特徴とする中
    央演算処理装置。
JP31817896A 1996-11-28 1996-11-28 中央演算処理装置 Expired - Lifetime JP3525985B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31817896A JP3525985B2 (ja) 1996-11-28 1996-11-28 中央演算処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31817896A JP3525985B2 (ja) 1996-11-28 1996-11-28 中央演算処理装置

Publications (2)

Publication Number Publication Date
JPH10161874A JPH10161874A (ja) 1998-06-19
JP3525985B2 true JP3525985B2 (ja) 2004-05-10

Family

ID=18096337

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31817896A Expired - Lifetime JP3525985B2 (ja) 1996-11-28 1996-11-28 中央演算処理装置

Country Status (1)

Country Link
JP (1) JP3525985B2 (ja)

Also Published As

Publication number Publication date
JPH10161874A (ja) 1998-06-19

Similar Documents

Publication Publication Date Title
US5394530A (en) Arrangement for predicting a branch target address in the second iteration of a short loop
US7424598B2 (en) Data processor
US5954811A (en) Digital signal processor architecture
EP0653703B1 (en) Temporary pipeline register file for a superpipelined superscalar processor
US6029242A (en) Data processing system using a shared register bank and a plurality of processors
JPS63136138A (ja) 情報処理装置
JPH0557616B2 (ja)
JPH0762823B2 (ja) デ−タ処理装置
US5896543A (en) Digital signal processor architecture
JPH10228376A (ja) 複数レジスタ命令を処理する方法及びプロセッサ
JP2653037B2 (ja) データ処理システム
EP0093430A2 (en) Pipeline data processing system
JPH06242953A (ja) データ・プロセッサ
JPH03286332A (ja) デジタルデータ処理装置
US6055628A (en) Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks
US5349671A (en) Microprocessor system generating instruction fetch addresses at high speed
US6670895B2 (en) Method and apparatus for swapping the contents of address registers
US4697235A (en) List vector control apparatus
US6289428B1 (en) Superscaler processor and method for efficiently recovering from misaligned data addresses
JP3525985B2 (ja) 中央演算処理装置
US4707783A (en) Ancillary execution unit for a pipelined data processing system
EP0334131A2 (en) Data processor performing operation on data having length shorter than one-word length
EP0314342B1 (en) Parallel pipelined computer processor
JP2812610B2 (ja) パイプライン制御方式
JPH0991139A (ja) 情報処理装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040115

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040210

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040210

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080227

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090227

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100227

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110227

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120227

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130227

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130227

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140227

Year of fee payment: 10

EXPY Cancellation because of completion of term