JP2010507160A - データ処理装置の共有メモリへの書込みアクセス要求の処理 - Google Patents
データ処理装置の共有メモリへの書込みアクセス要求の処理 Download PDFInfo
- Publication number
- JP2010507160A JP2010507160A JP2009532879A JP2009532879A JP2010507160A JP 2010507160 A JP2010507160 A JP 2010507160A JP 2009532879 A JP2009532879 A JP 2009532879A JP 2009532879 A JP2009532879 A JP 2009532879A JP 2010507160 A JP2010507160 A JP 2010507160A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data
- coherency
- write access
- shared memory
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
Abstract
共有メモリへの書込みアクセスを処理するためにデータ処理装置と方法を提供する。データ処理装置は、共有メモリ内のデータへのアクセスを要求するデータ処理操作を実行するための複数の演算処理装置を有し、各演算処理装置は、該演算処理装置によるアクセスのためにデータのサブセットを格納することができる、それに関連付けられたキャッシュを有する。各演算処理装置によりアクセスされるデータが最新であることを保障するために、キャッシュ・コヒーレンシー・プロトコルを用いたキャッシュ・コヒーレンシー論理が提供される。各演算処理装置は、共有メモリ内に格納するためのデータ値を出力する際に、書込みアクセス要求を発行し、その書込みアクセス要求が、関連付けられたキャッシュ及び共有メモリの両方の更新を要求する種類のものである場合に、コヒーレンシー操作が、キャッシュ・コヒーレンシー論理内で開始される。次に、キャッシュ内のデータがコヒーレントを保つことを保障するために、書込みアクセス要求を発行する演算処理装置に関連付けられたキャッシュを含む、複数の演算処理装置に関連付けられた全てのキャッシュに関してコヒーレンシー操作を行う。更に、キャッシュ・コヒーレンシー論理は、書込みアクセス要求の対象となる各データ値に関して、共有メモリに更新要求を発行することができる。このような方法は、特に、複雑度を増すことなく、又、発行元の演算処理装置とそれに関連付けられたキャッシュのアクセスタイミングに影響を与えることなく、書込みアクセス要求の正確な動作を保障するための簡単で効率的な機構を提供する。
Description
特許出願は、データ処理装置の共有メモリへの書込みアクセス要求の処理に関する。
2つあるいはそれ以上の数の処理ユニット、例えば、プロセッサ・コアが、共有メモリへのアクセスを共有するマルチ・プロセッシング・システムを提供することが知られている。このようなシステムは、通常、複数の異なるプロセッサ・コアを配置して、各々のデータ処理操作を並列して実行することにより、高速性能を得るために用いられる。このようなマルチ・プロセッシング機能を提供する既知のデータ処理システムとしては、IBM370システムとSPARCマルチ・プロセッシング・システムがある。これらの特定のマルチ・プロセッシング・システムは、電力効率と電力消費にはほとんど着目せず、その主目的が処理速度を最大化することにあるような高性能システムである。
このようなマルチ・プロセッシング・システムにおいて、データへのアクセス速度を更に向上させるために、共有メモリに保持されるデータのサブセットを格納する専用のローカルキャッシュを、演算処理装置の各々に設けることが知られている。これにより、データへのアクセス速度は向上できるものの、データのコヒーレンシーに関する問題が複雑なものとなる。特に、特定のプロセッサが、そのローカルキャッシュに保持されたデータ値に関して、書込み操作を行なった場合、そのデータ値は、キャッシュ内でローカルに更新されるが、その値は、必ずしも共有メモリ内では同時に更新されることはない。特に、問題となっているデータ値が、メモリのライトバック領域にある場合には、後でキャッシュからデータ値が消去された時に、キャッシュ内で更新されたデータ値が、共有メモリに書き戻されるだけである。
データは、他のプロセッサと共有されるため、共有メモリ内の関連するアドレスにアクセスしようとする際に、これらのプロセッサが、最新のデータにアクセスすることを保障することが重要である。これを保障するために、特定のプロセッサが、そのローカルキャッシュに保持されたデータ値を更新した際に、そのデータへのアクセスを後で要求する任意の他のプロセッサにおいて、その最新データが利用可能となることを保障するために、マルチ・プロセッシング・システム内でキャッシュ・コヒーレンシー・プロトコルを用いることが知られている。
通常のキャッシュ・コヒーレンシー・プロトコルによれば、プロセッサにより行われる何らかのアクセスは、コヒーレンシーを維持する操作を行うことを要求するものとなる。コヒーレンシーを維持する操作により、発生したアクセスの種類とアクセスされているアドレスとを特定する通知が、他のプロセッサに送られる。これにより、これらの他のプロセッサは、キャッシュ・コヒーレンシー・プロトコルにより定義された何らかの動作を行い、また、ある場合には、これらのプロセッサの一つあるいはそれ以上のものから、コヒーレンシーを維持する操作を要求するアクセスを開始したプロセッサに対して、何らかの情報がフィードバックされる結果となる。このような方法により、様々なローカルキャッシュに保持されたデータのコヒーレンシーが維持され、各プロセッサが最新のデータにアクセスすることを保障する。このようなキャッシュ・コヒーレンシー・プロトコルの一つとして、“修正(Modified)、排他(Exclusive)、共有(Shared)、無効(Invalid)”(MESI)キャッシュ・コヒーレンシー・プロトコルがある。
データの特定の要素が、一つのプロセッサのみによって排他的に利用されることを保障できた場合には、そのプロセッサが当該データにアクセスする際には、コヒーレンシーを維持する操作は不要となる。しかし、通常のマルチ・プロセッシング・システムでは、データが、一般的に共有されたデータに属していたり、マルチ・プロセッシング・システムが、プロセッサ間でプロセッサを切り替えることや、実際に、特定のプロセスを複数のプロセッサで並列して実行することを可能とするため、プロセッサ間のプロセスデータの多くが共有メモリ間で共有され、その結果、特定のプロセスに固有のデータであっても、そのデータが、特定のプロセッサによって排他的に利用されるという保障はない。
キャッシュ・コヒーレンシー・プロトコルを利用して、各演算処理装置が、最新のデータにアクセスすることは保障されるものの、メモリを共有する複数の演算処理装置を有するシステムでは、その取り扱いが複雑なものとなるような種類のアクセスが存在する。例えば、共有メモリの領域が、ライトスルー領域として指定され、特定の演算処理装置により、その共有メモリのライトスルー領域への書込みアクセス要求が行われた場合には、書込みアクセス要求の発行元となった演算処理装置のキャッシュにおいて、何らかの更新が行われた際には、メモリを更新する必要がある。マルチ・プロセッシング・システムにおいてこのような更新を行うことは、多くの危険性を伴う。関連するローカルキャッシュのキャッシュ制御論理が、正確に動作することを保障するためには、キャッシュと共有メモリの更新がアトミックな方法で行われることを保障するために、その論理の複雑度や、キャッシュへのアクセスでの大幅な遅延を更に増やしてしまう論理を付加する必要がある。更新操作を行っている最中に、他の読出し又は書込みアクセスが、同じデータ位置にアクセスしないように、このアトミック操作は、読出し又は書込み操作に何ら干渉せずに、完全に行わなければならない。
共有メモリのライトスルー領域への書込みアクセス要求を処理している際に起こりうる危険性の種類の一例としては、第一の書込みがキャッシュにヒットし、それがキャッシュ・コヒーレンシー論理により処理され、そのためプロセッサ・コア内では保留状態となる状況がある。その処理が行われている際には、第一の書込みに重なる位置に対して、第二の書込みが発行される。第一の書込みが保留状態となっている間に第二の書込みを処理する標準的な方法は、適用可能な場合に、2つのアクセスを1つにマージすることである。この方法は、省電力(コヒーレンシー論理がその動作を完了した時点で、一つのみの書込みをキャッシュに対して行うこと)を行い、性能を向上させる(2つの書込みを1つにマージすることにより、単一の“スロット”が2つのメモリアクセスに利用可能となり、それにより、後のいくつかのメモリアクセスのために、いくつかのリソースを開放できる)ために、多く用いられる。
しかし、1つにマージする方法は、これらの書込みの対象が、共有可能なメモリ領域である場合には、コヒーレンシー論理によって第一の書込みが二度発行させられてしまうため、この方法は使うことができない。第一の書込みが完了し、メモリが更新された時には、第二の書込みは、少なくともメモリを更新するために、コヒーレンシー論理によってまだ処理中である。これらの2つの書込みが1つにマージされてしまったため、第二のコヒーレンシー動作(及び、第二のメモリ更新)は、実質的に、これら2つの書込みをマージしたものから構成され、その結果、メモリへの第一の書込みが繰り返されるものとなる。これは、メモリの秩序あるモデルを乱すことになり、従って、それを防止しなければならない。
このような二重書込みを防ぐために、第一の方法は、このようなマージを防ぐための何らかの論理(従って、何らかの複雑度が増すもの)を付加することから構成される。このような複雑度が増すことを避けるための、他の可能な方法は、このようなマージが起こらないようにして、標準的な場合であっても、性能と電力消費に及ぶ影響を防ぐことである。
このようなコヒーレントなライトスルー書込みアクセスの提供に伴う、更に増した複雑度や危険性があると、キャッシュのコヒーレンスを維持する能力を有するプロセッサを提供する多くのシステムは、このような動作をサポートする見込みはなくなり、共有メモリに対するライトスルー書込みアクセスを可能とする選択肢を失ってしまう。しかし、このような立場を取ったとしても、同様の危険性を引き起こしてしまう他の種類のアクセスが依然として存在する。特に、特定のプロセッサ、又は、そのプロセッサ上で実行される特定のプロセスにより、共有メモリの領域をキャッシュ不可の領域として指定し、そのキャッシュ不可の領域に対して書込みアクセスを行うこともできる。キャッシュ不可の領域への書込みアクセスに関しては、キャッシュ内でルックアップを行う必要はないものと仮定することができる。しかし、プロセッサが、キャッシュ不可の領域を利用する場合、プロセッサ自身は、そのキャッシュ不可の領域に属する何らのデータを、キャッシュに割り付けることはないものとなる。しかし、ローカルキャッシュにアクセス可能でもある互いに蜜結合したコプロセッサを含む、システムの他のプロセッサは、異なるメモリの見え方となり、特に、1つのプロセッサからはキャッシュ不可の領域として見える領域は、他のプロセッサからはキャッシュ不可の領域ではないように見える領域となる場合がある。更に、同一のプロセッサで実行される異なるプロセスは、異なるメモリマップを用いることができ、それにより、キャッシュ不可の領域に対する書込みアクセス要求の対象となるデータが、実際にキャッシュ内に存在することも可能となる。
以上より、共有メモリへの、キャッシュ不可の領域に対する書込みアクセスを処理する際には、通常、キャッシュ内のルックアップが必要となり、その結果、処理する要求のある動作は、上述したような、コヒーレントなライトスルー書込みアクセスと極めて似たものであるといえる。しかし、共有メモリに対する、コヒーレントなライトスルー書込みアクセスをサポートしないと判断した場合であっても、共有メモリへの、キャッシュ不可の領域に対する書込みアクセスを処理するためには、何らかの機能を提供する必要がある。しかし、特に、共有メモリへの、キャッシュ不可の領域に対する書込みアクセスが、キャッシュにヒットすることが、多くの場合そうであるように、実際に起こる見込みは極めて低いならば、このような機能の導入は、導入される付加的な複雑度及び/又は付加的に生じるアクセス遅延の観点からは、極めて高価なものとなる。
従って、発行元となる演算処理装置のキャッシュ及び共有メモリの両方の更新を要求する種類の書込みアクセス要求に関して、正しい動作を可能とするための、コスト効果のより高い解決策を提供することが望まれている。
本発明の第一の態様に関して、本発明は、データ処理装置を提供するものであり、
該データ処理装置は、
共有メモリ内のデータへのアクセスを要求するデータ処理操作を実行することができる複数の演算処理装置であって、各演算処理装置は、該演算処理装置によるアクセスのために前記データのサブセットを格納することができる、それに関連付けられたキャッシュを有する演算処理装置と、
各演算処理装置によりアクセスされるデータが最新であることを保障する、キャッシュ・コヒーレンシー・プロトコルを用いたキャッシュ・コヒーレンシー論理を含むデータ処理装置であって、
各演算処理装置は、前記共有メモリ内に格納するためのデータ値を出力する際に、書込みアクセス要求を発行するように動作することができ、該書込みアクセス要求が、関連付けられたキャッシュ及び共有メモリの両方の更新を要求する種類のものである場合に、コヒーレンシー操作が、キャッシュ・コヒーレンシー論理内で開始され、
該キャッシュ・コヒーレンシー論理は、キャッシュ内のデータがコヒーレントを保つことを保障するために、書込みアクセス要求を発行する演算処理装置に関連付けられたキャッシュを含む、複数の演算処理装置に関連付けられた各々のキャッシュに関してコヒーレンシー操作を行い、
更に、該キャッシュ・コヒーレンシー論理は、書込みアクセス要求の対象となるデータ値に関して、前記共有メモリに更新要求を発行するデータ処理装置である。
該データ処理装置は、
共有メモリ内のデータへのアクセスを要求するデータ処理操作を実行することができる複数の演算処理装置であって、各演算処理装置は、該演算処理装置によるアクセスのために前記データのサブセットを格納することができる、それに関連付けられたキャッシュを有する演算処理装置と、
各演算処理装置によりアクセスされるデータが最新であることを保障する、キャッシュ・コヒーレンシー・プロトコルを用いたキャッシュ・コヒーレンシー論理を含むデータ処理装置であって、
各演算処理装置は、前記共有メモリ内に格納するためのデータ値を出力する際に、書込みアクセス要求を発行するように動作することができ、該書込みアクセス要求が、関連付けられたキャッシュ及び共有メモリの両方の更新を要求する種類のものである場合に、コヒーレンシー操作が、キャッシュ・コヒーレンシー論理内で開始され、
該キャッシュ・コヒーレンシー論理は、キャッシュ内のデータがコヒーレントを保つことを保障するために、書込みアクセス要求を発行する演算処理装置に関連付けられたキャッシュを含む、複数の演算処理装置に関連付けられた各々のキャッシュに関してコヒーレンシー操作を行い、
更に、該キャッシュ・コヒーレンシー論理は、書込みアクセス要求の対象となるデータ値に関して、前記共有メモリに更新要求を発行するデータ処理装置である。
本発明によれば、データ処理装置の他の演算処理装置に関連付けられたキャッシュ内のデータが最新であることを保つことを保障するために、すでに提供されたキャッシュ・コヒーレンシー論理により、関連付けられたキャッシュ及び共有メモリの両方の更新を要求する種類の書込みアクセス要求を、効率的に処理する機能が実現される。特に、発行元となる演算処理装置が、関連付けられたキャッシュ及び共有メモリの両方の更新を要求する種類の書込みアクセス要求を発行する際に、コヒーレンシー論理においてコヒーレンシー操作が開始される。システム内の他の演算処理装置に関連付けられたキャッシュに対して、キャッシュ・コヒーレンシー論理がコヒーレンシー操作を行うという通常の動作に加えて、キャッシュ・コヒーレンシー論理は、発行元となる演算処理装置に関連付けられた各キャッシュに対してもコヒーレンシー操作を行い、その結果、これらのキャッシュの全てのデータがコヒーレントとなる。また、キャッシュ・コヒーレンシー論理は、書込みアクセス要求の対象となるデータ値に関して、前記共有メモリに更新要求を発行するように構成されており、それにより、共有メモリへの更新要求が行われることを保障する。
このような方法によって、結果として、発行元となる演算処理装置は、書込みアクセス要求を、キャッシュルックアップを不要とする書き込みアクセス要求として扱うことができ、それに代えて、キャッシュ・コヒーレンシー論理は、コヒーレント操作を行うように構成されており、特に、該コヒーレント操作を行う際に、発行元となる演算処理装置に関連付けられたキャッシュを含むように構成されている。この構成により、発行元となる演算処理装置が、実質的にキャッシュ更新と、メモリ更新とをアトミックな方法で行うことにより、それに関連付けられたキャッシュとの組合せで、要求された動作を試みて完了した際に起きるようなキャッシュアクセス・ペナルティ及び/又は複雑度が増すことを防ぐ。
また、キャッシュ・コヒーレンシー論理が、発生する可能性のある危険性を避けることができるように本来準備されているので、発行元となる演算処理装置によって実行されるアトミックな更新から得られうる同様の動作を達成する間に、要求された共有メモリの更新からキャッシュの更新を切り離すことができる。
また、キャッシュ・コヒーレンシー論理が、発生する可能性のある危険性を避けることができるように本来準備されているので、発行元となる演算処理装置によって実行されるアトミックな更新から得られうる同様の動作を達成する間に、要求された共有メモリの更新からキャッシュの更新を切り離すことができる。
従って、本発明は、関連付けられたキャッシュと共有メモリとを更新する必要がある状況で、共有メモリに対する書込みアクセス要求を処理する際の問題に対して、演算処理装置が、書込みアクセス要求を簡単な方法で処理できるようにし、キャッシュ・コヒーレンシー論理の固有の機能により、このような書込みアクセスに対する要求された動作を行うことにより、さらに高度で簡単な解決策を提供する。
関連付けられたキャッシュ及び共有メモリの両方の更新を要求する種類の書込みアクセス要求には、様々な種類がある。一実施例において、このような書込みアクセス要求の一つの種類として、供給メモリに対する、キャッシュ不可の領域に対する書込みアクセス要求がある。それに代え、又は、それに加え、上述した方法を用いることによりサポートできる他の種類の書込みアクセス要求としては、共有メモリに対するライトスルー書込み要求がある。
キャッシュ・コヒーレンシー論理によって行われるコヒーレンシー操作には、様々な形態がある。一実施例において、キャッシュ・コヒーレンシー操作を行う際に、キャッシュ・コヒーレンシー論理が、複数の演算処理装置に関連付けられたキャッシュの各々にコヒーレンシー要求信号を発行する。このコヒーレンシー要求信号は、書込みアクセス要求の対象となるデータ値に関連付けられたアドレスを特定するものである。その結果、このような実施例において、様々な演算処理装置に関連付けられた全てのキャッシュは、コヒーレンシーチェックを受ける。しかし、他の実施例では、コヒーレンシー操作を行う際に、キャッシュ・コヒーレンシー論理によりフィルタ操作を適用し、どのキャッシュがコヒーレンシー要求を発行するかを決定し、更に、決定されたキャッシュにコヒーレンシー要求信号を発行する。このコヒーレンシー要求信号は、書込みアクセス要求の対象となるデータ値に関連付けられたアドレスを特定するものである。このような実施例において、キャッシュ・コヒーレンシー論理に、コヒーレンシー要求をフィルタできるという付加的な特徴が設けられており、特に、このフィルタ操作は、どのキャッシュを、コヒーレンシーチェックの対象とする必要があるかを決定するために、通常、様々なキャッシュの内容についての何らかの知識を考慮するものとなっている。
本発明の実施例によれば、発行元となる演算処理装置が、関連付けられたキャッシュ及び共有メモリの両方の更新を要求する種類の書込みアクセス要求を発行した際には、その演算処理装置は、キャッシュ・コヒーレンシー論理にコヒーレンシー操作を開始させる前に、キャッシュ内でルックアップを行う必要はない。しかし、いくつかの実施例においては、演算処理装置は、何らかの他の理由で、キャッシュのルックアップを行うことを選択してもよい。しかし、本発明の特定の実施例においては、発行元となる演算処理装置に関連付けられたキャッシュ内でルックアップを行わずに、キャッシュ・コヒーレンシー論理でコヒーレンシー操作を開始する。
各演算処理装置に関連付けられたキャッシュには、様々な形態がある。特に、演算処理装置のあるものは、このようなキャッシュを共有する。しかし、一実施例において、各演算処理装置において、それに関連付けられたキャッシュは、該演算処理装置のみに関連付けられたローカルキャッシュである。このようなキャッシュは、通常、レベル1キャッシュと呼ばれる。
一実施例において、キャッシュの各々は、データ値を格納するのみに用いられるデータキャッシュとして設けられ、通常は、分離した命令キャッシュが、関連付けられた演算処理装置により実行される命令を格納するために設けられる。しかし、他の実施例においては、キャッシュは、命令とデータの両方を格納する統合キャッシュとすることができる。
共有メモリには、様々な形態があり、従って、一実施例においては、その全体のアドレス空間が共有される特定のメモリ装置であってもよい。しかし、他の実施例においては、共有メモリは、あるメモリの共有メモリ領域であり、通常、このようなメモリは、それに関連付けられた他の属性を有する他の領域をも有するものとなっているため、例えば、非共有メモリとして分類される。しばしば、メモリシステムは、複数のメモリ装置からなり、それらの全ては、一つ又は複数のメモリ領域又は区域の一部となっている。例えば、アドレス0に置かれ、1024ワード(1Kワード)幅のメモリ領域を、例えば、複数のメモリ装置、例えば、メモリ装置M0からM3に、実際に設けることができる。M0に、その位置0から255にデータを格納させ、M1に、その位置256から511等にデータを格納させることに代えて、M0が、位置0、4、8、12...にデータを格納するように構成し、M1が、位置1、5、9、13...にデータを格納するように構成することができる。
演算処理装置には、様々な形態があるが、一実施例においては、演算処理装置の少なくとも一つは、プロセッサ・コアである。一実施例において、全ての演算処理装置をプロセッサ・コアとすることもできるが、他の実施例においては、一つ又はそれ以上の数の演算処理装置は、他の装置の形態、例えば、デジタル信号プロセッサ(DSP)、ハードウェア・アクセラレータ等の形態としてもよい。
キャッシュ・コヒーレンシー・プロトコルには、様々な形態があるが、一実施例においては、スヌープに基づくキャッシュ・コヒーレンシー・プロトコルである。このようなキャッシュ・コヒーレンシー・プロトコルに基づいて、システムの各演算処理装置(例えば、個々の演算処理装置である処理装置、又は関連付けられたキャッシュと組み合わせた個々の演算処理装置である処理装置)は、要求されたコヒーレンシー動作を行うため、共有バスから取得した情報に応じて、共有バス上での動きをスヌープするように構成することができる。このような実施例において、キャッシュ・コヒーレンシー論理は、通常、処理装置の各々に関連付けられた多数のディスクリート部品で構成されるものであると考えられる。
本発明の第二の態様に関して、本発明は、データ処理装置で用いるためのキャッシュ・コヒーレンシー論理を提供するものであり、
該データ処理装置は、
共有メモリ内のデータへのアクセスを要求するデータ処理操作を実行するための複数の演算処理装置であって、各演算処理装置は、該演算処理装置によるアクセスのために前記データのサブセットを格納するための、それに関連付けられたキャッシュを有する演算処理装置と、
各演算処理装置によりアクセスされるデータが最新であることを保障する、キャッシュ・コヒーレンシー・プロトコルを用いたキャッシュ・コヒーレンシー論理を含むデータ処理装置であって、
各演算処理装置は、前記共有メモリ内に格納するためのデータ値を出力する際に、書込みアクセス要求を発行するように動作することができ、該書込みアクセス要求が、関連付けられたキャッシュ及び共有メモリの両方の更新を要求する種類のものである場合に、コヒーレンシー操作が、キャッシュ・コヒーレンシー論理内で開始し、
該キャッシュ・コヒーレンシー論理は、キャッシュ内のデータがコヒーレントを保つことを保障するために、書込みアクセス要求を発行する演算処理装置に関連付けられたキャッシュを含む、複数の演算処理装置に関連付けられた各々のキャッシュに関してコヒーレンシー操作を行い、
更に、該キャッシュ・コヒーレンシー論理は、書込みアクセス要求の対象となるデータ値に関して、前記共有メモリに更新要求を発行することができるキャッシュ・コヒーレンシー論理である。
該データ処理装置は、
共有メモリ内のデータへのアクセスを要求するデータ処理操作を実行するための複数の演算処理装置であって、各演算処理装置は、該演算処理装置によるアクセスのために前記データのサブセットを格納するための、それに関連付けられたキャッシュを有する演算処理装置と、
各演算処理装置によりアクセスされるデータが最新であることを保障する、キャッシュ・コヒーレンシー・プロトコルを用いたキャッシュ・コヒーレンシー論理を含むデータ処理装置であって、
各演算処理装置は、前記共有メモリ内に格納するためのデータ値を出力する際に、書込みアクセス要求を発行するように動作することができ、該書込みアクセス要求が、関連付けられたキャッシュ及び共有メモリの両方の更新を要求する種類のものである場合に、コヒーレンシー操作が、キャッシュ・コヒーレンシー論理内で開始し、
該キャッシュ・コヒーレンシー論理は、キャッシュ内のデータがコヒーレントを保つことを保障するために、書込みアクセス要求を発行する演算処理装置に関連付けられたキャッシュを含む、複数の演算処理装置に関連付けられた各々のキャッシュに関してコヒーレンシー操作を行い、
更に、該キャッシュ・コヒーレンシー論理は、書込みアクセス要求の対象となるデータ値に関して、前記共有メモリに更新要求を発行することができるキャッシュ・コヒーレンシー論理である。
本発明の第三の態様に関して、本発明は、データ処理装置において共有メモリへの書き込みアクセス要求を処理するための方法を提供するものであり、
該データ処理装置は、
共有メモリ内のデータへのアクセスを要求するデータ処理操作を実行するための複数の演算処理装置であって、各演算処理装置は、該演算処理装置によるアクセスのために前記データのサブセットを格納するための、それに関連付けられたキャッシュを有する演算処理装置を含み、
該方法は、
各演算処理装置は、前記共有メモリ内に格納するためのデータ値を出力する際に、書込みアクセス要求を発行するステップと、
該書込みアクセス要求が、関連付けられたキャッシュ及び共有メモリの両方の更新を要求する種類のものである場合に、キャッシュ・コヒーレンシー論理内でコヒーレンシー操作を開始するステップであって、該キャッシュ・コヒーレンシー論理は、キャッシュ内のデータがコヒーレントを保つことを保障するために、キャッシュ・コヒーレンシー・プロトコルを用いるステップと、
キャッシュ内のデータがコヒーレントを保つことを保障するために、書込みアクセス要求を発行する演算処理装置に関連付けられたキャッシュを含む、複数の演算処理装置に関連付けられた各々のキャッシュに関してコヒーレンシー操作を行うステップと、
書込みアクセス要求の対象となるデータ値に関して、前記共有メモリに更新要求を発行するステップとを含む方法である。
該データ処理装置は、
共有メモリ内のデータへのアクセスを要求するデータ処理操作を実行するための複数の演算処理装置であって、各演算処理装置は、該演算処理装置によるアクセスのために前記データのサブセットを格納するための、それに関連付けられたキャッシュを有する演算処理装置を含み、
該方法は、
各演算処理装置は、前記共有メモリ内に格納するためのデータ値を出力する際に、書込みアクセス要求を発行するステップと、
該書込みアクセス要求が、関連付けられたキャッシュ及び共有メモリの両方の更新を要求する種類のものである場合に、キャッシュ・コヒーレンシー論理内でコヒーレンシー操作を開始するステップであって、該キャッシュ・コヒーレンシー論理は、キャッシュ内のデータがコヒーレントを保つことを保障するために、キャッシュ・コヒーレンシー・プロトコルを用いるステップと、
キャッシュ内のデータがコヒーレントを保つことを保障するために、書込みアクセス要求を発行する演算処理装置に関連付けられたキャッシュを含む、複数の演算処理装置に関連付けられた各々のキャッシュに関してコヒーレンシー操作を行うステップと、
書込みアクセス要求の対象となるデータ値に関して、前記共有メモリに更新要求を発行するステップとを含む方法である。
本発明の第四の態様に関して、本発明は、データ処理装置を提供するものであり、
該データ処理装置は、
共有メモリ手段内のデータへのアクセスを要求するデータ処理操作を実行するための複数の演算処理手段であって、各演算処理手段は、該演算処理手段によるアクセスのために前記データのサブセットを格納するための、それに関連付けられたキャッシュ手段を有する演算処理手段と、
各演算処理装置によりアクセスされるデータが最新であることを保障する、キャッシュ・コヒーレンシー・プロトコルを用いたキャッシュ・コヒーレンシー手段を含むデータ処理装置であって、
各演算処理手段は、前記共有メモリ手段内に格納するためのデータ値を出力する際に、書込みアクセス要求を発行し、該書込みアクセス要求が、関連付けられたキャッシュ及び共有メモリの両方の更新を要求する種類のものである場合に、コヒーレンシー操作が、キャッシュ・コヒーレンシー手段内で開始され、
該キャッシュ・コヒーレンシー手段は、これらのキャッシュ手段内のデータがコヒーレントを保つことを保障するために、書込みアクセス要求を発行する演算処理手段に関連付けられたキャッシュ手段を含む、複数の演算処理手段に関連付けられた各々のキャッシュ手段に関してコヒーレンシー操作を行い、
更に、該キャッシュ・コヒーレンシー手段は、書込みアクセス要求の対象となるデータ各データ値に関して、前記共有メモリ手段に更新要求を発行するデータ処理装置である。
該データ処理装置は、
共有メモリ手段内のデータへのアクセスを要求するデータ処理操作を実行するための複数の演算処理手段であって、各演算処理手段は、該演算処理手段によるアクセスのために前記データのサブセットを格納するための、それに関連付けられたキャッシュ手段を有する演算処理手段と、
各演算処理装置によりアクセスされるデータが最新であることを保障する、キャッシュ・コヒーレンシー・プロトコルを用いたキャッシュ・コヒーレンシー手段を含むデータ処理装置であって、
各演算処理手段は、前記共有メモリ手段内に格納するためのデータ値を出力する際に、書込みアクセス要求を発行し、該書込みアクセス要求が、関連付けられたキャッシュ及び共有メモリの両方の更新を要求する種類のものである場合に、コヒーレンシー操作が、キャッシュ・コヒーレンシー手段内で開始され、
該キャッシュ・コヒーレンシー手段は、これらのキャッシュ手段内のデータがコヒーレントを保つことを保障するために、書込みアクセス要求を発行する演算処理手段に関連付けられたキャッシュ手段を含む、複数の演算処理手段に関連付けられた各々のキャッシュ手段に関してコヒーレンシー操作を行い、
更に、該キャッシュ・コヒーレンシー手段は、書込みアクセス要求の対象となるデータ各データ値に関して、前記共有メモリ手段に更新要求を発行するデータ処理装置である。
図1Aは、コヒーレントバス構造50を介して共有メモリ領域60と接続された複数プロセッサ20、30、40からなるデータ処理装置10のブロック図である。プロセッサ20、30、40の各々は、関連付けられたローカルキャッシュ24、34、44が各々接続されたプロセッサ・コア22、32、42からなり、各キャッシュは、共有メモリ内に保持されたデータのサブセットを格納するために用いられ、関連付けられたプロセッサによる該データへのアクセス速度を向上させる。一実施例において、各キャッシュ24、34、44は、関連付けられたプロセッサ・コア22、32、42により用いられるデータ値を格納するために用いられるデータキャッシュであり、通常、分離した命令キャッシュが、プロセッサ・コアに要求された命令をキャッシュするために(図1Aでは不図示であるが)設けられる。
コヒーレントバス構造50は、様々なキャッシュ24、34、44に保持されたデータが最新となることを保障するために、キャッシュ・コヒーレンシー・プロトコルを適用するために用いられるキャッシュ・コヒーレンシー論理を備えた、バス接続装置から構成されている。特に、一つのプロセッサがそのローカルキャッシュ内のデータを更新した際には、コヒーレンシーを保障するため、他のプロセッサに関連付けられたキャッシュ内の該データの任意のコピーが、これらのローカルキャッシュ内で適切に更新されるか無効化されることを、キャッシュ・コヒーレンシー論理が保障する。一実施例において、用いられるキャッシュ・コヒーレンシー・プロトコルは、MESIキャッシュ・コヒーレンシー・プロトコルであり、以下、図2を参照して詳細に説明する。
メモリ60は、全体が、共有メモリとして構成されていてもよいし、それに代えて、複数のメモリ領域から構成されているものであってもよい。これらのメモリ領域の少なくとも一つは、プロセッサ20、30、40が、これらのプロセッサ間で共有するデータを格納することができる共有メモリ領域である。
図1Bは、本発明の第二の実施例に係る、データ処理装置100のブロック図である。本実施例では、キャッシュ・コヒーレンシー論理は、コヒーレントバス構造の一部としては構成されておらず、それに代えて、分離したキャッシュ・コヒーレンシー論理126、136、146が、各プロセッサ120、130、140に設けられ、個々のプロセッサは、バス接続150を介してメモリ60に接続されている。第一の実施例と同様に、各プロセッサ120、130、140は、対応するローカルデータキャッシュ124、134、144に接続されたプロセッサ・コア122、132、142を含んでいる。
図1Bの実施例によれば、各キャッシュ・コヒーレンシー論理は、他のプロセッサの動作がバス接続150に現れる際に、その動作をスヌープし、このスヌープの結果として受け取った情報に基づいて、関連付けられたデータキャッシュに関して何らかのコヒーレンシー操作を行い、そのデータキャッシュの内容がコヒーレントとなるようにする必要があるかどうかを決定するように構成されている。従って、例えば、プロセッサ・コア2 132が、データキャッシュ134に格納されたデータ値に関して、該データキャッシュに関連したキャッシュラインの内容を更新する結果となる書込みアクセス要求を発行した場合、キャッシュ・コヒーレンシー論理136は、この更新が起こっていることを示す通知をバス150上に発行し、他のプロセッサ120、140のキャッシュ・コヒーレンシー論理ユニット126、146の各々は、この通知を監視し、関連付けられたデータキャッシュ124、144に対し、任意の必要なコヒーレンシー操作を行う。一実施例において、この操作は、もし、関連付けられたデータキャッシュ内にデータが格納されている場合には、関連するキャッシュラインを無効化すること、あるいはそれに代えて、必要な更新を行うことを含んでいる。このスヌープ操作が、キャッシュのコヒーレンシーを実装するために用いられている場合には、データ処理装置は、スヌープに基づくキャッシュ・コヒーレンシー・プロトコルを用いているものとして呼ばれることもある。図1Aを参照して説明したように、一実施例において、実際に用いられるキャッシュ・コヒーレンシー・プロトコルは、MESIキャッシュ・コヒーレンシー・プロトコルである。
図2は、MESIキャッシュ・コヒーレンシー・プロトコルと呼ばれる、特定の種類のキャッシュ・コヒーレンシー・プロトコルを示す状態遷移図であり、一実施例において、MESIキャッシュ・コヒーレンシー・プロトコルは、図1A及び1Bのデータ処理装置10、100で用いられる。図2に示すように、キャッシュの各キャッシュラインは、4つの状態、I(無効)状態、S(共有)状態、E(排他)状態、M(変更)状態のいずれか一つの状態となる。キャッシュラインが無効である場合に、I状態となる。キャッシュラインが他のプロセッサのキャッシュにも保持されているデータを含む場合に、S状態となる。キャッシュラインが他のプロセッサのキャッシュには保持されていないデータを含む場合に、E状態となる。キャッシュラインが変更されたデータを含む場合に、M状態となる。
図2は、様々な読出し又は書込み操作の結果として起こる可能性のある状態の遷移を示している。ローカル読出し又は書込み操作とは、キャッシュが存在しているプロセッサで行われる読出し又は書込み操作のことであり、一方、リモート読出し又は書込み操作とは、データ処理装置の他のプロセッサの一つで行われ、コヒーレンシー要求によって識別される読出し又は書込み操作のことである。
なお、図2において、複数の読出し及び書込み操作は、いかなるコヒーレンシー操作を行うことを要求するものではないが、コヒーレンシー操作を行うことを要求する、いくつかの数の読出し及び書込み操作が存在する。特に、キャッシュが存在するプロセッサは、キャッシュミスをもたらすローカル読出し操作を行った場合、この操作は、キャッシュの特定のキャッシュラインに対して行われるラインフィル処理をもたらす結果となり、キャッシュラインの状態は、Iビットを設定する状態から、Sビット又はEビットを設定する状態に変化する。Sビット又はEビットのどちらを設定するかを決定するために、プロセッサは、問題となっているアドレスにローカルにデータをキャッシュした可能性のある他のプロセッサに対してコヒーレンシー操作を行い、そのコヒーレンシー操作の結果を待ってから、Sビット又はEビットのどちらを設定するかを選択する必要がある。問題となっているアドレスにデータをキャッシュした可能性のある他のプロセッサが、データをキャッシュしていなかった場合は、Eビットを設定し、そうでない場合には、Sビットを設定する。なお、Eビットを設定し、他のプロセッサが、同じアドレスにあるデータに関して、そのキャッシュに対するローカル読出しを行った場合には、そのEビットは、以前に設定されたキャッシュによるリモート読出しと見なされ、図2に示すように、Eビットをクリアし、Sビットを設定するような状態遷移が行われる。
また、図2に示すように、ローカル書込み処理は、キャッシュのキャッシュラインに保持されたデータ値の更新をもたらす結果となり、これにより、Mビットが設定される。Mビットの設定が、Iビット設定の状態からの遷移(キャッシュミスの発生後、キャッシュライン割当てが行われ、更に、書込み操作が行われる)又はSビット設定状態からの遷移のいずれかで行われる場合には、再度、プロセッサによってコヒーレンシー操作を行う必要がある。このような例では、プロセッサは、コヒーレンシー操作の対象となっている他のプロセッサからフィードバックを受ける必要はないが、これらの他のプロセッサは、それ自身のキャッシュに関して必要な動作を行う必要があり、その場合、書込みは、リモート書込み処理と見なされる。なお、Eビットが設定されたキャッシュラインへのローカル書込みが発生した際には、この書込みを行った時点では、当該アドレスのデータは他のプロセッサのキャッシュにはキャッシュされていないことが分かっているため、Eビットをクリアし、コヒーレンシー操作は行わずにMビットを設定する。
図3は、本発明の一実施例による、図1A及び1Bに示した各データキャッシュ内に設けられた構成要素を示すブロック図である。データキャッシュ200は、ロード/ストアユニット(LSU)210を介して、関連付けられたプロセッサ・コアに接続され、関連付けられたプロセッサ・コアからの読出し及び書込みアクセス要求を受信するように構成されている。読出しアクセス要求が発生すると、そのアクセス要求は、キャッシュアレイ230に直接送られ、要求されたデータがキャッシュアレイ内にあるかどうかを決定するために実行すべきルックアップ処理が可能となる。もし、データがあれば、そのデータ値は、LSU210を介してプロセッサ・コアに返送される。キャッシュミスが発生すると、ラインフィル要求が、バスインターフェース250を介してバス接続キャッシュ・コヒーレンシー論理に送られ、着目するデータ値を含むデータに相当するキャッシュラインにより、キャッシュアレイ230内に格納する値として、メモリ60から取り出される。その後、要求されたデータ値は、LSU210を介してプロセッサ・コアに返送される。
書込みアクセス要求については、これらの要求は、格納バッファ220に送られ、さらにその先で処理される。特に、キャッシュ可能なアクセス要求については、格納バッファが、キャッシュアレイ230内のパス222を介してルックアップを開始し、書込みアクセス要求の対象となるデータ値が、キャッシュアレイ内にあるかどうかを判定する。もしあれば、キャッシュアレイ230のキャッシュラインで更新を行う。キャッシュミスが発生すると、バスインターフェース250を介して、格納バッファ220によりラインフィル処理を起動し、データに相当するキャッシュラインにより、キャッシュアレイに格納する値として、メモリから取り出され、その後、キャッシュアレイ内での書込み更新が可能となる。それに代えて、データに相当するキャッシュラインを、メモリから受け、バスインターフェース250内に設けられたラインフィルバッファに受け取る。さらに、書込み要求は、ラインフィルバッファ内のデータとマージされ、その後、データラインがキャッシュアレイ230内で割り当てられる。
コヒーレンシー要求をキャッシュ・コヒーレンシー論理から受け取るために、コヒーレンシーハンドラ240も設けられ、キャッシュアレイ230内の所定のラインに対して、要求されたコヒーレンシー維持操作を行う。コヒーレンシーハンドラ240が、所定のデータ値がキャッシュアレイ230内に格納されているかどうかを識別するために、通常、キャッシュ・コヒーレンシー論理から受取ったコヒーレンシー要求は、コヒーレンシー操作を行うアクセスの種類と、アクセス要求の対象となるデータ値のアドレスとを識別し、もし、格納されていれば、(例えば、MESIプロトコルに関し、図2で先に示したように)適切な動作をとる。
コヒーレンシー維持操作の結果として、キャッシュラインを、キャッシュアレイ230から追い出す必要がある場合には、コヒーレンシーハンドラ240は、バスインターフェース250と通信を行い、必要となる追い出し操作を行うことができる。
先に説明したように、ある種類の書込みアクセス要求は、関連付けられたキャッシュ及び共有メモリの両方の更新を要求するが、このようなアクセス要求の例としては、キャッシュ不可の領域に対する書込みアクセス要求とライトスルーアクセス要求がある。このようなアクセス要求を、所定のプロセッサによって正確に処理しようとした場合、格納バッファ220の複雑度を著しく増してしまうことになる。その理由は、共有メモリ60とキャッシュアレイ230の両方で、更新がアトミックに行われることを保障するため、格納バッファは、共有メモリ60での更新が行われている間に書込みアクセス要求の対象となるデータ値に対する記録を維持し、メモリ内の更新と同期してキャッシュアレイ230内の更新を行う必要があるためである。このアトミックな更新が行われた後でのみ、格納バッファは、その記録を破棄し、別の書込み要求の処理に移ることができる。従って、キャッシュアレイ230へのアクセスに関して、複雑度が増すだけでなく、性能に大きな影響を及ぼす恐れがある。格納バッファ内に更に論理を付加することにより、メモリ内の更新の最中に、(キャッシュアレイ230全体ではなく)キャッシュアレイ230内の所定のキャッシュのみをロックすることができるが、これは、メモリ内の更新の最中にキャッシュアレイへの全ての書込みアクセス要求を単にブロックすることよりも、さらに複雑なものとなってしまう。
しかし、本発明の実施例によれば、関連付けられたキャッシュと共有メモリとの両方に対して更新を要求する種類のアクセス要求については、キャッシュに対する動作を要求しないアクセスとして扱い、それにより、キャッシュをヒットするかミスするかを判定するためにキャッシュアレイ230内のルックアップを要求しないアクセスとして扱うように、格納バッファ220が構成されている。その結果、所定の書込みアクセス要求を格納バッファにより処理する際には、その要求は、格納バッファ220からバスインターフェース250に伝えられ、その結果、そのアクセス要求は、バス接続に伝えられる。キャッシュ・コヒーレンシー論理も、この要求を受け取り、全てのキャッシュ24、34、44又はキャッシュ124、134、144に対してコヒーレンシー操作を行う。ここで重要なのは、このコヒーレンシー操作は、該当する書込みアクセス要求自身に関わらないプロセッサのデータキャッシュに対して行われるだけでなく、この書込みアクセス要求の発行元となったプロセッサに関連付けられたデータキャッシュに関しても行われるということである。
従って、図1Aの実施例によれば、プロセッサ・コア22が、関連付けられたキャッシュ24と共有メモリ60の両方に対して更新を要求する種類のアクセス要求を発行した場合には、このアクセス要求は、コヒーレントバス構造50に送られ、データキャッシュ24内のルックアップは行わず、その代わり、キャッシュ・コヒーレンシー論理が、データキャッシュ24、34、44の各々に対してコヒーレンシー操作を行う。一実施例において、この操作は、データキャッシュ24、34、44の各々にコヒーレンシー要求を発行することを含み、このコヒーレンシー要求は、各データキャッシュ内のコヒーレンシーハンドラ240により受け取られる。その後、各データキャッシュ内で、要求されたコヒーレンシー維持操作が行われる。
他の実施例において、キャッシュ・コヒーレンシー論理は、各データキャッシュに関して、そのデータキャッシュのコヒーレンシーハンドラ240に対してコヒーレンシー要求を発行する必要があるかどうかを決定することができるように付加されたフィルタ論理を含んでいる。このフィルタ操作は、キャッシュ維持操作を行う必要があるかどうかを決定するために、各データキャッシュの内容に関する何らかの補足情報へ参照することを含んでいる。この方法により、多数のコヒーレンシー要求を行う必要性を取り除き、各データキャッシュ内のコヒーレンシーハンドラ240により行うことが必要なコヒーレンシー維持操作の数を大幅に減らすことができ、それにより、大きな省電力を図ることができる。
コヒーレンシーハンドラ240によるコヒーレンシー維持操作には、様々な形態がある。一実施例において、コヒーレンシーハンドラ240は、キャッシュアレイにヒットしたかどうかを検出し、もしヒットすれば、所定のキャッシュラインを無効にし、キャッシュラインを無効にする際に適切となる必要な動作を行うような状況に対応するように構成してもよい。それに代えて、コヒーレンシーハンドラは、キャッシュアレイがヒットを検出した際に、新しいデータ値でキャッシュラインを実際に更新し、必要に応じて、そのキャッシュラインに関連付けられた所定のコヒーレンシー状態ビットを更新するように構成してもよい。
この方法により、格納バッファは、単に、キャッシュアクセスを行う必要はないかのように、書き込みアクセス要求を処理するため、データキャッシュの格納バッファ220内には、新たに論理を付加する必要がなく、その結果、アトミックな操作を行う必要はない。その代わり、キャッシュ・コヒーレンシー論理が、要求の発行元となったプロセッサ・コアに関連付けられたデータキャッシュを含む、所定のデータキャッシュ内でのコヒーレンシー操作を行い、更に、要求されたメモリの更新を行う。もし、キャッシュ・コヒーレンシー論理が、その固有な特徴として、メモリ更新の最中に起こりうる危険性を検出し回避することができれば、データキャッシュの更新とメモリ更新とをアトミックに行う必要はない。一実施例において、実際には、データキャッシュにヒットすれば、いずれの場合でも、所定のキャッシュを無効化する結果となる。
図4は、一実施例における、書込みアクセス要求を処理する際の、図1A又は図1Bのデータ処理装置10、100の動作を示すフローチャートである。最初に、ステップ300において、データキャッシュにより、書込みアクセスが要求されたかどうかを判定する。その結果、関連付けられたプロセッサ・コアが、データキャッシュに対して書込みアクセス要求を発行し、その要求をステップ300で検出し、ステップ305に進み、そのアクセスが、共有メモリ領域に対するものであり、アクセスの種類が、キャッシュとメモリとを更新する要求であるかを判定する。もしそうでなければ、ステップ310において、データキャッシュは、その通常の書込みアクセス処理を行う。この通常の書込みアクセス処理は、図2で先に説明したことからわかるように、キャッシュ・コヒーレンシー論理に対して、コヒーレンシー要求を発行することを含んでも、含まなくともよい。
一方、ステップ305において、アクセスが、共有メモリ領域に対するものであり、アクセスの種類が、キャッシュとメモリとを更新する要求であったと判定された場合は、ステップ315に進み、キャッシュのルックアップは行わず、キャッシュは、コヒーレンシー要求を発行する。次に、ステップ320において、書込みは保留するものと示され、例えば、格納バッファ内の所定のステータスフラグを設定する。更に、ステップ325において、キャッシュは、キャッシュ・コヒーレンシー論理からの確認応答を待つ。確認応答を受け取るまで、書込みアクセスは保留となるが、確認応答を受け取ると、ステップ330において、例えば、格納バッファ内の所定のステータスビットがクリアされることにより、書込みが完了したものと判断され、その後、ステップ300に戻る。
更に、ステップ315において、コヒーレンシー要求が発行されると、その要求は、キャッシュ・コヒーレンシー論理に送られ、ステップ335において、キャッシュ・コヒーレンシー論理が既にコヒーレンシー要求を受け取る準備ができているかどうかを判定する。もしそうでなければ、ステップ340において、遅延を受け入れ、その後、ステップ335に戻る。キャッシュ・コヒーレンシー論理で、コヒーレンシー要求を受け取る準備ができると、ステップ345において、キャッシュ・コヒーレンシー論理は、発行元のプロセッサのレベル1キャッシュを含む、全てのレベル1キャッシュにそのコヒーレンシー要求を発行する。
その後、ステップ350において、各キャッシュは、要求されたコヒーレンシー操作を行い、キャッシュ・コヒーレンシー論理に対して、そのコヒーレンシー操作が完了したことを通知する。ステップ355において、全ての確認応答が受信されると、キャッシュ・コヒーレンシー論理は、ステップ325で検出した確認応答を、発行元のプロセッサに送り、ステップ330において、所定の書込みアクセスについて、完了したものとしてマーク付けする。更に、ステップ360において、キャッシュ・コヒーレンシー論理は、メモリ内の所定の内容を更新するために、メモリ60にアクセス要求を発行し、ステップ335に戻る。
一実施例において、キャッシュ・コヒーレンシー論理が、メモリにアクセス要求を一度だけ発行する間に、全ての要求されたキャッシュ維持操作が、データキャッシュで行われるが、他の実施例においては、メモリへのアクセス要求を並列して発行し、データキャッシュに対するコヒーレンシー操作を行うこともできる。
なお、本発明の実施例の方法は、所定の処理装置の全てがプロセッサ・コアであるとは限らないシステムに適用することができるが、各処理装置が、実際に、それ自身に専用のキャッシュを有することは必須ではない。特に、発行元の処理装置からメモリに到る通常パス上にはないシステム内にキャッシュがあれば、このキャッシュ・コヒーレンシー論理は適切なものとなる。
従って、図5は、本発明の上述した方法も用いることができる他の実施例を示すものである。本実施例において、プロセッサ420は、プロセッサ・コア422と、関連付けられたレベル1データキャッシュ424とからなり、レベル1データキャッシュは、コヒーレントバス構造450を介してハードウェア・アクセラレータ430とデジタル信号プロセッサ(DSP)440に接続されており、これらはキャッシュ445を共有している。更に、コヒーレントバス構造450は、レベル2キャッシュ455を介して、メモリ60に接続されている。図1Aの実施例と同様に、コヒーレントバス構造450は、キャッシュ・コヒーレンシー論理を含んでいる。
ハードウェア・アクセラレータ430は、様々な目的のために用いられるが、一例としては、グラフィック処理を実行するために用いられるグラフィックエンジンの形態であってもよい。DSP440は、通常、ハードウェア・アクセラレータよりも多くの様々な機能を実行することができ、一例としては、グラフィックアルゴリズムを実行する音声フィルタリング機能を実行するために用いるものであってもよい。
レベル2キャッシュ455は、処理装置420、430、440のいずれかによるアクセスのためのデータを格納することができるが、共有メモリ445は、ハードウェア・アクセラレータ430又はDSP440のためのデータを格納できるものでありながら、プロセッサ420からはアクセスできない。すなわち、プロセッサ420からメモリ60に到る通常のパス上(すなわち、レベル1データキャッシュ424、コヒーレントバス構造450、レベル2キャッシュ455を経由するパス上)のキャッシュではない。
このような状況でも、本発明の実施例の方法を用いることができる。一例としては、プロセッサ・コア422は、レベル1データキャッシュ424とメモリ60の両方で行うべき更新を要求する種類の書込みアクセス要求を発行した場合には、この要求は、レベル1データキャッシュ424でルックアップを行わずに、それに代えて、コヒーレントバス構造450に直接送られる。その結果、キャッシュ・コヒーレンシー論理により、レベル1データキャッシュ424とレベル2キャッシュ455の両方にコヒーレンシー要求が発行され、要求されたキャッシュ維持操作が行われ、それと独立して、レベル2キャッシュ455からメモリ60に経由して、メモリ更新が行なわれる。
上述したように、本発明の上述した実施例には、データキャッシュ論理の複雑度を増やさずに、キャッシュ更新とメモリ更新の両方を要求する共有メモリに対する書込みアクセスの正しい動作を保障するための簡単な実装を提供することができる。特に、どのような状況でもコヒーレント・ライトスルー書込みアクセスは選択しないが、それでも、キャッシュ不可の領域への共有書込みを正確に処理する機能を有する必要がある場合、通常は、キャッシュにヒットすることは実際にはほとんど起こらないために、データキャッシュ論理内に付加回路を設けることは特にコスト増となると考えられる状況では、上記のことは本実施例において有利なものとなる。
本発明の先行技術では、キャッシュ不可の領域への共有書込みが発生した際には、キャッシュ内でルックアップを行うことが必要であり、また、キャッシュヒットが発生した際には、更に、キャッシュ・コヒーレンシー論理にコヒーレンシー要求を発行し、データ処理装置の他のプロセッサに関連付けられたほかの全てのキャッシュを対象として、要求されたコヒーレンシー操作を行うことが必要である。その後、発行元のプロセッサのキャッシュと共有メモリの両方を、アトミックな方法で更新する必要があるが、これにより、多くの危険性を生じることになり、これに対する上述したような策は、実装するために多くのコストと時間を要するものとなる。
しかし、本発明の実施例の方法を用いることにより、発行元のプロセッサのキャッシュ内でルックアップを行う必要はなく、その代わり、コヒーレンシー要求を、キャッシュ・コヒーレンシー論理に直接送り、このコヒーレンシー要求を、要求の発行元となったプロセッサを含む、システムの全てのプロセッサに送る。書込みアクセス要求の発行元となるプロセッサが、そのキャッシュにデータを有している場合には、そのプロセッサは、コヒーレンシーを維持するために適切な動作(例えば、対応するキャッシュラインを更新又は無効化する)を行い、コヒーレンシー要求に応答するが、これは、単に、キャッシュ・コヒーレンシー要求を受け取る任意のデータキャッシュが行う標準的な処理の一部である。更に、キャッシュ・コヒーレンシー論理が、コヒーレンシー要求を通常受け取る他の全てのプロセッサに加え、発行元となったプロセッサにもコヒーレンシー要求を発行することができるようにすること以外には、更に複雑度を増やすことは求められない。
キャッシュ・コヒーレンシー論理がコヒーレンシー要求をフィルタすることが可能となるという、有利な特徴を有している本実施例においては、書込みアクセス要求の発行元であるプロセッサにコヒーレンシー要求を送ることは、必要となることもあるし、必要とならないこともあるが、特に、キャッシュ・コヒーレンシー論理が、そのデータがキャッシュ内にないと判定した場合には、発行元であるプロセッサに要求を送ることは必要ではないこともある。本発明の実施例を用いて、キャッシュ不可の領域への共有書込みを処理するための正しい動作を提供する際には、多くの場合、データキャッシュにヒットすることはないものであり、従って、キャッシュ・コヒーレンシー論理に、このようなフィルタ論理を設けることにより、大きな省電力を図ることができる。
以上では、特定の実施例を記述してきたが、本発明は、それに限定されるものではなく、本発明の範囲内において、それに対し多くの変更と付加を加えることができる。例えば、本発明の範囲を逸脱することなく、以下の従属クレームの特徴を、独立クレームの特徴と様々に組合せることが可能である。
Claims (13)
- 共有メモリ内のデータへのアクセスを要求するデータ処理操作を実行することができる複数の演算処理装置であって、各演算処理装置は、該演算処理装置によるアクセスのために前記データのサブセットを格納することができる、それに関連付けられたキャッシュを有する前記複数の演算処理装置と、
各演算処理装置によりアクセスされるデータが最新であることを保障する、キャッシュ・コヒーレンシー・プロトコルを用いたキャッシュ・コヒーレンシー論理と、を含むデータ処理装置であって、
各演算処理装置は、前記共有メモリ内に格納するためのデータ値を出力する際に、書込みアクセス要求を発行するように動作することができ、該書込みアクセス要求が、関連付けられたキャッシュ及び共有メモリの両方の更新を要求する種類のものである場合に、コヒーレンシー操作が、キャッシュ・コヒーレンシー論理内で開始され、
該キャッシュ・コヒーレンシー論理は、キャッシュ内のデータがコヒーレントを保つことを保障するために、書込みアクセス要求を発行する演算処理装置に関連付けられたキャッシュを含む、複数の演算処理装置に関連付けられた各々のキャッシュに関してコヒーレンシー操作を行い、
更に、該キャッシュ・コヒーレンシー論理は、書込みアクセス要求の対象となるデータ値に関して、前記共有メモリに更新要求を発行するデータ処理装置。 - 請求項1記載のデータ処理装置において、書込みアクセス要求が、前記共有メモリに対する、キャッシュ不可の領域への書込みアクセス要求である場合、キャッシュ・コヒーレンシー論理内において、コヒーレンシー操作を開始するデータ処理装置。
- 請求項1記載のデータ処理装置において、書込みアクセス要求が、前記共有メモリに対する、ライトスルー書込みアクセス要求である場合、キャッシュ・コヒーレンシー論理内において、コヒーレンシー操作を開始するデータ処理装置。
- 請求項1から3のいずれかに記載のデータ処理装置において、コヒーレンシー操作を行う際に、キャッシュ・コヒーレンシー論理が、複数の演算処理装置に関連付けられたキャッシュの各々に対して、コヒーレンシー要求信号を発行し、コヒーレンシー要求信号は、書込みアクセス要求の対象となるデータ値に対応したアドレスを特定するデータ処理装置。
- 請求項1から3のいずれかに記載のデータ処理装置において、コヒーレンシー操作を行う際に、キャッシュ・コヒーレンシー論理は、フィルタ操作を適用し、どのキャッシュがコヒーレンシー要求を発行するのかを決定し、次に、決定されたキャッシュに対してコヒーレンシー要求を発行し、コヒーレンシー要求信号は、書込みアクセス要求の対象となるデータ値に対応したアドレスを特定するデータ処理装置。
- 請求項1から5のいずれかに記載のデータ処理装置において、書込みアクセス要求が、関連付けられたキャッシュ及び共有メモリの両方の更新を要求する種類のものである場合に、該書込みアクセス要求を発行した演算処理装置に関連付けられたキャッシュにおいてキャッシュルックアップを行わずに、キャッシュ・コヒーレンシー論理内において、コヒーレンシー操作を開始するデータ処理装置。
- 請求項1から6のいずれかに記載のデータ処理装置において、各演算処理装置において、それに関連付けられたキャッシュは、該演算処理装置にのみ関連付けられたローカルキャッシュであるデータ処理装置。
- 請求項1から7のいずれかに記載のデータ処理装置において、共有メモリは、メモリの共有メモリ領域であるデータ処理装置。
- 請求項1から8のいずれかに記載のデータ処理装置において、複数の演算処理装置の少なくとも一つは、プロセッサ・コアであるデータ処理装置。
- 請求項1から9のいずれかに記載のデータ処理装置において、キャッシュ・コヒーレンシー・プロトコルは、スヌープに基づくキャッシュ・コヒーレンシー・プロトコルであるデータ処理装置。
- データ処理装置で用いるためのキャッシュ・コヒーレンシー論理であって、
該データ処理装置は、共有メモリ内のデータへのアクセスを要求するデータ処理操作を実行するための複数の演算処理装置を有し、各演算処理装置は、該演算処理装置によるアクセスのために前記データのサブセットを格納するための、それに関連付けられたキャッシュを有し、
前記キャッシュ・コヒーレンシー論理は、各演算処理装置によりアクセスされるデータが最新であることを保障する、キャッシュ・コヒーレンシー・プロトコルを用い、
各演算処理装置は、前記共有メモリ内に格納するためのデータ値を出力する際に、書込みアクセス要求を発行するように動作することができ、該書込みアクセス要求が、関連付けられたキャッシュ及び共有メモリの両方の更新を要求する種類のものである場合に、コヒーレンシー論理が、キャッシュ・コヒーレンシー操作を開始し、
該キャッシュ・コヒーレンシー論理は、キャッシュ内のデータがコヒーレントを保つことを保障するために、書込みアクセス要求を発行する演算処理装置に関連付けられたキャッシュを含む、複数の演算処理装置に関連付けられた各々のキャッシュに関してコヒーレンシー操作を行い、
更に、該キャッシュ・コヒーレンシー論理は、書込みアクセス要求の対象となるデータ値に関して、前記共有メモリに更新要求を発行するキャッシュ・コヒーレンシー論理。 - データ処理装置において共有メモリへの書き込みアクセス要求を処理するための方法であって、
該データ処理装置は、
共有メモリ内のデータへのアクセスを要求するデータ処理操作を実行するための複数の演算処理装置であって、各演算処理装置は、該演算処理装置によるアクセスのために前記データのサブセットを格納するための、それに関連付けられたキャッシュを有する演算処理装置を含み、
該方法は、
各演算処理装置は、前記共有メモリ内に格納するためのデータ値を出力する際に、書込みアクセス要求を発行するステップと、
該書込みアクセス要求が、関連付けられたキャッシュ及び共有メモリの両方の更新を要求する種類のものである場合に、キャッシュ・コヒーレンシー論理内でコヒーレンシー操作を開始するステップであって、該キャッシュ・コヒーレンシー論理は、キャッシュ内のデータがコヒーレントを保つことを保障するために、キャッシュ・コヒーレンシー・プロトコルを用いるステップと、
キャッシュ内のデータがコヒーレントを保つことを保障するために、書込みアクセス要求を発行する演算処理装置に関連付けられたキャッシュを含む、複数の演算処理装置に関連付けられた各々のキャッシュに関してコヒーレンシー操作を行うステップと、
書込みアクセス要求の対象となるデータ値に関して、前記共有メモリに更新要求を発行するステップとを含む方法。 - 共有メモリ手段内のデータへのアクセスを要求するデータ処理操作を実行するための複数の演算処理手段であって、各演算処理手段は、該演算処理手段によるアクセスのために前記データのサブセットを格納するための、それに関連付けられたキャッシュ手段を有する演算処理手段と、
各演算処理装置によりアクセスされるデータが最新であることを保障する、キャッシュ・コヒーレンシー・プロトコルを用いたキャッシュ・コヒーレンシー手段と、を含むデータ処理装置であって、
各演算処理手段は、前記共有メモリ手段内に格納するためのデータ値を出力する際に、書込みアクセス要求を発行し、該書込みアクセス要求が、関連付けられたキャッシュおよび共有メモリの両方の更新を要求する種類のものである場合に、コヒーレンシー操作が、キャッシュ・コヒーレンシー手段内で開始し、
該キャッシュ・コヒーレンシー手段は、これらのキャッシュ手段内のデータがコヒーレントを保つことを保障するために、書込みアクセス要求を発行する演算処理手段に関連付けられたキャッシュ手段を含む、複数の演算処理手段に関連付けられた各々のキャッシュ手段に関してコヒーレンシー操作を行い、
更に、該キャッシュ・コヒーレンシー手段は、書込みアクセス要求の対象となるデータ各データ値に関して、前記共有メモリ手段に更新要求を発行するデータ処理装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0620609A GB2442984B (en) | 2006-10-17 | 2006-10-17 | Handling of write access requests to shared memory in a data processing apparatus |
PCT/GB2007/003479 WO2008047070A1 (en) | 2006-10-17 | 2007-09-13 | Handling of write access requests to shared memory in a data processing apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010507160A true JP2010507160A (ja) | 2010-03-04 |
Family
ID=37507892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009532879A Pending JP2010507160A (ja) | 2006-10-17 | 2007-09-13 | データ処理装置の共有メモリへの書込みアクセス要求の処理 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8271730B2 (ja) |
JP (1) | JP2010507160A (ja) |
CN (1) | CN101523361B (ja) |
GB (1) | GB2442984B (ja) |
TW (1) | TWI408550B (ja) |
WO (1) | WO2008047070A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012014285A1 (ja) * | 2010-07-27 | 2012-02-02 | 富士通株式会社 | 割込制御方法、マルチコアプロセッサシステム、および割込制御プログラム |
EP2879058A1 (en) | 2013-11-29 | 2015-06-03 | Fujitsu Limited | Parallel computer system, control method of parallel computer system, information processing device, arithmetic processing device, and communication control device |
JP2016512373A (ja) * | 2013-03-15 | 2016-04-25 | シマンテック コーポレーションSymantec Corporation | 共有記憶装置環境におけるローカルキャッシュコヒーレンシーの提供 |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7769958B2 (en) * | 2007-06-22 | 2010-08-03 | Mips Technologies, Inc. | Avoiding livelock using intervention messages in multiple core processors |
US7739455B2 (en) * | 2007-06-22 | 2010-06-15 | Mips Technologies, Inc. | Avoiding livelock using a cache manager in multiple core processors |
US8706974B2 (en) * | 2008-04-30 | 2014-04-22 | Freescale Semiconductor, Inc. | Snoop request management in a data processing system |
US8762652B2 (en) * | 2008-04-30 | 2014-06-24 | Freescale Semiconductor, Inc. | Cache coherency protocol in a data processing system |
US8423721B2 (en) * | 2008-04-30 | 2013-04-16 | Freescale Semiconductor, Inc. | Cache coherency protocol in a data processing system |
US8347035B2 (en) * | 2008-12-18 | 2013-01-01 | Intel Corporation | Posting weakly ordered transactions |
US8438452B2 (en) * | 2008-12-29 | 2013-05-07 | Intel Corporation | Poison bit error checking code scheme |
CN102129662B (zh) * | 2010-01-18 | 2013-02-27 | 环旭电子股份有限公司 | 提升显示操作效能的显示控制系统、电脑系统及控制方法 |
US20110276766A1 (en) * | 2010-05-05 | 2011-11-10 | Broadcom Corporation | Configurable memory controller |
GB2481232A (en) * | 2010-06-16 | 2011-12-21 | Advanced Risc Mach Ltd | Cache for a multiprocessor system which can treat a local access operation as a shared access operation |
WO2012047551A1 (en) * | 2010-10-06 | 2012-04-12 | Marvell World Trade Ltd. | Distributed cache coherency protocol |
KR20130123387A (ko) * | 2010-10-25 | 2013-11-12 | 마벨 월드 트레이드 리미티드 | 클러스터 캐시 코히어런시 프로토콜 |
US8789065B2 (en) | 2012-06-08 | 2014-07-22 | Throughputer, Inc. | System and method for input data load adaptive parallel processing |
US8490111B2 (en) * | 2011-04-16 | 2013-07-16 | Throughputer, Inc. | Efficient network and memory architecture for multi-core data processing system |
US20130117168A1 (en) | 2011-11-04 | 2013-05-09 | Mark Henrik Sandstrom | Maximizing Throughput of Multi-user Parallel Data Processing Systems |
US9471532B2 (en) | 2011-02-11 | 2016-10-18 | Microsoft Technology Licensing, Llc | Remote core operations in a multi-core computer |
US9448847B2 (en) | 2011-07-15 | 2016-09-20 | Throughputer, Inc. | Concurrent program execution optimization |
CN102262608A (zh) * | 2011-07-28 | 2011-11-30 | 中国人民解放军国防科学技术大学 | 基于处理器核的协处理器读写操作控制方法及装置 |
US9176913B2 (en) * | 2011-09-07 | 2015-11-03 | Apple Inc. | Coherence switch for I/O traffic |
CN102591800B (zh) * | 2011-12-31 | 2015-01-07 | 龙芯中科技术有限公司 | 一种弱一致性存储模型的数据访存系统和方法 |
US9405477B2 (en) | 2012-04-25 | 2016-08-02 | Intel Corporation | Method and system for maintaining release consistency in shared memory programming |
US9298627B2 (en) * | 2013-01-14 | 2016-03-29 | Marvell World Trade Ltd. | Shared op-symmetric update-sensitive variables |
US20150058926A1 (en) * | 2013-08-23 | 2015-02-26 | International Business Machines Corporation | Shared Page Access Control Among Cloud Objects In A Distributed Cloud Environment |
WO2015099730A1 (en) | 2013-12-26 | 2015-07-02 | Intel Corporation | Sharing memory and i/o services between nodes |
US10680957B2 (en) * | 2014-05-28 | 2020-06-09 | Cavium International | Method and apparatus for analytics in a network switch |
US9454313B2 (en) * | 2014-06-10 | 2016-09-27 | Arm Limited | Dynamic selection of memory management algorithm |
CN104461957A (zh) * | 2014-08-28 | 2015-03-25 | 浪潮(北京)电子信息产业有限公司 | 一种异构多核cpu共享片上高速缓存的方法及装置 |
WO2016068870A1 (en) * | 2014-10-28 | 2016-05-06 | Hewlett Packard Enterprise Development Lp | Media controller with coordination buffer |
US9720832B2 (en) | 2015-03-27 | 2017-08-01 | International Business Machines Corporation | Store operations to maintain cache coherence |
GB2539641B (en) * | 2015-06-11 | 2019-04-03 | Advanced Risc Mach Ltd | Coherency between a data processing device and interconnect |
US20170078367A1 (en) * | 2015-09-10 | 2017-03-16 | Lightfleet Corporation | Packet-flow message-distribution system |
US11228458B2 (en) * | 2015-09-10 | 2022-01-18 | Lightfleet Corporation | Group-coherent memory |
KR102428563B1 (ko) * | 2015-09-30 | 2022-08-03 | 삼성전자주식회사 | 수눕 작동을 관리하는 코히런트 인터커넥트와 이를 포함하는 데이터 처리 장치들 |
US9652385B1 (en) * | 2015-11-27 | 2017-05-16 | Arm Limited | Apparatus and method for handling atomic update operations |
GB2545897B (en) * | 2015-12-21 | 2018-02-07 | Advanced Risc Mach Ltd | Asymmetric coherency protocol |
GB2551529B (en) * | 2016-06-21 | 2018-09-12 | Advanced Risc Mach Ltd | Switching between private cache and shared memory to handle atomic operations |
US10223032B2 (en) | 2017-04-28 | 2019-03-05 | International Business Machines Corporation | Queue control for shared memory access |
TWI680375B (zh) * | 2018-08-23 | 2019-12-21 | 慧榮科技股份有限公司 | 具有分散式信箱架構的多處理器系統及其處理器錯誤檢查方法 |
US10802973B1 (en) | 2019-07-01 | 2020-10-13 | Bank Of America Corporation | Data access tool |
CN110389837B (zh) * | 2019-07-23 | 2023-04-18 | 中国工商银行股份有限公司 | 数据访问方法、装置、设备、存储介质及系统 |
CN112463650A (zh) * | 2020-11-27 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种多核cpu下的l2p表的管理方法、设备以及介质 |
GB2618366A (en) * | 2022-05-05 | 2023-11-08 | Advanced Risc Mach Ltd | Interrupt controller, apparatus, interrupt control method and computer-readable medium |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5797026A (en) * | 1994-02-28 | 1998-08-18 | Intel Corporation | Method and apparatus for self-snooping a bus during a boundary transaction |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2260429B (en) * | 1991-10-11 | 1995-05-24 | Intel Corp | Versatile cache memory |
US6374330B1 (en) * | 1997-04-14 | 2002-04-16 | International Business Machines Corporation | Cache-coherency protocol with upstream undefined state |
US5966729A (en) * | 1997-06-30 | 1999-10-12 | Sun Microsystems, Inc. | Snoop filter for use in multiprocessor computer systems |
US6044438A (en) * | 1997-07-10 | 2000-03-28 | International Business Machiness Corporation | Memory controller for controlling memory accesses across networks in distributed shared memory processing systems |
US6526481B1 (en) * | 1998-12-17 | 2003-02-25 | Massachusetts Institute Of Technology | Adaptive cache coherence protocols |
US6868481B1 (en) * | 2000-10-31 | 2005-03-15 | Hewlett-Packard Development Company, L.P. | Cache coherence protocol for a multiple bus multiprocessor system |
US6925634B2 (en) * | 2001-01-24 | 2005-08-02 | Texas Instruments Incorporated | Method for maintaining cache coherency in software in a shared memory system |
US6957317B2 (en) * | 2002-10-10 | 2005-10-18 | Intel Corporation | Apparatus and method for facilitating memory data access with generic read/write patterns |
US7143264B2 (en) * | 2002-10-10 | 2006-11-28 | Intel Corporation | Apparatus and method for performing data access in accordance with memory access patterns |
US7592668B2 (en) | 2006-03-30 | 2009-09-22 | Fairchild Semiconductor Corporation | Charge balance techniques for power devices |
-
2006
- 2006-10-17 GB GB0620609A patent/GB2442984B/en not_active Expired - Fee Related
-
2007
- 2007-09-13 JP JP2009532879A patent/JP2010507160A/ja active Pending
- 2007-09-13 CN CN2007800383933A patent/CN101523361B/zh active Active
- 2007-09-13 WO PCT/GB2007/003479 patent/WO2008047070A1/en active Application Filing
- 2007-09-19 TW TW096134991A patent/TWI408550B/zh not_active IP Right Cessation
- 2007-10-10 US US11/907,265 patent/US8271730B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5797026A (en) * | 1994-02-28 | 1998-08-18 | Intel Corporation | Method and apparatus for self-snooping a bus during a boundary transaction |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012014285A1 (ja) * | 2010-07-27 | 2012-02-02 | 富士通株式会社 | 割込制御方法、マルチコアプロセッサシステム、および割込制御プログラム |
JP5387776B2 (ja) * | 2010-07-27 | 2014-01-15 | 富士通株式会社 | 割込制御方法、マルチコアプロセッサシステム、および割込制御プログラム |
US9043520B2 (en) | 2010-07-27 | 2015-05-26 | Fujitsu Limited | Interrupt control method and multicore processor system |
JP2016512373A (ja) * | 2013-03-15 | 2016-04-25 | シマンテック コーポレーションSymantec Corporation | 共有記憶装置環境におけるローカルキャッシュコヒーレンシーの提供 |
EP2879058A1 (en) | 2013-11-29 | 2015-06-03 | Fujitsu Limited | Parallel computer system, control method of parallel computer system, information processing device, arithmetic processing device, and communication control device |
US9542313B2 (en) | 2013-11-29 | 2017-01-10 | Fujitsu Limited | Parallel computer system, control method of parallel computer system, information processing device, arithmetic processing device, and communication control device |
Also Published As
Publication number | Publication date |
---|---|
TW200832133A (en) | 2008-08-01 |
US8271730B2 (en) | 2012-09-18 |
GB0620609D0 (en) | 2006-11-29 |
WO2008047070A1 (en) | 2008-04-24 |
GB2442984B (en) | 2011-04-06 |
CN101523361B (zh) | 2012-12-12 |
GB2442984A (en) | 2008-04-23 |
CN101523361A (zh) | 2009-09-02 |
US20080091884A1 (en) | 2008-04-17 |
TWI408550B (zh) | 2013-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2010507160A (ja) | データ処理装置の共有メモリへの書込みアクセス要求の処理 | |
US9513904B2 (en) | Computer processor employing cache memory with per-byte valid bits | |
KR101639672B1 (ko) | 무한 트랜잭션 메모리 시스템 및 그 동작 방법 | |
US7360031B2 (en) | Method and apparatus to enable I/O agents to perform atomic operations in shared, coherent memory spaces | |
US8996812B2 (en) | Write-back coherency data cache for resolving read/write conflicts | |
US7305522B2 (en) | Victim cache using direct intervention | |
US6546462B1 (en) | CLFLUSH micro-architectural implementation method and system | |
US7305523B2 (en) | Cache memory direct intervention | |
JP3431824B2 (ja) | アクセス方法及び処理装置 | |
US7434007B2 (en) | Management of cache memories in a data processing apparatus | |
US5043886A (en) | Load/store with write-intent for write-back caches | |
US6272602B1 (en) | Multiprocessing system employing pending tags to maintain cache coherence | |
US7577794B2 (en) | Low latency coherency protocol for a multi-chip multiprocessor system | |
JPH07253928A (ja) | 2重化キャッシュ・スヌープ機構 | |
GB2507758A (en) | Cache hierarchy with first and second level instruction and data caches and a third level unified cache | |
US20060294319A1 (en) | Managing snoop operations in a data processing apparatus | |
US8332592B2 (en) | Graphics processor with snoop filter | |
JP4577729B2 (ja) | ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法 | |
KR20070040340A (ko) | 소형 캐시 시스템에서 원자적 보존 라인에 라이트백하는것을 배제하는 방법 및 시스템 | |
US8732410B2 (en) | Method and apparatus for accelerated shared data migration | |
JP5587539B2 (ja) | ローカルメモリデータのコヒーレントなキャッシュ処理 | |
US7543112B1 (en) | Efficient on-chip instruction and data caching for chip multiprocessors | |
EP0533373A2 (en) | Computer system having cache memory | |
KR101192423B1 (ko) | 멀티코어 시스템 및 멀티코어 시스템의 메모리 관리 장치 | |
GB2401227A (en) | Cache line flush instruction and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120113 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120608 |