(57)【要約】【課題】アドレス変換バッファの速度性能を劣化させることなくアドレス変換バッファについて十分に低消費電力化が図られた半導体集積回路を提供する。【解決手段】論理アドレスを物理アドレスに変換するアドレス変換バッファにおいて、仮想記憶へのアクセスを表わすステータスレジスタの仮想記憶バリッドビットＶｓが“０”である間、キャッシュでミスヒットとなってキャッシュストール信号が出力されている間、或いは、同じ論理ページアドレスで且つこのアドレス範囲の境界以外にアクセスがあったときに、アドレス変換バッファのタグ記憶部とエントリ記憶部に供給される動作クロックφｉを停止させるクロックイネーブル生成回路１４０を備える。【選択図】　　　　図２
2004062280.tif 000002
【特許請求の範囲】
【請求項１】
論理アドレスを物理アドレスに変換するアドレス変換用記憶回路を備えた半導体集積回路であって、
上記アドレス変換用記憶回路のうち少なくとも論理アドレスの上位ビットである論理ページアドレスが格納されるタグ記憶部と物理アドレスの上位ビットである物理ページアドレスが格納されるデータ記憶部とを含んだ回路部分をアクティブ又は非アクティブに切換え可能な切換え手段を備え、
メモリアクセスを行う回路がアクティブな状態にあって上記アドレス変換用記憶回路の上記回路部分が使用されない期間に、上記切換え手段により当該回路部分が非アクティブにされるように構成されていることを特徴とする半導体集積回路。
【請求項２】
主記憶装置へのアクセスモードが、上記アドレス変換用記憶回路のアドレス変換により仮想的なメモリ領域へのアクセスを行う仮想記憶アクセスモードと、仮想的なメモリ領域へのアクセスを行わない物理記憶アクセスモードとの何れかに設定可能な設定レジスタを備え、
上記切換え手段は、上記アクセスモードが上記物理記憶アクセスモードに設定されていることに基づき上記回路部分を非アクティブにするように構成されていることを特徴とする請求項１記載の半導体集積回路。
【請求項３】
プロセッサと主記憶装置との間でデータアクセスを仲介するキャッシュメモリを備え、
上記切換え手段は、上記プロセッサのメモリアクセスにより上記キャッシュメモリでミスヒットと判定されてキャッシュメモリと主記憶装置との間でデータ転送が行われている間に、上記回路部分を非アクティブにするように構成されていることを特徴とする請求項１又は２に記載の半導体集積回路。
【請求項４】
上記アドレス変換用記憶回路に前に入力された論理ページアドレスを保持するレジスタと、メモリアクセスを行う回路から出力された論理アドレスの論理ページアドレスと上記レジスタの値とを比較する第１比較器と、当該論理アドレスの残りの下位ビットであるページ内アドレスが論理ページアドレスにより示されるアドレス範囲の境界部分に含まれているか比較判定する第２比較器とを備え、
上記切換え手段は、上記第１比較器と上記第２比較器の比較結果に基づき論理ページアドレスが前回の論理アドレスのものと同一で且つページ内アドレスが上記境界部分に含まれない場合に上記回路部分を非アクティブにするように構成されていることを特徴とする請求項１〜３の何れかに記載の半導体集積回路。
【請求項５】
論理アドレスを物理アドレスに変換するアドレス変換用記憶回路を備えた半導体集積回路であって、
上記アドレス変換用記憶回路のうち少なくとも論理アドレスの上位ビットである論理ページアドレスが格納されるタグ記憶部と物理アドレスの上位ビットである物理ページアドレスが格納されるデータ記憶部とを含んだ回路部分をアクティブ又は非アクティブに切換え可能な切換え手段を備え、
上記アドレス変換用記憶回路の上記回路部分が使用されない期間に、上記切換え手段による制御によって上記アドレス変換用記憶回路へのクロック供給が停止され、メモリアクセスを行う回路から出力された論理アドレスを用いてメモリアクセスを行うことを特徴とする半導体集積回路。
【請求項６】
命令コードをデコードするデコード回路および該命令コードを実行する実行回路とが複数組設けられ、複数の命令コードと、同時処理される命令コードのグループの情報および複数組のデコード回路および実行回路のうち各命令コードをどの組で処理するか配置の情報を示す命令位置情報とが合わされた圧縮命令を受けて、該圧縮命令の各命令コードを上記命令位置情報に従ったグループおよび配置でデコード処理と実行処理とを行うプロセッサを備えた半導体集積回路であって、
上記命令位置情報に従って同時処理される同一グループの命令コードを指定の配置にセットする伸長回路と、
同時処理される１つのグループにおいて命令コードの数が少なく有効的な命令コードがセットされない配置が生じる場合に上記命令位置情報に基づき当該配置を検出する検出回路と、
該検出回路の検出結果に基づき有効的な命令コードがセットされない配置に対応する実行回路を当該グループの実行期間に非アクティブにする制御回路とを備えるとともに、
上記伸長回路における処理と、この処理でセットされるグループに対する上記検出回路の検出処理とが同一の処理サイクルに行われるように構成されていることを特徴とする半導体集積回路。
【請求項７】
上記制御回路は、上記検出回路の検出結果に基づき有効的な命令コードがセットされない配置に対応するデコード回路を当該グループのデコード期間に非アクティブにするように構成されていることを特徴とする請求項６記載の半導体集積回路。
【請求項８】
上記伸長回路は、
上記複数組のデコード回路および実行回路にそれぞれ対応して複数個の命令コードを格納可能な複数の領域を有するバッファメモリを有し、
上記命令位置情報に基づき同一グループの命令コードを指定された配置に対応する上記バッファメモリの領域に格納するように構成されていることを特徴とする請求項６又は７に記載の半導体集積回路。
【請求項９】
上記プロセッサはコード長が大きな超長形式機械命令を処理可能であることを特徴とする請求項６〜８の何れかに記載の半導体集積回路。
【請求項１０】
上記圧縮命令は、同時実行される命令コードの数が少ない場合に挿入される有効的な処理のない無実行命令のコードを省く代わりに上記命令位置情報が付加された命令であることを特徴とする請求項９記載の半導体集積回路。
【請求項１１】
命令コードをデコードするデコード回路と該命令コードを実行する実行回路とが複数組設けられ、同時処理される同一グループの命令コードが１つにまとめられた命令を受けて、該命令に従って各命令コードのデコード処理と実行処理とを行うプロセッサを備えた半導体集積回路であって、
上記デコード処理より前の処理ステージにおいて上記命令をバッファメモリに読み込むとともに当該命令の中に有効的な処理のない無実行命令のコードが含まれないか検出を行う検出回路と、
該検出回路の結果に基づき上記無実行命令のコードが送られる組の実行回路を同一グループの命令コードの実行期間に非アクティブにする制御回路とを備えていることを特徴とする半導体集積回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、半導体集積回路の低消費電力化技術に関し、例えば仮想記憶の使用のためにアドレス変換用バッファメモリが設けられたＬＳＩ（大規模集積回路）や、例えばＶＬＩＷ（Ｖｅｒｙ　Ｌｏｎｇ　Ｉｎｓｔｒｕｃｔｉｏｎ　Ｗｏｒｄ）方式のプロセッサコアを備えたＬＳＩに適用して有用な技術に関する。
【０００２】
【従来の技術】
一般に大規模なデータを扱うプロセッサでは仮想記憶をサポートしている。仮想記憶とは、例えば、ＤＲＡＭ（Ｄｙｎａｍｉｃ　Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）などの主記憶、並びに、ハードディスクなどの２次記憶を有するシステムにおいて、２次記憶に仮想記憶用の広大な記憶領域を確保するとともに、この記憶領域のデータのうちアクセス要求のあった一部分を主記憶に写してプロセッサからアクセスさせるようにすることで、限られた主記憶のアドレス空間をあたかも広大なアドレス空間を実装しているかのように見せる技術である。
【０００３】
仮想記憶を使用する場合には仮想的な論理アドレスを用いてプロセッサからアクセスが行われるため、この論理アドレスを主記憶上の物理アドレスに変換する必要がある。このアドレス変換は仮想記憶にアクセスするたびに行う必要があることから、仮想記憶をサポートするプロセッサでは、アドレス変換による性能のオーバーヘッドを軽減するため、このアドレス変換を高速に行うアドレス変換バッファ（ＴＬＢ：Ｔｒａｎｓｌａｔｉｏｎ　Ｌｏｏｋ−ａｓｉｄｅ　Ｂｕｆｆｅｒ）と呼ばれるメモリ回路を備えるのが一般的である。
【０００４】
ところで、プロセッサアーキテクチャーの１つに、並列に動作可能な複数の実行回路を備え、複数の命令コードが１つにまとめられた命令を受け、これら複数の命令コードを複数の実行回路で並列処理するようにしたＶＬＩＷ（超長形式機械命令）と呼ばれる方式のものがある。ＶＬＩＷの方式では、各命令コードの同時実行可能性についてハードウェアが判断する必要がなく、プロセッサは１命令中に含まれる複数の命令コードを、その配置に対応づけられた各実行回路に送って処理するだけで、並列処理による高いスループットを得ることが出来る。
【０００５】
このようなＶＬＩＷの方式では、同時実行される命令コードの数が少ない場合に、有効的な処理を伴わないＮＯＰ（Ｎｏｎ　Ｏｐｅｒａｔｉｏｎ）命令のコードを挿入して命令長を合わせる必要がある。また、ＶＬＩＷ方式のプロセッサの中には、命令長を合わせる目的で挿入されるＮＯＰ命令を省く代わりに、同時実行される命令コードのグループ境界と各命令コードの配置の情報とが示された命令位置情報を付加することで命令を圧縮し、この圧縮された命令をプロセッサ内部で元に復元してデコード処理と実行処理とを行うようにしたものもある。このような圧縮命令により、命令キャッシュの効率の向上が図れる。
【０００６】
現在、ＬＳＩの高速化、大規模化に伴ってＬＳＩの消費電力は増加の一途をたどっている。また、携帯電話や携帯型情報端末（ＰＤＡ）など、バッテリーで駆動する電子機器にＬＳＩが搭載されることも多くなっているため、ＬＳＩの低消費電力化の要求はますます高まってきている。
そこで、本発明者らは上記のアドレス変換バッファとＶＬＩＷ方式のプロセッサにおける消費電力を低減できないか検討した。
【０００７】
アドレス変換バッファの低消費電力化を図る従来技術としては、例えば特開平１１−１３４２５６号、特開平８−９５８６４号、特開２０００−１４８５８９号公報にそれぞれ開示の技術があった。
これらのうち特開平１１−１３４２５６号に開示の技術は、アドレス変換を行う前に論理アドレスの上位ビットが前回のものと同一か比較して、同一である場合にアドレス変換バッファでアドレス変換を行わずに、前回の変換結果を使ってアドレス変換を行うようにすることで低消費電力化を図るものである。
【０００８】
また、特開平８−９５８６４号に開示の技術は、同様に、アドレス変換を行う前に論理アドレスの上位ビット（仮想ページ番号）が前回のものと同一か比較し、同一である場合に前回の変換結果を使用し、その間、アドレス変換バッファを非活性状態とすることで低消費電力化を図るものである。
特開２０００−１４８５８９号に開示の技術は、メモリ管理ユニットに設けられた複数のアドレス変換バッファのうち、常に１つのアドレス変換バッファしか動作しないように制御することで低消費電力化を図るものである。
【０００９】
【発明が解決しようとする課題】
上記従来の技術のうち、特開平１１−１３４２５６号に開示の技術は、アドレス変換動作で消費される電力を削減するものであり、アドレス変換バッファの待機時の電力の削減は図られていないため、不十分なものであった。一般に、アドレス変換バッファは、高速なキャッシュメモリと同等の構成を有しており、実施の形態で詳述するように待機中に消費される電力も無視できない。
【００１０】
また、特開平８−９５８６４号に開示の技術は、アドレス変換バッファを非活性状態にして低消費電力化を図っているが、低消費電力化を図る期間が論理アドレスの上位ビット（仮想ページ番号）が前回と同じとなった期間だけであり、その他の期間についてまだまだ低消費電力化できる余地があると考えられる。また、この技術では、論理アドレスの上位ビットが前回と同じものか比較を行って、その結果が不一致である場合にアドレス変換バッファを活性化させてアドレス変換動作を開始させるため、アドレス変換に必要なタイミングが増加して、高速性能を劣化させる要因になることが判った。一般に、アドレス変換バッファのパスはクリティカルであるので、アドレス変換バッファにおけるタイミング増加はシステムの処理速度の低下につながってしまう。
【００１１】
また、プロセッサコアの消費電力を低減する従来技術としては例えば特開２００１−２２５８２号公報に開示の技術がある。この公報には、無関係な命令が入力された場合に、この命令の代わりにＮＯＰ命令を命令コードのレジスタやデコーダに出力するようにしたり、命令コードのレジスタに入力されるクロックを停止したりして低消費電力化を図る技術が開示されている。
【００１２】
しかしながら、上記従来の技術においても、ＮＯＰ命令をデコード回路や実行回路に送った場合に、このＮＯＰ命令に対してデコード回路や実行回路は他の命令と同様に動作しているため、まだまだ不必要な電力消費が生じているのが判った。また、上記のように、命令コードが無関係なものか比較・検出を行い、その結果、無関係なものであった場合に低消費電力化の制御を行っていたのでは、その比較・検出にかかるタイミング増加によって、プロセッサの処理速度のボトルネックとなって動作周波数を余り高くすることが出来なくなったり、或いはプロセッサの処理に必要なステップ数が増加するなど、プロセッサの処理速度に悪影響が生じることが考えられた。
【００１３】
この発明の目的は、アドレス変換バッファの速度性能を劣化させることなくアドレス変換バッファについて十分に低消費電力化が図られた半導体集積回路を提供することにある。また、プロセッサの処理速度に影響を与えることなくＶＬＩＷ方式のプロセッサコアの部分について十分に低消費電力化が図られた半導体集積回路を提供することにある。
この発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添附図面から明らかになるであろう。
【００１４】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を説明すれば、下記のとおりである。
すなわち、仮想記憶へのアクセスがない物理記憶アクセスモードのときや、キャッシュでミスヒットとなってキャッシュデータを更新している間、或いは、同じ論理ページアドレスで且つこのアドレス範囲の境界以外にアクセスがあったときに、少なくともアドレス変換バッファのタグ記憶部とエントリ記憶部とを例えば動作クロックを断つなどして非アクティブにするものである。このような手段により、アドレス変換バッファの速度性能を劣化させることなくアドレス変換バッファの低消費電力化を図ることが出来る。
【００１５】
また、本発明に係る半導体集積回路は、圧縮命令を復元して実行する機能を有したＶＬＩＷ方式のプロセッサコアにおいて、圧縮命令を復元する処理ステージに命令位置情報に基づきＮＯＰ命令が挿入されていた箇所を検出して、その箇所に対応するデコード回路と実行回路とを例えば動作クロックを断つなどして非アクティブにするものである。このような手段によれば、プロセッサの処理速度を低下させることなくプロセッサコアの低消費電力化を図ることが出来る。
【００１６】
【発明の実施の形態】
以下、本発明の好適な実施例を図面に基づいて説明する。
［第１実施例］
図１は、本発明の実施例のプロセッサコアを搭載したシステムＬＳＩの全体構成を示すブロック図である。
この実施形態のシステムＬＳＩは、特に制限されるものではないが、例えば携帯型の電子機器に搭載されてシステム全体の制御や動画像のデータ処理等を行うものもある。このシステムＬＳＩには、プログラムを実行するプロセッサコア２０、外部接続されるＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ　ＤＲＡＭ）等の主記憶に対してデータアクセス制御を行うメモリインターフェース１０、動画像データのエンコードやデコードに必要な演算処理を行うコプロセッサ３０、動画像の大きさの伸縮に必要なデータ処理を行うビデオスケーラ４０、外部接続される入出力機器とのデータのやり取りを行うＩＯユニット５０、プロセッサコア２０にデータを介さず直接的に周辺モジュール・主記憶間のデータアクセスを可能にするＤＭＡ（ＤｉｒｅｃｔＭｅｍｏｒｙ　Ａｃｃｅｓｓ）コントローラ６０、各モジュール間のデータ転送に使われる内部バス７０、通信モジュールや大容量記憶装置などの周辺機器が接続される外部バスと内部バス７０との間でデータの受渡しを行う外部バスインタフェース８０などが設けられている。
【００１７】
上記プロセッサコア２０は、ＶＬＩＷの命令制御方式のもので、且つ、ＶＬＩＷの命令からＮＯＰ命令を省く代わりに各命令コードの位置情報が付加された圧縮命令に対応可能なものであり、この圧縮命令を読み込むインストラクションキャッシュ（以下、Ｉキャッシュと略す）２４と、圧縮命令を伸長して復元する命令ユニット２１と、１命令中に含まれる同時実行される複数の命令コードをそれぞれデコードする複数のデコード回路を有する命令デコーダ２２と、複数の命令コードのそれぞれについて演算処理を行う複数の実行回路を有する実行ユニット２３と、演算データや結果データの読み書きが行われるデータキャッシュ（以下、Ｄキャッシュと略す）２５とを備えている。
【００１８】
この実施例のシステムＬＳＩは、外部バスに接続されるハードディスクなどの大容量記憶装置を用いて、主記憶に割り当てられる物理的なアドレス空間よりも大きな仮想的なアドレス空間を提供する仮想記憶が使用可能となったものである。そして、このような仮想記憶の機能を実現するため、仮想記憶へデータアクセスを行うモジュール（Ｉキャッシュ２４、Ｄキャッシュ２５、ＤＭＡコントローラ６０）には、仮想記憶上の論理アドレスを主記憶の物理アドレスに変換するアドレス変換バッファ１００がそれぞれ設けられている。
【００１９】
図２には、上記のアドレス変換バッファとその周辺部分のブロック構成図を示す。
アドレス変換バッファ１００は、仮想記憶上の論理アドレスを上位所定数ビット（論理ページアドレスと呼ぶ）と残りの下位ビット（ページ内アドレスと呼ぶ）とに分け、この論理ページアドレスを対応する物理アドレスのページアドレス（物理ページアドレスと呼ぶ）に変換し、この物理ページアドレスと残りのページ内アドレスとを合わせたものを変換後の物理アドレスとして主記憶にアクセスさせるものである。なお、このアドレス変換バッファ１００は、仮想アドレス空間を多重化して扱うことが可能なものであり、別途設定される空間識別子ＡＳＩＤに基づいて多重化された仮想アドレス空間のうち何れか１つが選択されて、該仮想アドレス空間を用いた仮想記憶へのアクセスが行われるように構成されている。この多重化技術は公知のものである。
【００２０】
このアドレス変換バッファ１００は、入力された論理ページアドレスを対応する物理ページアドレスに変換するＴＬＢ主要部１１０と、ＴＬＢ主要部１１０からの物理ページアドレスの出力を保持する出力レジスタ１２０と、論理ページアドレス又はレジスタ１２０に保持された物理ページアドレスの何れかを選択的に出力するバイパス回路１３０と、ＴＬＢ主要部１１０の内部クロックφｉの供給を許可又は禁止するクロックイネーブル信号を生成するクロックイネーブル生成回路１４０と、多重化された仮想アドレス空間の何れか１つを選択する空間識別子ＡＳＩＤや仮想記憶の使用の有無を示す仮想記憶バリッドビットＶｓ等が格納されるステータスレジスタ１５０等を備えている。
【００２１】
ＴＬＢ主要部１１０は、空間識別子ＡＳＩＤや論理ページアドレスをタグ（ＴＡＧ）情報として記憶するタグ記憶部１１１と、物理ページアドレスをエントリ情報として記憶するデータ記憶部１１２と、入力された空間識別子ＡＳＩＤや論理ページアドレスとタグ情報とを比較して一致するものがあるか判定する図示略のタグ情報比較判定回路とからなる従来と同様の構成と、上記タグ記憶部１１１やデータ記憶部１１２へのクロックφｉの供給と遮断とを行うゲーテッドクロック回路１１３等を備えている。また、タグ記憶部１１１には、空間識別子ＡＳＩＤや論理ページアドレスが１個ずつ格納されるデータエントリごとにそのデータエントリの有効・無効を示すバリッドビットが設けられ、このビットが有効であるデータエントリが比較判定の対象となり得るようになっている。
【００２２】
ステータスレジスタ１５０の空間識別子ＡＳＩＤやバリッドビットＶｓは、プロセッサコア２０が実行しているプログラム或いはＯＳ（Ｏｐｅｒａｔｉｎｇ　Ｓｙｓｔｅｍ）のソフトウェア処理に従って適宜書き換えられるものである。また、バリッドビッドＶｓは、仮想記憶を全く使用しない場合には常に“０”とされるが、仮想記憶を使用している場合には、ＯＳ等により主記憶中の仮想記憶の展開領域へアクセスが生じる際には“１”に書き換えられ、その他、主記憶中の通常の記憶領域へアクセスが生じる際には“０”に書き換えられるようになっている。
【００２３】
また、バイパス回路１３０の選択パスを決めるバイパス信号は、図示しない論理組合せ回路により、ステータスレジスタ１５０の仮想記憶バリッドビットＶｓが“０”に切り換わったら次のクロック信号φ０の立ち上がりでロウレベルにされて論理アドレス側のパスを選択し、他方、仮想記憶バリッドビットＶｓが“１”に切り換わったら次のクロック信号φ０の立ち上がりでハイレベルにされてレジスタ１２０側のパスを選択するようになっている。
【００２４】
図３には、タグ記憶部やデータ記憶部の構成例の一部を示す。
この実施例のタグ記憶部１１１およびデータ記憶部１１２は、図３にその一部を示すように、ＳＳＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ　Ｓｔａｔｉｃ　Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）により構成されたものである。ＳＳＲＡＭは、４個の素子から構成されるメモリセルＭＣや、メモリセルＭＣを選択するワード線ＷＬ、メモリセルＭＣから記憶データを読み出す１対のビット線ＢＬ，／ＢＬ、Ｙアドレスに従って出力データを選択するカラムスイッチＳＷｃ、メモリセルＭＣから１対のビット線ＢＬ，／ＢＬに出力された電位を増幅出力するセンスアンプＳＡ、ビット線ＢＬ，／ＢＬやセンスアンプＳＡをプリチャージしてデータ読出し可能な状態にするプリチャージ用ＭＯＳＦＥＴ（以下、プリチャージＭＯＳと略す）ＱＰなどを備えている。そして、内部クロックφｉ（外部から供給されたクロック信号φ０をゲーテッドクロック回路１１３を介して内部に導いたクロック）がロウレベルのときにプリチャージＭＯＳ　ＱＰがオン状態となってプリチャージが行われ、内部クロックφｉがハイレベルになったときに選択されたメモリセルＭＣからデータが読み出され、その後、センスアンプＳＡの出力が確定したら、内部クロックφｉがロウレベルにリセットされるように構成されている。内部クロックφｉをリセットするタイミングは論理ゲートＧ１〜Ｇ４により決定され、センスアンプＳＡの出力は内部クロックφｉがリセットされる前に出力先のラッチ回路に保持される。
【００２５】
従って、この実施例のタグ記憶部１１１およびデータ記憶部１１２は、アドレス線やワード線ＷＬの選択をしなくても、内部クロックφｉが供給される限り、プリチャージＭＯＳ　ＱＰのオン・オフ動作によりセンスアンプＳＡやビット線ＢＬ，／ＢＬに電流が流れて電力消費が生じるようになっている。このような性質は高速なデータの読出しが必要となるアドレス変換バッファの記憶部において一般的なものであり、例えば、タグ記憶部１１１やデータ記憶部１１２を連想メモリを用いて構成した場合などにおいても同様に生じるものである。
【００２６】
図４には、図２のクロックイネーブル生成回路１４０に含まれる一部の回路図を示す。
図２のクロックイネーブル生成回路１４０には、入力された論理ページアドレスが前回のアドレス変換のものと同じで、且つ、ページ内アドレスが論理ページアドレスにより示されるアドレス範囲の境界部分に含まれない場合に、クロックイネーブル信号ＣＥを無効にする無効信号を生成する回路が含まれている。この回路は、図４に示すように、前回入力された論理ページアドレスを格納するレジスタ１４３と、該レジスタ１４３の出力と今回入力された論理ページアドレスを比較する比較器１４５と、今回アクセス要求があったページ内アドレスが境界アドレス（例えば全ビット「０」か全ビット「１」）か否かを比較する比較器１４６Ａ，１４６Ｂと、これら比較器１４５，１４６Ａ，１４６Ｂの出力が上記の条件を示すものとなった場合にクロックイネーブルＣＥを無効にする信号を生成する論理ゲート１４７とから構成されるものである。
【００２７】
なお、ここでは、ページ内アドレスの境界アドレスとして全ビット「０」と全ビット「１」の場合を例示したが、例えば、１回のデータアクセス量に相当するアドレスの範囲がアドレスの下位ｎビットである場合には、ページ内アドレスの下位ｎビットを除くビットが全て「０」か「１」となるアドレス範囲を境界部分とすることで対応することが出来る。
【００２８】
クロックイネーブル生成回路１４０には、その他、キャッシュストール信号やステータスレジスタ１５０のバリッドビットＶｓの値を示す信号が入力され、キャッシュストール信号がハイレベルの間、或いはバリッドビッドＶｓが“０”の場合に、クロックイネーブル信号ＣＥを無効とするように論理が組まれている。ここで、キャッシュストール信号とは、インストラクションキャッシュ２４やデータキャッシュ２５においてキャッシュミスの判定が発生し、必要なデータを主記憶からロードしているためキャッシュアクセスが不可能であることを外部に知らせる信号である。
【００２９】
図５（ａ）〜図５（ｃ）には、ＴＬＢ主要部１１０の内部クロックφｉが停止される状態を説明するタイムチャートを示す。図５（ａ）は、ステータスレジスタのバリッドビットＶｓの値に応じてアドレス変換バッファが動的に停止制御される状態を説明するタイムチャート、図５（ｂ）はキャッシュストール信号によりアドレス変換バッファが動的に停止制御される状態を説明するタイムチャート、図５（ｃ）はメモリアクセスされるアドレスに応じてアドレス変換バッファが動的に停止制御される状態を説明するタイムチャートである。
この実施例のアドレス変換バッファ１００においては、クロックイネーブル生成回路１４０から出力されるクロックイネーブルＣＥが無効（ロウレベル）とされるのは次の３つの条件（Ａ）〜（Ｃ）の場合がある。
【００３０】
１つ目の条件（Ａ）は、ステータスレジスタ１５０の仮想記憶バリッドビットＶｓが“０”となっている場合である。仮想記憶バリッドビッドＶｓが“０”となる場合は、一つにはシステムが初めから仮想記憶を使用しない場合がある。この場合、仮想記憶バリッドビッドＶｓは静的に“０”とされるので、クロックイネーブルＣＥはシステムの動作中に常に無効とされる。
【００３１】
仮想記憶バリッドビットＶｓが“０”となるもう一つの場合は、主記憶の仮想記憶データの展開領域以外のアドレスへアクセスが行われる場合である。この場合、ＯＳにより仮想記憶バリッドビットＶｓが“０”に書き換えられるので、図５（ａ）に示すように、それに伴ってクロックイネーブルＣＥが無効とされる。そして、仮想記憶バリッドビットＶｓが“０”に書き換えられた後、次のクロック信号φ０の立上りによりバイパス信号がハイレベルにされ、これによりバイパス回路１３０において論理アドレス側のパスが選択されて論理アドレスが物理アドレスとして出力される。
【００３２】
クロックイネーブルＣＥを無効にする２つ目の条件（Ｂ）は、アドレス変換バッファ１００と主記憶との間に介在するキャッシュメモリからキャッシュミスによるハイレベルのキャッシュストール信号が出力される場合である。図５（ｂ）に示すように、キャッシュストール信号がハイレベルになるとクロックイネーブルＣＥが無効となって内部クロックφｉが停止される。
【００３３】
３つ目の条件（Ｃ）は、図４の論理ゲート１４７からクロックイネーブルＣＥを無効にする信号が出力される場合である。すなわち、図５（ｃ）に示すように、論理ページアドレスが「Ａ」で続いた後に「Ｂ」に切り換わりその後「Ｂ」で連続するような場合（但し、ページ内アドレスがページ範囲の境界でないとする）、ページ内アドレスが「Ａ」となっている２番目のサイクルや、「Ｂ」となっている２番目以降のサイクルに論理ゲート１４７の出力に基づきクロックイネーブルＣＥが無効とされて、アドレス変換バッファ１００からはそれぞれページ内アドレスが変わった始めのサイクルで変換されレジスタ１２０に格納されている物理ページアドレスが出力される。
【００３４】
但し、同一の論理ページアドレスが続いている場合でも、ページ内アドレスがページ範囲の境界（例えば全ビット“０”や全ビット“１”）であった場合には、論理ゲート１４７の出力に基づきクロックイネーブルＣＥが有効とされて、ＴＬＢ主要部１１０が動作するようになっている。
【００３５】
以上のように、この実施例のシステムＬＳＩによれば、アドレス変換バッファ１００による論理ページアドレスの変換動作が不要なときに、ＴＬＢ主要部１１０の内部クロックφｉが停止されて消費電力の低減を図ることが出来る。
また、論理ページアドレスが前回と同一のときに内部クロックφｉを停止する場合には、ページ内アドレスがアドレス範囲の境界部分にある場合を除外して制御されるので、この境界部分を含んで２つの論理ページアドレスにまたがる連続アクセスが行われた場合に、アドレス変換バッファ１００が停止されないので、メモリアクセス処理が一次的に停止してシステムの処理スピードに影響を与えるといったことが回避される。
【００３６】
なお、仮想記憶を全く使用しない場合には、アドレス変換バッファ１００を内部電源から切り離してリーク電流による消費電力の低減を図るようにしても良い。具体的には、ステータスレジスタ１５０の仮想記憶バリッドビットＶｓの読み出しをロウレベル固定とし、ＴＬＢ主要部１１０と電源とをスイッチＭＯＳＦＥＴにより切り離す。そして、ＴＬＢ主要部１１０の出力にトライステートバッファを設け、ＴＬＢ主要部１１０の入出力間に貫通電流が流れないように制御する。さらに、このような状態と、仮想記憶を使用する場合の状態とをボンディングオプション等で切り替え可能に構成することで、同一のマスクを用いた半導体製造プロセスで仮想記憶ありと無しの２製品を生産することも可能となる。
【００３７】
なお、本発明は上記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
例えば、上記実施例においては、キャッシュメモリへのアクセスが行われない期間にＴＬＢ主要部１１０の内部クロックφｉを停止させるために、キャッシュストール信号を用いて内部クロックφｉを停止させる制御を行っているが、キャッシュストール信号を用いず、種々の状態検出によりメモリアクセスの要求がないことを検出してその検出信号に基づき内部クロックφｉを停止させるようにしても良い。
【００３８】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるプロセッサを搭載したシステムＬＳＩについて説明したがこの発明はそれに限定されるものでなく、アドレス変換テーブルを搭載したプロセッサ単体やＭＭＵ（Ｍｅｍｏｒｙ　Ｍａｎａｇｅｍｅｎｔ　Ｕｎｉｔ）などの半導体集積回路に広く利用することが出来る。
【００３９】
［第２実施例］
次に、図１のプロセッサコア２０の命令デコーダ２２および実行ユニット２３の部分の消費電力を低減する構成について説明する。
先にも述べたが、この実施例のプロセッサコア２０は、ＶＬＩＷ形式の命令からＮＯＰ命令を省きその代わりに位置情報が付加された圧縮命令を入力して伸長および実行を行うように構成されたものである。
【００４０】
図６には、プロセッサコア２０により命令を実行処理する過程を説明する図を示す。
プロセッサコア２０の実行ユニット２３には、ＶＬＩＷ命令の１命令中に含まれる複数の命令コードを同時に並列処理するため、複数の実行回路２３０〜２３３が設けられている。各実行回路２３０〜２３３は例えばメモリアクセス命令や演算命令など異種の命令処理を行うものが混在しているため、１命令中に含まれる複数の命令コードは予め定めされた配置でセットしなければならない。
【００４１】
実行ユニット２３の前段に設けられている命令デコーダ２２には、同様に複数のデコード回路２２０〜２２３が設けられ、複数の命令コードを同時にデコード処理するようになっている。
命令デコーダ２２の前段には命令伸長回路２１０と命令バッファ２１１等を有した命令ユニット２１が設けられて、該ユニット２１において圧縮命令が伸長されるようになっている。
【００４２】
命令伸長回路２１０には、非圧縮の１個のＶＬＩＷ命令の展開により１個の命令中に含まれる複数の命令コードが格納される複数の格納領域を有した展開バッファ２１４と、前段の命令バッファ２１１に格納された２命令分の命令位置情報をデコードしてこの２命令に含まれる複数の命令コードのうち、同時処理される同一グループの命令コードを展開バッファ２１４に展開させる命令位置情報デコーダ２１３などが設けられている。展開バッファ２１４には、命令バッファ２１１に格納された複数の命令コードをそれぞれ選択的に取り込むセレクタが設けられ、命令位置情報デコーダ２１３からのデコード信号によって何れかの命令コードをそれぞれラッチするように構成されている。
【００４３】
次に、命令デコーダ２２と実行ユニット２３を非アクティブに制御するための具体的構成を説明する。
上記複数のデコード回路２２０〜２２３には、ゲーテッドクロック回路２２５〜２２８を介して動作クロックφｐが入力されるように構成されている。各ゲーテッドクロック回路２２５〜２２８の一方の入力端子には、命令位置情報デコーダ２１３からの制御信号Ｖ０〜Ｖ３が入力され、これらの信号によりデコード回路２２０〜２２３の動作クロックφｐをそれぞれ別個に停止させることが可能になっている。
【００４４】
また、実行回路２３０〜２３３には、上記のゲーテッドクロック回路２２５〜２２８とフリップフロップ２３５〜２３８を介して動作クロックφｐが入力されるように構成されている。すなわち、ゲーテッドクロック回路２２５〜２２８から出力されたクロック信号がフリップフロップ２３５〜２３８を介して１サイクル遅延されて実行回路２３０〜２３３に供給される。
【００４５】
上記の命令位置情報デコーダ２１３は、上記の命令伸長のための機能に加え、これらデコード回路２２０〜２２３および実行回路２３０〜２３３の動作クロックφｐを停止して非アクティブにする制御手段としての機能を備えており、命令位置情報からＮＯＰ命令が省略されていた位置を検出したら、このグループのＶＬＩＷ命令が命令デコーダ２２でデコードされる処理サイクルに、検出したＮＯＰ命令の省略位置に対応するゲーテッドクロック回路２２５〜２２８の何れかにクロック停止の制御信号を出力するようになっている。
【００４６】
次に、上記のように構成されたプロセッサコア２０による圧縮命令の実行処理の動作説明を行う。
図６の圧縮前命令ＣＯＭに示されるように、ＶＬＩＷ命令は圧縮前において同時に実行される複数個（例えば４個）の命令コードを複数のフィールドに配列したものが１命令として扱われる。１つの命令コードの長さは、例えば３２ビットである。同時実行される命令コードが所定個数に満たない場合には、命令コードのないフィールドに有効的な処理が行われないＮＯＰ命令が挿入されて命令長が合わせられる。
【００４７】
図７には、圧縮命令のデータ構造を説明する図を示す。
圧縮命令は、上記ＮＯＰ命令を省いて有効な命令コードを配列順に詰めてまとめるとともに、同時処理される同一グループの命令コードの境界と各命令コードの配置が示された命令位置情報を１個の圧縮命令の最後に付加したデータ構成を有する。命令位置情報は、「フィールド０〜フィールド３」を表わす２ビットの位置情報と１命令の最後か否かを表わす１ビットのＥＮＤ情報とからなる３ビットデータを、１個の圧縮命令中に含まれる４個の命令コードのそれぞれに対応させて配列した１２ビットのデータである。このような圧縮方式では、ＶＬＩＷ命令の１個の命令コード長が長くなったり、１命令中に含まれる命令コードの数が多くなってＮＯＰ命令の挿入される割合が大きくなればなるほど、その圧縮率も大きくなる。
【００４８】
このようなＶＬＩＷ命令の圧縮は、例えば、プログラムのコンパイル時に実施され、圧縮された状態で主記憶等に格納されており、そのままＩキャッシュ２４にロードされる。
圧縮命令がＩキャッシュ２４にロードされると、次に、命令ユニット２１において圧縮命令を伸長する処理が行われる。伸長処理は、先ず、Ｉキャッシュ２４から命令バッファ２１１に２個の圧縮命令を配列順に読み込み、次に、これら２個の圧縮命令の命令位置情報を命令位置情報デコーダ２１３によりデコードして、そのデコード信号により同時処理される同一グループの複数の命令コードをその位置情報に従った配置で展開バッファ２１４の各領域に格納することで達成される。ここで、圧縮前にＮＯＰ命令が挿入されていた箇所は、前回の命令コードが格納されたままとされる。
【００４９】
さらに、上記命令位置情報デコーダ２１３によるデコード処理において、ゲーテッドクロック回路２２５〜２２８に入力される制御信号Ｖ０〜Ｖ３のうち、命令コードが新たに配置されないフィールド（すなわち、圧縮前にＮＯＰ命令が挿入されていたフィールド）に対応する制御信号が次のサイクルにおいてロウレベルになるようにセットされる。
【００５０】
次に、上記展開バッファ２１４に展開された複数の命令コードが、命令デコーダ２２の各デコード回路２２０〜２２３に送られて、それぞれデコード処理が行われる。但し、圧縮前にＮＯＰ命令が挿入されていた箇所に対応するデコード回路には、上記のゲーテッドクロック回路２２５〜２２８の制御により動作クロックφｐが供給されないので、デコード処理は行われない。
【００５１】
命令デコードの処理がなされたら、次に、このデコード結果が対応する実行回路２３０〜２３３に送られて命令の実行処理が行われる。但し、圧縮前にＮＯＰ命令が挿入されていた箇所に対応する実行回路には、上記のゲーテッドクロック回路２２５〜２２８の制御とフリップフロップ２３５〜２３８の遅延により、実行処理のサイクルに動作クロックφｐが供給されないので、実行処理は行われない。
実行処理がなされたら、その結果をＤキャッシュ２５又は所定のレジスタに書き込む処理を行って１命令の実行処理が完了する。
【００５２】
図８には、プロセッサコア２０によるパイプライン処理の内容を説明する図を示す。
同図に示すように、上述した命令バッファ２１１への命令フェッチ「ＩＦ０」、圧縮命令を伸長して展開バッファ２１４に展開する処理「ＩＦ１」、命令デコーダ２２による命令デコード（実行に必要なデータの読み出しを含む）「ＲＤ」、命令実行「ＥＸ」、並びに、結果の書込み処理「ＷＢ」は、それぞれがパイプライン処理の１つの処理ステージとなっている。従って、命令位置情報デコーダ２１３とゲーテッドクロック回路２２５〜２２８とフリップフロップ２３５〜２３８により行われる動作クロックφｐの停止制御は、ＮＯＰ命令が挿入されていた箇所の検出された命令が、デコード回路２２０〜２２３と実行回路２３０〜２３３へ移行されてそれぞれ処理されるサイクルに行われるようにタイミング制御されている。
【００５３】
以上のように、この実施例のシステムＬＳＩによれば、ＶＬＩＷ命令の１命令中にＮＯＰ命令が含まれる箇所があった場合に、その命令コードのデコードと実行とを行うデコード回路２２０〜２２３および実行回路２３０〜２３３に動作クロックφｐの供給が停止されるので、従来、ＮＯＰ命令のデコードと実行にかかっていた消費電力を削減することが出来る。
【００５４】
また、圧縮前にＮＯＰ命令が含まれていた箇所に対して、圧縮命令を伸長するさいにＮＯＰ命令を復元する必要がなくなるため、ＮＯＰ命令を復元する構成を省いて、この復元処理にかかっていた消費電力も削減することが出来る。
【００５５】
また、デコード回路２２０〜２２３や実行回路２３０〜２３３を停止させるか否かの検出処理ならびに停止させるフィールドの検出処理が、伸長処理において行われる命令位置情報のデコード処理と並行して行われるので、この検出のために処理スピードが低下するといった不都合が生じない。
【００５６】
ここで、先ず、ＮＯＰ命令のデコード処理と実行処理とを停止することで得られる消費電力の削減効果について定量的に説明する。
図９は、ＮＯＰ命令のデコードと実行を停止することで得られる消費電力の削減割合を表わしたグラフである。
同図において、「ＬＳＩ−Ａ」のグラフはＶＬＩＷ方式のプロセッサコア２０の他に周辺モジュールや周辺論理を多数含んだシステムＬＳＩにおける消費電力削減割合、「ＶＬＩＷコアロジック」のグラフはプロセッサコア２０のみで見たときの消費電力削減割合を示している。また、「４整数演算ＶＬＩＷ」は整数演算を４並列で行うＶＬＩＷ方式のプロセッサコアの場合、「８整数演算ＶＬＩＷ」は整数演算を８並列で行うＶＬＩＷ方式のプロセッサコアの場合の消費電力削減割合を示している。
【００５７】
また、この消費電力削減割合の計算条件として、「ＬＳＩ−Ａ」のシステムＬＳＩを構成するトランジスタ総数を約１４９０万個、その内、命令デコーダ２２が占める個数を約２０万個、実行ユニット２３が占める個数を約３３０万個とし、また、実行するプログラム処理としてビデオデコード処理を対象とし、ループ等を考慮せずに１命令中に含まれるＮＯＰ命令コード数を１．９９個、有効的な命令コード数を２．０１個とした。
【００５８】
このような条件において、上記実施例のようにＮＯＰ命令のデコードと実行とを停止させると、プロセッサコア２０の部分における消費電力の削減割合は、実行回路の停止により３４．３％、デコード回路の停止により２．２％となり、大幅な節電効果が得られるという結論が得られた。
【００５９】
また、「ＬＳＩ−Ａ」のシステムＬＳＩでは、周辺モジュールや周辺論理の消費電力は変化しないので消費電力の削減割合は少なくなるが、それでも実行回路の停止により１１．２％、デコード回路の停止により０．７％の節電効果が得られるという結果が得られた。同様に、「４整数演算ＶＬＩＷ」や「８整数演算ＶＬＩＷ」のプロセッサコアについても、グラフに示すように大幅な節電効果を得ることが分かった。
【００６０】
次に、ＮＯＰ命令の挿入箇所の検出がプロセッサの処理スピードに与える影響について、実施例の構成と、伸長処理の後にＮＯＰ命令の検出を行ってＮＯＰ命令のデコード処理と実行処理とを停止させる構成とで比較検討した内容の説明をする。
【００６１】
図１０（ａ）と図１０（ｂ）には、ＮＯＰ命令の挿入箇所検出がプロセッサの動作周波数に与える影響を説明する図を示す。図１０（ａ）は実施例の場合、図１０（ｂ）は伸長処理の後にＮＯＰ命令の検出を行う場合のものである。
プロセッサコア２０の各動作ステージでクリティカルなパスを有する部分は、一般にデコードステージ（ＲＤ）および実行ステージ（ＥＸ）であり、命令伸長ステージ（ＩＦ１）の処理には時間的な余裕が少し生じる。
【００６２】
本発明を適用しようとしている一つの従来製品について具体的な時間長を示せば、命令伸長ステージ（ＩＦ１）の処理に必要な時間長は３．１７ｎｓ、デコードステージ（ＲＤ）と実行ステージ（ＥＸ）の処理に必要な時間長はそれぞれ３．３ｎｓとなる。そして、この製品の最大動作周波数は３００ＭＨとなる。
【００６３】
主要な回路構成は変えずにこの製品に本発明を適用した場合、図１０（ａ）に示すように、命令位置情報からＮＯＰ命令位置を検出して制御信号を出力するのに０．１ｎｓ、制御信号をデコード回路２２０〜２２３に動作クロックφｐを供給するゲーテッドクロック回路２２５〜２２８に伝播するのに１．２ｎｓ、ゲーテッドクロック回路２２５〜２２８からデコード回路２２０〜２２３の入力段に設けられたデータラッチ用のフリップフロップまでクロック信号が伝播するのに０．２ｎｓかかると概算できる。すなわち、ＮＯＰ命令位置の検出からデコード回路２２０〜２２３を停止するのに必要なタイミング増分は１．５ｎｓとなる。
【００６４】
しかしながら、これらの処理は、圧縮命令を伸長する処理と並行して行うことが出来るため、このタイミング増分１．５ｎｓは命令伸長ステージ（ＩＦ１）の処理時間の中に包含することができ、プロセッサの処理スピードに影響を与えない。
【００６５】
一方、命令伸長後にＮＯＰ命令の検出を行う方式では、ＮＯＰ命令の検出から制御信号を出力するに０．１ｎｓ、制御信号をクロックバッファまで伝播するのに０．２ｎ、クロックバッファからデコード回路２２０〜２２３の入力フリップフロップまで伝播するのに０．２ｎｓかかるとし、その合計のタイミング増分を０．５ｎｓと概算しても、これらの処理は、圧縮命令を伸長した後に行う必要があることから、このタイミング増分０．５ｎｓは命令伸長ステージ（ＩＦ１）の処理時間に加算され、命令伸長ステージ（ＩＦ１）の処理に必要な時間長は３．６７ｎｓとなる。この時間長はデコードステージ（ＲＤ）や実行ステージ（ＥＸ）の処理時間より長いものである。従って、このタイミング増分はプロセッサの処理スピードに影響して、その最高動作周波数は例えば２７２ＭＨｚなどと悪化する。
【００６６】
今後、配線材料の変更による信号伝播時間の低減と半導体プロセスの微細化によるトランジスタの高速化などにより、上記の命令伸長ステージ（ＩＦ１）の処理時間とデコードステージ（ＲＤ）や実行ステージ（ＥＸ）の処理時間は短縮し、互いの差も減少していくと考えられるので、上記のようなタイミング増分がプロセッサの処理スピードに与える影響は大きくなってしまう。
【００６７】
以上本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は上記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
例えば、上記実施例では、ＮＯＰ命令が挿入されていたフィールドに対してＮＯＰ命令を復元しないように構成したが、展開バッファ２１４にＮＯＰ命令の命令コードを発生させる回路を設け、命令位置情報デコーダ２１３からのデコード信号によってＮＯＰ命令の挿入位置にＮＯＰ命令を復元するように構成しても良い。
更に、圧縮命令においてＮＯＰ命令が挿入されていた箇所は、前回の命令コードが格納されたままに限らず、任意の値を挿入可能となるような構成としても良い。
【００６８】
更に、本実施例では、４命令コードの並列演算の構成を前提としているが、４命令コードに限ることなく、それ以上の複数命令コード数、それ以下の複数命令コード数であってもＮＯＰ命令のデコード処理と実行処理とを停止させて低消費電力化を図ることが可能となる。
また、特に限定されないが、ゲーテッドクロック回路２２５〜２２８とフリップフロップ２３５〜２３８はプロセッサコア２０内に配される。
【００６９】
また、この実施例は、ＮＯＰ命令を省いた圧縮命令を伸長した後にデコードと実行とを行う構成を前提にしているが、ＮＯＰ命令の挿入された非圧縮のＶＬＩＷ命令を実行するプロセッサにおいても、動作周波数を低下させずにＮＯＰ命令のデコード処理と実行処理とを停止させて低消費電力化を図ることも可能である。すなわち、プロセッサのパイプライン処理の１ステージとして、命令をプリフェッチする処理ステージを追加するとともに、該プリフェッチの処理ステージでＮＯＰ命令の検出を行い、その結果、ＮＯＰ命令が検出されたらデコーダ回路と実行回路とを停止させるように構成する。このような構成により、パイプライン処理のステージ数が１つ増えるが、プロセッサの動作周波数に影響を与えることなく、ＮＯＰ命令のデコード処理と実行処理とを停止させて低消費電力化を図ることが出来る。
【００７０】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるプロセッサを搭載したシステムＬＳＩについて説明したがこの発明はそれに限定されるものでなく、プロセッサ単体の半導体集積回路などに広く利用することが出来る。
【００７１】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、本発明に従うと、処理スピードに影響を与えることなく、アドレス変換テーブルにおける消費電力の低減が図れるという効果がある。
また、本発明に従うと、ＶＬＩＷ方式のプロセッサにおいて処理スピードに影響を与えることなくＮＯＰ命令に係る処理について消費電力の低減が図れるという効果がある。
【図面の簡単な説明】
【図１】本発明の実施例のシステムＬＳＩの全体構成を示すブロック図である。
【図２】システムＬＳＩに内蔵されたアドレス変換バッファとその周辺の構成を示すブロック図である。
【図３】アドレス変換バッファのＴＡＧ記憶部とデータ記憶部の一部のメモリ構成を示す回路図である。
【図４】図２のクロックイネーブル生成回路の一部を構成する回路図である。
【図５】図５（ａ）は、ステータスレジスタのバリッドビットの値に応じてアドレス変換バッファが動的に停止制御される状態を説明するタイムチャート、図５（ｂ）はキャッシュストール信号によりアドレス変換バッファが動的に停止制御される状態を説明するタイムチャート、図５（ｃ）はメモリアクセスされるアドレスに応じてアドレス変換バッファが動的に停止制御される状態を説明するタイムチャートである。
【図６】図１のプロセッサコアにより命令を実行処理する過程を説明する図を示す。
【図７】ＶＬＩＷの圧縮命令のデータ構造を示す図である。
【図８】図１のプロセッサコアのパイプライン処理の内容を示す図である。
【図９】ＮＯＰ命令に係る処理停止により得られる消費電力の削減割合を表わすグラフである。
【図１０】図１０（ａ）は実施例のプロセッサコアにおいてデコード回路と実行回路とを停止させる制御がプロセッサの動作周波数に与える影響を説明する図、図１０（ｂ）は伸長処理の後にＮＯＰ命令を検出する比較例においてデコード回路と実行回路とを停止させる制御がプロセッサの動作周波数に与える影響を説明する図を行う場合のものである。
【符号の説明】
２０　　プロセッサコア
２１　　命令ユニット
２２　　命令デコーダ
２３　　実行ユニット
２４　　Ｉキャッシュ
２５　　Ｄキャッシュ
６０　　ＤＭＡコントローラ
１００　アドレス変換バッファ
１１０　ＴＬＢ主要部
１１１　タグ記憶部
１１２　データ記憶部
１１３　ゲーテッドクロック回路
１２０　出力レジスタ
１３０　バイパス回路
１４０　クロックイネーブル生成回路
１４３　レジスタ
１４５，１４６Ａ，１４６Ｂ　比較器
１４７　論理ゲート
１５０　ステータスレジスタ
２１０　命令伸長回路
２１１　命令バッファ
２１３　命令位置情報デコーダ
２１４　展開バッファ
２２０〜２２３　デコード回路
２２５〜２２８　ゲーテッドクロック回路
２３０〜２３３　実行回路
２３５〜２３８　フリップフロップ
【図１】
2004062280.tif 000003
【図２】
2004062280.tif 000004
【図３】
2004062280.tif 000005
【図４】
2004062280.tif 000006
【図５】
2004062280.tif 000007
【図６】
2004062280.tif 000008
【図７】
2004062280.tif 000009
【図８】
2004062280.tif 000010
【図９】
2004062280.tif 000011
【図１０】
2004062280.tif 000012