JP2001147858A - ハイブリッドコヒーレンスプロトコル - Google Patents

ハイブリッドコヒーレンスプロトコル

Info

Publication number
JP2001147858A
JP2001147858A JP2000301559A JP2000301559A JP2001147858A JP 2001147858 A JP2001147858 A JP 2001147858A JP 2000301559 A JP2000301559 A JP 2000301559A JP 2000301559 A JP2000301559 A JP 2000301559A JP 2001147858 A JP2001147858 A JP 2001147858A
Authority
JP
Japan
Prior art keywords
cache
transaction
memory
policy
logic
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
JP2000301559A
Other languages
English (en)
Other versions
JP5265827B2 (ja
Inventor
Shimizu D
シミズ ディー.
Jones Andrew
ジョーンズ アンドリュー
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.)
ST MICROELECTRONICS Inc
STMicroelectronics lnc USA
Original Assignee
ST MICROELECTRONICS Inc
STMicroelectronics lnc USA
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 ST MICROELECTRONICS Inc, STMicroelectronics lnc USA filed Critical ST MICROELECTRONICS Inc
Publication of JP2001147858A publication Critical patent/JP2001147858A/ja
Application granted granted Critical
Publication of JP5265827B2 publication Critical patent/JP5265827B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)

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

(57)【要約】 【課題】 キャッシュメモリシステムにおける共用メモ
リアクセスを効率的なものとさせる。 【解決手段】 コンピュータシステムがメモリシステム
を有しており、そのメモリシステムの少なくとも幾らか
は共用メモリとして指定されている。トランズアクショ
ンをベースとしてバスメカニズムがメモリシステムへ結
合しており且つそのトランズアクションセット内に定義
されたキャッシュコヒーレンシィトランズアクションを
有している。キャッシュメモリを有するプロセッサがト
ランズアクションをベースとしたバスメカニズムを介し
てメモリシステムへ結合されている。バスメカニズムへ
結合されているシステムコンポーネントはキャッシュコ
ヒーレンスポリシィを特定する論理を有している。シス
テムコンポーネント内の論理がバスメカニズム上の特定
されたキャッシュポリシィに従ってキャッシュトランズ
アクションを開始させる。プロセッサ内の論理がキャッ
シュトランズアクションによって特定されたキャッシュ
操作を実行することによって開始されたキャッシュトラ
ンズアクションに応答する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、大略、マイクロプ
ロセッサシステムに関するものであって、更に詳細に
は、キャッシュサポートを具備するマイクロプロセッサ
システムにおいてキャッシュコヒーレンスを与えるシス
テム、方法及びメカニズムに関するものである。
【0002】
【従来の技術】マイクロプロセッサはコンピュータプロ
グラムによって特定される命令にしたがってデータを処
理する。従来のシステムにおける命令及びデータは、メ
モリバスによってプロセッサへ結合されているメインメ
モリ内に格納される。命令を実行するためのプロセッサ
の能力は、典型的に、プロセッサへ命令及びデータを供
給するメモリサブシステムの能力をはるかにしのいでい
る。本明細書において使用するように、「マイクロプロ
セッサ」及び「プロセッサ」と言う用語は、完全命令セ
ットコンピュータ(CISC)、減少命令セットコンピ
ュータ(RISC)及びそれらのハイブリッドを包含し
ている。
【0003】殆どのプロセッサはメモリアクセスを高速
化するためにキャッシュメモリシステムを使用してい
る。キャッシュメモリは同一のデータ及び命令に対する
後のアクセスを高速化させるために設計された最近アク
セスされたデータ及び命令を保持している1つ又はそれ
以上のレベルの専用の高速メモリを有している。キャッ
シュ技術は、プログラムが同一の命令及びデータをしば
しば再使用するという前提に基づいている。又、命令及
びデータは「空間的局所性」と呼ばれる傾向を示し、そ
れは将来使用されるべき命令及びデータは最近使用され
た命令及びデータとメモリの同一の領域に位置されてい
る傾向があることを意味している。データがメインシス
テムメモリから読取られると、メインメモリ内の関連す
る位置に対するインデックスと共に、そのコピーがキャ
ッシュメモリ内に保存される。キャッシュエントリは、
特に要求されたデータばかりでなく、特に要求されたデ
ータの周りのデータも包含していることが多々ある。
【0004】キャッシュはその後のデータに対する要求
をモニタして、必要とされる情報が既にキャッシュ内に
格納されているか否かを判別する。データがキャッシュ
内に格納されている場合には、そのデータはすぐさまプ
ロセッサへ送られ、一方メインメモリから情報をフェッ
チするための試みはアボートされる(即ち開始されるこ
とはない)。一方、そのデータが以前にキャッシュ内に
格納されていない場合には、それはメインメモリから直
接的にフェッチされ且つ将来のアクセスに備えてキャッ
シュ内に保存される。
【0005】マイクロプロセッサの性能はキャッシュメ
モリの使用によって著しく向上される。キャッシュメモ
リはメインメモリよりもより低い待ち時間を有するメモ
リ装置を有している。特に、1つ又はそれ以上のレベル
のオンチップキャッシュメモリは特に低い待ち時間の格
納動作を与える。オンチップキャッシュメモリは単に1
つ又は2つのクロックサイクルの待ち時間を有するメモ
リ構造及び装置で実現することが可能である。キャッシ
ュメモリ、特にオンチップキャッシュメモリは、高速で
マイクロプロセッサによってアクセスされるのに特に適
している。
【0006】キャッシュサブシステムに対する1つのタ
スクはキャッシュコヒーレンスを維持することである。
キャッシュコヒーレンスとは、キャッシュメモリの内容
がメインメモリにおける対応する位置と一貫性を有する
ことを確保することのタスクのことを意味している。マ
イクロプロセッサのみがメインメモリへアクセスするこ
とが可能である場合には、キャッシュコヒーレンスは比
較的簡単なタスクである。然しながら、この制限事項は
メインメモリへの全てのアクセスをマイクロプロセッサ
を介して経路付けさせることを強制させる。グラフィッ
クモジュール、マルチメディアモジュール、ネットワー
クインターフェースモジュール等の多くの装置は効率的
な動作のためにシステムメモリを使用することが可能で
ある。然しながら、これらのモジュールがシステムメモ
リを使用するためにプロセッサと結合されねばならない
場合には、全体的な性能は低下する。
【0007】プロセッサの使用をより効率的なものとさ
せるために、多くのシステムではマイクロプロセッサ以
外のモジュール及び周辺機器が直接的にメインメモリへ
アクセスすることを可能としている。典型的なコンピュ
ータシステムアーキテクチャにおけるシステムバスは、
マイクロプロセッサ及びダイレクトメモリアクセス(D
MA)制御器へ結合する。該バスへ結合されるその他の
モジュール及び周辺機器はDMA制御器を使用してマイ
クロプロセッサへ結び付けられることなしにメインメモ
リへアクセスすることが可能である。このことは共用メ
モリシステムと呼称される。何故ならば、メインメモリ
の全部又は一部が、メモリへアクセスすることが可能な
マイクロプロセッサを包含する多様な装置の間で共用さ
れるからである。
【0008】共用メモリシステムはキャッシュコヒーレ
ンスタスクを著しく複雑なものとさせる。DMA装置は
直接的にメインメモリへアクセスするが、通常、直接的
にキャッシュメモリへアクセスするものではない。DM
A装置が正しいデータを得ることを確保するために、D
MA装置によってアクセスされている共用メモリ位置の
内容がマイクロプロセッサによって使用されているその
位置のキャッシュされたコピーにおいて変化されていな
いものであることを検証するための手段がこうじられな
ければならない。更に、このコヒーレンスチェックによ
って課される待ち時間は、キャッシュ動作又はダイレク
トメモリアクセスのいずれかの利点をしのぐようなもの
であってはならない。
【0009】1つの解決方法は、メインメモリをキャッ
シュ可能な部分とキャッシュ不可能な部分とに区画化す
ることである。DMA装置はメモリのキャッシュ不可能
な部分のみを使用することに制限される。このように、
DMA装置はキャッシュの内容と無関係なものとさせる
ことが可能である。然しながら、キャッシュ不可能な部
分に格納されているデータについては、キャッシュ技術
の全ての利点が失われることとなる。
【0010】別の解決方法は、DMA制御器又はシステ
ムバスへ結合されているその他のハードウエアが共用メ
モリへのアクセスが許可される前にキャッシュを「スヌ
ープ」即ち偵察することを可能とさせることである。こ
のことの1つの例はペリフェラルコンポーネントインタ
ーコネクト(PCI)バス内に存在しており、それはP
CIブリッジ装置がDMA装置トランズアクションの一
部として自動的にCPUキャッシュをスヌープすること
を可能とする。このことは共用メモリをキャッシュさせ
ることを可能とするが、全てのDMAトランズアクショ
ンに対して待ち時間を付加する。全てのDMAトランズ
アクションが行われる単一のシステムバスを有するシス
テムはスヌーププロトコルを効率的に実現することが可
能である。何故ならば、単一バスシステムはいずれかの
装置が全てのその他の装置に対して信号を迅速に且つ効
率的にブロードキャスト即ち同報通信し共用メモリアク
セスが発生していることを表示することを可能とさせる
からである。
【0011】然しながら、システムコンポーネントを相
互接続するための堅牢で複雑でマルチパス通信サブシス
テムを有するシステムに対する要求が益々高まってい
る。複雑な通信ネットワークはより大きな拡張の可能性
及びカスタム化を可能とさせる。更に、このようなシス
テムは既存の証明されたサブシステム及びモジュール設
計(しばしば、知的所有権即ち「IP」と呼ばれる)を
再使用することを可能とさせる。複数個の独立した経路
を可能とするより複雑なバスネットワークを有するシス
テムにおいては、ネットワークブロードキャストは遅い
場合があり、従来のスヌーププロトコルを非現実的なも
のとさせる。
【0012】より複雑なネットワークに対して使用され
ている別の解決方法は、キャッシュステータス情報を保
持するために中央に集中させるか又は分散させたディレ
クトリィ構造を使用するものである。これらは、例え
ば、マルチプロセッサアーキテクチャにおいて見られ
る。共用メモリへアクセスするいずれかの装置は、最初
に、ディレクトリィへアクセスしてターゲットメモリア
ドレスが現在キャッシュされているか否かを判別する。
そのアドレスがキャッシュされていない場合には、共用
メモリ位置に対する直接的なアクセスが行われる。その
アドレスがキャッシュされている場合には、直接的なア
ドレスが完了する前にキャッシュされたデータがメイン
メモリへ書き戻される。ディレクトリィをベースとした
解決方法はスヌープ操作よりも高速であるが、ディレク
トリィ構造をサポートするために、各DMAアクセス及
びハードウエアオーバーヘッドに対して待ち時間を付加
させることとなる。
【0013】
【発明が解決しようとする課題】本発明は、以上の点に
鑑みなされたものであって、上述した如き従来技術の欠
点を解消し、キャッシュメモリシステムにおいて効率的
な共用メモリアクセスを可能とするシステム、方法及び
メカニズムを提供することを目的とする。本発明の別の
目的とするところは、複雑でマルチパスのシステムバス
を有するシステムにおいてキャッシュコヒーレンスを実
行するメカニズムを提供することである。
【0014】
【課題を解決するための手段】本発明はメモリの少なく
とも幾らかが共用メモリとして指定されているメモリシ
ステムを有するコンピュータシステムを提供している。
トランズアクションをベースとしたバスメカニズムがメ
モリシステムへ結合しており且つそのトランズアクショ
ンセット内に定義されたキャッシュコヒーレンストラン
ズアクションを有している。キャッシュメモリを有する
プロセッサがトランズアクションをベースとしたバスメ
カニズムを介してメモリシステムへ結合している。バス
メカニズムへ結合されているシステムコンポーネントは
キャッシュコヒーレンスポリシィを特定する論理を有し
ている。システムコンポーネント内の論理はバスメカニ
ズムに関して特定されたキャッシュポリシィに従ってキ
ャッシュトランズアクションを開始させる。プロセッサ
内の論理が、キャッシュトランズアクションによって特
定されたキャッシュ操作を実行することによって、開始
されたトランズアクションに応答する。
【0015】
【発明の実施の形態】本発明の好適実施例は、単一の集
積回路で1個のチップ上のシステムとして、又は異なる
レベルの集積化での複数個の集積回路チップとして実現
することの可能なシステムを有している。いずれの場合
においても、システムの構成要素は、1つ又はそれ以上
のタイプのバス技術を有することの可能なバスネットワ
ークによって相互接続されている。該バスネットワーク
はバスネットワークを介して通信することの可能な複数
個のトランズアクションを有するトランズアクションセ
ットを実現する。各トランズアクションは要求/応答対
又は1組の要求/応答対を有している。
【0016】特定の実現例においては、トランズアクシ
ョンセットはキャッシュトランズアクションプリミティ
ブを有している。バスネットワークに結合されているシ
ステム構成要素のうちの1つは中央処理装置(CPU)
である。該CPUはキャッシュ管理又はメモリ管理ユニ
ットを有しており、それはCPUがメインメモリからの
命令及びデータをキャッシュすることを可能とする。バ
スネットワークへ結合されているモジュール、装置及び
構成要素は、CPUをしてそれらの代わりにキャッシュ
管理動作を実施させるためにキャッシュトランズアクシ
ョンを使用する。このように、モジュールが直接的にメ
インメモリへアクセスすることを所望する場合には、ダ
イレクトメモリアクセス即ち直接的なメモリアクセスの
前にキャッシュトランズアクションを発行することによ
ってキャッシュコヒーレンシィを確保することが可能で
ある。好適実施例においては、これらのキャッシュトラ
ンズアクションは明示的なコマンドとしてCPUによっ
て解釈される。
【0017】いずれのシステムも、図1に示したよう
に、データオブジェクト又はメッセージを介して通信を
行うプロセス又はモジュールの集まりとして記述され
る。これらのモジュールはそれらの特性が幾分緩く定義
されている回路の大きな集まりとすることが可能であ
り、且つ寸法及び構成が著しく異なることが可能であ
る。データオブジェクト又はメッセージはシステムを構
成するモジュール間の通信である。システム内のモジュ
ールを実際に接続するためには、システムとコンポーネ
ント(構成要素)モジュールとの間のインターフェース
を定義することが必要である。
【0018】本発明は図1に示したメディアシステム1
00によって例示される。メディアプロセッサ100
は、例えば、ビデオ処理用の「セットトップボックス
(set−top box)」、ビデオゲーム制御器、
デジタルビデオディスク(DVD)再生器等を有してい
る。基本的には、システム100は高処理能力マルチメ
ディア適用をターゲットとした特定目的データ処理シス
テムである。本発明の特徴は高速バス102、ペリフェ
ラルバス104、メモリバス106を介して受取られた
データを通信し且つ処理すべく動作するプロセッサ10
1において実現されている。
【0019】ビデオ制御器105はシステム102から
デジタルデータを受取り且つ外部ビデオモニタ、テレビ
受像器等の上に情報を表示するためのビデオ信号を発生
する。発生されたビデオ信号はアナログ又はデジタルと
することが可能である。オプションとして、ビデオ制御
器は外部装置からもアナログ及び/又はデジタルビデオ
信号を受取ることが可能である。オーディオ制御器10
7はビデオ制御器105と類似した態様で動作するが、
それはビデオではなくオーディオ情報を制御するという
点が異なっている。ネットワークカードI/O制御器1
09はデジタル情報を通信するための従来のネットワー
ク、ISDN接続、モデム等とすることが可能である。
高速バス102へ結合されている大容量記憶装置111
は磁気ディスク、テープ駆動装置、CD−ROM、DV
D、ランダムアクセスメモリからなるバンク等を有する
ことが可能である。多様なランダムアクセス及びリード
オンリメモリ技術を使用することが可能であり且つ本発
明の目的のためには均等なものである。大容量記憶装置
111はコンピュータプログラム及びデータをその中に
記憶することが可能である。
【0020】特定の実施例においては、高速バス102
はペリフェラルコンポーネントインターコネクト(PC
I)業界標準バスとして実現される。業界標準バスを使
用することの利点は、制御器105,107,109,
111等の多様な拡張ユニットが容易に入手可能である
という点である。PCIバス102はスヌーププロトコ
ルを使用するダイレクトメモリアクセスコンポーネント
をサポートする。
【0021】ペリフェラル即ち周辺装置113は高速バ
ス102によって与えられるものよりもより低い帯域幅
の通信を必要とする多様な汎用のI/O装置を包含して
いる。典型的なI/O装置は、例えばゲームプログラム
カートリッジ等のリードオンリメモリ(ROM)装置、
例えばマウス又はジョイスティック、キーボード等のシ
リアル入力装置を包含している。プロセッサ101は対
応するシリアルポート、パラレルポート、プリンタポー
ト、ペリフェラル113と通信するための外部タイマポ
ートを包含している。更に、プロセッサ101と集積化
されている例えばBIOS ROM等のオンボードRO
Mとの通信をサポートするためのポートを設けることが
可能である。外部メモリ103は、典型的には、プロセ
ッサ101に対する作業用の格納部(記憶部)を提供す
るために必要とされ且つプロセッサ101に対してアク
セス可能な態様でデジタルデータを格納することが可能
なダイナミック又はスタティックRAM、ROM、同期
型DRAM、又はその他の多様な等価な装置を使用して
実現することが可能である。
【0022】プロセッサ101は図2の機能図において
より詳細に示してある。データ処理システムにおける1
つのモジュールは中央処理装置(CPU)コア201で
ある。CPUコア201は、実行資源(例えば、演算論
理ユニット、レジスタ、制御論理)及びキャッシュメモ
リを包含している。これらの機能ユニットについては後
により詳細に説明するが、メモリから命令およびデータ
をフェッチし、フェッチした命令を予備処理し、実行さ
れるべき命令をスケジュールし、命令を実行し、メモリ
トランズアクションを管理し、且つ外部回路及び装置と
インターフェースする機能を実施する。
【0023】CPUコア201はシステムバス202を
介して図2に示したその他のコンポーネント(構成要
素)と通信を行う。好適実施例においては、システムバ
ス202はパケット技術を使用した高速のネットワーク
バスであって、ここでは「スーパーハイウェイ」と呼称
する。バス202は多様なシステムコンポーネントを結
合している。特に重要なコンポーネントは、例えば外部
メモリインターフェースユニット203、PCIブリッ
ジ207、ペリフェラルバス204等の外部ハードウエ
アとのインターフェースを実現するコンポーネントであ
る。バス202へ結合されている各コンポーネントはト
ランズアクションパケット内のアドレスによって特定さ
れてバス202上のトランズアクションパケットのター
ゲットとなることが可能である。
【0024】外部メモリインターフェース203はシス
テムバス202と外部メインメモリサブシステム103
(図1に示してある)との間のインターフェースとを与
える。外部メモリインターフェースはシステムバス20
2へのポート及びDRAM制御器を有している。本発明
の重要な特徴は、外部メモリインターフェース203を
介してアクセスされるメモリがシステムバス202から
見た場合にコヒーレンス即ち一貫性のあるものであると
言うことである。全ての要求はEMIユニット203に
よってこれらの要求の受取られた順番で外部メモリイン
ターフェース203上において逐次的に処理される。然
しながら、対応するストア応答パケットは、書込動作が
DRAMに対して実際に完了するまでシステムバス20
2上の開始したものへ帰還されることはない。同一のア
ドレスに対する全ての要求はDRAMインターフェース
上で順番で処理されるので(何故ならば、それらはスー
パーハイウェイインターフェースから受取られるの
で)、メモリのコヒーレンス即ち一貫性が達成される。
【0025】図2に示したシステムにおける相互接続の
構成はその特定の目的のために各相互接続を最適化する
原理によって案内される。バスシステム202の相互接
続は幾つかの異なるタイプのサブシステムの一体化を容
易なものとさせる。それは、厳しいメモリ待ち時間/帯
域幅条件を有する密接して結合されたサブシステムに対
して使用される。ペリフェラルサブシステム204はイ
ンターフェースポート213を介して図1を参照して表
されるタイプのハードウエアの容易な集積化を可能とさ
せるバススタンダードをサポートする。PCIブリッジ
207はペリフェラルポート204を介して使用可能な
ものよりもより高い性能を要求する多様なPCI標準装
置を使用して拡張をサポートする標準インターフェース
を提供する。システムバス202は、システム101の
他のコンポーネントを変化させることなしに、アプリケ
ーションモジュールの迅速な集積化をサポートする拡張
ポートに合わせることが可能である。
【0026】注意すべきことであるが、本発明のシステ
ムにおいては、PCIブリッジ207はCPU201へ
直接的に結合されておらず、従ってPCI標準によって
特定される従来の態様でスヌープ動作をサポートするこ
とは不可能である。その代わりに、システムバス202
は例えばPCIブリッジ207からのキャッシュコマン
ドをバス202のトランズアクションセット内のキャッ
シュトランズアクション上にマッピングする本発明に基
づくプロトコルを供給する。CPU201は予測された
キャッシュコマンドを実現することによってキャッシュ
トランズアクションに応答する。
【0027】図3はスーパーハイウェイ202を介して
の通信のための要求パケット301と応答パケット30
3とを有する例示的なトランズアクション300を示し
ている。パケット301及び303はパケット・ルータ
ー305を介しての1単位のデータ転送を構成してい
る。モジュール307と309との間の通信は、これら
のモジュールの間でのパケットの交換によって行われ
る。各モジュール307及び309は一次的なアドレス
に対するパケットルーター305が割り当てられるか又
はそれとやりとりを行う。特定の実施例においては、各
アドレスは符号なし整数値であり、それはプロセッサ2
01の物理的メモリ空間内の1つの位置に対応してい
る。アドレスビットのうちの幾つかは、ディスティネー
ション(宛先)モジュールを表し、且つアドレスビット
のうちの幾つか(「オフセットビット」と呼ばれる)は
そのディスティネーションモジュール内の特定の位置を
表す。物理的アドレスの寸法、ディスティネーションビ
ットの数、オフセットビットの数は特定の具体例の必要
性を満足するために選択され、具体例毎に依存する。
【0028】パケットルーター305はルーチング即ち
経路付けを行うためにディスティネーションビットを使
用する。パケットルーター305は受取ったパケットの
ディスティネーションビットを検査し、そのパケットが
経路付けされるべき適宜のポートを決定し、且つそのパ
ケットの特定されたモジュールにたいする経路付けを行
う。パケットルーター305は特定のアプリケーション
の必要性を満足させるために、バス、クロスバー、パケ
ットルーチングネットワーク、又は等価なパケット搬送
メカニズムとして実現することが可能である。
【0029】パケットはトランズアクションのタイプ、
トランズアクションのターゲットアドレス、及び/又は
そのトランズアクションによって必要とされるか又は発
生されるデータ等の情報を表す複数個のフィールドを有
している。各フィールドはそのパケットを特性付けるた
めの多数の可能な値を有している。全てのパケットはど
のモジュールへそのパケットが経路付けされるべきかを
決定するためのパケットルーター305によって使用さ
れるディスティネーションフィールドを包含している。
特定の具体例においては、全てのパケットはクラスとタ
イプとを有している。パケットのクラスは要求(リクエ
スト)又は応答(レスポンス)のいずれかである。応答
パケットクラスは通常の応答か又はエラー応答のいずれ
かに分割される。パケットのタイプはそのパケットと関
連するトランズアクションの種類を表す。パケットのク
ラス及びタイプは一体となってパケットオプコード(p
acket opcode)を形成する。
【0030】各パケットはソースモジュールとディステ
ィネーションモジュールとに関連している。ソース(発
生源)はポートを介してバス202内のパケットルータ
ー305へパケット301又は303を送り出す。パケ
ットルーター305はそのパケットをディスティネーシ
ョンへ接続されているpポートへ経路付けさせるべく調
整を行う。次いで、ディスティネーションがパケットル
ーターからそのpポートを介してこのパケットを受取
る。ソースとディスティネーションとが同一のモジュー
ルである可能性がある。更に、パケットが複数個の「セ
ル」に分解される可能性があり、その場合には、パケッ
トの各セルは同一のソース及びディスティネーションモ
ジュール及び同一のパケットタイプを有している。複数
個のセルはディスティネーションにおいて1個のパケッ
トへ結合される。
【0031】図3における点線によって示される「トラ
ンズアクション」300は、スーパーハイウェイバス2
02を使用して1つのモジュールが別のモジュールの状
態へアクセスすることを可能とするパケットの交換であ
る。トランズアクションは要求モジュール307(「イ
ニシエータ」(開始体)とも呼ばれる)からの要求パケ
ット301を応答モジュール309(「ターゲット」と
も呼ばれる)ヘ転送し、次いでその応答モジュール30
9から要求モジュール307へ応答パケット303を転
送することを包含している。要求パケット301はトラ
ンズアクションを開始させ且つその内容がなされるべき
アクセスを決定する。応答パケット303はそのトラン
ズアクションを完了させ且つその内容はアクセスの結果
を表す。応答パケット303は、更に、その要求が有効
であったか否かをあらわすことが可能である。応答パケ
ット303は、その要求が有効なものであった場合には
通常の応答としてフォーマット化させることが可能であ
り、又はその要求が無効なものであって場合にはエラー
応答としてフォーマット化させることが可能である。
【0032】好適実施例においては、要求パケットと応
答パケットとの間には1:1の態様が存在している。好
適実施例におけるトランズアクションプロトコルは「ス
プリットフェーズ」である。何故ならば、要求パケット
301と応答パケット303とは互いに非同期的なもの
だからである。要求はパイプライン化させることが可能
であり、その場合に要求モジュール307は、トランズ
アクションに関連する待ち時間をオーバーラップさせる
ために、いずれかの応答パケット303を受取る前に、
複数個の要求パケット301を発生することが可能であ
る。
【0033】応答モジュール309は受取った順番に要
求を処理し、要求されたアクションがコミットされるま
で応答パケット303を発生することはない。このよう
に、ディスティネーションモジュール内部での内部的待
ち時間のほかに、要求パケット301が受取られた場合
に、バス202へ結合されている全てのモジュールによ
って観察されるように、そのアクセスは完了される。そ
のターゲットモジュールに対するその後に受取られる要
求はそのアクセスの後に動作が行われる。このことはデ
ィスティネーションにおけるアクセスの時間的順番付け
は、対応する応答を待機することによって課すことが可
能であることを保証する。
【0034】本発明にとって特に重要なパケットタイプ
のうちの1つはキャッシュコヒーレンストランズアクシ
ョンと関連するキャッシュコヒーレンスパケットタイプ
である。キャッシュコヒーレンストランズアクションは
「フラッシュ」及び「パージ」トランズアクションを包
含している。これらは、主に、図2に示したPCIブリ
ッジ207等のDMA型モジュールの集積化をサポート
するために与えられるものであるが、より一般的には、
外部メモリインターフェース203を介して与えられる
メインメモリを使用する任意のモジュールをサポートす
るために与えられる。
【0035】フラッシュトランズアクションはキャッシ
ュからフラッシュ即ち排除されるべき物理的アドレスで
ある単一のオペランドを有している。フラッシュトラン
ズアクションがCPU201内のキャッシュ/MMUに
よってバス202から受取られると、それはキャッシュ
/MMUをしてキャッシュ内のアドレスをルックアップ
させる。そのルックアップがメインメモリに関して修正
されていないキャッシュラインに対するミス又はヒット
を発生すると、キャッシュ/MMUはそのルックアップ
直後にフラッシュ要求に対する応答を発行する。そのル
ックアップがメインメモリに関して修正されているキャ
ッシュラインに対するヒットを発生する場合には、キャ
ッシュ制御器は特定されたラインのメインメモリに対す
るライトバックを発生する。このライトバックに続い
て、キャッシュ/MMUはフラッシュ要求に対する応答
を発行する。いずれの場合においても、キャッシュ/M
MUによって発生される応答は単一のアクノレッジメン
ト即ち通知であり、それはメインメモリ及びキャッシュ
が首尾一貫したものであることを表すデータを運ぶもの
ではない。
【0036】パージトランズアクションは、キャッシュ
からパージ即ち消去されるべき物理的アドレスである単
一のオペランドを有している。パージトランズアクショ
ンがCPU201内のキャッシュ/MMUによってバス
202から受取られると、それはキャッシュ/MMUを
して該キャッシュ内のアドレスをルックアップさせる。
そのルックアップがミスを発生すると、キャッシュ/M
MUはそのルックアップ直後にパージ要求に対する応答
を発行する。そのルックアップがメインメモリに関して
修正されたキャッシュラインに対するヒットを発生する
場合には、キャッシュ制御器がメインメモリに対する特
定したラインのライトバックを発生する。そのルックア
ップがヒットを発生する場合には、キャッシュラインは
そのラインがメインメモリに関して修正されたか否かに
拘わらずに無効化される。その無効化に続いて、キャッ
シュ/MMUはパージ要求に対する応答を発行する。い
ずれの場合においても、キャッシュ/MMUによって発
生された応答は単一なアクノレッジメント即ち通知であ
って、それはメインメモリ及びキャッシュが首尾一貫し
たものであること及び特定されたメモリ位置が最早キャ
ッシュ内において有効なものでないことを表すデータを
運ぶものではない。
【0037】モジュールによるフラッシュ及びパージの
使用はあるレベルのキャッシュコヒーレンスを与える。
これらの操作は、共用メモリシステムにおけるアドレス
に対するモジュールによる読取操作がそのアドレスに最
後に書込まれた値を受取ることを保証する。そのアクセ
ス時間は、フラッシュがキャッシュ制御器によって受取
られた時間として与えられる。モジュール読取操作は、
アクセス時間以後にシステムメモリの値と一貫性のある
データ値を得ることが保証される。共用メモリ内のアド
レスに対するモジュールによる書込操作の場合には、パ
ージ操作は、書込まれたデータがアクセス時間の後に全
てのメモリユーザによって読取可能であることを保証す
る。アクセス時間はデータキャッシュのパージに続いて
システムメモリに対して書込操作が実施された時間とし
て与えられる。
【0038】典型的な操作においては、PCIバス20
5に結合されているコンポーネントが共用メモリ位置へ
アクセスすることを所望し、PCIブリッジ207に対
してPCI標準DMA信号処理プロトコルを使用してメ
モリ要求をアサート即ち活性化させる。CPU201は
PCI205へ直接的に結合されているものではないの
で、この信号処理プロトコルはCPU201によって認
識されることはない。本発明に基づく操作はPCIモジ
ュール207を参照して説明するが、共用メモリを使用
することを所望するバス202へ結合されている任意の
モジュールが以下に説明するステップを実現することが
可能であることを理解すべきである。
【0039】PCIモジュール207が共用メモリに対
するコヒーレントな要求を完了することを望む場合に
は、モジュール207が図4に概略的に示したステップ
を実行する。ステップ401において、該モジュールは
そのメモリ要求を複数個の非キャッシュラインに跨るシ
ステム相互接続要求へ分割する。このように、各要求は
単一のキャッシュラインに影響を与えることが確保さ
れ、且つキャッシュ/MMUはキャッシュ跨り要求を認
識し且つ実現するために特別の動作を実行することが必
要なものではない。フラッシュ要求及びパージ要求の両
方がパケット化され且つステップ403においてCPU
201におけるキャッシュ/MMUと関連するポートに
対してアドレスされる。次いで、要求モジュールがステ
ップ404においてキャッシュ/MMUからの応答を受
取ることを待機する。
【0040】共用メモリからの読取操作の場合には、メ
モリインターフェースユニット203に対してアドレス
されたパケットにおいてステップ405においてロード
要求がなされる。書込操作の場合には、ストア要求パケ
ットがステップ407においてメモリインターフェース
ユニット203に対してアドレスされる。ステップ40
9において、外部メモリインターフェースユニットがコ
ヒーレントアクセスの完了を表す応答パケットを発生す
る。
【0041】このように、本発明はバス202の基本ト
ランズアクションセット内に組込まれたキャッシュ制御
命令を提供している。この特徴は、バス202に結合さ
れているモジュールがキャッシュ制御を実行し且つ共用
メモリ資源のコヒーレントな即ち一貫性のある使用を確
保することを可能としている。CPU201のキャッシ
ュ/MMUにおける対応する論理がキャッシュ制御トラ
ンズアクションに応答して要求モジュールの変わりにキ
ャッシュ制御操作を実行する。
【0042】要求モジュール(例えば、PCIブリッジ
207)内のコヒーレンシィ論理が、好適には、1つ又
はそれ以上のキャッシュウインドウを特定することが可
能であり且つコヒーレンシィ性能を増加させるためにキ
ャッシュ内の特定の領域に対してのキャッシュポリシィ
の遠隔的特定を行うことを可能とする。このことは、図
5に示した制御レジスタ空間501を与えることによっ
て実現され、それはスヌープポリシィ又はモード及びス
ヌーピングに対するアドレス範囲を特定する。PCIモ
ジュール207内のスヌープアドレスレジスタ601
(図6に示してある)は1つ又はそれ以上のアドレスを
格納する。スヌープ制御レジスタ501及びスヌープア
ドレスレジスタ601の両方が異なるスヌープポリシィ
を有する任意の数のキャッシュ領域を特定する任意の数
のラインを有している。各スヌープ制御レジスタは対応
するスヌープアドレスレジスタを有している。
【0043】特定の実施例においては、2ビットモード
フィールドが、PCI要求におけるアドレスがスヌープ
アドレスレジスタ内に格納されているアドレスと比較さ
れるか否か及びどのようにして比較されるかを表す。1
つの例示的なコード化を以下の表1に要約してある。
【0044】
【表1】
【0045】レンジフィールドは特定の実施例において
は8個の可能な値を有しており、各値はPCI要求にお
けるメモリアドレスとレジスタ601における格納され
ているスヌープアドレスとの比較期間中にマッチ即ち一
致が発生するアドレスの範囲を表す。基本的には、レン
ジフィールドの各値は格納されているスヌープアドレス
の中で何個のビットがその比較に参加するかを表す。以
下の表には例示的なコード化を要約してある。
【0046】
【表2】
【0047】実際のコード化及びレンジの寸法及びイネ
ーブルされる個別的な範囲の数は特定のアプリケーショ
ンの必要性を満足するために選択される設計的事項であ
る。このように、スヌープアドレスレジスタ601内に
アドレスを格納することによってキャッシュ区画化を実
現することが可能であり、その区画の寸法はスヌープ制
御レジスタ501のレンジフィールド内に格納される値
によって特定される。その区画に対するキャッシュコヒ
ーレンスポリシィは、スヌープ制御レジスタ501の対
応するモードフィールド内に値を設定することによって
制御することが可能である。本発明のこの特徴は、CP
U201内の制御レジスタの処理を必要とすることのな
い態様でキャッシュポリシィの遠隔的特定を行うことを
可能とする。フラッシュ又はパージコマンドが発行され
るか否かはPCIモジュール207によって決定され、
且つCPU201内のキャッシュ/MMUは、単に、応
答して発行されたキャッシュ制御コマンドを実行し且つ
アクノレッジするに過ぎない。
【0048】上述した特徴を実現するために、PCIモ
ジュール207は、図4に示したステップ401の前
に、要求された共用メモリアドレスがスヌープ制御レジ
スタ501によって特定された境界内においてスヌープ
アドレスレジスタ601内に特定されたアドレスとマッ
チ即ち一致するか否かをチェックするステップを行う。
格納されているアドレスはスヌープが実施されるべきで
あることを表す場合があり、その場合には処理はステッ
プ401へ進行する。一方、スヌープが実施されるべき
でない場合には、処理はステップ405及び407へ進
行する。
【0049】上述した具体例は、モードフィールドに対
して付加的なビットを付加することによって拡張するこ
とが可能である。例えば、特定の実施例はキャッシュポ
リシィに基づいて最適化を実施することが可能である。
各定義されたスヌープレンジに対して、2つのオプショ
ンの挙動の間で選択を行うために単一のビットを使用す
ることが可能である。例えば、各スヌープレンジは「読
取でのフラッシュ、書込でのパージ」又は「読取では何
もなし、書込でのパージ」のポリシィを割り当てること
が可能である。モードフィールドにおける単一のビット
は各キャッシュ領域に対してポリシィの選択を独立的な
ものとさせることを可能とする。このオプションの特徴
は、不必要なコヒーレンシィトランズアクションの数を
減少させる。特に、CPUキャッシュポリシィがライト
スルーである場合には、キャッシュ内にダーティデータ
が存在する可能性はなく、従って遠隔的に開始されるフ
ラッシュは冗長的である。最適化はこれらの冗長な操作
を回避することを可能とする。
【0050】以上、本発明の具体的実施の態様について
詳細に説明したが、本発明は、これら具体例にのみ制限
されるべきものではなく、本発明の技術的範囲を逸脱す
ることなしに種々の変形が可能であることは勿論であ
る。例えば、本発明はソフトウエアで実現することも可
能である。例えば、充分な複雑性を有するプログラマブ
ルロジック装置、ハードウエアエミュレータ、ソフトウ
エアエミュレータ等がエミューレートされるか又はシミ
ュレートされた順番外マシンにおいて精密なアーキテク
チャのアップデートを実施するために具体化されたコン
ピュータ読取可能なコードを有するコンピュータによっ
て使用可能な媒体を包含するコンピュータプログラム製
品として本発明を実現することが可能である。
【図面の簡単な説明】
【図1】 本発明に基づく装置及びシステムを組込んだ
コンピュータシステムの概略ブロック図。
【図2】 本発明に基づく装置及び方法を組込んだプロ
セッサを示した概略ブロック図。
【図3】 本発明に基づくバストランズアクションを示
した概略図。
【図4】 本発明に基づく共用メモリアクセス操作を示
したフローチャート。
【図5】 本発明に基づく例示的な制御レジスタフォー
マットを示した概略図。
【図6】 本発明に基づく例示的なスヌープアドレスレ
ジスタのフォーマットを示した概略図。
【符号の説明】
100 メディアプロセッサ 101 プロセッサ 102 高速バス 104 ぺリフェラルバス 105 ビデオ制御器 106 メモリバス 107 オーディオ制御器 109 ネットワークI/O制御器
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ディー. シミズ アメリカ合衆国, カリフォルニア 94301, パロ アルト, アルマ スト リート 1651 (72)発明者 アンドリュー ジョーンズ イギリス国, ブリストル, レッドラン ド, エッジカンブ ロード 6

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータシステムにおいて、 メモリの少なくとも幾らかが共用メモリとして指定され
    ているメモリシステム、 前記メモリシステムへ結合されており、そのトランズア
    クションセット内に定義されたキャッシュコヒーレンス
    トランズアクションを有しているトランズアクションを
    ベースとしたバスメカニズム、 キャッシュメモリを具備しており、前記トランズアクシ
    ョンをベースとしたバスメカニズムを介して前記メモリ
    システムへ結合されているプロセッサ、 前記バスメカニズムへ結合されておりキャッシュコヒー
    レンスポリシィを特定する論理を有しているシステムコ
    ンポーネント、 前記バスメカニズムに関する特定されたキャッシュポリ
    シィに従ってキャッシュトランズアクションを開始させ
    る前記システムコンポーネント内の論理、 前記開始したキャッシュトランズアクションに応答し前
    記キャッシュトランズアクションによって特定されたキ
    ャッシュ操作を実行する前記プロセッサ内の論理、を有
    していることを特徴とするコンピュータシステム。
  2. 【請求項2】 請求項1において、更に、各区画に対し
    て特定された独立したキャッシュポリシィを具備してい
    る2つ又はそれ以上のキャッシュ区画を定義する前記シ
    ステムコンポーネント内の論理を有していることを特徴
    とするコンピュータシステム。
  3. 【請求項3】 請求項1において、更に、前記バスメカ
    ニズム上のシステムコンポーネントに対してアドレスさ
    れている応答を発生する前記プロセッサ内の論理を有し
    ており、前記応答が前記キャッシュ操作の完了を通知す
    ることを特徴とするコンピュータシステム。
  4. 【請求項4】 請求項1において、前記キャッシュコヒ
    ーレンスポリシィを特定する論理が、 基準メモリアドレスを保持するエントリを持っている第
    一レジスタ、 前記キャッシュメモリ内の前記基準メモリアドレスを表
    すキャッシュラインに対して特定したキャッシュポリシ
    ィを表す値を保持しているエントリを持っている第二レ
    ジスタ、を有していることを特徴とするコンピュータシ
    ステム。
  5. 【請求項5】 請求項4において、前記キャッシュコヒ
    ーレンスポリシィを特定する論理が、更に、前記特定し
    たキャッシュポリシィが適用される前記基準メモリアド
    レスに関するメモリアドレスの範囲を表す値を保持して
    いるエントリを持っている第三レジスタを有しているこ
    とを特徴とするコンピュータシステム。
  6. 【請求項6】 請求項2において、前記2つ又はそれ以
    上のキャッシュ区画を定義する論理が、 各エントリが基準メモリアドレスを保持している各定義
    されたキャッシュ区画に対するエントリを持っている第
    一レジスタ、 各キャッシュ区画を構成する前記基準メモリアドレスに
    関するアドレス範囲の寸法を表す値を保持しているエン
    トリを持っている第二レジスタ、を有していることを特
    徴とするコンピュータシステム。
  7. 【請求項7】 プロセッサによってアクセス可能なキャ
    ッシュメモリを管理する方法において、 遠隔システムコンポーネントにおけるキャッシュコヒー
    レンスポリシィを特定し、 前記遠隔システムコンポーネントをトランズアクション
    をベースとしたシステムバスを使用して前記プロセッサ
    へ結合させ、 前記遠隔システムコンポーネントを使用して前記特定し
    たコヒーレンスポリシィに従ってキャッシュコヒーレン
    ストランズアクションを開始させ、前記キャッシュコヒ
    ーレンストランズアクションは前記システムバスを介し
    て前記プロセッサへ転送され、 前記開始されたキャッシュコヒーレンストランズアクシ
    ョンに応答して、前記プロセッサをして前記キャッシュ
    コヒーレンストランズアクションによって特定されたキ
    ャッシュコヒーレンス操作を実施させる、ことを特徴と
    する方法。
  8. 【請求項8】 請求項7において、更に、各区画に対し
    て特定された独立したキャッシュポリシィを持った2つ
    又はそれ以上のキャッシュ区画を定義することを特徴と
    する方法。
  9. 【請求項9】 請求項7において、更に、前記キャッシ
    ュコヒーレンス操作を実施した後に前記プロセッサを使
    用して応答メッセージを発生し、前記応答が前記遠隔シ
    ステムコンポーネントに対してアドレスされていること
    を特徴とする方法。
  10. 【請求項10】 請求項7において、更に、 前記遠隔システムコンポーネント内に基準メモリアドレ
    スを格納し、 前記特定したキャッシュポリシィを表す値を前記遠隔シ
    ステムコンポーネントに格納し、前記値が前記基準メモ
    リアドレスを包含するキャッシュラインに対するキャッ
    シュポリシィを表すものである、ことを特徴とする方
    法。
  11. 【請求項11】 請求項10において、更に、前記特定
    したキャッシュポリシィが適用される基準メモリに関す
    るアドレスの範囲を表す値を前記遠隔システムコンポー
    ネント内に格納することを特徴とする方法。
  12. 【請求項12】 データプロセッサを介してアクセス可
    能なキャッシュメモリを具備しているコンピュータシス
    テム用のコンポーネントにおいて、 前記データプロセッサと通信するためにシステムバスへ
    結合するインターフェース、 キャッシュコヒーレンスポリシィを特定する論理、 前記バスメカニズム上の前記特定したキャッシュポリシ
    ィに従ってキャッシュトランズアクションを開始させる
    論理、を有していることを特徴とするコンポーネント。
  13. 【請求項13】 請求項12において、更に、各区画に
    対して特定された独立したキャッシュポリシィを持って
    いる2つ又はそれ以上のキャッシュ区画を定義する論理
    を有していることを特徴とするコンポーネント。
  14. 【請求項14】 請求項12において、更に、前記キャ
    ッシュコヒーレンスポリシィを特定する論理が、 基準メモリアドレスを保持しているエントリを持ってい
    る第一レジスタ、 前記キャッシュメモリ内の基準メモリアドレスを表すキ
    ャッシュラインに対して前記特定したキャッシュポリシ
    ィを表す値を保持しているエントリを持っている第二レ
    ジスタ、を有していることを特徴とするコンポーネン
    ト。
  15. 【請求項15】 データプロセッサにおいて、 キャッシュメモリ、 システムバスに対するインターフェース、 前記キャッシュメモリに関しキャッシュコヒーレンス操
    作を実現するために前記システムバスを介して受取った
    通信に応答するキャッシュ制御メカニズム、を有してい
    ることを特徴とするデータプロセッサ。
