説明

キャッシュメモリ制御部を備えるデータ処理装置

【課題】データ処理のスループットが高いデータ処理装置を提供する。
【解決手段】処理対象のデータがキャッシュメモリCMに存在するかどうかを判定するキャッシュヒット・ミス判定部20と、キャッシュヒットの場合にキャッシュメモリCMから処理対象のデータを読み出し、キャッシュミスの場合に、上位メモリコントローラ120から出力される処理対象のデータをキャッシュメモリCMへ書き出すとともに、データ要求元へ出力するキャッシュメモリ読出し書込み部40との間に、キャッシュヒット/ミスの判定結果とブロック内読出位置情報とを先入れ先出しで格納するFIFOメモリ30を介挿する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、キャッシュメモリ制御部を備えるデータ処理装置に関する。
【背景技術】
【0002】
キャッシュメモリの利用に際し、従来から、キャッシュヒット時の読み出しのレイテンシが重視されることが多かった。
【0003】
しかしながら、キャッシュからの読み出しレイテンシよりもデータ処理のスループットが重視される環境もあり、このような環境では、キャッシュヒットとキャッシュミスが混在した場合にデータ処理のスループットが低くなってしまうという問題があった。
【特許文献1】特開平5−53909
【発明の開示】
【発明が解決しようとする課題】
【0004】
本発明の目的は、データ処理のスループットが高いデータ処理装置を提供することにある。
【課題を解決するための手段】
【0005】
本発明の一態様によれば、キャッシュメモリと、データ処理部と、上位メモリ制御部と、前記キャッシュメモリ、前記データ処理部および前記上位メモリ制御部に接続されたキャッシュメモリ制御部と、を備えるデータ処理装置において、前記キャッシュメモリ制御部は、前記データ処理部からのデータ処理の要求を受けて処理対象のデータが前記キャッシュメモリに存在するかどうかを判定し、キャッシュヒット・ミス判定結果とそのブロック内読出位置情報とを出力するとともに、処理対象のデータが前記キャッシュメモリに存在しないと判定した場合には、前記上位メモリ制御部が上位メモリから処理対象のデータを読み出すための読出コマンドを、前記上位メモリ制御部に出力するキャッシュヒット・ミス判定部と、前記キャッシュヒット・ミス判定結果と前記ブロック内読出位置情報とを先入れ先出しで格納するFIFO(First In First Out)記憶部と、前記FIFO記憶部から前記キャッシュヒット・ミス判定結果および前記ブロック内読出位置情報を読み出して前記キャッシュメモリから処理対象のデータを読み出し、または、前記上位メモリ制御部から出力される処理対象のデータを前記キャッシュメモリへ書き込むとともに、処理対象のデータを出力するキャッシュメモリ読出し書込み部と、を含み、前記キャッシュヒット・ミス判定部は、キャッシュミスが発生した場合に、前記上位メモリ制御部からのレスポンスに先行して前記読出コマンドを生成する、ことを特徴とするデータ処理装置が提供される。
【発明の効果】
【0006】
本発明によれば、データ処理のスループットが高いデータ処理装置が提供される。
【発明を実施するための最良の形態】
【0007】
以下、本発明の実施の形態のいくつかについて図面を参照しながら説明する。以下の各図では同一の部分は同一の参照番号を付し、その重複説明は適宜省略する。
【0008】
(1)第1の実施の形態
図1は、本発明の第1の実施の形態によるデータ処理装置の概略構成を示すブロック図である。本実施形態の特徴点の一つは、ヒット・ミス判定部20とキャッシュメモリ読出し書込み部40との間に設けられてヒット・ミス判定部20の判定結果を格納するFIFOメモリ30をキャッシュメモリ制御部1が含み、これにより、キャッシュミス時に、メインメモリ等の上位メモリからのレスポンス待ちに依存することなく後続する処理を継続して実行できるようにした点にある。以下、より詳細に説明する。
【0009】
本実施形態のデータ処理装置は、キャッシュメモリCMと、キャッシュ利用データ処理部100と、上位メモリコントローラ120と、キャッシュメモリ制御部1と、を備える。キャッシュメモリ制御部1は、キャッシュメモリCMに接続される他、コマンド・データバスを介してキャッシュ利用データ処理部100に接続され、さらに、メモリバスを介して上位メモリコントローラ120に接続される。本実施形態において、キャッシュ利用データ処理部100は例えばデータ処理部に対応し、上位メモリコントローラ120は例えば上位メモリ制御部に対応する。
【0010】
キャッシュメモリ制御部1は、ヒット・ミス判定部20とFIFOメモリ30とキャッシュメモリ読出し書込み部40とを有する。ヒット・ミス判定部20は、キャッシュメモリへのアクセスコマンドが入力され、要求されたデータがキャッシュメモリCM内に存在するかどうかを判定する。本実施形態において、キャッシュメモリCMへのアクセスコマンドは、ユーザの要求に応じてキャッシュ利用データ処理部100により生成され、コマンド・データバスを介してヒット・ミス判定部20に入力される。FIFOメモリ30は、ヒット・ミス判定部20によるヒット・ミス判定結果をFIFOにて格納する。キャッシュメモリ読出し書込み部40は、FIFOメモリ30からヒット・ミス判定結果を読み出し、キャッシュヒットの場合はキャッシュメモリCMへの読出し書込みを実行するとともに、読み出されたデータをキャッシュ利用データ処理部100へ出力する。キャッシュミスの場合は、ヒット・ミス判定部20が、メインメモリまたはより上位のキャッシュメモリからデータを読み出すためのリードコマンドを生成してメモリバスへ出力する。キャッシュミス時のリードコマンドは、メモリバスを介して上位メモリコントローラ120で読み出され、上位レベルキャッシュメモリまたはメインメモリ140から該当するデータが読み出される。読み出されたキャッシュミス時リードデータは、上位メモリコントローラ120、メモリバス、キャッシュメモリ読出し書込み部40およびコマンド・データバスを介してキャッシュ利用データ処理部100へ出力される。
【0011】
図2は、FIFOメモリ30に格納される情報の説明図である。先頭位置31にはキャッシュメモリへのヒット・ミスの判定結果が格納され、引き続く格納位置31,33,35,37および39にはそれぞれway、キャッシュブロック位置index、キャッシュブロック内の転送開始アドレスstartおよびバースト転送数numが格納される。なお、ダイレクトマップの場合にはwayの情報は無く、また、バースト転送に対応しない場合、バースト転送数numは含まれない。本実施形態において、キャッシュブロック位置indexおよびキャッシュブロック内の転送開始アドレスstartは、例えば、ブロック内読出位置情報に対応する。
【0012】
ヒット・ミス判定部20のより具体的な構成、および、キャッシュメモリ読出し書込み部40とキャッシュメモリCMとの関係について図3および4を参照しながらより詳細に説明する。以下では説明の簡略化のため、ダイレクトマップの場合で、なおかつ、バースト転送に対応しない場合を取り上げる。
【0013】
図3に示すように、ヒット・ミス判定部20は、タグテーブルTgを格納するメモリと、タグ比較器22と、比較結果処理回路24とを有する。キャッシュメモリへのアクセスコマンドが入力されると、タグ比較器22は、要求されたアクセスアドレスのキャッシュブロック位置indexに対応するタグテーブルTg内のタグを、要求されたアクセスアドレスのタグと比較することにより、要求されたアクセスアドレスがキャッシュメモリ内に存在するかどうかを判定する。判定結果としての比較結果信号はタグ比較器22から比較結果処理回路24へ出力される。比較結果処理回路24は、比較結果信号が入力されて、FIFOメモリ30への書込信号を生成し、これにより、キャッシュメモリへのヒット・ミスの判定結果31、キャッシュブロック位置index35およびキャッシュブロック内転送開始アドレスstart37の情報がFIFOメモリ30に先入れ先出し方式にて書き込まれる。比較結果処理回路24は、キャッシュミスの場合、該当するデータをより上位のメモリから読み出すためのキャッシュミス時リードコマンドを生成して出力する。なお、キャッシュメモリへのアクセスコマンドがデータ書き換え(更新)の要求を含む場合は、比較結果処理回路24は、タグ情報を更新する。
【0014】
また、図4に示すように、キャッシュメモリ読出し書込み部40は判定結果処理回路42を有する。判定結果処理回路42は、FIFOメモリ30から、ヒット・ミス判定結果31、キャッシュブロック位置index35およびキャッシュブロック内転送開始アドレスstart37の情報を読み出し、キャッシュメモリCM内で該当するアドレスに格納されたデータをキャッシュメモリCMから読み出し、リードデータとして出力する。また、キャッシュミス時には、上位メモリコントローラ120(図1参照)からキャッシュミス時リードデータが判定結果処理回路42に入力し、判定結果処理回路42は、上記キャッシュミス時リードデータをリードデータとして出力するとともに、キャッシュメモリCM内の該当するインデックスのデータを上記キャッシュミス時リードデータに書き換える(更新する)。
【0015】
従来の技術によるデータ処理装置では、図1に示すようにヒット・ミス判定部とキャッシュメモリ読出し書込み部との間にメモリが介挿されることはなく、ヒット・ミス判定結果を直接キャッシュメモリ読出し書込み部へ出力していた。このため、キャッシュミスが発生した場合、キャッシュメモリ読出し書込み部では、上位メモリコントローラからのレスポンスが到来するまで後続するヒット・ミス判定結果を処理することができず、スループットが著しく低下するという問題があった。
【0016】
これに対して、本実施形態のデータ処理装置によれば、ヒット・ミス判定結果をFIFOメモリ30にて一旦格納するので、上位メモリコントローラから120のレスポンスを待つ必要なく、後続する処理を実行でき、例えばキャッシュミスが続いた場合は、先のキャッシュミスによるレスポンスに先行して上位レベルキャッシュメモリまたはメインメモリ140へのアクセスコマンドを出力することができる。これにより、データ処理のスループットを向上させることができる。
【0017】
(2)第2の実施の形態
図5は、本発明の第2の実施の形態によるデータ処理装置の概略構成を示すブロック図である。図1との対比により明らかなように、図5に示すデータ処理装置の特徴は、ヒット・ミス判定部20に接続されてキャッシュミス時のリードコマンドを格納するコマンドバッファ60をキャッシュメモリ制御部3がさらに含む点にある。本実施形態のデータ処理装置のその他の構成は、図1に示すデータ処理装置と実質的に同一である。
【0018】
このようにコマンドバッファ60を介してキャッシュミス時リードコマンドをメモリバスに出力することにより、例えばキャッシュミスが頻発した場合に、ヒット・ミス判定部20の動作を停止させることなく上位メモリコントローラ120へリードコマンドを継続的に出力することが可能になる。この点は、例えばメインメモリを複数のユーザで共有するUMA(Unified Memory Architecture)の環境下でキャッシュメモリへのアクセス要求を処理する場合に特に好適である。
【0019】
(3)第3の実施の形態
図6は、本発明の第3の実施の形態によるデータ処理装置の概略構成を示すブロック図である。図1との対比により明らかなように、図6に示すデータ処理装置の特徴は、キャッシュメモリ読出し書込み部40に接続されてキャッシュミス時のリードデータを格納するリードデータバッファ70をキャッシュメモリ制御部5がさらに含む点にある。本実施形態のデータ処理装置のその他の構成は、図1に示すデータ処理装置と実質的に同一である。
【0020】
このようにリードデータバッファ70を介してキャッシュミス時リードデータをキャッシュメモリ読出し書込み部40に出力することにより、例えば以下の効果を得ることができる。
【0021】
1)キャッシュヒットが続くと、FIFOメモリ30にキャッシュヒットの情報が連続して格納されるが、その後一転してキャッシュミスが続いた場合、上位メモリコントローラ120からのレスポンスが到来しても、キャッシュメモリ読出し書込み部40がキャッシュヒットの処理に追われているため、上位メモリコントローラ120から出力されたリードデータの受け取りに支障が生じてその後の処理が大幅に遅れてしまうことがある。この問題は、UMA環境下で特に顕著となり、他のユーザにおけるスループットの大幅な低下を招くことになる。そこで、本実施形態のように、上位メモリコントローラ120が出力するリードデータをキャッシュメモリ読出し書込み部40に先だってリードデータバッファ70が一旦受け取ることにより、当面のキャッシュヒット処理が終了した後に、リードデータバッファ70に格納されたリードデータをキャッシュメモリ読出し書込み部40が順次円滑に処理することが可能になる。
【0022】
2)上位メモリコントローラ120がリードデータをキャッシュメモリ制御部5に出力してからでないと新たなリードコマンドを受け取れない仕様になっている場合に、キャッシュミスが頻発すると、上位メモリコントローラ120がリードコマンドを受け取ってくれないという事態が発生し、その場合はヒット・ミス判定部20の動作が停止してしまう。そこで、本実施形態のように、上位メモリコントローラ120が出力するリードデータをリードデータバッファ70が一旦受け取ることにより、ヒット・ミス判定部20からの新たなリードコマンドを上位メモリコントローラ120が円滑に受け取れるようになるので、データ処理装置のスループット低下を防止することができる。
【0023】
(4)第4の実施の形態
図7は、本発明の第4の実施の形態によるデータ処理装置の概略構成を示すブロック図である。図1との対比により明らかなように、図7に示すデータ処理装置の特徴は、キャッシュメモリ読出し書込み部40に接続されてキャッシュメモリ読出し書込み部40が出力するリードデータを格納する出力データバッファ80をキャッシュメモリ制御部7がさらに含む点にある。本実施形態のデータ処理装置のその他の構成は、図1に示すデータ処理装置と実質的に同一である。
【0024】
このようにキャッシュメモリ読出し書込み部40から出力されるリードデータを出力データバッファ80で一旦受け取ることにより、例えば以下の効果を得ることができる。
【0025】
1)キャッシュヒットが連続すると、ユーザが要求したデータがキャッシュメモリ読出し書込み部40を介してキャッシュメモリCMから連続してユーザに送られることになる。このとき、キャッシュ利用データ処理部100において、大量のデータを処理できなくなることがある。
【0026】
本実施形態によれば、ユーザは出力データバッファ80を介してリードデータを順次に受け取ることができるので、受け取ったリードデータを順次に処理しながらキャッシュメモリへのアクセスを継続して要求することができ、キャッシュヒット・ミスの判定も継続して実行される。これにより、データ処理装置のスループット低下を防止することができる。
【0027】
2)例えば、メモリバスの処理速度が64ビット幅かつ200MHzでコマンド・データバスの処理速度が32ビット幅かつ200MHzである場合など、メモリバスとコマンド・データバスとの間で処理速度が異なると、上位メモリコントローラ120を介して上位レベルキャッシュメモリまたはメインメモリ140からのリードデータがキャッシュメモリ読出し書込み部40へ入力されようとしても、一つ前のリードデータのキャッシュ利用データ処理部100への出力が完了しておらず、このためにキャッシュメモリ読出し書込み部40において上位メモリコントローラ120からのリードデータを処理できなくなる場合がある。このような場合に、リードデータを一旦出力データバッファ80に格納することにより、出力と入力との間のタイミングの相違を解消できるので、データ処理装置のスループット低下を防止することができる。
【0028】
(5)第5の実施の形態
図8は、本発明の第5の実施の形態によるデータ処理装置の概略構成を示すブロック図である。図5に示すデータ処理装置の特徴は、図1に示す構成に加え、上述した第2乃至第4の実施の形態の特徴点であるコマンドバッファ60、リードデータバッファ70および出力データバッファ80をキャッシュメモリ制御部9が全て含む点にある。これにより、上述したように、キャッシュヒットおよびキャッシュミスが偏って頻発した場合や、メモリバスとコマンド・データバスとの間で処理速度が異なる場合でも、スループットの高いデータ処理を実現することができる。
【0029】
(6)その他
以上、本発明の実施の形態について説明したが、本発明は上記形態に限るものでは決してなく、その技術的範囲内で種々変更して実施できることは勿論である。例えば、上述した第2乃至第5の実施の形態では、図1に示すデータ処理装置の構成に加えてコマンドバッファ60、リードデータバッファ70および出力データバッファ80のいずれか、または全てを備えている場合を取り上げて説明したが、本発明がこれらの形態に限定されるものでは決してなく、コマンドバッファ60、リードデータバッファ70および出力データバッファ80のいずれか2つをさらに備える形態など、他の組合せも勿論採用可能である。
【図面の簡単な説明】
【0030】
【図1】本発明の第1の実施の形態によるデータ処理装置の概略構成を示すブロック図。
【図2】図1に示すデータ処理装置のFIFOメモリに格納される情報の説明図。
【図3】図1に示すデータ処理装置のヒット・ミス判定部のより具体的な構成を示す図。
【図4】図1に示すデータ処理装置のキャッシュメモリ読出し書込み部とキャッシュメモリとの関係をより詳細に示す図。
【図5】本発明の第2の実施の形態によるデータ処理装置の概略構成を示すブロック図。
【図6】本発明の第3の実施の形態によるデータ処理装置の概略構成を示すブロック図。
【図7】本発明の第4の実施の形態によるデータ処理装置の概略構成を示すブロック図。
【図8】本発明の第5の実施の形態によるデータ処理装置の概略構成を示すブロック図。
【符号の説明】
【0031】
1,3,5,7,9:キャッシュメモリ制御部
20:ヒット・ミス判定部
30:FIFOメモリ
40:キャッシュメモリ読出し書込み部
60:コマンドバッファ
70:リードデータバッファ
80:出力データバッファ
CM:キャッシュメモリ
num:バースト転送数

