(57)【要約】【課題】キャッシュの同一ブロック内の領域にアクセスするストア命令のフラッシュを一度に行う技術では、ベクトルストア命令のディスタンスが大きくなるとその効果が少なくなり、ディスタンスの大きさがブロックサイズ以上になると効果がない。【解決手段】本発明のキャッシュフラッシュ制御装置は、キャッシュアドレス生成部とキャッシュアドレス制御部とを具備している。ベクトル演算処理を行う情報処理装置におけるキャッシュ上には複数のデータが格納されている。キャッシュアドレス生成部は、情報処理装置がベクトルストア命令を実行するときに、ベクトルストア命令がアクセスする領域のアドレスであり、且つ、同一のタグを含むアドレス群を生成する。キャッシュアドレス制御部は、複数のデータのうちのアドレス群にそれぞれ対応し、且つ、複数のブロックに亘って連続する領域のデータ群を一度に無効化するフラッシュ処理を行う。【選択図】図２
2011096195.tif 000002
【特許請求の範囲】
【請求項１】
ベクトル演算処理を行う情報処理装置におけるキャッシュ上に複数のデータが格納されていて、前記情報処理装置がベクトルストア命令を実行するときに、前記ベクトルストア命令がアクセスする領域のアドレスであり、且つ、同一のタグを含むアドレス群を生成するキャッシュアドレス生成部と、
前記複数のデータのうちの前記アドレス群にそれぞれ対応し、且つ、複数のブロックに亘って連続する領域のデータ群を一度に無効化するフラッシュ処理を行うキャッシュアドレス制御部と
を具備するキャッシュフラッシュ制御装置。
【請求項２】
前記キャッシュ上に格納されている前記複数のデータのそれぞれが有効であることを示す複数の有効情報が格納されたキャッシュ有効情報格納部
を更に具備し、
前記キャッシュアドレス制御部は、前記フラッシュ処理の実行において、前記キャッシュ有効情報格納部に格納された前記複数の有効情報のうちの、前記データ群の有効情報を一度に無効化する
請求項１に記載のキャッシュフラッシュ制御装置。
【請求項３】
前記キャッシュアドレス生成部は、前記情報処理装置が前記ベクトルストア命令を実行するときに、前記アドレス群のうちの先頭要素から最終要素までのアドレスをフラッシュ対象アドレスとして１サイクル毎に順番に生成して、
前記キャッシュアドレス制御部は、前記フラッシュ処理の実行において、先頭要素から最終要素までの前記フラッシュ対象アドレスにそれぞれ対応した前記データ群の有効情報を順番に無効化する
請求項２に記載のキャッシュフラッシュ制御装置。
【請求項４】
前記キャッシュアドレス生成部は、
前記情報処理装置が前記ベクトルストア命令を実行するときに、前記アドレス群のうちの先頭要素のアドレスを生成するアドレス生成部と、
１サイクル毎に前記フラッシュ対象アドレスに１アドレス分を加算し、それを次の要素のフラッシュ対象アドレスとして出力する加算器と、
１サイクル目に前記先頭要素のアドレスを前記フラッシュ対象アドレスとして出力し、２サイクル目以降に前記次の要素のフラッシュ対象アドレスを前記フラッシュ対象アドレスとして出力するフラッシュ対象アドレス選択部と
を具備する請求項３に記載のキャッシュフラッシュ制御装置。
【請求項５】
前記アドレス生成部は、前記情報処理装置が前記ベクトルストア命令を実行するときに、前記先頭要素のアドレスと共に、前記アドレス群のうちの最終要素のアドレスを生成し、
前記キャッシュアドレス生成部は、
前記フラッシュ対象アドレスと前記最終要素のアドレスとが一致するとき、前記フラッシュ処理が完了したことを示すフラッシュ処理完了通知を前記情報処理装置に出力するフラッシュ処理終了判定部
を更に具備する請求項４に記載のキャッシュフラッシュ制御装置。
【請求項６】
前記キャッシュ有効情報格納部は、
前記複数の有効情報がそれぞれ格納された複数の有効情報格納部
を具備し、
前記キャッシュアドレス制御部は、
前記複数の有効情報格納部に対応付けられて複数のアドレスがそれぞれ格納された複数のタグアドレス格納部と、
それぞれ、その入力に前記複数のタグアドレス格納部が接続され、その出力に前記複数の有効情報格納部が接続された複数のタグアドレス比較器と
を具備し、
前記複数のタグアドレス比較器のうちのタグアドレス比較器群は、前記フラッシュ対象アドレスを順番に入力し、前記フラッシュ対象アドレスと、前記複数のタグアドレス格納部のうちのタグアドレス格納部群に格納された前記アドレス群とが一致したとき、前記複数の有効情報格納部のうちの有効情報格納部群に格納された前記データ群の有効情報を無効化する
請求項３〜５のいずれかに記載のキャッシュフラッシュ制御装置。
【請求項７】
ベクトル演算処理を行う情報処理装置におけるキャッシュ上に複数のデータが格納されていて、前記情報処理装置がベクトルストア命令を実行するときに、前記ベクトルストア命令がアクセスする領域のアドレスであり、且つ、同一のタグを含むアドレス群を生成するステップと、
前記複数のデータのうちの前記アドレス群にそれぞれ対応し、且つ、複数のブロックに亘って連続する領域のデータ群を一度に無効化するフラッシュ処理を行うステップと
を具備するキャッシュフラッシュ制御方法。
【請求項８】
前記フラッシュ処理を行うステップは、前記フラッシュ処理の実行において、前記キャッシュ上に格納されている前記複数のデータのそれぞれが有効であることを示す複数の有効情報が格納されたキャッシュ有効情報格納部を参照して、前記複数の有効情報のうちの、前記データ群の有効情報を一度に無効化するステップ
を含む請求項７に記載のキャッシュフラッシュ制御方法。
【請求項９】
前記アドレス群を生成するステップは、
前記情報処理装置が前記ベクトルストア命令を実行するときに、前記アドレス群のうちの先頭要素から最終要素までのアドレスをフラッシュ対象アドレスとして１サイクル毎に順番に生成するステップ
を含み、
前記フラッシュ処理を行うステップは、
前記フラッシュ処理の実行において、先頭要素から最終要素までの前記フラッシュ対象アドレスにそれぞれ対応した前記データ群の有効情報を順番に無効化するするステップ
を含む請求項８に記載のキャッシュフラッシュ制御方法。
【請求項１０】
前記フラッシュ対象アドレスを１サイクル毎に順番に生成するステップは、
前記情報処理装置が前記ベクトルストア命令を実行するときに、前記アドレス群のうちの先頭要素のアドレスを生成するステップと、
１サイクル目に前記先頭要素のアドレスを前記フラッシュ対象アドレスとして出力するステップと、
１サイクル毎に前記フラッシュ対象アドレスに１アドレス分を加算し、それを次の要素のフラッシュ対象アドレスとして出力するステップと、
２サイクル目以降に前記次の要素のフラッシュ対象アドレスを前記フラッシュ対象アドレスとして出力するステップと
を含む請求項９に記載のキャッシュフラッシュ制御方法。
【請求項１１】
前記フラッシュ対象アドレスを１サイクル毎に順番に生成するステップは、
前記情報処理装置が前記ベクトルストア命令を実行するときに、前記先頭要素のアドレスと共に、前記アドレス群のうちの最終要素のアドレスを生成するステップと、
前記フラッシュ対象アドレスと前記最終要素のアドレスとが一致するとき、前記フラッシュ処理が完了したことを示すフラッシュ処理完了通知を前記情報処理装置に出力するステップ
を更に含む請求項１０に記載のキャッシュフラッシュ制御方法。
【請求項１２】
前記データ群の有効情報を順番に無効化するするステップは、
前記フラッシュ対象アドレスを順番に入力するステップと、前記キャッシュ有効情報格納部の複数の有効情報格納部には、前記複数の有効情報がそれぞれ格納され、複数のタグアドレス格納部には、前記複数の有効情報格納部に対応付けられて複数のアドレスがそれぞれ格納され、
前記フラッシュ対象アドレスと、前記複数のタグアドレス格納部のうちのタグアドレス格納部群に格納された前記アドレス群とが一致したとき、前記複数の有効情報格納部のうちの有効情報格納部群に格納された前記データ群の有効情報を無効化するステップと
を含む請求項９〜１１のいずれかに記載のキャッシュフラッシュ制御方法。
【請求項１３】
請求項７〜１２のいずれかに記載のキャッシュフラッシュ制御方法の各ステップをコンピュータに実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ベクトル演算処理を行う情報処理装置におけるキャッシュ上のデータを無効化するキャッシュフラッシュ制御装置に関する。
【背景技術】
【０００２】
例えば、従来のキャッシュフラッシュ制御装置として、特開昭６０−０１５７５９号公報にキャッシュ無効化制御装置が記載されている。従来のキャッシュフラッシュ制御装置は、情報処理装置がストア命令を実行するときに、同一ブロック内の領域のデータを一度に無効化する（そのデータに対して一度にキャッシュフラッシュを行う）。
【０００３】
しかしながら、従来のキャッシュフラッシュ制御装置においては、次のような課題がある。
【０００４】
その課題とは、キャッシュの同一ブロック内の領域のデータに対してキャッシュフラッシュを行うため、ベクトルストア命令のディスタンスが大きくなるとその効果が少なくなり、ディスタンスの大きさがブロックサイズ以上になると効果がないことである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開昭６０−０１５７５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
キャッシュフラッシュ制御装置では、以下の２つの特徴を有している。
【０００７】
（特徴１）
データをキャッシュに格納する際、アドレスは３つの情報（タグ、インデックス及びブロック）として管理される。複数のブロックに亘って連続する領域のデータがキャッシュに格納されている場合、そのデータのタグは一致する。
【０００８】
（特徴２）
ベクトルストア命令のアクセス領域は連続である。
【０００９】
そこで、本発明の課題は、上記の２つの特徴に着目したキャッシュフラッシュ制御装置を提供することである。
【課題を解決するための手段】
【００１０】
本発明のキャッシュフラッシュ制御装置は、キャッシュアドレス生成部とキャッシュアドレス制御部とを具備している。ベクトル演算処理を行う情報処理装置におけるキャッシュ上には複数のデータが格納されている。キャッシュアドレス生成部は、情報処理装置がベクトルストア命令を実行するときに、ベクトルストア命令がアクセスする領域のアドレスであり、且つ、同一のタグを含むアドレス群を生成する。キャッシュアドレス制御部は、複数のデータのうちのアドレス群にそれぞれ対応し、且つ、複数のブロックに亘って連続する領域のデータ群を一度に無効化するフラッシュ処理を行う。
【発明の効果】
【００１１】
本発明のキャッシュフラッシュ制御装置では、インデックスアドレスが連続する領域（複数のブロックに亘って連続する領域）にアクセスするベクトルストア命令のフラッシュを一度に行う。この場合、例えば、要素１から２５６の２５６個のフラッシュを一度に行うことができる。つまり、ベクトルストア命令のキャッシュフラッシュに必要なフラッシュ処理の回数を１回とすることができる。
【図面の簡単な説明】
【００１２】
【図１Ａ】図１Ａは、本発明の実施形態によるキャッシュフラッシュ制御装置の構成を示している。
【図１Ｂ】図１Ｂは、本発明の実施形態によるキャッシュフラッシュ制御装置の構成を示している。
【図２】図２は、本発明の実施形態によるキャッシュフラッシュ制御装置の動作を示すフローチャートである。
【図３Ａ】図３Ａは、本発明の実施形態によるキャッシュフラッシュ制御装置の効果を説明するための図であり、処理方法の違いを示している。
【図３Ｂ】図３Ｂは、本発明の実施形態によるキャッシュフラッシュ制御装置の効果を説明するための図であり、データが格納された領域を示している。
【図３Ｃ】図３Ｃは、本発明の実施形態によるキャッシュフラッシュ制御装置の効果を説明するための図であり、アドレス（タグ、インデックス、ブロック）を示している。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、本発明の実施形態によるキャッシュフラッシュ制御装置について詳細に説明する。
【００１４】
［構成］
図１Ａ、１Ｂは、本発明の実施形態によるキャッシュフラッシュ制御装置の構成を示している。
【００１５】
本発明の実施形態によるキャッシュフラッシュ制御装置は、ベクトル演算処理を行う情報処理装置に接続されている。情報処理装置におけるキャッシュ上には、複数のデータが格納されている。ここで、キャッシュの構成は、容量６４ＫＢ、ウェイ数２、ブロックサイズ６４Ｂ（６ｂｉｔ）、インデックス：５１２（９ｂｉｔ）であるものとする。
【００１６】
本発明の実施形態によるキャッシュフラッシュ制御装置は、キャッシュアドレス生成部（１７００、１１０４、１２００、１２１０、１２２０、１３００、１３０１、１３０３、１３１０）と、キャッシュアドレス制御部１４００とを具備している。キャッシュアドレス生成部（１７００、１１０４、１２００、１２１０、１２２０、１３００、１３０１、１３０３、１３１０）は、情報処理装置がベクトルストア命令を実行するときに、ベクトルストア命令がアクセスする領域のアドレスであり、且つ、同一のタグを含むアドレス群を生成する。キャッシュアドレス制御部１４００は、複数のデータのうちのアドレス群にそれぞれ対応し、且つ、複数のブロックに亘って連続する領域（ブロックサイズ×インデックス数）のデータ群に対して一度にフラッシュ処理を行う。これにより、従来に比べて、一度にフラッシュ可能な領域を広げることができる。
【００１７】
ここで、フラッシュ処理とは、ロード命令によりキャッシュに登録されたデータ群と同じ領域に、後続のストア命令がアクセスする場合、そのデータ群を無効化する処理を意味する。
【００１８】
本発明の実施形態によるキャッシュフラッシュ制御装置は、更に、キャッシュ有効情報格納部１５００を具備している。キャッシュ有効情報格納部１５００には、キャッシュ上に格納されている複数のデータのそれぞれが有効であることを示す複数の有効情報（Ｖｂｉｔ）が格納されている。キャッシュアドレス生成部（１７００、１１０４、１２００、１２１０、１２２０、１３００、１３０１、１３０３、１３１０）は、情報処理装置がベクトルストア命令を実行するときに、アドレス群のうちの先頭要素から最終要素までのアドレスをフラッシュ対象アドレス１３０２として１サイクル毎に順番に生成する。キャッシュアドレス制御部１４００は、フラッシュ処理の実行において、キャッシュ有効情報格納部１５００に格納された複数の有効情報（Ｖｂｉｔ）のうちの、先頭要素から最終要素までのフラッシュ対象アドレス１３０２にそれぞれ対応したデータ群の有効情報Ｖｂｉｔを順番に無効化する。
【００１９】
キャッシュアドレス生成部（１７００、１１０４、１２００、１２１０、１２２０、１３００、１３０１、１３０３、１３１０）は、命令発行部１７００、アドレス生成部１１０４、フラッシュ処理開始フラグレジスタ１２００、先頭要素アドレスレジスタ１２１０、最終要素アドレスレジスタ１２２０、保存用フラッシュ対象アドレスレジスタ１３００、フラッシュ対象アドレス選択部１３０１、加算器１３０３、フラッシュ処理終了判定部１３１０を具備している。
【００２０】
命令発行部１７００は、情報処理装置が実行する命令の発行を行う。命令発行部１７００は、情報処理装置がベクトルストア命令を実行するとき、そのベクトルストア命令が有効であることを示すベクトルストア命令信号（Ｖｂｉｔ）１１００を発行し、そのベクトルストア命令がアクセスする領域のアドレスの基点となるアドレス（ベースアドレス）を示すベクトルストア命令ベースアドレス１１０１と、そのベクトルストア命令がアクセスする領域のアドレスの距離（ディスタンス）を示すベクトルストア命令ディスタンス１１０２と、そのベクトルストア命令がキャッシュに格納するデータの個数（要素数）を示すベクトルストア命令要素数１１０３と、を出力する。
【００２１】
アドレス生成部１１０４は、命令発行部１７００からのベクトルストア命令ベースアドレス１１０１、ベクトルストア命令ディスタンス１１０２、及びベクトルストア命令要素数１１０３に基づいて、ベクトルストア命令がアクセスする領域のうちの先頭要素がアクセスする領域のアドレス及び最終要素がアクセスする領域のアドレスを計算することにより、先頭要素のアドレス１２１１及び最終要素のアドレス１２２１を生成する。
【００２２】
ここで、ベクトルストア命令要素数１１０３が示す要素数をＮとした場合、ベクトルストア命令がアクセスするアドレスは、
ベクトルストア命令の要素１のアドレス（先頭要素のアドレス）＝ベースアドレス
ベクトルストア命令の要素２のアドレス＝ベースアドレス＋ディスタンス
ベクトルストア命令の要素３のアドレス＝ベースアドレス＋ディスタンス×２
・
・
ベクトルストア命令の要素Ｎのアドレス（最終要素のアドレス）＝ベースアドレス＋ディスタンス×（Ｎ−１）
により求められる。
【００２３】
フラッシュ処理開始フラグレジスタ１２００は、命令発行部１７００からのベクトルストア命令信号（Ｖｂｉｔ）１１００をフラッシュ処理開始フラグとして格納する。フラッシュ処理開始フラグレジスタ１２００は、フラッシュ処理を開始する１サイクルだけフラッシュ処理開始フラグを示す“１”を格納し、１サイクル後にフラッシュ処理開始フラグの削除を示す“０”を格納する。
【００２４】
先頭要素アドレスレジスタ１２１０は、フラッシュ処理の開始時に、アドレス生成部１１０４からの先頭要素のアドレス１２１１を格納する。
【００２５】
最終要素アドレスレジスタ１２２０は、フラッシュ処理の開始時に、アドレス生成部１１０４からの最終要素のアドレス１２２１を格納する。
【００２６】
保存用フラッシュ対象アドレスレジスタ１３００は、２サイクル目以降のフラッシュ対象アドレスを格納する。
【００２７】
フラッシュ対象アドレス選択部１３０１は、１サイクル目に、先頭要素アドレスレジスタ１２１０に格納されている先頭要素のアドレス（要素１のアドレス）１２１１を選択し、これをフラッシュ対象アドレス１３０２として出力し、２サイクル目以降に、保存用フラッシュ対象アドレスレジスタ１３００に格納されているアドレス（次の要素のフラッシュ対象アドレス１３０２）を選択し、これをフラッシュ対象アドレス１３０２として出力する。具体的には、フラッシュ処理開始フラグが点灯している場合（１回目のフラッシュ処理の場合）、フラッシュ対象アドレス選択部１３０１は、先頭要素アドレスレジスタ１２１０に格納されている先頭要素のアドレス１２１１を選択し、これをフラッシュ対象アドレス１３０２として出力する。フラッシュ処理開始フラグが点灯していない場合（２回目以降のフラッシュ処理の場合）、フラッシュ対象アドレス選択部１３０１は、保存用フラッシュ対象アドレスレジスタ１３００に格納されているフラッシュ対象アドレス１３０２を選択し、これをフラッシュ対象アドレス１３０２として出力する。
【００２８】
加算器１３０３は、２回目以降のフラッシュ処理の場合、１サイクル毎にフラッシュ対象アドレス１３０２に１アドレス分を加算し、それを次の要素のフラッシュ対象アドレス１３０２として保存用フラッシュ対象アドレスレジスタ１３００に格納する。
【００２９】
フラッシュ処理終了判定部１３１０は、フラッシュ対象アドレス１３０２と最終要素アドレスレジスタ１２２０に格納されている最終要素のアドレス１２２１（要素Ｎのアドレス）１２２１との比較を行う。フラッシュ対象アドレス１３０２と最終要素のアドレス１２２１とが一致する場合は、フラッシュ処理終了判定部１３１０は、フラッシュ処理が終了したことを示す信号としてフラッシュ処理完了通知１３１１を情報処理装置に出力する。
【００３０】
キャッシュ有効情報格納部１５００は、複数の有効情報格納部（図示しない）を具備している。複数の有効情報格納部には、キャッシュ上に格納されている複数のデータのそれぞれが有効であることを示す複数の有効情報（Ｖｂｉｔ）がそれぞれ格納されている。キャッシュアドレス制御部１４００は、複数のタグアドレス格納部と、複数のタグアドレス比較器を具備している。複数のタグアドレス格納部には、それぞれ、複数の有効情報格納部に対応付けられて複数のアドレスが格納されている。複数のアドレスは、それぞれ、キャッシュ上に格納されている上記の複数のデータのアドレス（タグアドレス）である。複数のタグアドレス比較器は、それぞれ、その第１の入力にフラッシュ対象アドレス１３０２が供給され、その第２の入力に複数のタグアドレス格納部が接続され、その出力に複数の有効情報格納部が接続されている。
【００３１】
ここで、複数のタグアドレス格納部のうちのタグアドレス格納部群をそれぞれタグアドレス格納部１４１０、１４２０、１４３０、１４４０、…、１４５０、１４６０と称する。複数のタグアドレス比較器のうちのタグアドレス比較器群をそれぞれタグアドレス比較器群１４１１、１４２１、１４３１、１４４１、…、１４５１、１４６１と称する。複数の有効情報格納部のうちの有効情報格納部群をそれぞれ有効情報格納部群１５１０、１５２０、１５３０、１５４０、…、１５５０、１５６０と称する。この場合、タグアドレス比較器群１４１１、１４２１、１４３１、１４４１、…、１４５１、１４６１は、それぞれ、その第１の入力にフラッシュ対象アドレス１３０２が供給され、その第２の入力にタグアドレス格納部群１４１０、１４２０、１４３０、１４４０、…、１４５０、１４６０が接続され、その出力に有効情報格納部群１５１０、１５２０、１５３０、１５４０、…、１５５０、１５６０が接続されている。
【００３２】
タグアドレス比較器群１４１１、１４２１、１４３１、１４４１、…、１４５１、１４６１は、フラッシュ対象アドレス１３０２を順番に入力し、フラッシュ対象アドレス１３０２と、タグアドレス格納部群１４１０、１４２０、１４３０、１４４０、…、１４５０、１４６０に格納されたアドレス群とが一致したとき、有効情報格納部群１５１０、１５２０、１５３０、１５４０、…、１５５０、１５６０に格納されたデータ群の有効情報Ｖｂｉｔを無効化する。これについて具体的に説明する。
【００３３】
タグアドレス格納部１４１０は、キャッシュのインデックス＝０でウェイ＝０に格納されているデータのタグアドレスが格納されている。
【００３４】
タグアドレス格納部１４２０は、キャッシュのインデックス＝０でウェイ＝１に格納されているデータのタグアドレスが格納されている。
【００３５】
タグアドレス格納部１４３０は、キャッシュのインデックス＝１でウェイ＝０に格納されているデータのタグアドレスが格納されている。
【００３６】
タグアドレス格納部１４４０は、キャッシュのインデックス＝１でウェイ＝１に格納されているデータのタグアドレスが格納されている。
【００３７】
タグアドレス格納部１４５０は、キャッシュのインデックス＝５１１でウェイ＝０に格納されているデータのタグアドレスが格納されている。
【００３８】
タグアドレス格納部１４６０は、キャッシュのインデックス＝５１１でウェイ＝１に格納されているデータのタグアドレスが格納されている。
【００３９】
タグアドレス比較器１４１１は、フラッシュ対象アドレス１３０２とタグアドレス格納部１４１０との比較を行い、比較結果が一致を表す場合は“１”を示すフラッシュ指示１６１０を出力し、比較結果が一致を表さない場合は“０”を示すフラッシュ指示１６１０を出力する。
【００４０】
タグアドレス比較器１４２１は、フラッシュ対象アドレス１３０２とタグアドレス格納部１４２０との比較を行い、比較結果が一致を表す場合は“１”を示すフラッシュ指示１６２０を出力し、比較結果が一致を表さない場合は“０”を示すフラッシュ指示１６２０を出力する。
【００４１】
タグアドレス比較器１４３１は、フラッシュ対象アドレス１３０２とタグアドレス格納部１４３０との比較を行い、比較結果が一致を表す場合は“１”を示すフラッシュ指示１６３０を出力し、比較結果が一致を表さない場合は“０”を示すフラッシュ指示１６３０を出力する。
【００４２】
タグアドレス比較器１４４１は、フラッシュ対象アドレス１３０２とタグアドレス格納部１４４０との比較を行い、比較結果が一致を表す場合は“１”を示すフラッシュ指示１６４０を出力し、比較結果が一致を表さない場合は“０”を示すフラッシュ指示１６４０を出力する。
【００４３】
タグアドレス比較器１４５１は、フラッシュ対象アドレス１３０２とタグアドレス格納部１４５０との比較を行い、比較結果が一致を表す場合は“１”を示すフラッシュ指示１６５０を出力し、比較結果が一致を表さない場合は“０”を示すフラッシュ指示１６５０を出力する。
【００４４】
タグアドレス比較器１４６１は、フラッシュ対象アドレス１３０２とタグアドレス格納部１４６０との比較を行い、比較結果が一致を表す場合は“１”を示すフラッシュ指示１６６０を出力し、比較結果が一致を表さない場合は“０”を示すフラッシュ指示１６６０を出力する。
【００４５】
有効情報格納部１５１０は、キャッシュのインデックス＝０でウェイ＝０に格納されているデータが有効であることを示す有効情報（Ｖｂｉｔ）が格納されている。ここで、フラッシュ指示１６１０の値が１の場合は有効情報格納部１５１０に格納されている有効情報（Ｖｂｉｔ）がリセット（無効化）されて、フラッシュ指示１６１０の値が０の場合は有効情報格納部１５１０に格納されている有効情報（Ｖｂｉｔ）がリセットされない。
【００４６】
有効情報格納部１５２０は、キャッシュのインデックス＝０でウェイ＝１に格納されているデータが有効であることを示す有効情報（Ｖｂｉｔ）が格納されている。ここで、フラッシュ指示１６２０の値が１の場合は有効情報格納部１５２０に格納されている有効情報（Ｖｂｉｔ）がリセットされて、フラッシュ指示１６２０の値が０の場合は有効情報格納部１５２０に格納されている有効情報（Ｖｂｉｔ）がリセットされない。
【００４７】
有効情報格納部１５３０は、キャッシュのインデックス＝１でウェイ＝０に格納されているデータが有効であることを示す有効情報（Ｖｂｉｔ）が格納されている。ここで、フラッシュ指示１６３０の値が１の場合は有効情報格納部１５３０に格納されている有効情報（Ｖｂｉｔ）がリセットされて、フラッシュ指示１６３０の値が０の場合は有効情報格納部１５３０に格納されている有効情報（Ｖｂｉｔ）がリセットされない。
【００４８】
有効情報格納部１５４０は、キャッシュのインデックス＝１でウェイ＝１に格納されているデータが有効であることを示す有効情報（Ｖｂｉｔ）が格納されている。ここで、フラッシュ指示１６４０の値が１の場合は有効情報格納部１５４０に格納されている有効情報（Ｖｂｉｔ）がリセットされて、フラッシュ指示１６４０の値が０の場合は有効情報格納部１５４０に格納されている有効情報（Ｖｂｉｔ）がリセットされない。
【００４９】
有効情報格納部１５５０は、キャッシュのインデックス＝５１１でウェイ＝０に格納されているデータが有効であることを示す有効情報（Ｖｂｉｔ）が格納されている。ここで、フラッシュ指示１６５０の値が１の場合は有効情報格納部１５５０に格納されている有効情報（Ｖｂｉｔ）がリセットされて、フラッシュ指示１６５０の値が０の場合は有効情報格納部１５５０に格納されている有効情報（Ｖｂｉｔ）がリセットされない。
【００５０】
有効情報格納部１５６０は、キャッシュのインデックス＝５１１でウェイ＝１に格納されているデータが有効であることを示す有効情報（Ｖｂｉｔ）が格納されている。ここで、フラッシュ指示１６６０の値が１の場合は有効情報格納部１５６０に格納されている有効情報（Ｖｂｉｔ）がリセットされて、フラッシュ指示１６６０の値が０の場合は有効情報格納部１５６０に格納されている有効情報（Ｖｂｉｔ）がリセットされない。
【００５１】
［動作］
図２は、本発明の実施形態によるキャッシュフラッシュ制御装置の動作（キャッシュフラッシュ制御方法）を示すフローチャートである。
【００５２】
まず、フラッシュ処理が開始されると、ベクトルストア命令が情報処理装置から命令発行部１７００に与えられる。このとき、命令発行部１７００は、そのベクトルストア命令が有効であることを示すベクトルストア命令信号（Ｖｂｉｔ）１１００を発行し、ベクトルストア命令のベースアドレスを示すベクトルストア命令ベースアドレス１１０１と、ベクトルストア命令のディスタンスを示すベクトルストア命令ディスタンス１１０２と、ベクトルストア命令の要素数を示すベクトルストア命令要素数１１０４とを出力する。
【００５３】
アドレス生成部１１０４は、命令発行部１７００からのベクトルストア命令ベースアドレス１１０１、ベクトルストア命令ディスタンス１１０２、及びベクトルストア命令要素数１１０３に基づいて、先頭要素のアドレス１２１１及び最終要素のアドレス１２２１を計算（生成）する（図２の２０１０）。
【００５４】
アドレス生成部１１０４は、その先頭要素のアドレス１２１１及び最終要素のアドレス１２２１をそれぞれ先頭要素アドレスレジスタ１２１０及び最終要素アドレスレジスタ１２２０に格納する（図２の２０２０）。
【００５５】
また、フラッシュ処理開始フラグレジスタ１２００は、命令発行部１７００からのベクトルストア命令信号（Ｖｂｉｔ）１１００をフラッシュ処理開始フラグ“１”として１サイクルだけ格納する（図２の２０２０）。
【００５６】
フラッシュ処理開始フラグが点灯している場合、即ち、フラッシュ処理開始フラグレジスタ１２００にフラッシュ処理開始フラグが格納されている場合、１回目のフラッシュ処理であることを意味している（図２の２０３０）。
【００５７】
フラッシュ処理開始フラグが点灯している場合、フラッシュ対象アドレス選択部１３０１は、先頭要素アドレスレジスタ１２１０に格納されている先頭要素のアドレス（要素１のアドレス）１２１１を選択し、これをフラッシュ対象アドレス１３０２として出力する（図２の２０４０）。
【００５８】
以降、１回目のフラッシュ処理が実行される。
【００５９】
キャッシュアドレス制御部１４００は、フラッシュ対象アドレス１３０２とタグアドレス格納部１４１０、１４２０、１４３０、１４４０、…、１４５０、１４６０に格納されている全てのアドレス（タグアドレス）との比較を行い、比較結果に基づいて、データの有効情報（Ｖｂｉｔ）を無効化する。
【００６０】
まず、キャッシュのインデックス“０〜５１１”のうちのインデックス“０”で、ウェイ“０〜１”のうちのウェイ“０”に格納されているデータの有効情報を無効化する場合について説明する。
【００６１】
タグアドレス比較器１４１１は、フラッシュ対象アドレス１３０２とタグアドレス格納部１４１０に格納されているタグアドレスとの比較を行い、比較結果をフラッシュ指示１６１０として出力する。このとき、タグアドレス比較器１４１１は、比較結果が一致を表す場合は“１”を示すフラッシュ指示１６１０を出力し、比較結果が一致を表さない場合は“０”を示すフラッシュ指示１６１０を出力する（図２の２０５０）。
【００６２】
ここで、フラッシュ指示１６１０の値が“１”である場合、有効情報格納部１５１０に格納されている有効情報（Ｖｂｉｔ）がリセット（無効化）される（図２の２０６０）。
【００６３】
次に、キャッシュのインデックス“０”でウェイ“１”に格納されているデータの有効情報を無効化する場合について説明する。
【００６４】
タグアドレス比較器１４２１は、フラッシュ対象アドレス１３０２とタグアドレス格納部１４２０に格納されているタグアドレスとの比較を行い、比較結果をフラッシュ指示１６２０として出力する。このとき、タグアドレス比較器１４２１は、比較結果が一致を表す場合は“１”を示すフラッシュ指示１６２０を出力し、比較結果が一致を表さない場合は“０”を示すフラッシュ指示１６２０を出力する（図２の２０５０）。
【００６５】
ここで、フラッシュ指示１６２０の値が“１”である場合、有効情報格納部１５２０に格納されている有効情報（Ｖｂｉｔ）がリセット（無効化）される（図２の２０６０）。
【００６６】
以上の処理により、キャッシュのインデックス“０”でウェイ“０〜１”に格納されているデータの有効情報の無効化が完了する。
【００６７】
同様の処理をインデックス“１〜５１１”に対して行い、インデックス“１〜５１１”でウェイ“０〜１”に格納されているデータの有効情報の無効化が完了する。
【００６８】
これにより、１回目のフラッシュ処理が完了する。
【００６９】
２回目以降のフラッシュ処理は、１回目のフラッシュ処理と同様に処理される。
【００７０】
次に、フラッシュ処理終了判定部１３１０は、現在のフラッシュ処理が何回目のフラッシュ処理であるか判定する。この場合、フラッシュ処理終了判定部１３１０は、フラッシュ対象アドレス１３０２と最終要素アドレスレジスタ１２２０に格納されている最終要素のアドレス（要素Ｎのアドレス）１２２１との比較を行う。
【００７１】
比較結果、フラッシュ対象アドレス１３０２と最終要素アドレスレジスタ１２２０に格納されている最終要素のアドレス１２２１とが一致している場合、フラッシュ処理終了判定部１３１０は、フラッシュ処理が完了したことを示すフラッシュ処理完了通知１３１１を情報処理装置に出力する（図２の２０７０の一致）。
【００７２】
比較結果、フラッシュ対象アドレス１３０２と最終要素アドレスレジスタ１２２０に格納されている最終要素のアドレス１２２１とが一致していない場合、フラッシュ処理が完了してないことを示し、フラッシュ処理を継続する（図２の２０７０の不一致）。
【００７３】
一致していない場合、加算器１３０３は、１サイクル毎にフラッシュ対象アドレス１３０２に１アドレス分を加算し（図２の２０８０）、それを次の要素のフラッシュ対象アドレス１３０２として保存用フラッシュ対象アドレスレジスタ１３００に格納する（図２の２０２１）。
【００７４】
以降、２回目のフラッシュ処理が実行される。
【００７５】
フラッシュ処理開始フラグが点灯していない場合、即ち、フラッシュ処理開始フラグレジスタ１２００に１サイクルだけ“１”が格納された後に、“０”が格納されている場合、２回目以降のフラッシュ処理であることを意味している（図２の２０３０）。
【００７６】
フラッシュ処理開始フラグが点灯していない場合（２回目以降のフラッシュ処理の場合）、フラッシュ対象アドレス選択部１３０１は、保存用フラッシュ対象アドレスレジスタ１３００に格納されているアドレス（次の要素のフラッシュ対象アドレス１３０２）を選択し、これをフラッシュ対象アドレス１３０２として出力する（図２の２０４１）。
【００７７】
２回目以降のフラッシュ処理は、１回目のフラッシュ処理と同様に処理される。
【００７８】
以降では、フラッシュ対象アドレス１３０２と最終要素アドレスレジスタ１２２０に格納されている最終要素のアドレスとが一致するまで、２回目と同様の処理を繰り返し行うことにより、ベクトルストア命令がアクセスする全領域のキャッシュフラッシュが完了する。
【００７９】
［効果］
図３Ａ〜３Ｃを用いて、本発明の実施形態によるキャッシュフラッシュ制御装置の効果を説明する。
【００８０】
ここで、下記の構成のキャッシュにおいて、下記のベクトルストア命令を実行した場合を想定する。
【００８１】
キャッシュの構成
・６４ＫＢ  ２−Ｗａｙ
・ブロックサイズ；６４Ｂ（６ｂｉｔ）
・インデックス；５１２（９ｂｉｔ)
・タグ；１７ｂｉｔ  （３２ｂｉｔアドレスの場合）
【００８２】
ベクトルストア命令
・ベースアドレス；０
・ディスタンス；１６バイト
・要素数；２５６個
【００８３】
まず、キャッシュフラッシュの高速化なしの場合（図３Ａの「キャッシュフラッシュの処理方法」の「なし」を参照）について説明する。この場合、図３Ｂに示されるように、前述のベクトルストア命令の１要素単位でフラッシュ処理を行う。このため、要素数と同じ回数のフラッシュ処理が必要であり、合計２５６回のフラッシュ処理が必要となる。
【００８４】
次に、従来技術（特開昭６０−０１５７５９号公報）を用いたキャッシュフラッシュの場合（図３Ａの「キャッシュフラッシュの処理方法」の「従来技術」を参照）について説明する。この場合、同一ブロック内の領域にアクセスするベクトルストア命令のフラッシュを一度に行うため、この例では、図３Ｂに示されるように、要素１、２、３、４の４個のフラッシュを一度に行う。このため、前述のベクトルストア命令のキャッシュフラッシュに必要なフラッシュ処理の回数は合計６４回となる。
【００８５】
次に、本発明を用いたキャッシュフラッシュの場合（図３Ａの「キャッシュフラッシュの処理方法」の「本発明」を参照）について説明する。この場合、インデックスアドレスが連続する領域（複数のブロックに亘って連続する領域）にアクセスするベクトルストア命令のフラッシュを一度に行うため、図３Ｂ、３Ｃに示されるように、要素１から２５６の２５６個のフラッシュを一度に行うことができる。つまり、前述のベクトルストア命令のキャッシュフラッシュに必要なフラッシュ処理の回数を１回とすることができる。
【００８６】
なお、本発明の実施形態によるキャッシュフラッシュ制御装置は、コンピュータプログラムでも回路でも実現可能である。コンピュータプログラムで実現する場合、本発明の実施形態によるキャッシュフラッシュ制御装置は、コンピュータ（図示しない）であり、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）（図示しない）と、記録媒体である記憶部（図示しない）とを具備している。記憶部には、コンピュータに実行させるためのコンピュータプログラムが記憶されている。ＣＰＵは、起動時などに記憶部からコンピュータプログラムを読み取って実行する。コンピュータプログラムは、キャッシュアドレス生成部（１７００、１１０４、１２００、１２１０、１２２０、１３００、１３０１、１３０３、１３１０）と、キャッシュアドレス制御部１４００の複数のタグアドレス比較器とに対応し、記憶部は、キャッシュアドレス制御部１４００の複数のタグアドレス格納部と、キャッシュ有効情報格納部１５００とを具備している。
【符号の説明】
【００８７】
１１００    ベクトルストア命令信号（Ｖｂｉｔ）、
１１０１    ベクトルストア命令ベースアドレス、
１１０２    ベクトルストア命令ディスタンス、
１１０３    ベクトルストア命令要素数、
１１０４    アドレス生成部、
１２００    フラッシュ処理開始フラグレジスタ、
１２１０    先頭要素アドレスレジスタ、
１２１１    タグアドレス、
１２２０    最終要素アドレスレジスタ、
１２２１    タグアドレス、
１３００    保存用フラッシュ対象アドレスレジスタ、
１３０１    フラッシュ対象アドレス選択部、
１３０２    フラッシュ対象アドレス、
１３０３    加算器、
１３１０    フラッシュ処理終了判定部、
１３１１    フラッシュ処理終了通知、
１４００    キャッシュアドレス制御部、
１４１０    タグアドレス格納部、
１４１１    タグアドレス比較器、
１４２０    タグアドレス格納部、
１４２１    タグアドレス比較器、
１４３０    タグアドレス格納部、
１４３１    タグアドレス比較器、
１４４０    タグアドレス格納部、
１４４１    タグアドレス比較器、
１４５０    タグアドレス格納部、
１４５１    タグアドレス比較器、
１４６０    タグアドレス格納部、
１４６１    タグアドレス比較器、
１５００    キャッシュ有効情報格納部、
１５１０    有効情報格納部、
１５２０    有効情報格納部、
１５３０    有効情報格納部、
１５４０    有効情報格納部、
１５５０    有効情報格納部、
１５６０    有効情報格納部、
１６１０    フラッシュ指示、
１６２０    フラッシュ指示、
１６３０    フラッシュ指示、
１６４０    フラッシュ指示、
１６５０    フラッシュ指示、
１６６０    フラッシュ指示、
１７００    命令発行部
【図１Ａ】
2011096195.tif 000003
【図１Ｂ】
2011096195.tif 000004
【図２】
2011096195.tif 000005
【図３Ａ】
2011096195.tif 000006
【図３Ｂ】
2011096195.tif 000007
【図３Ｃ】
2011096195.tif 000008