JPS5847053B2 - デ−タ処理装置 - Google Patents
デ−タ処理装置Info
- Publication number
- JPS5847053B2 JPS5847053B2 JP54148892A JP14889279A JPS5847053B2 JP S5847053 B2 JPS5847053 B2 JP S5847053B2 JP 54148892 A JP54148892 A JP 54148892A JP 14889279 A JP14889279 A JP 14889279A JP S5847053 B2 JPS5847053 B2 JP S5847053B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- instruction
- read
- start address
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3824—Operand accessing
Description
【発明の詳細な説明】
(1)発明の利用分野
本発明は、ディジタルコンピュータのようなマクロ命令
(機械語命令のことを、ここではこのように呼ぶことに
する)を並列処理するデータ処理装置、とくに、データ
の位置合わせ、切り出しを行いうるように構成された、
データ処理装置に関する。
(機械語命令のことを、ここではこのように呼ぶことに
する)を並列処理するデータ処理装置、とくに、データ
の位置合わせ、切り出しを行いうるように構成された、
データ処理装置に関する。
(2)従来技術
従来のディジタルコンピュータにおいては、マクロ命令
およびデータを記憶したメモリから、次に実行すべきマ
クロ命令を読出し、そのマクロ命令から、そのマクロ命
令の実行に用いられるデータ(以下ストレジオペランド
)を特定するためのアドレスを命令ユニットで求め、こ
のストレジオペランドアドレスに基づき、対応するスト
レジオペランドを上記のメモリから読出し、そのマクロ
命令を実行する。
およびデータを記憶したメモリから、次に実行すべきマ
クロ命令を読出し、そのマクロ命令から、そのマクロ命
令の実行に用いられるデータ(以下ストレジオペランド
)を特定するためのアドレスを命令ユニットで求め、こ
のストレジオペランドアドレスに基づき、対応するスト
レジオペランドを上記のメモリから読出し、そのマクロ
命令を実行する。
この際、メモリから1回の読出し動作で読出されるスト
レジオペランドの長さは装置により定まった一定の長さ
、例えば8バイトを有している。
レジオペランドの長さは装置により定まった一定の長さ
、例えば8バイトを有している。
さらに、メモリからのストレジオペランドの読出しは任
意のアドレス位置から始まる8バイトのストレジオペラ
ンドについて行い5るのではなく、定まった8バイトの
ブロックの境界位置から8バイトの長さにあるブロック
データについて行うのが通常である。
意のアドレス位置から始まる8バイトのストレジオペラ
ンドについて行い5るのではなく、定まった8バイトの
ブロックの境界位置から8バイトの長さにあるブロック
データについて行うのが通常である。
従って、読出したいストレジオペランドがその境界位置
の両側に位置するデータであるときは、たとえ欲しいス
トレジオペランドが8バイト以下の長さであっても、メ
モリからその境界位置より小さいアドレスを有する8バ
イトと、その境界位置より大きいアドレスを有する8バ
イトとをそれぞれ読み出すという2回の読み出し動作を
行なう。
の両側に位置するデータであるときは、たとえ欲しいス
トレジオペランドが8バイト以下の長さであっても、メ
モリからその境界位置より小さいアドレスを有する8バ
イトと、その境界位置より大きいアドレスを有する8バ
イトとをそれぞれ読み出すという2回の読み出し動作を
行なう。
その後、演算器を用いて、これらの2つの8バイトデー
タから所望の8バイトのデータの切出しを行えるように
データの位置合わせを行う。
タから所望の8バイトのデータの切出しを行えるように
データの位置合わせを行う。
このように従来装置では、データの位置合わせ・データ
の切り出しすなわち、アライメントを演算器を用いて行
なうため、多くの処理時間を必要とした。
の切り出しすなわち、アライメントを演算器を用いて行
なうため、多くの処理時間を必要とした。
このために命令の処理時間が増大した。
そこでこのような欠点をなくすために専用の回路(以下
アライン回路とよぷ)によりデータのアラインメントを
行なうデータ処理装置が下記文献により提案されている
。
アライン回路とよぷ)によりデータのアラインメントを
行なうデータ処理装置が下記文献により提案されている
。
1、特開昭49−95546号明細書
2、特開昭53−94133号明細書
前者はメモリから、所望の4バイトのデータを含む8バ
イトのデータをよみ出し、そのよみ出された8バイトの
データをデータ変換器を用いて、データの位置合わせを
した後、その所望の4バイトのデータを切り出す。
イトのデータをよみ出し、そのよみ出された8バイトの
データをデータ変換器を用いて、データの位置合わせを
した後、その所望の4バイトのデータを切り出す。
後者はさらに、所望の8バイト以内の長さのデータを含
む16バイトのデータをデータ変換器を用いて、位置合
わせした後、その所望の8バイト以内の長さのデータを
切り出す。
む16バイトのデータをデータ変換器を用いて、位置合
わせした後、その所望の8バイト以内の長さのデータを
切り出す。
このようにデータ変換器を用いて、データの任意のアラ
インメントを行なえば、命令の処理時間が短縮できる。
インメントを行なえば、命令の処理時間が短縮できる。
しかしながら、このデータのアラインメントな種々の命
令の実行時に行なうためには、このデータ変換器の制御
回路がきわめて複雑になる。
令の実行時に行なうためには、このデータ変換器の制御
回路がきわめて複雑になる。
とくに、このデータのアラインメントな行うタイミング
・手順は、各命令によって異なる。
・手順は、各命令によって異なる。
従って、この制御回路は、各命令ごとに、その実行途上
の所定のタイミングにおいて、所望の動作をしうるよう
に構成されねばならないため、きわめて複雑となる。
の所定のタイミングにおいて、所望の動作をしうるよう
に構成されねばならないため、きわめて複雑となる。
このような問題を解決を図るために、先に、このデータ
のアラインメントをマイクロ命令を用いて行なう技術が
同一出願人により提案されている(発明の名称「データ
処理装置」、特願昭543956号(特開昭55−97
642号公報)参照)。
のアラインメントをマイクロ命令を用いて行なう技術が
同一出願人により提案されている(発明の名称「データ
処理装置」、特願昭543956号(特開昭55−97
642号公報)参照)。
この技術によれば、マイクロ命令を工夫することにより
、すべてのマクロ命令に関して、データのアラインメン
トな簡単な装置により行うことができる。
、すべてのマクロ命令に関して、データのアラインメン
トな簡単な装置により行うことができる。
しかし実際に、この技術を大型計算機に適用しようとし
た場合、マイクロ命令を用いることによるマクロ命令の
処理速度の低下という問題が生じる。
た場合、マイクロ命令を用いることによるマクロ命令の
処理速度の低下という問題が生じる。
とくに、大型計算機においては、いわゆるパイプライン
型先行制御方式により各マクロ命令の実行が並列に行な
われる。
型先行制御方式により各マクロ命令の実行が並列に行な
われる。
すなわち、各マクロ命令の実行は、複数のステージ、例
えば、1(1)マクロ命令の解読及びその命令の実行に
必要なオペランドアドレスを計算するDステージ(2)
計算されたオペランドアドレスを物理アドレスに変換す
るAステージ、 (3)変換された物理オペランドアドレスを用いて、記
憶装置から該当するオペランドを読出すLステージ、 (4)このオペランドに関して演算を実行するEステー
ジ 04つのステージに分けられ、DステージからLア ステージの各ステージは1マシンサイクル内で処理され
るとともに、各マクロ命令の各ステージは、他のマクロ
命令の異なるステージと並列に処理される。
えば、1(1)マクロ命令の解読及びその命令の実行に
必要なオペランドアドレスを計算するDステージ(2)
計算されたオペランドアドレスを物理アドレスに変換す
るAステージ、 (3)変換された物理オペランドアドレスを用いて、記
憶装置から該当するオペランドを読出すLステージ、 (4)このオペランドに関して演算を実行するEステー
ジ 04つのステージに分けられ、DステージからLア ステージの各ステージは1マシンサイクル内で処理され
るとともに、各マクロ命令の各ステージは、他のマクロ
命令の異なるステージと並列に処理される。
この内、Eステージはマイクロ命令により制御される。
一方、それ以外のり、A、Lステージは、専用のワイア
ドロシックにより制御される。
ドロシックにより制御される。
従って、このような従来技術による装置に、先願に記載
したマイクロ命令のアライン制御技術を導入するとすれ
ば、D、A、Lのステージ制御回路を大巾に変更しなげ
ればならない。
したマイクロ命令のアライン制御技術を導入するとすれ
ば、D、A、Lのステージ制御回路を大巾に変更しなげ
ればならない。
一方、マクロ命令の一部のマクロ命令は、Lステージだ
けでなくEステージでもストレジオペランドを必要とす
る。
けでなくEステージでもストレジオペランドを必要とす
る。
従って、このようなマクロ命令の処理に当っては、Eス
テージで読出されたストレジオペランドのアライン制御
を専用のワイアドロシックにより行うとすると、そのた
めの回路が複雑となる。
テージで読出されたストレジオペランドのアライン制御
を専用のワイアドロシックにより行うとすると、そのた
めの回路が複雑となる。
このように、並列処理の大型コンピュータにデータアラ
イン装置を設けると、どうしても装置を複雑化する。
イン装置を設けると、どうしても装置を複雑化する。
(3)発明の目的
本発明は、以上の問題点をなくし、データのアライメン
トを、高速に、かつ、簡単な制御装置により行いうる、
マクロ命令を並列処理するデータ処理装置を提供するこ
とを目的とする。
トを、高速に、かつ、簡単な制御装置により行いうる、
マクロ命令を並列処理するデータ処理装置を提供するこ
とを目的とする。
この目的達成のために、本発明の情報処理装置は、Lス
テージで必要となる、データのアラインメントを専用の
ワイアドロシックにより制御される第1のアライン装置
を用いて行ない、Eステージで必要となる、データのア
ラインメントを、マイクロ命令制御の第2のアライン装
置を用いて行なう。
テージで必要となる、データのアラインメントを専用の
ワイアドロシックにより制御される第1のアライン装置
を用いて行ない、Eステージで必要となる、データのア
ラインメントを、マイクロ命令制御の第2のアライン装
置を用いて行なう。
マクロ命令の内、Lステージでのみストレジオペランド
のフェッチを必要とする命令については、このストレジ
オペランドのアラインメントは、第1のアライン装置に
より行なう。
のフェッチを必要とする命令については、このストレジ
オペランドのアラインメントは、第1のアライン装置に
より行なう。
一方、LステージとEステージの両方で、ストレジオペ
ランドのフェッチを必要とするマクロ命令の実行におい
ては、L、Eステージでフェッチされたストレジオペラ
ンドのアラインは、それぞれ、第1、第2のアライン装
置により行うものである。
ランドのフェッチを必要とするマクロ命令の実行におい
ては、L、Eステージでフェッチされたストレジオペラ
ンドのアラインは、それぞれ、第1、第2のアライン装
置により行うものである。
(4)実施例
以下、本発明を実施例を参照して詳細に説明する。
本実施例はインタナショナル・ビジネス・マシーンズ社
のシステム/370型電子計算機に適用可能であり、こ
のシステムの動作は上記会社の出版による刊行物「IB
Mシステム/370動作原理」により説明されている。
のシステム/370型電子計算機に適用可能であり、こ
のシステムの動作は上記会社の出版による刊行物「IB
Mシステム/370動作原理」により説明されている。
従って以下では、とくに必要のないかぎり、上のシステ
ムの動作の説明は省略するとともに、そこに用いられて
いる用語を、特別の場合を除き説明を省略して使用する
。
ムの動作の説明は省略するとともに、そこに用いられて
いる用語を、特別の場合を除き説明を省略して使用する
。
本発明による情報処理装置で使用される命令は並列処理
可能な命令と並列処理を禁止する命令に大別される。
可能な命令と並列処理を禁止する命令に大別される。
いずれの命令も4つのステージにわけて実行される点で
一致しているが、前者の各ステージが1マシンサイクル
で実行可能であるが、後者のEステージは1マシンサイ
クル以上要する点で、両者は相違する。
一致しているが、前者の各ステージが1マシンサイクル
で実行可能であるが、後者のEステージは1マシンサイ
クル以上要する点で、両者は相違する。
さらに、並列処理可能な命令の中には、そのAステージ
でバッファメモリ40又はメインメモリ10にあるスト
レジオペランドと、それ以外のオペランドをフェッチす
る命令とがある。
でバッファメモリ40又はメインメモリ10にあるスト
レジオペランドと、それ以外のオペランドをフェッチす
る命令とがある。
本発明は、とくにストレジオペランドのフェッチに関す
る回路に技術があり、それ以外のオペランドのフェッチ
に関する回路は、従来技術によるものと同じである。
る回路に技術があり、それ以外のオペランドのフェッチ
に関する回路は、従来技術によるものと同じである。
従って、以下では、ストレジオペランド以外のオペラン
ドをフェッチするマクロ命令の実行に関与する(口)路
は簡単化のために、図示もしくは説明されていない。
ドをフェッチするマクロ命令の実行に関与する(口)路
は簡単化のために、図示もしくは説明されていない。
従って、以下では、Aステージでのみストレジオペラン
ドフェッチを要求する、並列処理可能な命令と、Aステ
ージとEステージの両ステージでストレジオペランドフ
ェッチ要求を出す、並列処理禁止命令の2つに関与する
回路を図示し、説明する。
ドフェッチを要求する、並列処理可能な命令と、Aステ
ージとEステージの両ステージでストレジオペランドフ
ェッチ要求を出す、並列処理禁止命令の2つに関与する
回路を図示し、説明する。
前者の例はロード(L)命令であり、後者の例はムーブ
キャラクタ−(MVC)命令および10進命令(アト・
デシマル(AP)命令およびサブトラクト・デシマル(
SP)命令のようなストレジ・ツ・ストレジ(SS)形
式の命令である。
キャラクタ−(MVC)命令および10進命令(アト・
デシマル(AP)命令およびサブトラクト・デシマル(
SP)命令のようなストレジ・ツ・ストレジ(SS)形
式の命令である。
第1図は本発明によるデータ処理装置のブロック図であ
り、複数のマクロ命令およびデータを記憶したメインメ
モリ10ならびにバッファメモリ40、マクロ命令の解
読および実行ステージを制御するための命令ユニット2
0’、命令ユニット20′からの仮想アドレスを実アド
レスに変換するためのアドレスコントロール30、バッ
ファメモリ40の出力を左方向にバイト単位にシフトす
るためのサイクルシフタ50、このシフタ50の出力を
マスクするためのオペランドコントロール60、および
演算ユニッ)(ALU)70ならびにマクロ命令の実行
を制御するマイクロ命令を記憶したコントロールストレ
ジ80、バッファメモリ40から読出したデータのアラ
インメントを制御スるための2つのアラインコントロー
ル90゜90′、これらのアラインコントロールの出力
をセレクトするためのセレクタ100よりなる。
り、複数のマクロ命令およびデータを記憶したメインメ
モリ10ならびにバッファメモリ40、マクロ命令の解
読および実行ステージを制御するための命令ユニット2
0’、命令ユニット20′からの仮想アドレスを実アド
レスに変換するためのアドレスコントロール30、バッ
ファメモリ40の出力を左方向にバイト単位にシフトす
るためのサイクルシフタ50、このシフタ50の出力を
マスクするためのオペランドコントロール60、および
演算ユニッ)(ALU)70ならびにマクロ命令の実行
を制御するマイクロ命令を記憶したコントロールストレ
ジ80、バッファメモリ40から読出したデータのアラ
インメントを制御スるための2つのアラインコントロー
ル90゜90′、これらのアラインコントロールの出力
をセレクトするためのセレクタ100よりなる。
第1図に示したブロックの内、メインメモリ10、アド
レスコントロール30、バッファメモリ40、サイクル
シフタ50、オペランドコントロール60、ALU70
、コントロールストレジ80、アラインコントロール9
0はすべて、先に引用した特願昭54−3956号(特
開昭5597642号公報)記載のものと実質的に同一
の構成を有する。
レスコントロール30、バッファメモリ40、サイクル
シフタ50、オペランドコントロール60、ALU70
、コントロールストレジ80、アラインコントロール9
0はすべて、先に引用した特願昭54−3956号(特
開昭5597642号公報)記載のものと実質的に同一
の構成を有する。
第1図において、本発明に特徴的な点は、アラインコン
トロール90′、セレクタ100が設けられ、マクロ命
令の実行ステージに依存して、これらのアラインコント
ロール90、90’が切換えて使用される点および命令
ユニット20′が命令の並列処理を実行できるように構
成されている点である。
トロール90′、セレクタ100が設けられ、マクロ命
令の実行ステージに依存して、これらのアラインコント
ロール90、90’が切換えて使用される点および命令
ユニット20′が命令の並列処理を実行できるように構
成されている点である。
アラインコントロール90’、90はそれぞれ、Lステ
ージ、Eステージで読出されたデータの位置決め、切り
出しに使用される。
ージ、Eステージで読出されたデータの位置決め、切り
出しに使用される。
本発明の装置の詳細説明の前に、動作の概要を説明する
。
。
後述するごとくバッファメモリ40から読出された複数
個のマクロ命令は、サイクルシフタ50を介して、命令
ユニット2σに転送される。
個のマクロ命令は、サイクルシフタ50を介して、命令
ユニット2σに転送される。
これらの複数のマクロ命令はこれらが並列処理禁止命令
でないときは、命令ユニット20′により並列処理され
る。
でないときは、命令ユニット20′により並列処理され
る。
すなわち、第1のマクロ命令のり、A、L、Eステージ
をそれぞれ、第1、第2゜第3、第4のマシンサイクル
に実行するとすると、次の第2のマクロ命令のD−Eス
テージはそれぞれ、第2〜第5のマシンサイクルにおい
て実行され、その次の第3のマクロ命令のD−Eステー
ジはそれぞれ、第3〜第6のマシンサイクルにおいて実
行される。
をそれぞれ、第1、第2゜第3、第4のマシンサイクル
に実行するとすると、次の第2のマクロ命令のD−Eス
テージはそれぞれ、第2〜第5のマシンサイクルにおい
て実行され、その次の第3のマクロ命令のD−Eステー
ジはそれぞれ、第3〜第6のマシンサイクルにおいて実
行される。
同様に、その後のマクロ命令も並列処理される。
しかしながら、もし、第1のマクロ命令が並列処理禁止
命令である場合には、この第1のマクロ命令のEステー
ジが終了するまで、次の第2のマクロ命令のDステージ
の開始が中止される。
命令である場合には、この第1のマクロ命令のEステー
ジが終了するまで、次の第2のマクロ命令のDステージ
の開始が中止される。
並列処理禁止命令の実行にあっては、2つのストレジオ
ペランドアドレスが関与する。
ペランドアドレスが関与する。
各オペランドの処理に関して、上述のごとき、D、A、
L。
L。
Eのステージが実行される。
すなわち、その命令の実行に関与する1つのオペランド
について、D、A、L、ステージが1マシンサイクルご
とに実行され、これらと並列して、かつ、■マシンサイ
クル遅れて、この命令の実行に関与する他のオペランド
についての、D、A、L、Eステージが実行される。
について、D、A、L、ステージが1マシンサイクルご
とに実行され、これらと並列して、かつ、■マシンサイ
クル遅れて、この命令の実行に関与する他のオペランド
についての、D、A、L、Eステージが実行される。
すなわち、並列処理禁止命令は、第1、第2の2つのデ
コードステージと、第1、第2の2つのAステージと、
第1、第2のLステージと、1つのEステージとを有す
る。
コードステージと、第1、第2の2つのAステージと、
第1、第2のLステージと、1つのEステージとを有す
る。
各マクロ命令のAステージにおいて、バッファメモリ4
2にストレジオペランドをフェッチする場合、このオペ
ランドの仮想アドレスをアドレスコントロール30に換
20Aを介して送出する。
2にストレジオペランドをフェッチする場合、このオペ
ランドの仮想アドレスをアドレスコントロール30に換
20Aを介して送出する。
バッファメモリ40は2つの領域42,44からナル。
アドレスコントロール30は、命令ユニット20′から
の仮想アドレスを物理アドレスに変換するとともに、バ
ッファメモリ40の領域42゜44から連続した16バ
イトのオペランドを形成するための8バイトのオペラン
ドをそれぞれよみ出す。
の仮想アドレスを物理アドレスに変換するとともに、バ
ッファメモリ40の領域42゜44から連続した16バ
イトのオペランドを形成するための8バイトのオペラン
ドをそれぞれよみ出す。
バッファメモリ40から読出された16バイトのオペラ
ンドは、サイクルシフタ50により左方向に所望のバイ
ト数シフトされ、オペランドの先頭位置を制御した後、
オペランドコントロール60において、サイクルシフタ
50の出力のうち、所望のオペランドが含まれているバ
イト位置以外のバイト位置をマスクしてALU70に送
られる。
ンドは、サイクルシフタ50により左方向に所望のバイ
ト数シフトされ、オペランドの先頭位置を制御した後、
オペランドコントロール60において、サイクルシフタ
50の出力のうち、所望のオペランドが含まれているバ
イト位置以外のバイト位置をマスクしてALU70に送
られる。
以上のごとく、Aステージで生じたストレジオペランド
フェッチ要求の処理の間は、アドレスコントロール30
、サイクルシフタ50、オペランドコントロール60は
、セレクタ100によりセレクトされるアラインコント
ロール90′により制御される。
フェッチ要求の処理の間は、アドレスコントロール30
、サイクルシフタ50、オペランドコントロール60は
、セレクタ100によりセレクトされるアラインコント
ロール90′により制御される。
実行すべきマクロ命令の内、いわゆるストレジ・ツ・ス
トレジ(SS)形式の命令の場合には、このストレジオ
ペランドフェッチ要求がそのAステージだゆでなく、そ
のEステージでも発生する。
トレジ(SS)形式の命令の場合には、このストレジオ
ペランドフェッチ要求がそのAステージだゆでなく、そ
のEステージでも発生する。
Aステージで生じたストレジオペランドフェッチ要求の
処理は、並列処理許可命令と同じく、アラインコントロ
ール90′により制御される。
処理は、並列処理許可命令と同じく、アラインコントロ
ール90′により制御される。
一方、Eステージで発生したストレジオペランドフェッ
チ要求を処理するとき、セレクタ100はアラインコン
トロール90を選択し、このアラインコントロール90
が、アドレスコントロール30、サイクルシフタ50.
オペランドコントロール60を制御する。
チ要求を処理するとき、セレクタ100はアラインコン
トロール90を選択し、このアラインコントロール90
が、アドレスコントロール30、サイクルシフタ50.
オペランドコントロール60を制御する。
このように、Aステージでのストレジオペランドフェッ
チは、アラインコントロール90′で制御される。
チは、アラインコントロール90′で制御される。
このアラインコントロールはワイアドロシック回路で形
成される命令ユニツ) 20/により制御されるため、
このストレジオペランドフェッチは高速に処理される。
成される命令ユニツ) 20/により制御されるため、
このストレジオペランドフェッチは高速に処理される。
従って、他の命令との並列処理が可能となる。
一方、AステージとEステージの両方でメモリオペラン
ドフェッチを要求するマクロ命令についてのEステージ
でのストレジオペランドフェッチは、マイクロ命令によ
り制御されるアラインコントロール90により行なわれ
るため、アラインコントロール90は簡単な回路で実現
できる。
ドフェッチを要求するマクロ命令についてのEステージ
でのストレジオペランドフェッチは、マイクロ命令によ
り制御されるアラインコントロール90により行なわれ
るため、アラインコントロール90は簡単な回路で実現
できる。
以下、さらに本発明の装置を詳細に説明する。
第1図において、命令ユニット20′は次に実行すべき
マクロ命令をバッファメモリ40から読み出すための3
2ビツトの仮想アドレス命令フェッチコントロール21
4(第2図)から線20Aを介してアドレスコントロー
ル30に送る。
マクロ命令をバッファメモリ40から読み出すための3
2ビツトの仮想アドレス命令フェッチコントロール21
4(第2図)から線20Aを介してアドレスコントロー
ル30に送る。
アドレスコントロール30はこの仮想アドレスに応答し
て、線30A又は30B上にバッファメモリ40への3
2ビツトの物理アドレスを送出する。
て、線30A又は30B上にバッファメモリ40への3
2ビツトの物理アドレスを送出する。
バッファメモリ40は第1、第2の2つのバンク42゜
44よりなる。
44よりなる。
第1、第2のバンク42.44はそれぞれ線30A、3
0B上の物理、アドレスに応答して、線42A、42B
上にそれぞれ8バイト長の記憶情報を送出する。
0B上の物理、アドレスに応答して、線42A、42B
上にそれぞれ8バイト長の記憶情報を送出する。
読出すべきマクロ命令がバッファメモリ40の第1のバ
ンク42にストアされている場合には、16バイト長の
サイクルシフタ50は何らのシフト動作をせずに、線5
0Aを介して命令ユニットに第1のバンク42から出力
されたマクロ命令を送る。
ンク42にストアされている場合には、16バイト長の
サイクルシフタ50は何らのシフト動作をせずに、線5
0Aを介して命令ユニットに第1のバンク42から出力
されたマクロ命令を送る。
読出すべきマクロ命令が第2のバンク44にストアされ
ている場合には、サイクルシフタ50は8バイト分左方
向にシフト動作することにより、線50Aを介して命令
ユニット20′に第2のバンク44から出力されたマク
ロ命令を送られる。
ている場合には、サイクルシフタ50は8バイト分左方
向にシフト動作することにより、線50Aを介して命令
ユニット20′に第2のバンク44から出力されたマク
ロ命令を送られる。
マクロ命令の読出し時のサイクルシフタ50のシフト量
は、命令ユニット20′により、線28Aを介してアラ
インコントロール90′に送られる。
は、命令ユニット20′により、線28Aを介してアラ
インコントロール90′に送られる。
このアラインコントロール90′は第3図に示すごとく
、このシフト量をストアするためのシフトバイト数レジ
スタ(SHB REG)94/内にこのシフト量をス
トアし、シフト制御回路95′により、対応するシフト
動作を指令する信号を線90′Bを介してサイクルシフ
タ50に送る。
、このシフト量をストアするためのシフトバイト数レジ
スタ(SHB REG)94/内にこのシフト量をス
トアし、シフト制御回路95′により、対応するシフト
動作を指令する信号を線90′Bを介してサイクルシフ
タ50に送る。
もし、バッファメモリ40に所定のマクロ命令が記憶さ
れていないときには、4メガバイトの容量を有するメイ
ンメモリ10よりそのマクロ命令が線10Aを介してバ
ッファメモリ40へ転送された後、以上と同様に処理さ
れる。
れていないときには、4メガバイトの容量を有するメイ
ンメモリ10よりそのマクロ命令が線10Aを介してバ
ッファメモリ40へ転送された後、以上と同様に処理さ
れる。
なお、メインメモリ10へのアクセスのためのアドレス
はすべてアドレスコントロール30の出力線30A〜3
0Cにより供給される。
はすべてアドレスコントロール30の出力線30A〜3
0Cにより供給される。
簡単化のために、第1図ではメインメモリへのアドレス
線は省略されている。
線は省略されている。
このようにして、バッファメモリ40から複数のマクロ
命令がよみ出される。
命令がよみ出される。
第2図を参照するに、バッファメモリ40から読出され
た複数のマクロ命令は、命令バッファ200にストアさ
れる。
た複数のマクロ命令は、命令バッファ200にストアさ
れる。
これらのマクロ命令の内実行されるべき1つのマクロ命
令が4バイトの長さを有する命令レジスタ210に、公
知の命令ステージコントロール212の制御により、ス
トアされる。
令が4バイトの長さを有する命令レジスタ210に、公
知の命令ステージコントロール212の制御により、ス
トアされる。
各マクロ命令のDステージは、命令レジスタ210にセ
ットされるときから始まる。
ットされるときから始まる。
SS命令以外の命令は4バイトの長さを有する。
SS命令は6バイトの命令を有する。
SS命令を命令レジスタ210にセットするときは、ま
ず、その上位側4バイトのみがセットされる。
ず、その上位側4バイトのみがセットされる。
命令レジスタ210は4バイトの長さを有する。
この内、最上位側の1バイトフイールドはオペレーショ
ンコード(オペコード)のフィールドである。
ンコード(オペコード)のフィールドである。
SS形式以外の命令については、命令レジスタ210の
残りの3バイトフイールドには、オペランドアドレスを
指定するデータがストアされる。
残りの3バイトフイールドには、オペランドアドレスを
指定するデータがストアされる。
SS形式の命令については、上位側の第2バイトフイー
ルドには、オペランドのレングスのデータがストアされ
る。
ルドには、オペランドのレングスのデータがストアされ
る。
残りの2バイトのフィールドがオペランドアドレスを指
定するフィールドである。
定するフィールドである。
このマクロ命令のDステージにおいて、デコーダ230
が、このマクロ命令が並列処理禁止命令か否かを知るた
めにオペコードを解読する。
が、このマクロ命令が並列処理禁止命令か否かを知るた
めにオペコードを解読する。
解読の結果、このマクロ命令が並列処理禁止命令(SS
命令)であると判明したときは、デコーダ230からの
II I If出力がRSフリップフロップ(FF)2
3Bをセットする。
命令)であると判明したときは、デコーダ230からの
II I If出力がRSフリップフロップ(FF)2
3Bをセットする。
命令シーケンスコントローラ212は、このFF238
のセット出力に応答して、次のマシンサイクルにおいて
、SS命令の残りの2バイトを命令レジスタ210の下
位側の2バイトの位置にストアする。
のセット出力に応答して、次のマシンサイクルにおいて
、SS命令の残りの2バイトを命令レジスタ210の下
位側の2バイトの位置にストアする。
こうして、SS命令は、あたかも2つの4バイトの命令
であるかのようにして処理される。
であるかのようにして処理される。
このSS命令の実行中、次のマクロ命令を命令バッファ
200から命令レジスタ210に送出するのを中止し、
以後のマクロ命令のDステージを開始しない。
200から命令レジスタ210に送出するのを中止し、
以後のマクロ命令のDステージを開始しない。
レジスタ232.234は、テ゛コーダ230の出力を
順次、1マシンサイクルごとにシフトするためのレジス
タである。
順次、1マシンサイクルごとにシフトするためのレジス
タである。
従って、レジスタ232゜234は、それぞれ、命令レ
ジスタ210に先にストアされたマクロ命令のA、Lの
各ステージにおいて、デコーダ230の出力を保持して
いる。
ジスタ210に先にストアされたマクロ命令のA、Lの
各ステージにおいて、デコーダ230の出力を保持して
いる。
レジスタ234のl I I+出力はFF239をセッ
トするのに用いられる。
トするのに用いられる。
このFF239の出力は後述するごとく、各命令のEス
テージで使用される。
テージで使用される。
デコーダ230での解読の結果、命令レジスタ210内
のマクロ命令が並列処理禁止命令でないと判明したとき
は、デコーダ230からは°°01が出力され、FF2
38はセットされない。
のマクロ命令が並列処理禁止命令でないと判明したとき
は、デコーダ230からは°°01が出力され、FF2
38はセットされない。
従って、次のマシンサイクルにおいて、命令バッファ2
00から次のマクロ命令が、命令シーケンスコントロー
ル212の制御下で、命令レジスタ210にセットされ
る。
00から次のマクロ命令が、命令シーケンスコントロー
ル212の制御下で、命令レジスタ210にセットされ
る。
以下、同様に順次、マクロ命令カ命令レジスタ210に
1マシンサイクルごとに取り込まれる。
1マシンサイクルごとに取り込まれる。
命令キュー250は、命令レジスタ210に順次ストア
され、命令の前半の2バイト分を、順次1マシンサイク
ル遅れてストアするためのレジスタキューである。
され、命令の前半の2バイト分を、順次1マシンサイク
ル遅れてストアするためのレジスタキューである。
従って、命令キュー250からは、先に命令レジスタ2
10にストアされたマクロ命令のAステージにおいて、
このマクロ命令の上位側2バイトが出力される。
10にストアされたマクロ命令のAステージにおいて、
このマクロ命令の上位側2バイトが出力される。
命令キュー250の出力の内の上位側1バイトは、オペ
コードであり、コントロールストレジ80(第1図)内
のコントロールストレジアドレスレジスタ(C8AR)
810(第1図)にLステージにストアされ、Eステー
ジに使用される。
コードであり、コントロールストレジ80(第1図)内
のコントロールストレジアドレスレジスタ(C8AR)
810(第1図)にLステージにストアされ、Eステー
ジに使用される。
命令キュー250の出力の内、下位側の1バイトは、S
S形式のマクロ命令の実行時に使用される、オペランド
のデータ長に関するレングスフィールドである。
S形式のマクロ命令の実行時に使用される、オペランド
のデータ長に関するレングスフィールドである。
演算器252,226、レングスフィールドレジスタ(
LFR)254.220は、この命令キュー250から
出力されるレングスフィールドに応答して動作する回路
素子である。
LFR)254.220は、この命令キュー250から
出力されるレングスフィールドに応答して動作する回路
素子である。
各命令のAステージにおいて、命令キュー250がら出
力されるレングスフィールドは演算器252を通って、
LFR254,220にそれぞれ、その命令のし、Eス
テージにストアされる。
力されるレングスフィールドは演算器252を通って、
LFR254,220にそれぞれ、その命令のし、Eス
テージにストアされる。
これらの素子からなる回路の動作の詳細は後述する。
一方、命令レジスタ210にストアされた命令のDステ
ージにおいて、その命令の第2〜第4バイトは、公知の
オペランドアドレス計算回路216に送られ、この回路
216では、24ビツトからなるストレジオペランド仮
想アドレスを出力する。
ージにおいて、その命令の第2〜第4バイトは、公知の
オペランドアドレス計算回路216に送られ、この回路
216では、24ビツトからなるストレジオペランド仮
想アドレスを出力する。
このアドレスがバッファ40から読出スべきオペランド
のアドレスを示すときは、このアドレスは、オペランド
アドレスレジスタ(OAR)260にストアされる。
のアドレスを示すときは、このアドレスは、オペランド
アドレスレジスタ(OAR)260にストアされる。
このアドレスがバッファ40にオペランドを書込むべき
アドレスを示すときは、このアドレスは0AR270に
ストアされる。
アドレスを示すときは、このアドレスは0AR270に
ストアされる。
さらに、命令が、第2のオペランドの読出しを必要とす
るときは、そのアドレスは、0AR240にストアされ
る。
るときは、そのアドレスは、0AR240にストアされ
る。
ここで、オペランドアドレス計算回路により出力される
アドレスは、オペランドの先頭アドレスである。
アドレスは、オペランドの先頭アドレスである。
ここで、オペランドの先頭アドレスとは、そのオペラン
ドを規定するための、オペランドの両端についてのアド
レスのうちの小さい方の値(以下最左端アドレスとよぷ
)又は大きい方の値(以下最右端アドレスとよぷ)のい
ずれかであり、先頭アドレスがこれらのアドレスのいず
れに対応するかは、命令によって定まっていて、10進
演算命令の場合は後者であり、その他のSS命令の場合
は前者に相当する。
ドを規定するための、オペランドの両端についてのアド
レスのうちの小さい方の値(以下最左端アドレスとよぷ
)又は大きい方の値(以下最右端アドレスとよぷ)のい
ずれかであり、先頭アドレスがこれらのアドレスのいず
れに対応するかは、命令によって定まっていて、10進
演算命令の場合は後者であり、その他のSS命令の場合
は前者に相当する。
0AR27Qの内容は、1マシンサイクルごとに、順次
0AR272,274にシフトされ、さらに0AR27
4の内容は、後述するごとく、演算器276によりその
後修正される。
0AR272,274にシフトされ、さらに0AR27
4の内容は、後述するごとく、演算器276によりその
後修正される。
0AR260の内容も、演算器262により修正された
後、0AR264,266に1マシンサイクルごとにシ
フトされる。
後、0AR264,266に1マシンサイクルごとにシ
フトされる。
0AR266の内容は、その後、演算器268により修
正される。
正される。
0AR240の内容も、演算器242により修正された
後、0AR244,246にシフトされる。
後、0AR244,246にシフトされる。
0AR246の内容も、演算器248によりその後修正
される。
される。
セレクタ282は、第18図に示すように、0AR24
0,246,260,266,274のいずれかのオペ
ランドアドレスをセレクトして、アドレスコントロール
30へ線20Aを介して送る。
0,246,260,266,274のいずれかのオペ
ランドアドレスをセレクトして、アドレスコントロール
30へ線20Aを介して送る。
セレクタ284は、0AR266,260内の、オペラ
ンドアドレスの下4ビットをセレクトして、アラインコ
ントロール90.90’へ送ル。
ンドアドレスの下4ビットをセレクトして、アラインコ
ントロール90.90’へ送ル。
セレクタ280は、0AR240,246のオペランド
アドレスの下4ビットをセレクトして、アラインコント
ロール90,90’へ送ル。
アドレスの下4ビットをセレクトして、アラインコント
ロール90,90’へ送ル。
第3図に示すように、アラインコントロール90′では
命令ユニツ)20’内の命令レジスタ210から線21
Aを介して入力されるオペコードをデコーダ98′が解
読し、セレクタ282から供給されたオペランドのアラ
イン方向、すなわちこのオペランドのアドレスがそのオ
ペランドの最左端アドレスかあるいは最右端アドレスか
を判別する。
命令ユニツ)20’内の命令レジスタ210から線21
Aを介して入力されるオペコードをデコーダ98′が解
読し、セレクタ282から供給されたオペランドのアラ
イン方向、すなわちこのオペランドのアドレスがそのオ
ペランドの最左端アドレスかあるいは最右端アドレスか
を判別する。
オペランドアドレスが最左端アドレスを表示するか否か
は、あらかじめマクロ命令により決っているので、その
マクロ命令のオペコードを解読することにより、上記の
判別が可能となる。
は、あらかじめマクロ命令により決っているので、その
マクロ命令のオペコードを解読することにより、上記の
判別が可能となる。
たとえば10進演算命令の場合のように、オペランドア
ドレスが最右端アドレスを表示する場合には、デコーダ
98′は「1」を出力し、それ以外の場合には、「O」
を出力し、この出力はアライン方向レジスタ(ALDA
)99’にストアされる。
ドレスが最右端アドレスを表示する場合には、デコーダ
98′は「1」を出力し、それ以外の場合には、「O」
を出力し、この出力はアライン方向レジスタ(ALDA
)99’にストアされる。
このALDR99’の出力は各命令のLステージに、線
90′A、セレクタ100、線90“Aを介してアドレ
スコントロール30(第1図)に送られる。
90′A、セレクタ100、線90“Aを介してアドレ
スコントロール30(第1図)に送られる。
同様に、各命令のEステージで必要となるストレジオペ
ランドのアライン方向はアラインコントロール90上り
線90A、セレクタ゛100、線9σ′Aを介してアド
レスコントロール30に送られる。
ランドのアライン方向はアラインコントロール90上り
線90A、セレクタ゛100、線9σ′Aを介してアド
レスコントロール30に送られる。
アドレスコントロール30の詳細は第4図に示されてい
る。
る。
命令ユニット20′から線20Aを介して入力された3
2ビツトのオペランド仮想アドレスは公知のアドレス変
換回路32により対応する32ビツトのオペランド実ア
ドレスに変換され、線32Aを介してソースアドレスレ
ジスタ(SAR)34と36に入力される。
2ビツトのオペランド仮想アドレスは公知のアドレス変
換回路32により対応する32ビツトのオペランド実ア
ドレスに変換され、線32Aを介してソースアドレスレ
ジスタ(SAR)34と36に入力される。
一方、このオペランド実アドレスの最下位から4番目の
ビットが線32Bを介してアドレス修飾回路38はアラ
インコントロール90’、90から与えられる線90〃
A上の信号とアドレス変換回路32から与えられる線3
2B上の信号に応答して、第5図に示す関係により、線
38A、38B上にII OII II +81+又
は118+1のいずれかを示す4ビツトの2進データを
出力し1.5AR34,36にすでにストアされている
オペランド実アドレスにこれらのデータを加算する。
ビットが線32Bを介してアドレス修飾回路38はアラ
インコントロール90’、90から与えられる線90〃
A上の信号とアドレス変換回路32から与えられる線3
2B上の信号に応答して、第5図に示す関係により、線
38A、38B上にII OII II +81+又
は118+1のいずれかを示す4ビツトの2進データを
出力し1.5AR34,36にすでにストアされている
オペランド実アドレスにこれらのデータを加算する。
アドレス修飾回路38の具体的回路は第5図を参照する
ことにより当業者が容易に実現できるものであるため、
これ以上の説明は省略する。
ことにより当業者が容易に実現できるものであるため、
これ以上の説明は省略する。
5AR34,36はこの加算を行うために、カウンタに
て構成されるかあるいは内部に加算器を有するものにて
構成される。
て構成されるかあるいは内部に加算器を有するものにて
構成される。
この5AR34,36はそれぞれ第1、第2バンク42
.44から8バイトのデータであって、互いに連続した
アドレス域にある16バイトのデータを読み出すのに用
いられる。
.44から8バイトのデータであって、互いに連続した
アドレス域にある16バイトのデータを読み出すのに用
いられる。
回路38の動作は次の意味をもつ。
バッファメモリ40の第1、第2のバンク42.44の
アドレス付は交互に8バイト単位に行なわれている。
アドレス付は交互に8バイト単位に行なわれている。
すなわち、アドレスが10進表示で、O〜7゜16〜2
3.32〜39、・・・・・・・・・・・・の場合には
、そのアドレスに対するデータは第1バンク42にスト
アされており、アドレスが10進表示で8〜15.24
〜31.40〜47、・・・・・・・・・・・・の場合
には、そのアドレスに対するデータが第2バンク42に
ストアされている。
3.32〜39、・・・・・・・・・・・・の場合には
、そのアドレスに対するデータは第1バンク42にスト
アされており、アドレスが10進表示で8〜15.24
〜31.40〜47、・・・・・・・・・・・・の場合
には、そのアドレスに対するデータが第2バンク42に
ストアされている。
従って、アドレスを2進で表示する場合、アドレスの最
下位から第4番目のビット(これは線32B上に出力さ
れる)が「0」と「1」であるアドンスに対するデータ
はそれぞれ第1、第2バンク42,44にストアされて
いることになる。
下位から第4番目のビット(これは線32B上に出力さ
れる)が「0」と「1」であるアドンスに対するデータ
はそれぞれ第1、第2バンク42,44にストアされて
いることになる。
したがって、線90“A上の信号が「O」の場合には、
線32A上のアドレスは読出すべきデータの最左端アド
レスを示しているので、(1)線32B上の信号が「O
」のときには、線38A上にはデータIOJを出力し、
5AR34内のアドレスを線32A上のアドレスに保持
するとともに、線38B上にはデータ「8」を出力し、
5AR36内のアドレスを線32Aのアドレスに「8」
を加算した値とする、一方(11)線32B上の信号が
「1」のときには、線38B上にデータ「04を出力し
、5AR36内のアドレスを線32A上のアドレスに保
持するとともに、線38A上にはデータ「8」を出力し
、5AR34内のアドレスを線32A上のアドレスに「
8」を加算した値とする。
線32A上のアドレスは読出すべきデータの最左端アド
レスを示しているので、(1)線32B上の信号が「O
」のときには、線38A上にはデータIOJを出力し、
5AR34内のアドレスを線32A上のアドレスに保持
するとともに、線38B上にはデータ「8」を出力し、
5AR36内のアドレスを線32Aのアドレスに「8」
を加算した値とする、一方(11)線32B上の信号が
「1」のときには、線38B上にデータ「04を出力し
、5AR36内のアドレスを線32A上のアドレスに保
持するとともに、線38A上にはデータ「8」を出力し
、5AR34内のアドレスを線32A上のアドレスに「
8」を加算した値とする。
こうして、5AR34,36にはバッファメモリ40の
第1、第2のバンク42.44から線32A上のアドレ
スを最左端アドレスとする8バイトのデータを含む連続
した16バイトのデータを構成するための、8バイトの
データをそれぞれ読出すためのアドレスがストアされる
。
第1、第2のバンク42.44から線32A上のアドレ
スを最左端アドレスとする8バイトのデータを含む連続
した16バイトのデータを構成するための、8バイトの
データをそれぞれ読出すためのアドレスがストアされる
。
一方、線90“A上の信号が「1」の場合には、線32
A上のアドレスは読出すべきデータの最右端アドレスを
示しているので、(1)線32上の信号がrOJのとき
には、線38A上にはデータ「O」を出力し、5AR3
4内のアドレスを線32A上のアドレスに保持するとと
もに、線38Bにはデータ「−8」を出力し、5AR3
6内のアドレスを132A上のアドレスに「−8」を加
算した値とする、一方(11)線32B上の信号が「1
」のときには、線38B上にデータ「0」を出力し、5
AR36内のアドレスを線32A上のアドレスに保持す
るとともに、線38A上にはデータ「−8」を出力し、
5AR34内のアドレスを線32A上のアドレスに「−
8」を加算した値とする。
A上のアドレスは読出すべきデータの最右端アドレスを
示しているので、(1)線32上の信号がrOJのとき
には、線38A上にはデータ「O」を出力し、5AR3
4内のアドレスを線32A上のアドレスに保持するとと
もに、線38Bにはデータ「−8」を出力し、5AR3
6内のアドレスを132A上のアドレスに「−8」を加
算した値とする、一方(11)線32B上の信号が「1
」のときには、線38B上にデータ「0」を出力し、5
AR36内のアドレスを線32A上のアドレスに保持す
るとともに、線38A上にはデータ「−8」を出力し、
5AR34内のアドレスを線32A上のアドレスに「−
8」を加算した値とする。
こうして、5AR34,36にはバッファメモリ40の
第1、第2のバンク42,44から、線32A上のアド
レスを最右端アドレスとする8バイトのデータを含む連
続した16バイトのデータを構成するための8バイトの
データをそれぞれ読出すためのアドレスがストアされる
。
第1、第2のバンク42,44から、線32A上のアド
レスを最右端アドレスとする8バイトのデータを含む連
続した16バイトのデータを構成するための8バイトの
データをそれぞれ読出すためのアドレスがストアされる
。
これらの5AR34,36の出力は再び第1図を参照す
るに、線30A、30Bを介してそれぞれバッファメモ
リ40の第1、第2バンク42゜44から合計、16バ
イトのデータを読出す。
るに、線30A、30Bを介してそれぞれバッファメモ
リ40の第1、第2バンク42゜44から合計、16バ
イトのデータを読出す。
このようにして、バッファメモリ40からはオペランド
実アドレスから始まる8バイトのデータを含んだ16バ
イトのデータが1回の読出し動作にて出力される。
実アドレスから始まる8バイトのデータを含んだ16バ
イトのデータが1回の読出し動作にて出力される。
なお、バッファメモリ40内に所望のデータがストアさ
れていないときには、そのデータはメインメモリ10か
らバッファメモリ40に転送された後に上記の読出し動
作が行われる。
れていないときには、そのデータはメインメモリ10か
らバッファメモリ40に転送された後に上記の読出し動
作が行われる。
この16バイトのデータは線42A 、44Aを介して
サイクルシフタ50に送られる。
サイクルシフタ50に送られる。
サイクルシフタ50はセレクタ100から線90“Bを
介して送られるシフト制御信号によりきまるバイト数だ
け、入力されたデータを左方向にバイト単位にサイクル
シフトする。
介して送られるシフト制御信号によりきまるバイト数だ
け、入力されたデータを左方向にバイト単位にサイクル
シフトする。
アラインコントロール9 Q/。90は、それぞれA、
Eステージで発生したストレジオペランドフェッチ要求
を処理するためのシフト制御信号をそれぞれ、線90’
B、90Bに出力する。
Eステージで発生したストレジオペランドフェッチ要求
を処理するためのシフト制御信号をそれぞれ、線90’
B、90Bに出力する。
セレクタ100は、これらの190’B。90Bの一方
をセレクトする。
をセレクトする。
アラインコントロール90’においては、このシフト制
御信号は第3図のシフト制御回路95/により与えられ
る。
御信号は第3図のシフト制御回路95/により与えられ
る。
この回路95′はシフトバイト数決定回路(SHBDS
KT)93’の出力をシフトバイト数レジスタ(SHB
REG)94’を介して受けとり、対応するシフト
制御信号を出力する。
KT)93’の出力をシフトバイト数レジスタ(SHB
REG)94’を介して受けとり、対応するシフト
制御信号を出力する。
回路93’は命令ユニット20′からオペランドアドレ
スの下位4ビツトをそれぞれ線24A、26Aを介して
受は取り、これらのデータに基づいて、線20Bを介し
て送られるオペコードの制御のもとに、シフトバイト数
を決定し、SHB REG94/にストアする。
スの下位4ビツトをそれぞれ線24A、26Aを介して
受は取り、これらのデータに基づいて、線20Bを介し
て送られるオペコードの制御のもとに、シフトバイト数
を決定し、SHB REG94/にストアする。
回路93′の詳細は第7図に示されるごとく、補数回路
933′と加算6937’ならびにセレクタ930’、
932’、936’よりなる。
933′と加算6937’ならびにセレクタ930’、
932’、936’よりなる。
補数回路933′はオペランドアドレスの下位4ビツト
からなるデータII X IIのIf 2 Ifの補数
、従って、数学的にはデータ“−X“を線933’Aに
出力する。
からなるデータII X IIのIf 2 Ifの補数
、従って、数学的にはデータ“−X“を線933’Aに
出力する。
セレクタ932′は、線24A、26Aを選択する。
セレクタ935’ハ!933’A上ノーr”−タ” −
X ”と、線934’A上の定数データIf g II
を選択する。
X ”と、線934’A上の定数データIf g II
を選択する。
加算器937′はセレクタ932′と936′の出力の
和を求める。
和を求める。
セレクタ930′はセレクタ932′の出力と、加算器
937′の出力の1つを選択する。
937′の出力の1つを選択する。
これらのセレクタ932’、 936’、 930’の
動作はすべて、線20Bを介して命令ユニット20′よ
り入力されるオペコードにより制御される。
動作はすべて、線20Bを介して命令ユニット20′よ
り入力されるオペコードにより制御される。
さらに、セレクタ932′は命令ユニット20′より供
給される線212A上の信号にも応答する。
給される線212A上の信号にも応答する。
これらのセレクタの選択動作とオペコードとの関係は第
10図に示す通りである。
10図に示す通りである。
第10図には各オペコードの使用例も示しである。
再び第1図において、サイクルシフタ50は、アライン
コントロール90の制御のもとにあるバイト数たけ入力
されたデータを左サイクルシフトした後に、シフト後の
データの上位8バイトを切り出し、線50A上を介して
オペランドコントロール60に送る。
コントロール90の制御のもとにあるバイト数たけ入力
されたデータを左サイクルシフトした後に、シフト後の
データの上位8バイトを切り出し、線50A上を介して
オペランドコントロール60に送る。
オペランドコントロール60は第11図に示すごとく、
セレクタ100から線90“Cを介して送られる8ピツ
トのフェッチマスクデータに応答して、線50Aを介し
て入力されたデータのうち、あるバイト位置のデータを
すべてゲート62でカットしてオペランドバッファレジ
スタ(OBR)600にストアしたうえで、ALU70
へ線60Aを介して送る。
セレクタ100から線90“Cを介して送られる8ピツ
トのフェッチマスクデータに応答して、線50Aを介し
て入力されたデータのうち、あるバイト位置のデータを
すべてゲート62でカットしてオペランドバッファレジ
スタ(OBR)600にストアしたうえで、ALU70
へ線60Aを介して送る。
アラインコントロール90’、 90は、それぞれ、L
、Eステージで発生したストレジオペランドフェッチ要
求を処理するためのフェッチマスクデータを、それぞれ
、線90’C,90Cに出力する。
、Eステージで発生したストレジオペランドフェッチ要
求を処理するためのフェッチマスクデータを、それぞれ
、線90’C,90Cに出力する。
セレクタ100は、線90’C,90Cの一方をセレク
トする。
トする。
アラインコントロール90′においては、このフェッチ
マスクデータは第3図に示すごとく、マスクパターン決
定回路(MPDCKT)96′より線96′Aとフェッ
チマスクレジスタ(FMARK REG)97’を介
して与えられる。
マスクデータは第3図に示すごとく、マスクパターン決
定回路(MPDCKT)96′より線96′Aとフェッ
チマスクレジスタ(FMARK REG)97’を介
して与えられる。
回路96′は読出すべきデータ長を定めるフェッチデー
タ長決定回路(FDLDCKT)91’の出力とオペラ
ンドアドレス内の下位側4ピツトの出力に応答し、12
0Bを介して与えられるオペコードの制御下でフェッチ
マスクパターンを出力する。
タ長決定回路(FDLDCKT)91’の出力とオペラ
ンドアドレス内の下位側4ピツトの出力に応答し、12
0Bを介して与えられるオペコードの制御下でフェッチ
マスクパターンを出力する。
FDLDCKT91’は命令ユニット20′内の命令キ
ュー250から線25Aを介して与えられるレングスフ
ィールドに応答し、線20B上のオペコードの制御下で
フェッチデータ長を定める。
ュー250から線25Aを介して与えられるレングスフ
ィールドに応答し、線20B上のオペコードの制御下で
フェッチデータ長を定める。
回路91’の詳細は第6図に記載されているごとく、最
小値検出回路(MIN DET)911’。
小値検出回路(MIN DET)911’。
915’、917’と定数レジスタ914’、919“
と、これらの出力の1つをセレクトするためのセレクタ
910′からなる。
と、これらの出力の1つをセレクトするためのセレクタ
910′からなる。
セレクタ910′は、線20Bを介して与えられるオペ
コードにより制御される。
コードにより制御される。
オペコードとセレクタ910′の出力との関係ハ第10
図に示されている。
図に示されている。
回路911’、915’。917′は命令ユニット20
′内の命令キュー250のし/ゲスフィールドに線25
Aを介して結合されており、回路911′はこのレング
スフィールド内のデータ全長LF’と117 w′とを
比較し、小さい方の値を出力する。
′内の命令キュー250のし/ゲスフィールドに線25
Aを介して結合されており、回路911′はこのレング
スフィールド内のデータ全長LF’と117 w′とを
比較し、小さい方の値を出力する。
ここで、If W Itは、セレクタ284から出力さ
れるオペランドアドレスの下4ビットの内の最初の1ピ
ツトを除いた下3ビットよりなるデータである。
れるオペランドアドレスの下4ビットの内の最初の1ピ
ツトを除いた下3ビットよりなるデータである。
回路915ノはデータ長LF’の上位側4ビツトで表わ
されるデータLF’1と1171+とを比較し、小さい
方のデータを出力する。
されるデータLF’1と1171+とを比較し、小さい
方のデータを出力する。
回路917′はデータ長LF’の下位側4ビツトで構成
されるデータLF”2とII 7 Ifとを比較し、小
さい方のデータを出力する。
されるデータLF”2とII 7 Ifとを比較し、小
さい方のデータを出力する。
回路911′はバッファメモリ40からの読出しデータ
長を8バイト以下に制限すればよい場合、たとえばMV
C命令の場合に選択される。
長を8バイト以下に制限すればよい場合、たとえばMV
C命令の場合に選択される。
回路915’、917’は10進演算命令の場合であっ
て、それぞれ第1、第2オペランドをよみ出す時に用い
られる。
て、それぞれ第1、第2オペランドをよみ出す時に用い
られる。
REG914’は、たとえばロード命令のときに選択さ
れ、LF’の値に無関係に4バイトのデータを読出すの
に使われる。
れ、LF’の値に無関係に4バイトのデータを読出すの
に使われる。
MPDCKTe6’(第3図)の詳細は第8図に示され
るごとく、FDLDCKT91’の出力が線91Aを介
して入力される左パターン発生器962′と右パターン
発生器964′と、左パターン発生器962′の出力を
、線24A上の0AR240内の下位4ピツトのうちの
下3ビットからなるデータで表わされる値だけ右方向に
シフトするための右シフタ966′と、発生器962’
。
るごとく、FDLDCKT91’の出力が線91Aを介
して入力される左パターン発生器962′と右パターン
発生器964′と、左パターン発生器962′の出力を
、線24A上の0AR240内の下位4ピツトのうちの
下3ビットからなるデータで表わされる値だけ右方向に
シフトするための右シフタ966′と、発生器962’
。
964′と右シフタ9661の出力を選択するためのセ
レクタ9601とよりなる。
レクタ9601とよりなる。
このセレクタ960′は、線20B上のオペコードによ
り制御される。
り制御される。
発生器962’、964’の出力は、第9図に示される
ごとく、FDLD CKT91’(第3図)がら出力
されるフエツデータ長の数プラス1だけのII I I
Iを左側と右側とにそれぞれ有する8ビツトのデータを
出力するものである。
ごとく、FDLD CKT91’(第3図)がら出力
されるフエツデータ長の数プラス1だけのII I I
Iを左側と右側とにそれぞれ有する8ビツトのデータを
出力するものである。
セレクタ960′の出力はFMARK REG97′
(第3図)へ線96′Aを介して送られ、そこにストア
される。
(第3図)へ線96′Aを介して送られ、そこにストア
される。
このFMARK REG97’の出力が第11図に示
したオペランドコントロール60内の8個のゲート62
に送られ、セレクタ960′の出力のうちのII OI
Iに対応するゲートをオフとすることにより、そのゲー
トに入力された1バイトをすべてII OIIとし、I
t II+に対応するゲートをオンとすることにより、
そのゲートに入力された1バイトは素通りさせる。
したオペランドコントロール60内の8個のゲート62
に送られ、セレクタ960′の出力のうちのII OI
Iに対応するゲートをオフとすることにより、そのゲー
トに入力された1バイトをすべてII OIIとし、I
t II+に対応するゲートをオンとすることにより、
そのゲートに入力された1バイトは素通りさせる。
こうして、0BR600には、所望の桁位のバイトのみ
が有意であって、他はすべてIt □ I+であるデー
タがストアされる。
が有意であって、他はすべてIt □ I+であるデー
タがストアされる。
こうして0BR600内にストアされたデータは線60
Aを介して、ALU70へ送られる。
Aを介して、ALU70へ送られる。
ストレジオペランドのフェッチがある命令のAステージ
で要求された場合、このオペランドのアラインは、上述
したアラインコントロール9σにより行なわれる。
で要求された場合、このオペランドのアラインは、上述
したアラインコントロール9σにより行なわれる。
しかし、SS形式の命令では、AステージとEステージ
の両方においてストレジオペランドのフェッチが要求さ
れる。
の両方においてストレジオペランドのフェッチが要求さ
れる。
この場合、Aステージで生じたストレジオペランドフェ
ッチ要求は、SS形式以外の命令と同じく、アラインコ
ントロール90’を用いて処理される。
ッチ要求は、SS形式以外の命令と同じく、アラインコ
ントロール90’を用いて処理される。
Eステージで生じたストレジオペランドフェッチ要求は
、先に引用した特願昭54−3956と同じく、コント
ロールストレジ80とアラインコントロール90を用い
て処理される。
、先に引用した特願昭54−3956と同じく、コント
ロールストレジ80とアラインコントロール90を用い
て処理される。
Aステージの処理において、アラインコントロール90
′内のFDLDCKT91’からの出力は、線91′A
を介して、命令ユニット20′内の演算器252に送ら
れ、命令キュー250のレングスフィールドLF’との
差が、Lステージにおいて、LFR254にストアされ
、さらに、EステージにおいてLFR220にストアさ
れる。
′内のFDLDCKT91’からの出力は、線91′A
を介して、命令ユニット20′内の演算器252に送ら
れ、命令キュー250のレングスフィールドLF’との
差が、Lステージにおいて、LFR254にストアされ
、さらに、EステージにおいてLFR220にストアさ
れる。
このLFR220には、Eステージにてフェッチすべき
ストレジオペランドの長さLFがストアされることにな
る。
ストレジオペランドの長さLFがストアされることにな
る。
このデータLFは、線22Aを介して、アラインコント
ロール90に送られる。
ロール90に送られる。
一方、命令キュー250から線20Bを介してオペコー
ドが、コントロールストレジ80内のコントロールスト
レジアドレスレジスタ(C8AR)810(第1図)に
、Eステージに先立つLステージにおいて、線20Bを
介して入力される。
ドが、コントロールストレジ80内のコントロールスト
レジアドレスレジスタ(C8AR)810(第1図)に
、Eステージに先立つLステージにおいて、線20Bを
介して入力される。
このコントロールストレジ30は、このオペコードで指
定されるマイクロ命令シーケンス内のマイクロ命令を順
次読出し、そのマクロ命令のEステージの実行を制御す
る。
定されるマイクロ命令シーケンス内のマイクロ命令を順
次読出し、そのマクロ命令のEステージの実行を制御す
る。
コントロールストレジ30は1つのマイクロ命令を読出
すと、その中に設けられたコントロールレジスタ(CR
)800(第12図)にそのマイクロ命令をストアする
。
すと、その中に設けられたコントロールレジスタ(CR
)800(第12図)にそのマイクロ命令をストアする
。
各マイクロ命令は、次によみ出すべきマイクロ命令を指
定するためのネクストアドレスフィールド802、命令
の実行の制御情報を表示するためのコントロールフィー
ルド804、Eステージの動作終了か否かを示すための
動作終了フィールド805、読出されたデータの位置合
わせおよび切り出しを制御するための4ビツトのアライ
ンフィールド806を有する。
定するためのネクストアドレスフィールド802、命令
の実行の制御情報を表示するためのコントロールフィー
ルド804、Eステージの動作終了か否かを示すための
動作終了フィールド805、読出されたデータの位置合
わせおよび切り出しを制御するための4ビツトのアライ
ンフィールド806を有する。
このフィールド804の中には、Eステージでの書込み
リクエスト、読出しリクエストを指示するフィールドが
あり、このフィールドは線80Cを介して出力される。
リクエスト、読出しリクエストを指示するフィールドが
あり、このフィールドは線80Cを介して出力される。
このフィールドの「OO」、「01」はそれぞれ、第2
オペランド、第1オペランドのリードリクエストを指示
し、「10」又は「11」は、第1オペランドの書込み
を指示する。
オペランド、第1オペランドのリードリクエストを指示
し、「10」又は「11」は、第1オペランドの書込み
を指示する。
アラインコントロール90はこのアラインフィールド8
06を線80Aを介して受けとり、線90A〜90Cを
介して、それぞれ、アドレスコントロール30、サイク
ルシフタ50、オペランドコントロール60へ制御信号
を送出する。
06を線80Aを介して受けとり、線90A〜90Cを
介して、それぞれ、アドレスコントロール30、サイク
ルシフタ50、オペランドコントロール60へ制御信号
を送出する。
第13図に示すように、アラインコントロール90では
コントロールレジスタ800内のアラインフィールド8
06をデコーダ98が解読し、命令ユニット20′より
供給されるオペランドアドレスが最左端アドレスかある
いは最右端アドレスかを判別する。
コントロールレジスタ800内のアラインフィールド8
06をデコーダ98が解読し、命令ユニット20′より
供給されるオペランドアドレスが最左端アドレスかある
いは最右端アドレスかを判別する。
このオペランドアドレスが最左端アドレスを表示するか
否かは、あらかじめマクロ命令により決っているので、
そのマクロ命令により読出されたアラインフィールドの
内容をマクロ命令によりあらかじめ一義的に定めておく
ことにより、上記の判別が可能となる。
否かは、あらかじめマクロ命令により決っているので、
そのマクロ命令により読出されたアラインフィールドの
内容をマクロ命令によりあらかじめ一義的に定めておく
ことにより、上記の判別が可能となる。
たとえば10進演算命令の場合のように、オペランドア
ドレスが最右端アドレスを表示する場合には、デコーダ
98は「1」を出力し、それ以外の場合には「0」を出
力し、この出力はアライン方向レジスタ(ALDR)9
9にストアされる。
ドレスが最右端アドレスを表示する場合には、デコーダ
98は「1」を出力し、それ以外の場合には「0」を出
力し、この出力はアライン方向レジスタ(ALDR)9
9にストアされる。
このALDR99の出力は線90Aを介してアドレスコ
ントロール30(第1図)に送られる。
ントロール30(第1図)に送られる。
アラインコントロール90は、Eステージにおけるサイ
クルシフタ50のためのシフト制御信号をシフト制御回
路95により与える。
クルシフタ50のためのシフト制御信号をシフト制御回
路95により与える。
この回路95はシフトバイト数決定回路(SHBD
CKT)93の出力をシフトバイト数レジスタ(SHB
REG)94を介して受けとり、対応するシフト制
御信号を出力する。
CKT)93の出力をシフトバイト数レジスタ(SHB
REG)94を介して受けとり、対応するシフト制
御信号を出力する。
回路93は命令ユニット20′から供給されル第1、第
2オペランドアドレスの下位4ビツトをそれぞれ線24
A、26Aを介して受は取るとともに、演算器(ALU
)70(第1図)内のワ−クレジスタ(WR)72(図
示せず)内のデータを受は取り、これらのデータに基づ
いて、線80Aを介して送られるCR800内のアライ
ンフィールド806の制御のもとに、シフトバイト数を
決定し、SHB REG94にストアする。
2オペランドアドレスの下位4ビツトをそれぞれ線24
A、26Aを介して受は取るとともに、演算器(ALU
)70(第1図)内のワ−クレジスタ(WR)72(図
示せず)内のデータを受は取り、これらのデータに基づ
いて、線80Aを介して送られるCR800内のアライ
ンフィールド806の制御のもとに、シフトバイト数を
決定し、SHB REG94にストアする。
回路93の詳細は第15図に示されるごとく、セレクタ
932,936,930と補数回路933、レジスタ9
34,935と加算器93γよりなる。
932,936,930と補数回路933、レジスタ9
34,935と加算器93γよりなる。
補数回路933はOAR24の下位4ビツトからなるデ
ータ゛X″のu 211の補数、従って、数学的にはデ
ータIT Xllを出力する。
ータ゛X″のu 211の補数、従って、数学的にはデ
ータIT Xllを出力する。
レジスタ934.935はそれぞれ定数It g 、、
?+ 13 IIに相当する2進データを記憶して
いる。
?+ 13 IIに相当する2進データを記憶して
いる。
セレクタ932は0AR24,26の下位4ピツドX°
゛、II Y IIを選択し、セレクタ936は補数回
路933、レジスタ934,935の出力の1つを選択
する。
゛、II Y IIを選択し、セレクタ936は補数回
路933、レジスタ934,935の出力の1つを選択
する。
加算器937はセレクタ932と936の出力の和を求
める。
める。
セレクタ930はWR72の出力゛Z′、線26A上の
データIT Y 11の下3ビットをすべて゛0パとし
た、1938A上のデータ゛l y/ 11、セレクタ
932の出力、加算器937の出力の1つを選択する。
データIT Y 11の下3ビットをすべて゛0パとし
た、1938A上のデータ゛l y/ 11、セレクタ
932の出力、加算器937の出力の1つを選択する。
これらのセレクタ932,936,930の動作はすべ
て、線82Aを介して入力される、CR82内のアライ
ンフィールド806内のデータにより制御される。
て、線82Aを介して入力される、CR82内のアライ
ンフィールド806内のデータにより制御される。
これらのセレクタの選択動作とアラインフィールド80
6との関係は第6図に示す通りである。
6との関係は第6図に示す通りである。
第18図には各アラインフィールドの使用例も示しであ
る。
る。
デコーダ98(第13図)の出力がOIIのときには、
セレクタ930により出力されるデータは、第17図に
示すとおり、IIXII l“Y lle+ y/
91 II 211.11y−X”、”Y+13”、
”Y+9”のいずれかに相当し、デコーダ98(第13
図)の出力が゛1パのときには、セレクタ930により
出力されるデータは”Y+9″′又は”X+9”に相当
する。
セレクタ930により出力されるデータは、第17図に
示すとおり、IIXII l“Y lle+ y/
91 II 211.11y−X”、”Y+13”、
”Y+9”のいずれかに相当し、デコーダ98(第13
図)の出力が゛1パのときには、セレクタ930により
出力されるデータは”Y+9″′又は”X+9”に相当
する。
従って、あるマクロ命令の処理にあたって、そのマクロ
命令の実行の制御を司さどるマイクロ命令シーケンス内
のアラインフィールドのデータを、シフトしたいバイト
数がセレクタ930から出力されるように、第17図に
従って特定しておけばよい。
命令の実行の制御を司さどるマイクロ命令シーケンス内
のアラインフィールドのデータを、シフトしたいバイト
数がセレクタ930から出力されるように、第17図に
従って特定しておけばよい。
たたし、このアラインデータは、後述のセレクタ960
の選択動作をも特定したうえで定めねばならない。
の選択動作をも特定したうえで定めねばならない。
なお、第14図において、WR72のデータII Z
IIをセレクトする場合には、このデータ゛′Z“を必
要に応じて定めることにより、任意のバイト数のシフト
が可能となる。
IIをセレクトする場合には、このデータ゛′Z“を必
要に応じて定めることにより、任意のバイト数のシフト
が可能となる。
アラインコントロール90は、Eステージにおけるオペ
ランドコントロール60を制御するためのフェッチマス
クデータを第13図に示すマスクパターン決定回路(M
PDCKT)96より線96Aとフェッチマスクレジス
タ(FMARKREG)97を介して与える。
ランドコントロール60を制御するためのフェッチマス
クデータを第13図に示すマスクパターン決定回路(M
PDCKT)96より線96Aとフェッチマスクレジス
タ(FMARKREG)97を介して与える。
回路96は読出すべきデータ長を定めるフェッチデータ
長決定回路(FDLDCKT)91の出力と0AR24
内の下位側4ビツトの出力に応答し、180Aを介して
与えられるCR800内のアラインフィールド8060
制御下でフェッチマスクパターンを出力する。
長決定回路(FDLDCKT)91の出力と0AR24
内の下位側4ビツトの出力に応答し、180Aを介して
与えられるCR800内のアラインフィールド8060
制御下でフェッチマスクパターンを出力する。
FDLDCKT91は命令ユニット20内のLFR22
およびALU70内のWR72の出力に応答し、アライ
ンフィールド8060制御下でフェッチデータ長を定め
る。
およびALU70内のWR72の出力に応答し、アライ
ンフィールド8060制御下でフェッチデータ長を定め
る。
回路91の詳細は第14図に記載されているごとく、最
小値検出回路(MIN DET)911゜913.9
15,917と定数レジスタ919と、これらの出力と
WR72からの線72A上の出力の1つをセレクトする
ためのセレクタ910からなる。
小値検出回路(MIN DET)911゜913.9
15,917と定数レジスタ919と、これらの出力と
WR72からの線72A上の出力の1つをセレクトする
ためのセレクタ910からなる。
セレクタ910は、線82Aを介して与えられるCR8
0内のアラインフィールド806により制御される。
0内のアラインフィールド806により制御される。
アラインフィールドの内容とセレクタ910の出力との
関係は第17図に示されている。
関係は第17図に示されている。
回路911.913,915,917は命令ユニット内
のLFR220に結合されており、回路911と913
はこのLFR220内のデータ全長LFとそれぞれ7“
、11311とを比較し、小さい方の値を出力する。
のLFR220に結合されており、回路911と913
はこのLFR220内のデータ全長LFとそれぞれ7“
、11311とを比較し、小さい方の値を出力する。
回路915はデータ長LFの上位側4ビツトで表わされ
るデータLF1と°゛7″とを比較し、小さい方のデー
タを出力する。
るデータLF1と°゛7″とを比較し、小さい方のデー
タを出力する。
回路917はデータ長LFの下位側4ビツトで構成され
るデータLF2と7″とを比較し、小さい方のデータを
出力する。
るデータLF2と7″とを比較し、小さい方のデータを
出力する。
回路911はバッファメモリ40からの読出しデータ長
を8バイト以下に制限すればよい場合、たとえばMVC
命令の場合に選択される。
を8バイト以下に制限すればよい場合、たとえばMVC
命令の場合に選択される。
回路913はバッファメモリ40からの読出しデータ長
を4バイト以下に制限する必要があるときに選択される
。
を4バイト以下に制限する必要があるときに選択される
。
本実施例ではワードオーバラップ処理を要する命令の実
行時に選択される。
行時に選択される。
回路915゜917は10進演算命令の場合であって、
それぞれ第1、第2オペランドをよみ出す時に用いられ
る。
それぞれ第1、第2オペランドをよみ出す時に用いられ
る。
REG919は、たとえば割込み処理のときに選択され
、LFR22の内容に無関係に8バイトのデータを読出
すのに使われる。
、LFR22の内容に無関係に8バイトのデータを読出
すのに使われる。
線72AはWR72内の任意の値でもって読出しデータ
長をきめる場合に選択される。
長をきめる場合に選択される。
MPDCKT96の詳細は第16図に示されるごとく、
FDLDCKT91の出力が線91Aを介して入力され
る左パターン発生器962と右パターン発生器964と
、左パターン発生器962の出力を、線24A上の0A
R24内の下位4ビツトのうちの下3ビットからなるデ
ータで表わされる値たけ右方向にシフトするための右シ
フタ966と、発生器962,964と右シフタ966
の出力を選択するためのセレクタ960とよりなる。
FDLDCKT91の出力が線91Aを介して入力され
る左パターン発生器962と右パターン発生器964と
、左パターン発生器962の出力を、線24A上の0A
R24内の下位4ビツトのうちの下3ビットからなるデ
ータで表わされる値たけ右方向にシフトするための右シ
フタ966と、発生器962,964と右シフタ966
の出力を選択するためのセレクタ960とよりなる。
このセレクタ960は、線82A上のCR80内のアラ
インフィールド806により制御される。
インフィールド806により制御される。
発生器962,964、右シフタ966は第8図の対応
するものと全く同じ構成である。
するものと全く同じ構成である。
セレクタ960の出力はFMARK REG97(第
13図)へ線96Aを介して送られ、そこにストアされ
る。
13図)へ線96Aを介して送られ、そこにストアされ
る。
このFMARK REG97の出力が第11図に示し
たオペランドコントロール60に送られる。
たオペランドコントロール60に送られる。
読出すべきデータの全長LFが8バイト以下のトキには
、一回の読出し動作でオペランド実アドレスで指定され
るデータの読出しが終了する。
、一回の読出し動作でオペランド実アドレスで指定され
るデータの読出しが終了する。
しかし、この全長LFが8バイトをこえるときには、全
長LFのデータが読出されるまで、以上の読出し動作が
繰り返される。
長LFのデータが読出されるまで、以上の読出し動作が
繰り返される。
すなわち、FDLDCKT91の出力は、線91Aを介
して命令ユニット20′内の減算器226へ送られ、L
FR220の値をこの出力との差をLFR220にスト
アする。
して命令ユニット20′内の減算器226へ送られ、L
FR220の値をこの出力との差をLFR220にスト
アする。
この結果得られる、LFR220の内容が負でない場合
には、LFR220,0AR260又は240内の内容
を用いて再びデータの読出しが行なわれる。
には、LFR220,0AR260又は240内の内容
を用いて再びデータの読出しが行なわれる。
この読出し動作は、LFR220の内容が負になるまで
繰り返される。
繰り返される。
一方、命令ユニット20は、バッファメモリ40からの
上述のデータの読出し動作中、0AR240(第2図)
内にストアしたオペランド仮想アドレスをアドレスコン
トロール30へ送出スる。
上述のデータの読出し動作中、0AR240(第2図)
内にストアしたオペランド仮想アドレスをアドレスコン
トロール30へ送出スる。
このアドレスコントロール30は、前述したのと全く同
じようにしてオペランドに対する実アドレスを発生させ
る。
じようにしてオペランドに対する実アドレスを発生させ
る。
実行中の命令がこのオペランド実アドレスに対するデー
タをバッファメモリ40より読出す必要がある場合には
、これまで述べたのと全く同じ手順により、読出し動作
がその後、コントロールレジスタ800(第12図)内
には、動作終了フィールド805に1″を有するマイク
ロ命令がよみ出され、この命令の実行によりEステージ
が終了する。
タをバッファメモリ40より読出す必要がある場合には
、これまで述べたのと全く同じ手順により、読出し動作
がその後、コントロールレジスタ800(第12図)内
には、動作終了フィールド805に1″を有するマイク
ロ命令がよみ出され、この命令の実行によりEステージ
が終了する。
このとき、この動作終了フィールド805は、線80B
を介して命令ユニット20′に送られ、先にセットされ
ているFF238.239をリセットする。
を介して命令ユニット20′に送られ、先にセットされ
ているFF238.239をリセットする。
こうして、再び、次のマクロ命令の実行が開始される。
以上述べた実施例の理解をより明確にするために、具体
例を示す。
例を示す。
MVC命令を処理する場合であって、第1、第2オペラ
ンドアドレスの下4ビットで表わされるデータ“X 1
1 “Y″が10進表示で、それぞれ“2″ “6″
とし、データの全長LF’が10進表示で“16″とす
る。
ンドアドレスの下4ビットで表わされるデータ“X 1
1 “Y″が10進表示で、それぞれ“2″ “6″
とし、データの全長LF’が10進表示で“16″とす
る。
従って、読出すべきデータの全長は17バイトである。
第1デコードの終了後0AR260と270に第1オペ
ランドアドレスがセットされる。
ランドアドレスがセットされる。
また、命令ステージコントロール212により1212
A上に“′0″′が出力される。
A上に“′0″′が出力される。
次の第2デコードの終了後0AR240に第2オペラン
ドアドレスがセットされ、同時に、第1Aステージの終
了後にともなって、0AR272に0AR270の出力
がそのままセットされる。
ドアドレスがセットされ、同時に、第1Aステージの終
了後にともなって、0AR272に0AR270の出力
がそのままセットされる。
またステージコントロール212により線212A上に
“1″がセットされる。
“1″がセットされる。
次の第2Aステージの終了後、アラインコントロール9
0′Aに読出し長「5」がセットされていることにより
、演算器242で、0AR240の値を「+6」させて
、0AR244にセットされる。
0′Aに読出し長「5」がセットされていることにより
、演算器242で、0AR240の値を「+6」させて
、0AR244にセットされる。
従って、0AR244の下4ビットは「12」となる。
また同時に、演算器252が働き、「−6」されて、レ
ジスタ254に「10」がセットされる。
ジスタ254に「10」がセットされる。
次の第2Lステージの終了後、0AR244の値を、0
AR246に、0AR272の値を0AR274にセッ
トする。
AR246に、0AR272の値を0AR274にセッ
トする。
また、LFR220には、レジスタ254の値をセット
する。
する。
従って、0AR246の下4ビットは「12」、LFR
220には「10」がセットされて、Eステージにわた
される。
220には「10」がセットされて、Eステージにわた
される。
MVC命令では、第1オペランドを読み出さないので、
0AR264,266の値を用いないので、これらのO
ARのこの命令に関連する動作の説明は省略する。
0AR264,266の値を用いないので、これらのO
ARのこの命令に関連する動作の説明は省略する。
データのアラインに関しては、命令レジスタ210の出
力オペコードは線21Aを介してアラインコ?トロール
90′へ送られ、アライン方向がデコーダ98′により
デコードされる。
力オペコードは線21Aを介してアラインコ?トロール
90′へ送られ、アライン方向がデコーダ98′により
デコードされる。
この命令に関しては、デコーダ98/は「0」を出力す
る。
る。
第2デコードの終了後に、ALDR99’にこの値がセ
ットされる。
ットされる。
また、同時に、オペコードは、デコーダ230で並列処
理禁止命令が否かがデコードステージで解読される。
理禁止命令が否かがデコードステージで解読される。
その結果、デコーダ230は“1″を出力し、第1デコ
ードステージの中間ステージでFF23Bをセットする
。
ードステージの中間ステージでFF23Bをセットする
。
また、第1デコードの終了後にレジスタ232に「1」
がセットされる。
がセットされる。
FF238が「1」となったことにより、命令ステージ
コントロール212は、次の命令のデコードを抑止する
ように働く。
コントロール212は、次の命令のデコードを抑止する
ように働く。
FF239は、第2デコードステージの終了時は、以前
の値、即ち「0」に保たれているので、線23Aへの出
力は「0」となる。
の値、即ち「0」に保たれているので、線23Aへの出
力は「0」となる。
従って、第2Aステージにおいて、セレクタ100(第
1図)は、ALDR99’の出力907Aを選んで、線
90〃A上に出力する。
1図)は、ALDR99’の出力907Aを選んで、線
90〃A上に出力する。
このとき、線212AはrlJにセットされているので
、セレクタ282は、第18図に示すごとく、線240
Zを選択する。
、セレクタ282は、第18図に示すごとく、線240
Zを選択する。
すなわち、第2オペランドを選択する。アドレスコント
ロール30では、この第2オペランドアドレス20Aと
、線90“A上のデコード結果「0」を用いて、第2オ
ペランド実アドレスを発生し、バッファメモリ40から
、この第2オペランド実アドレスを最左端アドレスとす
る8バイトのデータを含む16バイトのデータを読出す
。
ロール30では、この第2オペランドアドレス20Aと
、線90“A上のデコード結果「0」を用いて、第2オ
ペランド実アドレスを発生し、バッファメモリ40から
、この第2オペランド実アドレスを最左端アドレスとす
る8バイトのデータを含む16バイトのデータを読出す
。
また、第2Aステージにおいて、セレクタ280は、線
23Aが“OIIより、線26Aに線240Yの内容を
選択して出力する。
23Aが“OIIより、線26Aに線240Yの内容を
選択して出力する。
すなわち、第2オペランドアドレスの下4ピット、この
例では「6」が選ばれる。
例では「6」が選ばれる。
同様に、セレクタ284は、線23Aが“10″より、
線260Y、即ち、第1オペランドアドレスの下4ビッ
ト、この例では「2」を選択し、線24A上に出力する
。
線260Y、即ち、第1オペランドアドレスの下4ビッ
ト、この例では「2」を選択し、線24A上に出力する
。
77’(ンコントロール90′内の5HBDCKT93
’では、セレクタ930′は、線20B上のオペコード
に応答して、第10図に示すごとく、線937’Aを選
択し、データ“Y−X”、即ち、第2、第1オペランド
仮想アドレスの差を出力する。
’では、セレクタ930′は、線20B上のオペコード
に応答して、第10図に示すごとく、線937’Aを選
択し、データ“Y−X”、即ち、第2、第1オペランド
仮想アドレスの差を出力する。
この例では、Y=6、X=2のため、線937’Aの出
力は「4」となる。
力は「4」となる。
この出力「4」は、SHB REG94/にストアさ
れた後、シフト制御回路95′に送られる。
れた後、シフト制御回路95′に送られる。
この出力90′Bは、セレクタ100により選ばれ、線
90〃Bを介して、サイクルシフタ50へ送られる。
90〃Bを介して、サイクルシフタ50へ送られる。
ここでは、左方向に4バイト分サイクルシフトされる。
従って、サイクルシフタ50から出力されるデータの左
から3バイト目から8バイト目までの6バイト分に、第
2オペランドアドレスで指定されたデータの一部が含ま
れていることになる。
から3バイト目から8バイト目までの6バイト分に、第
2オペランドアドレスで指定されたデータの一部が含ま
れていることになる。
サイクルシフタ50から出力されるデータの左側2バイ
ト分は実行に無用のデータである。
ト分は実行に無用のデータである。
一方、アラインコントロール901内の
FDLDCKT91’においては、セレクタ910′は
、第10図に示すように、MVC命令に対する線20B
上のオペコードに応答して、MINDET911’の出
力線911’Aをセレクトする。
、第10図に示すように、MVC命令に対する線20B
上のオペコードに応答して、MINDET911’の出
力線911’Aをセレクトする。
MIN DET911’には、線24Aを介して“2
゛が、線25Aを介して°“16″が入力されているの
で、MIN DET911’の出力は、“5′″とな
る。
゛が、線25Aを介して°“16″が入力されているの
で、MIN DET911’の出力は、“5′″とな
る。
この出力は、MPDCKT96’内のパターン発生器9
62’、964’及び命令ユニット20′へ送られる。
62’、964’及び命令ユニット20′へ送られる。
MPDCKT96’内のセレクタ960′は、MVC命
令に対する線20B上の命令コードに応答して、第10
図に示すごとく、右シフタ966′の出力1966’A
をセレクトする。
令に対する線20B上の命令コードに応答して、第10
図に示すごとく、右シフタ966′の出力1966’A
をセレクトする。
左パター、ン発生器962は、入力されたデータ“5″
に応答して、第9図に示すように、“11111100
”なるパターンを出力する。
に応答して、第9図に示すように、“11111100
”なるパターンを出力する。
右シフタ966′は、このパターンを、24’Aで与え
られる数、今の例では、°“2″たけ右シフトして、パ
ターン“00111111”を出力する。
られる数、今の例では、°“2″たけ右シフトして、パ
ターン“00111111”を出力する。
この出力90°Cは、セレクタ100により選ばれ、線
90”Cを介してオペランドコントロール60へ送られ
る。
90”Cを介してオペランドコントロール60へ送られ
る。
オペランドコントロール60は、サイクルシフタ500
8バイトからなる出力を線90“Cからの8ビツトパタ
ーンに応答して、第1、第2の2バイトのみをカットし
、他の6バイトのデータをALU70へ送る。
8バイトからなる出力を線90“Cからの8ビツトパタ
ーンに応答して、第1、第2の2バイトのみをカットし
、他の6バイトのデータをALU70へ送る。
こうして、ALU70には、第2オペランドアドレスか
ら始まる6バイトのデータと、それ以外のすべての0″
からなる合計8バイトのデータがストアされる。
ら始まる6バイトのデータと、それ以外のすべての0″
からなる合計8バイトのデータがストアされる。
また、第2Aステージの終了後に、レジスタ232の値
をレジスタ234にセットし、第2Lステージの終了後
にレジスタ234の出力がFF239をセットする。
をレジスタ234にセットし、第2Lステージの終了後
にレジスタ234の出力がFF239をセットする。
この例では、レジスタ232が“1″のため、第2Lス
テージの終了後に、FF239は′1″にセットされる
。
テージの終了後に、FF239は′1″にセットされる
。
これはコントロールストレジ80より、Eステージの終
了を示す、EOP信号が“1″になるまで、リセットさ
れない。
了を示す、EOP信号が“1″になるまで、リセットさ
れない。
従って、Eステージに入るとき、すなわち、第2Lステ
ージの終了以降は、線23Aには°“1″が出力されて
いる。
ージの終了以降は、線23Aには°“1″が出力されて
いる。
Eステージは、次のようにして実行される。
命令ユニット20からMVC命令のオペコードかコント
ロールストレジ80に送られ、この命令の実行のための
マイクロ命令シーケンスの先頭マイクロ命令がCR80
に読出され、その後、順次このシーケンス内のマイクロ
命令が所定の順序で読出され、この命令の実行を行なう
。
ロールストレジ80に送られ、この命令の実行のための
マイクロ命令シーケンスの先頭マイクロ命令がCR80
に読出され、その後、順次このシーケンス内のマイクロ
命令が所定の順序で読出され、この命令の実行を行なう
。
この実行にあたって、このMVC命令がワードオーバラ
ップ処理を要するか否かが命令ユニット20で判別され
る。
ップ処理を要するか否かが命令ユニット20で判別され
る。
このための回路は簡単化のために図示せず。判別の結果
はコントロールストレジ80に転送される。
はコントロールストレジ80に転送される。
コントロールストレジ80は、この結果により異なるマ
イクロ命令のブランチへ分枝する。
イクロ命令のブランチへ分枝する。
このMVC命令がオーバラップ処理を要しない命令であ
ることを判別されると、その後のマイクロ命令ブランチ
のアラインフィールド306にはデータ“1001”が
記憶される。
ることを判別されると、その後のマイクロ命令ブランチ
のアラインフィールド306にはデータ“1001”が
記憶される。
このアラインフィールドはメモリ10からのデータの読
出しに際して、デコーダ98で解読される。
出しに際して、デコーダ98で解読される。
その解読結果は第17図に示されるように“OI+であ
る。
る。
この結果は線90Bを介してセレクタ100に送られる
。
。
セレクタ100により、23Aが“1″であることより
90Bが選ばれこれがアドレスコントロール30に送ら
れる。
90Bが選ばれこれがアドレスコントロール30に送ら
れる。
アドレスコントロール30はこのデコーダ結果および0
AR240からの第2オペランド仮想アドレスを用いて
第2オペランド実アドレスを発生し、バッファメモリ4
0から、この第2オペランド実アドレスを最左端アドレ
スとする8バイトのデータを含む16バイトのデータを
よみ出す。
AR240からの第2オペランド仮想アドレスを用いて
第2オペランド実アドレスを発生し、バッファメモリ4
0から、この第2オペランド実アドレスを最左端アドレ
スとする8バイトのデータを含む16バイトのデータを
よみ出す。
一方、アラインコントロール90内の5HBDCKT9
3では、セレクタ930はアラインデータ“1001
”に応答してデータ“YIIを出力する。
3では、セレクタ930はアラインデータ“1001
”に応答してデータ“YIIを出力する。
この値は今の例では“12″である。この出力“12″
はSHB REG94にストアされた後、シフト制御
回路95に送られる。
はSHB REG94にストアされた後、シフト制御
回路95に送られる。
95の出力90′Bはセレクタ100へ送られる。
23Aか“1″であることより90′Bがセレクタ10
0により選ばれるバッファメモリ40から読出された1
6バイトのデータは、サイクルシフタ50により、シフ
ト制御回路95の制御のもとに、左方向に12バイト分
サイクルシフトされる。
0により選ばれるバッファメモリ40から読出された1
6バイトのデータは、サイクルシフタ50により、シフ
ト制御回路95の制御のもとに、左方向に12バイト分
サイクルシフトされる。
一方、アラインコントロール90内の
FDLDCKT91においては、セレクタ910は第1
7図に示すようにアラインデータ”1001’”に応答
して、MIN DET911の出力線911Aをセレ
クトする。
7図に示すようにアラインデータ”1001’”に応答
して、MIN DET911の出力線911Aをセレ
クトする。
MIN DET911にはLFR220から“10″
が入力されているので、この回路911の出力は“7パ
となる。
が入力されているので、この回路911の出力は“7パ
となる。
この出力はMPDCKT96内のパターン発生器962
.964へ送られる。
.964へ送られる。
MPDCKT96内のセレクタ960は、アラインデー
タ“”1001”に応答して、第17図かられかるよう
に、左バタン発生器962の出力線962Aをセレクト
する。
タ“”1001”に応答して、第17図かられかるよう
に、左バタン発生器962の出力線962Aをセレクト
する。
左パターン発生器962は入力されたデータ“′7゛′
(これは2進表示では“111 ”である)に応答して
、“11111111 ”なるパターンを出力する。
(これは2進表示では“111 ”である)に応答して
、“11111111 ”なるパターンを出力する。
これは97にセットされる。97の出力90′Cはセレ
クタ100に送られ、23Aか“1゛′であることより
90“Cには90′Cが選ばれる。
クタ100に送られ、23Aか“1゛′であることより
90“Cには90′Cが選ばれる。
オペランドコントロール60は、サイクルシフタ50の
8バイトの出力をアラインコントロール90からの上記
8ビツトのパターンに応答して、全ての8バイトのデー
タを0BR600にストアする。
8バイトの出力をアラインコントロール90からの上記
8ビツトのパターンに応答して、全ての8バイトのデー
タを0BR600にストアする。
こうして0BR600には、第2オペランドアドレスか
ら始まる8バイトのデータがストアされる。
ら始まる8バイトのデータがストアされる。
その後、命令ユニットは、LFR220内のLF値を°
’ 10 ”から8′”を減じた値“2″に減少させる
。
’ 10 ”から8′”を減じた値“2″に減少させる
。
さらに0AR240,260内の値をそれぞれ“8″増
大させる。
大させる。
その後、更新させたLFR,OAHの内容を用いてデー
タの読出しを上と同じように行う。
タの読出しを上と同じように行う。
以上がオーバラップ処理を必要としないMVC命令の処
理の概略である。
理の概略である。
もしMVC命令がオーバラップ処理を要する場合には、
その後のマイクロ命令ブランチ内のアラインフィールド
806にはデータ“0001”が記憶される。
その後のマイクロ命令ブランチ内のアラインフィールド
806にはデータ“0001”が記憶される。
セレクタ910(第14図)は回路913の出力を選択
して読出しデータ長として出力する。
して読出しデータ長として出力する。
5HBD CRT93内のセレクタ930(第15図
)はデータ“Y/ jlを出力する。
)はデータ“Y/ jlを出力する。
シフト制御回路95 +東すイクルシフタ50を制御し
て“Y/ G1が°“oooo”か°“1000”かに
応じて、バッファメモリ40の出力をシフトしないで出
力するか、あるいは8バイトシフトして出力する。
て“Y/ G1が°“oooo”か°“1000”かに
応じて、バッファメモリ40の出力をシフトしないで出
力するか、あるいは8バイトシフトして出力する。
その他の動作の詳細は、オーバラップ処理を要しない場
合と原理的に類似なので詳細は省略する。
合と原理的に類似なので詳細は省略する。
なお、以上のごとく、アラインされたデータはEステー
ジにおいて引続き、バッファメモリ40に書き込まれる
。
ジにおいて引続き、バッファメモリ40に書き込まれる
。
この際、書込みアドレスは0AR274かもセレクタ2
82を介して、アドレスコントロール30へ与えられる
。
82を介して、アドレスコントロール30へ与えられる
。
書込みは公知の技術に従い8バイト単位に行なわれる。
0AR274の値は、書込みごとに演算器276により
[+8」される。
[+8」される。
アドレスコントロール30では、書込み実アドレスを発
生し、DAR39にストアし、バッファメモリ40への
書込みを行う。
生し、DAR39にストアし、バッファメモリ40への
書込みを行う。
次に10進演算命令を処理する場合について、本実施例
の動作を説明する。
の動作を説明する。
第1オペランド長L F’ 1が10進で15”で、第
2オペランド長LF’2が10進で“12″の場合を考
える。
2オペランド長LF’2が10進で“12″の場合を考
える。
10進命令では、第1、第2オペランドの両方がメイン
メモリより読出される点で、MVC命令の場合と異なる
。
メモリより読出される点で、MVC命令の場合と異なる
。
第1デコードステージの終了後、0AR260270に
第1オペランドアドレス+LF’1がセットされる。
第1オペランドアドレス+LF’1がセットされる。
また、命令ステージコントロール212により線212
A上に「0」が出力される次の第2デコードの終了後、
0AR240に第2オペランドアドレス+L F’ 2
がセットされ、同時に、第1Aステージの終了に伴って
、0AR272に、0AR270の内容がセットされる
。
A上に「0」が出力される次の第2デコードの終了後、
0AR240に第2オペランドアドレス+L F’ 2
がセットされ、同時に、第1Aステージの終了に伴って
、0AR272に、0AR270の内容がセットされる
。
またコントロール212により、線212Aには“1″
”がセットされる。
”がセットされる。
アラインコントロール90/より線91’A上に読出し
長“7′″がセットされていることにより、演算器26
2で、0AR260の値を「−8」させた値を求めこの
値をQAR264にセットされる。
長“7′″がセットされていることにより、演算器26
2で、0AR260の値を「−8」させた値を求めこの
値をQAR264にセットされる。
同時に演算器252が働き、第1オペランド長を「−8
1させて、レジスタ254にセットされる。
1させて、レジスタ254にセットされる。
従って、第1オペランド長LFIは「7」になる。
次の第2Lステージの終了後、0AR272の内容を0
AR274へ、0AR264の内容を0AR266へ、
0AR244の内容を0AR246へ、レジスタ254
の内容をLFR223へ、それぞれセットする。
AR274へ、0AR264の内容を0AR266へ、
0AR244の内容を0AR246へ、レジスタ254
の内容をLFR223へ、それぞれセットする。
従って、DAR274には、第1オペランドアドレス+
LF’lがセットされ、0AR266には、第2オペラ
ンドアドレス+LF’2−8がセットされ、LFRには
LFl「7」とLF2「4jがセットされて、Eステー
ジにわたされる。
LF’lがセットされ、0AR266には、第2オペラ
ンドアドレス+LF’2−8がセットされ、LFRには
LFl「7」とLF2「4jがセットされて、Eステー
ジにわたされる。
アラインコントロールに関しては、■レジスタ210の
内のオペコードが、デコーダ9ぎで解読される。
内のオペコードが、デコーダ9ぎで解読される。
10進命令の場合は、デコーダ98’は「1」を出力す
る。
る。
この値は、第1デコードの終了後に、ALDR99’に
、セットされる。
、セットされる。
また■レジスタ210内のオペコードは、デコーダ23
0で解読され、「1」が出力される。
0で解読され、「1」が出力される。
この出力E 第1デコードの中間ステージで、FF23
8をセットする。
8をセットする。
また、第1デコードの終了後にレジスタ232がセット
される。
される。
FF238が1″となったことにより、命令ステージコ
ントロール212では、次の命令のデコードを抑止する
ように働く。
ントロール212では、次の命令のデコードを抑止する
ように働く。
FF239には、第1デコードの終了後に、以前の値、
即ち“0″がストアされているので、線23A上の信号
は“011となる。
即ち“0″がストアされているので、線23A上の信号
は“011となる。
従って、次の第1Aステージ(これは第2Dステージに
等しい)において、セレクタ100は、ALDR99’
の出力90’Aを選ぶ。
等しい)において、セレクタ100は、ALDR99’
の出力90’Aを選ぶ。
この結果は、アドレスコントロー/I/30に送られる
。
。
また、このとき、線212AにはG4 Onが出力され
ているので、セレクタ282は、線260 Zすなわち
、第1オペランドアドレス+LF1が選択される。
ているので、セレクタ282は、線260 Zすなわち
、第1オペランドアドレス+LF1が選択される。
アドレスコントロール30では、このセレクタ282か
らの信号と、デコーダ981の出力に応答して、第2オ
ペランド実アドレスを発生し、バッファメモリ40から
、この第2オペランド実アドレスを最右端アドレスとす
る8バイトのデータを含む16バイトのデータを読出す
。
らの信号と、デコーダ981の出力に応答して、第2オ
ペランド実アドレスを発生し、バッファメモリ40から
、この第2オペランド実アドレスを最右端アドレスとす
る8バイトのデータを含む16バイトのデータを読出す
。
また、第1Aステージにおいて、セレクタ284は、線
260Y、すなわち、第1オペランドアドレス+LF1
0F4ビツトを選択的に線24A上に出力する。
260Y、すなわち、第1オペランドアドレス+LF1
0F4ビツトを選択的に線24A上に出力する。
アラインコントロール9σ内のSHB CKT93′
では、セレクタ930′が、線20B上の10進命令に
対するオペコードおよび線212A上の信号4109+
に応答して、第10図に示すごとく、線937’Aすな
わち、“X+9”を出力する。
では、セレクタ930′が、線20B上の10進命令に
対するオペコードおよび線212A上の信号4109+
に応答して、第10図に示すごとく、線937’Aすな
わち、“X+9”を出力する。
この出力は、SHB REG94’にストアされた後
、シフ、ト制御回路95/に送られる。
、シフ、ト制御回路95/に送られる。
この出力は線90’Bを介してセレクタ100に送られ
、そこで選ばれる。
、そこで選ばれる。
セレクタ100の出力は、線90〃Bを介して、サイク
ルシフタ50へ送られる。
ルシフタ50へ送られる。
このサイクルシフタ50により、先に読まれた、第1オ
ペランド鯰む16バイトのデータは左方向に“X+9”
バイト分サイクルシフトされる。
ペランド鯰む16バイトのデータは左方向に“X+9”
バイト分サイクルシフトされる。
一方、アラインコントロール901内の
FDLDCK91’に於ては、セレクタ910/は、第
10図に示すように、線20B上の命令コードおよび線
212A上の信号“0″に応答して、MINDET91
5’の出力線915’Aをセレクトする。
10図に示すように、線20B上の命令コードおよび線
212A上の信号“0″に応答して、MINDET91
5’の出力線915’Aをセレクトする。
この出力線は、MPDCKT96/内のパターン発生器
962’、964’及び命令ユニット20’へ送られる
。
962’、964’及び命令ユニット20’へ送られる
。
今の例では、LF’1が“15″であるので、915’
A上には、“7″が出力されている。
A上には、“7″が出力されている。
MPDCKT96’内のセレクタ960’+L線20B
上の命令コードおよび線212A上の信号“0″に応答
して、第10図に示すように、右パターン発生器964
1の出力線964’Aをセレクトする。
上の命令コードおよび線212A上の信号“0″に応答
して、第10図に示すように、右パターン発生器964
1の出力線964’Aをセレクトする。
このセレクタ960/の出力は、線9(lyCを介して
、セレクタ100へ送られ、そこで選ばれた後、線90
〃Cを介して、オペランドコントロール60へ送られる
。
、セレクタ100へ送られ、そこで選ばれた後、線90
〃Cを介して、オペランドコントロール60へ送られる
。
オペランドコントロール60は、サイクルシフタ50の
8バイトの出力を、線90〃C上の8ビツトパターンに
応答して、マスクした後、ALU70へ送る。
8バイトの出力を、線90〃C上の8ビツトパターンに
応答して、マスクした後、ALU70へ送る。
このようにして、第1オペランドがALU70へ送られ
る。
る。
第2オペランドに関しても、上述の第1デコードステー
ジ、第1Aステージ、第1Lステージと同様の処理が行
なわれる。
ジ、第1Aステージ、第1Lステージと同様の処理が行
なわれる。
■レジスタ210かもの線21A上への出力は、第2デ
コードステージのときと同じく、10進命令に対するオ
ペコードであるので、デコーダ98′の出力は1″′と
なる。
コードステージのときと同じく、10進命令に対するオ
ペコードであるので、デコーダ98′の出力は1″′と
なる。
さらに、前に説明したごとく、線212Aには、第2デ
コードの終了後、′“1パにセットされる。
コードの終了後、′“1パにセットされる。
従って、第18図に示すごとく、セレクタ282は、線
240Z、すなわち、第2オペランドアドレス+LF’
2を選択し、線20Aに出力する。
240Z、すなわち、第2オペランドアドレス+LF’
2を選択し、線20Aに出力する。
また、第1Aステージにおいて、セレクタ280は、線
240Y、即ち、第2オペランドアドレス+LF’20
F4ビツトが選ばれる。
240Y、即ち、第2オペランドアドレス+LF’20
F4ビツトが選ばれる。
アラインコントロール90′内のSHB CKT93
′では、セレクタ930′は、線20B上のオペコード
および線212A上の“′1″信号に応答して、第10
図に示すごとく、線937’Aをセレクトする。
′では、セレクタ930′は、線20B上のオペコード
および線212A上の“′1″信号に応答して、第10
図に示すごとく、線937’Aをセレクトする。
この結果、セレクタ930′からは、信号“Y+9”が
出力される。
出力される。
FDLDCKT91’において、セレクタ910′は、
第10図に示すように、MINDET917’の出力線
917’Aを選択する。
第10図に示すように、MINDET917’の出力線
917’Aを選択する。
MPDCKT96’内のセレクタ960′は、第10図
に示すように、右パターン発生器964′の出力線96
4’Aをセレクトする。
に示すように、右パターン発生器964′の出力線96
4’Aをセレクトする。
このようにして、第2オペランドもALU70へ送られ
る。
る。
このとき、LFlが“7′′、LF2が“4″にセット
され、残りのオペランドがマイクロ命令により読出され
る。
され、残りのオペランドがマイクロ命令により読出され
る。
また、第2Aステージの終了後に、レジスタ232の値
をレジスタ234にセットされ、第2Lステージの終了
後に、レジスタ234の出力がFF239をセットする
。
をレジスタ234にセットされ、第2Lステージの終了
後に、レジスタ234の出力がFF239をセットする
。
この場合も、レジスタ232の内容が“1″のため、第
2Lステージの終了後にFF239は゛′1パにセット
される。
2Lステージの終了後にFF239は゛′1パにセット
される。
このFF239は、コントロールストレジ80より、E
ステージの終了を示すEOP信号が“1′″になるまで
リセットされない。
ステージの終了を示すEOP信号が“1′″になるまで
リセットされない。
従って、Eステージに入るときには、線23Aには“1
″が出力されている。
″が出力されている。
第2オペランドアドレスで表わされるデータを読出すた
めのマイクロ命令シーケンスにおいては、アラインフィ
ールドには“’i 1io”が記憶されている。
めのマイクロ命令シーケンスにおいては、アラインフィ
ールドには“’i 1io”が記憶されている。
従って、セレクタ910は線917Aをセレクトする。
今の例では、この線917Aには回路917より113
I+に相当する2進データが出力されている。
I+に相当する2進データが出力されている。
従って、バッファメモリ40内の、第2オペランドアド
レス0AR246から4バイト長の第2オペランドが読
出される。
レス0AR246から4バイト長の第2オペランドが読
出される。
この第2オペランドは、サイクルシフタ50によりデー
タ゛Y+9′”に相当する量だけ左サイクルシフトされ
る。
タ゛Y+9′”に相当する量だけ左サイクルシフトされ
る。
第5図に示す5HBDCKT93において、セレクタ9
30からのデータが出力される。
30からのデータが出力される。
このデータ゛’Y+9”はバフ7アメモリ40から読出
された、16バイトのデータのうち、第2オペランドア
ドレスOAR246を最右端とする8バイトのデータを
サイクルシフタ50から出力させるのに必要、十分なシ
フト量である。
された、16バイトのデータのうち、第2オペランドア
ドレスOAR246を最右端とする8バイトのデータを
サイクルシフタ50から出力させるのに必要、十分なシ
フト量である。
この8バイト長のデータはオペランドコントロール60
に送られる。
に送られる。
この回路60内のセレクタ960(第9図)は右パター
ン発生器964の出力を選択し出力する。
ン発生器964の出力を選択し出力する。
従って、オペランドコントロール60では、第2オペラ
ンドアドレスを最右端アドレスとする8バイトのデータ
のうち、セレクタ910(第8図)により出力されたフ
ェッチデータ長に等しいバイト数の有意なデータとそれ
以外のすべて′O″からなるデータが出力される。
ンドアドレスを最右端アドレスとする8バイトのデータ
のうち、セレクタ910(第8図)により出力されたフ
ェッチデータ長に等しいバイト数の有意なデータとそれ
以外のすべて′O″からなるデータが出力される。
このデータはALU70へ送られる。
その後、第1オペランドアドレスが命令ユニット20よ
りアドレスコントロールに送られ、第2オペランドの場
合と同様に第1オペランドアドレスが発生され、データ
の読出しが行なわれる。
りアドレスコントロールに送られ、第2オペランドの場
合と同様に第1オペランドアドレスが発生され、データ
の読出しが行なわれる。
この第1オペランドの処理のためのマイクロ命令シーケ
ンス内のアラインフィールドにはデータ“’ 1i o
i ”がストアされている。
ンス内のアラインフィールドにはデータ“’ 1i o
i ”がストアされている。
従って、セレクタ930(第5図)はデータ“′X+9
”を出力し、以下第2オペランドの場合と同様にサイク
ルシフタ50、オペランドコントロール60がアライン
コントロール90により制御される。
”を出力し、以下第2オペランドの場合と同様にサイク
ルシフタ50、オペランドコントロール60がアライン
コントロール90により制御される。
読出された第1オペランドはALU70において、先に
読出された第2オペランドと所定の演算を施こされた後
、バッファメモリ40とメインメモリ10にストアされ
る。
読出された第2オペランドと所定の演算を施こされた後
、バッファメモリ40とメインメモリ10にストアされ
る。
このときのストアアドレスはアドレスコントロール30
内のDAR39から供給されている。
内のDAR39から供給されている。
この上うにして、10進演算命令の処理が終了する。
このときのストアアドレスは0AR274から与えられ
るのはMVC命令の場合と同じである。
るのはMVC命令の場合と同じである。
但し演算器276は0AR274の値を書込みごとに「
−81する。
−81する。
以上のごとく、本発明によれは、種々の命令の処理にお
いて必要とされるデータの位置合わせ、切り出しを行な
う、きわめて簡単なデータ処理装置かえられる。
いて必要とされるデータの位置合わせ、切り出しを行な
う、きわめて簡単なデータ処理装置かえられる。
本発明は以上の実施例に限定されるものでなく、特許請
求の範囲の記載内において当業者が容易になしうる変形
をも含むものである。
求の範囲の記載内において当業者が容易になしうる変形
をも含むものである。
第1図は、本発明によるデータ処理装置の概略回路図、
第2図は、第1図の装置に用いる命令ユニットの概略回
路図、第3図は、第1図の装置に用いる第1のアライン
コントロールの概略回路図、第4図は、第1図の装置に
用L・るアドレスコントロールの概略回路図、第5図は
、第4図の装置に用いるアドレス修飾回路の動作説明の
ための図、第6図は、第3図の装置に用いるフェッチデ
ータ長決定回路(FDLDCKT)の概略構成図、第7
図は、第3図の装置に用L・るシフトバイト数決定回路
(SHBD CKT)の概略構成図、第8図は、第3
図の装置に用いるマスクパターン決定回路(MPDCK
T)の概略構成図、第9図は、第8図の回路の動作説明
のための図、第10図は、第6図から第8図の回路に用
いるセレクタの動作説明のための図、第11図は、第1
図の装置に用いるオペランドコントロールの概略回路図
、第12図は、第1図の装置に用いるコントロールレジ
スタの横取の説明のための図、第13図は、第1図の装
置に用(・る第2のアラインコントロールの概略回路図
、第14図は、第13図の装置に用いるフェッチデータ
長決定回路(FDLDCKT)の概略構成図、第15図
は、第13図の装置に用いるシフトバイト数決定回路(
SHBD CRT)の概略構成図、第16図は、第1
3図の装置に用いるマスクパターン決定回路(MPDC
KT)の概略構成図、第17図は、第13図の回路の動
作説明のための図、第18図は、第2図の回路に用いる
セレクタの動作説明のための図。 91.91’:フェッチデータ長決定回路、93゜93
′:シフトバイト数決定回路、96,96’:マスクパ
ターン決定回路、97,97’:フエッチマスフパター
ンレジスタ、 99゜ 99′ニアライン方 向レジスタ。
第2図は、第1図の装置に用いる命令ユニットの概略回
路図、第3図は、第1図の装置に用いる第1のアライン
コントロールの概略回路図、第4図は、第1図の装置に
用L・るアドレスコントロールの概略回路図、第5図は
、第4図の装置に用いるアドレス修飾回路の動作説明の
ための図、第6図は、第3図の装置に用いるフェッチデ
ータ長決定回路(FDLDCKT)の概略構成図、第7
図は、第3図の装置に用L・るシフトバイト数決定回路
(SHBD CKT)の概略構成図、第8図は、第3
図の装置に用いるマスクパターン決定回路(MPDCK
T)の概略構成図、第9図は、第8図の回路の動作説明
のための図、第10図は、第6図から第8図の回路に用
いるセレクタの動作説明のための図、第11図は、第1
図の装置に用いるオペランドコントロールの概略回路図
、第12図は、第1図の装置に用いるコントロールレジ
スタの横取の説明のための図、第13図は、第1図の装
置に用(・る第2のアラインコントロールの概略回路図
、第14図は、第13図の装置に用いるフェッチデータ
長決定回路(FDLDCKT)の概略構成図、第15図
は、第13図の装置に用いるシフトバイト数決定回路(
SHBD CRT)の概略構成図、第16図は、第1
3図の装置に用いるマスクパターン決定回路(MPDC
KT)の概略構成図、第17図は、第13図の回路の動
作説明のための図、第18図は、第2図の回路に用いる
セレクタの動作説明のための図。 91.91’:フェッチデータ長決定回路、93゜93
′:シフトバイト数決定回路、96,96’:マスクパ
ターン決定回路、97,97’:フエッチマスフパター
ンレジスタ、 99゜ 99′ニアライン方 向レジスタ。
Claims (1)
- 【特許請求の範囲】 1 機械語命令を複数のステージに分けて実行するデー
タ処理装置であって、 データストレジと、 機械語命令を順次解読し、解読した機械語命令の最終ス
テージ以外のステージの実行を制御する手段と、 解読された機械語命令の命令コードに応答して該最終ス
テージの実行を制御するマイクロ命令シーケンスを出力
する制御記憶装置と、 先頭アドレス出力手段であって、初期値として解読され
た機械語命令により指定される読出しデータの先頭値を
出力し、その後データの読出し動作が行なわれるごとに
該解読された命令が必要とする読出しデータの残りの部
分の先頭のアドレスを出力するごとく出力を更新するも
のと、データ長出力手段であって、初期値として解読さ
れた機械語命令により指定される読出しデータ長を出力
し、その後データの読出し動作が行なわれるごとに読出
しデータの残りの部分のデータ長を出力するごとく出力
を更新するものと、該読出し先頭アドレス出力手段によ
って与えられる読出し先頭アドレスを含む二つのアドレ
ス境界間に位置する所定長のデータブロックを読出す手
段であって、最終ステージに先行する所定のステージに
おいて、該先頭アドレスの初期値に対応する第1のデー
タブロックを読出し、該最終ステージにおいて、該更新
後の読出し先頭アドレスに対応する第2のデータブロッ
クを読出すものと、該読出された第1、第2のデータブ
ロックをシフトし、その後マスクするアライン手段と、
該アライン手段に対し、第1のデータブロックに対する
第1のシフト量と第1のマスク位置信号をそれぞれ出力
する第1、第2の手段からなる第1のアラインコントロ
ール手段であって、該第1の手段は解読された命令の命
令コードおよび該読出し先頭アドレスの初期値に応答し
、該第2の手段は該命令コードおよび該読出し先頭アド
レスの初期値および該データ長の初期値に応答するもの
と、 該アライン手段に対し、第2のデータブロックに対する
第2のシフト量と第2のマスク位置信号をそれぞれ出力
する第3、第4の手段からなる第2のアラインコントロ
ールであって、該第3の手段は該マイクロ命令内に設け
られたアラインフィールドおよび該更新後の読出し先頭
アドレスに応答し、該第4の手段は、該アラインフィー
ルドおよび該更新後の読出し先頭アドレスおよび該更新
後の読出し先頭アドレスに応答するもの を有するデータ処理装置。 2 該データストレジはメインストレジとバッファから
なり、該バッファは二つのバンクからなり、該読出し手
段は該第1、第2のチータブロックそれぞれの第1、第
2の部分を該第1、第2のバンクの相異なる方から読出
し、該第1、第2の部分は該所定値の半分の長さを有し
、該アライン手段は、該読出された第1、第2の部分を
一諸にシフトし、シフト後の半分のデータをシフトデー
タとして出力する手段と、該シフトデータをマスクする
手段とからなる第1項の装置。 3 該第1の手段は、該読出し先頭アドレスの初期値に
応答して互いに異なる複数の第1のシフト量を出力する
手段と、該出力された複数の第1のシフト量の1つを該
命令コードに応答して選択する手段を有し、該第3の手
段は、該更新後の読出し先頭アドレスに応答して互いに
異なる複数の第2のシフト量を出力する手段と、該出力
された複数の第2のシフト量の一つを該アラインフィー
ルドに応答して選択する手段を有する第1項または第2
項の装置。 4 該先頭アドレス出力手段はさらに確読された機械語
命令の実行の結果としてのデータの格納先頭アドレスを
も出力するものであり、該格納アドレスの初期値として
、該解読された機械語命令により指定される格納先頭ア
ドレスを出力し、その後、データの格納が行なわれるご
とに、格納すべきデータの残りのデータの格納先頭アド
レスを出力するごとく出力を更新するものであり、該第
1の手段は、該複数の第1のシフト量の一部として、該
読出し先頭アドレスの初期値と該格納先頭アドレスの初
期値の差を出力するものであり、 該第3の手段は、該複数の第2のシフト量の一部として
、該更新後の読出し先頭アドレスと該更新後の格納先頭
アドレスの差を出力するものである第3項の装置。 5 該第2の手段は、該データ長の初期値と該命令コー
ドに応答して該第1のデータブロック内の第1の有効デ
ータ長を決定する手段と、該読出しデータ長の初期値と
該第1の有効データ長と該命令コードに応答して該第1
のマスク位置信号を発生する手段とを有し、 該第4の手段は、該更新後のデータ長と該アラインフィ
ールドに応答して該第2のデータブロック内の第2の有
効データ長を決定する手段と、該更新後の読出し先頭ア
ドレスと該第2の有効データ長と該アラインフィールド
に応答して該第2のマスク位置信号を出力する手段から
なる第1項から第4項のいずれかの装置。 6 該第1有効データ長決定手段は、該データ長の初期
値に応答して互いに異なる複数の第1項の有効データ長
を出力する手段と、該複数の第1の有効データ長の一つ
を該命令コードに応答して選択する手段とからなり、 該第2の有効データ長決定手段は、該更新後のデータ長
に応答して互いに異なる複数の第2の有効データ長を出
力する手段と、該アラインフィールドに応答して、その
一つを選択する手段とよりなる第5項の装置。 7 該第1、第2の有効データ長決定手段は、それぞれ
該複数の第1、第2の有効データ長の一部として一定数
を出力する手段を有する第6項の装置。 8 該第1マスク位置信号出力手段は、その右側部分に
該第1の有効データ長に等しい数の非マスク状態に対応
するビットを右する第1の複数ビットを出力する第1右
パターン発生手段と、その左側部分に該第1の有効デー
タ長に等しい数の非マスク状態に対応ビット長を有する
第2の複数ビットを出力する第1左パターン発生手段と
、該第1の複数ビットを該読出し先頭アドレスの初期値
に依存する量だけ右方向にシフトする第1の右シフトと
、該第1右パターン発生手段、第1左パターン発生手段
、第1右シフタの出力の一つを該命令コードに応答して
選択する手段とよりなり、該第2マスク位置信号出力手
段は、その右側部分に該第2の有効データ長に等しい数
の非マスク状態に対応するビットを有する第3の複数ビ
ットを出力する第2右パターン発生手段と、その左側部
分に該第2の有効データ長に等しい数の非マスク状態に
対応するビットを有する第4の複数ビットを出力する第
2左パターン発生手段と、該第3の複数ビットを該更新
後の読出し先頭アドレスに依存する量だけ右方向にシフ
トする第2右シフタと、該第2右パターン発生手段、第
2左パターン発生手段、第2右シフタの出力の一つを該
アラインフィールドに応答して選択する手段からなる第
5項から第7項のいずれかの装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP54148892A JPS5847053B2 (ja) | 1979-11-19 | 1979-11-19 | デ−タ処理装置 |
US06/208,250 US4396982A (en) | 1979-11-19 | 1980-11-19 | Microinstruction controlled data processing system including microinstructions with data align control feature |
DE3043653A DE3043653C2 (de) | 1979-11-19 | 1980-11-19 | Datenverarbeitungsanlage |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP54148892A JPS5847053B2 (ja) | 1979-11-19 | 1979-11-19 | デ−タ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS5672742A JPS5672742A (en) | 1981-06-17 |
JPS5847053B2 true JPS5847053B2 (ja) | 1983-10-20 |
Family
ID=15463022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP54148892A Expired JPS5847053B2 (ja) | 1979-11-19 | 1979-11-19 | デ−タ処理装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US4396982A (ja) |
JP (1) | JPS5847053B2 (ja) |
DE (1) | DE3043653C2 (ja) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3138948C2 (de) * | 1981-09-30 | 1985-04-18 | Siemens AG, 1000 Berlin und 8000 München | Schaltungsanordnung zur Erzeugung von Byte-Kennzeichenbits für die Verarbeitung von Speicheroperanden |
DE3138897A1 (de) * | 1981-09-30 | 1983-04-14 | Siemens AG, 1000 Berlin und 8000 München | Schaltungsanordnung zur verarbeitung von speicheroperanden fuer dezimale und logische befehle |
US4592005A (en) * | 1982-07-06 | 1986-05-27 | Sperry Corporation | Masked arithmetic logic unit |
US4598365A (en) * | 1983-04-01 | 1986-07-01 | Honeywell Information Systems Inc. | Pipelined decimal character execution unit |
US4812971A (en) * | 1983-10-03 | 1989-03-14 | Digital Equipment Corporation | Central processing unit for a digital computer |
US4586130A (en) * | 1983-10-03 | 1986-04-29 | Digital Equipment Corporation | Central processing unit for a digital computer |
JPH06100968B2 (ja) * | 1986-03-25 | 1994-12-12 | 日本電気株式会社 | 情報処理装置 |
US5333287A (en) * | 1988-12-21 | 1994-07-26 | International Business Machines Corporation | System for executing microinstruction routines by using hardware to calculate initialization parameters required therefore based upon processor status and control parameters |
EP0663083B1 (en) * | 1992-09-29 | 2000-12-20 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
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 |
US5991869A (en) * | 1995-04-12 | 1999-11-23 | Advanced Micro Devices, Inc. | Superscalar microprocessor including a high speed instruction alignment unit |
US5859990A (en) * | 1995-12-29 | 1999-01-12 | Intel Corporation | System for transferring data segments from a first storage device to a second storage device using an alignment stage including even and odd temporary devices |
US7197625B1 (en) | 1997-10-09 | 2007-03-27 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
US5864703A (en) * | 1997-10-09 | 1999-01-26 | Mips Technologies, Inc. | Method for providing extended precision in SIMD vector arithmetic operations |
US7711763B2 (en) | 2001-02-21 | 2010-05-04 | Mips Technologies, Inc. | Microprocessor instructions for performing polynomial arithmetic operations |
US7599981B2 (en) * | 2001-02-21 | 2009-10-06 | Mips Technologies, Inc. | Binary polynomial multiplier |
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 |
US7051168B2 (en) * | 2001-08-28 | 2006-05-23 | International Business Machines Corporation | Method and apparatus for aligning memory write data in a microprocessor |
CN110825435B (zh) * | 2018-08-10 | 2023-01-24 | 昆仑芯(北京)科技有限公司 | 用于处理数据的方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5230351A (en) * | 1975-09-04 | 1977-03-08 | Nippon Telegr & Teleph Corp <Ntt> | Data processing unit |
JPS5247341A (en) * | 1975-10-13 | 1977-04-15 | Hitachi Ltd | Data processing unit |
JPS5283042A (en) * | 1975-12-29 | 1977-07-11 | Fujitsu Ltd | Instruction control system of information process device |
JPS5376721A (en) * | 1976-12-20 | 1978-07-07 | Hitachi Ltd | Data processing unit |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3858183A (en) * | 1972-10-30 | 1974-12-31 | Amdahl Corp | Data processing system and method therefor |
US4135242A (en) * | 1977-11-07 | 1979-01-16 | Ncr Corporation | Method and processor having bit-addressable scratch pad memory |
JPS6041768B2 (ja) * | 1979-01-19 | 1985-09-18 | 株式会社日立製作所 | デ−タ処理装置 |
-
1979
- 1979-11-19 JP JP54148892A patent/JPS5847053B2/ja not_active Expired
-
1980
- 1980-11-19 US US06/208,250 patent/US4396982A/en not_active Expired - Lifetime
- 1980-11-19 DE DE3043653A patent/DE3043653C2/de not_active Expired
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5230351A (en) * | 1975-09-04 | 1977-03-08 | Nippon Telegr & Teleph Corp <Ntt> | Data processing unit |
JPS5247341A (en) * | 1975-10-13 | 1977-04-15 | Hitachi Ltd | Data processing unit |
JPS5283042A (en) * | 1975-12-29 | 1977-07-11 | Fujitsu Ltd | Instruction control system of information process device |
JPS5376721A (en) * | 1976-12-20 | 1978-07-07 | Hitachi Ltd | Data processing unit |
Also Published As
Publication number | Publication date |
---|---|
DE3043653A1 (de) | 1981-06-19 |
JPS5672742A (en) | 1981-06-17 |
US4396982A (en) | 1983-08-02 |
DE3043653C2 (de) | 1985-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS5847053B2 (ja) | デ−タ処理装置 | |
US4454578A (en) | Data processing unit with pipelined operands | |
US4740893A (en) | Method for reducing the time for switching between programs | |
US4439828A (en) | Instruction substitution mechanism in an instruction handling unit of a data processing system | |
US4539635A (en) | Pipelined digital processor arranged for conditional operation | |
JPS6019809B2 (ja) | デ−タ処理装置 | |
USRE32493E (en) | Data processing unit with pipelined operands | |
JPS6313215B2 (ja) | ||
JPS6041768B2 (ja) | デ−タ処理装置 | |
US4541047A (en) | Pipelined data processing system | |
JPH063584B2 (ja) | 情報処理装置 | |
US4954947A (en) | Instruction processor for processing branch instruction at high speed | |
US4598358A (en) | Pipelined digital signal processor using a common data and control bus | |
US4580238A (en) | Arithmetic operating system | |
CN110914801B (zh) | 在数据处理设备中的向量交叉 | |
JP2748957B2 (ja) | データ処理装置 | |
JPH034936B2 (ja) | ||
CA1155231A (en) | Pipelined digital processor arranged for conditional operation | |
US4977497A (en) | Data processor | |
KR880000817B1 (ko) | 데이터 처리장치 및 그 방법 | |
JPH07110769A (ja) | Vliw型計算機 | |
JPH0150934B2 (ja) | ||
CA1155232A (en) | Pipelined digital signal processor using a common data and control bus | |
JPH07191911A (ja) | アドレス変換装置及びマイクロプロセッサ算出方法 | |
KR900002601B1 (ko) | 마이크로 프로그램 제어방식 |