JPS6014341A - 基本命令セツト計算機システムにおけるトラツプ割込み方式 - Google Patents

基本命令セツト計算機システムにおけるトラツプ割込み方式

Info

Publication number
JPS6014341A
JPS6014341A JP59078789A JP7878984A JPS6014341A JP S6014341 A JPS6014341 A JP S6014341A JP 59078789 A JP59078789 A JP 59078789A JP 7878984 A JP7878984 A JP 7878984A JP S6014341 A JPS6014341 A JP S6014341A
Authority
JP
Japan
Prior art keywords
instruction
trap
instructions
register
cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP59078789A
Other languages
English (en)
Other versions
JPH0228173B2 (ja
Inventor
マ−ク・アラン・オ−スランダ−
ジヨン・クツク
シユ−・タング・ハオ
ピ−タ−・ウイリ−・マ−クスタイン
ジヨ−ジ・ラデイン
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS6014341A publication Critical patent/JPS6014341A/ja
Publication of JPH0228173B2 publication Critical patent/JPH0228173B2/ja
Granted 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 「産業上の利用分野コ 本発明は、通常の計算機アーキテクチャにお+Jる命令
セラ1〜よりずっと小規模の命令セット(以下、基本命
令セラ1へという)しか持たないR」算機システムに係
る。
[従来技術] 最近のV L S I技術の発達により、マイクロプロ
セッサの設計に関しては、相反する2つのアプローチが
可能になってきた。第1−のアプローチは、V L S
 Iを十二分に利用して、これまではラフ1−ウェアで
実現さJl、ていた機能をハードウェアで実現させるも
のである。当然の結果として、マイクロプロセッサの物
理的な構成は複雑になる。こ]しに対して第2のアプロ
ーチは、これまでより多くの機能をラフ1〜ウエアで実
現させることによって[tF−で且つ高速のマイクロブ
凸セッサを構成しようとするものである。後者のアプロ
ーチの代表的な例が下記の文献に記載されている。
(1) Gaort<e Radjn ”Thc+ 8
0] Mj−njcomputCr” ACM2− 5IGr’l、AN N0TICES、第17巻、第4
号、1982年4月、:39〜/+7頁 (2) Patterson、5equ、i、n ”R
ISC1: a ReducedI n s t; r
 II C賃、jon SCa: VLSI Comp
uter” TREE Computer。
1982年9月、8〜20頁 第]−のアプローチは、ラフ1−ウェアの開発費用およ
びその実行速度を考えた場合、年ごとに安くなっている
V L S I回路を用いてシステムを構成した方が全
体として価格性能比を−にげろことができる、という考
えに基いている。従って、第1のアプローチをとるシス
テム設H1者は、VLSI回路の潜在能力に合わせてア
ーキテクチャをより複雑にしている。これは、最近の計
算機とその前のi−1算機、例えば■ΔX i ]とF
DP−11、IBMシステム/38とIBMシステム/
3、インテルAT”X−4,32と8086、などを比
較してみれば明らかである。ただしアーキテクチャが複
雑になると、それだけシステム設H]に要する時間が長
くなり、改削ミスの可能性も増える。この型のシステム
は大規模命令セット割算機システム、略してCl5Cシ
ステムと呼ば]している。
これに対して、前記の文献に記載されているような第2
のアプローチに従って構成されたシステムは小規模命令
セットdj算1m(RISC)システムあるいは」ル本
命令セラ1〜計算機システム(以下、PRTSMシステ
11という)と呼ばれる。I)R18Mシステムの中心
はCp TJである。システム設計の大部分は、ユーザ
に対してCPUの基本能力を使用可能にする、というこ
とに向けられでいる。
全体的な構成は従来のCl〕t、Jとは幾分異なってい
る。
本発明もPRTSMシステム、を対象にしているので、
以下前記の文献に記載されているC P TJの設計原
理および従来のCI) Uとの違いについて、本発明に
関係する範囲内で少し詳しく説明する。
小型ないし中型の汎用R1算機システムにおける通常の
CI) TJは、アーキテクチャを11解釈″する配線
マイクロプロセッサで構成されている。このようなCP
Uでは、1つのCP U命令を実行するために、制御記
憶装置にある幾つかのマイクロ命3− 令が実行される。1つの平均的なCPU命令を実行する
のに必要なマイクロ命令(マシンサイクル)の数は、使
用されているマイクロプロセッサの能力(従って価格)
、CPUアーキテクチャの複雑さ、および実行中のアプ
リケーション(即ち命令ミックス)によって左右される
。例えば、IBMシステム/370モデル168は1つ
のシステム/370命令当り3〜6サイクルを要し、モ
デル148は10〜15サイクルを要し、システム/3
60モデル30は30サイクル以上になる。
CPUの設計によっては、ルックアヘッド、並列処理お
よび分岐の記録といった技術を用いることにより、1命
令当りのマシンサイクル数を1に近づけることができる
アプリケーションによる相違については、例えば一般に
科学技術dj算は浮動tJX数点命令を使用するが、事
務計算は10進演算を使用する。ところが、アプリケー
ションコードの代りに走行システム全体を追跡してみる
と、最も頻繁に使用される命令に顕著な類似性があるこ
とがわかる。これら=4− の命令は、ロード、記憶1分岐、比較、す(r数演算、
論理桁送りといった比較的簡単な命令であり、基礎とな
るマイクロプロセッサの命令セラ1〜にもこれらと同じ
機能を持った命命がある。従って、マイクロプロセッサ
のアーキテクチャがCP TJのアーキテクチャと正確
には一致しない場合であっても、そのような機能につい
てまでCPUアーキテクチャをマイクロブト1セツザで
″解釈″することは無駄であると考えられた。
従って、PRISMシステムのために設計された基本命
令セットはハードウェアで直接実行することができる。
即ち、各々基本命令は1マシンザイクルしか必要としな
い。複何1な機能は、通常のCPUの場合と同じく、マ
イクロコードで実現される。ただし、PRI 8Mシス
テムにお番プるマイクロコードは正にコードであって、
関連する機能は基本命令セット」二で走行するソフトウ
ェアサブルーチンによって実現される。
高速の制御記憶装置に記憶されていることがら生じるマ
イクロコードの利点は、キャッシュをデ−夕用ど命令用
とに分けた記憶階層では、事実上消滅する。命令キャッ
シュは″ページ可能″制御記憶装置として働く。通常の
CP Uでは、すべてのアプリケーションにわたってど
の機能が最も頻繁に使用されるかは、設計者が1盲もっ
て決める。
従って、例えば倍精度の浮動小数点除算命令は常に高速
の制御記憶装置にあるが、第1−レベル割込みハンI〜
うは主記憶装置にある。命令キャッシュを用いた場合は
、最近の使用状況によって、どの機能がより速く使用で
きるかが決まる。
このアプローチによれば、特定のジョブを実行するのに
要するサイクル数は、最悪の場合であっても、複雑な命
令がマイクロプログラムされている通常の小型ないし中
型CP Uにおけるサイクル数以下である。更に、」、
(本命令の定義づけをうまく行えば、必要なサイクル数
がより少なくなることがわかった。
大部分の命令ミックスによれば、データの書込みまたは
読取りに関する命令が全体の20〜30%を占め、分岐
命令が15〜30%を占めている。
更に、多くのアプリケーションにおいては、記憶装置帯
域幅のかなりの部分が■/○のためにさがれている。記
憶装置アクセスのためにCP Uが多くのサイクルにわ
たって待ち状態へ強制されると、その間の処理時間が無
駄になる。
従って、P IR,I 8Mシステムの第2の目的は、
記憶装置アクセスに起因するCPUの遊休時間をできる
だけ短くするように記憶階層およびシステムアーキテク
チャを構築することであった。まず、CPUのマシンサ
イクルに匹敵するアクセス時間を持ったキャッシュが必
要なことは明らかである。
次に、記憶命令が出されても直ちに主記憶装置への記憶
を行わなくてもよいということから、ストアイン方式の
キャッシュが採用された。かりに1つのワー1くを記憶
するのに1−〇サイクルを要し、且つ命令全体の10%
が記憶命令であるとすると、記憶命令およびそれに続く
命令を並行して実行できない限り、CP tJの遊休時
間は全体の約半分に達する。
しかし、サイクルごとに新しい命令を必要とし、7− 且つ2サイクルおきにデータをアクセスするCPU構成
においては、サイクルごとにワードを供給する通常のキ
ャッシュを用いると、性能が低下する。従って、キャッ
シュはデータを含む部分と、命令を含む部分とに分けら
れた。このようにしてキャッシュへの帯域幅は実質的に
倍にされ、外部記憶装置からの命令およびデータの非同
期的取出しが可能になった。
通常のアーキテクチャでは、データの記憶は命令を変更
することによって行われるため、2つのキャッシュが適
切に同期していることをハードウェアが保証しなければ
ならない。こicはコスト高になり、また性能の低下に
もつながる。命令先取機構でさえ、記憶有効ア1(レス
と命令アドレスレジスタの内容を比較しなければならな
いので、複雑になる。
ところが指標レジスタが計算機に導入されるようになっ
て、命令を変更する頻度が大幅に減少され、今日に至る
まで事実上命令が変更されることはなくなった。従って
PRI 8Mアーキテクチャ−9−、、。
−8= は、」二連のようなハードウェア回報通信を必要としな
い。その代りに分割キャッシュの存在がラフ1〜ウエア
に対して明示され、必要なときにキャッシュを同期させ
るための命令がラフ1〜ウエアに与えられた。同期が必
要なのは、例えばプロゲラ15取出しのような特別の機
能の場合だけである。
同様に、キャッシュの存在がラフ1−ウェア側からはオ
〕からない通常のシステムにおいては、工/○オペレー
ションもキャッシュを介して行う必要がある。その間C
PUは待機していなければならず、またI10オペレー
ションが終了した後のキャッシュの内容は実行中のプロ
セスの実効ページセラ1〜ではなくなるので、キャッシ
ュを強制的に一部モードへ戻されなければならない。高
価なシステムにおいてすら、ブイレフ1−りを重複して
設けると性能の低下を拍〈。
現在のシステムでは、■10オペレーションを開始する
責任は、サブシステム・バッファとユーザ領域との間で
固定ブロック転送を行うシステムアクセス方式(T M
、 S、VSAM、V T A M、べ一1〇− −ジングなど)に移ってきている。これは、アクセス方
式がバッファの位置および範囲だしづでなく、■/○転
送が処理される時も知っていることを意味する。fit
つで、このソフ1へウェアはキャッシュを適切に同期さ
せることができ、チャネル(PRISMシステムにおけ
る直接メモリアダプタ)は外部記憶装置との間で直接転
送を行うことができる。この結果、記憶装置帯域幅の半
分が■/○のために使用中であっても、CPUの′11
.能が低下することはない3、 これまでの説明で云えることは、実現させるのに費用が
かかるか、または低速のシステム機能があり、且つラフ
1〜ウエアがDM繁に生しる性能低下要因をJlり識で
きる(あるいは機能全体を走行時間からコンパイル時間
へ移すことができる)場合には、その機能はハードウェ
アからソフI−ウェアへ移され、それによってゴスト低
減及び性能改善が達成される、ということである。
上述の股引原理登キャッシュ自身の管理に適用した例に
ついて説明する。PRTSMシステ11においては、キ
ャッシュの名データブロック(ラインと呼ばJしている
)ば32バイ1−であり、こ4bに対して最大記憶(1
′1位は4バイ1−である。ラインの大きさが記憶Ul
j位よりも大きいストアイン式のキャッシュでいわゆる
ギヤッシコミスが生じると、要求されたワードに君むラ
イン全体を外部記憶装置からキャッシュへ取出さな(J
ればならない。これは、同じラインに含まれる別のワー
ドが続いて要求される可能M:が高いためである。とこ
ろが記憶動作の場合は、プログラムが新しく獲得したス
ペースへの]回の記憶で終ることが多い。このようなス
ペースの例として(J、プロシージャ呼出し時にブツシ
ュされたプロセススタック、ゲラ1−メイン要求によっ
て得Iら九だ領域、第11ノベル割込みハンドラによっ
て使用されるレジスタ記憶域などがある。いずれの場合
・し、ハードウェアは当該ラインの再度のアクセスが不
要であることを知り得ないが、ラフ1〜ウエアにとって
は、この状況は極めて明白である。
従って、PRISMシステムでは、要求さ才した一11
= ラインをキャッシュのブイレフ1〜り中で確立するが、
外部記憶装置からはそのラインの内容を取出さないデー
タキャッシュライン設定命令が定義されている。記憶の
ために新しいラインが必要なときは常にこの命令を実行
するようにすると、夕)部記憶装置からの不必要な取出
しばHA−Jられるが、今度は命令実行のための余分の
マシンサイクルが必要になる。従って、全体的にみれば
、この命令の実行には一長一短がある。
同様に、スクラッチ記憶域が不要になったときに、デー
タキャッシュライン無効化命令を実行して、ブイレフi
・り中の指定されたラインに対応するエンl−りの変更
ビットを夕〜ンオフすると、不必要な書戻しが避むづら
れる。詳細は1982年1−2月30日イ寸(7)PC
T出願U、S、82101830に記載されている。
[発明が解決しようとする問題点コ 前記の文献(1)に記載されているPRISMシステム
は、記憶保護をユーザとハードウェアの間に介在するイ
ンテリジェント・コンパイラに頼っ12− ている。通常のシステムでは、アセンブラその他の言語
を使ってプログラムが居かれているが、書゛かれたプロ
グラムによってはシステムの破壊につながる場合もある
。このようなプログラムあるいはユーザをシステ11か
ら切i!IItずための手段として、従来は記憶保護ギ
ー、多重価思アト1ノス空間、監視プログラム状プルな
どが使用されていたが、これらはコスト高につき、また
イク゛能が低下することもある。しかしもつと重要な問
題は、これらの手段では完全な保護を与えるには不十分
だということである。例えばシステムのユーザの数が記
憶保護キーの数(システム/370でば]6個)よりも
多くなると、2以上のユーザに同じギーが割当てられる
ことになる。これが望ましくなければ、ユーザの数を制
限する外ない。
しかし、ユーザが適切に定義された原始言語を使ってプ
ログラムを書くように制約されており、旧つそれらのプ
ログラムがインテリジエン1−・コンパイラにより処理
されて、コンパイラのアドレス方式を認識しているオペ
レーティングシステム」二で走行するのであれば、より
適切な保護が可能になる。従って1涌述のI)RISM
システムは、コンパイラの特定のクリティカルな要素が
正しいさと、才9よびシステムで実行されるすべてのプ
ロゲラ” (監視プログラムコアを除く)がこのコンパ
イラでコンパイルされていること、を仮定している。コ
ンパイラは次の4つを保証する。
(])テデータスカシ、配列、構造、区域)に対するす
べての参照は実際にそのデータを指示し、参照の範囲は
データの範囲に含まれる。
(2)割振りおよび解放が動的に行われるデータへの参
照は割振りと解放の間においてのみなされる。
(3)すべての分岐はラベルに対してなされ、すべての
呼出しはプロシージャにおける適切な入口点に対してな
される。
(4)1つのプロシージャに苅するすべての引き数はそ
れらの対応するパラメータと一致し、従って保護が複数
の呼出しにわたって持続する。
保護のための範囲検査はコンパイル時、連係編集時、ま
たはプロゲラ11取出し時に行われるが、完全な保護を
目ざずのであれば走行中にも範囲検査を行うのが望まし
い。走行中の範囲検査は、例えば比較命令および分岐命
令に順次に実行することによって行えるが、2つの命令
、従って少なくとも2つのマシンサイクルが必要である
従って本発明の目的は、目的コードに新しい命令を導入
することによって、走行中でも実質的に単一マシンサイ
クルで範囲検査が行えるP R115Mシステムを提供
することにある。
[問題点をん′決するための手段] 本発明によれば、基本命令セットに1〜ラツプ命令が追
加される。1−ラップ命令は2つの指定されたオペラン
ドをA L Uで比較させるもので、その結果に応じて
特定の条件ヨー1−が発生される。発生された条件コー
ドを直接検査する論理手段が設けられ、その出力により
トラップ割込みが起こさされる。
[実施例] A)T”−Lし5LK2ノラトケスニ」ヒL夕j〒■の
一1栗−前述のように、PRISMシステムの中心はC
15− PUであるが、PRISMシステムばCPUの他に、主
記憶装置、キャッシュ機構、母線ユニット及びシステム
I10を含んでいる(第]−図参照)。
キャッシュ機構はデータ部と命令部に分かれている。
CP Uアーキテクチャは従来のものに比べて非常に簡
単である。本PRISMシステムの特徴として、各々の
命令はハードウェアにより単一マシンサイクルで実行さ
れる。このような命令を基本命令という。基本命令は記
憶装置アクセス(普通は並行処理される)を除くと、マ
シンサイクルを1つしか必要としない。ここで1′基本
′′という語は、簡単さというよりもむしろ時間、即ち
貼−マシンサイクルに関係している。基本命令自体は単
一マシンサイクル内で実行可能であるが、それに伴う実
際の機能は複雑なことがある。
“Jli−マシンサイクル”という語も幾つかの定義が
可能である。例えば、却−マシンサイクルは゛′継続的
に繰返される基本システムクロックの期間であって、そ
の間に基本システムオペレージヨー17− 八−1 16− ンが遂行されるもの″である。もう少し別の云い方をす
れば、iB−マシンサイクルは″基本クロック期間に含
まわるすべてのクロックパルスをシステムが1回完全に
使用するのに必要な時間″である。従って、貼−マシン
4Jイクル内でCP Uのすべてのデータフロー機構を
1回使用することができる。本発明に従う1−ラップ命
令も単一マシンサイクルで実行できる基本命令であり、
記憶装置アクセスに要する時間を短縮することを意図し
ている。本発明に従えば、殆どの場合範囲検査を単一マ
シンサイクルで行える。違反が生じると、長いサブルー
チンを呼出さなければならないが、これは稀にしか生じ
ない。
])R18Mシステムのアーキテクチャおにびその命令
セットは下記の3つを達成するものである。
(1)命令当り]ザイクルの高速CP Uをコンパイル
に適した命令セットを用いて定義する。
(2)記憶階層、T10、割振りおよびソフトウェアの
活動がCP Uでの命令実行と並行して行われる。これ
により待ち時間が短くなる。
18− (3)すべてのプロゲラ11をうまくコンパイルできる
コードを生成する最適化コンパイラを開発する。
QL−マシンサイクルで実行可能であるということに加
えて、命令に関する重要なテーマにその規則性がある。
これはハードウェアによる実施を容易にしていた。例え
ば、すべてのオペランドは自分の大きさに合った境1?
を持っていなければならない(半ワードの場合は半ワー
ド境界、ワードの場合はワード境界)。命令はすべてフ
ルワードであり、従ってその境界もフルワード境界であ
る。
レジスタ名フィールドはシステム/370の4ビツトに
対し、1ピッ1〜増えて5ピッl−である。
これにより、レジスタを32個まで装備できる。
従って、T) RI S Mシステムを用いて、例えば
システム/370のように16個の汎用レジスタを備え
た他のアーキテクチャをエミュレー1〜することができ
る。システム/370の命令セットにおける基本命令サ
ブセラ1〜を用いて複雑な命令をエミュレー1−する場
合は、Iノジスタ名フィールドの長さく4ピツ!へ)が
ネックになる。
更に、命令の長さが4バイトあるので、各命令の目的レ
ジスタを明示指定することができ、従ってゝ入カオペラ
ンドを壊す必要はない。これは一般に“3アドレス”形
式と呼ばれている。
P RI S Mシステムは真の32ピッ1−アーキテ
クチャであり、16ビツトアーキテクチヤに拡張Iノシ
フタを加えたものではない。アドレスは32ビツト長で
あり、算術演算には32ビットの2の補数が使用され、
論理命令および桁送り命令は32ビットのワードを取扱
う。桁送りは31ビットまで可能である。
前述のように、命令はすべて4バイ1−長である。
PRISMシステムではD形式、U L形式、M形式お
よびX形式の命令が使用される。これらの命令形式に下
記の表1に示す。
19− に−−V D形式、UT、形式 M形式 X形式 20− 命令中の各フィールドの意味は次の通りである。
0PCD(0〜5):命令(7)OP:I−ト。
RT (6〜10):命令の実行結果を受取る目的レジ
スタの名前 R3(6〜10):命令実行のためのソース1ノジスタ
の名前 RA(11−〜15):第1オペランドレジスタ、また
は回転命令の場合は目 的レジスタとして使用され るレジスタの名前。
RB(1,6〜20):第2オペランドレジスタの名前
BI(6〜1.0):Iノシフタビツトまたはトラップ
マスクを指定する即値 フィールド。
5H(16〜20):シフト量を指定する即値フィール
ド。
D(16〜31):1.6ビツトの符号付き整数を2つ
の補数形式で指定す る即値フィールド。拡張の ため32ピツ1への長さを持 った別のフィールドと組合 わせて使用する事ができる。
MASK、(21〜3]) : ” O”によって囲ま
れた′1−″′のサブストリングま たはLL I IIによって囲まれ たLL Q IIのサブストリング から成る32ピツ1〜のマス クを指定する即値フィール ド。ピッ1〜21がII OIIで あれば前者のサブストリン グが指定され、LL ]、 uであ れば後者のサブストリング が指定される。ピッ1−22 〜26はサブストリングの 左端ピッ1へへのインデック ス、ピッ1−27〜31はサ ジストリングの右端ピッ1− へのインデックスである。
’J 000001 1 ] 1 ]”のマスクフィー
ルド全て “0”のマスクを発生し、 “000000111 ] 3” のマイクフィールドは全て “1”のマスクを発生ずる。
EO(21〜31):拡張01)コード。
B)t−5ム方粂食 単−マシンサイクルで実行できる1〜ラツプ命令をイン
テリジエン1−・コンパイラと共に使用すると、記憶装
置の妥当性検査をハードウェアで実施する必要がなくな
る。インテリジエン1〜・コンパイラは走行時を除いて
すべての範囲検査を行える。
走行時の範囲検査はトラップ命令およびそれに関連する
ハードウェアによって行われる。
トラップ命令は不等性を検査し、不等性が満足されてい
なければ、実行を続けることを許可する。
不等性が満足さitていると割込みが生じ、その後適当
な回復処理が行われる。
1−ラップ命令が実行されてもCP Uの状態は変− 
ン:、ニー 化せず、すべてのlノシフタの内容はそのままに保たれ
る1、従って1−ラップ命令を使用しても、CPUの状
態に関してコンパイラに負担がかかることはない。
トラップ命令が検査する不等性は、データの集合にス・
Iする参照が有効かどうかを検査するようにラフ1〜ウ
エアによって設計される。その際、記憶装置キーによる
検査よりも検査のレベルを細かくすることができる。
本発明に従うシステムにおいては、データの集合に対す
る参照の前にトラップ命令を実行すると、その集合が存
在しているかどうか(動的に割振られる集合の場合)、
参照がその集合に割振られた記憶域の範囲内のものかど
うか、あるいは配列参照における各添字が各添字位置に
ついて宣言された範囲内にあるかどうかを検査すること
ができる。
添字の検査は、参照が配列に割振られた記憶域の範囲内
のものかどうかを単に検査するよりも強力な保護を与え
る。
普通は、1つの添字の妥当性を検査するために一24Q
−リrへ 一、24− は2つの命令を必要とする。一方の命令は下限を検査し
、他方の命令は」1限を検査する。しかし下限が0で上
限が211より小さい事がわがっていれば、1つのトラ
ップ命令で十分である。というのは、添字および」二限
値の論理比較において、負の添字をすべて231以上と
して扱えるからである。
普通の状況では1−ラップ命令の実行によって割込みが
生じることはまずないから、最適化コンパイラはトラッ
プ命令を、プロゲラ11フローを生成するものとは見な
い。トラップ命令に関しては、通常の最適化手順を全て
適用する事ができる。トラップ命令を用いた範囲検査コ
ードを最適化する考えは、V、 Markstejn、
 、L Cocke、 P、 Markstejn。
” Optimizatjon of Range C
heckj、ng ” Proc、 ofSTGr”L
AN Symposjum on Compjler 
Con5tructjon。
1982年7月、]14〜1]9頁に示されている。
1−ラップ命令では、第2オペランドが第3オペランド
と比較され、その結果、下記の場合を除いて条件コード
ピッ1−LT、GT、EQ、LLおよ25− びL GがLL 011にセラ1−される。
(1)第2オペランドが第3オペランドより小さい場合
は、L T = ]。
(2)第2オペランドが第3オペランドより大きい場合
は、G T = 1゜ (3)第2オペランドが第3オペランドに等しい場合は
、E Q = 1. 。
(4)オペランドを32ピツ1への無符号整数として扱
う論理比較において第2オペランドが第3オペランドよ
り小さい場合は、L L = 1゜(5)同じく論理比
較において第2オペランドが第3オペランドより大きい
場合は、L G = 16次いでIL O”または11
 ]、 TTにセットされた条件コードピッ1−とトラ
ップ命令の第1オペランド(BI)のビット6〜1oと
の論理積が計算され、その結果が1701+でなければ
トラップ割込みが生じる。論理積の計算は下記の通りで
ある。
r3 Iピッ1−6・条件コードピッ1〜LTBIピツ
1〜7・条件コードピッl−G TBIビット8・条件
コードピッ1へEQ+3Iビット9・条件コードピッ1
へT、 LB丁ビ・ント10・条件コードピッ1へ丁・
G1〜ラップ命令には、次に示す2つの形式がある。
TRAP TMMEIJT’rΔE TT BI、RA、I) 0 6 11 1.6 31 RA P T BI、RA、 RB 0 6 11 1.6 21. 31 いずれの形式においても、第1オペランドは8丁であり
、第2オペランドはレジスタRAの内容であるが、第3
オペランドは前者の形式ではDフィールドの内容であり
、後者の形式ではレジスタ=26− RBの内容である。
1マシンサイクルしか使用しないように、最適化は割込
み不要の場合についてなされる。従って、万一1〜ラッ
プ割込が生じた場合には、割込み条件が多数のマシンサ
イクルを使用することになる。
この例外的な状態においては、トラップ命令に続く最初
のマシンサイクルで次の命令の実行が禁止され、割込み
処理に入る。マシンサイクルの初期の段階では、非破壊
動作であるOPコードの解読および汎用レジスタの読取
りしか行われないから、その段階で命令実行の打切りあ
るいは禁止を簡単に行える。
C)へニーIiγ壬l− 代表的なPRISMシステムの構成を第1図に示す。シ
ステムの内部母線10には、CPU12、複数の母線ユ
ニツ1へ14.16(浮動小数点ユニツ1−など)、命
令キャッシュ機構18、データキャッシュ機構20、お
よびシステム母線ユニット22が接続されている。キャ
ッシュ機構18.20はいずれもキャッシュ、ブイレフ
1へりおよび変27− 換索引緩衝機構(TT、B)を含んでいる。システム母
線ユニット22は主どしてI10オペレーションを制御
するもので、主記憶装置?¥24にも接続されている。
主記憶装置24と命令キャッシュ機構18およびデータ
キャッシュ機構20との間では命令およびデータが別々
にやりとりされる。CP U 、1−2は命令キャッシ
ュ機構]、8から命令母線26を介して4バイトの命令
を受取る。
CP U ]、 2の種々の構成要素のうち本発明に関
係する部分を第2図に示す。図示していない構成要素に
は命令解読器などがあるが、それらは従来のPRISM
システムのCPUで使用されている公知のものである。
更に、第2図において破線で囲んだ部分も従来からある
ものである。
命令アドレスレジスタ(IAR)34によって命令キャ
ッシュ機構18から取出された命令(1〜ラツプ命令と
する)は命令レジスタ32ヘロードされる。第2図に例
示しである1へラップ命令はTRAP IMMEDIA
TEであるが、TRAPの場合も同様である。OPコー
ドtt 4677が解読されると、まずレジスタRAの
内容が汎用レジスタファイル30から取出されてA L
U 36の第1人力へ供給され、更にDフィールドの内
容(TRAPの場合は汎用レジスタファイル30にある
レジスタRBの内容)がALU36の第2人力へ供給さ
れる。前述の様に、レジスタRAの内容は第2オペラン
ドであり、Dフィールド(またはレジスタRB)の内容
は第3オペランドである。ALU 36はこれらのオペ
ランドを比較して、その結果を条件コード発生論理38
へ知らせる。条件コード発生論理34はA LU 36
の比較結果に応じて、前述の5個の条件コードピットL
T、GT、EQ、LLおよびT−Gを各々110”また
は“1”にセラ1−シ、線60を介してA N Dゲー
ト62へ供給する。これらの条件コードピッ1〜は分岐
に備えて条件コードレジスタ40にも供給され、そこか
らもう一方のANDゲート64へ供給される。
命令解読器(図示せず)で有効なトラップ命令が解読さ
れていると、そこからの1−ラップ有効信号によりAN
IT+ゲート62が条件付けられて、条件コード発生論
理34からの5個の条件コードピッ1−をORゲート6
Gを介して第3のA、 N Dゲート68へ供給する。
(分岐命令の場合はA、 N Dゲ−l” 64が条件
付けられる。)これから明らかなように、]・ラップ命
令の場合は、CPUに設けられている通常の条件コード
レジスタ40が迂回されるので、その分だけ動作が速く
なる。ANDゲl” 68の他方の入力には、命令レジ
スタ32からBTフィールドの内容が供給される。
ANDゲート68は各々の条件コードピットおよび対応
するBIビットを比較し、両方共rr i I+の組が
あると1〜ラップ割込み信号を発生する。
(分岐命令の場合は、ANDゲーl−68から発生され
るのは分岐信号であるが、トラップ割込みおよび分岐は
1へラップ有効信号および分岐有効信号によって区別す
ることができる。)トラップ割込ツ へ供給される。よく知られているように、優先論理50
は要求された1以」二の割込みのうちから最高優先順位
の割込みを1つ選択し、それに基いて30− CP TJで割込み処理を開始させる。なお、割込み処
理自体は本発明とは無関係であるし、また周知でもある
から、詳細については省略する。
[発明の効果コ 従来の方式と本発明とを比較したタイミングチャートを
第3.11図および第3.2図に示す。
第3.1図は、命令ス1ヘリームにおいて通常の比較命
令、分岐命令および次命令がこの順番に並んでいること
を示している。従来例として第3゜1図の命令ストリー
ムを選んだ理由は、本発明におけるトラップ命令が比較
動作およびそれに続く割込み条件の検査(機能的に分岐
命令と等価)を必要とするからである6 第3.1図において、比較命令の実行中に、指定された
2つのオペランドをALUで比較するためのタイミング
パルスが発生される。次の分岐命令サイクルでは、前の
比較命令サイクルでの比較結果に従って適切な条件コー
ド(CC)が発生され、それを用いて分岐命令のBIフ
ィールドが検査され、その結果により分岐の要不要が決
定され−32− ^r+r 31− る。次のサイクルでは、分岐先の最初の命令または命令
シーケンスにおける分岐命令の次の命令が実行される。
このように、従来のやり方では、分岐の要不要を決定す
るまでに少なくとも2つのマシンサイクルを必要とする
これに対して本発明によれば、トラップ命令に続く命令
の実行が実質的に開始される臨界時点(第3.2図に破
線で示しである)よりも前にトラップ割込みの要不要を
決定することができる。
トラップ命令の実行は実質的には、次命令サイクル中の
臨界時点付近まで続く。臨界時点は次命令サイクルの開
始時点から5/8ないし2/3のところにあり、その間
に次命令が解読されて、例えば2つのオペランドがA 
L Uへ供給され、それにより演算結果が使用可能な状
態になっている。しかし臨界時点を過ぎるまでは、命令
アドレスレジスタ、命令レジスタ、および汎用レジスタ
ファイルの内容は変更されず、演算結果をA L Uか
ら出力するためのゲートも閉じられている。従って、オ
ペレーションの打切りが臨界時点の前であれば、33− 第3.2図の次命令が現命令として命令レジスタに残っ
ているから、割込まれた現命令の保管および割込み処理
終了後の再実行を容易に行える。臨界時点を過ぎると、
命令アドレスレジスタの更新、汎用レジスタファイルま
たはデータキャッシュへの書込み、といった破壊的な動
作が開始される。
第3.2図において、条件コード(CC)の発生、それ
に基<BIフィールドの検査、およびトラップ割込みの
要不要の決定は次命令サイクルの臨界時点より前に終る
。云い換えれば、トラップ命令の後半および次命令の前
半が並行して実行される。これは、条件コードレジスタ
の迂回によって、条件コードおよびBIフィールドの比
較を速く行えるためである。
トラップ割込みが生じると、その時点で次命令の実行が
貯切られるが、そのような事態になるのは稀である。1
へラップ割込みが生じなければ、次命令の実行が継続さ
れるから、実質的には、トラップ命令の実行がトラップ
命令サイクルで完了したといえる。
【図面の簡単な説明】
第1図は本発明が対象にしている基本命令セット計算機
システムの代表的な構成を示すブロック図・ 第2図は1−ラップ命令を実行するためのハードウェア
を示すブロック図。 第3.1図および第3.2図は比較および分岐による従
来の範囲検査のタイミングと1−ラップによる本発明の
範囲検査のタイミングを比較した図。 出願人 インターナショナル・ビジネス・マシーンズ・
コーポレーション 代理人 弁理士 頓 宮 孝 − (外1名) タイン アメリカ合衆国ニューヨーク州 ヨークタウン・ハイツ・リッジ ・ストリート2127番地 72発 明 者 ジョーシ・ラブイン アメリカ合衆国ニューヨーク州 ビアモント・フランクリン26番

Claims (1)

  1. 【特許請求の範囲】 単一マシンサイクルで実行可能な基本命令セラ1〜を使
    用し、A L L、Jおよび該A LUの演算結果に応
    じて特定の条件コードを発生する条件コード発生手段を
    備えた基本命令セラI・計算機システムにおいて、 指定された2つのオペランドを前記A L Uで比較さ
    せるトラップ命令を前記基本命令セラ1〜に追加し、該
    1〜ラツプ命令の実行により前記条件コード発生手段の
    出力を直接検査する論理手段を設け、該論理手段の出力
    によりトラップ割込みを起こさせるようにしたことを特
    徴とするトラップ割込み方式。 −1−/’Ir1
JP59078789A 1983-06-30 1984-04-20 基本命令セツト計算機システムにおけるトラツプ割込み方式 Granted JPS6014341A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US509733 1983-06-30
US06/509,733 US4589065A (en) 1983-06-30 1983-06-30 Mechanism for implementing one machine cycle executable trap instructions in a primitive instruction set computing system

Publications (2)

Publication Number Publication Date
JPS6014341A true JPS6014341A (ja) 1985-01-24
JPH0228173B2 JPH0228173B2 (ja) 1990-06-21

Family

ID=24027878

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59078789A Granted JPS6014341A (ja) 1983-06-30 1984-04-20 基本命令セツト計算機システムにおけるトラツプ割込み方式

Country Status (4)

Country Link
US (1) US4589065A (ja)
EP (1) EP0130378B1 (ja)
JP (1) JPS6014341A (ja)
DE (1) DE3481560D1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6038840A (en) * 1997-04-16 2000-03-21 Kubota Corporation Rear discharge mower unit and lawn tractor

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4719565A (en) * 1984-11-01 1988-01-12 Advanced Micro Devices, Inc. Interrupt and trap handling in microprogram sequencer
US4747046A (en) * 1985-06-28 1988-05-24 Hewlett-Packard Company Mechanism for comparing two registers and storing the result in a general purpose register without requiring a branch
JPS6298434A (ja) * 1985-10-25 1987-05-07 Hitachi Ltd デ−タ処理システム
US4766566A (en) * 1986-08-18 1988-08-23 International Business Machines Corp. Performance enhancement scheme for a RISC type VLSI processor using dual execution units for parallel instruction processing
US5133072A (en) * 1986-11-13 1992-07-21 Hewlett-Packard Company Method for improved code generation in reduced instruction set computers
FR2607607B1 (fr) * 1986-12-01 1991-05-24 Heudin Jean Claude Machine informatique destinee a l'execution de traitements symboliques pour les applications de l'intelligence artificielle
US4992934A (en) * 1986-12-15 1991-02-12 United Technologies Corporation Reduced instruction set computing apparatus and methods
US5341482A (en) * 1987-03-20 1994-08-23 Digital Equipment Corporation Method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions
JPH01241636A (ja) * 1988-03-17 1989-09-26 Internatl Business Mach Corp <Ibm> データ処理システム
US5155817A (en) * 1988-04-01 1992-10-13 Kabushiki Kaisha Toshiba Microprocessor
US5083263A (en) * 1988-07-28 1992-01-21 Sun Microsystems, Inc. BISC with interconnected register ring and selectively operating portion of the ring as a conventional computer
EP0437615B1 (en) * 1989-06-14 1998-10-21 Hitachi, Ltd. Hierarchical presearch-type document retrieval method, apparatus therefor, and magnetic disc device for this apparatus
US5220625A (en) * 1989-06-14 1993-06-15 Hitachi, Ltd. Information search terminal and system
AU7305491A (en) * 1990-01-29 1991-08-21 Teraplex, Inc. Architecture for minimal instruction set computing system
US5140644A (en) * 1990-07-23 1992-08-18 Hitachi, Ltd. Character string retrieving system and method
DE4211245B4 (de) * 1991-04-05 2009-05-14 Kabushiki Kaisha Toshiba, Kawasaki Prozessorsystem in Parallelverarbeitungsbauart und Verfahren zu dessen Steuerung
EP0544083A3 (en) * 1991-11-26 1994-09-14 Ibm Interleaved risc-type parallel processor and processing methods
WO1995001601A1 (en) * 1993-07-02 1995-01-12 Oakleigh Systems, Inc. High-speed cpu interconnect bus architecture
US5440703A (en) * 1993-09-20 1995-08-08 International Business Machines Corporation System and method for saving state information in a multi-execution unit processor when interruptable instructions are identified
US5694587A (en) * 1995-03-31 1997-12-02 International Business Machines Corporation Specialized millicode instructions for test PSW validity, load with access test, and character translation assist
US5611062A (en) * 1995-03-31 1997-03-11 International Business Machines Corporation Specialized millicode instruction for string operations
US5621909A (en) * 1996-03-12 1997-04-15 International Business Machines Corporation Specialized millicode instruction for range checking
US5754810A (en) * 1996-03-12 1998-05-19 International Business Machines Corporation Specialized millicode instruction for certain decimal operations
US6035390A (en) * 1998-01-12 2000-03-07 International Business Machines Corporation Method and apparatus for generating and logically combining less than (LT), greater than (GT), and equal to (EQ) condition code bits concurrently with the execution of an arithmetic or logical operation
US6567975B1 (en) * 1999-11-08 2003-05-20 Sun Microsystems, Inc. Method and apparatus for inserting data prefetch operations using data flow analysis
US6598153B1 (en) * 1999-12-10 2003-07-22 International Business Machines Corporation Processor and method that accelerate evaluation of pairs of condition-setting and branch instructions
US7127593B2 (en) * 2001-06-11 2006-10-24 Broadcom Corporation Conditional execution with multiple destination stores
US6986025B2 (en) * 2001-06-11 2006-01-10 Broadcom Corporation Conditional execution per lane
US7861071B2 (en) * 2001-06-11 2010-12-28 Broadcom Corporation Conditional branch instruction capable of testing a plurality of indicators in a predicate register
US7984273B2 (en) 2007-12-31 2011-07-19 Intel Corporation System and method for using a mask register to track progress of gathering elements from memory
US10387151B2 (en) 2007-12-31 2019-08-20 Intel Corporation Processor and method for tracking progress of gathering/scattering data element pairs in different cache memory banks
US8447962B2 (en) * 2009-12-22 2013-05-21 Intel Corporation Gathering and scattering multiple data elements
US10175990B2 (en) 2009-12-22 2019-01-08 Intel Corporation Gathering and scattering multiple data elements
US9626333B2 (en) 2012-06-02 2017-04-18 Intel Corporation Scatter using index array and finite state machine
US8972697B2 (en) 2012-06-02 2015-03-03 Intel Corporation Gather using index array and finite state machine
US9405534B2 (en) 2013-01-21 2016-08-02 Tom Yap Compound complex instruction set computer (CCISC) processor architecture
US9110657B2 (en) 2013-01-21 2015-08-18 Tom Yap Flowchart compiler for a compound complex instruction set computer (CCISC) processor architecture

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56149648A (en) * 1980-02-11 1981-11-19 Western Electric Co Digital processor for operating pipe line
JPS5750050A (en) * 1980-09-09 1982-03-24 Toshiba Corp Microprogram control type electronic computer
JPS5860355A (ja) * 1981-10-07 1983-04-09 Nec Corp 情報処理装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5140772B2 (ja) * 1971-07-26 1976-11-05
US3827029A (en) * 1972-09-25 1974-07-30 Westinghouse Electric Corp Memory and program protection system for a digital computer system
US4074353A (en) * 1976-05-24 1978-02-14 Honeywell Information Systems Inc. Trap mechanism for a data processing system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56149648A (en) * 1980-02-11 1981-11-19 Western Electric Co Digital processor for operating pipe line
JPS5750050A (en) * 1980-09-09 1982-03-24 Toshiba Corp Microprogram control type electronic computer
JPS5860355A (ja) * 1981-10-07 1983-04-09 Nec Corp 情報処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6038840A (en) * 1997-04-16 2000-03-21 Kubota Corporation Rear discharge mower unit and lawn tractor
US6431305B1 (en) 1997-04-16 2002-08-13 Kubota Corporation Rear discharge mower unit and lawn tractor

Also Published As

Publication number Publication date
EP0130378A2 (en) 1985-01-09
US4589065A (en) 1986-05-13
EP0130378A3 (en) 1987-10-28
DE3481560D1 (de) 1990-04-12
EP0130378B1 (en) 1990-03-07
JPH0228173B2 (ja) 1990-06-21

Similar Documents

Publication Publication Date Title
JPS6014341A (ja) 基本命令セツト計算機システムにおけるトラツプ割込み方式
EP0130377B1 (en) Condition register architecture for a primitive instruction set machine
US4569016A (en) Mechanism for implementing one machine cycle executable mask and rotate instructions in a primitive instruction set computing system
US4363091A (en) Extended address, single and multiple bit microprocessor
KR0160602B1 (ko) 데이터 처리장치
US5123095A (en) Integrated scalar and vector processors with vector addressing by the scalar processor
US4740893A (en) Method for reducing the time for switching between programs
US6523090B2 (en) Shared instruction cache for multiple processors
US6061783A (en) Method and apparatus for manipulation of bit fields directly in a memory source
US5617553A (en) Computer system which switches bus protocols and controls the writing of a dirty page bit of an address translation buffer
US4562538A (en) Microprocessor having decision pointer to process restore position
US5097407A (en) Artificial intelligence processor
US5832258A (en) Digital signal processor and associated method for conditional data operation with no condition code update
JPH0135367B2 (ja)
EP0130381A2 (en) Mechanism for implementing one machine cycle executable branch-on-any-bit-in-any-register instructions in a primitive instruction set computing system
Mayer The architecture of the Burroughs B5000: 20 years later and still ahead of the times?
JPH0380336A (ja) 二重オペレーティングシステム計算機の動作強化装置のmバイト命令ワードcpuの動作強化装置及びレジスタ指向型アーキテクチュアcpuの動作強化装置
US5363490A (en) Apparatus for and method of conditionally aborting an instruction within a pipelined architecture
US6049864A (en) Method for scheduling a flag generating instruction and a subsequent instruction by executing the flag generating instruction in a microprocessor
EP0101718B1 (en) Computer with automatic mapping of memory contents into machine registers
US6289439B1 (en) Method, device and microprocessor for performing an XOR clear without executing an XOR instruction
US6807628B2 (en) System and method for supporting precise exceptions in a data processor having a clustered architecture
JP3102399B2 (ja) データ処理装置及び方法
Tomita et al. Performance evaluation and improvement of a dynamically microprogrammable computer with low-level parallelism
JPH01188943A (ja) 記号処理向きデータ処理方式