説明

演算処理装置

【課題】本発明は、命令キャッシュメモリからフェッチした、リピートブロック(反復実行する命令コード群)を含む命令コードを実行するマイクロプロセッサにおいて、プログラム中のリピートブロックを実行する場合に余計な電力の消費を抑制できるようにする。
【解決手段】たとえば、プログラム中のリピートブロックの実行時、リピートブロックの最初の反復により、リピートブロックの先頭にプログラム実行が戻るタイミングから、リピートバッファ14上にリピートブロックの先頭からの命令コードの格納を開始する。リピートバッファ14への命令コードの格納を終了した後は、リピートブロックの反復により、リピートブロックの先頭にプログラム実行が戻るたびに、命令フェッチユニット18にリピートバッファ14から命令コードを供給する構成とされている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、演算処理装置に関するもので、特に、命令キャッシュメモリからフェッチした、リピートブロック(反復実行する命令コード群)を含む命令コードを実行するマイクロプロセッサに関する。
【背景技術】
【0002】
命令キャッシュメモリからフェッチした命令コードを実行するプロセッサにおいては、プログラム中のリピートブロックを実行する場合がある。リピートブロックの実行に際しては、同じ命令コード群を繰り返し実行するにも関わらず、その都度、命令キャッシュメモリにアクセスし、命令コードをフェッチしていた。このため、命令キャッシュメモリにアクセスするたびに電力を消費するという問題があった。
【0003】
そこで、バッファを設けて命令キャッシュからの命令に関する情報を順次記憶させ、命令が命令ループに入ったことを検知した場合に、命令ループの命令をバッファから出力させるようにしたシステムも提案されている(たとえば、特許文献1参照)。
【0004】
しかしながら、この提案のような方式とした場合には、いくつかの問題点があった。たとえば、リピート命令の発行によって、バッファ内にリピートブロックの命令コードを格納する際に、命令デコーダのデコード結果にしたがってバッファを制御し、命令コードの格納を開始させるための制御回路が新たに必要となる。また、バッファ内のリピートブロックの命令コードとフェッチ対象の命令コードとの一致が確認された命令コードをバッファから出力させるためにはアドレス比較器が必要であり、命令コードをフェッチするたびに、フェッチした命令コードとバッファ内に格納されている命令コードとのアドレス比較を行わなければならず、余計に電力を消費する。
【0005】
特に、命令キャッシュメモリがセットアソシアティブ命令キャッシュの場合、バッファの境界と命令キャッシュメモリのライン境界とが一致していないと、バッファ内の命令コードの続きとなる命令コードがどのway(キャッシュデータRAM)に存在するのかが判断できないので、バッファ内の命令コードを使い果たした後には、すべてのwayにアクセスすることになり、余計な電力を消費する。
【0006】
上記したように、プログラム中のリピートブロックを実行する際に、バッファから命令コードを供給するようにして、命令キャッシュメモリへのアクセス数を減らすようにした従来方式においては、命令キャッシュメモリへのアクセスにともなう消費電力を抑えることが可能である。しかし、バッファに命令コードの格納を開始させるための制御回路、および、フェッチした命令コードとバッファ内に格納されている命令コードとのアドレス比較を行うためのアドレス比較器が必要であり、バッファ内の命令コードの続きとなる命令コードを読み出すために、すべてのwayにアクセスしなければならず、余計な電力を消費するという問題があった。
【特許文献1】特開平9−91136号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
本発明は、上記の問題点を解決すべくなされたもので、プログラム中のリピートブロックを実行する場合に、余計な電力の消費を抑えることが可能な演算処理装置を提供することを目的としている。
【課題を解決するための手段】
【0008】
本願発明の一態様によれば、主記憶装置からの複数の命令コードを取り込んで格納するキャッシュブロックと、前記キャッシュブロックにフェッチアクセスし、逐次、前記複数の命令コードを取り込んで実行する中央演算装置と、前記キャッシュブロックに格納された前記複数の命令コードのうち、処理プログラム中で反復実行されるリピートブロックの先頭の命令コードから、前記キャッシュブロックのライン構成によらず、バッファサイズ分の命令コード群を格納するリピートバッファと、前記リピートブロックの反復により、前記リピートバッファに格納された前記命令コード群を前記中央演算装置に供給するように制御する命令キャッシュ制御部とを具備したことを特徴とする演算処理装置が提供される。
【発明の効果】
【0009】
上記の構成により、プログラム中のリピートブロックを実行する場合に、余計な電力の消費を抑えることが可能な演算処理装置を提供できる。
【発明を実施するための最良の形態】
【0010】
以下、本発明の実施の形態について図面を参照して説明する。ただし、図面は模式的なものであり、各図面の寸法および比率などは現実のものとは異なることに留意すべきである。また、図面の相互間においても、互いの寸法の関係および/または比率が異なる部分が含まれていることは勿論である。特に、以下に示すいくつかの実施形態は、本発明の技術思想を具体化するための装置および方法を例示したものであって、構成部品の形状、構造、配置などによって、本発明の技術思想が特定されるものではない。この発明の技術思想は、その要旨を逸脱しない範囲において、種々の変更を加えることができる。
【0011】
[第1の実施形態]
図1は、本発明の第1の実施形態にしたがった演算処理装置(マイクロプロセッサ)の構成例を示すものである。ここでは、キャッシュブロックとしての命令キャッシュメモリからの命令コードを格納するための、リピートバッファを備えた命令キャッシュシステムを例に説明する。
【0012】
図1に示すように、この命令キャッシュシステム10は、命令キャッシュデータRAM11、命令キャッシュタグRAM12、命令キャッシュ制御部13、リピートバッファ14、エントリポインタ15、ウェイインジケータ16、タグ比較器17、プロセッサ内命令フェッチユニット(中央演算装置)18、および、選択回路19,20を備えている。
【0013】
命令キャッシュデータRAM11は、たとえば、2つのセットアソシアティブ命令キャッシュデータRAM(way−0,way−1)11a,11bを有して構成されている。これらキャッシュデータRAM11a,11bは、それぞれ、図示していない外部のメインメモリ(主記憶装置)に記憶されているプログラム中の一部の命令コードを格納するものである。なお、本実施形態においては、命令キャッシュデータRAM11のway数を“2”とした場合を示している。命令キャッシュデータRAM11のway数は、n×wayへと自由に拡張することが可能である。
【0014】
命令フェッチユニット18は、命令キャッシュ制御部13を介して、命令キャッシュデータRAM11にフェッチアクセスし、命令キャッシュデータRAM11からの命令コード(または、リピートバッファ14からの命令コード)を選択的に取り込んで実行するものである。また、この命令フェッチユニット18は、プログラム中の反復実行する命令コード群であるリピートブロックを定義するリピート命令が発行された際に、そのリピートブロック先頭(Repeat Begin)のプログラムカウンタ値および末尾(Repeat End)のプログラムカウンタ値を記憶するようになっている。
【0015】
リピートバッファ14は、そのサイズ(容量)に応じて、命令キャッシュデータRAM11に格納されているリピートブロックの、少なくとも一部の命令コードを格納するものである。つまり、リピートバッファ14は、キャッシュデータRAM11a,11bのラインサイズに依存することなく、命令コード群の先頭からバッファサイズ分の命令コードを格納する。
【0016】
エントリポインタ15は、リピートバッファ14内の各エントリ中、処理対象となるエントリを記憶するものであって、たとえば、逐次要求のたびにその値がインクリメントされる。
【0017】
ウェイインジケータ16は、リピートバッファ14内の各エントリに格納された命令コードに続く、リピートブロックの命令コードが格納されている命令キャッシュデータRAMのway情報(フラグ)を管理するものである。
【0018】
命令キャッシュ制御部13は、命令フェッチユニット18からの要求および選択回路20の選択結果に応じて、命令キャッシュデータRAM11、命令キャッシュタグRAM12、および、選択回路19,20などを制御するものである。
【0019】
命令キャッシュタグRAM12は、動作履歴などを記憶する管理情報メモリであって、命令キャッシュ制御部13からのアドレス(たとえば、命令キャッシュデータRAM11a,11bのライン)に対応するタグ情報を記憶するものである。
【0020】
タグ比較器17は、命令キャッシュタグRAM12からのタグ情報と命令キャッシュ制御部13からのアドレスとを比較し、その比較結果をウェイインジケータ16および選択回路20に出力するものである。
【0021】
選択回路19は、命令キャッシュ制御部13によって制御され、命令キャッシュデータRAM11からの命令コードまたはリピートバッファ14からの命令コードを選択し、命令フェッチユニット18に出力するものである。
【0022】
選択回路20は、命令キャッシュ制御部13によって制御され、ウェイインジケータ16の出力またはタグ比較器17の出力を選択し、命令キャッシュ制御部13に出力するものである。
【0023】
ここで、プロセッサのプログラム実行においては、リピートブロックのネスト構造を排除すれば、リピートブロックに対応したプログラムカウンタの記憶セットは1セットで構成可能である。本実施形態においては、説明の簡潔化のために、リピートブロックのネスト構造を排除した場合について説明する。
【0024】
すなわち、プログラム中のリピート命令が発行された後、命令キャッシュデータRAM11から供給される命令コードによるプログラム実行が進み、実行中のプログラムカウンタ値が、リピートブロック末尾のプログラムカウンタ値に達したとする。すると、命令フェッチユニット18は、リピート動作によるフェッチ要求を命令キャッシュ制御部13に発行する。
【0025】
リピート動作によるフェッチ要求を受けた命令キャッシュ制御部13は、エントリポインタ15を初期化(この例では、たとえば“0”に設定)する。そして、エントリポインタ15によって示される、リピートバッファ14内のエントリが有効か否かを判定する。有効でない場合は、命令キャッシュデータRAM11にリクエスト(アドレス)を発行する。その後、命令キャッシュデータRAM11から命令コードが出力されると、その命令コードを命令フェッチユニット18に出力するとともに、リピートバッファ14のエントリに命令コードを格納する。
【0026】
その後、リピートブロック内のプログラム実行がシーケンシャルに(分岐によるジャンプを起こさずに)実行されると、命令フェッチユニット18から逐次要求が発行される。すると、命令キャッシュ制御部13は、リピートバッファ14のエントリを逐次的に(要求のたびにエントリポインタ15をインクリメントしながら順々に)チェックする。有効でない場合は、命令キャッシュデータRAM11からの命令コードをリピートバッファ14に格納する動作を繰り返す。
【0027】
命令キャッシュ制御部13が、この逐次的なリピートバッファ14内への命令コードの格納動作を行わない場合は、以下のケースである。
【0028】
(1) エントリポインタ15の指す、リピートバッファ14内のエントリがすでに有効である場合。
【0029】
(2) プログラムが分岐によるジャンプを発生し、命令フェッチユニット18から分岐によるフェッチ要求が届いた場合(エントリポインタ15は、リピートバッファ14内のエントリを指さない値に設定される)。
【0030】
(3) リピートバッファ14の全エントリをチェックした場合(命令コードがリピートバッファ14の容量に達した場合で、エントリポインタ15はリピートバッファ14内のエントリを指さない値に設定される)。
【0031】
その後、リピート動作によるフェッチ要求が、再度、命令キャッシュ制御部13に届いた際には、エントリポインタ15が初期化される。そして、リピートバッファ14の先頭エントリが指定され、逐次的なエントリの有効/無効のチェックが開始される。
【0032】
以前の、リピートブロック内のプログラム実行により、リピートバッファ14内の各エントリに命令コードがすでに格納されている場合、命令キャッシュ制御部13は、命令キャッシュデータRAM11へのアクセスを行わない。この場合は、エントリポインタ15の指すリピートバッファ14内の有効エントリからの命令コードを、命令フェッチユニット18に出力させる。その後、エントリポインタ15をインクリメントし、エントリポインタ15が次のエントリを指すことにより、次の逐次要求に備える。エントリポインタ15がインクリメントされない場合は、以下のケースである。
【0033】
(1) プログラムが分岐によるジャンプを発生し、命令フェッチユニット18から分岐によるフェッチ要求が届いた場合(エントリポインタ15は、リピートバッファ14内のエントリを指さない値に設定される)。
【0034】
(2) リピートバッファ14の全エントリをチェックした場合(命令コードがリピートバッファ14の容量に達した場合で、エントリポインタ15はリピートバッファ14内のエントリを指さない値に設定される)。
【0035】
図2は、リピートバッファ14およびウェイインジケータ16の動作を説明するために示すものである。図中の1ワード(Word n)は、命令フェッチユニット18から要求されるフェッチ単位の命令コードを指す。ここでは、一例として、2−way・8ワード/ライン構成の、セットアソシアティブ命令キャッシュデータRAM11a,11bにおける動作について説明する。
【0036】
図2において、命令キャッシュデータRAM11aのあるラインの途中に、リピートブロックの先頭ワード(Repeat Begin)が格納されている。一方、リピートバッファ14には、リピートブロックの先頭ワードからバッファサイズ分のワードデータ(命令コード群としてのRepeat Begin〜n9)が格納されている。
【0037】
図2に示すように、リピートブロックの各ワードデータが命令キャッシュデータRAM11aの1ライン上に整列されている必要はなく、また、リピートバッファ14のサイズ(容量)も命令キャッシュデータRAM11aのラインサイズに依存することなく、そのサイズを自由に設定することができる。命令キャッシュデータRAM11aのラインサイズに依存することなく、リピートブロックの先頭ワードからバッファサイズ分のワードデータをリピートバッファ14内に格納する結果として、リピートバッファ14の終端ワード(n9)が、命令キャッシュデータRAM11aのラインの途中になることが十分に想定される。
【0038】
ここで、2−way以上のセットアソシアティブ命令キャッシュデータRAMを使用する場合において、リピートバッファ14の終端ワード(n9)に続く命令コードが、複数のway中のどの命令キャッシュデータRAMに格納されているか判断できないと、全wayの命令キャッシュデータRAMにアクセスし、後続の命令コードを得る必要がある。この場合、リピートバッファ14内の命令コードを使い果たすたびに、全wayの命令キャッシュデータRAMにアクセスするようにすると、余計な電力消費を招く。
【0039】
そこで、本実施形態においては、リピートバッファ14に命令コードを格納する際に、終端ワード(n9)に続く命令コードが格納されている命令キャッシュデータRAMのway情報を、ウェイインジケータ16によって管理するようにする。この場合、リピートバッファ14の終端ワード(n9)をフェッチした後には、ウェイインジケータ16が指し示す命令キャッシュデータRAMにのみアクセスを行うことにより、後続の命令コードをフェッチすることが容易に可能となる。すなわち、後続の命令コードを格納する命令キャッシュデータRAMのみを活性化させることにより、電力の無駄な消費が抑えられる。
【0040】
本実施形態のように、リピートブロックのネスト構造を排除した場合、プログラム実行中において、リピート要求(リピートブロック先頭の命令コードフェッチ要求)が発生すると、そのフェッチ要求に対応する命令コードのアドレスは一意に決まる。よって、プログラム中のリピートブロックの先頭ワードのアドレスを記憶することにより、リピート要求によってリピートブロックの先頭ワードを対象とした命令フェッチが発生した場合にも、フェッチする命令コードのアドレスをアドレス比較器で比較したりすることなく、命令フェッチの種類(逐次要求、リピート要求、リピートを除いた分岐要求)の識別のみで、リピートブロック先頭の命令コードを命令フェッチユニット18に出力させることが可能となる。
【0041】
本実施形態の構成によれば、命令コードをフェッチするための命令キャッシュデータRAM11の物理的構造に依存することなく、リピートバッファ14のサイズを自由に設定することができる。また、図3に示すように、リピートバッファ14に格納される命令コード群(Repeat begin〜n9)が命令キャッシュデータRAM11a,11bの境界を越え、複数のway−0,way−1に存在する場合にも、リピートバッファ14として機能させることができる。
【0042】
次に、上記した構成の命令キャッシュシステム10の動作について説明する。たとえば、プログラム中のリピートブロックの実行時、リピートブロックの最初の反復により、リピートブロックの先頭にプログラム実行が戻るタイミングから、リピートバッファ14上にリピートブロックの先頭からの命令コードの格納を開始する。そして、命令コードがリピートバッファ14の全容量に達するか、あるいは、リピートブロックの末尾の命令コードまで格納し終えたか、もしくは、リピートブロック中に“分岐”が発生した際は、リピートバッファ14への命令コードの格納を終了する。その後は、リピートブロックの反復により、リピートブロックの先頭にプログラム実行が戻るたびに、命令フェッチユニット18にリピートバッファ14から命令コードを供給する。これにより、リピートブロック反復中の命令キャッシュデータRAM11へのアクセスを減らし、命令キャッシュデータRAM11へのアクセスにともなう消費電力を削減できる。
【0043】
また、リピートバッファ14の命令コードを使い果たした後には、ウェイインジケータ16からのway情報にしたがって、リピートバッファ14内の命令コードの続きとなる命令コードを格納する命令キャッシュデータRAMにのみ確実にアクセスすることで、無駄な電力の消費を抑えることが可能となる。
【0044】
上記したように、プログラム中のリピートブロックを実行する際に、有効なリピートバッファ内のエントリにヒットすることで、リピートバッファから命令コードを出力させるようにしている。しかも、セットアソシアティブ命令キャッシュデータRAM内の命令コードをリピートバッファに格納する際には、リピートバッファ内の終端ワードに続く命令コードをフェッチしやすくするために、次にアクセスすべきwayを示すフラグを管理するようにしている。これにより、命令キャッシュメモリへのアクセス数を減少でき、命令キャッシュメモリへのアクセスにともなう消費電力を抑えることが可能となるとともに、加えて、リピートバッファをアクセスした後の、全wayの命令キャッシュデータRAMへのアクセスによる余計な電力の消費をも抑制できるようになるものである。
【0045】
しかも、バッファに命令コードの格納を開始させるための制御回路、および、フェッチした命令コードとバッファ内に格納されている命令コードとのアドレス比較を行うためのアドレス比較器を、必要とせずに実施できるものである。
【0046】
[第2の実施形態]
図4は、本発明の第2の実施形態にしたがった演算処理装置(マイクロプロセッサ)の構成例を示すものである。ここでは、リピートバッファを備えた命令キャッシュシステムにおいて、リピートバッファに命令キャッシュメモリからの命令コードを格納するとともに、命令キャッシュメモリから命令コードを読み出す際には、命令キャッシュタグRAMを先んじて読む(先引きする)ことで、命令キャッシュメモリへのアクセスにともなう消費電力を削減できるようにした場合について説明する。なお、図1に示した命令キャッシュシステムと同一部分には同一符号を付して、詳しい説明は割愛する。
【0047】
すなわち、このタグメモリ先引き機能を兼ね備えた命令キャッシュシステム10Aは、命令キャッシュメモリ(命令キャッシュデータRAM(way−0)11a,(way−1)11b)11、命令キャッシュタグRAM12、命令キャッシュ制御部13、リピートバッファ14、エントリポインタ15、ウェイインジケータ16、タグ比較器17、プロセッサ内命令フェッチユニット18、選択回路19,20a、および、先引き結果ストレージ21を備えている。
【0048】
ここで、「タグメモリ先引き機能」とは、2−way以上のセットアソシアティブ命令キャッシュデータRAMの使用時において、連続してフェッチしようとする命令コードが、命令キャッシュデータRAMのラインの境界をまたいで存在する際に使用可能な機能である。
【0049】
以下に、タグメモリ先引き機能の動作と、その効果について説明する。たとえば、命令フェッチユニット18からアドレスの連続した逐次要求が発行される場合を想定する。その際、最初の逐次要求により要求されるフェッチ対象ワード(命令フェッチユニット18から要求されるフェッチ単位の命令コード)が、ある命令キャッシュデータRAM11aのラインの最終ワードであり、次の逐次要求によって要求されるフェッチ対象ワードが、たとえば、ラインの境界をまたいで別の命令キャッシュデータRAM11bに存在することが予測されるとする。すると、次の逐次要求により要求されるであろうフェッチ対象ワードのアドレスを、命令キャッシュ制御部13にてあらかじめ作成する。そして、そのアドレスにしたがって命令キャッシュタグRAM12のタグ情報を先引きし、タグ比較器17でのアドレスとタグ情報との比較結果を先引き結果ストレージ21に格納する。この先引き結果ストレージ21内の比較結果を、選択回路20aを介して、命令キャッシュ制御部13が参照することによって、実際に次の逐次要求により要求されるであろうフェッチ対象ワードが存在する、命令キャッシュデータRAMを事前に把握できるようになる。
【0050】
この機能により、すべての命令キャッシュデータRAM11a,11bを活性化させることなく、目的の命令コードが格納されている命令キャッシュデータRAMだけを活性化させることで、命令キャッシュデータRAM11での消費電力を大幅に削減することが可能である。なお、タグ比較器17での比較結果が明白な場合は、新たに命令キャッシュデータRAM11a,11bのラインの境界をまたぐタイミングで、命令キャッシュタグRAM12を読む必要はない。
【0051】
一方、この「タグメモリ先引き機能」は、リピートバッファ14が有効であり、すでに命令キャッシュデータRAM11a,11bのラインの境界をまたいで存在する命令コードがリピートバッファ14内に存在することが明白な場合、「タグメモリ先引き機能」の動作を停止する。これにより、リピートバッファ14を機能させている際の、命令キャッシュタグRAM12の無用な読み出しを防ぐことが可能である。
【0052】
なお、上記の説明では、タグ先引き動作の発生タイミングを、フェッチ対象ワードがラインの最終ワードの場合を例に説明したが、先引きのタイミングを早めることも、本機能の実現においては十分に可能である。
【0053】
[第3の実施形態]
図5は、本発明の第3の実施形態にしたがった演算処理装置(マイクロプロセッサ)の構成例を示すものである。ここでは、リピートバッファを備えた命令キャッシュシステムにおいて、リピートバッファを、リピートブロック中の命令コード群の格納のみならず、命令キャッシュメモリのプリフェッチバッファとしての機能をも兼ね備えた多機能バッファとした場合について説明する。なお、図1に示した命令キャッシュシステムと同一部分には同一符号を付して、詳しい説明は割愛する。
【0054】
すなわち、この命令キャッシュシステム10Bは、命令キャッシュメモリ(命令キャッシュデータRAM11a,11b)11、命令キャッシュタグRAM12、命令キャッシュ制御部13、リピートバッファ(多機能バッファ)14a、エントリポインタ15、ウェイインジケータ16、タグ比較器17、プロセッサ内命令フェッチユニット18、選択回路19,20、および、外部バスインタフェース(I/F)22を備えている。
【0055】
外部バスインタフェース22は、外部バス31を介して、メインメモリ(主記憶装置)32に接続されている。
【0056】
本実施形態の場合、リピートバッファ14aは、命令キャッシュ制御部13からの機能スイッチ制御線を介した指示にしたがって、命令キャッシュデータRAM11a,11bのプリフェッチバッファとしても機能する。つまり、実行中のプログラムにリピートブロックが存在しない場合、リピートバッファ14aは、リピートブロック中の命令コード群を格納するためのリピートバッファとしては使用されない。そこで、命令フェッチユニット18が要求するであろう命令キャッシュデータRAM11a,11bのワードデータに対応する、外部バス31上のメインメモリ32からの命令コードを、あらかじめリピートバッファ14aに割り当てられたプリフェッチバッファ機能によって保持させる。こうすることで、実際に命令フェッチユニット18から命令キャッシュデータRAM11a,11bに要求が出された際の、外部バスレイテンシを大きく削減できるようになる。
【0057】
一方で、プリフェッチバッファとしてリピートバッファ14aが機能中に、プログラム中のリピートブロックが実行されて、命令フェッチユニット18から命令キャッシュ制御部13にリピート要求が発行されたとする。この場合、リピートバッファ14aが使用中(この例では、プリフェッチバッファとして保持している命令コードが読み出されているか、もしくは、命令キャッシュデータRAM11a,11bへのリフィルが行われている事象を指す)であれば、プリフェッチバッファとして保持している命令コードは破棄しない。ただし、プリフェッチバッファとして保持している命令コードを使用していない時は、その命令コードを破棄する。そして、命令キャッシュ制御部13からの機能スイッチ制御線を介した指示にしたがって、リピートバッファ14aは、リピートブロック内の命令コード群を格納するリピートバッファとして機能する。
【0058】
なお、本実施形態においては、「タグメモリ先引き機能(第2の実施形態参照)」を付加することも可能である。
【0059】
その他、本願発明は、上記(各)実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、上記(各)実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。たとえば、(各)実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題(の少なくとも1つ)が解決でき、発明の効果の欄で述べられている効果(の少なくとも1つ)が得られる場合には、その構成要件が削除された構成が発明として抽出され得る。
【図面の簡単な説明】
【0060】
【図1】本発明の第1の実施形態にしたがった、演算処理装置(マイクロプロセッサ)の構成例を示すブロック図。
【図2】図1のプロセッサにおける、リピートバッファおよびウェイインジケータの動作を説明するために示す図。
【図3】図1のプロセッサにおける、リピートバッファおよびウェイインジケータの動作を説明するために示す図。
【図4】本発明の第2の実施形態にしたがった、演算処理装置(マイクロプロセッサ)の構成例を示すブロック図。
【図5】本発明の第3の実施形態にしたがった、演算処理装置(マイクロプロセッサ)の構成例を示すブロック図。
【符号の説明】
【0061】
10,10A,10B…命令キャッシュシステム、11…命令キャッシュデータRAM、11a,11b…セットアソシアティブ命令キャッシュデータRAM(way−0,way−1)、12…命令キャッシュタグRAM、13…命令キャッシュ制御部、14,14a…リピートバッファ、15…エントリポインタ、16…ウェイインジケータ、21…先引き結果ストレージ、32…メインメモリ。

