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

マイクロプロセッサ

Info

Publication number
JP2000010780A
JP2000010780A JP10171234A JP17123498A JP2000010780A JP 2000010780 A JP2000010780 A JP 2000010780A JP 10171234 A JP10171234 A JP 10171234A JP 17123498 A JP17123498 A JP 17123498A JP 2000010780 A JP2000010780 A JP 2000010780A
Authority
JP
Japan
Prior art keywords
output
stage
data
memory
latch circuit
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.)
Granted
Application number
JP10171234A
Other languages
English (en)
Other versions
JP3669841B2 (ja
Inventor
Atsushi Kiuchi
淳 木内
Haruo Kamimaki
春雄 上牧
Yoshiki Noguchi
孝樹 野口
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 JP17123498A priority Critical patent/JP3669841B2/ja
Publication of JP2000010780A publication Critical patent/JP2000010780A/ja
Application granted granted Critical
Publication of JP3669841B2 publication Critical patent/JP3669841B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)

Abstract

(57)【要約】 【課題】 乗算や積和演算処理を繰り返し実行する度
に、ソ−スデ−タのロ−ドと積和演算動作(又は乗算動
作)との間にオ−バヘッドが生じないようにできるマイ
クロプロセッサを提供する。 【解決手段】 IF、ID、EX、MA、WBと称され
る5ステージから成るパイプライン構造を備えたマイク
ロプロセッサにおいて、積和演算若しくは乗算演算をM
Aステ−ジから開始させる。あるいはWBステ−ジで演
算開始から演算結果のライトバックまで、全てを完了さ
せるようにする。これにより、積和演算処理等のデ−タ
演算動作と、それに必要なソ−スデ−タの読み出し動作
との間のオ−バヘッドサイクルを解消することができ
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、パイプラインで乗
算若しくは積和演算を実行可能なマイクロプロセッサに
係り、例えばディジタル信号処理等を実行可能なRIS
Cプロセッサ、マイクロコンピュータ、若しくはデータ
プロセッサ等に適用して有効な技術に関するものであ
る。
【0002】
【従来の技術】従来よりディジタル信号処理を実現する
のに適したプログラマブルコントロ−ラとしてディジタ
ル・シグナル・プロセッサ(DSP)が用いられてきた
が、近年コンパイル効率が高く、性能向上が容易でかつ
安価な組み込み用途向けのRISC型マイクロコントロ
−ラが登場した。このRISC型マイクロコントローラ
は、プログラムコ−ド効率を性能でカバ−することによ
って、換言すれば、処理の実行ステップ数は多くても動
作速度を速くすることによって、従来はDSPでしか実
現できなかったディジタル信号処理の分野にも適用され
るようになってきている。このRISC型マイクロコン
トローラにおいて、ディジタル信号処理を汎用の算術論
理演算器を用いて行う場合には処理速度に限界が有る。
この処理効率の点において、DSPと同様に乗算器や積
和演算器をハ−ドウェアで搭載することにより、飛躍的
に改善された例も出てきている。その具体例としては、
日経エレクトロニクス1995年5月8日号(第111
〜121ペ−ジ)記載のプロセッサがある。通常の算術
論理演算器と同じように、乗算器または積和演算器を備
えることにより、ディジタル信号処理の基本であるフィ
ルタリング処理の積和動作を、DSPに匹敵する効率及
び性能で実現することができる。
【0003】フィルタリング処理を実行する場合、積和
演算を実行する毎に乗数、被乗数デ−タをメモリから供
給する必要がある。図13にRISC型マイクロコント
ロ−ラの代表的なパイプライン構造を概略的に示す。図
中、IFは命令フェッチステ−ジ、IDは命令デコ−ド
ステージ、EXは演算実行ステ−ジ、MAはメモリアク
セス(データフェッチ)ステ−ジ、WBはデ−タのライ
トバックステ−ジを表している。IFステ−ジでは、プ
ログラムカウンタで指定されたアドレスから命令コ−ド
デ−タを読み出し、フェッチする。IDステ−ジでは、
フェッチした命令コ−ドをデコ−ド(解読)し、動作に
必要な制御信号を生成する。EXステ−ジでは、制御信
号によって指示された内容に基づいて、演算動作を実行
する。制御信号によって指示された動作がメモリの読み
出し又は書き込動作の場合は、アドレス生成及びアドレ
スバスへのアドレス出力動作を行う。MAステ−ジで
は、制御信号によって指示された動作がメモリの読み出
し又は書き込動作の場合に、メモリアクセス動作を行
う。WBステ−ジでは、動作結果を指定されたデスティ
ネ−ションに入力する動作を行う。演算動作の場合は、
WBステージで演算結果を格納し、メモリからのデ−タ
読み出しやレジスタ間のデ−タ転送動作では、転送され
てきたデ−タをWBステージで格納する。
【0004】上記従来技術では、乗算や積和演算を2.
5サイクルのレイテンシ−で実行することができる。即
ち、乗数と被乗数が入力された後、乗算結果を得るの
に、マイクロプロセッサの動作基準クロック信号の2.
5サイクル後に演算結果を得ることができる。更に、パ
イプライン構造若しくはパイプライン処理を利用するこ
とによって、1回の乗算又は積和演算を1サイクルのス
ループットで実行可能になっている。すなわち、積和演
算をEXステージとMAステージで行うように、積和演
算器を配置する。換言すれば、図14に示すように積和
演算器をEXとMAステ−ジの2段のパイプライン構成
にして、サイクルM1及びM2で1回の積和演算を行
う。ディジタル信号処理などにおける積和演算は繰返し
行なわれ、前のパイプラインによるM1,M2の演算結
果を次のパイプラインによる演算処理のソ−スデータと
して使用する。そのためには、所謂フォワーディング若
しくはバイパシング技術を利用すればよい。換言すれ
ば、MAステージのサイクルM2の演算結果がWBステ
ージでレジスタファイルに書き戻されるのを待たずに、
バイパス経路からマルチプレクサを介して次のパイプラ
インのEXステージにフィ−ドバックすればよい。これ
によって、1回の乗算又は積和演算を見かけ上、1サイ
クルのスループットで実行可能になる。
【0005】
【発明が解決しようとする課題】しかしながら、RIS
C型マイクロコントロ−ラは、データ処理動作動作を上
記5段パイプラインを一単位として逐次実行していく
が、1回の積和演算処理を行うためにはただ単に積和演
算を繰り返せばいいわけではなく、〔1〕被乗数デ−タ
をフェッチ、〔2〕乗数デ−タをフェッチ、〔3〕積和
演算を実行、という3ステップの動作が必要となる。図
15に必要なデ−タの供給も考慮した場合の1回の積和
演算処理の動作を示す。上記従来技術の1サイクル・ス
ループット性能は、全てのソ−スデ−タがあらかじめレ
ジスタファイルに格納されていて、初めて実現出来る。
しかし実際にはソ−スデ−タをレジスタファイルにフェ
ッチする動作も1デ−タ毎に有限のサイクル数が必要に
なるため、フォワ−ディング機能を利用しても結局図1
5に示すように実行終了まで8サイクルのレイテンシ−
と、4サイクルのスル−プットとなる。即ち、図15に
従えば、第1ステップのMAステージでメモリアクセス
を行って乗数データを読み出し、読み出した乗数データ
をWBステージでレジスタファイルに書き込む。このW
Bステージに並行して、第2ステップでは、被乗数デー
タがメモリから読み出される。第3ステップのEXステ
ージには、前記第2ステップのMAステージで読み出さ
れた被乗数データがバイパス(フォワーディング)さ
れ、且つ、第1ステップで得られた乗数データがレジス
タファイルから与えられる。これによって第3ステップ
のEXステージ(M1サイクル)及びMAステージ(M
2サイクル)にて一つの積和演算が行なわれ、演算結果
は、第3ステップのWBステージでレジスタファイルに
書き戻される。
【0006】図15から明らかな様に、第3ステップに
おけるIDステージの後、乗算若しくは積和演算に必要
な2つのソースデータを取得するには、フォワーディン
グ構造を用いても2サイクル必要になる。しかも、乗算
若しくは積和演算は、EXステージとMAステージで行
なわれる。このため、第3ステップに代表的に示される
ように、IDステージの後、EXステージに2つのソー
スデータがロードされるまでに、1サイクルのオ−バヘ
ッド(nopサイクル)が生じてしまう。即ち、パイプ
ラインストールを生じてしまう。その結果、積和演算処
理のスル−プットは、積和演算を繰り返し実行させるた
めのル−プ制御に要するオ−バヘッドを考慮しないとし
ても、1回当たり命令ステップ数(3ステップ)を上回
る4サイクル必要になってしまうことが本発明者によっ
て明らかにされた。
【0007】また、図15の例ではフォワーディング機
能により、前の命令の実行結果に依存する演算命令の実
行に際しても、前の命令がWBステ−ジまで完全に終了
していなくてもソ−スオペランドとして利用可能になる
ため、図15の第3ステップではオ−バヘッドが1サイ
クルだけで済んでいるが、フォワ−ディング機能を簡略
化すると、ソ−スデ−タは必ず前もってWBステ−ジま
で実行を完了していなければならないため、オ−バヘッ
ドは図16に示すように2サイクルになる。しかしどの
ように強力なフォワ−ディング機構を用意しても、EX
ステージ及びMAステージで積和演算若しくは乗算を行
う従来のパイプライン構造では、図15に示されている
1サイクルのオ−バヘッド(nopサイクル)を解消す
ることは不可能である。これがRISC型プロセッサに
おけるディジタル信号処理性能の向上に大きな障害にな
っていることが本発明者によって明らかにされた。
【0008】また、本発明者の検討によれば、見掛け
上、1サイクルのオ−バヘッドを解消する方法として、
図17に示すように2回分の処理をインライン展開して
読み出したデ−タが直ちに演算命令のソ−スに使われな
いようにする方法がある。しかしこの手法では2回分の
デ−タを保持する必要があるため、2倍のレジスタが必
要になるという別の問題が生じていた。
【0009】本発明の目的は、デ−タメモリからデ−タ
を読み出す動作が完了するステ−ジ、もしくは動作が完
了した直後のステ−ジから、そのデ−タをソ−スオペラ
ンドとして使用する演算動作を開始するようなパイプラ
イン構造を採用したマイクロプロセッサを提供すること
にある。
【0010】本発明の更に詳しい目的は、乗算や積和演
算処理を繰り返し実行する度に、ソ−スデ−タのロ−ド
と積和演算動作(又は乗算動作)との間にオ−バヘッド
が生じないようにできるマイクロプロセッサを提供する
ことにある。
【0011】本発明の別の目的は、データレジスタなど
のハードウェアの増大を極力抑えて、積和演算処理等の
デ−タ演算動作と、それに必要なソ−スデ−タの読み出
し動作との間のオ−バヘッドサイクルを解消することが
できるマイクロプロセッサを提供することにある。
【0012】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0013】
【課題を解決するための手段】《1》本願において開示
される発明のうち代表的なものの概要を簡単に説明すれ
ば下記の通りである。すなわち、命令フェッチ(I
F)、命令デコード(ID)、演算実行(EX)、メモ
リアクセス(MA)、ライトバック(WB)と称される
ような5個のステージから成るパイプライン構造を備え
たマイクロプロセッサにおいて、積和演算若しくは乗算
演算をMAステ−ジから開始させ、或いはWBステ−ジ
で演算開始から演算結果のライトバックまで全てを完了
させるようにする。これにより、積和演算処理等のデ−
タ演算動作と、それに必要なソ−スデ−タの読み出し動
作との間のオ−バヘッドサイクルを解消することができ
る。
【0014】《2》上記手段を更に詳しく説明する。第
1に、マイクロプロセッサは、図1、図3、図5、図6
に例示されるように、命令をフェッチする第1ステージ
(IF)、フェッチした命令を解読すると共にレジスタ
ファイルのデータを選択可能な第2ステージ(ID)、
メモリアドレスの演算が可能な第3ステージ(EX)、
第3ステージで演算されたメモリアドレスを基にメモリ
アクセスが可能な第4ステージ(MA)、及び前記第4
ステージで得られたデータを前記レジスタファイルに書
き戻し可能な第5ステージ(WB)を、パイプラインに
よるデータ処理ステージとして有する。このとき、前記
レジスタファイルから読み出したデータと前記データメ
モリから読み出したデータとに対する乗算を前記第4ス
テージ及び第5ステージの内から選ばれた一方又は双方
のステージで行う乗算手段を有する。
【0015】これによれば、図2に例示されるように、
乗算演算のパイプラインにnopサイクルを挿入する必
要はなく、乗数と被乗数を取得して乗算演算若しくは積
和演算を行うときのスループットを3サイクルに短縮す
ることができる。従って、乗数と被乗数の乗算結果若し
くは積和演算結果を3サイクルに1回の割合で得ること
ができる。
【0016】前記乗算手段は、図1に例示されるよう
に、前記レジスタファイルから読み出したデータと前記
データメモリから読み出したデータとに対する乗算の中
間データを前記第4ステージで演算する第1乗算手段
(MU1)と、前記第5ステージで前記乗算の中間デー
タを用いて前記乗算を完結する第2乗算手段(MU2)
とによって構成することができる。これは、マイクロプ
ロセッサの動作基準クロック信号の周波数が高い場合
に、1サイクルで乗算を行うことができない場合に適用
される構成である。
【0017】前記乗算手段は、図3、図6に例示される
ように、前記レジスタファイルから読み出したデータと
前記データメモリから読み出したデータとに対する乗算
を前記第4ステージで完結するものとすることができ
る。また、前記乗算手段は、図5に例示されるように、
前記レジスタファイルから読み出したデータと前記デー
タメモリから読み出したデータとに対する乗算を前記第
5ステージで完結するもとすることができる。これら
は、マイクロプロセッサの動作基準クロック信号周波数
が左程高くない場合に適用される例である。
【0018】第2に、マイクロプロセッサは、図7に例
示されるように、命令をフェッチする第1ステージ、フ
ェッチした命令を解読すると共にレジスタファイルのデ
ータを選択可能な第2ステージ、第1メモリと第2メモ
リのアクセスアドレスを並列的に演算可能な第3ステー
ジ、第3ステージで演算されたアクセスアドレスを基に
第1メモリ及び第2メモリを並列的にアクセス可能な第
4ステージ、並びに前記第4ステージで得られたデータ
を前記レジスタファイルに書き戻し可能な第5ステージ
を、パイプラインによるデータ処理ステージとして有す
る。このとき、前記第1メモリから読み出したデータと
第2メモリから読み出したデータとに対する乗算を前記
第4ステージ及び第5ステージの内から選ばれた一方又
は双方のステージで行う乗算手段を有する。
【0019】前記乗算手段は、前記第1メモリから読み
出したデータと第2メモリから読み出したデータとに対
する乗算の中間データを前記第4ステージで演算する第
1乗算手段と、前記第5ステージで前記乗算の中間デー
タを用いて前記乗算を完結する第2乗算手段とによって
構成することができる。
【0020】前記第2乗算手段の出力に前記第5ステー
ジで選択されたデータを加算して出力する累算手段を更
に設けて、積和演算に対処できる。
【0021】これによれば、図8に例示されるように、
乗数データと被乗数データを並列アクセスし、双方のデ
ータを乗算演算ステージにバイパスさせれば、乗数と被
乗数を取得して乗算更には積和演算を行うときのスルー
プットを2サイクルまで短縮することができる。従っ
て、乗数と被乗数の乗算結果若しくは積和演算結果を2
サイクルに1回の割合で得ることができる。
【0022】第3に、マイクロプロセッサは、図9に例
示されるように、例命令をフェッチする第1ステージ、
フェッチした命令を解読すると共に第1レジスタファイ
ルから乗数データと被乗数データとを読み出し可能な第
2ステージ、第1メモリ及び第2メモリのアクセスアド
レスを並列的に演算可能な第3ステージ、第3ステージ
で演算されたアクセスアドレスを基に第1メモリ及び第
2メモリを並列的にアクセス可能な第4ステージ、並び
に前記第4ステージで得られたデータを第1レジスタフ
ァイルに書き戻し又は第2レジスタファイルに書き込み
可能な第5ステージを、パイプラインによるデータ処理
ステージとして有する。このとき、前記第2レジスタフ
ァイルから読み出された乗数データと被乗数データとに
対する乗算を前記第4ステージ及び第5ステージの内か
ら選ばれた一方又は双方のステージで行う乗算手段を有
する。
【0023】前記乗算手段は、前記第2レジスタファイ
ルから読み出された乗数データと被乗数データとに対す
る乗算の中間データを前記第4ステージで演算する第1
乗算手段と、前記第5ステージで前記乗算の中間データ
を用いて前記乗算を完結する第2乗算手段とによって構
成することができる。
【0024】前記第2乗算手段の出力に前記第5ステー
ジで選択されたデータを加算して出力する累算手段を更
に設けて、積和演算に対処する。
【0025】上記によれば、図10に例示されるよう
に、乗数データと被乗数データを並列アクセスでき、し
かも、そのとき乗算演算若しくは積和演算も並列化する
ことができる。したがって、乗数データと被乗数データ
を並列アクセスしているとき、前回のステップで取得さ
れてバイパス(フォワーディング)された乗数及び被乗
数データを用いた乗算演算若しくは積和演算を行うこと
ができるから、乗数と被乗数を取得して乗算演算若しく
は積和演算を行うときのスループットを1サイクルまで
短縮することができる。乗数と被乗数の乗算結果若しく
は積和演算結果を1サイクルに1回の割合で得ることが
できる。
【0026】第4に、マイクロプロセッサは、図11に
例示されるように、命令をフェッチする第1ステージ、
フェッチした命令を解読すると共に第1レジスタファイ
ルから乗数データと被乗数データとを読み出し可能な第
2ステージ、第1メモリ及び第2メモリのアクセスアド
レスを並列的に演算可能な第3ステージ、第3ステージ
で演算されたアクセスアドレスを基に第1メモリ及び第
2のメモリを並列的にアクセス可能な第4ステージ、並
びに前記第4ステージで得られたデータを第1レジスタ
ファイルに書き戻し又は第2レジスタファイルに書き込
み可能な第5ステージを、パイプラインによるデータ処
理ステージとして有する。このとき、前記第2レジスタ
ファイルから読み出された乗数データと被乗数データと
に対して第5ステージで乗算を行って当該乗算結果を第
2レジスタファイルに出力する乗算手段と、前記第5ス
テージで第2レジスタファイルから読み出された乗算結
果に第5ステージで選択されたデータを加算して出力す
る加算手段とを有する。
【0027】上記によれば、図12に例示されるよう
に、乗数データと被乗数データを並列アクセスでき、し
かも、そのとき乗算演算と加算演算も並列化することが
できる。したがって、乗数データと被乗数データを並列
アクセスしているとき、前回のステップで取得されてバ
イパスされた乗数及び被乗数データを用いた乗算演算を
行い、更に前回のステップで取得された乗算結果の加算
演算を並行して行うことができるから、乗数と被乗数を
取得して乗算更には積和演算を行うときのスループット
を1サイクルまで短縮することができる。
【0028】《3》更に別の観点に立って上記手段を更
に詳しく説明する。第1に、マイクロプロセッサは、図
1に例示されるように、レジスタファイル(CRG)、
演算器(ALU,SFT)、メモリ(DMEM)、及び
積和演算器(MU1,MU2,ACC)を少なくとも具
備し、複数のパイプラインステージによって命令を実行
し、パイプラインステージの境界を構成する第1乃至第
3ラッチ回路(LCH1,LCH2,LCH3)を有す
る。前記積和演算器は2つのパイプラインステ−ジにま
たがって演算動作を実行する前半回路(MU1)及び後
半回路(MU2,ACC)を有する。前記第1ラッチ回
路(LCH1)は、前記レジスタファイルからの出力を
ラッチ可能にされ、且つラッチしたデータを前記演算器
又は第2ラッチ回路に出力可能にされる。前記第2ラッ
チ回路(LCH2)は、前記演算器の出力、第1ラッチ
回路の出力、前記後半回路からのバイパス出力、又は前
記第2ラッチ回路若しくは第3ラッチ回路からのバイパ
ス出力を入力可能にされ、且つラッチしたデータを前記
メモリ、前記前半回路、又は前記第3ラッチ回路に出力
可能にされる。前記第3ラッチ回路(LCH3)は、前
記メモリの出力、前記第2ラッチ回路の出力、前記前半
回路の出力又は第3ラッチ回路からのバイパス出力を入
力可能にされ、且つラッチしたデータをレジスタファイ
ル又は前記後半回路に出力可能にされ、前記後半回路の
出力は前記レジスタファイルに入力可能にされる。
【0029】第2に、マイクロプロセッサは、図3に例
示されるように、レジスタファイル、演算器、メモリ、
及び積和演算器(MU3,ACC)を少なくとも具備
し、複数のパイプラインステージによって命令を実行
し、パイプラインステージの境界を構成する第1乃至第
3ラッチ回路を有する。前記積和演算器は1つのパイプ
ラインステ−ジで演算動作を完結するものである。前記
第1ラッチ回路は、前記レジスタファイルからの出力を
ラッチ可能にされ、且つラッチしたデータを前記演算器
又は前記第2ラッチ回路に出力可能にされる。前記第2
ラッチ回路は、前記演算器の出力、第1ラッチ回路の出
力又は第2ラッチ回路若しくは第3ラッチ回路からのバ
イパス出力を入力可能にされ、且つラッチしたデータを
前記メモリ、前記積和演算器、又は前記第3ラッチ回路
に出力可能にされる。前記第3ラッチ回路は、前記メモ
リの出力、前記第2ラッチ回路の出力、前記積和演算器
の出力又は第3ラッチ回路からのバイパス出力を入力可
能にされ、且つラッチしたデータを前記レジスタファイ
ルに出力可能にされる。
【0030】第3に、マイクロプロセッサは、図5に例
示されるように、レジスタファイル、演算器、メモリ、
及び積和演算器(MU3,ACC)を少なくとも具備
し、複数のパイプラインステージによって命令を実行
し、パイプラインステージの境界を構成する第1乃至第
3ラッチ回路を有する。このとき、前記積和演算器は1
つのパイプラインステ−ジで演算動作を完結するもので
ある。前記第1ラッチ回路は、前記レジスタファイルか
らの出力をラッチ可能にされ、且つラッチしたデータを
前記演算器又は第2ラッチ回路に出力可能にされる。前
記第2ラッチ回路は、前記演算器の出力、第1ラッチ回
路の出力、前記積和演算器からのバイパス出力又は第2
ラッチ回路若しくは第3ラッチ回路からのバイパス出力
を入力可能にされ、且つラッチしたデータを前記メモリ
又は前記第3ラッチ回路に出力可能にされる。前記第3
ラッチ回路は、前記メモリの出力、前記第2ラッチ回路
の出力、前記積和演算器からのバイパス出力又は第3ラ
ッチ回路からのバイパス出力を入力可能にされ、且つラ
ッチしたデータを前記レジスタファイル又は積和演算器
に出力可能にされ、前記積和演算器の出力は前記レジス
タファイルに入力可能にされる。
【0031】第4に、マイクロプロセッサは、図6に例
示されるように、レジスタファイル、第1演算器(A
U)、第2演算器(ALU,SFT)、メモリ、及び積
和演算器(MU3,ACC)を少なくとも具備し、複数
のパイプラインステージによって命令を実行し、パイプ
ラインステージの境界を構成する第1乃至第3ラッチ回
路を有する。このとき、前記積和演算器は1つのパイプ
ラインステ−ジで演算動作を完結するものである。前記
第1ラッチ回路は、レジスタファイルからの出力をラッ
チ可能にされ、且つラッチしたデータを前記第1演算器
又は第2ラッチ回路に出力可能にされる。前記第2ラッ
チ回路は、前記第1演算器の出力、第1ラッチ回路の出
力又は第2ラッチ回路若しくは第3ラッチ回路からのバ
イパス出力を入力可能にされ、且つラッチしたデータを
前記メモリ、前記積和演算器、前記第2演算器又は前記
第3ラッチ回路に出力可能にされる。前記第3ラッチ回
路は、前記メモリの出力、前記第2演算器の出力、前記
第2ラッチ回路の出力、前記前積和演算器の出力又は第
3ラッチ回路からのバイパス出力を入力可能にされ、且
つラッチしたデータを前記レジスタファイルに出力可能
にされる。
【0032】第5に、マイクロプロセッサは、図7に例
示されるように、レジスタファイル(GRG2)、第1
演算器(AU)、第2演算器(ALU,SFT)、第1
メモリ(DMY)、第2メモリ(DMX)、及び積和演
算器(MU1,MU3,ACC)を少なくとも具備し、
複数のパイプラインステージによって命令を実行し、パ
イプラインステージの境界を構成する第1乃至第3ラッ
チ回路を有する。このとき、前記積和演算器は2つのパ
イプラインステ−ジにまたがって演算動作を実行する前
半回路(MU1)及び後半回路(MU3,ACC)を有
する。前記第1ラッチ回路は、レジスタファイルからの
出力をラッチ可能にされ、且つラッチしたデータを前記
第1演算器と第2演算器又は第2ラッチ回路に出力可能
にされる。前記第2ラッチ回路は、前記第1演算器と第
2演算器の出力をラッチして第1メモリと第2メモリに
出力し、又は第1ラッチ回路の出力をラッチして前記前
半回路に出力可能にされる。前記第3ラッチ回路は、前
記第1メモリと第2メモリの出力、前記第2ラッチ回路
の出力、前記前半回路の出力又は第3ラッチ回路からの
バイパス出力を入力可能にされ、且つラッチしたデータ
をレジスタファイル又は前記後半回路に出力可能にさ
れ、前記後半回路の出力は前記レジスタファイルに入力
可能にされる。
【0033】第6に、マイクロプロセッサは、図9に例
示されるように、第1レジスタファイル(GRG3)、
第2レジスタファイル(GRG4)、第1演算器(A
U)、第2演算器(ALU,SFT)、第1メモリ(D
MY2)、第2メモリ(DMX2)、及び積和演算器
(MU1,MU2,ACC)を少なくとも具備し、複数
のパイプラインステージによって命令を実行し、パイプ
ラインステージの境界を構成する第1乃至第3ラッチ回
路を有する。このとき、前記積和演算器は2つのパイプ
ラインステ−ジにまたがって演算動作を実行する前半回
路及び後半回路を有する。前記第1ラッチ回路は、第1
レジスタファイルからの出力をラッチ可能にされ、且つ
ラッチしたデータを前記第1演算器及び第2演算器に出
力可能にされる。前記第2ラッチ回路は、前記第1演算
器及び第2演算器の出力をラッチして第1メモリ及び第
2メモリに出力し、且つ、第2レジスタファイルの出力
をラッチして前記前半回路に出力可能にされる。前記第
3ラッチ回路は、前記第1メモリ及び第2メモリの出力
をラッチして前記第2レジスタファイルに出力し、且
つ、前記前半回路の出力をラッチして前記後半回路に出
力可能にされ、前記後半回路の出力と第3ラッチ回路を
介して第1及び第2メモリから入力したデータとは前記
第2レジスタファイルに入力可能にされる。
【0034】第7に、マイクロプロセッサは、図11に
例示されるように、第1レジスタファイル(GRG
3)、第2レジスタファイル(GRG4)、第1演算器
(AU)、第2演算器(ALU)、第3演算器(ALU
2,SFT2)、第1メモリ(DMY2)、第2メモリ
(DMX2)、及び乗算回路(MU3)を少なくとも具
備し、複数のパイプラインステージによって命令を実行
し、パイプラインステージの境界を構成する第1乃至第
3ラッチ回路を有する。このとき、前記第1ラッチ回路
は、第1レジスタファイルからの出力をラッチ可能にさ
れ、且つラッチしたデータを前記第1演算器及び第2演
算器に出力可能にされる。前記第2ラッチ回路は、前記
第1及び第2演算器の出力をラッチして第1及び第2メ
モリに供給し、且つ第2レジスタファイルの出力を入力
して前記第3ラッチ回路に出力可能にされる。前記第3
ラッチ回路は、前記第1及び第2メモリの出力、及び前
記第2レジスタファイルの出力を入力可能にされ、且つ
ラッチしたデータを第2レジスタファイル、第3演算
器、及び前記乗算器に出力可能にされ、前記第3演算器
及び前記乗算器の出力が前記第2レジスタファイルに入
力可能にされる。
【0035】
【発明の実施の形態】図1には本発明に係るマイクロプ
ロセッサMPUの一例が示される。同図に示されるマイ
クロプロセッサMPUは、命令実行手順を制御する制御
系回路部CTとデータ及びアドレス演算などを行うデー
タパス部DP2に大別される。同図に示されるマイクロ
プロセッサMPUの基本的なパイプラインステージは、
図13で説明した通りのIF,ID,EX,MA,WB
の各ステージから成る5段パイプラインを基本とする。
【0036】図1において、プログラムアドレス生成回
路PADRはプログラムアドレスを生成するための回
路、プログラムアドレスレジスタPCはプログラムアド
レス生成回路PADRで生成されたアドレスをラッチし
て命令アドレスバスIABにアドレスを出力するための
レジスタである。IABは命令アドレスバス、PMEM
はプログラムメモリ、IDBはプログラムメモリPME
Mから読み出された命令コ−ドを出力する命令バス、F
REGは命令バスIDBに出力された命令コ−ドをフェ
ッチする命令フェッチレジスタである。IDECは命令
フェッチレジスタFREGでフェッチされた命令コ−ド
を解読して、実行に必要な制御信号を生成する命令デコ
−ダである。LCH1、LCH2、LCH3はクロック
信号に同期して入力イネーブル状態になる直前の入力信
号の状態を取り込んで保持し、同時にその内容を出力す
るエッジトリガ型のラッチ回路(エッジトリガラッチ)
である。CNT1、CNT2、CNT3は所定のパイプ
ラインステ−ジでの処理に必要な制御信号を生成するた
めの制御信号生成回路である。GRGはレジスタファイ
ルであり、MX1、MX2、MX3、MX4、MX7、
MX8、MX9、MX10はセレクタであり、ALUは
算術論理演算器であり、SFTはシフタである。MU1
は2段のパイプライン構造の乗算器の1段目の乗算回路
であり、MU2は上記乗算器の2段目の乗算回路であ
り、ACCが積和演算の内の加算動作を行うための累算
器である。DABはデ−タメモリをアクセスするための
アドレスを出力するアドレスバス、DMEMはデータメ
モリ、DDBはデ−タメモリへのデ−タの入出力を行う
ためのデ−タバスである。S1はセレクタMX4からラ
ッチ回路LCH2を経て出力される信号、S2はセレク
タMX9の出力信号、S3はデータバスDDBからラッ
チ回路LCH3を経て出力される信号である。なお、こ
の例ではプログラム用のバスやメモリとデ−タ用のバス
やメモリを別々に構成するハ−バ−ド・ア−キテクチャ
型を採用している。上記マイクロプロセッサMPUは、
単結晶シリコンのような1個の半導体基板(半導体チッ
プ)に形成されている。
【0037】前記信号S1、S2、S3及びセレクタM
X1〜MX3、MX7、MX10によって形成される経
路は、フォワーディング(バイパシング)のための信号
フィードバック経路である。フォワーディングとは、A
LUやMU1のような演算器の入力をその前段の回路か
ら入力するだけでなく、後段のパイプラインステージ等
任意のパイプラインステージから入力できるようにし
て、パイプラインをストールせずに処理を続行可能にす
る技術である。換言すれば、WBステージで演算結果を
レジスタファイルに書き込むのを待たずに中間結果を利
用する技がフォワーディング技術である。
【0038】図1から明らかなように、乗算回路MU
1、MU2及び累算器ACCを用いて行なわれる積和演
算は、パイプラインのMAステージとWBステージで行
なわれる。
【0039】ここで、マイクロプロセッサMPUの機能
を前記ステージIF,ID,EX,MA,WB毎に詳述
する。
【0040】〔IFステージ:〕IFステージにおい
て、制御系回路部CTでは、プログラムアドレスレジス
タPCからアドレスが命令アドレスバスIABに出力さ
れ、プログラムメモリPMEM内の指定されたアドレス
領域から命令コ−ドが読み出されて命令バスIDBに出
力される。同時に、プログラムアドレス生成回路PAD
Rでは次の命令読み出しに必要なアドレスを生成する。
【0041】〔IDステ−ジ:〕IDステ−ジにおい
て、制御系回路部CTでは、命令バスIDBに出力され
た命令コ−ドが命令フェッチレジスタFREGに取り込
まれ、その出力が命令デコ−ダIDECに入力されて必
要な制御信号を生成する。なお、次段ステ−ジ以降に必
要な制御信号は命令デコーダIDECで最終的な制御信
号として生成する必要は必ずしもなく、命令コ−ドのま
まか、あるいは一部デコ−ドした形で次段以降の制御信
号生成回路CNT1、CNT2、CNT3に送り、各段
で最終的な制御信号を生成しても構わない。
【0042】デ−タパス部DP1では、命令で指定され
たソ−スオペランドがレジスタファイルGRGから選択
され、ラッチ回路LCH1に出力される。命令の内容に
よって、出力されるオペランド数は、特に制限されない
が、1、2又は3である。
【0043】〔EXステ−ジ:〕EXステ−ジにおい
て、デ−タパス部DP2では、前段でレジスタファイル
GRGから選択されたソ−スオペランドがラッチ回路L
CH1を経てセレクタMX1、MX2、MX3に入力さ
れる。これらのセレクタMX1〜MX3は、フォワ−デ
ィング機構の構成要素であり、他のラッチ回路LCH2
の出力信号S1、セレクタMX9の出力信号S2、他の
ラッチ回路LCH3の出力信号S3も入力され、1また
は2サイクル前に実行された命令に依存して適当な信号
を選択する。命令で指定されたソ−スオペランドが1ま
たは2サイクル前に実行された命令の演算結果を格納す
るデスティネ−ションオペランドと異なる場合は、レジ
スタファイルGRGから出力されてきた信号が選択され
る。命令で指定されたソ−スオペランドが1サイクル前
に実行された命令の演算結果を格納するデスティネ−シ
ョンオペランドと一致する場合、1サイクル前に実行さ
れた命令の演算結果はまだレジスタファイルGRGに格
納されておらず、次段のMAステ−ジにソ−スオペラン
ドが存在するので、フォワ−ディング機能が働いてラッ
チ回路LCH2から出力されてきた信号S1がセレクタ
MX1、MX2、MX3で選択される。命令で指定され
たソ−スオペランドが2サイクル前に実行された命令の
演算結果を格納するデスティネ−ションオペランドと一
致する場合、同様に2サイクル前に実行された命令の演
算結果はまだGRGに格納されておらず、次々段のWB
ステ−ジにソ−スオペランドが存在するので、フォワ−
ディング機能が働いてセレクタMX9から出力されてき
た信号S2又はラッチ回路LCH3の出力信号S3がセ
レクタMX1、MX2、MX3で選択される。S2は2
サイクル前に実行された命令の算術論理演算器ALU、
シフタSFT又は累算器ACCの出力結果がソ−スオペ
ランドになる場合に選択され、S3は2サイクル前に実
行された命令がデ−タ読み出しで、読み出されたデ−タ
がソ−スオペランドになる場合に選択される。
【0044】実行命令が加減算、論理演算、アドレス演
算或いはシフト命令の場合、算術論理演算器ALU又は
シフタSFTが動作し、セレクタMX2及びMX3で選
択されて出力されたデ−タを使って演算を実行する。演
算動作自体はこのステ−ジで終了する。セレクタMX4
では実行された演算の内容によって算術論理演算器AL
U、シフタSFTの演算結果のどちらか一方が選択され
てラッチ回路LCH2へ送られる。算術論理演算器AL
U、シフタSFTのどちらの演算でもない命令の場合
は、セレクタMX4の出力は意味が無いのでデフォルト
としてどちらかを選択しておいても良いし、前回の動作
時に選択した方をそのまま引き続き選択したままでも良
い。
【0045】実行命令が乗算又は積和演算の場合は、こ
のステ−ジではまだ演算を開始せず、セレクタMX1、
MX2、MX3で選択された信号はそのまま次段に送ら
れる。デ−タメモリDMEMへのデ−タ書き込みの場合
は、セレクタMX1で選択されたデータが次段での累算
又はデ−タ書き込み動作のために送られる。なお、デ−
タメモリDEMEMへのデ−タ書き込みに関しては、レ
ジスタファイルGRGからメモリDMEMへの書き込み
動作として、例えばセレクタMX1とは別の経路を設け
てもよい。
【0046】〔MAステ−ジ:〕MAステ−ジにおい
て、デ−タパス部DP2では、5種類の動作に分かれ
る。
【0047】(1)デ−タメモリDMEMからのデ−タ
読み出し命令の場合は、前段で生成されたアドレスがラ
ッチ回路LCH2、信号S1を経てアドレスバスDAB
に出力され、デ−タメモリDMEMをアクセスする。指
定されたアドレスから読み出されたデ−タは、データメ
モリDMEMからデ−タバスDDBに出力され、ラッチ
回路LCH3に送られる。信号S1は、アドレスポイン
タ更新のため、ラッチ回路LCH3にも送られるか、又
は次に実行される命令がこの演算結果をソ−スオペラン
ドとしている場合は前段ステ−ジのセレクタMX1、M
X2又はMX3へ送られる。
【0048】(2)デ−タメモリへのデ−タ書き込み命
令の場合は、前段で生成されたアドレスがラッチ回路L
CH2を経てアドレスバスDABに出力され、デ−タメ
モリDMEMをアクセスする。同時にセレクタMX1、
ラッチ回路LCH2を経てセレクタMX10に入力され
たレジスタファイルGRGからのデ−タが選択されてデ
ータバスDDBに出力され、データメモリDMEMに送
られて書き込まれる。信号S1は、アドレスポインタ更
新のため、ラッチ回路LCH3にも送られるか、又は次
に実行される命令がこの演算結果をソ−スオペランドと
している場合は前段ステ−ジのセレクタMX1、MX2
又はMX3へ送られる。
【0049】(3)実行命令が加減算、論理演算或いは
シフト命令の場合は、セレクタMX4、ラッチ回路LC
H2を経た演算結果が、そのまま次のラッチ回路LCH
3へ送られるか、又は次に実行される命令がこの演算結
果をソ−スオペランドとしている場合は前段ステ−ジの
セレクタMX1、MX2又はMX3へ送られる。
【0050】(4)実行命令が乗算の場合、乗算回路M
U1が動作し、ラッチ回路LCH2及びセレクタMX7
から送られてきたデ−タを使って演算を実行する。演算
はこのステ−ジでは終了せず、次段で引き続き演算を続
行する。
【0051】前段のセレクタMX2で選択されたソ−ス
オペランドがラッチ回路LCH2を経てセレクタMX7
に入力される。セレクタMX7はフォワ−ディング機構
の構成要素であり、他のラッチ回路LCH3の出力信号
S3、セレクタMX9の出力信号S2も入力され、1サ
イクル前に実行された命令に依存して適当な信号を選択
する。なお、図1の例では乗算回路MU1の一方の入力
にはセレクタが付いていないが、これはフォワーディン
グするのがどちらか一方の入力だけで演算のバリエ−シ
ョンとしては充分であるためであるが、双方の入力オペ
ランドの選択の幅が異なっていたり、制御回路を単純に
したいときには、両方にセレクタを設けても良い。セレ
クタMX7では、命令で指定されたソ−スオペランドが
1サイクル前に実行された命令の演算結果を格納するデ
スティネ−ションオペランドと異なる場合は、セレクタ
LCH2から出力されてきた信号が選択される。命令で
指定されたソ−スオペランドが1サイクル前に実行され
た命令の演算結果を格納するデスティネ−ションオペラ
ンドと一致する場合、1サイクル前に実行された命令の
演算結果はまだレジスタファイルGRGに格納されてお
らず、次段のWBステ−ジにソ−スオペランドが存在す
るので、フォワ−ディング機能が働いてラッチ回路LC
H3又はセレクタMX9から出力されてきた信号が選択
される。ラッチ回路LCH3の出力が選択されるのは、
前の命令でデータメモリDMEMから読み出されたデ−
タをソ−スオペランドとする場合であり、セレクタMX
9の出力が選択されるのは、前の命令の演算結果(デ−
タ転送命令のアドレス演算を含む)をソ−スオペランド
とする場合である。
【0052】(5)実行命令が積和演算の場合、乗算部
分は先の(4)と同じである。同時にセレクタMX10
で選択されたデータが次段での累算動作のために送られ
る。セレクタMX10もフォワ−ディング機構の構成要
素であり、ラッチ回路LCH2からの入力の他にセレク
タMX9及びラッチ回路LCH3の出力信号も入力さ
れ、1サイクル前に実行された命令に依存して適当な信
号を選択する。命令で指定されたソ−スオペランドが1
サイクル前に実行された命令の演算結果を格納するデス
ティネ−ションオペランドと異なる場合は、ラッチ回路
LCH2から出力されてきた信号が選択される。命令で
指定されたソ−スオペランドが1サイクル前に実行され
た命令の演算結果を格納するデスティネ−ションオペラ
ンドと一致する場合、1サイクル前に実行された命令の
演算結果はまだレジスタファイルGRGに格納されてお
らず、次段のWBステ−ジにソ−スオペランドが存在す
るので、フォワ−ディング機能が働いてラッチ回路LC
H3又はセレクタMX9から出力されてきた信号が選択
される。ラッチ回路LCH3の出力が選択されるのは、
前の命令でデータメモリDMEMから読み出されたデ−
タをソ−スオペランドとする場合であり、セレクタMX
9の出力が選択されるのは、前の命令の演算結果(デ−
タ転送命令のアドレス演算を含む)をソ−スオペランド
とする場合である。
【0053】〔WBステ−ジ:〕WBステ−ジにおい
て、デ−タパス部DP2では、4種類の動作に分かれ
る。
【0054】(1)デ−タメモリDMEMからのデ−タ
読み出し命令の場合、前段のMAステ−ジでデータメモ
リDMEMから読み出されたデ−タがデータバスDDB
及びラッチ回路LCH3を経て信号S3が出力され、レ
ジスタファイルGRG及び各フォワ−ディング機能のセ
レクタに送られる。
【0055】(2)実行命令が加減算、論理演算或いは
シフト命令の場合、セレクタMX4、ラッチ回路LCH
2及びLCH3を経てセレクタMX9で選択されて信号
S2が出力され、レジスタファイルGRG及び各フォワ
−ディング機能のセレクタに送られる。
【0056】(3)実行命令が乗算の場合、乗算回路M
U1からラッチ回路LCH3を経て送られてきた乗算動
作の中間デ−タを用いて、残りの演算動作を乗算回路M
U2で続行する。一方セレクタMX8ではゼロが選択さ
れ、その結果累算器ACCでは乗算回路MU2の演算結
果がそのまま通過してセレクタMX9で選択されて信号
S2が出力され、レジスタファイルGRG及び各フォワ
−ディング機能のセレクタに送られる。
【0057】(4)実行命令が積和演算の場合、まず乗
算と同様に乗算回路1(MU1)からラッチ回路LCH
3を経て送られてきた乗算動作の中間デ−タを用いて、
残りの演算動作を乗算回路MU2で続行する。一方セレ
クタMX8では第3のソ−スオペランドが選択され、累
算器ACCで乗算回路MU2の乗算結果に加算されてセ
レクタMX9で選択され選択されて信号S2が出力さ
れ、レジスタファイルGRG及び各フォワ−ディング機
能のセレクタに送られる。
【0058】図1の例では、パイプライン化された乗算
又は積和演算の実行開始を他の演算の実行開始ステ−ジ
であるEXステ−ジではなく、MAステ−ジから開始し
ている。この結果、図2に示すように乗算や積和演算に
必要なソ−スデ−タの読み出し動作を演算動作の直前に
置いても、フォワ−ディング機構が有効に働いて、1サ
イクルのオ−バヘッドもなく演算が実行可能になる。
【0059】本発明者が検討した図18の比較例(公知
ではない)では、従来技術で説明したように、パイプラ
イン化された乗算又は積和演算の実行開始を他の演算の
実行開始ステ−ジであるEXステ−ジから開始してい
る。前述のように図18の構成では、図15に代表され
るように、乗数と被乗数を取得して乗算演算若しくは積
和演算を行うときのスループットが4サイクルになる。
これに対して、図1のパイプライン構成では、図2に示
されるように、乗算演算のパイプラインにnopサイク
ルを挿入する必要はなく、乗数と被乗数を取得して乗算
演算若しくは積和演算を行うときのスループットを3サ
イクルに短縮することができる。従って、乗数と被乗数
の乗算結果若しくは積和演算結果を3サイクルに1回の
割合で得ることができる。
【0060】フォワ−ディング機構が備えられている場
合、前述のように、MAステ−ジ以降から演算を開始可
能な構成になっていれば、乗算や積和演算動作を必要な
ソ−スデ−タのロ−ド動作と組み合わせてもオ−バヘッ
ド無しに実行可能となる。従って、例えば乗算や積和演
算器の動作速度が他の動作の実行速度に比べてシステム
全体の動作速度性能のボトルネックにならない場合は、
乗算に対してパイプライン構造を採用しなくても構わな
い。但し、その場合でも、他の演算器と同じEXステ−
ジから乗算や積和演算を開始すべきではなく、MAステ
ージ以降で行わなければならない。
【0061】図3には乗算をパイプライン構造にしない
場合のデータバス部の例が示される。図中、MU3はパ
イプライン構成無しで乗算動作を実行する乗算回路であ
る。他の構成要素については、図1と同じであり、同一
機能を有する回路要素には同一符号を付してその詳細な
説明を省略する。
【0062】図3の例は、乗算及び積和演算動作がMA
ステ−ジのみで実行される他は、図1の実施例と同じで
ある。従って、WBステ−ジの構造は図18の比較例と
同じ構造に戻っている。図3の例では、セレクタMX1
0、MX7がフォワ−ディング機能を備えているので、
乗算又は積和演算命令の実行直前のステップで演算に必
要なデ−タをロ−ドする動作が指定されていても、図4
に示すようにやはりオ−バヘッド無しで乗算動作を実行
することができる。更に図3の構成によれば、次のステ
ップで演算結果をメモリに書き込む命令を実行する場合
も、図18の比較例と同じようにオ−バヘッド無しで実
行することが可能である。即ち、演算実行直後にそのデ
−タをデ−タメモリDMEMに格納する場合、演算結果
は未だレジスタファイルGRGに格納されておらず、次
段のWBステ−ジにソ−スオペランドが存在するので、
フォワ−ディング機能が働いてセレクタMX6から出力
されてきた信号がセレクタMX10で選択され、データ
バスDDBに出力されてデータメモリDMEMに送られ
る。
【0063】図5には本発明の第3の例が示されてい
る。図中の各構成要素は全て今まで述べてきたものの組
み合わせになっている。図5の例は、図3の例で述べた
1ステ−ジで演算実行可能な乗算/積和演算器をWBス
テ−ジに構成したものである。この例によれば、図3の
ようにデ−タをメモリDMEMに格納する場合のオ−バ
ヘッドは生じるが、図1の実施例と同様、デ−タロ−ド
直後の演算実行時のオ−バヘッドは解消される。
【0064】ここまでの例では、ディジタル信号処理で
重要な乗算又は積和演算実行時のオ−バヘッドの問題だ
けを解決しようとした。次に示す例は、乗算又は積和演
算以外の汎用的な演算例えば算術論理演算などに対して
もオーバヘッドを解決しようとするものである。
【0065】図6は一般的な演算である算術論理演算及
びシフト演算実行時のオ−バヘッドをも解消する例であ
る。図中、AUはデ−タ転送動作に必要なアドレスを生
成する演算器、MX11はフォワ−ディング機能を備え
たセレクタ、LCH4はエッジトリガ型のラッチ回路、
MX12はセレクタである。図6の例では、デ−タ演算
を行う演算器ALU、SFTとアドレス演算を行う演算
器AUとを分離し、デ−タ演算を行う演算回路ALU、
SFTは全て演算開始をMAステ−ジに移動させてい
る。その結果、乗算や積和演算動作と同様、他の演算で
も必要なソ−スデータの読み出し命令の直後に演算命令
を置いても、オ−バヘッド無しで実行することが可能と
なる。なお、この例は積和演算をMAステ−ジだけで完
了する場合を示しているが、図5のようにWBステ−ジ
だけで完了させたり、図1のように両方のステ−ジにま
たがって動作させる場合でも良いことは言うまでもな
い。
【0066】以上説明した例では、あくまでもRISC
プロセッサの基本である1命令で1動作を前提としてい
たが、汎用のディジタルシグナルプロセッサ(DSP)
のように複数の動作を並列に実行可能にした構造のプロ
セッサでも、本発明を適用できる。
【0067】図7にそのような一つの例を挙げる。図
中、LCH5、LCH6、LCH7はエッジトリガ型の
ラッチ回路であり、GRG2はレジスタファイルであ
り、MX13、MX14、MX15、MX16、MX1
7、MX18、MX19、MX20はセレクタである。
DMX、DMYはデ−タメモリであり、DABX、DA
BYはデ−タ用のアドレスバスであり、DDBX、DD
BYはデ−タバスであり、S4はラッチ回路LCH6か
らのフォワ−ディング信号であり、S5、S6はラッチ
回路LCH7からのフォワ−ディング信号である。その
他の回路要素は図1と同様である。
【0068】図7の例では、EXステ−ジに従来の算術
論理演算器ALUに加えて加算器AUが備えられてお
り、算術論理演算器ALUと加算器AUは同時並列に動
作可能になっている。また、MAステ−ジにはデ−タメ
モリ、アドレスバス、デ−タバスも各々2つずつ備えら
れているので、同時に2つのデ−タ読み出し動作が実行
出来るようになっている。その結果、図8に示すように
第1ステップと第2ステップが同時に処理され、積和演
算のスル−プットは2サイクルになっている。この時も
積和演算はMAステ−ジから開始するようになっている
ので、デ−タ読み出し動作と積和演算動作との間にはオ
−バヘッドサイクルは生じない。
【0069】なお、この例ではデ−タメモリDMYには
アドレスバスDABX、DABYのどちらからでもアク
セス可能な構造にしているが、これは単独デ−タアクセ
スの場合には常時算術論理演算器ALUでアドレス生成
を行うようにすることを想定したものであるが、アドレ
スでデータメモリDMX、DMYを識別し、データメモ
リDMYをアクセスする場合はいつでも加算器AUにて
アドレスを生成するように制御すれば、データメモリD
MYもDMXと同じような構造にしてもいいことは言う
までもない。また、この例では積和演算回路をMA、W
Bの2ステ−ジにまたがって動作するような構成にして
いるが、図3や図5のように、どちらか1つのステ−ジ
のみで動作を完了するような演算器を用いても良いこと
は明らかである。さらに、図6のように、一般的な演算
である算術論理演算及びシフト演算を実行する時のオ−
バヘッドをも解消するために、アドレス演算器を別に設
け、これらの演算器は積和演算器と同様にMAまたはW
Bステ−ジに移しても良いことも明らかである。
【0070】図9はさらに並列度を高めたマイクロプロ
セッサの例である。図中、GRG3、4はレジスタファ
イルであり、LCH8、LCH9、LCH10はエッジ
トリガ型のラッチ回路であり、MX21、MX22、M
X23、MX24、MX25、MX26、MX27はセ
レクタである。S7、S8、S9、S10、S11はラ
ッチ回路からの出力信号であり、S12、S13、S1
4、S15はレジスタファイルGRG4からの出力信号
である。ALU2は第2の算術論理演算器、SFT2は
第2のバレルシフタである。今まで説明した回路要素と
同一機能を有するものには同一符号を付してその詳細な
説明は省略する。
【0071】図9の例は、ディジタル信号処理向けのハ
−ドウェアを完全に汎用演算モジュ−ルから切り離し、
独立の演算器及びレジスタファイルを設けた例を示して
いる。積和演算器MU1,MU2,ACCはディジタル
信号処理向けのハ−ドウェアとして扱う。この結果、レ
ジスタファイルGRG3、算術論理演算器ALU、シフ
タSFT、加算器AUから成るEXステ−ジで演算を実
行する演算回路は、積和演算処理以外の算術論理演算等
の処理と、積和演算等のディジタル信号処理動作に必要
なデ−タアクセス動作のためのアドレス演算動作とに専
ら用いられる。積和演算器MU1,MU2,ACCと新
たに設けたレジスタファイルGRG4、算術論理演算器
ALU2及びシフタSFT2は、MA及びWBステ−ジ
で動作を実行する。なお、図9の例では算術論理演算器
ALUとシフタSFTは同時には動作せず、セレクタM
X27によって毎サイクルどちらか一方のみ動作可能な
構造になっているが、積和演算器と同様に、レジスタフ
ァイルGRG4と独立したソ−ス及びデスティネ−ショ
ンオペランドを転送可能にしても良いことは言うまでも
ない。
【0072】図9の例によれば、図10に示すように、
最初と最後に合計1ル−プ分のインライン展開が必要に
なるが、1回の積和演算動作のスル−プットを、必要な
ソ−スデ−タのロ−ド動作を含めて1サイクルで実現で
きる。この時も積和演算はMAステ−ジから開始するよ
うになっているので、デ−タ読み出し動作と積和演算動
作との間にはオ−バヘッドサイクルは生じない。なお、
本実施例では2つのデ−タメモリDMX、DMYに対し
て3つ目のアドレスバスDAB及びデ−タバスDDBを
設けている。これは、レジスタファイルGRG3との間
のデ−タ転送時にはアドレスバスDAB及びデータバス
DDBを使って図18の構成と等価な動作を実現させ、
レジスタファイルGRG4に対しては積和演算処理のス
ル−プットが1サイクルになるために2つのデ−タ転送
動作が同時に実行可能になるようにしたものである。
【0073】なお、図9の例では積和演算器をMA、W
B両方のステ−ジにまたがって動作する構成にしている
が、今迄の例と同様、どちらか一方のステ−ジのみで動
作する回路で構成しても良いし、算術論理演算器ALU
2やシフタSFT2をMAステ−ジに移しても良いこと
は言うまでもない。
【0074】図11の例は積和演算動作のスル−プット
は図9の例と同様に1サイクルで実現可能であるが、図
9に比べて回路規模を低減させている。図11におい
て、LCH11、LCH12、LCH13はエッジトリ
ガ型ラッチ回路であり、MX21、MX22、MX2
3、MX24、MX25、MX26はセレクタであり、
DMX2,DMY2はデ−タメモリである。S16,S
17はレジスタファイルGRG4からの出力信号であ
る。
【0075】図11の例は積和演算回路を乗算回路MU
3のみの構成とし、同時並列に動作可能な算術論理演算
器ALU2との連携動作により、積和演算処理を実現さ
せるものである。また、乗算回路は図5の実施例と同様
にWBステ−ジ1段で演算を実行できる例を示している
が、図9のように2段のパイプライン構成にしてもよい
ことは言うまでもない。
【0076】図11の例では、乗算回路の1サイクル化
とレジスタファイルGRG4により、積和演算機能に関
するフォワ−ディング機構が不要になり、ハ−ドウェア
構造が簡略化できている。また、レジスタファイルGR
G3、算術論理演算器ALU、加算器AUから成る部分
の演算パイプライン構造をEXステ−ジで終了とし、算
術論理演算器ALU、加算器AUの出力信号S8、S9
をフォワーディングさせずに、直ちにレジスタファイル
GRG3へライトバックさせることにより、フォワ−デ
ィング機構も大幅に簡略化し、残りはデ−タメモリDM
EM読み出し動作時のWBステ−ジからのフォワ−ディ
ング回路のみとしている。また、シフト処理を全てSF
T2で行うことで問題ないので、この例のように、EX
ステ−ジでのシフト処理用のシフタ(図1のSFT)を
省略しても構わない。
【0077】図11の例によれば、図12に示すよう
に、1回の積和演算処理にかかるレイテンシ−は1サイ
クル延び、2回分のインライン展開が必要であるが、積
和演算器を乗算器にしてハ−ドウェア規模を節約しても
積和演算のスル−プットは依然として1サイクルを実現
できる。
【0078】以上本発明者によってなされた発明を実施
形態に基づいて具体的に説明したが、本発明はそれに限
定されるものではなく、その要旨を逸脱しない範囲にお
いて種々変更可能であることは言うまでもない。例え
ば、マイクロプロセッサは、I/Oポート、バスコント
ローラ、DMACなど、その他の回路ブロックを同一の
半導体チップに含んでもよい。また、各パイプラインス
テージは1サイクルに限定されず、一部のステージ又は
全部のステージを夫々2サイクル以上にしてもよい。
【0079】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0080】すなわち、IF、ID、EX、MA、WB
のような5ステージから成るパイプライン構造を備えた
マイクロプロセッサにおいて、積和演算若しくは乗算演
算をMAステ−ジから開始させ、或いはWBステ−ジで
演算開始から演算結果のライトバックまで全てを完了さ
せるようにする。これにより、積和演算処理等のデ−タ
演算動作と、それに必要なソ−スデ−タの読み出し動作
との間のオ−バヘッドサイクルを解消することができ
る。したがって、デ−タメモリからデ−タを読み出す動
作が完了するステ−ジ、もしくは動作が完了した直後の
ステ−ジから、そのデ−タをソ−スオペランドとして使
用する演算動作を開始することができる。
【図面の簡単な説明】
【図1】本発明に係るマイクロプロセッサの一例を示す
ブロック図である。
【図2】図1のマイクロコンピュータにおける積和演算
のパイプライン処理の一例が示されるタイミングチャー
トである。
【図3】乗算を一つのMAステージで行うようにしたデ
ータパス部の一例を示すブロック図である。
【図4】図3のデータパス部を採用したマイクロプロセ
ッサにおける積和演算のパイプライン処理の一例が示さ
れるタイミングチャートである。
【図5】乗算を一つのWBステージで行うようにしたデ
ータパス部の一例を示すブロック図である。
【図6】積和演算や乗算以外の一般的な演算時のオ−バ
ヘッドも解消するようにしたデータパス部の一例を示す
ブロック図である。
【図7】汎用のディジタルシグナルプロセッサのように
複数の動作を並列に実行可能にした構造を採用したデー
タパス部のブロック図である。
【図8】図7のデータパス部を採用したマイクロプロセ
ッサにおける積和演算のパイプライン処理の一例が示さ
れるタイミングチャートである。
【図9】図7に対して更に演算処理の並列度を高めた構
造を持つデータパス部のブロック図である。
【図10】図9のデータパス部を採用したマイクロプロ
セッサにおける積和演算のパイプライン処理の一例が示
されるタイミングチャートである。
【図11】積和演算動作のスル−プットを図9と同等に
維持しつつ図9に比べて回路規模を小さくしたデータパ
ス部のブロック図である。
【図12】図11のデータパス部を採用したマイクロプ
ロセッサにおける積和演算のパイプライン処理の一例が
示されるタイミングチャートである。
【図13】RISC型マイクロプロセッサのパイプライ
ン構造の概略説明図である。
【図14】ソースデータの供給については考慮せず積和
演算だけを単に連続実行するとしたときのパイプライン
処理のタイミングチャートである。
【図15】ソ−スデ−タの供給を考慮した場合の積和演
算連続動作時におけるパイプライン処理のタイミングチ
ャートである。
【図16】図15に対してフォワ−ディングを用いずに
積和演算連続動作を行ったときのパイプライン処理のタ
イミングチャートである。
【図17】2回分の処理をインライン展開して積和演算
を行うようにしたときのパイプライン処理のタイミング
チャートである。
【図18】本発明者が検討したパイプライン構造とフォ
ワ−ディング機構を持つ比較例としてのマイクロプロセ
ッサのブロック図である。
【符号の説明】
IF 命令フェッチステ−ジ ID 命令デコ−ドステージ EX 演算実行ステ−ジ MA メモリアクセスステ−ジ WB デ−タのライトバックステ−ジ PADR プログラムアドレスを生成するための回路 PC 命令アドレスバスにアドレスを出力するためのレ
ジスタ IAB 命令アドレスバス PMEM プログラムメモリ IDB 命令バス FREG 命令フェッチレジスタ IDEC 命令デコ−ダ LCH1〜LCH13 エッジトリガ型のラッチ CNT1〜CNT3 制御信号生成回路 GRG、GRG2〜GRG4 レジスタファイル MX1〜MX26 セレクタ ALU、ALU2 算術論理演算器 SFT、SFT2 シフタ MU1 2段のパイプライン構造の乗算器の1段目の回
路 MU2 2段のパイプライン構造の乗算器の2段目の回
路 MU3 乗算器 ACC 累算器 DAB、DABX、DABY アドレスバス DMEM データメモリ DDB、DDBX、DDBY デ−タバス
フロントページの続き (72)発明者 野口 孝樹 東京都小平市上水本町五丁目20番1号 株 式会社日立製作所半導体事業部内 Fターム(参考) 5B013 AA00 AA11 AA18 5B056 AA05 BB71 DD12 FF01 FF05 FF07 FF08 FF16 5B057 CH04 CH05 CH09

