JP2869414B1 - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JP2869414B1
JP2869414B1 JP10218736A JP21873698A JP2869414B1 JP 2869414 B1 JP2869414 B1 JP 2869414B1 JP 10218736 A JP10218736 A JP 10218736A JP 21873698 A JP21873698 A JP 21873698A JP 2869414 B1 JP2869414 B1 JP 2869414B1
Authority
JP
Japan
Prior art keywords
register
general
data
tag
flag
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
JP10218736A
Other languages
English (en)
Other versions
JPH11126154A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP10218736A priority Critical patent/JP2869414B1/ja
Application granted granted Critical
Publication of JP2869414B1 publication Critical patent/JP2869414B1/ja
Publication of JPH11126154A publication Critical patent/JPH11126154A/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

【要約】 【課題】 レジスタファイルと複数の演算ユニットとを
備えたデータ処理装置の処理速度を向上させる。 【解決手段】 各々データを格納するための4個の汎用
レジスタを有するレジスタファイル10と、加算命令、
減算命令等を実行するための算術論理演算ユニット20
と、乗算命令を実行するための乗算ユニット30とに加
えて、レジスタファイル10の中の4個の汎用レジスタ
のうちのいずれかに代わって乗算ユニット30の演算結
果を表すデータのみを格納するための代用レジスタ40
と、コントローラ70とを設ける。コントローラ70
は、代用レジスタ40が4個の汎用レジスタのうちのい
ずれに代わって乗算結果データを格納しているかを示す
乗算タグMTAGと、代用レジスタ40に格納されたデ
ータが有効であるか無効であるかを示す乗算実行フラグ
MEFとに基づいて、レジスタファイル10及び代用レ
ジスタ40のデータの書き込み及び読み出しを制御す
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、レジスタファイル
と複数の演算ユニットとを備えたデータ処理装置に関す
るものである。
【0002】
【従来の技術】近年、LSI技術の進展に伴い高性能な
ディジタル信号プロセッサが実現可能となり、加減算や
乗算を含む複雑なデータ処理を1チップで実行できるよ
うになっている。特に携帯電話等の応用分野では、大量
の情報の圧縮・伸長を行うため、高速のデータ処理が必
要とされている。
【0003】高速データ処理装置の一例として、SRA
M(static random access memory)等の大容量のメモ
リやROM(read-only memory)等の遅いメモリに加え
て小容量かつ高速のレジスタファイルを備えたパイプラ
イン制御方式のデータ処理装置が知られている。これ
は、各々データを格納するための複数の汎用レジスタを
有するレジスタファイルと、算術論理演算ユニット、乗
算ユニット等の複数の演算ユニットとをバス経由で接続
したものであり、高速レジスタファイルを演算データの
格納に利用したものである。算術論理演算ユニットは、
例えば加算命令に応答して、レジスタファイルから2個
のオペランドを受け取り、両オペランドの加算を実行す
る。この加算の結果を表すデータは、レジスタファイル
の中の指定された汎用レジスタに書き込まれる。乗算ユ
ニットは、乗算命令に応答して、レジスタファイルから
2個のオペランドを受け取り、両オペランドの乗算を実
行する。この乗算の結果を表すデータは、レジスタファ
イルの中の指定された汎用レジスタに書き込まれる。
【0004】
【発明が解決しようとする課題】一般に、乗算処理は加
減算処理に比べて長い時間を要する。したがって、上記
従来例では乗算ユニットがデータ処理装置のクリティカ
ルパスを構成し、パイプラインクロックの周波数の上限
が乗算ユニットによって決められていた。しかも、乗算
ユニットの演算結果を表すデータをバス経由でレジスタ
ファイルに書き込むのに要する時間を無視できない。な
ぜなら、長い配線であるバスを経由したデータ転送に大
きな遅延が生じるからである。
【0005】本発明の目的は、レジスタファイルと複数
の演算ユニットとを備えたデータ処理装置の処理速度を
向上させることにある。
【0006】
【課題を解決するための手段】上記目的を達成するた
め、本発明によれば、複数の演算ユニットのうちの特定
の演算ユニット(例えば乗算ユニット)の演算結果を表
すデータをレジスタファイルの複数の汎用レジスタのう
ちのいずれかに代わって格納するための代用レジスタ
が、前記特定の演算ユニットの近傍に設けられる。つま
り、特定演算ユニットの演算結果を表すデータをバス経
由でレジスタファイルに書き込むのに要する時間を省く
ことができる。いずれの汎用レジスタに代わって特定演
算ユニットの演算結果を表すデータを代用レジスタが格
納しているかは、タグレジスタに記憶されたタグにより
示される。したがって、いずれの汎用レジスタのデータ
を読み出すべきかを指定する読み出しアドレスを伴う命
令が与えられ、かつ該読み出しアドレスがタグレジスタ
のタグと一致した場合には、代用レジスタに格納された
データが読み出される。
【0007】
【発明の実施の形態】以下、本発明の実施形態につい
て、図面を参照しながら説明する。
【0008】図1は、本発明に係るデータ処理装置の構
成例を示している。図1の装置は、与えられた命令IN
STを順次実行することによりデータ処理を進めていく
データ処理装置であって、各々データを格納するための
4個の汎用レジスタRn(n=0,1,2,3)を有す
るレジスタファイル10と、加算命令、減算命令等を実
行するための算術論理演算ユニット(ALU)20と、
乗算命令を実行するための乗算ユニット(MUL)30
と、該乗算ユニット30の演算結果を表すデータをレジ
スタファイル10の中の4個の汎用レジスタのうちのい
ずれかに代わって格納するための代用レジスタ(Rs)
40と、Aバス51と、Bバス52と、Cバス53とを
備えている。レジスタファイル10は、オペランドをA
バス51及び/又はBバス52へ送出する機能と、Cバ
ス53上のデータをいずれかの汎用レジスタへ格納する
機能とを有するものである。算術論理演算ユニット20
は、例えば加算命令に応答して、Aバス51及びBバス
52の各々からオペランドを受け取り、両オペランドの
加算を実行する。この加算の結果を表すデータは、Cバ
ス53を経由してレジスタファイル10の中の指定され
た汎用レジスタに書き込まれるようになっている。乗算
ユニット30は、乗算命令に応答して、Aバス51及び
Bバス52の各々からオペランドを受け取り、両オペラ
ンドの乗算を実行する。この乗算の結果を表すデータ
は、必ず代用レジスタ40に書き込まれるようになって
いる。この代用レジスタ40に格納されたデータは、A
バス51、Bバス52及びCバス53のいずれへも供給
可能である。
【0009】図1のデータ処理装置は、与えられた命令
INSTをデコードするためのデコーダ60と、レジス
タファイル10へのデータの書き込み、レジスタファイ
ル10に格納されたデータの読み出し、代用レジスタ4
0へのデータの書き込み、及び代用レジスタ40に格納
されたデータの読み出しを制御するためのコントローラ
70とを更に備えている。デコーダ60は、与えられた
命令INSTに応じて、第1の読み出しアドレスRAA
dと、第2の読み出しアドレスRBAdと、書き込みア
ドレスWAdと、第1の読み出しイネーブル信号RAE
と、第2の読み出しイネーブル信号RBEと、書き込み
イネーブル信号WEと、乗算実行信号MEとを供給する
ものである。コントローラ70は、これらの信号を受け
取り、レジスタファイル10へ、書き込みアドレスWA
dT、Aバスへの読み出し信号RA、Bバスへの読み出
し信号RB及び書き込み信号Wを供給する。レジスタフ
ァイル10は、デコーダ10から第1の読み出しアドレ
スRAAdと、第2の読み出しアドレスRBAdとの供
給を受ける。コントローラ70は、更に代用レジスタ4
0へ、書き込み信号WR、Aバスへの読み出し信号RA
T、Bバスへの読み出し信号RBT及びCバスへの読み
出し信号RCTを供給する。なお、レジスタファイル1
0、デコーダ60及びコントローラ70には、これらの
同期動作のために、共通のクロック信号CLKが供給さ
れている。コントローラ70は、代用レジスタ40が4
個の汎用レジスタのうちのいずれに代わって乗算結果デ
ータを格納しているかを示す乗算タグMTAGと、代用
レジスタ40に格納されたデータが有効であるか無効で
あるかを示す乗算実行フラグMEFとを有している。
【0010】図2は、代用レジスタ40の内部構成を示
している。図2において、41は書き込み信号WRの立
ち上がりエッジに同期して乗算結果データを格納するた
めのレジスタ、42はAバスへの出力ゲート、43はB
バスへの出力ゲート、44はCバスへの出力ゲートであ
る。出力ゲート42,43,44は、それぞれ読み出し
信号RAT,RBT,RCTに応じて活性化されるもの
である。
【0011】図3は、レジスタファイル10及び代用レ
ジスタ40へのデータの書き込み動作を示している。順
を追って説明すると、まずステップ101では、与えら
れた命令INSTがデコーダ60によってデコードされ
る。当該命令INSTがレジスタファイル10へのデー
タの書き込み(ライト)を要する命令でない場合には、
ステップ102から他の処理へ移行する。当該命令IN
STがレジスタファイル10へのデータの書き込みを要
する命令である場合には、4個の汎用レジスタR0,R
1,R2,R3のうちの1個を指定する書き込みアドレ
スWAdがデコーダ60からコントローラ70へ供給さ
れる(ステップ103)。ステップ104では、当該命
令INSTが乗算命令(MUL命令)であるか否かが判
定される。当該命令INSTが乗算命令であり、かつ乗
算実行フラグMEFが無効(OFF)を示している場合
には、ステップ105からステップ106へ移行して、
乗算ユニット30の演算結果を表すデータが代用レジス
タ40に書き込まれ、有効(ON)を示すように乗算実
行フラグMEFが更新され、かつ乗算タグMTAGが書
き込みアドレスWAdに更新される。
【0012】当該命令INSTが乗算命令であっても、
乗算実行フラグMEFが有効を示している場合には、ス
テップ105からステップ107へ移行して、書き込み
アドレスWAdが乗算タグMTAGと一致しているか否
かが判定される。一致(MTAGヒット)の場合には、
ステップ108において、乗算ユニット30の演算結果
を表すデータが代用レジスタ40に書き込まれる。この
場合には、乗算実行フラグMEFが既に有効を示してい
るので、乗算実行フラグMEFが更新されることはな
い。また、先行する乗算命令と同じ汎用レジスタへの上
書きを当該命令INSTが要求しているのであるから、
乗算タグMTAGが更新されることもない。一方、不一
致(MTAGミス)の場合には、先行する乗算命令とは
異なる汎用レジスタへのデータの書き込みを当該命令I
NSTが要求しているのであるから、ステップ109に
おいて、代用レジスタ40に格納されたデータがCバス
53を経由して4個の汎用レジスタR0,R1,R2,
R3のうち乗算タグMTAGにより指定された汎用レジ
スタへ転送され、乗算タグMTAGが新たな書き込みア
ドレスWAdに更新され、かつ乗算ユニット30の新た
な演算結果を表すデータが代用レジスタ40に書き込ま
れる。
【0013】当該命令INSTがレジスタファイル10
へのデータの書き込みを要する命令ではあっても乗算命
令(MUL命令)でない場合、例えば加算命令(ADD
命令)や汎用レジスタ間のデータ転送命令(MOV命
令)である場合には、ステップ104からステップ11
0へ移行する。ここで、乗算実行フラグMEFが有効を
示し、かつ書き込みアドレスWAdが乗算タグMTAG
と一致(MTAGヒット)している場合には、先行する
乗算命令と同じ汎用レジスタへの上書きを当該命令IN
STが要求しているのであるから、当該命令INSTに
係る処理の結果を表すデータが4個の汎用レジスタのう
ち書き込みアドレスWAdにより指定された汎用レジス
タに書き込まれ、かつ無効を示すように乗算実行フラグ
MEFが更新される(ステップ111)。一方、乗算実
行フラグMEFが無効を示し、又は書き込みアドレスW
Adが乗算タグMTAGと一致していない場合には、乗
算実行フラグMEFを更新することなく、当該命令IN
STに係る処理の結果を表すデータが4個の汎用レジス
タのうち書き込みアドレスWAdにより指定された汎用
レジスタに書き込まれる(ステップ112)。
【0014】図4は、レジスタファイル10及び代用レ
ジスタ40からのデータの読み出し動作を示している。
順を追って説明すると、まずステップ201では、与え
られた命令INSTがデコーダ60によってデコードさ
れる。当該命令INSTがレジスタファイル10からの
データの読み出し(リード)を要する命令でない場合に
は、ステップ202から他の処理へ移行する。当該命令
INSTがレジスタファイル10からのデータの読み出
しを要する命令である場合には、4個の汎用レジスタR
0,R1,R2,R3のうちの1個を指定する読み出し
アドレスRAAd及び/又はRBAdがデコーダ60か
らコントローラ70へ供給される(ステップ203)。
ここで、乗算実行フラグMEFが有効を示し、かつ読み
出しアドレスRAAd及び/又はRBAdが乗算タグM
TAGと一致(MTAGヒット)している場合には、ス
テップ204からステップ205へ移行して、代用レジ
スタ40に格納されたデータがAバス51及び/又はB
バス52へ読み出される。一方、乗算実行フラグMEF
が無効を示し、又は読み出しアドレスRAAd及び/又
はRBAdが乗算タグMTAGと一致していない場合に
は、4個の汎用レジスタのうち読み出しアドレスRAA
d及び/又はRBAdにより指定された汎用レジスタに
格納されたデータがAバス51及び/又はBバス52へ
読み出される(ステップ206)。
【0015】図5は、以上の動作を実現するためのコン
トローラ70の内部構成を示している。コントローラ7
0は、乗算タグMTAGを記憶するためのタグレジスタ
71と、乗算実行フラグMEFを記憶するためのフラグ
レジスタ72と、書き込みヒット信号WHを生成するた
めの第1の一致検出回路73と、第1の読み出しヒット
信号RAHを生成するための第2の一致検出回路74
と、第2の読み出しヒット信号RBHを生成するための
第3の一致検出回路75と、代用レジスタ40のための
書き込み信号WRを生成するための第1の書き込み制御
回路76と、レジスタファイル10のための書き込みア
ドレスWAdT及び書き込み信号Wを供給し、かつCバ
スへの読み出し信号RCTを生成するための第2の書き
込み制御回路77と、Aバスへの読み出し信号RAT及
びRAを生成するための第1の読み出し制御回路78
と、Bバスへの読み出し信号RBT及びRBを生成する
ための第2の読み出し制御回路79とで構成されてい
る。
【0016】タグレジスタ71は、乗算実行信号MEが
発行されたとき、クロック信号CLKの立ち上がりエッ
ジに同期して、書き込みアドレスWAdを乗算タグMT
AGとして記憶するものである。フラグレジスタ72
は、乗算実行信号MEが発行されたときには、クロック
信号CLKの立ち上がりエッジに同期して乗算実行フラ
グMEFを有効にする。また、フラグレジスタ72は、
乗算実行信号MEが発行されず、かつ書き込みヒット信
号WHが発行されたときには、クロック信号CLKの立
ち上がりエッジに同期して乗算実行フラグMEFを無効
にする。
【0017】第1の一致検出回路73は、書き込みアド
レスWAdと乗算タグMTAGとが一致したときに、書
き込みヒット信号WHを発行する。第2の一致検出回路
74は、第1の読み出しアドレスRAAdと乗算タグM
TAGとが一致したときに、第1の読み出しヒット信号
RAHを発行する。第3の一致検出回路75は、第2の
読み出しアドレスRBAdと乗算タグMTAGとが一致
したときに、第2の読み出しヒット信号RBHを発行す
る。
【0018】第1の書き込み制御回路76は、クロック
信号CLKの立ち下がりエッジに同期して乗算実行信号
MEを記憶し、かつ該乗算実行信号MEの記憶とクロッ
ク信号CLKとの論理積信号を書き込み信号WRとして
代用レジスタ40へ供給する。第2の書き込み制御回路
77は、乗算実行信号MEが第1の書き込み制御回路7
6に記憶されており、乗算実行フラグMEFが有効であ
り、かつ書き込みヒット信号WHが発行されないときに
は、乗算タグMTAGをレジスタファイル10のための
書き込みアドレスWAdTとして選択し、かつクロック
信号CLKの立ち上がりエッジに同期してCバスへの読
み出し信号RCTを代用レジスタ40へ供給する。そう
でないときには、第2の書き込み制御回路77は、デコ
ーダ60から供給された書き込みアドレスWAdをその
ままレジスタファイル10のための書き込みアドレスW
AdTとして選択する。また、第2の書き込み制御回路
77は、乗算実行信号MEが第1の書き込み制御回路7
6に記憶されていないとき、又は、乗算実行フラグME
Fが有効でありかつ書き込みヒット信号WHが発行され
ていないときには、書き込みイネーブル信号WEが発行
されたことを条件として書き込み信号Wをレジスタファ
イル10へ供給する。
【0019】第1の読み出し制御回路78は、乗算実行
フラグMEFが有効であり、かつ第1の読み出しヒット
信号RAHが発行されたときには、第1の読み出しイネ
ーブル信号RAEが発行されたことを条件として、クロ
ック信号CLKの立ち上がりエッジに同期してAバスへ
の読み出し信号RATを代用レジスタ40へ供給する。
また、第1の読み出し制御回路78は、乗算実行フラグ
MEFが無効であるとき、又は第1の読み出しヒット信
号RAHが発行されないときには、第1の読み出しイネ
ーブル信号RAEが発行されたことを条件として、Aバ
スへの読み出し信号RAをレジスタファイル10へ供給
する。第2の読み出し制御回路79は、乗算実行フラグ
MEFが有効であり、かつ第2の読み出しヒット信号R
BHが発行されたときには、第2の読み出しイネーブル
信号RBEが発行されたことを条件として、クロック信
号CLKの立ち上がりエッジに同期してBバスへの読み
出し信号RBTを代用レジスタ40へ供給する。また、
第2の読み出し制御回路79は、乗算実行フラグMEF
が無効であるとき、又は第2の読み出しヒット信号RB
Hが発行されないときには、第2の読み出しイネーブル
信号RBEが発行されたことを条件として、Bバスへの
読み出し信号RBをレジスタファイル10へ供給する。
【0020】図6は、図1のデータ処理装置の具体的な
動作例を示している。この例では、次の2命令、すなわ
ち、 MUL R0,R1,R2 ADD R0,R0,R3 が順次実行されるものとする。第1の命令(MUL命
令)は、汎用レジスタR1に格納されたデータと、汎用
レジスタR2に格納されたデータとの乗算が乗算ユニッ
ト30により実行され、かつ該乗算の結果を表すデータ
が汎用レジスタR0に書き込まれることを要求するもの
である。すなわち、第1の命令は、第1及び第2のソー
ス・アドレス(MUL src)としてそれぞれ1及び
2を伴い、かつデスティネーション・アドレス(MUL
dst)として0を伴った乗算命令である。第2の命
令(ADD命令)は、汎用レジスタR0に格納されたデ
ータと、汎用レジスタR3に格納されたデータとの加算
が算術論理演算ユニット20により実行され、かつ該加
算の結果を表すデータが汎用レジスタR0に書き込まれ
ることを要求するものである。すなわち、第2の命令
は、第1及び第2のソース・アドレス(ADD sr
c)としてそれぞれ0及び3を伴い、かつデスティネー
ション・アドレス(ADD dst)として0を伴った
加算命令である。
【0021】図6によれば、サイクルT1において、デ
コーダ60によりMUL命令がデコードされる。このデ
コードの結果、RAAd=1、RBAd=2、WAd=
0、ME=1となる。サイクルT2では、乗算ユニット
30によりMUL命令が実行されるとともに、デコーダ
60によりADD命令がデコードされる。このデコード
の結果、RAAd=0、RBAd=3、WAd=0、M
E=0となる。ADD命令は、サイクルT3において算
術論理演算ユニット20により実行される。
【0022】更に図6によれば、サイクルT2におい
て、MUL命令に係る書き込みアドレスWAdが乗算タ
グMTAGとして記憶され、かつ乗算実行フラグMEF
が有効になる。更に、サイクルT3において、サイクル
T2における乗算の結果を表すデータが汎用レジスタR
0に代わって代用レジスタ40に格納されるように、書
き込み信号WRが生成される(図3中のステップ106
参照)。第2の一致検出回路74は、サイクルT2にお
いて、ADD命令に係る第1の読み出しアドレスRAA
dと、乗算タグMTAGとの一致を検出し、第1の読み
出しヒット信号RAHを発行する。この結果、サイクル
T3において、Aバスへの読み出し信号RATが発行さ
れるので、汎用レジスタR0に代わって代用レジスタ4
0から、ADD命令の第1のオペランドがAバス51を
介して算術論理演算ユニット20へ供給される(図4中
のステップ205参照)。ただし、第3の一致検出回路
75は、サイクルT2において、ADD命令に係る第2
の読み出しアドレスRBAdと、乗算タグMTAGとの
不一致を検出するので、第2の読み出しヒット信号RB
Hを発行しない。したがって、ADD命令の第2のオペ
ランドは、レジスタファイル10の中の汎用レジスタR
3から、Bバス52を介して算術論理演算ユニット20
へ供給される(図4中のステップ206参照)。第1の
一致検出回路73は、サイクルT2において、ADD命
令に係る書き込みアドレスWAdと、乗算タグMTAG
との一致を検出し、書き込みヒット信号WHを発行す
る。この結果、サイクルT3において、乗算実行フラグ
MEFが無効にされる(図3中のステップ111参
照)。
【0023】図7は、図1のデータ処理装置の他の具体
的な動作例を示している。この例では、次の2命令、す
なわち、 MUL R0,R1,R2 MUL R1,R0,R3 が順次実行されるものとする。第1の命令(MUL0命
令)は、汎用レジスタR1に格納されたデータと、汎用
レジスタR2に格納されたデータとの乗算が乗算ユニッ
ト30により実行され、かつ該乗算の結果を表すデータ
が汎用レジスタR0に書き込まれることを要求するもの
である。すなわち、第1の命令は、第1及び第2のソー
ス・アドレス(MUL0 src)としてそれぞれ1及
び2を伴い、かつデスティネーション・アドレス(MU
L0 dst)として0を伴った乗算命令である。第2
の命令(MUL1命令)は、汎用レジスタR0に格納さ
れたデータと、汎用レジスタR3に格納されたデータと
の乗算が乗算ユニット30により実行され、かつ該乗算
の結果を表すデータが汎用レジスタR1に書き込まれる
ことを要求するものである。すなわち、第2の命令は、
第1及び第2のソース・アドレス(MUL1 src)
としてそれぞれ0及び3を伴い、かつデスティネーショ
ン・アドレス(MUL1 dst)として1を伴った乗
算命令である。
【0024】図7によれば、サイクルT1において、デ
コーダ60によりMUL0命令がデコードされる。この
デコードの結果、RAAd=1、RBAd=2、WAd
=0、ME=1となる。サイクルT2では、乗算ユニッ
ト30によりMUL0命令が実行されるとともに、デコ
ーダ60によりMUL1命令がデコードされる。このデ
コードの結果、RAAd=0、RBAd=3、WAd=
1、ME=1となる。MUL1命令は、サイクルT3に
おいて乗算ユニット(MUL)30により実行される。
【0025】更に図7によれば、サイクルT2におい
て、MUL0命令に係る書き込みアドレスWAdが乗算
タグMTAGとして記憶され、かつ乗算実行フラグME
Fが有効になる。更に、サイクルT3において、サイク
ルT2でのMUL0命令に係る乗算の結果を表すデータ
が汎用レジスタR0に代わって代用レジスタ40に格納
されるように、書き込み信号WRが生成される。第2の
一致検出回路74は、サイクルT2において、MUL1
命令に係る第1の読み出しアドレスRAAdと、乗算タ
グMTAGとの一致を検出し、第1の読み出しヒット信
号RAHを発行する。この結果、サイクルT3におい
て、Aバスへの読み出し信号RATが発行されるので、
汎用レジスタR0に代わって代用レジスタ40から、M
UL1命令の第1のオペランドがAバス51を介して乗
算ユニット30へ供給される。ただし、第3の一致検出
回路75は、サイクルT2において、MUL1命令に係
る第2の読み出しアドレスRBAdと、乗算タグMTA
Gとの不一致を検出するので、第2の読み出しヒット信
号RBHを発行しない。したがって、MUL1命令の第
2のオペランドは、レジスタファイル10の中の汎用レ
ジスタR3から、Bバス52を介して乗算ユニット30
へ供給される。第1の一致検出回路73は、サイクルT
2において、MUL1命令に係る書き込みアドレスWA
dと、乗算タグMTAGとの不一致を検出するので、書
き込みヒット信号WHを発行しない。この結果、サイク
ルT3において、Cバスへの読み出し信号RCTが発行
されるので、代用レジスタ40に格納されたMUL0命
令に係る乗算結果がCバス53を介してレジスタファイ
ル10へ転送され、該乗算結果が乗算タグMTAGで指
定された汎用レジスタR0に書き込まれる。また、サイ
クルT3において、乗算タグMTAGがMUL1命令に
係る書き込みアドレスWAdに更新される。更に、サイ
クルT4において、サイクルT3でのMUL1命令に係
る乗算の結果を表すデータが汎用レジスタR1に代わっ
て代用レジスタ40に格納されるように、書き込み信号
WRが生成される(図3中のステップ107参照)。
【0026】以上のように、図1のデータ処理装置で
は、レジスタファイル10の中の4個の汎用レジスタR
0,R1,R2,R3のうちのいずれかに代わって乗算
ユニット30の演算結果を表すデータのみを格納するた
めの代用レジスタ40を該乗算ユニット30の近傍に備
えた構成を採用した。ただし、例えば除算ユニットの演
算結果を表すデータのみを格納するための代用レジスタ
を設けてもよい。また、1個の代用レジスタを乗算ユニ
ットと除算ユニットとで共用するようにしてもよい。こ
の場合には乗算ユニットと除算ユニットとで構成される
乗除算ユニットの演算結果を表すデータのみが代用レジ
スタに格納される。なお、レジスタファイル10の中の
汎用レジスタの数は任意である。
【0027】最後に、代用レジスタ40を使用すること
により図1のデータ処理装置の処理速度がどれだけ向上
するのかを、具体的に説明する。乗算ユニット30の演
算結果を表すデータを該乗算ユニット30の近傍に設け
られた代用レジスタ40へ書き込むのを止めて、該デー
タを乗算ユニット30からCバス53を経由してレジス
タファイル10へ直接書き込むことを考えると、Cバス
53を経由したデータ転送に大きな遅延が生じる。0.
35μmプロセスに従ってバス配線がなされるものとす
ると、代用レジスタ40を使用しない場合のクロック信
号CLKの周波数上限は例えば90.9MHzである。
これに対して代用レジスタ40を使用した場合には、同
じ条件でクロック信号CLKの周波数を100MHzに
まで高めることができる。つまり、クロックレートの1
0%向上を達成できる。今後プロセスの微細化が更に進
むと、LSIの遅延要因の中で配線遅延が支配的となる
ので、本発明の効果はますます大きくなるものと考えら
れる。
【0028】
【発明の効果】以上説明してきたとおり、本発明によれ
ば、複数の演算ユニットのうちの特定の演算ユニットの
演算結果を表すデータをレジスタファイルの複数の汎用
レジスタのうちのいずれかに代わって格納するための代
用レジスタを備えたデータ処理装置の構成を採用したの
で、特定演算ユニットの演算結果を表すデータをバス経
由でレジスタファイルに書き込むのに要する時間を省く
ことができ、データ処理装置の処理速度を向上させるこ
とができる。
【図面の簡単な説明】
【図1】本発明に係るデータ処理装置の構成例を示すブ
ロック図である。
【図2】図1中の代用レジスタの内部構成を示す回路図
である。
【図3】図1中のレジスタファイル及び代用レジスタへ
のデータの書き込み動作を示すフローチャート図であ
る。
【図4】図1中のレジスタファイル及び代用レジスタか
らのデータの読み出し動作を示すフローチャート図であ
る。
【図5】図1中のコントローラの内部構成を示す回路図
である。
【図6】図1のデータ処理装置の動作例を示すタイミン
グチャート図である。
【図7】図1のデータ処理装置の他の動作例を示すタイ
ミングチャート図である。
【符号の説明】
10 レジスタファイル 20 算術論理演算ユニット 30 乗算ユニット(特定演算ユニット) 40 代用レジスタ 41 レジスタ 42,43,44 出力ゲート 51 Aバス 52 Bバス 53 Cバス 60 デコーダ 70 コントローラ 71 タグレジスタ 72 フラグレジスタ 73,74,75 一致検出回路 76,77 書き込み制御回路 78,79 読み出し制御回路 INST 命令 ME 乗算実行信号 MEF 乗算実行フラグ MTAG 乗算タグ RAAd,RBAd 読み出しアドレス WAd 書き込みアドレス

