(57)【特許請求の範囲】
【請求項１】
次に読み出される可能性の高い情報を先行して読み出しておく先行読み出し手段を有しており、記憶装置から情報を読み出して所定の処理を行う中央処理装置と、
前記中央処理装置とバスを介して接続され、前記バスを介して前記中央処理装置の制御を受けて、前記先行読み出し手段の機能を制御する第１の制御信号を出力する先行読み出し手段制御部とを有し、
前記先行読み出し手段制御部は前記第１の制御信号の内容を指示するためのレジスタを有し、前記バスに接続される格納手段の機能のオン／オフを示す第２の制御信号を受け、前記レジスタの値と第２の制御信号の内容に基づいて前記第１の制御信号を生成し、
前記中央処理装置は前記バスを介して前記レジスタに所定の値を書き込むことにより、前記先行読み出し手段制御部から出力される前記第１の制御信号を制御する
ことを特徴とする情報処理装置。
【請求項２】
前記先行読み出し手段は、既に読み出されている情報のアドレスに基づいて、前記次に読み出される可能性の高い情報を先行して読み出しておくことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記先行読み出し手段は、前記第１の制御信号により情報を先行して読み出しておく機能のオン／オフが制御されることを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記先行読み出し手段は、前記第１の制御信号により情報を先行して読み出しておく機能を停止された場合、既に読み出し済みの情報を順次出力することを特徴とする請求項３記載の情報処理装置。
【請求項５】
情報を格納する記憶装置と、
次に読み出される可能性の高い情報を先行して読み出しておく先行読み出し手段を有しており、前記記憶装置から情報を読み出して所定の処理を行う中央処理装置と、
過去に読み出された情報を格納しておく格納手段と、
前記中央処理装置とバスを介して接続され、前記バスを介して前記中央処理装置の制御を受けて、前記先行読み出し手段の機能を制御する第１の制御信号を出力する先行読み出し手段制御部とを有し、
前記先行読み出し手段制御部は前記第１の制御信号の内容を指示するためのレジスタを有し、前記バスに接続される格納手段の機能のオン／オフを示す第２の制御信号を受け、前記レジスタの値と第２の制御信号の内容に基づいて前記第１の制御信号を生成し、
前記中央処理装置は前記バスを介して前記レジスタに所定の値を書き込むことにより、前記先行読み出し手段制御部から出力される前記第１の制御信号を制御する
ことを特徴とする情報処理システム。
【請求項６】
前記先行読み出し手段は、既に読み出されている情報のアドレスに基づいて、前記次に読み出される可能性の高い情報を先行して読み出しておくことを特徴とする請求項５記載の情報処理システム。
【請求項７】
前記先行読み出し手段は、前記第１の制御信号により情報を先行して読み出しておく機能のオン／オフが制御されることを特徴とする請求項６記載の情報処理システム。
【請求項８】
前記先行読み出し手段は、前記第１の制御信号により情報を先行して読み出しておく機能を停止された場合、既に読み出し済みの情報を順次出力することを特徴とする請求項７記載の情報処理システム。
【請求項９】
前記格納手段は、前記記憶装置から読み出された情報を所定のブロック毎に格納する機能を有し、この機能のオン／オフが制御されることを特徴とする請求項８記載の情報処理システム。
【請求項１０】
前記先行読み出し手段で行う情報を先行して読み出しておく機能と、前記格納手段で行う所定のブロック毎に情報を格納する機能とは、中央処理装置で行う処理に基づいて、その機能のオン／オフが制御されることを特徴とする請求項９記載の情報処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置及び情報処理システムに係り、特に、プリフェッチ機能を有する情報処理装置及び情報処理システムに関する。
【０００２】
【従来の技術】
中央処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ：以下、ＣＰＵという）は、主記憶装置から命令及びデータを読み出して、制御及び演算等を行う装置である。一般に、ＣＰＵは主記憶装置に比べて処理速度が高速であり、主記憶装置から命令及びデータを読み出す時間が処理時間に大きく影響することになる。そこで、ＣＰＵと主記憶装置との間に少容量の高速記憶装置を置き、処理時間の短縮化を図っている。
【０００３】
このような小容量の高速記憶装置には、過去に参照された命令を一定数格納しておく命令キャッシュがある。また、ＣＰＵが読込んだ命令より先のアドレスの命令を一定数自動的に読込んでおくプリフェッチキューがある。このような、命令キャッシュ及びプリフェッチキューは、多くのプログラムにおける主記憶装置参照の局地性の原理に基づいている。
【０００４】
すなわち、ある期間をとって見ると、ＣＰＵは記憶装置のある限られた小範囲を集中して参照する傾向が認められる。言い換えれば、頻繁に使用される情報はお互いに近いところに存在する確率が高い。したがって、このような頻繁に参照されると思われる小範囲を主記憶装置から読み出して格納しておくのが命令キャッシュ，プリフェッチキューである。
【０００５】
以下、図１を利用して、ＣＰＵと主記憶装置との間に小容量の高速記憶装置を置いた場合の処理について説明する。図１は、従来のプリフェッチ機能を有する中央処理システムの一例のブロック図を示す。
中央処理システム１は、ＣＰＵ１０，命令キャッシュ１２，ＢＵＳ−ＣＯＮＴＲＯＬ１４，主記憶装置１６を含む構成である。また、ＣＰＵ１０は、プリフェッチキュー１８，命令デコ−ダ２０，バスアクセス制御部２２を含む。
【０００６】
プリフェッチキュー１８は、ＣＰＵ１０が読み出しをおこなった命令の次のアドレスの命令を自動的に読み出して格納しておく。また、命令キャッシュ１２は、過去に主記憶装置１６から読み出された命令を、一定数格納しておく。
例えば、図２を利用して、２命令分を自動的に読み出して格納するプリフェッチキュー１８の動作を説明する。図２は、プリフェッチキューの動作の一例の説明図を示す。ＣＰＵ１０がアドレス”０８”の命令を命令デコーダ２０に読込むと、プリフェッチキュー１８は次のアドレス”０Ａ”の命令と二つ先のアドレス”０Ｃ”の命令とを格納する。次に、ＣＰＵ１０がアドレス”０Ａ”の命令を命令デコーダ２０に読込むと、プリフェッチキュー１８は既に次のアドレス”０Ｃ”の命令が格納されているので、二つ先のアドレス”０Ｅ”の命令を格納する。
【０００７】
このように、プリフェッチキュー１８は、次にＣＰＵ１０が実行すると予想されるアドレスの命令を命令キャッシュ１２又は主記憶装置１６から予め読み出して格納しておくことにより、ＣＰＵ１０の命令の読み出し開始から命令が命令デコーダ２０に読込まれるまでの時間が短縮される。プリフェッチキュー１８は、命令実行が直線的で、分岐命令が少ない場合に有効である。
【０００８】
次に、図３を利用して、命令キャッシュ１２の動作を説明する。図３は、命令キャッシュの動作の一例の説明図を示す。尚、図３において、ＣＰＵ実行命令のアドレスは上位の１６ビットアドレス”００００”を省略している。また、図３のキャッシュ格納命令は、一番左にアドレスの上位１６ビットが表示され、そこから右側に向かって４つのアドレスの下位８ビットが表示されている。それぞれのアドレスは、３２ビットのデータを有し、１６ビットで表される命令を二つ格納している。
【０００９】
ＣＰＵ１０又はプリフェッチキュー１８がアドレス”０８”の命令を読み込む場合、そのアドレス”０８”の命令が命令キャッシュ１２に格納されているか否かにより処理が異なる。そのアドレス”０８”の命令が命令キャッシュ１２に格納されている場合、命令キャッシュ１２は、その格納されている命令をＣＰＵ１０又はプリフェッチキュー１８に供給する。例えば、図３の場合は、命令キャッシュ１２からアドレス”０００００８”の命令を読み出してＣＰＵ１０又はプリフェッチキュー１８に供給する。
【００１０】
一方、そのアドレス”０８”の命令が命令キャッシュ１２に格納されていない場合、命令キャッシュ１２は主記憶装置１６からアドレス”０８”の命令を読み出してＣＰＵ１０又はプリフェッチキュー１８に供給すると共に、対応するアドレスにアドレス”０８”の命令を格納する。なお、命令キャッシュ１２は、アドレスの下位８ビットが固定であり、アドレスの上位１６ビットを変更してアドレスを対応させる。例えば、アドレス”０００００８”の命令を格納する場合、アドレスの上位１６ビットを”００００”に変更してアドレスの下位８ビットが”０８”の場所に命令を格納する。
【００１１】
上記のような処理をアドレス”０Ａ”，”０Ｃ”，”０Ｅ”，”１０”，及び”１２”の命令毎に処理を行う。そして、アドレス”１２”の命令が分岐命令であり、処理がアドレス”０８”の命令に戻ると、既に命令キャッシュ１２にアドレス”０８”，”０Ａ”，”０Ｃ”，”０Ｅ”，”１０”，及び”１２”の命令が格納されているため、ＣＰＵ１０の命令の読み出し開始から命令が命令デコーダ２０に読込まれるまでの時間が短縮される。命令キャッシュ１２は、命令実行に繰り返し処理が多い場合に有効である。
【００１２】
以上のように、命令キャッシュ１２及びプリフェッチキュー１８を設けることにより中央処理システム１の処理時間の短縮を図っている。
【００１３】
【発明が解決しようとする課題】
しかしながら、図１に示すブロック図のように、プリフェッチキュー１８が命令キャッシュ１２よりＣＰＵ側にある場合、プリフェッチキュー１８の処理により命令キャッシュ１２の処理効率が低下する場合がある。
以下、図４及び図５を利用して、プリフェッチキュー１８の処理により命令キャッシュ１２の処理効率が低下する場合について説明する。図４は、プリフェッチキューの動作の一例の説明図を示す。また、図５は命令キャッシュの動作の一例の説明図を示す。
【００１４】
図４のプリフェッチキュー１８は、アドレス”０Ｃ”の命令を実行した後、分岐命令によりアドレス”８０”の命令を実行する。ところが、アドレス”０Ｃ”の命令を実行している間に、プリフェッチキュー１８は、次のアドレス”０Ｅ”の命令と二つ先のアドレス”１０”の命令とを命令キャッシュ１２又は主記憶装置１６から読み込んで格納する。したがって、プリフェッチキュー１８は、ＣＰＵ１０が実行しないアドレスの命令を格納してしまうことになる。
【００１５】
一方、命令キャッシュ１２はＣＰＵ１０の読み出しであるのか、又はプリフェッチキュー１８の読み出しであるのか判断することができない。したがって、プリフェッチキュー１８がＣＰＵ１０の実行しないアドレスの命令を読込んだ場合、その読込みにより命令キャッシュ１２にもＣＰＵ１０の実行しないアドレスの命令が読込まれて格納されることになる。
【００１６】
例えば，図５の例の場合、アドレス”０Ｃ”の命令を実行している間にプリフェッチキュー１８に読込まれた次のアドレス”０Ｅ”の命令と二つ先のアドレス”１０”の命令とが命令キャッシュ１２に書き込まれて格納されるのであるが、アドレス”１０”に対応する部分にはアドレス”０２００１０〜０２００１Ｅ”の命令が格納されている。したがって、命令キャッシュ１２は、ＣＰＵ１０の実行しないアドレス”０００００Ｅ”，”００００１０”の命令が読込まれて格納されるために、アドレス”０２００１０〜０２００１Ｅ”の命令が消去されることになる。もし、消去されたアドレス”０２００１０〜０２００１Ｅ”の命令が実行率の高い命令であると効率が悪いことになる。
【００１７】
続いて、図６を利用して、ブロック転送機能により命令キャッシュ１２の処理効率が低下する場合について説明する。図６は、命令キャッシュの動作の一例の説明図を示す。ここで、ブロック転送機能とは、命令キャッシュ１２に格納されている情報を書き換える場合、１ブロック単位で書き換える機能をいう。なお、１ブロックとは図６の例の場合４ワード分（例えば、アドレス”００”，”０４”，”０８”，”０Ｃ”）をいう。
【００１８】
ＣＰＵ１０は、アドレス”１Ｅ”の命令を読込むとき、命令キャッシュ１２にそのアドレス”１Ｅ”の命令が格納されているか否かを判定する。図６の例の場合、下位８ビットが”１０〜１Ｃ”の場所に上位ビット”０２００”のアドレスの命令が格納されているため、上位ビット”００００”の命令を主記憶装置１６から読み出して格納する必要がある。
【００１９】
ブロック転送機能の下では、命令キャッシュ１２はアドレス”００００１０〜００００１Ｅ”を自動的に書き込むが、ブロック転送が終了するまで次の命令が読み出せない。この場合、アドレス”００００１０〜００００１Ａ”の命令は実行されないものであり、ＣＰＵ１０の実行しないアドレス”００００１０〜００００１Ａ”の命令を命令キャッシュ１２に書き込んでいる間、ＣＰＵ１０は次のアドレス”００００２０”の命令を読み出せず効率が悪いことになる。
【００２０】
上記のように、プログラムの動作によって、命令キャッシュ１２及びプリフェッチキュー１８が効率良く動作しない場合があり問題であった。
本発明は、上記の点に鑑みなされたもので、命令キャッシュ及びプリフェッチキューの機能のＯＮ／ＯＦＦの組み合わせが設定できる情報処理装置及び情報処理システムを提供することを目的とする。
【００２１】
【課題を解決するための手段】
そこで、上記課題を解決するため、請求項１記載の本発明は、次に読み出される可能性の高い情報を先行して読み出しておく先行読み出し手段を有しており、記憶装置から情報を読み出して所定の処理を行う中央処理装置と、前記中央処理装置とバスを介して接続され、前記バスを介して前記中央処理装置の制御を受けて、前記先行読み出し手段の機能を制御する第１の制御信号を出力する先行読み出し手段制御部とを有し、前記先行読み出し手段制御部は前記第１の制御信号の内容を指示するためのレジスタを有し、前記バスに接続される格納手段の機能のオン／オフを示す第２の制御信号を受け、前記レジスタの値と第２の制御信号の内容に基づいて前記第１の制御信号を生成し、前記中央処理装置は前記バスを介して前記レジスタに所定の値を書き込むことにより、前記先行読み出し手段制御部から出力される前記第１の制御信号を制御することを特徴とする。
【００２３】
また、請求項２記載の本発明は、前記先行読み出し手段は、既に読み出されている情報のアドレスに基づいて、前記次に読み出される可能性の高い情報を先行して読み出しておくことを特徴とする。
また、請求項３記載の本発明は、前記先行読み出し手段は、前記第１の制御信号により情報を先行して読み出しておく機能のオン／オフが制御されることを特徴とする。
【００２４】
また、請求項４記載の本発明は、前記先行読み出し手段は、前記第１の制御信号により情報を先行して読み出しておく機能を停止された場合、既に読み出し済みの情報を順次出力することを特徴とする。
また、請求項５記載の本発明は、情報を格納する記憶装置と、次に読み出される可能性の高い情報を先行して読み出しておく先行読み出し手段を有しており、前記記憶装置から情報を読み出して所定の処理を行う中央処理装置と、過去に読み出された情報を格納しておく格納手段と、前記中央処理装置とバスを介して接続され、前記バスを介して前記中央処理装置の制御を受けて、前記先行読み出し手段の機能を制御する第１の制御信号を出力する先行読み出し手段制御部とを有し、前記先行読み出し手段制御部は前記第１の制御信号の内容を指示するためのレジスタを有し、前記バスに接続される格納手段の機能のオン／オフを示す第２の制御信号を受け、前記レジスタの値と第２の制御信号の内容に基づいて前記第１の制御信号を生成し、前記中央処理装置は前記バスを介して前記レジスタに所定の値を書き込むことにより、前記先行読み出し手段制御部から出力される前記第１の制御信号を制御することを特徴とする。
【００２６】
また、請求項６記載の本発明は、前記先行読み出し手段は、既に読み出されている情報のアドレスに基づいて、前記次に読み出される可能性の高い情報を先行して読み出しておくことを特徴とする。
また、請求項７記載の本発明は、前記先行読み出し手段は、前記第１の制御信号により情報を先行して読み出しておく機能のオン／オフが制御されることを特徴とする。
【００２７】
また、請求項８記載の本発明は、前記先行読み出し手段は、前記第１の制御信号により情報を先行して読み出しておく機能を停止された場合、既に読み出し済みの情報を順次出力することを特徴とする。
また、請求項９記載の本発明は、前記格納手段は、前記記憶装置から読み出された情報を所定のブロック毎に格納する機能を有し、この機能のオン／オフが制御されることを特徴とする。
【００２８】
また、請求項１０記載の本発明は、前記先行読み出し手段で行う情報を先行して読み出しておく機能と、前記格納手段で行う所定のブロック毎に情報を格納する機能とは、中央処理装置で行う処理に基づいて、その機能のオン／オフが制御されることを特徴とする。
【００２９】
このように、先行読み出し手段は制御信号により機能を制御されることで、実行するプログラムに基づいて適切に機能がオン／オフされ、効率のよい情報の読み出しが可能となる。例えば、分岐処理の多いプログラムの実行時においては、先行読み出し手段の機能が効率のよい情報の読み出しを妨げる場合があるので、その場合に先行読み出し手段の機能を制御して、効率のよい情報の読み出しを可能にする。
また、先行読み出し手段は既に読み出されている情報のアドレスに基づいて、次に読み出される可能性の高い情報を先行して読み出しておくことにより、中央処理装置と記憶装置との処理速度の差を緩和し、効率のよい情報の読み出しを可能にしている。
【００３０】
また、先行読み出し手段は第１の制御信号により機能がオン／オフされることで、先行読み出し手段の機能が効率のよい情報の読み出しを妨げる場合に先行読み出し手段の機能をオフして、効率のよい情報の読み出しが可能となる。
また、先行読み出し手段は機能がオンからオフに移行した場合、既に読み出し済みの情報を破棄することなく、順次出力することができる。したがって、同じ情報を再度読み出す無駄を省き、効率のよい情報の読み出しが可能となる。
【００３１】
また、格納手段は前記記憶装置から読み出された情報を所定のブロック毎に格納する機能を有し、この機能のオン／オフを制御することができるので、格納手段から読み出された情報を所定のブロック毎に格納する機能が効率のよい情報の読み出しを妨げる場合にこの機能をオフして、効率のよい情報の読み出しが可能となる。
【００３２】
また、先行読み出し手段で行う情報を先行して読み出しておく機能と、格納手段で行う所定のブロック毎に情報を格納する機能とを、中央処理装置で行うプログラムの処理に基づいて、自由にオン／オフすることが可能となる。
したがって、ユーザはプログラムの処理を考慮して、自由に先行読み出し手段で行う情報を先行して読み出しておく機能と、格納手段で行う所定のブロック毎に情報を格納する機能とをオン／オフすることにより、効率のよい情報の読み出しが選択できる。
【００３３】
【発明の実施の形態】
以下に、情報処理装置及び情報処理システムに関する本発明の実施例を図面に基づいて説明する。
図７は、本発明のプリフェッチ機能を有する情報処理システムの一実施例のブロック図を示す。情報処理システム１は、ＣＰＵ１０，命令キャッシュ１２，ＢＵＳ−ＣＯＮＴＲＯＬ１４，主記憶装置１６，プリフェッチキュー制御部２４を含む構成である。また、ＣＰＵ１０は、プリフェッチキュー１８，命令デコ−ダ２０，バスアクセス制御部２２を含む。
【００３４】
プリフェッチキュー１８は、ＣＰＵ１０が読み出しをおこなった命令の次のアドレスの命令を自動的に読み出して格納しておく。また、命令キャッシュ１２は、過去に主記憶装置１６から読み出された命令を、一定数格納しておく。なお、プリフェッチキュー１８及び命令キャッシュ１２の動作については、図２及び図３を利用して前述したので説明を省略する。
【００３５】
プリフェッチキュー１８は、プリフェッチキュー制御部２４に含まれるＱＣＮＴＬレジスタに所定の値を書き込むことにより制御される。例えば、ＱＣＮＴＬレジスタが”００”のとき命令キャッシュ１２に依らずプリフェッチ機能ＯＦＦ，ＱＣＮＴＬレジスタが”０１”のとき命令キャッシュ１２に依らずプリフェッチ機能ＯＮ，ＱＣＮＴＬレジスタが”１０”のとき命令キャッシュ１２のＯＮ／ＯＦＦの反転，ＱＣＮＴＬレジスタが”１１”のとき命令キャッシュ１２のＯＮ／ＯＦＦと同じ，というようにプリフェッチ機能を制御する。
【００３６】
プリフェッチキュー制御部２４は、命令キャッシュ１２の機能のＯＮ／ＯＦＦを示す信号ＩＥＮＢＬが供給されることにより、命令キャッシュ１２の機能のＯＮ／ＯＦＦ状態を判別できる。そして、プリフェッチキュー制御部２４は、ＱＣＮＴＬレジスタの値および命令キャッシュ１２から供給される信号ＩＥＮＢＬに基づいてプリフェッチキュー１８の機能のＯＮ／ＯＦＦ動作を制御する信号ＱＥＮＢＬをプリフェッチキュー１８に供給する。
【００３７】
上記のような処理は、最後のＳＴ命令実行時にＣＰＵ１０のバスアクセス制御部２２からＱＣＮＴＡＬレジスタのアドレスと書き込む値とをデータバスに出力し、ＢＵＳ−ＣＯＮＴＲＯＬ１４経由でＱＣＮＴＬレジスタに値を書き込むことにより、制御することが可能となる。
なお、プリフェッチキュー１８の動作がＯＮからＯＦＦに移行した場合、既にプリフェッチキュー１８に格納されたアドレスの命令を破棄することなく有効に利用するため、図８に示すようなが動作が行われる。図８はプリフェッチキューがＯＮ／ＯＦＦの時の一例の動作図を示し、図８（Ａ）がプリフェッチキューがＯＮの時の動作であり、図８（Ｂ）がプリフェッチキューがＯＦＦの時の動作である。
【００３８】
図８（Ａ）に示すプリフェッチキュー１８がＯＮの時の動作は、プリフェッチキュー１８に空きができると次のアドレスの命令を読み出し格納する。一方、図８（Ｂ）に示すプリフェッチキュー１８がＯＮからＯＦＦに移行した場合の動作は、既にプリフェッチキュー１８に格納されたアドレスの命令を順次読み出す。そして、格納されたアドレスの命令が無くなった時点で、新しいアドレスの命令を一つ格納する動作と、格納されたアドレスの命令を読み出す動作とを繰り返す。
【００３９】
このように、プリフェッチキュー１８がＯＦＦの時の動作を、格納しているアドレスの命令が全て無くなった時点で新しいアドレスの命令を読み出すという動作で実現すると、既にプリフェッチキュー１８に格納されたアドレスの命令を破棄することなく有効に利用することができるため、処理効率が低下しない。
以下、プリフェッチキュー１８がＯＦＦ，命令キャッシュ１２がＯＮの方が効率が良い場合について、図９を利用して説明する。図９は、プリフェッチキューがＯＮ／ＯＦＦの時の一例のタイミング図を示す。なお、図９（Ａ）〜（Ｄ）はプリフェッチキュー１８がＯＦＦ，図９（Ｅ）〜（Ｈ）はプリフェッチキュー１８がＯＮのときのタイミング図である。
【００４０】
プリフェッチキュー１８がＯＦＦのとき、ＣＰＵ１０は実行を行うアドレスの命令を命令キャッシュ１２又は主記憶装置１６から読み出して実行する。このとき、命令キャッシュ１２に目的のアドレスの命令がない場合、主記憶装置１６から目的のアドレスの命令を読み出すために待ち時間が発生する。
図９の（Ａ）〜（Ｄ）の場合、アドレス”０００８”，”０００Ｃ”，”００８０”の命令は、命令キャッシュ１２になかったため、主記憶装置１６から読み出しを行っている。したがって、主記憶装置１６から目的のアドレスの命令を読み出すために待ち時間が発生している。続いて、アドレス”２０１０”，”２０１４”の命令は、命令キャッシュ１２にあったため、命令キャッシュ１２から読み出しが行われている。したがって、主記憶装置１６から読み出すほどの待ち時間は発生しない。
【００４１】
一方、プリフェッチキュー１８がＯＮのとき、プリフェッチキュー１８は次のアドレスの命令を格納している。アドレス”０００８”の命令がＣＰＵ１０で実行されるとき、プリフェッチキュー１８は次のアドレス”０００Ｃ”の命令を主記憶装置１６から読み込んで格納する。したがって、図９に示すように主記憶装置１６から読み込んで格納するための待ち時間が発生する。
【００４２】
続いて、アドレス”０００Ｃ”の命令がＣＰＵ１０で実行されるとき、プリフェッチキュー１８は次のアドレス”００１０”の命令を主記憶装置１６から読み込んで格納する。したがって、図９に示すように主記憶装置１６から読み込んで格納するための待ち時間が発生する。
ところで、アドレス”０Ｃ”の命令が分岐命令である場合、アドレス”０００Ｃ”の命令の後に実行される命令は、アドレス”００１０”の命令でなくアドレス”００８０”の命令である。したがって、アドレス”００１０”の命令を実行せずに、アドレス”００８０”の命令を主記憶装置１６から読み込んで格納する。したがって、図９に示すように主記憶装置１６から読み込んで格納するための待ち時間が発生する。
【００４３】
続いて、アドレス”２０１０”の命令がＣＰＵ１０で実行されるのであるが、アドレス”２０１０”の命令は命令キャッシュ１２に格納されていたものの、プリフェッチキュー１８によるアドレス”００１０”の命令の読み出しにより消去されている。したがって、図９に示すように主記憶装置１６から読み込んで格納するための待ち時間が発生する。
【００４４】
もし、プリフェッチキュー１８がＯＦＦであれば、命令キャッシュ１２からアドレス”２０１０”の命令は消去されず、無駄な待ち時間を発生させることがない。以上のように、プログラムの動作内容によっては、プリフェッチキュー１８をＯＦＦ，命令キャッシュ１２をＯＮにする方が効率が良い。
次に、プリフェッチキュー１８がＯＮ，命令キャッシュ１２のブロック転送がＯＦＦの方が効率が良い場合について、図１０を利用して説明する。図１０は、ブロック転送がＯＮ／ＯＦＦの時の一例のタイミング図を示す。なお、図１０（Ａ）〜（Ｄ）はブロック転送がＯＮ，図１０（Ｅ）〜（Ｈ）はブロック転送がＯＦＦのときのタイミング図である。
【００４５】
ブロック転送がＯＮのとき、ＣＰＵ１０は実行を行うアドレスの命令を命令キャッシュ１２又は主記憶装置１６から読み出して実行する。このとき、命令キャッシュ１２に目的のアドレスの命令がない場合、主記憶装置１６から目的のアドレスの命令を読み出すために待ち時間が発生する。ブロック転送がＯＮの下、命令キャッシュ１２に目的のアドレスの命令がない場合、ブロック単位で主記憶装置１６から目的のアドレスの命令を読み出す。
【００４６】
例えば、図１０（Ａ）〜（Ｄ）のタイミングチャートでは、ＣＰＵ１０が実行を行うアドレス”００Ｃ”の命令を主記憶装置１６から読み出して命令キャッシュ１２に格納する際、ブロック転送によりアドレス”０００”，”００４”，”００８”の命令が引き続き主記憶装置１６から読み出されて命令キャッシュ１２に格納される。
【００４７】
したがって、ＣＰＵ１０が実行しないアドレス”０００”，”００４”，”００８”の命令が終了するまで、次のアドレス”０１０”の命令が読み出されず、無駄な待ち時間が発生する。
一方、ブロック転送がＯＦＦのとき、ＣＰＵ１０は実行を行うアドレスの命令を命令キャッシュ１２又は主記憶装置１６から読み出して実行する。このとき、命令キャッシュ１２に目的のアドレスの命令がない場合、主記憶装置１６から目的のアドレスの命令を読み出すために待ち時間が発生する。しかし、ブロック転送がＯＦＦであるため、必要なアドレスの命令のみが主記憶装置１６から読み出される。
【００４８】
例えば、図１０（Ｅ）〜（Ｈ）のタイミングチャートでは、ＣＰＵ１０が実行を行うアドレスの命令が主記憶装置１６から順番に読み出されて実行されるため、ブロック転送がＯＮのときに生じる無駄な読み込み時間が発生することがない。したがって、ＣＰＵ１０が実行する命令のみが主記憶装置１６から読み出されるために無駄な待ち時間が発生せず、効率の良い処理が可能となる。
【００４９】
次に、プリフェッチキュー１８の動作がＯＮからＯＦＦに移行した場合の動作について、図１１を利用して説明する。図１１は、プリフェッチキューの動作がＯＮからＯＦＦに移行する場合の一例のタイミング図を示す。また、図１１（Ｂ）〜（Ｅ）はプリフェッチキュー１８の動作がＯＮからＯＦＦに移行した場合の従来のタイミング図であり、図１０（Ｆ）〜（Ｉ）はプリフェッチキュー１８の動作がＯＮからＯＦＦに移行した場合の本願発明のタイミング図である。
【００５０】
プリフェッチキュー制御部２４から供給される信号ＱＥＮＢＬがハイレベルからロウレベルに変化し、プリフェッチキュー１８の動作がＯＮからＯＦＦに移行した場合、図１１（Ｂ）〜（Ｅ）に示す従来の動作では、既にプリフェッチキュー１８に格納されたアドレス”１００”〜”１０Ｅ”の命令を破棄し、新たに、主記憶装置１６からアドレス”１００”〜”１０Ｅ”の命令を読み出す。このように、プリフェッチキュー１８から破棄されたアドレス”１００”〜”１０Ｅ”の命令が再度主記憶装置１６から読み出されることになるため、無駄な待ち時間が発生し、効率が悪い。
【００５１】
一方、図１１（Ｆ）〜（Ｉ）に示す本願発明の動作では、既にプリフェッチキュー１８に格納されたアドレス”１００”〜”１０Ｅ”の命令を順次読み出し、格納されたアドレスの命令が無くなった時点で、新しいアドレスの命令を一つ格納する動作と、格納されたアドレスの命令を読み出す動作とを繰り返す。
このように、プリフェッチキューがＯＦＦの時の動作を、格納しているアドレスの命令が全て無くなった時点で新しいアドレスの命令を読み出すという動作で実現すると、既にプリフェッチキューに格納されたアドレスの命令を破棄することなく有効に利用することができるため、処理効率が低下しない。なお、図１１のタイミング図では、プリフェッチキュー１８は３２ｂｉｔ（１６ビット命令が二つ入る）のバッファが４段ある場合を示している。
【００５２】
以上のように、ＣＰＵ１０が実行する命令に応じて、プリフェッチキュー１８及び命令キャッシュ１２の機能を適切にＯＮ／ＯＦＦできるようにしたことにより、主記憶装置１６からの無駄な読み出しを減少し、処理効率を上げることが可能である。
なお、本願発明は、プリフェッチキュー１８及び命令キャッシュ１２のブロック転送のＯＮ／ＯＦＦをハードウエア・ソフトウエア的に切り換えることも可能であり、また、予めプログラムに切り換えの命令を組み込んでおくことも可能である。
【００５３】
また、上記例において、図７に示すプリフェッチキュー１８が先行読み出し手段に対応し、命令キャッシュ１２が格納手段に対応し、主記憶装置１６が記憶装置に対応し、プリフェッチキュー制御部２４が先行読み出し手段制御部に対応する。
【００５４】
【発明の効果】
上述の如く、本発明によれば、先行読み出し手段は第１の制御信号により機能を制御されることで、実行するプログラムに基づいて適切に機能がオン／オフされ、効率のよい情報の読み出しが可能となる。例えば、分岐処理の多いプログラムの実行時においては、先行読み出し手段の機能が効率のよい情報の読み出しを妨げる場合があるので、その場合に先行読み出し手段の機能を制御して、効率のよい情報の読み出しを可能にする。
【００５５】
また、本発明によれば、先行読み出し手段は既に読み出されている情報のアドレスに基づいて、次に読み出される可能性の高い情報を先行して読み出しておくことにより、中央処理装置と記憶装置との処理速度の差を緩和し、効率のよい情報の読み出しを可能にしている。
また、本発明によれば、先行読み出し手段は第１の制御信号により機能がオン／オフされることで、先行読み出し手段の機能が効率のよい情報の読み出しを妨げる場合に先行読み出し手段の機能をオフして、効率のよい情報の読み出しが可能となる。
【００５６】
また、本発明によれば、先行読み出し手段は機能がオンからオフに移行した場合、既に読み出し済みの情報を破棄することなく、順次出力することができる。したがって、同じ情報を再度読み出す無駄を省き、効率のよい情報の読み出しが可能となる。
【００５７】
また、本発明によれば、格納手段は前記記憶装置から読み出された情報を所定のブロック毎に格納する機能を有し、この機能のオン／オフを制御することができるので、格納手段の読み出された情報を所定のブロック毎に格納する機能が効率のよい情報の読み出しを妨げる場合にこの機能をオフして、効率のよい情報の読み出しが可能となる。
【００５８】
また、本発明によれば、先行読み出し手段で行う先行して情報を読み出しておく機能と格納手段で行う所定のブロック毎に情報を格納する機能とを、中央処理装置で行うプログラムの処理に基づいて、自由にオン／オフすることが可能となる。したがって、ユーザはプログラムの処理を考慮して、自由に先行読み出し手段で行う先行して情報を読み出しておく機能と、格納手段で行う所定のブロック毎に情報を格納する機能とをオン／オフすることにより、効率のよい情報の読み出しが選択できる。
【図面の簡単な説明】
【図１】従来のプリフェッチ機能を有する情報処理システムの一例のブロック図である。
【図２】プリフェッチキューの動作の一例の説明図である。
【図３】命令キャッシュの動作の一例の説明図である。
【図４】プリフェッチキューの動作の一例の説明図である。
【図５】命令キャッシュの動作の一例の説明図である。
【図６】命令キャッシュの動作の一例の説明図である。
【図７】本願発明のプリフェッチ機能を有する情報処理システムの一実施例のブロック図である。
【図８】プリフェッチキューがＯＮ／ＯＦＦの時の一例の動作図である。
【図９】プリフェッチキューがＯＮ／ＯＦＦの時の一例のタイミング図である。
【図１０】ブロック転送がＯＮ／ＯＦＦの時の一例のタイミング図である。
【図１１】プリフェッチキューの動作がＯＮからＯＦＦに移行する場合の一例のタイミング図である。
【符号の説明】
１    情報処理システム
１０    ＣＰＵ
１２    命令キャッシュ
１４    ＢＵＳ−ＣＯＮＴＲＯＬ
１６    主記憶装置
１８    プリフェッチキュー
２０    命令デコーダ
２２    バスアクセス制御部
２４    プリフェッチキュー制御部
【図１】
0003573980.tif 000002
【図２】
0003573980.tif 000003
【図３】
0003573980.tif 000004
【図４】
0003573980.tif 000005
【図５】
0003573980.tif 000006
【図６】
0003573980.tif 000007
【図７】
0003573980.tif 000008
【図８】
0003573980.tif 000009
【図９】
0003573980.tif 000010
【図１０】
0003573980.tif 000011
【図１１】
0003573980.tif 000012