(58)【調査した分野】(Int.Cl.,DB名)
ベクトル演算処理を行う情報処理装置におけるキャッシュ上に複数のデータが格納されていて、前記情報処理装置がベクトルストア命令を実行するときに、前記ベクトルストア命令がアクセスする領域のアドレスであり、且つ、同一のタグを含むアドレス群を生成するキャッシュアドレス生成部と、
前記複数のデータのうちの前記アドレス群にそれぞれ対応し、且つ、複数のブロックに亘って連続する領域のデータ群を一度に無効化するフラッシュ処理を行うキャッシュアドレス制御部と
を具備し、
前記キャッシュ上に格納されている前記複数のデータのそれぞれが有効であることを示す複数の有効情報が格納されたキャッシュ有効情報格納部
を更に具備し、
前記キャッシュアドレス制御部は、前記フラッシュ処理の実行において、前記キャッシュ有効情報格納部に格納された前記複数の有効情報のうちの、前記データ群の有効情報を一度に無効化し、
前記キャッシュアドレス生成部は、前記情報処理装置が前記ベクトルストア命令を実行するときに、前記アドレス群のうちの先頭要素から最終要素までのタグアドレスをフラッシュ対象アドレスとして1サイクル毎に順番に生成して、
前記キャッシュアドレス制御部は、前記フラッシュ処理の実行において、先頭要素から最終要素までの前記フラッシュ対象アドレスにそれぞれ対応した前記データ群の有効情報を順番に無効化し、
前記キャッシュ有効情報格納部は、
前記複数の有効情報がそれぞれ格納された複数の有効情報格納部
を具備し、
前記キャッシュアドレス制御部は、
前記複数の有効情報格納部に対応付けられて複数のタグアドレスがそれぞれ格納された複数のタグアドレス格納部と、
それぞれ、その入力に前記複数のタグアドレス格納部が接続され、その出力に前記複数の有効情報格納部が接続された複数のタグアドレス比較器と
を具備し、
前記複数のタグアドレス比較器のうちのタグアドレス比較器群は、前記フラッシュ対象アドレスを順番に入力し、前記フラッシュ対象アドレスと、前記複数のタグアドレス格納部のうちのタグアドレス格納部群に格納された前記タグアドレス群とが一致したとき、前記複数の有効情報格納部のうちの有効情報格納部群に格納された前記データ群の有効情報を無効化する
キャッシュフラッシュ制御装置。
前記アドレス生成部は、前記情報処理装置が前記ベクトルストア命令を実行するときに、前記先頭要素のアドレスと共に、前記アドレス群のうちの最終要素のアドレスを生成し、
前記キャッシュアドレス生成部は、
前記フラッシュ対象アドレスと前記最終要素のタグアドレスとが一致するとき、前記フラッシュ処理が完了したことを示すフラッシュ処理完了通知を前記情報処理装置に出力するフラッシュ処理終了判定部
を更に具備する請求項2に記載のキャッシュフラッシュ制御装置。
ベクトル演算処理を行う情報処理装置におけるキャッシュ上に複数のデータが格納されていて、前記情報処理装置がベクトルストア命令を実行するときに、前記ベクトルストア命令がアクセスする領域のアドレスであり、且つ、同一のタグを含むアドレス群を生成するステップと、
前記複数のデータのうちの前記アドレス群にそれぞれ対応し、且つ、複数のブロックに亘って連続する領域のデータ群を一度に無効化するフラッシュ処理を行うステップと
を具備し、
前記フラッシュ処理を行うステップは、前記フラッシュ処理の実行において、前記キャッシュ上に格納されている前記複数のデータのそれぞれが有効であることを示す複数の有効情報が格納されたキャッシュ有効情報格納部を参照して、前記複数の有効情報のうちの、前記データ群の有効情報を一度に無効化するステップ
を含み、
前記アドレス群を生成するステップは、
前記情報処理装置が前記ベクトルストア命令を実行するときに、前記アドレス群のうちの先頭要素から最終要素までのタグアドレスをフラッシュ対象アドレスとして1サイクル毎に順番に生成するステップ
を含み、
前記フラッシュ処理を行うステップは、
前記フラッシュ処理の実行において、先頭要素から最終要素までの前記フラッシュ対象アドレスにそれぞれ対応した前記データ群の有効情報を順番に無効化するステップ
を含み、
前記データ群の有効情報を順番に無効化するステップは、
前記フラッシュ対象アドレスを順番に入力するステップと、前記キャッシュ有効情報格納部の複数の有効情報格納部には、前記複数の有効情報がそれぞれ格納され、複数のタグアドレス格納部には、前記複数の有効情報格納部に対応付けられて複数のタグアドレスがそれぞれ格納され、
前記フラッシュ対象アドレスと、前記複数のタグアドレス格納部のうちのタグアドレス格納部群に格納された前記タグアドレス群とが一致したとき、前記複数の有効情報格納部のうちの有効情報格納部群に格納された前記データ群の有効情報を無効化するステップと
を含む
キャッシュフラッシュ制御方法。
【発明を実施するための形態】
【0013】
以下に添付図面を参照して、本発明の実施形態によるキャッシュフラッシュ制御装置について詳細に説明する。
【0014】
[構成]
図1A、1Bは、本発明の実施形態によるキャッシュフラッシュ制御装置の構成を示している。
【0015】
本発明の実施形態によるキャッシュフラッシュ制御装置は、ベクトル演算処理を行う情報処理装置に接続されている。情報処理装置におけるキャッシュ上には、複数のデータが格納されている。ここで、キャッシュの構成は、容量64KB、ウェイ数2、ブロックサイズ64B(6bit)、インデックス:512(9bit)であるものとする。
【0016】
本発明の実施形態によるキャッシュフラッシュ制御装置は、キャッシュアドレス生成部(1700、1104、1200、1210、1220、1300、1301、1303、1310)と、キャッシュアドレス制御部1400とを具備している。キャッシュアドレス生成部(1700、1104、1200、1210、1220、1300、1301、1303、1310)は、情報処理装置がベクトルストア命令を実行するときに、ベクトルストア命令がアクセスする領域のアドレスであり、且つ、同一のタグを含むアドレス群を生成する。キャッシュアドレス制御部1400は、複数のデータのうちのアドレス群にそれぞれ対応し、且つ、複数のブロックに亘って連続する領域(ブロックサイズ×インデックス数)のデータ群に対して一度にフラッシュ処理を行う。これにより、従来に比べて、一度にフラッシュ可能な領域を広げることができる。
【0017】
ここで、フラッシュ処理とは、ロード命令によりキャッシュに登録されたデータ群と同じ領域に、後続のストア命令がアクセスする場合、そのデータ群を無効化する処理を意味する。
【0018】
本発明の実施形態によるキャッシュフラッシュ制御装置は、更に、キャッシュ有効情報格納部1500を具備している。キャッシュ有効情報格納部1500には、キャッシュ上に格納されている複数のデータのそれぞれが有効であることを示す複数の有効情報(Vbit)が格納されている。キャッシュアドレス生成部(1700、1104、1200、1210、1220、1300、1301、1303、1310)は、情報処理装置がベクトルストア命令を実行するときに、アドレス群のうちの先頭要素から最終要素までのアドレスをフラッシュ対象アドレス1302として1サイクル毎に順番に生成する。キャッシュアドレス制御部1400は、フラッシュ処理の実行において、キャッシュ有効情報格納部1500に格納された複数の有効情報(Vbit)のうちの、先頭要素から最終要素までのフラッシュ対象アドレス1302にそれぞれ対応したデータ群の有効情報Vbitを順番に無効化する。
【0019】
キャッシュアドレス生成部(1700、1104、1200、1210、1220、1300、1301、1303、1310)は、命令発行部1700、アドレス生成部1104、フラッシュ処理開始フラグレジスタ1200、先頭要素アドレスレジスタ1210、最終要素アドレスレジスタ1220、保存用フラッシュ対象アドレスレジスタ1300、フラッシュ対象アドレス選択部1301、加算器1303、フラッシュ処理終了判定部1310を具備している。
【0020】
命令発行部1700は、情報処理装置が実行する命令の発行を行う。命令発行部1700は、情報処理装置がベクトルストア命令を実行するとき、そのベクトルストア命令が有効であることを示すベクトルストア命令信号(Vbit)1100を発行し、そのベクトルストア命令がアクセスする領域のアドレスの基点となるアドレス(ベースアドレス)を示すベクトルストア命令ベースアドレス1101と、そのベクトルストア命令がアクセスする領域のアドレスの距離(ディスタンス)を示すベクトルストア命令ディスタンス1102と、そのベクトルストア命令がキャッシュに格納するデータの個数(要素数)を示すベクトルストア命令要素数1103と、を出力する。
【0021】
アドレス生成部1104は、命令発行部1700からのベクトルストア命令ベースアドレス1101、ベクトルストア命令ディスタンス1102、及びベクトルストア命令要素数1103に基づいて、ベクトルストア命令がアクセスする領域のうちの先頭要素がアクセスする領域のアドレス及び最終要素がアクセスする領域のアドレスを計算することにより、先頭要素のアドレス1211及び最終要素のアドレス1221を生成する。
【0022】
ここで、ベクトルストア命令要素数1103が示す要素数をNとした場合、ベクトルストア命令がアクセスするアドレスは、
ベクトルストア命令の要素1のアドレス(先頭要素のアドレス)=ベースアドレス
ベクトルストア命令の要素2のアドレス=ベースアドレス+ディスタンス
ベクトルストア命令の要素3のアドレス=ベースアドレス+ディスタンス×2
・
・
ベクトルストア命令の要素Nのアドレス(最終要素のアドレス)=ベースアドレス+ディスタンス×(N−1)
により求められる。
【0023】
フラッシュ処理開始フラグレジスタ1200は、命令発行部1700からのベクトルストア命令信号(Vbit)1100をフラッシュ処理開始フラグとして格納する。フラッシュ処理開始フラグレジスタ1200は、フラッシュ処理を開始する1サイクルだけフラッシュ処理開始フラグを示す“1”を格納し、1サイクル後にフラッシュ処理開始フラグの削除を示す“0”を格納する。
【0024】
先頭要素アドレスレジスタ1210は、フラッシュ処理の開始時に、アドレス生成部1104からの先頭要素のアドレス1211を格納する。
【0025】
最終要素アドレスレジスタ1220は、フラッシュ処理の開始時に、アドレス生成部1104からの最終要素のアドレス1221を格納する。
【0026】
保存用フラッシュ対象アドレスレジスタ1300は、2サイクル目以降のフラッシュ対象アドレスを格納する。
【0027】
フラッシュ対象アドレス選択部1301は、1サイクル目に、先頭要素アドレスレジスタ1210に格納されている先頭要素のアドレス(要素1のアドレス)1211を選択し、これをフラッシュ対象アドレス1302として出力し、2サイクル目以降に、保存用フラッシュ対象アドレスレジスタ1300に格納されているアドレス(次の要素のフラッシュ対象アドレス1302)を選択し、これをフラッシュ対象アドレス1302として出力する。具体的には、フラッシュ処理開始フラグが点灯している場合(1回目のフラッシュ処理の場合)、フラッシュ対象アドレス選択部1301は、先頭要素アドレスレジスタ1210に格納されている先頭要素のアドレス1211を選択し、これをフラッシュ対象アドレス1302として出力する。フラッシュ処理開始フラグが点灯していない場合(2回目以降のフラッシュ処理の場合)、フラッシュ対象アドレス選択部1301は、保存用フラッシュ対象アドレスレジスタ1300に格納されているフラッシュ対象アドレス1302を選択し、これをフラッシュ対象アドレス1302として出力する。
【0028】
加算器1303は、2回目以降のフラッシュ処理の場合、1サイクル毎にフラッシュ対象アドレス1302に1アドレス分を加算し、それを次の要素のフラッシュ対象アドレス1302として保存用フラッシュ対象アドレスレジスタ1300に格納する。
【0029】
フラッシュ処理終了判定部1310は、フラッシュ対象アドレス1302と最終要素アドレスレジスタ1220に格納されている最終要素のアドレス1221(要素Nのアドレス)1221との比較を行う。フラッシュ対象アドレス1302と最終要素のアドレス1221とが一致する場合は、フラッシュ処理終了判定部1310は、フラッシュ処理が終了したことを示す信号としてフラッシュ処理完了通知1311を情報処理装置に出力する。
【0030】
キャッシュ有効情報格納部1500は、複数の有効情報格納部(図示しない)を具備している。複数の有効情報格納部には、キャッシュ上に格納されている複数のデータのそれぞれが有効であることを示す複数の有効情報(Vbit)がそれぞれ格納されている。キャッシュアドレス制御部1400は、複数のタグアドレス格納部と、複数のタグアドレス比較器を具備している。複数のタグアドレス格納部には、それぞれ、複数の有効情報格納部に対応付けられて複数のアドレスが格納されている。複数のアドレスは、それぞれ、キャッシュ上に格納されている上記の複数のデータのアドレス(タグアドレス)である。複数のタグアドレス比較器は、それぞれ、その第1の入力にフラッシュ対象アドレス1302が供給され、その第2の入力に複数のタグアドレス格納部が接続され、その出力に複数の有効情報格納部が接続されている。
【0031】
ここで、複数のタグアドレス格納部のうちのタグアドレス格納部群をそれぞれタグアドレス格納部1410、1420、1430、1440、…、1450、1460と称する。複数のタグアドレス比較器のうちのタグアドレス比較器群をそれぞれタグアドレス比較器群1411、1421、1431、1441、…、1451、1461と称する。複数の有効情報格納部のうちの有効情報格納部群をそれぞれ有効情報格納部群1510、1520、1530、1540、…、1550、1560と称する。この場合、タグアドレス比較器群1411、1421、1431、1441、…、1451、1461は、それぞれ、その第1の入力にフラッシュ対象アドレス1302が供給され、その第2の入力にタグアドレス格納部群1410、1420、1430、1440、…、1450、1460が接続され、その出力に有効情報格納部群1510、1520、1530、1540、…、1550、1560が接続されている。
【0032】
タグアドレス比較器群1411、1421、1431、1441、…、1451、1461は、フラッシュ対象アドレス1302を順番に入力し、フラッシュ対象アドレス1302と、タグアドレス格納部群1410、1420、1430、1440、…、1450、1460に格納されたアドレス群とが一致したとき、有効情報格納部群1510、1520、1530、1540、…、1550、1560に格納されたデータ群の有効情報Vbitを無効化する。これについて具体的に説明する。
【0033】
タグアドレス格納部1410は、キャッシュのインデックス=0でウェイ=0に格納されているデータのタグアドレスが格納されている。
【0034】
タグアドレス格納部1420は、キャッシュのインデックス=0でウェイ=1に格納されているデータのタグアドレスが格納されている。
【0035】
タグアドレス格納部1430は、キャッシュのインデックス=1でウェイ=0に格納されているデータのタグアドレスが格納されている。
【0036】
タグアドレス格納部1440は、キャッシュのインデックス=1でウェイ=1に格納されているデータのタグアドレスが格納されている。
【0037】
タグアドレス格納部1450は、キャッシュのインデックス=511でウェイ=0に格納されているデータのタグアドレスが格納されている。
【0038】
タグアドレス格納部1460は、キャッシュのインデックス=511でウェイ=1に格納されているデータのタグアドレスが格納されている。
【0039】
タグアドレス比較器1411は、フラッシュ対象アドレス1302とタグアドレス格納部1410との比較を行い、比較結果が一致を表す場合は“1”を示すフラッシュ指示1610を出力し、比較結果が一致を表さない場合は“0”を示すフラッシュ指示1610を出力する。
【0040】
タグアドレス比較器1421は、フラッシュ対象アドレス1302とタグアドレス格納部1420との比較を行い、比較結果が一致を表す場合は“1”を示すフラッシュ指示1620を出力し、比較結果が一致を表さない場合は“0”を示すフラッシュ指示1620を出力する。
【0041】
タグアドレス比較器1431は、フラッシュ対象アドレス1302とタグアドレス格納部1430との比較を行い、比較結果が一致を表す場合は“1”を示すフラッシュ指示1630を出力し、比較結果が一致を表さない場合は“0”を示すフラッシュ指示1630を出力する。
【0042】
タグアドレス比較器1441は、フラッシュ対象アドレス1302とタグアドレス格納部1440との比較を行い、比較結果が一致を表す場合は“1”を示すフラッシュ指示1640を出力し、比較結果が一致を表さない場合は“0”を示すフラッシュ指示1640を出力する。
【0043】
タグアドレス比較器1451は、フラッシュ対象アドレス1302とタグアドレス格納部1450との比較を行い、比較結果が一致を表す場合は“1”を示すフラッシュ指示1650を出力し、比較結果が一致を表さない場合は“0”を示すフラッシュ指示1650を出力する。
【0044】
タグアドレス比較器1461は、フラッシュ対象アドレス1302とタグアドレス格納部1460との比較を行い、比較結果が一致を表す場合は“1”を示すフラッシュ指示1660を出力し、比較結果が一致を表さない場合は“0”を示すフラッシュ指示1660を出力する。
【0045】
有効情報格納部1510は、キャッシュのインデックス=0でウェイ=0に格納されているデータが有効であることを示す有効情報(Vbit)が格納されている。ここで、フラッシュ指示1610の値が1の場合は有効情報格納部1510に格納されている有効情報(Vbit)がリセット(無効化)されて、フラッシュ指示1610の値が0の場合は有効情報格納部1510に格納されている有効情報(Vbit)がリセットされない。
【0046】
有効情報格納部1520は、キャッシュのインデックス=0でウェイ=1に格納されているデータが有効であることを示す有効情報(Vbit)が格納されている。ここで、フラッシュ指示1620の値が1の場合は有効情報格納部1520に格納されている有効情報(Vbit)がリセットされて、フラッシュ指示1620の値が0の場合は有効情報格納部1520に格納されている有効情報(Vbit)がリセットされない。
【0047】
有効情報格納部1530は、キャッシュのインデックス=1でウェイ=0に格納されているデータが有効であることを示す有効情報(Vbit)が格納されている。ここで、フラッシュ指示1630の値が1の場合は有効情報格納部1530に格納されている有効情報(Vbit)がリセットされて、フラッシュ指示1630の値が0の場合は有効情報格納部1530に格納されている有効情報(Vbit)がリセットされない。
【0048】
有効情報格納部1540は、キャッシュのインデックス=1でウェイ=1に格納されているデータが有効であることを示す有効情報(Vbit)が格納されている。ここで、フラッシュ指示1640の値が1の場合は有効情報格納部1540に格納されている有効情報(Vbit)がリセットされて、フラッシュ指示1640の値が0の場合は有効情報格納部1540に格納されている有効情報(Vbit)がリセットされない。
【0049】
有効情報格納部1550は、キャッシュのインデックス=511でウェイ=0に格納されているデータが有効であることを示す有効情報(Vbit)が格納されている。ここで、フラッシュ指示1650の値が1の場合は有効情報格納部1550に格納されている有効情報(Vbit)がリセットされて、フラッシュ指示1650の値が0の場合は有効情報格納部1550に格納されている有効情報(Vbit)がリセットされない。
【0050】
有効情報格納部1560は、キャッシュのインデックス=511でウェイ=1に格納されているデータが有効であることを示す有効情報(Vbit)が格納されている。ここで、フラッシュ指示1660の値が1の場合は有効情報格納部1560に格納されている有効情報(Vbit)がリセットされて、フラッシュ指示1660の値が0の場合は有効情報格納部1560に格納されている有効情報(Vbit)がリセットされない。
【0051】
[動作]
図2は、本発明の実施形態によるキャッシュフラッシュ制御装置の動作(キャッシュフラッシュ制御方法)を示すフローチャートである。
【0052】
まず、フラッシュ処理が開始されると、ベクトルストア命令が情報処理装置から命令発行部1700に与えられる。このとき、命令発行部1700は、そのベクトルストア命令が有効であることを示すベクトルストア命令信号(Vbit)1100を発行し、ベクトルストア命令のベースアドレスを示すベクトルストア命令ベースアドレス1101と、ベクトルストア命令のディスタンスを示すベクトルストア命令ディスタンス1102と、ベクトルストア命令の要素数を示すベクトルストア命令要素数1104とを出力する。
【0053】
アドレス生成部1104は、命令発行部1700からのベクトルストア命令ベースアドレス1101、ベクトルストア命令ディスタンス1102、及びベクトルストア命令要素数1103に基づいて、先頭要素のアドレス1211及び最終要素のアドレス1221を計算(生成)する(
図2の2010)。
【0054】
アドレス生成部1104は、その先頭要素のアドレス1211及び最終要素のアドレス1221をそれぞれ先頭要素アドレスレジスタ1210及び最終要素アドレスレジスタ1220に格納する(
図2の2020)。
【0055】
また、フラッシュ処理開始フラグレジスタ1200は、命令発行部1700からのベクトルストア命令信号(Vbit)1100をフラッシュ処理開始フラグ“1”として1サイクルだけ格納する(
図2の2020)。
【0056】
フラッシュ処理開始フラグが点灯している場合、即ち、フラッシュ処理開始フラグレジスタ1200にフラッシュ処理開始フラグが格納されている場合、1回目のフラッシュ処理であることを意味している(
図2の2030)。
【0057】
フラッシュ処理開始フラグが点灯している場合、フラッシュ対象アドレス選択部1301は、先頭要素アドレスレジスタ1210に格納されている先頭要素のアドレス(要素1のアドレス)1211を選択し、これをフラッシュ対象アドレス1302として出力する(
図2の2040)。
【0058】
以降、1回目のフラッシュ処理が実行される。
【0059】
キャッシュアドレス制御部1400は、フラッシュ対象アドレス1302とタグアドレス格納部1410、1420、1430、1440、…、1450、1460に格納されている全てのアドレス(タグアドレス)との比較を行い、比較結果に基づいて、データの有効情報(Vbit)を無効化する。
【0060】
まず、キャッシュのインデックス“0〜511”のうちのインデックス“0”で、ウェイ“0〜1”のうちのウェイ“0”に格納されているデータの有効情報を無効化する場合について説明する。
【0061】
タグアドレス比較器1411は、フラッシュ対象アドレス1302とタグアドレス格納部1410に格納されているタグアドレスとの比較を行い、比較結果をフラッシュ指示1610として出力する。このとき、タグアドレス比較器1411は、比較結果が一致を表す場合は“1”を示すフラッシュ指示1610を出力し、比較結果が一致を表さない場合は“0”を示すフラッシュ指示1610を出力する(
図2の2050)。
【0062】
ここで、フラッシュ指示1610の値が“1”である場合、有効情報格納部1510に格納されている有効情報(Vbit)がリセット(無効化)される(
図2の2060)。
【0063】
次に、キャッシュのインデックス“0”でウェイ“1”に格納されているデータの有効情報を無効化する場合について説明する。
【0064】
タグアドレス比較器1421は、フラッシュ対象アドレス1302とタグアドレス格納部1420に格納されているタグアドレスとの比較を行い、比較結果をフラッシュ指示1620として出力する。このとき、タグアドレス比較器1421は、比較結果が一致を表す場合は“1”を示すフラッシュ指示1620を出力し、比較結果が一致を表さない場合は“0”を示すフラッシュ指示1620を出力する(
図2の2050)。
【0065】
ここで、フラッシュ指示1620の値が“1”である場合、有効情報格納部1520に格納されている有効情報(Vbit)がリセット(無効化)される(
図2の2060)。
【0066】
以上の処理により、キャッシュのインデックス“0”でウェイ“0〜1”に格納されているデータの有効情報の無効化が完了する。
【0067】
同様の処理をインデックス“1〜511”に対して行い、インデックス“1〜511”でウェイ“0〜1”に格納されているデータの有効情報の無効化が完了する。
【0068】
これにより、1回目のフラッシュ処理が完了する。
【0069】
2回目以降のフラッシュ処理は、1回目のフラッシュ処理と同様に処理される。
【0070】
次に、フラッシュ処理終了判定部1310は、現在のフラッシュ処理が何回目のフラッシュ処理であるか判定する。この場合、フラッシュ処理終了判定部1310は、フラッシュ対象アドレス1302と最終要素アドレスレジスタ1220に格納されている最終要素のアドレス(要素Nのアドレス)1221との比較を行う。
【0071】
比較結果、フラッシュ対象アドレス1302と最終要素アドレスレジスタ1220に格納されている最終要素のアドレス1221とが一致している場合、フラッシュ処理終了判定部1310は、フラッシュ処理が完了したことを示すフラッシュ処理完了通知1311を情報処理装置に出力する(
図2の2070の一致)。
【0072】
比較結果、フラッシュ対象アドレス1302と最終要素アドレスレジスタ1220に格納されている最終要素のアドレス1221とが一致していない場合、フラッシュ処理が完了してないことを示し、フラッシュ処理を継続する(
図2の2070の不一致)。
【0073】
一致していない場合、加算器1303は、1サイクル毎にフラッシュ対象アドレス1302に1アドレス分を加算し(
図2の2080)、それを次の要素のフラッシュ対象アドレス1302として保存用フラッシュ対象アドレスレジスタ1300に格納する(
図2の2021)。
【0074】
以降、2回目のフラッシュ処理が実行される。
【0075】
フラッシュ処理開始フラグが点灯していない場合、即ち、フラッシュ処理開始フラグレジスタ1200に1サイクルだけ“1”が格納された後に、“0”が格納されている場合、2回目以降のフラッシュ処理であることを意味している(
図2の2030)。
【0076】
フラッシュ処理開始フラグが点灯していない場合(2回目以降のフラッシュ処理の場合)、フラッシュ対象アドレス選択部1301は、保存用フラッシュ対象アドレスレジスタ1300に格納されているアドレス(次の要素のフラッシュ対象アドレス1302)を選択し、これをフラッシュ対象アドレス1302として出力する(
図2の2041)。
【0077】
2回目以降のフラッシュ処理は、1回目のフラッシュ処理と同様に処理される。
【0078】
以降では、フラッシュ対象アドレス1302と最終要素アドレスレジスタ1220に格納されている最終要素のアドレスとが一致するまで、2回目と同様の処理を繰り返し行うことにより、ベクトルストア命令がアクセスする全領域のキャッシュフラッシュが完了する。
【0079】
[効果]
図3A〜3Cを用いて、本発明の実施形態によるキャッシュフラッシュ制御装置の効果を説明する。
【0080】
ここで、下記の構成のキャッシュにおいて、下記のベクトルストア命令を実行した場合を想定する。
【0081】
キャッシュの構成
・64KB 2−Way
・ブロックサイズ;64B(6bit)
・インデックス;512(9bit)
・タグ;17bit (32bitアドレスの場合)
【0082】
ベクトルストア命令
・ベースアドレス;0
・ディスタンス;16バイト
・要素数;256個
【0083】
まず、キャッシュフラッシュの高速化なしの場合(
図3Aの「キャッシュフラッシュの処理方法」の「なし」を参照)について説明する。この場合、
図3Bに示されるように、前述のベクトルストア命令の1要素単位でフラッシュ処理を行う。このため、要素数と同じ回数のフラッシュ処理が必要であり、合計256回のフラッシュ処理が必要となる。
【0084】
次に、従来技術(特開昭60−015759号公報)を用いたキャッシュフラッシュの場合(
図3Aの「キャッシュフラッシュの処理方法」の「従来技術」を参照)について説明する。この場合、同一ブロック内の領域にアクセスするベクトルストア命令のフラッシュを一度に行うため、この例では、
図3Bに示されるように、要素1、2、3、4の4個のフラッシュを一度に行う。このため、前述のベクトルストア命令のキャッシュフラッシュに必要なフラッシュ処理の回数は合計64回となる。
【0085】
次に、本発明を用いたキャッシュフラッシュの場合(
図3Aの「キャッシュフラッシュの処理方法」の「本発明」を参照)について説明する。この場合、インデックスアドレスが連続する領域(複数のブロックに亘って連続する領域)にアクセスするベクトルストア命令のフラッシュを一度に行うため、
図3B、3Cに示されるように、要素1から256の256個のフラッシュを一度に行うことができる。つまり、前述のベクトルストア命令のキャッシュフラッシュに必要なフラッシュ処理の回数を1回とすることができる。
【0086】
なお、本発明の実施形態によるキャッシュフラッシュ制御装置は、コンピュータプログラムでも回路でも実現可能である。コンピュータプログラムで実現する場合、本発明の実施形態によるキャッシュフラッシュ制御装置は、コンピュータ(図示しない)であり、CPU(Central Processing Unit)(図示しない)と、記録媒体である記憶部(図示しない)とを具備している。記憶部には、コンピュータに実行させるためのコンピュータプログラムが記憶されている。CPUは、起動時などに記憶部からコンピュータプログラムを読み取って実行する。コンピュータプログラムは、キャッシュアドレス生成部(1700、1104、1200、1210、1220、1300、1301、1303、1310)と、キャッシュアドレス制御部1400の複数のタグアドレス比較器とに対応し、記憶部は、キャッシュアドレス制御部1400の複数のタグアドレス格納部と、キャッシュ有効情報格納部1500とを具備している。