Claims (11)

    (57)【特許請求の範囲】
  1. 【請求項1】 各々データを格納するための複数の汎用
    レジスタを有するレジスタファイルと、 各々前記レジスタファイルとデータの受け渡しを行い、
    かつ各々対応する命令により指定された演算を実行する
    ための複数の演算ユニットと、 前記複数の演算ユニットのうちの特定の演算ユニットの
    演算結果を表すデータを前記複数の汎用レジスタのうち
    のいずれかの汎用レジスタに代わって格納するための代
    用レジスタと、 前記レジスタファイルへのデータの書き込み、該レジス
    タファイルに格納されたデータの読み出し、前記代用レ
    ジスタへのデータの書き込み、及び該代用レジスタに格
    納されたデータの読み出しを制御するためのコントロー
    ラとを備え、 前記コントローラは、前記代用レジスタが前記複数の汎
    用レジスタのうちのいずれの汎用レジスタに代わるもの
    であるかを示すタグを記憶するためのタグレジスタを有
    することを特徴とするデータ処理装置。
  2. 【請求項2】 請求項1記載のデータ処理装置におい
    て、 前記特定の演算ユニットは、前記複数の演算ユニットの
    うちのクリティカルパスを構成する演算ユニットである
    ことを特徴とするデータ処理装置。
  3. 【請求項3】 請求項1記載のデータ処理装置におい
    て、 前記特定の演算ユニットは、乗算ユニットであることを
    特徴とするデータ処理装置。
  4. 【請求項4】 請求項1記載のデータ処理装置におい
    て、 前記コントローラは、前記代用レジスタに格納されたデ
    ータが有効であるか無効であるかを示すフラグを記憶す
    るためのフラグレジスタを更に有することを特徴とする
    データ処理装置。
  5. 【請求項5】 請求項4記載のデータ処理装置におい
    て、 前記コントローラは、 前記特定の演算ユニットで実行されるべき演算を指定
    し、かつ該指定された演算の結果が前記複数の汎用レジ
    スタのうちのいずれの汎用レジスタに格納されるべきか
    を指定する書き込みアドレスを伴う命令が与えられ、か
    つ、 前記フラグレジスタのフラグが無効を示している場合に
    は、 前記特定の演算ユニットの演算結果を表すデータが前記
    代用レジスタに書き込まれるように制御し、 有効を示すように前記フラグレジスタのフラグを更新
    し、かつ、 前記タグレジスタのタグを前記書き込みアドレスに更新
    する機能を有することを特徴とするデータ処理装置。
  6. 【請求項6】 請求項4記載のデータ処理装置におい
    て、 前記コントローラは、 前記特定の演算ユニットで実行されるべき演算を指定
    し、かつ該指定された演算の結果が前記複数の汎用レジ
    スタのうちのいずれの汎用レジスタに格納されるべきか
    を指定する書き込みアドレスを伴う命令が与えられ、 前記フラグレジスタのフラグが有効を示し、かつ、 前記書き込みアドレスが前記タグレジスタのタグと一致
    した場合には、 前記フラグレジスタのフラグ及び前記タグレジスタのタ
    グを更新することなく、前記特定の演算ユニットの演算
    結果を表すデータが前記代用レジスタに書き込まれるよ
    うに制御する機能を有することを特徴とするデータ処理
    装置。
  7. 【請求項7】 請求項4記載のデータ処理装置におい
    て、 前記コントローラは、 前記特定の演算ユニットで実行されるべき演算を指定
    し、かつ該指定された演算の結果が前記複数の汎用レジ
    スタのうちのいずれの汎用レジスタに格納されるべきか
    を指定する書き込みアドレスを伴う命令が与えられ、 前記フラグレジスタのフラグが有効を示し、かつ、 前記書き込みアドレスが前記タグレジスタのタグと一致
    しない場合には、 前記代用レジスタに格納されたデータが前記複数の汎用
    レジスタのうち前記タグレジスタのタグにより指定され
    た汎用レジスタへ転送されるように制御し、 前記タグレジスタのタグを前記書き込みアドレスに更新
    し、かつ、 前記特定の演算ユニットの演算結果を表すデータが前記
    代用レジスタに書き込まれるように制御する機能を有す
    ることを特徴とするデータ処理装置。
  8. 【請求項8】 請求項4記載のデータ処理装置におい
    て、 前記コントローラは、 前記特定の演算ユニットで実行されるべき演算以外の処
    理を指定し、かつ該指定された処理の結果が前記複数の
    汎用レジスタのうちのいずれの汎用レジスタに格納され
    るべきかを指定する書き込みアドレスを伴う命令が与え
    られ、 前記フラグレジスタのフラグが有効を示し、かつ、 前記書き込みアドレスが前記タグレジスタのタグと一致
    した場合には、 前記指定された処理の結果を表すデータが前記複数の汎
    用レジスタのうち前記書き込みアドレスにより指定され
    た汎用レジスタに書き込まれるように制御し、かつ、 無効を示すように前記フラグレジスタのフラグを更新す
    る機能を有することを特徴とするデータ処理装置。
  9. 【請求項9】 請求項4記載のデータ処理装置におい
    て、 前記コントローラは、 前記特定の演算ユニットで実行されるべき演算以外の処
    理を指定し、かつ該指定された処理の結果が前記複数の
    汎用レジスタのうちのいずれの汎用レジスタに格納され
    るべきかを指定する書き込みアドレスを伴う命令が与え
    られ、かつ、 前記フラグレジスタのフラグが無効を示し又は前記書き
    込みアドレスが前記タグレジスタのタグと一致しない場
    合には、 前記フラグレジスタのフラグを更新することなく、前記
    指定された処理の結果を表すデータが前記複数の汎用レ
    ジスタのうち前記書き込みアドレスにより指定された汎
    用レジスタに書き込まれるように制御する機能を有する
    ことを特徴とするデータ処理装置。
  10. 【請求項10】 請求項4記載のデータ処理装置におい
    て、 前記コントローラは、 前記複数の汎用レジスタのうちのいずれの汎用レジスタ
    のデータを読み出すべきかを指定する読み出しアドレス
    を伴う命令が与えられ、 前記フラグレジスタのフラグが有効を示し、かつ、 前記読み出しアドレスが前記タグレジスタのタグと一致
    した場合には、 前記代用レジスタに格納されたデータが読み出されるよ
    うに制御する機能を有することを特徴とするデータ処理
    装置。
  11. 【請求項11】 請求項4記載のデータ処理装置におい
    て、 前記コントローラは、 前記複数の汎用レジスタのうちのいずれの汎用レジスタ
    のデータを読み出すべきかを指定する読み出しアドレス
    を伴う命令が与えられ、かつ、 前記フラグレジスタのフラグが無効を示し又は前記読み
    出しアドレスが前記タグレジスタのタグと一致しない場
    合には、 前記複数の汎用レジスタのうち前記読み出しアドレスに
    より指定された汎用レジスタに格納されたデータが読み
    出されるように制御する機能を有することを特徴とする
    データ処理装置。