【特許請求の範囲】
【請求項1】
キャッシュメモリと、データ処理部と、上位メモリ制御部と、前記キャッシュメモリ、前記データ処理部および前記上位メモリ制御部に接続されたキャッシュメモリ制御部と、を備えるデータ処理装置において、
前記キャッシュメモリ制御部は、
前記データ処理部からのデータ処理の要求を受けて処理対象のデータが前記キャッシュメモリに存在するかどうかを判定し、キャッシュヒット・ミス判定結果とそのブロック内読出位置情報とを出力するとともに、処理対象のデータが前記キャッシュメモリに存在しないと判定した場合には、前記上位メモリ制御部が上位メモリから処理対象のデータを読み出すための読出コマンドを、前記上位メモリ制御部に出力するキャッシュヒット・ミス判定部と、
前記キャッシュヒット・ミス判定結果と前記ブロック内読出位置情報とを先入れ先出しで格納するFIFO(First In First Out)記憶部と、
前記FIFO記憶部から前記キャッシュヒット・ミス判定結果および前記ブロック内読出位置情報を読み出して前記キャッシュメモリから処理対象のデータを読み出し、または、前記上位メモリ制御部から出力される処理対象のデータを前記キャッシュメモリへ書き込むとともに、処理対象のデータを出力するキャッシュメモリ読出し書込み部と、
を含み、
前記キャッシュヒット・ミス判定部は、キャッシュミスが発生した場合に、前記上位メモリ制御部からのレスポンスに先行して前記読出コマンドを生成する、ことを特徴とするデータ処理装置。
【請求項2】
前記FIFO記憶部は、バースト転送のための読出データ数をさらに格納することを特徴とする請求項1に記載のデータ処理装置。
【請求項3】
前記キャッシュヒット・ミス判定部から出力される前記読出コマンドを格納する第1のバッファをさらに備えることを特徴とする請求項1または2に記載のデータ処理装置。
【請求項4】
前記上位メモリから読み出され前記上位メモリ制御部から出力された処理対象のデータを格納する第2のバッファをさらに備えることを特徴とする請求項1乃至3のいずれかに記載のデータ処理装置。
【請求項5】
前記キャッシュメモリ読出し書込み部に接続され、前記キャッシュメモリ読出し書込み部から出力される処理対象データを格納する第3のバッファをさらに備えることを特徴とする請求項1乃至4のいずれかに記載のデータ処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate