JPH05508497A - 非順次源アクセスのための方法およびその装置 - Google Patents

非順次源アクセスのための方法およびその装置

Info

Publication number
JPH05508497A
JPH05508497A JP3514424A JP51442491A JPH05508497A JP H05508497 A JPH05508497 A JP H05508497A JP 3514424 A JP3514424 A JP 3514424A JP 51442491 A JP51442491 A JP 51442491A JP H05508497 A JPH05508497 A JP H05508497A
Authority
JP
Japan
Prior art keywords
resource
request
tag
requests
shared
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP3514424A
Other languages
English (en)
Inventor
ウイルソン,ジミー アール.
ビアード,ダグラス アール.
チェン,スティーブ エス.
エッカート,ロジャー イー.
ヘッセル,リチャード イー.
フェルプス,アンドルー イー.
シルベイ,アレクサンダー エイ.
バンダウォーン,ブライアン ディー.
Original Assignee
クレイ、リサーチ、インコーポレーテッド
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 クレイ、リサーチ、インコーポレーテッド filed Critical クレイ、リサーチ、インコーポレーテッド
Publication of JPH05508497A publication Critical patent/JPH05508497A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17375One dimensional, e.g. linear array, ring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8076Details on data register access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8092Array of vector units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30094Condition code generation, e.g. Carry, Zero flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30141Implementation provisions of register files, e.g. ports
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 非順次資源アクセスのための方法およびその装置技 術 分 野 本発明は、コンピュータおよび電子論理システムのための記憶システムおよび記 憶管理に関する。さらに詳しく言えば、本発明は、要求が発行された順序に対し て順序通りでなく応答が返され得る、共用資源、特にメインメモリに対して要求 を発行することができる非順次記憶アクセスのための方法およびその装置に関す る。
先 行 技 術 共用ハードウェア資源、特にメインメモリにアクセスするための複数リクエスタ システムにおける従来の方法および装置は、そのシステムによるデータまたは命 令に対する上書きまたは不正確なアクセスを防止するために、その共用資源に対 する要求が相互に時間順序的なまたは整列された関係を維持することを必要とし ている。実際、共用資源に対する乱順アクセスの可能性は、通常、データおよび /または命令への不正確なアクセスとみなされ、従来技術では記憶アクセスハザ ードと呼ばれている。
従来技術において、多重プロセッサシステムにおける共用資源へのアクセスを制 御するために使用される一つの技法は、その共用資源への要求を大域的決定アル ゴリズムによって取り扱う中央制御機構を維持することである。その多重プロセ ッサシステムが物理的に小さいシステムで少数のりクエスタおよび少数の共用資 源しか有していない場合、この方法は有効である。多数のりクエスタおよび多数 の共用資源を備えたもっと大規模な多重プロセッサシステムでは、大域的決定ア ルゴリズムを用いた中央may方式は、扱いにくくなり、その決定時間がその多 重プロセッサの全処理性能に影響を及ぼし始める。
別の従来技術の技法は、以前の決定がクリアされている場合にのみ所定の決定が なされるように、各種決定を時間タグによりインタロックすることである。この 方式に伴う問題は、それらの時間タグを更新するシステム内を信号が伝わるため の過渡時間が妨げとなり、やはり、全システム性能が不利に影響を受けるという ことである。
本質的に、資源ロックアウトおよび共用資源アクセスの問題は、従来技術のスー パコンピュータでは、各資源をその多重プロセッサシステム全体で順次的にスケ ジュールする中央#i1機構を利用することによって管理されている。この方式 は、システム性能を犠牲にして、記憶アクセスハザードの問題を効果的に回避す る。
多重プロセッサシステムでの共用資源にアクセスするための新規な方法およびシ ステムを設計する際に、考慮すべき4つの問題が存在する。第1の問題は、その 共用資源のスルーブツトをいかにして最大にするかである。
第2の問題は、そのプロセッサと共用資源との間のバンド幅をいかにして最大に するかである。第3の問題は、プロセッサと共用資源との間のアクセス時間をい かにして最小にするかである。最後の問題は、資源要求について予測可能な結果 が得られるように、いかにしてアクセスハザードを回避するかである。コンピュ ータ処理システムがこれらの問題の全部に対する最適な解決を得られない場合、 そのシステムの性能は事実上限定される。
例えば、メインメモリに対して3つの要求を行ったプロセッサの問題を考慮する 。各要求は、結果として3つの個別の論理機構によって処理されることになるメ インメモリの異なる区分に向けられるものとする。従来技術では、これらの要求 のそれぞれは連続している必要があり、以降の要求は、先行する要求が完了する まで開始することができない。この3つの要求の例では、順次アクセスのその要 求条件は、事実上、そのメインメモリに関係する論理の273がアイドル状態と なる結果をもたらす。この制限は、バイブライン化動作として行われるように作 業の安定した流れを処理要素および共用資源に付与することによってその処理要 素および共用資源を継続的にビジー状態に保つことをその目的とする、高性能シ ステムにおいて特に大きな打撃となる。
しばしばスーパコンピュータと称される、そうした高性能コンピュータ処理シス テムの処理速度および柔軟性を向上させる努力において、本発明に対し先に提出 された特許出願である、’C1uster Architecture for  a Highly Parallel 5calar/Vector Mul tipr。
cessor System“と題する、PCT出願番号PCT/US9010 7665は、複数のプロセッサおよび外部インタフェースが、メインメモリ、大 域レジスタまたは割り込み機構といった共用資源の共通な集合に対して複数かつ 同時の要求を行うことができる、スーパコンピュータ用アーキテクチャを提供し ている。各資源をその多重プロセッサシステム全体で順次的にスケジュールする ために中央制御機構を利用するこの従来技術の技法は、この形式の高度並列多重 プロセッサ用クラスタアーキテクチャにとっては許容できない。従って、全部の 共用資源にわたる全部のりクエスタに対して等しくかつ民主的なアクセスを保証 し、各共用資源が独立した速度でしかもアクセスハザードを回避するように同時 的にデータを処理できるようにすることによって、多重プロセッサシステムにお ける性能を向上させるために、記憶アクセスのための新規な方法および装置が必 要とされ本発明は、複数リクエスタシステムにおける共用資源への非順次アクセ スのための方法および装置を提供する。
これを実現するために、本発明は、データをその宛先で効果的に再順序づけるた めに各種のタグを使用する。最も単純な形態では、このタグは、方向情報に関す る別のタグを位置づけるためのバッファ内の場所へ、または、そのタグに関係す る応答を発するためのバッファまたはプロセッサ(レジスタ)内の場所へ、スイ ッチング論理を方向づける。例えば、メモリからデータをロードするには、その リクエスタが、要求信号、アドレスおよび要求タグを付与することが必要になる 。要求信号は、そのアドレスおよび要求タグの妥当性を検査する。アドレスは、 その要求されたデータのメモリ内の記憶場所を指定する。要求タグは、データが そのプロセッサへ返された時にそのデータを入れるための場所を指定する。
本発明に従った非順次共用資源アクセス用装置は、同じくその多重プロセッサシ ステムの共用資源にアクセスすることができる複数のプロセッサおよび複数の入 出力インタフェースを有する多重プロセッサシステムにおいて使用される。好適 な実施例における共用資源は、メインメモリ、大域レジスタおよび割り込み機構 を含む。1クラスタの密結合プロセッサ内での非順次アクセスのために、本発明 は、そのプロセッサからの複数の資源要求を生成するための要求生成資源と、そ の要求生成資源に動作可能に接続されており、それらの資源要求が生成された時 間順序で資源要求を受信し、その資源要求を共用資源へ経路指定するためのスイ ッチング手段と、その要求された資源が使用可能になるとその資源要求にサービ スする共用資源手段とを含む。各資源要求は、要求された共用資源のアドレス、 および、その資源要求が返されるべきリクエスタ内の記憶場所を指定する要求タ グを含む。
スイッチング手段に関係するスイッチング論理は、その資源要求に関係づけられ た要求タグを格納するためのタグ待ち行列と、そのタグ待ち行列からの個々の要 求タグを資源応答に関係づけるための論理手段と、その資源応答および個々の要 求タグをプロセッサへ返すための手段とを含む。共用資源に関係するスイッチン グ論理は、共用資源との間で要求を経路指定するためのスイッチング手段と、要 求を正しく経路指定するための制御論理と、複数の決定要求を取り扱うための論 理と、要求されている最終データエンティティを格納または検索するための論理 とを含む。
他の実施例において、本発明はまた、プロセッサの密結合クラスタの外部にある 共用資源に対する非順次アクセスも可能にする。この実施例では、クラスタタグ と称する新しいタグを生成するために要求タグに付加的な経路指定情報を付属さ せるために、遠隔クラスタアダプタが論理手段に備わる。このクラスタタグは、 目標クラスタの遠隔クラスタアダプタに渡され、そこで、その要求から取り外さ れ、タグバッファに格納される。目標クラスタの内部で使用されるために新しい 要求タグが生成される。その応答が目標クラスタの遠隔クラスタアダプタに返さ れると、返された要求タグは、タグバッファ内でそれに関係する対応したクラス タタグを位置づけるために使用される。その応答およびクラスタタグはその後、 要求側クラスタに返される。要求側クラスタの遠隔クラスタアダプタで、そのク ラスタタグは、付加的な戻り経路指定情報および要求タグの各部に分解される。
付加的な戻り経路指定部は、その応答および要求タグ部を要求側スイッチング手 段に返すために使用される。
このシステムの特殊な帰結は、制御が局所的に取り扱われ、共用資源に対するア クセスに関する決定が迅速に、かつ、その資源の十分な利用度を保証するために 必要な時間にのみ行われるということである。極めて高いシステムバンド幅と結 合された可能な最高のシステムスルーブツトを維持することによって、本発明は 、リクエスタが最小限のアクセス時間で処理するデータを安定して供給されるこ とを保証し、それにより、システムバンド幅およびスルーブツトパラメータの所 定の集合について多重プロセッサシステムの全性能を向上させる。
本発明の目的は、要求が発行された時間順序に対してその応答が乱順で返され得 る、共用資源に要求を発行することができる非順次記憶アクセスのための方法お よび装置を供することである。
本発明の第2の目的は、共用資源システムの各構成要素が同時並行的に、かつ、 潜在的に異なる速度で動作できることを保証することによって、インタリーブト 共用資源システムにおける性能を向上させることができる、記憶アクセスのため の方法および装置を供することである。
本発明の第3の目的は、その多重プロセッサシステムが多数のりクエスタおよび 多数の共用資源によって機器構成されている場合に、高バンド幅、高スルーブツ トおよび低待ち時間を付与する、多重プロセッサシステム用記憶アクセスシステ ムのための方法および装置を供することである。
本発明の上述その他の目的は、図面、好適な実施例の詳細な説明および添付され た請求の範囲によって明白となるであろう。
図面の説明 図1a、lb、lcおよび1dは、傘来技術および本発明のバイブライン化要求 /応答記憶アクセス技法の説明図である。
図2は、本発明の好適な実施例の単一の多重プロセッサクラスタのブロック図で ある。
図38および3bは、本発明の好適な実施例の4クラスタ実施例のブロック図で ある。
図4は、好適な実施例のアービトレーションノード手段を示した単一の多重プロ セッサクラスタのブロック図である。
図5aおよび5bは、本発明の好適な実施例における人出力インタフェースの詳 細ブロック図である。
図6aおよび6bは、プロセッサ内の入出力インタフェースに関係するボートの 詳細ブロック図である。
図7a、7b、7c、7dおよび7eは、本発明の各種要求タグの説明図である 。
図8は、外部インタフェースボートのブロック図である。
図9は、要求タグとコマンドブロックワードとの間の対応を示す。
図1Oは、本発明の好適な実施例におけるNRCA手段の詳細ブロック図である 。
図11gおよび11bは、本発明の好適な実施例におけるMRCA手段の詳細ブ ロック図である。
好適な実施例の説明 まず、図1a〜1dによって、従来技術と比較して、本発明のバイブライン化乱 順アクセス機構について説明する。これらの図は、メモリ/共用資源アーキテク チャの各レベルでの要求/応答動作に適用可能である。多重りクエスタシステム において一般にアクセスされる共用資源はメモリであることが理解されるはずな ので、本発明の好適な実施例もメモリへのアクセスに関して説明スることになる が、本発明は、そのアクセスはいずれの形式の共用ハードウェア資源に対して行 われるものと想定している。この意味で、共用ハードウェア資源には、メモリ、 大域レジスタ、割り込み機構の他、ボート、経路、機能単位、レジスタ、待ち行 列、バンクなどを含む。
図18は、作来技術のシステムにおいて、一連の要求および応答の流れがどのよ うに取り扱われるがを示している。乱順アクセスまたはストリーム化の機能がま ったくないので、連続した要求はそれぞれ、その次の要求が開始できるまで、そ の関係する応答が完了するのを待たなければならない。図1bについて言えば、 一部の従来技術のベクトルプロセッサは、各応答が返されるのを待つ必要がなく 、ベクトルレジスタのロードまたは書き込みを行う連続した要求を発する能力を 支援している。図1bに示すそうした限られたバイブライン化技法は、メインメ モリにアクセスするベクトルプロセッサに適用されているが、他のシステム資源 には適用されていない。
対照的に、図1cは、全部の要求およびそれらの関係する応答が時間順序になっ ているが、応答1は要求nが発行される前に返され得る、インタリーブされた系 列の要求および応答を示している。図1dでは、本発明の乱順アクセス機構の全 能力が、要求およびその関係する応答が時間順序に対するいかなる特殊な関係も 伴わずに生起していることによって例示されている。この図に示された記憶アク セスシステムでは、応答2は、応答1より前に返され得る。図1dに図示された バイブライン技法は、従来技術においては適用されていない。
好適な実施例を説明する上で、以下では、多重プロセッサシステムの好適な実施 例の説明から始め、次に、各種リクエスタおよびそれらの関係するボートの説明 に始まって、その多重プロセッサシステムの共用資源へ話を進め、非順次アクセ スのための方法および装置について説明する。
〔多重プロセッサシステム〕
図2によって、本発明とともに用いられる多重プロセッサシステムの好適な実施 例の単一の多重プロセッサクラスタのアーキテクチャについて説明する。高度並 列スカシ/多重プロセッサシステム用ステム用のこの好ましいクラスタアーキテ クチャは、共用資源の大規模な集合12(メインメモリ14、大域レジスタ16 、割り込み機構18など)を共用する複数の高速プロセッサ10を支援すること ができる。プロセッサ10は、ベクトルおよびスカラ両方の並列処理が可能で、 アービトレーションノード手段20を介して共用資源12に接続されている。ま た、アービトレーションノード手段20を介して、複数の外部インタフェースポ ート22および入出力コンセントレータ(IOC)24が接続されており、それ らはさらに様々な外部データ送信装置26と接続されている。これらの外部デー タ送信装置26は、高速チャネル30によって入出力コンセントレータ24に連 結された二次記憶システム(SMS)28を含むことができる。
外部データ送信装置26はまた、1つ以上の標準チャネル34によって入出力コ ンセントレータ24に連結された他の各種周辺装置およびインタフェース32を 含むことができる。これらの周辺装置およびインタフェース32は、ディスク記 憶装置、テープ記憶装置、プリンタ、外部プロセッサおよび通信ネットワークを 含むことができる。プロセッサ10、共用資源12、アービトレーションノード 20および外部インタフェースポート22は、一体として、本発明の好適な実施 例に従った高度並列多重プロセッサシステム用の単一の多重プロセッサクラスタ 40を構成する。
多重プロセッサクラスタ40の好適な実施例は、プロセッサ10、共用資源12 、アービトレーションノード20および外部インタフェースポート22を1つ以 上のクラスタ40に物理的に編成することによって、現在の共用記憶スーパコン ピュータの直接接続インタフェースの問題を克服する。図3aおよび3bに示す 好適な実施例ではJ40a、40b、40cおよび40dの4つのクラスタが存 在する。これらのクラスタ40a、40b。
40cおよび40dのそれぞれは、そのクラスタに関係づけられた自己自身のプ ロセッサ10”+ 10 b。
10cおよび10d、共用資源12a、12b、12cおよび12d1および、 外部インタフェースポート22 a、 22 b、 22 cおよび22dの集 合を物理的に有する。クラスタ40 a、 40 b、 40 cおよび40d は、各アービトレーションノード手段20a、20b。
20cおよび20dの論理部分である遠隔クラスタアダプタ42によって相互接 続されている。クラスタ40a。
40b、40cおよび40dは物理的に分離されているが、これらのクラスタの 論理的編成および遠隔クラスタアダプタ42による物理的相互接続は、クラスタ 40a。
40b、40Cおよび40dの全部にわたる共用資源12g、12b、12cお よび12dの全部に対する所望の対称的アクセスを可能にする。
次に図4によって、単一のクラスタ40のアービトレーションノード手段20の 好適な実施例について説明する。概念的なレベルでは、アービトレーションノー ド手段20は、プロセッサ10および外部インタフェースポート22を、同一の クラスタ40内の共用資源12へ、および、遠隔クラスタアダプタ42を通じて 他のクラスタ40内の共用資源12へ、対称的に相互接続させる、複数のクロス バ−スイッチを含む。通常、フルクロスバ−スイッチは、各リクエスタが各資源 に接続することを可能にするはずである。本発明では、アービトレーションノー ド手段20は、資源より多数のりクエスタが存在する状況において、フルクロス バ−スイッチと同様の結果を得ることを可能にする。好適な実施例では、アービ トレーションノード手段20は、16個のアービトレーションノード44および 遠隔クラスタアダプタ手段42を含む。遠隔クラスタアダプタ手段42は、ノー ド遠隔クラスタアダプタ(N RCA)手段46およびメモリ遠隔クラスタアダ プタ(MRCA)手段48に分割される。
NRCA手段46は、アービトレーションノード44が他の全部の多重プロセッ サクラスタ40の遠隔クラスタアダプタ手段42にアクセスできるようにする。
同様に、MRCA手段48は、他の全部の多重プロセッサクラスタ40の遠隔ク ラスタアダプタ手段42からのそのクラスタ40の共用資源12に対するアクセ スを制御する。
この実施例では、その16個のアービトレーションノード44は、32個のプロ セッサ10および32個の外部インタフェースポート22をメインメモリ14、 大域レジスタ16および割り込み機構18ならびにNRCA手段46と相互接続 させている。各アービトレーションノード44は、8本の双方向並列経路50に よってメインメモリ14と接続されている。単一の並列双方向経路52は、各ア ービトレーションノード44をNRCA手段46に接続させている。好適な実施 例では、各アービトレーションノード44からの同じ経路52も、アービトレー ションノード44を大域レジスタ16および割り込み機構18に接続させるため に使用されているが、この相互接続を実施するために個別の経路が使用できるこ とは理解されるであろう。
各アービトレーションノード44と同様に、MRCA手段48は、8本の双方向 並列経路54によってメインメモリ14と接続されている。同様に、単一の並列 双方向経路56は、MRCA手段48を大域レジスタ16および割り込み機構1 8に接続させている。好適な実施例では、合計6本の並列双方向経路58が、ク ラスタ40を相互接続するために使用されている。例えば、クラスタ40gは、 各クラスタ40b、40cおよび40dと接続する2本の経路58を有する。こ のようにして、MRCA手段48は、他のクラスタ40が、そのクラスタ40の 共用資源12への直接アクセスを行えるようにする。
図58および5bに示すように、メモリポート310のそれぞれ、NRCAボー ト312、および、プロセッサポート314.31.5,316および317の それぞれのためのアービトレーションネットワーク303および306は、アー ビトレーションノード44を含む。また、アービトレーションノード44には、 入力ボート待ち行列301、クロスバー302および307、タグ待ち行列30 4およびデータ待ち行列305が含まれる。
本願で詳細に説明するように、アービトレーションネットワーク303および3 06は、最旧の参照が最初に処理されるようにするために、先着順サービス複数 リクエスタトグル方式を使用している。同一経過時間の複数の旧参照の場合、公 平アルゴリズムが、そのアービトレーションネットワーク303または306に よってそれぞれ制御されるポート310および312ならびに315゜316お よび317への等しいアクセスを保証する。
他のスーパコンピュータでは、メモリのリターンは、要求が送出された順序と同 順で戻る。従って、データが戻る際にそのデータをどこに入れるかに関してはま ったく曖昧さはないので、そのプロセッサのメモリリターン論理は単純である。
しかし、メモリのリターンを順序通りに制限することは、その順序づけの制約に より共用資源がいずれかの順序の破約を明白に知るまで待たされることになるの で、性能を犠牲にすることも意味し、それゆえ、並行活動の量を低減させること になる。早期の戻りは、その記憶システムの不均質な待ち時間のために、以前に 要求されたリターンよりも短い待ち時間を伴って戻るようなリターンである。リ ターンが、要求が送出された順序と同順で戻るように制限されていない場合、そ れを保証するために、その記憶サブシステムはソート機構を付与しなければなら ない。これは、データを要求する複数のポートお誹びそのデータを返す複数の記 憶部が存在する場合、相当の負担になる。
本発明では、メモリのデータリターンは、その要求の順序に対して乱順て戻るこ とができる。要求が待ち行列に蓄積した時は常に、その応答は、要求がその待ち 行列に最初に入れられた相対時間に関して乱順て返され得るというのが、その多 重プロセッサ全体の待ち行列およびアービトレーションネットワークの特徴であ る。これは、早期の要求のデータが後期の要求のデータよりも後に戻ることがあ るということを意味する。しかしながら、プロセッサにおける順序づけの制限の ために、早期に着信したデータを使用することが可能ではない場合もある。
例えば、算術演算に伴うデータは、再現可能な結果が望まれる際には、元のプロ グラムで指定された同じ順序で使用されなければならない。従って、本発明では 、メモリリターンデータは、それがすでに実際に使用できるかどうかにかかわら ず、その最終宛先(ベクトルレジスタ、スカシレジスタ、Lレジスタ、命令キャ ッシュバッファまたは人出力バッファ)に入れられる。そのデータが使用できる かどうかは、以前に発行された要求の応答状態にもとづく。
本発明は、全部のシステム資源が、図1b〜1dに示したようなバイブライン技 法の全部を用いてアクセスされ得る、共用資源アクセスのための方法および装置 を供することである。これを実現するために、本発明は、要求および応答を記録 し、そのデータをその宛先で事実上再び順序づけるために、タグおよび待ち行列 を使用する。
最も単純な形態では、タグは、方向情報用の別のタグを位置づけるためのそのバ ッファ内の場所、または、そのタグに関係する応答を入れるためのバッファまた はプロセッサ(レジスタ)内の場所を、その論理に知らせる。
例えば、メモリからデータを要求するには、そのリクエスタが要求信号、アドレ スおよび要求タグを付与することをめる。要求信号は、そのアドレスおよび要求 タグの妥当性を検査する。アドレスは、メインメモリにおける応答データの位置 を指定する。要求タグは、データがプロセッサに返される際にそのデータを入れ る場所を指定する。その好適な実施例の説明を、共用資源にアクセスするための 複数のポートを有するシステムにおいて各プロセッサを備えた多重プロセッサシ ステムの文脈で行ってきたが、本発明が、各プロセッサがメモリにアクセスする ための単一のポートしか持たない、または、メモリにアクセスするための複数の ポートを有する単一プロセッサシステムに対しても等しく適用可能であることは 明らかであろう。
〔プロセッサ〕
以下の節では、好適な実施例のプロセッサ10が、スカシ、ベクトルおよび命令 要求をどのようにして管理するかを詳細に説明する。4つのベクトルロードポー ト、1つのスカシロードボートおよび1つの命令ロードポートが存在する。各ポ ートは、乱順応答を発行するための異なる機構を有する。
図6aおよび6bについて説明すれば、ベクトルロードポート724,726, 728および730は、要求信号、アドレス、および、そのデータがベクトルレ ジスタ718に向けられている記憶アクセス用要求タグを付与する。4つのベク トルロードポートが存在し、各ロードポートは、いずれかの所定の時間に2つの 未決のベクトルロードを支援する。ベクトルロードポートは、特定のベクトルレ ジスタ718へのメモリリターンのための可変サイズ要求を行う。各要求群は、 1〜64個の個別の要求から構成することができる。各ポートへのそれら2つの 可能な未決ベクトルロードのうち、一度に一方だけが要求を発行することができ る。しかし、メモリリターンの非順次性のために、第2のロードに関するリター ンの全部が第1のロードのリターンのいずれかより前に着信するということも想 定できる。ベクトルロードポート制御機構732は、データが正しいレジスタに 入れられ、そのレジスタの全部の既発行データが使用されるまではそのデータが 使用されないように保証しなければならない。
図7aに示す通り、ベクトルポートからの各メモリリターンおよびアドレスに伴 う要求タグは、そのメモリリターンの宛先を指示するのに十分な大きさである。
すなわち、2つの可能なベクトルレジスタのうちのいずれにそのデータを入れる か、および、そのベクトルレジスタのどの記憶場所を使用するかである。要求が 発行されると、ベクトルロードポート制御機構は、正しいタグがその要求および アドレスに続くように保証する。そのベクトルタグの第1の構成要素は、宛先レ ジスタ識別子ビットである。好適な実施例では、そのタグの一部として宛先レジ スタ番号を送信する代わりに、プロセッサは単に、2つのレジスタのうちの一方 を指示する単一のピットを送信する。その特定のレジスタ番号は、命令発行時に 確立され、ロード命令がポートに発行されるごとに異なることができる。タグに は単一の宛先レジスタ識別子しか含まれていないので、いずれかの所定の時間に は2つのロードだけが未決となり得る。一つのポート内でのタグ衝突(同一宛先 レジスタビットの再使用)は、そのタグピットを再使用する前に、各レジスタの 全部の応答が返るのを待つことによって防止される。さらに、各ポートからの連 続したロードは、常に、異なる宛先レジスタタグピットを使用する。各ベクトル レジスタについて(しかし異なるベクトルロードポートにおいて)複数のローフ トルレジスタロードが完了するのを待つことによって避けられる。
ベクトルタグの第2の部分は、ベクトルレジスタの要素番号である。これは単に 、所定のレジスタのいずれのワードがその記憶データによって更新されるはずか を指定する。
ベクトルレジスタの第3の、そして最後の部分は、そのプロセッサ10に関する ロード要求を事実上破棄する、「取り消し」標識である。しかし、記憶システム にとって、取り消された要求は、ごくわずかな例外を伴って、取り消されていな い要求とまったく同様に扱われる。この例外とは、取り消されたクラスタ外要求 は性能上の理由でクラスタ内に転送されるということである。要求が発行された 後にその要求を取り消すことができるこの能力は、要求を取り扱うプロセッサ1 0およびアービトレーションノード44の部分とアドレスを取り扱うプロセッサ 10およびアービトレーションノード44の部分との間の、時間が決定的である 何らかのハンドシェーキングを削除するので、効果的な記憶待ち時間の低減をも たらす。この実施例では、取り消しビットは、アドレスの妥当性検査および要求 アービトレーションがオーバラップでき、プロセッサ10およびアービトレーシ ョンノード44内で並行して実施されるようにする。すなわち、例えば、アービ トレーションノード44は記憶要求のアービトレーションを進め、同時に、プロ セッサ10内のそのアドレス制御論理はその記憶要求のアドレスが有効な要求で あるかどうか、つまり正しいアドレス範囲内にあるかどうかを判定する。プロセ ッサ10がそのアドレスが範囲外であると判定した場合、取り消しビットが設定 され、その要求はクラスタ内アドレスへ向けられる。
ある種の動作では、この取り消し機能は、ループにおいてデータのボトムローデ ィングを可能にすることで有益である。このソフトウェア技法では、記憶待ち時 間の作用は、そのアドレスが有効であるかどうかがわかる前にデータをプリフェ ッチすることによって回避される。
好ましい多重プロセッサシステムでは、プログラムは、マツピング例外をオフに し、ランダムなアドレス(そのデータ空間外のアドレスでさえ)で問題なくメモ リにアクセスすることができ、その取り消し機構はそのプログラムが禁止データ にアクセスできないように保証する。
従って、プログラムは、それが使用するアドレスを検査する前にメモリにアクセ スすることができ、ロード命令は、ループの上部ではなく下部に置くことができ る(「ボトムローディング」)。
再び図68および6bに戻って、スカラ要求タグについて説明する。メモリへの 単一のスカラボート722は、Sレジスタ714およびLレジスタ716への記 憶データの経路を付与する。正しいデータ順序づけを保証するために、スカラポ ートは、ベクトルボートと同様に、各記憶要求およびアドレスに要求タグを付加 する。
図7bに示すように、このスカラ要求タグは、宛先レジスタ形式およびレジスタ 番号を指示する。スカラタグの第1の部分は、レジスタ形式である。これは、L レジスタとSレジスタの応答を識別する。スカラタグの第2の部分は、レジスタ 番号である。これは、どちらのレジスタ番号(LまたはS)にリターンデータを 入れるかを指示する。タグ衝突は、レジスタ当たりただ一つの未決の参照を、ま たは、Lレジスタの場合はレジスタ群当たりただ一つの未決の参照を許可するこ とによって防止される。スカラタグの第3の、そして最後の部分は、ユーザプロ グラムが、それらの許可されたアドレス空間外にあるデータにアクセスしないよ うに防ぐ、「取り消し」標識である。この機構については、本願書の各所で説明 されている。
図6aおよび6bに示す通り、スカラロードボート722は、Lレジスタ716 またはSレジスタ714のいずれかに向けられたリターンを受け取る。そのリタ ーンタグのL/Sビットは、そのデータがメモリから返った時にいずれの宛先レ ジスタ形式に書き込むかを決定する。
Sレジスタが書き込まれる場合、その要求タグは2つの機能を実行する。まず、 そのレジスタを未予約にさせ、それによりSレジスタファイルの書き込みアドレ スを形成する。Lレジスタが書き込まれる場合、タグは同じ2つの機能を実行す る。しかし、Lレジスタは、個々のレジスタではなく、ブロック単位で予約され たりされながったりする。
スカラボート応答について概説した要求タグ方式は、Lレジスタロードが、Sレ ジスタロードなどの高優先順位ロードによって割り込まれることを許す。出方ア ドレスにはいかなる順序づけも課されず、また、入力データストリームにもまっ たく課されないので、一方のレジスタロード(例えば、Lレジスタ)の集合をバ ックグラウンドアクティビティとして扱い、他方の集合(Sレジスタ)を高優先 順位のフォアグラウンドアクティビティとして扱うことが可能である。その後、 正しいソフトウェア支援によって、Lレジスタは、ブロックロードおよびストア によってアクセスされるソフトウェア管理キャッシュとして扱われることができ る。
再び図6aおよび6bに戻って、命令要求タグについて説明する。命令および入 出カポ−ドア20は、メモリから命令キャラシュア10および入出力バッファ7 12への経路を付与する。正しい命令の順序づけを保証するために、この命令ボ ートは、他のボートと同様に、その要求およびアドレスとともに要求タグを付与 する。命令要求タグは、図7cに示す通り、その命令の応答のためのバッファ番 号およびそのバッファ内の要素番号を指示する。
ベクトルボートレジスタ番号と同様に、この命令ボートバッファ番号標識は、単 一のタグビットで符号化される。これは、未決のバッファ要求の数を2つに制限 するが、命令ロードに関係する制御およびデータ経路を単純にする。命令タグ衝 突は、新しい充填の開始を許可する前に、最旧のバッファ充填が完了するのを待 つことによって回避される。同一バッファへの複数の未決ロードは、キャッシュ 置換方針によって禁止されている。タグの符号化は、リターン宛先が命令キャッ シュバッファ712または入出力応答バッファ710のいずれであるかを指示す る。
各ベクトルロードボート724,726.728および730は、「バック」ビ ットの2つの集合を維持しており、その一方は、そのボートの各可能な未決ベク トルレジスタ用のものである。メモリからリターンが戻ると、そのレジスタおよ び要素番号のバックビットは1に設定され、そのデータはそのベクトルレジスタ に書き込まれる。しかし、制御機構732は、以前の要素を含むそれまでの全部 の要素がメモリから返されるまで、そのデータが使用されないようにする。これ は、応答が乱順て戻っても、ベクトルレジスタの全部の要素が順番に使用される ことを保証する。
ベクトルレジスタの全部の要素がメモリから返されると、その側のバックビット は「ノットバ・ツク」とマークされ、そのバックビットの集合は別のロード命令 に使用可能となる。そのタグが要求が取り消されたことを指示しているベクトル およびスカラロードデータは、非信号のNaN (Not a Number:  r非数値」)によって破棄され、交替される。これは、本発明の好適な実施例 が、オペランドマツピング例外を使用可能としないプログラムによるアクセスか ら記憶データを保護する方法である。命令データがメモリ14から返されると、 プロセッサ10は、それを入れるべき場所を決定するためにそのリターンタグを 使用する。命令リターンは、データリターンとは異なり、マツブトモードであれ ば命令マツピング例外が常に使用可能であるので、取り消し機能を使用しない。
非コヒーレント記憶システムに関係するハザードを回避するために、プロセッサ 10および外部インタフェースボート22は、アービトレーションノード44が そのタグ以外の情報を付与することをめる。
この情報は、要求の順序づけ、および、それらの要求が特定の共用資源によって 処理されるためにコミットされる時に関係している。好適な実施例では、コヒー レンシーを保証するために使用されるこの技法は、「データマーク機構」と称す る。このデータマーク機構は、原特許願書においてより詳細に開示されている。
〔外部インタフェースポート〕
プロセッサ10によって発行される要求に加え、本発明は、外部インタフェース ポート22を介して発行された周辺装置からの資源要求にもサービスすることが できる。外部インタフェースポート22によってメインメモリ14または大域レ ジスタ16からフェッチされたデータは、それが要求された順序とは異なる順序 で戻ることができる。本発明のこの非順次アクセスを実現するために、外部イン タフェースポート22に関係するl0C24およびSMS 28は、外部インタ フェースポート22を通じてなされる資源要求に要求タグを付加する。
図8によって、好適な実施例の外部インタフェースポート22の詳細な説明を行 う。外部インタフェースポート22は、クラスタチャネルインタフェース(CC I)120を物理的に接続するメモリボートケーブル(図示せず)によってメイ ンメモリ14からコマンドおよびデータワードのパケットを受け入れる。コマン ドワードはコマンドバッファ350に入れられ、データはデータFIFOバッフ ァ360に経路指定される。コマンドバッファ350にコマンドが存在すると、 外部インタフェースポート22の制御論理370は、アービトレーションノード 44を通じてメモリ14ヘアクセスを要求することになる。コマンドワードのワ ードカウント、コマンド、アドレスおよびmタグフィールドからのデータは、そ の要求が認識される際にアービトレーションノード44へ配信する準備として各 自のレジスタ382,384.386および388ヘロードされる。行われたす べてのワード要求について、新しい要求タグおよびアドレスが計算されなければ ならない。
フェッチ要求の場合、いかなるデータも送信されないが、アドレスおよび要求タ グは、そのコマンドワードカウントフィールドの内容に等しい要求数について送 信される。要求タグは、0に設定された下位6ビツトに始まり、タグの正しい数 が送信されるまでそのフィールドの内容を増分させて計算される。同様に、要求 のアドレスは、そのコマンドワードに存在するアドレスに始まって、各要求が認 識されるごとにそれを増分させて計算される。
ストア要求の場合、データFIFO360内の次のワードがアドレス、タグおよ びコマンド情報とともに提示される。ワードカウント値は、各要求後に減分され る。
ワードカウント値が0に達すると、以降の要求はいっさい行われない。FIFO 350および360は、可能であれば必ず、アービトレーションノード44を絶 えずビジー状態にしておくために外部インタフェースポート22でコマンドおよ びデータが常に使用可能であることを保証するようにコマンドおよびデータを保 持するために使用される。
フェッチされたデータは、転送レジスタ390を介して共用資源から戻る。その 要求がなされた時に発行された要求タグは、そのデータとともに返される。転送 レジスタ390の出力は、メインメモリ14に接続されている。外部インタフェ ースボート22を連結するケーブルのデータ線に関係する制御線は、有効データ ワードがCC1120のバスにあることを指示するために挿入されている。
入出力要求タグは、IOC24を通じて伝わる際にそのデータパケットに先行す るコマンドワードとともに送信される。タグは、そのデータをrOc 24のい ずれのバッファが受信するかを指示する4ビツトフイールド、および、そのデー タが格納されるそのバッファ内の記憶場所を指示する6ビツトフイールドを含む 。4ビツトのバッファ選択フィールドは、図9に示すようにデコードされる。コ ード1011は、データを2つのSMTCコマンドバッファのうちの一方に方向 づける。残りの6つのタグピットは、その応答データワードがいずれのバッファ およびそのいずれの記憶場所へ格納されるかを指示する。コード1111は、l 0C24によっては使用されない。それは、プロセッサの命令キャッシュフェッ チ動作に予約されている。IOC24は、メモリボートをその命令キャッシュと 共用する。
6ビツトフイールドは、要求がなされた際に各個別のデータワード要求について 外部インタフェースボートで生成される。要求は、最下位アドレスに始まり順に 行われる。図7dによれば、入出力要求タグ、すなわち、6ビツトワード識別子 および4ビツト宛先識別子は、10ビツトタグフイールドに入れられる。このタ グは、記憶システムによって要求とともに伝わり、データの各ワードとともにI OC24へ返される。その後、要求タグは、そのデータワードを適切なバッファ およびそのバッファの記憶場所へ方向づけるためにIOC24によって使用され る。
要求がなされた際の連続順序でタグが生成されるので、宛先バッファの記憶場所 をアドレス指定するためにタグを使用することは、データが、いずれの任意の順 序で戻っても、必ず正しい順序でバッファにロードされることを保証する。従っ て、データをバッファから連続順序で読み出すことは、データが正しい順序で宛 先へ返されることを保証する。
〔アービトレーションノード〕
再び図5aおよび5bに戻って、共用資源の観点から見ると(この場合、経路5 0および52)、各入力要求は、要求アービトレーションネットワーク303に よってアービトレーションが行われる。同様の応答アービトレーションネットワ ーク306は、それらの各自のプロセッサポー)−315,316または317 へ戻る応答データのアービトレーションを行う。入力する要求の場合、入力待ち 行列301が、その要求アービトレーションネットワーク303によって渡され るのを待つ最大16個の要求を保持する。返される応答の場合、データ待ち行列 305が、その応答アービトレーションネットワーク306がそれらの応答デー タを宛先ボート315.316または317へ戻すのを待つ最大64個の応答を 保持する。これらの待ち行列301および305のそれぞれは、リクエスタと共 用資源の間でデータが流れる際のいずれかの制御待ち時間を範囲に収めるように 戦略的に大きさが取られている。また、データが記憶部から返されると、その関 係するタグはタグ待ち行列304から検索され、データおよびタグがデータ待ち 行列305ヘロードされる前に、再び付属される。NRCA経路52による応答 の場合、データおよびその関係するタグはすでに対にされており、NRCAおよ びMRCA手段は関係するデータおよびタグを取り扱う。
要求アービトレーションネットワーク303が、入力している要求が使用可能な 資源を要求しており、最高優先順位を有しており、かつ、記憶部へ向けられてい ると判定した場合、その要求のアドレスおよびデータ構成要素は経路50に置か れ、その正しい記憶部へ経路指定される。要求アービトレーションネットワーク 303が、入力している要求が使用可能な資源を要求しており、最高優先順位を 有しており、かつ、NRCA 46へ向けられていると判定した場合、その要求 のアドレス、データおよびタグ構成要素は経路52に置かれ、その正しい共用資 源12へ経路指定される。アービトレーションネットワーク303は、それらの 相互接続配線50および52へのアクセスを事実上制御していることに留意しな ければならない。その要求経路に沿った以降のアービトレーションネットワーク は、他の共用資源へのアクセスを制御する。データは、要求された順序とは異な る順序で要求ボート315,316および317へ返され得る。
アービトレーションノード44は、各ロードアドレスとともにタグの集合を受信 し、後の参照のためにそれらを待ち行列に入れる。データがメインメモリから返 されると、それらのタグは対応するデータワードに再び付属され、データおよび タグの両者はその要求側ボートへ返される。プロセッサ10は、そのデータを正 しい宛先へ入れるためにこれらのタグを利用し、それが正しい順序で使用される ように保証する。
〔メインメモリ〕
再び図5aおよび5bに戻って、メモリ参照に関して、各記憶部のスイッチング 論理400は、所定のアービトレーションノード44からのその特定の記憶下位 区分に対する全部の入力要求を収集する各記憶下位区分に下位区分キャッチ待ち 行列401を含む。各アービトレーションノード44は、各記憶部14に自己自 身のキャッチ待ち行列の集合を有する。バンク要求アービトレーションネットワ ーク405は、各サイクルでそのバンク403への未決の要求を有する下位区分 キャッチ待ち行列401のその群の間でアービトレーションを行う。要求が選択 されると、その選択された要求はその宛先バンク403へ発行される。要求がス トアである場合、アドレスおよびデータがそのバンクへ発行される。要求がロー ドである場合、そのアドレスだけがそのバンクへ発行される。要求がロードアン ドフラグである場合、そのアドレスおよびデータがそのバンクへ発行される。ロ ードおよびロードアンドフラグについては、バンク403からのその応答データ は、応答アービトレーションネットワーク407がその記憶部からの出力応答を 許可する前にホールド待ち行列406で保持される。
〔遠隔クラスタアダプタ〕
次に図10について説明する。NRCA手段46の場合、入力待ち行列610ま たは630が入力要求を収集する。入力待ち行列610は、外部インタフェース へ向けられた参照を保持する。アービトレーションネットワーク612は、各サ イクルで外部資源への未決の要求を有するその1群の入力待ち行列610の間で アービトレーションを行う。要求が選択されると、その選択された要求は、アド レス、データ、および、経路58に置かれるその要求タグおよび付加的な情報( 図70参照)から構成されるクラスタタグと称する新しいタグとともに、その宛 先資源へ発行される。入力待ち行列630は、割り込み機構、大域レジスタまた は5ETNレジスタへ向けられた参照を保持する。アービトレーションネット7 −り634は、各サイクルでその資源620.632または633への未決の要 求を有するその1群の入力待ち行列630の間でアービトレーションを行う。そ の要求が許可されると、それはその宛先資源へ発行される。データが大域レジス タ633またはS ETNレジスタ632からアービトレーションノード44へ 返される場合、高優先順位の要求がその出力アービトレーションネットワーク6 15に提示され、それによりそのアービトレーションノードへ戻る出力経路はク リアされることになる。
ボート58を介してMRCA手段48から戻るデータおよびタグは、待ち行列6 14に受信される。大域レジスタ633または5ETNレジスタ632からのデ ータは、事前にアービトレーションが行われ、ただちに、関係するタグとともに 戻り経路52に置かれる。各クロックサイクルにおいて、応答アービトレーショ ンネットワーク615は、ボート52または56の戻りデータ経路についてアー ビトレーションを行う。データ待ち行列614、大域レジスタ633または5E TNレジスタ632から適切なデータが選択され、適切なボート52または56 へ返される。
次に図11gおよび11bについて説明すれば、MRCA手段48は、それらを 介して他のクラスタからのストアおよびロード動作が受信される6つのボート5 20が存在する。これらのボートのそれぞれは、受信待ち行列500.タグバッ ファ502、応答待ち行列504、および、ボート制御論理501および503 から構成される。各ボートは、他の全部のボートから独立して動作する。別のク ラスタからボートに着信した全部の動作は、そのクラスタへ返される。これは、 ストアもロードも含む。MRCA手段48の待ち行列およびアービトレーション (506,507,508,509,510,511および512)は、本質的 に、アービトレーションノード44の待ち行列およびアービトレーション(それ ぞれ、301,302,303,304,305,306および307)と同様 に動作する。
ある動作が外部クラスタからMRCAポート520に着信すると、そのデータ、 アドレスおよびタグ情報が、64個の記憶場所の深さを持つ受信待ち行列500 に書き込まれる。この受信待ち行列500に妥当な動作が書き込まれた後、ボー ト制御論理501は、その動作がMRCA手段48に渡され得るかどうかを判定 するために資源検査を実行する。3つの検査される資源が存在する。
検査される第1の資源はタグの可用性に関する。動作がMRCA手段48に渡さ れると、その要求とともに着信した元のクラスタタグはタグバッファ502に書 き込まれ、新しい8ビツト要求タグがタグジェネレータ501によって生成され る。その元のタグが書き込まれるタグバッファ502の記憶場所のアドレスは、 その新しい要求タグになる。この要求タグは一意でなければならないので、新し いクラスタタグが生成されMRCA手段48に渡されると、それは、その動作が MRCA手段48′b1らそのボートへ返されるまで、再使用することはできな い。この論理の実施は、要求タグが順に生成されなければならないことを要する 。生成される次の要求タグがMRCA手段48においてまだ未決である場合、そ のボートは、受信待ち行列500から自己の次の動作を発行することができない 。タグバッファ502は256個の記憶場所の深さを持つ。
MRCA手段48へ動作が発行できる前に検査されなければならない第2の資源 は、リターン待ち行列504における記憶場所の可用性に関する。MRCA手段 48はアービトレーションノード44に戻り動作を保持させるための機構をまっ たく持っていないので、MRCA手段48は、アービトレーションノード44が ら戻るいずれかの動作を格納するためにリターン待ち行列504に記憶場所が常 に存在するように保証しなければならない。
このリターン待ち行列504は128個の記憶場所の深さを持つ。リターン待ち 行列504の記憶場所の全部が割り当てられると、記憶場所が使用可能となるま で、他のいかなる動作もMRCA手段48に発行できない。
MRCA手段48内のボート待ち行列506は、受信待ち行列500からの動作 が発行できる前に検査されなければならない第3の資源である。ボート制御論理 501は、現在の動作の総数をボート待ち行列506に保持する。ボート待ち行 列506が一杯になると、ポート制御論理501は、記憶場所が使用可能となる まで、発行を抑止しなければならない。
MRCA手段48から動作が戻ると、データが存在する場合、そのデータは、リ ターン待ち行列504に直接格納される。その動作とともに返される要求タグは 、そのタグバッファにアクセスし、元のクラスタタグ503を回復させるために 使用される。この元のクラスタタグは、タグバッファ502から抽出され、その データとともにリターン待ち行列504に格納される。その後、ポート制御論理 501は、そのクラスタ間経路520の遠端のクラスタについて資源検査を行う 。その遠端クラスタが自己の受信待ち行列に使用可能な記憶場所を有していれば 、リターン待ち行列504はロードされない。記憶場所がなければ、待ち行列の 記憶場所が使用可能となるまで、データは保持される。
好適な実施例の説明を提示してきたが、本発明の精神を逸脱することなく、各種 変更がなし得ることが想定される。従って、本発明の範囲は、好適な実施例の説 明よりもむしろ、添付請求の範囲によって規定されるべきものと意図する。
Fig、 2 Fig、 3a 翫3b Fig、 5 Fig、 Ila 要 約 書 複数リクエスタシステムにおいて共用資源(12)に対する非順次アクセスのた めの方法および装置は、データをその宛先で効果的に再順序づけるために各種の タグを使用する。最も単純な形態では、このタグは、方向情報に関する別のタグ を位置づけるためにバッファ内の場所へ、または、そのタグに関係する応答を発 するためにバッファまたはプロセッサ(レジスタ)内の場所へ、スイッチング論 理を方向づける。例えば、メモリ(14)からデータをロードするには、そのリ クエスタが、要求信号、アドレスおよび要求タグを付与することが必要になる。
要求信号は、そのアドレスおよび要求タグの妥当性を検査する。アドレスは、そ の要求されたデータのメモリ(14)内の記憶場所を指定する。要求タグは、デ ータがそのプロセッサへ返された時にそのデータを入れるための場所を指定する 。そのリクエスタのスイッチング論理(44)は、その資源要求に関係する要求 タグを格納するためのタグ待ち行列と、そのタグ待ち行列からの個々の要求タグ を資源応答に関係づけるための論理手段と、その資源応答および個々の要求タグ をり゛クエスタへ返すための手段とを含む。メモリ(14)に関係するスイッチ ング論理(400)は、共用資源との間で要求く経路指定するための制御論理と 、複数の決定要求を取り扱うための論理と、要求されている最終データエンティ ティを格納または検索するための論理とを含む。
国際調査報告

