JPH113268A - 複数のメモリ・モデルを使用してメモリ・トランザクションの実行を並列化するシステムおよび装置 - Google Patents

複数のメモリ・モデルを使用してメモリ・トランザクションの実行を並列化するシステムおよび装置

Info

Publication number
JPH113268A
JPH113268A JP9187284A JP18728497A JPH113268A JP H113268 A JPH113268 A JP H113268A JP 9187284 A JP9187284 A JP 9187284A JP 18728497 A JP18728497 A JP 18728497A JP H113268 A JPH113268 A JP H113268A
Authority
JP
Japan
Prior art keywords
memory
transaction
memory transaction
ordering
transactions
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
JP9187284A
Other languages
English (en)
Other versions
JP3807460B2 (ja
Inventor
Zahir Ebrahim
ザヒール・エイブラヒム
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH113268A publication Critical patent/JPH113268A/ja
Application granted granted Critical
Publication of JP3807460B2 publication Critical patent/JP3807460B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types

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)
  • Multi Processors (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 【課題】 コンピュータ・プログラムによる複数のメモ
リ・モデルの使用をサポートするデータ・プロセッサ。 【解決手段】 メモリ・コントローラ内の論理回路が、
最も最近に受け取ったメモリ・トランザクション要求に
関連づけられたメモリ・モデルと少なくとも1つの他の
保留メモリ・トランザクションに関連づけられたメモリ
・モデルとに基づいて、最も最近に受け取ったメモリ・
トランザクション要求に関連づけられたメモリ・トラン
ザクションを他の保留メモリ・トランザクションの前に
実行することができるかどうかを判断し、次にこの順序
づけ判断を表すデータをトランザクション・スコアボー
ドに格納する。メモリ・コントローラは保留メモリ・ト
ランザクションを、メモリ・トランザクション順序デー
タと整合性のある順序で実行する。その結果、保留メモ
リ・トランザクションのサブセットがデータ・プロセッ
サから受け取った順序とは異なる順序で実行される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、メモリへのアクセ
スを管理するためにメモリ・コントローラを使用し、変
化するメモリ・アクセス順序づけ要件を有するメモリ・
トランザクションを実行するコンピュータ・システムに
関し、具体的には、メモリ・コントローラが、メモリ・
コントローラにエクスポートされる各メモリ・トランザ
クションのメモリ・アクセス順序づけ要件と整合性のあ
る方式でメモリ・トランザクションを順序づけし直し、
並列して実行するシステムに関わる。
【0002】
【従来の技術】 定義 本明細書では「相互接続機構」という用語は、データ・
プロセッサとデータ・プロセッサが使用するメモリ資源
との間の回路およびデータ経路を意味するものと定義す
る。また、相互接続機構は、データ・プロセッサをメモ
リ資源だけでなく様々な入出力チャネルにも接続するこ
とができる。
【0003】本明細書では、「強く順序づけされたトラ
ンザクション」の場合のような「強く順序づけされた」
という用語は、トランザクションをプログラム命令スト
リームで指定されているのと同じ順序で実行しなければ
ならないことを意味するものと定義する。
【0004】「メモリ・トランザクションを並列実行す
る」という用語は、多くのコンピュータ・システムにお
いて、相互接続機構で使用可能な並列メモリ・トランザ
クション経路を使用して、重なり合った期間中にいくつ
かのメモリ・トランザクションを並列して実行すること
ができることを指す。
【0005】本明細書の文脈では「並列処理」という用
語は、相互接続機構で使用可能な並列メモリ・トランザ
クション経路を使用して、重なり合った期間中にメモリ
・トランザクションを並列実行することを指す。プログ
ラム命令がそれに付随するメモリ・トランザクションの
並列実行により偶然に並列して実行される場合を除き、
データ・プロセッサによる命令の並列実行のことは指さ
ない。
【0006】メモリ・トランザクションとは以下のいず
れかである。 ・ ストア:指定した記憶場所の値を置き換えるように
求めるプロセッサからの要求。プロセッサがストア・ト
ランザクションを開始する際、アドレスと新しい値がス
トア・トランザクションに結合される。ストアは新しい
値がシステム内のすべてのプロセッサに認識可能(グロ
バールに認識可能)になると完了する。 ・ ロード:指定した記憶場所の値を取り出すように求
めるプロセッサからの要求。プロセッサがロード・トラ
ンザクションを開始すると、アドレスがロード・トラン
ザクションに結びつけられる。ロードは、返される値が
他のプロセッサによって行われるストアによって変更す
ることができなくなると完了する。 ・ アトミック:他のメモリ・トランザクションがロー
ドとストアの間にメモリの状態を変更しないように保証
されたロード/ストアの対。アトミック・トランザクシ
ョンとは、ロードとストアの両方であるとみなされる。 ・ フラッシュ:命令空間にエイリアスされたデータ空
間の変更に強制的に整合性をもたせるように求めるプロ
セッサからの要求。フラッシュ・トランザクションはメ
モリ・モデルのためのストア操作とみなされる。 ・ 割込み:1つのプロセッサから直接他のプロセッサ
へのクロス呼出しトランザクション。割込みトランザク
ションはメモリ・モデルのためのストア操作のようなも
のと考えられる。 ・ プリフェッチ:メモリ・モデルのためのロード操作
と考えられる。
【0007】「プログラム順序」とは、プロセッサnが
命令を論理的に実行したシーケンスを示す、プロセッサ
単位の順序である。メモリ・トランザクションAとメモ
リ・トランザクションBがプログラム順であると言われ
るのは以下の場合に限られる。メモリ・トランザクショ
ンAが、メモリ・トランザクションBが行われる命令の
前に実行される命令によって行われる場合。
【0008】「メモリ・トランザクション順序づけモデ
ル」(簡潔にするために通常「メモリ・モデル」と短縮
される)とは、本明細書では、メモリ・トランザクショ
ンが生成された順序とは異なる順序で実行することがで
きる程度を規定する1組の規則を意味するものと定義す
る。相互接続機構から見た4つのメモリ・モデルの定義
は以下の通りである。 1)RMO(緩いメモリ順序)。 RMOを使用するプ
ログラムおよびプログラム・セグメントでは、プロセッ
サの自己一貫性のために必要な制限以外には、相互接続
機構に対して出されるトランザクションに関する順序づ
け制限がない。 2)PSO(部分ストア順序)。 PSOを使用するプ
ログラムおよびプログラム・セグメントでは、ロードは
それ以降のすべてのメモリ・トランザクションに対する
ブロッキングであり、それ以前のロードに対して順序づ
けされる。アトミック・トランザクションは、ロード・
トランザクションに対して順序づけされる(すなわち、
アトミック・トランザクションとロード・トランザクシ
ョンは互いにバイパスすることができない)。ストアは
他のストアをバイパスすることができるが、後のストア
は前のロード・トランザクションをバイパスすることが
できない。視点を変えると、PSOの規定は、RMOの
規定に、ロード・セマンティクスを持つすべてのメモリ
・トランザクション(ロード・トランザクションとアト
ミック・トランザクションを含む)の後には暗黙のMe
mbar LoadLoad LoadStoreが続
くという追加要件が付いたものである。 3)TSO(トータル・ストア順序)。 TSOを使用
するプログラムおよびプログラム・セグメントでは、ス
トアはストアをバイパスせず、ロードはそれ以降のスト
アおよびロードに対するブロッキングであり、ロードを
バイパスしない。ロードは前のストアをバイパスするこ
とができるが、ストアは前のロードをバイパスしてはな
らない。アトミック・トランザクションは、以降のトラ
ンザクションに対するブロッキングである。別の視点か
ら見ると、TSOの規定は、PSOの規定に、ストア・
セマンティクスを持つすべてのメモリ・トランザクショ
ン(ストア・トランザクションとアトミック・トランザ
クションを含む)の後に暗黙のMembar Stor
eStoreが続くという追加要件が付いたものであ
る。 4) SSO(強い順次順序)。SSOは通常、入出力
装置にアクセスするのに必要である。SSOは、順序が
一貫したハードウェアを前提とするプログラムでも使用
される。トランザクション発行順序、完了順序、および
プログラム順序はすべて同じである。プログラム順序の
ロードとストアは、プロセッサまたは相互接続機構で互
いにバイパスしない。
【0009】「同期コマンド」および「membar」
命令という用語は両方とも、同期点の前の一部またはす
べてのタイプのメモリ・トランザクションが、同期点の
後のメモリ・トランザクションの実行の前に完了するよ
うにするために使用される命令を指す。本明細書では、
以下のように5種類のタイプのmembar命令を定義
する。 1) membar memsync:このmemba
r命令の前の(すべてのタイプの)すべてのメモリ・ト
ランザクション命令は、このmembar命令の後のメ
モリ・トランザクション命令の実行の前に完了しなけれ
ばならない。 2) membar store−store:このm
embar命令の前のすべてのストア命令は、このme
mbar命令の後のストア命令の実行の前に完了しなけ
ればならない。 3) membar load−load:このmem
bar命令の前のすべてのロード命令は、このmemb
ar命令の後のロード命令の実行の前に完了しなければ
ならない。 4) membar store−load:このme
mbar命令の前のすべてのストア命令は、このmem
bar命令の後のロード命令の実行の前に完了しなけれ
ばならない。 5) membar load−store:このme
mbar命令の前のすべてのロード命令は、このmem
bar命令の後のストア命令の実行の前に完了しなけれ
ばならない。
【0010】RMOモデルを使用する場合、適切なme
mbar命令を発行することによって2つのトランザク
ションの間の順序づけ要件が強制される。TSOモデル
を使用する場合、ロード・トランザクションの後に暗黙
的に「membar load−load」命令と「m
embar load−store」命令が続き、スト
ア・トランザクションの後には暗黙的に「membar
store−store」命令が続く。
【0011】データ・プロセッサ内でのメモリ・モデル
の使用 様々なトランザクションを処理し、メモリ・アクセス要
求(ストアおよびロード)をそれ自体のキャッシュ・メ
モリの外部にある場所にエクスポートする順序を決定す
るデータ・プロセッサ(CPUと呼ぶ場合がある)の関
係では、(A)データ・プロセッサが実行中のトランザ
クションのタイプから、メモリ・アクセス要求の順序を
変更してもエラーが発生しないことを認識し、(B)エ
クスポートされたメモリ・アクセス要求の順序を変更す
ると様々なメモリ・アクセス・トランザクションの並列
実行が可能になることによってシステムの動作速度が向
上する可能性がある場合、データ・プロセッサは、メモ
リ・アクセス要求が生成されたプログラム実行順序とは
異なる順序でメモリ・アクセス要求をエクスポートする
ことができることは周知である。
【0012】大規模なスケーラブル・システムや、高パ
フォーマンスのマルチプロセッサ・システムでは、実行
されるソフトウェアはいくつかの異なる所定のメモリ・
モデルを使用することができる。上記ではこのようなメ
モリ・モデルを4種類定義している。このようなソフト
ウェアを設計するプログラマは、様々なメモリ・モデル
を暗黙的または明示的に使用するプログラム命令を使用
することによってプログラムの実行速度の向上を試みる
ことができる。すなわち、プログラム中の命令のうちの
少なくとも一部は、プログラムに付随するメモリ・トラ
ンザクションのうちの一部を並列実行することができる
ようにするメモリ・モデルを指定することができる。プ
ログラマは、プログラム内のあらゆる点で強力な順序の
一貫性を要求せずに、プログラム内の意味のある点で
「同期点」を明示的に指定することにより、プログラム
内のメモリ・トランザクションの実行の並列化を試みる
ことができる。このような同期点は、同期点の前にある
一部またはすべてのタイプのメモリ・トランザクション
が、同期点の後にあるメモリ・トランザクションの実行
の前に完了することを必要とする。
【0013】複数のメモリ・モデルの使用、または緩い
メモリ・モデルとmembar命令とを組み合わせた使
用によって、理論上、プログラマはそれらを使用しない
場合よりも多くの並列処理をプログラムで指定または実
行可能となる。しかし、データ・プロセッサは一般に相
互接続機構にメモリ・モデル情報を供給していない。実
際には、ほとんどのデータ・プロセッサは、発行したす
べてのメモリ・アクセス・トランザクションが強く順序
づけされることを求める。その結果、そのようなデータ
・プロセッサでは、データ・プロセッサはメモリ・トラ
ンザクションが相互接続機構に送られる順序をそれに対
応するメモリ・トランザクション要求がプログラム命令
によって生成された順序とは異なる順序に内部的に変更
することができるが、相互接続機構はメモリ・トランザ
クションを順序変更しない。
【0014】PowerPCマイクロプロセッサはこれ
とは異なる方法をとる。PowerPCは最も弱いメモ
リ・モデル(上記で定義したRMO)を採り、相互接続
機構がすべてのトランザクションを並列化することがで
きるようにする。したがって、PowerPCは、アプ
リケーションと、デバイス・ドライバなどのシステム・
ソフトウェアの両方のすべてのプログラムが適切なメモ
リ同期コマンドを確実に持つようにしなければならない
という負担をプログラマに負わせる。ハードウェアから
のより強力なメモリ・モデルを前提とするプログラム
は、多くの同期コマンドを組み込まなければPower
PCでは正常に実行されない。一般に、1996年の時
点で商業化されているソフトウェアは、相互接続機構が
SSOやTSOなどの強力なメモリ・モデルを使用する
ことを前提とするものの方が、相互接続機構がPSOや
RMOなどのより弱いメモリ・モデルを使用することを
前提とするソフトウェアよりもはるかに多い。
【0015】
【発明が解決しようとする課題】データ・プロセッサに
よっては、プロセッサ内で多くのメモリ・モデルをサポ
ートするものもある。たとえば、SPARCプロセッサ
は、SSO、TSO、PSO、およびRMOをすべてサ
ポートする。このため、この種のデータ・プロセッサは
キャッシュ・メモリとの間のメモリ・トランザクション
を順序づけし直すことができる。しかし、この種のデー
タ・プロセッサは相互接続機構にメモリ・モデル情報を
提供しない。その結果、データ・プロセッサの相互接続
機構は単一のメモリ・モデルをサポートしなければなら
ず、SPARCプロセッサの場合、この単一のメモリ・
モデルは従来、メモリ参照のために相互接続インタフェ
ースにあるSSOであった。SPARCプロセッサでは
入出力トランザクションは別個の非キャッシュ・トラン
ザクションによって記述され、相互接続機構はSSOモ
デルだけを使用してそれを実行する。したがって、この
ようなシステムには、実行プログラムが使用する内部メ
モリ・モデルが相互接続機構が実施する単一のメモリ・
モデルよりも弱い場合(すなわちより多くの並列処理が
可能な場合)、メモリ・トランザクションを並列化する
柔軟性または機会がない。これは、メモリが恣意的に遠
くなることがあって相互接続ネットワークによって接続
されるNUMAアーキテクチャでは、さらに重大にな
る。このような場合、メモリ・モデル情報を相互接続ネ
ットワークコントローラが入手することができるように
した場合、相互接続ネットワークを介してトランザクシ
ョンを並列化する機会が多くなる。
【0016】
【課題を解決するための手段】コンピュータ・プログラ
ムによる複数のメモリ・トランザクション順序づけモデ
ル(メモリ・モデル)の使用をサポートするデータ・プ
ロセッサを有するコンピュータ・システムにおいて、メ
モリ・トランザクションを以下のように管理する。メモ
リおよび相互接続コントローラなどのデータ・プロセッ
サの外部にあるデバイスで、データ・プロセッサからの
メモリ・トランザクション要求を受け取る。各メモリ・
トランザクション要求には、事前定義された複数のメモ
リ・モデルの中から選択されたメモリ・モデルが関連づ
けられている。好ましい実施態様では、サポートされる
事前定義メモリ・モデルは、SSO(強い順次順序)、
TSO(トータル・ストア順序)、PSO(部分ストア
順序)、およびRMO(緩いメモリ順序)である。
【0017】保留メモリ・トランザクションを表すデー
タが1つまたは複数の保留トランザクション・バッファ
と保留トランザクション状況アレイとに格納される。保
留トランザクション状況データには、どの保留メモリ・
トランザクションを他の保留メモリ・トランザクション
より前に実行することができるかを示すメモリ・トラン
ザクション順序データが含まれる。具体的には、メモリ
・コントローラ内の論理回路が、最も最近に受け取った
メモリ・トランザクション要求に関連づけられたメモリ
・モデルと、少なくとも1つの他の保留メモリ・トラン
ザクションに関連づけられたメモリ・モデルとに基づい
て、最も最近に受け取ったメモリ・トランザクション要
求に関連づけられたメモリ・トランザクションを他方の
保留メモリ・トランザクションの前に実行することがで
きるかどうかを判断し、次にその順序づけの決定を表す
データをトランザクション・スコアボードに格納する。
【0018】メモリ・コントローラは、保留メモリ・ト
ランザクションをこのメモリ・トランザクション順序デ
ータと整合性のある順序で実行する。その結果、保留メ
モリ・トランザクションのサブセットは、データ・プロ
セッサから受け取った順序とは異なる順序で実行され
る。
【0019】
【発明の実施の形態】本発明の他の目的および特徴は、
図面を参照しながら以下の詳細な説明と特許請求の範囲
を読めばより容易にわかるであろう。
【0020】図1を参照すると、プロセッサ104のク
ラスタを備えるコンピュータ・システム100が図示さ
れている。プロセッサ104は相互接続ネットワーク1
06を介して一次メモリ(ランダム・アクセス・メモ
リ)108と二次メモリ110(磁気ディスク記憶装置
などの不発性メモリ)と入出力資源111とに結合され
ている。ネットワーク・インタフェース112によっ
て、他のプロセッサ・クラスタに関連づけられた遠隔場
所にあるメモリ113にアクセスすることができる。一
次メモリ108と二次メモリ110と入出力資源11と
遠隔場所にあるメモリ113とへのアクセスは、相互接
続機構およびメモリ・コントローラ114によって管理
される。プロセッサ104の他のクラスタが、遠隔場所
のメモリ113へのアクセスおよび当該クラスタのロー
カル・メモリ資源へのアクセスをそれ自体の相互接続ネ
ットワーク106を介して共有する。
【0021】本明細書では、「メモリ・コントローラ」
とは、データ・プロセッサの外部にあって、データ・プ
ロセッサからキャッシュ・ミス・トランザクションを受
け取るあらゆる制御論理回路を指す。これには、相互接
続コントローラ、遠隔メモリ・コントローラ、入出力コ
ントローラなどが含まれる。
【0022】クラスタ内の各プロセッサ104は、実装
されている共有メモリ・アーキテクチャのタイプに応じ
て、システム内の他のプロセッサのキャッシュ・メモリ
に記憶されている内容との一貫性(すなわち整合性)を
維持することができるそれ自体のローカル・キャッシュ
・メモリ120を備える。各プロセッサ104はメモリ
管理ユニット122も備え、メモリ管理ユニットは、デ
ータ・プロセッサ104によって実行されるプロセスに
よって使用される仮想アドレスを様々な記憶装置10
8、110内の記憶場所に対応する物理アドレスに変換
するアドレス変換バッファ(TLB)を含む。
【0023】その結果の一次物理メモリ・アドレス内の
データのコピーがキャッシュ・メモリ120に記憶され
ている場合、プロセッサ104はそれ自体のキャッシュ
・メモリ120内のアドレス指定されたデータに直接ア
クセスする。アドレス指定されたデータがキャッシュ・
メモリ120内にない場合、相互接続およびメモリ・コ
ントローラ114はアドレス指定されたデータを一次メ
モリ108、二次メモリ110、または遠隔メモリ11
2から取り出し、それをキャッシュ・メモリ120に格
納する。二次メモリ110(ディスクからのDMA)ま
たは遠隔メモリ113(COMAおよび単純COMAア
ーキテクチャなど)から取り出されたデータの場合、一
般にはソフトウェア制御の下でフル・ページのデータが
まず一次メモリ108にコピーされ、次にそこからキャ
ッシュ・ラインと呼ばれるより小さなブロックのデータ
がキャッシュ・メモリ120にコピーされる。NUMA
アーキテクチャでは、データは遠隔メモリ113からキ
ャッシュ・メモリ120に直接フェッチされる。次に、
プロセッサ104はそのプロセッサのキャッシュ・メモ
リ120からアドレス指定されたデータにアクセスす
る。
【0024】本発明の好ましい実施形態では、相互接続
およびメモリ・コントローラ114に送られる各メモリ
・トランザクション(すなわちロード、ストア、または
アトミック・メモリ・トランザクション)には、2ビッ
ト・メモリ・モデル値MM[1:0]が関連づけられて
いる。その値は、SSOは11、TSOは10、PSO
は01、RMOは00である。プロセッサのISA(命
令セット・アーキテクチャ)内のすべてのメモリ・トラ
ンザクションは、ロード、ストア、およびアトミックの
トランザクションのカテゴリのうちの1つにマップされ
る。たとえば、「割込み送信」は「ストア」トランザク
ション・カテゴリにマップされ、「ブロック・ストア」
は「ストア」トランザクション・カテゴリにマップさ
れ、プリフェッチは「ロード」トランザクション・カテ
ゴリにマップされるという具合である。
【0025】これらのマッピングではメモリ・モデル情
報も指定することができる。たとえば、プリフェッチ・
ロードをメモリ・モデルRMOと共に発行することがで
きる。割込みは、(A)特にメモリに対する前のストア
操作の後に順序づけなければならない場合はメモリ・モ
デルSSO、または(B)前のメモリ操作に対する依存
関係がない場合はメモリ・モデルRMOと共に発行する
ことができる。メモリ・モデル・ビットMMによって、
適切な場合にはより多くの並列処理を使用することがで
きるように割込みトランザクションに対する順序づけ制
約が指定されるため、これは割込みトランザクションが
相互接続機構で専用トランザクション・タイプを使用す
る場合であっても適用される。
【0026】MM[1:0]ビットは、プロセッサ状態
レジスタによって供給するか、またはMMU122がメ
モリ・トランザクションに関連づけられたアドレスを物
理アドレスに変換するために使用するページ・テーブル
項目から供給することができる。すなわち、本発明のあ
る種の実施形態では、MMUが使用するページ・テーブ
ル内のページごとにメモリ・モデル特性を示すことがで
きる。相互接続機構(すなわち相互接続およびメモリ・
コントローラ114)に送られるメモリ・トランザクシ
ョン要求にMM(メモリ・モデル)値を組み込むことに
より、相互接続およびメモリ・コントローラ114は、
データ・プロセッサから出されたトランザクションが複
数ある場合に、どのトランザクションがどのメモリ・モ
デルに従って発行されたかを追跡することができる。ま
た、これによってコントローラ114は、並列トランザ
クション処理が使用可能な場合により弱いメモリ・モデ
ルに従って発行されたメモリ・トランザクションを並列
化することができ、より強いメモリ・モデルに従って発
行されたトランザクションが強く順序づけされるように
保証することができる。
【0027】並列処理が最大限になるように(すなわち
可能な場合には常に並列メモリ・トランザクション経路
を使用するように)トランザクションのうちのいくつか
を順序外れで実行することができる場合、発行された複
数のメモリ・トランザクションを完了するための全体的
な待ち時間が大幅に短縮されることが多い。これによっ
て、相互接続機構の全体的なスループットも向上する。
【0028】相互接続機構にエクスポートされる各メモ
リ・トランザクションと共にプロセッサのメモリ・モデ
ルを簡潔、一様かつ効率的な方法でコード化することに
よって、各メモリ・モデルにとって適切な並列メモリ・
トランザクション経路の使用が可能になるだけでなく、
順次順序で実行されなければならないメモリ・トランザ
クションの効率的なパイプライン化も可能になる。
【0029】図2を参照すると、相互接続およびメモリ
・コントローラ114はメモリ・コントローラ制御回路
130を備え、メモリ・コントローラ制御回路130は
保留メモリ・トランザクションの追跡と保留トランザク
ション間のインタロックの決定とトランザクションの実
行の管理とを行ういくつかの状態機械を含む。メモリ・
トランザクション・インタフェースまたはポート131
でメモリ・トランザクション要求を受け取り、次に、そ
れぞれ順序づけされていない保留トランザクション、順
序づけされたロード・トランザクション、および順序づ
けされたストア・トランザクションを格納するために使
用されるいくつかのバッファ132、134、136の
うちの1つに格納される。あるいは、すべての保留メモ
リ・トランザクションを1つのバッファに格納すること
もできる。
【0030】すべての保留メモリ・トランザクションに
関する状況情報がトランザクション・スコアボード14
0に格納される。その一部について以下で詳述する。し
かし、基本的にはトランザクション・スコアボード14
0には各保留メモリ・トランザクションごとに1つのレ
コード142が格納される。レコードはデータ・プロセ
ッサから受け取った順序と同じ順序で配置される。各レ
コードは、トランザクション要求が格納されているバッ
ファ場所を指すポインタと、状況情報と、インタロック
・マップと呼ぶトランザクション・インタロック情報と
を含む。
【0031】好ましい実施形態では、データ・プロセッ
サがmembar命令を実行するとき、その命令は相互
接続およびメモリ・コントローラ114に渡され、相互
接続およびメモリ・コントローラ114はそのmemb
ar命令の表現をmembarバッファ144に格納す
る。具体的には、membarバッファ144にはトラ
ンザクション・スコアボード140の各レコード142
に対応するレコードが含まれる。各membarレコー
ドに格納されたデータは、データ・プロセッサによるm
embar同期命令の実行のために、どのタイプのトラ
ンザクションを対応する保留トランザクションの前に行
うことができないかを示す。membarトランザクシ
ョン順序づけ制約は、様々なメモリ・モデルに付随する
メモリ・トランザクション順序づけ制約を補足またはオ
ーバーライドする。
【0032】様々なメモリ・モデルに付随するメモリ・
トランザクション順序づけ制約は、1組のトランザクシ
ョン順序づけテーブル146によって表される。各テー
ブル146は、TXT1(前のトランザクションのトラ
ンザクション・タイプ)、MM1(前のトランザクショ
ンに関連づけられたメモリ・モデル)、TXT2(次の
トランザクションのトランザクション・タイプ)、およ
びMM2(次のトランザクションに関連づけられたメモ
リ・モデル)の各軸を持つ四次元テーブルとみなすこと
ができる。後述する理由から、一実施形態では、相互接
続およびメモリ・コントローラ114はトランザクショ
ン順序づけテーブルのN個のコピーを記憶し、Nは可能
最大トランザクション順序づけ変更範囲である。たとえ
ばNが3の場合、トランザクションは最高3つの直前の
メモリ・トランザクションに対して順序づけし直すこと
ができる。
【0033】トランザクション順序づけテーブル146
のいくつかの部分を表1ないし4に示す。これらの各表
で、行見出しは前のトランザクションのトランザクショ
ン・タイプおよびメモリ・モデルを示し、列見出しは後
続のトランザクションのトランザクション・タイプとメ
モリ・モデルを示す。それぞれ「M」または「P」であ
るテーブル項目は以下のように定義される。 ・ P:2つのメモリ・トランザクションをプログラム
発行順序(すなわちメモリ・コントローラが受け取った
のと同じ順序)で実行する。 ・ M:2つのメモリ・トランザクションを任意の順序
で実行する。
【表1】
【表2】
【表3】
【表4】
【0034】トランザクション順序づけテーブル146
で順序づけ制約によって表されるメモリ・トランザクシ
ョン・モデルの「作用」はある程度恣意的である。しか
し、トランザクション順序づけテーブル146に関連づ
けられる順序づけ制約が選択され、指定された後は、そ
れらの制約はコンピュータ・システムとプログラマの間
の契約と似ている。プログラマはその契約を使用して、
特定のプログラムによって実行されるタスクに関連づけ
られたメモリ・トランザクション順序づけ要件を守らせ
るためにmembar命令(フェンス、バリヤ、または
同期命令とも呼ぶ)をどこに挿入しなければならないか
を判断する。
【0035】どの入出力トランザクションおよびメモリ
・トランザクションを順序づけ変更または並列化するこ
とができるかを判断する基準としてトランザクション順
序づけテーブル146を使用することによって、トラン
ザクション順序づけテーブル146を新しいメモリ・モ
デルを扱うように容易に拡張することができ、メモリ・
モデルの定義の変更に対応するように(選択した「P」
項目を「M」に置き換えたりその逆に置き換えたりする
ことによって)トランザクション順序づけテーブル14
6を容易に修正することができるため、柔軟性が得られ
る。
【0036】メモリ・コントローラはトランザクション
・ディスパッチ論理回路148も備える。このトランザ
クション・ディスパッチ論理回路148は、他のメモリ
・トランザクションを受け入れることができる状態にな
っている各メモリ資源について実行する保留トランザク
ションがある場合にその保留トランザクションを選択す
る論理回路である。
【0037】例示 図3ないし図7は、本発明の実施形態を示す図である。
その他の実施形態では、トランザクション間のさらに大
規模な並列処理を実現することもできる。
【0038】受け取ったトランザクションのインタロッ
ク・マップを生成するインタロック決定論理回路 図3を参照すると、相互接続およびメモリ・コントロー
ラ114の動作を説明するために、1データ・プロセッ
サ当たり最高7つの保留メモリ・トランザクションをス
トアすることができ、メモリ・トランザクションをその
トランザクションの前に受け取った最高3つのトランザ
クションまで順序づけ変更することができ、トランザク
ションを実行するために3つの並列メモリ・トランザク
ション経路を使用するコントローラ114について説明
する。他の実施形態では、最大記憶トランザクション
数、トランザクション順序づけ変更の深さ、および個別
メモリ資源の数は、これらの設計選定内容とは異なるこ
とがある。
【0039】図3に示すように、各トランザクション・
スコアボードのレコード142には、関連づけられたト
ランザクションのメモリ・モデル(MM)と、トランザ
クション・タイプ(TXT)(すなわちロード、スト
ア、またはアトミック)と、直前の3つのトランザクシ
ョンに関する順序づけ制約を示すインタロック・マップ
150とが格納される。
【0040】各保留トランザクションのインタロック・
マップの3ビットは、以下のように定義される。Int
erlockMap(i,0)は、i番目の保留トラン
ザクションをその直前の保留トランザクションに関して
順序づけ変更することができない場合は1に等しく、i
番目の保留トランザクションをその直前のトランザクシ
ョンに関して順序づけ変更することができる場合は0に
等しい。同様に、InterlockMap(i,1)
は、i番目の保留トランザクションをi番目のトランザ
クションの2つ前のトランザクション(すなわちトラン
ザクション・スコアボードのi+2番目の項目によって
表されるトランザクション)に関して順序づけ変更する
ことができない場合は1に等しく、i番目の保留トラン
ザクションをi番目のトランザクションの2つ前のトラ
ンザクションに関して順序づけ変更することができる場
合は0に等しい。最後に、InterlockMap
(i,2)は、i番目の保留トランザクションをi番目
のトランザクションの3つ前のトランザクション(すな
わちトランザクション・スコアボードのi+3番目の項
目によって表されるトランザクション)に関して順序づ
け変更することができない場合は1に等しく、i番目の
保留トランザクションをi番目のトランザクションの3
つ前のトランザクションに関して順序づけ変更すること
ができる場合は0に等しい。
【0041】membarオーバーライド論理回路(M
OL)152をさし当たって無視すると、(メモリ・コ
ントローラ論理回路130の一部である)インタロック
決定論理回路154が現行トランザクションと直前のト
ランザクションに対応するトランザクション順序づけテ
ーブル146内の項目を参照するだけでInterlo
ckMap(0,0)が生成される。すなわち、現行ト
ランザクションのメモリ・モデルおよびトランザクショ
ン・タイプ(MM1,TXT0)と直前のトランザクシ
ョンのメモリ・モデルおよびトランザクション・タイプ
(MM0,TXT0)とに応じて順序づけ制約が生成さ
れる。テーブル項目が「P」の場合、論理「1」が出力
され、トランザクションを順次に順序づけなければなら
ないことを意味する。「P」でない場合は「0」が出力
され、その2つのトランザクションを並列して実行した
り、受け取った順序とは逆の順序で実行したりすること
ができることを意味する。
【0042】InterlockMap(0,1)は、
トランザクション順序づけテーブル146で現行トラン
ザクションと現行トランザクションの2つ前に受け取っ
たトランザクションとの間に順次順序づけ要件がないか
どうかを調べることによって生成される。トランザクシ
ョン・タイプとメモリ・モデルに基づいてその2つのト
ランザクションの間に順次順序づけ要件がない場合で
も、(A)現行トランザクションと直前のトランザクシ
ョンとの間に順次順序づけ要件があり、(B)直前のト
ランザクションとその直前のトランザクションとの間に
も順次順序づけ要件がある場合には、その2つのトラン
ザクションの間には間接的な順次順序づけ要件がある。
この間接的順次順序づけ要件を推移関係と呼ぶ。
【0043】InterlockMap(0,2)は、
トランザクション順序づけテーブル146で現行トラン
ザクションと現行トランザクションの3つ前に受け取っ
たトランザクションとの間に順次順序づけ要件がないか
どうか調べることによって生成される。この2つのトラ
ンザクションにトランザクション・タイプとメモリ・モ
デルに基づいて順次順序づけ要件がない場合でも、
(A)現行トランザクションと現行トランザクションの
2つ前のトランザクションとの間に順次順序づけ要件が
あり、(B)2つ前のトランザクションと直前のトラン
ザクションとの間にも順次順序づけ要件がある場合は、
その2つのトランザクションの間に間接的な順次順序づ
け要件がある。
【0044】membarオーバーライド論理回路15
2の動作を除き、3つのインタロック・マップ値のブー
ル論理式は以下のようになる。 InterlockMap(0,0)= Table0(MM0,MM1,TX0,TX1) InterlockMap(0,1)= Table1(MM0,MM2,TX0,TX2)OR(Inte
rlockMap(0,0)AND InterlockMap(1,0)) InterlockMap(0,2)= Table2(MM0,MM3,TX0,TX3)OR(Inte
rlockMap(0,1)AND InterlockMap(2,0))
【0045】Table0、Table1およびTab
le2は、トランザクション順序づけテーブル146の
同一のコピーである。テーブル146の並列コピーを備
えることにより、すべてのインタロック・マップ値の計
算を単一の状態機械クロック・サイクルで完了すること
ができる。
【0046】membarオーバーライド論理回路15
2は次のように機能する。i番目のメモリ・トランザク
ション(すなわちトランザクション・スコアボードでi
番目の項目によって表されるトランザクション)の後に
データ・プロセッサによって相互接続機構にmemba
r命令がエクスポートされた場合、メモリ・コントロー
ラ論理回路は対応するmembarレコードをmemb
arバッファ144のi番目の項目に格納し、前の各保
留トランザクションのmembarレコードも格納す
る。各membarバッファ・レコードは3つの項目を
持つことができ、その例を表5に示す。
【表5】
【0047】メモリ・トランザクションの後にmemb
ar命令が相互接続機構にエクスポートされない場合、
対応するmembarレコードはすべてゼロに設定され
る。メモリ・トランザクションの後にmembar命令
がエクスポートされた場合、対応するmembarレコ
ード(すなわち現行トランザクションと前の保留トラン
ザクションのmembarレコード)は、現行トランザ
クションが完了する前に実行してはならない後続の各タ
イプのトランザクション(すなわちロード、ストア、ま
たはアトミック)について1に設定される。すべての保
留membar制約が一緒に(すなわち累積的に)適用
されるため、最も最近に受け取ったトランザクション要
求のmembar制約値は、直前に受け取ったトランザ
クションのために生成されたmembar制約値と、デ
ータ・プロセッサから受け取った新しいmembar制
約値との論理和をとることによって生成することができ
る。
【0048】membarオーバーライド論理回路15
2が特定のインタロック・マップ値についてmemba
rバッファ144から「1」を受け取った場合、そのイ
ンタロック・マップ値は「1」に設定され、順次順序づ
け制約またはインタロックが課されることを意味する。
membarオーバーライド論理回路152が特定のイ
ンタロック・マップ値についてmembarバッファ1
44から「0」を受け取った場合は、インタロック・マ
ップ値はトランザクション順序づけテーブル146から
受け取った値に設定される。
【0049】図4を参照すると、各保留トランザクショ
ンのトランザクション・スコアボード・レコード142
は、トランザクションの実行が順次順序づけ要件のため
にブロックされるかどうかを示す「ブロック・フラグ」
160を含む。具体的には、トランザクション・スコア
ボード140のすべてのレコード142について対応す
るトランザクション・ブロック決定論理回路162があ
る。(A)まだ完了していないトランザクションについ
て保留トランザクションのインタロック・マップが順次
順序づけ要件を示すか、または(B)保留トランザクシ
ョンから4トランザクション以上前(すなわちインタロ
ック・マップ項目のあるトランザクションを超えるトラ
ンザクション数以上前)の保留トランザクションがある
場合、ブロック・フラグは「1」に設定されて、保留ト
ランザクションがブロックされることを示す。トランザ
クションの完了によって他の保留トランザクションをブ
ロック解除することができるため、メモリ・トランザク
ションが完了するたびにブロック・フラグ160は自動
的に再計算される。
【0050】図5を参照すると、トランザクション・デ
ィスパッチ論理回路148は各個別のメモリ資源または
メモリ・トランザクション経路ごとにトランザクション
選択論理回路170を備える。トランザクション選択論
理回路170の機能は、対応するメモリ資源にとって適
切な最も古い保留トランザクションを選択することであ
る。したがって、2つの別々のメモリ資源があり、その
うちの1つはロード・トランザクション用であり、1つ
はストア・トランザクションおよびアトミック・トラン
ザクション用である場合、ストア経路のトランザクショ
ン選択論理回路170は、最も古い保留ストア・トラン
ザクションまたはアトミック・トランザクションを選択
し、保留ロード・トランザクションは選択しないことに
なる。
【0051】トランザクション・ブロック決定論理回路
162とトランザクション選択論理回路170が組み合
わさって、1組のトランザクション・アクティブ化規則
を実施する。トランザクション・アクティブ化規則は、
どの保留トランザクションがブロックされるか、したが
ってまだアクティブ化するのに適格でないか、どの保留
トランザクションがブロック解除するか、したがってア
クティブ化するのに適格であるか、どのブロック解除保
留トランザクションをアクティブ化するかを示す。アク
ティブ・トランザクション(アクティブ化トランザクシ
ョン)とは、実行中のプロセスである。
【0052】図6を参照する。図には、データ・プロセ
ッサが相互接続機構にエクスポートしたメモリ・トラン
ザクション要求を扱うのに使われる相互接続およびメモ
リ・コントローラ114内の状態機械の動作を示すフロ
ーチャートが図示されている。フローチャートの各ステ
ップは、状態機械の連続的な状態を表す。ステップ18
0で、トランザクション・スコアボード内のすべての項
目が1位置ずつシフトダウンされる。したがって、位置
0の項目は位置1にシフトされ、以下同様にシフトされ
る。あるいは、トランザクション・スコアボードを循環
バッファとして使用する場合は、最上位位置を指すポイ
ンタが更新される。トランザクション・スコアボードの
動作を説明するために、ステップ180でトランザクシ
ョン・レコードをシフトするものとする。次に(ステッ
プ182)、図3に示す論理回路を使用して、受け取っ
たトランザクションのインタロック・マップを生成し、
受け取ったトランザクションのトランザクション・スコ
アボード・レコードに格納する。このレコードはここで
はトランザクション・スコアボードの0番目の項目であ
るものとする。次に、図4に示す回路を使用して、受け
取ったトランザクションのブロック・フラグを計算し、
受け取ったトランザクションのトランザクション・スコ
アボード・レコードに格納する(ステップ184)。こ
のブロック・フラグは、受け取ったトランザクションの
実行が順次順序づけ要件によってブロックされるかどう
かを示す。受け取ったトランザクションに適用可能な順
次順序づけ要件に基づいて、または順次順序付け要件が
ないことに基づいて、そのトランザクションをトランザ
クション・バッファのうちの適切なバッファに格納し、
格納したトランザクションを指すポインタを対応するト
ランザクション・スコアボード・レコードに格納する
(ステップ186)。最後に、使用可能なメモリ資源に
ついてトランザクション選択値を計算し(ステップ18
8)、受け取ったトランザクションをただちに処理する
ことができるかどうかを調べる。
【0053】保留トランザクションがない場合、到着ト
ランザクションがただちにアクティブにされる。このよ
うな、高速経路トランザクション処理のための最適化に
よって、トランザクションのスコアボード値とmemb
ar値の生成と記憶が行われている間に、同時にメモリ
・トランザクションを開始することができるようにな
る。
【0054】図7を参照すると、実行するトランザクシ
ョンを選択するために使用する相互接続およびメモリ・
コントローラ114内の状態機械の動作を示すフローチ
ャートが図示されている。この状態機械の動作は、相互
接続機構内のメモリ資源のいずれかがメモリ・トランザ
クションを完了させるたびに開始される。完了したトラ
ンザクションはトランザクション・スコアボードと該当
する保留トランザクション・バッファから削除される
(ステップ190)。次に、完了したトランザクション
が最も古い保留トランザクションではなかった場合、そ
の完了したトランザクション以外のすべてのトランザク
ションがトランザクション・スコアボード内で1位置シ
フトアップされる(ステップ192)。さらに、完了し
たトランザクションを参照していたインタロック・マッ
プを持つすべてのトランザクションのインタロック・マ
ップが、完了したトランザクションとのインタロックが
すべてなくなるようにそれらのインタロック・マップの
内容をシフトさせることによって更新される。さらに、
それに応じてmembarバッファ144の内容が更新
される(ステップ194)。次に、図4に示す回路を使
用してすべての保留トランザクションのブロック・フラ
グが再計算され、対応するトランザクション・スコアボ
ード・レコードに格納される(ステップ196)。最後
に使用可能なメモリ資源のトランザクション選択値が計
算され(ステップ198)、使用可能なメモリ資源によ
って保留トランザクションのいずれかを扱うことができ
ないかどうかを調べ、扱うことができる場合には選択し
たトランザクションの実行を開始する(ステップ20
0)。
【0055】トランザクション・スコアボード140と
membarバッファ144をより効率的な集積構造で
実装することによって他の最適化も行うことができる。
【0056】その他の考慮すべき点 相互接続アーキテクチャに応じて、ロード・ミス、スト
ア・ミス、および上記で定義したその他のメモリ・トラ
ンザクションによるキャッシュ・ミス動作を以下の相互
接続トランザクションのカテゴリにマップすることがで
きる。 ・ 読取り共有トランザクションがキャッシュのロード
・ミスによって起こることがある。 ・ 読取り所有トランザクションがキャッシュのストア
・ミスによって起こることがある。また、キャッシュで
行われるアトミック操作が読取り所有相互接続トランザ
クションにマップされることがある。 ・ メモリ・モデルのためにストア操作にマップされる
フラッシュ操作により、書込み無効化トランザクション
が生成されることがある。 割込みトランザクションはそれ自体の専用相互接続トラ
ンザクションにマップすることができるが、メモリ・モ
デルのためにストア操作にマップされる。
【0057】データ・プロセッサがメモリ・モデルをT
SOに設定した状態で連続RDS(プロセッサのキャッ
シュにおけるロード・ミス時の読取り共有)トランザク
ションを行う場合、2つのトランザクションをプログラ
ム順序で行わなければならず、システムにおけるグロー
バル事象順序づけで互いにバイパスすることはできな
い。しかし、データ・プロセッサがメモリ・モデルをR
MOに設定して連続RDSトランザクションを発行した
場合は、2つのトランザクションをプログラム順序とは
異なる順序で行うことができる。
【0058】メモリ・モデル情報を相互接続機構にエク
スポートすることによって、相互接続機構はトランザク
ションのグローバル事象順序をプログラム順序とは異な
る順序にすることができる。
【0059】前述の機構以外に、(上記でmembar
命令と呼んでいる)バリヤ命令を強制する他の機構は、
相互接続機構に、該当する保留トランザクションの実行
が完了するまでmembar命令のデータ・プロセッサ
受信に対する肯定応答を遅延させることである。バリヤ
命令を強制する他の機構は、データ・プロセッサが後続
の命令のために相互接続機構にエクスポートしたメモリ
・モデル情報を修正して、バリヤ命令の前のトランザク
ションに関して順次順序づけを必要とするようにするこ
とである。バリヤ命令を強制する他の機構は、相互接続
機構に対する発行済みトランザクションが完了するま
で、バリヤ命令によってブロックされる他のトランザク
ションのエクスポートをプロセッサにブロックさせるこ
とである。
【0060】本発明の相互接続メモリ・トランザクショ
ン管理方法はプリフェッチ・トランザクションもサポー
トする。プリフェッチ・トランザクションは、キャッシ
ュ・ミスによる遅延が生じないように必要よりも早期に
命令またはデータをデータ・プロセッサのキャッシュに
入れるのに一般的に使用される。プリフェッチは主とし
てキャッシュを「ウォーミング・アップ」するためのも
のであるため、メモリ・モデルは一般にはプリフェッチ
・トランザクションには適用されない。プリフェッチ・
トランザクションの効果は、ソフトウェアの正常な実行
には影響を与えない。したがって、プリフェッチ・トラ
ンザクションの順序外れ実行を可能にするために、デー
タ・プロセッサは相互接続機構に対してすべてのプリフ
ェッチ・トランザクションについてRMOのメモリ・モ
デルを示すことができる。
【0061】同様に、メモリ・モデル値RMOを使用し
てライトバック・トランザクションを相互接続機構にエ
クスポートすることができる。順序づけ変更による整合
性に関する問題を実施する適切な他の論理回路があれ
ば、ライトバック・トランザクションを、犠牲を引き起
こす関連するロード(すなわち読取り)トランザクショ
ンおよび前のすべてのトランザクションに関して並列ま
たは順序変更して実行することができる。
【0062】メモリ・モデルの作用範囲内にない他のタ
イプのトランザクションは割込みトランザクションであ
り、相互接続機構によって適切に順序変更することがで
きるように、その前にmembar memsync命
令またはその他の同等のバリヤ命令を使用してメモリ・
モデル値RMOと共に相互接続機構にエクスポートする
ことができる。
【0063】本発明について2、3の特定の実施形態を
参照しながら説明したが、この説明は本発明を例示する
ものであって、本発明を限定するものと解釈すべきでは
ない。当業者なら特許請求の範囲によって規定されてい
る本発明の精神および範囲から逸脱することなく様々な
修正を考えつくことができるであろう。
【0064】PSOメモリ・モデルをサポートしないデ
ータ・プロセッサでは、相互接続機構にエクスポートさ
れるメモリ・モデル情報はSSO、TSO、およびRM
Oメモリ・モデルのうちの1つを示すことになる。SS
OおよびRMOメモリ・モデルのみをサポートするデー
タ・プロセッサでは、各メモリ・トランザクション要求
と共に相互接続機構にエクスポートするメモリ・モデル
情報は1ビットだけでよい。
【図面の簡単な説明】
【図1】 本発明の実施形態を組み込むコンピュータ・
システムを示すブロック図である。
【図2】 本発明の一実施形態によるメモリ・コントロ
ーラを示すブロック図である。
【図3】 本発明の一実施形態で使用するトランザクシ
ョン・スコアボードとメモリ・コントローラ論理回路の
一部を示すブロック図である。
【図4】 本発明の一実施形態で使用するトランザクシ
ョン・スコアボードとメモリ・コントローラ論理回路の
他の一部を示すブロック図である。
【図5】 本発明の一実施形態で使用するトランザクシ
ョン・スコアボードとトランザクション・ディスパッチ
論理回路の一部を示すブロック図である。
【図6】 本発明の一実施形態におけるデータ・プロセ
ッサからのメモリ・トランザクション要求の受信に応答
したメモリ・コントローラの動作を示すフローチャート
である。
【図7】本発明の一実施形態におけるメモリ・トランザ
クションの完了に応答したメモリ・コントローラの動作
を示すフローチャートである。
【符号の説明】
104 プロセッサ 106 相互接続ネットワーク 108 一次メモリ 110 二次メモリ 111 入出力資源 112 ネットワーク・インタフェース 113 遠隔場所メモリ 114 相互接続およびメモリ・コントローラ 120 キャッシュ・メモリ 130 メモリ・コントローラ論理回路 132 バッファ 140 トランザクション・スコアボード 146 トランザクション順序づけテーブル 148 トランザクション・ディスパッチ論理回路 150 インタロック・マップ 152 membarオーバライド論理回路 162 ブロック決定論理回路 170 トランザクション選択論理回路
【手続補正書】
【提出日】平成9年10月29日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図1】
【図2】
【図3】
【図4】
【図6】
【図5】
【図7】
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A.

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 メモリ・トランザクションを管理する方
    法であって、 データ・プロセッサの外部の装置において、事前定義さ
    れた複数のメモリ・トランザクション順序づけモデルか
    ら選択されたメモリ・トランザクション順序づけモデル
    が各メモリ・トランザクション要求に関連づけられてい
    るメモリ・トランザクション要求をデータ・プロセッサ
    から受け取るステップと、 保留メモリ・トランザクション・データが保留メモリ・
    トランザクションのうちのいずれを保留メモリ・トラン
    ザクションのうちの他のトランザクションの前に実行す
    ることができるかを示すメモリ・トランザクション順序
    データを含んでおり、要求されたメモリ・トランザクシ
    ョンはまだ完了しいないときに、前記保留メモリ・トラ
    ンザクションの表現を含む前記保留メモリ・トランザク
    ション・データを格納するステップと、 前記保留メモリ・トランザクションのサブセットが前記
    データ・プロセッサからそれらが受け取られた順序とは
    異なる順序で実行され、前記保留メモリ・トランザクシ
    ョンを前記メモリ・トランザクション順序データと整合
    する順序で実行するステップとを含む方法。
  2. 【請求項2】 前記格納ステップが、最も最近に受け取
    ったメモリ・トランザクション要求に関連づけられたメ
    モリ・トランザクション順序づけモデルと少なくとも1
    つの他の保留メモリ・トランザクションに関連づけられ
    たメモリ・トランザクション順序づけモデルとに基づい
    て、最も最近に受け取ったメモリ・トランザクション要
    求に関連づけられたメモリ・トランザクションを前記少
    なくとも1つの他の保留メモリ・トランザクションの前
    に実行することができるかどうかを判断し、前記順序づ
    け判断の表現を前記メモリ・トランザクション順序づけ
    データに格納するステップを含むことを特徴とする請求
    項1に記載の方法。
  3. 【請求項3】 第1および第2のメモリ・トランザクシ
    ョンのそれぞれに関連づけられたメモリ・トランザクシ
    ョン・タイプとメモリ・トランザクション順序づけモデ
    ルとに基づいて前記第1のメモリ・トランザクションと
    第2のメモリ・トランザクションの事前定義された組合
    せについて事前計算されたメモリ・トランザクション順
    序づけ判断をテーブルに格納するステップを含み、 前記格納ステップにおける前記順序づけ判断が、少なく
    とも部分的には、前記最も最近に受け取ったメモリ・ト
    ランザクションと前記その他の保留メモリ・トランザク
    ションに関連づけられたメモリ・トランザクション・タ
    イプとメモリ・トランザクション順序づけモデルとに対
    応する事前計算されたメモリ・トランザクション順序づ
    け判断を前記テーブルから読み取ることによって生成さ
    れることを特徴とする請求項2に記載の方法。
  4. 【請求項4】 第1および第2のメモリ・トランザクシ
    ョンのそれぞれに関連づけられたメモリ・トランザクシ
    ョン・タイプとメモリ・トランザクション順序づけモデ
    ルとに基づいて前記第1のメモリ・トランザクションと
    第2のメモリ・トランザクションの可能なすべての組合
    せについて事前計算されたメモリ・トランザクション順
    序づけ判断をテーブルに格納するステップを含み、 前記格納ステップにおける前記順序づけ判断が、少なく
    とも部分的には、前記最も最近に受け取ったメモリ・ト
    ランザクションと前記その他の保留メモリ・トランザク
    ションに関連づけられたメモリ・トランザクション・タ
    イプとメモリ・トランザクション順序づけモデルとに対
    応する事前計算されたメモリ・トランザクション順序づ
    け判断を前記テーブルから読み取ることによって生成さ
    れることを特徴とする請求項2に記載の方法。
  5. 【請求項5】 前記格納ステップが、 最も最近に受け
    取ったメモリ・トランザクション要求に関連づけられた
    メモリ・トランザクション順序づけモデルと複数の他の
    保留メモリ・トランザクションのそれぞれに関連づけら
    れたメモリ・トランザクション順序づけモデルとに基づ
    いて、最も最近に受け取ったメモリ・トランザクション
    要求に関連づけられたメモリ・トランザクションを前記
    他の保留メモリ・トランザクションのそれぞれの前に実
    行することができるかどうかを判断し、前記順序づけ判
    断の表現を前記メモリ・トランザクション順序づけデー
    タに格納するステップを含むことを特徴とする請求項1
    に記載の方法。
  6. 【請求項6】 前記事前定義された複数のメモリ・トラ
    ンザクション順序づけモデルが、本質的にSSO(強い
    順次順序)とTSO(トータル・ストア順序)とPSO
    (部分ストア順序)とRMO(緩いメモリ順次)とから
    成る1組から選択された1組のメモリ・トランザクショ
    ン順序づけモデルを含むことを特徴とする請求項1に記
    載の方法。
  7. 【請求項7】 前記メモリ・トランザクション要求のサ
    ブセットが、SSOメモリ・トランザクション順序モデ
    ルが関連づけられた割込みトランザクション要求を含
    み、前記サブセット内の前記割込みトランザクション要
    求の前にmembarトランザクションが先行しないこ
    とを特徴とする請求項1に記載の方法。
  8. 【請求項8】 データ・プロセッサによって要求された
    メモリ・トランザクションを管理するメモリ・コントロ
    ーラであって、 各メモリ・トランザクション要求に事前定義された複数
    のメモリ・トランザクション順序づけモデルから選択さ
    れたメモリ・トランザクション順序づけモデルが関連づ
    けられているメモリ・トランザクション要求をデータ・
    プロセッサから受け取るポートと、 前記ポートに結合され、まだ完了していない要求された
    メモリ・トランザクションを含む保留メモリ・トランザ
    クションの表現を含む保留メモリ・トランザクション・
    データを格納する保留メモリ・トランザクション記憶装
    置であって、前記保留メモリ・トランザクション記憶装
    置に記憶される前記保留メモリ・トランザクション・デ
    ータは、保留メモリ・トランザクションのうちのいずれ
    を保留メモリ・トランザクションのうちの他のトランザ
    クションより前に実行することができるかを示すメモリ
    ・トランザクション順序データを含む、保留メモリ・ト
    ランザクション記憶装置と、 前記保留メモリ・トランザクション記憶装置に結合さ
    れ、前記保留メモリ・トランザクションのサブセットが
    前記データ・プロセッサから受け取った順序とは異なる
    順序で実行され、実行の順序が前記メモリ・トランザク
    ション順序データと整合するように前記保留メモリ・ト
    ランザクションの実行の前記順序を制御するトランザク
    ション・ディスパッチ論理回路とを備えるメモリ・コン
    トローラ。
  9. 【請求項9】 最も最近に受け取ったメモリ・トランザ
    クション要求に関連づけられたメモリ・トランザクショ
    ン順序づけモデルと少なくとも1つの他の保留メモリ・
    トランザクションに関連づけられたメモリ・トランザク
    ション順序づけモデルとに基づいて、最も最近に受け取
    ったメモリ・トランザクション要求に関連づけられたメ
    モリ・トランザクションを前記少なくとも1つの他の保
    留メモリ・トランザクションの前に実行することができ
    るかどうかを判断し、前記順序づけ判断の表現を前記メ
    モリ・トランザクション順序づけデータとして前記保留
    メモリ・トランザクション記憶装置に格納するインタロ
    ック判断論理回路を備える請求項8に記載のメモリ・コ
    ントローラ。
  10. 【請求項10】 前記インタロック判断論理回路が、第
    1および第2のメモリ・トランザクションのそれぞれに
    関連づけられたメモリ・トランザクション・タイプとメ
    モリ・トランザクション順序づけモデルとに基づく前記
    第1のメモリ・トランザクションと前記第2のメモリ・
    トランザクションの事前定義された組合せについて事前
    計算されたメモリ・トランザクション順序づけ判断の記
    憶テーブルに結合され、 前記インタロック判断論理回路が、前記最も最近に受け
    取ったメモリ・トランザクションと前記他の保留メモリ
    ・トランザクションとのそれぞれのメモリ・トランザク
    ションに関連づけられたメモリ・トランザクション・タ
    イプとメモリ・トランザクション順序づけモデルとに対
    応する事前計算されたメモリ・トランザクション順序づ
    け判断を前記テーブルから読み取る論理回路を含むこと
    を特徴とする請求項9に記載のメモリ・コントローラ。
  11. 【請求項11】 前記インタロック判断論理回路が、第
    1および第2のメモリ・トランザクションのそれぞれに
    関連づけられたメモリ・トランザクション・タイプとメ
    モリ・トランザクション順序づけモデルに基づく前記第
    1のメモリ・トランザクションと第2のメモリ・トラン
    ザクションの可能なすべての組合せについて事前計算さ
    れたメモリ・トランザクション順序づけ判断の記憶テー
    ブルに結合され、 前記インタロック判断論理回路が、前記最も最近に受け
    取ったメモリ・トランザクションと前記他の保留メモリ
    ・トランザクションとのそれぞれのメモリ・トランザク
    ションに関連づけられたメモリ・トランザクション・タ
    イプとメモリ・トランザクション順序づけモデルとに対
    応する事前計算されたメモリ・トランザクション順序づ
    け判断を前記テーブルから読み取る論理回路を含むこと
    を特徴とする請求項9に記載のメモリ・コントローラ。
  12. 【請求項12】 前記インタロック判断論理回路が、最
    も最近に受け取ったメモリ・トランザクション要求に関
    連づけられたメモリ・トランザクション順序づけモデル
    と複数のその他の保留メモリ・トランザクションのそれ
    ぞれに関連づけられたメモリ・トランザクション順序づ
    けモデルとに基づいて、最も最近に受け取ったメモリ・
    トランザクション要求に関連づけられたメモリ・トラン
    ザクションを前記その他の保留メモリ・トランザクショ
    ンのそれぞれの前に実行することができるかどうかを判
    断し、前記順序づけ判断の表現を前記メモリ・トランザ
    クション順序づけデータとして前記保留メモリ・トラン
    ザクション記憶装置に記憶することを特徴とする請求項
    9に記載のメモリ・コントローラ。
  13. 【請求項13】 前記事前定義された複数のメモリ・ト
    ランザクション順序づけモデルが、本質的にSSO(強
    い順次順序)とTSO(トータル・ストア・順序)とP
    SO(部分ストア順序)とRMO(緩いメモリ順序)と
    から成る1組のうちから選択された1組のメモリ・トラ
    ンザクション順序づけモデルを含むことを特徴とする請
    求項8に記載のメモリ・コントローラ。
  14. 【請求項14】 前記メモリ・トランザクション要求の
    サブセットにSSOメモリ・トランザクション順序づけ
    モデルが関連づけられ、前記サブセット内の前記割込み
    トランザクション要求の前にmembarトランザクシ
    ョンが先行しないことを特徴とする請求項8に記載のメ
    モリ・コントローラ。
