(57)【要約】【課題】高性能かつ低消費電力のＶＬＩＷを処理するための情報処理装置を提供すること。【解決手段】ＶＬＩＷを処理するための情報処理装置は、複数のメモリバンクと、プログラムカウンタと、メモリバンク制御装置と、命令デコーダと、演算装置を備える。複数のメモリバンクは、超長命令を構成する命令語群を格納する。プログラムカウンタは、次サイクルの超長命令の先頭部分が格納されている先頭メモリバンクを指す命令アドレスを出力する。メモリバンク制御装置は、超長命令に対する前述の命令アドレスと、超長命令と関連するメモリバンク数の情報から、次サイクルで使われる使用メモリバンクと次サイクルで使われない不使用メモリバンクを特定し、次サイクルで使われない不使用メモリバンクの動作を制御する。命令デコータは、次サイクルで使われる使用メモリバンクからフェッチされる超長命令をデコードする。演算装置は、デコードされた超長命令を実行する。【選択図】図２
2010055550.tif 000002
【特許請求の範囲】
【請求項１】
超長命令を構成する命令語群を格納する複数のメモリバンクと、
次サイクルの前記超長命令の先頭部分が格納されている先頭メモリバンクを指す命令アドレスを出力するプログラムカウンタと、
前記超長命令に対する前記命令アドレスと、前記超長命令と関連するメモリバンク数から、次サイクルで使われる使用メモリバンクと次サイクルで使われない不使用メモリバンクを特定し、前記不使用メモリバンクの動作制御を行うメモリバンク制御装置と、
前記使用メモリバンクからフェッチされる前記超長命令をデコードする命令デコータと、
デコードされた前記超長命令を実行する演算装置と
を具備する情報処理装置。
【請求項２】
請求項１に記載された情報処理装置において、
前記超長命令は可変長であり、前記超長命令を構成する命令語群は、連続したメモリバンクに保管される、
情報処理装置。
【請求項３】
請求項１に記載された情報処理装置において、
次サイクルでフェッチされる超長命令と関連するメモリバンク数を前記プログラムカウンタから供給されるプログラムカウンタ値に加算して、次次サイクルの超長命令に対する前記命令アドレスを生成し、前記プログラムカウンタを更新する、
情報処理装置。
【請求項４】
請求項１〜３のいずれか１項に記載の情報処理装置であって、
前記メモリバンク制御装置は、前記不使用メモリバンクが無効になるように制御する、
情報処理装置。
【請求項５】
請求項１〜３のいずれか１項に記載の情報処理装置であって、
前記メモリバンク制御装置は、前記不使用メモリバンクが不活性化するまで、前記不使用メモリバンクに供給される電源電圧を下げる、
情報処理装置。
【請求項６】
請求項１〜３のいずれか１項に記載の情報処理装置であって、
前記メモリバンク制御装置は、前記不使用メモリバンクが不活性化するまで、前記不使用メモリバンクを構成するメモリセルの閾値電圧を上げる、
情報処理装置。
【請求項７】
請求項１〜６のいずれか１項に記載の情報処理装置であって、
前記メモリバンク数の情報は、記憶装置に格納されている、
情報処理装置。
【請求項８】
請求項１〜６のいずれか１項に記載の情報処理装置であって、
前記メモリバンク数の情報は、前サイクルにフェッチされた超長命令の中に格納されている、
情報処理装置。
【請求項９】
次サイクルの超長命令を構成する命令語群の先頭部分が格納されている先頭メモリバンクを指す命令アドレスを出力するステップと、
前記超長命令に対する前記命令アドレスと、前記超長命令と関連するメモリバンク数とに基づいて、次サイクルで使われる使用メモリバンクと次サイクルで使われない不使用メモリバンクを特定するステップと、
前記不使用メモリバンクの動作を制御するステップと、
前記使用メモリバンクから、次サイクルの前記超長命令をフェッチするステップと、
前記超長命令をデコードするステップと、
デコードされた前記超長命令を実行するステップと
を具備する情報処理方法。
【請求項１０】
請求項９において、
前記超長命令は可変長であり、前記超長命令を構成する命令語群は、連続したメモリバンクに格納されている
情報処理方法。
【請求項１１】
請求項９において、
前記命令アドレスを出力するステップは、
前サイクルでフェッチされた超長命令と関連するメモリバンク数を前記プログラムカウンタから供給されるプログラムカウンタ値に加算して、次次サイクルの超長命令に対する前記命令アドレスを生成するステップ
を具備する情報処理方法。
【請求項１２】
請求項９〜１１のいずれか１項に記載の情報処理方法であって、
前記次サイクルの前記超長命令に対する前記不使用メモリバンクを無効化するステップを更に具備する
情報処理方法。
【請求項１３】
請求項９〜１１のいずれか１項に記載の情報処理方法であって、
前記不使用メモリバンクが不活性化するまで、前記不使用メモリバンクに供給される電源電圧を下げるステップを更に具備する
情報処理方法。
【請求項１４】
請求項９〜１１のいずれか１項に記載の情報処理方法であって、
前記不使用メモリバンクが不活性化するまで、前記不使用メモリバンクを構成するメモリセルの閾値電圧を上げるステップを更に具備する
情報処理方法。
【請求項１５】
請求項９〜１４のいずれか１項に記載の情報処理方法であって、
前記メモリバンク数は、記憶装置に格納されている
情報処理方法。
【請求項１６】
請求項９〜１４のいずれか１項に記載の情報処理方法であって、
前記メモリバンク数は、前サイクルにフェッチされた超長命令の中に格納されている
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および情報処理方法に関する。特に、Ｖｅｒｙ  Ｌｏｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｗｏｒｄ（超長命令語）を処理するための情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
プロセッサの高速化技術の一つにスーパースカラー技術がある。スーパースカラー技術は、ハードウェアがプログラムの命令にある並列性を自動的に検知して、できる限り複数のパイプライン処理を並行的に実行できるようにすることでスループットを向上させる手法である。しかし、スーパースカラー技術は、プログラム中の命令をいくつか同時に読み込んで、その中から同時に処理してよい命令を自動的に抽出する回路が入っているため、回路が複雑化する。また、スーパースカラー技術は、システムが高性能になる分、チップの回路規模が大きくなり、消費電力が高くなる。
【０００３】
一方で、Ｖｅｒｙ  Ｌｏｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｗｏｒｄ（以下、ＶＬＩＷ）技術は、同じくプロセッサの高速化技術の一つであるが、プログラムの命令の並列性の検出を、ハードウェアに頼らずにコンパイル時に先に行うという発想の手法である。よって、ＶＬＩＷ技術は、ハードウェアの単純化を可能にし、キャッシュの大容量化やクロック周波数の向上も容易にする。また、ＶＬＩＷ技術を採用したＶＬＩＷプロセッサは、読みこんだ命令をそのまま処理すればいいので、スーパースカラー技術では必要だった同時処理可能な命令の抽出回路を不要とする。従って、ＶＬＩＷプロセッサのハードウェアは複雑にならずに済むため、ＶＬＩＷプロセッサは低消費電力型組込みシステムに適している。
【０００４】
ＶＬＩＷプロセッサは、超長命令を構成する複数の命令語（演算、ロードなど）を同時に実行する。また、ＶＬＩＷプロセッサは、同時実行する命令語の抽出処理が、コンパイルによる１度だけの処理で済むので、並列処理に伴うオーバーヘッドが非常に小さい。
【０００５】
一方で、ＶＬＩＷプロセッサは、同時に実行できる命令語数が最大同時実行可能命令語数に満たない場合には、超長命令中に無効演算命令語を挿入する必要があるため、命令コード密度が低下してしまう、という課題があった。特開２００４−０７８６２７号公報（特許文献１参照）は、図１に示されるように、命令語群Ｉｋ（ｋ≧１）で構成される超長命令Ｐにおいて、命令語毎に後続する命令語を同時に実行するか否かを示唆する連続命令指示ビットαを付加することにより、超長命令Ｐを構成する命令語数を判別可能とし、可変長の超長命令Ｐを実現している。これにより、超長命令Ｐ中から不要な無効演算命令語を除外し、命令コード密度の低下を防いでいる。
【０００６】
【特許文献１】特開２００４−０７８６２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特開２００４−０７８６２７号公報（特許文献１参照）に記載されたＶＬＩＷ命令用の情報処理装置は、超長命令に含まれる連続命令指示ビットに従って、超長命令に含まれる命令語数を判断する。このため、特開２００４−０７８６２７号公報（特許文献１参照）に記載されたＶＬＩＷ命令用情報処理装置は、必ず最大同時実行可能命令語数と同数の命令語をフェッチし、その全ての命令語に付加された連続命令指示ビットを確認する必要がある。このため、特開２００４−０７８６２７号公報（特許文献１参照）に記載されたＶＬＩＷ命令用情報処理装置は、同時に実行する命令語数が最大同時実行可能命令語数に満たない場合には、不要な命令語もフェッチする。また、一般的なＶＬＩＷプロセッサにおいて、同時に実行される命令語数の平均は、最大同時実行可能命令語数の半分程度である。従って、特開２００４−０７８６２７号公報（特許文献１参照）に記載されたＶＬＩＷ命令用情報処理装置で実行される超長命令のフェッチの約半数が不要な動作となり、無駄な電力を消費する原因となる。
【０００８】
本発明の目的は、次サイクルの前記超長命令の先頭部分が格納されている先頭メモリバンクを指す命令アドレスと、次サイクルの超長命令を構成する命令語群が格納されているメモリバンク数から、次サイクルで使われる使用メモリバンクと次サイクルで使われない不使用メモリバンクを特定する情報処理装置および情報処理方法を提供することである。
本発明の別の目的は、前述の方法によって特定された不使用メモリバンクを制御し、不要な命令語をメモリバンクからフェッチすることを抑制するプロセッサ用の情報処理装置および情報処理方法を提供することである。
【課題を解決するための手段】
【０００９】
本発明の第１の観点において、ＶＬＩＷを処理するための情報処理装置が提供される。情報処理装置は、複数のメモリバンクと、プログラムカウンタと、メモリバンク制御装置と、命令デコーダと、演算装置を備える。複数のメモリバンクは、超長命令を構成する命令語群を格納する。プログラムカウンタは、次サイクルの超長命令の先頭部分が格納されている先頭メモリバンクを指す命令アドレスを出力する。メモリバンク制御装置は、超長命令に対する前述の命令アドレスと、超長命令と関連するメモリバンク数の情報から、次サイクルで使われる使用メモリバンクと次サイクルで使われない不使用メモリバンクを特定し、次サイクルで使われない不使用メモリバンクの動作を制御する。命令デコータは、次サイクルで使われる使用メモリバンクからフェッチされる超長命令をデコードする。演算装置は、デコードされた超長命令を実行する。
【００１０】
本発明の第２の観点において、ＶＬＩＷを処理するための情報処理方法が提供される。情報処理方法は、次サイクルの超長命令の先頭部分が格納されている先頭メモリバンクを指す命令アドレスを出力するステップと、超長命令に対する前述の命令アドレスと、その超長命令と関連するメモリバンク数とに基づいて、次サイクルで使われる使用メモリバンクと次サイクルで使われない不使用メモリバンクを特定するステップと、次サイクルで使われない不使用メモリバンクの動作を制御するステップと、次サイクルで使われる使用メモリバンクから次サイクルの超長命令をフェッチするステップと、超長命令をデコードするステップと、デコードされた超長命令を実行するステップを含む。
【発明の効果】
【００１１】
本発明によれば、次サイクルで使われない不使用メモリバンクを制御し、不要な命令語をメモリバンクからフェッチすることを抑制する情報処理装置を提供することが可能となる。これにより、高性能かつ低消費電力のＶＬＩＷを処理するための情報処理装置を提供することが可能となる。
【発明を実施するための最良の形態】
【００１２】
本発明による情報処理装置の実施の形態を、ＶＬＩＷ命令用情報処理装置の場合を例にとり、添付図面を参照して説明する。
【００１３】
本発明の実施の形態にかかる情報処理装置を情報処理装置Ｄとすると、図２に示されるように、情報処理装置Ｄは、キャッシュメモリ１、プログラムカウンタ２、メモリバンク制御装置３、命令デコーダ４、演算装置５、レジスタ装置６を備える。キャッシュメモリ１は、ｍ個のメモリバンクＭＢｍ（ｍ≧０）を備え、メモリバンクＭＢｍ（ｍ≧０）内のデータ管理およびキャッシュ制御を行う。メモリバンクＭＢｍ（ｍ≧０）は、ＳＤＲＡＭやＭＲＡＭのメモリセルで構成される実装が考えられる。また、メモリバンクＭＢｍ（ｍ≧０）は、作動している時と無効になっている時（あるいは停止している時）の消費電力に約１０倍の差があるＳＲＡＭのメモリセルで構成されていると、なお好ましい。一方で、メモリバンクＭＢｍ（ｍ≧０）には、制御端子ＴＡｍ（ｍ≧０）が付加されている。メモリバンク制御装置３は、制御バス１０を介してチップイネーブル(Ｃｈｉｐ  Ｅｎａｂｌｅ：ＣＥ)信号を制御端子ＴＡｍ（ｍ≧０）に送り、メモリバンクＭＢｍ（ｍ≧０）の動作を制御する。
【００１４】
ここで、命令語群Ｊｋ（ｋ≧１）で構成される次サイクルＮの超長命令ＱＮを図３に示す。
メモリバンク制御装置３は、次サイクルＮの超長命令ＱＮの先頭部分が格納されている先頭メモリバンクＭＢｔを指す命令アドレスＡＮと、命令語群Ｊｋ（ｋ≧１）が格納されているメモリバンク数ＸＮから、次サイクルＮに使われるメモリバンクＭＢｙｅｓ、そして次サイクルで使われないメモリバンクＭＢｎｏを特定する。ここで、先頭メモリバンクＭＢｔは、具体的には命令アドレス内のβｂｉｔで定められる。βｂｉｔは命令アドレスＡＮ中の任意の位置のビットでよいが、一般的には、命令アドレスＡＮの下位βｂｉｔが用いられる。
【００１５】
超長命令ＱＮを構成する命令語群Ｊｋ（ｋ≧１）は、メモリバンクＭＢｍ（ｍ≧０）にランダムに格納されていてもよいが、一般的に情報処理装置自体のコストが大きくなる。従って、情報処理装置Ｄにおいては、超長命令ＱＮを構成する命令語群Ｊｋ（ｋ≧１）は連続したメモリバンクＭＢｍ（ｍ≧０）に格納されているものとする。
【００１６】
以上より、情報処理装置Ｄは、演算装置５が同時に実行する命令語数が最大同時実行可能命令数に満たない場合には、次サイクルＮの超長命令ＱＮを構成する命令語群Ｊｋ（ｋ≧１）が格納されている使用メモリバンクＭＢｙｅｓのみをアクセスすればよいことになる。換言すると、情報処理装置Ｄは、次サイクルＮで使われない命令語群Ｊｋ（ｋ≧１）が格納されている不使用メモリバンクＭＢｎｏから、次サイクルＮで不要となる命令語群Ｊｋ（ｋ≧１）をフェッチする必要がなくなる。本発明においては、メモリバンク制御装置３が、制御バス１０を介して、次サイクルＮで使われない命令語群Ｊｋ（ｋ≧１）が格納されているメモリバンクＭＢｎｏにフラグを立てる制御信号を送る。従って、情報処理装置Ｄは、メモリバンクＭＢｍ（ｍ≧０）をスキャン後に、フラグの立てられていない使用メモリバンクＭＢｙｅｓからのみ命令語をフェッチすることが可能となる。メモリバンクＭＢｍ（ｍ≧０）内にデータを保持するのにメモリバンクＭＢｍ（ｍ≧０）が消費する電力と比べて、メモリバンクＭＢｍ（ｍ≧０）からデータをフェッチするのにメモリバンクＭＢｍ（ｍ≧０）が消費する電力の方が大きいことが一般的に良く知られている。従って、フラグの立てられていない使用メモリバンクＭＢｙｅｓからのみ命令語をフェッチすることにより、フェッチに費やされる消費電力が低減され、メモリバンクＭＢｍ（ｍ≧０）全体の消費電力が削減される効果が期待できる。
【００１７】
具体的には、メモリバンク制御装置３が、次サイクルＮで不要となる命令語群Ｊｋ（ｋ≧１）の格納されているメモリバンクＭＢｎｏを省電力制御する実装が考えられる。つまり、メモリバンク制御装置３は、次サイクルＮに使われない命令語群Ｊｋ（ｋ≧１）を格納しているメモリバンクＭＢｎｏの制御端子ＴＡｍ（ｍ≧０）にチップイネーブル(Ｃｈｉｐ  Ｅｎａｂｌｅ：ＣＥ)信号を送って、当該メモリバンクＭＢｎｏを無効にする（または停止させる）。無効になっている（または停止している）メモリバンクＭＢｎｏには電力が供給される必要がなくなる。従って、情報処理装置Ｄは、次サイクルＮに使われる使用メモリバンクＭＢｙｅｓからのみ命令語群Ｊｋ（ｋ≧１）をフェッチすればよく、消費電力を抑制低減できる。実際には、作動させる使用メモリバンクＭＢｙｅｓと作動させない不使用メモリバンクＭＢｎｏとの電力消費量差は約１０倍ある。なお、この場合、情報処理装置Ｄは、メモリバンクＭＢｍ（ｍ≧０）から命令語群Ｊｋ（ｋ≧１）をフェッチするのに必要な電力が供給されずに作動しない不使用メモリバンクＭＢｎｏを気遣う必要がなくなる。
【００１８】
プログラムカウンタ２は、超長命令ＱＮの先頭部分が格納されている先頭メモリバンクＭＢｔを指す命令アドレスＡＮを出力する。詳述すると、プログラムカウンタ２が、命令アドレスＡＮを保持し、情報処理装置Ｄは、アドレスバス１００を介して、命令アドレスＡＮに基づいたキャッシュメモリ１内のメモリバンクＭＢｍ（ｍ≧０）をポイントする。一方で、情報処理装置Ｄは、次サイクルＮでフェッチされる超長命令ＱＮの格納されているメモリバンク数ＸＮをプログラムカウンタ２から供給されるプログラムカウンタ値に加算して、次々サイクルＮ＋１の超長命令ＱＮ＋１に対する命令アドレスＡＮ＋１を生成し、プログラムカウンタ値を更新する。命令デコータ４は、命令バス２００を介してメモリバンクＭＢｍ（ｍ≧０）からフェッチされる超長命令ＱＮをデコードする。また、命令デコータ４は、デコードした超長命令ＱＮの内容に応じた制御信号を、制御バス２０を介して演算装置５に伝える。演算装置５は、デコードされた超長命令ＱＮを実行する。レジスタ装置６は、メモリバンクＭＢｍ（ｍ≧０）から供給された命令に従い、演算装置５へオペランドを供給したり、演算装置５の演算結果を格納したり、命令の実行状態の保存などを行う。
【００１９】
情報処理装置Ｄは、図２に示されるように、別途主記憶装置７を備えることが好ましい。主記憶装置７は、プログラムメモリ７−１とデータメモリ７−２を含む。プログラムメモリ７−１は、情報処理装置Ｄが実行するアプリケーションプログラムを格納する。データメモリ７−２は、情報処理装置Ｄが演算処理を行う際に必要なデータを格納する。ここでは、主記憶装置７は情報処理装置Ｄの内部に位置する部分として記載されているが、主記憶装置７の構成は、必ずしもこれに従うものではない。
【００２０】
次に、次サイクルＮでフェッチされる超長命令ＱＮの格納されているメモリバンク数ＸＮの情報の格納場所に関して説明する。図４に示されるように、メモリバンク数ＸＮの情報を命令語群Ｊｋ（ｋ≧１）で構成される前サイクルの超長命令ＱＮ−１の中に格納する実装が考えられる。ただし、最初の超長命令Ｑ１を構成する命令語群Ｊｋ（ｋ≧１）が格納されているメモリバンク数Ｘ１の情報は不明である。従って、あらかじめ固定の値がメモリバンク数Ｘ１の情報として用いられる必要がある。具体的には、固定値のメモリバンク数Ｘ１の情報が、情報処理装置Ｄの外部からの制御信号やレジスタの値を操作する命令によって、レジスタ装置６の中に設定される実装が考えられる。
【００２１】
続いて、本発明の実施の形態にかかる情報処理方法を、図５を参照しながら説明する。簡単のため、クロックサイクルＮ、Ｎ＋１、Ｎ＋２，Ｎ＋３において、メモリバンクの総数＝４（ＭＢ０、ＭＢ１、ＭＢ２、ＭＢ３）、つまり、１サイクルに最大４命令語をフェッチすることが可能である場合を考える。ここで、ＸＮ＝２、ＸＮ＋１＝１、ＸＮ＋２＝４、ＸＮ＋３＝３とする。メモリバンクＭＢｍ（ｍ≧０）の数え方は任意であるが、一般的には、時計回りの一方向に隣接するメモリバンクを連続して数え、ＭＢ０、ＭＢ１、ＭＢ２、ＭＢ３は連続したメモリバンクである。
【００２２】
図５と平行して図６と図７も参照する。図６は、メモリバンク制御装置３が制御バス１０を介してメモリバンクＭＢ０、ＭＢ１、ＭＢ２、ＭＢ３に発信する制御信号の発信結果を示す。一方で、メモリバンク制御装置３がメモリバンクＭＢ０、ＭＢ１、ＭＢ２、ＭＢ３それぞれのメモリバンクを無効にする（もしくは停止させる）信号を送った時のメモリバンクＭＢ０、ＭＢ１、ＭＢ２、ＭＢ３のステータスをそれぞれＳ−ＭＢ０、Ｓ−ＭＢ１、Ｓ−ＭＢ２、Ｓ−ＭＢ３とする。ステータスＳ−ＭＢ０〜Ｓ−ＭＢ３がＬｏｗ（０）である場合には、次のクロック立ち上がりエッジで各メモリバンクからの命令フェッチが行われ、ステータスＳ−ＭＢ０〜Ｓ−ＭＢ３がＨｉｇｈ（１）である場合には、各メモリバンクからの命令フェッチが行なわれない。図７は、各種信号線のタイムチャートを示す。図７は、各種信号線のタイムチャートを示す。ただし、情報処理装置Ｄの全体がクロック信号ＣＬＫに同期して動作するものとする。
【００２３】
まず、情報処理装置Ｄが、クロック信号ＣＬＫの立ち上がりに同期して、フェッチされる前サイクルＮ−１の超長命令ＱＮ−１を格納するメモリバンク数ＸＮ−１の情報をプログラムカウンタ２から供給されるプログラムカウンタ値に加算して、次サイクルＮの超長命令ＱＮに対する命令アドレスＡＮを生成し、クロック信号ＣＬＫの立ち上がりに同期して、当該命令アドレスＡＮをプログラムカウンタ２に格納する（図５ステップＳ１００）。
【００２４】
同時に、情報処理装置Ｄが、クロック信号ＣＬＫの立ち上がりに同期して、フェッチされる前サイクルＮ−１の超長命令ＱＮ−１から、次サイクルＮの超長命令ＱＮを格納するメモリバンク数ＸＮの情報（ここではＸＮ＝２）を取得する（図５ステップＳ１０１）。
【００２５】
以上、ステップＳ１００とステップＳ１０１の処理は、図７の前サイクルＮ−１と次サイクルＮの間のクロック信号ＣＬＫの立ち上がりＹ１のタイミングで実施される。
【００２６】
プログラムカウンタ２は、命令アドレスＡＮをメモリバンク制御装置３に送り、メモリバンク制御装置３は、送られた命令アドレスＡＮ内の下位２ｂｉｔから、次サイクルＮの超長命令ＱＮの先頭部分がメモリバンクＭＢ０に格納されていることを特定する（図５ステップＳ１０２）。
【００２７】
命令デコータ４は、データバス３００を介して、次サイクルＮのメモリバンク数ＸＮの情報（ここではＸＮ＝２）をメモリバンク制御装置３に送り、メモリバンク制御装置３は、送られた次サイクルＮのメモリバンク数ＸＮの情報（ここではＸＮ＝２）から、メモリバンクＭＢ０から時計方向に数えて２個目にあたるメモリバンクＭＢ１までが、次サイクルＮで使われる使用メモリバンクＭＢｙｅｓであると特定する（図５ステップＳ１０３）。次サイクルＮで使われる使用メモリバンクＭＢｙｅｓ、つまり、次サイクルＮの超長命令ＱＮを格納しているメモリバンクＭＢ０、ＭＢ１は、図６では“作動”というステータスで表されている。
【００２８】
続いて、メモリバンク制御装置３は、メモリバンクＭＢ０からメモリバンクＭＢ１までに格納されている命令語群Ｊｋ（ｋ≧１）が次サイクルＮに使われるという情報を反転させて、メモリバンクＭＢ２からメモリバンクＭＢ３までが、次サイクルＮで使われない不使用メモリバンクＭＢｎｏであると特定する（図５ステップＳ１０４）。次サイクルＮで使われない不使用メモリバンクＭＢｎｏ、つまり、次サイクルＮの超長命令ＱＮを格納していないメモリバンクＭＢ２、ＭＢ３は、図６では“停止”というステータスで表されている。
【００２９】
さらに、メモリバンク制御装置３は、制御バス１０を介して、メモリバンクＭＢ２の制御端子ＴＡ２からメモリバンクＭＢ３の制御端子ＴＡ３までにチップイネーブル(Ｃｈｉｐ  Ｅｎａｂｌｅ：ＣＥ)信号を送り、メモリバンクＭＢ２からメモリバンクＭＢ３までのメモリバンクが無効になる（もしくは停止する）ように制御する（図５ステップＳ１０５）。
【００３０】
ステップＳ１０２〜ステップＳ１０５の処理は、図７の次サイクルＮのＹ２のタイミングで実施される。図７の次サイクルＮのＹ２以降において、Ｓ−ＭＢ０、Ｓ−ＭＢ１は、それぞれ信号がＬｏｗ（０）となっていることから、メモリバンクＭＢ０、ＭＢ１は次サイクルＮと次次サイクルＮ＋１の間のクロック立ち上がり（図７のＹ３）で作動する。つまり、図７は、当該クロック立ち上がりで、メモリバンクＭＢ０、ＭＢ１が使われることを示している。一方で、Ｓ−ＭＢ２、Ｓ−ＭＢ３は、それぞれ信号がＨｉｇｈ（１）となっていることから、ＭＢ２、ＭＢ３は、次サイクルＮと次次サイクルＮ＋１の間のクロック立ち上がり（図７のＹ３）で停止する。つまり、図７は、当該クロック立ち上がりで、メモリバンクＭＢ２、ＭＢ３が使われないことを示している。
【００３１】
次に、情報処理装置Ｄが、メモリバンクＭＢ０、メモリバンクＭＢ１に格納された命令語群Ｊｋ（ｋ≧１）で構成される超長命令ＱＮをフェッチする（図５ステップＳ１０６）。
【００３２】
以上、ステップＳ１０６の処理は、次の立ち上がりクロックエッジである図７の次サイクルＮと次々サイクルＮ＋１の間のＹ３のタイミングにおいて実施される。
【００３３】
命令デコーダ４は、フェッチされた超長命令ＱＮをデコードする（図５ステップＳ１０７）。
【００３４】
最後に、演算装置５は、デコードされた超長命令ＱＮを実行する（図５ステップＳ１０８）。
【００３５】
サイクルＮ＋１〜サイクルＮ＋３についても同様である。
【００３６】
メモリバンクの総数＝４（ＭＢ０、ＭＢ１、ＭＢ２、ＭＢ３）の例において、ＶＬＩＷを処理するための従来の情報処理装置は、毎サイクルとも４命令語全てをフェッチする必要がある。つまり、任意の４サイクルＮ〜Ｎ＋３において、４×４＝１６個のメモリバンクが作動する。
【００３７】
一方で、本発明の実施の形態にかかる情報処理装置Ｄは、任意の４サイクルＮ〜Ｎ＋３において、それぞれ２、１、４、３の命令語数をフェッチすればよい。つまり、任意の４サイクルＮ〜Ｎ＋３において、２＋１＋４＋３＝１０個のメモリバンクが作動する。よって、本発明の実施の形態にかかる情報処理装置Ｄが作動させるメモリバンク数は、ＶＬＩＷを処理するための従来の情報処理装置が作動させるメモリバンク数と比較して、１０／１６に抑制することが可能となる。ここで、消費電力は作動するメモリバンク数に比例する。従って、本発明の実施の形態にかかる情報処理装置Ｄのメモリバンクの消費電力は、ＶＬＩＷを処理するための従来の情報処理装置のメモリバンクの消費電力と比較して、１０／１６に低減される。
【００３８】
ここで、メモリバンク制御装置３の別の実施の形態を説明する。先に説明したメモリバンク制御装置３は、チップイネーブル(Ｃｈｉｐ  Ｅｎａｂｌｅ：ＣＥ)信号を制御端子ＴＡｍ（ｍ≧０）に送り、メモリバンクＭＢｍ（ｍ≧０）の動作を制御するものであった。これをメモリバンク制御装置３の第１の実施の形態とする。
【００３９】
メモリバンク制御装置３の第２の実施の形態として、次サイクルＮに使われない不使用メモリバンクＭＢｎｏへ供給する電源電圧を下げる機能をもつメモリバンク制御装置３の実装が考えられる。メモリバンクＭＢｍ（ｍ≧０）を構成するメモリセルの動作速度は、供給電圧と閾値電圧の差分に比例する。そのため、メモリセルを高速で作動させるには、メモリセルへの供給電圧を引き上げてその差分を一定値以上にする必要がある。一方で、次サイクルＮに使われない不使用メモリバンクＭＢｎｏを構成するメモリセルは、所望の動作速度で作動させる必要がない。このため、メモリバンク制御装置３は、当該メモリセルへ供給する電圧を引き下げることにより、作動させる必要のない不使用メモリバンクＭＢｎｏを不活性化させることが可能となる。メモリセルの消費電力は、動作電圧に比例するため、その動作電圧を下げることにより、メモリバンク制御装置３は、メモリバンク全体の消費電力を抑制低減できる。
【００４０】
メモリバンク制御装置３の第３の実施の形態として、次サイクルＮに使われない不使用メモリバンクＭＢｎｏを構成するメモリセルの閾値電圧を上げる機能をもつメモリバンク制御装置３の実装が考えられる。今日、メモリバンク素子自体の微細化技術の発展により、絶縁破壊電圧が低下し、それに伴い、メモリセルへの供給電圧も引き下げられている。また、供給電圧と閾値電圧の差分を一定値以上に確保するために閾値電圧が引き下げられている。しかし、閾値電圧の引き下げは、リーク電流と呼ばれる無駄な消費電力の増加を招く。そこで、メモリバンク制御装置３は、次サイクルＮに使われない不使用メモリバンクＭＢｎｏの閾値電圧を引き上げることにより、作動させる必要のない不使用メモリバンクＭＢｎｏを不活性化させることが可能となる。このため、メモリバンク制御装置３は、当該メモリセルへ供給する 閾値電圧を引き上げることにより、作動させる必要のない不使用メモリバンクＭＢｎｏを不活性化させることが可能となる。リーク電流の量は、閾値電圧に反比例するため、閾値電圧を引き上げることにより、メモリバンク制御装置３は、メモリバンクＭＢｍ（ｍ≧０）全体の消費電力を抑制低減できる。
【００４１】
以上、メモリバンク制御装置３の実施に形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。例えば、メモリバンク制御装置３が、制御端子ＴＡｍ（ｍ≧０）を経由してメモリバンクＭＢｍ（ｍ≧０）を直接制御するのではなく、個々のメモリバンクＭＢｍ（ｍ≧０）自身が、メモリバンク制御装置３から送られた制御信号を受けて制御端子ＴＡｍ（ｍ≧０）を操作してもよい。
【００４２】
ここで、メモリバンク数ＸＮの情報の別の格納場所に関して説明する。先に説明したメモリバンク数ＸＮの情報の格納場所は、メモリバンク数ＸＮの情報を前サイクルの超長命令ＱＮ−１の中に格納するものであった。これをメモリバンク数ＸＮの情報の格納場所の第１の実施の形態とする。
【００４３】
メモリバンク数ＸＮの情報の格納場所の第２の実施の形態として、メモリバンク数ＸＮの情報を記憶装置に格納する実装が考えられる。メモリバンク数ＸＮの格納場所である記憶装置の例として代表的な例はメモリバンク数保管専用メモリである。メモリバンク数保管専用メモリが主記憶装置７内に用意されていてもよい。メモリバンク数ＸＮの情報の格納場所である記憶装置の別の例として、キャッシュメモリ１が考えられる。この場合、ハードウェアコストを抑えることが可能となる。メモリバンク数ＸＮの情報の格納場所である記憶装置のさらに別の例として、メモリバンク数ＸＮが、レジスタ装置６の中に、情報処理装置Ｄの外部からの制御信号や、レジスタの値を操作する命令によって設定される実装が考えられる。
【００４４】
超長命令ＱＮに分岐命令が含まれる場合には、分岐成立と分岐不成立時の２パターンに対応するメモリバンク数ＸＮの情報を用意する必要がある。つまり、分岐成立・分岐不成立の２つのメモリバンク数ＸＮの情報を前サイクルの超長命令ＱＮ−１の一部とする実装が考えられる。従って、分岐命令がフェッチされた次の命令のフェッチの際には、分岐不成立時のメモリバンク数ＸＮの情報が用いられ、分岐命令の分岐が成立した場合には、分岐成立時のメモリバンク数ＸＮの情報が用いられる実装が考えられる。また、分岐成立・分岐不成立時の２つのメモリバンク数ＸＮの情報の一方を固定の値とし、もう一方のみを前サイクルの超長命令ＱＮ−１の一部とする実装も考えられる。その個定の値は、情報処理装置Ｄの外部からの制御信号や、その個定の値を操作する命令によって設定できる実装であってもよい。
【００４５】
以上、メモリバンク数ＸＮの情報の格納場所に関する実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
【００４６】
本発明の実施の形態にかかる情報処理装置Ｄは、メモリバンク制御装置３のいずれかの実施の形態と、メモリバンク数ＸＮの情報の格納場所の実施の形態のいずれか、との順列組合せで実現できる。
【００４７】
近年、従来のプロセッサよりも高い性能を備えたプロセッサの実現を目指して、可変長命令を構成する命令語の数が増える傾向にある。一方で、携帯電話を始めとするモバイル機器の普及に伴って、高性能のみならず、低消費電力を実現するプロセッサのニーズが高くなっている。本発明にかかる情報処理装置は、可変長命令という高密度性を保ち、かつ不要なデータをフェッチせずに低消費電力となる、コストパフォーマンスの良いプロセッサ用の情報処理の実現を可能とする。具体的には、本発明による情報処理装置は、次サイクルに使われない命令語の格納されているメモリバンクを制御して、不要な命令語をメモリバンクからフェッチすることを抑制することにより、ＶＬＩＷを処理するなど高性能性を保ちつつ、かつ低消費電力の情報処理装置を提供することが可能となる。
【００４８】
また、今日の技術の発達により、プロセッサの開発者が、多くのデータをフェッチするコストに比べてＬＳＩなどの半導体集積回路のコストを無視できるようになってきている。従って、本発明によれば、高集積度のハードウェアへの組込み分野においても、高性能を維持しつつ不要なメモリ動作の排除による低消費電力を可能とする情報処理装置が低コストで提供される。
【図面の簡単な説明】
【００４９】
【図１】図１は、関連技術における超長命令の構成を示す図である。
【図２】図２は、本発明の実施形態を示す情報処理装置の構成図である。
【図３】図３は、本発明の超長命令の構成を示す図である。
【図４】図４は、本発明の実施形態を示す超長命令の構成を示す図である。
【図５】図５は、本発明の実施形態の動作を示すフローチャートである。
【図６】図６は、本発明の実施形態の実施結果を示す図である。
【図７】図７は、本発明の実施形態の動作を示すタイムチャートである。
【符号の説明】
【００５０】
１        キャッシュメモリ
２        プログラムカウンタ
３        メモリバンク制御装置
４        命令デコーダ
５        演算装置
６        レジスタ装置
７        主記憶装置
７−１    プログラムメモリ
７−２    データメモリ
１０      制御バス
２０      制御バス
１００    アドレスバス
２００    命令バス
３００    データバス
ＡＮ（Ｎ≧１）    次サイクルＮの超長命令の格納されている先頭のメモリバンクを指す命令アドレス
ＣＬＫ    クロック信号
Ｄ        本発明の形態にかかる情報処理装置
ＭＢｍ（ｍ≧０）      メモリバンク
ＭＢｔ    先頭メモリバンク
ＭＢｙｅｓ  次サイクルで使われるメモリバンク
ＭＢｎｏ    次サイクルで使われないメモリバンク
Ｉｋ（ｋ≧１）        関連技術における超長命令を構成する命令語群
Ｊｋ（ｋ≧１）        本発明の超長命令を構成する命令語群
Ｎ        次サイクル
Ｐ        関連技術における超長命令
ＱＮ      次サイクルＮにフェッチされる本発明の超長命令
Ｓ−ＭＢ０  メモリバンクＭＢ０のステータス
Ｓ−ＭＢ１  メモリバンクＭＢ１のステータス
Ｓ−ＭＢ２  メモリバンクＭＢ２のステータス
Ｓ−ＭＢ３  メモリバンクＭＢ３のステータス
ＴＡｍ（ｍ≧０）      電力制御端子
ＸＮ      次サイクルＮの超長命令を格納するメモリバンク数
Ｙ        本発明の形態にかかる情報処理装置による処理のタイミング
α        連続命令指示ビット
β        超長命令内のビット
【図１】
2010055550.tif 000003
【図２】
2010055550.tif 000004
【図３】
2010055550.tif 000005
【図４】
2010055550.tif 000006
【図５】
2010055550.tif 000007
【図６】
2010055550.tif 000008
【図７】
2010055550.tif 000009