JP2000301559A 1999-10-01 2000-10-02 ハイブリッドコヒーレンスプロトコル Expired - Lifetime JP5265827B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/411,453 US6412047B2 (en) 1999-10-01 1999-10-01 Coherency protocol
US09/411453 1999-10-01

Publications (2)

Publication Number Publication Date
JP2001147858A true JP2001147858A (ja) 2001-05-29
JP5265827B2 JP5265827B2 (ja) 2013-08-14

Family

ID=23628993

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000301559A Expired - Lifetime JP5265827B2 (ja) 1999-10-01 2000-10-02 ハイブリッドコヒーレンスプロトコル

Country Status (2)

Country Link
US (1) US6412047B2 (ja)
JP (1) JP5265827B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014532922A (ja) * 2011-10-26 2014-12-08 クゥアルコム・テクノロジーズ・インコーポレイテッド 3チャネルキャッシュコヒーレンシソケットプロトコル
CN109101439A (zh) * 2017-06-21 2018-12-28 深圳市中兴微电子技术有限公司 一种报文处理的方法及装置

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6763034B1 (en) * 1999-10-01 2004-07-13 Stmicroelectronics, Ltd. Connection ports for interconnecting modules in an integrated circuit
US7529799B2 (en) * 1999-11-08 2009-05-05 International Business Machines Corporation Method and apparatus for transaction tag assignment and maintenance in a distributed symmetric multiprocessor system
EP1288000B1 (en) * 2001-08-28 2008-04-16 Brother Kogyo Kabushiki Kaisha Ink-jet recording apparatus
US7062609B1 (en) * 2001-09-19 2006-06-13 Cisco Technology, Inc. Method and apparatus for selecting transfer types
US7089361B2 (en) * 2003-08-07 2006-08-08 International Business Machines Corporation Dynamic allocation of shared cache directory for optimizing performance
US8185695B2 (en) * 2008-06-30 2012-05-22 Advanced Micro Devices, Inc. Snoop filtering mechanism
US8832388B2 (en) * 2011-03-11 2014-09-09 Microsoft Corporation Managing shared memory used by compute nodes
KR101355105B1 (ko) * 2012-01-03 2014-01-23 서울대학교산학협력단 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치
US9424192B1 (en) 2015-04-02 2016-08-23 International Business Machines Corporation Private memory table for reduced memory coherence traffic
US9842050B2 (en) * 2015-04-30 2017-12-12 International Business Machines Corporation Add-on memory coherence directory
US9864687B2 (en) * 2015-07-01 2018-01-09 Samsung Electronics Co., Ltd. Cache coherent system including master-side filter and data processing system including same
US20170083441A1 (en) * 2015-09-23 2017-03-23 Qualcomm Incorporated Region-based cache management
US11169921B2 (en) * 2019-05-09 2021-11-09 Hewlett Packard Enterprise Development Lp Ternary content addressable memory-enhanced cache coherency acceleration

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05241961A (ja) * 1992-01-02 1993-09-21 Internatl Business Mach Corp <Ibm> キャッシュ・スヌープ/データ無効化機能を有するコンピュータ・システム
JPH0922382A (ja) * 1995-03-31 1997-01-21 Sun Microsyst Inc コンピュータシステムおよびそのプロセッサの外部キャッシュに記憶したデータブロックを無効化する方法
JPH11149410A (ja) * 1997-11-17 1999-06-02 Nec Corp コピータグメモリにExclusive Hitしたトランザクションに対するキャンセル信号送信方式