JP18728497A 1996-07-01 1997-06-30 複数のメモリ・モデルを使用してメモリ・トランザクションの実行を並列化するシステムおよび装置 Expired - Lifetime JP3807460B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/671305 1996-07-01
US08/671,305 US5893165A (en) 1996-07-01 1996-07-01 System and method for parallel execution of memory transactions using multiple memory models, including SSO, TSO, PSO and RMO

Publications (2)

Publication Number Publication Date
JPH113268A true JPH113268A (ja) 1999-01-06
JP3807460B2 JP3807460B2 (ja) 2006-08-09

Family

ID=24693953

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18728497A Expired - Lifetime JP3807460B2 (ja) 1996-07-01 1997-06-30 複数のメモリ・モデルを使用してメモリ・トランザクションの実行を並列化するシステムおよび装置

Country Status (4)

Country Link
US (1) US5893165A (ja)
EP (1) EP0817091B1 (ja)
JP (1) JP3807460B2 (ja)
DE (1) DE69715328T2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007509439A (ja) * 2003-10-22 2007-04-12 インテル コーポレイション 相互接続ネットワークでの効率的な順序保存用の方法及び装置
JP2007102447A (ja) * 2005-10-04 2007-04-19 Fujitsu Ltd 演算処理装置
JP2008535068A (ja) * 2005-03-23 2008-08-28 クゥアルコム・インコーポレイテッド 弱く順序付けられた処理システムにおける強く順序付けられた要求の強制
JP2010501962A (ja) * 2006-08-31 2010-01-21 クゥアルコム・インコーポレイテッド バリア操作の条件付き伝搬のための方法および装置
JPWO2008155827A1 (ja) * 2007-06-20 2010-08-26 富士通株式会社 キャッシュ制御装置及び制御方法
US8244985B2 (en) 2004-03-30 2012-08-14 Intel Corporation Store performance in strongly ordered microprocessor architecture
JP2013507709A (ja) * 2009-10-13 2013-03-04 エイアールエム リミテッド インターコネクト内のバリアトランザクション
JP2013242876A (ja) * 2007-06-01 2013-12-05 Qualcomm Inc デバイスへ向けられたメモリ・バリア

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5893165A (en) * 1996-07-01 1999-04-06 Sun Microsystems, Inc. System and method for parallel execution of memory transactions using multiple memory models, including SSO, TSO, PSO and RMO
DE19712799A1 (de) * 1997-03-26 1998-10-01 Siemens Nixdorf Inf Syst Abhängigkeitssteuerung für überlappende Speicherzugriffe
US6260131B1 (en) * 1997-11-18 2001-07-10 Intrinsity, Inc. Method and apparatus for TLB memory ordering
US6370632B1 (en) * 1997-11-18 2002-04-09 Intrinsity, Inc. Method and apparatus that enforces a regional memory model in hierarchical memory systems
JP2000020618A (ja) * 1998-06-30 2000-01-21 Iq Financial Systems Japan Kk 統合金融リスク管理装置および金融取引モデル化装置
US20140325175A1 (en) * 2013-04-29 2014-10-30 Pact Xpp Technologies Ag Pipeline configuration protocol and configuration unit communication
AU5805300A (en) 1999-06-10 2001-01-02 Pact Informationstechnologie Gmbh Sequence partitioning in cell structures
US6557048B1 (en) * 1999-11-01 2003-04-29 Advanced Micro Devices, Inc. Computer system implementing a system and method for ordering input/output (IO) memory operations within a coherent portion thereof
KR100390853B1 (ko) * 2000-06-07 2003-07-10 차상균 주 메모리 트랜잭션 처리 시스템에서 병렬적 회복 연산을 위한 디퍼런셜 로깅 방법 및 장치
US6546453B1 (en) * 2000-08-31 2003-04-08 Compaq Information Technologies Group, L.P. Proprammable DRAM address mapping mechanism
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US6721813B2 (en) * 2001-01-30 2004-04-13 Advanced Micro Devices, Inc. Computer system implementing a system and method for tracking the progress of posted write transactions
US9552047B2 (en) 2001-03-05 2017-01-24 Pact Xpp Technologies Ag Multiprocessor having runtime adjustable clock and clock dependent power supply
US9436631B2 (en) 2001-03-05 2016-09-06 Pact Xpp Technologies Ag Chip including memory element storing higher level memory data on a page by page basis
US9411532B2 (en) 2001-09-07 2016-08-09 Pact Xpp Technologies Ag Methods and systems for transferring data between a processing device and external devices
US9250908B2 (en) 2001-03-05 2016-02-02 Pact Xpp Technologies Ag Multi-processor bus and cache interconnection system
US10031733B2 (en) 2001-06-20 2018-07-24 Scientia Sol Mentis Ag Method for processing data
US9170812B2 (en) 2002-03-21 2015-10-27 Pact Xpp Technologies Ag Data processing system having integrated pipelined array data processor
AU2003289844A1 (en) 2002-09-06 2004-05-13 Pact Xpp Technologies Ag Reconfigurable sequencer structure
US7103597B2 (en) * 2002-10-03 2006-09-05 Mcgoveran David O Adaptive transaction manager for complex transactions and business process
US7200689B2 (en) * 2003-07-31 2007-04-03 International Business Machines Corporation Cacheable DMA
US7281240B1 (en) * 2003-11-14 2007-10-09 Sun Microsystems, Inc. Mechanism for lossless, lock-free buffer switching in an arbitrary-context tracing framework
US7657667B2 (en) * 2004-03-25 2010-02-02 International Business Machines Corporation Method to provide cache management commands for a DMA controller
US8219379B2 (en) * 2004-11-29 2012-07-10 Arm Limited System, method and computer program product for testing software
US7917676B2 (en) * 2006-03-10 2011-03-29 Qualcomm, Incorporated Efficient execution of memory barrier bus commands with order constrained memory accesses
US7409516B2 (en) * 2006-03-30 2008-08-05 Intel Corporation Pending request scoreboard for out-of-order memory scheduler
US8612950B2 (en) * 2008-06-19 2013-12-17 Intel Corporation Dynamic optimization for removal of strong atomicity barriers
US8392891B2 (en) * 2008-06-26 2013-03-05 Microsoft Corporation Technique for finding relaxed memory model vulnerabilities
US8832403B2 (en) * 2009-11-13 2014-09-09 International Business Machines Corporation Generation-based memory synchronization in a multiprocessor system with weakly consistent memory accesses
JP2013061795A (ja) * 2011-09-13 2013-04-04 Toshiba Corp 記憶装置、コントローラ、およびリードコマンド実行方法
US10140149B1 (en) * 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4126893A (en) * 1977-02-17 1978-11-21 Xerox Corporation Interrupt request controller for data processing system
US4228503A (en) * 1978-10-02 1980-10-14 Sperry Corporation Multiplexed directory for dedicated cache memory system
JPH065524B2 (ja) * 1987-11-18 1994-01-19 インターナショナル・ビジネス・マシーンズ・コーポレーション 記憶装置管理方法
JP3255908B2 (ja) * 1988-06-30 2002-02-12 エルジー・セミコン・カンパニー・リミテッド メモリー制御ユニット
EP0380842A3 (en) * 1989-02-03 1991-06-12 Digital Equipment Corporation Method and apparatus for interfacing a system control unit for a multiprocessor system with the central processing units
US5036459A (en) * 1989-03-09 1991-07-30 U.S. Philips Corporation Multi-processor computer system with distributed memory and an interprocessor communication mechanism, and method for operating such mechanism
DE69127936T2 (de) * 1990-06-29 1998-05-07 Digital Equipment Corp Busprotokoll für Prozessor mit write-back cache
JPH04318654A (ja) * 1991-02-13 1992-11-10 Hewlett Packard Co <Hp> マイクロプロセッサへの割り込みのリダイレクションシステム
JP2703417B2 (ja) * 1991-04-05 1998-01-26 富士通株式会社 受信バッファ
AU2270892A (en) * 1991-06-26 1993-01-25 Ast Research, Inc. Automatic distribution of interrupts controller for a multiple processor computer system
DE69230428T2 (de) * 1991-09-27 2000-08-03 Sun Microsystems, Inc. Verklemmungserkennung und Maskierung enthaltende Busarbitrierungsarchitektur
US5319753A (en) * 1992-09-29 1994-06-07 Zilog, Inc. Queued interrupt mechanism with supplementary command/status/message information
US5434993A (en) * 1992-11-09 1995-07-18 Sun Microsystems, Inc. Methods and apparatus for creating a pending write-back controller for a cache controller on a packet switched memory bus employing dual directories
JPH07105031A (ja) * 1993-09-20 1995-04-21 Internatl Business Mach Corp <Ibm> 多重プロセッサ・コンピュータ・システム内で割込み情報を伝えるための方法および装置
US5655100A (en) * 1995-03-31 1997-08-05 Sun Microsystems, Inc. Transaction activation processor for controlling memory transaction execution in a packet switched cache coherent multiprocessor system
US5893165A (en) * 1996-07-01 1999-04-06 Sun Microsystems, Inc. System and method for parallel execution of memory transactions using multiple memory models, including SSO, TSO, PSO and RMO

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007509439A (ja) * 2003-10-22 2007-04-12 インテル コーポレイション 相互接続ネットワークでの効率的な順序保存用の方法及び装置
US8244985B2 (en) 2004-03-30 2012-08-14 Intel Corporation Store performance in strongly ordered microprocessor architecture
JP4824748B2 (ja) * 2005-03-23 2011-11-30 クゥアルコム・インコーポレイテッド 弱く順序付けられた処理システムにおける強く順序付けられた要求の強制
JP2008535068A (ja) * 2005-03-23 2008-08-28 クゥアルコム・インコーポレイテッド 弱く順序付けられた処理システムにおける強く順序付けられた要求の強制
US9026744B2 (en) 2005-03-23 2015-05-05 Qualcomm Incorporated Enforcing strongly-ordered requests in a weakly-ordered processing
JP2007102447A (ja) * 2005-10-04 2007-04-19 Fujitsu Ltd 演算処理装置
JP2010501962A (ja) * 2006-08-31 2010-01-21 クゥアルコム・インコーポレイテッド バリア操作の条件付き伝搬のための方法および装置
JP2013242876A (ja) * 2007-06-01 2013-12-05 Qualcomm Inc デバイスへ向けられたメモリ・バリア
KR101086791B1 (ko) 2007-06-20 2011-11-25 후지쯔 가부시끼가이샤 캐시 제어 장치 및 제어 방법
US8261021B2 (en) 2007-06-20 2012-09-04 Fujitsu Limited Cache control device and control method
JPWO2008155827A1 (ja) * 2007-06-20 2010-08-26 富士通株式会社 キャッシュ制御装置及び制御方法
JP2013507709A (ja) * 2009-10-13 2013-03-04 エイアールエム リミテッド インターコネクト内のバリアトランザクション
JP2015167036A (ja) * 2009-10-13 2015-09-24 アーム・リミテッド 分散システム内の種々のコンポーネントの活動を同期させること

