(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5911964
(24)【登録日】2016年4月8日
(45)【発行日】2016年4月27日
(54)【発明の名称】3チャネルキャッシュコヒーレンシソケットプロトコル
(51)【国際特許分類】
G06F 12/08 20160101AFI20160414BHJP
【FI】
G06F12/08 531B
G06F12/08 531C
【請求項の数】40
【全頁数】16
(21)【出願番号】特願2014-539004(P2014-539004)
(86)(22)【出願日】2012年10月25日
(65)【公表番号】特表2014-532922(P2014-532922A)
(43)【公表日】2014年12月8日
(86)【国際出願番号】US2012061923
(87)【国際公開番号】WO2013063264
(87)【国際公開日】20130502
【審査請求日】2014年6月24日
(31)【優先権主張番号】61/551,917
(32)【優先日】2011年10月26日
(33)【優先権主張国】US
(31)【優先権主張番号】13/659,781
(32)【優先日】2012年10月24日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】514106498
【氏名又は名称】クゥアルコム・テクノロジーズ・インコーポレイテッド
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100109830
【弁理士】
【氏名又は名称】福原 淑弘
(74)【代理人】
【識別番号】100103034
【弁理士】
【氏名又は名称】野河 信久
(74)【代理人】
【識別番号】100075672
【弁理士】
【氏名又は名称】峰 隆司
(74)【代理人】
【識別番号】100153051
【弁理士】
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100140176
【弁理士】
【氏名又は名称】砂川 克
(74)【代理人】
【識別番号】100158805
【弁理士】
【氏名又は名称】井関 守三
(74)【代理人】
【識別番号】100179062
【弁理士】
【氏名又は名称】井上 正
(74)【代理人】
【識別番号】100124394
【弁理士】
【氏名又は名称】佐藤 立志
(74)【代理人】
【識別番号】100112807
【弁理士】
【氏名又は名称】岡田 貴志
(74)【代理人】
【識別番号】100111073
【弁理士】
【氏名又は名称】堀内 美保子
(72)【発明者】
【氏名】ルクルー、ジャン―ジャック
【審査官】
塩澤 如正
(56)【参考文献】
【文献】
特開平09−311820(JP,A)
【文献】
特開2009−301552(JP,A)
【文献】
特開2001−147858(JP,A)
【文献】
特開2000−250883(JP,A)
【文献】
米国特許出願公開第2009/0198913(US,A1)
【文献】
米国特許出願公開第2007/0186054(US,A1)
【文献】
Konstantinos Aisopos,Extending Open Core Protocol to Support System-Level Cache Coherence,CODES+ISSS '08 Proceedings of the 6th IEEE/ACM/IFIP international conference on Hardware/Software codesign and system synthesis,米国,ACM,2008年10月19日,第167頁-第172頁
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/08 − G06F 12/12
G06F 13/12
G06F 13/16
(57)【特許請求の範囲】
【請求項1】
イニシエータと、
ターゲットと、
前記イニシエータと前記ターゲットとの間の情報の通信を可能にするように構成されたソケットとを備えるシステムであって、前記ソケットが、
第1のチャネルと、
第2のチャネルと、
第3のチャネルと
を備え、
前記ソケットは、キャッシュコヒーレンシに関係する情報の通信を許容するように構成され、
前記イニシエータは、前記第1のチャネルを介してコマンド要求を送り、前記第2のチャネルを介してコマンド応答を受信するように構成され、
前記ターゲットは、前記第2のチャネルを介して介入要求を送り、前記第3のチャネルを介して介入応答を受信するように構成される、
システム。
【請求項2】
前記ターゲットがそれを介してイニシエータとして働くように構成される第2のソケットをさらに備える、請求項1に記載のシステム。
【請求項3】
前記イニシエータがそれを介してターゲットとして働くように構成される第2のソケットをさらに備える、請求項1に記載のシステム。
【請求項4】
エージェントが一方のソケット上のイニシエータと他方のソケット上のターゲットとの両方として構成されるように配置された、第2のソケットをさらに備える、請求項1に記載のシステム。
【請求項5】
前記情報がパケット化される、請求項1に記載のシステム。
【請求項6】
前記イニシエータは、前記第1のチャネルの順方向進行とは無関係に前記第2のチャネルの順方向進行を保証するようにさらに構成される、請求項1に記載のシステム。
【請求項7】
前記ターゲットは、前記第1および第2のチャネルの順方向進行とは無関係に前記第3のチャネルの順方向進行を保証するようにさらに構成される、請求項1に記載のシステム。
【請求項8】
前記情報がアドレス可能空間のラインを指す、請求項1に記載のシステム。
【請求項9】
前記ソケットは、アドレス変換サービスに関係する情報の通信を許容するようにさらに構成される、請求項1に記載のシステム。
【請求項10】
前記第2のチャネル上の少なくとも1つの情報がコマンド応答情報および介入要求情報を転送するように構成される、請求項1に記載のシステム。
【請求項11】
前記イニシエータは、前記コマンド応答を、前記コマンド要求が前記ターゲットに送られた順序とは異なる順序で受信するようにさらに構成される、請求項1に記載のシステム。
【請求項12】
前記ターゲットは、前記コマンド応答を、前記コマンド要求が前記イニシエータから送られた順序とは異なる順序で送るようにさらに構成される、請求項1に記載のシステム。
【請求項13】
前記コマンド応答が任意の順序で受信され得る、請求項1に記載のシステム。
【請求項14】
前記介入応答は、前記介入要求が送られた順序とは異なる順序で受信される、請求項1に記載のシステム。
【請求項15】
前記介入応答は任意の順序で受信され得る、請求項1に記載のシステム。
【請求項16】
キャッシュコヒーレンシに関係する情報を通信する方法であって、
ターゲットからイニシエータに第1のチャネル上で介入要求情報を転送するステップと、
前記イニシエータから前記ターゲットに第2のチャネル上で介入応答情報を転送するステップと、
前記イニシエータから前記ターゲットに第3のチャネル上でコマンド要求情報を転送するステップと、
前記第1のチャネル上でコマンド応答情報を転送するステップと
を備える方法。
【請求項17】
前記イニシエータは、前記第3のチャネル上で情報を送ることを待つことなしに前記第1のチャネル上で情報を受け付ける、請求項16に記載の方法。
【請求項18】
前記イニシエータは、前記第3のチャネル上で情報を送ることまたは前記第1のチャネル上で情報を受信することを待つことなしに、前記第2のチャネル上で情報を送る、請求項16に記載の方法。
【請求項19】
前記ターゲットは、前記第3のチャネル上で情報を受信することを待つことなしに前記第1のチャネル上で情報を送る、請求項16に記載の方法。
【請求項20】
前記ターゲットは、前記第3のチャネル上で情報を受信することまたは前記第1のチャネル上で情報を送ることを待つことなしに、前記第2のチャネル上で情報を受け付ける、請求項16に記載の方法。
【請求項21】
情報がパケット化される、請求項16に記載の方法。
【請求項22】
前記パケット化された情報は、コマンド応答情報と介入要求情報とを転送する少なくとも1つのパケットを備える、請求項21に記載の方法。
【請求項23】
イニシエータと、
ターゲットと、
前記イニシエータと前記ターゲットとの間の情報の通信を可能にするように構成されたソケットと
を備えるシステムであって、前記ソケットは、
第1のチャネルと、
第2のチャネルと、
第3のチャネルと
を備え、
前記イニシエータは、前記第1のチャネルを介してコマンド要求を送り、前記第2のチャネルを介してコマンド応答を受信するように構成され、
前記ターゲットは、前記第2のチャネルを介して介入要求を送り、前記第3のチャネルを介して介入応答を受信するように構成される、
システム。
【請求項24】
前記ターゲットがそれを介してイニシエータとして働くように構成された第2のソケットをさらに備える、請求項23に記載のシステム。
【請求項25】
前記イニシエータがそれを介してターゲットとして働くように構成された第2のソケットをさらに備える、請求項23に記載のシステム。
【請求項26】
エージェントが一方のソケット上のイニシエータと他方のソケット上のターゲットとの両方として構成されるように配置された、第2のソケットをさらに備える、請求項23に記載のシステム。
【請求項27】
前記情報がパケット化される、請求項23に記載のシステム。
【請求項28】
前記イニシエータは、前記第1のチャネルの順方向進行とは無関係に前記第2のチャネルの順方向進行を保証するようにさらに構成される、請求項23に記載のシステム。
【請求項29】
前記ターゲットは、前記第1および第2のチャネルの順方向進行とは無関係に前記第3のチャネルの順方向進行を保証するようにさらに構成される、請求項23に記載のシステム。
【請求項30】
前記情報がアドレス可能空間のラインを指す、請求項23に記載のシステム。
【請求項31】
前記ソケットは、アドレス変換サービスに関係する情報の通信を許容するようにさらに構成される、請求項27に記載のシステム。
【請求項32】
前記第2のチャネル上の少なくとも1つの情報がコマンド応答情報および介入要求情報を転送するように構成された、請求項23に記載のシステム。
【請求項33】
前記コマンド応答は、前記コマンド要求が送られた順序とは異なる順序で受信される、請求項23に記載のシステム。
【請求項34】
前記コマンド応答は任意の順序で受信される、請求項23に記載のシステム。
【請求項35】
前記介入応答は、前記介入要求が送られた順序とは異なる順序で受信される、請求項23に記載のシステム。
【請求項36】
前記介入応答は任意の順序で受信され得る、請求項23に記載のシステム。
【請求項37】
ソケットに結合されたソケットインターフェースと、ここで、前記ソケットは、第1のチャネルと、第2のチャネルと、第3のチャネルを備え、かつ前記ソケットは、キャッシュコヒーレンシ情報を搬送するように構成される、
前記第1のチャネル上でターゲットに1以上のコマンド要求を送り、
前記第2のチャネル上で前記ターゲットから1以上のコマンド応答及び1以上の介入要求を受信し、
前記第3のチャネル上で前記ターゲットに1以上の介入応答を送る
ように構成された1以上の論理構成要素と
を備える装置。
【請求項38】
イニシエータとターゲットとの間でキャッシュコヒーレンシ情報を通信する方法であって、
前記イニシエータから前記ターゲットへ、第1のチャネル上で1以上のコマンド要求を送ることと、
前記イニシエータにおいて、前記ターゲットから、第2のチャネル上で1以上のコマンド応答及び1以上の介入要求を受信することと、
前記イニシエータから前記ターゲットへ、第3のチャネル上で1以上の介入応答を送ることと
を備える方法。
【請求項39】
ソケットに結合されたソケットインターフェースと、ここで、前記ソケットは、第1のチャネルと、第2のチャネルと、第3のチャネルを備え、かつ前記ソケットは、キャッシュコヒーレンシ情報を搬送するように構成される、
前記第1のチャネル上でイニシエータから1以上のコマンド要求を受信し、
前記第2のチャネル上で前記イニシエータへ1以上のコマンド応答及び1以上の介入要求を送り、
前記第3のチャネル上で前記イニシエータから1以上の介入応答を受信する
ように構成された1以上の論理構成要素と
を備える装置。
【請求項40】
イニシエータとターゲットとの間でキャッシュコヒーレンシ情報を通信する方法であって、
前記ターゲットにおいて、第1のチャネル上で前記イニシエータから1以上のコマンド要求を受信することと、
前記ターゲットから前記イニシエータへ、第2のチャネル上で1以上のコマンド応答及び1以上の介入要求を送ることと、
前記ターゲットにおいて、第3のチャネル上で前記イニシエータから1以上の介入応答を受信することと
を備える方法。
【発明の詳細な説明】
【0001】
本出願は、各々が本明細書に組み込まれる、2011年10月26日に出願された発明者Jean−Jacques Leclerによる「A THREE-CHANNEL CACHE-COHERENCY SOCKET PROTOCOL」と題する米国仮出願第61/551,917号、および、2012年10月24日に出願された発明者Jean−Jacques Leclerによる「A THREE-CHANNEL CACHE-COHERENCY SOCKET PROTOCOL」と題する米国非仮出願第13/659,781号の優先権および利益を主張する。
【技術分野】
【0002】
本開示は、一般に、半導体技術の分野に関し、より詳細には、キャッシュコヒーレントエージェントをもつシステムオンチップに関する。
【背景技術】
【0003】
メモリマップシステムでは、CPU、GPU、または他のエージェントなどのイニシエータは、ターゲットメモリ中のデータのバイトの読取りおよび書込みを行うことによって動作する。いくつかのエージェントは、それらのデータへのアクセスを実際に得るためのレイテンシによって大きいペナルティを受ける。したがって、通常の手法は、それらが、キャッシュと称される、データのサブセットのローカル一時コピーを使用するためのものである。システムにおいてキャッシュが存在するとすぐに、システムは、メモリターゲットにデータが書き込まれないことを保証しなければならないが、いくらかの今後使われないデータは依然としてそのキャッシュに常駐する。この性質を保証する機構はキャッシュコヒーレンシと呼ばれる。
【0004】
潜在的に、異なる会社において、異なるチームによって様々な論理構成要素が設計され得るシステムでは、キャッシュコヒーレンシ情報が交換される方法を形式化することが重要である。システムオンチップ上で、オープンコアプロトコル(OCP:Open Core Protocol)インターナショナルパートナーシップによって促進されるOCP3.0、およびARMによって促進される高度マイクロコントローラアーキテクチャ(AMBA:Advanced Microcontroller Bus Architecture)高度拡張可能インターフェース(AXI:Advanced eXtensible Interface)コヒーレンシ拡張(ACE:Coherency Extensions)というプロトコルがキャッシュコヒーレンシを含む。集積回路間では、FSB(Intelによって促進されるフロントサイドバス(Front Side Bus))、QPI(Intelによって促進されるインテルクイックパス(Intel Quick Path))、および(HyperTransportコンソーシアムによって促進される)HyperTransportという他のプロトコルが提案されている。
【0005】
概してプロトコル、特にキャッシュコヒーレンシプロトコルは、それらを実装する論理ブロックに対して直接的または間接的結果を有する。他の側面には以下のものがある。
【0006】
1)プロトコル要件を満たすために必要とされる論理ゲートの量
2)最大到達可能周波数を妨害する、この論理の複雑さ
3)シリコンダイにわたる様々なエージェントの拡散によって誘起される遅延を処理する能力。
【0007】
4)システムのアーキテクチャ性能。
【0008】
5)設計バグのリスク
【発明の概要】
【0009】
本発明は、コヒーレンシを実装するための簡略化された手法である。それは、わずか3つのチャネルを使用するフルキャッシュコヒーレントソケットインターフェースを実装する。それは、必要とされる論理の量を低減する。論理はより単純であり、したがってより速く動作することができる。本発明は、大きく物理的に複雑なシステムのためにスケーラブルである。それは複雑な依存性をなくし、それによってアーキテクチャ性能を改善する。本発明はまた、より単純であり、それによって設計バグのリスクを低減する。全体として、開示する本発明は、システムオンチップ内の接続性の現代のネットワークオンチップ実装形態により良く適するコヒーレンシプロトコルである。
【図面の簡単な説明】
【0010】
【
図1】本発明の教示による、ソケットを介したイニシエータとターゲットとの間の通信をもつシステムを示す図。
【
図2】本発明の教示による、3つのチャネルをもつ
図1のシステムを示す図。
【
図3】本発明の教示による、要求がイニシエータによってターゲットに送られ、その後、応答がターゲットによってイニシエータに送られるコマンドトランザクションを示す図。
【
図4】本発明の教示による、要求がターゲットによってイニシエータに送られ、その後、応答がイニシエータによってターゲットに送られる介入トランザクションを示す図。
【
図5】本発明の教示による、コマンドの応答と介入の要求とが同じパケットによって搬送される、コマンドと介入とを含む自己介入を示す図。
【
図6】本発明の教示による、4つのDSPをもつシステムを示す図。
【0011】
次に
図1を参照すると、キャッシュコヒーレンシ情報を搬送するためにソケット16を介してターゲット14に接続されたイニシエータ12をもつシステム10が示されている。情報は、チャネルを介してイニシエータ12とターゲット14との間で搬送される。チャネルは、送信側が受信側に情報を送り得る情報転送のための単方向インターフェースであり、受信側は、送信側が情報を送るのを停止させることが可能である。
【0012】
ソケット16はいくつかのチャネルを備え、チャネルのいくつかについては、イニシエータ12が送信側として働き、ターゲット14が受信側として働き、チャネルのいくつかについては、ターゲット14が送信側として働き、イニシエータ12が受信側として働く。チャネルの通常の実装形態は以下を備える。
【0013】
信号が情報のワードを搬送する、送信側から受信側へのデータ信号、
情報のワードを搬送したいという送信側の要望を示す、送信側から受信側への有効信号、および
情報のワードを受け付けたいという受信側の意思を示す、受信側から送信側へのレディ信号。
【0014】
送信側と受信側の両方は、有効信号とレディ信号の両方が主張されたときに情報のワードが転送されることに同意する。受信側が、クレジットを介して、情報を受け付ける能力を送信側に示す実装形態、または複数のチャネルが同じ物理ワイヤ上で多重化される実装形態など、チャネルの他の実装形態が可能である。
【0015】
本発明の一態様によれば、プロトコルは3つのチャネルを使用する。ACE拡張をもつAXIプロトコルは、(AR、R、AW、W、B、AC、CR、およびCDと称される)8つのチャネルと、受信側が送信側によって与えられた情報を無条件に受け付けなければならない2つの縮退チャネル(RACK、WACK)とを使用する。OCP3.0のプロトコルは4つのチャネルを使用する。
【0016】
次に
図2を参照すると、開示するプロトコルは3つのチャネルを含む。アルファ(α)およびガンマ(γ)と称される、2つのチャネル20および22は、イニシエータ12からターゲット14に情報を転送するように適応される。ベータ(β)と称される1つのチャネル24は、ターゲット14からイニシエータ12に情報を転送するように適応される。チャネルを通過した情報は、通常、パケットにフレーム化され、それのプロセスはパケット化として知られている。パケットは、情報の1つまたは複数のワードからなる。
【0017】
多くのプロトコルの場合のように、イニシエータ12またはターゲット14は、何らかの動作を実行するためにそれのカウンターパートを要求し、カウンターパートは、動作が実際に実行されたことを後で確認する。そのような交換はトランザクションとして知られている。トランザクションは、一方向に流れる要求パケットと、反対方向に流れる応答パケットとを備える。トラフィックがトランザクションのみからなるプロトコルは、興味深い性質を与える。たとえば、開闢以来参照された要求パケットの数と応答パケットの数との間の差を計数することによって、何かが「飛行中」であるかどうかを低コストで判断することが常に可能である。
【0018】
次に
図3を参照すると、コマンドと呼ばれるトランザクション30は、イニシエータからターゲットにチャネル20を介して送られた要求パケットと、ターゲットからイニシエータにチャネルβ24を介して送られた応答パケットとを含む。要求がイニシエータ12からターゲット14に進む(したがって応答がターゲット14からイニシエータ12に進む)トランザクションはコマンドと呼ばれる。
【0019】
次に
図4を参照すると、介入と呼ばれるトランザクション40が示されている。要求は、チャネルβ24を介してターゲット14からイニシエータ12に流れる。応答は、チャネルγ22を介してイニシエータ12からターゲット14に流れる。
【0020】
次に
図5を参照すると、トランザクション50が示されている。最初に、イニシエータ12からターゲット14へのコマンド要求がチャネル20を介して送られる。次に、本発明の一態様によれば、パケットがチャネルβ24上でターゲット14からイニシエータ12に送られる。パケットは、同時にコマンド応答と介入要求とを備える。最後に、介入応答パケットがチャネルγ22上でイニシエータ12からターゲット14に送られる。そのような結合されたコマンドと介入は自己介入と呼ばれる。
【0021】
キャッシュコヒーレントシステムでは、アドレス空間は、通常、ラインと呼ばれる所与のグラニュラリティに分割される。ラインサイズは、通常、アドレス空間の2のべき乗連続バイトである。ソケットインターフェースは、概して、トランザクション分割と、トランザクション順序付けと、部分応答順序付けとのためのサポートを必要とし得るが、これらのうちのいずれも、イニシエータとしてキャッシュをもつシステムの実装形態に不可欠ではない。本発明による、最適化されたソケットインターフェースは、非コヒーレントトランザクションの要件のためのサポートがないことによって論理を簡略化した。本発明の実施形態は、分割論理と、順序付け論理と、部分応答順序付け論理とのうちの1つまたは複数のサポートを回避する。
【0022】
本発明の教示によれば、より小さい数(わずか3つ)のチャネルを使用することは、既存の標準プロトコルに勝るいくつかの利益および利点を有する。あらゆるチャネルが独立したフロー制御を有するので、ある量の論理およびデータバッファリングが各チャネルのために与えられなければならない。このコストは、より少ないチャネルを有することによって最小限に抑えられる。さらに、所与のチャネル中のパケットは当然順序付けられているが、チャネル間のパケットは論理競合状態を有することになりやすい。そのような競合状態を防ぐことは、上位レイヤプロトコルにおいてより大きい複雑さを必要とする。これは、共有コマンド応答および介入要求チャネルによって保証される順序付けによって回避される。
【0023】
たとえば、たいていのキャッシュコヒーレンシプロトコルにおいて、イニシエータはラインの所有権を獲得し得、ターゲットは、イニシエータがこの所有権を解放することを要求し得る。ACEにおいて、所有権は「R」チャネルを介して転送され、「AC」チャネルを介して解放される。これは、ラインの所有権がイニシエータに到着したことを、したがって「RACK」擬似チャネルの存在についてターゲットが確信するまで、ターゲットがラインの解放を要求するのを制限するという特定のルールをプロトコルにおいて必要とする。結果として、ACEターゲットは、イニシエータに現在与えられている所有権のコンテキストを維持し、対応する解放を要求するのを控えなければならない。フルスループットで動作するために、このテーブルは、(Rを介して)ターゲットからイニシエータにそして(RACKを介して)ターゲットに戻るラウンドトリップ時間に比例するいくつかのコンテキストを含むことが可能でなければならない。特定の状況では、このラウンドトリップを延長する、イニシエータとターゲットとの間を横断するクロック領域を導入することが望ましいことがある。「AC」チャネル上の介入要求は、最初にこのコンテキストテーブルを検索しなければならない。ある実装形態では、この必要なルックアップは完全追加遅延サイクルを要し得る。
【0024】
OCP3.0プロトコルによれば、所有権は、コマンド応答チャネルを介して転送され、異なる介入要求チャネルを介して解放される。レースを回避するために、OCPは、イニシエータによって放出されたコマンドがターゲットを介して実際にそれ自体にループバックされる自己介入を使用する。それによって、イニシエータは、システムの残部とそれ自体の自己介入とから来る介入の相対的順序付けを検出することが可能である。本発明によれば、OCP3.0自己介入によって作成されるトラフィックオーバーヘッドは回避される。
【0025】
OCP3.0では、あらゆるコマンドが、目的を順序付けるための自己介入を生成する。本発明では、コマンド応答と介入要求との相対的順序付けが、たいていの自己介入を不要にする。しかしながら、いくつかの自己介入は、
図5に示すように、興味深いプロパティを有する。たとえば、ACEにおいて、イニシエータは、転送がイニシエータによって開始されるかまたはターゲットによって開始されるかに依存する2つの異なる機構を介して、ローカルで変更された(通常「ダーティーな」と呼ばれる)データをターゲットに戻し得る。それ自体によって開始されるとき、イニシエータはAWチャネル上で「WriteBack」コマンドを要求し、後に「B」チャネル上で応答を受信する。ターゲットによって開始されるとき、イニシエータは「AC」チャネルを介して介入要求を受信し、「CR」チャネルを介して応答する。ターゲット開始追い立てがキャッシュコヒーレントシステムに存在しなければならないとき、本発明は、イニシエータ開始追い立てのためにこの必要な機構を再利用する。自己介入はこれを単純にし、イニシエータは、イニシエータからラインを追い立てることをターゲットに要求するコマンド要求を送る。ターゲットからのコマンド応答も、ラインの追い立てを要求する介入要求である。
【0026】
デッドロックの可能性を回避するために、複雑な、遅い、誤りを起こしやすい論理を必要とする多くの複雑なルールが、論理の設計者によって、多くのチャネルプロトコルとインターフェースするターゲット側またはイニシエータ側のソケット上に実装される必要がある。本発明において、情報は、α、β、γを介してその順序で流れる。イニシエータはα上のフロー制御の結果としてβ上の順方向進行を防ぐことを許されないという単純なルールと、ターゲットはβ上のフロー制御の結果としてγ上の順方向進行を防ぐことを許されないという単純なルールとを用いて、トランスポートレベルのデッドロックのリスクが回避される。さらに、ルールは、形式的プロパティ―チェッカーによって検証されるのに十分単純である。
【0027】
また、いくつかのシステムでは、キャッシュコヒーレントエージェントをカスケードにすることが望ましい。これは、たとえば、相互接続複数オンチップスイッチファブリックのために有用であり得る。そうするために、一方の側にイニシエータソケットインターフェース、反対側にターゲットソケットインターフェースを有するエージェントを必要とする。そのようなエージェントは、内部キャッシュを備え得る。カスケードキャッシュコヒーレントシステムは、従来のプロトコルの複雑な順序付けルールを用いて実行不可能である。たとえば、順序ルールを維持するために、スヌープミスに続くスヌープヒットは、スヌープミス応答が戻されるまで待たなければならない。これは時間がかかり、システム性能に有害である。本発明は、カスケードキャッシュコヒーレントソケットの実際的実装形態を生成する。
【0028】
次に
図6を参照すると、4つのDSPプロセッサのシステム60はスイッチファブリック62に接続され、スイッチファブリック62はまた、RAM64と内部キャッシュ66とに接続される。内部キャッシュ66は第2のスイッチファブリック68に接続され、第2のスイッチファブリック68は、2つのCPUのシステム70に接続され、ダウンストリームバッキングストアアクセスを管理する。任意の2つの接続された要素は、3チャネルキャッシュコヒーレンシプロトコルを使用して、コマンド要求と、コマンド応答と、介入要求と、介入応答とを実行し得る。
【0029】
現代のシステムでは、実際のイニシエータによって使用されるアドレスは、通常、物理的メモリのアドレスではない。イニシエータによって使用されるアドレスは仮想アドレス(VA)と呼ばれ、メモリによって使用されるアドレスは物理アドレス(PA)と呼ばれる。キャッシュコヒーレントシステムでは、仮想から物理へのアドレス変換は、キャッシュ階層の上流で行われなければならない。これは、変換索引バッファ(TLB)と呼ばれる直近の変換のキャッシュによって行われる。TLBは、それの変換が未知であるアクセスに遭遇したとき、変換について要求しなければならない。「ページテーブル」と呼ばれるデータ構造では、所与のアドレスの実際の仮想から物理への変換を計算することは、メモリにおけるいくつかの連続アクセスを必要とする。その変換を行う論理は、ページテーブルを移動するので、時々「ウォーカー」と呼ばれる。各ステップがより短いほどウォーカーはより高速に動作し、したがって、ウォーカーは、メモリに近い、キャッシュ階層の下流に配置される傾向がある。TLBとウォーカーとが離れているとき、それらは通信しなければならない。交換は、アドレス変換サービス(ATS)と呼ばれることがある。
【0030】
ATSは、TLBがウォーカーからのアドレス変換を要求する交換と、ウォーカーがいくつかの前に確立された変換の無効化を要求する他の交換とを備える。本発明は、変換要求のためのコマンドと無効化要求のための介入とを使用して、効率的にアドレス変換サービスをトランスポートすることが可能である。
【0031】
本発明の様々な態様による、イニシエータまたはターゲットなど、説明する構成要素のうちの少なくとも1つは製造品である。製造品の例としては、サーバ、メインフレームコンピュータ、携帯電話、携帯情報端末、パーソナルコンピュータ、ラップトップ、セットトップボックス、MP3プレーヤ、電子メール使用可能なデバイス、タブレットコンピュータ、1つまたは複数のプロセッサを有するウェブ対応デバイス、またはデータを受信し、データを送信し、データを記憶し、または方法を実行するためのアルゴリズム(たとえば、コンピュータ可読プログラムまたはソフトウェア)を実行するように構成された他の専用コンピュータ(たとえば、中央処理ユニット、グラフィカル処理ユニット、またはマイクロプロセッサ)がある。例として、イニシエータおよび/またはターゲットはそれぞれ、1つまたは複数のステップを実行するために、非一時的コンピュータ可読媒体上の符号化されたコンピュータ可読プログラムコードを実行するプロセッサを含むコンピューティングデバイスの一部である。
【0032】
本発明は、説明した特定の実施形態または態様に限定されず、したがって変化し得ることを理解されたい。また、本発明の範囲は添付の特許請求の範囲によってのみ限定され、明細書で使用する用語は、特定の実施形態について説明するためのものにすぎず、限定するものではないことを理解されたい。
【0033】
チャネルの数またはチップの数またはモジュールの数など、値の範囲が与えられた場合、その範囲の上限と下限との間の各介在値と、その示された範囲内の他の示された値または介在値とが本発明内に包含されることを理解されたい。これらのより小さい範囲の上限および下限は、これらのより小さい範囲に独立して含まれ得、また、示された範囲内の明確に除外された限界を条件として、本発明内に包含される。示された範囲が限界の一方または両方を含む場合、それらの含まれる限界のいずれかまたは両方を除外する範囲も本発明に含まれる。
【0034】
別段に定義されていない限り、本明細書で使用するすべての技術用語および科学用語は、本発明が属する当業者によって一般に理解されるのと同じ意味を有する。また、明細書で説明するものと同様または同等な任意の方法および材料が、本発明の実施または試験において使用され得る。
【0035】
本明細書において引用されるすべての公開および特許は、各個々の公開または特許が明確に個々に参照により組み込まれることが示されたように参照によって本明細書に組み込まれ、公開がそれとともに引用される方法および/または材料を開示および説明するために参照によって本明細書に組み込まれる。公開の引用は、出願日より前のそれの開示についてであり、先行発明によってそのような公開よりも前の日付にする権利が本発明にないことの承認として解釈されてはならない。さらに、提供した公開日は、実際の公開日付とは異なることがあり、別個に確認される必要があり得る。
【0036】
本明細書および添付の特許請求の範囲で使用する単数形「a」、「an」、および「the」は、文脈が別段に明確に規定しない限り、複数の指示対象を含むことに留意されたい。特許請求の範囲が、任意の随意の要素を除外するために作成され得ることにさらに留意されたい。したがって、この文は、請求項要素の具陳に関する「単に」「のみ」などのような排他的用語の使用、または「否定」限定の使用のための先の記載として提供するものである。
【0037】
本開示を読めば当業者に明らかであるように、本明細書で説明し例示した個々の実施形態の各々は、容易に本発明の範囲または趣旨から逸脱することなく他のいくつかの実施形態のいずれかの特徴から分離され、またはそれと組み合わされ得る個別構成要素および特徴を有する。具陳された方法は、具陳されたイベントの順序または論理的に可能である他の順序で行われ得る。
【0038】
上記の発明について、理解の明快のために例示および例としてある程度詳細に説明したが、添付の特許請求の範囲の趣旨または範囲から逸脱することなく、いくつかの変更および改変がそれに行われ得ることは、本発明の教示に照らして当業者に直ちに明らかになる。
【0039】
したがって、上記は本発明の原理を示すものにすぎない。本明細書では明示的に説明または図示していないが、本発明の原理を実施し、その趣旨および範囲内に含まれる様々な構成を、当業者なら考案することができることを諒解されよう。さらに、本明細書に具陳するすべての例および条件付き言語は、主に、技術を進めるために読者が本開示の原理と発明者によって与えられた概念とを理解するのを助けるためのものであり、そのような明確に具陳する例および条件に限定されないものと解釈されるべきである。さらに、本発明の原理、態様、および実施形態、ならびに本発明の特定の例を記載する本明細書のすべての記述は、本発明の構造的均等物と機能的均等物の両方を包含するものする。さらに、そのような均等物は、現在知られている均等物と将来開発される均等物の両方、すなわち、構造にかかわらず同じ機能を実行する開発されるどんな要素をも含むものとする。本発明の範囲は、したがって、本明細書で図示および説明した例示的な実施形態に限定されるものではない。そうではなく、本発明の範囲および趣旨は、添付の特許請求の範囲によって具現される。
以下に、本願の当初の特許請求の範囲に記載された発明を付記する。
[1]
イニシエータと、
ターゲットと、
前記イニシエータと前記ターゲットとの間の情報の通信を可能にするソケットと
を備えるシステムであって、前記ソケットが、
第1のチャネルと、
第2のチャネルと、
第3のチャネルと
を備え、
前記ソケットが、キャッシュコヒーレンシに関係する情報の通信を可能にする、
システム。
[2]
前記ターゲットがそれを介してイニシエータとして働く第2のソケットをさらに備える、[1]に記載のシステム。
[3]
前記イニシエータがそれを介してターゲットとして働く第2のソケットをさらに備える、[1]に記載のシステム。
[4]
エージェントが一方のソケット上のイニシエータと他方のソケット上のターゲットとの両方であるように配置された、第2のソケットをさらに備える、[1]に記載のシステム。
[5]
前記情報がパケット化される、[1]に記載のシステム。
[6]
前記イニシエータが、前記第1のチャネルの順方向進行とは無関係に前記第2のチャネルの順方向進行を保証する、[1]に記載のシステム。
[7]
前記ターゲットが、前記第1および第2のチャネルの順方向進行とは無関係に前記第3のチャネルの順方向進行を保証する、[1]に記載のシステム。
[8]
前記情報がアドレス可能空間のラインを指す、[1]に記載のシステム。
[9]
前記ソケットがまた、アドレス変換サービスに関係する情報の通信を可能にする、[1]に記載のシステム。
[10]
前記イニシエータが、前記第1のチャネルを介してコマンド要求を送り、前記第2のチャネルを介してコマンド応答を受信し、
前記ターゲットが、前記第2のチャネルを介して介入要求を送り、前記第3のチャネルを介して介入応答を受信する、[1]に記載のシステム。
[11]
前記第2のチャネル上の同じ情報がコマンド応答としておよび介入要求として同時に見なされる、[10]に記載のシステム。
[12]
前記コマンド応答は、前記コマンド要求が送られた前記順序とは異なる順序で受信される、[10]に記載のシステム。
[13]
前記コマンド応答は、前記コマンド要求が送られた前記順序とは異なる順序で受信される、[10]に記載のシステム。
[14]
前記コマンド応答が任意の順序で受信され得る、[10]に記載のシステム。
[15]
前記介入応答は、前記介入要求が送られた前記順序とは異なる順序で受信される、[10]に記載のシステム。
[16]
前記介入応答が任意の順序で受信され得る、[10]に記載のシステム。
[17]
前記イニシエータが、前記第1のチャネルを介してコマンド要求を送り、前記第2のチャネルを介してコマンド応答を受信する、[1]に記載のシステム。
[18]
前記コマンド応答は、前記コマンド要求が送られた前記順序とは異なる順序で受信され得る、[17]に記載のシステム。
[19]
前記コマンド応答が任意の順序で受信され得る、[17]に記載のシステム。
[20]
前記ターゲットが、前記第2のチャネルを介して介入要求を送り、前記第3のチャネルを介して介入応答を受信する、[1]に記載のシステム。
[21]
前記介入応答は、前記介入要求が送られた前記順序とは異なる順序で受信され得る、[20]に記載のシステム。
[22]
前記介入応答が任意の順序で受信され得る、[20]に記載のシステム。
[23]
キャッシュコヒーレンシに関係する情報を通信する方法であって、
ターゲットからイニシエータに第1のチャネル上で介入要求情報を転送するステップと、
前記イニシエータから前記ターゲットに第2のチャネル上で介入応答情報を転送するステップと、
前記イニシエータから前記ターゲットに第3のチャネル上でコマンド要求情報を転送するステップと、
前記第1のチャネル上でコマンド応答情報を転送するステップと
を備える方法。
[24]
前記イニシエータが、前記第3のチャネル上で情報を送ることを待つことなしに前記第
1のチャネル上で情報を受け付ける、[23]に記載の方法。
[25]
前記イニシエータが、前記第3のチャネル上で情報を送ることまたは前記第1のチャネル上で情報を受信することを待つことなしに、前記第2のチャネル上で情報を送る、[23]に記載の方法。
[26]
前記ターゲットが、前記第3のチャネル上で情報を受信することを待つことなしに前記第1のチャネル上で情報を送る、[23]に記載の方法。
[27]
前記ターゲットが、前記第3のチャネル上で情報を受信することまたは前記第1のチャネル上で情報を送ることを待つことなしに、前記第2のチャネル上で情報を受け付ける、[23]に記載の方法。
[28]
情報がパケット化される、[23]に記載の方法。
[29]
1つのパケットがコマンド応答情報と介入要求情報とを転送する、[28]に記載の方法。
[30]
イニシエータと、
ターゲットと、
前記イニシエータと前記ターゲットとの間の情報の通信を可能にするソケットと
を備えるシステムであって、前記ソケットが、
第1のチャネルと、
第2のチャネルと、
第3のチャネルと
を備え、
前記イニシエータが、前記第1のチャネルを介してコマンド要求を送り、前記第2のチャネルを介してコマンド応答を受信し、
前記ターゲットが、前記第2のチャネルを介して介入要求を送り、前記第3のチャネルを介して介入応答を受信する、
システム。
[31]
前記ターゲットがそれを介してイニシエータとして働く第2のソケットをさらに備える、[30]に記載のシステム。
[32]
前記イニシエータがそれを介してターゲットとして働く第2のソケットをさらに備える、[30]に記載のシステム。
[33]
エージェントが一方のソケット上のイニシエータと他方のソケット上のターゲットとの両方であるように配置された、第2のソケットをさらに備える、[30]に記載のシス
テム。
[34]
前記情報がパケット化される、[30]に記載のシステム。
[35]
前記イニシエータが、前記第1のチャネルの順方向進行とは無関係に前記第2のチャネルの順方向進行を保証する、[30]に記載のシステム。
[36]
前記ターゲットが、前記第1および第2のチャネルの順方向進行とは無関係に前記第3のチャネルの順方向進行を保証する、[30]に記載のシステム。
[37]
前記情報がアドレス可能空間のラインを指す、[30]に記載のシステム。
[38]
前記ソケットがまた、アドレス変換サービスに関係する情報の通信を可能にする、[30]に記載のシステム。
[39]
前記第2のチャネル上の同じ情報がコマンド応答としておよび介入要求として同時に見なされる、[30]に記載のシステム。
[40]
前記コマンド応答は、前記コマンド要求が送られた前記順序とは異なる順序で受信される、[30]に記載のシステム。
[41]
前記コマンド応答が任意の順序で受信される、[30]に記載のシステム。
[42]
前記介入応答は、前記介入要求が送られた前記順序とは異なる順序で受信される、[30]に記載のシステム。
[43]
前記介入応答が任意の順序で受信され得る、[30]に記載のシステム。