Claims (22)

    【特許請求の範囲】
  1. 【請求項1】 命令をフェッチする第1ステージ、フェ
    ッチした命令を解読すると共にレジスタファイルのデー
    タを選択可能な第2ステージ、メモリアドレスの演算が
    可能な第3ステージ、第3ステージで演算されたメモリ
    アドレスを基にメモリアクセスが可能な第4ステージ、
    及び前記第4ステージで得られたデータを前記レジスタ
    ファイルに書き戻し可能な第5ステージを、パイプライ
    ンによるデータ処理ステージとして有するマイクロプロ
    セッサであって、 前記レジスタファイルから読み出したデータと前記デー
    タメモリから読み出したデータとに対する乗算を前記第
    4ステージ及び第5ステージの内から選ばれた一方又は
    双方のステージで行う乗算手段を有して成るものである
    マイクロプロセッサ。
  2. 【請求項2】 前記乗算手段は、前記レジスタファイル
    から読み出したデータと前記データメモリから読み出し
    たデータとに対する乗算の中間データを前記第4ステー
    ジで演算する第1乗算手段と、前記第5ステージで前記
    乗算の中間データを用いて前記乗算を完結する第2乗算
    手段とから成るものである請求項1記載のマイクロプロ
    セッサ。
  3. 【請求項3】 前記第2乗算手段の出力に前記第5ステ
    ージで選択されたデータを加算して出力する累算手段を
    更に設けて成るものである請求項2記載のマイクロプロ
    セッサ。
  4. 【請求項4】 前記乗算手段は、前記レジスタファイル
    から読み出したデータと前記データメモリから読み出し
    たデータとに対する乗算を前記第4ステージで完結する
    ものである請求項1記載のマイクロプロセッサ。
  5. 【請求項5】 前記乗算手段の出力に前記第4ステージ
    で選択されたデータを加算して出力する累算手段を更に
    設けて成るものである請求項4記載のマイクロプロセッ
    サ。
  6. 【請求項6】 前記乗算手段は、前記レジスタファイル
    から読み出したデータと前記データメモリから読み出し
    たデータとに対する乗算を前記第5ステージで完結する
    ものである請求項1記載のマイクロプロセッサ。
  7. 【請求項7】 前記乗算手段の出力に前記第5ステージ
    で選択されたデータを加算して出力する累算手段を更に
    設けて成るものである請求項6記載のマイクロプロセッ
    サ。
  8. 【請求項8】 命令をフェッチする第1ステージ、フェ
    ッチした命令を解読すると共にレジスタファイルのデー
    タを選択可能な第2ステージ、第1メモリと第2メモリ
    のアクセスアドレスを並列的に演算可能な第3ステー
    ジ、第3ステージで演算されたアクセスアドレスを基に
    第1メモリ及び第2メモリを並列的にアクセス可能な第
    4ステージ、並びに前記第4ステージで得られたデータ
    を前記レジスタファイルに書き戻し可能な第5ステージ
    を、パイプラインによるデータ処理ステージとして有す
    るマイクロプロセッサであって、 前記第1メモリから読み出したデータと第2メモリから
    読み出したデータとに対する乗算を前記第4ステージ及
    び第5ステージの内から選ばれた一方又は双方のステー
    ジで行う乗算手段を有して成るものであるマイクロプロ
    セッサ。
  9. 【請求項9】 前記乗算手段は、前記第1メモリから読
    み出したデータと第2メモリから読み出したデータとに
    対する乗算の中間データを前記第4ステージで演算する
    第1乗算手段と、前記第5ステージで前記乗算の中間デ
    ータを用いて前記乗算を完結する第2乗算手段とから成
    るものである請求項8記載のマイクロプロセッサ。
  10. 【請求項10】 前記第2乗算手段の出力に前記第5ス
    テージで選択されたデータを加算して出力する累算手段
    を更に設けて成るものである請求項9記載のマイクロプ
    ロセッサ。
  11. 【請求項11】 命令をフェッチする第1ステージ、フ
    ェッチした命令を解読すると共に第1レジスタファイル
    から乗数データと被乗数データとを読み出し可能な第2
    ステージ、第1メモリ及び第2メモリのアクセスアドレ
    スを並列的に演算可能な第3ステージ、第3ステージで
    演算されたアクセスアドレスを基に第1メモリ及び第2
    メモリを並列的にアクセス可能な第4ステージ、並びに
    前記第4ステージで得られたデータを第1レジスタファ
    イルに書き戻し又は第2レジスタファイルに書き込み可
    能な第5ステージを、パイプラインによるデータ処理ス
    テージとして有するマイクロプロセッサであって、 前記第2レジスタファイルから読み出された乗数データ
    と被乗数データとに対する乗算を前記第4ステージ及び
    第5ステージの内から選ばれた一方又は双方のステージ
    で行う乗算手段を有して成るものであるマイクロプロセ
    ッサ。
  12. 【請求項12】 前記乗算手段は、前記第2レジスタフ
    ァイルから読み出された乗数データと被乗数データとに
    対する乗算の中間データを前記第4ステージで演算する
    第1乗算手段と、前記第5ステージで前記乗算の中間デ
    ータを用いて前記乗算を完結する第2乗算手段とから成
    るものである請求項11記載のマイクロプロセッサ。
  13. 【請求項13】 前記第2乗算手段の出力に前記第5ス
    テージで選択されたデータを加算して出力する累算手段
    を更に設けて成るものである請求項12記載のマイクロ
    プロセッサ。
  14. 【請求項14】 命令をフェッチする第1ステージ、フ
    ェッチした命令を解読すると共に第1レジスタファイル
    から乗数データと被乗数データとを読み出し可能な第2
    ステージ、第1メモリ及び第2メモリのアクセスアドレ
    スを並列的に演算可能な第3ステージ、第3ステージで
    演算されたアクセスアドレスを基に第1メモリ及び第2
    のメモリを並列的にアクセス可能な第4ステージ、並び
    に前記第4ステージで得られたデータを第1レジスタフ
    ァイルに書き戻し又は第2レジスタファイルに書き込み
    可能な第5ステージを、パイプラインによるデータ処理
    ステージとして有するマイクロプロセッサであって、 前記第2レジスタファイルから読み出された乗数データ
    と被乗数データとに対して第5ステージで乗算を行って
    当該乗算結果を第2レジスタファイルに出力する乗算手
    段と、前記第5ステージで第2レジスタファイルから読
    み出された乗算結果に第5ステージで選択されたデータ
    を加算して出力する加算手段とを有して成るものである
    マイクロプロセッサ。
  15. 【請求項15】 レジスタファイル、演算器、メモリ、
    及び積和演算器を少なくとも具備し、複数のパイプライ
    ンステージによって命令を実行し、パイプラインステー
    ジの境界を構成する第1乃至第3ラッチ回路を有するマ
    イクロプロセッサであって、 前記積和演算器は2つのパイプラインステ−ジにまたが
    って演算動作を実行する前半回路及び後半回路を有し、 前記第1ラッチ回路は、前記レジスタファイルからの出
    力をラッチ可能にされ、且つラッチしたデータを前記演
    算器又は第2ラッチ回路に出力可能にされ、 前記第2ラッチ回路は、前記演算器の出力、第1ラッチ
    回路の出力、前記後半回路からのバイパス出力、又は前
    記第2ラッチ回路若しくは第3ラッチ回路からのバイパ
    ス出力を入力可能にされ、且つラッチしたデータを前記
    メモリ、前記前半回路、又は前記第3ラッチ回路に出力
    可能にされ、 前記第3ラッチ回路は、前記メモリの出力、前記第2ラ
    ッチ回路の出力、前記前半回路の出力又は第3ラッチ回
    路からのバイパス出力を入力可能にされ、且つラッチし
    たデータをレジスタファイル又は前記後半回路に出力可
    能にされ、前記後半回路の出力は前記レジスタファイル
    に入力可能にされて成るものであるマイクロプロセッ
    サ。
  16. 【請求項16】 レジスタファイル、演算器、メモリ、
    及び積和演算器を少なくとも具備し、複数のパイプライ
    ンステージによって命令を実行し、パイプラインステー
    ジの境界を構成する第1乃至第3ラッチ回路を有するマ
    イクロプロセッサであって、 前記積和演算器は1つのパイプラインステ−ジで演算動
    作を完結するものであり、 前記第1ラッチ回路は、前記レジスタファイルからの出
    力をラッチ可能にされ、且つラッチしたデータを前記演
    算器又は前記第2ラッチ回路に出力可能にされ、 前記第2ラッチ回路は、前記演算器の出力、第1ラッチ
    回路の出力又は第2ラッチ回路若しくは第3ラッチ回路
    からのバイパス出力を入力可能にされ、且つラッチした
    データを前記メモリ、前記積和演算器、又は前記第3ラ
    ッチ回路に出力可能にされ、 前記第3ラッチ回路は、前記メモリの出力、前記第2ラ
    ッチ回路の出力、前記前積和演算器の出力又は第3ラッ
    チ回路からのバイパス出力を入力可能にされ、且つラッ
    チしたデータを前記レジスタファイルに出力可能にされ
    て成るものであるマイクロプロセッサ。
  17. 【請求項17】 レジスタファイル、演算器、メモリ、
    及び積和演算器を少なくとも具備し、複数のパイプライ
    ンステージによって命令を実行し、パイプラインステー
    ジの境界を構成する第1乃至第3ラッチ回路を有するマ
    イクロプロセッサであって、 前記積和演算器は1つのパイプラインステ−ジで演算動
    作を完結するものであり、 前記第1ラッチ回路は、前記レジスタファイルからの出
    力をラッチ可能にされ、且つラッチしたデータを前記演
    算器又は第2ラッチ回路に出力可能にされ、 前記第2ラッチ回路は、前記演算器の出力、第1ラッチ
    回路の出力、前記積和演算器からのバイパス出力又は第
    2ラッチ回路若しくは第3ラッチ回路からのバイパス出
    力を入力可能にされ、且つラッチしたデータを前記メモ
    リ又は前記第3ラッチ回路に出力可能にされ、 前記第3ラッチ回路は、前記メモリの出力、前記第2ラ
    ッチ回路の出力、前記積和演算器からのバイパス出力又
    は第3ラッチ回路からのバイパス出力を入力可能にさ
    れ、且つラッチしたデータを前記レジスタファイル又は
    積和演算器に出力可能にされ、前記積和演算器の出力は
    前記レジスタファイルに入力可能にされて成るものであ
    るマイクロプロセッサ。
  18. 【請求項18】 レジスタファイル、第1演算器、第2
    演算器、メモリ、及び積和演算器を少なくとも具備し、
    複数のパイプラインステージによって命令を実行し、パ
    イプラインステージの境界を構成する第1乃至第3ラッ
    チ回路を有するマイクロプロセッサであって、 前記積和演算器は1つのパイプラインステ−ジで演算動
    作を完結するものであり、 前記第1ラッチ回路は、レジスタファイルからの出力を
    ラッチ可能にされ、且つラッチしたデータを前記第1演
    算器又は第2ラッチ回路に出力可能にされ、 前記第2ラッチ回路は、前記第1演算器の出力、第1ラ
    ッチ回路の出力又は第2ラッチ回路若しくは第3ラッチ
    回路からのバイパス出力を入力可能にされ、且つラッチ
    したデータを前記メモリ、前記積和演算器、前記第2演
    算器又は前記第3ラッチ回路に出力可能にされ、 前記第3ラッチ回路は、前記メモリの出力、前記第2演
    算器の出力、前記第2ラッチ回路の出力、前記前積和演
    算器の出力又は第3ラッチ回路からのバイパス出力を入
    力可能にされ、且つラッチしたデータを前記レジスタフ
    ァイルに出力可能にされて成るものであるマイクロプロ
    セッサ。
  19. 【請求項19】 前記第1の演算器は前記メモリをアク
    セスするためのアドレス演算用とされ、前記第2演算器
    はデータ演算用とされるものである請求項18記載のマ
    イクロプロセッサ。
  20. 【請求項20】 レジスタファイル、第1演算器、第2
    演算器、第1メモリ、第2メモリ、及び積和演算器を少
    なくとも具備し、複数のパイプラインステージによって
    命令を実行し、パイプラインステージの境界を構成する
    第1乃至第3ラッチ回路を有するマイクロプロセッサで
    あって、 前記積和演算器は2つのパイプラインステ−ジにまたが
    って演算動作を実行する前半回路及び後半回路を有し、 前記第1ラッチ回路は、レジスタファイルからの出力を
    ラッチ可能にされ、且つラッチしたデータを前記第1演
    算器と第2演算器又は第2ラッチ回路に出力可能にさ
    れ、 前記第2ラッチ回路は、前記第1演算器と第2演算器の
    出力をラッチして第1メモリと第2メモリに出力し、又
    は第1ラッチ回路の出力をラッチして前記前半回路に出
    力可能にされ、 前記第3ラッチ回路は、前記第1メモリと第2メモリの
    出力、前記第2ラッチ回路の出力、前記前半回路の出力
    又は第3ラッチ回路からのバイパス出力を入力可能にさ
    れ、且つラッチしたデータをレジスタファイル又は前記
    後半回路に出力可能にされ、前記後半回路の出力は前記
    レジスタファイルに入力可能にされて成るものであるマ
    イクロプロセッサ。
  21. 【請求項21】 第1レジスタファイル、第2レジスタ
    ファイル、第1演算器、第2演算器、第1メモリ、第2
    メモリ、及び積和演算器を少なくとも具備し、複数のパ
    イプラインステージによって命令を実行し、パイプライ
    ンステージの境界を構成する第1乃至第3ラッチ回路を
    有するマイクロプロセッサであって、 前記積和演算器は2つのパイプラインステ−ジにまたが
    って演算動作を実行する前半回路及び後半回路を有し、 前記第1ラッチ回路は、第1レジスタファイルからの出
    力をラッチ可能にされ、且つラッチしたデータを前記第
    1演算器及び第2演算器に出力可能にされ、 前記第2ラッチ回路は、前記第1演算器及び第2演算器
    の出力をラッチして第1メモリ及び第2メモリに出力
    し、且つ、第2レジスタファイルの出力をラッチして前
    記前半回路に出力可能にされ、 前記第3ラッチ回路は、前記第1メモリ及び第2メモリ
    の出力をラッチして前記第2レジスタファイルに出力
    し、且つ、前記前半回路の出力をラッチして前記後半回
    路に出力可能にされ、前記後半回路の出力と第3ラッチ
    回路を介して第1及び第2メモリから入力したデータと
    は前記第2レジスタファイルに入力可能にされて成るも
    のであるマイクロプロセッサ。
  22. 【請求項22】 第1レジスタファイル、第2レジスタ
    ファイル、第1演算器、第2演算器、第3演算器、第1
    メモリ、第2メモリ、及び乗算回路を少なくとも具備
    し、複数のパイプラインステージによって命令を実行
    し、パイプラインステージの境界を構成する第1乃至第
    3ラッチ回路を有するマイクロプロセッサであって、 前記第1ラッチ回路は、第1レジスタファイルからの出
    力をラッチ可能にされ、且つラッチしたデータを前記第
    1演算器及び第2演算器に出力可能にされ、 前記第2ラッチ回路は、前記第1及び第2演算器の出力
    をラッチして第1及び第2メモリに供給し、且つ第2レ
    ジスタファイルの出力を入力して前記第3ラッチ回路に
    出力可能にされ、 前記第3ラッチ回路は、前記第1及び第2メモリの出
    力、及び前記第2レジスタファイルの出力を入力可能に
    され、且つラッチしたデータを第2レジスタファイル、
    第3演算器、及び前記乗算器に出力可能にされ、前記第
    3演算器及び前記乗算器の出力が前記第2レジスタファ
    イルに入力可能にされて成るものであるマイクロプロセ
    ッサ。