【特許請求の範囲】
【請求項1】
主記憶装置からの複数の命令コードを取り込んで格納するキャッシュブロックと、
前記キャッシュブロックにフェッチアクセスし、逐次、前記複数の命令コードを取り込んで実行する中央演算装置と、
前記キャッシュブロックに格納された前記複数の命令コードのうち、処理プログラム中で反復実行されるリピートブロックの先頭の命令コードから、前記キャッシュブロックのライン構成によらず、バッファサイズ分の命令コード群を格納するリピートバッファと、
前記リピートブロックの反復により、前記リピートバッファに格納された前記命令コード群を前記中央演算装置に供給するように制御する命令キャッシュ制御部と
を具備したことを特徴とする演算処理装置。
【請求項2】
前記リピートバッファに格納された前記命令コード群と、前記中央演算装置からのフェッチアクセスのアドレス比較を必要とせず、逐次要求・リピート要求・リピート以外の分岐要求の各フェッチの種類によって、前記リピートバッファと前記キャッシュブロックからの命令コードの選択を行うことを特徴とする請求項1に記載の演算処理装置。
【請求項3】
前記キャッシュブロックは複数のデータRAMを有して構成され、
前記リピートバッファに格納された前記命令コード群の終端の命令コードに続く命令コードが格納されている、前記データRAMを指し示すウェイインジケータをさらに備えることを特徴とする請求項1に記載の演算処理装置。
【請求項4】
前記キャッシュブロックのラインに対応するタグ情報を記憶するタグRAMと、
前記キャッシュブロックのラインの境界を越える以前のフェッチアクセス時に、あらかじめ次のラインに対応するタグ情報を前記タグRAMから読み出して、次のライン境界を越える逐次的フェッチ要求によりアクセスすることが予想されるアドレスを生成し、その生成された前記アドレスと前記タグ情報とを比較した結果を保持する先引き結果ストレージと
をさらに備え、
前記中央演算装置からのライン境界を越える逐次的フェッチ要求に応じて実際に前記キャッシュブロックへアクセスする際には、前記先引き結果ストレージで保持されている比較結果にもとづいて、前記キャッシュブロックへのアクセス制御を行うことを特徴とする請求項1に記載の演算処理装置。
【請求項5】
前記リピートバッファは、前記主記憶装置からの複数の命令コードを取り込んで格納する、前記キャッシュブロックのプリフェッチバッファとしても機能する多機能バッファにより構成され、
前記多機能バッファは、前記処理プログラム中で反復実行されるリピートブロックがない場合に前記プリフェッチバッファとして機能するように、その用途が前記中央演算装置からのフェッチ要求により切り替え制御されることを特徴とする請求項1に記載の演算処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2009−116621(P2009−116621A)
【公開日】平成21年5月28日(2009.5.28)
【国際特許分類】
【出願番号】特願2007−288965(P2007−288965)
【出願日】平成19年11月6日(2007.11.6)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】