Family Cites Families (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3584690D1 (de) * 1984-06-20 1992-01-02 Convex Computer Corp Ein-/ausgabebus fuer rechner.
US4935867A (en) 1986-03-04 1990-06-19 Advanced Micro Devices, Inc. Signal processor memory management unit with indirect addressing using selectable offsets and modulo values for indexed address calculations
US4814981A (en) 1986-09-18 1989-03-21 Digital Equipment Corporation Cache invalidate protocol for digital data processing system
US4905141A (en) * 1988-10-25 1990-02-27 International Business Machines Corporation Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification
US5483518A (en) 1992-06-17 1996-01-09 Texas Instruments Incorporated Addressable shadow port and protocol for serial bus networks
JPH0666056B2 (ja) 1989-10-12 1994-08-24 甲府日本電気株式会社 情報処理システム
JPH03217949A (ja) 1990-01-23 1991-09-25 Hitachi Ltd 計算機システム
US5432918A (en) * 1990-06-29 1995-07-11 Digital Equipment Corporation Method and apparatus for ordering read and write operations using conflict bits in a write queue
US5452432A (en) 1990-08-14 1995-09-19 Chips And Technologies, Inc. Partially resettable, segmented DMA counter
JP2984463B2 (ja) 1991-06-24 1999-11-29 株式会社日立製作所 マイクロコンピュータ
US5423050A (en) 1991-11-27 1995-06-06 Ncr Corporation Intermodule test across system bus utilizing serial test bus
US5875464A (en) * 1991-12-10 1999-02-23 International Business Machines Corporation Computer system with private and shared partitions in cache
US5724549A (en) 1992-04-06 1998-03-03 Cyrix Corporation Cache coherency without bus master arbitration signals
GB2266606B (en) 1992-04-27 1996-02-14 Intel Corp A microprocessor with an external command mode
US5524212A (en) * 1992-04-27 1996-06-04 University Of Washington Multiprocessor system with write generate method for updating cache
US5448576A (en) 1992-10-29 1995-09-05 Bull Hn Information Systems Inc. Boundary scan architecture extension
JP3231429B2 (ja) 1992-11-06 2001-11-19 株式会社日立製作所 中央処理装置と乗算器とを有する半導体集積回路装置
JPH06150023A (ja) 1992-11-06 1994-05-31 Hitachi Ltd マイクロコンピュータ及びマイクロコンピュータシステム
JP3524110B2 (ja) 1992-11-06 2004-05-10 株式会社ルネサステクノロジ マイクロコンピュータシステム
US5627842A (en) 1993-01-21 1997-05-06 Digital Equipment Corporation Architecture for system-wide standardized intra-module and inter-module fault testing
JP2731692B2 (ja) 1993-04-28 1998-03-25 日本電気アイシーマイコンシステム株式会社 デバッグ装置
US5598551A (en) 1993-07-16 1997-01-28 Unisys Corporation Cache invalidation sequence system utilizing odd and even invalidation queues with shorter invalidation cycles
DE69415600T2 (de) 1993-07-28 1999-07-15 Koninkl Philips Electronics Nv Mikrokontroller mit hardwaremässiger Fehlerbeseitigungsunterstützung nach dem Boundary-Scanverfahren
JP3904244B2 (ja) 1993-09-17 2007-04-11 株式会社ルネサステクノロジ シングル・チップ・データ処理装置
EP0652516A1 (en) * 1993-11-03 1995-05-10 Advanced Micro Devices, Inc. Integrated microprocessor
US5596734A (en) 1993-12-17 1997-01-21 Intel Corporation Method and apparatus for programming embedded memories of a variety of integrated circuits using the IEEE test access port
US5828825A (en) 1993-12-22 1998-10-27 Intel Corporation Method and apparatus for pseudo-direct access to embedded memories of a micro-controller integrated circuit via the IEEE test access port
US5519846A (en) * 1993-12-23 1996-05-21 Unisys Corporation Multiprocessor system with scheme for managing allocation and reservation of cache segments in a cache system employing round-robin replacement and exclusive access
US5434804A (en) 1993-12-29 1995-07-18 Intel Corporation Method and apparatus for synchronizing a JTAG test control signal to an on-chip clock signal
US5488688A (en) 1994-03-30 1996-01-30 Motorola, Inc. Data processor with real-time diagnostic capability
US5537635A (en) * 1994-04-04 1996-07-16 International Business Machines Corporation Method and system for assignment of reclaim vectors in a partitioned cache with a virtual minimum partition size
JPH07287668A (ja) 1994-04-19 1995-10-31 Hitachi Ltd データ処理装置
US5577226A (en) * 1994-05-06 1996-11-19 Eec Systems, Inc. Method and system for coherently caching I/O devices across a network
GB9417602D0 (en) * 1994-09-01 1994-10-19 Inmos Ltd A controller for implementing scan testing
JP3740195B2 (ja) 1994-09-09 2006-02-01 株式会社ルネサステクノロジ データ処理装置
JP3672634B2 (ja) * 1994-09-09 2005-07-20 株式会社ルネサステクノロジ データ処理装置
JP3713312B2 (ja) 1994-09-09 2005-11-09 株式会社ルネサステクノロジ データ処理装置
JPH08329687A (ja) * 1995-06-05 1996-12-13 Hitachi Ltd 半導体集積回路
US5848247A (en) 1994-09-13 1998-12-08 Hitachi, Ltd. Microprocessor having PC card interface
US5613153A (en) 1994-10-03 1997-03-18 International Business Machines Corporation Coherency and synchronization mechanisms for I/O channel controllers in a data processing system
US5751621A (en) 1994-11-17 1998-05-12 Hitachi, Ltd. Multiply-add unit and data processing apparatus using it
TW330265B (en) 1994-11-22 1998-04-21 Hitachi Ltd Semiconductor apparatus
JP2752592B2 (ja) * 1994-12-28 1998-05-18 日本ヒューレット・パッカード株式会社 マイクロプロセッサ、マイクロプロセッサ−デバッグツール間信号伝送方法及びトレース方法
US5778237A (en) 1995-01-10 1998-07-07 Hitachi, Ltd. Data processor and single-chip microcomputer with changing clock frequency and operating voltage
US5664197A (en) 1995-04-21 1997-09-02 Intel Corporation Method and apparatus for handling bus master channel and direct memory access (DMA) channel access requests at an I/O controller
US5867726A (en) 1995-05-02 1999-02-02 Hitachi, Ltd. Microcomputer
US5570375A (en) 1995-05-10 1996-10-29 National Science Council Of R.O.C. IEEE Std. 1149.1 boundary scan circuit capable of built-in self-testing
US5860127A (en) 1995-06-01 1999-01-12 Hitachi, Ltd. Cache memory employing dynamically controlled data array start timing and a microcomputer using the same
US5774701A (en) 1995-07-10 1998-06-30 Hitachi, Ltd. Microprocessor operating at high and low clok frequencies
US5708773A (en) 1995-07-20 1998-01-13 Unisys Corporation JTAG interface system for communicating with compliant and non-compliant JTAG devices
US5704034A (en) 1995-08-30 1997-12-30 Motorola, Inc. Method and circuit for initializing a data processing system
US5737516A (en) 1995-08-30 1998-04-07 Motorola, Inc. Data processing system for performing a debug function and method therefor
JP3655403B2 (ja) 1995-10-09 2005-06-02 株式会社ルネサステクノロジ データ処理装置
US5680571A (en) * 1995-12-28 1997-10-21 Unisys Corporation Multi-processor data processing system with multiple, separate instruction and operand second level caches
JP3623840B2 (ja) * 1996-01-31 2005-02-23 株式会社ルネサステクノロジ データ処理装置及びマイクロプロセッサ
US5950012A (en) 1996-03-08 1999-09-07 Texas Instruments Incorporated Single chip microprocessor circuits, systems, and methods for self-loading patch micro-operation codes and patch microinstruction codes
US5978874A (en) 1996-07-01 1999-11-02 Sun Microsystems, Inc. Implementing snooping on a split-transaction computer system bus
JPH09311786A (ja) 1996-03-18 1997-12-02 Hitachi Ltd データ処理装置
GB2311880A (en) * 1996-04-03 1997-10-08 Advanced Risc Mach Ltd Partitioned cache memory
JP3269967B2 (ja) * 1996-04-24 2002-04-02 株式会社日立製作所 キャッシュコヒーレンシ制御方法、および、これを用いたマルチプロセッサシステム
JP3579205B2 (ja) 1996-08-06 2004-10-20 株式会社ルネサステクノロジ 半導体記憶装置、半導体装置、データ処理装置及びコンピュータシステム
GB9617033D0 (en) 1996-08-14 1996-09-25 Int Computers Ltd Diagnostic memory access
US5768152A (en) 1996-08-28 1998-06-16 International Business Machines Corp. Performance monitoring through JTAG 1149.1 interface
WO1998013759A1 (fr) 1996-09-27 1998-04-02 Hitachi, Ltd. Machine de traitement de donnees et systeme de traitement de donnees
JP3790307B2 (ja) 1996-10-16 2006-06-28 株式会社ルネサステクノロジ データプロセッサ及びデータ処理システム
JPH10177520A (ja) 1996-10-16 1998-06-30 Hitachi Ltd データプロセッサ及びデータ処理システム
JP3641327B2 (ja) 1996-10-18 2005-04-20 株式会社ルネサステクノロジ データプロセッサ及びデータ処理システム
GB9622686D0 (en) 1996-10-31 1997-01-08 Sgs Thomson Microelectronics A test port controller and a method of effecting communication using the same
US5953538A (en) 1996-11-12 1999-09-14 Digital Equipment Corporation Method and apparatus providing DMA transfers between devices coupled to different host bus bridges
US5983017A (en) 1996-11-12 1999-11-09 Lsi Logic Corporation Virtual monitor debugging method and apparatus
US5771240A (en) 1996-11-14 1998-06-23 Hewlett-Packard Company Test systems for obtaining a sample-on-the-fly event trace for an integrated circuit with an integrated debug trigger apparatus and an external pulse pin
US5956477A (en) 1996-11-25 1999-09-21 Hewlett-Packard Company Method for processing information in a microprocessor to facilitate debug and performance monitoring
JP3849951B2 (ja) * 1997-02-27 2006-11-22 株式会社日立製作所 主記憶共有型マルチプロセッサ
US5896550A (en) 1997-04-03 1999-04-20 Vlsi Technology, Inc. Direct memory access controller with full read/write capability
US5978902A (en) 1997-04-08 1999-11-02 Advanced Micro Devices, Inc. Debug interface including operating system access of a serial/parallel debug port
US5937172A (en) * 1997-04-14 1999-08-10 International Business Machines Corporation Apparatus and method of layering cache and architectural specific functions to permit generic interface definition
US5944841A (en) 1997-04-15 1999-08-31 Advanced Micro Devices, Inc. Microprocessor with built-in instruction tracing capability
US6292705B1 (en) * 1998-09-29 2001-09-18 Conexant Systems, Inc. Method and apparatus for address transfers, system serialization, and centralized cache and transaction control, in a symetric multiprocessor system
GB9802097D0 (en) * 1998-01-30 1998-03-25 Sgs Thomson Microelectronics DMA controller
GB9806184D0 (en) * 1998-03-23 1998-05-20 Sgs Thomson Microelectronics A cache coherency mechanism
GB9809203D0 (en) * 1998-04-29 1998-07-01 Sgs Thomson Microelectronics Packet distribution in a microcomputer

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05241961A (ja) * 1992-01-02 1993-09-21 Internatl Business Mach Corp <Ibm> キャッシュ・スヌープ/データ無効化機能を有するコンピュータ・システム
JPH0922382A (ja) * 1995-03-31 1997-01-21 Sun Microsyst Inc コンピュータシステムおよびそのプロセッサの外部キャッシュに記憶したデータブロックを無効化する方法
JPH11149410A (ja) * 1997-11-17 1999-06-02 Nec Corp コピータグメモリにExclusive Hitしたトランザクションに対するキャンセル信号送信方式

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014532922A (ja) * 2011-10-26 2014-12-08 クゥアルコム・テクノロジーズ・インコーポレイテッド 3チャネルキャッシュコヒーレンシソケットプロトコル
US9361230B2 (en) 2011-10-26 2016-06-07 Qualcomm Technologies, Inc. Three channel cache-coherency socket protocol
CN109101439A (zh) * 2017-06-21 2018-12-28 深圳市中兴微电子技术有限公司 一种报文处理的方法及装置
CN109101439B (zh) * 2017-06-21 2024-01-09 深圳市中兴微电子技术有限公司 一种报文处理的方法及装置

Also Published As

Publication number Publication date
US20020019913A1 (en) 2002-02-14
US6412047B2 (en) 2002-06-25
JP5265827B2 (ja) 2013-08-14

Similar Documents

Publication Publication Date Title
US7228389B2 (en) System and method for maintaining cache coherency in a shared memory system
JP3365433B2 (ja) キャッシュメモリ構成体とその使用方法
US5983326A (en) Multiprocessing system including an enhanced blocking mechanism for read-to-share-transactions in a NUMA mode
US5860159A (en) Multiprocessing system including an apparatus for optimizing spin--lock operations
US6366984B1 (en) Write combining buffer that supports snoop request
EP0817073B1 (en) A multiprocessing system configured to perform efficient write operations
US7032074B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US8037253B2 (en) Method and apparatus for global ordering to insure latency independent coherence
US6640289B2 (en) Software controlled cache line ownership affinity enhancements in a multiprocessor environment
CN101446923B (zh) 一种响应于指令而清洗高速缓冲存储器线的装置和方法
US6463510B1 (en) Apparatus for identifying memory requests originating on remote I/O devices as noncacheable
US20090037614A1 (en) Offloading input/output (I/O) virtualization operations to a processor
US20050251626A1 (en) Managing sparse directory evictions in multiprocessor systems via memory locking
US6470429B1 (en) System for identifying memory requests as noncacheable or reduce cache coherence directory lookups and bus snoops
JPH10187645A (ja) プロセス・ノードの多数のサブノード内にコヒーレンス状態で格納するように構成されたマルチプロセス・システム
JPH10149342A (ja) プリフェッチ動作を実行するマルチプロセス・システム
JP5265827B2 (ja) ハイブリッドコヒーレンスプロトコル
JPH1055306A (ja) メモリコントローラ
US20090006668A1 (en) Performing direct data transactions with a cache memory
EP3885918B1 (en) System, apparatus and method for performing a remote atomic operation via an interface
WO2006012047A1 (en) Direct processor cache access within a system having a coherent multi-processor protocol
US20070073977A1 (en) Early global observation point for a uniprocessor system
JPH06318174A (ja) キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
JPH11328106A (ja) グラフィックス・バスにアクセスするために多重のバス・マスタを可能とするアービトレーション機構を備えたコンピュータ・システム
US6629213B1 (en) Apparatus and method using sub-cacheline transactions to improve system performance

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071002

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110208

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110509

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110512

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110607

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110610

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110705

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110708

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110801

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111209

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20111214

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20120217

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130502

R150 Certificate of patent or registration of utility model

Ref document number: 5265827

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250