Claims (20)

    【特許請求の範囲】
  1. 1.複数のプロセッサを有する多重プロセッサにおける非順次共用資源アクセス のための装置であって、前記共用資源はメインメモリ、大域レジスタおよび割り 込み機構を含むものであり、前記装置が、前記プロセッサのそれぞれと動作可能 に接続されており、前記プロセッサからの複数の資源要求を生成するための要求 生成手段であり、前記資源要求のそれぞれは、要求された共用資源のアドレスと 、 その資源要求が返されるべきプロセッサ内の記憶場所を指定する要求タグとを含 むものである、前記要求生成手段と、 前記要求生成手段と動作可能に接続されており、前記資源要求が生成された時間 順に前記資源要求を受信し、前記資源要求を前記共用資源に経路指定するための スイッチング手段であり、前記スイッチング手段は、前記資源要求に関係する前 記要求タグを格納するためのタグ待ち行列と、 前記タグ待ち行列からの各要求タグを資源応答に関係づけるための論理手段と、 前記資源要求および各要求タグを前記プロセッサに返すための手段とを含むもの である、前記スイッチング手段と、 前記スイッチング手段および前記共用資源と動作可能に接続されており、前記要 求された資源が使用可能となった時に前記資源要求にサービスし、前記資源要求 がサービスされた順序で前記スイッチング手段に前記資源応答を返すための手段 とを含んでおり、 それによって、前記資源要求が発行された時間順序に対して前記資源応答が乱順 で返され得ることを特徴とする装置。
  2. 2.請求項1記載の装置であって、前記スイッチング手段がさらに、前記多重プ ロセッサシステムの所定のクロックサイクルで前記共用資源へ経路指定される前 記資源要求間でアービトレーションを行うためのアービトレーションノード手段 を含むことを特徴とする装置。
  3. 3.請求項2記載の装置であって、前記各要求タグを関係づけるための論理手段 がさらに、前記要求生成手段からの取り消し指示を受信し、前記取り消し指示に 応答して前記資源要求が前記共用資源へ経路指定された時より以前の前記資源要 求を取り消すための取り消し論理手段を含むことを特徴とする装置。
  4. 4.請求項3記載の装置であって、前記取り消し論理手段は、前記資源要求に応 答して非数値を返すことによって資源要求が取り消されたことを指示することを 特徴とする装置。
  5. 5.請求項1記載の装置であって、前記スイッチング手段がさらに、前記資源要 求のアドレスの妥当性を検証するためのアドレス検証手段を含むことを特徴とす る装置。
  6. 6.請求項5記載の装置であって、前記各要求タグを関係づけるための論理手段 がさらに、前記要求生成手段からの取り消し指示を受信し、前記取り消し指示に 応答して前記資源要求が前記共用資源へ経路指定された時より以前の前記資源要 求を取り消すための取り消し論理手段を含むことを特徴とする装置。
  7. 7.複数のリクエスタを有する多重プロセッサにおける非順次共用資源アクセス のための装置であって、前記リクエスタはプロセッサおよび外部インタフェース ポートの両者を含むものであり、前記共用資源はメインメモリ、大域レジスタお よび割り込み機構を含むものであり、前記装置が、 各リクエスタと動作可能に接続されており、前記リクエスタからの複数の資源要 求を生成するための要求生成手段であり、前記資源要求のそれぞれは、要求され た共用資源のアドレスと、 その資源要求が返されるべきリクエスタ内の記憶場所を指定する要求タグとを含 むものである、前記要求生成手段と、 前記要求生成手段と動作可能に接続されており、前記資源要求が生成された時間 順に前記資源要求を受信し、前記資源要求を前記共用資源に経路指定するための スイッチング手段であり、前記スイッチング手段は、前記資源要求に関係する前 記要求タグを格納するためのタグ待ち行列と、 前記タグ待ち行列からの各要求タグを資源応答に関係づけるための論理手段とを 含むものである、前記資源要求および各要求タグを前記リクエスタに返すための 手段とを含むものである、前記スイッチング手段と、 前記スイッチング手段および前記共用資源と動作可能に接続されており、前記要 求された資源が使用可能となった時に前記資源要求にサービスし、前記資源要求 がサービスされた順序で前記スイッチング手段に前記資源応答を返すための手段 とを含んでおり、 それによって、前記資源要求が発行された時間順序に対して前記資源応答が乱順 で返され得ることを特徴とする装置。
  8. 8.請求項7記載の装置であって、前記スイッチング手段がさらに、前記多重プ ロセッサシステムの所定のクロックサイクルで前記共用資源へ経路指定される前 記資源要求間でアービトレーションを行うためのアービトレーションノード手段 、および、前記資源要求のアドレスの妥当性を検証するためのアドレス検証手段 を含むことを特徴とする装置。
  9. 9.請求項8記載の装置であって、前記各要求タグを関係づけるための論理手段 がさらに、前記要求生成手段からの取り消し指示を受信し、前記取り消し指示に 応答して前記資源要求が前記共用資源へ経路指定された時より以前の前記資源要 求を取り消すための取り消し論理手段を含むことを特徴とする装置。
  10. 10.請求項7記載の装置であって、前記リクエスタおよび共用資源が複数のク ラスタに編成されており、また、前記スイッチング手段がさらに、遠隔クラスタ の共用資源へ向けられたそのクラスタのリクエスタからの資源要求を受信し、そ れらの要求を前記遠隔クラスタの遠隔クラスタアダプタ手段へ転送し、前記遠隔 クラスタからの資源応答を受信し、かつ、前記クラスタの共用資源へ向けられた 前記遠隔クラスタの遠隔クラスタアダプタ手段からの資源要求を受信し、前記遠 隔クラスタヘ前記資源応答を返すための、各クラスタに関係づけられた遠隔クラ スタアダプタ手段を含むことを特徴とする装置。
  11. 11.多重プロセッサシステムであって、1つ以上のリクエスタ間で待ち行列お よびパイプラインを確立するための手段と、 資源へ要求を行うための手段と、 前記要求がなされた時間順序とは異なる順序で前記要求がサービスされ得るよう に前記要求に応答するための1つ以上の資源手段とを含むことを特徴とする多重 プロセッサシステム。
  12. 12.複数のプロセッサを有する多重プロセッサシステムにおいて共用資源にア クセスするための方法であって、前記共用資源はメインメモリ、大域レジスタお よび割り込み機構を含むものであり、前記方法が、前記プロセッサの1つからの 資源要求を生成する段階であり、前記資源要求のそれぞれは、 要求された共用資源のアドレスと、 前記資源要求が返されるべきプロセッサ内の記憶場所を指定する要求タグとを含 むものである、前記要求生成段階と、 前記資源要求が発行された時間順に前記共用資源に関係するスイッチング機構へ 前記資源要求を提示する段階と、 前記資源要求に関係する前記要求タグを前記スイッチング手段のタグ待ち行列に 格納する段階と、資源応答を生じるために前記要求された資源が使用可能となっ た時に前記資源要求にサービスする段階と、前記資源要求がサービスされた順序 で前記スイッチング手段に前記資源応答を返す段階と、 前記タグ待ち行列からの前記各要求タグを前記資源応答に関係づける段階と、 前記資源要求および各要求タグを前記プロセッサに返す段階とを含んでおり、 それによって、前記資源要求が発行された時間順序に対して前記資源応答が乱順 で返され得ることを特徴とする方法。
  13. 13.請求項12記載の方法であって、前記資源要求にサービスする段階が、 前記多重プロセッサシステムの所定のクロックサイクルで前記共用資源へ経路指 定される前記資源要求間でアービトレーションを行う段階と、 前記資源要求のアドレスの妥当性を検証する段階とを含むことを特徴とする方法 。
  14. 14.請求項13記載の方法であって、前記資源要求にサービスする段階がさら に、前記資源要求に関係する取り消し指示を検査し、前記取り消し指示に応答し て前記資源要求が前記共用資源へ経路指定された時より以前の前記資源要求を取 り消す段階を含むことを特徴とする方法。
  15. 15.請求項14記載の方法であって、前記資源要求を取り消す段階が前記取り 消し指示に応答して非数値を返すことによって前記資源要求が取り消されたこと を指示することを特徴とする方法。
  16. 16.複数のリクエスタを有する多重リクエスタシステムにおいて共用資源にア クセスするための方法であって、前記リクエスタはプロセッサおよび外部インタ フェースポートの両者を含むものであり、前記共用資源はメインメモリ、大域レ ジスタおよび割り込み機構を含むものであり、前記方法が、 前記リクエスタの1つからの資源要求を生成する段階であり、前記資源要求のそ れぞれは、 要求された共用資源のアドレスと、 前記資源要求が返されるべきリクエスタ内の記憶場所を指定する要求タグとを含 むものである、前記要求生成段階と、 前記資源要求が発行された時間順に前記共用資源に関係するスイッチング機構へ 前記資源要求を提示する段階と、 前記資源要求に関係する前記要求タグを前記スイッチング手段のタグ待ち行列に 格納する段階と、資源応答を生じるために前記要求された資源が使用可能となっ た時に前記資源要求にサービスする段階と、前記資源要求がサービスされた順序 で前記スイッチング手段に前記資源応答を返す段階と、 前記タグ待ち行列からの前記各要求タグを前記資源応答に関係づける段階と、 前記資源要求および各要求タグを前記プロセッサに返す段階とを含んでおり、 それによって、前記資源要求が発行された時間順序に対して前記資源応答が乱順 で返され得ることを特徴とする方法。
  17. 17.請求項16記載の方法であって、前記資源要求にサービスする段階が、 前記多重プロセッサシステムの所定のクロックサイクルで前記共用資源へ経路指 定される前記資源要求間でアービトレーションを行う段階と、 前記資源要求のアドレスの妥当性を検証する段階とを含むことを特徴とする方法 。
  18. 18.請求項17記載の方法であって、前記資源要求にサービスする段階がさら に、前記資源要求に関係する取り消し指示を検査し、前記取り消し指示に応答し て前記資源要求が前記共用資源へ経路指定された時より以前の前記資源要求を取 り消す段階を含むことを特徴とする方法。
  19. 19.請求項16記載の方法であって、前記リクエスタおよび共用資源が複数の クラスタに編成されており、かつ、前記資源要求にサービスする段階がさらに、 遠隔クラスタの共用資源へ向けられた前記クラスタのリクエスタから遠隔資源要 求を受信することと、前記遠隔資源要求を遠隔クラスタに転送し、前記遠隔クラ スタから資源応答を受信することを含むことを特徴とする方法。
  20. 20.請求項19記載の方法であって、前記資源要求にサービスする段階がさら に、 前記クラスタの共用資源に向けられた前記遠隔クラスタから遠隔資源要求を受信 することと、前記遠隔要求について前記遠隔クラスタヘ前記資源応答を返すこと を含むことを特徴とする方法。
