JP2008123333A - 半導体集積回路装置 - Google Patents

半導体集積回路装置 Download PDF

Info

Publication number
JP2008123333A
JP2008123333A JP2006307700A JP2006307700A JP2008123333A JP 2008123333 A JP2008123333 A JP 2008123333A JP 2006307700 A JP2006307700 A JP 2006307700A JP 2006307700 A JP2006307700 A JP 2006307700A JP 2008123333 A JP2008123333 A JP 2008123333A
Authority
JP
Japan
Prior art keywords
cache
snoop
integrated circuit
controller
semiconductor integrated
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.)
Granted
Application number
JP2006307700A
Other languages
English (en)
Other versions
JP2008123333A5 (ja
JP4965974B2 (ja
Inventor
Shinichi Shibahara
真一 芝原
Masashi Takada
雅士 高田
Tatsuya Kamei
達也 亀井
Kiyoshi Hayase
清 早瀬
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 Technology Corp
Original Assignee
Renesas Technology 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 Technology Corp filed Critical Renesas Technology Corp
Priority to JP2006307700A priority Critical patent/JP4965974B2/ja
Publication of JP2008123333A publication Critical patent/JP2008123333A/ja
Publication of JP2008123333A5 publication Critical patent/JP2008123333A5/ja
Application granted granted Critical
Publication of JP4965974B2 publication Critical patent/JP4965974B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】SMP構成の半導体集積回路装置におけるキャッシュコヒーレンシ制御の異常を防止し、処理性能を向上させる。
【解決手段】メモリ割り付けキャッシュアクセスは、CPU2aからアクセス要求をキャッシュコントローラが受理した後、アドレスデコーダADで検知される。制御部2d1 は、アクセス要求に従ってキャッシュをアクセスする。読み出されたキャッシュステータスと更新データとを比較し、有効ビットが有効から無効に変化した場合は登録内容をクリアしたと判断し、「複製アドレスアレイ内容をクリア」するスヌープバス要求を発行する。その後、スヌープコントローラ3は、複製タグを引き、スヌープバス要求に従って複製タグを更新する。更新が完了した後、レスポンスを返し、アドレスアレイの更新を行う。これにより、キャッシュと複製アドレスアレイ(複製タグ)の登録内容が同期化される。
【選択図】図5

Description

本発明は、複数の中央処理装置を備えた半導体集積回路装置におけるキャッシュアクセス技術に関し、特に、SMP(Symmetric Multiple Processor)構造の半導体集積回路装置によるコヒーレンシ制御に有効な技術に関する。
複数のCPUが処理を分担する、いわゆるSMP構造の半導体集積回路装置では、CPU間のキャッシュコヒーレンシを保つ手段として、各CPUのキャッシュ登録情報を格納する複製アドレスアレイと各CPUから他のCPUのキャッシュ登録情報をスヌープするための共有バス(以下、スヌープバスという)が存在するものが知られている。各CPUは、コヒーレンシ有効/無効を選択することができる。
SMP構成の半導体集積回路装置におけるコヒーレンシ(共有)制御では、該コヒーレンシ制御に必要なのは真に複数のCPU間でデータ共有している領域のみである。よって、コヒーレンシ制御が不良な領域(データ共有しない領域)に対して、コヒーレンシ制御を行うことにより、性能が低下してしまうことになる。
さらに、SMP構成の半導体集積回路装置では、プロセス毎に同一物理領域をライトスルーとコピーバックで使用したい場合があり、たとえば、プロトコルの混在を可能とする技術として、ライトスルーとコピーバックとの区別をスヌープバスのステータス信号に追加することにより、スヌープ処理の内容を選択するものが知られている(特許文献1参照)。
また、SMP構成の半導体集積回路装置は、一般に、プロセスを実行するCPUの割り当てをOS(Operating System)が自動的に振り分けている。
さらに、SMP構成の半導体集積回路装置をデバッグする際、すべてのCPUのキャッシュ登録状況を見るためには、全CPUのプログラム実行を一時停止した後、CPU毎にキャッシュ操作を行っている。
特開平04−123151号公報
ところが、上記のようなSMP構成の半導体集積回路装置では、次のような問題点があることが本発明者により見い出された。
CPU間のキャッシュコヒーレンシを保つ技術において、複製アドレスアレイへの登録は、各CPUがキャッシュミスした際に起こすスヌープバス要求のタイミングにて行われる。スヌープバス要求後のスヌープ処理を正しく行うためには、各CPUのキャッシュ登録情報と複製アドレスアレイの登録情報が一致している必要がある。
また、各CPUのキャッシュ登録内容はメモリ割り付けキャッシュアクセスによって参照/更新可能な場合、メモリ割り付けキャッシュアクセスにより登録内容がクリア可能になる。クリアされた場合、複製アドレスアレイも情報一致させるために、複製アドレスアレイの内容をクリアしなければならないが、複製アドレスアレイをクリアする手段を有していない。
そのため、キャッシュ格納情報を誤認識し、コヒーレンシ制御が正常に行われない可能性がある。
また、シングルコア構成のソフトウェアを流用した場合、複製アドレスアレイをクリアする処理の追加が必要となってしまい、ソフトウェアの工数の増加、およびコスト向上などが発生してしまう。
次に、コヒーレンシの有効/無効を選択する技術では、コヒーレンシの有効を選択した場合に、非共有領域に対してもスヌープ処理が発生してしまい、半導体集積回路装置の性能が劣化してしまうという問題がある。
ライトスルーとコピーバックとの区別をスヌープバスのステータス信号に追加する技術では、コヒーレンシプロトコルが混在しないときでも、回避処理が発生してしまい、スヌープ処理性能が低下してしまうという問題がある。
プロセスを実行するCPUの割り当てをOSが振り分ける場合、コンテクストスイッチなどでプロセス実行が中断された際に、プロセスが再開した場合に同じCPUで行われない場合がある。
実行中断時点でダーティデータがキャッシュに残存しているにも関わらず、他のCPUで実行再開される場合、再開以降に実行する命令の中にキャッシュ操作命令(指定したアドレスが登録されているキャッシュライン操作)があると、所望のキャッシュ操作ができない場合がある。
この場合、キャッシュ操作命令実行後にDMA転送を行うプログラムを書いてしまうと、ダーティデータを書き戻せないままDMA転送を行ってしまい、期待通りの動作にならない恐れがある。
さらに、他のCPUのキャッシュを操作する場合には、CPU間割り込みを用いて全CPUのプロセス実行を中断し、CPUそれぞれでキャッシュ操作命令を実行する必要があり、キャッシュ操作に手間が掛かってしまうという問題がある。
また、デバッグの際に、すべてのCPUのキャッシュ登録状況を見る場合、前述したように、全CPUのプログラム実行を一時停止した後、CPU毎にキャッシュ操作を行わなければならず、他のCPUの割り込み要求、キャッシュ読み出し、共有領域への結果書き込み、および共有領域からの結果読み出しなどの処理が必要となり、デバッグ効率が低下してしまうという問題がある。
本発明の目的は、SMP構成の半導体集積回路装置において、キャッシュコヒーレンシ制御の異常を防止し、処理性能を向上させる技術を提供することにある。
また、本発明の他の目的は、コヒーレンシプロトコルによる性能劣化を防止し、ソフトウェア、およびデバッグの効率を向上させる技術を提供することにある。
本発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
本発明による半導体集積回路装置は、アクセス要求を受け取り、所望のデータをアクセスするバスインタフェースコントローラと、中央処理装置と、該中央処理装置からの命令、データアクセス要求を受け取り、所望のデータをアクセスするためにキャッシュ操作やバスインタフェースコントローラにアクセス要求を行うキャッシュコントローラとを備えた複数のCPUコアと、キャッシュミスが発生した際にキャッシュコントローラから発行されるスヌープ要求を受け取り、コヒーレンシ制御を行うスヌープコントローラとを有した半導体集積回路装置であって、キャッシュコントローラは、中央処理装置が、メモリ割り付けキャッシュアクセスによって登録内容をクリアした際に、各中央処理装置のキャッシュ登録情報を格納する複製アドレスアレイの内容をクリアする要求を発行し、スヌープコントローラは、キャッシュコントローラから発行されたスヌープバス要求を受理すると、複製タグを参照し、スヌープバス要求に従って複製タグを更新した後、複製アドレスアレイを更新するものである。
また、本願のその他の発明の概要を簡単に示す。
本発明による半導体集積回路装置は、前記スヌープコントローラが、キャッシュクリアを行うキャッシュ操作命令の実行時に複製アドレスアレイをクリアするものである。
また、本発明の半導体集積回路装置は、前記キャッシュコントローラが、仮想アドレスを物理アドレスに変換するアドレス変換テーブルを備え、該アドレス変換テーブルは、コヒーレンシが有効か無効かを示す選択情報を有し、キャッシュコントローラは、アドレス変換テーブルの選択情報を参照し、コヒーレンシ有効となっている際にスヌープコントローラにスヌープバス処理を発生させ、コヒーレンシ制御を行うものである。
さらに、本発明の半導体集積回路装置は、前記キャッシュコントローラが、コヒーレンシが有効か無効かを示す選択情報を格納するレジスタを有し、アドレスデコード時にレジスタの選択情報を参照し、コヒーレンシ有効となっている際にスヌープコントローラにスヌープバス処理を発生させ、コヒーレンシ制御を行うものである。
また、本発明の半導体集積回路装置は、前記キャッシュコントローラが、ライトスルーとコピーバックとを混在して使用するか否かを設定する設定レジスタを備え、スヌープバス要求が必要の際に、該設定レジスタを参照してバスコマンドを発行するものである。
さらに、本発明の半導体集積回路装置は、前記キャッシュコントローラが、ライトスルー設定時にキャッシュライトミスを起こした際に設定レジスタが混在に設定されている場合、中央処理装置にダーティデータが存在することを考慮したスヌープ処理とライト処理を行うコマンドを発行し、ライトスルー設定時にキャッシュライトミスを起こした際に設定レジスタが非混在に設定されている場合、中央処理装置がダーティデータを所持していないことを考慮したスヌープ処理とライト処理を行うコマンドを発行するものである。
また、本発明の半導体集積回路装置は、前記キャッシュコントローラが、キャッシュリードミスを起こした際に設定レジスタが混在に設定されている場合、中央処理装置にダーティデータが存在することを考慮したコマンドを発行し、中央処理装置のスヌープ要求完了まで待機し、キャッシュリードミスを起こした際に設定レジスタが非混在に設定されている場合、中央処理装置にダーティデータが存在しないことを考慮したコマンドを発行し、要求が受け付けられたと同時にフィル要求を出力することを発行するものである。
さらに、本発明の半導体集積回路装置は、前記キャッシュコントローラが、中央処理装置からキャッシュ操作命令を実行する要求を受け取ると、任意のアドレスを有する中央処理装置にキャッシュ操作を行うことを要求するスヌープバス要求を発生させるものである。
また、本発明の半導体集積回路装置は、前記キャッシュコントローラが、中央処理装置からキャッシュ操作命令を実行する要求を受け取ると、任意のアドレス範囲を有する中央処理装置にキャッシュ操作を行うことを要求するスヌープバス要求を発生させるものである。
さらに、本発明の半導体集積回路装置は、前記スヌープコントローラが、任意の1つの中央処理装置から、すべての中央処理装置の複製アドレスアレイを参照するアドレスマップ、および1つの中央処理装置の複製アドレスアレイを参照するアドレスマップを有し、前記キャッシュコントローラは、アドレスマップを参照可能であり、スヌープコントローラは、アクセス要求が発生した際にアドレスデコードによってすべての中央処理装置の複製アドレスアレイを参照するアドレスマップであるか、または1つの中央処理装置の複製アドレスアレイを参照するアドレスマップであるかを判断するものである。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
(1)複製アドレスアレイに関係なく、キャッシュの登録内容をクリアすることが可能となり、キャッシュコヒーレンシ制御を良好に行うことができる。
(2)非共有領域に対するコヒーレンシ制御のペナルティをなくすことができるので、半導体集積回路装置の性能を向上させることができる。
(3)ライトスルーとコピーバックを使用することが可能となり、ソフトウェアなどの開発効率を向上させることができる。
(4)プロセスマイグレーションを考慮したキャッシュ操作を容易に実施することが可能となる。
(5)1つのCPUからすべてのCPUの複製アドレスアレイを参照することができるので、デバッグを容易に、効率よく行うことができる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
(実施の形態1)
図1は、本発明の実施の形態1による半導体集積回路装置のブロック図、図2は、図1の半導体集積回路装置で用いられるオペランドキャッシュの構成例を示す説明図、図3は、図1の半導体集積回路装置で用いられる複製アドレスアレイの構成例を示す説明図、図4は、図1の半導体集積回路装置による通常のスヌープ処理の一例を示す説明図、図5は、図1の半導体集積回路装置によるスヌープ処理において、メモリ割り付けキャッシュアクセス結果と複製アドレスアレイの同期を行う際の一例を示す説明図、図6は、図1の半導体集積回路装置に用いられるオペランドキャッシュ/アドレスアレイの構成を示す説明図である。
本実施の形態1において、半導体集積回路装置1は、SMP構成からなる。半導体集積回路装置1は、図1に示すように、複数のCPUコア2、スヌープコントローラ(SNC)3、ハードウェアIP(HW IPn)40 〜4n 、DMAコントローラ(DMAC)5、チップ外部高速転送インタフェース(PCI Exp)6、外部メモリインタフェース(EBSC)7、周辺モジュールバスコントローラ(PBSC)8、および周辺モジュールであるタイマ(TMU)9、割り込みコントローラ(INTC)10、クロックパルス生成器(CPG)11、汎用I/O(Input/Output)ポート(GPIO)12から構成されている。
これらCPUコア2とスヌープコントローラ3とは、スヌープバスB1を介して相互に接続されている。CPUコア2、スヌープコントローラ3、ハードウェアIP40 〜4n 、DMAコントローラ5、チップ外部高速転送インタフェース6、外部メモリインタフェース7、ならびに周辺モジュールバスコントローラ(PBSC)8は、オンチップシステムバスB2を介して相互に接続されている。
また、周辺モジュールバスコントローラ8、タイマ9、割り込みコントローラ10、クロックパルス生成器11、ならびに汎用I/Oポート12は、周辺モジュールバスB3を介して相互に接続されている。
CPUコア2は、CPU2a、命令キャッシュ(I$)2b、データキャッシュ(D$)2c、キャッシュコントローラ(CCN)2d、ならびにバスインタフェースコントローラ(BIC)2eから構成されている。
CPU2aは、メモリに記憶されたプログラムを定義された命令単位で読み、必要なデータを取り込みながら、演算・処理を実行する。命令キャッシュ2bは、CPU2aからの命令アクセスサイクルを短縮させるために、CPUコア2外に格納された命令を一時的に格納する。
データキャッシュ2cは、CPU2aからのデータアクセスサイクルを短縮させるため、CPUコア2外に格納された命令を一時的に格納する。キャッシュコントローラ2dは、CPU2aからの命令、データアクセス要求を受け取り、所望のデータをアクセスするために、キャッシュ操作やバスインタフェースコントローラ2eにアクセス要求を行う。
バスインタフェースコントローラ2eは、キャッシュコントローラ2dからアクセス要求を受け取り、オンチップシステムバスB2経由で所望のデータをアクセスする。
また、スヌープコントローラ3は、キャッシュミスが発生した際にキャッシュコントローラ2dから発行されるスヌープ要求を受け取り、コヒーレンシ制御を行う。ハードウェアIP40 〜4n は、 ハードウェアアクセラレータなど、CPU2aの負担軽減化の為、アルゴリズムが確定したプログラムをハードウェア化してオンチップシステムバスB2に接続されたモジュールからなる。
DMAコントローラ5は、CPU2aを介さずにメモリ間のデータ転送を制御する。チップ外部高速転送インタフェース6は、チップ間を高速データ転送するためのインタフェースからなる。
外部メモリインタフェース7は、オンチップシステムバスB2経由からのアクセス要求を受け取り、チップ外部に接続される装置へのアクセス要求を行う。周辺モジュールバスコントローラ8は、周辺モジュールをアクセスする。
タイマ9は、所望の時間設定をし、ある時間に到達すると、割り込みコントローラ10に割り込み要求を起こす。割り込みコントローラ10は、周辺モジュール/チップ外部から割り込み要求を受付け、CPU2aに割り込み要求を行う。
クロックパルス生成器11は、各モジュールにクロックを供給する。汎用I/Oポート12は、チップ外部に固定信号を出力したり、チップ内部情報を出力するインタフェースである。
半導体集積回路装置1では、複数のCPUコア2がスヌープ処理をスヌープバスB1からスヌープコントローラ3を介して行うことで、キャッシュコヒーレンシを保っている。
キャッシュは、図2に示すように、アドレスアレイとデータアレイに分類される。アドレスアレイは、アドレスを示すアドレスタグ、データが有効か無効かを示す有効ビット(V)、他のCPU2aと同じデータを有することを示す共有ビット(S)、キャッシュの転送されたデータが転送元と異なることを示すダーティビット(U)により構成されており、データアレイはアドレスタグに指定された領域のデータが保存される。
複製アドレスアレイは、図3に示すように、アドレスタグ、有効ビット(V)、共有ビット(S)により構成されている。また、各CPU2aにおけるアドレスアレイと複製アドレスアレイとの内容は一致する。
ここで、通常のスヌープ処理について説明する。
図4は、CPUコア2におけるCPU2a、キャッシュコントローラ2d、およびスヌープコントローラ3における通常のスヌープ処理の一例を示す説明図である。
スヌープ処理は、まず、CPU2aからのオペランド要求をキャッシュコントローラ2dが受理(ステップS101)し、キャッシュ探索(ステップS102)後にキャッシュコヒーレンシ動作が必要になった場合(たとえば、キャッシュミスにより他CPU2aのキャッシュ状況確認が必要になるとき)、スヌープコントローラ3にスヌープバス要求(ステップS103)を送る。
スヌープバス要求受理後に複製タグ(ステップS104)を引き、各CPU2aにコヒーレンシを保つためのスヌープ要求を発行するか(ステップS105)どうかを判定する。
各CPU2aはスヌープ要求を受け、キャッシュ探索を行った後(ステップS106)、レスポンス(ステップS107)を返す。バス要求発行元はレスポンスを受け取った(ステップS108)後に、キャッシュ更新し(ステップS109)、他のCPU2aに最新データがない場合は、バスインタフェースコントローラB2経由で実デバイスにアクセス(ステップS110)を行う。
また、最新データがあった場合は、スヌープコントローラ3から実デバイスにライトバック(ステップS108)と共にキャッシュを更新する。
次に、本実施の形態における半導体集積回路装置1の動作について説明する。
図5は、CPUコア2におけるCPU2a、キャッシュコントローラ2d、およびスヌープコントローラ3におけるスヌープ処理において、メモリ割り付けキャッシュアクセス結果と複製アドレスアレイの同期を行う際の一例を示す説明図である。
まず、メモリ割り付けキャッシュアクセスは、CPU2aからアクセス要求をキャッシュコントローラが受理した後(ステップS201)、キャッシュコントローラ2dのアドレスデコーダADで検知される。
キャッシュコントローラ2dに設けられた制御部2d1 は、アクセス要求(図6によってアクセスすべきウェイ・エントリが決定する)に従ってキャッシュをアクセスする(ステップS202)。
これによって読み出されたキャッシュステータスと更新データとを比較し、有効ビットが有効から無効に変化した場合は登録内容をクリアしたと判断される。クリアと判断した後、「複製アドレスアレイ内容をクリア」するスヌープバス要求を発行する(ステップS203)。
スヌープコントローラ3は、スヌープバス要求受理後に複製タグを引き(ステップS204)、スヌープバス要求に従って複製タグを更新する。更新が完了した後、レスポンスを返し(ステップS205)、アドレスアレイの更新を行う(ステップS206)。これにより、キャッシュと複製アドレスアレイ(複製タグ)の登録内容が同期化される。
それにより、本実施の形態1によれば、複製アドレスアレイを気にする必要なく、キャッシュの登録内容をクリアすることが可能となり、キャッシュコヒーレンシ制御を良好に行うことができる。
また、本実施の形態1では、メモリ割り付けキャッシュアクセスにおいて、複製アドレスアレイを同期する場合について記載したが、たとえば、キャッシュクリアを行うキャッシュ操作命令実行時においても複製アドレスアレイをクリアする機能を有するようにしてもよい。
この場合、命令デコード時にキャッシュ操作命令を検知し、キャッシュコントローラにおいて複製アドレスアレイをクリアするスヌープバス要求を発行する。キャッシュ構成は命令・キャッシュ分離型でも命令・キャッシュ一体型のいずれでもあってもよい。
(実施の形態2)
図7は、本発明の実施の形態2によるコヒーレンシ有効/無効選択情報が追加されたアドレス変換テーブルの構成例を示す説明図である。
本実施の形態2において、図1の半導体集積回路装置1は、非共有領域に対してコヒーレンシ制御を行わない機能を有している。
この場合、キャッシュコントローラ2dのアドレスデコーダADにおいて、コヒーレンシ有効/無効選択情報を参照し、コヒーレンシ有効のときのみスヌープバス要求を発生させる。
コヒーレンシ有効/無効選択情報は、図7に示すように、アドレス変換テーブル(TLB:Transition Lookside Buffer)TBに格納される。仮想アドレスを物理アドレスに変換する際にアドレス変換テーブルTBを引くため、その際に選択情報も同時に参照することができる。
アドレス変換テーブルTBは、プロセス番号ASID(Address Space IDentifier)、仮想アドレスVPN(Virtual Page Number)、有効ビットVを索引とすると、物理アドレスPPN(Physical Page Number)、コヒーレンシ無効NCC(Not Cache Coherency Mode)、複数プロセス共有許可SH(SHare)、キャッシュブル領域指定C(Cacheable)、ダーティ状態D(Dirty)、コヒーレンシプロトコルWT(Write Through)情報がそれぞれ読み出せることになる。このアドレス変換テーブルTBへの情報登録は、ソフトウェアにて行う。
それにより、本実施の形態2では、非共有領域に対するコヒーレンシ制御のペナルティを減少させることができるので、半導体集積回路装置1における性能を向上させることができる。
また、本実施の形態2においては、アドレス変換テーブルTBにコヒーレンシ有効/無効選択情報を備えた構成としたが、たとえば、コヒーレンシ有効/無効の選択情報を適当な領域毎に設定できるレジスタに設定するようにしてもよい。ここでは、そのレジスタとして、キャッシュコントローラ2dの制御部2d1 に備えられている制御レジスタCCR(図4参照)を用いる。
この場合には、一定領域(P0,P1…)毎にコヒーレンシ制御を行うか否かを、図8に示す制御レジスタCCR内のビットに指定する。この指定ビットをアドレスデコード時に参照することによって、コヒーレンシ制御を選択することができる。
(実施の形態3)
図9は、本発明の実施の形態3による制御レジスタにおけるコヒーレンシプロトコル混在ビットの説明図である。
本実施の形態3において、図1の半導体集積回路装置1は、コヒーレンシプロトコル混在/非混在を設定するレジスタとプロトコル混在に対応する機構を有している。
この場合、コヒーレンシプロトコル混在/非混在を設定するレジスタは、たとえば、キャッシュコントローラ2dの制御部2d1 に備えられている制御レジスタCCR(図4)を用いる。
キャッシュコントローラ2dによるキャッシュ操作中に、スヌープバス要求が必要になった場合、図9に示す制御レジスタCCRのコヒーレンシプロトコル混在ビットMCPを参照することにより、状況に対応したバスコマンドを発行する。
制御レジスタCCRは、メモリ割り付けアクセスにより制御することができる(例:アドレス0xff00001c番地)。
ライトスルー設定時にキャッシュライトミスを起こしたとき、混在の場合は、他CPU2aにダーティデータが存在することを考慮したスヌープ処理とライト処理を行うコマンドBUSWT_SNW(BUS Write Through with SNoop Wait)を発行し、非混在の場合には、他CPU2aがダーティデータを所持していないことを考慮したスヌープ処理とライト処理を行うコマンドBUSWT(BUS Write Through)を発行する。
また、キャッシュリードミスを起こしたとき、混在の場合は、他CPU2aにダーティデータが存在することを考慮したコマンドBUSRD(BUS Read with SNoop Wait)を発行し、他CPU2aのスヌープ要求完了まで待つ(これは、ダーティデータがレスポンスとして返り、キャッシュフィルするからである)。
非混在の場合は、他CPU2aにダーティデータが存在しないことを考慮したコマンドBUSRD(BUS Read)を発行し、要求が受け付けられたと同時にオンチップシステムバスB2へフィル要求を出す。
これにより、全CPUライトスルー設定時にキャッシュリードミスを起こし、スヌープバス要求を行ってレスポンスを待つという動作が不要となる。また、レスポンスを待つ場合、レスポンスを待っても、ダーティデータが返って来ないと無駄な待ちになる。
常にプロトコル混在を考慮したプロセッサの場合、このような無駄な待ち時間が多く発生してしまうことになるが、本実施の形態3のように、制御レジスタCCRのコヒーレンシプロトコル混在ビットMCPを参照することにより、無駄な待ちを減少させることができる。
それにより、本実施の形態3によれば、プロセス毎に同一物理領域をライトスルーとコピーバックで使用することが可能となり、ソフトウェアなどの開発効率を向上させることができる。
また、コヒーレンシプロトコル混在/非混在の制御は、たとえば、アドレス変換テーブルTBのエントリ毎、あるいは共有領域毎に制御を可変とするようにしてもよい。
(実施の形態4)
図10は、本発明の実施の形態4によるプロセスマイグレーションを考慮したキャッシュ操作命令の処理例を示す説明図である。
本実施の形態4において、図1の半導体集積回路装置1は、キャッシュ操作命令の実行時においてスヌープ要求を用いることにより、すべてのCPU2aに対してキャッシュ操作を可能にする機能を有している。
図10は、中断されたプロセスが他CPU2aで再開される、いわゆるプロセスマイグレーションを考慮したキャッシュ操作命令(OCBWB)の処理例を示す説明図である。
キャッシュ操作命令は、CPU2aによる命令デコード検知される。CPU2aからキャッシュ操作命令を実行する旨をキャッシュコントローラ2dに通知し、制御部2d1にてキャッシュミス時と同様にスヌープバス要求を発生させる。
そのとき、「所定アドレスを持つCPU2aにキャッシュ操作を行うこと」をスヌープバス要求内容とする。スヌープコントローラ3(図1)はスヌープバス要求を受理すると、複製アドレスアレイをリードした後、所定エントリを持つCPU2aにスヌープ要求を発行する。
それにより、本実施の形態4では、プロセスマイグレーションを考慮したキャッシュ操作を容易に実施することが可能となる。
また、キャッシュ操作命令を1つ用意するだけで、すべてのCPU2aのキャッシュ操作が可能となり、プロセスマイグレーションを考慮したキャッシュ操作処理を用意する必要がなくなり、ソフトウェアの開発効率を向上させることができる。
さらに、上記した「所定アドレス」は、所定アドレス指定に範囲を持たせるようにしてもよい(例:0x0000F????のキャッシュラインを持つエントリを全て操作)。これによって、1命令/1ブロックであった所を1命令で複数ブロックを操作することが可能となり、プログラム容量を削減することができる。
(実施の形態5)
図11は、本発明の実施の形態5によるメモリ割り付けアクセスを検知する複製アドレスアレイの構成例を示す説明図である。
本実施の形態5において、図1の半導体集積回路装置1は、1つのCPUからすべてのCPUの複製アドレスアレイを参照する機能を有している。
この場合、複製アドレスアレイへのアクセスは、スヌープバスB1とは別に直接参照可能なインタフェースをバスインタフェースコントローラ2eとスヌープコントローラ3との間で持つものとする(キャッシュコントローラ2dにその機能を有してもよい)。
メモリ割り付けアクセスは、キャッシュコントローラ2dのアドレスデコーダADで検知され、図12に示すように、アドレスビット31−24で判定することができる。
CPU2aからのアクセス要求をキャッシュコントローラが受理し(ステップS301)、複製アドレスアレイへのアクセスを検知すると、バスインタフェースコントローラ2e経由でスヌープコントローラ3へアクセス要求を行う(ステップS302)。
スヌープコントローラ3は、アドレスデコードにより、全すべてのCPUの複製アドレスアレイを参照できるアドレスマップか、自CPUの複製アドレスアレイのみ参照できるアドレスマップかを判断し、該複製タグをアクセスする(ステップS303)。その後、アクセスしたデータをレスポンスとして返す(ステップS304)。
図12の場合、アドレスビット23で判定できる。すべてのCPUの複製アドレスアレイを参照する場合は、ビット16−15で参照先を判定することができる。
それにより、本実施の形態5によれば、1つのCPUからすべてのCPUの複製アドレスアレイを参照することが可能となるので、すべてのCPUのキャッシュ登録状況を見るためにそれらすべてのCPUのプログラム実行を割り込み要求などによって一時停止させる操作を不要とすることができるので、デバッグが容易に行うことができる。
また、上記では、スヌープコントローラ3が、アドレスデコードにより、すべてのCPUの複製アドレスアレイを参照できるアドレスマップか、自CPUの複製アドレスアレイのみ参照できるアドレスマップかを判断していたが、たとえば、複製アドレスアレイをアクセスする命令を追加するようにしてもよい。
さらに、アクセス方法をオンチップシステムバスB2経由とし、複製アドレスアレイへのアクセスもスヌープバス要求にし、レスポンスにリードデータを返すようにしてもよい。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明は、複数の中央処理装置を備えたSMP構造の半導体集積回路装置によるコヒーレンシ制御に有効な技術に関する。
本発明の実施の形態1による半導体集積回路装置のブロック図である。 図1の半導体集積回路装置で用いられるオペランドキャッシュの構成例を示す説明図である。 図1の半導体集積回路装置で用いられる複製アドレスアレイの構成例を示す説明図である。 図1の半導体集積回路装置による通常のスヌープ処理の一例を示す説明図である。 図1の半導体集積回路装置によるスヌープ処理において、メモリ割り付けキャッシュアクセス結果と複製アドレスアレイの同期を行う際の一例を示す説明図である。 図1の半導体集積回路装置に用いられるオペランドキャッシュ/アドレスアレイの構成を示す説明図である。 本発明の実施の形態2によるコヒーレンシ有効/無効選択情報が追加されたアドレス変換テーブルの構成例を示す説明図である。 本発明の他の実施の形態によるコヒーレンシ制御を指定する制御レジスタにおける指定ビットの説明図である。 本発明の実施の形態3による制御レジスタにおけるコヒーレンシプロトコル混在ビットの説明図である。 本発明の実施の形態4によるプロセスマイグレーションを考慮したキャッシュ操作命令の処理例を示す説明図である。 図1の半導体集積回路装置で用いられるメモリ割り付け複製アドレスアレイアクセスの構成例を示す説明図である。 本発明の実施の形態5によるメモリ割り付けアクセスを検知する複製アドレスアレイの構成を示す説明図である。
符号の説明
1 半導体集積回路装置
2 CPUコア
2a CPU
2b 命令キャッシュ
2c データキャッシュ
2d キャッシュコントローラ
2e バスインタフェースコントローラ
3 スヌープコントローラ
0 〜4n ハードウェアIP
5 DMAコントローラ
6 チップ外部高速転送インタフェース
7 外部メモリインタフェース
8 周辺モジュールバスコントローラ
9 タイマ
10 割り込みコントローラ
11 クロックパルス生成器
12 汎用I/Oポート
B1 スヌープバス
B2 オンチップシステムバス
B3 周辺モジュールバス
CCR 制御レジスタ
AD アドレスデコーダ

Claims (10)

  1. アクセス要求を受け取り、所望のデータをアクセスするバスインタフェースコントローラと、
    中央処理装置と、前記中央処理装置からの命令、データアクセス要求を受け取り、所望のデータをアクセスするためにキャッシュ操作や前記バスインタフェースコントローラにアクセス要求を行うキャッシュコントローラとを備えた複数のCPUコアと、
    キャッシュミスが発生した際に前記キャッシュコントローラから発行されるスヌープ要求を受け取り、コヒーレンシ制御を行うスヌープコントローラとを有した半導体集積回路装置であって、
    前記キャッシュコントローラは、
    前記中央処理装置が、メモリ割り付けキャッシュアクセスによって登録内容をクリアした際に、各中央処理装置のキャッシュ登録情報を格納する複製アドレスアレイの内容をクリアする要求を発行し、
    前記スヌープコントローラは、
    前記キャッシュコントローラから発行されたスヌープバス要求を受理すると、複製タグを参照し、スヌープバス要求に従って複製タグを更新した後、複製アドレスアレイを更新することを特徴とする半導体集積回路装置。
  2. 請求項1記載の半導体集積回路装置において、
    前記スヌープコントローラは、
    キャッシュクリアを行うキャッシュ操作命令の実行時に複製アドレスアレイをクリアすることを特徴とする半導体集積回路装置。
  3. 請求項1または2記載の半導体集積回路装置において、
    前記キャッシュコントローラは、
    仮想アドレスを物理アドレスに変換するアドレス変換テーブルを備え、
    前記アドレス変換テーブルは、
    コヒーレンシが有効か無効かを示す選択情報を有し、
    前記キャッシュコントローラは、
    前記アドレス変換テーブルの選択情報を参照し、コヒーレンシ有効となっている際に前記スヌープコントローラにスヌープバス処理を発生させ、コヒーレンシ制御を行うことを特徴とする半導体集積回路装置。
  4. 請求項1または2記載の半導体集積回路装置において、
    前記キャッシュコントローラは、
    コヒーレンシが有効か無効かを示す選択情報を格納するレジスタを有し、
    アドレスデコード時に前記レジスタの選択情報を参照し、コヒーレンシ有効となっている際に前記スヌープコントローラにスヌープバス処理を発生させ、コヒーレンシ制御を行うことを特徴とする半導体集積回路装置。
  5. 請求項1〜4のいずれか1項に記載の半導体集積回路装置において、
    前記キャッシュコントローラは、
    ライトスルーとコピーバックとを混在して使用するか否かを設定する設定レジスタを備え、
    スヌープバス要求が必要な際に、前記設定レジスタを参照してバスコマンドを発行することを特徴とする半導体集積回路装置。
  6. 請求項5記載の半導体集積回路装置において、
    前記キャッシュコントローラは、
    ライトスルー設定時にキャッシュライトミスを起こした際に前記設定レジスタが混在に設定されている場合、前記中央処理装置にダーティデータが存在することを考慮したスヌープ処理とライト処理を行うコマンドを発行し、
    ライトスルー設定時にキャッシュライトミスを起こした際に前記設定レジスタが非混在に設定されている場合、前記中央処理装置がダーティデータを所持していないことを考慮したスヌープ処理とライト処理を行うコマンドを発行することを特徴とする半導体集積回路装置。
  7. 請求項5または6記載の半導体集積回路装置において、
    前記キャッシュコントローラは、
    ライトスルー設定時にキャッシュリードミスを起こした際に前記設定レジスタが混在に設定されている場合、前記中央処理装置にダーティデータが存在することを考慮したコマンドを発行し、前記中央処理装置のスヌープ要求完了まで待機し、
    ライトスルー設定時にキャッシュリードミスを起こした際に前記設定レジスタが非混在に設定されている場合、前記中央処理装置にダーティデータが存在しないことを考慮したコマンドを発行し、要求が受け付けられたと同時にフィル要求を出力することを発行することを特徴とする半導体集積回路装置。
  8. 請求項1〜7のいずれか1項に記載の半導体集積回路装置において、
    前記キャッシュコントローラは、
    前記中央処理装置からキャッシュ操作命令を実行する要求を受け取ると、任意のアドレスのデータを有する中央処理装置にキャッシュ操作を行うことを要求するスヌープバス要求を発生させることを特徴とする半導体集積回路装置。
  9. 請求項1〜7のいずれか1項に記載の半導体集積回路装置において、
    前記キャッシュコントローラは、
    前記中央処理装置からキャッシュ操作命令を実行する要求を受け取ると、任意のアドレス範囲のデータを有する中央処理装置にキャッシュ操作を行うことを要求するスヌープバス要求を発生させることを特徴とする半導体集積回路装置。
  10. 請求項1〜9のいずれか1項に記載の半導体集積回路装置において、
    前記スヌープコントローラは、
    任意の1つの前記中央処理装置から、すべての前記中央処理装置の複製アドレスアレイを参照するアドレスマップ、および1つの前記中央処理装置の複製アドレスアレイを参照するアドレスマップを有し、
    前記キャッシュコントローラは、
    前記アドレスマップを参照可能であり、
    前記スヌープコントローラは、
    アクセス要求が発生した際にアドレスデコードによってすべての前記中央処理装置の複製アドレスアレイを参照するアドレスマップであるか、または1つの前記中央処理装置の複製アドレスアレイを参照するアドレスマップであるかを判断することを特徴とする半導体集積回路装置。
JP2006307700A 2006-11-14 2006-11-14 半導体集積回路装置 Active JP4965974B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006307700A JP4965974B2 (ja) 2006-11-14 2006-11-14 半導体集積回路装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006307700A JP4965974B2 (ja) 2006-11-14 2006-11-14 半導体集積回路装置

Publications (3)

Publication Number Publication Date
JP2008123333A true JP2008123333A (ja) 2008-05-29
JP2008123333A5 JP2008123333A5 (ja) 2009-12-24
JP4965974B2 JP4965974B2 (ja) 2012-07-04

Family

ID=39508013

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006307700A Active JP4965974B2 (ja) 2006-11-14 2006-11-14 半導体集積回路装置

Country Status (1)

Country Link
JP (1) JP4965974B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011148482A1 (ja) 2010-05-27 2011-12-01 富士通株式会社 情報処理システム及びシステムコントローラ
JP5360299B2 (ja) * 2010-06-14 2013-12-04 富士通株式会社 マルチコアプロセッサシステム、キャッシュコヒーレンシ制御方法、およびキャッシュコヒーレンシ制御プログラム

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04123151A (ja) * 1990-09-13 1992-04-23 Fujitsu Ltd システムバス
JPH10254774A (ja) * 1997-03-11 1998-09-25 Hitachi Ltd マルチプロセッサシステムおよび複製タグの制御方法
JP2001184263A (ja) * 1999-12-17 2001-07-06 Hewlett Packard Co <Hp> 旧キャッシュラインを無効化および除去する装置
JP2006072509A (ja) * 2004-08-31 2006-03-16 Fujitsu Ltd 情報処理装置及びローカルスヌープ制御方法
JP2006185284A (ja) * 2004-12-28 2006-07-13 Renesas Technology Corp データ処理装置
JP2007183702A (ja) * 2006-01-04 2007-07-19 Hitachi Ltd キャッシュ一貫性制御方法およびチップセットおよびマルチプロセッサシステム
WO2007094046A1 (ja) * 2006-02-14 2007-08-23 Fujitsu Limited コヒーレンシ維持装置およびコヒーレンシ維持方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04123151A (ja) * 1990-09-13 1992-04-23 Fujitsu Ltd システムバス
JPH10254774A (ja) * 1997-03-11 1998-09-25 Hitachi Ltd マルチプロセッサシステムおよび複製タグの制御方法
JP2001184263A (ja) * 1999-12-17 2001-07-06 Hewlett Packard Co <Hp> 旧キャッシュラインを無効化および除去する装置
JP2006072509A (ja) * 2004-08-31 2006-03-16 Fujitsu Ltd 情報処理装置及びローカルスヌープ制御方法
JP2006185284A (ja) * 2004-12-28 2006-07-13 Renesas Technology Corp データ処理装置
JP2007183702A (ja) * 2006-01-04 2007-07-19 Hitachi Ltd キャッシュ一貫性制御方法およびチップセットおよびマルチプロセッサシステム
WO2007094046A1 (ja) * 2006-02-14 2007-08-23 Fujitsu Limited コヒーレンシ維持装置およびコヒーレンシ維持方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ルネサス32ビットRISCマイクロコンピュータハードウェアマニュアルSH7706, vol. Rev.5.00, JPN6012010943, 24 May 2006 (2006-05-24), JP, pages 9 - 5, ISSN: 0002162384 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011148482A1 (ja) 2010-05-27 2011-12-01 富士通株式会社 情報処理システム及びシステムコントローラ
CN102906713A (zh) * 2010-05-27 2013-01-30 富士通株式会社 信息处理系统以及系统控制器
JP5348320B2 (ja) * 2010-05-27 2013-11-20 富士通株式会社 情報処理システム及びシステムコントローラ
US8856457B2 (en) 2010-05-27 2014-10-07 Fujitsu Limited Information processing system and a system controller
JP5360299B2 (ja) * 2010-06-14 2013-12-04 富士通株式会社 マルチコアプロセッサシステム、キャッシュコヒーレンシ制御方法、およびキャッシュコヒーレンシ制御プログラム

Also Published As

Publication number Publication date
JP4965974B2 (ja) 2012-07-04

Similar Documents

Publication Publication Date Title
US10437739B2 (en) Low-latency accelerator
US8250254B2 (en) Offloading input/output (I/O) virtualization operations to a processor
TWI470435B (zh) 為本地與遠端實體記憶體間之共用虛擬記憶體提供硬體支援
US7680987B1 (en) Sub-page-granular cache coherency using shared virtual memory mechanism
US8171230B2 (en) PCI express address translation services invalidation synchronization with TCE invalidation
TWI414943B (zh) 拖延dma操作以利用轉換控制項機制之遷移進展位元進行記憶體遷移
CN100555257C (zh) 处理页面复制期间的dma操作的存储控制器和方法
US7523260B2 (en) Propagating data using mirrored lock caches
US7721023B2 (en) I/O address translation method for specifying a relaxed ordering for I/O accesses
US20040093455A1 (en) System and method for providing forward progress and avoiding starvation and livelock in a multiprocessor computer system
US7581054B2 (en) Data processing system
TWI654560B (zh) 多核心共享頁遺失處置器
US6996693B2 (en) High speed memory cloning facility via a source/destination switching mechanism
US7069394B2 (en) Dynamic data routing mechanism for a high speed memory cloner
JPH1185618A (ja) 仮想メモリ変換を制御する方法
US6892283B2 (en) High speed memory cloner with extended cache coherency protocols and responses
US6898677B2 (en) Dynamic software accessibility to a microprocessor system with a high speed memory cloner
JP4965974B2 (ja) 半導体集積回路装置
US6986013B2 (en) Imprecise cache line protection mechanism during a memory clone operation
US7502917B2 (en) High speed memory cloning facility via a lockless multiprocessor mechanism
JP2008123333A5 (ja)
US6915390B2 (en) High speed memory cloning facility via a coherently done mechanism
US6986011B2 (en) High speed memory cloner within a data processing system
US6928524B2 (en) Data processing system with naked cache line write operations
JP2785738B2 (ja) 分散メモリ型マルチプロセッサ情報処理システム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091110

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091110

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100528

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: 20120306

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: 20120330

R150 Certificate of patent or registration of utility model

Ref document number: 4965974

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150406

Year of fee payment: 3

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