Also Published As

Publication number Publication date
EP0817091B1 (en) 2002-09-11
JP3807460B2 (ja) 2006-08-09
US5893165A (en) 1999-04-06
EP0817091A2 (en) 1998-01-07
DE69715328T2 (de) 2003-04-17
DE69715328D1 (de) 2002-10-17
EP0817091A3 (en) 1998-09-09

Similar Documents

Publication Publication Date Title
JP3807460B2 (ja) 複数のメモリ・モデルを使用してメモリ・トランザクションの実行を並列化するシステムおよび装置
EP1008053B1 (en) Controlling memory access ordering in a multi-processing system
US6895482B1 (en) Reordering and flushing commands in a computer memory subsystem
US8984261B2 (en) Store data forwarding with no memory model restrictions
US6487640B1 (en) Memory access request reordering to reduce memory access latency
US7707393B2 (en) Microprocessor with high speed memory integrated in load/store unit to efficiently perform scatter and gather operations
EP1278125A2 (en) Indexing and multiplexing of interleaved cache memory arrays
JP3739491B2 (ja) プリフェッチ命令を用いるハーバードアーキテクチャキャッシュメモリの調和したソフトウェア制御
US6643755B2 (en) Cyclically sequential memory prefetch
JP3204323B2 (ja) キャッシュメモリ内蔵マイクロプロセッサ
US6557078B1 (en) Cache chain structure to implement high bandwidth low latency cache memory subsystem
US6094711A (en) Apparatus and method for reducing data bus pin count of an interface while substantially maintaining performance
US5924120A (en) Method and apparatus for maximizing utilization of an internal processor bus in the context of external transactions running at speeds fractionally greater than internal transaction times
US7290119B2 (en) Memory accelerator with two instruction set fetch path to prefetch second set while executing first set of number of instructions in access delay to instruction cycle ratio
WO2021091649A1 (en) Super-thread processor
US6507892B1 (en) L1 cache memory
US20030105929A1 (en) Cache status data structure
US20030196072A1 (en) Digital signal processor architecture for high computation speed
JP3732234B2 (ja) スーパースカラマイクロプロセッサのための非ブロッキングロードを実現するロード/ストアユニットおよびロード/ストアバッファから非ブロッキング的にロードを選択する方法
US7028142B2 (en) System and method for reducing access latency to shared program memory
US8214597B2 (en) Cache tentative read buffer
JPH0756808A (ja) データキャッシュバッファ及び記憶方法
JP4680340B2 (ja) プロセッサ
US20220229662A1 (en) Super-thread processor
Tate Developing the Hatfield Superscalar architecture cache simulator

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040402

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060328

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060411

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060509

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100526

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110526

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110526

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120526

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130526

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130526

Year of fee payment: 7

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

EXPY Cancellation because of completion of term