JPS6149694B2 - - Google Patents
Info
- Publication number
- JPS6149694B2 JPS6149694B2 JP14110381A JP14110381A JPS6149694B2 JP S6149694 B2 JPS6149694 B2 JP S6149694B2 JP 14110381 A JP14110381 A JP 14110381A JP 14110381 A JP14110381 A JP 14110381A JP S6149694 B2 JPS6149694 B2 JP S6149694B2
- Authority
- JP
- Japan
- Prior art keywords
- operand
- bus
- instruction
- specifier
- output
- 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 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Description
【発明の詳細な説明】
本発明は、オペランドのアドレツシングモード
を指定するオペランド指定子が処理の種類および
オペランド数を指定するオペコード部分から独立
している命令を扱うデータ処理装置に関するもの
である。
を指定するオペランド指定子が処理の種類および
オペランド数を指定するオペコード部分から独立
している命令を扱うデータ処理装置に関するもの
である。
オペランド指定子の長さは、アドレツシングモ
ードに対応して任意に変り、命令の長さが可変で
あることからこのような命令を可変長命令と呼ぶ
こともある。しかし、ここでは、便宜上、本願発
明が扱う命令を不定長命令、従来の命令を可変長
命令と称している。
ードに対応して任意に変り、命令の長さが可変で
あることからこのような命令を可変長命令と呼ぶ
こともある。しかし、ここでは、便宜上、本願発
明が扱う命令を不定長命令、従来の命令を可変長
命令と称している。
可変長のオペランド指定子を持つ命令体系とし
て、公知の代表的な2つの例を次に示す。
て、公知の代表的な2つの例を次に示す。
1つはバローズ社(Burroughs Corporation)
の計算機B1700をCOBOL/RPG向きのアーキテ
クチヤとした時の命令フオーマツトであり、これ
は、「B1700 COBOL/RPG−S−Language、
1058823−015、Copyright 1973、Burroughs
Corporation」に示されている。
の計算機B1700をCOBOL/RPG向きのアーキテ
クチヤとした時の命令フオーマツトであり、これ
は、「B1700 COBOL/RPG−S−Language、
1058823−015、Copyright 1973、Burroughs
Corporation」に示されている。
今1つの例は、DEC社(Digital Equipment
Corporation)の計算機VA×11/780のアーキテ
クチヤが有する可変長となるオペランド指定子を
持つ命令体系であり、これは、「VA×11
Architecture Handbook、Copyright 1979」およ
びUSP No.4241399に示されている。
Corporation)の計算機VA×11/780のアーキテ
クチヤが有する可変長となるオペランド指定子を
持つ命令体系であり、これは、「VA×11
Architecture Handbook、Copyright 1979」およ
びUSP No.4241399に示されている。
ここに示した従来の2つの命令体系では、オペ
ランドの形式、アドレツシングモードを指定する
部分が、可変長のオペランド指定子で規定され、
オペコードから独立であるといつた特徴がある。
ランドの形式、アドレツシングモードを指定する
部分が、可変長のオペランド指定子で規定され、
オペコードから独立であるといつた特徴がある。
しかしながら、従来の可変長命令では、処理す
るオペランドの数と、処理するオペランドのアド
レツシングモードを指定するオペランド指定子が
1対1に対応づけられており、例えば、 A+B→B A+B→C という2つの処理(オペレーシヨン)に対し、2
つのオペコードを割当てる必要があつた。
るオペランドの数と、処理するオペランドのアド
レツシングモードを指定するオペランド指定子が
1対1に対応づけられており、例えば、 A+B→B A+B→C という2つの処理(オペレーシヨン)に対し、2
つのオペコードを割当てる必要があつた。
つまり、A+B→Bという処理では、2つのオ
ペランドを処理し、2つ目のオペランドに対して
は、これを2度使用するということを、オペコー
ドで特別に規定する必要があるからである。
ペランドを処理し、2つ目のオペランドに対して
は、これを2度使用するということを、オペコー
ドで特別に規定する必要があるからである。
もし、A+B→Bという処理で、オペランド数
を3とし、オペランド指定子を3つ用意すれば、
A+B→Bと、A+B→Cの区別を意識する必要
はないが、A+B→Bの処理では、全く同一のオ
ペランド指定子を2つ設ける必要があり、これ
は、オペランド指定子そのものが、複数バイト
(一般に長いものは7バイト)をとる時、メモリ
の実装効率を著しく低下し、好ましくない。
を3とし、オペランド指定子を3つ用意すれば、
A+B→Bと、A+B→Cの区別を意識する必要
はないが、A+B→Bの処理では、全く同一のオ
ペランド指定子を2つ設ける必要があり、これ
は、オペランド指定子そのものが、複数バイト
(一般に長いものは7バイト)をとる時、メモリ
の実装効率を著しく低下し、好ましくない。
そもそも、A+B→Bと、A+B→Cの処理を
区別することは、メモリの実装効率を高める為に
なされたものである。(A+B→Bではオペラー
ド指定子を2つで済むようにした) このように、従来の方式では、同一のオペラン
ドを複数回使用する処理に対しては、他の同機能
の処理と区別する必要があり、オペコードで指定
可能な処理数に制限があつた。
区別することは、メモリの実装効率を高める為に
なされたものである。(A+B→Bではオペラー
ド指定子を2つで済むようにした) このように、従来の方式では、同一のオペラン
ドを複数回使用する処理に対しては、他の同機能
の処理と区別する必要があり、オペコードで指定
可能な処理数に制限があつた。
尚A+B→Bという例で説明したが、これはA
−B→Bという処理も同様であり、AとBの演算
をし、その結果をBに格納するという例の全てに
いえることである。一般にこれをA OP B→B
と表現している。
−B→Bという処理も同様であり、AとBの演算
をし、その結果をBに格納するという例の全てに
いえることである。一般にこれをA OP B→B
と表現している。
本発明の目的は、複数個の処理するオペランド
数に対し、オペランド指定子を共用できる不定長
命令を扱うデータ処理装置を提供するにある。
数に対し、オペランド指定子を共用できる不定長
命令を扱うデータ処理装置を提供するにある。
つまり、上記の例では、2つの処理に対し、1
つの命令コードで、これを区別して処理すること
が可能な不定長命令を扱うデータ処理装置を提供
しようとするものである。
つの命令コードで、これを区別して処理すること
が可能な不定長命令を扱うデータ処理装置を提供
しようとするものである。
本発明の特徴は、命令として、オペランドのア
ドレツシングモードを指定する各オペランド指定
子に、それぞれ対をなして付加されたオペランド
指定子連続情報を含み、デコード時に、この連続
情報がセツトされていることを検出した場合、当
該オペランド指定子を2回繰返し使用するように
していることである。
ドレツシングモードを指定する各オペランド指定
子に、それぞれ対をなして付加されたオペランド
指定子連続情報を含み、デコード時に、この連続
情報がセツトされていることを検出した場合、当
該オペランド指定子を2回繰返し使用するように
していることである。
以下、本発明を図面を参照して詳細に説明す
る。第1図は本発明が適用されるデータ処理シス
テムの基本的な概念図である。
る。第1図は本発明が適用されるデータ処理シス
テムの基本的な概念図である。
メモリ装置1と、複数の中央処理装置2が共通
バス3で接続されており、共通バス3を介して相
互の間の情報交換が可能となつている。
バス3で接続されており、共通バス3を介して相
互の間の情報交換が可能となつている。
メモリ装置1は、命令および命令が扱うオペラ
ンドを格納するメモリ部11と、この命令および
オペランドの読み出し、書き込みを制御するメモ
リ制御部12で構成され、メモリ部11とメモリ
制御部12はメモリバス13で接続されている。
ンドを格納するメモリ部11と、この命令および
オペランドの読み出し、書き込みを制御するメモ
リ制御部12で構成され、メモリ部11とメモリ
制御部12はメモリバス13で接続されている。
メモリ装置1の動作については、特願昭55−
160758号明細書に詳細に記載しているが、本発明
の要部とは直接関係ないので、この部分の詳細説
明は省略する。
160758号明細書に詳細に記載しているが、本発明
の要部とは直接関係ないので、この部分の詳細説
明は省略する。
中央処理装置2は、共通バス3に複数台接続可
能で、(図示では2台)それぞれ、メモリ装置1
より命令及びオペランドをアクセスして順次命令
の処理をしていく。
能で、(図示では2台)それぞれ、メモリ装置1
より命令及びオペランドをアクセスして順次命令
の処理をしていく。
ここでは高速化のため、一度読み出された命
令、オペランドをそれぞれコピーしている命令キ
ヤツシユ21(高速バツフアメモリ)およびオペ
ランドキヤツシユ22(高速バツフアメモリ)を
有し、また命令のフエツチ、デコード及びオペラ
ンドアドレス演算を行うIユニツト23と、オペ
ランドのフエツチおよび命令の実行を行うEユニ
ツトを有し、それぞれがパイプライン処理を行う
例を示している。
令、オペランドをそれぞれコピーしている命令キ
ヤツシユ21(高速バツフアメモリ)およびオペ
ランドキヤツシユ22(高速バツフアメモリ)を
有し、また命令のフエツチ、デコード及びオペラ
ンドアドレス演算を行うIユニツト23と、オペ
ランドのフエツチおよび命令の実行を行うEユニ
ツトを有し、それぞれがパイプライン処理を行う
例を示している。
このような、命令キヤツシユ、オペランドキヤ
ツシユの使い方、或いは、IユニツトとEユニツ
トがパイプライン処理すること自体は公知であ
る。
ツシユの使い方、或いは、IユニツトとEユニツ
トがパイプライン処理すること自体は公知であ
る。
さて、第2図Aは、中央処理装置2が扱う不定
長命令のフオーマツトを示している。
長命令のフオーマツトを示している。
1つの命令は、1ないし数バイトで構成される
オペレーシヨンコード(これは通称、オペコード
と呼ばれている)OPと、オペランド指定子連続
情報(以下連続フラツグと称す)Sを伴つた1な
いし複数バイトのオペランド指定子OS1,OS2
………OSnから構成されている。
オペレーシヨンコード(これは通称、オペコード
と呼ばれている)OPと、オペランド指定子連続
情報(以下連続フラツグと称す)Sを伴つた1な
いし複数バイトのオペランド指定子OS1,OS2
………OSnから構成されている。
オペコードOPでは、その命令の処理内容(処
理の種類)、処理に必要なオペランドの数および
オペランドの属性(データ長、リード/ライトの
区別、データタイプ:固定小数点/浮動小数点…
……等)が示される。
理の種類)、処理に必要なオペランドの数および
オペランドの属性(データ長、リード/ライトの
区別、データタイプ:固定小数点/浮動小数点…
……等)が示される。
オペコードOPの後には、当該オペコードOPで
示されるオペランドの数以下のオペランド指定子
OS1,OS2………が示されていて、1つの命令
(正式には命令語:インストラクシヨン・ワー
ド)が構成される。
示されるオペランドの数以下のオペランド指定子
OS1,OS2………が示されていて、1つの命令
(正式には命令語:インストラクシヨン・ワー
ド)が構成される。
オペランド指定子は、該当命令で使用されるオ
ペランドの順番に並んでいて、繰返して使用した
いオペランド指定子のみ、連続フラツグSが
「1」にセツトされている。
ペランドの順番に並んでいて、繰返して使用した
いオペランド指定子のみ、連続フラツグSが
「1」にセツトされている。
同一のオペランドを繰返し使用するには、いろ
いろな実現方法があるが、最も望ましい方法は、
最後のオペランド指定子を繰返し使用することで
あろう。この点については後で詳細に述べる。
いろな実現方法があるが、最も望ましい方法は、
最後のオペランド指定子を繰返し使用することで
あろう。この点については後で詳細に述べる。
オペコードOPで指定するオペランド数と、オ
ペラード指定子の数が不一致の例を次に説明す
る。例えば、オペコードOPが加算処理の場合、
そのフアンクシヨンは、 A+B→C で、3つのオペランドを必要とするが、オペラン
ド指定子が1つの場合は、 A+A→A 2つの場合は、 A+B→B という処理が、同一のオペコードで可能となる。
オペランド指定子の具体的な例を第2図Bに示し
ている。
ペラード指定子の数が不一致の例を次に説明す
る。例えば、オペコードOPが加算処理の場合、
そのフアンクシヨンは、 A+B→C で、3つのオペランドを必要とするが、オペラン
ド指定子が1つの場合は、 A+A→A 2つの場合は、 A+B→B という処理が、同一のオペコードで可能となる。
オペランド指定子の具体的な例を第2図Bに示し
ている。
ここでは、No.1〜No.24の例を示し、そのフオ
ーマツトと、これに対応するオペランドを1対1
対応で示している。
ーマツトと、これに対応するオペランドを1対1
対応で示している。
第2図Bにおいて、オペランドの( )は、
( )内の値をアドレスとしたメモリの内容であ
ることを示している。
( )内の値をアドレスとしたメモリの内容であ
ることを示している。
また、フオーマツト中、DISPは、変位を、IM
はイミーデイエツト(データ直接)を示し、添字
はその大きさをビツト数で示している。
はイミーデイエツト(データ直接)を示し、添字
はその大きさをビツト数で示している。
更に、Rxはインデツクスレジスタ、Rnはジエ
ネラルレジスタを示し、Lはオペランドの大きさ
をバイト単位で示したものである。
ネラルレジスタを示し、Lはオペランドの大きさ
をバイト単位で示したものである。
第2図Bにおいて、そのフオーマツトとオペラ
ンドの関係は、或程度理解できると思われるが、
以下簡単に説明する。
ンドの関係は、或程度理解できると思われるが、
以下簡単に説明する。
No.1は、レジスタ直接のアドレス指定で、Rn
で示されるジエネラルレジスタそのものが、直接
オペランドとなるものである。
で示されるジエネラルレジスタそのものが、直接
オペランドとなるものである。
No.2以下は、全て、メモリをオペランドとす
るもので、そのアドレス計算がオペランドの欄に
示された形で行なわれる。
るもので、そのアドレス計算がオペランドの欄に
示された形で行なわれる。
No.2は、間接アドレス指定で、Rnで示される
ジエネラルレジスタの内容がオペランドのアドレ
スとなるものである。
ジエネラルレジスタの内容がオペランドのアドレ
スとなるものである。
No.3、5、7では、Rnで示されるジエネラル
レジスタの内容に、DISPで示される値が加算さ
れて、これがオペランドのアドレスになつてい
る。
レジスタの内容に、DISPで示される値が加算さ
れて、これがオペランドのアドレスになつてい
る。
No.4、6、8では、No.3、5、7で求められ
たアドレスのメモリの内容が、オペランドのアド
レスとなるものである。
たアドレスのメモリの内容が、オペランドのアド
レスとなるものである。
No.9〜11は、イミーデイエツトデータで、
IM8、IM16、IM32の値そのものがオペランドとな
つている。
IM8、IM16、IM32の値そのものがオペランドとな
つている。
No.12〜17は、ジエネラルレジスタRnの代りに
プログラムカウンタPCが使用されることが、
No.3〜8とは異なるだけである。PCは、デコー
ドするオペランド指定子の次のアドレスを保持し
ている。
プログラムカウンタPCが使用されることが、
No.3〜8とは異なるだけである。PCは、デコー
ドするオペランド指定子の次のアドレスを保持し
ている。
No.18〜24は、No.3〜8にさらにインデツクス
レジスタRxの値が加算されることが異なり、ま
たインデツクスレジスタRxの値は、オペランド
のデータ長く分乗算された値が加算される。
レジスタRxの値が加算されることが異なり、ま
たインデツクスレジスタRxの値は、オペランド
のデータ長く分乗算された値が加算される。
これは、データ長にかかわらず、イーデツクス
レジスタRxの値を、先頭からの変位としてセツ
トできるようにするため必要となる処理である。
レジスタRxの値を、先頭からの変位としてセツ
トできるようにするため必要となる処理である。
つまり、L(データ長を示す)を乗算すること
により、インデツクスレジスタRxは、データ長
にかかわらず、先頭から何番目のデータであるか
を示す値を入れておけばよいことになる。
により、インデツクスレジスタRxは、データ長
にかかわらず、先頭から何番目のデータであるか
を示す値を入れておけばよいことになる。
例えば、インデツクスレジスタRxに「10」が
入つていると、これは先頭から10番目のデータ
で、そのアドレスは、バイトの場合は10を加算
(L=1)、ワードの場合は20を加算(L=2)ロ
ングワード(Long Word)では40を自動的に加
算し(L=4)ユーザはデータ長にかかわらず、
インデツクスレジスタRxの値をセツトできる。
入つていると、これは先頭から10番目のデータ
で、そのアドレスは、バイトの場合は10を加算
(L=1)、ワードの場合は20を加算(L=2)ロ
ングワード(Long Word)では40を自動的に加
算し(L=4)ユーザはデータ長にかかわらず、
インデツクスレジスタRxの値をセツトできる。
第3図は、第1図の中央処理装置2のより具体
的なブロツク構成図である。
的なブロツク構成図である。
第1図におけるIユニツト23は、第3図にお
いて、命令フエツチユニツト(IFU)25、アラ
イナ(ALIG)26、デコードユニツト(DU)2
7およびアドレス計算ユニツト(AU)28部分
がこれに対応し、Eユニツト24にはオペランド
フエツチユニツト(OFU)29、実行ユニツト
(EU)30が対応している。第1図では、Iユニ
ツト23とEユニツト24がパイプライン処理を
行う旨述べたが、それぞれのユニツトは第3図に
示すように更に命令フエツチユニツトIFU25、
デコードユニツトDU27、アドレス計算ユニツ
トAU28、オペランドフエツチユニツトOFU2
9、実行ユニツト30に分割され、それぞれがパ
イプライン処理をする例を示している。
いて、命令フエツチユニツト(IFU)25、アラ
イナ(ALIG)26、デコードユニツト(DU)2
7およびアドレス計算ユニツト(AU)28部分
がこれに対応し、Eユニツト24にはオペランド
フエツチユニツト(OFU)29、実行ユニツト
(EU)30が対応している。第1図では、Iユニ
ツト23とEユニツト24がパイプライン処理を
行う旨述べたが、それぞれのユニツトは第3図に
示すように更に命令フエツチユニツトIFU25、
デコードユニツトDU27、アドレス計算ユニツ
トAU28、オペランドフエツチユニツトOFU2
9、実行ユニツト30に分割され、それぞれがパ
イプライン処理をする例を示している。
しかしながら、本願発明の要旨は、このような
パイプライン処理そのものとは直接関係ないの
で、パイプライン処理については詳細な説明は省
略している。尚、パイプライン処理そのものは周
知であるが、USP4025771号には、パイプライン
高速信号プロセツサが示されている。
パイプライン処理そのものとは直接関係ないの
で、パイプライン処理については詳細な説明は省
略している。尚、パイプライン処理そのものは周
知であるが、USP4025771号には、パイプライン
高速信号プロセツサが示されている。
ところで、第3図において、命令フエツチユニ
ツト25は、命令を先行してフエツチするための
プログラムカウンタ50を有し、命令キヤツシユ
21より次に実行されるであろう命令を先行して
読み出す処理を行なつている。
ツト25は、命令を先行してフエツチするための
プログラムカウンタ50を有し、命令キヤツシユ
21より次に実行されるであろう命令を先行して
読み出す処理を行なつている。
アドレスライン100により、読み出したいア
ドレスが命令キヤツシユ21に送られ対応する命
令4バイト分がデータライン101により命令フ
エツチユニツトIFU25に送出される。
ドレスが命令キヤツシユ21に送られ対応する命
令4バイト分がデータライン101により命令フ
エツチユニツトIFU25に送出される。
命令キヤツシユ21に、対応する命令がなかつ
た場合は、共通バス3を介して、メモリ1から該
当命令を読み出し、この命令は命令キヤツシユ2
1にストアされる。キヤツシユの動作は周知であ
り、例えば、「A Guide to the IBM System/
370 Model 168」に示されている。
た場合は、共通バス3を介して、メモリ1から該
当命令を読み出し、この命令は命令キヤツシユ2
1にストアされる。キヤツシユの動作は周知であ
り、例えば、「A Guide to the IBM System/
370 Model 168」に示されている。
命令4バイト分が命令フエツチユニツト25に
送出されると、プログラムカウンタ50はプラス
4(+4)され、次の命令の送出要求を命令キヤ
ツシユ21に出力する。
送出されると、プログラムカウンタ50はプラス
4(+4)され、次の命令の送出要求を命令キヤ
ツシユ21に出力する。
この動作は、命令フエツチユニツトIFU25内
にあるバツフア(図示せず)が満杯になるまで続
けられる。
にあるバツフア(図示せず)が満杯になるまで続
けられる。
命令フエツチユニツトIFU25からは、バス1
03を介して、あらかじめ読み出しておいた命令
がアライナ(ALIG)26に送出される。
03を介して、あらかじめ読み出しておいた命令
がアライナ(ALIG)26に送出される。
アライナ26は、デコードユニツトDU27か
らの信号線102に指示されたバイト数だけシフ
ト処理を行い、バス104に該当の命令を送出す
る。
らの信号線102に指示されたバイト数だけシフ
ト処理を行い、バス104に該当の命令を送出す
る。
信号線102の値を適当に操作することで、バ
ス104には、第5図に示すように命令の第1オ
ペランド指定子処理時には、左端にオペコード
OPが、続いて第1番目のオペランド指定子が並
ぶように、2番目以降のオペランド指定子処理時
には、1バイトのダミーをおいてオペランド指定
子が配置して出力される。上記制御は、後で詳し
く説明する。
ス104には、第5図に示すように命令の第1オ
ペランド指定子処理時には、左端にオペコード
OPが、続いて第1番目のオペランド指定子が並
ぶように、2番目以降のオペランド指定子処理時
には、1バイトのダミーをおいてオペランド指定
子が配置して出力される。上記制御は、後で詳し
く説明する。
デコードユニツト(DU)27は、アライナ2
6(ALIG)より送出されたオペコード及びオペ
ランド指定子をデコードして、アドレス計算ユニ
ツトAU28へ下記の情報を送る。
6(ALIG)より送出されたオペコード及びオペ
ランド指定子をデコードして、アドレス計算ユニ
ツトAU28へ下記の情報を送る。
(1) バス105を介してアドレツシングモードを
送る。
送る。
アドレツシングモードには、先に説明の如
く、次の(a)〜(h)があり、このうち1つが指定さ
れる。
く、次の(a)〜(h)があり、このうち1つが指定さ
れる。
(a):レジスタ直接………No.1
(b):Rn………No.2
(c) Rn+DISPタイプ………No.3、5、7
(d) Rn+DISPインダイレクトタイプ………
No.4、6、8 (e) イミーデイエツト………No.9、10、11 (f) PC+DISPタイプ………No.12、14、16 (g) PC+DISPインダイレクトタイプ………
No.13、15、17 (h) (b)〜(d)でインデツクス付タイプ………
No.18〜24 尚No.1〜No.24は第2図Bに示すオペランド
指定子フオーマツトのNo.1〜24に対応してい
る。
No.4、6、8 (e) イミーデイエツト………No.9、10、11 (f) PC+DISPタイプ………No.12、14、16 (g) PC+DISPインダイレクトタイプ………
No.13、15、17 (h) (b)〜(d)でインデツクス付タイプ………
No.18〜24 尚No.1〜No.24は第2図Bに示すオペランド
指定子フオーマツトのNo.1〜24に対応してい
る。
(2) バス106を介して、DISPまたはイミーデ
イエツトデータを32ビツトで送る。
イエツトデータを32ビツトで送る。
(3) バス107を介してジエネラルレジスタRn
のアドレスを送る。
のアドレスを送る。
(4) バス108を介してインデツクスレジスタ
Rxのアドレス、 および (5) バス116を介してアドレス演算に使用する
プログラムカウンタの値を送る。
Rxのアドレス、 および (5) バス116を介してアドレス演算に使用する
プログラムカウンタの値を送る。
アドレス計算ユニツトAU28は、バス105
によつて示されたアドレツシングモードに従い、
上記(a)(e)以外の時は、オペランドのアドレス計算
を行い、バス109に計算後のアドレスを送出す
る。
によつて示されたアドレツシングモードに従い、
上記(a)(e)以外の時は、オペランドのアドレス計算
を行い、バス109に計算後のアドレスを送出す
る。
一方、(a)の場合は、バス107の内容を、その
ままバス113に送出し、(e)の場合はバス106
をバス109に送出する。
ままバス113に送出し、(e)の場合はバス106
をバス109に送出する。
オペランドフエツチユニツトOFU29は、上
記(a)(e)以外の時は、送られたアドレスが示されて
いるバス109の内容を、バス110に送出し、
オペランドがリード時には、オペランドキヤツシ
22にリード処理を要求する。
記(a)(e)以外の時は、送られたアドレスが示されて
いるバス109の内容を、バス110に送出し、
オペランドがリード時には、オペランドキヤツシ
22にリード処理を要求する。
リードオペランドが、オペランドキヤツシユ2
2からバス111に送出されると、オペランドフ
エツチユニツトOFU29は、バス112を介し
て実行ユニツトEU30に、読み出されたオペラ
ンドを送出し、またオペランドがそろつた旨を連
絡する。
2からバス111に送出されると、オペランドフ
エツチユニツトOFU29は、バス112を介し
て実行ユニツトEU30に、読み出されたオペラ
ンドを送出し、またオペランドがそろつた旨を連
絡する。
オペランドがライト時は、実行ユニツトEU3
0からの書き込みデータが、バス111に出力さ
れるまで、オペランドフエツチユニツトOFU2
9は、アドレスをバス110に送出し続ける。
0からの書き込みデータが、バス111に出力さ
れるまで、オペランドフエツチユニツトOFU2
9は、アドレスをバス110に送出し続ける。
一方、上記(a)に対しては、オペランドフエツチ
ユニツトCFU29は、アドレス計算ユニツトAU
28より送出されたレジスタアドレス113によ
り、自身が有するジエネラルレジスタ(図示せ
ず)のアクセスを行う。(a)以外と異なるのは、メ
モリをアクセスするか、レジスタをアクセスする
かの差異のみである。
ユニツトCFU29は、アドレス計算ユニツトAU
28より送出されたレジスタアドレス113によ
り、自身が有するジエネラルレジスタ(図示せ
ず)のアクセスを行う。(a)以外と異なるのは、メ
モリをアクセスするか、レジスタをアクセスする
かの差異のみである。
また、(e)に対しては、バス109の内容をその
ままバス111に送出し、実行ユニツトEU30
にオペランドがそろつた旨を連絡する。
ままバス111に送出し、実行ユニツトEU30
にオペランドがそろつた旨を連絡する。
また、実行ユニツトEU30は、デコードユニ
ツトDU27からオペコードバス114を介して
送出されたマイクロプログラムの先頭アドレスを
受信し、リード時は、バス112のオペランドを
用いて、ライト時は、オペランド(データ)をバ
ス111に出力して順次、命令の処理を行う。
ツトDU27からオペコードバス114を介して
送出されたマイクロプログラムの先頭アドレスを
受信し、リード時は、バス112のオペランドを
用いて、ライト時は、オペランド(データ)をバ
ス111に出力して順次、命令の処理を行う。
また、命令が分岐命令の場合は、バス115を
用いて、新らたなプログラムカウンタ値を命令フ
エツチユニツトIFU25のプログラムカウンタ5
0や、後述するデコードユニツトDU27内のDP
レジスタ69にセツトすると同時に、パイプライ
ン処理で先行的に処理されていたオペランドの各
ユニツトにおける処理結果をキヤンセルさせる。
用いて、新らたなプログラムカウンタ値を命令フ
エツチユニツトIFU25のプログラムカウンタ5
0や、後述するデコードユニツトDU27内のDP
レジスタ69にセツトすると同時に、パイプライ
ン処理で先行的に処理されていたオペランドの各
ユニツトにおける処理結果をキヤンセルさせる。
以上が、1つのオペランド指定子に対する処理
の概略で、各ユニツト25〜30は、パイプライ
ン処理で、順次オペランド指定子の処理を並列に
処理していく。
の概略で、各ユニツト25〜30は、パイプライ
ン処理で、順次オペランド指定子の処理を並列に
処理していく。
次に、本発明の要旨に関係するデコードユニツ
ト27について、具体例を示し詳細に説明する。
ト27について、具体例を示し詳細に説明する。
第4図は、第3図に示すデコードユニツトDU
27の具体的な実施例を示すブロツク図である。
27の具体的な実施例を示すブロツク図である。
DPレジスタ69は、デコードユニツトDU27
がデコードする命令の先頭を示しており、第1番
目のオペランド指定子デコード時は、オペコード
のアドレスを、第2番目以下のデコード時は、該
当オペランド指定子の先頭−1のアドレスを示し
ている。
がデコードする命令の先頭を示しており、第1番
目のオペランド指定子デコード時は、オペコード
のアドレスを、第2番目以下のデコード時は、該
当オペランド指定子の先頭−1のアドレスを示し
ている。
上記アドレスは、バス102を介して第3図に
示すアライナALIG26、命令フエツチユニツト
IFU25に送出されているため、バス104に
は、第5図に示すように、1バイト目には、第1
オペランド指定子の読み出しの場合は、Aに示す
ように、オペコードOP、第2オペランド指定子
以下の読み出しの場合は、Bに示すように、ダミ
ーのデータ、第2バイト目には、連続フラツグS
を含んだオペランド指定子の先頭バイトが、第3
バイト目から第7バイト目には、オペランド指定
子のその他の情報が出力される。
示すアライナALIG26、命令フエツチユニツト
IFU25に送出されているため、バス104に
は、第5図に示すように、1バイト目には、第1
オペランド指定子の読み出しの場合は、Aに示す
ように、オペコードOP、第2オペランド指定子
以下の読み出しの場合は、Bに示すように、ダミ
ーのデータ、第2バイト目には、連続フラツグS
を含んだオペランド指定子の先頭バイトが、第3
バイト目から第7バイト目には、オペランド指定
子のその他の情報が出力される。
バス204は、第何番目のオペランドの処理を
しているかを示す情報で、本情報が全オペランド
処理終了を示している時、バス104の第1バイ
トはオペコードレジスタ64にセツトされる。
しているかを示す情報で、本情報が全オペランド
処理終了を示している時、バス104の第1バイ
トはオペコードレジスタ64にセツトされる。
オペコードレジスタ64の出力は、該当命令の
実行ユニツトEU30のマイクロプログラムの先
頭アドレスを求めるオペコードデコードユニツト
61と、該当命令のオペランドに対する情報を有
するオペランド情報ROM63に送られる。
実行ユニツトEU30のマイクロプログラムの先
頭アドレスを求めるオペコードデコードユニツト
61と、該当命令のオペランドに対する情報を有
するオペランド情報ROM63に送られる。
ROM61の出力結果201は先頭アドレスレ
ジスタ62にセツトされ、オペコードバス114
を介して、第1オペランドがオペランドフエツチ
ユニツトOFU29から実行ユニツトEU30に渡
されるのに同期して、EU30に送出される。
ROM63は、例えば第6図に示す構成で、その
中には、第6図に示すような情報があらかじめ設
定されており、オペコードと第何番目のオペラン
ドの処理であるかの情報をアドレスとして読み出
される。
ジスタ62にセツトされ、オペコードバス114
を介して、第1オペランドがオペランドフエツチ
ユニツトOFU29から実行ユニツトEU30に渡
されるのに同期して、EU30に送出される。
ROM63は、例えば第6図に示す構成で、その
中には、第6図に示すような情報があらかじめ設
定されており、オペコードと第何番目のオペラン
ドの処理であるかの情報をアドレスとして読み出
される。
すなわち、オペコードレジスタ64に、第1バ
イト目がセツトされた時には、セレクタSEL81
でバス200側が選ばれるため、オペコードをア
ドレスとして、その第1オペランドに関する情報
が読み出される。
イト目がセツトされた時には、セレクタSEL81
でバス200側が選ばれるため、オペコードをア
ドレスとして、その第1オペランドに関する情報
が読み出される。
読み出された情報としては、
(1) オペランドの属性、すなわち、リードオペラ
ンドであるか、ライトオペランドであるかの情
報R/Wや、オペランドのデータ長L(バイ
ト、ワード、ロングワード)を示す情報、 (2) オペランドの最終であることを示すフラツ
グ、および (3) 同一命令の次オペランドの情報が入つている
アドレス、 がある。
ンドであるか、ライトオペランドであるかの情
報R/Wや、オペランドのデータ長L(バイ
ト、ワード、ロングワード)を示す情報、 (2) オペランドの最終であることを示すフラツ
グ、および (3) 同一命令の次オペランドの情報が入つている
アドレス、 がある。
(1)はバス105−1に出力され、アドレス計算
ユニツトAU28に出力され、また(2)は、バス2
03に出力され、デコード処理終了バイト数検出
器65に送出される。
ユニツトAU28に出力され、また(2)は、バス2
03に出力され、デコード処理終了バイト数検出
器65に送出される。
また、(2)、(3)の情報は、レジスタ83にラツチ
された後、バス204に出力され、次のオペラン
ドを読み出すアドレスとして使用される。
された後、バス204に出力され、次のオペラン
ドを読み出すアドレスとして使用される。
(2)の情報のラツチ情報が、セレクタ81の選択
端子Sに入力されるため、(2)の情報が“1”の場
合は、オペコードレジスタ64の内容(200)が
使用され、“0”の場合は(3)の情報が使用され
る。
端子Sに入力されるため、(2)の情報が“1”の場
合は、オペコードレジスタ64の内容(200)が
使用され、“0”の場合は(3)の情報が使用され
る。
一方、バス104の中で、連続フラツグSを示
す信号線205は、デコード処理終了バイト数検
出器65に送出される。
す信号線205は、デコード処理終了バイト数検
出器65に送出される。
また、オペランド指定子の先頭7ビツトは、バ
ス206により、オペランド指定子デコーダ66
に送られる。7ビツトの情報によりオペランド指
定子のデコードを行うが、その例を第7図により
説明する。
ス206により、オペランド指定子デコーダ66
に送られる。7ビツトの情報によりオペランド指
定子のデコードを行うが、その例を第7図により
説明する。
たとえば、第2図BのNo.3に示す(Rn+
DISP8)のオペランド指定子が送られると、第7
図Aのように上位7ビツトの中の更に3ビツトが
010であることを検出して、下記情報が出力でき
る。
DISP8)のオペランド指定子が送られると、第7
図Aのように上位7ビツトの中の更に3ビツトが
010であることを検出して、下記情報が出力でき
る。
(1) 2バイト長のオペランド指定子であること。
(2) バス208の内容をバス106へ出力する場
合、DISPの桁合せを行うため3バイトの右シ
フトが必要であること。
合、DISPの桁合せを行うため3バイトの右シ
フトが必要であること。
(3) DISP値として4バイト化を図るため、上位
3バイトについては、DISP8の最上位ビツトを
符号拡張して出力すること。
3バイトについては、DISP8の最上位ビツトを
符号拡張して出力すること。
(4) Rn+DISPでもつてオペランドのアドレスが
計算できること。
計算できること。
(5) Rnの情報は1バイト目の下位4ビツトに存
在すること。
在すること。
の5つである。同様に、第2図BのNo.7の(Rn
+DISP32)が送られてくると、第7図Bに示すよ
うに上位7ビツトが1110110であることを検出し
て、下記情報が出力できる。
+DISP32)が送られてくると、第7図Bに示すよ
うに上位7ビツトが1110110であることを検出し
て、下記情報が出力できる。
(1) 6バイト長のオペランド指定子であること、
(2) バス208の内容をバス106へ出力する場
合、DISPの桁合せを行うため1バイト左シフ
トが必要であること、 (3) DISPは32ビツト全てが指定されているため
そのまま出力しなければならないこと、 (4) Rn+DISPでもつてオペランドのアドレスが
計算できること、 (5) Rnの情報は、オペランド指定子の2バイト
目の下位4ビツトに存在すること。
合、DISPの桁合せを行うため1バイト左シフ
トが必要であること、 (3) DISPは32ビツト全てが指定されているため
そのまま出力しなければならないこと、 (4) Rn+DISPでもつてオペランドのアドレスが
計算できること、 (5) Rnの情報は、オペランド指定子の2バイト
目の下位4ビツトに存在すること。
の5つである。
以上2つの例につき示したがこれらをまとめて
みると次のようになる。
みると次のようになる。
オペランド指定子デコーダ66は、送られてき
たオペランド指定子をデコードし、次にあげる情
報をそれぞれ出力する。
たオペランド指定子をデコードし、次にあげる情
報をそれぞれ出力する。
(1) バス215へは、オペランド指定子の長さを
バイト単位で出力する。例えば、第2図Eの
No.3のオペランド指定子で、(Rn+DISP8)のオ
ペランド指定子が送られてきた時は、“2”を
出力する。
バイト単位で出力する。例えば、第2図Eの
No.3のオペランド指定子で、(Rn+DISP8)のオ
ペランド指定子が送られてきた時は、“2”を
出力する。
(2) バス211へは、デイスプレースメント
(DISP)/イミーデイエツト(IM)データ用
アライナ67に対するシフトバイト数を出力す
る。
(DISP)/イミーデイエツト(IM)データ用
アライナ67に対するシフトバイト数を出力す
る。
例えば、(Rn+DISP8)のオペランド指定子の
場合は、第7図Aに示した如く3バイト右シフ
トを、(Rn+DISP32)の場合は、第7図Bに示
した如く1バイト左シフトを指示する。
場合は、第7図Aに示した如く3バイト右シフ
トを、(Rn+DISP32)の場合は、第7図Bに示
した如く1バイト左シフトを指示する。
(3) バス212へは、アライナ67に対するマス
クバイトの指示データを出力する。
クバイトの指示データを出力する。
これは、アライナ67に対し、バス106に
出力する4バイトのデータ中、上位2バイト、
又は3バイトのマスクを指示することで、1バ
イトや2バイトのDISP、IM情報の符号拡張に
よる4バイト化を図るためのものである。
出力する4バイトのデータ中、上位2バイト、
又は3バイトのマスクを指示することで、1バ
イトや2バイトのDISP、IM情報の符号拡張に
よる4バイト化を図るためのものである。
例えば、DISP8の時には、第7図Aに示す如
く3バイトシフト、DISP32の時は第7図Bの
如く「−Rn」という余分な1バイトがあるた
め、1バイト左シフトする。
く3バイトシフト、DISP32の時は第7図Bの
如く「−Rn」という余分な1バイトがあるた
め、1バイト左シフトする。
これは、DISP8の時、上3バイトにはDISP8
の符号ビツトを拡張して入れておかないと、32
ビツトの正常なアドレス計算ができないからで
ある。(バス212はその指定のためのもの) (4) バス105−2へはアドレツシングモードを
出力し、これによつてアドレス計算ユニツト
AU28の動作モードを指示する。
の符号ビツトを拡張して入れておかないと、32
ビツトの正常なアドレス計算ができないからで
ある。(バス212はその指定のためのもの) (4) バス105−2へはアドレツシングモードを
出力し、これによつてアドレス計算ユニツト
AU28の動作モードを指示する。
アドレツシングモードについては、第3図の
アドレス計算ユニツトAU28の説明に関連し
て、(a)〜(h)の8つのモードがあることを既に説
明した。
アドレス計算ユニツトAU28の説明に関連し
て、(a)〜(h)の8つのモードがあることを既に説
明した。
(5) バス216へはジエネラルレジスタRnの存
在する位置が、1バイト目か2バイト目かを示
す情報を出力する。
在する位置が、1バイト目か2バイト目かを示
す情報を出力する。
(Rn+DISP8)時は1バイト目、(Rn+
DISP32)時は2バイト目が指示される。
DISP32)時は2バイト目が指示される。
一方、バス108へは、オペランド指定子の中
のインデツクスレジスタRxの部分を出力する。
また、セレクタ68は、信号216で指定された
ジエネラルレジスタRnの存在する位置(1バイ
ト目か2バイト目かの信号)によつて、Rnに対
応する部分(バス207の内容或いはバス210
の内容)をバス107へ出力する。
のインデツクスレジスタRxの部分を出力する。
また、セレクタ68は、信号216で指定された
ジエネラルレジスタRnの存在する位置(1バイ
ト目か2バイト目かの信号)によつて、Rnに対
応する部分(バス207の内容或いはバス210
の内容)をバス107へ出力する。
アライナ67は、前述したように、オペランド
指定子の2バイト目から7バイト目までがバス2
08によつて与えられるため、信号線211で与
えられたシフト数だけシフト処理を行い、且つ信
号線212で与えられたマスク部に対しては、符
号の拡張を行い、バス106に4バイトのデータ
として出力する。
指定子の2バイト目から7バイト目までがバス2
08によつて与えられるため、信号線211で与
えられたシフト数だけシフト処理を行い、且つ信
号線212で与えられたマスク部に対しては、符
号の拡張を行い、バス106に4バイトのデータ
として出力する。
これらは、第7図A,Bに示した通りである。
次に、デコード処理終了バイト数検出器65に
ついて説明する。
ついて説明する。
この部分は、本発明になる不定長命令(Sビツ
ト付加したもの)を扱う場合の要部でもある。
ト付加したもの)を扱う場合の要部でもある。
デコード処理終了バイト数検出器65には、前
述した如く、オペランド終了フラツグEを示す信
号線203、オペラツド指定子の連続ビツトSを
示す信号線205及びオペランド指定子のバイト
数(OSB)を示す信号線215の3つの信号線が
入力されており、信号線214へは、次のオペラ
ンド指定子のアドレスを示すため、DP69の加
算値DPINCBをバイト単位で出力する。
述した如く、オペランド終了フラツグEを示す信
号線203、オペラツド指定子の連続ビツトSを
示す信号線205及びオペランド指定子のバイト
数(OSB)を示す信号線215の3つの信号線が
入力されており、信号線214へは、次のオペラ
ンド指定子のアドレスを示すため、DP69の加
算値DPINCBをバイト単位で出力する。
後述するように、デコード処理終了バイト数検
出器65には、Sビツトをラツチするフリツプフ
ロツプを有し、そのフリツプフロツプ(FFO)
の出力は、次のように制御される。
出器65には、Sビツトをラツチするフリツプフ
ロツプを有し、そのフリツプフロツプ(FFO)
の出力は、次のように制御される。
すなわち、FFOの出力が0の時、S=1の情
報が送られてきた時は、オペランドに対応する情
報とAユニツトに送出した時にFFOの出力は1
となる。
報が送られてきた時は、オペランドに対応する情
報とAユニツトに送出した時にFFOの出力は1
となる。
一方、FFOの出力が1でS=1の情報が送ら
れてきた時は、オペランドに対応する情報をAユ
ニツトに送出した時にFFOの出力は0となる。
S=0の情報が送られてきた時は、FFOの出力
は0のままである。
れてきた時は、オペランドに対応する情報をAユ
ニツトに送出した時にFFOの出力は0となる。
S=0の情報が送られてきた時は、FFOの出力
は0のままである。
上記フリツプフロツプの出力信号FFOと3つ
の入力信号でもつて、DPINCB104出力は次の
ような出力となる。
の入力信号でもつて、DPINCB104出力は次の
ような出力となる。
E=1であれば、
DPINCB=OSB
これ以外で、S=0或いはS=1でFFO=1
の時、 DPINCB=OSB−1 これ以外は、DPINCB=0 すなわち、 (1) オペランドの終了フラツグEが“1”の場合
は、該当命令の処理は終了したため、次の命令
の先頭をさすように、DPレジスタ69がオペ
ランド指定子のバイト数分(OSB)加算される
よう信号線214に出力される。
の時、 DPINCB=OSB−1 これ以外は、DPINCB=0 すなわち、 (1) オペランドの終了フラツグEが“1”の場合
は、該当命令の処理は終了したため、次の命令
の先頭をさすように、DPレジスタ69がオペ
ランド指定子のバイト数分(OSB)加算される
よう信号線214に出力される。
(2) (1)でなく、また終了フラツグSがセツトされ
ていない場合は、次のオペランド指定子が1バ
イトのダミーを先頭バイトにおいて、バス10
4に出力させるため、(オペランド指定子のバ
イト数:OSB)−1の値が加算されるよう信号
線214に出力される。
ていない場合は、次のオペランド指定子が1バ
イトのダミーを先頭バイトにおいて、バス10
4に出力させるため、(オペランド指定子のバ
イト数:OSB)−1の値が加算されるよう信号
線214に出力される。
(3) (1)でなく、また終了フラツグSがセツトされ
ている場合は、DPレジスタ69が、そのまま
の値をとるよう、“0”が出力される。これに
よつて、同一のオペランド指定子を、次のオペ
ランドに対する処理にも使用することになり、
同一のオペランドが繰返し使用されることにな
る。
ている場合は、DPレジスタ69が、そのまま
の値をとるよう、“0”が出力される。これに
よつて、同一のオペランド指定子を、次のオペ
ランドに対する処理にも使用することになり、
同一のオペランドが繰返し使用されることにな
る。
第8図は、デコード処理終了バイト数検出器6
5における上記アルゴリズムを実現するハードウ
エア構成を示している。
5における上記アルゴリズムを実現するハードウ
エア構成を示している。
前述のフリツプフロツプFFOは、符号300
で示している。
で示している。
フリツプフロツプ300は、その出力300−
1が“0”のとき、すなわち300−2が“1”
のとき、S=1の情報205が送られたときは、
アンドゲート309がオンし、タイミングCKに
より(オペランドに対応する情報をAU28に送
出した時)セツトされ、その出力300−1が
“1”となる。
1が“0”のとき、すなわち300−2が“1”
のとき、S=1の情報205が送られたときは、
アンドゲート309がオンし、タイミングCKに
より(オペランドに対応する情報をAU28に送
出した時)セツトされ、その出力300−1が
“1”となる。
一方、出力300−1が“1”で、S=1の情
報が送られた時は、これと逆にリセツトされ、3
00−1は“0”となる。
報が送られた時は、これと逆にリセツトされ、3
00−1は“0”となる。
S=0の情報が送られてきた時は、アンドゲー
ト309がオフであるから、300−1は“0”
のままである。
ト309がオフであるから、300−1は“0”
のままである。
いま、E=1の場合は、出力ゲート301が開
き、バス214には、バス215の内容OSBが出
力され、E=0の時は、S=0の時或いはS=1
でフリツプフロツプ300の出力300−1が
“1”の時、アンドゲート311により出力ゲー
ト303が開き、演算器308の出力OSB−1が
バス214に出力され、これ以外の時は、アンド
ゲート312により出力ゲート302が開き、
“0”をバス214に出力する。アンドゲート3
11,312がオンするまでの、インバータ30
4〜306、オアゲート307、アンドゲート3
10の論理回路の動作説明は、省略する。
き、バス214には、バス215の内容OSBが出
力され、E=0の時は、S=0の時或いはS=1
でフリツプフロツプ300の出力300−1が
“1”の時、アンドゲート311により出力ゲー
ト303が開き、演算器308の出力OSB−1が
バス214に出力され、これ以外の時は、アンド
ゲート312により出力ゲート302が開き、
“0”をバス214に出力する。アンドゲート3
11,312がオンするまでの、インバータ30
4〜306、オアゲート307、アンドゲート3
10の論理回路の動作説明は、省略する。
加算器71は、現在のDPレジスタ69の値
と、信号線214の値を加算し、セレクタ70を
介して、DPレジスタ69にセツトすることで次
のオペランド指定子のアドレスをバス102に出
力することが可能となる。これにより、アライナ
ALIG26は、次のオペランド指定子を第5図
A,Bに示すフオーマツトでバス104に出力で
きる。
と、信号線214の値を加算し、セレクタ70を
介して、DPレジスタ69にセツトすることで次
のオペランド指定子のアドレスをバス102に出
力することが可能となる。これにより、アライナ
ALIG26は、次のオペランド指定子を第5図
A,Bに示すフオーマツトでバス104に出力で
きる。
一方、セレクタ70によつて、バス115の内
容を選択してDPレジスタ69にセツトすること
で前述した分岐命令におけるDPレジスタ69の
変更も可能となる。
容を選択してDPレジスタ69にセツトすること
で前述した分岐命令におけるDPレジスタ69の
変更も可能となる。
尚加算器72は、DPレジスタ69の値に、該
当オペランド指定子の長さを示す信号線215の
値(OSB)を加え、さらにキヤリー入力“1”を
加えることで、デコードしているオペランド指定
子の次のアドレスをバス116に出力する。
当オペランド指定子の長さを示す信号線215の
値(OSB)を加え、さらにキヤリー入力“1”を
加えることで、デコードしているオペランド指定
子の次のアドレスをバス116に出力する。
アドレス計算ユニツトAU28は、バス116
の内容をアドレス計算に使用するプログラムカウ
ンタPCの値として利用する。
の内容をアドレス計算に使用するプログラムカウ
ンタPCの値として利用する。
このように、本発明によれば、オペコードとオ
ペランド指定子が独立で、且つ1つのオペコード
により、A OP B→Cタイプの命令もA OP
B→Bタイプの命令をも、それぞれの命令の情報
量を最適にして表わすことができ、同一長さのオ
ペコードで指定可能な命令数が増加する。
ペランド指定子が独立で、且つ1つのオペコード
により、A OP B→Cタイプの命令もA OP
B→Bタイプの命令をも、それぞれの命令の情報
量を最適にして表わすことができ、同一長さのオ
ペコードで指定可能な命令数が増加する。
つまり、オペコード長が同一の場合は、本発明
によれば、より大くの高機能命令を付加できるこ
とになる。
によれば、より大くの高機能命令を付加できるこ
とになる。
尚上記実施例においては、連続フラツグSはオ
ペランド指定子の最上位ビツトに付加されている
が、必らずしもこの部分に限定する必要はなく、
オペランド指定子のどこかに連続フラツグを設け
ればよい。
ペランド指定子の最上位ビツトに付加されている
が、必らずしもこの部分に限定する必要はなく、
オペランド指定子のどこかに連続フラツグを設け
ればよい。
また、同一のオペランドを複数回繰返し、利用
するのに、上記実施例では、DPレジスタ69の
内容を更新させずに、同一のオペランド指定子を
繰返しデコードすることによりこれを実現してい
るが、これ以外にも、デコードユニツトから実行
ユニツトFU30に特別な信号を送り、先に求め
られたオペランドを繰返し利用するように指示し
てもよい。
するのに、上記実施例では、DPレジスタ69の
内容を更新させずに、同一のオペランド指定子を
繰返しデコードすることによりこれを実現してい
るが、これ以外にも、デコードユニツトから実行
ユニツトFU30に特別な信号を送り、先に求め
られたオペランドを繰返し利用するように指示し
てもよい。
更に、上記実施例では、最終のオペランド指定
子にS=1を付加したが、本願発明では2回繰返
し使用したい任意のオペランド指定子にS=1を
付加し、当該オペランド指定子のみを2回繰返し
て使用できるので、1つのオペコードで、A
OP B→Cタイプの命令もA OP A→Bタイプ
の命令をも、それぞれの命令の情報量を最適にし
て表わすことができる。
子にS=1を付加したが、本願発明では2回繰返
し使用したい任意のオペランド指定子にS=1を
付加し、当該オペランド指定子のみを2回繰返し
て使用できるので、1つのオペコードで、A
OP B→Cタイプの命令もA OP A→Bタイプ
の命令をも、それぞれの命令の情報量を最適にし
て表わすことができる。
第9図は各オペランド指定子の1ビツトに連続
情報を設けることで、AOPB→Cのレパートリー
に対し同一オペコード(OP)で各種のオペラン
ド指定が可能なとこを示している。すなわち本発
明では、Sビツトによつて2回繰返して同じオペ
ランドを使用させている。
情報を設けることで、AOPB→Cのレパートリー
に対し同一オペコード(OP)で各種のオペラン
ド指定が可能なとこを示している。すなわち本発
明では、Sビツトによつて2回繰返して同じオペ
ランドを使用させている。
第1図は本発明が適用されるデータ処理システ
ムの基本的な概念図、第2図A,Bは本発明に使
用される不定長命令のフオーマツト及び、オペラ
ンド指定子のフオーマツトを示す図、第3図は第
1図の中央処理装置の具体的な一実施例ブロツク
構成図、第4図は、本発明の要部である第3図の
デコードユニツトの具体的な一実施例ブロツク
図、第5図は第4図の説明に用いられるオペラン
ド指定子のフオーマツト、第6図は第4図のオペ
ランド情報ROM63の内容を説明するための説
明図、第7図は第4図のオペランド指定子デコー
ダ66の動作説明に用いる説明図、第8図は第4
図のデコード処理終了バイト数検出器65のハー
ド構成を示す一実施例図、第9図は本発明による
各種のオペランド指定例を示す説明図である。 27……デコードユニツト、61……オペコー
ドデコードユニツト、63……オペランド情報
ROM、65……デコード処理終了バイト数検出
器、66……オペランド指定子デコーダ、205
……連続情報。
ムの基本的な概念図、第2図A,Bは本発明に使
用される不定長命令のフオーマツト及び、オペラ
ンド指定子のフオーマツトを示す図、第3図は第
1図の中央処理装置の具体的な一実施例ブロツク
構成図、第4図は、本発明の要部である第3図の
デコードユニツトの具体的な一実施例ブロツク
図、第5図は第4図の説明に用いられるオペラン
ド指定子のフオーマツト、第6図は第4図のオペ
ランド情報ROM63の内容を説明するための説
明図、第7図は第4図のオペランド指定子デコー
ダ66の動作説明に用いる説明図、第8図は第4
図のデコード処理終了バイト数検出器65のハー
ド構成を示す一実施例図、第9図は本発明による
各種のオペランド指定例を示す説明図である。 27……デコードユニツト、61……オペコー
ドデコードユニツト、63……オペランド情報
ROM、65……デコード処理終了バイト数検出
器、66……オペランド指定子デコーダ、205
……連続情報。
Claims (1)
- 1 オペランドのアドレツシングモードを指定す
るオペランド指定子が処理の種類およびオペラン
ドの数を指定するオペコード部分から独立してい
る命令を扱うデータ処理装置において、該命令
は、少なくともオペランド指定子と対をなして付
加されたオペランド指定子連続情報を含み、デコ
ード手段は、少なくともオペコードデコード手段
と、オペランド指定子デコード手段と、オペラン
ド指定子連続情報検出手段を有し、オペランド指
定子のデコード時において、該オペランド指定子
連続情報検出手段が連続情報がセツトされている
ことを検出した場合、当該オペランド指定子を2
回繰返し使用するようにしたことを特徴とする不
定長命令を扱うデータ処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP14110381A JPS5844539A (ja) | 1981-09-09 | 1981-09-09 | 不定長命令を扱うデ−タ処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP14110381A JPS5844539A (ja) | 1981-09-09 | 1981-09-09 | 不定長命令を扱うデ−タ処理装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS5844539A JPS5844539A (ja) | 1983-03-15 |
| JPS6149694B2 true JPS6149694B2 (ja) | 1986-10-30 |
Family
ID=15284248
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP14110381A Granted JPS5844539A (ja) | 1981-09-09 | 1981-09-09 | 不定長命令を扱うデ−タ処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS5844539A (ja) |
-
1981
- 1981-09-09 JP JP14110381A patent/JPS5844539A/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS5844539A (ja) | 1983-03-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR100327778B1 (ko) | 다중명령 세트를 이용한 데이터 프로세싱 방법 | |
| KR880000297B1 (ko) | 부정장(不定長)명령을 갖는 데이터처리장치 | |
| EP0220684B1 (en) | Data processing system | |
| US4454578A (en) | Data processing unit with pipelined operands | |
| JP3203401B2 (ja) | データ処理装置 | |
| JP3173793B2 (ja) | 多重命令セットによるデータ処理装置及びデータ処理方法 | |
| JPH0429093B2 (ja) | ||
| USRE32493E (en) | Data processing unit with pipelined operands | |
| JPS62197830A (ja) | デ−タ処理システム | |
| JPH02173823A (ja) | データ処理装置 | |
| JPH07120278B2 (ja) | データ処理装置 | |
| US4258417A (en) | System for interfacing between main store memory and a central processor | |
| JPS645330B2 (ja) | ||
| JPS6149692B2 (ja) | ||
| JPS6160459B2 (ja) | ||
| JPS6149694B2 (ja) | ||
| JPS623336A (ja) | 条件付きブランチ方式 | |
| US4262330A (en) | I-phase controls for a computer | |
| JPS623332A (ja) | 情報処理装置 | |
| JPS6149693B2 (ja) | ||
| JPS6355634A (ja) | デ−タ処理システム | |
| US4812989A (en) | Method for executing machine language instructions | |
| US5187782A (en) | Data processing system | |
| JPH0642198B2 (ja) | デ−タ処理装置 | |
| JPH02146628A (ja) | データ処理装置 |