(57)【要約】【課題】データ処理のスループットが高いデータ処理装置を提供する。【解決手段】処理対象のデータがキャッシュメモリＣＭに存在するかどうかを判定するキャッシュヒット・ミス判定部２０と、キャッシュヒットの場合にキャッシュメモリＣＭから処理対象のデータを読み出し、キャッシュミスの場合に、上位メモリコントローラ１２０から出力される処理対象のデータをキャッシュメモリＣＭへ書き出すとともに、データ要求元へ出力するキャッシュメモリ読出し書込み部４０との間に、キャッシュヒット／ミスの判定結果とブロック内読出位置情報とを先入れ先出しで格納するＦＩＦＯメモリ３０を介挿する。【選択図】図１
2010146084.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュメモリと、データ処理部と、上位メモリ制御部と、前記キャッシュメモリ、前記データ処理部および前記上位メモリ制御部に接続されたキャッシュメモリ制御部と、を備えるデータ処理装置において、
前記キャッシュメモリ制御部は、
前記データ処理部からのデータ処理の要求を受けて処理対象のデータが前記キャッシュメモリに存在するかどうかを判定し、キャッシュヒット・ミス判定結果とそのブロック内読出位置情報とを出力するとともに、処理対象のデータが前記キャッシュメモリに存在しないと判定した場合には、前記上位メモリ制御部が上位メモリから処理対象のデータを読み出すための読出コマンドを、前記上位メモリ制御部に出力するキャッシュヒット・ミス判定部と、
前記キャッシュヒット・ミス判定結果と前記ブロック内読出位置情報とを先入れ先出しで格納するＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）記憶部と、
前記ＦＩＦＯ記憶部から前記キャッシュヒット・ミス判定結果および前記ブロック内読出位置情報を読み出して前記キャッシュメモリから処理対象のデータを読み出し、または、前記上位メモリ制御部から出力される処理対象のデータを前記キャッシュメモリへ書き込むとともに、処理対象のデータを出力するキャッシュメモリ読出し書込み部と、
を含み、
前記キャッシュヒット・ミス判定部は、キャッシュミスが発生した場合に、前記上位メモリ制御部からのレスポンスに先行して前記読出コマンドを生成する、ことを特徴とするデータ処理装置。
【請求項２】
前記ＦＩＦＯ記憶部は、バースト転送のための読出データ数をさらに格納することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記キャッシュヒット・ミス判定部から出力される前記読出コマンドを格納する第１のバッファをさらに備えることを特徴とする請求項１または２に記載のデータ処理装置。
【請求項４】
前記上位メモリから読み出され前記上位メモリ制御部から出力された処理対象のデータを格納する第２のバッファをさらに備えることを特徴とする請求項１乃至３のいずれかに記載のデータ処理装置。
【請求項５】
前記キャッシュメモリ読出し書込み部に接続され、前記キャッシュメモリ読出し書込み部から出力される処理対象データを格納する第３のバッファをさらに備えることを特徴とする請求項１乃至４のいずれかに記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリ制御部を備えるデータ処理装置に関する。
【背景技術】
【０００２】
キャッシュメモリの利用に際し、従来から、キャッシュヒット時の読み出しのレイテンシが重視されることが多かった。
【０００３】
しかしながら、キャッシュからの読み出しレイテンシよりもデータ処理のスループットが重視される環境もあり、このような環境では、キャッシュヒットとキャッシュミスが混在した場合にデータ処理のスループットが低くなってしまうという問題があった。
【特許文献１】特開平５−５３９０９
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、データ処理のスループットが高いデータ処理装置を提供することにある。
【課題を解決するための手段】
【０００５】
本発明の一態様によれば、キャッシュメモリと、データ処理部と、上位メモリ制御部と、前記キャッシュメモリ、前記データ処理部および前記上位メモリ制御部に接続されたキャッシュメモリ制御部と、を備えるデータ処理装置において、前記キャッシュメモリ制御部は、前記データ処理部からのデータ処理の要求を受けて処理対象のデータが前記キャッシュメモリに存在するかどうかを判定し、キャッシュヒット・ミス判定結果とそのブロック内読出位置情報とを出力するとともに、処理対象のデータが前記キャッシュメモリに存在しないと判定した場合には、前記上位メモリ制御部が上位メモリから処理対象のデータを読み出すための読出コマンドを、前記上位メモリ制御部に出力するキャッシュヒット・ミス判定部と、前記キャッシュヒット・ミス判定結果と前記ブロック内読出位置情報とを先入れ先出しで格納するＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）記憶部と、前記ＦＩＦＯ記憶部から前記キャッシュヒット・ミス判定結果および前記ブロック内読出位置情報を読み出して前記キャッシュメモリから処理対象のデータを読み出し、または、前記上位メモリ制御部から出力される処理対象のデータを前記キャッシュメモリへ書き込むとともに、処理対象のデータを出力するキャッシュメモリ読出し書込み部と、を含み、前記キャッシュヒット・ミス判定部は、キャッシュミスが発生した場合に、前記上位メモリ制御部からのレスポンスに先行して前記読出コマンドを生成する、ことを特徴とするデータ処理装置が提供される。
【発明の効果】
【０００６】
本発明によれば、データ処理のスループットが高いデータ処理装置が提供される。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の実施の形態のいくつかについて図面を参照しながら説明する。以下の各図では同一の部分は同一の参照番号を付し、その重複説明は適宜省略する。
【０００８】
（１）第１の実施の形態
図１は、本発明の第１の実施の形態によるデータ処理装置の概略構成を示すブロック図である。本実施形態の特徴点の一つは、ヒット・ミス判定部２０とキャッシュメモリ読出し書込み部４０との間に設けられてヒット・ミス判定部２０の判定結果を格納するＦＩＦＯメモリ３０をキャッシュメモリ制御部１が含み、これにより、キャッシュミス時に、メインメモリ等の上位メモリからのレスポンス待ちに依存することなく後続する処理を継続して実行できるようにした点にある。以下、より詳細に説明する。
【０００９】
本実施形態のデータ処理装置は、キャッシュメモリＣＭと、キャッシュ利用データ処理部１００と、上位メモリコントローラ１２０と、キャッシュメモリ制御部１と、を備える。キャッシュメモリ制御部１は、キャッシュメモリＣＭに接続される他、コマンド・データバスを介してキャッシュ利用データ処理部１００に接続され、さらに、メモリバスを介して上位メモリコントローラ１２０に接続される。本実施形態において、キャッシュ利用データ処理部１００は例えばデータ処理部に対応し、上位メモリコントローラ１２０は例えば上位メモリ制御部に対応する。
【００１０】
キャッシュメモリ制御部１は、ヒット・ミス判定部２０とＦＩＦＯメモリ３０とキャッシュメモリ読出し書込み部４０とを有する。ヒット・ミス判定部２０は、キャッシュメモリへのアクセスコマンドが入力され、要求されたデータがキャッシュメモリＣＭ内に存在するかどうかを判定する。本実施形態において、キャッシュメモリＣＭへのアクセスコマンドは、ユーザの要求に応じてキャッシュ利用データ処理部１００により生成され、コマンド・データバスを介してヒット・ミス判定部２０に入力される。ＦＩＦＯメモリ３０は、ヒット・ミス判定部２０によるヒット・ミス判定結果をＦＩＦＯにて格納する。キャッシュメモリ読出し書込み部４０は、ＦＩＦＯメモリ３０からヒット・ミス判定結果を読み出し、キャッシュヒットの場合はキャッシュメモリＣＭへの読出し書込みを実行するとともに、読み出されたデータをキャッシュ利用データ処理部１００へ出力する。キャッシュミスの場合は、ヒット・ミス判定部２０が、メインメモリまたはより上位のキャッシュメモリからデータを読み出すためのリードコマンドを生成してメモリバスへ出力する。キャッシュミス時のリードコマンドは、メモリバスを介して上位メモリコントローラ１２０で読み出され、上位レベルキャッシュメモリまたはメインメモリ１４０から該当するデータが読み出される。読み出されたキャッシュミス時リードデータは、上位メモリコントローラ１２０、メモリバス、キャッシュメモリ読出し書込み部４０およびコマンド・データバスを介してキャッシュ利用データ処理部１００へ出力される。
【００１１】
図２は、ＦＩＦＯメモリ３０に格納される情報の説明図である。先頭位置３１にはキャッシュメモリへのヒット・ミスの判定結果が格納され、引き続く格納位置３１，３３，３５，３７および３９にはそれぞれｗａｙ、キャッシュブロック位置ｉｎｄｅｘ、キャッシュブロック内の転送開始アドレスｓｔａｒｔおよびバースト転送数ｎｕｍが格納される。なお、ダイレクトマップの場合にはｗａｙの情報は無く、また、バースト転送に対応しない場合、バースト転送数ｎｕｍは含まれない。本実施形態において、キャッシュブロック位置ｉｎｄｅｘおよびキャッシュブロック内の転送開始アドレスｓｔａｒｔは、例えば、ブロック内読出位置情報に対応する。
【００１２】
ヒット・ミス判定部２０のより具体的な構成、および、キャッシュメモリ読出し書込み部４０とキャッシュメモリＣＭとの関係について図３および４を参照しながらより詳細に説明する。以下では説明の簡略化のため、ダイレクトマップの場合で、なおかつ、バースト転送に対応しない場合を取り上げる。
【００１３】
図３に示すように、ヒット・ミス判定部２０は、タグテーブルＴｇを格納するメモリと、タグ比較器２２と、比較結果処理回路２４とを有する。キャッシュメモリへのアクセスコマンドが入力されると、タグ比較器２２は、要求されたアクセスアドレスのキャッシュブロック位置ｉｎｄｅｘに対応するタグテーブルＴｇ内のタグを、要求されたアクセスアドレスのタグと比較することにより、要求されたアクセスアドレスがキャッシュメモリ内に存在するかどうかを判定する。判定結果としての比較結果信号はタグ比較器２２から比較結果処理回路２４へ出力される。比較結果処理回路２４は、比較結果信号が入力されて、ＦＩＦＯメモリ３０への書込信号を生成し、これにより、キャッシュメモリへのヒット・ミスの判定結果３１、キャッシュブロック位置ｉｎｄｅｘ３５およびキャッシュブロック内転送開始アドレスｓｔａｒｔ３７の情報がＦＩＦＯメモリ３０に先入れ先出し方式にて書き込まれる。比較結果処理回路２４は、キャッシュミスの場合、該当するデータをより上位のメモリから読み出すためのキャッシュミス時リードコマンドを生成して出力する。なお、キャッシュメモリへのアクセスコマンドがデータ書き換え（更新）の要求を含む場合は、比較結果処理回路２４は、タグ情報を更新する。
【００１４】
また、図４に示すように、キャッシュメモリ読出し書込み部４０は判定結果処理回路４２を有する。判定結果処理回路４２は、ＦＩＦＯメモリ３０から、ヒット・ミス判定結果３１、キャッシュブロック位置ｉｎｄｅｘ３５およびキャッシュブロック内転送開始アドレスｓｔａｒｔ３７の情報を読み出し、キャッシュメモリＣＭ内で該当するアドレスに格納されたデータをキャッシュメモリＣＭから読み出し、リードデータとして出力する。また、キャッシュミス時には、上位メモリコントローラ１２０（図１参照）からキャッシュミス時リードデータが判定結果処理回路４２に入力し、判定結果処理回路４２は、上記キャッシュミス時リードデータをリードデータとして出力するとともに、キャッシュメモリＣＭ内の該当するインデックスのデータを上記キャッシュミス時リードデータに書き換える（更新する）。
【００１５】
従来の技術によるデータ処理装置では、図１に示すようにヒット・ミス判定部とキャッシュメモリ読出し書込み部との間にメモリが介挿されることはなく、ヒット・ミス判定結果を直接キャッシュメモリ読出し書込み部へ出力していた。このため、キャッシュミスが発生した場合、キャッシュメモリ読出し書込み部では、上位メモリコントローラからのレスポンスが到来するまで後続するヒット・ミス判定結果を処理することができず、スループットが著しく低下するという問題があった。
【００１６】
これに対して、本実施形態のデータ処理装置によれば、ヒット・ミス判定結果をＦＩＦＯメモリ３０にて一旦格納するので、上位メモリコントローラから１２０のレスポンスを待つ必要なく、後続する処理を実行でき、例えばキャッシュミスが続いた場合は、先のキャッシュミスによるレスポンスに先行して上位レベルキャッシュメモリまたはメインメモリ１４０へのアクセスコマンドを出力することができる。これにより、データ処理のスループットを向上させることができる。
【００１７】
（２）第２の実施の形態
図５は、本発明の第２の実施の形態によるデータ処理装置の概略構成を示すブロック図である。図１との対比により明らかなように、図５に示すデータ処理装置の特徴は、ヒット・ミス判定部２０に接続されてキャッシュミス時のリードコマンドを格納するコマンドバッファ６０をキャッシュメモリ制御部３がさらに含む点にある。本実施形態のデータ処理装置のその他の構成は、図１に示すデータ処理装置と実質的に同一である。
【００１８】
このようにコマンドバッファ６０を介してキャッシュミス時リードコマンドをメモリバスに出力することにより、例えばキャッシュミスが頻発した場合に、ヒット・ミス判定部２０の動作を停止させることなく上位メモリコントローラ１２０へリードコマンドを継続的に出力することが可能になる。この点は、例えばメインメモリを複数のユーザで共有するＵＭＡ（Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  Ａｒｃｈｉｔｅｃｔｕｒｅ）の環境下でキャッシュメモリへのアクセス要求を処理する場合に特に好適である。
【００１９】
（３）第３の実施の形態
図６は、本発明の第３の実施の形態によるデータ処理装置の概略構成を示すブロック図である。図１との対比により明らかなように、図６に示すデータ処理装置の特徴は、キャッシュメモリ読出し書込み部４０に接続されてキャッシュミス時のリードデータを格納するリードデータバッファ７０をキャッシュメモリ制御部５がさらに含む点にある。本実施形態のデータ処理装置のその他の構成は、図１に示すデータ処理装置と実質的に同一である。
【００２０】
このようにリードデータバッファ７０を介してキャッシュミス時リードデータをキャッシュメモリ読出し書込み部４０に出力することにより、例えば以下の効果を得ることができる。
【００２１】
１）キャッシュヒットが続くと、ＦＩＦＯメモリ３０にキャッシュヒットの情報が連続して格納されるが、その後一転してキャッシュミスが続いた場合、上位メモリコントローラ１２０からのレスポンスが到来しても、キャッシュメモリ読出し書込み部４０がキャッシュヒットの処理に追われているため、上位メモリコントローラ１２０から出力されたリードデータの受け取りに支障が生じてその後の処理が大幅に遅れてしまうことがある。この問題は、ＵＭＡ環境下で特に顕著となり、他のユーザにおけるスループットの大幅な低下を招くことになる。そこで、本実施形態のように、上位メモリコントローラ１２０が出力するリードデータをキャッシュメモリ読出し書込み部４０に先だってリードデータバッファ７０が一旦受け取ることにより、当面のキャッシュヒット処理が終了した後に、リードデータバッファ７０に格納されたリードデータをキャッシュメモリ読出し書込み部４０が順次円滑に処理することが可能になる。
【００２２】
２）上位メモリコントローラ１２０がリードデータをキャッシュメモリ制御部５に出力してからでないと新たなリードコマンドを受け取れない仕様になっている場合に、キャッシュミスが頻発すると、上位メモリコントローラ１２０がリードコマンドを受け取ってくれないという事態が発生し、その場合はヒット・ミス判定部２０の動作が停止してしまう。そこで、本実施形態のように、上位メモリコントローラ１２０が出力するリードデータをリードデータバッファ７０が一旦受け取ることにより、ヒット・ミス判定部２０からの新たなリードコマンドを上位メモリコントローラ１２０が円滑に受け取れるようになるので、データ処理装置のスループット低下を防止することができる。
【００２３】
（４）第４の実施の形態
図７は、本発明の第４の実施の形態によるデータ処理装置の概略構成を示すブロック図である。図１との対比により明らかなように、図７に示すデータ処理装置の特徴は、キャッシュメモリ読出し書込み部４０に接続されてキャッシュメモリ読出し書込み部４０が出力するリードデータを格納する出力データバッファ８０をキャッシュメモリ制御部７がさらに含む点にある。本実施形態のデータ処理装置のその他の構成は、図１に示すデータ処理装置と実質的に同一である。
【００２４】
このようにキャッシュメモリ読出し書込み部４０から出力されるリードデータを出力データバッファ８０で一旦受け取ることにより、例えば以下の効果を得ることができる。
【００２５】
１）キャッシュヒットが連続すると、ユーザが要求したデータがキャッシュメモリ読出し書込み部４０を介してキャッシュメモリＣＭから連続してユーザに送られることになる。このとき、キャッシュ利用データ処理部１００において、大量のデータを処理できなくなることがある。
【００２６】
本実施形態によれば、ユーザは出力データバッファ８０を介してリードデータを順次に受け取ることができるので、受け取ったリードデータを順次に処理しながらキャッシュメモリへのアクセスを継続して要求することができ、キャッシュヒット・ミスの判定も継続して実行される。これにより、データ処理装置のスループット低下を防止することができる。
【００２７】
２）例えば、メモリバスの処理速度が６４ビット幅かつ２００ＭＨｚでコマンド・データバスの処理速度が３２ビット幅かつ２００ＭＨｚである場合など、メモリバスとコマンド・データバスとの間で処理速度が異なると、上位メモリコントローラ１２０を介して上位レベルキャッシュメモリまたはメインメモリ１４０からのリードデータがキャッシュメモリ読出し書込み部４０へ入力されようとしても、一つ前のリードデータのキャッシュ利用データ処理部１００への出力が完了しておらず、このためにキャッシュメモリ読出し書込み部４０において上位メモリコントローラ１２０からのリードデータを処理できなくなる場合がある。このような場合に、リードデータを一旦出力データバッファ８０に格納することにより、出力と入力との間のタイミングの相違を解消できるので、データ処理装置のスループット低下を防止することができる。
【００２８】
（５）第５の実施の形態
図８は、本発明の第５の実施の形態によるデータ処理装置の概略構成を示すブロック図である。図５に示すデータ処理装置の特徴は、図１に示す構成に加え、上述した第２乃至第４の実施の形態の特徴点であるコマンドバッファ６０、リードデータバッファ７０および出力データバッファ８０をキャッシュメモリ制御部９が全て含む点にある。これにより、上述したように、キャッシュヒットおよびキャッシュミスが偏って頻発した場合や、メモリバスとコマンド・データバスとの間で処理速度が異なる場合でも、スループットの高いデータ処理を実現することができる。
【００２９】
（６）その他
以上、本発明の実施の形態について説明したが、本発明は上記形態に限るものでは決してなく、その技術的範囲内で種々変更して実施できることは勿論である。例えば、上述した第２乃至第５の実施の形態では、図１に示すデータ処理装置の構成に加えてコマンドバッファ６０、リードデータバッファ７０および出力データバッファ８０のいずれか、または全てを備えている場合を取り上げて説明したが、本発明がこれらの形態に限定されるものでは決してなく、コマンドバッファ６０、リードデータバッファ７０および出力データバッファ８０のいずれか２つをさらに備える形態など、他の組合せも勿論採用可能である。
【図面の簡単な説明】
【００３０】
【図１】本発明の第１の実施の形態によるデータ処理装置の概略構成を示すブロック図。
【図２】図１に示すデータ処理装置のＦＩＦＯメモリに格納される情報の説明図。
【図３】図１に示すデータ処理装置のヒット・ミス判定部のより具体的な構成を示す図。
【図４】図１に示すデータ処理装置のキャッシュメモリ読出し書込み部とキャッシュメモリとの関係をより詳細に示す図。
【図５】本発明の第２の実施の形態によるデータ処理装置の概略構成を示すブロック図。
【図６】本発明の第３の実施の形態によるデータ処理装置の概略構成を示すブロック図。
【図７】本発明の第４の実施の形態によるデータ処理装置の概略構成を示すブロック図。
【図８】本発明の第５の実施の形態によるデータ処理装置の概略構成を示すブロック図。
【符号の説明】
【００３１】
１，３，５，７，９：キャッシュメモリ制御部
２０：ヒット・ミス判定部
３０：ＦＩＦＯメモリ
４０：キャッシュメモリ読出し書込み部
６０：コマンドバッファ
７０：リードデータバッファ
８０：出力データバッファ
ＣＭ：キャッシュメモリ
ｎｕｍ：バースト転送数
【図１】
2010146084.tif 000003
【図２】
2010146084.tif 000004
【図３】
2010146084.tif 000005
【図４】
2010146084.tif 000006
【図５】
2010146084.tif 000007
【図６】
2010146084.tif 000008
【図７】
2010146084.tif 000009
【図８】
2010146084.tif 000010