(57)【特許請求の範囲】
【請求項１】
プロセッサ部が要求するアドレスのデータを記憶装置から取り出して一時記憶し、一時記憶されたデータを前記プロセッサ部に供給するキャッシュシステムであって、
複数の記憶領域を有し、前記複数の記憶領域の各々には固有の識別番号が割り当てられており、前記記憶装置からのデータを前記複数の記憶領域において記憶するデータ記憶部と、
前記データ記憶部が記憶しているまたは記憶処理中のデータの前記アドレスとこのデータを記憶する前記記憶領域の前記識別番号との対応関係、および前記データ記憶部による記憶が完了しているか否かを前記識別番号ごとに示す有効表示情報、を記憶する管理情報記憶部と、
前記複数の記憶領域の１つでありかつ前記プロセッサ部から供給された新たなアドレスのデータを記憶する指定記憶領域を決定し、前記新たなアドレスのデータの出力を要求する信号を前記記憶装置に供給するリフィル処理部と、
前記指定記憶領域の前記識別番号を保持する記憶部から前記指定記憶領域の前記識別番号を供給され、前記管理情報記憶部に記憶された前記有効表示情報を用いて前記指定記憶領域の前記識別番号の前記有効表示情報が有効か否かを判定し、有効の場合に前記指定記憶領域内のデータの出力を要求する旨の信号を前記データ記憶部に供給する検査部と、
を具備することを特徴とするキャッシュシステム。
【請求項２】
前記管理情報記憶部を参照し、前記データ記憶部が前記新たなアドレスのデータを記憶していない場合に前記新たなアドレスを前記リフィル処理部に供給する比較部をさらに具備することを特徴とする請求項１に記載のキャッシュシステム。
【請求項３】
前記リフィル処理部から前記指定記憶領域の前記識別番号を供給され、一定時間後に前記識別番号を前記検査部に供給する識別番号記憶部をさらに具備することを特徴とする請求項１に記載のキャッシュシステム。
【請求項４】
前記管理情報記憶部を参照し、前記データ記憶部が前記新たなアドレスのデータを記憶している場合に前記新たなアドレスのデータが記憶されている前記記憶領域の前記識別番号を前記識別番号記憶部に供給する比較部をさらに具備することを特徴とする請求項３に記載のキャッシュシステム。
【請求項５】
前記新たなアドレスのデータが前記データ記憶部に記憶される際に、前記指定記憶領域の前記識別番号を前記記憶装置から受信し、前記指定記憶領域の前記識別番号の前記有効表示情報を有効にする旨の信号を前記管理情報記憶部に供給する有効表示更新部をさらに具備することを特徴とする請求項１に記載のキャッシュシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサと記憶装置との間のキャッシュシステムに関する。
【背景技術】
【０００２】
３ＤグラフィックスＬＳＩ（Large Scale Integration）など、ストリームを処理するプロセッサは、一般のプロセッサと異なり、分岐処理がない。このため、パイプライン処理が乱されない。
【０００３】
したがって、そのようなＬＳＩがメモリを参照する場合は、プリフェッチを行い、必要となるデータがメモリからキャッシュシステムにフィルされた後にフェッチを行うことによってメモリのレイテンシを隠蔽する手法が用いられる場合が多い。
【０００４】
しかし、そのようなキャッシュシステムでは、以下に示すように、プリフェッチ時およびフェッチ時にヒット判定を行うためヒット判定の回路が複雑になる。
【０００５】
まず、ＬＳＩ等のプロセッサからの読み出しアドレスは、キャッシュシステム内のタグ部およびＦＩＦＯメモリ部に供給される。タグ部は、メモリによって記憶されている表から構成され、キャッシュデータ記憶部内のデータと各データのメモリ上でのアドレスを保持している。そして、判定部は、タグ部を参照することにより、読み出しアドレスのデータがキャッシュデータ記憶部内に格納されているかを判定する（ヒット判定を行う）。この動作はプリフェッチと呼ばれる。
【０００６】
判定の結果、読み出しアドレスのデータがキャッシュデータ記憶部内に記憶されていない場合、その旨の信号が、リフィル処理部に供給される。これを受けて、リフィル処理部は、メモリに対して読み出しアドレスおよびリフィル要求を出力する。メモリは、リフィル要求に応じて、読み出しアドレスのデータを、キャッシュデータ記憶部に供給する（リフィルする）。
【０００７】
ＦＩＦＯメモリ部は、所定の時間の経過後、読み出しアドレスを判定部に供給する。判定部は、再度、ヒット判定を行う。この動作はフェッチと呼ばれる。フェッチ動作の判定の結果、読み出しアドレスのデータがキャッシュデータ記憶部内に記憶されている場合、このデータをリクエスタに供給する。
【０００８】
上記のように、判定部は、プリフェッチ時およびフェッチ時にヒット判定を行う。このため、判定部は、これら２つの場合のヒット判定を行えるような、回路構成を有している必要がある。このことによって、判定部の面積が大きくなる。特に３Ｄグラフィックス処理ではキャッシュに多数の要求がやってくるため、これに対応するために判定部の面積が非常に大きい。
【０００９】
この出願の発明に関連する先行技術文献情報としては次のものがある。
【特許文献１】米国特許第5,535,350号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、読み出しアドレスのヒット判定が簡便なキャッシュシステムを提供しようとするものである。
【課題を解決するための手段】
【００１１】
本発明の第１の視点によるキャッシュシステムは、プロセッサ部が要求するアドレスのデータを記憶装置から取り出して一時記憶し、一時記憶されたデータを前記プロセッサ部に供給するキャッシュシステムであって、複数の記憶領域を有し、前記複数の記憶領域の各々には固有の識別番号が割り当てられており、前記記憶装置からのデータを前記複数の記憶領域において記憶するデータ記憶部と、前記データ記憶部が記憶しているまたは記憶処理中のデータの前記アドレスとこのデータを記憶する前記記憶領域の前記識別番号との対応関係、および前記データ記憶部による記憶が完了しているか否かを前記識別番号ごとに示す有効表示情報、を記憶する管理情報記憶部と、前記複数の記憶領域の１つでありかつ前記プロセッサ部から供給された新たなアドレスのデータを記憶する指定記憶領域を決定し、前記新たなアドレスのデータの出力を要求する信号を前記記憶装置に供給するリフィル処理部と、前記指定記憶領域の前記識別番号を保持する記憶部から前記指定記憶領域の前記識別番号を供給され、前記管理情報記憶部に記憶された前記有効表示情報を用いて前記指定記憶領域の前記識別番号の前記有効表示情報が有効か否かを判定し、有効の場合に前記指定記憶領域内のデータの出力を要求する旨の信号を前記データ記憶部に供給する検査部と、を具備することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、読み出しアドレスのヒット判定が簡便なキャッシュシステムを提供できる。
【発明を実施するための最良の形態】
【００１３】
以下に本発明の実施の形態について図面を参照して説明する。なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【００１４】
図１は、本発明の一実施形態に係るキャッシュシステム（記憶装置）とその周辺の構成を示すブロック図である。図１に示すように、キャッシュシステム１は、プロセッサ２と、メインメモリ３との間に設けられている。
【００１５】
メインメモリ３は、例えば、主記憶装置としての揮発性のＲＡＭ（Random Access Memory）等からなる。メインメモリ３は、プロセッサ２が動作するために必要な制御プログラムおよびデータを保持する。この制御プログラムおよびデータは、例えば図示せぬハードディスクドライブ等から読み出されて、メインメモリ３に格納される。
【００１６】
プロセッサ２は、３ＤグラフィックスＬＳＩ等から実現され、例えばパイプライン処理を行うことができるように構成されている。プロセッサ２は、メインメモリ３に格納されている制御プログラムを読み出し、このプログラムに応じて所定の処理を実行する。実際には、メインメモリ３から読み出された制御プログラムは、キャッシュシステム１に読み出され、プロセッサ２はキャッシュシステム１から制御プログラムを読み出して処理を実行する。
【００１７】
プロセッサ２は、例えば、演算部３１、アドレス生成部３２、制御部３３等を有する。演算部３１、アドレス生成部３２、制御部３３は、例えばバスにより相互に接続されることにより、相互に通信可能に構成されている。
【００１８】
制御部３３は、プロセッサ２の各部の制御を司る。演算部３１は、上記のように、メインメモリ３から読み出された制御プログラムに従って所定の処理を実行する。また、演算部３１は、パイプライン処理に沿って、この先に必要となる制御プログラムおよびデータを、メインメモリ３からキャッシュシステム１に読み出す旨の指示を、アドレス生成部３２に供給する。演算部３１は、例えば複数の信号処理部から構成されていてもよい。
【００１９】
アドレス生成部３２は、メインメモリ内の、演算部３１が要求する制御プログラムおよびデータを記憶しているアドレスの情報を含んだアドレス信号を出力する。このアドレス信号はキャッシュシステムに供給される。
【００２０】
キャッシュシステム１は、後述のように、このアドレス信号に応じた制御プログラムおよびデータをメインメモリ３から読み出した上で格納している。キャッシュシステム１が、アドレス信号により特定される制御プログラムおよびデータを格納していない場合、このアドレス信号により特定されるデータを出力する旨の信号をメインメモリ３に出力する。
【００２１】
一方、キャッシュシステム１が、アドレス信号により特定される制御プログラムおよびデータを既に格納している場合、キャッシュシステム１は、特に何も行わず、例えば所定の時間経過後に、この制御プログラムおよびデータを演算部に供給する。
【００２２】
メインメモリ３は、例えば、メモリコントローラ４１、メモリ領域４２を有する。メモリコントローラは４１は、メインメモリ３内の各部の制御を司り、外部から供給されるアドレスにより特定されるデータをメモリ領域から読み出したり、アドレスにより特定される領域にデータを書き込んだりする。また、メモリコントローラ４１は、メインメモリ３の外部との信号およびデータの入出力を司る。
【００２３】
図２は、本発明の一実施形態に係るキャッシュシステムの主要部を示すブロック図である。キャッシュシステム１は、タグ部１１、比較部１２、識別番号記憶部１３、リフィル処理部１４、キャッシュデータ記憶部１５、バリッド更新部１６、検査部１７を有する。
【００２４】
タグ部（管理情報記憶部）１１は、例えば不揮発性メモリ上に実現されており、図３のような表から構成されている。図３は、本発明の一実施形態に係るキャッシュシステムのタグ部の構成を示している。図３に示すように、この表は、各識別番号（エントリ）に対して、後述の各項目が設けられている。識別番号は、キャッシュデータ記憶部（データ記憶部）１５のメモリ空間内の１つの単位領域（記憶領域）に１つ割り当てられており、記憶領域のアドレスに相当する。よって、識別番号によって、キャッシュデータ記憶部１５のメモリ空間の１つの記憶領域が特定される。
【００２５】
識別番号は、最大で、キャッシュデータ記憶部１５の記憶領域の数と同数であるので、この数を区別するのに足るビット数（例えば６ビット）により構成される。
【００２６】
１つの識別番号に対して、少なくとも、読み出しアドレス（例えば３２ビット）表示欄、およびバリッド表示欄が設けられる。読み出しアドレスは、プロセッサ２が要求するデータが記憶されている、メモリ２上でのアドレスである。読み出しアドレス欄には、識別番号により特定される記憶領域に記憶されているデータの、読み出しアドレス、すなわち、メインメモリ３のメモリ領域４２上でのアドレスが記載されている。
【００２７】
後述するように、ある読み出しアドレスのデータが、キャッシュデータ記憶部１５に書き込まれる際、この読み出しアドレスに対して１つの識別番号（インデックス）が割り当てられる。そして、タグ部１１内において、割り当てられた識別番号の読み出しアドレス表示欄に、この読み出しアドレスが書き込まれる。
【００２８】
バリッド表示欄には、識別番号により特定される記憶領域への読み出しアドレスのデータ（読み出しデータ）の書き込みが完了しているか否かの情報（有効表示情報）が記載される。例えば、“１”がデータの書き込み完了、“０”が未完了である。
【００２９】
比較部１２には、プロセッサ２から読み出しアドレスＡが供給される。比較部１２は、読み出しデータがキャッシュデータ記憶部１５に記憶されているか否かを、タグ部１１を参照して判定する（プリフェッチ）。すなわち、比較部１２は、タグ部１１を検索し、読み出しアドレスがタグ部１１内に存在するかを判定する。
【００３０】
読み出しアドレスがタグ部１１内に登録されている場合（ヒットの場合）、比較部１２は、この読み出しアドレスの識別番号（識別番号の情報を含んだ信号Ｂ）を、識別番号記憶部１３に供給する。識別番号記憶部１３は、識別番号を記憶できる構成を有していれば良い。よって、従来のようにフェッチまでの間に読み出しアドレスを保持する実施例において読み出しアドレスを記憶できるような構成よりも、回路構成が簡単で済む。
【００３１】
識別番号記憶部１３は、例えばシフトレジスタにより構成され、順次供給される識別番号を、ＦＩＦＯ（First In First Out）により順次出力する。または、識別番号を供給された時点から、一定時間後、この識別番号を出力する。
【００３２】
また、比較部１２は、読み出しアドレスがタグ部１１に登録されていない場合（ミスの場合）、この読み出しアドレスと読み出しデータ要求の旨を含む信号Ｃを、リフィル処理部１４に供給する。
【００３３】
リフィル処理部１４は、信号Ｃを受けると、読み出しデータをメインメモリ３から取り出すための処理を行う。まず、リフィル処理部１４は、読み出しデータを、キャッシュデータ記憶部１５内のどの記憶領域に記憶するかを決定する。すなわち、リフィル処理部１４は、読み出しデータと識別番号を１対１の関係に関連付ける。リフィル処理部１４は、決定した識別番号の読み出しアドレス欄に読み出しアドレスを記載すべき旨の信号Ｄを、タグ部１１に供給する。
【００３４】
上記のように、キャッシュデータ記憶部での記憶領域は、識別番号によって一義的に特定される。よって、読み出しデータが記憶されるべき記憶領域が、識別番号のみによって一義的に特定されることが可能となる。
【００３５】
リフィル処理部１４は、また、読み出しデータが記憶されるべき記憶領域の識別番号（指定識別番号）を含んだ信号Ｅを、識別番号記憶部１３に供給する。
【００３６】
リフィル処理部１４は、さらに、所望の読み出しデータを記憶している、メインメモリ内のメモリ領域上での読み出しアドレス、この読み出しデータを出力する旨、指定識別番号を含んだ信号Ｆをメインメモリ３に供給する。
【００３７】
メインメモリ３内のメモリコントローラ４１は、信号Ｆを受け取る。メモリコントローラ４１は、信号Ｆに含まれている、読み出しアドレスに割り当てられた識別番号を一時的に記憶する。そして、メモリコントローラ４１は、信号Ｆに含まれている読み出しアドレスが記憶している読み出しデータを、メモリ領域４２から読み出す。次に、メモリコントローラ４１は、読み出しデータとＧをキャッシュデータ記憶部１５に供給する。読み出しデータは、キャッシュデータ記憶部１５において、指定識別番号により特定される記憶領域に記憶される。
【００３８】
メモリコントローラ４１は、読み出しデータＧを出力する際に、記憶していた、この読み出しデータが記憶されるべき記憶領域に対応する識別番号（読み出しデータ識別番号）を含んだ信号Ｈも出力する。
【００３９】
読み出しデータ識別番号を含んだ信号Ｈは、バリッド更新部（有効表示更新部）１６に供給される。バリッド更新部１６は、読み出しデータ識別番号により特定されるデータの記憶が完了した旨の情報を含んだ信号Ｉを、タグ部１１に供給する。タグ部１１は、この情報を受けて、読み出しデータ識別番号におけるバリッド情報を、バリッド（有効）に変更する。
【００４０】
キャッシュデータ記憶部１５は、高速で書き込み、読み出しが可能な記憶装置から構成されており、例えばＳＲＡＭ（Static Random Access Memory）から構成される。
【００４１】
検査部１７は、識別番号記憶部１３から識別番号を供給される。検査部１７は、供給された識別番号のバリッド表示欄が、有効の旨を示しているか否かを判定する。有効である場合、検査部１７は、この識別番号に対応する記憶領域のデータを出力する旨の信号Ｊを出力する。キャッシュデータ記憶部１５は、信号Ｊを受けて、対応する読み出しデータＫを出力する。
【００４２】
比較部１２は、供給された読み出しアドレスをタグ部１１内の読み出しアドレスと比較する必要があるため、比較的大きな回路構成を有する。一方、識別番号のビット数は、読み出しアドレスのビット数に比べて非常に小さいため、検査部１７は、比較部１２よりも簡単な回路構成で実現できる。
【００４３】
次に、図４を参照して、本発明の一実施形態に係るキャッシュシステムの動作について説明する。図４は、キャッシュシステムの動作を示すフローチャートである。図４に示すように、プロセッサから読み出しアドレスが供給される（ステップＳ１）と、比較部１２は、タグ部１１を検索することにより、読み出しアドレスがタグ部１１に登録されているか否かを判定する（ステップＳ２）。
【００４４】
登録されている場合（ヒットの場合）、すなわち、読み出しデータがキャッシュデータ記憶部１５内に記憶されている場合、比較部１２は、読み出しアドレスの識別番号を識別番号記憶部１３に供給する（ステップＳ３）。
【００４５】
識別番号記憶部１３は、ある読み出し要求アドレスが供給された時点から一定時間経過後、この読み出し要求アドレスを検査部１７に供給する（ステップＳ４）。あるいは、識別番号記憶部１３は、ＦＩＦＯによって、新たな読み出し要求アドレスが供給された結果、最も先に供給されたアドレスを検査部１７に供給する。
【００４６】
検査部１７は、識別番号記憶部１３から供給された識別番号のバリッド表示欄を検査する（ステップＳ５）。有効であった場合、検査部１７は、この識別番号の記憶領域のデータを出力する旨の信号をキャッシュデータ記憶部１５に出力する。キャッシュデータ記憶部１５は、対応するアドレスのデータ（読み出しデータ）を、プロセッサに供給する（ステップＳ６）。
【００４７】
一方、ステップＳ５において、識別番号のバリッド表示欄が有効でなかった場合、比較部１２は、この識別番号を記憶し、一定時間の経過後（ステップＳ７）、再度、ステップＳ５においてバリッド表示欄を検査する。そして、バリッド表示欄が、有効になるまで（キャッシュデータ記憶部１５に読み出しデータがリフィルされるまで）、ステップＳ５、Ｓ７が繰り返される。
【００４８】
なお、ステップＳ２において、読み出しデータがキャッシュブロック内に記憶されている場合、この読み出しアドレスのバリッド表示欄は、通常、有効を示している。よって、この場合、ステップＳ７に移行することはあまりない。
【００４９】
一方、ステップＳ２において、読み出しデータがキャッシュブロック内に記憶されていない場合（ミスの場合）、処理は、ステップＳ１１に移行する。ステップＳ１１において、比較部１２は、リフィル要求の旨および読み出しアドレスをリフィル処理部１４に供給する。
【００５０】
次に、リフィル処理部１４は、どの記憶領域に読み出しアドレスを記憶させるかを決定する（ステップＳ１２）、すなわち、読み出しデータに１つの識別番号（指定識別番号）を割り当てる。この決定の際、リフィル処理部１４は、識別番号記憶部１３に存在している識別番号の記憶領域を用いない。プロセッサ２に供給される前に、読み出しデータが書き換えられることを防ぐためである。
【００５１】
リフィル処理部１４は、タグ部１１において、指定識別番号のアドレス表示欄に読み出しアドレスを書き込むとともに、指定識別番号のバリッド表示欄を無効にする。
【００５２】
次に、リフィル処理部１４は、決定した識別番号を識別番号記憶部１３に供給する（ステップＳ１３）。次いで、リフィル処理部１４は、読み出しデータの出力を要求する信号を、決定した識別番号とともに、メインメモリ３に供給する（ステップＳ１４）。なお、ステップＳ１３、Ｓ１４の順序は、逆であっても良いし、並行して行われても良い。
【００５３】
メインメモリ３の処理能力に応じた所定時間の経過後、読み出しデータが、その識別番号とともに、メインメモリ３からキャッシュシステム１に供給される（ステップＳ１５）。
【００５４】
メインメモリ３からの識別番号は、バリッド更新部１６に供給される。バリッド更新部１６は、供給された識別番号のタグ部１１におけるバリッド表示欄を有効へと書き換える（ステップＳ１６）。この後、処理はステップＳ４に移行する。
【００５５】
本発明の一実施形態に係るキャッシュシステムによれば、キャッシュデータ記憶部１５の各記憶領域に識別番号が予め割り当てられ、各読み出しデータはどの記憶領域に格納されるかに応じて識別番号によって識別される。そして、フェッチ時、所望の読み出しデータがキャッシュデータ記憶部１５に準備されているか否かを判定する方法として、比較回路は、識別番号ごとに設けられたバリッド表示部が有効か否かを判定する。このため、フェッチ時の判定が、読み出しアドレスをタグ部１１と比較する場合に比べて簡便になる。よって、検査回路１７（従来の、フェッチ時に読み出しアドレスをタグ部１１と比較する回路に対応）の面積が縮小する。
【００５６】
また、各読み出しデータは識別番号により識別されるため、識別番号記憶部１３は、ビット数の少ない識別番号を保持できる構成であれば良い。このため、識別番号記憶部１３の構成は、読み出しアドレスを保持可能な構成の場合に比べて簡単になる。この結果、識別番号記憶部１３の回路の面積も縮小する。
【００５７】
その他、本発明の思想の範疇において、当業者であれば、各種の変更例及び修正例に想到し得るものであり、それら変更例及び修正例についても本発明の範囲に属するものと了解される。
【図面の簡単な説明】
【００５８】
【図１】本発明の一実施形態に係るキャッシュシステムとその周辺の構成を示すブロック図。
【図２】本発明の一実施形態に係るキャッシュシステムの主要部を示すブロック図。
【図３】本発明の一実施形態のキャッシュシステムに係るタグ部の構成を示す図。
【図４】本発明の一実施形態に係るキャッシュシステムの動作を示すフローチャート。
【符号の説明】
【００５９】
１…キャッシュシステム、２…プロセッサ、３…メモリ、１１…タグ部、１２…比較部、１３…識別番号記憶部、１４…リフィル処理部、１５…キャッシュデータ記憶部、１６…バリッド更新部、１７…検査部。
【図１】
0004828879.tif 000002
【図２】
0004828879.tif 000003
【図３】
0004828879.tif 000004
【図４】
0004828879.tif 000005