(57)【要約】【課題】従来のような無駄な実行サイクルの発生による処理性能の低下を防ぐことができる半導体装置を提供する。【解決手段】ＩＦＢ２でのフェッチ処理の際に、ＥＸＢ４からの分岐成立信号（ＢＲＴＫＮ）９の状態に基づいて、条件分岐が成立した場合には分岐先アドレスを選択し、条件分岐が不成立の場合には次の命令のアドレスを選択して、命令メモリ１に供給することにより、ＩＦＢ２において、それらのアドレスに対応するフェッチ処理の実行を制御する。【選択図】　　図１
2004030085.tif 000002
【特許請求の範囲】
【請求項１】
アドレスに対応させて命令コードからなる命令プログラムがデータとして格納された命令メモリと、前記命令プログラムデータをフェッチする命令フェッチブロックと、前記命令コードをデコードするデコードブロックと、デコードされた命令に対応する制御信号に基づいて当該命令を実行する実行ブロックとからなり、前記命令フェッチブロックから前記命令メモリに前記アドレスが供給され、そのアドレスの前記命令プログラムデータが、前記命令メモリから前記命令フェッチブロックに入力され、前記命令フェッチブロックから前記デコードブロックに前記命令プログラムデータに対応する命令コードが入力され、前記デコードブロックから前記命令コードをデコードした命令に対応する制御信号が前記実行ブロックに入力され、前記実行ブロックから前記制御信号により命令を実行した結果に応じて条件分岐の状態を表す条件分岐成立信号が出力され、その条件分岐成立信号に基いて、前記命令メモリ上の命令プログラムに従って条件分岐の処理実行を制御する半導体装置であって、前記命令フェッチブロックがフェッチ処理を実行する場合に、前記条件分岐成立信号の状態に基いて、条件分岐が成立した場合の分岐先のアドレスと、条件分岐が不成立した場合のアドレスの一方を選択し、前記命令メモリに供給する制御手段を備えたことを特徴とする半導体装置。
【請求項２】
請求項１記載の半導体装置であって、前記命令プログラムデータに含まれるディスプレースメント情報から前記分岐先アドレスを生成する手段を備えた半導体装置。
【請求項３】
請求項２記載の半導体装置であって、前記命令フェッチブロックからの命令コードを基に条件分岐命令を判定する手段を備え、その判定結果から条件分岐命令の実行を検出し、前記条件分岐命令実行時にのみ前記条件分岐成立信号に基づくアドレス選択を行うよう構成した半導体装置。
【請求項４】
請求項２記載の半導体装置であって、前記命令メモリがそのアドレスを２次元指定するために２次元配列されたメモリセルからなり、前記２次元の各配列に対応させて設けた２つのアドレスデコーダのうち、後で決定される一方のデコーダの出力側に、前記条件分岐成立信号をアドレス選択信号として供給するよう構成した半導体装置。
【請求項５】
請求項２記載の半導体装置であって、前記命令メモリがそのアドレスを２次元指定するために２次元配列されたメモリセルからなり、前記２次元の各配列に対応させて設けた２つのアドレスデコーダのうち、後で決定される一方のデコーダの入力側に、前記条件分岐成立信号をアドレス選択信号として供給するよう構成した半導体装置。
【請求項６】
請求項３記載の半導体装置であって、前記命令メモリがそのアドレスを２次元指定するために２次元配列されたメモリセルからなり、前記２次元の各配列に対応させて設けた２つのアドレスデコーダのうち、後で決定される一方のデコーダの出力側に、前記条件分岐成立信号をアドレス選択信号として供給するよう構成した半導体装置。
【請求項７】
請求項３記載の半導体装置であって、前記命令メモリがそのアドレスを２次元指定するために２次元配列されたメモリセルからなり、前記２次元の各配列に対応させて設けた２つのアドレスデコーダのうち、後で決定される一方のデコーダの入力側に、前記条件分岐成立信号をアドレス選択信号として供給するよう構成した半導体装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、各種演算処理用としてメモリ上の命令に従って条件分岐の処理実行を制御する半導体装置に関するものである。
【０００２】
【従来の技術】
従来から、各種演算処理用として広く用いられ、メモリ内に格納された命令プログラムに従って各種処理を実行する半導体装置では、条件分岐制御として、分岐成立かもしくは不成立かにより当該アドレスに分岐する条件分岐を実行する際に、予め予測した条件分岐に対して命令フェッチを実行しておいて、分岐条件が確定した後で、予め予測して実行していた命令フェッチが正しければ、そのまま処理を続行し、間違っていれば、一旦、処理をアボートして、命令を再実行するように、条件分岐の処理実行を制御している。
【０００３】
このような従来の半導体装置について、図面を用いて以下に説明する。
図１３は従来の半導体装置の構成を示すブロック図である。従来の半導体装置は、図１３に示すように、命令コードからなる命令プログラムがデータとして格納された命令メモリ１と、命令メモリ１からの命令プログラムデータ６をフェッチする命令フェッチブロック（以下、ＩＦＢとする）２と、命令プログラムを構成する命令コード７をデコードするデコードブロック（以下、ＤＥＣＢとする）３と、デコードされた命令に対応する制御信号８に基づいて命令を実行する実行ブロック（以下、ＥＸＢとする）４とによって構成されている。
【０００４】
上記の構成において、ＩＦＢ２から命令メモリ１へアドレス５が入力され、命令メモリ１からＩＦＢ２へデータ６が出力され、ＩＦＢ２からＤＥＣＢ３へ命令コード７が出力され、ＤＥＣＢ３からＥＸＢ４へは制御信号８が出力され、ＥＸＢ４からは条件分岐成立信号（以下、ＢＲＴＫＮとする）９がＩＦＢ２とＤＥＣＢ３へ入力されている。各ブロックへはシステムクロック信号ＣＬＫが入力され、同一ＣＬＫによるタイミングに基づいてパイプライン動作が行われている。
【０００５】
以上のように構成された従来の半導体装置において、条件分岐命令を実行する場合について、その動作を以下に説明する。
図１４は従来の半導体装置の条件分岐命令実行の際のタイミングチャートである。図１４において、ａの期間では、ＩＦＢ２においてレジスタ間の差演算ＳＵＢ　Ｄ２、Ｄ１のフェッチが行われる。
【０００６】
ｂの期間では、ＩＦＢ２においては条件分岐命令ＢＥＱ　ｄｉｓｐ８のフェッチが行われ、ＤＥＣＢ３ではＳＵＢ　Ｄ２、Ｄ１のデコードが行われる。条件分岐命令ＢＥＱ　ｄｉｓｐ８は直前のフラグ変化命令によってゼロフラグが１になった場合に分岐する命令である。すなわち演算結果がゼロになると分岐し、それ以外では分岐せず、次の命令を実行していく。
【０００７】
ｃの期間では、ＩＦＢ２においては通常の次の命令であるＡＮＤ　Ｄ０、Ｄ１のフェッチが行われ、ＤＥＣＢ３においてはＢＥＱ　ｄｉｓｐ８のデコードが行われ、ＥＸＢ４においてはＳＵＢ　Ｄ２、Ｄ１の実行が行われる。演算結果がゼロ（ゼロフラグが１）になる場合には、ｃの期間の最中に条件分岐成立信号ＢＲＴＫＮ９が生成される（Ｈレベル）。
【０００８】
ｄの期間では、ＢＲＴＫＮ９を反映して、ＩＦＢ２においては分岐先命令のＭＯＶ　Ｄ２、Ａ０のフェッチが行われ、ＤＥＣＢ３においては分岐不成立を予測してフェッチしていたＡＮＤ　Ｄ０、Ｄ１のデコードを実行するが、ＥＸＢ４においてＢＥＱ　ｄｉｓｐ８の実行が行われる。すなわち、ＢＲＴＫＮ９を反映してＤＥＣＢ３におけるＭＯＶ　Ｄ２、Ａ０のデコードを無効にする。
【０００９】
ｅの期間では、ＤＥＣＢ３において分岐先命令のＭＯＶ　Ｄ２、Ａ０のデコードが実行され、ＥＸＢ４においては、ＢＲＴＫＮ９によってＡＮＤ　Ｄ０、Ｄ１のデコードが実行されずに無効化されたため、何の処理も実行されない。
【００１０】
ｆの期間では、分岐先命令のＭＯＶ　Ｄ２、Ａ０が実行される。
【００１１】
【発明が解決しようとする課題】
しかしながら上記のような従来の半導体装置においては、予め予測して実行した命令フェッチが間違っていた場合、つまり条件分岐が成立の場合には、予測してフェッチした命令の実行処理を無効化するため、命令フェッチの予測実行により無駄になる実行サイクルが発生し、処理性能の低下を招いてしまうという問題点を有していた。
【００１２】
本発明は、上記従来の問題点を解決するもので、従来のような無駄な実行サイクルの発生による処理性能の低下を防ぐことができる半導体装置を提供する。
【００１３】
【課題を解決するための手段】
上記の課題を解決するために本発明の請求項１に記載の半導体装置は、アドレスに対応させて命令コードからなる命令プログラムがデータとして格納された命令メモリと、前記命令プログラムデータをフェッチする命令フェッチブロックと、前記命令コードをデコードするデコードブロックと、デコードされた命令に対応する制御信号に基づいて当該命令を実行する実行ブロックとからなり、前記命令フェッチブロックから前記命令メモリに前記アドレスが供給され、そのアドレスの前記命令プログラムデータが、前記命令メモリから前記命令フェッチブロックに入力され、前記命令フェッチブロックから前記デコードブロックに前記命令プログラムデータに対応する命令コードが入力され、前記デコードブロックから前記命令コードをデコードした命令に対応する制御信号が前記実行ブロックに入力され、前記実行ブロックから前記制御信号により命令を実行した結果に応じて条件分岐の状態を表す条件分岐成立信号が出力され、その条件分岐成立信号に基いて、前記命令メモリ上の命令プログラムに従って条件分岐の処理実行を制御する半導体装置であって、前記命令フェッチブロックがフェッチ処理を実行する場合に、前記条件分岐成立信号の状態に基いて、条件分岐が成立した場合の分岐先のアドレスと、条件分岐が不成立した場合のアドレスの一方を選択し、前記命令メモリに供給する制御手段を備えた構成としたことを特徴とする。
【００１４】
以上により、フェッチ処理の際に、分岐成立信号の状態に基づいて、条件分岐が成立した場合には分岐先アドレスを選択し、条件分岐が不成立の場合には次の命令のアドレスを選択することを可能とし、それらのアドレスに対応するフェッチ処理を実行することにより、従来のような予測実行した処理の無効化をなくして、無駄な実行サイクルの発生をなくすことができる。
【００１５】
また、本発明の請求項２に記載の半導体装置は、請求項１記載の半導体装置であって、前記命令プログラムデータに含まれるディスプレースメント情報から前記分岐先アドレスを生成する手段を備えた構成としたことを特徴とする。
【００１６】
以上により、フェッチ処理の際に、分岐成立信号の状態に基づいて、条件分岐が成立した場合には分岐先アドレスを選択し、条件分岐が不成立の場合には次の命令のアドレスを選択することを可能とし、それらのアドレスに対応するフェッチ処理を実行することにより、従来のような予測実行した処理の無効化をなくして、無駄な実行サイクルの発生をなくすことができる。
【００１７】
また、本発明の請求項３に記載の半導体装置は、請求項２記載の半導体装置であって、前記命令フェッチブロックからの命令コードを基に条件分岐命令を判定する手段を備え、その判定結果から条件分岐命令の実行を検出し、前記条件分岐命令実行時にのみ前記条件分岐成立信号に基づくアドレス選択を行うよう構成したことを特徴とする。
【００１８】
以上により、条件分岐命令実行時にのみ、その命令に対するフェッチ処理の際に、分岐成立信号の状態に基づいて、条件分岐が成立した場合には分岐先アドレスを選択し、条件分岐が不成立の場合には次の命令のアドレスを選択することを可能とし、それらのアドレスに対応するフェッチ処理を実行することにより、従来のような予測実行した処理の無効化をなくして、無駄な実行サイクルの発生をなくすことができる。
【００１９】
また、本発明の請求項４に記載の半導体装置は、請求項２記載の半導体装置であって、前記命令メモリがそのアドレスを２次元指定するために２次元配列されたメモリセルからなり、前記２次元の各配列に対応させて設けた２つのアドレスデコーダのうち、後で決定される一方のデコーダの出力側に、前記条件分岐成立信号をアドレス選択信号として供給するよう構成したことを特徴とする。
【００２０】
以上により、フェッチ処理の際に、分岐成立信号の状態に基づいて、条件分岐が成立した場合には分岐先アドレスを選択し、条件分岐が不成立の場合には次の命令のアドレスを選択することを可能とし、それらのアドレスに対応するフェッチ処理を実行することにより、従来のような予測実行した処理の無効化をなくして、無駄な実行サイクルの発生をなくすことができる。
【００２１】
また、本発明の請求項５に記載の半導体装置は、請求項２記載の半導体装置であって、前記命令メモリがそのアドレスを２次元指定するために２次元配列されたメモリセルからなり、前記２次元の各配列に対応させて設けた２つのアドレスデコーダのうち、後で決定される一方のデコーダの入力側に、前記条件分岐成立信号をアドレス選択信号として供給するよう構成したことを特徴とする。
【００２２】
以上により、フェッチ処理の際に、分岐成立信号の状態に基づいて、条件分岐が成立した場合には分岐先アドレスを選択し、条件分岐が不成立の場合には次の命令のアドレスを選択することを可能とし、それらのアドレスに対応するフェッチ処理を実行することにより、従来のような予測実行した処理の無効化をなくして、無駄な実行サイクルの発生をなくすことができる。
【００２３】
また、本発明の請求項６に記載の半導体装置は、請求項３記載の半導体装置であって、前記命令メモリがそのアドレスを２次元指定するために２次元配列されたメモリセルからなり、前記２次元の各配列に対応させて設けた２つのアドレスデコーダのうち、後で決定される一方のデコーダの出力側に、前記条件分岐成立信号をアドレス選択信号として供給するよう構成したことを特徴とする。
【００２４】
以上により、条件分岐命令実行時にのみ、その命令に対するフェッチ処理の際に、分岐成立信号の状態に基づいて、条件分岐が成立した場合には分岐先アドレスを選択し、条件分岐が不成立の場合には次の命令のアドレスを選択することを可能とし、それらのアドレスに対応するフェッチ処理を実行することにより、従来のような予測実行した処理の無効化をなくして、無駄な実行サイクルの発生をなくすことができる。
【００２５】
また、本発明の請求項７に記載の半導体装置は、請求項３記載の半導体装置であって、前記命令メモリがそのアドレスを２次元指定するために２次元配列されたメモリセルからなり、前記２次元の各配列に対応させて設けた２つのアドレスデコーダのうち、後で決定される一方のデコーダの入力側に、前記条件分岐成立信号をアドレス選択信号として供給するよう構成したことを特徴とする。
【００２６】
以上により、条件分岐命令実行時にのみ、その命令に対するフェッチ処理の際に、分岐成立信号の状態に基づいて、条件分岐が成立した場合には分岐先アドレスを選択し、条件分岐が不成立の場合には次の命令のアドレスを選択することを可能とし、それらのアドレスに対応するフェッチ処理を実行することにより、従来のような予測実行した処理の無効化をなくして、無駄な実行サイクルの発生をなくすことができる。
【００２７】
【発明の実施の形態】
以下、本発明の実施の形態を示す半導体装置について、図面を参照しながら具体的に説明する。
（実施の形態１）
本発明の実施の形態１の半導体装置を説明する。
【００２８】
図１は本実施の形態１の半導体装置の構成を示すブロック図である。図１において、命令メモリ１とＩＦＢ２とＤＥＣＢ３とＥＸＢ４とアドレス５とデータ６と命令コード７と制御信号８とは、従来技術で説明した各要素と同じである。
【００２９】
ＩＦＢ２内部には、アドレス生成器１０とアドレスラッチ１３とディスプレースメント情報を保持するｄｉｓｐラッチ１４とＡＵ１８とセレクタ２０とを備え、アドレス生成器１０からの出力１２がアドレスラッチ１３とセレクタ２０に入力され、データ６から抜き出したディスプレースメント情報１５がｄｉｓｐラッチ１４へ入力され、アドレスラッチ１３の出力１６とｄｉｓｐラッチ１４の出力１７がＡＵ１８に入力され、ＡＵ１８の出力１９がセレクタ２０に入力され、セレクタ２０へは選択信号としてＢＲＴＫＮ９が入力され、セレクタ２０の出力２１がアドレス５として命令メモリ１へ入力されている。
【００３０】
以上のように構成された本実施の形態１の半導体装置について、その動作を以下に詳しく説明する。
図２は本実施の形態１の半導体装置の動作を示すタイミングチャートである。図２において、ａの期間では、アドレス（ＡＤＲ）００００を発行し、レジスタ間演算ＳＵＢ　Ｄ２、Ｄ１のフェッチがＩＦＢ２で行われる。
【００３１】
ｂの期間では、アドレス０００２を発行し、ＩＦＢ２においては条件分岐命令ＢＥＱ　ｄｉｓｐ８のフェッチが行われ、ＤＥＣＢ３ではＳＵＢ　Ｄ２、Ｄ１のデコードが行われる。さらにｂの期間の最後にはｄｉｓｐラッチ１４にはＢＥＱｄｉｓｐ８の命令に含まれるディスプレースメント情報の２０が格納され、アドレスラッチ１３にはアドレス０００２が格納される。条件分岐命令ＢＥＱ　ｄｉｓｐ８は、直前の演算結果がゼロになると分岐し、それ以外では分岐せず、次の命令を実行していく。
【００３２】
ｃの期間ではまず、アドレス０００４が発行され、ＩＦＢ２においては、通常の次の命令であるＡＮＤ　Ｄ０、Ｄ１のフェッチが行われ、アドレスラッチ１３の値０００２とｄｉｓｐラッチ１４の値００２０がＡＵ１８に入力され、分岐アドレス１９として００２２が出力される。ＤＥＣＢ３においてはＢＥＱ　ｄｉｓｐ８のデコードが行われ、ＥＸＢ４においてはＳＵＢ　Ｄ２、Ｄ１の実行が行われる。
【００３３】
本実施の形態においては、ＳＵＢ　Ｄ２、Ｄ１の演算結果がゼロになるため、ｃの期間の最中に条件分岐成立信号ＢＲＴＫＮ９が生成される。ＢＲＴＫＮ９がセレクタ２０に入力されると、分岐アドレス１９が選択され、セレクタ出力２１が００２２に変化し、アドレス５は００２２に変化する。アドレス００２２の発行に従って、ＩＦＢ２においてはアドレス００２２に格納されている命令ＭＯＶＤ２、Ａ０のフェッチが行われる。
【００３４】
ｄの期間では、ＤＥＣＢ３において分岐先命令のＭＯＶ　Ｄ２、Ａ０のデコードが行われ、ＥＸＢ４においてはＢＥＱ　ｄｉｓｐ８の実行が行われる。ただし、条件分岐の動作はすでに完了しているため、実際には何も実行されない。
【００３５】
ｅの期間では、ＥＸＢ４において、分岐先命令のＭＯＶ　Ｄ２、Ａ０が実行される。
以上のように、フェッチ処理の際に、分岐成立信号の状態に基づいて、条件分岐が成立した場合には分岐先アドレスを選択し、条件分岐が不成立の場合には次の命令のアドレスを選択することを可能とし、それらのアドレスに対応するフェッチ処理を実行することにより、従来のような予測実行した処理の無効化をなくして、無駄な実行サイクルの発生をなくすことができる。
【００３６】
その結果、従来のような無効化サイクルの発生による処理性能の低下を防ぐことができる。
（実施の形態２）
本発明の実施の形態２の半導体装置を説明する。
【００３７】
図３は本実施の形態２の半導体装置の構成を示すブロック図である。図３において、命令メモリ１とＩＦＢ２とＤＥＣＢ３とＥＸＢ４とアドレス５とデータ６と命令コード７と制御信号８とＢＲＴＫＮ９とアドレス生成器１０とアドレス１２とアドレスラッチ１３とｄｉｓｐラッチ１４とアドレスラッチ出力１６とｄｉｓｐラッチ出力１７とＡＵ１８と分岐アドレス１９とセレクタ２０とセレクタ出力２１とは、実施の形態１で説明した各要素と同じである。
【００３８】
ＤＥＣＢ３内部には条件分岐命令判定器２２を備え、条件分岐命令がＤＥＣＢ３に入力された場合は、条件分岐命令判定器２２から条件分岐命令実行を示す信号ＢＲＥＮ２３が出力される。ＢＲＥＮ２３はアドレスラッチ１３、ｄｉｓｐラッチ１４、ＡＵ１８、セレクタ２０に入力され、ＢＲＥＮ２３がＨＩ（ハイレベル）の場合だけ、アドレスラッチ１３、ｄｉｓｐラッチ１４、ＡＵ１８、セレクタ２０が動作する。
【００３９】
以上のように構成された本実施の形態２の半導体装置について、その動作を以下に詳しく説明する。
図４は本実施の形態２の半導体装置の動作を示すタイミングチャートである。図４において、ｃの期間では、ＢＲＥＮ２３がＨＩとなり、この期間だけ、アドレスラッチ１３、ｄｉｓｐラッチ１４、ＡＵ１８、セレクタ２０が動作する。一方、ＢＲＥＮ２３がＬＯＷの期間では、アドレスラッチ１３、ｄｉｓｐラッチ１４、ＡＵ１８、セレクタ２０が停止する。その他の動作は、実施の形態１で説明した各要素の動作と同じである。
【００４０】
以上のように、条件分岐命令実行時にのみ、その命令に対するフェッチ処理の際に、分岐成立信号の状態に基づいて、条件分岐が成立した場合には分岐先アドレスを選択し、条件分岐が不成立の場合には次の命令のアドレスを選択することを可能とし、それらのアドレスに対応するフェッチ処理を実行することにより、従来のような予測実行した処理の無効化をなくして、無駄な実行サイクルの発生をなくすことができる。
【００４１】
その結果、従来のような無効化サイクルの発生をなくして処理性能の低下を防ぐことができるとともに、条件分岐命令に対するフェッチ処理の実行時以外ではアドレス選択をなくして無駄な電力消費をなくし、装置全体の消費電力を低減化することができる。
（実施の形態３）
本発明の実施の形態３の半導体装置を説明する。
【００４２】
図５は本実施の形態３の半導体装置の構成を示すブロック図である。図５において、命令メモリ１とＩＦＢ２とＤＥＣＢ３とＥＸＢ４とアドレス５とデータ６と命令コード７と制御信号８とＢＲＴＫＮ９とアドレスラッチ１３とｄｉｓｐラッチ１４とアドレスラッチ出力１６とｄｉｓｐラッチ出力１７とＡＵ１８と分岐アドレス１９は、実施の形態２で説明した各要素と同じである。
【００４３】
本実施の形態においては、アドレスラッチ１３とｄｉｓｐラッチ１４とＡＵ１８は命令メモリ１内部に配置されている。さらに命令メモリ１の内部にはＸデコーダ２４とＹデコーダ３０とメモリアレイ２５が配置され、さらにＹデコーダ３０の内部には、ノーマルアドレスのＹデコーダ２８と分岐アドレスのＹデコーダ２９と、入力データとしてノーマルＹデコーダ出力３１と分岐Ｙデコーダ出力３３が入力され、選択信号としてＢＲＴＫＮ９が入力されたセレクタ２６と、入力データとしてノーマルＹデコーダ出力３２と分岐Ｙデコーダ出力３４が入力され、選択信号としてＢＲＴＫＮ９が入力されたセレクタ２７と、分岐アドレス１９とアドレス５が入力されたアドレス判定器３５が配置され、セレクタ２６の出力３７とセレクタ２７の出力３８がメモリアレイ２５に入力され、アドレス判定器３５の出力ＹＡＤＲＯＶ３６がＤＥＣＢ３に入力されている。
【００４４】
以上のように構成された本実施の形態３の半導体装置について、その動作を以下に詳しく説明する。
図６は本実施の形態３の半導体装置の動作を示すタイミングチャートである。図６において、ＸＤＥＣはＸデコーダ２４に入力されるアドレス５の上位二桁を示し、ＹＤＥＣＮはＹデコーダ３０に入力されるアドレス５の下位二桁を示し、ＸＤＥＣＰはＸデコーダ２４のプリチャージ信号を示し、ＹＤＥＣＰはＹデコーダ３０のプリチャージ信号を示している。３７はセレクタ２６の出力を示し、３８はセレクタ２７の出力を示している。
【００４５】
図中ａ、ｂの区間は実施の形態２と同様の動作を行う。図中ｃの区間においては、まず、ＸＤＥＣＰ、ＹＤＥＣＰがＨＩレベルになり、Ｘデコーダ２４からの出力全てと、Ｙデコーダ３０からの出力全てが非選択状態（ＬＯＷレベル）になる。その後、ＸＤＥＣＰがＬＯＷレベルに変化し、Ｘデコーダ２４の選択ラインがＨＩレベルに変化し、メモリアレイ２５に入力される。さらにその後、ＹＤＥＣＰがＬＯＷレベルに変化し、Ｙデコーダ３０の選択ラインがＨＩレベルに変化し、メモリアレイ２５に入力される。
【００４６】
図中ｃの区間において、Ｘデコーダ２４には００が、ノーマルのＹデコーダ２８には０４が、分岐Ｙデコーダ２９には２２が入力される。ノーマルＹデコーダ２８の出力３１はノーマルＹデコーダ入力が００の場合にＨＩレベルに変化し、出力３２は入力が２２の場合に変化する。分岐Ｙデコーダ２９の出力３３はノーマルＹデコーダ入力が００の場合にＨＩレベルに変化し、出力３４は入力が２２の場合に変化する。セレクタ２６の出力３７はアドレスの下位二桁が００の場合の選択信号で、下位二桁が００の場合にＨＩレベルに変化する。セレクタ２７の出力３８は、アドレスの下位二桁が２２の場合の選択信号で、下位二桁が２２の場合にＨＩレベルに変化する。
【００４７】
本実施の形態のｃの期間においては、ノーマルＹデコーダ入力が００で、分岐Ｙデコーダ入力が２２であるので、３１と３４がＨＩレベルに変化し、３２と３３はＬＯＷ（ローレベル）に固定となる。セレクタ２６、２７はＢＲＴＫＮ９がＬＯＷの場合はノーマルＹデコーダ出力を選択し、ＢＲＴＫＮ９がＨＩの場合は分岐Ｙデコーダ出力を選択信号する。本実施の形態ではＢＲＴＫＮがＨＩに変化するので、セレクタ２７の出力がＨＩに変化し、セレクタ２６の出力はＬＯＷ固定となる。すなわち、Ｙデコーダ３０には２２が入力されたことになり、メモリ２５へのアドレスとしては分岐先のアドレス００２２が入力されたこととなる。分岐しない場合のアドレス０００４にはＡＮＤ　Ｄ０、Ｄ１が格納されていて、分岐アドレス００２２にはＭＯＶ　Ｄ２、Ａ０が格納されているので、ＩＦＢ２においてはＭＯＶ　Ｄ２、Ａ０の命令をフェッチすることとなる。
【００４８】
以降の動作は実施の形態２と同様となる。なお、分岐アドレス１９とアドレス５はアドレス判定器３５に入力されており、分岐アドレス１９の値がＸデコーダ入力を変化させる場合、すなわち本実施の形態においては、上位二桁が変化してしまう場合は、ＤＥＣＢ３へ入力されているＹＡＤＲＯＶがＨＩレベルとなり、従来と同様の条件分岐動作が行われることとなる。
【００４９】
なお、コンパイラとリンカによって、分岐アドレス１９とアドレス５の値の相違が下位二桁に収まるように、条件分岐命令を含む関数の先頭アドレスを、アドレスマッピングすることで、Ｘデコーダ入力の変化をなくすことが可能である。
【００５０】
以上のように、フェッチ処理の際に、分岐成立信号の状態に基づいて、条件分岐が成立した場合には分岐先アドレスを選択し、条件分岐が不成立の場合には次の命令のアドレスを選択することを可能とし、それらのアドレスに対応するフェッチ処理を実行することにより、従来のような予測実行した処理の無効化をなくして、無駄な実行サイクルの発生をなくすことができる。
【００５１】
その結果、従来のような無効化サイクルの発生による処理性能の低下を防ぐことができる。
（実施の形態４）
本発明の実施の形態４の半導体装置を説明する。
【００５２】
図７は本実施の形態４の半導体装置の構成を示すブロック図である。図７において、命令メモリ１とＩＦＢ２とＤＥＣＢ３とＥＸＢ４とアドレス５とデータ６と命令コード７と制御信号８とＢＲＴＫＮ９とアドレスラッチ１３とｄｉｓｐラッチ１４とアドレスラッチ出力１６とｄｉｓｐラッチ出力１７とＡＵ１８とＸデコーダ２４とＹデコーダ３０とメモリアレイ２５とノーマルＹデコーダ２８と分岐Ｙデコーダ２９とノーマルＹデコーダ出力３１、３２と分岐アドレス１９とＹデコーダ出力３３、３４とセレクタ２６、２７とセレクタ出力３７、３８とアドレス判定器３５は、実施の形態３で説明した各要素と同じである。
【００５３】
ＤＥＣＢ３内部には条件分岐命令判定器２２を備え、条件分岐命令がＤＥＣＢ３に入力された場合は、条件分岐命令判定器２２から条件分岐命令実行を示す信号ＢＲＥＮ２３が出力される。ＢＲＥＮ２３はアドレスラッチ１３、ｄｉｓｐラッチ１４、ＡＵ１８、アドレス判定器３５、分岐Ｙデコーダ２９に入力され、ＢＲＥＮ２３がＨＩの場合だけ、アドレスラッチ１３、ｄｉｓｐラッチ１４、ＡＵ１８、アドレス判定器３５、分岐Ｙデコーダ２９が動作する。
【００５４】
以上のように構成された本実施の形態４の半導体装置について、その動作を以下に詳しく説明する。
図８は本実施の形態４の半導体装置の動作を示すタイミングチャートである。図８において、ｃの期間ではＢＲＥＮがＨＩとなり、この期間だけ、アドレスラッチ１３、ｄｉｓｐラッチ１４、ＡＵ１８、アドレス判定器３５、分岐Ｙデコーダ２９が動作する。ＢＲＥＮがＬＯＷの期間では、アドレスラッチ１３、ｄｉｓｐラッチ１４、ＡＵ１８、アドレス判定器３５、分岐Ｙデコーダ２９は停止する。その他の動作は実施の形態３で説明した各要素の動作と同じである。
【００５５】
以上のように、条件分岐命令実行時にのみ、その命令に対するフェッチ処理の際に、分岐成立信号の状態に基づいて、条件分岐が成立した場合には分岐先アドレスを選択し、条件分岐が不成立の場合には次の命令のアドレスを選択することを可能とし、それらのアドレスに対応するフェッチ処理を実行することにより、従来のような予測実行した処理の無効化をなくして、無駄な実行サイクルの発生をなくすことができる。
【００５６】
その結果、従来のような無効化サイクルの発生をなくして処理性能の低下を防ぐことができるとともに、条件分岐命令に対するフェッチ処理の実行時以外ではアドレス選択をなくして無駄な電力消費をなくし、装置全体の消費電力を低減化することができる。
（実施の形態５）
本発明の実施の形態５の半導体装置を説明する。
【００５７】
図９は本実施の形態５の半導体装置の構成を示すブロック図である。図９において、命令メモリ１とＩＦＢ２とＤＥＣＢ３とＥＸＢ４とアドレス５とデータ６と命令コード７と制御信号８とＢＲＴＫＮ９とアドレスラッチ１３とｄｉｓｐラッチ１４とアドレスラッチ出力１６とｄｉｓｐラッチ出力１７とＡＵ１８とＸデコーダ２４とメモリアレイ２５とアドレス判定器３５は、実施の形態３で説明した各要素と同じである。
【００５８】
命令メモリ１内部で、アドレス５と分岐アドレス１９がデータ入力され、選択信号としてＢＲＴＫＮ９が入力されたセレクタ４０の出力３９が、Ｙデコーダ４１に入力されていて、Ｙデコーダ出力３８がメモリアレイ２５に入力されている。
【００５９】
以上のように構成された本実施の形態５の半導体装置について、その動作を以下に詳しく説明する。
図１０は本実施の形態５の半導体装置の動作を示すタイミングチャートである。図１０において、ＡＤＲ、ＸＤＥＣ、ＹＤＥＣＮ、ＹＤＥＣＢは実施の形態４と同様の信号を意味している。セレクタ４０の出力３９は、選択信号ＢＲＴＫＮ９がＨＩの場合はノーマルアドレス５の下位２桁であるＹＤＥＣＮとなり、ＢＲＴＫＮ９がＬＯＷの場合は分岐アドレス１９の下位２桁であるＹＤＥＣＢとなる。
【００６０】
Ｙデコーダ４１からは、Ｙデコーダ入力３９が０４の場合にＨＩとなるＹデコーダ出力３７と、Ｙデコーダ入力３９が２２の場合にＨＩとなるＹデコーダ出力３８とが、それぞれメモリアレイ２５に入力されている。
【００６１】
ｃの期間の初めは、ＢＲＴＫＮ信号がＬＯＷのためにセレクタ４０の出力３９は０４となっている。しかし、その期間はＹＤＥＣＰがＨＩのためにＹデコーダ４１の出力は全てＬＯＷレベルに固定されている。
【００６２】
ｃの期間の途中でＢＲＴＫＮ９がＨＩに変化するとセレクタ４０の出力３９は２２に変化し、ＹＤＥＣＰがＬＯＷに変化すると、Ｙデコーダ４１の入力３９が２２の場合にＨＩとなるＹデコーダ出力３８がＨＩになる。すなわち、Ｙデコーダ４１には２２が入力されたことになり、メモリ２５へのアドレスとしては分岐先のアドレス００２２が入力されたこととなる。
【００６３】
分岐しない場合のアドレス０００４にはＡＮＤ　Ｄ０、Ｄ１が格納されていて、分岐アドレス００２２にはＭＯＶ　Ｄ２、Ａ０が格納されているので、ＩＦＢ２においてはＭＯＶ　Ｄ２、Ａ０の命令をフェッチすることとなる。
【００６４】
以降の動作は実施の形態３と同様となる。
以上のように、フェッチ処理の際に、分岐成立信号の状態に基づいて、条件分岐が成立した場合には分岐先アドレスを選択し、条件分岐が不成立の場合には次の命令のアドレスを選択することを可能とし、それらのアドレスに対応するフェッチ処理を実行することにより、従来のような予測実行した処理の無効化をなくして、無駄な実行サイクルの発生をなくすことができる。
【００６５】
その結果、従来のような無効化サイクルの発生による処理性能の低下を防ぐことができる。
（実施の形態６）
本発明の実施の形態６の半導体装置を説明する。
【００６６】
図１１は本実施の形態６の半導体装置の構成を示すブロック図である。図１１において、命令メモリ１とＩＦＢ２とＤＥＣＢ３とＥＸＢ４とアドレス５とデータ６と命令コード７と制御信号８とＢＲＴＫＮ９とアドレスラッチ１３とｄｉｓｐラッチ１４とアドレスラッチ出力１６とｄｉｓｐラッチ出力１７とＡＵ１８とＸデコーダ２４とメモリアレイ２５とアドレス判定器３５とセレクタ４０とセレクタ出力３９とＹデコーダ４１は、実施の形態５で説明した各要素と同じである。
【００６７】
ＤＥＣＢ３内部には条件分岐命令判定器２２を備え、条件分岐命令がＤＥＣＢ３に入力された場合は条件分岐命令判定器２２から条件分岐命令実行を示す信号ＢＲＥＮ２３が出力される。ＢＲＥＮ２３はアドレスラッチ１３、ｄｉｓｐラッチ１４、ＡＵ１８、アドレス判定器３５に入力され、ＢＲＥＮ２３がＨＩの場合だけ、アドレスラッチ１３、ｄｉｓｐラッチ１４、ＡＵ１８、アドレス判定器３５が動作する。
【００６８】
以上のように構成された本実施の形態６の半導体装置について、その動作を以下に詳しく説明する。
図１２は本実施の形態６の半導体装置の動作を示すタイミングチャートである。図１２において、ｃの期間ではＢＲＥＮがＨＩとなり、この期間だけ、アドレスラッチ１３、ｄｉｓｐラッチ１４、ＡＵ１８、アドレス判定器３５が動作する。ＢＲＥＮがＬＯＷの期間では、アドレスラッチ１３、ｄｉｓｐラッチ１４、ＡＵ１８、アドレス判定器３５は停止する。その他の動作は実施の形態５で説明した各要素の動作と同じである。
【００６９】
以上のように、条件分岐命令実行時にのみ、その命令に対するフェッチ処理の際に、分岐成立信号の状態に基づいて、条件分岐が成立した場合には分岐先アドレスを選択し、条件分岐が不成立の場合には次の命令のアドレスを選択することを可能とし、それらのアドレスに対応するフェッチ処理を実行することにより、従来のような予測実行した処理の無効化をなくして、無駄な実行サイクルの発生をなくすことができる。
【００７０】
その結果、従来のような無効化サイクルの発生をなくして処理性能の低下を防ぐことができるとともに、条件分岐命令に対するフェッチ処理の実行時以外ではアドレス選択をなくして無駄な電力消費をなくし、装置全体の消費電力を低減化することができる。
【００７１】
【発明の効果】
以上のように本発明によれば、フェッチ処理の際に、分岐成立信号の状態に基づいて、条件分岐が成立した場合には分岐先アドレスを選択し、条件分岐が不成立の場合には次の命令のアドレスを選択することを可能とし、それらのアドレスに対応するフェッチ処理を実行することにより、従来のような予測実行した処理の無効化をなくして、無駄な実行サイクルの発生をなくすことができる。
【００７２】
そのため、従来のような無効化サイクルの発生による処理性能の低下を防ぐことができる。
また、条件分岐命令実行時にのみ、その命令に対するフェッチ処理の際に、分岐成立信号の状態に基づいて、条件分岐が成立した場合には分岐先アドレスを選択し、条件分岐が不成立の場合には次の命令のアドレスを選択することを可能とし、それらのアドレスに対応するフェッチ処理を実行することにより、従来のような予測実行した処理の無効化をなくして、無駄な実行サイクルの発生をなくすことができる。
【００７３】
そのため、従来のような無効化サイクルの発生をなくして処理性能の低下を防ぐことができるとともに、条件分岐命令に対するフェッチ処理の実行時以外ではアドレス選択をなくして無駄な電力消費をなくし、装置全体の消費電力を低減化することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１の半導体装置の構成を示すブロック図
【図２】同実施の形態１の半導体装置の動作を示すタイミングチャート
【図３】本発明の実施の形態２の半導体装置の構成を示すブロック図
【図４】同実施の形態２の半導体装置の動作を示すタイミングチャート
【図５】本発明の実施の形態３の半導体装置の構成を示すブロック図
【図６】同実施の形態３の半導体装置の動作を示すタイミングチャート
【図７】本発明の実施の形態４の半導体装置の構成を示すブロック図
【図８】同実施の形態４の半導体装置の動作を示すタイミングチャート
【図９】本発明の実施の形態５の半導体装置の構成を示すブロック図
【図１０】同実施の形態５の半導体装置の動作を示すタイミングチャート
【図１１】本発明の実施の形態６の半導体装置の構成を示すブロック図
【図１２】同実施の形態６の半導体装置の動作を示すタイミングチャート
【図１３】従来の半導体装置の構成を示すブロック図
【図１４】同従来例の半導体装置の動作を示すタイミングチャート
【符号の説明】
１　　命令メモリ
２　　ＩＦＢ
３　　ＤＥＣＢ
４　　ＥＸＢ
５　　アドレス
６　　データ
７　　命令コード
８　　制御信号
９　　ＢＲＴＫＮ
１０　　アドレス生成器
１２　　アドレス生成器出力
１３　　アドレスラッチ
１４　　ｄｉｓｐラッチ
１６　　アドレスラッチ出力
１７　　ｄｉｓｐラッチ出力
１８　　ＡＵ
１９　　ＡＵ出力（分岐アドレス）
２０、２６、２７、４０　　セレクタ
２１　　セレクタ出力
２２　　条件分岐命令判定器
２３　　ＢＲＥＮ
２４　　Ｘデコーダ
２５　　メモリアレイ
２８　　ノーマルＹデコーダ
２９　　分岐Ｙデコーダ
３０　　Ｙデコーダ
３１、３２　　ノーマルＹデコーダ出力
３３、３４　　分岐Ｙデコーダ出力
３５　　アドレス判定器
３６　　ＹＡＤＲＯＶ
３７、３８　　Ｙデコーダ出力
３９　　セレクタ出力
【図１】
2004030085.tif 000003
【図２】
2004030085.tif 000004
【図３】
2004030085.tif 000005
【図４】
2004030085.tif 000006
【図５】
2004030085.tif 000007
【図６】
2004030085.tif 000008
【図７】
2004030085.tif 000009
【図８】
2004030085.tif 000010
【図９】
2004030085.tif 000011
【図１０】
2004030085.tif 000012
【図１１】
2004030085.tif 000013
【図１２】
2004030085.tif 000014
【図１３】
2004030085.tif 000015
【図１４】
2004030085.tif 000016