JPS5835643A - 不定長命令のエラ−検出を行うデ−タ処理装置 - Google Patents
不定長命令のエラ−検出を行うデ−タ処理装置Info
- Publication number
- JPS5835643A JPS5835643A JP56132717A JP13271781A JPS5835643A JP S5835643 A JPS5835643 A JP S5835643A JP 56132717 A JP56132717 A JP 56132717A JP 13271781 A JP13271781 A JP 13271781A JP S5835643 A JPS5835643 A JP S5835643A
- Authority
- JP
- Japan
- Prior art keywords
- operand
- bus
- instruction
- operands
- specifier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
- G06F9/30152—Determining start or end of instruction; determining instruction length
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Detection And Correction Of Errors (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
本発明は、オペランドのアドレッシングモードを指定す
るオペランド指定子が処理の種類およびオペランド数を
指定するオペコード部分から独立している不定長命令の
エラーを検出するデータ処理装置に関するものである。
るオペランド指定子が処理の種類およびオペランド数を
指定するオペコード部分から独立している不定長命令の
エラーを検出するデータ処理装置に関するものである。
オペランド指定子の長さは、アドレッシングモードに対
応して任意に変り、命令の長さが可変であることからこ
のような命令を可変長命令と呼ぶこともある。
応して任意に変り、命令の長さが可変であることからこ
のような命令を可変長命令と呼ぶこともある。
「不定長命令」と「可変長命令」との間には特別の意味
上の差異はなく、「不定長命令」なる用語を「可変長命
令」なる用語に置き換えても同一の意味を持つ。しかし
、ここでは、便宜上、本願発明が扱う命令を不定長命令
、従来の命令を可変長命令と称している。
上の差異はなく、「不定長命令」なる用語を「可変長命
令」なる用語に置き換えても同一の意味を持つ。しかし
、ここでは、便宜上、本願発明が扱う命令を不定長命令
、従来の命令を可変長命令と称している。
可変長のオペランド指定子を持つ命令体系として、公知
の代表的な2つの例を次に示す。
の代表的な2つの例を次に示す。
1つはバローズ社(Burroughs Corpor
ation)の計算機B1700をC0BOL/RPG
向きのアーキテクチャとした時の命令フォーマットであ
り、これは、[B1700 C0BOL/RPG−8
−Language。
ation)の計算機B1700をC0BOL/RPG
向きのアーキテクチャとした時の命令フォーマットであ
り、これは、[B1700 C0BOL/RPG−8
−Language。
1058823−ots、copyright 19
73゜Burroughs Corporation
Jに示されている。
73゜Burroughs Corporation
Jに示されている。
今1つの例は、DEC社(])igital)i:qu
ipment Corporation)のgt算機V
AX11/780 のアーキテクチャが有する可変長
となるオペランド指定子を持つ命令体系であり、これは
、「VAXI I Architecture )(
andbook。
ipment Corporation)のgt算機V
AX11/780 のアーキテクチャが有する可変長
となるオペランド指定子を持つ命令体系であり、これは
、「VAXI I Architecture )(
andbook。
Copyright 1979 JおよびUS P A
4236206に示されている。
4236206に示されている。
ここに示した従来の2つの命令体系では、オペランドの
形式、アドレッシングモードを指定する部分が、可変長
のオペランド指定子で規定され、オペコードから独立で
あるといった特徴がある。
形式、アドレッシングモードを指定する部分が、可変長
のオペランド指定子で規定され、オペコードから独立で
あるといった特徴がある。
しかしながら、従来の可変長命令では、処理するオペラ
ンドの数と、処理するオペランドのアドレッシングモー
ドを指定するオペランド指定子が1対1に対応づけられ
ており、例えば A+B4B A十B+C という2つの処理(オペレーション)に対し、2つのオ
ペコードを割当てる必要があった。
ンドの数と、処理するオペランドのアドレッシングモー
ドを指定するオペランド指定子が1対1に対応づけられ
ており、例えば A+B4B A十B+C という2つの処理(オペレーション)に対し、2つのオ
ペコードを割当てる必要があった。
具体的には、後述するが、オペコードデコード手段がオ
ペランドの最終であることを示す信号を出力した時に、
終了フラッグのセットが検出されない場合当該命令をエ
ラーとして検出するようにしていることである。
ペランドの最終であることを示す信号を出力した時に、
終了フラッグのセットが検出されない場合当該命令をエ
ラーとして検出するようにしていることである。
以下、まず、本願発明の対象である不定長命令を扱うデ
ータ処理装置を図面を参照して詳細に説明する。
ータ処理装置を図面を参照して詳細に説明する。
第1図は本発明が適用されるデータ処理システムの基本
的な概念図である。
的な概念図である。
メモリ装置1と、複数の中央処理装置2が共通バス3で
接続されており、共通バス3を介して相互の間の情報交
換が可能となっている。
接続されており、共通バス3を介して相互の間の情報交
換が可能となっている。
メモリ装置1は、命令および命令が扱うオペランドを格
納するメモリ部11と、この命令およびオペランドの読
み出し、書き込みを制御するメモリ制御部12で構成さ
れ、メモリ部11とメモリ制御部12はメモリバス13
で接続されている。
納するメモリ部11と、この命令およびオペランドの読
み出し、書き込みを制御するメモリ制御部12で構成さ
れ、メモリ部11とメモリ制御部12はメモリバス13
で接続されている。
このような従来例にあっては、命令のエラー検出が困難
であった。
であった。
本発明の目的は、複数個の処理するオペランド数に対し
、オペランド指定子を共用できる不定長命令のエラー検
゛出能力を向上させたデータ処理装置を提供するにある
。
、オペランド指定子を共用できる不定長命令のエラー検
゛出能力を向上させたデータ処理装置を提供するにある
。
本発明の特徴は、オペランドのアドレッシングモードを
指定する各オペランド指定子にそれぞれオペランド指定
子の終了情報(以下フラッグと呼ぶ)を付加し、この終
了フラッグの内容と、オペコードが指示するオペランド
の数によりエラー検出を行うようにしていることである
。
指定する各オペランド指定子にそれぞれオペランド指定
子の終了情報(以下フラッグと呼ぶ)を付加し、この終
了フラッグの内容と、オペコードが指示するオペランド
の数によりエラー検出を行うようにしていることである
。
つまり、A十B−+Bという処理では、2つのオペラン
ドを処理し、2つ目のオペランドに対しては、これを2
度使用するということを、オペコードで特別に規定する
必要があるからである。
ドを処理し、2つ目のオペランドに対しては、これを2
度使用するということを、オペコードで特別に規定する
必要があるからである。
もし、A+B−+Bという処理で、オペランド数を3と
し、オペランド指定子を3つ用意すれば、A十B−+B
と、A+B−+Cの区別を意識する必要はないが、”A
+B→Bの処理では、全く同一のオペランド指定子を2
つ設ける必要があシ、これは、オペランド指定子そのも
のが、複数バイト(一般に長いものは7バイト)′fr
とる時、メモリの実装効率を著しく低下し、好ましくな
い。
し、オペランド指定子を3つ用意すれば、A十B−+B
と、A+B−+Cの区別を意識する必要はないが、”A
+B→Bの処理では、全く同一のオペランド指定子を2
つ設ける必要があシ、これは、オペランド指定子そのも
のが、複数バイト(一般に長いものは7バイト)′fr
とる時、メモリの実装効率を著しく低下し、好ましくな
い。
そもそも、A+B−)Bと、A+B−+Cの処理を区別
することは、メモリの実装効率を高める為になされたも
のである。(A十B→Bではオペランド指定子を2つで
済むようにした) このように、従来の方式では、同一のオペランドを複数
回使用する処理に対しては、他の同機能の処理と区別す
る必要があシ、オペコードで指定可能な処理数に制限が
あった。
することは、メモリの実装効率を高める為になされたも
のである。(A十B→Bではオペランド指定子を2つで
済むようにした) このように、従来の方式では、同一のオペランドを複数
回使用する処理に対しては、他の同機能の処理と区別す
る必要があシ、オペコードで指定可能な処理数に制限が
あった。
尚A十B−)Bという例で説明したカド、これはA−B
−+Bという処理も同様であり、AとBの演算をし、そ
の結果をBに格納するという例の全てにいえることであ
る。一般にこれをA■B−+Bと表現している。
−+Bという処理も同様であり、AとBの演算をし、そ
の結果をBに格納するという例の全てにいえることであ
る。一般にこれをA■B−+Bと表現している。
メモリ装置1の動作については、特願昭55−1607
58号明細書に詳細に記載しているが、本発明の要部と
は直接関係ないので、この部分の詳細説間は省略する。
58号明細書に詳細に記載しているが、本発明の要部と
は直接関係ないので、この部分の詳細説間は省略する。
中央処理装置2は、共通バス3に複数台接続可能で(図
示では2台)、それぞれ、メモリ装置1よシ命令及びオ
ペランドをアクセスして順次命令の処理をしていく。
示では2台)、それぞれ、メモリ装置1よシ命令及びオ
ペランドをアクセスして順次命令の処理をしていく。
ここでは高速化のため、一度読み出された命令、オペラ
ンドをそれぞれコピーしている命令キヤツシユ21(高
速バッファメモリ)およびオペランドキャシュ22(高
速バッファメモリ)を有し、また命令のフェッチ、デコ
ード及びオペランドアドレス演算を行う■ユニット23
と、オペランドの7エツチおよび命令の実行を行うEユ
ニソIf有し、それぞれがパイプライン処理を行う例を
示している。
ンドをそれぞれコピーしている命令キヤツシユ21(高
速バッファメモリ)およびオペランドキャシュ22(高
速バッファメモリ)を有し、また命令のフェッチ、デコ
ード及びオペランドアドレス演算を行う■ユニット23
と、オペランドの7エツチおよび命令の実行を行うEユ
ニソIf有し、それぞれがパイプライン処理を行う例を
示している。
このような、命令キャッシュ、オペランドキャッシュの
使い方、或いは、■ユニットとEユニットがパイプライ
ン処理すること自体は公知である。
使い方、或いは、■ユニットとEユニットがパイプライ
ン処理すること自体は公知である。
さて、第2図(A+は、中央処理装置2が扱う不定長命
令のフォーマントを示している。
令のフォーマントを示している。
1つの命令は、工ないし数バイトで構成されるオペレー
ションコード(コレtl称、 オペ=ff −トと呼ば
れてい冬topと、終了フラッグSを伴つ′f?:、1
ないし複数バイトのオペランド指定子O81゜082・
・・・・・O20から構成されている。
ションコード(コレtl称、 オペ=ff −トと呼ば
れてい冬topと、終了フラッグSを伴つ′f?:、1
ないし複数バイトのオペランド指定子O81゜082・
・・・・・O20から構成されている。
オペコードOPでは、その命令の処理内容(処理の種類
)、処理に必要なオペランドの数およびオペランドの属
性、(データ長、リード/ライトの区別、データタイプ
:固定小数点/浮動小数点・・・・・・等)が示される
。
)、処理に必要なオペランドの数およびオペランドの属
性、(データ長、リード/ライトの区別、データタイプ
:固定小数点/浮動小数点・・・・・・等)が示される
。
オペコードOPの後には、当該オペコードOPで示され
るオペランドの数取下のオペランド指定子(081,0
82・・・・・・)が示されていて、1つの命令(正式
には命令語:インストラクション・ワード)が構成され
る。
るオペランドの数取下のオペランド指定子(081,0
82・・・・・・)が示されていて、1つの命令(正式
には命令語:インストラクション・ワード)が構成され
る。
オペランド指定子は、該当命令で使用されるオペランド
の順番に並んでいて、最後のオペランド指定子のみ、終
了フラッグSが「1」にセットされている。もし、オペ
ランド指定子の数が、オペコードOPで指定されるオペ
ランド数よシ少ない場合は、最後のオペランド指定子に
対応するオペランドが繰返し、使用される。
の順番に並んでいて、最後のオペランド指定子のみ、終
了フラッグSが「1」にセットされている。もし、オペ
ランド指定子の数が、オペコードOPで指定されるオペ
ランド数よシ少ない場合は、最後のオペランド指定子に
対応するオペランドが繰返し、使用される。
同一のオペランドを繰返し使用するには、いろいろな実
現方法があるが、最も望ましい方法は、最後のオペラン
ド指定子を繰返し使用することであろう。この点につい
ては後で詳細に述べる。
現方法があるが、最も望ましい方法は、最後のオペラン
ド指定子を繰返し使用することであろう。この点につい
ては後で詳細に述べる。
オペコードOPで指定するオペランド数と・オペランド
指定子の数が不一致の例を次に説明する。
指定子の数が不一致の例を次に説明する。
例えば、オペコードOPが加算処理の場合、そのファン
クションは、 A十B−+C で、3つのオペランドを必要とするが、オペランド指定
子が1つの場合は、 A+A→A 2つの場合は、 A+B→B という処理が、同一のオペコードで可能となる。
クションは、 A十B−+C で、3つのオペランドを必要とするが、オペランド指定
子が1つの場合は、 A+A→A 2つの場合は、 A+B→B という処理が、同一のオペコードで可能となる。
オペランド指定子の具体的な例を第2図(B)に示して
いる。
いる。
ここでは、屋1〜屋24の例を示踵そのフォーマットと
、これに対応するオペランドを1対1対応で示している
。
、これに対応するオペランドを1対1対応で示している
。
第一図(B)において、オペランドの()は、()内の
値をアドレスとし次メモリの内容であることを示してい
る。
値をアドレスとし次メモリの内容であることを示してい
る。
また、フォーマット中、DISPは、変位を、I Mは
イミーデイエット(データ直接)を示し、添字はその大
きさをビット数で示している。
イミーデイエット(データ直接)を示し、添字はその大
きさをビット数で示している。
更に、Rxはインデックスレジスタ、Rnはジェネラル
レジスタを示し、Lはオペランドの大きさをバイト単位
で示したものである。
レジスタを示し、Lはオペランドの大きさをバイト単位
で示したものである。
第2図(B)において、そのフォーマットとオペランド
の関係は、成程度理解できると思われるが、以下、簡単
に説明する。
の関係は、成程度理解できると思われるが、以下、簡単
に説明する。
A l fd 、レジスタ直接のアドレス指定で、几。
で示されるジェネラルレジスタそのものが、直接オペラ
ンドとなるものである。
ンドとなるものである。
A2以下は〜全て、メモリをオペランドとするもので、
そのアドレス計算がオペランドの欄に示された形で行な
われる。
そのアドレス計算がオペランドの欄に示された形で行な
われる。
扁2は、間接アドレス指定で、R11で示されるジェネ
ラルレジスタの内容がオペランドのアドレスとなるもの
である。
ラルレジスタの内容がオペランドのアドレスとなるもの
である。
43.5.7では、Raで示されるジェネラルレジスタ
の内容に、DISPで示される値が加算されて、これが
オペランドのアドレスになっている。
の内容に、DISPで示される値が加算されて、これが
オペランドのアドレスになっている。
As、6.8では、扁3,5.7で求められたアドレス
のメモリの内容が、オペランドのアドレスとなるもので
ある。
のメモリの内容が、オペランドのアドレスとなるもので
ある。
屋9〜11は、イミーディエットデータで、I M+
、I M+a −I M32の値そのものがオペランド
となっている。
、I M+a −I M32の値そのものがオペランド
となっている。
AI2〜17は、ジェネラルレジスタR,の代V) K
7’ o り5ムカウンタPcが使用されることが、
扁3〜8とは異なるだけである。PCは、デコードする
オペランド指定子の次のアドレスを保持している。
7’ o り5ムカウンタPcが使用されることが、
扁3〜8とは異なるだけである。PCは、デコードする
オペランド指定子の次のアドレスを保持している。
418〜24は、扁3〜8にさらにインデックレジスタ
R8の値が加算されることが異なり、またインデックス
レジスタR1のf直は、オペランドのデータ長り分乗算
され比値が加算される。
R8の値が加算されることが異なり、またインデックス
レジスタR1のf直は、オペランドのデータ長り分乗算
され比値が加算される。
これは、データ長にかかわらず、インデックスレジスタ
ル工の値を、先頭からの変位としてセットできるように
するため必要となる処理である。
ル工の値を、先頭からの変位としてセットできるように
するため必要となる処理である。
つまり、L(データ長を示す>7Fr:乗算することに
より、インデックスレジスタR0は、データ長にかかわ
らず、先頭から何番目のデータであるかを示す値を入れ
ておけばよいことになる。
より、インデックスレジスタR0は、データ長にかかわ
らず、先頭から何番目のデータであるかを示す値を入れ
ておけばよいことになる。
例えば、インデックスレジスタR8に「10」が入って
いると、これは先頭から10番目のデータで、そのアド
レスは、バイトの場合は10を加算(L=11、ワード
の場合は20を加算(L=2)、ロングワード責Lon
g Word ) では40を自動的に加算しくL二
4)、ユーザはデータ長にかかわらず、インデックスレ
ジスタR,の値をセットできる。
いると、これは先頭から10番目のデータで、そのアド
レスは、バイトの場合は10を加算(L=11、ワード
の場合は20を加算(L=2)、ロングワード責Lon
g Word ) では40を自動的に加算しくL二
4)、ユーザはデータ長にかかわらず、インデックスレ
ジスタR,の値をセットできる。
第3図は、第1図の中央処理装置2のよシ具体的なブロ
ック構成図である。
ック構成図である。
第1図におけるエユニット23は、第3図において、命
令フエツチュニツ) (IFU)25.アライナ(AL
IG> 26、デコードユニット(DU)27およびア
ドレス計算ユニット(AU)28部分がこれに対応し、
Eユニット24にはオペランドフェッチユニット(OF
U) 29 、実行ユニット(EU)30が対応してい
る。第1図では、■ユニット23とEユニット24がパ
イプライ/処理を行う旨述べたが、それぞれのユニット
は第3図に示すように更に命令フェッチユニットIFU
25、デコードユニットI)U27、アドレス計算ユニ
ットAU28、オペランドフェッチユニットOF’[J
29、実行ユニット30に分割され、それぞれがパイプ
ライン処理をする例を示している。
令フエツチュニツ) (IFU)25.アライナ(AL
IG> 26、デコードユニット(DU)27およびア
ドレス計算ユニット(AU)28部分がこれに対応し、
Eユニット24にはオペランドフェッチユニット(OF
U) 29 、実行ユニット(EU)30が対応してい
る。第1図では、■ユニット23とEユニット24がパ
イプライ/処理を行う旨述べたが、それぞれのユニット
は第3図に示すように更に命令フェッチユニットIFU
25、デコードユニットI)U27、アドレス計算ユニ
ットAU28、オペランドフェッチユニットOF’[J
29、実行ユニット30に分割され、それぞれがパイプ
ライン処理をする例を示している。
しかしながら、本願発明の要旨は、このようなパイプラ
イン処理そのものとは直接関係ないので、パイプライン
処理については詳細な説明は省略している。尚、パイプ
ライン処理そのものは周知であるが、U、SF3,02
5,771号には、パイプライ/高速信号プロセッサが
示されている。
イン処理そのものとは直接関係ないので、パイプライン
処理については詳細な説明は省略している。尚、パイプ
ライン処理そのものは周知であるが、U、SF3,02
5,771号には、パイプライ/高速信号プロセッサが
示されている。
ところで、第3図において、命令フェッチユニット25
は、命令を先行してフェッチするためのプログラムカウ
ンタ50を有し、命令キャッシュ21よシ次に実行され
るであろう命令を先行して読み出す処理全行なっている
。
は、命令を先行してフェッチするためのプログラムカウ
ンタ50を有し、命令キャッシュ21よシ次に実行され
るであろう命令を先行して読み出す処理全行なっている
。
アドレスライン100によシ、読み出したいアドレスが
命令キャッシュ21に送られ対応する命令4バイト分が
データライン101により命令フエソチュソ)IFU2
5に送出される。
命令キャッシュ21に送られ対応する命令4バイト分が
データライン101により命令フエソチュソ)IFU2
5に送出される。
命令キヤツシユ21に、対応する命令がなかった場合は
〜共通バス3を介して、メモリ1から該描の命令を読み
比し、この命令は命令キャッシュ21にストアされる。
〜共通バス3を介して、メモリ1から該描の命令を読み
比し、この命令は命令キャッシュ21にストアされる。
キヤツシユの動作は周知であり一例えば、「AQuid
e to the IBMSystem/370 Mo
del 168Jに示されている。
e to the IBMSystem/370 Mo
del 168Jに示されている。
命令4バイト分が命令フェッチユニット25に送出され
ると、プログラムカウンタ5oはプラス4(+4.)さ
れ、次の命令の送出要求を命令キャッシュ21に出力す
る。
ると、プログラムカウンタ5oはプラス4(+4.)さ
れ、次の命令の送出要求を命令キャッシュ21に出力す
る。
この動作は、命令フェッチユニットエFU25内にある
バッファ(図示せず)が満杯になるまで続けられる。
バッファ(図示せず)が満杯になるまで続けられる。
命令フェッチユニット■FU25からは、バス103を
介して、あらかじめ読み出しておいた命令がアライナ(
ALIG)26に送出される。
介して、あらかじめ読み出しておいた命令がアライナ(
ALIG)26に送出される。
アライナ26は、デコードユニットDU27からの信号
線102に指示されたバイト数だけシフト処理を行い、
バス104に該当の命令を送出する。
線102に指示されたバイト数だけシフト処理を行い、
バス104に該当の命令を送出する。
信号線102゛の値を適当に操作することで、ノ(ス1
04には第5図に示すように、命令の第1オベラ/ド指
定子処理時には、左端にオペコードOPが、続いて第1
番目のオペランド指定子が並ぶように、2番目以降のオ
ペランド指定子処理時く説明する。
04には第5図に示すように、命令の第1オベラ/ド指
定子処理時には、左端にオペコードOPが、続いて第1
番目のオペランド指定子が並ぶように、2番目以降のオ
ペランド指定子処理時く説明する。
デコードユニット(DU)27は、アライナ26(AL
IG)よシ送出されたオペコード及びオペランド指定子
をデコードして、アドレス計算ユニットAU28へ下記
の情報を送る。
IG)よシ送出されたオペコード及びオペランド指定子
をデコードして、アドレス計算ユニットAU28へ下記
の情報を送る。
(1) バス105を介してアドレツンングモードを
送る。
送る。
アトレッジフグモードには、先に説明の如ぐ、次の(a
)〜(h)があり、このうち1つが指定される。
)〜(h)があり、このうち1つが指定される。
(a):レジスタ直接 ・・・・・・ 屋1Φ):Rユ
・・・・・・ A2 (C): R,+DISPタイプ ・・・・・・ A3
,5.7(d): R,+DISPインダイレクトタイ
プ ・・・・・・屋4,6.8 (e):イミーデイエ多ト ・・J・・・ 屋9,10
,11(f):PC+DISPタイプ・・・扁12.1
4,16億): PC+DISPインダイレクトタイプ
・・・・・・Al1,15.17 (h) : (b)〜(d)でインデックス付タイプ
・・・・−・418〜24 尚屋1〜扁24は第2図(B)に示すオペランド指定子
フォーマットの41〜24に対応している。
・・・・・・ A2 (C): R,+DISPタイプ ・・・・・・ A3
,5.7(d): R,+DISPインダイレクトタイ
プ ・・・・・・屋4,6.8 (e):イミーデイエ多ト ・・J・・・ 屋9,10
,11(f):PC+DISPタイプ・・・扁12.1
4,16億): PC+DISPインダイレクトタイプ
・・・・・・Al1,15.17 (h) : (b)〜(d)でインデックス付タイプ
・・・・−・418〜24 尚屋1〜扁24は第2図(B)に示すオペランド指定子
フォーマットの41〜24に対応している。
(2)バス106を介して、DISPまたはイミーディ
エツ・トデータを32ビツトで送る。
エツ・トデータを32ビツトで送る。
(3)バス107を介してジェネラルレジスタR1のア
ドレスを送る。
ドレスを送る。
(4)パス108e介り、てインデックスレジスタ几R
8のアドレス、 および (5)ハス116を介してアドレス演算に使用するプロ
グラムカウンタの値を送る。
8のアドレス、 および (5)ハス116を介してアドレス演算に使用するプロ
グラムカウンタの値を送る。
アドレス計算ユニットAU28は、バス105によって
示されたアドレツンングモードに従い、上記(a)、
(e)以外の時は、オペランドのアドレス計算を行い、
バス109に計算後のアドレスを送出する。
示されたアドレツンングモードに従い、上記(a)、
(e)以外の時は、オペランドのアドレス計算を行い、
バス109に計算後のアドレスを送出する。
一方、(a)の場合は、バス107の内容を、そのま\
バス113に送出し、(e)の場合はバス106の内容
にバス109に送出する。
バス113に送出し、(e)の場合はバス106の内容
にバス109に送出する。
オペランドフェッチユニット0FU29は、上記(a)
、 (e)以外の時は、送られたアドレスが示されてい
るバス109の内容を、バス110に送出し、オペラン
ドがリード時には、オペランドキャッシュ22にリード
処理を要求する。
、 (e)以外の時は、送られたアドレスが示されてい
るバス109の内容を、バス110に送出し、オペラン
ドがリード時には、オペランドキャッシュ22にリード
処理を要求する。
リードオペランドが、オペランドキャッシュ22からバ
ス111に送出されると、オペランドフェッチユニット
0FU29は、ノ;スx12el’i’して実行二二ツ
) Eu2Oに、読み出されたオペランドを送出し、ま
たオペランドがそろった旨を連絡する。
ス111に送出されると、オペランドフェッチユニット
0FU29は、ノ;スx12el’i’して実行二二ツ
) Eu2Oに、読み出されたオペランドを送出し、ま
たオペランドがそろった旨を連絡する。
オペランドがライト時は、実行ユニットEU30からの
書き込みデータが、バス111に出力されるまで、オペ
ランドフェッチユニット0FU29は、アドレスをバス
110に送出し続ける。
書き込みデータが、バス111に出力されるまで、オペ
ランドフェッチユニット0FU29は、アドレスをバス
110に送出し続ける。
一方、上記(a)に対しては、オペランドフェッチユニ
ット0FU29は、アドレス計算ユニットAU28より
送出されたレジスタアドレス113により、自身が有す
るジェネラルレジスタ(図示せず)のアクセスを行う。
ット0FU29は、アドレス計算ユニットAU28より
送出されたレジスタアドレス113により、自身が有す
るジェネラルレジスタ(図示せず)のアクセスを行う。
(a)以外と異なるのは、メモリアクセスするか、レジ
スタをアクセスするかの差異のみである。
スタをアクセスするかの差異のみである。
また、(e)に対しては、バス109の内容をそのまま
バス111に送出し、実行ユニットEU30にオペラン
ドがそろった旨を連絡する。
バス111に送出し、実行ユニットEU30にオペラン
ドがそろった旨を連絡する。
また、実行ユニットEU30は、デコードユニットDU
27からオペコードパス114を介して送出されたマイ
クロプログラムの先頭アドレスを受信し、リード時は、
バス112のオペランドを用いて、ライト時は、オペラ
ンド(データ)をバス111に出力して順次、命令の処
理を行う。
27からオペコードパス114を介して送出されたマイ
クロプログラムの先頭アドレスを受信し、リード時は、
バス112のオペランドを用いて、ライト時は、オペラ
ンド(データ)をバス111に出力して順次、命令の処
理を行う。
また、命令が分岐命令の場合は、バス115を用いて、
新たなプログラムカウンタ値を命令フェッチユニットI
FU25のプログラムカウンタ50や、後述するデコー
ドユニットDU27内のDPレジスタ69にセントする
と同時に、パイプライン処理で先行的に処理されていた
オペランドの各ユニットにおける処理結果をキャンセル
させる。
新たなプログラムカウンタ値を命令フェッチユニットI
FU25のプログラムカウンタ50や、後述するデコー
ドユニットDU27内のDPレジスタ69にセントする
と同時に、パイプライン処理で先行的に処理されていた
オペランドの各ユニットにおける処理結果をキャンセル
させる。
以上が、1つのオペランド指定子に対する処理の概略で
、各ユニット(25〜30)は、パイプライン処理で、
順次オペランド指定子の処理を並列に処理していく。
、各ユニット(25〜30)は、パイプライン処理で、
順次オペランド指定子の処理を並列に処理していく。
次に、本発明の要旨に関係するデコードユニット27に
ついて、具体例を示し詳細に説明する。
ついて、具体例を示し詳細に説明する。
第4図は、第3図に示すデコードユニッ)DU27の具
体的な来施例を示すブロック図である。
体的な来施例を示すブロック図である。
DPレジスタ69は、デコードユニットDU27がデコ
ードする命令の先頭を示しており、第1番目のオペラン
ド指定子デコード時は、オペコードのアドレスを、第2
番目以下のデコード時は、該当オペランド指定子の先頭
−1のアドレスを示している。
ードする命令の先頭を示しており、第1番目のオペラン
ド指定子デコード時は、オペコードのアドレスを、第2
番目以下のデコード時は、該当オペランド指定子の先頭
−1のアドレスを示している。
上記アドレスは、バス102を介して第3図に示すアラ
イナALIG26、命令フェッチユニットIFU25に
送出されているため、バス104には、第5図に示すよ
うに、1バイト目には、第1オペランド指定子の読み出
しの場合は、(A)に示すように、オペコードOP1第
2オペランド指定子以下の読み出しの場合は、(B)に
示すように、ダミーのデータ、第2バイト目には、終了
フラッグSを含んだオペランド指定子の先頭バイトが、
第3バイト目から第7バイト目には、オペランド指定子
のその他の情報が出力される。
イナALIG26、命令フェッチユニットIFU25に
送出されているため、バス104には、第5図に示すよ
うに、1バイト目には、第1オペランド指定子の読み出
しの場合は、(A)に示すように、オペコードOP1第
2オペランド指定子以下の読み出しの場合は、(B)に
示すように、ダミーのデータ、第2バイト目には、終了
フラッグSを含んだオペランド指定子の先頭バイトが、
第3バイト目から第7バイト目には、オペランド指定子
のその他の情報が出力される。
バス204は、第何番目のオペランドの処理をしている
かを示す情報で、本情報が全オペランド処理終了を示し
ている時、バス104の第1バイトはオペコードレジス
タ64にセットされる。
かを示す情報で、本情報が全オペランド処理終了を示し
ている時、バス104の第1バイトはオペコードレジス
タ64にセットされる。
オペコードレジスタ64の出力は、該当命令の実行ユニ
ットEU30のマイクロプログラムの先頭アドレスと求
めるオペコードデコードユニット61と、該当命令のオ
ペランドに対する情報を有するオペランド情報ROM6
3に送られる。
ットEU30のマイクロプログラムの先頭アドレスと求
めるオペコードデコードユニット61と、該当命令のオ
ペランドに対する情報を有するオペランド情報ROM6
3に送られる。
ROM61の出力結果201は先頭アドレスレジスタ6
2にセットされ、オペコードバス114ヲ介してt第1
オペランドがオペランドフェッチユニット0FU29が
ら実行ユニットEU30に渡されるのに同期して、Eu
2Oに送出される。
2にセットされ、オペコードバス114ヲ介してt第1
オペランドがオペランドフェッチユニット0FU29が
ら実行ユニットEU30に渡されるのに同期して、Eu
2Oに送出される。
ROM63は、例えば第6図に示す構成で、その中には
、第6図に示すような情報があらかじめ入力されておシ
、オペコードと第何番目のオペランドの処理であるかの
情報をアドレスとして読み出される。
、第6図に示すような情報があらかじめ入力されておシ
、オペコードと第何番目のオペランドの処理であるかの
情報をアドレスとして読み出される。
すなわち、オペコードレジスタ64に、第1バイト目が
セットされた時には、セレクタ5EL81で、バス20
0側が選ばれるため、オペコードをアドレスとして、そ
の第1オペランドに関する情報が読み田される。
セットされた時には、セレクタ5EL81で、バス20
0側が選ばれるため、オペコードをアドレスとして、そ
の第1オペランドに関する情報が読み田される。
読み出された情報としては、
(1)オペランドの属性、すなわち、リードオペランド
であるか、ライトオペランドであるかのffNR/Wや
、オペランドのデータ長L(バイト、ワード、ロングワ
ード)を示す情報、 (2)オペランドの最終であることを示すフラッグ、お
よび (3)同一命令の次オペランドの情報が入っているアド
レス、 がある。
であるか、ライトオペランドであるかのffNR/Wや
、オペランドのデータ長L(バイト、ワード、ロングワ
ード)を示す情報、 (2)オペランドの最終であることを示すフラッグ、お
よび (3)同一命令の次オペランドの情報が入っているアド
レス、 がある。
(1)はバス105−1に出力され、アドレス計算ユニ
ソ)AU28に出力され、また(2)は、バス203に
出力され、デコード処理終了バイト数検出器65に送出
される。
ソ)AU28に出力され、また(2)は、バス203に
出力され、デコード処理終了バイト数検出器65に送出
される。
また、(2)、 (3)の情報は、レジスタ83にラッ
チされた後、バス204に出力され、次のオペランドを
読み出すアドレスとして使用される。
チされた後、バス204に出力され、次のオペランドを
読み出すアドレスとして使用される。
(2)の情報のラッチ情報が、セレクタ81の選択端子
Sに入力されるため、(2)の情報がu1″の場合は、
オペコードレジスタ64の内容(200)が使用され
It Q 71の場合は(3)の情報が使用される。
Sに入力されるため、(2)の情報がu1″の場合は、
オペコードレジスタ64の内容(200)が使用され
It Q 71の場合は(3)の情報が使用される。
一方、バス104の中で、終了フラッグSを示す信号線
205は、デコード処理終了バイト数検出器65に送出
される。
205は、デコード処理終了バイト数検出器65に送出
される。
また、オペランド指定子の先頭7ビツトは、バス206
によシ、オペランド指定子デコーダ66に送られる。7
ビツトの情報によりオペランド指定子のデコードを行う
が、その例を第7図により説明する。
によシ、オペランド指定子デコーダ66に送られる。7
ビツトの情報によりオペランド指定子のデコードを行う
が、その例を第7図により説明する。
來とえば、第2図(B)の&3に示す(Rユ+DI8P
a)のオペランド指定子が送られると、第7図(A)の
ように上位7ピツトの中の更に3ビツトが010である
ことを検出して、下記情報が出力できる。
a)のオペランド指定子が送られると、第7図(A)の
ように上位7ピツトの中の更に3ビツトが010である
ことを検出して、下記情報が出力できる。
(1)2バイト長のオペランド指定子であること、(2
)バス208の内容をバス106へ出力する場合、DI
SPの桁合せを行うため3バイトの右シフトが必要であ
ること、 (3) DISP値として4バイト化を図るため、上
位3バイトについてはJ)ISP、の最上位ビットを符
号拡張して出力すること、 (4) R,+DISPでもってオペランドのアドレ
スが計算できること、 (5] Roの情報は1バイト目の下位4ビツトに存
在すること、 の5つである。同様に、第2図(B)のAi、 7の(
R,+DI SP 32 )が送られてくると、第7図
(B)に示すように上位7ピツトが1110110であ
ることを検出して、下記情報が出力できる。
)バス208の内容をバス106へ出力する場合、DI
SPの桁合せを行うため3バイトの右シフトが必要であ
ること、 (3) DISP値として4バイト化を図るため、上
位3バイトについてはJ)ISP、の最上位ビットを符
号拡張して出力すること、 (4) R,+DISPでもってオペランドのアドレ
スが計算できること、 (5] Roの情報は1バイト目の下位4ビツトに存
在すること、 の5つである。同様に、第2図(B)のAi、 7の(
R,+DI SP 32 )が送られてくると、第7図
(B)に示すように上位7ピツトが1110110であ
ることを検出して、下記情報が出力できる。
(1)6バイト長のオペランド指定子であること、(2
)バス208の内容をバス106へ出力する場合、DI
SPの桁合せを行うため1バイト左ソフトが必要である
こと、 f3) D I S Pは32ビツト全てが指定され
ているためそのまま出力しなければならないこと、(4
) RIl+I)ISPでもってオペランドのアドレ
スが計算できること、 (51R,の情報は、オペランド指定子の2バイト目の
下位4ビツトに存在すること、 の5つである。
)バス208の内容をバス106へ出力する場合、DI
SPの桁合せを行うため1バイト左ソフトが必要である
こと、 f3) D I S Pは32ビツト全てが指定され
ているためそのまま出力しなければならないこと、(4
) RIl+I)ISPでもってオペランドのアドレ
スが計算できること、 (51R,の情報は、オペランド指定子の2バイト目の
下位4ビツトに存在すること、 の5つである。
以上2つの例につき示したがこれらをまとめてみると次
のようになる。
のようになる。
オペランド指定子デコーダ66は、送られてきたオペラ
ンド指定子をデコードし、次にあげる情報をそれぞれ出
力する。
ンド指定子をデコードし、次にあげる情報をそれぞれ出
力する。
(1)バス215へは、オペランド指定子の長さをバイ
ト単位で出力する。例えば、第2図[F])のA3のオ
ペランド指定子で、(R−+DISPg )のオペラン
ド指定子が送られてきた時は、パ2″′を出力する。
ト単位で出力する。例えば、第2図[F])のA3のオ
ペランド指定子で、(R−+DISPg )のオペラン
ド指定子が送られてきた時は、パ2″′を出力する。
(2)ハス211へハ、ティスプレースメント(DIS
P)/イミーディエット(IM>データ用アライナ67
に対するソフトバイト数を出力する。
P)/イミーディエット(IM>データ用アライナ67
に対するソフトバイト数を出力する。
例えば、(R,+DISPs)のオペランド指定子の場
合は、第7図(Alに示した如く3バイト右ソフトを、
(R−+DISP32 )の場合は、第7図(B)に示
した如く1バイト左シフトを指示する。
合は、第7図(Alに示した如く3バイト右ソフトを、
(R−+DISP32 )の場合は、第7図(B)に示
した如く1バイト左シフトを指示する。
(3)バス212へは、アライナ67に対するマ?
スフバイトの指示データを出力する。
これは、アライナ67に対し、バス106に出力する4
バイトのデータ中、上位2バイト、又は3バイトのマス
ク?指示することで、1バイトや゛2バイトのDISP
、IM情報の符号拡張による4バイト化を図るためのも
のである。
バイトのデータ中、上位2バイト、又は3バイトのマス
ク?指示することで、1バイトや゛2バイトのDISP
、IM情報の符号拡張による4バイト化を図るためのも
のである。
1例えば、DISP、の時には、第7図(A)に示す如
く3バイトシフ)、I)ISP、2の時は第7図(B)
の如く前にr−R,Jという余分な1バイトがあるため
、1バイト左シフトする。
く3バイトシフ)、I)ISP、2の時は第7図(B)
の如く前にr−R,Jという余分な1バイトがあるため
、1バイト左シフトする。
これは、DISP、の時、上3バイトにはDISPsの
符号ピットを拡張して入れておかないと、32ビツトの
正常なアドレス計算ができないからである。(バス21
2はその指定のためのもの) (4) バX105−2へはアドレッシングモードを
出力し、これによってアドレス計xユニッ)AU28の
動作モードを指示する。
符号ピットを拡張して入れておかないと、32ビツトの
正常なアドレス計算ができないからである。(バス21
2はその指定のためのもの) (4) バX105−2へはアドレッシングモードを
出力し、これによってアドレス計xユニッ)AU28の
動作モードを指示する。
アドレッシングモードについては、第3図のアドレス計
算ユニットAU28の説明に関連して、(a)〜(h)
の8つのモードがあることを既に説明した。
算ユニットAU28の説明に関連して、(a)〜(h)
の8つのモードがあることを既に説明した。
(5) バス216へはジェネラルレジスタR,の存
在する位置が、1バイト目か2バイト目かを示す情報を
出力する。
在する位置が、1バイト目か2バイト目かを示す情報を
出力する。
(R,+DISP8)時は1バイト目、(R。
+ D I S P s 2 )時は2バイト目が指示
される。
される。
一方、バス108へは、オペランド指定子の中のインデ
ックスレジスタR工の部分を出力する。
ックスレジスタR工の部分を出力する。
また、セレクタ68は、信号216で指定されたジェネ
ラルレジスタR1の存在する位置(1バイト目か2バイ
ト目かの信号)によって、Rnに対応する部分(バス2
07の内容或いはバス210の内容)をバス107へ出
力する。
ラルレジスタR1の存在する位置(1バイト目か2バイ
ト目かの信号)によって、Rnに対応する部分(バス2
07の内容或いはバス210の内容)をバス107へ出
力する。
アライナ57は、前述したように、オペランド指定子の
2バイト目から7バイト目までがバス208によって与
えられる次め、信号線211で与えられたシフト数だけ
シフト処理を行い、且つ信号線212で与えられたマス
ク部に対しては、符号の拡張を行い、バス106に4バ
イトのデータとして出力する。
2バイト目から7バイト目までがバス208によって与
えられる次め、信号線211で与えられたシフト数だけ
シフト処理を行い、且つ信号線212で与えられたマス
ク部に対しては、符号の拡張を行い、バス106に4バ
イトのデータとして出力する。
これらは、第7図(A)、(B)に示した通りである。
デコード処理終了バイト数検出器65について説明する
。
。
この部分は、本発明になる不定長命令(Sピット付加し
たもの)を扱う場合の要部でもある。
たもの)を扱う場合の要部でもある。
デコード処理終了バイト数検出器65には、前述した如
く、オペランド終了フラッグEを示す信号線2o3、オ
ペランド指定子のストップピットSを示す信号線205
及びオペランド指定子のバイト数(O8B)を示す信号
線215の3つの信号線が入力されておシ、信号線21
4へは、次のオペランド指定子のアドレスを示すため、
DP69の加算値DPINCi+ tバイト単位で出力
する。
く、オペランド終了フラッグEを示す信号線2o3、オ
ペランド指定子のストップピットSを示す信号線205
及びオペランド指定子のバイト数(O8B)を示す信号
線215の3つの信号線が入力されておシ、信号線21
4へは、次のオペランド指定子のアドレスを示すため、
DP69の加算値DPINCi+ tバイト単位で出力
する。
この場合のアルゴリズムは次の通シである。
E=1であれば、
DPINCB = OS B
これ以外で、S=Oであれば、
DPINCs = O8s −1
また、S−1であれば
DP I NCB = 0
すなわち、
(1)オペランドの終了フラッグEが1″の場合は、該
当命令の処理は終了したため、次の命令の先頭をさすよ
うに、DPレジスタ69がオペランド指定子のバイト数
分(O8B)加算されるよう信号線214に出力される
。
当命令の処理は終了したため、次の命令の先頭をさすよ
うに、DPレジスタ69がオペランド指定子のバイト数
分(O8B)加算されるよう信号線214に出力される
。
(2) (1)でなく、また終了フラッグSがセット
されていない場合は、次のオペランド指定子が1バイト
のダミーを先頭バイトにおいて、バス104に出力させ
るため、(オペランド指定子のバイト数:08m)−i
の値が加算されるよう信号線214に出力される。
されていない場合は、次のオペランド指定子が1バイト
のダミーを先頭バイトにおいて、バス104に出力させ
るため、(オペランド指定子のバイト数:08m)−i
の値が加算されるよう信号線214に出力される。
(3) (1)でなく、また終了フラッグSがセット
されている場合は、DPレジスタ69が、そのま\の(
嗅をとるよう、′0#が出力される。これによって−同
一のオペランド指定子を、次のオペランドに対する処理
にも使用することになシ、同一のオペランドが繰返し使
用されることになる。
されている場合は、DPレジスタ69が、そのま\の(
嗅をとるよう、′0#が出力される。これによって−同
一のオペランド指定子を、次のオペランドに対する処理
にも使用することになシ、同一のオペランドが繰返し使
用されることになる。
第8図は、デコード処理終了バイト数検出器65におけ
る上記アルゴリズムを実現するハードウェア構成を示し
ている。
る上記アルゴリズムを実現するハードウェア構成を示し
ている。
つまり、E=1の場合は、出力ゲート3o1が開き、バ
ス214にはバス215の内容OS mが出力され、E
−0の時は、S=Oのとき出カゲー) 30375:開
き、08B l’e出力し、またS=1のとき出力ゲ
ー)302が開き It Q jfiが出力されるよう
になっている。
ス214にはバス215の内容OS mが出力され、E
−0の時は、S=Oのとき出カゲー) 30375:開
き、08B l’e出力し、またS=1のとき出力ゲ
ー)302が開き It Q jfiが出力されるよう
になっている。
本発明においては、Eがat 171の時、Sピットが
u1″でなければ、オペランド数より多いオペランド指
定子が有ることを意味し、これをエラーとして検出しよ
うとするものである。第8図ではアンドゲート304が
オンとなシ信号105−3を出力し、アドレス計算ユニ
ットAU28に対し、該当エラー発生を連絡するように
なっている。
u1″でなければ、オペランド数より多いオペランド指
定子が有ることを意味し、これをエラーとして検出しよ
うとするものである。第8図ではアンドゲート304が
オンとなシ信号105−3を出力し、アドレス計算ユニ
ットAU28に対し、該当エラー発生を連絡するように
なっている。
アドレス計算ユニットAU28では、信号105−3
’!に以下(7)ユニット(オペランドフェッチユニッ
ト0FU29)に連絡し、最終的に実行ユニソ)Eu2
Oにエラー発生が連絡されるようになっている。
’!に以下(7)ユニット(オペランドフェッチユニッ
ト0FU29)に連絡し、最終的に実行ユニソ)Eu2
Oにエラー発生が連絡されるようになっている。
尚第8図において、304,305はインバータ、30
6,307はアンドゲート、308は減算器である。
6,307はアンドゲート、308は減算器である。
加算器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の値(O8a)k
加え、さらにキャリー人力″1”を加えることで、デコ
ードしているオペランド指定子の次のアドレスをバス1
16に出力する。
ンド指定子の長さを示す信号線215の値(O8a)k
加え、さらにキャリー人力″1”を加えることで、デコ
ードしているオペランド指定子の次のアドレスをバス1
16に出力する。
アドレス計算ユニツ)AU28は、バス116の内容を
アドレス計算に使用するプログラムカウンタPCの値と
して利用する。
アドレス計算に使用するプログラムカウンタPCの値と
して利用する。
オペランドの個数の合理性チェックを行うことに^
よυ、エラー検出率を向上させることができる。
尚上記実施例においては、終了フラッグSはオペランド
指定子の最上位ビットに付加されているが、必ずしもこ
の部分に限定する必要はなく、オペランド指定子のどこ
かに終了フラッグを設ければよい。
指定子の最上位ビットに付加されているが、必ずしもこ
の部分に限定する必要はなく、オペランド指定子のどこ
かに終了フラッグを設ければよい。
また、同一のオペランドを複数回繰返し、利用するのに
、上記実現例では、DPレジスタ69の内容を更新させ
ずに、同一のオペランド指定子を繰返しデコードするこ
とにょシこれを実現しているが、これ以外にもデコード
ユニットから実行ユニットEU30に特別な信号を送り
、先に求められたオペランドを繰返し利用するように指
示してもよい。
、上記実現例では、DPレジスタ69の内容を更新させ
ずに、同一のオペランド指定子を繰返しデコードするこ
とにょシこれを実現しているが、これ以外にもデコード
ユニットから実行ユニットEU30に特別な信号を送り
、先に求められたオペランドを繰返し利用するように指
示してもよい。
第1図は本発明が適用されるデータ処理ンステムの基本
的な概念図、第2図(A+、(B)は本発明に使用され
る不定長命令のフォーマット及び、オペランド指定子の
フォーマツ)f示す図、第3図は第1図の中央処理装置
の具体的な一実施例ブロック構成図、第4図は、本発明
の要部である第3図のデコードユニットの具体的な一実
施例ブロック図、第5図は第4図の説明に用いられるオ
ペランド指定子のフォーマット、第6図は第4図のオペ
ランド情報ROM63の内容を説明するための説明図、
第7図は第4図のオペランド指定子デコーダ66の動作
説明に用いる説明図、第8図は、第4図のデコード処理
終了バイト数検出器65のハード構成を示す一実施例図
である。 ′ 27・・・デコードユニット、61・・・オペコー
ドデコードユニット、63・・・オペランドI報ROM
。 65・・・デコード処理終了バイト数検出器、66・・
・皐10 22 第 20 (A) 1 ′2 図 (3) 躬 3 z 島 5 口 (8)婁二■二丁=二=扉コ ′!J1C(21 204−203 第 1 口 策 ■ 10、!;−3 第1頁の続き 0発 明 者 井手寿之 日立重大みか町5丁目2番1号 株式会社日立製作所大みか工場 内 0発 明 者 加藤猛 日立重大みか町5丁目2番1号 株式会社日立製作所大みか工場 内 0発 明 者 中西宏明 日立重大みか町5丁目2番1号 株式会社日立製作所大みか工場 内 0発 明 者 河上哲也 日立市幸町3丁目2番1号日立 エンジニアリング株式会社内 ■出 願 人 日立エンジニアリング株式会社日立市幸
町3丁目2番1号
的な概念図、第2図(A+、(B)は本発明に使用され
る不定長命令のフォーマット及び、オペランド指定子の
フォーマツ)f示す図、第3図は第1図の中央処理装置
の具体的な一実施例ブロック構成図、第4図は、本発明
の要部である第3図のデコードユニットの具体的な一実
施例ブロック図、第5図は第4図の説明に用いられるオ
ペランド指定子のフォーマット、第6図は第4図のオペ
ランド情報ROM63の内容を説明するための説明図、
第7図は第4図のオペランド指定子デコーダ66の動作
説明に用いる説明図、第8図は、第4図のデコード処理
終了バイト数検出器65のハード構成を示す一実施例図
である。 ′ 27・・・デコードユニット、61・・・オペコー
ドデコードユニット、63・・・オペランドI報ROM
。 65・・・デコード処理終了バイト数検出器、66・・
・皐10 22 第 20 (A) 1 ′2 図 (3) 躬 3 z 島 5 口 (8)婁二■二丁=二=扉コ ′!J1C(21 204−203 第 1 口 策 ■ 10、!;−3 第1頁の続き 0発 明 者 井手寿之 日立重大みか町5丁目2番1号 株式会社日立製作所大みか工場 内 0発 明 者 加藤猛 日立重大みか町5丁目2番1号 株式会社日立製作所大みか工場 内 0発 明 者 中西宏明 日立重大みか町5丁目2番1号 株式会社日立製作所大みか工場 内 0発 明 者 河上哲也 日立市幸町3丁目2番1号日立 エンジニアリング株式会社内 ■出 願 人 日立エンジニアリング株式会社日立市幸
町3丁目2番1号
Claims (1)
- 1、オペランドのアドレッシングモードラ指定するオペ
ランド指定子が処理の種類およびオペランドの数を指定
するオペコード部分から独立している命令を扱うデータ
処理装置において、該命令は、少なくともオペランド指
定子に対応して付加されたオペランド指定子の終了情報
を含み、デコード手段は、少なくともオペコードデコー
ド手段と、オペランド指定子デコード手段とオペランド
指定子に付加された終了情報の検出を行う終了フラング
検出手段を有し、該オペコードデコード手段が、当該命
令の最後のオペランドであることを示す信号を出力した
とき、該終了情報検出手段が終了情報のセットを検出し
ない場合、当該命令をエラーとして検出するようにした
ことを特徴とする不定長命令のエラー検出を行うデータ
処理装置。
Priority Applications (6)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP56132717A JPS5835643A (ja) | 1981-08-26 | 1981-08-26 | 不定長命令のエラ−検出を行うデ−タ処理装置 |
| US06/408,924 US4530050A (en) | 1981-08-26 | 1982-08-17 | Central processing unit for executing instructions of variable length having end information for operand specifiers |
| DE8282107598T DE3278442D1 (en) | 1981-08-26 | 1982-08-19 | Central processing unit for executing instructions of variable length |
| EP82107598A EP0073424B1 (en) | 1981-08-26 | 1982-08-19 | Central processing unit for executing instructions of variable length |
| KR8203773A KR880000297B1 (ko) | 1981-08-26 | 1982-08-23 | 부정장(不定長)명령을 갖는 데이터처리장치 |
| CA000410221A CA1186801A (en) | 1981-08-26 | 1982-08-26 | Central processing unit for executing instructions of variable length |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP56132717A JPS5835643A (ja) | 1981-08-26 | 1981-08-26 | 不定長命令のエラ−検出を行うデ−タ処理装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS5835643A true JPS5835643A (ja) | 1983-03-02 |
| JPS6149693B2 JPS6149693B2 (ja) | 1986-10-30 |
Family
ID=15087925
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP56132717A Granted JPS5835643A (ja) | 1981-08-26 | 1981-08-26 | 不定長命令のエラ−検出を行うデ−タ処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS5835643A (ja) |
-
1981
- 1981-08-26 JP JP56132717A patent/JPS5835643A/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS6149693B2 (ja) | 1986-10-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR100327777B1 (ko) | 다중명령 세트를 이용한 데이터 프로세싱 장치 | |
| KR880000297B1 (ko) | 부정장(不定長)명령을 갖는 데이터처리장치 | |
| US4745547A (en) | Vector processing | |
| US4454578A (en) | Data processing unit with pipelined operands | |
| US6889318B1 (en) | Instruction fusion for digital signal processor | |
| EP0071028B1 (en) | Instructionshandling unit in a data processing system with instruction substitution and method of operation | |
| JP3203401B2 (ja) | データ処理装置 | |
| JPS6312029A (ja) | 情報処理装置 | |
| JPH06236268A (ja) | 命令の長さを判定する装置と方法 | |
| JPH03218523A (ja) | データプロセッサ | |
| JPS6015746A (ja) | デ−タ処理装置 | |
| US6615339B1 (en) | VLIW processor accepting branching to any instruction in an instruction word set to be executed consecutively | |
| JP2620511B2 (ja) | データ・プロセッサ | |
| JPH10232779A (ja) | 命令並列処理方法及び装置 | |
| JP2002229777A (ja) | プロセッサ装置 | |
| EP0094535A2 (en) | Pipe-line data processing system | |
| JPH01137331A (ja) | 制御ワード分岐方法 | |
| JP3834145B2 (ja) | ネスト可能な遅延分岐命令を有するマイクロプロセッサを備えたデータ処理装置及びそのマイクロプロセッサを動作させる方法 | |
| JPH0391029A (ja) | データ処理装置 | |
| JP2748957B2 (ja) | データ処理装置 | |
| JPS5835643A (ja) | 不定長命令のエラ−検出を行うデ−タ処理装置 | |
| US6691223B1 (en) | Processing full exceptions using partial exceptions | |
| JPS6160459B2 (ja) | ||
| US5754810A (en) | Specialized millicode instruction for certain decimal operations | |
| JPS5835642A (ja) | 不定長命令を扱うデ−タ処理装置 |