JPH03116234A - 複数の命令ソースを有するマルチプロセッサシステム - Google Patents

複数の命令ソースを有するマルチプロセッサシステム

Info

Publication number
JPH03116234A
JPH03116234A JP2163027A JP16302790A JPH03116234A JP H03116234 A JPH03116234 A JP H03116234A JP 2163027 A JP2163027 A JP 2163027A JP 16302790 A JP16302790 A JP 16302790A JP H03116234 A JPH03116234 A JP H03116234A
Authority
JP
Japan
Prior art keywords
instruction
instructions
processing
trap
digital
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
JP2163027A
Other languages
English (en)
Inventor
Steven J Frank
スティーブン・フランク
A Roskoz John
ジョン・エイ・ロスコズ
Iii Henry Burkhardt
ヘンリー・バークハート・ザ・サード
D Beyers Brett
ブレット・ディー・バイアーズ
Frederick D Weber
フレデリック・ディー・ウェーバー
C Schnorr Peter
ピーター・シー・シュノール
Linda Q Lee
リンダ・キュー・リー
I Epstein David
デイビッド・アイ・エプスタイン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kendall Square Research Corp
Original Assignee
Kendall Square Research Corp
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 Kendall Square Research Corp filed Critical Kendall Square Research Corp
Publication of JPH03116234A publication Critical patent/JPH03116234A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3865Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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
    • 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/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • 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/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • 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/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • G06F9/3828Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage with global bypass, e.g. between pipelines, between clusters
    • 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/383Operand 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/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/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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
    • G06F9/38585Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification
    • 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/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • 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/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units

Abstract

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

Description

【発明の詳細な説明】 [関連出願] 本出願は、rMIILTIPROCESSORDIGI
TAL DATAPI?0CESSING SYSTE
M (マルチプロセッサディジタルデータプロセッシン
グシステム)」について1988年12月22日に出願
された本出願人の日本国特許出願箱63−322254
号、およびr INTERCONNECTION SY
STEM FORMULTIPROCESSORSTR
UCTURε(マルチプロセッサ構造体のための相互接
続システム)ハr1MPROVED MULTIPRO
CESSOR5YSTEM (改善されたマルチプロセ
ッサシステム)」について1988年12月12日に出
願された日本国特許出願箱63−322253号に関係
するものである。
本出願ハサラニ、rIMPROVED MIILTIP
ROCESSOR3YSTEM (改善されたマルチプ
ロセッサシステム)」について、本出願と同日に出願さ
れた本出願人の日本国特許出願箱         号
(1989年6月22日に出願された対応米国特許出願
第370.287号)にも関係する。
[発明の目的] 産業上の利用分野 本発明は一般的にはディジタルデータ処理方法および装
置に関するものであり、特に分布メモリシステムを有す
るディジタルマルチプロセッサコンピュータシステムに
関するものである。
従来の技術 マルチプロセッサコンピュータシステムは、理路整然と
相互接続され得る複数の個別の中央処理装置(CPU)
を提供する。マルチプロセッサの分野における最近の労
力は、複数のそれぞれのプロセッサが、専用のランダム
アクセスまたはキャッシュメモリユニットを装備したマ
ルチプロセッサシステムに集中されている。これら複数
のプロセッサは標準的には、共通システムバス構造体を
通じてまたは共用メモリアドレス領域内で合図を行なう
ことにより互いに通信を行なう、共通バスを利用するマ
ルチプロセッサは共用バスシステムト呼ばれ、一方、共
用メモリ領域を利用するものは共用アドレス空間システ
ムと呼ばれる。
通信障害(ボトルネック)をできるだけ最小限にするた
めに、ある分配メモリシステムが、個々の処理ユニット
を局所的なメモリ要素と結合して、半自律的なプロセッ
シングセルを形成する。
マルチプロセッシングによる利益を実現するために、こ
の種のシステムのあるものは、階層構造のアーキテクチ
ャの利用を通じてセル通信を行なう、たとえば、フラン
ク(Frank )らによる米国特許第4.622.6
31号明細書は、各々それに関連付けられた専用メモリ
ないしキャッシュを有する複数のプロセッサがある主メ
モリ要素に包含されたデータを共用しているマルチプロ
セッシングシステムを開示する。この共通メモリ内のデ
ータは複数のブロックに分割され、ブロックの各々は主
メモリおよび複数のプロセッサのいずれの一つによって
も所有されることができる。あるデータブロックの現在
の所有体はそのブロックについて適正データを有すると
いわれる。
さらに、最近になって、バスシステムを共用するマルチ
プロセッサの複数のプロセッサを相互接続する広範な種
々の方法および装置が提案ないし開発されている。
この種の共用バスマルチプロセッシングコンピュータシ
ステムの一つが、1987年2月4日に発行されたイギ
リス特許出願箱2.178.205号明細書に開示され
ており、参考にされたい。ここに開示されている装置は
、それぞれがそれ自身の専用のキャッシュメモリを有す
る複数のプロセッサを備える。システムの複数のキャッ
シュメモリは共用バス構造体を通じて互いに接続されて
いる。
発明が解決しようとする課題 ところで、従来の共用バスシステムは、高いバスの競合
の時間中に、有効な短いアクセス時間を複数プロセッサ
に提供するのに適当な帯域幅に欠ける。バスの競合を減
する目的で、種々のキャッシュ方式が提案されそして開
発されているけれども、多くのマルチプロセッサコンピ
ュータの速度および大きさがバス飽和により依然として
制限を受ける。
さらに、従来のバス構造体の処理速度はバス長さにより
制限を受ける。特に、追加のプロセッサが標準的な共用
バスシステムにおいて相互接続されるに応じて、バス長
さが増大し、信号伝送および処理動作に必要な時間も増
大する。
クロスバネットワークとして知られる別の種類の相互接
続システムが従来の共用バスシステムのある一定の制限
を回避する。しかし、クロスバネットワークにおいては
、所与の信号が取るバスは一意に特定できない。加えて
、システムコストが、相互接続されるプロセッサの数の
2乗に比例して増加する。これらの性質はクロスバネッ
トワークを一般にマルチプロセッサシステムにとって不
適当なものとする。
それゆえ、本発明の目的は、改善された処理速度を可能
にする自在な相互接続形態を有するマルチプロセッシン
グの方法および装置を提供することである。
本発明の他の目的は、高い実行速度を可能にするために
、プロセッサが別のプロセッサ資源の選択的なリクエス
トを行なうことができるディジタルマルチプロセッサの
方法および装置を提供することである。
本発明のさらに別の目的は、各プロセッサが、複数のソ
ースからの命令を実行でき、それにより、バストランザ
クションの効率および実行の並行化が改善されるこの種
のマルチプロセッサ方法および装置を提供することであ
る。
課題を解決するための手段 上述の目的は、第1の命令ソース(源)からの命令を包
含する命令のストリームを標準的に処理するため第1の
プロセッサを備えて構成される一組の相互接続されたプ
ロセッサを含むディジタルプロセッシングの方法および
装置を提供する本発明により達成される。複数のプロセ
ッサのうちの少なくとも一つは、第1の命令ソースから
の命令の実行順序に影響を与えることなく、この命令と
同様の態様で第1のプロセッサにより実行可能な一つま
たはそれ以上の被挿入命令を挿入するための挿入要素を
備える。第1の命令ソースはメモリ要素とすることがで
き、これは、命令およびプロダラムのステップを表わす
ディジタル値を格納する命令キャッシュ要素または命令
が命令キャッシュ要素から実行ユニット(CEU)へ伝
送されるようにするために命令キャッシュ要素へ合図を
行うための要素を備える実行ユニットを備えることがで
きる。
本発明はプロセッサを相互接続しそして命令を運ぶ命令
パイプラインを備えることができる。挿入要素は被挿入
命令を命令バイブラインへ挿入できる。
被挿入命令は第1の命令ソースからの命令と同様のフォ
ーマットを有することができ、選択されるアドレス信号
を記述する第1組のディジタル命令ビットと、選択され
るコマンド信号を記述する第2組のディジタル命令ビッ
トとを包含する。このフォーマットを有する被挿入命令
には命令キャッシュ要素により挿入されるキャッシュ管
理命令が含まれる。
プロセッサは、周辺装置から受信されそして周辺装置へ
伝送される信号を取り扱うため入出力(Ilo)プロセ
ッサを含むことができる。これらの入出カプロセッサは
、第1の命令ソースからの命令の処理順序に影響を与え
ることなくこの命令と同様の態様で第1のプロセッサに
より処理されるダイレクトメモリアクセス(DMA)命
令を挿入するために、周辺装置からの選択された信号に
応答するダイレクトメモリアクセス挿入要素を合体でき
る。入出カプロセッサは、周辺装置から受信されそして
周辺装置へ伝送される信号を制御するための周辺インタ
ーフェースユニット(X I U) 、ディスプレイ装
置へ伝送される信号を制御するためのグラフィックスコ
ントローラおよびテキストを表示するデータ構造体を検
索(サーチ)するためのテキスト検索要素を備えること
ができる。
選択されるプロセッサはさらにデータを表示するディジ
タル値を格納するためのレジスタ要素を備えることがで
きる。本発明のこの様相において、挿入要素は、選択さ
れるプロセッサに関連付けられたレジスタ要素へのそし
てレジスタ要素からのデータの移動を制御するために、
被挿入命令を主張できる。
被挿入命令は、レジスタ要素に格納されたディジタル値
に基づき選択される論理操作の実行が生ずるように構成
できる。
さらに、プロセッサは、付与されたトラップ信号に応答
してトラップシーケンスを起動するトラップ要素を包含
できる。挿入要素は、トラップ信号を発生するために、
発生される被挿入命令のための要素を包含できそして結
果的に生ずるトラップシーケンスは一組の選択されるプ
ログラムステップのいずれをも包含できる。プロセッサ
はさらに、割り込みシーケンスを起動するために、割り
込み信号に応答する割り込み要素を備えることができる
。この割り込みシーケンスは、トラップシーケンスに似
て、一組の選択されるプログラムステップのうちのいず
れをも包含できる0本発明のこの態様において、挿入要
素は、割り込みシーケンスを起動しまたは割り込み信号
に応答してトラップ信号を発生するようになされた被挿
入命令を発生するための要素を合体できる。
図示の実施例の説明 第1図は、本発明の一つの実施との関係で利用できるマ
ルチプロセッサ構造体10を図示する。
この種のある構造体が、マルチプロセッサディジタルデ
ータプロセッシングシステムに関し、1987年12月
22日に出願された共通所有の米国特許出願第136,
930号に開示されており、参考にされたい。図示のマ
ルチプロセッサ構造体は例として示されたものでありそ
して後述する本発明は、ディジタルプロセッシング構造
体および第1図に図示されたシステムとは別のシステム
と関係して有利に実施できる。
図示のマルチプロセッサ構造体10は、3つの情報移動
領域、ドメイン(DOMAIN) (0) 、 ドメイ
ン(1)およびドメイン(2)を備える。各情報移動領
域は、バス要素と複数のセルインターフェース要素とに
よって特長付けられる一つまたはそれ以上のドメインセ
グメントを備える。特に、図示のシステム!0のドメイ
ン(0)は、それぞれ12A、 12B、12C112
0,12εおよび12Fによって指示される6つのセグ
メントを備える。同様に、ドメイン(1)はセグメント
+4Aおよび14Bを備え、ドメイン(2)はセグメン
ト16を備える。
ドメイン(0)の各セグメント、すなわちセグメント1
2A、 12B、・・・12Fは、複数のプロセッシン
グセルを備える。たとえば、図示されているように、セ
グメント12Aはセル18A、18Bおよび18Cをそ
してセグメント12Bはセル180.18Eおよび18
Fを(以下同様)備える。これらのセルの各々は細胞内
ないし区分内(intracellular)プロセッ
サバス(図示せず)に沿って相互接続されたメモリ要素
と中央処理装置とを備える。本発明の好ましい実施に従
えば、各セルに包含されたメモリ要素は、その関連の中
央処理装置が使用するすべての制御およびデータ信号を
格納する。
図示されているように、ドメイン(0)の各セグメント
は、セグメントのセル間で情報表示信号を伝送するため
の通信路を提供するバス要素を有するものとして特長付
けることができる。こうして、図示のセグメント12A
はバス2OAにより、セグメント12Bはバス20Bに
より、セグメント12Cはバス20C(以下同様)によ
り特長付けられる。1987年12月22日に出願され
た共通所有の米国特許出願第136,930号明細書に
詳述されているように、情報表示信号は、例えばセグメ
ント12Aのセル18A、18Bおよび18C間をこれ
らのセルの各々に関連付けられたメモリ要素を経て送ら
れる。これらメモリ要素とバス2OAとの間の特定のイ
ンターフェースが図示のようにセルインターフェースユ
ニット22A、22Bおよび22Cにより提供される。
同様な直接通信路が、図示のように、セグメント12B
、12Cおよび12Dにおいて、それらセグメントのそ
れぞれのセル18D、18E、・・・18P間でセルイ
ンターフェースユニット22D、22E、・・・22R
により確立されている。
図示されるようにそして上述したように、残りの情報移
動領域、すなわちドメイン(1)およびドメイン(2)
は、各々一つまたはそれ以上の対応したドメインセグメ
ントを有する。それぞれの連続したドメインにおけるセ
グメント数は先行するもののセグメント数よりも小さい
、こうして、ドメイン(1)の2つのセグメント14A
および14Bの数はドメイン(0)の6つのセグメント
12A、12B、・・・12Fの数よりも少なく、セグ
メント16のみ有するドメイン(2)がすべての中で最
も少ないセグメントを有する。ドメイン(1)のセグメ
ントおよびより「高次」のドメインであるドメイン(2
)のセグメントの各々は、それぞれのセグメント内で情
報表示信号を伝送するためのバス要素を備久る0図示の
ように、ドメイン(1)のセグメント14Aおよび14
Bはそれぞれバス要素24Aおよび24Bを備え、ドメ
イン(2)のセグメント16はバス要素26を備える。
セグメントのバスは、各セグメントの構成要素間すなわ
ちセグメントの複数のドメイン経路要素間で情報を移動
するのに供される。経路要素自身は、連続したドメイン
の関連付けられたセグメント間での情報移動のための機
構を提供する。たとえば経路要素28A、28B、28
Cは、たとえばそれぞれ、ドメイン(1)のセグメント
14Aからドメイン(0)のセグメント12A、12B
、12Cへのそしてその逆の情報移動のための手段を提
供する。同様に、経路要素28D、28E、28Fはそ
れぞれ、ドメイン(1)のセグメント14Bからドメイ
ン(0)のセグメント120.12E% 12Fへのそ
してその逆の情報移動のための手段を提供する。さらに
、図示のように、ドメイン経路要素30Aおよび30B
は、ドメイン(2)のセグメント16とドメイン(1)
のセグメント14Aおよび14Bとの間に情報移動路を
提供する。
ドメイン経路要素は、バス要素での相互接続部を通じて
それらの各セグメントのインターフェースを行う、こう
して、ドメイン経路要素は28Aは、セルインターフェ
ースユニット32Aおよび34Aで、それぞれバス要素
2OAおよび24Aをインターフェースし、ドメイン経
路要素は28Bは、セルインターフェースユニット32
Bおよび34Bで、それぞれバス要素20Bおよび24
Bをインターフェースする(以下同様である)、同様に
、ドメイン経路要素は30Aおよび30Bは、図示のよ
うに、セルインターフェースユニット36A、36B、
38Aおよび38Bで、それらのそれぞれのバス要素2
4A、24Bおよび26をインターフェースする。
第1図は、さらに、本発明により構成されたディジタル
データプロセッシングシステムの遠隔のドメインおよび
セルの相互接続を行う好ましい機構を図示している。バ
スセグメント20Fから物理的に遠隔の場所にあるセル
18Rが、破線で示されたファイバオブチック伝送線を
通じて、そのバスとそれに関連付けられたセル(18P
および180)に結合できる。リモートインターフェー
スユニット(RIC)19がセルインターフェース22
Rと遠隔のセル18Rと−の間に物理的なインターフェ
ースを提供する。遠隔セル18Rは、他の図示のセルと
同様に構成および動作せられ、ファイバオブチックリン
ク部材をその遠隔の端部で結合するためにリモートイン
ターフェースユニットを備える。
同様の態様で、ドメインセグメント12Fと14Bとが
それらの親セグメントからのファイバオブチックリンク
部材を通じて相互接続できる。
前述のように、それぞれのドメイン経路ユニット28F
および30Bは、それぞれ2つの遠隔結合部品を備える
。たとえば、ドメイン経路ユニット28Fについて、第
1の部品が、標準的なバス相互接続を通じてセグメント
14Bのセルインターフェースユニット34Fと直接に
リンク結合され、第2の部品が、セグメント12Fのセ
ルインターフェースユニット32Fと直接にリンク結合
される。同様に構成されるこれら2つの部品は破線によ
り示されるファイバオブチツクリンク部材を通じて結合
される。前述のように、ドメイン経路ユニット部品とフ
ァイバオブチック媒体との間の物理的なインターフェー
スがリモートインターフェースユニット(図示せず)に
より提供される。
第2図は、第1図のプロセッシングセル18A、18B
、・・・18Hの実施例を図示する。
図示のプロセッシングセル18Aは、それぞれプロセッ
サバス66および命令バス68を通じて、外部装置イン
ターフェース60、データサブキャッシュ62および命
令サブキャッシュ64と結合される中央処理ユニット5
8を備える。ディスク駆動装置などの外部装置との外部
装置バスを通じての通信を提供するインターフェース6
0が従来の技術態様で構成される。
プロセッサ58が、従来技術と同様の態様で、データお
よびアドレス制御ライン69Aおよび69Bを通じて作
動するサブキャッシュ共同実行ユニット(コ・エクセキ
ューションユニット、CEU)の制御のもとに、サブキ
ャッシュ62および64とのインターフェースに適合し
さらに後述のメモリ命令を実行するのに適合したたとえ
ばモトローラ社68000CPUなとの種々の商業的に
入手可能なプロセッサのいずれのプロセッサからも構成
できる。プロセッシングセルは、「マルチプロセッサデ
ィジタルデータプロセッシングシステム」に関し、19
87年12月22日に出願された共通所有の米国特許出
願筒136.930号に開示されており、参照されたい
プロセッシングセル18Aは、キャッシュ制御ユニット
74Aおよび74Bを通じてキャッシュバス76へ結合
されるデータメモリユニット72Aおよび72Bを備え
る。キャッシュ制御ユニット74Cおよび74Dは、順
次、キャッシュバス76とプロセッシングバス66およ
びデータバス68との間の結合を提供する。第2図に図
示されているように、バス78が、図示のセルに関連付
けられたドメイン(0)のバス要素2OAとキャッシュ
バス76との間の相互接続を提供する。キャッシュ制御
ユニット74A、74B、74Cおよび74Dについて
の好ましい設計が、「マルチプロセッサディジタルデー
タプロセッシングシステム」に関し、1987年12月
22日に出願された上記の米国特許出願筒136,93
0号および「改善されたマルチプロセッサシステム」に
関し、本願と同日に出願された米国特許出願筒   号
で論じられているので、参考にされたい。
好ましい実施例において、データキャッシュ72Aおよ
び72Bは、それぞれ16Mバイトのデータまで格納可
能なダイナミックランダムアクセスメモリ(DRAM)
装置を備える。サブキャッシュ62および64は、スタ
ティックランダムアクセスメモリ(SRAM)装置であ
り、前者は256にバイトのデータまでそして後者は2
56にバイトの命令情報まで格納可能である。
図示のように、キャッシュバス76およびプロセッサバ
ス64は64ビツト伝送路を提供し、命令バス68は6
4ビツト伝送路を提供する。キャッシュバス76の好ま
しい構成が、「マルチプロセッサディジタルデータプロ
セッシングシステム」に関し、1987年12月22日
に出願された上記の米国特許出願筒136.930号に
開示されており、参考にされたい。
当業者であれば、図示のCPU58は、従来の中央処理
ユニットそしてより一般的には入出力コントローラやそ
の他の特別の目的のプロセッシング要素などのメモリリ
クエスト(要求)を発行可能ないずれの装置をも表すこ
とが理解されよう。
ここに開示されるプロセッシングセルの命令実行は、種
々の重大な仕方で従来のディジタルプロセッシングシス
テムと異なる。プロセッシングセル(たとえば18A)
は、並列に命令を実行できる複数のプロセッシングセル
ないし機能ユニット(たとえば58.60)を備える。
加えて、機能ユニットは、複数の命令が、それらの命令
実行を重複することにより、同時進行可能なよう「パイ
プライン化」されている。このパイプライン動作は、「
マルチプロセッサディジタルデータプロセッシングシス
テム」に関し、1987年12月22日に出願された上
記の米国特許出願第136,930号に開示されており
、参考にされたい、LOAD、5TOPE、MOVEO
UT。
MOVB%FDIV等を含むここで議論される命令につ
いての記述が本願と同日に出願された米国特許出願第 
  号に別途見出すことができ、参考にされたい。
