(57)【要約】データ処理装置２は、アクセス対象のデータ項目を記憶するためのキャッシュメモリ８を備えている。コヒーレンシ制御回路２０は、キャッシュメモリ内に記憶されているデータ項目と、キャッシュメモリの外部に記憶されているデータ項目の１つ以上の他のコピーとの間のコヒーレンシを制御する。データアクセスバッファ６は、キャッシュメモリ内に記憶されているそれぞれのデータ項目に対する複数のデータアクセスをバッファリングする。アクセス制御回路２０は、コヒーレンシ制御回路によって管理されるコヒーレンシステータスに応答して、複数のデータ項目をアトミックセットのデータアクセスとして一緒にアトミックに実行され、これら全てのコヒーレンシステータスを保証に行われるようにする。データ項目は、アトミックデータアクセスのセットが開始される前に、アトミックデータアクセスのセットの全てがキャッシュメモリ内で実行されることを可能にする。
2019533239.tif 000002
【特許請求の範囲】
【請求項１】
データを処理する装置において、
データアクセス動作を含むデータ処理動作を実行する処理回路と、
前記データアクセス動作によってアクセスされるデータ項目を記憶するキャッシュメモリと、
前記キャッシュメモリ内に記憶された前記データ項目と前記キャッシュメモリの外部に記憶された前記データ項目の１つ以上の他のコピーとの間のコヒーレンシを制御するコヒーレンシ制御回路と、
前記キャッシュメモリ内に記憶されたそれぞれのデータ項目への複数のデータアクセスをバッファするデータアクセスバッファと、
アトミックセットのデータアクセスとしてアトミックに一緒に実行されるそれぞれのデータアクセス動作に関して複数のデータ項目の点で前記コヒーレンシ制御回路によって管理されるコヒーレンシステータスに応答するアクセス制御回路であって、前記アトミックセットのデータアクセスが開始されてアトミックに一緒に実行される前に、前記複数のデータ項目のための前記コヒーレンシステータスが、前記キャッシュメモリ内で実行される全ての前記アトミックセットのデータアクセスを許可することを保証する、前記アクセス制御回路と、
を備えた装置。
【請求項２】
前記アトミックセットのデータアクセスは、アトミックセットのデータ書き込みであり、前記アクセス制御回路は、全ての前記アトミックセットのデータ書き込みに対する前記コヒーレンシステータスが、前記データ書き込みのアトミックセットの全ては、アトミックデータ書き込みのアトミックセットが開始され、アトミックに一緒に実行される前に、キャッシュメモリ内で実行される全ての書き込みを許可する書き込み許可コヒーレンシステータスであることを保証する、請求項１に記載の装置。
【請求項３】
前記書き込み許可コヒーレンシステータスが、
排他コヒーレンシステータスが、対応するデータ項目への排他アクセス権を有することを示す、前記排他コヒーレンシステータスと、
前記キャッシュメモリが、前記キャッシュメモリ内で修正された値を有する対応するデータ項目を記憶していることを示す、修正コヒーレンシステータスと、
を含む、請求項２に記載の装置。
【請求項４】
前記コヒーレンシ制御回路が、前記キャッシュメモリの外部に記憶され、前記アトミックデータ書き込みのセットのいずれかに対応する、他のコピーへの結果的に対応する書き込みを制御する、請求項２または３に記載の装置。
【請求項５】
前記アトミックセットのデータ書き込みの１つに対応するデータ項目の結果的に対応する書き込みは、前記キャッシュメモリ内に記憶された前記データ項目が書き込み許可コヒーレンシステータスを持たなくなるまで前記コヒーレンシ制御回路によって延期される、請求項４に記載の装置。
【請求項６】
前記アトミックセットのデータアクセスはアトミックセットのデータ読み取りであり、前記アクセス制御回路は、前記アトミックセットの全てのデータ読み取りに対する前記コヒーレンシステータスが読み取り許可コヒーレンシステータスであることを保証し、前記読み取り許可コヒーレンシステータスは、前記アトミックセットのデータ読み出しが開始され、アトミックに一緒に実行される前に、前記アトミックセットのデータ読み出しの全てが前記キャッシュメモリ内で実行されることを許可する、請求項１から５のいずれかひとつに記載の装置。
【請求項７】
前記読み取り許可コヒーレンシステータスは、
前記キャッシュメモリが、対応するデータ項目への排他的アクセス権を有することを示す、排他的コヒーレンシステータスと、
前記キャッシュメモリが、前記キャッシュメモリ内で修正された値を有する対応するデータ項目を記憶していることを示す、修正コヒーレンシステータスと、
前記キャッシュメモリが、前記キャッシュメモリの外部にも記憶されている対応するデータ項目の最新のコピーを記憶していることを示す、共有コヒーレンシステータスと、
を含む、請求項６に記載の装置。
【請求項８】
前記アトミックセットのデータアクセスは、ペイロード値と、当該ペイロード値の有効性を示す対応する有効値へのアクセスである、請求項１から７のいずれかに記載の装置。
【請求項９】
前記アクセス制御回路は、前記処理回路によって実行されるプログラム命令に応答して前記処理回路によって実行される前記ペイロード値へのデータアクセス動作に応答して、前記対応する有効値へのデータアクセス動作を生成する、請求項８に記載の装置。
【請求項１０】
前記アクセス制御回路は、前記データアクセス動作によって指定されたメモリアドレスから前記ペイロード値までの前記対応する有効性データ値を記憶するメモリアドレスを決定する、請求項９に記載の装置。
【請求項１１】
前記ペイロードデータへのデータアクセス動作が前記ペイロード値を読み取るためのペイロード読み取り動作であるとき、前記アクセス制御回路は、前記ペイロード値の有効を示す有効性を示す前記有効値に応答すし、前記ペイロード値のリターンを防ぐために、前記ペイロード値の無効を示す前記有効値に応答する、請求項９または１０に記載の装置。
【請求項１２】
前記ペイロードデータへのデータアクセス動作が、前記ペイロード値を書き込むためのペイロード書き込み動作である場合、前記アクセス制御回路は、ペイロード値の有効性を示すために前記ペイロード値および前記有効値をアトミックに書き込む、請求項９、１０および１１のいずれかに記載の装置。
【請求項１３】
前記ペイロードデータへのデータアクセス動作が前記ペイロード値を読み出すための標準の読み出し動作である場合、前記アクセス制御回路は、前記ペイロード値のリターンを防ぐために、前記有効値に応答して前記ペイロード値の有効性を示す前記有効値に応答し、前記ペイロード値のリターンを許可するために、前記ペイロード値の無効性を示す前記有効値に応答する、請求項９から１２のいずれかに記載の装置。
【請求項１４】
前記ペイロードデータへのデータアクセス動作が、前記ペイロード値を書き込むための標準の書き込み動作である場合、前記アクセス制御回路は、前記ペイロード値の有効性をアトミックに示す有効値に応答して、前記ペイロードデータの無効化を示すために、前記ペイロードデータの書き込みおよび前記有効値の書き込みを実行し、前記ペイロードデータの無効化を示す前記有効値に応答して、前記ペイロードデータの書き込みを実行する、請求項９から１３のいずれかに記載の装置。
【請求項１５】
前記アクセス制御回路は、何らかのアクションが、許可されたアクセスを示すコヒーレンシステータスで前記キャッシュメモリ内に記憶された前記ペイロードデータを取得する前に、前記有効値が前記キャッシュメモリ内の前記有効値への許可されたアクセスを示すコヒーレンシステータスと共に前記キャッシュメモリ内に記憶されることをチェックする、請求項８から１４のいずれかに記載の装置。
【請求項１６】
前記ペイロードデータは、前記処理回路によって実行される対応するプロセスの許可された処理能力を示す能力データである、請求項８から１５のいずれか一項に記載の装置。
【請求項１７】
前記データ項目は前記キャッシュメモリのそれぞれのキャッシュライン内に記憶され、前記コヒーレンシステータスはキャッシュラインごとに管理される、請求項１から１６のいずれか一項に記載の装置。
【請求項１８】
前記キャッシュライン内に記憶された複数の前記有効値は、前記キャッシュライン内の有効値の数を減らし且つコヒーレンシステータスを共有するために前記キャッシュライン内に詰め込まれる請求項８または１７に記載の装置。
【請求項１９】
データ処理動作を実行するステップを含むデータ処理方法であって、
データアクセス動作を含むデータ処理動作を実行するステップと、
前記データアクセス動作によってアクセスされるデータ項目をキャッシュメモリ内に記憶するステップと、
前記キャッシュメモリ内に記憶された前記データ項目と前記キャッシュメモリの外部に記憶された前記データ項目の１つ以上の他のコピーとの間のコヒーレンシを制御するステップと、
前記キャッシュメモリ内に記憶されたそれぞれのデータ項目への複数のデータアクセスをバッファリングするステップと、
アトミックセットのデータアクセスとしてアトミックに一緒に実行されるようにして、それぞれのデータアクセス操作に関する複数のデータ項目のコヒーレンシステータスに応答して、前記アトミックセットのデータアクセスが開始されてアトミックに一緒に実行される前に、前記複数のデータ項目の前記コヒーレンシステータスが、前記キャッシュメモリ内で実行される全ての前記アトミックセットのデータアクセスを許可することを保証するステップと、
を含む、前記データ処理方法。
【請求項２０】
データを処理する装置において、
データ処理動作を実行する処理回路であって、前記データ処理動作は、対応する仮想メモリアドレス空間内の仮想メモリアドレスを使用して指定されたデータアクセス動作を含む、前記処理回路と、
前記仮想メモリアドレスを物理メモリアドレス空間内の物理アドレスに変換して、メモリ回路をアドレス指定する、アドレス変換回路と、
複数のデータ項目へのデータアクセスの仮想メモリアドレスに応答して、アトミックセットのデータアクセスとして実行されるように前記複数のデータ項目への前記データアクセスを制御する、アクセス制御回路と、
を備えた装置。
【請求項２１】
データを処理する方法において、
対応する仮想メモリアドレス空間内の仮想メモリアドレスを使用して指定されたデータアクセス動作を含むデータ処理動作を実行するステップと、
メモリ回路をアドレス指定するために、前記仮想アドレスを物理アドレス空間内の物理アドレスに変換するステップと、
複数のデータ項目へのデータアクセスの仮想メモリアドレスに応答して、アトミックセットのデータアクセスとして実行されるように前記複数のデータ項目への前記データアクセスを制御するステップと、
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示はデータ処理システムの分野に関する。より具体的には、本開示は、アトミックに実行されるべきデータアクセス動作をサポートするデータ処理システムに関する。
【背景技術】
【０００２】
データ処理システムの分野におけるアトミック操作は、少なくともプログラマまたは外部の観察者の観点から、それらの操作が一緒に実行されて全てが成功するかまたは失敗するように実行されるように、操作または操作のグループが実行されるように制御されることを示す。そのようなアトミック性は、サポートするのに有用な振る舞いであり、それは、例えば、正しい動作、または高レベルのセキュリティを保証するのに有用であり得る方法で、複数の状態項目またはデータを同期させることを保証できる。  
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかし、アトミックな振る舞いを提供すると、通常、システムにパフォーマンス上のペナルティと複雑さが増す。たとえば、データの複数のインスタンスへの更新をまとめて実行することを保証するためにデータベースのロックを使用すると、処理が大幅に遅くなる可能性がある。
【課題を解決するための手段】
【０００４】
一態様から見ると、本開示は、データを処理する装置において、
データアクセス動作を含むデータ処理動作を実行する処理回路と、
前記データアクセス動作によってアクセスされるデータ項目を記憶するキャッシュメモリと、
前記キャッシュメモリ内に記憶された前記データ項目と前記キャッシュメモリの外部に記憶された前記データ項目の１つ以上の他のコピーとの間のコヒーレンシを制御するコヒーレンシ制御回路と、
前記キャッシュメモリ内に記憶されたそれぞれのデータ項目への複数のデータアクセスをバッファするデータアクセスバッファと、
アトミックセットのデータアクセスとしてアトミックに一緒に実行されるそれぞれのデータアクセス動作に関して複数のデータ項目の点で前記コヒーレンシ制御回路によって管理されるコヒーレンシステータスに応答するアクセス制御回路であって、前記アトミックセットのデータアクセスが開始されてアトミックに一緒に実行される前に、前記複数のデータ項目のための前記コヒーレンシステータスが、前記キャッシュメモリ内で実行される全ての前記アトミックセットのデータアクセスを許可することを保証する、前記アクセス制御回路と、
を備えた装置を提供する。
【０００５】
別の態様から見ると、本開示は、データ処理動作を実行するステップを含むデータ処理方法であって、
データアクセス動作を含むデータ処理動作を実行するステップと、
前記データアクセス動作によってアクセスされるデータ項目をキャッシュメモリ内に記憶するステップと、
前記キャッシュメモリ内に記憶された前記データ項目と前記キャッシュメモリの外部に記憶された前記データ項目の１つ以上の他のコピーとの間のコヒーレンシを制御するステップと、
前記キャッシュメモリ内に記憶されたそれぞれのデータ項目への複数のデータアクセスをバッファリングするステップと、
アトミックセットのデータアクセスとしてアトミックに一緒に実行されるようにして、それぞれのデータアクセス操作に関して複数のデータ項目のコヒーレンシステータスに応答して、前記アトミックセットのデータアクセスが開始されてアトミックに一緒に実行される前に、前記複数のデータ項目の前記コヒーレンシステータスが、前記キャッシュメモリ内で実行される全ての前記アトミックセットのデータアクセスを許可することを保証するステップと、
を含む、前記データ処理方法を提供する。
【０００６】
別の態様から見ると、本開示は、データを処理する装置において、
データ処理動作を実行する処理回路であって、前記データ処理動作は、対応する仮想メモリアドレス空間内の仮想メモリアドレスを使用して指定されたデータアクセス動作を含む、前記処理回路と、
前記仮想メモリアドレスを物理メモリアドレス空間内の物理アドレスに変換して、メモリ回路をアドレス指定する、アドレス変換回路と、
複数のデータ項目へのデータアクセスの仮想メモリアドレスに応答して、アトミックセットのデータアクセスとして実行されるように前記複数のデータ項目への前記データアクセスを制御する、アクセス制御回路と、
を備えた装置を提供する。
【０００７】
別の観点から見ると、本開示は、データを処理する方法において、
対応する仮想メモリアドレス空間内の仮想メモリアドレスを使用して指定されたデータアクセス動作を含むデータ処理動作を実行するステップと、
メモリ回路をアドレス指定するために、前記仮想アドレスを物理アドレス空間内の物理アドレスに変換するステップと、
複数のデータ項目へのデータアクセスの仮想メモリアドレスに応答して、アトミックセットのデータアクセスとして実行されるように前記複数のデータ項目への前記データアクセスを制御するステップと、
を含む方法を提供する。
【０００８】
実施形態例は、添付の図面を参照して、単なる一例として説明される。
【図面の簡単な説明】
【０００９】
【図１】図１は、複数のデータアクセスがアトミックセットのデータアクセス（ａｔｏｍｉｃ  ｓｅｔ  ｏｆ  ｄａｔａ  ａｃｃｅｓｓｅｓ）として実行されることを保証するためのメカニズムを組み込んだマルチコア／キャッシュデータ処理システムの一部を概略的に示す図である。
【図２】図２は、ＴＡＧ値（有効値）アドレスが機能値（ペイロード値）アドレスからどのように導出され得るかを概略的に示す図である。
【図３】図３は、記憶動作を概略的に示す流れ図である。
【図４】図４は、ロード動作を概略的に示す流れ図である。
【発明を実施するための形態】
【００１０】
図１は、バッファ回路６によってキャッシュメモリ８に結合されたプロセッサコア４を含むデータ処理システム２を概略的に示す。メモリ管理ユニット１０は、プロセッサコア４によって生成された仮想アドレス（ＶＡ：Ｖｉｒｔｕａｌ  Ａｄｄｒｅｓｓ）を、キャッシュメモリ８およびメインメモリ１６によって使用されるような物理アドレス（ＰＡ：Ｐｈｙｓｉｃａｌ  ａｄｄｒｅｓｓ）に変換することを担当する。プロセッサコア４およびキャッシュメモリ８は、データ処理システム２内に存在するそのようなコアおよびキャッシュの組み合わせの一例である。より具体的には、破線１２で囲まれた回路の他の例がデータ処理システム２内に存在し、相互接続回路１４に接続する。相互接続回路１４は、プロセッサコア４の異なるインスタンスとキャッシュメモリ８との間で共有されるメインメモリ１６に接続される。
【００１１】
物理メモリアドレス空間内の所与のメモリアドレスに対応するデータ値の異なるコピー間のコヒーレンシを管理するために、データ処理システム２は、ＭＥＳＩプロトコルのようなプロトコルに従って、相互接続回路１４を介してスヌープ要求およびスヌープ応答を転送することによって動作するコヒーレンシ機構を備える。このような技術によれば、キャッシュメモリ８内に記憶されている個々のキャッシュライン１８のコヒーレンシステータスは、修正、排他的、共用、または無効状態（ｓｔａｔｅ）のうちの１つに割り当てられる。それぞれのキャッシュライン１８のキャッシュライン毎のコヒーレンシステータスは、キャッシュメモリ８内に記憶される。キャッシュメモリ８に関連するコヒーレンシ制御回路２０は、関係するキャッシュメモリ８におけるそれらのキャッシュラインのコヒーレンシステータスに応じて、キャッシュライン１８へのデータアクセス動作を管理するように動作する。例えば、キャッシュライン１８がキャッシュメモリ８内で共有状態に保持され、プロセッサコア４がそのキャッシュラインに書き込みたい場合、コヒーレンシ制御回路２０は相互接続回路１４を介してスヌープ要求を発行する。書き込みの実行を許可する前に、相互接続回路１４に結合されたスヌープコントローラ２２を使用して、そのキャッシュライン１８への排他的アクセスを取得する。排他的アクセスが得られると、これはデータ処理システム内の他の場所に保持されている当該メモリアドレスに対応するデータ値のコピーを無効としてマークすることになる。
【００１２】
同様に、キャッシュライン１８が関連するプロセッサコア４によって書き込まれると、そのステータス（ｓｔａｔｕｓ）は修正されたものとしてマークされ、他の場所に保持されているそのデータ値の他のコピーが期限切れになることを示す。修正されたデータ値がキャッシュメモリ８から追い出されたときにそれをメインメモリ１６に書き戻す必要がある。
【００１３】
上述のコヒーレンシステータス値およびコヒーレンシ管理技術は、可能であり、かつ当技術分野の技術者にはよく知られている、様々な異なるそのようなコヒーレンシステータス値、コヒーレンシプロトコルおよびコヒーレンシ管理技術の一例にすぎないことを理解されたい。  
【００１４】
プロセッサコア４は、データアクセス動作を実行するためのロード記憶パイプライン２６を含む複数の処理パイプライン２２、２４、２６を含む。これらのデータアクセス動作のうちのいくつかは、１つまたは複数の機能レジスタ２８へのロードまたはそこからの記憶に関連し得る。これらの能力レジスタは、プロセッサコア４によって実行される対応するプロセスの許可された処理能力を示し制御するために使用することができる機能値（Ｃａｐａｂｉｌｉｔｙ  Ｖａｌｕｅ）を記憶する。例えば、機能値を使用して、特定のプロセスがその実行中にどの範囲のメモリアドレスにアクセスすることができるかを制御することができる。機能値の完全性とセキュリティを保護するために、データアクセスに関する特定のデータ値が有効な機能値として扱われるべきであるか否かを示す関連するＴＡＧ値を持っている。より具体的には、データアクセスに関連する仮想アドレスは、対応する仮想アドレスが有効な機能値を記憶しているかまたは有効な機能値を記憶していないことを示すＴＡＧ値を有するＴＡＧ値の対応するアドレスを導出するために使用され得る。このようなシステム内の機能値とＴＡＧ値は密接な関係にあり、処理の完全性と十分な程度のセキュリティを確保するためにアトミックにアクセスする必要がある。例えば、機能値が読み取られ、ＴＡＧ値が読み取られるとき、その可能性を回避するために、機能値とＴＡＧ値とは同じ時点で（少なくともプログラマの観点から）サンプリングされるべきである。例えば、有効値は、機能値が読み取られた時点と対応するＴＡＧ値が読み取られた後続の時点との間で変更される。
【００１５】
上述した機能値およびＴＡＧ値は、複数のデータ項目がアトミックセットのデータアクセスとしてアクセスされるべきステータスの一例である。より一般的な例は、ペイロード値と対応する有効値とへのアクセスを検討することである。有効値は、対応するペイロード値の有効性ステータスの一態様を示す。互いに関連付けられた複数のデータ項目がアトミックセットのデータアクセスを介してアクセスされるべきである他の多くの種類のシステムおよび使用法があることが理解されるであろう。
【００１６】
バッファ回路６は、複数の読み取りまたは複数の書き込みを一緒に実行することをサポートする。これらの読み取りおよび書き込みは、正確に同時には行われないかもしれないが、バッファ回路６によって提供されるハードウェアサポートを考えると、それらはプログラマの観点からは同時に実行されるように見えることがある。
【００１７】
バッファ回路６はアクセス制御回路３０を含む。アクセス制御回路３０は、プロセッサコア４からの信号に応答して、データアクセスがいつ実行されているかを、そのデータアクセスが機能値に対するものであるか否かを示す。アクセス制御回路３０はまた、キャッシュメモリ８内に記憶されている異なるキャッシュライン１８のコヒーレンシステータス値を読み取ることができる。したがって、アクセス制御回路３０は、アクセスが機能アクセスとして実行されるべきであることを検出すると、対応するＴＡＧ値のアドレスを生成する。プロセッサコア４によって生成された機能アクセスは、仮想メモリ空間内の仮想アドレスを使用する。ＴＡＧ値もこの仮想メモリ空間内のＴＡＧアドレスを使用する。機能値の仮想アドレスと対応するＴＡＧ値の仮想アドレスとの間の関係は予め定められており、図２に関連して以下にさらに説明される。メモリ管理部２０は、キャッシュメモリ８およびメインメモリ１６が物理アドレス（ＰＡ）を用いて動作することにより、仮想アドレス（ＶＡ）を物理アドレス（ＰＡ）に再マッピングする。メモリ管理ユニット１０はまた、許可制御などの他の制御機能を担当してもよい。
【００１８】
アクセス制御回路３０がアクセスされるコヒーレンシ値のアドレスと対応するＴＡＧ値のアドレス（現在は物理アドレスに変換されている）との両方を有する場合、それらの値を記憶するキャッシュメモリ内の対応するキャッシュライン１８のコヒーレンシステータスが決定されてもよい。キャッシュメモリ１８が対応するＴＡＧ値のコヒーレンシ値を現在記憶していない場合、これは以下にさらに説明されるようにキャッシュメモリ８にフェッチされてもよい。アクセス制御回路は、それが読み取ることによってアトミックに実行される機能値および対応するＴＡＧ値へのアクセスを管理するために、それが読み取るコヒーレンシステータス（コヒーレンシ制御回路２０およびスヌープコントローラ２２によって管理されるコヒーレンシステータス）に応答する。コヒーレンシステータスは、コヒーレンシ値へのアクセスおよび対応するＴＡＧ値へのアクセスを含むアトミックセットのデータアクセスの全てが、そのアトミックセットのデータアクセスが開始される前に、キャッシュメモリ内で一緒に実行できることを示す。コヒーレンシステータスが、アクセス要求を発信したプロセッサコアのキャッシュメモリ８内に記憶されたデータ値を用いてローカルにアクセスを実行することを許可するようなものでない場合、スヌープ要求およびスヌープ応答は、アクセスのアトミックセットの一部を形成するアクセスがキャッシュメモリ８でローカルに実行されることを可能にする適切なコヒーレンシステータスに関連するキャッシュラインのコピーを取得するためにデータ処理システム２の残りの部分と共に、コヒーレンシ制御回路２０とスヌープコントローラ２２とを用いて交換される。
【００１９】
アトミックセットのデータアクセスがアトミックセットのデータ書き込みである場合、アクセス制御回路３０は、全てのアトミックセットのデータ書き込みに対するコヒーレンシステータスが、全てのアトミック書き込みを許可する書き込み許可コヒーレンシステータスであることを保証するように動作する。アトミックデータ書き込みセットのいずれかが開始される前にキャッシュメモリ８内で実行されるべきこれらのアトミックデータ書き込みセットは、低レイテンシでアトミックに一緒に実行される。図１に示す例の場合の書き込み許可コヒーレンシステータスの例としては、キャッシュメモリ８が対応するキャッシュラインへの排他アクセス書き込みを有することを示す排他的コヒーレンシステータスと、キャッシュメモリ８が対応するデータ項目をキャッシュメモリ８内に記憶されている間に修正された値で記憶している修正コヒーレンシステータスとがある。  
【００２０】
キャッシュメモリ８内のデータ項目（キャッシュライン１８）への書き込みが行われると、コヒーレンシ制御回路２０およびスヌープコントローラ２２によってコヒーレンシステータスが使用されて、データ処理装置内の他の場所に保持されている対応するデータ値のその後の修正が制御される。データ書き込みのアトミックセットのいずれかから生じる対応する後続のデータ書き込みは、キャッシュメモリ８が書き込み許可データアクセスに関連するデータ項目を記憶しなくなるまで、例えば、そのデータ項目のコヒーレンシステータスが、排他的または修正されたものから変更されるまで、コヒーレンシ制御回路２０によって延期される可能性がある。
【００２１】
アトミックセットのデータアクセスがアトミックセットのデータ読み取りである場合、アクセス制御回路は、全てのアトミックセットのデータ読み取りに対するコヒーレンシステータスが、全てのアトミック読み取りを許可する読み取り許可コヒーレンシステータスであることを保証するように機能し得る。アトミックデータ読み出しセットのいずれかがキャッシュメモリ８内で実行される前に実行されるアトミックデータ読み出しセットは、それらが低レイテンシでアトミックに一緒に実行できるように開始される。図１の例示的な実施形態における読み取り許可コヒーレンシステータスの例には、上述したような排他的ステータスと、上述したような修正ステータスと、キャッシュメモリ８がデータ処理システム２内の他の場所（例えば、関係する特定のキャッシュメモリ８の外部）にも記憶されている対応するデータ項目の最新のコピーを記憶していることを示す共有コヒーレンシステータスとが含まれる。
【００２２】
図２は、ペイロード値（例えば、機能値）のアドレスと対応する有効値（例えば、ＴＡＧ値）の間の関係を概略的に示す。図示の例では、プロセッサコア４によって使用される仮想メモリアドレス空間は、有効値を記憶するための専用で、その最上部から１２８の部分を有する。最上部はＴＡＧベースアドレスで始まる。したがって、有効値のアドレスは、図２に示されるように決定され得る。したがって、仮想メモリアドレス空間は、ペイロード値を記憶するためのデータパーティションと、有効値を記憶するための対応するＴＡＧパーティションとに分割される。ＴＡＧパーティション内に記憶された有効値は、介在するヌル値（または潜在的に他のメタデータ）で詰められた（ｐａｄｄｅｄ）単一ビット値であり得る。これは、ＴＡＧ値のキャッシュライン１８がマルチプロセッサシステム内のキャッシュメモリ８のうちの１つにロードされるとき、関係するキャッシュラインがペイロードデータの対応するキャッシュラインの数が少なくなり、したがって、ＴＡＧ値の所与のキャッシュラインに対する競合が少なくなるように行われる。
【００２３】
図３は、本技法に従って実行することができる記憶動作を概略的に示す流れ図である。  データ記憶操作が受信されるまで、処理はステップ３２で待機する。次に、ステップ３４は、図２に示す関係に従って、受信したデータ記憶動作に対応するＴＡＧアドレスを生成する。ステップ３６は、ステップ３２で受信されたデータ記憶用のデータラインが、排他的状態または修正状態でキャッシュメモリ８内に存在するかどうかを判定する。ステップ３６で、データラインが排他的状態または修正状態では存在しないと判定された場合、処理はステップ３０に進み、メインメモリ１６から、または別のコアとキャッシュの組み合わせからデータラインが取得される。ステップ３６で、データラインが排他的状態または修正状態でキャッシュメモリ内に既に存在すると判定された場合、ステップ３８はバイパスされる。
【００２４】
ステップ４０において、関係するデータ記憶のデータラインに対するＴＡＧ値を含むＴＡＧラインがキャッシュメモリ８内に排他的状態または修正状態で既に存在するかどうかに関する決定が行われる。もしＴＡＧラインが存在しなければ、メモリ１６あるいは他のコアとキャッシュの組み合わせのいずれかからステップ４２で排他的ステータスと共にＴＡＧラインが得られる。ステップ４０で、ＴＡＧラインがキャッシュ８内に排他的状態または修正状態のいずれかで既に存在していると判定された場合、ステップ４２はバイパスされる。
【００２５】
ステップ３６、３８、４０および４２の動作は、ステップ４４に到達する前に、データラインと対応するＴＡＧラインとの両方が排他的状態または修正状態でキャッシュメモリ８内に存在することを保証する。次にステップ４４は、データライン内のデータ値と、バッファ回路６内のデュアルライン書き込みバッファからの対応するＴＡＧ値との両方のアトミック記憶（ａｔｏｍｉｃ  ｓｔｏｒｅ）を実行する。ステップ４６は、ステップ４４で書き込まれたデータラインとＴＡＧラインとの両方のコヒーレンシステータスを更新して、これらが修正されたことを示す。
【００２６】
図４は、ロード動作を概略的に示す流れ図である。データロードが受信されるまで、処理はステップ４８で待機する。次にステップ５０では、受信したデータロードに対応するＴＡＧアドレスを生成する。ステップ５２では、ステップ４８で受信したデータロードに対応するデータラインが、共有状態、排他状態、または修正状態のうちの１つでキャッシュメモリ８内に現在存在するかどうかを判定する。データラインが現在存在しない場合、ステップ５４はキャッシュメモリ８内のデータラインを共有ステータスと共に取得するように動作する。データラインがキャッシュメモリ８内に既に存在する場合、ステップ５４はバイパスされる。ステップ５６では、ステップ４８で受信したデータロードに対応するＴＡＧラインが、共有状態、排他状態、または修正状態のうちの１つでキャッシュメモリ８内に既に存在するかどうかを判定する。もしＴＡＧラインが現在存在していなければ、ＴＡＧラインはステップ５８で共有ステータスと共に得られる。ＴＡＧラインがステップ５６によって既に存在すると決定された場合、ステップ５８はバイパスされる。
【００２７】
ステップ６０は、キャッシュメモリ８内にキャッシュされたＴＡＧ値とデータ値との両方を、バッファ回路６のデュアルライン読み取りバッファにアトミックロード（ａｔｏｍｉｃ  ｌｏａｄ）する。デュアルライン読み取りバッファを使用するこのアトミックロードは、データ線とＴＡＧ値とが互いに矛盾しないままであることを保証する。
【００２８】
ステップ６２は、ステップ４８で受信されたデータロードが機能値のロードに対応するかどうかを判定する。ロードが機能値のものである場合、ステップ６４は、対応するＴＡＧ値が、ロードが適切に行われていることを示すという点で有効であるかどうかを判断する。ＴＡＧ値が有効である場合、ステップ６６はデータ値をコア４内の適切なレジスタにロードする動作をする。ステップ６４でＴＡＧ値が有効ではないと判断された場合、ステップ６８はエラーを発生させるように動作する。
【００２９】
例示的な実施形態を添付の図面を参照しながら本明細書で詳細に説明してきたが、特許請求の範囲はそれらの正確な実施形態に限定されず、様々な変更、追加、および修正が可能である。添付の特許請求の範囲の範囲および精神から逸脱することなく、特許請求の範囲を限定するものではない。  例えば、従属請求項の特徴の種々の組み合わせは、独立請求項の特徴を用いてなされ得る。
【図１】
2019533239.tif 000003
【図２】
2019533239.tif 000004
【図３】
2019533239.tif 000005
【図４】
2019533239.tif 000006
【国際調査報告】
2019533239.tif 000007
2019533239.tif 000008
2019533239.tif 000009