JPH0642198B2 - デ−タ処理装置 - Google Patents

デ−タ処理装置

Info

Publication number
JPH0642198B2
JPH0642198B2 JP60148301A JP14830185A JPH0642198B2 JP H0642198 B2 JPH0642198 B2 JP H0642198B2 JP 60148301 A JP60148301 A JP 60148301A JP 14830185 A JP14830185 A JP 14830185A JP H0642198 B2 JPH0642198 B2 JP H0642198B2
Authority
JP
Japan
Prior art keywords
data
instruction
tag
operand
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 - Lifetime
Application number
JP60148301A
Other languages
English (en)
Other versions
JPS629440A (ja
Inventor
伸一朗 山口
秀和 松本
忠秋 坂東
宏明 中西
健二 広瀬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Engineering Co Ltd
Hitachi Ltd
Original Assignee
Hitachi Engineering Co Ltd
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Engineering Co Ltd, Hitachi Ltd filed Critical Hitachi Engineering Co Ltd
Priority to JP60148301A priority Critical patent/JPH0642198B2/ja
Priority to US06/881,407 priority patent/US4896258A/en
Priority to EP19930103937 priority patent/EP0552816A3/en
Priority to EP86109096A priority patent/EP0207519B1/en
Priority to DE86109096T priority patent/DE3689389T2/de
Publication of JPS629440A publication Critical patent/JPS629440A/ja
Publication of JPH0642198B2 publication Critical patent/JPH0642198B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はデータ型を示すタグを有するタグ付きデータ用
命令とタグ無しデータ用命令を解釈実行するデータ処理
装置に関する。
〔発明の背景〕
ノイマン型の汎用のデータ処理装置(以下、計算機と称
す)は、その計算機固有のマクロ命令(以下命令と称
す)を持ち、命令は通常オペレーシヨンの種類を示すオ
ペコードとオペレーシヨンの対象となるオペランドの所
在を示すオペランド指定子より成つている。そして、オ
ペランドの指定方法は、アドレツシングモードと呼ば
れ、様々な方法が提案されている。これらの計算機に共
通な特徴として、命令が扱うデータのデータ型は、オペ
コードによつて一義的に決められていることが挙げられ
る。例えば、同じオペランドに存在するデータでも、固
定小数点用の命令であれば、それを整数と見なして演算
し、文字列用の命令であれば、それを文字コードと見な
して演算すると言つた具合である。
これに対して、プロシーデイング オブ ロジツク プ
ログラミング コンフアレンス’84(Proceding of Lo
gic Programming Conference'84)の「パーソナル逐次型
推論マシンPSIのハードウエア開発」あるいはインタ
ーナシヨナル・シンポジウム・オン・ロジツク・プログ
ラミング’84(International Symposium on Logic Pr
ogramming)の「トワーズ・ア・パイプライン・プロロー
グ・プロセツサ」(“Towards a Pipelined Prolog Proc
essor”)、更には、エス・アール・アイ・インターナシ
ヨナル・アーテイフイシヤル・インテリジエンス・セン
ター・テクニカルレポート1983(Tech.Report 30
9,Artificial Intelligence Center,SRI Interna
tional 1983)の「アブストラクト・プロローグ・
インストラクシヨンセツト」(“An Abstruct Prolog I
nstruction Set”)に述べられているプロローグ専用計
算機では、各データの特定のビツトをタグとして割り当
てて、タグにそのデータのデータ型の情報を持たせてい
る。そして、演算時には、タグを調べてデータ型を判定
しながら、演算の種類を変更するようになつている。こ
のようなタグアーキテクチヤは、リスプやプロローグと
言つた記号処理用言語を効率よく実行できるアーキテク
チヤである。
以上述べた2種類の計算機アーキテクチヤは、互いに独
立であり、相入れないものであつた。しかしながら、知
識工学等のアプリケーシヨンでは前者が得意とする数値
処理と後者が得意とする非数値処理(記号処理)が共に
必要であり、両者、即ちタグ無しデータ用命令とタグ付
きデータ用命令を共に実行可能な計算機が必要である。
タグ無しデータ用命令とタグ付きデータ用命令を同一計
算機内で解釈実行するには、両者を別モードの命令セツ
トとして、各命令セツトには、他のモードへ移行する命
令を設けておく方法が考えられるが、モード移行が頻繁
になるとオーボーヘツドが無視できなくなる。
〔発明の目的〕
本発明の目的は、タグ無しデータ用命令とタグ付きデー
タ用命令を実行可能なデータ処理装置を提供することに
ある。
〔発明の概要〕
そこで、本発明では、オペコードをデコードすることに
よつてタグ付きデータを扱う命令かタグ無しデータを扱
う命令を区別し、オペランド指定子によつて指定される
オペランドをタグ付きデータ或いはタグ無しデータとし
て処理するようにしている。
また、同一計算機内でタグ無しデータとタグ付きデータ
を格納しようとすれば、両者の語長を合わせておく必要
があり、例えば、32ビツトマシンの場合には第4図に
示すような埋め込み型のデータ形式となる。この時、3
2ビツト長のデータは、第3図の(c)で示すようにポ
インタで外に引き出す必要があるが、このようなデータ
形式を定数として含むプログラムモジユールをリロケー
タブルにするためには、ポインタの値を絶対アドレスで
なくPC(プログラム カウンタ)相対値あるいはベー
スレジスタ相対値にしておかなければならない。
そこで、この様なデータ形式をイミデイエイトデータと
して持つタグ付きデータ用命令では、アドレス計算時
に、ポインタにPCあるいはベースレジスタの値を加算
して、正しいポインタの値を算出してやれば良い。その
ために、本発明では、タグ付きデータ用命令だけに許さ
れる上記のようなアドレツシングモードを設ける。
〔実施例の説明〕
第1図は、本発明の一実施例を示すデータ処理装置の内
部構成のブロツク図であり、詳しい説明は後述する。
第2図は、本実施例で説明するタグ付きデータ処理装置
(以下計算機と言う)内のレジスタの内で計算機のマク
ロ命令(以下、単に命令と言う)によつてオペランドと
して指定可能なものを示している。各レジスタは32ビ
ツトの巾のものが33本あり、プログラムカウンタ(P
C)以外は、いわゆる汎用レジスタと呼ばれるものであ
る。レジスタの本数は本発明に本質的なものではない
が、ここでは32本の汎用レジスタがあるとして説明す
る。
第3図は、計算機で用いられるデータ形式を示したもの
であり基本語長は32ビツトである。
(a)は、タグ無しデータであり、通常の計算機で多く
使用されている。つまり、符号付き16ビツト加算命令
はビツト15からビツト0を符号付き整数と見なし、3
2ビツトフローテイング加算命令はビツト31からビツ
ト0を単精度のフローテイングデータと見なして演算す
る。(b)は、第1のタグ付きデータであり、データの
型を示すタグとデータが1ワード中に埋め込まれてい
る。本発明に於て、タグのビツト長及びタグのビツト位
置は、本質的な問題ではないが、本実施例ではk=8で
あり、MSB側にタグがあるものとして説明する。
(c)は、第2のタグ付きデータであり、最初の32ビ
ツト(以下ポインタワードと呼ぶ)中には、データ本体
のデータ型を示すタグとデータ本体のメモリアドレス
(ポインタ)が格納されている。そして、データはポイ
ンタで指示されるメモリ上に在る。本発明に於て、前述
のようにタグのビツト長は本質的な問題ではないが、本
実施例ではl=4として説明する。また、ポインタで指
示されるデータは、32ビツトである必然的もなく64
ビツトあるいはそれ以上でも本発明は適用可能である。
(d)は、第3のタグ付きデータであり、ポインタワー
ドには、タグと第1又は第2又は第3のタグ付きデータ
へのポインタが格納されている。
上記(b)〜(d)のデータに於て、命令のオペランド
として指定されるのは、(b)では、タグ付きデータそ
のものであり、(c),(d)ではポインタを含む4バ
イトである。即ちタグ無しデータはバイト単位にアドレ
ツシングできるが、タグ付きデータは4バイト(基本語
長)単位にしかアドレツシングできない。
第4図は、タグ付きデータの具体例を示したものであ
る。nill,variable,atom,short-integerが第1のタグ付
きデータの例であり、long-integer big-number,double
-floatingが第2のタグ付きデータの例であり、referen
ce,structure,list,undefineが第3のタグ付きデータの
例である。前述したように、タグビツト長は、増減して
もかまわないので、新しいデータ型を導入することは容
易である。例えば、使用頻度の高い整数が16ビツトよ
り大きな場合、これをLong−integerで表現すれば、参
照毎に2回のメモリアクセスが生じてしまう。そこでT
AGの“1000”に、28ビツト長のmiddle−intege
r を追加して、比較的大きな調整も1回のメモリアクセ
スで参照できる様にする事が可能である。
第5図は、本実施例の計算機で実行可能な命令のフオー
マツトを示している。命令は、16ビツトのオペレーシ
ヨンワード50(略称OPW)とオペレーシヨンの対象
となるオペランドの所在を示す16ビツト以上のオペラ
ンド指定子51(略称OPS)より成る。
OPW50は、オペレーシヨンの種類とその命令がタグ
付きデータを扱えるかどうかを示す。本実施例では、O
PW50の上位9ビツトが“1111111100”である命令
が、タグ付きデータを扱うことが可能であり、その時の
オペレーシヨンは、OPW50の下位7ビツトで示され
る。ここでは、命令デコーダの構成を容易にする為に、
上記のビツト割り付けを行つたが、OPWをすべてデコ
ードするならば、任意のコードをタグ付きデータを扱う
命令に割り付ける事が可能である。
本実施例では、タグ無しデータ用命令として、米国モト
ローラ社の32ビツトマイクロプロセツサMC6802
0にフローテイング命令を追加した上位互換の命令を備
えており、タグ付きデータ用命令として、プロローグ命
令セツトを備える。ここでプロローグ命令セツトは、エ
ス・アール アイ インターナシヨナル アーテイフイ
シヤルインテリジエンス センター テクニカル レポ
ート309,1983(Tech.Report 309,Arti-fic
ial Intelligence Center,SRI Interna-tional 1
983)の「アブストラクト プロローグインストラク
シヨン セツト」(“An Abstract Prolog Instruction
Set”)に記載されているプロローグ命令セツト(以下
WAMと略す)と上位互換である。WAMについては、
上記文献に詳しく述べてあるので、ここでは本発明の理
解に必要な部分を簡単に述べる。WAMは、大きく4つ
のカテゴリーから成つており、それぞれ、put 系命令、
get系命令、unify 系命令、Control系命令と呼ぶ。プロ
ローグで記述されたプログラムは、コンパイラにより上
記命令に変換される。put 系命令は、引数を引数レジス
タにロードする命令であり、get 系命令は、引数レジス
タ内のデータと別の引数のパターンマツチングを行う命
令である。unify 系命令は、引数が構造を持つている時
(例えば、リスト・構造体)に、各要素毎のパターンマ
ツチングを行う命令である。ここでunify 系命令は、先
行するget 系命令の実行結果(リードモード又はライト
モード)により、動作を完全に変えなければならない。
このモードは、データ処理装置のステータスフラグRM
B(後述)に反映される。OPS51は、アドレツシン
グモードを示すモード指定子EA52とアドレス計算で
使用するデイスペレースメントdisp53より成る。
第6図は、EA52の詳細を示しており、各アドレツシ
ングモードでのオペランドアドレスの計算手順について
第7図と第8図を併用しながら説明する。
MOD55が“000”,“001”,“010”のも
のは、いわゆるレジスタダイレクト及びレジスタ間接と
呼ばれるアドレツシングモードであり、当業者には、周
知のものである。MOD55が“011”のものは、オ
ートインクリメントと呼ばれるアドレツシングモードで
あり、第8図(d)で示すよう、S54が0の時に
は、REGNO 56で示されるレジスタ2が加算され、S
54が1の時には、REGNO 56で示されるレジスタに4
が加算される。MOD55が“100”のものは、オー
トデクリメントと呼ばれるアドレツシングモードであ
り、第8図の(e)で示すようにオートインクリメント
とは逆の動作をする。
MOD55が“101”のものは、レジスタ相対と呼ば
れるアドレツシングモードであり、第8図(f)で示す
ように、S54が0の時には、DISP53が第7図
のdispタイプIの形式となり、これがREGNO 56で示さ
れるレジスタに加算される。またS54が1の時に
は、dispタイプIIが加算されてメモリ上のオペランドア
ドレスが算出される。
MOD55が“111”でREGNO 56が“0000”の
ものは、アブソリユートと呼ばれるアドレツシングモー
ドであり、第8図(g)で示すように、S54が0の
時には、DISP53が第7図のdispタイプIの形式とな
り、これがそのままメモリ上のオペランドアドレスとな
る。またS54が1の時には、dispタイプIIがそのま
まメモリ上のオペランドアドレスとなる。
MOD55が“111で、REGNO 56が“0001”の
ものは、イミデイエイトと呼ばれるアドレツシングモー
ドであり、第8図の(h)で示すように、S54が0
の時には、DISP53が第7図のdispタイプIの形式
となり、これがそのままオペランドとなる。またS
4が1の時には、dispタイプIIがそのままオペランドと
なる。
MOD55が“111で、REGNO 56が“0101”の
ものは、プログラムカウンタ相対と呼ばれるアドレツシ
ングモードであり、第8図の(i)で示すようにレジス
タ相対アドレツシングモードと同様なオペランドアドレ
スの算出手順をとる。
MOD55が“111で、REGNO 56が“0111”の
ものは、タグ付きイミデイエイトアドレツシングモード
と呼ぶ。タグ付きイミデイエイトアドレツシングモード
では、第8図の(j)で示すように、DISP53が第
7図のdispタイプIII、即ち4ビツトのタグと28ビツ
トのポインタである形式となり、プログラムカウンタの
値にこのポインタを加算した値をポインタとして持つ第
3図で示すところの第2のオペランド形式が、オペラン
ドとなる。
本実施例では、タグ付きイミデイエイトアドレツシング
モードで使用するレジスタをプログラムカウンタのみに
限って説明しているが、前述の汎用レジスタ、あるいは
本実施例で述べていない他のレジスタでも使用可能なこ
とは明白である。
第9図は、前述したタグ付きデータ用命令とタグ無しデ
ータ用命令を共に実行可能な計算機の全体構成を示して
いる。100は、命令実行装置(略称BPU)であり、
上記の命令を解釈実行する。800は、メモリ装置(略
称MM)であり、上記の命令、あるいはデータを格納す
る。500は、32ビツト巾のメモリアドレスバス(略
称ADRBUS)、600は32ビツト巾のメモリデー
タバス(略称DATBUS)である。本発明は、BPU
100に適用されるものなので、以下BPU100の内
部について詳しく説明する。
第1図は、BPU100の内部構成を示すブロック図で
ある。
110は、命令バツフア(IBR)であり、DATBUS60
0を介してMM800よりフエツチした命令が格納され
る。120は、IBR110内の命令から、OPW5
0,EA52,DISP53を切り出すアライナ(ALN)
であり、OPW50が信号線350に出力され、EA5
2が信号線355に出力され、DISP53が信号線3
40にそれぞれ出力される。
130は、命令デコーダ(INSDEC)であり、信号
線355と、信号線350より入力される情報に従つ
て、アドレス計算用のエントリアドレスと命令実行用の
エントリアドレスを生成し、各々信号線360と460
に出力する。140は、アドレス計算のため制御回路
(A−CTL)であり、タグ付きイミデイエイトアドレ
ツシングモードの時に信号線370を“1”とする機能
を持つ。A−CTL140は、信号線370の他にもレ
ジスタフアイル180(ARF)やアドレス計算用演算
器190(A−ALU)等の制御信号の生成も行うが、
本発明の理解には不要なので省略してある。
153は、disp53に含まれるタグの長さを判定するタ
グ長検出回路(TLであり、8ビツト長タグの時に信号
線159が“1”となる。
160は、信号線340中のデイスプレースメントから
タグとポインタを分離する分離回路(SEP)であり、
信号線370と159が共に“1”の時に、タグを信号
線380に出力し、ポインタ部を信号線400に出力す
る。また、それ以外の時には、信号線340がデータが
信号線400にそのまま出力される。
170は、プログラムカウンタ(PC)である。180
は、レジスタフアイル(ARF)であり、第2図のAR
O〜AR15に相当する。190は、アドレス計算で使
用する演算器(A−ALU)である。
200は、SEP160により切り出されたタグを保持
するレジスタ(TAG)であり、タグ付きイミデイエイ
トアドレツシングモード時のオペランドのタグが格納さ
れる。
210は、タグ付きイミデイエイトアドレツシングモー
ド時に、SEP160で切り出されたポインタとPC1
70を加算して得られる新たなポインタが格納されるレ
ジスタ(IMR)である。また、イミデイエイトアドレ
ツシングモードの時にはイミデイエイトデータが格納さ
れる。本実施例によれば、タグ付きイミデイエイトアド
レツシングモード時のオペランドは、TAG200とI
MR210の組で存在することになる。
220は、レジスタフアイル(ERF)であり、第2図
のER0〜ER15に相当する。
230は、演算器(E−ALU)であり、通常の算術・
論理演算の他に、信号線465が“1”の場合には、信
号線430から入力されるデータに含まれるタグの長さ
をTL152によつて判定し、信号線158の値に従つ
て信号線430からのタグ信号線445から入力される
データに埋め込んでタグ付きデータを生成する機能を持
つ。
240は、信号線475が“1”の場合に、ESAB4
40からの入力されるタグ付きデータから、タグ長検出
回路TL151の判定結果によりタグをマスクして、デ
ータ部を信号線445に出力するデータ切り出し回路
(MSK)である。
250は、ESBB430から入力されるタグ付きデー
タから、TL150によつて判定されたタグだけを切り
出す回路(TAG−EXT)であり、タグを251に出
力する。TAG−EXT250によつて切り出されたタ
グは、信号線455が“0”の時、タグレジスタ260
(TAGR)へ格納され、信号線455が“1”の時、
タグレジスタ270(TAGR)に格納される。
280は、セレクタ(SEL)であり、信号線470に
従つてTAGR260又はTAGR270又はE−CTL
290から出力されるタグから1つを選択してESBB
430の上位8ビツトに出力する。
290は、命令実行のための制御回路(E−CTL)で
あり、マイクロプログラム制御方式によつて、制御信号
の生成を行う。
300は、BPU100の状態を示すステータスフラグ
(RMB)デあり、「0」の時リードモードを示し、
「1」の時ライトモードを示している。
310は、メモリのアドレスを保持するメモリアドレス
レジスタ(MAR)であり、アドレス計算によつて算出
されたオペランドアドレスが格納される。また、タグ付
きイミデイエイトアドレツシングモードの時には、ポイ
ンタワードのポインタが格納される。
320は、MM800へ書き込むデータを保持するメモ
リライトデータレジスタ(MWR)である。330は、
MM880から読み出したデータを保持するオペランド
バツフアレジスタ(OBR)である。
以下本発明の理解に必要な各ブロツクの詳細な説明を行
う。
INSDEC130は、例えば第10図に示す構成をとり、少
なくとも命令がタグ付きデータを扱うかどうかの検出を
行う手段133を持つている。エントリアドレス生成回
路131は、タグ付きデータ用命令検出回路133の出
力134によつて、タグ無しデータ用命令とタグ付きデ
ータ用命令では、異なつたエントリアドレスを信号線4
60に出力する。またA−CTL用エントリアドレス生
成回路132は、命令中のEA52に従つてアドレス計
算用のエントリアドレスを生成するが、信号線134が
「0」即にタグ無しデータ用命令の時には、タグ付きイ
ミデイエイトアドレツシングモードは、使用不可能なア
ドレツシングモードとして、エントリアドレスは生成さ
れない。
エントリアドレス生成回路131,132は、リードオ
ンリメモリ(ROM)、プログラマブルロジツクアレイ
(PLA)等を用いれば、当業者にとつて容易に構成で
きる。また、タグ付きデータ用命令検出回路133は、
本実施例の場合第11図に示すような回路によつて構成
できる。第11図に於て、信号線352は、命令中のO
PS50の16ビツト中の上位9ビツトであり、信号線
351は、それ以外のビツドである。1330と133
1はNOT論理であり、1332はAND論理である。
信号線134は、タグ付きデータ用命令の時「1」とな
り、それ以外の命令では「0」となる。また、オペレー
シヨンワード(OPW)が、規則性の高いものであれ
ば、命令デコーダ130全体を、ROMあるいはPLA
あるいはタンダムロジツクを用いて、1つのデコーダと
実現する事は可能である。
タグとポインタの分離回路SEP160は、第12図の
ような構成をとり、A−CTL140からの制御信号3
70が「1」の時に信号線340上のデイスプレースメ
ントからタグとポインタを分離して、それぞれ信号線3
80,390上に出力する。
ここで、タグ切り出し回路161は、本実施例の場合第
13図に示すような回路によつて構成できる。第13図
に於て、信号線344は、信号線340の上位8ビツト
が出力されており、信号線370が「1」の時に信号線
380には、タグが出力される。
また、ポインタ切り出し回路162は、本実施例の場合
第14図に示すような回路によつて構成できる。第14
図に於て、信号線343は、信号線340の下位24ビ
ツトが出力されており、信号線346,347にはそれ
ぞれ信号線340の28ビツト目と24ビツト目が出力
されている。
ポインタ切り出し回路162は、信号線370が「1」
の時、TL153の出力が「1」、即ち8ビツトタグで
あれば、24ビツトポインタの符号拡張データをASB
B400に出力し、TL153の出力が「0」であれば
28ビツトポインタの符号拡張データをASBB400
に出力する。また、信号線370が「0」であれば、信
号線340の値をそのままASBB400に出力する。
タグ長検出回路TL153は、タグ付きデータに含まれ
るタグが8ビツトか4ビツトかを検出する回路であり、
本実施例の場合第15図に示すような回路によつて構成
できる。第15図に於て、信号線344は、信号線34
0の上位4ビツトが出力されており、151はこれらの
論理積をとるAND論理である。TL153は第4図に
示すタグ付きデータの内、8ビツトタグ即ち、上記4ビ
ツトが“1111”の時に出力信号線159が「1」と
なり、4ビツトタグの時には、「0」となる。
本実施例に於て、タグ長検出回路は、TL153の他にT
L150,TL151,TL152があるがいずれも、
機能・内部構成ともに同一である。
タグ切り出し回路TAG−EXT250は、本実施例の
場合第16図に示すような回路によつて構成できる。第
16図に於て、信号線434は、ESBB430の上位
8ビツトが出力されており、8ビツトタグ、即ち信号線
156が「1」の時には信号線434がタグとして信号
線251に出力される。また、4ビツトタグ、即ち信号
線156が「0」の時には、信号線251には上位4ビ
ツトが“0000”で、下位4ビツトにタグが出力され
る。
データ切り出し回路MSK240は、本実施例の場合第
17図に示すような回路で構成できる。第17図に於
て、信号線442は、ESAB440の上位8ビツトが出
力されており、E−CTL290からデータ切り出しの
制御信号475がtrueのとき、TL151の出力157
が「1」、即ち8ビツトタグであれば、信号線445に
は、上位8ビツトがマスクされたデータ部のみが出力さ
れる。また、この時TL151の出力157が「0」な
らば、出力445には、上位4ビツトのみがマスクされ
た28ビツトのデータ部が出力される。また信号線47
5が「0」であれば、ESAB440上のデータがそのまま
信号線445に出力される。
タグ埋め込み回路は、演算器E−ALU230の1つの
フアンクシヨンとして位置付けられ、本実施例では、E
−ALU230内に第18図で示されているような回路
を設けることにより実現できる。第18図に於て、信号
線445にはタグが埋め込まれるデータが出力されてお
り、信号線447には、信号線445の上位4ビツトが
出力されており、信号線448には下位24ビツトが出
力されており、信号線446には、それ以外のビツトが
出力されている。信号線432には、埋め込むタグが出
力されており、E−CTL290からのタグ埋め込み制
御信号465が「1」のとき、TL152の出力158
が「1」、即ち8ビツトタグであれば、出力450の下
位24ビツトには、信号線445の下位24ビツトが出
力され、出力450の上位8ビツトには、信号線432
が出力される。またこの時、TL152の出力158が
「0」であれば、出力450の下位28ビツトには、信
号線445の下位28ビツトが出力され、出力450の
上位4ビツトには、信号線432の下位4ビツトが出力
される。またタグ埋め込み制御信号465が「0」であ
れば、出力450はすべて「0」となる。
第19図に制御回路290の内部構成を示す。E−CT
L290は命令実行のために各種の制御信号を生成する
マイクロプログラム制御方式の制御回路である。尚、本
実施例ではマイクロプログラム制御方式を用いている
が、高速な制御を実現する場合や、あまり複雑でない命
令を実行する場合には、ワイヤードロジツクによる制御
方式を用いる事も可能である。制御回路は一般に第19
図に示したよりも多くの構成要素、信号線を有するが、
本発明に直接関係のないものは省略してある。第19図
に於て、296は、制御メモリ(CS)であり、マイク
ロプログラムを格納する。295は、CS296から読
み出されたマイクロプログラムを保持するマイクロ命令
レジスタ(MIR)である。マイクロプログラムアドレ
ス・セレクタ297は、次に読み出す制御メモリのアド
レスを信号線289に従つて、信号線299,301,
303,305の中から選択する。エンドリ修飾回路2
91は、RMB300の値によつてE−CTL290の
エントリアドレス460を修飾する回路であり、本実施
例では、第20図に示すような回路によつて構成でき
る。第20図に於て、信号線461には、エントリアド
レス460の最下位ビツトが出力されており、信号線4
62にはそれ以外のビツトが出力されている。INSDEC13
0によつて、RM300の値で修飾すべき命令のエント
リアドレスが生成されると、これをユニフアイ命令検出
回路2910によつて検出し、信号線2911が「1」
となり、CS296から最初に読み出すアドレス299
の最下位ビツトは、RMB300の出力496となる。
またユニフアイ命令検出回路2910の出力が「0」の
時には、アドレス299は、エントリアドレス460そ
のままとなる。本実施例では、最下位ビツトを修飾した
が、他のビツトでも可能なことな明白である。
タグ判定回路293は、マイクロプログラムで指定され
るテストパターン304に従つて、タグレジスタの出力
490と495の組み合わせにより、マイクロプログラ
ムのジヤンプアドレス303を修飾するオフセツト30
2を生成する。本実施例では、第21図(1)〜(3)に示す
ような機能を持つ論理によつて構成できる。第21図に
示すような論理は、ROM,RAM,PLA等を用いれ
ば容易に実現可能である。
ジヤンプ先修飾回路292は、マイクロプログラムによ
つて指定されるジヤンプアドレス303をベースとし
て、オフセツト302で示される分だげ離れたジヤンプ
アドレスを生成する回路であり、いわゆるマルチウエイ
ジヤンプを行うものである。本実施例に於ては、第22
図に示すような回路により構成することができる。第2
2図に於て、信号線3031は、ジヤンプアドレス30
3の下位4ビツトを示しており、信号線3032はそれ
以外のビツトを示している。出力のジヤンプアドレス3
01の下位4ビツトには、3031とオフセツト302
の論理和が出力される。
次に、タグ無しデータ用命令とタグ付きデータ用命令を
実行するときの動作例について説明する。
(1) タグ無しデータ用命令の実行例 タグ無しデータ用命令の例として、ロード命令を取り上
げて説明する。第23図の(a)に示すLoad命令は、オ
ペランド指定子1で指定されるオペランドにあるデータ
をオペランド指定子2で指定されるオペランドに転送す
る命令であり、オペコードは第24図の(a)に示す通
りである。本実施例ではオペランド指定子1のアドレツ
シングモードを32ビツトイミデイエイトとし、オペラ
ンド指定子2のアドレツシングモードをレジスタダイレ
クトとする。
Load命令は、MM800より読み出され、第25図の
(a)に示すような形でIBR110内に格納される。
そして、アライナ120によりオペコードとモード指定
子がそれぞれ信号線350と355に出力され(第25
図(b1),(b2))、命令デコーダINSDEC130に
入力される。オペコードの上位9ビツトは、タグ付きデ
ータ用命令検出回路133に入力され、タグ無しデータ
用命令であることが判明し、信号線134は「0」とな
る。これを受けて、E−CTL用エントリアドレス生成
回路131は、タグ無しデータ用命令Loadのエントリア
ドレスを信号線460に出力する。これと並行して、A
−CTL用エントリアドレス生成回路140は、ソース
オペランドが32ビツトのイミデイエイトアドレツシン
グモードであることを解読し、イミデイエイトアドレツ
シングモード用のエントリアドレスを信号線360に出
力する。
A−CTL140は、SEP160の制御用信号370
を「0」とし、図には示してないアドレス計算に必要な
制御信号を出力する。
この時信号線340には、ALN120によつて32ビ
ツトイミデイエイトデータが出力されている(第25図
(c))。タグとポインタの分離回路SEP160は、
このイミデイエイトデータを入力とするが、信号線37
0が「0」であるために、そのままのデータを信号線4
00上に出力する(第25図(d))。信号線400上
のイミデイエイトデータは、A−ALU190をスルー
状態で通過し、IMR210に格納され、イミデイエイ
トアドレツシングモードのアドレス計算が終了する。
一方、E−CTL290は、信号線460を介して入力
されるLoad命令のエントリアドレスに従つて、制御メモ
リCS296からマイクロプログラムを読み出して、命
令実行用の制御信号を生成するが、Load命令がタグ無し
データ用命令であるため、タグ付きデータ用の各回路の
制御線470,480,455,475,465は
「0」となる。そして、IMR210内のイミデイエイ
トデータは、データ切り出し回路MSK240をスルー
して、更にE−ALU230をスルーして、ERF22
0に格納され、Load命令は完結する。
(2) タグ付きデータ用命令の実行例 タグ付きデータ用命令の例として、プツトコンスタント
命令を取り上げて説明する。第23図の(b)に示すPu
t−Constant 命令は、オペランド指定子1で指定される
オペランドにあるタグ付きデータをオペランド指定子2
で指定されるオペランドに転送する命令であり、オペコ
ードは第24図の(b)に示す通りである。ここで、オ
ペランド指定子1のアドレツシングモードをタグ付きイ
ミデイエイトアドレツシングモードとし、オペランド指
定子2のアドレツシングモードをレジスタダイレクトと
する。
Put−Constant 命令は、MM800より読み出され、第
26図の(a)に示すような形でIBR110内に格納
される。そして、アライナ120によりオペコードとモ
ード指定子が信号線350に出力され(第26図
(b))、命令デコーダINSDEC130に入力される。オ
ペコードの上位9ビツトは、タグ付きデータ用命令検出
回路133に入力され、タグ付きデータ用命令であるこ
とが判明し、信号線134は「1」となる。これを受け
て、E−CTLエントリアドレス生成回路131は、タグ
付きデータ用命令Lcstp のエントリアドレスを信号線4
60に出力する。これと並行して、A−CTL用エント
リアドレス生成回路140は、タグ付きイミデイエイト
アドレツシングモードであることを解読し、信号線13
4が「1」であることから、正しいアドレツシングモー
ドであると判定し、タグ付きイミデイエイトアドルレツ
シングモード用のエントリアドレスを信号線360に出
力する。A−CTL140は、信号線360上のエント
リアドレスに従つて、SEP160用制御信号370を
「1」とする。
この時信号線340には、ALN120によつて32ビ
ツトのタグ付きデータが出力されている(第26図
(c))。タグとポインタの分離回路SEP160は、
このタグ付きデータを入力とし、信号線370が「1」
であることから、タグを信号線380へ出力し、符号拡
張したポインタを信号線400へ出力する。
このポインタは、図示してないA−CTLからの制御信
号により、PC170とA−ALU190 で加算されて、
IMR210及びMAR310に格納されて、タグ付き
イミデイエイトアドレス計算が終了する。
一方、E−CTL290は、信号線460を介して入力
されるPut−Constant 命令エントリアドレスに従つて、
制御メモリCS296からマイクロプログラムを読み出
して、命令実行用の制御信号を生成する。Put−Constan
t 命令では、TAG200中のタグとIMR210中の
ポインタを合成してタグ付きデータとして、ERF22
0に格納する必要があるので、タグ埋め込み制御信号4
65が「1」となり、E−ALU230で、タグが埋め
込まれてERFに格納されPut−Constant 命令は完結す
る。
〔発明の効果〕
本発明によれば、タグ無しデータとタグ付きデータが同
じ語長をとる計算機に於て、タグ無しデータ用命令とタ
グ付きデータ用命令を同じ命令セツトとして実行できる
と共に、タグ付きデータ用命令に対しても、タグ無しデ
ータ用命令と同等のアドレツシングモードを提供するこ
とが可能となる。これは、タグ付きデータ用命令で記述
されたプログラムでも、再配置可能であることを意味し
ており、タグ無しデータ用命令とタグ付きデータ用命令
を混在して使用する知識工学向きのプログラムを、より
実用的なものとする効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例を示すデータ処理装置の内部
構成のブロツク図、第2図は本発明に用いられる汎用レ
ジスタの説明図、第3図は、本発明に用いられるデータ
形式を示す図、第4図はタグ付きデータの具体例を示す
図、第5図は本発明で実行可能な命令のフオーマツトを
示す図、第6図は第5図の説明に用いられるアドレツシ
ングモードの詳細を示す図、第7図は第5図に示すデイ
スプレースメント(disp)の形式を示す図、第8図はオペ
ランドの詳細を示す図、第9図は本発明が適用される計
算機の全体構成を示す図、第10図は第1図に示される
命令デコーダの一実施例構成図、第11図は第10図に
示すタグ付きデータ用命令検出回路133の一実施例回
路図、第12図は第1図に示すタグとポインタの分離回
路の一具体例回路図、第13図は第12図に示すタグ切
り出し回路の一具体例回路図、第14図は第12図に示
すポインタ切り出し回路の一具体例回路図、第15図は
第1図に示すタグ長検出回路の一具体例回路図、第16
図は第1図に示すタグ切出し回路の一具体例回路図、第
17図は第1図に示すデータ切出し回路の一具体例回路
図、第18図は第1図に示す演算器の一具体例回路図、
第19図は第1図に示す制御回路の内部構成を示す図、
第20図は第1図に示すエントリ修飾回路の一具体例回
路図、第21図は第1図に示すタグ判定回路の動作説明
に用いられる論理図、第22図は第1図に示すジヤンプ
先修飾回路の内部構成を示す図、第23図は命令の具体
的な実行例を示す図、第24図は本発明に用いられる命
令のオペコードの具体的な実施例を示す図、第25図は
本発明によるタグ無しデータ用命令の実行例を説明する
のに用いられる各部のデータを示す図、第26図は本発
明によるタグ付きデータ用命令の実行例を説明するのに
用いられる各部のデータを示す図である。 130……命令デコーダ、160……タグとポインタの
分離回路、200……タグレジスタ、210……ポイン
タ及びイミデイエイトレジスタ、370……タグとポイ
ンタの分離回路の制御信号。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 坂東 忠秋 茨城県日立市久慈町4026番地 株式会社日 立製作所日立研究所内 (72)発明者 中西 宏明 茨城県日立市大みか町5丁目2番1号 株 式会社日立製作所大みか工場内 (72)発明者 広瀬 健二 茨城県日立市幸町3丁目2番1号 日立エ ンジニアリング株式会社内 (56)参考文献 特開 昭58−161042(JP,A)

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】メモリに格納されたオペコードとオペラン
    ド指定子とからなる命令に従って、オペランドを処理す
    るデータ処理装置において、 上記オペランド指定子は、アドレッシングモードを示す
    モード指定子とアドレス計算で使用するディスプレース
    メントとを有し、 上記ディスプレースメントには、タグ無しデータ又はタ
    グ付きデータを有し、 上記オペコード及びモード指定子をデコードすることに
    より上記ディスプレースメントを構成するデータが上記
    タグ無しデータか上記タグ付きデータかを検出する命令
    デコード部と、 上記命令デコード部によって、上記ディスプレースメン
    トが上記タグ付きデータであると検出されると、上記デ
    ィスプレースメントのタグ部と上記タグ部以外のフィー
    ルドを分離し、上記タグ部以外のフィールドの内容に基
    づいてオペランドのアドレスを演算し、上記命令デコー
    ド部によって、上記ディスプレースメントが上記タグ無
    しデータであると検出されると、上記ディスプレースメ
    ントの内容に基づいてオペランドのアドレスを演算する
    アドレス演算部とを有することを特徴とするデータ処理
    装置。
  2. 【請求項2】特許請求の範囲第1項において、 上記アドレス演算部は、プログラムカウンタまたはベー
    スレジスタの値と上記タグ部以外のフィールドの内容か
    ら演算することを特徴とするデータ処理装置。
  3. 【請求項3】特許請求の範囲第1項において、 上記アドレス演算部によって計算されたアドレスによっ
    て特定されるオペランドを読み出すオペランドフェッチ
    部と、 分離された上記タグの内容に基づいて、上記オペランド
    フェッチ部により読み出されたオペランドを処理する命
    令実行部とを有することを特徴とするデータ処理装置。
  4. 【請求項4】特許請求の範囲第1項において、 上記オペランド指定子には複数の上記ディスプレースメ
    ントを有する命令を処理することを特徴とするデータ処
    理装置。
  5. 【請求項5】特許請求の範囲第1項において、 上記命令デコード部は、データバスを通して与えられる
    上記命令を一時格納する命令バッファと、上記命令バッ
    ファに格納された上記命令からオペコード、オペランド
    指定子及びディスプレースメントをそれぞれ切り出すア
    ライナと、切り出された上記オペコードをデコードし
    て、上記タグ付きデータか上記タグ無しデータかを判別
    し、上記判別された結果に応じて命令実行用エントリア
    ドレスを生成し、切り出された上記オペランド指定子か
    ら上記判別された結果に応じてアドレス計算用エントリ
    アドレスを生成する命令デコーダと、上記アドレス計算
    用のエントリアドレスからアドレッシングモードを判別
    するアドレス計算制御部とを有し、 上記アドレス演算部は、上記アライナによって切り出さ
    れたディスプレースメントに含まれるタグ長を検出する
    タグ長検出部と、上記タグ長検出部によって検出された
    タグ長と上記アドレス計算制御部によって判別されたア
    ドレッシングモードに応じて、上記ディスプレースメン
    トのタグ部とタグ部以外のフィールドとを分離する分離
    部と、分離された上記タグ部以外のフィールドの内容と
    プログラムカウンタの内容とからオペランドのアドレス
    情報を算出するアドレス計算用演算部と、分離された上
    記タグ部を一時格納するタグレジスタと、算出された上
    記オペランドのアドレス情報を一時格納するイミディエ
    イトレジスタとを有することを特徴とするデータ処理装
    置。
JP60148301A 1985-07-04 1985-07-08 デ−タ処理装置 Expired - Lifetime JPH0642198B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP60148301A JPH0642198B2 (ja) 1985-07-08 1985-07-08 デ−タ処理装置
US06/881,407 US4896258A (en) 1985-07-04 1986-07-02 Data processor provided with instructions which refer to both tagged and tagless data
EP19930103937 EP0552816A3 (en) 1985-07-04 1986-07-03 Processor to process tagged and untagged data
EP86109096A EP0207519B1 (en) 1985-07-04 1986-07-03 Data processor
DE86109096T DE3689389T2 (de) 1985-07-04 1986-07-03 Datenverarbeitungsprozessor.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60148301A JPH0642198B2 (ja) 1985-07-08 1985-07-08 デ−タ処理装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP1242255A Division JPH0652501B2 (ja) 1989-09-20 1989-09-20 データ処理装置

Publications (2)

Publication Number Publication Date
JPS629440A JPS629440A (ja) 1987-01-17
JPH0642198B2 true JPH0642198B2 (ja) 1994-06-01

Family

ID=15449718

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60148301A Expired - Lifetime JPH0642198B2 (ja) 1985-07-04 1985-07-08 デ−タ処理装置

Country Status (1)

Country Link
JP (1) JPH0642198B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH065507B2 (ja) * 1986-08-08 1994-01-19 工業技術院長 推論計算機
JPS6461823A (en) * 1987-09-01 1989-03-08 Toshiba Corp Logical information processor
JPH0682322B2 (ja) * 1988-02-16 1994-10-19 工業技術院長 内蔵型タグ付きデータ処理装置
JPH0652501B2 (ja) * 1989-09-20 1994-07-06 株式会社日立製作所 データ処理装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4491908A (en) * 1981-12-01 1985-01-01 Honeywell Information Systems Inc. Microprogrammed control of extended integer and commercial instruction processor instructions through use of a data type field in a central processor unit
JPS60110056A (ja) * 1983-10-31 1985-06-15 Nec Corp デ−タ処理システムにおけるメモリのアドレス生成を動的に変更する方法

Also Published As

Publication number Publication date
JPS629440A (ja) 1987-01-17

Similar Documents

Publication Publication Date Title
KR100327778B1 (ko) 다중명령 세트를 이용한 데이터 프로세싱 방법
EP0220684B1 (en) Data processing system
US4954943A (en) Data processing system
JP2902402B2 (ja) データ処理装置
US4896258A (en) Data processor provided with instructions which refer to both tagged and tagless data
JPH0926878A (ja) データ処理装置
JPH0810428B2 (ja) データ処理装置
US5542060A (en) Data processor including a decoding unit for decomposing a multifunctional data transfer instruction into a plurality of control codes
US4945511A (en) Improved pipelined processor with two stage decoder for exchanging register values for similar operand instructions
US5077659A (en) Data processor employing the same microprograms for data having different bit lengths
GB2352308A (en) Conditional instruction execution
JPH0642198B2 (ja) デ−タ処理装置
JP2520882B2 (ja) デ−タ処理装置およびデ−タ処理方法
JPH0652501B2 (ja) データ処理装置
US5187782A (en) Data processing system
JPS6355635A (ja) デ−タ処理システム
CN100578442C (zh) 选择性地控制结果回写的装置及方法
TWI222015B (en) Mechanism for extending the number of registers in a microprocessor
JPH1196001A (ja) プログラム実行装置及びプログラム変換方法
JPH01217633A (ja) データ処理装置
KR950014160B1 (ko) 정보처리장치
JPS6149692B2 (ja)
EP0507958A1 (en) Device for processing information
JPS62150435A (ja) デ−タ処理方式
JPS6355637A (ja) デ−タ処理システム