JP3514424A 1990-06-11 1991-06-10 非順次源アクセスのための方法およびその装置 Pending JPH05508497A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/535,786 US5208914A (en) 1989-12-29 1990-06-11 Method and apparatus for non-sequential resource access
US535,786 1990-06-11

Publications (1)

Publication Number Publication Date
JPH05508497A true JPH05508497A (ja) 1993-11-25

Family

ID=24135761

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3514424A Pending JPH05508497A (ja) 1990-06-11 1991-06-10 非順次源アクセスのための方法およびその装置

Country Status (4)

Country Link
US (1) US5208914A (ja)
JP (1) JPH05508497A (ja)
AU (1) AU8447491A (ja)
WO (1) WO1991020038A1 (ja)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623650A (en) * 1989-12-29 1997-04-22 Cray Research, Inc. Method of processing a sequence of conditional vector IF statements
US5544337A (en) * 1989-12-29 1996-08-06 Cray Research, Inc. Vector processor having registers for control by vector resisters
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
US5280619A (en) * 1990-05-17 1994-01-18 Texas Instruments Incorporated System for accessing shared data using a serialization graph constructed from a history file showing completed locking dependencies between transactions
US5598547A (en) * 1990-06-11 1997-01-28 Cray Research, Inc. Vector processor having functional unit paths of differing pipeline lengths
FR2676845B1 (fr) * 1991-05-23 1993-09-24 Sextant Avionique Dispositif pour la gestion de plusieurs files d'attente independantes dans un espace memoire commun et banalise.
US5428803A (en) * 1992-07-10 1995-06-27 Cray Research, Inc. Method and apparatus for a unified parallel processing architecture
US5448730A (en) * 1993-12-14 1995-09-05 International Business Machines Corporation Correlating a response with a previously sent request in a multitasking computer system using pipeline commands
US5751986A (en) * 1994-03-01 1998-05-12 Intel Corporation Computer system with self-consistent ordering mechanism
CN1205792C (zh) * 1994-08-31 2005-06-08 国际商业机器公司 用于设备间通信的系统与方法
US5692151A (en) * 1994-11-14 1997-11-25 International Business Machines Corporation High performance/low cost access hazard detection in pipelined cache controller using comparators with a width shorter than and independent of total width of memory address
US5699538A (en) * 1994-12-09 1997-12-16 International Business Machines Corporation Efficient firm consistency support mechanisms in an out-of-order execution superscaler multiprocessor
US5752264A (en) * 1995-03-31 1998-05-12 International Business Machines Corporation Computer architecture incorporating processor clusters and hierarchical cache memories
US5710703A (en) * 1995-06-07 1998-01-20 Chrysler Corporation Method and system for sharing a hardware resource
US6112019A (en) * 1995-06-12 2000-08-29 Georgia Tech Research Corp. Distributed instruction queue
US7301541B2 (en) * 1995-08-16 2007-11-27 Microunity Systems Engineering, Inc. Programmable processor and method with wide operations
US5742840A (en) * 1995-08-16 1998-04-21 Microunity Systems Engineering, Inc. General purpose, multiple precision parallel operation, programmable media processor
US6295599B1 (en) * 1995-08-16 2001-09-25 Microunity Systems Engineering System and method for providing a wide operand architecture
US5953241A (en) * 1995-08-16 1999-09-14 Microunity Engeering Systems, Inc. Multiplier array processing system with enhanced utilization at lower precision for group multiply and sum instruction
US6643765B1 (en) 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
US5751983A (en) * 1995-10-03 1998-05-12 Abramson; Jeffrey M. Out-of-order processor with a memory subsystem which handles speculatively dispatched load operations
US5778438A (en) * 1995-12-06 1998-07-07 Intel Corporation Method and apparatus for maintaining cache coherency in a computer system with a highly pipelined bus and multiple conflicting snoop requests
US5860126A (en) * 1996-12-17 1999-01-12 Intel Corporation Controlling shared memory access ordering in a multi-processing system using an acquire/release consistency model
US5931915A (en) * 1997-05-13 1999-08-03 International Business Machines Corporation Method for processing early arrival messages within a multinode asynchronous data communications system
US5878226A (en) * 1997-05-13 1999-03-02 International Business Machines Corporation System for processing early arrival messages within a multinode asynchronous data communications system
JP3545906B2 (ja) * 1997-05-29 2004-07-21 富士通株式会社 ファイルシステム制御方法,パラレルファイルシステムおよびプログラム記憶媒体
US6247101B1 (en) 1998-07-01 2001-06-12 Lsi Logic Corporation Tagged access synchronous bus architecture
US6779036B1 (en) 1999-07-08 2004-08-17 International Business Machines Corporation Method and apparatus for achieving correct order among bus memory transactions in a physically distributed SMP system
US6467012B1 (en) 1999-07-08 2002-10-15 International Business Machines Corporation Method and apparatus using a distributed system structure to support bus-based cache-coherence protocols for symmetric multiprocessors
US6442597B1 (en) 1999-07-08 2002-08-27 International Business Machines Corporation Providing global coherence in SMP systems using response combination block coupled to address switch connecting node controllers to memory
US6678838B1 (en) * 1999-08-23 2004-01-13 Advanced Micro Devices, Inc. Method to track master contribution information in a write buffer
US6591348B1 (en) 1999-09-09 2003-07-08 International Business Machines Corporation Method and system for resolution of transaction collisions to achieve global coherence in a distributed symmetric multiprocessor system
US6587930B1 (en) 1999-09-23 2003-07-01 International Business Machines Corporation Method and system for implementing remstat protocol under inclusion and non-inclusion of L1 data in L2 cache to prevent read-read deadlock
US6725307B1 (en) 1999-09-23 2004-04-20 International Business Machines Corporation Method and system for controlling data transfers with physical separation of data functionality from address and control functionality in a distributed multi-bus multiprocessor system
US6457085B1 (en) 1999-11-04 2002-09-24 International Business Machines Corporation Method and system for data bus latency reduction using transfer size prediction for split bus designs
US6523076B1 (en) 1999-11-08 2003-02-18 International Business Machines Corporation Method and apparatus for synchronizing multiple bus arbiters on separate chips to give simultaneous grants for the purpose of breaking livelocks
US6606676B1 (en) 1999-11-08 2003-08-12 International Business Machines Corporation Method and apparatus to distribute interrupts to multiple interrupt handlers in a distributed symmetric multiprocessor system
US6684279B1 (en) 1999-11-08 2004-01-27 International Business Machines Corporation Method, apparatus, and computer program product for controlling data transfer
US6516379B1 (en) 1999-11-08 2003-02-04 International Business Machines Corporation Method and apparatus for transaction pacing to reduce destructive interference between successive transactions in a distributed symmetric multiprocessor system
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
US6529990B1 (en) 1999-11-08 2003-03-04 International Business Machines Corporation Method and apparatus to eliminate failed snoops of transactions caused by bus timing conflicts in a distributed symmetric multiprocessor system
US6542949B1 (en) 1999-11-08 2003-04-01 International Business Machines Corporation Method and apparatus for increased performance of a parked data bus in the non-parked direction
US6535941B1 (en) 1999-11-08 2003-03-18 International Business Machines Corporation Method and apparatus for avoiding data bus grant starvation in a non-fair, prioritized arbiter for a split bus system with independent address and data bus grants
US6571332B1 (en) * 2000-04-11 2003-05-27 Advanced Micro Devices, Inc. Method and apparatus for combined transaction reordering and buffer management
US6920534B2 (en) * 2001-06-29 2005-07-19 Intel Corporation Virtual-port memory and virtual-porting
US7124410B2 (en) * 2002-01-09 2006-10-17 International Business Machines Corporation Distributed allocation of system hardware resources for multiprocessor systems
US20050172091A1 (en) * 2004-01-29 2005-08-04 Rotithor Hemant G. Method and an apparatus for interleaving read data return in a packetized interconnect to memory
US20060277248A1 (en) * 2005-05-12 2006-12-07 Baxter Eugene E Configuration-based application architecture using XML/XSLT
WO2009031055A2 (en) * 2007-09-04 2009-03-12 Lg Electronics Inc. System and method for displaying a rotated image in a display device
US10116732B1 (en) * 2014-12-08 2018-10-30 Amazon Technologies, Inc. Automated management of resource attributes across network-based services

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4320451A (en) * 1974-04-19 1982-03-16 Honeywell Information Systems Inc. Extended semaphore architecture
US4325120A (en) * 1978-12-21 1982-04-13 Intel Corporation Data processing system
FR2469751A1 (fr) * 1979-11-07 1981-05-22 Philips Data Syst Processeur d'intercommunication du systeme utilise dans un systeme de traitement de donnees reparti
US4318173A (en) * 1980-02-05 1982-03-02 The Bendix Corporation Scheduler for a multiple computer system
SE423839B (sv) * 1980-10-02 1982-06-07 Volvo Ab Sett och anordning for styrning av ett styrbart hjulfordon
US4663706A (en) * 1982-10-28 1987-05-05 Tandem Computers Incorporated Multiprocessor multisystem communications network
US4644461A (en) * 1983-04-29 1987-02-17 The Regents Of The University Of California Dynamic activity-creating data-driven computer architecture
US4615001A (en) * 1984-03-29 1986-09-30 At&T Bell Laboratories Queuing arrangement for initiating execution of multistage transactions
US4967342A (en) * 1984-08-17 1990-10-30 Lent Robert S Data processing system having plurality of processors and channels controlled by plurality of system control programs through interrupt routing
US4682284A (en) * 1984-12-06 1987-07-21 American Telephone & Telegraph Co., At&T Bell Lab. Queue administration method and apparatus
US4972314A (en) * 1985-05-20 1990-11-20 Hughes Aircraft Company Data flow signal processor method and apparatus
US4779194A (en) * 1985-10-15 1988-10-18 Unisys Corporation Event allocation mechanism for a large data processing system
US4805107A (en) * 1987-04-15 1989-02-14 Allied-Signal Inc. Task scheduler for a fault tolerant multiple node processing system
US4807111A (en) * 1987-06-19 1989-02-21 International Business Machines Corporation Dynamic queueing method
US5012409A (en) * 1988-03-10 1991-04-30 Fletcher Mitchell S Operating system for a multi-tasking operating environment
US5031089A (en) * 1988-12-30 1991-07-09 United States Of America As Represented By The Administrator, National Aeronautics And Space Administration Dynamic resource allocation scheme for distributed heterogeneous computer systems

