JPS6184735A - 汎用レジスタの有効長拡張装置 - Google Patents

汎用レジスタの有効長拡張装置

Info

Publication number
JPS6184735A
JPS6184735A JP59206235A JP20623584A JPS6184735A JP S6184735 A JPS6184735 A JP S6184735A JP 59206235 A JP59206235 A JP 59206235A JP 20623584 A JP20623584 A JP 20623584A JP S6184735 A JPS6184735 A JP S6184735A
Authority
JP
Japan
Prior art keywords
register
general
data
instruction
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.)
Pending
Application number
JP59206235A
Other languages
English (en)
Inventor
Shizuo Goto
志津雄 後藤
Toyohiko Kagimasa
豊彦 鍵政
Seiichi Yoshizumi
吉住 誠一
Yoichi Shintani
洋一 新谷
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 Ltd
Original Assignee
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 Ltd filed Critical Hitachi Ltd
Priority to JP59206235A priority Critical patent/JPS6184735A/ja
Priority to DE8484115890T priority patent/DE3479356D1/de
Priority to EP84115890A priority patent/EP0148478B1/en
Priority to US06/684,785 priority patent/US4679140A/en
Publication of JPS6184735A publication Critical patent/JPS6184735A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は汎用レジスタを基本とする情報処理装置に係り
、特に汎用レジスタの従来の長さを超えるようなアドレ
スやデータを取り扱うことができるような汎用レジスタ
の有効長の拡張を、命令体系の大巾な変更を伴なわずに
実現するのに好適な汎用レジスタの有効長拡張装置に関
する。
〔発明の背景〕
情報処理装置の処理するデータ量の増大に伴って、情報
の処理能力を増大させようという要請が生じる。その1
つとしてアドレスの上限値の拡張、すなわち、プログラ
ムからアクセスできるデータの量を増大(アドレス拡張
と呼ぶ)させようという要請がある。他の1つは、演算
処理単位の増大(データ拡張と呼ぶ)であり、1命令で
処理する情報の処理単位を増加させようという要請であ
る。
これらの要請を満たす情報処理装置の作り方として、次
の2つがある。1つは新しい命令体系を持つ情報処理装
置を作る方法であり、他の1つは従来の情報処理装置に
若干の機能追加をする方法である。ところで1つの命令
体系の下で数多くのプログラムが既に作成されている場
合、それらが新しい情報処理装置においてもそのまま動
作しうることも要請される。この点を考えると上記の中
では後者の方法、すなわち従来の命令体系に若干の修正
をし、従来のプログラムを変更することなく動作させる
ことができ、かつ新しいプログラムも動作させることが
できる情報処理装置を作る方が良策である。
従来プログラムをそのまま動作させることができ、かつ
アドレス拡張を実現した方式としてはIBM社のrIB
M System/370 ExtendedArch
itecture Pvinciples of 0p
erationsJ (S A−22−7085−0)
  に示されているような方式がある。そこではプログ
ラムの実行を制御するためのプログラム状態語(PSW
)の中にアドレス拡張ビットを設け、その値が0の時に
はアドレスの上限値は224−1 、その値が1の時に
はアドレスの上限値は231−1となる。以下1本方式
をさらに詳細に説明する。第1図は、情報処理装置の命
令形式の分類を表わしたものである。図において、Rs
、R2,Rs 、+3t 、Bz 、Xi はすべて、
16個ある32ビツトの汎用レジスタの番号を指示する
ために用いられている。この命令体系では汎用レジスタ
の番号を指示するのに4ビツトが使われており、16個
の汎用レジスタの中のどれかを指し示すのに適した命令
体系となっている。汎用レジスタの値はアドレスであっ
たり、数を表現したり、あるいは文字コードであったり
するが、汎用レジスタにはそれが何を表現しているかの
区別はなく、命令語の中のどの位置で指示されるかによ
り、その用途が決定される。すなわち、第1図において
、BよlBSは、ベース・レジスタとしての使われ方で
あり、B1.B2の指す汎用レジスタの値とDl、D、
の12ビツトの内容が加算された値がメモリ上のアドレ
スを指すのに用いられる。RX形式におけるx2 はイ
ンデックス・レジスタとしての使われ方であり、X2の
指す汎用レジスタの値およびB2の指す汎用レジスタの
値およびD□の内容の3者の加算値がメモリ上のアドレ
スを指すのに用いられる。R1,R2゜R1はその指す
汎用レジスタの値をアドレスとして用いたり、アドレス
ではないデータとして用いたりするが、その用いられ方
は命令語によって一意に決められている。ところで汎用
レジスタの大きさは32ビツトであり、従来アドレス・
モードの時には下位の24ビツトが有効となり上位8ビ
ツトの値は無視されるような命令体系であった。
汎用レジスタへのアドレスの設定は、メモリ上の32ビ
ツトのf−夕を汎用レジスタにセットするLOAD命令
や、32ビツトの汎用レジスタのデータとメモリ上の3
2ビツトのデータとを加算し汎用レジスタにセットする
ADD命命、などを用いて行っている。すなわち、32
ビツトのデータを基本とする命令体系を利用してアドレ
スの設定・計、算を行っており、アドレスとして利用す
る時には上位8ビツトを無視する操作を行っている。
このような命令体系の下でアドレスを拡張する場合を考
える。1つは32ビツト以内のある長さに拡張する場合
であり、他の1つは32ビツトを超えた長さに拡張する
場合である。前述のIBMSystem/370 Ex
tandet Architectureではアドレス
を31ビツトに拡張しているが、上述のように拡張アド
レスモードか否かを表わす拡張アドレス・ビットの値に
従って32ビツトの汎用レジスタのうち上位8ビツトを
無視するが上位1ビツトを無視するかを切換えることに
より、従来プログラムと拡張プログラムの両者を1つの
情報処理装置の上で実行することが可能となる。
しかし、他の1つの拡張(例えば64ビツトに拡張)を
上記の方式により実現することはできない。上記の方式
の拡大適用の例として、汎用レジスタ゛の長さを64ビ
ツトに拡大し、ベース・レジスタなどアドレスとして用
いられる時には64ビツトの計算をする方式が考えられ
る。しかし、上記のような命令体系の下では演算は32
ビツトのため64ビツトのアドレス・データの設定や計
算ができない。そのため4ビツトのアドレス・データの
設定と計算のための命令群が新たに必要とな   ′る
が、これは命令体系の大巾な変更が必要となり、好まし
くない。また、拡張アドレスの設定と計算を従来の命令
体系の下で実施可能とする方式として、拡張アドレス・
ビットの値によって従来の場合は32ビツトの演算を行
い、拡張の場合は64ビツトの演算を行うようにする方
式も考えられる。
しかし、この方式を適用すると、従来の32ビツトのデ
ータの演算が拡張アドレス・モードの時にはできなくな
るという問題が生じる。
以上、アドレスの長さの拡張を、従来の汎用レジスタの
長さを超えて実施する上での問題点について説明した。
アドレスの拡張と並び要請されるのがデータ演算の単位
の拡張(データ拡張)である、汎用レジスタの長さが3
2ビツトの従来の命令体系の下では32ビツトを超える
(例えば64ビツト)の演算を行う命令はなかった。従
来、浮動小数点レジスタについては、32ビツト、64
ビツト、128ビツトの演算をそれぞれ別々の命令とし
て設けることにより実施可能であったが、汎用レジスタ
を使う演算(固定小数点データの演算)については、連
続番号のレジスタを同時にメモリから/への転送するこ
とを除いてできず、64ビツトの固定小数点の演算を行
うには32ビツトのための演算命令を多数用いて実施し
ているのが現状である。例えばFERTRANなどの高
級言語において、処理すべきデータ量の増大に伴って6
4ビツトの固定小数点データを扱う要請がある(例えば
、配列の太きさが2 ”を超えるものが要求されている
。)が、64ビツトの演算のためにはコンパイラは多数
の命令語に翻訳しなければならず処理を複雑にするとと
もに、処理性能を悪化させる要因となる。
以上、アドレス拡張とデータ拡張を従来の汎用レジスタ
の長さを超える程度に拡張する場合の問題について述べ
た。
〔発明の目的〕
本発明の目的は、命令体系の変更を殆ど行わすに、汎用
レジスタの有効長を拡張し、従来のデータ長よりも大き
いようなアドレスやデータを取り扱えるような、従来装
置に対して変更の少ない情報処理装置を提供することに
ある。
〔発明の概要〕
汎用レジスタを基本とする命令体系の下でアドレス拡張
やデータ拡張を行うには、汎用レジスタの長さを増大す
る必要がある。従来プログラムはそのまま実行でき、か
つ新規拡張プログラムでは拡張されたアドレスやデータ
を扱う時のみ拡張された汎用レジスタを用いて拡張アド
レスの計算や拡張データの演算を行い、拡張されていな
いデータの演算は従来と同じ長さで実施する必要がある
こ、のためには、個々の汎用レジスタに対応して、それ
が拡張されたアドレス計算やデータ演算を行うか否かを
表わすモード・ビットを設けるのが良い。そして、当該
モード・ビットの値に従ってアドレス計算や演算の有効
長を切替えることができるアドレス計算回路、演算処理
回路を設け、汎用レジスタの保持している情報の長さに
応じた計算や演算を実施できるようにする。
また、汎用レジスタの個数は有限であり、プログラムの
実行に従って個々の汎用レジスタの内容は変化していく
0例えば最初は従来の長さのデータを保持し32ビツト
の演算のために用いられる汎用レジスタが、次には拡張
された長さのアドレスを保持し、拡張されたメモリ範囲
内のデータをアクセスするために使用され、さらに次に
は、拡張された長さのデータの演算を使用されるという
ことがありうる。このような使用方法の変更をプログラ
ム内で実行の途中で行えるように、当該拡張ビットの変
更ができるようにする必要がある。
また、マルーチタスク処理を行うオペレーティング・シ
ステムの下では、複数のプログラムの間で処理を切替え
るのが普通であり、汎用レジスタは切替えの際に状態が
退避回復されるので、当該拡張モード・ビットをオペレ
ーティング・システムによる退避・回復ができるように
する必要がある。
なお、このモード・ビットは従来の命令によって変更さ
れるようにする必要があるので、汎用レジスタの外に別
に設けるのがよい。
〔発明の実施例〕
以下、本発明の一実施例を第2図より第9図を用いて説
明する。
第2図は、本発明が適用される情報処理33置の構成を
示す。それは次のものから構成される。
(1)命令解析・制御部100 命令語を解読するとともに、他の部分の処理を制御する
(2)命令実行部200 命令語の実行を担当する部分であり、本発明が適用され
る部分である。
(3)メモリ制御部300 主記憶装置(MS)400とのデータ転送を制御する。
以上の構成は一般的なものである。
次に本発明が適用される命令実行部200内の構成を記
す。
(1)汎用レジスタ制御部1゜ 16本の汎用レジスタ11からの読出し、およびそれら
への書込みを制御する部分である。
(2)アドレス計算部2゜ メモリ・アドレスを計算する部分である。
(3)演算処理部3゜ メモリから読込んだデータ、汎用レジスタから読込んだ
データに対する演算を実行する部分である。
(4)モード・レジスタ制御部40 汎用レジスタの有効長を指示するモード・レジスタ41
を制御する部分である。
上記のうち、汎用レジスタ制御部10.アドレス計算部
20.演算制御部3oは、従来より設けられている部分
であるが、モード・レジスタ制御部40は新規な部分で
ある。これら4部分の詳細については後述することとし
、ここでは各部の動作の概要を説明する。そのために、
代表的な命令として、LOAD命令とADD命令の処理
の流れを第3図を用いて説明する。命令の実行は通常、
ステージと呼ばれる時間インタペルに分けて行われる。
ここでは4つのステージに分ける場合を説明するが、本
発明はこれに限定されるものではない。ステージごとに
次のように処理される。
(1)命令デコード・ステージ(D) 命令語内のオペレーション・コードを解読し。
LOAD命令、ADD命令などを認識するとともに、命
令語内の各パートを取り出す。この処理は命令解析・制
御部100で実施されるが、このための回路構成は公知
であるので説明は省略する。
(2)アドレス計算ステージ(A) 命令語内のB、、X、、D、パートを基に、第2オペラ
ンドのアドレスを計算する。具体的には命令解析・制御
部100の制御の下で、命令実行部200で計算が行な
われる。すなわち、次のような処理が行われる。
(a)命令語内のB2パートの内容を汎用レジスタ制御
部10およびモード・レジスタ制御部に伝え、B2の指
示する汎用レジスタおよびモード・ビットをそれぞれ読
み出し、さらに、アドレス計算部20内の82 レジス
タ・データ26およびB2モード・ビット124に設定
する。
(b)(a)と同様にして、x2パートに対応して。
x2  レジスタ・データ27.およびx2 モード・
ビット125に値を設定する。
(c)命令語内のD2 パートの内容をアドレス計算部
20内のD2データ・レジスタ28に設定する。
(d)B2 レジスタ・データ26.X、  レジスタ
・データ27.D、データ・レジスタ28の3者を入力
とするアドレス・アダー25により加算が行われ、結果
がアドレス・レジスタ123に設定される。この際にB
2モード・ビット124.X、モード・ビット125は
有効長の制御に使用されるが、詳細は後述する。
(3)オペランド・ロー)で・ステージ(L)第2オペ
ランドのデータをメモリからフェッチする。具体的には
、メモリ・レジスタ123の内容がメモリ制御部300
に転送され、MA400に対するフェッチ要求が発行さ
れる6MA400からのフェッチが行われるとフェッチ
・データ・レジスタ302にデータが設定される。なお
、この過程においては、仮想アドレス機構のある場合に
はアドレス・レジスタ123の内容は仮想アドレスを表
現しており、それを実アドレスに変換する回路が動作す
る。また、主記憶装置MS上のデータの写しを格納する
高速のバッファ記憶装置BSを持つ場合には、BSをア
クセスする回路が動作する。本実施例にはこれらについ
ての説明は省略しているが、本発明の適用においてはこ
れらの回路の有無は無関係である。
(4)命令実行ステージ(D) LOAD命令の場合には、フェッチしたデータをR1パ
ートで指す汎用レジスタに設定する。
ADD命令の場合には、R1レジスタの内容とフェッチ
したデータとの加算が行われ、結果をRエ レジスタに
設定する。この処理は次のように行われる。
(a)命令解析・制御部100で取り出されたR1パー
トの内容が汎用レジスタ制御部10およびモード・レジ
スタ制御部40に伝達される。
(b)モード・レジスタ制御部40ではR□パートの値
に従ってモード・ビットが読み出される。
(c)演算処理部30内のメモリ・フェッチ・データ・
レジスタ31に、フェッチしたデータ302の内容が転
送される。 LOAD命令の場合には演算器32をバイ
パスして結果レジスタ137にデータが転送される。A
DD命令の場合には汎用レジスタ制御部10内でR1パ
ートの指す汎用レジスタの内容が読出され。
レジスタ出力データ・レジスタ131に転送され、フェ
ッチ・データ・レジスタ31とともにALU32の入力
となり、加算が行われる。加算結果は結果レジスタ13
7に設定される。(b)で読み出されたR1モード・ビ
ット136は、結果レジスタ137の有効長制御に用い
られるが、これについては後述する。
(d) LOAD命令、ADD命令ともしこ、結果レジ
スタ137の内容が汎用レジスタ制御部10に転送され
、レジスタ入力レジスタ12を介してR□パートの値で
指定される汎用レジスタに設定される。
以上のようにして、 LOAD命令、ADD命令の処理
が実行される1以上の動作は、モード・ビットに関係す
る記述を除いて公知のものである。
次に1本発明の適用時の動作をそのための回路について
詳細に説明する。まず、本実施例の動作の詳細を、第4
図を用いて、LOAD命令について説明する。
本命令1は、R2の指す汎用レジスタの値、B2の指す
汎用レジスタの値、およびB2の12ビツトの値の3者
の加算値をメモリのアドレスとしてデータを読み込み、
そのデータをR□で指す汎用レジスタにセットする命令
である。従来モードにおいては、アドレスおよびデータ
の長さは4バイト(=32ビット)以下である。本発明
を実施した場合にはモード・レジスタ41内の82に対
応するモード・ビットは1.R2に対応するモード・ビ
ットはOとすると、B2の指す汎用レジスタは64ビツ
トの値、R2の指す汎用レジスタは下位32ビツトに上
位32ビツトを0と見なした値が使用される。すなわち
、モード・ビットが1の場合は対応する汎用レジスタの
長さは64ビツトとして扱い、モード・ビットが0の場
合は対応する汎用レジスタの長さは32ビツトとして扱
われる。ここで、本実施例では、拡張モードでの長さを
64ビツトとしたが、任意のビット長さでよいことを付
記する。ただし、メモリとのアクセス単位がバイト(=
8ビット)の場合には、8の倍数に設定するのがよい。
またアドレス拡張をデータ拡張を別個のモード・ビット
として、各汎用レジスタに2ビツトを対応させたモード
・レジスタの構成とじうろことも付記する。ここでは、
データの拡張の要請の説明で述べたように8バイトの固
定小数点データの実現とあわせてアドレス拡張を行うた
め、64ビツトとした。またデータ拡張としては64ビ
ツト・アドレス拡張としては(24ビツト・アドレス方
式のように)その一部(例えば下位48ビツト)をアド
レスとして使用する方式も同様にして実現できることを
付記する。
第4図において、B2,3.X、、4.B2゜5の3者
の和がメモリ上のデータにアクセスする64ビツトのア
ドレス6として使用される。メモリからの読出しデータ
の長さはR工に対応するモード・ビットに依る。モード
・ビットが1の時は、R□の指す汎用レジスタの64ビ
ツトに8バイトのデータ(■、■の部分)が読出されて
セットされる。モード・ビットがOの時は、4バイトの
データ(■の部分)が読出され、■の最上位ビットXの
値がOの時その上位に32ビツトの0が付加された値が
、またXが7の時1が付加された値が、それぞれ汎用レ
ジスタ7にセットされる。
次に、本実施例の詳細な説明を行う。まず、汎用レジス
タ制御部10の動作を第5図により説明する。汎用レジ
スタは16本あり(11)それらとの入出力はレジスタ
番号指定レジスタ14により選択して実行される。すな
わち、レジスタ番号指定レジスタ14の内容に従って1
6本の汎用レジスタ11の中の1つが選択され、書込み
の場合はレジスタ入力データ・レジスタ12を経由して
、また読出しの場合はレジスタ出力データ・レジスタ1
3を経由して64ビット単位での書込み/読出しが実施
される。
次に、アドレス計算部20の動作を第6図を用いて説明
する。第4図に述べたLOAD命令1の例について説明
する。命令語によって指定されたレジスタx2 の内容
が第5図の汎用レジスタ制御部10から読出され、x2
  レジスタ・データ・レジスタ21にセットされる。
またx2  レジスタに対応するモード・ビット125
がモード・レジスタ制御部4oから読出される(詳細は
後述)。X2モード・ビット125の値が0の時には、
Oを保持している定数レジスタ22の内容がアドレス・
アダー25のx2人力レジスタ26の前半32ビツト・
セットされる。X2モード・ビット125の値が1の時
には、x2 レジスタ・データ・レジスタ21の前半3
2ビツトがX2人力レジスタ26の前半32ビツトにセ
ットされる。どちらの場合も後半32ビツトにはX2 
レジスタ・データ・レジスタ21の後半32ビツトの値
がそのままセットされる。B2についてもx2 につい
て説明した上記の処理が同様にして行われ、82人力レ
ジスタ27にセットされる。命令語1のD2パートはそ
のままD2人力レジスタ28にセットされる。x2人力
レジスタ26.B、入力レジスタ27、D、入力レジス
タ28はアドレス・アダー25の3人力となり、3者の
加算が実施され、結果が出力レジスタ121にセットさ
れる。選択器122は、X2 モード・ビット125お
よびB2モード・ビット124がともに0の時には、ア
ドレス・レジスタ123の前半32ビツトには定数レジ
スタ22の内容をセットし、少くとも一方の1の場合に
は出力レジスタの前半32ビツトの内容をセットするた
めに用いられる。どちらの場合においてもアドレス・レ
ジスタ123の後半32ビツトは、出力レジスタ121
の後半32ビツトがそのままセットされる。以上の結果
、x2  レジスタ、B、レジスタの両者が従来モード
の時には有効長32ビツトのアドレスを生成し、少くと
も一方が拡張モードの時には有効長64ビツトのアドレ
スが生成される。生成されたアドレスに従い、メモリ・
リクエストが実行されるが、その動作回路は公知なので
省略する。
次に、演算制御部30の説明を第7図を用いて行う。先
ず、LOAD命令の処理の続きを説明する。
上述のメモリ・リクエストの結果として、メモリから読
込まれたデータがメモリ・フェッチ・データ・レジスタ
31に、セットされる。その内容は、64ビツトのAL
U32の入力レジスタ33にセットされるとともに、選
択器34の入力となる。
LOAD命令の場合には、選択器34によりメモリ・フ
ェッチ・データがそのままモード選択器35の入力とな
る。メモリ・フェッチ・データ・レジスタ31の前半部
はさらに、32ビツトのALU36の入力レジスタ37
の入力となるとともに、選択器38の入力となる。 L
OAD命令の場合は上と同様にメモリ・フェッチ・デー
タがそのままデータ拡張器39の入力となり、さらにデ
ータ拡張器39により64ビツトのデータに拡張される
。すなわち、32ビツトのデータの最上位1ビツトの値
が1の時にはすべて1の32ビツトのデータが付加され
、Oの時にはすべてOの32ビツトのデータが付加され
る。このための回路も既知なのでここでは説明は省略す
る。データ拡張器39の出力は、前述のモード選択器3
5の入力となる。モード選択器35においては、命令語
のR1の指すレジスタに対応するモード・ビットがモー
ド・レジスタ制御部40より伝えられ、その値が1の時
には、64ビツト系のデータを、その値が0の時には3
2ビツト系のデータを、それぞれ選択し、結果137を
レジスタ入力データとして汎用レジスタ制御部10に転
送する。汎用レジスタ制御部10では既述の如く汎用レ
ジスタ11にセットする。
以上のようにしてLOAD命令の処理(第4図で述べた
処理)が完了される。次に、データが拡張の例としてA
DD命令の処理を本図、を用いて説明する。
本命令はLOAD命令1と同じRX形式であり、X2゜
B、、B2により指示されるメモリ上のデータをフェッ
チし、R□の指す汎用レジスタの内容とh口算し、結果
を元のR1の指す汎用レジスタにセットする命令である
。メモリからフェッチされたデータはLOAD命令の時
と同じ処理によりメモリ・フェッチ・データ・レジスタ
31にセットされる。
ADD命令の場合には、64ビツトALU32と32ビ
ツトALU36の演算が実施される。両ALTJの入力
には、汎用レジスタ制御部10により読出されたデータ
がレジスタ・データ・レジスタ131にセットされる。
その全体64ビツトは64ビツトALUの入力レジスタ
132に、下位32ビツトは32ビツトALUの入力レ
ジスタ133にセットされる。ADD命令の場合には、
LOAD命令のときとは異なり選択器34.38ではA
LU出力134,135が選択される。後者はデータ拡
張器39により64ビツトのデータに拡張される。選択
器34の出力とデータ拡張器39の出力はモード選択器
35の入力となり、R□モード・ビットの値に従ってど
ちらかが選択され。
レジスタ入力データ137となる。この値137は汎用
レジスタ制御部10において、R1の指す汎用レジスタ
にセットされる。このようにして、ADD命令が実行さ
れる。ここで、64ビツトALU32は本発明で新たに
設けたものであるが、32ビツトALUを容易に拡張し
て実現できるので、詳細は省略するが、演算の長さが3
2ビツトから64ビツトになっただけであり、オーバフ
ローなどの割込み要因発生回路も32ビツトALUと同
様に先頭ビットからのオーバフローの検出などを行なえ
ばできる。また、本図の64ビットALU、32ビット
ALU、データ拡張器などを一体とした同じ機能をもつ
ALUを作成することも容易にできる。
次に、モード・レジスタ制御部の動作を第8図を用いて
行う。命令語1のレジスタパート1o7がレジスタ番号
44に設定され、セレクタ42のセレクタ信号となる。
モード・レジスタ(M R)41はセレクタ42の入力
となり、指定されたレジスタ番号に対応する部分がモー
ド・ビット110として出力され、上述したアドレス計
算部2o、演算処理部30に伝達される。
次にモード・レジスタ41の設定、変更、メモリへの転
送のために設ける命令について第8図。
第9図を用いて説明する。4つの命令を新たに設けるの
が良い。4つの命令はすべて第1図の中のS形式である
。S形式のアドレス指定部(B2゜B2)は、メモリ・
ア1(゛レスを指したり、後述のSR演算、AND演算
のデータとして用いられる。
(1) ORMode Register (OM R
)命令命令語で指定されたオペランドアドレスのうち下
位16ビツトの情報とモード・レジスタ41の情報の各
ビット対応のOR演算が行われ(第9図のステップ20
1)結果がモード・レジスタに設定される(ステップ2
02)、すなわち、第8図において、デコーダ43によ
りNMR命令信号141がオフになる。ところで、MR
41の内容はレジスタ142を経由してAND回路14
3.OR回路144の入力となる。また、オペランド・
アドレスはレジスタ145を経由して両回路の入力とな
り、両者のAND演算、OR演算が行われ、結果はレジ
スタ145゜146にそれぞれセットされる。上述のよ
うにOMR命令の場合、NMR命令命令信号片フになっ
ておりOR回路の出力146が選択される。
さらにLMR命令信号線147はオフとなり、MR書き
込み信号、ti 148はオンとなるようにデコードさ
れ、OR回路の出力146がM R41にセットされる
(2) AND Mode Register (N 
M R)命令OMR命令において、OR演算がAND演
算になる他は同じであり、NMR命令信号線141がオ
ンとなるようにデコートされ、ANDの結果145がM
R41にセットされる。
(3) Load Mode Register (L
 M R)命令命令語で指定したアドレスのデータ2バ
イトをメモリより読込み(ステップ205)、モード・
レジスタ41に設定する(ステップ206)。
すなわち、メモリ・フェッチ・データ・レジスタ149
の上位16ビツトをMR41に書込む。
デコーダ43において、LMR命令信号線147がオン
になり、メモリ・フェッチ・データ・レジスタ149の
入力を選択し、MR書込み信号Mc148をオンになる
ことによりMR41に書込まれる。
(4) 5tore Mode Register (
STMR)命令モード・レジスタ41の内容が、本命令
語で示されたアドレスにストアされる。本命令の場合、
デコーダ43によりSTMR命令信号線150がオンに
なり、メモリ・ストア・データ・レジスタ151を経由
して、メモリ・リクエストが実行される。
以上、モード・レジスタ41に関する4つの命令の動作
を説明したが、これらの命令は非特権命令とした方がよ
い。すなわち、汎用レジスタの内容は、プログラム毎に
変化し、プログラム内においても時々刻々変化するので
、非特権プログラムにおいても上記の命令が使用可能と
するためである。また、モード・レジスタの初期値はす
べてOとするのがよい。
以上、本実施例の説明を行った。本実施例によれば、次
のような効果がある。
(1)従来のプログラムを変更しなくても、そのまま実
行することができる。モード・レジスタの初期値は0な
ので、従来の有効長として扱われるので、従来プログラ
ムの変更はまったく不要である。
(2)従来プログラムを変更して、データ・アドレスの
み拡張アドレス部分にアクセスするようにするには、拡
張アドレス部分しこアクセスする前に、拡張アドレス用
のレジスタとして使われる汎用レジスタに対応するモー
ド・ビットを1にして、メモリ・アクセスを行い、拡張
アドレス用のレジスタとしての使用が終了した時点でモ
ード・ビットを0にするような変更、すなわち2命令の
追加を行えばよいので容易にアドレス拡張が実現できる
(3)従来プログラムを、拡張アドレス部分に格納して
動作させる場合においても、プログラム部分のベース・
アドレスとして使われる汎用レジスタに対して、上記と
同じような変更を加えるだけで済む。
(4)固定小数点データの処理単位を従来の32ビツト
から64ビツトに拡張することも上記と同様に拡張デー
タ用に使用する前に汎用レジスタのモード・ビットを1
にするだけで、従来と同じ命令体系の命令語を使用して
、64ビツトの固定小数点の演算ができる6 (5)新規に拡張アドレスで動作するプログラムや拡張
データを扱うことができるプログラムを作成する際にお
いても、従来のコンパイラなどのソフトウェア技術をほ
とんどそのまま活用することができる。
なお、拡張モードで使用されている汎用レジスタの内容
をメモリに記憶したり、メモリから値を設定する場合に
は、そのための格納領域の大きさを従来の4バイトから
8バイトに変更する必要が生じるが、その操作は容易で
ある。
〔発明の効果〕
本発明によれば、命令体系の変更は殆ど行わずに、アド
レス拡張やデータ拡張が実現できるので。
従来プログラムの流用、および従来のコンパイラなどの
ソフトウェアの流分が容易になるという効果がある。す
なわち、(1)命令体系が殆ど変わらず、(2)汎用レ
ジスタが拡張アドレスまたは拡張データとして使用され
る時のみ、対応するモ・〜ド・ビットの変更を行う命令
を追加すれば、アドレス拡張ならびにデータ拡張が実現
できるので、過去に蓄積された膨大なプログラムをその
まま実行することはもちろん、若干の修正のみで拡張ア
ドレスで動作させたり、拡張データを扱ったりすること
ができるようになる。以上の結果、アドレス拡張やデー
タ拡張に伴ない必要となるソフトウェアの開発工数を非
常に小さくできるという効果がある。
【図面の簡単な説明】
第1図は情報処理装置の命令形式の説明図、第2図は本
発明の実施例の構成図、第3図はLOAD命令、ADD
命令の動作概要図、第4図はLOAD命令の詳細な動作
図、第5図は汎用レジスタ制御部の回路構成図、第6図
はアドレス計算部の回路構成図、第7図は演算処理部の
回路構成図、第8図はモード・レジスタ制御部の回路構
成図、第9図はモード・レジスタ演算命令の動作の説明
図である。 10・・・汎用レジスタ制御部、11・・・汎用レジス
タ、2o・・・アドレス計算部、25・・・アドレス・
アダー、30・・演算処理部、32,36・・・ALU
、40・・・モード・レジスタ制御部、41・・・モー
ド・レジスタ、23,24,134.38・・・セレク
タ、35・・・モード選択器、39・・・データ拡張器
、143・・・AND回路、144・・・OR回路、1
00・・・命令解析制御部、200・・・命令実行部、
300・・・メモリ冨 1[D 舅 2 口 第 3 図 莱 4  図 不 5 図 しりスフ上刀テ゛−Z 某 δ 圓 メ亡ソ アトレス て 7 図 vg図 メEリ ストア テ゛−7モー1.″ 巳−/ト不 9 (えっ ζ(〕

Claims (1)

    【特許請求の範囲】
  1. 汎用レジスタを基本とする命令体系を有する情報処理装
    置において、夫々の汎用レジスタの有効長を指示する有
    効長指示モード記憶手段と、汎用レジスタを扱う命令の
    動作時に汎用レジスタから読み出す情報の長さ、汎用レ
    ジスタに書込む情報の長さ、あるいは汎用レジスタを用
    いる演算の対象とする情報の長さを、上記のモード記憶
    手段に記憶された値に従つて変更する手段とを有するこ
    とを特徴とする汎用レジスタの有効長拡張装置。
JP59206235A 1983-12-23 1984-10-03 汎用レジスタの有効長拡張装置 Pending JPS6184735A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP59206235A JPS6184735A (ja) 1984-10-03 1984-10-03 汎用レジスタの有効長拡張装置
DE8484115890T DE3479356D1 (en) 1983-12-23 1984-12-20 A data processor with control of the significant bit lenghts of general purpose registers
EP84115890A EP0148478B1 (en) 1983-12-23 1984-12-20 A data processor with control of the significant bit lenghts of general purpose registers
US06/684,785 US4679140A (en) 1983-12-23 1984-12-21 Data processor with control of the significant bit lengths of general purpose registers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP59206235A JPS6184735A (ja) 1984-10-03 1984-10-03 汎用レジスタの有効長拡張装置

Publications (1)

Publication Number Publication Date
JPS6184735A true JPS6184735A (ja) 1986-04-30

Family

ID=16519987

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59206235A Pending JPS6184735A (ja) 1983-12-23 1984-10-03 汎用レジスタの有効長拡張装置

Country Status (1)

Country Link
JP (1) JPS6184735A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE40498E1 (en) 1993-05-27 2008-09-09 Matsushita Electric Industrial Co., Ltd. Variable address length compiler and processor improved in address management

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE40498E1 (en) 1993-05-27 2008-09-09 Matsushita Electric Industrial Co., Ltd. Variable address length compiler and processor improved in address management
USRE41959E1 (en) 1993-05-27 2010-11-23 Panasonic Corporation Variable address length compiler and processor improved in address management

Similar Documents

Publication Publication Date Title
US6061783A (en) Method and apparatus for manipulation of bit fields directly in a memory source
US4679140A (en) Data processor with control of the significant bit lengths of general purpose registers
JP3203401B2 (ja) データ処理装置
US6405306B2 (en) Instruction set for bi-directional conversion and transfer of integer and floating point data
JPH06332792A (ja) データ処理装置及びそのデータ読み出し制御回路,データ書き込み制御回路
US7546442B1 (en) Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions
JP2847974B2 (ja) データ処理装置
EP0094535B1 (en) Pipe-line data processing system
JPS5847053B2 (ja) デ−タ処理装置
JPH0348536B2 (ja)
JP2669158B2 (ja) データ処理装置
US20020099922A1 (en) Data processing apparatus including a plurality of pipeline processing mechanisms in which memory access instructions are carried out in a memory access pipeline
EP0240606B1 (en) Pipe-line processing system and microprocessor using the system
JPS623461B2 (ja)
JPH0380336A (ja) 二重オペレーティングシステム計算機の動作強化装置のmバイト命令ワードcpuの動作強化装置及びレジスタ指向型アーキテクチュアcpuの動作強化装置
JP2002229778A (ja) 高速ディスプレースメント付きpc相対分岐方式
JPS6212529B2 (ja)
JPS60136832A (ja) タグ付きデ−タを扱う論理型デ−タ処理装置
JPS6184735A (ja) 汎用レジスタの有効長拡張装置
JP2553200B2 (ja) 情報処理装置
JPS60134937A (ja) アドレス拡張装置
JP2685713B2 (ja) データ処理装置
US6289439B1 (en) Method, device and microprocessor for performing an XOR clear without executing an XOR instruction
JPH0346045A (ja) アドレス変換装置
JP2987281B2 (ja) プロセッサ