JP3512707B2 - マイクロコンピュータ - Google Patents

マイクロコンピュータ

Info

Publication number
JP3512707B2
JP3512707B2 JP2000121494A JP2000121494A JP3512707B2 JP 3512707 B2 JP3512707 B2 JP 3512707B2 JP 2000121494 A JP2000121494 A JP 2000121494A JP 2000121494 A JP2000121494 A JP 2000121494A JP 3512707 B2 JP3512707 B2 JP 3512707B2
Authority
JP
Japan
Prior art keywords
code
decoder
instruction
branch
routing
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 - Fee Related
Application number
JP2000121494A
Other languages
English (en)
Other versions
JP2001306318A (ja
Inventor
雅洋 葉山
Original Assignee
Necマイクロシステム株式会社
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 Necマイクロシステム株式会社 filed Critical Necマイクロシステム株式会社
Priority to JP2000121494A priority Critical patent/JP3512707B2/ja
Publication of JP2001306318A publication Critical patent/JP2001306318A/ja
Application granted granted Critical
Publication of JP3512707B2 publication Critical patent/JP3512707B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マイクロコンピュ
ータに関し、特に、パイプライン制御により高速に動作
するマイクロコンピュータに関する。
【0002】
【従来の技術】マイクロコンピュータの処理の高速化の
ためにパイプライン制御が用いられ、さらに高速な動作
の実現のために種々の改良がなされている。図7は、第
1の従来例のパイプライン制御の動作を示す図である。
基本的な5段のパイプライン制御の例で横方向に時間の
経過を示し、縦方向に各処理のステージを示している。
【0003】第1のマシンサイクルで、フェッチステー
ジIFにおいて命令メモリより命令1を取り込む。第2
のマシンサイクルで、命令1はデコードステージDEC
に移り、デコードが行われるとともに、同マシンサイク
ルで取り込まれた命令1のオペランドを格納先へ転送す
る。第3のマシンサイクルで、命令1はリードデータス
テージRDに移り、データメモリより演算などに用いる
データを取り込む。第4のマシンサイクルで、命令1は
実行ステージEXに移り、演算等の処理を行う。第5の
マシンサイクルで命令1はライトバックステージに移
り、実行の結果をデータメモリあるいはレジスタに書き
込む オペランドとしてメモリアドレスを直接指定する命令を
持ち命令長が可変のマイクロコンピュータでは、リード
ステージRDにおいて演算に用いるデータの読み出しを
行う。実行する命令が演算に用いるデータのリードを行
う命令であるので、リードステージRDの開始までに、
読出し対象データが格納されているデータメモリのアド
レスをアドレスポインタに格納しておく必要がある。し
たがって、デコードステージDECでは、命令フォーマ
ットを解析し、オペコードをデコードし、オペランドを
読出し対象データが格納されているアドレス値としてア
ドレスポインタへ転送する等の多くの処理を行う必要が
ある。このために、第1の従来例では、デコードステー
ジDECの処理が高速化の障害となる。
【0004】図8は、第2の従来例のパイプライン制御
の動作を示す図である。第1の従来例におけるデコード
ステージを、第1のデコードステージDEC1と、第2
のデコードステージDEC2とに分割し、計6段のパイ
プライン構成としてそれぞれのステージにおける処理の
負荷を減らすことにより高速化を実現する。第1のデコ
ードステージDEC1において命令フォーマットの解析
およびオペコードのデコードを行い、第2のデコードス
テージDEC2においてアドレスポインタへアドレス値
の転送を行うように処理を分割する場合と、第1のデコ
ードステージDEC1において命令フォーマットの解析
のみを行い、第2のデコードステージDEC2において
デコードおよびアドレスポインタへのアドレス値の転送
を行うように処理を分割する場合とがある。
【0005】第2の従来例では、パイプラインのステー
ジ数を増やすことにより高速化を実現できるが、分岐が
発生したときには、パイプラインステージ数分の実行中
の命令を中断して無効化しなければならないという問題
が生じる。パイプラインステージ数が多ければ多いほど
分岐が発生したときの無駄が多くなり、第1の従来例で
は、分岐命令の終了から分岐先の命令の終了まで5マシ
ンサイクルであるが、第2の従来例では、分岐命令の終
了から分岐先の命令の終了までには、6マシンサイクル
を要することになる。
【0006】分岐発生時のオーバーヘッドを低減する第
3の従来例が、特開平04−338824号公報に開示
されている。
【0007】図9(a)は、第3の従来例のフェッチお
よびデコードを実行する部分のブロック図であり、
(b)は、第3の従来例のパイプライン制御の動作を示
す図である。図9(a)で、命令メモリから取り込まれ
た命令コードは、命令バッファキュー91に一旦蓄積さ
れた後に、第1のクロック信号P1によりラッチ92に
取り込まれてプリデコーダ93に入力され、命令フォー
マットの解析および演算に用いるデータ部の制御信号の
生成を行う。命令コードは、第1のクロック信号P1と
合わせて2相クロックを構成する第2のクロックP2で
ラッチ94に取り込まれ、デコーダ95でデコードされ
て信号演算の実行を行うALUやシフターなど演算回路
の制御信号を生成する。この構成により、図9(b)に
示すように、演算部の制御信号のデコードに対し半サイ
クル先行させてプリデコードを行うので第1のデコード
ステージDEC1と第2のデコードステージDEC2と
を1.5マシンサイクルで処理するので、パイプライン
のステージ数は6であるにもかかわらず、命令の実行全
体を第2の従来例より少ない5マシンサイクルで完了す
ることができる。したがって、分岐が発生したときに
は、分岐命令の終了から分岐先の命令の終了まで5マシ
ンサイクルに短縮することができる。
【0008】しかしながら、第3の従来例では、DEC
1とDEC2のデコードステージ全体を1.5マシンサ
イクルで処理するので、マシンサイクルを構成するクロ
ック信号の周波数は、デコードステージに1マシンサイ
クルしか割り当てていない第1の従来例よりは高速にで
きるものの、2マシンサイクルを割り当てている第2の
従来例ほど高速にすることはできないため、分岐発生が
なくパイプラインが順調に動作しているときの性能は、
第2の従来例に及ばない。また、第3の従来例では2相
クロックを使用するので、製造時のMOSトランジスタ
などの構成素子のばらつきにより生じるクロック信号の
位相のずれや、デューティー比のずれにより動作マージ
ンが制限されやすい。
【0009】別の分岐発生時のオーバーヘッドを低減す
る技術として、分岐予測機構を装備するマイクロコンピ
ュータが情報処理用途などで使用されているが、分岐予
測機構は回路規模が大きく、また、予測が外れた場合の
オーバーヘッドが改善されないため、比較的小規模で且
つリアルタイム性が要求される制御機器向けのマイクロ
コンピュータなどには向いていない。
【0010】
【発明が解決しようとする課題】以上に説明したよう
に、第1の従来例は、分岐発生時のオーバーヘッドが小
さくてすむものの、デコードステージが障害となって高
速化できない。第2の従来例は、高速化には適している
ものの、分岐発生時のオーバーヘッドが大きい。第3の
従来例は、分岐発生時のオーバーヘッドについては第2
の従来例と同等に小さくできるが、動作速度については
第1の従来例と第2の従来例との間の動作速度にとどま
る。
【0011】本発明の目的は、動作速度において第2の
従来例と同等であり、且つ条件分岐発生時のオーバーヘ
ッドにおいて第1の従来例および第3の従来例と同等に
低減したマイクロコンピュータを提供することにある。
【0012】
【課題を解決するための手段】本発明のマイクロコンピ
ュータは、オペコードまたはオペランドを含む本体コー
ド部と該本体コード部の格納先の経路を指定する経路指
定コード部とからなる命令コードの前記本体コード部と
次の命令コードの経路指定コード部とを一組の組合せコ
ードとして保持する命令メモリと、オペコードをデコー
ドするオペコードデコーダと、分岐検出信号と前記組合
せコードの経路指定コード部を入力し、前記分岐発生検
出信号がアクティブレベルでないときには前記経路指定
コード部をデコードして次の前記組合せコードの本体コ
ード部の格納先を指定し、前記分岐検出信号がアクティ
ブレベルのときには分岐先の組合せコードの本体コード
部の格納先を前記オペコードデコーダに限定する経路コ
ードデコーダとを有している。
【0013】または、本発明のマイクロコンピュータ
は、オペコードまたはオペランドを含む本体コード部と
該本体コード部の格納先の経路を指定する経路指定コー
ド部とからなる命令コードの前記本体コード部と次の命
令コードの経路指定コード部とを一組の組合せコードと
して格納した命令メモリと、前記命令メモリから前記組
合せコードの経路指定コード部を読み込みデコードし結
果に基づいて次の組合せコードの本体コード部の格納先
を選択し前記命令メモリから前記格納先への経路を制御
する経路コードデコーダと、前記経路指定コード部で格
納先に指定されているときには前記経路コードデコーダ
の制御の下に前記命令メモリから前記次の組合せコード
の本体コード部を読み込みオペコードをデコードするオ
ペコードデコーダと、前記オペコードデコーダのデコー
ド結果に基づき演算を実行するとともに条件分岐命令の
分岐が成立したときに分岐検出信号をアクティブとする
演算回路とを有し、前記経路コードデコーダが前記分岐
検出信号がアクティブとなったことを検出したときには
分岐先の組合せコードの本体コード部の格納先を前記オ
ペコードデコーダに限定する構成とする。
【0014】前記経路コードデコーダが、第1のマシン
サイクルで命令メモリから組合せコードの経路指定コー
ド部を読み込み第2のマシンサイクルで前記経路指定コ
ード部をデコードし結果に基づき次の組合せコードの本
体コード部の格納先を選択して前記命令メモリから前記
格納先までの経路を制御し、前記オペコードデコーダ
が、前記経路指定コード部に格納先として指定されてい
るときには前記第2のマシンサイクルで前記第1の命令
デコーダの制御の基に前記次の組合せコードの本体コー
ド部を読み込み第3のマシンサイクルでオペコードをデ
コードし結果に基づいて以降のマシンサイクルで演算の
実行を制御するように構成してもよい。
【0015】
【発明の実施の形態】一般にマイクロコンピュータにお
いては、命令メモリには命令コードが格納され、命令メ
モリより読み出された命令がマイクロコンピュータ内で
実行される。命令メモリに格納された命令コードは、オ
ペコード部とオペランド部に分類できる。オペコード部
は、演算回路などによる処理内容の指定を行う部分であ
り、オペランド部は、演算のデータとして使用される直
値データ、演算の対象となるデータの格納先、分岐命令
における分岐先のアドレスなどを示す部分である。これ
らのデータは、格納先のハードウェアが異なり、命令が
フェッチされるとオペコード部は命令デコーダに格納さ
れ、オペランド部は命令の内容に基づいて、演算対象の
データであればテンポラリレジスタへ、演算対象のデー
タの格納先アドレスであればアドレスポインタへ格納さ
れる。
【0016】本発明のマイクロコンピュータにおいて
は、命令コードをオペコードまたはオペランドを含む本
体コード部とこの本体コード部の格納先の経路を指定す
る経路指定コード部とに分割し、本体コードと命令コー
ドとの組合せ方を変更して、本体コード部と、次の命令
コードの経路指定コード部とを一組とした組合せコード
として命令メモリに保持する。また、本発明のマイクロ
コンピュータは、経路指定コードをデコードする経路コ
ードデコーダと、オペコードをデコードするオペコード
デコーダとの二つのデコーダを有しており、経路コード
デコーダは、分岐検出信号と組合せコードの経路指定コ
ード部とを入力する。分岐発生検出信号がアクティブレ
ベルでないときには、経路コードデコーダは、経路指定
コード部をデコードし、デコード結果に基づいて次の組
合せコードの本体コード部の格納先を指定する。分岐検
出信号がアクティブレベルのときには、経路コードデコ
ーダは、分岐先の組合せコードの本体コード部の格納先
を無条件にオペコードデコーダとする。
【0017】以下、本発明について図面を参照して詳細
に説明する。図1は、本発明のマイクロコンピュータ1
1の一実施の形態のブロック図である。
【0018】命令メモリ12は、命令コードを、オペコ
ードまたはオペランドを含み本体をなす本体コード部
と、本体コード部の格納先を示す経路指定コード部とに
分割し、経路指定コード部を、命令メモリ12の読み出
し単位において、対応するデータ部より1つ前に読み出
されるアドレスに配置して組合せコードを形成する。
【0019】図2に、命令コードと組合せコードの構成
を示す。図2(a)は、従来のマイクロコンピュータに
おける命令コード31の構成を示す図であり、経路指定
コード部An(n=1,2,3・・・)は、本体コード
部Bnの格納先を示す。従来のマイクロコンピュータの
命令コードでは、経路指定コード部に相当するコードは
実際には本体コード部であるオペコード部の中に含まれ
おり、図2(a)は説明の都合上分離して図示したもの
であるが、経路指定コード部Anと本体コード部Bnと
が結合して命令nの命令コード31を形成している。こ
れに対して、図2(b)は、本発明のマイクロコンピュ
ータ11における命令メモリ12内の経路指定コード部
と本体コード部との配置を示す図であり、経路指定コー
ド部A(n+1)と本体コード部Bnとを組み合わせて
命令nの組合せコード32として格納する。命令メモリ
12からの読み出しに際しては、A2とB1、A3とB
2のように、経路指定コード部が本体コード部に1アド
レス(または1組合せコード分)先行する形で読み出し
が行われる。
【0020】経路コードデコーダ13は、命令メモリ1
2から組合せコード単位で読み出される毎に組合せコー
ドの経路指定コード部を取り込みデコードを行い、デコ
ードの結果にしたがって本体コード部が経由するバスの
制御信号SEL0〜SEL4を生成する。制御信号SE
L0〜SEL4は、クロック信号に同期して少なくとも
一つの格納先への経路が選択されるように構成されてお
り、経路指定コード部が読み出された次のマシンサイク
ルにおいて、経路指定コード部において指定された格納
先に格納されるよう制御を行う。
【0021】オペコードデコーダ14は、経路指定コー
ド部で次アドレスに格納された組合せコードの本体コー
ド部の格納先に指定されているときには、経路コードデ
コーダ13の制御の下に命令メモリ12から次アドレス
の本体コード部を読み込み、オペコードをデコードし
て、デコード結果に基づいて演算回路21等の制御を行
う。
【0022】命令メモリ12より読み出された本体コー
ド部がオペランドであったときには、オペランドは、前
のアドレスの経路指定コードで指定された格納先に基づ
いて経路コードデコーダ13の制御の下に、データメモ
リ15のアドレスを指し示すアドレスポインタ16、レ
ジスタファイル17のレジスタ名を指し示すレジスタポ
インタ18、演算対象のデータを一時的に格納するテン
ポラリレジスタA19およびテンポラリレジスタB20
などに転送される。
【0023】演算回路21は、テンポラリレジスタA1
9およびテンポラリレジスタB20に格納されたデータ
を用い、オペコードデコーダ14のデコード結果に基づ
いて演算制御信号CONTを受けて加算等の演算を行い
オペランドで指定されたレジスタあるいはデータメモリ
のアドレスに結果の書き込みを行う。条件分岐命令で分
岐が成立したことを演算回路21が検出したときには、
分岐検出信号BRAをアクティブにして経路コードデコ
ーダ13に分岐発生を通知する。
【0024】本発明では、経路指定コード部が対応する
本体コード部より先に読み出されるので、オペコードま
たはオペランドを含む本体コード部の読み出し時には本
体コード部の格納先が判明しているため、命令メモリか
ら読み出された本体コード部を直接格納先に格納するこ
とが可能になる。
【0025】経路コードデコーダ13は、条件分岐の成
立を検出して分岐発生を通知する分岐検出信号BRAが
アクティブではない通常の動作状態では、命令メモリ1
2より読み出された経路指定コード部のデータをデコー
ドして次のアドレスの本体コード部の格納先の指定を行
うが、条件分岐命令で条件分岐が成立して分岐検出信号
BRAがアクティブとなったときには、次のマシンサイ
クルにおいて、命令メモリ12のアドレスを指し示すプ
ログラムカウンタ22に分岐先のアドレス値を設定する
とともに、次にフェッチする分岐先の組合せコードの本
体コード部の格納先がオペコードデコーダ14に限定さ
れるように経路の制御を行う。
【0026】次に、本発明のマイクロコンピュータのパ
イプライン制御動作について詳細に説明する。図3は、
パイプライン制御の動作を示す図である。命令1として
は、1ワード目にオペコード、2ワード目にデータメモ
リのアドレスをオペランドとして持つ加算命令を例とし
ている。
【0027】第1マシンサイクルにおいて、直前の命令
の組合せコードの本体コード部(図示せず)とともに加
算命令の最初の転送先指定分である経路指定コードA1
を命令メモリ12から読み出し、経路コードデコーダ1
3に格納する。経路コードデコーダ13は、読み出した
経路指定コード部をデコードし、次のマシンサイクルの
本体コード部の転送先の制御を行なう。
【0028】第2マシンサイクルでは、経路コードデコ
ーダ13にはオペコードを示す経路指定コードA1のデ
ータが既に格納されており、経路コードデコーダ13は
制御信号SEL0をアクティブとするので、次の組合せ
コードの本体コード部B1はオペコードデコーダ14に
格納される。本体コード部B1と同時に命令メモリ12
から読み出された経路指定コードA2は、経路コードデ
コーダ13に格納され、命令メモリ12からの次の組合
せコードの読み出しに備える。
【0029】第3マシンサイクルでは、オペデコーダ1
4に格納された命令コードB1は、デコードされ加算命
令であるとの判断がなされる。同時に、オペランドであ
る本体コード部B2は経路指定コードA2の指定にした
がって制御信号SEL1がアクティブとなりアドレスポ
インタ16へ格納される。
【0030】第4マシンサイクルでは、アドレスポイン
タ16で指定されるデータメモリのアドレスからデータ
を読み出し、テンポラリレジスタA19へ格納する。
【0031】第5マシンサイクルでは、本体コード部B
1にオペコードで指示された加算演算をオペデコーダ1
4の制御の下に演算回路21にて実行する。第6マシン
サイクルでは、演算結果をレジスタポインタ18で示さ
れるレジスタに格納し命令の実行を終了する。
【0032】図3のパイプラインでは、経路指定コード
部A2がオペランドである本体データ部B2に先行して
取り込まれるで、命令フォーマットの解析を先行して行
うため、次のマシンサイクルでオペコードである本体コ
ードB1のデコードと同時にオペランドである本体コー
ドB2のアドレスポインタへの転送を行うことができ
る。これにより、命令フォーマットの解析、オペコード
のデコードおよびオペランドの転送のための時間とし
て、従来例2のようにデコードステージを分割して2ス
テージとしたものと同等の時間を確保できるので、従来
例2と同等の高速なクロックで動作させることが可能と
なる。
【0033】図4は、経路コードデコーダ13を含む回
路図である。図4では、オペランドの格納先として、ア
ドレスポインタ16,レジスタポインタ18、テンポラ
リレジスタA19およびオペコードデコーダ14の4個
のハードウェアとし、2ビットの経路指定コードで指定
する構成例である。
【0034】分岐検出信号BRAがアクティブでないと
きには、経路コードデコーダ13は、命令メモリ12よ
り読み出した経路指定コード部をクロックに同期してラ
ッチし、クロック信号のハイレベル期間にアクティブと
なる経路制御信号SEL0〜3を発生し、次のアドレス
の本体コード部の格納先としてアドレスポインタ16,
レジスタポインタ18、テンポラリレジスタA19およ
びオペコードデコーダ14のうちの一つを選択する。
【0035】分岐発生検出時は、分岐検出信号BRAが
アクティブとなるので、ラッチには(0,0)が入力さ
れ、クロック信号がハイレベルになると制御信号SEL
0がアクティブとなるので、次の本体コード部すなわち
分岐先のアドレスの本体コード部は、オペコードデコー
ダ14に格納される。
【0036】図4では、説明の簡単化のために格納経路
指定コードをA5−1,A5−2の2ビットとして格納
先を4個のうちのひとつとしたが、勿論これに限られる
ものではなく、より多くのビット数を用いることによ
り、より多数のハードウェアから格納先を選択すること
が可能であることは明らかであり、また、複数の演算回
路を有する場合などでは、格納先を複数にすることも可
能である。
【0037】次に、分岐発生が検出されたときのパイプ
ライン制御の動作について説明する。
【0038】図5は、命令メモリ12内の分岐発生アド
レスと分岐先アドレスを模式的に示した図である。図の
ように、アドレス(2)に格納されていた条件分岐命令
である本体コード部B2を実行したところ、分岐条件が
成立してアドレス(n)へ分岐するものとして、以下に
パイプラインの動作を説明する。
【0039】図6は、分岐発生時のパイプライン制御の
動作を示す図であり、図中で61は分岐命令を示す。
【0040】第1マシンサイクルから第3マシンサイク
ルまでの動作は、分岐発生の有無にかかわらず同一であ
り、図3において説明したとおりであるが、第4マシン
サイクルでは、分岐先アドレスがレジスタに格納されて
いた場合には、指定されたレジスタより読み出しを行
い、分岐が発生した場合に備える。
【0041】第5マシンサイクルにおいて、直前までに
行った演算の結果により分岐を発生させるか否かの判定
を行い、分岐条件が成立した場合には、次のサイクルに
おいて分岐検出信号を発生させる。
【0042】第6マシンサイクルでは、分岐検出信号B
RAがアクティブとなったことを受け、経路コードデコ
ーダ13は、予め用意しておいた分岐先アドレスをプロ
グラムカウンタ22に設定するとともに、分岐命令に続
く命令については実行する必要が無くなるため、マイク
ロコンピュータは、パイプライン動作にて途中まで行わ
れていた実行を中断して無効化する。図中で62は無効
にする処理結果を示す。
【0043】これらの動作と並行して、経路コードデコ
ーダ13は、次の第7マシンサイクルでフェッチする本
体コード部の格納先をオペコードデコーダ14に限定す
るよう制御を行う。これにより分岐先の本体コード部B
nに対応する経路指定コード部Anを読み出す必要が無
くなり、分岐発生時のオーバーヘッドを1マシンサイク
ル分削減することが可能となる。したがって、分岐後の
命令実行結果は、第11マシンサイクルに得られるの
で、分岐命令の実行結果が判明した第6マシンサイクル
から5マシンサイクル後となり、これは5段のパイプラ
イン構成である第1の従来例および第3の従来例と同等
である。
【0044】このように、本発明では、実質的なパイプ
ライン段数が6段であるにもかかわらず、分岐を検出し
たときにはには、次のマシンサイクルでのフェッチデー
タをオペコードデコーダ14に送ってオペコードとして
認識させることにより、分岐発生時のオーバーヘッドを
5段パイプライン相当に削減することができるので、6
段パイプライン相当の高速化と5段パイプライン相当の
分岐発生時のオーバーヘッド削減を両立できる。
【0045】以上の本発明の説明において、経路指定コ
ード部でアドレスポインタ、レジスタポインタなどから
1個を格納先として指定しているが、マイクロコンピュ
ータの命令形式に応じて、経路指定コード部に読出し先
指定および格納先指定を持たせるようにしてもよい。ま
た、データメモリのメモリ空間が広い場合には、アドレ
スポインタを上位アドレスと下位アドレスに分割し、そ
れぞれに格納先を指定するようにしてもよい。また、レ
ジスタ名を示すオペランドのデータ幅はデータメモリの
アドレスを示すオペランドのデータ幅と比べ小さいの
で、レジスタポインタをオペランドとするときのみオペ
コードに含むようしてコード効率を改善することも可能
である。また、本発明は、デジタルシグナルプロセッサ
(DSP)等の信号処理専用のマイクロコンピュータに
対しても適用できることは明らかである。
【0046】
【発明の効果】以上説明したように、本発明では、命令
コードを本体コード部と経路指定コード部に分割し、経
路指定コード部が対応する命令コードの本体コード部に
先行して読み出されるように組合せを変えて命令メモリ
に格納するとともに、経路コードデコーダとオペコード
デコーダの二つのデコーダを備えることにより、命令フ
ォーマットの解析、オペコードのデコードおよびオペラ
ンドの転送のための時間として、従来例2のようにデコ
ードステージを分割して2ステージとしたものと同等の
時間を確保できるので、従来例2と同等の高速なクロッ
クで動作させて、各ステージの実行を高速化できるとい
う第1の効果が得られる。加えて、分岐発生検出時には
経路コードデコーダが分岐先の本体コード部の格納先を
オペコードデコーダに限定するように制御することによ
り、分岐発生時には、分岐先の経路指定コードのフェッ
チステージの実行を実質的に省略するので、分岐発生時
に無効化するステージの発生によるオーバーヘッドをパ
イプラインステージ数の少ない第1の従来例と同等に低
減することができるという第2の効果が得られる。
【0047】分岐発生時のパイプラインの制御処理時間
は、第1の効果と第2の効果とを合わせたものとなるの
で、第1の従来例よりも遙かに短時間で処理することが
でき、第3の実施例よりも短時間で処理することができ
る。
【図面の簡単な説明】
【図1】本発明のマイクロコンピュータの一実施の形態
のブロック図である。
【図2】命令コードと組合せコードの構成を示す図であ
る。
【図3】本発明におけるパイプライン制御の動作を示す
図である。
【図4】経路コードデコーダを含む回路の回路図であ
る。
【図5】命令メモリ内の分岐発生アドレスと分岐先アド
レスを模式的に示した図である。
【図6】本発明における分岐発生時のパイプライン制御
の動作を示す図である。
【図7】第1の従来例のパイプライン制御の動作を示す
図である。
【図8】第2の従来例のパイプライン制御の動作を示す
図である。
【図9】(a)は、第3の従来例のフェッチおよびデコ
ードを実行する部分のブロック図であり、(b)は、第
3の従来例のパイプライン制御の動作を示す図である。
【符号の説明】
11 マイクロコンピュータ 12 命令メモリ 13 経路コードデコーダ 14 オペコードデコーダ 15 データメモリ 16 アドレスポインタ 17 レジスタファイル 18 レジスタポインタ 19,20 テンポラリレジスタ 21 演算回路 22 プログラムカウンタ 31 命令コード 32 組合せコード 91 命令バッファキュー 92,94 ラッチ 93 プリデコーダ 95 デコーダ

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】 オペコードまたはオペランドを含む本体
    コード部と該本体コード部の格納先の経路を指定する経
    路指定コード部とからなる命令コードの前記本体コード
    部と次の命令コードの経路指定コード部とを一組の組合
    せコードとして保持する命令メモリと、 オペコードをデコードするオペコードデコーダと、 分岐検出信号と前記組合せコードの経路指定コード部を
    入力し、前記分岐発生検出信号がアクティブレベルでな
    いときには前記経路指定コード部をデコードして次の前
    記組合せコードの本体コード部の格納先を指定し、前記
    分岐検出信号がアクティブレベルのときには分岐先の組
    合せコードの本体コード部の格納先を前記オペコードデ
    コーダに限定する経路コードデコーダとを有することを
    特徴とするマイクロコンピュータ。
  2. 【請求項2】 オペコードまたはオペランドを含む本体
    コード部と該本体コード部の格納先の経路を指定する経
    路指定コード部とからなる命令コードの前記本体コード
    部と次の命令コードの経路指定コード部とを一組の組合
    せコードとして格納した命令メモリと、 前記命令メモリから前記組合せコードの経路指定コード
    部を読み込みデコードし結果に基づいて次の組合せコー
    ドの本体コード部の格納先を選択し前記命令メモリから
    前記格納先への経路を制御する経路コードデコーダと、 前記経路指定コード部で格納先に指定されているときに
    は前記経路コードデコーダの制御の下に前記命令メモリ
    から前記次の組合せコードの本体コード部を読み込みオ
    ペコードをデコードするオペコードデコーダと、 前記オペコードデコーダのデコード結果に基づき演算を
    実行するとともに条件分岐命令の分岐が成立したときに
    分岐検出信号をアクティブとする演算回路とを有し、 前記経路コードデコーダが前記分岐検出信号がアクティ
    ブとなったことを検出したときには分岐先の組合せコー
    ドの本体コード部の格納先を前記オペコードデコーダに
    限定することを特徴とするマイクロコンピュータ。
  3. 【請求項3】 前記経路コードデコーダが、 第1のマシンサイクルで命令メモリから組合せコードの
    経路指定コード部を読み込み第2のマシンサイクルで前
    記経路指定コード部をデコードし結果に基づき次の組合
    せコードの本体コード部の格納先を選択して前記命令メ
    モリから前記格納先までの経路を制御し、 前記オペコードデコーダが、 前記経路指定コード部に格納先として指定されていると
    きには前記第2のマシンサイクルで前記第1の命令デコ
    ーダの制御の基に前記次の組合せコードの本体コード部
    を読み込み第3のマシンサイクルでオペコードをデコー
    ドし結果に基づいて以降のマシンサイクルで演算の実行
    を制御する請求項1または2記載のマイクロコンピュー
    タ。
  4. 【請求項4】 オペコードまたはオペランドを含む本体
    コード部と該本体コード部の格納先の経路を指定する経
    路指定コード部とからなる命令コードの前記本体コード
    部と次の命令コードの経路指定コード部とを一組として
    一アドレスに保持する命令メモリと、分岐発生検出信号
    と組合せコードの経路指定コード部を入力し、前記分岐
    発生検出信号がアクティブレベルでないときには前記経
    路指定コード部をデコードして次アドレスの本体コード
    部の格納先を指定し、前記分岐検出信号がアクティブレ
    ベルのときには分岐先アドレスの本体コード部の格納先
    をオペコードデコーダに限定する経路コードデコーダと
    を有することを特徴とするマイクロコンピュータ。
  5. 【請求項5】 オペコードまたはオペランドを含む本体
    コード部と該本体コード部の格納先の経路を指定する経
    路指定コード部とからなる命令コードの前記本体コード
    部と次の命令コードの経路指定コード部とを一組とし一
    アドレスに組合せコードとして保持する命令メモリと、 前記命令メモリから前記組合せコードの経路指定コード
    部を読み込みデコードし結果に基づいて次アドレスの本
    体コード部の格納先を選択し前記命令メモリから前記格
    納先への経路を制御する経路コードデコーダと、 前記経路指定コード部で格納先に指定されているときに
    は前記経路コードデコーダの制御の下に前記命令メモリ
    から前記次アドレスの本体コード部を読み込みオペコー
    ドをデコードするオペコードデコーダと、 前記オペコードデコーダのデコード結果に基づき演算を
    実行するとともに条件分岐命令の分岐が成立したときに
    分岐検出信号をアクティブとする演算回路とを有し、 前記経路コードデコーダが前記分岐検出信号がアクティ
    ブとなったことを検出したときには分岐先アドレスの本
    体コード部の格納先を前記オペコードデコーダに限定す
    ることを特徴とするマイクロコンピュータ。
  6. 【請求項6】 オペコードまたはオペランドを含む本体
    コード部と該本体コード部の格納先の経路を指定する経
    路指定コード部とからなる命令コードの前記本体コード
    部と次の命令コードの経路指定コード部とを一組とし一
    アドレスに組合せコードとして保持する命令メモリと、
    前記命令メモリから前記組合せコードの経路指定コード
    部を読み込みデコードし結果に基づいてアドレスポイン
    と次アドレスの本体コード部の格納先を選択し前記命
    令メモリから前記格納先への経路を制御する経路コード
    デコーダと、前記経路指定コード部で格納先に指定され
    ているときには前記経路コードデコーダの制御の下に前
    記命令メモリから前記次アドレスの本体コード部を読み
    込みオペコードをデコードするオペコードデコーダと、
    前記経路指定コード部で格納先に指定されているときに
    は前記経路コードデコーダの制御の下に次アドレスの本
    体コード部をデータメモリのアドレス値として格納する
    少なくとも1個以上の前記アドレスポインタと、前記オ
    ペコードデコーダのデコード結果に基づき演算を実行す
    るとともに条件分岐命令の分岐が成立したときに分岐検
    出信号をアクティブとする演算回路とを有し、前記経路
    コードデコーダが前記分岐検出信号がアクティブとなっ
    たことを検出したときには分岐先アドレスの本体コード
    部の格納先を前記オペコードデコーダに限定することを
    特徴とするマイクロコンピュータ。
  7. 【請求項7】 前記経路コードデコーダが、 第1のマシンサイクルで命令メモリから組合せコードの
    経路指定コード部を読み込み第2のマシンサイクルで前
    記経路指定コード部をデコードし結果に基づき次アドレ
    スの本体コード部の格納先を選択して前記命令メモリか
    ら前記格納先までの経路を制御し、 前記オペコードデコーダが、 前記経路指定コード部に格納先として指定されていると
    きには前記第2のマシンサイクルで前記第1の命令デコ
    ーダの制御の基に前記次アドレスの本体コード部を読み
    込み第3のマシンサイクルでオペコードをデコードし結
    果に基づいて以降のマシンサイクルで演算の実行を制御
    する請求項4,5または6記載のマイクロコンピュー
    タ。
JP2000121494A 2000-04-21 2000-04-21 マイクロコンピュータ Expired - Fee Related JP3512707B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000121494A JP3512707B2 (ja) 2000-04-21 2000-04-21 マイクロコンピュータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000121494A JP3512707B2 (ja) 2000-04-21 2000-04-21 マイクロコンピュータ

Publications (2)

Publication Number Publication Date
JP2001306318A JP2001306318A (ja) 2001-11-02
JP3512707B2 true JP3512707B2 (ja) 2004-03-31

Family

ID=18632127

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000121494A Expired - Fee Related JP3512707B2 (ja) 2000-04-21 2000-04-21 マイクロコンピュータ

Country Status (1)

Country Link
JP (1) JP3512707B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3958239B2 (ja) * 2003-03-31 2007-08-15 松下電器産業株式会社 マイクロコントローラ

Also Published As

Publication number Publication date
JP2001306318A (ja) 2001-11-02

Similar Documents

Publication Publication Date Title
US5710902A (en) Instruction dependency chain indentifier
US6338136B1 (en) Pairing of load-ALU-store with conditional branch
JPH1124929A (ja) 演算処理装置およびその方法
KR100309566B1 (ko) 파이프라인프로세서에서다중명령어를무리짓고,그룹화된명령어를동시에발행하고,그룹화된명령어를실행시키는방법및장치
US20030061473A1 (en) Methods and apparatus to dynamically reconfigure the instruction pipeline of an indirect very long instruction word scalable processor
EP1886216B1 (en) Controlling out of order execution pipelines using skew parameters
US5604878A (en) Method and apparatus for avoiding writeback conflicts between execution units sharing a common writeback path
US7454598B2 (en) Controlling out of order execution pipelines issue tagging
US6981131B2 (en) Early condition code evaluation at pipeline stages generating pass signals for controlling coprocessor pipeline executing same conditional instruction
JP2002333978A (ja) Vliw型プロセッサ
US8560813B2 (en) Multithreaded processor with fast and slow paths pipeline issuing instructions of differing complexity of different instruction set and avoiding collision
JP2009099097A (ja) データ処理装置
KR100983135B1 (ko) 패킷의 의존성 명령을 그룹핑하여 실행하는 프로세서 및 방법
KR100483463B1 (ko) 사전-스케쥴링 명령어 캐시를 구성하기 위한 방법 및 장치
JPH02227730A (ja) データ処理システム
US20070220235A1 (en) Instruction subgraph identification for a configurable accelerator
US20020087852A1 (en) Method and apparatus for predicting branches using a meta predictor
JP3512707B2 (ja) マイクロコンピュータ
JP2008299729A (ja) プロセッサ
JP5104862B2 (ja) 命令実行制御装置及び命令実行制御方法
JP2006053830A (ja) 分岐予測装置および分岐予測方法
JPH1091441A (ja) プログラム実行方法およびその方法を利用した装置
JP5696210B2 (ja) プロセッサ及びその命令処理方法
US20100153691A1 (en) Lower power assembler
CN116113940A (zh) 一种图计算装置、处理方法及相关设备

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040107

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090116

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100116

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110116

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110116

Year of fee payment: 7

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20110116

Year of fee payment: 7

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

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120116

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130116

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20130116

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20140116

Year of fee payment: 10

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees