JPS6014336A - 命令処理装置 - Google Patents
命令処理装置Info
- Publication number
- JPS6014336A JPS6014336A JP59115647A JP11564784A JPS6014336A JP S6014336 A JPS6014336 A JP S6014336A JP 59115647 A JP59115647 A JP 59115647A JP 11564784 A JP11564784 A JP 11564784A JP S6014336 A JPS6014336 A JP S6014336A
- Authority
- JP
- Japan
- Prior art keywords
- register
- mask
- instruction
- bit
- bits
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Executing Machine-Instructions (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[産業上の利用分野]
本発明は、通常の計算機アーキテクチャにおける命令セ
ットよりずっと小規模の命令セット(以下、基本命令セ
ットという)しか持たない計算機システムに係る。
ットよりずっと小規模の命令セット(以下、基本命令セ
ットという)しか持たない計算機システムに係る。
[従来技術]
最近のVLIS技術の発達により、マイクロプロセツサ
の設計に関しては、相反する2つのアプローチが可能に
なってきた。第1のアプローチは、V LI Sを十二
分に利用して、これまではソフトウェアで実現されてい
た機能をハードウェアで実現させるものである。当然の
結果として、マイクロプロセッサの物理的な構成は複雑
になる。これに対して第2のアプローチは、これまでよ
り多くの機能をラフ1−ウェアで実現させることによっ
て、簡単で且つ高速のマイクロプロセッサを構成しよう
とするものである。後背のアプローチの代表的な例が下
記の文献に記載されている。
の設計に関しては、相反する2つのアプローチが可能に
なってきた。第1のアプローチは、V LI Sを十二
分に利用して、これまではソフトウェアで実現されてい
た機能をハードウェアで実現させるものである。当然の
結果として、マイクロプロセッサの物理的な構成は複雑
になる。これに対して第2のアプローチは、これまでよ
り多くの機能をラフ1−ウェアで実現させることによっ
て、簡単で且つ高速のマイクロプロセッサを構成しよう
とするものである。後背のアプローチの代表的な例が下
記の文献に記載されている。
(1) George Radin“The 801
t4inicomputer”A、CM 5IGPLA
N N0TICES、第17巻、第4号、1982月4
月、39〜47頁(2) Patterson、 5e
qujn“RI SCI :a Reduced In
5truct:ion Set VLSI Compu
ter”IEEEComputer、1982年9月、
8〜20頁第1のアプローチは、ソフトウェアの開発費
用及びその実行速度を考えた場合、年ごとに安くなって
いるV L S I回路を用いてシステムを構成した方
が全体として価格性能比を上げることができる、という
考えに基いている。従って、第1−のアプローチをとる
システム設計者は、V L S I回路の潜在能力に合
わせてアーキテクチャをより複雑にしている。これは、
最近の計算機とその前の計算機、例えばVAX、11と
PDP−,11、IBMシステム/38とll3Mシス
テム/3、インテルA P 、X −4,32と808
6、などを比較してみれば明らかである。ただしアーキ
テクチャが複雑になると、それだけシステム設計に要す
る時間が長くなり、設計ミスの可能性も増える。この型
のシステムは大規模命令セット計算機システム、略して
Cl5Cシステムと呼ばれている。
t4inicomputer”A、CM 5IGPLA
N N0TICES、第17巻、第4号、1982月4
月、39〜47頁(2) Patterson、 5e
qujn“RI SCI :a Reduced In
5truct:ion Set VLSI Compu
ter”IEEEComputer、1982年9月、
8〜20頁第1のアプローチは、ソフトウェアの開発費
用及びその実行速度を考えた場合、年ごとに安くなって
いるV L S I回路を用いてシステムを構成した方
が全体として価格性能比を上げることができる、という
考えに基いている。従って、第1−のアプローチをとる
システム設計者は、V L S I回路の潜在能力に合
わせてアーキテクチャをより複雑にしている。これは、
最近の計算機とその前の計算機、例えばVAX、11と
PDP−,11、IBMシステム/38とll3Mシス
テム/3、インテルA P 、X −4,32と808
6、などを比較してみれば明らかである。ただしアーキ
テクチャが複雑になると、それだけシステム設計に要す
る時間が長くなり、設計ミスの可能性も増える。この型
のシステムは大規模命令セット計算機システム、略して
Cl5Cシステムと呼ばれている。
これに対して、前記の文献に記載されているような第2
のアプローチに従って構成されたシステムは小規模命令
セット計算機(RT S C)システムあるいは基本命
令セットH]算機システム(以下、PRISMシステム
という)と呼ばれる。PRISMシステムの中心はCP
Uである。システム設計の大部分は、ユーザに対してC
P Uの基本能力3− を使用可能にする、ということに向けられている。
のアプローチに従って構成されたシステムは小規模命令
セット計算機(RT S C)システムあるいは基本命
令セットH]算機システム(以下、PRISMシステム
という)と呼ばれる。PRISMシステムの中心はCP
Uである。システム設計の大部分は、ユーザに対してC
P Uの基本能力3− を使用可能にする、ということに向けられている。
全体的な構成は従来のCPUとは幾分異なっている。
本発明もP RT S Mシステムを対象にしているの
で、以下前記の文献に記載されているCPUの改削原理
及び従来のCP Uとの違いについて、本発明に関係す
る範囲内で少し詳しく説明する。
で、以下前記の文献に記載されているCPUの改削原理
及び従来のCP Uとの違いについて、本発明に関係す
る範囲内で少し詳しく説明する。
小型ないし中型の汎用計算機システムにおける通常のC
PUは、アーキテクチャを1′解釈”する布線式マイク
ロプロセッサで構成されている。このようなCP Uで
は、1つのCPU命令を実行するために、制御記憶装置
にある幾つかのマイクロ命令が実行される。1つの平均
的なCPU命令を実行するのに必要なマイクロ命令(マ
シンサイクル)の数は、使用されているマイクロプロセ
ッサの能力(従って価格)、CPUアーキテクチャの複
雑さ、及び実行中のアプリケーション(即ち命令ミック
ス)によって左右される。例えば、IBMシステム/3
70モデル1−68は1つのシステム/370命令当り
3〜6サイクルを要し、モデ4− ル148は1.0〜]5サイクルを要し、システム/3
60モデル30は30サイクル以上になる。
PUは、アーキテクチャを1′解釈”する布線式マイク
ロプロセッサで構成されている。このようなCP Uで
は、1つのCPU命令を実行するために、制御記憶装置
にある幾つかのマイクロ命令が実行される。1つの平均
的なCPU命令を実行するのに必要なマイクロ命令(マ
シンサイクル)の数は、使用されているマイクロプロセ
ッサの能力(従って価格)、CPUアーキテクチャの複
雑さ、及び実行中のアプリケーション(即ち命令ミック
ス)によって左右される。例えば、IBMシステム/3
70モデル1−68は1つのシステム/370命令当り
3〜6サイクルを要し、モデ4− ル148は1.0〜]5サイクルを要し、システム/3
60モデル30は30サイクル以上になる。
CPUの改削によっては、ルックアヘッド、並列処理及
び分岐の記録といった技術を用いることにより、1命令
当りのマシンサイクル数を1−に近づけることができる
。
び分岐の記録といった技術を用いることにより、1命令
当りのマシンサイクル数を1−に近づけることができる
。
アプリケーションによる相違については、例えば一般に
科学技術計算は浮動小数点命令を使用するが、事務計算
は10進演算を使用する。ところが、アプリケーション
・コードの代りに走行システム全体を追跡してみると、
最も頻繁に使用される命令に顕著な類似性があることが
わかる。これらの命令は、ロード、記憶、分岐、比較、
整数演算、論理桁送りといった比較的簡単な命令であり
、基礎となるマイクロプロセッサの命令セットにもこれ
らと同じ機能を持った命令がある。従って、マイクロプ
ロセッサのアーキテクチャがCP TJのアーキテクチ
ャと正確には一致しない場合であっても、そのような機
能についてまでCPUアーキテクチャをマイクロプロセ
ッサで“解釈”することは無駄であると考えられた。
科学技術計算は浮動小数点命令を使用するが、事務計算
は10進演算を使用する。ところが、アプリケーション
・コードの代りに走行システム全体を追跡してみると、
最も頻繁に使用される命令に顕著な類似性があることが
わかる。これらの命令は、ロード、記憶、分岐、比較、
整数演算、論理桁送りといった比較的簡単な命令であり
、基礎となるマイクロプロセッサの命令セットにもこれ
らと同じ機能を持った命令がある。従って、マイクロプ
ロセッサのアーキテクチャがCP TJのアーキテクチ
ャと正確には一致しない場合であっても、そのような機
能についてまでCPUアーキテクチャをマイクロプロセ
ッサで“解釈”することは無駄であると考えられた。
従って、PRISMシステムのために設計された基本命
令セットはハードウェアで直接実行することができる。
令セットはハードウェアで直接実行することができる。
即ち、各々の基本命令は1マシンサイクルしか必要とし
ない。複雑な機能は、通常のCPUの場合と同じく、マ
イクロコードで実現される。ただし、PRISMシステ
ムにおけるマイクロコートは正にコードであって、関連
する機能は基本命令セット」二で走行するソフトウェア
・サブルーチンによって実現される。
ない。複雑な機能は、通常のCPUの場合と同じく、マ
イクロコードで実現される。ただし、PRISMシステ
ムにおけるマイクロコートは正にコードであって、関連
する機能は基本命令セット」二で走行するソフトウェア
・サブルーチンによって実現される。
高速の制御記憶装置に記憶されていることから生じるマ
イクロコードの利点は、キャッシュをデータ用と命令用
とに分【づだ記憶階層では、事実」二消滅する。命令キ
ャッシュは″ページ可能″制御記憶装置として働く。通
常のCPUでは、全てのアプリケーションにわたってど
の機能が最も頻繁に使用されるかは、設計者が前もって
決める。従って、例えば倍精度の浮動小数点除算命令は
常に高速の制御記憶装置にあるが、第ルベル割込みハン
ドラは主記憶装置にある。命令キャッシュを用いた場合
は、最近の使用状況によって、どの機能がより速く使用
できるかが決まる。
イクロコードの利点は、キャッシュをデータ用と命令用
とに分【づだ記憶階層では、事実」二消滅する。命令キ
ャッシュは″ページ可能″制御記憶装置として働く。通
常のCPUでは、全てのアプリケーションにわたってど
の機能が最も頻繁に使用されるかは、設計者が前もって
決める。従って、例えば倍精度の浮動小数点除算命令は
常に高速の制御記憶装置にあるが、第ルベル割込みハン
ドラは主記憶装置にある。命令キャッシュを用いた場合
は、最近の使用状況によって、どの機能がより速く使用
できるかが決まる。
このアプローチによれば、特定のジョブを実行するのに
要するサイクル数は、最悪の場合であっても、複雑な命
令がマイクロプログラムされている通常の小型ないし中
型CPUにおけるサイクル数以下である。更に、基本命
令の定義づけをうまく行なえば、必要なサイクル数がよ
り少なくなることがわかった。
要するサイクル数は、最悪の場合であっても、複雑な命
令がマイクロプログラムされている通常の小型ないし中
型CPUにおけるサイクル数以下である。更に、基本命
令の定義づけをうまく行なえば、必要なサイクル数がよ
り少なくなることがわかった。
大部分の命令ミックスによれば、データの書込みまたは
読取りに関する命令が全体の20〜40%を占め、分岐
命令が15〜30%を占めている。
読取りに関する命令が全体の20〜40%を占め、分岐
命令が15〜30%を占めている。
更に、多くのアプリケーションにおいては、記憶装置帯
域幅のかなりの部分がIloのためにさかれている。記
憶装置アクセスのためにCPUが多くのサイクルにわた
って待ち状態へ強制されると、その間の処理時間が無駄
になる。
域幅のかなりの部分がIloのためにさかれている。記
憶装置アクセスのためにCPUが多くのサイクルにわた
って待ち状態へ強制されると、その間の処理時間が無駄
になる。
従って、PRISMシステムの第2の目的は、記憶装置
アクセスに起因するCPUの遊休時間をできるだけ短く
するように記憶階層及びシステム・7− アーキテクチャを構築することであった。まず、CP
Uのマシンサイクルに匹敵するアクセス時間を待ったキ
ャッシュが必要なことは明らかである。
アクセスに起因するCPUの遊休時間をできるだけ短く
するように記憶階層及びシステム・7− アーキテクチャを構築することであった。まず、CP
Uのマシンサイクルに匹敵するアクセス時間を待ったキ
ャッシュが必要なことは明らかである。
次に、記憶命令が出されても直ちに主記憶装置への記憶
を行なわなくてもよいということから、ストア・イン方
式のキャッシュが採用された。仮に1つのワードを記憶
するのに10サイクルを要し、且つ命令全体の10%が
記憶命令であるとすると、記憶命令及びそれに続く命令
を並行して実行できない限り、CP Uの遊休時間は全
体の約半分に達する。
を行なわなくてもよいということから、ストア・イン方
式のキャッシュが採用された。仮に1つのワードを記憶
するのに10サイクルを要し、且つ命令全体の10%が
記憶命令であるとすると、記憶命令及びそれに続く命令
を並行して実行できない限り、CP Uの遊休時間は全
体の約半分に達する。
しかし、サイクルごとに新しい命令を必要とし、且つ2
サイクルおきにデータをアクセスするCPU構成におい
ては、サイクルごとにワードを供給する通常のキャッシ
ュを用いると、性能が低下する。従って、キャッシュは
データを含む部分と命令を含む部分とに分けられた。こ
のようにしてキャッシュへの帯域幅は実質的に倍にされ
、外部記憶装置からの命令及びデータの非同期的取出し
が可能になった。
サイクルおきにデータをアクセスするCPU構成におい
ては、サイクルごとにワードを供給する通常のキャッシ
ュを用いると、性能が低下する。従って、キャッシュは
データを含む部分と命令を含む部分とに分けられた。こ
のようにしてキャッシュへの帯域幅は実質的に倍にされ
、外部記憶装置からの命令及びデータの非同期的取出し
が可能になった。
一〇−噌^^
8−
通常のアーキテクチャでは、データの記憶は命令を変更
することがあるため、2つのキャッシュが適切に同期し
ていることをハードウェアが保証しなければばらない。
することがあるため、2つのキャッシュが適切に同期し
ていることをハードウェアが保証しなければばらない。
これはコスト高になり、又性能の低下にもつながる。命
令先取り機構でさえ、記憶有効アドレスと命令アドレス
レジスタの内容を比較しなければならないので、複雑に
なる。
令先取り機構でさえ、記憶有効アドレスと命令アドレス
レジスタの内容を比較しなければならないので、複雑に
なる。
ところが指標レジスタが計算機に導入されるようになっ
て、命令を変更する頻度が大幅に減少され、今日に至る
まで事実」−命令が変更されることはなくなった。従っ
てPRISMアーキテクチャは、上述のようなハードウ
ェア回報通信を必要としない。その代りに分割キャッシ
ュの存在がソフトウェアに対して明示され、必要なとき
にキャッシュを同期させるための命令がソフトウェアに
与えられた。同期が必要なのは、例えばプログラム取出
しのような特別の機能の場合だけである。
て、命令を変更する頻度が大幅に減少され、今日に至る
まで事実」−命令が変更されることはなくなった。従っ
てPRISMアーキテクチャは、上述のようなハードウ
ェア回報通信を必要としない。その代りに分割キャッシ
ュの存在がソフトウェアに対して明示され、必要なとき
にキャッシュを同期させるための命令がソフトウェアに
与えられた。同期が必要なのは、例えばプログラム取出
しのような特別の機能の場合だけである。
同様に、キャッシュの存在がソフトウェア側からはわか
らない通常のシステムにおいては、■10オペレーショ
ンもキャッシュを介して行なう必10− 要がある。その間CPUは待機していなければならず、
またI10オペレーションが終了した後のキャッシュの
内容は、実行中のプロセスの実効ページセットではなく
なるので、キャッシュを強制的に一部モードへ戻さなけ
ればならない。高価なシステムにおいてすら、ディレク
トリを重複して設けると性能の低下を招く。
らない通常のシステムにおいては、■10オペレーショ
ンもキャッシュを介して行なう必10− 要がある。その間CPUは待機していなければならず、
またI10オペレーションが終了した後のキャッシュの
内容は、実行中のプロセスの実効ページセットではなく
なるので、キャッシュを強制的に一部モードへ戻さなけ
ればならない。高価なシステムにおいてすら、ディレク
トリを重複して設けると性能の低下を招く。
現在のシステムでは、■/○オペレーションを開始する
責任は、サブシステム・バッファとユーザ領域との間で
固定ブロック転送を行なうシステム・アクセス方式(I
MS、VSAM、VTAM、ページングなど)に移って
きている。これは、アクセス方式がバッファの位置及び
範囲だけでなく、I10転送が処理される時も知ってい
ることを意味する。従って、このソフトウェアはキャッ
シュを適切に同期させることができ、チャネル(PRI
SMシステムにおける直接メモリアダプタ)は外部記憶
装置との間で直接転送を行なうことができる。この結果
、記憶装置帯域幅の半分がIloのために使用中であっ
ても、CPUの性能が低下することはない。
責任は、サブシステム・バッファとユーザ領域との間で
固定ブロック転送を行なうシステム・アクセス方式(I
MS、VSAM、VTAM、ページングなど)に移って
きている。これは、アクセス方式がバッファの位置及び
範囲だけでなく、I10転送が処理される時も知ってい
ることを意味する。従って、このソフトウェアはキャッ
シュを適切に同期させることができ、チャネル(PRI
SMシステムにおける直接メモリアダプタ)は外部記憶
装置との間で直接転送を行なうことができる。この結果
、記憶装置帯域幅の半分がIloのために使用中であっ
ても、CPUの性能が低下することはない。
これまでの説明でいえることは、実現させるのに費用が
かかるか、または低速のシステム機能があり、且つソフ
トウェアが頻繁に生じる性能低下要因を認識できる(あ
るいは機能全体を走行時間からコンパイル時間へ移すこ
とができる)場合には、その機能はハードウェアからソ
フトウェアへ移され、それによってコスト低減及び性能
改善が達成される、ということである。
かかるか、または低速のシステム機能があり、且つソフ
トウェアが頻繁に生じる性能低下要因を認識できる(あ
るいは機能全体を走行時間からコンパイル時間へ移すこ
とができる)場合には、その機能はハードウェアからソ
フトウェアへ移され、それによってコスト低減及び性能
改善が達成される、ということである。
上述の設計原理をキャッシュ自身の管理に適用した例に
ついて説明する。PRISMシステムにおいては、キャ
ッシュの各データ・ブロック(ラインと呼ばれている)
は32バイ1−であり、これに対して最大記憶単位は4
バイトである。ラインの大きさが記憶単位よりも大きい
ストア・イン式のキャッシュでいわゆるキャッシュ・ミ
スが生じると、要求されたワードを含むライン全体を外
部記憶装置からキャッシュへ取出さなければならない。
ついて説明する。PRISMシステムにおいては、キャ
ッシュの各データ・ブロック(ラインと呼ばれている)
は32バイ1−であり、これに対して最大記憶単位は4
バイトである。ラインの大きさが記憶単位よりも大きい
ストア・イン式のキャッシュでいわゆるキャッシュ・ミ
スが生じると、要求されたワードを含むライン全体を外
部記憶装置からキャッシュへ取出さなければならない。
これは、同じラインに含まれる別のワードが続いて要求
される可能性が高いためである。とこ11− ろが記憶動作の場合は、プログラムが新しく獲得したス
ペースへの1回の記憶で終ることが多い。
される可能性が高いためである。とこ11− ろが記憶動作の場合は、プログラムが新しく獲得したス
ペースへの1回の記憶で終ることが多い。
このようなスペースの例としては、プロシージャ呼出し
時にブツシュされたプロセス・スタック、ゲラ1〜メイ
ン要求によって得られた領域、第ルベル割込みハンドラ
によって使用されるレジスタ記憶域などがある。いずれ
の場合も、ハードウェアは当該ラインの再度のアクセス
が不要であることを知り得ないが、ソフトウェアにとっ
ては、この状況は極めて明白である。
時にブツシュされたプロセス・スタック、ゲラ1〜メイ
ン要求によって得られた領域、第ルベル割込みハンドラ
によって使用されるレジスタ記憶域などがある。いずれ
の場合も、ハードウェアは当該ラインの再度のアクセス
が不要であることを知り得ないが、ソフトウェアにとっ
ては、この状況は極めて明白である。
従って、P R,I S Mシステムでは、要求された
ラインをキャッシュのディレクトリ中で確立するが、外
部記憶装置からはそのラインの内容を取出さないデータ
・キャッシュ・ライン設定命令が定義されている。記憶
のために新しいラインが必要なときは常にこの命令を実
行するようにすると、外部記憶装置からの不必要な取出
しは避けられるが、今度は命令実行のための余分のマシ
ンサイクルが必要になる。従って、全体的にみれば、こ
の命令の実行には一長一短がある。
ラインをキャッシュのディレクトリ中で確立するが、外
部記憶装置からはそのラインの内容を取出さないデータ
・キャッシュ・ライン設定命令が定義されている。記憶
のために新しいラインが必要なときは常にこの命令を実
行するようにすると、外部記憶装置からの不必要な取出
しは避けられるが、今度は命令実行のための余分のマシ
ンサイクルが必要になる。従って、全体的にみれば、こ
の命令の実行には一長一短がある。
12−
同様に、スクラッチ記憶域が不要になったときにデータ
・キャッシュ・ライン無効化命令を実行して、ディレク
トリ中の指定されたラインに対応するエントリの変更ビ
ットをターンオフすると、不必要な書戻しが避けられる
。詳細は1982年12月30日付のPCT出願U、S
、82101830に記載されている。
・キャッシュ・ライン無効化命令を実行して、ディレク
トリ中の指定されたラインに対応するエントリの変更ビ
ットをターンオフすると、不必要な書戻しが避けられる
。詳細は1982年12月30日付のPCT出願U、S
、82101830に記載されている。
PRISMシステムの優れた特性は前述のとおりである
が、その潜在的な設計目標を十分に実現するためには、
単一マシンサイクルで実行可能な多数の命令を利用する
ことができるようにハードウェアを変更するのが有利で
あることが判った。
が、その潜在的な設計目標を十分に実現するためには、
単一マシンサイクルで実行可能な多数の命令を利用する
ことができるようにハードウェアを変更するのが有利で
あることが判った。
しかしながら、前掲の文献(1)及び(2)には、本発
明に従った単一マシンサイクルで実行可能な特別のマス
ク・回転命令は記載されておらず、またこれらの命令を
実現するためのハードウェアについても記載されていな
い。
明に従った単一マシンサイクルで実行可能な特別のマス
ク・回転命令は記載されておらず、またこれらの命令を
実現するためのハードウェアについても記載されていな
い。
さらに、米国特許第3982229号には、本発明と同
様の成る種の機能を遂行するための命令セット及び論理
回路手段が開示されているが、これらの命令は指定され
た算術オペレーションをその論理回路手段で遂行するに
あたり複数のマシンサイクルを要する。たとえば、マス
クの右端の内容を決定するには、値P1どP2の加算(
または減算)を行なわねばならず、しかもこれらの指定
されたオペレーションを遂行する前に専用の作業レジス
タへそれぞれの内容を別個にロードしなけか、ばならな
いのである。
様の成る種の機能を遂行するための命令セット及び論理
回路手段が開示されているが、これらの命令は指定され
た算術オペレーションをその論理回路手段で遂行するに
あたり複数のマシンサイクルを要する。たとえば、マス
クの右端の内容を決定するには、値P1どP2の加算(
または減算)を行なわねばならず、しかもこれらの指定
されたオペレーションを遂行する前に専用の作業レジス
タへそれぞれの内容を別個にロードしなけか、ばならな
いのである。
[発明が解決しようとする問題点]
前述のように、従来技術のシステムでは、桁送り機能、
組合せ機能、挿入機能、及びビット境界合せ機能を遂行
する場合、これらの機能を単一マシンサイクル遂行する
ことができない。
組合せ機能、挿入機能、及びビット境界合せ機能を遂行
する場合、これらの機能を単一マシンサイクル遂行する
ことができない。
従って、本発明はこの問題点を解決するため、単一マシ
ンサイクルで実行可能なマスク・回転命令セット及び該
命令セットを実現するためのハードウェア機構を提供す
ることを目的とする。
ンサイクルで実行可能なマスク・回転命令セット及び該
命令セットを実現するためのハードウェア機構を提供す
ることを目的とする。
[問題点を解決するための手段]
前記目的を達成するため、本発明の命令処理装置は、単
一マシンサイクルで実行可能なマスク・回転命令を遂行
するための機構を、 前記命令で指定されたマスクパターン遷移アドレスから
Nピッ1〜(Nは1より大きい整数)のマスクを生成す
る手段と、 Nビットのソースオペランドを前記命令で指定された量
だけ回転する手段と、 前記命令で指定される情報に基づいてNビットの目的オ
ペランドを選択する手段と、 前記マスクの所与のビットが第1の論理値を有する場合
は前記目的オペランドの対応ビットを維持し、前記マス
クの所与のビットが第2の論理値を有する場合は前記回
転されたソースオペランドの対応ビットを維持するよう
に、前記回転されたソースオペランドと前記目的オペラ
ンドとを前記マスクの制御下で組み合わせる手段と、N
ビットの前記組合わせ結果を前記命令によって指定され
たレジスタへ戻す手段とから構成し、前記手段の各々を
並行に動作させるようにしたことを特徴とする。
一マシンサイクルで実行可能なマスク・回転命令を遂行
するための機構を、 前記命令で指定されたマスクパターン遷移アドレスから
Nピッ1〜(Nは1より大きい整数)のマスクを生成す
る手段と、 Nビットのソースオペランドを前記命令で指定された量
だけ回転する手段と、 前記命令で指定される情報に基づいてNビットの目的オ
ペランドを選択する手段と、 前記マスクの所与のビットが第1の論理値を有する場合
は前記目的オペランドの対応ビットを維持し、前記マス
クの所与のビットが第2の論理値を有する場合は前記回
転されたソースオペランドの対応ビットを維持するよう
に、前記回転されたソースオペランドと前記目的オペラ
ンドとを前記マスクの制御下で組み合わせる手段と、N
ビットの前記組合わせ結果を前記命令によって指定され
たレジスタへ戻す手段とから構成し、前記手段の各々を
並行に動作させるようにしたことを特徴とする。
15−
[実施例コ
植■」、 I S Mシステム・アーキテクチャの■−
前述のように、PRISMシステムの中心はCPUであ
るが、PR18MシステムはCP TJのイ也に、主記
憶装置、キャッシュ機構、再配置機構及びシステムI1
0を含んでいる(第1図参照)、。
前述のように、PRISMシステムの中心はCPUであ
るが、PR18MシステムはCP TJのイ也に、主記
憶装置、キャッシュ機構、再配置機構及びシステムI1
0を含んでいる(第1図参照)、。
キャッシュ機構はデータ部と命令部に分かれている。
CPUアーキテクチャは従来のものに比べて非常に簡単
である。本PRI 8Mシステムの特徴として、各々の
命令はハードウェアにより単一マシンサイクルで実行さ
れる。このような命令を基本命令という。基本命令は記
憶装置アクセス(普通は並行処理される)を除くと、マ
シンサイクルを1つしか必要としない。ここで1基本″
という語は、簡単さというよりもむしろ時間、即ち単一
マシンサイクルに関係している。基本命令自体は単一マ
シンサイクル内で実行可能であるが、それに伴う実際の
機能は複雑なことがある。
である。本PRI 8Mシステムの特徴として、各々の
命令はハードウェアにより単一マシンサイクルで実行さ
れる。このような命令を基本命令という。基本命令は記
憶装置アクセス(普通は並行処理される)を除くと、マ
シンサイクルを1つしか必要としない。ここで1基本″
という語は、簡単さというよりもむしろ時間、即ち単一
マシンサイクルに関係している。基本命令自体は単一マ
シンサイクル内で実行可能であるが、それに伴う実際の
機能は複雑なことがある。
“単一マシンサイクルI′という語も幾つかの定=17
− 噌^r 16− 義が可能である。例えば、単一マシンサイクルは″継続
的に繰返される基本システムクロックの期間であって、
その間に基本システム・オペレーションが遂行されるも
の″である。もう少し別のいい方をすれば、単一マシン
サイクルは″基本クロック期間に含まれる全てのクロッ
ク・パルスをシステムが1−回完全に使用するのに必要
な時間″である。従って、単一マシンサイクル内でCP
Uの全てのデータフロー機構を1回使用することができ
る。
− 噌^r 16− 義が可能である。例えば、単一マシンサイクルは″継続
的に繰返される基本システムクロックの期間であって、
その間に基本システム・オペレーションが遂行されるも
の″である。もう少し別のいい方をすれば、単一マシン
サイクルは″基本クロック期間に含まれる全てのクロッ
ク・パルスをシステムが1−回完全に使用するのに必要
な時間″である。従って、単一マシンサイクル内でCP
Uの全てのデータフロー機構を1回使用することができ
る。
単一マシンサイクルで実行可能な本発明のマスク・回転
命令は新しく追加された基本命令の代表的な例であり、
これらの命令は以下で詳述するように多くのデータ再構
成状況において相当量の時間を節約することを可能にす
るものである。
命令は新しく追加された基本命令の代表的な例であり、
これらの命令は以下で詳述するように多くのデータ再構
成状況において相当量の時間を節約することを可能にす
るものである。
PRISMシステムのアーキテクチャ及びその命令セッ
トは下記の3つを達成するものである。
トは下記の3つを達成するものである。
(1)命令当り1サイクルの高速CPUをコンパイルに
適した命令セットを用いて定義する。
適した命令セットを用いて定義する。
(2)記憶階層、Ilo、再配置及びソフトウ−18=
エアの活動がCPUでの命令実行と並行して行なわれる
。これにより待ち時間が短くなる。
。これにより待ち時間が短くなる。
(3)全てのプログラムをうまくコンパイルできるコー
ドを生成する最適化コンパイラを開発する。
ドを生成する最適化コンパイラを開発する。
単一マシンサイクルで実行可能であるということに加え
て、命令に関する重要なテーマにその規則性がある。こ
れはハードウェアによる実現を容易にしていた。例えば
、全てのオペランドは自分の大きさに合った境界を持っ
ていなければならない(半ワードの場合は半ワード境界
、ワードの場合はワード境界)。命令は全てフルワード
であり、従ってその境界もフルワード境界である。
て、命令に関する重要なテーマにその規則性がある。こ
れはハードウェアによる実現を容易にしていた。例えば
、全てのオペランドは自分の大きさに合った境界を持っ
ていなければならない(半ワードの場合は半ワード境界
、ワードの場合はワード境界)。命令は全てフルワード
であり、従ってその境界もフルワード境界である。
レジスタ名フィールドはシステム/370の4ビツトに
対し、1−ビット増えて5ビツトである。
対し、1−ビット増えて5ビツトである。
これによりレジスタを32個まで装備できる。従って、
PRISMシステムを用いて、例えばシステム/370
のように16個の汎用レジスタを備えた他のアーキテク
チャをエミュレートすることができる。システム/37
0の命令セットにおける基本命令サブセットを用いて複
雑な命令をエミュレートする場合は、レジスタ名フィー
ルドの長さく4ピッ1−)がネックになる。
PRISMシステムを用いて、例えばシステム/370
のように16個の汎用レジスタを備えた他のアーキテク
チャをエミュレートすることができる。システム/37
0の命令セットにおける基本命令サブセットを用いて複
雑な命令をエミュレートする場合は、レジスタ名フィー
ルドの長さく4ピッ1−)がネックになる。
更に、命令の長さが4パイ1〜あるので、各命令の目的
レジスタを明示指定することができ、従って入力オペラ
ンドを壊す必要はない。これは一般に1′3アドレス″
形式と呼ばれている。
レジスタを明示指定することができ、従って入力オペラ
ンドを壊す必要はない。これは一般に1′3アドレス″
形式と呼ばれている。
PRISMシステムは真の32ピツ1〜・アーキテクチ
ャであり、16ビツト・アーキテクチャに拡張レジスタ
を加えたものではない。アドレスは32ビツト長であり
、算術演算には32ビットの2の補数が使用され、論理
命令及び桁送り命令は32ピツ1〜のワードを取扱う。
ャであり、16ビツト・アーキテクチャに拡張レジスタ
を加えたものではない。アドレスは32ビツト長であり
、算術演算には32ビットの2の補数が使用され、論理
命令及び桁送り命令は32ピツ1〜のワードを取扱う。
桁送りは31ビツトまで可能である。
第2A図及び第2B図に示すように、PRISMシステ
ムのCPUの主構成要素は、2人力のALU、2つの入
力ボート及び3つの出カポ−1へを持った汎用レジスタ
・ファイル(32ビツトのレジスタを32個含む)、な
らびに32ビツトの条件レジスタを含む条件論理である
。条件レジスタ19− はオペレーションに関する種々の条件を示すもので、検
査及び分岐を可能にする。条件レジスタの各ビットの意
味は下記の表1のとおりである。ただし、条件レジスタ
のビットのうち極く僅かなものだけが本発明に従ってマ
スク・回転命令の実行に関係するにすぎない。
ムのCPUの主構成要素は、2人力のALU、2つの入
力ボート及び3つの出カポ−1へを持った汎用レジスタ
・ファイル(32ビツトのレジスタを32個含む)、な
らびに32ビツトの条件レジスタを含む条件論理である
。条件レジスタ19− はオペレーションに関する種々の条件を示すもので、検
査及び分岐を可能にする。条件レジスタの各ビットの意
味は下記の表1のとおりである。ただし、条件レジスタ
のビットのうち極く僅かなものだけが本発明に従ってマ
スク・回転命令の実行に関係するにすぎない。
20−
表1 (条化yマスタ)
ビット 冬M 社
OSO合計あふれ
1 0V あふれ
2 LT より小さい、負値
3 GT より大きい、正値
4、 E Q 等しい、ゼロ値
5 LL 論理的により小さい
6 LG 論理的により大きい
7 CA ビットOがらの桁上げ
8 C4ピッ1へ4からの桁上げ
9 C8ビット8からの桁」二げ
10 C12ピッ1−12からの桁上げ11 C16ビ
ット16からの桁上げ 12 C20ビット20からの桁上げ 13 C24ビット24からの桁」二げ14 C28ビ
ット28からの桁」二げ15 CD 任意の4ビツト・
ニブル からの桁上げ 16 PZ 常時ゼロ 17〜25(将来の使用に備えて予約)26 ECO外
部条件0 27 ECI 外部条件1 28 EC2外部条件2 29 EC3外部条件3 30 BB 母線使用中 (条件付き母線オペレーシ ョン用) 3]、 HO半ワードあふれ (下位16ビツトからのあふ れ) 条件レジスタの各ビットは命令によって変更されない限
り、前の値を保つ。
ット16からの桁上げ 12 C20ビット20からの桁上げ 13 C24ビット24からの桁」二げ14 C28ビ
ット28からの桁」二げ15 CD 任意の4ビツト・
ニブル からの桁上げ 16 PZ 常時ゼロ 17〜25(将来の使用に備えて予約)26 ECO外
部条件0 27 ECI 外部条件1 28 EC2外部条件2 29 EC3外部条件3 30 BB 母線使用中 (条件付き母線オペレーシ ョン用) 3]、 HO半ワードあふれ (下位16ビツトからのあふ れ) 条件レジスタの各ビットは命令によって変更されない限
り、前の値を保つ。
ビットO(S○)は合計あふれピッ1−で、次のあふれ
ビットが命令によってセットされるときは常にII I
IIにセットされる。除算ステップにお1−+る特別
の標識としてあふれを使用する場合は、合計あふれは変
更されない。
ビットが命令によってセットされるときは常にII I
IIにセットされる。除算ステップにお1−+る特別
の標識としてあふれを使用する場合は、合計あふれは変
更されない。
ビット1 (OV)−はあふれビットで、命令実行中に
あふれが生じたときにセラ1〜される。あふれビットは
、加算及び減算においてビット0からの桁上げとビン1
〜]−からの桁上げとが異なっていると“]”にセセラ
され、さもなければ“O”にセットされる。これは除算
ステップのための専用標識としても使用される。ただし
比較命令によって変更されることはない。
あふれが生じたときにセラ1〜される。あふれビットは
、加算及び減算においてビット0からの桁上げとビン1
〜]−からの桁上げとが異なっていると“]”にセセラ
され、さもなければ“O”にセットされる。これは除算
ステップのための専用標識としても使用される。ただし
比較命令によって変更されることはない。
ピッI〜2〜6は実行された命令の計算結果(大小関係
)を示す。そのうちビット2(r、T)、wスΣ3 (
GT) 、及びgノ1〜4.(EQ)は、2つのオペラ
ンドを2の補数形式の符号付き整数と考えてセラ1−さ
れ、ピッl−−5(L T、 ’)−及びビット623
− ユ↓刃1は、2つのオペランドを32ビツトの無符号整
数と考えてセットされる。ビット2〜6は比較及び論理
命令によってもセットされる。またピッ1−2〜6はマ
スク・回転命令によってセットされ、そのマスクまたは
回転オペレーションによって影響されるレジスタの符号
及び大小関係を示す。
)を示す。そのうちビット2(r、T)、wスΣ3 (
GT) 、及びgノ1〜4.(EQ)は、2つのオペラ
ンドを2の補数形式の符号付き整数と考えてセラ1−さ
れ、ピッl−−5(L T、 ’)−及びビット623
− ユ↓刃1は、2つのオペランドを32ビツトの無符号整
数と考えてセットされる。ビット2〜6は比較及び論理
命令によってもセットされる。またピッ1−2〜6はマ
スク・回転命令によってセットされ、そのマスクまたは
回転オペレーションによって影響されるレジスタの符号
及び大小関係を示す。
ビット7〜15はいずれも桁上げビットである。
そのうちビット7(CA、)は、加算及び減算において
ビット0からの桁上げがあると“1”にセットされ、さ
もなければ“0”にセットされる。これは除算及び乗算
命令のための専用標識としても使用されるが、比較命令
によって変更されることはない。これに対して、ビット
8〜14はA、 L Uにおける各ニブルの桁」二げを
示す。例えばビット8(C4,)はビット4からの桁上
げがあると1″′にセットされ、さもなければ(l O
IIにセットされる。ビット9〜1−4も同様である。
ビット0からの桁上げがあると“1”にセットされ、さ
もなければ“0”にセットされる。これは除算及び乗算
命令のための専用標識としても使用されるが、比較命令
によって変更されることはない。これに対して、ビット
8〜14はA、 L Uにおける各ニブルの桁」二げを
示す。例えばビット8(C4,)はビット4からの桁上
げがあると1″′にセットされ、さもなければ(l O
IIにセットされる。ビット9〜1−4も同様である。
これらの桁上げは10進演算で使用される。ビット15
(CD)は任意の4ビツト・ニブルにおいて桁上げが生
じ−25−4^ゴ 24− ると“1”にセットされ、さもなければ“O”にセット
される。これを利用すれば、10進デイジツトの有効性
を検証することができる。
(CD)は任意の4ビツト・ニブルにおいて桁上げが生
じ−25−4^ゴ 24− ると“1”にセットされ、さもなければ“O”にセット
される。これを利用すれば、10進デイジツトの有効性
を検証することができる。
ビット16(PZ)は常時ゼロ・ビットであって、]−
”にセットされることはない。これは、常時ゼロ・ビッ
トを参照する分岐命令による無条件分岐を可能にする。
”にセットされることはない。これは、常時ゼロ・ビッ
トを参照する分岐命令による無条件分岐を可能にする。
ビット17〜25は予約ピッ1−である。これらは本実
施例では使用されないが、将来の使用に備えて設けられ
ている。
施例では使用されないが、将来の使用に備えて設けられ
ている。
ビット26〜29 (ECO〜EC3)は外部条件ビッ
トであり、外部条件が有効なときにCPUへの対応する
外部条件入力の値にセットされる。
トであり、外部条件が有効なときにCPUへの対応する
外部条件入力の値にセットされる。
ビット30 (BB)は母線使用中ビットであり、母線
ユニットが使用中のためにそこで母線オペレーションに
関する命令を実行できないときにII I IIにセッ
トされ、さもなければrr O41にセットされる。
ユニットが使用中のためにそこで母線オペレーションに
関する命令を実行できないときにII I IIにセッ
トされ、さもなければrr O41にセットされる。
ビット31(HO)は半ワードあふれビットであり、下
位の16ビツトのあふれ状態を示す。こ26− れは、加算及び減算においてビット15及び16の桁」
;げが異なっているとtL I IIにセットされ、さ
もなければII O++にセットされる。このビットは
比較命令によって変更されることはない。
位の16ビツトのあふれ状態を示す。こ26− れは、加算及び減算においてビット15及び16の桁」
;げが異なっているとtL I IIにセットされ、さ
もなければII O++にセットされる。このビットは
比較命令によって変更されることはない。
前述のように、命令は全て4バイ1−長であり、ワード
境界に置かれる。PRISMシステムでは、D形式、U
L形式、X形式及びX形式の命令が使用される。これ
らの命令形式を下記の表2に示す。
境界に置かれる。PRISMシステムでは、D形式、U
L形式、X形式及びX形式の命令が使用される。これ
らの命令形式を下記の表2に示す。
表ス
D形式、U L形式
0 6 11 16 31
M形式
%式%]
命令中の各フィールドの意味は次のとおりである。
○PCD (0〜5):命令のOPコード。
RT (6〜10):命令の実行結果を受取る目的レジ
スタの名前。
スタの名前。
R8(6〜10):命令実行のためのソース・27−
レジスタの名前。
RA(1,1〜15):第1オペランド・レジスタ、ま
たは回転命令の場合は目的レジスタとして使用されるレ
ジスタの名前。
たは回転命令の場合は目的レジスタとして使用されるレ
ジスタの名前。
RB(1,6〜20):第2オペランド・レジスタの名
前。
前。
BI(6〜10):Iノシフタ・ビットまたはトラップ
・マスクを指定する即値フィールド。
・マスクを指定する即値フィールド。
5H(16〜20):桁送り量を指定する即値フィール
ド。
ド。
D(16〜31):1.6ビツトの符号付き整数を2の
補数形式で指定する即値フィールド。拡張のため32ビ
ツトの長さを持った別のフィールドと組合わせて使用す
ることができる。
補数形式で指定する即値フィールド。拡張のため32ビ
ツトの長さを持った別のフィールドと組合わせて使用す
ることができる。
MASK (21−31): ”O”によって囲ま九た
II i、 uのサブストリングまたはrt 1 ++
によって囲まれたrr Ouのサブストリングがら成る
32ビツトのマスクを指定する即値フィールド。ビット
21が“0″であれば前者のサブストリングが指定され
、61″であれば後者のサブストリング28− が指定される。ビット22〜26はサブストリングの左
端ビットへのインデックス、ビット27〜31はサブス
トリングの右端ビットへのインデックスである。”10
000011111”のマスクフィールドは全て110
”のマスクを発生し。
II i、 uのサブストリングまたはrt 1 ++
によって囲まれたrr Ouのサブストリングがら成る
32ビツトのマスクを指定する即値フィールド。ビット
21が“0″であれば前者のサブストリングが指定され
、61″であれば後者のサブストリング28− が指定される。ビット22〜26はサブストリングの左
端ビットへのインデックス、ビット27〜31はサブス
トリングの右端ビットへのインデックスである。”10
000011111”のマスクフィールドは全て110
”のマスクを発生し。
”00000011111”のマスクフィールドは全て
“1″のマスクを発生する。
“1″のマスクを発生する。
EO(21〜31):拡張OPコード。
これから説明する豊富な命令セット(単一マシンサイク
ルで実行できるマスク・回転命令)によりPRISMシ
ステムのアーキテクチャを一層強力なものにできる。こ
れらの命令セットは、ビット桁送り機能、バイト境界合
せ機能、組合せ機能、及び挿入機能を高速かく効率よく
遂行する手段を提供するためだけでなく、IBMシステ
ム/370の桁送り命令、移動命令、及び種々の記憶載
量命令をエミュレートできる強力な基本命令セットを提
供するものである。
ルで実行できるマスク・回転命令)によりPRISMシ
ステムのアーキテクチャを一層強力なものにできる。こ
れらの命令セットは、ビット桁送り機能、バイト境界合
せ機能、組合せ機能、及び挿入機能を高速かく効率よく
遂行する手段を提供するためだけでなく、IBMシステ
ム/370の桁送り命令、移動命令、及び種々の記憶載
量命令をエミュレートできる強力な基本命令セットを提
供するものである。
単−マシンサイクルで実行できる以下の全ての機能は後
で説明するハードウェアによって使用可能となる。所υ
、のレジスタの内容は最高31個までの位置を循環桁送
りできる(桁送りの量は即値フィールドまたは別のレジ
スタで指定される)。
で説明するハードウェアによって使用可能となる。所υ
、のレジスタの内容は最高31個までの位置を循環桁送
りできる(桁送りの量は即値フィールドまたは別のレジ
スタで指定される)。
マスク(即値フィールドまたは別のレジスタで指定され
る)を用いて、桁送りされたワードは、全ゼロとの組合
せ(即ちフィールドの分離)、他のレジスタとの組合せ
、または前の桁送り結果との絹合せ(すなわち長桁送り
)ができる。こうして組み合わされた結果は他のレジス
タまたは主記憶装置へ戻すことができる(即ち文字スト
リングの移動)。この最後の機能によって、境界の合っ
ていないソース文字ストリング及び目的文字ストリング
の移動を、]−ママシンサイクルり2文字ストリングの
速度で実行できる。
る)を用いて、桁送りされたワードは、全ゼロとの組合
せ(即ちフィールドの分離)、他のレジスタとの組合せ
、または前の桁送り結果との絹合せ(すなわち長桁送り
)ができる。こうして組み合わされた結果は他のレジス
タまたは主記憶装置へ戻すことができる(即ち文字スト
リングの移動)。この最後の機能によって、境界の合っ
ていないソース文字ストリング及び目的文字ストリング
の移動を、]−ママシンサイクルり2文字ストリングの
速度で実行できる。
[マスク使用回転命令]
プロセッサは汎用レジスタからのデータに対し回転オペ
レーションを遂行し、その結果又は結果の一部を、汎用
レジスタ又は主記憶装置へ戻す。
レーションを遂行し、その結果又は結果の一部を、汎用
レジスタ又は主記憶装置へ戻す。
回転オペレーションは指定されたビット数の左移動を行
なうものである。ピッ1ル位置0から出たビットはビッ
ト位置3]へ入る(即ち循環桁送り)。
なうものである。ピッ1ル位置0から出たビットはビッ
ト位置3]へ入る(即ち循環桁送り)。
マスク使用回転命令はその命令の完了時に、レジスタR
Aの値に基づいて条件レジスタCRのピッ1〜をセット
する。条件レジスタCRは、あたかもレジスタRAと値
0との比較が遂行されたかのようにしてセットされる。
Aの値に基づいて条件レジスタCRのピッ1〜をセット
する。条件レジスタCRは、あたかもレジスタRAと値
0との比較が遂行されたかのようにしてセットされる。
マスク使用回転命令の結果は付与されるマスクの制御の
下でレジスタへ挿入されるか、またはマスクとの論理積
(AND)がとられてからレジスタヘロードされる。こ
のオペレーションは、本実施例では、全ゼロのスミ−リ
ングを組み合わせる(挿入する)ことによって行なわれ
る。
下でレジスタへ挿入されるか、またはマスクとの論理積
(AND)がとられてからレジスタヘロードされる。こ
のオペレーションは、本実施例では、全ゼロのスミ−リ
ングを組み合わせる(挿入する)ことによって行なわれ
る。
挿入を伴う回転の場合は、回転オペレーションの結果は
、付与されるマスクの制御の下でレジスタRAに置かれ
る。もし所与のマスクビットが1であれば、回転された
データの関連するビット(0または1)がレジスタRA
に置かれる。一方、このマスクビットがOであれば、レ
ジスタRAの31− 関連するピッ1へ(0または1)は変更されず元のまま
である。
、付与されるマスクの制御の下でレジスタRAに置かれ
る。もし所与のマスクビットが1であれば、回転された
データの関連するビット(0または1)がレジスタRA
に置かれる。一方、このマスクビットがOであれば、レ
ジスタRAの31− 関連するピッ1へ(0または1)は変更されず元のまま
である。
これらの左回転命令は、(32−N) ビットノ左回転
をすることにより実質的に右回転命令にできる。この場
合、Nが右回転の桁送り数である。
をすることにより実質的に右回転命令にできる。この場
合、Nが右回転の桁送り数である。
即値回転・マスク挿入(RIMI R8,RA、SH,
MASK)、M形式 %式% シフタR8の内容がS H位置分だけ左へ回転される。
MASK)、M形式 %式% シフタR8の内容がS H位置分だけ左へ回転される。
回転されたデータは、生成されたマスクの制御の下で、
レジスタRAに挿入される。
レジスタRAに挿入される。
条件コード:
LT、EQ、GT、及びLGがセットされ、LLが0に
セットされる。
セットされる。
回転・マスク挿入(RMI R8,RA、RB、MAS
K)、M形式 %式% レジスタR5の内容がレジスタRBのビット27〜3]
で指定される位置数分だけ左へ回転される。回転された
データは、生成されたマスクの制御の下で、レジスタR
Aに挿入される。
K)、M形式 %式% レジスタR5の内容がレジスタRBのビット27〜3]
で指定される位置数分だけ左へ回転される。回転された
データは、生成されたマスクの制御の下で、レジスタR
Aに挿入される。
条件コード:
LT、EQ、GT、及びLGがセットされ、LLが0に
セットされる。
セットされる。
即値回転・マスクAND (RINM R8,RA、S
H,MASK)、M形式 レジスタR8の内容がS H位置分だけ左へ回転される
。回転されたデータは生成されたマスクと論理積(AN
D)がとられ、その結果がレジスタRAに置かれる。
H,MASK)、M形式 レジスタR8の内容がS H位置分だけ左へ回転される
。回転されたデータは生成されたマスクと論理積(AN
D)がとられ、その結果がレジスタRAに置かれる。
条件コード:
LT、EQ、GT、及びLGがセットされ、LLが0に
セットされる。
セットされる。
回転・マスクAND (RNM R8,RA、、RB、
MASK) 、X形式 %式% ジメタR8の内容がレジスタRBのビット27〜31で
指定される位置数分だけ左へ回転される。回転されたデ
ータは生成されたマスクと論理積(AND)がとられ、
その結果がレジスタR,Aに置かれる。
MASK) 、X形式 %式% ジメタR8の内容がレジスタRBのビット27〜31で
指定される位置数分だけ左へ回転される。回転されたデ
ータは生成されたマスクと論理積(AND)がとられ、
その結果がレジスタR,Aに置かれる。
条件コード:
[、T、EQ、GT、及びLGがセツ1〜され、LLが
Oにセットされる。
Oにセットされる。
[ビット回転命令]
右回転・ピッ1へ挿入(RRIB R8,RA、RB)
、X形式 %式%] レジシフR,Sのビット0がレジスタRBのビット27
〜31で指定される量だけ右へ回転される。
、X形式 %式%] レジシフR,Sのビット0がレジスタRBのビット27
〜31で指定される量だけ右へ回転される。
このビット0は次にレジスタR,Aへ挿入される。
条件コード:
LT、EQ、GT、及びLGがセットされ、LLがOに
セットされる。
セットされる。
[桁送り命令]
このグループの命令は左への桁送り及び右への桁送りを
論理的に遂行する。各命令の結果はそれぞれ生成された
マスクの制御の下でレジスタRA35− に置かれる。マスクビットが1のところは、回転された
ワードの関連するビットがレジスタRAに置かれる。一
方、マスクビットがOのところは、IノジスタM、Q、
32個Oから成るワード、または32個の符号ビットの
関連ピッ1〜がレジスタRAに置かれる。
論理的に遂行する。各命令の結果はそれぞれ生成された
マスクの制御の下でレジスタRA35− に置かれる。マスクビットが1のところは、回転された
ワードの関連するビットがレジスタRAに置かれる。一
方、マスクビットがOのところは、IノジスタM、Q、
32個Oから成るワード、または32個の符号ビットの
関連ピッ1〜がレジスタRAに置かれる。
桁送り命令はその命令の完了時に、レジスタRAの値に
基づいて条件レジスタCRのビットをセットする。条件
レジスタCRは、あたかもレジスタRAと値0との比較
が遂行されたかのようにしてセットされる。
基づいて条件レジスタCRのビットをセットする。条件
レジスタCRは、あたかもレジスタRAと値0との比較
が遂行されたかのようにしてセットされる。
左指送り(SL R8,RA、RB)
レジスタR8の内容はNビットだけ左に回転される(N
はレジスタRBのビット27〜31で指定される桁送り
量である)。レジスタRBのピッ−36− ト26が0の場合は、(32−N)個の1の後にN個の
0が続くマスクが生成される。一方、レジスタRBのビ
ット26が1の場合は、全てOのマスクが生成される。
はレジスタRBのビット27〜31で指定される桁送り
量である)。レジスタRBのピッ−36− ト26が0の場合は、(32−N)個の1の後にN個の
0が続くマスクが生成される。一方、レジスタRBのビ
ット26が1の場合は、全てOのマスクが生成される。
回転されたワードと生成されたマスクとの論理積(AN
D)がとられ、それがレジスタRAに記憶される。
D)がとられ、それがレジスタRAに記憶される。
条件コード:
LT、EQ、GT、及びLGがセツ1〜され、LLが0
にセットされる。
にセットされる。
MQ使用即値左左指り(SLIQ R8,RA、SH)
レジスタR8の内容はNビットだけ左に回転される(N
はSRで指定される桁送り量である)。
はSRで指定される桁送り量である)。
(32−N)個の1の後にN個のOが続くマスクが生成
される。回転されたワードはレジスタMQに記憶される
。回転されたワードと生成されたマスクとの論理積(A
、 N D )がとられ、それがレジスタRAに記憶さ
れる。
される。回転されたワードはレジスタMQに記憶される
。回転されたワードと生成されたマスクとの論理積(A
、 N D )がとられ、それがレジスタRAに記憶さ
れる。
条件コード:
T、 T 、 E Q 、 G T 、及びL Gがセ
ットされ、LLがOにセラ1−される。
ットされ、LLがOにセラ1−される。
MQ使川用左指り(SLQ R8,RA、R,B)0
6 11、 16 2+ 3ル ジスタR8の内容はNビットだけ左に回転される(Nは
レジスタRBのビット27〜31で指定される桁送り量
である)。回転されたワードはレジスタMQに記憶され
る。レジスタRBのピッ1〜26がOの場合は、(32
−N)個の1の後にN個のOが続くマスクが生成される
。レジスタRBのビット26が1の場合は全てOのマス
クが生成される。回転されたワードと生成されたマスク
との論理積(AND)がとられそれがレジスタRAに記
憶される。
6 11、 16 2+ 3ル ジスタR8の内容はNビットだけ左に回転される(Nは
レジスタRBのビット27〜31で指定される桁送り量
である)。回転されたワードはレジスタMQに記憶され
る。レジスタRBのピッ1〜26がOの場合は、(32
−N)個の1の後にN個のOが続くマスクが生成される
。レジスタRBのビット26が1の場合は全てOのマス
クが生成される。回転されたワードと生成されたマスク
との論理積(AND)がとられそれがレジスタRAに記
憶される。
条件コード:
LT、EQ、GT及びLGがセラ1−され、TJLがO
にセットされる。
にセットされる。
MQ使用即値長左左指り(LSLIQ R8、RA、5
R) 0 6 1]、 ]、6 21 3ル ジスタR8の内容はNピッ1〜だけ左に回転される(N
はS I(で指定される桁送り量である)。
R) 0 6 1]、 ]、6 21 3ル ジスタR8の内容はNピッ1〜だけ左に回転される(N
はS I(で指定される桁送り量である)。
(32−N)個の1の後のN個のOが続くマスクが生成
される。回転されたワードは生成されたマスクの制御の
下でレジスタMQの前の内容と組み合せられる(マスク
ビットが1のところは回転されたワードのビットが使用
され、マスクビットが0のところはレジスタMQの前の
内容のピッI−が39− 使用される)。組み合せられたワードはレジスタRAに
記憶される。
される。回転されたワードは生成されたマスクの制御の
下でレジスタMQの前の内容と組み合せられる(マスク
ビットが1のところは回転されたワードのビットが使用
され、マスクビットが0のところはレジスタMQの前の
内容のピッI−が39− 使用される)。組み合せられたワードはレジスタRAに
記憶される。
条件コード:
LT、EQ、GT、及びLGがセットされ、LLがOに
セットされる。
セットされる。
MQ使使用長左進り(LSLQ R8,RA、RB)
レジスタR8の内容はNビットだけ左に回転される(N
はレジスタRBのビット27〜31.で指定される桁送
り量である)。回転されたワードはレジスタMQに記憶
される。レジスタRBのビット26がOの場合は、(3
2−N)個の1の後にN個の0が続くマスクが生成され
る。回転されたワードは生成されたマスクの制御の下で
レジスタMQの前の内容と組み合わせられる(マスクピ
ッl〜が1.のどころは回転されたワードのビットが使
−41−^へ一 40− 用され、マスクビットがOのところはレジスタMQの前
の内容のビットが使用される)。レジスタRBのビット
26が1の場合は(32−N)個の1の後にN個の1が
続くマスクが生成される。回転されたワードの代わりに
全てOのワードが使用される。組み合わされたワードは
レジスタRAに記憶される。
はレジスタRBのビット27〜31.で指定される桁送
り量である)。回転されたワードはレジスタMQに記憶
される。レジスタRBのビット26がOの場合は、(3
2−N)個の1の後にN個の0が続くマスクが生成され
る。回転されたワードは生成されたマスクの制御の下で
レジスタMQの前の内容と組み合わせられる(マスクピ
ッl〜が1.のどころは回転されたワードのビットが使
−41−^へ一 40− 用され、マスクビットがOのところはレジスタMQの前
の内容のビットが使用される)。レジスタRBのビット
26が1の場合は(32−N)個の1の後にN個の1が
続くマスクが生成される。回転されたワードの代わりに
全てOのワードが使用される。組み合わされたワードは
レジスタRAに記憶される。
条件コード:
LT、EQ、GT、及びLGはセットされ、LLがOに
セットされる。
セットされる。
右桁送り(SRR8,RA= RB)
0 6 11 16 21 .3]
レジスタRBの内容は(a2−N)ビットだけ左に回転
される(NはレジスタRBのビット27〜31で指定さ
れる桁送り量である)。レジスタR,Bのビット26が
0の場合はN個のOの後に42− (32−N)個の1−が続くマスクが生成される。
される(NはレジスタRBのビット27〜31で指定さ
れる桁送り量である)。レジスタR,Bのビット26が
0の場合はN個のOの後に42− (32−N)個の1−が続くマスクが生成される。
レジスタRBのビット26が1の場合は全て0のマスク
が生成される。回転されたワードと生成されたマスクと
の論理積(AND)がとられそれがレジスタRAに記憶
される。
が生成される。回転されたワードと生成されたマスクと
の論理積(AND)がとられそれがレジスタRAに記憶
される。
条件コード:
LT、EQ、GT、及びL Gがセットされ、LLが0
にセットされる。
にセットされる。
MQ使用即値右桁送り(SRIQ R8,RA、5H)
0 6 11、 16 21 3ル
ジスタR8の内容が(32−N)ビットだけ左に回転さ
れる(NはSHで指定される桁送り量である)。回転さ
れたワードはレジスタMQに記憶される。N個の0の後
に(32−N)個の1が続くマスクが生成される。回転
されたワードと生成されたマスクとの論理積(A N
D )がとられそれがレジスタRAに記憶される。
れる(NはSHで指定される桁送り量である)。回転さ
れたワードはレジスタMQに記憶される。N個の0の後
に(32−N)個の1が続くマスクが生成される。回転
されたワードと生成されたマスクとの論理積(A N
D )がとられそれがレジスタRAに記憶される。
条件コード:
LT、EQ、GT、及びL GがセットされL T−が
Oにセットされる。
Oにセットされる。
MQ使用右桁送り(SRQ R8,RA、RB)0 6
11 1.6 2+ 3ル ジスタR8の内容が(32−N)ビットだけ左に回転さ
れる(NはレジスタRBのピッ1−27〜31−で指定
される桁送り量である)。回転されたワードはレジスタ
MQに記憶される。レジスタRBのピッI−26がOの
場合はN個の0の後に(32−N)個の1が続くマスク
が生成される。
11 1.6 2+ 3ル ジスタR8の内容が(32−N)ビットだけ左に回転さ
れる(NはレジスタRBのピッ1−27〜31−で指定
される桁送り量である)。回転されたワードはレジスタ
MQに記憶される。レジスタRBのピッI−26がOの
場合はN個の0の後に(32−N)個の1が続くマスク
が生成される。
レジスタRBのビット26が1の場合は全て0のマスク
が生成される。回転されたワードと生成されたマスクと
の論理積(AND)がとられそれが43− レジスタRAに記憶される。
が生成される。回転されたワードと生成されたマスクと
の論理積(AND)がとられそれが43− レジスタRAに記憶される。
条件コード:
LT、EQ、GT、及びLGがセットされ、LLがOに
セットされる。
セットされる。
MQ使用即値長右桁送り(LSR,IQ R8、RA、
、5H) 0 6 11 16 2] 3ル ジスタR8の内容が(32−N)ビットだけ左に回転さ
れる(NはSHで指定される桁送り量である)。回転さ
れたワードはレジスタMQに記憶される。N個のOの後
に(32−N)個の1が続くマスクが生成される。回転
されたワードは生成されたマスクの制御の下でレジスタ
MQの前の内容と組み合わされる(マスクビットが1の
ところは回転されたワードのビットが使用され、マスク
ビットが0のところはレジスタMQの前の内容=44− のビットが使用される)。組み合わされたワードはレジ
スタRAに記憶される。
、5H) 0 6 11 16 2] 3ル ジスタR8の内容が(32−N)ビットだけ左に回転さ
れる(NはSHで指定される桁送り量である)。回転さ
れたワードはレジスタMQに記憶される。N個のOの後
に(32−N)個の1が続くマスクが生成される。回転
されたワードは生成されたマスクの制御の下でレジスタ
MQの前の内容と組み合わされる(マスクビットが1の
ところは回転されたワードのビットが使用され、マスク
ビットが0のところはレジスタMQの前の内容=44− のビットが使用される)。組み合わされたワードはレジ
スタRAに記憶される。
条件コード:
LT、EQ、GT、及びL Gがセットされ、LLがO
にセットされる。
にセットされる。
長右桁送り(LSRQ R8,RA、RB)0 6 1
1、 16 2] 3ル ジスタR8の内容が(32−N)ビットだけ左に回転さ
れる(NはレジスタRBのビット27〜31で指定され
る桁送り量である)。回転されたワードはレジスタMQ
に記憶される。レジスタRBのビット26が0の場合は
N個のOの後に(32−N)個の1が続くマスクが生成
される。回転されたワードは生成されたマスクの制御の
下でレジスタMQの前の内容と組み合わせられる(マス
クビットが1のところは回転されたワードのビットが使
用され、マスクピッl〜が0のところはレジスタM Q
の前の内容のピッ1〜が使用される)。
1、 16 2] 3ル ジスタR8の内容が(32−N)ビットだけ左に回転さ
れる(NはレジスタRBのビット27〜31で指定され
る桁送り量である)。回転されたワードはレジスタMQ
に記憶される。レジスタRBのビット26が0の場合は
N個のOの後に(32−N)個の1が続くマスクが生成
される。回転されたワードは生成されたマスクの制御の
下でレジスタMQの前の内容と組み合わせられる(マス
クビットが1のところは回転されたワードのビットが使
用され、マスクピッl〜が0のところはレジスタM Q
の前の内容のピッ1〜が使用される)。
レジスタRBのビット26が1−の場合はN個の1の後
に(32−N)個の0が続くマスクが生成される。回転
されたワードの代わりに全てOのワードが使用される。
に(32−N)個の0が続くマスクが生成される。回転
されたワードの代わりに全てOのワードが使用される。
組み合わされたワードはレジスタRAに記憶される。
条件コード:
T、T、EQ、GT、及びLGがセットされ、LLがO
にセットされる。
にセットされる。
代数的即値右折送り(SRAI R8,RA。
5H)
0 6 11 16 21 3]
レジスタR8の内容は(32−N)ビットだけ左に回転
される(NはS Hで指定される桁送り量である)。N
個の0の後に(32−N)個の1が続くマスクが生成さ
れる。回転されたワードは生成されたマスクの制御の下
でレジスタR8の32個の符号ビットから成るワードと
組み合わせられる(マスクビットがOのところは関連す
る符号ビットが使用される)。組み合わされたワードは
レジスタRAに記憶される。
される(NはS Hで指定される桁送り量である)。N
個の0の後に(32−N)個の1が続くマスクが生成さ
れる。回転されたワードは生成されたマスクの制御の下
でレジスタR8の32個の符号ビットから成るワードと
組み合わせられる(マスクビットがOのところは関連す
る符号ビットが使用される)。組み合わされたワードは
レジスタRAに記憶される。
条件コード:
LT、EQ、GT、及びLGがセラ1−され、LLが0
にセットされる。
にセットされる。
代数的右桁送り(SRA R8,RA、RB)レジスタ
R8の内容は(32−N)ビットだけ左に回転される(
NはレジスタRBのビット27〜31で指定されるシフ
ト量である)。レジスタRBのピッド26が0の場合は
N個のOの後に(32−N)個の1−が続くマスクが生
成される。
R8の内容は(32−N)ビットだけ左に回転される(
NはレジスタRBのビット27〜31で指定されるシフ
ト量である)。レジスタRBのピッド26が0の場合は
N個のOの後に(32−N)個の1−が続くマスクが生
成される。
47−
レジスタRBのビット26が1の場合は全てOのマスク
が生成される。回転されたワードは生成されたマスクの
制御の下でレジスタR8の32個の符号ビットから成る
ワードと組み合わせられる(マスクビットがOのところ
は符号ビットが使用される)。組み合わされたワードは
レジスタRAに記憶される。
が生成される。回転されたワードは生成されたマスクの
制御の下でレジスタR8の32個の符号ビットから成る
ワードと組み合わせられる(マスクビットがOのところ
は符号ビットが使用される)。組み合わされたワードは
レジスタRAに記憶される。
条件コード:
LT、EQ、GT、及びLGがセットされ、LLがOに
セットされる。
セットされる。
MQ使用代数的右桁送り(SRAQ R8,RA、、R
B) 0 6 11 16 21 3ル ジスタR8の内容は(32−N)ビットだけ左に回転さ
れる(レジスタRBのビット27〜31で指定される桁
送り量である)。N個のOの後−49−^へ^ 48− に(32−N)個の1が続くマスクが生成される。
B) 0 6 11 16 21 3ル ジスタR8の内容は(32−N)ビットだけ左に回転さ
れる(レジスタRBのビット27〜31で指定される桁
送り量である)。N個のOの後−49−^へ^ 48− に(32−N)個の1が続くマスクが生成される。
レジスタRBのビット26が1の場合は全て0のマスク
が生成される。回転されたワードはレジスタMQに記憶
される。回転されたワードは生成されたマスクの制御の
下でレジスタR8の32個の符号ビットから成るワード
と組み合わされる(マスクビットがOのところは符号ピ
ッl−が使用される)。組み合わされたワードはレジス
タRAに記憶される。
が生成される。回転されたワードはレジスタMQに記憶
される。回転されたワードは生成されたマスクの制御の
下でレジスタR8の32個の符号ビットから成るワード
と組み合わされる(マスクビットがOのところは符号ピ
ッl−が使用される)。組み合わされたワードはレジス
タRAに記憶される。
条件コード:
LT、EQ、GT、及びLGがセットされ、LLが0に
セットされる。
セットされる。
MQ使用代数的右桁送り(SRAQ R8,RA、RB
) 0 6 11 16 21 31 50− レジスタR,Sの内容は(32−N)ビットだけ左に回
転される(レジスタRBのビット27〜31−で指定さ
れる桁送り量である)。N個のOの後に(32−N)個
の1が続くマスクが生成される。
) 0 6 11 16 21 31 50− レジスタR,Sの内容は(32−N)ビットだけ左に回
転される(レジスタRBのビット27〜31−で指定さ
れる桁送り量である)。N個のOの後に(32−N)個
の1が続くマスクが生成される。
レジスタRBのビット26が1の場合は全てOのマスク
が生成される。回転されたワードはレジスタMQに記憶
される。回転されたワードは生成されたマスクの制御の
下でレジスタR8の32個の符号ビットから成るワード
と組み合わされる(マスクピッ1〜が0のところは符号
ビットが使用される)。組み合わされたワードはレジス
タRAに記憶される。
が生成される。回転されたワードはレジスタMQに記憶
される。回転されたワードは生成されたマスクの制御の
下でレジスタR8の32個の符号ビットから成るワード
と組み合わされる(マスクピッ1〜が0のところは符号
ビットが使用される)。組み合わされたワードはレジス
タRAに記憶される。
条件コード:
LT、EQ、GT、及びL Gがセットされ、LLがO
にセットされる。
にセットされる。
MQ使使用代数的即値右進り(SRAIQ R8,RA
、、5H) 0 6 11 1.6 2]、 3] レジスタR8の内容は(32−N)ビットだけ左に回転
される(NはS Hで指定される桁送り星である)。N
個の0の後に(32−N)個の]が続くマスクが生成さ
れる。回転されたワードはレジスタMQに記憶される。
、、5H) 0 6 11 1.6 2]、 3] レジスタR8の内容は(32−N)ビットだけ左に回転
される(NはS Hで指定される桁送り星である)。N
個の0の後に(32−N)個の]が続くマスクが生成さ
れる。回転されたワードはレジスタMQに記憶される。
回転されたワードは生成されたマスクの制御の下でレジ
スタR8の32個の符号ビットから成るワードと絹み合
わされる(マスクピッ1〜が0のところは符号ビットが
使用される)。組み合わされたワードはレジスタRAに
記憶される。
スタR8の32個の符号ビットから成るワードと絹み合
わされる(マスクピッ1〜が0のところは符号ビットが
使用される)。組み合わされたワードはレジスタRAに
記憶される。
条件コード:
T、T、EQ、GT、及びLGがセラ1〜され、LLが
Oにセラ1〜される。
Oにセラ1〜される。
[回転・記憶命令コ
回転・記憶命令を用いれば、データをソースフィールド
から目的フィールドへ移動できる。これ51− らのフィールドはどんなアドレスのところからでも開始
できる。
から目的フィールドへ移動できる。これ51− らのフィールドはどんなアドレスのところからでも開始
できる。
各命令の結果は生成されたマスクの制御の下で主記憶装
置に置かれる。マスクビットが1である場合、回転され
たワードの関連ビットが主記憶装置に置かれる。マスク
ビットが0である場合は、レジスタMQからの関連ピッ
1−が主記憶装置に置かれる。
置に置かれる。マスクビットが1である場合、回転され
たワードの関連ビットが主記憶装置に置かれる。マスク
ビットが0である場合は、レジスタMQからの関連ピッ
1−が主記憶装置に置かれる。
右回転・更新記憶(R,R8U R8,RA、RB)
0 6 11 16 2] 3]
レジスタR8の内容はNビットだけ右に回転される(N
はレジスタRBのビット27〜3]で指定される量であ
る)。回転されたワードはレジスタMQに記憶される。
はレジスタRBのビット27〜3]で指定される量であ
る)。回転されたワードはレジスタMQに記憶される。
N個のOの後に(32−N)個の1が続くマスクが生成
される。回転されたワ−52= 一ドは生成されたマスクの制御の下でレジスタMQの前
の内容と組み合わせられる。組み合わせされたワードは
RA+4で指定される場所へ記憶される。R,A+4の
値は、さらにレジスタRAに戻される。
される。回転されたワ−52= 一ドは生成されたマスクの制御の下でレジスタMQの前
の内容と組み合わせられる。組み合わせされたワードは
RA+4で指定される場所へ記憶される。R,A+4の
値は、さらにレジスタRAに戻される。
この場合は設定すべき条件コードはない。
右回転・右マーク記憶(RR8RM R8,RA、RB
) 0 6 11 16 21、 3ル ジスタR8の内容はNピッ1へだけ右に回転される(N
はレジスタRBのピッ1−27〜3]で指定される量で
ある)。回転されたワードはレジスタMQに記憶される
。N個のOの後に(32−N)個の1が続くマスクが生
成される。回転されたワードは生成されたマスクの制御
の下でレジスタMQの前の内容と組み合わせられる。組
み合わされたワードは、下記の表に従って生成されるバ
イトマークを有するレジスタRAで指定される場所に記
憶される。
) 0 6 11 16 21、 3ル ジスタR8の内容はNピッ1へだけ右に回転される(N
はレジスタRBのピッ1−27〜3]で指定される量で
ある)。回転されたワードはレジスタMQに記憶される
。N個のOの後に(32−N)個の1が続くマスクが生
成される。回転されたワードは生成されたマスクの制御
の下でレジスタMQの前の内容と組み合わせられる。組
み合わされたワードは、下記の表に従って生成されるバ
イトマークを有するレジスタRAで指定される場所に記
憶される。
且φ〕良−p:3ね −ニダ
00 11」−1
0]、 011.1
10 001、1
1、1 0001
マーク中の0は、主記憶装置中の対応するバイ1−が変
更されないことを意味し、マーク中の1は、組み合わさ
れたワードからの対応するバイトが主記憶装置に置かれ
ることを意味する。
更されないことを意味し、マーク中の1は、組み合わさ
れたワードからの対応するバイトが主記憶装置に置かれ
ることを意味する。
この場合は設定すべき条件コードはない。
右回転・左マーク記憶(RR8LM、R8,RA、RB
) 0 6 1.1. 1.6 2] 3]IノジスタR8
の内容はNピッ1−だけ右に回転される(Nはレジスタ
RBのピッ1へ27〜31で指定される量である)。回
転されたワードはレジスタMQに記憶される。N個のO
の後に(32−N)個の1が続くマスクが生成される。
) 0 6 1.1. 1.6 2] 3]IノジスタR8
の内容はNピッ1−だけ右に回転される(Nはレジスタ
RBのピッ1へ27〜31で指定される量である)。回
転されたワードはレジスタMQに記憶される。N個のO
の後に(32−N)個の1が続くマスクが生成される。
回転されたワードは生成されたマスクの制御の下でレジ
スタMQの前の内容と組み合わされる。組み合わされた
ワードは、下記の表に従って生成されるバイトマークを
有するレジスタRAで指定される場所に記憶される。
スタMQの前の内容と組み合わされる。組み合わされた
ワードは、下記の表に従って生成されるバイトマークを
有するレジスタRAで指定される場所に記憶される。
R−A (30: 3 ]、 ) マー久00 100
0 0 ]−1100 ]、 0 1 ]、 10 11 11、11 55− マーク中のOは、主記憶装置中の対応するパイ1〜が変
更されないことを意味し、マーク中の1は、組み合わさ
れたワードからの対応するバイトが主記憶装置に置かれ
ることを意味する。
0 0 ]−1100 ]、 0 1 ]、 10 11 11、11 55− マーク中のOは、主記憶装置中の対応するパイ1〜が変
更されないことを意味し、マーク中の1は、組み合わさ
れたワードからの対応するバイトが主記憶装置に置かれ
ることを意味する。
この場合は設定すべき条件コードはない。
左回転・更新記憶(RLSU R8,RA、RB)0
6 11 1.6 21 3ル ジスタR8の内容はNビットだ番プ左に回転される(N
はレジスタRBのピッ]−27〜3]−で指定される量
である)。回転されたワードはレジスタMQに記憶され
る。(32−N)個の1の後にN個のOが続くマスクが
生成される。回転されたワードは生成されたマスクの制
御の下でレジスタMQの前の内容と組み合わされる。組
み合わされたワードはRA−4で指定される場所に記憶
される。RA中のアドレスは4だけ減分されてレジス−
57−^^− 56− タRAに戻される。
6 11 1.6 21 3ル ジスタR8の内容はNビットだ番プ左に回転される(N
はレジスタRBのピッ]−27〜3]−で指定される量
である)。回転されたワードはレジスタMQに記憶され
る。(32−N)個の1の後にN個のOが続くマスクが
生成される。回転されたワードは生成されたマスクの制
御の下でレジスタMQの前の内容と組み合わされる。組
み合わされたワードはRA−4で指定される場所に記憶
される。RA中のアドレスは4だけ減分されてレジス−
57−^^− 56− タRAに戻される。
この場合は設定すべき条件コードはない。
左回転・右マーク記憶(RLSRM R8,RA、RB
) 0 6 11、 16 2]、 3] レジスタR8の内容はNピッ1へだけ左に回転される(
NはレジスタR,Bのビット27〜3]で指定される量
である)。(32−N)個の1の後にN個のOが続くマ
スクが生成される。回転されたワードは生成されたマス
クの制御の下でレジスタMQの前の内容と絹み合わせら
れる。組み合わせられたワードは、下記の表に従って生
成されるバイトマークを有するレジスタRAで指定され
る場所に記憶される。
) 0 6 11、 16 2]、 3] レジスタR8の内容はNピッ1へだけ左に回転される(
NはレジスタR,Bのビット27〜3]で指定される量
である)。(32−N)個の1の後にN個のOが続くマ
スクが生成される。回転されたワードは生成されたマス
クの制御の下でレジスタMQの前の内容と絹み合わせら
れる。組み合わせられたワードは、下記の表に従って生
成されるバイトマークを有するレジスタRAで指定され
る場所に記憶される。
=58−
R−A(30:31 マーク
00 11.11
01、 01.11
1、 OO011
110001
マーク中のOは、主記憶装置中の対応するバイトが変更
されないことを意味し、マーク中の1は組み合わされた
ワードからの対応するバイトが主記憶装置に置かれるこ
とを意味する。
されないことを意味し、マーク中の1は組み合わされた
ワードからの対応するバイトが主記憶装置に置かれるこ
とを意味する。
この場合は設定すべき条件コードはない。
左回転・左マーク記憶(RLSLM R8,RA、RB
) レジスタR8の内容はNビットだけ左に回転される(N
はレジスタRBのビット27〜31で指定される量であ
る)。回転されたワードはレジスタMQに記憶される。
) レジスタR8の内容はNビットだけ左に回転される(N
はレジスタRBのビット27〜31で指定される量であ
る)。回転されたワードはレジスタMQに記憶される。
(32−N)個の1の後にN個のOが続くマスクが生成
される。回転されたワードは生成されたマスクの制御の
下でレジスタMQの前の内容と組み合わせられる。組み
合わせられたワードは、下記の表に従って生成されるバ
イトマークを有するレジスタRAで指定される場所に記
憶される。
される。回転されたワードは生成されたマスクの制御の
下でレジスタMQの前の内容と組み合わせられる。組み
合わせられたワードは、下記の表に従って生成されるバ
イトマークを有するレジスタRAで指定される場所に記
憶される。
RA(30:3]) マー−り−
001、OOO
o 1 1100
10 1、1.10
11 ]−]、 11
マーク中のOは、主記憶装置中の対応するバイトが変更
されないことを意味し、マーク中の1は、組み合わされ
たワードからの対応するバイトが主59− 記憶装置に置かれることを意味する。
されないことを意味し、マーク中の1は、組み合わされ
たワードからの対応するバイトが主59− 記憶装置に置かれることを意味する。
この場合は設定すべき条件コードはない。
以上に説明した命令は全て特別なものであり、データ・
フィールドにせよアドレス・フィールドにせよ全ての命
令フィールドは厳密に指定されなければならない。コン
パイラまたはプログラマがこれらの基本命令を適切に使
用するには、システムアーキテクチャに関する詳細な知
識が必要である。もちろん、これはどんな命令セットに
ついてもいえることであるので、当業者には本発明を容
易に理解することができるであろう。
フィールドにせよアドレス・フィールドにせよ全ての命
令フィールドは厳密に指定されなければならない。コン
パイラまたはプログラマがこれらの基本命令を適切に使
用するには、システムアーキテクチャに関する詳細な知
識が必要である。もちろん、これはどんな命令セットに
ついてもいえることであるので、当業者には本発明を容
易に理解することができるであろう。
マスク・回転命令の用途及び利点
PRISMシステムの前記命令セット(以下ではPRI
SM命令ともいう)は、レジスタの内容を指定された量
だけ回転し、マスクの制御の下で別のソースのビットと
回転されたワードとを組み合わせて、その結果を目的の
場所へ挿入する。あるいは、回転された(ただし変更は
されない)ワードを特別のレジスタに記憶し、それを、
次に実行すべきマスク・回転命令の結果と組み合わすこ
60− ともできる。共通の計算タスクにおいて、これらの命令
は広範囲に適用できる。以下では、PRISM命令シス
テム/370命令を例にとって、マスク・回転命令があ
れば計算タスクがいかに簡単でしかも短くなるかという
ことを対比的に説明する。マスク・回転命令はかなり複
雑な機能を遂行するということを強調しておく;マスク
・回転命令は現在の技術水準における回路を用いても単
一マシンサイクルで実現できるという意味においてパ基
本的”である。
SM命令ともいう)は、レジスタの内容を指定された量
だけ回転し、マスクの制御の下で別のソースのビットと
回転されたワードとを組み合わせて、その結果を目的の
場所へ挿入する。あるいは、回転された(ただし変更は
されない)ワードを特別のレジスタに記憶し、それを、
次に実行すべきマスク・回転命令の結果と組み合わすこ
60− ともできる。共通の計算タスクにおいて、これらの命令
は広範囲に適用できる。以下では、PRISM命令シス
テム/370命令を例にとって、マスク・回転命令があ
れば計算タスクがいかに簡単でしかも短くなるかという
ことを対比的に説明する。マスク・回転命令はかなり複
雑な機能を遂行するということを強調しておく;マスク
・回転命令は現在の技術水準における回路を用いても単
一マシンサイクルで実現できるという意味においてパ基
本的”である。
よく知られたタスクに、レジスタ内のフィールドを分離
し、それを適切に境界合わせし、さらに計算を行なうと
いうものがある。たとえば、浮動小数計算をシミュレー
トする場合、ワードのビット1〜7(指標部)を分離し
、それを正規他桁送り量として用いるためにレジスタの
右端から2ビツトの位置に置かねばならない。PRIS
M命令ならば、これは以下のように達成される。
し、それを適切に境界合わせし、さらに計算を行なうと
いうものがある。たとえば、浮動小数計算をシミュレー
トする場合、ワードのビット1〜7(指標部)を分離し
、それを正規他桁送り量として用いるためにレジスタの
右端から2ビツトの位置に置かねばならない。PRIS
M命令ならば、これは以下のように達成される。
RINM P、X、10、’0OOOOIFC’この命
令はXの内容を10ビツトだけ左へ回転し、それとマス
ク’0OOOOIFC’との論理積(AND)をとり、
その結果をレジスタPに記憶する(必要ならばPとXは
同じレジスタでもよい)。これをシステム/370命令
で達成しようとすると、以下のようになる。
令はXの内容を10ビツトだけ左へ回転し、それとマス
ク’0OOOOIFC’との論理積(AND)をとり、
その結果をレジスタPに記憶する(必要ならばPとXは
同じレジスタでもよい)。これをシステム/370命令
で達成しようとすると、以下のようになる。
5LLX、1 左側の不要ビットを除去SRL X、2
5 右側の不要ビットを除去ST、LX、2 指標部を
右端から2ビツトの位置に置く。
5 右側の不要ビットを除去ST、LX、2 指標部を
右端から2ビツトの位置に置く。
この場合、Xの内容を壊すことなく結果を別のレジスタ
へ記憶するときは、このシーケンスにさらにもう1つ命
令が必要である。
へ記憶するときは、このシーケンスにさらにもう1つ命
令が必要である。
次にこれと逆の問題、すなわち、成るレジスタに成るフ
ィールドを挿入する場合を考えてみよう。
ィールドを挿入する場合を考えてみよう。
例として、レジスタXのビット23〜29をレジスタR
のビット1−〜7へ、レジスタRの他のビットを壊すこ
となく、コピーすることを考える。PRISM命令なら
ば、これは以下のように達成される。
のビット1−〜7へ、レジスタRの他のビットを壊すこ
となく、コピーすることを考える。PRISM命令なら
ば、これは以下のように達成される。
RIMI R,X、22、 ’7FOOOOOO’Xこ
の命令はレジスタXの内容を左に22ビツトだけ回転し
、回転されたワードのうち、マスクビットが1のところ
のビットを全てレジスタRヘコピーする。これをシステ
ム/370の命令又は他の機械で達成しようとすると以
下のようになる。
の命令はレジスタXの内容を左に22ビツトだけ回転し
、回転されたワードのうち、マスクビットが1のところ
のビットを全てレジスタRヘコピーする。これをシステ
ム/370の命令又は他の機械で達成しようとすると以
下のようになる。
NX、=X’000001FC’
保管すべきビットの分離
N R1=X’8OFFFFFF’
置換されるゼロビット
SLL X、22
ワードの整列
ORR,X
このシーケンスはレジスタXの内容を破壊してしまうが
、PRISM命令の場合、レジスタRは元のままである
。
、PRISM命令の場合、レジスタRは元のままである
。
複数のレジスタにおよぶ長いフィールドを桁送りする場
合、PRISM命令ならばこれが簡単にできる。ここで
は、レジスタ2.3.4、及び5−63= から成る128ビツトのフィールドを右へ7ビツトだけ
桁送りする場合を考える。PRISM命令ならば、これ
は以下のように達成できる。
合、PRISM命令ならばこれが簡単にできる。ここで
は、レジスタ2.3.4、及び5−63= から成る128ビツトのフィールドを右へ7ビツトだけ
桁送りする場合を考える。PRISM命令ならば、これ
は以下のように達成できる。
5QIQ 2.2.7
」二位ワードの桁送り。食み出たビットはMQへ。
LSRIQ 3.3.7
次の位のワードの桁送り。食み出たビットはMQから得
る。
る。
LSRIQ 4.4.7
LSRIQ 5.5.7
初めの5RIQ命令はレジスタ2を7ビツトだけ右へ桁
送りして、回転されたワードをレジスタMQに保管し、
回転されたワードの下位25ビツトをレジスタ2に記憶
し、上位7ビツトにOを埋める。残りのそれぞれの命令
は、次のレジスタを7ビツ1−だけ回転させる。レジス
タMQの上位7ビツト及び回転されたワードの下位25
ビツトを当該レジスタへ記憶し、回転されたワードをレ
ジスタMQへ記憶する。
送りして、回転されたワードをレジスタMQに保管し、
回転されたワードの下位25ビツトをレジスタ2に記憶
し、上位7ビツトにOを埋める。残りのそれぞれの命令
は、次のレジスタを7ビツ1−だけ回転させる。レジス
タMQの上位7ビツト及び回転されたワードの下位25
ビツトを当該レジスタへ記憶し、回転されたワードをレ
ジスタMQへ記憶する。
IBMシステム/370においてレジスタの桁−間一
送り(倍)は非常に有益なものであるが、レジスタ3か
らレジスタ4へ移動するビットを獲得する場合は、余分
に3つの命令が必要である。
らレジスタ4へ移動するビットを獲得する場合は、余分
に3つの命令が必要である。
OR0,3
レジスタ3からレジスタ4へ移動するビットを獲得する
。
。
SLL 0125
SRLL 2.7
レジスタ2及びレジスタ3を共に7ビツトだけ桁送りす
る。
る。
5RLL 4.7
レジスタ4及びレジスタ5を共に7ビツトだけ桁送りす
る。
る。
OR4,0
レジスタOの右端4ビツトをレジスタ4へ移動する。
比較例の最後として、レジスタRAの内容で示されるバ
イトのところから始まるフィールドを、レジスタR,B
で示されるバイトのところから始まるフィールドへ移動
する際、レジスタRCの下位5ビツトで指定されるビッ
ト数だけ右に桁送りする場合を考える。この場合におい
て、レジスタR■〕は、移動すべきフィールドを越えた
ところの最初のバイトのアドレスを含むものとする。P
R43M命令の場合は以下のようになる。
イトのところから始まるフィールドを、レジスタR,B
で示されるバイトのところから始まるフィールドへ移動
する際、レジスタRCの下位5ビツトで指定されるビッ
ト数だけ右に桁送りする場合を考える。この場合におい
て、レジスタR■〕は、移動すべきフィールドを越えた
ところの最初のバイトのアドレスを含むものとする。P
R43M命令の場合は以下のようになる。
A、T RA、、RA、−4
アドレス指定の更新形式を用いるため
のセットアツプ
AT RB、RB、−4
アドレス指定の更新形式を用いるため
のセットアツプ
AI RD、RD、−4
アドレス指定の更新形式を用いるため
のセットアツプ
LI RT、0
レジスタMQのセットアツプ
MTMQ MT
■、0OPLURA、RA、4
有効アドレス)RA、メモリワードk
RTへ
R,R8U RT、RB、RC
桁送り、MQとの組合せ、記憶、イン
デックス更新
CRA、RD
BL LOOP
主ループでLU全命令、レジスタRAの内容+4として
有効アドレスを計算する。有効アドレスはRAに記憶さ
れ、RAでアドレス指定されるメモリワードがRTに記
憶される。RR8U命令は、このジョブの中の困難な部
分を遂行する。レジスタRTの内容はレジスタRCで指
定されるビット数だけ右に回転され、有効アト1ノスは
RAの内容に4を加えることによって計算される。レジ
スタRAの(新しい)有効アドレスのところに記憶され
るべきワードは、MQの」1位nビット及び回転された
ワードの下位(32−n)ビットで構成される。nは回
転されたワードの右への桁送りビット数である。最後に
、回転されたワードがMQに記憶される。最後の2つの
命令は単にループを閉−67〜 しるだめのものである。
有効アドレスを計算する。有効アドレスはRAに記憶さ
れ、RAでアドレス指定されるメモリワードがRTに記
憶される。RR8U命令は、このジョブの中の困難な部
分を遂行する。レジスタRTの内容はレジスタRCで指
定されるビット数だけ右に回転され、有効アト1ノスは
RAの内容に4を加えることによって計算される。レジ
スタRAの(新しい)有効アドレスのところに記憶され
るべきワードは、MQの」1位nビット及び回転された
ワードの下位(32−n)ビットで構成される。nは回
転されたワードの右への桁送りビット数である。最後に
、回転されたワードがMQに記憶される。最後の2つの
命令は単にループを閉−67〜 しるだめのものである。
以1−を18Mシステム/370の命令で達成しようと
すけば1次のようになる。
すけば1次のようになる。
LA RE、0
偶数レジスタの幾つかをゼロに初期設
定する。
■、 A RA、+i 、4
B X、 L E命令のためのセットアツプ。
T、OOP L RE+1、O(RA)メモリワードを
ロードする。
ロードする。
T、RRゴ、RE+1
メモリワードのコピーを保管する。
I、R8RE、O(RC)
ワードの桁送り、偶数1ノジスタの上位ビットの桁送り
。
。
ST RE+1、O(RB)
桁送りされたワードの記憶
LRRE、RT
次のサイクルのための上位ビットをR
Eへ移動する
68−
ARRB、 RA+1
次のワードを記憶すべきアドレスを更
新する。
BXLE LOOP、RA、RC
IBMシステム/370の内部ループのシーケンスは7
命令要するが、PRISM命令のシーケンスならば、こ
のシーケンスは4命令でよい。しかも、18Mシステム
/370の場合、B I T、 Eでループを閉じるた
めに偶数レジスタにはRAフィールドが必要であり(そ
うでないときはシーケンスはさらに2つの命令が必要で
あろう)、IBMシステム/37oの64ピツ1〜・シ
フタを利用するには、さらにREも偶数であることが必
要である。
命令要するが、PRISM命令のシーケンスならば、こ
のシーケンスは4命令でよい。しかも、18Mシステム
/370の場合、B I T、 Eでループを閉じるた
めに偶数レジスタにはRAフィールドが必要であり(そ
うでないときはシーケンスはさらに2つの命令が必要で
あろう)、IBMシステム/37oの64ピツ1〜・シ
フタを利用するには、さらにREも偶数であることが必
要である。
単一のサイクルで実行できるマスク・回転命令の威力と
融通性は以上の比較により明らかである。
融通性は以上の比較により明らかである。
これらは、最近の回路技術を用いて単一のマシンサイク
ルで実現できるという意味からいえば、″基本的″であ
るが、その機能的な能力は非常に強力である。
ルで実現できるという意味からいえば、″基本的″であ
るが、その機能的な能力は非常に強力である。
χ頂) ”、=ドウエη
代表的なPRISMシステムの構成を第1図に示す。シ
ステムの内部母線10には、CPU12、複数の母線ユ
ニット1−4.16(4動車数点ユニツ1へなど)、命
令キャッシュ機構]−8、データ・キャッシュ機構20
、及びシステム母線ユニット22が接続されている。キ
ャッシュ機構18.20はいずれもキャッシュ、ディレ
クトリ及び変換索引緩衝機構(TLB)を含んでいる。
ステムの内部母線10には、CPU12、複数の母線ユ
ニット1−4.16(4動車数点ユニツ1へなど)、命
令キャッシュ機構]−8、データ・キャッシュ機構20
、及びシステム母線ユニット22が接続されている。キ
ャッシュ機構18.20はいずれもキャッシュ、ディレ
クトリ及び変換索引緩衝機構(TLB)を含んでいる。
システム母線ユニッ1へ22は主として■/○オペレー
ションを制御するもので、主記憶装置24にも接続され
ている主記憶装置24と命令キャッシュ機構18及びデ
ータ・キャッシュ機構2oとの間では命令及びデータが
別々にやりとりされる。CPUI2は命令母線26を介
して命令キャッシュ機構18から命令を取出す。
ションを制御するもので、主記憶装置24にも接続され
ている主記憶装置24と命令キャッシュ機構18及びデ
ータ・キャッシュ機構2oとの間では命令及びデータが
別々にやりとりされる。CPUI2は命令母線26を介
して命令キャッシュ機構18から命令を取出す。
第2A図及び第2B図はCP U 12の内部構成を示
したものである。主要構成要素の1つである汎用レジス
タ・ファイル30は32個の汎用レジスタを含んでいる
。汎用レジスタ・ファイル30の2つの入力RA及びR
,T並びに3つの出力RA、RB及びR8はいずれも命
令によって指定されるオペランドを示す。汎用レジスタ
・ファイル30のアドレス指定は、命令レジスタ32に
ロードされた命令の各種レジスタ・フィールドによって
なされる。命令レジスタ32のボックス内及びその下側
に示されている記号の意味については表2のところを参
照されたい。
したものである。主要構成要素の1つである汎用レジス
タ・ファイル30は32個の汎用レジスタを含んでいる
。汎用レジスタ・ファイル30の2つの入力RA及びR
,T並びに3つの出力RA、RB及びR8はいずれも命
令によって指定されるオペランドを示す。汎用レジスタ
・ファイル30のアドレス指定は、命令レジスタ32に
ロードされた命令の各種レジスタ・フィールドによって
なされる。命令レジスタ32のボックス内及びその下側
に示されている記号の意味については表2のところを参
照されたい。
命令は命令アドレスレジスタ(IAR’)34により命
令キャッシュ機構18から取出される。■AR34は極
く普通のもので、プログラムの開始時に初期設定され、
プログラムの進行につれて順次に増分されたり、分岐ア
ドレスをロードされたりする。表2に示したように、命
令は32ビツト(4バイト)であるから、IAR34の
増分単位は4である。ボックス36は次命令アドレスを
含む。
令キャッシュ機構18から取出される。■AR34は極
く普通のもので、プログラムの開始時に初期設定され、
プログラムの進行につれて順次に増分されたり、分岐ア
ドレスをロードされたりする。表2に示したように、命
令は32ビツト(4バイト)であるから、IAR34の
増分単位は4である。ボックス36は次命令アドレスを
含む。
汎用レジスタ・ファイル30、命令レジスタ32及びI
AR34の選択された内容はマルチプレ71− フサ38及び40を通ってALU42へ供給される。マ
ルチプレクサ38は命令アドレスまたは指定されたレジ
スタRAの内容を通し、マルチプレクサ40は即値オペ
ランドD又は指定されたレジスタRBの内容を通す。A
L U 4.2の演算結果は出力バッファ・レジスタ
44にロードされたり、IAR34、条件レジスタを含
む条件論理50、またはデータ・キャッシュ機構20ヘ
アドレスを送るためのアドレスゲート54へ直接供給さ
れたりする。
AR34の選択された内容はマルチプレ71− フサ38及び40を通ってALU42へ供給される。マ
ルチプレクサ38は命令アドレスまたは指定されたレジ
スタRAの内容を通し、マルチプレクサ40は即値オペ
ランドD又は指定されたレジスタRBの内容を通す。A
L U 4.2の演算結果は出力バッファ・レジスタ
44にロードされたり、IAR34、条件レジスタを含
む条件論理50、またはデータ・キャッシュ機構20ヘ
アドレスを送るためのアドレスゲート54へ直接供給さ
れたりする。
A T、 U 4.2の演算結果を汎用レジスタ・ファ
イル30に書戻す場合は、命令がレジスタRA及びRT
のいずれを指定しているかに応じて、出力バッファ・レ
ジスタ44の内容がマルチプレクサ46または48を通
って汎用レジスタ・ファイル30へ転送される。
イル30に書戻す場合は、命令がレジスタRA及びRT
のいずれを指定しているかに応じて、出力バッファ・レ
ジスタ44の内容がマルチプレクサ46または48を通
って汎用レジスタ・ファイル30へ転送される。
分岐/トラップ検査論理52は、命令のBIフィールド
、条件レジスタ及び指定されたレジスタRAの内容に応
じて、分岐又はトラップを行なうべきか否かを検査する
。前述のように、変更前の” 7(−+−へ 72− 条件レジスタの内容が特定の汎用レジスタに保管されて
いるときに、その中の特定のビット(例えばEQビット
)の値に応じて分岐するか否かを決めるような場合にこ
の分岐/トラップ検査論理52が使用される。その場合
、条件レジスタの内容を保管している汎用レジスタは分
岐命令中のRAフィールドにより指定され、分岐条件と
なるビットは5ビツトのBIフィールドにより指定され
る。
、条件レジスタ及び指定されたレジスタRAの内容に応
じて、分岐又はトラップを行なうべきか否かを検査する
。前述のように、変更前の” 7(−+−へ 72− 条件レジスタの内容が特定の汎用レジスタに保管されて
いるときに、その中の特定のビット(例えばEQビット
)の値に応じて分岐するか否かを決めるような場合にこ
の分岐/トラップ検査論理52が使用される。その場合
、条件レジスタの内容を保管している汎用レジスタは分
岐命令中のRAフィールドにより指定され、分岐条件と
なるビットは5ビツトのBIフィールドにより指定され
る。
内部レジスタR2及び拡張用レジスタMQを含む本発明
に係るマスク・回転論理56は、要約すれば、指定され
たレジスタの内容を指定された量(最高31ビツト)だ
け回転(循環術送り)するものである。回転された内容
はマスクの制御のもとに、他のレジスタの内容又は全ゼ
ロ等の特別のワードと組合されたり、32ビツト長のM
Qレジシフに保持されている前の回転結果と組合された
りする。これは通常の桁送りだけでなく、例えば10進
数のパック及びアンパック、浮動小数点演算の場合の事
前術送り及び正規化などを行なうときに使用できる。マ
スク回転論理56の出力はマフ4− ルチプレクサ46 (R2)又は4.8(MQ)を通っ
て汎用レジスタ・ファイル30へ転送されるか、あるい
は出力ゲート55を通ってデータ・キャッシュ機構20
へ転送される。
に係るマスク・回転論理56は、要約すれば、指定され
たレジスタの内容を指定された量(最高31ビツト)だ
け回転(循環術送り)するものである。回転された内容
はマスクの制御のもとに、他のレジスタの内容又は全ゼ
ロ等の特別のワードと組合されたり、32ビツト長のM
Qレジシフに保持されている前の回転結果と組合された
りする。これは通常の桁送りだけでなく、例えば10進
数のパック及びアンパック、浮動小数点演算の場合の事
前術送り及び正規化などを行なうときに使用できる。マ
スク回転論理56の出力はマフ4− ルチプレクサ46 (R2)又は4.8(MQ)を通っ
て汎用レジスタ・ファイル30へ転送されるか、あるい
は出力ゲート55を通ってデータ・キャッシュ機構20
へ転送される。
MQレジシフはマスク・回転操作で使用される他に1乗
算及び除算の如き算術演算において32ビツトよりも長
いデータが生成された時にあふれ分を記憶するのにも使
用される。
算及び除算の如き算術演算において32ビツトよりも長
いデータが生成された時にあふれ分を記憶するのにも使
用される。
データ・キャッシュ機構20から取出されたデータは、
入力ゲート58及びマルチプレクサ48を通って汎用レ
ジスタ・ファイル30へ転送される。
入力ゲート58及びマルチプレクサ48を通って汎用レ
ジスタ・ファイル30へ転送される。
次に、第3図を説明する前に、このハードウェア機構全
体の構成及びオペレーションについて概説する。
体の構成及びオペレーションについて概説する。
PRISMアーキテクチャにおいては、マスク・回転論
理56はA L U 42と並列に走行する。ALU4
1が汎用レジスタ・ファイル30の最初の2つのオペラ
ンドを操作する間、マスク・回転論理56は第3のオペ
ランドを操作する。その出力をA L U 4.2で計
算された主記憶装置アドレスへ送ったり、或いは汎用レ
ジスタ・ファイル30へ送り返すこともできる。
理56はA L U 42と並列に走行する。ALU4
1が汎用レジスタ・ファイル30の最初の2つのオペラ
ンドを操作する間、マスク・回転論理56は第3のオペ
ランドを操作する。その出力をA L U 4.2で計
算された主記憶装置アドレスへ送ったり、或いは汎用レ
ジスタ・ファイル30へ送り返すこともできる。
マスク・回転論理56の主要部は回転部60(第3図、
後出)である。回転部60は2ないし5の論理レベルを
用いて32ビツトの入力オペランドを任意のビット位置
数だけ回転できる。回転部60の動作と並列して、その
出力のフィールドをブランクにする為にマスクが生成さ
れる。桁送り命令の場合は、このマスクを用いて、オペ
ランドフィールド外からOを送り込む。回転命令の場合
は、その命令で特定のマスクが直接に指定される。マス
クの生成も2乃至5の論理レベルで遂行できる。
後出)である。回転部60は2ないし5の論理レベルを
用いて32ビツトの入力オペランドを任意のビット位置
数だけ回転できる。回転部60の動作と並列して、その
出力のフィールドをブランクにする為にマスクが生成さ
れる。桁送り命令の場合は、このマスクを用いて、オペ
ランドフィールド外からOを送り込む。回転命令の場合
は、その命令で特定のマスクが直接に指定される。マス
クの生成も2乃至5の論理レベルで遂行できる。
又、回転部60の動作と並行して、4つの入力のうちの
1つから挿入オペランドが生成される。
1つから挿入オペランドが生成される。
4つの入力とは、(1)汎用レジスタ・ファイル30か
らの第1オペランド、(2)レジスタMQの内容、(3
)汎用レジスタ・ファイル30の第3オペランドの符号
ビットから成るワード、(4)全ゼロのワ75− 一ド、である。この操作は1又は2′の論理レベルの多
重化で達成される。
らの第1オペランド、(2)レジスタMQの内容、(3
)汎用レジスタ・ファイル30の第3オペランドの符号
ビットから成るワード、(4)全ゼロのワ75− 一ド、である。この操作は1又は2′の論理レベルの多
重化で達成される。
最後の段階は挿入/組合せ段階である。マスクが1のと
ころのビット位置には回転されたワードの対応ビットが
使用され、マスクが0のところのビット位置には挿入さ
れたワードのビットが使用される。
ころのビット位置には回転されたワードの対応ビットが
使用され、マスクが0のところのビット位置には挿入さ
れたワードのビットが使用される。
マスク・回転論理56全体のハードウェアの設計要件は
、マスク・回転論理56の各種構成要素の主要な経路を
ALU42のものと等しくする事である。従って、これ
までに説明した命令は、他のPRISM命令の場合と全
く同様に、単一マシンサイクルで実行できる。
、マスク・回転論理56の各種構成要素の主要な経路を
ALU42のものと等しくする事である。従って、これ
までに説明した命令は、他のPRISM命令の場合と全
く同様に、単一マシンサイクルで実行できる。
マスク・回転論理56の詳細を第3図に示す。
汎用レジスタファイル30からマスク・回転論理56へ
の主な入力はRA、RB、及びR8である。
の主な入力はRA、RB、及びR8である。
この他には、特定のオペレーションのために、命令レジ
スタ32のS Hフィールド又はRBフィールド(ビッ
ト16〜20)がある。桁送り量は命令レジスタ32の
SHフィールドまたはRBフイ76− 一ルドから得られる。各構成要素への特定の入力を選択
するマルチプレクサ(MUX)への各種入力は命令デコ
ーダ(図示せず)で決定される。命令デコーダは各構成
要素で使用されるオペランドをそれぞれ選択する。各種
オペレーションでこうした構成要素へゲートされるべき
データの特定のセグメントは表2のところで説明した。
スタ32のS Hフィールド又はRBフィールド(ビッ
ト16〜20)がある。桁送り量は命令レジスタ32の
SHフィールドまたはRBフイ76− 一ルドから得られる。各構成要素への特定の入力を選択
するマルチプレクサ(MUX)への各種入力は命令デコ
ーダ(図示せず)で決定される。命令デコーダは各構成
要素で使用されるオペランドをそれぞれ選択する。各種
オペレーションでこうした構成要素へゲートされるべき
データの特定のセグメントは表2のところで説明した。
命令デコーダがOPコード・フィールドを監視し特別な
場合はさらに拡張OPコード(E O)フィールドも監
視することは当業者には容易に理解されるであろう。マ
スク・回転命令の多くはこのEOフィールドを含む(他
のpRISM命令もE○フィールドを含むものは多い)
。
場合はさらに拡張OPコード(E O)フィールドも監
視することは当業者には容易に理解されるであろう。マ
スク・回転命令の多くはこのEOフィールドを含む(他
のpRISM命令もE○フィールドを含むものは多い)
。
マスク・回転論理56の主構成要素は4つある。
すなわち、回転部60と、マスク生成ユニット62と、
挿入/組合せオペレーションの目的オペランドを取り出
すためのマルチプレクサ64と、挿入/組合せ部66で
ある。挿入/組合せ部66はマスク生成ユニット62で
生成されたマスクの制御の下で、回転部60及びマルチ
プレクサ64から得られるオペランドを組み合わせる。
挿入/組合せオペレーションの目的オペランドを取り出
すためのマルチプレクサ64と、挿入/組合せ部66で
ある。挿入/組合せ部66はマスク生成ユニット62で
生成されたマスクの制御の下で、回転部60及びマルチ
プレクサ64から得られるオペランドを組み合わせる。
前にも説明したように回転部60は循環術送りを遂行す
る(ビット位置Oからシフトアラ1−するビットはビッ
ト位置31へ再び挿入される)。回転部60への入力は
2つあり、1つは回転されるべき実際のオペランドであ
り、これはマスク・回転命令については全て汎用レジス
タ・ファイル30のレジスタR8に記憶されている。回
転部60へのもう1つの入力は桁送り量である。したが
ってこの入力が、所望のビット境界合せを達成するのに
必要なオペランドの桁送りビット数を示す。
る(ビット位置Oからシフトアラ1−するビットはビッ
ト位置31へ再び挿入される)。回転部60への入力は
2つあり、1つは回転されるべき実際のオペランドであ
り、これはマスク・回転命令については全て汎用レジス
タ・ファイル30のレジスタR8に記憶されている。回
転部60へのもう1つの入力は桁送り量である。したが
ってこの入力が、所望のビット境界合せを達成するのに
必要なオペランドの桁送りビット数を示す。
桁送り量は、即値桁送すオペレーションの場合は命令レ
ジスタ32のSHフィールドに記憶され、そうでないと
きは命令のRBフィールドで指定される汎用レジスタの
ビット27〜31に記憶されている。所与のオペレーシ
ョンにおいて桁送り量を示すこれら2つの領域のどちら
をアクセスするかは、命令デコーダ及びマルチプレクサ
63で決定される。マルチプレクサ63は命令デコーダ
からの適切な信号で付勢されて、ケーブル61を、介し
て所望の桁送り量を回転部60ヘゲートする。
ジスタ32のSHフィールドに記憶され、そうでないと
きは命令のRBフィールドで指定される汎用レジスタの
ビット27〜31に記憶されている。所与のオペレーシ
ョンにおいて桁送り量を示すこれら2つの領域のどちら
をアクセスするかは、命令デコーダ及びマルチプレクサ
63で決定される。マルチプレクサ63は命令デコーダ
からの適切な信号で付勢されて、ケーブル61を、介し
て所望の桁送り量を回転部60ヘゲートする。
第3図かられかるように、回転部60の出力はレジスタ
MQに記憶することもできるし、挿入/組合せ部66へ
直接送ることもできる。挿入/組合せ部66においては
1回転部60の出力がマスクの制御の下で、4つのオペ
ランドのうち、マルチプレクサ64から挿入/組合せ部
へ入力される1つのオペランドと組み合わされるか、ま
たはそれに挿入される。前にも説明したように、回転部
60の出力をレジスタMQまたは挿入/組合せ部66の
いずれに送るかは、OPマスク・回転命令のそれぞれの
特定の定義(コード)を検査することによって容易に決
定できる。
MQに記憶することもできるし、挿入/組合せ部66へ
直接送ることもできる。挿入/組合せ部66においては
1回転部60の出力がマスクの制御の下で、4つのオペ
ランドのうち、マルチプレクサ64から挿入/組合せ部
へ入力される1つのオペランドと組み合わされるか、ま
たはそれに挿入される。前にも説明したように、回転部
60の出力をレジスタMQまたは挿入/組合せ部66の
いずれに送るかは、OPマスク・回転命令のそれぞれの
特定の定義(コード)を検査することによって容易に決
定できる。
次にマスク生成ユニット62について説明する。
マスク生成ユニット62は主に左端定義部と右端定義部
から成る。こうした一般的な回路構成により、大きく分
けて2つの異なるタイプのマスクを構成できる。1つの
タイプはマスク使用回転命令で使用されるも”ので、そ
れは次のような3つの部分から成る。すなわち、複数個
の1を両側に有す79− る複数個のOlまたは複数個のOを両側に有する複数個
の1である。このタイプのマスクは、マスク使用回転命
令に遭遇したときに、命令レジスタ32のビット21〜
31のマスク(M)フィールドで指定される。これらの
ビットの定義及び用途については表2のところで説明し
た。マスク定義ビット(MDB)であるビット21は、
そのマスクが複数個の1を両側に有する複数個のOから
成るのか、または複数個のOを両側に有する複数個の1
から成るのかを示す。Mフィールドの残りの10ビツト
はマスクの中央部の左端及び右端をそれぞれ指定する。
から成る。こうした一般的な回路構成により、大きく分
けて2つの異なるタイプのマスクを構成できる。1つの
タイプはマスク使用回転命令で使用されるも”ので、そ
れは次のような3つの部分から成る。すなわち、複数個
の1を両側に有す79− る複数個のOlまたは複数個のOを両側に有する複数個
の1である。このタイプのマスクは、マスク使用回転命
令に遭遇したときに、命令レジスタ32のビット21〜
31のマスク(M)フィールドで指定される。これらの
ビットの定義及び用途については表2のところで説明し
た。マスク定義ビット(MDB)であるビット21は、
そのマスクが複数個の1を両側に有する複数個のOから
成るのか、または複数個のOを両側に有する複数個の1
から成るのかを示す。Mフィールドの残りの10ビツト
はマスクの中央部の左端及び右端をそれぞれ指定する。
マスク生成ユニット62で生成される第2のタイプのマ
スクは2つの部分から成り、これは桁送り命令と、回転
・記憶命令に使用される。
スクは2つの部分から成り、これは桁送り命令と、回転
・記憶命令に使用される。
第2のタイプのマスクは複数個のOの後に複数個の1が
続くものと、複数個の1の後に複数個の0が続くものが
ある。これらの命令を用いてSHフィールドまたはレジ
スタRBからマスクが指定される。第1のタイプ及び第
2のタイプのマスク−81,−、、。
続くものと、複数個の1の後に複数個の0が続くものが
ある。これらの命令を用いてSHフィールドまたはレジ
スタRBからマスクが指定される。第1のタイプ及び第
2のタイプのマスク−81,−、、。
80−
は挿入/組合せ部66においてはいずれも全く同様にし
て使用される。こうしてマスクが1のところは全て、回
転部60のビット(ソースオペランド)がその出力に挿
入され、マスクがOのところは全て、マルチプレクサ6
4のビット(目的オペランド)がその出力に置かれる。
て使用される。こうしてマスクが1のところは全て、回
転部60のビット(ソースオペランド)がその出力に挿
入され、マスクがOのところは全て、マルチプレクサ6
4のビット(目的オペランド)がその出力に置かれる。
マスク生成オペレーションは他と比べれば直接的である
。実際のマスクの端部の指定は、コンパイラを介するオ
ペレーティング・システムまたはプログラムによって行
なわれる。この指定に関する情報が適切に生成されれば
、それは命令レジスタ32のSHフィールドまたはレジ
スタRBにロードされる。所与の命令においてマスクデ
ータの源はOPコードで決定され、それに応じてマルチ
プロフサ70のラインが適切に付勢される。第1のタイ
プのマスク(3つの部分から成る)の場合は、この情報
は命令レジスタ32のMフィールドから得られ、それが
マスクの左端と右端を指定する。回転・記憶命令で使用
される第2のタイプのマスク(2つの部分から成る)の
場合は、OPコ82− −ドで決まるマルチプレクサ70の1本のラインだけが
付勢される。
。実際のマスクの端部の指定は、コンパイラを介するオ
ペレーティング・システムまたはプログラムによって行
なわれる。この指定に関する情報が適切に生成されれば
、それは命令レジスタ32のSHフィールドまたはレジ
スタRBにロードされる。所与の命令においてマスクデ
ータの源はOPコードで決定され、それに応じてマルチ
プロフサ70のラインが適切に付勢される。第1のタイ
プのマスク(3つの部分から成る)の場合は、この情報
は命令レジスタ32のMフィールドから得られ、それが
マスクの左端と右端を指定する。回転・記憶命令で使用
される第2のタイプのマスク(2つの部分から成る)の
場合は、OPコ82− −ドで決まるマルチプレクサ70の1本のラインだけが
付勢される。
マスク生成ユニツ1−62の左端定義デコーダ72はマ
スクの左端のビット位置を定義するためにマスクフィー
ルドのうちの5ピツl〜(左端定義用)を復号する。復
号された情報は左方マスク生成部74へ送られてそこで
左端の指定されたマスクが生成される。左方マスク生成
部74の出力は32ビツトフイールドである。それはた
とえば、複数のOの後に複数の1が続くストリングであ
って、その左端のビット位置が左端定義デコーダ72で
指定されているものである。
スクの左端のビット位置を定義するためにマスクフィー
ルドのうちの5ピツl〜(左端定義用)を復号する。復
号された情報は左方マスク生成部74へ送られてそこで
左端の指定されたマスクが生成される。左方マスク生成
部74の出力は32ビツトフイールドである。それはた
とえば、複数のOの後に複数の1が続くストリングであ
って、その左端のビット位置が左端定義デコーダ72で
指定されているものである。
右端定義デコーダ76及び右方マスク生成部78もこれ
と全く同様に機能し、右方マスク生成部78は、たとえ
ば、複数の1の後に複数のOが続くストリングであって
、その右端のピッ1へ位置が右端定義デコーダ76で指
定されているもの、を出力する。したがって左方マスク
生成部74及び右方マスク生成部78の出力は第2のタ
イプのマスク(2つの部分から成る)である。左方マス
ク生成部74及び右方マスク生成部78の出力はマスク
合成部80で組み合わせられる。マスク合成部80は3
2ピッl−A、 N D回路程度の簡単なもので、これ
により所望のマスクを生成する。複数のOを両側に有す
る複数の1から複数の1を両側に有する複数の0へ変更
を行なう場合、単にインバータを通過させるだけでよい
ので、これは簡単にできる。しかも、出力を反転させる
必要があるかどうかは命令自身のOPコードで指定され
るので命令デコーダが容易にその決定を下すことができ
る。
と全く同様に機能し、右方マスク生成部78は、たとえ
ば、複数の1の後に複数のOが続くストリングであって
、その右端のピッ1へ位置が右端定義デコーダ76で指
定されているもの、を出力する。したがって左方マスク
生成部74及び右方マスク生成部78の出力は第2のタ
イプのマスク(2つの部分から成る)である。左方マス
ク生成部74及び右方マスク生成部78の出力はマスク
合成部80で組み合わせられる。マスク合成部80は3
2ピッl−A、 N D回路程度の簡単なもので、これ
により所望のマスクを生成する。複数のOを両側に有す
る複数の1から複数の1を両側に有する複数の0へ変更
を行なう場合、単にインバータを通過させるだけでよい
ので、これは簡単にできる。しかも、出力を反転させる
必要があるかどうかは命令自身のOPコードで指定され
るので命令デコーダが容易にその決定を下すことができ
る。
左端定義用の回路または右端定義用の回路のいずれか一
方を活動化し、その出力と全て]または全てOとを組み
合わせるだけで、容易に第2のタイプのマスクが生成で
きる。こうして所望の第2のタイプのマスクがマスク合
成部80(したがってマスク生成ユニット62)から出
力される。
方を活動化し、その出力と全て]または全てOとを組み
合わせるだけで、容易に第2のタイプのマスクが生成で
きる。こうして所望の第2のタイプのマスクがマスク合
成部80(したがってマスク生成ユニット62)から出
力される。
マスク生成ユニット62の各構成要素の機能は当業者に
はよく知られたものである。最終的に完成したマスクの
生成は、回転部60の機能と同様、−83= 2ないし5の論理レベルで達成できることに留意された
い。こうして、回転部60で遂行される機能とマスク生
成ユニット62で遂行される機能とを並列して進行させ
ることができ、その結果、これに係る命令は単一のマシ
ンサイクルで実行できる。
はよく知られたものである。最終的に完成したマスクの
生成は、回転部60の機能と同様、−83= 2ないし5の論理レベルで達成できることに留意された
い。こうして、回転部60で遂行される機能とマスク生
成ユニット62で遂行される機能とを並列して進行させ
ることができ、その結果、これに係る命令は単一のマシ
ンサイクルで実行できる。
次に第3図のマルチプレクサ64について説明する。マ
ルチプレクサ64は図に示すように4つの入力を有する
。命令デコーダに供給されるOPコードによ゛つてこれ
ら4つの入力のうちの1つが選択される。したがって、
回転されたデータをレジスタRAの前の内容に挿入する
ような命令の場合は、マルチプレクサ64の(RA)入
力が活動される。
ルチプレクサ64は図に示すように4つの入力を有する
。命令デコーダに供給されるOPコードによ゛つてこれ
ら4つの入力のうちの1つが選択される。したがって、
回転されたデータをレジスタRAの前の内容に挿入する
ような命令の場合は、マルチプレクサ64の(RA)入
力が活動される。
回転されたデータをレジスタMQの前の内容と組み合わ
せるような命令の場合は、そのための特定の入力が活動
化される。挿入/組合せオペレーションの目的オペラン
ドが複数の1から成るフィールドであるのか複数のOか
ら成るフィールドであるのかを、レジスタRSの状況ビ
ット“O”が−84= 決定する様な命令(代数的術送り等)の場合は、マルチ
プレクサ64のR8O入力が活動化される。
せるような命令の場合は、そのための特定の入力が活動
化される。挿入/組合せオペレーションの目的オペラン
ドが複数の1から成るフィールドであるのか複数のOか
ら成るフィールドであるのかを、レジスタRSの状況ビ
ット“O”が−84= 決定する様な命令(代数的術送り等)の場合は、マルチ
プレクサ64のR8O入力が活動化される。
回転されたワードを全て1のワードと組み合わせるよう
な命令の場合は、全ゼロ入力が活動化される。
な命令の場合は、全ゼロ入力が活動化される。
挿入/組合せ部66は3人力の論理回路である。
これにより、ケーブル82のビット構成からは、マスク
が1のところのビット位置のビットを出力し、ケーブル
84のビット構成からは、マスクがOのところのビット
位置のピッ1−を出力することができる。この機能は2
つの入力(すなわちケーブル82及びケーブル84)を
有する32要素のマルチプレクサで遂行できる。このマ
ルチプレクサにおいては、マスクの制御の下でピッ1〜
に基づいて所望の選択が行なわれる。もちろん別なやり
方でこれを行なうこともできる。
が1のところのビット位置のビットを出力し、ケーブル
84のビット構成からは、マスクがOのところのビット
位置のピッ1−を出力することができる。この機能は2
つの入力(すなわちケーブル82及びケーブル84)を
有する32要素のマルチプレクサで遂行できる。このマ
ルチプレクサにおいては、マスクの制御の下でピッ1〜
に基づいて所望の選択が行なわれる。もちろん別なやり
方でこれを行なうこともできる。
レジスタR2は挿入/組合せ部66の出力を受諾する。
オペレーションの結果は、はとんど、汎用レジスタ・フ
ァイル30のレジスタRAに送り返される。
ァイル30のレジスタRAに送り返される。
第3図に示すマスク・回転論理56はこれまでに説明し
た命令を全て遂行できる。第3図のマスク・回転論理5
6の動作を容易に理解できるよう、以下に3つの基本的
な命令に分類してこれを説明する。
た命令を全て遂行できる。第3図のマスク・回転論理5
6の動作を容易に理解できるよう、以下に3つの基本的
な命令に分類してこれを説明する。
初めに、マスク使用回転命令のうちの1つについて説明
する。マスク使用回転命令の代表的なものは″即値回転
・マスク挿入命令(M形式)″である。この命令(以下
RIMI命令という)については前に詳しく説明した。
する。マスク使用回転命令の代表的なものは″即値回転
・マスク挿入命令(M形式)″である。この命令(以下
RIMI命令という)については前に詳しく説明した。
RIMI命令で与えられる制御フィールドはOPコード
であって、それは遂行すべき機能の項目及び各種パラメ
ータ(すなわちRSフィールド、RAフィールド、SH
フィールド、及びMA S K)を定義する。RIMI
命令は、レジスタR8に記憶されているデータ内の所与
のフィールド(SHで指定される)を、レジスタRAに
現に記憶されているワードの、MASKで定められるフ
ィールドへ挿入すべきことを指定するものである。
であって、それは遂行すべき機能の項目及び各種パラメ
ータ(すなわちRSフィールド、RAフィールド、SH
フィールド、及びMA S K)を定義する。RIMI
命令は、レジスタR8に記憶されているデータ内の所与
のフィールド(SHで指定される)を、レジスタRAに
現に記憶されているワードの、MASKで定められるフ
ィールドへ挿入すべきことを指定するものである。
これは次のようにして達成される。汎用レジスタ・ファ
イル30のレジスタR,Sがアクセスされて回転部60
へ直接ゲートされる。これと同時にS Hフィールドが
命令レジスタ32からアクセスされ、同様にケーブル6
1を介して回転部6oへゲートされる。前にも述べたよ
うにビット21はマスク定義ビット(MDB)であり、
これはマスクの特性を指定する。ビット22〜31は5
ピッ1−が左端定義用、残りの5ビツトが右端定義用で
ある。これらのビットはマルチプレクサ7oを介してマ
スク生成ユニット62ヘゲートされる。これらのオペレ
ーションにさらに並列して生じる第3のオペレーション
は汎用レジスタ・ファイル30のレジスタRAのアクセ
スである。
イル30のレジスタR,Sがアクセスされて回転部60
へ直接ゲートされる。これと同時にS Hフィールドが
命令レジスタ32からアクセスされ、同様にケーブル6
1を介して回転部6oへゲートされる。前にも述べたよ
うにビット21はマスク定義ビット(MDB)であり、
これはマスクの特性を指定する。ビット22〜31は5
ピッ1−が左端定義用、残りの5ビツトが右端定義用で
ある。これらのビットはマルチプレクサ7oを介してマ
スク生成ユニット62ヘゲートされる。これらのオペレ
ーションにさらに並列して生じる第3のオペレーション
は汎用レジスタ・ファイル30のレジスタRAのアクセ
スである。
レジスタRAの内容(RA)はマルチプレクサ64ヘゲ
ートされる。これは前に説明した。この時点での3つの
オペランド(レジスタRAの内容、回転部60の出力、
及びマスク生成ユニット62で生成されるマスク)が、
挿入/組合せ部66への入力である。挿入/組合せ部6
6の出力はレジスタR2へ一時的に記憶され、次に汎用
レジスタ・87− ファイル30のレジスタRAへ戻される。
ートされる。これは前に説明した。この時点での3つの
オペランド(レジスタRAの内容、回転部60の出力、
及びマスク生成ユニット62で生成されるマスク)が、
挿入/組合せ部66への入力である。挿入/組合せ部6
6の出力はレジスタR2へ一時的に記憶され、次に汎用
レジスタ・87− ファイル30のレジスタRAへ戻される。
次に2番目の分類として桁送り命令の代表的な命令であ
る″左指送り命令″について説明する。
る″左指送り命令″について説明する。
この命令(以下SL命令という)の有効なフィールドは
基本OPコードフィールド、拡張OPコードフィールド
、RSフィールド、RAフィールド、及びRBフィール
ドである。基本○Pコードフィールド及び拡張オペコー
ドフィールドは、遂行すべきオペレーションが何である
かを命令デコーダに示す。R,Sフィールドは桁送りの
対象となるワード(ソースオペランド)を定める。RA
フィールドは対象となるワードが桁送りされるところの
汎用レジスタを定める。SL命令のRBフィールドで定
められるRBレジシフのビット27〜31のRBフィー
ルドは桁送り量を定める。
基本OPコードフィールド、拡張OPコードフィールド
、RSフィールド、RAフィールド、及びRBフィール
ドである。基本○Pコードフィールド及び拡張オペコー
ドフィールドは、遂行すべきオペレーションが何である
かを命令デコーダに示す。R,Sフィールドは桁送りの
対象となるワード(ソースオペランド)を定める。RA
フィールドは対象となるワードが桁送りされるところの
汎用レジスタを定める。SL命令のRBフィールドで定
められるRBレジシフのビット27〜31のRBフィー
ルドは桁送り量を定める。
SL命令のオペレーションはマスク・回転論理56では
次のようにして遂行される。レジスタR8に記憶されて
いるデータが回転部60ヘゲートされ、レジスタRBに
記憶されている桁送り量がマルチプレクサ36によって
ケーブル61を介し−RQ−+++ 88− て回転部60ヘゲートされる。この桁送り量はケーブル
を介してマスク生成ユニッ1−62にも送られる。この
桁送り量はマスク生成ユニット62のマルチプレクサ7
01の入力の1つである。マルチプレクサ70の2つの
入力のうちいずれを選択するかは、○Pコードで決定さ
れる。たとえばOPコードが左端の定義されたマスク生
成を要求するときは、この桁送り量によってマスク生成
ユニット62で前述の第2のタイプのマスク(2つの部
分から成る)が生成される。これらのオペレーションと
同時に、レジスタRAの内容がマルチプレクサ64によ
って選択され、挿入/組合せ部66への3つの入力が再
び使用可能となる。即ち、レジスタRAの内容、回転部
60の出力(レジスタR8の前の内容を指定されたビッ
ト数だけ桁送りしたもの)、及びマスク生成ユニツ1〜
56の生成するマスクである。レジスタR8の内容を指
定されたビット数だけシフトアウトされた分は、挿入/
組合せ部66により、レジスタR,Aに入れられる。こ
うしてオペレーションの結果はレジスタ90− R2を介して汎用1ノジスタフアイル30のレジスタR
Aに戻される。
次のようにして遂行される。レジスタR8に記憶されて
いるデータが回転部60ヘゲートされ、レジスタRBに
記憶されている桁送り量がマルチプレクサ36によって
ケーブル61を介し−RQ−+++ 88− て回転部60ヘゲートされる。この桁送り量はケーブル
を介してマスク生成ユニッ1−62にも送られる。この
桁送り量はマスク生成ユニット62のマルチプレクサ7
01の入力の1つである。マルチプレクサ70の2つの
入力のうちいずれを選択するかは、○Pコードで決定さ
れる。たとえばOPコードが左端の定義されたマスク生
成を要求するときは、この桁送り量によってマスク生成
ユニット62で前述の第2のタイプのマスク(2つの部
分から成る)が生成される。これらのオペレーションと
同時に、レジスタRAの内容がマルチプレクサ64によ
って選択され、挿入/組合せ部66への3つの入力が再
び使用可能となる。即ち、レジスタRAの内容、回転部
60の出力(レジスタR8の前の内容を指定されたビッ
ト数だけ桁送りしたもの)、及びマスク生成ユニツ1〜
56の生成するマスクである。レジスタR8の内容を指
定されたビット数だけシフトアウトされた分は、挿入/
組合せ部66により、レジスタR,Aに入れられる。こ
うしてオペレーションの結果はレジスタ90− R2を介して汎用1ノジスタフアイル30のレジスタR
Aに戻される。
桁送り命令の場合は一般に、マルチプレクサ64の4つ
の入力は何れかがケーブル84に出力されそれが挿入/
組合せに係るオペレーションの目的オペランドとなる。
の入力は何れかがケーブル84に出力されそれが挿入/
組合せに係るオペレーションの目的オペランドとなる。
従ってそのワードに、ケーブル82のソースオペランド
の指定部分が挿入される。
の指定部分が挿入される。
最後に3番目の分類として回転・記憶命令の1つを例に
とって説明する。回転・記憶命令は前にも説明した様に
主記憶装置のデータの移動に対して効果的なものであり
、これを使用すれば、CPUのタスク自身は働かないの
で、条件コードをいちいち設定する必要もない。ADR
ESSビットRA、 + 4、及びMARKビットの生
成及び使用のような命令に必要なオペレーションの数は
メモリ制御に当てはまり、マスク使用回転命令のオペレ
ーションには当てはまらないが、回転及び記憶命令は、
マスク・回転論理56を用いて達成できるシステムの機
能の1つのタイプである。
とって説明する。回転・記憶命令は前にも説明した様に
主記憶装置のデータの移動に対して効果的なものであり
、これを使用すれば、CPUのタスク自身は働かないの
で、条件コードをいちいち設定する必要もない。ADR
ESSビットRA、 + 4、及びMARKビットの生
成及び使用のような命令に必要なオペレーションの数は
メモリ制御に当てはまり、マスク使用回転命令のオペレ
ーションには当てはまらないが、回転及び記憶命令は、
マスク・回転論理56を用いて達成できるシステムの機
能の1つのタイプである。
回転・記憶命令の代表的なものは″右回転・更新記憶命
令”であるこの命令(以下RR8U命令という)は以下
に示す有効なフィールドを提供する。即ち、OPコード
・フィールド、拡張OPコードフィールド、RSフィー
ルド、RAフィールド、及びRBフィールドである。O
Pコードフィールド及び拡張○Pコードフィールドは夫
々ビットO〜5及びビット21〜31である。これらの
OPコードフィールドが他の全ての命令と同じように、
マスク・回転論理56のオペレーションシーケンスを制
御する。レジスタR8の内容は回転部60にゲートされ
る。桁送り量は汎用レジスタRBに記憶されているデー
タのビット27〜31で決まる。桁送り量はケーブル6
1を介して回転部60と、または命令デコータの制御の
下で左端定義用もしくは右端定義用のマルチプレクサ7
゜と、に同時にゲートされる。回転されたワードはレジ
スタMQに記憶される。この時点で、後の挿入/組合せ
オペレーションに備えて、レジスタMQの前の内容は何
らかの補助レジスタに保持され一91= る。
令”であるこの命令(以下RR8U命令という)は以下
に示す有効なフィールドを提供する。即ち、OPコード
・フィールド、拡張OPコードフィールド、RSフィー
ルド、RAフィールド、及びRBフィールドである。O
Pコードフィールド及び拡張○Pコードフィールドは夫
々ビットO〜5及びビット21〜31である。これらの
OPコードフィールドが他の全ての命令と同じように、
マスク・回転論理56のオペレーションシーケンスを制
御する。レジスタR8の内容は回転部60にゲートされ
る。桁送り量は汎用レジスタRBに記憶されているデー
タのビット27〜31で決まる。桁送り量はケーブル6
1を介して回転部60と、または命令デコータの制御の
下で左端定義用もしくは右端定義用のマルチプレクサ7
゜と、に同時にゲートされる。回転されたワードはレジ
スタMQに記憶される。この時点で、後の挿入/組合せ
オペレーションに備えて、レジスタMQの前の内容は何
らかの補助レジスタに保持され一91= る。
回転部60の桁送りオペレーションと並列して、桁送り
量の制御の下でマスクが生成される。回転部60から出
力される回転されたワードがケーブル82を介して挿入
/組合せ部66に送られると同時に、レジスタMQの前
の内容がケーブル84を介して、マスクがケーブル86
を介して、それぞれ挿入/組合せ部66に送られる。挿
入/組合せ部66の出力はレジスタR2に記憶される。
量の制御の下でマスクが生成される。回転部60から出
力される回転されたワードがケーブル82を介して挿入
/組合せ部66に送られると同時に、レジスタMQの前
の内容がケーブル84を介して、マスクがケーブル86
を介して、それぞれ挿入/組合せ部66に送られる。挿
入/組合せ部66の出力はレジスタR2に記憶される。
しかしながら今度は、この出力はレジスタRAには戻さ
れないで代わりに、命令デコーダの制御の下でアドレス
生成回路によってレジスタRA+4へ戻される。このオ
ペレーションは本発明を構成するものではない。これと
同時に更新されたアドレスRA+4自身はレジスタRA
に記憶される。
れないで代わりに、命令デコーダの制御の下でアドレス
生成回路によってレジスタRA+4へ戻される。このオ
ペレーションは本発明を構成するものではない。これと
同時に更新されたアドレスRA+4自身はレジスタRA
に記憶される。
回転及び記憶命令のグループの命令を複数組み合わせて
、主記憶装置内で、データストリングの長移動及びデー
タの再境界合せを行なう。回転・記憶命令はマスク回転
論理56を使用する。
、主記憶装置内で、データストリングの長移動及びデー
タの再境界合せを行なう。回転・記憶命令はマスク回転
論理56を使用する。
マークの記憶、使用及び解釈(従って回転・記92−
憶命令のうちのあるものがこれに該当する)は本発明を
構成するものではない。前に説明した特定の命令に伴う
定義(OPコード)で示されるシステムメモリ制御によ
ってこうした特定のマークが生成され、記憶され、利用
される。
構成するものではない。前に説明した特定の命令に伴う
定義(OPコード)で示されるシステムメモリ制御によ
ってこうした特定のマークが生成され、記憶され、利用
される。
以上に説明した3つのタイプの命令は、マスク・回転論
理56の動作を説明するための例であり、マスク・回転
論理56は、勿論、他の様々なマスク・回転命令を処理
することができる。当業者ならば、他のあらゆる命令が
マスク・回転論理56でいかに遂行されるかは容易に類
推できるであろう。
理56の動作を説明するための例であり、マスク・回転
論理56は、勿論、他の様々なマスク・回転命令を処理
することができる。当業者ならば、他のあらゆる命令が
マスク・回転論理56でいかに遂行されるかは容易に類
推できるであろう。
[発明の効果]
以上説明した様に、本発明によれば、従来の命令に比べ
てより短くかつ簡単な(従って高速で効率のよい)命令
で、桁送り機能、組合せ機能、挿入機能、及びビット境
界合せ機能を遂行する事ができる。
てより短くかつ簡単な(従って高速で効率のよい)命令
で、桁送り機能、組合せ機能、挿入機能、及びビット境
界合せ機能を遂行する事ができる。
第1図は本発明を実施し得るPRISMシステムの構成
例を示すブロック図、第2図は第2A図及び第2B図の
結合様式を示すブロック図、第2A図及び第2B図はC
PU12の内部構成を示すブロック図、第3図はマスク
・回転論理の内部構成を示す図である。 出願人 インターナショナル・ビジネス・マシーンズ・
コーポレーション 95−
例を示すブロック図、第2図は第2A図及び第2B図の
結合様式を示すブロック図、第2A図及び第2B図はC
PU12の内部構成を示すブロック図、第3図はマスク
・回転論理の内部構成を示す図である。 出願人 インターナショナル・ビジネス・マシーンズ・
コーポレーション 95−
Claims (1)
- 【特許請求の範囲】 単一マシンサイクルで実行できる基本命令の命令セット
を有し、前記基本命令を記憶する記憶手段と、該記憶手
段から基本命令を取出すためのアドレス手段と、該アド
レス手段によって取出された基本命令を実行するための
ALUと、該ALUで使用されるオペランドを記憶し且
つ同時にアクセス可能な複数の汎用レジスタとを備えた
計算機システムにおいて、 単一マシンサイクルで実行可能なマスク・回転命令を遂
行するための機構を、 前記命令で指定されたマスクパターン遷移アドレスから
Nビット(Nは1より大きい整数)のマスクを生成する
手段と、 Nビットのソースオペランドを前記命令で指定された量
だけ回転する手段と、 前記命令で指定される情報に基づいてNビットの目的オ
ペランドを選択する手段と、 前記マスクの所与のビットが第1の論理値を有する場合
は前記目的オペランドの対応ビットを維持し、前記マス
クの所与のビットが第2に論理値を有する場合は前記回
転されたソースオペランドの対応ビットを維持するよう
に、前記回転されたソースオペランドと前記目的オペラ
ン1くとを前記マスクの制御下で組み合わせる手段と、
Nビットの前記組合わせ結果を前記命令によって指定さ
れたレジスタへ戻す手段とから構成し。 前記手段の各々を並行に動作させるようにしたことを特
徴とする命令処理装置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US06/509,836 US4569016A (en) | 1983-06-30 | 1983-06-30 | Mechanism for implementing one machine cycle executable mask and rotate instructions in a primitive instruction set computing system |
| US509836 | 1983-06-30 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS6014336A true JPS6014336A (ja) | 1985-01-24 |
| JPH0135366B2 JPH0135366B2 (ja) | 1989-07-25 |
Family
ID=24028276
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP59115647A Granted JPS6014336A (ja) | 1983-06-30 | 1984-06-07 | 命令処理装置 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US4569016A (ja) |
| EP (1) | EP0130380A3 (ja) |
| JP (1) | JPS6014336A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007528545A (ja) * | 2004-03-10 | 2007-10-11 | アーム・リミテッド | データ・ワードの中へビットを挿入する装置および方法 |
| JP2011138499A (ja) * | 2009-12-26 | 2011-07-14 | Intel Corp | キャリーフラグの読み出しを伴わずに実行を完了する回転命令 |
| JP2016510461A (ja) * | 2013-01-23 | 2016-04-07 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | Vectorelementrotateandinsertundermask命令を処理するためのコンピュータ・プログラム、コンピュータ・システム及び方法 |
Families Citing this family (105)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH063584B2 (ja) * | 1983-12-19 | 1994-01-12 | 株式会社日立製作所 | 情報処理装置 |
| US5179734A (en) * | 1984-03-02 | 1993-01-12 | Texas Instruments Incorporated | Threaded interpretive data processor |
| US4896259A (en) * | 1984-09-07 | 1990-01-23 | International Business Machines Corporation | Apparatus for storing modifying data prior to selectively storing data to be modified into a register |
| JPS6167156A (ja) * | 1984-09-07 | 1986-04-07 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | デ−タ読取り/変更装置 |
| US4739471A (en) * | 1985-06-28 | 1988-04-19 | Hewlett-Packard Company | Method and means for moving bytes in a reduced instruction set computer |
| JPS623333A (ja) * | 1985-06-28 | 1987-01-09 | Yokogawa Hewlett Packard Ltd | ビツト群置数方式 |
| 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 |
| EP0211179A3 (en) * | 1985-06-28 | 1990-09-05 | Hewlett-Packard Company | Apparatus for performing variable shift |
| JPS6266377A (ja) * | 1985-09-19 | 1987-03-25 | Fujitsu Ltd | マスクパタ−ン生成方式 |
| US5070445A (en) * | 1986-07-02 | 1991-12-03 | Woodward Thomas R | Programmably controlled partially distributed masking mechanism in a programmable unit having variable data path widths |
| 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 |
| US4992934A (en) * | 1986-12-15 | 1991-02-12 | United Technologies Corporation | Reduced instruction set computing apparatus and methods |
| US4814976C1 (en) * | 1986-12-23 | 2002-06-04 | Mips Tech Inc | Risc computer with unaligned reference handling and method for the same |
| US4833602A (en) * | 1987-06-29 | 1989-05-23 | International Business Machines Corporation | Signal generator using modulo means |
| US5129066A (en) * | 1987-09-17 | 1992-07-07 | International Business Machines Corporation | Bit mask generator circuit using multiple logic units for generating a bit mask sequence |
| JPS6476220A (en) * | 1987-09-17 | 1989-03-22 | Ibm | Bit mask generation circuit |
| US4933847A (en) * | 1987-11-17 | 1990-06-12 | International Business Machines Corporation | Microcode branch based upon operand length and alignment |
| US4974146A (en) * | 1988-05-06 | 1990-11-27 | Science Applications International Corporation | Array processor |
| US5131086A (en) * | 1988-08-25 | 1992-07-14 | Edgcore Technology, Inc. | Method and system for executing pipelined three operand construct |
| US5222225A (en) * | 1988-10-07 | 1993-06-22 | International Business Machines Corporation | Apparatus for processing character string moves in a data processing system |
| DE68925666T2 (de) * | 1988-10-07 | 1996-09-26 | Ibm | Prozessoren für wortorganisierte Daten |
| US4903228A (en) * | 1988-11-09 | 1990-02-20 | International Business Machines Corporation | Single cycle merge/logic unit |
| JPH02190930A (ja) * | 1988-12-29 | 1990-07-26 | Internatl Business Mach Corp <Ibm> | ソフトウエア命令実行装置 |
| US5179691A (en) * | 1989-04-12 | 1993-01-12 | Unisys Corporation | N-byte stack-oriented CPU using a byte-selecting control for enhancing a dual-operation with an M-byte instruction word user program where M<N<2M |
| JP2835103B2 (ja) * | 1989-11-01 | 1998-12-14 | 富士通株式会社 | 命令指定方法及び命令実行方式 |
| US5167029A (en) * | 1989-12-13 | 1992-11-24 | International Business Machines Corporation | Data processing system and associated process using memory cards having data modify functions utilizing a data mask and an internal register |
| WO1991011765A1 (en) * | 1990-01-29 | 1991-08-08 | Teraplex, Inc. | Architecture for minimal instruction set computing system |
| CA2045705A1 (en) * | 1990-06-29 | 1991-12-30 | Richard Lee Sites | In-register data manipulation in reduced instruction set processor |
| JP2601960B2 (ja) * | 1990-11-15 | 1997-04-23 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データ処理方法及びその装置 |
| US5226142A (en) * | 1990-11-21 | 1993-07-06 | Ross Technology, Inc. | High performance register file with overlapping windows |
| EP0544083A3 (en) * | 1991-11-26 | 1994-09-14 | Ibm | Interleaved risc-type parallel processor and processing methods |
| US5438668A (en) * | 1992-03-31 | 1995-08-01 | Seiko Epson Corporation | System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer |
| US5410719A (en) * | 1992-05-27 | 1995-04-25 | Hewlett-Packard Company | Field compositor for merging data and including cells each receiving three control and two data inputs and generating one control and one data output therefrom |
| US5471628A (en) * | 1992-06-30 | 1995-11-28 | International Business Machines Corporation | Multi-function permutation switch for rotating and manipulating an order of bits of an input data byte in either cyclic or non-cyclic mode |
| US5590348A (en) * | 1992-07-28 | 1996-12-31 | International Business Machines Corporation | Status predictor for combined shifter-rotate/merge unit |
| US6735685B1 (en) | 1992-09-29 | 2004-05-11 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
| DE69329778T2 (de) * | 1992-09-29 | 2001-04-26 | Seiko Epson Corp., Tokio/Tokyo | System und verfahren zur handhabung von laden und/oder speichern in einem superskalar mikroprozessor |
| US5717947A (en) * | 1993-03-31 | 1998-02-10 | Motorola, Inc. | Data processing system and method thereof |
| CA2162115A1 (en) * | 1993-06-14 | 1994-12-22 | David V. James | Method and apparatus for finding a termination character within a variable-length character string on a processor |
| US5815695A (en) * | 1993-10-28 | 1998-09-29 | Apple Computer, Inc. | Method and apparatus for using condition codes to nullify instructions based on results of previously-executed instructions on a computer processor |
| US5590350A (en) * | 1993-11-30 | 1996-12-31 | Texas Instruments Incorporated | Three input arithmetic logic unit with mask generator |
| US6116768A (en) * | 1993-11-30 | 2000-09-12 | Texas Instruments Incorporated | Three input arithmetic logic unit with barrel rotator |
| US6016538A (en) * | 1993-11-30 | 2000-01-18 | Texas Instruments Incorporated | Method, apparatus and system forming the sum of data in plural equal sections of a single data word |
| US6067613A (en) * | 1993-11-30 | 2000-05-23 | Texas Instruments Incorporated | Rotation register for orthogonal data transformation |
| US6098163A (en) * | 1993-11-30 | 2000-08-01 | Texas Instruments Incorporated | Three input arithmetic logic unit with shifter |
| US5961635A (en) * | 1993-11-30 | 1999-10-05 | Texas Instruments Incorporated | Three input arithmetic logic unit with barrel rotator and mask generator |
| US5974539A (en) * | 1993-11-30 | 1999-10-26 | Texas Instruments Incorporated | Three input arithmetic logic unit with shifter and mask generator |
| US5499376A (en) * | 1993-12-06 | 1996-03-12 | Cpu Technology, Inc. | High speed mask and logical combination operations for parallel processor units |
| US5487159A (en) * | 1993-12-23 | 1996-01-23 | Unisys Corporation | System for processing shift, mask, and merge operations in one instruction |
| US5704052A (en) * | 1994-11-06 | 1997-12-30 | Unisys Corporation | Bit processing unit for performing complex logical operations within a single clock cycle |
| US5668984A (en) * | 1995-02-27 | 1997-09-16 | International Business Machines Corporation | Variable stage load path and method of operation |
| US6643765B1 (en) * | 1995-08-16 | 2003-11-04 | Microunity Systems Engineering, Inc. | Programmable processor with group floating point operations |
| US5745744A (en) * | 1995-10-12 | 1998-04-28 | International Business Machines Corporation | High speed mask generation using selection logic |
| US5729482A (en) * | 1995-10-31 | 1998-03-17 | Lsi Logic Corporation | Microprocessor shifter using rotation and masking operations |
| WO1998006042A1 (en) * | 1996-08-07 | 1998-02-12 | Sun Microsystems, Inc. | Wide instruction unpack method and apparatus |
| US6061783A (en) * | 1996-11-13 | 2000-05-09 | Nortel Networks Corporation | Method and apparatus for manipulation of bit fields directly in a memory source |
| US6098087A (en) * | 1998-04-23 | 2000-08-01 | Infineon Technologies North America Corp. | Method and apparatus for performing shift operations on packed data |
| CA2383531A1 (en) | 1999-09-01 | 2001-03-08 | Intel Corporation | Instruction for multithreaded parallel processor |
| US7546444B1 (en) | 1999-09-01 | 2009-06-09 | Intel Corporation | Register set used in multithreaded parallel processor architecture |
| US6820195B1 (en) * | 1999-10-01 | 2004-11-16 | Hitachi, Ltd. | Aligning load/store data with big/little endian determined rotation distance control |
| US6523108B1 (en) * | 1999-11-23 | 2003-02-18 | Sony Corporation | Method of and apparatus for extracting a string of bits from a binary bit string and depositing a string of bits onto a binary bit string |
| US6449706B1 (en) * | 1999-12-22 | 2002-09-10 | Intel Corporation | Method and apparatus for accessing unaligned data |
| US7681018B2 (en) | 2000-08-31 | 2010-03-16 | Intel Corporation | Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set |
| US20020053017A1 (en) * | 2000-09-01 | 2002-05-02 | Adiletta Matthew J. | Register instructions for a multithreaded processor |
| US7620832B2 (en) * | 2000-09-20 | 2009-11-17 | Mips Technologies, Inc. | Method and apparatus for masking a microprocessor execution signature |
| US7237097B2 (en) * | 2001-02-21 | 2007-06-26 | Mips Technologies, Inc. | Partial bitwise permutations |
| US7162621B2 (en) * | 2001-02-21 | 2007-01-09 | Mips Technologies, Inc. | Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration |
| US7181484B2 (en) * | 2001-02-21 | 2007-02-20 | Mips Technologies, Inc. | Extended-precision accumulation of multiplier output |
| US7318145B1 (en) | 2001-06-01 | 2008-01-08 | Mips Technologies, Inc. | Random slip generator |
| US7216204B2 (en) | 2001-08-27 | 2007-05-08 | Intel Corporation | Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment |
| US6868476B2 (en) | 2001-08-27 | 2005-03-15 | Intel Corporation | Software controlled content addressable memory in a general purpose execution datapath |
| US7225281B2 (en) * | 2001-08-27 | 2007-05-29 | Intel Corporation | Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms |
| US7487505B2 (en) * | 2001-08-27 | 2009-02-03 | Intel Corporation | Multithreaded microprocessor with register allocation based on number of active threads |
| US7051168B2 (en) * | 2001-08-28 | 2006-05-23 | International Business Machines Corporation | Method and apparatus for aligning memory write data in a microprocessor |
| US7818356B2 (en) | 2001-10-29 | 2010-10-19 | Intel Corporation | Bitstream buffer manipulation with a SIMD merge instruction |
| US20040054877A1 (en) | 2001-10-29 | 2004-03-18 | Macy William W. | Method and apparatus for shuffling data |
| US7685212B2 (en) * | 2001-10-29 | 2010-03-23 | Intel Corporation | Fast full search motion estimation with SIMD merge instruction |
| US7272622B2 (en) * | 2001-10-29 | 2007-09-18 | Intel Corporation | Method and apparatus for parallel shift right merge of data |
| US7340495B2 (en) | 2001-10-29 | 2008-03-04 | Intel Corporation | Superior misaligned memory load and copy using merge hardware |
| US7610451B2 (en) * | 2002-01-25 | 2009-10-27 | Intel Corporation | Data transfer mechanism using unidirectional pull bus and push bus |
| US7437724B2 (en) | 2002-04-03 | 2008-10-14 | Intel Corporation | Registers for data transfers |
| US7337275B2 (en) * | 2002-08-13 | 2008-02-26 | Intel Corporation | Free list and ring data structure management |
| US6941438B2 (en) | 2003-01-10 | 2005-09-06 | Intel Corporation | Memory interleaving |
| US20090182992A1 (en) * | 2008-01-11 | 2009-07-16 | International Business Machines Corporation | Load Relative and Store Relative Facility and Instructions Therefore |
| US20090182982A1 (en) * | 2008-01-11 | 2009-07-16 | International Business Machines Corporation | Rotate Then Insert Selected Bits Facility and Instructions Therefore |
| US7734900B2 (en) | 2008-01-11 | 2010-06-08 | International Business Machines Corporation | Computer configuration virtual topology discovery and instruction therefore |
| US20090182984A1 (en) * | 2008-01-11 | 2009-07-16 | International Business Machines Corporation | Execute Relative Long Facility and Instructions Therefore |
| US7739434B2 (en) * | 2008-01-11 | 2010-06-15 | International Business Machines Corporation | Performing a configuration virtual topology change and instruction therefore |
| US7870339B2 (en) * | 2008-01-11 | 2011-01-11 | International Business Machines Corporation | Extract cache attribute facility and instruction therefore |
| US9280480B2 (en) | 2008-01-11 | 2016-03-08 | International Business Machines Corporation | Extract target cache attribute facility and instruction therefor |
| US7895419B2 (en) | 2008-01-11 | 2011-02-22 | International Business Machines Corporation | Rotate then operate on selected bits facility and instructions therefore |
| US20090182985A1 (en) * | 2008-01-11 | 2009-07-16 | International Business Machines Corporation | Move Facility and Instructions Therefore |
| US20090182988A1 (en) * | 2008-01-11 | 2009-07-16 | International Business Machines Corporation | Compare Relative Long Facility and Instructions Therefore |
| US9003170B2 (en) * | 2009-12-22 | 2015-04-07 | Intel Corporation | Bit range isolation instructions, methods, and apparatus |
| US20130151820A1 (en) * | 2011-12-09 | 2013-06-13 | Advanced Micro Devices, Inc. | Method and apparatus for rotating and shifting data during an execution pipeline cycle of a processor |
| CN111831335A (zh) * | 2011-12-23 | 2020-10-27 | 英特尔公司 | 经改进的插入指令的装置和方法 |
| 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 |
| US9471308B2 (en) | 2013-01-23 | 2016-10-18 | International Business Machines Corporation | Vector floating point test data class immediate instruction |
| US9513906B2 (en) | 2013-01-23 | 2016-12-06 | International Business Machines Corporation | Vector checksum instruction |
| US9778932B2 (en) | 2013-01-23 | 2017-10-03 | International Business Machines Corporation | Vector generate mask instruction |
| US9715385B2 (en) | 2013-01-23 | 2017-07-25 | International Business Machines Corporation | Vector exception code |
| US9804840B2 (en) | 2013-01-23 | 2017-10-31 | International Business Machines Corporation | Vector Galois Field Multiply Sum and Accumulate instruction |
| US10255462B2 (en) | 2016-06-17 | 2019-04-09 | Arm Limited | Apparatus and method for obfuscating power consumption of a processor |
| US10678540B2 (en) * | 2018-05-08 | 2020-06-09 | Arm Limited | Arithmetic operation with shift |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS537770A (en) * | 1976-07-09 | 1978-01-24 | Nippon Poriesuteru Kk | Method of manufacture of frp |
| JPS5350629A (en) * | 1976-10-18 | 1978-05-09 | Burroughs Corp | High speed shift network |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3906459A (en) * | 1974-06-03 | 1975-09-16 | Control Data Corp | Binary data manipulation network having multiple function capability for computers |
| US3982229A (en) * | 1975-01-08 | 1976-09-21 | Bell Telephone Laboratories, Incorporated | Combinational logic arrangement |
| US4276596A (en) * | 1979-01-02 | 1981-06-30 | Honeywell Information Systems Inc. | Short operand alignment and merge operation |
| US4180861A (en) * | 1978-03-31 | 1979-12-25 | Ncr Corporation | Selectively operable mask generator |
| US4240144A (en) * | 1979-01-02 | 1980-12-16 | Honeywell Information Systems Inc. | Long operand alignment and merge operation |
| US4224682A (en) * | 1979-01-02 | 1980-09-23 | Honeywell Information Systems Inc. | Pointer for defining the data by controlling merge switches |
| US4246644A (en) * | 1979-01-02 | 1981-01-20 | Honeywell Information Systems Inc. | Vector branch indicators to control firmware |
| US4467444A (en) * | 1980-08-01 | 1984-08-21 | Advanced Micro Devices, Inc. | Processor unit for microcomputer systems |
-
1983
- 1983-06-30 US US06/509,836 patent/US4569016A/en not_active Expired - Lifetime
-
1984
- 1984-05-30 EP EP84106177A patent/EP0130380A3/en not_active Withdrawn
- 1984-06-07 JP JP59115647A patent/JPS6014336A/ja active Granted
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS537770A (en) * | 1976-07-09 | 1978-01-24 | Nippon Poriesuteru Kk | Method of manufacture of frp |
| JPS5350629A (en) * | 1976-10-18 | 1978-05-09 | Burroughs Corp | High speed shift network |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007528545A (ja) * | 2004-03-10 | 2007-10-11 | アーム・リミテッド | データ・ワードの中へビットを挿入する装置および方法 |
| JP2011138499A (ja) * | 2009-12-26 | 2011-07-14 | Intel Corp | キャリーフラグの読み出しを伴わずに実行を完了する回転命令 |
| US9164762B2 (en) | 2009-12-26 | 2015-10-20 | Intel Corporation | Rotate instructions that complete execution without reading carry flag |
| JP2017016712A (ja) * | 2009-12-26 | 2017-01-19 | インテル・コーポレーション | マルチコアプロセッサ、システムオンチップ、及び、携帯電話機 |
| US11106461B2 (en) | 2009-12-26 | 2021-08-31 | Intel Corporation | Rotate instructions that complete execution either without writing or reading flags |
| US11900108B2 (en) | 2009-12-26 | 2024-02-13 | Intel Corporation | Rotate instructions that complete execution either without writing or reading flags |
| JP2016510461A (ja) * | 2013-01-23 | 2016-04-07 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | Vectorelementrotateandinsertundermask命令を処理するためのコンピュータ・プログラム、コンピュータ・システム及び方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0130380A3 (en) | 1987-11-11 |
| US4569016A (en) | 1986-02-04 |
| JPH0135366B2 (ja) | 1989-07-25 |
| EP0130380A2 (en) | 1985-01-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS6014336A (ja) | 命令処理装置 | |
| JP7416393B2 (ja) | テンソル並べ替えエンジンのための装置および方法 | |
| RU2292581C2 (ru) | Команды загрузки/перемещения и копирования для процессора | |
| CN107077321B (zh) | 用于执行融合的单个周期递增-比较-跳转的指令和逻辑 | |
| US6351804B1 (en) | Control bit vector storage for a microprocessor | |
| JPS6014337A (ja) | 条件コ−ド発生装置 | |
| US6061783A (en) | Method and apparatus for manipulation of bit fields directly in a memory source | |
| US5802339A (en) | Pipeline throughput via parallel out-of-order execution of adds and moves in a supplemental integer execution unit | |
| US5867724A (en) | Integrated routing and shifting circuit and method of operation | |
| JPS6014341A (ja) | 基本命令セツト計算機システムにおけるトラツプ割込み方式 | |
| CN104025024B (zh) | 打包数据操作掩码移位处理器、方法及系统 | |
| CN108292220A (zh) | 用于加速图形分析的装置和方法 | |
| TWI603261B (zh) | 用以執行離心操作的指令及邏輯 | |
| US5854939A (en) | Eight-bit microcontroller having a risc architecture | |
| US6981132B2 (en) | Uniform register addressing using prefix byte | |
| CN110321165A (zh) | 复数向量融合乘加和复数向量乘法的高效实现 | |
| JPS6014338A (ja) | 計算機システムにおける分岐機構 | |
| US6253299B1 (en) | Virtual cache registers with selectable width for accommodating different precision data formats | |
| CN103268218B (zh) | 数据处理器 | |
| CN116775131A (zh) | 融合多乘法和加法-减法指令集 | |
| CN112130970A (zh) | 用于双存储器原子操作的硬件支持 | |
| CN109947480A (zh) | 用于将紧缩四字移位并提取紧缩字的装置和方法 | |
| CN109947697A (zh) | 用于将紧缩四字右移并提取紧缩双字的装置和方法 | |
| CN113849221A (zh) | 用于操作系统透明指令状态管理的装置、方法和系统 | |
| Paap et al. | PowerPC: a performance architecture |