本発明により構成されたプロセッシングセルが、メモリ
から取り出される(フェッチ)命令シーケンスを実行す
る。実行のコンテキスト(関係)は部分的にアーキテク
チャによりそして部分的にソフトウェアにより定められ
る。実行コンテキストのアーキテクチャ部分は、コンテ
キストアドレス空間、特権レベル、一般レジスタおよび
一組のプログラムカウンタから構成できる。コンテキス
トアドレス空間および特権レベルは、命令のストリーム
がメモリ装置の何のデータを照会し得るかを決定する。
知られている工学技術の実施に従って構成された一般レ
ジスタが計算のために使用される。これらの特徴は上記
の米国特許出願第136.930号に開示されており、
参考にされたい。プログラムカウンタは、後に詳述する
ように、命令のストリームのどの部分が既に実行されそ
して何が次に実行されるかを定める。
2つの時間単位が、命令のタイミング記述の際に使用で
きる。これらの単位は、ここではそれぞれ「クロック」
および「サイクル」と呼ばれる。
−クロックはシステムのハードウェアにより画定される
持続時間を有するリアルタイムの単位である。プロセッ
サは命令取出しをサイクルごとに遂行する。−サイクル
は、「機能停止」が生じなければ−クロックかかり、機
能停止の場合、−サイクルは−クロックのある整数倍の
クロック数かかる。命令の実行はサイクルに関して記述
されそしてデータから独立している。
パイプライン機能停止がサブキャッシュおよびキャッシ
ュ管理オーバーヘッドから生じ得る。たいていのLOA
Dおよび5TOPE動作が機能停止なく完了する。しか
し、あるLOAD。
5TOREまたはメモリ制御命令が、システムがデータ
を局所的な(ローカル)キャッシュからまたは遠隔のセ
ルから検索するのを許容するために、機能停止を生じ得
る。これらの遅れはここでは機能停止と呼ばれる0機能
停止中は別の命令の実行は進行せずそして何らの新規な
命令も取り出されない6機能停止は命令それ自身に関係
しないが関係のデータの近接性に関係する0機能停止は
クロックで測定されそして各機能停止はクロックの整数
倍である。たとえあるCEUが機能停止しローカルキャ
ッシュからデータを得ても、(サイクルで表現される)
プログラミングモデルは一定に留まる。
第3図に図示されるように、本発明によるプロセッシン
グセル18.1は、ここでは機能ユニットとも呼ばれる
4つのプロセッシング要素CEU58、IPU84、F
PU82およびXIU60を備えることができる。第3
図は4つのプロセッシング要素を有するプロセッシング
セル18.1を図示するが、当業者であれば、本発明は
それ以上のまたはそれ以下の数のプロセッシング要素を
有するプロセッシングセルと関係して実施できることを
理解しよう。
特に、CEU (中央実行ユニット、CentralE
xecution Llnit )はすべての命令を取
り出し、デ−夕取出しくFETCH)および格納 (STOPE)(ここではロード(LOAD)およびス
トア(STOPE)と呼ばれる)を制御し、命令の流れ
(分岐)を制御し、そしてアドレス計算に必要な演算を
行う、IPU(整数プロセッシングユニット、Inte
ger Processing Unit)は、整数演
算および論理命令を実行する。FPU(浮動小数点プロ
セッシングユニット、Floatingpoint P
rocessing Unit)は浮動小数点命令を実
行する。XIU (外部入出カニニット、eXtern
alIlo Unit)は外部装置へのインターフェー
スを提供するコ・エグゼキューションユニットである。
XIUはDMA (ダイレクトメモリアクセス動作)お
よびプログラムド入出力を遂行しそしてタイマレジスタ
を包含する。それはプログラムド入出力(Ilo)を制
御するために、種々の命令を実行する。
プロセッシングセル18.1はこうして標準的には命令
キャッシュ64からの命令を含む命令のストリームを処
理するために、CEU58を含む一組の相互接続された
プロセッサ58.60.82および84を備える。命令
キャッシュ64からの命令のストリームは破線86によ
り第3図で示されている。
第3図に図示されるように、複数のプロセッサのうちの
少くとも一つ(図示の実施例では、FPU82およびX
IU60)は、CE U 58 G:より実行できる命
令(ここでは「被挿入命令」と呼ぶ)を主張できる。F
PU82からCEU58へ向かう被挿入命令の流れは破
線88により第3図で示されている。同様に、XIU6
0からCEU58へ向かう被挿入命令の移動は破線90
により示されている。
さらに、後に詳述するように、これら被挿入命令は命令
キャッシュ64からの命令と同様の態様でそしてこの命
令の実行順序に影響を与えることなしにCEU58によ
り実行できる。さらに後述するように、被挿入命令は、
選択されるアドレス信号を記述する第1の一組のディジ
タル命令ビットおよび選択されるコマンド信号を記述す
る第2の一組のディジタル命令ビットを含み、第1の命
令ソースからの命令と同様のフォーマットを有すること
ができる。このフォーマットを有する被挿入命令は、第
2図に図示されるキャッシュ制御ユニット74Dにより
または命令キャッシュ64により挿入されるキャッシュ
管理命令を含むことができる。
第3図は命令キャッシュ64を命令ソースとして図示す
るが、代替え的に、命令ソースは、一定状況のもとで、
命令キャッシュ要素へ合図を行い命令が命令キャッシュ
要素からCEU58へ伝送されるようになされたCEU
58を含む実行ユニットないしプロセッサとし得る。
上述のように、プロセッシングセル18.1は、プロセ
ッサを相互接続しそして命令を運ぶための命令バス68
から構成される命令パイプラインを備えることができる
。プロセッサは順次、被挿入命令を命令バイブラインへ
挿入するためのハードウェアおよびソフトウェア要素を
合体できる。
第3図に図示されているXIU60は、外部装置とも呼
ばれる周辺装置から受信されおよび周辺装置へ伝送され
る信号70を取り扱うために入出カモジュールを合体で
きる。これら入出カモジュールは、第1の命令ソースか
らの命令と同様の態様でそしてこの命令の処理順序に影
響を与えることなしにCEU58により処理できるDM
A命令を挿入するために、周辺装置からの選択された信
号に応答するダイレクトメモリアクセス(DMA)要素
を備えることができる。これらの処理順序は後に詳述す
る。XIU60はまたディスプレイ装置へ伝送される信
号を制御するために知られる工学技術の実施に従って構
成されたグラフィックス制御回路またはテキストを表す
データ構造体をサーチするための従来のテキストサーチ
要素を含み得る。
第3図に図示される各プロセッサ58.60゜82.8
4は、後に詳述するような態様で、データおよびプロセ
ッサ状態を表示するディジタル値を格納するためのレジ
スタを備えることができる、被挿入命令は、レジスタへ
のそしてレジスタからのデータの移動を制御しそしてレ
ジスタに格納された値に基き選択される論理動作の実行
を引き起こす。
本発明の好ましい例において、第3図に図示されるプロ
セッサは、後述するように印加されたトラップ信号に応
答してトラップシーケンスを起動できる。トラップシー
ケンスは選択される被挿入命令により起動できる。同様
に、第3図に図示されるセル18.1のプロセッサは割
込みシーケンスを起動するための要素を備えることがで
き、そして被挿入命令は割込みシーケンスへのエントリ
を生じ得または割込み信号に応答しトラップ信号をトリ
ガし得る。トラップシーケンスおよび割込みシーケンス
をトリガする特定の命令コードを含む本発明のこれらの
特徴は後述する。
第3図に図示される4つの機能ユニットは並列に動作す
る。セルパイプラインはサイクルごとに2つの命令を発
射できる。FMAD (浮動少数魚形乗算および加算を
せよ、Floating−paintMultiply
 and ADd )などある命令は2以上の動作を遂
