JP4948141B2 - バス制御装置 - Google Patents

バス制御装置 Download PDF

Info

Publication number
JP4948141B2
JP4948141B2 JP2006327278A JP2006327278A JP4948141B2 JP 4948141 B2 JP4948141 B2 JP 4948141B2 JP 2006327278 A JP2006327278 A JP 2006327278A JP 2006327278 A JP2006327278 A JP 2006327278A JP 4948141 B2 JP4948141 B2 JP 4948141B2
Authority
JP
Japan
Prior art keywords
snoop
access
request
arbitration
master
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006327278A
Other languages
English (en)
Other versions
JP2008140258A (ja
Inventor
由香里 高田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2006327278A priority Critical patent/JP4948141B2/ja
Publication of JP2008140258A publication Critical patent/JP2008140258A/ja
Application granted granted Critical
Publication of JP4948141B2 publication Critical patent/JP4948141B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、マルチプロセッサシステムにおいてバスを制御する技術に関し、特に、キャッシュのコヒーレンシを保つためのスヌープ処理によるCPU(Central Processing Unit)の性能低下を防止したバス制御装置に関する。
近年、プロセッサによる処理性能の向上を図るために、マルチプロセッサシステムの開発が盛んに行なわれている。このようなマルチプロセッサシステムにおいては、キャッシュのコヒーレンシを保つためにスヌープ処理が行なわれる。
一般に、スヌープ処理が行なわれると、この処理が終了するまで次の要求が受付けられないため、プロセッサがつながるバスの性能を低下させる。また、スヌープを処理するキャッシュは、その間CPUの要求を処理することができず、CPUの処理性能が低下することになる。
これを防止するためにタグ部を2重に持ち、スヌープ処理とCPUからの要求に対応する処理とを同時に行なうようにすることも可能であるが、回路規模が大きくなるといった問題点がある。これに関連する技術として、下記の特許文献1および2に開示された発明がある。
特許文献1に開示されたキャッシュ制御方式において、アクセス要求側のプロセッサは、キャッシュメモリにデータがヒットせず、スヌープ動作の必要がないときは、アドレスバス上のアドレスの最上位ビットにその旨を指定してラッチおよびバッファを介して共有バスに要求アドレスを出力する。アクセス検出側のプロセッサは、共有バスのアドレスバスの最上位ビットをスヌープ制御回路により検出し、スヌープ動作の必要がないことを検出したときはスヌープ動作を行なわない。一方、スヌープ動作の必要があることを検出したときはラッチおよびマルチプレクサを介してキャッシュ制御回路によりキャッシュメモリのヒット判定を行ない、キャッシュヒット時はヒットしたデータを主記憶装置へライトバックする。
特許文献2に開示されたキャッシュ・メモリ制御装置において、ブリッジはアクセスされようとしているアドレスのデータに対してキャッシュ一致化処理が必要であるか否かを単独で判定し、キャッシュ一致化処理が必要な場合のみ該当するプロセッサに対して指示をする。また、各プロセッサの内部のキャッシュ・メモリに共有メモリ上のどのアドレスがどのような状態で保持されているかを示すアドレスおよびタグ情報を、プロセッサ・キャッシュ・タグ・テーブルにキャッシュ容量分だけキャッシュ・ライン単位で保持する。
特開平6−124235号公報 特開2001−43204号公報
上述した特許文献1および2に開示された発明は、スヌープ処理が必要か否かを判定し、スヌープ処理の必要がある場合にのみスヌープ処理を行なうものである。しかしながら、スヌープ処理が行なわれる場合には次の要求が受付けられず、さらなる処理性能の向上を図ることはできない。
本発明は、上記問題点を解決するためになされたものであり、その目的は、マルチプロセッサシステムにおけるバスの使用効率を向上させることが可能なバス制御装置を提供することである。
本発明の一実施例によれば、マルチプロセッサシステムにおいて複数のプロセッサからスレーブへのアクセス要求を制御するバス制御装置が提供される。命令フェッチ調停部は、複数のプロセッサからのアクセス要求のうちスヌープの不要なアクセス要求を調停する。オペランドアクセス調停部は、複数のプロセッサからのアクセス要求のうちスヌープの必要なアクセス要求を調停する。スヌープ制御部は、オペランドアクセス調停部によって調停されたアクセス要求に対応したスヌープ要求を複数のプロセッサに対して発行する。命令アクセス部は、複数のプロセッサによるスヌープ処理と並行して、スレーブに対して命令フェッチ調停部によって調停されたアクセスを行なう。また、オペランドアクセス部は、スレーブに対してオペランドアクセス調停部によって調停されたアクセスを行なう。
この実施例によれば、複数のプロセッサによるスヌープ処理と並行して、スレーブに対して命令フェッチ調停部によって調停されたアクセスを行なうことができ、マルチプロセッサシステムにおけるバスの使用効率を向上させることが可能になるという効果がある。
(第1の実施の形態)
図1は、本発明の第1の実施の形態におけるバス制御部を含んだマルチプロセッサシステムの構成例を示す図である。このマルチプロセッサシステムは、複数のマスタ1〜N(1−1〜1−N)と、バス制御部2と、共有メモリなどのスレーブ3とを含む。
また、マスタ1〜N(1−1〜1−N)のそれぞれは、CPU11と、命令コードを保持するIキャッシュ12と、オペランドを保持するDキャッシュ13とを含む。
バス制御部2は、複数のマスタ1〜N(1−1〜1−N)からの要求1〜Nを受け、どの要求を受付けるかの調停を行ない、バス4を介してスレーブ3にアクセスする。このとき、バス制御部2は、必要であればスヌープ処理を行なう。
本発明のシステムにおいては、Iキャッシュ12に保持される命令は、オペランドとのコヒーレンシを保つ必要がないアーキテクチャであり、スヌープ処理によってコヒーレンシを保つ必要があるのは各マスタのDキャッシュ間のみである。各マスタからの命令フェッチの要求とオペランドアクセスの要求とが同じ要求信号で出力されるが、それぞれに対して別の制御が行なわれる。
バス制御部2は、命令フェッチ調停部21と、命令アクセス部22と、オペランドアクセス調停部23と、スヌープ制御部24と、オペランドアクセス部25とを含む。
命令フェッチ調停部21は、マスタ1〜N(1−1〜1−N)からの要求1〜Nを受け、命令フェッチの調停のみを行ない、調停された要求信号を命令アクセス部22に出力する。この調停方法としては、ラウンドロビン方式、ランダム方式などが用いられる。
命令アクセス部22は、命令フェッチ調停部21から調停された要求信号を受けると、オペランドアクセス部25によるオペランドアクセスと重複しないようにバス制御を行ない、バス4を介してスレーブ3に対するリードまたはライトを行なう。
オペランドアクセス調停部23は、マスタ1〜N(1−1〜1−N)からの要求1〜Nを受け、オペランドアクセスの調停のみを行ない、調停された要求信号をスヌープ制御部24に出力する。この調停方法としては、命令フェッチ調停部21同様、ラウンドロビン方式、ランダム方式などが用いられる。
スヌープ制御部24は、オペランドアクセス調停部23から調停された要求信号を受けると、要求を受付けたマスタ(以下、要求を出したマスタとも呼ぶ。)以外の全てのマスタに対してスヌープ処理要求を出力する。
スヌープ処理要求を受けたマスタは、自身のDキャッシュ13にスヌープ要求で示されるアドレスと一致するラインがあるか否かをチェックする。そして、自身のDキャッシュ13に一致するラインがなければ、要求を出したマスタに対して「なし」を示す情報を返送する。要求を出したマスタは他のマスタ全てから「なし」を示す情報を受けると、Dキャッシュ13のそのラインをExclusiveとして登録する。すなわち、このラインは要求を出したマスタのDキャッシュ13のみが持っている状態である。
自身のDキャッシュ13に一致するラインがありCleanな状態(このラインは更新されておらず、メインメモリの内容と同じ値を保持している状態)であれば、要求を出したマスタに対して「HIT」を示す情報を返送する。要求を出したマスタは「HIT」を示す情報を受けると、Dキャッシュ13のそのラインをSharedとして登録する。すなわち、このラインは複数のマスタのDキャッシュ13が持っている状態である。
自身のDキャッシュ13に一致するラインがありModifiedな状態(このラインは更新されており、メインメモリの内容と異なる値を保持している状態)であれば、「Modified」を示す情報を返送すると同時に、メインメモリにそのデータを書き戻す。データの書き戻しと同時にDキャッシュ13のそのラインをインバリデートする場合と、Cleanにするだけで有効状態としてDキャッシュ13に残す場合とがある。これらのいずれになるかは、スヌープ要求の要求状態、キャッシュのモードなどによって決まる。
そのラインをインバリデートする場合には、要求を出したマスタのDキャッシュ13のみがこのラインを持つことになり、要求を出したマスタはこのラインをExclusiveで登録する。これは、ModifiedなラインはそのマスタのDキャッシュのみが持つことができるため、必ずExclusiveで保持されているからである。
一方、Cleanにするだけの場合には、少なくとも2つのマスタのDキャッシュ13がこのラインを持っていることになり、Dキャッシュ13にSharedとして登録される。スヌープ制御部24は、スヌープ処理が終了すると調停された要求信号をオペランドアクセス部25に出力する。
オペランドアクセス部25は、スヌープ制御部24から調停された要求信号を受けると、命令アクセス部22による命令アクセスと重複しないようにバス制御を行ない、バス4を介してスレーブ3に対するリードまたはライトを行なう。
図2は、本発明の第1の実施の形態におけるマルチプロセッサシステムの処理を説明するためのタイミングチャートである。図2においては、オペランドアクセスのバス要求(D)の調停と、命令フェッチのバス要求(I)の調停と、スレーブアクセスとのタイミングを示している。オペランドアクセスの要求を調停した結果を調停D(D1,D2,...)で示し、命令フェッチの要求を調停した結果を調停I(I1,I2,...)で示す。スレーブアクセスは共有バス構成または命令フェッチとオペランドアクセスとが同じスレーブにアクセスする場合に、実際にスレーブにアクセスする要求を示す。
T2において、マスタからバス要求が発行され、オペランドアクセス調停部23によりオペランドアクセスの要求の調停と、命令フェッチ調停部21による命令フェッチの要求の調停とが並列に行なわれる。オペランドアクセス調停部23による調停によって複数のマスタの要求するオペランドアクセスの中からD1のオペランドアクセスが受付けられ、命令フェッチ調停部21による調停によってI1の命令フェッチが受付けられる。
T3において、スヌープ制御部24によってD1のスヌープ要求が発行されてスヌープ処理が行なわれる。このスヌープ処理は1サイクルで終了する。このとき、オペランドアクセス部25によるスレーブアクセスが行なわれないため、命令アクセス部22によるI1のスレーブアクセスが直ちに行なわれる。また、調停によってD2のオペランドアクセスが受付けられ、I2の命令フェッチが受付けられる。
T4において、D1のスレーブアクセスとI2のスレーブアクセスとが発生するが、オペランドアクセス処理が優先されてD1のスレーブアクセスが行なわれる。このとき、I2のスレーブアクセスは直ちに行なわれず、1サイクル待たされる。また、スヌープ制御部24によってD2のスヌープ要求が発行されてスヌープ処理が行なわれる。このスヌープ処理は、何らかの要因によって3サイクルに延びている。
T5において、D2のスヌープ処理中の間に命令アクセス部22によるI2のスレーブアクセスが行なわれる。このとき、命令フェッチ調停部21により命令フェッチの要求の調停が行なわれ、I3の命令フェッチが受付けられる。
T6において、T5で受付けたI3のスレーブアクセスが命令アクセス部22により直ちに行なわれる。また、調停によってD3のオペランドアクセスが受付けられ、I4の命令フェッチが受付けられる。
T7において、D2のスレーブアクセスとI4のスレーブアクセスとが発生するが、オペランドアクセス処理が優先されてD2のスレーブアクセスが行なわれる。このとき、スヌープ制御部24によってD3のスヌープ要求が発行されてスヌープ処理が行なわれる。このスヌープ処理は1サイクルで終了する。
T8において、D3のスレーブアクセスとI4のスレーブアクセスとが発生するが、オペランドアクセス処理が優先されてD3のスレーブアクセスが行なわれる。
T9において、待たされていたI4のスレーブアクセスが命令アクセス部22によって行なわれる。
クロスババスなどによってオペランドアクセスおよび命令フェッチに対応するスレーブアクセスの両方が受付けられる場合には、スレーブアクセスが待たされずに次の調停を行なうようにすることも可能である。
また、スヌープ処理が受付けられずに待たされている場合には、その間に次の調停を行なってその要求をバッファリングするようにしてもよい。
以上説明したように、本実施の形態におけるバス制御装置によれば、命令フェッチの要求の調停と、オペランドアクセスの要求の調停とを別々に行ない、オペランドアクセスの要求に対してのみスヌープ処理を行なうようにしたので、スヌープ処理の最中でも命令フェッチに対応するスレーブアクセスを並列に行なうことができ、バスの使用効率を向上させることが可能となった。
(第2の実施の形態)
図3は、本発明の第2の実施の形態におけるバス制御部を含んだマルチプロセッサシステムの構成例を示す図である。このマルチプロセッサシステムは、図1に示す第1の実施の形態におけるマルチプロセッサシステムと比較して、命令フェッチの要求とオペランドアクセスの要求とを別々の要求信号(要求1−I〜N−I、要求1−D〜N−D)としている点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰返さない。
命令フェッチ調停部21は、マスタ1〜N(1−1〜1−N)からの要求1−I〜N−Iを受け、命令フェッチの調停のみを行ない、調停された要求信号を命令アクセス部22に出力する。命令フェッチ調停部21による調停後の処理は、第1の実施の形態における調停後の処理と同様である。
オペランドアクセス調停部23は、マスタ1〜N(1−1〜1−N)からの要求1−D〜N−Dを受け、オペランドアクセスの調停のみを行ない、調停された要求信号をスヌープ制御部24に出力する。オペランドアクセス調停部23による調停後の処理は、第1の実施の形態における調停後の処理と同様である。
命令フェッチの要求の調停と、オペランドアクセスの要求の調停とが並列で行なわれるため、少ないマスタのみが動作する場合でも処理性能を向上させることができる。たとえば、1つのマスタのみが動作している場合、オペランドのスヌープ処理が待たされている間でも次の命令フェッチに対応するスレーブアクセスが行なえるようになる。
以上説明したように、本実施の形態におけるバス制御装置によれば、命令フェッチの要求とオペランドアクセスの要求とを別々の要求信号としたので、第1の実施の形態におけるバス制御装置と比較して、バスの使用効率をさらに向上させることが可能となった。
(第3の実施の形態)
図4は、本発明の第3の実施の形態におけるバス制御部を含んだマルチプロセッサシステムの構成例を示す図である。このマルチプロセッサシステムは、図1に示す第1の実施の形態におけるマルチプロセッサシステムと比較して、命令フェッチ調停部およびオペランドアクセス調停部の機能が異なる。したがって、重複する構成および機能の詳細な説明は繰返さない。
本実施の形態においては、スヌープ処理が必要なアクセス(キャッシャブルなオペランドアクセス)と、スヌープ処理が不要なアクセス(ノンキャッシャブルなオペランドアクセス、命令フェッチ)とを別々に調停するものである。
キャッシャブルなオペランドアクセスによって得られたデータは、マスタ内のDキャッシュ13に登録されるため、他のマスタ内のDキャッシュ13に登録されたデータと共有される場合がある。同一のラインが複数のマスタ内のDキャッシュ13にある場合には、いずれかのマスタがそのラインを更新するときに他のマスタが持つ同一ラインを書き換えるか、クリアしなければならないためスヌープ処理が必要になる。
一方、ノンキャッシャブルなオペランドアクセスによって得られたデータは、マスタ内のDキャッシュに登録されないので、スヌープ処理を行なう必要はない。
命令フェッチ調停部31は、マスタ1〜N(1−1〜1−N)からの命令フェッチの要求1−I〜N−Iを受け、命令フェッチの調停を行なうと共に、マスタ1〜N(1−1〜1−N)からのオペランドアクセスの要求1−D〜N−Dがノンキャッシャブルなオペランドアクセスを示すものであれば、その調停も行なう。命令フェッチ調停部31は、命令フェッチおよびノンキャッシャブルなオペランドアクセスの調停を行ない、調停された要求信号を命令アクセス部22に出力する。
オペランドアクセス調停部32は、マスタ1〜N(1−1〜1−N)からのオペランドアクセスの要求1−D〜N−Dがキャッシャブルなオペランドアクセスを示すものであれば、その調停を行なう。調停された要求信号はオペランドアクセス部25に出力される。
以上説明したように、本実施の形態におけるバス制御装置によれば、オペランドアクセス調停部32がキャッシャブルなオペランドアクセスのみを調停するようにしたので、スヌープ処理の必要な要求をさらに減らすことができ、第1および第2の実施の形態におけるバス制御装置と比較して、さらにマスタ内のCPUの処理性能およびバスの使用効率を向上させることが可能となった。
(第4の実施の形態)
図5は、本発明の第4の実施の形態におけるバス制御部の内部構成を示すブロック図である。なお、図5においては、命令フェッチ調停部21または31と、命令アクセス部22とを省略している。スヌープ制御部24以外の構成および機能は、第1〜第3の実施の形態において説明したものと同様である。
スヌープ制御部24は、どのマスタに対してスヌープ処理を行なう必要があるかを管理するスヌープ選択テーブル51と、スヌープ選択テーブル51を参照してスヌープ要求の要否を判定するスヌープ要求生成部52とを含む。
図6は、スヌープ選択テーブル51に格納される情報の一例を示す図である。領域情報はアドレスの範囲を指定する情報であり、領域0〜mが登録されている。たとえば、アドレスが32ビットの場合、領域を4kバイト単位とすると、領域情報として20ビットの上位アドレスが格納される。
マスタ選択情報は、各マスタのDキャッシュ13がその領域のデータを保持しているか否かを示す情報である。たとえば、領域0においては、マスタ0、マスタ1およびマスタnがデータを共有していることを示している。
有効ビットは、その領域の情報が有効か否かを示す情報である。有効ビットが“0”の場合にはその領域の情報が無効であることを示し、“1”の場合にはその領域の情報が有効であることを示す。
なお、スヌープ選択テーブル51の設定は、ソフトウェアによって行なわれてもよいし、ハードウェアによって行なわれてもよい。
スヌープ要求生成部52は、オペランドアクセス調停部23または32から調停された要求を受けると、その要求に含まれるアドレスの上位20ビットと一致する領域のマスタ選択情報を取得する。そして、スヌープ要求生成部52は、マスタ選択情報が“1”になっているマスタに対してのみスヌープ要求を発行する。
また、20ビットのマスク値を持ち、アドレスの上位20ビットとマスク値との論理積(AND)を計算し、その値と一致する領域のマスタ選択情報を取得するようにしても良い。この場合、4kバイト以上の範囲を指定することができる。
また、スヌープ選択テーブル51に全ての領域に対応するマスタ選択情報を格納すると回路規模が大きくなるため、必要な領域のみをスヌープ選択テーブル51に置いてもよい。このとき、スヌープ選択テーブル51に格納されていない領域が指定された場合には、スヌープ要求生成部52が全てのマスタに対してスヌープ要求を発行するようにする。
なお、有効ビットが“0”となっている領域が指定された場合には、その領域のマスタ選択情報を参照せずに、全てのマスタに対してスヌープ要求を発行する。
以上説明したように、本実施の形態におけるバス制御装置によれば、スヌープ要求生成部52がスヌープ選択テーブル51を参照して、スヌープ処理が必要なマスタに対してのみスヌープ要求を発行するようにした。したがって、全てのマスタに対してスヌープ要求を発行する場合と比較して、スヌープ処理によって待たされる期間が延びる可能性を少なくすることができ、バスの使用効率を向上させることが可能となった。
また、スヌープ要求を受けないマスタは、CPUのキャッシュアクセスを阻害する要因がなくなるため、CPUの処理性能を向上させることが可能となった。
(第5の実施の形態)
図7は、本発明の第5の実施の形態におけるスヌープ制御部24のスヌープ選択テーブル51の設定処理を説明するための図である。なお、本実施の形態におけるマルチプロセッサシステムの構成は、第4の実施の形態におけるマルチプロセッサシステムの構成と同様である。
図7は、プログラムの実行によってスヌープ選択テーブル51の領域0の内容が設定されるところを示している。まず、プログラムによってスヌープ選択テーブル51で管理したい領域0が設定される場合、領域情報に領域0を示す情報が格納され、有効ビットに“1”がセットされる。このときマスタ選択情報は全て0であり、どのマスタもこの領域0にアクセスしていない(キャッシュに登録していない)ことを示す。
次に、マスタ0がこの領域0に対してオペランドアクセスを行なうと、領域0に対応するマスタ選択情報のマスタ0に対応するビットに“1”がセットされる。これによって、別のマスタがこの領域にオペランドアクセスを行なってスヌープ要求が発行されるときに、マスタ0に対してのみスヌープ要求を発行すればよいことが分かる。
次に、マスタ2がこの領域0に対してオペランドアクセスを行なうと、マスタ0に対してスヌープ要求が発行されると共に、領域0に対応するマスタ選択情報のマスタ2に対応するビットに“1”がセットされる。これによって、別のマスタがこの領域にオペランドアクセスを行なってスヌープ要求が発行されるときに、マスタ0および2に対してのみスヌープ要求を発行すればよいことが分かる。
次に、マスタNがこの領域0に対してオペランドアクセスを行なうと、マスタ0および2に対してスヌープ要求が発行されると共に、領域0に対応するマスタ選択情報のマスタNに対応するビットに“1”がセットされる。
最後に、この領域に対してオペランドをアクセスすることがなくなったときに、プログラムによって領域0の情報がクリアされ、有効ビットに“0”がセットされる。
図8は、本発明の第5の実施の形態におけるマルチプロセッサシステムの処理を説明するためのタイミングチャートである。図8において、マスタ0のCPU11がDキャッシュ13に対して要求するアクセスをC0−1,C0−2,...で示し、マスタ1のCPU11がDキャッシュ13に対して要求するアクセスをC1−1,C1−2,...で示す。
T2において、マスタからバス要求が発行され、オペランドアクセス調停部23によりオペランドアクセスの要求の調停が行なわれる。調停によってD1のオペランドアクセスが受付けられる。D1はマスタ0、マスタ1以外の要求とする。このとき、マスタ0のCPU11がC0−1のアクセスを要求し、マスタ1のCPU11がC1−1のアクセスを要求する。
T3において、スヌープ制御部24によってD1のスヌープ要求がマスタ0およびマスタ1の両方に発行されてスヌープ処理が行なわれる。このスヌープ処理は1サイクルで終了する。また、オペランドアクセス調停部23による調停によってD2のオペランドアクセスが受付けられる。
T4において、スヌープ選択テーブルにはD2のアクセス領域がマスタ0のみ使用していることを検出した場合、スヌープ制御部24によってD2のスヌープ要求がマスタ0のみに発行されてスヌープ処理が行なわれる。このスヌープ処理は、何らかの要因によって2サイクルに延びている。このとき、マスタ1のCPU11はC1−2のアクセスを要求する。また、D1のスレーブアクセスが行なわれる。
T5において、マスタ0によるスヌープ処理が引き続き行なわれる。このとき、マスタ1のCPU11はC1−3のアクセスを要求する。また、オペランドアクセス調停部23による調停によってD3のオペランドアクセスが受付けられる。
T6において、スヌープ制御部24によってD3のスヌープ要求がマスタ0およびマスタ1の両方に発行されてスヌープ処理が行なわれる。このスヌープ処理は、何らかの要因によって2サイクルに延びている。このとき、マスタ1はCPU11の処理を優先しているためスヌープ要求を受付けず、C1−4のアクセスを要求する。また、マスタ0はスヌープ要求を受付けてスヌープ処理を行ない、要求を出したマスタに対してModifiedを返送する。Modifiedであるので、必ずマスタ0のDキャッシュ13にしか対応するラインがないことを意味しており、マスタ1に対して発行していたスヌープ要求を取下げる。これによって、余計なスヌープ処理を行なうことがなくなる。
T7において、マスタ0によるスヌープ処理は終了しているので、マスタ0のCPU11はC0−2のアクセスを要求する。このとき、マスタ1のCPU11はC1−5のアクセスを要求する。
以上説明したように、本実施の形態におけるバス制御装置によれば、第4の実施の形態において説明した効果に加えて、スヌープ処理を行なうマスタからModifiedが返送された場合に、他のマスタのスヌープ要求を取下げるようにしたので、余計なスヌープ処理を行なうことがなくなり、CPUの処理性能をさらに向上させることが可能となった。
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
本発明の第1の実施の形態におけるバス制御部を含んだマルチプロセッサシステムの構成例を示す図である。 本発明の第1の実施の形態におけるマルチプロセッサシステムの処理を説明するためのタイミングチャートである。 本発明の第2の実施の形態におけるバス制御部を含んだマルチプロセッサシステムの構成例を示す図である。 本発明の第3の実施の形態におけるバス制御部を含んだマルチプロセッサシステムの構成例を示す図である。 本発明の第4の実施の形態におけるバス制御部の内部構成を示すブロック図である。 スヌープ選択テーブル51に格納される情報の一例を示す図である。 本発明の第5の実施の形態におけるスヌープ制御部24のスヌープ選択テーブル51の設定処理を説明するための図である。 本発明の第5の実施の形態におけるマルチプロセッサシステムの処理を説明するためのタイミングチャートである。
符号の説明
1−1〜1−N マスタ、2 バス制御部、3 スレーブ、4 バス、11 CPU、12 Iキャッシュ、13 Dキャッシュ、21,31 命令フェッチ調停部、22 命令アクセス部、23,32 オペランドアクセス調停部、24 スヌープ制御部、25 オペランドアクセス部、51 スヌープ選択テーブル、52 スヌープ要求生成部。

Claims (8)

  1. マルチプロセッサシステムにおいて複数のプロセッサからスレーブへのアクセス要求を制御するバス制御装置であって、
    前記複数のプロセッサからのアクセス要求のうちスヌープの不要なアクセス要求を調停する第1の調停手段と、
    前記複数のプロセッサからのアクセス要求のうちスヌープの必要なアクセス要求を調停する第2の調停手段と、
    前記第2の調停手段によって調停されたアクセス要求に対応したスヌープ要求を前記複数のプロセッサに対して発行するスヌープ制御手段と、
    前記複数のプロセッサによるスヌープ処理と並行して、前記スレーブに対して前記第1の調停手段によって調停されたアクセスを行なう第1のアクセス手段と、
    前記スレーブに対して前記第2の調停手段によって調停されたアクセスを行なう第2のアクセス手段とを含む、バス制御装置。
  2. 前記スヌープの不要なアクセス要求は命令フェッチの要求であり、前記スヌープの必要なアクセス要求はオペランドアクセスの要求である、請求項1記載のバス制御装置。
  3. 前記複数のプロセッサからのアクセス要求は、命令フェッチおよびオペランドアクセスを含み、
    前記第1の調停手段および第2の調停手段に、同一のアクセス要求が与えられ、請求項1または2記載のバス制御装置。
  4. 前記複数のプロセッサからのアクセス要求は、命令フェッチおよびオペランドアクセスを含み、
    前記第1の調停手段に、命令フェッチのアクセス要求が与えられ、
    前記第2の調停手段に、オペランドアクセスのアクセス要求が与えられる、請求項1または2記載のバス制御装置。
  5. 前記スヌープの不要なアクセス要求は命令フェッチの要求およびノンキャッシャブルなオペランドアクセスの要求であり、前記スヌープの必要なアクセス要求はキャッシャブルなオペランドアクセスの要求である、請求項1記載のバス制御装置。
  6. 前記スヌープ制御手段は、プロセッサ毎にスヌープが必要か否かを示す情報を保持するテーブルと、
    前記テーブルを参照して、スヌープが必要なプロセッサに対するスヌープ要求を生成する生成手段とを含む、請求項1〜5のいずれかに記載のバス制御装置。
  7. 前記テーブルは、領域を示す情報と、
    プロセッサ毎に当該領域のデータを保持しているか否かを示す情報とを含む、請求項6記載のバス制御装置。
  8. プロセッサが前記領域のデータにアクセスしたときに、プロセッサが当該領域のデータを保持していることを示す情報が設定され、当該領域のデータにアクセスすることがなくなったときに、当該領域の情報がクリアされる、請求項7記載のバス制御装置。
JP2006327278A 2006-12-04 2006-12-04 バス制御装置 Expired - Fee Related JP4948141B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006327278A JP4948141B2 (ja) 2006-12-04 2006-12-04 バス制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006327278A JP4948141B2 (ja) 2006-12-04 2006-12-04 バス制御装置

Publications (2)

Publication Number Publication Date
JP2008140258A JP2008140258A (ja) 2008-06-19
JP4948141B2 true JP4948141B2 (ja) 2012-06-06

Family

ID=39601622

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006327278A Expired - Fee Related JP4948141B2 (ja) 2006-12-04 2006-12-04 バス制御装置

Country Status (1)

Country Link
JP (1) JP4948141B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06124235A (ja) * 1992-08-25 1994-05-06 Oki Electric Ind Co Ltd キャッシュ制御方式
JP2819982B2 (ja) * 1993-03-18 1998-11-05 株式会社日立製作所 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム
JPH1055314A (ja) * 1996-08-12 1998-02-24 Hitachi Ltd キャッシュメモリ制御装置
JP2001043204A (ja) * 1999-08-02 2001-02-16 Nec Eng Ltd キャッシュ・メモリ制御装置

Also Published As

Publication number Publication date
JP2008140258A (ja) 2008-06-19

Similar Documents

Publication Publication Date Title
JP6707605B2 (ja) 異なるキャッシュ・コヒーレンス・ドメインの間の情報共有技法
US7146468B2 (en) Cache memory and method for handling effects of external snoops colliding with in-flight operations internally to the cache
US6519685B1 (en) Cache states for multiprocessor cache coherency protocols
JP5078396B2 (ja) 動作のスヌーピングに応答して無効コヒーレンシー状態を更新するデータ処理システム、キャッシュ・システム、および方法
US7707361B2 (en) Data cache block zero implementation
US8108619B2 (en) Cache management for partial cache line operations
US7003635B2 (en) Generalized active inheritance consistency mechanism having linked writes
US8117401B2 (en) Interconnect operation indicating acceptability of partial data delivery
US20090198865A1 (en) Data processing system, processor and method that perform a partial cache line storage-modifying operation based upon a hint
US7640401B2 (en) Remote hit predictor
US8024527B2 (en) Partial cache line accesses based on memory access patterns
US11714754B2 (en) Shadow caches for level 2 cache controller
US6351791B1 (en) Circuit arrangement and method of maintaining cache coherence utilizing snoop response collection logic that disregards extraneous retry responses
US7051163B2 (en) Directory structure permitting efficient write-backs in a shared memory computer system
US20040068624A1 (en) Computer system supporting both dirty-shared and non dirty-shared data processing entities
US6892290B2 (en) Linked-list early race resolution mechanism
US20020129210A1 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers that uses dynamic hardware/software controls
US8255635B2 (en) Claiming coherency ownership of a partial cache line of data
JP2001043133A (ja) マルチプロセッサ・システムにおいてライトスルー・ストア・オペレーションでキャッシュ・コヒーレンシを維持するための方法およびシステム
JP4948141B2 (ja) バス制御装置
TWI758317B (zh) 用於提供資料存取行為原子集的裝置及方法
JP2007080266A (ja) 方法、データ処理システム、メモリ・コントローラ(i/o書込みオペレーションのパイプライン化および多重オペレーション範囲を可能にするデータ処理システムおよび方法)
US20020129209A1 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers
Guher Physical Design of Snoop-Based Cache Coherence on Multiprocessors
JP2009042992A (ja) バス制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091109

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100526

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120228

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120306

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150316

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees