JPH05508495A - 多重プロセッサ用大域レジスタ - Google Patents

多重プロセッサ用大域レジスタ

Info

Publication number
JPH05508495A
JPH05508495A JP3514236A JP51423691A JPH05508495A JP H05508495 A JPH05508495 A JP H05508495A JP 3514236 A JP3514236 A JP 3514236A JP 51423691 A JP51423691 A JP 51423691A JP H05508495 A JPH05508495 A JP H05508495A
Authority
JP
Japan
Prior art keywords
global
register
registers
data
multiprocessor
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
JP3514236A
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 JPH05508495A publication Critical patent/JPH05508495A/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/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation 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/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
    • 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/30101Special purpose 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/3012Organisation of register space, e.g. banked or distributed register file
    • 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 or 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 or 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 or 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 or 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 or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)

Abstract

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

Description

【発明の詳細な説明】 多重プロセッサ用大域レジスタ 技術分野 本発明は多重プロセッサコンピュータおよび電子論理システム用レジスタおよび 相互接続技術の分野に関する。
さらに詳しくは、本発明はか〜るシステムにおいて、多重プロセッサを相互接続 しまた協調させるための原子的資源の配分メカニズムを提供する能力を有する高 能率の分配メカニズムを提供するような多重プロセッサシステム用大域レジスタ のシステムに関する。
従来の技術 多重プロセッサシステム用相互接続および制御メカニズムの一部としての大域レ ジスタの使用は従来技術においてよく知られている。大域レジスタは多重プロセ ッサシステムにおけるすべての要求元に対し一般にアクセス可能なレジスタであ る。E、W、Dljkstaによる表題「協調逐次プロセスJ F、Ganuy s(ed、)、Programsing Languages(Academi c、Press、Nev York 19Bg)の論文において、pijl(s traは多重プロセッサシステムの演算の流れを制御するセマフォー演算用大域 レジスタの使用につき述べている。セマフォー演算の一部としての大域レジスタ の使用は、典型的には小型の並列スーパーコンピュータおよび階層的記憶装置ス ーパーコンビ二一夕に限られる。プロセッサの制御および協調はメツセージ伝達 計画を通して行われるので、大型の並列スーパーコンピュータは、それ自身のア ーキテクチャにより、大域レジスタのセットに対する使用法を有しない。
大抵の従来技術の大域レジスタシステムは、セマフォー機能を果すのに、ある種 のハードウェア依存のインターロックメカニズムを利用している。例えば、Cr ayResearch、 Inc、が開発したCray X−MPスス−−コン ピュータ用のアーキテクチャでは、米国特許第4,363゜942号の主題にみ るように、2個の高速プロセッサによる要求を大域レジスタに協調させるのにデ ッドロック割込み機構手段を用いる。この形式の密結合、直接接続法は2個の高 速プロセッサを協調させるのに効率的な方法であるが、この特許に述べられてい るハードウェア・デッドロック割込みメカニズムは、共に結合されているプロセ ッサ数および含まれる大域レジスタ数のいずれもが比較的小数である時に、最も 有効である。
さらに、大抵の従来技術の大域レジスタシステムは比較的少数のアクセスバスを 有する小型の大域レジスタセットを用いて実施されていた。小型の並列スーパー コンピュータは一般には中央演算システムで作動するので、大域レジスタにとっ ての潜在的コンフリクトの多くは、所定の大域レジスタにアクセスするよう割り 当てられるプロセッサの数を制限できる中央演算システムにより制御される。そ の結果、一度に複数個の大域レジスタの内容に関し分散および/または多重系処 理能力のある多数の大域レジスタに備える必要は、従来技術では一般になかった 。
スーパーコンピュータ用大域レジスタの設計は、そのアーキテクチャの限られた 設計要求においてさえ、従来技術の多重プロセッサシステムでは問題があった。
多重プロセッサコンピュータ処理システムの処理速度と柔軟性を向上すべく、「 高度の並列スカラー/ベクトル多重プロセッサシステム用クラスタアーキテクチ ャ、PCT−頁番号PCT/US90107655Jと題する以前に出願された 本発明の親特許出願は、多数のプロセッサおよび外部インタフェースポートが共 通セットの共用)1−ドウエア資源に多重かつ同時要求を行うことが出来るクラ スタアーキテクチャを提供する。これら共用ノ\−ドウエア資源の一つが大域レ ジスタのセットである。大域レジスタ設計の問題は、さらにこのクラスタアーキ テクチャの設計に利用されるいくつかの重要な設計要素により形成されている。
第1は、大域レジスタは同一大域レジスタへの数多くの多重要求を支援する能力 を有さなければならない。第2に、大域レジスタは、中央スケジューリング機能 がなく、また分散入出力の一部がプロセ・ソサ介入なしに大域レジスタに直接ア クセスすることも許される分散環境において作動しなければならない。最後に、 大域レジスタはオペレーティングシステムが用いる共通データ構造へのアクセス を協調し、作業を配分するための無秩序ベースのスケジューリングおよび共用の 変動同期を使用する多重系オペレーティングシステム用ソフトウェアルーチンを 支援するために原子算術演算および原子資源配分の能力を必要とする。
大域レジスタ設計の問題は一般に、従来技術スーパーコンピュータでは何の資源 が現在どのプロセッサにより用いられているかということを追跡するのに単一、 中央スケジューリングプロセッサを割り当てることにより管理されてきた。多重 プロセッサシステム用クラスタアーキテクチャの分散アクセスアーキテクチャに おいては、大域レジスタを含むすべての共用資源へのアクセスは平等かつ民主的 であり、中央スケジューリング機能はない。
従って、分散型アクセスアーキテクチャ多重プロセッサシステム用大域レジスタ に対する新しい設計が必要となる。
発明の概要 本発明は分離した大域レジスタのセットにおける同時演算に対し多重並列アクセ スバスを支援する多重プロセラサシ反テム用大域レジスタを提供し、大域レジス タの各セットは大域レジスタファイルとして参照される@大域レジスタに関連す る調停機構が単一大域レジスタファイルに対する多重同時要求を解決するのに用 いられる。
算術論理演算装置(A L U)も各大域レジスタファイルと関連して、原子算 術演算をその大域レジスタファイルのいかなる大域レジスタに対する全レジスタ 値にも実行可能にする。
本発明の大域レジスタは多重プロセッサシステムの外部インタフェースポートを 通じいかなるプロセッサまたは周辺制御装置からアクセスできる大域的にアクセ ス可能な資源である。大域レジスタは、手持ちの特定同期タスクに応じて、同期 基本要素にとり最も効率的な選択を行わせる各種の同期基本要素を支援する。本 発明のより著名な同期基本要素の一つが取出しおよび条件つき加算(FCA)命 令である。FCA命令は共用変動同期および無秩序ペーススケジニーリングを用 いる多重系オペレーティングシステム用にソフトウェアルーチンが用いることが 出来、作業を配分しオペレーティングシステムが用いる共通データ構造へのアク セスを協調させる。好ましい実施例においては、大域レジスタは分散、民主的多 重プロセッサ環境で各要求元がすべて使用可能な共通共用ハードウェア資源の全 セットの一部として実現されている。大域レジスタは多重プロセッサシステムの 好ましい実施例の各クラスタ内で8個の大域レジスタファイルとして組織されて いる。本発明の大域レジスタを大域レジスタファイル内に組織することにより、 多重大域レジスタファイルに同時アクセスが可能になる。好ましい実施例では、 クラスタ当り8192個の大域レジスタが、また大域レジスタファイル当り10 24個の大域レジスタがある。
分離された大域レジスタファイル上で同時演算に対する多重並列アクセスバスを 支援する大域レジスタのセットを提供するのが本発明の目的である。
本発明の別の目的は、取り出しおよび条件つき加算(FCA)命令の支援能力を 有する大域レジスタのセットを提供することである。
本発明のこれらおよび他の目的は、図面、実施例の詳細説明および附属の特許請 求項を参照することにより明らかになるであろう。
図面の説明 図1は、本発明の好ましい実施例における多重プロセッサシステムの単一クラス タ内で、プロセッサ、外部インタフェースポート、大域レジスタ間の各種相互接 続を示すブロック図である。
図2aおよび図2bは、多重処理システムの好ましい実施例の4個のクラスタ実 施を示すブロック図である。
図3は、多重プロセッサシステムの好ましい実施例のNRCA手段の一部として 大域レジスタの実施を示すブロック図である。
図4は、本発明の各種大域レジスタファイルに対する調停論理およびクロスバ− 交換機構を示すブロック図である。
図5は大域レジスタに対するデータおよびアドレスバイブラインを示す図4のよ り詳細なブロック図である。
図6は大域レジスタ用論理および物理的アドレスマツプの図式表示である。
図7は単一大域レジスタファイルおよびその大域レジスタファイルに関連する算 術論理装置用のアドレスおよびデータラインを示す図4のより詳細なブロック図 である。
図8は大域レジスタアドレス指定を示す図式表示である。
好ましい実施例の説明 図1を参照して、本発明と共に使用する多重プロセッサシステムの好ましい実施 例の単一多重プロセッサクラスタのアーキテクチャについて説明する。高度に並 列なスカラー/ベクトル多重処理システム用の好ましいクラスタアーキテクチャ は共用資源の大型セット12(例えば、主記憶装置14、大域レジスタ16およ び割込み機構18)を共用する複数の高速プロセッサ10を支援する能力を有す る。プロセッサ10はベクトルおよびスカラー両方の並列処理が可能であり、ま た調停ノード手段20を通して共用資源12に連結される。調停ノード手段20 を通して同様に連結されているのは、複数の外部インタフェースポート22およ び各種の外部データ資源26にさらに連結されている入出力集信装置(IOC) 24である。外部データ資源26には高速チャネル30を経由して入出力集信装 置24に連係する補助記憶装置システム(SMS)28を含むことがある。外部 データ資源26には、また各種の他の周辺装置および複数の標準チャネル34を 経由して入出力集信装置24に連係するインタフェース32とを含むことがある 。周辺装置およびインタフェース32にはディスク記憶システム、テープ記憶シ ステム、印字装置、外部プロセッサおよび過信ネットワークを含むことがある。
プロセッサ10、共用資源12、調停ノード手段20および外部インタフェース ポート22は、共に本発明の好ましい実施例の通りに高度並列多重プロセッサシ ステム用単−多重プロセッサクラスタ40より成る。
多重プロセッサクラスタ40の好ましい実施例は、プロセッサ10、共用資源1 2、調停ノード手段20および外部インタフェースポート22を複数のクラスタ 40に物理的に組織することにより、現在の共用記憶装置スーパーコンピュータ の直接連結のインタフェース問題を解決している。図28および2bに示される 好ましい実施例には、4個のクラスタ40a、40b、40cおよび40dがあ る。クラスタ4Qa、40b、40C。
40dのいずれもが、プロセッサ10a、10b、10C,10d、共存資源1 2a、12b、12c、12d。
およびそのクラスタと関連する外部インタフェースポート22a、22b、22 c、22dのそれ自身ノセットを物理的に有している。クラスタ40a、40b 、40c、40dはそれぞれの調停ノード手段20a、20b。
20c、20dの論理部分である遠隔クラスタアダプタ42を適して相互連結さ れる。クラスタ40a、40b。
40c、40dは物理的には分離されているが、クラスタの論理組織および遠隔 クラスタアダプタ42を適しての物理的相互連結により、すべての共用資源12 a。
12b、12c、12dへすべてのクラスタ40a。
40b、40c、40dを横断して所要の対称的アクセスが可能である。
本発明では、プロセッサ10および外部インタフェースポート22のいずれもま たすべてが同一または異なる大域レジスタ16にいかなる所定のクロックタイム で同時アクセスすることが出来る。大域レジスタ16は物理的および論理的に大 域レジスタファイル内に組織される。
所定の大域レジスタファイル内で大域レジスタを参照することは、多数のクロッ クサイクルに亘って直列化され、それぞれのクロックサイクルに1演算の速さで 行われる。
別の大域レジスタファイルにあるレジスタへの同時参照は同一クロックサイクル 内に行われる。大域レジスタ論理は大域レジスタファイル内のいかなるアクセス コンテンションをも、各要求元に直列化してアクセスを授与することによって解 決するので、一時点では1演算のみが行われる。大域レジスタファイル内の単一 大域レジスタへの参照は、到着順に処理される。好ましい実施例は、4個のクラ スタ40間にある32.768個の大域レジスタの隣接ブロックに対するアドレ ス指定を提供する。
クラスタ40の1個当り8192個の大域レジスタがある。大域レジスタは各ク ラスタ40内で8個の大域レジスタファイルとして組織されているので、異なる 大域レジスタファイルへのアクセスを同時に生ずることができる。
こ−で図3を参照すると、大域レジスタ16の好ましい実施例が述べられている 。好ましい実施例では、大域レジスタは遠隔クラスタアダプタ42のNRCA手 段46用の論理と関連している。大域レジタ16の物理的位置は好ましい多重処 理システムに対し遠隔クラスタアダプタ42にあることが好ましいが、その位置 および大域レジスタ16は、それらを使用しようとしている多重プロセッサシス テムのアーキテクチャおよびレイアウトによって、各種の設計で行えることは理 解されるであろう。
クラスタ40内の32個のプロセッサ10および32個の外部インタフェースポ ート22から大域レジスタ16へのアクセスバスを提供する調停ノード手段20 (調停ノード44当り1個)には、16個のNRCAボート47がある。各NR CAボート47は2個のプロセッサ10および2個の外部インタフェースポート 22により共用され、バス52を通してアクセスされる。同種のボート49はM RCA手段48が受信し、バス56を通してアクセスされるとクラスタ40の大 域レジスタ16に対し、クラスタ間要求をサービスする。要求が同一クラスタ4 0内にある時は、大域レジスタ16へのアクセスタイムは一般に主記憶装置14 へのアクセスタイムよりや−早いことが認識されるであろう。また要求はそれぞ れ別のバスを通して通信されるので、クラスタ間記憶装置トラフィックと大域レ ジスタトラフィック間には妨害はない。
NRCA手段46では、クロスバ−/調停手段51および遠隔クラスタクロスパ ー53は16個の調停ノード44およびMRCA手段48から要求を受信する。
大域レジスタ16に対するNRCA手段46内の適当な論理ならびに信号論理3 1および高速割込み論理33からなる割込み機構18へのおよび割込機構18か らのアクセスを指示するため、バス52および56を経由するNRCA手段46 へのアクセスはクロスバ−/m停手段51を通るルートになっている。より詳細 は後で述べるが、大域レジスタ16に対し、調停決定には、標的レジスタを選択 するアドレス情報と行おうとする演算を定める制御情報とが必要になる。この情 報はデータと共にNRCA手段46に転送される。このアドレスおよび制御情報 は大域レジスタ16または信号論理31または高速割込み論理33に送信される データに対するものであってよい。
本発明の大域レジスタ16の重要な特徴は、単一の割込み不可能な演算で読取り 一修正−書込み演算を行うことができる能力である。多重プロセッサシステムに わたり分散および多重系演算の統一支援を有する多重プロセッサシステムを創造 す、るために、オペレーティングシステムおよび入出カシステムが使用する原子 資源配分機構を提供するのにこの特徴は用いられる。か\る原子資源配分機構に はいくつかの変形が支援されている。原子大域レジスタ演算には次のものがある 。
テストおよびセット(TAS)−要求発信元から供給されるデータは、レジスタ 内のデータで論理和をとられ、その結果は選択したレジスタに置かれる。修正前 のレジスタの内容は要求発信元に戻される。セット(SET)−要求発信元から 供給されるデータはレジスタ内のデータと論理和がとられ、結果はレジスタに置 かれる。
クリア(CLR)−選択された大域レジスタの選択されたピッ゛トに要求発信元 から供給されたデータに応答してクリアされる。
取出しおよび加算(FAA)−要求発信元から供給されたデータはレジスタ内の 値と算術的に加算され、結果はレジスタに置かれる。加算前のレジスタの内容は 要求発信元に戻される。
取出しおよび条件つき加算(FCA)−要求発信元から供給されたデータはレジ スタ内の値に算術的に加算され、加算結果がゼロより大またはゼロに等しければ レジスタに置かれる。もし加算結果がゼロより小ならレジスタ内容は変更しない 。加算前のレジスタ内容は要求発信元に戻される。
加算(ADD)−要求発信元から供給されたデータはレジスタ内の値に算術的に 加算され、結果はレジスタに置かれる。
交換(SWAP)−要求発信元から供給されたデータは選択したレジスタに書込 まれる。修正前のレジスタ内容は要求発信元に戻される。
読取り(RE AD)−レジスタの内容は要求発信元に戻される。
書込み(WRITE)−要求発信元から供給されたデータは選択されたレジスタ に書込まれる。
これら命令のそれぞれについてのより詳細の説明はこの明細書に添付され、ちり こまれるべきものである補遺Aにおいて説明されている。
大域レジスタ16を用いてセマフォー的演算による同期はテストおよびセット( TAS)命令および特定の大域レジスタ16をセマフォー情報に含有させるため のソフトウェア規約により達せられる。TAS命令により多数ビットが大域レジ スタ16にセットされる。しかしデータ修正以前に、大域レジスタ16の内容は 送出し中のブoセッサ10に送り返される。次にプロセッサ1oは、これらのビ ットが当初送られたビットと異なっているがどうかを見るためにチェックする。
もし異なっていれば、大域レジスタ16のデータを変更できるのは一時にはある 1個のレジスタのみであるから、セファモーを獲得したことになる。もしビット が同一であれば、TAS演算を再試行するためソフトウェアはループバックする ことがある。
並列処理を支援するのに必要な明白な急速同期能力の他に、大域レジスタ16お よび全体体系には追加機能が設計されている。コンパイルの際に、各種のコード 部分ニ対しプロセッサ10を何個使用できるかを各プロセッサは決定する。この 値を稼働中の大域レジスタセットに置くことができる。いかなる解放されている プロセッサも、定義によってオペレーティングシステム中にあり、図8に関係し てより詳細に述べられるようにGMASKおよびGOFFSETi1mlレジス タを変更することにより、また稼働プロセスのプロセッサ要求番号を走査するこ とにより、簡単に潜在的作業を探索することが出来る。
プロセッサは、プロセスに加えられると、プロセッサ要求番号を減分する。オペ レーティングシステムはニーズと使用法に応じて、容易にプロセッサをプロセス に追加したり、またはプロセッサをプロセスから引き抜くことが出来る。取出し および条件つき加算(FCA)命令は、必要以上のプロセッサがプロセスに追加 されないことを保証する。この命令はまた、多重処理の並列ループ操作能力を容 易化する。
こ−で図4を参照すると、クロスバ−/調停手段51がより詳細に述べられてい る。流れはNRCA手段46によりバッファリングされていた調停ノード44の 一つからのデータで以て開始する。各要求をNRCA入カレシカレジスタ510 )で受信すると、解読論理406がその要求を解読し、大域レジスタ調停ネット ワーク410に提示する。もし同一の大域レジスタファイル410の複数の大域 レジスタに同時に要求が来ると、これらの要求はFIFO412、バイブライン 414および大域レジスタ調停ネットワーク410により逐次制御法で処理され る。優先度はFIFO(先入り、先出し)計画に、複数要求トグル優先計画を補 足して割当てられる。大域レジスタ調停ネットワーク410はこの形式の調停論 理またはその同等論理を用いて、同一大域レジスタファイル400への同時要求 に優先をつける。調停ネットワーク410により優先度が決まると、17X10 クロスバ−スイッチ手段430が適当な大域レジスタファイル400とFIFO 412の要求とを組合わせる。
複数のNRCA入カレシカレジスタ510)は入城レジスタ入カクロスバー43 0中に17個のバスを提供する。
入城レジスタ入カクロスバー430から大域レジスタファイル400へは8個の バス440、信号論理31へは1個のバス442、高速割込み論理33へは1個 のバス444がある。大域レジスタファイル演算が終了すると、大域レジスタ出 力クロスバー422は演算からのすべての出力を要求ポートに経路指定する。
図4に示す好ましい実施例では、各大域レジスタファイル400は1024個の 汎用目的、64ビツトレジスタを有する。各大域レジスタファイル400は、ま た別個の算術論理演算装置(ALU)460を含み、クラスタ当り単一クロック サイクル中に8個の個別大域レジスタ演算を行うことができる。大域レジスタフ ァイル400は、参照中の連続位置は各参照とは異なるファイルにアクセスする ように8個の方法をインタリーブされている。本実施例では、大域レジスタは非 常に高速な1024X64ビツトRAMを用いて実行される。
図5に示すように、アドレスおよびコマンド情報は、データパイプライン530 から分離されているバイブライン520を通して伝わる。アドレスおよびコマン ド情報は解読され、データと幾つかのアドレスビットをその目的地に向けるため に使用される。調停の決定結果はこの目的地にデータを向けるのに使用されるの で、同じクロックサイクル中にデータと調停結果とが入力クロスバ−430に到 着しなければならない。ステージングレジスタ560がデータバイブライン53 0に追加され、アドレスバイブライン520を通して制御遅延を適合させるよう にデータ遅延を調節する。
図6に示すように、調停はアドレスビット13(SETN選択ビット)の解読、 3個のアドレスの最も重要でないビット(大域レジスタファイル選択ビット)お よび4ビツトの演算コード(図示なし)に基づいている。もし演算コードが信号 演算を規定していれば、アドレスおよびデータ情報は必ず信号論理出力ボート4 42に送られる。もしアドレスビット13が1にセットされれば、アドレス、デ ータ、コマンド情報は高速割込み論理出力ポート444に送られる。それ以外の 時は、アドレス、制御、データはバス440の1つを使って3個のアドレスLS Bにより選択された大域レジスタファイル出力ポートに送られる。
図5においてバス540で示されるその他の10個の論理アドレス中のアドレス ビット(ビット12〜3)は、調停プロセスでは使用されない。これらはデータ を添えて、ファイル400中のどのレジスタを修正すべきかを選択するために機 能装置で使用される。バス540のコマンドビットは複製され、目的地での使用 のため同様にデータパイプラインを通って運ばれる。
同一の大域レジスタファイル400(または信号論理31、または高速割込み論 理33)用の異なる源泉からの同時要求は、要求者の一つにアクセスを授与し、 他の要求はその後のサイクルに遅延させることにより、調停論理410が解決す る。調停アドレスバイブラインレジスタ520はアドレスパイプラインP I  FO570で直ちにサービスすることが出来ないすべての要求を保持している。
いかなる単一データバイブラインFIFO580中にも、データは直列的に提出 される。同様に、アドレスパイプラインP I FO570中の要求は直列的に 処理される。例えば、後から入力されたデータBはそれ以前に入力されたデータ Aを追い抜くことはできない。
データAがある繁忙g大域レジスタの待ち状態であり、データBが利用可能な大 域レジスタの待ち状態であったとしても、データAが完了するまではデータBを 処理することはできない。データは単一列で順番に並んでおり、アドレス制御下 のデータはデータアドレス制御のデータ順番から離れて抜は出すことはできない 。
10個の調停を調停論理410は同時に処理できる。
もしデータが行くことが出来なければ、信号512および514がF I FO 570および580にそれぞれ送信され、その要求をそれぞれの出力で保持する よう命令すとになる。FIFO570および580から要求が取除かれたことを 示す信号(図示なし)が、調停論理410から各要求元に送り返される。源泉は この信号を使っていつF I FO570および580がフルになったかを定め る。源泉はF I FO570および580がフルの時は要求送信を停止し、要 求は喪失されない。一旦調停決定がなされると、入力クロスパー460を操作す る多重化された選択信号590が生成される。これがFIFO570および58 0を自動的に無負荷にし、大域レジスタファイル400または信号論理31また は高速割込み論理33にデータを送る。
入力クロスバ−460は10個の17:1多重装置として実行される。8個の出 力バス440の各々、ならびに出力バス442および444に対し1個の多重装 置がある。多重装置は調停論理からの多重選択信号590により制御される。調 停論理410はまた、機能的装置出力バス450(図4)を経由してデータが源 泉に戻りつ−あることをNRCA手段46(図3)に警告するために、信号を送 信する。要求は一旦アクセスを授与されると、データは一定数のサイクルでNR CA手段46に戻る。
NRCA論理はこの固定インターバルに応え、いつ大域レジスタ16からデータ を受信すべきか、またいつそれをプロセッサ10に戻すべきかを決定する。デー タは9:17大域レジスタ出力クロスバー422により戻る(信号論理はデータ を戻さない)。
こ〜で図7を参照すると、単一大域レジスタファイル400の演算が述べられて いる。要求される演算に関連するデータは大域レジスタバイブロ10へのデータ を通し大域レジスタファイル400を入力する。データは4ステツプで大域レジ スタバイブロ10に移動する。各ステップは単一クロックサイクルを必要とする 。大域レジスタバイブロ10へのデータ中の4ステツプは以下の通りである。
1、 図5の調停入力クロスパー460からデータバイブ入力レジスタ627に データをロードする。
2、 誤り検出を行い、そのデータを検出出力レジスタ628にロードする。
3、 誤り訂正を行い、データを訂正出力レジスタ629にロードする。
4、 そのデータをデータバイブライン出力レジスタ626に転送する。
要求される演算に関連するレジスタアドレス情報はアドレスバイブロ09を通し て入力される。アドレスは2ステツプでバイブを通して通過する。各ステップは 単一クロックサイクルを必要とする。アドレスバイブロ091、 調停入力クロ スバ−460からアドレスバイブ入力レジスタ630にデータをロードする。
2、 そのアドレスをレジスタファイル読取りアドレスレジスタ624に転送す る。
アドレス情報はレジスタファイル623からデータを取り出すのに用いられる。
それをALU460中の大域レジスタバイブロ10からのデータと組合わせるこ とにより取出したデータを修正する。修正されたデ1夕は次にレジスタファイル 623に書込まれる。もし特定の演算でデータを要求元に戻すことが要求されれ ば、まずファイル623から取出されたデータは、機能ユニット出力レジスタ6 31を経由してNRCA論理に引渡される。
ALU460は主加算器602、折返し加算器603および論理ユニット604 から成る。これら3要素は3源泉から2オペランドをとることができる。主加算 器はファイル出力ラッチ619またはALU出力ラッチ621のいずれかから、 ラッチ620を経由して1オペランドを、またデータバイブライン出力レジスタ 626から第2オペランドを取り出す。折返し加算器はALU出力ラッチ621 からラッチ620を経由して1オペランドを、またデータバイブライン出力レジ スタ626から他のオペランドを取り出す。論理ユニットはファイル出力ラッチ 619またはALU出力ラッチ621のいずれかからラッチ620を経由して1 オペランドを、データバイブライン出力レジスタ626から第2オペランドを取 り出す。
ファイル623中のレジスタを読み取り、ALU460中のデータを演算し、レ ジスタにデータを戻すのに、5クロツクサイクルが必要である。各ステップは単 一クロックサイクルを必要とする。5ステツプを以下に列挙する。
1、レジスタファイル623を読み取り、ファイル出力ラッチ619にデータを ロードする。
2、 データをALU入力ラッチ620に転送する。
3、 主加算器602または論理ユニット604を使用して要求される演算を実 行し、データをALU出カシカラッチ621−ドする。
4、データをファイル入力ラッチ622に転送する。
5、 ファイル623の選択したレジスタにデータを記憶する。
アドレス遅延ユニット632は4サイクルでステップ1に使用される読取りアド レスを遅らせるので、修正されたデータがステップ5でファイル623に書込ま れた時使用できるようになる。アドレス遅延ユニット623はステップ1の終り に、レジスタファイル読取りアドレスレジスタ624からロードされる。
同一レジスタへのアセクスに対する要求を5サイクルに一回以上速く受信しない 限りこの順番が続く。上記のステップ5の後に始まる同一レジスタへの第2演算 は同一順番に従う。
もしファイル623内の同一レジスタへのアクセス要求を連続クロックサイクル で受信すると、たとえ第1演算の結果が第2演算開始時にまだファイル623に 書き込まれていなくても、第1演算結果を用いて第2演算を開始することを保証 する別の順番が続く。この同一レジスタへの連続アクセスの演算順番は次の通り である。
1、レジスタファイル623を読取り、データをファイル出力ラッチ619にロ ードする。
2、 データをALU入カシカラッチ620送する。
3、 主加算器602または論理ユニット604を使用して要求された第1演算 を実行し、データをALU出力ラッチ621にロードする。
4、 折返し加算器または論理ユニット604を使用して、要求された第2演算 を実行し、データをALU出力ラッチ621にロードする。
5、 データをファイル入力ラッチ622に転送する。
6、 データをファイル623の選択したレジスタに記憶する。
上の順番中、もし論理ユニット604を使用している場合は、データはステップ 3ではALU入カシカラッチ620取られるが、ステップ4ではALU出力ラッ チ621から取る。選択は論理ユニット入力マックス625により行われる。も し入力加算器603が第2演算で必要ならば、折返し加算器603をステップ4 で使用する。それがデータをALU出力ラツチ621から取るからである。第1 演算の結果のデータを第2演算に使用することをこの方法は保証する。
もし同一レジスタに単一サイクルづつ分離した3サイクル期間にて2要求を受信 した場合には、次の順番が使用される。
1、レジスタファイル623を読取り、データをファイル出力ラッチ619にロ ードする。
2、 データをALU入カシカラッチ620送する。
3、 主加算器602または論理ユニット604を使用して要求された第1演算 を実行し、データをALυ出力ラッチ621にロードする。
4、 データをALU入力ラッチ620にバス606経由で転送する。
5、 主加算器602または論理ユニット604を使用して要求されたj@2演 算を実行し、データをALU出力ラッチ621にロードする。
6、 データをファイル入力ラッチ622に転送する。
7、ファイル623の選択したレジスタに記憶する。
上の順番中、もし論理ユニット604を使用している場合は、ステップ3、ステ ップ5共データはALU入力ラッチ620から取る。第1演算結果のデータが第 2演算に使用されることを本方法は保証する。
もし2サイクルづつに分離した4サイクル期間に、同−レジスタへの2要求を受 信した場合には、次の順番を用いる。
1、レジスタファイル623を読取り、データをファイル出力ラッチ619にロ ードする。
2、 データをALU入カシカラッチ620送する。
3、 主加算器602または論理ユニット604を使用して要求された第1演算 を実行し、データをALU出力ラッチ621にロードする。
4、データをバス607経由でファイル出力ラッチ619にロードする。
5、 データをALU入力ラッチ620に転送する。
6、 主加算器602または論理ユニット604を使用し要求された第2演算を 実行し、データをALU出力ラッチ621にロードする。
7、データをファイル入力ラッチ622に転送する。
8、データをファイル623の選択したレジスタに記憶する。
上の順番中、もし論理ユニット604を使用する場合は、ステップ3およびステ ップ6共、データはALU入力ラッチ620から取る。第1演算結果のデータが 第2演算に用いられることを本方法は保証する。
3サイクルづつに分離された5サイクル期間中に、同一レジスタへの2要求を受 信した場合、次の順番を用いる。
1、レジスタファイル623を読取り、データをデータ出力ラッチ619にロー ドする。
2、 データをALU入カシカラッチ620送する。
3、 主加算器602または論理ユニット604を使用して要求された第1演算 を実行し、データをALU出力ラッチ621にロードする。
4、データをファイル入力ラッチ622に転送する。
5、データをバス608経由でファイル出力ラッチ619にロードする。
6、 データをALU入カシカラッチ620送する。
7、 主加算器602または論理ユニット604を使用して要求された第2演算 を実行し、データをALU出力ラッチ621にロードする。
8、データをファイル入力ラッチ622に転送する。
9、 データをファイル623の選択したレジスタに記憶する。
上の順番中、論理ユニット604を使用する場合は、ステップ3、ステップ7共 データはALU入カシカラッチ620取る。第1演算結果のデータが第2演算に 用いられることを本方法は保証する。
要求共に戻るデータは、要求が行われた時点での演算バイブライン中の要求され たデータワードの位置によって、出力への4つのバスの1つに従う。通常は、要 求されるデータワードはレジスタファイル623に位置している。選択したレジ スタの内容を転送するステップの順番を以下に示す。各ステップには単一クロッ クサイクルが必要である。
1、レジスタファイル623を読取り、データをファイル出力ラッチ619にロ ードする。
2、 データをバス613経由で主出口レジスタ633に転送する。
3、 ECCシンドロームビットを計算、追加し、データおよびシンドロームビ ットを主ECC出力レジスタ634にロードする。
4、データおよびシンドロームビットをバス617経由で機能ユニット出力レジ スタ631に転送する。
5、データおよびシンドロームビットを大域レジスタ出力クロスバー422を通 してNRCAに、また以後のステップを通して要求元に戻す。
もし要求されたデータワードが直前のサイクルの演算で修正されていた場合には 、次のステップを用いる。
1、 参照されたレジスタの以前の内容をALU入力ラッチ620に転送する。
2、 前に要求された演算を実行し、データをALU出力ラッチ621に転送す る。本ステップでは現在の取出し演算により要求されているデータを計算する。
3、データをバス638経由で代替出口レジスタ635に転送する。
4、 ECCシンドロームビットを計算、追加し、データおよびシンドロームビ ットをバス639経由で機能ユニット出力レジスタ631にロードする。
5、 データおよびシンドロームビットを大域レジスタ出力クロスバー422を 通してNRCAに、以後のステップを通して要求元に戻す。
もし要求されたデータワードが2サイクル前の演算により修正されていた場合に は、次のステップを用いる。
1、 以前に要求された演算を実行し、データをALU出力ラッチ621に転送 する。本ステップでは現在の取出し演算により要求されたデータを計算する。
2、データをバス638経由で代替出口レジスタ635に転送する。
3、ECCシンドロームビットを計算、追加し、データおよびシンドロームビッ トを第1ステージングレジスタ636にロードする。
4、 データおよびシンドロームビットをバス640経由で、機能ユニット出力 レジスタ631に転送する。
5、データおよびシンドロームビットを大域レジスタ出力クロスパー422を通 してNRCAに、また以後のステップを通して要求元に戻す。
もし要求さ、れたデータワードが3サイクル前の演算により修正されていた場合 は、次のステップを用いる。
1. データをALU出力ラッチ621から、バス638経由で代替出口レジス タ635に転送する。
2、ECCシンドロームビットを計算、追加し、データおよびシンドロームビッ トを第1ステージングレジスタ636にロードする。
3、 データおよびシンドロームビットを第2ステージングレジスタ637に転 送する。
4、データおよびシンドロームビットをバス616経由で機能ユニット出力レジ スタ631に転送する。
5、 データおよびシンドロームビットを大域レジスタ出力クロスバー422を 通してNRCAに、以後もし要求されたデータワードが4サイクル前の演算によ り修正されていた場合は、次のステップを用いる。
1、 以前に要求された演算からのデータを、ファイル入力ラッチ622からフ ァイル出力ラッチ619に転送する。
2、データをバス613経由で主出口レジスタ633に転送する。
3、 ECCシンドロームビットを計算、追加し、データおよびシンドロームビ ットを主ECC出力レジスタ634にロードする。
4、データおよびシンドロームビットをバス617経由で機能ユニット出力レジ スタ631に転送する。
5、データおよびシンドロームビットを大域レジスタ出力クロスバー422を通 してNRCAに、また以後のステップを通して要求元に戻す。
もし要求されたデータが4サイクルよりも以前に修正されていた場合は、通常の 取出し順番を用いる。
本実施鍔では、別の要求を同一レジスタに開始できる以前に、どの大域レジスタ 演算も終了することを保証しており、実際には複数のサイクルが必要であったと しても、−見その演算が単一サイクルで完了しているように見える。バイブライ ン組織によって、新しい演算を以前のアクティビティとは無関係に各サイクルで 機能ユニット中で開始可能になる。この逐次制御方式は、複数機能ユニットへの 複数並列バスと組合わせて、最善可能な処理能力、従って複数並列処理の中で同 期変数を支援するための最も効率的な手段をもたらす。
ニーで図6を参照すると、大域レジスタ16にアクセスする方法が図示されてい る。2つの方法が示されている。論理アドレスマツプ710はプロセッサ10が 使用し、物理アドレスマツプ720はl0C24が使用する。
図8はプロセッサ10での大域レジスタ計算を説明する。本発明ではユーザプロ グラムで大域レジスタアドレスの明白なコーディングの必要性を無くすために、 大域レジスタ16に対する相対的アドレス指定計画を使用する。大域レジスタア ドレス計算は、次の3つのプロセッサ制御レジスタ、すなわちGOFFSET8 10、GMASK820およびGBASE830の内容を基礎にしている。GM ASK820をすべての1にセットすると、ユーザは使用可能な大域レジスタ1 6のすべてにアクセス可能になる。GOFFSET810とGMASK820は 、オペレーティングシステムによってのみ書き込み可能な保護されたレジスタで ある。共に、プロセッサ10またはl0C24がアドレスできる大域レジスタ1 6の収集の1セグメントを定義する。アドレス計算を実行する時、GOFFSE T810の最も重要性の低い3ビツトはゼロであると仮定し、GMASK820 の最も重要性の低い3ビツトは1であると仮定する。
GBASE830はユーザがアクセス可能な15ビツトのレジスタである。命令 jフィールド850に含まれる値をGBASE830に加算し、ユーザアドレス を形成する。jフィールド850は符号なしと考えられ、けた上げはすべて無視 される。GBASE830と命令jフィールド850の和はGMASK820の 内容と論理積がとられ、ユーザがアドレスできるレジスタセット内に、最大変位 に関する制限を置く。マスク演算の結果はGOFFSET810の内容に加算さ れる。けた上げはすべて無視される。その結果の15ビツト合計の最も重要な2 ビツトを、どのクラスタ40にアクセスするかを選択するために用いることに注 意すべきである。加算演算のいずれかの結果として、上位2ビツトに伝播するけ た上りはクラスタ選択ビットを変更することになる。GOFFSET810は1 6ビツトのレジスタであることに注意するべきである。16番目のビットは最速 割込み論理33と関連する5ETNレジスタを選択するのに使用され、また大域 レジスタ16にアクセスする時にはゼロでなければならない。この方法により生 成されるアドレスにより、オペレーティングシステムが何か特定のプロセッサを 割当てる大域レジスタのセットにアクセスすることが可能になる。すべてのプロ セッサ10は、プロセッサの適用業務および利用可能性により、大域レジスタ1 6の特定の1セツトまたは異なる複数のセットに割当てられることが出来よう。
図7の対応づけに示すように、プロセッサ手段10の論理は論理アドレス710 をNRCA手段46で使用する物理的アドレス720に再アレンジすることが理 ゛解できよう。720のビット位置13の2進値を規定するアドレス値は大域レ ジスタ16よりもむしろ、5ETNレジスタをアドレス指定することに注意を要 する。
l0C24もまた大域レジスタ演算を実行できる。オペレーティングシステムは パラメータパッシング、割込み処理、同期および入出力制御に使用されるいかな る数の大域レジスタセブトをもそれ自身確保している。好ましい実施例では、各 種10C24に附加される周辺装置はオペレーティングシステムソフトウェアの 一部を含んでおり、すべてのクラスタ40内の大域レジスタ16のすべてにアク セス可能である。
補遺 A グループ1:大域レジスタ gレジスタのアドレスは次式で計算さ れる。
GOFFSET+ (GMASKおよび(GBASE+j)) 10、、addg sk g[nコ (sk)Igをgに転送11 、addg  Q g[nl qlgをgに転送12 、 set sk g[nl (sk )Igをgに転送13、set q g[nl glgをgに転送14 、cl ear sk g[nl 〜(sk)およびgをgに転送ユ6 、move s k g[nl (sk)をgに転送17・ ■oveq g[nl qをgに転 送18 、 faa sk gin]、sl gを51に転送、 (sk)Ig をgに転送 19 、faa q g[nl、si gをsjニ転送、qlgをgに転送 l a 、tas sk g[:nl、si gをslに転送、(sk)Igを gに転送 1 b 、tas Q g[nl、sl gをslに転送、qlgをgに転送 1 c 、f’ca sk g[nl、si gを81に転送、もし合計が正な らgにskを加算 1 d 、fca q g[nl、si gを81に転送、もし合計が正ならg l:skを加算 1 e 、5vap sk g[nコ、si gを81に転送、skをgに転送 1 f 、glove g[nl、si gを81に転送ADDG sg[nl  10 XX nn kk大域レジスタに加算 アセンブリ構文法 addg sk g[nlただしnは符号なし8ビツト 数 保留発行条件 確保されたsk スカラー記憶装置書込みポー ト利用不可 機能 (sk)を大域レジスタに加算し、結果を大域レジスタに残す。
修正される大域レジスタはレ ジスタGOFFSET+ (G MASKおよび(GBASE 十j))である。合計からの けた上げはすべて無視される。
終了までの時間 サイクル数未定 例外 なし コメント GBASE+jおよびGOFFSET+マスクされた(G BASE+j)からのけた上 げは無視される。すなわち、 gレジスタ数は4クラスター システムのgレジスタの数の モジュロであるとする。
ADDG Q G[nl 11 XX nn qQ大域レジスタに加算 アセンブリ構文法 addg q g[nlただしqは符号つき8ビツト リテラル定数で、nは符号な し8ビツト数である。
保留発行条件 スカラー記憶装置書込みポート利用不可 機能 qを大域レジスタに加算し、 結果を大域レジスタに残す。
修正される大域レジスタはG OFFSET+ (GMASK および(GBASE+j)) である。合計からのけた上げ はすべて無視される。
終了までの時間 サイクル数未定 例外 なし コメント GBASE+jお、J:CFGOFFSET+マスクされた(G BASE+j)からのけた上 げは無視される。すなわちg レジスタ数は4クラスタシス テムのgレジスタ数のモジュ ロであるとする。
SET sg[n コ 12 xx no kk大域レジスタにビットをセット アセンブリ構文法 set skg[nlただしnは符号なし8ビツト 数 保留発行条件 確保されたSK スカラー記憶装置書込みポー ト利用不可 機能 skの内容と大域レジスタと の論理和をとり、結果を大域 レジスタに残す。修正される 大域レジスタはレジスタG。
FF5ET+ (GMASKお よび(GBASE+j))で ある。
終了までの時間 サイクル数未定 例外 なし コメント GBASE+jおよびGOFFSET+マスクされた(G BASE+1)からのけた上 げは無視される。すなわち、 gレジスタ数は4クラスタシ ステムのgレジスタの数のモ ジュロであるとする。
SET Qg [nl 13 XX nn qq大域レジスタにリテラルピット をセットアセンブリ構文法 set qg[H]ただしqは符号つき8ビツト リテラル定数でnは符号なし 8ビツト数である。
保留発行条件 スカラー記憶装置書込みポート利用不可 機能 skの内容と大域レジスタと の論理和をとり、結果を大域 レジスタに残す。修正される 大域レジスタはレジスタGO FFSET+ (GMASKお よび(GBASE+j))で ある。
終了までの時間 サイクル数未定 例外 なし コメント G B A S E + jおよびGOFFSET+マスクされた( G BASE+j)からのけた上 げは無視される。すなわち、 gレジスタ数は4クラスタシ ステムのgレジスタ数のモジ ュロであるとする。
CLEARsg[nl 14 xx nn kk大域レジスタにビットをクリア アセンブリ構文法 clear skg[nlただしnは符号なし8ビツト 数 保留発行条件 確保されたsk スカラー記憶装置書込みボー ト利用不可 機能 skの内容と大域レジスタと の論理積をとり、結果を大域 レジスタに残す。すなわち、 skの各ピットセットにより、 そのビットが大域レジスタで クリアされる。修正される大 城レジスタはレジスタGOF FSET+ CGMA−8Kおよ び(GBASE+ j))であ る。
終了までの時間 サイクル数未定 例外 なし コメント GBASE+jおよびGOFFSET+マスクされた(G BASE+j)からのけた上 げは無視される。すなわち、 gレジスタ数は4クラスタシ ステムのgレジスタ数のモジ ュロであるとする。
CLEARqg[nl 15 xx on qq大域レジスタのリテラルピット をクリアアセンブリ構文法 clear qg[nlただしqは符号なし8ビツ ト リテラル数であり、nは符号 なし8ビツト数 保留発行条件 スカラー記憶装置書込みボート利用不可 機能 skの補数と大域レジスタと の論理積をとり、結果を大域 レジスタに残す。すなわち、 リテラル定数の各ピットセラ トにより、大域レジスタの対 応ビットはクリアされる。修 正される大域レジスタはレジ スタGOFFSET+ (GM ASKおよび(GBASE+ j))である。
終了までの時間 サイクル数未定 例外 なし コメント GBASE+jおよびGOFFSET+マスクされた(G BASE+j)からのけた上 げは無視される。すなわち、 gレジスタ数は4クラスタシ ステムのgレジスタ数のモジ ュロであるとする。
MOVE sg [nl 16 xx nn kk大域レジスタに8を転送 アセンブリ構文法 move sk g [nlただしnは符号なし8ビツト 数 保留発行条件 確保されたsk スカラー記憶装置書込みボー ト利用不可 機能 レジスタskの内容を大域レ ジスタGOFFSET+ (G MASKおよび(GBASE +j))に転送 終了までの時間 別の命令がどれが同一大域レジスタを読取りまたは修正す るかを出すことがある。1サ イクル 例外 なし コメント GBASE+jおよびGOFFSET+マスクされた(G BASE+j)からのけた上 げは無視される。すなわち、 gレジスタ数は4クラスタシ ステムのgレジスタ数のモジ ュロであるとする。
MOVE qg [nl 17 xx nn qq大域レジスタにリテラル定数 を転送 アセンブリ構文法 move qg [nlただしqは符号つき8ビツト リテラル数であり、nは符号 なし8ビツト数 保留発行条件 確保されたsk スカラー記憶装置書込みボー ト利用不可 機能 リテラル定数qを大域レジス タGOFFSET+ (GMA SKおよび(GBASE+j) )に転送 終了までの時間 別の命令がどれか同一大域レジスタを読取りまたは修正す るかを指示することがある。
1サイクル 例外 なし コメント GBASE+jおよびGOFFSET+マスクされた(G BASE+j)からのけた上 げは無視される。すなわち、 gレジスタ数は4クラスタシ ステムのgレジスタ数のモジ ュロであるとする。
FAA sg [nl、s 18 11 nn kkSを取り出し、大域レジス タと加算 アセンブリ構文法 faa skg [nl、siただしnは符号なし8ビツト 数 保留発行条件 確保されたsiまたはskスカラー記憶装置読取りまた は書込みボート利用不可 機能 アドレス指定された大域レジ スタの内容をsiに転送する。
レジスタskの内容を入城レ ジスタと加算し、結果を大域 レジスタに残す。使用される 大域レジスタはレジスタGO FFSET+ (GMASKお よび(GBASE+j))で ある。
終了までの時間 サイクル数未定 例外 なし コメント GBASE+jおよびGOFFSET+マスクされた(G BASE+j)からのけた上 げは無視される。すなわち、 gレジスタ数は4クラスタシ ステムのgレジスタ数のモジ ュロであるとする。
FAA qg[nl、s 19 11 nn QQリテラル数を取り出し、大域 レジスタに加算アセンブリ構文法 faa qg [nl、siただしqは符号 つき8ビツト リテラル数であり、nは符号 なし8ビツト数 保留発行条件 確保されたst スカラー記憶装置読取りまた は書込みボート利用不可 機能 アドレス指定された大域レジ スタの内容をsiに転送する。
リテラル定数を大域レジスタ に加算し、結果を大域レジス タに残す。使用される入城レ ジスタはレジスタGOFFS ET+ (GMASKおよび (GMASK+j))である。
終了までの時間 サイクル数未定 例外 なし コメント GBASE+jおよび(GBASE+j)からのけた上げ は無視される。すなわち、g レジスタ数は4クラスタシス テムのgレジスタ数のモジュ ロであるとする。
TAS sg [nl、s la 11 nn kk大域レジスタでSをテスト しセット アセンブリ構文法 、 tas skg [nl、siただしnは符号なし8ビ ツト 数 保留発行条件 確保されたsiまたはskスカラー記憶装置読取りまた は書込みボート利用不可 機能 アドレス指定された大域レジ スタの内容をsiに転送する。
skの内容を大域レジスタと 論理和をとり、結果を入城レ ジスタに残す。使用される大 城レジスタはレジスタGOF FSET+ (GMASKおよ び(GBASE+j))であ る。
終了までの時間 サイクル数未定 例外 なし コメント GBASE+jおよびGOFFSET+マスクされた(G BASE+j)からのけた上 げは無視される。すなわち、 gレジスタ数は4クラスタシ ステムのgレジスタ数のモジ ュロであるとする。
TAS qg [nl 、s lb it nn QQ大域レジスタでリテラル 定数をテストしセットアセンブリ構文法 tas qg [nl、siただしq は符号つき8ビツト リテラル定数であり、nは符 号なし8ビツト数 保留発行条件 確保されたsi ミスカラー憶装置読込みまた は書出しボート利用不可 機能 アドレス指定された大域レジ スタの内容を81に転送する。
skの内容を大域レジスタと 論理和をとり、その結果を大 城レジスタに残す。使用する 大域レジスタはレジスタGO FFSET+ (GMASKお よび(GBASE+j))で ある。
終了までの時間 サイクル数未定 例外 なし コメント GBASE+jおよびGOFFSET+マスクされた(G BASE+j)からのけた上 げは無視される。すなわち、 gレジスタ数は4クラスタシ ステムのgレジスタ数のモジ ュロであるとする。
FCA sg [nl、s lc il nn kk゛大城大域スタでSを取出 し、条件つき加算アセンブリ構文法 fta skg[nコ、siただしnは符 号なし8ビツト 数 保留発行条件 確保されたsLまたばskスカラー記憶装置読取りまた は書込みボート利用不可 機能 アドレス指定された大域レジ スタの内容をsiに転送する。
siの内容と大域レジスタと 論理和をとり、結果を入城レ ジスタに残す。使用される大 城レジスタはレジスタGOF FSET+ (GMASKおよ び(GBASE+j))であ る。
終了までの時間 サイクル数未定 例外 なし コメント GBASE+jおよびGOFFSET+マスクされた(G BASE+j)からのけた上 げは無視される。すなわち、 gレジスタ数は4クラスタシ ステムのgレジスタ数のモジ エコであるとする。
FCA qg [nl、s ld if nn qqリテラル定数を取り出し、 大域レジスタに条件つき加算アセンブリ構文法 ’Ca Qg [nl、siた だし、qは符号つき8ビツ トリチラル数であり、nは符 号なし8ビツト数 保留発行条件 確保されたsi ミスカラー憶装置読取りまた は書込みボート利用不可 機能 アドレス指定された大域レジ スタの内容をsfに転送する。
リテラル定数を大域レジスタ に加算する。その合計が≧0 の時のみ、合計値を大域レジ スタに置く。使用する入城レ ジスタはレジスタGOFFS ET+ (GMASKおよび (GBASE+ j))である。
終了までの時間 サイクル数未定 例外 なし コメント GBASE十jおよびGOFFSET+マスクされたCG sASE+j)からのけた上 げは無視される。すなわち、 gレジスタ数は4クラスタの gレジスタ数のモジユロであ るとする。
5WAP g [n] s le if nn kk大域レジスタとスカラーレ ジスターの内容を交換アセンブリ構文法 swap skg[n] + s i 保留発行条件 確保されたsiまたはskスカラー記憶装置読取りまた は書込みポート利用不可 機能 アドレス指定された大域レジ スタの内容をsiに転送する。
アドレス指定される大域レジ スタはレジスタGOFFSE T+ (GMASKおよび(G BASE+j))である。S kの内容をアドレス指定され た大域レジスタに転送する。
終了までの時間 サイクル数未定 例外 なし コメント GBASE+jおよびGOFFSET+マスクされた(G BASE+j)からのけた上 げは無視される。すなわち、 gレジスタ数は4クラスタシ ステムのgレジスタ数のモジ ュロであるとする。
MOVE g[n コ s 1 t 11 nn xx大大域ジスタをSに転送 アセンブリ構文法 move g [nコ、siただしnは符号なし8ビツト 数 保留発行条件 確保されたsi ミスカラー憶装置読取りポー ト利用不可 機能 アドレス指定された大域レジ スタの内容をsiに転送する。
読取られる大域レジスタはレ ジスタGOFFSET+ (G MASKおよび(GBASE 終了までの時間 サイクル数未定 例外 なし コメント GBASE+jおよびGOFFSET+マスクされた(G BASE+j)からのけた上 げは無視される。すなわち、 gレジスタ数は4クラスタシ ステムのgレジスタ数のモジ ュロであるとする。
以上に好ましい実施例の説明をしたが、本発明の精神から逸脱することなしに各 種の変更が可能であると考えられる。従って、本発明の範囲は好ましい実施例の 説明よりも、むしろ特許請求の範囲に述べられるというのが趣旨である。
Fig、 1 FYg、 2a F鷺4 7.1 Fig、 6 7°Dで7Yチ5ハ1!7ドムス Fig、 7b h江8 要 約 書 多重プロセッサシステム用大域プロセッサ(16)が、大域レジスタ(16)の 分離されたセットの同時演算用に多重並列アクセスバスを支援しており、大域レ ジスタの各セットは大域レジスタファイル(400)として参照されている。大 域レジスタ(16)と関連する調停機構が、単一の大域レジスタファイル(40 0)に対する多重、同時要求を解決するために使用される。算術論理演算装置( ALU)(460)もまた、原子算術演算を、大域レジスタファイル(400) のいかなる大域レジスタに対しても全レジスタ値で実行可能にするために、各大 域レジスタファイル(400)と関連せしめられている。
国際調査報告

Claims (16)

    【特許請求の範囲】
  1. 1.多重プロセッサ用大域レジスタのセットであって、 多数の大域レジスタファイルにおいて、その各々の大域レジスタファイルが大域 レジスタの唯一の1セット用データおよびアドレスを記憶し、操作するための複 数のレジスタ手段を含むことを特徴とする多数の大域レジスタファイルと、 多数のアクセスパス手段であって、多重プロセッサシステムの複数の要求元から の大域レジスタヘのおよび大域レジスタからのアドレス、コマンドおよびデータ から成る要求を転送するために、大域レジスタファイルに動作可能に連結された 多数のアクセスパス手段と、多数のスイッチ手段であって、要求に含まれるコマ ンドおよびアドレスに応答する大域レジスタファイル内の選択された大域レジス タファイルおよびレジスタ手段に、アクセスパス手段から要求を経路指定するア クセスパス手段と大域レジスタファイルを動作可能に連結される多数のスイッチ 手段および、 算術論理演算装置において、大域レジスタファイルと関連するレジスタ手段に記 憶されているデータに算術論理演算を実行するために、各大域レジスタファイル に動作可能に連結される算術論理演算装置とを有することを特徴とする多重プロ セッサシステム用大域レジスタのセット。
  2. 2.請求項1記載の大域レジスタのセットであって、アクセスパス手段がさらに 大域レジタヘの要求の優先度を決定するための調停手段を有することを特徴とす る請求項1記載の大域レジスタのセット。
  3. 3.請求項1記載の大域レジスタのセットであって、算術論演算装置手段が単一 の割込みをされない読取り−修正−書込み演算の形で原子資源配分演算を実行す る能力を有することを特徴とする請求項1記載の大域レジスタのセット。
  4. 4.請求項1記載の大域レジスタのセットであって、算術論理演算装置手段が取 出しおよび条件つき加算命令を実行する能力を有することを特徴とする請求項1 記載の大域レジスタのセット。
  5. 5.請求項1記載の大域レジスタのセットであって、要求元が多数のプロセッサ および多数の外部インタフェースポートとを有することを特徴とする大域レジス タのセット。
  6. 6.請求項1記載の大域レジスタのセットであって、多重プロセッサシステムが 多数のクラスタとして組織される高度並列多重プロセッサシステムであり、各ク ラスタは、大域レジスタのセットの唯一のサブセットに動作可能に連結される多 数の外部インタフェースポートおよび多数のプロセッサより成る多数の要求元を 含み、かつ大域レジスタの各サブセットにはその大域レジスタのサブセットと関 連するクラスタ内の要求元およびクラスタ外の要求元の相方によりアクセス可能 であることを特徴とする大域レジスタのセット。
  7. 7.請求項1記載の大域レジスタのセットであって、アドレスがベースアドレス 、マスクアドレス、オフセットアドレスおよび命令フィールド値とから成ること を特徴とする大域レジスタのセット。
  8. 8.請求項7記載の大域レジスタのセットであって、多重プロセッサシステム用 オペレーティングシステムが、プロセス用オフセットアドレスおよびマスクアド レスを指定することにより、プロセスに大域レジスタを割当てることを特徴とす る大域レジスタのセット。
  9. 9.請求項1記載の大域レジスタのセットであって、アクセスパス手段がアドレ スおよびコマンドを転送するためのアドレスパイプ手段ならびにデータを転送す るためのデータパイプ手段とを有することを特徴とする大域レジスタのセット。
  10. 10.請求項1記載の大域レジスタのセットであって、大域レジスタが多重プロ セッサシステムの連続的クロックサイクルに関する要求を逐次制御する能力を有 することを特徴とする大域レジスタ。
  11. 11.多重プロセッサシステム用大域レジスタのセットであって、多重プロセッ サシステムが多数のプロセッサおよび多数のインタフェースポートを含む複数の 要求元を有し、大域レジスタのセットが、多数の大域レジスタファイルであって 、各大域レジスタファイルが大域レジスタのセットの唯一のものに対するデータ およびアドレスを記憶および操作するための複数のレジスタ手段を含みアドレス がプロセス用オフセットアドレスおよびマスクアドレスを指定することによって プロセスに大域レジスタを割当てる方法によるベースアドレス、マスクアドレス 、オフセットアドレスおよび命令フィールド値を有する多数の大域レジスタファ イルと、 多数のアクセスパス手段であって、多重プロセッサシステムの要求元からの大域 レジスタファイルヘの、および大域レジスタからの、アドレス、コマンドおよび データを含む要求を転送するための大域レジスタファイルに動作可能に連結され ており、 大域レジスタヘの要求の優先度を決定するための調停手段と、 アドレスおよびコマンドを転送するためのアドレスパイプ手段と、 データを転送するためのデータパイプ手段とを含む多数のアクセスパス手段と、 多数のスイッチ手段であって、要求に含まれるコマンドおよびアドレスに応答し て大域レジスタファイル内の選択された大域レジスタファイルおよびレジスタ手 段へのアクセスパス手段からの要求を経路指定するためのアクセスパス手段およ び大域レジスタファイルとに動作可能に連結される多数のスイッチ手段と、算術 論理演算装置手段であって、大域レジスタファイルと関連するレジスタ手段に記 憶されているデータに、単一の割込みのない読取り−修正−書込み演算の形式で の原子資源配分演算を含む算術論理演算を実行するために各大域レジスタファイ ルに動作可能に連結された算術論理演算装置手段とから成る大域レジスタのセッ トであり、 大域レジスタのセットが多重プロセッサシステムの連続クロックサイクルに関す る多重並列要求を逐次制御する能力を有することを 特徴とする多重プロセッサシステム用大域レジスタのセット。
  12. 12.請求項11記載の大域レジスタのセットであって、多重プロセッサシステ ムが多数のクラスタとして組織される高度の並列多重プロセッサシステムであり 、各クラスタが大域レジスタのセットの唯一のサブセットに動作可能に連結され る多数の要求元を含み、また大域レジスタの各サブセットには大域レジスタのサ ブセットに関連するクラスタ内およびクラスタ外の要求元が共にアクセス可能で あることを特徴とする請求項11記載の大域レジスタのセット。
  13. 13.高度の並列コンピュータ処理システムであって、 Cが2以上かつ256以下の整数の場合に於て、互いに動作可能に連結されるC 個の多重プロセッサクラスタにおいて、各多重プロセッサクラスタが、データお よび制御情報を記憶し検索するための共有資源手段と、 Pが2以上かつ256以下の整数の場合に於て、データおよび制御情報のコンピ ュータ処理を実行するためのP個のプロセッサ手段と、 Qが2以上かつ256以下の整数の場合に於て共用資源手段と複数の外部データ 資源間でデータおよび制御情報を転送するためのQ個の外部インタフェース手段 と、Zが1以上かつ128以下の整数であり、かつZに対するPの比率が2より 大または2に等しい場合に於て、共用資源手段と外部インタフェース手段および プロセッサ手段とを対称的に相互連結するための共用資源手段およびプロセッサ 手段と、外部インタフェース手段とに動作可能に連結されるZ個の調停ノード手 段と、遠隔クラスタアダプタ手段であって、多重プロセッサクラスタの調停ノー ド手段が他のすべての多重プロセッサクラスタの共用資源手段にアクセスするこ とを可能にし、また他のすべての多重プロセッサクラスタがその多重プロセッサ クラスタの共用資源手段にアクセスすることを可能にするために、他のすべての 多重プロセッサクラスタの遠隔クラスタアダプタに動作可能に連結された遠隔ク ラスタアダプタとを有し、 共用資源手段が、多重プロセッサクラスタの外部インタフェース手段およびプロ セッサ手段が直接アクセス可能であり、かつ遠隔クラスタアダプタ手段を通して 他のすべての多重クラスタの外部インタフェース手段およびプロセッサがアクセ ス可能である唯一の大域レジスタのセットとを含むC個の多重プロセッサから成 ることを特徴とする高度の並列コンピュータ処理システム。
  14. 14.請求項13記載の高度の並列コンピュータ処理システムであって、大域レ ジスタの各セットが、多数の大域レジスタファイルであって、各大域レジスタフ ァイルが、大域レジスタのセットの唯一の大域レジスタ用データおよびアドレス を記憶し、操作するための複数のレジスタ手段を含む複数の大域レジスタファイ ルと、 多数のアクセスパス手段において、プロセッサ手段および外部インタフェース手 段から大域レジスタヘのおよび大域レジスタからのデータ、コマンド、およびア ドレスからなる要求を転送するために大域データファイルに動作可能に連結され る多数のアクセスパス手段と、多数のスイッチ手段であって、要求に含まれるコ マンドおよびアドレスに応答して大域レジスタファイル内の選択された大域レジ スタファイルおよびレジスタ手段にアクセスパス手段からの要求を経路指定する ために、アクセスパス手段と大域レジスタファイルを動作可能に接合される多数 のスイッチ手段と、 算術論理演算装置手段であって、大域レジスタファイルと関連するレジスタ手段 に記憶されるデータに算術論理演算を実行するために各大域レジスタファイルに 動作可能に連結される算術論理演算装置とを有することを特徴とする請求項13 記載の高度の並列コンピュータ処理システム。
  15. 15.高度の並列コンピュータ処理システム用多重プロセッサクラスタであって 、多重プロセッサクラスタが高度の並列コンピュータ処理システムの他の類似の 多重プロセッサクラスタとの連結に適合しており、多重プロセッサクラスタが データおよび制御情報を記憶し、検索するための共用資源手段と、 Pが2以上かつ256以下の整数の場合に於て、データおよび制御情報のコンピ ュータ処理を実行するためのP個のプロセッサ手段と、 Qが2以上かつ256以下の整数の場合に於て、共用資源手段および複数の外部 データ源泉間でデータおよび制御情報を転送するためのQ個のインタフェース手 段と、Zが2以上かつ128以下の整数であり、またZに対するPの比率が2よ り大または2に等しい場合に於て、共有資源手段と、外部インタフェース手段お よびプロセッサ手段を対称的にインタフェースするための共用資源手段と、外部 インタフェース手段およびプロセッサ手段とに動作可能に連結されるZ個の調停 ノード手段とから成り、 共用資源手段が、多重プロセッサクラスタの外部インタフェース手段およびプロ セッサ手段とが直接アクセス可能であり、また他のすべての多重プロセッサクラ スタがアクセス可能な唯一の大域レジスタのセットを含むことを特徴とする高度 の並列コンピュータ処理システム用多重プロセッサクラスタ。
  16. 16.請求項15記載の高度の並列コンピュータ処理システム用の多重プロセッ サクラスタにおいて、大域レジスタの各セットが、 複数の大域レジスタファイルであって、各大域レジスタが大域レジスタの前記セ ットの唯一の大域レジスタ用のアドレスおよびデータを記憶し、操作するための 複数のレジスタ手段を含む多数の大域レジスタファイルと、多数のアクセスパス 手段であって、プロセッサ手段および外部インタフェース手段とから、大域レジ スタファイルヘのおよび大域レジスタファイルからのデータ、コマンドおよびア ドレスより成る要求を転送するために大域レジスタファイルに動作可能に連結さ れた多数のアクセスパス手段と、 多数のスイッチ手段であって、要求に含まれるコマンドおよびアドレスに応答し て、大域レジスタファイル内の選択された大域レジスタファイルおよびレジスタ 手段とに、アクセスパス手段からの要求を経路指定するためにアクセスパス手段 および大域レジスタファイルとに動作可能に連結された多数のスイッチ手段と、 算術論理演算装置であって、大域レジスタファイルと関連するレジスタ手段に記 憶されるデータに対して算術論理演算を実行するために、各大域レジスタファイ ルに動作可能に連結された算術論理演算装置とを、有することを特徴とする請求 項15記載の高度の並列コンピュータ処理システム用多重プロセッサクラスタ。
JP3514236A 1990-06-11 1991-06-10 多重プロセッサ用大域レジスタ Pending JPH05508495A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/536,198 US5165038A (en) 1989-12-29 1990-06-11 Global registers for a multiprocessor system
US536,198 1990-06-11

Publications (1)

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

Family

ID=24137555

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3514236A Pending JPH05508495A (ja) 1990-06-11 1991-06-10 多重プロセッサ用大域レジスタ

Country Status (5)

Country Link
US (1) US5165038A (ja)
JP (1) JPH05508495A (ja)
AU (1) AU8424491A (ja)
TW (1) TW197502B (ja)
WO (1) WO1991020043A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5434970A (en) * 1991-02-14 1995-07-18 Cray Research, Inc. System for distributed multiprocessor communication
US5287461A (en) * 1991-10-31 1994-02-15 Sun Microsystems, Inc. Method and apparatus for remotely accessing a plurality of server consoles
JPH05282143A (ja) * 1992-03-30 1993-10-29 Nec Ibaraki Ltd 主記憶アクセス制御回路
US5428803A (en) * 1992-07-10 1995-06-27 Cray Research, Inc. Method and apparatus for a unified parallel processing architecture
US5435001A (en) * 1993-07-06 1995-07-18 Tandem Computers Incorporated Method of state determination in lock-stepped processors
US6073231A (en) * 1993-10-18 2000-06-06 Via-Cyrix, Inc. Pipelined processor with microcontrol of register translation hardware
CA2141268C (en) * 1994-01-28 1999-09-21 Masanobu Inaba High-speed synchronization communication control mechanism for multi-processor system
SG75756A1 (en) * 1994-02-28 2000-10-24 Intel Corp Method and apparatus for avoiding writeback conflicts between execution units sharing a common writeback path
JP3169779B2 (ja) * 1994-12-19 2001-05-28 日本電気株式会社 マルチスレッドプロセッサ
US5555543A (en) * 1995-01-03 1996-09-10 International Business Machines Corporation Crossbar switch apparatus and protocol
JP2766216B2 (ja) * 1995-05-08 1998-06-18 甲府日本電気株式会社 情報処理装置
JP2731761B2 (ja) * 1995-08-29 1998-03-25 甲府日本電気株式会社 ネットワーク制御装置
US6298479B1 (en) * 1998-05-29 2001-10-02 Sun Microsystems, Inc. Method and system for compiling and linking source files
US20020032901A1 (en) * 1998-05-29 2002-03-14 Sun Microsystems Inc Unitary data structure systems, methods, and computer program products, for global conflict determination
US20040030873A1 (en) * 1998-10-22 2004-02-12 Kyoung Park Single chip multiprocessing microprocessor having synchronization register file
JP3721283B2 (ja) * 1999-06-03 2005-11-30 株式会社日立製作所 主記憶共有型マルチプロセッサシステム
US20040128475A1 (en) * 2002-12-31 2004-07-01 Gad Sheaffer Widely accessible processor register file and method for use
US20040268143A1 (en) * 2003-06-30 2004-12-30 Poisner David I. Trusted input for mobile platform transactions
US7246218B2 (en) * 2004-11-01 2007-07-17 Via Technologies, Inc. Systems for increasing register addressing space in instruction-width limited processors
KR100806274B1 (ko) * 2005-12-06 2008-02-22 한국전자통신연구원 멀티 쓰레디드 프로세서 기반의 병렬 시스템을 위한 적응형실행 방법
KR100663709B1 (ko) * 2005-12-28 2007-01-03 삼성전자주식회사 재구성 아키텍처에서의 예외 처리 방법 및 장치
US10423415B2 (en) 2017-04-01 2019-09-24 Intel Corporation Hierarchical general register file (GRF) for execution block

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3308436A (en) * 1963-08-05 1967-03-07 Westinghouse Electric Corp Parallel computer system control
US3970993A (en) * 1974-01-02 1976-07-20 Hughes Aircraft Company Cooperative-word linear array parallel processor
US4015243A (en) * 1975-06-02 1977-03-29 Kurpanek Horst G Multi-processing computer system
US4240143A (en) * 1978-12-22 1980-12-16 Burroughs Corporation Hierarchical multi-processor network for memory sharing
US4523273A (en) * 1982-12-23 1985-06-11 Purdue Research Foundation Extra stage cube
US4814980A (en) * 1986-04-01 1989-03-21 California Institute Of Technology Concurrent hypercube system with improved message passing
US4924380A (en) * 1988-06-20 1990-05-08 Modular Computer Systems, Inc. (Florida Corporation) Dual rotating priority arbitration method for a multiprocessor memory bus

Also Published As

Publication number Publication date
US5165038A (en) 1992-11-17
AU8424491A (en) 1992-01-07
WO1991020043A1 (en) 1991-12-26
TW197502B (ja) 1993-01-01

Similar Documents

Publication Publication Date Title
JPH05508495A (ja) 多重プロセッサ用大域レジスタ
US5434970A (en) System for distributed multiprocessor communication
US5561784A (en) Interleaved memory access system having variable-sized segments logical address spaces and means for dividing/mapping physical address into higher and lower order addresses
US5758176A (en) Method and system for providing a single-instruction, multiple-data execution unit for performing single-instruction, multiple-data operations within a superscalar data processing system
JP3461704B2 (ja) 条件コードを使用する命令処理システムおよびコンピュータ
US4760518A (en) Bi-directional databus system for supporting superposition of vector and scalar operations in a computer
US5513366A (en) Method and system for dynamically reconfiguring a register file in a vector processor
US4968977A (en) Modular crossbar interconnection metwork for data transactions between system units in a multi-processor system
US5056000A (en) Synchronized parallel processing with shared memory
US5740402A (en) Conflict resolution in interleaved memory systems with multiple parallel accesses
WO1994003860A1 (en) Massively parallel computer including auxiliary vector processor
JP2501419B2 (ja) 多重プロセッサメモリシステム及びメモリ参照競合解決方法
EP0211614A2 (en) Loop control mechanism for a scientific processor
EP0553158B1 (en) A scalable parallel vector computer system
JPH05508497A (ja) 非順次源アクセスのための方法およびその装置
US5247637A (en) Method and apparatus for sharing memory in a multiprocessor system
US5524255A (en) Method and apparatus for accessing global registers in a multiprocessor system
EP0797803B1 (en) Chunk chaining for a vector processor
JP2602241B2 (ja) 並列計算機
Aude et al. The MULTIPLUS/MULPLIX parallel processing environment
Liou Design of pipelined memory systems for decoupled architectures
JPH01243123A (ja) 情報処理装置
JPH0452986B2 (ja)
JPH05508496A (ja) 命令をロードおよびフラグする方法および装置
JP2742245B2 (ja) 並列計算機