行する。LD64 (64バイトロードせよ)などのそ
の他のものは2以上の結果を発生する。各々は他のもの
と独立に命令を実行できる。
本発明によれば、プログラム命令は命令のベアでメモリ
に格納できる。各ベアはCEUまたはXIUのための一
命令およびFPUまたはIPUのための一命令からなる
。前者はCX命令と呼ばれそして後者はFl命令と呼ば
れる。
CEUはPCO,PCIおよびPC2と称される3つの
プログラムカウンタ(PC)を有することができる。P
C2はここでは「取出しくフェッチ)PCJとも呼ばれ
る。プログラマの見通しから、プロセッシング要素はP
COにより指定される命令ベアを実行しておりそして次
にPCIにより措定される命令ペアを実行しそしてPC
2により指定される命令ペアを取り出している。ある命
令が完了すると、PCOはPCIの前の値を得、Pct
はPC2の前の値を得そしてPC2はちょうど実行され
ているCX命令に応じて更新される。もしこの命令が分
岐命令でなかったならまたはその条件と出会わなかった
ところの条件付き分岐命令であったならば、PC2は、
PC2に8をプラスした値へ更新される。もしこの値が
PC2の前の値と同じ区分(セグメント)になければ、
結果は定められない、もしこの命令がテーク分岐(ta
ken branch)であったならば、PC2は分岐
の目標へ更新される。
各サイクルにおいて、プロセッサは、PC2により指定
される命令ペアをメモリから論理的に取り出しそしてP
COにより指定されるベアの両方の命令を並列に実行し
始める。こうして、単一の命令ペアはCEUおよびIP
U%CEUおよびFPU%XIUおよびIPU、または
XIUおよびFPUで作業を開始できる。当業者であれ
ば、機能ユニットはパイプライン化されているので、各
ユニットは、命令が完了するのに必要なサイクル数に拘
らず、各サイクルで新規な命令の実行を開始できる。し
かし、コンパイラまたはプログラマによる命令の順序付
けに影響を与えるプロセッサ要素または機能ユニット資
源の使用で制限がある。
一定の命令が2つ以上のユニットで影響を有する。たと
えば、LOADおよび5TOPE命令は、ソースまたは
目標レジスタを包含するユニットおよびCEUに影響を
与える。しかしプロセッサは、それが同じユニットにつ
いである実行命令を発射するのと同じサイクルでFPU
またはIPUのためにLOADまたは5TOPEを発射
できる。
MOVB(ユニット間移動、move−between
−units)命令は、2つのユニットのレジスタ間で
データを移動させる。たいていのユニット間データ移動
は単一の命令を必要とし、FPUおよびIPU間のデー
タの移動は、単一の命令ペアのMOVINおよびMOV
OUTの記述を必要とする。
PC2の値が変化するとき、プロセッサはその命令ペア
を取り出す、命令はプロセッサーパイプラインに投入さ
れそして投入された順序でパイブライン状態を占有する
。ある命令はバイブラインから除去できないが、それは
「取消し」としてマーク付けできる0本発明によれば、
2種類の取消し動作があり、ここでは、「結果取消し」
および「発射取消し」と呼ばれる。
結果取消し動作は「トラップ」中に生ずる。トラップと
は、割込みおよび「例外」の事象の際に制御を特権ソフ
トウェアへ移すのに使用され、トラップ機構により起動
される動作シーケンスである。例外とは、後に詳述され
るように、FPUまたはIPUでのある命令実行動作が
トラップの報告を行いそして同じユニットについて何ら
かのオペレーティング命令が発射されていたならば、そ
の発射と現在のサイクルとの間のサイクルで生ずるある
状態である。例外は、何らかの誤りが命令ストリームの
ある命令の取出し動作または実行動作の直接的な結果と
して検出されたときに合図される0例外にはあるデータ
タイプのオーバーフロー、アクセス破壊、パリティ誤り
およびページフォルトが含まれる。
トラップは、フォルトまたは割込みという2つの基本的
な仕方で起動できる。フォルトが実行している命令スト
リームと明確に関係づけられる。
割込みは命令ストリームに直接には関係付けられないシ
ステムのある事象である。トラップ、フォルトおよび割
込みについては後述する。
本発明によれば、トラップの時点で実行している命令が
結果取消し可能である。結果取消しされる命令は機能ユ
ニットにより発射されそして処理されていたが、後述の
一つまたはそれ以上の特別のトラップステータスレジス
タのステータスの報告によるものを除いて、レジスタま
たはメモリのステータスに影響を与えない。
発射取消しされる命令が、ノーオペレーション(不動作
、no−operation、 N0P)命令のために
使用されるのと同様の態様で取り扱われる。発射取消し
される命令が、その命令の取出し動作に関してトラップ
を発生できるのみである6発射取消命令のその他のすべ
ての影響が無効(ヌル)化される。もしある命令が、2
00段に到達する時点で発射取消しされれば、それは発
射されずまたその命令により標準的に使用されるどのよ
うな資源をも使用しない。発射取消し動作は3つの実行
プログラムカウンタ(pc)に関連付けられる0本発明
によれば、pco  cxおよびFI命令のために発射
取消し動作を個々に制御しそしてPCI命令ペアのため
に発射取消し動作を制御することができる。システムの
ソフトウェアおよびハードウェアは3つの取消し動作制
御のすべてを個々に変更できる。トラップがバイブライ
ンで一定の命令の発射取消しを行う、加えて、条件付き
分岐命令は、プログラムがバイブラインにおいてそれに
続く2つの命令ペアを取り消すようにする。これは分岐
取消しと呼ばれそして分岐遅れでプロセッサの命令発射
取消動作を結果する。これらの性質は後に詳述する。
ある命令取出しがPctをPCOへ複写するとき、それ
はPCIの前の発射取消状態に応じて、CX命令および
FI命令の両方について発射取消をセットする。もし、
ちょうど完了したCx命令が分岐取消しを記述した条件
付き分岐であったならばそしてなんらのトラップも発生
しなかったならば、発射取消しは、プログラムカウンタ
が更新された後に、PCOCXおよびFIおよびPCI
についてセットされる。
ある命令が、標準的にはあるプロセッシング要素が一つ
またはそれ以上のソースオペランドを読むようにし、特
定の態様でそれらで動作し、そして結果のオペランドを
渡すようにする。本発明によれば、「実行うラス」の命
令が、どのようにそれらがオペランドを読みそして結果
を渡すかに応じて3つのグループに分類できる。第1の
グループは、機能ユニットがソースオペランドを即座に
読み、計算しそして結果を即座に渡すようにする。結果
は次の命令ペアにより使用される。第2のグループは、
機能ユニットがソースオペランドを即座に読み、計算し
そして結果をある遅れの後に渡すようにする。結果は、
その命令に続く第8番命令ベア(ここでNは命令に応じ
て変化する)により使用される。第3のグループは、機
能ユニットがあるソースオペランドを即座に読み、結果
の一部を計算し、ある遅れの後に別のソースオペランド
を読み、そしである遅延の後に結果を渡すようにする。
結果は命令に続く第N番命令ベア(ここでNは命令に応
じて変化する)により使用される。
本発明によれば、LOADおよび5TORE命令はいく
つかの重大な特性を有する。すべてのLOAD命令が即
座にソースアドレスを使用しそしである遅延の後に一つ
またはそれ以上の結果を供給する。さらにすべてのLO
AD命令は直ちにそれらのCEUインデックスレジスタ
ソースを使用する。もしCEUまたはXIUレジスタが
格納されていれば、その値もまた直ちに得られる。もし
FPUまたはIPUレジスタが格納されていれば、その
値はある遅れの後に得られる。
5TORE−64BYTE (64バイト記憶せよ、5
T64)命令は、命令の持続時間にわたりそのCEUイ
ンデックスレジスタソースを使用しそして変化する遅れ
の後に種々のFPUおよびIPUソースデータを得る。
各サイクルで、プロセッサ要素または機能ユニットは、
プロセッサカウンタ(pc)によりアドレスされる命令
ベアの適当な命令を検査する。
命令ベアのある命令が、2つの対応するユニット(CE
U/X I UまたはF P U/ I P U) 0
) 一つに対するデイレクティブ(指示文)とし得、ま
たはいずれのユニットについても何らの新規な作業がな
いことを指示し得る。後者のケースは、FINOP(F
lノーオペレーション)およびCXN0P (CXノー
オペレーション)の符合化ノーオペレーション命令によ
り指示される。ここで言及されるように、オペレーティ
ング命令とはFINOPまたはCXN0Pでなくそして
発射取消しされない命令である。もしあるオペレーティ
ング命令が存在すれば、適当なユニットがその命令を発
射する。命令実行が完了したとき、機能ユニットは命令
を「引っ込め」る。一般に、命令の結果は、第4図に図
示されるように、命令の引っ込めに続く命令ベアに利用
できる。
第4図は、次の命令ベアが発射について考えられる前に
引き込められる命令として定義されそしてゼロの結果遅
れを有する単一サイクル命令を図示する。その他のすべ
ての命令が「マルチサイクル命令」と呼ばれそしてゼロ
ではない結果遅れを有する。結果遅れは、特定の命令と
、結果を使用する命令との間に存在することになる命令
ベアの数である。その他のすべてのタイミングは、命令
の発射時点からのサイクルで表現され、第1のサイクル
はゼロと番号付けられる。
種々の命令が、命令が首尾よく完了しなかったことを指
示するためにトラップを取り得る。ここに開示されるシ
ステムは、ユーザーに算術トラップを通じ意味ある制御
を提供する。別のトラップが、米国特許出願箱136.
930号に開示されるような仮想記憶装置などの特徴を
実施するためにシステムソフトウェアにより使用できる
。後に詳述するように、命令は、命令の発射以後完了せ
られるサイクルで表現される良好に定められるトラップ
ポイントでトラップを報告する。
本発明によれば、各命令は特定の時点でそのソースレジ
スタを読む。すべての単一サイクルおよび種々のマルチ
サイクル命令が実行のサイクルゼロにおいて(すなわち
ゼロ遅れで)、それらのソースのすべてを読む。一定の
マルチサイクル命令が後の時点で一つまたはそれ以上の
ソースを読む。
もしトラップが生ずれば、システムソフトウェアが(た
とえば、ページを利用可能にするなど)訂正作用を取り
得、そしてユーザプログラム命令ストリームを再スター
トする。プログラムは、命令がフォルトにより影響を受
は得る時間中、一般にはソースレジスタを変化してはな
らない。この性質はソースレジスタ制限と呼ばれる。第
5図は、この制限を破棄する命令シーケンスの例を図示
する。
各機能ユニットは選択される一組のソースレジスタを利
用する。たとえば、CEU (A、B)ソースレジスタ
はすべてのCEU命令中に使用される。それは、LOA
Dまたは5TOPHにより使用されるインデックスレジ
スタと、実行うラス命令により使用されるソースオペラ
ンドを提供する。FPU (A、B)ソースはFPU実
行うラス命令中に使用される。それは、実行うラス命令
により使用される第1または第1および第2のソースオ
ペランドを提供する。FPU (C)ソースレジスタは
FPU実行うラスのトライアト(三組)命令中に使用さ
れる。それは、これらの命令により使用される第3のオ
ペランドを提供する。それは、CEUが、記憶形または
MOVB命令でFPUレジスタをアクセスをするときに
も使用される。
加えて、I PU (A、B)ソースはIPU実行うラ
ス命令中に使用される。それは、実行うラス命令により
使用される第1または第1および第2のソースオペラン
ドを提供する。IPU(C)ソースは、CEUが、格納
形またはMOVB命令でrPUレジスタをアクセスをす
るときに使用される。XIU (A、B)ソースはXI
U実行うラス命令中に使用される。それは、実行うラス
命令により使用される第1または第1および第2のソー
スオペランドを提供する。それは、CEUが、格納クラ
スまたはMOVB命令でXIUレジスタをアクセスをす
るときにも使用される。
上述のように、ある結果を発生する各命令は、その結果
が得られるまえにどの程度のサイクルが続くかを記述す
るある結果遅れを有する。結果遅れ中、結果レジスタは
不画定である。プログラムは、命令の結果遅れ中、その
命令の結果レジスタの古い値に依存してはならない、こ
れは、結果レジスタ制限と呼ばれる。例外が生ずれば、
すべての発射命令は、システムソフトウェアハンドラが
呼ばれるまえに完了するようになされる。こうして、マ
ルチサイクル命令の結果は、定められた結果遅れが終了
するまえに与えられることが可能である。命令の結果遅
れ中、マルチサイクル命令の結果レジスタを使用する任
意の命令が、そのレジスタの不定な(少なくとも2つの
)値の一つを得る。第6図はこの制限に違背するシーケ
ンスを図示する。FNEG (否定)命令は、FADD
 (加算)命令の前に%f2が有していた値に依存しよ
うとする。FADD命令は、FSUB (サブルーチン
)命令がそれを読む時間に%f2に書き込む。もしLD
8 (ロード)命令がページフォルトを取るかまたは割
込みがFNEG命令が取り出されるまえに合図されれば
、FADDはFNEGが発射されるまえに完了する。こ
のプログラムはそれゆえ予測不可能な結果を発生する。
各機能ユニットは命令を実行するのに使用される複数の
内部資源を有する。これらの資源は、時に一命令に基づ
いて動作するのみとし得る。任意の時間に、各資源は、
遊んでいるか(idle)またはせいぜい−命令により
使用状態でなければならない。これは資源制限と呼ばれ
る0種々の機能ユニットが資源制限の破棄を検出し得そ
してトラップを生ずる。
CEUは衝突が課される唯一の資源を有する。
これは、LOAD%5TORE、MOVB、MOVOU
Tおよびメモリシステム命令の全てにより使用されるロ
ード/格納資源である。LD64および5T64 (6
4バイトをロードおよび格納せよ)以外のすべての命令
が、それらの第3サイクル(すなわち2遅れで)中のみ
この資源を使用する。LD64および5T64命令は、
第3〜第9サイクル(2〜8遅れ)中、ロード/格納資
源を使用する。
LDおよびMOVB命令の資源使用が第7図に図示され
ており、また第8図は資源使用を図示する。LD64命
令のタイミングは第9図にそして5T64命令のタイミ
ングが第10図に図示されている。
IPU資源は、MUL (乗算)およびMULH命令に
より使用される乗算資源を備える。FPUに関連付けら
れた資源には、結果資源、除算資源、加算資源および乗
算資源が含まれる。結果資源は結果をレジスタに供給す
るためにすべてのFX命令により使用される。この資源
は、FPUレジスタで動作する一定のCx命令(LD、
ST%LD64.5T64、MOVOUT。
MOVB)によっては使用されない、それは、%fレジ
スタへのMOVIN(移動命令)により使用される。
IPU除算資源はFDIV(除算)命令で使用され、I
PU加算資源は多くの浮動小数点計算命令で使用されそ
してIPU乗算資源は浮動小数点計算命令の多くで使用
される。何等の資源衝突もXIUでは不可能である。
ここに与えられる命令の説明においてまた同時継続出願
である米国特許出願箱     号において、資源の使
用は、資源の名称、資源が使用されるまえの遅れのサイ
クル数および順次、資源がそれについてテーブルフォー
マットで使用されるところのサイクルの数を与えること
により記述される。こうして、LD命令のタイミングは
以下のように記述されよう。
lN5TRCEU     ロート/  結果遅れ(命
令)    (A、B)   格納資源    資源 ld    [0,1,0]   [2,1]  2(
ロード) ソースについてのタイミングは[遅れ、サイクル、ソー
ス制限]を記述する3部分からなる。
「遅れ」は、資源が使用されるまでのサイクル数であり
、命令の発射とともに開始するゼロからカウントされる
。「サイクル」は、遅れが終了した後、ソースが使用さ
れるサイクル数である。[ソース制限」は、遅れが終了
した後にカウントするソースが変更されるべきでないサ
イクル数である。「結果遅れ」は、命令ベアと結果を参
照する第1の命令との間に生ずることになる命令の数で
ある。
いくつかの命令は、例外のステータスを完了または報告
するために複数サイクルを必要とするので、CEUは、
FPUおよびIPUのためにコ・エグゼキューションブ
ログラムカウンタを維持する。もし例外が生ずれば、ト
ラップハンドラは、のちに詳述するように、障害ないし
故障命令の実際のアドレスを認定するために、コ・エグ
ゼキューションブログラムカウンタを検査する必要があ
る。CEUは、5T64命令の例外が解決できるようロ
ード/格納形命令とともに同様の機能を遂行する。
ある命令がトラップを行なえば、トラップが報告される
。命令ベアと包含する命令ベアとの間の命令の隙間(ス
ロット)に、同様のユニットについていずれのオペレー
ティング命令もあってはならない。これはトラッププロ
グラムカウンタ制限と呼ばれる。トラップが報告される
場所の命令ベアにまたはその後のいずれの命令ベアにも
あるオペレーティング命令を置くことが可能である。こ
の制限の適用は、ユーザの応用およびオペレーティング
システムの必要性に依存する。
これらのコード化の実施は、ある命令シーケンスが決定
論的な結果を発生することをそして生ずるいずれの例外
もシステムソフトウェアにより解決できまたは解析のた
めにユーザプログラムへ送られることを保証する。すべ
ての場合に、何の動作が進行していたかを認定すること
、ページの欠け(missing)などの−時的な状態
を修正することを、データを変更することおよび最終的
に計算を再度スタートすることが可能である。プログラ
ムは結果のレジスタ制限またはいずれの資源制限を破棄
してはならずフォルトを取りつるいずれの命令シーケン
スでソースレジスタ制限または機能ユニットトラッププ
ログラムカウンタ制限を破棄してはならない、この制限
は、何等のトラップモディファイアも使用されずまたデ
ータパラメータは知られているとのいずれの理由によっ
ても、フォルトを取らない命令シーケンスへ適用しない
スケジュール化される命令のシーケンスの数をできるだ
け最大にするためにそして実行されるFINOPおよび
CXN0P命令の数をできるだけ最小にするために、い
くつかのオプションが利用できる。プログラムは結果レ
ジスタ制限またはいずれの資源制限をも破棄してはなら
ない、プログラムは、データを知ることによりまた何ら
のトラップ命令モディファイアをも使用しないのいずれ
によっても、FI命令中、データ依存性のフォルトが生
じないことを保証しつる。後者の場合、プログラムは、
算術誤りが生じたかそうでないかを認定するために、種
々の状態コード(たとえば、@l0V)を検査すること
を決定しつる。何らのフォルトも生じ得ないとき、FI
命令について機能ユニットトラッププログラムカウンタ
制限およびソースレジスタ制限を破棄することが可能で
ある。さらに、トラップが生ずるときでさえも、もしト
ラップ動作命令の正確な知識が必要とされなければ、こ
れらの制限を破棄することが可能である。CEUソース
レジスタ制限が破棄され得るか否かは、システムソフト
トウエアに依存するが、標準的な実施はこのような破棄
の結果を請は負わない、第11図は、正確なトラップの
ための規則に従う重複した命令の一例を図示する。
上述のように、CEUは現在の命令ストリームを画定す
る3つのプログラムカウンタを有する。
ある分岐命令が、取出しプログラムカウンタ(PO2)
を分岐の目標値へ変化させる。ある分岐命令が条件付き
分岐(B“″命令)、無条件飛び越しくJMPまたはR
TT命令)、または無条件サブルーチン飛び越しくJS
R命令)とし得る。
条件付き分岐は、プログラムが2つのCEUレジスタま
たは一つのCEUレジスタと定数とを比較するのをまた
はCEU条件コードを検査するのを許容する。取出しプ
ログラムカウンタは、もし分岐条件が満足されれば変化
せられ、もし分岐条件が満足されなければ、単にインク
リメントされる。
プログラムにより実行される命令ベアをトレース(追跡
)するために、プログラムの進行に応じ、3つのプログ
ラムカウンタの値を追跡することが必要である。あるプ
ログラムがある分岐遅れで分岐命令を記述する。この技
術はここでは遠隔命令実行と呼ばれ、後に詳述する。P
O2のセグメント部分を変化させるいずれのJMP%J
SRまたはRTT命令も、その分岐遅れに「PC関係」
の分岐を持ち得ない、PC関係の分岐が、プログラムカ
ウンタをそのインデックスレジスタとして記述するいず
れの条件付き分岐または無条件分岐としても画定される
ある分岐が常にプロセッサのパイプラインで2つの命令
に先行する。これらの命令は分岐遅れ命令と呼ばれる0
分岐遅れは実際には、ある分岐の結果レジスタがたまた
まPCOとなる結果レジスタ遅れの特別の場合である。
無条件分岐について、これらの命令は常に実行される。
条件付き分岐について、それらの実行は、分岐命令の分
岐取消しオプションにより制御される。分岐命令は、別
の分岐の分岐遅れの隙間で生じ得るので、分岐取消しオ
プションによる制御は、プログラムメモリで分岐に逐次
続く2つの命令ベアが取出されるかまたは実行されるか
を必ずしも意味しない、この性質はさらに詳述する。
本発明によれば、分岐命令について、何らのソースレジ
スタ制限、分岐レジスタ制限、または資源制限もない、
これは、取出しプログラムカウンタが分岐命令により変
化されそして新規な取出しプログラムカウンタに関係す
るいずれの例外も値がPCOに到達した時点で報告され
、命令ベアが発射されるからである。最適な性能のため
に、分岐遅れは、分岐のまえに論理的に付属するが、分
岐自身に影響を与えることがなくそして影響を受けるこ
ともない命令で満たすことができる。もしこのような命
令が何ら利用できなければ、遅れの隙間はNOPで満た
し得る。
代表的な分岐命令が第12図に図示されている。JMP
命令がそのパートナ−と−緒に取り出される。パートナ
−は実行を開始する。2つの遅れペアは順次取り出され
そして実行を開始する。
順次、目標アドレスで命令ベアは取り出されそして実行
される。
プログラマまたはコンパイラは無条件分岐命令の分岐遅
れを、分岐自身に先行するまたは分岐の後の命令で満た
すことができる。条件付き分岐の分岐遅れは満たすのが
より堅固とじつる。最も良好な場合に、分岐に先行する
命令が分岐遅れに入れることができる。これらは、分岐
が行なわれようと行なわれまいと実行されねばならない
。しかし、分岐前からの命令がさらに分岐遅れへと常に
利用できるわけではない6条件付き分岐の分岐遅れを満
たすことは分岐取消しにより簡単化される。特に、条件
付き分岐命令は、プログラマが、分岐遅れ命令が分岐決
定の結果に基づいて実行されるべきかを記述するのを許
容する1分岐命令は、もし分岐が行なわれるときに命令
が分岐取消しされるならば、取消し真(quash−o
n−true)をそしてもしそれら命令が分岐が行なわ
れないときに分岐取消しされるならば取消し偽(qua
sh−on−false)をそしてもし命令が常に実行
されるべきならば非取消しく quash−never
)を記述する。アセンブラの条件付き分岐記憶手段は、
いずれの分岐取消しの意味関係(セマンティクス)が必
要とされるかを指示するために、それぞれ文字QT、Q
F、QNを使用する。分岐取消しは、分岐遅れでの命令
がPCOおよびPCIに到達するとき、発射取消しを結
果する。
分岐前からの命令が分岐遅れで使用されるとき、非取消
しが記述される。もし何らこのような命令が利用できな
ければ、プログラマは目標からの命令で遅れを満たすこ
とができそして取消し偽を選択し、または分岐の後から
の命令で遅れを満たすことができ取消し真を選択する。
いずれのソースを満たすかの決定は、いずれの命令が容
易に移動できるかに基づきそしてコード発生時に分岐が
行なわれそうかどうかの予測に基づく。例が第13図〜
第19図に図示されている。第13図〜第15図は、満
たされた分岐遅れの例を図示する。この例において、コ
ードがある分岐の前から分岐遅れへ移動され、こうして
、命令ストリームから2つのNOP (ノーオペレーシ
ョン命令)を除去する。特に、第13図は、分岐遅れに
NOPを持つもとのコードシーケンスを図示する。実行
される命令はFI  lN5AO/ CX  lN5AO1FI  lN5AI/CX  I
NSΔ1、FI  lN5A2/CX  lN5A2、
FI  lN5A3/jmp。
FI  NOP/CXN0P、FI  NOP/CXN
0P、FI  lN5B4/CX  lN5B4、FI
  lN5B5/CX  lN5B5であル、コのシー
ケンスは2つの浪費されるサイクルを結果する。
代替え的に、第14図に図示される分岐遅れが満たされ
た最適化されたコードシーケンスが使用できる。ここに
図示されるように、分岐遅れを満たすために、命令FI
  lN5AI/CX  lN5A−干およびFI  
lN5A2/CX  lN5A2が分岐遅れへ移動され
、2つの命令サイクルを節約する。実行される命令は、
FI  lN5AO/CX  lN5AO。
FI  lN5A3/jmp%FI  lN5AI/C
X  lN5AI%FI  lN5A2/CX  lN
5A2、FI  lN5B4/CX  lN5B4、F
I  lN5B5/CX  lN5B5であり、何らの
無駄なサイクルも結果しない、第15図に図示されるよ
うに、CX命令の再構成とは無関係に、FI命令を再構
成することも可能である。
ループなどの一定プログラミング構成が分岐がおそらく
取られるようにする。もし分岐がほとんど取られそうで
あれば、分岐目標からの第1の2つの命令が分岐遅れに
配置可能である。もし分岐が万が−取られなければ、分
岐取消し偽が正しい結果を発生するために使用される。
もし分岐が実際に取られれば、2つのサイクルが節約さ
れる。
もしそうでなければ、2つのサイクルは分岐取消しされ
、それでプログラムの正しさが守られる。
第16図は分岐遅れでNOPを使用するコードシ−ケン
スを一方第17図は分岐遅れに目標をそし°て分岐取消
しを持つ最適化されたコードシーケンスを図示する。第
16図を参照すると、もし分岐が取られなければ、実行
される命令は、FI  lN5AO/CX  lN5A
O。
FI  lN5AI/CX  lN5AI、FI  l
N5A2/CX  lN5A2、・・・FI  lN5
A7/CBR,QN、FINOP/CXN0P%FIN
OP/CXN0P1FI  lN5CO/CX  lN
5COであり、2つの浪費されるサイクルを結果する。
もし分岐が取られれば、実行される命令は、 FI  lN5AO/CX  lN5AO。
FI  lN5AI/CX  lN5AI、FI  l
N5A2/CX  lN5A2、FI  lN5A7/
CBR,QN、FINOP/CXN0P、FINOP/
CXN0P。
FI  lN5CO/CX  lN5COであり、2つ
の浪費されるサイクルを結果する。
第17図は、分岐遅れを満たすために、ユーザが、2つ
の命令FI  lN5AO/ CX  lN5AOおよびFI  lN5AI/CX 
 lN5AIを分岐遅れへ複写でき、分岐取消し偽を選
択(分岐が取られる)し、そして分岐目標を調整できる
ことを図示する。もし分岐が取られなければ、実行され
る命令は、 FI  lN5AO/CX  lN5AO。
FI  lN5AI/CX  lN5AI、FI  l
N5A2/CX  lN5A2、・・・FI  lN5
A7/CBR,QF、 branch−quashed (分岐取消し)、br
anch−quashed。
FI  lN5CO/CX  lN5COであり、2つ
の浪費されるサイクルを結果する。もし分岐が取られれ
ば、実行される命令は、 FI  lN5AO/CX  lN5AO1FI  l
N5AI/CX  lN5AI、FI  lN5A2/
CX  lN5A2、・・・FI  lN5A7/CB
R,QF。
FI  lN5A0.1/CX  lN5A0.1、F
I   lN5AI/CX   lN5A1.1、FI
  lN5A2/CX  lN5A2であり、最もあり
うる場合に、何らのサイクルも浪費されない。
あるプログラムでは、一定の分岐がもつとも飛び越され
やすい、一つのこのような分岐が、たとえば算術オーバ
ーフローなどのほとんど設定されない条件のテストであ
る。もし分岐がほとんど飛び越されそうであれば、分岐
後の第1の2つの命令が分岐遅れに配置しつる。分岐取
消し真が、もし万が一分岐が取られれば、正しい結果を
発生するために使用される。もし分岐が実際には取られ
なければ、2つの命令サイクルが浪費される。もしそう
でなければ、2つのサイクルが分岐取消しされそして実
行時間は改善されない、この例が第18図および第19
図に図示されている。
第18図は、分岐遅れにNOPを有するコードシーケン
スを図示する。もし分岐が取られなければ、実行される
命令は、FI  lN5AO/CX  lN5AO%F
I  lN5AI/CBR,QN% FINOP/CX
N0P。
FINOP/CXN0P、FI   lN5BO/CX
   lN5BO1FI   lN5BI/CX   
lN5BI、 FI   lN5B2/CX  lN5
B2であり、2つの浪費されるサイクルを結果する。も
し分岐が取られれば、実行される命令はFI  lN5
AO/ CX  lN5AO%FI  lN5AI/CBR,Q
N1FINOP/CXN0P。
F lN0P/CXN0P%FI  I N5CO/C
X  lN5CO1FI  lN5CI/CX  lN
5CI、FI  lNSC2/CX  lNSC2であ
り、2つの浪費されるサイクルを結果する。
第19図は分岐遅れに分岐後命令および分岐取消しくb
ranch−quashing )を伴う最適化された
コードシーケンスを図示する。第19図に図示されるよ
うに、分岐遅れを満たすために、ユーザはI N5A1
およびlN5A2を分岐遅れに移動できそして分岐取消
し真を選択し、分岐が実際には取られないときに2つの
命令サイクルを節約できる。もし分岐が取られれば、実
行される命令は、FI  lN5AO/CX  lN5
AO。
FI  lN5AI/CBR,QT。
branch−quashed、 branch−qu
ashed。
FI  lN5CO/CX  lN5CO。
FI  lN5CI/CX  lN5CI、FI  l
NSC2/CX  lNSC2であり、2つの浪費され
るサイクルを結果する。もし分岐が取られなければ、実
行される命令は、 FI  lN5AO/CX  lN5AO。
FI  lN5AI/CBR,QT。
FI  lN5BO/CX  lN5BO1FI  l
N5BI/CX  lN5BI、FI  lN5B2/
CX  lN5B2−1’l、最もありうる場合に、何
らの浪費サイクルもない。
命令ストリームを決定するのに使用される3つのプログ
ラムカウンタのために、プログラムの直線的な流れに関
連付けられない一つまたは2つの命令を「離れて」実行
することが可能である。これらの動作は第20図に図示
される形のシーケンスとともに実行できる。第20図の
プログラムシーケンスは、アドレスooo、oos、0
10.100.018.020などで命令ベアを実行す
る。JMP (飛び越し命令)をアドレス008からア
ドレス010へ移動することにより、(100および1
08の)2つの離れた命令ベアが実行される。これらの
特定のシーケンスは、Cx命令として分岐を包含する離
れた命令を保持しない。
本発明によれば、割込みおよびダイレクトメモリアクセ
スの伝送が、命令ストリームの連続的な命令間で命令を
プロセッサパイプラインへの挿入を行なう、これらの命
令はここでは被挿入命令と呼ばれろ、CEUは命令を挿
入するために「正しさJ  (right)を制御し、
そしてときには被挿入命令を無視しまたは取り消す。
アーキテクチャは、いずれの命令も挿入可能にするが、
機能ユニットは、命令組の限られた部分のみが使用され
るように設計できる。これらの被挿入命令はプログラム
カウンタを変化させない。
被挿入命令がサイクルを使用しそしてすべてのプロセッ
シング要素または機能ユニットのパイプラインが、ちょ
うどもとの命令がそうするように、進行するのを許容す
る。
プログラミングモデルに対する非挿入命令の影響は、被
挿入命令がある結果を予期されるよりも早く生じさせ得
ることである。これは、被挿入命令が物理的なパイプラ
インステージを占有しそして隠されたサイクルが生ずる
からである。もしプログラムが結果レジスタ制限に従う
ならば、プログラムを実行するのに必要とされる時間ま
で、プログラムの論理的な実行への何らの変化もない。
被挿入命令が、論理的なパイプライン(pco。
Pct、PO2)に関連付けられる発射取消状態により
または分岐取消により取り消されることはできないが、
例外により、物理的パイプラインで結果取消または発射
取消できる。
以下の例はどのようにしてCCUおよびXIUが被挿入
命令を使用できるかを示す。以下の例で述ヘラれ!XA
DDR,XCACHE、XN0PおよびXDATA命令
およびサブページ動作、サブブロック動作およびその他
のメモリ動作は、本願と同日出願の米国特許出願箱  
     号および米国特許出願箱136.930号に
述べられているので参照されたい、CCUおよびXIU
はある命令ベアのCX部分を与えそしてCEUはFIN
OP命令を論理的に与える。CCUおよびXIUは、そ
れらがある命令のオペランドを供給するためにその命令
を挿入するのと同じ時間にプロセッサバスな操作する。
CCUおよびXIUは、2つまたはそれ以上の連続した
命令を挿入する。
プ  ッシュからのサブページの addr addr nop cache cache パイプライン されないデータのロードまたは 記11弧作 xaddr nop nop data xaddr xaddr nop data data xaddr xaddr nop data nop nop nop nop nop nop nop ゛ のIクエスト trap nop 被挿入命令は、診断ソフトウェアによりプログラムの一
部としてコード化できる。本発明の好ましい実施例にお
いて、CEUは、Cx命令を随伴するFI命令を実施す
る。プログラムは、必要に応じデータを供給または抽出
するために特別の動作を取らなければならない、これは
、たとえばMOVI NまたはMOVOUT命令を使用
することにより実現できる。
本発明の好ましい実施例において、トラップ機構が、割
込みおよび例外の事象の際に、特権ソフトウェアへ制御
を移すのに使用される。トラップの分類が第21図に図
示されている。第21図に図示されているように、トラ
ップがフォルトまたは割込みの2つの基本的な方法で起
動できる。フォルトが実行命令ストリームと明確に関係
付けられそしてデータ、状態および命令の一定の組合せ
が発生するときに生ずる0割込みとは命令ストリームに
直接には関係付けられないシステムのある事象である。
フォルトが、さらにソフトウェアフォルトおよびハード
ウェアフォルトに分類される。ソフトウェアフォルトと
は、プログラムの予期される動作の一部であるようなフ
ォルトであり、そして計算モデルの実施の一部としてユ
ーザおよびシステムソフトウェアにより生じ得る。ハー
ドウェアフォルトは、ハードウェアが動作するときに、
予期せぬ誤りがハードウェアにより検出されるときに生
じ得る。プロセッサはフォルトを直ちに処理するが、と
きには割込みの処理を延期できるのが好ましい。
トラップシーケンスの最も意味のある性質は、もとのプ
ログラムに対しトランスペアレントなすなわち目に見え
ない態様で、ソフトウェアが実行を再スタートできるよ
う、実行を一時停止しそしてプロセッサの実行状態を保
管できるその能力である。このようなシーケンスは、米
国特許出願第136.930号に開示される制限および
プロセッサレジスタの形態により可能である。しかし適
用可能な制限を破棄するプログラムが、トラップ処理動
作後に命令ストリームを再び回復することの能力のなさ
または不確定な結果に遭遇し得る。
最も高い優先順位のトラップがここではリセット(RE
SET)と呼ばれる。RESETは抑止できない。
トラップの時点で実行状態の命令を記述するのに3つな
いし6つのプログラムカウンタの値が必要とされる。米
国特許出願第136.930号に詳細に説明されている
ように、CEUパイプラインはPCOlPClおよびP
C2により記述される。トラップ中、これらPCは、C
EUレジスタ%TR01%TRIおよび%TR2(%C
o。
%C1および%C2とも呼ばれる)に保管される。CE
Uは最も最近のオペレーティングFPUおよびIPU命
令のアドレスを維持する。これらのアドレスはコ・エグ
ゼキューションPCと呼ばれる。
ある所与の機能ユニットのためのコ・エグゼキューショ
ンPCは、そのユニットにより発射された最後のオペレ
ーティング命令がいずれかの機能ユニットの前のある命
令が例外を報告したので結果取消しされない限り、その
最後のオペレーティング命令のPC値を指示する。この
機構は、トラップPC制限と共に、ソフトウェアが、命
令の結果時間に拘らず、例外の原因である正確な命令P
Cを決定するようにする。
XIUの実行ポイントは、XIUは何らの重複した実行
をもたないので、トラップの時間にPCOにより常に記
述される。トラップ中、コ・エグゼキューションPCは
、第22図に図示のように、!PCIPUおよびIPc
  FPUに保存される。CEUは5T64命令から生
ずるフォルト処理の際にシステムソフトウェアを援助す
るために、IPc  5CEUを提供する。CEUおよ
びコ・エグゼキューションプログラムカウンタはまとめ
て実行プログラムカウンタと呼ばれそして第22図に図
示されている。
もしFPUまたはIPUで実行する命令がトラップを報
告しそして同じユニットについていずれかのオペレーテ
ィング命令が、その発射と現在のサイクルとの間のサイ
クルで、発射されたならば、そのユニットは「不正確な
例外」を報告する。それ以外の例外は「正確」と呼ばれ
る。本発明によれば、PCOにより指示される命令ペア
は、その前の命令により報告された例外の確かさに影響
を与えることなしに、同じユニットについである命令を
包含し得る。
ある例外が、プロセッサが計算の状態を正確に記述する
のに十分な情報をもたないとき、「不正確」とマーク付
けされる。もし、あるオペレーティング命令が、例外を
報告する命令ののちにパイプラインに存在すれば、CE
Uはコ・エグゼキューションブログラムカウンタをすで
に更新しているので、トラップ動作命令のための何らの
PC情報もない。もし複数の例外が単一のトラップの一
部として報告されるならば、いずれの命令がいずれの例
外を合図したかを決定することが不可能である。このよ
うな計算は有意に再スタートできずそして不正確な例外
フラグ (imprecise exception flag
)が、適宜、II  TRAPおよび/または!F  
TRAPで1にセットされる。
トラップ機構は種々のレジスタにトラップ状態値を格納
する。これらのレジスタには以下のものが含まれる。
%TROトラップポイントで命令の pcを記憶する。
トラップポイント後に第1 の命令のpcを記憶する。取 り出されんとする(トラップ ポイント後の2番目の)命令 のpcを記憶する。
中断すた命令ストリームのコ ンテキストレジスタを記憶す %TR2 +  C0NTEXT %TRI !  TRAP PC CEU PC FPU る。
トラップの原因を記録する トラップレジスタ値を記憶す る。
トラップを報告した最後の 発射されたLDまたはST命 令のPC値またはある別の例 外により結果取消しされずそ して発射取消しされなかった 最後のLD64または5T6 4命令のpcを記憶する。も しSTTまたはメモリシステ ムフォルトがI TRAPで指 示されれば、このレジスタは 障害を起こす命令 (offending 1nstruction)のP
Cを包含する。
現行の例外を発生したであ ろう発射された最後のオペレ ーティングFPU命令のPC 1 P C TRAP IPU TRAP 値を記憶する。このレジスタ はI TRAPがFPUの例外 を指示しそして IF  TRAPが例外が正確 であったことを指示すれば有 効であるのみである。
いずれのFPUの例外をも 記録するFPUトラップレジ スタ値を記憶する。
現行の例外を発生したであ ろう発射された最後のオペレ ーティングIPU命令のPC 値を記憶する。このレジスタ はITRAPがIPUの例外 を指示しそして!I  TRA Pが例外が正確であったこと を指示すれば有効であるのみ である。
IPUの例外が! TRAP で指示されれば、IPtJの例 外の詳細を記憶する。
!X  TRAP    XIU(7)例外がI TR
APで指示されれば、XIUの例 外の詳細を記憶する。
トラップ処理ソフトウェアへのエントリで、実行の状態
はこれらのレジスタにより記述される。
加えて、トラップの原因はこれらのレジスタの内容によ
り指示され、これは米国特許出願箱136.930号お
よび同日出願の米国特許出願箱      号により詳
細に説明されている。
命令ストリームの隙間ないし空隙は、マルチサイクル命
令が実行のサイクルゼロの後に例外を合図するとき生ず
る。ある命令が、そのアドレスがPCOに存在するとき
発射される0次のサイクルで、実行プログラムカウンタ
は、実行される次の3つの命令を記述するために更新さ
れる。もしそのマルチサイクル命令が正確な例外を報告
すれば、そのアドレスはコ・エグゼキューションPC(
I PCFPUまたは!PCIPU)または!PC5C
EUに存在する。命令のアドレスは、もしその命令の結
果遅れにプログラムが別のオペレーティング命令を発射
すれば失われる。
トラップが生じた後にシステムソフトウェアがプログラ
ムへ誤りの合図を行うかまたはトラップ原因を解明する
。隙間なしに命令ストリームを再スタートするために、
カーネル(核)は実行PC値およびレジスタ状態を回復
する簡単なシーケンスを実行する。ユーザまたはシステ
ムソフトウェアは、後に詳述するように、命令ストリー
ムが再スタートされる前に、「ぶら下がっている」ない
し「懸垂している」いずれの命令をも完了しなければな
らない。
CEUの隙間が、もし5T64命令がその最終実行サイ
クルで例外を報告すれば、存在できる。
これは!PC5CEUが有効である(STTまたはメモ
リシステム例外が発生した)が%TROに等しくない唯
一の場合である。実際の命令は、トラップが生ずるとき
に命令ベアがPCOにより指定される7サイクル前に発
射された。
もしトラップが生ずるときに、複数の命令がIPUまた
はFPUで実行していれば、そのユニットのトラップ状
態は不正確である。不正確な状態が有意には分析できず
、それでシステムソフトウェアは標準的にはユーザプロ
セスへ誤りの合図を行い、前の命令ストリームが再スタ
ートされるのを許容しない、もしトラップ状態が正確で
あれば、トラップはトラップポイント(PCO/%TR
0)の命令によりまたはトラップポイント前に発射され
た命令により生起されたことが考えられる。
プロセッサがトラップを合図するとき、それはトラップ
ポイントを確立する。トラップポイントとは、プログラ
ムにより実行される命令ベアのシーケンスにおけるPC
値の一つである。トラップポイント前のすべての命令ベ
アが完了しているかまたは完了するのが許容される。ト
ラップポイント後のすべての命令ベアが発射されない。
トラップポイントの命令ベアは、トラップのソースない
し源および存在する命令に応じて、特別に取扱われる。
例外を合図する単一サイクル命令について、トラップポ
イントは、トラップ動作命令のPC値である。いくつか
のマルチサイクル命令が実行のサイクルゼロまたは後の
時点で例外を報告する。多くの場合、後のトラップポイ
ントは結果が入手できる前のサイクルである。CEUは
、後述するように、一定状態に到達し、実行状態を保管
しそしてトラップハンドラへ入る。
トラップが合図されるとき、プロセッサは命令取出しを
停止し、命令挿入を許容するのを拒否し、そしてすべて
のコ・エグゼキューションユニットが進行状態のいずれ
の命令をも退却させるのをを待つ、もしこれらのいずれ
かの命令が例外を報告すれば、各例外はトラップ情報の
一部として包含される。各コ・エグゼキューション命令
が、首尾よくその作用を完了するかまたは例外を報告し
且つその結果を取り消すかにより退却せられ得る。もし
ある命令が例外のステータスを報告せずそして完了すれ
ば、別に何らの作用も必要とされない、もしPCOでの
命令ベアの前に発射された退却命令が例外を報告すれば
、その命令はトラップポイント前の命令ストリームの隙
間を表す。そのステータスおよびアドレスは、ソフトウ
ェアが隙間を満たすのに使用するために保管されねばな
らない。
CEUは、PCOでのCX命令、トラップソース、命令
ストリームの発射取消状態に応じて、PCO(トラップ
ポイント)での命令ベアを取扱う、たとえば、XIUま
たはCCUがXTRAP命令を命令ストリームに挿入す
るとき、割込みが発生される。被挿入命令はプログラム
カウンタに影響を与えず、XTRAPが、PCOでの命
令ベアが発射される前に生ずる。こうして、もしトラッ
プが(いずれの機能ユニットがレディ状態到達の一部と
してトラップを報告するか否かに拘らず)割込みにより
起動されたならば、PCOでの命令ベアは発射されない
、pco、PCIおよびPO2での命令は結果取消しさ
れる。
CEUは実行PC(PCO,PC1%PC2)を更新す
るとき、PO2により指定される命令の取出しを企図す
る。フォルトがアドレス変換中、合図されるか(STT
破壊)またはCEUが命令サブブロックを得ている(た
とえば、 page−fau It)間に合図される。誤り状態は
命令ベアに関連付けられそしてパイプラインを通じてそ
れに続く、もし命令ベアが結果取消されるならば、例外
は報告されない、そうでなければ、例外は報告され、P
CO,PCIおよびPO2で命令は結果取消しされる。
もしCEUまたはXIUにより報告されるトラップがあ
れば、PCOでのCx命令は結果取消しされる。サービ
スリクエストが、サイクルゼロでトラップを報告する別
のCEU命令として取り扱われる。もしPCOでのFI
命令が前もって発射取消しされていなかったならば、そ
れは結果取消しされる。PCIおよびPO2での命令は
結果取消しされる。
トラップシーケンスはFI命令を結果取消しする。もし
PCOでのCx命令が格納タイプの命令でなければ、そ
れは結果取消しされる。もしpco  cxでのCX命
令が格納タイプの命令であれば、それは完了するのが許
容される。格納タイプの命令は通常完了し得るかまたは
トラップを報告し得る。前者の場合、pco  cxは
発射取消としてマーク付けされる。もし格納タイプの命
令が例外を報告すれば、それはトラップ状態の一部とな
り、発射取消状態は変化されない、この挙動は、格納タ
イプ命令が一回だけ完了することを保証する。
PCIおよびPO2での命令は結果取消される。トラッ
プの一つまたは複数の原因はトラップレジスタに保管さ
れる。CEUは、トラップの原因およびソース(源)を
指示するために、そのトラップレジスタITRAPを設
定する0例外を報告する各コ・エグゼキューションユニ
ットもまた、それが検出した例外を詳細に示すために、
そのトラップレジスタIF  TRAP。
+ i trap、または!x−trapを設定する。
第23図は、命令実行モデルおよびトラップの発生を図
示する。もしプログラムが条件付き分岐取消しを使用す
るならば、この取消し状態がトラップ状態の一部として
保存されることは重要である0分岐取消し状態は発射取
消し状態に影響する。もしある被挿入XTRAP命令が
トラップを生ずれば、トラップは、条件付き分岐命令の
前または後に生ずる。前者の場合に、トラップは条件付
き分岐を発射取消しし、もし命令ストリームが再スター
トされれば、条件付き分岐は再度取り出されそして発射
される。後者の場合、分岐取消状態は、発射取消がPC
OCX/FIおよびPCI CX/F Iについて設定
されるようにし、そして順次(pcoに論理的に関連付
けられない)被挿入命令は実行されそしてトラップを生
ずる。こうして保管された発射取消状態は、もし命令ス
トリームが再スタートされれば、2つの命令ベアが取り
消されるべきことを指示する。
もし条件付き分岐または条件付き分岐とベアのFl命令
の前の命令がトラップを合図すれば、条件付き分岐命令
は結果取消しされそして発射取消は影響を受けない、も
し命令ストリームが再スタートされれば、条件付き分岐
命令ベアは再度発射されそして分岐取消がパイプライン
プログラムカウンタが更新されるときに生ずる。
トラップシーケンスはプロセッサレジスタに命令ストリ
ームの状態を保管する。これらレジスタの内容は米国特
許出願第136.930号および第      号に述
べられているので参照されたい。これらレジスタ値を、
別のトラップにより破壊されることから保護するために
、トラップシーケンスは別のトラップを不能にする。ト
ラップ処理ソフトウェアは、レジスタが間違いなくメモ
リに格納されるとき、トラップを再度可能化する。特に
、実行の状態を保管するために、ハードウェアトラップ
シーケンスは、 IC0NTEXT、TEをゼロニ設定し、pc。
(トラップポイント)をトラップレジスタ0(%TR0
)に格納し、Pct、(次のプログラムカウンタ)をト
ラップレジスタ1 (%TRI)に格納し、PC2(命
令取出しプログラムカウンタ)をトラップレジスタ2(
%TR2)に格納し、そして、古い特権レベル I C0NTEXT、OPに特権レベルIc0NTEX
T、PLを保管し、発射取消状態をIC0NTEXT、
QSHへ複写し、現行のコ・エグゼキューションブログ
ラムカウンタおよびIPC5CEUを保管するために、
文脈レジスタI C0NTEXTを修正する。IPCF
PUおよびIPc  5CEUの有効性は、個々の機能
ユニットまたはプロセッサ要素により報告される例外状
態に依存する。
%TR01%TRIおよび%TR2に格納されるPC値
および! C0NTEXTに保管される発射取消情報は
、回復されるべき命令ストリームを定める。トラップレ
ジスタl TRAPはPCO(%TR0)での命令ベア
が例外を生じたか否かを指示する0%TRIおよび%T
R2に格納されるPC値はトラップの原因には関係がな
い。
CEUで維持されているコ・エグゼキューションユニッ
トプログラムカウンタ (IPCFPU、IPCIPU、およびlpc  xi
u)は、もしITRAP制御レジスタが、対応するコ・
エグゼキューションユニットが例外を報告したことを指
示する場合のみ、有効である。最終的に、プロセッサは
トラップの原因を記述する情報を集めそしてこれをトラ
ップレジスタITRAP、IF  TRAP。
IX  TRAPおよびII  TRAPG:l:格納
しなければならない。
トラップシーケンスの第3の段階で、プロセッサはトラ
ップハンドラの実行を開始し、IC0NTEXT、pi
をゼロに設定することによりプロセッサの特権レベルを
最大の特権レベルへ変化し、何らの命令も取消されない
よう発射取消状態をクリアし、そしてコンテキストアド
レスゼロで始まるシーケンシャルな実行を引き起こすた
めにPCを設定する。
上述以外、前の命令ストリームはトラップハンドラによ
って継承されない。システムソフトウェアが、いずれの
実行コンテキストのl5TTによってもコンテキストア
ドレス0がマツプないし写像される。トラップパンドラ
は状態を格納し順次ある別のコンテキストへ変化するこ
とを選択し得る。トラップハンドラは特権レベルOで実
行するので、それはカーネル一般レジスタ%CO〜%C
3へのアクセスを持つ。
トラップハンドラは、トラップが生じたとき、例え何が
実行されていても、それからコンテキストアドレス空間
を継承するので、どのコンテキストアドレス空間も、ト
ラップハンドラがスタートすることを要求するコードお
よびデータセグメントをマツプしなければならない。デ
ータマツピングは、レベルOのみへのアクセスを制限す
ることにより、ユーザ命令ストリームから隠され得る。
トラップシーケンスは、進行状態のいずれのコ・エグゼ
キューション命令をも退却するのに必要とされるクロッ
ク数および3つの命令サイクルを取る。割込みはこれら
のサイクル中は受容されない。
フォルトは、実行されている命令ストリームに直接関係
付けられるトラップである。たとえばKSR命令は、オ
ペレーティングシステムサービスをリクエストするかブ
レークポイントをデバッグするのに使用される。システ
ムソフトウェアが、プログラムがそのリクエストの特定
の性質を詳述する情報をそれにより通過するところのイ
ンターフェースを画定する。サービスリクエストが、実
行のサイクルゼロで誤りをおかす任意のその他のCx命
令と同様のトラップ特性を有する。
命令ストリームは特徴的なシステムソフトウェア活動を
要求するので、それは別々に示される。
KSR命令は単一サイクル命令として画定されそして実
行のサイクルゼロでトラップする。KSR命令は通常法
して完了しない、KSR命令のアドレスは%TROに記
録される。トラップステータスはサービスリクエストを
指示しそしてさらにつがいの(ペアの)FI命令がフォ
ルトしたか否かをも指示する。もし命令ストリームが再
スタートされるべきならば、システムソフトウェアは、
CX命令が取消されるよう、取消状態を変更しなければ
ならない、この操作は、サービスコールが完了した後に
完了されるFT命令を結果する。
命令ストリームのある命令の取り出しまたは実行の直接
の結果として何らかの誤りが検出されるとき、例外が合
図される。例外には、データ形のオーバーフロー、アク
セス妨害、パリティ誤り、およびページフォルトが含ま
れる0例外の原因はITRAP、!F  TRAP、!
I  TRAPおよび!X  TRAPレジスタにより
記述される。
複数の命令がコ・エグゼキューションユニットで並列に
実行されるので、一つよりも多い例外が同じサイクルで
合図される。トラップが合図されるとき、ソフトウェア
は、トラップのソースを認定するために、ITRAPの
すべてのソースフラグを検査しなければならない。個々
のユニットは、それら専用のトラップレジスタで追加の
ステータスを報告する。
Cx命令が実行サイクルゼロで例外を合図するとき、そ
れは取り消されそして対応するFI命令は結果取消しさ
れる。もし、FI命令、またはペアの命令の両方が、そ
の第1実行サイクル(サイクルゼロ)で例外を合図すれ
ば、例外を合図するFPUまたはIPU命令のSTまた
は5T64命令のパートナ−を除いて、命令ペアは取り
消されそしてトラップポイントはその命令ペアである。
こうして、実行の保存された状態は、それが例外発生前
にそうであったままである0例外を生じた命令のアドレ
スは%TROに格納される。
第24図に示された例において、add8命令はゼロの
結果遅れを有し、実行のサイクルゼロでオーバーフロー
を報告する。%TROのレジスタ値はo1%TRIは8
.96TR2は010である。加えて、IPCIPUは
05そして例外は正確である。
上述のように、実行のサイクルゼロの後の命令により合
図される例外が命令ストリームに隙間を招来し、%TR
Oと等しくなく対応するプログラムカランタレレジスタ
(! pc register)により指示される。も
し例外が不正確であれば、プログラムカウンタレジスタ
は、%TR○と異なってもよくまた異ならなくてもよく
そして例外を合図する命令を指示しない。
第25図に示される命令シーケンスの例では、FMUL
命令は2の結果遅れを有し、実行のサイクルゼロまたは
2でトラップを報告し得る。もし例外がサイクルOで報
告されれば、%TROは01%TRIは8、%TR2は
010である。
IPCFPUの値はOそして例外は正確である。
第26図に図示された重複実行の例は、データによりF
MUL命令がサイクル2でフォルトを生じる以外は、第
25図のそれと同様である。この場合、%TROはO×
10であり、%TR2はO×20であり、! P CF
 P ULtOテToルー コO)例外は正確である。
第27図に示された例では、FMULは再びサイクル2
で例外を報告する。0×10で命令が例外を報告するし
ないに拘らず、%TROは0×10であり、%TRIは
O×18であり、%TR2は0X2C)Tあり、IPc
  FPUはOである。この例外は正確である。
第28図の命令シーケンスの例で、FMUL命令は再び
サイクル2で例外を報告する。もしFADD命令がサイ
クルゼロ例外を報告すれば、%TROは8であり、%T
R1は0×loであり、%TR2はO×18であり、I
PCFPUは8であり、例外は不正確である。そうでな
ければ、%TROは0×10であり、%TRIは0X1
8であり、%TR2はO×20であり、IPc  FP
Uは8であり、例外は不正確である。
第29図は、その命令シーケンスではデータがFMUL
命令がトラップしないようなデータであるところの命令
シーケンスを図示する。もしFADD命令がサイクルゼ
ロで例外を報告すれば、%TROは8であり、%TRI
はO×10であり、%TR2はo×18であり、 IPCFPUは8であり、例外は不正確である。もしF
ADD命令がサイクル2で例外を報告すれば、%TRO
はO×18であり、%TRIはO×20であり、%TR
2はO×28である。もしO×18のFI命令がオペレ
ーティングFPU命令であれば、FADDの例外は不正
確でありそしてIPCFPUは0X18である。そうで
なければ、FADDの例外は正確であり、IPCFPU
は8である。
第30図に図示の例では、FMUL命令はいずれのフォ
ルトをも生じないデータを有する。
008のCx命令はサイクルゼロでトラップを取る(p
age fault) 、 F P Uはその発射命令
を取消しそしてFMULの結果は%f2へ与えられる。
%TROは8であり、%TRIは○×10であり、%T
R2はO×18であり、 IPCFPUは有効でない。CEUの例外は正確であり
そしてIPC5CEUは8であり、5T64命令はメモ
リシステムフォルトの原因ではなかったことを示す。 
第31図に図示の命令シーケンスは格納タイプの命令が
ソースを読む前に−サイクルの遅れを有するという事実
を利用する。このコードシーケンスは、格納命令がPC
Oによりアドレスされるときもし何らのトラップも起こ
り得ない場合にのみ正しい結果を発生する。
LOAD命令に関する結果遅れは2サイクルであるけれ
ども、5TOPE命令がPCOによりアドレスされると
き何らのフォルトも起こり得ないことが知られれば、同
様にシーケンスを圧縮することが可能である。第32図
に図示されるシーケンスは、たとえCxフォルトがアド
レス0または0×10で生じたとしても、正確でありそ
して再スタート可能である。
すべてのLD、LD64およびST命令が実行のサイク
ルゼロで例外を検出する。こうしてSTTまたはメモリ
システムフォルト(たとえば、missing seg
ment、 missing page)が、%TRO
およびIPC:  5CEUをその命令のアドレスに設
定して、報告される。5T64命令は、サイクルゼロで
(STTに関係した)誤りをまたは(メモリシステムに
より検出される)サイクル7で誤りを報告し得る。非プ
ログラムの誤りが任意の時点で生じ得、そして%TRO
の値は予測不可能である。
本発明の意味のある特徴が、XIUおよびメモリシステ
ムが、割込みをリクエストしそしてダイレクトメモリア
クセス(DMA)を遂行するために被挿入命令を使用で
きることである0本発明の好ましい実施例において、こ
れらの命令はトラップを生じない、そうではなくて、各
被挿入命令は誤りのステータスをそのソースに報告する
。ソースは順次、割込みで誤りのCEUを報告し得る。
被挿入命令が、もしより前の命令がトラップを生ずれば
、発射取消しし得る。
上述のように、割込みとは、主命令ストリームに関連付
けられないがプロセッサの注意を要求する事象である。
割込みがメモリシステムまたはXIUにより発生し得そ
して非同期式の活動を遂行する。発生体は、XTRAP
命令を挿入することによりCEUに対し割込みを付与す
る。CEUは一時に一つの割込みのみを受取り、そして
時々すべての割込みを拒絶し得る。割込みソースが、C
EUが割込みを受取るまで、その割込みを維持する責任
がある。!TRAP制御レジスタは割込みのソースを指
示する。
割込みには、メモリシステム割込み、セル開割込み、お
よびXIU割込みが含まれ得る。メモリシステム割込み
とは、メモリシステムにより発生される割込みをいう、
キャッシュが、それが実行している非同期式動作で、ま
たはそれが保持しているデータで、またはそのメモリシ
ステムの視点で、誤りを検出するときはいつでも割込み
を発生する。メモリ割込みの優先順位はそれを検出する
セルの配置構成により画定される。
セル開割込みがメモリシステムの割込みの特別の場合で
あり、セルのCTL$CCU−CELLjNT制御場所
への書込みの結果としてのみ生ずる。SPA空間の階M
的なレイアウトにより、プロセッサは割込みを、階層構
造のあるレベルの特定のプロセッサまたはプロセッサ群
へ導き得る。
XIU割込みが、入出力完了の時間終了により生ずる。
XTRAP (割込みリクエスト)命令が、例外を生ず
るある命令の前で命令ストリームに挿入されれば、割込
みは受は取られ、それに続く命令は発射取消しされる。
さらに、XTRAP命令がバイブラインに挿入され、そ
して前の命令がXTRAPが発射される前にトラップを
生ずれば、XTRAPは無視され、割込みを有効に拒絶
する。こうして、割込みのリクエストは2重トラップリ
セット(再設定)を生じない、これが生ずるとき、割込
みをリクエストした非同期命令に対する応答はそれが拒
絶されたことを指示する。
割込みが受容されると、通常のトラップシーケンスが起
動される。これは、すべてのコ・エグゼキューションユ
ニット命令が完了しそしてもしあればそれらの例外ステ
ータスを報告するようにさせる。もしいずれのコ・エグ
ゼキューション命令が例外を報告すれば、割込みおよび
例外ステータスはI TRAPで併合されそして報告さ
れる。
加えて、トラップシーケンスが完了するとき、新規な命
令ストリームがコンチクストアドレスOで開始される。
特権レベル0で実行されるこのコードはトラップ作用を
完了するソフトウェアトラップハンドラである。その仕
事はトラップステータスをレジスタに保管し、制御をト
ラップを処理する適当なソフトウェアへ発し、そして後
に中断した命令ストリームを再開するかまたはキャンセ
ルすることである。
トラップはトラップシーケンスにより不能(ディスエー
ブル)にされる、プロセッサは、トラップが可能化(イ
ネーブル)される前にもし別のフォルトが生ずれば、2
重トラップリセットを行う、しかし、割込みを合図する
ためにCCUまたはxIUにより挿入されるXTRAP
命令はトラップを発生せずそしてトラップは不能にされ
る。
マシン状態が安全に格納される前に、もしトラップが再
可能化されれば、その状態は別のトラップにより重ね書
きされ再スタート分析を阻止する。
それゆえ、システムソフトウェアトラップハンドラは最
初トラップ状態を保管しそして順次できるだけ迅速にト
ラップを再可能化することが好ましい。これは、フォル
トを回避するためにコード化されねばならないシステム
ソフトウェアの量をできるだけ最小限にする。トラップ
ハンドラはITRAPを検査しいずれか他のレジスタが
有効であるかを決定しなければならない。
トラップハンドラは、トラップされた先行する命令スト
リームのコンテキストで実行しているので、トラップハ
ンドラが擾乱を与え得る、IC0NTEXT、!i  
context。
If  contextおよび一定のCEU/IPU/
FPU一般レジスタなどのどのレジスタも保全しなけれ
ばならない。
一定のトラップが、システムがある条件に応答しそして
中断された命令ストリームを、あたかもトラップが生じ
なかったかのように、再開することを要求する。それ以
外のものは、トラップが生じた場所以外の場所で破棄な
いし再スタートされる命令ストリームを結果する。これ
らの応答はここではまとめて「命令ストリームの再開」
と呼ばれる。
トラップハンドラは、それが再入を確立し順次特定のト
ラップで作用する特権レベルOで開始する。システムソ
フトウェアが、特権レベルOでトラップを処理し得そし
て順次命令ストリームを再開する。トラップステータス
は、新規な命令ストリームを呼び出すことにより、低い
特権コードへも通され得る。このソフトウェアハンドラ
は、訂正作用を取り得、順次、カーネルがトラップされ
た命令ストリームを再スタートさせるようサービスリク
エストを行う。システムソフトウェアまたは低い特権コ
ードはさらにトラップ命令ストリームを破棄しそして新
規な命令ストリームを開始することを決定できる。
トラップ処理の重要な様相には、例外を報告したFPU
% IPUまたは5T64命令により残された命令スト
リームの隙間を満たすことが含まれる。隙間を満たすこ
との必要性は上述のソースレジスタ制限に基く。これら
の隙間を処理するために、ソフトウェアは、懸垂してい
る命令を「マニュアルに」実行しなければならない。種
々の場合に、命令は、その結果レジスタまたはメモリを
変化することにより、効果的に実行される。たとえば、
オーバーフローした計算が、結果レジスタを最も大きい
有効な値へ設定することにより処理されよう。
ソース値またはマシン状態を変化しそしてフォルト命令
を再実行することをも可能である。このような修正およ
び再実行の例には、算術動゛作の変更またはページをア
クセス可能にすることが含まれる。システムソフトウェ
アは、懸垂している命令の実際のコンテキストアドレス
でその懸垂している命令を発射しそして直ちにカーネル
を再度呼び出すことができる。
特別のコンテキストの例が、システムソフトウェアテキ
スト空間で、懸垂命令のアドレスとしてPCOを、(特
別のオペランドコードとともに)KSR命令のアドレス
としてPCIおよびPO2を有する。懸垂命令とペアの
命令は発射取消を記述するようにしそしてPCIは発射
取消をクリアするようにする。このコンテキストは所望
の命令を発生する。もし懸垂命令が実行のサイクルゼロ
で例外を報告すれば、トラップが直ちに生ずる。
そうでなければ、ksr命令は発射されそしてトラップ
を生じ、もし懸垂命令が単一サイクルであったならば、
それは首尾よく完了している。もし懸垂命令がマルチサ
イクルであれば、プロセッサが定常状態に到達するとき
、懸垂命令はやはり例外を報告し得、または懸垂命令は
正常に完了し得る。
カーネルが再入されるとき、それはトラップステータス
を検査する。もし、懸垂命令が首尾よく完了したならば
、もとのトラップされた命令ストリームは再スタートで
きる。そうでなければ、システムソフトウェアが新規な
フォルトを処理するかまたは命令ストリームを破棄しな
ければならない。
もし、複数の懸垂命令がちとのトラップされた命令スト
リームに存在すれば、それらは上述の技術を使用して逐
次解決できる。システムソフトウェアは、不適当な時間
にユーザが特別のKSR命令を実行しないことを保証す
るために、予防手段を取らなければならない。
トラップが依然として可能化されている間、イトラップ
された命令ストリームのコンテキストのほとんどのもの
が再格納できる。たとえば、トラップが不能化されてい
る間、すべてのFPUおよびIPU一般レジスタ、l 
f  contextレジスタおよびたいていのCEU
レジスタはトラップハンドラにより使用されない、トラ
ップハンドラソフトウェアが適当な回帰モデルを履行す
ると仮定すると、この状態の回復中に生ずるいずれのト
ラップもそれが変化させたいずれの状態をも結果的に回
復するであろう。システムソフトウェアは通常可能化さ
れたトラップで実行するが、それは、トラップされた命
令ストリームを回復する動作の最終部分として、トラッ
プを不能化しなければならない。トラップハンドラが初
期に呼び出されていたとき、回帰的なトラップが状態を
破壊するのを阻止するために、これが必要である。次に
、レジスタ+ C0NTEXTが回復される。最後に、
トラッププログラムカウンタは、lTR01ITRIお
よびlTR2へ再ロードされそして以下のコードが実行
される。
RTT O(%TR0)  /” トラップを可能化し
、IC0NTEXT、 OPLから特権レベルを回復せ
よ、(2つの命令遅れで) ICONTEXT、 QS)lから取消を回復せよ0%
TROにより指定されるトラ ップポイントの命令ベアへ分岐 せよ/ JMP O(%TRI)  /” トラップポイント後
の第1の命令へ飛び越せ。°/ JMP O(%TR2)  /” トラップポイント後
の第2の命令へ飛び越せ、°/ このシーケンスは中断した命令ストリームの状態を回復
しそしてあたかも何らのトラップも生じなかったかのよ
うに、トラップポイントで実行を開始する。3つの連続
した分岐命令の使用は実際前述の遠隔命令技術の一例で
ある。RTT命令により可能化されるトラップおよび特
権レベルの変化は、%TROでの命令が実行されるとき
、影響がある。2つのJMP命令はこのコードを包含す
るセグメントからすでに取り出されている。すべての続
く命令取出しは、特権破壊を検出するために、IC0N
TEXT、PL(7)回復値を使用する。プロセッサ状
態はそれゆえ中断したコードが実行を回復するときにち
ょうど回復される。トラップにより格納される状態は、
復帰シーケンスの前に明らかに回復されそしてシーケン
スにより修正されない。RTT命令により回復される発
射取消し情報は、第1のCxおよびFl命令の個別の取
消し動作および第2の命令ベアの取消し動作を制御する
。この能力は、割込みが、条件付き分岐とそれが取り消
すところの命令との間で生ずるのを可能にしそしてシス
テムソフトウェアが再発射される第1の命令ベアを制御
するのを可能にするために必要である。
システムソフトウェアは、%TRO,%TRIまたは%
TR2のアドレスがアクセス可能であることを保証する
ために、l5TTまたはメモリシステムについて、特別
の予防手段を含む必要はない、これは、これらの命令の
取出し動作に関係するいずれの例外もその命令のトラッ
プ段階中に報告されないからである。たとえば、もし%
TROにより記述されるアドレスを包含するページが欠
損していれば、命令ページフォルトがそのアドレスで生
ずる。
本発明によれば、システムソフトウェアが低次特権フォ
ルトハンドラを呼ぶか、ユーザープログラムに合図する
か、または新規なプロセスを開始するとき、ソフトウェ
アは新規な命令ストリームを開始しなければならない。
これは、トラップ処環ソフトウェアにより保存されたも
のと等価な情報を作成し順次その中断された命令ストリ
ームの実行を回復することにより実現できる。これは、
カーネルモードからユーザーモードへ変化するための好
ましい技術である。
本発明は、上記記載内容から明らかなものの中でも特に
上述の目的を効率よく達成することは明かであろう、特
に、本発明は、それぞれのプロセッサが別のプロセッシ
ング要素へ選択的に命令を主張できそれにより実行の並
列化が改善されそして処理速度が高められるマルチプロ
セッサ方法および装置を提供する。
本発明の技術思想から逸脱することなく、上記動作シー
ケンスおよび上記構成において種々の変更が可能である
ことを理解されたい。たとえば、本発明は第1図に図示
されるものではなくマルチプロセッサ構造体との関係で
実施できる。
4、  の。tiB 第1図は本発明の好ましい実施との関係で使用されるマ
ルチプロセッサ構造体を図示する。
第2図は第1図に図示されるプロセッシングセルの例を
示すブロック図である。
第3図は本発明によるプロセッシングセルの別の実施例
を図示するブロック図である。
第4図は本発明による単一サイクル命令を図示する命令
図である。
第5図〜第6図は、ソースレジスタ制限を破棄する命令
の一例のシーケンス図である。
第7図〜第1O図は、命令表示のためのタイミングおよ
び資源使用を示す概念図である。
第11図は、トラップシーケンスに関係付けられる重複
命令の一例の概念図である。
第12図は、本発明による分岐命令を示す命令図である
第13図〜第19図は、本発明による分岐特性を利用す
る例のプログラムコード図である。
第20図は遠隔実行のためのプログラムコードの例のプ
ログラムコード図である。
第21図〜第23図は本発明によるトラップ、フォルト
および割込みの特徴を図示する概念図である。
第24図〜第32図は、トラップシーケンスに関係付け
られるプログラムコードの例を示すプログラムコード図
である。
FrG 4 88 fadd8. tr%f2%f3%f4FIG、5 18 fsubδ %f2.%f4.%f5 FrG FrG、7 16進ブロクラムカウンタ 16進プログラムカウンク T64 16進プログラムbウンタ 16進プログラムカウンタ fi−insao; cx−insao fLinsb5′ cx−1nsb5 fLinsb5; cx−insb5 fi−insao; ax−insa。
fLinsb5; ex−insb5 fLinsa7 finop; finop; fLinscO: cbr、qn  addra。
xnop Xn0p ax−insco #通常に行鈍る #ドブ終了後 fLinsaO: F I G、  l 7       fLinsal
:addra2:   fLinsa2;ex−ins
a。
Cx−1nsal cx−insa2 fLinsaO: cx−insao fLinsblo   ex−insblfLinsb
2°   cx−insb2fLinsc2: Cx−1nsc2 #普通実行されない 00 fi−ins33: ns33 アドレス 命令 アドレス 命令 1ドレス 命令 アドレス 命令 α−1nsa5 アドレス 命令 アドレス 命令 アドレス 命令 アドレス 命令 %10961に円)

Claims (1)

  1. 【特許請求の範囲】 (1)第1の命令ソースからの命令を含む命令ストリー
    ムを通常に処理するための第1のプロセッシング要素を
    含む相互接続された一組のプロセッシング要素を備えて
    構成されるディジタル処理装置において、 該プロセッシング要素の少くとも一つのプロセッシング
    要素は、第1の命令ソースからの命令と同様の態様で且
    つ該命令の処理順序に影響を与えることなしに、第1の
    プロセッシング要素により処理される一つまたはそれ以
    上の被挿入命令を挿入するための挿入手段を備えたこと
    を特徴とするディジタル処理装置。 (2)前記プロセッシング要素を相互接続し且つ前記命
    令を運ぶための命令パイプライン手段を備え、且つ、 前記挿入手段は、前記被挿入命令の一つまたはそれ以上
    を前記命令パイプライン手段へ挿入する手段を備える請
    求項1に記載のディジタル処理装置。 (3)前記被挿入命令は第1の命令ソースからの命令と
    同様のフォーマットを有する請求項1に記載のディジタ
    ル処理装置。 (4)前記フォーマットは選択された数のディジタル命
    令ビットを包含し且つ該命令ビットの少くとも第1の組
    は第1の命令フィールドを形成する請求項3に記載のデ
    ィジタル処理装置。 (5)前記フォーマットは、選択されるアドレス信号を
    記述するための第1の組のディジタル命令ビットと、選
    択されるコマンド信号を記述するための第2の組のディ
    ジタル命令ビットとを包含する請求項3に記載のディジ
    タル処理装置。 (6)前記第1の命令ソースはメモリ要素を含む請求項
    1に記載のディジタル処理装置。(7)前記メモリ要素
    は、命令を表すディジタル値を格納するための命令キャ
    ッシュ要素を含む請求項6に記載のディジタル処理装置
    。 (8)前記第1のプロセッシング要素は、実行ユニット
    (CEU)を備え、該実行ユニットは、命令が前記命令
    キャッシュ要素から前記CEUへ伝送されるようにする
    ために、前記命令キャッシュ要素へ合図を主張するため
    の手段を備える請求項7に記載のディジタル処理装置。 (9)前記命令には、前記命令キャッシュ要素により挿
    入されるキャッシュ管理命令が含まれる請求項7に記載
    のディジタル処理装置。 (10)前記命令キャッシュ要素は、プログラムのステ
    ップを表す命令を格納するための手段を備える請求項7
    に記載のディジタル処理装置。 (11)第1の命令ソースからの命令を含む命令ストリ
    ームを通常に処理するための第1のプロセッシング要素
    を含む相互接続された一組のプロセッシング要素を備え
    て構成されるディジタル処理装置において、 該プロセッシング要素の少くとも一つのプロセッシング
    要素は、第1の命令ソースからの命令と同様の態様で且
    つ該命令の処理順序に影響を与えることなしに、第1の
    プロセッシング要素により処理される一つまたはそれ以
    上の被挿入命令を挿入するための挿入手段を備え、 前記一組のプロセッシング要素は、周辺装置から受信さ
    れそして周辺装置へ伝送される信号を処理するために入
    出力プロセッシング手段を備え、該入出力プロセッシン
    グ手段は、第1の命令ソースからの命令と同様の態様で
    且つ該命令の処理順序に影響を与えることなしに、第1
    のプロセッシング要素により処理されるダイレクトメモ
    リアクセス(DMA)命令を挿入するために選択された
    信号に応答するDMA挿入手段を備えることを特徴とす
    るディジタル処理装置。 (12)前記入出力プロセッシング手段は、周辺装置か
    ら受信されそして周辺装置により伝送される信号を制御
    するために周辺インターフェースユニット(XIU)を
    備える請求項11に記載のディジタル処理装置。 (13)前記入出力プロセッシング手段は、ディスプレ
    イ装置へ伝送される信号を制御するためのグラフィック
    スコントローラ手段を含む請求項11に記載のディジタ
    ル処理装置。 (14)前記入出力プロセッシング手段には、テキスト
    を表すデータ構造体をサーチするためのテキストサーチ
    手段を含む請求項11に記載のディジタル処理装置。 (15)前記プロセッシング要素のうち少くとも選択さ
    れた一つは、データを表すディジタル値を格納するため
    に少くとも第1の関連のレジスタ手段を備え、且つ、 前記挿入手段は、前記少くとも一つの選択されたプロセ
    ッシング要素に関連付けられた選択されたレジスタ要素
    へのおよび該要素からのデータの移動を制御するために
    命令を挿入する手段を備えた請求項1または請求項11
    のいずれかに記載のディジタル処理装置。 (16)前記プロセッシング要素のうち少くとも一つの
    選択されたプロセッシング要素は、データを表すディジ
    タル値を格納するために少くとも第1の関連のレジスタ
    手段を備え、且つ、 前記挿入手段は、前記少くとも一つの選択されたプロセ
    ッシング要素に関連付けられた選択されたレジスタ要素
    に格納される選択されたディジタル値に基いて選択され
    た論理動作の実行を生じさせるために命令を挿入する手
    段を備える請求項1または請求項11のいずれかに記載
    のディジタル処理装置。 (17)前記プロセッシング要素のうち少くとも一つの
    プロセッシング要素は、トラップ信号への応答で実行さ
    れる選択されたプログラムステップを含むトラップシー
    ケンスを起動するために、トラップ信号に応答するトラ
    ップ手段を備え、そして前記挿入手段はトラップ信号を
    発生するための命令を挿入するための手段を備える請求
    項1または請求項11のいずれかに記載のディジタル処
    理装置。 (18)前記プロセッシング要素のうち少くとも一つの
    プロセッシング要素は、割込み信号への応答で実行され
    る選択されたプログラムステップを含む割込みシーケン
    スを起動するために、割込み信号に応答する割込み手段
    を備え、そして 前記挿入手段は割込みシーケンスを起動するため命令を
    挿入する手段を備える請求項1または請求項11のいず
    れかに記載のディジタル処理装置。 (19)前記割込み手段は割込み信号への応答でトラッ
    プ信号を発生するための手段を含む請求項18に記載の
    ディジタル処理装置。 (20)一組のプロセッシング要素を相互接続し、第1
    の命令ソースからの命令を含む命令ストリームを通常に
    処理するよう少くとも一つの第1のプロセッシング要素
    を構成し、第1の命令ソースからの命令と同様の態様で
    且つ該命令の処理順序に影響を与えることなしに、第1
    のプロセッシング要素により処理される一つまたはそれ
    以上の被挿入命令を挿入するよう、前記プロセッシング
    要素のうち少くとも一つの第2のプロセッシング要素を
    構成する諸段階から構成されるディジタル処理方法。
JP2163027A 1989-06-22 1990-06-22 複数の命令ソースを有するマルチプロセッサシステム Pending JPH03116234A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US37032589A 1989-06-22 1989-06-22
US370325 1989-06-22

Publications (1)

Publication Number Publication Date
JPH03116234A true JPH03116234A (ja) 1991-05-17

Family

ID=23459177

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2163027A Pending JPH03116234A (ja) 1989-06-22 1990-06-22 複数の命令ソースを有するマルチプロセッサシステム

Country Status (6)

Country Link
EP (2) EP0404559B1 (ja)
JP (1) JPH03116234A (ja)
AT (1) ATE218225T1 (ja)
CA (1) CA2019299C (ja)
DE (1) DE69033965T2 (ja)
ES (1) ES2173075T3 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5761413A (en) * 1987-12-22 1998-06-02 Sun Microsystems, Inc. Fault containment system for multiprocessor with shared memory
CA2078315A1 (en) * 1991-09-20 1993-03-21 Christopher L. Reeve Parallel processing apparatus and method for utilizing tiling
CA2078312A1 (en) 1991-09-20 1993-03-21 Mark A. Kaufman Digital data processor with improved paging
US5313647A (en) * 1991-09-20 1994-05-17 Kendall Square Research Corporation Digital data processor with improved checkpointing and forking
US5245563A (en) * 1991-09-20 1993-09-14 Kendall Square Research Corporation Fast control for round unit
ATE294414T1 (de) 2000-05-22 2005-05-15 Infineon Technologies Ag Sicherheits-datenverarbeitungseinheit sowie dazugehöriges verfahren
US7337306B2 (en) 2000-12-29 2008-02-26 Stmicroelectronics, Inc. Executing conditional branch instructions in a data processor having a clustered architecture
FR2831739B1 (fr) * 2001-10-31 2005-07-22 Gemplus Card Int Procede de mise en oeuvre securisee d'un module fonctionnel, dans un composant electronique et composant correspondant
CN1555005A (zh) * 2003-12-29 2004-12-15 ����ͨѶ�ɷ����޹�˾ 动态循环流水线的交叠式命令提交方法
US7937557B2 (en) 2004-03-16 2011-05-03 Vns Portfolio Llc System and method for intercommunication between computers in an array
EP1821211A3 (en) * 2006-02-16 2008-06-18 Technology Properties Limited Cooperative multitasking method in a multiprocessor system
ATE495491T1 (de) * 2006-02-16 2011-01-15 Vns Portfolio Llc Ausführung von anweisungen direkt von der eingabequelle aus
US7934075B2 (en) 2006-02-16 2011-04-26 Vns Portfolio Llc Method and apparatus for monitoring inputs to an asyncrhonous, homogenous, reconfigurable computer array
US7617383B2 (en) 2006-02-16 2009-11-10 Vns Portfolio Llc Circular register arrays of a computer
US7966481B2 (en) 2006-02-16 2011-06-21 Vns Portfolio Llc Computer system and method for executing port communications without interrupting the receiving computer
US7904615B2 (en) 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous computer communication
TW200817925A (en) * 2006-03-31 2008-04-16 Technology Properties Ltd Method and apparatus for operating a computer processor array
US7555637B2 (en) 2007-04-27 2009-06-30 Vns Portfolio Llc Multi-port read/write operations based on register bits set for indicating select ports and transfer directions

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4553203A (en) * 1982-09-28 1985-11-12 Trw Inc. Easily schedulable horizontal computer
WO1984001635A1 (en) * 1982-10-22 1984-04-26 Ibm Accelerated instruction mapping external to source and target instruction streams for near realtime injection into the latter
US4709324A (en) * 1985-11-27 1987-11-24 Motorola, Inc. Data processor control unit having an interrupt service using instruction prefetch redirection
US4888689A (en) * 1986-10-17 1989-12-19 Amdahl Corporation Apparatus and method for improving cache access throughput in pipelined processors

Also Published As

Publication number Publication date
DE69033965D1 (de) 2002-07-04
EP1182544A2 (en) 2002-02-27
ES2173075T3 (es) 2002-10-16
CA2019299C (en) 2002-01-15
CA2019299A1 (en) 1990-12-22
DE69033965T2 (de) 2003-01-09
EP0404559A3 (en) 1994-01-05
ATE218225T1 (de) 2002-06-15
EP0404559A2 (en) 1990-12-27
EP0404559B1 (en) 2002-05-29

Similar Documents

Publication Publication Date Title
US5822578A (en) System for inserting instructions into processor instruction stream in order to perform interrupt processing
US5974538A (en) Method and apparatus for annotating operands in a computer system with source instruction identifiers
US5471593A (en) Computer processor with an efficient means of executing many instructions simultaneously
JP3547482B2 (ja) 情報処理装置
JP3014773B2 (ja) プロセサアーキテクチャ
JPH03116234A (ja) 複数の命令ソースを有するマルチプロセッサシステム
US20040073906A1 (en) Processor with speculative multithreading and hardware to support multithreading software {including global registers and busy bit memory elements}
US20110258421A1 (en) Architecture Support for Debugging Multithreaded Code
WO1990014629A2 (en) Parallel multithreaded data processing system
EP0372751B1 (en) Pipelined data-processing apparatus
JP2003029986A (ja) プロセッサ間レジスタ継承方法及びその装置
Tseng et al. Data-triggered threads: Eliminating redundant computation
US5751986A (en) Computer system with self-consistent ordering mechanism
TW201737060A (zh) 程式迴圈控制
Keckler et al. Concurrent event handling through multithreading
Madoń et al. A study of a simultaneous multithreaded processor implementation
TWI240205B (en) Interrupt handler prediction method and system
Wilson et al. On Tuning the Microarchitecture of an HPS Implementation of the VAX
US9606924B2 (en) System and method for supporting fast and deterministic execution and simulation in multi-core environments
JP3146058B2 (ja) 並列処理型プロセッサシステムおよび並列処理型プロセッサシステムの制御方法
JP6882320B2 (ja) ベクトル命令の処理
Xiang et al. MSpec: A design pattern for concurrent data structures
Singhal et al. A high performance Prolog processor with multiple function units
Ainsworth Prefetching for complex memory access patterns
Shah et al. SPSIM: SuperScalar Processor SIMulater CS305 Project Report