JP10218736A 1997-08-20 1998-08-03 データ処理装置 Expired - Lifetime JP2869414B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10218736A JP2869414B1 (ja) 1997-08-20 1998-08-03 データ処理装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP22322097 1997-08-20
JP9-223220 1997-08-20
JP10218736A JP2869414B1 (ja) 1997-08-20 1998-08-03 データ処理装置

Publications (2)

Publication Number Publication Date
JP2869414B1 true JP2869414B1 (ja) 1999-03-10
JPH11126154A JPH11126154A (ja) 1999-05-11

Family

ID=26522723

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10218736A Expired - Lifetime JP2869414B1 (ja) 1997-08-20 1998-08-03 データ処理装置

Country Status (1)

Country Link
JP (1) JP2869414B1 (ja)

Also Published As

Publication number Publication date
JPH11126154A (ja) 1999-05-11

Similar Documents

Publication Publication Date Title
US9032185B2 (en) Active memory command engine and method
US5446849A (en) Electronic computer which executes squash branching
US20020026545A1 (en) Data processing apparatus of high speed process using memory of low speed and low power consumption
JP2001092662A (ja) プロセッサコア及びこれを用いたプロセッサ
US5119324A (en) Apparatus and method for performing arithmetic functions in a computer system
US5053986A (en) Circuit for preservation of sign information in operations for comparison of the absolute value of operands
JPS6297036A (ja) 計算機システム
US6260136B1 (en) Substitute register for use in a high speed data processor
US5581720A (en) Apparatus and method for updating information in a microcode instruction
JP2869414B1 (ja) データ処理装置
KR100241970B1 (ko) 파이프라인 처리를 수행하는 데이터 처리 장치
EP0374598B1 (en) Control store addressing from multiple sources
US5151993A (en) Data processor performing operation on data having length shorter than one-word length
US4853889A (en) Arrangement and method for speeding the operation of branch instructions
JP2000163265A (ja) 命令発行回路
US5734855A (en) Processor with pipeline processing function having read buffer register and latch for storing register information where the result of external access type instruction is stored
JP2901247B2 (ja) 掃出し制御方式
JPH06149669A (ja) キャッシュデータ転送方式およびキャッシュデータ転送装置
JPH04181454A (ja) データアクセス制御装置
JPH0385636A (ja) 命令先行制御装置
JP4553622B2 (ja) データ処理装置
JP3366235B2 (ja) データ読み出し制御装置
JP2000194554A (ja) 演算処理装置
JPH05307483A (ja) レジスタ書き込み制御方法および回路
JPS5936838A (ja) インタフエ−ス制御方式

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19981208