JP17123498A 1998-06-18 1998-06-18 マイクロプロセッサ Expired - Fee Related JP3669841B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17123498A JP3669841B2 (ja) 1998-06-18 1998-06-18 マイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17123498A JP3669841B2 (ja) 1998-06-18 1998-06-18 マイクロプロセッサ

Publications (2)

Publication Number Publication Date
JP2000010780A true JP2000010780A (ja) 2000-01-14
JP3669841B2 JP3669841B2 (ja) 2005-07-13

Family

ID=15919541

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17123498A Expired - Fee Related JP3669841B2 (ja) 1998-06-18 1998-06-18 マイクロプロセッサ

Country Status (1)

Country Link
JP (1) JP3669841B2 (ja)

Also Published As

Publication number Publication date
JP3669841B2 (ja) 2005-07-13

Similar Documents

Publication Publication Date Title
US8443170B2 (en) Apparatus and method for performing SIMD multiply-accumulate operations
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US7937559B1 (en) System and method for generating a configurable processor supporting a user-defined plurality of instruction sizes
US6058465A (en) Single-instruction-multiple-data processing in a multimedia signal processor
US6061780A (en) Execution unit chaining for single cycle extract instruction having one serial shift left and one serial shift right execution units
US6446190B1 (en) Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor
US20020169942A1 (en) VLIW processor
US6330657B1 (en) Pairing of micro instructions in the instruction queue
KR101048234B1 (ko) 마이크로프로세서 내부의 다수의 레지스터 유닛들을 결합하기 위한 방법 및 시스템
JP2002536738A (ja) 間接vliwプロセッサにおける実行時間並列処理のための動的vliwサブ命令選択システム
WO2002048873A2 (en) Exception handling in a pipelined processor
EP1124181A1 (en) Data processing apparatus
US10303399B2 (en) Data processing apparatus and method for controlling vector memory accesses
JP2003005958A (ja) データ処理装置およびその制御方法
US6427207B1 (en) Result forwarding cache
JP3578883B2 (ja) データ処理装置
JP3479385B2 (ja) 情報処理装置
US5778208A (en) Flexible pipeline for interlock removal
US20120110037A1 (en) Methods and Apparatus for a Read, Merge and Write Register File
US20200326940A1 (en) Data loading and storage instruction processing method and device
US7539847B2 (en) Stalling processor pipeline for synchronization with coprocessor reconfigured to accommodate higher frequency operation resulting in additional number of pipeline stages
CN112074810B (zh) 并行处理设备
US6728741B2 (en) Hardware assist for data block diagonal mirror image transformation
US20030208664A1 (en) Method and apparatus for swapping the contents of address registers
KR20080049727A (ko) 별도의 직렬 모듈을 지닌 프로세서 어레이

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041005

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050118

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050322

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: 20050412

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050412

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: 20080422

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090422

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090422

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100422

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100422

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110422

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110422

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20110422

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20120422

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120422

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130422

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20140422

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees