JPH07120338B2 - 共同プロセッサによる命令の実行をデータプロセッサが調整する方法および該データプロセッサ - Google Patents

共同プロセッサによる命令の実行をデータプロセッサが調整する方法および該データプロセッサ

Info

Publication number
JPH07120338B2
JPH07120338B2 JP59076771A JP7677184A JPH07120338B2 JP H07120338 B2 JPH07120338 B2 JP H07120338B2 JP 59076771 A JP59076771 A JP 59076771A JP 7677184 A JP7677184 A JP 7677184A JP H07120338 B2 JPH07120338 B2 JP H07120338B2
Authority
JP
Japan
Prior art keywords
coprocessor
data processor
instruction
execution
instructions
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.)
Expired - Lifetime
Application number
JP59076771A
Other languages
English (en)
Other versions
JPS59201154A (ja
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
Priority claimed from US06/485,671 external-priority patent/US4750110A/en
Application filed by モトロ−ラ・インコ−ポレ−テッド filed Critical モトロ−ラ・インコ−ポレ−テッド
Publication of JPS59201154A publication Critical patent/JPS59201154A/ja
Publication of JPH07120338B2 publication Critical patent/JPH07120338B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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
    • G06F9/3879Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • G06F9/3881Arrangements for communication of instructions and data

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、一般的にはデータプロセッサと共同プロセッ
サ(coprocessor)との間のインタフェースに関するも
のであり、更に具体的に云うと共同プロセッサによる命
令の実行をデータプロセッサが調整する方法および該デ
ータプロセッサに関する。
〔従来の技術〕
データプロセッサがメインフレーム形のものであった時
には、命令又はレジスタセットに対する拡張は典型的に
は中央処理装置(CPU)へ追加の電子装置を単に付け加
えることだけによって実施されたが、重大な拡張は追加
のキャビネット空間および電源容量を必要とした。ミニ
コンピュータの出現により、そのような性能強化は現在
ある密封体(enclosure)内に結合することはより一層
困難になった。CPUを拡張する1つの代わりの方法は別
個の“ハードウェア支援”モジュールにおいて追加の回
路を具えることであった。しかし、この実施にも、さも
なければCPUにとって内部的な信号の多くをモジュール
へワイヤリングハーネスを介して持ち出す必要があっ
た。更に、CPUはモジュールの処理活動を調整するため
に新たな信号を必要とすることがしばしばあった。この
種類のインタフェースの1つの形はPDP−11をFP−11C浮
動小数点プロセッサに結合するためのデジタルエクイッ
プメント社によって用いられた。
マイクロプロセッサが十分発達するにつれて、設計者達
はモノリシック形においては経済的又は技術的に不可能
であった命令/レジスタ性能強化を行う方法を配慮し始
めた。主要な努力はインタフェースの複雑さを減少させ
るために行われた。1つの結論は、より多くの自主性
(autonomy)を新たなハードウェアに組み入れてCPUに
よって与えられる情報および制御を少なくすることであ
った。この新らしい種類の機械は共同プロセッサ(copr
ocessor)として知られるようになった。という訳は、
それらの機械はプロセッサの単純な拡張としてではなく
プロセッサと協力して真に動作するからであった。
一般的に云うと、共同プロセッサには2つの形、即ちプ
ロセッサの命令の流れを監視し共同プロセッサの命令を
検出する形のものと、共同プロセッサ機能に関するすべ
ての情報についてプロセッサに依存する形のものとであ
る。第1の形の1例は、インテル8086プロセッサの命令
を監視して共同プロセッサの命令を探すインテル8087数
字データプロセッサである。この実施には、共同プロセ
ッサがプロセッサの命令待ち行列を追跡できるようにす
るために重要なハードウェアが必要である。更に、8086
/8087インタフェースは共同プロセッシング活動を調整
するためいくつかの専用信号を必要とする。第1の形の
もう1つの例は、ザイログ社28001/2プロセッサユニッ
トである。インテルインタフェースの場合と同様に、ザ
イログインタフェースは共同プロセッサにおけるハード
ウェアの重要な重複(duplication)といくつかの専用
信号を必要とする。第2の形の例はナショナルセミコン
ダクション社のNS16000従続(slave)プロセッサであ
り、これは従属装置としても周辺装置としてもプロセッ
サに結合することができる。
従属装置として共同プロセッサはすべての命令およびオ
ペランド情報についてプロセッサに依存する。このため
にはプロセッサは各共同プロセッサの命令からその共同
プロセッサがその命令についてどんな情報を必要として
いるかを正確に決定できる必要がある。更に、プロセッ
サは各命令内のどこに有効アドレス情報があるかを知り
共同プロセッサのためにオペランドを先取りしなければ
ならない。他の例の場合と同様に、ナショナルセミコン
ダクション社の構成(scheme)は共同プロセッシング活
動を調整するため何本かの専用制御線を必要とする。
専用信号を必要としないで完全に標準バスサイクルに依
存するプロセッサ−共同プロセッサインタフェースは知
られていない。プロセッサが共同プロセッサの命令の具
体的内容について無関心でいることができるインタフェ
ースも知られていない。
〔発明が解決しようとする課題〕
従って、本発明の目的は、特別な制御信号を用いずに共
同プロセッサによる命令の実行をデータプロセッサによ
り調整する方法および該データプロセッサを提供するこ
とである。
本発明のもう1つの目的は、標準バスサイクルのみを用
いて共同プロセッサによる命令の実行をデータプロセッ
サにより調整する方法および該データプロセッサを提供
することである。
本発明のこれらの、およびその他の目的は、第1データ
プロセッサ(データプロセッサ)が実行するために受取
った命令の第2データプロセッサ(共同プロセッサ)に
よる実行を第1データプロセッサ(データプロセッサ)
により調整する方法によって達成され、この方法は前記
命令を受取るステップと、前記受信命令のうちの少なく
とも前記命令の形(type)を示す部分を前記第2データ
プロセッサ(共同プロセッサ)に書込むステップと、前
記第2データプロセッサ(共同プロセッサ)からの応答
を読取るステップと、前記第2データプロセッサ(共同
プロセッサ)による前記命令の実行を支持して前記第1
データプロセッサ(データプロセッサ)により所定タス
クが行われねばならないことを前記応答が示すと前記所
定タスクを選択的に行うステップとを含む。本発明のこ
の局面を実施するための装置(データプロセッサ)も具
えられている。
本発明の更にもう1つの局面の目的は、特別な制御信号
を用いずに選択された共同プロセッサによる命令の実行
をデータプロセッサにより調整する方法および該データ
プロセッサを提供することである。
もう1つの目的は、標準バスサイクルのみを用いて選択
された共同プロセッサによる命令の実行をデータプロセ
ッサにより調整する方法および該データプロセッサを提
供することである。
これらの目的は、前記第1データプロセッサ(データプ
ロセッサ)が受取った命令のアドレス可能な第2データ
プロセッサ(共同プロセッサ)による実行を第1データ
プロセッサ(データプロセッサ)が調整する方法におい
て達成され、この方法は前記命令を受取るステップと、
アドレスの一部として前記命令の一部分を用いて前記第
2データプロセッサ(共同プロセッサ)をアドレスする
ためのアドレスを与えるステップと、前記アドレスにお
ける前記第2データプロセッサ(共同プロセッサ)によ
る前記命令の実行を調整するステップとを含む。本発明
のこの局面を実施するための装置も具えられている。
本発明の更にもう1つの局面の目的は、別のデータプロ
セッサに存在する条件に依存して命令を実行する、共同
プロセッサによる命令の実行をデータプロセッサにより
調整する方法および該データプロセッサを提供すること
である。
もう1つの目的は、データプロセッサがそのデータプロ
セッサに存在する条件を表示(indication)して別の共
同プロセッサがそのような条件に依存して命令を実行で
きるようにする、共同プロセッサによる命令の実行をデ
ータプロセッサにより調整する方法および該データプロ
セッサを提供することである。
これらの目的は、共同プロセッサがデータプロセッサに
存在する条件に依存して命令を実行する方法において達
成され、この方法は前記命令を受取るステップと、前記
命令の実行が依存している条件を決定するステップと、
前記第2データプロセッサ(共同プロセッサ)が前記条
件を評価し前記評価の結果として前記条件が満たされた
ことが前記第2データプロセッサ(共同プロセッサ)に
よって決定されたかどうかの表示を与えよという要求を
前記第2データプロセッサ(共同プロセッサ)に書込む
ステップと、前記表示を読取るステップと、前記表示に
基いて前記命令を選択的に実行するステップとを含む。
本発明のこの局面を実施するための装置も具えられてい
る。
本発明の更にもう1つの局面の目的は、例外が別のデー
タプロセッサによって検出された場合はデータプロセッ
サが例外(exception)ハンドラーの方向に向かう(vec
tor)点に特徴を有する、共同プロセッサによる命令の
実行をデータプロセッサにより調整する方法および該デ
ータプロセッサを提供することである。
もう1つの目的は、例外がデータプロセッサによって検
出された場合には、データプロセッサが別のデータプロ
セッサを例外ハンドラーの方に向ける(vector)点に特
徴を有する、共同プロセッサによる命令の実行をデータ
プロセッサにより調整する方法および該データプロセッ
サを提供することである。
これらの目的は、受信した命令の共同データプロセッサ
による実行をデータプロセッサにより調整する方法にお
いて達成され、この方法は前記命令を受取るステップ
と、前記の受取った命令のうちの少なくとも前記命令の
形を示す部分を前記共同プロセッサに書込むステップ
と、前記共同プロセッサからの応答を読取るステップ
と、前記応答が前記命令の前記実行の期間中に例外が前
記共同プロセッサによって検出されたことを示すならば
所定の例外ハンドラーの方向に向かう(vector)ステッ
プとを含む。本発明のこの局面を実施する装置も具えら
れている。
本発明のもう1つの局面の目的は、共同プロセッサに割
込みを行う点に特徴を有する共同プロセッサによる命令
の実行をデータプロセッサにより調整する方法および該
データプロセッサを提供することである。
もう1つの目的は、割込みの時点における共同プロセッ
サの状態(state)を保管し(save)復元する(restor
e)点に特徴を有する、共同プロセッサによる命令の実
行をデータプロセッサにより調整する方法および該デー
タプロセッサを提供することである。
これらの目的は、データプロセッサが受取った命令の共
同プロセッサによる実行を前記データプロセッサが調整
する方法において達成され、その方法は前記命令を受取
るステップと、前記の受取った命令を実行することを前
記共同プロセッサに指令するステップと、前記命令の実
行に対し選択的に割込みを行うステップと、前記割込み
時における前記共同プロセッサの状態を記憶するステッ
プとを含む。本発明を実施するための装置も具えられて
いる。
本発明のもう1つの局面の目的は、共同プロセッサへの
割込みを選択的に遅延させる点に特徴を有する、共同プ
ロセッサによる命令の実行をデータプロセッサにより調
整する方法および該データプロセッサを提供することで
ある。
もう1つの目的は、共同プロセッサがその割込みを選択
的に遅延させる点に特徴を有する、共同プロセッサによ
る命令の実行をデータプロセッサにより調整する方法お
よび該データプロセッサを提供することである。
これらの目的は、データプロセッサが受取った命令の共
同プロセッサによる実行を前記データプロセッサが調整
する方法において達成され、この方法は前記命令を受取
るステップと、前記受取った命令を実行するように前記
共同プロセッサに指令するステップと、前記共同プロセ
ッサに対し前記実行に割込みを行うように要求するステ
ップと、前記の要求された割込みを遅延させなければな
らないという表示を前記共同プロセッサから受取るステ
ップと、前記遅延期間中に前記共同プロセッサを周期的
にポーリング(polling)して前記共同プロセッサが前
記実行に対し何時割込みを行うかを決定するステップ
と、前記割込み時に前記共同プロセッサの状態を読取る
ステップと、前記状態を記憶するステップとを含む。本
発明のこの局面を実施するための装置も具えられてい
る。
最後に、本発明の更にもう1つの局面の目的は、共同プ
ロセッサのための有効アドレスをデータプロセッサが選
択的に評価する点に特徴を有する、共同プロセッサによ
る命令の実行をデータプロセッサにより調整する方法お
よび該データプロセッサを提供することである。
もう1つの目的は、データプロセッサによる有効アドレ
スの評価を共同プロセッサが選択的に制限する点に特徴
を有する、共同プロセッサによる命令の実行をデータプ
ロセッサにより調整する方法および該データプロセッサ
を提供することである。
これらの目的は、前記データプロセッサが受取った命令
の共同プロセッサによる実行をデータプロセッサにより
調整する方法において達成され、その方法は前記命令を
受取るステップと、前記の受取った命令のうちの少なく
とも前記命令の形を示す部分を前記共同プロセッサに書
込むステップと、前記共同プロセッサからの応答を読取
るステップと、前記応答が前記共同プロセッサによる前
記命令の実行を支持して前記アドレスが前記データプロ
セッサによって評価されなければならないことを示す場
合には前記命令における有効アドレスを評価するステッ
プとを含む。本発明のこの局面を実施するための装置も
具えられている。
〔課題を解決するための手段〕
本発明の構成は以下に示す通りである。即ち、 通信バスにより共同プロセッサと結合されたデータプロ
セッサが、データプロセッサが受信した命令を共同プロ
セッサに実行させる場合に、通信バスを介して通信バス
上の標準バスサイクルのみを使用してその実行を調整す
る方法であって、 前記命令は命令の型を示すタイプフィールドを含むもの
であって、 データプロセッサが命令を受取るステップと、 データプロセッサは受取った命令のうち少なくともタイ
プフィールドを、標準バスサイクルを使用してデータプ
ロセッサのアドレス空間内の独特のアドレスにおいて、
共同プロセッサに書込むステップと、 共同プロセッサが前記命令上のタイプフィールドを受信
した後、データプロセッサは、標準バスサイクルを使用
して独特のアドレスにおいて共同プロセッサからの応答
を即座に読取るステップと、 データプロセッサが前記応答を検査するステップと、 前記応答が共同プロセッサが前記命令を実行できるよう
にするためにはデータプロセッサが所定のタスクを実行
しなければならないことを示す場合において、データプ
ロセッサが前記応答によって選択される所定のタスクを
選択的に実行するステップと、 前記応答が共同プロセッサによる命令の実行を支援する
ために、データプロセッサが実行しなければらならない
前記所定のタスク以外のタスクを選択した場合におい
て、データプロセッサは所定の例外ハンドラーに前記所
定のタスク以外のタスクを向けるステップと、 を具える共同プロセッサによる命令の実行をデータプロ
セッサが調整する方法としての構成を有する。
或いはまた、通信バスにより共同プロセッサと結合され
たデータプロセッサであって該データプロセッサは、命
令及びデータを通信バスより受信し、受信した命令を共
同プロセッサに実行させる場合に通信バスを介して特別
のバスサイクルを要求することなくその実行を調整する
データプロセッサであって、 前記共同プロセッサは、命令の一般のアドレス部分と、
命令のアドレスフィールドに含まれる共同プロセッサに
特有の値とを結合して生成される独特のアドレスに応答
するものであり、 該データプロセッサは、 通信バスと結合されたデータプロセッサにより命令を受
取る第1手段と、 受取った命令の一般のアドレス部分と、命令のアドレス
フィールドに含まれる共同プロセッサに特有の値とを結
合することにより独特のアドレスを与える第2手段と、 前記第2手段により与えられたアドレスにおいて、共同
プロセッサによる命令の実行を調整する第3手段と、 を具え、 共同プロセッサは、命令の実行において、共同プロセッ
サに使用される複数のレジスタを有し、 レジスタの各々は、共同プロセッサに独特のアドレスの
範囲内でそれぞれのアドレスに応答するものであり、 前記それぞれのアドレスは、レジスタの各々が共同プロ
セッサによる命令の実行を調整する前記第3手段により
必要とされる場合に前記第2手段により与えられること
を特徴とする共同プロセッサによる命令の実行を調整す
るデータプロセッサとしての構成を有する。
或いはまた、標準バスサイクルを使用する通信バスによ
り結合されたデータプロセッサ及び共同プロセッサが協
動動作する共同処理システムにおいて、 データプロセッサが選択された単一の命令を実行する方
法であり、該命令の実行は、共同プロセッサに存在する
選択された条件の状態に付随するものであって、該命令
を実行する方法は、 該命令の実行の第1部分において、データプロセッサ
は、共同プロセッサに存在する選択された条件の状態を
評価する要求を共同プロセッサに書込み、共同プロセッ
サは選択された条件の状態を評価し、評価の結果として
選択された条件が満足されたか否かを示す指示をデータ
プロセッサに提供するステップと、 該命令の実行の第2部分において、データプロセッサ
は、前記要求に応答して共同プロセッサにより与えられ
た前記指示を読出すステップと、 該命令の実行の最後の部分において、データプロセッサ
は、前記指示により示された共同プロセッサによる評価
の結果に基いて命令の実行を選択的に完了するステップ
と、 を具える共同プロセッサによる命令の実行をデータプロ
セッサが調整する方法としての構成を有する。
或いはまた、標準バスサイクルを使用する通信バスによ
り結合されたデータプロセッサ及び共同プロセッサが、
協動動作する共同処理システムにおいて、選択されたプ
ログラムの処理中にデータプロセッサが単一命令を受信
し、該単一命令を共同プロセッサに実行させる場合にデ
ータプロセッサが共同プロセッサによる該単一命令の実
行を調整し、 共同プロセッサは、データプロセッサと同一の命令スト
リームに追随せず、データプロセッサは、単一命令の実
行中、共同プロセッサの処理に選択的に割込む方法であ
って、 通信バスによってデータプロセッサと共同プロセッサと
を結合するステップと、 データプロセッサが通信バスを介して単一命令を受取る
ステップと、 データプロセッサが受取った単一命令を共同プロセッサ
に実行させるため、共同プロセッサに通信バスを介して
命令するステップと、 共同プロセッサによる単一命令の実行中に選択されたプ
ログラムの処理への割込み信号をデータプロセッサが通
信バスを介して受信した場合に該受信信号に応答して、
データプロセッサが共同プロセッサに単一命令の実行を
中断することを通信バスを介して要求するステップと、 データプロセッサは実行を中断するという前記要求を受
取った旨の応答である共同プロセッサからの指示及び要
求された単一命令の実行の中断が、単一命令の実行にお
いて選択された時点まで共同プロセッサによって遅延さ
れなければならないことの指示であって、共同プロセッ
サの中断を要求するデータプロセッサに応答してのみ与
えられる指示を共同プロセッサから受取るステップと、 データプロセッサは共同プロセッサが単一命令の実行の
中断を遅延する期間中に通信バスを介して共同プロセッ
サを周期的にポーリングするステップと、 データプロセッサは共同プロセッサが単一命令の実行を
中断した時点で、通信バスを介して共同プロセッサの状
態を読取るステップと、 データプロセッサが共同プロセッサの前記読取られた状
態を記憶するステップと、 割込み処理の終了後、データプロセッサは共同プロセッ
サの状態を通信バスを介して前記記憶した状態まで選択
的に回復し、選択したプログラムの処理を再開すること
によって共同プロセッサが、実行中の選択された時点か
ら単一命令の実行を再び始めるステップと、 を具える共同プロセッサによる命令の実行をデータプロ
セッサが調整する方法としての構成を有する。
或いはまた、標準バスサイクルを使用する通信バスによ
り結合されたデータプロセッサ及び共同プロセッサが、
協動動作する共同処理システムにおいて、選択されたプ
ログラムの処理中にデータプロセッサが単一命令を受信
し、該単一命令を共同プロセッサに実行させる場合にデ
ータプロセッサが共同プロセッサによる該単一命令の実
行を調整し、 共同プロセッサは、データプロセッサと同一と命令スト
リームに追随せず、データプロセッサは、単一命令の実
行中、共同プロセッサの処理に選択的に割込む方法であ
って、 通信バスによって共同プロセッサとデータプロセッサと
を結合するステップと、 共同プロセッサがデータプロセッサから単一命令を実行
するコマンドを通信バスを介して受取るステップと、 共同プロセッサが単一命令を実行するステップと、 共同プロセッサは受取った単一命令の実行期間中にデー
タプロセッサから共同プロセッサによる単一命令の実行
を中断する要求を通信バスを介して受取るステップと、 共同プロセッサはデータプロセッサから要求された単一
命令の実行の中断を実行中の所定の時点まで遅延しなけ
ればならないということを決定するステップと、 共同プロセッサはデータプロセッサから要求された単一
命令の実行の中断が、共同プロセッサにより遅延されな
ければならないと云う指示であり、中断することを要求
するデータプロセッサにのみ応答して与えられる指示を
データプロセッサに与えるステップと、 実行中の所定の時点において、共同プロセッサにより単
一命令の実行を中断するステップと、 共同プロセッサは実行が中断されたと云う指示を通信バ
スを介してデータプロセッサに与えるステップと、 共同プロセッサは単一命令の実行を中断した時点で共同
プロセッサの状態を通信バスを介してデータプロセッサ
に提供するステップと、 割込み処理の終了後、共同プロセッサはデータプロセッ
サに提供した共同プロセッサの状態を通信バスを介して
データプロセッサから再び受取るステップと、 共同プロセッサは、共同プロセッサの状態を前記受取っ
た状態に回復し、実行中の所定の時点から単一命令の実
行を再開するステップと、 を具える共同プロセッサによる命令の実行をデータプロ
セッサが調整する方法としての構成を有する。
或いはまた、標準バスサイクルを使用する通信バスによ
り結合されたテータプロセッサ及び共同プロセッサが協
動動作する共同処理システムにおいて、共同プロセッサ
はデータプロセッサと同一の命令の流れには追随せず、
データプロセッサが単一命令を受取り、その単一命令を
共同プロセッサに実行させる時、共同プロセッサによる
単一命令の実行を制御するのに適合したデータプロセッ
サであって、 該データプロセッサは、 命令を受取る第1手段と、 受取った命令を実行するように共同プロセッサに命令す
る第2手段と、 実行中の命令に含まれる有効アドレスを選択的に評価す
る要求を示す共同プロセッサからの応答を読取る第3手
段と、 共同プロセッサが命令を実行できるようにするためには
データプロセッサによって有効アドレスが評価されなけ
ればならないことを前記応答が示す場合に、命令中の選
択された有効アドレスを評価する第4手段と、 を具え共同プロセッサが命令を実行するのに必要なオペ
ランドの有効アドレスをデータプロセッサが選択的に評
価し、データプロセッサ及び共同プロセッサの両方が独
立に動作し、共同プロセッサはデータプロセッサと同一
の命令の流れに追随しないことを特徴とする共同プロセ
ッサによる命令の実行を調整するデータプロセッサとし
ての構成を有する。
或いはまた、標準バスサイクルを使用する通信バスによ
り結合された汎用のデータプロセッサ及び複数の専用の
共同プロセッサが協動動作するデータ処理システムであ
って、 命令の第1所定のサブセットの各々を独立にデコード
し、かつ実行するのに適合した汎用のデータプロセッサ
と、 命令のそれぞれの第2所定のサブセットの各々を独立に
デコードし、かつ実行する場合において、汎用のデータ
プロセッサと協動動作するのに適合した任意の複数の専
用の共同プロセッサと、 を具え、 命令の単一の流れに応答するデータ処理システムにおい
て、 汎用のデータプロセッサが命令の流れを構成する複数命
令の各々を受取るステップと、 汎用のデータプロセッサは受取った命令の各々の所定の
オペレーションビットフィールドにおいて、命令の第2
所定のサブセットを構成する命令を特徴付ける所定の値
を検出するステップと、 汎用のデータプロセッサは検出された命令の各々の所定
のコマンドビットフィールドから生成される任意の複数
の所定のコマンド信号値の1つを専用の共同プロセッサ
に与えるステップであって、その所定のコマンド信号値
の各々は、汎用のデータプロセッサが検出した命令を実
行するために専用の共同プロセッサが実行しなければな
らないことを指示するものである前記ステップと、 汎用のデータプロセッサは専用の共同プロセッサによる
前記コマンド信号値の受信に応答して専用の共同プロセ
ッサから複数の応答信号値のうちの何れかからなる応答
を受取り、その応答信号値の各々は、専用の共同プロセ
ッサが前記コマンド信号値による指示を実行できるよう
にするためには汎用のデータプロセッサが所定のタスク
を実行しなければならないかどうかを指示するステップ
と、 汎用のデータプロセッサは受取った前記応答信号値によ
り指示された場合、前記所定のタスクを実行するステッ
プと、を具える共同プロセッサによる命令の実行をデー
タプロセッサが調整する方法としての構成を有する。
或いはまた、標準バスサイクルを使用する通信バスによ
り結合された汎用のデータプロセッサ及び複数の専用の
共同プロセッサが協動動作するデータ処理システムであ
って、 命令の第1所定のサブセットの各々を独立にデコード
し、かつ実行するのに適合した汎用のデータプロセッサ
と、 命令のそれぞれの第2所定のサブセットの各々を独立に
デコードし、かつ実行する場合において、汎用のデータ
プロセッサと協動動作するのに各々適合した任意の複数
の専用の共同プロセッサと、 を具え、 命令の単一の流れに応答するデータ処理システムにおい
て、 各共同プロセッサは命令の第2所定のサブセットを構成
する命令の各々の所定のコマンドビットフィールドから
生成される複数の所定のコマンド信号値のうちの何れか
を汎用のデータプロセッサから受取るステップであっ
て、 その所定のコマンド信号値の各々は、汎用のデータプロ
セッサが命令を実行するために共同プロセッサが実行し
なければならない複数の所定のコマンドのうちの選択さ
れた1つを指示するものである前記ステップと、 各共同プロセッサは前記受取ったコマンド信号値により
指示された選択されたコマンドの1つを共同プロセッサ
が実行できるようにするために、汎用のデータプロセッ
サが実行しなければならない複数の所定のタスクのうち
の選択された1つを決定するステップと、 各共同プロセッサは共同プロセッサが前記選択されたコ
マンドを実行できるようにするために、汎用のデータプ
ロセッサが実行しなければならない前記選択されたタス
クを指示する所定の応答信号値を有する応答を汎用のデ
ータプロセッサに与えるステップと、を具える複数の共
同プロセッサの内の任意の1つの共同プロセッサによる
命令の実行をデータプロセッサが調整する方法としての
構成を有する。
〔概要〕
標準バスサイクルを使用してデータプロセッサが共同プ
ロセッサに対してインタフェースするためのシステムで
ある。データプロセッサが、命令の流れの中に特定のオ
ペレーションワードフォーマットを有する命令を受取る
と、オペレーションワード内の共同プロセッサ識別フィ
ールドによって指定された特定の共同プロセッサに対し
てオペレーションワードに続くコマンドワードを転送す
る。コマンドワードをデコードすると、共同プロセッサ
は、共同プロセッサがコマンドを実行できるように共同
プロセッサがデータプロセッサに対して要求する機能を
定義する応答根源語のセットの内のいずれかとともに応
答する。インタフェースは、適当な例外ハンドラーに選
択を向けることを含む共同プロセッサが必要とするすべ
ての機能を提供する。
〔実施例〕
第1図には、データプロセッサをイネーブルさせてデー
タプロセッサの命令の流れのなかにある命令を実行する
上で共同プロセッサと調整するインタフェースが示され
ている。一般的に云うとこのインタフェースは新らしい
データ型を与えるため、又は特殊化データ動作を追加す
るために現在あるデータプロセッサの命令セットを拡張
するための機構と考えることができる。このインタフェ
ースの基本的目的は、ソフトウェアプログラマのモデル
の拡張を助長して、遂次命令実行の過程のうちに利用で
きる追加機能を含むことである。共同プロセッサはデー
タプロセッサにとってはCPUアドレス空間にある1組の
インタフェースレジスタのように思われるが、これらの
レジスタは共同プロセッサによって実際に実施されるソ
フトウェアプログラマモデルに対する拡張とは必ずしも
関係はない。
このインタフェースはデータプロセッサとすべての関連
共同プロセッサとの間の同期(非並行:non−concurren
t)動作にできるだけ近くエミュレートするように設計
されている。この非並列モデルに必要と認められている
特徴だけがこのインタフェースの定義には含まれる。デ
ータプロセッサの非同期(並行)拡張を支援することが
できる特徴が利用可能であるが、本発明のインタフェー
スはそのような拡張を全面的に支援するようには設計さ
れていない。他方、本発明のインタフェースは、そのイ
ンタフェースを用いるように適合している共同プロセッ
サが、そのインタフェースを実施しないプロセッサによ
って周辺装置として用いられるように設計されている。
という訳は、データプロセッサはインタフェースのプロ
トコルを適当にエミュレートする命令順序を単に実行し
うるだけであるからである。
下記の資料(material)において、共同プロセッサは、
いくつかの独特な状態のうちのどの状態も想定可能なも
のと考えられている。
Init 初期設定され、リセットされるか又は空である(empt
y);これはレジスタの内容を何らかの所定値に初期設
定することを含むことがある;命令実行を開始する準備
ができている。
Idle−Done アイドル、ビジーでない、データプロセッサからの新し
い指令を待機中;任意の以前の指令の結果をプロセッサ
は利用できる。レジスタはオペランドおよび/又は以前
の動作の結果を含むことがある。
Idle−Excp アイドル、ビジーでない、しかし例外は何らかの以前の
出来事(incident)の故に未決定である。(例外の型は
下記に更に詳述する。) Busy−Srvc ビジー、占有されている、何らかのサービスがデータプ
ロセッサにより行われるのを待機中;要求されたサービ
スが行われるまで前へ進まない。(利用可能なサービス
については後述する。) Busy−Wait ビジー、何らかの作業を実行中であるか、このタスクを
完了するために主データプロセッサからの追加のサービ
スを必要としている。
Busy−Free ビジー、現在の又は以前のタスクに占有されており、デ
ータプロセッサからの追加のサービスは必要としない。
本発明のインタフェースにおいては、データプロセッサ
を物理的に共同プロセッサに接続するのに特殊化バス信
号は必要としない。データプロセッサと共同プロセッサ
との間のすべての通信活動は標準バスサイクルを用いて
行われる。しかし、従来の周辺装置と矛盾せずに共同プ
ロセッサをアドレスする能力を与えるために、割込み肯
定応答アドレス空間(機能コード111)が拡張されてCPU
アドレス空間を含んでおり、そのCPUアドレス空間の一
部が共同プロセッサの専用となっている。従って、任意
の他の周辺装置と同じ方法で各共同プロセッサをデータ
プロセッサに接続することができ、各共同プロセッサに
はCPUアドレス空間内の独自の(unique)アドレスが割
当てられている。任意の他の周辺装置の場合と同様に、
各共同プロセッサはデータプロセッサがその共同プロセ
ッサのレジスタのうちのどのレジスタをアクセスした場
合にもデータサイズ肯定応答(DSACK)を常に戻さねば
ならない。
一般にすべてのプロセッサ間転送はデータプロセッサに
よって開始される。例えば、各共同プロセッサの命令の
実行中に、データプロセッサは指令情報およびオペラン
ドを適当な共同プロセッサに書込み、共同プロセッサか
らサービス要求、結果および状況情報を読取る。
第2図Aに示すように、データプロセッサはCPUアドレ
ス空間機能コードを出しアドレスバス上に適当な共同プ
ロセッサのアドレスを与えることによって共同プロセッ
サに対する書込みサイクルを開始する。次にデータプロ
セッサはアドレスストロープ(AS)を実行に移し(asse
rt)読取り/書込み(R/W)を否定してその転送が書込
みであることを示す。次にデータがデータバス上に与え
られ、データストローブ(DS)が実行に移される。選択
された共同プロセッサがデータバスからデータをラッチ
し、データサイズ肯定応答(DSACK)を実行に移して転
送を肯定応答した後に、データプロセッサはアドレスお
よびデータストローブを否定し、アドレスおよびデータ
バスをスリーステート(three−state)にする。次に共
同プロセッサはDSACKを否定することによってバスサイ
クルを終了させる。
第2図Bに示すように、データプロセッサはCPUアドレ
ス空間機能コードを出しアドレスバス上に適当な共同プ
ロセッサアドレスを与えることによって共同プロセッサ
から読取りサイクルを開始する。次にプロセッサはR/W
を実行に移し転送が読取りであることを示し、アドレス
およびデータストローブを実行に移す。次に選択された
共同プロセッサはデータバス上にデータを与え、DSACK
を実行に移すことによって転送に対し肯定応答をする。
データバスからデータをラッチした後に、データプロセ
ッサはアドレスおよびデータストローブを否定し、アド
レスおよびデータバスをスリーステートにする。次に共
同プロセッサはDSACKを否定しデータバスをスリーステ
ートにすることによってバスサイクルを終了させる。
共同プロセッサ命令 第3図に示すように、すべての共同プロセッサ命令はそ
の第1語の最初の4ビットに16進“F"(即ちすべて1)
を有することによって区別される。この“Fライン”は
動作語を構成し、それによりデータプロセッサが命令実
行を調整する特定の共同プロセッサを指定する共同プロ
セッサ識別フィールド(Cp−ID)、および行われる具体
的な動作、即ち一般、ブランチ、条件付き、保管又は復
元をプロセッサに示す型フィールドを含む。共同プロセ
ッサの命令の型に応じて、追加拡張語が必要になるかも
しれない。
保管動作を除いて、すべての共同プロセッサ命令型はデ
ータプロセッサが命令実行を調整する場合に従う典型的
なプロトコルを有する: (a)指定された共同プロセッサへの何らかの指令情報
の書込み。
(b)受取る指令情報に対する共同プロセッサの応答の
読取り。
(c)その応答がデータプロセッサが多忙すぎて情報を
受取ることができないことを示すと、データプロセッサ
は上記(a)に戻る。
(d)応答が何らかの例外状態を示すと、データプロセ
ッサは適当な例外取扱い手続きを始める前にその例外に
対して肯定応答を行う。
(e)共同プロセッサが情報に応答する前に計算などの
何らかの他の行動を完了しなければならないことを応答
が示す場合には、データプロセッサは上記(b)に戻
る。
(f)共同プロセッサにとってデータプロセッサが有効
アドレス(EA)の評価およびEAと共同プロセッサとの間
のオペランドの転送などの何らかの機能を行う必要があ
ることを示すと、データプロセッサは要求された機能を
行い上記(b)に戻る。
(g)共同プロセッサがこれ以上の援助を必要としない
ことを応答が示すと、データプロセッサはデータプロセ
ッサの命令の流れのなかの次の命令へ進む。
いくつかの命令型についての下記の説明において、重点
は交換される具体的な情報ならびに共同プロセッサのた
めに行うためにデータプロセッサが呼び出される具体的
機能に置かれている。
第3図に示してある一般命令の形は、最も普通の共同プ
ロセッサデータ操作命令を記述するのに用いられる。こ
の一般命令は特定の共同プロセッサ指令を定義する少な
くとも1つの拡張語を含む。この拡張語は指令語(コマ
ンドワード)として定義され、先ず最初にデータプロセ
ッサによって共同プロセッサに書込まれ、命令を実行す
る上で共同プロセッサの協力を要求する。オペランドが
取出されるか又は記憶されることを命令が要求すると、
有効アドレスフィールドはそのオペランドをアクセスす
るのに必要な情報を含む。取出されたり、又は記憶され
るオペランドがない場合には、有効アドレスフィールド
は雑(付帯)情報を含む。
一般的に云って、データプロセッサはメモリ参照(momo
ry references)を2種類、即ちプログラム参照とデー
タ参照に分ける。この区別の結果2つのアドレス空間が
生じ、各空間は完全な論理アドレス範囲を有する。プロ
グラム参照は現在実行されつつあるプログラムの目的テ
キストへのアクセスを意味する。従ってすべての命令取
出しはプログラム空間において行われる。データ参照は
命令によって必要とされるオペランドへのアクセスを意
味する。命令の流れに含まれている即値オペランド(im
mediate operand)を除いて、オペランド読取りはデー
タ空間において行われる。すべてのオペランド書込みは
データ空間において行われる。
下記の説明において、データプロセッサ内のレジスタは
下記の簡単記述法を用いて参照される: An =アドレスレジスタn Dn =データレジスタn Rn =任意のレジスタn PC =プログラムカウンタ SR =状況レジスタ SP =アクティブスタックポインタ USP=ユーザスタックポインタ MSP=主スタックポインタ ISP=割込みスタックポインタ SSP=スーパーバイザスタックポインタ インディレクション(indirection)とは、有効アドレ
スとしてではなく有効アドレスを含むロケーションとし
て指定された目的又はアドレス値をとる動作である。例
えば、アドレスレジスタがオペランドのホルダとしてで
はなくオペランドに対するポインタとして用いられる場
合には、そのアドレス指定モードはアドレスレジスタイ
ンディレクト(Address Register Indirect)として参
照される。インディレクションの簡略記号は“”イン
ディレクションオペレータである。
代表的な場合には、レジスタ選択は命令内のレジスタフ
ィールドのレジスタナンバーを指定することによって行
われる。命令のその他のフィールドは、参照がデータレ
ジスタであるか又はアドレスレジスタであるかどうかを
指定し、選択されたレジスタがどのように用いられるか
を指定する。
大部分の命令は動作ワード(語)における有効アドレス
(EA)フィールドを用いてオペランドのロケーションを
指定する。EAは2つの3ビットサブフィールド、即ちモ
ード指定フィールドおよびレジスタ指定フィールドから
なる。アドレスモードの各々はEAのモード指定サブフィ
ールドの特定値によって選択される。しかし、指定され
た有効アドレスモードによっては、EAを完全に指定する
のに更に情報が必要なことがある。EA拡張と呼ばれるこ
の情報は後に続く語にあって命令の一部と考えられる。
特定の各命令のための有効アドレスフィールド位置は第
3図に示されている。妥当な有効アドレスフィールド指
定は下記を含む: 1.レジスタディレクトモード;これらのモードはオペラ
ンドが16個の多機能レジスタのうちの1つにあることを
指定する。
データレジスタディレクト(Date Register Direct): 表示法 :Da モード :000 レジスタ:n オペランドはEAレジスタフィールドによって指定される
データレジスタ内にある。
アドレスレジスタディレクト(Address Register Direc
t): 表示法 :An モード :001 レジスタ:n オペランドはEAレジスタフィールドによって指定された
アドレスレジスタ内にある。
2.メモリアドレスモード:これらのEAモードはメモリ内
にあるオペランドのアドレスを指定する。
アドレスレジスタインディレクト(Address Register I
ndirect): 表示法 :An モード :010 レジスタ:n オペランドのアドレスはレジスタフィールドによって指
定されたアドレスレジスタ内にある。この参照例(refe
rence)はデータ基準として分類される。
ポストインクリメントをもったアドレスレジスタインデ
ィレクト 表示法 :An モード :011 レジスタ:n オペランドのアドレスはレジスタフィールドによって指
定されたアドレスレジスタ内にある。オペランドアドレ
スが用いられた後に、オペランドのサイズがバイト、ワ
ード又はロング(長さ)であるかどうかによってそれぞ
れ1,2又は4だけ増分される。アドレスレジスタがスタ
ックポインタでありオペランドサイズがバイトである
と、アドレスは1ではなく2だけ増分されてスタックポ
インタをワード境界にとどめておく。この参照例はデー
タ基準として分類される。
プリデクリメントをもったアドレスレジスタインディレ
クト 表示法 :An モード :100 レジスタ:n オペランドのアドレスはレジスタフィールドによって指
定されたアドレスレジスタ内にあるが、但しオペランド
アドレスが使用される前に、アドレスはオペランドサイ
ズがバイト、ワード又はロング(長さ)であるかどうか
によってそれぞれ1,2又は4だけ減分される。アドレス
レジスタがスタックポインタであってオペランドサイズ
がバイトであると、アドレスは1ではなく2だけ減分さ
れてスタックポインタをワード境界にとどめておく。こ
の参照例はデータ基準として分類される。
変位をもったアドレスレジスタインディレクト 表示法 :An (d) モード :101 レジスタ:n このアドレスモードは1拡張ワード(語)を必要とす
る。オペランドのアドレスは、アドレスレジスタ内のア
ドレスと、拡張語内の符号拡張変位数との和である。こ
の参照例はデータ基準として分類される。
指標/インディレクトをもったアドレスレジスタインデ
ィレクト このアドレスモードは2つの相異なる拡張書式を用い
る。簡潔な書式は迅速な指標付きアドレス指定を行い、
一方全書式は変位のサイズおよびインディレクションに
おける多数のオプションを与える。
両方の書式は指標オペランドを用いる。表示法ではこの
指標オペランドは“Ri.sz.scl"と指定されている。“R
i"は指標レジスタのために一般データ又はアドレスレジ
スタのうちの1つを選択する。項“sz"は指標のサイズ
を云い、“W"又は“L"であってよい。項“scl"指標スケ
ール選択を云い、1,2,4又は8のうちのどれでもよい。
指標オペランドは指標レジスタから誘導される。指標レ
ジスタは、第1拡張語においてビット〔15〕=0であれ
ばデータレジスタであり、ビット〔15〕=1であればア
ドレスレジスタである。指標レジスタのレジスタ番号は
拡張語のビット〔14:12〕によって与えられる。指標サ
イズは拡張語のビット〔11〕によって与えられ、ビット
〔11〕=0であれば、指標値は指標レジスタの符号拡張
下位語整数であり、一方ビット〔11〕=1であれば指標
値は指標レジスタにおける倍長整数(long integer)で
ある。最後に、指標値はビット〔10:7〕におけるスケー
リング(scaling)選択によってスケールされ、指標オ
ペランドを与える。スケール選択00,01,10又は11はそれ
ぞれ1,2,4又は8による指標値のスケーリングを選択す
る。
簡潔書式指標付け 表示法 :An (di,Ri.sz.scl) モード :110 レジスタ:n このアドレスモードは1拡張語を必要とする。オペラン
ドのアドレスは、アドレスレジスタにおけるアドレス、
拡張語の下位8ビットにおける符号拡張変位整数および
指標オペランドの和である。この参照例はデータ基準と
して分類される。
全書式指標付け又はメモリインディレクト 表示法 :下記を参照せよ モード :110 レジスタ:n このアドレスモードは1〜5の拡張語を必要とする。全
書式指標付けアドレスモードは非常に多様且つ強力なア
ドレス発生能力を与える。このモードは下記の追加能力
のいかなる組合せも提供する: a.(8ビット変位の代わりの)ワード又はロング変位。
b.アドレス計算におけるベースレジスタ又は指標オペラ
ンドの抑制(その値を零とする) c.アドレス計算におけるインディレクションの追加レベ
ル、指標付けはインディレクションの前又は後に起き
る。
全書式アドレス指定形式は下記の通りである。
An (dsize) (dsize) An (dsize,Ri.sz.scl) An (dsize,Ri.sz.scl) (dsize) An (dsize) (dsize,Ri.sz.scl) ×××.W (dsize) ×××.W(Ri.sz.scl) ×××.W(Ri.scl) (dsize) ×××.W (dsize,Ri.sz.scl) ×××.L (dsize) ×××.L(Ri.sz.scl) ×××.L(Ri.sz.scl) (dsize) ×××.L (dsize,Ri.sz.scl) sz=Lおよびscl=1、これらのアドレス指定形式はD
i (dsize)アドレス指定を与える。
“dsize"オペランドは変位である。これらはヌル(nul
l)(零とされる)又はワード又はロング変位でもよ
い。“Ri.sz.scl"は指標オペランドであり、これは任意
選択で抑制してもよい。許されているメモリインディレ
クトの1レベルがあり、指標オペランドはメモリインデ
ィレクションステップの前(プリインデクシング)又は
後(ポストインデクシング)に加算してもよい。インデ
ィレクションステップは指定されたロケーションからロ
ングワードアドレスを取出す。取出されたアドレスはア
ドレス計算の最後のステップのためのベースアドレスと
して役立つ。
全書式指標付け拡張語においては、ビット〔15:9〕は指
標オペランド指定である。ベース抑制(BS)ビット
〔7〕=7であれば、ベースアドレスレジスタは適当な
ステップにおいてアドレスに加算される。BS=1であれ
ば、ベースアドレスレジスタの値は零とされる。指標抑
制(IS)ビット〔6〕=0であれば、指標オペランドは
評価され適当なステップにおいてアドレスに加算され
る。IS=1であれば、指標オペランドの値は零とされ
る。Bdispビット〔5:4〕はベースアドレスレジスタのた
めの変位のサイズを選択する。値01,10又は11はそれぞ
れ(零とされる)ヌル変位、(32ビットに符号拡張され
ている)ワード変位又はロング変位を選択する。00のBd
isp値は予約される。I/Ise1ビット〔2:0〕はインディレ
クトおよび指標付け動作を選択する。I/Ise1のためのオ
プションは下記の通りである。: I/Ise1 動作 000 メモリインディレクションなし 001 ヌル変位のあるプリインデックストインディ
レクト 010 ワード変位のあるプリインデックストインデ
ィレクト 011 ロング変位のあるプリインデックストインデ
ィレクト 100 予約 101 ヌル変位のあるインディレクトポストインデ
ックスト 110 ワード変位のあるインディレクトポストイン
ディレクト 111 ロング変位のあるインディレクトポストイン
デックスト どのメモリインディレクト参照例もデータ基準として分
類される。オペランド参照例はデータ基準として分類さ
れる。
3.特殊アドレスモード: 特殊アドレスモードはレジスタ番号を指定するのにEAフ
ィールドを用いないが、サブモードを指定するのに用い
る。
絶対ショートアドレス 表示法 :×××.W モード :111 レジスタ:000 このアドレスモードは1拡張ワード(語)を必要とす
る。オペランドのアドレスは拡張ワード(語)内にあ
る。16ビットアドレスは使用される前に符号拡張され
る。この参照例はデータ基準として分類される。
絶対ロングアドレス 表示法 :×××.L モード :111 レジスタ:001 このアドレスモードは2つの拡張語を必要とする。オペ
ランドのアドレスは拡張語内にあり、アドレスの高位部
分は第1語に、低位部分は第2語にある。この参照例は
データ基準として分類される。
変位のあるプログラムカウンタ 表示法 :PC (d) モード :111 レジスタ:010 このアドレスモードは1拡張語を必要とする。オペラン
ドのアドレスはプログラムカウンタ内のアドレスと拡張
ワード(語)の符号拡張変位整数との和である。プログ
ラムカウンタの値は拡張ワード(語)のアドレスであ
る。この参照例はデータ基準として分類される。
指標のあるプログラムカウンタ このアドレスモードは2つの異なる拡張書式を用いる。
簡潔書式は迅速な指標付きアドレス指定を行い、一方全
書式は変位のサイズおよびインディレクションにおいて
多数のオプションを与える。
いずれの書式も指標オペランドを用いる。表示法ではこ
の指標オペランドは“Ri.sz.scl"と指定されている。
“Ri"は指標レジスタのために一般データ又はアドレス
レジスタのうちの1つを選択する。“sz"の項は指標サ
イズを指示し、“w"又は“z"でもよい。“scl"の項は指
標スケール選択を指示し、1,2,4又は8のうちどれでも
よい。
指標オペランドは指標レジスタから誘導される。指標レ
ジスタは第1拡張語においてビット〔15〕=0であれば
データレジスタであり、ビット〔15〕=1であればアド
レスレジスタである。指標レジスタ番号は拡張語のビッ
ト〔14:12〕によって与えられる。指標サイズは拡張語
のビット〔11〕によって与えられ、ビット〔11〕=0で
あれば指標値は指標レジスタの符号拡張低位語整数であ
り、一方ビット〔11〕=1であれば指標値は指標レジス
タにおける倍長整数である。最後に、指標値はビット
〔10:9〕におけるスケーリング選択によってスケールさ
れ指標オペランドを誘導する。スケール選択00,01,10又
は11はそれぞれ1,2,4又は8によって指標値のスケーリ
ングを選択する。
簡潔書式指標付け 表示法 :PC (d,Ri.sz.scl) モード :111 レジスタ:011 このアドレスモードは1拡張語を必要とする。オペラン
ドのアドレスはプログラムカウンタにおけるアドレス、
拡張語の下位8ビットにおける符号拡張変位整数および
指標オペランドの和である。プログラムカウンタの値は
拡張語のアドレスである。この参照例はプログラム基準
として分類される。
全書式指標付け又はメモリインディレクト 表示法 :下記参照 モード :110 レジスタ:n このアドレスモードは1〜5の拡張語を必要とする。全
書式指標付けアドレスモードは非常に多様且つ強力なア
ドレス発生能力を与える。このモードは下記の追加能力
のいかなる組合せをも提供する。
a.(8ビット変位の代わりの)ワード又はロング変位。
b.アドレス計算におけるプログラムカウンタ又は指標オ
ペランドの抑制(その値を零とする。) c.アドレス計算におけるインディレクションの追加レベ
ル、指標付けはインディレクションの前又は後に起き
る。
前書式アドレス指定形成は下記の通りである: PC (dsize) (dsize) PC (dsize,Ri.sz.scl) PC (dsize,Ri.sz.scl) (dsize) PC (dsize) (dsize,Ri.sz.scl) ×××.W (dsize) ×××.W(Ri.sz.scl) ×××.W(Ri.sz.scl) (dsize) ×××.W (dsize,Ri.sz.scl) ×××.L (dsize) ×××.L(Ri.sz.scl) ×××.L(Ri.sz.scl) (dsize) ×××.L (dsize,Ri.sz.scl) “dsize"オペランドは変位である。これらはヌル(零と
する)又はワード又はロング変位でもよい。“Ri.sz.sc
l"は指標オペランドで、これは任意選択で抑制してもよ
い。許されているメモリインディレクトの1レベルがあ
り、指標オペランドはメモリインディレクションステッ
プの前(プリインデクシング)又は後(ポストインデク
シング)に加算してもよい。インディレクションステッ
プは指定されたロケーションからロングリードアドレス
を取出す。取出されたアドレスはアドレス計算の最後の
ステップのためのベースアドレスとして役立つ。
全書式指標付け拡張語においては、ビット〔15:9〕は指
標オペランド指定である。ベース抑制〔BS〕ビット
〔7〕=0であれば、プログラムカウンタは適当なステ
ップにおいてアドレスに加算される。BS=1であれば、
プログラムカウンタの値は零とされる。指標抑制(IS)
ビット〔6〕=0であれば、指標オペランドは評価さ
れ、適当なステップにおいてアドレスに加算される。IS
=1であれば、指標オペランドの値は零とされる。Bdis
pビット〔5:4〕はベースプログラムカウンタのために変
位のサイズを選択する。値01,10又は11はそれぞれヌル
変位(零とする)、(32ビットへの符号拡張される)ワ
ード変位又はロング変位を選択する。00のBdisp値は予
約される。I/Iselビット〔2:0〕はインディレクトおよ
び指標付け動作を選択する。オプションは上記に列記し
たのと同じである。
プログラムカウンタの値は第1拡張語のアドレスであ
る。いかなるメモリインディレクト参照例もプログラム
基準として分類される。オペランド参照例はプログラム
基準として分類される。
即値データ(Immediate date) 表示法 :#××× モード :111 レジスタ:100 このアドレスモードは1つ、2つ、又はそれ以上の拡張
語を必要とする。オペランドは命令の拡張語にある。バ
イト動作(operations)の場合には、オペランドは拡張
語の下位バイトにある。ワード動作の場合には、オペラ
ンドは拡張語にある。ロング動作では、オペランドは2
つの拡張語にあり、高位16ビットは第1語に、下位16ビ
ットは第2語にある。より長いオペランドサイズの場合
には、オペランドはオペランドのそのサイズを保持する
のに十分な数の語をも有する。
妥当な有効アドレスモード符号化は下記のように要約で
きる。
モードレジスタ アドレス指定モード
000 # データレジスタインディレクト
001 # アドレスレジスタディレクト
010 # アドレスレジスタインディレクト(AR
I) 011 # ポストインクリメントを伴うARI
100 # プリデクリメントを伴うARI
101 # 変位を伴うARI
110 # 指標/インディレクトを伴うARI
110 000 絶対ショート
111 001 絶対ロング
111 010 変位を伴うPC
111 011 指標/インディレクトを伴うPC
111 100 即値
111 101 未定義
111 110 未定義
111 111 未定義
一般に有効アドレスモードはそれらが用いられる方法に
よって分類される。
データ 有効アドレスモードがデータオペランドを指標するのに
用いられる場合には、そのモードはデータアドレス指定
有効アドレスモードと考えられる。
メモリ 有効アドレスモードがメモリオペランドを指示するのに
用いられる場合には、そのモードはメモリアドレス指定
有効アドレスモードと考えられる。
可変(Alterable) 有効アドレスモードが可変(書込み可能)オペランドを
指示するのに用いられる場合には、そのモードは可変ア
ドレス指定有効アドレスモードと考えられる。
制御 有効アドレスモードが関連したサイズなしにメモリオペ
ランドを指示するのに用いられる場合には、このモード
は制御アドレス指定有効アドレスモードと考えられる。
共同プロセッサ命令の各々の書式は第3図に示してあ
る。しかし、有効アドレス拡張語は明示されていない。
これらの拡張はもしある場合には命令の図示した語の後
に続いている。共同プロセッサ命令は下記の型に分ける
ことができる。
1. 条件付きテスト型命令 命令の下記の型は共同プロセッサインタフェースによっ
て直接的に実行されるように、第1データプロセッサ
(データプロセッサ)及び第2データプロセッサ(共同
プロセッサ)の両方による条件コードの一様な処理を保
証する。条件付きテスト命令は評価のため6ビット条件
選択コードを共同プロセッサに一様に提示する。データ
プロセッサは条件選択コードの解釈は行わず、共同プロ
セッサは選択された条件を評価できるだけでよい。
プランチ型命令 ワードブランチおよびロングワードブランチ命令におい
てはデータプロセッサは評価のため条件を共同プロセッ
サに書込む。次にデータプロセッサは条件の値について
共同プロセッサに質問をし、共同プロセッサ応答が、条
件が満たされたことを示すと、プログラム実行は、ロケ
ーション(PC)+変位において継続する。但し、変位は
拡張語における2の補数整数である。PCの値は変位語の
アドレスである。変位又は16ビットワード又は32ビット
ロングワードである。それ以上の共同プロセッサパラメ
ータのような他のいかなる拡張語も動作語に続き、変位
語に先行する。
条件付き型命令 3種類の条件付き型命令、即ち条件によるセット、条件
付き減分およびブランチ、および条件付きトラップが利
用できる。型フィールドはすべての条件付き型命令とも
同じであり、条件付き型命令の第1拡張語は評価される
条件を含む。データプロセッサは評価のため条件を共同
プロセッサに書込み、その条件が満たされるかどうかを
決定するために共同プロセッサに質問する。
条件によるセット命令には可変データ有効アドレスモー
ドのみが許される。有効アドレスはデータプロセッサに
よって評価され、修飾されるバイトのロケーションが決
定される。条件が満たされることを共同プロセッサが示
すと、ロケーションバイトは真にセットされ(すべて
1)、さもなければそのバイトは誤りにセットされる
(すべて0)。
条件付き減分およびブランチ型命令に対し条件が満たさ
れると、演算は行われない。条件が満たされないと、選
択されたデータレジスタの下位16ビットに維持されてい
るカウントは1だけ減分される。その結果が−1である
と、カウンタはイグゾースト(exhaust)され実行は次
の命令によって継続する。カウンタがイグゾーストされ
ないと、実行はそのアドレスが、プログラムカウンタと
符号拡張16ビット変位との和であるロケーションにおい
て続行する。
条件付きトラップ型命令では、条件が満たされるとトラ
ップが行われ、さもなければ実行は次の命令で続行す
る。Opmodeフィールドは変位語数を選択する。Opmode=
010であると、命令はワード変位を有する。Opmode=011
であると、命令はロング変位を有する。Opmode=100で
あると、命令は変位を有しない。条件付きトラップは変
位があったとしてもそれを使用しないが、その値の定義
はユーザにまかせられている。
2. システム制御型命令 下記の2つの命令型は共同プロセッサのシステム制御お
よび管理を可能にする。それらの命令型はオペレーティ
ングシステムタスクコンテックトスイッチング手続きに
用いられる。それらの命令型は命令型、根源語間、又は
オペランド転送サイクル間の共同プロセッサの切換えを
可能にする。これらの同じ命令は共同プロセッサがアイ
ドルの場合も、又は以前の共同プロセッサ命令を現在実
行中であっても用いられる。これらの命令は、データプ
ロセッサが共同プロセッサの要求を処理しつつある間に
仮想メモリフォルト(fault)を有している場合でも適
当である。いずれの型も特権型である。
共同プロセッサ保管型命令 この命令はオペレーティングシステムが共同プロセッサ
の全コンテックスト、ユーザービジブル(visible)お
よびユーザーインビジブル(invisible)状態の両方を
保管しなければならない場合にオペレーティングシステ
ムによって用いられる。ビジブル状態の保管を可能にす
るデータ移動命令が一般型命令において実施される場合
には、保管型命令はインビジブル状態だけを保管しても
よい。このためにはオペレーティングシステムが保管命
令によってインビジブル状態を保管し、次にデータ移動
命令によってビジブル状態を保管する必要がある。
これは特権命令である。可変制御又はプリデクリメント
有効アドレスモードのみが許される。共同プロセッサに
ついては、保管命令は任意のバスサイクルについて開始
される。データプロセッサは共同プロセッサから内部状
態書式語を読取ることによって保管命令を開始する。こ
の動作は、共同プロセッサが直ちにその現在の動作を一
時中止しその内部状態を保管しなければならないことを
共同プロセッサに示す。書式語は共同プロセッサから読
取られた他の内部状態情報とともに有効アドレスに保管
される。保管動作が完了すると、共同プロセッサはIdle
−Done状態にある。
共同プロセッサ復元(restore)型命令 この命令はオペレーティングシステムが共同プロセッサ
の全コンテックスト、ユーザービジブルおよびユーザー
インビジブル状態の両方を復元しなければならない場合
にオペレーティングシステムによって用いられる。ビジ
ブル状態の復元を可能にするデータ移動命令が一般型命
令において実施される場合には、復元型命令はインビジ
ブル状態のみを復元する。このためにはオペレーティン
グシステムはデータ移動命令によってビジブル状態を復
元し、次に復元命令によってインビジブル命令を復元す
る必要がある。一部の追加制御の用法については後述す
る。
これは特権命令である。制御又はポストインクリメント
有効アドレスモードのみが許される。共同プロセッサに
ついては、復元動作は任意のバスサイクルについて開始
してよい。データプロセッサは有効アドレスから内部状
態書式語を読取りそれを共同プロセッサに書込むことに
よって復元命令を開始する。この動作は共同プロセッサ
の現在の動作状態に関係なく共同プロセッサは直ちに異
なるコンテックストを再任(re−instate)しなければ
ならないことを共同プロセッサに示す。データプロセッ
サは共同プロセッサに対してその書式を確認することを
要求し、共同プロセッサがその書式を認識しないと、デ
ータプロセッサは書式誤り例外をとり、共同プロセッサ
はIdle−Done状態になる。書式が妥当であれば、データ
プロセッサは有効アドレスからの内部状態情報の残りを
共同プロセッサに転送する。
共同プロセッサインタフェースレジスタ 上記に一般的に説明したように、データプロセッサと共
同プロセッサはCPUアドレス空間内でバスサイクルを介
して通信する。この目的のために、いくつかのアドレス
可能レジスタが共同プロセッサ内に実施されている。こ
れらのレジスタには各共同プロセッサ専用のアドレスの
範囲内の特定(specific)アドレスが割当てられてい
る。これらのバスサイクルのうちの1つを用いて特定の
共同プロセッサ内の個々のレジスタをアクセスするため
のアドレス構造は第5図に示してある。
共同プロセッサ命令の実行期間中に、データプロセッサ
は共同プロセッサオペレーション型(Co−OpType)選択
フィールド(A4−A0)を用いて共同プロセッサオペレー
ションフィールド(A15−A05)は零に等しい状態で共同
プロセッサレジスタにアクセスする。共同プロセッサオ
ペレーションフィールドは、共同プロセッサをテストの
ため、又は他のシステムに用いるため周辺装置として扱
うオペレーションを区別するのに用いられる。追加アド
レス線(A15−A05)により共同プロセッサはデータプロ
セッサが共同プロセッサ命令を実行するのに用いるレジ
スタ以外のレジスタを有することができる。このアドレ
ス構造により、共同プロセッサのプロトコルをエミュレ
ートする命令順序を用いて、共同プロセッサインタフェ
ースをもたないデータプロセッサの周辺装置として共同
プロセッサを用いることができる。
共同プロセッサ識別フィールドは命令の第1語の最初の
4ビットに16進“F"(即ちすべて1)を有する動作語
(第3図)Cp−IDフィールドからとられる。システム内
でそれは一意に(uniquely)共同プロセッサを識別すべ
きである。このフィールドは必ずしも各共同プロセッサ
によって解読されず、第1図に示すように外部解読装置
(デコーダ)を介してチップ選択機能(CS第1図)を共
同プロセッサに与える。これによりシステム内の同一型
の多重共同プロセッサが可能になり、共同プロセッサを
割当てる際の競合がさけられる。
第6図は共同プロセッサインタフェースレジスタのため
のアドレス割当てを示す。この構造はどんな種類のオペ
レーションをデータプロセッサが共同プロセッサから期
待するかを識別し、追加アドレスを周辺装置としての共
同プロセッサが使用できるようにする。
示してあるアドレス線は、共同プロセッサが共同プロセ
ッサとして用いられる場合に用いられるアドレス線であ
る。それが周辺装置としても用いられることが所望され
る場合には、他のインタフェースレジスタ又はアドレス
可能ロケーションが定義され使用される。共同プロセッ
サは命令型の各々が実施できるようにするために長さビ
ット16を有する機能を実施しなければならない。
共同プロセッサインタフェースポートの幅が32ビットよ
り短いと、データプロセッサは連続アクセスをしてポー
トサイズより長い情報を転送する。
共同プロセッサインタフェースプログラマモデル内のレ
ジスタは共同プロセッサのインタフェース部分における
物理レジスタに対応する必要はない。アドレス解読をし
て物理アドレスをこのパターンで現われるようにするの
は共同プロセッサバスインタフェースの機能である。
種々の共同プロセッサレジスタの下記の説明において、
レジスタ名の後には特定のアドレス範囲内のレジスタア
ドレスのオフセットが続く。共同プロセッサに関連した
どのアドレスもCPU空間内にある。
応答レジスタ 00 16ビット応答レジスタは、共同プロセッサがコマンドを
完了するために行わねばならない機能を行うことを共同
プロセッサがデータプロセッサに要求する手段である。
共同プロセッサは応答レジスタがアクセスされると必ず
DSACKを実行に移し、アクセスは常に妥当であり、プロ
トコール違反は起こりえない。
制御レジスタ 02 この16ビットレジスタはデータプロセッサにアクセスさ
れて共同プロセッサ例外要求に肯定応答するか、又は違
法有効アドレスフィールドを含む共同プロセッサ命令を
打切る。データプロセッサは制御レジスタにマスクを書
込む。ビット1のセットを有するマスクは下記に述べる
ように肯定応答して保留例外(pending exceptions)を
クリアする。ビット0のセットを有するマスクは共同プ
ロセッサに現在の命令の処理を打切ってIdle−Done状態
に戻るように指示する。
保管レジスタ 04 この16ビットレジスタを読取ると共同プロセッサは後述
するように保管オペレーションを開始する。共同プロセ
ッサによって供給されるデータは共同プロセッサ内部状
態の16ビット書式語である(第4図A参照)。共同プロ
セッサはそれぞれが保管順序を開始する準備ができるま
でデータプロセッサは保管レジスタを読取る。
復元レジスタ 06 この16ビットレジスタを読取ると共同プロセッサは直ち
に現在のオペレーションを中断し、後述するように復元
オペレーションを行うための準備をする。データプロセ
ッサによって供給されたデータは共同プロセッサ内部状
態の16ビット書式語である(第4図A参照)。書式語を
検査した後に、共同プロセッサは応答レジスタにコード
を置くことによって書式が妥当かどうかをデータプロセ
ッサに示す。更に、共同プロセッサは共同プロセッサが
復元の準備のためにビジー(busy)であることを示した
り、又は状態の残りの部分の転送の準備ができているこ
とを示す。
オペレーション語レジスタ 08 データプロセッサは共同プロセッサの要求に応じて16ビ
ット共同プロセッサオペレーション語をこのレジスタに
転送する。
コマンドレジスタ 0A 16ビットコマンドレジスタは一般型命令についてのみ使
用される。データプロセッサはコマンド語をコマンドレ
ジスタに書込むことによって一般命令を開始する。
条件レジスタ 0E 条件レジスタはブランチおよび条件付き型命令について
用いられる。データプロセッサは評価される条件を指定
する6ビット条件選択コードを書込む。
オペランドレジスタ 10 32ビットオペランドレジスタは共同プロセッサが要求し
たデータオペランドを転送するレジスタである。オペラ
ンドの長さが4バイトより短いと、それはオペランドレ
ジスタの最上位ビットと位置合せして転送される。オペ
ランドの長さが4バイト又はそれ以上長いと、データプ
ロセッサは4バイト以下が残るまでこのレジスタに連続
アクセスし1回のアクセスに4バイトずつオペランドを
転送し、残りの部分はオペランドレジスタの最上位ビッ
トと位置合せして転送される。
レジスタセレクタ 14 16ビットレジスタセレクタレジスタは共同プロセッサの
要求があった場合にのみデータプロセッサによって読取
られる。このレジスタは後述する転送主プロセッサ制御
レジスタ根源語(primitive)のために制御レジスタを
選択する。後述する転送多重主プロセッサレジスタ根源
語のためにレジスタをカウントし選択する。後述する転
送多重共同プロセッサレジスタ根源語に関係ある共同プ
ロセッサレジスタの数をカウントする。
命令アクセスレジスタ 18 この32ビットレジスタは、共同プロセッサ根源語がその
ような転送を要求した時に命令アドレスの出所又は行先
として用いられる。命令アドレスのこの記憶装置は非同
期(並行)命令を実施する共同プロセッサをもつシステ
ムにおけるトレースおよび/又は例外取扱いソフトウェ
アのオペレーションを促進するために具えられている。
従って、すべての共同プロセッサがこのレジスタを必要
とするとは限らない。共同プロセッサはオペレーション
においてこの情報を決して必要としないかもしれない。
もし具えられている場合には、共同プロセッサは必要に
応じてレジスタを更新した状態に保つべきである。
オペランドアドレスレジスタ 1C この32ビットレジスタは転送されるアドレスオペランド
の出所又は行先として用いられる。オペランドアドレス
レジスタは共同プロセッサ根源語によって要求された場
合にアクセスされる。
共同プロセッサ応答根源語 一般および条件付き命令は、コマンド語を共同プロセッ
サコマンド又は条件レジスタに書込むことによりデータ
プロセッサによって開始される。コマンド語を受取る
と、共同プロセッサはコマンドが実行される前に何らか
の機能がデータプロセッサによって行われなければなら
ないかどうかを決定する。もしそうであれば、共同プロ
セッサは共同プロセッサ応答レジスタ内にデータプロセ
ッサに対する“根源語(primitive)”命令を構成し、
次にDSACKを実行に移す。応答レジスタを読取るとデー
タプロセッサはこの根源語命令を“実行(execute)”
し、コマンドを実施するために共同プロセッサによって
要求される支援サービスを与える。
第7図A及び第7図Bにみられるように、応答レジスタ
は共同プロセッサがデータプロセッサに対して実行する
ように要求する特定の機能を指定する機能フィールドか
ら主としてなる。一部の根源語においては、共同プロセ
ッサが指定された機能に必要なパラメータを定義するた
めパラメータフィールドが具えられている。大部分の根
源語においては、共同プロセッサは要求された機能が行
われる前にパスプログラムカウンタ(PC)ビットをセッ
トして、プロセッサプログラムカウンタの現在の内容を
共同プロセッサ命令アドレスレジスタにパスするように
データプロセッサに要求することができる。この方法に
より共同プロセッサは実行されつつある特定の命令のオ
ペレーション語のアドレスの記録を維持することができ
る。適当と思われる場合には、共同プロセッサはカムア
ゲイン(CA)ビットをセットし、要求された機能が実行
された後に応答レジスタを再び読取るべきことをデータ
プロセッサに示してもよい。CAビットがセットされない
と、又は特定の根源語について定義されていないと、デ
ータプロセッサは一般に自由になり指定された機能を行
った後に他の処理動作を続ける。
各命令の実行の開始時には、データプロセッサ内のプロ
グラムカウンタは、現在実行されつつある命令の第1語
の現在の命令空間内にアドレスを含む。この時に、Scan
PCレジスタ(第9図B、第9図C)はオペレーション語
のすぐ後に続く語のアドレスを含む。命令の各語が“使
用される”について、ScanPCは逐次増分されて、命令の
流れのなかの次の語を指示する。各命令の終りにはScan
PCのアドレスは次の命令のアドレスとしてプログラムカ
ウンタに転送され、再び増分されてオペレーション語の
次の語を指示する。
第1根源語が読取られた時のScanPCの値は共同プロセッ
サ命令型によってきまる。一般型命令では、ScanPCはコ
マンド語の後の語を先ず指示する。ブランチ型命令で
は、ScanPCはオペレーション語の後の語を先ず指示す
る。条件付き型命令では、ScanPCは条件選択コードの後
の語を先ず指示する。
一般型命令の処理において根源語がオペランドの転送を
要求し有効アドレスモードが即値であると、その長さは
1又は偶数でなければならず、その転送はプロセッサか
ら共同プロセッサへのみ行うことができる。オペランド
の長さが1であれば、オペランドはオペランドレジスタ
の最上位ビット内に転送され、ScanPCは2だけ増分され
る。オペランドの長さが1より長いと、オペランドは語
として転送され、ScanPCは長さフィールド内のバイト数
だけ進められる。
一般型命令の処理において根源語がオペランドの転送を
要求し、以前の根源語によってScanPCは進められている
と、命令の流れのなかの以前に要求されたデータの後に
アドレス拡張が続く。共同プロセッサは有効アドレスが
計算された後に追加情報を要求してもよく、その場合に
は追加拡張は有効アドレス拡張の後に続く。
プロセッサ状況レジスタ又はScanPCが後述するように転
送状況レジスタ又はScanPC根源語によって変更される
と、データプロセッサはScanPCを超えて命令の流れから
先取りされた命令語を再取出しする。
共同プロセッサのための有効なレスポンスは下記の通り
である。データプロセッサが認識しないいかなる反応も
後述するようにプロトコル例外を生じさせる。
ヌル(ノーオペランド) この根源語は一般、ブランチ又は条件付き型命令ととも
に許容される。PCおよびCAは許容され後述するように処
理される。CAビット、IA(割込み許容)ビットの両方が
セットされると、プロセッサは発生するいかなる割込み
も取扱い、次に戻って応答レジスタを再び読取る。しか
しCA=0であるとIAビットは無視される。CA=0である
いかなるヌル根源語もNull−Done応答と云われる。
PC,CAおよびIA関連オペレーションは一般、ブランチ又
は条件付き型命令について行われる。一般型命令の場合
には、他のオペレーションは行われない。ブランチ又は
条件付き型命令の場合には、Null−Done応答はブランチ
又は条件付き型命令を終了させ、命令はTF(真/誤)ビ
ットに依存して実行される。
CAビットがセットされると、この根源語は共同プロセッ
サが現在の又は以前の共同プロセッサコマンドに関して
作業をしつつあることをデータプロセッサに知らせる。
従って、この応答は、新たなコマンドのためのバッファ
を含む一方で以前のコマンドの実行を完了させる共同プ
ロセッサによって“ビジー”又は“占有”応答として用
いられる。コマンドをバッファしない共同プロセッサは
その代わりにビジー根源語を戻して命令を再び開始しな
ければならない。
ビジー(Busy) この根源語は共同プロセッサが以前の共同プロセッサコ
マンドについて作業中であることをデータプロセッサに
知らせる。それはどの一般、ブランチ又は条件付き型命
令についても許容される。CAビットはこの根源語の場合
には無視される。PCビットはこの根源語の場合にはセッ
トすべきではなく、それはプログラムカウンタを命令ア
ドレスレジスタに書込ませる。
データプロセッサは割込みについてチェックし、次に命
令通信を再開する。この応答は、新しいコマンドをバッ
ファ又は捕獲することができないが現在のコマンドの実
行を完了させる共同プロセッサから要求される。この根
源語は、“破壊”根源語が現在の命令のために戻ってい
ない場合にのみ与えられるべきである。破壊根源語とは
いかなるビジブルプロセッサ又は共同プロセッサレジス
タ又は状況を変更させている根源語であり、ScanPCはビ
ジブルレジスタとは考えない。
解放(Release) 解放根源語は共同プロセッサ実行の終了を信号で知らせ
る。この根源語は一般型命令にのみ必要である。条件付
きおよびブランチ型命令には、Null−Done根源語におけ
る含意解放(implied release)がある。CAおよびPCは
この根源語に関しては許容されない。
トレーシング中に逐次オペレーションを行うためには、
共同プロセッサは通信の終了、共同プロセッサ実行の終
了の両方を信号で知らせる必要がある。カムアゲインの
ないいかなる根源語も要求された通信の終了を示す。デ
ータプロセッサがトレースモードにないと、それは自由
に次の命令を実行できる。データプロセッサがトレース
モードにあると、データプロセッサは応答レジスタを再
び読取らねばならない。共同プロセッサがコマンドの実
行に成功すると、共同プロセッサは解放根源語を戻す。
共同プロセッサがIdle−Done又はIdle−Excp状態にある
場合には、コマンド又は条件レジスタを書込む前に応答
レジスタを読取ると、解放応答が生じる。
有効アドレスの評価およびデータの転送 この根源語は一般型命令の場合にのみ許容される。PCお
よびCAビットは許容され、上述したように処理される。
drビットは有効アドレスと共同プロセッサのオペランド
レジスタとの間のデータ転送方向を示す。dr=0であれ
ば、オペランドは有効アドレスから共同プロセッサに転
送される。dr=1であれば、オペランドは共同プロセッ
サから有効アドレスに転送される。
有効アドレスへ、又は有効アドレスから転送されるバイ
ト数は長さフィールドに示されている。レジスタディレ
クト有効アドレスに対する長さが0であるとプロトコル
違反が起きる。有効アドレスがプロセッサレジスタ(即
ち、レジスタディレクト)であると、1,2又は4バイト
の長さのみが妥当であり、他の長さはプロトコル違反を
起こさせる。有効アドレスモードが即値(immediate)
であると、長さは1又は偶数でなければならず、転送は
データプロセッサから共同プロセッサに対してのみ行う
ことができる。有効アドレスがメモリロケーションであ
れば、奇数を含むいかなる長さも妥当である。
適当と思われる場合には、共同プロセッサは妥当EAフィ
ールドを下記のように符号化することによって有効アド
レス評価を第8図に正確に示されているようにモードの
種類(class)に限定してもよい: 000 制御可変 001 データ可変 010 メモリ可変 011 可変 100 制御 101 データ 110 メモリ 111 任意の有効アドレス(制限なし) 命令のなかの有効アドレスがその種類のものでないと、
打切り(abort)が共同プロセッサ制御レジスタに書込
まれ、データプロセッサはオペレーティングシステムに
具えられているF線エミュレータをトラップする。
有効アドレスを評価し転送する この根源語はデータプロセッサに対し有効アドレスを評
価しその値を共同プロセッサオペランドアドレスレジス
タに転送することを要求する。この根源語は一般型命令
の場合にのみ許容される。PCおよびCAビットが許容さ
れ、上述したように処理される。
示された長さが零であれば、可変制御有効アドレスモー
ドのみが許容される。長さが非零であれば、可変メモリ
有効アドレスモードが許容される。
アドレスをとりデータを転送する この根源語はデータプロセッサに対しオペランドのメモ
リ中のアドレスを共同プロセッサオペランドアドレスレ
ジスタから読取ることを要求する。次にデータプロセッ
サは指定されたアドレスと共同プロセッサオペランドレ
ジスタとの間でそのオペランドを転送する。この根源語
は一般、ブランチおよび条件付き型命令の場合に許容さ
れる。PC,CAおよびdrビットが許容され、上述したよう
に処理される。オペランドのビット数は長さフィールド
によって指定される。
状態レジスタおよびプログラムカウンタを転送する この根源語はデータプロセッサに対し、データプロセッ
サと共同プロセッサの間でデータプロセッサ状況レジス
タ又は状況レジスタとScanPCの両方を転送することを要
求する。この根源語は一般型命令にのみ許容される。P
C,CAおよびdrビットが許容され、上述したように処理さ
れる。
SP=1(ScanPC 転送)であれば、ScanPCもまたデータ
プロセッサと共同プロセッサとの間で転送される。状態
レジスタとScanPCの両方が転送される場合には、その順
序は転送の方向によってきまる。dr=0であれば、先ず
ScanPCが共同プロセッサ命令アドレスレジスタに転送さ
れ、次に状況レジスタがオペランドレジスタに転送され
る。dr=1であれば、先ずオペランドレジスタが状況
(態)レジスタに転送され、次に命令アドレスレジスタ
がScanPCに転送される。
この根源語はブランチ型命令の場合以外では共同プロセ
ッサがデータプロセッサの制御の流れを変えることがで
きるようにする。状況(態)レジスタへの転送はプロセ
ッサ条件コードとともにトレースモード、スーパバイザ
/ユーザ状態および割込みマスクを含む。
オペレーション語を転送する この根源語はデータプロセッサに対しオペレーション語
を共同プロセッサオペレーション語レジスタに転送する
ことを要求する。この根源語は一般、ブランチおよび条
件付き型命令の場合に許容される。PCおよびCAビットが
許容され、上述したように処理される。この転送はScan
PCには影響を与えない。
命令の流れを転送する この根源語はデータプロセッサに対し命令の流れからデ
ータを共同プロセッサオペランドレジスタに転送するこ
とを要求する。この根源語は一般、ブランチおよび条件
付き型命令の場合に許容される。PCおよびCAビットが許
容され、上述したように処理される。
ScanPCで始まる命令の流れからの示されたバイト数は共
同プロセッサオペランドレジスタに転送される。偶数バ
イトカウントのみが妥当であり、奇数バイトカウントは
プロトコル違反を生じさせる。ScanPCは転送されたバイ
ト数だけ進められる。
レジスタを転送する 下記の根源語は1つ又は偶数のデータプロセッサ又は共
同プロセッサレジスタの転送を要求する。PC,CAおよびd
rビットが許容され、上述したように処理される。
単一のプロセッサレジスタを転送する この根源語はデータプロセッサに対し根源語の4つの最
下位ビットに示されている特定のデータ又はアドレスレ
ジスタと共同プロセッサオペランドレジスタとの間でロ
ングワードを転送することを要求する。この根源語は一
般、ブランチおよび条件付き型命令の場合に許容され
る。D/A=0であれば、転送されたレジスタはデータレ
ジスタであり、D/A=1であれば、転送されたレジスタ
はアドレスレジスタである。
プロセッサ制御レジスタを転送する この根源語はデータプロセッサに対しプロセッサ制御レ
ジスタを転送することを要求する。この根源語は一般、
ブランチおよび条件付き型命令の場合に許容される。ど
のレジスタを転送するかを決定するため、データプロセ
ッサは共同プロセッサレジスタセレクタレジスタから制
御レジスタセレクタを読取る。次にデータプロセッサは
制御レジスタセレクタコードを評価し、ロングワードを
特定のプロセッサ制御レジスタから共同プロセッサオペ
ランドレジスタへ、又は共同プロセッサオペランドレジ
スタから転送する。制御レジスタセレクタの符号化はM6
8000MOVEC命令の場合と同じである。制御レジスタセレ
クタコードが認識されないと、データプロセッサは命令
を打切り、F線エミュレータトラップをとる。
複数のプロセッサレジスタを転送する この根源語はデータプロセッサに対し複数のプロセッサ
データ又はアドレスレジスタを転送することを要求す
る。この根源語は一般、ブランチおよび条件付き型命令
の場合に許容される。どのレジスタを転送するかを決定
するため、データプロセッサは共同プロセッサレジスタ
セレクタレジスタを選択する。データプロセッサはM680
00MOVEN命令の場合と同じ方法でレジスタセレクタ値を
ビットマスクとして用い、ビット0はD0を意味し、ビッ
ト15はA7を意味する。選択された各レジスタの32ビット
全部が共同プロセッサオペランドレジスタへ、又は共同
プロセッサオペランドレジスタから転送される。
複数の共同プロセッサレジスタを転送する この根源語はデータプロセッサに対し複数の共同プロセ
ッサレジスタを有効アドレスへ、又は有効アドレスから
転送することを要求する。この根源語は一般型命令の場
合にのみ許容される。示された長さは各オペランド又は
レジスタの長さである。どのレジスタを転送するかを決
定するために、データプロセッサは共同プロセッサレジ
スタセレクタレジスタを読取る。セレクタマスクの各ビ
ットは1つの共同プロセッサレジスタに対し上記のよう
に単一オペランドとして共同プロセッサオペランドレジ
スタへ、又は共同プロセッサオペランドレジスタから転
送されることを要求する。共同プロセッサはビットマス
クを用いてどのレジスタが転送されるかを示すが、デー
タプロセッサは要求されたレジスタ数が何時転送された
かを決定するためにビットをカウントするだけである。
このことは1つの根源語によって転送されるレジスタ数
を16に制限する。データプロセッサは有効アドレスを評
価し、そこから又はその多重レジスタが転送されるメモ
リロケーションを決定する。転送が共同プロセッサへ行
われる場合には、ポストインクリメント又は制御有効ア
ドレスモードのみが許容される。転送が共同プロセッサ
から行われる場合には、プリデクリメント又は可変制御
有効アドレスモードのみが許容される。
ポストインクリメントおよび制御有効アドレスモードで
は、連続レジスタはメモリロケーションへ、又はメモリ
ロケーションから転送され、アドレスを増加させる。プ
リデクリメント有効アドレスモードでは、連続レジスタ
はメモリロケーションへ転送され、アドレスを減少さ
せ、レジスタ内のバイトは増加するアドレスに記憶され
る。レジスタおよびバイトの数は転送される順序であ
る。
スタックのトップへ、又はスタックのトップから転送す
る この根源語はデータプロセッサに対しロングワードオペ
ランドをアクティブシステムスタックへプッシュ(pus
h)したり、又はアクティブシステムスタックからロン
グワードオペランドをポップ(pop)することを要求す
る。この根源語は一般、ブランチおよび条件付き型命令
の場合に許容される。PC,CAおよびdrビットが許容さ
れ、上述したように処理される。スタックポインタはプ
ッシュ又はプルのために適当に修飾される。スタックデ
ータはオペランドレジスタを介して転送される。
スーパバイザチェック この根源語は共同プロセッサがデータプロセッサのスー
パバイザ状態をチェックできるようにする。この根源語
は一般、ブランチ又は条件付き型命令の場合に許容され
る。PCおよびCAが許容され、上述したように処理され
る。特権違反が起きると、CAビットは効果を有しない。
データプロセッサがスーパバイザ状態にないと、打切り
か共同プロセッサ制御レジスタに書込まれ、データプロ
セッサは特権違反例外をとる。
以前に評価した有効アドレスに書込む この根源語はデータプロセッサに対しデータをオペラン
ドレジスタから以前に評価した有効アドレスに書込むこ
とを要求する。この根源語は一般型命令の場合にのみ許
容される。PCおよびCAが許容され、上述したように処理
される。
可変有効アドレスモードのみを使用すべきであるが、デ
ータプロセッサは有効アドレスモードのチェックは行わ
ない。プリデクリメント又はポストインクリメント有効
アドレスモードでは、アドレスレジスタ値は変わらな
い。この根源語およびRead from Effective Address
(有効アドレスから読取る)根源語を用いて読取り−修
飾−書込み命令を実施することは可能である(がバスサ
イクルは可能ではない)。
例外をとる 下記の根源語は共同プロセッサがデータプロセッサに例
外をとらせることを可能にする。これらの根源語の各々
についてPCビットは妥当であり、CAビットは無視され
る。データプロセッサは共同プロセッサ制御レジスタの
例外肯定応答(XA)ビット〔1〕に1を書込むことによ
ってすべての例外に肯定応答しそれらをクリアする。デ
ータプロセッサが例外要求に対して肯定応答した後に、
データプロセッサは根源語に指定された例外ベクトルナ
ンバーを用いて例外処理を開始する。3つの要求間の差
異はデータプロセッサが例外からどのようにして戻るか
に関与する。相異なる要求はまた種々の量の状態情報が
スタックされることを要求する。
共同プロセッサは、妥当でないコマンドを受けとった場
合には違法の命令ベクトルではなく命令の第1語の最初
の4ビットに16進“F"(即ちすべて1)を有する動作語
(第3図)のFラインエミュレーションベクトルを常に
指定すべきである。同様に、データプロセッサはそれが
違法の共同プロセッサ命令を検出した場合には常に命令
の第1語の最初の4ビットに16進“F"(即ちすべて1)
を有する動作語(第3図)のFラインエミュレーション
トラップをとる。
プリインストラクション例外をとる この根源語は命令が処理を始める前に認識されるべき例
外を信号で知らせるのに用いられる。この根源語は破壊
根源語が与えられた後に与えられるべきではない。保管
された状態によって例外ハンドラは戻って、例外を発生
させた共同プロセッサ命令をデータプロセッサに再開さ
せることができる。
プリインストラクション例外は、開始される共同プロセ
ッサ命令が例外処理のために終了していることを示す。
この例外の原因は違法なコマンド語、例外により終了し
た以前の共同プロセッサ命令、又は例外開始前に現在の
命令のなかに検出された例外を含むことができる。
第9図Aに図示された4語状態が保管される。それはプ
ロセッサ状態レジスタ、(現在の命令を指示する)プロ
グラムカウンタおよび共同プロセッサによって与えられ
た例外ベクトルナンバーからなる。
ミッドインストラクション例外をとる ミッドインストラクション例外は、共同プロセッサとデ
ータプロセッサとの間の通信が遮断され後に再開される
ことを示す。保管された状態により例外ハンドラは戻っ
て、共同プロセッサ応答レジスタを読取ることによって
例外が要求された場合の共同プロセッサ命令をデータプ
ロセッサに続行させることができる。
この根源語は共同プロセッサによって用いられ、共同プ
ロセッサが妥当でないか又は誤ったデータに遭遇し共同
プロセッサが現在の命令で前へ進む前に共同プロセッサ
はソフトウェアハンドリングを必要とすることを信号で
データプロセッサに知らせることができる。
第9図Bに図示された10語状態が保管される。保管され
た状態は状況レジスタ、ScanPC、例外ベクトルナンバ
ー、(現在の命令を指示する)プログラムカウンタ、内
部レジスタ、根源語および評価された有効アドレスを含
む。根源語がまだ有効アドレスの評価を要求していなけ
れば、保管された値は未定義である。
ポストインストラクション例外をとる ポストインストラクション例外はNull−Done又は解放応
答の前に共同プロセッサ命令の終りに発生し、共同プロ
セッサ動作を終了させる。データプロセッサは命令が完
了したか、又は打切られたものと想定する。保管された
状態により例外は戻って、例外を発生させた共同プロセ
ッサ命令後にデータプロセッサに命令実行を開始させる
ことができる。
第9図Cに図示された6語状態が保管される。それはプ
ロセッサ状況レジスタ、(次の命令を指示する)ScanP
C、共同プロセッサによって与えられる例外ベクトルナ
ンバー、および(例外を生じさせた命令を指示する)プ
ログラムカウンタ値を含む。
プロセッサ/共同プロセッサプロトコル 一般的に云うと共同プロセッサはコマンドを実行するた
めにシステム内のいろいろなデータピースにアクセスす
る必要がある。これらのデータはメモリ内のオペラン
ド、メモリ内のオペランドのアドレス又はプロセッサレ
ジスタである。更に、共同プロセッサはプロセッサレジ
スタ又はメモリにデータを記憶する必要があることがあ
る。メモリ転送は共同プロセッサがDMA共同プロセッサ
であるか又は非DMA共同プロセッサであるかによって異
なる形をとることがある。
共同プロセッサはそのバス利用特性によって2つの型に
分けられる。共同プロセッサがデータプロセッサとは関
係なしにバスを制御できる場合には、その共同プロセッ
サはDMA共同プロセッサである。共同プロセッサがバス
を制御する能力を有しない場合には、共同プロセッサは
非DMA共同プロセッサである。両方の型の共同プロセッ
サは同じプロトコルおよびプロセッサリソース(resour
ces)を利用する。
バス利用要求が比較的少ない共同プロセッサは典型的に
は非DMA共同プロセッサとして実施される。この形では
すべてのオペランド転送は共同プロセッサの要求により
データプロセッサが行い、共同プロセッサはバス上にア
ドレスを置いてバス制御を行うことができる必要はな
い。
これとは対照的に、バス帯域幅のかなりの部分を使い果
す共同プロセッサはDMA共同プロセッサとして実施すべ
きである。DMA共同プロセッサはオペランドを取出し、
或いは記憶する必要がある場合にはバスを制御できる。
DMA共同プロセッサは全アドレスを与え、すべてのバス
サイクル終了信号に応答できなければならない。DMA共
同プロセッサの能力はそれが満たすように設計されてい
る要求によって変わるので、下記の説明は非DMA共同プ
ロセッサに限定される。もし適当と思われる場合には、
後者の型に利用できるどの特徴も前者の型に利用するこ
とができる。
非DMA共同プロセッサにおいては、メモリから共同プロ
セッサに転送されなければならないすべてのオペランド
は先ずデータプロセッサによって一時レジスタに読取ら
れる。それらのオペランドは次に共同プロセッサオペラ
ンドレジスタに書込まれる。共同プロセッサからメモリ
へ流れるオペランドも同様な方法で転送される。即ち、
先ず共同プロセッサオペランドレジスタからデータプロ
セッサによって一時レジスタに読取られ、次にメモリに
書込まれる。これらの転送は第14図および第15図に示さ
れている。
多重バイトのオペランドは昇順(ascending)メモリロ
ケーションの順序で転送される。オペランドレジスタへ
の、又はオペランドレジスタからのデータのアラインメ
ントについては後述する。データプロセッサは奇数バイ
ト又は語アドレスをもつメモリロケーションでアクセス
される語又はロングオペランド部の適切なアラインメン
トに責任もつ。
プロセッサレジスタから共同プロセッサへ転送されるオ
ペランドは一連のプロセッサ書込みサイクルによって移
動する。同様に、プロセッサレジスタへ転送されるオペ
ランドは一連のプロセッサ読取りサイクルで移動する。
これらのオペレーションのための流れはメモリオペラン
ドのためのオペレーションと同様であるが、メモリをア
クセスするバスサイクルは不必要である。
第10図は共同プロセッサブランチ又は条件付き型命令の
処理中のデータプロセッサと共同プロセッサとの間のプ
ロトコルを示す。データプロセッサは先ず条件を共同プ
ロセッサ条件レジスタに書込み評価を要求する。共同プ
ロセッサは応答レジスタを更新して指定された条件の評
価を反映させる。次にデータプロセッサは共同プロセッ
サ応答レジスタを読取り適当な処置をとる。
有効アドレスの評価、以前に評価した有効アドレスの使
用又はプロセッサ状況レジスタ又はScanPCの転送を要求
する根源語を除くすべての根源語は、ブランチ又は条件
付き型命令の場合に合法(legal)である。ヌル又は例
外根源語はブランチ又は条件付き型命令の期間中に通信
を終結させる。
第11図は共同プロセッサ一般型命令の処理期間中のデー
タプロセッサと共同プロセッサとの間のプロトコルを示
す。データプロセッサは共同プロセッサコマンド語を共
同プロセッサコマンドレジスタに書込む。共同プロセッ
サは応答レジスタを更新しデータプロセッサに要求され
たいかなる機能をも要求する。次にデータプロセッサは
共同プロセッサ応答レジスタを読取り適当な処置をと
る。一般型はCAビットがセットされていない場合にはい
かなる根源語によっても終結することができる。
共同プロセッサ保管および復元型命令はメモリから、お
よびメモリへ共同プロセッサの内部状態を転送する。第
4図Aはこの情報のメモリ構成を示す。書式語として示
されているフレームの第1語は共同プロセッサが定義し
検査した書式フィールド、および両方のデータプロセッ
サによって使用される長さフィールドを含む。長さフィ
ールドは内部状態情報のバイト数を指定し、書式語自体
又はその次の語は含まない。メモリ内の次の語は使用さ
れず、フレームがロングワードにアライン(整合)でき
るようにするだけである。さもなければ、内部状態情報
は長さにおける4バイトの整数倍数でなければならな
い。この情報は一時に4バイトずつ共同プロセッサオペ
ランドレジスタへ、および共同プロセッサオペランドレ
ジスタから転送される。共同プロセッサからくる内部状
態はフレームの上端からフレームに記憶され、フレーム
の下端から始まってメモリから共同プロセッサに復元さ
れる。第4図Aにおいて最左端のコラムは内部状態の保
管順序を示し、一方次のコラムは復元順序を示す。書式
語自体の内容は第4図Bに示すように何らかの追加の意
味を有する。
マルチプログラミング環境においては、すべてのプロセ
スがすべての共同プロセッサを利用するとは限らない。
プロセスが特定の共同プロセッサのための命令を何時利
用するかを識別するために、特殊な書式コードが用いら
れる。この書式コード($00)は長さ0(エンプティ;
リセットと同じ,初期設定)と組み合わせられて共同プ
ロセッサがユーザーロデッド(user−loaded)情報を有
しないことを示す。オペレーティングシステムがこの書
式語を検出した場合には、そのシステムはユーザービジ
ブル状態情報を保管又は復元する必要はない。この書式
はまた最初のディスパッチ(dispatch)前にプロセッサ
のプロセス状態を初期設定するのにも適している。
保管オペレーションはコマンドの実行を中断することを
含み、状態が復元されると実行を再開する能力を有す
る。能率上の理由から、またコマンドの実行を完了する
ためそれ以上のサービスがプロセッサに要求されない場
合には、共同プロセッサは保管順序の長さを縮小するた
めコマンドの実行を完了することを選定することができ
る。このことが所望されるならば、$0E書式は共同プロ
セッサが一時的に保管オペレーションを遅延させたこと
を示す。この同じ書式は、共同プロセッサが保管又は復
元オペレーションの準備に時間を必要とする場合には共
同プロセッサがシステムを解放できるようにする。
復元オペレーションの期間中に、共同プロセッサは書式
語を確認するよう求められる。書式コードが共同プロセ
ッサによって認識されないと、又は長さフィールドが与
えられたコードにとって不適当であると、共同プロセッ
サは復元レジスタが次に読取られた時に$0F書式コード
を戻すことによってこの事実をプロセッサに知らせるこ
とができる。
内部状態フレームは、中断されたコマンドの実行を中断
の点において再開するために共同プロセッサによって要
求されるすべてのユーザインビジブルレジスタ、保留し
ている例外、状況ビットなどを含まなければならない。
一般型データ移動命令により保管され復元されるユーザ
ビジブル情報があれば、この情報を内部状態フレームに
含めることは共同プロセッサの自由選択である。
共同プロセッサ保管型命令の処理期間中のデータプロセ
ッサと共同プロセッサとの間のプロトコルは第12図に示
されている。データプロセッサは共同プロセッサ保管レ
ジスタを読取ることによって共同プロセッサとともに保
管オペレーションを開始する。共同プロセッサはオペレ
ーションを中断し内部マシン状態をデータプロセッサに
伝送することによって応答する。保管レジスタから読取
られたデータは共同プロセッサの内部状態フレーム用の
書式語である。共同プロセッサがオペレーション中断前
に遅延しなければならない場合には、共同プロセッサは
カムアゲイン書式($0E)を戻すことによってこのこと
を示す。この書式語を用いてデータプロセッサは内部状
態フレームの有効アドレスを評価し、書式語をフレーム
に書込む。次にデータプロセッサはオペランドレジスタ
から共同プロセッサの状態を一時に1ロングワードずつ
読取り、フレームの終りの方から有効アドレスにそれを
書込む。保管オペレーションの後に、共同プロセッサは
アイドル状態になり、保留例外はなくなる。
第13図は共同プロセッサ復元型命令の処理期間中のデー
タプロセッサと共同プロセッサとの間のプロトコルを示
す。データプロセッサは有効アドレスにおいて内部状態
アドレスから状態書式を読取り次に書式語を共同プロセ
ッサ復元レジスタに書込むことによって復元オペレーシ
ョンを開始する。書式語の長さフィールドは状態のサイ
ズを定義する。共同プロセッサは書式語を確認し、デー
タプロセッサは復元レジスタを読取る。書式が妥当でな
いと、共同プロセッサは妥当でない書式コード($0F)
を戻し、データプロセッサは共同プロセッサ制御レジス
タに対する例外に肯定応答し、書式誤り例外をとる。復
元オペレーション前に共同プロセッサが遅延しなければ
ならない場合には、共同プロセッサはカムアゲイン書式
コード($0E)を戻す。書式が妥当であれば、共同プロ
セッサは書式語を戻す。データプロセッサはフレームの
始めにおいてメモリから共同プロセッサの状態を読取
り、それを一時に1ロングワードずつ共同プロセッサオ
ペランドに書込む。
例外処理 すべての共同プロセッサのための例外取扱いを調整する
のはデータプロセッサの責任である。一般的には共同プ
ロセッサとともにデータプロセッサのために例外を取扱
うことは、データプロセッサ単独の場合と同じ規約に従
う。共同プロセッサ例外は典型的には命令の正常な処理
の一部として起きるが、共同プロセッサインタフェース
はより高い優先順位例外、即ちトレースおよび割込みの
ための規定を含む。共同プロセッサが検出する例外は、
それらの例外がデータプロセッサにとって認知可能であ
ろうとなかろうと共同プロセッサにとって認知可能なす
べての例外を含む。
第16図は共同プロセッサが検出した例外のためのプロト
コルを示す。例外を検出すると、共同プロセッサはTake
−Exception(例外をとる)根源語を共同プロセッサ応
答レジスタにロードする。共同プロセッサはまた例外を
解くのに要求される特定の例外ハンドラーをアドレスす
るためにデータプロセッサが用いることができる例外ベ
クトルナンバーを応答レジスタにロードする。応答レジ
スタの次の読取りによってデータプロセッサは例外に気
づき、共同プロセッサ制御レジスタを書込むことによっ
て共同プロセッサ例外に肯定応答して例外をクリアす
る。次にデータプロセッサは共同プロセッサが与えた例
外ベクトルナンバーを用いて例外をとる。
例外ハンドラーがその作業を完了すると、ハンドラーは
エキシット(exit)して主プログラムの実行を a) 例外が報告された命令の始めに(プリインストラ
クション例外) b) 例外が起きた点において(ミッドインストラクシ
ョン例外) c) 次の命令の始めに(ポストインストラクション例
外) 再開する。
プロトコル違反はデータプロセッサおよび共同プロセッ
サ通信プロトコルの破壊の結果として起きる。そのよう
な故障はプロトコルのどの点においても起こりうる。プ
ロトコル違反例外根源語は、共同プロセッサがデータプ
ロセッサに対し故障が起きた点を識別できるような方法
で設計されている。
データプロセッサが違法な共同プロセッサコマンド語を
コマンドレジスタに書込むか、又は妥当でない条件コー
ドを条件レジスタに書込むと、共同プロセッサはF線エ
ミュレータベクトルナンバーと共にTake Pre−Instruct
ion Exception(プリインストラクション例外をとる)
根源語を応答レジスタにロードする。データプロセッサ
が次に応答レジスタを読取ると、この根源語はデータプ
ロセッサに対し違法な命令が起きたことを示す。
コマンドを受取った後に共同プロセッサがオペランドレ
ジスタ、オペランドアドレスレジスタ、命令アドレスレ
ジスタ又はレジスタセレクタレジスタに対するアクセス
に対するアクセスを期待しつつある場合、その代わりに
データプロセッサかコマンドレジスタ又は条件レジスタ
をアクセスする場合には、共同プロセッサはDSACKを戻
し、共同プロセッサプロトコル違反ベクトルナンバーと
共にTake Mid−Instruction Exception(ミッドインス
トラクション例外をとる)根源語を応答レジスタにロー
ドすることによって間違ったアクセスを終了させる。同
様に、オペランドレジスタ、オペランドアドレスレジス
タ、命令アドレス又はレジスタセレクタレジスタが予期
されていない時にアクセスされた場合には、Take Mid−
Instruction Exception(ミッドインストラクション例
外をとる)に信号を送るべきである。プロトコル違反は
データプロセッサが次に応答レジスタを読取った時にデ
ータプロセッサによって発見される。勿論保管レジスタ
の読取りは復元レジスタへの書込みと同様に常に妥当で
ある。上記には述べていないすべての無害のバスアクセ
スは例外を生じさせない。
トラップ又は計算誤りのような以前の並行共同プロセッ
サ命令から保留のままになっている例外があると、共同
プロセッサはTake Post−Instruction Exception(ポス
トインストラクション例外をとる)根源語を応答レジス
タにロードする。データプロセッサが次に一般、ブラン
チ又は条件付き型命令を開始しようとして応答レジスタ
を読取ると、この根源語は適当な例外取扱いルーチンの
ベクトルナンバーと共にTake Pre−Instruction Except
ion(プリインストラクション例外をとる)根源語を応
答レジスタにロードすることによってトラップ又は計算
誤りが起きたことをデータプロセッサに知らせる。
例外根源語のうちのどれかを読取ると、データプロセッ
サは肯定応答し、例外肯定応答コードを共同プロセッサ
制御レジスタに書込むことによって例外をクリアする。
次にデータプロセッサは指定された例外ベクトルナンバ
ーに記憶された特定の例外ハンドラルーチンのアドレス
を検索し、例外ハンドラへ分岐する。プログラムの実行
が再開されると、データプロセッサは例外が検出された
時に実行されつつあった命令を再び開始する。もし適当
と思われる場合には、共同プロセッサはこの時に違法な
命令を報告することができる。
外部で発生したDMA共同プロセッサにより検出された例
外はバス動作に関係した例外およびシステムに関連した
例外を含む。バスサイクル関連例外が起きると、それは
バスを制御するデータプロセッサにのみ適用可能であ
る。システム例外はデータプロセッサがバスマスタでな
い場合でも共同プロセッサ又はデータプロセッサによっ
て検出された非バスサイクル関連事象(例えば割込み)
である。共同プロセッサおよびデータプロセッサによっ
てとられる行動は、出合う例外に大いに依存するので一
般的ではない。
DMA共同プロセッサにより検出されるアドレス誤り又は
バス誤りが起きると、例外を取扱うのに必要な情報がシ
ステムのアクセス可能レジスタに記憶され、Take Mid−
Instruction Exception(ミッドインストラクション例
外をとる)根源語が適当な例外取扱いルーチンに対する
ベクトルナンバーとともに共同プロセッサ応答レジスタ
にロードされる。次に共同プロセッサはバスの制御を放
棄し、データプロセッサによる次のアクセスを待機し、
その間に応答が読取られる。この応答は、バスサイクル
フォルト(fault)が発生しており、データプロセッサ
は適当な例外取扱いルーチンの方向に向うべきことをプ
ロセッサに示す。
すべてが零又はすべてが1の応答レジスタ値は妥当な根
源語ではない。これらの根源語又はデータプロセッサに
よって検出された他のいかなるそのような妥当でない根
源語も共同プロセッサに信号で知らされない。その代わ
りに、共同プロセッサインタフェースの将来の拡張のエ
ミュレーションを与えるために、データプロセッサはプ
ロトコル違反ベクトルおよびミッドインストラクション
例外スタックフレームを用いて例外をとる。これにより
オペレーティングシステムはインタフェースに対するい
かなる拡張もエミュレートして戻ることができるように
なる。
データプロセッサは適当に形成された要求が非可変有効
アドレスへの書込みのような違法な命令を指定した場合
には、それらの要求を妥当でないとみなすことができ
る。データプロセッサによって検出されたそのような妥
当でない根源語は、打切りコードを共同プロセッサ制御
レジスタに書込むことによって共同プロセッサに信号で
伝えられる。次にデータプロセッサはF線エミュレータ
ベクトルおよびプリインストラクション例外スタックフ
レームを用いて例外をとる。これによりオペレーティン
グシステムは共同プロセッサに対するいかなる拡張もエ
ミュレートし、次に戻ることができる。このことは例外
を生じさせた根源語を受取る前にこの命令においては破
壊根源語は処理されなかったものとしている。
データプロセッサがトレースモードで実行中である場合
には、データプロセッサがトレース例外をとる前に並行
の、又は現在のでない共同プロセッサ命令が共同プロセ
ッサによる処理を終了させてしまっていることが望まし
い。一般型命令では、共同プロセッサがカムアゲインな
しに応答を戻すとデータプロセッサと共同プロセッサと
の間の通信は閉じらされる。データプロセッサがトレー
スモードにあると、データプロセッサは応答レジスタの
読取りを続行する。共同プロセッサがコマンドを処理し
つつある間は、共同プロセッサはNull−Done根源語を用
いてデータプロセッサに応答する。共同プロセッサが処
理を終了すると、共同プロセッサは解放根源語を用いて
データプロセッサに応答する。解放根源語を受取ると、
データプロセッサはコマンドが完了したことを確かめる
ことができ、トレース例外をとることができる。ブラン
チおよび条件付き型命令の場合には、Null−Done根源語
は暗黙開放(implicit release)であり、データプロセ
ッサは自由に命令に関するその処理を終らせ、次にトレ
ース例外をとることができる。
共同プロセッサが命令の処理に多忙(busy)であるが命
令を終了させるためにはデータプロセッサから更に援助
が必要な場合には、共同プロセッサはデータプロセッサ
が許容されたカムアゲインおよび割込みをもったヌル根
源語で応答することによって割込みをサンプルできるよ
うにすべきである。割込み保留がない場合には、データ
プロセッサは単に戻って再び応答レジスタに質問するだ
けである。保留割込みがある場合には、データプロセッ
サはミッドインストラクションスタックフレームを用い
て割込み例外をとる。割込みハンドラが割込みを処理し
た後に、割込みハンドラは戻ることができ、データプロ
セッサは再び応答レジスタに質問する。従って共同プロ
セッサにとっては、データプロセッサによる割込みの受
取りは単に異常に遅いデータプロセッサのようにみえる
にすぎない。割込みが処理された後にデータプロセッサ
が再びディスパッチされなければならない場合には、共
同プロセッサの状態は保管型命令によって保管され、そ
の後復元型命令によって復元されてもよい。
データプロセッサが共同プロセッサと通信するに用いる
CPUアドレス空間サイクルの期間中に、又はデータプロ
セッサがデータ又は命令をアクセスしつつあるメモリサ
イクルの期間中に、共同プロセッサ命令を処理している
際にバスサイクルのフォルト(fault)が起こりうる。
共同プロセッサ命令を開始するバスサイクルを作動させ
ている際にデータプロセッサがフォルトを受取ると、デ
ータプロセッサはシステム内に共同プロセッサはないも
のとみなして、F線エミュレータトラップをとる。その
他の共同プロセッサアクセスがフォルトすると、それは
共同プロセッサがフォルトしたものとみなし、バス誤り
例外をとる。
データプロセッサが共同プロセッサ命令を実行している
際にメモリフォルトを有すると、データプロセッサはア
ドレス誤り又はバス誤り例外をとる。フォルトハンドラ
がフォルト状態を直すと、ハンドラは戻り、共同プロセ
ッサとの通信はあたかもそのフォルトが起きなかったか
のように続行する。フォルト状態が直されつつある際に
データプロセッサが再びディスパッチされなければなら
ない場合には、共同プロセッサの状態は保管型命令によ
って保管され、その後復元型命令によって復元されても
よい。
データプロセッサがリセット信号を受信するか、又はリ
セット命令を実行する場合には、共同プロセッサはリセ
ットされ、もし適当と思われる場合には初期設定される
べきである。全システムのリセットとリセット命令の実
行との間に区別を設けるべきではない。共同プロセッサ
はリセットを開始する必要はない。
本発明に用いるように適合された内部アーキテクチヤお
よびプロセッサのオペレーションに関する更に詳しい説
明については、モトローラ社M68000マイクロプロセッサ
に関する下記の米国特許を参照されたい。
1. “セグメンテッドバス構造を用いたデータプロセッ
サ用実行ユニット”と題する米国特許第4,296,469号。
2. “マイクロプログラムドデータプロセッサ用2レベ
ル制御記憶装置”と題する米国特許第4,325,121号。
3. “マイクロプログラムデータプロセッサ用条件付き
ブランチユニット”と題する米国特許第4,338,661号。
4. “データプロセッサ用ALUおよび条件コード制御ユ
ニット”と題する米国特許第4,342,034号。
5. “マイクロプログラムドデータプロセッサのための
バス誤り認識”と題する米国特許第4,348,722号。
6. “マイクロプロセッサ割込み処理”と題する米国特
許第4,349,873号。
本発明を好ましい実施例について説明したが、本発明は
多くの方法で変形でき、上記に具体的に記述し説明した
実施例以外の多くの実施例の形をとりうることは当業者
には自明である。従って、本発明の真の精神および範囲
内に入る本発明のすべての変形を含むことが添付の特許
請求の範囲によって意図されている。
【図面の簡単な説明】
第1図は、本発明のインタフェースを用いて共同プロセ
ッサに結合されたデータプロセッサを有するデータ処理
システムのブロック図である。 第2図Aおよび第2図Bは、第1図のシステムにおける
データプロセッサー共同プロセッサ書込みサイクルおよ
び読取りサイクルをそれぞれ示す。 第3図は、第1図のシステムにおいて利用可能な共同プ
ロセッサ命令表である。 第4図Aおよび第4図Bは、第1図のシステムにおける
共同プロセッサ状態書式(state format)および書式語
をそれぞれ示す。 第5図は、データプロセッサをイネーブルさせて第1図
の共同プロセッサを独特にアクセスするアドレス構造を
示す。 第6図は、第1図のシステムにおけるデータプロセッサ
−共同プロセッサインタフェース用のプログラマーのモ
デルを示す。 第7図Aおよび第7図Bは、第1図のシステムにおいて
利用可能な共同プロセッサ応答根源語の内容である。 第8図は、第1図のシステムにおいて利用可能な有効ア
ドレスモードである。 第9図A、第9図Bおよび第9図Cは、第1図のシステ
ム用の例外スタック書式を示す。 第10図は、第1図のシステムにおける条件付きブランチ
又はセット命令を処理するプロトコルを示す。 第11図は、第1図のシステムにおける一般型命令を処理
するプロトコルを示す。 第12図は、第1図のシステムにおける保管動作(save o
peration)を処理するプロトコルを示す。 第13図は、第1図のシステムにおける復元動作を処理す
るプロトコルを示す。 第14図は、第1図のシステムにおいてメモリオペランド
を非DMA(non−DMA)共同プロセッサへ転送するプロト
コルを示す。 第15図は、第1図のシステムにおいて非DMA共同プロセ
ッサオペランドメモリへ転送するプロトコルを示す。 第16図は、第1図のシステムにおいて共同プロセッサが
検出した例外のためのプロトコルを示す。
───────────────────────────────────────────────────── フロントページの続き (31)優先権主張番号 485675 (32)優先日 1983年4月18日 (33)優先権主張国 米国(US) (31)優先権主張番号 485676 (32)優先日 1983年4月18日 (33)優先権主張国 米国(US) (31)優先権主張番号 485686 (32)優先日 1983年4月18日 (33)優先権主張国 米国(US) (31)優先権主張番号 485811 (32)優先日 1983年4月18日 (33)優先権主張国 米国(US) (31)優先権主張番号 485814 (32)優先日 1983年4月18日 (33)優先権主張国 米国(US) 審判番号 平1−11908 (72)発明者 ダグラス・ビ−・マクレガ− アメリカ合衆国テキサス州78727オ−スチ ン・テラゴナ・レイン3705番 (72)発明者 マイケル・クル−ズ アメリカ合衆国テキサス州78752オ−スチ ン・キヤノン・マウンテン・ブレイス7405 番 (72)発明者 スタンレイ・イ−・グロ−ブス アメリカ合衆国テキサス州78664ラウン ド・ロツク・ライム・ロツク・ドライブ 1505番 (72)発明者 バン・ビ−・シヤハン アメリカ合衆国テキサス州78757オ−スチ ン・ツイン・オ−クス・ドライブ2702番 (72)発明者 ドナルド・エル・テイツジエン アメリカ合衆国テキサス州78748オ−スチ ン・キヤプシカム・コ−ブ3210番 (56)参考文献 特開 昭53−135530(JP,A) 特開 昭55−103656(JP,A) 特開 昭56−22160(JP,A) 特開 昭57−105070(JP,A) 特開 昭55−164922(JP,A) 特開 昭52−15242(JP,A)

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】通信バスにより共同プロセッサと結合され
    たデータプロセッサが、データプロセッサが受信した命
    令を共同プロセッサに実行させる場合に、通信バスを介
    して通信バス上の標準バスサイクルのみを使用してその
    実行を調整する方法であって、 前記命令は命令の型を示すタイプフィールドを含むもの
    であって、 データプロセッサが命令を受取るステップと、 データプロセッサは受取った命令のうち少なくともタイ
    プフィールドを、標準バスサイクルを使用してデータプ
    ロセッサのアドレス空間内の独特のアドレスにおいて、
    共同プロセッサに書込むステップと、 共同プロセッサが前記命令上のタイプフィールドを受信
    した後、データプロセッサは、標準バスサイクルを使用
    して独特のアドレスにおいて共同プロセッサからの応答
    を即座に読取るステップと、 データプロセッサが前記応答を検査するステップと、 前記応答が共同プロセッサが前記命令を実行できるよう
    にするためにはデータプロセッサが所定のタスクを実行
    しなければならないことを示す場合において、データプ
    ロセッサが前記応答によって選択される所定のタスクを
    選択的に実行するステップと、 前記応答が共同プロセッサによる命令の実行を支援する
    ために、データプロセッサが実行しなければらならない
    前記所定のタスク以外のタスクを選択した場合におい
    て、データプロセッサは所定の例外ハンドラーに前記所
    定のタスク以外のタスクを向けるステップと、 を具える共同プロセッサによる命令の実行をデータプロ
    セッサが調整する方法。
  2. 【請求項2】通信バスにより共同プロセッサと結合され
    たデータプロセッサであって該データプロセッサは、命
    令及びデータを通信バスより受信し、受信した命令を共
    同プロセッサに実行させる場合に通信バスを介して特別
    のバスサイクルを要求することなくその実行を調整する
    データプロセッサであって、 前記共同プロセッサは、命令の一般のアドレス部分と、
    命令のアドレスフィールドに含まれる共同プロセッサに
    特有の値とを結合して生成される独特のアドレスに応答
    するものであり、 該データプロセッサは、 通信バスと結合されたデータプロセッサにより命令を受
    取る第1手段と、 受取った命令の一般のアドレス部分と、命令のアドレス
    フィールドに含まれる共同プロセッサに特有の値とを結
    合することにより独特のアドレスを与える第2手段と、 前記第2手段により与えられたアドレスにおいて、共同
    プロセッサによる命令の実行を調整する第3手段と、 を具え、 共同プロセッサは、命令の実行において、共同プロセッ
    サに使用される複数のレジスタを有し、 レジスタの各々は、共同プロセッサに独特のアドレスの
    範囲内でそれぞれのアドレスに応答するものであり、 前記それぞれのアドレスは、レジスタの各々が共同プロ
    セッサによる命令の実行を調整する前記第3手段により
    必要とされる場合に前記第2手段により与えられること
    を特徴とする共同プロセッサによる命令の実行を調整す
    るデータプロセッサ。
  3. 【請求項3】標準バスサイクルを使用する通信バスによ
    り結合されたデータプロセッサ及び共同プロセッサが協
    動動作する共同処理システムにおいて、 データプロセッサが選択された単一の命令を実行する方
    法であり、該命令の実行は、共同プロセッサに存在する
    選択された条件の状態に付随するものであって、該命令
    を実行する方法は、 該命令の実行の第1部分において、データプロセッサ
    は、共同プロセッサに存在する選択された条件の状態を
    評価する要求を共同プロセッサに書込み、共同プロセッ
    サは選択された条件の状態を評価し、評価の結果として
    選択された条件が満足されたか否かを示す指示をデータ
    プロセッサに提供するステップと、 該命令の実行の第2部分において、データプロセッサ
    は、前記要求に応答して共同プロセッサにより与えられ
    た前記指示を読出すステップと、 該命令の実行の最後の部分において、データプロセッサ
    は、前記指示により示された共同プロセッサによる評価
    の結果に基いて命令の実行を選択的に完了するステップ
    と、 を具える共同プロセッサによる命令の実行をデータプロ
    セッサが調整する方法。
  4. 【請求項4】標準バスサイクルを使用する通信バスによ
    り結合されたデータプロセッサ及び共同プロセッサが、
    協動動作する共同処理システムにおいて、選択されたプ
    ログラムの処理中にデータプロセッサが単一命令を受信
    し、該単一命令を共同プロセッサに実行させる場合にデ
    ータプロセッサが共同プロセッサによる該単一命令の実
    行を調整し、 共同プロセッサは、データプロセッサと同一の命令スト
    リームに追随せず、データプロセッサは、単一命令の実
    行中、共同プロセッサの処理に選択的に割込む方法であ
    って、 通信バスによってデータプロセッサと共同プロセッサと
    を結合するステップと、 データプロセッサが通信バスを介して単一命令を受取る
    ステップと、 データプロセッサが受取った単一命令を共同プロセッサ
    に実行させるため、共同プロセッサに通信バスを介して
    命令するステップと、 共同プロセッサによる単一命令の実行中に選択されたプ
    ログラムの処理への割込み信号をデータプロセッサが通
    信バスを介して受信した場合に該受信信号に応答して、
    データプロセッサが共同プロセッサに単一命令の実行を
    中断することを通信バスを介して要求するステップと、 データプロセッサは実行を中断するという前記要求を受
    取った旨の応答である共同プロセッサからの指示及び要
    求された単一命令の実行の中断が、単一命令の実行にお
    いて選択された時点まで共同プロセッサによって遅延さ
    れなければならないことの指示であって、共同プロセッ
    サの中断を要求するデータプロセッサに応答してのみ与
    えられる指示を共同プロセッサから受取るステップと、 データプロセッサは共同プロセッサが単一命令の実行の
    中断を遅延する期間中に通信バスを介して共同プロセッ
    サを周期的にポーリングするステップと、 データプロセッサは共同プロセッサが単一命令の実行を
    中断した時点で、通信バスを介して共同プロセッサの状
    態を読取るステップと、 データプロセッサが共同プロセッサの前記読取られた状
    態を記憶するステップと、 割込み処理の終了後、データプロセッサは共同プロセッ
    サの状態を通信バスを介して前記記憶した状態まで選択
    的に回復し、選択したプログラムの処理を再開すること
    によって共同プロセッサが、実行中の選択された時点か
    ら単一命令の実行を再び始めるステップと、 を具える共同プロセッサによる命令の実行をデータプロ
    セッサが調整する方法。
  5. 【請求項5】標準バスサイクルを使用する通信バスによ
    り結合されたデータプロセッサ及び共同プロセッサが、
    協動動作する共同処理システムにおいて、選択されたプ
    ログラムの処理中にデータプロセッサが単一命令を受信
    し、該単一命令を共同プロセッサに実行させる場合にデ
    ータプロセッサが共同プロセッサによる該単一命令の実
    行を調整し、 共同プロセッサは、データプロセッサと同一の命令スト
    リームに追随せず、データプロセッサは、単一命令の実
    行中、共同プロセッサの処理に選択的に割込む方法であ
    って、 通信バスによって共同プロセッサとデータプロセッサと
    を結合するステップと、 共同プロセッサがデータプロセッサから単一命令を実行
    するコマンドを通信バスを介して受取るステップと、 共同プロセッサが単一命令を実行するステップと、 共同プロセッサは受取った単一命令の実行期間中にデー
    タプロセッサから共同プロセッサによる単一命令の実行
    を中断する要求を通信バスを介して受取るステップと、 共同プロセッサはデータプロセッサから要求された単一
    命令の実行の中断を実行中の所定の時点まで遅延しなけ
    ればならないということを決定するステップと、 共同プロセッサはデータプロセッサから要求された単一
    命令の実行の中断が、共同プロセッサにより遅延されな
    ければならないと云う指示であり、中断することを要求
    するデータプロセッサにのみ応答して与えられる指示を
    データプロセッサに与えるステップと、 実行中の所定の時点において、共同プロセッサにより単
    一命令の実行を中断するステップと、 共同プロセッサは実行が中断されたと云う指示を通信バ
    スを介してデータプロセッサに与えるステップと、 共同プロセッサは単一命令の実行を中断した時点で共同
    プロセッサの状態を通信バスを介してデータプロセッサ
    に提供するステップと、 割込み処理の終了後、共同プロセッサはデータプロセッ
    サに提供した共同プロセッサの状態を通信バスを介して
    データプロセッサから再び受取るステップと、 共同プロセッサは、共同プロセッサの状態を前記受取っ
    た状態に回復し、実行中の所定の時点から単一命令の実
    行を再開するステップと、 を具える共同プロセッサによる命令の実行をデータプロ
    セッサが調整する方法。
  6. 【請求項6】標準バスサイクルを使用する通信バスによ
    り結合されたテータプロセッサ及び共同プロセッサが協
    動動作する共同処理システムにおいて、共同プロセッサ
    はデータプロセッサと同一の命令の流れには追随せず、
    データプロセッサが単一命令を受取り、その単一命令を
    共同プロセッサに実行させる時、共同プロセッサによる
    単一命令の実行を制御するのに適合したデータプロセッ
    サであって、 該データプロセッサは、 命令を受取る第1手段と、 受取った命令を実行するように共同プロセッサに命令す
    る第2手段と、 実行中の命令に含まれる有効アドレスを選択的に評価す
    る要求を示す共同プロセッサからの応答を読取る第3手
    段と、 共同プロセッサが命令を実行できるようにするためには
    データプロセッサによって有効アドレスが評価されなけ
    ればならないことを前記応答が示す場合に、命令中の選
    択された有効アドレスを評価する第4手段と、 を具え共同プロセッサが命令を実行するのに必要なオペ
    ランドの有効アドレスをデータプロセッサが選択的に評
    価し、データプロセッサ及び共同プロセッサの両方が独
    立に動作し、共同プロセッサはデータプロセッサと同一
    の命令の流れに追随しないことを特徴とする共同プロセ
    ッサによる命令の実行を調整するデータプロセッサ。
  7. 【請求項7】標準バスサイクルを使用する通信バスによ
    り結合された汎用のデータプロセッサ及び複数の専用の
    共同プロセッサが協動動作するデータ処理システムであ
    って、 命令の第1所定のサブセットの各々を独立にデコード
    し、かつ実行するのに適合した汎用のデータプロセッサ
    と、 命令のそれぞれの第2所定のサブセットの各々を独立に
    デコードし、かつ実行する場合において、汎用のデータ
    プロセッサと協動動作するのに適合した任意の複数の専
    用の共同プロセッサと、 を具え、 命令の単一の流れに応答するデータ処理システムにおい
    て、 汎用のデータプロセッサが命令の流れを構成する複数命
    令の各々を受取るステップと、 汎用のデータプロセッサは受取った命令の各々の所定の
    オペレーションビットフィールドにおいて、命令の第2
    所定のサブセットを構成する命令を特徴付ける所定の値
    を検出するステップと、 汎用のデータプロセッサは検出された命令の各々の所定
    のコマンドビットフィールドから生成される任意の複数
    の所定のコマンド信号値の1つを専用の共同プロセッサ
    に与えるステップであって、その所定のコマンド信号値
    の各々は、汎用のデータプロセッサが検出した命令を実
    行するために専用の共同プロセッサが実行しなければな
    らないことを指示するものである前記ステップと、 汎用のデータプロセッサは専用の共同プロセッサによる
    前記コマンド信号値の受信に応答して専用の共同プロセ
    ッサから複数の応答信号値のうちの何れかからなる応答
    を受取り、その応答信号値の各々は、専用の共同プロセ
    ッサが前記コマンド信号による指示を実行できるように
    するためには汎用のデータプロセッサが所定のタスクを
    実行しなければならないかどうかを指示するステップ
    と、 汎用のデータプロセッサは受取った前記応答信号値によ
    り指示された場合、前記所定のタスクを実行するステッ
    プと、を具える共同プロセッサによる命令の実行をデー
    タプロセッサが調整する方法。
  8. 【請求項8】標準バスサイクルを使用する通信バスによ
    り結合された汎用のデータプロセッサ及び複数の専用の
    共同プロセッサが協動動作するデータ処理システムであ
    って、 命令の第1所定のサブセットの各々を独立にデコード
    し、かつ実行するのに適合した汎用のデータプロセッサ
    と、 命令のそれぞれの第2所定のサブセットの各々を独立に
    デコードし、かつ実行する場合において、汎用のデータ
    プロセッサと協動動作するのに各々適合した任意の複数
    の専用の共同プロセッサと、 を具え、 命令の単一の流れに応答するデータ処理システムにおい
    て、 各共同プロセッサは命令の第2所定のサブセットを構成
    する命令の各々の所定のコマンドビットフィールドから
    生成される複数の所定のコマンド信号値のうちの何れか
    を汎用のデータプロセッサから受取るステップであっ
    て、 その所定のコマンド信号値の各々は、汎用のデータプロ
    セッサが命令を実行するために共同プロセッサが実行し
    なければならない複数の所定のコマンドのうちの選択さ
    れた1つを指示するものである前記ステップと、 各共同プロセッサは前記受取ったコマンド信号値により
    指示された選択されたコマンドの1つを共同プロセッサ
    が実行できるようにするために、汎用のデータプロセッ
    サが実行しなければならない複数の所定のタスクのうち
    の選択された1つを決定するステップと、 各共同プロセッサは共同プロセッサが前記選択されたコ
    マンドを実行できるようにするために、汎用のデータプ
    ロセッサが実行しなければならない前記選択されたタス
    クを指示する所定の応答信号値を有する応答を汎用のデ
    ータプロセッサに与えるステップと、を具える複数の共
    同プロセッサの内の任意の1つの共同プロセッサによる
    命令の実行をデータプロセッサが調整する方法。
JP59076771A 1983-04-18 1984-04-18 共同プロセッサによる命令の実行をデータプロセッサが調整する方法および該データプロセッサ Expired - Lifetime JPH07120338B2 (ja)

Applications Claiming Priority (16)

Application Number Priority Date Filing Date Title
US48581183A 1983-04-18 1983-04-18
US48581483A 1983-04-18 1983-04-18
US48567683A 1983-04-18 1983-04-18
US48567283A 1983-04-18 1983-04-18
US48567583A 1983-04-18 1983-04-18
US48568683A 1983-04-18 1983-04-18
US48567383A 1983-04-18 1983-04-18
US485671 1983-04-18
US485675 1983-04-18
US485673 1983-04-18
US485672 1983-04-18
US06/485,671 US4750110A (en) 1983-04-18 1983-04-18 Method and apparatus for executing an instruction contingent upon a condition present in another data processor
US485811 1983-04-18
US485676 1983-04-18
US485686 1983-04-18
US485814 1983-04-18

Publications (2)

Publication Number Publication Date
JPS59201154A JPS59201154A (ja) 1984-11-14
JPH07120338B2 true JPH07120338B2 (ja) 1995-12-20

Family

ID=27575451

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59076771A Expired - Lifetime JPH07120338B2 (ja) 1983-04-18 1984-04-18 共同プロセッサによる命令の実行をデータプロセッサが調整する方法および該データプロセッサ

Country Status (4)

Country Link
EP (4) EP0123337A3 (ja)
JP (1) JPH07120338B2 (ja)
KR (1) KR900004291B1 (ja)
DE (3) DE3486468D1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4509116A (en) * 1982-04-21 1985-04-02 Digital Equipment Corporation Special instruction processing unit for data processing system
US4763242A (en) * 1985-10-23 1988-08-09 Hewlett-Packard Company Computer providing flexible processor extension, flexible instruction set extension, and implicit emulation for upward software compatibility
JP2610821B2 (ja) * 1986-01-08 1997-05-14 株式会社日立製作所 マルチプロセツサシステム
JPH01297764A (ja) * 1988-05-25 1989-11-30 Nec Corp プロセッサ
AT395494B (de) * 1988-06-14 1993-01-25 Automations Und Informationssy Integrierte schaltungsanordnung
US5068821A (en) * 1989-03-27 1991-11-26 Ge Fanuc Automation North America, Inc. Bit processor with powers flow register switches control a function block processor for execution of the current command
JP2884831B2 (ja) * 1991-07-03 1999-04-19 株式会社日立製作所 処理装置
JP2987308B2 (ja) * 1995-04-28 1999-12-06 松下電器産業株式会社 情報処理装置
US5968162A (en) * 1996-04-02 1999-10-19 Advanced Micro Devices, Inc. Microprocessor configured to route instructions of a second instruction set to a second execute unit in response to an escape instruction
US6247113B1 (en) 1998-05-27 2001-06-12 Arm Limited Coprocessor opcode division by data type
JP2001027951A (ja) * 1999-07-14 2001-01-30 Fujitsu Ltd マルチプロセッサ構成の情報処理システムにおけるファイルロード装置と記録媒体
US7383587B2 (en) 2002-11-18 2008-06-03 Arm Limited Exception handling control in a secure processing system
US7684754B2 (en) 2003-06-03 2010-03-23 Microsoft Corporation Capacitive bonding of devices
GB2538754B (en) * 2015-05-27 2018-08-29 Displaylink Uk Ltd Single-chip multi-processor communication

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2607685C3 (de) * 1976-02-25 1981-01-15 Siemens Ag, 1000 Berlin Und 8000 Muenchen Verfahren zum Betrieb von Prozessoren in einem Multiprozessorsystem
US4128876A (en) * 1977-04-28 1978-12-05 International Business Machines Corporation Synchronous microcode generated interface for system of microcoded data processors
US4268904A (en) * 1978-02-15 1981-05-19 Tokyo Shibaura Electric Co., Ltd. Interruption control method for multiprocessor system
US4270167A (en) * 1978-06-30 1981-05-26 Intel Corporation Apparatus and method for cooperative and concurrent coprocessing of digital information
US4258420A (en) * 1979-01-03 1981-03-24 Honeywell Information Systems Inc. Control file apparatus for a data processing system
JPS55103656A (en) * 1979-01-31 1980-08-08 Toshiba Corp Information processing system
JPS5622160A (en) * 1979-07-31 1981-03-02 Fujitsu Ltd Data processing system having additional processor
US4338675A (en) * 1980-02-13 1982-07-06 Intel Corporation Numeric data processor
JPS5829549B2 (ja) * 1980-12-23 1983-06-23 富士通株式会社 レジスタ干渉制御方式
AU9144782A (en) * 1981-12-21 1983-06-30 General Electric Company Primary and secondary computer system
US4509116A (en) * 1982-04-21 1985-04-02 Digital Equipment Corporation Special instruction processing unit for data processing system

Also Published As

Publication number Publication date
EP0523758A3 (en) 1993-01-27
EP0526911A1 (en) 1993-02-10
DE3486465D1 (de) 1998-04-02
DE3486464D1 (de) 1998-02-19
DE3486468D1 (de) 1998-08-06
KR840008714A (ko) 1984-12-17
EP0123337A3 (en) 1988-05-18
KR900004291B1 (ko) 1990-06-20
EP0525831B1 (en) 1998-07-01
EP0123337A2 (en) 1984-10-31
EP0523758A2 (en) 1993-01-20
EP0525831A1 (en) 1993-02-03
JPS59201154A (ja) 1984-11-14
EP0523758B1 (en) 1998-02-25
EP0526911B1 (en) 1998-01-14

Similar Documents

Publication Publication Date Title
US4729094A (en) Method and apparatus for coordinating execution of an instruction by a coprocessor
US4715013A (en) Coprocessor instruction format
US4731736A (en) Method and apparatus for coordinating execution of an instruction by a selected coprocessor
JP2834837B2 (ja) プログラマブルコントローラ
US4763242A (en) Computer providing flexible processor extension, flexible instruction set extension, and implicit emulation for upward software compatibility
US4648034A (en) Busy signal interface between master and slave processors in a computer system
US4750110A (en) Method and apparatus for executing an instruction contingent upon a condition present in another data processor
US5021991A (en) Coprocessor instruction format
JP4226085B2 (ja) マイクロプロセッサ及びマルチプロセッサシステム
JPH07117897B2 (ja) データ処理システムのプリフェッチ回路
JPH07120338B2 (ja) 共同プロセッサによる命令の実行をデータプロセッサが調整する方法および該データプロセッサ
US5029073A (en) Method for fast establishing a co-processor to memory linkage by main processor
US4758950A (en) Method and apparatus for selectively delaying an interrupt of a coprocessor
US4821231A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
KR970003321B1 (ko) 코프로세서 지정 시스템
US4914578A (en) Method and apparatus for interrupting a coprocessor
US7051146B2 (en) Data processing systems including high performance buses and interfaces, and associated communication methods
US4994961A (en) Coprocessor instruction format
US4758978A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
EP0385136B1 (en) Microprocessor cooperating with a coprocessor
EP0301707B1 (en) Apparatus and method for providing an extended processing environment on nonmicrocoded data processing system
JPH08255476A (ja) データ処理システムにおけるメモリ拡張スタック装置および方法
US4811274A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
JPH0668725B2 (ja) データ処理システムにおける割込条件に応答する装置及び非同期割込条件に応答する方法
JPH0384632A (ja) データ処理装置

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371