以下、発明者らが開発した4タイプの共有キャッシュメモリ装置(以下、第1〜第4実施形態に係る共有キャッシュメモリ装置10と表記する)について、図面を参照して詳細に説明する。
《第1実施形態》
図1に示してあるように、第1実施形態に係る共有キャッシュメモリ装置10は、2個のプロセッサ14と下位記憶階層15とに接続されて使用される装置であり、2個のアクセス制御部11、アクセス情報バス12及び共有キャッシュメモリ13を備えている。
この共有キャッシュメモリ装置10に接続される下位記憶階層15は、主記憶装置自体や、主記憶装置を含む記憶装置群(例えば、より下位のキャッシュメモリと主記憶装置)である。
各プロセッサ14は、キャッシュメモリ(本実施形態では、ライトバック方式のもの)を内蔵した一般的なプロセッサである。なお、共有キャッシュメモリ装置10は、通常は、これらのプロセッサ14を備えたデバイスの一構成要素(2個のプロセッサ14が実装されたチップ、パッケージ上の一回路)として製造されるものとなっている。
以下、図2を用いて、共有キャッシュメモリ装置10の構成をさらに具体的に説明する。
共有キャッシュメモリ装置10が備える各アクセス制御部11、共有キャッシュメモリ13は、図2に示した構成を有するユニット(回路)である。
すなわち、共有キャッシュメモリ13は、キャッシュメモリ制御部30と、キャッシュアクセス調停部31と、n(≧2)組のタグメモリ部32及びデータメモリ部33と、下位記憶階層インタフェース部34とを、備えている。
キャッシュアクセス調停部31は、各アクセス制御部11からのアクセス要求(各プロセッサ14からのリード/ライト要求)を調停するユニットである。下位記憶階層インタフェース部34は、下位記憶階層15と通信を行うためのユニット(インタフェース回路)である。
各データメモリ部32は、所定長のデータを格納できるnL個(例えば、nL=211)のデータ記憶領域を備えたユニットである。各データメモリ部32の各データ記憶領域は、各プロセッサ14のキャッシュメモリ(以下、内蔵キャッシュと表記する)のライン(キャッシュライン/ブロック)と同サイズのものとなっている。
各タグメモリ部33は、nL個(nL=データメモリ部32のデータ記憶領域数)の、Vフィールド、Mフィールド、Lフィールド、Wフィールド、SPIDフィールド及びADDRフィールドを有する管理情報記憶領域を備えたユニットである。
各タグメモリ部33の各管理情報記憶領域は、組を成しているデータメモリ部32の特定のデータ記憶領域の利用状況を示す情報(各フィールドの設定値からなる情報;以下、管理情報と表記する)を記憶しておくための領域である。
より具体的には、管理情報記憶領域のVフィールドは、対応するデータ記憶領域が有効である(データの記憶に使用されている)か否かを“1”/“0”で示す1ビットデータ(以下、Vビットと表記する)が設定されるフィールドである。
Mフィールドは、対応するデータ記憶領域上のデータが更新されているか否かを“1”/“0”で示す1ビットデータ(以下、Mビットと表記する)が設定されるフィールドである。Lフィールドは、対応するデータ記憶領域がロックされている(対応するデータ記憶領域を別データの記憶に利用することが禁止されている)か否かを“1”/“0”で示す1ビットデータ(以下、Lビットと表記する)が設定されるフィールドである。
ADDRフィールドは、対応するデータ記憶領域に記憶されているデータ(又は、その後、記憶されるデータ;詳細は後述)のフレームアドレスが設定されるフィールドである。なお、フレームアドレスとは、図3に示したように、アドレス(図では、32ビットアドレス)の上位mビット(図では、m=14)のことである。より具体的には、フレームアドレスとは、アドレスを、最下位ビット側から、データ記憶領域のサイズ(バイト数)に応じたビット数のインデックスアドレスと、nL(各データメモリ部32のデータ記憶領域数)に応じたビット数のエントリアドレスと、残りの部分とに分けた場合における当該残りの部分のことである。
管理情報記憶領域のSPIDフィールド(図2)は、対応するデータ記憶領域が監視対象記憶領域である場合には、或るプロセッサ14のプロセッサ識別情報(以下、PIDと表記する)が設定され、そうではない場合には、所定値が設定されるフィールドである。
ここで、監視対象記憶領域とは、前段処理により生成されて後段処理により利用されるデータ(図19参照。)の一時記憶領域として使用されるデータ記憶領域のことである。この監視対象記憶領域の詳細については後述するが、対応するデータ記憶領域が監視対象記憶領域である場合、SPIDフィールドには、前段プロセッサ14(前段処理を実行するプロセッサ14)のPID(プロセッサ識別情報)が設定される。
Wフィールドは、対応する監視対象記憶領域へのデータの書き込みが完了しているか否かを、“0”/“1”で示す1ビットデータ(以下、Wビットと表記する)が設定されるフィールドである。このWフィールドは、同じ監視対象記憶領域のSPIDフィールドにPIDが設定されている場合(対応するデータ記憶領域が監視対象記憶領域である場合)にのみ、有効なフィールド(設定されている値が参照されるフィールド)となっている。
キャッシュメモリ制御部30は、複数のアドレスデコーダ、複数の比較器、複数のセレクタ等からなる回路である。説明の便宜上、このキャッシュメモリ制御部30の機能を説明する前に、共有キャッシュメモリ装置10が備える各アクセス制御部11の構成を説明することにする。
図2に示してあるように、各アクセス制御部11は、プロセッサインタフェース部20、制御部21、保留アクセス記憶部22、アクセス領域一致判定部23、アクセス情報送
信部24及びアクセス要求選択部25を備えている。
プロセッサインタフェース部20は、プロセッサ14と通信を行うためのインタフェース回路である。このプロセッサインタフェース部20は、自身に接続されているプロセッサ14のPID(プロセッサ14から取得したもの又は自ユニット内に設定されているもの)を制御部21に通知する機能や、プロセッサ14から受信した領域確保コマンド/領域解放コマンドを制御部21に通知する機能を有している。また、プロセッサインタフェース部20は、受信したアクセス要求(リード要求及びライト要求)を、アクセス情報送信部24、保留アクセス記憶部22及びアクセス要求選択部25に供給する機能も有している。さらに、プロセッサインタフェース部20は、アクセス要求選択部25に供給するライト要求に、PIDを付加する機能も有している。
保留アクセス記憶部22は、プロセッサ14から受信したが応答を保留している(実際の処理を行っていない)アクセス要求を記憶しておくためのユニットである。この保留アクセス記憶部22は、各種制御(プロセッサインタフェース部20からのアクセス要求を取り込むか否かについての制御等)が制御部21によって行われるものとなっている。
アクセス情報送信部24は、今回のアクセス要求にてアクセスが要求されている領域を示すアクセス情報を、制御部21から所定のアクセス情報出力指示が入力されたときに、アクセス情報バス12上に送出するユニットである。
アクセス領域一致判定部23は、アクセス情報バス12上に送出されたアクセス情報が示している領域と、保留アクセス記憶部22に記憶されているアクセス要求にてアクセスが要求されている領域とが一致していている場合に、所定の第2書込完了通知を制御部21に対して出力するユニットである。なお、このアクセス領域一致判定部23が機能するのは、他アクセス制御部11内のアクセス情報送信部24によってアクセス情報バス12上にアクセス情報が送出された場合だけである。
アクセス要求選択部25は、制御部21の制御下(制御部21からの制御信号に従って)、保留アクセス記憶部22上のアクセス要求、又は、プロセッサインタフェース部20からのアクセス要求を、共有キャッシュメモリ13に供給するユニットである。
制御部21は、通常は、プロセッサインタフェース部20により受信されたアクセス要求が共有キャッシュメモリ13に供給されるように、且つ、当該アクセス要求で保留アクセス記憶部22上のアクセス要求が更新されるように各部を制御しているユニットである。
この制御部21は、保留要求通知(詳細は後述)がキャッシュメモリ制御部30から入力された場合には、今回のアクセス要求(保留要求通知の送信原因となったアクセス要求)を保持し続けるように保留アクセス記憶部22を制御する。また、制御部21は、上記した第2書込完了通知がアクセス領域一致判定部23から入力された際に、アクセス要求選択部25に保留アクセス記憶部22上のアクセス要求を共有キャッシュメモリ13に供給させてから各部を通常の状態に戻す機能も有している。さらに、制御部21は、第1書込完了通知(詳細は後述)がキャッシュメモリ制御部30から入力された際に、アクセス情報送信部24に対してアクセス情報出力指示を出力する機能等も有している。
以下、制御部21の機能、キャッシュメモリ制御部30の機能及び共有キャッシュメモリ装置10の全体的な機能を、図1のシステム(以下、第1実施形態に係る情報処理システムと表記する)の利用法等と共に、より具体的に説明する。
或る処理を前段処理と後段処理とに分けて2つのプロセッサ14に実行させる場合、前段プロセッサ14は、図4に示した手順で動作するようにプログラミングされる。すなわち、前段プロセッサ14は、前段処理の処理結果を記憶するための前段処理用領域を内蔵キャッシュに確保(ステップS101)し、領域確保コマンドを送信(ステップS102)してから、前段処理(ステップS103)を開始するように、プログラミングされる。なお、前段プロセッサ14は、通常、前段処理の実行中に、時々、内蔵キャッシュ内のデータの掃き出し(主記憶装置への書き出し)を行うようにも、プログラミングされる。
一方、後段プロセッサ14は、図5に示した示した手順で動作するようにプログラミングされる。すなわち、後段プロセッサ14は、内蔵キャッシュの特定領域を無効化(ステップS201)してから、後段処理(ステップS202)を開始し、その完了後、領域解放コマンドを送信する(ステップS203)ように、プログラミングされる。なお、内蔵キャッシュの特定領域とは、後段処理を実行するために読み出したデータが記憶されることになる領域、又は、当該領域を含む領域(例えば、内蔵キャッシュの全領域)のことである。
また、後段プロセッサ14は、この図5の処理を、前段プロセッサ14による領域確保コマンドの送信完了後に開始するようにも、プログラミングされる。
領域確保コマンド(図4参照)は、前段処理により生成されるデータ群の主記憶装置における記憶位置を示す記憶位置情報(例えば、当該データ群が記憶される領域の先頭アドレスと当該データ群の総サイズ)と前段プロセッサ14のPIDとを含むコマンドである。
この領域確保コマンドを受信した場合、共有キャッシュメモリ装置10内では、各部によって以下の処理が行われる。
各アクセス制御部11内の制御部21(図2)は、領域確保コマンドをプロセッサインタフェース部20を介して受信した場合には、受信したコマンドを共通キャッシュメモリ13に送信(転送)する。
共通キャッシュメモリ13に送信された領域確保コマンドは、キャッシュアクセス調停部31を介してキャッシュメモリ制御部30に入力される。
キャッシュメモリ制御部30は、領域確保コマンドが入力された場合には、その領域確保コマンド中の記憶位置情報に基づき、監視対象記憶領域とする幾つかのデータ記憶領域を特定する。より具体的には、キャッシュメモリ制御部30は、領域確保コマンド中の記憶位置情報に基づき、前段処理の処理結果として前段プロセッサ14から書き込みが要求されることになるデータ毎に、それに関するエントリアドレスから定まる各データメモリ部32のデータ記憶領域の中から,監視対象記憶領域とする1つのデータ記憶領域を特定する。
そして、キャッシュメモリ制御部30は、特定した各データ記憶領域に関する管理情報記憶領域に、図6に示したような管理情報を記憶する。すなわち、キャッシュメモリ制御部30は、特定した各データ記憶領域に関する管理情報記憶領域のV〜Wフィールドにそれぞれ“1”を設定すると共に、領域確保コマンドに含まれるPID(図では、PID1)を、特定した各データ記憶領域に関する管理情報記憶領域のSPIDフィールドに設定する。また、キャッシュメモリ制御部30は、特定した各データ記憶領域に関する管理情報記憶領域のADDRフィールドに、各データ記憶領域に記憶されるデータのフレームアドレス(図では、0x0800)を設定する。
なお、領域確保コマンドの入力時にキャッシュメモリ制御部30が実際に行う処理は、監視対象記憶領域とするデータ記憶領域を特定する度に、上記内容の管理情報を、特定したデータ記憶領域に関する管理情報記憶領域に記憶(設定)する処理である、また、当該処理は、必要である場合には、監視対象記憶領域とするデータ記憶領域上のデータを主記憶装置に書き戻してから、当該データ記憶領域に関する管理情報記憶領域に、上記内容の管理情報を設定するものともなっている。
次に、リード要求受信時における共有キャッシュメモリ装置10の動作を説明する。
既に説明したように、各アクセス制御部11内の制御部21(図2)は、通常は、アクセス要求選択部25に、プロセッサインタフェース部20からのアクセス要求を共有キャッシュメモリ13に供給させている。
共有キャッシュメモリ13に供給されたアクセス要求は、キャッシュアクセス調停部31を介してキャッシュメモリ制御部30に供給される。
キャッシュメモリ制御部30は、リード要求が供給された場合には、各タグメモリ部33を参照することにより、以下のいずれの条件が成立しているかを判断する。なお、以下の説明において、読出対象データとは、アクセス制御部11から供給されたリード要求で読み出しが要求されているデータ(前段/後段プロセッサ14が読み出しを要求している,データ記憶領域サイズのデータ)のことである。SPID値とは、SPIDフィールドの値(いずれかのプロセッサ14のPID、又は、所定値)のことである。
・R1:読出対象データのエントリアドレスから定まるn個の管理情報の中に、フレームアドレスが読出対象データのフレームアドレスと一致し、Vビット、SPID値が、それぞれ、“1”、所定値となっている管理情報が存在する。
・R2:読出対象データのエントリアドレスから定まるn個の管理情報の中に、フレームアドレスが読出対象データのフレームアドレスと一致し、Vビット、Wビット、SPID値が、それぞれ、“1”、“0”、PID(所定値ではない値)となっている管理情報が存在する。
・R3:読出対象データのエントリアドレスから定まるn個の管理情報の中に、フレームアドレスが読出対象データのフレームアドレスと一致し、Vビット、Wビット、SPID値が、それぞれ、“1”、“1”、PIDとなっている管理情報が存在する。
・R4:R1〜R3のいずれの条件も成立していない。
換言すれば、キャッシュメモリ制御部30は、以下のいずれの条件が成立しているかを判断する。
・読出対象データ用のデータ記憶領域(読出対象データ用のものとして確保されているデータ記憶領域;以下、同様)が存在していない(R4)。
・読出対象データ用の非監視対象記憶領域(読出対象データ用の、監視対象記憶領域ではないデータ記憶領域)が存在している(R1)。
・読出対象データ用の,データの書き込みが完了している監視対象記憶領域が存在している(R2)。
・読出対象データ用の,データの書き込みが完了していない監視対象記憶領域が存在している(R3)。
そして、キャッシュメモリ制御部30は、読出対象データ用の非監視対象記憶領域が存在していた場合(条件R1が成立していた場合)には、当該非監視対象記憶領域上のデータ(読出対象データ)を、受信したリード要求の送信元プロセッサ14に返送する処理を
行う。なお、この処理及び以下で説明する同様の処理(要求されたデータを返送する処理)は、いずれも、受信したリード要求の送信元プロセッサ14と接続されているアクセス制御部11(リード要求の転送元アクセス制御部11)を介して、当該送信元プロセッサ14にデータを返送する処理である。
キャッシュメモリ制御部30は、読出対象データ用の,データの書き込みが完了している監視対象記憶領域が存在していた場合(条件R2が成立していた場合)には、当該監視対象記憶領域上のデータを、受信したリード要求の送信元プロセッサ14に返送する処理を行う。
キャッシュメモリ制御部30は、読出対象データ用のデータ記憶領域が存在していなかった場合(条件R4が成立していた場合)には、読出対象データを下位記憶階層15から読み出し、読み出した読出対象データを、受信したリード要求の送信元プロセッサ14に返送する処理を行う。また、この場合、キャッシュメモリ制御部30は、下位記憶階層15から読み出したデータを、キャッシュする処理(いずれかのデータメモリ部32内の特定のデータ記憶領域に記憶すると共に、その管理情報を変更する処理)も行う。
キャッシュメモリ制御部30は、読出対象データ用の,データの書き込みが完了している監視対象記憶領域が存在していた場合(条件R3が成立していた場合)には、『受信したアクセス要求(この場合、リード要求)に応答できない状況にある旨を示す保留要求通知』を、受信したリード要求の送信元アクセス制御部11内の制御部21に対して送信する。
要するに、本共有キャッシュメモリ装置10は、リード要求を受信した場合、各部(主として、キャッシュメモリ制御部30)により、図7に示した手順の処理が行われる装置として構成されている。
すなわち、リード要求を受信した場合、キャッシュメモリ制御部30は、各タグメモリ部32上の特定のn個の管理情報を参照することにより、読出対象データ用のデータ記憶領域(図7では、対応データ記憶領域)が存在するか否かを判断する(ステップS301)。そして、キャッシュメモリ制御部30は、読出対象データ用のデータ記憶領域が存在していなかった場合(ステップS301;NO)には、ステップS304にて、読出対象データを下位記憶階層15から読み出し、受信したリード要求の送信元プロセッサ14に対して返送する処理等(図では、通常のリード要求用制御処理)を行う。すなわち、キャッシュメモリ制御部30は、セットアソシエイティブ方式のキャッシュメモリ内の制御機構(キャッシュメモリ制御部30に相当する部分;以下、既存制御機構と表記する)が、リード要求についてのキャッシュミス時に行うものと本質的には同内容の処理を、このステップS304にて行う。
また、キャッシュメモリ制御部30は、読出対象データ用の非監視対象記憶領域が存在していた場合(ステップS301;YES,ステップS302;NO)には、ステップS304にて、当該非監視対象記憶領域から読出対象データを読み出して、受信したリード要求の送信元プロセッサ14に返送する処理を行う。すなわち、この場合、キャッシュメモリ制御部30は、既存制御機構がリード要求についてのキャッシュヒット時に行うものと本質的には同内容の処理を行う。
また、キャッシュメモリ制御部30は、読出対象データ用の,データの書き込みが完了している(その管理情報中のWビットが“0”となっている)監視対象記憶領域が存在していた場合(ステップS301;YES,ステップS302;YES、ステップS303;NO)にも、既存制御機構がリード要求についてのキャッシュヒット時に行うものと本
質的には同内容の処理をステップS304にて行う。
キャッシュメモリ制御部30は、読出対象データ用の,データの書き込みが完了していない(その管理情報中のWビットが“1”となっている)監視対象記憶領域が存在していた場合(ステップS301;YES,ステップS302;YES、ステップS303;YES)には、受信したリード要求の送信元アクセス制御部11内の制御部21に保留要求通知を送信する(図示略)。
既に説明したように、制御部21は、保留要求通知がキャッシュメモリ制御部30から入力された場合には、今回のアクセス要求(保留要求通知の送信原因となったアクセス要求)を保持し続けるように保留アクセス記憶部22を制御する。従って、読出対象データ用の監視対象記憶領域が存在し、その管理情報中のWビットが“1”であった場合(ステップS303;YES)、今回のリード要求が、当該リード要求を受信したアクセス制御部11内の保留アクセス記憶部22に保存される(ステップS305)ことになる。
なお、或る監視対象記憶領域上のデータの読み出しを要求するのは、原則として(プログラミングを誤らない限り)、後段プロセッサ14である。従って、ステップS305の処理が行われるのは、『後段プロセッサ14が、前段処理の処理結果データを要求するリード要求を送信したが、当該処理結果データの前段プロセッサ14による書き込みが完了していなかった場合』である。また、ステップS305の処理では、後段プロセッサ14と接続されているアクセス制御部11(以下、後段アクセス制御部11と表記する)内の保留アクセス記憶部22に、後段プロセッサ14が送信したリード要求が保存されることになる。
次に、ライト要求に対する共有キャッシュメモリ装置10の動作を説明する。
既に説明したように、プロセッサインタフェース部20(図2)は、アクセス要求選択部25に供給するライト要求に、PIDを付加する。そして、制御部21は、通常は、アクセス要求選択部25にプロセッサインタフェース部20からのアクセス要求を共有キャッシュメモリ13に供給させている。従って、各プロセッサ14からのライト要求は、PIDが付加された形で、共有キャッシュメモリ13に供給されることになる。
キャッシュメモリ制御部30は、キャッシュアクセス調停部31を介してライト要求及びPID(以下、供給PIDと表記する)が供給された場合には、各タグメモリ部33を参照することにより、以下の条件W1〜W4のいずれが成立しているかを判断する。なお、以下の説明において、書込対象データとは、アクセス制御部11から供給されたライト要求で書き込みが要求されているデータ(前段処理/後段処理の処理結果データ等)のことである。
W1:書込対象データのエントリアドレスから定まるn個の管理情報の中に、フレームアドレスが書込対象データのフレームアドレスと一致し、Vビット、SPID値が、それぞれ、“1”、所定値となっている管理情報が存在する。
W2:書込対象データのエントリアドレスから定まるn個の管理情報の中に、フレームアドレス、SPID値が、それぞれ、書込対象データのフレームアドレス、供給PIDと一致し、Vビットが“1”となっている管理情報が存在する。
W3:書込対象データのエントリアドレスから定まるn個の管理情報の中に、フレームアドレスが書込対象データのフレームアドレスと一致し、Vビット、SPID値が、それぞれ、“1”、“供給PIDと一致しないPID”となっている管理情報が存在する。
・W4:W1〜W3のいずれの条件も成立していない。
換言すれば、キャッシュメモリ制御部30は、以下のいずれの条件が成立しているかを判断する。
・書込対象データ用のデータ記憶領域が存在しない(W4)。
・書込対象データ用の非監視対象記憶領域が存在している(W1)。
・書込対象データ用の監視対象記憶領域が存在し、書き込みを要求したプロセッサ14が前段プロセッサ14である〔今回、受信したライト要求が、前段プロセッサ14からの、前段処理の処理結果データの書き込みを要求するライト要求である〕(W2)。
・書込対象データ用の監視対象記憶領域が存在し、書き込みを要求したプロセッサ14が後段プロセッサ14である〔後段プロセッサ14による監視対象記憶領域へのデータ書き込みが行われた〕(W3)。
そして、キャッシュメモリ制御部30は、書込対象データ用のデータ記憶領域が存在していなかった場合(条件W4が成立していた場合)には、書込対象データを記憶するためのデータ記憶領域を確保し、そのデータ記憶領域に書込対象データを記憶する処理等を行う。また、キャッシュメモリ制御部30は、書込対象データ用の非監視対象記憶領域が存在していた場合(条件W1が成立していた場合)には、当該非監視対象記憶領域に書込対象データを記憶すると共に、当該非監視対象記憶領域に関する管理情報中のMビットの値を“1”に変更する処理を行う。
すなわち、図8に示したように、キャッシュメモリ制御部30は、書込対象データ用のデータ記憶領域(図8では、対応データ記憶領域)が存在していなかった場合(ステップS401;NO)には、ステップS404にて、既存制御機構がライト要求についてのキャッシュミス時に行うものと本質的には同内容の制御(図では、“通常のライト要求用制御処理”)を行う。また、キャッシュメモリ制御部30は、書込対象データ用の非監視対象記憶領域が存在していた場合(ステップS401;YES,ステップS402;NO)には、ステップS404にて、既存制御機構がライト要求についてのキャッシュヒット時に行うものと本質的には同内容の制御を行う。
キャッシュメモリ制御部30は、後段プロセッサ14による監視対象記憶領域へのデータ書き込みが行われた場合(条件W3が成立していた場合:ステップS401;YES,ステップS402;YES、ステップS403;NO)には、保留要求通知を、受信したライト要求の送信元アクセス制御部11内の制御部21に送信する(図示略)。
既に説明したように、制御部21は、保留要求通知がキャッシュメモリ制御部30から入力された場合、今回のアクセス要求を保持し続けるように保留アクセス記憶部22を制御する。従って、この場合(ステップS403;NO)、今回、処理を試みたライト要求が、ライト要求の送信元(転送元)アクセス制御部11内の保留アクセス記憶部22に保存される(ステップS408)ことになる。なお、上記条件W3は、通常は、成立しない条件(プログラムミスをしない限り成立することがない条件)である。そのため、共有キャッシュメモリ装置10は、保留アクセス記憶部22にライト要求が記憶されること(図8のステップS408の処理が行われること)が実際上ない装置となっている。
キャッシュメモリ制御部30は、今回、受信したライト要求が、前段プロセッサ14からの、前段処理の処理結果データの書き込みを要求するライト要求であった場合(条件W2が成立していた場合:ステップS401;YES,ステップS402;YES、ステップS403;YES)には、書込対象データ用の監視対象記憶領域に書込対象データを記憶すると共に、当該監視対象記憶領域に関する管理情報中のWビット値を“0”に変更する処理(ステップS405)を行う。
また、この場合、キャッシュメモリ制御部30は、第1書込完了通知を送信することに
より、前段アクセス制御部11内の制御部21に、或る監視対象記憶領域へのデータの書き込みが完了したことを通知する(図示略)。そのため、条件W2の成立時(ステップS403;YES)に、今回の書込データを要求するリード要求が後段アクセス制御部11内の保留アクセス記憶部22に記憶されていた場合(ステップS406;YES)には、そのリード要求で要求されているデータを後段プロセッサ14に返送する処理(ステップS407)も行われることになる。
具体的には、既に説明したように、制御部21は、第1書込完了通知が入力された場合に、アクセス情報送信部24に対してアクセス情報出力指示を出力するユニットであり、アクセス情報送信部24は、今回のアクセス要求にてアクセスが要求されている領域を示すアクセス情報を、制御部21から所定のアクセス情報出力指示が入力されたときに、アクセス情報バス12上に送出するユニットである。また、アクセス領域一致判定部23は、アクセス情報バス12上に送出されたアクセス情報が示している領域と、保留アクセス記憶部22に記憶されているアクセス要求にてアクセスが要求されている領域とが一致していている場合に、第2書込完了通知を制御部21に対して出力するユニットである。そして、制御部21は、第2書込完了通知が入力されたときに、アクセス要求選択部25に、保留アクセス記憶部22上のアクセス要求を共有キャッシュメモリ13に供給させる機能を有している。
従って、第1書込完了通知が、前段アクセス制御部11内の制御部21に対して送信された場合、まず、前段アクセス制御部11内のアクセス情報送信部24が、今回、データが書き込まれた領域を示すアドレス情報をアドレス情報バス12上に送出する。
次いで、そのアドレス情報を検知した,後段アクセス制御部11内のアクセス領域一致判定部23が、当該アクセス情報が示している領域と、自アクセス制御部11内の保留アクセス記憶部22に記憶されているリード要求にてアクセスが要求されている領域とが一致していているか否かを判断する。換言すれば、後段アクセス制御部11内のアクセス領域一致判定部23は、今回、書き込みが完了したデータを要求するリード要求が自アクセス制御部11内の保留アクセス記憶部22に記憶されているか否かを判断する(ステップS406)。
そして、アクセス領域一致判定部23は、そのようなリード要求が保留アクセス記憶部22に記憶されていた場合(ステップS406;YES)には、制御部21に対して第2書込完了通知を出力する。その結果、第2書込完了通知が入力された制御部21によりアクセス要求選択部25が制御されて、保留アクセス記憶部22上のリード要求が共有キャッシュメモリ13に供給されることになる。
共有キャッシュメモリ13に供給されたリード要求は、図7等を用いて既に説明した手順で処理されるが、第1書込完了通知が送信された結果として共有キャッシュメモリ13に供給されるリード要求が要求するデータは、今回、書き込みが完了したデータ(対応する管理情報のWビットが“0”となっているデータ)である。従って、第1書込完了通知が送信された結果としてリード要求が共有キャッシュメモリ13に供給された場合、直前に書き込まれたデータがデータメモリ部32から読み出され、後段アクセス制御部11を介して後段プロセッサ14に返送される(ステップS407)ことになる。
次に、領域解放コマンド受信時における共有キャッシュメモリ装置10の動作を説明する。
後段プロセッサ14が送信する領域解放コマンド(図5参照)は、特にオペランドを含まないコマンドである。この領域解放コマンドは、プロセッサインタフェース部20、制
御部21及びキャッシュアクセス調停部31を介してキャッシュメモリ制御部30に入力される。
そして、領域解放コマンドが入力された場合、キャッシュメモリ制御部30は、各監視対象記憶領域上のデータを主記憶装置に書き戻すことなく、各監視対象記憶領域に関する管理情報記憶領域のVフィールド、SPIDフィールドに、それぞれ、“0”、所定値を設定する処理(他の各フィールドにも初期値をする処理)を行う。要するに、領域解放コマンドが入力された場合、キャッシュメモリ制御部30は、前段処理及び後段処理用に確保した各監視対象記憶領域を、通常のデータ記憶領域に戻すための処理を行う。
なお、各監視対象記憶領域上のデータを主記憶装置に書き戻させていないのは、前段処理が、“後段処理以外の処理によりその処理結果が利用されない処理”であることを想定しているからである。従って、前段プロセッサ14に、後段処理以外の処理によりその処理結果が利用される前段処理を実行させる場合には、キャッシュメモリ制御部30を、領域確保コマンドの入力時に(又は、別タイミングで)、各監視対象記憶領域上のデータを主記憶装置に書き戻すユニットとしておくべきである。
以上、詳細に説明したように、本実施形態に係る情報処理システム(図1)は、後段処理(及び前段処理)が、例えば、図9に示したような形で進行するシステムとなっている。
すなわち、第1実施形態に係る情報処理システムの前段プロセッサ14が前段処理を開始すると、バイト/ワード単位の各処理結果データが前段プロセッサ14の内蔵キャッシュに一旦記憶される。そして、ラインの入れ替えが必要になった場合等に、ラインサイズのデータのライト要求が共有キャッシュメモリ装置10(図では、共有キャッシュ)に対して出されることになる。
また、後段処理を開始した後段プロセッサ14は、前段処理の進行状況とは全く無関係なタイミングで、前段処理の処理結果データの読み出しを要求するリード要求を共有キャッシュメモリ装置10に対して送信することになる。
後段プロセッサ14から受信したリード要求が、前段プロセッサ14により未だ書き込まれていないデータを要求するものであった場合、共有キャッシュメモリ装置10は、後段プロセッサ14にデータを返送することなく、そのリード要求を保留する(そのリード要求を後段アクセス制御部11内の保留アクセス記憶部22に保存する;図7参照)。従って、後段プロセッサ14は、要求したデータが共有キャッシュメモリ装置10から返送されてくるのを待機することになる。
また、共有キャッシュメモリ装置10は、前段プロセッサ14からのライト要求に対しては、常に、応答する(図8参照)。そのため、しばらくすると、保留しているリード要求にて要求されているデータが前段プロセッサ14により共有キャッシュメモリ装置10内に書き込まれることになる。
そして、共有キャッシュメモリ装置10は、保留しているリード要求にて要求されているデータが前段プロセッサ14により共有キャッシュメモリ装置10内に書き込まれたときに、保留しているリード要求に対する実際の処理を行う機能(図8:ステップS406,407)を有している。従って、送信したリード要求が共有キャッシュメモリ装置10により保留された後段プロセッサ14は、この機能によりデータが返送されてきたときに、中断していた後段処理を再開することになる。
このように、第1実施形態に係る情報処理システムは、前段処理/後段処理を前段/後段プロセッサ14に実行させる際に、各プロセッサ14に状況通知用通信処理(割り込みを出力する処理、共有リソース上へ所定情報を書き込む処理等)を行わせる必要が全くないシステムとなっている。そして、各プロセッサ14に状況通知用通信処理を行わせる必要がなければ、その分、全処理の完了に要する時間を短くすることが出来るのであるから、第1実施形態に係る共有キャッシュメモリ装置10は、それを用いることにより、『2個のプロセッサに、より高速に連携した処理を行わせることが出来るようになる装置』となっていると言うことが出来る。
《第2実施形態》
第2実施形態に係る共有キャッシュメモリ装置10は、後段処理として、『一度、共有キャッシュメモリ装置10から読み出したデータを再度読み出すことがない処理』が実行されることを想定して開発した装置である。
第2実施形態に係る共有キャッシュメモリ装置10は、キャッシュメモリ制御部30の機能のみが、第1実施形態に係る共有キャッシュメモリ装置10(図1参照)と異なる装置である。そして、第2実施形態に係る共有キャッシュメモリ装置10を用いて構築されるシステム(以下、第2実施形態に情報処理システムと表記する)は、第1実施形態に係る情報処理システムとは利用法が若干異なるものとなっている。そのため、以下では、第2実施形態に係る共有キャッシュメモリ装置10内のキャッシュメモリ制御部30(以下、第2キャッシュメモリ制御部30と表記する)の機能と、第2実施形態に係る情報処理システムの利用法のみを説明することにする。
第2キャッシュメモリ制御部30は、ライト要求に対しては、第1実施形態に係る共有キャッシュメモリ装置10内のキャッシュメモリ制御部30(以下、第1キャッシュメモリ制御部30と表記する)と同内容の処理を行うユニットである。ただし、第2キャッシュメモリ制御部30は、共有キャッシュメモリ装置10を、リード要求を図10に示した手順で処理する装置として機能させるユニットとなっている。
この図10におけるステップS501〜505の処理は、図8におけるステップS301〜305の処理と本質的には同じ処理である。すなわち、リード要求を受信した場合、第2キャッシュメモリ制御部30は、各タグメモリ部32上の特定のn個の管理情報を参照することにより、読出対象データ用のデータ記憶領域(図10では、対応データ記憶領域)が存在するか否かを判断する(ステップS501)。そして、第2キャッシュメモリ制御部30は、読出対象データ用のデータ記憶領域が存在していなかった場合(ステップS501;NO)には、ステップS504にて、読出対象データを下位記憶階層15から読み出し、受信したリード要求の送信元プロセッサ14に対して返送する処理等(図では、通常のリード要求用制御処理)を行う。
また、第2キャッシュメモリ制御部30は、読出対象データ用の非監視対象記憶領域が存在していた場合(ステップS301;YES,ステップS502;NO)には、ステップS504にて、当該非監視対象記憶領域から読出対象データを読み出して、受信したリード要求の送信元プロセッサ14に返送する処理を行う。
第2キャッシュメモリ制御部30は、読出対象データ用の監視対象記憶領域が存在し、その管理情報中のWビットが“1”であった場合(ステップS501;YES,ステップS502;YES、ステップS503;YES)には、受信したリード要求の送信元アクセス制御部11内の制御部21に保留要求通知を送信する。そして、その結果として、今回の,応答できなかったリード要求が、当該リード要求を受信したアクセス制御部11内の保留アクセス記憶部22に保存される(ステップS505)ことになる。
第2キャッシュメモリ制御部30は、読出対象データ用の監視対象記憶領域が存在し、その管理情報中のWビットが“0”であった場合(ステップS503;NO)、存在していた読出対象データ用の監視対象記憶領域(図では、対応監視対象記憶領域)上のデータをリード要求の送信元プロセッサ14に返送する処理(ステップS506)を行う。また、このステップ506にて、第2キャッシュメモリ制御部30は、当該監視対象記憶領域に関する管理情報記憶領域を初期化する処理(Vフィールド、SPIDフィールドに、それぞれ、“0”、所定値を設定し、他の各フィールドにも初期値を設定する処理)も行う。
要するに、後段処理が、一度読み出したデータを再度読み出さない処理である場合、データの読み出しが完了した監視対象記憶領域を、通常のデータ記憶領域に戻しても何ら問題は生じないことになる。そして、通常のデータ記憶領域(特に制限なく利用できるデータ記憶領域)が多い方が、キャッシュミスが発生し難くなるので、第2実施形態に係る共有キャッシュメモリ装置10に上記構成を採用しているのである。
最後に、第2実施形態に係る情報処理システムの利用法を簡単に説明しておくことにする。
上記したように、第2実施形態に係る共有キャッシュメモリ装置10は、或る監視対象記憶領域からのデータの読み出しが完了した際に、その監視対象記憶領域を通常のデータ記憶領域に戻す装置となっている。換言すれば、第2実施形態に係る情報処理システムは、後段処理の完了と同時に、共有キャッシュメモリ装置10内の全てのデータ記憶領域が非監視対象記憶領域(通常のデータ記憶領域)となるシステムとなっている。
そのため、第2実施形態に係る情報処理システムの各プロセッサ14に前段処理及び後段処理を行わせる場合、後段プロセッサ14は、領域解放コマンドを送信しないように(図5のステップS201及びS202の処理を行うように)、プログラミングされる。
《第3実施形態》
図11に、第3実施形態に係る共有キャッシュメモリ装置10の構成を示す。
この図11に示してあるように、第3実施形態に係る共有キャッシュメモリ装置10は、2個のアクセス制御部11a、アクセス情報バス12及び共有キャッシュメモリ13を備えた装置である。なお、この共有キャッシュメモリ装置10も、第1,第2実施形態に係る共有キャッシュメモリ装置10と同様に、2個のプロセッサ14と下位記憶階層15(図11には、未表記;図1参照。)とに接続される装置である。
この共有キャッシュメモリ装置10が備える共有キャッシュメモリ13は、第1実施形態に係る共有キャッシュメモリ装置10が備える共有キャッシュメモリ13と同構成、同機能のユニットである。
アクセス制御部11aは、図2等を用いて既に説明したアクセス制御部11内のアクセス情報送信部24、アクセス領域一致判定部23、制御部21を、それぞれ、アクセス情報送信部24a、アクセス領域一致判定部23a、制御部21aに置き換えたユニットである。
アクセス情報送信部24aは、アクセス情報送信部24と同様に、アクセス情報を、所定のアクセス情報出力指示が制御部21aから入力されたときに、アクセス情報バス12上に送出するユニットである。ただし、このアクセス情報送信部24aは、アクセス要求
自体を、アクセス情報としてアクセス情報バス12上に送出するユニットとなっている。
アクセス領域一致判定部23aは、アクセス領域一致判定部23と同様に、アクセス情報バス12上に送出されたアクセス情報が示している領域と、保留アクセス記憶部22に記憶されているアクセス要求にてアクセスが要求されている領域とが一致しているか否かを判定する機能を有するユニットである。また、アクセス領域一致判定部23aは、両領域が一致していた場合、第2書込完了通知を制御部21に対して出力するユニットともなっている。
ただし、アクセス領域一致判定部23aは、両領域が一致していた場合、アクセス情報バス12上に送出されたアクセス情報中のデータ(ライト要求の書込対象データ)を、自アクセス制御部11aと接続されているプロセッサ14に返送する処理も行うように、構成(改良)されている。
そして、制御部21aは、第2書込完了通知が入力されたときに、各部を通常の状態に戻す制御のみを行うように(保留アクセス記憶部22上のアクセス要求を共有キャッシュメモリ13に供給しないように)、制御部21を改良したユニットとなっている。
要するに、本共有キャッシュメモリ装置10は、図12に模式的に示した如く、或るデータについてのリード要求を保留している状態で当該データについてのライト要求を受信した場合、そのライト要求の書込対象データ自体を後段プロセッサ14に返送する装置として構成されている。
従って、この共有キャッシュメモリ装置10は、データメモリ部32に書き込んだデータを読み出すことにより保留リード要求に応答する第1実施形態に係る共有キャッシュメモリ装置10(図10)よりも、保留リード要求に対する応答が早い装置となっていることになる。
《第4実施形態》
図13に、第4実施形態に係る共有キャッシュメモリ装置10の構成を示す。
この図13に示してあるように、第4実施形態に係る共有キャッシュメモリ装置10は、2個のアクセス制御部11b、アクセス情報バス12及び共有キャッシュメモリ13を備えた装置である。
この共有キャッシュメモリ装置10も、第1〜第3実施形態に係る共有キャッシュメモリ装置10と同様に、2個のプロセッサ14と下位記憶階層15(図13には、未表記;図1参照。)とに接続された状態で使用される装置である。ただし、第3実施形態に係る共有キャッシュメモリ装置10は、或るリード要求に対する応答がなくても次のリード要求を出せるプロセッサが、後段プロセッサ14として接続される装置となっている。
本実施形態に係る共有キャッシュメモリ装置10が備える共有キャッシュメモリ13は、第1、第3実施形態に係る共有キャッシュメモリ装置10が備える共有キャッシュメモリ13と同構成、同機能のユニットである。
各アクセス制御部11bは、プロセッサインタフェース部20、制御部21b、複数の保留アクセス記憶部22、アクセス領域一致判定部23b、アクセス情報送信部24及びアクセス要求選択部25bを備えたユニットである。
このアクセス制御部11b内のプロセッサインタフェース部20、各保留アクセス記憶
部22、アクセス情報送信部24は、それぞれ、アクセス制御部11(図2)内の同名のユニットと本質的には同機能のユニットである。
アクセス要求選択部25bは、制御部21bの制御下、複数の保留アクセス記憶部22の中のいずれかの保留アクセス記憶部22上のアクセス要求、又は、プロセッサインタフェース部20からのアクセス要求を、共有キャッシュメモリ13に供給するユニットである。
アクセス領域一致判定部23bは、以下の機能を有するユニットである。アクセス領域一致判定部23bは、通常は、アクセス情報バス12上にアクセス情報が送出されるのを監視している。アクセス領域一致判定部23bは、アクセス情報バス12上にアクセス情報が送出されたことを検出した場合には、当該アクセス情報が示している領域と同じ領域に対するアクセスを要求しているアクセス要求がいずれかの各保留アクセス記憶部22に記憶されているか否かを判断する。そして、アクセス領域一致判定部23bは、そのようなアクセス要求が或る保留アクセス記憶部22に記憶されていた場合には、当該保留アクセス記憶部22の識別情報を含む記憶部通知情報を制御部21bに対して送信する。
制御部21bは、以下の機能を有するユニットである。制御部21bは、通常は、プロセッサインタフェース部20により受信されたアクセス要求が共有キャッシュメモリ13に供給されるように、アクセス要求選択部25bを制御している。また、制御部21bは、プロセッサインタフェース部20により受信されたアクセス要求で、その時点において制御対象となっている保留アクセス記憶部22(以下、制御対象記憶部22と表記する)上のアクセス要求が更新されるように各部を制御している。
そして、制御部21bは、保留要求通知がキャッシュメモリ制御部30から入力された場合には、今回のアクセス要求を保持し続けるように、制御対象記憶部22を制御すると共に、制御対象記憶部22を、未使用状態にある(保留したアクセス要求の記憶のために使用されていない)他の保留アクセス記憶部22に変更する。
制御部21bは、第1書込完了通知がキャッシュメモリ制御部30から入力された場合には、アクセス情報送信部24に対してアクセス情報出力指示を出力する。また、制御部21bは、上記した記憶部通知情報がアクセス領域一致判定部23bから入力された場合には、その記憶部通知情報中の識別情報で識別される保留アクセス記憶部22上のアクセス要求を、アクセス要求選択部25に共有キャッシュメモリ13に供給させてから、当該保留アクセス記憶部22が未使用状態になったことを記憶する。
以上の説明(及び第1実施形態に係る共有キャッシュメモリ装置10についての説明)から明らかなように、この第4実施形態に係る共有キャッシュメモリ装置10は、第1実施形態に係る共有キャッシュメモリ装置10を、リード要求を複数個保留できるように(保留することが必要なリード要求が連続的に入力されても問題が生じないように)、改良したものとなっている。
従って、この共有キャッシュメモリ装置10に接続した後段プロセッサ14に、図14に示したような内容の後段処理、すなわち、第2入力画像データ(前段処理の入力画像データ自体等)と前段処理の処理結果とから出力画像データを生成する後段処理を実行させた場合、図15に示したように、第2入力画像データを後段プロセッサ14内に読み込む第2入力画像データ取得処理は、前段処理の進行状況に因らず(リード要求が保留中であっても)行えることになる。
そして、第1実施形態に係る共有キャッシュメモリ装置10を用いた場合、リード要求
の保留中に、この第2入力画像データ取得処理を行うことが出来ないのであるから、本実施形態に係る共有キャッシュメモリ装置10は、第1実施形態に係る共有キャッシュメモリ装置10よりも、処理性能が高い情報処理システムを構築できるものとなっていることになる。
《変形形態》
上記した各実施形態に係る共有キャッシュメモリ装置10については、各種の変形を行うことが出来る。
例えば、各実施形態に係る共有キャッシュメモリ装置10を、ライトスルー方式のキャッシュメモリを備えたプロセッサ14と接続して使用するものに変形することが出来る。具体的には、共有キャッシュメモリ装置10を、例えば、ラインサイズが64バイトの,ライトスルー方式のキャッシュメモリを備えたプロセッサ14と接続して使用するものに変形する場合には、図16に示したように、タグメモリ部32のWフィールドを、64個のWビットを記憶できるものとしておく。また、キャッシュメモリ制御部30を、領域確保コマンドの入力時に、監視対象記憶領域に関する管理情報記憶領域のWフィールド内の全Wビットの値を“1”とし、1バイト単位のデータが前段プロセッサ14により書き込まれる度に該当するWビットを“0”に書き換えるユニットとしておく。さらに、キャッシュメモリ制御部30を、後段プロセッサ14からのリード要求には、管理情報中の全Wビットが“0”となっている場合にのみ応答するユニットともしておく。
そのように共有キャッシュメモリ装置10を変形しておけば、図17に模式的に示したように、第1実施形態に係る情報処理システム等とは、前段プロセッサ14(前段プロセッサ14内の共有キャッシュ)から出されるライト要求の回数のみが異なる情報処理システムを実現できることになる。なお、上記場合、キャッシュメモリ制御部30を、後段プロセッサ14から1バイト単位のリード要求に応答できるユニットに変形しておくことも出来る。
また、同様の構成を採用することによって、共有キャッシュメモリ装置10を、各データ記憶領域のサイズが、内蔵キャッシュのラインサイズと整数倍である装置に変形することも出来る。
第3、第4実施形態に係る共有キャッシュメモリ装置10に、第2実施形態に係る共有キャッシュメモリ装置10が備える機能(データの読み出しが完了した監視対象記憶霊異記を通常のデータ記憶領域に戻す機能)を付加しておくことも出来る。
アクセス制御部11を増やすことにより、各実施形態に係る共有キャッシュメモリ装置10を、3個以上のプロセッサ14と接続できる装置に変形することも出来る。また、各実施形態に係る共有キャッシュメモリ装置10を、フルアソシエイティブ方式の装置に変形することも出来る。
各実施形態に係る共有キャッシュメモリ装置10を、各アクセス制御部11が、タグメモリ部32及びデータメモリ部33を制御する装置(キャッシュメモリ制御部30がない装置)や、キャッシュメモリ制御部30がアクセス制御部11としての機能も有する装置(アクセス制御部11がない装置)に変形することも出来る。さらに、上記技術を、キャッシュメモリではない共有メモリに適用することも出来る。