Also Published As

Publication number Publication date
AU8447491A (en) 1992-01-07
WO1991020038A1 (en) 1991-12-26
US5208914A (en) 1993-05-04

Similar Documents

Publication Publication Date Title
JPH05508497A (ja) 非順次源アクセスのための方法およびその装置
EP0512007B1 (en) Cluster architecture for a highly parallel scalar/vector multiprocessor system
US6279084B1 (en) Shadow commands to optimize sequencing of requests in a switch-based multi-processor system
US5168547A (en) Distributed architecture for input/output for a multiprocessor system
US5165023A (en) Parallel processing system with processor array and network communications system for transmitting messages of variable length
US4891787A (en) Parallel processing system with processor array having SIMD/MIMD instruction processing
US4873626A (en) Parallel processing system with processor array having memory system included in system memory
AU598857B2 (en) Move-out queue buffer
US5675736A (en) Multi-node network with internode switching performed within processor nodes, each node separately processing data and control messages
US5418970A (en) Parallel processing system with processor array with processing elements addressing associated memories using host supplied address value and base register content
EP0524682A1 (en) A centralized backplane bus arbiter for multiprocessor systems
JPS62500902A (ja) パケット・スイッチド・マルチポ−ト・メモリn×mスイッチ・ノ−ド及び処理方法
EP0450233A2 (en) Bus access for digital computer system
JPH11282820A (ja) スイッチをベースとするマルチプロセッサシステムに使用するための順序サポート機構
JPH05508044A (ja) 多重プロセッサシステム用通信交換システム
JPH0642236B2 (ja) コマンダノードからのインターロック読み取りコマンドメッセージをレスポンダノードで実行する装置
JP2501419B2 (ja) 多重プロセッサメモリシステム及びメモリ参照競合解決方法
US5210828A (en) Multiprocessing system with interprocessor communications facility
JPH09172460A (ja) パケット交換コンピュータ・システムにおける高速転送スレーブ要求の方法および装置
JPH04306758A (ja) メモリ共有マルチプロセッサ
JPS62189549A (ja) 多重階層レベルマルチプロセツサ装置
EP0351955A2 (en) Multiprocessor systems with cross-interrogated store-in-caches
JPH0587855B2 (ja)
US7383336B2 (en) Distributed shared resource management
JPH05508495A (ja) 多重プロセッサ用大域レジスタ